RDMA技术一

一文带你初识RDMA技术——RDMA概念,特点,协议,通信流程 文章目录 阅读详情

1.什么是RDMA

RDMA( Remote Direct Memory Access )即Remote + DMA,意为远程直接地址访问。所谓“Remote”,本端节点可以访问“远端”节点的内存。所谓“Direct”,指的是可以像访问本地内存一样,绕过传统以太网复杂的TCP/IP网络协议栈读写远端内存,而这个过程对端是不感知的,而且这个读写过程的大部分工作是由硬件而不是软件完成的,即不需要内核参与。

RDMA (Remote Direct Memroy Access ):利用 Kernel Bypass(内核旁路) 和 Zero Copy(零拷贝)技术提供了低延迟的特性,同时减少了CPU占用,减少了内存带宽瓶颈,提供了很高的带宽利用率。RDMA提供了基于 IO 的一种通道,这种通道允许一个用户空间的应用程序通过RDMA设备对远程的虚拟内存进行直接的读写。消除了传统网络通信带给计算任务的瓶颈,实现了更快和更轻量级的网络通信。

1.1 DMA

传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。

DMA(直接内存访问)是一种能力,允许在计算机主板上的设备通过DMA直接把数据发送到目标内存中去,数据搬运不需要CPU的参与。 

DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统CPU的参与,大大降低了CPU Copy的开销。

1.2 RDMA

两端(本端和远端)的CPU几乎不用参与数据传输过程(只参与控制面)。本端的网卡直接从内存的用户空间DMA拷贝数据到内部存储空间,然后硬件RNIC(即支持RDMA技术的网卡)进行数据组装(主要时添加tcp、ip等报文头和校验码)后,通过物理链路发送到对端硬件RNIC即支持RDMA技术的网卡),对端的RDMA网卡收到数据后,剥离各层报文头和校验码,通过DMA Engine将数据直接拷贝到用户空间内存中。

2.RDMA的特点

2.1 特点一:zero-copy 零拷贝

能够读写远程内存,能够直接访问远程缓冲区,无需在不同软件层之间复制数据

2.2 特点二:kernel bypass 内核旁路

跳过内核,可在相同的代码上下文(即用户空间或内核)中收/发数据,节省了上下文切换时间

2.3 特点三:cpu-loadoff cpu卸载

无 CPU 参与,可使用专用硬件RNIC收/发数据前对数据进行组装或者解压,而不需要 CPU 干预。可降低远程端的 CPU 使用率,因为不需要它执行任何主动操作

2.4 特点四:message based transactions 基于消息的事务

可在不同的连接上同时执行多个事务,而无需等待任何事务完成

2.5 特点五:scatter/gather entries support 分散/聚集条目

可在单个操作中传输多个缓冲区,而无需将它们合并到单个缓冲区中

3.实现
3.1 要求

NIC 供应商将 RDMA 实现为软件、固件和硬件的组合 ,必须通过分配给支持 NDK 的微型端口适配器的 IPv4 和 IPv6 地址支持网络直接连接。

固件和硬件需求:提供 NDK/RDMA 功能的网络适配器,这种类型的适配器也称为已启用 RDMA 的 NIC (RNIC) ,即支持RDMA的网卡,如intel、navida等都提供特定的网卡。

软件需求:支持 NDK 的微型端口驱动程序,可实现 NDKPI 接口。不同的操作系统需要不同的软件需求,如RDMA 的 Windows 实现称为网络直通 (network direct,简称ND) ,内核部分称为网络直接内核 (NDK) ;RDMA在linux上【RDMA】intel 英特尔RDMA 驱动和ibverslib 库安装|流控PFC_rdma驱动-优快云博客
    

3.2 实现方法

目前RDMA有三种不同的硬件实现,它们都可以使用同一套API来使用,但它们有着不同的物理层和链路层:

InfiniBand(IB): 基于 InfiniBand 架构的 RDMA 技术,需要专用的 IB 网卡和 IB 交换机。从性能上,很明显Infiniband网络最好,但网卡和交换机是价格也很高。

RoCE:即RDMA over Ethernet(RoCE), 基于以太网的 RDMA 技术,也是由 IBTA 提出。RoCE支持在标准以太网基础设施上使用RDMA技术,但是需要交换机支持无损以太网传输,只不过网卡必须是支持RoCE的特殊的NIC。

iWARP:Internet Wide Area RDMA Protocal,基于 TCP/IP 协议的 RDMA 技术(在现有TCP/IP协议栈基础上实现RDMA技术,在TCP协议上增加一层DDP),由 IETF 标 准定义。iWARP 支持在标准以太网基础设施上使用 RDMA 技术,而不需要交换机支持无损以太网传输,但服务器需要使用支持iWARP 的网卡。与此同时,受 TCP 影响,性能稍差。

4 说明

RDMA 、InfiniBand、IBoE、RoCE、iWARP、IB卡、IB驱动的关系

