Aller au contenu principal

10. Constantes du Protocole (Protocol Constants)

Cette section définit les constantes de protocole utilisées par Neighbor Discovery. Ces constantes spécifient les valeurs de temporisation, les limites de réessai et d'autres paramètres qui régissent le comportement du protocole. Les implémentations DOIVENT (MUST) utiliser ces valeurs sauf indication contraire explicite dans la spécification du protocole.

10.1. Constantes Hôte (Host Constants)

Les constantes suivantes sont utilisées par les hôtes lors de la découverte de routeur et de la configuration d'adresse :

ConstanteValeurDescription
MAX_RTR_SOLICITATION_DELAY1 secondeDélai maximum avant la transmission du premier message Router Solicitation. Utilisé pour éviter la synchronisation lorsque plusieurs hôtes démarrent simultanément.
RTR_SOLICITATION_INTERVAL4 secondesIntervalle de temps entre les retransmissions des messages Router Solicitation.
MAX_RTR_SOLICITATIONS3 transmissionsNombre maximum de messages Router Solicitation qu'un hôte envoie avant d'accepter qu'aucun routeur n'est présent.

Notes d'Utilisation (Usage Notes)

  • MAX_RTR_SOLICITATION_DELAY : Lorsqu'une interface hôte devient activée, elle DEVRAIT (SHOULD) attendre un temps aléatoire entre 0 et MAX_RTR_SOLICITATION_DELAY avant d'envoyer la première Router Solicitation. Cela évite la congestion du réseau lorsque de nombreux hôtes sont mis sous tension simultanément.

  • RTR_SOLICITATION_INTERVAL : Si un hôte ne reçoit pas de Router Advertisement en réponse à sa Router Solicitation, il retransmet après cet intervalle.

  • MAX_RTR_SOLICITATIONS : Après avoir envoyé ce nombre de sollicitations sans recevoir de réponse, un hôte conclut qu'aucun routeur n'est disponible sur le lien et peut procéder avec d'autres mécanismes de configuration d'adresse (comme DHCPv6).

10.2. Constantes Routeur (Router Constants)

Les constantes suivantes régissent le comportement des routeurs lors de l'envoi de Router Advertisements :

ConstanteValeurDescription
MAX_INITIAL_RTR_ADVERT_INTERVAL16 secondesIntervalle de temps maximum entre les Router Advertisements non sollicités initiaux envoyés depuis une interface lorsqu'elle devient une interface publicitaire.
MAX_INITIAL_RTR_ADVERTISEMENTS3 transmissionsNombre de Router Advertisements non sollicités initiaux envoyés lorsqu'une interface de routeur devient une interface publicitaire.
MAX_FINAL_RTR_ADVERTISEMENTS3 transmissionsNombre de Router Advertisements finaux envoyés lorsqu'une interface de routeur cesse d'être une interface publicitaire.
MIN_DELAY_BETWEEN_RAS3 secondesIntervalle de temps minimum entre l'envoi de Router Advertisements multicast non sollicités depuis une interface.
MAX_RA_DELAY_TIME0,5 secondeDélai maximum avant de répondre à une Router Solicitation avec un Router Advertisement.

Notes d'Utilisation (Usage Notes)

  • MAX_INITIAL_RTR_ADVERT_INTERVAL : Lorsqu'un routeur commence à annoncer sur une interface, il envoie plusieurs annonces initiales à une fréquence plus élevée pour informer rapidement les hôtes de sa présence.

  • MAX_INITIAL_RTR_ADVERTISEMENTS : Cette publicité initiale rapide aide les hôtes nouvellement connectés à se configurer rapidement.

  • MAX_FINAL_RTR_ADVERTISEMENTS : Lorsqu'un routeur est sur le point d'arrêter la publicité (par exemple, arrêt gracieux), il envoie des annonces finales avec une Router Lifetime de zéro pour informer les hôtes qu'ils ne doivent plus utiliser ce routeur.

  • MIN_DELAY_BETWEEN_RAS : Cela empêche les routeurs d'inonder le lien avec des Router Advertisements, même s'ils sont sollicités par plusieurs hôtes simultanément.

  • MAX_RA_DELAY_TIME : Lors de la réponse à une Router Solicitation, un routeur retarde sa réponse d'un montant aléatoire jusqu'à cette valeur pour éviter les réponses synchronisées de plusieurs routeurs.

10.3. Constantes de Nœud (Node Constants)

Les constantes suivantes s'appliquent à tous les nœuds IPv6 (hôtes et routeurs) pour la résolution d'adresse et la détection d'inaccessibilité des voisins :

