CN117640796A - 网络报文处理方法及设备 - Google Patents
网络报文处理方法及设备 Download PDFInfo
- Publication number
- CN117640796A CN117640796A CN202410013005.1A CN202410013005A CN117640796A CN 117640796 A CN117640796 A CN 117640796A CN 202410013005 A CN202410013005 A CN 202410013005A CN 117640796 A CN117640796 A CN 117640796A
- Authority
- CN
- China
- Prior art keywords
- queue
- network message
- target
- network
- server
- 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
- 238000003672 processing method Methods 0.000 title claims description 36
- 238000013507 mapping Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种网络报文处理方法及设备,该方法包括:从第一服务器中维护的第一队列中读取第一网络报文;查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器,本公开通过解耦第一服务器中队列和数据处理器中队列的一一映射关系,降低数据处理器中队列的数量,进而实现降低数据处理器中的资源消耗。
Description
技术领域
本公开实施例涉及报文转发领域,尤其涉及一种网络报文处理方法及设备。
背景技术
DPU(Data Processing Unit,数据处理器)是一种专用处理器,DPU和服务器连接,处理服务器的网络报文,将服务器的网络报文发送到第二服务器,实现为服务器提供网络。
目前,DPU中需要设置与服务器相同数量的队列,然后建立DPU中队列和服务器中队列的一一映射关系,以实现网络报文的转发,但是该方法需要消耗DPU大量的资源。
发明内容
本公开实施例提供一种网络报文处理方法及设备,以实现降低DPU的资源消耗。
第一方面,本公开实施例提供一种网络报文处理方法,包括:从第一服务器中维护的第一队列中读取第一网络报文;查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
第二方面,本公开实施例提供一种网络报文处理设备,包括:
读取单元,用于从第一服务器中维护的第一队列中读取第一网络报文;
查询单元,用于查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;
调用单元,用于调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上第一方面提供的网络报文处理方法。
第四方面,本公开实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面提供的网络报文处理方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,计算机程序产品包含计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面提供的网络报文处理方法。
本实施例提供的网络报文处理方法及设备,包括:从第一服务器中维护的第一队列中读取第一网络报文;查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的一种网络报文处理方法的示意图;
图2为本公开实施例提供的一种网络报文处理方法的步骤流程图;
图3为本公开实施例提供的一种网络报文处理方法的示意图;
图4为本公开实施例提供的另一种网络报文处理方法的步骤流程图;
图5为本公开实施例提供的再一种网络报文处理方法的步骤流程图;
图6为本公开实施例提供的网络报文处理设备的结构框图;
图7为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在相关技术中,是采用图1所示的数据处理器实现报文的转发,在图1中,第一服务器包括队列a1至队列an,n为大于1的正整数。DPU包括队列b1至队列bn,其中第一服务器和DPU中的队列一一对应,DPU用于将第一服务器中的网络报文转发给第二服务器,其中,图1中,包括第二服务器c1至第二服务器cm,m为正整数。可见,在相关技术中,DPU需要实现大量的队列,这些队列用于临时保存待处理的网络报文,这些队列的实现需要消耗大量的硬件以及软化资源。
在图1中,当第一服务器上有n个队列时,在DPU上也要实现n个队列,n一般大于或等于1024,第一服务器的队列与DPU上的队列一一对应,DPU上的队列负责将第一服务器的网络报文转发到外部网络(第二服务器),将外部网络的网络报文转发到第一服务器,流程为:首先第一服务器将第一网络报文放置在第一服务器的某个队列,如:队列al;然后DPU将队列a1的网络报文取出,放置在队列b1;然后DPU将队列b1中的网络报文取出,发送到外部网络。可见,该流程需要DPU实现大量的队列,消耗的大量硬件资源,此外,由于DPU中队列较多,需要消耗大量的软件资源进行处理,进而会导致DPU的网络报文处理性能变差。进一步地,第一服务器中队列与DPU中队列一一对应,一一对应的队列之间需要同步一些状态信息,如,队列开启、队列关闭等状态,会导致用于同步这些状态的控制面的设计复杂。
基于上述问题,本公开提供的网络报文处理方法,应用于DPU,本公开通过在DPU中设置较少量的第二队列,能够降低DPU中硬件以及软件资源的消耗。此外,较少的第二队列,占用DPU中资源较少,进而能够提高DPU的网络报文处理性能。进一步地,解耦了第一服务器的第一队列和第二队列的一一映射关系,可以在控制面减少同步状态的设计,简化控制面的设计。
上述图1为本公开的一种应用场景,且仅为场景示例之一,本公开实施例可以适用于任何场景下的网络报文处理方法。
参考图2,为本公开实施例提供的网络报文处理方法的流程示意图。如图2所示,该网络报文处理方法应用于数据处理器,在公开实施例中,数据处理器实现为第一服务器模拟出硬件网卡设备,将第一服务器的网络报文转发到外部网络、将外部网络的网络报文转发到第一服务器的功能。具体地,该网络报文处理方法具体包括以下步骤:
S201、从第一服务器中维护的第一队列中读取第一网络报文。
参照图3,对比图1,本公开对第一服务器和第二服务器不进行改进,只对DPU进行改进。
其中,第一服务器包括多个第一队列,如图3中的队列a1至队列an。其中,目的第一队列是多个第一队列中的一个,目的第一队列中存储有第一网络报文。
示例性地,第一服务器将第一网络报文放置在其中一个第一队列中,例如第一服务器的队列a1中,数量处理器从该第一队列(如队列a1)中获取该第一网络报文。
S202、查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列。
队列映射表维护多个第一队列与多个第二队列之间的映射关系,其中,一个第一队列仅映射至一个第二队列,但一个第二队列支持多个第一队列的映射。
具体地,目的第二队列是数据处理器中多个第二队列中的一个,其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量。
在本公开实施例中,第二队列的数量是小于第一队列的数量。可选地,本公开可设置个位数的第二队列,如2个或4个。第一队列的数量大于或等于1024。
此外,队列映射表中存储有第一队列和第二队列的映射关系,其中,一个第一队列对应一个第二队列,一个第二队列可对应多个第一队列。进一步地,队列映射表中初始的映射关系可以是预先配置的,如图3中,队列a1映射队列d1,队列a2映射队列d1,队列a3至队列a(n-1)中第一队列,有的可映射队列d1有的可映射队列d2,队列an映射队列d2。
示例性地,参照图3,若第一网络报文所在的第一队列为队列a1,则根据队列映射表中的映射关系,可以确定目的第二队列为队列d1。
S203、调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
在本公开中,将第一网络报文存储在目的第二队列,待转发至对应的第二服务器中。
进一步地,DPU在获取第一网络报文时,可以确定第一网络报文来自的目的第一队列,则可以将目的第一队列的队列标识添加至第一网络报文,再存储在目的第二队列。则目的第二队列中存储的第一网络报文包括目的第一队列的队列标识。
其中,向对应的目的第二服务器发送第一网络报文之前,包括:提取第一网络报文中的目的地址信息;确定目的第一队列对应的多个第二服务器;根据目的地址信息,在多个第二服务器中确定目的第二服务器。
在本公开实施例中,每个第一队列可以对应多个第二服务器。示例性地,参照图3,队列a1至队列a32均对应第二服务器c1至第二服务器c50,队列a33至队列a64均对应外网服务c71至c100。
进一步地,第一网络报文中包括目的地址信息,目的地址信息可以为目的第二服务器的IP地址。
可以理解,本公开可以先通过目的第一队列的队列标识确定多个第二服务器,如目的第一队列的队列标识位队列a1,则确定的多个第二服务器为第二服务器c1至第二服务器c50。然后在该多个第二服务器中确定目的地址信息对应的第二服务器为目的第二服务器(如第二服务器c18)。可见,本公开先通过队列标识确定部分第二服务器,可以缩小第二服务器的范围,进而提高查找目的第二服务器的效率。
在本公开实施例中,首先减少了DPU中第二队列的数量,使DPU中只设置少量的第二队列(如个位数的第二队列),节省了大量硬件资源以及软件资源,提高了DPU的网络报文的处理能力。其次,解耦第一队列和第二队列,使第一服务器中第一队列和DPU中的第二队列不再有一一映射关系,实现第一队列中网络报文可根据队列映射表的配置发送到任意一个第二队列,此外,第一队列和第二队列也不需要同步状态,简化了控制面的设计。最后,在DPU新增报文分发模块,在一个第二队列中存在多个第一队列的网络报文时,报文分发模块可以识别出不同第一队列的网络报文,并正确的将第一网络报文分发到第二服务器中,此外,也可以将第二服务器的网络报文正确的转发至第一队列中。
参考图4,为本公开实施例提供的另一种网络报文处理方法的流程示意图。如图4所示,该网络报文处理方法具体包括以下步骤:
S401、从第一服务器中维护的第一队列中读取第一网络报文。
该步骤的具体实现过程参照S201,在此不再赘述。
S402、查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列。
该步骤的具体实现过程参照S202,在此不再赘述。
S403、调用数据处理器中的报文分发模块,控制报文分发模块采用多线程模式,针对每个线程分配数据处理器中的一个第二队列,不同的线程对应不同的第二队列。
S404、调用与目的第二队列对应的第一目标线程,通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器。
其中,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器,包括:通过报文分发模块从目的第二队列中读取第一网络报文,识别第一网络报文应传输至的目的第二服务器,并通过网络传输至目的第二服务器。
进一步地,通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器,包括:确定第一网络报文来自于的目的第一队列,并确定与目标第一队列具有映射关系的第二目标线程,其中,针对服务器的每个第一队列均设置有对应的线程;若第二目标线程与第一目标线程不是相同的线程,则通过述第一目标线程读取第一网络报文转发至第二目标线程;通过第二目标线程将第一网络报文通过网络传输至目的第二服务器。
进一步地,还包括:确定第二目标线程对应的目标第二队列;将队列映射表中目的第一队列和目的第二队列的映射关系更新为目的第一队列和目标第二队列的映射关系。
其中,报文分发模块采用多线程模式,线程与第二队列一一对应。
在本公开中,报文分发模块采用多线程队列自分配机制建立第二队列与线程的映射关系,即每个第二队列自动分配一线程,该线程对对应的第二队列中的第一网络报文进行转发。
在本公开实施例中,在上述采用多线程队列自分配机制建立第二队列与线程的映射关系后,根据映射关系,确定目的第二队列对应的第一目标线程,示例性地,参照图3,若目的第二队列为队列d1,则对应的第一目标线程为线程e1。
进一步地第一目标线程用于从目的第二队列中获取第一网络报文,若第一目标线程与目的第一队列对应,则可以将该第一网络报文转发至对应的第二服务器,若第一目标线程与目的第一队列不对应,则在多个线程中,确定目的第一队列对应的第二目标线程。
可以理解,报文分发模块具有自协调机制,即每一个第一队列具有对应的一个线程,一个线程可对应多个第一队列,这样可以保证第一网络报文有序的发送至第二服务器中。
示例性地,参照图3,若目的第二队列(队列d1)与第一目标线程(线程e1)对应,但是目的第一队列(队列a1)与第一目标线程(线程e1)不对应,则确定目的第一队列(队列a1)对应的第二目标线程(线程e2)。
在本公开实施例中,第一目标线程将获取到的第一网络报文转发至第二目标线程,由第二目标线程向对应的目的第二服务器发送第一网络报文。
其中,第二目标线程向对应的目的第二服务器发送第一网络报文包括:提取第一网络报文中的目的地址信息;确定目的第一队列对应的多个第二服务器;根据目的地址信息,在多个第二服务器中确定目的第二服务器
在本公开实施例中,是基于S404步骤建立的映射关系确定第二目标线程对应的目标第二队列的。
示例性地,确定第二目标线程(如线程e2)对应的目标第二队列(如队列d2)。
在队列映射表中,目的第一队列是与目的第二队列是具有映射关系的,更新后,目的第一队列是和目标第二队列具体映射关系。则在后续的网络报文的转发过程中,目的第一队列的网络报文可以发送到目标第二队列存储,目标第二队列中存储的网络报文可由第二目标线程转发至第二服务器,该第二目标线程也与目的第一队列对应,进而可以实现该第二目标线程取出的网络报文由该第二目标线程发送到外部网络,避免网络报文丢失的问题,提高网络报文的处理性能。
一种可选实施例中,参照图5,为再一种网络报文处理方法的流程示意图,该流程图为DPU将外部网络的网络报文转发至第一服务器的过程,该网络报文处理方法是基于图3所示的DPU,该网络报文处理方法具体包括以下步骤:
S501,调用数据处理器中的报文分发模块,获取第二网络报文,第二网络报文中携带有应传输至的目标第一队列。
在本公开实施例中,是通过报文分发模块中的任一线程接收任一第二服务器发送的第二网络报文。
S502,将第二网络报文存储至数据处理器中的任意一个第二队列。
在本公开实施例中,分发模块可以将第二网络报文存储在任意一个第二队列中。
S503,从任意一个第二队列中读取第二网络报文,并识别第二网络报文应传输至的目标第一队列,将第二网络报文传输至目标第一队列中。
其中,第二网络报文中携带有目标第一队列的队列标识,可以根据该队列标识,确定目标第一队列。
在确定目标第一队列后,将任意一第二队列中的第二网络报文存储目标第一队列中,完成网络报文从第二服务器到第一服务器的队列的存储。
对应于上文实施例的网络报文处理方法,图6为本公开实施例提供的网络报文处理设备60的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。如图6所示,网络报文处理设备60具体包括:读取单元61、查询单元62、调用单元63,其中:
读取单元61,用于从第一服务器中维护的第一队列中读取第一网络报文;
查询单元62,用于查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;
调用单元63,用于调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
在一些实施例中,调用单元63,具体用于调用数据处理器中的报文分发模块,控制报文分发模块采用多线程模式,针对每个线程分配数据处理器中的一个第二队列,不同的线程对应不同的第二队列;调用与目的第二队列对应的第一目标线程,通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器。
在一些实施例中,调用单元63,在通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器,具体用于:确定第一网络报文来自于的目的第一队列,并确定与目标第一队列具有映射关系的第二目标线程,其中,针对服务器的每个第一队列均设置有对应的线程;若第二目标线程与第一目标线程不是相同的线程,则通过述第一目标线程读取第一网络报文转发至第二目标线程;通过第二目标线程将第一网络报文通过网络传输至目的第二服务器。
在一些实施例中,调用单元63,还用于:确定第二目标线程对应的目标第二队列;将队列映射表中目的第一队列和目的第二队列的映射关系更新为目的第一队列和目标第二队列的映射关系。
在一些实施例中,还包括:转发单元(未示出),用于调用数据处理器中的报文分发模块,获取第二网络报文,第二网络报文中携带有应传输至的目标第一队列;将第二网络报文存储至数据处理器中的任意一个第二队列;从任意一个第二队列中读取第二网络报文,并识别第二网络报文应传输至的目标第一队列,将第二网络报文传输至目标第一队列中。
在一些实施例中,队列映射表维护多个第一队列与多个第二队列之间的映射关系,其中,一个第一队列仅映射至一个第二队列,但一个第二队列支持多个第一队列的映射。
在一些实施例中,调用单元63具体用于:通过报文分发模块从目的第二队列中读取第一网络报文,识别第一网络报文应传输至的目的第二服务器,并通过网络传输至目的第二服务器。
本实施例提供的网络报文处理设备,可用于执行上述网络报文处理方法的实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图7,其示出了适于用来实现本公开实施例的电子设备70的结构示意图,该电子设备70可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备70可以包括处理装置(例如中央处理器、图形处理器等)71,其可以根据存储在只读存储器(Read Only Memory ,简称ROM)72中的程序或者从存储装置78加载到随机访问存储器(Random Access Memory ,简称RAM)73中的程序而执行各种适当的动作和处理。在RAM 73中,还存储有电子设备70操作所需的各种程序和数据。处理装置71、ROM 72以及RAM 73总线74彼此相连。输入/输出(I/O)接口75也连接至总线74。
通常,以下装置可以连接至I/O接口75:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置56;包括例如液晶显示器(Liquid CrystalDisplay ,简称LCD)、扬声器、振动器等的输出装置77;包括例如磁带、硬盘等的存储装置78;以及通信装置79。通信装置79可以允许电子设备70与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备70,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通信装置79从网络上被下载和安装,或者从存储装置78被安装,或者从ROM 92被安装。在该计算机程序被处理装置71执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以任意种类的网络——包括局域网(LocalArea Network ,简称LAN)或广域网(Wide Area Network ,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,该单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以软件的方式实现,也可以硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA,Field Programmable Gate Array)、专用集成电路(ASIC,Application SpecificIntegrated Circuit)、专用标准产品(ASSP,Application Specific Standard Parts)、片上系统(SOC,System on Chip)、复杂可编程逻辑设备(CPLD,Complex Programmable LogicDevice)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-OnlyMemory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM,Compact Disc Read-OnlyMemory)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供一种网络报文处理方法,包括:从第一服务器中维护的第一队列中读取第一网络报文;查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
根据本公开的一个或多个实施例,调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器,包括:
调用数据处理器中的报文分发模块,控制报文分发模块采用多线程模式,针对每个线程分配数据处理器中的一个第二队列,不同的线程对应不同的第二队列;
调用与目的第二队列对应的第一目标线程,通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器。
根据本公开的一个或多个实施例,通过第一目标线程读取第一网络报文通过网络传输至目的第二服务器,包括:
确定第一网络报文来自于的目的第一队列,并确定与目标第一队列具有映射关系的第二目标线程,其中,针对服务器的每个第一队列均设置有对应的线程;
若第二目标线程与第一目标线程不是相同的线程,则通过述第一目标线程读取第一网络报文转发至第二目标线程;
通过第二目标线程将第一网络报文通过网络传输至目的第二服务器。
根据本公开的一个或多个实施例,还包括:
确定第二目标线程对应的目标第二队列;
将队列映射表中目的第一队列和目的第二队列的映射关系更新为目的第一队列和目标第二队列的映射关系。
根据本公开的一个或多个实施例,还包括:
调用数据处理器中的报文分发模块,获取第二网络报文,第二网络报文中携带有应传输至的目标第一队列;
将第二网络报文存储至数据处理器中的任意一个第二队列;
从任意一个第二队列中读取第二网络报文,并识别第二网络报文应传输至的目标第一队列,将第二网络报文传输至目标第一队列中。
根据本公开的一个或多个实施例,队列映射表维护多个第一队列与多个第二队列之间的映射关系,其中,一个第一队列仅映射至一个第二队列,但一个第二队列支持多个第一队列的映射。
根据本公开的一个或多个实施例,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器,包括:
通过报文分发模块从目的第二队列中读取第一网络报文,识别第一网络报文应传输至的目的第二服务器,并通过网络传输至目的第二服务器。
第二方面,根据本公开的一个或多个实施例,提供一种网络报文处理设备,包括:
读取单元,用于从第一服务器中维护的第一队列中读取第一网络报文;
查询单元,用于查询数据处理器中维护的队列映射表以确定第一网络报文应传输至的目的第二队列,将第一网络报文存储至目的第二队列;其中,队列映射表用于记录第一服务器中维护的各个第一队列与数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;
调用单元,用于调用数据处理器中的报文分发模块,通过报文分发模块从目的第二队列中读取第一网络报文通过网络传输至目的第二服务器。
第三方面,根据本公开的一个或多个实施例,提供一种电子设备,包括:至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上第一方面提供的网络报文处理方法。
第四方面,根据本公开的一个或多个实施例,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面提供的网络报文处理方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,计算机程序产品包含计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面提供的网络报文处理方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种网络报文处理方法,其特征在于,包括:
从第一服务器中维护的第一队列中读取第一网络报文;
查询数据处理器中维护的队列映射表以确定所述第一网络报文应传输至的目的第二队列,将所述第一网络报文存储至所述目的第二队列;其中,所述队列映射表用于记录第一服务器中维护的各个第一队列与所述数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;
调用所述数据处理器中的报文分发模块,通过所述报文分发模块从所述目的第二队列中读取所述第一网络报文通过网络传输至目的第二服务器。
2.根据权利要求1所述的方法,其特征在于,所述调用所述数据处理器中的报文分发模块,通过所述报文分发模块从所述目的第二队列中读取所述第一网络报文通过网络传输至目的第二服务器,包括:
调用所述数据处理器中的报文分发模块,控制所述报文分发模块采用多线程模式,针对每个线程分配所述数据处理器中的一个第二队列,不同的线程对应不同的第二队列;
调用与所述目的第二队列对应的第一目标线程,通过所述第一目标线程读取所述第一网络报文通过网络传输至目的第二服务器。
3.根据权利要求2所述的网络报文处理方法,其特征在于,所述通过所述第一目标线程读取所述第一网络报文通过网络传输至目的第二服务器,包括:
确定所述第一网络报文来自于的第一队列,并确定与所述第一队列具有映射关系的第二目标线程,其中,针对服务器的每个第一队列均设置有对应的线程;
若所述第二目标线程与所述第一目标线程不是相同的线程,则通过所述第一目标线程读取所述第一网络报文转发至所述第二目标线程;
通过所述第二目标线程将所述第一网络报文通过网络传输至目的第二服务器。
4.根据权利要求3所述的网络报文处理方法,其特征在于,还包括:
确定所述第二目标线程对应的目标第二队列;
将所述队列映射表中所述目的第一队列和所述目的第二队列的映射关系更新为所述目的第一队列和所述目标第二队列的映射关系。
5.根据权利要求1所述的网络报文处理方法,其特征在于,还包括:
调用所述数据处理器中的报文分发模块,获取第二网络报文,所述第二网络报文中携带有应传输至的目标第一队列;
将所述第二网络报文存储至所述数据处理器中的任意一个第二队列;
从所述任意一个第二队列中读取所述第二网络报文,并识别所述第二网络报文应传输至的目标第一队列,将所述第二网络报文传输至所述目标第一队列中。
6.根据权利要求1至5任一项所述的网络报文处理方法,其特征在于,所述队列映射表维护多个第一队列与多个第二队列之间的映射关系,其中,一个第一队列仅映射至一个第二队列,但一个第二队列支持多个第一队列的映射。
7.根据权利要求1至5任一项所述的网络报文处理方法,其特征在于, 所述通过所述报文分发模块从所述目的第二队列中读取所述第一网络报文通过网络传输至目的第二服务器,包括:
通过所述报文分发模块从所述目的第二队列中读取所述第一网络报文,识别所述第一网络报文应传输至的目的第二服务器,并通过网络传输至所述目的第二服务器。
8.一种网络报文处理设备,其特征在于,包括:
读取单元,用于从第一服务器中维护的第一队列中读取第一网络报文;
查询单元,用于查询数据处理器中维护的队列映射表以确定所述第一网络报文应传输至的目的第二队列,将所述第一网络报文存储至所述目的第二队列;其中,所述队列映射表用于记录第一服务器中维护的各个第一队列与所述数据处理器中维护的各个第二队列之间的映射关系,其中,第一队列的数量大于第二队列的数量;
调用单元,用于调用所述数据处理器中的报文分发模块,通过所述报文分发模块从所述目的第二队列中读取所述第一网络报文通过网络传输至目的第二服务器。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的网络报文处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的网络报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410013005.1A CN117640796A (zh) | 2024-01-03 | 2024-01-03 | 网络报文处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410013005.1A CN117640796A (zh) | 2024-01-03 | 2024-01-03 | 网络报文处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117640796A true CN117640796A (zh) | 2024-03-01 |
Family
ID=90021810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410013005.1A Pending CN117640796A (zh) | 2024-01-03 | 2024-01-03 | 网络报文处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117640796A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210320820A1 (en) * | 2017-09-29 | 2021-10-14 | Fungible, Inc. | Fabric control protocol for large-scale multi-stage data center networks |
CN114885045A (zh) * | 2022-07-07 | 2022-08-09 | 浙江锐文科技有限公司 | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 |
CN115242728A (zh) * | 2022-06-27 | 2022-10-25 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN115499387A (zh) * | 2022-09-13 | 2022-12-20 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、电子设备及存储介质 |
CN115987972A (zh) * | 2022-12-29 | 2023-04-18 | 湖北天融信网络安全技术有限公司 | 文件传输方法、装置、电子设备及计算机可读存储介质 |
WO2023071272A1 (zh) * | 2021-10-28 | 2023-05-04 | 北京锐安科技有限公司 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
-
2024
- 2024-01-03 CN CN202410013005.1A patent/CN117640796A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210320820A1 (en) * | 2017-09-29 | 2021-10-14 | Fungible, Inc. | Fabric control protocol for large-scale multi-stage data center networks |
WO2023071272A1 (zh) * | 2021-10-28 | 2023-05-04 | 北京锐安科技有限公司 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
CN115242728A (zh) * | 2022-06-27 | 2022-10-25 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN114885045A (zh) * | 2022-07-07 | 2022-08-09 | 浙江锐文科技有限公司 | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 |
CN115499387A (zh) * | 2022-09-13 | 2022-12-20 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、电子设备及存储介质 |
CN115987972A (zh) * | 2022-12-29 | 2023-04-18 | 湖北天融信网络安全技术有限公司 | 文件传输方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427706B (zh) | 数据处理方法、多服务器系统、数据库、电子设备及存储介质 | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
CN111240834B (zh) | 任务执行方法、装置、电子设备和存储介质 | |
CN111400068B (zh) | 接口的控制方法、装置、可读介质和电子设备 | |
CN114089920A (zh) | 数据存储方法、装置、可读介质及电子设备 | |
CN111432001A (zh) | 用于跳转场景的方法、装置、电子设备和计算机可读介质 | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
CN112306685B (zh) | 任务隔离方法、装置、电子设备及计算机可读介质 | |
CN113391860A (zh) | 服务请求处理方法、装置、电子设备及计算机存储介质 | |
CN113518183B (zh) | 摄像头调用方法、装置和电子设备 | |
CN113918298B (zh) | 多媒体数据的处理方法、系统及设备 | |
CN117640796A (zh) | 网络报文处理方法及设备 | |
CN113886105B (zh) | 跨进程的调用方法、装置、存储介质及电子设备 | |
CN111459893B (zh) | 文件处理方法、装置和电子设备 | |
CN110502891B (zh) | 一种获取进程内存泄露的方法、装置、介质和电子设备 | |
CN111538717A (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN115225586B (zh) | 数据包发送方法、装置、设备及计算机可读存储介质 | |
CN113448550B (zh) | 实现类的收集管理方法、装置、电子设备及计算机介质 | |
CN117749739B (zh) | 数据发送方法、数据接收方法、装置、设备及存储介质 | |
CN115114051B (zh) | 节点通信方法、装置、设备及存储介质 | |
CN115993942B (zh) | 数据缓存方法、装置、电子设备和计算机可读介质 | |
CN116361254B (zh) | 图像存储方法、装置、电子设备和计算机可读介质 | |
CN113157365B (zh) | 程序运行方法、装置、电子设备和计算机可读介质 | |
CN117544577A (zh) | 基于分布式存储系统的网络流量控制方法、装置及设备 | |
CN117749739A (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 |