HacKerQWQ的博客空间

CRC冗余码相关知识

Word count: 497Reading time: 1 min
2020/10/10 Share

CRC校验

基本原理

CRC校验码就是一个m长的二进制信息序列加上n长的二进制校验序列,形成的m+n长的CRC冗余码。当n长的信息序列在传递过程中发生错误时,由于信息序列与校验序列在传递前存在某种关联,因此可以凭借这种关联将错误位矫正,这就是CRC校验码

实现

信息发送方和接收方事先约定了一个生成多项式g(x)
V(x)=A(x)g(x)=xn*m(x)+r(x)
其中m(x)为信息多项式,r(x)为n-1次的校验多项式,xn代表x的n次方
r(x)的计算方法为:在K位信息字段的后面添加n个0,再除以g ( x )对应的代码序列,得到的余数即为r ( x )对应的代码(应为n-1位;若不足,而在高位补0)。

演示


因此生成的CRC校验码就是101001+001=101001001一共9位

错误检测

当接收方收到数据后,用收到的数据对P(事先约定的)进行模2除法,若余数为0,则认为数据传输无差错;若余数不为0,则认为数据传输出现了错误,由于不知道错误发生在什么地方,因而不能进行自动纠正,一般的做法是丢弃接收的数据。

  • Note
  1. CRC只能检测错误,不能自动纠错
  2. 信息序列的位数越多,检测不到错误的概率越小
  3. 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(只是非常近似的认为是无差错的),并不能保证可靠传输。

应用

CRC冗余码一般用于帧检验序列FCS(在数据链路层添加)
https://blog.csdn.net/loveCC_orange/article/details/79127809

参考链接

https://blog.csdn.net/sunlanchang/article/details/87992318
https://baike.baidu.com/item/%E5%B8%A7%E6%A0%A1%E9%AA%8C%E5%BA%8F%E5%88%97/6818718?fr=aladdin

CATALOG
  1. 1. CRC校验
    1. 1.1. 基本原理
    2. 1.2. 实现
    3. 1.3. 演示
    4. 1.4. 错误检测
    5. 1.5. 应用
    6. 1.6. 参考链接