2.7 差错控制
2.7.1 传输差错产生
传输差错是通过通信信道后接收的数据与发送数据不一致的现象;差错控制是检查是否出现差错以及如何纠正差错;通信信道的噪声(如图2-38所示)分为热噪声和冲击噪声两类;热噪声由传输介质导体的电子热运动产生。热噪声是一种随机噪声,所引起的传输差错为随机差错,这种差错的特点是在数据序列中前后位之间的差错彼此无关。
图2-38 传输差错产生过程
冲击噪声是由外界电磁干扰引起,与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要原因。冲击噪声所引起的传输差错为突发错,由热噪声引起的差错是随机差错或随机错;冲击噪声引起的差错是突发差错或突发错;这种差错的特点是在数据序列中前面出现了错误,往往会使后面也会出现错误,即错误之间有相关性。
在通信过程中产生的传输差错,是由随机差错与突发差错共同构成的。
2.7.2 差错控制编码
差错控制编码就是对网络中传输的数字信号进行抗干扰编码,目的是为了提高数字通信系统的容错性和可靠性,它在发送端被传输的信息码元序列中,以一定的编码规则附加一些校验码元,接收端利用该规则进行相应的译码,译码的结果有可能发现差错或纠正差错。
在差错控制码中,检错码是指能自动发现出现差错的编码,纠错码是指不仅能发现差错而且能够自动纠正差错的编码。当然,检错和纠错能力是用信息量的冗余和降低系统的效率为代价来换取的。
误码率是指二进制码元在数据传输系统中被传错的概率,它在数值上近似等于:Pe=Ne/N,其中N为传输的二进制码元总数,Ne为被传错的码元数。误码率应该是衡量数据传输系统正常工作状态下传输可靠性的参数之一。对于一个实际的数据传输系统,不能笼统地说误码率越低越好,要根据实际传输要求提出误码率要求。对于实际数据传输系统,如果传输的不是二进制比特,要折合成二进制比特来计算。差错的出现具有随机性,在实际测量一个数据传输系统时,只有被测量的传输二进制比特数越大,才会越接近于真正的误码率值。
纠错码在接收端能发现并自动纠正传输差错。含有纠错码的每个传输的分组必须带上足够的冗余信息;检错码在接收端能够发现出错,但不能确定哪位是错的,并且自己不能纠正传输差错。含有检错码的分组仅包含足以使接收端发现差错的冗余信息。
奇偶校验码是一种最简单也是最基本的检错码,一维奇偶校验码的编码规则是把信息码元先分组,在每组最后加一位校验码元,使该码中1的数目为奇数或偶数,奇数时称为奇校验码,偶数时称为偶校验码。
循环冗余码(CRC, Cyclic Redundancy Code)校验(Check)是目前在计算机网络通信及存储器中应用最广泛的一种校验编码方法,它所约定的校验规则是:让校验码能为某一约定代码所除尽;如果除得尽,表明代码正确;如果除不尽,余数将指明出错位所在位置。循环冗余编码工作原理如下图2-39所示。
图2-39 循环冗余编码工作原理
标准CRC生成多项式G(x)如下:
CRC校验码能检查出全部单个错、全部离散的二位错、全部奇数个错、全部长度小于等于K位的突发错;CRC校验码能以[1-(1/2)K-1]的概率检查出长度为(K+1)位的突发错;如果K=16,则该CRC校验码能全部检查出小于或等于16位的所有的突发差错,并能以1-(1/2)16-1=99.997%的概率检查出长度为17位的突发错,漏检概率为0.003%。
2.7.3 差错控制机制
反馈重发纠错实现机制如图2-40所示。
图2-40 反馈重发纠错实现机制
反馈重发分为停止等待方式和连续工作方式两类,连续工作方式分为拉回方式和选择重发方式两种。停止等待方式工作方式如图2-41所示,连续工作方式如图2-42所示。
图2-41 停止等待方式工作方式
图2-42 连续工作方式