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