数据链路层(三):流量控制和链路管理

目录

  • 1 流量控制和链路管理
    • 1.1 流量控制介绍
      • 1、什么是流量控制
      • 2、流量控制的功能和方法
    • 1.2 停止等待
    • 1.3 滑动窗口
      • 1、滑动窗口
      • 2、发送方滑动窗口
      • 3、接收方滑动窗口
      • 4、滑动窗口的流量控制使用
        • 滑动窗口如何实现流量控制的
        • 为什么滑动窗口的大小比模数小1
        • 滑动窗口控制流量采取的措施
        • 流量控制使用注意事项
    • 1.4 链路管理

1 流量控制和链路管理

1.1 流量控制介绍

1、什么是流量控制

在这里插入图片描述

发送发给接受方发送数据,如果发送方每1秒发送200个包,接收方只能1秒处理100个包。
会出现什么现象呢? 接收方会在缓存中大量缓存接受的包,直到缓存区满了。
满了之后会怎么样? 满了之后就会出现最不能容忍的情况,缓冲区溢出,也就是丢包的现象。
所以接收方一定要在缓冲区快满的时候通知发送方让他降低发送速度,这就是链路层的流量控制。

2、流量控制的功能和方法

流量控制的功能:协调发送端和接收端的数据流量,确保发送的数据不会覆盖接受实体已接收的数据。
常用的流量控制的方法有两种:

  • 停止等待(stop-and-wait)
  • 滑动窗口(Sliding Window)

1.2 停止等待

停止等待的流量控制机制如下:

  • 发送方每发送一个数据帧,就会等待接收方返给一个确认帧(ack),只有当发送方接收到ack之后才会继续发送下一帧,否则继续等待。
  • 这种发送和等待交替的过程不断重复,直到发送方发送了一个传输结束(EOF)帧,完成一次数据传输。
    在这里插入图片描述

停止等待的流量控制的

  • 优点:控制简单
  • 缺点:效率较低。如果发送方和接收方设备之间的距离较长,则每传输一帧需等待ACK帧所花费的时间将大大增加总传输时间,因此传输速度会很慢

1.3 滑动窗口

滑动窗口机制,发送方可以发送多个帧等待接收方确认,接收方只对其中一些帧进行确认,使用一个ACK帧来对多个数据帧的接收进行确认。

1、滑动窗口

滑动窗口:是发送方和接收方创建的一个额外缓冲区(包括发送方的发送窗口和接收方的接收窗口),窗口可以存储若干数据帧,窗口在数据传输过程中根据控制向前滑动,从而控制数据传输过程,并且发送方在收到接收方的确认之前能够传输的帧数目也进行了限制。
帧以模n方式标识,即帧编号从0 到n-1,如:n=8
滑动窗口大小为n-1,即该窗口大小为 7。滑动窗口大小不能覆盖整个窗口。
在这里插入图片描述

发送方:最多发送 n-1 个帧。只要接收方不满就可以继续发送数据
接收方:最多存储 n-1 个帧。可以不等窗口填满对任一数据进行确认。
在这里插入图片描述

2、发送方滑动窗口

发送窗口用来对发方进行流量控制,窗口大小指明了在收到对方ACK之前最多可以发送数据帧数,窗口内的帧是可以连续发送的。
发送方滑动窗口机制:发送方传输开始前,发送方窗口有 n-1 个帧。随着数据帧的发送,窗口的左边界向内移动,窗口不断被缩小。例如在接收到最近一次确认帧来已经发送了3 帧,那么窗口中剩余的帧数是n-1-3。一旦收到一个确认帧。窗口右边界根据确认帧确认的数据帧个数对窗口自动进行相同数目的扩展。

在这里插入图片描述
注意:发送方将数据帧发送出去时,滑动窗口左边界向左收缩窗口。而当收到确认帧时,发送方滑动窗口右边界向右扩展

3、接收方滑动窗口

接收窗口:可以控制哪些数据帧可以接收,只有到达的数据帧的序号在接收窗口之内的才可以被接收,接收过的数据帧将被丢弃。正常情况下,接收方收到一个有序且无差错的帧后,接收窗口向前滑动,并准备接收下一帧,这时会向发送方发出一个确认。确认已经接收的帧以及下一次要接收的帧。
发送确认的方式有两种:

  • 累计确认
  • 捎带确认(捎带确认是在双向数据传输情况下,将确认信息放在自己也要发送的数据帧的首字段中捎带过去。)

接收方滑动窗口机制:接收方在传输开始的时候,接收方窗口有n-1个帧空间但不一定包含n-1个帧。接收数据帧后,接收方窗口会不断缩小。它表示发送确认帧前窗口中还可接收的帧的数目(剩余的帧数)。一旦发送完一个确认帧,窗口大小就会按确认的帧数量自动扩展。
在这里插入图片描述

注意:接收方接收数据帧后,接收方滑动窗口左边界向左收缩窗口。而当发送确认帧时,接收方滑动窗口右边界向右扩展

4、滑动窗口的流量控制使用

滑动窗口如何实现流量控制的

发送方收到接收收方的确认后,发送窗口右边界向右移动,同时新的帧会到达发送窗口可以被发送,已被确认正确收到的帧移到了窗口的外面。所以接收方的确认作为一个依据,控制发送方发送窗口向前滑动。接收方可以根据自己的接收能力来控制确认帧的发送,从而实现传输流量的控制。
由于滑动窗口中使用了确认机制,因此它也兼有差错控制的功能。

为什么滑动窗口的大小比模数小1

为了避免确认帧中包含的编号出现二义性。

什么意思呢?假设n=8,窗口大小也为8,如果这时发送了0号帧,又收到编号1的确认帧(ACK 1)。发送方就开始扩展窗口,并继续发送1、2、3、4、5、6、7 和0 号帧。当此时发送方又收到ACK 1,它就不知道是因为网络问题而重发的上一次的ACK 1,还是最近发送的八帧的新的ACK 1。因此将窗口大小设定为7(即 n-1)。

滑动窗口控制流量采取的措施

滑动窗口中,控制传输流量主要采取以下措施:

  • 1.设置合适的发送窗口大小,一般不超过接收方接收缓冲区的大小。这样发送方发送的数据就不容易淹没接收缓冲区。
  • 2.可变滑动窗口。由接收方根据当前接收缓冲区的大小决定发送方发送窗口的大小,并通知发送方改变发送窗口的大小,TCP协议流量控制就使用这种方式。
  • 3.接收方根据目前可用接收缓冲区的情况,决定发送确认的时机,使发送流量与接收缓冲区的可用容量匹配。
流量控制使用注意事项

流量控制使用注意:

  • 流量控制机制不仅适合于局域网,也适合于城域网和广域网。比如:以太网中帧的传输、TCP协议等也使用这些流量控制机制。
  • 流量控制并不只在数据链路层中进行,在传输层也有流量控制,只是控制对象不同。
    • 数据链路层中控制的是LAN中两个节点之间,点到点连接的数据传输流量;
    • 传输层控制的是WAN中从源端到目的端,传输路径中需要经过许多中间节点的端到端的流量。

1.4 链路管理

数据链路层的链路管理主要包括链路的建立,维持和释放。

  • 链路的建立:链路两端的节点通信前,数据发送方首先确认接收方是否已处在准备接受的状态,为此,发送方可能会发送一个询问帧ENQ(enquiry),并与接收方交换一些必要的信息以对帧序号进行初始化,然后才能建立连接。
  • 维持:在传输过程中需要要维持之前建立的连接。如果出现差错,需要重新初始化,重新自动建立连接,传输完毕后则会释放连接
  • 释放:释放连接时,传输的正确性需要被确认,接收方会发一个确认应答ACK,否则发送一个否定应答NAK。
    链路管理功能主要用于面向连接的服务

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

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

相关文章

【SpringBoot3+Mybatis】框架快速搭建

文章目录 GitHub 项目一、依赖二、 配置文件三、启动类四、SpringBoot3兼容Druid报错五、工具类5.1 结果封装类5.2 解决枚举类5.3 MD5加密工具类 GitHub 项目 springboot-part——springboot-integrate-07 Mybatis-plus版完整CRUD项目文档记录: 【SpringBoot3Myba…

“神器”巩膜镜,为屈光不正及难治角膜病患者带来希望!

“我不想再戴回框架眼镜了,但是由于角膜疾病问题,我曾戴普通隐形眼镜和RGP都会出现极强的异物感,非常不舒服!现在我该怎么办呢?”四川眼科医院门诊,张女士疑惑地问到。 28岁的张女士是一名圆锥角膜患者&am…

Pixelmator Pro:专业级图像编辑,触手可及mac版

Pixelmator Pro是一款功能强大的图像编辑软件,专为Mac操作系统设计。它拥有直观的界面和丰富的工具,能够满足用户各种图像处理需求。 Pixelmator Pro软件获取 首先,Pixelmator Pro支持多种文件格式,包括JPEG、PNG、GIF、BMP、TIF…

【包远程安装运行】SpringBoot+Mysql实现的美食分享菜谱制作平台+演示视频+开发文档(论文模板)

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的美食分享菜谱制作平台系统,该系统分为前台和后台,多用户分享平台。主要实现了 除脚手架功能以外下面是系统的功能: 前台普通用户:注册、登录、首页、美食…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(三)—— 随机梯度下降

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章中,咱们将使用Keras和TensorFlow…

