6. Common Packetization Properties (Gemeinsame Paketisierungseigenschaften)
Dieser Abschnitt beschreibt allgemeine Paketisierungsschicht-Eigenschaften und -Merkmale, die zur Implementierung von PLPMTUD benötigt werden. Er beschreibt auch einige Implementierungsprobleme, die allen Paketisierungsschichten gemeinsam sind.
6.1. Mechanismus zur Verlusterkennung
Es ist wichtig, dass die Paketisierungsschicht einen zeitnahen und robusten Mechanismus zur Erkennung und Meldung von Verlusten hat. PLPMTUD nimmt MTU-Anpassungen auf der Grundlage erkannten Verluste vor. Jede Verzögerung oder Ungenauigkeit bei der Verlustbenachrichtigung führt wahrscheinlich zu falschen MTU-Entscheidungen oder langsamer Konvergenz. Es ist wichtig, dass der Mechanismus robust zwischen dem isolierten Verlust nur einer Sondierung und anderen Verlusten in den führenden und nachfolgenden Fenstern der Sondierung unterscheiden kann.
Es ist am besten, wenn Paketisierungsprotokolle einen expliziten Verlusterkennungsmechanismus wie ein Selective Acknowledgment (SACK)-Scoreboard [RFC3517] oder ACK-Vektor [RFC4340] verwenden, um echte Verluste von neu geordneten Daten zu unterscheiden, obwohl implizite Mechanismen wie TCP Reno-Stil-Duplikat-Bestätigungszählung ausreichend sind.
PLPMTUD kann auch in Protokollen implementiert werden, die sich auf Timeouts als primären Mechanismus zur Verlustwiederherstellung verlassen; Timeouts SOLLTEN jedoch NICHT als primärer Mechanismus zur Verlustanzeige verwendet werden, es sei denn, es gibt keine anderen Alternativen.
6.2. Generierung von Sondierungen
Es gibt mehrere mögliche Möglichkeiten, Paketisierungsschichten zu ändern, um Sondierungen zu generieren. Die verschiedenen Techniken verursachen unterschiedliche Overheads in drei Bereichen: Schwierigkeit bei der Generierung des Sondierungspakets (in Bezug auf Paketisierungsschicht-Implementierungskomplexität und zusätzliche Datenbewegung), mögliche zusätzliche Netzwerkkapazität, die von den Sondierungen verbraucht wird, und der Overhead der Wiederherstellung von fehlgeschlagenen Sondierungen (sowohl Netzwerk- als auch Protokoll-Overheads).
Einige Protokolle könnten erweitert werden, um beliebiges Padding mit Dummy-Daten zu ermöglichen. Dies vereinfacht die Implementierung erheblich, da die Sondierung ohne Beteiligung höherer Schichten durchgeführt werden kann und wenn die Sondierung fehlschlägt, die fehlenden Daten (die "Sondierungslücke") sicherstellen, dass sie in den aktuellen MTU passen, wenn sie erneut übertragen werden.
Viele Paketisierungsschicht-Protokolle können reine Steuernachrichten (ohne Daten von höheren Protokollschichten) übertragen, die auf beliebige Längen aufgefüllt werden können. Zum Beispiel kann der SCTP PAD-Chunk auf diese Weise verwendet werden (siehe Abschnitt 10.2). Dieser Ansatz hat den Vorteil, dass nichts erneut übertragen werden muss, wenn die Sondierung verloren geht.
Diese Techniken funktionieren nicht für TCP, da es kein separates Längenfeld oder einen anderen Mechanismus gibt, um Padding von echten Nutzdaten zu unterscheiden. Bei TCP ist der einzige Ansatz, zusätzliche Nutzdaten in einem überdimensionierten Segment zu senden.
In einigen Fällen gibt es möglicherweise keine vernünftigen Mechanismen zur Generierung von Sondierungen innerhalb des Paketisierungsschicht-Protokolls selbst. Als letzter Ausweg kann es möglich sein, sich auf ein Zusatzprotokoll wie ICMP ECHO ("ping") zu verlassen, um Sondierungspakete zu senden.