news 2026/7/17 21:08:13

DCQCN:大规模 RDMA 部署中的拥塞控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DCQCN:大规模 RDMA 部署中的拥塞控制

DCQCN:大规模 RDMA 部署中的拥塞控制

《Congestion Control for Large-Scale RDMA Deployments》
详细中文解读

阅读说明与总览

这份文档不是只讲结论的摘要,而是按论文的论证顺序做“伴读式”解读。论文中的图、算法框和实验图均直接裁取自原 PDF;中文部分负责解释图中每个轴、曲线、参数和实验结论。参考文献列表不逐条翻译,但正文对相关工作的比较会保留。

阅读主线 需求证明(为什么 TCP/PFC 不够) → 算法设计(CP/NP/RP 如何协作) → 缓冲区阈值(ECN 必须先于 PFC) → 流体模型与调参 → 真实测试床验证 → 局限与适用边界。

论文部分

要回答的问题

关键证据

§1–§2 动机

为什么数据中心需要 RDMA?为什么仅有 PFC 会出问题?

Fig.1–4

§3 算法

交换机、接收端、发送端分别做什么?

Fig.5–9;式(1)–(4)

§4 缓冲区

怎样保证先 ECN、后 PFC、且不丢包?

t_flight、t_PFC、t_ECN 的上界关系

§5 模型

参数为何这样选?公平与稳定如何权衡?

Table 1–2;Fig.10–12

§6 结果

实际硬件是否与模型一致?生产型流量是否受益?

Fig.13–19

§7–§9 边界

多瓶颈、随机丢包、死锁和未来演进怎么办?

Fig.20–21

先建立三个概念

  • PFC(Priority-based Flow Control):链路级、逐端口/优先级的暂停机制。反应很快,但不知道“哪一条流”真正制造了拥塞。
  • ECN/CNP:交换机在拥塞时给数据包打 CE 标记,接收端再向发送端回一个 CNP。它能把拥塞反馈落到具体流上。
  • DCQCN:运行在 RoCEv2 NIC 上的速率型端到端控制。交换机只需已有的 RED/ECN 能力,不要求定制 ASIC。

1. 引言:论文真正要解决的工程矛盾

现代数据中心中的云存储、分布式内存缓存和机器学习通信,同时要求 40Gbps 级带宽、每跳低于 10μs 的时延,以及极低的 CPU 占用。传统内核 TCP/IP 栈在这些目标之间难以兼得:高吞吐意味着大量协议处理、拷贝和中断;而 RDMA 把传输协议放到 NIC 中,直接访问预注册内存,绕过主机协议栈,因此能同时降低 CPU 与时延。

历史上的 InfiniBand 通过专有链路层和逐跳信用机制构建无损网络,但大型云数据中心已经以 Ethernet/IP 为基础,不愿再维护第二套网络。RoCEv2 因此保留 IB 传输语义,用 UDP/IP 封装完成三层路由和 ECMP,并依赖以太网 PFC 构造近似无损的链路层。

矛盾随之出现:PFC 的暂停粒度是端口(或端口+优先级),并非流。一条拥塞流触发 PAUSE,可能把同端口上本来不拥塞的流一起冻结,继而产生队头阻塞、拥塞扩散和不公平。论文的目标是增加逐流控制,让 PFC 从常态控制退回到短时保护。

设计约束 必须支持 L3 路由网络;端主机 CPU 开销要很低;无拥塞时要“超快启动”;交换机只能使用现成 RED/ECN;算法必须能放进 NIC 的定时器、计数器和速率限制器。

2. 为什么需要 DCQCN

2.1 TCP 与 RDMA 的吞吐、CPU 和时延

原图 Fig.1:TCP 与 RDMA 的吞吐、CPU 消耗和 2KB 消息时延

实验环境是两台 40Gbps 服务器经一台 40Gbps 交换机直连。TCP 侧已开启 LSO、RSS、零拷贝并用 16 个线程;RDMA 用单线程 IB READ 即可打满链路。图 1(a) 中,RDMA 从 4KB 消息开始就接近线速;TCP 在 4KB、16KB 时明显受 CPU 限制,到 64KB 以后才接近线速。

图 1(b) 的重点不是某个单核是否满载,而是全机总 CPU 周期。4MB 消息下 TCP 为维持满速仍消耗约 20% 的总 CPU;小消息时 TCP 服务器 CPU 超过 80%,并成为吞吐瓶颈。RDMA 客户端始终约在 3% 以下,服务器端几乎不占 CPU,因为数据搬运和协议处理由 NIC 完成。

图 1(c) 测量预建连、预热、关闭 Nagle、无背景流量时的 2KB 用户态延迟:TCP 为 25.4μs;RDMA READ/WRITE 为 1.7μs;RDMA SEND 为 2.8μs。论文用这组数据说明,RDMA 的优势不仅是吞吐,更在于避免 CPU 参与关键路径。

如何看这张图 它证明的是“在论文所用的 2015 年软件栈与硬件下,常规 TCP 栈不满足目标”,而不是宣称任何时代、任何 TCP 实现都必然慢十倍。结论的工程内核仍成立:协议下沉和零拷贝能显著减少 CPU 与尾时延。

2.2 PFC 的两个结构性缺陷

原图 Fig.2:三层 Clos 测试床拓扑

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 21:06:24

阶段二:Element UI 后台页面

从零构建带AI流式对话的Vue2全栈应用-CSDN博客本文是对这个链接阶段二的讲解 一、阶段二解决什么问题 阶段一只是学习 Vue 的基础语法。阶段二开始制作真正的后台管理页面。 要完成的结构是: 后台页面 ├─ 左侧菜单 │ ├─ 仪表盘 │ └─ 用户管理 ├─ 顶…

作者头像 李华
网站建设 2026/7/17 21:05:52

CPLEX 20.1.0 Windows安装与调用避坑指南

1. 项目概述:为什么在Windows上折腾CPLEX 20.1.0,值得花这三小时?我在带一个高校运筹学课程设计小组时,连续三年遇到同一个问题:学生装好CPLEX后,跑第一个example.mps就报错“CPLEX library not found”&am…

作者头像 李华
网站建设 2026/7/17 21:04:13

RA4M2微控制器驱动OLED显示模块的I2C通信实战

1. RA4M2与OLED显示模块的硬件基础 RA4M2是瑞萨电子推出的高性能32位微控制器,基于Arm Cortex-M4内核,主频高达48MHz。这款芯片在嵌入式显示领域具有独特优势,其内置的硬件I2C控制器支持标准模式(100kHz)和快速模式(400kHz),特别适…

作者头像 李华
网站建设 2026/7/17 21:03:26

QJ32F407 USART串口_DMA发送和接收

CubeMx设置串口 设置PB11和PB10为串口3的GPIO设置波特率设置中断开启发送接收DMA编写测试代码 /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program b…

作者头像 李华
网站建设 2026/7/17 20:59:17

YOLO26涨点改进| ECCV 2026 | 下采样涨点改进篇 | 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息,助力小目标检测、图像分类、图像分割任务,有效涨点

一、本文介绍 🔥本文给大家介绍使用 FSD-Down频域-空间动态下采样 改进YOLO26网络模型,FSD-Down利用小波分解显式保留低频语义以及水平、垂直和对角方向的高频细节,并通过分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘、纹理与局部对比度,同时减轻传统步长…

作者头像 李华
网站建设 2026/7/17 20:58:54

omni-note 使用指南(二) quick-start

一、运行说明 ubuntu 22.04 系统下运行 # 解压 tar -xf omni-note-linux-x64.tar.xz1 准备 instance 运行时数据 启动前需准备好 instance/ 运行时数据(配置、模型、工具、字体、PPT 模板、研究输出目录等)。统一的数据准备步骤见 数据准备。 2 启动…

作者头像 李华