计算机网络多项式的定义,计算机网络问题,急,,,

2017年12月13日星期三,这里需要强调一点,生成多项式(generatorpolynomial)和多项式不是一个概念,这里需要注意。我个人的理解是你要进行几位的CRC校验,就需要几位的生成多项式(generatorpolynomial),但还收到生成多项式(generatorpolynomial)的第一位必须为1的限制,因此生成的多项式还需要注意这一点。原始信息所对应的多项式和生成多项式(generatorpolynomial)不是一个概念。首先,我们要知道,任何一串二进制数都可以用一个多项式表示:且这串二进制数的各位对应多项式的各幂次,多项式中假如有此幂次项(比如多项式汇中有幂次项x^2对应二进制串码中从右至左的第三位二进制数一定为1.因为右数第一位的幂次项为x^0,右数第二位的幂次项为x^1),则对应二进制数串码中此位置的1,无此幂次项对应0。举例:代码1010111对应的多项式为x^6+x^4+x^2+x+1,若我们将缺失的幂次项补全的话就有x^6+(x^5)+x^4+(X^3)+x^2+x+1,又因为x^5和X^3所对应的二进制位为0,不记入多项式中,因此有x^6+x^4+x^2+x+1,就是表示1010111这个串码。而多项式为x^5+x^3+x^2+x+1的完整多项式为x^5+(x^4)+x^3+x^2+x+1正好对应二进制串码101111,而x^4对应的二进制串码中右数第五位(左数第二位)为0,不记入多项式中,因此,101111可以使用多项式x^5+x^3+x^2+x+1来表示。通过上述两个多项式的例子,可以看出,当多项式中的幂次项所对应的那一位二进制为1时,多项式中的那一个幂次项存在,而当二进制串码中的某位为0时,对应的多项式幂次项忽略不记录,例如,101111因为从左向右第二位是0,因此对应的多项式分子x^4就没有被记录到多项式中,书面的说法是:多项式和二进制数有直接对应关系:X的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:X的最高幂次为R,转换成对应的二进制数有R+1位,我们现在来看题目中generatorplynomial(生成多项式)isX^4+x^2+1,最高幂次是4,因此,其表示的二进制为(4+1=5)5位,且通过crc的原理,我们知道,循环冗余校验码(CRC)是由两部分组拼接而成的,第一部分是信息码,第二部分是校验码,可得公式:CRC=信息码+校验码,很明显校验码是跟在信息码之后的,所以,题目中1101011011中左数的那5位是真正传输的信息(信息码),即actualbitstringtransmitted(实际传输的信息位流)是11010,而后面的5位(11011)是校验码,接下来我们结合上面的内容来理解对CRC的定义:循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2^R),这样C(x)的右边就会空出R位,这就是校验码的位置。用C(x)*2^R除以生成多项式G(x)得到的余数就是校验码。另一个定义:利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。再看另一个描述,在代数

