RDMA(远程直接内存访问)
RDMA(Remote Direct Memory Access)诞生于高性能计算(HPC)领域,旨在解决传统TCP/IP网络协议栈的瓶颈。在传统网络中,数据需经过发送端CPU封装协议头、接收端CPU解析协议头,导致延迟高、CPU占用率高、带宽利用率低三大问题。RDMA通过绕过操作系统内核(Kernel Bypass)和零拷贝(Zero-Copy)机制,实现了两点间内存直接读写,彻底解放了CPU资源。
RDMA是一种网络协议,允许计算机通过网络直接读写另一台计算机的内存空间,无需对方CPU参与数据搬运,仅通过网卡(RNIC)完成数据传输。其核心标准由IBTA(InfiniBand Trade Association)制定,支持InfiniBand、RoCE、iWARP三种传输层协议。
核心原理与架构
(1)工作流程
- 建立连接:通过QP(Queue Pair,队列对)建立通信上下文,包括发送队列(SQ)和接收队列(RQ)。
- 内存注册:预先将目标内存区域注册为RDMA可访问区域,生成物理地址与密钥(Key)。
- 数据传输: 发送端:应用直接向SQ提交工作请求(Work Request),包含操作类型(Send/Write/Read)和内存地址。接收端:网卡硬件解析请求,直接读写目标内存,完成后通过CQ(完成队列)通知应用。
(2)关键技术特性
- 零拷贝(Zero-Copy):数据不经过内核缓冲区,直接从用户内存到网卡。
- 内核旁路(Kernel Bypass):用户态驱动(如Verbs API)直接控制网卡,避免系统调用开销。
(3)性能指标
- 延迟:亚微秒级(InfiniBand可达0.5μs,RoCE v2约1-3μs)
- 吞吐量:100Gbps网络可达90%以上带宽利用率
- CPU占用:接近0%,仅需处理完成事件
RoCE(RDMA over Converged Ethernet)
技术背景与定义
InfiniBand虽性能优异,但需专用交换机与网卡,成本高昂。RoCE(RDMA over Converged Ethernet)由Mellanox(现NVIDIA)于2010年提出,旨在通过以太网承载RDMA,降低部署成本。RoCE分为两个版本:
- RoCE v1:基于以太网链路层(Layer 2),依赖无损网络(PFC+ECN)
- RoCE v2:基于UDP/IP(Layer 3),支持路由与跨子网通信
RoCE是以太网上实现RDMA的协议标准,通过将InfiniBand传输语义映射到以太网帧,复用现有网络基础设施提供RDMA能力。
核心原理与实现
(1)协议栈对比

关键技术
- 流量控制(PFC):基于优先级的暂停帧(Pause Frame),防止缓冲区溢出
- 拥塞控制(DCQCN):通过ECN(Explicit Congestion Notification)标记与速率调整避免拥塞
优点分析
- 成本低:复用以太网交换机(数据中心级交换机)
- 兼容性强:支持标准IP路由与VXLAN隧道
- 性能接近InfiniBand:RoCE v2延迟仅比InfiniBand高10-20%

被折叠的 条评论
为什么被折叠?



