基于NS2仿真的Ad hoc网络AODV路由协议性能研究*
2010-04-26周少琼
周少琼 徐 祎
(解放军电子工程学院信息系304教研室 合肥 230037)
1 引言
移动Ad hoc网络(Mobile Ad hoc Network)是由一组移动节点动态构成的临时无线网络,节点具备动态搜索、定位和自动恢复连接等能力,可在没有固定通信基础设施的情况下完成路由、转发包和服务发现等基本网络功能。移动Ad hoc网络组网灵活,具有移动性和鲁棒性等优点,Ad hoc网络最初应用于军事领域,近年来广泛地应用于战场通信指挥与控制、抢险救灾、临时集会、野外施工作业等紧急和突发性较强的场合。
目前,针对Ad hoc网络进行了很多方面的研究,其中大多是比较同一场景下路由性能方面的研究[1~2]。现在国外对 Ad hoc的研究[3]较广泛,而国内对于Ad hoc网络的研究大多还停留在实验仿真阶段。文中研究的场景大小与现实生活中的一些中小企业和学校相符,通过在 NS2平台上对ADOV协议进行仿真分析,为在此类场所建立Ad hoc网络提供用户数目设置依据。对于Ad hoc网络中的各节点,既可作为路由器也可当作主机,且可实现多跳通信,同时节点具有收发信号功能。Ad hoc网络的这个特点可让此研究成果应用到实际的场景节点配置中。假设在某个场景下,最佳的节点配置是40个,而实际此网络需要实现50个节点,从实际需要出发,设置10节点为40个节点中某些节点的子节点,即分布几个小型簇。文章主要通过仿真一个具体场景并构建一种模型来介绍设置节点数目的方法。
2 AODV路由介绍
按需距离矢量路由协议(AODV,Ad hoc On Demand Distance Vector Routing)是一种基于距离矢量的算法,实现组合了DSR[4]和DSDV[5]协议,它既具有DSR协议的路由发现和路由维护功能,同时又使用DSDV采用的逐跳路由、序列号和Beacon消息。其包括路由发现和路由维护两个过程[6]。
路由发现:当源节点需要与某节点通信但没有到该目的节点的路由时,它就广播路由请求RREQ,当其它节点收到这个RREQ时,首先判断是否收到过具有相同源节点和目的节点的ID,如果是重复收到就丢弃,如果没有就利用RREQ中的信息建立反向路由。如果中间节点含有到目的节点的路由,就发送路由应答RREP给源节点,否则广播该 RREQ。当 RREQ的目的节点收到RREQ时,同样建立反向路由,然后向RREQ的源节点发送RREP。路由维护:节点通过MAC层周期性广播hello消息来判断链路状态,如果该节点连续3次未收到hello响应消息,就认为链路已经断开,并删除包含该链路的路由信息,发起路由错误ERROR,通知相邻结点和相应的上游结点删除由于链路断开而导致目的结点不可达的路由信息。
3 基于NS2的网络仿真
NS2[7]是一个离散型事件驱动的网络仿真软件,由两种语言OTcl和C++编写而成,模拟平台采用C++语言编写,并使用OTcl语言编写命令和配置接口。NS2仿真步骤[8]如下:
1)编写Otcl脚本文件:配置仿真网络的拓扑结构,确定链路基本特性,移动节点所使用的路由协议,节点的数量是否已经随机移动等,并进行端设备的协议绑定,设置仿真使用的场景和传输负载(TCP流或CBR流),NS2有特定的方法来随机设置,还要设置仿真的开始和结束时间等,并在脚本文件里设置trace对象,trace文件是记录仿真过程中所发生的所有事件的文件,也可以同时设置nam对象,nam是用于演示网络运行动画的工具。
2)用NS命令执行脚本文件:执行后会在与脚本文件同一目录下生成*.tr的文件,记录仿真结果。如果在脚本文件中设置了 nam对象,则会在同一目录下生成*.nam的文件。
3)分析trace文件:由于 trace文件比较大,我们需要编写gawk程序进行仿真后期的数据处理(计算分组投递率、路由负载、吞吐量等),代码为$gawk-f*.awk*tr,再用绘图工具gnuplot将所得数据绘制成图以便直观分析。
3.1 生成随机场景
场景是用来模拟的一个虚拟的运动环境,可直接在tcl程序里面写入,但对于复杂的场景,一般用NS2提供的setdest工具来随机生成。格式为:./setdest-v<version>-n<num_of_nodes>-s<speed type>-m <min-speed>-M<maxspeed>-t<simulation time>-P<pause type>-p<pause time>-x<max X>-y<max Y>><outdir>/<scenario-file>。其中:v为版本;n为节点数目;s为速度类型,1表示在最大最小速度之间随机选择,2为运动速度服从正态分布;m为最小速度,M为最大速度;t为仿真时间;P为节点到目的位置后的停留方式,1为停留一个常数值,2表示在0到pausetime之间随机选择;p为节点到达一个目的后停留时间;x和y分别表示节点运动范围;<outdir>/<scenario-file>为输出场景文件所在的位置和文件名。
3.2 生成随机数据流
数据流是传输负载,可以使用NS2提供的cbrgen工具来生成传输负载。
使用cbrgen工具产生数据文件的格式为:ns cbrgen.tcl-type<cbr/tcp>-nn<nodes>-seed<seed>-mc<max connections>-rate<rate> > <cbrfile>。其中:cbr/tcp为业务类型;nodes为仿真的节点数;seed为随机数种子数;mc为最大连接数;rate为源节点的发送速率。调用程序的时候采取source<filename>。
文中运行场景和仿真业务:在1000m×800m长方区域拓扑内,设置不同的节点数目;固定移动速度5m/s,场景持续时间200s,暂停时间0,数据类型为cbr,设置最大连接数,分组发送速率为1.0packet/s,每个包大小512bit。其次在固定节点数目的情况下,改变源节点数目。场景分布图之一如图1所示。
图1 仿真场景图
4 仿真结果及分析
本文主要仿真AODV路由协议在同一场景下改变节点数目,通过比较数据正确接收率、数据分组的平均端到端时延、路由花费变化来得出节点数目合理化。
4.1 数据正确接收率
数据正确接收率定义为交付到目的节点的应用层数据分组数目与cbr源节点应用层发送的分组数目之比。描述通过应用层观察到的分组交付率,在一定程度上反映了协议的完整性和可靠性。仿真结果如图2、3所示。
4.2 路由开销
路由开销定义为通信过程中正确接受数据包的过程中,路由占据比率。反映数据链路的通断情况。路由开销可分为每传送一个数据分组所带来的协议分组开销和每传送一个数据字节所带来的协议字节开销。而后者更能体现实际的效率,因为协议分组的大小可能不等。因而在实验中采取后者进行统计分析。路由开销反映了网络的拥塞程度和节点电源的效率,开销大的协议拥塞的概率就大,且会延迟接口队列中数据包的发送。标准化路由开销越小,寻找到目的节点的路径所消耗的带宽就越小,发送数据分组的机会就越大,有限的无线网络带宽就越能得到有效的利用。仿真结果如图4、5所示。
4.3 数据分组的平均端到端时延
数据分组的平均端到端时延包括所有可能的时延,如路由发现过程中的延迟、接口队列处的排队时间、MAC层传输时延和传播与接收时间等。该指标对路由算法执行效率的测度和统计非常重要。数据分组的平均端到端时延=Σ(接收到数据分组的时间-发送数据分组的时间)/接收到的报文数。仿真如图6、7所示。
4.4 仿真分析
在性能比较过程中,提出一种性能评价模型。设变量a,b,c,…且a+b+c+…=1。假如研究者分析的性能还有,可以在此基础上再设置多个变量。根据如下模型进行最优选择:Best=a×avdelay+b×getratio+c×routecost+…。a,b,c…参数值大小选择,根据应用过程中性能要求高低设定。本文只分析三个性能,则设置三个变量,简单起见平均设置a=b=c=1/3。
从图2、图4、图6可以看出从数据正确接收率来看,节点在30到50之间表现良好,在延迟方面,35到40之间最低。但是在路由花费几乎成线性关系。根据性能比较,节点在35到40之间性能表现最优。
在上一个结论的基础上,固定节点数目改变源节点的数目,从图3、图5、图7可以看出从数据正确接收率来看,源节点在10左右表现良好,在延迟方面和路由花费同样如此。根据性能比较,源节点在10左右性能表现最佳。
5 结语
本文给出了Ad hoc网络AODV路由协议在NS2中仿真的具体方法和步骤,并进行了具体场景的节点数目的仿真,根据网络性能参数指标,仿真出了相应的图表,分析得到了常见场景下的最佳节点数目和在设置好最佳节点数目情况下的最优源节点数目,研究者在选取节点数目时可以参照本方法进行仿真研究。特别是对一些参数有着特别高的要求的情况下,在硬件设施相同的情况下,合理设计和分布节点可以进一步提高网络的性能。研究对于利用NS2对Ad hoc网路由协议的性能评价有极其重要的意义,同时对于进一步研究 Ad hoc网中的路由协议也有积极意义。
[1]Talooki V N,Ziarati K.Performance Comparison of Routing Protocols for Mobile AdHoc Networks[C]//2006 Asia-PacificConference on Communication,2006:1~5
[2]张登银,吴品.Ad hoc网络路由协议的性能仿真分析[J].计算机技术与发展,2009,19(7):66~72
[3]Lin chen,Jean Leneutre,Jean-Jacques Puig.Wireless and Mobile Communications[C]//ICWMC'06,2006:36
[4]C.E.Perkins,P.Bhagwat.Highly dynamic destination sequenced distance vector routing(DSDV)for mobile computers[J].The ACM SIGCOMM Conf on Communications Architectures,1994,24(4):234~244
[5]Johnson David B,Maltz David A,Hu Yih-Chun.The Dynamic Source Routing(DSR)Protocol for Mobile Ad hoc Networks[S].IETF Internet Draft,draft-ietfmanet-dsr-09,2003
[6]马崇霄,吴长奇.基于网络仿真器NS2的Ad hoc网络路由协议仿真[J].电子测量技术,2008,31(5):75~79
[7]K.Fall,K.Varadan.Ucb/lbul Network Simulator(version 2)[EB/OL].http//www.mash.cs.berkeley.edu/ns/
[8]徐雷鸣,庞博,赵耀.NS与仿真模拟[M].北京:人民邮电出版社,2003,9:5~6,20~25