`
zhaohaolin
  • 浏览: 1017335 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

    博客分类:
  • JAVA
阅读更多
RDMA over TCP的协议栈工作过程浅析
随着网络带宽和速度的发展和大数据量数据的迁移的需求,网络带宽增长速度远远高于处理网络流量时所必需的计算节点的能力和对内存带宽的需求,数据中心网络架构已经逐步成为计算和存储技术的发展的瓶颈,迫切需要采用一种更高效的数据通讯架构。

  传统的TCP/IP技术在数据包处理过程中,要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,所产生严重的延迟来自系统 庞大的开销、数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制移动,如图1.1所示,给服务器的CPU和内存造成了沉重负担。特别是面对网络 带宽、处理器速度与内存带宽三者的严重\"不匹配性\",更造成了网络延迟效应的加剧。处理器速度比内存速度快得越多,等待相应数据的延迟就越多。而且, 处理每一数据包时,数据必须在系统内存、处理器缓存和网络控制器缓存之间来回移动,因此延迟并不是一次性的,而是会对系统性能持续产生负面影响。


网管下载dl.bitscn.com

  图1.1 主机接收传统以太网数据的典型数据流示意图


    
    这样,以太网的低投入、低运营成本优势就难以体现。为充分发挥万兆位以太网的性能优势,必须解决应用性能问题。系统不能以软件方式持续处理以太网通信;主 机CPU资源必须释放专注于应用处理。业界最初的解决方案是采用TCP/IP负荷减轻引擎(TOE)。TOE方案能提供系统性能,但协议 处理不强;它能使TCP通信更快速,但还达不到高性能网络应用的要求。解决这类问题的关键,是要消除主机CPU中不必要的频繁数据传输,减少系统间的信息延迟。 网管联盟bitsCN@com

  RDMA(Remote Direct Memory Access)全名是\"远程直接数据存取\",RDMA让计算机可以直接存取其它计算机的内存,而不需要经过处理器耗时的传输,如图1.2所示。 RDMA是一种使一台计算机可以直接将数据通过网络传送到另一台计算机内存中的特性,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任 何影响,这项技术通过消除外部存储器复制和文本交换操作,因而能腾出总线空间和CPU周期用于改进应用系统性能,从而减少对带宽和处理器开销的需要,显著 降低了时延。 

  网管论坛bbs_bitsCN_com

    中国网管论坛bbs.bitsCN.com


  图1.2 RDMA数据流传输示意图

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

2  RDMA工作原理


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


  中国网管联盟bitsCN.com

  


中国网管论坛bbs.bitsCN.com

  图2.1 RDMA模型演变


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

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

  当一个应用程序执行RDMA读/写请求时,系统并不执行数据复制动作,这就减少了处理网络通信时在内核空间和用户空间上下文切换的次数。在不需 要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地 NIC(网卡),然后经过网络传送到远程NIC。请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况 下通过内核内存处理。


  RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。RDMA操作用于读写操作的远程虚拟内存地址包含在RDMA消息中传 送,远程应用程序要做的只是在其本地网卡中注册相应的内存缓冲区。远程节点的CPU在整个RDMA操作中并不提供服务,因此没有带来任何负载。通过类型值 (键值)的使用,一个应用程序能够在远程应用程序对它进行随机访问的情况下保护它的内存。 

  发布RDMA操作的应用程序必须为它试图访问的远程内存指定正确的类型值,远程应用程序在本地网卡中注册内存时获得这个类型值。发布RDMA的 应用程序也必须确定远程内存地址和该内存区域的类型值。远程应用程序会将相关信息通知给发布RDMA的应用程序,这些信息包括起始虚拟地址、内存大小和该 内存区域的类型值。在发布RDMA的应用程序能够对该内存区域进行RDMA操作之前,远程应用程序应将这些信息通过发送操作传送给发布RDMA的应用程 序。 

3  RDMA 操作类型 网管u家u.bitscn@com

  具备RNIC(RDMA-aware network interface controller)网卡的设备,不论是目标设备还是源设备的主机处理器都不会涉及到数据传输操作,RNIC网卡负责产生RDMA数据包和接收输入的 RDMA数据包,从而消除传统操作中多余的内存复制操作。


  RDMA协议 提供以下4种数据传输操作,除了RDMA读操作不会产生RDMA消息,其他操作都会产生一条RDMA消息。

   RDMA Send操作;
   Send operation;
   Send with invalidate operation;
   Send with solicited event;
   Send with solicited event and invalidate;
   RDMA Write操作;
   RDMA Read操作;
   Terminate操作。

4  RDMA over TCP


  以太网凭借其低投入、后向兼容、易升级、低运营成本优势在目前网络互连领域内占据统治地位,目前主流以太网速率是100 Mb/s和1000 Mb/s,下一代以太网速率将会升级到10 Gb/s。将RDMA特性增加到以太网中,将会降低主机处理器利用率,增加以太网升级到10 Gb/s的优点,消除由于升级到10 Gb/s而引入巨大开销的弊端,允许数据中心在不影响整体性能的前提下拓展机构,为未来扩展需求提供足够的灵活性。


  RDMA over TCP协议 将数据直接在两个系统的应用内存之间进行交互,对操作系统内核几乎没有影响,并且不需要临时复制到系统内存的操作,数据流如图4.1所示。 网管网www.bitscn.com



  图4.1 RDMA over TCP (Ethernet)数据流示意图

    RDMA over TCP协议 能够工作在标准的基于TCP/IP协议 的网络,如目前在各个数据中心广泛使用的以太网。注意:RDMA over TCP并没有指定物理层信息,能够工作在任何使用TCP/IP协议 的网络上层。RDMA over TCP允许很多传输类型来共享相同的物理连接,如网络、I/O、文件系统、块存储和处理器之间的消息通讯。



  图4.2 RDMA over TCP (Ethernet)协议


    
    图4.2是RDMA over TCP (Ethernet)的协议 栈,最上面三层构成iWARP协议 族,用来保证高速网络的互操作性。


  RDMA层协议 负责根据RDMA写操作、RDMA读操作转换成RDMA消息,并将RDMA消息传向Direct Data Placement (DDP)层。DDP层协议 负 责将过长的RDMA消息分段封装成DDP数据包继续向下转发到Marker-based, Protocol-data-unit-Aligned (MPA)层。MPA层在DDP数据段的固定间隔位置增加一个后向标志、长度以及CRC校验数据,构成MPA数据段。TCP层负责对TCP数据段进行调 度,确保发包能够顺利到达目标位置。IP层则在数据包中增加必要的网络路由数据信息。 

  DDP层的PDU段的长度是固定的,DDP层含有一个成帧机制来分段和组合数据包,将过长的RDMA消息分段封装为DDP消息,处理过程如图4.3所示。


网管网www_bitscn_com

  图4.3 DDP层拆分RDMA消息示意图


    
    DDP数据段是DDP协议 数据传输的最小数据单元,包含DDP协议 头和ULP载荷。DDP协议 头 包含ULP数据的最终目的地址的位置和相关控制信息。DDP层将ULP数据分段的原因之一就是TCP载荷的最大长度限制。DDP的数据传输模式分为2 种:tagged buffer方式和untagged buffer方式。tagged buffer方式一般应用于大数据量传输,例如磁盘I/O、大数据结构等;而untagged buffer方式一般应用于小的控制信息传输,例如:控制消息、I/O状态信息等。

  MPA层在DDP层传递下来的DDP消息中,MPA层通过增加MPA协议 头、标志数据以及CRC校验数据构成FPDU(framed PDU )数据段,处理过程如图4.4所示。


  MPA层便于对端网络适配器设备能够快速定位DDP协议 头数据,根据DDP协议 头内设置的控制信息将数据直接置入相应的应用内存区域。MPA层具备错序校正能力,通过使能DDP,MPA避免内存复制的开销,减少处理乱序数据包和丢失数据包时对内存的需求。MPA将FPDU数据段传送给TCP层处理。



  图4.4 MPA层拆分DDP消息示意图

    
    TCP层将FPDU数据段拆放置在TCP数据段中,确保每个TCP数据段中都包含1个单独的FDPU。MPA接收端重新组装为完整的FPDU,验证数据完 整性,将无用的信息段去除,然后将完整的DDP消息发送到DDP层进行处理。DDP 允许DDP数据段中的ULP协议 (Upper Layer Protocol)数据,例如应用消息或磁盘I/O数据,不需要经过ULP的处理而直接放置在目的地址的内存中,即使DDP数据段乱序也不影响这种操作。 

5  RDMA标准组织

  2001年10月,Adaptec、Broadcom、Cisco、Dell、EMC、HP、IBM、Intel、Microsoft和 NetApp公司宣布成立\"远程直接内存访问(RDMA)联盟\"。RDMA联盟是个独立的开放组织,其制定实施能提供TCP/IP RDMA技术的产品所需的体系结构规范,鼓励其它技术公司积极参与新规范的制定。该联盟将负责为整个RDMA解决方案制定规范,包括RDMA、DDP(直 接数据放置)和TCP/IP分帧协议


  RDMA联盟是Internet工程任务组(IETF)的补充,IETF是由网络设计师、运营商、厂商和研究公司组成的大型国际组织。其目的是 推动Internet体系结构的发展,并使Internet的运作更加顺畅。RDMA联盟的成员公司和个人都是IETF的积极参与者。另外,IETF还认 识到了RDMA在可行网络方案中的重要性,并计划在以后几个月里成立\"Internet协议 套件RDMA\"工作组。RDMA联盟协议 规定,联盟将向相应的IETF工作组提交规范草案,供IETF考虑。


  TCP/IP RDMA体系结构规范的1.0版本于2002年10月由RDMA联盟成员发布, TCP/IP RDMA的最终规范将由RDMA联盟的业界合作伙伴及相应的业界标准组织派出的代表共同确定。RDMA联盟官方网 址:http://www.rdmaconsortium.org。  


  6  结论  

  相比较于TOE(TCP Offload Engine),RDMA-over-TCP技术能够实现更高的网络传输性能。TOE通过网卡上专用处理器来完成一些或所有数据包的相关协议 计算任务,以减轻系统负载,包括TCP在内的四层处理请示都可以从主机处理器转移到网卡,其最终的结果就是在加速网络响应的同时提高服务器的性能,但TOE需要配合理想环境才能取得更好的效果,还达不到高性能网络应用的要求。 

  RDMA是一种能够支持发送系统将网络数据包的数据有效负载放在目的系统的指定位置的技术,通过使用目前普遍使用的网络,需要传输两端的 RDMA专用网卡(RNIC)进行协调。由于数据被发送系统直接放在其最终内存位置上,因此在接收系统中移动网络分组数据所需的处理器时间减少了。硬件连 接速度加快会把众多低价位的服务器集结成性能更强大的数据库,而不必购置昂贵的机器。对很注重占地空间和功耗的系统而言,就千兆位以太网满载传输这一任务 而言,RNIC所需功耗仅为相应网卡和微处理器的一小部分。 网管bitscn_com

  但是采用RDMA技术也存在几个问题:这是一种高级协议 堆栈,需要可靠的传输层(如TCP)。它是一种点对点协议 ,要求数据中心人员在每台服务器上安装专用网卡(NIC)。此外,由于RDMA能够将数据置于另一系统的内存空间,这可能会造成安全风险。因此,尽管RDMA能够帮助减少网络数据包占用的内存性能,但其限制因素使RDMA局限于特殊部署环境。 网管联盟bitsCN@com

  以太网技术通过RDMA over TCP技术将完美体现其低投入、通用性和高性能的特点。如今一些顶级系统开发商、操作系统及设备厂商正合力将这一理想变成现实。未来,RDMA over TCP技术在高性能企业应用中能否成为高速集群和服务器区域网的一种基本特性,还是让我们拭目以待
分享到:
评论

相关推荐

    RDMA介绍及RDMA与TCP异同

    RDMA很全的介绍,包含与TCP的比较. 找了很久才找到的,个人感觉还是非常有用的.

    RDMA over Commodity Ethernet at Scale.pdf

    本文由微软的研究人员分享了他们在使用RDMA over Commodity Ethernet(RoCEv2)过程中遇到的挑战以及解决方法。RoCEv2是RDMA技术的一种实现,它将RDMA功能与以太网协议相结合,使得RDMA可以在普通的以太网硬件上运行...

    Implementation & Comparison of RDMA Over Ethernet.pdf

    4. 对比分析:与传统TCP/IP协议栈的以太网连接进行对比,评估RoE在性能上的优势。 【结果】:实验结果可能会显示RoE在某些工作负载下显著提高了数据传输速度,降低了延迟,并减少了CPU的占用。然而,也可能存在一些...

    NVMe over Fabric诞生记-RDMA篇.docx

    然而,iSCSI依赖于TCP/IP协议栈,存在较大的性能开销。为了解决这一问题,iSCSI Extensions for RDMA (iSER)被提出,它利用RDMA技术改进了iSCSI的性能。尽管如此,iSER依然受限于SCSI协议的局限性,在性能达到一定...

    Ethernet RDMA Technologies.pdf

    在以太网RDMA中,它通常与TCP/IP协议栈相结合,但也可以与其他网络协议如InfiniBand的Verbs(IB Verbs)接口工作。 #### Multi-Protocol Encapsulation (MPA) MPA是RDMA协议中的一个关键组件,负责在不同的网络层...

    RDMA原理分析、对比和技术实现解析.zip

    3. iWARP:基于TCP/IP协议栈,提供更好的网络适应性和互操作性,但相对InfiniBand RDMA性能稍逊。 第五章至第十四章:更深入的RDMA技术解析 这部分内容可能涵盖了RDMA的编程模型、网络架构、错误处理机制、安全性和...

    RDMA RoCEv2标准协议快速掌握.rar

    详细分析介绍RDMA RoCEv2标准协议,报文格式,消息内容。原创总结InfiniBand Architecture Secification Volume1 Release 1.2.1 标准的关键点. 力求读者5分钟掌握RDMA标准。同时附有标准原文档,包括RoCEv2 标准。

    RDMA原理分析技术实现解析

    RDMA支持的网络协议主要有三种:InfiniBand(IB)、RDMA over Converged Ethernet(RoCE)和互联网广域RDMA协议(iWARP)。InfiniBand是一种高速的网络通信标准,它提供高带宽和低延迟的特性,是高性能计算和数据...

    RDMA原理分析及实现解析.zip

    6. **网络层优化**:由于RDMA绕过了操作系统网络堆栈,所以它可以避免网络协议栈中的额外开销,如TCP/IP的三次握手和确认过程,从而显著降低延迟。 7. **应用编程接口(API)**:通常,RDMA的API分为两层: verbs ...

    浅析RDMA网络下MMU水线设置.pdf

    《浅析RDMA网络下MMU水线设置》 RDMA(远程直接数据存取)技术,因其在高性能计算、人工智能、大数据分析等领域的高效、低延迟特性,已经成为现代数据中心的核心技术之一。为了确保RDMA的稳定运行,网络必须具备...

    RDMA编程实例源码(rdma_cm API)

    2. **上下文和资源创建**:初始化RDMA设备,创建工作队列对(Work Queue Pair, WQP)等。 3. **连接管理**:调用`rdma_create_id`、`rdma_resolve_addr`、`rdma_connect`或`rdma_listen`等函数建立连接。 4. **...

    rdma_sample-20180606.zip

    2. "rdmacm"代表RDMA Connection Manager,它是RDMA协议栈的一部分,负责建立和管理RDMA连接。RDMA连接的建立不同于传统的TCP/IP连接,它涉及到资源分配、地址解析和服务质量(QoS)配置等。 3. "rdma_app_flow_contro...

    rdma报文抓包RoCE、RRoCE

    RoCE(RDMA over Converged Ethernet)是RDMA技术的一种实现方式,它将RDMA的功能集成到了以太网协议中。RoCE的工作原理是在以太网帧内封装RDMA协议数据单元(RDMAPDU),实现了低延迟、高带宽的数据传输。 RRoCE...

    A study of iSCSI extensions for RDMA (iSER)

    iSCSI协议在设计时,要处理TCP协议固有的性能问题,例如数据包的复制和重组缓冲区需求较高,这些在iSCSI早期设计时被认为是影响接受度和部署的主要障碍。为了解决这些问题,iSCSI引入了可选的“标记”功能,以便于...

    全网最全面的RDMA拥塞控制教程

    RDMA在以太网上通常采用RoCEv2(RDMA over Converged Ethernet version 2)协议,该协议基于无连接的UDP,与面向连接的TCP相比, UDP更快且CPU利用率更低。然而,UDP缺乏TCP的可靠性机制,如滑动窗口和确认应答,...

    RDMA&& nvme of fabrics

    NVMe over Fabrics是一种基于RDMA的存储协议,能够将NVMe存储设备连接到RDMA网络上,实现高速的存储访问。 背景: 传统的网络传输模式存在一些缺陷,例如应用层数据需要经过多次copy才能到达网卡缓存,需要CPU参与...

    c语言利用RDMA 实现客户端和服务器端发送接收消息

    RDMA通过InfiniBand或RoCE(RDMA over Converged Ethernet)等高速网络协议工作,允许数据在两个系统之间流动,而无需经过源或目标系统的中央处理器。这使得RDMA特别适合于大数据处理、高性能计算和云计算等场景。 ...

    intel E810 RDMA驱动安装

    本文档详细记录了intel E810 RDMA驱动的安装过程,包括安装前的准备工作、安装RDMA驱动、安装LAN驱动、安装irdma驱动、安装rdma-core库、设置网卡驱动加载模式等步骤。 安装前的准备工作 在安装intel E810 RDMA...

    RDMA iSCSI

    未来工作方向包括提高RDMA技术的可扩展性和可靠性,改进iSCSI协议,提高存储系统的安全性和可靠性等。 RDMA iSCSI技术可以提供高效、低成本的存储解决方案,满足高性能存储应用的需求。随着技术的不断发展和改进,...

    RDMA原理分析、对比和技术实现解析.rar

    第10章 RDMA over TCP(iWARP)协议和工作原理 ..................... 56 10.1 RDMA相关简介........................................... 57 10.2 RDMA工作原理........................................... 59 10.3 ...

Global site tag (gtag.js) - Google Analytics