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

一、核心区别

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

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

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

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

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

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

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

2. 拥塞窗口(cwnd)

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

三、拥塞控制的核心算法

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

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

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

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

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

相关推荐
那就回到过去2 小时前
IP组播技术(2)
网络·网络协议·tcp/ip·智能路由器·ensp
有一个好名字2 小时前
简易版RPC框架实现
网络·网络协议·rpc
任聪聪2 小时前
《蜉蝣文明》文明收割培养皿与更高空间维度入场卷。
网络·人工智能·深度学习
二哈哈黄3 小时前
握手协议打拍
网络
阿豪学编程3 小时前
【Linux】网络基础
网络
Anthony_2313 小时前
五、交换技术与VLAN
服务器·网络·网络协议·http·https·udp·信息与通信
梁洪飞3 小时前
使用rockchip sdk提供的uboot调通网络
linux·网络·arm开发·嵌入式硬件·arm
fanruitian3 小时前
k8s 创建service 暴漏集群ip
服务器·网络·kubernetes
Ar呐3 小时前
HCIP-Datacom-Core Technology~OSPF特殊区域及其他特性
网络