Groupe de travail Réseau	R. Vida, éd.	
Request for Comments : 3810	L. Costa, éd., LIP6	
RFC mise à jour : 2710	juin 2004	
Catégorie : En cours de normalisation	Traduction Claude Brière de L’Isle	

Découverte d’écouteur de diffusion groupée version 2 (MLDv2) pour IPv6

Statut de ce mémoire
Le présent document spécifie un protocole Internet en cours de normalisation pour la communauté de l’Internet, et appelle à des discussions et des suggestions pour son amélioration. Prière de se reporter à l’édition actuelle du STD 1 "Normes des protocoles officiels de l’Internet" pour connaître l’état de normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.
(La présente traduction incorpore l’errata n° 231 du 7/6/2004)

Notice de copyright
Copyright (C) The Internet Society (2004). Tous droits réservés.

Résumé
Le présent document met à jour la RFC2710, et il spécifie la version 2 du protocole de découverte d’écouteur de diffusion groupée (MLDv2, Multicast Listener Discovery Protocol). MLD est utilisé par un routeur IPv6 pour découvrir la présence d’écouteurs de diffusion groupée sur les lignes directement rattachées, et pour découvrir quelles adresses de diffusion groupée sont intéressantes pour ces nœuds du voisinage. MLDv2 est conçu pour être interopérable avec MLDv1. MLDv2 ajoute la capacité pour un nœud de faire rapport de son intérêt pour l’écoute de paquets qui ont une adresse de diffusion groupée particulière et qui proviennent seulement d’adresses de source spécifiques ou de toutes les sources excepté des adresses de source spécifiques.

Table of Contents
1. Introduction	2
2. Vue d’ensemble du protocole	2
2.1 Construction de l’état d’écoute de diffusion groupée chez les écouteurs d’adresse de diffusion groupée	3
2.2 Échange de messages entre les nœuds interrogateur et écouteur	3
2.3 Construction de l’état d’écouteur de diffusion groupée sur les routeurs de diffusion groupée	5
3. Interface de service pour demander la réception de diffusion groupée IP	6
4. État d’écoute de diffusion groupée entretenu par les nœuds	7
4.1 État par prise	7
4.2 État par interface	7
5. Formats de message	8
5.1 Message d’interrogation d’écouteur de diffusion groupée	9
5.2 Message de rapport d’écouteur de diffusion groupée version 2	12
6. Description du protocole pour les écouteurs d’adresse de diffusion groupée	16
6.1 Action sur changement d’état d’interface	17
6.2 Action à réception d’une interrogation	18
6.3 Action à l’expiration du temporisateur	19
7. Description du protocole pour les routeurs de diffusion groupée	20
7.1 Conditions pour les interrogations MLD	21
7.2 État MLD entretenu par les routeurs de diffusion groupée	22
7.3 Règles de transmission spécifiques de source MLDv2	24
7.4 Action à réception des rapports	24
7.5 Changement des modes de filtre de routeur	26
7.6 Action à réception des interrogations	26
8. Interopération avec MLDv1	27
8.1 Distinction des versions d’interrogation	28
8.2 Comportement d’écouteur d’adresse de diffusion groupée	28
8.3 Comportement du routeur de diffusion groupée	28
9. Liste des temporisateurs, compteurs, et valeurs par défaut	29
9.1 Variable de robustesse	29
9.2 Intervalle d’interrogation	29
9.3 Intervalle de réponse à interrogation	29
9.4 Intervalle d’écoute d’adresse de diffusion groupée	30
9.5 Temporisation de présence d’autre interrogateur	30
9.6Intervalle de début d’interrogation	30
9.7 Début de compte d’interrogation	30
9.8 Intervalle d’interrogation du dernier écouteur	30
9.9 Compte d’interrogation du dernier écouteur	30
9.10 Heure d’interrogation du dernier écouteur	30
9.11 Intervalle de rapport non sollicité	31
9.12 Temporisation de présence d’interrogateur de plus ancienne version	31
9.13 Temporisation de présence d’un hôte de version précédente	31
9.14 Configuration des temporisateurs	31
10. Considérations pour la sécurité	32
10.1 Message Interrogation	32
10.2 Messages de rapport de l’état en cours	32
10.3 Messages de rapport de changement d’état	32
11. Considérations relatives à l’IANA	33
12. Références	33
12.1 Références normatives	33
12.2 Références pour information	33
13. Remerciements	33
Appendice A Motifs des concepts	34
A.1 Besoin des messages de changement d’état	34
A.2 Suppression d’hôte	34
A.3 Passages des modes de filtre de routeur de EXCLUDE à INCLUDE	34
Appendice B Résumé des changements par rapport à MLDv1	35
Déclaration complète de droits de reproduction	36

1.	Introduction

Le protocole de découverte d’écouteur de diffusion groupée (MLD, Multicast Listener Discovery Protocol) est utilisé par les routeurs IPv6 pour découvrir la présence d’écouteurs de diffusion groupée (c’est-à-dire, de nœuds qui souhaitent recevoir des paquets en diffusion groupée) sur les liaisons qui leur sont directement rattachées, et pour découvrir spécifiquement quelles adresses de diffusion groupée sont intéressantes pour leurs nœuds voisins. Noter qu’un routeur de diffusion groupée peut être lui-même un écouteur pour une ou plusieurs adresses de diffusion groupée ; dans ce cas, il effectue à la fois la "partie routeur de diffusion groupée" et la "partie écouteur d’adresse de diffusion groupée" du protocole, pour collecter les informations d’écouteur de diffusion groupée nécessaires pour son protocole d’acheminement de diffusion groupée d’une part, et d’autres part pour s’informer lui-même et les autres routeurs de diffusion groupée du voisinage de son état d’écoute.

Le présent document spécifie la version 2 de MLD. La précédente version de MLD est spécifiée dans la [RFC2710]. On s’y réfère dans le présent document comme à MLDv1. MLDv2 est une traduction du protocole IGMPv3 [RFC3376] pour la sémantique IPv6.

Le protocole MLDv2, par rapport à MLDv1, ajoute la prise en charge du "filtrage de source", c’est-à-dire, la capacité pour un nœud à faire rapport de son intérêt pour l’écoute de paquets provenant *seulement* d’adresses de source spécifiques, comme exigé pour prendre en charge la diffusion groupée spécifique de source [RFC3569], ou de *seulement* des adresses de source spécifiques envoyées à une adresse de diffusion groupée particulière. MLDv2 est conçu pour être interopérable avec MLDv1.

Les mots clés en majuscule "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" dans le présent document sont à interpréter comme décrit dans la [RFC2119]. De préférences à des italiques, l’insistance est indiquée ici en encadrant un mot ou une phrase de caractères "*". De plus, des crochets sont utilisés pour noter la valeur de la variable qui y est incluse, par opposition à la variable elle-même, écrite sans crochets.

2.	Vue d’ensemble du protocole

Cette section fait une brève description du fonctionnement du protocole. Les sections qui suivent présentent les détails du protocole.

MLD est un protocole asymétrique ; il spécifie des comportements distincts pour les écouteurs d’adresse de diffusion groupée (c’est-à-dire, les hôtes ou routeurs qui écoutent les paquets en diffusion groupée) et les routeurs de diffusion groupée. L’objet de MLD est de permettre à chaque routeur de diffusion groupée d’apprendre, pour chacune de ses liaisons directement rattachées, quelles adresses de diffusion groupée et quelles sources ont des écouteurs intéressés sur cette liaison. Les informations collectées par MLD sont fournies quel que soit le protocole d’acheminement de diffusion groupée utilisé par le routeur, afin d’assurer que les paquets en diffusion groupée sont livrés à toutes les liaisons où il y a des écouteurs intéressés par de tels paquets.

Les routeurs de diffusion groupée ont seulement besoin de savoir *qu’au moins un* nœud sur une liaison rattachée écoute les paquets pour une adresse de diffusion groupée particulière, provenant d’une certaine source ; un routeur de diffusion groupée n’est pas obligé de garder trace *individuellement* des intérêts de chaque nœud voisin. (Néanmoins, voir la discussion de l’élément 1 de l’Appendice A2.)

Un routeur de diffusion groupée effectue la *partie routeur* du protocole MLDv2 (décrite en détails à la section 7) sur chacune de ses liaisons directement rattachées. Si un routeur de diffusion groupée a plus d’une interface connectée à la même liaison, il a seulement besoin de faire fonctionner le protocole sur une de ces interfaces. Le comportement du routeur dépend de si il y a plusieurs routeurs de diffusion groupée sur le même sous-réseau, ou non. Si c’est le cas, un mécanisme de choix de l’interrogateur (décrit au paragraphe 7.6.2) est utilisé pour désigner un seul routeur de diffusion groupée comme étant dans l’état Interrogateur. Ce routeur est appelé l’interrogateur. Tous les routeurs de diffusion groupée sur le sous-réseau écoutent les messages envoyés aux écouteurs d’adresse de diffusion groupée, et ils entretiennent le même état d’informations d’écoute de diffusion groupée, afin qu’ils puissent jouer le rôle d’interrogateur si le présent interrogateur venait à échouer. Néanmoins, seul l’interrogateur envoie des messages d’interrogation périodiques ou déclanchés sur le sous-réseau, comme décrit au paragraphe 7.1.

Un écouteur d’adresse de diffusion groupée effectue la *partie écouteur* du protocole MLDv2 (décrite en détail à la section  6) sur toutes les interfaces sur lesquelles la réception est prise en charge, même si plus d’une de ces interfaces sont connectées à la même liaison.

2.1	Construction de l’état d’écoute de diffusion groupée chez les écouteurs d’adresse de diffusion groupée
Les protocoles et applications de couche supérieure qui fonctionnent sur un nœud écouteur d’adresse de diffusion groupée utilisent des appels spécifiques d’interface de service (décrits à la Section 3) pour demander à la couche IP d’activer ou de désactiver la réception des paquets envoyés à des adresses de diffusion groupée spécifiques. Le nœud garde l’état Écoute d’adresse de diffusion groupée pour chaque prise sur laquelle les appels de l’interface de service ont été invoqués (paragraphe 4.1). En plus de cet état d’écoute de diffusion groupée par prise, un nœud doit aussi maintenir ou calculer l’état d’écoute de diffusion groupée pour chacune de ses interfaces (paragraphe 4.2). Le concept est que cet état consiste en un ensemble d’enregistrements, chaque enregistrement contenant une adresse IPv6 de diffusion groupée, un mode filtre, et une liste de sources. Le mode filtre peut être soit INCLURE soit EXCLURE. En mode INCLURE, la réception des paquets envoyés à l’adresse de diffusion groupée spécifiée n’est activée *que* à partir des adresses de source énumérées dans la liste des sources. En mode EXCLURE, la réception des paquets envoyés à cette adresse de diffusion groupée est activée à partir de toutes les adresses de source *excepté* celles énumérées dans la liste des sources.

Au plus un enregistrement d’adresse de diffusion groupée existe pour une certaine interface. Cet état par interface est déduit de l’état par prise, mais peut en différer lorsque différentes prises ont des modes de filtre et/ou des listes de sources différents pour la même adresse et interface de diffusion groupée. Après qu’un paquet en diffusion groupée a été accepté d’une interface par la couche IP, ses livraisons suivantes à l’application connectée à une certaine prise dépendent de l’état d’écoute de diffusion groupée de cette prise (et éventuellement aussi d’autres conditions, comme l’accès de couche transport auquel la prise est liée). Noter que les messages MLDv2 ne sont pas soumis au filtrage de source et doivent toujours être traités par les hôtes et les routeurs.

2.2	Échange de messages entre les nœuds interrogateur et écouteur
Il y a trois types de messages d’interrogation MLDv2 : les interrogations générales, les interrogations spécifiques d’adresse de diffusion groupée, et les interrogations spécifiques d’adresse et de source de diffusion groupée. L’interrogateur envoie périodiquement des interrogations générales, pour apprendre les informations d’écouteur d’adresse de diffusion groupée d’une liaison rattachée. Ces interrogations sont utilisées pour construire et rafraîchir l’état d’écouteur d’adresse de diffusion groupée chez tous les routeurs de diffusion groupées sur la liaison.

Les nœuds répondent à ces interrogations en rapportant leur état d’écouteur d’adresse de diffusion groupées par interface, par des messages Rapport d’état en cours envoyés à une adresse de diffusion groupée spécifique qu’écoutent tous les routeurs MLDv2 qui sont sur la liaison. D’un autre côté, si l’état d’écoutant d’un nœud change, le nœud rapporte immédiatement ces changements par un message Rapport de changement d’état. Le rapport de changement d’état contient des enregistrements Changement de mode de filtre, Changement de liste de sources, ou des enregistrements des deux types. Une description détaillée des messages de rapport est présentée au paragraphe 5.2.12.

Les changements d’état de routeur et d’écouteur sont tous deux principalement déclanchés par l’arrivée à expiration d’un temporisateur spécifique, ou par la réception d’un message MLD (le changement d’état d’écouteur peut aussi être déclanché par l’invocation d’un appel d’interface de service). Donc, pour améliorer la robustesse du protocole, en dépit de la non fiabilité éventuelle des échanges de message, les messages sont retransmis plusieurs fois. De plus, des temporisateurs sont établis afin de tenir compte de possibles pertes de message, et pour attendre les retransmissions.

Les interrogations générales et les rapports d’état en cours périodiques n’appliquent pas cette règle, afin de ne pas surcharger la liaison ; on suppose qu’en général, ces messages ne génèrent pas de changement d’état, leur principal objet étant de rafraîchir l’état existant. Donc, même si un tel message est perdu, l’état correspondant sera rafraîchi durant la prochaine période de rapport.

À l’opposé des rapports d’état en cours, les rapports de changement d’état sont retransmis plusieurs fois, afin d’éviter qu’un ou plusieurs routeurs de diffusion groupée les manquent. Le nombre de retransmissions dépend de la variable dite de robustesse. Cette variable permet de régler le protocole conformément à la perte de paquets attendue sur une liaison. Si on s’attend à ce qu’une liaison soit encline aux pertes (par exemple, une connexion sans fil) la valeur de la variable de robustesse peut être augmentée. MLD est robuste à [Variable de robustesse] - 1 perte de paquet. Le présent document recommande une valeur par défaut de 2 pour la variable de robustesse (voir le paragraphe 9.1).

Si interviennent plus de changements à la même entrée d’état par interface avant que toutes les retransmissions du rapport de changement d’état pour le premier changement aient été achevées, chaque changement supplémentaire déclanche la transmission immédiate d’un nouveau rapport de changement d’état. Le paragraphe 6.1 montre comment le contenu de ce nouveau rapport est calculé. Les retransmissions du nouveau rapport de changement d’état seront aussi programmées, afin de s’assurer que chaque instance de changement d’état est transmise au moins [Variable de robustesse] fois.

Si un nœud sur une liaison exprime, par un rapport de changement d’état, son désir de ne plus écouter une adresse (ou source) de diffusion groupée particulière, l’interrogateur doit interroger les autres écouteurs de l’adresse (ou source) de diffusion groupée avant de supprimer l’adresse (ou source) de diffusion groupée de son état d’écouteur d’adresse de diffusion groupée et d’arrêter le trafic correspondant. Donc, l’interrogateur envoie une interrogation spécifique d’adresse de diffusion groupée pour vérifier si il y a des nœuds qui écoutent encore ou non une adresse de diffusion groupée spécifiée. De façon similaire, l’interrogateur envoie une interrogation spécifique de source et d’adresse de diffusion groupée pour vérifier si, pour une adresse de diffusion groupée spécifiée, il y a encore des nœuds qui écoutent un ensemble spécifique de sources, ou non. Le paragraphe 5.1.13 décrit chaque interrogation plus en détail.

Les interrogations spécifiques d’adresse de diffusion groupée et les interrogations spécifiques de source et d’adresse de diffusion groupée ne sont toutes deux envoyées qu’en réponse aux rapports de changement d’état, jamais en réponse aux rapports d’état en cours. Cette distinction entre les deux types de rapports est nécessaire pour éviter que le routeur traite tous les rapports d’écouteur de diffusion groupée comme de potentiels changements d’état. En faisant ainsi, le mécanisme de cessation rapide de MLDv2, décrit plus en détail au paragraphe 2.2, pourrait n’être pas efficace si un rapport de changement d’état est perdu, et si seulement le rapport d’état en cours suivant est reçu par le routeur. Néanmoins, il évite un traitement accru au routeur et réduit le trafic MLD sur la liaison. On trouvera plus de détails sur la nécessité de distinguer entre les deux type de rapport à l’Appendice A1.

Les nœuds répondent aux interrogations ci-dessus au moyen des rapports d’état en cours, qui ne contiennent leur état d’écouteur d’adresse de diffusion groupée par interface que pour les adresses de diffusion groupée (ou sources) interrogées.

Comme on l’a dit précédemment, afin d’assurer la robustesse du protocole, toutes les interrogations, excepté les interrogations générales périodiques, sont retransmises plusieurs fois dans un certain intervalle de temps. Le nombre de retransmissions dépend de la variable de robustesse. Si, alors qu’on programme de nouvelles interrogations, il y a des interrogations en instance de retransmission pour la même adresse de diffusion groupée, les nouvelles interrogations et les interrogations en instances devront être fusionnées. De plus, les rapports d’hôtes reçus pour une adresse de diffusion groupée avec des interrogations en instance peuvent affecter le contenu de ces interrogations. Le processus de construction et d’entretien de l’état des interrogations en instance est présenté au paragraphe 7.6.3.

La robustesse du protocole est aussi améliorée par l’utilisation du fanion S (Suppression du traitement côté routeur). Comme on l’a décrit précédemment, lorsque une interrogation spécifique d’adresse de diffusion groupée ou une interrogation spécifique d’adresse et de source de diffusion groupée est envoyée par l’interrogateur, un certain nombre de retransmissions de l’interrogation sont programmées. Dans l’interrogation originale (la première) le fanion S est à zéro. Lorsque l’interrogateur envoie cette interrogation, il diminue les temporisateurs pour l’adresse de diffusion groupée (ou la source) concernée à une certaine valeur ; de même, tout routeur de diffusion groupée non interrogateur qui reçoit l’interrogation diminue ses temporisateurs de la même façon. Néanmoins, tout en attendant l’envoi des prochaines interrogations programmées, l’interrogateur peut recevoir un rapport qui met à jour les temporisateurs. Les interrogations programmées doivent toujours être envoyées, afin d’assurer qu’un routeur non interrogateur conserve son état synchronisé avec l’interrogateur actuel (le routeur non interrogateur peut avoir manqué la première interrogation). Néanmoins, les temporisateurs ne devraient pas être diminués à nouveau, car une réponse valide a déjà été reçue. Donc, dans les interrogations suivantes, l’interrogateur établit le fanion S.

2.3	Construction de l’état d’écouteur de diffusion groupée sur les routeurs de diffusion groupée
Les routeurs de diffusion groupée qui mettent en œuvre MLDv2 (qu’ils soient ou non dans l’état Interrogateur) gardent l’état par adresse de diffusion groupée par liaison de rattachement. Cet état d’écouteur d’adresse de diffusion groupée consiste en un mode Filtre, un temporisateur de filtre, et une liste de sources, avec un temporisateur associé à chaque source de la liste. Le mode Filtre est utilisé pour résumer l’état d’écoute total d’une adresse de diffusion groupée à un ensemble minimum, tel que les états d’écoute de tous les nœuds soient respectés. Le mode Filtre peut changer en réponse à la réception de types particuliers de messages de rapport, ou lorsque surviennent certaines conditions de temporisateur.

