精华内容
下载资源
问答
  • 数据链路层差错检测
    千次阅读
    2020-06-01 22:26:36

    数据链路层思维导图

    一、差错检测定义

    定义:检测数据在传输过程中是否发生了比特差错

    二、差错检测的原因

    原因:因为实际的通信链路不是理想的,比特在传输过程中可能会出现差错:1可能变成0,0可能变成1。

    三、差错检测的方法

    1).奇偶检验

    1. 定义:

    在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的检验位在内)中 "1"的个数为奇数(奇校验)或偶数(偶校验)

    2.实现过程:

    a. 双方采用 奇校验

    发送方发送的数据:(1 0 1 1 0 1)
    实际发送的数据为:(1 0 1 1 0 1 1
    其中 1为校验位,奇校验--------保证“1”的个数为奇数。

    传输过程产生1位误码 (第六位由 1 变为 0

    接收方接收的数据:(1 0 1 1 0 0 1

    此时 “1”的个数不是奇数

    则 判定传输出错。

    b. 双方采用 偶校验

    发送方发送的数据:(1 0 1 1 0 1)
    实际发送的数据为:(1 0 1 1 0 1 0
    其中 0为校验位,偶校验--------保证“1”的个数为偶数。
    传输过程产生1位误码 (第五位由 0 变为 1

    接收方接收的数据:(1 0 1 1 1 1 0

    此时 “1”的个数不是偶数

    则 判定传输出错。

    3.缺点:

    如果有奇数个位发生误码,则奇偶性发生变化,可以检出误码。
    如果有偶数个位发生误码,则奇偶性不发生变化,不能检出误码。

    举例:

    以上述奇校验为例

    传输过程产生2位误码
    发送的数据为:(1 0 1 1 0 1 1
    接收方 -----------(1 1 1 0 0 1 1

    “1”的个数仍为 奇数 ,但是传输过程已经出错。

    2).CRC循环冗余检验

    更多相关内容
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。 检查帧在传输过程中是否产生了误码,通过长度为两字节的帧检测序列FCS字段 奇偶校验 在待发送的数据后面...

    差错检测

    比特差错:实际的通信链路都不是理想的,比特在传输过程中可能会产生差错: 1可能会变成0,而0也可能变成1

    误码率BER:在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate).

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

    • 检查帧在传输过程中是否产生了误码,通过长度为两字节的帧检测序列FCS字段

      image-20211017124007700

    奇偶校验

    • 在待发送的数据后面添加1位奇偶校验位使整个数据(包括所添加的校验位在内)中"1”的个数为奇数(奇校验)或偶数(偶校验)。

    • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;

    • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检) ;

      • 采用奇校验,着比特1的数量的奇性改变,可以检查出错误。

        待发送的数据为:101101,假没收发双方约定采用奇校验,在数据后面添加的校验位应该为比特1,使得比特1的总数为奇数。数据变为:1011011

        假设传输过程中产生了1位误码,我们用红色表示:0011011

        接收方对收到的比特流进行奇校验,发现此特1的总数为偶数而不是奇数,就知道传输过程中发生了误码。

      • 采用奇校验,若比特1的数量的奇性不改变。是无法检查出错误的。

        如果传输过程中产生了2位误码,接收方对收到的比特流进行奇校验,发现比特1的总数为奇数,就误认为传输过程中没有发生误码。

      • 采用偶校验,如果比特1的数量的偶性改变,可以检查出错误。

        假设接收发双方约定采用偶校验,那么。在数据后面添加的校验位应该为比特0,使得比特1的总数为偶数:1011010

        如果传输过程中产生了一位误码…可以知道传输过程中发生了误码。

      • 采用偶校验,若比特1的数量的偶性不改变,是无法检查出错误的。

        如果传输过程中产生了两位误码…误认为传输过程中没有发生误码。

    由于奇偶校验的漏检率比较高,因此计算机网络的数据链路层一般不会采用这种检测方法。

    循环冗余校验CRC

    循环冗余校验CRC(Cyclic Redundancy Check):是一种具有很强检錯能力的检错方法,漏检率极低

    步骤:

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

    发送方的处理:

    • 使用哪除法中来计算冗余码;

    • 待发送的数据作为被除数的一部分,后面添加生成多项或最高次个0以构成被除数;

    • 生成多项武各项系数构成的比特串作为除数;

    • 进行除法,得到商和余数。余数就是航计算出的冗余码,将其添加到待发送数据的后面一起发送。

      • 冗余码的长度与生成多项武最高次数相同,而商液作为标记。防止计算过程中对错位。

    image-20211017130337159

    接收方的处理

    • 做除法
    • 被除数就是接收到的数据,除数仍是生成多项武各项系数构成的比特串。
    • 进行除法,得到商和余数。
    • 如果余数0,可判定传输过程没有产生误码;否则,可判定传输过程产生了误码。

    image-20211017130538718

    image-20211017131018881

    image-20211017131654238

    image-20211017131842348

    总结

    • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
    • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
    • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
    • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务
    展开全文
  • 在一般的帧尾部分,都会包含FCS序列,就是让接收方的数据链路层检查帧在传输过程中是否产生误码。 奇偶校验 奇偶校验只能应用于产生一个误码的情况,如果产生了多个误码,那么这种情况就不适用了。 循环冗余校验CRC...

    差错检测

    实际的通信链路不是理想的,比特在传输过程中可能会产生差错,1可能变成0,0可能变成1.这就称为比特差错

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

    在一般的帧尾部分,都会包含FCS序列,就是让接收方的数据链路层检查帧在传输过程中是否产生误码。

    奇偶校验

    在这里插入图片描述
    奇偶校验只能应用于产生一个误码的情况,如果产生了多个误码,那么这种情况就不适用了。

    循环冗余校验CRC

    一般计算的链路层采用 循环冗余校验CRC

    在这里插入图片描述
    公式有点复杂

    在这里插入图片描述
    检错码只能检测初帧在传输过程中出现了差错,并不能定位错误,因此无法纠正错误

    要想纠正传输中的差错,可以用冗余信息更多的纠错码进行前向纠错。但是开销较大,在计算机网络中较少使用。

    一般是用检错重传方式来纠正传输过程中的差错,或者仅仅丢弃检测到差错的帧

    循环冗余检测码(看一道例题)

    其实很简单

    除数一般是这么得出来的
    采用CRC的生成多项式是P(X)=X^4+X+1。如果这么说的话,除数就是10011

    在这里插入图片描述
    n=3,将 被除数也就是 101001 后面补3个0.
    然后去除以除数,然后做异或运算,如果第一位相同,就商取1,如果是0,就商取0.

    最后刚好位数完了之后,得到余数。

    然后将数据后面加上冗余码FCS。

    CRC是一种常用的检错方法

    然后得到余数FCS 001 后,就将001加到原本的除数上,也就是加到101001上,得到101001001 .

    然后接收方接收到的就是这个,101001001,然后用这个去除以1101,如果结果为0,就没有差错,如果结果不为0,则出错。

    所以商并不重要,得到的余数才重要。

    展开全文
  • 本文主要探讨一下数据链路的两种检错编码:奇偶校验码、循环冗余码 一、奇偶校验 二、CRC冗余校验

    本文主要探讨一下数据链路层的两种检错编码:奇偶校验码、循环冗余码

    首先谈谈差错检测的基本概念:

    在这里插入图片描述
    下面两种局域网内的帧格式中都是带有校验位的,目的就是用于差错检测。
    在这里插入图片描述

    在这里插入图片描述

    一、奇偶校验

    注:奇、偶数要算上奇偶标记位
    在这里插入图片描述

    奇偶校验存在较大缺陷,检错率只能达到50%


    二、CRC冗余校验

    推荐一个b站的视频:差错检测
    我们直接看题:
    注意,被除数是数据部分添加生成多项式最高次数个0得到的
    在这里插入图片描述
    G(x)这个生成多项式是约定好的。
    待发送的数据为被除数
    根据生成多项式构造出来的是除数
    两者做二进制除法,要配合异或运算
    最后余数要补齐最高位,不足则补0
    将得到的余数补在待发送信息后面,就可以发送了。

    检错过程:

    将接收到的数据与G(x)做二进制除法,看所得余数是不是为0.如果为0,我们可以断定,没有差错。
    在这里插入图片描述


    总结:

    在计算机网络中经常会用到差错检测的CRC方法。这是因为校验位位数不多而且CRC比较利于用硬件实现。但纠错就不是很容易了,带来的开销就很大。

    因此,一般我们会把发生错误的数据帧直接丢弃,然后选择是否重传。如果检错重传那么就是提供的可靠服务,如果是检错不重传就是不可靠的服务。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接受。    产生差错的帧会被丢弃,然而过去OSI的观点是:必须让数据链路向上提供“可靠”传输,所以在CRC检测基础上,增加了帧编号、确认...
  • 数据链路层---差错检测和纠正

    千次阅读 2020-03-02 23:18:49
    数据链路层---差错检测和纠正 帧同步虽然可以区分每个数据帧的起始和结束,但是还没有解决数据正确传输的两方面问题:一、如果有帧出现了错误?二、如果有帧丢失了?这都是数据链路确保向网络提供可靠数据传输...
  • CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送出去,一共发送(k+n )位。在所要发送的数据后添加冗余码,显然增大了数据传输的开销,但却可以进行差错检测。当传输可能出现差错时,付出...
  • 数据链路层差错检测之循环冗余检验CRC 引用https://blog.csdn.net/wenqiang1208/article/details/71641414 为什么引入CRC 现实的通信链路都不会是理想的。这就是说,比特在传输的过程中可能会产生...
  • 文章目录数据链路层数据链路的功能为网络提供服务链路管理帧定界、帧同步与透明传输流量控制组帧字符计数法字符填充的首尾定界符法零比特填充的首尾标志法违规编码法差错控制检错编码奇偶校验码循环冗余码纠错...
  • 数据链路层差错检测之纠错码 1. 海明码 - 海明距离 两个码字之间不同的位数。 即异或之后1的个数。 码字:一个包含数据位和校验位的数据结构 - 全部海明距离: 对于一个合法码字列表,在这个列表中具有最小海明...
  • 笫七八讲数据链路层功能差错检测与校正PPT学习教案.pptx
  • 一、封装成帧 二、 差错检测: 奇偶校验法(漏检率较高,一般不在链路使用): 循环冗余校验法:
  • 数据链路层以帧为单位传输和处理数据。 三个过程: 封装成帧: 发送方的数据链路将上层交付下来的数据单元封装成帧后,还要 差错检测: 通过检错码发现帧在传输过程中出现误码(01互换)。 过程: 在...
  • 数据链路层CRC差错检测技术

    千次阅读 2020-11-19 17:47:15
    本科时老师照本宣科,没有搞懂CRC差错检测到底是怎么检测的。最近看到这块了,根据自己的理解在这里记录CRC差错检测技术。 现实的通信链路都不会是理想的。...目前在数据链路层广泛使用了循环冗余检验CRC(Cycl
  • 差错控制差错的产生信道所固有的、持续存在的随机热噪声外界特定短暂原因产生的冲击噪声(主要)编码技术实现差错控制主要分成两类自动重传请求ARQ:接收端检测差错的时候就设法通知发送端重发,直到接受到正确的码字...
  • 帧同步虽然可以区分每个数据帧的起始和结束,但是还没有解决数据正确传输的两方面问题:一、如果有帧出现了...一、差错检测数据链路层检测数据传输错误的方法一般是通过对差错编码进行校验来实现,常见的有奇偶...
  • 文章目录1 使用点对点信道的数据链路层1.1 数据链路和帧1.2 三个基本问题1. 封装成帧2 点对点协议 PPP3 使用广播信道的数据链路层4 扩展的以太网5 高速以太网 数据链路层使用的信道主要有以下两种类型: 点对点信道...
  • 数据链路层CRC(循环冗余码)差错校验码详解 CRC差错校验码是数据链路用来进行差错校验的一个码。 CRC编码过程 假设要编码的数据D,有d个比特,发送节点要将它发送给接收节点。发送方和接收方要先协商一个r + 1比特...
  • 数据链路层 网络 传输 什么是可靠传输 不错(没有比特差错),不丢(丢包),不乱(按序到达) 每一的校验只校验本的数据,传输是段,网络是包,链路是帧。 数据链路层 数据链路层FCS是为了防止...
  • 数据链路层在物理提供服务的基础上向网络提供服务,其最基本的服务是将源自网络来的数据可靠地传输到相邻节点的目标机网络。其主要作用是加强物理传输原始比特流的功能,将物理提供的可能出错的物理连接...
  • # 数据链路层主要研究的三个基本问题 ????封装成帧:源mac,目的mac、帧开始符、帧结束符、帧校验序列 ????透明传输:文本传输、可执行文件传输的界定符 ????差错检验:发送端 环冗余检验CRC FCS帧校验序列 接收端亦...
  • 数据链路层有CRC校验,ARQ重传等协议来做差错控制,可以保证数据的可靠性。那为什么UDP时不可靠的呢?与TCP的差错控制是否重复了呢? 路由器功能 为什么传输数据链路层都要求重传呢? (1) 数据链路层...
  •   并不是每一种数据链路层协议的帧都包含有帧定界标志。例如,下图是以太网版本2的MAC格式,在其帧头和帧尾中并没有包含帧定界标志。那么接收方又是如何从物理交付的比特流中提取出一个个的以太网帧呢?.
  • 数据链路层仅仅使用循环冗余检验RC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据 链路接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的 帧虽然曾收到了,...
  • 1、数据链路层的设计问题 引言 数据链路层主要完成的功能包括:(1)向网络提供一个定义良好的接口(2)处理传输错误(3)调节数据流,确保慢速接收方不会被快速接收方淹没。 数据链路将从网络获取的...
  • 【计算机网络】数据链路层(超多图详析)

    千次阅读 多人点赞 2022-03-10 14:32:41
    数据链路的基本概念数据链路的重要问题封装成帧透明传输差错检测 数据链路的基本概念 之前我们学习的原理体系结构中,一共分为五。上次学习了第一物理,这次来学习一下物理的直接上层——数据链路层。...
  • 文章目录物理概述物理的作用传输介质信道的基本概念分用-复用技术数据链路层概述 物理概述 物理的作用 如果是OSI七模型的话,物理是处于最底层的位置。对于TCP/IP四模型,它是属于最底层的网络接口...
  • 数据链路层 数据链路的任务是在相邻两个节点的线路上无差错的传输以帧为单位的数据,每帧包括数据和必要的控制信息。
  • 链路 (link) 是一条无源的点到点的物理线路段,中间没有... 一般的适配器都包括了数据链路层和物理这两的功能。(路由器的接口也是工作在数据链路层) 也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,354
精华内容 8,141
关键字:

数据链路层差错检测