定义

CRC(Cyclic Redundancy Code,循环冗余码)是一种常用的检错编码,通过在数据后面附加冗余校验位来检测传输错误。

原理

  1. 发送方将数据位串视为多项式系数
  2. 用一个预先约定的生成多项式 去除数据多项式
  3. 将余数(CRC 校验码)附加在数据后面发送
  4. 接收方用同样的生成多项式去除接收到的数据
  5. 若余数为 0,则认为传输无误

特点

  • 检错能力强,能检测出绝大多数突发错误
  • 实现简单,硬件可用移位寄存器实现
  • 不能纠错,只能检错
  • 常用于以太网、HDLC 等数据链路层协议

相关概念

  • FCS(Frame Check Sequence):帧检验序列,即 CRC 校验码