计算机网络之数据链路层功能概述封装成帧透明传输以及差错控制(检验编码)408_1

Posted bfhonor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络之数据链路层功能概述封装成帧透明传输以及差错控制(检验编码)408_1相关的知识,希望对你有一定的参考价值。

一、数据链路层功能概述

(一)数据链路层基本概念

  • 结点:主机、路由器
  • 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
  • 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
  • :链路层的协议数据单元,封装网络层数据报。
  • 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
    在这里插入图片描述

(二)数据链路层功能概述

  • 数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
  • 其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
    在这里插入图片描述
  • 功能:
    ①、功能一:为网络层提供服务。无确认无连接服务有确认无连接服务有确认面向连接服务有连接一定有确认
    ②、功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
    ③、功能三:组帧。
    ④、功能四:流量控制。在这里插入图片描述限制发送方哦
    ⑤、功能五:差错控制(帧错/位错)。

二、封装成帧&透明传输

(一) 封装成帧

在这里插入图片描述

  • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  • 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)
  • 帧同步接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
  • 组帧的四种方法:①字符计数法,②字符(节)填充法,③零比特填充法,④违规编码法。
    在这里插入图片描述

(二)透明传输

  • 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
  • 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

1. 字符计数法

  • 帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
    在这里插入图片描述
  • 痛点:鸡蛋装在一个篮子里了。

2. 字符填充法

在这里插入图片描述
在这里插入图片描述

3. 零比特填充法

在这里插入图片描述

4. 违规编码法

在这里插入图片描述

  • 由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充违规编码法

三、差错控制(检错编码)

(一)差错从何而来?

  • 概括来说,传输中的差错都是由于噪声引起的。
  • 全局性:
    ①、由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
    ②、解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
  • 局部性:
    ①、外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
    ②、解决办法:通常利用编码技术来解决。
    在这里插入图片描述

(二)数据链路层的差错控制

1. 数据链路层编码VS物理层编码

  • 数据链路层编码和物理层的数据编码与调制不同
  • 物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。
  • 而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
    在这里插入图片描述

2. 检错编码——奇偶校验码

在这里插入图片描述

  • 如果一个字符S的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?【D】
    A. 11000011 B. 11001010 C. 11001100 D.11010011
  • 奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%。

3. 检错编码——CRC循环冗余码

在这里插入图片描述
在这里插入图片描述

接收端检错过程

  • 把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
    ①、余数为0,判定这个帧没有差错,接受
    ②、余数为不为0,判定这个帧有差错(无法确定到位),丢弃
  • FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
  • 在数据链路层仅仅使用循环冗余检验RC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据 链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的 帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。

(三)差错控制(纠错编码)

1. 纠错编码——海明码

  • 功能:①、能够发现错误。②、能够找到位置。③、能够纠正错误。
    在这里插入图片描述

2. 海明距离

  • 两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)
    在这里插入图片描述

(1)确定校验码位数r

在这里插入图片描述

  • 要发送的数据:D=1100,数据的位数m=4,满足不等式的最小r为3,也就是D=1100的海明码应该有4+3=7位,其中原数据4位,校验码3位

(2)确定校验码和数据的位置

在这里插入图片描述

(3)求出校验码的值

在这里插入图片描述

(4)检错并纠错

在这里插入图片描述
在这里插入图片描述

以上是关于计算机网络之数据链路层功能概述封装成帧透明传输以及差错控制(检验编码)408_1的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络(谢希仁 第七版) 第三章(数据链路层)-- 3.1 使用点对点信道的数据链路层(数据链路层概述 & 数据链路和帧 & 三个基本问题(封装成帧透明传输差错控制))

王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR

计算机网络之数据链路层

封装成帧 & 透明传输

数据链路层-第二节:封装成帧

计算机网络之数据链路层