White Papers

Table Of Contents
Figure 46. IGMP Version 2 Packet Format
Joining a Multicast Group
There are two ways that a host may join a multicast group: it may respond to a general query from its querier, or it may send an
unsolicited report to its querier.
Responding to an IGMP Query.
One router on a subnet is elected as the querier. The querier periodically multicasts (to all-multicast-systems address
224.0.0.1) a general query to all hosts on the subnet.
A host that wants to join a multicast group responds with an IGMP membership report that contains the multicast
address of the group it wants to join (the packet is addressed to the same group). If multiple hosts want to join the same
multicast group, only the report from the first host to respond reaches the querier, and the remaining hosts suppress
their responses (for how the delay timer mechanism works, refer to IGMP Snooping).
The querier receives the report for a group and adds the group to the list of multicast groups associated with its outgoing
port to the subnet. Multicast traffic for the group is then forwarded to that subnet.
Sending an Unsolicited IGMP Report.
A host does not have to wait for a general query to join a group. It may send an unsolicited IGMP membership report, also
called an IGMP Join message, to the querier.
Leaving a Multicast Group
A host sends a membership report of type 0x17 (IGMP Leave message) to the all routers multicast address 224.0.0.2 when it
no longer cares about multicast traffic for a particular group.
The querier sends a group-specific query to determine whether there are any remaining hosts in the group. There must be at
least one receiver in a group on a subnet for a router to forward multicast traffic for that group to the subnet.
Any remaining hosts respond to the query according to the delay timer mechanism (refer to IGMP Snooping). If no hosts
respond (because there are none remaining in the group), the querier waits a specified period and sends another query. If it
still receives no response, the querier removes the group from the list associated with forwarding port and stops forwarding
traffic for that group to the subnet.
IGMP Version 3
Conceptually, IGMP version 3 behaves the same as version 2. However, there are differences:
Version 3 adds the ability to filter by multicast source, which helps the multicast routing protocols avoid forwarding traffic to
subnets where there are no interested receivers.
To enable filtering, routers must keep track of more state information, that is, the list of sources that must be filtered.
An additional query type, the group-and-source-specific query, keeps track of state changes, while the group-specific and
general queries still refresh existing state.
Reporting is more efficient and robust. Hosts do not suppress query responses (non-suppression helps track state and
enables the immediate-leave and IGMP snooping features), state-change reports are retransmitted to insure delivery, and a
single membership report bundles multiple statements from a single host, rather than sending an individual packet for each
statement.
To accommodate these protocol enhancements, the IGMP version 3 packet structure is different from version 2. Queries
(shown below in query packet format) are still sent to the all-systems address 224.0.0.1, but reports (shown below in report
packet format) are sent to all the IGMP version 3 capable multicast routers address 224.0.0.22.
Internet Group Management Protocol (IGMP)
323