4.1 说明一

RDMA 是一种技术(远程直接内存访问技术),有三种协议可以实现这种技术。

4.2 说明二

实现这种技术你可以选择用 Infiniband 协议、也可以使用其他协议:roce、iwarp

支持Infiniband 协议 或 roce、iwarp 等RDMA协议的网卡,就叫RDMA网卡,当你在服务器上安装RDMA网卡之后,你还得安装RDMA驱动,才能使用RDMA网卡 。

在Infiniband/RoCE规范中,将RDMA网卡称为HCA,全称为Host Channel Adapter,即主机通道适配器;而在iWARP协议族中,将RDMA网卡称为RNIC,全称为RDMA enabled Network Interface Controller,即支持RDMA的网络接口控制器。

支持Infiniband 协议的网卡又称IB网卡,当你在服务器上安装了IB卡之后,你还得安装 IB驱动,才能使用 infiniband 。

4.3 说明三

如果你使用 Infiniband 协议,这个协议作为一个新一代网络协议。它必须依靠专门的硬件才能实现。(专用INC(网卡)—— IB卡+专用交换机===>专用网络)。

如果你使用roce、iwarp,需要专用网卡,但不需要专用网络(RDMA会转成以太网协议,继续用以太网传输)

全网最全的RDMA拥塞控制入门基础教程 在许多方面,它与传统的广域网相反。当前RDMA在以太网上的传输协议是RoCEv2,RoCEv2是基于无连接协议的UDP协议,相比面向连接的TCP协议,UDP协议更加快速、占用CPU资源更少,但其不像TCP协议那样有滑动窗口、确认应答等机制来实现可靠传输,一旦出现丢包,依靠上层应用检查到了再做重传,会大大降低RDMA的传输效率。发送方(RP)以最高速开始发送,沿途过程中如果有拥塞,会被标记ECN显示拥塞,当这个被标记的报文转发到接收方(NP)的时候,接收方(NP)会回应一个CNP报文,通知发送方(RP)。 阅读详情

相关推荐

【RDMA】RDMA技术详解(一):RDMA概述

原文:https://blog.youkuaiyun.com/qq_21125183/article/details/86522475 1. DMA和RDMA概念 1.1 DMA DMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。 传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将...

小鱼菜鸟的博客 871

【RDMA】技术详解(一):RDMA概述

原文:https://blog.youkuaiyun.com/qq_21125183/article/details/86522475 1. DMA和RDMA概念 1.1 DMA DMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。 传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统

我的笔记本 7万+

学习笔记 RDMA

https://mp.weixin.qq.com/s?__biz=MzAxNzU3NjcxOA==&mid=2650717964&idx=1&sn=2b06cbeb6e9028c71b30eb37f38a3b9d&scene=21#wechat_redirect https://blog.youkuaiyun.com/btb5e6nsu1g511eg5xeg/article/...

jojozym的博客 629

RDMA 架构与实践(技术详解(一):RDMA概述)

RDMA 架构与实践 | https://houmin.cc/posts/454a90d3/ RDMA,即Remote Direct Memory Access,是一种绕过远程主机OS kernel访问其内存中数据的技术,概念源自于DMA技术。在 DMA 技术中,外部设备(PCIe 设备)能够绕过 CPU 直接访问host memory;而 RDMA 则是指外部设备能够绕过 CPU,不仅可以访问本地主机的内存,还能够访问另一台主机上的用户态内存。由于不经过操作系统,不仅节省了大量 CPU 资源......

我的笔记本 9982

一文带你了解什么是RDMA

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种起源于高性能计算领域的通信技术,如今已广泛应用于数据中心。该技术使得用户程序能够绕过操作系统内核及CPU,直接与网络接口卡(NIC)交互,实现网络通信。这种方式不仅大幅提升了通信带宽,还显著降低了网络延迟,优化了整体性能。

嵌入式技术开发 6016

为什么你的SiC MOSFET仿真不准?可能是离子注入的‘沟道效应’在捣鬼(Silvaco BCA模块详解)

本文深入分析了SiC MOSFET仿真中离子注入沟道效应的关键影响,揭示了Silvaco BCA模块在模拟SiC晶向和角度参数时的核心设置要点。通过详细解析晶圆偏切与注入角度的等效关系,提供优化MOSFET沟道区注入仿真的五步实战方法,帮助工程师将阈值电压仿真误差从26%降低到5%以内。

weixin_26789847的博客 410

RDMA技术详解(一):RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。 传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统CPU的参与,大大降...

Master-TJ的个人博客 2万+

还在用iReport 5.6.0?手把手教你用JasperSoft Studio 6.8.0设计报表(附JDK 11+兼容方案)

本文详细介绍了从iReport 5.6.0迁移到JasperSoft Studio 6.8.0的全过程,包括JDK 11+环境配置、项目迁移实战、高级特性应用及常见问题解决方案。帮助开发者高效完成报表生成工具的升级,提升开发体验和报表性能。

