2. Terminologie (Terminology)
2.1. Allgemein (General)
IP - Internet Protocol Version 6. Die Begriffe IPv4 und IPv6 werden nur in Kontexten verwendet, in denen Mehrdeutigkeit vermieden werden muss.
ICMP - Internet Control Message Protocol für das Internet Protocol Version 6. Die Begriffe ICMPv4 und ICMPv6 werden nur in Kontexten verwendet, in denen Mehrdeutigkeit vermieden werden muss.
Knoten (node) - ein Gerät, das IP implementiert.
Router - ein Knoten, der IP-Pakete weiterleitet, die nicht explizit an ihn selbst adressiert sind.
Host - jeder Knoten, der kein Router ist.
Obere Schicht (upper layer) - eine Protokollschicht unmittelbar über IP. Beispiele sind Transportprotokolle wie TCP und UDP, Steuerungsprotokolle wie ICMP, Routing-Protokolle wie OSPF und Internet-Schicht- (oder untere Schicht-) Protokolle, die über (d. h. gekapselt in) IP „getunnelt" werden, wie Internetwork Packet Exchange (IPX), AppleTalk oder IP selbst.
Link - eine Kommunikationseinrichtung oder ein Medium, über das Knoten auf der Link-Schicht kommunizieren können, d. h. der Schicht unmittelbar unter IP. Beispiele sind Ethernets (einfach oder überbrückt), PPP-Links, X.25, Frame Relay oder ATM-Netzwerke sowie Internet-Schicht- (oder höhere Schicht-) „Tunnel", wie Tunnel über IPv4 oder IPv6 selbst.
Schnittstelle (interface) - die Anbindung eines Knotens an einen Link.
Nachbarn (neighbors) - Knoten, die an denselben Link angeschlossen sind.
Adresse (address) - ein IP-Schicht-Identifikator für eine Schnittstelle oder eine Gruppe von Schnittstellen.
Anycast-Adresse (anycast address) - ein Identifikator für eine Gruppe von Schnittstellen (die typischerweise zu verschiedenen Knoten gehören). Ein Paket, das an eine Anycast-Adresse gesendet wird, wird an eine der durch diese Adresse identifizierten Schnittstellen zugestellt (die „nächste", gemäß dem Distanzmaß des Routing-Protokolls). Siehe [ADDR-ARCH].
Beachten Sie, dass eine Anycast-Adresse syntaktisch nicht von einer Unicast-Adresse zu unterscheiden ist. Daher wissen Knoten, die Pakete an Anycast-Adressen senden, im Allgemeinen nicht, dass eine Anycast-Adresse verwendet wird. Im Rest dieses Dokuments gelten Verweise auf Unicast-Adressen auch für Anycast-Adressen in Fällen, in denen der Knoten nicht weiß, dass eine Unicast-Adresse tatsächlich eine Anycast-Adresse ist.
Präfix (prefix) - eine Bitfolge, die aus einer bestimmten Anzahl anfänglicher Bits einer Adresse besteht.
Link-Layer-Adresse (link-layer address) - ein Link-Layer-Identifikator für eine Schnittstelle. Beispiele sind IEEE 802-Adressen für Ethernet-Links.
On-Link - eine Adresse, die einer Schnittstelle auf einem bestimmten Link zugewiesen ist. Ein Knoten betrachtet eine Adresse als on-link, wenn:
- sie von einem der Präfixe des Links abgedeckt wird (z. B. wie durch das On-Link-Flag in der Prefix Information-Option angegeben), oder
- ein benachbarter Router die Adresse als Ziel einer Redirect-Nachricht angibt, oder
- eine Neighbor Advertisement-Nachricht für die (Ziel-) Adresse empfangen wird, oder
- eine beliebige Neighbor Discovery-Nachricht von der Adresse empfangen wird.
Off-Link - das Gegenteil von „on-link"; eine Adresse, die keiner Schnittstelle auf dem angegebenen Link zugewiesen ist.
Längster Präfix-Match (longest prefix match) - der Prozess der Bestimmung, welches Präfix (falls vorhanden) in einer Menge von Präfixen eine Zieladresse abdeckt. Eine Zieladresse wird von einem Präfix abgedeckt, wenn alle Bits im Präfix mit den linkesten Bits der Zieladresse übereinstimmen. Wenn mehrere Präfixe eine Adresse abdecken, ist das längste Präfix dasjenige, das übereinstimmt.
Erreichbarkeit (reachability) - ob der Einweg-„Forward"-Pfad zu einem Nachbarn ordnungsgemäß funktioniert oder nicht. Insbesondere, ob an einen Nachbarn gesendete Pakete die IP-Schicht auf der benachbarten Maschine erreichen und von der empfangenden IP-Schicht ordnungsgemäß verarbeitet werden. Bei benachbarten Routern bedeutet Erreichbarkeit, dass von der IP-Schicht eines Knotens gesendete Pakete an die IP-Schicht des Routers zugestellt werden und der Router tatsächlich Pakete weiterleitet (d. h. er ist als Router konfiguriert, nicht als Host). Bei Hosts bedeutet Erreichbarkeit, dass von der IP-Schicht eines Knotens gesendete Pakete an die IP-Schicht des benachbarten Hosts zugestellt werden.
Paket (packet) - ein IP-Header plus Nutzlast.
Link-MTU (link MTU) - die maximale Übertragungseinheit, d. h. die maximale Paketgröße in Oktetten, die in einer Übertragungseinheit über einen Link übermittelt werden kann.
Ziel (target) - eine Adresse, für die Adressauflösungsinformationen gesucht werden, oder eine Adresse, die der neue erste Hop beim Umleiten ist.
Proxy - ein Knoten, der im Namen eines anderen Knotens auf Neighbor Discovery-Abfragenachrichten antwortet. Ein Router, der im Namen eines mobilen Knotens handelt, der sich off-link bewegt hat, könnte möglicherweise als Proxy für den mobilen Knoten fungieren.
ICMP-Ziel-unerreichbar-Anzeige (ICMP destination unreachable indication) - eine Fehleranzeige, die an den ursprünglichen Absender eines Pakets zurückgegeben wird, das aus den in [ICMPv6] beschriebenen Gründen nicht zugestellt werden kann. Wenn der Fehler auf einem anderen Knoten als dem das Paket verursachenden Knoten auftritt, wird eine ICMP-Fehlernachricht generiert. Wenn der Fehler auf dem verursachenden Knoten auftritt, ist eine Implementierung nicht verpflichtet, tatsächlich ein ICMP-Fehlerpaket zu erstellen und an die Quelle zu senden, solange der Absender der oberen Schicht über einen geeigneten Mechanismus benachrichtigt wird (z. B. Rückgabewert eines Prozeduraufrufs). Beachten Sie jedoch, dass eine Implementierung es in einigen Fällen bequem finden kann, Fehler an den Absender zurückzugeben, indem sie das fehlerhafte Paket nimmt, eine ICMP-Fehlernachricht generiert und sie dann (lokal) durch die generischen Fehlerbehandlungsroutinen zustellt.
Zufallsverzögerung (random delay) - beim Versenden von Nachrichten ist es manchmal notwendig, eine Übertragung für eine zufällige Zeitspanne zu verzögern, um zu verhindern, dass mehrere Knoten genau zur gleichen Zeit übertragen, oder um zu verhindern, dass sich langfristige periodische Übertragungen miteinander synchronisieren [SYNC]. Wenn eine Zufallskomponente erforderlich ist, berechnet ein Knoten die tatsächliche Verzögerung so, dass die berechnete Verzögerung einen gleichmäßig verteilten Zufallswert bildet, der zwischen den angegebenen minimalen und maximalen Verzögerungszeiten liegt. Der Implementierer muss darauf achten, dass sowohl die Granularität der berechneten Zufallskomponente als auch die Auflösung des verwendeten Timers hoch genug sind, um sicherzustellen, dass die Wahrscheinlichkeit, dass mehrere Knoten dieselbe Zeitspanne verzögern, gering ist.
Zufallsverzögerungs-Seed (random delay seed) - wenn ein Pseudozufallszahlengenerator zur Berechnung einer Zufallsverzögerungskomponente verwendet wird, sollte der Generator vor der Verwendung mit einem eindeutigen Seed initialisiert werden. Beachten Sie, dass es nicht ausreicht, nur die Schnittstellenkennung als Seed zu verwenden, da Schnittstellenkennungen nicht immer eindeutig sind. Um die Wahrscheinlichkeit zu verringern, dass doppelte Schnittstellenkennungen dazu führen, dass derselbe Seed verwendet wird, sollte der Seed aus einer Vielzahl von Eingabequellen (z. B. Maschinenkomponenten) berechnet werden, die selbst bei identischen „Boxen" wahrscheinlich unterschiedlich sind. Beispielsweise könnte der Seed durch Kombination der Seriennummer der CPU mit einer Schnittstellenkennung gebildet werden. Zusätzliche Informationen zur Zufälligkeit und Zufallszahlengenerierung finden Sie in [RAND].
2.2. Link-Typen (Link Types)
Verschiedene Link-Schichten haben unterschiedliche Eigenschaften. Die für Neighbor Discovery relevanten sind:
Multicast-fähig (multicast capable) - ein Link, der einen nativen Mechanismus auf der Link-Schicht zum Senden von Paketen an alle (d. h. Broadcast) oder eine Teilmenge aller Nachbarn unterstützt.
Punkt-zu-Punkt (point-to-point) - ein Link, der genau zwei Schnittstellen verbindet. Ein Punkt-zu-Punkt-Link wird als multicast-fähig und mit einer Link-Local-Adresse angenommen.
Non-Broadcast Multi-Access (NBMA) - ein Link, an den mehr als zwei Schnittstellen angeschlossen werden können, der jedoch keine native Form von Multicast oder Broadcast unterstützt (z. B. X.25, ATM, Frame Relay usw.). Beachten Sie, dass alle Link-Typen (einschließlich NBMA) erwartungsgemäß Multicast-Dienste für Anwendungen bereitstellen, die dies benötigen (z. B. unter Verwendung von Multicast-Servern). Es ist jedoch eine Frage für weitere Studien, ob ND solche Einrichtungen oder einen alternativen Mechanismus verwenden sollte, der die äquivalente Multicast-Fähigkeit für ND bereitstellt.
Gemeinsam genutztes Medium (shared media) - ein Link, der direkte Kommunikation zwischen einer Anzahl von Knoten ermöglicht, aber angeschlossene Knoten sind so konfiguriert, dass sie keine vollständigen Präfixinformationen für alle On-Link-Ziele haben. Das heißt, auf IP-Ebene wissen Knoten auf demselben Link möglicherweise nicht, dass sie Nachbarn sind; standardmäßig kommunizieren sie über einen Router. Beispiele sind große (geschaltete) öffentliche Datennetze wie Switched Multimegabit Data Service (SMDS) und Broadband Integrated Services Digital Network (B-ISDN). Auch als „große Wolken" bekannt. Siehe [SH-MEDIA].
Variable MTU (variable MTU) - ein Link, der keine klar definierte MTU hat (z. B. IEEE 802.5 Token Rings). Viele Links (z. B. Ethernet) haben eine Standard-MTU, die durch das Link-Layer-Protokoll oder durch das spezifische Dokument definiert ist, das beschreibt, wie IP über die Link-Schicht ausgeführt wird.
Asymmetrische Erreichbarkeit (asymmetric reachability) - ein Link, bei dem nicht-reflexive und/oder nicht-transitive Erreichbarkeit Teil des normalen Betriebs ist. (Nicht-reflexive Erreichbarkeit bedeutet, dass Pakete von A B erreichen, aber Pakete von B A nicht erreichen. Nicht-transitive Erreichbarkeit bedeutet, dass Pakete von A B erreichen und Pakete von B C erreichen, aber Pakete von A C nicht erreichen.) Viele Funklinks zeigen diese Eigenschaften.
2.3. Adressen (Addresses)
Neighbor Discovery verwendet eine Reihe verschiedener Adressen, die in [ADDR-ARCH] definiert sind, einschließlich:
All-Nodes-Multicast-Adresse (all-nodes multicast address) - die Link-Local-Scope-Adresse, um alle Knoten zu erreichen, FF02::1.
All-Routers-Multicast-Adresse (all-routers multicast address) - die Link-Local-Scope-Adresse, um alle Router zu erreichen, FF02::2.
Solicited-Node-Multicast-Adresse (solicited-node multicast address) - eine Link-Local-Scope-Multicast-Adresse, die als Funktion der Adresse des angefragten Ziels berechnet wird. Die Funktion wird in [ADDR-ARCH] beschrieben. Die Funktion wird so gewählt, dass IP-Adressen, die sich nur in den höchstwertigen Bits unterscheiden, z. B. aufgrund mehrerer mit verschiedenen Anbietern verbundener Präfixe, auf dieselbe Solicited-Node-Adresse abgebildet werden, wodurch die Anzahl der Multicast-Adressen reduziert wird, denen ein Knoten auf der Link-Schicht beitreten muss.
Link-Local-Adresse (link-local address) - eine Unicast-Adresse mit nur Link-Scope, die verwendet werden kann, um Nachbarn zu erreichen. Alle Schnittstellen auf Routern müssen (MUST) eine Link-Local-Adresse haben. Außerdem erfordert [ADDRCONF], dass Schnittstellen auf Hosts eine Link-Local-Adresse haben.
Nicht spezifizierte Adresse (unspecified address) - ein reservierter Adresswert, der das Fehlen einer Adresse anzeigt (z. B. die Adresse ist unbekannt). Sie wird nie als Zieladresse verwendet, kann aber als Quelladresse verwendet werden, wenn der Absender seine eigene Adresse (noch) nicht kennt (z. B. während der Überprüfung, dass eine Adresse während der zustandslosen Adressautokonfiguration [ADDRCONF] ungenutzt ist). Die nicht spezifizierte Adresse hat einen Wert von 0:0:0:0:0:0:0:0.
Beachten Sie, dass diese Spezifikation nicht streng den Konsistenzanforderungen in [ADDR-SEL] für die Bereiche von Quell- und Zieladressen entspricht. In einigen Fällen ist es für Hosts möglich, eine Quelladresse mit einem größeren Bereich als die Zieladresse im IPv6-Header zu verwenden.
2.4. Anforderungen (Requirements)
Die Schlüsselwörter MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY und OPTIONAL sind, wenn sie in diesem Dokument erscheinen, wie in [KEYWORDS] beschrieben zu interpretieren.
Dieses Dokument verwendet auch interne konzeptionelle Variablen, um das Protokollverhalten zu beschreiben, und externe Variablen, die eine Implementierung Systemadministratoren erlauben muss zu ändern. Die spezifischen Variablennamen, wie sich ihre Werte ändern und wie ihre Einstellungen das Protokollverhalten beeinflussen, werden bereitgestellt, um das Protokollverhalten zu demonstrieren. Eine Implementierung muss sie nicht in der hier beschriebenen exakten Form haben, solange ihr externes Verhalten konsistent mit dem in diesem Dokument beschriebenen ist.