计算机网络知识点(三) 数据链路层

2023-05-16

       

目录

 第三章 数据链路层

3.1 数据链路层的设计问题

3.1.1 提供给网络层的服务

3.1.2 成帧

3.1.3 差错控制

3.1.4 流量控制

3.2 差错检测和纠正

3.2.1 纠错码

 3.2.2 检错码

3.3 基本数据链路层协议

3.3.1 一个乌托邦式的单工协议(协议1)

3.3.2 无错信道上的单工停-等式协议(协议2)

3.3.3 有错信道上的单工停-等式协议(协议3)

3.4 滑动窗口协议

3.4.1 基本概念

3.4.2 1位滑动窗口协议(协议4)

3.4.3 回退N协议(协议5)

 3.4.4 选择重传协议(协议6)


 

        数据链路层是基于物理层不可靠的传输向上层提供可靠的传输,它提供的是相邻两个节点之间可靠的数据传输。 

        本章主要涉及网络模型中第二层(即数据链路层)的设计原则。实现通过一条通信信道连接起来的两台机器,实现可靠有效的完整信息块(称为帧)通信的一些算法。解决通信线路中出错的情况、关于有限的数据传输率、发送时间和接受时间存在的非零延迟等问题。

 第三章 数据链路层

3.1 数据链路层的设计问题

数据链路层使用物理层提供的服务在通信信道上发送和接受比特。完成一些功能:

(1)向网络层提供一个定义良好的服务接口。

(2)处理传输错误。

(3)调节数据流,保证慢速的接收方不会被快速的发送方淹没。

为实现这些目标:数据链路层从网络层获得数据包,并将之包装成包含:

        帧头+有效载荷(存放数据包)+帧尾的帧(frame)

数据链路层的工作核心就是帧的管理。

3.1.1 提供给网络层的服务

最主要的服务是将数据从源机器的网络层传输到目标机器的网络层:

 数据链路层可以设计成向上提供各种不同的服务。实际提供的服务因具体协议的不同而有所差异。一般情况下,数据链路层通常会提供以下3种可能的服务:

       (l)无确认的无连接服务。

        源机器向目标机器发送独立的帧,目标机器不对这些帧进行确认。不需建立逻辑连接。适用于错误率低或者实时通信(语音传输)的情况。

        (2)有确认的无连接服务。

        源机器向目标机器发送独立的帧,目标机器会对这些帧进行确认。不需建立逻辑连接。适用于不可靠的信道(无线系统,WiFi)。

        (3)有确认的有连接服务。

        源机器和目标机器在传输任何一个数据之前要建立一个连接,保证目标机器按照正确的顺序接受每一个帧。适用于长距离且不可靠的链路(卫星信道,长途电话)。

3.1.2 成帧

        为检测错误和纠正错误,数据链路层将比特流拆分成多个离散的帧,为每个帧计算一个称为校验和的短令牌,并将该校验和放在帧中一起传输。为拆分比特流需要解决两个问题:

         (1)帧的边界问题:如何识别帧的边界;

        (2)帧的透明传输(填充)问题:如果帧的数据中出现和边界一样的 flag 该如何防止被识别为边界

1. 四种成帧方法

(1)Character count(字节计数法)

        用头部的一个字段来标识该帧中的字符数:

        问题:因为一个传输错误,就会全弄混。很少被使用。

(2)Flag Bytes with byte stuffing(字节填充的标志字节法)

        发送方使用标志字节(FLAG)作为开始和结束;使用转义字节(ESC)表示其后的字节为数据字节而不是标志字节或转义字节。接收方将收到的数据中的转义字节删除后再传递给网络层。

 (3)Starting and ending flags,with bit stuffing(比特填充的标志比特法)

         使用“01111110”表示帧的开始和结束(帧的边界问题解决),并且在数据中,若遇到5个连续的比特1,就在其后填入一个比特0(帧的填充问题解决)。接收方除了将首尾的“01111110”删除外,还要将数据中所有5个连续比特1其后的比特0删除。

                ​​​​​​​        ​​​​​​​        

        相较于方法(2),帧长度增幅更少,降低了传输数据内容。

(4)Physical layer coding violation(物理层编码违禁法)

         使用“不会出现在常规数据中”的冗余比特作为边界。好处是除了开始和结束的填充外,不再需要填充额外的数据。

3.1.3 差错控制

为确保所有帧按照正确顺序传递给目标机器的网络层:

