​数据链路层——流量控制可靠传输机制 ​

news2024/12/26 9:24:13

https://www.cnblogs.com/nekodream/p/18048072

数据链路层的流量控制

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

数据链路层流量控制手段:接收方收不下就不回复确认。

传输层流量控制手段:接收端给发送端一个窗口公告,高速发送端还能发多少

流量控制的方法

  • 停止-等待协议:每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。

  • 滑动窗口协议:发送窗口内的帧可以逐个发送,但是只有受到对应接受窗口的确认帧,发送窗口才会后移

    image-20240229162614022

    所以停等协议可以理解为发送窗口只有一位的滑动窗口

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

image-20240229162743850

可靠传输、滑动窗口、流量控制区别

可靠传输:发送端发啥,接收端收啥。

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

滑动窗口解决1、可靠传输(发送方自动重传) 2、流量控制(收不下就不给确认,想发也发不了)

1、停等协议

停等协议究竟放在哪一层?因为技术进步,链路层很靠谱了,所以可以放到传输层里。

为什么要有停等协议

除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。

丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

研究停等协议的前提

  • 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)

  • 因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。(究竟是在哪一层?)

  • “停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

停等协议——无差错情况

image-20240229163337419

确认帧:ACK

停等协议——有差错情况

1、数据帧丢失或检测到帧出错——超时自动重传

超时计时器:每次发送一个帧就启动一个计时器。设置的时间应该比往返传播时延RTT更长一些

image-20240229163531500

为了重传顺利:

  • 发完一个帧后,必须保留它的副本。
  • 数据帧和确认帧必须编号。

2、确认帧(ACK)丢失——超时重传,接收方丢弃重复帧

image-20240229163732082

3、确认帧(ACK)迟到——丢弃重复的ACK

第一个ACK0,收下就丢弃。因为已经收到过一个ACK0了!!!

image-20240229224146011

性能分析

简单!

但是信道利用率太低!

利用率计算

信道利用率

什么是信道利用率?

发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

image-20240229225112159

image-20240229224836005

发送时延

往返时延

确认时延

信道利用率:

image-20240229224915372

信道吞吐率

信道吞吐率=信道利用率*发送方的发送速率

例题:一个信道的数据传输率为4kb/s ,单向传播时延为30ms ,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为

设数据帧的长度为L比特,则发送方发送全部的数据需要时间:L/4。再除以总时长:发送时间+往返时间(2*30)

image-20240229225228754

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

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

相关文章

UEFI——Variable的使用

一、Variable简介 Variable Services是Runtime Services的一部分,提供关于variable的一些服务,Variable被定义为键值对,由标识信息加上属性(键)和任意数据(值)组成。用在固件部内部和固件与操作…

JAVA工具----自动化API文档APIFOX

前言:想必大家在后端开发的过程过,最烦的就是写接口文档了。然而如果是对接前写,就更加烦躁,可能之前写好的接口文档全都要改,还会占用大量的时间,一般的小团队也耗不起这样的费时。那么使用Swagger和侵入式…

如何查询小红书、抖音等多平台品牌声量数据?

现在很多企业都需要掌握小红书、抖音、公众号、微博等各个社媒平台上,企业品牌声量趋势情况,行业内容占有率如何,搜索指数高低等等,借此来判断企业的品牌影响力、行业地位以及最近的活动/事件等营销效果。那么跨平台查询是比较麻烦…

一篇清楚的明白什么是场外个股期权?

今天带你了解一篇清楚的明白什么是场外个股期权?场外个股期权是一种非标准化的期权合约,在金融机构和投资者之间定制进行。它具有更大的灵活性,但也伴随着较高的信用风险和复杂性。适用于对冲风险、增强收益和设计结构性产品等多种策略。 场…

提取音频转mp3的工具哪个好?这六个新手必备

各位音乐爱好者们!是不是有时候你会听到一首歌,觉得它的中间伴奏简直太棒了,想要把它单独提取出来,却发现无从下手呢? 别担心,现在有了提取音频在线工具,这些难题都能迎刃而解。下面&#xff0…

Jmeter_循环获取请求接口的字段,并写入文件

通过JSON提取器、计数器、beanshell,循环读取邮箱接口的返回字段,筛选出flag为3的收件人,并写入csv文件。 1、调用接口,获取所有的邮件$.data.total.count; 2、beanshell后置处理total转换成页码,这里是227…

STM32 HAL freertos零基础(二)-通过STM32CubeMX配置Freertos后在程序中进行任务创建,便于任务管理与识别。

