RoCE

义项:融合以太网远程直接内存访问协议
RoCE

RoCE(RDMA over Converged Ethernet,融合以太网远程直接内存访问)是一种把远程直接内存访问(RDMA)的能力迁移到以太网上的网络协议,由 InfiniBand 贸易协会(IBTA)制定[1]。它使服务器网卡可以在较少占用主机 CPU 的情况下直接读写远端内存,同时复用已广泛部署的以太网交换设备,因此成为数据中心存储网络与智算集群中部署最广的 RDMA 方案之一[2]。协议先后有两个版本:2010 年发布、仅限二层域的 RoCEv1,以及 2014 年发布、可跨网路由的 RoCEv2[3]。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

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]。

参见

词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:34:42Z

历史版本

本条目引用的词条
InfiniBand 远程直接内存访问 iWARP NVMe over Fabrics 优先级流量控制 数据中心量化拥塞通知