IGMP (Abbreviation for Internet Group Management Protocol) is used by the TCP/IP protocol suite to achieve dynamic multicasting. IGMP allows a host to advertise its multicast group membership to neighboring switches and routers.Hosts identify group memberships by sending IGMP messages to their local multicast router. Under IGMP, routers listen to IGMP messages and periodically send out queries to discover which groups are active or inactive on a particular subnet.
A host (Multicast Client) requests membership to a group through its local multicast router. The Router listens for these requests and periodically sends out subscription queries.Switches derive IGMP related information by analyzing these IGMP transactions. Protocol Independent Multicast (PIM) is used between the local (Router 1) and multicast router within LAN of Multicast Client, to direct multicast traffic from the multicast server to multicast clients.IGMP operates on the network layer, just the same as other network management protocols like ICMP.IGMP has 3 versions as defined in Request for Comments (RFC).
- IGMPv1 is defined by RFC 1112
- IGMPv2 is defined by RFC 2236 and
- IGMPv3 defined by RFC 3376 and RFC 4604
The incremental versions of IGMP have added features to further enhance IGMP capabilities. IGMPv2 improves over IGMPv1 by adding the ability for a host to signal desire to leave a multicast group while IGMPv3 improves over IGMPv2 mainly by supporting source-specific multicast and Membership Report aggregation.
IGMP version 1 –
IGMP Version 1, uses following two types of IGMP messages:
- Membership query
- Membership report
Interested hosts send IGMP membership reports to a particular multicast group to indicate their interest in joining that group. The TCP/IP stack running on the host sends the IGMP Membership report when an application opens. The router periodically sends out an IGMP membership query to connected LAN segment for verifying that at least one host on the subnet is interested in receiving traffic for that group. In case of no reply to 3 consecutive IGMP membership queries, group is timed out by Router and it stops forwarding traffic for that group.
IGMP version 2 –
IGMPv2 is backward compatible with IGMPv1 and is referred in RFC 2236 (Internet Group Management Protocol, Version 2 specification for IGMPv2). Packet format of IGMPv2 message is shown in below diagram –
IGMP Version 2 uses following 4 types of IGMP messages:
- Membership query
- Version 1 membership report
- Version 2 membership report
- Leave group
Working of IGMP Version 2 is pretty close to that of Version 1, however one major enhancement in IGMPv2 being addition of leave group message. With this message, the hosts can actively communicate to the local multicast router and inform that they intend to leave the group. The router then sends out a group-specific query and concludes if any remaining hosts are interested in receiving the traffic. In case of now reply, the router times out the group and stops forwarding the traffic. The addition of the leave group message in IGMP Version 2 greatly reduces the leave latency compared to IGMP Version 1. Unwanted traffic can be minimized.
IGMP version 3 –
IGMPv3 is defined in RFC 3376 and later RFC 4604.IGMPv3 adds support for “source filtering” which enables a multicast receiver host to inform to a router the groups from which it wants to receive multicast traffic and from which sources this traffic is expected. The benefit of this membership information is to forward traffic from only those sources from which receivers request the traffic.
Below diagram shows the query packet format of an IGMPv3 message –
IGMPv3 Query Message Field Descriptions –
IGMP Version 3 uses following types of messages:
- Version 3 membership query
- Version 3 membership report
With IGMPv3, receivers signal membership to a multicast host group in the following two modes:
- INCLUDE mode – In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the INCLUDE list) from which it wants to receive traffic.
- EXCLUDE mode – In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the EXCLUDE list) from which it does not want to receive traffic. This indicates that the host wants to receive traffic only from other sources whose IP addresses are not listed in the EXCLUDE list. To receive traffic from all sources, like in the case of the Internet Standard Multicast (ISM) service model, a host expresses EXCLUDE mode membership with an empty EXCLUDE list.