基于NS-3的MANET路由协议性能分析
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.
- 网络自组织通信模式和技术研究综述(10-26)
- MANET与Internet互联中默认路由转发策略的改进(08-13)
- 动态路由协议OSPF原理和特性(01-10)
- 路由协议基础知识(01-24)
- Ad hoc网络的关键技术(06-03)
- Ad hoc路由协议实现研究(09-03)