IGMPv2 is defined in RFC 2236. IGMPv2 has Leave Group message, which was not there in IGMPv1.
Please visit below links and learn the concepts of IPv4 multicast before proceeding further.
- Unicast, Multicast and Broadcast
- Broadcast domain
- Broadcast MAC Address - ff:ff:ff:ff:ff:ff
- IPv4 multicast MAC Addresses
- IPv4 Protocol, IPv4 header and fields of IPv4 header
- IPv4 addresses
- Class D multicast IP addresses
- IPv4 link-local multicast addresses
- IPv4 Internetwork control block multicast addresses
- IPv4 Source-Specific Multicast (SSM) address reservation
- IPv4 GLOP multicast addresses
- Administratively scoped multicast address block or Limited scope addresses
- Multicast IPv4 address to MAC address mapping
- TCP/IP Encapsulation and Decapsulation
- What is multicast
- What is multicast group
- Advantages and disadvantages of multicast
- Comparison of multicast with unicast and broadcast
- Advantages and disadvantages of multicast
- How IPv4 multicast works on LAN
- IGMP, What is IGMP, How IGMP works
- IGMP message types
- IGMP DR and Querier
- IGMPv1 - Internet Group Management Protocol Version 1
IGMPv2 message format
Below image shows the format of IGMPv2 message.
IGMPv2 messages are encapsulated in IPv4 header. The Protocol number for IGMP is 2.
Type field of IGMPv2 message
Type field is used to identify different types of IGMPv2 messages. Please refer following table to know different Type values.
|Message Type||Type value number|
|IGMP Membership Query (MQ) messages||0x11|
|IGMPv2 Membership Report (MR) messages||0x16|
|IGMPv2 Leave Group (LG) messages||0x17|
The Maximum Response Time of IGMPv2 message
The Maximum Response Time field of IGMPv2 message is used in Membership Query (MQ) messages. Maximum Response Time field specifies the maximum time a host can wait before sending a Membership Report message for a corresponding Membership Query message. The Maximum Response Time field is for Membership Query type of messages. In other type of IGMPv2 messages, it is set to 0. The Maximum Response Time field has its unit in 0.1 second (1/10th of a second).
Checksum field of IGMPv2 message
The Checksum field is 16-bit in length and it contains a 16-bit checksum for the message.
Group Address field of IGMPv2 message
Group Address field in IGMPv2 message contains the Class D multicast address of the multicast group.
How IGMPv2 works
IGMPv2 Join Messages
In IGMPv2, multicast clients interested in joining a multicast group generate and send unsolicited Membership Report (MR) messages. IGMPv2 Membership Report (MR) messages are sent to the multicast group address they wanted to join. IGMPv2 Membership Report messages (MR) includes the IPv4 Class D multicast address of the multicast group they want to join. IGMPv2 Membership Report (MR) message type number is 0x16.
The point to note is that there is no separate Type of IGMPv2 Join message. An unsolicited Membership Report (MR) message is used as IGMPv2 Join message.
So, what is the meaning of the word "unsolicited" here? We have already discussed in the previous lesson (IGMP (Internet Group Management Protocol)), that IGMP has a Query-Response type of operation. Querier will send Membership Query messages and multicast clients will respond with Membership Report (MR) message. An unsolicited IGMPv2 Membership Report (MR) message is a self-initiated message sent by a multicast client not as a reply for an IGMPv2 Membership Query message.
IGMP2 Membership Query messages are sent periodically. When a computer wants to join a multicast group, it needs to wait until next IGMPv2 Membership Query message from the Querier (local multicast router) to prepare and send a Membership Report message to join a multicast group. An unsolicited IGMPv2 Membership Report (MR) message can reduce the Join latency time period also.
A computer maintains a list of multicast groups that it had joined. If a new multicast group subscription is required, it will send again an unsolicited IGMPv2 Membership Report (MR) message to join that multicast group. IGMPv2 Join messages (or unsolicited Membership Report (MR) messages) for a multicast group are sent twice, one after the other.
A Wireshark packet capture screenshot of IGMPv2 Membership Report (MR) message is copied below.
IGMPv2 Membership Query (MQ) messages
Similar to IGMPv1, in IGMPv2 local multicast router periodically sends out General Membership Query (MQ) messages to verify that at least one multicast client is available in the subnet which is interested to receive traffic from that particular multicast group. IGMPv2 General Membership Query (MQ) messages are also sent to All systems link-local multicast address, 220.127.116.11.
A Wireshark packet capture screenshot of IGMPv2 General Membership Query (MQ) message is copied below.
IGMPv2 introduced another type of Membership Query (MQ) message, called as Group-specific Membership Query message. When a local router receives a Leave Group message from a multicast client located at its subnet, the router will send Group-specific Membership Query messages (twice, one after the other) addressed to that particular multicast group (instead of All systems link-local multicast address 18.104.22.168) to make sure there are no more computers interested in receiving multicast traffic addressed to the particular group in that subnet. Group-specific multicast query is a better way, because the query in addressed only to a particular group, asking if any members are left in a group, instead of asking everyone in the subnet. If there is no Membership Report message received for that Group-specific Membership Query message from the subnet, the router can make sure that no more multicast clients interested in traffic addressed to that group in that subnet. The router can then stop forwarding multicast traffic belongs to that multicast group to that subnet.
A Wireshark packet capture screenshot of IGMPv2 Group-specific Membership Query message is copied below.
IGMPv2 Leave Group (LG) messages
Previous version of IGMP (IGMPv1) does not have any Leave Group message to inform the local router about a multicast client’s intention to leave a multicast group. In IGMPv1, if a multicast client is no longer interested in receiving multicast traffic from a particular multicast group, it does not reply to the Membership Query (MQ) messages sent from the local multicast router. Local multicast routers may not know instantly that the multicast client had already left the multicast group, because Membership Query (MQ) messages are sent from the router to multicast clients periodically.
The main difference between IGMPv1 and IGMPv2 is that, Leave Group messages are available in IGMPv2. Multicast clients use Leave Group message to inform the local multicast router instantly that they are no longer interested in receiving multicast traffic from a particular multicast group. IGMPv2 Leave Group messages are sent to All routers link-local multicast group 22.214.171.124. All the routers in the network segment are listening to 126.96.36.199.
A Wireshark packet capture screenshot of IGMPv2 Leave Group (LG) message is copied below.