IGMP Overview

DC-IGMP
Data Connection's IGMP implementation

IP Multicast Explained
For a comprehensive account of IGMP, download our whitepaper

Internet Group Management Protocol (IGMP) is the Multicast Group Membership Discovery (MGMD) protocol used for IPv4 multicast groups. There have been three versions of IGMP, all widely deployed. As IGMP is used between end systems (often desktops) and the multicast router, the version of IGMP required depends on the end-user operating system being supported. For example, 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 IGMP operation

The following describes the basic operation of IGMP, common to all versions. Note that a multicast router acts as both an IGMP host and an IGMP router in this and following descriptions, and as a result can respond to its own IGMP messages.

  • One router periodically broadcasts IGMP Query messages onto the link.

  • Hosts respond to the Query messages by sending IGMP 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 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 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 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 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 Data Connection's Multicast IP Routing products and expertise contact dciprouting@dataconnection.com.