dupliceated icmp echo request
Hannes Mehnert
hannes at mehnert.org
Tue Sep 13 16:45:00 UTC 2016
On 13/09/2016 17:21, Bjoern A. Zeeb wrote:
> On 13 Sep 2016, at 15:39, Hannes Mehnert wrote:
>> while doing some network testing, I discovered that my FreeBSD (r304285,
>> but likely earlier + released ones as well) sends out two
>> (bytewise-)identical ICMP echo requests shortly after each other when I
>> ping the broadcast (IPv4) address on an interface [tested with:
>> tap,em,iwm].
>>
>> This behaviour does not meet my expectations - is there any specific
>> reason for this behaviour; it behaves well (sending out a single ICMP
>> echo request) if I ping a unicast host.
>
> Asking for a command line seems strange; but given I am replying, is
> there any delay between the two packets?
When observing using another physical host on the same network, I can
only see a single ICMP echo request.
running `tcpdump -i em0 icmp` (on the host doing a `ping 128.232.110.255`):
17:34:52.588149 IP 128.232.110.111 > 128.232.110.255: ICMP echo request,
id 21589, seq 0, length 64
17:34:52.588167 IP 128.232.110.111 > 128.232.110.255: ICMP echo request,
id 21589, seq 0, length 64
17:34:52.588676 IP 128.232.110.97 > 128.232.110.111: ICMP echo reply, id
21589, seq 0, length 64
17:34:52.589183 IP 128.232.110.4 > 128.232.110.111: ICMP echo reply, id
21589, seq 0, length 64
17:34:52.592620 IP 128.232.110.2 > 128.232.110.111: ICMP echo reply, id
21589, seq 0, length 64
kdump of the ping process:
21844 ping GIO fd 1 wrote 54 bytes
"PING 128.232.110.255 (128.232.110.255): 56 data bytes
"
21844 ping RET write 54/0x36
21844 ping CALL sigaction(SIGINT,0x7fffffffea00,0)
21844 ping RET sigaction 0
21844 ping CALL sigaction(SIG29,0x7fffffffea00,0)
21844 ping RET sigaction 0
21844 ping CALL sendto(0x3,0x6085b4,0x40,0,0,0)
21844 ping GIO fd 3 wrote 64 bytes
0x0000 0800 3cb8 5455 0000 57d8 2aac 0008 f962 0809 0a0b 0c0d
0e0f |..<.TU..W.*....b........|
0x0018 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425
2627 |................ !"#$%&'|
0x0030 2829 2a2b 2c2d 2e2f 3031 3233 3435 3637
|()*+,-./01234567|
21844 ping RET sendto 64/0x40
21844 ping CALL select(0x5,0x7ffffffee6b0,0,0,0x7ffffffee730)
21844 ping RET select 1
21844 ping CALL recvmsg(0x4,0x7fffffffea20,0)
21844 ping GIO fd 4 read 84 bytes
0x0000 4500 0054 f6f1 0000 4001 a478 80e8 6e6f 80e8 6eff 0800
3cb8 |E..T.... at ..x..no..n...<.|
0x0018 5455 0000 57d8 2aac 0008 f962 0809 0a0b 0c0d 0e0f 1011
1213 |TU..W.*....b............|
0x0030 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 2829
2a2b |............ !"#$%&'()*+|
0x0048 2c2d 2e2f 3031 3233 3435 3637
|,-./01234567|
21844 ping STRU struct sockaddr { AF_INET, 128.232.110.111:0 }
21844 ping RET recvmsg 84/0x54
21844 ping CALL select(0x5,0x7ffffffee6b0,0,0,0x7ffffffee730)
21844 ping RET select 1
21844 ping CALL recvmsg(0x4,0x7fffffffea20,0)
21844 ping GIO fd 4 read 84 bytes
0x0000 4500 0054 655b 0000 4001 36ad 80e8 6e61 80e8 6e6f 0000
44b8 |E..Te[.. at .6...na..no..D.|
0x0018 5455 0000 57d8 2aac 0008 f962 0809 0a0b 0c0d 0e0f 1011
1213 |TU..W.*....b............|
0x0030 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 2829
2a2b |............ !"#$%&'()*+|
0x0048 2c2d 2e2f 3031 3233 3435 3637
|,-./01234567|
21844 ping STRU struct sockaddr { AF_INET, 128.232.110.97:0 }
21844 ping RET recvmsg 84/0x54
21844 ping CALL write(0x1,0x801a39000,0x3e)
21844 ping GIO fd 1 wrote 62 bytes
"64 bytes from 128.232.110.97: icmp_seq=0 ttl=64 time=0.555 ms
"
21844 ping RET write 62/0x3e
21844 ping CALL select(0x5,0x7ffffffee6b0,0,0,0x7ffffffee730)
21844 ping RET select 1
21844 ping CALL recvmsg(0x4,0x7fffffffea20,0)
21844 ping GIO fd 4 read 84 bytes
0x0000 4500 0054 f6f1 0000 ff01 e672 80e8 6e04 80e8 6e6f 0000
44b8 |E..T.......r..n...no..D.|
0x0018 5455 0000 57d8 2aac 0008 f962 0809 0a0b 0c0d 0e0f 1011
1213 |TU..W.*....b............|
0x0030 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 2829
2a2b |............ !"#$%&'()*+|
0x0048 2c2d 2e2f 3031 3233 3435 3637
|,-./01234567|
21844 ping STRU struct sockaddr { AF_INET, 128.232.110.4:0 }
21844 ping RET recvmsg 84/0x54
21844 ping CALL write(0x1,0x801a39000,0x45)
21844 ping GIO fd 1 wrote 69 bytes
"64 bytes from 128.232.110.4: icmp_seq=0 ttl=255 time=1.059 ms (DUP!)
"
21844 ping RET write 69/0x45
21844 ping CALL select(0x5,0x7ffffffee6b0,0,0,0x7ffffffee730)
21844 ping RET select 1
21844 ping CALL recvmsg(0x4,0x7fffffffea20,0)
21844 ping GIO fd 4 read 84 bytes
0x0000 4500 0054 f6f1 0000 ff01 e674 80e8 6e02 80e8 6e6f 0000
44b8 |E..T.......t..n...no..D.|
0x0018 5455 0000 57d8 2aac 0008 f962 0809 0a0b 0c0d 0e0f 1011
1213 |TU..W.*....b............|
0x0030 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 2829
2a2b |............ !"#$%&'()*+|
0x0048 2c2d 2e2f 3031 3233 3435 3637
|,-./01234567|
21844 ping STRU struct sockaddr { AF_INET, 128.232.110.2:0 }
21844 ping RET recvmsg 84/0x54
21844 ping CALL write(0x1,0x801a39000,0x45)
21844 ping GIO fd 1 wrote 69 bytes
"64 bytes from 128.232.110.2: icmp_seq=0 ttl=255 time=4.497 ms (DUP!)
"
21844 ping RET write 69/0x45
21844 ping CALL select(0x5,0x7ffffffee6b0,0,0,0x7ffffffee730)
21844 ping RET select -1 errno 4 Interrupted system call
hannes
More information about the freebsd-net
mailing list