Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >3.4_1 流量控制、可靠传输与滑动窗口机制

3.4_1 流量控制、可靠传输与滑动窗口机制

作者头像
用户11290648
发布于 2025-06-13 07:26:17
发布于 2025-06-13 07:26:17
1380
举报
文章被收录于专栏:学习学习

从这节课开始,我们会探讨数据链路层的流量控制、可靠传输这两个功能如何实现?这两个功能的实现都和滑动窗口机制有关系。通过之前的学习,我们知道数据链路层位于物理层之上,两个相邻节点之间的数据链路层实体以帧为单位进行数据的传输。数据链路层为网络层提供服务,网络层会把IP数据报也就是分组交给数据链路层。数据链路层会把 IP 数据报封装成帧。紧接着,数据链路层会把帧交给物理层进行传输。

通过之前的学习,我们已经知道数据链路层是如何把网络层交给他的信息封装成帧的,以及为了实 现逻辑上无差错的链路,数据链路层需要提供差错控制的功能,差错控制的功能会解决帧内部的位错误。相比之下,可靠传输的功能主要是要解决帧错误,包括帧丢失、帧重复和帧失序这些问题。另一方面,当我们探讨差错控制功能的时候,我们说过,有的时候数据链路层只负责发现一个帧内部的比特错误,如果发现这种错误,会把帧直接丢弃,然后想办法让发送方重新传输这个帧。如果接收方丢弃了一个帧的话,事实上这个问题就回到了帧错误的范畴。通过接下来的学习,我们会知道怎么实现可靠传输管理,也就是怎么解决帧丢失、帧重复和帧失序这几类帧错误。只要解决了帧丢失的问题,事实上也顺道解决了在差错控制功能当中,丢弃帧带来的后果,这是可靠传输的功能。

另外流量控制这个功能我们之前也说过,这个功能的主要目的是要让数据的接收方控制数据的发送方,让它发送帧的速率别太快,以确保接收方来得及接收这些帧。无论是流量控制还是可靠传输,这两个功能的实现都与滑动窗口机制息息相关。这一点在我们的408大纲里边也体现的淋漓尽致。在408大纲数据链路层这个部分,它的第四个子标题就是流量控制和可靠传输机制,再往下的一个子标题指明了流量控制、可靠传输这两个功能与滑动窗口机制的关系,另一方面,考研大纲要求我们掌握停止等待协议、后退n帧协议以及选择重传协议这三种协议。这三个协议的规则不同,但是它们都可以实现流量控制以及可靠传输这两个功能。事实上,这三种协议都是利用了滑动窗口机制去实现相应的功能,只不过三者的窗口大小不同。接下来,我们会引入两个概念分别叫发送窗口和接收窗口。先大致说一下第一种协议,停止等待协议它的发送窗口大小为1,接收窗口的大小也是1,第二种协议,后退n帧协议的发送窗口大于1,而接收窗口的大小等于1,最后一种选择重传协议,它的发送窗口和接收窗口的大小都会大于1。接下来我们先引入发送窗口和接收窗口的概念,并且来体会这二者的作用。

假设网络中有两个节点,分别是发送方和接收方,这两个节点的数据链路层实体会以帧为单位进行数据的传输,假设现在发送方要给接收方依次发送A、B、C、D一直到L这几个帧。我们希望接收方能够按顺序依次接收这些帧。接下来我们先引入发送窗口的概念。 假设橙色的这个虚线框表示的就是发送窗口,我们用WT来表示。我们规定,只有落在发送窗口之内的这些帧,是当前允许被发送的帧。另外接收方这边我们也会设置一个接收窗口,我们用WR来表示。只有落在接收窗口内的这些帧,才允许被接收。我们先解释一下WT和WR的含义,这的W 就是Window,也就是指窗口的意思,T的含义来自Transmit,它具有发送传输的含义,接收窗口的 R,它是来自于Receive,它有接收、收到的含义。在接下来的讲解中,我们会经常使用WT、WR这种简记的方式。所以我们首先要知道T和R分别表示的是发送窗口和接收窗口。从这个图示中可以看到窗口是有大小的,上面这个发送窗口的大小等于四,它可以框住一、二、三、四,四个帧。下面这个接收窗口大小等于二,可以框住两个帧。刚才我们说发送窗口内的这几个帧是当前允许被发送的,所以发送方的数据链路层,现在可以把A、B、C、D几个帧都发给接收方,我们不妨假设发送方首先发了A、B、C这几个帧。由于A和B两个帧对于接收方而言是落在了它的接收窗口之内的。因此,接收方可以把A、B两个帧给接收下来。另一方面,由于C这个帧落在了接收窗口之外,所以接收方收到这个帧的时候会直接把这个帧给丢弃。我们再回到发送方,现在对于发送方而言,由于E这个帧落在了发送窗口之外,所以E这个帧此时暂时不允许被发送。通过这个简单的例子,我们可以初步的感受发送窗口和接收窗口的作用。同时,我们也能够体会到窗口大小这个概念,它背后的含义。

