Ⅰ 计算机网络-循环冗余检测R的计算
循环冗余检测(CRC)是一种用于数据传输中错误检测的编码方式。其原理是在发送的数据段后,附加一段由特定生成多项式计算得出的冗余码。接收方通过相同的生成多项式对收到的数据进行同样的计算,若结果一致则认为数据传输无误。
生成多项式通常表示为一个 r+1 位的二进制数,其中 r 是冗余码的位数,最高位通常为 1。在发送端,数据段 D 会被扩展至 D',在 D 的末尾添加 r 个 0,形成 01 字符串,此过程满足模 2 算术,即每个位进行异或操作。接收端若能将接收到的数据用相同的生成多项式整除,则证明数据在传输过程中未发生错误。
以发送数据 D=1010101010 和生成多项式 G=10011 为例。生成多项式的位数 r 为 G 的位数减 1,即 r=4。首先在数据 D 后添加 4 个 0,形成 D'=10101010100000。接着,使用模 2 算术对 D' 进行除法运算,其本质是进行位数异或运算。最终得到的余数即为冗余码 R,本例中的 R 为 0100。若接收端计算结果与发送端相同,则表明数据传输准确无误。
Ⅱ 计算机网络循环冗余检验 中的除数怎么来的
首先要知道CRC生成的多项式P(X)。除数的位数是P(X)最高次幂+1。P(X)每个幂数版代表着除数从权右到左第几位为1,其余的都为0,就得出除数了。比如P(X)=X^4+X^3+1,则除数个数为5,从右往左分别为0 1 2 3 4位,其中4,3,0位为1,其余为0。除数为11001