解释循环冗余校验(CRC)
循环冗余校验(CRC)是最强大的 错误检测和纠正 的方法。它作为一个 k位 的消息,发射方创建了一个(n – k)位的序列,称为帧校验序列。所得到的帧,包括n位,可以被某个固定数字精确地整除。在这个二进制加法中使用了模2算术,没有进位,就像异或运算一样。
冗余意味着 重复。 CRC使用的冗余位通过将数据单元按照固定的除数进行分割来改变。余数就是CRC。
CRC的特性
- 它的位数应比除数少一个。
-
将其附加到数据单元的末尾应该得到一个能被除数整除的结果位序列。
CRC的生成和检查
过程
- 在数据单元后面添加n个0。数字n比固定除数的位数少1。
-
用二进制除法将新的数据单元除以除数;除法的余数即为CRC。
-
将在第2步中解释的n位CRC添加到数据单元的末尾。
示例
消息D = 1010001101(10位)
预定的P = 110101(6位)
FCS R = 待计算的结果,5位
因此,n = 15,K = 10,(n – k)= 5
通过2 5 产生消息:1010001101000
将产品除以P。
将余数添加到2 5 D,得到T = 101000110101110,发送。
假设没有错误,接收方完全收到了T。接收到的帧除以P。
由于没有余数,所以没有错误。