Zum Hauptinhalt springen

3.1 TCP MSS Option (TCP MSS Option)

3.1 TCP MSS Option (TCP MSS Option)

Ein Host, der PMTU Discovery durchführt, muss der Regel gehorchen, dass er keine IP-Datagramme größer als 576 Oktette sendet, es sei denn, er hat die Erlaubnis vom Empfänger. Für TCP-Verbindungen bedeutet dies, dass ein Host keine Datagramme senden darf, die größer sind als 40 Oktette plus die Maximum Segment Size (maximale Segmentgröße, MSS), die von seinem Peer gesendet wurde.

Hinweis: Die TCP MSS ist definiert als die relevante IP-Datagrammgröße minus 40 [9]. Der Standardwert von 576 Oktetten für die maximale IP-Datagrammgröße ergibt einen Standardwert von 536 Oktetten für die TCP MSS.

Abschnitt 4.2.2.6 von "Requirements for Internet Hosts -- Communication Layers" (Anforderungen für Internet-Hosts -- Kommunikationsschichten) [1] besagt:

Einige TCP-Implementierungen senden eine MSS-Option nur, wenn der Ziel-Host sich in einem nicht verbundenen Netzwerk befindet. Im Allgemeinen hat die TCP-Schicht jedoch möglicherweise nicht die geeigneten Informationen, um diese Entscheidung zu treffen, daher ist es vorzuziehen, der IP-Schicht die Aufgabe zu überlassen, eine geeignete MTU für den Internet-Pfad zu bestimmen.

Tatsächlich senden viele TCP-Implementierungen immer eine MSS-Option, setzen den Wert jedoch auf 536, wenn das Ziel nicht lokal ist. Dieses Verhalten war korrekt, als das Internet voll von Hosts war, die nicht der Regel folgten, dass Datagramme größer als 576 Oktette nicht an nicht lokale Ziele gesendet werden sollten. Jetzt, da die meisten Hosts dieser Regel folgen, ist es unnötig, den Wert in der TCP MSS Option auf 536 für nicht lokale Peers zu begrenzen.

Darüber hinaus verhindert dies, dass PMTU Discovery PMTUs größer als 576 entdeckt, daher SOLLTEN Hosts den Wert, den sie in der MSS-Option senden, nicht mehr senken. Die MSS-Option sollte 40 Oktette weniger sein als die Größe des größten Datagramms, das der Host wieder zusammensetzen kann (MMS_R, wie in [1] definiert); in vielen Fällen wird dies die architektonische Grenze von 65495 (65535 - 40) Oktetten sein. Ein Host KANN einen MSS-Wert senden, der von der MTU seines verbundenen Netzwerks abgeleitet ist (die maximale MTU über seine verbundenen Netzwerke, für einen Multi-Homed-Host); dies sollte keine Probleme für PMTU Discovery verursachen und kann einen fehlerhaften Peer davon abhalten, enorme Datagramme zu senden.

Hinweis: Im Moment sehen wir keinen Grund, eine MSS größer als die maximale MTU der verbundenen Netzwerke zu senden, und wir empfehlen, dass Hosts 65495 nicht verwenden. Es ist durchaus möglich, dass einige IP-Implementierungen Vorzeichenbit-Bugs haben, die durch unnötige Verwendung einer so großen MSS ausgelöst würden.