CN114338559A - 一种报文保序的方法及装置 - Google Patents

一种报文保序的方法及装置 Download PDF

Info

Publication number
CN114338559A
CN114338559A CN202111536398.7A CN202111536398A CN114338559A CN 114338559 A CN114338559 A CN 114338559A CN 202111536398 A CN202111536398 A CN 202111536398A CN 114338559 A CN114338559 A CN 114338559A
Authority
CN
China
Prior art keywords
message
storage space
module
information
packet
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.)
Granted
Application number
CN202111536398.7A
Other languages
English (en)
Other versions
CN114338559B (zh
Inventor
曹林
吴刚
唐世光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPtech Information Technology Co Ltd
Original Assignee
Hangzhou DPtech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPtech Information Technology Co Ltd filed Critical Hangzhou DPtech Information Technology Co Ltd
Priority to CN202111536398.7A priority Critical patent/CN114338559B/zh
Publication of CN114338559A publication Critical patent/CN114338559A/zh
Application granted granted Critical
Publication of CN114338559B publication Critical patent/CN114338559B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例提供一种报文保序的方法及装置,其中,所述报文保序的方法包括:响应于连续读取到多个报文,报文序号分配模块依次为多个报文分配用于标识多个报文的接收顺序的序号;将第一报文发送至第一报文信息处理模块、第二报文发送至第二报文信息处理模块中分别进行报文信息处理后发送至报文调序模块;报文调序模块依据为第一报文和第二报文分配的序号,对第一报文和第二报文进行报文保序处理。本公开实施例的技术方案,通过使用FPGA中的报文序号分配模块、多个报文信息处理模块和报文调序模块实现了报文保序的功能,流程设计简单,且FPGA对报文的并行运算能力较好,能够适应网络速率的快速发展,高效的对报文进行报文保序的操作。

Description

一种报文保序的方法及装置
技术领域
本公开技术方案涉及网络通信技术领域,尤其涉及一种报文保序的方法及装置。
背景技术
随着网络数据的数量的快速增长和大数据技术的不断发展,网络处理器的处理速度的增加很难赶上网络中报文数量的增加。因此,目前的网络处理器大多采用多线程异步并行对报文进行处理,同时,为了提高网络处理器的吞吐率,其并行处理过程要尽量保证负载均衡。而不同线程处理报文的速度受众多因素影响,加上需要进行负载均衡操作,所以很容易就会导致报文乱序,从而触发不必要的TCP(Transmission Control Protocol,传输控制协议)的拥塞控制机制,降低发送速率,进而影响TCP连接的性能和网络利用率。
现有的对报文进行保序的方法是通过CPU(Central Processing Unit,中央处理器)来进行的,但是由于CPU对报文的并行运算能力较低,不能适应网络速率的快速发展,因此,如何在多线程异步处理报文的情况下,提供一种高效的对报文进行保序的方法成为亟待解决的问题。
发明内容
有鉴于此,本公开实施例提供一种报文保序的方法及装置。
具体地,本公开实施例是通过如下技术方案实现的:
根据本公开的第一方面,提出了一种报文保序的方法,所述报文保序的方法包括:
响应于连续读取到多个报文,所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文;
将所述第一报文发送至所述第一报文信息处理模块、所述第二报文发送至所述第二报文信息处理模块中分别进行报文信息处理后发送至所述报文调序模块;
所述报文调序模块依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
根据本公开的第二方面,提出了一种报文保序的装置,所述报文保序的装置包括:
报文序号分配模块,用于响应于连续读取到多个报文,依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文,并将所述第一报文发送至所述第一报文信息处理模块,将所述第二报文发送至所述第二报文信息处理模块;
第一报文信息处理模块,用于对所述第一报文进行报文信息处理,并将处理后的所述第一报文发送至所述报文调序模块;
第二报文信息处理模块,用于对所述第二报文进行报文信息处理,并将处理后的所述第二报文发送至所述报文调序模块;
报文调序模块,用于依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
根据本公开的第三方面,提供一种计算机可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,促使所述处理器实现本公开任一实施例的报文保序的方法。
根据本公开的第四方面,提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行本公开任一实施例的报文保序的方法。
本公开实施例提供的报文保序的方法,通过使用FPGA(Field Programmable GateArray,现场可编程门阵列)中的报文序号分配模块、多个报文信息处理模块和报文调序模块实现了报文保序的功能,流程设计简单,且所述FPGA对报文的并行运算能力较好,能够适应网络速率的快速发展,高效的对报文进行报文保序的操作。
下面通过附图和实施方式,对本公开实施例做进一步的详细描述。
附图说明
为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
图1是根据本公开一示例性实施例提供的一种报文保序的方法的流程图;
图2是根据本公开一示例性实施例提供的又一种报文保序的方法的流程图;
图3是根据本公开一示例性实施例提供的一种报文保序的装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
在本公开中使用的术语仅仅出于描述特定实施例的目的,而非旨在限制本申公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开实施例提供一种报文保序的方法,解决现有技术中使用CPU对报文进行保序的过程中由于所述CPU的并行运算能力较低,不能适应网络速率的快速发展的问题。
下面结合附图,对本公开实施例的方法进行详细描述。
图1是本公开一示例性实施例提供的一种报文保序的方法的流程图。所述方法用于FPGA,如图1所示,该示例性实施例方法可以包括如下处理:
步骤S101,响应于连续读取到多个报文,所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号。
其中,所述多个报文包括第一报文和第二报文,所述第一报文和所述第二报文相邻,且所述第一报文早于所述第二报文接收到。
例如,可以为所述第一报文分配报文序号为a,为所述第二报文分配报文序号为b。
再例如,可以为所述第一报文分配报文序号为1,为所述第二报文分配报文序号为2。
本实施例对此不做具体的限定,即为所述多个报文分配的序号只要可以标识所述报文序号分配模块读取到所述多个报文的顺序即可。但是,为了便于描述,后续的示例中均以为所述第一报文分配的报文序号为1,为所述第二报文分配的报文序号为2为例进行描述。
步骤S102,将所述第一报文发送至所述第一报文信息处理模块、所述第二报文发送至所述第二报文信息处理模块中分别进行报文信息处理后发送至所述报文调序模块。
在一个可选示例中,也可以将所述第一报文发送至所述第二报文信息处理模块,将所述第二报文发送至所述第一报文信息处理模块,本实施例对此不做具体的限定,即只要将所述多个报文发送至不同的报文信息处理模块进行报文信息处理即可。
在本示例的描述中,所述报文包括报文的五元组信息和报文内容两部分。
其中,所述报文的五元组信息包括报文的源端口、目的端口、源IP地址、目的IP地址和传输层协议。在本示例中,所述多个报文信息处理模块就是对所述报文的五元组信息进行处理。
例如,所述报文信息处理模块可以依据不同的业务需求改写所述多个报文的五元组信息中的目的端口,从而使得所述报文调序模块在接收到所述多个报文后可以将所述多个报文传输至后续的不同模块中。
在一个可选示例中,所述报文序号分配模块可以将接收到的所述第一报文的报文内容存储至所述报文存储模块的第一存储空间,并接收所述报文存储模块返回的所述第一存储空间的地址,然后将所述第一报文的报文序号、五元组信息和接收到的所述第一存储空间的地址封装后形成的第一报文信息发送至所述第一报文信息处理模块进行处理,并将处理后的所述第一报文信息发送至所述报文调序模块。
所述报文序号分配模块还可以将所述第二报文的报文内容存储至所述报文存储模块的第二存储空间,并接受所述报文存储模块返回的所述第二存储空间的地址,然后将所述第二报文的报文序号、五元组信息和接收到的所述第二存储空间的地址封装后形成的第二报文信息发送至所述第二报文信息处理模块进行处理,并将处理后的所述第二报文信息发送至所述报文调序模块。
其中,所述第一报文和所述第二报文相邻,且所述报文序号分配模块读取到所述第一报文的时间早于读取到所述第二报文的时间。
需要说明的是,虽然上述对所述第一报文和所述第二报文的操作是分开描述的,但在实际应用的过程中,所述报文序号分配模块对所述多个报文进行的处理是可以多线程进行的,所述多个报文处理模块对报文进行的处理也互不影响,因此,经过所述报文序号分配模块和所述多个报文信息处理模块处理后发送至所述报文调序模块的所述第一报文信息和所述第二报文信息可能是乱序的。
步骤S103,所述报文调序模块依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
在一个可选示例中,所述报文调序模块可以在接收到处理后的所述第一报文信息以后,以所述第一报文信息中包含的所述第一报文的报文序号为地址,将所述第一报文信息存储至所述报文存储模块的第三存储空间。
所述报文调序模块还可以在接收到处理后的所述第二报文信息以后,以所述第二报文信息中包含的所述第二报文的报文序号为地址,将所述第二报文信息存储至所述报文存储模块的第四存储空间。
其中,所述第一存储空间、第二存储空间、第三存储空间和所述第四存储空间均与所述报文存储模块中的一块内存相对应。
按照上述的,所述报文调序模块可以是先接收到所述第一报文信息,再接收到所述第二报文信息,也可以是先接收到所述第二报文信息,再接收到所述第一报文信息,并且,可以是将所述第一报文信息存储在所述第三存储空间,将所述第二报文信息存储在所述第四存储空间,也可以是将所述第一报文信息存储在所述第四存储空间,将所述第二报文信息存储在所述第三存储空间,本实施例对此不做限定。
将接收到的所述多个报文信息均存储在以所述报文信息中包含的报文序号为地址的存储空间以后,即依据所述报文序号分配模块为所述多个报文分配的序号,依次读取所述存储空间。
例如,为所述第一报文分配的报文序号为1,为所述第二报文分配的报文序号为2,且已经将所述第一报文信息存储在地址为1的第三存储空间,将所述第二报文信息存储在地址为2的第四存储空间。
所述报文调序模块依据所述报文序号,会先读取到地址为1的第三存储空间,从而读取到所述第一报文的报文序号,五元组信息和所述第一报文的报文内容的存储地址,然后依据所述第一报文的报文内容的存储地址,读取到所述第一报文的报文内容,最后将所述第一报文的五元组信息和所述第一报文的报文内容组合后形成的更新后的第一报文输出。
所述报文调序模块将所述更新后的第一报文输出以后,才会继续读取地址为2的第四存储空间,从而读取到所述第二报文的报文序号、五元组信息和所述第二报文的报文内容的存储地址,然后依据所述第二报文的报文内容的存储地址,读取到所述第二报文的报文内容,最后将所述第二报文的五元组信息和所述第二报文的报文内容组合后形成的更新后的第二报文输出。
由于所述报文调序模块是依据所述报文序号分配模块为所述第一报文和所述第二报文分配的报文序号的顺序进行依次输出的,因此,可以保证经过所述报文调序模块输出的报文的顺序与所述报文序号分配模块读取到所述多个报文的顺序是一致的,从而实现报文保序。
进一步的,前述实施例中提到,所述多个报文信息处理模块可以依据不同的业务需求改写所述多个报文的五元组信息中的目的端口,从而使得所述报文调序模块可以将接收到的所述多个报文发送至后续的不同的模块中。由于从所述报文调序模块输出的所述多个报文是保序的,因此,可以保证输入所述后续的不同的模块的报文之间也是保序的。
本实施例的报文保序的方法,通过使用FPGA中的报文序号分配模块、多个报文信息处理模块和报文调序模块实现了报文保序的功能,流程设计简单,且所述FPGA对报文的并行运算能力较好,能够适应网络速率的快速发展,高效的对报文进行报文保序的操作。
图2是本公开一示例性实施例提供的又一种报文保序的方法的流程图。其中,在本实施例的描述中,与前述任一实施例中相同的步骤将简单描述,不再详述,具体可以参见前述的任一实施例。如图2所示,该实施例方法可以包括如下处理:
步骤S201,所述报文序号分配模块接收预先设定的序号的最大值。
当所述报文序号分配模块为所述第二报文分配的序号等于所述预先设定的序号的最大值时,所述报文序号分配模块将为所述第一报文分配的序号分配给接收到所述第二报文后接收到的下一个报文。
例如,所述报文序号分配模块接收到的预先设定的序号的最大值可以为100,当所述报文序号分配模块为所述多个报文分配的序号从1增至100时,所述报文序号分配模块即将序号1重新分配给接收到所述报文序号为100的报文之后的下一个报文,并重复上述过程。
其中,所述预先设定的序号的最大值可以为100、200或其他数值,具体可以由用户依据所述多个报文处理模块处理报文信息的的速度来设定,所述多个报文处理模块处理报文信息的速度越快,对序号的释放速度就越快,因此,所述预先设定的序号的最大值可以越小。
步骤S202,响应于连续读取到多个报文,所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号。
步骤S203,将所述第一报文发送至所述第一报文信息处理模块、所述第二报文发送至所述第二报文信息处理模块中分别进行报文信息处理后发送至所述报文调序模块。
步骤S204,所述报文调序模块依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
在一个可选示例中,所述报文调序模块可以在接收到处理后的所述第一报文信息以后,以所述第一报文信息中包含的所述第一报文的报文序号为地址,将所述第一报文信息存储至所述报文存储模块的第三存储空间。
所述报文调序模块还可以在接收到处理后的所述第二报文信息以后,以所述第二报文信息中包含的所述第二报文的报文序号为地址,将所述第二报文信息存储至所述报文存储模块的第四存储空间。
其中,所述第三存储空间和所述第四存储空间的比特位可以为0或1,在本示例中,可以将所述比特位为1时认为,所述存储空间已写入报文信息,将比特位为0时认为,所述存储空间还没有写入报文信息。
因此,可以将上述的已写入所述第一报文信息的第三存储空间和已写入所述第二报文信息的第四存储空间的比特位置为1。然后,所述报文调序模块即可以依次读取以所述报文序号为地址的存储空间,当读取到比特位为1的存储空间时,即可以进一步读取所述存储空间存储的报文信息。
具体的,以为所述第一报文分配的报文序号为1,为所述第二报文分配的报文序号为2为例进行描述。
所述报文调序模块依据所述报文序号分配模块为所述多个报文分配的序号依次读取所述存储空间,会先读取到以报文序号1为存储空间且所述比特位为1的第三存储空间,进而读取到所述第一报文信息,并将其比特位置为0,依据所述第一报文信息中包含的所述第一报文的报文内容的存储地址,获取到所述第一报文的报文内容,进而将所述第一报文的五元组信息和所述第一报文的报文内容组合后形成的更新后的第一报文输出。
所述报文调序模块将所述更新后的第一报文输出以后,继续读取到以报文序号2为存储空间且所述比特位为1的第四存储空间,进而读取到所述第二报文信息,并将其比特位置为0,依据所述第二报文信息中包含的所述第二报文的报文内容的存储地址,获取到所述第二报文的报文内容,进而将所述第二报文的五元组信息和所述第二报文的报文内容组合后形成的更新后的第二报文输出。
通过所述存储空间的比特位来对所述存储空间是否存储有报文信息进行判断,避免了所述报文调序模块需要依据所述报文序号分配模块为所述多个报文分配的序号依次查看每一块存储空间而造成的浪费时间的问题,加快输出更新后的报文的速度。
本实施例的报文保序的方法,通过为所述报文序号分配模块设定可以为所述多个报文分配的序号的最大值,可以尽可能的减少对所述FPGA内部资源的使用,提升资源的利用率。
图3是本公开一示例性实施例中的一种报文保序的装置的结构示意图,如图3所示,该报文保序的装置可以包括:输入/输出模块、报文序号分配模块31、多个报文信息处理模块和报文调序模块32,其中,所述多个报文信息处理模块包括第一报文信息处理模块33和第二报文信息处理模块34;
所述报文序号分配模块31,用于响应于连续读取到多个报文,依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文,并将所述第一报文发送至所述第一报文信息处理模块,将所述第二报文发送至所述第二报文信息处理模块;
所述第一报文信息处理模块33,用于对所述第一报文进行报文信息处理,并将处理后的所述第一报文发送至所述报文调序模块32;
所述第二报文信息处理模块34,用于对所述第二报文进行报文信息处理,并将处理后的所述第二报文发送至所述报文调序模块32;
所述报文调序模块32,用于依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
可选的,所述报文序号分配模块31,还用于接收预先设定的序号的最大值;
所述报文序号分配模块31,在用于依次为所多个报文分配用于标识所述多个报文的接收顺序的序号时,包括:
响应于连续读取到相邻的第一报文和第二报文,且所述第一报文早于所述第二报文读取到,依次为第一报文和第二报文分配所述序号;
响应于为所述第二报文分配的序号等于所述序号的最大值,将为所述第一报文分配的序号分配给接收到所述第二报文后接收到的下一个报文。
可选的,所述报文序号分配模块31,在用于将所述第一报文发送至所述第一报文信息处理模块,所述第二报文发送至所述第二报文信息处理模块时,包括:
将所述第一报文的报文内容存储至所述报文存储模块的第一存储空间,所述第二报文的报文内容存储至所述报文存储模块的第二存储空间,并接收所述报文存储模块返回的所述第一存储空间和所述第二存储空间的地址;
将所述第一报文的报文序号、五元组信息和所述第一存储空间的地址封装后形成的第一报文信息发送至所述第一报文信息处理模块,所述第二报文的报文序号、五元组信息和所述第二存储空间的地址封装后形成的第二报文信息发送至所述第二报文信息处理模块;
所述报文调序模块32,在用于依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理时,包括:
响应于接收到处理后的所述第一报文信息和所述第二报文信息,以所述第一报文信息中包含的报文序号为地址,将所述第一报文信息存储至所述报文存储模块的第三存储空间,以所述第二报文信息中包含的报文序号为地址,将所述第二报文信息存储至所述报文存储模块的第四存储空间;
依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容;
将读取到的所述第一报文信息中的五元组信息和所述第一报文的报文内容组合得到更新后的第一报文,以及将所述第二报文信息中的五元组信息和所述第二报文的报文内容组合得到更新后的第二报文,并依次输出所述更新后的第一报文和所述更新后的第二报文。
可选的,所述报文调序模块,在用于依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容时,包括:
将所述第三存储空间和所述第四存储空间的比特位置为1;
所述报文调序模块依据所述报文序号依次读取所述报文存储模块的存储空间;
响应于读取到比特位为1的第三存储空间和所述第四存储空间,读取所述第三存储空间中存储的第一报文信息和所述第四存储空间中存储的第二报文信息,并依据所述第一报文信息和所述第二报文信息中包含的存储空间的地址分别读取所述第一存储空间和第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容,并将其比特位置为0。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (10)

1.一种报文保序的方法,其特征在于,所述方法用于现场可编程门阵列FPGA,所述FPGA中包括报文序号分配模块、多个报文信息处理模块和报文调序模块,其中,所述多个报文信息处理模块包括第一报文信息处理模块和第二报文信息处理模块,所述方法包括:
响应于连续读取到多个报文,所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文;
将所述第一报文发送至所述第一报文信息处理模块、所述第二报文发送至所述第二报文信息处理模块中分别进行报文信息处理后发送至所述报文调序模块;
所述报文调序模块依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
2.根据权利要求1所述的方法,其特征在于,所述响应于连续读取到多个报文,所述报文序号分配模块依次为所述多个报文分配序号之前,所述方法还包括:
所述报文序号分配模块接收预先设定的序号的最大值;
所述所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文,包括:
所述第一报文和第二报文相邻,且所述第一报文早于所述第二报文接收到;
所述报文序号分配模块依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,包括:
响应于所述报文序号分配模块为所述第二报文分配的序号等于所述序号的最大值,所述报文序号分配模块将为所述第一报文分配的序号分配给接收到所述第二报文后接收到的下一个报文。
3.根据权利要求1所述的方法,其特征在于,所述FPGA还包括报文存储模块;
所述将所述第一报文发送至所述第一报文信息处理模块、所述第二报文发送至所述第二报文信息处理模块中分别进行报文信息处理后发送至所述报文调序模块,包括:
所述报文序号分配模块将所述第一报文的报文内容存储至所述报文存储模块的第一存储空间,所述第二报文的报文内容存储至所述报文存储模块的第二存储空间,并接收所述报文存储模块返回的所述第一存储空间和所述第二存储空间的地址;
将所述第一报文的报文序号、五元组信息和所述第一存储空间的地址封装后形成的第一报文信息发送至所述第一报文信息处理模块,所述第二报文的报文序号、五元组信息和所述第二存储空间的地址封装后形成的第二报文信息发送至所述第二报文信息处理模块进行报文信息处理;
将处理后的所述第一报文信息和所述第二报文信息发送至所述报文调序模块;
所述所述报文调序模块依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理,包括:
响应于接收到处理后的所述第一报文信息和所述第二报文信息,所述报文调序模块以所述第一报文信息中包含的报文序号为地址,将所述第一报文信息存储至所述报文存储模块的第三存储空间,以所述第二报文信息中包含的报文序号为地址,将所述第二报文信息存储至所述报文存储模块的第四存储空间;
所述报文调序模块依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容;
将读取到的所述第一报文信息中的五元组信息和所述第一报文的报文内容组合得到更新后的第一报文,以及将所述第二报文信息中的五元组信息和所述第二报文的报文内容组合得到更新后的第二报文,并依次输出所述更新后的第一报文和所述更新后的第二报文。
4.根据权利要求3所述的方法,其特征在于,所述所述报文调序模块依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容,包括:
将所述第三存储空间和所述第四存储空间的比特位置为1;
所述报文调序模块依据所述报文序号依次读取所述报文存储模块的存储空间;
响应于读取到比特位为1的第三存储空间和所述第四存储空间,读取所述第三存储空间中存储的第一报文信息和所述第四存储空间中存储的第二报文信息,并依据所述第一报文信息和所述第二报文信息中包含的存储空间的地址分别读取所述第一存储空间和第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容,并将其比特位置为0。
5.一种报文保序的装置,其特征在于,所述装置包括:报文序号分配模块、多个报文信息处理模块和报文调序模块,其中,所述多个报文信息处理模块包括第一报文信息处理模块和第二报文信息处理模块;
所述报文序号分配模块,用于响应于连续读取到多个报文,依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号,其中,所述多个报文包括第一报文和第二报文,并将所述第一报文发送至所述第一报文信息处理模块,所述第二报文发送至所述第二报文信息处理模块;
所述第一报文信息处理模块,用于对所述第一报文进行报文信息处理,并将处理后的所述第一报文发送至所述报文调序模块;
所述第二报文信息处理模块,用于对所述第二报文进行报文信息处理,并将处理后的所述第二报文发送至所述报文调序模块;
所述报文调序模块,用于依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理。
6.根据权利要求5所述的装置,其特征在于,所述报文序号分配模块,还用于接收预先设定的序号的最大值;
所述报文序号分配模块,在用于依次为所述多个报文分配用于标识所述多个报文的接收顺序的序号时,包括:
响应于连续读取到相邻的第一报文和第二报文,且所述第一报文早于所述第二报文读取到,依次为所述第一报文和所述第二报文分配所述序号;
响应于为所述第二报文分配的序号等于所述序号的最大值,将为所述第一报文分配的序号分配给接收到所述第二报文后接收到的下一个报文。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括报文存储模块;
所述报文序号分配模块,在用于将所述第一报文发送至所述第一报文信息处理模块,所述第二报文发送至所述第二报文信息处理模块时,包括:
将所述第一报文的报文内容存储至所述报文存储模块的第一存储空间,所述第二报文的报文内容存储至所述报文存储模块的第二存储空间,并接收所述报文存储模块返回的所述第一存储空间和所述第二存储空间的地址;
将所述第一报文的报文序号、五元组信息和所述第一存储空间的地址封装后形成的第一报文信息发送至所述第一报文信息处理模块,所述第二报文的报文序号、五元组信息和所述第二存储空间的地址封装后形成的第二报文信息发送至所述第二报文信息处理模块;
所述报文调序模块,在用于依据为所述第一报文和所述第二报文分配的序号,对所述第一报文和所述第二报文进行报文保序处理时,包括:
响应于接收到处理后的所述第一报文信息和所述第二报文信息,以所述第一报文信息中包含的报文序号为地址,将所述第一报文信息存储至所述报文存储模块的第三存储空间,以所述第二报文信息中包含的报文序号为地址,将所述第二报文信息存储至所述报文存储模块的第四存储空间;
依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容;
将读取到的所述第一报文信息中的五元组信息和所述第一报文的报文内容组合得到更新后的第一报文,以及将所述第二报文信息中的五元组信息和所述第二报文的报文内容组合得到更新后的第二报文,并依次输出所述更新后的第一报文和所述更新后的第二报文。
8.根据权利要求7所述的装置,其特征在于,所述报文调序模块,在用于依据所述报文序号依次读取所述第三存储空间和所述第四存储空间得到所述第一报文信息和所述第二报文信息,并依据所述第一报文信息中包含的所述第一存储空间的地址、所述第二报文信息中包含的所述第二存储空间的地址依次读取所述第一存储空间和所述第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容时,包括:
将所述第三存储空间和所述第四存储空间的比特位置为1;
所述报文调序模块依据所述报文序号依次读取所述报文存储模块的存储空间;
响应于读取到比特位为1的第三存储空间和所述第四存储空间,读取所述第三存储空间中存储的第一报文信息和所述第四存储空间中存储的第二报文信息,并依据所述第一报文信息和所述第二报文信息中包含的存储空间的地址分别读取所述第一存储空间和第二存储空间,得到所述第一报文的报文内容和所述第二报文的报文内容,并将其比特位置为0。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,促使所述处理器实现权利要求1至4任一项所述的方法。
10.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至4任一项所述的方法。
CN202111536398.7A 2021-12-15 2021-12-15 一种报文保序的方法及装置 Active CN114338559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111536398.7A CN114338559B (zh) 2021-12-15 2021-12-15 一种报文保序的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111536398.7A CN114338559B (zh) 2021-12-15 2021-12-15 一种报文保序的方法及装置

Publications (2)

Publication Number Publication Date
CN114338559A true CN114338559A (zh) 2022-04-12
CN114338559B CN114338559B (zh) 2024-03-22

Family

ID=81053321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111536398.7A Active CN114338559B (zh) 2021-12-15 2021-12-15 一种报文保序的方法及装置

Country Status (1)

Country Link
CN (1) CN114338559B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405443A (zh) * 2023-03-28 2023-07-07 中科驭数(北京)科技有限公司 报文转发方法、装置、设备及存储介质
CN116405443B (zh) * 2023-03-28 2024-06-07 中科驭数(北京)科技有限公司 报文转发方法、装置、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055649A (zh) * 2009-10-29 2011-05-11 成都市华为赛门铁克科技有限公司 多核系统的报文处理方法、装置及系统
WO2011120467A2 (zh) * 2011-05-09 2011-10-06 华为技术有限公司 报文保序处理方法、保序协处理器和网络设备
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
CN105791296A (zh) * 2016-03-08 2016-07-20 浪潮集团有限公司 一种网络报文快速加解扰的方法
CN106713144A (zh) * 2016-12-27 2017-05-24 锐捷网络股份有限公司 一种报文出口信息的读写方法及转发引擎
WO2017206954A1 (zh) * 2016-06-03 2017-12-07 中兴通讯股份有限公司 一种光口实现方法、装置及现场可编程门阵列器件
CN107733813A (zh) * 2016-08-12 2018-02-23 中兴通讯股份有限公司 报文转发方法及装置
WO2019214550A1 (zh) * 2018-05-10 2019-11-14 中兴通讯股份有限公司 报文传输方法及装置、系统、存储介质、电子装置
US20200201570A1 (en) * 2018-12-20 2020-06-25 Samsung Electronics Co., Ltd. Method of writing data in storage device, storage device performing the same and storage system including the same
CN112666914A (zh) * 2021-03-17 2021-04-16 浙江国利信安科技有限公司 一种基于epa总线的无感切换冗余通信实现方法
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055649A (zh) * 2009-10-29 2011-05-11 成都市华为赛门铁克科技有限公司 多核系统的报文处理方法、装置及系统
WO2011120467A2 (zh) * 2011-05-09 2011-10-06 华为技术有限公司 报文保序处理方法、保序协处理器和网络设备
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
CN105791296A (zh) * 2016-03-08 2016-07-20 浪潮集团有限公司 一种网络报文快速加解扰的方法
WO2017206954A1 (zh) * 2016-06-03 2017-12-07 中兴通讯股份有限公司 一种光口实现方法、装置及现场可编程门阵列器件
CN107733813A (zh) * 2016-08-12 2018-02-23 中兴通讯股份有限公司 报文转发方法及装置
CN106713144A (zh) * 2016-12-27 2017-05-24 锐捷网络股份有限公司 一种报文出口信息的读写方法及转发引擎
WO2019214550A1 (zh) * 2018-05-10 2019-11-14 中兴通讯股份有限公司 报文传输方法及装置、系统、存储介质、电子装置
US20200201570A1 (en) * 2018-12-20 2020-06-25 Samsung Electronics Co., Ltd. Method of writing data in storage device, storage device performing the same and storage system including the same
CN112666914A (zh) * 2021-03-17 2021-04-16 浙江国利信安科技有限公司 一种基于epa总线的无感切换冗余通信实现方法
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
LIMIN ZHU等: "A fast recursive detailed routing algorithm for hierarchical FPGAs", 《PROCEEDINGS OF THE 2011 15TH INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN (CSCWD)》 *
张哲;崔骞;高小鹏;龙翔;: "面向多核平台的网络应用建模", 微电子学与计算机, no. 10 *
时向泉;苏金树;: "一种面向汇聚网络处理器模型的负载均衡算法", 计算机工程与科学, no. 12 *
温泽辉;: "一种动态切换TCP连接IP地址的实现方法", 科技信息, no. 12 *
胡晓峰, 孙志刚: "高性能路由器并行转发技术", 国防科技大学学报, no. 05, 25 October 2005 (2005-10-25) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405443A (zh) * 2023-03-28 2023-07-07 中科驭数(北京)科技有限公司 报文转发方法、装置、设备及存储介质
CN116405443B (zh) * 2023-03-28 2024-06-07 中科驭数(北京)科技有限公司 报文转发方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114338559B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
US9954798B2 (en) Network interface card having embedded virtual router
US9608917B1 (en) Systems and methods for achieving high network link utilization
CN105511954B (zh) 一种报文处理方法及装置
US10530846B2 (en) Scheduling packets to destination virtual machines based on identified deep flow
EP2928136B1 (en) Host network accelerator for data center overlay network
US9703743B2 (en) PCIe-based host network accelerators (HNAS) for data center overlay network
US8705366B2 (en) Dynamic load balancing without packet reordering
US20110216773A1 (en) Work-conserving packet scheduling in network devices
US9485191B2 (en) Flow-control within a high-performance, scalable and drop-free data center switch fabric
TW201703475A (zh) 用於使用多個連結的記憶體清單的方法及裝置
KR101639797B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
CN102594691A (zh) 一种处理报文的方法及装置
US20230283578A1 (en) Method for forwarding data packet, electronic device, and storage medium for the same
CN114079638A (zh) 多协议混合网络的数据传输方法、装置和存储介质
US10348651B2 (en) Apparatus and method for virtual switching
US9063841B1 (en) External memory management in a network device
CN114338559B (zh) 一种报文保序的方法及装置
CN113595919A (zh) 一种负载分担的方法及装置
CN115051958A (zh) 缓存分配方法、装置和设备
US10931591B2 (en) Allocation of virtual queues of a network forwarding element
US20170250923A1 (en) Interconnected Hardware Infrastructure Resource Control
CN109302353B (zh) 一种分配报文缓存空间的方法及装置
WO2022147762A1 (zh) 一种数据包排序方法及装置
KR102091152B1 (ko) 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치
CN116800684B (zh) Rdma网卡发送队列的性能隔离方法和rdma网卡

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
GR01 Patent grant
GR01 Patent grant