2. Overview of the Protocol
The Multicast Listener Discovery (MLD) protocol is used by an IPv6 router to discover the presence of multicast listeners on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. MLDv2 is an asymmetric protocol, specifying different behaviors for multicast listeners (hosts or routers) and multicast routers.
Il protocollo Multicast Listener Discovery (MLD) viene utilizzato da un router IPv6 per scoprire la presenza di ascoltatori multicast sui suoi collegamenti direttamente connessi, e per scoprire specificamente quali indirizzi multicast interessano quei nodi vicini. MLDv2 è un protocollo asimmetrico, che specifica comportamenti diversi per ascoltatori multicast (host o router) e router multicast.
2.1. Building Blocks
The protocol is built on two types of messages:
Il protocollo si basa su due tipi di messaggi:
-
Multicast Listener Query (Query): Sent by multicast routers to query the multicast reception state of neighboring interfaces.
Multicast Listener Query (Query): Inviato dai router multicast per interrogare lo stato di ricezione multicast delle interfacce vicine.
-
Multicast Listener Report (Report): Sent by multicast listeners to report their current multicast reception state.
Multicast Listener Report (Report): Inviato dagli ascoltatori multicast per segnalare il loro attuale stato di ricezione multicast.
2.2. Protocol Operations
The basic operation of MLDv2 is as follows:
Il funzionamento di base di MLDv2 è il seguente:
-
Multicast routers use MLDv2 to determine which multicast addresses have listeners on their attached links.
I router multicast utilizzano MLDv2 per determinare quali indirizzi multicast hanno ascoltatori sui loro collegamenti connessi.
-
Multicast listeners use MLDv2 to report their interest in receiving multicast packets for specific multicast addresses.
Gli ascoltatori multicast utilizzano MLDv2 per segnalare il loro interesse nel ricevere pacchetti multicast per specifici indirizzi multicast.
-
Routers maintain a state for each attached link, indicating which multicast addresses have listeners and, for MLDv2, which source addresses are of interest.
I router mantengono uno stato per ciascun collegamento connesso, indicando quali indirizzi multicast hanno ascoltatori e, per MLDv2, quali indirizzi sorgente sono di interesse.
-
When a router receives a Report from a listener, it updates its state.
Quando un router riceve un report da un ascoltatore, aggiorna il suo stato.
-
When a router receives a multicast packet, it forwards the packet to all links that have listeners for that packet's destination address (and source address, if applicable).
Quando un router riceve un pacchetto multicast, inoltra il pacchetto a tutti i collegamenti che hanno ascoltatori per l'indirizzo di destinazione (e l'indirizzo sorgente, se applicabile) di quel pacchetto.
2.3. MLDv2 Improvements
MLDv2 improves upon MLDv1 by adding support for Source-Specific Multicast (SSM). In MLDv1, a listener could only report interest in a group address (G). In MLDv2, a listener can report interest in a specific source (S) sending to a group (G), denoted as (S,G). This allows the network to optimize multicast delivery trees and prevent denial-of-service attacks from unwanted sources.
MLDv2 migliora MLDv1 aggiungendo il supporto per Source-Specific Multicast (SSM). In MLDv1, un ascoltatore poteva solo segnalare interesse per un indirizzo di gruppo (G). In MLDv2, un ascoltatore può segnalare interesse per una specifica sorgente (S) che invia a un gruppo (G), indicato come (S,G). Ciò consente alla rete di ottimizzare gli alberi di distribuzione multicast e prevenire attacchi denial-of-service da sorgenti indesiderate.