【问题标题】:Use IP or TCP packet length to analyze how much data transferred使用 IP 或 TCP 数据包长度来分析传输了多少数据
【发布时间】:2017-01-03 03:51:43
【问题描述】:

我对网络流量很陌生。我正在尝试获取互联网流量中每秒传输的数据大小。我下载了一个 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 长度还是其他?

【问题讨论】:

  • 在什么网络层?第2层有头,第3层有头,第4层有头,应用协议可能有头。
  • @RonMaupin 抱歉,我对网络层一无所知。我的意思是在这个过程中传输的实际数据。
  • “实际数据”是什么意思?你能举出例子吗?
  • @kaitoy 抱歉,我之前的解释令人困惑。我的意思是两个主机之间传输的所有数据(一切),例如发送者/接收者地址,发送者想要发送的数据(可能是视频、消息、图片等)。我不明白为什么 TCP 和 IP 数据包的长度不同。它们是否包含不同的信息?

标签: networking tcp-ip pcap tcpdump dpkt


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2012-08-20
    相关资源
    最近更新 更多