随着高性能计算、人工智能训练和分布式系统的不断扩展,节点间通信效率已成为影响整体性能的关键因素。RDMA技术通过绕过操作系统内核并减少数据复制,能有效降低通信延迟并提高带宽利用率。
本文将介绍RDMA的基本原理,并系统地阐述InfiniBand RDMA和RoCE之间的核心技术差异。通过对比分析两者的消息格式、协议层和网络构建方法,帮助读者在不同的应用场景中做出清晰的技术选型。
一、什么是RDMA
RDMA(远程直接内存访问)是一种用于提升传统以太网数据传输效率的技术。它允许绕过主机操作系统内核和中间缓存,实现跨网络节点的直接内存访问,从而显著降低服务器端的数据处理开销。该技术依赖于支持RDMA的网络接口卡和交换设备,广泛应用于人工智能大模型训练、大规模科学计算等对网络性能要求极高的场景。

1. RDMA核心特性

2. 主要技术路径:InfiniBand与RoCE
目前基于RDMA的主流解决方案有三种:InfiniBand、RoCE和iWARP。其中,InfiniBand和RoCE是应用最广泛的两大方案,下文将重点展开对比。
- 基于InfiniBand的RDMA:InfiniBand从协议设计之初就原生支持RDMA通信。它采用基于通道的点对点消息队列转发模型,允许应用程序直接访问远程内存,而无需内核和CPU干预。其专用硬件架构确保了数据传输的高效率、低延迟和高可靠性,但同时也带来了较高的部署成本。
- RoCE:RoCE是一种在传统以太网上实现RDMA的技术,分为RoCEv1和RoCEv2两个版本。RoCEv1基于以太网链路层实现,依赖PFC(优先级流控制)保证可靠性,但不支持跨三层网络。RoCEv2则基于UDP/IP协议实现,支持跨网段通信,具有更好的网络可扩展性,因此成为当前智能计算数据中心的主流选择。

二、InfiniBand和RoCE的核心区别
1. RoCE和InfiniBand消息格式对比
(1)InfiniBand消息格式
InfiniBand拥有独立且完整的协议栈。以RC(可靠连接)类型为例,其消息由以下部分组成:
- LRH:本地路由报头,用于子网内的交换和转发,工作在数据链路层,内置基于信用的流量控制机制。
- GRH:全局路由报头,用于跨子网通信,属于网络层报头,使用类似于IPv6的128位GID进行寻址。
- BTH:基本传输头,是InfiniBand传输层的核心,承载RDMA操作的关键控制信息。
- ETH:RDMA扩展传输头,补充包含远程虚拟地址、访问密钥等RDMA必需信息。
- 有效载荷:实际传输的RDMA数据。
- ICRC:不变CRC,用于端到端的数据完整性校验。
- VCRC:变体CRC,在每个交换节点后重新计算,用于链路级错误检测。

InfiniBand网络依赖子网管理器进行地址分配和路由管理,网络需在SM初始化后才能正常工作。
(2)RoCE消息格式
RoCE的两个版本在消息格式上差异显著。
RoCEv1格式:
- 标准以太网L2报头。
- EtherType字段固定为0x8915,标识为RoCEv1帧。
- 继承自InfiniBand的GRH报头(主要为兼容性保留)。
- BTH、有效载荷、ICRC:这部分与InfiniBand完全一致,是RDMA语义的核心。
- FCS:标准以太网帧校验序列。

RoCEv2格式:
为解决可扩展性问题,RoCEv2在RoCEv1基础上引入了三层网络封装。
- 标准以太网L2报头。
- EtherType字段为0x0800,表示携带IP数据包。
- IP报头:支持IPv4或IPv6,使数据包具备三层路由能力。
- UDP报头:目标端口固定为4791,用于标识RDMA流量。
- BTH、有效载荷、ICRC:RDMA核心语义不变。
- FCS:以太网链路层校验。
无论是InfiniBand还是RoCE,BTH始终是RDMA操作的核心控制层。两者的主要区别在于:
- InfiniBand:专为RDMA设计,协议栈简洁高效,能提供最佳传输性能,但对网络硬件有特殊要求。
- RoCE:旨在以太网环境中实现RDMA。RoCEv2通过标准的UDP/IP封装获得了极佳的网络兼容性,可以部署在现有的网络架构上。

2. RoCE和InfiniBand网络层比较
InfiniBand的协议架构从链路层到传输层都是围绕RDMA场景原生构建的,具备端到端的可靠性与验证机制。
RoCE则是将RDMA语义封装在以太网之上。它将InfiniBand的传输层有效负载嵌入到以太网和UDP/IP协议中,从而在通用以太网基础设施上继承了RDMA的高性能特性。
这种封装方式赋予了RoCE强大的网络兼容性,但也引入了额外的协议开销,并且要求底层以太网必须是“无损”环境。相比之下,InfiniBand的链路层原生可靠,但依赖于成本更高的专用硬件。
从协议结构看,两者在传输层及以上基本一致,主要差异集中在物理层、数据链路层和网络层。

三、如何构建InfiniBand RDMA和RoCE网络环境?
1. InfiniBand RDMA网络构建
构建IB网络需要以下关键组件协同工作:
- HCA:主机通道适配器,即InfiniBand网卡,是服务器接入IB网络的接口。
- InfiniBand交换机:网络核心,负责数据包的高速转发。
- 光模块与线缆:用于HCA与交换机、交换机之间的互联,速率已从HDR、NDR发展到XDR。
- 子网管理器:网络控制核心,负责拓扑发现、地址分配(LID)等,通常由UFM或OpenSM软件实现。
- LID/GID:LID为子网内16位路由地址;GID为128位全局唯一标识符,用于跨子网通信。

2. RoCE网络构建
RoCEv2基于以太网,采用分布式架构,无需集中式的子网管理器。其网络主要由以下组件构成:
- 支持RoCEv2的网卡:通常是PCIe接口的RDMA网卡。
- 以太网交换机:需要支持无损以太网特性(如PFC、ECN)。业界常采用基于博通Tomahawk等高吞吐量芯片的交换设备。
- 以太网光模块与线缆:直接使用标准以太网组件,有效降低了硬件部署成本。

四、总结
InfiniBand与RoCE代表了RDMA技术两种不同的演进路径:专用高性能网络与通用以太网融合。
InfiniBand以其原生的端到端可靠性、极致低延迟,牢牢占据超算与前沿AI训练等对性能有严苛要求的顶尖场景。RoCEv2则通过在标准以太网上承载RDMA语义,显著降低了部署门槛与总体拥有成本,成为当前通用数据中心规模应用的主流选择。
技术选型的核心在于对性能、架构兼容性与总拥有成本进行综合权衡。特别是在“东数西算”等国家工程驱动的大规模云原生数据中心建设中,RoCEv2凭借其与现有生态的深度融合、更低的成本以及活跃的产业链支撑,正展现出强大的生命力。
|