吴丽杰, 张璐璐, 唐 珊
(安徽粮食工程职业学院 信息技术系,安徽 合肥 230011)
移动自组网(MANET)是一种自治的、分布式的动态网络,其中节点可充当路由器并可自由移动。MANET可以在短时间内形成可靠的网络,特别适合在通信基础结构不可用或不可访问的情况下使用,如在自然灾害后用作救援信息系统。由于此类网络中的节点在没有集中控制的情况下随时可以自由移动,所以MANET的动态拓扑特性给路由协议的设计带来了一定的挑战。MANET中广泛使用的几种路由协议包括按需距离矢量协议(AODV)、动态源路由(DSR)、位置辅助路由(LAR)和区域路由协议(ZRP)等[1-2]。
由于AODV路由协议的良好性能,其在无线传感器网络(WSN)中得到了广泛应用,如ZigBee网络默认使用AODV作为其路由协议[3-4]。MANET同WSN一样,节点由电池供电,都面临着能量和带宽有限的问题,学术界已针对AODV进行了多方面的研究[5-6]。在此基础上,本研究提出了一种适用于MANET的带宽及能量感知路由协议。
AODV是用于MANET的反应性路由协议,它包括两个阶段:路由发现和路由维护。AODV协议利用路由请求(RREQ)、路由应答(RREP)、路由错误(RERR)和问候(HELLO)这4种消息类型来发现和维护路由,仅当源节点希望将数据发送到路由表中没有条目的目标节点时,才启动路由发现过程。该过程中,主要执行4个步骤:①源节点向邻居节点发送RREQ;②中间节点建立反向路由并更新接收到的RREQ消息后向其下一跳邻居广播RREQ;③目的节点通过建立的反向路由发送RREP至源节点;④源节点选择跳数最短的路由发送数据包[7]。
(1)AODV同传统的MANET路由协议一样,路由选择时采用了最小跳路径。在所有链路都相等的单速率网络中,最小跳数是一个很好的准则,但在多速率无线网络中,选择最小跳路径通常会导致链路低速率运行,导致吞吐量降低。因此,选择最小跳路径通常会导致有效吞吐量较低,并且增加总的网络拥塞[8]。
(2)MANET包含大量移动无线节点,这些节点可以以随机方式移动,而且会随时加入或离开。由于物联网(IoT)上设备的快速增长,在密集区域中的信息交换会传输大量消息,可能导致网络拥塞,从而导致传输延迟或丢包量增大。在大流量和高动态性的大型网络中,这类问题会更加严重。
本研究提出了一种适用于MANET的带宽及能量感知路由协议(BE-AODV)。BE-AODV通过使用HELLO消息来检查队列大小,从而获取剩余带宽的最新值并预测链路上的剩余带宽,评估每个节点可以支持的最大带宽,源节点根据剩余带宽来调整数据包的速率;通过接收信号功率和变化率推算出两节点间的可用链路时间,路由发现过程中选择满足可用链路时间约束的节点,计算整个MANET节点的能量均值,并根据自身能量与整个MANET节点能量均值的比较来设置不同的RREQ延迟。使用上述方法,使每个节点都能感知自身剩余带宽及能量,平衡了节点的负载,减少了死亡节点的个数,避免了拥塞,延长了MANET的生存时间。
图1 RREQ分组格式Fig.1 RREQ grouping format
2.2.1RREQ及RREP分组格式设计
(1)RREQ分组格式如图1所示。能量累积值为从源节点到目标节点积累的能量值,所需的最小带宽为源节点发送到目标节点所需最小带宽,其余字段同AODV路由协议的RREQ分组。
(2)RREP分组格式如图2所示。能量均值为节点的平均能量值,剩余带宽为链路中剩余带宽的加权平均值,其余字段同AODV路由协议的RREP分组。
2.2.2剩余带宽计算及分配
图2 RREP分组格式Fig.2 RREP grouping format
剩余带宽计算及分配主要分为2个阶段:
(1)网络中任意节点通过HELLO数据包向每个邻居节点发送剩余带宽请求,邻居节点通过HELLOACK数据包反馈剩余带宽,发送节点在本地计算剩余带宽。计算先前剩余带宽的加权平均值,以便向源节点通知网络中每个链路上可用的最新剩余带宽。使用此信息源节点可以调整其发送数据速率,以避免拥塞。源节点Ni与邻近节点Nj的剩余带宽计算过程如图3所示。
图3 两节点间的剩余带宽计算Fig.3 Calculation of residual bandwidth between two nodes
(2)源节点通过RREQ数据包发送最小所需带宽请求,目的节点通过RREP数据包重新传回源节点,以创建反向路由。仅当请求的带宽小于链路上的剩余带宽时,邻居节点才发送数据包,即基于可用带宽创建适当的路由来传输分组,从而避免了拥塞。
剩余带宽计算及分配的主要流程如图4所示。
图4 剩余带宽计算及分配的主要流程Fig.4 Main processes of residual bandwidth calculation and distribution
分析文献[5]可知,需要设置阈值H对可用链路时间(ALT)进行约束。为了寻找稳定路由,需要保证路由发现阶段所寻找的路径上的任何两个节点间的ALT≥H。节点i、j在时刻t的可用链路时间为
式中:TR表示节点的传输范围;Di, j(t)表示节点i、j在时刻t的距离;Vi, j(t)表示节点i、j在时刻t的相对速度;ΔRSPi, j(t1,t2)表示从t1到t2接收信号的功率变化率。
假设某个节点需要传输的数据量为D(Byte)、可用带宽为B(b/s),可计算出数据传输时间为D×8/B(s)。至此,在BE-AODV路由协议中,通过设置ALT约束,可发现一条满足约束的最小跳路由。下面的仿真分析中阈值H设为经验值0.4。
利用网络模拟器NS2将前面提出的BE-AODV与文献[6]提出的BARS在平均端到端时延、平均吞吐量、丢包率等方面进行性能分析。网络仿真场景设置如下:仿真时间设为1 000 s,50个节点随机分布在1 000 m×1 000 m的区域,节点传输距离设为250 m,包长度设为1 024 Byte,节点移动模型设为Random way point,节点最大移动速度设为2~10 m/s,流量类型设为CBR,MAC层协议采用IEEE 802.11。
BE-AODV与BARS在不同节点移动速度下的平均端到端时延比较见图5。由于ER-AODV需要感知节点的能量,在路由发现过程中增加了较多开销,故同BARS相比端到端时延有所增加,但仍在可控范围。
BE-AODV与BARS在不同节点移动速度下的平均吞吐量比较见图6。BE-AODV在BARS的基础上,根据节点自身能量和网络节点能量均值的不同来调节节点的RREQ分组延迟,从而平衡了节点的负载,减少了死亡节点的个数,与BARS相比,提高了平均吞吐量。
图5 平均端到端时延比较Fig.5 Comparison of average end-to-end delays
图6 平均吞吐量比较Fig.6 Average throughput comparison
图7 丢包率比较Fig.7 Comparison of packet loss rates
BE-AODV与BARS在不同的节点移动速度下的丢包率比较见图7。BE-AODV在BARS的基础上,将链路带宽作为参数以避免发生拥塞,在节点移动速度高达10 m/s的情况下,丢包率仍低于20%。相较于BARS,BE-AODV由于设置了阈值H,对可用链路时间(ALT)进行了约束,减少了链路中断的数目,从而降低了丢包率。
本研究提出了一种适用于MANET的带宽及能量感知路由协议(BE-AODV),路由选择过程中选择满足可用链路时间约束的节点,通过计算整个MANET节点的能量均值并根据自身能量与整个MANET节点能量均值的比较来设置不同的RREQ延迟;通过获取剩余带宽的最新值并预测链路上的剩余带宽,评估每个节点可以支持的最大带宽且源节点根据剩余带宽来调整数据包的速率。仿真实验表明,BE-AODV通过使每个节点都能感知自身剩余带宽及能量,避免了堵塞,平衡了节点的负载,相较于BARS协议,虽然平均端到端时延有所增加,但提高了平均吞吐量并降低了丢包率。