Wireshark中[TCP Window Full] 和 [Zero Window]帧的含义

TCP/IP协议为流控制协议,TCP窗口是其中一个重要的概念。在TCP接受和发送端都有缓存区,用户缓存数据,当缓存区满的时候就不能在向缓存区中写入数据了。发送缓存区满表现为send的返回值不再是指定的字节数,而小于该值的一个值;而接收缓存区满表现为对端发送收到影响。

1
2
3
[TCP Window Full] :服务端向客户端发送的一种窗口警告,表示已经发送到数据接收端的极限了。
[TCP Window Update]:缓冲区已释放为所示的大小,因此请恢复传输。
[Zero Window] :客户端向服务端发送的一种窗口警告,告诉发送者你的接收窗口已满,暂时停止发送。

这三种帧经常出现在以下两种情况中:

  1. 接收端比发送端数据处理要慢,导致数据堆积。
  2. 接收端控制了接收速度。

参考文章

  1. Wireshark [TCP Window Full] & [Zero Window]:关于TCP window full的计算可以参考改文章。
  2. 关于wireshark抓包的那点事儿:关于wirshark常见协议帧的说明
  3. [TCP ZeroWindow], [TCP Window Update], [TCP Window Full] displayed on Wireshark – cause & countermeasure:wireshark中三种帧的含义、原因及对策