你大概是指CRC的生成多项式吧。它就是用来把要进行防错处理的二进制码流进行转换生成校验码,然后接收方会收到原始的二进制码流和校验码,按照与发送方相同的多项式再次进行转换生成校验码,与发来的校验码进行比较。如果一致则说明接收到的二进制码流是正确的;反之则说明接收到的二进制码流包含错误。
网络嫌我字数不够
B. 计算机网络原理的计算题(CRC校验和数据传输问题)
第一题:进行模2除法时被除数错了,应该是M*2^4,不是M*2^5,因为多项式是4阶的,在M后面添4个0
C. 有什么方法用计算机计算多项式
用matlab
syms x;
simple((x^2+4.6-4.3*x)*(-39.425)+(x^2+4.4-4.2*x)*27.7633+(x^2+5.06-4.5*x)*11.5517)
D. 多项式的运算法则
1、几个多项式相加减的法则是:首先把带减号的多项式中的每个单项式都变号合成一个多项式,然后合并同类项,并按字典排列法写出结果。
例如:设A=7a²-2ab+b²,B=6a²-ab-b²,C=4a²+3ab+2b²,则A-B+C=A+B′+C,其中B′=-B=-6a²+ab+b²。
即A-B+C=(7a²-2ab+b²)-(6a²-ab-b²)+(4a²+3ab+2b²)=7a²-2ab+b²-6a²+ab+b²+4a²+3ab+2b²=5a²+2ab+4b² 。
2、由多项式乘多项式法则可以得到(a+b)(c+d)=a(c+d)+b(c+d)=ac+ad+bc+bd
上面的运算过程,也可以表示为(a+b)(c+d)=ac+ad+bc+bd,多项式乘以多项式就是利用乘法分配律法则得出的。
(4)计算机网络多项式计算扩展阅读
1、整式加减计算的一般步骤是:
(1)根据题意列出代数式;
(2)根据去括号法则去掉括号;
(3)合并同类项。
不难看出,整式的加减实质上是合并同类项。因此,整式加减的结果还是整式。
2、整式的加减能用竖式计算。计算的步骤是
(1)把一个加式或者被减式按照某一个字母的降幂(或升幂)排列成一行,如果有缺项留出空位;
(2)再把其它加式或者减式写在它的下面,使同类项对齐;
(3)然后相加或相减 。
E. 计算机网络简单计算题
生成多项式G(x)是4次的,冗余码应该是4位的。
x4K(x)=101110100000,用长除法得冗余码R(x)=1101
F. 计算机网络(计算题)
ukygyu
G. 计算机网络问题,急,,,
2017年12月13日星期三,
这里需要强调一点,生成多项式(generator polynomial)和多项式不是一个概念,这里需要注意。我个人的理解是你要进行几位的CRC校验,就需要几位的生成多项式(generator polynomial),但还收到生成多项式(generator polynomial)的第一位必须为1的限制,因此生成的多项式还需要注意这一点。原始信息所对应的多项式和生成多项式(generator polynomial)不是一个概念。
首先,我们要知道,任何一串二进制数都可以用一个多项式表示:且这串二进制数的各位对应多项式的各幂次,多项式中假如有此幂次项(比如多项式汇中有幂次项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时,对应的多项式幂次项忽略不记录,例如,10111 1因为从左向右第二位是0,因此对应的多项式分子x^4就没有被记录到多项式中,
书面的说法是:
多项式和二进制数有直接对应关系:X的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:X的最高幂次为R,转换成对应的二进制数有R+1位,
我们现在来看题目中generator plynomial (生成多项式)is X^4+x^2+1,最高幂次是4,因此,其表示的二进制为(4+1=5)5位,
且通过crc的原理,我们知道,循环冗余校验码(CRC)是由两部分组拼接而成的,
第一部分是信息码,
第二部分是校验码,
可得公式:
CRC=信息码+校验码,
很明显校验码是跟在信息码之后的,所以,题目中1101011011中左数的那5位是真正传输的信息(信息码),即actual bit string transmitted(实际传输的信息位流)是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)位变成1010 000
3、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或:
1010000
1011
------------------
0001000, 请注意这里,通过第一次除法,也就是模2除(高位对齐)的运算,将两个二进制代码进行了高位对齐后的按位异或的操作后,得到0001000即1000,接下来,需要进行第二次除法,即使用第一步得到的二进制数1000去除1011【G(x)】,则有下面的式子,
1000
1011
------------------
0011,请注意,结果为0011,也可以写成11,但是我们由上面得知,由生成多项式G(X)=X^3+X+1,已经确定了校验位是3位,因此,
得到的余位011,所以最终编码为:1010 011。
例二:
信息字段代码为: 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,并与原始信息组成二进制串码:1011001 1010发送出去,
接收方:使用相同的生成多项式进行校验:接收到的字段/生成码(二进制除法)
如果能够除尽,则正确,
给出余数(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。
H. 计算机网络试题: 设有一个(7,3)码,其生成多项式为g(x)=X4+X3+X2++1,当传输信息为101时,求CRC码字。
101先用转换到GF(2)上的多项式,就是s(x)=x2+1
在用生成多项式去对信息进行编码:
g(x)*s(x)=x6+x5+x3+1,注意这是有限域GF(2)上的多项式运算,系数要模2才行
所以码字是:1101001
I. 计算机网络中设有一个(8、4)码,其生成多项式为g(x)=x4+x3+1,当传输信息为1001时,求其对应的CRC码字。
对应的CRC码是10011110
计算过程:
J. 计算机网络计算题
停等协议窗口大小w=1
后退N帧 窗口大小w<=2^k-1
选择重发 窗口大小w<=2^(k-1)
其中 窗口大小w就是你题中的k
我这里的k就是帧编号位数,你题中给的3.