1.2.4 链路修复的改进
由于IMAODV路由中每个节点对路由应答包具有侦听功能,所以主路径上节点的一跳邻居都能够侦听到此包,所以都能通过主路径上的节点建立到目的节点的路由,这样就形成了多个到目的节点的备份路由。当主路由上的某条链路断开时,便可以通过路由请求RREQ进行局部修复。为了减小路由请求的开销,本文设置了路由请求的生存期为2跳,中间节点收到路由请求时,若路由生存期不为0,则查找自己是否有到目的节点的路由。若有,则按原AODV的方式进行应答,若没有则继续广播路由请求消息,直到生存期变为0时丢弃包。当局部修复失败时,节点再广播路由错误包。
1.2.5 IMAODV路由协议
IMAODV在路由请求、路由应答以及路由表中添加metric字段,以记录路径上每个节点的累计路由度量值。当源节点需要通信路由时,先初始化metric为0,再广播这个RREQ包启动路由发现过程。中间节点的路由表段中添加一个rt_metric,记录从源节点到该节点路径上的路径度量最小值,中间节点收到非重复的RREQ包时,将自身的metric值累加到路由RREQ中的rq_metric上,再继续转发。如果节点已经收到了同一源节点相同的广播ID的RREQ,且包的目的序列号大于路由表中序列号,则直接更新路由,若相等就通过比较rq_metric与rt_metric,选较小者作为本路由表项中的rt_metric,即更新路由表项再转发包。当路由请求包到达目的节点时,目的节点将选择一个拥有较小metric的路由,发送路由回复RREP。路由应答是以单播的方式传送,接收到此包的节点时,首先根据接收包中下一跳信息判断本节点是监听节点还是正常的路由应答节点,如下一跳ID不等于本节点ID,则本节点是监听节点,此时记录到目的节点的路由后不再转发,否则是主路径上的节点,则按照传统AODV路由应答的方式进行处理。图3为IMAODV路由建立的流程。
在图3中,路由建立或更新是根据路由序列号和路由度量值来决定的。如果是第一次收到路由请求包,则建立路由;若收到请求包中的目的节点序列号大于路由表中存储的目的节点序列号或是等于路由表中存储的目的序列号,但路由表中的路由度量值大于请求包中的路由度量值,则更新路由。“是否忽略”检查是否收到重复的包,若是,则丢弃;否则更新路由表和请求包信息再转发。
2 仿真分析
2.1仿真环境
仿真工具采用NS-2.30[7]版本,网络的拓扑环境是一个包含50个移动节点的网络模型,节点随机分布在1 000 m×1 000 m的正方形区域内,并设置节点的移动速度在0 m/s~40 m/s之间,每个节点的无线接口带宽为2 Mb/s,有效无线发射范围为250 m,链路层采用无线802.11 MAC协议,在50个节点中随机产生4对恒定比特率的CBR连接,每个分组的长度为512 B,每秒发送4个包,为了考察改进的协议在网络仿真环境中的性能,本文将模拟节点速度在0~20 m/s时由于停留时间(pause time)、网络中节点间最大连接数以及节点的速度的变化对网络吞吐量的影响,还有节点移动速度变化对网络平均端到端延迟的影响,设置了在相同环境下与AODV作比较,给出了仿真结果。
2.2 仿真结果及性能分析
图4显示了端到端延迟与节点移动速度的关系,由此可知IMAODV协议的平均端到端延迟随节点移动速度的增大优于AODV协议,其原因是在路由度量中考虑了每一跳的延迟,且改进的HELLO机制的发送频率与节点移动速度有关,能较快地发现路由断链情况并做出相应处理。图中节点最大速度为5 m/s时,由于处于低速状态,IMAODV优势并不突出,较AODV的延迟大,但是随着节点的移动速度的增加,IMAODV的平均端到端延迟低于AODV;当节点最大移动速度达到40 m/s时,IMAODV的延迟约为AODV延迟的1/2。从总体来看,随着节点移动速度的增加,IMAODV延迟有所下降。
图5中IMAODV在路由度量值和HELLO消息机制中考虑到节点移动速度的影响,并且节点具有侦听路由应答的功能,使其具有多条到目的节点的路由。这样在断链的时候能够及时地恢复路由,进行数据传输,随着节点速度的提高,IMAODV的吞吐量明显优于AODV,如图5所示,在节点最大移动速度为10 m/s和15 m/s时,IMAODV能提供比AODV高29.4%和34.3%的网络吞吐量。
图6中反映了节点停留时间与吞吐量的关系,此时场景中节点的最大移动速度为20 m/s,停留时间在40 s、50 s以及150 s时,IMAODV的吞吐量较AODV略有下降,原因是这些场景中中间节点的移动速度较小,由于新协议中路由度量是多个方面的折中考虑,所以在移动速度不明显的时候,IMAODV的优越性就不太明显,但总体性能较AODV好。
图7是最大节点移动速度为20 m/s时,网络中节点连接增加对网络吞吐量的