首页 > 其他分享 >《计算机网络微课堂》3-3 差错检测

《计算机网络微课堂》3-3 差错检测

时间:2024-05-26 15:12:06浏览次数:24  
标签:比特 多项式 校验 误码 计算机网络 差错 余数 课堂 传输

我们知道‍‍实际的通信链路都不是理想的,比特在传输过程中可能会产生差错,1 可能变成 0,‍‍而 0 也可能变成 1,这称为比特差错。

如图所示,比特流在传输过程中,‍‍由于受到各种干扰,就可能会出现比特差错或称为误码。‍‍在一段时间内‍‍传输错误的比特占所传输比特总数的比率成为误码率 BER。大家可以通过动画演示,‍‍清楚的看到比特在传输过程中出现了错误,但是接收方的数据链路层‍‍又是通过怎样的方法才能知道?

使用差错检测码‍‍来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一

例如。‍这是以太网版本 2 的 MAC 帧格式,其帧尾中包含了一个长度为 4 字节的帧检验序列 FCS 字段,‍‍其作用就是让接收方的数据链路层检查帧在传输过程中是否产生了误码,‍‍这是点对点协议 PPP 的帧格式,其帧尾中也包含了一个长度为两字节的帧检验序列,‍‍FCS 字段,其作用也是让接收方的数据链路层检查正在传输过程中是否产生了误码。

奇偶校验

接下来‍‍我们介绍奇偶校验这种比较简单的检测方法,在待发送的数据后面添加一位奇偶校验位,‍‍使整个数据包括所添加的校验位在内中的 1 的个数为基数这称为基教验,或为偶数这称为偶校验。‍‍

我们来举例说明,这是待发送的数据,假设收发双方约定采用基校验,‍‍那么在数据后面添加的校验位应该为比特 1,使得比特一的总数为基数,‍‍假设传输过程中产生了一位误码,我们用红色表示,接收方对收到的比特流进行基校验,‍‍发现比特 1 的总数为偶数而不是基数,就知道传输过程中发生了误码。‍‍

  • 换句话说,‍‍采用基校验,若比特 1 的数量的基性改变,可以检查出错误,但是‍‍如果传输过程中产生了两位误码,接收方对收到的比特流进行机校验,‍‍发现比特 1 的总数为基数,就误认为传输过程中没有发生误码。换句话说,采用基校验,‍‍若比特 1 的数量的奇性不改变,是无法检查出错误的。‍‍
  • 假设收发双方约定采用偶校验,‍‍那么在数据后面添加的校验位应该为比特 0,使得比特 1 的总数为偶数,‍‍假设传输过程中产生了 1 位误码,接收方对收到的比特流进行偶校验,‍‍发现比特 1 的总数为基数而不是偶数,就知道传输过程中发生了误码。换句话说,采用偶校验‍‍若比特 1 的数量的偶性改变,可以检查出错误,但是如果传输过程中产生了两位误码,接收方对收到的比特流进行偶校验,发现比特 1 的总数为偶数,‍‍就误认为传输过程中没有发生误码。换句话说,采用偶校验,若比特 1 的数量的偶性不改变,‍‍是无法检查出错误的。‍‍

通过本例可以看出采用奇偶校验,如果有奇数个位发生误码,则奇偶性会发生变化,也就是奇变偶者是偶变奇,这样就可以检查出误码。而如果有偶数各位发生误码,则奇偶性不会发生变化,‍‍这是因为每个误码对奇偶性的影响相互抵消了,这样就要无法检查出误码,也称为漏检。‍‍由于奇偶校验的漏检率比较高,因此计算机网络的数据链路层一般不会采用这种检测方法。‍‍

循环冗余校验 CRC

接下来我们介绍循环冗余校验 CRC,这是一种具有很强检测能力的检测方法,漏检率极低:

  • 收发双方约定好一个生成多项式
  • 发送方基于代发送的数据和生成多项式计算出差错检测码,称为冗余码,‍‍并将其添加到带传输数据的后面一起传输
  • 接收方通过生成多项式来计算‍‍收到的数据是否产生了误码

我们来看发送方的操作,是用除法来计算冗余吗,待发送的数据作为被除数的一部分,后面添加生成多项式最高次数个 0,已构成被除数,‍‍生成多项式各项系数构成的比特串作为除数进行除法,得到商‍‍和余数,余数就是所计算出的冗余码,将其添加到待发送数据的后面一起发送。‍‍需要注意的是‍‍冗余码的长度与生成多项式最高次数相同,而商仅作为标记,防止计算过程中对错位。‍‍

再来看接收方的处理,也是做除法,被除数就是接收到的数据,‍‍除数仍是生成多项式各项系数构成的比特串,进行除法,得到商和余数。‍‍如果余数为 0,‍‍可判定传输过程没有产生误码,否则可判定传输过程产生了误码。‍‍

下面‍‍我们对生成多项式举例说明,这是一个生成多项式,这是该生成多项式的完整形式,‍‍生成多项式各项系数构成的比特串,就是我们做除法时所用到的除数,‍‍这是常用的生成多项式,使用这些生成多项式进行 CRC 校验,可以达到较好的检测效果,‍‍也就是漏检率比较低。需要注意的是 CRC,算法要求生成多项式,必须包含最低次项。‍‍

