第 17 篇:滑动窗口:流量的“红绿灯”

📅 2026/8/1 0:56:24 👁️ 阅读次数 📝 编程学习
第 17 篇:滑动窗口:流量的“红绿灯”

网络基础系列第 17 篇

上一篇我们讲了 TCP 四次挥手:连接关闭时要分别关闭两个方向。今天继续讲 TCP 可靠传输里的关键机制:滑动窗口。它决定了 TCP 一次能发多少、什么时候该慢一点。


开场:为什么 TCP 不一个包一个包等确认?

如果 TCP 每发一个包都停下来等 ACK,再发下一个包,会怎样?

流程大概是:

发一个 -> 等确认 -> 再发一个 -> 再等确认

这听起来很稳。

效率会很低

尤其在网络延迟比较大的情况下。

比如你和远端服务器 RTT 是 100ms。

如果一次只发一个小包,发完就等 100ms,再发下一个。

那链路大部分时间都在空等。

就像高速公路上只有一辆车开过去,收费站确认后,下一辆车才允许出发。

安全是安全。

但高速公路会气得改名叫低速公路。

TCP 需要一种机制:

在没有收到每个 ACK 之前,也允许连续发送一批数据。

但又不能无限发。

因为接收方可能处理不过来。

于是滑动窗口出现了。

先给结论: