0

我对网络流量很陌生。我正在尝试获取互联网流量中每秒传输的数据大小。我下载了一个 pcap 文件,我正在使用 tcpdump 来分析它。通过运行

 tcpdump -tttt -v -r sample.pcap

我得到如下一些记录:

21:00:00.539514 IP (tos 0x0, ttl 118, id 0, offset 0, flags [none], proto ICMP (1), length 32)
111.195.18.190 > host-203-203-22-140.net: ICMP echo reply, id 11884, seq 4803, length 12

根据教程(http://packetpushers.net/masterclass-tcpdump-interpreting-output/),第一个长度(32)是整个IP包长度,第二个长度(12)是TCP包长度。

我想知道两台主机之间传输了多少数据。我应该使用哪一个,IP 长度、TCP 长度还是其他?

4

1 回答 1

0

应用程序数据(可能是视频、消息、图片等)与一些较低层的标头(TCP 标头(第 4 层)、IPv4 标头(第 3 层)、以太网标头(第 2 层)等)一起发送。 . TCP 数据包是应用程序数据 + TCP 标头,IPv4 数据包是 TCP 数据包 + IPv4 标头,依此类推。

IP 包长度为 TCP 包长度 + IP 包头长度。这就是为什么第一长度和第二长度不同的原因。

两个主机之间的网络设备可能会更改标头,因此无法考虑在两者之间传输了多少数据。如果你想知道 pcap 文件中每个数据包的长度,运行tcpdump -e -r sample.pcap并查看每行的第一个长度。

于 2017-01-05T00:16:34.067 回答