8.2.1. DODAG Version 内的邻居和父节点 (Neighbors and Parents within a DODAG Version)
RPL 的 Upward 路由发现算法和处理以三类链路本地节点的逻辑集合来表述. 首先, 候选邻居集合是可通过链路本地组播到达的节点子集. 该集合的选择依赖于实现和 OF. 其次, 父节点集合是候选邻居集合的受限子集. 最后, 首选父节点是父节点集合中的成员, 也是 Upward 路由中的首选下一跳. 从概念上讲, 首选父节点是单个父节点; 但如果多个父节点同等受偏好且具有相同 Rank, 它也可以是一组父节点.
更准确地说:
-
DODAG 父节点集合 MUST 是候选邻居集合的子集.
-
DODAG 根 MUST 具有大小为零的 DODAG 父节点集合.
-
非 DODAG 根节点 MAY 维护大小大于或等于一的 DODAG 父节点集合.
-
节点的首选 DODAG 父节点 MUST 是其 DODAG 父节点集合的成员.
-
节点的 Rank MUST 大于其 DODAG 父节点集合中的所有元素.
-
当邻居不可达检测 (Neighbor Unreachability Detection, NUD) [RFC4861] 或等效机制确定某个邻居不再可达时, RPL 节点在计算和通告路由时 MUST NOT 将该节点纳入候选邻居集合, 直到它确定该节点再次可达. 经过不可达邻居的路由 MUST 从路由表中移除.
这些规则确保 DODAG 内节点之间存在一致的偏序关系. 只要节点 Rank 不变, 遵循上述规则即可确保每个节点到 DODAG 根的路由无环, 因为到根的每一跳 Rank 都会降低.
OF 可以指导候选邻居集合和父节点集合选择, 如 [RFC6552] 中所述.