滑动窗口协议如何实现流量控制
一、关于滑动窗口
1、什么是滑动窗口
滑动窗口是类似于窗口一样的东西,用来告诉发送端一次可以发送数据的大小。即窗口标记了接收端缓存区的大小;
2、滑动窗口出现的原因
(1)对每一个发送的数据段,都要给一个ACK确认应答,收到ACK后发送下一个数据段。这样做大大降低了传递效率。
(2)使用滑动窗口,可以一次发送多条数据,提高性能。
3、滑动窗口的一些知识点
(1)接收端将自己缓冲区大小放进TCP头部的“窗口大小”字段,通过ACK告知发送端;
(2)窗口大小是指无需等待确认应答而可以一次连续发送数据的最大值;
(3)操作系统内核为了维护滑动窗口,需开辟发送缓冲区,来记录哪些数据还没有被应答,只有确认应答后才从缓冲区删除;
(4)接收端发现自己缓存区快满了,将窗口大小设置更小发送给发送端,发送端收到后就会减慢发送速度;
(5)接收端发现自己缓冲区满了,将窗口大小设置为0,此时发送端停止发送数据,而是定期发送一个窗口探测数据段,让接收端告诉它的窗口大小;
二、关于流量控制
1、什么是流量控制
流量控制的目标是接收端,防止发送方发的太快,耗尽接收方资源,使接收方来不及处理;
流量控制的机制是丢包。
2、通过滑动窗口实现流量控制
通过设置滑动窗口大小,用ACK告知发送端自己缓存区还有多大,让发送端以合适的速度发送数据
三、关于拥塞控制
1、什么是拥塞控制
防止发送方发的太快,使网络来不及处理,导致网络拥塞。
2、拥塞控制出现的原因
流量控制虽然可以高效的传递大量数据,但是如果刚开始阶段就发送大量数据,可能导致网络拥塞
3、拥塞控制实现的机制
(1)慢启动
(2)加法增加:执行拥塞控制算法后,在收到对报文的确认后,就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,防止网络过早出现拥塞;
(3)乘法减少:出现一次超时(网络拥塞)就把慢开始门限值ssthresh设置为当前拥塞窗口值的0.5倍。
4、发送端如何判断网络出现拥塞(丢包)
(1)定时器超时(没有在规定时间内收到某个发出去的包ACK)
(2)收到三个重复的ACK
滑动窗口协议如何实现流量控制相关推荐
- 117.滑动窗口协议
滑动窗口协议是TCP流量控制的一种方法,提高吞吐量避免阻塞. 把待发送报文或者分组分成四种状态 1.已发送,已接收 2.已发送,未接收 3.可以发送,但还没发送 4.不可以发送 2跟3划分成一个窗口, ...
- TCP连续ARQ协议和滑动窗口协议
TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输. 一.ARQ协议 ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模 ...
- 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )
文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...
- 计算机网络之传输层:6、TCP流量控制、滑动窗口协议
传输层:6.TCP流量控制 实现流量控制的方法: TCP流量控制: 实现流量控制的方法: 停止等待协议和滑动窗口协议 TCP流量控制:
- TCP滑动窗口协议与流量控制
谈到TCP的滑动窗口协议与流量控制,便会想起当年面试时的场景.那时刚刚毕业,匆匆学了一点TCP的皮毛,仅仅是知道了TCP是面向连接的协议,以对每个报文都进行确认+超时重传的机制来保证端到端的可靠传输: ...
- WireShark 探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)
当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传 ...
- 三句话介绍清楚滑动窗口协议/GBN/SR
滑动窗口协议.GBN.SR之间不得不说的故事 首先我们来介绍什么是滑动窗口协议 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制, ...
- TCP 滑动窗口协议 详解
滑动窗口机制 (1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口. ...
- 计算机网络 TCP 滑动窗口协议 详解
滑动窗口机制解析: 1.窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口.发送窗 ...
- WireShark抓包 图解探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)
当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传输 ...
最新文章
- 自己做的一个小程序 可采集、导出、模板、配置
- 6,ORM组件XCode(撬动千万级数据)
- QML 信号和处理程序事件系统
- 使用Certbot 生成 https 证书
- linux sudo 必须属于用户ID0,sudo:/usr/bin/sudo 务必属于用户 ID 0(的用户)并且设置 setuid 位...
- UValive4195 Heroes of Money and Magic
- 尼克的任务(洛谷-P1280)
- 【Level 08】U05 Better option L6 Informative posts
- vscode中打开pdf文件_提取pdf文件中的文字
- redis的持久化(RDB与AOF)未完待续
- python识别_识别串口/ usb设备python
- cesium加载天地图矢量地图设置为暗黑系风格地图【独门秘方】
- View和ViewGroup的区别
- java毕设项目车牌号码识别系统开源了,很好玩,建议尝试
- PHP实现用户登录注册(详细教程)
- linux panic机制
- sampler采样器记录
- java常用英文单词发音_java常用英语单词(带音标)
- mysql查询最小分数_MySQL数分:简单查询
- OpenGL绘制罗纳尔多三维模型-Assimp库