找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2694

积分

0

好友

343

主题
发表于 2025-12-24 16:50:53 | 查看: 69| 回复: 0
本帖最后由 云栈大前端 于 2025-12-24 17:11 编辑

TL;DR

这是一组“RDMA 十年反思”系列的第一篇,从协议演进回看 RDMA/RoCE 的关键拐点:RoCEv2 为什么在工程落地中长期依赖 PFC/Lossless,以及这种“无损承诺”为什么在大规模与 AI 网络场景里容易演化为反压扩散、拥塞传播与长尾延迟。后续会再从NIC 微架构视角讨论厂商路线的取舍与代价。

如果用一句更直白的话总结:把 Lossless 当作前提,会把规模化组网与混跑运维推向更高复杂度与更大稳定性风险。网络问题拆开看无非三块:拓扑、路由、流控;理解“Smart Edge, Dumb Core”这条主线,再回看 RoCEv2 的十年弯路会清晰很多。

RDMA与RoCEv2十年反思:协议演进与无损网络陷阱 - 图片 - 1


1. RDMA / InfiniBand 的一些历史

1.1 RDMA 诞生于 Kernel-Bypass 需求

RDMA 的源头可追溯到 1995 年,早期名字是 U-Net。核心动机很直接:绕开内核协议栈带来的额外开销与不可控抖动(copy、context switch、协议处理路径过长等)。

早期 RDMA 与 U-Net 的结构示意如下:

RDMA与RoCEv2十年反思:协议演进与无损网络陷阱 - 图片 - 2

RDMA与RoCEv2十年反思:协议演进与无损网络陷阱 - 图片 - 3

1997 年出现了基于 U-Net 接口 + Remote DMA Service 的 Virtual Interface Architecture(VIA)

1.2 InfiniBand:一次“带宽+算力”同步爆发的产物

InfiniBand 的兴起与今天 AI 热潮有相似之处:算力需求与带宽需求突然同时爆发。互联网快速增长期,Future I/O 与 NGIO 组织推进相关方向,随后 IBTA(InfiniBand Trade Association)成立并吸纳软硬件厂商。

IBTA 曾试图“一网打尽”:替代主机内 I/O(PCI)、机房互联(以太网)、存储(FC)乃至集群互联(Myrinet),并设想过基于 IB Fabric 的可组合解耦(Composable Disaggregation)。

1.3 RDMA over Ethernet:三条路线与一次关键分岔

1.3.1 iWARP:以 TCP 为可靠传输层

2002 年起 IETF 推动定义 iWARP。它面向更广域、更不确定环境,因此在乱序/重传/拥塞控制方面选择 TCP 作为可靠传输层。

1.3.2 RoCEv1:为了低延迟,落在二层

2010 年 RoCEv1 出现,只使用二层以太网封装、没有 IP 头。这在规模化部署、三层互通、多租户隔离和运维上天然会遇到限制。

1.3.3 RoCEv2:补上三层,但在可靠性与拥塞路径上逐步“依赖无损”

2014 年底 RoCEv2 引入 IP/UDP,至少补上了路由与三层互通。但在工程实践中,RoCEv2 逐步走向依赖 PFC/Lossless,并在后续十年里不断放大“规模化难题”。

1.3.4 Cisco usNIC:端到端控制的另一条可能性

usNIC 在底层采用 UDP,并支持 Unreliable Datagram 语义,同时通过滑动窗口/ACK/重传等机制压低延迟,并配合低延迟交换机实现端到端微秒级时延。

从机制上看,这类“滑动窗口 + ACK/重传”的路径,与今天很多强调端到端闭环、弱化交换机参与的方向并不遥远:当你把控制尽量留在边缘,核心就更容易保持“简单、可扩展”。


2. RoCEv2 误入歧途的十年:从“复用惯性”到“刚性兑付”

关于 RoCEv2 在超大规模数据中心的系统性问题,可以对照 SIGCOMM 2016《RDMA over Commodity Ethernet at Scale》与更近年的 hyperscale 总结。