Un routeur est en mode INCLURE pour une adresse de diffusion groupée spécifique sur une certaine interface si tous les écouteurs sur la liaison qui sont intéressés par cette adresse sont dans le mode INCLURE. L’état du routeur est représenté par la notation INCLURE (A), où A est une liste de sources, appelée la "liste Inclure". La liste Inclure est l’ensemble des sources que un ou plusieurs écouteurs sur la liaison ont demandé à recevoir. Toutes les sources de la liste Inclure auront les transmissions du routeur. Toute autre source qui n’est pas sur la liste Inclure sera bloquée par le routeur.

Une source peut être ajoutée à la liste Inclure courante si un écoutant de mode INCLURE envoie un État en cours ou un rapport de changement d’état qui comporte cette source. Chaque source de la liste Inclure est associée à un temporisateur de source qui est mis à jour chaque fois qu’un écoutant en mode INCLURE envoie un rapport qui confirme son intérêt pour cette source spécifique. Si le temporisateur d’une source de la liste Inclure arrive à expiration, la source est supprimée de la liste Inclure.

À côté de ce mécanisme de "départ en douceur", il y a aussi un schéma de "départ rapide" dans MLDv2 ; il se fonde aussi sur l’utilisation de temporisateurs de source. Lorsque un nœud en mode INCLURE exprime le désir d’arrêter d’écouter une source spécifique, tous les routeurs de diffusion groupée sur la liaison diminuent jusqu’à une certaine valeur leurs temporisateurs pour cette source. L’interrogateur envoie alors une adresse de diffusion groupée et une interrogation spécifique de source, pour vérifier si il y a d’autres écouteurs pour cette source sur la liaison, ou pas. Si un rapport qui comporte cette source est reçu avant l’expiration du temporisateur, tous les routeurs de diffusion groupée sur la liaison mettent à jour le temporisateur de source. Sinon, la source est supprimée de la liste Inclure. Le traitement de la liste Inclure, selon les rapports reçus, est détaillé dans les Tableaux 7.4.1 et 7.4.2.

Un routeur est en mode EXCLURE pour une adresse de diffusion groupée spécifique sur une certaine interface si il y a au moins un écoutant dans le mode EXCLURE pour cette adresse sur la liaison. Lorsque le premier rapport est reçu d’un tel écoutant, le routeur établit le temporisateur de filtre qui correspond à cette adresse. Ce temporisateur est remis à zéro à chaque fois qu’un écoutant en mode EXCLURE confirme son état d’écoute par un rapport d’état en cours. Le temporisateur est aussi mis à jour lorsque un écoutant, anciennement en mode INCLURE, annonce son changement pour le mode Filtre par un message de rapport de changement d’état. Si le temporisateur de filtre arrive à expiration, cela signifie qu’il n’y a plus d’écoutant en mode EXCLURE sur la liaison. Dans ce cas, le routeur revient au mode INCLURE pour cette adresse de diffusion groupée.

Lorsque le routeur est en mode EXCLURE, l’état du routeur est représenté par la notation EXCLURE (X,Y), où X est appelé la "liste Demandée" et Y est appelé la "liste Exclue". Toutes les sources, excepté celles de la liste Exclue, vont être transmises par le routeur. La liste Demandée n’a pas d’effet sur la transmission. Néanmoins, le routeur doit tenir la liste Demandée pour deux raisons :

o	Pour garder trace des sources qu’écoutent les écouteurs en mode INCLURE. C’est nécessaire pour assurer une transition sans à-coups du routeur en mode INCLURE, lorsque il ne reste plus d’écoutant en mode EXCLURE. Cette transition ne devrait pas interrompre le flux de trafic avec les écouteurs en mode INCLURE pour cette adresse de diffusion groupée. Donc, au moment de la transition, la liste demandée devrait contenir l’ensemble des sources que les nœuds en mode INCLURE ont explicitement demandé.

Lorsque le routeur passe en mode INCLURE, les sources de la liste demandée sont passées à la liste Inclure, et la liste Exclure est supprimée. Avant le passage, la liste demandée peut contenir une estimation inexacte des sources que les écouteurs en mode INCLURE écoutent – peut-être trop grande ou trop petite. Ces inexactitudes sont dues au fait que la liste demandée est aussi utilisée pour des besoins de blocage rapide, comme décrit plus loin. Si un tel blocage rapide est nécessaire, certaines sources peuvent être supprimées de la liste demandée (comme montré aux Tableaux 7.4.1 et 7.4.2) afin de réduire l’état du routeur. Néanmoins, dans chacun de ces cas, le temporisateur de filtre est aussi mis à jour. Donc, les écouteurs en mode INCLURE vont avoir assez de temps, avant une éventuelle commutation, de reconfirmer leur intérêt pour la ou les sources éliminées, et reconstruire la liste demandée en conséquence. Le protocole assure que lorsque intervient une commutation au mode INCLURE, la liste demandée sera précise. Les détails de la transition du routeur au mode INCLURE sont présentés à l’Appendice A3.

o	Pour permettre le blocage rapide de sources précédemment non bloquées. Si le routeur reçoit un rapport qui contient une telle demande, les sources concernées sont ajoutées à la liste demandée. Leurs temporisateurs sont réglés à une petite valeur, et une adresse de diffusion groupée et une interrogation spécifique de source sont envoyées par l’interrogateur, pour vérifier si il y a des nœuds sur la liaison qui sont toujours intéressés par ces sources, ou non. Si aucun nœud n’annonce son intérêt à recevoir ces sources spécifiques, les temporisateurs de ces sources expirent. Puis, les sources sont déplacées de la liste demandée à la liste exclue. À partir de là, les sources seront bloquées par le routeur.

Le traitement de l’état du routeur en mode EXCLURE, selon les rapports reçus, est détaillé aux Tableaux 7.4.1 et 7.4.2.

Les comportements de routeur et d’écoutant MLDv2 décrits dans le présent document ont été définis pour assurer la rétro compatibilité avec les hôtes et routeurs MLDv1. Les questions d’interopérabilité sont détaillées à la section 8.

3.	Interface de service pour demander la réception de diffusion groupée IP

Au sein d’un système IP, il y a (au moins conceptuellement) une interface de service qui est utilisée par des protocoles ou programmes d’application de couche supérieure pour demander à la couche IP d’activer ou désactiver la réception des paquets envoyés à des adresses de diffusion groupée IP spécifiques. Afin de tirer complètement parti des capacités de MLDv2, un interface de service IP d’un nœud doit prendre en charge l’opération suivante :

IPv6MulticastListen ( prise, interface, adresse IPv6 de diffusion groupée, mode filtre, liste de sources )

où :

o	"prise" est un paramètre spécifique de la mise en œuvre qui est utilisé pour distinguer entre différentes entités demandeuses (par exemple, programmes, processus) au sein du nœud ; le paramètre prise des appels de systèmes BSD Unix en est un exemple spécifique.

o	"interface" est un identifiant local de l’interface réseau sur laquelle sera activée ou désactivée la réception de l’adresse de diffusion groupée spécifiée. Les interfaces peuvent être physiques (par exemple, une interface Ethernet) ou virtuelles (par exemple, le point d’extrémité d’un circuit virtuel en relais de trame ou un "tunnel" IP dans IP). Une mise en œuvre peut permettre qu’une valeur spéciale "non spécifiée" soit mise comme paramètre d’interface, auquel cas la demande va s’appliquer à l’interface "principale" ou "par défaut" du nœud (peut-être établie par la configuration du système). Si la réception de la même adresse de diffusion groupée est désirée sur plus d’une interface, IPv6MulticastListen est invoqué séparément pour chacune des interfaces désirées.

o	"adresse IPv6 de diffusion groupée" est l’adresse de diffusion groupée à laquelle appartient la demande. Si la réception de plus d’une adresse de diffusion groupée sur une certaine interface est désirée, IPv6MulticastListen est invoqué séparément pour chaque adresse désirée.

o	"mode filtre" peut être INCLURE ou EXCLURE. En mode INCLURE, la réception des paquets envoyés à l’adresse de diffusion groupée spécifiée est demandée *seulement* à partir des adresses de source énumérées dans le paramètre liste de sources. En mode EXCLURE, la réception des paquets envoyés à l’adresse de diffusion groupée concernée est demandée à partir de toutes  les adresses de source *sauf* celles énumérées dans le paramètre liste des sources.

o	"liste de sources" est une liste non ordonnée de zéro, une ou plusieurs adresses d’envoi individuel à partir desquelles la réception en diffusion groupée est désirée ou non désirée, selon le mode de filtre. Une mise en œuvre PEUT imposer une limite à la taille des listes de sources. Lorsque une opération cause le dépassement de la limite de taille de la liste de sources, l’interface de service DEVRAIT retourner une erreur.

Pour une certaine combinaison de prise, interface, et adresse IPv6 de diffusion groupée, un seul mode filtre et une seule liste de sources peuvent être actives à un moment donné. Néanmoins, le mode filtre ou la liste de sources, ou les deux, peuvent être changées par des demandes IPv6MulticastListen ultérieures qui spécifient la même prise, interface, et adresse IPv6 de diffusion groupée. Chacune des demandes suivantes remplace complètement toute demande antérieure pour la prise, interface, et adresse de diffusion groupée en cause.

Le protocole MLDv1 ne prenait pas en charge les filtres de source, et avait une interface de service plus simple ; elle consistait en les opérations Début d'écoute et Fin d'écoute pour activer et désactiver l’écoute sur une certaine adresse de diffusion groupée (à partir de *toutes* les sources) sur une certaine interface. Les opérations équivalentes dans la nouvelle interface de service sont les suivantes :

L’opération Début d’écoute est équivalente à :

IPv6MulticastListen ( prise, interface, adresse IPv6 de diffusion groupée, EXCLURE, {} )

et l’opération Arrêt d’écoute est équivalente à :

IPv6MulticastListen ( prise, interface, adresse IPv6 de diffusion groupée, INCLURE, {} )

où {} est une liste de source vide.

Un exemple d’API qui donne les capacités mentionnées dans cette interface de service est donné dans la [RFC3678].

4.	État d’écoute de diffusion groupée entretenu par les nœuds
4.1	État par prise
Pour chaque prise sur laquelle IPv6MulticastListen a été invoqué, le nœud enregistre l’état d’écoute de diffusion groupée désiré pour cette prise. Cet état consiste conceptuellement en un ensemble d’enregistrements de la forme :

(interface, adresse IPv6 de diffusion groupée, mode filtre, liste de sources)

L’état par prise évolue en réponse à chaque invocation de IPv6MulticastListen sur la prise, comme suit :

o	Si le mode de filtre demandé est INCLURE *et* si la liste de sources demandée est vide, l’entrée qui correspond à l’interface et adresse de diffusion groupée demandées est alors supprimée, si elle est présente. Si aucune de ces entrées n’est présente, la demande n’a pas d’effet.

o	Si le mode de filtre demandé est EXCLURE *ou* si la liste de sources demandée n’est pas vide, l’entrée qui correspond à l’interface et adresse de diffusion groupée demandées, si elles sont présentes, est alors changée pour contenir le mode de filtre et la liste de sources demandées. Si une telle entrée n’est pas présente, une nouvelle entrée est créée, en utilisant les paramètres spécifiés dans la demande.

4.2	État par interface
En plus de l’état d’écoute de diffusion groupée par prise, un nœud doit aussi tenir ou calculer l’état d’écoute de diffusion groupée pour chacune de ses interfaces. Cet état consiste conceptuellement en un ensemble d’enregistrements de la forme :

(adresse IPv6 de diffusion groupée, mode filtre, liste de sources)

Il existe au plus un enregistrement par adresse de diffusion groupée pour une certaine interface. Cet état par interface est déduit de l’état par prise, mais peut en différer lorsque différentes prises ont des modes de filtre et/ou listes de sources différents pour la même adresse et interface de diffusion groupée. Par exemple, supposons qu’une application ou processus invoque l’opération suivante sur la prise s1 :

IPv6MulticastListen ( s1, i, m, INCLURE, {a, b, c} )

demandant la réception sur l’interface i des paquets envoyés à l’adresse de diffusion groupée m, *seulement* si ils viennent des sources a, b, ou c. Supposons qu’une autre application ou processus invoque l’opération suivante sur la prise s2 :

IPv6MulticastListen ( s2, i, m, INCLURE, {b, c, d} )

demandant la réception sur la même interface i des paquets envoyés à la même adresse de diffusion groupée m, *seulement* si ils viennent des sources b, c, ou d. Pour satisfaire les exigences de réception des deux prises, il est nécessaire que l’interface i reçoive les paquets envoyés à m de l’une des sources a, b, c, ou d. Donc, dans  cet exemple, l’état d’écoute de l’interface i pour l’adresse de diffusion groupée m a le mode de filtre INCLURE et la liste des sources {a, b, c, d}.

Après qu’un paquet en diffusion groupée a été accepté d’une interface par la couche IP, sa livraison ultérieure à l’application ou processus qui écoute sur une prise particulière dépend de l’état d’écoute de diffusion groupée de cette prise (et éventuellement aussi d’autres conditions, comme l’accès de couche transport auquel la prise est liée). Donc, dans l’exemple ci-dessus, si un paquet arrive sur l’interface i, destiné à l’adresse de diffusion groupée m, avec l’adresse de source a, il peut être livré à la prise s1 mais pas à la prise s2. Noter que les messages MLDv2 ne sont pas soumis au filtrage de source et doivent toujours être traités par les hôtes et routeurs.

Exiger le filtrage des paquets sur la base de l’état de réception de diffusion groupée de la prise est une nouvelle caractéristique de cette interface de service. La précédente interface de service ne décrivait pas de filtrage fondé sur l’état d’écoute de diffusion groupée ; une opération Début d’écoute sur une prise causait simplement le début de l’écoute par le nœud sur une adresse de diffusion groupée via l’interface en question ; les paquets envoyés à cette adresse de diffusion groupée pouvaient être livrés à toutes les prises, qu’elles aient commencé l’écoute ou pas.

Les règles générales pour déduire l’état par interface de l’état par prise sont les suivantes : pour chaque paire distincte (interface, adresse IPv6 de diffusion groupée) qui apparaît dans tout état par prise, il est créé un enregistrement par interface pour cette adresse de diffusion groupée sur cette interface. En considérant tous les enregistrements de prise qui contiennent la même paire (interface, adresse IPv6 de diffusion groupée),

o	si *un* de ces enregistrements a un mode de filtre de EXCLURE, le mode de filtre de l’enregistrement d’interface est alors EXCLURE, et la liste des sources de l’enregistrement d’interface est l’intersection des listes de sources de tous les enregistrements de prises en mode EXCLURE, moins les adresses de source qui apparaissent dans tout enregistrement de prise en mode INCLURE. Par exemple, si les enregistrements de prise pour l’adresse de diffusion groupée m sur l’interface i sont :
de la prise s1 :  ( i, m, EXCLURE, {a, b, c, d} )
de la prise s2 :  ( i, m, EXCLURE, {b, c, d, e} )
de la prise s3 :  ( i, m, INCLURE, {d, e, f} )
l’enregistremen d’interfacet correspondant sur l’interface i est :
( m, EXCLURE, {b, c} )
Si une quatrième prise est ajoutée, telle que :
de la prise s4 :  ( i, m, EXCLURE, {} )
l’enregistrement d’interface devient :
( m, EXCLURE, {} )

o	si *tous* ces enregistrement ont un mode de filtre de INCLURE, le mode de filtre de l’enregistrement d’interface est alors INCLURE, et la liste des sources de l’enregistrement d’interface est l’union des listes des sources de tous les enregistrements de prise. Par exemple, si les enregistrements de prise pour l’adresse de diffusion groupée m sur l’interface i sont :
de la prise s1 :  ( i, m, INCLURE, {a, b, c} )
de la prise s2 :  ( i, m, INCLURE, {b, c, d} )
de la prise s3 :  ( i, m, INCLURE, {e, f} )
l’enregistrement d’interface correspondant sur l’interface i est alors :
( m, INCLURE, {a, b, c, d, e, f} )

Une mise en œuvre NE DOIT PAS utiliser un enregistrement d’interface EXCLURE pour une adresse de diffusion groupée si toutes les prises pour cette adresse de diffusion groupée sont dans l’état INCLURE. Si les limites de ressources du système sont atteintes lorsque est calculée une liste des sources d’état par interface, une erreur DOIT être retournée à l’application qui a demandé l’opération.

Les règles ci-dessus pour déduire l’état par interface sont (re)évaluées chaque fois qu’une invocation de IPv6MulticastListen modifie l’état par prise en ajoutant, supprimant, ou modifiant un enregistrement d’état par prise. Noter qu’un changement de l’état par prise ne résulte pas nécessairement en un changement de l’état par interface.

5.	Formats de message

MLDv2 est un sous-protocole de ICMPv6, c’est-à-dire que les types de message MLDv2 sont un sous-ensemble des messages ICMPv6, et que les messages MLDv2 sont identifiés dans les paquets IPv6 par une valeur de Prochain en-tête précédant de 58. Tous les messages MLDv2 décrits dans le présent document DOIVENT être envoyés avec une adresse IPv6 de source de liaison locale, une limite de bonds IPv6 de 1, et une option d’alerte de routeur IPv6 [RFC2711] dans un en-tête Options bond par bond. (L’option Alerte de routeur est nécessaire pour faire que les routeurs examinent les messages MLDv2 envoyés aux adresses de diffusion groupée IPv6 dans lesquelles les routeurs n’ont eux-mêmes pas d’intérêt.) Les rapports MLDv2 peuvent être envoyés avec l’adresse de source réglée à l’adresse non spécifiée [RFC3513], si une adresse de source IPv6 valide de liaison locale n’a pas été déjà acquise pour l’interface d’envoi. (Voir les détails au paragraphe 5.2.13.)
Deux types de messages MLD intéressent le protocole MLDv2 décrit dans le présent document :
o	Interrogation d’écouteur de diffusion groupée (Type = décimal 130)
o	Rapport d’écouteur de diffusion groupée version 2 (Type = décimal 143). Voir la section 11 sur les considérations pour l’IANA.
Pour assurer l’interopérabilité avec les nœuds qui mettent en œuvre MLDv1 (voir la section 8) une mise en œuvre de MLDv2 doit aussi prendre en charge les deux types de message suivants :
o	Rapport d’écouteur de diffusion groupée version 1 (Type = décimal 131) [RFC2710]
o	Écouteur de diffusion groupée terminé version 1 (Type = décimal 132) [RFC2710]
Les types de message non reconnus DOIVENT être ignorés en silence. D’autres types de message peuvent être utilisés par des versions ou extensions plus récentes de MLD, par des protocoles d’acheminement de diffusion groupée, ou pour d’autres usages.
Dans le présent document, sauf qualification contraire, les mots en majuscules "Interrogation" et "Rapport" se réfèrent respectivement à l’Interrogation d’écouteur de diffusion groupée MLD et au Rapport d’écouteur de diffusion groupée MLD version 2.

