Zum Hauptinhalt springen

5.4. Packetization Layer Actions (Aktionen der Paketisierungsschicht)

Eine Paketisierungsschicht (z.B. TCP) muss die PMTU für den/die von einer Verbindung verwendeten Pfad(e) verwenden. Sie sollte keine Segmente senden, die zu Paketen führen würden, die größer sind als die PMTU, außer zum Proben während der PMTU Discovery (dieses Probe-Paket darf nicht zur PMTU fragmentiert werden). Eine einfache Implementierung könnte die IP-Schicht bei jeder Erstellung eines neuen Segments nach diesem Wert fragen, dies könnte jedoch ineffizient sein. Eine Implementierung cached typischerweise andere Werte, die von der PMTU abgeleitet sind. Es kann einfacher sein, eine asynchrone Benachrichtigung zu erhalten, wenn sich die PMTU ändert, damit diese Variablen ebenfalls aktualisiert werden können.

Eine TCP-Implementierung muss auch den Maximum Segment Size (MSS)-Wert speichern, der von ihrem Peer empfangen wurde, der das EMTU_R darstellt, das größte Paket, das vom Empfänger wieder zusammengesetzt werden kann, und darf kein Segment senden, das größer ist als dieses MSS, unabhängig von der PMTU.

Der Wert, der in der TCP MSS-Option gesendet wird, ist unabhängig von der PMTU. Er wird durch das Reassemblierungs-Limit des Empfängers EMTU_R bestimmt. Dieser MSS-Optionswert wird vom anderen Ende der Verbindung verwendet, das möglicherweise einen nicht verwandten PMTU-Wert verwendet. Siehe Abschnitt 5, "Packet Size Issues", und Abschnitt 8.3, "Maximum Upper-Layer Payload Size", von [RFC8200] für Informationen zur Auswahl eines Werts für die TCP MSS-Option.

Der Empfang einer Packet Too Big-Nachricht impliziert, dass ein Paket von dem Knoten verworfen wurde, der die ICMPv6-Nachricht gesendet hat. Ein zuverlässiges oberes Schichtprotokoll wird diesen Verlust durch seine eigenen Mittel erkennen und ihn durch seine normalen Retransmissions-Methoden wiederherstellen. Die Retransmission könnte je nach der vom oberen Schichtprotokoll verwendeten Verlusterkennungsmethode zu einer Verzögerung führen. Wenn der Path MTU Discovery-Prozess mehrere Schritte erfordert, um die PMTU des vollständigen Pfades zu finden, könnte dies die Retransmission um viele Round-Trip-Zeiten verzögern.

Alternativ könnte die Retransmission als unmittelbare Reaktion auf eine Benachrichtigung durchgeführt werden, dass die Path MTU verringert wurde, jedoch nur für die spezifische Verbindung, die in der Packet Too Big-Nachricht angegeben ist. Die in der Retransmission verwendete Paketgröße sollte nicht größer sein als die neue PMTU.

Hinweis: Eine Paketisierungsschicht, die feststellt, dass ein Probe-Paket verloren gegangen ist, muss die Segmentgröße der Retransmission anpassen. Die Verwendung der gemeldeten Größe in der letzten Packet Too Big-Nachricht kann jedoch zu weiteren Verlusten führen, da es möglicherweise kleinere PMTU-Limits an den Routern weiter entlang des Pfades gibt. Dies würde zum Verlust aller retransmittierten Segmente führen und daher unnötige Überlastung sowie zusätzliche Pakete verursachen, die jedes Mal gesendet werden, wenn ein neuer Router eine kleinere MTU ankündigt. Jede Paketisierungsschicht, die Retransmission verwendet, ist daher auch für die Congestion Control ihrer Retransmissionen verantwortlich [RFC8085].

Ein Verlust, der durch ein PMTU-Probe verursacht wurde und durch den Empfang einer Packet Too Big-Nachricht angezeigt wurde, darf nicht als Congestion-Benachrichtigung betrachtet werden, und daher darf sich das Congestion-Window nicht ändern.