Internet Group Management Protocol (IGMP) is used by a Host to notify the local Router that it likes to receive (or stop receiving) multicast traffic for a given group address.
There are 3 versions (IGMP v1, IGMP v2 & IGMP v3) available. IGMP v2 is the most common version of deployment. IGMPv2 will be automatically enabled on an interface when PIM is enabled on a layer 3 interface. If a host wants to join for a particular multicast group, they will send an IGMP Membership report to 224.0.0.2 (all-routers in local subnet) and the first-hop router will get it. When another host in the same network requests for the same group, layer 2 switch will suppress that request. no ip igmp snooping report-suppression command is used in order to disable this feature, if needed.
IGMPv1:
All the supporting hosts are allowed to join the multicast groups by the version of IGMP communication protocol, using membership requests and including some basic features. However, any host is not allowed to leave the group on their own and has to wait for a timeout.
The message packet format in IGMPv1:
IGMPv2:
IGMPv2 is the revised version of IGMPv1 communication protocol. The functionality of leaving the multicast group using group membership is added.
The message packet format in IGMPv2:
IGMPv3:. IGMPv3
Source-specific multicast and membership report aggregation has been added in IGMPv3. These reports are sent to 224.0.0.22.
The message packet format in IGMPv3: