TCP协议:拥塞控制与流量控制的区别

一、核心区别

我们可以举个简单的例子,如果网络是一条高速公路,那么流量控制 关心的是接收方停车场的容量,解决的是点对点的问题(发送方与接收方之间),可以通过通过TCP首部中的窗口字段来实现;而拥塞控制关心的是整条高速公路的拥堵情况,解决的是全局性的问题(整个网络的拥塞),通过拥塞窗口和算法来实现。

二、拥塞窗口 vs 发送窗口的区别

这不是同一个东西!!但是有密切的关系

1. 发送窗口(发送方实际发送的数据量)

复制代码
发送窗口 = min(拥塞窗口, 接收方通告窗口)

最终决定:一次性能发送多少数据

受两个因素限制:网络能力 + 接收方能力

2. 拥塞窗口(cwnd)

这是发送方自己维护的一个变量,反映了发送方认为网络能承受的数据量 ,根据网络拥塞情况动态变化。

三、拥塞控制的核心算法

TCP拥塞控制就像"试探性开车":

慢开始:一开始很谨慎,每收到一个ACK,窗口翻倍(指数增长),就像:"咦?路好像很空,我加速看看"

拥塞避免:达到阈值ssthresh后,每收到一个ACK,窗口只+1(线性增长),就像:"路上车有点多了,慢慢加吧"

快重传/快恢复:收到3个重复ACK,立即重传并调整窗口,就像:"前面好像有事故,但我还能走,先减半速度"

超时重传:完全没回应,窗口直接回到1,重新慢启动,就像:"完全堵死了!回到起点慢慢来(慢开始)"

相关推荐
聪明蛋子哟2 小时前
大模型应用“最后一公里”:从Prompt工程到MCP协议,如何实现跨系统的高可用集成?
网络·prompt
科创致远3 小时前
ESOP 电子作业指导书 WiFi 网络应用实测报告
运维·服务器·网络
承渊政道3 小时前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
最强小杰3 小时前
minimax-m3 突然报 HTTP 529 怎么办?连续重试为何更难恢复,退避时间该怎么算?
网络·网络协议·http·ai
程序员清风3 小时前
AI 编程助手的权限边界:文件、命令、密钥与人工确认
运维·服务器·网络
别讲概念4 小时前
JavaEE(5)网络原理初识
网络·java-ee·智能路由器
m0_639906944 小时前
TCP与UDP协议详解|原理、区别、粘包拆包、应用场景,面试总
网络协议·tcp/ip·udp
爱吃香菜的初学者4 小时前
十九.Linux——TCP协议(1)
linux·网络·tcp/ip
好啊好啊郝!5 小时前
计算机网络最基础知识点
服务器·网络·计算机网络
辰辰观影5 小时前
外挂字幕怎么导入播放器?2026实用教程
网络