ECN · CNP · RoCEv2

DCQCN:面向 RDMA 的量化拥塞控制

DCQCN 让 RoCEv2 fabric 在无需长期处于 PFC 暂停状态的情况下保持无损。 交换机提前标记 ECN,接收端回送 CNP,发送端量化其速率,从而在队列溢出之前就放慢发送。OcNOS-DC 出厂即为 xCCL 集合通信工作负载(NCCL、RCCL、oneCCL)预调优默认值,并为需要偏离默认的 fabric 暴露每一个阈值。

Closed loopECN 标记、CNP、速率下调
Before PFCECN 在暂停之前先行标记
xCCL预调优的 OcNOS-DC 默认值
DC-PLUSOcNOS-DC 许可层级
工作机制

DCQCN 闭环

发送端 NIC、拥塞交换机、接收端 NIC。交换机的 WRED ECN 标记器会在队列触及 PFC 暂停阈值之前触发。接收端生成拥塞通知包(CNP);发送端的反应点降低速率,随后回升。无损、无 PFC 压力、快速收敛。

DCQCN 闭环拥塞控制 从左到右共三个方框:发送端网卡(reaction point)、带 WRED ECN 标记器的拥塞交换机、接收端网卡(notification point)。正向箭头表示报文从左向右流动并被交换机标记。反向箭头表示 CNP 从右向左回传至发送端。标注指明了 ECN K-min、K-max 阈值以及 CNP 反馈路径。 数据 + 支持 ECN ECN = CE(已标记) CNP:拥塞通知报文 发送端 NIC反应点(Reaction Point)α-update · cut · ramp OcNOS-DC 交换机WRED ECN 标记器K-min · K-max · P-max 接收端 NIC通知点CNP every 50 µs DCQCN · WRED MARKING · CNP FEEDBACK · QUANTIZED RATE LIMIT · LOSSLESS RoCEv2
它的作用

DCQCN 在 AI 网络中所承担的工作

RoCEv2 有两种处理拥塞的方式:PFC 暂停,这是一种逐跳传播的反压;以及 DCQCN,一种端到端的速率控制环。仅靠 PFC 也能奏效,但它会把拥塞向上游推挤,存在暂停风暴和队头阻塞的风险。DCQCN 在 PFC 之前起作用,在队列达到暂停阈值之前就用 ECN 标记数据包,使发送端在交换机不得不发出暂停之前就放慢速度。

做得好,您 fabric 生命周期的大部分时间都只依赖 DCQCN 反馈,以 PFC 作为安全兜底。做得差,ECN 阈值与 PFC headroom 不匹配,即便配置了 DCQCN,您仍会遭遇 pause 风暴。 阈值调优是全部关键所在、OcNOS-DC 提供针对 xCCL 集体通信调优的默认值,同时为具有特定流量模式的 fabric 开放所有参数。

反应点(Reaction Point)

发送端 NIC 量化其速率

接收 CNP 并运行 DCQCN α-更新、乘性递减、加性递增 环,以量化其发送速率。

拥塞点

交换机提前标记 ECN

将支持 ECN 的报文标记为 CE 当队列深度越过 K-min 时采用 WRED 曲线,标记概率线性上升,在 K-max 处达到 P-max。

通知点

接收端回送 CNP

针对每条被标记的流,向发送端回送一个 CNP,速率限制约为 每条流每 50 µs 一个.

处理拥塞的两种方式

PFC 暂停与 DCQCN,并排对比

两者都能让 RoCEv2 保持无损,但作用点不同。调优目标是让 fabric 的绝大部分运行时间依靠 DCQCN 反馈,而把 PFC 作为兜底手段保留。

Axis PFC 暂停backstop DCQCN主控制
Mechanism逐跳向上游传播的反压。从发送端到接收端的端到端速率控制环。
触发点当队列达到暂停阈值时触发。在队列达到暂停阈值之前标记 ECN。
失效模式存在暂停风暴和队头阻塞的风险。发送端在交换机不得不发出暂停之前就放慢速度。
在 fabric 中的角色仅作为安全兜底,用于缓冲区仍被填满的情况。在 fabric 绝大部分运行时间里担任主控制。
Scope链路级,逐跳进行。端到端,从发送端一路到接收端。
In OcNOS-DC

OcNOS DCQCN 实现方案

出厂即提供 xCCL 级默认值,每个阈值都以 YANG 建模的路径暴露,在应用前会对照 PFC 余量进行校验,并在上线调试期间作为遥测数据回传。

WRED 曲线

K-min, K-max, P-max

按优先级队列进行 WRED ECN 标记,K-min 与 K-max 阈值及 P-max 标记概率均可配置。开箱即享 xCCL 级默认值,以 YANG 路径开放供调优。

Per-Priority

独立于 PFC

