CN117014104A - 数据校验方法、装置、设备及存储介质 - Google Patents
数据校验方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117014104A CN117014104A CN202310913099.3A CN202310913099A CN117014104A CN 117014104 A CN117014104 A CN 117014104A CN 202310913099 A CN202310913099 A CN 202310913099A CN 117014104 A CN117014104 A CN 117014104A
- Authority
- CN
- China
- Prior art keywords
- vector
- data segment
- expansion
- preset
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000013524 data verification Methods 0.000 title claims abstract description 47
- 239000013598 vector Substances 0.000 claims abstract description 772
- 238000012545 processing Methods 0.000 claims abstract description 87
- 230000005540 biological transmission Effects 0.000 claims abstract description 79
- 238000009825 accumulation Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims description 25
- 239000000758 substrate Substances 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 23
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000007792 addition Methods 0.000 description 33
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 description 23
- 238000010586 diagram Methods 0.000 description 16
- 239000000047 product Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开关于一种数据校验方法、装置、设备及存储介质,涉及通信领域,可以提高校验和的计算速度,降低CPU的开销。该方法包括:获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;对每个数据段各自对应的多个扩充向量进行第一累加处理,确定每个数据段各自对应的第一目标向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,将最终累加得到的向量确定为对应数据段的第二目标向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。
Description
技术领域
本公开涉及通信领域,尤其涉及一种数据校验方法、装置、设备及存储介质。
背景技术
在使用网络传输数据的过程中,受到传输介质,信号强度等因素的影响,传输的数据可能遭到损坏,使接收端接收的数据与发送端发送的数据产生差异。为了校验这种差异,可以在网络传输数据时同时传输该数据对应的校验和。校验和作为校验数据完整性的常见手段,被广泛应用于各种网络协议中。例如,第四版网际协议(internet protocol version 4,IPv4)、用户数据报协议(user datagram protocol,UDP)、以及传输控制协议(transmission control protocol,TCP)等。
其中,Fletcher校验和与常见的奇偶校验和相比,在校验数据顺序、防止校验和冲突等方面具有优势,因此被许多传输协议采用。
但是,在高速数据传输网络下,Fletcher校验和的计算可能占用大量中央处理器(central processing unit,CPU)资源,计算速度较慢。
发明内容
基于上述技术问题,本公开提供一种数据校验方法、装置、设备及存储介质,可以通过单指令多数据流扩展(streaming single instruction multipledata extensions,SSE)指令集对网络传输数据进行并行处理,提高了校验和的计算速度,降低了CPU开销。
根据本公开实施例的第一方面,提供一种数据校验方法,该方法包括:获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;对每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。
一种可能的实现方式中,每个数据段的第一目标向量和第二目标向量均包括多个向量块;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和,包括:根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数;第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到的多个第二参数;第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和。
一种可能的实现方式中,根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,包括:将第一目标向量中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相乘之后的结果进行累加处理,得到第一参数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,包括:将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。可选地,第二预设关系指示的权重系数包括正系数和负系数;将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数,包括:将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;根据第一结果、第二结果、以及第三预设关系,得到第二参数。
一种可能的实现方式中,根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和,包括:将多个第一参数进行累加处理,得到第一目标参数;将多个第二参数进行累加处理,得到第二目标参数;将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。
可选地,第一目标向量和第二目标向量均包括多个向量块;该方法还包括:在将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对第一目标向量中的每个向量块执行同位相加处理,同位相加处理是指将每个向量块的高位中的第N位与该向量块的低位中的第N位相加,N为正整数;在对每个数据段各自对应的多个扩充向量的中间向量与第二预设向量依次执行累加处理,得到对应数据段的第二目标向量之后,对第二目标向量中的每个向量块执行同位相加处理。
一种可能的实现方式中,对每个数据段进行扩充处理,得到多个扩充向量,包括:根据每个数据段中的数据,得到多个初始向量;每个数据段对应多个初始向量;对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。
一种可能的实现方式中,对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量,包括:对多个向量块中的每个向量块的最高位元素进行扩充处理,得到多个扩充向量;扩充处理包括对多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,M与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。
可选地,第一阈值为160字节;第一预设向量和第二预设向量中的元素位数均为128;第一预设向量和第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。
根据本公开实施例的第二方面,提供一种数据校验装置,该装置包括:获取模块和处理模块;
获取模块,用于获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;
处理模块,用于对每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。
可选地,每个数据段的第一目标向量和第二目标向量均包括多个向量块;处理模块,具体用于根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数;第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到的多个第二参数;第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和。
可选地,处理模块,具体用于将第一目标向量中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第一参数;将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。
可选地,第二预设关系指示的权重系数包括正系数和负系数;处理模块,具体用于将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;根据第一结果、第二结果、以及第三预设关系,得到第二参数。
可选地,处理模块,具体用于将多个第一参数进行累加处理,得到第一目标参数;将多个第二参数进行累加处理,得到第二目标参数;将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。
可选地,第一目标向量和第二目标向量均包括多个向量块;处理模块,还用于在将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对第一目标向量中的每个向量块执行同位相加处理,同位相加处理是指将每个向量块的高位中的第N位与该向量块的低位中的第N位相加,N为正整数;在对每个数据段各自对应的多个扩充向量的中间向量与第二预设向量依次进行累加处理,得到对应数据段的第二目标向量之后,对第二目标向量中的每个向量块执行同位相加处理。
可选地,处理模块,具体用于根据每个数据段中的数据,得到多个初始向量;每个数据段对应多个初始向量;对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。
可选地,处理模块,具体用于对每个数据段各自对应的多个扩充向量中的每个扩充向量进行划分处理,得到每个扩充向量的多个向量块;对多个向量块中的每个向量块的最高位元素进行扩充处理,得到多个扩充向量;扩充处理包括对多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,在多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,得到每个数据段的多个扩充向量;M与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。
可选地,第一阈值为160字节;第一预设向量和第二预设向量中的元素位数均为128;第一预设向量和第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。
根据本公开实施例的第三方面,提供一种电子设备,可以包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面中任一种可选的数据校验方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面中任一种可选的数据校验方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包含指令,当其在电子设备的处理器上运行时,使得电子设备执行上述第一方面中任一种可选的数据校验方法。
本公开提供的技术方案至少带来以下有益效果:
基于上述任一方面,本公开中,可以将网络传输数据划分为多个数据段,每个数据段可以包括多个字节的数据,将每个数据段进行向量化后进行累加,得到网络传输数据的校验和,与现有技术逐个字节计算网络传输数据sum1和sum2的方案相比,数据段中的多个字节可以并行处理,提高了计算速度,有效减少了数据校验带来的CPU开销,进而可以提升单机承载用户量,降低服务器成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开实施例提供的数据传输系统的组成示意图;
图2为本公开实施例提供的电子设备组成示意图;
图3为本公开实施例提供的数据校验方法的流程示意图;
图4为本公开实施例提供的数据校验耗时示意图;
图5为本公开实施例提供的第一预设向量和第二预设向量的初始化示意图;
图6为本公开实施例提供的位数扩充示意图;
图7为本公开实施例提供的同位相加示意图;
图8为本公开实施例提供的第一预设向量和第二预设向量的另一种初始化示意图;
图9为本公开实施例提供的另一种位数扩充示意图;
图10为本公开实施例提供的另一种同位相加示意图;
图11为本公开实施例提供的数据校验装置的组成示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
以下对本公开涉及到的现有技术进行解释。
1、校验和(checksum):
校验和是数据处理和数据通信领域中,用于校验目的的一组数据项的和,通常用来在通信中,尤其是远距离通信中保障网络传输数据的完整性和准确性。
2、Fletcher校验和:
以16位的Fletcher-16为例,Fletcher-16由高8位和低8位两部分组成,其中低8位通过对被校验数据累计求和得到,高8位通过对低8位累计求和得到,具体计算实现过程如下:
步骤1、将sum1、sum2均初始化为16位整数255。
步骤2、将被校验数据分割为多个数据段,每个数据段均为20字节。
步骤3、在每个数据段中,对每个字节和现有sum1进行累计求和,得到sum1。对每次累计求和得到的中间sum1和现有sum2进行累计求和,得到sum2。
步骤4、将sum1的高低8位相加,使sum1不大于510,将sum2的高低8位相加,使sum2不大于510。
步骤5、对每个数据段重复步骤3和步骤4中的操作,直至处理完所有数据段,最终得到目标sum1和目标sum2。
步骤6、将目标sum1的高低8位相加,使目标sum1不大于255,将目标sum2的高低8位相加,使目标sum2不大于255。
步骤7、将目标sum2作为校验和的高8位,将目标sum1作为校验和的低8位,输出16位校验和。
由上述Fletcher-16的具体计算过程可知,该方案需要按照顺序处理待校验数据中的每个字节,在高速数据传输网络的场景下,使用该方案可能会占用大量CPU资源,计算速度较慢。
在此基础上,本公开实施例提供一种数据校验方法、装置、设备及存储介质,可以通过SSE指令集并行处理由网络传输数据划分的数据段中的多个字节,降低占用的CPU资源,提高计算速度。
以下结合附图进行介绍。
图1为本公开实施例提供的数据传输系统的组成示意图。如图1所示,该数据传输系统可以包括:发送端100和接收端200。发送端100和接收端200之间可以通过有线网络或无线网络连接。
发送端100可以是计算机或服务器等具有计算处理功能的电子设备。其中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。可选地,服务器还可以在云平台上实现,例如,云平台可以包括私有云、公有云、混合云、社区云(community cloud)、分布式云、跨云(inter-cloud)以及多云(multi-cloud)等,或者它们的任意组合。本公开实施例对此不作限制。
发送端100,用于获取(待)网络传输数据,根据(待)网络传输数据计算校验和。根据(待)网络传输数据计算校验和的具体过程可以参照下述方法实施例中所述,此处不再赘述。
在一些实施例中,发送端100,还用于向接收端200发送(待)网络传输数据和计算得到的校验和。
如上所述,发送端100和接收端200之间可以通过有线网络或无线网络连接。该有线网络或无线网络可以包括能够将(待)网络传输数据和校验和传输到接收端200的一个或多个媒体或设备。
在一些实施例中,有线网络或无线网络可以包括使得发送端100能够实时将网络传输数据和校验和直接发射到接收端200的一个或多个通信媒体。在此实施例中,发送端100可以根据通信标准(例如无线通信协议)来调制网络传输数据和校验和,并将经过调制的网络传输数据和校验和发射到接收端200.该一个或多个通信媒体可以包括无线,和/或,有线通信媒体,例如射频(radio frequency)频谱或一个或多个物理传输线。可选地,该一个或多个通信媒体可以形成基于分组的网络的一一部分,基于分组的网络例如可以是局域网、广域网、或者全球网络(例如因特网)。可选地,该一个或多个通信媒体可以包括路由器、交换器、基站、或者促进从发送端100到接收端200的通信的其他设备。
接收端200的形态可以参照上述发送端100中所述,此处不再赘述。
接收端200,用于接收发送端100发送的网络传输数据和校验和,并根据网络传输数据计算校验和。接收端200根据网络传输数据计算校验和的具体过程也可以参照下述方法实施例中所述,此处不再赘述。
在一些实施例中,接收端200,还用于根据计算得到的校验和、以及接受发送端100发送的校验和来对发送端100发送的网络传输数据进行校验。具体校验过程可以参照相关技术中所述,此处不再赘述。
本公开实施例提供的数据校验方法的执行主体为数据校验装置,该数据校验装置可以是上述发送端100或接收端200,发送端100或接收端200可以统称为电子设备。可选地,该数据校验装置也可以是上述电子设备中的处理器;或者,该数据校验装置还可以是上述电子设备中安装的提供数据校验功能的应用程序(application,APP);再或者,该数据校验装置还可以是上述电子设备中用于执行数据校验功能的功能模块等。本公开实施例对此不作限制。
为了描述简单,以下方法实施例中统一以数据校验装置为电子设备为例进行介绍。
图2为本公开实施例提供的电子设备组成示意图。如图2所示,该电子设备可以包括:处理器10、存储器20、通信线路30、通信接口40以及输入输出接口50。
其中,处理器10、存储器20、通信接口40以及输入输出接口50之间可以通过通信线路30连接。
处理器10,用于执行存储器20中存储的指令,以实现本公开下述实施例提供的数据校验方法。处理器10可以是CPU、通用处理器、网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器(micro controlunit,MCU)/单片微型计算机(single chip microcomputer)/单片机、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器10还可以是其它任意具有处理功能的装置,例如电路、器件或软件模块,本公开实施例对此不作限制。在一种示例中,处理器10可以包括一个或多个CPU,例如图2中的CPU0和CPU1。作为一种可选的实现方式,图像显示装置可以包括多个处理器,例如,除处理器10之外,还可以包括处理器60(图2中以虚线为例示出)。
存储器20,用于存储指令。例如,指令可以是计算机程序。可选地,存储器20可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是存取存储器(random access memory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备等,本公开实施例对此不作限制。
需要说明的是,存储器20可以独立于处理器10存在,也可以和处理器10集成在一起。存储器20可以位于电子设备内,也可以位于电子设备外,本公开实施例对此不作限制。
通信线路30,用于在电子设备所包括的各部件之间传送信息。
通信接口40,用于与其他设备(例如上述发送端100或接收端200)或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。通信接口40可以是模块、电路、收发器或者任何能够实现通信的装置。
输入输出接口50,用于实现用户和电子设备之间的人机交互。例如实现用户和电子设备之间的动作交互、文字交互或者语音交互等。
示例性地,输入输出接口50可以是键盘、或者鼠标等。通过键盘、或者鼠标等可以实现用户和电子设备之间的动作交互或文字交互。
需要说明的是,图2中示出的结构并不构成对电子设备的限定,除图2所示的部件之外,电子设备可以包括比图示更多或更少的部件,或者某些部件的组合,或者不同的部件布置。
下面结合附图对本公开实施例提供的数据校验方法进行介绍。
图3为本公开实施例提供的数据校验方法的流程示意图。可选地,该方法可以由具有上述图2所示硬件结构的电子设备执行。如图3所示,该方法可以包括S101至S105。
S101、电子设备获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值。
其中,如上所述,电子设备可以是发送端或者接收端,当电子设备为发送端时,此处的网络传输数据可以理解为待传输的数据;当电子设备为接收端时,此处的网络传输数据可以理解为发送端传输过来的数据。第一阈值可以由管理人员预设在电子设备中,例如,第一阈值可以是160字节,或者2872字节等。本公开实施例对第一阈值的具体字节数不作限制。
例如,如上所述,电子设备可以包括输入输出接口,该输入输出接口可以包括鼠标和键盘等。电子设备可以通过鼠标和键盘等接收管理人员输入的第一阈值。
示例性地,以网络传输数据为105字节为例,假设第一阈值为20字节,电子设备可以将105字节的网络传输数据按照每20字节为一个数据段的方式,分为5个数据段,并将最后剩余的5个字节的网络传输数据作为剩余数据段,剩余数据段的处理过程可以参照下述方法实施例中所述,此处不再赘述。
S102、电子设备对每个数据段进行扩充处理,得到每个数据段的多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设值。
其中,每个数据段对应多个扩充向量。预设数值可以由管理人员预设在电子设备中,例如,预设数值可以是128或者其他数值等,本公开实施例对此不作限制。
一种可能的实现方式中,上述S102可以具体包括以下两个步骤:
步骤1、电子设备根据每个数据段中的数据,得到多个初始向量。
其中,每个数据段对应多个初始向量。
例如,电子设备可以将一个数据段中网络传输数据,作为初始向量中的元素,得到一个初始向量,初始向量可以包括多个向量块,多个向量块与该一个数据段中的每个字节一一对应。
示例性地,以某两个字节的网络传输数据为“00000000 11111111”为例,则根据该两个字节的数据得到的初始向量即为向量块[0,0,0,0,0,0,0,0]和向量块[1,1,1,1,1,1,1,1]所组成的初始向量。
步骤2、电子设备对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。
例如,电子设备可以对每个数据段各自对应的多个扩充向量中的每个扩充向量进行划分处理,得到每个扩充向量的多个向量块,然后对多个向量块中的每个向量块的最高位元素(或者说每个向量块)进行扩充处理,得到多个扩充向量。
其中,扩充处理包括对多个向量块中的每个向量的最高位元素之前扩充M个预设字符,M与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。预设字符可以是0或者其他字符等,本公开实施例对此不作限制。
示例性地,以第一预设向量和第二预设向量中元素的位数(预设数值)均为128位为例,假设初始向量包括8个向量块,每个向量块均为8位元素的向量,也即初始向量中元素的位数为8×8=64,则电子设备可以在8个向量块中的每个向量块的最高位元素之前扩充8(也即上述M)个0,此时8×8=128-64。
S103、电子设备对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量确定为对应数据段的第一目标向量。
其中,第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量。
示例性地,以某个数据段的多个扩充向量包括A=[a1,a2,a3]、B=[b1,b2,b3]、C=[c1,c2,c3]为例,假设第一预设向量为D=[d1,d2,d3],则电子设备可以首先将向量A与第一预设向量D相加,得到向量A的中间向量A1=[a1+d1,a2+d2,a3+d3],然后将向量B与扩充向量A的中间向量A1相加,得到向量B的中间向量B1=[a1+d1+b1,a2+d2+b2,a3+d3+b3],然后将向量C与向量B的中间向量B1相加,得到向量C的中间向量C1=[a1+d1+b1+c1,a2+d2+b2+c2,a3+d3+b3+c3],最终将最后一个向量C的中间向量C1作为该数据段的第一目标向量。
可选地,第一目标向量和第二目标向量可以包括多个向量块,在上述S103之后,电子设备还可以对第一目标向量中的每个向量块执行同位相加处理。
其中,同位相加处理是指将每个向量块的高位中的第N位与该向量块的低位中的第N位相加,N为正整数。
示例性地,以十六进制的字符串“0x6677”为例,该字符串的高8位“66”转换为二进制可以表示为“0110 0110”,该字符串的低8位“77”转换为二进制可以表示为“0111 0111”,同位相加也即将高8位中的第8位“0”与低8位中的第8位“1”相加,得到同位相加结果的第8位“1”,将高8位中的第7位“1”与低8位中的第7位“1”相加,得到相加结果的第7位“0”,并向前一位进1,依次类推,得到同位相加的结果“1101 1101”,用十六进制表示为“0x00DD”。
S104、电子设备对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量。
其中,第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量。
示例性地,同样以上述某个数据段的多个扩充向量包括A=[a1,a2,a3]、B=[b1,b2,b3]、C=[c1,c2,c3]为例,假设第一预设向量为D=[d1,d2,d3],第二预设向量为E=[e1,e2,e3],则电子设备可以首先将向量A与第一预设向量D相加,得到向量A的第一中间向量A1=[a1+d1,a2+d2,a3+d3],然后将扩种向量A的中间向量A1与第二预设向量E相加,得到向量A的第二中间向量A2=[a1+d1+e1,a2+d2+e2,a3+d3+e3],再将向量B和向量A的第一中间向量A1相加,得到向量B的第一中间向量B1=[a1+d1+b1,a2+d2+b2,a3+d3+b3],然后将B1和A2相加,得到向量B的第二中间向量B2=[a1+d1+b1+a1+d1+e1,a2+d2+b2+a2+d2+e2,a3+d3+b3+a3+d2+e3],然后将向量C和向量B的第一中间向量B1相加,得到向量C的第一中间向量C1=[a1+d1+b1+c1,a2+d2+b2+c2,a3+d3+b3+c3],最后将向量C的第一中间向量C1和向量B的第二中间向量B2相加,得到向量C的第二中间向量C2=[a1+d1+b1+c1+a1+d1+b1+a1+d1+e1,a2+d2+b2+c2+a2+d2+b2+a2+d2+e2,a3+d3+b3+c3+a3+d3+b3+a3+d2+e3],最终将最后一个向量C的第二中间向量C2作为该数据段的第二目标向量。
可选地,在上述S104之后,电子设备还可以对第二目标向量执行同位相加处理。同位相加处理可以参照上述S103处所述,此处不再赘述。
应理解,在将扩充向量累加至第一预设向量以得到第一目标向量,以及将第一预设向量累加至第二预设向量以得到第二目标向量的过程中,可以会出现数据溢出的现象,本公开实施例通过将第一目标向量和第二目标向量执行同位相加处理,可以将第一向量和第二向量中的元素折叠,从而避免数据溢出。
S105、电子设备根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。
一种可能的实现方式中,上述S105可以具体包括以下三个步骤:
步骤1、电子设备根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数。
一种可能的实现方式中,如上所述,电子设备可以将扩充向量划分为多个向量块,则进行累加之后的第一目标向量和第二目标向量也可以包括多个向量块,且扩充向量中向量块的个数、第一目标向量中向量块的个数、以及第二目标向量中向量块的个数相同。在这种情况下,第一预设关系可以用于指示每个第一目标向量中的多个向量块的权重系数,上述步骤1可以具体包括:电子设备将第一目标向量块中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相除处理之后的结果进行累加处理,得到第一参数。
步骤2、电子设备根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到多个第二参数。
一种可能的实现方式中,同样以上述电子设备将扩充向量划分为多个向量块为例,则第二预设关系可以用于指示每个第二向量中的多个向量块的权重系数,上述步骤2可以具体包括:电子设备将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中每个向量块与对应权重系数进行相乘处理之后的记过进行累加处理,得到第二参数。
可选地,第二预设关系指示的权重系数可以包括正系数和负系数,在这种情况下,上述电子设备将第二目标向量中每个向量块与对应权重系数进行相乘处理之后的结果进行累加处理,得到第二参数,可以具体包括:电子设备将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;电子设备将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;电子设备根据第一结果、第二结果、以及第三预设关系,得到第二参数,第三预设关系用于指示第一结果的系数和第二结果的系数,第一结果的系数为2的P次方,P为校验和位数的一半,第二结果的系数为-1。
例如,电子设备可以将第一结果乘以第一结果的系数,得到第一目标结果,将第二结果乘以第二结果的系数,得到第二目标结果,将第一目标结果和第二目标结果相加,得到第二参数。
应理解,包括正系数和负系数的累加可能会导致非负整型溢出,本公开实施例通过将权重系数为正系数和权重系数为负系数的向量块分开进行计算,可以避免数据溢出。
步骤3、电子设备根据多个第一参数和多个第二参数,确定网络传输数据的校验和。
例如,电子设备可以将多个第一参数进行累加,得到第一目标参数,将多个第二参数进行累加,得到第二目标参数,第一目标参数和第二目标参数的位数之和等于网络传输数据的校验和的位数,将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。
本公开实施例提供的数据校验方法,可以将网络传输数据划分为多个数据段,每个数据段包括多个字节的数据将每个数据段进行向量化后进行累加,得到网络传输数据的校验和,与现有技术逐个字节计算网络传输数据sum1和sum2的方案相比,数据段中的多个字节可以并行处理,提高了计算速度,有效减少了数据校验带来的CPU开销,提升单机承载用户量,降低服务器成本。
示例性地,图4为本公开实施例提供的数据校验耗时示意图。如图4所示,本公开提供的数据校验方法相比现有方案在所有的数据规模上均有性能提升。随着网络传输数据规模的增加,本公开提供的数据校验方法的性能优势也逐渐扩大。
一些可能的实施例中,以16位的校验和为例对本公开实施例提供的数据校验方法进行介绍。在16位的校验和情况下,本公开实施例提供数据校验方法可以包括以下步骤:
X1、电子设备将第一预设向量和第二预设向量均初始化为8个向量块,并将每个向量块的低8位置为1。
其中,每个向量块包括16位的元素。
示例性地,图5为本公开实施例提供的第一预设向量和第二预设向量的初始化示意图。如图5所示,第一预设向量(图6中以Sum1为例示出)包括8个向量块,每个向量块中的元素均为“0x00ff”,换算为二进制也即“0000 0000 1111 1111”,第一预设向量共计包括8×16=128位元素。第二预设向量(图6中以Sum2为例示出)包括8个向量块,每个向量块中的元素也均为“0x00ff”,换算为二进制也即“0000 0000 1111 1111”。第二预设向量共计包括8×16=128位元素。
X2、电子设备将网络传输数据中每8个字节进行向量化,确定一个包括64位元素的扩充向量,得到多个扩充向量,并将多个扩充向量每20个分为一组,得到多组扩充向量。
可以理解的是,此处每组扩充向量对应的网络传输数据可以理解为上述S101中的数据段,在这种情况下,上述第一阈值可以设置为160,则此处一个数据段的字节数即为8×20=160。
X3、对每组扩充向量中的每个扩充向量,电子设备将该扩充向量中的每个向量块的最高位之前补8个0,以扩充为包括128位元素的向量。
示例性地,图6为本公开实施例提供的位数扩充示意图。如图6所示,扩充向量的第一个向量块中的元素“0xef(二进制表示为1110 1111)”在最高位之前扩充8个0之后,扩充为包括16位元素的向量块“0x00ef(二进制表示为0000 0000 1110 1111)”。类似地,第二个向量块中的元素“0xcd”扩充后为“0x00cd”,第三个向量块中的元素“0xab”扩充后为“0x00ab”,第四个向量块中的元素“0x89”扩充后为“0x0089”,第五个向量块中的元素“0x67”扩充后为“0x0067”,第六个向量块中的元素“0x45”扩充后为“0x0045”,第七个向量块中的元素“0x23”扩充后为“0x0023”,第八个向量块中的元素“0x01”扩充后为“0x0001”。
X4、对每组扩充后的扩充向量,电子设备将该组20个扩充向量依次累加至第一预设向量,得到每个扩充向量的中间向量,并将第20个扩充向量的中间向量确定为第一目标向量。
X4可以参照上述S103所述,此处不再赘述。
X5、对每组扩充后的扩充向量,电子设备将该组20个扩充向量的中间向量依次累加至第二预设向量,得到第二目标向量。
X5可以参照上述S104所述,此处不再赘述。
X6、电子设备将第一目标向量中每个向量块的高8位和低8位执行同位相加,以使得第一目标向量中每个向量块中的元素的十进制值均不大于510。
示例性地,图7为本公开实施例提供的同位相加示意图。如图7所示,第一目标向量(图7中以Sum1为例示出)中第一个向量块中的元素为“0xeeff”,第二个向量块中的元素为“0xccdd”,第三个向量块中的元素为“0xaabb”,第四个向量块中的元素为“0x8899”,第五向量块中的元素为“0x6677”,第六个向量块中的元素为“0x4455”,第七个向量块中的元素为“0x2233”,第八个向量块中的元素为“0x0011”,对每个向量块执行同位相加之后,第一个向量块中的元素变为“0x01ed”,第二个向量块中的元素变为“0x01a9”,第三个向量块中的元素变为“0x0165”,第四个向量块中的元素变为“0x0121”,第五个向量块中的元素变为“0x00dd”,第六个向量块中的元素变为“0x0099”,第七个向量块中的元素变为“0x0055”,第八个向量块中的元素变为“0x0011”。
X7、电子设备将第二目标向量中每个向量块的高8位和低8位执行同位相加,以使得第二目标向量中每个向量块中的元素的十进制值均不大于510。
X7可以参照上述X6所述,不再赘述。
X8、电子设备根据第一目标向量和第一预设关系,确定该组扩充向量的第一参数。
其中,第一预设关系可以如下述公式(1)所示:
sum1=Sum1[0]+Sum1[1]+Sum1[2]+Sum1[3]+Sum1[4]+Sum1[5]+Sum1[6]+Sum1[7]公式(1)
公式(1)中,sum1表示第一参数;Sum1[0]表示第一目标向量的8个向量块中的第一个向量块;Sum1[1]表示第一目标向量的8个向量块中的第二个向量块;Sum1[2]表示第一目标向量的8个向量块中的第三个向量块;Sum1[3]表示第一目标向量的8个向量块中的第四个向量块;Sum1[4]表示第一目标向量的8个向量块中的第五个向量块;Sum1[5]表示第一目标向量的8个向量块中的第六个向量块;Sum1[6]表示第一目标向量的8个向量块中的第七个向量块;Sum1[7]表示第一目标向量的8个向量块中的第八个向量块。
X9、电子设备根据第二目标向量和第二预设关系,确定该组扩充向量的第二参数。
可选地,第二预设关系可以如下述公式(2)所示:
sum2=8×Sum2[0]+8×Sum2[1]+8×Sum2[2]+8×Sum2[3]+8×Sum2[4]+8×Sum2[5]+8×Sum2[6]+8×Sum2[7]-0×Sum2[0]-1×Sum2[1]-2×Sum2[2]-3×Sum2[3]-4×Sum2[4]-5×Sum2[5]-6×Sum2[6]-7×Sum2[7]公式(2)
公式(2)中,sum2表示第二参数;Sum2[0]表示第二目标向量的8个向量块中的第一个向量块;Sum2[1]表示第二目标向量的8个向量块中的第二个向量块;Sum2[2]表示第二目标向量的8个向量块中的第三个向量块;Sum2[3]表示第二目标向量的8个向量块中的第四个向量块;Sum2[4]表示第二目标向量的8个向量块中的第五个向量块;Sum2[5]表示第二目标向量的8个向量块中的第六个向量块;Sum2[6]表示第二目标向量的8个向量块中的第七个向量块;Sum2[7]表示第二目标向量的8个向量块中的第八个向量块。
可选地,第二预设关系也可以如下述公式(3)至公式(5)所示:
sum2=256×sum2_pos-sum2_neg 公式(3)
公式(3)也可以理解为校验和为16位时的第三预设关系,256也即上述第一结果的系数,校验和为16位时,校验和位数的一半为8(也即上述P),2的8次方也即公式(3)中第一结果的系数256。
sum2_pos=8×Sum2[0]+8×Sum2[1]+8×Sum2[2]+8×Sum2[3]+8×Sum2[4]+8×Sum2[5]+8×Sum2[6]+8×Sum2[7]公式(4)
公式(4)中,sum2_pos表示校验和为16位时的第一结果。
sum2_neg=0×Sum2[0]+1×Sum2[1]+2×Sum2[2]+3×Sum2[3]+4×Sum2[4]+5×Sum2[5]+6×Sum2[6]+7×Sum2[7]公式(5)
公式(5)中,sum2_neg表示校验和为16位时的第二结果。
可选地,电子设备在计算得到第一结果之后,还可以对第一结果的高8位和低8位进行两次同位相加,以使得第一结果的十进制数值不大于255。
可选地,电子设备在计算得到第二结果之后,还可以对第二结果的高8位和低8位进行两次同位相加,以使得第二结果的十进制数值不大于255.
X10、电子设备将第一参数的高8位和低8位同位相加,以使得第一参数不大于510。
X11、电子设备将第二参数的高8位和低8位同位相加,以使得第二参数不大于510。
X12、电子设备将多组扩充向量的第一参数、以及网络传输数据中剩余的不足8字节的数据进行累加,得到第一中间参数。
X13、电子设备将第一中间参数累加至第二参数,得到第二中间参数。
X14、电子设备分别将第一中间参数的高8位和低8位、以及第二中间参数的高8位和低8位同位相加两次,得到十进制值均不大于255的第一目标参数和第二目标参数。
X15、电子设备将第二目标参数作为网络传输数据的校验和的高8位,将第一目标参数作为网络传输数据的校验和低8位,输出网络传输数据的校验和。
另一些可能的实施例中,以32位的校验和为例对本公开实施例提供的数据校验方法进行介绍。在32位的校验和情况下,本公开实施例提供数据校验方法可以包括以下步骤:
C1、电子设备将第一预设向量和第二预设向量均初始化为4个向量块,并将每个向量块的低16位置为1。
其中,每个向量块包括32位的元素。
示例性地,图8为本公开实施例提供的第一预设向量和第二预设向量的另一种初始化示意图。如图8所示,第一预设向量(图8中以Sum1为例示出)包括4个向量块,每个向量块中的元素均为“0x0000ffff”,换算为二进制也即“0000 0000 0000 0000 11111111 11111111”,第一预设向量共计包括4×32=128位元素。第二预设向量(图8中以Sum2为例示出)包括4个向量块,每个向量块中的元素也均为“0x0000ffff”,换算为二进制也即“0000 00000000 0000 1111 1111 1111 1111”。第二预设向量共计包括4×32=128位元素。
C2、电子设备将网络传输数据中每8个字节进行向量化,确定一个包括64位元素的扩充向量,得到多个扩充向量,并将多个扩充向量每359个分为一组,得到多组扩充向量。
可以理解的是,此处每组扩充向量对应的网络传输数据可以理解为上述S101中的数据段,在这种情况下,上述第一阈值也可以设置为2872,则此处一个数据段的字节数即为8×359=2872。
C3、对每组扩充向量中的每个扩充向量,电子设备将该扩充向量中的每个向量块的最高位之前补16个0,以扩充为包括128位元素的向量。
示例性地,图9为本公开实施例提供的另一种位数扩充示意图。如图9所示,扩充向量的第一向量块中的元素“0xcdef(二进制表示为1100 1101 1110 1111)”在最高位之前扩充16个0之后,扩充为包括32位元素的向量块“0x0000cdef(二进制表示为00000000 00000000 1100 1101 1110 1111)”。类似地,第二向量块中的元素“0x89ab”扩充后为“0x000089ab”,第三个向量块中的元素“0x4567”扩充后为“0x00004567”,第四个向量块中的元素“0x0123”扩充后为“0x00000123”。
C4、对每组扩充后的扩充向量,电子设备将该组20个扩充向量依次累加至第一预设向量,得到每个扩充向量的中间向量,并将第20个扩充向量的中间向量确定为第一目标向量。
C4可以参照上述S103所述,此处不再赘述。
C5、对每组扩充后的扩充向量,电子设备将该组20个扩充向量的中间向量依次累加至第二预设向量,得到第二目标向量。
C5可以参照上述S104所述,此处不再赘述。
C6、电子设备将第一目标向量中的每个向量块的高16位和低16位执行同位相加,以使得第一目标向量中每个向量块中的元素的十进制值均不大于131070。
示例性地,图10为本公开实施例提供的另一种同位相加示意图。如图10所示,第一目标向量(图10中以Sum1为例示出)中第一个向量中的元素为“0x66667777”,第二个向量块中的元素为“0x44445555”,第三个向量块中的元素为“0x22223333”,第四个向量块中的元素为“0x00001111”,对每个向量块执行同位相加之后,第一个向量块中的元素变为“0x0000dddd”,第二个向量块中的元素变为“0x00009999”,第三个向量块中的元素变为“0x00005555”,第三个向量块中的元素变为“0x00001111”。
C7、电子设备根据第一目标向量和第一预设关系,确定该组扩充向量的第一参数。
其中,第一预设关系可以如下述公式(6)所示:
sum1=Sum1[0]+Sum1[1]+Sum1[2]+Sum1[3] 公式(6)
公式(6)中,sum1表示第一参数;Sum1[0]表示第一目标向量的4个向量块中的第一向量块;Sum1[1]表示第一目标向量的4个向量块中的第二个向量块;Sum1[2]表示第一目标向量的4个向量块中的第三个向量块;Sum1[3]表示第一目标向量的4个向量块中的第四个向量块。
C8、电子设备根据第二目标向量和第二预设关系,确定该组扩充向量的第二参数。
可选地,第二预设关系可以如下述公式(7)所示:
sum2=4×Sum2[0]+4×Sum2[1]+4×Sum2[2]+4×Sum2[3]-0×Sum2[0]-1×Sum2[1]-2×Sum2[2]-3×Sum2[3]公式(7)
公式(7)中,sum2表示第二参数;Sum2[0]表示第二目标向量的4个向量块中的第一个向量块;Sum2[1]表示第二目标向量的4个向量块中的第二个向量块;Sum2[2]表示第二目标向量的4个向量块中的第三个向量块;Sum2[3]表示第二目标向量的4个向量块中的第四个向量块。
可选地,第二预设关系也可以如下述公式(8)至公式(11)所示:
sum2=65536×sum2_pos-sum2_neg 公式(8)
公式(8)也可以理解为校验和为32位时的第三预设关系,65536也即上述第三预设关系中的第一结果的系数,校验和为32位时,校验和位数的一半为16(也即上述P),2的16次方也即公式(8)中第一结果的系数65536。
sum2_pos=4×Sum2[0]+4×Sum2[1]+4×Sum2[2]+4×Sum2[3]公式(9)
公式(9)中,sum2_pos表示校验和为32位时的第一结果。
sum2_neg=0×Sum2[0]+1×Sum2[1]+2×Sum2[2]+3×Sum2[3]公式(10)
公式(10)中,sum2_neg表示校验和为32时的第二结果。
可选地,电子设备在计算得到第一结果之后,还可以对第一结果的高16位和低16位进行两次同位相加,以使得第一结果的十进制数值不大于65535。
可选地,电子设备在计算得到第二结果之后,还可以对第二结果的高16位和低16位进行两次同位相加,以使得第二结果的十进制数值不大于65535。
C9、电子设备将第一参数的高16位和低16位同位相加,以使得第一参数不大于131070。
C10、电子设备将第二参数的高16位和低16位同位相加,以使得第二参数不大于131070。
C11、电子设备将多组扩充向量的第一参数、以及网络传输数据中剩余的不足8字节的数据进行加,得到第一中间参数。
C12、电子设备将第一中间参数累加至第二参数,得到第二中间参数。
C13、电子设备分别将第一中间参数的高16位和低16位、以及第二中间参数的高16位和低16位同位相加两次,得到十进制值均不大于65535的第一目标参数和第二目标参数。
C14、电子设备将第二目标参数作为网络传输数据的校验和的高16位,将第二目标参数作为网络传输数据的校验和的低16位,输出网络传输数据的校验和。
可以理解的,在实际实施时,本公开实施例所述的数据校验装置可以包含有用于实现前述对应数据校验方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
基于这样的理解,本公开实施例还对应提供一种数据校验装置。图11为本公开实施例提供的数据校验装置的组成示意图。如图11所示,该数据校验装置包括:获取模块1101和处理模块1102。
获取模块1101,用于获取网络传输数据,并对网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且每个数据段的字节数小于或等于第一阈值;
处理模块1102,用于对每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为每个扩充向量的中间向量,并将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;第一累加处理包括将每个数据段各自对应的多个扩充向量依次累加至第一预设向量;对每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;第二累加处理包括将每个数据段各自对应的多个扩充向量的中间向量依次累加至第二预设向量;根据每个数据段的第一目标向量,以及每个数据段的第二目标向量,确定用于校验网络传输数据的校验和。
一些可能的实施例中,每个数据段的第一目标向量和第二目标向量均包括多个向量块;处理模块1102,具体用于根据每个数据段的第一目标向量和第一预设关系,确定每个数据段的第一参数,得到多个第一参数;第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;根据每个数据段的第二目标向量和第二预设关系,确定每个数据段的第二参数,得到的多个第二参数;第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;根据多个第一参数和多个第二参数,确定用于校验网络传输数据的校验和。
另一些可能的实施例中,处理模块1102,具体用于将第一目标向量中的每个向量块与第一预设关系中的对应权重系数进行相乘处理,并将第一目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第一参数;将第二目标向量中的每个向量块与第二预设关系中的对应权重系数进行相乘处理,并将第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。
又一些可能的实施例中,第二预设关系指示的权重系数包括正系数和负系数;处理模块1102,具体用于将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;根据第一结果、第二结果、以及第三预设关系,得到第二参数。
又一些可能的实施例中,处理模块1102,具体用于将多个第一参数进行累加处理,得到第一目标参数;将多个第二参数进行累加处理,得到第二目标参数;将第二目标参数作为校验和的高位参数,将第一目标参数作为校验和的低位参数,得到校验和。
又一些可能的实施例中,第一目标向量和第二目标向量均包括多个向量块;处理模块1102,还用于在将每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对第一目标向量中的每个向量块执行同位相加处理,同位相加处理是指将每个向量块的高位中的第N位与该向量块的低位中的第N位相加,N为正整数;在对每个数据段各自对应的多个扩充向量的中间向量与第二预设向量依次进行累加处理,得到对应数据段的第二目标向量之后,对第二目标向量中的每个向量块执行同位相加处理。
又一些可能的实施例中,处理模块1102,具体用于根据每个数据段中的数据,得到多个初始向量;每个数据段对应多个初始向量;对每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到每个数据段各自对应的多个扩充向量。
又一些可能的实施例中,处理模块1102,具体用于对每个数据段各自对应的多个扩充向量中的每个扩充向量进行划分处理,得到每个扩充向量的多个向量块;对多个向量块中的每个向量块的最高位元素进行扩充处理,得到多个扩充向量;扩充处理包括对多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,在多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,得到每个数据段的多个扩充向量;M与每个扩充向量中向量块的个数的乘积,等于预设数值与初始向量中元素的位数之差。
又一些可能的实施例中,第一阈值为160字节;第一预设向量和第二预设向量中的元素位数均为128;第一预设向量和第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。
如上所述,本公开实施例可以根据上述方法示例对存储设备进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
关于上述实施例中的数据校验装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
本公开还提供了一种包括指令的计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由数据校验装置的处理器执行时,使得数据校验装置能够执行上述所示实施例提供的数据校验方法。例如,计算机可读存储介质可以为包括指令的存储器20,上述指令可由数据校验装置(上述电子设备)的处理器执10行以完成上述方法。
可选的,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本公开还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述所示实施例提供的数据校验方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据校验方法,其特征在于,所述方法包括:
获取网络传输数据,并对所述网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且所述每个数据段的字节数小于或等于第一阈值;
对所述每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;
对所述每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为所述每个扩充向量的中间向量,并将所述每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;所述第一累加处理包括将所述每个数据段各自对应的多个扩充向量依次累加至所述第一预设向量;
对所述每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;所述第二累加处理包括将所述每个数据段各自对应的多个扩充向量的中间向量依次累加至所述第二预设向量;
根据所述每个数据段的第一目标向量,以及所述每个数据段的第二目标向量,确定用于校验所述网络传输数据的校验和。
2.根据权利要求1所述的方法,其特征在于,所述每个数据段的第一目标向量和第二目标向量均包括多个向量块;所述根据所述每个数据段的第一目标向量,以及所述每个数据段的第二目标向量,确定用于校验所述网络传输数据的校验和,包括:
根据所述每个数据段的第一目标向量和第一预设关系,确定所述每个数据段的第一参数,得到多个第一参数;所述第一预设关系用于指示每个第一目标向量中的多个向量块的权重系数;
根据所述每个数据段的第二目标向量和第二预设关系,确定所述每个数据段的第二参数,得到多个第二参数;所述第二预设关系用于指示每个第二目标向量中的多个向量块的权重系数;
根据所述多个第一参数和所述多个第二参数,确定用于校验所述网络传输数据的校验和。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述每个数据段的第一目标向量和第一预设关系,确定所述每个数据段的第一参数,包括:
将所述第一目标向量中的每个向量块与所述第一预设关系中的对应权重系数进行相乘处理,并将所述第一目标向量中的所述每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到所述第一参数;
所述根据所述每个数据段的第二目标向量和第二预设关系,确定所述每个数据段的第二参数,包括:
将所述第二目标向量中的每个向量块与所述第二预设关系中的对应权重系数进行相乘处理,并将所述第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数。
4.根据权利要求3所述的方法,其特征在于,所述第二预设关系指示的权重系数包括正系数和负系数;
所述将所述第二目标向量中的每个向量块与对应权重系数相乘处理之后的结果进行累加处理,得到第二参数,包括:
将权重系数为正系数的向量块与对应权重系数的乘积结果进行累加处理,得到第一结果;
将权重系数为负系数的向量块与对应权重系数的乘积结果进行累加处理,得到第二结果;
根据所述第一结果、所述第二结果、以及第三预设关系,得到所述第二参数。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据所述多个第一参数和所述多个第二参数,确定用于校验所述网络传输数据的校验和,包括:
对所述多个第一参数进行累加处理,得到第一目标参数;
对所述多个第二参数进行累加处理,得到第二目标参数;
将所述第二目标参数作为所述校验和的高位参数,将所述第一目标参数作为所述校验和的低位参数,得到所述校验和。
6.根据权利要求1所述的方法,其特征在于,所述第一目标向量和所述第二目标向量均包括多个向量块;所述方法还包括:
在将所述每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量之后,对所述第一目标向量中的每个向量块执行同位相加处理,所述同位相加处理是指将每个向量块的高位中的第N位与该向量块的低位中的第N位进行相加处理,N为正整数;
在对所述每个数据段各自对应的多个扩充向量的中间向量与所述第二预设向量依次进行累加处理,得到对应数据段的第二目标向量之后,对所述第二目标向量中的每个向量块执行所述同位相加处理。
7.根据权利要求1所述的方法,其特征在于,所述对所述每个数据段进行扩充处理,得到多个扩充向量,包括:
根据所述每个数据段中的数据,得到多个初始向量;所述每个数据段对应多个初始向量;
对所述每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到所述每个数据段各自对应的多个扩充向量。
8.根据权利要求7所述的方法,其特征在于,所述对所述每个数据段各自对应的多个初始向量中的每个初始向量进行位数扩充处理,得到所述每个数据段各自对应的多个扩充向量,包括:
对所述每个数据段各自对应的多个扩充向量中的每个扩充向量进行划分处理,得到每个扩充向量的多个向量块;
对所述多个向量块中的每个向量块的最高位元素进行扩充处理,得到所述多个扩充向量;所述扩充处理包括对所述多个向量块中的每个向量块的最高位元素之前扩充M个预设字符,M与每个扩充向量中向量块的个数的乘积,等于所述预设数值与初始向量中元素的位数之差。
9.根据权利要求1所述的方法,其特征在于,所述第一阈值为160字节;所述第一预设向量和所述第二预设向量中的元素位数均为128;所述第一预设向量和所述第二预设向量均包括8个向量块;每个向量块均为包括16位元素的向量;每个向量块中的低8位元素均为1。
10.一种数据校验装置,其特征在于,所述装置包括:
获取模块,用于获取网络传输数据,并对所述网络传输数据进行划分处理,以使得划分得到的多个数据段中的每个数据段包括多个字节,且所述每个数据段的字节数小于或等于第一阈值;
处理模块,用于对所述每个数据段进行扩充处理,得到多个扩充向量,以使得每个扩充向量与预设的第一预设向量和第二预设向量中元素的位数相同,均为预设数值;每个数据段对应多个扩充向量;对所述每个数据段各自对应的多个扩充向量进行第一累加处理,以将每个扩充向量累加后得到的向量确定为所述每个扩充向量的中间向量,并将所述每个数据段各自对应的多个扩充向量中最后一个扩充向量的中间向量确定为对应数据段的第一目标向量;所述第一累加处理包括将所述每个数据段各自对应的多个扩充向量依次累加至所述第一预设向量;对所述每个数据段各自对应的多个扩充向量的中间向量进行第二累加处理,以将最终累加得到的向量确定为对应数据段的第二目标向量;所述第二累加处理包括将所述每个数据段各自对应的多个扩充向量的中间向量依次累加至所述第二预设向量;根据所述每个数据段的第一目标向量,以及所述每个数据段的第二目标向量,确定用于校验所述网络传输数据的校验和。
11.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器中存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913099.3A CN117014104A (zh) | 2023-07-24 | 2023-07-24 | 数据校验方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913099.3A CN117014104A (zh) | 2023-07-24 | 2023-07-24 | 数据校验方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014104A true CN117014104A (zh) | 2023-11-07 |
Family
ID=88573842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310913099.3A Pending CN117014104A (zh) | 2023-07-24 | 2023-07-24 | 数据校验方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014104A (zh) |
-
2023
- 2023-07-24 CN CN202310913099.3A patent/CN117014104A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111934889B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
CN107027036A (zh) | 一种fpga异构加速平台的解压缩方法、装置及系统 | |
CN105553937B (zh) | 数据压缩的系统和方法 | |
US10044369B1 (en) | Interleaved codes for dynamic sizeable headers | |
CN112306741A (zh) | 一种crc校验方法及相关装置 | |
CN114331416A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
CN114564509A (zh) | 序列化方法、反序列化方法、设备、芯片以及介质 | |
CN117014104A (zh) | 数据校验方法、装置、设备及存储介质 | |
EP1695218B1 (en) | Checksum generation apparatus and method thereof | |
CN103763064A (zh) | 适用于超高速通讯系统的循环冗余校验码生成方法与电路 | |
CN114499757B (zh) | 一种生成校验和的方法、装置及电子设备 | |
CN108270508A (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
US11657031B2 (en) | Apparatus and method for generating data quality information of electric power equipment | |
CN114626523A (zh) | 训练深度学习模型的方法、装置、设备以及存储介质 | |
CN115016934A (zh) | 一种联邦学习方法、装置、系统、电子设备及存储介质 | |
CN114579311A (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
WO2021036189A1 (zh) | Rdma数据发送及接收方法、电子设备及可读存储介质 | |
KR100666997B1 (ko) | 고속 체크섬 처리 장치 및 방법 | |
CN111355694B (zh) | 一种网络数据校验方法、装置及系统 | |
CN116320052B (zh) | 用于通用验证方法学验证平台的网络报文自动生成方法 | |
CN108600194B (zh) | 网络接口控制器 | |
CN110727442B (zh) | 用于嵌入式平台数据存储优化方法及系统 | |
CN111417920A (zh) | 数据处理方法及装置 | |
CN113644986B (zh) | 编码方法、编码装置、计算设备及计算机可读存储介质 | |
CN116016724B (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 |