论文导读::无线自组网是由一组无线移动主机组成的无基础设施的网络。通过NS2仿真软件的内核扩展及重编译,分析经典按需路由协议AODV的路由发现和建立过程。最后对AODV协议提出改进思路。结果表明,在NS2仿真软件下对无线自组网路由协议研究和调试分析是一种科学有效的方法。
论文关键词:无线自组网,网络仿真,路由协议
1.引言
移动无线自组网(Mobile Ad Hoc Network, MANET )是由一组带有无线收发装置的移动终端组成的多跳自组织、自管理网络。MANET网络不需要固定的基站,加上MANET网络具有生存性极强、创建与移动极为方便的特点,弥补了蜂窝系统与有线网络的不足,可方便、灵活组网,在公共服务、紧急搜救、智能交通等领域具有广阔的应用前景。
MANET网络的节点既是通信终端,又具有路由器的功能,可自由移动。在MANET网络中,无线信道变化的不规则性、节点的移动、加入、退出等原因导致了网络拓扑结构经常发生变化,而且由于节点无线覆盖范围的有限性,两个无法直接连接的节点需要借助于其它节点的报文转发才能通信,路由协议的作用就是在这种环境中监控网络拓扑结构变化,交换路由信息小学语文教学论文,定位目的节点位置,产生、维护和选择路由,并根据选择的路由转发数据,提供网络的连通性,它是移动节点互相通信的基础,是移动MANET网络的一个重要和核心的问题。
目前已经提出了十几种MANET网络单径路由协议,根据路由建立的方式不同,可以把路由协议分为先验式路由协议、反应式路由协议。DSDV[1]是比较典型的先验式路由协议,DSR[2]、AODV[3]和TORA[4]是比较典型的反应式路由协议。研究表明,在节点移动的情况下,反应式路由协议具有较低的路由开销,其性能优于先验式路由协议;在反应式路由协议中,AODV协议具有适度的路由开销和快速收敛性,优势较明显,是MANET网络中有前途的路由协议之一并已成为多径协议的扩展基础[5]。
2.AODV协议
AODV协议本质上是DSDV和DSR两种协议的结合,是在DSDV协议的基础上,结合DSR的按需路由机制改进而提出的,不同之处在于AODV采用了逐跳转发的方式而不是DSR的源路由方式以提高带宽利用率。
AODV是一种纯粹的按需路由获取机制,只有需要相互通讯的两个节点才会进行路由查找与维护,中间节点可以提供转发业务[6]。AODV协议假设无线链路是双向的,其路由协议机制可以概括为路由发现和路由维护2个过程。
(2)路由维护:结点通过MAC层周期性广播hello消息来判断链路状态,如果该结点连续3次未收到hello响应消息,就认为链路已经断开,删除包含该链路的路由信息,并发起路由错误RRER报文小学语文教学论文,通知相邻结点和相应的上游结点删除因链路断开而导致目的结点不可达的路由信息。
3.NS2仿真软件的扩展
在NS2[7]仿真软件上,AODV协议路由发现及路由表建立策略主要与sendRequest、recvRequest、forward、sendReply、recvReply等5个函数有关。为了更好的研究工作分析其路由发现与路由表项目的建立过程,本文对NS2仿真软件进行必要的扩展论文提纲怎么写。
(1) 在sendRequest、recvRequest、forward、sendReply、recvReply等5个函数的相应位置添加fprintf()函数,以便仿真后能从控制台上读出路由发现、转发及路由回应等信息。如在sendRequest函数中添加
fprintf(stderr, "%f-Node%2d-%s->Node%2d\n", Scheduler::instance().clock(), index, __FUNCTION__,rt->rt_dst);
(2)在aodv.h头文件中,声明路由表项目打印输出的函数如下:
void rt_print(nsaddr_t node_id);
(3)在aodv.cc中,定义路由表项目打印函数为:
void AODV::rt_print(nsaddr_t node_id){
aodv_rt_entry *rt;
for (rt=rtable.head();rt; rt =rt->rt_link.le_next) {
fprintf(stderr, "%fS=%i,D=%i,N=%i, H=%i, seqno=%i \n",CURRENT_TIME, node_id,rt->rt_dst, rt->rt_nexthop, rt->rt_hops, rt->rt_seqno);
}
}
如果需要打印其它信息,如时间戳、路由有效标志等,可按此方法增加。
(4)在sendRequest、recvRequest、forward、sendReply、recvReply等5个函数的相应位置添加打印函数rt_print(index),以便在路由发现过程中将各节点建立的正向或反向路由表打印出来。
(5)重新编译NS2。
4.NS2仿真参数说明
采用winXP+Cygwin+NS2.29仿真平台,对MANET网络的AODV协议进行模拟分析。使用node-config配置函数配置移动节点,配置的选项包括:路由协议、协议栈、通道、拓扑、传输模型以及是否打开有线路由(如果需要有线-无线场景),是否打开各层的Trace(Router,Mac,Agent)等。
本文采用的仿真场景是在600m×600m的空间中配置3个节点,仿真时间为100s。各节点在仿真过程中保持静止。仿真选择CBR业务源,每个CBR源每秒发送2个CBR数据包,每个数据包512B。如图1(a)所示:

