IGMP / MLD Overview
Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) are the Multicast Group Membership
Discovery (MGMD) protocols. They are essentially the same protocol, with IGMP used for IPv4 multicast groups and MLD used for IPv6 multicast groups.
These protocols are used between end systems (often desktops) and the multicast router to request data for a given multicast group.
There have been three versions of IGMP, and two versions of MLD. IGMPv2 is equivalent in function to
MLDv1 and IGMPv3 is equivalent to MLDv2. All versions of IGMP/MLD are widely deployed. For example, an
IGMP/MLD host implementation is included in some operating systems, and the following table shows the
level of support for IGMP in Microsoft Windows hosts.
| IGMP Version |
|
Microsoft Windows Version |
| IGMPv1 |
|
Windows 95, Windows NT 4.0 (SP3 and earlier) |
| IGMPv2 |
|
Windows 98, Windows ME, Windows NT 4.0 (SP4 and later), Windows 2000 |
| IGMPv3 |
|
Windows XP, Windows Server 2003, Windows Vista |
Implementations of IGMP are required to support all earlier versions.
Basic Operation
The following describes the basic operation of IGMP/MLD, common to all
versions. Note that a multicast router acts as both an IGMP/MLD host and an IGMP/MLD router in this and following descriptions,
and as a result can respond to its own IGMP/MLD messages.
- One router periodically broadcasts IGMP/MLD Query messages onto the
link.
- Hosts respond to the Query messages by sending IGMP/MLD Report
messages indicating their group memberships.
- All routers receive the Report messages and note the memberships
of hosts on the link.
- If a router doesn't receive a Report message for a particular
group for a period of time, the router assumes there are no more members of the group on the link.
All IGMP/MLD messages are raw IP datagrams with a TTL of 1. Since raw IP does not provide reliable transport, some messages are sent
multiple times to aid reliability.
Sending Group Membership Queries
Only one router sends IGMP/MLD Query messages onto a particular link. This
router is called the Querier. IGMPv1 depended on the multicast routing protocol to decide which router was the Querier.
IGMPv2 introduced a Querier election process, which works as follows.
By default, a router takes the role of Querier. If a querier receives an
IGMP/MLD Query message from a router on the same interface and with a lower IP address, it stops being the Querier. If a
router has stopped being the Querier, but does not receive an IGMP/MLD Query message within a configured interval, it becomes
the Querier again.
Responding To Group Membership Queries
IGMPv1 and IGMPv2 use a Report suppression technique to avoid a 'storm' of responses to an IGMP Query message. When a host
receives a Query, it starts a randomized timer for each group that it is a member of. When this timer pops, the host
sends an IGMP Report message addressed to that group. Any other hosts that are members of the group also
receive the message, at which point they cancel their timer for the group.
This mechanism ensures that, under most circumstances, a single IGMP Report
message is sent for each multicast group in response to a single Query.
IGMPv3 removed the need for this, by packing multiple group memberships in a single Report message to reduce
the number of packets sent.
Improving Group Membership Latency
When a host joins a new multicast group on an interface, it immediately
sends an unsolicited IGMP Report message for that group.
IGMPv2 introduced a Leave Group message, which is sent by a host when it
leaves a multicast group for which it was the last host to send an IGMP Report message. Receipt of this message causes
the Querier possibly to reduce the remaining lifetime of its state for the group, and to send a group-specific IGMP Query
message to the multicast group.
The Leave Group message is not used with IGMPv3, as its source
address filtering mechanism (see below) provides the same functionality.
Source Address Filtering
IGMPv3 introduced an IGMP Version 3 Report message. This allows a host to
include or exclude a list of source addresses for each multicast group of which the host is a member. Routers merge the
source address requirements of different hosts for each group.
In particular, this feature is required to support Source Specific Multicast, which can be provided by PIM-SM.
Related links:
For more information about Metaswitch's
Multicast IP Routing products and expertise contact
.