降低端到端网络报文传输延迟的传输和接收设备制造技术

技术编号:13419713 阅读:30 留言:0更新日期:2016-07-27 20:03
本发明专利技术涉及一种传输设备(110),所述传输设备包括处理器,所述处理器用于:(1)经由对应于一个或多个网络包的缓冲区的主机接口提交多个读取请求消息(Read A、Read B),(a)为每个网络包分配唯一包标识符,(b)为每个读取请求消息计算指示所述读取请求消息的第一完成字节在所述原始网络包内的相对位置的起始字节偏移,(c)将所述唯一包标识符和所述起始字节偏移存储为传输数据库(113)内的条目;(3)在来自所述主机接口的、针对所述所提交的读取请求消息的完成数据(503)到达后,针对每个读取响应消息(CPL A1):(a)使所述读取响应消息(CPL A1)与所述传输数据库(113)的条目相关联并提取所述包标识符,(b)通过以下操作将所述读取响应消息(CPL A1)转变成结构单元:(c)用所述包标识符来标记所述结构单元,(d)用指示所述结构单元在所述相关联网络包内的相对起始字节偏移的字节偏移来标记所述结构单元,其中通过将所述对应读取请求消息的相对起始偏移和所述读取响应消息(CPL A1)在所述读取请求消息的整个一连串完成字节内的位置求和来计算所述字节偏移,(e)如果所述结构单元表示所述网络包的第一个结构单元则用第一标志来标记所述结构单元,以及如果所述结构单元表示所述网络包的最后一个结构单元则用最后标志来标记所述结构单元,(f)如果所述结构单元标记为所述最后标志,则释放所述传输数据库(113)条目,(g)经由结构接口提交所述结构单元。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于传输关于网络包的多个读取请求并且响应于读取请求基于一连串完成包传输结构单元的传输(TX)设备。本专利技术进一步涉及一种用于接收结构单元并且基于结构单元中的净荷和位置信息构建网络包的接收(RX)设备。本专利技术的各方面涉及使在共享物理外壳下经由共享结构互连而处于相同位置的多个服务器互连的现代高速交换系统。互连这些服务器的物理平面或底板可以是PCIexpress或支持基于单元的交换的任何专用结构。在物理平面上运行并使服务器逻辑上互连的联网协议可以是(但不限于)在Layer2以太网、FCoE、RoCE或Infiniband上的标准IP。本专利技术界定一种用以在以纯端到端切入方式跨物理互连的两个主机的存储器子系统之间传递网络包的方法。可以结合基于插口且基于动词两者(例如,RDMA)的各种软件联网栈来应用本专利技术。
技术介绍
最新技术允许经由不必是协议的本地物理层的各种物理接口在多个主机之间实施联网协议,例如以太网或Infiniband。例如,在刀片式服务器或机架式外壳内的以太网可以将PCIExpress或一些设备供应商专用的物理互连用作物理层而不是使用本地802.3MAC和PHY互连。此类系统中的通信模型通常是基于众所周知的send()逻辑运算,即发送消息或数据包等信息的逻辑运算,和receive()逻辑运算,即接收消息或数据包等信息的逻辑运算,所述逻辑运算用于提供和嵌入通信逻辑单元(其是消息或数据包)并分别通过传输端和接收端执行。数据流以send()运算开始,其中应用程序将数据缓冲区发布到主机内核以在结构上传输。使缓冲区穿过内核的传输和路由栈并使其将最终到达用作至结构中的入口点的网络设备(例如,NIC或HBA)的设备驱动程序。例如由于传输和路由栈可以添加其标头作为将缓冲区变为可传输网络包的过程的一部分,所以此时实际包数据可以跨越多个物理缓冲区。设备驱动程序将为设备提供关于编写网络包的不同缓冲区的位置的指针。配备有其自身的DMA引擎的设备接着将读取来自主机存储器的不同缓冲区、编写网络包并跨网络结构发送所述网络包。所述包将穿过所述结构并且将最终到达目的主机的设备。目的设备将使用其DMA引擎以借助于receive()运算将包写入到通过软件栈预分配的主机缓冲区中。当DMA完成时,设备驱动程序将接收对应指示并且将包向上转发到相关联网栈。虽然现代结构互连尝试支持包跨此类结构互连的切入传递,但是对实际端到端切入的支持受主机的行为约束。本专利技术将允许使用“纯”切入方法将包从源主机处的源缓冲区发送到目的主机处的目的缓冲区中,所述“纯”切入方法允许数据到结构中的立即注入,即使所述数据已经乱序地到达或与来自源主机的存储器的其它包的数据交错。数据包应从源主机的存储器主机位置发送到目的主机处的存储器主机位置中。每个主机具有附接“设备”并且所有设备连接到互连结构。每个设备负责从主机存储器读取包并将其发送到网络结构中以及从网络结构接收包并将其放入主机的存储器的操作。设备通过PCIExpress接口连接到其主机的存储器子系统。源处的设备通过以下操作来读取包:向跨越包的多个缓冲区提交PCIe读取请求、在对应读取响应上接收到净荷时构建包并且在互连结构上发送包。高速设备常见的做法是在PCIe结构上提交多个未完成的读取请求以便允许下游PCIe链路的饱和。PCIe规范允许来自同一源的多个未完成的读取请求的完成数据相对于原始读取请求的提交顺序乱序地到达。此外,PCIe规范允许PCIe读取请求的完成者在多个完成包上分解读取响应。这两种缓和形成可以是如从图5示出两个读取请求“ReadA”和“ReadB”501的情况可见的乱序和交错两者的完成流。例如,如果在PCIe总线上一个接一个地提交读取请求A、B501,那么对应读取完成503可以以下顺序到达(从左开始):B1、A1、A2、B2、B3、A3。标准设备接口将需要存储并转发完成数据503,随后将其编写到包505中并且将包505提交到结构中。出于两个主要原因典型设备会需要此缓冲:a)如果A、B是考虑单个网络包的缓冲区的读取请求,那么需要数据重排序,因为应以保持包的原始净荷顺序的顺序将缓冲区编写到包中,b)如果A、B是其中每个请求表示一个单独的网络包的读取请求,那么需要重排序,因为无法在结构上以交错的方式发送不同包(然而,应注意,在我们的实例中,针对这3个包的读取响应是通过主机交错的)。在图5中,标号501描述读取请求消息,标号503描述读取完成消息并且标号505描述结构消息包。刚刚描述的存储和转发缓冲引入了延迟Δt,其造成包在结构中路由的端到端时延。
技术实现思路
本专利技术的目的是提供一种用于减少网络包的端到端传递中的延迟的技术。此目的通过独立权利要求的特征得以实现。进一步的实施形式通过从属权利要求、说明书以及图式清楚可见。本专利技术是基于以下发现:通过使设备的TX侧用唯一包标识符并且用字节偏移参数为每个单元贴标签可以实现用于减少网络包的端到端传递中的延迟的技术。所述贴标签允许目的设备的RX侧通过直接将单元放入对应主机缓冲区来实时地执行将单元组合成包。可以针对多个包并行地进行。这样,在或源设备或目的设备中不需要存储和转发缓冲,并且实现了最小可能的端到端切入时延。因此,本专利技术提供一种用于设备的技术,所述设备直接连接到基于单元的切换结构以通过以下操作获得纯切入传递:传输网络包作为在所述结构上承载的一连串单元,使得属于同一网络包的单元能够以任何的任意顺序注入,包含它们从主机的存储器到达的实际顺序(其可以不同于包的原始字节序),并且属于不同网络包的单元可以在它们注入到结构中时彼此交错(再次,同时保持它们从主机存储器到达的原始顺序)。接收侧将能够将到达单元的数据立即放入目的主机存储器内的正确位置,即使属于同一包的单元已经乱序地到达或与其它包的数据交错。为了详细描述本专利技术,将使用以下术语、缩写和符号:PCIe,PCIexpress:根据PCIe规范的快捷外围部件互连标准。TX:传输。RX:接收。IP:因特网协议。FCoE:以太网光纤通道。DMA:直接内存访问。RDMA:基于融合以太网的远程直接内存访问。RoCE:基于融合以太网的远程直接内存访问。Infiniband:在高性能计算中使用的切换结构通信链路。802.3MAC:用于以太网协议的IEEE规范。本文档来自技高网
...

