Zum Hauptinhalt springen

15. Zuverlaessigkeit clientinitiierter Nachrichtenaustausche

Dieser Abschnitt bewahrt den RFC-Text zu DHCPv6, einschliesslich Nachrichtenaustausch, Relay-Verhalten, DUIDs, IA_NA, IA_TA, IA_PD, DHCP-Optionen, RKAP-Authentifizierung, IANA-Registern, normativen Anforderungen und der Optionsvorkommensmatrizen im Anhang.

Originaler RFC-Text​

15.  Zuverlaessigkeit clientinitiierter Nachrichtenaustausche

   DHCP-Clients sind fuer die zuverlaessige Zustellung von Nachrichten in
   den in Section 18 beschriebenen clientinitiierten Nachrichtenaustauschen
   verantwortlich.  Wenn ein DHCP-Client keine erwartete Antwort von einem
   Server erhaelt, muss der Client seine Nachricht gemaess der unten
   beschriebenen Retransmission-Strategie erneut senden.

   Es ist zu beachten, dass das in diesem Abschnitt beschriebene Verfahren
   bei Verwendung mit der Solicit-Nachricht leicht modifiziert wird.  Das
   modifizierte Verfahren ist in Section 18.2.1 beschrieben.

   Der Client beginnt den Nachrichtenaustausch, indem er eine Nachricht an
   den Server sendet.  Der Nachrichtenaustausch endet, wenn entweder (1)
   der Client die passende Antwort oder die passenden Antworten von einem
   oder mehreren Servern erfolgreich empfaengt oder (2) der
   Nachrichtenaustausch gemaess dem unten beschriebenen
   Retransmission-Mechanismus als fehlgeschlagen gilt.

   Der Client MUST einen "elapsed-time"-Wert in einer Elapsed Time option
   (siehe Section 21.9) in der erneut gesendeten Nachricht aktualisieren.
   In einigen Faellen muss der Client moeglicherweise auch Werte in IA
   Address options (siehe Section 21.6) oder IA Prefix options (siehe
   Section 21.22) aendern, wenn eine valid lifetime fuer einen Lease des
   Clients vor der erneuten Uebertragung ablaeuft.  Wenn dieses Dokument
   also auf eine "retransmission" einer Clientnachricht verweist, meint es
   sowohl die Aenderung der urspruenglichen Nachricht als auch das Senden
   dieser neuen Nachrichteninstanz an den Server.

   Das Retransmission-Verhalten des Clients wird durch die folgenden
   Variablen gesteuert und beschrieben:

   RT:    Retransmission timeout

   IRT:   Initial retransmission time

   MRC:   Maximum retransmission count

   MRT:   Maximum retransmission time

   MRD:   Maximum retransmission duration

   RAND:  Randomization factor

   Spezifische Werte fuer jeden dieser Parameter, die fuer die
   verschiedenen Nachrichten relevant sind, werden in den Unterabschnitten
   von Section 18.2 angegeben, wobei die in Table 1 in Section 7.6
   definierten Werte verwendet werden.  Der Algorithmus fuer RAND ist fuer
   alle Nachrichtenuebertragungen gemeinsam.

   Bei jeder Nachrichtenuebertragung oder -wiederuebertragung setzt der
   Client RT gemaess den unten angegebenen Regeln.  Wenn RT ablaeuft,
   bevor der Nachrichtenaustausch endet, berechnet der Client RT neu und
   sendet die Nachricht erneut.

   Jede Berechnung eines neuen RT enthaelt einen Randomisierungsfaktor
   (RAND), der eine Zufallszahl ist, die mit einer gleichmaessigen
   Verteilung zwischen -0.1 und +0.1 gewaehlt wird.  Der
   Randomisierungsfaktor wird einbezogen, um die Synchronisierung von
   Nachrichten, die von DHCP-Clients gesendet werden, zu minimieren.

   Der Algorithmus zur Auswahl einer Zufallszahl muss nicht
   kryptographisch solide sein.  Der Algorithmus SHOULD bei jedem Aufruf
   des DHCP-Clients eine andere Folge von Zufallszahlen erzeugen.

   RT fuer die erste Nachrichtenuebertragung basiert auf IRT:

      RT = IRT + RAND*IRT

   RT fuer jede nachfolgende Nachrichtenuebertragung basiert auf dem
   vorherigen Wert von RT:

      RT = 2*RTprev + RAND*RTprev

   MRT gibt eine Obergrenze fuer den Wert von RT an (ohne die durch die
   Verwendung von RAND hinzugefuegte Randomisierung zu beruecksichtigen).
   Wenn MRT den Wert 0 hat, gibt es keine Obergrenze fuer den Wert von RT.
   Andernfalls:

      if (RT > MRT)
         RT = MRT + RAND*MRT

   MRC gibt eine Obergrenze fuer die Anzahl der Male an, die ein Client
   eine Nachricht erneut senden darf.  Sofern MRC nicht null ist, schlaegt
   der Nachrichtenaustausch fehl, sobald der Client die Nachricht MRC-mal
   gesendet hat.

   MRD gibt eine Obergrenze fuer die Zeitdauer an, waehrend der ein Client
   eine Nachricht erneut senden darf.  Sofern MRD nicht null ist, schlaegt
   der Nachrichtenaustausch fehl, sobald MRD Sekunden verstrichen sind,
   seit der Client die Nachricht erstmals gesendet hat.

   Wenn sowohl MRC als auch MRD ungleich null sind, schlaegt der
   Nachrichtenaustausch fehl, sobald eine der in den vorherigen beiden
   Absaetzen angegebenen Bedingungen erfuellt ist.

   Wenn sowohl MRC als auch MRD null sind, sendet der Client die Nachricht
   weiter, bis er eine Antwort empfaengt.

   Von einem Client wird nicht erwartet, dass er waehrend der gesamten
   RT-Periode auf eine Antwort wartet; er kann seine Empfangsfaehigkeiten
   nach mindestens der kuerzeren Wartezeit von RT und MAX_WAIT_TIME
   aufgrund von Energieeinsparung oder aus anderen Gruenden deaktivieren.
   Selbstverstaendlich MUST ein Client auf Reconfigure lauschen, wenn er
   dessen Verwendung mit dem Server ausgehandelt hat.