2、RoCE基础概念:RDMA技术概述、RoCE版本演进(RoCEv1/v2)、与InfiniBand对比

2.1 RDMA技术概述:从“拷贝”到“直达”的变革

在传统TCP/IP网络通信中,数据从一台主机发送到另一台主机,需要经过操作系统内核协议栈的多次拷贝与中断处理。以一次典型的网络读取为例,数据需要经历:网卡接收→内核缓冲区→用户缓冲区→应用处理→再次拷贝发送。每一次拷贝都消耗CPU周期,而CPU参与数据搬运的延迟通常在数十微秒量级,这对高性能计算(HPC)、分布式存储和AI训练集群而言是难以接受的瓶颈。

RDMA(Remote Direct Memory Access,远程直接内存访问)的核心思想是:允许应用程序直接读写远端主机内存,而无需双方操作系统的介入。RDMA网卡(HCA,Host Channel Adapter)内置DMA引擎,能够直接从用户态内存缓冲区收发数据,内核只负责连接建立与管理,不参与数据面传输。由此带来的收益十分显著:

  • 延迟极低:端到端延迟可低至1~3微秒(而传统TCP/IP通常为10~50微秒);
  • CPU卸载:数据传输几乎不消耗主机CPU,释放算力给应用本身;
  • 带宽高:单端口即可支持100Gbps甚至400Gbps速率;
  • 内核旁路:用户态应用直接与网卡交互,绕过协议栈。

RDMA的三种主要实现技术为:InfiniBand(专有协议与硬件)、RoCE(RDMA over Converged Ethernet,基于以太网的RDMA)以及iWARP(基于TCP的RDMA)。其中RoCE因能复用现有以太网基础设施而成为当前数据中心组网的主流选择。

理解要点:RDMA的本质是“网络传输的零拷贝化”。它并非一种新的编程语言或应用框架,而是一种网络通信能力——应用程序通过verbs API(如ibv_post_send)直接提交发送请求,由网卡硬件完成数据的封装、路由与传输。
传统TCP/IP与RDMA数据路径对比 传统TCP/IP路径(多次拷贝) 主机A 应用缓冲区 内核协议栈 网卡(DMA) ① 拷贝 ② 拷贝 网络 主机B 应用 内核协议栈 网卡 ③ 拷贝 ④ 拷贝 CPU全程参与:4次拷贝 + 中断处理 端到端延迟:10~50μs CPU占用高,吞吐受限 RDMA路径(零拷贝) 主机A 应用缓冲区 RDMA网卡(HCA) DMA直接读取 RDMA 主机B 应用 RDMA网卡(HCA) DMA直接写入 内核旁路:CPU不参与数据搬运 端到端延迟:1~3μs CPU占用极低,带宽利用率高

2.2 RoCE版本演进:从RoCEv1到RoCEv2

RoCE(RDMA over Converged Ethernet)由InfiniBand Trade Association(IBTA)标准化,旨在让RDMA能力运行在以太网之上。其发展经历了两个关键版本,二者在封装格式和网络适应性上有本质差异。

RoCEv1:链路层承载

RoCEv1将RDMA数据包直接封装在以太网链路层中,其以太网类型字段(EtherType)为0x8915。这意味着RoCEv1报文不具备IP路由能力,只能在同一个二层广播域(VLAN)内通信,无法跨越路由器或三层网关。因此RoCEv1的组网范围被严格限制在单台交换机(或堆叠)的接入层内,这极大制约了其在大规模数据中心的应用。

RoCEv2:网络层承载

RoCEv2将RDMA报文封装进UDP/IP报文之中,使用UDP目的端口号4791作为RoCEv2的标识。RoCEv2报文结构为:以太网头 + IP头 + UDP头 + RoCEv2头(BTH+...+ICRC)。这一改动带来两个关键突破:

  • 三层路由能力:IP头使得RoCEv2报文可以被标准路由器或三层交换机转发,从而支持跨网段、跨数据中心的大规模组网;
  • ECMP负载均衡:UDP源端口可基于流进行哈希,使得网络设备能够通过ECMP(等价多路径)将不同RoCE流分发到多条物理链路上,提升整体带宽利用率。
RoCEv2报文格式(简化示意)
┌───────────────┬───────────────┬───────────────┬──────────────────┐
│  Ethernet头    │   IP头        │   UDP头       │   RoCEv2头       │
│  (14B)         │  (20B)        │  (8B)         │  (BTH+...+ICRC)  │
│  MAC地址        │  源/目的IP     │  目的端口4791  │   RDMA数据       │
└───────────────┴───────────────┴───────────────┴──────────────────┘

当前业界部署的RoCE网络几乎全部为RoCEv2。RoCEv1仅存在于早期实验或极小型封闭网络,已不具备实际组网价值。

2.3 RoCEv2与InfiniBand的对比

InfiniBand是RDMA技术的“原生”网络,拥有独立的链路层、网络层和传输层协议,需要专用的IB交换机、IB网卡和线缆。RoCEv2则构建在标准以太网之上。两者在技术特性与生态上各有取舍,下表从多个维度进行对比:

对比维度 InfiniBand RoCEv2
网络基础设施 专用IB交换机/线缆,封闭生态 标准以太网交换机/线缆,开放生态
路由能力 原生支持IB路由(LR) 依赖IP路由,支持三层组网
拥塞控制 IB CC(基于信用/显式速率) 依赖DCQCN、ECN等以太网机制
最大带宽 NDR 400Gbps/端口 400GE/800GE(与以太网同步)
端到端延迟 约0.5~1μs(最低) 约1~3μs(略高,受以太网开销影响)
运维成本 高(专用硬件、独立运维) 低(复用现有以太网运维体系)
市场生态 HPC/AI训练传统优势领域 云数据中心、AI集群快速普及

2.4 典型场景与选型误区

典型场景:AI训练集群的RoCEv2组网

当前主流AI训练集群(如基于NVIDIA A100/H100 GPU的集群)广泛采用RoCEv2作为GPU服务器之间的高速互联网络。以一台8卡GPU服务器为例,每台服务器配置8张200Gbps RoCEv2网卡(对应8个GPU),通过Leaf-Spine两级架构互联。服务器发出的RoCEv2流量经Leaf交换机汇聚后,由Spine交换机完成跨POD转发。整个网络依赖ECN(显式拥塞通知)标记和DCQCN(数据中心量化拥塞通知)算法实现端到端的拥塞控制,确保训练通信的稳定低延迟。

常见误区一:认为RoCEv2不需要无损网络
RoCEv2本身依赖以太网的流控机制。虽然RoCEv2报文可以走普通IP网络,但若交换机出现丢包,RDMA传输性能将急剧下降(重传代价极高)。因此生产环境必须启用PFC(优先级流控)或部署无损以太网配置,保证RoCE流量不丢包。
常见误区二:混淆RoCEv1与RoCEv2的组网能力
RoCEv1只能在二层网络内通信,无法跨VLAN路由;RoCEv2则具备完整的三层路由能力。在规划跨机房或跨网段组网时,必须选择RoCEv2,并确保网络设备支持UDP 4791端口的转发与哈希。

选型建议

  • 若从零新建一个追求极致性能且预算充足的HPC集群,可考虑InfiniBand;
  • 若希望复用现有以太网架构、降低采购与运维成本,或构建大规模云化AI基础设施,RoCEv2是更务实的选择;
  • 无论选择哪种技术,无损网络保障和端到端流控都是必须优先设计的环节。