【问题标题】:Why TCPDUMP shows Ethernet packet when querying TCP packet?为什么 TCPDUMP 在查询 TCP 数据包时显示以太网数据包?
【发布时间】:2014-09-11 19:05:23
【问题描述】:

我正在使用 TCPDUMP 拦截 Android 设备上的网络流量。 我使用的命令是

./tcpdump -tt -nn -vv tcp > tcp.log

在结果文件(tcp.log)中,我发现不仅有TCP数据包,还有其他一些带有以太网地址的数据包。 (出于隐私目的,一些 IP 和以太网地址被混淆了)。

1410451676.980763 IP (tos 0x0, ttl 41, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    54.204.ABC.144.80 > 172.31.DEF.178.59949: Flags [S.], seq 572870324, ack 3778403975, win 17898, options [mss 1380,sackOK,TS[|tcp]>

1410451676.980916 IP (tos 0x0, ttl 64, id 44656, offset 0, flags [DF], proto TCP (6), length 52)
    172.31.DEF.178.59949 > 54.204.ABC.144.80: Flags [.], seq 1, ack 1, win 1369, options [nop,nop,TS[|tcp]>

1410451676.982167 IP (tos 0x0, ttl 64, id 44657, offset 0, flags [DF], proto TCP (6), length 701)
172.31.DEF.178.59949 > 54.204.ABC.144.80: Flags [P.], seq 1:650, ack 1, win 1369, options [nop,nop,TS[|tcp]>

1410451676.996114 00:24:f9:c3:XX:00 > d8:50:e6:2b:YY:6a, ethertype IPv6 (0x86dd), length 86: 
0x0000:  6000 0000 0020 0634 2607 f8b0 400d 0c03  `......4&...@...
0x0010:  0000 0000 0000 00bc 2001 0468 0c80 4340  ...........h..C@
0x0020:  b040 b100 7831 4228 146c c1cc ceb8 fc7a  .@..x1B(.l.....z

1410451677.000783 00:24:f9:c3:XX:00 > d8:50:e6:2b:YY:6a, ethertype IPv6 (0x86dd), length 535: 
0x0000:  6000 0000 01e1 0634 2607 f8b0 400d 0c03  `......4&...@...
0x0010:  0000 0000 0000 00bc 2001 0468 0c80 4340  ...........h..C@
0x0020:  b040 b100 7831 4228 146c c1cc ceb8 fc7a  .@..x1B(.l.....z

1410451677.000935 d8:50:e6:2b:YY:6a > 00:24:f9:c3:XX:00, ethertype IPv6 (0x86dd), length 86: 
0x0000:  6000 0000 0020 0640 2001 0468 0c80 4340  `......@...h..C@
0x0010:  b040 b100 7831 4228 2607 f8b0 400d 0c03  .@..x1B(&...@...
0x0020:  0000 0000 0000 00bc c1cc 146c 3b74 2fa9  ...........l;t/.

1410451677.011006 IP (tos 0x0, ttl 41, id 62137, offset 0, flags [DF], proto TCP (6), length 52)
    54.204.ABC.144.80 > 172.31.DEF.178.59949: Flags [.], seq 1, ack 650, win 75, options [nop,nop,TS[|tcp]>

在常规的 TCP 数据包头中,结果包括其时间戳(UNIX 时间)、IP 数据包标志+选项、源 IP 地址+端口、目标 IP 地址+端口和 TCP 标志。

但是,我不明白的是中间有一些以太网数据包,根据结果,这些数据包包括它们的 MAC 地址,而不是 IP 地址。 为什么会这样?它们是 TCP 数据包吗?

感谢您的回答/见解。

【问题讨论】:

    标签: networking tcp ip ethernet tcpdump


    【解决方案1】:

    所有这些数据包都是以太网数据包。

    您使用的 tcpdump 版本显然不支持 IPv6,因此,虽然它可以识别 IPv4-over-Ethernet 数据包并打印出 IP 信息,但它无法识别 IPv6-over-Ethernet 数据包,并且只是打印出以太网层信息。

    你应该问构建那个版本的 tcpdump 为什么它不包含 IPv6 支持。

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 2011-11-11
      • 2012-01-21
      • 1970-01-01
      相关资源
      最近更新 更多