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

1871

积分

0

好友

259

主题
发表于 2025-12-25 19:50:03 | 查看: 30| 回复: 0

随着高性能计算、人工智能训练和分布式系统的不断扩展,节点间通信效率已成为影响整体性能的关键因素。RDMA技术通过绕过操作系统内核并减少数据复制,能有效降低通信延迟并提高带宽利用率。

本文将介绍RDMA的基本原理,并系统地阐述InfiniBand RDMA和RoCE之间的核心技术差异。通过对比分析两者的消息格式、协议层和网络构建方法,帮助读者在不同的应用场景中做出清晰的技术选型。

一、什么是RDMA

RDMA(远程直接内存访问)是一种用于提升传统以太网数据传输效率的技术。它允许绕过主机操作系统内核和中间缓存,实现跨网络节点的直接内存访问,从而显著降低服务器端的数据处理开销。该技术依赖于支持RDMA的网络接口卡和交换设备,广泛应用于人工智能大模型训练、大规模科学计算等对网络性能要求极高的场景。

RDMA架构示意图

1. RDMA核心特性

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对比图

二、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消息格式

InfiniBand网络依赖子网管理器进行地址分配和路由管理,网络需在SM初始化后才能正常工作。

(2)RoCE消息格式

RoCE的两个版本在消息格式上差异显著。

RoCEv1格式:

  • 标准以太网L2报头。
  • EtherType字段固定为0x8915,标识为RoCEv1帧。
  • 继承自InfiniBand的GRH报头(主要为兼容性保留)。
  • BTH、有效载荷、ICRC:这部分与InfiniBand完全一致,是RDMA语义的核心。
  • FCS:标准以太网帧校验序列。

RoCEv1消息格式

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位全局唯一标识符,用于跨子网通信。

InfiniBand网络组件图

2. RoCE网络构建

RoCEv2基于以太网,采用分布式架构,无需集中式的子网管理器。其网络主要由以下组件构成:

  • 支持RoCEv2的网卡:通常是PCIe接口的RDMA网卡。
  • 以太网交换机:需要支持无损以太网特性(如PFC、ECN)。业界常采用基于博通Tomahawk等高吞吐量芯片的交换设备。
  • 以太网光模块与线缆:直接使用标准以太网组件,有效降低了硬件部署成本。

RoCE网络架构图

四、总结

InfiniBand与RoCE代表了RDMA技术两种不同的演进路径:专用高性能网络与通用以太网融合。

InfiniBand以其原生的端到端可靠性、极致低延迟,牢牢占据超算与前沿AI训练等对性能有严苛要求的顶尖场景。RoCEv2则通过在标准以太网上承载RDMA语义,显著降低了部署门槛与总体拥有成本,成为当前通用数据中心规模应用的主流选择。

技术选型的核心在于对性能、架构兼容性与总拥有成本进行综合权衡。特别是在“东数西算”等国家工程驱动的大规模云原生数据中心建设中,RoCEv2凭借其与现有生态的深度融合、更低的成本以及活跃的产业链支撑,正展现出强大的生命力。




上一篇:李飞飞深度解析:空间智能是通往AGI与未来AI产业的关键
下一篇:gopup爬虫API库实战指南:高效获取微博、百度指数与宏观数据
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2026-1-10 18:46 , Processed in 0.304079 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

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