滕艳平,周浩令,王海珍,陈久玲,张亚杰
(齐齐哈尔大学 计算机与控制工程学院,黑龙江 齐齐哈尔 161006)
移动无线自组织网络(Mobile Ad Hoc Network,MANET[1])是一组带有无线收发装置的移动节点组成的无线通信网络,无需固定基础设施,网络中的节点利用自身的收发装置交换信息,具备无中心、自组织、多跳路由、动态拓扑等特点[2]。MANET因组网灵活使其在军事和民用领域都得到了广泛的应用。但随着网络规模越来越大,节点的高速移动导致网络拓扑频繁变化,路由协议的研究已成为MANET最重要的核心内容。由于路由协议抽象使得初学者难于理解和掌握,针对3种典型路由协议进行了深入探讨,分析协议的工作原理及其源码,搭建NS-3仿真实验平台,设计了仿真脚本,采用随机移动模型设置多组网络仿真场景,对影响路由协议的多个性能指标分别进行了对比分析,给出不同的路由协议所适应的网络环境,为MANET的实验教学提供了一定指导。
目的节点序列距离矢量协议(Destination-Sequenced Distance-Vector routing,DSDV[3])是一种表驱动的路由协议,基于经典的Bellman-Ford路由算法,其思想就是利用网络节点维护一个递增的目的序列号,通过给每个路由设定序列号方式避免了路由环路的产生。每个节点在本地维护一张路由表,路由表保存本节点到所有可达节点的路由,节点周期性的广播路由更新信息,并根据序列号的大小来决定是否更新路由。
按需距离矢量路由协议(Ad Hoc On-Demand Distance Vector,AODV[4])是一种专为MANET设计的路由协议,AODV路由协议结合了DSR路由协议和DSDV路由协议的优点,只有当需要与其他节点通信时,才会启动路由发现过程,其具有快速收敛的能力,能够在网络拓扑变化时保持正常运行[5]。AODV路由协议主要由路由发现和路由维护两个核心环节组成,都是通过路由请求(Route Request,RREQ)、路由应答(Route Reply,RREP)和路由错误(Route Error,RERR)3种类型的消息格式实现。只有当通信节点间没有有效路由时,才会开启路由发现,源节点广播RREQ寻找到达目的地的路由[5]。AODV对每条路线节点使用目的地序列号,确保链路足够新。
贪婪周边无状态路由协议(Greedy Perimeter Stateless Routing,GPSR[6])是使用转发节点和数据包目标的位置信息来进行路由分发的无线自组织网络路由协议。GPSR协议通过周期性广播自身位置信息,各节点维护一跳邻居节点列表,无需维护路由表,转发节点选择下一跳时将根据位置信息的地理位置进行选择。采用贪婪转发模式,下一跳节点的距离比自身距离目的节点更近,如果没有这种节点,则采用周边转发模式。GPSR能够更好适应拓扑迅速变化的场景,易于网络的扩展。
NS-3项目的缩写名称“NSNAM”历史起源于NS(Network Simulator)和NAM(Network Animator)的串联[4,7],NS-3是一个离散事件网络模拟器,相比NS-2、NS-3是一个全新的网络模拟器,并不是NS-2的升级。NS-3组件是用C++语言开发的,同时也可以使用Python语言。NS-3仿真过程如图1所示,首先构建网络测试环境[8],包括各节点的建立和物理拓扑层的配置,添加网络协议栈以及Ipv4地址的分配,路由协议的初始化等;第二步是移动场景的创建,由于我们的研究对象为移动无线自组织网络,根据实验对象的不同,选择适合的移动模型显得格外重要;第三步是进行结果的追踪,主要追踪每个流中每个包的各种数据,方便对后续的结果分析;最后使用Gnuplot把分析结果通过曲线的形式展现出来,便于更直观地观察仿真结果。
图1 NS-3仿真过程示意图
在Ubuntu18.04环境下使用NS-3.29对AODV、DSDV以及GPSR 3种MANET路由协议进行仿真。NS-3主要参数如表1所示。
表1 NS-3参数设置
为了更好地观测不同变量对协议的影响,共设置了3组实验。模拟实验场景有3种变量,场景面积、节点数量和节点速度,如表2所示。在不同的对比实验中,设置不同的变量和定量,为了更好地观察以及对比实验的特殊性,每组对比实验只能设置一个变量。但是在每组对比实验中,也不能忽略实验定量对实验的影响,如果定量的数值不能恰当的设置,那么很可能影响实验结果的判断。所以本文在每组实验中加入了嵌套对比,协同观察实验变量对协议的影响。
表2 实验变量设置
第1组实验用于观察运行时间对路由协议的影响。实验利用每个时间节点接收到的数据包数量来更直观地观察协议的运行情况。
第2组实验用于观察节点数量对路由协议的影响。本组实验又分为两个小组,考虑到节点功率是恒定值,为了避免节点通信距离的阈值对实验的影响,实验分别在1 km*1 km和2 km*2 km的实验场景下进行;每组实验在相同场景面积下,设置节点数量为变量,通过对4种性能指标来观察节点数量对路由协议的影响。具体场景参数如表3所示。
表3 第2组实验参数设置
第3组实验用于观察节点速度对路由协议的影响。本组实验又分为两个小组,实验分别在50和100个节点数量下进行;每组实验在相同的节点数量下,设置节点速度为变量,通过四种性能指标观察节点速度对路由协议的影响。具体场景参数如表4所示。
表4 第3组实验参数设置
为了保证实验的准确性,本文在实验中设置了10个流,然后对这10个流取均值,最终以10个流的平均值作为路由协议的运行结果。由于实验变量太多,拓扑无法全部展示出来,这里用移动区域为1km*1km的矩形节点数量为100来展现网络的初始随机拓扑,如图2所示。在NS-3中使用移动模型为Random Way Point Mobility Model。
图2 初始拓扑
3.2.1 节点运行时间对路由协议的影响
分别选取场景大小为1 km*1 km和2 km*2 km,以及节点数量为50和100,在仿真实验中,观察3种协议接收包的数量及随时间的变化,仿真结果如图3所示。
图3 接收包的数量随时间的变化
可以发现GPSR在每个场景下接收包的数量都是最低的,并且相比其他两个协议较为平稳,DSDV是三种协议波动最大的协议。在相同节点数量的情况下,可以发现2 km*2 km场景下的3种协议接收包的数量都低于1 km*1 km场景下的协议;这是因为节点的有效通信距离有限,在大的场景下,节点接收数据包的成功率会下降;在相同场景面积下,可以发现100节点比50节点的抖动要更大,特别是DSDV,因为DSDV是主动式路由,周期性更新路由,所以刚更新时的数据包接收的准确率较高,在这一周期内随着时间的增加,路由拓扑变化也越来越大,所以其包接收率也越来越低,但是进入下一周期,随着路由表的更新,其路由准确率最高,所以其包的接收率也跳变到最大,这是DSDV波动最大的原因,节点数量较多的时候,其路由拓扑变化越大,这是100节点比50节点波动更大的原因。
3.2.2 节点数量对路由协议的影响
实验场景设置见表3。观察节点数量对协议时延、抖动、投递率和吞吐量的影响,仿真结果如图4, 5所示。
图4 节点数量对协议的影响(1 km*1 km)
图4比图5的场景节点稠密一倍,对图4(a),(b)和图5(a),(b)分析,在节点数量较少的情况下,3种路由协议的时延和抖动相差不大,但是随着节点数量的增加,DSDV和AODV的端到端时延也随之增大,其中DSDV的时延和抖动增加更快,所以DSDV不适用于节点密集的地方。GPSR的时延和抖动最小,这与3种协议的工作方式有关,GPSR只存储下一跳的节点(即邻居节点),选取工作半径内距离目的节点最近的节点为下一跳节点,所以它的端到端时延最小,而DSDV是主动式路由,当节点数量增大时,DSDV的路由开销就越大。对图4(c),(d)和图5(c),(d)分析,3种协议都随着节点数量的增加而降低,但AODV的吞吐量相对最大,因为AODV不需要像DSDV节点周期性更新路由表,也不需要像GPSR周期性向邻居广播位置信息,路由开销小,所以其吞吐量最大。
图5 节点数量对协议的影响(2 km*2 km)
3.2.3 节点速度对路由协议的影响
实验场景设置见表4。观察节点数量对协议时延、抖动、投递率和吞吐量的影响,仿真结果如图6, 7所示。
图6 节点速度对协议的影响(节点数量为100)
对图6(a),(b)和图7(a),(b)分析,GPSR算法在任一速度下的平均时延明显低于AODV和DSDV,GPSR使用地理位置不断趋近目的节点,贪心策略使得数据包更快的投递到目的节点,减少数据包的转发次数,所以时延较小。DSDV为主动路由,随着速度的增加,其时延和抖动增加的更快,所以其对高速移动性的适应性更差。并且通过对比图6和图7发现AODV更适合节点数量稀疏的场景。
图7 节点速度对协议的影响(节点数量为50)
对图6(c),(d)和图7(c),(d)分析,在节点数量为100时,随着速度的增加,GPSR和DSDV的投递率和吞吐量都降低,而AODV则表现良好,所以AODV对高速移动场景的适应性较好;在节点数量为50时,任意速度下,GPSR的投递率和吞吐量都低于AODV和DSDV,DSDV低于AODV,并且随着速度的增加,DSDV和GPSR的吞吐量和包投递率(PDR)都降低。这是因为GPSR是通过周期性广播邻居节点位置坐标的信息,在高速环境下节点位置坐标变化更快,所以依赖坐标进行路由选择的准确性会下降,DSDV是主动路由,所以随着速度的增加,其依赖路由表进行路由选择的准确性也随之下降。
本文详细比对了主动式路由DSDV、按需路由AODV和基于地理位置信息的路由GPSR三种协议。观察路由协议接收包数量随时间的变化情况,并分别在节点数量、节点速度以及实验场景面积等方面做对比实验,观察三种协议在端到端时延、抖动、分组投递率以及吞吐量上的表现。节点数量和节点速度是影响路由协议最大的因素,在这里我们考虑到节点的通信距离对实验的影响,所以在节点数量上增加了实验场景面积这一因素,综合比对三种协议,AODV适合节点速度快、节点数量小的场景;DSDV适合节点速度小,节点数量小的场景下;GPSR适合于需要低时延并且传输信息量少的场景。