IGMP (Abbreviation for Internet Group Management Protocol) is used by the TCP/IP protocol suite to achieve dynamic multicasting. It allows a host to advertise its multicast group membership to neighbouring 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. It operates on the network layer, just the same as other network management protocols like ICMP.
Related- Multicast Interview QuestionsIt 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 its capabilities. IGMPv2 improves over v1 by adding the ability for a host to signal a desire to leave a multicast group while IGMPv3 improves over v2 mainly by supporting source-specific multicast and Membership Report aggregation.
IGMP version 1 –
Version 1, uses the 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 a 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 membership queries, the group is timed out by Router and it stops forwarding traffic for that group.
IGMP version 2 –
IGMPv2 is backwards compatible with v1 and is referred to in IGMP RFC 2236 (Internet Group Management Protocol, Version 2 specification for IGMPv2). The packet format of the v2 message is shown in the below diagram –
IGMP Version 2 uses the following 4 types of IGMP messages:
- Membership query
- Version 1 membership report
- Version 2 membership report
- Leave group
Working of Version 2 is pretty close to that of Version 1, however one major enhancement in v2 being the 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 no reply, the router times out the group and stops forwarding the traffic. The addition of the leave group message in Version 2 greatly reduces the leave latency compared to Version 1. Unwanted traffic can be minimized.
IGMP version 3 –
IGMPv3 is defined in IGMP RFC 3376 and later RFC 4604. V3 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.
Related- IGMP V1 vs V2 vs V3
Below diagram shows the query packet format of an IGMPv3 message –
IGMPv3 Query Message Field Descriptions –
IGMP Version 3 uses the following types of messages:
- Version 3 membership query
- Version 3 membership report
With v3, 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.
Related- IGMP vs CGMP
Related- IGMP vs ICMP