3.5.2. Hello-Nachricht
LDP Hello-Nachrichten werden als Teil des LDP-Discovery-Mechanismus ausgetauscht; siehe den Abschnitt "LDP Discovery".
Die Kodierung für die Hello-Nachricht ist:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Hello (0x0100) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Hello Parameters TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message ID 32-Bit-Wert, der verwendet wird, um diese Nachricht zu identifizieren.
Common Hello Parameters TLV Gibt Parameter an, die allen Hello-Nachrichten gemeinsam sind. Die Kodierung für das Common Hello Parameters TLV ist:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0| Common Hello Parms(0x0400)| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time |T|R| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Hold Time Hello-Haltezeit in Sekunden. Ein LSR führt eine Aufzeichnung über die von potenziellen Peers empfangenen Hellos (siehe den Abschnitt "Hello Message Procedures"). Die Hello Hold Time gibt die Zeit an, während der der sendende LSR seine Aufzeichnung der Hellos vom empfangenden LSR beibehält, ohne ein weiteres Hello zu empfangen.
Ein Paar von LSRs verhandelt die Haltezeiten, die sie für Hellos voneinander verwenden. Jeder schlägt eine Haltezeit vor. Die verwendete Haltezeit ist das Minimum der in ihren Hellos vorgeschlagenen Haltezeiten.
Ein Wert von 0 bedeutet, den Standardwert zu verwenden, der 15 Sekunden für Link Hellos und 45 Sekunden für Targeted Hellos beträgt. Ein Wert von 0xffff bedeutet unendlich.
T, Targeted Hello Ein Wert von 1 gibt an, dass dieses Hello ein Targeted Hello ist. Ein Wert von 0 gibt an, dass dieses Hello ein Link Hello ist.
R, Request Send Targeted Hellos Ein Wert von 1 fordert den Empfänger auf, periodisch Targeted Hellos an die Quelle dieses Hello zu senden. Ein Wert von 0 stellt keine Anforderung.
Ein LSR, der Extended Discovery initiiert, setzt R auf 1. Wenn R 1 ist, prüft der empfangende LSR, ob er so konfiguriert wurde, dass er als Antwort auf Hellos mit dieser Anforderung Targeted Hellos an die Hello-Quelle sendet. Wenn nicht, ignoriert er die Anforderung. Wenn ja, initiiert er die periodische Übertragung von Targeted Hellos an die Hello-Quelle.
Reserved Dieses Feld ist reserviert. Es MUSS (MUST) bei der Übertragung auf null gesetzt und beim Empfang ignoriert werden.
Optional Parameters Dieses Feld variabler Länge der Hello-Nachricht enthält 0 oder mehr Parameter, jeder als TLV kodiert. Die von dieser Version des Protokolls definierten optionalen Parameter sind
Optional Parameter Type Length Value
IPv4 Transport Address 0x0401 4 See below
Configuration 0x0402 4 See below
Sequence Number
IPv6 Transport Address 0x0403 16 See below
IPv4 Transport Address Gibt die IPv4-Adresse an, die für den sendenden LSR beim Öffnen der LDP-Sitzungs-TCP-Verbindung verwendet werden soll. Wenn dieses optionale TLV nicht vorhanden ist, SOLLTE (SHOULD) die IPv4-Quelladresse für das das Hello transportierende UDP-Paket verwendet werden.
Configuration Sequence Number Gibt eine vorzeichenlose Konfigurationssequenznummer aus 4 Oktetten an, die den Konfigurationszustand des sendenden LSR identifiziert. Wird vom empfangenden LSR verwendet, um Konfigurationsänderungen am sendenden LSR zu erkennen.
IPv6 Transport Address Gibt die IPv6-Adresse an, die für den sendenden LSR beim Öffnen der LDP-Sitzungs-TCP-Verbindung verwendet werden soll. Wenn dieses optionale TLV nicht vorhanden ist, SOLLTE (SHOULD) die IPv6-Quelladresse für das das Hello transportierende UDP-Paket verwendet werden.
3.5.2.1. Hello-Nachrichtenverfahren
Ein LSR, der Hellos von einem anderen LSR empfängt, unterhält eine Hello-Adjazenz, die den Hellos entspricht. Der LSR unterhält einen Hold-Timer mit der Hello-Adjazenz, den er neu startet, wann immer er ein Hello empfängt, das zur Hello-Adjazenz passt. Wenn der Hold-Timer für eine Hello-Adjazenz abläuft, verwirft der LSR die Hello-Adjazenz: siehe die Abschnitte "Maintaining Hello Adjacencies" und "Maintaining LDP Sessions".
Wir empfehlen, dass das Intervall zwischen Hello-Übertragungen höchstens ein Drittel der Hello-Haltezeit beträgt.
Ein LSR verarbeitet ein empfangenes LDP Hello wie folgt:
-
Der LSR prüft, ob das Hello akzeptabel ist. Die Kriterien für die Bestimmung, ob ein Hello akzeptabel ist, sind implementierungsabhängig (siehe unten für Beispielkriterien).
-
Wenn das Hello nicht akzeptabel ist, ignoriert der LSR es.
-
Wenn das Hello akzeptabel ist, prüft der LSR, ob er eine Hello-Adjazenz für die Hello-Quelle hat. Wenn ja, startet er den Hold-Timer für die Hello-Adjazenz neu. Wenn nicht, erstellt er eine Hello-Adjazenz für die Hello-Quelle und startet deren Hold-Timer.
-
Wenn das Hello optionale TLVs mitführt, verarbeitet der LSR sie (siehe unten).
-
Schließlich befolgt der LSR, wenn er keine LDP-Sitzung für den durch den LDP Identifier im PDU-Header des Hello angegebenen Label-Raum hat, die Verfahren des Abschnitts "LDP Session Establishment".
Das Folgende sind Beispiele für Akzeptanzkriterien für Link- und Targeted Hellos:
Ein Link Hello ist akzeptabel, wenn die Schnittstelle, auf der es empfangen wurde, für Label Switching konfiguriert wurde.
Ein Targeted Hello von der Quelladresse A ist akzeptabel, wenn entweder:
-
der LSR so konfiguriert wurde, dass er Targeted Hellos akzeptiert, oder
-
der LSR so konfiguriert wurde, dass er Targeted Hellos an A sendet.
Das Folgende beschreibt, wie ein LSR optionale Hello-TLVs verarbeitet:
Transport Address Der LSR assoziiert die angegebene Transportadresse mit der Hello-Adjazenz.
Configuration Sequence Number Der optionale Parameter Configuration Sequence Number wird vom sendenden LSR verwendet, um dem empfangenden LSR Konfigurationsänderungen zu signalisieren. Wenn ein empfangender LSR, der die aktive Rolle beim LDP-Sitzungsaufbau spielt, eine Änderung der Konfiguration des sendenden LSR erkennt, kann er die mit dem sendenden LSR verbundene Verzögerung beim Zurückstellen des Sitzungsaufbaus (session setup backoff delay) löschen, falls eine solche vorhanden ist (siehe den Abschnitt "Session Initialization").
Ein sendender LSR, der diesen optionalen Parameter verwendet, ist dafür verantwortlich, die Konfigurationssequenznummer, die er in Hello-Nachrichten überträgt, zu pflegen. Wann immer es eine Konfigurationsänderung am sendenden LSR gibt, erhöht er die Konfigurationssequenznummer.