news 2026/3/10 22:14:32

什么是RDMA技术及其三个协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是RDMA技术及其三个协议

转自微信号:Ai long cloud

在了解RDMA技术之前,我们先来了解一下DMA技术,

一、DMA技术

DMA(英文全称:Direct Memory Access),即直接内存访问技术,意思是1台计算机主板上的外设(如网卡、硬盘、I/O等设备)对内存的数据读写过程可以不用CPU参与而直接进行,不需要绕过CPU。

DMA控制器时,数据经CPU访问模式

如上图:假设I/O设备为一个普通网卡,为了从内存拿到需要发送的数据,然后组装数据包发送到物理链路上,网卡需要通过总线告知CPU自己的数据请求。然后CPU将会把内存缓冲区中的数据复制到自己内部的寄存器中,再复制到I/O设备的存储空间中。如果数据量比较大,那么很长一段时间内CPU都会忙于搬移数据,而无法投入到其他工作中去。

CPU的最主要工作是计算,是一台计算机的“大脑”,而不是用来专门进行数据复制或传输的,这种工作属于白白浪费了它的计算能力。为了给CPU“减负”,让它投入到更有意义的工作中去,后来人们设计了DMA机制和技术即在总线上挂载一个DMA控制器,专门用来读写内存的设备。

DMA控制器时,内存直接访问模式

有了它以后,当我们的网卡想要从内存中拷贝数据时,除了一些必要的控制命令需要通过CPU参与外,整个数据传输过程都是由DMA控制器来完成的。CPU除了关注一下这个过程的开始和结束以外,其他时间可以去做其他的事情,释放出CPU很多的资源。

经过技术不断迭代和发展,DMA控制器一般都是和I/O设备集成在一起了,也就是说一块DMA网卡中既有负责数据收发的模块,也有DMA模块。

二、RDMA技术

RDMA,英文全称:Remote Direct Memory Access,意思是“远程直接内存访问”,是一种高效的网络通信协议,它允许一台计算机的内存直接访问另外一台计算机的内存,而无需经过操作系统内核(即CPU)的介入。从而“解放”CPU的工作压力,来提高数据传输速率,减少时延,提高整体计算性能的作用,如下图的绿色链路。

我们这边重点要理解远程,即两台或以上的计算机内存访问。为了更加清晰的理解RDMA技术,以及它的优势之处,我们先来了解一下非RDMA技术的传输方式,即传统的网络访问方式,请看下面两个图:

传统网络中,A计算机给B计算机发送数据,实际上需要做的是”把A计算机内存中的一段数据,通过网络链路搬移到B计算机的内存中”,而这一过程无论是发送端还是接收端,数据都是需要经过CPU,包括CPU对网卡的控制,中断的处理,报文的封装和解析等等。

而引入RDMA技术之后呢,数据就可以绕开CPU通过RDMA网卡直接进行内存访问,从而大大提高了数据的传输速率和减少了时延。同时也大大的释放了CPU的工作负载和”压力”,提升了计算的工作效率。如下图所示:

计算机的CPU:除了在建立连接、注册调用、控制管理等之外,在整个RDMA数据传输过程中并不提供服务,因此没有给系统带来任何的“负载”,相反还能释放出较多空闲时间,可以处理很多额外的CPU计算工作。

三、RDMA技术优缺点

尽管RDMA的技术有很多的优点,但是也存在一些缺点。因此需要根据我们实际的应用场景去选择他的技术应用。

四、RDMA的三种网络协议

RDMA本身指的是一种技术,具体到协议层面,包括:InfiniBand(IB)、RDMA over Converged Ethernet(RoCE)和Internet Wide Area RDMA Protocol(iWARP)三种协议。

它们各有优缺点,适用于不同的应用场景。

对比如下

Infiniband(IB):InfiniBand(直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连,是一种RDMA原生的网络协议。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。IB网络需要通过专用硬件才能实现最优的性能,但是由于专用硬件的原因(即Infiniband要求从L2到L4到需要自己的专用硬件),设备成本非常高,现在做InfiniBand网络的厂商主要就是Mellanox(为以色列一家芯片制造商,现已被英伟达收购)

ROCE:ROCE基于以太网链路层的协议,v1版本网络层仍然使用了IB规范,而v2使用了UDP+IP作为网络层和传输层,使得数据包也可以被路由。RoCE可以被认为是IB的“低成本解决方案”,将IB的报文封装成以太网包进行收发。由于RoCE v2可以使用以太网的交换设备,所以现在在企业中应用也比较多,但是相同场景下相比IB性能要有一些损失。

iWARP:iWARP基于TCP/IP协议的RDMA技术,由IETF标准定义。iWARP支持在标准以太网基础设施上使用RDMA技术,而不需要交换机支持无损以太网传输。因为TCP是面向连接的可靠协议,这使得iWARP在面对有损网络场景(可以理解为网络环境中可能经常出现丢包)时相比于RoCE v2和IB具有更好的可靠性,在大规模组网时也有明显的优势。但是大量的TCP连接会耗费很多的内存资源,另外TCP复杂的流控等机制会导致性能问题,所以从性能上看iWARP要比UDP的RoCE v2和IB差。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 20:28:44

终极UML绘图工具:3分钟快速上手PlantUML Editor免费版

终极UML绘图工具:3分钟快速上手PlantUML Editor免费版 【免费下载链接】plantuml-editor PlantUML online demo client 项目地址: https://gitcode.com/gh_mirrors/pl/plantuml-editor 还在为复杂的UML绘图软件发愁吗?这款免费的在线UML绘图工具将…

作者头像 李华
网站建设 2026/3/6 4:19:30

3分钟精通lay/layer弹窗实时数据动态渲染

3分钟精通lay/layer弹窗实时数据动态渲染 【免费下载链接】layer 项目地址: https://gitcode.com/gh_mirrors/lay/layer 在当今数据驱动的Web应用开发中,弹窗作为信息展示的核心载体,其动态更新能力直接决定了用户体验的质量。lay/layer组件作为…

作者头像 李华
网站建设 2026/3/2 4:34:59

LeaguePrank终极指南:英雄联盟身份个性化完整教程

LeaguePrank终极指南:英雄联盟身份个性化完整教程 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 想要在英雄联盟中打造独特的个人形象?LeaguePrank正是你需要的完美解决方案!这款基于LCU A…

作者头像 李华
网站建设 2026/3/8 19:00:52

付费墙突破工具技术深度解析与选择指南

付费墙突破工具技术深度解析与选择指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取成本日益增长的今天,付费墙已成为众多优质内容平台的标准配置。面对这一…

作者头像 李华
网站建设 2026/3/2 22:58:27

Seed-Coder-8B-Base模型深度解析:基于Transformer架构的代码理解

Seed-Coder-8B-Base模型深度解析:基于Transformer架构的代码理解 在现代软件开发中,程序员每天面对的是越来越复杂的系统逻辑与庞大的代码库。一个常见的场景是:你正在实现一个数据处理函数,刚写下函数签名和注释,编辑…

作者头像 李华
网站建设 2026/2/27 4:45:49

解锁付费内容:6款实用工具帮你轻松绕过付费墙

在信息获取成本日益增加的今天,付费墙已经成为获取优质内容的主要障碍。对于普通用户来说,如何在不增加经济负担的情况下获取所需信息,成为一个亟待解决的问题。付费墙绕过工具应运而生,为这个问题提供了可行的解决方案。 【免费下…

作者头像 李华