IGMP Version 1 was specified in RFC-1112 . According to the specification, multicast routers periodically transmit Host Membership Query messages to determine which host groups have members on their directly attached networks. Query messages are addressed to the all-hosts group (224.0.0.1) and have an IP TTL = 1. This means that Query messages sourced by a router are transmitted across the directly attached subnetwork but are not forwarded by another multicast router.
When a host receives a Query message, it responds with a Host Membership Report for each host group to which it belongs. In order to avoid a flurry of Reports, each host starts a randomly- chosen Report delay timer for each of its group memberships. If, during the delay period, another Report is heard for the same group, the local host cancels its Report for the group. Otherwise, the host transmits a Report to the reported group address causing all other members of the group to cancel their Report messages. This procedure guarantees that Reports are spread out over a period of time and that only one Report is generated for each group with at least one member on the subnetwork.
It should be noted that multicast routers do not need to be directly addressed since their interfaces are configured to receive all multicast IP traffic. Also, a router does not need to maintain a detailed list of which hosts belong to each multicast group, the router only needs to know that at least one group member is present on a network interface.
Multicast routers periodically transmit Queries to update their knowledge of the group members present on each network interface. If the router does not receive a Report for a particular group after a number of Queries, the router assumes that group members are no longer present on the interface and the group is removed from the list of group memberships for the directly attached subnetwork.
When a host first joins a group, it immediately transmits a Report for the group rather than waiting for a router Query. This guarantees that the host will receive traffic addressed to the group if it is the first member of that group on the subnetwork.
The complete specification has recently been published in draft-ietf-idmr-igmp-v2-08.txt which replaces the informal specification contained in RFC-1112. IGMP Version 2 enhances and extends IGMP Version 1 while also providing backwards compatibility with Version 1 hosts.
IGMP Version 2 defines a procedure for the election of the multicast querier for each LAN. In IGMP Version 2, the router with the lowest IP address on the LAN is elected the multicast querier. In IGMP Version 1, the querier election was determined by the multicast routing protocol. This could lead to potential problems because each multicast routing protocol used different methods for determining the multicast querier.
IGMP Version 2 defines a new type of Query message - the Group- Specific Query message. Group-Specific Query messages allow a router to transmit a Query to a specific multicast group rather than all groups residing on a directly attached subnetwork.
Finally, IGMP Version 2 defines a Leave Group message to add low- leave latency to IGMP. When the last host to respond to a Query with a Report wishes to leave that specific group, the host transmits a Leave Group message to the all-routers group (224.0.0.2) with the group field set to the group to be left. In response to a Leave Group message, the router begins the transmission of Group-Specific Query messages on the interface that received the Leave Group message. If there are no Reports in response to the Group-Specific Query messages, the group is removed from the list of group memberships for the directly attached subnetwork.
IGMP Version 3 is a preliminary draft specification published in
IGMP Version 3 will help conserve bandwidth by allowing a
host to select the specific sources from which it wants to receive
traffic.Also, multicast routing protocols will be able to make use
this information to conserve bandwidth when constructing the
branches of their multicast delivery trees.
Finally, support for Leave Group messages first introduced in
IGMP Version 2 has been enhanced to support Group-Source Leave
messages. This feature allows a host to leave an entire group or
to specify the specific IP address of the group-source(s) that it
wishes to leave.