摘要

  • RFC 9914 中的正向 PDR-ACK 表示根节点称已建立所请求的 Track,并承诺维持协商后的生命周期;它没有证明任何数据包已经使用该 Track。
  • 可核验的运行结论要把请求与序列号、不同模式下的安装状态、Track 与分段时钟、数据包携带的 Track 身份、逐跳观测和应用结果连接起来,同时保留每层证据的边界。

最容易误判的时刻,并不是报错,而是界面全部变绿。请求已经送达,根节点返回成功,TrackID 也出现在控制记录里。运维人员于是写下“确定性路径已启用”。可当时没有一帧数据包被捕获,没有出口计数器增长,也没有接收端确认。协议回答了控制问题,人却把答案扩写成了业务事实。

2026 年 4 月发布的 RFC 9914属于 Proposed Standard,定义 RPL 中由根节点发起的路由状态。RFC Editor 记录列出其状态,并说明它更新 RFC 6550、RFC 6553与 RFC 8138。这套机制服务于低功耗有损网络中的路径投射,并没有宣称某个真实部署、产品实现或服务水平已经成功。

交易从 P-DAO-REQ 开始。Track 入口可向根节点提交 TrackID、入口和出口、请求生命周期以及 PDRSequence。根节点用这个序列把 PDR-ACK 与请求对应起来。正向答复的含义很具体:根节点称 Track 已建立,并承担协商期限内的维持责任。负向答复则拒绝请求。两者都不是从数据面采集的收据。

“建立”在两种 RPL 模式里有不同的物理含义。Non-Storing Mode 下,源路由或隧道状态主要保存在入口或根节点侧。Storing Mode 下,根节点向出口发送 Projected DAO,也就是 P-DAO;信息沿反方向传向入口,各参与路由器逐段安装状态,最后由入口回送正向 P-DAO-ACK。若根节点收不到 P-DAO-ACK,它可以用同一 TrackID 重试,也可以拆除 Track。把两种模式压成一格“已安装”,会在故障时抹掉状态究竟由谁持有。

协议还给拒绝提供了有限而有用的词汇。Vector Information Option 可携带错误,状态中包括 Out of Resources、Predecessor Unreachable 与 Unreachable Target。它们说明某个节点为何没有接受所需分段,却不能单独证明无线物理原因,也不能直接等同于应用中断。精确的错误码仍然只是它所在层的证据。

这条 Track 也没有唯一时钟。向量状态带有 Segment Sequence 和 Segment Lifetime。旧序列被忽略;相同元组的重复发送属于重试,不得改变状态;生命周期为零则移除分段。各分段可以异步续期和过期,且与请求者看到的 Track 总生命周期相互独立。外层倒计时仍在继续,并不保证内部每一段保持原样。

RFC 9914 有意让更深处的部分变更对入口透明。根节点可以在请求者看不到细节的情况下维护或替换分段。只有当服务无法继续维持时,根节点才拆除整条 Track,并可异步发送生命周期为零的负向 PDR-ACK。因此“尚未收到失败消息”只能说明这类失败通知没有到达,不能证明每一跳都没有变化。

真正进入数据面后,规则反而更严格。Track 路由的优先级高于主 RPL DODAG。一旦数据包进入 Track,就不得退回普通 DODAG;如果指定的下一跳不可达,数据包必须被丢弃。这避免了未经审查的替代路径破坏 Track 的属性,也意味着“普通 RPL 仍可达”不能补写为“Track 投递成功”。

数据包可以携带可观察的身份。TrackID 与 DODAGID 可依照 RPL Packet Information、源路由或封装规则出现在路径上;RFC 9008描述相应数据面规则,RFC 6553 则定义 RPI。抓到这些字段,可以证明某个位置上的某个数据包与特定 Track 相关,却无法替未抓取的节点作证,也无法证明应用接受了负载。

重新投射路径还会改变时间行为。旧路径上的在途包和变更后进入的新包可能走不同分段,时延差异会产生抖动和乱序,即使控制协议本身完全合规。RFC 8655给出 Deterministic Networking 的架构背景;RFC 9912讨论 RAW 中的保护、复制、消除和快速适应。这些材料解释了为什么需要 Track,却不是某条无线业务的实测报告。

安全证据也不能越层。RFC 9914 指出,能伪造 P-DAO 的恶意节点可能制造状态抖动,耗尽路由器存储,因此需要链路层安全,并参考 RFC 7416的 RPL 威胁分析。协议值和状态码可在 IANA RPL 注册表查到。注册证明代码点经过协调,不证明某个网络已正确启用防护,更不证明攻击发生或被阻止。

一份可复查记录至少应保留 P-DAO-REQ 和 PDRSequence、根节点决定和 Track 生命周期、Storing 或 Non-Storing 模式、适用时的 P-DAO/P-DAO-ACK、逐节点拒绝码、Segment Sequence 与寿命、数据包上观测到的 TrackID/DODAGID、入口出口和逐跳遥测、重投射期间的丢包乱序,以及应用结果。这是依据规范边界形成的编辑性证据链,不是 RFC 9914 强制规定的数据库模式。

卢恒的《最小初始规范》主张共享层保持狭窄,把后续运行选择留给本地承担责任;《运行代码优先》要求安装状态与观测结果高于符号性声明;《现实层次》则阻止请求、确认、路由状态、数据包和服务被压成一个状态灯。这些是公开的编辑原则,不是新增 IETF 条款。

RFC 9914 的可靠性恰恰来自克制:请求只提出 Track,确认只报告控制面的决定和安装,数据包证据才说明使用,接收端与业务遥测才说明结果。自动化若能保存这些界线,“成功”就会从好看的标签变成可检验的陈述。

Sources