ECN 标记与 PFC pause 阈值是独立配置的。两者不匹配是最常见的 DCQCN 配置错误。OcNOS 会在应用之前,校验 K-max、headroom 与 pause 触发之间的关系。

VXLAN 感知

基于 VXLAN 的 ECN

ECN 位在 VXLAN 封装与解封装过程中得以保留,因此 DCQCN 可跨 EVPN-VXLAN overlay 端到端工作,而不仅限于 underlay。

遥测

每队列 ECN 计数器

通过 gNMI 流式上报每个出向队列被 ECN 标记的报文计数、队列深度分布以及 CNP 触发速率。可在集群上线(bring-up)期间进行闭环调优。

Diagnostics

在投入前先验证

通过 CLI 进行合理性检查,确认 K-min、K-max 和 PFC 余量在数学上与分配给无损优先级的缓冲空间保持一致。配置有误时快速报错。

Scope

DC-PLUS 许可层级

属于 OcNOS-DC PLUS SKU 的一部分。同款镜像、同款支持;无需任何按功能付费的附加项即可激活无损 RDMA 协议栈。

失效模式

为什么这一点比听起来更重要

多数“RoCEv2 表现异常”的支持工单最终都指向 DCQCN 阈值设置不当。这一错误的两个极端看似相反,但都会让 fabric 调优失当。

  • 配置了 ECN 却从不标记(K-min 过高):PFC 承担了全部拥塞控制负担。
  • ECN 标记过于激进(K-min 过低):在出现任何真正拥塞之前,发送端就已降速。
  • OcNOS-DC 出厂的默认值适用于大多数 TH4 和 TH5 fabric;当某个 fabric 需要偏离默认时,每个参数都以 YANG 建模且可校验。

要为运行这些默认值的 leaf-spine 层级设定规格,请试用 AI Fabric 定量工具,或查看 AI fabric 拓扑 ,这些默认值正是为其调优的。

IP Infusion 的观点

DCQCN 承担负载,PFC 保持兜底

健康的 RoCEv2 fabric 依靠 ECN 反馈运行,几乎不触及 PFC。OcNOS-DC 出厂即以这种平衡作为默认,并在工作负载需要不同设置时让每个阈值都触手可及。

DCQCN 承担负载

ECN 标记和 CNP 反馈让发送端及早降速,因此健康的 fabric 绝大部分时间运行在 DCQCN 上,很少触发 PFC 暂停。

出厂即为 xCCL 调优

OcNOS-DC 出厂默认值已针对 xCCL 集合通信流量预调优,因此大多数 fabric 无需改动任何阈值即可在 TH4 和 TH5 上良好运行。

每个可调项都已建模

K-min、K-max 和 P-max 均以 YANG 建模且可校验,因此具有特定流量模式的 fabric 可以安全地偏离默认。

常见问题

DCQCN 常见问题解答

什么是 DCQCN?
DCQCN(Data Center Quantized Congestion Notification)是一种拥塞控制算法,可在以太网 AI 与存储 fabric 上使 RoCEv2 RDMA 流量保持 lossless。它在队列溢出之前对发送端进行限速,从而使 GPU 与存储流量免于丢包和停顿。
DCQCN 如何工作?
DCQCN 以闭环方式运作:当某队列越过其阈值时,交换机对报文进行 ECN 标记,接收方向发送方回送一个 Congestion Notification Packet(CNP),发送方随即降低发送速率,之后随着拥塞消退逐步恢复。
DCQCN与PFC如何协同工作?
DCQCN 是主要控制手段,PFC 则是最后防线。ECN 标记与 CNP 反馈会提早降低发送方速率,因此流量很少触及暂停。只有在缓冲区仍被填满时 PFC 才会触发,从而防止丢包。调优的目标是让 fabric 保持在 ECN 控制之下,并避免持续的 PFC 暂停。
DCQCN 中的 ECN K-min 和 K-max 阈值是什么?
K-min 和 K-max 是驱动 ECN 标记的队列深度阈值。低于 K-min 时不标记任何数据包;高于 K-max 时全部标记。在两者之间,标记概率会向设定的最大值上升,因此拥塞信号随队列增长而逐步变化,而非突然触发。
DCQCN 是否需要 RoCEv2?
是的,DCQCN 专为 RoCEv2 RDMA 流量而设计,依赖 RoCEv2 端点生成 CNP 反馈并据此作出响应。它将网络中的 ECN 与 RoCEv2 发送端的速率控制相结合,因此是 RoCEv2 fabric 的标准拥塞控制选择。

在为真实工作负载调优 DCQCN?把您的抓包记录交给我们

把您的 ECN 计数器和队列抓包记录发给我们,IP Infusion 的工程师将帮您对齐 K-min、K-max 和 PFC 余量,或先在 AI Fabric Design Suite 中生成一版初步的 leaf-spine 布局。