1、简介 通过STM32CubeMX配置Freertos后,建立的任务都在freertos.c文件中,不易于观察,并且每次生成新任务还需要打开STM32CubeMX,本次教程讲解一种通过STM32CubeMX配置Freertos后在程序中进行任务创建,起到类似添加传…

官宣:28家重点实验室,获5750万元资金支持!

【欧亚科睿学术】 点击关注:关注GZH【欧亚科睿学术】,第一时间了解科研最新动态! 根据省级财政专项资金管理办法有关规定,拟安排2024年省重点实验室28项,拟安排省财政资金5750万元。现予以公示: 本文来源…

企业如何治理“两高一弱”?

攻防演练已经落幕,“两高一弱”专项整治依旧如火如荼。针对高危端口、高危漏洞和弱口令这三大网络环境中最常见的关键安全挑战,公安机关及各行业主管部门高度重视,要求各级组织及时发现并消除网络和信息系统“两高一弱”问题,实现…

照片删除了怎么恢复回来?要学会这些数据恢复方法

在数字化时代,照片已经成为我们记录生活、珍藏回忆的重要载体。然而,有时由于误操作或其他原因,我们可能会不小心删除了重要的照片。面对这种情况,很多人会感到焦虑和无助。幸运的是,有多种方法可以帮助我们恢复删除的…

一次性了解Neo4j图形数据库

Neo4j高性能的NoSQL图形数据库 它将结构化数据存储在网络(从数学角度叫做图)上而不是传统的表格中。 Neo4j是一个嵌入式的、基于磁盘的、具备完全事务特性的Java持久化引擎。 但它在数据表示上采用了图形模型,即数据以节点(Nod…

Facebook与区块链的结合:推动社交平台的去中心化

随着区块链技术的崛起,全球各大科技公司纷纷探索其应用潜力。Facebook作为全球领先的社交媒体平台,也在区块链领域中迈出了关键一步,试图通过去中心化技术来提升用户体验并应对传统社交平台所面临的挑战。本文将探讨Facebook与区块链结合的潜…

vue elementUI更改Checkbox 多选框禁用状态下文本颜色

最近在做vue项目中,根据需求要改变CheckBox禁用状态下的文本颜色,原因是默认的文本颜色太浅,要自定义颜色 找了半天终于解决问题 记录一下 话不多说,上代码 希望能够帮到你~ 点赞加关注,下次再找不迷路~~~~

儿童自闭症康复:找到孩子的微小进步,看见希望

星贝育园的康复之旅 在自闭症儿童康复的漫长道路上,每一个微小的进步都是家长心中的巨大希望之光。星贝育园,作为全国领先的自闭症康复机构,以其独特的教育理念、专业的师资团队和显著的康复效果,为无数家庭带来了希望和改变。 …

ICC2:对指定信号线设置ndr rule

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接:

从程序员到外卖员,再到AI绘画大佬:我的逆袭之路

一、行业之卷,失业之痛 大家好,我是一名初代程序员。曾几何时,我也在互联网行业的光环下,享受着高薪和尊敬。然而,随着行业竞争加剧,就业环境变得越来越差,我最终没能逃脱被大厂裁员的命运。 …

[STM32]从零开始的STM32串口使用教程(小白向)

一、我们为什么需要串口? 在嵌入式通信中,我们常常把像SPI,USART,I2C这些 串行通信接口,统称为串口。但是在我们的日常使用中,我们说的串口通常是指的USART接口。下面我们就来了解USART接口,USA…

在 RT-Thread 上使用单色屏 UI 库 - U8G2

U8g2 是一个用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,并支持如SSD1306等多种类型的OLED驱动。 U8g2的官方开源地址为:https://github.com/olikraus/u8g2 由于官方已经对 RT-Thread 做了一定的适配,并且存在于 RT-Thread 的软件包…

用Python实现时间序列模型实战——Day 15: 时间序列模型的选择与组合

一、学习内容 1. 模型选择的标准与方法(如 AIC、BIC) 在时间序列建模中,模型的选择是非常重要的,常用的模型选择标准包括 AIC (Akaike Information Criterion) 和 BIC (Bayesian Information Criterion)。 AIC (Akaike Informat…

U盘管控软件|禁止拷贝怎么解决?防止U盘拷贝的6款专业软件推荐

某公司员工将U盘插入公司电脑拷贝了重要的研发资料,随后该员工跳槽至竞争对手公司,导致公司商业机密外泄,造成了巨大的经济损失。 随着移动设备的普及,U盘的使用为工作带来了便利,但同时也增加了数据泄密的风险。这一案…