循环冗余检验CRC

      CRC检验也称循环冗余检验,在通讯链路中,不肯能使误码率下降到0,因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施,目前在数据链路层广泛使用的就是CRC的检查技术。

     下面通过一个简单的例子说明循环冗余检验的原理:、

     在发送端,先把数据划分为组,假定每组k个bit,现假定传输的数据M=101001(k=6)。CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位,在所要发送的数据后面增加n位冗余码,虽然增大了数据传输的开销,但却可以进行数据检测。

     这n位冗余码可以用下面的方法得出:用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0,得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数P,得出商是Q而余数是R(n位,比P少一位),关于除数P下面还要介绍,在下图所示的例子中,M=101001(即k=6),假定除数P=1101,即n=3,经模二除法运算后结果是:Q=110101,而余数R=001,这个余数R作为冗余码 加在数据后面发出去,这种为了进行检错而添加的冗余码称为帧检验序列FCS,因此发出去的帧是1010001001.

      循环冗余检验CRC_第1张图片

      在接收端把接收到的数据以帧为单位进行CRC检验,把收到的每一个帧都除以(模2)同样的除数P,然后检查得到的余数R。

      如果R=0,则无差错,就接受。

      如果R!=0,就丢弃。

你可能感兴趣的:(计算机网络)