APP下载

基于OMNET++的随机网络编码仿真实现

2016-10-26宋小全

无线电工程 2016年10期
关键词:多路径数据包路由

胡 鹏,宋小全,孙 旭,夏 烨

(1.北京跟踪与通信技术研究所,北京 100094;2.中国卫星海上测控部,江苏 江阴 214400)



基于OMNET++的随机网络编码仿真实现

胡鹏1,宋小全1,孙旭1,夏烨2

(1.北京跟踪与通信技术研究所,北京 100094;2.中国卫星海上测控部,江苏 江阴 214400)

随机网络编码具备提高无线传感器网络的传输可靠性,降低网络能量消耗等特点,其应用设计缺少网络仿真验证方法。在OMNET++仿真平台上设计了数据包缓存处理机制,并实现了有限域编码运算。在此基础上设计了独立于其他节点模块的随机网络编码模块,将其添加到网络节点模型中。使用该网络节点模型建立传感器网络,在多路径路由方式下,对应用随机网络编码模块前后数据包传输可靠性、延时和有效吞吐量网络特性进行评估,为设计应用随机网络编码提供一种仿真设计思路。

随机网络编码;OMNET++;多路径传输;缓存机制;有限域

0 引言

随机网络编码是一种分布式网络编码方式,它能适应拓扑动态变化、无中心节点的网络。随机网络编码提出推动了网络编码走向实用,使得网络编码不再受限于确定的网络拓扑以及集中式的算法[1]。在传感器网络中应用随机网络编码能提升网络的传输可靠性[2-5],降低网络中的能量消耗[6]等。文献[2-5]都是通过缠绕多路径模型计算验证了应用网络编码后网络传输可靠性的提升,文献[6]在OMNET++上通过能量模型计算评估了应用网络编码后的能量消耗,文献[7]提出了一种基于部分网络编码的机会路由机制,都是一种数值计算结果,并未实现对数据包的作编码、缓存和传输等仿真处理,未能实现网络仿真。祝琳[8]针对水声网络提出了基于网络编码的路由协议,并利用NS2进行了网络仿真,但并未进行模块化的设计,难以扩展。本文在OMNET++仿真平台上设计随机网络编码模块,添加到网络中的节点,实现数据包层级的随机网络编码仿真,能对应用随机网络编码的网络数据包传输可靠性、延时和吞吐量等网络特性进行评估。

1 仿真平台原理

1.1OMNET++

OMNET++[6]是一种离散事件仿真器,主要由6个部分组成:仿真内核库(Simulation Kernel Library,Sim)、网络描述语言的编译器(Network Description Compiler,NEDC)、图形化的网络编辑器(Graphical Network Description Editor,GNED)、仿真程序的图形化用户接口Tkenv、仿真程序的命令行用户接口Cmdenv和图形化的向量输出工具Plove。OMNeT++具有模块化的结构, OMNeT++的仿真体系结构(箭头表示2组件之间的交互)如图1所示。 Sim为嵌入式仿真内核,是处理和运行仿真的核心。当有事件发生时,仿真内核就调用执行模型中的模块。在Sim和用户接口CMDENV或TKENV之间是一个通用接口ENVIR,用户可以通过替换用户接口来定义仿真的运行环境。可执行模块是为仿真设置的模块,包括在模型组件库中所有组件的实例对象(如模块、管道等)。模型组件库包含所有已经编译好的简单模块和复合模块,仿真模型包含一些常用的网络协议、应用和通信模型。

图1 OMNET的高层体系结构

OMNeT++仿真要经历模型建立、模拟实现和结果分析3个阶段[10]。OMNeT++采用混合式的建模方式,同时使用网络描述(Network Discription,NED)语言和C++进行建模。NED是模块化的网络描述语言,包括大量的对组件的描述,如通道、简单和复合模块的类型。NED还可以实现动态加载,便于更新仿真模型的拓扑结构。C++用来实现模型的仿真和消息的处理等功能NED文件可以编译为C++代码,连接到仿真程序中。OMNeT++中的消息通过CMessage类定义,消息传输由简单模块完成,有端口传输和直接传输2种方式。端口传输是通过模块之间的端口和连接,按照一定的规则,将消息逐步传输到目的模块。而直接传输是通过仿真内核直接传输消息到目的模块。通过这套机制,可以灵活地使用C++或者OMNeT++本身定义的几个基本类,就可以实现对复杂网络模型的仿真。

1.2随机网络编码原理