编码理论中,将一个码组表示为一个多项式,码组中各码元当作多项式的系数。例如1100101表示为1·x^6+1·x^5+0·x^4+0·x^3+1·x^2+0·x^1+1,即x^6+x^5+x^2+1。设,编码前的原始信息多项式为P(x),P(x)的最高幂次加1等于k(这里的K就是整个原始信息的二进制编码的长度,以上例1100101为例,此串二进制编码的最高位对应的多项式幂次为6,根据定义得K=6+1=7,正好是此串二进制编码的长度,);设,生成多项式为G(x),G(x)的最高幂次等于r,这个r可以随意指定,也就是r可以不等于K,但指定r时,必须满足生成多项式G(x)最高位必须为1的条件,设,CRC多项式为R(x)。:将P(x)乘以x^r(即对应的二进制码序列左移r位),再除以G(x),所得余式即为R(x)。设,编码后的带CRC的信息多项式为T(x)。:用公式表示为T(x)=x^r*P(x)+R(x),翻译过来就是,编码后的带CRC校验的多项式由左移了r位的原始信息P(x)后接CRC的校验码R(x)组成,而在接收端,是使用T(x)去除G(x),若无余数,则表示接收正确。就是接收端使用接收到的信息T(x)去除和发送端约好的生成多项式G(x),若除尽没有余数则表示信息正确接收。我们再来看本题,题中给出已传输的信息为:1101011011,即T(x)=1101011011;而generator polynomial生成多项式是:x^4+x^2+1,即G(x)=10101;那么,我们来使用T(x)除以G(x)=110,根据上面的定义,我们知道,出现了没有除尽的情况,有余数,余数为110,则说明信息11010在传递过程出现了错误,而题目中给出,若将此信息串码的左数第三位进行翻转,则接收到的信息为:1111011011,那么,T(x)=1111011011,则,再通过T(x)除以G(x)进行校验运算后,得到余数1,没有除尽即T(x)除以G(x)=1,所以没有通过CRC校验,此时,接收端能发现这个错误,但是,如果我们将此串数据的左数第三位和最后一位同时翻转,得到1111011010,那么再经过T(x)除以G(x)的接收端校验后,除尽了,余数为0,则,此时,因为T(x)除以G(x)=0,通过了接收端的校验,因此,接收端并不能发现这个错误,以为是收到了正确的串码:11110,但实际上我们发送的串码是:11010,最后,我们再来研究一下,T(x)是怎么除G(x)的,实际上我们必须清楚,这里的除法实际上并不是我们传统意义上的十进制除法,而是两个二进制的“按位异或”(请注意每步运算都是先进行高位对齐的。)的算法,在二进制数运算中,这被称为模二除运算,来看两个例子,【例一】假设使用的生成多项式是G(X)=X3+X+1。4位的原始报文为1010,求编码后的报文。解:1、将生成多项式G(X)=X^3+X+1转换成对应的二进制除数1011。R=3,R就是生成多项式的最高次幂,2、此题生成多项式有4位(R+1)(注意:通过对生成多项式计算所得的校验码为3位,因为,生成多项式的R为生成多项式的最高次幂,所以校验码位数是3位),要把原始报文C(X)【这里的C(X)就是1010】左移3(R)位变成10100003、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或:10100001011------------------0001000,请注意这里,通过第一次除法,也就是模2除(高位对齐)的运算,将两个二进制代码进行了高位对齐后的按位异或的操作后,得到0001000即1000,接下来,需要进行第二次除法,即使用第一步得到的二进制数1000去除1011【G(x)】,则有下面的式子,10001011------------------0011       ,请注意,结果为0011,也可以写成11,但是我们由上面得知,由生成多项式G(X)=X^3+X+1,已经确定了校验位是3位,因此,得到的余位011,所以最终编码为:1010011。例二:信�

�字段代码为:1011001;对应的原始多项式P(x)=x6+x4+x3+1假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的代码为:11001,又因为g(x)最高次幂为4,因此可以确定校验位是4位,根据CRC给生成多项式g(x)定义的规则,将原始代码整体左移4位,这样在原始数据后面多出4位校验位的位置,即x^4*P(x),得到:10110010000;接下来使用10110010000去除以g(x),得到最终的余数1010,并与原始信息组成二进制串码:10110011010发送出去,接收方:使用相同的生成多项式进行校验:接收到的字段/生成码(二进制除法)如果能够除尽,则正确,给出余数(1010)的计算步骤:除法没有数学上的含义,而是采用计算机的模二除法,即除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,按位异或。10110010000^11001--------------------------01111010000 ,这里进行第一次按位异或,得到01111010000,即1111010000,将1111010000再去除以11001,如下步骤,1111010000^11001-------------------------0011110000,进行了第二次模2除后,得到0011110000,即11110000,将11110000去除11001,11110000^11001--------------------------00111000,第三次摸2除,得到00111000,即111000,用111000去除11001,111000^11001-------------------001010,进行第四次模2除后,得到最终的余数,001010,即1010,则四位CRC校验码就为:1010。

阅读全文 >

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值