2. Terminologie (Terminology)
2.1. Général (General)
IP - Internet Protocol Version 6. Les termes IPv4 et IPv6 ne sont utilisés que dans les contextes où il est nécessaire d'éviter toute ambiguïté.
ICMP - Internet Control Message Protocol pour le protocole Internet version 6. Les termes ICMPv4 et ICMPv6 ne sont utilisés que dans les contextes où il est nécessaire d'éviter toute ambiguïté.
nœud (node) - un dispositif qui implémente IP.
routeur (router) - un nœud qui transmet des paquets IP qui ne lui sont pas explicitement adressés.
hôte (host) - tout nœud qui n'est pas un routeur.
couche supérieure (upper layer) - une couche de protocole immédiatement au-dessus d'IP. Les exemples incluent les protocoles de transport tels que TCP et UDP, les protocoles de contrôle tels que ICMP, les protocoles de routage tels que OSPF, et les protocoles de couche Internet (ou de couche inférieure) étant « tunnelisés » sur (c'est-à-dire encapsulés dans) IP tels que Internetwork Packet Exchange (IPX), AppleTalk, ou IP lui-même.
liaison (link) - une installation de communication ou un support sur lequel les nœuds peuvent communiquer au niveau de la couche liaison, c'est-à-dire la couche immédiatement sous IP. Les exemples incluent les Ethernets (simples ou pontés), les liaisons PPP, X.25, Frame Relay, ou les réseaux ATM ainsi que les « tunnels » de couche Internet (ou de couche supérieure), tels que les tunnels sur IPv4 ou IPv6 lui-même.
interface - l'attachement d'un nœud à une liaison.
voisins (neighbors) - nœuds attachés à la même liaison.
adresse (address) - un identifiant de couche IP pour une interface ou un ensemble d'interfaces.
adresse anycast (anycast address) - un identifiant pour un ensemble d'interfaces (appartenant généralement à différents nœuds). Un paquet envoyé à une adresse anycast est livré à l'une des interfaces identifiées par cette adresse (la « plus proche », selon la mesure de distance du protocole de routage). Voir [ADDR-ARCH].
Notez qu'une adresse anycast est syntaxiquement indiscernable d'une adresse unicast. Ainsi, les nœuds envoyant des paquets à des adresses anycast ne savent généralement pas qu'une adresse anycast est utilisée. Tout au long du reste de ce document, les références aux adresses unicast s'appliquent également aux adresses anycast dans les cas où le nœud ignore qu'une adresse unicast est en réalité une adresse anycast.
préfixe (prefix) - une chaîne de bits qui consiste en un certain nombre de bits initiaux d'une adresse.
adresse de couche liaison (link-layer address) - un identifiant de couche liaison pour une interface. Les exemples incluent les adresses IEEE 802 pour les liaisons Ethernet.
sur liaison (on-link) - une adresse qui est assignée à une interface sur une liaison spécifiée. Un nœud considère qu'une adresse est sur liaison si :
- elle est couverte par l'un des préfixes de la liaison (par exemple, comme indiqué par le drapeau on-link dans l'option Prefix Information), ou
- un routeur voisin spécifie l'adresse comme la cible d'un message Redirect, ou
- un message Neighbor Advertisement est reçu pour l'adresse (cible), ou
- tout message Neighbor Discovery est reçu de l'adresse.
hors liaison (off-link) - le contraire de « sur liaison » ; une adresse qui n'est assignée à aucune interface sur la liaison spécifiée.
correspondance de préfixe le plus long (longest prefix match) - le processus de détermination de quel préfixe (le cas échéant) dans un ensemble de préfixes couvre une adresse cible. Une adresse cible est couverte par un préfixe si tous les bits du préfixe correspondent aux bits les plus à gauche de l'adresse cible. Lorsque plusieurs préfixes couvrent une adresse, le préfixe le plus long est celui qui correspond.
joignabilité (reachability) - si le chemin « avant » unidirectionnel vers un voisin fonctionne correctement ou non. En particulier, si les paquets envoyés à un voisin atteignent la couche IP sur la machine voisine et sont traités correctement par la couche IP réceptrice. Pour les routeurs voisins, la joignabilité signifie que les paquets envoyés par la couche IP d'un nœud sont livrés à la couche IP du routeur, et que le routeur transfère effectivement les paquets (c'est-à-dire qu'il est configuré comme un routeur, pas un hôte). Pour les hôtes, la joignabilité signifie que les paquets envoyés par la couche IP d'un nœud sont livrés à la couche IP de l'hôte voisin.
paquet (packet) - un en-tête IP plus charge utile.
MTU de liaison (link MTU) - l'unité de transmission maximale, c'est-à-dire la taille maximale de paquet en octets, qui peut être transmise en une unité de transmission sur une liaison.
cible (target) - une adresse pour laquelle des informations de résolution d'adresse sont recherchées, ou une adresse qui est le nouveau premier saut lors d'une redirection.
proxy - un nœud qui répond aux messages de requête Neighbor Discovery au nom d'un autre nœud. Un routeur agissant au nom d'un nœud mobile qui s'est déplacé hors liaison pourrait potentiellement agir comme un proxy pour le nœud mobile.
indication ICMP destination inaccessible (ICMP destination unreachable indication) - une indication d'erreur renvoyée à l'expéditeur d'origine d'un paquet qui ne peut pas être livré pour les raisons décrites dans [ICMPv6]. Si l'erreur se produit sur un nœud autre que le nœud d'origine du paquet, un message d'erreur ICMP est généré. Si l'erreur se produit sur le nœud d'origine, une implémentation n'est pas tenue de créer et d'envoyer effectivement un paquet d'erreur ICMP à la source, tant que l'expéditeur de couche supérieure est notifié par un mécanisme approprié (par exemple, valeur de retour d'un appel de procédure). Notez cependant qu'une implémentation peut trouver pratique dans certains cas de renvoyer des erreurs à l'expéditeur en prenant le paquet en cause, en générant un message d'erreur ICMP, puis en le livrant (localement) via les routines génériques de gestion des erreurs.
délai aléatoire (random delay) - lors de l'envoi de messages, il est parfois nécessaire de retarder une transmission pendant un temps aléatoire afin d'empêcher plusieurs nœuds de transmettre exactement au même moment, ou d'empêcher les transmissions périodiques à longue portée de se synchroniser les unes avec les autres [SYNC]. Lorsqu'une composante aléatoire est requise, un nœud calcule le délai réel de telle sorte que le délai calculé forme une valeur aléatoire uniformément distribuée qui se situe entre les temps de délai minimum et maximum spécifiés. L'implémenteur doit veiller à ce que la granularité de la composante aléatoire calculée et la résolution du temporisateur utilisé soient toutes deux suffisamment élevées pour garantir que la probabilité que plusieurs nœuds retardent du même temps est faible.
graine de délai aléatoire (random delay seed) - si un générateur de nombres pseudo-aléatoires est utilisé pour calculer une composante de délai aléatoire, le générateur doit être initialisé avec une graine unique avant d'être utilisé. Notez qu'il n'est pas suffisant d'utiliser uniquement l'identifiant d'interface comme graine, car les identifiants d'interface ne seront pas toujours uniques. Pour réduire la probabilité que des identifiants d'interface en double entraînent l'utilisation de la même graine, la graine doit être calculée à partir de diverses sources d'entrée (par exemple, composants de la machine) qui sont susceptibles d'être différentes même sur des « boîtes » identiques. Par exemple, la graine pourrait être formée en combinant le numéro de série du CPU avec un identifiant d'interface. Des informations supplémentaires sur le caractère aléatoire et la génération de nombres aléatoires peuvent être trouvées dans [RAND].
2.2. Types de liaisons (Link Types)
Différentes couches liaison ont différentes propriétés. Celles qui concernent Neighbor Discovery sont :
capable de multicast (multicast capable) - une liaison qui supporte un mécanisme natif au niveau de la couche liaison pour envoyer des paquets à tous (c'est-à-dire en diffusion) ou à un sous-ensemble de tous les voisins.
point à point (point-to-point) - une liaison qui connecte exactement deux interfaces. Une liaison point à point est supposée avoir une capacité de multicast et une adresse link-local.
accès multiple sans diffusion (non-broadcast multi-access, NBMA) - une liaison à laquelle plus de deux interfaces peuvent se connecter, mais qui ne supporte pas une forme native de multicast ou de diffusion (par exemple, X.25, ATM, frame relay, etc.). Notez que tous les types de liaisons (y compris NBMA) sont censés fournir un service de multicast pour les applications qui en ont besoin (par exemple, en utilisant des serveurs de multicast). Cependant, c'est une question pour une étude ultérieure de savoir si ND doit utiliser de telles installations ou un mécanisme alternatif qui fournit la capacité de multicast équivalente pour ND.
média partagé (shared media) - une liaison qui permet la communication directe entre un certain nombre de nœuds, mais les nœuds attachés sont configurés de telle sorte qu'ils n'ont pas d'informations de préfixe complètes pour toutes les destinations sur liaison. C'est-à-dire qu'au niveau IP, les nœuds sur la même liaison peuvent ne pas savoir qu'ils sont voisins ; par défaut, ils communiquent via un routeur. Les exemples incluent les grands réseaux de données publics (commutés) tels que Switched Multimegabit Data Service (SMDS) et Broadband Integrated Services Digital Network (B-ISDN). Également connu sous le nom de « grands nuages ». Voir [SH-MEDIA].
MTU variable (variable MTU) - une liaison qui n'a pas de MTU bien définie (par exemple, anneaux à jeton IEEE 802.5). De nombreuses liaisons (par exemple, Ethernet) ont une MTU standard définie par le protocole de couche liaison ou par le document spécifique décrivant comment exécuter IP sur la couche liaison.
joignabilité asymétrique (asymmetric reachability) - une liaison où la joignabilité non réflexive et/ou non transitive fait partie du fonctionnement normal. (La joignabilité non réflexive signifie que les paquets de A atteignent B, mais les paquets de B n'atteignent pas A. La joignabilité non transitive signifie que les paquets de A atteignent B, et les paquets de B atteignent C, mais les paquets de A n'atteignent pas C.) De nombreuses liaisons radio présentent ces propriétés.
2.3. Adresses (Addresses)
Neighbor Discovery utilise un certain nombre d'adresses différentes définies dans [ADDR-ARCH], notamment :
adresse multicast tous-nœuds (all-nodes multicast address) - l'adresse de portée link-local pour atteindre tous les nœuds, FF02::1.
adresse multicast tous-routeurs (all-routers multicast address) - l'adresse de portée link-local pour atteindre tous les routeurs, FF02::2.
adresse multicast de nœud sollicité (solicited-node multicast address) - une adresse multicast de portée link-local qui est calculée en fonction de l'adresse de la cible sollicitée. La fonction est décrite dans [ADDR-ARCH]. La fonction est choisie de sorte que les adresses IP qui ne diffèrent que par les bits les plus significatifs, par exemple en raison de plusieurs préfixes associés à différents fournisseurs, seront mappées à la même adresse de nœud sollicité, réduisant ainsi le nombre d'adresses multicast qu'un nœud doit joindre au niveau de la couche liaison.
adresse link-local (link-local address) - une adresse unicast ayant une portée uniquement de liaison qui peut être utilisée pour atteindre les voisins. Toutes les interfaces sur les routeurs doivent (MUST) avoir une adresse link-local. De plus, [ADDRCONF] exige que les interfaces sur les hôtes aient une adresse link-local.
adresse non spécifiée (unspecified address) - une valeur d'adresse réservée qui indique l'absence d'une adresse (par exemple, l'adresse est inconnue). Elle n'est jamais utilisée comme adresse de destination, mais peut être utilisée comme adresse source si l'expéditeur ne connaît pas (encore) sa propre adresse (par exemple, lors de la vérification qu'une adresse est inutilisée pendant l'autoconfiguration d'adresse sans état [ADDRCONF]). L'adresse non spécifiée a une valeur de 0:0:0:0:0:0:0:0.
Notez que cette spécification ne se conforme pas strictement aux exigences de cohérence dans [ADDR-SEL] pour les portées des adresses source et destination. Il est possible dans certains cas pour les hôtes d'utiliser une adresse source d'une portée plus grande que l'adresse de destination dans l'en-tête IPv6.
2.4. Exigences (Requirements)
Les mots-clés MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY et OPTIONAL, lorsqu'ils apparaissent dans ce document, doivent être interprétés comme décrit dans [KEYWORDS].
Ce document utilise également des variables conceptuelles internes pour décrire le comportement du protocole et des variables externes qu'une implémentation doit permettre aux administrateurs système de modifier. Les noms de variables spécifiques, la façon dont leurs valeurs changent et la façon dont leurs paramètres influencent le comportement du protocole sont fournis pour démontrer le comportement du protocole. Une implémentation n'est pas tenue de les avoir exactement sous la forme décrite ici, tant que son comportement externe est cohérent avec celui décrit dans ce document.