APP下载

分队战术训练系统中基于HLA和组播技术的通信仿真*

2014-06-12刘庆国

火力与指挥控制 2014年9期
关键词:通信网席位通话

刘庆国

(沈阳炮兵学院,沈阳 110162)

分队战术训练系统中基于HLA和组播技术的通信仿真*

刘庆国

(沈阳炮兵学院,沈阳 110162)

在战术仿真训练中,通信仿真是实现作战指挥训练的重要手段。结合基于HLA技术的战术仿真训练系统,探讨了采用组播技术和HLA交互手段实现通信仿真的方法,并对其扩展功能进行了研究。

高层体系结构,组播,通信仿真

引言

在军事仿真领域,指挥控制训练是分队战术训练的一个重要内容,主要通过通信联络完成,一个实用的战术仿真系统要对战场上的各种通信手段作出功能模拟。HLA技术为分布式仿真应用的开发提供了有力的平台,但也存在局限性:它是基于对象属性的,在仿真中语音通信产生的是二进制数据,该数据的交互传递无法从HLA技术本身获得支持,网络组播技术可以有效弥补其不足,通过二者的结合可很好地实现通信仿真功能,并可实现功能扩展。本文介绍了一个基于IPv4组播技术的虚拟通信网JVRadio的设计与实现,通过在某型反坦克火炮战术对抗仿真系统的应用,取得了较好的效果。

1 组播技术

组播(multicast)是允许一个或多个发送者发送单一的数据包到多个接收者的网络技术[1]。

1.1 组播工作原理

组播能够一次传送数据包到多个同属一个组播组的接收成员,且只有属于该组播组的地址才能接收到数据包,这样,网络出现拥塞的可能性大大减小,提高了数据传送效率。

组播组的成员可以是动态的,即一个主机可以在任何时间加入一个组或者离开。一个主机可以是多个组的成员,组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络。组播工作模式如下页图1所示。

组播结合了单播和广播的优点,以非常有效的方式传输组播数据。对组播而言,所有的请求端加入到组播组,服务器只向所有的请求端发送一路数据拷贝。数据通过组播地址,向加入组播组的成员(主机或者网络)发送,这样在共享的链路上只需要1份数据拷贝,大大减轻了内容服务器和源链路的负载压力。

图1 组播工作模式

1.2 组播地址与组播Mac映射

根据IANA(Internet Assigned Numbers Authority)规定,组播报文的目的地址使用D类IP地址。该类地址范围从224.0.0.0到239.255.255.255。在局域网内传输组播报文时,由于传输目的主机是一个组播组内的多个组成员,而不是单一的主机,必须使用组播MAC地址。IANA将高24位为01:00:5E(16进制)的MAC地址分配给组播使用。具体映射方式为:将组播地址中的低23位直接放入MAC中的低23位中(多补位0形成24位),再与01:00:5E结合成为完整的48位MAC地址。如图2所示。

图2 组播地址映射

2 通信仿真需求分析及通信组网建模

经过分析某反坦克炮战术对抗仿真系统对语音通信的需求,需要建立4套通信组网:一是导演部通信网,用于演习中总导演、红蓝导演以及干预席、战场观察席之间的通话;二是上行电台通信网,实现连长与各导演间的通话;三是分队本级通信网,实现分队各火炮间的通话;四是火炮单车通信网,实现炮长与车上乘员的通话,用于对车内通话器的模拟。

通信组网是多人在一个共享的信道上发送和接收语音信息,此时共享介质是一个通信频段,共享介质可以看成是一个声音可及的空间范围。分队通信仿真需要满足两个要求:在一个通信网空间内某一成员发话,只有网内成员才可听到,即语音数据只有网内成员才可收到;特定成员(如连长)可收发两个以上通信组网的语音数据。通过以上分析,利用组播技术可很好地满足系统中对通信组网的要求。根据组播原理,可将位于同一通信网内的成员抽象为一个组播组,如图3所示。

图3 通信网抽象模型

这样,该战术对抗系统为实现通信仿真功能可建立4个组播组:导演部组播组、上行电台组播组、本级分队组播组和火炮单车乘员组播组。

