定义
CRC(Cyclic Redundancy Code,循环冗余码)是一种常用的检错编码,通过在数据后面附加冗余校验位来检测传输错误。
原理
- 发送方将数据位串视为多项式系数
- 用一个预先约定的生成多项式 去除数据多项式
- 将余数(CRC 校验码)附加在数据后面发送
- 接收方用同样的生成多项式去除接收到的数据
- 若余数为 0,则认为传输无误
特点
- 检错能力强,能检测出绝大多数突发错误
- 实现简单,硬件可用移位寄存器实现
- 不能纠错,只能检错
- 常用于以太网、HDLC 等数据链路层协议
相关概念
- FCS(Frame Check Sequence):帧检验序列,即 CRC 校验码