当前位置:文档之家› 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. Das

2003年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翻译为应当)

相关主题