RoCE
定义
RoCE 是一类在以太网上承载远程直接内存访问的协议规范。它沿用了 InfiniBand 的传输层语义与应用程序接口,只把下层的链路与网络部分替换成以太网侧的技术,因此从应用看它与 IB 的编程模型几乎一致[3][2]。RDMA 的核心机制是零拷贝、内核旁路和把协议处理卸载到网卡硬件,使一次读写远端内存的操作不需要两端 CPU 与操作系统内核深度参与[2]。
RoCE 与原生 IB 的关键差别在链路层如何保证不丢包:IB 依靠基于信用的流控,而 RoCE 建立在本身可能丢包的以太网之上,通常需要借助无损以太网的配置才能接近 IB 的性能[4]。按版本区分,RoCEv1 定义在以太网链路层,以太网类型字段为 0x8915;RoCEv2 则把 IB 的网络层换成了 IP 与 UDP[5]。
原理
RoCE 的通信以内存事务为基本单位,数据在发送端由网卡封装成报文,接收端网卡依据报文头部中的地址信息直接写入或读取事先注册的内存区域,整个过程不经过 CPU 参与的数据搬移[6][2]。连接的建立依靠队列对(Queue Pair,QP),收发双方各自维护发送队列与接收队列,上层通过 verbs 接口把工作请求投递到队列上[7]。RoCEv2 的报文封装可以概括为以太网头、IP 头、UDP 头、IB 传输头、载荷与校验字段依次排列[7]。
RoCEv2 的 UDP 目的端口固定为 4791,该端口由 IANA 分配,IPv4 与 IPv6 均可承载[4][8]。由于 UDP 本身不提供可靠性,RoCEv2 在 IB 传输层内用包序列号(PSN)检测乱序与丢包,并依靠确认与非确认应答触发重传,重传策略常见回退 N 步方式[2][7]。
以太网侧的拥塞管理由三层机制配合完成:链路层的基于优先级的流量控制(PFC)在队列接近阈值时向上游发送暂停帧,避免缓冲区溢出丢包;网络层利用 IP 头中的 ECN 位标记拥塞;端侧的 DCQCN 算法在收到拥塞通知包后主动降速。有研究把这一组合概括为局部逐跳的无损保障与端到端速率调节相互补充。
发展历程
IBTA 于 2010 年发布最初的 RoCE 规范,目标是让以太网环境也能获得 RDMA 的高吞吐与低延迟,早期实现依赖无损网络,因此应用范围受到限制[1][9]。由于第一版报文不含 IP 头,通信双方必须位于同一二层广播域,无法跨网段转发[10]。
2014 年 9 月 16 日,IBTA 宣布发布 RoCEv2,用 IP 与 UDP 头替代 IB 的全局路由头,使 RoCE 报文可以在三层路由器之间转发,可扩展性明显提升[1][10][9]。此后的产业实践集中在这一版本上,如今不加限定的「RoCE」通常指 RoCEv2[3]。
为解决不支持 RoCE 的网卡无法参与通信的问题,业界还推出了开源的软件实现 Soft-RoCE,使普通节点可与硬件 RoCE 节点互通,便于集群分批升级[5]。国内标准化机构也发布了面向智能计算中心网络的 RoCE 控制器能力要求类行业标准[11]。
应用
数据中心是 RoCE 的主要落地场景。以太网 RDMA 技术已在存储、云计算等场景中广泛部署,网卡是承载协议处理的关键部件[2]。相比需要专用交换机与网卡的 IB,RoCEv2 兼容既有以太网设备、实现复杂度较低,在成本上更具竞争力,因而成为数据中心网络中部署最广的 RDMA 技术[2]。
在存储侧,NVMe over Fabrics 的 NVMe over RoCE 传输方式因可直接复用以太网基础设施而得到较多采用,用于把远端全闪存阵列以接近本地盘的方式提供给计算节点[12][13]。在计算侧,图形处理器集群的梯度同步、集合通信等流量也可由 RoCE 承载,配合无损网络配置支撑大规模模型训练[12][14]。此外,RoCE 也用于高性能计算与分布式文件系统的节点间数据通路[15]。
局限
RoCE 对丢包较为敏感。受网卡硬件资源限制,RDMA 重传多采用回退 N 步策略,即使丢包率不高也可能导致有效吞吐明显下滑,有测试显示链路吞吐约 97Gbps 时,丢包率超过 0.1% 后有效吞吐即迅速下降[2]。因此部署方通常要构造无损以太网,而这又带来新的问题[16]。
PFC 按优先级队列逐跳反压,可能造成队头阻塞、暂停帧风暴乃至死锁,拥塞扩散还可能形成拥塞树,使性能下降甚至波及整网[16]。PFC、ECN 与队列调度需要人工协调参数,跨厂商设备的兼容性与运维门槛都较高,ECN 标记还存在一定滞后[17]。
版本层面,RoCEv1 受限于单个二层广播域,只能在同一域内通信[4]。与 IB 相比,RoCE 缺少协议内置的基于信用的链路级流控,要达到接近的性能须额外配置无损以太网,复杂度反而可能更高[4]。在超大规模场景下,业界研究也指出 RoCE 的若干设计取舍仍需改进才能满足需求[18]。
参见
-
远程直接内存访问 —— RoCE 所承载的底层技术,定义零拷贝与内核旁路的访问方式
-
InfiniBand —— RoCE 复用了其传输层与接口,是性能对比的主要参照
-
iWARP —— 另一种在以太网上实现 RDMA 的规范,基于 TCP 而非 UDP
-
NVMe over Fabrics —— 常以 RoCE 作为传输层的网络存储协议
-
优先级流量控制 —— RoCE 构造无损以太网所依赖的链路层机制
-
数据中心量化拥塞通知 —— 面向 RoCEv2 的端到端拥塞控制算法
参考资料
- Press Release Archives - RoCE Initiative [引用日期2026-10-29]
- issn1000-1239.202331036(PDF) [引用日期2026-10-29]
- 聊聊关于RoCE技术三种实现及应用 [引用日期2026-10-29]
- RDMA over Converged Ethernet: Difference between revisions [引用日期2026-10-29]
- 高性能计算中的RoCE技术:洞察和应用 [引用日期2026-10-29]
- [0038] 基于融合以太网的RDMA(RoCE)是允许通过以太网进行远程直接内存访问(RDMA)的网络协议 [引用日期2026-10-29]
- 特性 InfiniBand RoCEv1 [引用日期2026-10-29]
- nfstest_rdma.1.en [引用日期2026-10-29]
- Emulex与IBTA为数据中心推出横向RoCEv2 [引用日期2026-10-29]
- 1-20-0030-02-ICne-pre-draft-dcn-report(PDF) [引用日期2026-10-29]
- YD/T 6894-2026【正版】基于RoCE协议的智能计算中心网络控制器能力增强技术要求-中国标准服务网 [引用日期2026-10-29]
- NVMe-oF实施:为10万GPU部署解耦存储 [引用日期2026-10-29]
- 公司动态 宏杉科技-数智时代存储专家 [引用日期2026-10-29]
- 信而泰高速 800G RoCE功能重磅升级 [引用日期2026-10-29]
- AI Storage Network [引用日期2026-10-29]
- 计算机研究与发展 [引用日期2026-10-29]
- 如何设计高性能RoCE网络 [引用日期2026-10-29]
- Datacenter Ethernet and RDMA: Issues at Hyperscale [引用日期2026-10-29]