罗训 王荣
近几年,随着物联网的快速发展,无线技术也得到了飞速的发展,而在无线技术中,无线自组网技术[1]又是一个广受欢迎的技术,例如Zigbee技术和蓝牙技术等。当面对特定环境和特定需求需要开发一种新的无线组网技术或无线广播算法时,如何测试评估网络协议或算法的性能和可靠性是一个关键问题。
如果直接购买或者开发硬件平台进行实地部署测试,不仅成本高昂、费时费力,而且还需要考虑硬件故障、环境因素、实地部署时供电功耗、维护等很多问题,偏离了实验重心,不能聚焦在需要解决的关键问题上,而通过计算机仿真却可以避免以上问题,研究者只需要重点关注仿真的性能和结果来改进协议或算法即可。由此可见,网络仿真工作有着不可或缺的作用,占据重要的地位。
目前大部分的网络仿真都是通过NS-2或OPNET仿真器来实现,但是这些仿真器也存在一些不足,例如:NS-2仿真器不便于构建复杂的仿真场景;调试功能受限;体系庞大,使用较为复杂。OPNET仿真器则运行速度慢,仿真网络规模小,且对无线网络的支持较弱[2]。而这其中的某些不足对于游戏引擎而言,却恰恰是优势所在。在文章中,我们介绍了一种基于虚拟现实的自组网仿真技术。
该方法大体流程是:首先利用3D建模软件建立实验所需的各种模型,之后导入游戏引擎,建立自组网仿真的虚拟现实场景,然后利用游戏引擎的接口,通过引擎脚本来控制仿真流程。通过实验证明:该仿真方法可以实现自组网络的仿真工作,同时也通过实验得到的数据论证了该仿真技术的有效性和可靠性。
1 游戏引擎
1.1 游戏引擎简介
通过分析可知仿真是自组网必不可少的一步,但是为了弥补传统仿真器的不足,提出了利用游戏引擎来进行仿真的新方法。
游戏引擎是指一些已经编写好的可编辑游戏系统或者一些交互实时图像应用程序的核心组件,游戏引擎包括以下系统:渲染引擎、动画制作、物理引擎、碰撞检测、系统脚本、引擎动画、粒子系统和场景管理等[3]。
对于自组网络仿真中需要的场景管理、组网动画效果和脚本控制等,游戏引擎正好提供了这些接口,因此使得利用游戏引擎来进行基于虚拟现实的自组网络仿真成为可能。
1.2 游戏引擎优势
与传统的仿真器经过对比,游戏引擎具有以下优势:
·简单易用。游戏引擎提供了整体的框架,根据游戏引擎所提供的接口,在进行自组网络仿真时,只需要重点关注需要解决的问题,例如自组网协议研发或算法实现等,然后研发人员只需要通过脚本来控制节点之间的数据交换流程和动画展示等内容即可。
·真实环境模拟。在之前的无线仿真技术中,都是通过生成随机位置,然后根据研究者配置进行模拟仿真。这种仿真的缺点是无法模拟出具体真实场景和地理位置对仿真实验的影响。在虚拟现实的游戏引擎中,研究者可以对仿真场景进行随意添加更改,包括丛林、河流、山峰和建筑物等,利用这些仿真真实的环境,增加了真实环境中各种障碍物对无线信号衰减的影响,从而提高了仿真的准确性。
·可視化效果增强。在虚拟现实中,用户可以很直观地看到仿真环境中无线信号的传播过程和组网过程,以及组网是如何受真实场景影响的,不仅对于研究者更加容易找出网络中的问题,对于初学者而言,这种直观真实的可视化效果也更加容易记忆和学习。
·清晰的层次结构。游戏引擎中针对每个场景、每个状态和场景中的每个物体都有独立的脚本来控制,因此对于自组网仿真而言,这种清晰的层次结构可以很轻松地添加新功能或修改已有功能,例如网络仿真中各个节点的控制都是由其独立来控制实现,因此无论是修改功能还是更改流程在该节点的脚本中都可以很方便实现,整体控制可以通过关卡脚本来实现。
·复用性高。在游戏引擎中,各个部件和物体的控制可以在脚本中使用函数和事件来实现,游戏引擎也提供了场景脚本调用所有物体内函数的功能,大大提高了程序的复用性;而且可以在场景中生成多个物体对象,由同一脚本去控制工作,例如网络仿真中根据配置生成不同数量的节点进行无线组网,每个节点的工作流程完全一致,因此除了每个节点的ID不同外,其内部对收到的数据处理流程完全一样,因此共用一个程序文件来控制即可,完全不需要针对每一个节点单独编写。
·消息广播机制。在组网过程中路由建立的基础就是通过路由广播以及路由回应来完成的,而在游戏引擎中也提供了全局消息广播的机制,通过该机制,研发者不需要考虑自己去实现复杂的广播消息处理。
我们选择了虚幻游戏引擎(简称UE4)来实现无线自组网络仿真技术的研究。该游戏引擎除了其强大的各种子系统外,还提供了一个“所见即所得”的编辑器,在可视化的编辑窗口中,开发人员可以直接对游戏中的角色、物品道具、角色个体智能(AI)及光源进行自由摆放和属性控制,并且全部是实时渲染,虚幻引擎为了使开发者更好使用,还完全开源了其游戏引擎的代码,开发者可以按照自己的需求开发自己特色的内容。
1.3 游戏引擎相关工作
在此之前,张青和曲洲青[2]等人研究过基于游戏引擎的力学仿真方法,同样是由于力学实验耗费成本较高且不易运作,传统仿真方法又存在一些缺点,所以提出了利用游戏引擎来进行仿真的方法[4];LUO和YU等人提出在网络仿真中利用游戏引擎来增强移动模型的研究[5-6],GODSEY等人[7]则利用游戏引擎来实现仿真传感器网络应用,这些研究都为文中所提的基于虚拟现实的无线自组网仿真提供了启发思路。除此之外,YU-CHEE TSENG和SZE-YAO NI等人在研究关于移动自组网中的广播风暴问题时,利用C++设计了一种仿真器,并利用该仿真器仿真了在不同广播算法下广播风暴的缓解情况,对实验数据结果进行了分析和论证[8]。
在相关工作的基础上,我们利用游戏引擎设计无线自组网仿真器,最后通过仿真YU-CHEE TSENG[8]论文中完全相同的实验场景进行实验,仿真得到的实验数据与YU-CHEE TSENG论文中的数据进行对比的结果,验证了文章中的仿真器是真实可靠的。endprint
2 仿真流程实现方式
无线仿真遵循网络仿真的一般步骤,来确定无线自组网整体的仿真流程,包括问题定义、建模、模型确认、数据采集、程序编制、运行、结果展示和最后的验证等环节[9]。
我们采用了主从节点的方式来进行无线组网仿真,主节点根据从节点的地址进行轮询广播查找,整个仿真场景的参数主要有场景大小、节点数量、信号传输半径、广播包大小、传输速率、广播时间间隔等。
自组网仿真路由协议采用的是精简的按需矢量距离(AODV)[10-11]路由协议。在其基础上我们针对游戏引擎仿真进行了适当的优化,在游戏引擎中先对优化后的路由协议进行数据结构定义,主要包括以下几部分:路由广播包、路由回应包、路由错误包、路由消息包。除此之外,还定义了场景中节点物体与其对应地址的数据结构,用来在全局范围内查找某节点信号传输半径范围内的节点并将路由信息发送给该接收节点。当每个节点收到路由广播或路由回应后,节点需要将其存储至节点的路由表中,建立路由,因此还需要定义路由表结构。
在该仿真中,场景内主要包括以下几个部分:(1)范围盒子,在仿真时并不可见,主要用来根据用户配置的场景大小来自动变化范围,初始化后不可改变;(2)主节点,整个自组网仿真中路由广播的发起者,在轮询各个节点时,根据其内的路由表信息来判断是否进行路由广播;(3)从节点,根据配置信息来自动生成规定数量的从节点,同时自动分配IP。主节点和从节点的位置是在范围盒子内部随机生成,当然用户也可以手动调整其位置。
根据虚幻UE4的设计,场景中的所有物体均可以获取到游戏状态和游戏模式,场景关卡可以获取到场景中的所有物体以及其内部的属性、方法函数和事件等。
据此可知配置文件的读取由游戏状态来完成,并存入其中供其他物体来获取,所有的节点都具有发送消息的功能,因此在游戏状态中定义了路由广播发送函数接口、路由回应发送函数接口、路由错误发送函数接口和路由消息发送函数接口,当节点需要发送相应的消息时,直接通过调用游戏状态中的相应接口即可。相应消息的接收函数仍是由各自独立实现,各种发送函数接口的具体实现是在场景关卡中完成,由于场景关卡可以获取到场景内的所有物体,因此在场景关卡中通过对传入参数做解析之后,将需要发送的消息发送给各个对应的物体接收函数,从而完成了整个组网过程。图1是整个自组网系统的仿真流程。
最终仿真则效果如图2和图3所示,其中图2为主节点路由表中没有到达目的节点的路由信息,进行路由广播,从而引起其信号半径范围内的从节点依次向外中继转发广播,当广播到达目的节点或某中继节点中拥有到达目的节点的路由时开始回应。图2中有3个节点进行了路由回应,其中黑色箭头表示路由回应信号,右边红色的数字表示在某个节点信号半径范围内的可达节点。
图3是在路由建立之后,主节点发送路由消息给目的节点,同时目的节点回应路由消息给主节点的数据传输仿真过程。
3 仿真流程实验数据论证
在YU-CHEE TSENG[8],[12]等人的工作中,利用仿真器进行广播算法的仿真,得到的仿真数据通过平均时延、节约转发率和可达率3方面来评估不同广播算法在不同阈值下的广播风暴缓解情况,然后通过横向对比,给出该广播算法的最优阈值范围。
评估观察的性能指标解释如下:
·可达率(RE)。接收到广播消息的主机节点数与从源主机直接或间接到达的所有主机节点数的比值。
·节约转发率(SRB)。(r-t)/r,r为接收到的广播消息的主机节点数,t为真正发送消息的主机节点数。
·平均时延。从广播开始到最后主机节点结束转发的时间间隔。
我们利用本次设计的基于游戏引擎的仿真器通过完全相同的仿真环境配置进行实验,将数据结果与其进行比较,仿真环境配置是:节点之间信号传输半径为500 m,然后生成100的主机节点进行仿真,范围大小有1 x 1、3 x 3、5 x 5、7 x 7、9 x 9、11 x 11單元大小,每个单元的长度是500 m(即信号传输半径);然后则通过仿真概率广播算法[4]和计数广播算法[4-5]获得数据作图对比,其中每次仿真执行10 000个广播请求。
3.1 概率广播算法仿真
概率广播算法是指当一个主机节点收到路由广播消息时,该主机会以概率P进行转发。当概率P是1时,该算法等同于泛洪广播[8],[13]。
图4为通过本文中的仿真器仿真结果,统计在不同场景大小时,不同的转发概率P条件下的节约转发率;图5是可达率;图6是平均时延。通过与YU-CHEE TSENG的论文中的数据对比,统计结果相差不超过1%。
3.2 计数广播算法仿真
计数广播算法是指当一个主机节点收到路由广播时,在该主机转发广播之前会由于解析数据重新打包广播包退避时间,忙碌或者处理其他队列消息等而等待一段时间。在该段时间内,该主机有可能再一次监测到相同的路由广播,因此通过一个计数器k来统计该主机收到相同路由广播包的次数,当该次数k超过计数阈值C时,该主机取消转发广播。
图7为通过文中所提的仿真器仿真结果,统计在不同场景大小时,不同的计数阈值C条件下的节约转发率;图8是可达率;图9是平均时延。通过与YU-CHEE TSENG的论文中的数据对比,统计结果相差不超过1%。
因此,通过以上数据统计分析和对比,可以证明本论文中的在游戏引擎中实现的基于虚拟现实的无线自组网仿真技术是有效可靠的。
4 结束语
文章中,我们通过分析自组网仿真的重要性总结了传统网络仿真中的一些不足之处,进而提出了利用游戏引擎来进行基于虚拟现实的自组网仿真的方法。之后通过UE4游戏引擎实现了该自组网仿真技术,实现了自组网仿真功能,同时利用该仿真器通过对两种广播算法进行仿真实验,与前人的实验数据进行比较和分析,验证了该基于虚拟现实的无线自组网仿真技术的可行性,研究也达到了预期的效果。endprint
我们相信在之后的发展过程中,利用游戏引擎的虚拟现实技术会应用到更多的领域中去,并且更加简单和方便地为研究者提供便利。
参考文献
[1] MACKER J P, CORSON M S. Mobile ad hoc Networking and the IETF[J]. Acm Sigmobile Mobile Computing & Communications Review, 1998, 2(2):9-12
[2] 高振国, 温东新, 刘宏伟,等. 构建无线自组网仿真场景[J].宇航学报, 2006, 27(4):806-813
[3] 张青, 曲洲青. 基于游戏引擎的力学仿真新方法[J]. 中国传媒大学学报(自然科学版)自然科学版, 2013, 20(2):45-49
[4] MOHAMMED A, OULD K M, MACKENZIE L M, et al. Improving the Performance of Counter-Based Broadcast Scheme for Mobile AD HOC Networks[C]// IEEE International Conference on Signal Processing and Communications. USA:IEEE, 2008:1403-1406.DOI: 10.1109/ICSPC.2007.4728591
[5] LUO X. Using Game Engine to Enhance Mobility Modeling in Network Simulations[C]// Virtual Reality.USA: IEEE, 2013:177-178
[6] LUO X, YU N. Fast Mobility Model Prototyping in Network Simulations using Game Engine[C]// 2013中國虚拟现实大会暨ICVRV'2013. USA:IEEE, 2013:145-152. DOI: 10.1109/ICVRV.2013.31
[7] GODSEY C, SKUBIC M. Using Elements of Game Engine Architecture to Simulate Sensor Networks for Eldercare [J]. 2009:6143-6146
[8] TSENG Y C, NI S Y, CHEN Y S, et al. The Broadcast Storm Problem in a Mobile ad hoc Network[J]. Wireless Networks, 2002, 8(2-3):153-167
[9] 侯宗浩, 王秉康, 黄泳翔. 网络仿真的研究[J]. 计算机仿真, 2003, 20(10):89-91
[10] PERKINS, BEDOMGRPUER. Ad hoc On-Demand Distance Vector (AODV) Routing[J]. RFC, 1997, 6(7):90
[11] ROYER E M, DAS S R, PERKINS C E. A d Hoc On-Demand Distance Vector (AODV) Routing (Internet-Draft)[J]. RFC, 2000, 6(7):90
[12] TSENG Y C, NI S Y, SHIH E Y. Adaptive Approaches to Relieving Broadcast Storms in a Wireless Multihop Mobile ad hoc Network[J]. Computers IEEE Transactions on, 2001, 52(5):545-557
[13] BERTSEKAS D, GALLAGER R. Data Networks (2nd ed.)[M]. British: Prentice-Hall, Inc., 1992endprint