计算机网络通信差错检测控制关于CRC算法的应用

2015-10-29 23:30陈欢欢
科技与创新 2015年20期
关键词:网络通信计算机

陈欢欢

摘 要:在计算机网络通信中,通常会出现误码率问题,对其通信安全造成一定的影响。其中,基于环冗余码校验(Cyclic Redundancy Check,CRC)算法是针对计算机网络通信差错检测控制的有效方式。对CRC算法在计算机网络通信差错检测控制中的应用策略进行了分析。

关键词:计算机;网络通信;差错检测;CRC算法

中图分类号:TP393.06 文献标识码:A DOI:10.15913/j.cnki.kjycx.2015.20.093

在网络中传输信息必须依靠计算机实体之间的通信线路,从而提高信息传输的速度和准确性。在实际的计算机通信过程中,信息的传输过程难免会受到一定的干扰,使得接收端接收到的信息出现偏差,即接收端的信息发生了误码的现象,从而影响了计算机通信的准确性。

1 降低通信信号传输误码率的策略

如果我们用Pc表示信号传输过程中的误码率,那么衡量信息传输过程的准确度就可以表示为Pc=错误接受码元素/接收码元素。降低误码率的方法主要有两种:①改善数据通信线路的传输质量;②差错控制。第一种方法主要是从硬件的角度出发,改善现有的硬件设备,引入新的通信线路和信号交换设备等。这种方法一方面受到硬件技术的限制,另一方面由于新设备和新技术的成本较高,因此通过硬件改善信号传输质量的效果一般。而第二种方法是通过软件来解决的。实际上,每一种计算机通信系统中都有差错检测系统控制,通过检测通信信号的质量,然后校验和修正信号,进而优化计算机通信的传输过程。计算机通信过程中的差错检测控制方法非常多,这里只介绍CRC算法。

2 CRC算法的校验规则

通过以上的叙述,我们知道了CRC算法的差错检测的主要思想和原理,那么CRC算法是怎样对一个数据进行编码和译码的呢?具体的校验规则是使接收端接收到的校验数据能够被一个多项式所除,如果能够被除尽,那么表示代码正确;如果除不尽,那么余数的值能够对应出错位的具体位数。当这种现象发生的时候,我们可以让被校验的数据减去余数。由于简单的拼装方法已经无法满足这个过程,所以要用到错位运算的方法,从而得到一个能够被除尽的校验数据。同时,由于被校验的数据是一组携带信息的代码,有可能表示数值大小的数字和其他类型的代码,但是任何信息的传递过程都是用二进制的形式来表示的,因此模2运算中,所有的被校验数据是被当作数字来运算的,并且使用多项式扫描。设M(x)为被校验的数据,G(x)为除数,也就是约定的生成多项式,R(x)运算过程的余数。

2.1 生成多项式的选取

这个多项式是由一定的规则生成的,主要规则是要根据差错检测的特点,本着纠错和检错的目的生成满足这种需求的特殊多项式。具体的要求是:所有的位数一旦发生错误,应该保证余数不为0;不同位的错误对应不同的余数;符合余数循环的规则。这里采用的是CCITT(即Consultative Committee of International Telephone and Telegraph)国际电报电话咨询委员会推荐的生成多项式:

G(x)=X16+X12+X5+1. (1)

其中,X=2.CRC算法能够发现所有被检测数据的一位或二位错误、奇数位的所有错误、全部的不超过16位的突发错误,且检测出超过16位数据差错的概率高达99.9%.CRC算法对数据的差错检测能力是计算机网络通信所必须的。

2.2 编码的方法

CRC算法对这个数据包进行编码的主要过程是让被检验数据的第K位有效信息左移r个单位,得到M(x)·xr,主要的目的是拼装所求出的余数。选取数据包全部字节中的第r+1个生成一个多项式G(x),然后对这个多项式进行模2运算,得出将要产生的r位余数,因此生成多项式G(x)实际上应该是r+1位。模2运算为:

. (2)

将需要编码的有效信息看作一个数值,然后对余数的多项式进行模2加减运算,即可得到循环校验码的值:

M(x)·xy+R(x)=Q(x)·G(x). (3)

经过按位运算,得出模2加法和减法的值是一样的,所以经过编码过程得出的多项式的值实际上是把余数R(x)进行了拼接,因此经过拼接的校验码也一定能够被G(x)除尽。

2.3 译码和纠错

实际上,译码的过程就是对接收端接收到的数据进行还原的过程,主要是用G(x)除以收到的循环校验码,如果余数为0,那么可以确定码字无误;如果余数不为0,则说明校验码中某一位出现了差错,或者不同位出现了错误,但是可以根据余数的值查找出出错的类型。

2.4 CRC算法分析

由于CRC算法本身有一个512字节的参数表,这个表可用来查找不同的对应参数值,因此在设计CRC算法的过程中,应该主动避开这些字节,保证不同的变量能够匹配不同的参数值。在利用CRC算法检测数据包的时候,使用的是for循环语句,对每一个字节进行计算,因此相对来说比较简单,大大加快了校验的速度。相比其他算法来说,CRC算法所占的储存空间虽然会有所增加,但是随着信息产业的不断发展,硬件储存容量的不断增加,这种牺牲空间换取计算速度的方式是非常值得的。

3 结束语

通过理解CRC算法的原校验规则和算法程序设计思想,探索CRC算法在计算机网络通信差错检测控制中的应用。由于CRC算法使用软件校验,因此省去了在外部加设硬件电路这一步骤,而且校验速度非常快,显著提高了计算机网络通信的速度和报文传输的准确性。

参考文献

[1]许伟,王晓燕.CRC算法在计算机网络通信中的应用[J].数字技术与应用,2014(02):119,121.

[2]吴志毅.有关计算机网络通信中实时差错控制技术分析[J].科技传播,2012(22):221-222.

[3]陶传会.浅议CRC算法在计算机网络通信中应用[J].信息与电脑(理论版),2011(05):136,138.

〔编辑:王霞〕

猜你喜欢
网络通信计算机
信息化时代网络通信安全的背景和对策
5G网络通信技术的应用初探
中国计算机报202007、08合刊
4G系统的新技术和特点
中国计算机报2019年48、49期合刊
5G网络通信技术应用的前瞻性思考
中国古代的“计算机”
计算机网络通信的技术特点与发展前景探讨
随“声”随意 欧凡OA-G10 2.4G无线耳机
一体式,趋便携雅兰仕AL-225