What is IGMP(Internet Group Management Protocol)?
IGMP is an 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 the network layer. MLDv1 is almost the 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 the year 1997 and again updated to IGMPv3 in the year 2002. The IGMP protocol is used by the hosts and router to identify the hosts in a LAN that are the members of a group. IGMP is a part of the IP layer and IGMP has a fixed-size message. The IGMP message is encapsulated within an IP datagram.
The IP protocol supports two types of communication:
- Unicasting- It is a communication between one sender and one receiver. Therefore, we can say that it is one-to-one communication.
- Multicasting: Sometimes the sender wants to send the same message to a large of receivers simultaneously. This process is known as multicasting which has one-to-many communication.
Applications:
- Streaming - Multicast routing protocols 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.
What Types of IGMP Messages Are There?
The IGMP uses several types of messages to manage multicast group memberships:
- IGMP Membership Query: The Sent by routers to determine which multicast groups have members on a particular network segment. This query helps routers maintain accurate multicast group membership information.
- IGMP Membership Report: Sent by hosts to indicate their interest in joining a multicast group. This report informs the router of the presence of a host that wants to receive multicast traffic.
- IGMP Leave Group: Sent by hosts to indicate that they are leaving a multicast group. This message informs the router that the host no longer wants to receive traffic for that group.
- IGMP V3 Membership Report (in IGMPv3): This allows hosts to specify the exact multicast group addresses they want to join or leave and can include source-specific multicast (SSM) information.
Working of IGMP
IGMP works on devices that are capable of handling multicast groups and dynamic multicasting. These devices allow the host to join or leave the membership in the multicast group. These devices also allow to add and remove clients from the group. This communication protocol is operated between the host and the local multicast router. When a multicast group is created, the multicast group address is in the range of class D (224-239) IP addresses and is forwarded as the 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.
What is IGMP Snooping?
The IGMP snooping is a network switch feature that allows switches to listen to the IGMP messages exchanged between the hosts and routers. By "snooping" on these messages the switch can maintain a mapping of which ports are associated with the specific multicast groups. This mapping enables the switch to efficiently forward multicast traffic only to the ports that have subscribed members reducing unnecessary broadcast traffic and improving network performance.
How is Multicasting Different from Anycast and Unicast?
- Multicast: A method where data is sent from one sender to multiple specific recipients using the multicast address. It allows efficient data distribution to the group of users.
- Anycast: A method where data is sent to the nearest member of a group of potential recipients. It is used to route data to the closest server or service instance based on the network distance.
- Unicast: A method where data is sent from one sender to one specific recipient. Each communication session is established between a single sender and a single receiver.
Is IGMP a Layer 3 Protocol?
Yes, IGMP operates at Layer 3 of the OSI model which is the Network layer. It is used to the manage the membership of the multicast groups within IP networks facilitating the efficient distribution of the multicast traffic across the network segments.
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. It determines the entire payload of the IP datagram in which IGMP message is encapsulated.
- Group Address - It is set as 0 when sending a general query. Otherwise, multicast address for group-specific or source-specific queries. The behavior of this field depends on the type of the message sent.
For Membership Query, the group address is set to zero for General Query and set to multicast group address for a specific query. For Membership Report, the group address is set to the multicast group address is set to the multicast group address. For Leave Group, it is set to the multicast group address.
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.
What is Multicasting?
Multicasting is a method of sending network packets to a specific group of recipients simultaneously, rather than broadcasting to all devices on the network or sending individual copies to each recipient. It is an efficient way to distribute data such as streaming media or real-time updates to multiple users without the duplicating the data stream for each recipient. In multicasting, the sender transmits the data only once and network devices use multicast addressing to forward the packets to the subscribed group members.
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).
Conclusion
The IGMP is a critical protocol for managing multicast group memberships and enabling the efficient multicast communication in IP networks. By understanding IGMP, multicasting and related concepts network professionals can optimize data distribution, reduce network traffic and ensure effective multicast service delivery. The IGMP, through its various message types and features like IGMP snooping plays a significant role in the maintaining network performance and scalability in the environments that use multicast communications.