5.1	Message d’interrogation d’écouteur de diffusion groupée
Les interrogations d’écouteur de diffusion groupée sont envoyées par les routeurs de diffusion groupée en état d’interrogateur pour interroger l’état d’écoute de diffusion groupée des interfaces du voisinage. Les interrogations ont le format suivant :

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Type = 130   |      Code     |      Somme de contrôle        |
    +---------------+---------------+---------------+---------------+
    |   Maximum de codes de réponse |           Réservé             |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    |                                                               |
    *                       Adresse de diffusion groupée            *
    |                                                               |
    |                                                               |
    +-------+-+-----+---------------+---------------+---------------+
    | Résv  |S| QRV |     QQIC      |     Nombre de sources (N)     |
    +-------+-+-----+---------------+---------------+---------------+
    |                                                               |
    |                                                               |
    *                      Adresse de source [1]                    *
    |                                                               |
    *                                                               *
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                    Adresse de source [2]                      *
    |                                                               |
    |                                                               |
    +-                              .                              -+
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                    Adresse de source [N]                      *
    |                                                               |
    |                                                               |
    +---------------+---------------+---------------+---------------+

5.1.1	Code
Initialisé à zéro par l’envoyeur ; ignoré par les receveurs.

5.1.2	Somme de contrôle
C’est la somme de contrôle ICMPv6 standard ; elle couvre le message MLDv2 entier, plus un "pseudo en-tête" de champs d’en-tête IPv6 [RFC2463]. Pour calculer la somme de contrôle, le champ Somme de contrôle est réglé à zéro. Lorsque un paquet est reçu, la somme de contrôle DOIT être vérifiée avant de le traiter.

5.1.3	Code de réponse maximum
Le champ Code de réponse maximum spécifie le délai maximum admis avant l’envoi d’un rapport de réponse. Le temps réel admis, appelé le délai maximum de réponse, est représenté en unîtés de millisecondes, et est déduit comme suit du code de réponse maximum :
Si le code de réponse maximum est < 32  768, délai maximum de réponse = code de réponse maximum
Si le code de réponse maximum est ≥ 32  768, le code de réponse maximum représente une valeur à virgule flottante comme suit :

       0 1 2 3 4 5 6 7 8 9 A B C D E F
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1| exp |          mant         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Délai maximum de réponse = (mant | 0x1000) << (exp+3)

Les petites valeurs de délai maximum de réponse permettent aux routeurs MLDv2 de régler la "latence de départ" (le temps écoulé entre le moment où le dernier nœud sur une liaison cesse d’écouter une adresse de diffusion groupée spécifique et le moment où le protocole d’acheminement est notifié qu’il n’y a plus d’écoutant pour cette adresse). Les plus grandes valeurs, en particulier dans la gamme exponentielle, permettent le réglage de la sporadicité du trafic MLD sur une liaison.

5.1.4	Réservé
Initialisé à zéro par l’envoyeur ; ignoré par les receveurs.

5.1.5	Adresse de diffusion groupée
Pour une interrogation générale, le champ Adresse de diffusion groupée est réglé à zéro. Pour une interrogation spécifique d’adresse de diffusion groupée ou une interrogation spécifique d’adresse et de source de diffusion groupée, il est réglé à l’adresse de diffusion groupée qui est interrogée (voir au paragraphe 5.1.10).

5.1.7	Fanion S (Supprimer le traitement côté routeur)
Lorsque il est réglé à un, le fanion S indique à tous les routeurs de diffusion groupée receveurs qu’ils doivent supprimer les mises à jour normales de temporisateur qu’ils effectuent lorsque ils entendent une interrogation. Néanmoins, cela ne supprime pas le choix de l’interrogateur ou le traitement normal "côté hôte" d’une interrogation qu’un routeur peut être obligé d’effectuer comme conséquence du fait qu’il est lui-même un écouteur de diffusion groupée.

5.1.8	QRV
Si il n’est pas à zéro, le champ (QRV, variable de robustesse de l’interrogateur) contient la valeur de [Variable de robustesse] utilisée par l’interrogateur. Si la [Variable de robustesse] de l’interrogateur excède 7 (valeur maximum du champ QRV) le champ QRV est réglé à zéro.

Les routeurs adoptent la valeur de QRV provenant de l’interrogation la plus récente reçue comme leur propre valeur de [Variable de robustesse], sauf si celle-ci est zéro, auquel cas ils utilisent la valeur de [Variable de robustesse] par défaut spécifiée au paragraphe 9.1, ou une valeur de configuration statique.

5.1.9	QQIC
Le champ Code d’intervalle d’interrogation de l’interrogateur (QQIC, Querier's Query Interval Code) spécifie l’[Intervalle d’interrogation] utilisé par l’interrogateur. L’intervalle réel, appelé l’intervalle d’interrogation de l’interrogateur (QQI, Querier's Query Interval) est représenté en unités de secondes, et il est déduit du code d’intervalle d’interrogation de l’interrogateur de la façon suivante :

Si QQIC < 128, QQI = QQIC

Si QQIC ≥ 128, QQIC représente une valeur à virgule flottante comme suit :

       0 1 2 3 4 5 6 7
      +-+-+-+-+-+-+-+-+
      |1| exp | mant  |
      +-+-+-+-+-+-+-+-+

QQI = (mant | 0x10) << (exp + 3)

Les routeurs de diffusion groupée qui ne sont pas l’interrogateur actuel adoptent la valeur de QQI de la plus récente interrogation reçue comme leur propre valeur d’Intervalle d’interrogation, sauf si cette QQI la plus récente reçue était de zéro, auquel cas les routeurs receveurs utilisent la valeur d’Intervalle d’interrogation par défaut spécifiée au paragraphe  9.2.

5.1.10	Nombre de sources (N)
Le champ Nombre de sources (N) spécifie combien d’adresses de source sont présentes dans l’interrogation. Ce nombre est zéro dans une interrogation générale ou dans une interrogation spécifique d’adresse de diffusion groupée, et différent de zéro dans une interrogation spécifique d’adresse et de source de diffusion groupée. Ce nombre est limité par la MTU de la liaison sur laquelle l’interrogation est transmise. Par exemple, sur une liaison Ethernet avec une MTU de 1500 octets, l’en-tête IPv6 (40 octets) avec l’en-tête d’extension bond par bond (8 octets) qui comporte l’option Alerte de routeur consomme 48 octets ; les champs MLD jusqu’au champ Nombre de sources (N) consomment 28 octets ; donc, il y a 1424 octets qui sont laissés pour les adresses de source, ce qui limite le nombre d’adresses de source à 89 (1424/16).

5.1.11	Adresse de source [i]
Les champs d’adresse de source [i] sont un vecteur de n adresses en envoi individuel, où n est la valeur du champ Nombre de sources (N).

5.1.12	Données supplémentaires
Si le champ Longueur de charge utile dans l’en-tête IPv6 d’une interrogation reçue indique qu’il y a des octets de données supplémentaires qui sont présents, au delà des champs décrits ici, les mises en œuvre MLDv2 DOIVENT inclure ces octets dans le calcul pour vérifier la somme de contrôle MLD reçue, mais DOIVENT autrement ignorer ces octets supplémentaires. Lors de l’envoi d’une interrogation, une mise en œuvre MLDv2 NE DOIT PAS inclure d’octets supplémentaires au delà des champs décrits ci-dessus.

5.1.13	Variantes d’interrogation
Il y a trois variantes du message d’interrogation :

o	Une "interrogation générale" est envoyée par l’interrogateur pour apprendre quelles adresses de diffusion groupée ont des écouteurs sur une liaison rattachée. Dans une interrogation générale, les deux champs Adresse de diffusion groupée et Nombre de sources (N) sont à zéro.

o	Une "interrogation spécifique d’adresse de diffusion groupée" est envoyée par l’interrogateur pour apprendre si une adresse de diffusion groupée particulière a des écouteurs sur une liaison rattachée. Dans une interrogation spécifique d’adresse de diffusion groupée, le champ Adresse de diffusion groupée contient l’adresse de diffusion groupée intéressante, alors que le champ Nombre de sources (N) est réglé à zéro.

o	Une "interrogation spécifique d’adresse et de source de diffusion groupée" est envoyée par l’interrogateur pour savoir si une des sources de la liste spécifiée pour l’adresse de diffusion groupée particulière a des écouteurs sur une liaison rattachée ou pas. Dans une interrogation spécifique d’adresse et de source de diffusion groupée, le champ d’adresse de diffusion groupée contient l’adresse de diffusion groupée intéressante, tandis que le ou les champs d’adresse de source contiennent les adresses de source intéressantes.

5.1.14	Adresses de source pour les interrogations
Toutes les interrogations MLDv2 DOIVENT être envoyées avec une adresse de source IPv6 de liaison locale valide. Si un nœud (routeur ou hôte) reçoit un message Interrogation avec une adresse de source réglée à l’adresse non spécifiée (::), ou toute autre adresse qui n’est pas une adresse IPv6 de liaison locale valide, il DOIT éliminer en silence le message et DEVRAIT enregistrer un avertissement.

5.1.15	Adresses de destination pour les interrogations
Dans MLDv2, les interrogations générales sont envoyées à l’adresse de diffusion groupée tous les nœuds de portée liaison (FF02::1). Les interrogations spécifiques d’adresse de diffusion groupée et spécifiques d’adresse et de source de diffusion groupée sont envoyées avec une adresse de destination IP égale à l’adresse de diffusion groupée intéressante. *Cependant*, un nœud DOIT accepter et traiter toute interrogation dont le champ Adresse de destination IP contient *une* des adresses (en envoi individuel ou en diffusion groupée) allouée à l’interface sur laquelle l’interrogation arrive. Cela peut être utile, par exemple, pour des besoins de débogage.

5.2	Message de rapport d’écouteur de diffusion groupée version 2
Les rapports d’écouteur de diffusion groupée version 2 sont envoyés par les nœuds IP pour rapporter (aux routeurs du voisinage) l’état d’écoute actuelle de la diffusion groupée, ou les changements de l’état d’écoute de diffusion groupée, de leurs interfaces. Les rapports ont le format suivant :

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Type = 143   |    Réservé    |       Somme de contrôle       |
    +---------------+---------------+---------------+---------------+
    |           Réservé             |Nr d’enreg d’adresse de DG (M) |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    .                                                               .
    .     Enregistrement d’adresse de diffusion groupée [1]         .
    .                                                               .
    |                                                               |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    .                                                               .
    .     Enregistrement d’adresse de diffusion groupée [2]         .
    .                                                               .
    |                                                               |
    +---------------+---------------+---------------+---------------+
    |                               .                               |
    .                               .                               .
    |                               .                               |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    .                                                               .
    .     Enregistrement d’adresse de diffusion groupée [M]         .
    .                                                               .
    |                                                               |
    +---------------+---------------+---------------+---------------+

Chaque enregistrement d’adresse de diffusion groupée a le format interne suivant :

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Type d’enregt |Long. don. aux |     Nombre de sources (N)     |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    *                                                               *
    |                                                               |
    *                    Adresse de diffusion groupée               *
    |                                                               |
    *                                                               *
    |                                                               |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    *                                                               *
    |                                                               |
    *                     Adresse de source [1]                     *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                     Adresse de source [2]                     *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    .                               .                               .
    .                               .                               .
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                     Adresse de source [N]                     *
    |                                                               |
    *                                                               *
    |                                                               |
    +---------------+---------------+---------------+---------------+
    |                                                               |
    .                                                               .
    .                        Données auxiliaires                    .
    .                                                               .
    |                                                               |
    +---------------+---------------+---------------+---------------+

5.2.1	Réservé
Les champs Réservé sont réglés à zéro à l’émission, et ignorés à réception.

5.2.2	Somme de contrôle
C’est la somme de contrôle ICMPv6 standard ; elle couvre le message MLDv2 entier, plus un "pseudo en-tête" de champs d’en-tête IPv6 [RFC2460], [RFC2463]. Pour calculer la somme de contrôle, le champ Somme de contrôle est réglé à zéro. Lorsque un paquet est reçu, la somme de contrôle DOIT être vérifiée avant de le traiter.

5.2.3	Nombre d’enregistrements d’adresse de diffusion groupée (M)
Le champ M (Nombre d’enregistrements d’adresse de diffusion groupée) spécifie combien d’enregistrements d’adresse de diffusion groupée sont présents dans ce rapport.

5.2.4	Enregistrement d’adresse de diffusion groupée
Chaque enregistrement d’adresse de diffusion groupée est un bloc de champs qui contiennent des informations sur l’envoyeur qui écoute sur une seule adresse de diffusion groupée sur l’interface d’où le rapport est envoyé.

5.2.5	Type d’enregistrement
Il spécifie le type d’enregistrement d’adresse de diffusion groupée. Voir au paragraphe 5.2.12 une description détaillée des différents types d’enregistrements possibles.

5.2.6	Longueur de données auxiliaires
Le champ Longueur de données auxiliaires contient la longueur du champ Données auxiliaires dans cet enregistrement d’adresse de diffusion groupée, en unités de mots de 32 bits. Il peut contenir zéro, pour indiquer l’absence de toutes données auxiliaires.

5.2.7	Nombre de sources (N)
Le champ Nombre de sources (N) spécifie combien d’adresses de source sont présentes dans cet enregistrement d’adresse de diffusion groupée.

5.2.8	Adresse de diffusion groupée
Le champ Adresse de diffusion groupée contient l’adresse de diffusion groupée à laquelle appartient cet enregistrement d’adresse de diffusion groupée.

5.2.9	Adresse de source [i]
Les champs d’adresse de source [i] sont un vecteur d’adresses d’envoi individuel, où n est la valeur du champ Nombre de sources (N) dans cet enregistrement.

5.2.10	Données auxiliaires
Le champ Données auxiliaires, s’il est présent, contient des informations supplémentaires qui relèvent de cet enregistrement d’adresse de diffusion groupée. Le protocole spécifié dans le présent document, MLDv2, ne définit aucune données auxiliaires. Donc, les mises en œuvre de MLDv2 NE DOIVENT PAS inclure de données auxiliaires (c’est-à-dire, DOIVENT régler le champ Longueur de données auxiliaires à zéro) dans tout enregistrement d’adresse de diffusion groupée transmis, et DOIVENT ignorer de telles données si elles sont présentes dans tout enregistrement d’adresse de diffusion groupée reçu. La sémantique et le codage interne du champ Données auxiliaires seront définis par une future version ou extension de MLD qui utilisera ce champ.

5.2.11	Données supplémentaires
Si le champ Longueur de charge utile dans l’en-tête IPv6 d’un rapport reçu indique que sont présents des octets de données supplémentaires, au delà de l’enregistrement de la dernière adresse de diffusion groupée, les mises en œuvre MLDv2 DOIVENT inclure ces octets dans le calcul de vérification de la somme de contrôle MLD reçue, mais DOIVENT autrement ignorer ces octets supplémentaires. Lors de l’envoi d’un rapport, une mise en œuvre MLDv2 NE DOIT PAS inclure des octets supplémentaires au delà du dernier enregistrement d’adresse de diffusion groupée.

5.2.12	Types d’enregistrement d’adresse de diffusion groupée
Il y a un certain nombre de types différents d’enregistrements d’adresse de diffusion groupée qui peuvent être inclus dans un message de rapport :

o	Un "enregistrement d’état courant" est envoyé par un nœud en réponse à une interrogation reçue sur une interface. Il fait rapport de l’état actuel d’écoute de cette interface, par rapport à une seule adresse de diffusion groupée. Le type d’enregistrement d’un enregistrement d’état courant peut être l’une des deux valeurs suivantes :
Valeur	Nom et signification
1	MODE_EST_INCLURE – indique que l’interface a un mode de filtre de INCLURE pour l’adresse de diffusion groupée spécifiée. Les champs Adresse de source [i] dans l’enregistrement d’adresse de diffusion groupée contiennent la liste des sources de l’interface pour l’adresse de diffusion groupée spécifiée. Un enregistrement MODE_EST_INCLURE n’est jamais envoyé avec une liste des sources vide.
2	MODE_EST_EXCLURE – indique que l’interface a un mode de filtre de EXCLURE pour l’adresse de diffusion groupée spécifiée. Les champs Adresse de source [i] dans cet enregistrement d’adresse de diffusion groupée contiennent la liste des sources de l’interface pour l’adresse de diffusion groupée spécifiée, si elle n’est pas vide.

o	Un "enregistrement de changement de mode de filtre" est envoyé par un nœud chaque fois qu’une invocation locale de IPv6MulticastListen cause un changement du mode de filtre (c’est-à-dire, un changement de INCLURE en EXCLURE, ou de EXCLURE en INCLURE) de l’entrée d’état de niveau interface pour une adresse de diffusion groupée particulière, que la liste des sources change en même temps ou non. L’enregistrement est inclus dans un rapport envoyé de l’interface sur laquelle est survenu le changement. Le type d’enregistrement d’un enregistrement de changement de mode de filtre peut avoir une des deux valeurs suivantes :
3	CHANGE_EN_MODE_INCLURE – indique que l’interface est passée au mode de filtre INCLURE pour l’adresse de diffusion groupée spécifiée. Les champs Adresse de source [i] dans cet enregistrement d’adresse de diffusion groupée contiennent la nouvelle liste des sources de l’interface pour l’adresse de diffusion groupée spécifiée, si elle n’est pas vide.
4	CHANGE_EN_MODE_EXCLURE – indique que l’interface est passée au mode de filtre EXCLURE pour l’adresse de diffusion groupée spécifiée. Les champs Adresse de source [i] dans cet enregistrement d’adresse de diffusion contiennent la nouvelle liste des sources de l’interface pour l’adresse de diffusion groupée spécifiée, si elle n’est pas vide.

o	Un "enregistrement de changement de liste de source" est envoyé par un nœud chaque fois qu’une invocation locale de IPv6MulticastListen cause un changement des listes des sources qui ne coïncide pas avec un changement de mode de filtre, de l’entrée d’état de niveau interface pour une adresse de diffusion groupée particulière. L’enregistrement est inclus dans un rapport envoyé de l’interface sur laquelle est survenu le changement. Le type d’enregistrement d’un enregistrement de changement d’une liste des sources peut être d’une des deux valeurs suivantes :
5	PERMET_NOUVELLES_SOURCES – indique que les champs d’adresse de source [i] dans cet enregistrement d’adresse de diffusion groupée contiennent une liste des sources supplémentaires que le nœud souhaite écouter, pour les paquets envoyés à l’adresse de diffusion groupée spécifiée. Si le changement était pour INCLURE la liste des sources, ce sont les adresses qui ont été ajoutées à la liste ; si le changement était pour EXCLURE la liste des sources, ce sont les adresses qui ont été supprimées de la liste.
6	BLOQUE_VIEILLLES_SOURCES – indique que les champs d’adresse de source [i] dans cet enregistrement d’adresse de diffusion groupée contient une liste des sources que le nœud ne souhaite plus écouter, pour les paquets envoyés à l’adresse de diffusion groupée spécifiée. Si le changement était pour INCLURE la  liste des sources, ce sont les adresses qui ont été supprimées de la liste ; si le changement était pour EXCLURE la liste des sources, ce sont les adresses qui ont été ajoutés à la liste.

