RDMA入门——RDMA学习笔记(一)

背景知识

1)DMA

​ 直接内存访问(DMA) ,是一种完全由硬件执行I/O交换的工作方式。在这种方式中, DMA 控制器从CPU 完全接管总线的控制,数据交换不经过CPU,而直接在内存和IO设备之间进行。DMA工作时,由DMA 控制器(DMAC)向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向CPU 报告传送操作的结束。

  • 目的:减少大批量数据传输时CPU 的开销。

  • 优点1. 操作均由硬件电路实现,传输速度快。 2. CPU仅在初始化和结束时参与,与外设并行工作,效率高。

可以理解为CPU找个了小跟班托管了从外设收集数据的工作,当小跟班完成数据收集后,就通知CPU在内存取用。

2)TCP/IP 协议栈和Socket

​ 应用程序之间进行网络通信,通常通过TCP/UDP协议进行,Socket作为运输层软件抽象接口,供上层应用调用,屏蔽了复杂的TCP/IP协议族,对于上层应用来说协议的实现的细节无需再关注。

在这里插入图片描述
以Socket建立TCP连接为例,编程时调用一下函数,机器遵从一下的顺序进行通信。
在这里插入图片描述

​ 从宏观角度来看,从应用程序调用Socket接口,将数据传入后,进程转换为内核态,数据层层封装和拷贝,最后到达网卡设备发送出去。接收数据则是逆向的流程。

在这里插入图片描述

TCP/IP协议中,发送数据的流向是:应用程序->操作系统内核->网卡->网络->目的设备。接收数据的过程反之。

一、简介

​ RDMA(Remote Direct Memory Access)技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。 ——《百度百科》

二、数据流向

​ A进程内存数据段<---->A网卡数据缓冲区<---->网络<---->B网卡数据缓冲区<---->B进程内存数据段

在这里插入图片描述

三、特点

​ RDMA利用DMA的思路,进行远程数据传输,因此具有以下特点:

  1. 零拷贝(Zero copy):数据直接发送(接收)到缓冲区。
  2. 内核旁路(Kernel Bypass):应用程序直接在用户态传输数据,无需切换内核态。
  3. 无需CPU干预
  4. 消息基于事务:数据被处理为离散消息而不是流,消除了应用程序将流切割为不同消息/事务的需求。
  5. 分散/聚合条目:读取多个内存缓冲区的数据,作为一个流发送(聚合),或接受一个流数据写入到多个内存缓冲区(分散)。

四、服务

​ RDMA提供比TCP/IP协议带宽更大、时延更低的远程通信服务。

五、通信协议

​ RDMA最初是在InfiniBend网络上实现的,随着不断发展也可以在Ethernet网络中使用。目前RDMA方式实现协议有:

  • InfiniBand:无线带宽技术,设计就支持RDMA,从硬件上保证可靠通信。
  • RoCE:经过融合以太网执行RDMA的协议。
  • iWARP:联网广域网支持的RDMA的协议。

在这里插入图片描述

六、接口

Verbs:直接翻译为“一组标准动作”,借用Socket的概念,可以理解为RDMA的接口。

七、基本术语

  • Fabric:支持RMDA的局域网
  • CA:通道适配器(Chanel adapter),将系统连接到Fabric的硬件。在IB子网为代表一个终端节点,具体为TCA和HCA两种;在Ethernet和其他网络中,常用具体为实体设备,RNIC(RDMA Network Interface Card)。

写在最后:以上内容总结自网络,感谢各家博主。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值