接下来故事是这样的,由于接收方已经收到了A、B两个帧,接下来他是不是可以继续接收后面的几个帧了,所以接收方的滑动窗口会向右滑动。同时,接收方会使用某一种机制来控制发送方的这个发送窗口一起往后滑动。也就是说,发送窗口向右滑动的这个动作是由接收方控制和拿捏的。接收方可以通过确认机制去控制发送方的窗口向前滑动。而刚才我们说过,只有落在发送窗口之内的这些帧,当前是允许被发送的。因此,接收方控制了这个发送窗口的滑动,也就顺理成章的控制了这个流量,或者说控制了发送方发送帧的速度。确认机制到底是怎么回事?我们会通过之后的学习进一步展开探讨。

在这个视频中,我们先对滑动窗口机制有一个大致的了解。想要实现流量控制和可靠传输这两个功能,除了滑动窗口机制之外,还有刚才提到的确认机制以及重传机制去相互配合,另外为了支持上面这三种机制的正确运行。我们还需要给每个帧进行编号。接下来我们要探讨的停止等待协议后退 n帧协议和选择重传协议,这三个协议在我们刚才提到的滑动窗口机制、确认机制、重传机制、帧编号,这四个方面的特性会有所不同。因此,在接下来的学习中,我们会重点关注每种协议的这四个方面。基于这个框架去学习会更清晰一些。

