一.RDMA介绍
远程直接内存存取(RDMA)使一台计算机可以直接将信息传送到另一台计算机内存中。这项技术通过减少对带宽和处理器开销的需要降低了时延,这种效果实现的技术:
1. 通 过在NIC的硬件中部署一项可靠的传输协议
2.支持零复制网络技术和
3. 内核内存旁路实现
2)零复制网络技术
NIC可以直接与应用内存相互传输数据,从而消 除了在应用内存与内核内存之间复制数据的需要;
零复制网络技术是通过在NIC的硬件中部署一项可靠的传输协议, 支持零复制网络技术、内核内存旁路实现的。
3)内核内存旁路
应用无需执行内核内存调用就可向NIC发送命令。在不需要任何内核内存参与的条件下, RDMA请求从用户空间发送到本地NIC并通过网络发送给远程NIC,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数。
二.RDMA工作原理
RDMA是一种网卡技术,采用该技术可以使一台计算机直接将信息放入另一台计算机的内存中。
API(应用程序接口)包括用于低时延消息处理、成就高性能计算的MPI(消息通过接口),以及DAPL(直接接入供应库)。
RDMA数据流传输示意图
RDMA模型演变
操作:
发布RDMA操作的应用程序必须为它试图访问的远程内存指定正确的类型值,远程应用程序在本地网卡中注册内存时获得这个类型值。发布RDMA的应用程序地址和该内也必须确定远程内存存区域的类型值。远程应用程序会将相关信息通知给发布RDMA的应用程序,这些信息包括起始虚拟地址、内存大小和该内存区域的类型值。在发布RDMA的应用程序能够对该内存区域进行RDMA操作之前,远程应用程序应将这些信息通过发送操作传送给发布RDMA的应用程序。