计算机网络原理 循环冗余码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络原理循环冗余码
循环冗余校验码(CRC:Cyclic Redundancy Code)借助于循环码来实现校验。循环码不同于奇偶校验码,它有两个显著特点:一是循环码适合于用代数方法分析码的结构,并可以用代数方法设计各种实用的、有较强纠错能力的码,并且无需很长的码长;二是由于码的循环特性,所需的编、译码设备比较简单,易于实现。因此循环码在实际中得到广泛应用。1.CRC的工作方法
在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,若有错,需重发。
2.循环冗余码的产生与码字正确性检验例子。
例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1
生成码:11001 生成多项式:G(X)=X4+X3+1(r=4)
求:循环冗余码和码字。
解:1)(X5+X4+X+1)*X4的积是X9+X8+X5+X4对应的码是1100110000。
2)积/G(X)(按模二算法)。
由计算结果知冗余码是1001,码字就是1100111001。
G(x)
11001
10000
1001
×X r
例2.已知:接收码字:1100111001 多项式:T(X)=X9+X8+X5+X4+X3+1
生成码:11001 生成多项式:G(X)=X4+X3+1(r=4)
求:码字的正确性。若正确,则指出冗余码和信息码。
解:1)用字码除以生成码,余数为0,所以码字正确。
G(x)
11001
11001
11001
×X r+R(x) S(x)
2)因r=4,所以冗余码是:11001,信息码是110011
3.循环冗余码的工作原理
循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。
循环码又被称为(n-k)循环码,这是因为此码共n位,其中前k位为数据位,后(n-k)位为冗余位。其组成如表所示。其中r代表冗余位,m代表原始数据。
●全部奇数个错误
●全部双字位错误
●全部小于、等于冗余倍数(n-k)的突发性错误
●对于n-k-1位的突发性错误,查出概率为1~2-(R-1)
●对于多于n-k-1位的突发性错误,查出概率为1~2-r。
●可以看出,只要选择足够的冗余位,可以使得漏检率减到任意小的程序。
4.循环冗余码
循环冗余编码法在数据传输中得到最广泛的应用。使用这种冗余编码的实质在于,传输信息符号时,不使用全部M个编码组合,而只使用其中的一部分(M0个)。这部分编码具有某种事先确定的性质。在接收端出现不使用的编码组合(禁用码)时,说明在某一位或若干位中发生了错误。CRC还有纠错功能,但网络中不用其纠错功能,仅用其强大的检错功能,检出错误后要求重发。
随着集成电路工艺的发展,循环冗余码的产生和校验均有集成电路产品,发送端能够自动产生CRC码,接收端自动校验,速度大大提高。目前,以太网采用32位CRC校验,由专用的以太网系列器件来完成。
循环冗余校验码的特点
●可检测出所有奇数位错;
●可检测出所有双比特的错;
●可检测出所有小于、等于校验位长度的突发错。
除了以上常用的两种以外,还有恒比码、群计数、汉明码等常用的纠错编码。