TCP滑动窗口

TCP 滑动窗口(Sliding Window)是 TCP 可靠传输的重要机制之一,用于控制发送方和接收方之间的数据流量,保证数据有序且高效传输。


一、滑动窗口的基本概念


二、滑动窗口的工作原理

  1. 发送方发送数据,数据序号从窗口左边界开始,窗口大小限制最多发送多少未确认数据。
  2. 接收方收到数据后,发送确认(ACK),并告知自己的接收窗口大小。
  3. 发送方收到 ACK 后,窗口向前滑动(窗口左边界向右移动),可以继续发送后续数据。

三、示意图(假设窗口大小为4个数据包)

发送窗口:[ |  |  |  |  ]  (4个包)
数据序号:1  2  3  4  5  6  7  ...

发送方依次发送序号1~4的数据包,等待确认。
收到确认后,窗口向右滑动,发送5~8的数据。

四、滑动窗口的作用


五、TCP 中的滑动窗口字段


六、示例说明

  1. 发送方窗口大小为 5000 字节,序号从 1000 开始。
  2. 发送方发送从序号 1000 到 5999 的数据(5000 字节)。
  3. 接收方确认收到序号 3000,窗口向前滑动,表示接收方已经收到1000~2999字节的数据,且窗口还有空间。

七、总结

优点 说明
流量控制 避免网络拥塞和接收方溢出
高效利用带宽 允许多个数据包连续发送
数据可靠传输 结合确认机制确保无误