3 通信仿真的设计与实现

3.1 总体设计

根据以上分析,通信仿真子系统JVRadio使用socket传输语音数据,利用IP组播地址建立通信组网,利用Windows Waveform Audio API采集和播放语音。系统结构如图4所示。

图4 系统结构图

电台操作模块,为电台的各项操作(如发话,频率选择等)提供操作界面。当按下发话键后,向管理控制模块发出发话请求,然后根据管理控制模块返回的信息决定是否向语音传输模块发送传输指令。当用户进行频率设置时,电台操作模块将频率信息输入信息记录模块。

信息记录模块,负责存储电台信息,包括电台类型、频率等。

管理控制模块,负责电台发言权限的授予。具体功能:一是判断席位是否属于某一组播组,而后根据判断结果决定是否进行语音的发送与接收。二是模拟电台单工通信。即当某席位发话时,组播组内其他成员不能发话。

语音采集模块,负责采集通话人员的语音信息,并将其转换为可在网络上传输的二进制数据。

语音传输模块,负责将语音采集模块提供的数据通过网络传输到组播组内各成员主机,以及接收网络上的数据以供语音播放模块转换为语音并播放。

语音播放模块,负责播放语音传输模块接收到的数据。

3.2 系统执行流程

以分队本级通信为例,在训练过程中参训人员选择相应席位登录系统。而后通过电台操作模块完成频率设置,输入的频率通过RTI发送给连长席位,连长验证传入的频率是否与本连电台频率一致,若一致则授权该席位加入组播组,此时,该席位处于收听状态。参训人员如需发言,则按下键盘与电台相对应的键位,如果此刻该组播组内无其他人员发言,便会得到发言权限,参训人员可进行发言。

为了增强实战效果,在演习过程中,各席位可以动态设置电台频率,以防敌军通信干扰,设置及验证方法与前面相同。若输入频率与连长频率不一致,则不能进行通信,具体做法是强制该席位退出组播组。如图5所示。

图5 电台系统流程

3.3 通信网络的组建

3.3.1 IP组播编程接口介绍

RFC1112推荐了一些支持组播的程序接口:

a.加入一个组播组;

b.离开一个组播组;

c.对一个组播数据的IP TTL值进行设定;

d.为组播传输和接收设定本地接口;

e.禁止输出的组播数据回送。

多数TCP/IP实现都支持RFC1112所提到的要求,本系统采用Berkeley Socket API的setsockopt()的“套接字选项”功能来设置。表1描述了setsockopt()组播命令。

表1 setsockopt()组播命令说明

在电台网的组建过程中,利用套接字编程实现[2]。首先调用InitWinSocket()函数初始Socket,然后调用socket()函数创建一个UDP套接字,在套接字中指定要创建套接字所使用的属性,再调用bind()函数将创建的套接字与本地端口绑定。

3.3.2 具体实现

JVRadio的核心功能由TRutil类提供,该类中的枚举类型TR_TYPE定义了系统范围内可用的语音分组类别。

每个席位对应一个或多个通话分组,TRUtil类使用struct addr_struct来管理每个分组的地址信息及访问控制。struct addr_struct结构如下:

其中,send_priority用于保存当前席位在该分组中发送数据的优先级。当某一席位向分组中写入数据时,其他分组无法同时写入。该独占式的访问通过send_priority来控制:发起者首先检查本地send_priority,如果为false,说明其他席位正在发送数据,发起者返回。如果为true,则发送一个检测开始报文到组播地址上,并将本地send_priority置为true,接着发送语音数据。统一分组内的其他席位首先收到检测开始报文,将各自的send_priority置为false,接着收到发送者传来的语音数据。发送者结束传送时发出检测结束报文,分组内其他席位收到报文将各自的send_priority置为true。

组播的加入与退出通过setsockopt()函数实现,setsockopt()的原型如下:

通过设置不同的optname值,可以实现不同功能,例如函数调用 setsockopt(s,IPPROTO_IP, IP_ADD_MEMBERSHIP,(char*) &mreq,sizeof(mreq)),使席位加入组播,其中,s为套接字,mreq中包含组播地址IP信息;

