搜索
写经验 领红包
 > 职场

计算机网络循环冗余校验码(简述循环冗余码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)有以下几种:

本文内容由快快网络小玥整理编辑!