图1 RREQ及RREP的传送过程
N0为源节点,N1为中间节点,N2为目的节点,源节点N0在20.0s时向目的节点N4发送数据包。详细的模拟参数记录于表1。
表1 仿真参数列表
参数类型
|
参数值
|
simulation time/s
|
100
|
simulation terrain/m2
|
600*600
|
number of nodes
|
3
|
Traffic
|
CBR
|
radio frequency/MHz
|
914
|
channel bandwidth /(Mb/s)
|
2
|
Mac protocol
|
802.11
|
transmission range/ m
|
250
|
5.NS2仿真输出文件分析
仿真结束后,在控制台输出相关的RREQ和RREP路由包的传送过程,以及节点在接收到RREQ与RREP时建立的反向与正向路由表项目。其原理分析示意图如1。此外,更多的信息在out.tr文件中。
5.1控制台输出信息分析
20.000000-Node 0-sendRequest ->Node2 //20s时,节点0有数据需要发送到节点2,发起RREQ报文。
20.019909-Node 1-recvRequest//节点1收到节点0的RREQ报文。
20.019909 S=1,D=0,N=0,H=1,seqno=4,flags=1//建立反向路由小学语文教学论文,即1->0的路由。
20.019909-Node 1-forward-BROADCAST//节点1转发,继续广播节点0的RREQ报文。
20.040699-Node 0-recvRequest//节点0收到自己发送的RREQ报文,丢弃。
20.040699-Node 2-recvRequest//节点2收到节点0的报文。
20.040699 S=2,D=0,N=1,H=2,seqno=4,flags=1//节点2为RREQ报文的目的地,建立到节点0的反向路由。
20.040699-Node 2-sendReply->Node 0//节点2以单播形式发送RREP报文,
20.197203-Node 1-recvReply From Node 2//节点1收到节点2发出的2->0的报文。
20.197203S=1,D=2,N=2,H=1,seqno=4,flags=1
20.197203 S=1,D=0,N=0,H=1,seqno=4,flags=1//节点1建立正向路由。
20.197203-Node 1-forward RREP To Node 0//节点1转发RREP到节点0。
20.373262-Node 0-recvReply From Node 2//节点0接收到RREP报文。
20.373262 S=0,D=2,N=1,H=2,seqno=4,flags=1//建立正向路由,路由表项目建立完成论文提纲怎么写。
5.2AODV仿真输出的TraceFile文件分析
在仿真后的输出文件out.tr中,为分析方便,下面只列出其中的$1、$2、$3、$18、$19、$20、$21、$22、$23、$24、$25列。内容如下:
1: s 20.000000 _0_ [0] 0
2: r 20.000000 _0_ [0] 0
3: s 20.000000 _0_ [0x2 1 1 [2 0] [04]] (REQUEST)
4: r 20.019909 _1_ [0x2 1 1 [2 0] [04]] (REQUEST)
5: s 20.020790 _1_ [0x2 2 1 [2 0] [04]] (REQUEST)
6: r 20.040699 _0_ [0x2 2 1 [2 0] [04]] (REQUEST)
7: r 20.040699 _2_ [0x2 2 1 [2 0] [04]] (REQUEST)
8: s 20.040699 _2_ [0x4 1 [2 4]10.000000] (REPLY)
9: r 20.197201 _1_ [0x4 1 [2 4]10.000000] (REPLY)
10:f 20.197201 _1_ [0x4 2 [2 4]10.000000] (REPLY)
11:r 20.373261 _0_ [0x4 2 [2 4]10.000000] (REPLY)
12:s 20.373261 _0_ [0] 0
13:r 20.451991 _1_ [0] 1 0
14:f 20.451991 _1_ [0] 1 0
15:r 20.530681 _2_ [0] 2 0
第1、2行,20.000000秒节点0的AGT业务层产生数据,并下传给它的路由层,节点0查找自己的路由表,由于没有到节点2的路由,第3行,发送路由发现RREQ报文,其中<$23(source_addr),$20(broadcast_id)>为该RREQ报文的唯一标识,其它节点接收到后依据<$23,$20>来判断是否收到过此报文。第4-7行该RREQ报文经过节点1接收并继续广播后到达节点2。节点2接收到节点0发出的RREQ报文后建立反向路由,并单播RREP到节点0(第8行),如第9-11行所示该RREP报文经过中间节点1的转发,最终在20.373261秒时被节点0接收,节点0依据RREP信息建立起到节点2的路由。
如第12-15行所示,节点0将队列中的fid为0的第1个分组经过中间节点1的转发发送到节点2。20.530681秒时节点2接收到第一个CBR分组。
6.AODV协议的改进思路
(1)由于MANET网络的节点通过由电池供电,能量问题消耗后,可能导致节点的死亡,所以在AODV协议中应该考虑能量因素小学语文教学论文,做到节能降耗,延长MANET网络的生存时间。同时可以考虑采用路径能量总消耗来作为在选择路由时的度量和条件。
(2)在路由发现中目的结点会接收到从源节点到目的节点的不同路径,可在改进中增加多径路由选择,当前路由失效后,无需重新发起RREQ请求,后采用备用路由进行通信。
(3)由于通信的覆盖范围与节点的发射功率有关,在节点硬件开发时,可以考虑动态调整发射功率,使得在两节点距离非常近的情况下节省节点通信的能耗。
7.总结
通过对AODV路由协议的路由发现及路由建立过程的深入分析,并在NS2仿真软件上进行必要的扩展和重编译。从实验的仿真过程与结果分析可以看出,对于MANET网络协议研究,NS2是一种有效的手段,对于进一步研究MANET网络的网络协议及改进后的验证有着积极的意义。
本文作者创新点:通过NS2仿真软件的内核扩展及重编译,分析MANET 中经典按需路由协议AODV的路由发现和建立过程,并对AODV协议提出改进思路。
参考文献
[1]Perkins C E and BhawatP.HighlyDynamic Destination Sequenced Distance Vector Routing(DSDV) for Mobile Computers. september1994.
[2]David B. Johnson,David A. Maltz,Carnegie Mellon, et al. Thedynamic source routing Protocol for mobile ad hoc networks(DSR).RFC4728,Feb.2007.
[3]C.Perkins, E.Belding-Royer,S.Das. Ad hoc On-Demand Distance Vcetor(AODV) Routing. RFC3651,July 2003.
[4]V.Park and S.Corson.Temporally-OrderedRouting Algorithm(TORA) Version 1Functional Specific- ation,IETF Internet Draft,draft-ietf-manet-tora-spec-04.txt,July 2001.
[5]屈文杰,吴长奇.AODV和AOMDV路由协议性能仿真与分析[J].计算机工程.2007.9.33(17):143-145.
[6]朱金华,于宁宁.无线自组织网络AODV 路由协议研究[J].微计算机信息.2007,6-3:122-124.
[7]The Network Simulator NS2, EB/OL, 2010-7-1, http://www.isi.edu/nsnam/ns/
|