张大亮,陈 涛,黄 琳
(湖北师范学院 计算机科学与技术学院, 湖北 黄石 435000)
Ad hoc网络以其自组织性,其路由不能采用传统的internet路由算法。到目前为止,已有许多种类的协议,AODV和DSR是其中具有代表性的两种典型的路由协议。两种协议既有相似之处又各有其特点。
DSR(动态源路由协议)是一种按需路由协议。在该协议中,节点在发送数据时才开始寻找路由。发送出去的数据包本身会携带至目的节点所经过节点的地址信息。整个传送的过程中数据包会按照数据包中携带的地址信息逐跳至目的节点。
DSR路由协议主要包括路由发现和路由维护两部分[1]。路由发现过程是为了当源节点发送数据包时能获得完整的至目的节点的路由信息。当Ad Hoc网络中的节点由于关机或者由于网络拓扑结构发生变化时不能继续转发数据包,源节点如果按照以前的路由则无法使得数据包到达目的节点,这时路由维护算法会及时发现,并发起新的路由发现和建立的过程。
信源在开始发送数据包的时候即路由发现过程开始的时候,信源首先向其所有邻节点洪泛RREQ(路由请求)报文。RREQ中包括“信宿”、“信源”“路由记录”以及“本分组ID”等字段。其中“路由记录”字段将记下RREQ分组逐跳传播时所顺序经过的节点地址,从而完成路由发现的功能。<源节点地址,请求ID>序列这里称为RREQ标识,以便于RREQ的接收处理以防止收到重复的路由请求。
中间各节点对RREQ请求分组的处理步骤如下:
1)如果最近收到的“历史RREQ列表”中该RREQ标识已存在,则直接丢弃该分组。
2)如果“路由记录”中包括本节点,丢弃该RREQ分组。
3)如果本节点就是RREQ指定的信宿,则发送RREP(路由回答分组)。RREP中包含了从信源至信宿所经过的所有节点地址信息。否则将节点地址附在报文的“路由记录”后,同时继续向邻节点广播更新后的RREQ。
信宿向信源会送RREP,如果信宿存在“反向路由”。RREP分组沿“反向路由”将路由信息传输到信源。否则,按RREQ中的“路由记录”进行反向传送。
Ad Hoc网络由于节点的电源采用电池供电因此能量有限。如果采用传统的计算机网络来建立和维护路由,周期性的通过洪泛方式来建立和维护路由则会造成很大的开销。而在DSR协议中,则不是通过周期性的广播来发现路由和维护路由,只是需要发送报文的时候才来检测路由的可用性。
DSR协议具有以下优点:
1)节点不需要存储路由表,信源端需要发送报文时才开始建立到达信宿的路由。
2)信源存储有多条路由,因此当发送数据包的时候有多条路由备选,当其中一条失效后还有其他的路由备用。
3)支持非对称传输信道模式。
AODV(无线自组网按需平面距离矢量路由协议),也是Ad Hoc网络中按需路由方式的典型协议。由C Perkins和E Royer于2000年首先提出来的[2]。在AODV协议中,路由中的每个节点都维护路由表。
AODV路由协议也主要由路由发现和路由维护两部分组成。与DSR协议不同AODV的数据包到达信宿要靠中间所经过的节点来进行路由的查找和维护,数据包的头部不再带有完整的路由信息。信源在发起路由建立过程的时候首先向所有的临近节点广播RREQ。RREQ中会携带以下字段:<信源地址,信源序列号,广播ID,信宿地址,信宿序列号,跳数计数器>。序列对<信源地址,广播ID>用来标识此RREQ。
AODV协议下中间节点路由表的建立过程如下:
1)创建一个表项,先不分配有效序列号,用于记录反向路径。
2)如果己收到一个具有相同标识的RREQ分组,则抛弃该分组,不作任何处理。否则对上述表项做以下处理:首先将信宿序列号设置为该RREQ的信源序列号,然后向周围节点广播该RREQ,接着将跳数设置为该RREQ的跳数计数器的值,最后设置该表项的过时定时器。
3)若果该节点的地址与RREQ中信宿地址相同而且表项的信宿序列号大于RREQ中的信宿序列号则形成反向路由。
AODV不同于DSR协议,报文到达信宿的过程中所经过的每个节点都会指定报文的下一跳地址因此数据报文头部不再需要携带完整的路由节点地址信息,减少了数据报文头部路由信息对信道的占用,协议的带宽利用率高。另外也避免了路由环路现象的发生。但是AODV协议中源节点不能缓存多条完整的路由,因此在中间节点发现路径中断时,AODV只能将分组丢弃[3]。
OPNET最早是在1986年由麻省理工大学的两个博士创建,于1998年进入中国。并被广泛地被设备制造领域和国防领域广泛采用。在OPNET各种产品中,Modeler几乎包含其他产品的功能,在不同领域能展现出不同的用途,有着与实际情况相比非常准确的仿真数据[4]。
本仿真使用Modeler自带的模型通过设置场景、节点参数。定义仿真场景如下:
1)仿真区域: 100M×100M的办公室区域;
2)节点发射功率为0.005W,数据率为11Mbps,且发送速率按照均匀分布在整个过程中发送的速率都维持恒定;
3)仿真节点: 20个随机分布的节点组成无线Ad Hoc网络。如图1所示;
图1 Ad Hoc网络拓扑图
4)每个节点的运动轨迹为随机的,运动速度为5m/s;
5)跳数限制: 在仿真中我们对从节点14到节点5所经过的最大节点数作了限制,设定最大跳数为7,如果路由过程中超过了此跳数的数据包则丢弃,因为跳数过多会导致网络性能的下降。
6)信源和信宿:信源为节点14,信宿为节点5;
7)发送方分组发送采用均匀分布,分组大小1024bit;
8)节点之间采用802.11b协议来进行通信和传输数据。
网络运行一小时应用Opnet分别对AODV以及DSR协议情况下时延的仿真,其结果如图2以及如图3.发和送方的发送速率、接收方的接收速率进行仿真,其结果如图4以及如图5.
图2 AODV协议下时延 图3 DSR协议下时延
从仿真结果的对比可以看出相同的环境下DSR协议比AODV总的来说时延要大,但是时延抖动要小。通过两种协议下发送速率和接受速率的对比中也可以看出相同的发送速率前提下,在DSR协议下,接收方的接收速率要高于AODV协议,同时比AODV协议的接收效果要稳定。
图4 AODV协议下发送方和接收方的速率 图5 DSR协议下发送方和接收方的速率
[1]汪 涛.无线网络技术导论[M].北京:清华大学出版社,2008.
[2]孙宝林,桂 超,李 媛,等.移动Ad Hoc网络路由技术研究[M].武汉:湖北人民出版社,2008.
[3]郑少仁,王海涛,赵志峰,等.Ad Hoc网络技术[M].北京:人民邮电出版社,2005.
[4]陈 敏.Opnet网络仿真[M].北京:清华大学出版社,2004.