0导言
跟着网络技能和通讯技能的蓬勃发展,如安在硬件条件不具备的状况下研讨大规划网络,怎么快速规划。完结。剖析新的协议和算法,怎么比较新老体系和算法而不用花费巨资树立实践体系等问题日益成为网络研讨者重视的焦点。近年来,盛行的办法是经过核算机软件对网络协议。网络拓扑。网络功用进行模仿剖析。选用这种网络仿真的研讨办法,下降了本钱,研讨办法灵敏牢靠,提高了研讨功率。现在干流的网络仿真东西首要有:OPNET,QualNet,NS-2.OPNET是商业软件,软件所供给的模型库比较有限,并且首要集中于路由仿真。QualNet也是一款商业软件,弱化了网络分层的概念。NS-2的内容比较杂乱,各模块间的协同及耦合不便于体系扩展。为此,在广泛罗致现有网络模仿器的成功经历基础上,美国华盛顿大学Thmos R. Henderson教授及其小组研发了一款极具特征的新式网络仿真器——NS-3.比较其他网络仿真东西,NS-3是一款开源软件,在多网卡处理和IP寻址战略方面体现出更好特性,一起,NS-3的架构也相对更明晰明晰,代码不需做很大修正就可直接移植到实在网络节点上,此外,研讨者可依据自身需求进行恣意拓宽。
1 MANET路由协议剖析
移动无线自组织网络(MANET)是一种无中心。自组织的散布式多跳网络,MANET以其固有特色在某些特殊场景(如:救灾。战役等)中得到了广泛运用。路由协议的好坏直接影响到整个网络功用的好坏。这儿扼要介绍MANET中运用比较广泛的3种平面路由协议。DSDV(Destination-Sequenced Distance Vector)是一种表驱动路由协议,它是在传统的距离矢量DV算法基础上改善规划的,一起也被称为消除环路的Bellman-Ford路由算法。DSDV算法中每个节点都保护一张抵达全网可达意图节点的路由表。比较DV算法,DSDV最大的差异是路由中添加了意图系列号(Sequence Number)字段,经过序列号来差异新旧路由信息。节点将收到新路由信息和当时路由信息比较,挑选序列号较大的路由记载来更新路由表。若两者序列号相同,则挑选跳数较小者。
此外,全网节点要求周期性播送路由包来进行路由保护。AODV(Ad Hoc On-Demand Distance Vector)是一种源驱动的路由协议,是DSR协议结合了DSDV中的按需路由机制规划出来的。节点在发送数据包时,首要查找自己路由表是否有抵达意图节点的路由信息,若有,则直接依照路由信息发送;若没有,则履行路由发现进程。节点播送路由恳求包RREQ给自己街坊,街坊收到RREQ包后查询自己路由表是否有抵达意图节点路由信息,若有或自身便是意图节点,则将路由信息添加到路由应对包RREP,并将其反馈给源节点;若没有,再将RREQ转发给自己一切的街坊。顺次类推,直到抵达意图节点或中心节点存在抵达意图节点的路由。
AODV协议经过定时播送Hello分组来进行路由保护,一旦发现了某条通讯链路断开,节点就会在DE-LEte_PERIOD时刻之后从路由表中删去包含该断开链路的路由,并发送ERROR(路由过错)报文来告知那些因为链路断开而不可达的节点删去相应的路由记载或许对现已存储的路由信息进行修正更新。
OLSR(Optimized Link State Routing)是一种优化的链路状况路由协议,相似其他表驱动路由协议,节点需求周期性交互网络路由信息。被街坊节点选作中继节点(Multi Point Telay,MPR)的节点周期性向网络播送操控信息分组,分组中包含将它选作MPR的那些节点的信息,以告知网络中其他节点与这些节点之间相连。并且,只要MPR节点才干够作为路由节点,其他非MPR节点不参加路由核算,也不需转播操控信息。OLSR协议中首要经过HELLO和TC(Topological Control)两种操控音讯来感知播送拓扑。经过HELLO音讯完结链路侦测。街坊侦听,以此树立节点的本地链路信息表,一起用于向街坊节点布告本节点的多点中继MPR节点的挑选;TC音讯担任履行MPR Selector链路状况声明,使得每个节点都能够感知全网拓扑结构。终究,节点依据本地链路信息库和拓扑调集中的信息,选用Dijkstra算法依据途径最短的准则核算路由表。
2 NS-3仿真渠道建立
2.1 NS-3仿真架构
NS-3是一款离散型模仿器,NS-3的网络架构首要由模仿器内核和网络构件2部分组成,如图1所示。其间模仿器内核包含时刻调度器和网络模仿支撑体系,是NS-3最中心的部分。比较NS-2,NS-3仿真时刻不只支撑Default Scheduler,并且还支撑Realtime Scheduler.
NS-3的网络模仿支撑体系包含:Attribute体系。Logging体系和Tracing体系。因为广泛罗致了其他网络仿真东西的经历和技能,NS-3的内核在可量测性。可扩展性。模块化。支撑仿真与实际交融等方面具有极大优势。NS-3的网络构件包含:节点(Node)。运用(Application)。协议栈(Protocol Stack)。网络设备(Net Device)。信道(Channel)。拓扑生成器(Helper)等。网络构件是对实在网络的各个部分的笼统,具有低耦合高内聚特色,NS-3经过低层次的笼统,使得仿真作用尽可能反映实在网络的功用。
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)设置随机数种子,以确保发生相同的随机序列,设置随机平面移动模型(Random-Walk2dMobilityModel)的参数Config::SetDefault(“NS-3::RandomWalk-2dMobilityModel::Mode”,StringValue(“Tim-e”))等,以上的大局设定使得仿真场景能够重现。
(2)界说仿真中运用的参数,比方数据包的巨细,需求创立的节点个数,物理层运用的传输速率等,这些参数能够运用CommandLine类来完结并解析,便利在仿真进程中运用外部脚本动态改动这些参数。
(3)创立网络节点,然后依照TCP/IP协议,从下而上给网络节点装置协议栈。NS-3在完结中考虑到为了便利运用者,协议栈的每一层都完结了协助类(XXX-Helper),运用者能够便利地运用这些协助类设定每一层参数。比方运用YansWifiPhyHelper设定物理层协议,运用YansWifiChannelHelper来设置传输信道类型,运用NqosWifiMacHelper来设置数据链路层协议等。最终经过协助类给节点装置路由协议,分配IP地址,至此便建立了TCP/IP的物理层。数据链路层和网络层,完结网络的通讯功用。
(4)通讯网络建立好后,需求编写试验程序,即在节点之间的收发数据包的代码,以到达测验底层协议的意图。NS-3中为了削减运用者的编程工作量,相同供给了丰厚易用的函数,一般都是先创立运用UDP协议套(Socket),一起把接纳节点号。发送节点号作为参数传入,再给套接字指定IP地址,端口号,最终让发送节点连接到接纳节点。为接纳节点指定回调函数。
(5)完结节点之间怎么发送数据包的代码后,需求编写接纳节点的回调函数,即在接纳节点收到数据包后调用的函数。能够在回调函数中对数据包的时延,投递率进行计算。
(6)运用Simulator::Schedule函数设定调度事情即设定源节点的发送数据的开端时刻,发送距离,发送数据包总数等。至此,整个场景布置完结。
3路由协议的仿真及功用比较
在Ubuntu 10.04环境下运用NS-3.16对AODV.DS-DV和OLSR这三种路由协议进行仿真,并在相同的仿真场景下比较其功用指标。分别在静态场景和动态场景下,调查网络规划。网络拓扑改变对协议功用的影响。
3.1静态场景
仿真场景设置:模仿器的随机数种子设定为常数7,节点按网格散布,网格边长500 m,节点的规划从2×2,3×3逐步增大到18×18;设定节点的通讯半径为656 m,选取网格中对角线的一个节点向另一个节点发送UDP数据包,共发送500个数据包,包的巨细为1 000 B,发送时刻距离为1 s.这儿节点的物理层传输推迟模型选用Con-stantSpeedPropagationDelayModel,式微模型选用Friis-PropagationLossModel,数据传输速率设置为1 Mb/s.添加网络节点数,调查3种协议的端到端均匀时延和包投递率状况,如图2和图3所示。
由图2能够看出,3种路由协议的均匀时延随节点规划的增大而增大,其间AODV和OLSR协议遭到的影响较小,而DSDV的均匀时延跟着节点规划的增大而急剧增大。图3中AODV,OLSR的数据包投递率随节点数增大而不变,能确保百分百交给;而DSDV协议的投递率在节点数增大到必定的规划后开端下降。以上特性阐明在节点规划增大时,AODV和OLSR协议的功用要优于DSDV.
3.2动态场景
仿真场景设置:在静态场景的基础上,为节点添加RandomWalk2dMobilityModel运动模型,该模型为每个节点随机挑选一个方向,以设定的速度移动一段时刻后再随机挑选另一个方向持续移动,直接到仿真完毕。设定相同的随机数种子以确保每次仿真中节点的运转轨道共同。设定网格的边长为300 m,节点的规划固定为7×7,即节点运动的区域约束在2 100 m×2 100 m的矩形内。仍调查对角线的一个节点向另一个节点发送UDP数据包,每次仿真发送3 000个数据包。添加节点移动速度,调查三种协议的端到端均匀时延和包投递率状况,如图4和图5所示。
从图4和图5能够看出,3种路由协议的均匀时延与节点的移动速度相关性不大,在速度较小时,3种路由协议的均匀时延较安稳,但在速度较大时,因为节点在矩形区域内做无规则的快速运动,数据包从源节点传输到方针节点的跳数不确定,所以均匀时延改变具有必定随机性。
而由图5能够看出,跟着节点移动速度的增大,数据包的投递率逐步下降,AODV协议因其归于按需路由而不需求频频地保护路由信息,所以在速度较大时较其他2种协议体现更好。
4结语
论文经过NS-3建立了MANET路由仿真渠道,从端到端均匀时延和投递率视点剖析比较了MANET三种路由协议。静态场景中,节点数添加时,3种协议端到端均匀时延均随之添加,但AODV和OLSR添加不显着,并且两者的投递率也简直不受网络规划影响,比较之下,DSDV端到端时延和投递率受网络规划影响较显着。动态场景中,节点移动速度添加,3种协议的投递率都下降,并且总体上均匀时延较小者,体现出更好的投递率。