(4.3)--zaw数链层(3差错检测 CRC循环冗余校验).ppt

(4.3)--zaw数链层(3差错检测 CRC循环冗余校验).ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

3.1.3差错检测0001101100001011一位比特错000100110010000010111010多位比特错发送方接收方在传输过程中可能会产生比特差错:1可能会变成0,而0也可能变成1。

信道上是存在噪声(Noise)的,比如电磁干扰,会引起突发错(bursterror),连续很多位出错。即使没有电磁干扰,传输媒介本身的分子热运动也会引起随机错(singlyerror),随机的一两个比特出现错误。即使是不受电磁波干扰的光纤也有分子热运动,而随着无线通信的普及,它的错误率比光纤要高出几个数量级。也就是说,传输差错是不可避免的,因此必须要有相应的处理机制。差错检测

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(BitErrorRate)。误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错控制措施。在数据链路层传送的帧中,广泛使用了循环冗余校验(CRC)的检错技术。差错检测

循环冗余校验CRC的原理原始数据CRC校验和发送数据k位n位k+n位发送循环冗余校验的基本原理是,在发送端,将发送的原始数据后面附加上若干位的冗余数据(称为校验和Checksum)一起发送,帮助接收方推断接收到的数据中是否发生了错误。

CRC循环冗余校验的原理循环冗余检验码CRC(CyclicRedundantCheck),是一种多项式编码(PolynomialCode)。它的基本思想是,将一帧数据看成是系数是0或1的多项式。一个k位的帧,看作是一个k-1阶多项式。例如,帧110001有6位,看做是一个具有6项的多项式,各项的系数分别为1、1、0、0、0和1,即X5+X4+X0。

CRC循环冗余校验的原理当使用多项式编码时,发送方和接收方必须预先商定一个生成多项式(generatorpolynomial)G(x)。发送端和接收端都使用这同一个G(x)进行计算。

CRC循环冗余校验的原理发送端:假设一帧有m位,原始数据对应的多项式称为M(x),我们首先计算它的校验和。算法如下:假设G(x)的阶为r。首先在帧M的低位端加上r个0,于是该帧现在变为m+r位,对应多项式为xr*M(x)。计算(x^r*M(x))/(G(x)),得到一个商Q(x)和r位长的余数R(x)。R(x)即为冗余码,或叫做帧校验序列FCS(FrameCheckSequence)。R(x)附加到原始数据尾部,得到T(x)=xr*M(x)+R(x)。T(x)就是发送方要实际传输的带有校验和的帧。

CRC循环冗余校验的原理:CRC计算过程示例帧原始数据M(x):1010001101生成多项式G(x):110101,最高阶r=5帧左移5位后xr*M(x):101000110100000计算(x^r*M(x))/(G(x))得到R(x):01110于是发送的带有校验和的帧T(x)=xr*M(x)+R(x):101000110101110

CRC循环冗余校验的原理:CRC计算过程示例多项式除法中的每一步采用模2运算:以2为模进行运算,加法不进位,减法没有借位。加法和减法都等同于异或运算。例如,1111+1010=0101,1111-1010=0101。

CRC循环冗余校验的原理:CRC计算过程示例模2运算:以2为模进行运算,加法不进位,减法没有借位。加法和减法都等同于异或运算。又如:

CRC循环冗余校验的原理接收端:用同样的方法进行相同的计算过程将收到的带有校验和的帧,记为T’(x)。然后计算T’(x)/G(x)如果能够整除,即余数R=0,则传输过程中无差错发生,接受这一帧数据。否则余数R≠0,说明发生了差错,丢弃该帧数据。

CRC的检错能力CCITT(国际电话与电报咨询委员会)确认并广泛使用的生成多项式:r=16,则99.997%,漏检率为0.003%若r=32,检错能力更强

应当注意这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。即CRC是检错码技术,不是纠错码技术。循环冗余检验CRC差错检测技术只能做到无差错接受(accept)“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。也就可以这样认为:“凡是接收端数据链路层接受的帧都没有传输差错”(因为有差错的帧就丢弃了没有接受)。

应当注意应当明确,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。因为CRC不能解决“帧丢失”、“重复”、“乱序”等情况,因此不是“无差错的可靠传输”。单纯使用CRC差错检测技术不能实现“可靠传输”。要想实现“无差错的可靠传输”,协议中就必须具备确认和

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档