【学习笔记】数据链路层——流量控制:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)

文章目录

  • 一. 流量控制
    • ① 必要性
    • ② 数据链路层 VS 传输层
    • ③ 定义
    • ④ 方法
      • 1)停止等待协议
      • 2)滑动窗口协议
        • 关系:
        • 包括:
      • 3)协议对比
  • 二. 停止-等待协议
    • 必要性
    • 应用情况
      • ① 无差错情况
      • ② 有差错情况
        • 1)数据帧丢失,或检测到帧出错。
        • 2)ACK丢失
        • 3)ACK迟到
      • ③ 性能分析
        • 结论
        • 解析图
        • 信道利用率 && 信道吞吐率
          • 1)定义
          • 2)例题
  • 三. 后退N帧协议(GBN)
    • ① GBN的滑动窗口
    • ② GBN发送方要做的三件事
    • ③ GBN接收方要做的事
    • ④ 运行图
    • ⑤ 滑动窗口长度
    • ⑥ GBN重点总结
    • ⑦ 例题
    • ⑧ 性能分析
  • 四. 选择重传协议(SR)

ppt来源:王道考研B站教程

一. 流量控制

① 必要性

较高的发送速度和较低的接收能力不匹配的话,会造成传输出错

② 数据链路层 VS 传输层

模式流量控制手段
数据链路层点对点收不下就不回复确认
传输层端到端给发送端一个窗口公告

③ 定义

控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。

④ 方法

1)停止等待协议

2)滑动窗口协议

关系:

解决了流量控制,以及可靠传输(通过发送方自动重传)

包括:

  • 后退N帧协议(GBN)
  • 选择重传协议(SR)

3)协议对比

也就是说,其实停等协议也可以看成是一种滑动窗口协议。
在这里插入图片描述

二. 停止-等待协议

下简称”停等协议“

必要性

  • 底层信道会出现丢包问题。
  • 流量控制

应用情况

① 无差错情况

0帧、1帧为编号。ACK为确认帧。(acknowledgement frame)
注意:帧编号可以重复利用,比如此处0,1就是不断给新帧重复使用的。

② 有差错情况

停等协议的有差错情况,都是基于超时计时器来进行处理的。
让我们在第一种差错情况中对超时计时器进行更多的介绍。

1)数据帧丢失,或检测到帧出错。

  • 数据帧丢失:即接收端并没有接收到数据帧。
  • 检测到帧出错:接收端接收到了数据帧,但是检测到数据帧出错了。

这两种都产生一样的结果:接收端不返回ACK。

下图中,感叹号部分的原因为:

  • 保留副本:可能需要重新发送这个帧(由于之前丢失或出错)。
  • 必须编号:防止重复。
    在这里插入图片描述

2)ACK丢失

描述:接收端接收到数据了,但是发送给发送端的ACK丢失了的情况。

解决流程:
i) 由于没有回收到ACK,触发了超时计时器,发送端重新发送当前数据帧。
ii) 接收端再次收到当前数据帧,由于我们有编号,于是判断这是重复帧,丢弃重复帧,并且再次传ACK。
iii) 发送端接收到ACK,错误解决。(当然,如果又丢失则继续这个流程)
在这里插入图片描述

3)ACK迟到

描述:接收端接收到数据了,但是ACK迟到了,触发了超时计时器的情况。

解决流程:
i) ACK迟到导致触发超时计时器,发送端重传数据帧
ii) 接收端收到重复数据帧,丢弃重复帧,并重传ACK
iii) 发送端在某刻终于收到迟到ACK,由于编号重复,丢弃迟到ACK

在这里插入图片描述

③ 性能分析

结论

简单,信道利用率太低。

解析图

可见一个周期中,RTT占了很大的比例。
在这里插入图片描述

信道利用率 && 信道吞吐率

1)定义

在这里插入图片描述

2)例题
  • RTT = 双向传播事延 = 2 * 30ms
  • 此处TD = L / 4kb/s,TA题干未给,不计。(见解析图中的公式变量。)
    在这里插入图片描述

三. 后退N帧协议(GBN)

GBN:Go Back N

首先来一个GBN协议与前面的停等协议的对比图吧!

停等协议
GBN协议

由停等协议到GBN协议,有两个前提:

  • 必须增加序号范围
  • 发送方要缓存多个分组

① GBN的滑动窗口

传送帧分为三个部分:

  • 发完被确认的帧
  • 还能发送的帧(即正在发送窗口里的帧)
  • 还不能发的帧
    在这里插入图片描述

