CN117560433A - Dpu中报文转发保序方法、装置、电子设备和存储介质 - Google Patents
Dpu中报文转发保序方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117560433A CN117560433A CN202311508899.3A CN202311508899A CN117560433A CN 117560433 A CN117560433 A CN 117560433A CN 202311508899 A CN202311508899 A CN 202311508899A CN 117560433 A CN117560433 A CN 117560433A
- Authority
- CN
- China
- Prior art keywords
- message
- preserving
- order
- queue
- dequeued
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 11
- 238000007781 pre-processing Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004321 preservation Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种DPU中报文转发保序方法、装置、电子设备和存储介质。所述DPU中报文转发保序方法包括:接收上游虚拟节点输入的待入队报文序列;基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文;基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列;将所述已出队报文序列转发到下游虚拟节点。本发明实施例的方案在保证有效报文次序的情况下提高了报文转发效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种DPU中报文转发保序方法、装置、电子设备和存储介质。
背景技术
随着云网络技术的快速发展,DPU(Data Processing Unit,数据处理单元)作为一种全新的网卡设备,能够处理云环境内的大规模数据类任务,能够为CPU减负,在提高系统整体性能的同时降低数据处理延迟。因此,DPU将逐渐替换传统网卡,成为云计算环境中主机上搭载的网络设备。
在诸如云计算系统等分布式系统中,业务报文在端到端传输时需网络设备严格保序,即,同一业务流进入网络设备与离开网络设备的顺序应保证严格一致。因此,DPU作为全新的网卡设备,在处理业务报文时需要保证同一业务流中的业务报文不能乱序。
在传统技术中,DPU在执行报文转发时,对各个业务报文排序标记,采用诸如多个处理核心构成的核集群对各个业务报文进行转发预处理,为了避免各个处理核心执行并行处理时所带来的报文乱序的情况,通过具有先进先出的保序队列,基于业务报文的排序标记,将处理后的业务报文调度出队。
然而,如果正在保序队列中排序的部分业务报文处理时间比较长时,会导致非业务报文或者其他处理耗时较短的业务流报文的等待的情况,从而导致DPU的整体转发效率较低。
发明内容
有鉴于此,本发明实施例提供一种DPU中报文转发保序方法、装置、电子设备和存储介质,以至少部分解决上述问题。
根据本发明实施例的第一方面,提供了一种DPU中报文转发保序方法,所述DPU中报文转发保序方法包括:接收上游虚拟节点输入的待入队报文序列;基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,所述多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文;基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列;将所述已出队报文序列转发到下游虚拟节点。
在本发明的另一实现方式中,所述多个保序队列包括第一保序队列和第二保序队列;所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,包括:将所述待入队报文序列中的具有第一报文类型的报文和具有第二报文类型的报文分别调度到所述第一保序队列和所述第二保序队列中,其中,所述第一报文类型对应的转发预处理时长与所述第二报文类型对应的转发预处理时长不同,所述第一报文类型和所述第二报文类型为业务报文、协议报文和透传报文中的不同报文类型。
在本发明的另一实现方式中,所述多个保序队列包括至少一个业务报文队列和至少一个非业务报文队列,所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,包括:在所述待入队报文序列中的当前报文为业务报文时,解析所述当前报文的特征信息;对所述特征信息的特征值进行哈希计算,得到所述特征值对应的哈希值;将所述当前报文调度到所述多个保序队列中哈希值范围包含所述哈希值对应的业务报文队列中。
在本发明的另一实现方式中,所述至少一个业务报文队列为多个业务报文队列,所述多个业务报文队列各自的哈希值范围彼此不同。
在本发明的另一实现方式中,所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,还包括:在所述待入队报文序列中的当前报文为协议报文时,将所述当前报文调度到非业务报文队列中。
在本发明的另一实现方式中,所述基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列,包括:基于轮询规则,确定所述多个保序队列中的当前轮询队列;如果所述当前轮询队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;基于所述轮询规则,将下一轮询队列更新为所述当前轮询队列。
在本发明的另一实现方式中,所述基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列,包括:确定所述多个保序队列中具有目标优先级的当前队列;如果所述当前队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;将优先级小于所述目标优先级的下一队列更新为所述当前队列。
根据本发明实施例的第二方面,提供了一种执行DPU中报文转发保序方法的装置,所述装置包括:接收单元,接收上游虚拟节点输入的待入队报文序列;第一调度单元,基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,所述多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文;第二调度单元,基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列;发送单元,将所述已出队报文序列转发到下游虚拟节点。
根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述方法对应的操作。
根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
在本发明实施例的方案中,每个保序队列经由至少一个处理单元独立地进行转发预处理得到待出队报文,实现了报文的高效并行处理,进而有利于提高报文转发效率,此外,基于每个保序队列对报文进行处理过程符合保序队列的队列规则,使待出队报文在已出队报文序列中的排序也符合保序队列的队列规则,因此,在保证了有效报文次序的情况下提高了报文转发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据相关技术的报文转发过程的示意性框图。
图2为根据本发明的一些实施例的配置有DPU的计算节点配置的示意性框图。
图3为根据本发明的另一些实施例的DPU中报文转发保序方法的步骤流程图。
图4为图3实施例的保持队列的配置方式的示意图。
图5为根据本发明的另一些实施例的执行DPU中报文转发保序方法的装置的示意性结构框图。
图6为根据本发明的另一实施例的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
图1为根据相关技术的报文转发过程的示意性框图。如图1所示,DPU通过三级处理阶段执行报文转发。第一级为报文分发模块,第二级为报文处理模块,第三级为流量管理模块。
报文分发模块接收包括协议报文、透传(passthrough)报文、业务报文等报文的报文序列,将每个报文分配排序标记pkt_id,并且将各种报文分发到第二级的报文处理模块中。具体地,在第一级的报文分发模块会将各种报文分发给第二级的核集群时,通常可采用轮询、随机、低负载优先等方式执行分发。
报文处理模块配置有多个处理核心组成的核集群(core cluster)。应理解,核集群由于具有多个处理核心,至少一个处理核心可以被划分成独立执行计算的并行计算单元,使核集群能够增加并行处理能力,提高报文处理吞吐效率。将各种报文调度到处理核心进行并行报文处理,同一业务流报文可能会分发到核集群中的多个核心处理,会导致同一业务流的报文转发有乱序的可能,因此,针对核集群维护一个保序队列,根据报文的排序标记pkt_id对先进入核集群的报文先调度出队,如果先进入的报文未处理完成而后进入的报文已处理完成,则后进入的已处理完成的报文等待先进入的报文处理完成调度出队后再出队。流量管理模块根据当前网络流量情况对出队的报文进行转发。
由于核集群只对应一个保序队列,在不同的业务报文流被分发到同一个核集群的情况下,或者,在协议报文、透传报文与业务报文被分发到同一个核集群的情况下,会出现不同的业务报文流之间相互影响,或者协议报文与透传报文受处理耗时较多的业务报文影响无法及时调度出队的情况,在这种情况下,会导致报文传输时延增大而引发降低传输速率的重传机制,甚至会导致业务中断或者设备重启等,从而导致DPU的整体转发效率较低。
下面结合图2详细描述根据本发明的一些实施例的配置有DPU的计算节点配置。如图2所示,计算节点配置可以包括DPU(Data Processing Unit,DPU)、以及作为宿主机的服务器主机。宿主机中可以包括多个虚拟机,每个虚拟机连接一个虚拟网卡,作为虚拟节点。图2示出了包括虚拟机1和虚拟机2的例子,其中,虚拟机1连接虚拟网卡1,虚拟机2连接虚拟网卡2。应理解,DPU可以搭载到宿主机上,以代替常规网卡。
进一步地,DPU可以包括:硬件转发模块和虚拟交换机,虚拟交换机中包括软件转发模块。硬件转发模块是DPU中硬件实现的虚拟网络转发引擎,该虚拟网络转发引擎连接外部的物理网络,以实现物理网络中的报文转发。外部的物理网络的网络流量通过DPU进出各个虚拟机。硬件转发模块还连接到虚拟网卡以及DPU中运行的虚拟交换机,硬件转发模块提供了虚拟网卡用做虚拟机的网卡,各个虚拟机发出的网络流量经过虚拟网卡、硬件转发模块进入宿主机外部的物理网络。
进一步地,虚拟交换机运行在部署在DPU上的片上系统(system on chip,SoC)中,虚拟交换机中的软件转发模块用于接收网络控制器(未示出)下发的路径转发规则,软件转发模块中的规则能够下发到硬件转发模块上,从而使硬件转发模块能够在虚拟网络执行报文的转发。也就是说,软件转发模块中包含着硬件转发模块中的路径转发规则。例如,在DPU启动时,硬件转发模块的路径转发规则为空,软件转发模块存储有网络控制器下发的完整路径转发规则,硬件转发模块中的路径转发规则是软件转发模块中的路径转发规则的一个子集,硬件转发模块所需要的路径转发规则能够从软件转发模块下发到硬件转发模块中。
进一步地,将结合图3来详细描述本发明的另一些实施例的DPU中报文转发保序方法。例如,图3所示的DPU中报文转发保序方法可以应用于不同虚拟节点之间并且由如图2所示的DPU执行,具体地,DPU中报文转发保序方法包括:
S310:接收上游虚拟节点输入的待入队报文序列。
应理解,文中的上游虚拟节点和下游虚拟节点为针对转发操作而言上游和下游。上游虚拟节点和下游虚拟节点可以为DPU所在的虚拟网络中的任意两个节点。例如,上游虚拟节点和下游虚拟节点均可以为搭载有DPU的宿主机中配置的虚拟机节点,例如,虚拟机节点可以通过其虚拟网卡输入到DPU,也可以通过外部的物理网络输入到DPU。
S320:基于入队调度规则,将待入队报文序列中的各种报文调度到多个保序队列中,其中,多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文。
应理解,文中的保序队列为先入先出队列,即,至少一个处理单元基于遵循先入先出规则的队列算法对保序队列中的各种报文进行处理。各个待出队报文的次序与这些报文在加入到对应的保序队列时的次序一致。
还应理解,多个保序队列是指每个保序队列的先入先出规则不受到其他保序队列的影响,采用至少一个处理单元基于每个保序队列的转发预处理与其他处理单元基于对应保序队列的转发预处理也彼此独立地执行。
还应理解,处理单元可以形成为DPU中配置的逻辑处理核心或实体的处理核心。各个处理单元整体上可以形成集群。
还应理解,转发预处理的过程和时延可以取决于报文的类型而不同。具体地,业务报文表征应用层的数据,通常是经过特定协议封装的高层数据。DPU在接收到业务报文后,需要进行诸如解析、验证和应用特定的优化算法等处理,这些处理可能涉及到较多的计算和处理步骤,业务报文的转发预处理时延通常较长。协议报文表征网络协议栈中的数据,通常是较底层的网络数据包。DPU在处理协议报文时,主要需要进行诸如解析、转发和路由等网络协议操作,协议报文的转发预处理时延通常较短。进一步地,透传报文表征完全绕过DPU处理的数据,直接转发给目标地址,透传报文不需要经过DPU的过多处理逻辑,透传报文的转发预处理时延通常最短。
S330:基于出队调度规则,对多个保序队列的待出队报文执行出队调度,得到已出队报文序列。
应理解,在将待出队报文执行出队调度加入到已出队报文序列中时,来自同一保序队列的待出队报文在已出队报文序列的次序与在保序队列中的次序相同,从而保证了报文出队的有序性。
S340:将已出队报文序列转发到下游虚拟节点。
在本发明实施例的方案中,每个保序队列经由至少一个处理单元独立地进行转发预处理得到待出队报文,实现了报文的高效并行处理,进而有利于提高报文转发效率,此外,基于每个保序队列对报文进行处理过程符合保序队列的队列规则,使待出队报文在已出队报文序列中的排序也符合保序队列的队列规则,因此,在保证了有效报文次序的情况下提高了报文转发效率。
进一步地,在图4所示,报文入队模块基于入队调度规则,将待入队报文序列中的各种报文调度到多个保序队列中。在报文处理模块中,可以通过上述的各个处理单元整体上所形成的集群(例如,核集群)执行基于多个保序队列的队列管理。例如,每个保序队列采用一个处理核心(处理单元的示例)或多个处理核心进行处理,应理解,本发明各个实施例的各个保序队列与各个处理核心之间的关系不限定,可以按照实际的需求预先构建。例如,图4的核集群包括处理核心1-N,核集群中的各个处理核心采用队列管理中的保序队列1-M进行处理,也就是说,处理核心1-N会使用保序队列1-M,但是在本示例中,处理核心1-N与保序队列1-M之间的对应关系不做限定。报文出队模块基于出队调度规则将各个保序队列的待出队报文加入到已出队报文序列中。
在另一些示例中,多个保序队列包括第一保序队列和第二保序队列。应理解,第一保序队列和第二保序队列可以为多个保序队列中的任意两个保序队列。
作为基于入队调度规则,将待入队报文序列中的各种报文调度到多个保序队列中的一个示例,可以将待入队报文序列中的具有第一报文类型的报文和具有第二报文类型的报文分别调度到第一保序队列和第二保序队列中。在这种情况下,第一报文类型对应的转发预处理时长与第二报文类型对应的转发预处理时长不同,第一报文类型和第二报文类型为业务报文、协议报文和透传报文中的不同报文类型。例如,第一报文类型对应的转发预处理时长大于第二报文类型对应的转发预处理时长。例如,协议报文的转发预处理时长小于业务报文的转发预处理时长,透传报文的转发预处理时长小于协议报文的转发预处理时长。在这种情况下,转发预处理时长较小的报文能够得到及时处理,进而得到及时的出队调度,进一步提高了整体的转发效率。
在另一些示例中,入队调度规则指示哈希算法形成的规则,哈希算法为基于哈希函数的键(Key)值(Value)对的计算,使得不同的键能够往往对应有限值域中的不同的哈希值。通过将不同的报文的特征信息编码成特征值,将特征值作为键进行哈希计算,得到这个报文的哈希值,如果这个哈希值对应于特定保序队列的哈希值范围,则可以将这个报文加入到这个保序队列中。
不失一般性地,多个保序队列包括至少一个业务报文队列和至少一个非业务报文队列,相应地,作为基于入队调度规则,将待入队报文序列中的各种报文调度到多个保序队列中的示例,可以在待入队报文序列中的当前报文为业务报文时,解析当前报文的特征信息,然后,对特征信息的特征值进行哈希计算,得到特征值对应的哈希值,然后,将当前报文调度到多个保序队列中哈希值范围包含哈希值对应的业务报文队列中。通过哈希算法,能够高效地执行报文的入队调度,同时哈希值域的有限性使得设置各个保序队列的哈希值范围更加便捷。
在一个具体示例中,至少一个业务报文队列为多个业务报文队列,多个业务报文队列各自的哈希值范围彼此不同,来自不同的业务流的报文具有不同的特征值,从而能够将不同的业务数据流调度到不同的业务报文队列中。
具体地,报文的特征信息可以是报文的源地址信息、目标地址信息、报文类型等。进一步地,解析待入队报文序列中的当前报文的特征信息,包括:确定待入队报文序列中的当前报文的报文类型,然后,在当前报文的报文类型为业务报文时,解析当前报文的特征信息。也就是说,可以对业务报文执行哈希算法形成的规则,这是因为,业务报文的转发预处理过程类似,而且业务报文的报文格式类似,有利于将各种报文的特征值的编码效率。
更进一步地,基于入队调度规则,将待入队报文序列中的各种报文调度到多个保序队列中,还包括:在待入队报文序列中的当前报文为协议报文时,将当前报文调度到非业务报文队列中,从而能够将转发预处理时长要求比较高的协议报文指定调度到非业务报文队列。
在另一些示例中,可以将多个保序队列分组,每组保序队列包括至少一个保序队列。可以根据协议报文等优先级较高的报文类型,将报文加入到一组保序队列,根据业务报文等报文类型,将报文加入到另一租保序队列中。在每组保序队列中,可以进一步采用哈希算法或随机分配算法,进一步将报文加入到特定保序队列中。
综上,可以采用单一的调度算法或结合不同的入队调度算法形成入队调度规则。下面将结合各个实施例进一步描述出队调度算法。
进一步地,作为出队调度的一些示例,可以基于轮询规则,确定多个保序队列中的当前轮询队列,然后,如果当前轮询队列中存在待出队报文,则将待出队报文加入到已出队报文序列中,然后,基于轮询规则,将下一轮询队列更新为当前轮询队列。由此,可以将各个保序队列中的待出队报文及时且高效地加入到已出队报文序列中,实现了各种报文的出队调度。
例如,在图4的示例中,可以在保序队列1-M之间执行轮询调度(例如,从1到M的轮询规则或者其他次序的轮询规则),每个轮询周期中,轮询访问每个保序队列一次。如果当前轮询队列中存在待出队报文,则将待出队报文加入到已出队报文序列中,并且更新到下一轮询队列。可替代地,如果当前轮询队列中不存在待出队报文,则直接更新到下一轮询队列。
进一步地,如果当前轮询队列在当前轮询周期中生成了多个待出队报文,可以在当前轮询周期中,将一个待出队报文加入到已出队报文序列中,并且更新到下一轮询队列,也就是说,剩余的待出队报文可以在下次轮询周期中进行访问,从而保证了每个保序队列的均衡访问。可替代地,可以将多个待出队报文直接加入到已出队报文序列中,并且更新到下一轮询队列,从而实现了各种报文的出队调度的及时性。
作为出队调度的另一些示例,可以确定多个保序队列中具有目标优先级的当前队列,然后,如果当前队列中存在待出队报文,则将待出队报文加入到已出队报文序列中,然后,将优先级小于目标优先级的下一队列更新为当前队列,从而更高效地进行了各种报文的出队调度。也就是说,在本示例中,优先级较高的待出队报文可以更加及时地被加入到已出队报文序列,从而得到更及时的转发,有利于提高网络的整体转发效率。例如,在协议报文和业务报文的情况下,协议报文的优先级可以被设定为高于业务报文的优先级,协议报文被加入到一保序队列中执行处理,业务报文被加入到另一保序队列中进行处理,在出队调度时可以先访问协议报文对应的保序队列,查看是否存在处理后的待出队报文,如果存在,则直接将其加入到已出队报文序列中,如果不存在,再查看业务报文对应的保序队列中是否存在处理后的待出队报文。
在另一些示例中,可以将多个保序队列分组,每组保序队列包括至少一个保序队列。相应地,在出队调度时,根据出队优先级先判断出队优先级较高的一组保序队列中的情况,然后,判断出队优先级较低的一组保序队列中的情况。在每组保序队列中,可以采用轮询算法、随机算法或优先级算法执行具体的出队调度,得到已出队报文序列。
下面将结合图5来详细描述根据本发明的另一些实施例的执行DPU中报文转发保序方法的装置,该装置包括:
接收单元510,接收上游虚拟节点输入的待入队报文序列。
第一调度单元520,基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文。
第二调度单元530,基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列。
发送单元540,将所述已出队报文序列转发到下游虚拟节点。
在本发明实施例的方案中,每个保序队列经由至少一个处理单元独立地进行转发预处理得到待出队报文,实现了报文的高效并行处理,进而有利于提高报文转发效率,此外,基于每个保序队列对报文进行处理过程符合保序队列的队列规则,使待出队报文在已出队报文序列中的排序也符合保序队列的队列规则,因此,在保证了有效报文次序的情况下提高了报文转发效率。
在另一些示例中,所述多个保序队列包括第一保序队列和第二保序队列。第一调度单元具体用于:将所述待入队报文序列中的具有第一报文类型的报文和具有第二报文类型的报文分别调度到所述第一保序队列和所述第二保序队列中。其中,所述第一报文类型对应的转发预处理时长与所述第二报文类型对应的转发预处理时长不同,所述第一报文类型和所述第二报文类型为业务报文、协议报文和透传报文中的不同报文类型。
在另一些示例中,多个保序队列包括至少一个业务报文队列和至少一个非业务报文队列。第一调度单元具体用于:在所述待入队报文序列中的当前报文为业务报文时,解析所述当前报文的特征信息;对所述特征信息的特征值进行哈希计算,得到所述特征值对应的哈希值;将所述当前报文调度到所述多个保序队列中哈希值范围包含所述哈希值对应的业务报文队列中。
在另一些示例中,所述至少一个业务报文队列为多个业务报文队列,所述多个业务报文队列各自的哈希值范围彼此不同。
在另一些示例中,第一调度单元还用于:在所述待入队报文序列中的当前报文为协议报文时,将所述当前报文调度到非业务报文队列中。
在另一些示例中,第二调度单元具体用于:基于轮询规则,确定所述多个保序队列中的当前轮询队列;如果所述当前轮询队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;基于所述轮询规则,将下一轮询队列更新为所述当前轮询队列。
在另一些示例中,第二调度单元具体用于:确定所述多个保序队列中具有目标优先级的当前队列;如果所述当前队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;将优先级小于所述目标优先级的下一队列更新为所述当前队列。
本实施例的DPU用于实现前述各种报文转发保序方法的实施例,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的处理收置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
参照图6,示出了根据本发明的另一实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:用于执行程序610的处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
处理器、通信接口、以及存储器通过通信总线完成相互间的通信。
通信接口,用于与其它电子设备或服务器进行通信。
处理器,用于执行程序,具体可以执行上述方法实施例中的相关步骤。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序可包括多条计算机指令,程序具体可以通过多条计算机指令使得处理器执行前述多个方法实施例中任一实施例所描述的报文转发保序方法对应的操作。
程序中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述多个方法实施例中任一实施例所描述的方法。该计算机存储介质包括但不限于:只读光盘(Compact Disc Read-Only Memory,CD-ROM)、随机存储器(RandomAccess Memory,RAM)、软盘、硬盘或磁光盘等。
本发明实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一实施例的报文转发保序方法对应的操作。
此外,需要说明的是,本发明实施例所涉及到的与用户有关的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于对模型进行训练的样本数据、用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关规定和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD-ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编辑门阵列(Field Programmable Gate Array,FPGA))的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,随机存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种DPU中报文转发保序方法,其特征在于,包括:
接收上游虚拟节点输入的待入队报文序列;
基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,所述多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文;
基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列;
将所述已出队报文序列转发到下游虚拟节点。
2.根据权利要求1所述的方法,其特征在于,所述多个保序队列包括第一保序队列和第二保序队列;
所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,包括:
将所述待入队报文序列中的具有第一报文类型的报文和具有第二报文类型的报文分别调度到所述第一保序队列和所述第二保序队列中,
其中,所述第一报文类型对应的转发预处理时长与所述第二报文类型对应的转发预处理时长不同,所述第一报文类型和所述第二报文类型为业务报文、协议报文和透传报文中的不同报文类型。
3.根据权利要求1所述的方法,其特征在于,所述多个保序队列包括至少一个业务报文队列和至少一个非业务报文队列;
所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,包括:
在所述待入队报文序列中的当前报文为业务报文时,解析所述当前报文的特征信息;
对所述特征信息的特征值进行哈希计算,得到所述特征值对应的哈希值;
将所述当前报文调度到所述多个保序队列中哈希值范围包含所述哈希值对应的业务报文队列中。
4.根据权利要求3所述的方法,其特征在于,所述至少一个业务报文队列为多个业务报文队列,所述多个业务报文队列各自的哈希值范围彼此不同。
5.根据权利要求3所述的方法,其特征在于,所述基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,还包括:
在所述待入队报文序列中的当前报文为协议报文时,将所述当前报文调度到非业务报文队列中。
6.根据权利要求1所述的方法,其特征在于,所述基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列,包括:
基于轮询规则,确定所述多个保序队列中的当前轮询队列;
如果所述当前轮询队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;
基于所述轮询规则,将下一轮询队列更新为所述当前轮询队列。
7.根据权利要求1所述的方法,其特征在于,所述基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列,包括:
确定所述多个保序队列中具有目标优先级的当前队列;
如果所述当前队列中存在待出队报文,则将所述待出队报文加入到所述已出队报文序列中;
将优先级小于所述目标优先级的下一队列更新为所述当前队列。
8.一种执行DPU中报文转发保序方法的装置,其特征在于,包括:
接收单元,接收上游虚拟节点输入的待入队报文序列;
第一调度单元,基于入队调度规则,将所述待入队报文序列中的各种报文调度到多个保序队列中,其中,所述多个保序队列的数量取决于DPU的硬件资源与器件尺寸,每个保序队列的已入队报文经由至少一个处理单元独立地进行转发预处理得到待出队报文;
第二调度单元,基于出队调度规则,对所述多个保序队列的待出队报文执行出队调度,得到已出队报文序列;
发送单元,将所述已出队报文序列转发到下游虚拟节点。
9.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1-7中任一项所述的方法对应的操作。
10.一种计算机存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311508899.3A CN117560433A (zh) | 2023-11-13 | 2023-11-13 | Dpu中报文转发保序方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311508899.3A CN117560433A (zh) | 2023-11-13 | 2023-11-13 | Dpu中报文转发保序方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117560433A true CN117560433A (zh) | 2024-02-13 |
Family
ID=89817900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311508899.3A Pending CN117560433A (zh) | 2023-11-13 | 2023-11-13 | Dpu中报文转发保序方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117560433A (zh) |
-
2023
- 2023-11-13 CN CN202311508899.3A patent/CN117560433A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10097378B2 (en) | Efficient TCAM resource sharing | |
US7876763B2 (en) | Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes | |
US8837503B2 (en) | Parallel processing using multi-core processor | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
KR101072078B1 (ko) | 멀티코어 통신 처리를 위한 시스템 및 방법 | |
US7529224B2 (en) | Scheduler, network processor, and methods for weighted best effort scheduling | |
US20190044879A1 (en) | Technologies for reordering network packets on egress | |
US9639403B2 (en) | Receive-side scaling in a computer system using sub-queues assigned to processing cores | |
US11258726B2 (en) | Low latency packet switch architecture | |
US9031077B2 (en) | Systems, methods, and computer program products providing a data unit sequencing queue | |
Hua et al. | Scheduling heterogeneous flows with delay-aware deduplication for avionics applications | |
US7293158B2 (en) | Systems and methods for implementing counters in a network processor with cost effective memory | |
CN105159779B (zh) | 提高多核cpu数据处理性能的方法和系统 | |
CN109684269A (zh) | 一种pcie交换芯片内核及工作方法 | |
CN101374109B (zh) | 一种报文调度方法和调度装置 | |
CN106850440B (zh) | 一种面向多地址共享数据路由包的路由器、路由方法及其芯片 | |
US7474662B2 (en) | Systems and methods for rate-limited weighted best effort scheduling | |
CN116633875B (zh) | 一种多业务耦合并发通信的时间保序调度方法 | |
CN109617833B (zh) | 多线程用户态网络协议栈系统的nat数据审计方法和系统 | |
CN117560433A (zh) | Dpu中报文转发保序方法、装置、电子设备和存储介质 | |
CN113553279B (zh) | 一种rdma通信加速集合通信的方法及系统 | |
CN112019589A (zh) | 一种多层级负载均衡数据包处理方法 | |
US7603539B2 (en) | Systems and methods for multi-frame control blocks | |
JP5359357B2 (ja) | パケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラム | |
CN115981861A (zh) | 通用流计算并发加速方法、系统、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |