| For a network
device such as a router to ask "Who has IP address 192.168.0.100
? ", it must "shout" it out so it can grab everyone's
attention, which is why it will use a broadcast to make sure everyone
listens and processes the packet on the network.
In the example image above, the particular machine was
looking for a DHCP server (notice the "bootps" protocol under
the UDP Header - Layer 4, which is basically DHCP).
Subnet Broadcast or
Direct Broadcast
A Subnet or Direct
broadcast is targetted not to all hosts on a network, but to
all hosts on a subnet. Since a physical network can contain different
subnets/networks e.g 192.168.0.0 and 200.200.200.0, the purpose of this
special broadcast is to send a message to all the hosts in a particular
subnet.
In the example below, Router A
sends a subnet broadcast onto the network. Hosts
A,B,C
and the Server are configured to be part
of the 192.168.0.0 network so they will receive and process the data,
but Host D is configured with a different
IP Adress, so it's part of a different network, it will accept the packet
cause of its broadcast MAC address, but
will drop the packet when it reaches its Network
Layer, where it will see that this packet was for a different
IP network.

It is very similar to the network broadcast we just talked
about but varies slightly in the sense that its IP broadcast is not
set to 255.255.255.255 , but is set to the subnet broadcast address.
For example, my home network is a Class C network : 192.168.0.0 with
a subnetmask of 255.255.255.0 or, if you like to keep it simple, : 192.168.0.0/24.
This means that the available valid hosts for this network
are from 192.168.0.1 to 192.168.0.254. In this Class C network, as in
every other network, there are 2 addresses which I can't use. The first
one is preserved to identify the network (192.168.0.0) and the second
one for the subnet broadcast (192.168.0.255).

The above packet, captured from my packet sniffer, shows
my workstation broadcasting to the subnet 192.168.0.0. From the broadcast
address you can tell that I am using a full Class C network range, otherwise
the Destination IP wouldn't be 192.168.0.255.
|