Understanding MLD

Multicast allows a source to send a single copy of data using a single IP address from a well-defined range for an entire group of recipients (an MLD group). A source sends data to an MLD group by simply setting the destination IP address of the datagram to be the MLD group address. Sources do not need to register in any way before they can begin sending data to a group, and do not need to be members of the group themselves. Routers between the source and recipients use the group address to route the data, forwarding duplicate data packets only when the path to recipients diverges.

Hosts that wish to receive IPv6 data from the MLD group join the group by sending a message to a multicast router on a local interface, using MLD.

Multicast routers communicate among themselves using a multicast routing protocol, such as DVMRP of PIM-SM. These protocols calculate a multicast distribution tree of recipients to ensure that:

  • Multicast traffic reaches all recipients that have joined the MLD group
  • Multicast traffic does not reach networks that do not have any such recipients (unless the network is a transit network on the way to other recipients)
  • The number of identical copies of the same data flowing over the same link is minimized.

Group membership management is fundamental to the multicasting process. An arbitrary group of receivers can express interest in receiving a particular multicast stream, regardless of the physical or geographical boundaries of its members.

The purpose of IPv6 multicast group management is to optimize a switched network‘s performance so multicast packets will only be forwarded to those ports containing MLD group hosts or multicast switch devices instead of flooding to all ports in the subnet (VLAN).

MLD uses three key components to control multicast membership:

  • Source — A server that sends an IPv6 multicast data stream with a particular MLD destination IPv6 and MAC address. A server may not have direct MLD involvement, as it often does not receive a multicast stream, but only sends a multicast stream.
  • Querier — A device that periodically sends out queries in search of multicast hosts on a directly connected network. If multiple queriers are present on the LAN, the querier with the lowest IP address assumes the role.
  • Host — A client end station that sends one of two MLD messages to a querier:
    • Join message — Indicates the host wants to receive transmissions associated to a particular multicast group.
    • Leave message — Indicates the host wants to stop receiving the multicast transmissions.
Click to expand in new window
MLD Querier Determining Group Membership
Graphics/MLD1.png

As shown in the above figure, an MLD-enabled device can periodically ask its hosts if they want to receive multicast traffic. If there is more than one device on the LAN performing IPv6 multicasting, one of these devices is elected querier and assumes the responsibility of querying the LAN for group members.

Based on the group membership information learned from MLD, a device can determine which (if any) multicast traffic needs to be forwarded to each of its ports. At Layer 3, multicast switch devices use this information, along with a multicast routing protocol, to support IPv6 multicasting across the Internet.

MLD provides the final step in IPv6 multicast delivery. It is only concerned with forwarding multicast traffic from the local switch device to group members on a directly attached subnetwork or LAN segment.

MLD neither alters nor routes any IPv6 multicast packets. Since MLD is not concerned with the delivery of IPv6 multicast packets across subnetworks, an external IPv6 multicast device is needed if IPv6 multicast packets have to be routed across different subnetworks.