信源以m为单位,将原始数据包分割,由同一原始数据包分割而来的m小个数据包X1,X2…Xm属于同一分组,用分组号识别。从有限域Fq中随机地选择m个数gi1,gi2,…,gim作为编码系数,对X1,X2…Xm进行编码组合,编码后变成了M(>m)个数据包,源端冗余系数α=M/m ,用Y1,Y2,…,YM表示,即

这里执行的都是有限域的加法、乘法运算规则。信源把编码数据包Y1,Y2,…,YM的组标志和相应的编码系数组成的编码向量添加到数据包前发送出去。中间节点接收到编码数据包后进行再编码后转发,目的节点在接收到至少m个线性无关编码数据包后即可解码得到原始数据包。编码过程如图2所示。

图2 随机网络编码原理

2 仿真设计

应用随机网络编码时需要进行有限域运算,中间节点需要对编码数据包进行缓存。同时源节点需要通过多条传输路径将编码数据包传输至目的节点,才能在中间节点实现数据包之间的融合。因此我们需要在随机网络编码模块实现有限域运算,建立缓存及多路径路由机制。

2.1有限域运算实现

有限域(Finite Field)F:域F中的元素是有限的,又称为伽罗华域(Galosis Field)。通常计算机领域采用二进制表示,有限域大小记为q,则相应的有限域中记为F2q,包含了2q个元素。与整数域,实数域相比,有如下特点:

① 只包含有限个元素,如F22={0,1,2,3},而所有运算在该域内是封闭的,不会超出这4个数;

② 为保证有限域内的加法和减法的封闭性,采用XOR执行加法和减法;

③ 为保证除法和乘法的封闭性,在执行乘法和除法时采取多项式运算,然后模上本有限域对应的本原多项式。

考虑到有限域运算时需要模上本原多项式,复杂度较高。同时,其运算在域内是封闭的,将任意2个数运算结果通过二维数组记录,实时计算时就能通过查表方式获得有限域内的四则运算结果。在此基础上,实现有限域的矩阵运算,包括矩阵相乘、求逆和求秩。

2.2缓存处理机制

图3 随机网络编码下的数据包结构

2.3网络节点模型

网络节点模型如图4所示。

图4 网络节点模型

网络仿真时,未添加随机网络编码模块时节点模型如图4(a)所示,网络节点由应用模块产生数据包,传递给路由模块,路由模块按照路由协议传输给该数据包下一节点的队列,再经连接链路传递给下一节点。添加随机网络编码模块后节点模型如图4(b)所示,应用模块产生的数据包首传递给网络编码模块进行拆分编码,再传递给路由模块。链路队列接收到其他节点传输过来的数据包后,如果是普通数据包则交付给路由模块处理;如果是编码数据包,则交付给网络编码模块进行再编码后传递给路由模块进行处理,或者解编码后交给应用模块处理。网络编码模块独立于节点其他模块,能独立进行数据包编码、解编码,只需规范好接口就能与其他模块连接好。随机网络编码模块中分组大小,冗余系数,有限域大小都能进行选择设置,仿真时就能通过调整参数获得更加适用目标网络的参数。网络编码模块独立于其他模块,在仿真时可以将其添加进不同的网络节点,选择不同的应用模块及路由模块进行实验。

3 仿真实验

通过NED语言建立的网络场景如图5所示,定义节点间的连接通道以及节点内部模块的连接关系。仿真时假设节点间通过链路状态信息的交互,在本地形成了网络中其他节点的跳数表。源节点传输数据包时,在包头中添加到目的节点的跳数标签,每转发一次,条数标签减1。中间节点接收到数据包后,当判断自身到目的节点的跳数比数据包中的跳数标签要小,则进行转发,从而在数据转发过程中形成了一种多路径。如图6所示,我们在一个矩形区域内部署了26个网络节点,随机选取其中2个节点分别为源节点(2号节点)和目的节点(17号节点),形成的多路径路由如图中灰色节点(1,7,8,9,12,14,16,18号节点)所示。

图5 网络场景

仿真参数设置如下:链路传输带宽为2 Mb/s,文件大小为2 MB,原始数据长度为1 024 Bytes,组大小m=4,节点缓冲延时为10 ms,源端冗余系数α=1.25,误码率设置从1×10-5~9×10-5变化。

仿真时设置单个原始数据包长度为1 024 Bytes,应用网络编码时,将原始数据包拆分为4个长度为256 Bytes的数据包进行编码处理。源节点与目的节点之间传输一个2 MB大小的文件,设置变化的链路传输误码率对传输可靠性、延时和有效吞吐量进行统计。同一网络,在多路径传输方式下,对比应用随机网络编码模块前后数据包传输可靠性、延时和有效吞吐量统计结果如图6所示。

