无线移动自组网络(即移动Ad Hoc网络,mobile Ad hoc networks, MANET)[1-2]是由带有无线收发装置的移动节点所组成的一个多跳临时性的系统,具有抗毁性强、自组织、易铺设等优良的性质,越来越受到业界的广泛关注。移动自组网不需要预设的网络基础设施,该系统是完全分布式的,节点不仅是接收和发送信息的终端,并且还可以作为其他节点间通信的路由器,节点之间通过多跳无线链路进行相互通信。
目前,已经提出了多种路由协议来解决Ad Hoc网络中的路由问题,研究的AODV路由协议是一种按需路由协议,只有当节点需要的时候才创建路由。原始的AODV路由协议已然满足不了现有网络不可预测、频繁变化的拓扑结构的需要,现有的一些改进AODV路由协议在一定程度上提高了系统性能,但还存在诸多缺陷与不足。笔者在之前研究[3]基础之上,对现有Ad Hoc网络中AODV路由协议进行了研究,并从网络自身性能出发,利用节点的邻居数目来设计路由算法,提出一种基于AODV协议的优化改进路由协议--基于认知的AODV路由协议(Cognitive-based AODV, CAODV)。
1 AODV路由协议 1.1 Ad Hoc网络路由协议的分类现在学术界根据路由驱动方式的不同将Ad Hoc网络路由协议主要分为三类:第一类是以DSDV[4]、OLSR[5]等为代表的表驱动式(Table Driven)路由协议;第二类是以DSR[6]、AODV[7]、ABR[8]为代表的按需(On Demand Driven)路由协议;第三类是以ZRP[9]为代表的混合式路由协议。3种路由协议的性能比较如表 1所示。
综上所述可见:在网络结构拓扑相对稳定的环境中,应尽量采用表驱动式路由协议作为业务实时性要求较高的网络层协议;按需驱动式路由协议多用于拓扑结构频繁变化的Ad Hoc网络中;混合式路由协议,由于其较高的复杂性使得其并不实用。
1.2 AODV协议概述Ad Hoc按需距离矢量路由协议(ad hoc on-demand distance vector routing, AODV)是按需式路由协议的一种,只有当节点需要的时候才创建路由,此协议具有路由开销少、网络资源占用少、路由控制简单、更容易拓展到大规模网络中等特点,但路由发现时间长,分组传输时延大。
AODV协议的分组主要包括3种,负责路由启动发现机制的路由请求分组(route request, RREQ)、负责应答RREQ的路由答复分组(route reply, RREP)和负责报告路由断裂的路由错误分组(route error, RERR)。AODV协议通过控制节点之间3种分组的交互从而实现路由的发现、维护功能。
1.3 AODV协议的现状研究与不足郭鹏程[10]提出了一种改进型协议B-AODV,在路由发现及局部修复建立新路由上进行改进,提高了路由修复功能、包成功投递率,减少了节点端到端的延迟,减少了路由开销。但是网络中的节点并不仅仅都是具有双向链路的,并没有对单向链路进行研究。谭跃生等人[11]提出的O-AODV协议,减少了平均端到端的延迟时间,尤其是随着网络负载的加重,其改善的效果越发显著;路由负载率也比原先的AODV下降了不少,提高了网络的工作效率。沈奔等人[12]提出了M_EAODV,通过设置备份路由,可以有效地避免路由重建,分组传送成功率得到提高,平均端对端时延明显减少,路由的开销也得到降低。但是由于备用路由的提供,增加了路由空间开销,网络性能的改善比较局限。叶继华等人[13]提出了一种改进型协议AODV-DD,利用添加链路节点本地修复次数判定是否采用本地修复机制,在本地修复时采用断开节点和其后续两跳节点同时修复的双向修复,使路由协议性能有了一定提升,但交付率并没有很大的提升。张天明等人[14]提出了协议HI-AODV,增加路由缓存容量,在路由发现和路由维护中有效利用路由缓存信息和多径路由,帮助快速路由发现,减少路由发现过程,HI-AODV在吞吐量和延时方面相对AODV有明显改进。但由于路由缓存容量的增加、节点的移动,路由表里存储的许多路由实际上已经失效,如果利用这些错误路由寻路或传送数据,就会失败,需要重新在全局范围发起寻路,相对AODV反而增加延时。
经典的AODV协议已经无法适应当前网络拓扑结构的频繁动态变化,笔者在之前研究的基础上,从网络自身性能出发,利用节点的邻居数目来设计自适应路由算法,提出CAODV (cognitive-based AODV)路由协议,提高了路由协议对网络动态变化的适应能力,更适用于军事通信、紧急救援等。
2 CAODV协议设计 2.1 优化协议的理论设计方案一个节点邻居的数目在一定程度上表示了网络的局部状态信息,因此,可以充分利用节点的邻居信息来设计自适应的路由算法。利用这一点,提出了如下协议改进的方案设计:
1)在RREQ路由请求分组中增加一个link_nnumber字段,用来存储整个路由链路中所有节点的邻居数目的总和,当节点接收到路由请求分组后,查询本地的邻居链表,计算邻居个数,然后将RREQ分组中link_nnumber字段的值加上本节点邻居个数。当RREQ分组从源节点出发,经中间节点转发,最终到达目的节点时,分组中的link_nnumber字段就记录了整个链路中所有节点的邻居数目总和。
2)为使目的节点能够根据链路中邻居节点的个数来做出更好的路由选择,中间节点在接收到RREQ分组后只能继续转发RREQ分组,直至目的节点收到RREQ分组,即使其有到目的节点路由的,也不允许中间向源节点发送RREP分组。
3)目的节点在收到第一个RREQ分组后,允许其继续接收随后的同一个源节点发送的路由请求分组,而不再是直接将其丢弃。当第一个RREQ分组到达目的节点时,目的节点查看分组中的hop_count字段的值K和link_nnumber字段的值NNumber,并根据公式
$ {\rm{NANumber = }}\frac{{{\rm{NNumber}}}}{K}, $ | (1) |
计算出链路中每个节点的平均邻居个数NANumber,并将其缓存。之后目的节点并不立即发送RREP分组,而是先等待一段时间,如果在这段时间内接收到从其他链路发送来的RREQ分组,计算出其链路节点平均邻居个数,与缓存的RREQ分组比较,如果其NANumber值较大,则更新缓存,否则丢弃。这段时间过后,目的节点根据缓存的RREQ分组,发送RREP分组,告知源节点其选择的路由。之后若再次接收到路由请求分组,则进行相同的处理,更新RREQ分组缓存,若有更好的路由则继续向源节点发送RREP分组,告知其切换路由。
4)当源节点首次接收到RREP之后,开始发送缓存的数据,若之后继续收到RREP分组,则说明有更好的路由,源节点进行路由切换,更新路由信息。
选择链路中节点平均邻居数目作为路由选择的比较参数,是因为节点的邻居个数反映了网络的拓扑信息,节点的平均邻居个数越多,节点修复断裂链路成功的概率越大,可以有效减少路由发现的频率,降低网络中的路由负载,使得网络性能得到提高。另外,跳数会影响数据的传输延迟,跳数少是一个路由好坏的判断标准之一,由于跳数处于平均邻居个数参数的分母的位置,平均邻居个数已经考虑到跳数的问题。
本方案与现有AODV协议相比,最大的优势是有较少的路由发现频率,增加了断裂链路修复成功的概率,减少了重启路由发现的频率;降低了AODV协议的控制负载,提高了AODV协议对网络动态变化的适应能力,提高了网络动态性能。
2.2 CAODV协议的复杂度分析在存储空间的占用方面,CAODV协议充分利用了原AODV协议的已有数据结构,在AODV协议的基础上只增加了少量的存储空间,下面对存储空间的增加量进行的计算。
RREQ分组中增加链路邻居数字段:
u_int32_t rq_link_nnumber;
RREP分组中增加链路平均邻居数字段:
float rp_link_nanumber;
增加RREP分组缓存区:
nsaddr_t rp_ipdst;
u_int32_t rp_hop_count;
nsaddr_t rp_rpdst;
u_int32_t rp_rpsrq;
u_int32_t rp_lifetime;
double rp_timsetamp;
float rp_nanumber;
double rp_sendtime;
假设缓存中共n个RREP分组,IP地址采用IPv6地址,那么共占用
n×(3×sizeof(u_int32_t)+sizeof(float)+2×sizeof(nsaddr_t)+2×sizeof(double))+sizeof(u_int32_t)+sizeof(float)=(48n+8) B
在计算复杂度方面,主要增加邻居点数计算运算,每个节点从邻居列表中计算邻居个数,假设每个节点的邻居个数为n,那么指针移动的次数和加法操作的次数分别为n,对于目的节点需要从RREQ分组中计算平均邻居个数,计算复杂度为一次浮点型的除法运算,还需要在RREP缓存中搜寻是否有相同的RREP分组,假设其缓存中有m个分组,那么搜寻的计算复杂度为m/2,另外还要进行一次浮点型数据的比较操作,每次发送RREP分组时,目的节点都需要在缓存中搜寻需发送的分组,由于要确定分组中所有的需发送的分组都被搜寻到,其搜寻复杂度为m。
3 仿真结果与分析为了对CAODV路由协议的性能进行分析,采用网络仿真软件NS[15]版本NS2.35对AODV、CAODV分别在不同的节点数和不同的节点移动速度情况下进行了仿真分析协议路由发现频率以及路由负载等指标参数,用来衡量路由协议的性能。CAODV协议性能分析仿真流程图如图 1所示。
无线多跳自组网的仿真区域为1 000 m×1 000 m,仿真时间为300 s,移动节点数目在10~100之间以10为间距递增,节点随机移动的最大速度在2~20 m/s之间以2 m/s为间距递增,节点发送4的CBR分组固定为512 B,分组发送率为40/s。
为测试CAODV协议在不同节点数的情况下的性能,本文将节点移动最大速度固定为10 m/s,将节点数目分别设定为10, 20, …, 90, 100,为了去除偶然性,每种情况下仿真多次。同样,为测试CAODV协议在不同节点移动速度的情况下的性能,本文将节点移动最大速度分别设定为2,4,…,18, 20 m/s,而设定节点的数目为50,为了去除偶然性,每种情况下仿真多次。另外,为了对比CAODV与AODV的性能差异,需要对AODV协议进行同样的仿真。协议仿真过程中的NAM界面如图 2所示。
使用gawk提取路由发现频率和路由负载的设计思路是分别计算目的节点应用层AGT成功接收分组的个数cbrpkt_num、分组类型为CAODV的分组个数caodvpkt_num和源节点发送协议分组类型为REQUEST的分组的个数rreqpkt_num,然后根据以下公式,计算路由发现频率与路由负载。
$ frequency = rreqpkt\_num/cbrpkt\_num, $ | (2) |
$ {\rm{proload}} = {\rm{caodvpkt}}\_num/cbrpkt\_num。 $ | (3) |
本文使用gnuplot对产生的数据进行绘图,如图 3~6所示。
由于目的节点选择的路由是邻居节点最多的链路,因此,当链路断裂启动本地修复进程时,更容易修复链路,源节点重启路由发现的概率降低,因此,图 3~6显示CAODV协议的路由负载和路由发现频率都比AODV小。
图 3显示随着节点的增多,AODV和CAODV协议的路由发现频率呈下降的趋势,这是由于节点增多,增加了网络连通性,路由修复成功的概率增加的缘故。
图 4显示随着节点的增多,AODV和CAODV协议的路由负载呈增多的趋势,这是由于节点增多,路由分组的转发频率增多的缘故。
图 5和图 6显示随着节点移动速度的增多,AODV和CAODV协议的路由发现频率和路由负载都呈增加的趋势,这是由于节点移动速度增加导致链路断裂概率增加,进而使得路由发现、路由修复等概率增多,导致路由分组发送概率增加,路由负载和路由发现频率都增加。
综上所述,基于认知的路由协议CAODV有较少的路由发现频率,增加了断裂链路修复成功的概率,减少了重启路由发现的概率;降低了AODV协议的控制负载,提高了AODV协议对网络动态变化的适应能力,提高了网络动态性能。
4 结语笔者着重对Ad Hoc网络的路由协议进行了研究,并提出了相应的优化方案,阐述了基于认知的自适应设计思路,仿真实验表明,优化后的路由协议CAODV可以有效降低重启路由发现频率,增加断裂链路的修复功率,降低协议的控制负载,对现有网络的动态变化具有很强的适应能力。而这对于网络的整体自适应体系架构与机制的设计还远远不够。将基于认知的自适应设计思路运用到自适应MAC协议、自适应的QoS保证和自适应的能量控制等技术中,将是下一步的研究的重点。此外Ad Hoc网络的安全性能以及能量的分配也值得进一步地学习与研究。
[1] | Gupta P, Saxena P, Ramani A K, et al. Optimized use of battery power in wireless Ad hoc networks[C]//Advanced Communication Technology (ICACT), 2010 The 12th International Conference on.[s. n.]: IEEE, 2010:1093-1097. http://yadda.icm.edu.pl/yadda/element/bwmeta1.element.ieee-volume-000005433809-2 |
[2] | Das V V, Vijayakumar R. Design parameters for a secure system for mobile ad hoc network[C]//Proceedings of the 2009 International Conference on Advances in Computing, Control, and Telecommunication Technologies. [s. n.]: IEEE Computer Society, 2009:534-536. |
[3] |
梁建武, 徐龙龙, 徐建明.
基于冲突避免的DSR协议研究[J]. 微型机与应用, 2013, 32(16): 48–50.
LIANG Jianwu, XU Longlong, XU Jianming. Avoid the DSR protocol based on conflict study[J]. Micro Computer and Application, 2013, 32(16): 48–50. (in Chinese) |
[4] | Huang T C, Chung W J, Huang C C. A revised aodv protocol with energy management for real-time/non-real-time services in mobile ad hoc network[C]//High Performance Computing and Communications, 2008. HPCC '08. 10th IEEE International Conference on. [s. n.]: IEEE, 2008:440-446. |
[5] | Clausen T, Jacquet P. Optimized link state routing protocol[J]. IetfRfc, 2003: 176–206. |
[6] | Johnson D, Maltz D, Hu Y. The dynamic source routing protocol (dsr) for mobile Ad hoc networks for IPv4[J]. IETF Internet Draft. http://www.ietf.org/rfc/rfc4728.txt, 2007. |
[7] | Perkins C E, Royer E M. Ad-hoc on-demand distance vector routing[J]. Proceedings of the 2nd IEEE Workshop on Mobile Computing Systems and Applications, 1999, 6(7): 90. |
[8] | Nasipuri A, Casta09eda R, Das S R. Performance of multipath routing for on-demand protocols in mobile ad hoc networks[J]. Mobile Networks & Applications, 2001, 6(4): 339–349. |
[9] | Chao H L, Liao W. On fair scheduling for mobile ad hoc networks with channel errors[C]//Vehicular Technology Conference, 2004. VTC2004-Fall. IEEE, 2004(4):2824-2828. |
[10] |
郭鹏程.
Ad Hoc网络AODV按需路由协议的研究[J]. 科学技术与工程, 2013, 13(18): 5207–5213.
GUO Pengcheng. Ad Hoc network AODV on-demand routing protocol research[J]. Science, technology and engineering, 2013, 13(18): 5207–5213. (in Chinese) |
[11] |
谭跃生, 石磊, 王静宇.
基于NS2的AODV路由协议研究与仿真[J]. 内蒙古科技大学学报, 2012, 31(1): 81–84.
TAN Yuesheng, SHI Lei, WANG Jingyu. The AODV routing protocol research and based on the NS2 simulation[J]. Journal of Inner Mongolia University of Science and Technology, 2012, 31(1): 81–84. (in Chinese) |
[12] |
沈奔, 秦军, 万丽.
无线Ad Hoc网络中AODV路由算法的研究与改进[J]. 计算机技术与发展, 2011, 21(3): 150–153.
SHEN Hui, QIN Jun, WANG Li. Research and improvement of the AODV routing algorithms in wireless Ad Hoc network[J]. Computer Technology and Development, 2011, 21(3): 150–153. (in Chinese) |
[13] |
叶继华, 李明, 王明文, 等.
一种改进的Ad Hoc网络路由协议AODV-DD[J]. 冶金自动化, 2011, 35(5): 72–75.
YE Jihua, LI Ming, WANG Mingwen, et al. An improved Ad Hoc network routing protocol AODV-DD[J]. Journal of Metallurgical Automation, 2011, 35(5): 72–75. (in Chinese) |
[14] |
张天明, 王培康.
移动ad hoc网络AODV协议的分析与改进[J]. 计算机辅助工程, 2008, 17(3): 61–64.
ZHANG Tianming, WANG Peikang. Mobile AD hoc network analysis and improvement of the AODV protocol[J]. Computer Aided Engineering, 2008, 17(3): 61–64. (in Chinese) |
[15] |
林政文.基于NS2的Ad Hoc网络性能仿真研究[D].哈尔滨:哈尔滨工程大学2010. LIN Zhengwen. Ad Hoc network performance study based on the NS2 simulation [D]. Harbin: Harbin Engineering University, 2010.(in Chinese) http://cdmd.cnki.com.cn/Article/CDMD-10217-1011020197.htm |