Was ist MSS (Maximum Segment Size)?

MSS (maximale Segmentgröße) ist die größte Datenmenge, die ein Gerät von einer Netzwerkverbindung akzeptiert.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Verstehen, was ein Paket ist und was Paket-Header sind
  • Nutzlast definieren
  • Erfahren, wie man MSS basierend auf MTU berechnet

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Was ist maximale Segmentgröße (MSS)?

MSS (maximale Segmentgröße) begrenzt die Größe von Paketen oder kleinen Datenpaketen, die über ein Netzwerk, z. B. das Internet, übertragen werden. Alle Daten, die über ein Netzwerk übertragen werden, sind in Pakete unterteilt. An die Pakete sind mehrere Header angehängt, die Informationen über ihren Inhalt und ihr Ziel enthalten. MSS misst den Teil eines Pakets, der nicht zum Header gehört und als Payload bezeichnet wird.

Wenn man ein Datenpaket mit einem Lkw vergleicht, wobei der Header der Lkw selbst und der Payload der Anhänger und die Fracht ist, dann ist MSS wie eine Waage, die nur den Anhänger misst. Wenn der Anhänger zu viel wiegt, darf der Lkw nicht weiter zu seinem Ziel fahren.

Genauer gesagt ist MSS die größte TCP (Transport Control Protocol)-Segmentgröße, die ein mit dem Netzwerk verbundenes Gerät empfangen kann. MSS definiert „Segment“ nur als die Länge des Payloads, nicht aber als angehängte Header. MSS wird in Bytes gemessen.

Paket-Header und Nutzlast von Datenpaketen – TCP-Segment und MSS

Die MSS wird durch eine andere Metrik bestimmt, die mit der Paketgröße zu tun hat: MTU oder die maximale Übertragungseinheit, zu der auch die TCP- und IP (Internet Protocol)-Header gehören. Um die Analogie fortzusetzen: MTU misst das Gesamtgewicht des Lkws, seines Anhängers und der Ladung, anstatt nur das des Anhängers und der Ladung.

Im Wesentlichen ist die MSS gleich der MTU minus der Größe eines TCP-Headers und eines IP-Headers:

MTU - (TCP-Header + IP-Header) = MSS

Einer der Hauptunterschiede zwischen MTU und MSS besteht darin, dass ein Paket, das die MTU eines Geräts überschreitet, in kleinere Teile zerlegt, also „fragmentiert“ wird. Wenn ein Paket dagegen die MSS überschreitet, wird es verworfen und nicht zugestellt.

Was ist TCP? Was ist ein TCP-Header?

Das Transport Control Protocol, kurz TCP, ist ein Protokoll, das sicherstellt, dass Datenpakete in der richtigen Reihenfolge zugestellt und empfangen werden, ohne dass Pakete verloren gehen. Stellen Sie sich vor, ein Paketdienst würde alle Empfänger vor der Auslieferung der Pakete anrufen, um sich zu vergewissern, dass sie zu einer bestimmten Zeit zu Hause sind, und nach der Zustellung eine Nachricht an den Absender schicken, um den Empfang der Pakete zu bestätigen. TCP funktioniert in etwa so, wobei die Datenpakete die „Pakete“ sind, die zugestellt werden.

TCP öffnet eine Verbindung zwischen den beiden Geräten, die über einen Prozess namens TCP-Handshake kommunizieren. Die MSS wird während des TCP-Handshakes vereinbart: Beide Geräte kommunizieren die Größe der Pakete, die sie empfangen können (dies kann als „MSS-Clamping“ bezeichnet werden; siehe unten). TCP fügt allen Paketen einen Header hinzu, um anzugeben, zu welcher offenen Verbindung jedes Paket gehört und in welcher Reihenfolge die Pakete gesendet werden.

Wie lang sind TCP- und IP-Header?

