Ad hoc网络路由协议概述4——按需路由协议(2)AODV协议 (Ad-hoc on-demand distance vector algorithm protocol)

目录

1 一点前言

2 路由发现

2.1 相关概念

2.2 AODV协议消息格式

2.2.1 RREQ控制消息

2.2.2 RREP控制消息

2.3 AODV的路由发现过程

2.4 与DSDV协议的对比

3 路由表管理及维护

3.1 更新路由表的策略

4 AODV协议的特点

4.1 优点

4.2 缺点


1 一点前言

在之前提过的DSR协议中,采用了源节点路由方式,每个数据报文头部都携带路由信息,增长了报文长度,降低了传输效率,尤其是在数据报文本身很短的情况下,其耗费尤为明显。在AODV协议中,路由中的每个节点都维护路由表,因而数据报文头部不再需要携带完整的路由信息,从而提高了协议的效率,其具体实现过程见下文: D

2 路由发现

2.1 相关概念

AODV协议采用与DSR协议类似的广播式路由发现机制。与DSR协议相比,AODV的路由依赖于中间节点建立和维护的动态路由表。AODV的路由发现过程由反向路由的建立和前向路由的建立这两部分组成。

反向路由是指从目的节点到源节点的路由,用于将路由响应报文回送至源节点。反向路由是源节点在广播路由请求报文的过程中建立起来的,具体过程见后面介绍。如图1(a)所示,反向路由可能会有多条。

前向路由是指从源节点到目的节点方向的路由,用于以后数据报文的传送。前向路由是在节点回送路由响应报文的过程中建立起来的,如图1(b)所示。

(a)反向路由的建立                                          (b)前向路由的建立

 图1 AODV的路由建立过程

2.2 AODV协议消息格式

AODV协议的具体过程可参考RFC3565。本篇文章仅给出路由请求RREQ和路由响应RREP这两类控制消息的格式,还有路由错误RERR、Hello消息和RREP-ACK消息在这里暂不给出,需要用的伙伴可以去查RFC。这三种消息,分别涉及到路由中断、路由维护和是否需要节点在收到RREP后向发送节点确认的控制消息。

2.2.1 RREQ控制消息

RREQ消息格式
消息类型(8bits)标记位(5bits)保留位(11bits)跳数(8bits)
RREQ ID(32bits)
目的IP地址(32bits)
目的序列号(32bits)
源IP地址(32bits)
源序列号(32bits)

2.2.2 RREP控制消息

RREP消息格式
消息类型(8bits)标志位(2bits)保留位(9bits)前缀长度(5bits)跳数(8bits)
目的IP地址(32bits)
目的序列号(32bits)
源IP地址(32bits)
路由生存时间(32bits)

2.3 AODV的路由发现过程

步骤1:源节点需要发起业务数据传输,但本地没有可用路径,则发起路由发现过程,广播RREQ消息。

步骤2:中间节点在收到RREQ消息时,比较本节点和目的节点的IP地址,进行如下判断:

步骤2.1:如果自己是目的节点,则回复给源节点RREP消息,否则转到步骤2.2;

步骤2.2:序列对<源地址IP地址,广播ID>惟一标识一个路由请求,根据<源地址IP地址,广播ID>判断是否收到过该请求消息,如果收到过则丢弃该请求消息,否则转到步骤2.3;

步骤2.3:形成对应反向路由。记录的消息包括:上游节点IP地址、目的地址IP地址、源地址IP地址、广播ID、反向路由超时时长和源节点序列号等。同时跳数计数器加1,向邻节点转发该RREQ。

步骤3:源节点收到RREP后,完成路由发现,通过单播RREP过程中形成的正向路由传输数据包。

举个例子,源节点S发起到目的节点T的路由发现过程如图所示。

图2  反向路由形成
图3 正向路由形成

具体处理RREQ消息和RREP的流程也可参见RFC,俺这里只做个容易理解的概述。

2.4 与DSDV协议的对比

与DSDV协议相似,在AODV协议中也引入了序列号,包括源序列号和目的序列号。不同的是在AODV中,这些序列号都是单调递增的,它们主要用于避免过时的缓冲路由对系统带来负面的影响。其中源序列号用在路由请求广播中保证反向路由的有效性,而目的序列号则用来维护前向路由的有效性。

3 路由表管理及维护

AODV路由协议中的路由表主要包括目的节点、下一跳节点、距离目的节点的跳数、目的节点序列号、本路由的活跃邻节点和本路由的超期时长等信息。

同时,在AODV协议中,节点还存储一些与路由表相关的信息。以下几点是其中比较重要的。

(1)路由请求超时定时器:和反向路由相关的定时器,当定时器超期后,节点仍未收到路由协议报文时,节点则认为该反向路由无效,删除该反向路由。

(2)活跃超时时长:和前向路由相关的时长。当超过活跃时长时间后,节点仍无数据利用该路由发送时,删除该路由(即使该路由可能有效)。

3.1 更新路由表的策略

当节点使用路由表中的某项路由发送数据时,该路由的超期时长更新为当前时间+活跃超时时长。当节点收到一条新的路由时,选择新路由和本节点存储路由中目的节点序列号大的路由为有效路由。当序列号一样时,则选择跳数小的路由。

节点的移动可能会造成现有路由的失效,根据节点的不同,AODV路由协议的处理方法不同:

(1)当由于源节点移动而造成路由失效时,此时只能由源节点再次发起路由请求过程。

(2)当由于中间节点或目的节点的移动而造成路由失效时,检测到路由断连的节点主动向其上游节点发送路由响应报文,该报文中将至目的节点的跳数设置为∞,同时将目的节点的序列号加1,。这样,上游节点在收到该路由响应报文时,会即使更新本地相关路由。

4 AODV协议的特点

4.1 优点

从前面介绍的DSDV协议和DSR协议来看,AODV协议综合了两者的特点。

(1)与基于表驱动方式的DSDV协议相比,AODV协议采用了按需路由的方式,即网络中的节点不需要实时维护整个网络的拓扑信息,而只是在发送报文且没有达到目的节点的路由时,才发起路由请求过程。

(2)与DSR协议相比,在AODV协议中,由于通往目的节点路径中的节点建立和维护路由表,数据报文头部不再需要携带完整路径,减少了数据报文头部路由信息对信道的占用,提高了系统效率。因此,协议的带宽利用率高,能够及时对网络拓扑结构变化作出响应,同时也避免了路由环路现象的发生。

4.2 缺点

但是在AODV协议中也存在一些问题。

(1)AODV协议仅适用于双向传输信道的网络环境。由于在路由请求消息的广播过程中建立了反向路由,供路由响应报文寻路,因此网络要满足双向传输信道的要求;

(2)路由表中仅维护一条到指定目的节点的路由,而在DSR协议中,源节点可以维护多条到目的节点的路由。如果节点间存在多条路由,当某条路由失效时,源节点可以选择其他的路由而不需要重新发起路由发现过程,这在网络拓扑结构变化频繁的环境中尤其重要。

(3)由于AODV协议采用了超时删除路由的机制,因此及时路由未失效,在超过时限后也将被删除。

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值