16. 可互操作实现的要求摘要 (Summary of Requirements for Interoperable Implementations)
本节总结基本互操作性, 并引用以三种主要模式之一运行的 RPL 实现的规范性文本. 实现预期支持无 Downward 路由, 仅 Non-Storing 模式, 或仅 Storing 模式. 第四种模式, 即作为叶节点运行, 也是可能的.
符合本规范的实现可以根据应用场景包含不同能力子集. 实现者支持与应用场景要求一致的互操作性级别非常重要. 为此, 可以在本规范之外提供进一步指导 (例如作为适用性声明), 并且可以理解, 在某些情况下此类进一步指导可能覆盖本规范的部分内容.
16.1. 通用要求 (Common Requirements)
在一般情况下, 当 RPL LLN 中所有节点协同使用相同的 MOP, OF, 度量和约束, 因而能够作为 RPL 路由器运行时, 可以达到最高级别的互操作性. 当节点无法成为 RPL 路由器时, 它可能能够以更受限的方式作为 RPL 叶节点互操作.
所有 RPL 实现都需要支持使用在数据分组内传输的 RPL Packet Information (第 11.2 节). [RFC6553] 中描述了一种此类机制.
RPL 实现需要支持使用邻居不可达检测 (Neighbor Unreachability Detection, NUD) 或等效机制来维护相邻 RPL 节点的可达性 (第 8.2.1 节). 替代机制可以针对实现的受限能力进行优化, 例如来自链路层的提示.
本规范提供获取 PIO 并进而形成 IPv6 地址的方法. 使用该机制时, 可能需要通过外部过程执行地址解析和重复地址检测, 例如 IPv6 ND [RFC4861] 或 6LoWPAN ND [6LOWPAN-ND].
16.2. 作为 RPL 叶节点运行 (仅叶节点) (Operation as a RPL Leaf Node (Only))
-
叶节点 (仅叶节点) 的实现永远不作为 RPL 路由器参与. 叶节点的可互操作实现按第 8.5 节总结的方式运行.
-
不要求支持特定 MOP 编码, 但如果叶节点发送 DAO 消息以建立 Downward 路由, 则叶节点应以与 MOP 指示的运行模式一致的方式执行.
-
不要求支持特定 OF.
-
总之, 叶节点通常不发出 DIO 消息, 但可以发出 DAO 和 DIS 消息. 叶节点接受 DIO 消息, 但通常忽略 DAO 和 DIS 消息.
16.3. 作为 RPL 路由器运行 (Operation as a RPL Router)
如果没有进一步指导可用, 则 RPL 路由器实现 MUST 至少支持无度量 OF0 [RFC6552].
为了保持一致运行, RPL 路由器实现需要支持 DODAG 正在使用的 MOP.
所有 RPL 路由器都需要实现 Trickle [RFC6206].
16.3.1. 支持 Upward 路由 (仅 Upward) (Support for Upward Routes (Only))
仅支持 Upward 路由的 RPL 路由器实现支持以下内容:
-
Upward 路由 (第 8 节)
-
MOP 编码 0 (第 20.3 节)
-
总之, 发出 DIO 和 DIS 消息, 不发出 DAO 消息. 接受 DIO 和 DIS 消息, 忽略 DAO 消息.
16.3.2. 支持 Upward 路由和 Non-Storing 模式下的 Downward 路由 (Support for Upward Routes and Downward Routes in Non-Storing Mode)
支持 Upward 路由以及 Non-Storing 模式下 Downward 路由的 RPL 路由器实现支持以下内容:
-
Upward 路由 (第 8 节)
-
Downward 路由 (Non-Storing) (第 9 节)
-
MOP 编码 1 (第 20.3 节)
-
源路由 Downward 流量 ([RFC6554])
-
总之, 发出 DIO 和 DIS 消息, 并向 DODAG 根发出 DAO 消息. 接受 DIO 和 DIS 消息, DODAG 根以外的节点忽略 DAO 消息. 不通过本规范描述的方法支持组播, 但可以通过某些替代方法支持组播.
16.3.3. 支持 Upward 路由和 Storing 模式下的 Downward 路由 (Support for Upward Routes and Downward Routes in Storing Mode)
支持 Upward 路由以及 Storing 模式下 Downward 路由的 RPL 路由器实现支持以下内容:
-
Upward 路由 (第 8 节)
-
Downward 路由 (Storing) (第 9 节)
-
MOP 编码 2 (第 20.3 节)
-
总之, 发出 DIO, DIS 和 DAO 消息. 接受 DIO, DIS 和 DAO 消息. 不通过本规范描述的方法支持组播, 但可以通过某些替代方法支持组播.
16.3.3.1. 基本组播方案的可选支持 (Optional Support for Basic Multicast Scheme)
Storing 模式实现可以通过以下补充增强以支持基本组播:
-
基本组播支持 (第 12 节)
-
MOP 编码 3 (第 20.3 节)
16.4. 留待未来规范处理的事项 (Items for Future Specification)
若干事项留待未来规范处理, 包括但不限于以下内容:
-
如何附接非 RPL 节点, 例如 IPv6 主机, 例如如何至少向附接节点一致分发 PIO 材料.
-
如果使用 authenticated 模式, 如何获取认证材料以支持该模式 (第 10.3 节).
-
多个并发实例上的运行细节.
-
高级配置机制, 例如 RPLInstanceID 的配置, Objective Function 的参数化, 以及用于控制安全的参数. (预期此类机制可能扩展 DIO, 作为跨 DODAG 分发信息的一种方式).