滑动窗口是可靠传输协议中的流量控制与流水线机制:发送方无需逐包等待确认,可连续发送窗口内的多个数据包,随确认到达窗口向前滑动。TCP 用它实现流量控制,并作为拥塞控制的基础。

| 中文名 | 滑动窗口协议 |
| 所属层次 | 传输层 / 数据链路层 |
| 典型实现 | Go-Back-N、选择重传 |
| TCP 作用 | 流量控制 |
| 关键概念 | 带宽时延积(BDP) |
| 扩展机制 | TCP 窗口缩放(RFC 7323) |
滑动窗口协议(Sliding Window Protocol)是数据通信中实现可靠、高效传输的一种基础机制:发送方维护一个允许连续发送而无需逐个等待确认的序号窗口,随着接收方确认(ACK)不断到达,窗口向前滑动,新的数据得以持续发出。它是 TCP 流量控制的核心,也是理解网络传输性能的一把钥匙。
最朴素的可靠传输是停等协议:发一个包,等到确认再发下一个。在时延较高的链路上,大量时间浪费在等待上,信道利用率极低。滑动窗口把传输流水线化:窗口大小为 N 时,发送方可以一口气发出 N 个包再等确认,吞吐量约提升 N 倍。经典实现有回退 N 帧(Go-Back-N)与选择重传(Selective Repeat)两种:前者发现丢包后重传该包及其后所有包,实现简单但浪费;后者只重传真正丢失的包,效率更高。
除 TCP 外,QUIC 的流级与连接级流控、数据链路层的 HDLC、卫星与深空通信协议等都采用滑动窗口思想。运维上,长距离传输速度上不去时,检查窗口缩放是否生效、增大收发缓冲区,往往就是在调滑动窗口。
问:窗口越大速度越快吗?答:在窗口小于带宽时延积时,增大窗口能提升吞吐;超过之后瓶颈转为链路带宽或网络拥塞,再大也无益,反而可能加剧缓冲膨胀。
问:零窗口是什么?答:接收方缓冲区满时会通告窗口为零,发送方暂停发送并周期性发探测包,待窗口重新打开后恢复,若处理不当会造成传输长时间停滞。
问:糊涂窗口综合征是什么?答:指收发双方以极小的窗口增量频繁传输小包,效率极低;TCP 通过 Nagle 算法与延迟通告窗口更新等策略避免。

| 中文名 | 滑动窗口协议 |
| 所属层次 | 传输层 / 数据链路层 |
| 典型实现 | Go-Back-N、选择重传 |
| TCP 作用 | 流量控制 |
| 关键概念 | 带宽时延积(BDP) |
| 扩展机制 | TCP 窗口缩放(RFC 7323) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