检错码 - 循环冗余校验 (CRC)
错误和错误检测
当比特在计算机网络上传输时,由于干扰和网络问题,它们可能会损坏。损坏的比特会导致接收方接收虚假数据,这些数据被称为错误。
错误检测技术负责检查通过网络传输的帧中是否发生任何错误。它不考虑错误位的数量和错误的类型。
为了进行错误检测,发送方需要与数据位一起发送一些额外的位。接收方根据附加的冗余位进行必要的检查。如果它发现数据没有错误,则在将消息传递到上层之前删除冗余位。
有三种主要的错误检测技术:奇偶校验、校验和和循环冗余校验 (CRC)。
循环冗余校验 (CRC)
循环冗余校验 (CRC) 是 W. Wesley Peterson 在 1961 年发明的一种分组码。它通常用于检测通过电信网络和存储设备传输的数据中意外的更改。
CRC 涉及由通信系统商定的预定除数对被发送的数据位进行二进制除法。除数使用多项式生成。因此,CRC 也称为多项式码校验和。
过程如下所示:
使用 CRC 进行编码
通信双方商定消息块的大小和 CRC 除数。例如,选择的块可以是 CRC (7, 4),其中 7 是块的总长度,4 是数据段中的位数。选择的除数可以是 1011。
发送方对数据段进行二进制除法运算。
然后,它将余数(称为 CRC 位)附加到数据段的末尾。这使得生成的数据单元可以被除数整除。
解码
接收方用除数除以传入的数据单元。
如果没有余数,则假定数据单元正确并被接受。
否则,表示数据已损坏,因此被拒绝。然后,接收方可能会向发送方发送错误确认,以便重新传输。
广告