黄 超,程乃平
(装备学院 a.研究生管理大队;b.光电装备系,北京 101416)
通信网络的研究一直是通信领域的研究热点,而网络仿真是在网络的设计和验证过程中不可缺少的环节,能为其提供重要的参考依据。目前,主流的网络仿真软件主要有OPNET,NS-2,Qualnet 等。这些软件能够建立仿真场景模型,对网络参数进行设定,通过仿真,能得到网络的具体性能指标,为规划设计网络提供参考依据。
随着网络设计的日趋复杂化,当网络的整体架构和性能需要进行全面评估和验证时,真实的网络场景其错综复杂的程度不能完全体现在软件模型场景中,完全依靠模拟的仿真方式其结果的可靠性难以令人信服,这时就需要更为可靠的网络仿真技术[1]。
半实物仿真技术,可将模拟的网络场景接入真实的网络中,在网络数据流交互的过程中,网络的整体运行状况能够更加客观地反映出来[2]。OPNET 软件提供了3 个半实物仿真模块,分别是HLA(High Level Architecture),ESA(External Simulation Access)自定义模块,SITL(System In The LOOP)系统在环3 个模块。这3 种方法中,利用SITL 模块进行半实物仿真适合快速搭建网络场景,并与网络设备快速直连进行仿真。本文对此方及其关键技术进行了分析和阐述,搭建了一个基于SITL 模块的半实物仿真模型,进行了仿真验证。
SITL 接口在OPNET 的虚拟场景中是虚拟网络和真实网络之间的接口。在虚拟和真实网络之间传递的数据包其格式也在虚拟和真实格式之间相互转换。通过SITL 接口,虚拟网络和硬件之间可以作为统一的系统进行交互。
用于SITL 的仿真模型与标准的仿真模型具有很大程度的相似之处,区别在于需要在场景中特别添加代表外部节点的SITL 模块。OPNET 软件自带有SITL 节点和链路模型,通过真实的以太网链路,仿真环境与外部硬件事实进行数据包的交换。
SITL 仿真有3 种基本的配置方式:真实—虚拟(realsim),真实—虚拟—真实(real-sim-real),虚拟—真实—虚拟(sim-real-sim)。配置方式和难易程度各不相同,真实—虚拟方式将外部硬件与一个仿真系统之间连接,是最简单的方式;真实—虚拟—真实方式将两个外部硬件设备通过仿真场景连接起来,仿真场景中有与真实外部端口相对应的虚拟网关,真实的网络数据在经过仿真网络时,经过路由协议的处理和网络延迟的影响,其仿真结果与真实网络相比具有一定的相似性。虚拟—真实—虚拟方式在仿真中也使用多个网关,这个时候两个模拟网络连接到外部硬件。通过这种配置方法,可以从一个模拟网络经过真实的网络环境将数据发送到另一个模拟网络。3 种仿真方式的配置示意图如图1所示。
OPNET 为SITL 仿真添加了专门的网关和链路模型,网关模型对应真实的外部硬件,仿真场景与外部硬件通过该网关模型进行包的交换。在一个仿真中,通常可以添加多个网关模型,每一个模型对应一个外部实物硬件模块。在一些情况下,几个网关节点可以连接同一个外部的硬件模块,他们通过不同的过滤手段来接受外部的数据包。又因为ARP 协议可以解析MAC 地址,多个外部的硬件也可以接入同一个网关模型。通常情况下,为了减少出错概率,一个外部硬件模块对应一个网关模型。
在运行仿真的电脑,即仿真服务器上,应添加与外部硬件数量相对应的网卡。网卡应具有Winpcap 抓包功能,Winpcap 是捕获数据包的专门工具,是完成仿真必要的条件[3]。当数据包从外部硬件设备通过网络到达运行仿真场景的电脑时,首先经过其网卡,再经过一个可选的防火墙,然后到达操作系统。防火墙的作用是为仿真网络选择其所需要的数据包,而将不需要的数据包过滤,减轻系统的负荷。与此同时,SITL 组件的模块将要发给仿真场景的数据包直接取出,仿真核心对数据包进行翻译,场景中的网关节点将他们传递至仿真进程中,如图2 所示。
图1 仿真方式配置示意图
图2 数据的流动
OPNET 采用与实际网络类似的分层和模块化的建模,不同层或模块之间需要相互通信,其通信方式基于包的通信机制。OPNET 可以根据各种通信协议创建不同的数据包结构模型,协议中需要用到的字段和仿真中需要的信息例如包的创建时间,所属节点ID,包的优先级等都包含在模型中。仿真中随着事件的变化,数据包在真实网络和仿真网络之间流动。在进入仿真网络时,真实网络中的数据包必须翻译成仿真数据包需要的格式,才能被仿真网络识别和接受;相反地,从仿真网络流向真实网络的数据包也要经过一定的格式翻译才能被接受。转换的过程在SITL 网关模块中进行。图3 为两层数据包转换的示意图。
数据包的翻译过程如下:当一个数据包被接收时,无论其实真实数据包或模拟数据包,SITL 模块均会检测其包格式及其协议属性,然后用合适的方法对其进行翻译,这是通过使用测试功能,通过找到特定的数据包格式签名来完成的。一旦SITL 模块发现适合该数据包格式的翻译功能,数据包将会立即被翻译,产生转换后的数据包。由于网络协议时嵌套的,数据包因此也是嵌套的,每一次的翻译可以打开一层嵌套。OPNET 使用一系列函数对数据包进行翻译,通过调用函数,仿真进程能获知所需翻译数据包的格式,并找到所需的转换函数对数据包进行翻译,若翻译过后数据包不存在嵌套,则翻译过程结束;若还有嵌套,则继续通过转换函数进行翻译[4]。
图3 数据包格式转换示例
OPNET 建模采用层次化和模块化的方式,将复杂系统分解为不同的层次结构,即网络域、节点域、进程域。网络域利用节点的构建反映现实网络结构的拓扑。节点域提供模拟网络域节点内部功能所需要的硬件或软件资源。节点编辑器利用进程编辑器的进程模块为每个模块定义一个功能,并组合具有多种功能的节点模块构成一个网络域的节点[5]。
1)网络层建模。共有3 台电脑参与仿真过程,两台作为实物工作站,另一台作为仿真服务器。仿真场景在仿真服务器中建立。场景以一个公司的远程网络为例,公司在Atlanta,Philadephia,New York 和Boston 均设有办公室,这些办公室都与位于Washington,D.C 的公司总部通过远程网络连接。仿真场景中使用了OPNET 的subnet 子网模型,上层由总公司和4 个子公司的5 个节点组成。底层模型由5 个节点内的具体网络模型组成,公司总部内有1 个局域网络和1台FTP 服务器,他们之间经过交换机和路由器来连接,分公司内部由1 个局域网络和1 个路由器组成。
在子公司New York 和Boston 中设有一个半实物接口SITL,这个模块是实现半实物仿真的关键部分。SITL 接口用来映射真实的外部设备,即实物工作站。实物工作站通过网线接入仿真服务器的网卡中,SITL 接口通过一个路由器接入到仿真场景中,仿真场景如图4 所示。
2)信道建模。无线链路具有广播介质的特性,因而在传输过程中网络中的多个收信机都可能受到影响。另外对于同一传输,不同接收机的无线链路可能呈现出不同的行为和定时特征,因此OPNET 对物理信道采用“收/发机模块管道阶段”的模拟信道的传输特性。所谓的管道阶段,其原理是由相互关联的程序模块构成的,模拟物理信道特性的建模方式。虽然这种机制的模拟仿真精度不是很高。但也可以达到一般要求。无线收/发信机管道由14 个阶段组成,不管何时进行传输,大多数管道阶段都必须根据各个收信机执行。由于信道建模的过程较为复杂,在此不做详细讨论。
图4 仿真场景配置图
半实物仿真需要对网关节点的参数进行详细配置,否则容易出错。配置流程大体分两步:
1)在SITL 模块中为仿真场景配置其专用网卡的IP 地址和MAC 地址,这块网卡主要用来接收外部仿真工作站发来的数据包,对其进行截获并处理。在此场景中,需要对New York 和Boston 中的两个SITL 模块分别进行配置。
2)OPNET 采用离散事件的驱动机制,而真实网络是一个实时网络,采用时间驱动,虚拟时间与真实的时间不同步,所以必须对仿真内核进行相应设置,否则仿真无法运行[6]。
在仿真场景中,New York 与Boston 的子公司各有一个SITL 网关接口分别与外部仿真工作站R1 和R2 相连,同时SITL 接口又通过路由器接入仿真网络内部。路由器运行RIP 路由协议。R1 发送视频数据流,数据流经过仿真服务器所搭建的虚拟场景后到达R2,R2 对数据流进行解码显示。在仿真的运行过程中,当R1 播放视频时,R2 接受的视频数据经过仿真网络的延迟和丢包等影响,其得到的视频略有轻微延时,同时画面流畅性略有影响,但在可接受范围内。通过实验可以看出,OPNET 的SITL 模块虽然目前还不具备多媒体协议转换的功能,但可以成功进行视频数据传输。这种仿真方式在网络规模继续扩大后,可以用来对网络的效能进行测试。
随着通信技术的不断发展,通信网络的规模将日益扩大,复杂程度也不断加强,同时对网络的功能和性能也提出了更高的要求。OPNET 软件具有强大的仿真功能,尤其是其半实物仿真模块,能在传统仿真方式的基础上更为直观的对网络的整体性能进行评价和判定,这种仿真方法将在通信网络的设计方面发挥更为重要的作用。
[1]胡志伟,梁加红,陈凌,等.移动自组网仿真技术研究综述[J].系统仿真学报,2011,23(1):1-6.
[2]单家元,丁艳. 半实物仿真[M]. 北京: 国防工业出版社,2008.
[3]胡晓元,史浩山.Winpcap 包截获系统的分析及其应用[J].计算机工程,2005(1):96-98.
[4]李洪鑫,张传富,范超. OPNET 半实物仿真机制研究[J].信息工程大学学报,2011,12(4):509-512.
[5]陈敏. OPNET 网络仿真[M]. 北京: 清华大学出版社,2004.
[6]蒋秀波,宋早迪,张日飞.HLA 和OPNET 的战术通信网半实物仿真[J]. 火力与指挥控制,2012,37(10):150-156.