循环冗余校验 (CRC)
循环冗余校验 (CRC)
循环冗余校验 (CRC) 是最强大的错误检测和纠正方法。它以 kbit 消息的形式给出,发送器创建一个 (n – k) 位序列,称为帧校验序列。输出帧(包括 n 位)可以被某个固定数字精确整除。此二进制加法使用无进位的模 2 算法,就像 XOR 运算一样。
冗余意味着 重复。CRC 使用的冗余位通过将数据单元拆分为固定除数来更改。余数即为 CRC。
CRC 的特性
其比特位应比除数少一位。
将其连接到数据单元的末尾应创建可被除数精确整除的结果比特序列。
CRC 生成器和校验器
过程
将一串 n 个 0 添加到数据单元。数字 n 比固定除数中的位数小一。
使用称为二进制除法的程序将新数据单元除以除数;除法得出的余数是 CRC。
在第 2 阶段解释的 n 位 CRC 恢复了数据单元末尾添加的 0。
示例
消息 D = 1010001101(10 位)
预定 P = 110101(6 位)
FCS R = 待计算 5 位
因此,n = 15 K = 10 且 (n – k) = 5
该消息通过 25 生成:容纳 1010001101000
乘积除以 P。
余数插入 25D 以提供发送的 T = 101000110101110。
假设没有错误,并且接收方获得完美的 T。接收的帧除以 P。
由于没有余数,因此没有错误。