什么是校验和?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是校验和?相关的知识,希望对你有一定的参考价值。

怎么算的,
要不要用到C
我只学过B
跟加密技术又有什么关系,我问的是TCP报头中的检验和(校验和,这两者一样么)?

其实这是一种加密技术用于对文件内容进行审计的方法,使用 精通读文件把文件读到内存中,再对文件内容作一个 MD5 校验得到一串密码,就是校验和。

补充:

1、IP首部校验和字段是根据IP首部计算的校验和码,它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据校验和码。
2、IP首部校验和计算:
为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
3、TCP和UDP校验和计算(两者相同)
校验和还包含—个96位的伪首标,理论上它位于TCP首标的前面。这个伪首标包含了源地址、目的地址、协议和TCP长度等字段,这使得TCP能够防止出现路由选择错误的数据段。这些信息由网际协议(IP)承载,通过TCP/网络接口,在IP上运行的TCP调用参数或者结果中传递。

伪首部并非UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。
这样的校验和,既校验了UDP用户数据的源端口号和目的端口号以及UDP用户数据报的数据部分,又检验了IP数据报的源IP地址和目的地址。(伪报头保证UDP和TCP数据单元到达正确的目的地址。因此,伪报头中包含IP地址并且作为计算校验和需要考虑的一部分。最终目的端根据伪报头和数据单元计算校验和以验证通信数据在传输过程中没有改变而且到达了正确的目的地址。)
参考技术A   校验和是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据。如果数值匹配,那么说明传送已经完成。
  检验和在数据处理和数据通信领域中,用于校验目的地一组数据项的和。它通常是以十六进制为数制表示的形式。如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和。通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。
参考技术B 就是和正确值进行对比修正 参考技术C 没验证成功
买票提示的把
参考技术D 和检验一样,多为用户登录时遇到

什么是CRC循环冗余校验

CRC(Cyclic Redundancy Checksum)是一种纠错技术,代表循环冗余校验和。它的使用方式可以说明如图1。

什么是CRC循环冗余校验

 

用一个例子来说明。

大多数CRC问题如下所示。首先将得到一个生成器多项式和一个消息数据,再从中计算校验位。

什么是CRC循环冗余校验

 

在开始解决问题之前,将给定的信息重写为稍微不同的格式(如红色)

什么是CRC循环冗余校验

 

一旦你得到这些信息,建立一个二进制除法方程如下(红利dividend是通过结合给定的消息数据和尾随的零来创建的)。

什么是CRC循环冗余校验

 

然后就是通过二元运算,得到需要的解。

什么是CRC循环冗余校验

 

也可以通过每个步骤来进行计算。

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

什么是CRC循环冗余校验

 

使用上面计算的校验和和消息数据,可以创建要传输的码字。

什么是CRC循环冗余校验

以上是关于什么是校验和?的主要内容,如果未能解决你的问题,请参考以下文章

CRC和校验和有什么区别?

什么是CRC校验码?

TCP包里,关于IP头和TCP头的校验和字段

下载的时候经常看到个MD5校验码,是啥意思,做啥用的?

使用标记/空间奇偶校验和无奇偶校验有啥区别?

M1卡0扇区0块卡号校验问题懂的来