Si un changement de liste des sources a pour résultat à la fois de permettre de nouvelles sources et de bloquer de vieilles sources, deux enregistrements d’adresse de diffusion groupée sont alors envoyés à la même adresse de diffusion groupée, une de type PERMET_NOUVELLES_SOURCES et une de type BLOQUE_VIEILLLES_SOURCES.

On utilise le terme "enregistrement de changement d’état" pour se référer à un enregistrement de changement de mode de filtre ou à un enregistrement de changement de liste des sources.

Les enregistrements d’adresse de diffusion groupée qui ont une valeur de type d’enregistrement non reconnue DOIVENT être ignorés en silence tandis que le reste du rapport est traité.

Dans la suite du présent document, on utilise la notation suivante pour décrire le contenu d’un enregistrement d’adresse de diffusion groupée qui relève d’une adresse de diffusion groupée particulière :
IS_IN ( x ) –  Type MODE_EST_INCLURE, adresses de source x
IS_EX ( x ) – Type MODE_EST_EXCLURE, adresses de source x
TO_IN ( x ) – Type CHANGE_POUR_MODE_INCLURE, adresses de source x
TO_EX ( x ) – Type CHANGE_POUR_MODE_EXCLURE, adresses de source x
PERMET ( x ) – Type PERMET_NOUVELLES_SOURCES, adresses de source x
BLOQUE ( x ) – Type BLOQUE_VIEILLLES_SOURCES, adresses de source x
où x est soit :
o	une lettre majuscule (par exemple, "A") pour représenter l’ensemble des adresses de source, soit
o	une expression (par exemple, "A+B") où "A+B" signifie l’union des ensembles A et B, "A*B" signifie l’intersection des ensembles A et B, et "A-B" signifie la suppression dans l’ensemble A de tous les éléments de l’ensemble B.

5.2.13	Adresses de source pour les rapports
Un rapport MLDv2 DOIT être envoyé avec une adresse de source IPv6 de liaison locale valide, ou l’adresse non spécifiée (::), si l’interface d’envoi n’a pas déjà acquis une adresse de liaison locale valide. L’envoi de rapports avec l’adresse non spécifiée est permis pour la prise en charge de l’utilisation de la diffusion groupée IP dans le protocole de découverte de voisins [RFC2461]. Pour l’autoconfiguration sans état, comme définie dans la [RFC2462], un nœud est obligé de se joindre à plusieurs groupes de diffusion groupée IPv6 pour effectuer la détection d’adresse dupliquée (DAD, Duplicate Address Detection). Avant la DAD, la seule adresse que le nœud rapporteur a pour l’interface d’envoi est une esquisse, qui ne peut pas être utilisée pour la communication. Donc, l’adresse non spécifiée doit être utilisée.

D’un autre côté, les routeurs DOIVENT éliminer en silence un message qui n’est pas envoyé avec une adresse valide de liaison locale, sans effectuer aucune action sur le contenu du paquet. Donc, un rapport est éliminé si le routeur ne peut pas identifier l’adresse de source du paquet comme appartenant à une liaison connectée à l’interface sur laquelle a été reçu le paquet. Un rapport envoyé avec l’adresse non spécifiée est aussi éliminé par le routeur. Cela améliore la sécurité, car les nœuds rapporteurs non identifiés ne peuvent pas influencer l’état du ou des routeurs MLDv2. Néanmoins, le nœud rapporteur a modifié son état d’écoute pour les adresses de diffusion groupée qui sont contenues dans les enregistrements d’adresse de diffusion groupée du message de rapport. À partir de ce moment, il va traiter les paquets envoyés à ces adresses de diffusion groupée conformément à ce nouvel état d’écoute. Une fois qu’est disponible une adresse valide de liaison locale, un nœud DEVRAIT générer de nouveaux messages de rapport MLDv2 pour toutes les adresses de diffusion groupée jointes sur l’interface.

5.2.14	Adresses de destination pour les rapports
La version 2 de rapport d’écouteur de diffusion groupée est envoyée avec une adresse IP de destination de FF02:0:0:0:0:0:0:16, à laquelle écoutent tous les routeurs de diffusion groupée à capacité MLDv2 (voir à la Section 11 les considérations IANA qui se rapportent à cette adresse de destination particulière). Un nœud qui fonctionne en mode compatibilité avec la version 1 (voir les détails à la Section 8) envoie des rapports de version 1 à l’adresse de diffusion groupée spécifiée dans le champ Adresse de diffusion groupée du rapport. De plus, un nœud DOIT accepter et traiter tout rapport de version 1 dont le champ Adresse IP de destination contient *une* des adresses IPv6 (d’envoi individuel ou de diffusion groupée) allouée à l’interface sur laquelle arrive le rapport. Cela pourrait être utile, par exemple, pour des besoins de débogage.

5.2.15	Taille de rapport d’écouteur de diffusion groupée
Si l’ensemble d’enregistrements d’adresse de diffusion groupée nécessaires dans un rapport ne tient pas dans les limites de taille d’un seul message de rapport (comme déterminé par la MTU de la liaison sur laquelle il sera envoyé) les enregistrements d’adresse de diffusion groupée sont envoyés en autant de messages de rapport que nécessaire pour faire rapport de l’ensemble entier.

Si un seul enregistrement d’adresse de diffusion groupée contient une telle quantité d’adresses de source qu’il ne tient pas dans les limites de taille d’un seul message de rapport, alors :
o	si son type n’est pas IS_EX ou TO_EX, il est partagé en plusieurs enregistrements d’adresse de diffusion groupée dont chacun contient un sous-ensemble différent des adresses de source, et est envoyé dans un rapport séparé  ;
o	si son type est IS_EX ou TO_EX, un seul enregistrement d’adresse de diffusion groupée est envoyé, avec autant d’adresses de source qu’il peut en tenir ; le reste des adresses de source n’est pas rapporté. Bien que le choix des sources à rapporter soit arbitraire, il est préférable de rapporter le même ensemble de sources dans chaque rapport suivant, plutôt que de faire rapport de sources différentes à chaque fois.

6.	Description du protocole pour les écouteurs d’adresse de diffusion groupée

MLD est un protocole asymétrique, car il spécifie des comportements distincts pour les écouteurs d’adresse de diffusion groupée – c’est-à-dire, les hôtes ou routeurs qui écoutent les paquets de diffusion groupée -- et pour les routeurs de diffusion groupée. La présente section décrit la partie de MLDv2 qui s’applique à tous les écouteurs d’adresse de diffusion groupée. (Noter qu’un routeur de diffusion groupée qui est aussi un écouteur d’adresse de diffusion groupée effectue les deux parties de MLDv2 ; il reçoit et il répond à ses propres messages MLD, ainsi qu’à ceux de ses voisins.) La partie routeur de diffusion groupée de MLDv2 est décrite à la Section 7.

Un nœud effectue le protocole décrit dans cette section sur toutes les interfaces sur lesquelles est prise en charge la réception de diffusion groupée, même si plus d’une de ces interfaces sont connectées à la même liaison.

Pour l’interopérabilité avec les routeurs de diffusion groupée qui fonctionnent avec le protocole MLDv1, les nœuds conservent une variable Mode de compatibilité d’hôte pour chaque interface sur laquelle est prise en charge la réception de diffusion groupée. La présente section décrit le comportement des nœuds écouteurs d’adresse de diffusion groupée pour lesquels le mode de compatibilité d’hôte = MLDv2. L’algorithme pour déterminer le mode de compatibilité d’hôte, et le comportement si sa valeur est réglée à MLDv1, sont décrits dans la section 8.

La portée de liaison Adresse de diffusion groupée tous nœuds, (FF02::1), est traitée comme un cas particulier. Sur tous les nœuds – c’est-à-dire sur tous les hôtes et routeurs, y comprise les routeurs de diffusion groupée – l’écoute des paquets destinés à l’adresse de diffusion groupée tous nœuds, provenant de toutes les sources, est activée en permanence sur toutes les interfaces sur lesquelles l’écoute de diffusion groupée est prise en charge. Aucun message MLD n’est jamais envoyé concernant la portée de liaison Adresse de diffusion groupée tous nœuds, ni aucune adresse de diffusion groupée de portée 0 (réservée) ou 1 (nœud local).

Il y a trois types d’événements qui déclanchent les actions du protocole MLDv2 sur une interface :
o	un changement de l’état d’écoute par interface, causé par une invocation locale de IPv6MulticastListen ;
o	l’arrivée à expiration d’un temporisateur spécifique ;
o	la réception d’une interrogation.

(Les messages MLD reçus de types autres qu’une interrogation sont ignorés en silence, sauf lorsque c’est exigé pour l’interopération avec les nœuds qui mettent en œuvre MLDv1.)

Les paragraphes qui suivent décrivent les actions à effectuer dans chaque cas. Les noms des temporisateurs et des compteurs apparaissent entre crochets. Les valeurs par défaut pour ces temporisateurs et compteurs sont spécifiées à la Section 9.

6.1	Action sur changement d’état d’interface
Une invocation de IPv6MulticastListen peut causer le changement de l’état d’écoute de diffusion groupée d’une interface, conformément aux règles du paragraphe 4.2. Chacun de ces changements affecte l’entrée par interface d’une seule adresse de diffusion groupée.

Un changement de l’état par interface cause la transmission immédiate par le nœud d’un rapport de changement d’état provenant de cette interface. Le type et le contenu du ou des enregistrements d’adresse de diffusion groupée dans ce rapport sont déterminés en comparant le mode de filtre et la liste des sources pour l’adresse de diffusion groupée affectée avant et après le changement, conformément au tableau ci-dessous. Si il n’existait pas d’état par interface pour cette adresse de diffusion groupée avant le changement (c’est-à-dire, si le changement consistait en la création d’un nouvel enregistrement par interface) ou si aucun état n’existe après le changement (c’est-à-dire, si le changement consistait à supprimer un enregistrement par interface) l’état "non existant" est alors considéré comme ayant le mode de filtre INCLURE et une liste des sources vide.

Ancien état	Nouvel état	Enregistrement de changement d’état envoyé	
INCLURE (A)	INCLURE (B)	PERMET (B-A), BLOQUE (A-B)	
EXCLURE (A)	EXCLURE (B)	PERMET (A-B), BLOQUE (B-A)	
INCLURE (A)	EXCLURE (B)	TO_EX (B)	
EXCLURE (A)	INCLURE (B)	TO_IN (B)	

Si la liste des sources calculée pour un enregistrement de changement d’état PERMET ou BLOQUE est vide, cet enregistrement est omis du rapport.

Pour couvrir la possibilité que le rapport de changement d’état soit manqué par un ou plusieurs routeurs de diffusion groupée, [Variable de robustesse] - 1 retransmissions sont programmées, grâce à un temporisateur de retransmission, à des intervalles choisis au hasard dans la gamme (0, [Intervalle de rapport non sollicité]).

Si d’autres changements surviennent à la même entrée d’état par interface avant qu’aient été achevées toutes les retransmissions du rapport de changement d’état pour le premier changement, chacun de ces changements supplémentaires déclanche la transmission immédiate d’un nouveau rapport de changement d’état.

Le contenu du nouveau rapport est calculé comme suit :
o	Comme pour le premier rapport, on compare l’état par interface pour l’adresse de diffusion groupée affectée avant et après le dernier changement.
o	Les enregistrements qui expriment la différence sont construits conformément au tableau ci-dessus. Néanmoins, ces enregistrements ne sont pas transmis dans un message distinct, mais sont plutôt fusionnés avec le contenu du rapport en cours, pour créer le nouveau rapport de changement d’état. Les règles pour le calcul de ce rapport fusionné sont décrites ci-dessous.

La transmission du rapport de changement d’état fusionné met un terme aux retransmissions du rapport de changement d’état antérieur pour la même adresse de diffusion groupée, et devient la première des [Variable de robustesse] transmissions du nouveau rapport de changement d’état. Ces transmissions sont nécessaires afin de s’assurer que chaque instance du changement d’état est transmise au moins [Variable de robustesse] fois.

Chaque fois qu’une source est incluse dans le rapport de différence calculé ci-dessus, l’état de retransmission pour cette source doit être entretenu jusqu’à ce que [Variable de robustesse] rapports de changement d’état aient été envoyés par le nœud. Cela est fait pour s’assurer qu’une série de changements d’état successifs ne casse pas la robustesse du protocole. Les sources en état de retransmission peuvent être conservées dans une liste de retransmission par adresse de diffusion groupée, avec un compteur de source de retransmission associé à chaque source de la liste. Lorsque une source est incluse dans la liste, son compteur est réglé à [Variable de robustesse]. Chaque fois qu’un rapport de changement d’état est envoyé, le compteur est diminué d’une unité. Lorsque le compteur atteint zéro, la source est supprimée de la liste de retransmission pour cette adresse de diffusion groupée.

Si le changement d’écouteur par interface qui déclanche le nouveau rapport est un changement de mode de filtre, les [Variable de robustesse] prochains rapports de changement d’état vont inclure un enregistrement de changement de mode de filtre. Cela s’applique même si un nombre quelconque de changements de liste des sources surviennent dans cette période. Le nœud doit conserver l’état de retransmission pour l’adresse de diffusion groupée jusqu’à ce que [Variable de robustesse] rapports de changement d’état aient été envoyés. Cela peut être fait au moyen d’un compteur de retransmissions de mode de filtre par adresse de diffusion groupée. Lorsque le mode de filtre change, le compteur est réglé à [Variable de robustesse]. Chaque fois qu’un rapport de changement d’état est envoyé, le compteur est diminué d’une unité. Lorsque le compteur atteint zéro, c’est-à-dire, lorsque [Variable de robustesse] rapports de changement d’état avec des enregistrements de changement de mode de filtre ont été transmis après le dernier changement de mode de filtre, et si des changements de liste des sources ont résulté en ce que des rapports supplémentaires sont programmés, le prochain rapport de changement d’état va alors inclure des enregistrements de changement de liste des sources.

Chaque fois qu’un changement d’état d’écoute par interface déclanche la transmission immédiate d’un nouveau rapport de changement d’état, son contenu est déterminé comme suit. Si le rapport devrait contenir un enregistrement de changement de mode de filtre, c’est-à-dire, si le compteur de retransmission de mode de filtre pour cette adresse de diffusion groupée a une valeur supérieure à zéro, alors, si le mode de filtre actuel de l’interface est INCLURE, un enregistrement TO_IN est inclus dans le rapport ; autrement, un enregistrement TO_EX est inclus. Si le rapport devait plutôt contenir des enregistrements de changement de liste des sources, c’est-à-dire, si le compteur de retransmission de mode de filtre pour cette adresse de diffusion groupée est zéro, un enregistrement PERMET et BLOQUE est inclus. Le contenu de ces enregistrements est construit selon le tableau qui suit .

Enregistrement	Sources incluses	
TO_IN	Toutes celles dans l’état actuel par interface qui doivent être transmises	
TO_EX	Toutes celles dans l’état actuel par interface qui doivent être bloquées	
PERMET	Toutes celles dans l’état de retransmission (c’est-à-dire, toutes les sources de la liste de retransmission) qui doivent être transmises	
BLOQUE	Toutes celles dans l’état de retransmission qui doivent être bloquées	

Si la liste des sources calculée pour un enregistrement PERMET ou BLOQUE est vide, cet enregistrement est omis du rapport de changement d’état.

Note : Lorsque le premier rapport de changement d’état est envoyé, Le rapport en cours non existant avec lequel fusionner peut être traité comme un rapport de changement de source avec des enregistrements PERMET et BLOQUE vides (aucune source n’a l’état de retransmission).

La construction d’un rapport de changement d’état programmé, déclanché par l’arrivée à expiration d’un temporisateur de retransmission, au lieu d’un changement d’état d’écoute par interface, est décrite au paragraphe 6.3.

6.2	Action à réception d’une interrogation
À réception d’un message MLD qui contient une interrogation, le nœud vérifie si l’adresse de source du message est une adresse valide de liaison locale, si la limite de bonds est réglée à 1, et si l’option Alerte de routeur est présente dans l’en-tête Options bond par bond du paquet IPv6. Si une de ces vérifications échoue, le paquet est éliminé.

Si la validité du message MLD est vérifiée, le nœud commence à traiter l’interrogation. Au lieu de répondre immédiatement, le nœud retarde sa réponse d’une durée aléatoire, bordée par la valeur du délai maximum de réponse déduite du code de réponse maximum du message d’interrogation reçu. Un nœud peut recevoir diverses interrogations sur différentes interfaces et de différentes sortes (par exemple, des interrogations générales, des interrogations spécifiques d’adresse de diffusion groupée, et des interrogations spécifiques de source et adresse de diffusion groupée) dont chacune peut exiger sa propre réponse retardée.

Avant de programmer une réponse à une interrogation, le nœud doit d’abord considérer les réponses en cours programmées antérieurement et, dans de nombreux cas, programmer une réponse combinée. Donc, pour chacune de ses interfaces sur lesquelles fonctionne la partie écouteur du protocole MLDv2, le nœud doit être capable de conserver l’état suivant :
o	un temporisateur d’interface pour programmer les réponses aux interrogations générales ;
o	un temporisateur d’adresse de diffusion pour programmer les réponses aux interrogations spécifiques d’adresse (et de source) de diffusion groupée, pour chaque adresse de diffusion groupée sur laquelle le nœud doit faire rapport ;
o	une liste de sources par adresse de diffusion groupée à rapporter dans la réponse à une interrogation spécifique de source et d’adresse de diffusion groupée.

Lorsque une nouvelle interrogation générale valide arrive sur une interface, le nœud vérifie si elle a ou non un enregistrement d’état d’écoute par interface sur lequel faire rapport. De même, lorsque une nouvelle interrogation spécifique d’adresse (et de source) de diffusion groupée valide arrive sur une interface, le nœud vérifie si elle a un enregistrement d’état d’écoute par interface qui correspond ou non à l’adresse (et source) de diffusion groupée interrogée. Si elle en a un, un délai pour la réponse est choisi au hasard dans la gamme (0, [Délai maximum de réponse]), où Délai maximum de réponse est déduit du code de réponse maximum inséré dans le message d’interrogation reçu. Les règles suivantes sont alors utilisés pour déterminer si un rapport doit être ou non programmé, et le type de rapport à programmer. (Les règles sont prises dans l’ordre et seule la première règle qui correspond est appliquée.)

1.	Si il y a une réponse en cours à une interrogation générale antérieure programmée plus tôt que le délai choisi, aucune réponse supplémentaire n’a besoin d’être programmée.

2.	Si l’interrogation reçue est une interrogation générale, le temporisateur d’interface est utilisé pour programmer une réponse à l’interrogation générale après le délai choisi. Toute réponse en cours antérieure à l’interrogation générale est annulée.

3.	Si l’interrogation reçue est une interrogation spécifique d’adresse de diffusion groupée ou une interrogation spécifique d’adresse et de source de diffusion groupée et si il n’y a pas de réponse en cours à une interrogation antérieure pour cette adresse de diffusion groupée, le temporisateur d’adresse de diffusion groupée est alors utilisé pour programmer un rapport. Si l’interrogation reçue est une interrogation spécifique de source et d’adresse de diffusion groupée, la liste des sources interrogées est enregistrée pour être utilisée lors de la génération d’une réponse.

4.	Si est déjà programmée une réponse en cours à une interrogation antérieure pour cette adresse de diffusion groupée, et si la nouvelle interrogation est une interrogation spécifique d’adresse de diffusion groupée, ou si la liste enregistrée des sources associées à l’adresse de diffusion groupée est vide, la liste des sources dans l’adresse de diffusion groupée est éliminée et une seule réponse est programmée, en utilisant le temporisateur d’adresse de diffusion groupée. La nouvelle réponse est programmée pour être envoyée au plus tôt du temps restant pour le rapport en cours et du délai choisi.

5.	Si l’interrogation reçue est une interrogation spécifique de source et d’adresse de diffusion groupée et si il y a une réponse en cours pour cette adresse de diffusion groupée avec une liste des sources non vide, la liste des sources d’adresse de diffusion groupée est augmentée pour contenir la liste des sources dans la nouvelle interrogation, et une seule réponse est programmée en utilisant le temporisateur d’adresse de diffusion groupée. La nouvelle réponse est programmée pour être envoyée au plus tôt du temps restant pour le rapport en cours et le délai choisi.

6.3	Action à l’expiration du temporisateur
Il y a plusieurs temporisateurs dont l’arrivée à expiration déclanche des actions du protocole sur un nœud MLDv2 écouteur d’adresse de diffusion groupée. Toutes ces actions se rapportent à des rapports en cours programmés par le nœud.

1.	Si c’est le temporisateur d’interface qui arrive à expiration (c’est-à-dire qu’il y a une réponse en cours à une interrogation générale) un enregistrement d’état en cours est envoyé pour chaque adresse de diffusion groupée pour laquelle l’interface spécifiée a l’état d’écoute, comme décrit au paragraphe 4.2. L’enregistrement d’état en cours porte l’adresse de diffusion groupée et son mode de filtre associé (MODE_IS_INCLUDE ou MODE_IS_EXCLUDE) et la liste des sources. Plusieurs enregistrements d’état en cours sont empaquetés dans la mesure du possible dans des messages de rapport individuels.

Cet algorithme simple peut résulter en des salves de paquets lorsque un nœud écoute un grand nombre d’adresses de diffusion groupée. Au lieu d’utiliser un seul temporisateur d’interface, il est recommandé aux mises en œuvre d’étaler la transmission de tels messages de rapport sur l’intervalle (0, [Délai maximum de réponse]). Noter qu’une telle mise en œuvre DOIT éviter le problème de "l’explosion des accusés de réception", c’est-à-dire qu’elle NE DOIT PAS envoyer un rapport immédiatement à réception d’une interrogation générale.

2.	Si c’est un temporisateur d’adresse de diffusion groupée qui arrive à expiration et si la liste des sources enregistrées pour cette adresse de diffusion groupée est vide (c’est-à-dire, si il y a une réponse en cours à une interrogation spécifique d’adresse de diffusion groupée) et si, et seulement si, l’interface a l’état d’écoute pour cette adresse de diffusion groupée, un seul enregistrement d’état en cours est envoyé pour cette adresse. L’enregistrement d’état en cours porte l’adresse de diffusion groupée et son mode de filtre associé (MODE_EST_INCLURE ou MODE_EST_EXCLURE) et sa liste des sources, s’il en est.

	Si c’est un temporisateur d’adresse de diffusion groupée qui arrive à expiration et si la liste des sources enregistrées pour cette adresse de diffusion groupée n’est pas vide (c’est-à-dire, si il y a une réponse en cours à une interrogation spécifique de source et d’adresse de diffusion groupée) et si, et seulement si, l’interface a l’état d’écoute pour cette adresse de diffusion groupée, le contenu de l’enregistrement d’état en cours correspondant est déterminé à partir de l’état par interface et de l’enregistrement de réponse en cours, comme spécifié dans le tableau suivant :

	Ensemble des sources dans		
l’état par interface	l’enregistrement de réponse en cours	l’enregistrement d’état en cours	
INCLURE (A)	B	IS_IN (A*B)	
EXCLURE (A)	B	IS_IN (B-A)	

Si l’enregistrement d’état en cours résultant a un ensemble vide d’adresses de source, aucune réponse n’est alors envoyée. Après la génération des messages de rapport exigés, les listes des sources associées à toutes les adresses de diffusion groupée rapportées sont éliminées.

4.	Si c’est un temporisateur de retransmission qui arrive à expiration pour une adresse de diffusion groupée (c’est-à-dire, si il y a un rapport de changement d’état en instance pour cette adresse de diffusion groupée) le contenu du rapport est déterminé comme suit. Si le rapport devrait contenir un enregistrement de changement de mode de filtre, c’est-à-dire, si le compteur de retransmission de mode de filtre pour cette adresse de diffusion groupée a une valeur supérieure à zéro, alors, si le mode de filtre actuel de l’interface est INCLURE, un enregistrement TO_IN est inclus dans le rapport ; autrement, un enregistrement TO_EX est inclus. Dans les deux cas, le compteur de retransmission de mode de filtre pour cette adresse de diffusion groupée est décrémenté de une unité après la transmission du rapport.

Si le rapport devrait plutôt contenir des enregistrements de changement de liste de sources, c’est-à-dire, si le compteur de retransmission de mode de filtre pour cette adresse de diffusion groupée est zéro, un enregistrement PERMET et BLOQUE est inclus. Le contenu de ces enregistrements est construit conformément au tableau ci-dessous :

Enregistrement	Sources incluses
TO_IN	Tout ce qui dans l’état par interface en cours doit être transmis.
TO_EX	Tout ce qui dans l’état par interface en cours doit être bloqué.
PERMET	Tout ce qui dans l’état de retransmission (c’est-à-dire, toutes les sources de la liste de retransmission) doit être transmis. Pour chaque source incluse, son compteur de retransmission de source est diminué de une unité après la transmission du rapport. Si le compteur atteint zéro, la source est supprimée de la liste de retransmission pour cette adresse de diffusion groupée.
BLOQUE	Tout ce qui dans l’état de retransmission (c’est-à-dire, toutes les sources de la liste de retransmission) doit être bloqué. Pour chaque source incluse, son compteur de retransmission de source est diminué d’une unité après la transmission du rapport. Si le compteur atteint zéro, la source est supprimée de la liste de retransmission pour cette adresse de diffusion groupée.

Si la liste des sources calculée pour un enregistrement PERMET ou BLOQUE est vide, cet enregistrement est omis du rapport de changement d’état.

7.	Description du protocole pour les routeurs de diffusion groupée

L’objet de MLD est de permettre à chaque routeur de diffusion groupée d’apprendre, pour chacune de ses liaisons directement rattachées, quelles adresses de diffusion groupée ont des écouteurs sur cette liaison. MLD version 2 ajoute la capacité pour un routeur de diffusion groupée d’apprendre aussi quelles *sources* ont des écouteurs parmi les nœuds du voisinage, pour les paquets envoyés à toute adresse de diffusion groupée particulière. Les informations collectées par MLD sont fournies quel que soit le protocole d’acheminement de diffusion groupé utilisé par le routeur, afin de s’assurer que les paquets en diffusion groupée sont livrés à toutes les liaisons où il y a des écouteurs intéressés.

La présente section décrit la partie de MLDv2 qui est effectuée par les routeurs de diffusion groupée. Les routeurs de diffusion groupée peuvent eux-mêmes devenir des écouteurs d’adresse de diffusion groupée, et effectuer donc aussi la partie écouteur de diffusion groupée de MLDv2, décrite à la Section 6.

Un routeur de diffusion groupée effectue le protocole décrit dans la présente section sur chacune de ses liaisons directement rattachées. Si un routeur de diffusion groupée a plus d’une interface sur la même liaison, il a seulement besoin de faire fonctionner ce protocole sur une de ces interfaces.

Pour chaque interface sur laquelle le routeur fait fonctionner le protocole MLD, le routeur doit configurer cette interface à écouter toutes les adresses de diffusion groupée de couche liaison qui peuvent être générées par des diffusions groupées IPv6. Par exemple, un routeur rattaché à Ethernet doit régler son filtre de réception d’adresse Ethernet de façon à accepter toutes les adresses de diffusion groupée Ethernet qui commencent par la valeur hexadécimale 3333 [RFC2464] ; dans le cas d’une interface Ethernet qui ne prend pas en charge le filtrage d’une telle gamme d’adresses de diffusion groupée, il doit être configuré à accepter TOUTES les adresses de diffusion groupée Ethernet, afin de satisfaire les exigences de MLD.

Sur chaque interface où fonctionne ce protocole, le routeur DOIT activer la réception de l’adresse de diffusion groupée de portée liaison "tous routeurs à capacité MLDv2" provenant de toutes les sources, et DOIT effectuer la partie écouteur d’adresse de diffusion groupée de MLDv2 pour cette adresse sur cette interface.

Les routeurs de diffusion groupée ont seulement besoin de savoir *qu’au moins un* nœud sur une liaison rattachée écoute les paquets pour une adresse de diffusion groupée particulière d’une certaine source ; un routeur de diffusion groupée n’est pas obligé de garder trace *individuellement* des intérêts de chaque nœud du voisinage. (Voir néanmoins la discussion du point 1 de l’Appendice A2.)

MLDv2 est rétro compatible avec le protocole MLDv1. Voir à la Section 8 la description détaillée des questions de compatibilité.

7.1	Conditions pour les interrogations MLD
Le comportement d’un routeur qui met en œuvre le protocole MLDv2 dépend de si il y a, ou non, plusieurs routeurs de diffusion groupée sur le même sous-réseau. Si c’est le cas, un mécanisme de choix d’interrogateur (décrit au paragraphe  7.6.2) est utilisé pour choisir un seul routeur de diffusion groupée pour être dans l’état d’interrogateur. Tous les routeurs de diffusion groupée sur le sous-réseau écoutent les messages envoyés aux écouteurs d’adresse de diffusion groupée, et conservent le même état d’écoute de diffusion groupée, de sorte qu’ils peuvent prendre rapidement et correctement la fonction d’interrogateur, si le présent interrogateur se trouvait défaillant. Néanmoins, c’est seulement l’interrogateur qui envoie des messages périodiques ou déclanchés sur le sous-réseau.

L’interrogateur envoie périodiquement des interrogations générales pour demander à l’écouteur d’adresse de diffusion groupée des information à partir d’une liaison rattachée. Ces interrogations sont utilisées pour construire et rafraîchir l’état d’écouteur d’adresse de diffusion groupée des routeurs sur les liaisons rattachées.

Les nœuds répondent à ces interrogations en faisant rapport de leur état d’écoute d’adresse de diffusion groupée (et des ensembles de sources qu’ils écoutent) avec les enregistrements d’état actuel d’adresse de diffusion groupée dans le rapport MLDv2 d’écouteur de diffusion groupée.

En tant qu’écouteur d’une adresse de diffusion groupée, un nœud peut exprimer son intérêt pour écouter ou non le trafic provenant de sources particulières. Lorsque l’état d’écoute désiré d’un nœud change, il rapporte ces changements à l’aide des enregistrements de changement de mode de filtre ou de changement de liste des sources. Ces enregistrements indiquent un changement d’état explicite dans une adresse de diffusion groupée à un nœud dans la liste des sources ou dans le mode de filtre de l’enregistrement d’adresse de diffusion groupée. Lorsque l’écoute de l’adresse de diffusion groupée est terminée à un nœud ou lorsque le trafic provenant d’une certaine source n’est plus désiré, l’interrogateur doit interroger sur les autres écouteurs de l’adresse ou de la source de diffusion groupée avant de supprimer l’adresse (ou source) de diffusion groupée de son état d’écouteur d’adresse de diffusion groupée et de couper son trafic.

Pour permettre à tous les nœuds d’une liaison de répondre aux changements d’écoute d’adresse de diffusion groupée, l’interrogateur envoie des interrogations spécifiques. Une interrogation spécifique d’adresse de diffusion groupée est envoyée pour vérifier qu’il n’y a pas de nœuds qui écoutent l’adresse de diffusion groupée spécifiée ou pour "reconstruire" l’état d’écoute pour une certaine adresse de diffusion groupée. Les interrogations spécifiques d’adresse de diffusion groupée sont envoyées lorsque l’interrogateur reçoit un enregistrement de changement d’état qui indique qu’un nœud cesse d’écouter une adresse de diffusion groupée. Elles sont aussi envoyées pour permettre une transition rapide d’un routeur du mode EXCLURE au mode INCLURE, au cas où la réception d’un enregistrement de changement d’état motive cette action.

Une interrogation spécifique de source et d’adresse de diffusion groupée est utilisée pour vérifier qu’il n’y a pas sur une liaison de nœud qui écoute le trafic provenant d’un ensemble de sources spécifiques. Les interrogations spécifiques de source et d’adresse de diffusion groupée font la liste des sources pour une adresse de diffusion groupée particulière dont il a été demandé qu’elles ne soient plus transmises. Cette interrogation est envoyée par l’interrogateur afin d’apprendre si il y a un nœud qui écoute les paquets envoyés à l’adresse de diffusion groupée spécifiée, à partir des adresses de source spécifiées. Les interrogations spécifiques de source et d’adresse de diffusion groupée ne sont envoyées qu’en réponse aux enregistrements de changement d’état et jamais en réponse aux enregistrements d’état en cours. Le paragraphe 5.1.13 décrit plus en détails chaque interrogation.

7.2	État MLD entretenu par les routeurs de diffusion groupée
Les routeurs de diffusion groupée qui mettent en œuvre le protocole MLDv2 conservent l’état par adresse de diffusion groupée et par liaison rattachée. Cet état d’adresse de diffusion groupée consiste en un mode de filtre, en une liste des sources, et en divers temporisateurs. Pour chaque liaison rattachée sur laquelle fonctionne MLD, un routeur de diffusion groupée enregistre l’état d’écoute pour chaque liaison. Cet état consiste conceptuellement en un ensemble d’enregistrements de la forme :

(adresse IPv6 de diffusion groupée, temporisateur de filtre, mode de filtre de routeur, (enregistrements de source) )

Chaque enregistrement de source est de la forme :

(adresse IPv6 de diffusion groupée, temporisateur de source)

Si toutes les sources pour une adresse de diffusion groupée sont écoutées, une liste d’enregistrements de source vide est tenue avec le mode de filtre de routeur réglé à EXCLURE. Cela signifie que les nœuds qui sont sur la liaison veulent que soient transmises toutes les sources pour cette adresse de diffusion groupée. C’est l’équivalent MLDv2 d’un état d’écoute MLDv1.

7.2.1	Définition du mode de filtre de routeur
Pour réduire l’état interne, les routeurs MLDv2 conservent un mode de filtre par adresse de diffusion groupée par liaison de rattachement. Ce mode de filtre est utilisé pour résumer l’état d’écoute total d’une adresse de diffusion groupée à un ensemble minimum tel que les états d’écoute de tous les nœuds soient respectés. Le mode de filtre peut changer en réponse à la réception de types particuliers d’enregistrements d’adresse de diffusion groupée ou lorsque surviennent certaines conditions de temporisateur. Dans les paragraphes qui suivent, on utilise le terme de "mode de filtre de routeur" pour se référer au mode de filtre d’une adresse de diffusion groupée particulière au sein d’un routeur. Le paragraphe 7.4 décrit les changements du mode de filtre de routeur par enregistrement d’adresse de diffusion groupée reçu.

Un routeur est en mode INCLURE pour une adresse de diffusion groupée spécifique sur une certaine interface si tous les écouteurs sur la liaison intéressés par cette adresse sont en mode INCLURE. L’état de routeur est représenté par la notation INCLURE (A), où A est appelé la "liste Inclure". La liste Inclure est l’ensemble des sources qu’un ou plusieurs écouteurs sur la liaison ont demandé à recevoir. Toutes les sources de la liste Inclure seront transmises par le routeur. Toute autre source qui n’est pas sur la liste Inclure sera bloquée par le routeur.

Un routeur est en mode EXCLURE pour une adresse de diffusion groupée spécifique sur une certaine interface si il y a au moins un écouteur en mode EXCLURE qui est intéressé par cette adresse sur la liaison. Conceptuellement, lorsque un enregistrement d’adresse de diffusion groupée est reçu, le mode de filtre de routeur pour cette adresse de diffusion groupée est mis à jour pour couvrir toutes les sources demandées en utilisant la moindre quantité d’état. La règle est qu’une fois qu’est reçu un enregistrement d’adresse de diffusion groupée avec un mode de filtre de EXCLURE, le mode de filtre de routeur pour cette adresse de diffusion groupée sera réglé à EXCLURE. Néanmoins, si tous les nœuds avec un enregistrement d’adresse de diffusion groupée qui ont le mode de filtre réglé à EXCLURE cessent de faire rapport, il est souhaitable que le mode de filtre de routeur pour cette adresse de diffusion groupée revienne en mode INCLURE. Cette transition survient lorsque le temporisateur de filtre arrive à expiration, et elle est expliquée en détail au paragraphe 7.5.

Lorsque le routeur est en mode EXCLURE, l’état de routeur est représenté par la notation EXCLURE (X,Y), où X est appelé la "liste Demandée" et Y est appelé la "liste Exclure". Toutes les sources, excepté celles de la liste Exclure, vont être transmises par le routeur. La liste Demandée n’a pas d’effet sur la transmission. Néanmoins, elle doit être tenue pour plusieurs raisons, comme on l’explique au paragraphe 7.2.3.

Le traitement exact des deux modes INCLURE et EXCLURE d’état de routeur, conformément aux rapports reçus, est présenté en détails dans les Tableaux 7.4.1 et 7.4.2.

7.2.2	Définition des temporisateurs de filtres
Le temporisateur de filtre n’est utilisé que lorsque le routeur est en mode EXCLURE pour une adresse de diffusion groupée spécifique, et il représente le temps pour que le mode de filtre de routeur de l’adresse de diffusion groupée arrive à expiration et passe au mode INCLURE. Un temporisateur de filtre est un temporisateur qui diminue avec une limite inférieure de zéro. Il existe un temporisateur de filtre par enregistrement d’adresse de diffusion groupée. Les temporisateurs de filtre sont mis à jour selon les types d’enregistrements d’adresse de diffusion groupée reçus.

Si un temporisateur de filtre arrive à expiration, et si le mode de filtre de routeur pour cette adresse de diffusion groupée est EXCLURE, cela signifie qu’il n’y a plus d’écouteur en mode EXCLURE sur la liaison rattachée. À ce moment, le routeur passe au mode de filtre INCLURE. Le paragraphe 7.5 décrit les actions entreprises à l’arrivée à expiration d’un temporisateur de filtre en mode EXCLURE.

Le tableau suivant résume le rôle du temporisateur de filtre. Le paragraphe 7.4 décrit les détails du réglage du temporisateur de filtre par type d’enregistrement d’adresse de diffusion groupée reçu.

Mode de filtre du routeur	Valeur du tempo. de filtre	Actions/Commentaires	
INCLURE	Non utilisé	Tous les écouteurs en mode INCLURE.	
EXCLURE	Temporisateur > 0	Au moins un écouteur en mode EXCLURE.	
EXCLURE	Temporisateur == 0	Plus d’écouteur en mode EXCLURE pour l’adresse de diffusion groupée. Si la liste demandée est vide, supprimer l’enregistrement d’adresse de diffusion groupée. Sinon, passer au mode de filtre INCLURE ; les sources de la liste demandée sont passées à la liste inclure, et la liste exclure est supprimée.	

7.2.3	Définition des temporisateurs de source
Un temporisateur de source est diminué jusqu’à une limite de zéro. On tient un temporisateur de source par enregistrement de source. Les temporisateurs de source sont mis à jour selon le type et le mode de filtre de l’enregistrement d’adresse de diffusion groupée reçu. Le paragraphe 7.4 décrit le réglage des temporisateurs de source par type d’enregistrement d’adresse de diffusion groupée reçu.

Dans ce qui suit , des abréviations sont utilisées pour plusieurs variables (qui sont toutes décrites en détail à la Section 9). La variable MALI (Multicast Address Listening Interval) donne l’intervalle d’écoute d’adresse de diffusion groupée qui est le délai dans lequel l’état d’écoute de l’adresse de diffusion groupée va arriver à expiration. La variable LLQT (Last Listener Query Time) est l’heure de la dernière interrogation d’écouteur, qui est la durée totale pendant laquelle le routeur devrait attendre un rapport, après que l’interrogateur a envoyé la première interrogation. Durant ce délai, l’interrogateur devrait envoyer [Compte d’interrogation du dernier membre] - 1 retransmissions de l’interrogation. LLQT représente la "latence de départ", ou la différence entre la transmission d’un changement d’état d’écouteur et la modification des informations passées au protocole d’acheminement.

Si le routeur est dans le mode de filtre INCLURE, une source peut être ajoutée à la liste Inclure actuelle si un écouteur en mode INCLURE envoie un État en cours ou un rapport de changement d’état qui comporte cette source. Chaque source de la liste Inclure est associée à un temporisateur de source qui est mis à jour chaque fois qu’un écouteur en mode INCLURE envoie un rapport qui confirme son intérêt pour cette source spécifique. Si le temporisateur d’une source de la liste Inclure arrive à expiration, la source est supprimée de la liste Inclure. Si il ne reste plus d’enregistrement de source, l’enregistrement d’adresse de diffusion groupée est supprimé chez le routeur.

À côté de ce mécanisme de "départ en douceur", il y a aussi un schéma de "départ rapide" dans MLDv2 ; il se fonde aussi sur l’utilisation de temporisateurs de source. Lorsque un nœud en mode INCLURE exprime son désir d’écouter une source spécifique, tous les routeurs de diffusion groupée sur la liaison diminuent leur temporisateur pour cette source à un petit intervalle de LLQT millisecondes. L’interrogateur envoie alors une interrogation spécifique de source et d’adresse de diffusion groupée pour vérifier si il y a ou non d’autres écouteurs de cette source sur la liaison. Si un rapport correspondant est reçu avant l’arrivée à expiration du temporisateur, tous les routeurs de diffusion groupée sur la liaison mettent à jour leur temporisateur de source. Sinon, la source est supprimée de la liste Inclure. Le traitement de la liste Inclure, selon les rapports reçus, est détaillé aux Tableaux 7.4.1 et 7.4.2.

Les temporisateurs de source sont traités différemment lorsque le mode de filtre de routeur pour une adresse de diffusion groupée est EXCLURE. Pour les sources de la liste Demandée, les temporisateurs de source ont des valeurs qui courent ; ces sources sont transmises par le routeur. Pour les sources de la liste Exclure, les temporisateurs de source sont réglés à zéro ; ces sources sont bloquées par le routeur. Si le temporisateur d’une source de la liste Demandée arrive à expiration, la source est passée à la liste Exclure. Le routeur informe alors le protocole d’acheminement qu’il n’y a plus sur la liaison d’écouteur qui soit intéressé par le trafic de cette source.

Le routeur doit tenir la liste Demandée pour deux raisons :
o	Pour garder trace des sources qu’écoutent les écouteurs en mode INCLURE. Cela est nécessaire afin d’assurer une transition en douceur du routeur au mode INCLURE, lorsque il n’y aura plus d’écouteur en mode EXCLURE. Cette transition ne devrait pas interrompre le flux de trafic vers les écouteurs en mode INCLURE toujours intéressés par cette adresse de diffusion groupée. Donc, au moment de la transition, la liste Demandée devrait représenter l’ensemble des sources que les nœuds en mode INCLURE ont explicitement demandées.
Lorsque le routeur passe au mode INCLURE, les sources de la liste Demandée sont déplacées dans la liste Inclure, et la liste Exclure est supprimée. Avant la commutation, la liste Demandée peut contenir une hypothèse inexacte sur les sources que les écouteurs en mode INCLURE écoutent – trop grande ou trop petite. Ces inexactitudes sont dues au fait que la liste Demandée est aussi utilisée pour les besoins du blocage rapide, comme on le décrit plus loin. Si un tel blocage rapide est exigé, certaines sources peuvent être supprimées de la liste Demandée (comme montré aux Tableaux 7.4.1 et 7.4.2) afin de réduire l’état de routeur. Néanmoins, dans chacun de ces cas, le temporisateur de filtre est aussi mis à jour. Donc, les écouteurs en mode INCLURE vont avoir assez de temps, avant une commutation éventuelle, pour reconfirmer leur intérêt pour la ou les sources éliminées, et reconstruire en conséquence la liste Demandée. Le protocole assure que lorsque survient un passage au mode INCLURE, la liste Demandée va être correcte. Les détails de la transition du routeur au mode INCLURE sont présentés à l’Appendice A3.
o	Pour permettre un blocage rapide de sources précédemment non bloquées. Si le routeur reçoit un rapport qui contient une telle demande, les sources concernées sont ajoutées à la liste Demandée. Leurs temporisateurs sont réglés à un petit intervalle de LLQT millisecondes, et une interrogation spécifique de source et d’adresse de diffusion groupée est envoyée par l’interrogateur, pour vérifier si il y a sur la liaison des nœuds toujours intéressés par ces sources, ou non. Si aucun nœud ne confirme son intérêt à recevoir une source spécifique, le temporisateur de cette source arrive à expiration. Puis, la source est passée de la liste Demandée à la liste Exclure. À partir de ce moment là, la source sera bloquée par le routeur.

Le traitement de l’état de routeur en mode EXCLURE, selon les rapports reçus, est détaillé aux Tableaux 7.4.1 et 7.4.2.

Lorsque le mode de filtre de routeur pour une adresse de diffusion groupée est EXCLURE, les enregistrements de source ne sont supprimés que lorsque le temporisateur de filtre arrive à expiration, ou lorsque la réception de nouveaux enregistrements d’adresse de diffusion groupée modifie la liste des enregistrements de source du routeur.

7.3	Règles de transmission spécifiques de source MLDv2
Lorsque un routeur de diffusion groupée reçoit un datagramme d’une source destinée à une adresse de diffusion groupée particulière, il faut décider si on transmet ou non le datagramme sur une liaison rattachée. Le protocole d’acheminement de diffusion groupée en usage est chargé de cette décision, et il devrait utiliser les informations de MLDv2 pour s’assurer que toutes les sources/adresses de diffusion groupée qui ont des écouteurs sur une liaison sont transmises à cette liaison. Les informations MLDv2 n’écrasent pas les informations d’acheminement de diffusion groupée ; par exemple, si le mode de filtre MLDv2 pour une adresse de diffusion groupée est EXCLURE, un routeur peut quand même transmettre des paquets pour des sources exclues à une liaison de transit.

Pour résumer, le tableau suivant décrit les suggestions de transmission faites par MLDv2 au protocole d’acheminement pour le trafic généré d’une source et destiné à une adresse de diffusion groupée. Il résume aussi les actions effectuées à l’expiration d’un temporisateur de source sur la base du mode de filtre de routeur de l’adresse de diffusion groupée.

Mode de filtre de routeur	Valeur du temporisateur de source	Action	
INCLURE	> 0	Suggère de transmettre le trafic de la source	
INCLURE	== 0	Suggère d’arrêter de transmettre le trafic de la source et de supprimer l’enregistrement de source. Si il n’y a plus d’enregistrement de source, supprime l’enregistrement d’adresse de diffusion groupée.	
EXCLURE	> 0	Suggère de transmettre le trafic de la source.	
EXCLURE	== 0	Suggère de ne pas transmettre le trafic de la source. Déplacer la source de la liste Demandée à la liste Exclure (NE PAS supprimer l’enregistrement de source).	
EXCLURE	Pas d’élément de source	Suggère de transmettre le trafic de toutes les sources.	

7.4	Action à réception des rapports
À réception d’un message MLD qui contient un rapport, le routeur vérifie si l’adresse de source du message est une adresse valide de liaison locale, si la limite de bonds est réglée à 1, et si l’option d’alerte de routeur est présente dans l’en-tête Options bond par bond du paquet IPv6. Si une de ces vérifications échoue, le paquet est éliminé. Si la validité du message MLD est vérifiée, le routeur commence à traiter le rapport.

7.4.1	Réception des enregistrements d’état en cours 
Lorsque il reçoit les enregistrements d’état en cours, un routeur met à jour son temporisateur de filtre et ses temporisateurs de source. Dans certaines circonstances, la réception d’un type d’enregistrement d’adresse de diffusion groupée causera le changement du mode de filtre de routeur pour cette adresse de diffusion groupée. Le tableau ci-dessous décrit les actions, par rapport à l’état et aux temporisateurs, qui surviennent à l’état d’un routeur à réception des enregistrements d’état en cours.

Si le routeur est en mode de filtre INCLURE pour une adresse de diffusion groupée, on utilise la notation INCLURE (A), où A note la liste Inclure associée. Si le routeur est en mode de filtre EXCLURE pour une adresse de diffusion groupée, on utilise la notation EXCLURE (X,Y), où X et Y notent respectivement la liste Demandée et la liste Exclure associées.

Au sein de la colonne "Actions" des tableaux d’état de routeur, on utilise la notation '(A)=J', qui signifie que l’ensemble A des enregistrements de source devrait avoir ses temporisateurs de source réglés à la valeur J. 'Supprimer (A)' signifie que l’ensemble A des enregistrements de source devrait être supprimé. 'Temporisateur de filtre = J' signifie que le temporisateur de filtre pour l’adresse de diffusion groupée devrait être réglé à la valeur J.

État de routeur	Rapport reçu	Nouvel état de routeur	Actions	
INCLURE (A)	IS_IN (B)	INCLURE (A+B)	(B)=MALI	
INCLURE (A)	IS_EX (B)	EXCLURE (A*B, B-A)	(B-A)=0 Supprimer (A-B) 
Temporisateur de filtre=MALI	
EXCLURE (X,Y)	IS_IN (A)	EXCLURE (X+A, Y-A)	(A)=MALI	
EXCLURE (X,Y)	IS_EX (A)	EXCLURE (A-Y, Y*A)	(A-X-Y)=MALI Supprimer (X-A) Supprimer (Y-A) Temporisateur de filtre=MALI	

7.4.2	Réception des enregistrements Changement de mode de filtre et Changement de liste de source
Lorsque survient un changement de l’état global d’une adresse de diffusion groupée dans un nœud, celui-ci envoie un enregistrement de changement de liste de source ou un enregistrement de changement de mode de filtre pour cette adresse de diffusion groupée. Comme avec les enregistrements d’état en cours, les routeurs doivent agir sur ces enregistrements et éventuellement changer leur propre état pour refléter le nouvel état d’écoute de la liaison.

L’interrogateur doit interroger les sources ou adresses de diffusion groupée dont il est demandé qu’elles ne soient plus transmises. Lorsque un routeur interroge ou reçoit une interrogation pour un ensemble spécifique de sources, il diminue ses temporisateurs de source pour ces sources à un petit intervalle de [Heure d’interrogation du dernier écouteur] millisecondes. Si les enregistrements d’adresse de diffusion groupée sont reçus en réponse à des interrogations qui expriment un intérêt pour l’écoute des sources interrogées, les temporisateurs correspondants sont mis à jour.

Les interrogations spécifiques d’adresse de diffusion groupée peuvent aussi être utilisées pour permettre une transition rapide d’un routeur du mode EXCLURE au mode INCLURE, au cas où la réception d’un enregistrement d’adresse de diffusion groupée motive cette action. Le temporisateur de filtre pour cette adresse de diffusion groupée est diminué à un petit intervalle de [Heure d’interrogation du dernier écouteur] millisecondes. Si des enregistrements d’adresse de diffusion groupée qui expriment un intérêt en mode EXCLURE pour l’adresse de diffusion groupée sont reçus dans cet intervalle, le temporisateur de filtre est mis à jour et la suggestion au protocole d’acheminement de transmettre l’adresse de diffusion groupée est maintenue sans interruption. Sinon, le routeur va passer au mode de filtre INCLURE pour cette adresse de diffusion groupée.

Durant la période d’interrogation (c’est-à-dire, [Heure d’interrogation du dernier écouteur] millisecondes) le composant MLD du routeur continue de suggérer au protocole d’acheminement de transmettre le trafic provenant des adresses ou sources de diffusion groupée qui sont interrogées. Ce n’est qu’après [Heure d’interrogation du dernier écouteur] millisecondes sans recevoir d’enregistrement qui exprime un intérêt pour les adresses ou sources de diffusion groupée interrogées que le routeur peut élaguer l’adresse ou source de diffusion groupée de la liaison.

Le tableau qui suit décrit les changements de l’état d’adresse de diffusion groupée et la ou les actions entreprises à réception d’enregistrements de changement de mode de filtre ou de changement de liste des sources. Ce tableau décrit aussi les interrogations qui sont envoyées par l’interrogateur lors de la réception d’un rapport particulier.

On utilise la  notation suivante pour décrire les interrogations envoyées. La notation 'Q(MA)' décrit une interrogation spécifique d’adresse de diffusion groupée à l’adresse de diffusion groupée MA. La notation 'Q(MA,A)' décrit une interrogation spécifique de source et d’adresse de diffusion groupée à l’adresse de diffusion groupée MA avec la liste des sources A. Si la liste des sources A est nulle par suite de l’action (par exemple A*B) aucune interrogation n’est envoyée en résultat de l’opération.

Afin de conserver la robustesse du protocole, les interrogations définies dans les colonnes Actions du tableau ci-dessous doivent être transmises [Compte d’interrogations du dernier écouteur] fois, tous les [Intervalle d’interrogation du dernier écouteur].

Si lors de la programmation de nouvelles interrogations, il y a déjà des interrogations en instance à retransmettre pour la même adresse de diffusion groupée, les interrogations nouvelles et celles en instance doivent être fusionnées. De plus, les rapports d’hôte reçus pour une adresse de diffusion groupée avec des interrogations en instance peuvent affecter le contenu de ces interrogations. Le paragraphe 7.6.3. décrit le processus de construction et de maintenance de l’état des interrogations en instance.

État de routeur	Rapport reçu	Nouvel état de routeur	Actions	
INCLURE (A)	PERMET (B)	INCLURE (A+B)	(B)=MALI	
INCLURE (A)	BLOQUE (B)	INCLURE (A)	Envoyer Q(MA,A*B)	
INCLURE (A)	TO_EX (B)	EXCLURE (A*B,B-A)	(B-A)=0 Supprimer (A-B) Envoyer Q(MA,A*B) Temporisateur de filtre=MALI	
INCLURE (A)	TO_IN (B)	INCLURE (A+B)	(B)=MALI Envoyer Q(MA,A-B)	
EXCLURE (X,Y)	PERMET (A)	EXCLURE (X+A,Y-A)	(A)=MALI	
EXCLURE (X,Y)	BLOQUE (A)	EXCLURE (X+(A-Y),Y)	(A-X-Y) = Temporisateur de filtre  Envoyer Q(MA,A-Y)	
EXCLURE (X,Y)	TO_EX (A)	EXCLURE (A-Y,Y*A)	(A-X-Y) = Temporisateur de filtre  Supprimer (X-A) Supprimer (Y-A) Envoyer Q(MA,A-Y) Temporisateur de filtre=MALI	
EXCLURE (X,Y)	TO_IN (A)	EXCLURE (X+A,Y-A)	(A)=MALI Envoyer Q(MA,X-A) Envoyer Q(MA)	

7.5	Changement des modes de filtre de routeur
Le temporisateur de filtre est utilisé comme mécanisme pour faire passer le mode de filtre de routeur de EXCLURE à INCLURE.

Lorsque un temporisateur de filtre arrive à expiration avec un mode de filtre de routeur de EXCLURE, un routeur supposera qu’il n’y a plus de nœuds ayant un *mode de filtre* de EXCLURE présent sur la liaison rattachée. Donc, le routeur passe au mode de filtre INCLURE pour l’adresse de diffusion groupée.

Un routeur utilise les sources de la liste Demandée comme son état pour la commutation en mode de filtre de INCLURE. Les sources de la liste Demandée sont passées à la liste Inclure, tandis que les sources de la liste Exclure sont supprimées. Par exemple, si l’état d’un routeur pour une adresse de diffusion groupée est EXCLURE(X,Y) et si le temporisateur de filtre arrive à expiration pour cette adresse de diffusion groupée, le routeur passe au mode de filtre de INCLURE avec l’état INCLURE(X). Si au moment de la commutation la liste Demandée (X) est vide, l’enregistrement d’adresse de diffusion groupée est supprimé du routeur.

7.6	Action à réception des interrogations
À réception d’un message MLD qui contient une interrogation, le routeur vérifie si l’adresse de source du message est une adresse valide de liaison locale, si la limite de bonds est réglée à 1, et si l’option d’alerte de routeur est présente dans l’en-tête Options bond par bond du paquet IPv6. Si une de ces vérifications échoue, le paquet est éliminé.

Si la validité du message MLD est vérifiée, le routeur commence le traitement de l’interrogation.

7.6.1	Mises à jour de temporisateur
MLDv2 utilise le fanion Suppression du traitement côté routeur pour assurer la robustesse, comme on l’a expliqué au paragraphe 2.1. Lorsque un routeur envoie ou reçoit une interrogation avec un fanion Suppression du traitement côté routeur à zéro, il doit mettre à jour ses temporisateurs de façon à refléter les valeurs correctes de temporisation pour les adresses ou sources de diffusion groupée interrogées. Le tableau qui suit décrit les actions de temporisation lors de l’envoi ou la réception d’une interrogation spécifique d’adresse de diffusion groupée ou spécifique de source et d’adresse de diffusion groupée lorsque le fanion Suppression du traitement côté routeur n’est pas établi (est à zéro).

Interrogation	Action
Q(MA,A)	Les temporisateurs de source pour les sources dans A sont réduites à LLQT.
Q(MA)	Le temporisateur de filtre est réduit à LLQT

Lorsque un routeur envoie ou reçoit une interrogation avec le fanion Suppression du traitement côté routeur établi (à 1), il ne met pas ses temporisateurs à jour.

7.6.2	Choix de l’interrogateur
MLDv2 choisit un seul routeur par sous-réseau pour être dans l’état Interrogateur ; tous les autres routeurs du sous-réseau devraient être dans l’état Non-interrogateur. MLDv2 utilise le même mécanisme d’élection d’interrogateur que MLDv1, à savoir l’adresse IPv6. Lorsque qu’un routeur commence à fonctionner sur un sous-réseau, il se considère par défaut comme étant lui-même l’interrogateur. Donc, il envoie plusieurs interrogations générales séparées par un petit intervalle de temps (voir les détails aux paragraphes 9.6 et 9.7).