weixin_30687051的博客 407

RDMA技术浅析(一)

本章主要是集合了一些概念性的东西做了一些整理,后续会看一下RDMA的代码和实际使用的例子。 一、RDMA概述 传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统CPU的参与,大大降低了CPU Copy的开销。 类似地,RDMA是一种host-offload, host-bypass技术,允许应用程序(包括存储)在它们的内存空间之

袁赟的博客 2815

新手避坑指南:用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR,这些参数设置错了白忙活

本文详细介绍了使用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR时的关键参数设置技巧,帮助新手避免常见错误。重点解析了连接图生成、干涉工作流、DEM处理等环节的12个关键参数,包括Max Normal Baseline、Unwrapping Coherence Threshold等,提供实测安全值范围和优化建议,确保处理效率和结果准确性。

weixin_30694389的博客 557

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 376

一、超算网络技术(TCP/IP与RDMA区别)

通过内核旁路和零拷贝,RDMA将网络延迟从TCP/IP的数十到上百微秒级别,降低到了个位数微秒甚至亚微秒级别。同时,它将CPU从繁重的网络任务中彻底解放出来,使得应用程序能够几乎无损耗地利用高达400Gbps甚至未来的更高物理带宽。这正是“喂饱”饥饿的GPU所必需的。

weixin_44288529的博客 711

企查查爬取实战

实战成果完成接口定位、抓包参数拆解、签名逆向、报错修复全流程调试,梳理出企查查多层风控逻辑;最终按照搜索分页规则,规范整理出两页共 20 条结构化企业数据,以标准 JSON 格式本地保存,字段完整、数据排版规范。现存局限平台顶层设备指纹与人机验证风控,纯 requests 网络请求模式无法突破;高频请求还存在账号限流、IP 访问限制风险,爬虫稳定性受平台策略影响较大。技术收获。

czr2026的博客 1129

全面解析RDMA

原文:https://blog.youkuaiyun.com/qq_21125183/article/details/80563463

jianmai3616的博客 356

Python爬虫实战:微信小程序内容采集的全面指南

在移动互联网时代,微信小程序已成为企业和个人提供服务的重要渠道。小程序中包含了大量有价值的信息,但微信官方并未提供便捷的数据获取接口。本文将详细介绍如何使用Python爬虫技术采集微信小程序内容,包括最新技术方案、完整代码实现以及应对各种反爬机制的策略。小程序运行在微信封闭环境中,无法直接访问数据通信主要通过HTTPS加密传输内容动态加载,依赖JavaScript渲染微信有严格的反爬机制。

2201_76125261的博客 3117

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景,在 Windows Presentation Foundation(WPF)开发中,依赖项属性是一个核心且强大的特性,它为构建灵活、可扩展的用户界面提供了关键支持。理解并熟练运用依赖项属性,对于开发高效、健壮的 WPF 应用程序至关重要。本文将深入探讨 WPF 依赖项属性,通过丰富的代码示例和对关键概念的详细解释,帮助读者全面掌握这一重要特性及其应用场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

RDMA技术详解——原理和三种实现方式

1、InfiniBand(IB): 从一开始就支持RDMA的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。 2、RDMA过融合以太网(RoCE): 即RDMA over Ethernet, 允许通过以太网执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上使用RDMA,只不过网卡必须是支持RoCE的特殊的NIC。 3、互联网广域RDMA协议(iWARP): 即RDMA over TCP, 允许通过TCP执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上..

yizhiniu_xuyw的专栏 7376

【前端基础篇】HTML5 + CSS3 入门知识

,HTML5和CSS3核心知识

前端知识分享喵 2982

【面试】秋招|百度系统部offer call,附面经(云计算、数据中心网络、RDMA相关)...

作者:StarryVae 链接:https://www.nowcoder.com/discuss/218705 来源:牛客网 牛客很少关于数据中心网络、RDMA相关面经,特此记录! 百度智能云计算部 一面: 介绍一下自己的经历RDMA做了什么?dpdk?openstack项目做了什么?openstack的网络组件之间的关系?ovs了解吗?介绍一下...

小鱼菜鸟的博客 276

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

2015美国闪存峰会特稿——NVMe + RDMA = 非凡的性能!

我在前一篇博文中介绍了Donard 项目,该项目实现了NVMe SSD与GPU、NVMe SSD及远端直接内存访问(RDMA)之间的PCIe点到点传输。现下,我倍感兴奋地宣布,在2015美国闪存峰会 (FMS)上,PMC与RDMA领域的领军公司Mellanox共同联手,将上述工作推向了更高的层次!

PMC的专栏 3780

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

rdma通信流程

this_is_ccc的博客 107

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: RDMA技术零:windows+Socket编程
下一篇: RDMA技术二:编程
kobe0818
博客等级 码龄15年 338粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值