滑动窗口和拥塞窗口简述

简介: 1、滑动窗口 滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发 送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。 TCP的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据。

1、滑动窗口

滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发

送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。

wps_clip_image-19458[4]

wps_clip_image-14056[4]

TCP的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据。

2、拥塞窗口

拥塞窗口也看做是发送端用来进行流量控制的窗口。

但是,实际上,TCP还必须应付互联网中的拥塞现象。拥塞是指一个或者多个交换点的数据报超载而导致时延剧烈增加的现象。为了控制拥塞,TCP使用了第二个窗口限制,即拥塞窗口限制。对于拥塞窗口大小的限制采用慢开始和乘法减小两种技术。

乘法减小的拥塞避免策略:一旦发现报文段丢失,就把拥塞窗口的大小减半(直到减至最小的窗口,窗口中应至少包含一个报文段)。

慢开始恢复:拥塞窗口随着一个确认的到达,拥塞窗口的大小每次增加一个报文段。

3、小结

慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestion window),记为cwnd。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个

报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告/滑动窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告/滑动窗口则是接收方使用的流量控制。

发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可以发送两个报文段。

当收到这两个报文段的ACK时,拥塞窗口就增加为4。这是一种指数增加的关系。

原文

http://lyjdamzwf.blog.163.com/blog/static/75206837201193373226/

http://hi.baidu.com/zhangkai008/item/31539213b259379598ce336e

http://blog.csdn.net/linweixuan/article/details/4353015

讲的非常详细http://blog.csdn.net/lzueclipse/article/details/5777283

http://blog.csdn.net/linweixuan/article/details/4365026

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
存储 算法 Java
【算法系列篇】滑动窗口-1
【算法系列篇】滑动窗口-1
|
2月前
|
存储 算法 容器
滑动窗口详解
本文介绍了滑动窗口算法及其应用。具体题目有: 1. 长度最小的子数组(LeetCode 209)。 2. 无重复字符的最长子串(LCR 016)。 3. 最大连续 1 的个数 III(LeetCode 1004)。 4. 将 x 减到 0 的最小操作数(LeetCode 1658)。 5. 水果成篮(LeetCode 904)。 6. 找到字符串中所有字母异位词(LeetCode 438)。 7. 串联所有单词的子串(LeetCode 30)。 8. 最小覆盖子串(LeetCode 76)。 每题详细分析了暴力解法及滑动窗口优化方案,附带代码实现。
63 3
滑动窗口详解
|
4月前
|
算法
算法 —— 滑动窗口
算法 —— 滑动窗口
37 2
|
6月前
|
算法
滑动窗口(一)
滑动窗口(一)
|
6月前
|
算法 索引 容器
滑动窗口(二)
滑动窗口(二)
|
6月前
|
算法 搜索推荐 测试技术
C++算法:滑动窗口总结
C++算法:滑动窗口总结
|
网络协议 算法 网络性能优化
TCP拥塞控制,拥塞窗口,携带应答,捎带应答,面向字节流,异常情况处理,最终完结弹
TCP拥塞控制,拥塞窗口,携带应答,捎带应答,面向字节流,异常情况处理,最终完结弹
|
缓存 网络协议 算法
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术。本文的摘要将深入揭示TCP/IP滑动窗口的工作原理,探讨其在确保数据准确性和实现高效通信方面的重要性。通过对滑动窗口大小、流控制和数据包确认机制的解析,我们将揭示如何通过优化窗口大小和流控制参数来提升网络性能。此外,我们还将介绍滑动窗口在解决网络拥塞和丢包问题方面的作用,以及如何通过精准的窗口调整实现零丢失、百分之百到达的数据传输。通过理解滑动窗口的工作原理,读者将能够更好地理解网络通信的内部机制,并为优化其应用程序的性能提供有价值的见解。
382 0
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
浅谈滑动窗口及个人理解
浅谈滑动窗口及个人理解
70 0
浅谈滑动窗口及个人理解
|
算法 索引
【算法】滑动窗口
【算法】滑动窗口
57 0