跳到主要内容

3.7.2. DODAG 环路 (DODAG Loops)

当某个节点从 DODAG 脱离并重新附着到其先前子 DODAG 中的设备时, 可能会发生 DODAG 环路. 特别是, 当 DIO 消息丢失时, 可能发生这种情况. 严格使用 DODAGVersionNumber 可以消除此类环路, 但在使用某些本地修复机制时仍可能遇到此类环路.

例如, 考虑一种本地修复机制: 它允许节点从 DODAG 脱离, 通告 Rank 为 INFINITE_RANK (以毒化其路由 / 通知其子 DODAG), 然后重新附着到 DODAG. 在其中某些情况下, 节点可能会重新附着到其自身先前的子 DODAG, 从而导致 DODAG 环路. 这是因为如果 INFINITE_RANK 通告在 LLN 环境中丢失, 毒化可能失败. 在这种情况下, 基于 Rank 的数据路径验证机制最终会检测到该环路并触发修正.