本技术涉及网络通信,具体而言,涉及一种报文数据处理方法、装置、电子设备及存储介质。
背景技术:
1、在报文数据传输过程中,为了确保报文数据的完整性和准确性,通常在报文数据内增加校验和字段,当报文数据传输完成后接收者可根据校验和的数值判断是否接收到了所有传输的报文数据。
2、目前,传统的校验和计算方式主要包括串行计算和硬件并行计算两种方式。其中,串行计算方式计算性能较差,且延迟较高,硬件并行计算方式难以确定报文数据中需要开始计算校验和的部分,并且难以提取报文数据中构建伪首部的数据并计算校验和。因此,采用上述两种方式计算校验和的效率均较低。
技术实现思路
1、本技术的目的在于,针对上述现有技术中的不足,提供一种报文数据处理方法、装置、电子设备及存储介质,以解决现有技术中报文数据校验和的计算效率较低的问题。
2、为实现上述目的,本技术实施例采用的技术方案如下:
3、第一方面,本技术实施例提供了一种报文数据处理方法,所述方法包括:
4、获取目标报文类型的目标报文,并获取多个预设时钟周期内所述目标报文对应的第一报文数据,所述目标报文类型为报文内部具有校验和字段,且在对报文数据进行校验和计算时需要构造报文的伪首部进行校验的报文类型;
5、基于所述第一报文数据,确定用于构造伪首部的数据字段,并基于所述数据字段确定伪首部的第一校验和;
6、基于所述第一报文数据以及预设的时钟周期处理数据量,确定对目标报文数据进行校验和计算处理的目标时钟周期,所述目标报文数据为所述目标报文中需要进行校验和计算的报文数据;
7、在所述目标时钟周期内启动预设数量的计算模块,通过所述预设数量的计算模块并行执行所述目标报文数据的校验和计算处理,以得到所述目标报文数据的校验和,其中,在处理所述目标报文数据中的校验和字段时,将对应所述校验和字段的计算模块的输入由所述校验和字段的数据替换为所述第一校验和。
8、作为一种可能的实现方式,所述目标报文包括以太网首部、网际互连协议首部、目标报文数据首部、用户数据和以太网尾部;
9、所述获取多个预设时钟周期内所述目标报文对应的第一报文数据,包括:
10、基于所述目标报文的报文格式,确定各预设时钟周期对应的数据采集类型;
11、根据各预设时钟周期对应的数据采集类型,在各预设时钟周期内采集满足各预设时钟周期对应的数据采集类型的所述第一报文数据,所述第一报文数据至少包括:以太网首部的长度、网际互连协议首部的首部长度字段、网际互连协议的总长度字段、协议号、源地址和目的地址。
12、作为一种可能的实现方式,所述基于所述第一报文数据以及预设的时钟周期处理数据量,确定对目标报文数据进行校验和计算处理的目标时钟周期,包括:
13、获取所述第一报文数据中确定起始时钟周期和结束时钟周期的标签字段;
14、基于所述标签字段以及预设的时钟周期处理数据量,确定所述起始时钟周期和所述结束时钟周期;
15、将所述起始时钟周期与所述结束时钟周期之间的时钟周期确定为中间时钟周期,其中,所述目标时钟周期包括所述起始时钟周期、中间时钟周期和结束时钟周期。
16、作为一种可能的实现方式,所述基于所述标签字段以及预设的时钟周期处理数据量,确定所述起始时钟周期和所述结束时钟周期,包括:
17、基于所述第一报文数据中网际互连协议首部的首部长度字段和网际互连协议的总长度字段,确定所述目标报文中网际互连协议首部的数据长度以及网际互连协议首部与所述目标报文数据的数据长度之和;
18、对所述网际互连协议首部的数据长度和所述以太网首部的长度进行求和处理,得到第一目标长度;
19、对所述网际互连协议首部与所述目标报文数据的数据长度之和与所述以太网首部的长度进行求和处理,得到第二目标长度;
20、对所述第一目标长度和所述第二目标长度分别基于预设的时钟周期处理数据量进行取余处理,并根据取余结果确定所述起始时钟周期和所述结束时钟周期。
21、作为一种可能的实现方式,所述基于所述第一报文数据,确定用于构造伪首部的数据字段,并基于所述数据字段确定伪首部的第一校验和,包括:
22、根据所述网际互连协议首部的首部长度和所述网际互连协议的总长度,确定所述目标报文数据的总长度;
23、将所述源地址、目的地址、所述目标报文数据的总长度和所述目标报文的协议号作为用于构造伪首部的数据字段,并基于所述源地址、目的地址、所述目标报文数据的总长度和所述目标报文的协议号确定所述伪首部的所述第一校验和。
24、作为一种可能的实现方式,所述在所述目标时钟周期内启动预设数量的计算模块,包括:
25、根据所述起始时钟周期内所述目标报文数据的数据长度和计算模块的数据处理量,确定在所述起始时钟周期内所启动的计算模块的预设数量;
26、根据所述结束时钟周期内所述目标报文数据的数据长度和计算模块的数据处理量,确定在所述结束时钟周期内所启动的计算模块的预设数量;
27、在所述中间时钟周期内,启动所有的计算模块,所有计算模块的数据处理量之和与预设的时钟周期处理数据量一致。
28、作为一种可能的实现方式,所述在处理所述目标报文数据中的校验和字段时,将对应所述校验和字段的计算模块的输入由所述校验和字段的数据替换为所述第一校验和,包括:
29、确定所述目标报文数据中的检验和字段出现的时钟周期;
30、确定所述检验和字段对应的目标计算模块,并为所述目标计算模块设置标记;
31、在所述检验和字段出现的时钟周期内处理校验和字段时,将所述目标计算模块处理的输入由所述校验和字段的数据替换为第一校验和。
32、第二方面,本技术实施例提供了一种报文数据处理装置,所述装置包括:
33、获取模块,用于获取目标报文类型的目标报文,并获取多个预设时钟周期内所述目标报文对应的第一报文数据,所述目标报文类型为报文内部具有校验和字段,且在对报文数据进行校验和计算时需要构造报文的伪首部进行校验的报文类型;
34、第一确定模块,用于基于所述第一报文数据,确定用于构造伪首部的数据字段,并基于所述数据字段确定伪首部的第一校验和;
35、第二确定模块,用于基于所述第一报文数据以及预设的时钟周期处理数据量,确定对目标报文数据进行校验和计算处理的目标时钟周期,所述目标报文数据为所述目标报文中需要进行校验和计算的报文数据;
36、执行模块,用于在所述目标时钟周期内启动预设数量的计算模块,通过所述预设数量的计算模块并行执行所述目标报文数据的校验和计算处理,以得到所述目标报文数据的校验和,其中,在处理所述目标报文数据中的校验和字段时,将对应所述校验和字段的计算模块的输入由所述校验和字段的数据替换为所述第一校验和。
37、作为一种可能的实现方式,所述目标报文包括以太网首部、网际互连协议首部、目标报文数据首部、用户数据和以太网尾部;
38、所述获取模块具体用于:基于所述目标报文的报文格式,确定各预设时钟周期对应的数据采集类型;
39、根据各预设时钟周期对应的数据采集类型,在各预设时钟周期内采集满足各预设时钟周期对应的数据采集类型的所述第一报文数据,所述第一报文数据至少包括:以太网首部的长度、网际互连协议首部的首部长度字段、网际互连协议的总长度字段、协议号、源地址和目的地址。
40、作为一种可能的实现方式,所述第二确定模块具体用于:
41、获取所述第一报文数据中确定起始时钟周期和结束时钟周期的标签字段;
42、基于所述标签字段以及预设的时钟周期处理数据量,确定所述起始时钟周期和所述结束时钟周期;
43、将所述起始时钟周期与所述结束时钟周期之间的时钟周期确定为中间时钟周期,其中,所述目标时钟周期包括所述起始时钟周期、中间时钟周期和结束时钟周期。
44、作为一种可能的实现方式,所述第二确定模块还用于:
45、基于所述第一报文数据中网际互连协议首部的首部长度字段和网际互连协议的总长度字段,确定所述目标报文中网际互连协议首部的数据长度以及网际互连协议首部与所述目标报文数据的数据长度之和;
46、对所述网际互连协议首部的数据长度和所述以太网首部的长度进行求和处理,得到第一目标长度;
47、对所述网际互连协议首部与所述目标报文数据的数据长度之和与所述以太网首部的长度进行求和处理,得到第二目标长度;
48、对所述第一目标长度和所述第二目标长度分别基于预设的时钟周期处理数据量进行取余处理,并根据取余结果确定所述起始时钟周期和所述结束时钟周期。
49、作为一种可能的实现方式,所述第一确定模块具体用于:
50、根据所述网际互连协议首部的首部长度和所述网际互连协议的总长度,确定所述目标报文数据的总长度;
51、将所述源地址、目的地址、所述目标报文数据的总长度和所述目标报文的协议号作为用于构造伪首部的数据字段,并基于所述源地址、目的地址、所述目标报文数据的总长度和所述目标报文的协议号确定所述伪首部的所述第一校验和。
52、作为一种可能的实现方式,所述执行模块具体用于:
53、根据所述起始时钟周期内所述目标报文数据的数据长度和计算模块的数据处理量,确定在所述起始时钟周期内所启动的计算模块的预设数量;
54、根据所述结束时钟周期内所述目标报文数据的数据长度和计算模块的数据处理量,确定在所述结束时钟周期内所启动的计算模块的预设数量;
55、在所述中间时钟周期内,启动所有的计算模块,所有计算模块的数据处理量之和与预设的时钟周期处理数据量一致。
56、作为一种可能的实现方式,所述执行模块具体用于:
57、确定所述目标报文数据中的检验和字段出现的时钟周期;
58、确定所述检验和字段对应的目标计算模块,并为所述目标计算模块设置标记;
59、在所述检验和字段出现的时钟周期内处理校验和字段时,将所述目标计算模块处理的输入由所述校验和字段的数据替换为第一校验和。
60、第三方面,本技术实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,在电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述报文数据处理方法的步骤。
61、第四方面,本技术实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述报文数据处理方法的步骤。
62、根据本技术实施例的报文数据处理方法、装置、电子设备及存储介质,获取目标报文类型的目标报文以及多个预设时钟周期内目标报文对应的第一报文数据,基于第一报文数据确定用于构造伪首部的数据字段,并基于数据字段确定伪首部的第一校验和,以及基于第一报文数据以及预设的时钟周期处理数据量,确定对目标报文数据进行校验和计算处理的目标时钟周期,并在目标时钟周期内启动预设数量的计算模块,通过预设数量的计算模块并行执行目标报文数据的校验和计算处理,以得到目标报文数据的校验和。其中,在处理目标报文数据中的校验和字段时,将对应校验和字段的计算模块的输入由校验和字段的数据替换为第一校验和。基于此,利用预设数量的计算模块对封装在目标报文中的目标报文数据进行校验和的并行计算,避免目标报文首部的影响。且在计算目标报文数据的校验和的过程中对伪首部的校验和进行计算,以在对目标报文数据中的校验和字段进行处理时,将对应校验和字段的计算模块的输入由校验和字段的数据替换为伪首部的校验和,如此将伪首部的校验和的叠加计算过程融入并行计算中,从而提高了报文数据中校验和的计算效率。