Lorsque un routeur reçoit une interrogation avec une adresse IPv6 inférieure à la sienne, il règle le temporisateur Autre interrogateur présent à Temporisation d’autre interrogateur présent ; si il était précédemment dans l’état d’interrogateur, il passe à l’état Non-interrogateur et cesse d’envoyer des interrogations sur la liaison. Après l’arrivée à expiration du temporisateur Autre interrogateur présent, il devrait rentrer dans l’état Interrogateur et commencer d’envoyer des interrogations générales.

Toutes les interrogations MLDv2 DOIVENT être envoyées avec le préfixe d’adresse de source de liaison locale FE80::/64. Donc, pour les besoins du choix de l’interrogateur MLDv2, une adresse IPv6 A est considérée comme étant inférieure à une adresse IPv6 B si l’identifiant d’interface représenté par les 64 derniers bits de l’adresse A, en ordre gros boutien des bits, est inférieur à l’identifiant d’interface représenté par les 64 derniers bits de l’adresse B.

7.6.3	Construction et envoi d’interrogations spécifiques
7.6.3.1	Construction et envoi d’interrogations spécifiques d’adresse de diffusion groupée
Lorsque une action "Envoyer Q(MA)" du tableau est rencontrée, le temporisateur de filtre doit être diminué à LLQT. L’interrogateur doit alors envoyer immédiatement une interrogation spécifique d’adresse de diffusion groupée ainsi que programmer les retransmissions de [Compte d’interrogation du dernier écouteur - 1] interrogations à envoyer tous les [Intervalle d’interrogation du dernier écouteur], pendant [Délai d’interrogation du dernier écouteur].

Lors de la transmission d’une interrogation spécifique d’adresse de diffusion groupée, si le temporisateur de filtre est supérieur à LLQT, le bit "Supprimer le traitement côté routeur" est établi dans le message d’interrogation.

7.6.3.2	Construction et envoi d’interrogations spécifiques d’adresse et de source de diffusion groupée
Lorsque une action "Envoyer Q(MA,X)" du tableau est rencontrée par l’interrogateur dans le tableau du paragraphe 7.4.2, les actions suivantes doivent être effectuées pour chacune des sources dans X qui envoie à l’adresse de diffusion groupée MA, avec un temporisateur de source supérieur à LLQT :
o	diminuer le temporisateur de source à LLQT ;
o	ajouter les sources à la liste de retransmission ;
o	régler le compteur de retransmission de source pour chaque source à [Compte d’interrogation de dernier écouteur].

L’interrogateur doit alors envoyer immédiatement une interrogation spécifique de source et d’adresse de diffusion groupée ainsi que programmer les retransmissions de [Compte d’interrogation du dernier écouteur - 1] interrogations à envoyer tous les [Intervalle d’interrogation du dernier écouteur], pendant [Délai d’interrogation du dernier écouteur]. Le contenu de ces interrogations est calculé comme suit.

Lors de la construction d’une interrogation spécifique de source et d’adresse de diffusion groupée pour une adresse de diffusion groupée MA, deux messages d’interrogation séparés sont envoyés pour l’adresse de diffusion groupée. La première a le bit "Supprimer le traitement côté routeur" établi et contient toutes les sources avec l’état de retransmission (c’est-à-dire, les sources de la liste de retransmission de cette adresse de diffusion groupée) et les temporisateurs supérieurs à LLQT. La seconde a le bit "Supprimer le traitement côté routeur" à zéro et contient toutes les sources qui ont l’état de retransmission et les temporisateurs inférieurs ou égaux à LLQT. Si l’un ou l’autre des deux messages calculés ne contient aucune source, sa transmission est alors supprimée.

Note : Si la transmission d’une interrogation spécifique d’adresse de diffusion groupée est programmée au même moment qu’une interrogation spécifique d’adresse et de source de diffusion groupée pour la même adresse de diffusion groupée, la transmission du message spécifique d’adresse et de source de diffusion groupée avec le bit "Supprimer le traitement côté routeur" établi peut être supprimée.

8.	Interopération avec MLDv1

Les hôtes et routeurs MLD version 2 interopèrent avec les hôtes et routeurs qui ne sont pas encore mis à niveau avec MLDv2. Cette compatibilité est entretenue par les hôtes et routeurs en prenant les actions appropriées selon les versions de MLD qui fonctionnent sur les hôtes et routeurs au sein d’un réseau.

8.1	Distinction des versions d’interrogation
La version MLD d’un message Interrogation d’écouteur est déterminée comme suit :
Longueur d’interrogation MLDv1 = 24 octets
Longueur d’interrogation MLDv2 : ≥ 28 octets

Les messages Interrogation qui ne correspondent pas aux conditions ci-dessus (par exemple, une interrogation d’une longueur de 26 octets) DOIVENT être ignorés en silence.

8.2	Comportement d’écouteur d’adresse de diffusion groupée
8.2.1	En présence de routeurs MLDv1
Pour être compatibles avec les routeurs MLDv1, les hôtes MLDv2 DOIVENT fonctionner en mode de compatibilité version 1. Les hôtes MLDv2 DOIVENT garder l’état par interface locale en ce qui concerne le mode de compatibilité de chaque liaison rattachée. Le mode de compatibilité d’un hôte est déterminé à partir de la variable Mode de compatibilité d’hôte qui peut être dans un des deux états : MLDv1 ou MLDv2.

Le mode de compatibilité d’hôte d’une interface est réglé à MLDv1 chaque fois qu’une interrogation d’écouteur d’adresse de diffusion groupée MLDv1 est reçue sur cette interface. En même temps, le temporisateur Interrogateur de plus ancienne version présent pour l’interface est réglé à [Temporisation d’interrogateur de plus ancienne version présent] secondes. Le temporisateur est relancé chaque fois qu’une nouvelle interrogation MLDv1 est reçue sur cette interface. Si le temporisateur Interrogateur de plus ancienne version présent arrive à expiration, l’hôte revient au mode de compatibilité d’hôte de MLDv2.

Lorsque le mode de compatibilité d’hôte est MLDv2, un hôte agit en utilisant le protocole MLDv2 sur cette interface. Lorsque le mode de compatibilité d’hôte est MLDv1, un hôte agit en mode de compatibilité MLDv1, en utilisant seulement le protocole MLDv1, sur cette interface.

Un interrogateur MLDv1 va envoyer des interrogations générales avec le code de réponse maximum réglé au délai de réponse maximum désiré, c’est-à-dire que la gamme complète de ce champ est linéaire et que l’algorithme exponentiel décrit au paragraphe 5.1.3 n’est pas utilisé.

Chaque fois qu’un hôte change son mode de compatibilité, il annule toutes ses réponses en cours et ses temporisateurs de retransmission.

8.2.2	En présence d’écouteurs d’adresse de diffusion groupée MLDv1
Un hôte MLDv2 peut être placé sur une liaison où il y a des hôtes MLDv1. Un hôte PEUT permettre que son rapport d’écouteur de diffusion groupée MLDv2 soit supprimé par un rapport d’écouteur de diffusion groupée de version 1.

8.3	Comportement du routeur de diffusion groupée
8.3.1	En présence de routeurs MLDv1
Des routeurs MLDv2 peuvent être placés sur un réseau où il y a au moins un routeur MLDv1. Les exigences suivantes s’appliquent :
o	Si un routeur MLDv1 est présent sur la liaison, l’interrogateur DOIT utiliser la plus basse version de MLD présente sur le réseau. Cela doit être assuré de façon administrative. Les routeurs qui désirent être compatibles avec MLDv1 DOIVENT avoir une option de configuration pour agir en mode MLDv1 ; si un routeur MLDv1 est présent sur la liaison, l’administrateur du système doit explicitement configurer tous les routeurs MLDv2 à agir en mode MLDv1. En mode MLDv1, l’interrogateur DOIT envoyer des interrogations générales périodiques tronquées au champ d’adresse de diffusion groupée (c’est-à-dire, longs de 24 octets) et DEVRAIT aussi avertir de la réception d’interrogations MLDv2 (un tel avertissement doit être limité en débit). L’interrogateur DOIT aussi remplir le délai de réponse maximum dans le champ Code de réponse maximum, c’est-à-dire que l’algorithme exponentiel décrit au paragraphe 5.1.3. n’est pas utilisé.
o	Si un routeur n’est pas explicitement configuré à utiliser MLDv1 et reçoit une interrogation générale MLDv1, il DEVRAIT enregistrer un avertissement. Ces avertissements DOIVENT être à débit limité.

8.3.2	En présence d’écouteurs d’adresse de diffusion groupée MLDv1
Les routeurs MLDv2 peuvent être placés sur un réseau où il y a des hôtes qui n’ont pas encore été mis à niveau avec MLDv2. Pour être compatibles avec les hôtes MLDv1, les routeurs MLDv2 DOIVENT fonctionner en mode de compatibilité version 1. Les routeurs MLDv2 conservent un mode de compatibilité par enregistrement d’adresse de diffusion groupée. Le mode de compatibilité d’une adresse de diffusion groupée est déterminé à partir de la variable Mode de compatibilité d’adresse de diffusion groupée, qui peut être dans l’un des deux états suivants : MLDv1 ou MLDv2.

Le mode de compatibilité d’adresse de diffusion groupée d’un enregistrement d’adresse de diffusion groupée est réglé à MLDv1 chaque fois qu’un rapport d’écouteur de diffusion groupée MLDv1 est reçu pour cette adresse de diffusion groupée. En même temps, le temporisateur Hôte de plus ancienne version présent pour l’adresse de diffusion groupée est réglé à [Temporisation d’hôte de plus ancienne version présent] secondes. Le temporisateur est relancé chaque fois qu’un nouveau rapport MLDv1 est reçu pour cette adresse de diffusion groupée. Si le temporisateur d’hôte de plus ancienne version présent arrive à expiration, le routeur revient au mode de compatibilité d’adresse de diffusion groupée de MLDv2 pour cette adresse de diffusion groupée.

Noter que lorsque un routeur revient au mode de compatibilité d’adresse de diffusion groupée de MLDv2 pour une adresse de diffusion groupée, il prend un certain temps pour retrouver des informations d’état spécifiques de source. Les informations spécifiques de source seront apprises durant la prochaine interrogation générale, mais les sources qui devraient être bloquées ne seront pas bloquées pendant [Intervalle d’écoute d’adresse de diffusion groupée] après cela.

Lorsque le mode de compatibilité d’adresse de diffusion groupée est MLDv2, un routeur agit en utilisant le protocole MLDv2 pour cette adresse de diffusion groupée. Lorsque le mode de compatibilité d’adresse de diffusion groupée est MLDv1, un routeur traduit en interne les messages MLDv1 suivants pour cette adresse de diffusion groupée en leurs équivalents MLDv2 :

Message MLDv1 	Équivalent MLDv2 
Rapport	IS_EX( {} )
Fait	TO_IN( {} )

Les messages MLDv2 BLOQUER sont ignorés, comme le sont les listes de sources dans les messages TO_EX() (c’est-à-dire que tout message TO_EX() est traité comme TO_EX( {} )). D’un autre côté, l’interrogateur continue d’envoyer des interrogations MLDv2, sans considération de son mode de compatibilité d’adresse de diffusion groupée.

9.	Liste des temporisateurs, compteurs, et valeurs par défaut

La plupart de ces temporisateurs sont configurables. Si ce ne sont pas les réglages par défaut qui sont utilisés, ils DOIVENT être cohérents entre tous les nœuds d’une même liaison. Noter que les parenthèses sont utilisées pour grouper des expressions afin de rendre l’algèbre plus claire.

9.1	Variable de robustesse
La variable de robustesse permet de régler la perte de paquet attendue sur une liaison. Si on s’attend à ce qu’une liaison soit encline aux pertes, la valeur de la variable de robustesse peut être augmentée. MLD est robuste à [Variable de robustesse] –  1 pertes de paquet. La valeur de la variable de robustesse NE DOIT PAS être zéro, et NE DEVRAIT PAS être un. La valeur par défaut est 2.

9.2	Intervalle d’interrogation
La variable Intervalle d’interrogation note l’intervalle entre les interrogations générales envoyées par l’interrogateur. La valeur par défaut est de 125 secondes.
En faisant varier l’Intervalle d’interrogation, un administrateur peut régler le nombre de messages MLD sur la liaison; de plus grandes valeurs font que les interrogations MLD sont envoyées moins souvent.

9.3	Intervalle de réponse à interrogation
Le délai maximum de réponse utilisé pour calculer le code maximum de réponse inséré dans les interrogations générales périodiques. La valeur par défaut est 10  000 (10 secondes).

En faisant varier [Intervalle de réponse d’interrogation], un administrateur peut ajuster la sporadicité des messages MLD sur la liaison ; de plus grandes valeurs rendent le trafic moins sporadique, car les réponses des hôtes sont étalées sur un plus grand intervalle. Le nombre de secondes représenté par [Intervalle de réponse d’interrogation] doit être inférieur à [Intervalle d’interrogation].

9.4	Intervalle d’écoute d’adresse de diffusion groupée
L’intervalle d’écoute d’adresse de diffusion groupée (MALI, Multicast Address Listening Interval) est le temps qui doit s’écouler avant qu’un routeur de diffusion groupée décide qu’il n’y a plus d’écouteur d’une adresse de diffusion groupée ou d’une source particulière sur une liaison. Cette valeur DOIT être ([Variable de robustesse] fois [Intervalle d’interrogation]) plus [Intervalle de réponse d’interrogation].