发送方发送反馈信息来确保传递可靠。

引入计时器来防止硬件故障或通信信道出错等原因丢失某一帧使发送方持续等待确认。

通过序号保证每一帧按照顺序且不会被接收方重复接收。

具体的确认方式在后面通过协议的形式来讲

3.1.4 流量控制

发送方发送帧的速度超过了接收方能够接收这些帧的速度,而导致丢帧。

解决方法:

        基于反馈的流量控制(链路层)。

        基于速率的流量控制(网络层)。

3.2 差错检测和纠正

3.2.1 纠错码

推断出被发送的数据是什么。适用于错误发生很频繁的信道,因为再次传输仍可能出错。

海明码

1)海明码的生成

 2)海明码的接收

 3.2.2 检错码

        推断是否发生错误。适用于高度可靠的信道,错误偶尔发生时,只需重传整个数据块即可。循环冗余校验码(CRC,Cyclic Redundancy Check,也称作多项式编码)。注意有一定的误判率。

        步骤:(以下面算式为例讲解)

        ①收发双方商定一个比帧短且头尾都是1的01串叫做生成多项式,如下的10011

        ②帧的后面附上生成多项式长度减一个0后,作为被除数对生成多项式模2除,得到商和余数,如10011长度为5,所以附上了4个0

        ③若帧与余数合并以后在接收方被生成多项式整除,那么认为传递的过程没有出错

 模2除原则:列竖式的方式同除法,但是模2除法中加法无进位,减法无借位,即加减皆等同于异或,而商0还是1由被除数首位决定,首位是1商1,否则商0

3.3 基本数据链路层协议

        组成帧的四个字段:kind、seq、ack和info。前三个包含控制信息,称为帧头,最后一个可能包含了要被传输的实际数据。

3.3.1 一个乌托邦式的单工协议(协议1)

        不需考虑任何错误情况:数据单向传输,双方总是就绪,数据处理时间不计,缓存空间无限大,通信信道永不丢帧。

        这是一个完全不现实(理想化)的协议,“乌托邦”协议。

        发送过程是一个无限的while循环,它尽可能快速地把数据放到线路上。无差错控制或者流量控制方面的限制。接受过程一直等待一个未损坏的帧到达。(发送速率和接收速率必须一样快)

3.3.2 无错信道上的单工停-等式协议(协议2)

        单向数据传输,发送方网络层一直有无限的数据要发送,信道不会出错,从不损坏或丢失帧,发送方需等待接收方确认帧返回后才发送下一帧。如果接收方不反馈应答信号,则发送方必须一直等待,然后就陷入等待接收方确认信息的过程中,因而传输效率低。

3.3.3 有错信道上的单工停-等式协议(协议3)

        信道存在噪音。需要计时器与序号配合,需要超时重传机制。

3.4 滑动窗口协议

3.4.1 基本概念

        滑动窗口(sliding window):为了便于理解,可以认为数据是一条传送带,而滑动窗口中的数据是当前准备处理的数据。一旦窗口的第一条数据被确认处理结束,窗口就会继续向后滑动以处理后面的数据。下面是发送方的发送窗口形象化的表示:

         捎带确认(piggybacking):暂时延缓确认以便将确认信息搭载在下一个出境数据帧上的技术。捎带确认通常与累计确认一同使用,更好的利用了信道的可用带宽。

        期望确认:收到数据帧以后向发送方发送期望对方发送的下一帧的序号。

        累计确认(cumulative acknowledgement):当n号帧的确认到达,n-1号帧、n-2号帧等都会自动被确认。

        否定确认(NAK):接收方检测到错误时发送的否定确认,实际是一个重传请求,在NAK中指定了要重传的帧。

        发送窗口(sending window):发送方总维持着一组序号,分别对应于允许它发送的帧,我们称这些帧落在发送窗口。

        接收窗口(receiving window):接收方维持着的一个窗口对应于一组允许它接受的帧。

3.4.2 1位滑动窗口协议(协议4)

        (发送窗口大小=1,接收窗口大小=1)

        当接收窗口大小为1时,可保证帧的有序接收,但效率较低。

        源站发送单个帧后必须等待确认,在目的站的确认到达源站之前,源站不能发送其他数据帧。这是因为发送窗口大小仅为1,必须用来保存当前未确认的帧以超时重传。

        发送方必须在内存中保存所有的帧,因此如果最大窗口的尺寸为n,则发送方需要n个缓冲区才存放未被确认的帧。

