CN113542148A - 一种报文聚合方法、装置、网络网卡及可读存储介质 - Google Patents

一种报文聚合方法、装置、网络网卡及可读存储介质 Download PDF

Info

Publication number
CN113542148A
CN113542148A CN202110801108.0A CN202110801108A CN113542148A CN 113542148 A CN113542148 A CN 113542148A CN 202110801108 A CN202110801108 A CN 202110801108A CN 113542148 A CN113542148 A CN 113542148A
Authority
CN
China
Prior art keywords
message
aggregation
length
messages
preset
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
Application number
CN202110801108.0A
Other languages
English (en)
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.)
Eversec Beijing Technology Co Ltd
Original Assignee
Eversec Beijing 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 Eversec Beijing Technology Co Ltd filed Critical Eversec Beijing Technology Co Ltd
Priority to CN202110801108.0A priority Critical patent/CN113542148A/zh
Publication of CN113542148A publication Critical patent/CN113542148A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种报文聚合方法、装置、网络网卡及可读存储介质。该方法包括:在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度;实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。该方法可以在小字节报文占比较高时,将多个小字节报文进行聚合生成大字节的聚合报文,可以提升PCIE的带宽利用率。

Description

一种报文聚合方法、装置、网络网卡及可读存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种报文聚合方法、装置、网络网卡及可读存储介质。
背景技术
随着通信技术的发展,网络交互数据越来越多,网络交互数据通常是通过数据报文形式进行包处理的。以以太网传输为例,高速串行计算机扩展总线标准的传输接口(Peripheral Component Interconnect Express,PCIE)在进行数据报文传输时,单次传输的数据大小是固定的。当PCIE传输小字节数据报文时,单次传输的数据中会存在部分无效数据。即PCIE传输小字节数据时,无效数据会造成带宽浪费,降低PCIE的带宽利用率,导致网络网卡的报文收发效率低下,不满足网络设备对包处理的基本性能要求。
基于上述问题,本发明实施例提供了一种报文聚合方法、装置、网络网卡及可读存储介质,对满足条件的多个小字节报文进行聚合生成满足预设带宽利用率阈值的聚合报文,从而提高PCIE的带宽利用率。
发明内容
本发明实施例提供了一种报文聚合方法、装置、网络网卡及可读存储介质,可以提高PCIE的带宽利用率,进而提高网络网卡的报文收发效率。
第一方面,本发明实施例提供了一种报文聚合方法,该方法包括:
在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度;
实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
第二方面,本发明实施例还提供了一种报文聚合装置,该装置包括:
目标聚合长度确定模块,用于在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度;
报文总长度计算模块,用于实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
聚合报文生成模块,用于当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
第三方面,本发明实施例还提供了一种网络网卡,该网络网卡包括:
一个或多个处理器;其中,处理器中设置可编程逻辑阵列;
处理器与PCIE进行连接;PCIE,用于对报文进行传输;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的一种报文聚合方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的一种报文聚合方法。
本发明实施例的技术方案,通过在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度;实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,解决了小字节报文聚合的问题,实现了将多个小字节报文进行聚合生成大字节的聚合报文进行网络传输,提升PCIE带宽利用率的效果。
附图说明
图1a是本发明实施例一提供的一种报文聚合方法的流程图;
图1b是本发明实施例一提供的一种sdp_nic的结构示意图;
图1c是本发明实施例一提供的一种以太网帧结构的示意图;
图1d是本发明实施例一提供的一种聚合报文的聚合格式示意图;
图2a是本发明实施例二提供的一种报文聚合方法的流程图;
图2b是本发明实施例二提供的一种报文聚合方法的数据流图;
图2c是本发明实施例二提供的一种聚合报文的完成报文结构示意图;
图3是本发明实施例三提供的一种报文聚合装置的结构示意图;
图4是本发明实施例四提供的一种网络网卡的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一提供的一种报文聚合方法的流程图,本实施例可适用于以太网数据传输中,将小字节报文进行聚合传输的情况,该方法可以由报文聚合装置来执行,该装置可以通过软件,和/或硬件的方式实现,装置可以集成网络网卡如智能双端口网络接口控制器(smart dual port network nic,sdp_nic)在中,如图1a所示,该方法具体包括:
步骤110、在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度。
其中,sdp_nic中可以设置处理器,具体的可以是可编程逻辑阵列(FieldProgrammable Gate Array,FPGA)的处理器。图1b是本发明实施例一提供的一种sdp_nic的结构示意图。如图1b所示,sdp_nic可以具有包含FPGA编程的主处理器。主处理器可以连接双通道的内存条(Ddr4)。Ddr4的通道容量可以是8吉字节(Gb),可以是适配X64位操作系统。主处理器可以连接1路100G以太网接口,具体可以是四车道连接单元接口(Gaui4)。主处理器可以连接双路PCIE接口,具体的接口的传输速度可以是Gen3系列,一路可以为16个接口,另一路可以为8个接口。主处理器可以连接非易失闪存串行外设接口(Nor Flash SPI),容量可以是1Gb,接口速度可以是X4。本发明实施例的报文聚合方法以及聚合报文的传输可以通过上述的sdp_nic实现。
具体的,sdp_nic可以对待传输的小字节报文进行实时监控。当sdp_nic确定小字节报文在所有待传输报文中的占比较高时,即小字节报文超过预设的比例阈值时,可以确定小字节报文需要进行聚合。当小字节数据报文占比较高时,进行报文聚合生成大字节的数据报文进行传输,可以提高PCIE的带宽利用率。
在本发明实施例中,数据报文的长度与PCIE的带宽越契合,PCIE的带宽利用率越高。sdp_nic可以通过发送不同长度的数据包进行PCIE带宽利用率的计算。可以将带宽利用率的最高值确定为预设带宽利用率阈值,并将与最高值对应的数据包长度确定为目标聚合长度。示例性的,目标聚合长度可以是PCIE带宽的整数倍,可以最大可能的提高PCIE的带宽利用率。
步骤120、实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度。
其中,报文总长度可以是各个小字节报文的长度之和。图1c是本发明实施例一提供的一种以太网帧结构的示意图。数据报文可以是通过以太网帧构成的。如图1c所示,以太网每个帧之间会有帧间距(Inter-Packet Gap,IPG),默认帧间距大小为12字节。每个帧还有7个字节的前导(Preamble),和1个字节的帧首定界符(Start Frame Delimiter,SFD)。帧的有效内容主要是以太网的目的地址、源地址、以太网类型以及负载。帧尾部可以有校验码,默认大小为4个字节。
网络设备对于数据报文的处理通常均具有性能要求,如吞吐量、延迟、丢包率或者抖动等。对于数据报文的传输,通常通过帧转发率而不是比特率进行传输能力衡量。在本发明实施例中,帧转发率可以通过公式计算,如通过公式
Figure BDA0003164571310000061
根据帧转发率的计算公式以及帧结构,可以确定小字节报文的长度可以通过帧间距、前导、帧首定界符以及有效内容尺寸确定。
步骤130、当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
其中,目标聚合长度的触发条件可以具有多种形式。例如,目标聚合长度的触发条件可以是目标聚合长度与当前报文总长度的差值不足以再增加新的小字节报文。或者,目标聚合长度的触发条件可以是当前报文总长度再增加下一小字节报文的长度时,大于目标聚合长度。或者,目标聚合长度的触发条件还可以具有其他附加条件。
在本发明实施例的一个可选实施方式中,在实时获取待传输报文加入至聚合报文集合中之后,还包括:实时统计聚合报文集合中包括的报文总数量;当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:当报文总长度累加至满足目标聚合长度的触发条件,且报文总数量未超过预设的报文数量阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
其中,报文总数量可以是小字节报文的总个数。预设的报文数量阈值可以是根据预设聚合格式所设定的可以聚合的报文个数上限。例如,预设聚合格式中可以通过设置预设长度记录各小字节报文的信息,其中预设长度可以限制小字节报文个数上限。例如,预设长度可以记录20个小字节报文的信息时,预设的报文数量阈值可以是20。
在本发明实施例中,小字节报文的总个数达到了预设的报文数量阈值,可以作为触发报文进行聚合的条件之一。具体的,报文聚合的触发条件可以是在报文总数量未超过预设的报文数量阈值时,报文总长度累加至满足目标聚合长度的触发条件;或者,报文总数量达到预设的报文数量阈值。
在本发明实施例的一个可选实施方式中,在实时获取待传输报文加入至聚合报文集合中之后,还包括:实时更新聚合报文集合中加入的首个报文的传输等待时间;当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:当报文总长度累加至满足目标聚合长度的触发条件,且传输等待时间未超过预设的超时阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
其中,传输等待时间可以通过多种方式进行确定。例如,首个报文达到时,可以记录报文到达的时间,当前时间与首个报文到达时间的差值,即为传输等待时间。或者,可以记录各报文与前一到达报文的相对时间戳,根据相对时间戳确定传输等待时间。例如,首个报文的相对时间戳可以为0,当前到达报文相对于首个报文的基准时间戳信息可以确定为传输等待时间。
在本发明实施例中,传输等待时间达到预设的超时阈值可以作为报文聚合的触发条件之一。具体的,报文聚合的触发条件可以是传输等待时间未超过预设的超时阈值时,报文总长度累加至满足目标聚合长度的触发条件;或者,传输等待时间达到预设的超时阈值。
示例性的,本发明实施例中的报文聚合的触发条件可以是:判断报文总长度是否累加至满足目标聚合长度的触发条件,判断传输等待时间是否超过预设的超时阈值,并判断报文总数量是否超过预设的报文数量阈值,若上述三个判断条件中任一条件的判断结果为是,即可触发报文聚合。可以避免聚合报文过长,无法最大可能提高PCIE的带宽利用率;可以避免小字节报文传输等待时间过长,造成以太网数据传输速度受到影响;还可以避免小字节报文数量过多,造成小字节报文的聚合以及后续的分解处理繁琐。
在本发明实施例的一个可选实施方式中,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:将聚合报文集合中各报文以及与各报文分别对应的报文信息进行拼接,生成聚合报文;其中,各报文信息共同占用聚合报文的预设长度。
其中,报文信息可以是各报文单独的信息,可以是各报文形成的综合信息。报文信息可以占用聚合报文的预设长度,可以便于后续对聚合报文进行分解时,直接定位至报文信息,根据报文信息进行分解,不至于造成分解操作的繁琐。示例性的,预设长度可以是256字节。
在本发明实施例的一个可选实施方式中,报文信息,包括:聚合报文集合的报文总数量、各报文的报文总长度累加值、各报文的报文总长度、各报文的相对时间戳以及各报文的校验信息。
其中,图1d是本发明实施例一提供的一种聚合报文的聚合格式示意图。如图1d所示,可以将各小字节报文按照待传输的数据依次进行拼接,可以保证以太网数据传输时的先后性,并且不影响各小字节报文的自身结构以及数据,便于后续对小字节报文的恢复操作。如图1d所示,所有小字节报文拼接后,还可以拼接报文信息。其中,报文信息可以占用256字节。报文信息占用的预设长度可以决定小字节报文的数量上限,即报文数量阈值。
在本发明实施例中,聚合报文集合的报文总数量,可以是聚合报文中包含的小字节报文个数,可以占用1字节。
各报文的报文总长度累加值可以是聚合报文的总长度,可以占用1字节。具体的,各报文的报文总长度累加值可以是各小字节报文的长度以及报文信息的预设长度之和;或者,各报文的报文总长度累加值可以是各小字节报文的长度、报文信息的预设长度以及无效数据长度之和。
示例性的,各报文的报文总长度累加值可以是以64字节为单位的,可以最大可能提高PCIE带宽利用率。当各小字节报文的长度以及报文信息的预设长度之和不满足64字节的整倍数条件时,可以在聚合报文中增加无效数据,使聚合报文的长度是64字节的整倍数。具体的,可以在聚合报文中增加0。例如,可以在末尾小字节报文与报文信息之间插入0,可以避免由于聚合报文中插入无效数据造成聚合报文分解时无法准确丁文报文信息的情况。
各报文的报文总长度可以是各小字节报文的报文长度,可以占用2字节。各报文的相对时间戳可以是当前小字节报文相对于上一小字节报文的偏移计数值,可以占用3字节。其中,每个计数可以是100纳秒。各报文的校验信息可以是各小字节报文的循环冗余校验码(Cyclic Redundancy Check,CRC),可以占用5字节。具体的,各报文的校验信息可以是CRC64校验算法生成的校验码。
其中,各报文的报文总长度、各报文的相对时间戳以及各报文的校验信息可以是分别与各小字节报文对应的。如图1d所示,各小字节报文的上述信息可以按照小字节报文的顺序排序存储。报文信息可以作为聚合报文的报文头结构,用于应用端接收聚合报文后,根据报文信息进行聚合报文的拆解处理。
本实施例的技术方案,通过在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度;实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,解决了小字节报文传输时造成PCIE带宽利用率差的问题,实现了将多个小字节报文进行聚合生成大字节的聚合报文,提升PCIE的带宽利用率以及网络网卡的报文收发效率的效果。
发明人在实际研究中发现,越小的数据包,对性能要求越高。具体的,线速(WireSpeed)是线缆中流过的帧理论上支持的最大帧数。用以太网(Ethernet)为例,一般所说的接口带宽,代表以太接口线路上所能承载的最高传输比特率,其单位是位/秒(bit persecond,bit/s),如1Gbit/s、10Gbit/s、25Gbit/s、40Gbit/s以及100Gbit/s等。帧转发率的倒数表示了线速情况下先后两个包到达的时间间隔。表1是本发明实施例一提供的一种数据报文传输性能结果表。如表1所示,将不同包长按照特定的速率计算可得到一个以太帧转发率。仔细观察可以发现在相同带宽速率下,包长越小的包,转发率越高,帧间延迟也越小。
表1
Figure BDA0003164571310000101
发明人认为如果把处理一个数据包的整个生命周期看作是工厂的生产流水线,那么就要保证在这个流水线上,不能有任何一级流水处理的延迟超过对应的时间间隔。因此,对任何一个数据包处理流水线来说,越小的数据包,对性能要求越高。如果服务器性能低下,那么可能是由于网络负载较大。标准的以太网数据包大小为64-1518个字节,大多数文件被拆分为成百上千甚至上百万个数据包或者帧。这些小的数据包通过网络传输,和众多节点共享网络带宽,但是数据帧的发送与接收会带来处理器(CPU)开销。
本发明实施例的技术方案可以解决该性能开销,通过可编程逻辑列阵技术,将网卡接收到的小字节报文进行聚合,多个小字节报文组合成为一个大字节报文进行传输,从而降低小字节报文对性能的需求。
实施例二
图2a是本发明实施例二提供的一种报文聚合方法的流程图。本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。
具体的,在本发明实施例的一个可选实施方式中,实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度,包括:
按照分队列算法,对待传输报文进行队列划分形成多队列;
将待传输报文加入当前队列的聚合报文集合中,并累加计算当前队列的聚合报文集合中各报文的报文总长度;
当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:
当多队列中存在目标队列的报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对目标队列的聚合报文集合中各报文进行聚合,生成聚合报文。
如图2a所示,该方法包括:
步骤210、在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据PCIE的预设带宽利用率阈值,确定目标聚合长度。
步骤220、按照分队列算法,对待传输报文进行队列划分形成多队列。
其中,图2b是本发明实施例二提供的一种报文聚合方法的数据流图。如图2b所示,sdp_nic支持以太网和PCIE之间的双向数据流。上行链路数据由100G以太网到PCIE通道,为sdp_nic的主要数据处理路径,需要进行报文缓存、报文解析、多队列形成以及报文聚合等处理。下行链路数据由PCIE到以太网通道,为简单数据处理路径,执行数据选择器(mux2-1)的调度处理,将双路PCIE的数据调度到1个以太网接口。
如图2b所示,配置和寄存器通道由PCIE连接的寄存器(Cfg&&Reg)提供,执行双路冗余处理,PCIE0和PCIE1均可提供配置和寄存器数据,逻辑处理执行单路生效。远程升级通道(Remote_update)由PCIE提供,执行双路冗余处理,PCIE0和PCIE1均可提供远程升级数据,逻辑处理执行单路生效。目标聚合长度可以是通过PCIE所连接的寄存器由用户根据需求自行配置,或者,也可以根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度。
其中,分队列算法可以是接收端缩放(Receive Side Scaling,RSS)哈希(hash)算法。其中,RSS是一种网卡驱动技术,可以让多核系统中跨多个处理器的网络收包处理能力高效能分配。
示例性的,分队列算法可以将各小字节报文的标识信息进行hash计算,按照hash值分为128个队列,并行进行报文聚合操作。各队列可以存储在静态随机存取存储器(Static Random-Access Memory,SRAM)以及内存(ddr4)中。
步骤230、将待传输报文加入当前队列的聚合报文集合中,并累加计算当前队列的聚合报文集合中各报文的报文总长度。
其中,可以按照队列的方式进行聚合报文集合的生成,分别针对各队列进行报文总长度确定,进而生成聚合报文,可以提升聚合报文的生成速度,提高以太网数据的传输效率。
步骤240、当多队列中存在目标队列的报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对目标队列的聚合报文集合中各报文进行聚合,生成聚合报文。
步骤250、根据报文信息、PCIE确定的聚合报文长度以及聚合报文标识,生成聚合报文的完成报文。
其中,图2c是本发明实施例二提供的一种聚合报文的完成报文结构示意图。如图2c所示,完成报文可以具有下述信息:基准时间戳信息、PCIE确定的聚合报文长度以及聚合报文标识。
其中,基准时间戳信息可以通过报文信息中的相对时间戳确定。基准时间戳信息可以通过计数值体现,每个计数可以是100纳秒。基准时间戳信息可以占用8字节。PCIE确定的聚合报文长度可以是PCIE采用的直接存储器访问(Direct Memory Access,DMA)所上报的报文长度,可以占用2字节。聚合报文标识可以包括标识描述符、CRC信息标识以及是否为聚合报文标识,可以分别占用1位。标识描述符可以标识PCIE内部的处理模式,CRC信息标识可以标识当前报文是否包含CRC校验信息,是否为聚合报文标识可以标识当前报文是否为聚合报文。完成报文中还可以具有未被占用的空字节,可以进行信息预留,便于后续的更新操作。完成报文中也可以具有保留位,用于进行1字节(8位)的对齐操作。
步骤260、将完成报文上传至驱动层,并将聚合报文经由驱动层上传至应用端。
其中,驱动层,用于解析完成报文,并根据完成报文确定聚合报文是否需要进行分解;应用端,用于当接收到驱动层的分解指示时,根据报文信息按照分解指示的方式对聚合报文进行分解,得到聚合报文集合中的各报文,并根据各报文进行业务处理。
在本发明实施例中,驱动层可以对完成报文进行解析,确定当前报文是否为聚合报文。如果否,驱动层可以通知应用端无需对当前报文进行分解操作。如果是,驱动层可以进一步通过完成报文分析PCIE的传输方式等信息,并将得到的信息传输至应用端,指示应用端根据信息对当前报文进行分解。应用端进行聚合报文的分解时,可以按照驱动层的指示,获取聚合报文的报头中的报文信息,按照各小字节报文长度确定小字节报文的存储位置,进行分解得到各个小字节报文。
本实施例的技术方案,通过在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;按照分队列算法,对待传输报文进行队列划分形成多队列;将待传输报文加入当前队列的聚合报文集合中,并累加计算当前队列的聚合报文集合中各报文的报文总长度;当多队列中存在目标队列的报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对目标队列的聚合报文集合中各报文进行聚合,生成聚合报文;根据报文信息、PCIE确定的聚合报文长度以及聚合报文标识,生成聚合报文的完成报文;将完成报文上传至驱动层,并将聚合报文经由驱动层上传至应用端,解决了小字节报文传输时造成PCIE带宽利用率差的问题,实现了将多个小字节报文进行聚合生成大字节的聚合报文,提升聚合报文生成速度、PCIE的带宽利用率以及网络网卡的报文收发效率,并便于对聚合报文进行分解的效果。
实施例三
图3是本发明实施例三提供的一种报文聚合装置的结构示意图。结合图3,该装置包括:目标聚合长度确定模块310,报文总长度计算模块320和聚合报文生成模块330。其中:
目标聚合长度确定模块310,用于在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;
报文总长度计算模块320,用于实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
聚合报文生成模块330,用于当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
可选的,该装置,还包括:
报文总数量统计模块,用于在实时获取待传输报文加入至聚合报文集合中之后,实时统计聚合报文集合中包括的报文总数量;
聚合报文生成模块330,包括:
第一聚合报文生成单元,用于当报文总长度累加至满足目标聚合长度的触发条件,且报文总数量未超过预设的报文数量阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
可选的,该装置,还包括:
传输等待时间更新模块,用于在实时获取待传输报文加入至聚合报文集合中之后,实时更新聚合报文集合中加入的首个报文的传输等待时间;
聚合报文生成模块330,包括:
第二聚合报文生成单元,用于当报文总长度累加至满足目标聚合长度的触发条件,且传输等待时间未超过预设的超时阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
可选的,聚合报文生成模块330,包括:
第三聚合报文生成单元,用于将聚合报文集合中各报文以及与各报文分别对应的报文信息进行拼接,生成聚合报文;
其中,各报文信息共同占用聚合报文的预设长度。
可选的,报文信息,包括:聚合报文集合的报文总数量、各报文的报文总长度累加值、各报文的报文总长度、各报文的相对时间戳以及各报文的校验信息。
可选的,报文总长度计算模块320,包括:
多队列形成单元,用于按照分队列算法,对待传输报文进行队列划分形成多队列;
报文总长度累加单元,用于将待传输报文加入当前队列的聚合报文集合中,并累加计算当前队列的聚合报文集合中各报文的报文总长度;
聚合报文生成模块330,包括:
第四聚合报文生成单元,用于当多队列中存在目标队列的报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对目标队列的聚合报文集合中各报文进行聚合,生成聚合报文。
可选的,该装置,还包括:
完成报文生成模块,用于在当报文总长度累加至满足目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文之后,根据报文信息、PCIE确定的聚合报文长度以及聚合报文标识,生成聚合报文的完成报文;
报文发送模块,用于将完成报文上传至驱动层,并将聚合报文经由驱动层上传至应用端;
其中,驱动层,用于解析完成报文,并根据完成报文确定聚合报文是否需要进行分解;
应用端,用于当接收到驱动层的分解指示时,根据报文信息按照分解指示的方式对聚合报文进行分解,得到聚合报文集合中的各报文,并根据各报文进行业务处理。
本发明实施例所提供的报文聚合装置可执行本发明任意实施例所提供的报文聚合方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种网络网卡的结构示意图,如图4所示,该网络网卡包括:
一个或多个处理器410,图4中以一个处理器410为例;其中,处理器410中设置FPGA;
处理器与PCIE进行连接;PCIE,用于对报文进行传输;
存储器420;
所述设备还可以包括:输入装置430和输出装置440。
所述设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种报文聚合方法对应的程序指令/模块(例如,附图3所示的目标聚合长度确定模块310,报文总长度计算模块320和聚合报文生成模块330)。处理器410中的FPGA通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种报文聚合方法,即:
在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;
实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种报文聚合方法:
在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;
实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种报文聚合方法,其特征在于,所述方法包括:
在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;
实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
2.根据权利要求1所述的方法,其特征在于,在实时获取待传输报文加入至聚合报文集合中之后,还包括:
实时统计所述聚合报文集合中包括的报文总数量;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:
当所述报文总长度累加至满足所述目标聚合长度的触发条件,且报文总数量未超过预设的报文数量阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
3.根据权利要求2所述的方法,其特征在于,在实时获取待传输报文加入至聚合报文集合中之后,还包括:
实时更新所述聚合报文集合中加入的首个报文的传输等待时间;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:
当所述报文总长度累加至满足所述目标聚合长度的触发条件,且所述传输等待时间未超过预设的超时阈值时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
4.根据权利要求1所述的方法,其特征在于,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:
将聚合报文集合中各报文以及与各报文分别对应的报文信息进行拼接,生成聚合报文;
其中,各所述报文信息共同占用所述聚合报文的预设长度。
5.根据权利要求4所述的方法,其特征在于,所述报文信息,包括:聚合报文集合的报文总数量、各报文的报文总长度累加值、各报文的报文总长度、各报文的相对时间戳以及各报文的校验信息。
6.根据权利要求1所述的方法,其特征在于,实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度,包括:
按照分队列算法,对待传输报文进行队列划分形成多队列;
将所述待传输报文加入当前队列的聚合报文集合中,并累加计算当前队列的聚合报文集合中各报文的报文总长度;
当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文,包括:
当所述多队列中存在目标队列的报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对目标队列的聚合报文集合中各报文进行聚合,生成聚合报文。
7.根据权利要求4或5所述的方法,其特征在于,在当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文之后,还包括:
根据所述报文信息、PCIE确定的聚合报文长度以及聚合报文标识,生成所述聚合报文的完成报文;
将所述完成报文上传至驱动层,并将所述聚合报文经由驱动层上传至应用端;
其中,所述驱动层,用于解析所述完成报文,并根据所述完成报文确定所述聚合报文是否需要进行分解;
所述应用端,用于当接收到所述驱动层的分解指示时,根据所述报文信息按照所述分解指示的方式对所述聚合报文进行分解,得到聚合报文集合中的各报文,并根据各报文进行业务处理。
8.一种报文聚合装置,其特征在于,所述装置包括:
目标聚合长度确定模块,用于在监控到设定时长内所传输的小字节报文超过预设的比例阈值时,根据传输接口PCIE的预设带宽利用率阈值,确定目标聚合长度;
报文总长度计算模块,用于实时获取待传输报文加入至聚合报文集合中,并累加计算聚合报文集合中各报文的报文总长度;
聚合报文生成模块,用于当所述报文总长度累加至满足所述目标聚合长度的触发条件时,按照预设聚合格式对聚合报文集合中各报文进行聚合,生成聚合报文。
9.一种网络网卡,其特征在于,包括:
一个或多个处理器;其中,所述处理器中设置可编程逻辑阵列;
所述处理器与传输接口PCIE进行连接;所述PCIE,用于对报文进行传输;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器中的可编程逻辑阵列执行时,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202110801108.0A 2021-07-15 2021-07-15 一种报文聚合方法、装置、网络网卡及可读存储介质 Pending CN113542148A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110801108.0A CN113542148A (zh) 2021-07-15 2021-07-15 一种报文聚合方法、装置、网络网卡及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110801108.0A CN113542148A (zh) 2021-07-15 2021-07-15 一种报文聚合方法、装置、网络网卡及可读存储介质

