Joining and leaving a multicast group using MLD
MLD exchanges group information between hosts and multicast routers on IPv6 networks. MLD is based on IGMP; however, while IGMP is a distinct transport-layer protocol, MLD is an extension of Internet Control Message Protocol for Internet Protocol version 6 (ICMPv6).
An IPv6 host that wants to receive a multicast stream joins the multicast group of address range FF00::/8, by sending a Multicast Listener Report message with the multicast group of interest as the destination address. The router registers the host for that multicast group and forwards multicast traffic to the local network.
An IPv6 host in a multicast group also receives Report messages sent to the multicast address from other hosts joining the group. Having hosts track these Reports allows the network to manage the MLD leave process.
When a host leaves a multicast group, it checks to see whether it ever received a Report for another host in the group. If not, the host knows it was the last host to join the group. In this case, the host sends a Multicast Listener Done message to signal the router that it is leaving the group. The message is sent to the IPv6 All-Routers multicast group address (FF02::2).
When the router receives a Done message, it responds with a multicast address-specific Multicast Listener Query. The Query requests any remaining group members to report their existence with a Report message. If any group member responds to the Query, the router continues multicast forwarding for this group. If no host responds, the router stops forwarding.