ConstanteValeurDescription
MAX_MULTICAST_SOLICIT3 transmissionsNombre maximum de messages Neighbor Solicitation multicast envoyés pour la résolution d'adresse ou la confirmation d'accessibilité.
MAX_UNICAST_SOLICIT3 transmissionsNombre maximum de messages Neighbor Solicitation unicast envoyés pour sonder l'accessibilité d'un voisin.
MAX_ANYCAST_DELAY_TIME1 secondeDélai maximum avant de répondre à une Neighbor Solicitation pour une adresse anycast.
MAX_NEIGHBOR_ADVERTISEMENT3 transmissionsNombre maximum de messages Neighbor Advertisement non sollicités envoyés lorsque l'adresse link-layer d'un nœud change.
REACHABLE_TIME30 000 millisecondesValeur de base utilisée pour calculer le ReachableTime aléatoire. Typiquement remplacée par les valeurs reçues dans les Router Advertisements.
RETRANS_TIMER1 000 millisecondesValeur de base pour le temps entre les retransmissions de messages Neighbor Solicitation. Typiquement remplacée par les valeurs reçues dans les Router Advertisements.
DELAY_FIRST_PROBE_TIME5 secondesDélai avant d'envoyer la première sonde Neighbor Solicitation unicast lorsqu'un voisin devient suspect.
MIN_RANDOM_FACTOR0,5Valeur minimale pour le facteur aléatoire utilisé lors du calcul de RandomReachableTime.
MAX_RANDOM_FACTOR1,5Valeur maximale pour le facteur aléatoire utilisé lors du calcul de RandomReachableTime.

Notes d'Utilisation (Usage Notes)

  • MAX_MULTICAST_SOLICIT : Utilisé pendant la résolution d'adresse lorsqu'un nœud doit déterminer l'adresse link-layer d'un voisin. Après ce nombre de tentatives, le nœud conclut que le voisin est inaccessible.

  • MAX_UNICAST_SOLICIT : Utilisé pendant la détection d'inaccessibilité des voisins pour sonder un voisin devenu suspect.

  • MAX_ANYCAST_DELAY_TIME : Lorsque plusieurs nœuds partagent une adresse anycast, ils répondent aux Neighbor Solicitations avec un délai aléatoire pour réduire les collisions. Le nœud avec le délai le plus court répond, et les autres suppriment leurs réponses.

  • MAX_NEIGHBOR_ADVERTISEMENT : Lorsque l'adresse link-layer d'un nœud change, il multicast des Neighbor Advertisements non sollicités pour mettre à jour les caches de tous les voisins.

  • REACHABLE_TIME et RETRANS_TIMER : Ceux-ci fournissent des valeurs par défaut, mais les nœuds DEVRAIENT (SHOULD) utiliser les valeurs annoncées par les routeurs lorsqu'elles sont disponibles.

  • DELAY_FIRST_PROBE_TIME : Lorsqu'une progression avant est détectée pour un voisin dans l'état DELAY, le nœud attend ce temps avant de sonder pour confirmer l'accessibilité.

  • MIN_RANDOM_FACTOR et MAX_RANDOM_FACTOR : Utilisés pour calculer une valeur ReachableTime aléatoire afin d'éviter l'activité de Neighbor Unreachability Detection synchronisée sur plusieurs nœuds.

10.4. Considérations d'Implémentation (Implementation Considerations)

Lors de l'implémentation de ces constantes :

  1. Ajustement (Tuning) : Bien que ces valeurs aient été soigneusement choisies pour une utilisation Internet générale, les administrateurs réseau PEUVENT (MAY) avoir besoin de les ajuster pour des environnements spécifiques (par exemple, réseaux sans fil avec des taux de perte élevés).

  2. Remplacement par Router Advertisement (Router Advertisement Override) : Plusieurs constantes de nœud (REACHABLE_TIME, RETRANS_TIMER) peuvent être remplacées par des valeurs reçues dans les Router Advertisements. Les implémentations DOIVENT (MUST) respecter ces valeurs reçues.

  3. Randomisation (Randomization) : Plusieurs opérations nécessitent une randomisation (par exemple, MAX_RTR_SOLICITATION_DELAY, MAX_RA_DELAY_TIME) pour éviter la synchronisation. Les implémentations DEVRAIENT (SHOULD) utiliser un générateur de nombres aléatoires de qualité.

  4. Caractéristiques du Réseau (Network Characteristics) : Pour les réseaux avec des caractéristiques inhabituelles (latence très élevée, perte de paquets élevée, ou très grand nombre de nœuds), ces constantes peuvent nécessiter un ajustement. Tout ajustement de ce type DEVRAIT (SHOULD) être documenté et basé sur une analyse minutieuse.