IGMPv1 was the first version that allowed to explicitly announce its willingness to receive a particular multicast traffic. This version had two messages only:
- the Membership Query and
- Membership Reply.
The Membership Query was always sent to 22.214.171.124 by multicast routers, and the Membership Report was always sent by stations to the group that a station wanted to join. There was no message to announce that a station is leaving (unsubscribing) a multicast group, resulting in situations that a multicast stream was fed to a segment even after all stations have left the particular group. Only after a timeout period the router discovered that there are no more subscribers to the group, and stopped the multicast feed.
IGMPv2, the next version of IGMP had some enhancement –
- Membership Query was of both types i.e. general (sent to 126.96.36.199) and group-specific (sent to a particular multicast group). The general Membership Query is used to find out all multicast groups that the stations are subscribed to. The group-specific Membership Query is used to find out if there is a subscriber for a particular group.
- Leave message (A new message )to advertise that a station is unsubscribing from a multicast group, allowing the router to stop an unnecessary multicast stream feed much more promptly.
- IGMPv2 cleared the way how a multicast querier (a router that send Queries) is elected if there are multiple multicast routers connected to a common network. In IGMPv1, all multicast routers were expected to send Queries. The IGMPv2stipulates that only the multicast router with the lowest IP address on the segment shall become the Querier and send Queries. Other routers are free to listen to the Replies (they have to do it anyway) but they do not send Queries themselves.
IGMPv3 was introduced as a need to support source specific multicast. . The IGMPv1/IGMPv2 does not have the capability to specify a particular sender. The extensions of the IGMP to support the source-specific multicast led to creation of the IGMPv3
Below table enumerates he comparison of IGMP v1 , v2 and V3 and the principle functionality –