技术开发 频道

SQL Server 2008 -“Katmai”功能简介

  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所示。

  图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所示。

  图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数据段乱序也不影响这种操作。

0
相关文章