CRC和checksum的区别

CRC和checksum的区别,第1张

一、定义不同:

1CRC:

是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术。

2checksum:

在数据处理和数据通信领域中,用于校验目的的一组数据项的和。

二、作用不同:

1CRC:

用除法及余数的原理来作错误侦测。

2checksum:

保证数据的完整性和准确性。

扩展资料

在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。

为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和循环冗余校验等。

循环冗余校验是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位的约定关系的)。

参考资料来源:百度百科-CRC

参考资料来源:百度百科-Checksum

不等啊

(0x100 - 0xcc) & 0xff的值是52,肯定不等于232

计算如下:

0x100 - 0xcc = 52(写成16进制就是0x34)

与0xff作“&”运算,即与运算,0xff写成二进制是11111111,每一位都是1,所以任何与它作与运算的都会是等于自身,所以

(0x100 - 0xcc) & 0xff = 52

所以是不等

在linux上使用tcpdump抓包,使用wireshark分析时发现发出的报文校验和都是错误的,可是仍然可以与目标建立链接,正常通信。这是为什么呢?

在这里找到了问题原因: >

校验和(Checksum) PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有一个校验和 Windows 提供了一个API函数MapFileAndCheckSum 测试文件的Checksum

以上就是关于CRC和checksum的区别全部的内容,包括:CRC和checksum的区别、java: int Checksum = 232; 【(byte)Checksum】与【((0x100 - 0xcc & 0xff)】判断是否相等、解决抓到的报文校验和错误问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9650814.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存