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

一、核心区别

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

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

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

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

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

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

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

2. 拥塞窗口(cwnd)

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

三、拥塞控制的核心算法

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

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

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

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

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

相关推荐
折哥的程序人生 · 物流技术专研6 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
专注VB编程开发20年6 小时前
c#Modbus上位机开发-一次读10个地址和100个地址速度一样
网络·网络协议·tcp/ip
2601_961963389 小时前
技术解剖:哈希值、区块链与CA认证如何守护电子合同安全?
网络·人工智能·安全·区块链·智能合约·政务
2601_961963389 小时前
从“电子化”到“自动化”:2026年智能合约与电子合同融合的技术逻辑与法律适配
网络·人工智能·区块链·智能合约·政务
不吃土豆的马铃薯10 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
dog25011 小时前
网络可用性,扩展性,性能的统计本质
网络
嵌入式-老费11 小时前
esp32开发与应用(再谈wifi的使用)
网络·智能路由器
米丘11 小时前
HTTP/3 传输层 QUIC 协议
网络协议·http3
YJlio11 小时前
《Sysinternals实战指南》16.5 Ctrl2Cap 工具详解:把 Caps Lock 变成 Ctrl 的键盘改造与回退方法
linux·运维·服务器·网络·python·学习·计算机外设
wangxixi52211 小时前
OTN 以太网业务接入全流程详解
网络