摘要

  • draft-xiao-fann-fast-cnp-with-proxy-05 把通知拆成两段:拥塞节点先向代理发 UDP 消息,代理再为 RoCEv2 发送端构造标准 CNP。
  • 最终 CNP 可以有效促使降速,却不公开代理使用的 QP 映射版本、原始拥塞节点身份,也不说明本地限速策略丢掉了多少输入通知。

发送端看到的是一个熟悉的标准 CNP,于是降低相应 Queue Pair 的发送速率。它看不到前一刻发生的事:某个拥塞路由器发出的并不是这个包;代理收到另一种格式后,查询从双向业务流量中学到的状态,再生成一个新包。

9 月 29 日发布的 Fast Congestion Notification Packet with Proxy 第 05 版正是要解决这一兼容问题。VPN 的 P 路由器可能与发送端分处不同路由域,也未必掌握构造标准 RoCEv2 CNP 所需的 Source QP。代理既提供可达性,又提供记忆。

两种格式都依赖代理状态

格式一把导致拥塞的数据流五元组和 24 位 Destination QP 送往拟议 UDP 端口 TBD1。源地址帮助代理识别发送端;协议号和目的端口指向 RoCEv2 时,代理必须发出标准 RoCEv2 CNP。

关键是第一个通知只带 Destination QP。代理要找到发送端的 Source QP,必须查询以源、目的地址为上下文的 Source-QP/Destination-QP 映射。第 05 版明确指出,代理需要处在 RoCEv2 正向和反向流量都会经过的位置,才能学习这项关系。

格式二改用 TBD2,携带五元组和 NRP Selector ID。代理据此查找 Source QP,或在 VPN 场景查找 VPN ID。选择器是查表键,不是这张表正确、最新或唯一的证明。同样字段遇到不同代际的映射,可能得到不同结果。

PNC 只说明“谁声称能代理”

拥塞节点要先知道应把第一段通知送给谁。草案把 Proxy Node Capability 与发送端前缀关联。IS-IS 和 OSPF 使用拟议的 P 标志;BGP 使用携带代理地址的 Next Hop Dependent Characteristic TLV。

这些广告回答的是控制平面问题:哪个节点声称为这个前缀提供代理能力。它们没有证明代理看到了双向流量、持有正确 QP 映射、没有达到限速阈值、功能已启用,或者第二个 CNP 已被发送端收到。

标志跨区域、跨层级得到保留,只能证明广告被传播。数据路径可能已经改变,PNC 仍然稳定;QP 关系可能已经老化,前缀仍然指向原代理;NRP 或 VPN 关系也可能独立更新。把 P 标志直接渲染成“拥塞代理健康”,会把三个生命周期混成一个。

防御性丢弃使通知序列不完整

草案先描述一对一行为:代理每收到一个第一段通知,就发出一个第二段通知。随后它给出例外:接收频率超过本地限制时,代理可以按本地策略丢掉一部分输入。

这项防护有道理。拥塞通知洪泛本身可能耗尽控制面。安全章节建议在生成端和接收端限速,要求边界过滤阻止通知进出受控域,并要求功能默认关闭。

但保护性丢弃改变了发送端能够观察到的证据。十个上游通知可能只留下三个标准 CNP。最终包没有原始事件 ID、丢弃计数、策略原因、映射版本或拥塞节点身份。发送端可以对三个包采取行动,却无法从七个“没有出现的包”重建上游历史。

于是沉默出现多种解释:没有拥塞、选错代理、PNC 路由陈旧、映射缺失、边界过滤、功能未启用、输入被限速,或者第二段丢失。收到一个 CNP 也只说明某代理发出了兼容信号,并不自动定位原始瓶颈,更不统计全部事件。

可执行信号不等于来源收据

这并不否定翻译后的 CNP。对于只理解标准 RoCEv2 的发送端,它可以准确表达“降低这个 Source QP 的速率”。代理方案的价值正是无需先升级端点。

问题在于证据越权。UDP 格式和校验和不会把第二个包与第一段原始字节、原始节点和代理决策绑定。标准 CNP 也不证明发送端实际降速、队列恢复或者应用完成。

可审计运行需要拼接多个表面:拥塞点的队列/ECN 计数、第一段通知数量和所选代理;事件时刻的 PNC 路由;代理映射代际、学习时间、接收/拒绝/限速/发出计数;发送端收到的 CNP 与 QP 速率变化;最后是吞吐、完成时间和应用结果。没有一条记录能代替这条关联链。

第 05 版收窄了此前对非 RoCE 发送端的宽泛表述,明确了双向流量学习要求,并把某些实现采用 ECN 标记数据包作为代理输入的做法标为范围外。那条备注不是第三种标准格式,也不是互操作或部署报告。

该文件仍是没有 stream、负责 AD 和正式 IETF 地位的个人 Internet-Draft。端口、路由标志和 BGP 代码点仍是申请或建议。冻结来源没有命名实现、数据包抓取、性能测量或事故证据。

管理层应当把代理视为新的控制责任人。兼容性可以让发送端执行降速;若还要让自动化归因故障、处罚供应商或触发更大范围调整,代理必须留下最终 CNP 无法携带的翻译收据。

来源