以上就是这个视频的全部内容。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3.4.1 流量控制、可靠传输与滑动窗口机制
流量控制涉及对链路上帧的发送速率的控制,以使接收方有足够的缓冲空间来接受每一个帧。例如,在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。
week
2018/08/24
8110
【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )
发送方 发送数据 速率高 , 接收方 接收数据 能力差 , 造成传输出错 , 数据链路层 的 负责进行流量控制的工作 ;
韩曙亮
2023/03/28
2K0
计算机网络:流量控制与可靠传输机制
在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。
timerring
2022/11/16
2K0
计算机网络:流量控制与可靠传输机制
流量控制&可靠传输机制&停止-等待协议
注:最后有面试挑战,看看自己掌握了吗 文章目录 链路层 流量控制 和传输层的流量控制区别 停止-等待协议 为什么要有停止等待协议 无差错情况 滑动窗口协议 后退N帧协议GBN 选择重传协议SR 可靠传输 流量控制 🍃博主昵称:一拳必胜客 特别鸣谢:木芯工作室 、Ivan from Russia ---- 链路层 流量控制 较高发送速度和较低接受能力的不匹配 流量控制也是数据链路层的一项重要工作 和传输层的流量控制区别 传输层—端到端流量控制-------接收端发送给一个窗口公告 链路层-----
20岁爱吃必胜客
2022/11/21
4310
信道,流量控制,滑动窗口概念,ARQ,RTT
有线信道以导线为传输媒质,信号沿导线进行传输,信号的能量集中在导线附近,因此传输效率高,但是部署不够灵活。这一类信道使用的传输媒质包括用电线传输电信号的架空明线、电话线、双绞线、对称电缆和同轴电缆等等,还有传输经过调制的光脉冲信号的光导纤维。如图 3为常见的有线通信方式,通常每个家庭的固定电话就是通过有线信道进行通讯。
zhangjiqun
2024/12/16
1940
【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★
① 可靠性服务 : “数据链路层” 在 物理层 提供的服务的基础上 , 提供可靠性服务 ;
韩曙亮
2023/03/28
3.4K0
【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★
【TCP】核心机制:滑动窗口、流量控制和拥塞控制
有一类算法题,就是通过滑动窗口的思想来解决的,算法中的“滑动窗口”借鉴自 TCP 的滑动窗口
椰椰椰耶
2024/09/20
2890
【TCP】核心机制:滑动窗口、流量控制和拥塞控制
计算机网络笔记(7)
发送窗口大于1,接收窗口等于1。出错时重传帧数多,适用于信道质量好,出错率少的情况。
gojam
2019/05/14
6730
计算机网络(三)———数据链路层(w字最强总结)
计算机网络,操作系统,数据结构,算法是计算机专业所必须要学的4件套,本文将详细的叙述计算机网络——数据链路层和网络层的相关知识,由于篇幅原因,打算分为4章节进行写作,建议收藏后慢慢品读
秋名山码神
2022/12/13
7930
计算机网络(三)———数据链路层(w字最强总结)
数据链路层协议ARQ
OSI-RM体系结构中,流量控制和差错控制是在数据链路层实现的。 差错控制: 在信息传输过程中,由于种种原因,可能发生“1”变为“0”或“0”变为“1”的情况,这就是出了差错。差错控制可以通过引入奇偶校验码、汉明码、循环冗余校验码等方法实现。在下面的流量控制中,实际上也包含了差错控制功能。 流量控制: 流量控制是协调链路两端发送站和接收站之间的数据传输流量,以保证双方的数据发送和接收达到平衡的一种技术。 在发送方和接收方的数据链路层分别有一个发送缓存和接收缓存,若进行全双工通信,双方都要同时设置发送缓存和接
SuperHeroes
2018/05/30
1.6K0
计算机网络面试题总结
相对与上一个版本的计算机网路面试知识总结,这个版本增加了 “TCP协议如何保证可靠传输”包括超时重传、停止等待协议、滑动窗口、流量控制、拥塞控制等内容并且对一些已有内容做了补充。
全栈程序员站长
2022/08/26
3810
计算机网络面试题总结
3.1数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
week
2018/08/24
6640
搞定计算机网络面试,看这篇就够了(补充版)
相对与上一个版本的计算机网路面试知识总结,这个版本增加了 “TCP协议如何保证可靠传输”包括超时重传、停止等待协议、滑动窗口、流量控制、拥塞控制等内容并且对一些已有内容做了补充。
用户2164320
2018/08/17
8900
计算机网络:数据链路层功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
timerring
2022/11/13
6150
计算机网络:数据链路层功能
快速过一遍计算机网络
学习计算机网络时我们一般采用折中的办法,也就是中和OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。
Java3y
2019/05/23
8680
【Java面试总结】计算机网络
我们在学习的时候,一般采用折中的办法,也就是中和 OSI 与 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简介又能将概念阐述清楚。
Rochester
2020/09/10
8660
1.2.3_1 OSI参考模型
在接下来的学习中,我们会简要了解OSI参考模型和TCP/IP模型这两种最常见的计算机网络体系结构。
用户11290648
2025/07/23
940
1.2.3_1 OSI参考模型
36 张图详解计算机网络知识点
速率:bps=bit/s 时延:发送时延、传播时延、排队时延、处理时延 往返时间RTT:数据报文在端到端通信中的来回一次的时间。
公众号: 云原生生态圈
2022/02/16
1.2K0
36 张图详解计算机网络知识点
JavaWeb 基础----TCP/UDP协议详解
最主要的功能:传输比特流。利用传输介质为数据链路层提供物理连接,实现比特流的传输。让上一层的数据链路层传送数据是尽可能屏蔽掉传输介质和物理设备的差异。
RAIN7
2022/04/18
5230
JavaWeb 基础----TCP/UDP协议详解
计算机网络-概述
各层间传输数据的时候,把第n+1层收到的PDU作为第n层的SDU,加上PCI后进行发送。
千灵域
2022/06/17
1.5K0
计算机网络-概述
推荐阅读
相关推荐
3.4.1 流量控制、可靠传输与滑动窗口机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档