加入组播后,使用函数sendto()发送数据,使用recvfrom()从组播组中接收数据。组播实现框架如图6所示。

图6 组播框架

3.4 语音的采集与播放

语音的采集与播放采用 Windows Waveform Audio API,提供的功能有:打开/关闭/查询声音设备;播放波形文件;设置播放速度;录音;调节音量[3]。

录音的主要功能在函数RecStart()中完成,过程分为以下几步:

a.打开录音设备,由函数waveInOpen()完成。

b.为录音设备准备缓存,由函数waveInPrepare-Header()完成。

c.为输入设备增加一个缓存,由函数waveInAdd-Buffer()完成。

d.开始录音,由函数waveInStart()完成。

e.停止录音,由函数waveInReset()完成。

播放的过程主要分为以下几步:

a.打开播放设备,由函数waveOutOpen()完成。

b.为回放设备准备内存块,由函数waveOutPrepareHeader()完成。

c.播放录音,由函数waveOutWrite()完成。

4 通信仿真的功能扩展

通信仿真系统除了要完成4个通信组网语音通信任务外,在演习过程中,导演要能够监控演习情况,进行必要的干预和演习后的分析讲评。为此,系统提供了导演部席位监听和部分席位广播的扩展功能。该功能主要通过发送HLA交互和动态加入(建立)组播组机制实现。

4.1 席位监听

席位监听实现导演对任一参演席位语音通信的监听。实现方法如下:

a.导演向被监听席位发送HLA交互,获取组播地址;

b.导演加入组播组;

c.接收语音数据,进行监听;

d.退出组播组,结束监听。

4.2 部分席位广播

在演习中,导演可能与部分席位进行通话,这些席位可能属于不同电台网,实现部分席位广播不能简单通过加入某一组播组实现,因为导演只是对该组播组的特定成员发话。解决方案:由导演向通话的目标席位发送建立新的组播组的HLA交互,建立新的组播组,各席位收到交互后加入该组播组,形成一个独立的通信网进行通话。具体流程如图7所示。

图7 部分席位通话流程

在本系统中,导演通过树形控件选择需要进行部分通话的席位,如图8所示。

图8 部分通话席位操作界面

5 结束语

本文利用组播技术实现了分队通信网络的组建和功能仿真,通过与HLA技术有机结合,实现了分队战术通信仿真的功能扩展,下步工作主要在通信干扰和跳频通信组网仿真作进一步研究。

[1]Tanenbaum A S.计算机网络[M].北京:清华大学出版社,2004.

[2]Jones A,Ohluhd J.Windows网络编程技术[M].北京:机械工业出版社,2005.

[3]黄一斌.分布式电台仿真训练平台研究[J].系统仿真学报,2009,21(3):3951-3954.

Research on Communication Simulation Based on Multicast and HLA Technology in Element Tactical Training System

LIU Qing-guo
(Shenyang Artillery Academy,Shenyang 110162,China)

At the tactical simulation training,communication simulation is an important means to achieve combat command training.The paper discusses the methods to realize communication simulation by multicast technology and interaction of HLA by the development of a HLA-based tactical simulation training system,and the extended functions of the communication simulation in the system are also discussed.

HLA,multicast,communication simulation

TP391.9

A

1002-0640(2014)09-0135-04

2013-06-05

2013-09-03

军队重点项目;获2011年军队科技进步三等奖。

刘庆国(1979- ),男,辽宁昌图人,硕士研究生,讲师。研究方向:作战仿真。

猜你喜欢

通信网席位通话
基于ASON的高速公路骨干通信网升级探讨
微信上小额借款 请务必通话确认
基于SDN-MEC配用电通信网任务迁移策略
《戊戌元日与友人通话》
IP 融合通信技术在通信网的融合与应用研究
机构席位买卖股追踪
机构席位买卖股追踪
基于ASON技术的电力通信网优化及应用
机构席位买卖股追踪
机构席位买卖股追踪