数据校验方法、装置、设备及存储介质与流程

文档序号:35986344发布日期:2023-11-10 09:38阅读:40来源:国知局
数据校验方法、装置、设备及存储介质与流程

本公开涉及通信领域,尤其涉及一种数据校验方法、装置、设备及存储介质。


背景技术:

1、在使用网络传输数据的过程中,受到传输介质,信号强度等因素的影响,传输的数据可能遭到损坏,使接收端接收的数据与发送端发送的数据产生差异。为了校验这种差异,可以在网络传输数据时同时传输该数据对应的校验和。校验和作为校验数据完整性的常见手段,被广泛应用于各种网络协议中。例如,第四版网际协议(internet protocol version 4,ipv4)、用户数据报协议(user datagram protocol,udp)、以及传输控制协议(transmission control protocol,tcp)等。

2、其中,fletcher校验和与常见的奇偶校验和相比,在校验数据顺序、防止校验和冲突等方面具有优势,因此被许多传输协议采用。

3、但是,在高速数据传输网络下,fletcher校验和的计算可能占用大量中央处理器(central processing unit,cpu)资源,计算速度较慢。


技术实现思路

1、基于上述技术问题,本公开提供一种数据校验方法、装置、设备及存储介质,可以通过单指令多数据流扩展(streaming single instruction multipledata extensions,sse)指令集对网络传输数据进行并行处理,提高了校验和的计算速度,降低了cpu开销。

2、根据本公开实施例的第一方面,提供一种数据校验方法,该方法包括:获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;对每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。

3、一种可能的实现方式中,每个数据段的第一目标向量和第二目标向量均包括多个向量块;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和,包括:根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数;第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到的多个第二参数;第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和。

4、一种可能的实现方式中,根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,包括:将第一目标向量中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相乘之后的结果进行累加处理,得到第一参数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,包括:将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。可选地,第二预设关系指示的权重系数包括正系数和负系数;将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数,包括:将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;根据第一结果、第二结果、以及第三预设关系,得到第二参数。

5、一种可能的实现方式中,根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和,包括:将多个第一参数进行累加处理,得到第一目标参数;将多个第二参数进行累加处理,得到第二目标参数;将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。

6、可选地,第一目标向量和第二目标向量均包括多个向量块;该方法还包括:在将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对第一目标向量中的每个向量块执行同位相加处理,同位相加处理是指将每个向量块的高位中的第n位与该向量块的低位中的第n位相加,n为正整数;在对每个数据段各自对应的多个扩充向量的中间向量与第二预设向量依次执行累加处理,得到对应数据段的第二目标向量之后,对第二目标向量中的每个向量块执行同位相加处理。

7、一种可能的实现方式中,对每个数据段进行扩充处理,得到多个扩充向量,包括:根据每个数据段中的数据,得到多个初始向量;每个数据段对应多个初始向量;对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。

8、一种可能的实现方式中,对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量,包括:对多个向量块中的每个向量块的最高位元素进行扩充处理,得到多个扩充向量;扩充处理包括对多个向量块中的每个向量块的最高位元素之前扩充m个预设字符,m与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。

9、可选地,第一阈值为160字节;第一预设向量和第二预设向量中的元素位数均为128;第一预设向量和第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。

10、根据本公开实施例的第二方面,提供一种数据校验装置,该装置包括:获取模块和处理模块;

11、获取模块,用于获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;

12、处理模块,用于对每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。

13、可选地,每个数据段的第一目标向量和第二目标向量均包括多个向量块;处理模块,具体用于根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数;第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到的多个第二参数;第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和。

14、可选地,处理模块,具体用于将第一目标向量中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第一参数;将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。

15、可选地,第二预设关系指示的权重系数包括正系数和负系数;处理模块,具体用于将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;根据第一结果、第二结果、以及第三预设关系,得到第二参数。

16、可选地,处理模块,具体用于将多个第一参数进行累加处理,得到第一目标参数;将多个第二参数进行累加处理,得到第二目标参数;将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。

17、可选地,第一目标向量和第二目标向量均包括多个向量块;处理模块,还用于在将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对第一目标向量中的每个向量块执行同位相加处理,同位相加处理是指将每个向量块的高位中的第n位与该向量块的低位中的第n位相加,n为正整数;在对每个数据段各自对应的多个扩充向量的中间向量与第二预设向量依次进行累加处理,得到对应数据段的第二目标向量之后,对第二目标向量中的每个向量块执行同位相加处理。

18、可选地,处理模块,具体用于根据每个数据段中的数据,得到多个初始向量;每个数据段对应多个初始向量;对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。

19、可选地,处理模块,具体用于对每个数据段各自对应的多个扩充向量中的每个扩充向量进行划分处理,得到每个扩充向量的多个向量块;对多个向量块中的每个向量块的最高位元素进行扩充处理,得到多个扩充向量;扩充处理包括对多个向量块中的每个向量块的最高位元素之前扩充m个预设字符,在多个向量块中的每个向量块的最高位元素之前扩充m个预设字符,得到每个数据段的多个扩充向量;m与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。

20、可选地,第一阈值为160字节;第一预设向量和第二预设向量中的元素位数均为128;第一预设向量和第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。

21、根据本公开实施例的第三方面,提供一种电子设备,可以包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面中任一种可选的数据校验方法。

22、根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面中任一种可选的数据校验方法。

23、根据本公开实施例的第五方面,提供一种计算机程序产品,包含指令,当其在电子设备的处理器上运行时,使得电子设备执行上述第一方面中任一种可选的数据校验方法。

24、本公开提供的技术方案至少带来以下有益效果:

25、基于上述任一方面,本公开中,可以将网络传输数据划分为多个数据段,每个数据段可以包括多个字节的数据,将每个数据段进行向量化后进行累加,得到网络传输数据的校验和,与现有技术逐个字节计算网络传输数据sum1和sum2的方案相比,数据段中的多个字节可以并行处理,提高了计算速度,有效减少了数据校验带来的cpu开销,进而可以提升单机承载用户量,降低服务器成本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1