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

一、核心区别

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

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

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

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

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

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

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

2. 拥塞窗口(cwnd)

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

三、拥塞控制的核心算法

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

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

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

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

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

相关推荐
王二端茶倒水17 小时前
从千兆到万兆:宽带运营不能只卖套餐,要管用户生命周期从千兆到万兆:宽带运营需要管理用户生命周期
后端·网络协议·架构
extrao3 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
不做菜鸟的网工5 天前
BGP特性
网络协议
MrSYJ5 天前
TCP协议理解
后端·tcp/ip
明月_清风7 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假7 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水8 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816088 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水9 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议