跳到主要内容

3.6. RPL 使用的路由度量和约束 (Routing Metrics and Constraints Used by RPL)

路由协议使用路由度量来计算最短路径. 内部网关协议 (Interior Gateway Protocols, IGPs), 例如 IS-IS ([RFC5120]) 和 OSPF ([RFC4915]), 使用静态链路度量. 这类链路度量可以简单反映带宽, 也可以根据定义不同链路特征的若干度量的多项式函数计算. 有些路由协议支持多个度量: 在绝大多数情况下, 每个子拓扑使用一个度量. 较少情况下, 在存在等价多路径 (Equal Cost Multiple Paths, ECMPs) 时, 第二个度量可用作决胜条件. 多度量优化是已知的 NP-complete 问题, 有时由某些集中式路径计算引擎支持.

相比之下, LLN 确实需要同时支持静态度量和动态度量. 此外, 还需要同时支持链路度量和节点度量. 对 RPL 而言, 实际上不可能定义一个度量, 甚至一个复合度量, 来满足所有用例.

此外, RPL 支持基于约束的路由, 其中约束可应用于链路和节点. 如果某条链路或某个节点不满足所需约束, 它会从候选邻居集合中被 "修剪", 从而得到受约束的最短路径.

目标函数指定用于计算受约束路径的目标. 此外, 节点被配置为支持一组度量和约束, 并根据 DIO 消息中通告的度量和约束在 DODAG 中选择父节点. 根据 OF 和度量的不同, Upstream 和 Downstream 度量可以合并, 也可以分别通告. 当它们分别通告时, DIO 父节点集合可能不同于 DAO 父节点集合. DAO 父节点是接收单播 DAO 消息的节点. 但是, 就 Rank 计算规则而言, 它们都是 DODAG 父节点.

目标函数与 RPL 使用的路由度量和约束解耦. OF 规定 DODAG 父节点选择, 负载均衡等规则, 而使用的度量和/或约束集合, 也就是决定首选路径的那些因素, 则基于 DIO 消息中 DAG container 选项携带的信息.

支持的链路/节点约束和度量集合在 [RFC6551] 中规定.

示例 1: 最短路径: 提供最短端到端时延的路径.

示例 2: 最短受约束路径: 不经过任何电池供电节点, 并优化路径可靠性的路径.