IGMP snooping
Multicasting overview
iMG/RG Software Reference Manual (IGMP)
3-2
not contain any hosts that want to receive them. Given that the main reason for having multicasting is to make
efficient use of bandwidth, this would not be a good approach.
So, a more efficient approach is needed. This is where IGMP comes in.
3.1.1.2
IGMP protocol
IGMP (
Internet Group Management Protocol
) is the protocol whereby hosts indicate that they are interested in
receiving a particular multicast stream. When a host wants to receive a stream (in multicast jargon, this is called
‘
joining a group
’) it sends to its local router an IGMP packet containing the address of the group it wants to join
– this is called an IGMP Membership report (sometimes called a
Join packet
).
Now, the local router is generally going to be a long way from the server that is generating the stream. So, hav-
ing received the IGMP join packet, the router then knows that it has to forward the multicast stream onto its
LAN (if it is not doing so already). However, if the router is not already receiving the multicast stream from the
server (probably many hops away) what does the router do next in order to ensure that the multicast stream
gets to it? This is achieved by elaborate process involving multicast routing protocols like PIM, DVMRP, and
MOSPF.
The IGMP packet exchange works as described in the following paragraphs.
At a certain period (default is 125 seconds), the router sends an IGMP query message onto the local LAN. The
destination address of the query message is a special ‘
all multicast groups
’ address. The purpose of this query is
to ask, “Are there any hosts on the LAN that wish to remain members of Multicast Groups?”
Hosts on the LAN receive the query, if any given host wishes to remain in a Multicast group; it sends a new
IGMP Membership report (Join message) for that group (of course some hosts may be members of more than
one group – so they will send join messages for all the groups that they are members of).
The router looks at the responses it receives to its query, and compares these to the list of Multicast streams
that it has currently registered to receive. If there are any items in that list for which it has not received query
responses, it will send a message upstream, asking to no longer receive that stream – i.e. to be ‘pruned’ from
the tree through which that stream is flowing.
In IGMP version 2, the IGMP leave message was added. So, a host can now explicitly inform its router that it
wants to leave a particular multicast group. So, the router keeps a table of how many hosts have joined particu-
lar groups, and removes hosts from the table when it receives leave messages, then it can know straight away
when there are no hosts on its LAN that are still members of a given group. So, it can ask to be pruned from
that tree straight away, rather than having to wait until the next query interval.
3.1.1.3
Multicast MAC addresses
Multicast IP addresses are Class D IP addresses. So, all IP addresses from 224.0.0.0 to 239.255.255.255 are mul-
ticast IP addresses. They are also referred to as
Group Destination Addresses
(GDA).
For each GDA there is an associated MAC address. This MAC address is formed by 01-00-5e, followed by the
last 23 bits of the GDA translated in hex. Therefore: