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.
|