没有合适的资源?快使用搜索试试~ 我知道了~
首页AODV 规范 RFC3561中文版.doc
AODV 规范 RFC3561中文版.doc
需积分: 5 193 浏览量
更新于2023-03-03
评论
收藏 165KB DOC 举报
本文档翻译RFC3561协议规范,描述的是按需距离矢量路由协议(AODV),成功实现了说人话的表述。
资源详情
资源评论
资源推荐

RFC 3561 AODV 路由 2003 年 7 月
网络组 诺基亚研发中心 C. Perkins
RFC:3561 加州大学圣芭芭拉分校 E. Belding-Royer
类别:试验版 辛辛那提大学 S. Das
2003 年 7 月
Ad hoc 网络中基于距离数组的按需 (AODV)路由协议
本备忘状态
本备忘定义的只是一个试验性质的网络社区协议而已,它不是任何一种类型的网络标准。我们非常需要各种
讨论和建议用于改进这个协议。本备忘录的分发不受任何限制。
版权声明
复制权属于整个因特网社区,保留所有权利。
摘要
本协议用于特定网络中的可移动节点。它能在动态变化的点对点网络中确定一条到目的地的路由,并且具有
接入速度快,计算量小,内存占用低,网络负荷轻等特点。它采用目的序列号来确保在任何时候都不会出现回环
(甚至在路由控制信息出现异常的时候也是如此),避免了传统的距离数组协议中会出现的很多问题(比如无穷
计数问题)。
目录
Perkins, et. Al. 试验版 原文页码
1

RFC 3561 AODV 路由 2003 年 7 月
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 地址
- 目的节点序列号
Perkins, et. Al. 试验版 原文页码
2

RFC 3561 AODV 路由 2003 年 7 月
- 目的节点序列号是否正确的标志
- 其他状态和路由标志(比如,有效,无效,可修复,正在修复)
- 网络接口
- 跳数(到达目的节点需要的跳数)
- 下一跳
- 先驱表(在 6.2 节里描述)
- 生命(路由过期或应当删除的时间)
管理序列号对避免路由回环至关重要,即使是当连接断裂,一个节点不再可达而无法提供他自己的序列号信
息的时候也是如此。当一条链路断开或失效,导致一个节点不可达,当这种情况发生时,将通过对序列号的操作
和标注路由表项为不正确来使得这条路由失效。细节请见 6.1 节。
3. AODV 术语
按照惯例,本协议的说明使用全大写的单词,比如 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 消息中
提供一些有用信息。
Perkins, et. Al. 试验版 原文页码
3

RFC 3561 AODV 路由 2003 年 7 月
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. 消息格式
5.1. 路由请求(RREQ)消息格式
种类保留 ! "#$跳数
%&'路由请求消息标识
$(#)$( #'*+目标节点 '* 地址
$(#)$( #,-"#./"01目标节点序列号
2(3(#)$ '*+发起节点 '* 地址
2(3(#)$ ,-"#./"01发起节点序列号
Perkins, et. Al. 试验版 原文页码
4

RFC 3561 AODV 路由 2003 年 7 月
路由请求消息的格式如上所示,包含下面几个域(或字段):
Type(种类) 1
J Join flag (加入标志):为多播保留
R Repair flag (修复标志): 为多播保留
G Gratuitous RREP flag (免费路由回复标志): 指示是否该向目标节点 IP 地址域指定的节点
发送一个免费路由回复消息。
D Destination only flag (仅允许目的节点回复标志):标志置位则仅允许目的节点回复本条路
由请求。
U Unknown sequence number (未知序列号): 指示目标节点序列号未知(见 6.5 节)
Reserved Sent as 0 (填充 0): 接收端忽略此字段
Hop Count 从发起节点到处理该请求的节点的跳数。
RREQ ID (路由请求标识) 这是一个序列号,用它和发起节点的 IP 就可以唯一标识一个 RREQ 信息。
Destination IP Address (目标节点 IP 地址)
目的节点的 IP 地址,本 RREQ 消息的任务就是想在发起节点和目的节点之间
建立一条路由。
Destination Sequence Number (目标节点序列号)
发起节点在以前通往目标节点的路由信息中能找到的最新的序列号。
Originator IP Address (发起节点 IP 地址)
发起本条路由请求消息的节点的 IP 地址。
Originator Sequence Number (发起节点序列号)
指向发起者的路由表项中正在使用的序列号。
5.2. 路由回复(RREP)消息格式
+*45,6 ! "#$
$(#)$( #'*)
$(#)$( #,-"#./"01
Perkins, et. Al. 试验版 原文页码
5
剩余27页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0