轨道交通环境下无线MESH网络中AODV协议的改进与仿真
2018-09-21孙怀东孙宇梁
孙怀东,孙宇梁
(1.三明学院 机电工程学院,福建 三明 365004;2.湖州师范学院 理学院,浙江 湖州 313000)
无线Mesh网络是一种新型的无线网络结构,它因组网灵活、支持范围大和移动性强等特点,使其在城市轨道交通中具有很好的应用前景[1]。若将传统的AODV协议[2]应用于轨道交通环境下的无线Mesh网络中,它将采取一种类似于被动网关发现的方式来发现通往网关的路由。当终端有信息要发送到Internet中,却没有通向Mesh Gateway的路由时,将广播带有源节点IP地址和目的网关IP地址等信息的Route Request报文,当具有通往目的节点的路由的中介节点或者目的节点收到Route Request后,此节点向源节点发送Route Reply报文。该报文到达源节点后,源节点通往目的网关的路由正式建立。
如图1所示,轨道交通无线Mesh网络[3]采用的网络结构是一种带状结构,包含交换控制中心(SCC),Mesh 网关(MPP),Mesh 路由器(MAP),Mesh 客户终端(MC)4 种网络实体。 交换控制中心是轨道交通WMN的核心,他一方面接入Internet,另一方面以有线的形式与MPP相连;MAP是部署在轨道交通沿线上的Mesh路由器,它们一方面接受客户终端的接入,另一方面可以对分组进行路由转发;MPP是骨干链路通往有线网络的出口,多个MPP使骨干链路构成了一个“多出口总线式”网络结构[4];MC是部署在交通工具(如:列车、地铁)上的Mesh终端,要求支持快速AP切换,保证从一个MR切换到下一个MR保持连接不间断。
图1 轨道交通WMN结构
由于轨道交通环境下的无线Mesh网络的数据大多是由MC发出,流经MAP最终通过MPP到达SCC,数据流向的方向性非常明显。此外,这种网络结构中MAP及MPP的移动性较小并不需要频繁更新路由表内容。在传统的AODV协议中,由于Route Request广播报文并无方向性,所以若网络中有多个MC同时发起路由建立请求,将会导致网络中充满大量的广播请求帧,严重影响了网络吞吐量,占用了宝贵的带宽资源[5]。因此可以根据轨道交通WMN网络结构相对固定且数据流向的方向性显著的特点结合主动的网关路由发现算法对传统的AODV协议进行改进。
1 基于主动网关发现算法的AODV协议PGD_AODV
1.1 改进思想
轨道交通WMN的数据大多流向MPP,但是由于Route Request广播报文没有方向性,所以其可能在向离MPP靠近的方向转发的同时也向相反的反向转发,而后者对于路由建立没有帮助并且占用了带宽资源,降低了网络通信吞吐量。
如图1所示,虚线箭头代表传统AODV协议中Route Request报文的传播方向。当MC1节点需要建立通往交换控制中心的路由时,广播无方向的Route Request报文,由图1我们可以看出以目前MC1所处位置,通向MPP1的跳数要小于通向MPP2的跳数,所以此时不可能通过MAP2及MAP3建立路由,但是由于传统AODV协议中广播报文的无方向性,所以MAP2、MAP3不会对收到的Route Request报文进行判断看是否有广播的必要,所以Route Request报文仍会向该方向转发,即使在MC1已经成功建立了该路由的情况下,Route Request报文仍在该方向上进行广播,造成了大量不必要的开销。因此,如果能不可能建立最佳路由的路径上的节点对Route Request报文不进行转发的话,就可以减小对带宽资源的占用,提高网络通信吞吐量。
1.2 新增报文结构[6]
由1.1所阐述的改进思想可以看出,如果能够使不可能建立最佳路由的路径上的节点不转发Route Request报文,则能够使Route Request报文尽量向靠近目前最优MPP节点的方向传播。本章提出的PGD_AODV协议建立了一种主动网关发现机制,以便每个MAP节点或者MC节点可以学习自己到各个MPP的距离。为支持这种机制,在传统AODV协议现有报文的基础上增加了MPP Hello Message报文,用于MPP节点广播自身信息;同时增加了MPP-距离表结构,每个MAP节点维护一张MPP-距离表,用于保存目前自身到各个MPP节点的最短距离等信息;最后还对AODV协议中的Route Request报文结构进行了修改,以支持主动网关发现机制。
1.2.1 PGD_AODV的Route Request报文结构
PGD_AODV的Route Request报文结构如图2。
图2 PGD_AODV的Route Request报文结构
PGD_AODV的Route Request报文结构与传统AODV协议的Route Request报文相比,增加了Handled 标 志 位 (H)、ToOutsideNet标志位 (T)、 距离 MPP跳数字段(Hop Num)、目标 MPP IP地址字段(Destination MPP Address), 各 个 新增字段的含义如下:
① Handled标志位:表示本Route Request报文是否已经在之前经过的节点中确定了要通往的MPP节点,若已经确定,则本标志位标记为True,否则本标志位标记为False。
②ToOutsideNet标志位:表示本Route Request报文的目的节点是否是外网节点。若本Route Request报文的目的节点的IP地址与源节点的IP地址不在一个网段(须流向MPP节点),则本标志位标记为True,否则本标志位标记为False。
③目标MPP IP地址字段:表示目前本Route Request报文经历最少跳数能到达的MPP节点的IP地址。
④距离MPP跳数字段:到达目标MPP节点所需要的跳数。
1.2.2 MPP Hello Message报文结构
MPP Hello Message报文结构如图3。
图3 MPP Hello Message报文结构
新增的MPP Hello Message报文结构的字段主要有Type(类型)、MPP IP Address(发送本报文的MPP节点的IP地 址 )、MPP Hello Message ID (报 文ID)、Hop Count(跳数计数),各个字段的含义如下:
① Type:标识本报文类型为MPP Hello Message报文。
② MPP Hello Message ID:报文 ID,每个MPP Hello Message报文有且只有一个ID,用于唯一标识每个报文,识别重复报文。
③MPP IP Address:发送本报文的MPP节点的IP地址,供各个MAP节点学习。
④ Hop Count:本报文经历的跳数。
1.3 MPP-距离表表项(MPP-Distance Entry)结构
MPP-Distance表表项结构如图4所示。
新增的Node-Distance Entry(节点-距离表表项)结构的字段主要有MPP IP Address(MPP节点的 IP 地址)、MPP Sequence Number(MPP 序号)、Distance(距离),各个字段的含义如下:
① MPP IP Address:MPP节点IP地址。
图4 MPP-Distance表表项结构
② MPP Sequence Number:MPP节点序号,用于识别旧的Hello Message报文。
③ Distance:本节点距离MPP IP Address字段对应的MPP节点的最少跳数。
1.4 PGD_AODV协议的工作原理
如果能够使不可能建立最佳路由的路径上的节点能够不转发Route Request报文,则能够使Route Request报文向尽量向靠近目前最优MPP节点的方向传播。因此需要每个MAP节点或者MC节点可以学习自己到各个MPP的距离。这通过MPP节点周期性广播MPP Hello Message报文(参考1.2.2)实现。
1.4.1 MAP及MC节点学习阶段描述
MPP节点广播MPP Hello Message报文;
MAP节点或者MC节点接收到MPP Hello Message报文:
1.4.2 发起路由更新(建立)阶段描述
1.4.3 节点收到路由请求处理阶段描述
1.4.4 协议整体过程描述
PGD_AODV协议在处理路由发起时的效果如图5所示,其中MAP节点旁的文字表示该MAP节点与离它最尽的MPP节点的距离。
图5 PGD_AODV协议执行过程图
当MC1想要建立去往交换控制中心的路由时,先广播RREQ其中HOP_NUM字段为 2(跳),到达第一个MAP节点后,其通往目的MPP需要1跳,符合条件,设置HOP NUM为1(跳)后继续广播,分别送往MPP和第二个MAP节点。当第二个MAP节点收到RREQ报文后,发现通往目的MPP需要2跳而HOP NUM为1(跳),故丢弃该RREQ包不予转发。实现了RREQ包广播的方向性。
若按照传统AODV协议的方式,向右传播的RREQ报文不会被丢弃,而会被继续传播至目的节点,但是返回的RREP报文因为跳数过大,而导致该路径不会被采用,所以产生了很多不必要的网络资源消耗。
显而易见,PGD_AODV协议不仅加快了路由建立的时间,同时减少了网络中的广播信息,缓解了网络对带宽资源的压力。
2 协议仿真和结果分析
2.1 仿真环境
采用NS-3网络模拟器对传统AODV协议和PGD_AODV协议进行仿真对比,将对网络吞吐量、平均端到端时延、丢包率进行评估。
20个MAP节点以及3个MPP节点呈带状分布,每隔5个MAP节点部署一个MPP节点,MPP节点通以有线方式接入交换控制中心。MC节点沿着带状链路以54 km/h的速度移动。拓扑图如表1所示。在MC节点上安装On-Off Application以54 Mbps的速率向交换控制中心发送TCP报文,MAC层协议采用IEEE802.11 g。仿真模拟时间为147.0 s,MC节点从0.1 s开始发送数据,147.0 s停止发送数据。分别以Seed值为1~10进行了10次试验。
表1 仿真参数表
2.2 结果分析
2.2.1 网络吞吐量
网络吞吐量(Throughput)THO表示在单位时间内通过某个网络(或信道、接口)的数据量,在分析Pcap文件时,可以用公式(1)计算平均吞吐量:
公式中,TotalDataReceived是指目的节点接收到源节点发送报文的总字节数;SimulationTime指的是从发送第一个包开始到发送最后一个包结束之间持续的时间。仿真结果如图6所示。
图6 网络吞吐量
从图6可以看出,在10次实验中使用改进PGD_AODV协议的网络的吞吐量性能明显优于使用传统AODV协议的网络。经过统计,在这10次试验中使用PGD_AODV协议的网络的平均吞吐量约为10.2 Mb/s而使用传统AODV协议的网络平局吞吐量约为3.2 Mb/s,可见使用改进后的AODV协议的网络的吞吐量大约是使用传统AODV协议的网络的3倍左右。这是由于改进后的AODV协议很好的限制了网络中无用的广播报文的传播。
2.2.2 丢包率
丢包率(Packet Loss)是指测试中所丢失数据包数量占所发送数据包的比率,通常在吞吐量范围内测试。在分析NS-3日志文件时,以公式(2)来计算丢包率:
公式中TPN表示源节点发送的分组总数,RPN表示目的节点接收到的分组总数仿真结果如图7所示。
从图7可以看出,在10次实验中使用改进后的AODV协议的网络的丢包率基本上略低于使用传统AODV协议的网络。
2.2.3 平均端到端时延
时延(Time-Delay)是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。在分析NS-3日志文件时,使用公式(3)来计某一分组的时延,使用公式4来计算网络平均端到端时延:
公式3中,RT(i)表示目的节点接受到分组i的时间,ST(i)表示源节点发送分组i的时间。公式4表示对N个分组的时延值求平均值。
仿真结果如图8所示。
图8 时延
可见看出使用PGD_AODV协议的网络与使用传统AODV协议的网络平均端到端时延相当,但是经统计使用PGD_AODV协议的网络的端到端实验数据方差小,说明时延抖动均匀,优于使用传统AODV协议的网络。
2.2.4 PGD_AODV协议与传统AODV协议在路由修复方面的性能仿真
在传统AODV协议中,若某个节点出现故障,则路径中有该节点,且在该节点之前的各个节点因收到错误报文而移除有关该路径的路由。再由各个需要通信的源节点重新发起路由建立过程。前文已经提及,传统AODV协议的路由建立发起过程,势必造成许多没有意义的广播在网络中传播,对网络性能造成不良影响。同时,在PDG_AODV协议中,由于各个MAP节点已经学习到自己到距离自己最近的MPP节点的距离,因此,若某条通往MPP的路径断裂,则可以更快的完成路由重新建立的过程。本文针对MC节点周围的MAP节点突然不能正常工作的情形,分别应用AODV协议以及PGD_AODV协议进行了仿真实验。仿真环境及参数与2.1小节中介绍的相同。
图9 AODV协议在正常情况以及出现节点损坏情况下的吞吐量对比图
图10 PGD_AODV协议在正常情况以及出现节点损坏情况下的吞吐量对比图
本实验通过在指定时间将节点移动至无穷远处来模拟网络设备的损坏,多次检测了分别使用AODV协议和PGD_AODV协议的网络,分别在节点均正常的情况下以及出现MC节点周围的MAP节点无法正常工作的情形下的网络吞吐量性能。仿真结果如图9~10所示。当网络中出现MC节点周围的MAP节点损坏,相较正常情况网络平均吞吐量下降明显。而当网络使用PGD_AODV协议时,网络平均吞吐量在两种情况下的表现基本相当,这是由于PGD_AODV协议能够快速准确地完成路由重新建立的缘故。由本组实验还可以看出使用PGD_AODV协议的网络的吞吐量性能远远优于使用传统AODV协议的网络,这也印证了2.2.1小节中的结论。
3 结论
针对传统AODV协议的路由建立机制会导致网络中充满大量无实际意义的Route Request广播报文,占用大量带宽资源,严重影响网络吞吐量的现象进行了改进。提出了基于主动网关发现算法的AODV协议(PGD_AODV),通过限制无实际意义的Route Request报文的广播,来缓解网络压力,提高网络吞吐量。仿真结果表明PGD_AODV协议相较传统AODV协议在同样的端到端时延水平下,提高了网络吞吐量,降低了丢包率,缓解了时延抖动。最后,本文在正常情况下与网络中出现MC节点周围的MAP节点损坏的情况下,分别对应用AODV协议以及PGD_AODV协议的网络进行了多次实验,并对得到的网络平均吞吐量数据进行了分析。结果表明,应用PGD_AODV协议的网络对于节点故障的情况并不敏感,网络吞吐量性能相较正常情况下降不明显。而应用传统AODV协议的网络出现节点故障时,网络吞吐量下降明显。因此PGD_AODV协议在路由修复方面的表现要优于传统AODV协议。