Internet Group Management Protocol
Applies To: Windows 7, Windows Server 2008 R2
Internet Group Management Protocol (IGMP) is a protocol that manages host membership in IP multicast groups on a network segment. An IP multicast group, also known as a host group, is a set of hosts that listen for IP traffic destined for a specific IP multicast address. IP multicast traffic is sent to a single MAC address but processed by multiple IP hosts. A specific host listens on a specific IP multicast address and receives all packets to that IP address.
The following are some of the additional aspects of IP multicasting:
Host group membership is dynamic, hosts can join and leave the group at any time.
A host group can be of any size.
Members of a host group can span IP routers across multiple networks. This situation requires IP multicast support on the IP routers and the ability for hosts to register their group membership with local routers. Host registration is accomplished using IGMP.
A host can send traffic to an IP multicast address without belonging to the corresponding host group.
For a host to receive IP multicasts, an application must inform IP that it will receive multicasts at a specified IP multicast address. If the network technology supports hardware-based multicasting, the network interface is configured to pass up packets for a specified IP multicast address. In the case of Ethernet, the network adapter is programmed to respond to a multicast MAC address corresponding to the specified IP multicast address.
A host supports IP multicast at one of the following levels:
Level 0: No support to send or receive IP multicast traffic.
Level 1: Support exists to send but not receive IP multicast traffic.
Level 2: Support exists to both send and receive IP multicast traffic. All currently supported versions of Windows and TCP/IP support level 2 IP multicasting.
The protocol to register host group information is IGMP, which is required on all hosts that support level 2 IP multicasting. IGMP packets are sent using an IP header.
IGMP messages take three forms.
Host Membership Report. When a host joins a host group, it sends an IGMP Host Membership Report message to the all-hosts IP multicast address (126.96.36.199) or to the specified IP multicast address declaring its membership in a host group by referencing the IP multicast address. A host can also specify the sources from which multicast traffic is needed.
Host Membership Query. When a router polls a network to ensure that there are members of a specific host group, it sends an IGMP Host Membership Query message to the all-hosts IP multicast address. If no responses to the poll are received after several polls, the router assumes no membership in that group for that network and stops advertising that multicast group information to other routers.
Group Leave. When a host is no longer interested in receiving multicast traffic sent to a specified IP multicast address and it sent the last IGMP Host Membership Report message in response to an IGMP Host Membership Query, the host sends an IGMP Group Leave message to the IP multicast address. Local routers verify that the host sending the IGMP Group Leave message is the last group member for that multicast address on that subnet. If no responses to the poll are received after several polls, the router assumes no membership in that group for that subnet and stops advertising that multicast group information to other routers.
IGMP messages are encapsulated and sent within IP datagrams, as shown in the following figure.
For IP multicasting to span routers across an network, multicast routing protocols are used by routers to communicate host group information so that each router supporting multicast forwarding is aware of which networks contain members of which host groups. IGMP is defined in RFCs 1112 and 2236.