计算机网络循环冗余校验码(简述循环冗余码cc校验方法的工作原理)
导语:计算机网络3 数据帧-循环冗余校验CRC
在数据帧中,还有最后一个字段FCS没有说明,它主要采用CRC校验,书本有详细的说明,这里只是再做个总结
工作思路准备发送一个数据0101001010...,然后在数据的尾部又附加上一个数0101001010...1100,实际也是一个二进制数。最后将完整的数发送到接收端,接收方得到数据后,对这个数进行校验,即拿一个除数R进行相除,如果余数为0则表示数据帧校验正确,否则表示数据帧错误。
模2除法我们将两个二进制数进行除法运算,在相减过程中遵循下面的算法:1-1=0,0-1=1,1-0=1,0-0=0。不需要借位,相当于逻辑“异或”运算,相同为0,不同为1。
参考下面的计算:100101 / 1110
求10110011的CRC校验码10110011就是准备要发送的数据,第一步,我们先得到接收端校验时的除数,通常是以多项式的方式表示,所以CRC又被称为多项式编码方法...
下面举个例子说明:
一、假如有一个多项式:P(x) = x⁴+x³+1; 可以知道它一共是5位(总位数等于最高位的幂次加1,即4+1=5),然后根据多项式各项的含义(多项式只列出二进制值为1的位,也就是这个二进制的第4位、第3位、第0位的二进制均为1,其它位均为0)很快就可得到它的二进制比特串为11001。(计数从0开始)
二、因为生成多项式的位数为5,根据前面的介绍,得知CRC校验码的位数为4(校验码的位数比生成多项式的位数少1)。因为原数据帧为10110011,在它后面再加4个0,得到101100110000,然后把这个数以“模2除法”方式除以生成多项式,得到的余数(即CRC码)为0100,如图所示。
三、把上步计算得到的CRC校验0100替换原始帧101100110000后面的四个&34;,得到新帧101100110100,再把这个新帧发送到接收端。
常用的生成多项式现在广泛使用的生成多项式P(X)有以下几种:
本文内容由快快网络小玥整理编辑!