Three procedures are important in IP multicasting: how to join a
multicast group, how to map an IP multicast address to a hardware address, and
how to forward multicast data. Let's use a CEO audio conference to explain how
IP multicasting works. Figure A shows the Ethernet network layout for the
conference. Computers CEO, A, C, and F participate in this audio conference.
The unique IP multicast address for the audio conferencing application is
239.100.200.30. This address represents the multicast group that includes
computers CEO, A, C, and F. The four computers join the conference by specifying
the same IP multicast address, 239.100.200.30, in the application. They become
members of the same multicast group when they start the application. Membership
in the group is dynamic. A computer can be at any location on the network, can
join and leave a group at any time, and can be a member of several multicast
groups.
When a source host sends IP data to a destination host in an IP network,
the source host must resolve the destination host's IP address to its hardware
address so that the data can move through the ISO/OSI model's two lowest layers,
the data link and physical layers. IP multicasting follows this principle, too,
but the big difference is that the destination hardware address identifies a
group of hosts that participate in the multicast application; the destination
hardware address is not a physical address of any machine. A source host in the
multicast group sends data to this address. A group of destination hosts listen
to this address to receive data.
IGMP's rule for mapping an IP multicast address to an Ethernet multicast
address is that you place the low-order 23 bits of the IP multicast address into
the low-order 23 bits of a special 48-bit Ethernet address, 01.00.5E.00.00.00.
Therefore, IP multicast address 239.100.200.30 maps to the Ethernet address 01.00.5E.64.D8.1E. In Figure A, computers A, C, and F listen to the address
01.00.5E.64.D8.1E and receive the audio stream that computer CEO sends to that
address. Computer G in Figure A listens to the Ethernet address
01.00.5E.64.D8.1E, too, because the IP address 238.100.200.30 that computer G
has joined maps to the same Ethernet address. Only 23 bits of 28 definable bits
of an IP multicast address go into the Ethernet multicast address, so 32
different IP multicast addresses can map to the same Ethernet address.
IGMP requires that IP software be intelligent enough to tell whether the
computer wants the multicast data it receives. If the computer doesn't want the
data, it quietly discards the data. Computer G receives the audio, finds the
audio is not what it wants, then discards the audio. To save processor cycles,
don't use IP multicast addresses that map to the same Ethernet address on the
same network. An easy way to avoid using those addresses is to standardize on
the first two dotted decimal numbers of IP multicast addresses in your network239.100.0.0,
for example. If you standardize on these numbers, you will have 65,536 IP
multicast addresses that will not map to the same Ethernet address; 65,536 IP
applications are unlikely to run on a network at the same time.
IGMP doesn't define how to map an IP multicast address to a hardware
address other than Ethernet addresses. According to IGMP, however, the
procedures for Ethernet work for any networks that conform to IEEE 802.2.
Router 1 and router 2 in Figure A are multicast-aware routers supporting
IGMP. A multicast router forwards multicast data to only its immediately
attached subnets that contain computers participating in a specific multicast
group. To forward data to only these specific computers, IGMP requires that the
multicast router keep track of the group membership status of computers on its
immediately attached subnets: IGMP periodically queries whether these
neighboring computers are still active in a group.
In the example, router 1 knows that computer C in sub-net 3 is in the group
239.100.200.30, so router 1 forwards the audio to subnet 3 but not subnet 2
because computer B is not in the multicast group. Similarly, router 2 knows that
computer F in subnet 5 is in the group 239.100.200.30, so router 2 forwards the
audio to subnet 5 but not subnet 4 because computer E is in a different
multicast group. When the CEO audio travels on subnet 3, it passes by computer
D, because computer D is not interested in the audio and its network interface
card filters out the audio.
IGMP doesn't define specifications for IP multicast routing protocols that
find an optimal path to forward multicast data from a source to a group of
destination hosts. Three major multicast routing protocols are Distance Vector
Multicast Routing Protocol (DVMRP), Multicast Open Shortest Path First (MOSPF),
and Protocol Independent Multicast (PIM). A multicast router uses at least one
of these protocols.