2.1 复用惯性:把主机内流控机制生搬到以太网

RoCEv2 的关键路径之一是:为了复用既有 RNIC/InfiniBand 设计,沿用对有序传输与 Go-back-N 重传强依赖的机制。

  • 在主机内总线环境:链路短、丢包罕见、时延可控,这套机制成本低、效果好
  • 扩展到以太网:为了让 Go-back-N 高效运转,网络被推向“尽量不丢包、尽量保序”,工程落点往往就是 PFC/Lossless

从“拓扑—路由—流控”拆开看:RoCEv2 补上了路由,但在流控上把主机内机制扩散到数据中心以太网,成为后续大规模问题的起点。

2.2 “无损承诺”的副作用:反压扩散、拥塞传播与长尾

当网络把“无丢包”作为前提时,系统里很多原本应由端到端闭环解决的问题,会被挪到链路/交换机侧,最终表现为:

  • 反压传播(PFC pause 扩散)
  • 拥塞扩散与队列堆积
  • 尾延迟恶化、故障与误配置的放大

如果你希望补齐拥塞控制与网络体系的基础脉络,可对照阅读这份整理:TCP/IP,拥塞控制与网络体系

2.3 IRN:用选择性重传替代 Go-back-N,降低“必须无损”的刚性依赖

2018 年《Revisiting Network Support for RDMA》提出 IRN:借鉴 TCP 的丢包恢复思路,用选择性重传替代 Go-back-N,从可靠性层面削弱对 Lossless 的硬依赖。

RDMA与RoCEv2十年反思:协议演进与无损网络陷阱 - 图片 - 4

RDMA与RoCEv2十年反思:协议演进与无损网络陷阱 - 图片 - 5

2.4 AI 网络牵引:Packet Spray / Adaptive Routing 与“强保序语义”的冲突

大模型训练推动 RDMA 带宽需求激增,同时也强化了对多路径与负载均衡(例如 packet spraying)的诉求。但当端侧协议强依赖“保序/低丢包”,而核心又希望更“聪明”(喷洒、自适应路由)时,系统终究要在某处付出代价,常见代价就是回到 Lossless/PFC 来“换取正确性与可控性”。


3. RDMA 的现代化路径:回到端到端与可扩展性

3.1 hyperscale 视角的结构性问题

业界对 RoCE 的核心批评通常集中在:

  • 继承早期硬件时代的简化设计,对有序与 Go-back-N 依赖强
  • 为支撑 RoCE 引入 CE/PFC,跨层耦合带来运维复杂度与不稳定性
  • 强保序语义限制了很多数据包级负载均衡机制;而 AI 训练多为长流,多路径能显著改善作业完成时间
  • ECN 机制信号粗粒度,收敛慢、配置难、与混跑共存挑战大

3.2 iWARP 很早就讨论过乱序与多路径

早在 2007 年的 iWARP 相关研究就强调:为容忍故障与拥塞,需要支持多路径,并探索通过 Weak Ordering 支持乱序到达与有序完成。

3.3 AWS SRD:多路径与拥塞控制需要耦合处理

AWS SRD 的经验提醒是:多路径 spraying 减轻中间交换机负载,但并不会自动解决 incast;甚至可能让 micro-burst 在多路径上同时到达,放大最后一跳队列压力。因此,多路径转发与拥塞控制是耦合问题

其目标是以最小 in-flight 字节获取公平带宽份额,尽量避免队列堆积与丢包(而不是依赖丢包作为拥塞信号)。

3.4 Google Falcon:解耦传输/加密/RDMA 语义,拥塞控制独立化

Falcon 的路径强调分层与解耦:

  1. 传输/加密/RDMA 语义解耦:传输层抽象为 PUSH/PULL;加密由独立套件处理;RDMA/NVMe 作为 ULP 定义并用不同 header 解耦
  2. 拥塞控制与数据路径解耦:由独立 Rate Update Engine 负责拥塞控制