3.4.3 回退N协议(协议5)

        (发送窗口大小>1,接收窗口大小=1)

        发送方按照顺序向对方发送帧,在收到对方的确认以后窗口向后滑动,若当前窗口中的第一个帧出现超时,那么回退到这个帧重新发送所有的帧。

        而因为接收窗口大小为1,除了数据链路层必须要递交给网络层的下一帧外,接收方拒绝接受任何帧。如果在计时器超时以前,发送方的窗口已被填满,则管道将变为空闲,最终,发送方将超时,并且按照顺序重传所有未被确认的帧,从那个受损或者丢失的帧开始。

        一般使用累计确认。

 3.4.4 选择重传协议(协议6)

        (发送窗口大小>1,接收窗口大小>1)

        发送方按照窗口的顺序依次发送帧给接收方,而接收方检查该帧是否可以落在接收窗口内,即以前没有接收过且该序号在窗口可接收的范围内,如果可以那么不管这一帧是否为网络层所期望的下一个数据包都接收该帧并暂存于缓冲区内。该帧会一直保存在数据链路层中直到所有序号比它小的帧已经按顺序递交给网络层,它才能被传递给网络层。

        辅助计时器:在发送方的计时器超时之前,没有出现需要发送的反向流量,则发送一个单独的确认帧,而发送的时间间隔由辅助计时器决定,因此辅助计时器的超时间隔应该明显短于数据帧关联的计时器的间隔。

        除ACK,选择重传还有否定确认,当接收方发现坏帧丢弃时,立刻发送一个NAC给发送方告知该帧未收到让它重传,以防超时。

选择重传和回退N实际是带宽使用效率与数据链路层缓存空间之间的权衡。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络知识点(三) 数据链路层 的相关文章

  • 今日申论做题感受分析

    总的来说太过于沉溺于题目所给的材料 xff0c 而忽略了自身感受和理解所带来的 xff0c 而这正也是申论希望让我们养成的能力 xff0c 我们要从宏观上形成感受 xff0c 然后再结合具体材料展开相关内容 xff0c 但是目前来说我很容易
  • 今日做题以及以后的做题思路整理

    1 言语理解不能图快只抓后面的语句 xff0c 还是要花点时间大致理解一下 2 翻译推理还是有不熟悉的地方 xff0c 后期需要弥补一下 3 逻辑填空还是需要不断积累
  • 隔年增长率变形

    普通的隔年增长率 xff1a Aa 43 Bb 61 Cc 一般会叫你通过a 和b 求出c 但是该公式的本质还是Aa 43 Bb 61 Cc xff0c 其实a和b的数值可以为任意形式 xff0c 不仅仅局限于百分数 xff0c 它仅仅只是
  • 2022.9.17

    夜抚红烛垂泪 xff0c 才觉银月满身 若人若物若非故 xff0c 心无可期念无数 流水长东恨满怀 xff0c 人生常憾憾无穷 忽下眉梢 xff0c 又上心头 xff0c 如影相随 xff0c 何羡相思
  • 2022.10.30

    新愁复旧愁 xff0c 苦痛哀伤恨

