摘要
- RREQ-Instance 的控制消息从 OrigNode 走向 TargNode,但它发现的路由用于 TargNode 返回 OrigNode;RREP-Instance 则以相反控制方向建立正向数据路由。
- 端点地址、本地 InstanceID 与六位 Delta 可防止并发发现串台,却不证明两向路由当前已安装、仍新鲜或已被包使用。
- 双向业务结论必须在同一时间窗内,分别连接两向安装收据、两向包观测,以及可关联的应用请求与响应。
为什么不能借用同一条回程
无线链路的两个方向可以呈现不同的接收强度、干扰、带宽或调度条件。一个节点可以顺利收到邻居的信号,却无法让邻居以同样质量收到回传。RFC 9854 正面承认这一点:当 OrigNode 有数据要发给 TargNode,而现有路由不能满足应用要求时,AODV-RPL 才按需启动点到点发现。
第一次控制扩散形成以 OrigNode 为根的临时 RREQ-Instance。RREQ-DIO 从源走向目标,但加入该 DODAG 的节点形成的是指向根的路由,因此数据用途是 TargNode → OrigNode。随后,RREP-DIO 从目标返回源;若需要第二棵 DODAG,它以 TargNode 为根,为 OrigNode → TargNode 的数据建立方向。消息名称描述控制流,不直接描述数据流。把“收到 RREQ”写成“正向路由成功”,一开始就把证据方向写反了。
S 位记录第一轮传播是否一直保留双向可用性。OrigNode 发出时置 1;每个路由器只有在入站链路的另一个方向也满足 Objective Function 时才保留 1,变成 0 后不会恢复。TargNode 收到 S=1,可沿已知向量或路由项单播 RREP,不必再建 RREP DODAG。若 S=0,TargNode 必须新建 RREP-Instance 并组播 RREP-DIO,沿途节点为指向目标的方向重新选择父节点。两条数据路由因而可能经过不同中间节点。
规范没有规定判定链路对称性的唯一方法。它只列出本地信息、既有知识、测试流量与 OAM 等可能来源,并在附录给出 ETX/RSSI 示例。S=1 是特定实现、策略与时刻下的控制结论,不是永恒的无线事实,更不是之后每个包的签收单。
Delta 解决串台,不解决交付
RPLInstanceID 由节点本地分配。同一对端点可同时发起采用不同 Objective Function 的发现,不同源节点也可能选到相同数值。RFC 9854 因此把 RREQ 身份定义为源节点本地值与源地址的有序组合,把 RREP 身份定义为目标本地值与目标地址的组合。
如果候选 RREP 数值已被同一目标 DODAGID 下的活动实例占用,TargNode 必须换一个值。RREP 里的六位 Delta 表示它在收到的 RREQ 数值上增加了多少;超过 255 后从 0 回绕。接收方在建立目标方向路由时减去 Delta,恢复成对的 RREQ 数值。DODAGID 提供端点语境,避免只凭一个八位数值认错实例。
这套机制确实封住一个重要错误:不同发现或不同 Objective Function 的状态不能混接。但“配对正确”只说明控制记录可归档到同一发现。它没有证明 RREP-Instance 在所有必要节点上形成,也没有证明两边的路由项尚存、同属一个当前世代或已经承载数据。
Rank、序列号与寿命是三类问题
Rank 不是链路延迟、跳数或端到端成本。RFC 6550 的定义明确说,它表示节点在某一 DODAG Version 中相对邻居的位置,不一定是到根距离或路径成本的良好表达;RFC 9854 又明确写出 AODV 消息里的 Rank 不表示到根的距离或成本。Objective Function 可使用的度量与约束另见 RFC 6551。因此,Rank 更优不能被改写成未测量的性能提升。
序列号处理逻辑新鲜度。OrigNode 发起新发现时递增自己的序列号;指向源的状态保存 Orig SeqNo,指向目标的状态保存 ART 中的 Dest SeqNo。同源、同目的、同实例下的陈旧路由项必须删除。这能排序路由世代,却不证明硬件表已接受该项,或链路此刻仍通。
时间也被拆开。L 字段限制节点能在临时实例中停留多久,它与路由项寿命明确独立。路由寿命来自 DODAG 配置,并可在实际使用时延长。“实例尚活”“路由未过期”“刚有包通过”分别需要各自的时钟。
hop-by-hop 与 source routing 留下不同证据
H=1 时,中间路由器逐跳建立包含源、实例、目的、下一跳、寿命与序列号的条目。对目标方向而言,对称路径可把 RREP 发送者作为下一跳,非对称路径则使用 RREP DODAG 的优选父节点。可靠收据必须点名节点、方向、下一跳、安装世代和过期时间。
H=0 时,路径通过 Address Vector 交给源路由。非对称情况下,RREP 向量记录第二轮控制实际经过的接口;对称情况下,目标原样返回 RREQ 收到的向量。发现自身地址已在向量中会触发丢弃,有助于限制环路,但一个结构正确的向量仍只是控制对象,不能证明列出的每个接口在数据到达时都可用。
OrigNode 收到 RREP 后,规范说它“可以开始”发送应用数据。这句话标记发现阶段结束、运行证据阶段开始。第一个包仍可能遇到路由缺失、寿命到期、无线条件改变、拥塞,或一个根本没有产生响应的目标应用。
一次往返需要五张收据
第一张收据固定发现身份:两端地址、两个 DODAGID、RREQ/RREP 数值、Delta、Objective Function、H/S、序列号、临时实例时钟和观测者。第二张单独证明 RREQ 所发现的 TargNode → OrigNode 方向:逐节点路由项或精确向量、寿命与世代。第三张对 RREP 结果所形成的 OrigNode → TargNode 方向做同样证明;两个方向不得互相补空白。
第四张来自包。计数器或探针要带时间窗、分母、复位历史、源/目的及实例语境。只观察到单向包,就只能证明单向传递。即使两个方向各自成功,若发生在不同时间,也未必证明两套路由曾同时存在。
第五张属于应用:用唯一请求标识连接 OrigNode 发出、TargNode 接受、生成响应,以及 OrigNode 在截止时间前收到响应。到这里才有业务意义上的往返事实。成对控制消息不能代替它。
RFC 9854 依赖 RPL 的可选安全框架,并指向 RFC 7416 的威胁分析。即便在安全发现中,掌握密钥的恶意路由器仍可能宣布虚假信息、注入发现或修改回复;恶意 Address Vector 与伪造 G-RREP 还可能制造环路或拒绝服务。认证约束谁能说话以及消息的某些完整性属性,却不会自动认证下游应用结果。
IANA RPL 注册表 登记了 MOP 4 与 RFC 9854 的 RREQ、RREP、ART 选项。RFC Editor 信息页 与 Datatracker 证明其 Proposed Standard 状态和发布历史;审稿时的 errata 查询 没有匹配条目。这些是规范与登记事实,不是厂商支持或部署普及率证据。
Heng Lu 的 Running-Code Primacy 提供本稿的底线:文档与登记协调共同语言,实际运行仍须由运行系统证明。最小初始规范、本地化未来决策与自愿采用 要求共享层只保留可本地验证的必要规则;现实层与符号权力 则提醒我们,配对形式的整齐不能冒充一次已执行的往返。
来源
- RFC Editor:RFC 9854 信息页
- RFC 9854 全文
- IETF Datatracker:RFC 9854
- RFC 9854 errata 查询
- IANA RPL 注册表
- RFC 6550:RPL
- RFC 6551:RPL 路由度量
- RFC 7416:RPL 威胁分析
- Heng Lu:Running-Code Primacy
- Heng Lu:Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Heng Lu:On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

