Fachbegriffe

Last change on 2025-04-25 • Created on 2025-04-25 • ID: CL-BA7C3

Paketgrößen, MTU und MSS

Um Daten zwischen zwei verschiedenen Systemen zu übermitteln, werden Pakete verwendet. Die maximale Paketgröße, die über ein Netzwerk übertragen werden kann (Maximum Transmission Unit — MTU) hängt von den zugrunde liegenden Netzwerkkapazitäten ab.

Wenn ein Paket über unser Hetzner Netzwerk übertragen wird, erhält dieses von uns zusätzliche Header, um es von anderen Netzwerken unterscheiden zu können.

Dadurch ergeben sich folgende Limits für Pakete, die über unsere privaten Netzwerke übertragen werden:

Paket in Privatem Netzwerk (HTTP, FTP)
50 Bytes
20 Bytes
20 Bytes
1410 Bytes (MSS)
Priv. Netzwerk
Header
IP Header
TCP Header
User Data / Payload

1450 Bytes (MTU)

Paket in Privatem Netzwerk (ping)
50 Bytes
20 Bytes
8 Bytes
1422 Bytes (ICMP payload)
Priv. Netzwerk
Header
IP Header
ICMP Header
User Data / Payload

1450 Bytes (MTU)

Wenn ein Paket über mehrere verschiedene Schnittstellen übermittelt wird und der MTU-Wert des Pakets weniger oder gleich dem Limit ist, wird es weitergeleitet. Wenn der MTU-Wert des Paket größer ist als das Limit erlaubt, wird das System versuchen IP-Fragmentierung durchzuführen. Wenn das scheitert, wird das Paket verworfen.

Die Paketkonfiguration für eine öffentliche Schnittstelle, die Schnittstelle der Docker-Bridge oder andere Schnittstellen, sieht meist so aus:

Beachten Sie die unterschiedlichen Werte für MSS und MTU im Vergleich zum privaten Netzwerk.

Paket in Öffentlichem Netzwerk (HTTP, FTP)
20 Bytes
20 Bytes
1460 Bytes (MSS)
IP Header
TCP Header
User Data / Payload

1500 Bytes (MTU)

Paket in Öffentlichem Netzwerk (ping)
20 Bytes
8 Bytes
1472 Bytes (ICMP payload)
IP Header
ICMP Header
User Data / Payload

1500 Bytes (MTU)

Path MTU Discovery (PMTUD)

Path MTU Discovery ist ein Systemmechanismus, der dabei hilft die maximale Paketgröße zu bestimmen, die ohne Fragmentierung an ein bestimmtes Ziel übermittelt werden kann.

Wenn ein Paket verworfen wird, weil es zu groß ist und eine ICMP-Fehlermeldung mit der korrekten MTU auslöst, lernt PMTUD die MTU für dieses Ziel und verwendet diese für künftige Pakete. Wenn das nächste Paket weiterhin zu groß ist, da eine andere Zwischenstelle im Pfad eine noch kleinerer MTU besitzt, wird das Paket erneut verworfen und löst eine weitere ICMP-Meldung aus. PMTUD wiederholt diesen Prozess, bis es die kleinste erforderliche MTU für den gesamten Pfad zwischen der Quelle und dem Ziel findet.

Wenn das System keine ICMP-Meldung empfängt oder die Meldung keine MTU enthält, schlägt PMTUD fehl und große Pakete werden weiterhin verworfen. Das kann beispielsweise passieren, wenn das lokale System oder ein Router innerhalb des Paketpfads ICMP-Paket verwirft.

MSS Clamping

Zum Initialisieren der TCP-Verbindung, übermittelt der Client (Sender) ein TCP-SYN-Paket an den Server (Empfänger), das seinen lokalen Wert für MSS enthält. Der Server kennt nun seinen eigenen lokalen MSS-Wert und den Wert, der im TCP-SYN-Paket vom Client angegebenen wurde. Der Server hält sich bei allen Antwortpaketen an den kleineren der beiden Werte. Zusätzlich sendet der Server seinen eigenen lokalen MSS-Wert an den Client.

  • Das TCP-SYN-Paket übermittelt standardmäßig einen MSS-Wert, welcher der MTU von der Schnittstelle entspricht, über die das Paket gesendet wird.
  • Wenn Sie MSS Clamping aktivieren, können Sie einen festen Wert bestimmen, der anstelle vom Default verwendet werden soll.
Table of Contents