4. 结论:别把“主机内内存语义”误当成“数据中心消息语义”

回顾 RDMA 的演进会发现:RoCE 从 v1 到 v2 在协议路径上走了不少弯路,尤其是对 PFC/Lossless 的长期依赖,让规模化、混跑与可运维性付出了十年成本;同时期的 usNIC 等端到端机制已经展示过更“干净”的思路。后续 Lossy RDMA 看似走正路,但在 AI 网络对多路径/喷洒能力的牵引下,又容易重回 Lossless。

4.1 本质差异:内存语义 vs 消息语义

把主机内总线(PCIe/CXL 等)的“内存语义”想当然复用到主机间以太网的“消息语义”,很容易在规模化上出问题。可以用几个维度理解差异:

  • 拓扑:主机内相对固定;主机间多路径与 Overlay 让调度更复杂
  • 延迟:主机内常为亚微秒且可控;主机间受排队与拥塞影响更不确定
  • 丢包:主机内几乎不丢;主机间丢包常见,实现“绝对无损”代价高且复用率低
  • 一致性与保序:主机内常要求严格保序;主机间乱序更常见
  • 报文大小:主机内围绕 cache line;以太网常见 MTU 1500/9000B

4.2 AI 集群到底需要什么样的网络?

AI 训练网络往往更关心:在可接受延迟范围内,把有效带宽做大,同时尽量压住长尾。这也更契合“Smart Edge, Dumb Core”:让端侧形成稳定闭环,让核心保持简单可扩展。

如果你想系统补齐“拥塞控制与协议演进”的底层脉络,建议把本文与:TCP/IP,拥塞控制与网络体系 对照阅读,会更容易把“无损网络的误区”与“端到端闭环”的边界看清楚。


参考资料

  1. 比特分享|无损网络、反压及拥塞扩散:https://mp.weixin.qq.com/s/pBAH2UGkGbEBA3PWXG90pA
  2. RDMA over Commodity Ethernet at Scale:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/rdma_sigcomm2016.pdf
  3. Scalable Cluster Technologies for Mission-Critical Enterprise Computing:https://www.cs.vu.nl/~ast/Theses/vogels-thesis.pdf
  4. High performance networking Unet and FaRM:http://www.cs.cornell.edu/courses/cs6410/2016fa/slides/24-networked-systems-rdma.pdf
  5. RDMA [1]: A short history of remote DMA networking:http://thinkingaboutdistributedsystems.blogspot.com/2016/12/rdma-1-short-history-of-remote-dma.html
  6. iWarp: The Movie | Intel Business:https://www.youtube.com/watch?v=ksXmfZxqMBQ
  7. HPC in L3:https://blogs.cisco.com/performance/hpc-in-l3
  8. Cisco Userspace NIC (usNIC) Talk:https://www.youtube.com/watch?v=ZycqcMEfVo0
  9. Datacenter Ethernet and RDMA: Issues at Hyperscale:https://arxiv.org/abs/2302.03337
  10. Revisiting Network Support for RDMA:https://arxiv.org/pdf/1806.08159.pdf
  11. Analyzing the Impact of Supporting Out-of-Order Communication on In-order Performance with iWARP:https://web.cels.anl.gov/~thakur/papers/sc07-iwarp.pdf
  12. A Cloud-Optimized Transport Protocol for Elastic and Scalable HPC:https://assets.amazon.science/a6/34/41496f64421faafa1cbe301c007c/a-cloud-optimized-transport-protocol-for-elastic-and-scalable-hpc.pdf
  13. From luna to solar (Alibaba Cloud):https://dl.acm.org/doi/abs/10.1145/3544216.3544238
  14. 转自公众号作者:zartbot



上一篇:Vue ElementUI表格打印优化与HTML转PDF完整方案
下一篇:Kubernetes Pod CrashLoopBackOff故障排查实战与脚本大全
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-8 22:19 , Processed in 0.310406 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表