② GBN发送方要做的三件事

简单来说,就是:

  • 与上层的交流:上层发送数据,发送方如果窗口满,则退还数据给上层。(实际可以缓存数据)
  • 对ACK采取累计确认方式。
    这里要举个例子:发送0、1、2,只返回ack1,则说明:0,1都收到,重传2。而非只收到1。
  • 超时事情处理:重传所有已发但未确认帧。
    举个例子:发送0、1、2、3,返回ack1,超时后重传2、3。
    (之后的SR协议就是对此处进行了优化。)
    在这里插入图片描述

③ GBN接收方要做的事

下图简而言之就是:

  • 正确按序收到n号帧后,发送ack N(累计确认),上传数据给上层。
  • 维护Expected_Seq_Num。
    举个例子:发0、1、2、3,接收到0、2、3,则发ack0,expectedseqnum=1(期待接收帧是1)
    这里提了一下缓存失序帧,其实就是为SR协议引一下,因为SR协议会缓存失序帧。
    在这里插入图片描述

④ 运行图

图中需要注意:

  • 接收3、4、5后,都丢弃,并且发送的都是ACK 1。
  • 超时计时器:超时后,重传所有已发未确认帧,结合expectedseqnum=2来维护运行。
    在这里插入图片描述

⑤ 滑动窗口长度

  • 采取n比特对帧编号的情况:发送窗口尺寸W满足:1 ≤ W ≤ 2n2 ^ n2n-1
  • 原因:尺寸过大会导致接收方无法区分新帧与旧帧
    如果不太了解为啥无法区分,可以到SR协议部分再看看解析。

⑥ GBN重点总结

这里直接看图就好
在这里插入图片描述

⑦ 例题

在这里插入图片描述
做这道题需要的知识点:

  • 累计确认
  • GBN的重发机制

解析:由于收到了3号帧的确认,也就是ACK 3,那么由累计确认机制可知:0、1、2、3号帧都成功传送。因此,只有4、5、6、7号帧需要重发。所以选C.4。

⑧ 性能分析

i) 优点:连续发送数据帧 => 提高信道利用率
ii) 缺点:重传时要把已经正确传输的数据帧重传 => 传送效率降低

最后来一个GBN的思维导图
在这里插入图片描述

四. 选择重传协议(SR)

SR:Selective Repeat

对于之前的GBN协议,我们了解其弊端:批量重传。
而为了解决这一弊端,我们有一个解决方法:

单个确认,加大接收窗口,设置接收缓存,支持乱序(缓存乱序到达帧)

由此引出SR协议

① 滑动窗口

与GBN协议不同在于:

  • 见接收方窗口的紫色部分6,新增缓存功能。
  • 见发送方窗口的绿色部分3,支持乱序确认,也就是重传时可以传2,4而省略3。
  • 下界:位于发送方窗口的最小序号位,下图中为2号帧。
    在这里插入图片描述

② SR发送方必须响应的三件事

  • 上层调用同GBN,不赘述。
  • ACK:与GBN不同,并非累计确认。具体可见图中解释。
    举个例子:
    发0、1、2、3、4,收到ACK1 、2、3,那么说明0、4并没有被正确接收。并且由于0是下界,因此不能移动窗口。于是重传0、4,如果只返回ACK0,那么窗口移动,下界变成4
  • 超时事件:一个超时事件对应一个帧的重传
    在这里插入图片描述

③ SR接受方要做的事

分成三类。

  • 接受乱序,缓存失序帧。如下图的6号帧
  • 比下界序号还小的帧,返ACK。(下图5号帧前的01234,只是重新确认已发)
  • 其他情况:忽略。

移动滑动窗口的情况:下界帧成功返回ACK。
在这里插入图片描述

④ 运行图

  • 2帧丢失后,3帧缓存,发送ACK3 (GBN则返ACK2)
  • 2帧超时后,重传2帧。(GBN则返2345)
  • 移动窗口:重传2帧后,2-5都成功了,移动下界到6。
    在这里插入图片描述

⑤ 滑动窗口长度

公式:WtmaxWtmaxWtmax = WrmaxWrmaxWrmax = 2n-1

限制原因:

同GBN,会导致接收方无法区分新帧与旧帧。
见图左,与图右流程:

  • 共同点:最后都是接受0号帧
  • 不同点:左边是重传(旧帧),右边不是重传(新帧)

