Groupe de travail Réseau	S. Deering, Cisco Systems	
Request for Comments : 2710	W. Fenner, AT&T Research	
Catégorie : En cours de normalisation	B. Haberman, IBM	
Traduction Claude Brière de L'Isle	octobre 1999	

Découverte d'écouteur de diffusion groupée (MLD) pour IPv6

Statut du présent mémoire
Le présent document spécifie un protocole de l’Internet en cours de normalisation pour la communauté de l’Internet, et appelle à des discussions et suggestions pour son amélioration. Prière de se référer à l’édition en cours des "Normes officielles des protocoles de l’Internet" (STD 1) pour connaître l’état de la normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

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

RésuméLe présent  document spécifie le protocole utilisé par un routeur 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 lui sont directement rattachées, et découvrir spécifiquement quelles adresses de diffusion groupée sont intéressantes pour les nœuds du voisinage. Ce protocole est appelé Découverte d'écouteurs de diffusion groupée (MLD, Multicast Listener Discovery). MLD est dérivé de la version 2 du protocole de gestion de groupe sur Internet (IGMPv2, Internet Group Management Protocol) de IPv4. Une importante différence est à noter : MLD utilise les types de message ICMPv6 (Protocole IP 58) plutôt que les types de message IGMP (Protocole IP 2).

1.	Définitions
Dans le présent document, les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" sont à interpréter comme décrit dans la [RFC2119].

2.	Introduction
L'objet de la découverte d'écouteur de diffusion groupée (MLD, Multicast Listener Discovery) est de permettre à chaque routeur IPv6 de 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 lui sont directement rattachées, et de découvrir spécifiquement quelles adresses de diffusion groupée sont intéressantes pour ces nœuds du voisinage. Ces informations sont alors fournies à tout protocole d'acheminement en diffusion groupée qui est utilisé par le routeur, afin d'assurer que les paquets de diffusion groupée sont livrés sur toutes les liaisons où il y a des receveurs intéressés.

MLD est un protocole asymétrique, qui spécifie des comportements différents pour les écouteurs de diffusion groupée et pour les routeurs. Pour les adresses de diffusion groupées sur lesquelles le routeur écoute lui-même, le routeur effectue les deux parties du protocole, y compris de répondre à ses propres messages.

Si un routeur a plus d'une interface sur la même liaison, il doit effectuer la partie routeur de MLD sur une seule de ces interfaces. D'un autre côté, les écouteurs doivent effectuer la partie écouteur de MLD sur toutes les interfaces d'où un protocole d'application ou de couche supérieure a demandé la réception de paquets en diffusion groupée.

