What is IGMP(Internet Group Management Protocol)?

07 Jul, 2022
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 sum of IGMP messages.
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 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).
krishna_97
Picked
Computer Networks
Full Form
Computer Networks
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Wireless Application Protocol
Types of Network Topology
RSA Algorithm in Cryptography
Mobile Internet Protocol (or Mobile IP)
GSM in Wireless Communication
RDBMS Full Form
HTTP Full Form
FCFS Scheduling Full Form
DBA Full Form
CDMA Full Form