解决方法:按公式给窗口长度,就不会出现这种二义性错误。
加粗样式

⑥ SR协议重点 && 例题

重点

直接见下图
在这里插入图片描述

例题

在这里插入图片描述
考察知识:

  • SR协议的重传机制

解析:

  • 1号帧已经确认,不需要重传
  • 0、2号帧超时,需要重传
  • 3号帧,没超时,先不处理。

因此,最终只需要重传0、2号帧,答案选A.2。

⑦ 思维导图

在这里插入图片描述

终于补完这一小节的内容了= =,一篇博客拖了好久。
要抓紧写完三四章的内容了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java线程唤醒与等待_Java线程的等待与唤醒

生产者和消费者必须使用同步代码块包裹起来,保证等待和唤醒只能有一个执行,同步使用的锁对象必须保证唯一Thread中重要方法void wait() 在其他线程调用此对象的notify()方法或notifyall()方法前,导致当前线程等待void notify() 唤醒在此对象监…

【学习笔记】数据链路层——信道划分访问控制(FDM、TDM、STDM、WDM、CDM CDMA)

PPT截自王道考研B站教程 一. 铺垫知识 ① 传输数据使用的两种链路 星型、总线型都是广播式结构。 星型更有容错率,总线型断一个则全断。 ② 介质访问控制 定义 采取一定措施,使得两对节点之间的通信不会发生互相干扰的情况。 分类 多路复用&…

【学习笔记】数据链路层——随机访问介质访问控制(ALOHA、CSMA、CSMA/CD、CSMA/CA),截断二进制指数规避算法

文章目录小前言一. ALOHA协议纯ALOHA协议时隙ALOHA协议ALOHA对比CSMA协议定义与分类① 1-坚持CSMA② 非坚持CSMA③ p-坚持CSMA总结CSMA/CD协议传播时延对载波监听的影响确定重传时机:截断二进制指数规避算法最小帧长问题CSMA/CA协议工作原理CSMA/CD 与 CSMA/CA的对比…

pca算法介绍及java实现_PCA算法原理及实现

众所周知,PCA(principal component analysis)是一种数据降维的方式,能够有效的将高维数据转换为低维数据,进而降低模型训练所需要的计算资源。以上是比较官方的说法,下面是人话(正常人讲的话)版。pca就是一种能够有效压缩数据的方…

【学习笔记】数据链路层——轮询访问介质控制(轮询协议、令牌传递协议)

文章目录一. 轮询访问介质控制二. 轮询协议三. 令牌传递协议结束语PPT截自王道考研B站教程 一. 轮询访问介质控制 结合了前面的信道划分访问控制、随机访问MAC协议的优点: 既要不产生冲突,又要发送时占全部带宽。 二. 轮询协议 轮询开销:…

【学习笔记】局域网基本概念和体系结构,以太网、无线局域网与PPP协议、HDLC协议

文章目录一. 局域网:特点与要素① 拓扑结构② 传输介质③ 介质访问控制方法④ 局域网的分类⑤ IEEE 802标准⑥ MAC子层和LLC子层二. 以太网① 概述② 提供无连接、不可靠的服务③ 传输介质与拓扑结构的发展④ 10BAST-T以太网⑤ 适配器与MAC地址⑥ 以太网MAC帧⑦ 高速…

【学习笔记】数据链路层——链路层设备:物理层拓展以太网、链路层拓展以太网与冲突域和广播域

文章目录一. 冲突域与广播域① 定义与对比图② 例子二. 物理层扩展以太网三. 链路层扩展以太网① 网桥定义透明网桥源路由网桥② 以太网交换机PPT截自B站王道考研教程 本文内容导图 一. 冲突域与广播域 可以先只是简单看看定义,然后看完二、三后再回来看对比图和…

【学习笔记】网络层——概述、数据交换方式:电路交换、报文交换与分组交换(数据报与虚电路)

文章目录一. 概述二. 数据交换方式① 电路交换② 报文交换③ 分组交换④ 分组交换 && 报文交换举例对比⑤ 三种数据交换方式比较总结三. 分组交换的两种方式① 定义传输单元名词辨析② 数据报③ 虚电路④ 数据报与虚电路的对比ppt截自王道考研B站教程 太不容易了&#…

【学习记录】网络层——IP数据报(格式与分片)

