Zum Hauptinhalt springen

6.3 Purging Stale PMTU Information (Entfernung veralteter Informationen)

6.3 Purging Stale PMTU Information (Entfernung veralteter PMTU-Informationen)

Die Internetwork-Topologie ist dynamisch; Routen ändern sich im Laufe der Zeit. Die für ein gegebenes Ziel entdeckte PMTU kann falsch sein, wenn eine neue Route in Gebrauch kommt. Daher können von einem Host zwischengespeicherte PMTU-Informationen veraltet sein.

Da ein Host, der PMTU Discovery verwendet, immer das DF-Bit setzt, wird dies, wenn der veraltete PMTU-Wert zu groß ist, fast sofort entdeckt, sobald ein Datagramm an das gegebene Ziel gesendet wird. Es existiert kein solcher Mechanismus, um zu erkennen, dass ein veralteter PMTU-Wert zu klein ist, daher sollte eine Implementierung zwischengespeicherte Werte "altern" lassen. Wenn ein PMTU-Wert für eine Weile (in der Größenordnung von 10 Minuten) nicht verringert wurde, sollte die PMTU-Schätzung auf die First-Hop-Datenlink-MTU gesetzt werden, und die Paketisierungsschichten sollten über die Änderung benachrichtigt werden. Dies führt dazu, dass der vollständige PMTU Discovery Prozess erneut stattfindet.

Hinweis: Eine Implementierung sollte eine Möglichkeit bieten, die Timeout-Dauer zu ändern, einschließlich der Einstellung auf "infinity" (unendlich). Zum Beispiel werden Hosts, die an ein FDDI-Netzwerk angeschlossen sind, das dann über eine langsame Seriellinie mit dem Rest des Internets verbunden ist, niemals eine neue nicht-lokale PMTU entdecken, daher sollten sie nicht alle 10 Minuten verworfene Datagramme ertragen müssen.

Eine obere Schicht DARF keine Datagramme als Reaktion auf eine Erhöhung der PMTU-Schätzung erneut übertragen, da diese Erhöhung niemals als Reaktion auf eine Anzeige eines verworfenen Datagramms kommt.

Ein Ansatz zur Implementierung des PMTU-Alterns besteht darin, ein Zeitstempel-Feld zum Routing-Tabelleneintrag hinzuzufügen. Dieses Feld wird auf einen "reserved" (reservierten) Wert initialisiert, der anzeigt, dass die PMTU nie geändert wurde. Wann immer die PMTU als Reaktion auf eine Datagram Too Big Nachricht verringert wird, wird der Zeitstempel auf die aktuelle Zeit gesetzt.

Einmal pro Minute durchläuft eine timer-gesteuerte Prozedur die Routing-Tabelle, und für jeden Eintrag, dessen Zeitstempel nicht "reserved" ist und älter als das Timeout-Intervall ist:

  • Die PMTU-Schätzung wird auf die MTU des zugehörigen First Hop gesetzt.

  • Paketisierungsschichten, die diese Route verwenden, werden über die Erhöhung benachrichtigt.

PMTU-Schätzungen können aus der Routing-Tabelle verschwinden, wenn die Per-Host-Routen entfernt werden; dies kann als Reaktion auf eine ICMP Redirect Nachricht geschehen oder weil bestimmte Routing-Tabellen-Dämonen alte Routen nach mehreren Minuten löschen. Auf einem Multi-Homed-Host kann eine Topologieänderung auch zur Verwendung einer anderen Quellschnittstelle führen. Wenn dies geschieht und die Paketisierungsschicht nicht benachrichtigt wird, kann sie weiterhin einen zwischengespeicherten PMTU-Wert verwenden, der jetzt zu klein ist. Eine Lösung besteht darin, die Paketisierungsschicht über eine mögliche PMTU-Änderung zu benachrichtigen, wann immer eine Redirect-Nachricht eine Routenänderung verursacht, und wann immer eine Route einfach aus der Routing-Tabelle gelöscht wird.

Hinweis: Eine ausgefeiltere Methode zur Erkennung von PMTU-Erhöhungen wird in Abschnitt 7.1 beschrieben.