循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测数据传输错误,被检查的消息首先要追加n位0形成一个扩展消息(使用模2除法)除以一个n+1位的值,这个作为出书的纸称为生成>多项式。放置在消息的CRC字段的值是这次处罚计算中的余数的二进制反码(商被丢弃)。生成多项式是33位的二进制数100000100110000010001110110110111。
为了理解如何使用模2除法(mod 2),我么来看一个CRC4(n=4)的例子。国际电信联盟将CRC4的生成多项式标准化为10011(n+1=4+1=5位),如果我们要发送16位的消息100111000101111,首先开始进行图中的mod 2二进制除法这个除法的余数是4位的1111,通常,该余数的反码0000将放置在帧的CRC或帧校验序列FCS字段中。在接收到数据后,接收方执行相同的除法计算出余数,并判断FCS字段的值是否匹配,如果两者不匹配,真可能在传输过程中受损,通常被丢弃,CRC功能可用于提示信息受损,因为位模式的任何改变极可能导致余数的改变
模2除法 的计算方法:
模2除法·,从字面上可理解为二进制下的除法。
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。
1111000除以1101:
想知道模2除法,只需要知道什么是异或运算就很容易算出。计算机中,异或逻辑表示为: (记忆方法:同为0异为1)1^1=00^0=01^0=10^1=1