随机推荐

  • mininet基本操作

    mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具 xff0c 可以创建一个包含主机 xff0c 交换机 xff0c 控制器和链路的虚拟网络 xff0c 其交换机支持OpenFlow xff0
  • 平均数的增长百分比

    设一个数A和一个数B xff0c 若A B要增长百分之30 xff0c 那么A和B的数值变化将呈现这样的规律 xff1a 1 若B不变 xff0c A增长百分之30 xff0c 则可达到整体增长百分之30 2 若A不变 xff0c B减少百
  • 2022.11.2

    字字句句切切思 心心念念欲语迟
  • 夜思 思芳愿静

    夜抚红烛垂泪 xff0c 才觉银月满身 若人若物若非故 心无可期念无数 声声难抑切切思 xff0c 心心相念欲语迟 流水长东恨满怀 xff0c 人生长憾憾无穷 才下眉梢 xff0c 又上心头 xff0c 如影相随 xff0c 何羡相思
  • 2011/11/26

    听雨听风听愁绵 xff0c 疏雨薄衣心无涟
  • 2022 12 3

    将遭遇的苦难试做上天所给予的理所当然 xff0c 当撑不下去后 xff0c 就用肉泥与血液筑就保护幸福和快乐的围墙 xff0c 人的一生便如此草草地收尾了
  • 国考申论近日书写注意点总结

    一定要审题审清楚 xff0c 它叫你概括问题就主要重心放在问题上 提前做好要点的主题词书写 xff0c 确保后续主题词的书写不会太过垃圾 一定要根据提前安排的行数进行书写 xff0c 不能因为字数的充裕就进行肆意的书写
  • 公共服务设施

    学校 xff1a 小学 xff0c 中学 xff0c 大学 xff0c 中等专业技术学校 xff0c 职业培训机构 xff0c 寄宿制高中和特殊学校 xff0c 幼 xff08 托 xff09 儿园等 医院 xff1a 综合医院 xff0c
  • 倡议书书写细节

    一般来说倡议书所给的材料是一些榜样事迹 xff0c 然后叫你去写相关的倡议书 xff0c 可能是学习榜样精神 或者是榜样行为 xff0c 但是一般来说就是从精神层面或者行为层面进行相关的倡议 当日也可以精神 行为同步倡议 这个时候倡议书的开
  • 倡议书题目所遇困难记录

    充实学习生活明确人生方向 该篇倡议书的主要书写困难在 xff1a 长期以来我训练的相关材料都是与乡村振兴 基层治理以及产业发展相关 xff0c 与榜样事迹精神提炼是相去甚远 xff0c 所以在这方面的训练就比较少 xff0c 所以相关的提炼
  • 文化共享惠民生短评

    文化共享惠民生 今日故宫博物院养心殿多件文物移驾至首都博物馆 xff0c 以亲民 开放姿态融入大众生活 但是 xff0c 各地文物资源闲置情况普遍存在 对此 xff0c 让文物走出封闭确有必要 而梁祝遗存与各地美术馆在该方面工作开展十分值得
  • 自然场景文本检测识别 - 综述

    自然场景文本检测识别 综述 Part II 坚果粥 xff1a 自然场景文本检测识别 综述 Part I26 赞同 1 评论文章 拥有这些背景知识后 xff0c 我们可以开始学习自然场景文本检测识别 xff08 STR xff09 的算法模
  • 议论文写作结构

  • 议论文书写总结

    观点如何引入以及背后原理 议论文的书写有一个常用的书写模板 xff0c 也就是五分三式 有人说这种模板的得分不高 xff0c 也有人只要核心内容切实 不空范 xff0c 论证严谨就也是可以的 那么议论文该如何才能写好 以下仅为随笔 xff0
  • 议论文开头的引出原理

    相信大家都写过议论文 xff0c 议论文开头如果用大家普遍的描述去形容 xff0c 便是用温和的方式将观点进行引出 xff0c 但是此句话太过浅薄 xff0c 难以深入实质 原理 议论文的开头从本质上来说 xff0c 是大脑在看到题干所给的
  • 面试总结1

    总结 xff1a 面试不是以模板为驱动 xff0c 是以题目为驱动 与申论书写类似 xff0c 以模板为驱动 xff0c 只会削足适履 xff0c 让自己没有办法较好地发挥出来 xff0c 流畅性以及自身的创新性都没有办法较好地得到体现 以
  • 模式识别 一

    模式识别 教材选择模式识别基本概念模式识别的主要方法应用领域模式识别与机器学习的区别模式识别典型过程前修基础课程课后问题解答1 简述特征空间优化的方法2 简述分类器的设计准则3 简述分类器设计的基本方法4 简述在什么情况下分类器不可分5 分
  • Docker 持久化存储 Bind mounts

    Docker 持久化存储 Bind mounts Bind mounts 的 v 与 mount 区别启动容器基于bind mount挂载到容器中的非空目录只读 bind mountcompose 中使用 bind mount 官方文档 x
  • BGP路由技术详解(一)

    BGP路由技术详解 xff08 一 xff09 前言一 BGP路由协议概述1 BGP定义2 BGP的特点3 BGP分类4 BGP的路径矢量特征5 BGP的路由器6 BGP Peer 二 自治系统AS的概念1 定义2 AS号3 传输AS中的路
  • 计算机网络知识点(三) 数据链路层

    目录 第三章 数据链路层 3 1 数据链路层的设计问题 3 1 1 提供给网络层的服务 3 1 2 成帧 3 1 3 差错控制 3 1 4 流量控制 3 2 差错检测和纠正 3 2 1 纠错码 3 2 2 检错码 3 3 基本数据链路层协议