计算机网络中的CRC校验

原始数据是1011001,生成多项式是P(x)=x^4+x^2+1,请问CRC校验码是什么,要求有计算过程。

CRC(循环冗余校验)是一种校验码,用于检测数据传输中的错误。在给定的多项式除法下,CRC校验码可以通过将原始数据与生成多项式进行除法运算来计算得出。

首先,将原始数据和生成多项式表示为二进制形式:

原始数据:1011001
生成多项式:P(x) = x^4 + x^2 + 1

接下来,我们需要进行二进制除法运算,按照以下步骤进行:

  1. 将生成多项式左移n位,其中n为生成多项式的次数(在这个例子中,n为4)。
    P(x) = x^4 + x^2 + 1
    左移4位后:P(x) = x^8 + x^6 + x^4

  2. 在原始数据的末尾补充n个0。
    原始数据:10110010000

  3. 用原始数据除以生成多项式,执行二进制除法运算。
    首先,将原始数据的前n位与生成多项式相加,并用模2运算(异或)进行计算。
    10110010000
    ⊕ x^8 + x^6 + x^4

    进行模2运算后,我们得到结果为:
    10110010000 ⊕ x^8 + x^6 + x^4 = 11000100

  4. 将得到的结果作为新的被除数,重复步骤3,直到被除数的位数小于生成多项式的次数。
    11000100
    ⊕ x^8 + x^6 + x^4

    继续进行模2运算后,我们得到结果为:
    11000100 ⊕ x^8 + x^6 + x^4 = 1101

    因为被除数的位数已经小于生成多项式的次数,所以我们得到了最终的CRC校验码。

因此,根据以上计算过程,CRC校验码为1101。

多项式对应的二进制值是10101
原始数据左移4位
10110010000除以10101
1424/15=94...14也就是1110