【技术保护点】
一种传输设备(110),其特征在于,包括:处理器,所述处理器用于经由对应于一个或多个网络包的缓冲区的主机接口提交多个读取请求消息(Read A、Read B),为每个网络包分配唯一包标识符,为每个读取请求消息计算指示所述读取请求消息的第一完成字节在所述原始网络包内的相对位置的起始字节偏移,将所述唯一包标识符和所述起始字节偏移存储为传输数据库(113)内的条目;在来自所述主机接口的、针对所述所提交的读取请求消息的完成数据到达后,针对每个读取响应消息(CPL A1),所述处理器进一步用于:使所述读取响应消息(CPL A1)与所述传输数据库(113)的条目相关联并提取所述包标识符,通过以下操作将所述读取响应消息(CPL A1)转变成结构单元:用所述包标识符来标记所述结构单元,用指示所述结构单元在所述相关联网络包内的相对起始字节偏移的字节偏移来标记所述结构单元,其中通过将所述对应读取请求消息的相对起始偏移和所述读取响应消息(CPL A1)在所述读取请求消息的整个一连串完成字节内的位置求和来计算所述字节偏移,如果所述结构单元表示所述网络包的第一个结构单元则用第一标志来标记所述结构单元,以及如果所述结构单元表示所述网络包的最后一个结构单元则用最后标志来标记所述结构单元,如果所述结构单元标记为所述最后标志,则释放所述传输数据库(113)条目,经由结构接口提交所述结构单元。...

