算法:双方预先规定好一个二进制数,即生成多项式,这个多项式最高最低位均为1。多项式短于帧长度。

设生成多项式为r+1位,即将发送的帧长为m位,则帧在后面加上r个0,得到一个m+r位的数。

用新得到的数对生成多项式取余,然后新得到的数加上余数就是发出的帧。

例:

循环冗余校验码 CRC

第一行的帧为原本的帧,规定的生成多项式为10011,最后计算得到的帧才是实际上发出去的帧。

接收方接受帧后,要除以生成多项式,如果无法除尽,则有错误。当然,即使除尽了,也有可能有错误,只不过太巧合了,可能性很小。

除不尽的情况下,余数不为0。通过余数可以检验错误位置

相关文章: