循环冗余检测 CRC
CRC 的基本原理是什么?
- 别名: 循环冗余检测又称多项式编码;
- 参数协商: 发送方与接收方事先约定一个
r + 1比特的生成多项式G; - 目标: 让发送的
d + r比特串能被G在模 2 算术下整除; - 地位: 实际链路层中最常用的差错检测技术;
发送方如何生成 CRC?
- 取
d比特数据字段D; - 在
D后面追加r个 0; - 用
G对该d + r比特串做模 2 除法, 得到r位余数; - 用余数替换追加的
r个 0, 一起发送;

接收方如何校验?
- 做法: 用约定的
G对收到的d + r比特做模 2 除法; - 判定: 余数为 0 认为无差错, 否则认为出错;
模 2 整除如何计算?
- 规则: 每一位的结果不影响其他位, 不存在借位与进位;
- 实质: 按位异或;
- 示例: 用长除法逐位异或, 直到余数位数小于
G的位数;
