跳到主要内容

8.5. 作为叶节点运行 (Operation as a Leaf Node)

在某些情况下, RPL 节点可能只能作为叶节点附接到 DODAG. 这种情况的一个示例是节点不理解或不支持 (策略上不支持) RPL Instance 的 OF 或通告的度量/约束. 如第 18.6 节中关于策略函数所规定, 节点可以作为叶节点加入 DODAG, 也可以不加入 DODAG. 如第 18.5 节所述, 此时建议记录故障.

叶节点不会扩展 DODAG 连通性; 然而在某些情况下, 叶节点仍可能偶尔需要传输 DIO, 特别是当该叶节点并非一直作为叶节点运行且检测到不一致时.

作为叶节点运行的节点必须遵守以下规则:

  1. 它 MUST NOT 传输包含 DAG Metric Container 的 DIO.

  2. 它的 DIO MUST 通告 INFINITE_RANK 的 DAGRank.

  3. 它 MAY 抑制 DIO 传输, 除非 DIO 传输是由于转发分组时检测到不一致或响应单播 DIS 消息而触发; 在这些情况下, DIO 传输 MUST NOT 被抑制.

  4. 它 MAY 按第 9.2 节所述传输单播 DAO.

  5. 它 MAY 按第 9.10 节所述向 '1 hop' 邻域传输组播 DAO.

一种需要叶节点发送 DIO 的特殊情况是: 该叶节点曾经是另一个 DODAG 的成员, 而另一个节点基于旧拓扑假设转发消息, 从而触发不一致. 叶节点需要传输 DIO 来修复该不一致. 注意, 由于 LLN 的有损特性, 即使叶节点在成为叶节点之前曾通过在旧 DODAG 中通告 INFINITE_RANK 的 Rank 来乐观地毒化其路由, 该通告也可能已经丢失, 因此叶节点必须能够在稍后发送 DIO 以修复不一致.

在一般情况下, 叶节点 MUST NOT 将自身通告为路由器 (即发送 DIO).