基于NS-3的MANET路由协议性能分析
基于NS?3的MANET路由协议性能分析
摘耍:NS?3在多网卡处理和TP寻址策略方面具有很的好特性,为了提高MANET路由协议性能,采用了NS?3仿真工具对MANET路由协议进行分析,详细阐述了如何搭建NS?3仿真平台,并从网络规模和动态拓扑角度分析比较了AODV,DSDV和OLSR三种路由协议的端到端平均时延和投递率性能。仿真结果为协议的后续优化和改进提供了依据。
关键字:路由算法;协议仿真;MANET;NS?3
中图分类号:TN711734文献标识码:A文章编号:1004?373X
(2013)08?0055?04
0引言
随着网络技术和通信技术的蓬勃发展,如何在硬件条件不具备的情况下研究大规模网络,如何快速设计、实现、分析新的协议和算法,
如何比较新老系统和算法而不必花费巨资建立实际系统等问题LI益成为网络研究者关注的焦点。近年来,盛行的方式是通过计算机软件对网络协议、网络拓扑、网络性能进行模拟分析。采用这种网络仿真的研究方法,降低了成本,研究方法灵活可靠,提高了研究效率。现在主流的网络仿真工具[1]主耍有:OPNET,QualNet, NS?2。OPNET是商业软件,软件所提供的模型库比较有限,而且主要集中于路由仿真。QualNet也是一款商业软件,弱化了网络分层的概念。NS?2的内容比较庞杂,各模块间的协同及耦合不便于系统扩展。为此,在广泛汲取现有网络模拟器的成功经验基础上,美国华盛顿大学ThmosR.
Henderson教授及其小组研发了一款极具特色的新型网络仿真
器一一NS?3。相比其他网络仿真工具,NS?3是一款开源软件,在多网卡处理和TP寻址策略方面表现出更好特性,同时,NS?3的架构也相对更明了清晰,代码不需做很大修改就可直接移植到真实网络节点
上,此外,研究者可根据自身需求进行任意拓展[2?3]。
1MANET路由协议分析
移动无线自组织网络(MANET)是一种无中心、自组织的分布式多跳网络,MANET以其固有特点在某些特殊场景(如:救灾、战争等)中得到了广泛运用。路由协议的好坏直接影响到整个网络性能的优劣。这里简要介绍MANET中应用比较广泛的3种平面路由协议[4]。DSDV(Destination?Sequenced DistanceVector)是一种表驱动路由协议,它是在传统的距离矢量DV算法基础上改进设计的,同时也被称为消除环路的Bellman?Ford路由算法[5]。DSDV算法中每个节点都维护一张到达全网可达目的节点的路由表。相比DV算法,DSDV最大的区别是路由中增加了目的系列号(SequenceNumber)字段,通过序列号来区别新旧路由信息。节点将收到新路由信息和当前路由信息比较,选择序列号较大的路由记录来更新路由表。若两者序列号相同,则选择跳数较小者。此外,全网节点要求周期性广播路由包來进行路由维护。AODV(Ad Hoc On?Demand Distance Vector)是一种源驱动的路由协议[5],是DSR[6]协议结合了DSDV屮的按需路由机制设计
出来的。节点在发送数据包吋,首先查找自己路由表是否有到达目的
节点的路由信息,若有,则直接按照路由信息发送;若没有,则执行路由发现过程。节点广播路由请求包RREQ给自己邻居,邻居收到RREQ包后查询自己路由表是否有到达目的节点路由信息,若有或本身就是目的节点,则将路由信息添加到路由应答包RREP,并将其反馈给源节点;若没有,再将RREQ转发给自己所有的邻居。依次类推,直到到达目的节点或中间节点存在到达目的节点的路由。A0DV协议通过定期广播Hello分组来进行路由维护,一口发现了某条通信链路断开,节点就会在DELETE_PERIOD吋间之后从路由表中删除包含该断开链路的路由,并发送ERROR(路由错误)报文来通知那些因为链路断开而不可达的节点删除相应的路由记录或者对已经存储的路由信息进行修复更新。
OLSR(Optimized Link StateRouting)是一种优化的链路状态路由协议,类似其他表驱动路由协议,节点需要周期性交互网络路由
信息⑺。被邻居节点选作中继节点(MultiPoint Telay,MPR)的节点周期性向网络广播控制信息分组,分组中包括将它选作MPR的那些节点的信息,以告诉网络中其他节点与这些节点之间相连。而且,只有MPR节点才能够作为路由节点,其他非MPR节点不参与路由计算,也不需转播控制信息。OLSR协议屮主要通过HELLO和TC(TopologicalControl)两种控制消息来感知广播拓扑。通过HELLO消息实现链路侦测、邻居侦听,以此建立节点的本地链路信息表,同吋用于向邻居节点通告本节点的多点中继MPR节点的选择;TC消息负责执行MPRSelector链路状态声明,使得每个节点都能够感知全网拓扑结构。最终,节点根据本地链路信息库和拓扑集合中的信息,采用Dijkstra算法根据路径最短的原则计算路由表。
2 NS?3仿真平台搭建
2.1NS?3仿真架构
NS?3是一款离散型模拟器,NS?3的网络架构主要由模拟器内核和网络构件2部分组成,如图1所示。其中模拟器内核包括时间调度 器和网络模拟支持系统,是NS?3最核心的部分。相比NS?2,NS?3仿
真时间不仅支持DefaultScheduler,而且还支持Realtime
ScheduleroNS?3的网络模拟支持系统包Jfi:Attribute系统> Logging系统和Tracing系统。由于广泛汲取了其他网络仿真工具的经验和技术,NS?3的内核在可量测性、可扩展性、模块化、支持仿真与现实融合等方面具有极大优势[8]o NS?3的网络构件包括:节点(Node)、应用(Application)、协议栈(ProtocolStack)> 网络设备(Net
Device)、信道(Channel)>拓扑生成器(Helper)等。网络构件是
对真实网络的各个部分的抽象,具有低耦合高内聚特点,NS?3通过低层次的抽象,使得仿真效果尽可能反映真实网络的性能。
<!—endprint--> <!—startprint―>
2.2 NS?3 仿真流程
以下简单介绍NS?3代码编写的特点及如何在NS?3中搭建一个完整仿真场景的过程。NS?3运彳亍在Linux环境下,对Linux系统版本有要求且依赖较多系统组件,安装过程较复杂。NS?3仿真器代码核心部分全部使用C++语言编写,外部配置、编译、执行使用了基于
Python的waf系统,方便使用者配置仿真场景。NS?3完全模拟了 |
|
TCP/IP的协议栈,并且把每一层的功能模块化,在NS?3安装完成后,默认只是生成各个功能模块,自带的仿真例子没有生成,需要把这些例子复制到scrach文件夹下才能运行,并且NS?3中编写好的代码也都需要放到该文件夹下才能运行。在NS?3中搭建仿真场景遵循固定的流程,在编写C++代码时一般可以分为以下几个步骤:
(1)设置仿真场景的全局参数。比如采用Seed?Manager::
SetSeed
(7)设置随机数种子,以保证产牛相同的随机序列,设置随机平面移动模型(RandomWalk2dMob订ityModel)的参数Config::SetDefault (〃NS?3::RandomWalk?2dMobilityModel::Mode", StringValue (〃Tim?e〃))等,以上的全局设定使得仿真场景可以重现。
(2)定义仿真中使用的参数,比如数据包的大小,需要创建的节点个数,物理层使用的传输速率等,这些参数可以使用CommandLine类来实现并解析,方便在仿真过程中使用外部脚本动态改变这些参数。
(3) 创建网络节点,然后按照TCP/IP协议,从下而上给网络节点安装协议栈。NS?3在实现中考虑到为了方便使用者,协议栈的每
一层都实现了帮助类(XXXHelper),使用者可以方便地使用这些帮助
类设定每一层参数。比如使用YansWifiPhyHelper设定物理层协议,使用YansWifiChannelHelper来设置传输信道类型,使用
NqosWifiMacHelper来设置数据链路层协议等。最后通过帮助类给节点安装路由协议,分配IP地址,至此便搭建了TCP/IP的物理层、数据链路层和网络层,实现网络的通信功能。
(4)通信网络搭建好后,需要编写实验程序,即在节点之间的收发数据包的代码,以达到测试底层协议的目的。NS?3中为了减少使用者的编程工作量,同样提供了丰富易用的函数,…般都是先创建使用UDP协议套(Socket),同时把接收节点号、发送节点号作为参数传入,再给套接字指定IP地址,端口号,最后让发送节点连接到接收节点、为接收节点指定回调函数。
(5)完成节点之间如何发送数据包的代码后,需要编写接收节点的冋调函数,即在接收节点收到数据包后调用的函数。可以在冋调 函数中对数据包的吋延,投递率进行统计。
(6)使用Simulator::Schedule函数设定调度事件即设定源节点的发送数据的开始时间,发送间隔,发送数据包总数等。至此,整个场景部署完成。
3路由协议的仿真及性能比较
在Ubuntu10. 04 环境下使用NS?3.16 对AODV、DSDV和0LSR这
三种路由协议进行仿真,并在相同的仿真场景下比较其性能指标。分别在静态场景和动态场景下,考察网络规模、网络拓扑变化对协议性能的影响。
3. 1静态场景
仿真场景设置:模拟器的随机数种子设定为常数7,节点按网格分布,网格边长500m,节点的规模从2X2,3X3逐渐增大到18X18;设定节点的通信半径为656m,选取网格中对角线的一个节点向另一个节点发送UDP数据包,共发送500个数据包,包的大小为1000 B, 发送时间间隔为1So这里节点的物理层传输延迟模型釆用
ConstantSpeedPropagationDelayModel,衰落模型选用
FriisPropagationLossModel,数据传输速率设置为1Mb/s。增加网
络节点数,考察3种协议的端到端平均时延和包投递率情况,如图2和图3所示。
由图2可以看出,3种路由协议的平均吋延随节点规模的增大而增大,其中A0DV和0LSR协议受到的影响较小,而DSDV的平均时延随着节点规模的增大而急剧增大。图3+ A0DV,0LSR的数据包投递率随节点数增大而不变,能保证百分百交付;而DSDV协议的投递率在节点数增大到一定的规模后开始下降。以上特性说明在节点规模增大时,A0DV和OLSR协议的性能要优于DSDVo
3. 2动态场景
仿真场景设置:在静态场景的基础上,为节点添加
RandomWa1k2dMob订ityModel运动模型,该模型为每个节点随机选择一个方向,以设定的速度移动一段时间后再随机选择另一个方向继续移动,直接到仿真结束。设定相同的随机数种子以保证每次仿真中节点的运行轨迹一致。设定网格的边长为300m,节点的规模固定为7X7,
即节点运动的区域限制在2100 mX2 100 m的矩形内。仍考察对角线的一个节点向另一个节点发送UDP数据包,每次仿真发送3000个数据包。增加节点移动速度,考察三种协议的端到端平均时延和包投递率情况,如图4和图5所示。
从图4和图5可以看出,3种路由协议的平均吋延与节点的移动速度相关性不大,在速度较小吋,3种路由协议的平均时延较稳定,但在速度较大时,由于节点在矩形区域内做无规则的快速运动,数据包从源节点传输到目标节点的跳数不确定,所以平均吋延变化具有一定随机性。
而由图5可以看出,随着节点移动速度的增大,数据包的投递率逐渐下降,AODV协议因其属于按需路由而不需要频繁地维护路由信息,所以在速度较大吋较其他2种协议表现更好。
4结语
论文通过NS?3搭建了MANET路由仿真平台,从端到端平均时延和投递率角度分析比较了MANET三种路由协议。静态场景中,节点数 增加吋,3种协议端到端平均时延均随之增加,但AODV和OLSR增加
不明显,并且两者的投递率也儿乎不受网络规模影响,相比之下,DSDV
端到端吋延和投递率受网络规模影响较明显。动态场景中,节点移动速度增加,3种协议的投递率都降低,而且总体上平均时延较小者,表现出更好的投递率。<!--endprint--><!--startprint--> 参考文献 [1]雷擎,王行刚•计算机网络模拟方法与工具[J]•通信学报,2001,22 (9): 84?90.
[2]HENDERSONTR, LAC AGE M, RILEY GF. Network simulations
withthe NS?3 simulator [C]// Proceedings of the ACM SIGCOMM.
Seattle, Washington: [s.n.],
2008:1111?1121.
[3] NS?3 developers. NS?3 Tutorial [EB/OL]. [2012?ll?13. http: //www. nsnam・ org/docs/release/3・
15/manual/ns?3nidnua1.
[4] 王立平,崔智林,马力•基于0PNET仿真平台的MANET路由协议性能分析[J]•现代电子技术,2011, 34 (14): 71?74.
[5] PERKINS C E, BHAGWAT P. Highly dynamic |
|
destination?sequenceddistance vector routing (DSDV) for mobile computer [C]// Proc, ofACMSIGCOMM" 94. [S. 1. ]: ACM, 1994, 8:2507256・
[6]JOHNSOM D, MALTZ D A, BROCH J. The dynamic source routingprotocol for mobile AD hoc networks
(Internet?draft)[M]. [S.1.]: Mbole Ad?hoc Network (MANET) WorkingGroup, IETF, 1998.
[7]CLAUSEN T, JACQUET P, ADJIH C, et al. Optimized link state routingprotocol [J]・2003.
[8]张登引,张保峰•新型网络仿真器NS?3研究[J]•计算机技术与发展,2009,19 (11):80?84.
[9]PERKINS C, BELDING REDS. RFC3561:ADhoc on?demand distance vector (AODV) routing [EB/OL]. [2006?07?13].http://ww.cnpaf. net/Class/Rfcen/0532918543250102.