Introduction to IGMP v2 & IGMP v3
Introduction to IGMP v2 & IGMP v3
IGMPv2 was developed to address the issues and shortcomings of IGMPv1 protocol.
There are some differences between IGMPv1 and IGMPv2 which is addressed here:
- In IGMPv2, the IGMP Query is broken in to two categories. General Queries and Group specific Query.
- Another difference is IGMPv1 membership reports and IGMPv2 membership reports have different IGMP code types.
- IGMPv2 is backward compatible with IGMPv1.
Following are some key feature added on IGMPv2.
Querier Election process:
In this IGMPv2 has capability to elect its own Querier rather than depending upon any Multicast routing protocol to perform this process. It uses IP address in General Query Message to elect IGMP query router via following method:
- When IGMPv2 Process starts on routers, each router multicast an IGMPv2 General Query message to the All-Multicast-Systems group (184.108.40.206) with their interface address in the Source IP Address field of the message.
- When an IGMPv2 router receives a General Query message, the election of IGMPv2 Querier starts by comparing the source IP address in the message with its own interface address. The router having the lowest IP address on the subnet will be elected the IGMP Querier
- Whenever a General Query message is received from the IGMP Querier all non-Querier routers reset their querier timer. The default duration of the Querier timer is two times the Query Interval, or say as 250 seconds. If the querier timer expires and no general query message is received to any one of non-Querier router than IGMP Querier may have gone down, and the election process will run again to elect a new IGMP Querier.
Member response Time:
When a Query message is send by query router, it adds the maximum response time under which all host must have to respond for query message. The default value of response time is 10 sec.
Membership Query message:
In IGMPv2 the query message is broken down to two message:
- General Query: This Message is used to determine which multicast group are active and it is used to identify which host are still desirable to listen to specific multicast stream.
- Group Specific Query: It is used to find that if any host is still active and is willing to listen for any specific multicast group or we can say that it is used to determine whether a specific multicast group has any remaining members. Default timer is 1 sec and dead timer is 2 sec.
Leave Group Message:
By this method any host who want to leave any specific group and does not want to receive the stream will inform or notify router that it is willing to leave the group.
Below is the example which shows the steps when host H1 wants to leave the group.
In this example, Hosts H1 and H2 are members of multicast group 220.127.116.11 and Host H2 wants to leave the group. H3 is also member of multicast group 18.104.22.168
- Host H1 wants to leave its Multicast group 22.214.171.124 thus it will multicasts an IGMPv2 Leave Group message to the All-Routers (126.96.36.199) multicast group to inform all routers on the subnet that it is going to leave the group.
- Router A is Query Router will receive the H1 Leave group message will send the group specific query to determine whether any hosts remain for group 188.8.131.52 because routers keep a list only of the group memberships that are active on a subnet---not individual hosts that are members due to which only hosts that are members of this group will respond.
- Host H2 is still a member of group 184.108.40.206 also hears the Group-Specific Query and responds to the query with an IGMPv2 Membership Report to inform the routers on the subnet that a member of this group is still present. As H2 will reply to query message, host H3 will not reply due to Report suppression mechanism.
IGMPv3 has following features over other version of IGMP. These are addressed below:
- IGMPv3 is not enabled by default
- Adds include/exclude source list
- New membership report address: 220.127.116.11 and all IGMPv3 host sends report to this address – reply to query
- No report suppression mechanism.
IGMPv3 (S, G) join leaves method:
Below example states how IGMPv3 (S, G) join and leave works.
In this example, there are two sources, 10.10.10.10 and 18.104.22.168 and both are multicasting to group 22.214.171.124. Host H1 wants to receive traffic addressed to this group from Source 10.10.10.10 but not from Source 126.96.36.199. To do so, H1 sends an IGMPv3 message containing a list of (S, G) s that it wishes to join and a list of (S, G) that it wishes to leave. Router R3 can now use this information to prune traffic from Source 188.8.131.52 so that only Source 10.10.10.10 traffic is being delivered to R3.