接下来‍‍我们来做一个练习,该题给定了待发送的信息和一个生成多项式,要求计算余数。‍‍我们使用之前介绍的除法来计算。

  • 第一步,构造被除数。‍‍在待发送信息后面添加生成多项式最高次数个 0,就可以构造出被除数。这是待发送信息,‍‍这是添加生成多项式最高次数个 0。
  • 第二步,构造除数,‍‍生成多项式各项系数构成的比特串就是除数。
  • 第三步做除法,‍‍在该位做标记,将除数移过来,然后进行异或运算,将该位落下来,‍‍在该位做标记,一表示够除,将除数移过来,然后进行异或运算,‍‍将单位落下来,在单位做标记,零表示不够除,再将单位落下来,在单位做标记,‍‍一表示够除,将除数移过来,然后进行一会运算,‍‍将单位落下来,在该位做标记,零表示不够除,再将单位落下来在单位做标记,‍‍一表示够除,将除数移过来,然后进行异或运算,得到余数为一。‍‍
  • 第四步,‍‍检查余数余数的位数应与生成多项式最高次数相同,如果位数不够,‍‍则在余数前补零来凑足位数,将余数添加到待发送信息的后面

就可以发送了。‍‍我们再来做一个练习。该题给定了接收方收到的信息和一个生成多项式,‍‍要求判断传输过程是否产生了误码。我们给出以下步骤,‍‍请同学们参照之前的除法过程计算余数,然后根据余数是否为 0,‍‍来判断传输过程是否产生了误码

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。‍‍
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错吗?‍‍进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用。
  • 循环冗余校验 CRC 有很好的检错能力,漏检率非常低,虽然计算比较复杂,但非常易于用硬件来实现,‍‍因此被广泛应用于计算机网络的数据链路层。
  • 在计算机网络中通常采用我们后续课程中‍‍将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,‍‍这取决于数据链路层向其上层‍‍提供的是可靠传输服务,还是不可靠传输服务。

标签:比特,多项式,校验,误码,计算机网络,差错,余数,课堂,传输
From: https://www.cnblogs.com/PeterJXL/p/18213707

相关文章

  • 《计算机网络微课堂》3-2 封装成帧
    ‍‍所谓封装成帧就是指数据链路层给上层交付下来的协议数据单元,添加帧头和帧尾,‍‍使之成为帧。例如下图所示在帧头和帧尾中包含有重要的控制信息,例如‍‍这是以太网版本2的MAC帧格式,这是上层交付下来的协议数据单元,这是帧头,‍‍这是帧尾,这是点对点协议PPP的帧格式,这是上......
  • 《计算机网络微课堂》3-5 点对点协议PPP
    本节课我们介绍点对点协议PPP。‍点对点协议,PPP是目前使用最广泛的点对点数据链路层协议。请大家想想看,‍‍一般的因特网用户是如何接入到因特网的,通常都是要通过连接到某个因特网服务提供者ISP,‍‍例如中国电信、中国联通、中国移动这三大运营商才能接入因特网。‍‍这些I......
  • 《计算机网络微课堂》3-6 媒体接入控制
    本节课我们介绍媒体接入控制的基本概念。3.6.1媒体接入控制的基本概念如图所示,这是一根同轴电缆,有多台主机连接到这根同轴电缆上,他们共享这跟传输媒体‍‍,形成了一个总线型的局域网。​​各主机竞争使用总线,随机的在信道上发送数据,如果恰巧有两个‍‍或更多的站点在同一时刻......
  • 计算机网络微课堂-课程概述
    ​​‍‍课程介绍本专栏主要是B站课程《计算机网络微课堂》的文字版,作者是湖南科技大学的老师。B站地址:https://www.bilibili.com/video/BV1c4411d7jb该课程好评如潮,包含理论课,实验课,考研真题分析课,在B站上播放量第一:​​‍‍部分......
  • 计算机网络之应用层知识点总结
    6.1网络应用模型(1)应用层概述(2)网络应用模型的介绍客户/服务器(C/S)模型P2P模型6.2域名解析系统DNS(1)DNS系统介绍(2)域名(3)域名服务器(4)域名解析过程6.3文件传输协议FTP(1)文件传输协议的介绍(2)FTP服务器和用户端(3)FTP工作原理6.4电子邮件(1)电子邮件系统概......
  • 山大软件23年下半年计算机网络复习
     PS:结合老师屁屁踢复习吧,图片丢失太多懒得改了 point单播:只有一个发送方和一个接收方的点到点传输。组播:将一个数据包发送给一组机器,即所有机器的一个子集。广播:将一个数据包发送给所有的目标机器。面向连接的服务:按照电话系统建模,服务用户首先必须建立一个连接,然......
  • 「云渲染课堂」3dmax渲染影响时间的原因有哪些
    在3dsMax使用过程中经验丰富的用户普遍了解,渲染大型场景往往需要消耗更多的时间,尤其是在硬件配置相同的情况下。但有时候,我们可能会遇到一个反直觉的现象:在相同的硬件配置下,渲染小型场景所需的时间竟然超过了大型场景。这种现象背后的原因是多方面的,3dsMax渲染时间的几个关键因......
  • 「云渲染课堂」sketchup和CAD不同点在哪
    在建筑设计和工程绘图领域,SketchUp与CAD软件均享有盛誉。它们各自具备独特的优势,服务于不同的设计需求和工作流程。SketchUp以其用户友好的建模工具和迅速的原型开发而受到青睐,与此同时,CAD软件则以其精细的绘图精度和详尽的设计细节而广受专业人士推崇。(图源网络)SketchUp和CAD......
  • Java核心面试知识集—计算机网络基础
    计算机网络体系结构在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。网络协议是什么?在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需......
  • 「云渲染课堂」3dmax地砖材质参数怎么让画面更加真实?
    在3DMAX中,地砖材质的渲染需要细致的调整,因为不同材质的地砖在反射和折射参数上各不相同。为了使地砖材质更加逼真,以下简要说明了一些设置方法,希望对大家有所帮助!3dmax地砖材质参数如何设置1、打开材质编辑器,添加一个VRay标准材质并点击【确定】后选择对象。2.将材质赋予对象......