业务开发算法 50 讲
黄清昊
Hashdata 数据库内核工程师,LeetCode 高赞答主,公众号微扰理论作者
23292 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
业务开发算法 50 讲
15
15
1.0x
00:00/00:00
登录|注册

20|滑动窗口:TCP是如何进行流量控制和拥塞控制的?

是否有更好的解决方式
可能存在的问题
优于超时重传
连续3次收到相同ACK
快速恢复
拥塞发生
拥塞避免
慢启动
未收到但可以接收
已接收并确认
超出接收方窗口范围
未发送但在接收方窗口范围内
已发送未收到ACK
已发送且收到ACK
快速重传机制
慢启动门限ssthresh
拥塞窗口动态调整
拥塞控制算法
拥塞窗口CWND
零窗口和零窗口定时器
接收端窗口分为两部分
发送端窗口分为四部分
发送端和接收端各自维护窗口
防止接收方处理不过来
控制流量
ACK机制保证可达性和顺序
接收方缓存未被进程消费的包
发送方缓存未收到ACK的包
适用于内网或对时延要求高的场景
轻量级
不保证顺序和可达性
面向无连接
提供流量控制和拥塞控制
四次挥手断开连接
三次握手建立连接
状态记录
字节流传输
可靠有序传输
面向连接
思考题
拥塞控制
滑动窗口
TCP包的发送
UDP协议
TCP协议
TCP流量控制和拥塞控制

该思维导图由 AI 生成,仅供参考

你好,我是微扰君。
过去几讲,我们一起讨论了最短路算法在网络中的应用,学习了从 Dijkstra 算法思想发展而来的链路状态选路算法,以及从 Bellman-Ford 算法思想发展而来的距离矢量算法。
链路状态算法的每个节点,通过通信,都构建了完整的网络拓扑图,然后根据 Dijkstra 算法独立地计算最短路径,并依据计算结果维护动态路由表;距离矢量算法,则是通过节点间的通信了解邻居到每个不同节点的距离,以此作为选路依据,所以链路上传输的压力比链路状态算法小了很多,但也因为没有全局的信息,网络出现故障时很容易陷入无穷计算问题。
在计算机网络发展以来,类似单源最短路问题的图论算法应用,除了这两大经典算法,其实还有很多,比如最小生成树问题、网络流问题等等,它们都在不同的场景下发挥着巨大的作用,但我们要知道,图论算法也只是解决了网络传输中和“拓扑结构”相关的一小部分问题。
这些算法并不足以让我们的数据在环境复杂的网络上稳定传输,也并没有办法去控制流量传输的快慢,来避免接受方对数据处理不过来,或者网络上数据包太多产生拥塞的情况。为了解决传输本身的问题,自然也有一些经典的算法思想和协议被提出来,TCP 中的滑动窗口、拥塞窗口就是经典的例子。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

TCP协议通过滑动窗口和拥塞控制实现流量控制和拥塞控制,确保可靠有序的传输能力。滑动窗口机制用于控制流量,防止接收方处理不过来消息,而拥塞控制算法则用于处理网络上数据包太多的情况,以避免网络中出现拥塞。发送端的窗口根据发送、接收ACK和接收方通告的处理范围划分为四个部分,以兼顾效率和可靠性。接收端的窗口主要分为已确认的数据、未收到但可以接收的数据和不可接收的区域,通过滑动窗口实现流量控制。拥塞控制机制通过拥塞窗口动态调整发送范围,采用慢启动、拥塞避免、拥塞发生和快速恢复四个算法来调整窗口大小,以应对网络拥塞情况。整体而言,TCP协议通过滑动窗口和拥塞窗口实现了流量控制和拥塞控制,确保了可靠且高效的数据传输。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《业务开发算法 50 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • kimoti
    连续三次收到同样的ACK说明还能收到ACK,表明网络还不是那么拥堵,这样就不止于把拥塞窗口调整到0

    作者回复: 嗯嗯 理解正确

    2022-01-25
    2
  • 西门吹牛
    有空能给搞一波关于 BBR 的拥堵算法加餐吗
    2022-01-30
    1
  • 那时刻
    收到三次ack进行重传,是确认网络可用的前提下重传,如果直接超时重传的话,网络的确糟糕,会增加额外的数据包,从而升级网络的压力。 或许可以考虑柔性的策略,而不是硬生的三次ack重传。比如滑动平均来决定是否重传
    2022-01-25
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部