linux命令tcpdump与tcp zero window

example:
tcpdump -i ens250 port 34495 -w t.pcap
# -i: 指定监听网卡
# port: 指定监听端口
# -w file: 将数据保存在外部文件中,以.pcap结尾的文件可以通过wireshark打开

常用选项:

-c count                  # 捕获count个packet后退出

tcp zero window

TCP Window size是指机器在一个TCPsession中可以接收多大的数据量。类似于TCP中的接收缓冲,当客户端和服务端建立连接时,客户端会通过Window Size告诉服务端可以接收多少数据。 当建立TCP连接后,服务端开始向客户端发送数据,客户端会减少Window Size当接收的数据存在于缓冲中时,同时客户端会在缓冲中处理数据,清空缓冲以便接收更多的数据。通过TCP ACK frames客户端会告诉服务端还可以接收多大的数据。当TCP Window Size等于0时,我们称为零窗口,此时客户端不能再接收数据,直到缓冲中的数据被清空。

wireshark提示的[TCP window Full]和[TCP zero windwo]意义不同,前者表示这个包的发送方意识到”在途字节数”已经达到对方所声明的窗口,不能再发了;而后者表示这个包的发送意识到自民 的缓存区已经满了,无法接收更多数据。


Ref: 1.https://wiki.wireshark.org/TCP%20ZeroWindow