为什么TCPDUMP在查询TCP数据包时显示以太网数据包?

时间:2014-09-11 19:05:23

标签: networking tcp ip ethernet tcpdump

我正在使用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数据包吗?

感谢您的回答/见解。

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题