RDMA over TCP的协议栈工作过程浅析

http://tech.ddvip.com   2008年01月22日    社区交流 收藏本文

内容摘要:RDMA(Remote Direct Memory Access)全名是"远程直接数据存取",RDMA让计算机可以直接存取其它计算机的内存,而不需要经过处理器耗时的传输。RDMA是一种使一台计算机可以直接将数据通过网络传送到另一台计算机内存中的特性,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响

RDMA over TCP的协议栈工作过程浅析

  图1.2 RDMA数据流传输示意图

  RDMA对以太网来说还是"新生事物",但以不同形式存在已有十多年时间,它是Infiniband技术的基础。产业标准API(应用程序接口)使RDMA从技术走向实现成为可能。其中包括用于低时延消息处理、成就高性能计算的MPI(消息通过接口),以及DAPL(直接接入供应库)。后者包括两部分:KDAPL和UDAPL,分别用于内核和用户(应用程序)。Linux支持KDAPL,其它操作系统将来也有可能支持。RDMA在高性能计算环境广为采纳,在商务应用领域很少,但如今大多应用程序都能直接支持操作系统,透过操作系统(如NFS)间接利用RDMA技术的优势是完全可能的。

  2 RDMA工作原理

  RDMA是一种网卡技术,采用该技术可以使一台计算机直接将信息放入另一台计算机的内存中。通过最小化处理过程的开销和带宽的需求降低时延。RDMA通过在网卡上将可靠传输协议固化于硬件,以及支持零复制网络技术和内核内存旁路技术这两种途径来达到这一目标。RDMA模型如图2.1所示。

RDMA over TCP的协议栈工作过程浅析

  图2.1 RDMA模型演变

  零复制网络技术使NIC可以直接与应用内存相互传输数据,从而消除了在应用内存与内核内存之间复制数据的需要。

  内核内存旁路技术使应用程序无需执行内核内存调用就可向网卡发送命令。在不需要任何内核内存参与的条件下,RDMA请求从用户空间发送到本地NIC并通过网络发送给远程NIC,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数。

来源:IT168    作者:刘步荣    责编:豆豆技术应用

正在加载评论...