文章目录一. IP数据报格式二. IP数据报分片① 为什么要分片?② 标识、标志与片偏移③ 例题单位为nB小结PPT截自王道考研教程 tips:b是位,B是字节。 一. IP数据报格式 在本章节中,暂时不区分IP数据报与分组。 生存时间(Time To Live)&#xf…

自动驾驶学习笔记(二十二)——自动泊车算法

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 感知算法 定位算法 规划算法…

【学习笔记】 IPv4地址、NAT与子网掩码、子网划分

文章目录一. IP地址① 在例子中理解③ IP地址的分类④ 特殊IP地址⑤ 私有IP地址⑥ 各类IP的对比二. NAT三. 子网划分与子网掩码① 子网划分② 子网掩码例题1例题2③ 使用子网时路由的转发PPT截自王道考研教程 一. IP地址 可以理解成上网设备的身份证号唯一点分十进制&#xff…

java对象底层原存储结构图解_图解图库JanusGraph系列-一文知晓“图数据“底层存储结构...

大家好,我是洋仔,JanusGraph图解系列文章,实时更新~图数据库文章总目录:转载文章请保留以下声明:一:存储模式留言或私信我,邀请你加入“图数据库交流”微信群!1、图内容本文以下所有…

【学习笔记】网络层——无分类编址CIDR、ARP协议、DHCP协议和ICMP协议

文章目录一. CIDR① 定义② 构成超网③ 最长前缀匹配二. ARP协议① 定义② 例题三. DHCP协议① 主机如何获取IP②DHCP协议四. ICMP协议① ICMP差错报告报文类型(5种)数据字段不发送的情况② ICMP询问报告报文类型应用一. CIDR ① 定义 在点分十进制后加…

【学习笔记】网络层——IPv6:地址表示、IPv4的对比、IPv4过渡到IPv6、基本地址类型等

文章目录一.1) 为什么要有IPv62)数据报格式3)IPv4和IPv6的区别4)IPv6地址表示形式5)IPv6基本地址类型6)IPv4到IPv6的过渡方法一. 1) 为什么要有IPv6 CIDR、NAT只是缓解IPv4空间殆尽,治标不治本。 而IPv6可…

【学习笔记】网络层——网络层设备、移动IP、IP组播

文章目录一. 网络层设备1)三层设备的区别2)路由表与路由转发二. 移动IP① 定义相关术语:实际过程:三. IP组播① IP数据报的三种传输方式② IP组播地址③ IGMP协议与组播路由选择协议网际组管理协议IGMP组播路由选择协议一. 网络层…

larval+mysql+不等于_MySQL学习日记(19)比较运算符

比较运算符比较对象 比较运算符 子查询mysql> SELECT * FROM 运算符例子;----------| id | 数值 |----------| 1 | 1 || 2 | 3 || 3 | 5 || 4 | 7 || 5 | 9 || 6 | 11 || 7 | 13 |----------7 rows in set (0.01 sec)mysql> SELECT * FROM 运算符例子2;----------| id | …

【学习笔记】路由算法与路由协议:RIP协议与距离向量算法、OSPF协议与链路状态算法、BGP协议

文章目录一. 路由算法与路由协议概述① 路由算法的分类② 分层次的路由选择协议二. RIP协议和距离向量算法① RIP协议定义② RIP协议:交换对象、交换周期、交换内容③ 距离向量算法例题1例题2④ RIP协议的报文格式⑤ RIP协议:好消息传得快,坏…

【学习笔记】传输层:概述、UDP协议

文章目录一. 概述1)传输层的寻址与接口二. UDP协议1)定义2)首部格式3)UDP检验一. 概述 是主机才有的层次 两个协议:TCP & UDPTCP面向连接,UDP则不是QQ发一条信息(UDP);发一个大文件(TCP&am…

【学习笔记】传输层:TCP协议(报文段、连接管理{握手}、可靠传输、流量控制、拥塞控制)

文章目录一. 协议特点 & 报文段① 特点② 报文段首部格式二. TCP连接管理① 建立联系(三次握手)SYN洪泛攻击② 连接释放(四次挥手)三. TCP流量控制① 序号② 重传冗余ACK(快速重传)三. 流量控制① 定义…

空调调节 java_空调调节方式

只能手动对冷/热风的温度和风量进行粗略的分级调节,不能设定车内空调的具体温度。拨动控制板上的功能键对温度、风速、风向进行控制。手动空调的优点在操作简单明了,方便,几乎任何事情都在弹指间完成操作。对于风速和风向的调节随心所欲。自动…