Zum Hauptinhalt springen

2. Protocol Overview (Protokollübersicht)

2. Protocol Overview (Protokollübersicht)

In diesem Memorandum beschreiben wir eine Technik zur Verwendung des Don't Fragment (nicht fragmentieren, DF) Bits im IP-Header, um die PMTU eines Pfades dynamisch zu entdecken. Die Grundidee besteht darin, dass ein Quell-Host zunächst annimmt, dass die PMTU eines Pfades die (bekannte) MTU seines ersten Hops ist, und alle Datagramme auf diesem Pfad mit gesetztem DF-Bit sendet. Wenn eines der Datagramme zu groß ist, um ohne Fragmentierung von einem Router entlang des Pfades weitergeleitet zu werden, verwirft dieser Router sie und gibt ICMP Destination Unreachable (Ziel nicht erreichbar) Nachrichten mit einem Code zurück, der "fragmentation needed and DF set" (Fragmentierung erforderlich und DF gesetzt) bedeutet [7]. Beim Empfang einer solchen Nachricht (im Folgenden als "Datagram Too Big" (Datagramm zu groß) Nachricht bezeichnet) reduziert der Quell-Host seine angenommene PMTU für den Pfad.

Der PMTU-Discovery-Prozess endet, wenn die Schätzung des Hosts für die PMTU niedrig genug ist, dass seine Datagramme ohne Fragmentierung zugestellt werden können. Oder der Host kann wählen, den Discovery-Prozess zu beenden, indem er aufhört, das DF-Bit in den Datagramm-Headern zu setzen; er kann dies beispielsweise tun, weil er bereit ist, Datagramme unter bestimmten Umständen fragmentieren zu lassen. Normalerweise setzt der Host DF weiterhin in allen Datagrammen, so dass, wenn sich die Route ändert und die neue PMTU niedriger ist, dies entdeckt wird.

Leider meldet die Datagram Too Big Nachricht, wie derzeit spezifiziert, nicht die MTU des Hops, für den das abgelehnte Datagramm zu groß war, sodass der Quell-Host nicht genau sagen kann, um wie viel er seine angenommene PMTU reduzieren soll. Um dies zu beheben, schlagen wir vor, ein derzeit ungenutztes Header-Feld in der Datagram Too Big Nachricht zu verwenden, um die MTU des einschränkenden Hops zu melden. Dies ist die einzige Änderung, die für Router zur Unterstützung von PMTU Discovery spezifiziert wird.

Die PMTU eines Pfades kann sich im Laufe der Zeit aufgrund von Änderungen in der Routing-Topologie ändern. Verringerungen der PMTU werden durch Datagram Too Big Nachrichten erkannt, außer auf Pfaden, für die der Host aufgehört hat, das DF-Bit zu setzen. Um Erhöhungen der PMTU eines Pfades zu erkennen, erhöht ein Host periodisch seine angenommene PMTU (und wenn er aufgehört hatte, nimmt er das Setzen des DF-Bits wieder auf). Dies führt fast immer dazu, dass Datagramme verworfen und Datagram Too Big Nachrichten generiert werden, da in den meisten Fällen die PMTU des Pfades sich nicht geändert hat, sodass dies selten durchgeführt werden sollte.

Da dieser Mechanismus im Wesentlichen garantiert, dass der Host keine Fragmente von einem Peer empfängt, der PMTU Discovery durchführt, kann er bei der Interoperation mit bestimmten Hosts helfen, die (fälschlicherweise) nicht in der Lage sind, fragmentierte Datagramme wieder zusammenzusetzen.