校验方法与校验码

校验方法与校验码

信息编码在计算机内传输、存取过程中,难免会出现一些随机性的错误,例如受到外界干扰导致产生了码元错误,例如把“1”码元变成了“0”码元。为了减少和避免这样的错误,提高传输质量,一方面需要从电路、布线等硬件方面采取技术,提高可靠性;另一方面在数据编码上采用某种校验方法与校验码,使得计算机能够自动发现,甚至能自动纠正错误。

常见的信息编码校验方法有奇偶校验法、海明校验法、CRC校验法等等。

1奇偶校验法

/偶校验是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。

如果是采用奇校验,在传送每一个数据(一般是1个字节)的时候另外附加一位作为校验位,当实际数据中1的个数为偶数的时候,这个校验位就是1。否则,这个校验位就是0,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中1的个数,如果是奇数,表示传送正确。否则,表示传送错误。

偶校验的过程和奇校验的过程一样,只是检测数据中1的个数为偶数。当实际数据中1的个数为偶数的时候,这个校验位就是0,否则这个校验位就是1。这样,就可以保证传送数据满足偶校验的要求。在接收方收到数据时,将按照偶校验的要求检测数据中1的个数,如果是偶数个1,表示传送正确。否则,表示传送错误。

2海明校验法

海明码是奇偶校验的另一种扩充,和奇偶校验不同之处在于海明码采用多位校验码的方式,在信息数据位中合理加入校验位,将码距均匀拉大,校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。

海明码是利用在信息位为k位,增加r位冗余位,构成一个n=kr位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。它必需满足关系式:2r³n12r³kr1

海明码的编码规则:在一般情况下,校验码会被插入到数据的1248,…,2n位置,那么,在数据生成时,按照提供的海明校验方程计算出b1b2b4,…,bn各位,在数据校验时,按照海明检验方程进行计算,如果所有的方程式计算都为0,则表示数据是正确的。如果出现1位错误,则至少有一个方程不为0。海明码的特殊之处在于,只要将①②③三个方程左边计算数据按③②①排列,得到的二进制数值就是该数据中出错的位,例如第6位出错,则③②①为110为二进制数6

当出现两位错误时,这种海明码能够查错,但无法纠错。

3CRC校验法

循环冗余检验码简称CRC码,由于其实现的原理十分易于用硬件实现,因此广泛地应用于计算机网络上的差错控制。而且由于它采用的是模二除进行验算,因此十分适合于以串行同步方式传送数据块。而CRC的考查点主要有3个:常见的CRC应用标准;计算CRC校验码;验算一个加了CRC校验的码是否有错误。

1)常见的CRC标准及应用归纳如表1-4所示。

1-4  常见的CRC标准

   

CRC

    

HDLC

CRC16/CRC32

除帧标志位外的全帧

FR(帧中继)

CRC16

除帧标志位外的全帧

ATM

CRC8

帧头校验

以太网(802.3

CRC32

帧头(不含前导和帧起始符)

令牌总线(802.4

CRC32

帧头(不含前导和帧起始符)

令牌环(802.5

CRC32

帧头(从帧控制字段到LLC

FDDI

CRC32

帧头(从帧控制字段到INFO

2)计算CRC校验码。

CRC码中,编码是由K位信息码,加上R位的校验码组成。要计算CRC校验码,需根据CRC生成多项式进行。例如:原始报文为11001010101,其生成多项式为X4X3X1。在计算时,是在原始报文的后面若干个0(等于校验码的位数,而生成多项式的最高幂次就是校验位的位数,即使用该生成多项式产生的校验码为4位)作为被除数,除以生成多项式所对应的二进制数(根据其幂次的值决定,得到11011,因为生成多项式中除了没有X2之外,其他位都有)。然后使用模二除,得到的商就是校验码,如图1-1所示。

校验方法与校验码

1-1  计算CRC校验码

然后将0011添加到原始报文的后面,就是结果110010101010011

3)检查信息码是否有CRC错误。

要想检查信息码是否出现了CRC错误的计算很简单,只需用待检查的信息码做被除数,除以生成多项式,如果能够整除就说明没有错误,否则就表示出错了。另外要注意的是,当CRC检查出现错误时,它是不会进行纠错的,通常是让信息的发送方重发一遍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值