1》循环冗余校验码是数据通信领域最常用的一种差错校验码。
2》循环冗余校验码又称多项式编码,其思想是将位串看成是系数为0或为1的多项式。CRC校验要保护的单位是数据块(也就是传输过程中的有效载荷),数据块的大小不是固定的可根据实际情况确定,每一个数据块均被看做是一个二进制多项式,即所有系数均为二进制(0/1)的多项式。eg.假如要传送的数据为: 23 4 6 则这个二进制多项式为:00010111 00000100 00000110.
3》当使用多项式编码是,发送方和接收方必须预先商定一个生成多项式G(x),生成多项式的最高位和最低位必须为1。 而生成多项式G(x) 一般可直接使用国际标准给出的。
4》发送方用位串及G(x)进行某种运算得到校验和,并在数据帧的末尾加上校验和,这样就使得带校验和的数据帧的多项式能被G(x)整除;接收方收到后,用生成多项式G(x)除这个带了校验和的多项式,若有余数则传输有错。
在(4)中加粗部分提到的“某种运算”即是:
(1)假若生成多项式G(x)为r阶(即有r+1位)如图