TCP/IP协议为流控制协议,TCP窗口是其中一个重要的概念。在TCP接受和发送端都有缓存区,用户缓存数据,当缓存区满的时候就不能在向缓存区中写入数据了。发送缓存区满表现为send的返回值不再是指定的字节数,而小于该值的一个值;而接收缓存区满表现为对端发送收到影响。
1 2 3 | [TCP Window Full] :服务端向客户端发送的一种窗口警告,表示已经发送到数据接收端的极限了。 [TCP Window Update]:缓冲区已释放为所示的大小,因此请恢复传输。 [Zero Window] :客户端向服务端发送的一种窗口警告,告诉发送者你的接收窗口已满,暂时停止发送。 |
这三种帧经常出现在以下两种情况中:
- 接收端比发送端数据处理要慢,导致数据堆积。
- 接收端控制了接收速度。
参考文章
- Wireshark [TCP Window Full] & [Zero Window]:关于TCP window full的计算可以参考改文章。
- 关于wireshark抓包的那点事儿:关于wirshark常见协议帧的说明
- [TCP ZeroWindow], [TCP Window Update], [TCP Window Full] displayed on Wireshark – cause & countermeasure:wireshark中三种帧的含义、原因及对策