当前位置:文档之家› AODV路由协议中文说明

AODV路由协议中文说明

内容目录1导言 (3)2概述 (4)3AODV术语 (5)4适用性综述 (7)5消息格式 (8)6AODV操作 (13)管理序列号 (13)路由表项和先驱列表 (15)生成路由请求 (16)控制路由请求消息的传播 (17)处理和转发路由请求 (18)生成路由回复 (20)接受和转发路由回复 (22)对单向连接的操作 (23)Hello消息 (24)维护本地连接 (25)路由错误,路由超时和路由删除 (26)本地修复 (28)重启后的操作 (30)接口 (31)7AODV和集群网络 (31)8AODV在其他网络中的应用 (32)9扩展 (34)10参数配置 (35)网络组诺基亚研发中心 C. Perkins RFC:3561加州大学圣芭芭拉分校 E. Belding-Royer类别:试验版辛辛那提大学 S. Das2003年7月Ad hoc网络中基于距离数组的按需(AODV)路由协议本备忘状态本备忘定义的只是一个试验性质的网络社区协议而已,它不是任何一种类型的网络标准。

我们非常需要各种讨论和建议用于改进这个协议。

本备忘录的分发不受任何限制。

版权声明复制权属于整个因特网社区,保留所有权利。

摘要本协议用于特定网络中的可移动节点。

它能在动态变化的点对点网络中确定一条到目的地的路由,并且具有接入速度快,计算量小,内存占用低,网络负荷轻等特点。

它采用目的序列号来确保在任何时候都不会出现回环(甚至在路由控制信息出现异常的时候也是如此),避免了传统的距离数组协议中会出现的很多问题(比如无穷计数问题)。

目录1导言AODV算法旨在多个移动节点中建立和维护一个动态的,自启动的,多跳路由的专属网络。

AODV使得移动节点能快速获得通向新的目的节点的路由,并且节点仅需要维护通向它信号所及范围内的节点的路由,更远的节点的路由信息则不需要维护。

网络中连接的断开和异动会使得网络拓扑结构发生变化,AODV使得移动节点能适时对这种变化做出响应。

AODV的操作是无自环的,并且由于解决了Bellman-Ford“无穷计数”的问题,使得该算法在网络拓扑变化时(比如一个节点在网络中移动)能够快速收敛。

当一个连接断开时,AODV会告知所有受到影响的节点,这些节点会让用到这个连接的路由失效。

AODV的一个显著特点是它在每个路由表项上使用了目的序列号。

目的序列号由目的节点创建,并且被包含在路由信息中,然后这些路由信息将被回发到所有向它发起请求的节点。

目的序列号的使用确保了无回环,并且易于编程。

如果到一个目的有两条路由可供选择,那么收到请求的节点将会选择序列号最大的那一条(由于目的节点每次收到新的请求都会将目的序列号加一,所以序列号最大表明该路由最新)。

2概述路由请求(RREQ),路由回复(RREP)和路由错误(RERR)是AODV定义的三种消息种类。

这些消息通过UDP和通常的IP协议来接收。

举个例子,发起请求的节点需要用它自己的IP地址作为消息中的Originator IP address(发起者IP)。

对于广播,将采用IP协议指定的广播地址(255.255.255.255),这个地址意味着这种消息将不会被盲目转发。

但是,AODV操作确实要求特定的消息(例如RREQ)得到广泛的散布,甚至有可能散布至整个专有网络。

这些RREQ的散布的范围由IP头中的TTL来指定。

作为一个特点,将不会采用IP协议中的分片传输。

只要一条通道连接的两个端点都有通向对方的正确路由,AODV是不工作的。

当某节点需要连接到一个新的目的节点时,它将广播一个RREQ(路由请求消息)来尝试找到一条到目的节点的路由。

如果RREQ消息到达目的节点,这条路由将被找到。

另外一种情况下,路由也可以找到,就是RREQ到达了一个中间节点,该中间节点拥有到目的节点的“足够新鲜”的路由。

“足够新鲜”的路由首先要是一条到目的地的正确路由,该路由还需要拥有一个足够大的序列号,该序列号不得小于RREQ中的序列号(A ‘fresh enough’ route is a valid route entry for the destination whose associated sequence number is at least as great as that contained in the RREQ.)。

当朝发起RREQ的节点单播一个RREP后,这条路由就建立了。

所有接到请求的节点都会缓存一条回到发起节点的路由,所以RREP就可以通过单播从目的节点返回到发起节点,或者从一个能够找到目的节点的中间节点返回到发起节点。

节点将相邻节点(next hops)的连接状态保存在活动路由表里(active routes)。

当活动路由表里有一条连接断开时,一条RERR消息(路由错误消息)将被用来通知其他节点发生了连接断裂。

RERR消息指出了不再能到达的目的节点(甚至是目的子网)。

为了实现这种报告机制,每个节点还要维护一个“先驱表”(precursor list),表中包含了一些邻居的IP,这些邻居可能会将它用作达到目的地的下一跳节点。

先驱表里的信息可以很轻易的从回传RREP的过程中获得,因为按照定义,RREP就该是传往先驱节点的(见6.6节)。

