`tcpdump`为同一个ARP数据包显示不同的长度

时间:2016-11-06 19:11:50

标签: linux tcpdump arp

我使用此命令在两台相同的Linux计算机上运行tcpdump

tcpdump -i enp0s8 -nn -XX -vvv

在发件人计算机的ARP请求中,我看到:

20:03:29.113813 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.1 tell 10.0.0.2, length 28
0x0000:  0800 27bb f251 0800 27cf ce8e 0806 0001  ..'..Q..'.......
0x0010:  0800 0604 0001 0800 27cf ce8e 0a00 0002  ........'.......
0x0020:  0000 0000 0000 0a00 0001                 ..........

但在目标机器中:

20:03:29.114928 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.1 tell 10.0.0.2, length 46
0x0000:  0800 27bb f251 0800 27cf ce8e 0806 0001  ..'..Q..'.......
0x0010:  0800 0604 0001 0800 27cf ce8e 0a00 0002  ........'.......
0x0020:  0000 0000 0000 0a00 0001 0000 0000 0000  ................
0x0030:  0000 0000 0000 0000 0000 0000            ............

为什么数据包被零填充到达46的长度?

1 个答案:

答案 0 :(得分:0)

ARP消息本身长度为28个字节,与您指示的完全相同。现在,通过正确的以太网实现,输出帧必须填充为至少64字节长。然而,有一些关于此的怪癖 - 发起此ARP消息的设备本身可能能够在未标记的帧或802.1Q标记的帧中发送它。标签大小始终与总帧大小相对应,从而产生不同的填充: