At 03:48 PM 10/4/2006, Usman Qureshi wrote:
Hello,
I have a questions regarding ICMP packets traversing through Hubs and
Switches. If connected on a Hub I ping the broadcast address
(<http://192.168.0.255>192.168.0.255) from a host machine
(<http://192.168.0.100> 192.168.0.100) I get a response from the address
<http://192.168.0.1>192.168.0.1 with destination address as
<http://192.168.0.100>192.168.0.100. How is this possible? I do not have
machine with the broadcast IP address.
You need to look at more of the traffic to figure out what is going on.
What is the Ethernet destination address of the ping? When you ping an
address, the ping program will look up the specified IP address (this is
done by asking the OS for the Ethernet address of the given IP address,
which is done by looking up that IP address in the OS's ARP cache, and if
it is not there by sending an ARP request). One possibility is if the
machine at 192.168.0.1 responded to the ARP request for 192.168.0.255. It
is also possible that some TCP/IP stacks might special-case a subnet
broadcast and not send an ARP at all (see below).
On the other hand, when connected through a switch I do not get any
replies and only see request packets on Ethereal.
I'm not sure why that would be. But looking at the ARP cache on the
machine doing the ping and looking for ARP messages in both cases might
give a clue.
I just tried this on a Win2000 and a WinXP machine. The ping to the subnet
broadcast address did not cause an ARP to be sent. The ping was sent to
the Ethernet broadcast address. In my case there was only one reply, from
an Ubuntu Linux server. None of the Microsoft OSes (WinXP, Win2000 server,
Win2000) responded.