TCP-Header sind fast immer 20 Byte* lang. IP-Header enthalten Informationen wie die Quell- und Ziel-IP-Adresse und sind ebenfalls 20 Byte lang. Sowohl TCP- als auch IP-Pakete enthalten optionale Header-Felder, die die Header länger machen können, aber diese werden fast nie verwendet.

*In der Informatik ist ein Byte eine Speichereinheit, die acht binäre Ziffern repräsentiert; mit anderen Worten, eine Kombination aus acht Einsen und Nullen.

TCP MSS Beispiel

Angenommen, ein Netzwerk-Router hat eine MTU von 1.500, d. h. er akzeptiert nur Pakete mit einer Länge von bis zu 1.500 Byte. (Längere Pakete werden fragmentiert.) Auf welchen Wert sollte die MSS für den Router eingestellt werden?

MTU - (TCP-Header + IP-Header) = MSS

1.500 - (20 + 20) = 1.460

Die MSS des Routers sollte auf 1.460 Bytes eingestellt sein. Pakete mit einer Nutzdatengröße von mehr als 1.460 Byte werden verworfen. (Ein Gerät könnte versehentlich ein zu großes Paket wie dieses senden, wenn es die MTU- und MSS-Einstellungen der Router zwischen ihm und einem anderen Gerät nicht kennt. Ein Prozess namens Pfad-MTU-Ermittlung hilft, solche Vorfälle zu vermeiden).

Welche Auswirkungen hat die Verwendung von IPsec auf MSS?

IPsec (Internet Protocol Security) ist die verschlüsselte Version von IP. Datenpakete, die mit IPsec gesendet werden, sind verschlüsselt, sodass nur die beiden angeschlossenen Geräte sie interpretieren können, sodass der Inhalt der Nutzdaten vor jedem geschützt ist, der die Pakete abfangen könnte. IPsec wird häufig zur Einrichtung von virtuellen privaten Netzwerken (VPNs) verwendet.

IPsec fügt der Länge eines Pakets ein paar Bytes hinzu. Bei Verbindungen, die diese Verschlüsselung verwenden, muss MSS auch IPsec berücksichtigen:

MTU - (TCP-Header + IP-Header + IPsec) = MSS

Ist MSS eine Metrik auf Netzwerkebene oder auf Transportebene?

MSS ist eine Metrik der Ebene 4, der Transportebene. Sie wird mit TCP, einem Protokoll der Transportebene, verwendet. Sie ist jedoch eng mit der MTU verwandt, die für die Ebene 3 (die Netzwerkebene) gilt.

Was ist MSS Clamping?

Gelegentlich hat ein Router entlang eines Netzwerkpfades einen MTU-Wert, der niedriger als die typischen 1.500 Bytes ist. Dies kann zu Paketverlusten führen und schwer zu entdecken sein.

Damit die Pakete auch in diesem Fall ihr Ziel erreichen, können Sie die Größe der Nutzlast der eingehenden Pakete reduzieren. Dazu konfigurieren Sie den Server so, dass er eine „MSS-Klemme“ anwendet: Während des TCP-Handshakes kann der Server die MSS für Pakete mitteilen, die er zu empfangen bereit ist, und so die maximale Größe der Nutzlast des anderen Servers „klemmen“. Wenn beispielsweise die Server A und B eine TCP-Verbindung aufbauen und Server B eine MSS von 1.436 Byte übermittelt, sendet Server A für die Dauer der Verbindung Pakete mit einer maximalen Nutzlast von 1.436 Byte.

Eine weitere Anwendung von MSS Clamping ist das GRE Tunneling. Dabei wird dem ursprünglichen Paket ein 24 Byte großer Header hinzugefügt, um es an ein neues Ziel zu senden. Wenn das ursprüngliche Paket größer als 1.476 Byte war, könnte dies dazu führen, dass das neue Paket die typische MTU von 1.500 Byte überschreitet. Mit MSS Clamping können Sie festlegen, dass eingehende Pakete auch nach dem GRE-Header kleiner als 1.500 Byte sein müssen.

Weitere Informationen zu MTU und MSS finden Sie unter Was ist MTU?