本公开涉及使用提示的有效数据包重新排序。耦合到主机的外围设备包括网络接口、数据包处理器和数据处理单元(DPU)。数据包处理器经由网络接口从通信网络接收数据包,这些数据包以原始顺序从源发出并以不同于原始顺序的顺序在外围设备被接收。数据包处理器将接收到的数据包拆分为报头和有效载荷,发送有效载荷以存储在主机存储器中,并无有效载荷地发送报头以存储在DPU存储器中,并基于报头产生提示,该提示指示将由DPU应用于报头的处理,用于识别原始顺序。基于提示,DPU通过将由提示指示的处理应用于DPU存储器中的相应报头来识别数据包的原始顺序,并向主机通知原始顺序。并向主机通知原始顺序。并向主机通知原始顺序。
【技术实现步骤摘要】
使用提示的有效数据包重新排序
[0001]这里描述的实施例一般涉及数据通信,特别涉及使用提示进行有效数据包重新排序的方法和系统。
技术介绍
[0002]在各种计算系统中,源设备通过通信网络将数据包发送到目的地设备。源自主机的数据包按某种原始顺序发送,但可能在目的地以不同的顺序接收。基于传输层处理,目的地可以恢复接收到的数据包的原始顺序。
技术实现思路
[0003]本文描述的实施例提供了一种外围设备,其包括网络接口、主机接口、数据包处理器和数据处理单元(DPU)。网络接口通过通信网络传送数据包。主机接口与耦合到外围设备的主机通信。数据包处理器通过通信网络从远程源接收多个数据包,这些数据包以原始顺序从远程源发出,并且以与原始顺序不同的到达顺序在外围设备处被接收。数据包处理器将接收到的数据包拆分为相应的报头和有效载荷,经由主机接口发送有效载荷以存储在主机的主机存储器中,并无有效载荷地发送报头以存储在DPU存储器中,并基于接收到的数据包的报头,产生指示将由DPU应用于DPU存储器中的报头的处理的提示,用于识别多个数据包中的至少一些的原始顺序。DPU从数据包处理器接收提示,通过将由提示指示的处理应用于DPU存储器中的相应报头来识别数据包中的至少一些数据包的原始顺序,并向主机通知原始顺序。
[0004]在一些实施例中,数据包处理器在多个数据包中识别以原始顺序被接收的两个或更多个数据包,并且在所述提示中向所述DPU报告以所述原始顺序被接收的所述两个或更多个数据包的相应标识,该提示指示DPU避免识别已识别的两个或更多个数据包的所述原始顺序。在其它实施例中,DPU向所述主机通知合并的有效载荷,所述合并的有效载荷包括已识别的两个或更多个数据包的所述有效载荷。在其它实施例中,DPU识别以不同于原始顺序的顺序被接收的数据包的原始顺序。
[0005]在实施例中,数据包处理器通过将与分配给在所述主机上运行的管理程序或虚拟机(VM)的地址空间相关联的虚拟地址转换为所述主机存储器中的相应物理地址,来发送所述有效载荷以存储在所述主机存储器中。在另一个实施例中,DPU通过在所述DPU存储器中执行工作队列元素(WQE)来访问所述DPU存储器中一个或更多个报头缓冲区中的所述报头。在又一个实施例中,DPU根据用于主机和远程源之间通信的传输层协议来处理DPU存储器中的报头。在又一实施例中,传输层协议属于包括传输控制协议(TCP)和数据报拥塞控制协议(DCCP)的列表。
[0006]根据本文描述的实施例,还提供了一种用于通信的方法,包括:在通过通信网络调解主机和远程设备之间通信的外围设备中,由数据包处理器通过通信网络从远程源接收多个数据包,所述数据包以原始顺序从远程源发出并以不同于所述原始顺序的到达顺序在所
述外围设备处被接收。所接收的数据包被拆分为相应的报头和有效载荷。有效载荷被发送以存储在主机的主机存储器中,并且报头在无有效载荷的情况下发送以存储在数据处理单元(DPU)的DPU存储器中。基于所接收的数据包的报头,产生提示,该提示指示将由所述DPU应用于所述DPU存储器中的报头的处理,用于识别所述多个数据包中的至少一些数据包的所述原始顺序。来自数据包处理器的提示由DPU接收。通过将由所述提示指示的处理应用于所述DPU存储器中的相应报头来识别数据包中的所述至少一些数据包的所述原始顺序。通知主机原始顺序。
[0007]根据本文描述的实施例,还另外提供了一种用于数据包重新排序的方法,包括:以与数据包从远程源发出的原始顺序不同的顺序,接收发往主机的数据包。数据包的有效载荷被存储在主机的主机存储器中,并且数据包的报头在无有效载荷的情况下存储在数据处理单元(DPU)的DPU存储器中。如由基于所接收的数据包的所述报头产生的提示所指示的,通过处理所述DPU存储器中的所述报头来识别所述数据包的所述原始顺序。通知主机原始顺序。
附图说明
[0008]这些和其它实施例将从其实施例的以下详细描述连同附图被更充分地理解,在附图中:
[0009]图1是根据本文描述的实施例示意性地示出计算机系统的框图,其中提示有助于有效的数据包重新排序;
[0010]图2是根据本文描述的实施例示意性地示出用于使用提示进行有效数据包重新排序的方法的流程图;以及
[0011]图3是根据本文描述的实施例示意性地示出数据包的序列的图,其中一些数据包不需要如提示所指示的重新排序。
具体实施方式
[0012]概述
[0013]本文描述的实施例提供了改进的方法和系统,用于使用提示有效地识别发送的数据包的原始顺序。
[0014]在各种计算系统中,主机通过包括底层传输层协议(诸如传输控制协议(TCP))的通信网络与远程设备进行通信。传输层协议可能需要大量的主机资源,因此有时会卸载到主机外部的另一个处理器。外部处理器可包括例如数据处理单元(DPU),其驻留在例如在主机和通信网络之间调解的外围设备中。外围设备通常包括网络适配器(诸如用于访问通信网络的网络接口控制器(NIC)),以及用于访问主机存储器的存储器访问接口。
[0015]在如上所述的计算系统中,远程设备可以以某种原始顺序向主机发送数据包序列。但是,由于各种原因,数据包可能会以与原始顺序不同的到达顺序在外围设备被接收。例如,不同的数据包可以穿过通信网络中具有不同相应延迟的不同路径。作为另一个示例,由于更高优先级的数据包穿过网络交换机,某些数据包可能在该网络交换机中延迟。
[0016]在一些实施例中,NIC在接收的数据包的报头和有效载荷之间进行拆分,发送有效载荷以存储在主机存储器中,并发送报头以存储在DPU存储器中。原则上,DPU可以使用底层
传输层协议处理报头,包括根据原始顺序对所有数据包进行重新排序。但是,处理整个接收的数据包以恢复其原始顺序而不是仅处理乱序接收的数据包,可能会导致长的延迟、降低接收吞吐量并消耗DPU计算资源。
[0017]用于传输层数据包重新排序的技术是本领域已知的。例如,Eran等人的美国专利申请号17/488,362描述了一种网络接口控制器设备,其包括网络接口、存储器访问接口、数据处理单元和数据包处理单元。网络接口用于连接到数据包数据网络,并通过数据包数据网络接收数据包。存储器访问接口用于与主机设备共享数据。数据包处理电路用于将数据包的数据拆分为相应的报头和相应的有效载荷,将相应的有效载荷存储在主机设备的主机存储器中的相应位置,并将相应报头在无相应有效载荷的情况下存储在数据处理单元存储器中,描述符指示主机存储器中存储相应有效载荷的相应位置。数据处理单元用于处理相应的报头,其中数据包处理电路被配置为在数据处理单元完成对相应报头的处理时,通过存储器访问接口向主机设备发送相应的完成消息。
[0018]在所公开的实施例中,NIC识别以原始顺序接收的接收数据包的子序列,因此不需要重新排序。NIC向DPU生成指示此类子序列的提示,DPU进而根据提示跳过对报告的数据包进行重新排序。
[0019]考虑包括网络接口、网络接本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种外围设备,包括:网络接口,用于通过通信网络传输数据包;主机接口,用于与耦合到所述外围设备的主机通信;数据包处理器,用于:通过所述通信网络从远程源接收多个数据包,其中所述数据包以原始顺序从所述远程源发出并以与所述原始顺序不同的到达顺序在所述外围设备处被接收;将所接收的数据包拆分为相应的报头和有效载荷;经由所述主机接口发送所述有效载荷以存储在所述主机的主机存储器中,并无所述有效载荷地发送所述报头以存储在数据处理单元DPU存储器中;以及基于所接收的数据包的报头,产生指示将由所述DPU应用于所述DPU存储器中的报头的处理的提示,用于识别所述多个数据包中的至少一些数据包的所述原始顺序;以及数据处理单元DPU,用于:从所述数据包处理器接收所述提示;通过将由所述提示指示的所述处理应用于所述DPU存储器中的相应报头,识别所述数据包中的所述至少一些数据包的所述原始顺序;以及向所述主机通知所述原始顺序。2.根据权利要求1所述的外围设备,其中所述数据包处理器用于在所述多个数据包中识别以所述原始顺序被接收的两个或更多个数据包,以及在所述提示中向所述DPU报告以所述原始顺序被接收的所述两个或更多个数据包的相应标识,其中所述提示指示所述DPU避免识别已识别的两个或更多个数据包的所述原始顺序。3.根据权利要求2所述的外围设备,其中所述DPU用于向所述主机通知合并的有效载荷,所述合并的有效载荷包括已识别的两个或更多个数据包的所述有效载荷。4.根据权利要求1所述的外围设备,其中所述DPU用于识别以不同于所述原始顺序的顺序被接收的数据包的所述原始顺序。5.根据权利要求1所述的外围设备,其中所述数据包处理器用于通过将与分配给在所述主机上运行的管理程序或虚拟机VM的地址空间相关联的虚拟地址转换为所述主机存储器中的相应物理地址,来发送所述有效载荷以存储在所述主机存储器中。6.根据权利要求1所述的外围设备,其中所述DPU用于通过在所述DPU存储器中执行工作队列元素WQE来访问所述DPU存储器中一个或更多个报头缓冲区中的所述报头。7.根据权利要求1所述的外围设备,其中所述DPU用于根据用于所述主机与所述远程源之间通信的传输层协议来处理所述DPU存储器中的所述报头。8.根据权利要求7所述的外围设备,其中所述传输层协议属于包括传输控制协议TCP和数据报拥塞控制协议DCCP的列表。9.一种用于通信的方法,包括:在通过通信网络调解主机和远程设备之间通信的外围设备中,由数据包处理器通过所述通信网络从远程源接收多个数据包,其中所述...
【专利技术属性】
技术研发人员:B,
申请(专利权)人:迈络思科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。