Table of Contents
Maximale Segmentgröße (MSS) in TCP/IP-Netzwerken verstehen
Maximale Segmentgröße (MSS) ist ein Parameter des Optionsfelds des TCP-Headers, der die größte Datenmenge in Bytes angibt, die ein Computer oder Kommunikationsgerät in einem einzelnen TCP-Segment empfangen kann. MSS zu verstehen und richtig zu konfigurieren ist entscheidend für die Optimierung der Netzwerkleistung, die Verhinderung von Paketfragmentierung und die Gewährleistung einer zuverlässigen Datenübertragung über TCP/IP-Netzwerke. Dieser umfassende Leitfaden untersucht, was MSS ist, wie es funktioniert und die verschiedenen Methoden und Werkzeuge, die Sie verwenden können, um MSS-Werte in Ihrer Netzwerkinfrastruktur zu bestimmen und zu optimieren.
Was ist die maximale Segmentgröße (MSS)?
MSS (maximale Segmentgröße) begrenzt die Größe von Paketen oder kleinen Datenblöcken, die über ein Netzwerk wie das Internet übertragen werden. Genauer gesagt misst MSS den Nicht-Header-Teil eines Pakets, der als Nutzlast bezeichnet wird. Dies ist ein wichtiger Unterschied, da er den TCP-Header oder den IP-Header nicht zählt (im Gegensatz zum Beispiel die MTU für IP-Datagramme).
Beim TCP-Handshake wird das MSS vereinbart: Beide Geräte kommunizieren die Größe der Pakete, die sie empfangen können. Diese Verhandlung findet zu Beginn jeder TCP-Verbindung statt und der Wert kann nach dem Verbindungsaufbau nicht mehr geändert werden. Jeder Endpunkt gibt seinen eigenen MSS-Wert unabhängig an, und die Kommunikation verwendet für jede Richtung des Datenflusses das entsprechende MSS.
MSS vs. MTU: Den Unterschied verstehen
Während MSS und Maximum Transmission Unit (MTU) eng verwandte Konzepte sind, arbeiten sie auf verschiedenen Schichten des Netzwerkstapels. MSS ist eine Schicht 4 oder Transportschicht, metrisch. Es wird mit TCP, einem Transportschichtprotokoll, verwendet, ist jedoch eng mit MTU verwandt, was für Schicht 3 (die Netzwerkschicht) gilt.
Ein entscheidender Unterschied im Verhalten ist, dass ein Paket, das die MTU eines Geräts überschreitet, in kleinere Teile zerlegt wird, oder "fragmentiert". Wenn ein Paket das MSS überschreitet, wird es fallen gelassen und nicht geliefert. Dies macht eine ordnungsgemäße MSS-Konfiguration unerlässlich, um Paketverlust zu vermeiden und einen reibungslosen Netzwerkbetrieb zu gewährleisten.
Wie MSS während der TCP-Verbindungsaufbau verhandelt wird
Der MSS-Verhandlungsprozess erfolgt während des TCP-Dreiwege-Handshakes, der eine Verbindung zwischen zwei Geräten herstellt. MSS-Verhandlung erfolgt während der Anfangsphase einer TCP-Verbindung: SYN-Paket: Das einleitende Gerät sendet ein SYN-Paket mit seinem MSS-Wert. SYN-ACK-Paket: Das empfangende Gerät antwortet mit einem SYN-ACK-Paket mit seinem MSS-Wert.
Wenn ein Host die maximale Segmentgröße auf einen anderen Wert als den Standardwert festlegen möchte, wird die maximale Segmentgröße als TCP-Option angegeben, zunächst im TCP-SYN-Paket während des TCP-Handshakes.
Das MSS kann in jeder Richtung des Datenflusses völlig unabhängig verwendet werden, was zu unterschiedlichen maximalen Größen in den beiden Richtungen führen kann. Diese asymmetrische Fähigkeit ermöglicht eine optimierte Leistung in Szenarien, in denen die beiden Endpunkte unterschiedliche Netzwerkeigenschaften oder -beschränkungen haben.
Standard-MSS-Werte
Wenn während des TCP-Handshakes keine MSS-Option explizit angegeben ist, werden Standardwerte verwendet. Die Standard-TCP-Maximale Segmentgröße für IPv4 ist 536. Für IPv6 ist es 1220. Diese konservativen Standardwerte gewährleisten grundlegende Kompatibilität über verschiedene Netzwerkpfade hinweg, obwohl sie für moderne Netzwerke selten optimal sind.
Berechnung von MSS aus MTU
Der MSS-Wert wird typischerweise von der Maximum Transmission Unit (MTU) der Netzwerkschnittstelle abgeleitet, was für die korrekte Netzwerkkonfiguration und Fehlersuche unerlässlich ist.
Die grundlegende MSS Berechnungsformel
Der zu sendende MSS-Wert ist: MSS = MTU − TCPHdrLen − IPHdrLen Diese Formel berücksichtigt den Overhead, der sowohl von den TCP- als auch von den IP-Headern eingeführt wird und in jedem Paket enthalten sein muss.
TCP-Header sind fast immer 20 Byte lang. IP-Header enthalten Informationen wie die Quell- und Ziel-IP-Adresse und sie sind auch 20 Byte lang. Daher beträgt der Gesamt-Overhead für Standard-Header ohne Optionen 40 Byte.
Standard Ethernet MSS Berechnung
Bei Standard-Ethernet-Netzwerken hat ein Netzwerk-Router eine MTU von 1.500, d.h. er akzeptiert nur Pakete mit einer Länge von bis zu 1.500 Byte. Der MSS des Routers sollte auf 1.460 Byte festgelegt werden. Diese Berechnung folgt der Formel: 1500 (MTU) - 20 (IP-Header) - 20 (TCP-Header) = 1460 Byte MSS.
Mit einer MTU von 1500 Bytes und 40 Bytes für IP- und TCP-Header beträgt der typische MSS für Ethernet 1460 Bytes. Dies ist der häufigste MSS-Wert, den Sie in modernen TCP/IP-Netzwerken finden.
Buchhaltung für TCP-Optionen
Während die Grundberechnung 20-Byte-Header voraussetzt, können reale Szenarien komplexer sein. Die Größe der TCP-Optionen (variable 0-320 Bits, in Einheiten von 32 Bits) muss von der MSS-Größe abgezogen werden, wenn TCP-Optionen aktiviert sind. Beispielsweise sind TCP-Zeitstempel standardmäßig auf Linux-Plattformen aktiviert. Wenn TCP-Zeitstempel verwendet werden, sollte der maximale MSS-Wert 1460 betragen. Dieser Wert kann jedoch aufgrund der Verwendung von TCP-Zeitstempeln auf 1448 gesenkt werden.
Methoden zur Bestimmung von MSS in Ihrem Netzwerk
Es gibt verschiedene praktische Methoden und Werkzeuge, mit denen Sie die in Ihrem Netzwerk verwendeten MSS-Werte bestimmen können. Jede Methode hat ihre eigenen Vorteile und Anwendungsfälle.
Methode 1: Verwendung von Wireshark für die Paketanalyse
Wireshark ist eines der leistungsfähigsten Werkzeuge zur Analyse von TCP-Verbindungen und zur Bestimmung von MSS-Werten. Die MSS-Option findet sich nur in den SYN- und SYN/ACK-Paketen des TCP-Verbindungsaufbaus mit drei Handshakes. Dies macht es einfach, MSS-Werte im erfassten Datenverkehr zu identifizieren.
Zur Bestimmung von MSS mit Wireshark:
- Starten Sie eine Paketerfassung auf der Netzwerkschnittstelle, die Sie analysieren möchten
- Initiieren einer TCP-Verbindung (z. B. Browsen auf einer Website oder Starten einer Dateiübertragung)
- Stoppen Sie die Erfassung und Filter für TCP-Datenverkehr mit dem Filter: tcp.flags.syn == 1
- Untersuchen Sie die SYN- und SYN-ACK-Pakete im Drei-Wege-Handshake
- Erweitern Sie den Abschnitt TCP-Optionen im Bereich Paketdetails
- Suchen Sie nach der Option "Maximale Segmentgröße", die den MSS-Wert in Bytes anzeigt
MSS steht für Maximum Segment Size, das die größte Datenmenge angibt, die ein Gerät in einem einzelnen TCP-Segment empfangen kann. Das TCP-MSS beinhaltet nicht den IP-Header oder den TCP-Header. MSS wird im Drei-Wege-Handshake zwischen dem Client und dem Server zu Beginn einer TCP-Verbindung ausgehandelt.
Methode 2: Analyse von MSS-Werten in der Netzwerkleistung
Wenn man Probleme mit der Leistung löst, ist es wert, etwas weniger als 1.000 Bytes zu untersuchen. Ein Server antwortet mit einem MSS von 512, was viel kleiner ist als die 1.460, als wir erwartet hatten. Das bedeutet, dass man drei 512-Byte-Segmente anstelle von einem 1.460-Byte-Segment senden muss.
Kleine MSS-Werte können die Netzwerkeffizienz erheblich beeinflussen, indem mehr Pakete benötigt werden, um die gleiche Datenmenge zu übertragen, wodurch der Overhead erhöht und der Durchsatz potenziell reduziert wird.
Methode 3: Verwendung von Ping-Tests zur Bestimmung der Pfad-MTU
Während Ping MSS nicht direkt anzeigt, kann es Ihnen helfen, den Pfad MTU zu bestimmen, aus dem Sie das entsprechende MSS berechnen können. Sie können das Endgerät mit dem "Don't fragment"-Bit-Satz pingen. Dies funktioniert nur, wenn ICMP von allen Zwischengeräten unterstützt wird.
Um den optimalen MSS/MTU-Wert des Netzwerks zu finden, führen Sie den 'Ping-Test' durch, um die MTU zu finden, und reduzieren Sie dann 40 von diesem Wert und setzen Sie diesen als tcp-mss in der Firewall-Richtlinie. Für eine 1500-Byte-MTU, 1500-28 (20 Bytes = IP-Header und 8 Bytes = ICMP-Header) = 1472.
Unter Windows können Sie den folgenden Befehl verwenden:
ping -f -l 1472 destination_address
Unter Linux oder macOS:
ping -M do -s 1472 destination_address
Wenn das Paket fragmentiert werden muss, aber das DF-Bit gesetzt ist, ist die MTU kleiner als 1500 Bytes. Angenommen, es ist möglich, mit einer Größe von 1400, aber nicht mit einer Größe von 1401 zu pingen, bedeutet dies, dass der MTU-Wert 1400 + 28 = 1428 Bytes ist. Die Lösung besteht darin, entweder die MTU im Netzwerkgerät zu beheben oder den TCP-MSS in der Firewall-Richtlinie auf 1428-40 = 1388 Bytes zu setzen.
Methode 4: Überprüfung von Geräte- und Routerkonfigurationen
Viele Netzwerkgeräte ermöglichen es Ihnen, MSS-Einstellungen direkt anzuzeigen und zu konfigurieren. Auf Cisco-Routern können Sie beispielsweise die MTU einer Schnittstelle mit folgenden Funktionen anzeigen:
show interface [interface-name]
Dieser Befehl zeigt die aktuelle MTU-Konfiguration an, aus der Sie den erwarteten MSS-Wert berechnen können. Verschiedene Anbieter haben unterschiedliche Befehle und Konfigurationsoptionen zum Anzeigen und Anpassen dieser Parameter.
Methode 5: Verwendung von Netzwerkdiagnosetools
Mehrere spezialisierte Netzwerkdiagnose-Tools können MSS-Werte melden und bei Path MTU Discovery helfen. Sie können die PMTU- und MSS-Werte überprüfen, die jeder Agent bei der Verbindung mit einem Ziel verwendet. Tools wie ThousandEyes, PathPing und Tracepath können wertvolle Einblicke in die MSS- und MTU-Eigenschaften von Netzwerkpfaden liefern.
MSS in speziellen Netzwerkszenarien
Unterschiedliche Netzwerkkonfigurationen und -technologien erfordern besondere Berücksichtigung bei der Bestimmung und Konfiguration von MSS-Werten.
PPPoE-Netzwerke
Der PPP over Ethernet (PPPoE)-Standard unterstützt eine MTU von nur 1492 Bytes. Die Diskrepanz zwischen der Host- und der PPPoE-MTU-Größe kann dazu führen, dass der Router zwischen dem Host und dem Server 1500-Byte-Pakete fallen lässt und TCP-Sitzungen über das PPPoE-Netzwerk beendet.
Der optimale Wert für das Argument mit der maximalen Segmentgröße beträgt 1452 Bytes. Dieser Wert plus 20-Byte-IP-Header, 20-Byte-TCP-Header und 8-Byte-PPOE-Header addieren sich zu einem 1500-Byte-Paket, das der MTU-Größe für die Ethernet-Verbindung entspricht.
VPN und IPsec Tunnel
VPN-Verbindungen fügen zusätzliche Header hinzu, die den verfügbaren Datenplatz reduzieren. Bei VPNs wird MSS so angepasst, dass zusätzliche Verkapselungs-Header berücksichtigt werden, was eine Fragmentierung verhindert. Der genaue Overhead hängt von den verwendeten Verschlüsselungs- und Authentifizierungsalgorithmen ab.
Es gibt einen zusätzlichen IPSec-Header. Er hängt vom Verschlüsselungs- und Authentifizierungsalgorithmus ab. AES-256 und SHA1 haben maximal 73 Bytes, und ein anderer Algorithmus kann leicht unterschiedliche Bytes haben. Für eine 1500-Byte-MTU ist der MSS für einen TCP-über-IPSec-Tunnel 1500-20 (IP-Header) -20 (TCP-Header)-73 (IPsec-Header) = 1387.
GRE-Tunnel
Generische Routing-Verkapselungstunnel (GRE) fügen ihren eigenen Overhead hinzu. Im Falle von GRE-Tunnel wird ein 24-Byte-Header zum ursprünglichen Paket hinzugefügt, um es an ein neues Ziel zu senden. Wenn das ursprüngliche Paket größer als 1.476 Bytes war, könnte dies dazu führen, dass das neue Paket die typische MTU von 1.500 Byte überschreitet.
Für GRE-Tunnel ist der empfohlene MSS typischerweise 1436 Bytes (1500 MTU - 40 Bytes TCP/IP-Header - 24 Bytes GRE-Header = 1436 Bytes).
Jumbo Frames
Für Ethernet v2 ist die MTU 1500 Bytes, aber wenn Jumbo Frames verwendet werden, kann die MTU bis zu 9000 Bytes gehen. Wenn Jumbo-Frames über den gesamten Netzwerkpfad aktiviert sind, kann das MSS proportional erhöht werden, was eine effizientere Datenübertragung ermöglicht, indem die Anzahl der Pakete reduziert wird, die für die Übertragung großer Datenmengen benötigt werden.
Verständnis und Implementierung von MSS Clamping
MSS-Spannung ist eine Technik, die verwendet wird, um Fragmentierung und Paketverlust zu verhindern, indem der MSS-Wert, der während der TCP-Verbindungsherstellung angekündigt wird, angepasst wird.
Was ist MSS Clamping?
MSS-Spannung kann durch die Konfiguration des Servers erreicht werden, um eine MSS-Spannung anzuwenden: Während des TCP-Handshakes kann der Server dem MSS für Pakete signalisieren, die er bereit ist zu empfangen, indem er die maximale Nutzlastgröße vom anderen Server "klemmt". Diese Technik ist besonders nützlich, wenn Zwischengeräte Kapselungs-Header hinzufügen, die die effektive MTU reduzieren.
TCP MSS-Spannung ermöglicht es Ihnen, den maximalen Segmentgröße (MSS) Wert zu reduzieren, der von einer TCP-Sitzung während einer Verbindungsaufbau durch einen VPN-Tunnel verwendet wird. Netzwerkgeräte wie Router und Firewalls können TCP SYN-Pakete abfangen und die MSS-Option auf einen niedrigeren Wert ändern, der den tatsächlichen Pfadbeschränkungen entspricht.
Warum MSS Clamping notwendig ist
Gelegentlich hat ein Router entlang eines Netzwerkpfades einen MTU-Wert, der niedriger als die typischen 1.500 Bytes eingestellt ist. Dies kann zu Paketverlusten führen und kann schwierig zu entdecken sein. MSS-Spannung bietet eine proaktive Lösung für dieses Problem.
Wenn ein TCP-Datenverkehr irgendeine Art von VPN-Tunnel durchläuft, werden dem Originalpaket zusätzliche Header hinzugefügt, um es sicher zu halten. Für den IPSec-Tunnelmodus werden zusätzliche Header verwendet IP, ESP und optional UDP (wenn eine Portübersetzung im Netzwerk vorhanden ist).
Konfiguration von MSS Clamping auf verschiedenen Plattformen
Cisco IOS Router:
Verwenden Sie den Befehl ip tcp adjust-mss im Schnittstellenkonfigurationsmodus, um den MSS-Wert auf dem Zwischenrouter der SYN-Pakete zur Vermeidung von Abrunkierungen anzugeben.
interface GigabitEthernet0/0
ip tcp adjust-mss 1452
Der Befehl ip tcp adjust-mss ist nur für TCP-Verbindungen wirksam, die über den Router laufen, d.h. er arbeitet bidirektional auf den Verkehr, der die Schnittstelle durchquert.
Linux mit iptables:
Um MSS auf Pfad MTU (dynamic, recommended) zu klemmen, verwenden Sie: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN, RST SYN -j TCPMSS -clamp-mss-to-pmtu Dies passt das MSS automatisch basierend auf der Schnittstelle MTU an.
Für einen bestimmten MSS-Wert:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380
Juniper Networks:
Um die Wahrscheinlichkeit einer Fragmentierung zu verringern und vor Paketverlust zu schützen, können Sie die TCP-MSS-Größe mit der tcp-mss-Anweisung verringern.
Best Practices für MSS Clamping
- Spannung symmetrisch anwenden: MSS-Spannung an beiden Enden eines Tunnels oder einer VPN-Verbindung konfigurieren, um ein konsistentes Verhalten in beiden Richtungen zu gewährleisten
- Dynamisches Spannen verwenden, wenn möglich: Automatisches MSS-Spannen basierend auf der Schnittstelle MTU reduziert Konfigurationsfehler und passt sich Änderungen an
- Konto für alle Kapselungs-Overheads: Berechnen Sie den Gesamt-Overhead aus allen Protokollen im Pfad (VPN, Tunneling, VLAN-Tags, etc.)
- Test gründlich: Nach dem Einführen von MSS-Spannung, überprüfen Sie, ob Verbindungen ordnungsgemäß funktionieren und dass keine Fragmentierung auftritt
- Dokumentieren Sie Ihre Einstellungen: Halten Sie klare Aufzeichnungen über MSS-Klemmkonfigurationen und die Gründe für bestimmte Werte
Path MTU Discovery (PMTUD) und seine Beziehung zu MSS
Path MTU Discovery ist ein Mechanismus, der es Hosts ermöglicht, die maximale MTU entlang eines Netzwerkpfads zu bestimmen, was sich direkt auf den optimalen MSS-Wert auswirkt.
Wie PMTUD funktioniert
Um Fragmentierung zu vermeiden, führen End-Hosts typischerweise PMTUD für jedes Ziel aus oder können ICMP-Nachrichten mit dem Titel "Paket zu groß" (Standard unter Linux) verarbeiten und die maximale TCP-Segmentgröße (MSS) entsprechend anpassen.
PMTUD Herausforderungen und Einschränkungen
Leider funktioniert PMTUD nicht immer zuverlässig in realen Netzwerken. Viele Firewalls und Sicherheitsgeräte blockieren ICMP-Nachrichten, einschließlich der "Packet Too Big"-Nachrichten, auf die PMTUD angewiesen ist. Dies kann "schwarze Löcher" erzeugen, in denen Pakete ohne Benachrichtigung des Absenders stillgelegt werden.
Wenn PMTUD nicht ausgeführt werden kann, werden Sie entweder fragmentierte Pakete, fallen gelassene Pakete oder beides haben. Anstatt zu versuchen, die MTU auf dem Host selbst zu ändern, was mühsam und fehleranfällig ist, kann ein Zwischengerät TCP-Pakete inspizieren und das MSS ändern, das auf einen Wert signalisiert wird, der in die MTU des Pfades passt. Zum Beispiel, wenn es Verschlüsselung und Tunneling gibt, können Sie in einigen Szenarien fast 100 Bytes verlieren und viele Leute würden eine MTU von 1400 und MSS von 1360 in solchen Szenarien konfigurieren.
MSS Clamping als PMTUD Alternative
Eine andere (vielleicht effizientere) Technik ist die MSS-Spannung, bei der mittlere Boxen den Wert von MSS in aktiven TCP-Verbindungen tatsächlich verändern. Dieser Ansatz funktioniert auch dann, wenn ICMP blockiert ist, und bietet eine zuverlässigere Lösung zur Verhinderung von Fragmentierung in komplexen Netzwerkumgebungen.
Fehlerbehebung bei MSS-bezogenen Problemen
MSS-Fehlkonfigurationen können eine Vielzahl von Netzwerkproblemen verursachen.
Gemeinsame MSS-Probleme
Symptom: Verbindungen werden hergestellt, aber die Datenübertragung schlägt fehl oder ist sehr langsam
Dieses klassische Symptom weist oft auf eine MSS- oder MTU-Mismatch hin. Der TCP-Handshake wird erfolgreich abgeschlossen (unter Verwendung kleiner Pakete), aber wenn größere Datenpakete gesendet werden, überschreiten sie den Pfad MTU und werden fallen gelassen. Wenn das DF-Bit (nicht fragmentieren) gesetzt ist, kann das Paket fallen gelassen werden, was zu Verzögerungen oder Langsamkeit im Netzwerk führen kann.
Symptom: Einige Websites funktionieren, während andere nicht
Dies kann auftreten, wenn einige Server kleinere Pakete senden, die in den Pfad MTU passen, während andere größere Pakete senden, die fallen gelassen werden. Die Inkonsistenz macht es besonders schwierig, dies ohne Paketanalyse-Tools zu diagnostizieren.
Symptom: VPN-Verbindungen sind instabil oder langsam
VPN-Tunnel fügen Overhead hinzu, was die effektive MTU reduziert. Wenn MSS nicht angepasst wird, um diesen Overhead zu berücksichtigen, werden Pakete fragmentiert oder fallen gelassen, was zu einer schlechten Leistung oder Verbindungsausfällen führt.
Diagnoseschritte
- Erfassen und analysieren Sie TCP-Handshakes: Verwenden Sie Wireshark, um die MSS-Werte zu untersuchen, die verhandelt werden.
- Test mit verschiedenen Paketgrößen: Verwenden Sie Ping mit dem DF-Bitsatz und unterschiedlichen Paketgrößen, um den tatsächlichen Pfad MTU zu bestimmen.
- Prüfen Sie nach ICMP-Filterung: Stellen Sie sicher, dass ICMP-Nachrichten, insbesondere "Packet Too Big"-Nachrichten, die Endpunkte erreichen können.
- Überprüfe die Konfigurationen von Zwischengeräten: Überprüfen Sie Router, Firewalls und VPN-Gateways für MTU- und MSS-Einstellungen. Suchen Sie nach Fehlkonfigurationen oder fehlenden MSS-Klemmregeln.
- Testen Sie mit MSS-Spannung: MSS-Spannung mit einem konservativen Wert (z. B. 1360 Bytes) vorübergehend implementieren, um zu sehen, ob das Problem behoben wird.
Wireshark für MSS Troubleshooting
Wireshark bietet leistungsstarke Funktionen zur Diagnose von MSS-bezogenen Problemen.
- TCP-Retransmissionen: Übermäßige Retransmissionen können darauf hindeuten, dass Pakete aufgrund von MTU / MSS-Problemen fallen gelassen werden
- ICMP-Nachrichten "Fragmentierung benötigt": Diese zeigen an, dass Pakete zu groß für einen Link im Pfad sind
- Sequenznummernlücken: Fehlende Sequenznummern deuten auf Paketverlust hin, der auf übergroße Pakete zurückzuführen sein könnte.
- MSS-Werte in SYN-Paketen: Vergleichen Sie die angekündigten MSS-Werte mit dem, was Sie basierend auf der Netzwerkkonfiguration erwarten
MSS Optimierungsstrategien
Die Optimierung der MSS-Werte kann die Netzwerkleistung und -zuverlässigkeit erheblich verbessern.
Abwägung von Effizienz und Kompatibilität
Der TCP-Durchsatz wird in erster Linie durch die MSS, die Round-Trip-Zeit und die durchschnittliche Paketverlustwahrscheinlichkeit beeinflusst, wobei die Segmentgröße idealerweise so groß wie möglich eingestellt wird, um den Durchsatz zu maximieren und die Fragmentierung zu minimieren, vorausgesetzt, die Netzwerkverbindung unterstützt die erforderliche MTU.
Größere MSS-Werte verbessern die Effizienz, indem sie die Anzahl der Pakete reduzieren, die für die Datenübertragung benötigt werden, und den Overhead pro Paket minimieren, müssen jedoch gegen die Einschränkungen des Netzwerkpfads abgewogen werden, um Fragmentierung und Paketverlust zu vermeiden.
Umweltspezifische Empfehlungen
Standard-Internetverbindungen: Verwenden Sie MSS von 1460 Bytes (für 1500-Byte-MTU)
PPPoE-Verbindungen: Verwenden Sie MSS von 1452 Bytes (für 1492-Byte-MTU)
IPsec VPNs: Verwenden Sie MSS von 1360-1400 Bytes abhängig von Verschlüsselungs-Overhead
GRE-Tunnel: Verwenden Sie MSS von 1436 Bytes (für 1476-Byte effektive MTU)
Mehrere Kapselungen: Berechnen Sie den kumulativen Gemeinkosten und subtrahieren Sie von der Basis-MTU
Test und Validierung
Testen mit Path MTU Discovery (PMTUD): PMTUD hilft dabei, die kleinste MTU-Größe entlang eines Pfades zu bestimmen, um sicherzustellen, dass MSS auf die Fähigkeiten des Netzwerks ausgerichtet ist.
Nach der Implementierung von MSS-Änderungen sollten Sie verschiedene Szenarien gründlich testen, darunter:
- Große Dateiübertragungen
- Web-Browsing zu verschiedenen Websites
- Videostreaming
- VoIP oder Echtzeitkommunikation
- Anwendungsspezifische Protokolle, die in Ihrer Umgebung verwendet werden
Fortgeschrittene MSS-Konzepte
Asymmetrische MSS-Werte
MSS kann in beiden Richtungen einen unterschiedlichen Wert haben und Frames, die die MTU überschreiten, können dazu führen, dass Pakete (die Segmente einkapseln) durch die Netzwerkschicht fragmentiert werden, während Segmente, die die MSS überschreiten, einfach verworfen werden.
In der Praxis sind asymmetrische MSS-Werte üblich, wenn Geräte mit unterschiedlichen Netzwerkeigenschaften verbunden werden, wie beispielsweise ein mobiles Gerät in einem Mobilfunknetz, das mit einem Server in einem Hochgeschwindigkeits-Datenzentrumsnetz kommuniziert.
MSS und Netzwerkleistung
Der MSS-Wert beeinflusst die Datenübertragungseffizienz direkt, indem er die Datenmenge in jedem TCP-Segment begrenzt, was besonders wichtig für Netzwerke mit Einschränkungen der Paketgröße ist Die Beziehung zwischen MSS, Durchsatz und Netzwerkeffizienz ist komplex und hängt von mehreren Faktoren ab, einschließlich der Roundtrip-Zeit, der Paketverlustrate und der Engpasskontrollalgorithmen.
Die Reduzierung des MSS erhöht die Anzahl der Pakete und führt zusätzliche TCP-Header ein, was die Netzwerkeffizienz verringert, indem Bandbreite auf Headern verbraucht wird, die ursprünglich nicht benötigt wurden. Mehr Pakete bedeuten auch mehr Verarbeitung, was den Gesamtdatendurchsatz senken kann.
MSS in komplexen Netzwerktopologien
Moderne Netzwerke beinhalten oft mehrere Schichten von Verkapselung und Tunneln. Wenn zwei oder mehr Overlay-Technologien hintereinander laufen (z. B. HCX gefolgt von NSX), fügt jede Overhead hinzu. Die Ermittlung der größtmöglichen verkapselten Paketgröße aller Initiatoren hilft festzustellen, ob die gewählte MTU alle Overheads unterbringt. Wenn Overhead immer noch Fragmentierung verursacht, reduziert die Deaktivierung der doppelten Verschlüsselung (wenn nicht erforderlich) den Overhead, wodurch die Notwendigkeit einer weiteren Erhöhung der MTU minimiert wird.
In solchen Umgebungen ist eine sorgfältige Planung und Berechnung des kumulativen Gemeinkostens unerlässlich, wobei jede Schicht der Verkapselung bei der Bestimmung des geeigneten MSS-Werts berücksichtigt werden muss.
Sicherheitsüberlegungen
Während MSS in erster Linie ein Leistungs- und Kompatibilitätsparameter ist, hat es auch Sicherheitsimplikationen, die Netzwerkadministratoren beachten sollten.
MSS-basierte Angriffe
Angreifer können MSS-Handling potenziell auf verschiedene Weise ausnutzen:
- MSS-Manipulation: Bösartige Akteure könnten extrem kleine MSS-Werte anpreisen, um die Leistung zu beeinträchtigen oder Ressourcenerschöpfung zu verursachen
- Fragmentierungsangriffe: Durch die Manipulation von MSS- und MTU-Werten können Angreifer eine Fragmentierung auslösen, die zur Umgehung oder Verweigerung von Diensten verwendet werden kann.
- Fingerdruck: MSS-Werte können als Teil von OS-Fingerabdrucktechniken verwendet werden, um Systeme zu identifizieren.
Schutzmaßnahmen
- Implementieren Sie minimale MSS-Werte auf Edge-Geräten, um extrem kleine Werte zu vermeiden
- Überwachen Sie auf ungewöhnliche MSS-Muster, die auf Angriffe oder Fehlkonfigurationen hinweisen können
- Verwenden Sie Stateful Firewalls, die MSS-Werte gegen erwartete Bereiche validieren können
- Sicherstellen, dass die ICMP-Filterung legitime PMTUD-Nachrichten nicht vollständig blockiert und gleichzeitig vor ICMP-basierten Angriffen schützt
Zukünftige Entwicklungen und Überlegungen
Da sich Netzwerke weiterentwickeln, bleiben MSS-Handling und -Optimierung wichtig. Mehrere Trends prägen die Zukunft:
- IPv6-Adoption: IPv6 hat unterschiedliche Standard-MSS-Werte und Header-Größen, was aktualisierte Berechnungen und Konfigurationen erfordert.
- Erhöhte Verschlüsselung: Eine breitere Verwendung von Verschlüsselung fügt Overhead hinzu, der in MSS-Berechnungen berücksichtigt werden muss.
- Softwaredefinierte Vernetzung: SDN-Technologien ermöglichen eine dynamischere und automatisiertere MSS-Optimierung
- Cloud und Edge Computing: Vielfältige Netzwerkpfade und unterschiedliche MTU-Unterstützung erfordern flexibles MSS-Handling
- 5G und Mobilfunknetze: Mobilfunknetze haben oft unterschiedliche MTU-Eigenschaften, die optimale MSS-Werte beeinflussen
Schlussfolgerung
Die Bestimmung und Optimierung der maximalen Segmentgröße (MSS) ist ein kritischer Aspekt des TCP/IP-Netzwerkmanagements. Eine korrekte MSS-Konfiguration verhindert Fragmentierung, reduziert Paketverluste und gewährleistet eine effiziente Datenübertragung über verschiedene Netzwerkumgebungen hinweg. Durch das Verständnis der Beziehung zwischen MSS und MTU, die Verwendung geeigneter Diagnosetools wie Wireshark- und Ping-Tests und die Implementierung von MSS-Spannung, wo dies erforderlich ist, können Netzwerkadministratoren die Netzwerkleistung und -zuverlässigkeit erheblich verbessern.
Whether you're managing a simple network or a complex infrastructure with multiple layers of encapsulation, the principles outlined in this guide w