循环冗余校验 (CRC) 解释
循环冗余校验 (CRC) 是用于错误检测和纠正的最有效方法。它以一个 **k 比特**的消息作为输入,发送方创建一个 (n – k) 比特的序列,称为帧校验序列。输出的帧,包括 n 个比特,可以被某个固定数整除。模 2 算术用于此二进制加法,没有进位,就像 XOR 操作一样。
冗余意味着 **重复**。CRC 使用的冗余位通过用一个固定除数来分割数据单元进行改变。余数就是 CRC。
CRC 的特性
它应该比除数少一位。
将其连接到数据单元的末尾应该使生成的比特序列能够被除数整除。
CRC 生成器和校验器
过程
一串 n 个 0 被添加到数据单元中。数字 n 比固定除数的比特数少 1。
新的数据单元使用称为二进制除法的过程除以除数;除法产生的余数就是 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。
由于没有余数,因此没有错误。
广告