The Network Link Layer : AODV Ad hoc按需距离矢量路由协议

AODV Ad hoc按需距离矢量路由协议

  • AODV 设计缘由
  • AODV 机制
  • AODV 实现过程 S->D
    • RR 阶段
    • RRp阶段
    • Routing information in AODV AODV中的路由信息
  • 本地路由修复(Fixing routes locally)
    • 背景知识
    • 示例
      • 本地修复步骤

AODV(Ad Hoc On-demand Distance Vector Routing按需距离矢量路由协议)
AODV 是一种用于无线自组织网络的按需路由协议,它结合了传统距离向量协议的跳数作为度量基础,并通过按需建立路由、使用序列号维护路径新鲜度以及本地路由维护机制,实现高效而动态的路径发现与维护。

AODV 设计缘由

DSR协议的缺陷
DSR includes the full route in data packet headers → relatively large headers in packets with little data DSR 在数据包头中包含完整的路由 → 数据较少的数据包的头相对较大

AODV 弥补改进了这个缺陷

AODV reduces overhead by maintaining the route information at the nodes
AODV 通过在各个节点维护路由信息来减少开销

  • data packets do not have to include full routes 数据包不再需要携带完整路径
  • route information is maintained only within nodes which need to transmit -> active nodes 路由信息仅在需要传输的节点内维护->活动节点。每个参与路由的节点只在本地保存“下一跳”的信息

AODV 机制

  1. Route Request (RR) packets are flooded as in DSR DSR也使用RR包进行泛洪找路
  2. AODV also employs cache
    AODV 也维护缓存信息,虽然不是存完整路径,而是存“目的地址 → 下一跳”的转发表(routing table entry)
    缓存可以避免重复广播 RR,提高效率

AODV 实现过程 S->D

AODV同样使用泛洪实现RR找路(广播),RRp进行回路(单播),Data按RRp走(单播)。

RR 阶段

when a node forwards an RR packet, it creates a pointer to the previous node towards S.
当一个节点转发 RR 数据包时,它会创建一个指向前一个节点的指针,指向 S。

The Network Link Layer : AODV Ad hoc按需距离矢量路由协议_第1张图片

RRp阶段

当节点转发路由应答 (RRp) 数据包时,它会创建一个指向下一个节点的指针,指向 D。
RR 包中会包含跳数(hop count)或其他指标(如带宽、延迟等)。
✅ 作用是:当源节点收到多个 RRp 包时,可以根据跳数或性能指标选择最佳路径。
The Network Link Layer : AODV Ad hoc按需距离矢量路由协议_第2张图片

Routing information in AODV AODV中的路由信息

AODV 的缓存路由方式与 DSR 不同

in AODV, each node maintains one entry per destination
AODV 中,每个节点对于每一个目标节点只维护一条最优路径(条目)。
in DSR, nodes may maintain several routes for a single destination
而在 DSR 中,每个节点可能保存多个到同一个目的地的完整路径(例如为了备份或多路径选择)。

entry in an AODV cache:
AODV 缓存中每条路由条目通常包括以下字段:

字段 Meaning
Destination ID 目标ID
Next Hop 到目标的下一个跳点(比如从当前节点出发要先去哪个邻居节点)
Destination sequence number 目标节点的序列号,用来判断路由信息的新旧
Timeout 这条路由的过期时间(超时删除)
Metric 路径度量值,如跳数、延迟等,用于评估路由优劣

在向网络发送 RR 数据包并收到来自节点 6 的 RRp 数据包后,节点 3、4 和 5 具有以下路由条目(或指针)
The Network Link Layer : AODV Ad hoc按需距离矢量路由协议_第3张图片

本地路由修复(Fixing routes locally)

背景知识

在 DSR 和 AODV 中,如果某条路径断了(如图中 F → J),默认做法是回退到源节点 S,让 S 重新发起全局路由请求(RR)。但这种做法成本很高,因此引出了“本地修复(local repair)”的想法。
DSR and AODV do not fix routes locally DSR和AODV默认是不会进行本地修复的

示例

节点 F → J 链路断裂(红叉)。F 是最早发现断裂的节点。F 不立即上报给源节点 S,而是尝试自己修复。
The Network Link Layer : AODV Ad hoc按需距离矢量路由协议_第4张图片

本地修复步骤

  1. F 向附近节点发起 LQ(Local Query,本地查询),用小 TTL(生存时间),进行局部泛洪。
    图中黑色虚线是 LQ 的传播路径(F → G、F → K 等)。

Note : Any node involved in the link breakage (F) may send a local query (LQ) with a TTL, using
flooding. 涉及链路中断 (F) 的任何节点都可以使用泛洪发送带有 TTL 的本地查询 (LQ)。

  1. 如果 D 在 TTL 范围内收到 LQ它就会回复一个 RRp 包(红色虚线)。
    例如新路径是:F → G → K → D。
  2. 修复成功!以后发数据就不再走断开的 F → J,而是走新路径。

你可能感兴趣的:(Sensor传感器,嵌入式硬件)