图6 仿真结果

仿真结果验证了应用随机网络编码后的多路径传输方式(Network Coding Based Multipath Routing,NCMR)网络传输可靠性和有效吞吐量都要优于纯粹的多路径传输方式(Multipath Routing,MR)。应用随机网络编码后,因为缓存机制的应用,单个数据包的传输延时相较于纯粹多路径传输方式更长。纯粹多路径传输方式,从同一源节点到目的节点,数据包若传输成功,则传输延时是一样,但因为传输可靠性差,传输同样大小的文件需要更多时间,也就是有效吞吐量更低。

4 结束语

本文在OMNET++仿真平台上设计了随机网络编码模块,其添加到网络节点模型中,并与多路径传输方式对比,验证了应用随机网络编码后网络数据包传输可靠性、延时和吞吐量等网络特性能够改善。随机网络编码模块独立于其他节点模块,可进行参数设置,可设计不同的路由模块、应用层模块和链路模型进行组合,完成不同应用场景的网络仿真,为应用随机网络编码提供了一种仿真设计思路。

[1]CHOU P A,WU Y,JAIN K.Practical Network Coding[C]∥Allerton Conference On Communication,Control and Computing,2003:25-35.

[2]GUO Z,XIE P,CUI J H,et al.On Applying Network Coding to Underwater Sensor Networks[C]∥Proceedings of the 1st ACM International Workshop on Underwater Networks.ACM,2006:109-112.

[3]YANG Yu-wang,ZHONG Chun-shan,SUN Ya-min,et al.Network Coding Based Reliable Disjoint and Braided Multipath Routing for Sensor Networks[J].Journal of Network and Computer Applications,2010,33(4):422-432.

[4]赵炜,唐振民,纪淑标,等.基于网络编码的传感网多径模型分析[J].计算机工程与设计,2012,33(3):875-879.

[5]宋小全,胡鹏,孙旭.基于局部重传和网络编码的可靠性传输机制[J].北京邮电大学学报,2014,37(4):51-55.

[6]WANG Lei,YANG Yu-wang,ZHAO Wei.Network Coding-based Multipath Routing for Energy Efficiency in Wireless Sensor Networks[J].Journal on Wireless Communicaitons and Networking,2012(1):1-15.

[7]邬晨,何加铭,曾兴斌,等.一种新的基于部分网络编码的机会路由机制[J].无线电通信技术,2014,40(2):24-27.

[8]祝琳,江志浩,李迅.基于网络编码技术的水声网络路由协议研究[J].无线电通信技术,2016,42(1):24-27.

[9]夏锋.OMNET++网络仿真[M].北京:清华大学出版社,2013.

[10]赵永利,张杰.OMNET++与网络仿真[M].北京:人民邮电出版社,2012.

胡鹏男,(1989—),硕士研究生。主要研究方向:无线网络、网络编码。

宋小全男,(1969—),博士,研究员。主要研究方向:雷达工程、信息网络。

Simulation of Random Network Coding on OMNET++ Platform

HU Peng1,SONG Xiao-quan1,SUN Xu1,XIA Ye2

(1.BeijingInstituteofTrackingandTelecommunicationTechnology,Beijing100094,China;2.ChinaSatelliteMaritimeTrackingandControlDepartment,JiangyinJiangsu214400,China)

The application of RNC (Random Network Coding) can improve the transmission reliability and reduce energy consumption for wireless sensor network.But network simulation method is lacking for the application and design of RNC.Packets buffer mechanism is designed and finite field calculation is implemented on OMNET++ platform.Based on this work,a RNC module is designed,which is independent of other node modules.The RNC module is applied into network node model which is used to establish a sensor network.Applying multipath routing,the packet transmission reliability,delay and efficient throughput are evaluated with/without application of RNC.Our work provides a network simulation method for the application of RNC.

random network coding;OMNET++;multipath transmission;buffer mechanism;finite field

10.3969/j.issn.1003-3106.2016.10.04

2016-06-29

航天系统部重点预研基金资助项目(GFZX0303010801)。

TP391.4

A

1003-3106(2016)10-0016-04

引用格式:胡鹏,宋小全,孙旭,等.基于OMNET++的随机网络编码仿真实现[J].无线电工程,2016,46(10):16-19.

猜你喜欢

多路径数据包路由
二维隐蔽时间信道构建的研究*
多路径效应对GPS多普勒测速的影响
多路径助推肉牛产业稳定发展
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
基于5.8G射频的多路径识别技术应用探讨
SmartSniff
探究路由与环路的问题