计算机通信中的crc.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机通信中的crc 1 不同通信线路传输质量 计算机网络具有分布在不同地理位置的自治实体(用户应用程序、文件传输包、数据库管理系统、电子邮件设备、终端等),并通过连接到统计数据网络进行通信,并通过通信协议进行通信,以实现整个系统的资源共享。在网络中交换信息,实体间必须建立数据通信线路,以便高效率而又准确地传输信息。在实际应用中,无论是远程数据通信线路还是局部数据通信线路,都不可避免地要受到各种干扰的影响,使接收端收到的信息与发送端发出的信息不一致,即接收端收到的信息产生了误码。用误码率(Pc)来度量数据通信线路传输信息的准确度,则 为了降低数据通信线路传输的误码率,通常有改善数据通信线路传输质量和进行差错检测控制两种方法。改善数据通信线路传输质量就是引入新的交换设备、新的数据通信线路、新的技术等。但是,这种方法由于受到经济上和技术上的限制,要想做到很低的误码率,花费代价大而收效甚微。实际上所有的计算机网络通信系统都采用差错检测控制,即承认数据通信线路传输信息的出错情况,有效地检测出错情况,并进行纠正,以此提高数据通信线路传输的质量。差错检测控制的方法很多,本文只介绍循环冗余码校验CRC(Cyclic Redundancy Check)算法,它能在数据通信线路中很好地校验所传输的信息。 2 数据传输crc算法 在计算机网络的实体间进行信息交换时,先要将发送的较长报文划分成一个个更小的、等长的数据段,在每个数据段的前面加上首部(Head),末尾加上校验码,就构成一个数据包(Data Packet)。在数据通信线路上传输的是数据包,接收端计算机能从数据包中得到所需要的各种控制信息和传输的有用信息,从而使传输中的差错检测控制成为一项可管理的工作。数据包的格式如图1所示。其中,SOH是包头,通常包含有同步信息、源站地址和目的站地址等重要的控制信息;序号是报文分成数据包的组数,即第几组数据包;长度是本数据包中数据的字节数;数据是传输的有用信息;校验码是通过CRC算法计算出来的本数据包中数据的CRC码。 在报文的数据包传输协议中,发送端计算机运用CRC算法从要发送的数据中计算出CRC码(两个字节),并把CRC码作为校验码加在数据包的末尾。接收端计算机接收到数据包后,也用CRC算法进行相同的计算,并将计算得到的CRC码与接收到的CRC码进行比较。若两组CRC码的值相等,则接着进行下一个数据包的传输;若不相等,说明传输中有误码,则通过ARQ(Automatic Repeat re Quest)方式要求发送端计算机重发这个数据包。经过CRC校验传输的数据包很可靠,且被大多数异步通信软件采纳。CRC校验技术把一个数据包中的数据作为位串来处理,它的校验范围从数据包中数据的第一个字节的第一位开始到最后一个字节的最后一位结束。 CRC算法是计算机网络通信中常用的差错检测控制方法,其主要目的是减少数据通信线路的传输错误。CRC算法的主要思想是:在发送端发送数据的同时增加CRC码,在数据与CRC码之间建立一定的数学关系(即编码过程);当这些数据和CRC码一起被传送到接收端时,由接收端检测数据和CRC码之间的数学关系(译码过程)是否正确,若不正确,就说明传输过程中有误码,通常通过发送端的重传来校正错误,直至传送正确为止。可见,如何有效地检测出错是这种方法的关键。 3 按位加/减的计算 CRC算法的校验规则是让被校验数据能为某一生成多项式所除,如果除得尽,表明代码正确;如果除不尽,余数将指明出错位所在位置。任意一组被校验数据,很可能除不尽,将产生一个余数,如果让被校验数据减去余数,势必能为生成多项式所除尽,但进行减法操作时,可能需要借位运算,难以用简单的拼装方法实现编码。因此采用一种标准的模2运算,即通过模2减法实现模2除法,以模2加法将所得余数拼接在被校验数据后面,形成一个能除尽的被校验数据。当然,采用模2除法后,对生成多项式的选择是有条件的。CRC算法所进行的模2运算是一种以按位加/减为基础的四则运算,不考虑进位和借位,它和以2为模的定点小数四则运算是两个不同的概念。因此,模2加/减即按位加/减,也就是异或运算,可用异或门实现。 被校验数据是一组信息代码,可能是表示数值大小的数字,也可能是字符编码或其它性质的代码,但它在传输中是以二进制(0、1代码)形式表示。在模2除中,暂将被校验数据视为数字,可用多项式来进行描述。定义被校验数据(被除数)为M(x);约定的生成多项式(除数)为G(x),是用来产生余数的;所产生的余数为R(x),它相当于所配的冗余校验位。 CRC算法可以检测被校验数据所有的一位或两位错误;所有具有奇数位错误;所有低于16位的突发性错误;且对大于16位的突发性错误检测出的概率为99.9%。这种级别的错误检测正是计算机网络通信信息传输所需要的

文档评论(0)

134****3501 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档