Publications (1)

Publication Number Publication Date
CN113542148A true CN113542148A (zh) 2021-10-22

Family

ID=78099456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110801108.0A Pending CN113542148A (zh) 2021-07-15 2021-07-15 一种报文聚合方法、装置、网络网卡及可读存储介质

Country Status (1)

Country Link
CN (1) CN113542148A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968893A (zh) * 2022-07-27 2022-08-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备
EP4287566A1 (en) * 2022-06-01 2023-12-06 Motorcomm Electronic Technology Co., Ltd. High-efficiency transmission ethernet device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030943A (zh) * 2007-04-03 2007-09-05 华为技术有限公司 一种发送报文的方法和路由器
CN101252534A (zh) * 2008-03-28 2008-08-27 清华大学 通过链路层报文合并提高移动自组织网络通信容量的方法
CN102905311A (zh) * 2012-09-29 2013-01-30 北京傲天动联技术有限公司 数据报文聚合装置和数据报文聚合方法
CN104753813A (zh) * 2013-12-27 2015-07-01 国家计算机网络与信息安全管理中心 Dma传送报文的方法
CN105956183A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司电力调度控制中心 一种分布式数据库中海量小文件的多级优化存储方法及系统
CN106921665A (zh) * 2017-03-06 2017-07-04 北京东土军悦科技有限公司 一种报文处理方法及网络设备
CN111404872A (zh) * 2019-11-21 2020-07-10 杭州海康威视系统技术有限公司 一种报文处理方法、装置及系统
CN111404839A (zh) * 2020-03-20 2020-07-10 国家计算机网络与信息安全管理中心 报文处理方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030943A (zh) * 2007-04-03 2007-09-05 华为技术有限公司 一种发送报文的方法和路由器
CN101252534A (zh) * 2008-03-28 2008-08-27 清华大学 通过链路层报文合并提高移动自组织网络通信容量的方法
CN102905311A (zh) * 2012-09-29 2013-01-30 北京傲天动联技术有限公司 数据报文聚合装置和数据报文聚合方法
CN104753813A (zh) * 2013-12-27 2015-07-01 国家计算机网络与信息安全管理中心 Dma传送报文的方法
CN105956183A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司电力调度控制中心 一种分布式数据库中海量小文件的多级优化存储方法及系统
CN106921665A (zh) * 2017-03-06 2017-07-04 北京东土军悦科技有限公司 一种报文处理方法及网络设备
CN111404872A (zh) * 2019-11-21 2020-07-10 杭州海康威视系统技术有限公司 一种报文处理方法、装置及系统
CN111404839A (zh) * 2020-03-20 2020-07-10 国家计算机网络与信息安全管理中心 报文处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4287566A1 (en) * 2022-06-01 2023-12-06 Motorcomm Electronic Technology Co., Ltd. High-efficiency transmission ethernet device
CN114968893A (zh) * 2022-07-27 2022-08-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备
CN114968893B (zh) * 2022-07-27 2022-09-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备

