Die Maximum Segment Size (kurz MSS) ist eine TCP-Option, die beim Verbindungsaufbau ausgehandelt wird. Sie legt fest, wie viele Nutzdaten ein TCP-Segment maximal enthalten darf. Die MSS wird in Byte gemessen und bezieht sich auf die Empfangsrichtung: Jeder Partner teilt im SYN-Paket mit, wie groß ein eingehendes Segment bei ihm sein darf.
MSS und MTU hängen zusammen
Der natürliche Ausgangspunkt für die MSS ist die MTU des Netzes: Ein Segment muss zusammen mit seinen Headern in ein IP-Paket passen. Bei IPv4 gilt deshalb grob: MSS = MTU - 40 (20 Byte IP-Header plus 20 Byte TCP-Header). Bei einem typischen Ethernet mit einer MTU von 1500 Byte ergibt sich so eine MSS von 1460 Byte. Bei IPv6 kommen 20 Byte IPv6-Header hinzu, die Rechnung lautet MSS = MTU - 60.
Fehlt die MSS-Option, gilt laut RFC 879 ein Standardwert von 536 Byte. Die Option selbst ist 16 Bit breit und wird üblicherweise im SYN- und SYN-ACK-Segment gesendet; die maßgebliche Definition des TCP-Protokolls enthält RFC 9293.
Warum die MSS wichtig ist
Eine zu groß gewählte MSS führt dazu, dass IP-Pakete auf dem Weg fragmentiert oder verworfen werden, wenn die MTU eines Zwischenlinks kleiner ist. In Tunnel- und VPN-Szenarien wird deshalb oft MSS-Clamping eingesetzt: Der Router passt die MSS in den SYN-Paketen nach unten an.
Verwandte Grundlagen: Netzwerkpaket, TCP, Ethernet, IPv4 vs. IPv6.