When a host in IGMPv2 sends a membership report to join a multicast group, it does not specify the source that it would like to receive the multicast traffic from.
IGMPv3 is an extension on top of IGMPv2 that adds support for the multicast source filtering, giving the host a choice to pick the source they wish to accept multicast traffic from.
IGMPv3 can co-exist with both IGMPv2 and IGMPv1
IGMPv3 also supports all of IGMPv2s messages, being backwards compatible with version 2.
There are differences between the versions: New added fields and a new IGMP message type called Version 3 Membership Report. The Version 3 Membership Report is to support source filtering.
In IGMPv3, hosts signal membership reports (join requests) to a multicast group address using one of two modes: Include mode or Exclude mode.
The host, in include mode, will announce membership to a multicast address and provide a list of source addresses it is willing to receive traffic from.
In exclude mode, the host will announce membership to a multicast address but provide a list of source addresses it is not willing to receive multicast traffic from. The host will only receive traffic from addresses that are not on the Exclude list.
In a backwards compatibility mode, the host will send an exclude mode membership report but with an empty list. Indicating that it is willing to accept traffic from any source address.