9.5	Temporisation de présence d’autre interrogateur
La temporisation de présence d’autre interrogateur est la durée qui doit s’écouler avant qu’un routeur de diffusion groupée décide qu’il n’y a plus d’autre routeur de diffusion groupée qui devrait être l’interrogateur. Cette valeur DOIT être ([Variable de robustesse] fois ([Intervalle d’interrogation]) plus ([Intervalle de réponse d’interrogation]/2).

 9.6	Intervalle de début d’interrogation
L’intervalle de début d’interrogation est l’intervalle entre les interrogations générales envoyées par un interrogateur au démarrage. La valeur par défaut est 1/4 de [Intervalle d’interrogation].

9.7	Début de compte d’interrogation
Le début de compte d’interrogation est le nombre d’interrogations envoyées au démarrage, séparées par l’intervalle de début d’interrogation. La valeur par défaut  est la [Variable de robustesse].

9.8	Intervalle d’interrogation du dernier écouteur
L’intervalle d’interrogation du dernier écouteur est le délai de réponse maximum utilisé pour calculer le code de réponse maximum inséré dans les interrogations spécifiques d’adresse de diffusion groupée envoyées en réponse aux messages MLD de version 1 (Multicast Listener Done). C’est aussi le délai de réponse maximum utilisé pour calculer le code de réponse maximum inséré dans les messages d’interrogation spécifique de source et d’adresse de diffusion groupée. La valeur par défaut est 1000 (1 seconde).

Noter que pour les valeurs de LLQI supérieures à 32  768 secondes, un jeu limité de valeurs peut être représenté, correspondant aux valeurs séquentielles du code de réponse maximum. Lorsque on convertit une heure configurée en valeur de code de réponse maximum, il est recommandé d’utiliser si possible la valeur exacte, ou la prochaine valeur inférieure si la valeur demandée n’est pas exactement représentable.

Cette valeur peut être ajustée pour modifier la "latence de départ" de la liaison. Une valeur réduite résulte en une réduction du temps de détection du départ du dernier écouteur pour une source ou adresse de diffusion groupée.

9.9	Compte d’interrogation du dernier écouteur
Le compte d’interrogation du dernier écouteur est le nombre d’interrogations spécifiques d’adresse de diffusion groupée envoyées avant que le routeur ne suppose qu’il n’y a pas d’écouteur local. Le compte d’interrogation du dernier écouteur est aussi le nombre d’interrogations spécifiques de source et d’adresse de diffusion groupée envoyées avant que le routeur ne suppose qu’il n’y a plus d’écouteur pour une certaine source. La valeur par défaut est [Variable de robustesse].

9.10	Heure d’interrogation du dernier écouteur
L’heure d’interrogation du dernier écouteur est la valeur horaire représentée par l’intervalle d’interrogation du dernier écouteur , multipliée par le [Compte d’interrogation du dernier écouteur]. Elle n’est pas une valeur réglable, mais peut être ajustée en changeant ses composants.

9.11	Intervalle de rapport non sollicité
L’intervalle de rapport non sollicité est le temps qui s’écoule entre les répétitions du rapport d’intérêt initial d’un nœud pour une adresse de diffusion groupée. La valeur par défaut est 1 seconde.

9.12	Temporisation de présence d’interrogateur de plus ancienne version
La temporisation de présence d’interrogateur de plus ancienne version est la temporisation pour le retour d’un hôte au mode de compatibilité d’hôte MLDv2. Lorsque une interrogation MLDv1 est reçue, les hôtes MLDv2 règlent leur temporisateur de présence d’interrogateur de plus ancienne version à [Temporisation de présence d’interrogateur de plus ancienne version].

Cette valeur DOIT être ([Variable de robustesse] fois ([Intervalle d’interrogation] dans la dernière interrogation reçue)) plus ([Intervalle de réponse d’interrogation]).

9.13	Temporisation de présence d’un hôte de version précédente
La temporisation de présence d’un hôte de version précédente est la temporisation pour repasser au mode de compatibilité d’adresse de diffusion groupée MLDv2 pour une adresse de diffusion groupée spécifique. Lorsque un rapport MLDv1 est reçu pour cette adresse de diffusion groupée, les routeurs règlent leur temporisateur de présence d’un hôte de version précédente à [Temporisation de présence d’un hôte de version précédente].

Cette valeur DOIT être ([Variable de robustesse] fois [Intervalle d’interrogation]) plus ([Intervalle de réponse d’interrogation]).

9.14	Configuration des temporisateurs
Ce paragraphe est destiné à fournir un conseil aux administrateurs de réseau sur la façon d’ajuster ces réglages à leur réseau. Les mises en œuvre de routeur ambitieuses peuvent ajuster les réglages de façon dynamique sur la base du changement des caractéristiques du réseau.

9.14.1	Variable de robustesse
La variable de robustesse règle MLD aux pertes attendues sur une liaison. MLDv2 est robuste à [Variable de robustesse] - 1 pertes de paquets, par exemple, si la variable de robustesse est réglée à la valeur par défaut de 2, MLDv2 est robuste à la perte d’un seul paquet mais peut fonctionner de façon imparfaite si plus de pertes surviennent. Sur les liaisons enclines aux pertes, la valeur de la variable de robustesse devrait être augmentée pour permettre le niveau attendu de pertes de paquets. Cependant, augmenter la valeur de la variable de robustesse augmente la latence de départ de la liaison (le temps entre le moment où le dernier écouteur arrête d’écouter une source ou une adresse de diffusion groupée et celui où le trafic arrête de s’écouler).

9.14.2	Intervalle d’interrogation
Le niveau global de trafic périodique MLD est inversement proportionnel à l’intervalle d’interrogation. Un plus long intervalle d’interrogation résulte en un plus faible trafic MLD global. La valeur de l’intervalle d’interrogation DOIT être égale ou supérieure au délai de réponse maximum utilisé pour calculer le code de réponse maximum inséré dans les messages d’interrogation générale.

9.14.3	Délai de réponse maximum
La sporadicité du trafic MLD est inversement proportionnelle au délai de réponse maximum. Un plus long délai de réponse maximum va étaler les messages de rapport sur un plus long intervalle. Cependant, un plus long délai de réponse maximum des interrogations spécifiques d’adresse de diffusion groupée et d’adresse et de source de diffusion groupée étend la latence de départ (le temps qui s’écoule entre le moment où le dernier écouteur arrête d’écouter une source ou adresse de diffusion groupée et celui où le trafic cesse de s’écouler). Le taux attendu de messages de rapport peut être calculé en divisant le nombre attendu de rapporteurs par le délai de réponse maximum. Le délai de réponse maximum peut être calculé de façon dynamique par interrogation en utilisant le nombre attendu de rapporteurs pour cette interrogation comme suit :

Type d’interrogation	Nombre attendu de rapporteurs
Interrogation générale	Tous les nœuds sur la liaison
Interrogation spécifique d’adresse de diffusion groupée	Tous les nœuds sur la liaison qui ont exprimé de l’intérêt pour l’adresse de diffusion groupée
Interro. spécifique d’adresse et de source de diffusion groupée	Tous les nœuds sur la liaison qui ont exprimé de l’intérêt pour la source et l’adresse de diffusion groupée

Un routeur n’est pas obligé de calculer ces populations ou d’ajuster de façon dynamique le délai de réponse maximum ; ce sont de simples indications.

10.	Considérations pour la sécurité

On va examiner les ramifications d’un message falsifié de chaque type. Noter qu’avant de traiter un message MLD, les nœuds vérifient si l’adresse de source du message est une adresse valide de liaison locale (ou l’adresse non spécifiée), si la limite de bonds est réglée à 1, et si l’option Alerte de routeur est présente dans l’en-tête Options bond par bond du paquet IPv6. Si une de ces vérifications échoue, le paquet est éliminé. Cela protège les nœuds MLDv2 contre une action sur des messages MLD falsifiés générés hors liaison. Donc, dans ce qui suit, on ne va discuter que des effets d’une falsification sur la liaison.

10.1	Message Interrogation
Un message Interrogation falsifié provenant d’une machine avec une adresse IPv6 inférieure à celle de l’interrogateur actuel va faire que les tâches d’interrogateur seront allouées au falsificateur. Si celui-ci n’envoie alors plus de messages Interrogation, le temporisateur Autre interrogateur présent des autres routeurs va arriver à expiration et l’un d’eux va reprendre le rôle d’interrogateur. Pendant ce temps, si le falsificateur ignore les messages Écouteur de diffusion groupée terminé, le trafic peut s’écouler sur des adresses de diffusion groupée qui n’ont pas d’écoutant jusqu’à [Intervalle d’écouteur d’adresse de diffusion groupée].

Un message Interrogation de version 1 falsifié mettra les écouteurs MLDv2 de cette liaison en mode de compatibilité d’hôte MLDv1. Ce scénario peut être évité en fournissant aux hôtes MLDv2 une option de configuration qui permet d’ignorer complètement les messages de version 1.

Une attaque de DoS contre un nœud pourrait être montée grâce à des interrogations spécifiques de source et d’adresse de diffusion groupée falsifiées. L’attaquant peut découvrir l’état d’écoute d’un nœud spécifique avec une interrogation générale. Après cela, il pourrait envoyer un grand nombre d’interrogations spécifiques de source et d’adresse de diffusion groupée, chacune avec une grosse liste des sources et/ou un long délai de réponse maximum. Le nœud devra mémoriser et conserver les sources spécifiées dans toutes ces interrogations pendant tout le temps qu’il faut pour envoyer les réponses retardées. Cela consommera à la fois de la mémoire et des cycles de CPU afin d’augmenter les sources enregistrées des sources incluses dans les interrogations successives.

Pour se protéger contre une telle attaque de DoS, une mise en œuvre de nœud peut restreindre le nombre d’interrogations spécifiques de source et d’adresse de diffusion groupée par adresse de diffusion groupée dans cet intervalle, et/ou n’enregistrer qu’un nombre limité de sources.

10.2	Messages de rapport de l’état en cours
Un faux message de rapport peut amener un routeur de diffusion groupées à penser qu’il y a des écouteurs d’une adresse de diffusion groupée sur une liaison alors qu’il n’y en a pas. Néanmoins, comme l’écoute d’une adresse de diffusion groupée sur un hôte est généralement une opération non privilégiée, un utilisateur local peut obtenir facilement le même résultat sans falsifier aucun message.

Un message Rapport de version 1 falsifié peut mettre un routeur en mode de compatibilité d’adresse de diffusion groupée MLDv1 pour une adresse de diffusion groupée particulière, ce qui signifie que le routeur va ignorer les messages d’état spécifiques de source MLDv2. Cela peut faire écouler du trafic provenant de sources non désirées pendant jusqu’à [Intervalle d’écouteur d’adresse de diffusion groupée]. Cela peut se résoudre en fournissant aux routeurs un changement de configuration pour ignorer complètement les messages de version 1. Cela casse la compatibilité automatique avec les hôtes de version 1, de sorte que cela ne devrait être utilisé que dans les situations où le filtrage des sources est critique.

10.3	Messages de rapport de changement d’état
Un message de rapport de changement d’état falsifié va être cause que l’interrogateur envoie des interrogations spécifiques d’adresse de diffusion groupée ou de source et d’adresse de diffusion groupée pour l’adresse de diffusion groupée en question. Cela cause un traitement supplémentaire sur chaque routeur et chez chaque écouteur de l’adresse de diffusion groupée, mais ne peut pas causer de pertes du trafic désiré.

11.	Considérations relatives à l’IANA

L’IANA a alloué l’adresse de diffusion groupée de liaison locale IPv6 FF02:0:0:0:0:0:0:16, appelée "Tous routeurs à capacité MLDv2", comme décrit au paragraphe 5.2.14. Les rapports d’écoute de diffusion groupée version 2 seront envoyés à cette adresse.

De plus, l’IANA a alloué la valeur de type de message ICMPv6 de 143 aux messages de rapport d’écouteur de diffusion groupée version 2, comme spécifié à la Section 4.

12.	Références
12.1	Références normatives

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997.

[RFC2460]	S. Deering et R. Hinden, "Spécification du protocole Internet, version 6 (IPv6) ", décembre  1998. (MàJ par RFC5095, RFC6564  ; D.S)

[RFC2463]	A. Conta, S. Deering, "Protocole de message de contrôle Internet (ICMPv6) pour le protocole Internet version  6 (IPv6)", décembre 1998. (Obsolète, voir RFC4443) (D.S.)

[RFC2464]	M. Crawford, "Transmission de paquets IPv6 sur réseaux Ethernet", décembre 1998. (P.S.)

[RFC2710]	S. Deering, W. Fenner et B. Haberman, "Découverte d'écouteur de diffusion groupée (MLD) pour IPv6", octobre 1999.

[RFC2711]	C. Partridge, A. Jackson, "Option d'alerte de routeur IPv6", octobre 1999. (P.S.)

[RFC3513]	R. Hinden et S. Deering, "Architecture d'adressage du protocole Internet version 6 (IPv6)", avril 2003. (Obsolète, voir RFC4291)

12.2	Références pour information

[RFC2461]	T. Narten, E. Nordmark, W. Simpson, "Découverte de voisins pour IP version 6 (IPv6)", décembre 1998. (Obsolète, voir RFC4861) (D.S.)

[RFC2462]	S. Thomson, T. Narten, "Autoconfiguration d'adresse IPv6 sans état", décembre 1998. (Obsolète, voir RFC4862) (D.S.)

[RFC3376]	B. Cain et autres, "Protocole Internet de gestion de groupe, IGMP version 3", octobre 2002.

[RFC3569]	S. Bhattacharyya et autres, "Généralités sur la diffusion groupée de source spécifique (SSM)", juillet 2003

[RFC3678]	D. Thaler, B. Fenner et B. Quinn, "Extensions d'interface de prise pour filtres de source en diffusion groupée", janvier  2004. (Information)

13.	Remerciements

Nous tenons à remercier Hitoshi Asaeda, Randy Bush, Francis Dupont, Ted Hardie, Russ Housley, Konstantin Kabassanov, Erik Nordmark, Shinsuke Suzuki, Margaret Wasserman, Bert Wijnen, et Remi Zara de leurs précieux commentaires et suggestions sur le présent document.

Appendice A	Motifs des concepts
A.1	Besoin des messages de changement d’état

MLDv2 spécifie deux types de rapport d’écouteur de diffusion groupée : État en cours et Changement d’état. Cette section décrit les raisons du besoin de ces deux types de rapports.

Les routeurs ont besoin de distinguer les rapports d’écouteur de diffusion groupée qui ont été envoyés en réponse aux interrogations de ceux qui ont été envoyés par suite d’un changement de l’état par interface. Les rapports d’écouteur de diffusion groupée qui ont été envoyés en réponse aux interrogations d’écouteur d’adresse de diffusion groupée sont utilisés principalement pour rafraîchir l’état existant chez le routeur ; ils ne causent normalement pas de transition d’état chez le routeur. Les rapports d’écouteur de diffusion groupée qui sont envoyés en réponse à des changements de l’état par interface exigent que le routeur prenne des mesures en réponse au rapport reçu (voir au paragraphe 7.4.).

L’incapacité à distinguer les deux types de rapports forcerait un routeur à traiter tous les rapports d’écouteur de diffusion groupée comme des changements potentiels de l’état et pourrait résulter en une augmentation du traitement chez les routeurs ainsi qu’en une augmentation du trafic MLD sur la liaison.

A.2	Suppression d’hôte

Dans MLDv1, un hôte ne va pas envoyer un rapport d’écouteur de diffusion groupée en instance si un rapport similaire a été envoyé par un autre écouteur sur la liaison. Dans MLDv2, la suppression des rapports d’écouteur de diffusion groupée a été retirée. Les points suivants expliquent cette décision.

1.	Les routeurs peuvent vouloir retracer l’état d’écoute de diffusion groupée par hôte sur une interface. Cela va permettre aux routeurs de mettre en œuvre les départs rapides (par exemple, pour les schémas de contrôle d’encombrement de diffusion groupée en couche) ainsi que suivre l’état d’écoute pour d’éventuels besoins de sécurité ou de comptabilité. La présente spécification n’exige pas que les routeurs mettent en œuvre le suivi par hôte. Néanmoins, l’absence de suppression d’hôte dans MLDv2 rend possible de mettre en œuvre un comportement propriétaire ou d’une norme future chez les routeurs de diffusion groupée qui prendraient en charge le suivi par hôte, tout en étant pleinement interopérables avec les écouteurs et routeurs MLDv2 qui mettent en œuvre le comportement exact décrit dans la présente spécification.

2.	La suppression du rapport d’écouteur de diffusion groupée ne fonctionne pas bien sur les LAN pontés. De nombreux ponts et commutateurs de couche 2/couche 3 qui mettent en œuvre la surveillance MLD ne transmettent pas les messages MLD à travers les segments de LAN afin d’empêcher la suppression de rapport d’écouteur de diffusion groupée.

3.	En éliminant la suppression de rapport d’écouteur de diffusion groupée, les hôtes ont moins de messages à traiter ; cela conduit à une mise en œuvre plus simple de l’automate à états.

4.	Dans MLDv2, un seul rapport d’écouteur de diffusion groupée regroupe maintenant plusieurs enregistrements d’adresse de diffusion groupée pour diminuer le nombre de paquets envoyés. Par comparaison, la précédente version de MLD exigeait que chaque adresse de diffusion groupée soit rapportée dans un message distinct.

A.3	Passages des modes de filtre de routeur de EXCLUDE à INCLUDE

Si sur une liaison il y a des nœuds en mode EXCLURE et INCLURE pour une seule adresse de diffusion groupée, le routeur doit être en mode EXCLURE aussi (voir le paragraphe 7.2.1). En mode EXCLURE, un routeur transmet le trafic de toutes les sources sauf celles de la liste Exclure. Si tous les nœuds en mode EXCLURE cessent d’exister ou d’écouter, il sera souhaitable que le routeur revienne au mode INCLURE en douceur, sans interrompre le flux du trafic pour les écouteurs existants.

Une de façons de faire cela est que les routeurs gardent trace de toutes les sources que les nœuds qui sont en mode INCLURE écoutent, même si le routeur lui-même est en mode EXCLURE. Si le temporisateur de filtre pour une adresse de diffusion groupée arrive à expiration, cela implique qu’il n’y a pas de nœud en mode EXCLURE sur la liaison (autrement un rapport d’écoute de diffusion groupée provenant de ce nœud aurait rafraîchi le temporisateur de filtre). Le routeur peut alors passer en douceur au mode INCLURE ; les sources de la liste Demandée sont déplacées dans la liste Inclure, tandis que les sources de la liste Exclure sont supprimées.

Appendice B	Résumé des changements par rapport à MLDv1

Voici un résumé des changements par rapport à MLDv1, spécifié dans la RFC2710.

o	MLDv2 introduit le filtrage de source.

o	L’interface de service IP des nœuds MLDv2 est modifiée en conséquence. Cela permet la spécification d’un mode de filtre et d’une liste des sources.

o	Un nœud MLDv2 garde les états d’écoute de diffusion groupée par prise et par interface qui incluent un mode de filtre et une liste des sources pour chaque adresse de diffusion groupée. Cela permet le filtrage de paquet sur la base d’un état de réception de diffusion groupée de la prise.

o	L’état MLDv2 gardé chez les routeurs inclut un mode de filtre et une liste des sources et des temporisateurs de source pour chaque adresse de diffusion groupée qui a des écouteurs sur la liaison. Les routeurs MLDv1 ne gardent que la liste des adresses de diffusion groupée.

o	Les interrogations comportent des champs additionnels (paragraphe 5.1).

o	Le fanion S (Suppression du traitement côté routeur) est inclus dans les interrogations pour résoudre des problèmes de robustesse.

o	La variable de robustesse et le code d’intervalle d’interrogation de l’interrogateur sont inclus dans les interrogations afin de synchroniser tous les routeurs MLDv2 connectés à la même liaison.

o	Un nouveau type d’interrogation (interrogation spécifique de source et d’adresse de diffusion groupée) est introduit.

o	Le délai de réponse maximum n’est plus inclus directement dans l’interrogation. Un algorithme exponentiel est utilisé à sa place pour calculer sa valeur, sur la base du code de réponse maximum inclus dans l’interrogation. La valeur maximum est augmentée de 65  535 millisecondes à environ 140 minutes.

o	Les rapports incluent des enregistrements d’adresse de diffusion groupée. Les informations sur l’état d’écoute pour plusieurs adresses de diffusion groupée différentes peuvent être incluses dans le même message de rapport.

o	Les rapports sont envoyés à l’adresse "Tous routeurs de diffusion groupée à capacité MLDv2", au lieu de l’adresse de diffusion groupée qu’écoute l’hôte, comme dans MLDv1. Cela facilite le fonctionnement des commutateurs d’écoute de couche 2.

o	Il n’y a pas de "suppression d’hôte", comme dans MLDv1. Tous les nœuds envoient des messages de rapport.

o	Les rapports non sollicités, qui annoncent des changements de l’état d’écoute du receveur, sont envoyés [Variable de robustesse] fois. La RFC2710 est moins explicite.

o	Il n’y a pas de message Terminé.

o	L’Interopérabilité avec les systèmes MLDv1 est réalisée par les opérations d’état MLDv2.

o	Pour assurer l’interopérabilité, les hôtes entretiennent une variable Mode de compatibilité d’hôte et un temporisateur Présence d’un interrogateur d’ancienne version par interface. Les routeurs tiennent une variable Mode de compatibilité d’adresse de diffusion groupée et un temporisateur Présence d’un hôte d’ancienne version par adresse de diffusion groupée.

Informations de contact des éditeurs

Rolland Vida	Luis Henrique Maciel Kosmalski Costa	
LIP6, Universite Pierre et Marie Curie	LIP6, Universite Pierre et Marie Curie	
8, rue du Capitaine Scott	8, rue du Capitaine Scott	
75015 Paris, France	75015 Paris, France	
téléphone : +33-1.44.27.30.58	téléphone : +33-1.44.27.30.58	
mél  : Rolland.Vida@lip6.fr 	mél  : Luis.Costa@lip6.fr 	

Le présent document a été rédigé par :

Rolland Vida, LIP6	Serge Fdida, LIP6	Steve Deering, Cisco Systems	
mél  : Rolland.Vida@lip6.fr 	mél  : Serge.Fdida@lip6.fr 	mél  : deering@cisco.com 	

Luis Henrique Maciel Kosmalski Costa, LIP6
mél  : Luis.Costa@lip6.fr 

Bill Fenner, AT&T Labs	Isidor Kouvelas, Cisco Systems	Brian Haberman, Caspian Networks	
mél  : fenner@research.att.com 	mél  : kouvelas@cisco.com 	mél  : brian@innovationslab.net 	

Le présent document est la transposition de la [RFC3376] pour la sémantique IPv6. Il a été élaboré sur la base de la transposition de la [RFC2236] en [RFC2710].

Déclaration complète de droits de reproduction

Copyright (C) The Internet Society (2004).
Le présent document est soumis aux droits, licences et restrictions contenus dans le BCP 78, et à www.rfc-editor.org, et sauf pour ce qui est mentionné ci-après, les auteurs conservent tous leurs droits.

Le présent document et les informations contenues sont fournis sur une base "EN L’ÉTAT" et le contributeur, l’organisation qu’il ou elle représente ou qui le/la finance (s’il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l’utilisation des informations ci encloses ne violent aucun droit ou aucune garantie implicite de commercialisation ou d’aptitude à un objet particulier.

Propriété intellectuelle

L’IETF ne prend pas position sur la validité et la portée de tout droit de propriété intellectuelle ou autres droits qui pourraient être revendiqués au titre de la mise en œuvre ou l’utilisation de la technologie décrite dans le présent document ou sur la mesure dans laquelle toute licence sur de tels droits pourrait être ou n’être pas disponible ; pas plus qu’elle ne prétend avoir accompli aucun effort pour identifier de tels droits. Les informations sur les procédures de l’ISOC au sujet des droits dans les documents de l’ISOC figurent dans les BCP  78 et BCP 79.

Des copies des dépôts d’IPR faits au secrétariat de l’IETF et toutes assurances de disponibilité de licences, ou le résultat de tentatives faites pour obtenir une licence ou permission générale d’utilisation de tels droits de propriété par ceux qui mettent en œuvre ou utilisent la présente spécification peuvent être obtenues sur le répertoire en ligne des IPR de l’IETF à http://www.ietf.org/ipr.

L’IETF invite toute partie intéressée à porter son attention sur tous copyrights, licences ou applications de licence, ou autres droits de propriété qui pourraient couvrir les technologies qui peuvent être nécessaires pour mettre en œuvre la présente norme. Prière d’adresser les informations à l’IETF à ietf- ipr@ietf.org.

Le financement de la fonction d’édition des RFC est actuellement fourni par la Internet Society.