Similar Documents

Publication Publication Date Title
US10841230B1 (en) Intelligent controller and sensor network bus, system and method
CN111769998B (zh) 一种网络时延状态的探测方法及装置
US10791054B2 (en) Flow control and congestion management for acceleration components configured to accelerate a service
US11272396B2 (en) Frame aggregation method, network setting frame sending method, and device
US20220217051A1 (en) Method, Device, and System for Determining Required Bandwidth for Data Stream Transmission
US8310934B2 (en) Method and device for controlling information channel flow
US11089140B2 (en) Intelligent controller and sensor network bus, system and method including generic encapsulation mode
CN113542148A (zh) 一种报文聚合方法、装置、网络网卡及可读存储介质
CN110505112B (zh) 一种网络性能监测方法、装置和存储介质
US20220191140A1 (en) Data transmission control method, apparatus, and storage medium
JP2023514790A (ja) ネットワーク性能検出方法及び機器、並びにネットワーク装置
CN111026324B (zh) 转发表项的更新方法及装置
CN117176486A (zh) 网络信息传输系统
CN109547356B (zh) 一种电能计量的数据传输方法、系统、设备及计算机存储介质
CN113726681B (zh) 一种网络拥塞控制方法及网络设备
KR20220006606A (ko) 메시지 처리 방법 및 관련 장치
US20070291782A1 (en) Acknowledgement filtering
US10326696B2 (en) Transmission of messages by acceleration components configured to accelerate a service
CN115118663A (zh) 结合带内网络遥测获取网络拥塞信息的方法
WO2023272532A1 (zh) 一种拥塞处理方法、装置、网络设备以及存储介质
CN108614792B (zh) 1394事务层数据包存储管理方法及电路
CN115514709B (zh) 拥塞控制事件队列调度方法、装置、设备和存储介质
CN113660293B (zh) 面向SRv6云网的IOAM数据发布优化方法及系统
WO2019015487A1 (zh) 一种数据重传处理方法、rlc实体和mac实体
CN117014967A (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