What is IGMP(Internet Group Management Protocol)?

IGMP is acronym for Internet Group Management Protocol. IGMP is a communication protocol used by hosts and adjacent routers for multicasting communication with IP networks and uses the resources efficiently to transmit the message/data packets. Multicast communication can have single or multiple senders and receivers and thus, IGMP can be used in streaming videos, gaming or web conferencing tools. This protocol is used on IPv4 networks and for using this on IPv6, multicasting is managed by Multicast Listener Discovery (MLD). Like other network protocols, IGMP is used on network layer. MLDv1 is almost same in functioning as IGMPv2 and MLDv2 is almost similar to IGMPv3.

The communication protocol, IGMPv1 was developed in 1989 at Stanford University. IGMPv1 was updated to IGMPv2 in year 1997 and again updated to IGMPv3 in year 2002.

Applications:

  • Streaming –
    Multicast routing protocol are used for audio and video streaming over the network i.e., either one-to-many or many-to-many.
  • Gaming –
    Internet group management protocol is often used in simulation games which has multiple users over the network such as online games.
  • Web Conferencing tools –
    Video conferencing is a new method to meet people from your own convenience and IGMP connects to the users for conferencing and transfers the message/data packets efficiently.

Types:
There are 3 versions of IGMP. These versions are backward compatible. Following are the versions of IGMP:

1. IGMPv1 :
The version of IGMP communication protocol allows all the supporting hosts to join the multicast groups using membership request and include some basic features. But, host cannot leave the group on their own and have to wait for a timeout to leave the group.
The message packet format in IGMPv1:




  • Version –
    Set to 1.
  • Type –
    1 for Host Membership Query and Host Membership Report.
  • Unused –
    8-bits of zero which are of no use.
  • Checksum –
    It is the one’s complement of the one’s complement of the sum of IGMP message.
  • Group Address –
    The group address field is zero when sent and ignored when received in membership query message. In a membership report message, the group address field takes the IP host group address of the group being reported.



2. IGMPv2 :
IGMPv2 is the revised version of IGMPv1 communication protocol. It has added functionality of leaving the multicast group using group membership.
The message packet format in IGMPv2:



Type –

0x11 for Membership Query
0x12 for IGMPv1 Membership Report
0x16 for IGMPv2 Membership Report
0x22 for IGMPv3 Membership Report
0x17 for Leave Group 


  • Max Response Time –
    This field is ignored for message types other than membership query. For membership query type, it is the maximum time allowed before sending a response report. The value is in units of 0.1 seconds.

  • Checksum –
    It is the one’s complement of the one’s complement of the sum of IGMP message.



  • Group Address –
    It is set as 0 when sending a general query. Otherwise, multicast address for group-specific or source-specific queries.



3. IGMPv3 :
IGMPv2 was revised to IGMPv3 and added source-specific multicast and membership report aggregation. These reports are sent to 224.0.0.22.

The message packet format in IGMPv3:


  • Max Response Time –
    This field is ignored for message types other than membership query. For membership query type, it is the maximum time allowed before sending a response report. The value is in units of 0.1 seconds.

  • Checksum –
    It is the one’s complement of the one’s complement of the sum of IGMP message.

  • Group Address –
    It is set as 0 when sending a general query. Otherwise, multicast address for group-specific or source-specific queries.

  • Resv –
    It is set zero of sent and ignored when received.

  • S flag –
    It represents Suppress Router-side Processing flag. When the flag is set, it indicates to suppress the timer updates that multicast routers perform upon receiving any query.

  • QRV –
    It represents Querier’s Robustness Variable. Routers keeps on retrieving the QRV value from the most recently received query as their own value until the most recently received QRV is zero.



  • QQIC –
    It represents Querier’s Query Interval Code.

  • Number of sources –
    It represents the number of source addresses present in the query. For general query or group-specific query, this field is zero and for group-and-source-specific query, this field is non-zero.

  • Source Address[i] –
    It represents the IP unicast address for N fields.

Working:
IGMP works on devices that are capable of handling multicast groups and dynamic multicasting. These devices allows the host to join or leave the membership in the multicast group. These devices also allows to add and remove clients from the group. This communication protocol is operated between host and local multicast router. When a multicast group is created, the multicast group address is in range of class D (224-239) IP addresses and is forwarded as destination IP address in the packet.



L2 or Level-2 devices such as switches are used in between host and multicast router for IGMP snooping. IGMP snooping is a process to listen to the IGMP network traffic in controlled manner. Switch receives the message from host and forwards the membership report to the local multicast router. The multicast traffic is further forwarded to remote routers from local multicast routers using PIM (Protocol Independent Multicast) so that clients can receive the message/data packets. Clients wishing to join the network sends join message in the query and switch intercepts the message and adds the ports of clients to its multicast routing table.

Advantages:

  • IGMP communication protocol efficiently transmits the multicast data to the receivers and so, no junk packets are transmitted to the host which shows optimized performance.
  • Bandwidth is consumed totally as all the shared links are connected.
  • Hosts can leave a multicast group and join another.

Disadvantages:

  • It does not provide good efficiency in filtering and security.
  • Due to lack of TCP, network congestion can occur.
  • IGMP is vulnerable to some attacks such as DOS attack (Denial-Of-Service).

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.