3.	Format de message
MLD est un sous-protocole de ICMPv6, c'est-à-dire que les types de message MLD sont un sous-ensemble de l'ensemble des messages ICMPv6, et que les messages MLD sont identifiés dans les paquets IPv6 par une valeur Prochain en-tête précédant de 58. Tous les messages MLD décrits dans ce document sont envoyés avec une adresse de source IPv6 de liaison locale, une Limite de bonds IPv6 de 1, et une option Alerte de routeur IPv6 [RFC2711] dans un en-tête Bond par bond. (L'option Alerte de routeur est nécessaire pour obliger les routeurs à examiner les messages MLD envoyés à des adresses de diffusion groupée auxquelles les routeurs eux-mêmes ne sont pas intéressés.)

Les messages MLD 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      |     Code      |    Somme de contrôle          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Délai de réponse maximum     |          Réservé              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +            Adresses de diffusion groupée                      +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.1	Type
Il y a trois types de messages MLD :

-	Interrogation d'écouteur de diffusion groupée (Type = 130 en décimal )

Il y a deux sous-types de messages d'interrogation d'écouteur de diffusion groupée :
-	Interrogation générale, utilisée pour savoir quelles adresses de diffusion groupée ont des écouteurs sur une liaison rattachée.
-	Interrogation spécifique d'adresse de diffusion groupée, utilisée pour savoir si une adresse de diffusion groupée particulière a des écouteurs sur une liaison rattachée.
Ces deux sous-types sont différenciés par le contenu du champ Adresse de diffusion groupée, comme décrit au paragraphe 3.6.
-	Rapport d'écouteur de diffusion groupée (Type = 131 en décimal)
-	Écouteur de diffusion groupée terminé (Type = 132 en décimal)

Dans le reste de ce document, les types de messages ci-dessus sont simplement appelés "Interrogation", "Rapport", et "Terminé".

3.2	Code
Initialisé à zéro par l'envoyeur ; ignoré par les receveurs.

3.3	Somme de contrôle
C'est la somme de contrôle ICMP standard, couvrant le message MLD entier plus un "pseudo en-tête" de champs d'en-tête IPv6 [RFC2463], [RFC2460].

3.4	Délai de réponse maximum
Le champ Délai de réponse maximum n'a de signification que dans les messages Interrogation, et il spécifie le délai maximum admis avant d'envoyer un Rapport en réponse, en unités de millisecondes. Dans tous les autres messages, il est mis à zéro par l'envoyeur et ignoré par les receveurs.

La variation de cette valeur permet aux routeurs de régler la "latence de départ" (le temps entre le moment où le dernier nœud sur la liaison cesse d'écouter une adresse de diffusion groupée particulière et le moment où le protocole d'acheminement reçoit notification qu'il n'y a plus aucun écouteur sur cette adresse) comme exposé au paragraphe 7.8. Elle permet aussi de régler la taille des salves du trafic MLD sur une liaison, comme exposé au paragraphe 7.3.

3.5	Réservé
Initialisé à zéro par l'envoyeur ; ignoré par les receveurs.

3.6	Adresse de diffusion groupée
Dans un message Interrogation, le champ Adresse de diffusion groupée est réglé à zéro lors de l'envoi d'une Interrogation générale, et réglé à une adresse de diffusion groupée IPv6 spécifique lors de l'envoi d'une Interrogation spécifique d'adresse de diffusion groupée.

Dans un message Rapport ou Terminé, le champ Adresse de diffusion groupée détient une adresse de diffusion groupée IPv6 spécifique sur laquelle l'envoyeur du message respectivement écoute ou cesse d'écouter.

3.7	Autres champs
La longueur d'un message MLD reçu est calculée en prenant la valeur de la longueur de charge utile IPv6 et en soustrayant la longueur de tous les en-têtes d'extension IPv6 présents entre l'en-tête IPv6 et le message MLD. Si cette longueur est supérieure à 24 octets, cela indique qu'il y a d'autres champs présents au delà des champs décrits ci-dessus, appartenant peut-être à une future version rétro-compatible de MLD. Une mise en œuvre de la version de MLD spécifiée dans le présent document NE DOIT PAS envoyer un message MLD plus long que 24 octets et DOIT ignorer tout ce qui vient après les 24 premiers octets d'un message MLD reçu. Dans tous les cas, la somme de contrôle MLD DOIT être calculée sur le message MLD entier, et non seulement sur les 24 premiers octets.

4.	Description du protocole
Noter que les valeurs par défaut des temporisateurs sont décrites plus loin dans ce document. Les noms des temporisateurs et des compteurs sont donnés entre crochets.

Les routeurs utilisent MLD pour savoir quelles adresses de diffusion groupée ont des écouteurs sur chacune de leurs liaisons rattachées. Chaque routeur conserve une liste, pour chaque liaison rattachée, des adresses de diffusion groupée qui ont des écouteurs sur cette liaison, et un temporisateur associé à chacune de ces adresses. Noter que le routeur a seulement besoin de savoir que pour une adresse de diffusion groupée donnée des écouteurs sont présents sur la liaison ; il N'A PAS besoin des connaître leur identité (par exemple, l'adresse d'envoi individuel) de ces écouteurs ou même combien sont présents.

Pour chaque liaison rattachée, un routeur choisit une de ses adresses de liaisonn locale en envoi individuel sur cette liaison pour être utilisée comme adresse de source IPv6 dans tous les paquets MLD qu'il transmet sur cette liaison.

Pour chaque interface sur laquelle le routeur utilise le protocole MLD, il doit configurer cette interface pour é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é à un Ethernet doit régler son filtre de réception d'adresses Ethernet à 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 êtte configuré pour accepter TOUTES les adresses de diffusion groupée Ethernet, afin de satisfaire aux exigencesc de MLD.

Par rapport à chacune de ses liaisons rattachées, un routeur peut assumer un des deux rôles suivants : Interrogateur ou Non interrogateur. Il y a normalement un seul interrogateur par liaison. Tous les routeurs commencent comme interrogateur sur chacune de leurs liaisons rattachées. Si un routeur entend un message Interrogation dont l'adresse de source IPv6 est numériquement inférieure à l'adresse qu'il a lui-même choisi pour cette liaison, il DOIT devenir un Non interrogateur sur cette liaison. Si un [Intervalle d'autre interrogateur présent] passe sans recevoir, de la part d'une liaison rattachée particulière, aucune Interrogation d'un routeur avec une adresse inférieure à la sienne propre, un routeur reprend le rôle d'interrogateur sur cette liaison.

