冗馀验证码视频链接至: https://www.bilibili.com/video/b v1 be 411 D7 ii? from=search seid=6420326887479343502计算机组成原理系列文章目录循环冗馀校验码前言1循环冗馀校验码1.1基本思想1.2结构方法1.3纠错校验码2总结
前言
在本篇中,你将掌握
循环冗馀校验码的基本思想和构造方法
1循环冗馀校验码
1.1基本思想循环冗馀校验码思想:数据发送、接收方约定一个“除数”(二进制除数) ) ) ) ) )。
k个消息代码r位校验码为“被除数”,在检查时判断馀数是否为0并判断是否出错。
来看看例子吧。 如下图所示,生成多项式g(x )是已知的,消息代码为101001,求出对应的CRC代码。
二进制除法规则如上图所示,其除法过程首先判断被除数的当前最高有效位是否为1,如果为1,则当前商为1,否则为0,然后被除数和除数为”模2减” 然后,在“模2负”之后,如果位数不在最高位补充0,则重复第一步,直到最后得到商和馀数。
对于馀数,馀数的位数=除数的位数-1=校验码的位数。
1.2结构方法解法步骤
确定与k、r和生成多项式对应二进制代码
K=信息代码长度=6、R=生成多项式最高次幂=3的校验码比特数为N=K R=9
与生成多项式g对应的二进制码为1101,与x次幂的系数移位对应
信息码向左移动r位,并在低位添加0 (即,在信息码之后添加r个奇偶校验位的0 )来进行除法
对于移位后的消息代码,用生成多项式进行模2除法,产生剩馀
对应的CRC代码: 101001 001
(除法运算的过程请参照上图。 该模式2除法的余数001为奇偶校验位。 (错误检测和纠错
发送端发送的数据为101001001,其中c9c8 c7c6C5 C4 C2C 1c _ 9c _ 8c _ 7c _ 6c _ 5c _ 4c _ 2c _1c9c8 c7c6C4 C2C 1接收端承诺接收到的数据为1101,2
1.3纠错检查注意在上表中,如果错误位置1和8、2和9之余两个相同,你能猜测循环冗馀校验码只有检测错误的能力,没有纠错的能力吗?
并不是一切都是对的。 在上述示例中,剩下的只有三位二进制代码,只能表示8-1=7种(000表示没有错误)的错误位,但由于传输的位数为9位,因此无法纠错。
对于确定的生成多项式,错误位对应于馀数
也就是如果出错的位数并没超过余数所能表示的范围,则余数和出错位之间就是一一对应的关系
如果适当地选择了k个信息比特、r个奇偶校验位和所生成多项式,且2 R=K R 1 2_R=K R 1 2R=K R 1,则CRC码可以被纠错
2总结
本篇的要点:
(1)循环冗馀校验码的构建方法)如何根据给定的k个信息比特和最高阶为r的生成式构建循环冗馀校验码(k个信息比特) r个奇偶校验位) );
)2)循环冗馀校验码的校验方法)除以生成模式2,得到r的馀数,如果是000就没错了,否则就会出错,有纠错的可能性
本篇也是计算机网络的重中之重,需要熟悉CRC的计算结构方法。