如果RREP有一个非零的前缀长度,那么RREQ的发起者将被包括在先驱表里作为子网的路由。

(不是特定的某个精确目的地)。

RREQ也可以用来请求多播地址。

这篇文档将不细述这种类型消息处理的全过程(比如这种请求的发起者必须要遵循的某种特别的规则)。

但是,使中继节点能正确处理多播操作是非常重要的,特别网络中有没有做过发起节点或目的节点的中继节点,或类似的没有安装任何对多播有特殊操作的节点。

考虑到有这种“对多播不感冒”的节点,处理多播目的IP地址必须要和处理其他任何IP地址是一样的操作才行。

AODV是一个路由协议,它的工作就是管理路由表。

即使是短期的路由,也必须保留它在路由表里的信息。

比如为RREQ临时存储的返回路径。

AODV的每个路由表项将会包含下列的域:- 目的节点IP地址- 目的节点序列号- 目的节点序列号是否正确的标志- 其他状态和路由标志(比如,有效,无效,可修复,正在修复)- 网络接口- 跳数(到达目的节点需要的跳数)- 下一跳- 先驱表(在6.2节里描述)- 生命(路由过期或应当删除的时间)管理序列号对避免路由回环至关重要,即使是当连接断裂,一个节点不再可达而无法提供他自己的序列号信息的时候也是如此。

当一条链路断开或失效,导致一个节点不可达,当这种情况发生时,将通过对序列号的操作和标注路由表项为不正确来使得这条路由失效。

细节请见6.1节。

3AODV术语按照惯例,本协议的说明使用全大写的单词,比如MUST,SHOULD等等来指出对协议各项特性的要求级别(参考文献1)。

参考文献3中没有定义的其他术语,在这一节定义如下:(注,汉语中MUST会翻译为必须,SHOULD翻译为应当)Active route(活跃路由)路由表项里标为“有效”(valid)的通向目的节点的路由。

只有活跃路由能用来转发数据包。

Broadcast (广播)广播的意思是向IP协议规定的广播地址255.255.255.255发送数据。

广播的包不会被盲目的转发。

但是广播在让AODV消息散布到整个专有网络的时候非常有用。

Destination (目的地)数据包需要被送往的一个IP地址。

和“目的节点”是同一个意思。

当一个节点看到它自己的IP地址和数据包IP头特定的字段中的IP地址一样时,它就认为自己是这个数据包的目的节点。

到达目的节点的路由可以从AODV协议得到,AODV协议会在路由发现消息里得到路由信息。

Forwarding node (转发节点)愿意为其他节点转发数据包的节点。

转发节点会将数据包发送到它的下一个节点(就是在到达目的节点的路径上更靠近目的的那个相邻节点,这条路径由路由控制消息来建立)。

Invalid route (无效路由)一个过期的,在路由表项里被标记为无效(invalid)的路由。

当一个有效路由失效时,它会作为无效路由在路由表里再被保存一段时间。

无效路由不能用于转发数据包,但是它能在路由修复和以后的RREQ消息中提供一些有用信息。

Originating node (发起节点)Ad hoc网络内发出AODV路由发现消息的节点。

AODV路由发现消息需要被恰当的处理,然后会被传送到网络内其他节点。

例如,一个RREQ消息的发起节点就是发起一个路由发现过程并且将RREQ消息广播出去的那个节点。

Reverse route (返回路由)用于转发回复包的路由,这个回复包就是从目的节点或能达到目的节点的中间节点返回到发起节点的RREP包。

Sequence number (序列号)一个单调递增的数字,由每个发起节点管理。

在AODV路由协议的消息里,这个序列号被其他节点用于检测发起节点发出的信息的新旧程度。

Valid route (有效路由)见Active route(活跃路由)。

4适用性综述AODV路由协议被设计用于拥有数十个到上千个移动节点的Ad hoc网络。

AODV能应付低速,中等速度,以及相对高速的移动速度,以及各种级别的数据通信。

AODV被设计用于节点间可以互相信任的网络,比如预先定义好密钥的网络,或者是确信不会有恶意入侵节点的网络。

为了提升可测量性和效能,AODV设计成尽力减低控制信息的流量,并且消除数据流量的影响(原文:AODV has been designed to reduce the dissemination of control traffic and eliminate overhead on data traffic, in order to improve scalability and performance)。

5消息格式1.1.路由请求(RREQ)消息格式012301234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Type(种类)|J|R|G|D|U|Reserved(保留)|Hop Count(跳数)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RREQ ID(路由请求消息标识)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Destination IP Address(目标节点IP地址)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Destination Sequence Number(目标节点序列号)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Originator IP Address(发起节点IP地址)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Originator Sequence Number(发起节点序列号)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+路由请求消息的格式如上所示,包含下面几个域(或字段):Type(种类)1J Join flag (加入标志):为多播保留R Repair flag (修复标志): 为多播保留G Gratuitous RREP flag (免费路由回复标志): 指示是否该向目标节点IP地址域指定的节点发送一个免费路由回复消息。

相关主题