Un interrogateur pour une liaison envoie périodiquement à un [Intervalle d'interrogation] une Interrogation générale sur cette liaison, pour solliciter des rapports de toutes les adresses de diffusion groupée intéressantes sur cette liaison. Au démarrage, un routeur DEVRAIT envoyer un [Compte d'interrogation de démarrage] d'interrogations générales espacées d'un [Intervalle d'interrogation de démarrage] sur toutes les liaisons rattachées afin de découvrir de façon rapide et fiable la présence d'écouteurs de diffusion groupée sur ces liaisons.

Les interrogations générales sont envoyées à l'adresse de diffusion groupée (FF02::1) pour tous les nœuds de la portée de la liaison, avec un champ Adresse de diffusion groupée de 0, et un délai de réponse maximum de [Intervalle de réponse à interrogation].

Lorsque un nœud reçoit une interrogation générale, il établit un temporisateur pour chaque adresse de diffusion groupée pour laquelle il écoute sur l'interface de laquelle il a reçu l'interrogation, à l'EXCLUSION de l'adresse de tous les nœuds de la portée de la liaison et de toutes adresses de diffusion groupée de portée 0 (réservée) ou 1 (nœud local). Chaque temporisateur est réglé à une valeur aléatoire différente, en utilisant la plus forte granularité d'horloge disponible sur le nœud, choisie dans la gamme [0, délai de réponse maximum] avec le délai de réponse maximum spécifié dans le paquet d'interrogation. Si un temporisateur fonctionne déjà pour une adresse, il n'est remis à la nouvelle valeur aléatoire que si le délai de réponse maximum demandé est inférieur à la valeur restante du temporisateur en cours. Si le paquet d'interrogation spécifie un délai de réponse maximum de zéro, chaque temporisateur est effectivement réglé à zéro, et l'action spécifiée ci-dessous pour l'expiration d'un temporisateur est effectuée immédiatement.

Lorsque un nœud reçoit une interrogation spécifique d'adresse de diffusion groupée, si il écoute l'adresse de diffusion groupée interrogée sur l'interface d'où l'interrogation a été reçue, il établit un temporisateur de délai pour cette adresse à une valeur aléatoire choisie dans la gamme [0, délai de réponse maximum], comme ci-dessus. Si un temporisateur fonctionne déjà pour cette adresse, il n'est remis à la valeur aléatoire que si le délai de réponse maximum demandé est inférieur à la valeur restante du temporisateur en cours. Si le paquet Interrogation spécifie un délai de réponse maximum de zéro, le temporisateur est effectivement réglé à zéro, et l'action spécifiée ci-dessous pour l'expiration de temporisation est effectuée immédiatement.

Si le temorisateur d'un nœud pour une adresse de diffusion groupée particulière on une interface particulière arrive à expiration, le nœud transmet un Rapport à cette adresse via cette interface ; l'adresse objet du rapport est portée à la fois dans le champ Adresse de destination IPv6 et dans le champ Adresse de diffusion groupée MLD du paquet Rapport. La limite de bonds IPv6 de 1 (ainsi que la présence d'une adresse de source IPv6 de liaison locale) empêche le paquet de voyager au delà de la liaison à laquelle l'interface qui fait rapport est rattachée.

Si un nœud reçoit un rapport d'un autre nœud provenant d'une interface pour une adresse de diffusion groupée alors qu'il a un temporisateur en cours pour cette même adresse sur cette interface, il arrête son temporisateur et n'envoie pas de rapport pour cette adresse, supprimant ainsi les rapports dupliqués sur la liaison.

Lorsque un routeur reçoit un rapport d'une liaison, si l'adresse rapportée n'est pas déjà présente dans sa liste des adresses de diffusion groupée qui ont des écouteurs sur cette liaison, l'adresse rapportée est ajoutée à la liste, son temporisateur est réglé à [Intervalle d'écouteur de diffusion groupée], et son apparition est communiquée au composant d'acheminement de diffusion groupée du routeur. Si un Rapport est reçu pour une adresse de diffusion groupée qui est déjà présente dans la liste du routeur, le temporisateur pour cette adresse est remis à [Intervalle d'écouteur de diffusion groupée]. Si le temporisateur d'une adresse arrive à expiration, on suppose qu'il n'y a plus aucun écouteur pour cette adresse présent sur la liaison, de sorte qu'elle est supprimée de la liste et sa disparition est communiquée au composant d'acheminement de diffusion groupée.

Lorsque un nœud commence à écouter une adresse de diffusion groupée sur une interface, il devrait immédiatement transmettre un rapport non sollicité pour cette adresse sur cette interface, au cas où il serait le premier écouteur sur la liaison. Pour couvrir la possibilité que le rapport initial soit perdu ou endommagé, il est recommandé qu'il soit répété une ou deux fois après un bref délai [Intervalle de rapport non sollicité]. (Une façon simple de réaliser cela est d'envoyer le rapport initial puis d'agir comme si une interrogation spécifique d'adresse de diffusion groupée avait été reçue pour cette adresse, et de régler un temporisateur en conséquence).

Lorsque un nœud cesse d'écouter une adresse de diffusion groupée sur une interface, il DEVRAIT envoyer un seul message Done à l'adresse de diffusion groupée (FF02::2) tous routeurs de portée laison, portant dans son champ Adresse de diffusion groupée l'adresse qu'il cesse d'écouter. Si le plus récent message de rapport du nœud a été supprimé en entendant un autre message de rapport, il PEUT ne rien envoyer, car il est très vraisemblable qu'il y a un autre écouteur encore présent pour cette adresse sur la même liaison. Si cette optimisation est mise en œuvre, il DOIT être capable de la désactiver mais elle DEVRAIT être activée par défaut.

Lorsque un routeur dans l'état Interrogateur reçoit un message Done de la part d'une liaison, si l'adresse de diffusion groupée identifiée dans le message est présente dans sa liste des adresses qui ont des écouteurs sur cette liaison, l'interrogateur envoie un [Compte d'interrogations du dernier écouteur] d'interrogations spécifiques d'adresse de diffusion groupée, une tous les [Intervalle d'interrogation du dernier écouteur] à cette adresse de diffusion groupée. Ces interrogations spécifiques d'adresse de diffusion groupée ont leur délai de réponse maximum réglé à [Intervalle d'interrogation du dernier écouteur]. Si aucun Rapport n'est reçu pour l'adresse de la part de la liaison après le délai de réponse de la dernière interrogation, les routeurs sur la liaison supposent que l'adresse n'a plus d'écouteur ; l'adresse est donc supprimée de la liste et sa disparition est communiquée au composant d'acheminement de diffusion groupée. Ce processus est poursuivi jusqu'à sa résolution (c'est-à-dire jusqu'à ce qu'un Rapport soit reçu ou que la dernière interrogation spécifique d'adresse de diffusion groupée ait été envoyée sans recevoir de réponse) en dépit de toute transition d'Interrogateur à Non interrogateur sur cette liaison.

Les routeurs en état Non interrogateur DOIVENT ignorer les messages Done.

Lorsque un routeur en état Non interrogateur reçoit une interrogation spécifique d'adresse de diffusion groupée, si sa valeur de temporisateur pour l'adresse de diffusion groupée identifiée est supérieure à [Compte d'interrogations du dernier écouteur] fois le délai de réponse maximum spécifié dans le message, il règle le temporisateur de l'adresse à cette dernière valeur.

5.	Diagramme de transition d'état de nœud
Le comportement du nœud est plus formellement spécifié par le diagramme de transition d'état ci-dessous. Un nœud peut être dans l'un des trois états possibles par rapport à toute adresse de diffusion groupée IPv6 sur toute interface:

-	État "Non écouteur", lorsque le nœud n'écoute pas sur l'adresse sur l'interface (c'est-à-dire, aucun protocole ou application de couche supérieure n'a demandé la réception de paquets à cette adresse de diffusion groupée). C'est l'état initial pour toutes les adresses de diffusion groupée sur toutes les interfaces ; il n'exige aucune mémorisation dans le nœud.

-	État "Écoute retardée", lorsque le nœud est en écoute de l'adresse sur l'interface et a un temporisateur de délai de rapport qui fonctionne pour cette adresse.

-	État "Écouteur au repos", lorsque le nœud est en écoute de l'adresse sur l'interface et n'a pas de temporisateur de délai de rapport qui fonctionne pour cette adresse.

Cinq événements significatifs peuvent causer des transitions d'état MLD :

-	"Début d'écoute" survient lorsque le nœud commence à écouter l'adresse sur l'interface. Il ne peut survenir que dans l'état Non écouteur.

-	"Arrêt d'écoute" survient lorsque le nœud arrête d'écouter l'adresse sur l'interface. Il ne peut survenir que dans les états Écoute retardée et Écouteur au repos.
-	"Interrogation reçue" survient lorsque le nœud reçoit un message Interrogation générale valide, ou un message Interrogation spécifique d'adresse de diffusion groupée valide. Pour être valide, le message Interrogation DOIT venir d'une adresse de source IPv6 de liaison locale, faire au moins 24 octets de long, et avoir une somme de contrôle MLD correcte. Le champ Adresse de diffusion groupée dans le message MLD doit contenir soit zéro (une Interrogation générale) soit une adresse de diffusion groupée valide (une Interrogation spécifique d'adresse de diffusion groupée). Une Interrogation générale s'applique à toutes les adresses de diffusion groupée sur l'interface d'où l'interrogation est reçue. Une Interrogation spécifique d'adresse de diffusion groupée s'applique à une seule adresse de diffusion groupée sur l'interface d'où l'interrogation est reçue. Les interrogations sont ignorées pour les adresses dans l'état Non écouteur.

-	"Rapport reçu" survient lorsque le nœud reçoit un message Rapport MLD valide. Pour être valide, le message Rapport DOIT venir d'une adresse de source IPv6 de liaison locale, faire au moins 24 octets de long, et avoir une somme de contrôle MLD correcte. Un rapport ne s'applique qu'à l'adresse identifiée dans le champ Adresse de diffusion groupée du rapport, sur l'interface d'où le rapport est reçu. Il est ignoré dans les états Non écouteur ou Écouteur au repos.

-	"Temporisateur expiré" survient lorsque le temporisateur de délai de rapport pour l'adresse sur l'interface arrive à expiration. Il ne peut arriver que dans l'état Écoute retardée.

Tous les autres événements, tels que la réception de messages MLD invalides ou de types de message MLD autres que Interrogation ou Rapport, sont ignorés dans tous les états.

Il y a sept actions possibles qui peuvent être entreprises en réponse aux événements ci-dessus :

-	"Envoyer un rapport" pour l'adresse sur l'interface. Le message Rapport est envoyé à l'adresse visée par le rapport.

-	"Envoi effectué" pour l'adresse sur l'interface. Si le fanion qui dit que c'est le dernier nœud à faire rapport est supprimé, cette action PEUT être sautée. Le message Done est envoyé à l'adresse tous routeurs de la portée de la liaison (FF02::2).

-	"Établir le fanion" qui dit que c'était le dernier nœud à envoyer un rapport pour cette adresse.

-	"Oter le fanion" car ce n'est pas le dernier nœud à envoyer un rapport pour cette adresse.

-	"Lancer le temporisateur" pour l'adresse sur l'interface, en utilisant une valeur de délai choisie de façon uniforme dans l'intervalle [0, délai de réponse maximum], où Délai de réponse maximum est spécifié dans l'interrogation. Si il s'agit d'un rapport non sollicité, le temporisateur est réglé à une valeur de délai choisie de façon uniforme dans l'intervalle [0, [Intervalle de rapport non sollicité] ].

-	"Recaler le temporisateur" pour l'adresse sur l'interface à une nouvelle valeur, en utilisant une valeur de délai choisie de façon uniforme dans l'intervalle [0, délai de réponse maximum], comme décrit dans "Lancer le temporisateur".

-	"Arrêter le temporisateur" pour l'adresse sur l'interface.

Dans tous les diagrammes de transition d'état suivants, chaque arc de transition d'état est marqué avec l'événement qui cause la transition, et, entre parenthèses, toute action effectuée durant la transition. Noter que la transition est toujours déclanchée par l'événement, même si l'action est conditionnelle, la transition survient quand même.

Non écouteur

Écoute retardée

Écouteur au repos

Arrêt d'écoute (envoi de Done si le fanion est établi)

Arrêt d'écoute (arrêt de tempo., envoi de Done si le fanion est établi)

Début d'écoute (envoi de Rapport, établir fanion, lancer temporisateur)

Interrogation reçue (lancer tempo.)

Rapport reçu (arrêter tempo., supprimer fanion)

Tempo. expirée (envoyer le rapport, établir le fanion)

Interrogation reçue (recaler le tempo. si Délai de réponse max. > tempo. actuel)

L'adresse de tous les nœuds de la portée de la liaison (FF02::1) est traitée comme un cas particulier. Le nœud commence dans l'état Écouteur au repos pour cette adresse sur toute interface, ne subit aucune transition dans un autre état, et n'envoie jamais un Rapport ou Done pour cette adresse.

Les messages MLD ne sont jamais envoyés aux adresses de diffusion groupée dont la portée est 0 (réservé) ou 1 (nœud local).

Les messages MLD SONT envoyés aux adresses de diffusion groupée dont la portée est 2 (liaison locale) y compris les adresses de diffusion groupée de nœud sollicité [RFC2373], excepté pour l'adresse de tous les nœuds de la portée de la liaison (FF02::1).

6.	Diagramme de transition d'état de routeur
Le comportement des routeurs est plus formellement spécifié par le diagramme de transition d'état ci-dessous.

Un routeur peut être dans un des deux états possibles par rapport à toute liaison rattachée :

-	"Interrogateur", lorsque ce routeur est désigné pour transmettre les interrogations MLD sur cette liaison.

-	"Non interrogateur", lorsque c'est un autre routeur qui est désigné pour transmettre les interrogations MLD sur cette liaison.

Les trois événements suivants peuvent causer le changement d'état du routeur :

-	"temporisateur d'interrogation expiré" survient lorsque le temporisateur réglé pour la transmission d'interrogation arrive à expiration. Cet événement n'est significatif que dans l'état Interrogateur.

-	"interrogation reçue d'un routeur d'adresse IP inférieure" survient lorsque une interrogation MLD valide est reçue d'un routeur sur la même liaison avec une adresse de source IPv6 inférieure. Pour être valide, le message Interrogation DOIT venir une adresse de source IPv6 de liaison locale, être d'au moins 24 octets de long, et avoir une somme de contrôle MLD correcte.

-	"temporisateur d'autre interrogateur présent expiré" survient lorsque le temporisateur établi pour noter la présence d'un autre interrogateur avec une adresse IP inférieure sur la liaison arrive à expiration. Cet événement n'a de signification que dans l'état Non interrogateur.

Trois actions peuvent être entreprises en réponse aux événements ci-dessus :

-	"commencer le temporisateur d'interrogation générale" pour la liaison rattachée pour [Intervalle d'interrogation].

-	"commencer le temporisateur d'autre interrogateur présent" pour la liaison rattachée pour [Intervalle d'autre interrogateur présent].

-	"envoi d'une interrogation générale" sur la liaison rattachée. L'interrogation générale est envoyée à l'adresse de tous les nœuds de la portée de la liaison (FF02::1), et a un délai de réponse maximum de [Intervalle de réponse d'interrogation].

Interrogateur

Initial

Non interrogateur

(envoi d'interro. générale, lancer tempo d'interro géné.)

Expiration tempo d'interro général (envoi d'interro géné, lancer tempo d'interro géné.)

Expiration du tempo Autre interrogateur présent (envoyer interro générale, lancer tempo. d'interrogation générale)

Interrogation reçue d'un routeur avec adresse IP inférieure (lancer le temporisateur Autre interrogateur présent)

Interrogation reçue d'un routeur avec adresse IP inférieure (lancer le tempo Autre interrogateur présent)

                   
Un routeur commence dans l'état initial sur toutes les liaisons rattachées, et passe immédiatement à l'état Interrogateur.

De plus, pour garder trace des adresses de diffusion groupée qui ont des écouteurs, un routeur peut être dans un des trois états possibles par rapport à toute simple adresse de diffusion groupée IPv6 sur toute simple liaison rattachée :

-	État "Pas d'écouteur présent", quand il n'y a pas de nœud sur la liaison qui ait envoyé de rapport pour cette adresse de diffusion groupée. C'est l'état initial pour toutes les adresses de diffusion groupée sur le routeur ; il n'exige pas de mémorisation dans le routeur.

-	État "Écouteurs présents", quand il y a un nœud sur la liaison qui a envoyé un rapport pour cette adresse de diffusion groupée.

-	État "Vérification des écouteurs", quand le routeur a reçu un message Done qui n'a pas encore entendu un rapport pour l'adresse identifiée.

Il y a cinq événements significatifs qui peuvent causer la transition d'état d'un routeur :

-	"rapport reçu" survient lorsque le routeur reçoit un rapport pour l'adresse de la part de la liaison. Pour être valide, le message Rapport DOIT venir de l'adresse de source IPv6 de la liaison locale, avoir au moins 24 octets de long, et avoir une somme de contrôle MLD correcte.

-	"Done reçu" survient quand le routeur reçoit un message Done pour l'adresse de la part de la liaison. Pour être valide, le message Done DOIT venir d'une adresse de source IPv6 de liaison locale, faire au moins 24 octets de long, et avoir une somme de contrôle MLD correcte. Cet événement n'est significatif que dans l'état "Écouteurs présents" et lorsque le routeur est un interrogateur.

-	"Interrogation spécifique d'adresse de diffusion groupée reçue" survient lorsque le routeur reçoit une interrogation spécifique d'adresse de diffusion groupée pour l'adresse de la part de la liaison. Pour être valide, le message Interrogation DOIT venir d'une adresse de source IPv6 de liaison locale, faire au moins 24 octets de long, et avoir une somme de contrôle MLD correcte. Cet événement n'est significatif que dans l'état "Écouteurs présents" et lorsque le routeur est Non interrogateur.

- 	"temporisateur expiré" survient lorsque le temporisateur établi pour une adresse de diffusion groupée arrive à expiration. Cet événement n'est significatif que dans l'état "Écouteurs présents" ou "Vérification des écouteurs".

-	"expiration du temporisateur de transmission" survient lorsque le temporisateur réglé pour retransmettre une interrogation spécifique d'adresse de diffusion groupée arrive à expiration. Cet événement n'est significatif que dans l'état "Vérification des écouteurs".

Sept actions peuvent être entreprises en réponse aux événements ci-dessus :

-	"lancer le temporisateur" pour l'adresse sur la liaison – recale aussi le temporisateur à sa valeur initiale [Intervalle d'écouteur de diffusion groupée] si le temporisateur est actuellement en fonction.
-	"lancer le temporisateur*" pour l'adresse sur la liaison – cette autre action règle le temporisateur au minimum de sa valeur actuelle et de, soit [Intervalle d'interrogation du dernier écouteur] * [Compte d'interrogation du dernier écouteur] si ce routeur est un interrogateur, soit du délai de réponse maximum dans le message Interrogation * [Compte d'interrogation du dernier écouteur] si ce routeur est un non interrogateur.

-	"lancer le temporisateur de retransmission" pour l'adresse sur la liaison à [Intervalle d'interrogation du dernier écouteur].

-	"supprimer le temporisateur de retransmission" pour l'adresse sur la liaison.

-	"envoyer une interrogation spécifique d'adresse de diffusion groupée" pour l'adresse sur la liaison. L'interrogation spécifique d'adresse de diffusion groupée est envoyée à l'adresse qui est interrogée, et a un délai de réponse maximum de [Intervalle d'interrogation du dernier écouteur].

-	"notifier l'acheminement +" notifie en interne au protocole d'acheminement de diffusion groupée qu'il y a des écouteurs à cette adresse sur la liaison.

-	"notifier l'acheminement -" notifie en interne au protocole d'acheminement en diffusion groupée qu'il n'y a plus aucun écouteur à cette adresse sur cette liaison.

Les diagrammes d'état suivants s'appliquent par groupe et par liaison. Il y a deux diagrammes, un pour les routeurs en état Interrogateur et un pour les routeurs en état Non interrogateur. La transition entre état interrogateur et non interrogateur sur une liaison est traitée de façon spéciale. Tous les groupes sur cette liaison dans les états "Pas d'écouteur présent" ou "Écouteurs présents" changent d'état dans les diagrammes de transition d'état lorsque survient la transition de Interrogateur/Non interrogateur. Cependant, tous les groupes dans l'état "Vérification des écouteurs" continuent dans le même état du diagramme de transition jusqu'à ce que l'état "Vérification des écouteurs" soit exité. Par exemple,. un routeur qui commence comme interrogateur reçoit un message Done pour un groupe puis reçoit une interrogation de la part d'un routeur avec une adresse inférieure (causant une transition à l'état Non interrogateur) continue d'envoyer des interrogations spécifiques d'adresse de diffusion groupée pour le groupe en question jusqu'à ce qu'il reçoive un rapport ou que son temporisateur arrive à expiration, moment auquel il commence à effectuer les actions d'un Non interrogateur pour ce groupe.

Le diagramme de transition d'état pour un routeur en état d'interrogateur est le suivant :

Pas d'écouteur présent

Écouteurs 
présents

Vérification des écouteurs

Temporisateur expiré (notifier acheminement -, supprimer tempo de retransm.)

Temporisateur expiré (notifier acheminement -)

Rapport reçu (notifier acheminement +, lancer le temporisateur)

Rapport reçu (lancer tempo., tempo; retrans.)

Done reçu (lancer tempo.*, lancer tempo. retransm., envoyer interro spécif d'adr. de diff. groupée)

Rapport reçu (lancer le temporisateur)

Tempo. de retransm. expiré (envoi d'interro spécifique d'adr. de  diff. groupée, lancer tempo. retransm.)

Le diagramme de transition d'état pour un routeur dans l'état Non interrogateur est similaire, mais les non interrogateurs n'envoient aucun message et sont seulement actionnés par la réception de message.

Pas d'écouteur présent

Écouteurs 
présents

Vérification des écouteurs

Temporisateur expiré (notifier acheminement -)

Temporisateur expiré (notifier acheminement -)

Rapport reçu (notifier acheminement +, lancer le temporisateur)

Rapport reçu (lancer le temporisateur)

Interrogation spécifique d'adress de diff. groupée reçue (lancer le temporisateur)

Rapport reçu (lancer le temporisateur)

7.	Liste des temporisateurs et des valeurs par défaut
La plupart de ces temporisateurs sont configurables. Si des réglages autres que par défaut sont utilisés, ils DOIVENT être cohérents parmi tous les routeurs sur une même liaison. Noter que les parenthèses sont utilisées pour grouper des expressions afin d'en rendre l'algèbre claire.

7.1	Variable de robustesse
La variable Robustesse permet le réglage de la perte de paquet espérée sur une liaison. Si une liaison est prévue avec des pertes, la variable Robustesse peut être augmentée. MLD est robuste à (Variable Robustesse - 1) pertes de paquet. La variable Robustesse NE DOIT PAS être à zéro, et NE DEVRAIT PAS être à un. Par défaut : 2.

7.2	Intervalle d'interrogation
L'intervalle d'interrogation est l'intervalleentre les interrogations générales envoyées par l'interrogateur. Par défaut : 125 secondes.

En faisant varier [Intervalle d'interrogation], un administrateur peut planifier dans le temps le nombre de messages MLD sur la liaison ; les plus grandes valeurs causent un envoi moins fréquent des interrogations MLD.

7.3	Intervalle de réponse à interrogation
C'est le délai de réponse maximum inséré dans les interrogations générales périodiques. Par défaut : 10000 (10 secondes)

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

7.4	Intervalle d'écouteur de diffusion groupée
L'intervalle d'écouteur de diffusion groupée est la durée qui doit s'écouler avant qu'un routeur décide qu'il n'y a plus d'écouteur pour une adresse sur une liaison. Cette valeur DOIT être ((Variable de robustesse) fois (Intervalle d'interrogation)) plus (un intervalle de réponse d'interrogation).

7.5	Intervalle d'autre interrogateur présent
L'intervalle Autre interrogateur présent est la durée qui doit s'écouler avant qu'un routeur décide qu'il n'y a plus d'autre routeur qui devrait être l'interrogateur sur une liaison. Cette valeur DOIT être ((Variable Robustesse) fois (Intervalle d'interrogation)) plus (un demi Intervalle de réponse d'interrogation).

7.6	Intervalle de début d'interrogation
L'intervalle de début d'interrogation est l'intervalle entre les interrogations générales envoyée par un interrogateur au démarrage. Par défaut : 1/4 de l'intervalle d'interrogation.

7.7	Compte de début d'interrogation
Le compte de début d'interrogation est le nombre d'interrogations envoyées au démarrage, séparées par l'intervalle de début d'interrogation. Par défaut : la variable de robustesse.

7.8	Intervalle d'interrogation du dernier écouteur
L'intervalle d'interrogation du dernier écouteur est le délai de réponse maximum inséré dans les interrogations spécifiques d'adresse de diffusion groupée envoyées en réponse aux messages Done, et c'est aussi la durée entre les messages Interrogation spécifiques d'adresse de diffusion groupée. Par défaut : 1000 (1 seconde)

Cette valeur peut être réglée pour modifier la "latence de départ" de la liaison. Une valeur réduite résulte en un délai réduit pour détecter le départ du dernier écouteur pour une adresse.

7.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 suppose qu'il ne reste plus d'écouteur pour une adresse sur une liaison. Par défaut : la variable Robustesse.

7.10	Intervalle de rapport non sollicité
L'intervalle de rapport non sollicité est la durée entre les répétitions du rapport initial d'un nœud intéressant dans une adresse de diffusion groupée. Par défaut : 10 secondes.

8.	Destinations des messages
Ces informations sont fournies ailleurs dans ce document, mais elles sint résumées ici pour plus de facilité.

Type de message	Adresse de destination IPv6	
Interrogation générale	tous nœuds de la portée de la liaison (FF02::1)	
Interrogation spécifique d'adresse de diffusion groupée	l'adresse de diffusion groupée interrogée	
Rapport	l'adresse de diffusion groupée abjet du rapport	
Done	tous les routeurs de la portée de la liaison (FF02::2)	

9.	Considérations pour la sécurité
On considère les ramifications d'un message falsifié de chaque type. Noter que l'exigence que les nœuds vérifient que l'adresse de source IPv6 de tous les messages MLD reçus est une adresse de liaison locale leur interdit d'agir sur les messages MLD falsifiés originaires d'en dehors de la liaison, de sorte que l'on ne discute que des effets des falsifications sur la liaison.

Message Interrogation : Un message Interrogation falsifié provenant d'une machine avec une adresse IP inférieure à celle de l'interrogateur en cours va être cause que les tâches de l'interrogateur vont être allouées au falsificateur. Si le falsificateur 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 Done, le trafic pourrait s'écouler vers des adresses sans écouteur pendant jusqu'à [Intervalle d'écouteur de diffusion groupée].

Un message Interrogation falsifié envoyé à une adresse avec des écouteurs sera cause qu'un ou plusieurs nœuds qui sont écouteurs à cette adresse vont envoyer un rapport. Cela cause une petite quantité de trafic supplémentaire sur la laison, mais ne cause pas de problème de protocole.

Message Rapport : Un faux message Rapport peut être cause que les routeurs pensent qu'il y a des écouteurs présents sur une liaison pour une adresse, alors qu'il n'y en a pas. Cependant, comme l'écoute sur une adresse de diffusion groupée est généralement une opération non priviligiée, un utilisateur local peut obtenir le même résultat de façon triviale sans falsifier aucun message.

Message Done : Un faux message Done va causer l'envoi par l'interrogateur d'une interrogation spécifique d'adresse de diffusion groupée pour l'adresse en question. Cela cause un traitement supplémentaire sur chaque routeur et sur chaque écouteur de l'adresse, et des paquets supplémentaires sur la liaison, mais ne peut pas causer de perte du trafic désiré.

10.	Remerciements
MLD est tiré de [RFC2236], qui a été conçu par Rosen Sharma et Steve Deering, et documenté par Bill Fenner.

11.	Références
[RFC2373]	R. Hinden, S. Deering, "Architecture d'adressage IP version 6", juillet 1998. (Obsolète, voir RFC3513) (P.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.)
[RFC2236]	W. Fenner, "Protocole de gestion de groupe Internet, version 2", novembre 1997. (Remplacée par RFC3376)
[RFC2460]	S. Deering et R. Hinden, "Spécification du protocole Internet, version 6 (IPv6) ", décembre 1998. (MàJ par 5095, D.S)
[RFC2464]	M. Crawford, "Transmission de paquets IPv6 sur réseaux Ethernet", décembre 1998. (P.S.)
[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997.
[RFC2711]	C. Partridge, A. Jackson, "Option d'alerte de routeur IPv6", octobre 1999. (P.S.)
[RFC2026]	S. Bradner, "Le processus de normalisation de l'Internet -- Révision 3", (BCP0009) octobre 1996. (Remplace RFC1602, RFC1871) (MàJ par RFC3667, RFC3668, RFC3932, RFC3979, RFC3978, RFC5378)

12.	Adresse des auteurs
Stephen E. Deering	William C. Fenner	Brian Haberman	
Cisco Systems, Inc.	AT&T Research	IBM Corporation	
170 West Tasman Drive   	75 Willow Road	800 Park Office Drive	
San Jose, CA 95134-1706	Menlo Park, CA 94025	Research Triangle Park, NC  27709	
USA	USA	USA	
téléphone : +1 408 527 8213	téléphone : +1 650 867 6073	téléphone : +1 919 254 2673	
mél : deering@cisco.com		mél : haberman@raleigh.ibm.com 	

13.	Déclaration complète de droits de reproduction
Copyright (C) The Internet Society (1998). Tous droits réservés.

Ce document et les traductions de celui-ci peuvent être copiés et diffusés, et les travaux dérivés qui commentent ou expliquent autrement ou aident à sa mise en œuvre peuvent être préparés, copiés, publiés et distribués, partiellement ou en totalité, sans restriction d'aucune sorte, à condition que l'avis de droits de reproduction ci-dessus et ce paragraphe soit inclus sur toutes ces copies et œuvres dérivées. Toutefois, ce document lui-même ne peut être modifié en aucune façon, par exemple en supprimant le droit d'auteur ou les références à l'Internet Society ou d'autres organisations Internet, sauf si c'est nécessaire à l'élaboration des normes Internet, auquel cas les procédures pour les droits de reproduction définis dans les processus des normes pour l'Internet doivent être suivies, ou si nécessaire pour le traduire dans des langues autres que l'anglais.

Les permissions limitées accordées ci-dessus sont perpétuelles et ne seront pas révoquées par la Société Internet, ses successeurs ou ayants droit.

Ce document et les renseignements qu'il contient sont fournis "TELS QUELS" et l'INTERNET SOCIETY et l'INTERNET ENGINEERING TASK FORCE déclinent toute garantie, expresse ou implicite, y compris mais sans s'y limiter, toute garantie que l'utilisation de l'information ici présente n'enfreindra aucun droit ou aucune garantie implicite de commercialisation ou d'adaptation a un objet particulier.

Remerciement
Le financement de la fonction d'éditeur des RFC est actuellement assuré par la  Internet Society.