CRC校验码-----验证数据完整性

计算一串数据的CRC校验码、验证携带CRC校验码的数据的完整性,C语言源码:(8位)
地址:http://download.csdn.net/download/aaron133/10247767

【1】CRC校验码的介绍:

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

【2】首先需要了解CRC校验中使用到的模2除法:

CRC校验码-----验证数据完整性_第1张图片

CRC校验码-----验证数据完整性_第2张图片

模二除法计算出来的余数就是所谓的CRC校验码

【3】使用CRC校验码,验证数据的完整性

  1. 发送方与接收方指定一个相同的除数(最高位与最低位必须为1)
  2. 除数二进制位数,然后再要发送的数据帧上面加上这个位数-1位的0,然后用新生成的帧以模2除法的方式除上面的除数得到的余数就是该帧的CRC校验码
  3. 注意,余数的位数一定只比除数位数少一位,也就是CRC校验码位数比除数位数少一位,如果前面位是0也不能省略。
  4. 将计算出来的CRC校验码附加在原数据帧(也就是覆盖那几个尾部增加的0)后面,构建成一个新的数据帧进行发送;最后接收方在以模2除法除相同的除数,如果没有余数,则说明数据帧在传输的过程中没有出错。

你可能感兴趣的:(Windows网络编程)