TCP 流分析82 条

TCP Window Full 标记

Wireshark 的 [TCP Window Full] 表示发送数据把接收窗口塞满:发送方只能等窗口更新,是接收端处理速度跟不上发送的直接线索。

Window Full 标记

Wireshark 标注的 TCP Window Full 表示发送方的数据已经把接收窗口塞满,只能停下来等对方更新窗口。它不是错误,而是「发送受限」的直接线索:如果同时观察到接收端处理慢,基本就能判断瓶颈在接收侧,而不是链路丢包或带宽不足。

基本信息

适用平台Wireshark 的 TCP 分析标记
过滤方式tcp.analysis.window_full
相关标记tcp.analysis.zero_window(接收方通告零窗口)
含义发送端视角:已发数据填满了对端通告的窗口

典型使用场景

  • 判断发送停顿原因:区分窗口受限与丢包受限
  • 评估接收端处理能力:窗口频繁被填满说明消费速度不足
  • 大文件传输分析:批量传输里出现少量窗口填满属常见
  • 长肥管道调优:窗口偏小会明显限制吞吐,需要加大接收缓冲
  • 与应用指标对照:结合接收端 CPU、内存回收与线程池状态判断

过滤与判读

过滤与判读
tcp.analysis.window_full        # 发送端填满接收窗口的瞬间
tcp.analysis.zero_window        # 接收窗口为零
tcp.window_size < 8192 && tcp.len > 0   # 小窗口下仍在持续发送

三种受限对照

标记含义瓶颈在哪
Window Full发送数据填满了对端窗口接收端读取或处理慢
Zero Window接收方通告没有接收空间接收应用已完全阻塞
重传标记数据丢失需要重发路径丢包或链路质量
Window Full 与 Zero Window 不是一回事:前者是发送端发现自己填满了窗口,后者是接收端明确通告零窗口。前者通常更早出现,可以理解为预警信号。
如果接收端窗口本身很小而 Window Full 高频出现,属于典型的配置受限场景。加大接收缓冲或调大窗口往往能立刻看到吞吐改善。
抓到 Window Full 不等于存在故障。大文件传输中偶发出现是正常现象,应关注它占整体传输时间的比例,以及是否伴随明显的业务停顿。

易错点

  • 大文件传输出现 Window Full 较常见,要看停顿占比而非是否存在
  • 带宽时延积大而窗口小属于配置受限,加大接收缓冲即可显著改善
  • 把 Window Full 当成丢包证据:它说明发送受限,与链路质量没有直接关系
  • 只看发送端抓包:接收端的读取速度与缓冲配置看不到,结论需与接收端指标结合

数据来源与参考

  • Wireshark User's Guide(TCP 分析)
  • RFC 9293
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