【技术特征摘要】
【国外来华专利技术】1.一种传输设备(110),其特征在于,包括:
处理器,所述处理器用于经由对应于一个或多个网络包的缓冲区的主
机接口提交多个读取请求消息(ReadA、ReadB),
为每个网络包分配唯一包标识符,
为每个读取请求消息计算指示所述读取请求消息的第一完成字节在
所述原始网络包内的相对位置的起始字节偏移,
将所述唯一包标识符和所述起始字节偏移存储为传输数据库(113)
内的条目;
在来自所述主机接口的、针对所述所提交的读取请求消息的完成数据
到达后,针对每个读取响应消息(CPLA1),所述处理器进一步用于:
使所述读取响应消息(CPLA1)与所述传输数据库(113)的条目相
关联并提取所述包标识符,
通过以下操作将所述读取响应消息(CPLA1)转变成结构单元:
用所述包标识符来标记所述结构单元,
用指示所述结构单元在所述相关联网络包内的相对起始字节偏移的
字节偏移来标记所述结构单元,其中通过将所述对应读取请求消息的相对
起始偏移和所述读取响应消息(CPLA1)在所述读取请求消息的整个一连
串完成字节内的位置求和来计算所述字节偏移,
如果所述结构单元表示所述网络包的第一个结构单元则用第一标志
来标记所述结构单元,以及如果所述结构单元表示所述网络包的最后一个
结构单元则用最后标志来标记所述结构单元,
如果所述结构单元标记为所述最后标志,则释放所述传输数据库
(113)条目,
经由结构接口提交所述结构单元。
2.根据权利要求1所述的传输设备(110),其特征在于,属于不同读

\t取请求消息的读取响应消息(CPLA1)相对于读取请求的提交顺序乱序地
到达。
3.根据权利要求1或权利要求2所述的传输设备(110),其特征在于,
用于在处理读取响应消息之前经由所述主机接口提交多个读取请求消息
(ReadA、ReadB)。
4.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
以多个读取响应消息来响应单个读取请求消息。
5.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
不同读取请求消息的所述读取响应消息在到达时彼此交错。
6.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
所述主机接口包括快捷外围部件互连标准接口或快速路径互连接口。
7.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
所述读取请求消息包括PCIe读取请求并且所述读取响应消息包括完成事
务层包。
8.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
所述结构单元包括用于存储净荷数据的净荷字段和用于存储配置数据的
标头字段;其中所述包标识符设置在所述结构单元的所述标头字段中并且
其中所述字节偏移设置在所述结构单元的所述标头字段中。
9.根据以上权利要求中的一项所述的传输设备(110),其特征在于,
包括:
DMA引擎,其用于处理所述多个读取请求消息和所述读取响应消息
的提交;以及
开放式传输数据库(113),其用于存储所述唯一包标识符和所述起始
字节偏移。
10.一种传输系统,其特征在于,包括:
根据权利要求1到9中的一项所述的TX设备;以及
通过所述主机接口耦合到所述TX设备的主机存储器,其中所述主机
存储器用于处理从所述TX设备提交的所述多个读取请求消息(ReadA、
ReadB)并且用读取响应消息对其进行响应。
11.一种接收设备(130),其特征在于,包括处理器,所述处理器用于
在接收到结构单元(CellA1)后执行以下操作:
如果所述结构单元(CellA1)标记为第一标志,则:
从所述结构单元中提取包标识符,
根据主机存储器的RX环形缓冲区分配新RX缓冲区从而获得RX缓
冲区地址,
通过将所述包标识符和所述RX缓冲区地址增加为重组数据库中的条
目来使所述包标识符与所述RX缓冲区地址相关联,
将所述结构单元的净荷写入到主机存储器地址,所述主机存储器地址
对应于:所述RX缓冲区地址增加从所述结构单元提取的字节偏移;
如果所述结构单元(CellA1)不是标记为第一标志,则:
从所述结构单元中提取包标识...

【专利技术属性】
技术研发人员:尤瓦·艾拉德亚历克斯·塔勒拉米·茨卡里埃亚历克斯·乌曼斯基
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1