TCP 零窗口是指机器中的窗口大小在指定的时间内保持为零的时间。
这意味着客户端此时无法接收更多信息,并且 TCP 传输将暂停,直到它可以处理其接收缓冲区中的信息。
TCP 窗口大小是计算机在 TCP 会话期间可以接收的信息量,并且仍然能够处理数据。可以把它想象成 TCP 接收缓冲区。当一台机器启动到服务器的 TCP 连接时,它将 让服务器知道它可以通过窗口大小接收多少数据。
在许多 Windows 机器中,此值约为 64512 字节。当 TCP 会话启动并且服务器开始发送数据时,客户端将在此缓冲区填充时减小其窗口大小。同时,客户端正在处理缓冲区中的数据,并将其清空,为更多数据腾出空间。通过 TCP ACK 帧,客户端通知服务器此缓冲区中有多少空间。如果 TCP 窗口大小下降到 0,则客户端将无法再接收任何数据,直到它处理并再次打开缓冲区。在这种情况下,wireshark 将在抓包文件中提醒“零窗口”。
零窗口故障排除由于这样或那样的原因,提示零窗口的机器将不再从主机接收任何数据。可能是机器当时正在运行太多进程,并且其处理器是满载的。或者可能是 TCP 接收器中存在错误。