tcpdump 可靠吗?为什么有那么多长度为0的数据包?

Is tcpdump reliable? Why there are so many packets with length 0?

我正在使用 tcpdump 通过 wlan0 收集数据包数据。但我发现很多数据包长度为 0,如下图所示。好吧,长度为 0 的数据包……tcpdump 可靠还是我遗漏了什么?

好的,这些是 TCP 数据包,这就是 TCP 有效负载 长度。 可以为零,如果 TCP 数据包只是确认连接另一端发送的数据,而不发送任何数据。

例如,最后一个数据包的下一个数据包来自 121.186.151.61.dial.xw.sh.dynamic.163data.com.cn,端口 80(即末尾的“.http” - 它不是域名,表示是从80端口)到android-1b46862a4910306b,53876端口,16字节数据。最后一个数据包是 android-1b46862a4910306b 向 121.186.151 发送 ACK。61.dial.xw.sh.dynamic.163data.com,可能确认前 16 个字节。

样本输出中的其他零长度数据包是 TCP FIN 数据包,其中不必包含数据(发送它的主机只是说 "I don't have any more data to send you, and never will have any more data to send you on this connection - I'm done")和 TCP RST 数据包,这只是强行关闭连接,也不必在其中包含数据。