GPT神器级插件Code Interpreter

自去年 3 月份以来,人们对 GPT-4 API 的兴趣激增,“有数百万开发人员请求访问”。OpenAI 在一篇博客文章中,分享了使用 GPT-4 正在进行的一系列令人兴奋的创新,并阐明了未来的愿景:未来基于聊天的大模型可以用在任意的…

每秒批量插入10000条数据到MySQL中,资源消耗(带宽、IOPS)有多少?

文章目录 🔊博主介绍🥤本文内容起因代码资源情况改造 📢文章总结📥博主目标 🔊博主介绍 🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、…

LeetCode每日一题[c++]-322.零钱兑换

题目描述 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无…

照片变动图怎么操作?一招在线转换

GIF动画是一种特殊的图像文件格式,它可以在一张图像中显示多个图像帧,并以循环播放的方式展示,从而实现动态效果。由于GIF格式的广泛支持和较小的文件大小,它成为了互联网上常见的动画格式之一。想要制作gif动画图片可以使用Gif制…

链动2+1模式 完全合法合规 不存在传销问题!!

在商业经营中,营销策略的巧妙运用对于提升产品销量和扩大品牌影响力至关重要。然而,企业在制定和执行营销策略时,必须严格遵循法律法规,以免陷入法律风险。本文将着重探讨链动21模式的法律要素,以论证其合规性。 一、链…

穿越地心:3D可视化技术带你领略地球内部奇观

在广袤无垠的宇宙中,地球是一颗充满生机与奥秘的蓝色星球。我们每天都生活在这颗星球上,感受着它的温暖与恩赐,却往往忽略了它深邃的内部世界。 想象一下,你能够穿越时空,深入地球的核心,亲眼目睹那些亿万年…

nodeJs中实现连表查询

nodeJs中实现连表查询 router.post(/getOrder, async function(req, res, next) {let userId req.body.phone;let sql select * from orders where userId?;let orders await new Promise((resolve, reject) > {connection.query(sql, [userId], function(error, resul…

MapReduce配置和Yarn的集群部署

一、集群环境,还是如下三台服务器 192.168.32.101 node1192.168.32.102 node2192.168.32.103 node3 二、YARN架构 YARN,主从架构,有2个角色 主(Master)角色:ResourceManager从(Slave&#x…

【Redis教程0x04】详解Redis的4个高级数据类型

引言 在【Redis教程0x03】中,我们介绍了Redis中常用的5种基础数据类型,我们再来回顾一下它们的使用场景: String:存储对象、url、计数、分布式锁;List:消息队列;Hash:存储对象、购…

ChatGPT论文指南|ChatGPT论文写作过程中6个润色与查重口诀!【建议收藏】

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼: ChatGPT论文指南|ChatGPT论文写作过程中6个润色与查重口诀!【建议收藏】 目录 1.润色与查重口诀 2.AIPaperPass智能论文写作平台 论文完成…

商机在线互动营销— —Pushmall智能AI数字名片

商机在线互动营销— —Pushmall智能AI数字名片 开发计划 2024年2月开发计划: 1、优化名片注册、信息完善业务流程; 2、重构供应信息、需求信息发布。 3、会员名片地理位置服务优化‘ 4、企业名片:员工管理优化 5、CRM客户资源管理设计。 已…

基础小白十天学会linux------linux的指令

1.图形界面使用shell命令 2.字符界面使用shell命令 3.shell命令一般格式:命令名选项参数,命令名一般是英文全称的缩写,选项前导符以-、--开头,还可以没有前导符 字符界面截屏要求: 1) 启动计算机,以超级用…

新手摄影笔记-基础知识-按键和参数说明【1】

1. 相机正反面 2.顶部 3.屏幕 4.光圈、快门、感光度 什么是景深呢?景深就是照片中清晰和模糊的范围,也就是前后的距离。景深越深,意味着照片中清晰的范围越大,前后的距离越长,背景越清晰。景深越浅,意味着照…

加密算法概述:分类与常见算法

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在信息安全领域,加密技术是保护数据不被未授权访问的关键手段。Java作为一种广泛使用的编程语言,提供了丰…

【自然语言处理七-经典论文-attention is all you need】

然语言处理七-经典论文-attention is all you need 摘要原文译文小结 1:引言原文译文小结 2:背景原文译文小结 3:模型架构原文译文小结 3.1 编码器和解码器原文译文小结 3.2 注意力原文译文小结3.2.1 缩放点积注意力原文总结 3.2.2 多头注意力…