检错码 - 循环冗余校验 (CRC)


错误和错误检测

当比特在计算机网络上传输时,由于干扰和网络问题,它们可能会损坏。损坏的比特会导致接收方接收虚假数据,这些数据被称为错误。

错误检测技术负责检查通过网络传输的帧中是否发生任何错误。它不考虑错误位的数量和错误的类型。

为了进行错误检测,发送方需要与数据位一起发送一些额外的位。接收方根据附加的冗余位进行必要的检查。如果它发现数据没有错误,则在将消息传递到上层之前删除冗余位。

有三种主要的错误检测技术:奇偶校验、校验和和循环冗余校验 (CRC)。

循环冗余校验 (CRC)

循环冗余校验 (CRC) 是 W. Wesley Peterson 在 1961 年发明的一种分组码。它通常用于检测通过电信网络和存储设备传输的数据中意外的更改。

CRC 涉及由通信系统商定的预定除数对被发送的数据位进行二进制除法。除数使用多项式生成。因此,CRC 也称为多项式码校验和。

过程如下所示:

使用 CRC 进行编码

  • 通信双方商定消息块的大小和 CRC 除数。例如,选择的块可以是 CRC (7, 4),其中 7 是块的总长度,4 是数据段中的位数。选择的除数可以是 1011。

  • 发送方对数据段进行二进制除法运算。

  • 然后,它将余数(称为 CRC 位)附加到数据段的末尾。这使得生成的数据单元可以被除数整除。

解码

  • 接收方用除数除以传入的数据单元。

  • 如果没有余数,则假定数据单元正确并被接受。

  • 否则,表示数据已损坏,因此被拒绝。然后,接收方可能会向发送方发送错误确认,以便重新传输。

更新于:2020年6月26日

7K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告