Table of Contents
Begrijpen van de maximale segmentgrootte (MSS) in TCP/IP-netwerken
Maximale segmentgrootte (MSS) is een parameter van het veld Opties van de TCP-header die de grootste hoeveelheid gegevens, gespecificeerd in bytes, specificeert die een computer of communicatieapparaat kan ontvangen in een enkel TCP-segment. Het begrijpen en correct configureren van MSS is cruciaal voor het optimaliseren van de netwerkprestaties, het voorkomen van fragmentatie van pakketten en het garanderen van betrouwbare dataoverdracht over TCP/IP-netwerken. Deze uitgebreide gids onderzoekt wat MSS is, hoe het werkt, en de verschillende methoden en tools die u kunt gebruiken om MSS-waarden in uw netwerkinfrastructuur te bepalen en te optimaliseren.
Wat is de maximale segmentgrootte (MSS)?
MSS (maximale segmentgrootte) beperkt de grootte van pakketten, of kleine stukjes data, die over een netwerk reizen, zoals het internet. Meer specifiek, MSS meet het niet-header gedeelte van een pakket, dat de lading wordt genoemd. Dit is een belangrijk onderscheid omdat het niet de TCP header of de IP header (in tegenstelling tot bijvoorbeeld de MTU voor IP datagrams) telt.
De MSS wordt overeengekomen tijdens de TCP-handshake: beide apparaten communiceren de grootte van de pakketten die ze kunnen ontvangen. Deze onderhandeling vindt plaats aan het begin van elke TCP-verbinding en de waarde kan niet worden gewijzigd nadat de verbinding is ingesteld. Elk eindpunt kondigt onafhankelijk van elkaar zijn eigen MSS-waarde aan, en de communicatie gebruikt de juiste MSS voor elke richting van de datastroom.
MSS vs. MTU: Het verschil begrijpen
Terwijl MSS en Maximale Transmissie Unit (MTU) nauw met elkaar verbonden concepten zijn, werken ze op verschillende lagen van de netwerkstapel. MSS is een laag 4, of transportlaag, metrisch. Het wordt gebruikt met TCP, een transportlaag protocol. Echter, het is nauw verwant met MTU, die van toepassing is op laag 3 (de netwerklaag).
Een cruciaal verschil in gedrag is dat als een pakket de MTU van een apparaat overschrijdt, het in kleinere stukken wordt opgedeeld, of "fragmenteerd." Als een pakketje de MSS overschrijdt, wordt het gedropt en niet geleverd. Dit maakt een goede MSS configuratie essentieel om pakketverlies te voorkomen en zorgen voor soepele netwerkbewerkingen.
Hoe MSS wordt onderhandeld tijdens TCP Connection Establishment
Het MSS-onderhandelingsproces vindt plaats tijdens de TCP-driewegshanddruk, die een verbinding tussen twee apparaten tot stand brengt. MSS-onderhandeling vindt plaats tijdens de eerste fase van een TCP-verbinding: SYN Packet: Het initiator stuurt een SYN-pakket met zijn MSS-waarde. SYN-ACK Packet: Het ontvangende apparaat reageert met een SYN-ACK-pakket met zijn MSS-waarde.
Wanneer een host de maximale segmentgrootte op een andere waarde dan de standaard wil instellen, wordt de maximale segmentgrootte opgegeven als een TCP-optie, aanvankelijk in het TCP SYN-pakket tijdens de TCP-handshake. Dit aankondigingsmechanisme laat elk eindpunt toe om zijn ontvangstmogelijkheden aan de andere kant te communiceren.
De MSS kan volledig onafhankelijk worden gebruikt in elke richting van de datastroom. Het resultaat kan heel verschillende maximumgroottes in de twee richtingen zijn. Deze asymmetrische mogelijkheid maakt geoptimaliseerde prestaties in scenario's waar de twee eindpunten verschillende netwerkkenmerken of beperkingen hebben.
Standaard MSS-waarden
Wanneer geen MSS-optie expliciet wordt opgegeven tijdens de TCP-handshake, worden standaardwaarden gebruikt. De standaard TCP Maximale Segmentgrootte voor IPv4 is 536. Voor IPv6 is het 1220. Deze conservatieve standaardwaarden zorgen voor basiscompatibiliteit over verschillende netwerkpaden, hoewel ze zelden optimaal zijn voor moderne netwerken.
Berekenen van MSS van MTU
De MSS-waarde is meestal afgeleid van de maximale transmissieeenheid (MTU) van de netwerkinterface. Het begrijpen van deze relatie is essentieel voor een goede netwerkconfiguratie en probleemoplossing.
De basisformule voor MSS-berekening
De MSS waarde die u moet verzenden is: MSS = MTU − TCPHdrLen − IPHdrLen Deze formule is verantwoordelijk voor de overhead die zowel door de TCP als IP headers wordt geïntroduceerd en die in elk pakket moet worden opgenomen.
TCP-headers zijn bijna altijd 20 bytes lang. IP-headers bevatten informatie zoals het bron- en bestemmings IP-adres, en ze zijn ook 20 bytes lang. Daarom, voor standaard headers zonder opties, is de totale overhead 40 bytes.
Standaard Ethernet MSS-berekening
Voor standaard Ethernet-netwerken heeft een netwerkrouter een MTU van 1500, wat betekent dat hij alleen pakketten tot 1500 bytes lang accepteert. De router moet ingesteld worden op 1,460 bytes. Deze berekening volgt de formule: 1500 (MTU) - 20 (IP header) - 20 (TCP header) = 1460 bytes MSS.
Met een MTU van 1500 bytes en 40 bytes voor IP- en TCP-headers is de typische MSS voor Ethernet 1460 bytes. Dit is de meest voorkomende MSS-waarde die je tegenkomt in moderne TCP/IP-netwerken.
Boekhouding van TCP-opties
Terwijl de basisberekening uitgaat van 20-byte headers, kunnen real-world scenario's complexer zijn. TCP-optiesgrootte (Variabele 0/3 bits, in eenheden van 32 bits) moeten worden afgetrokken van MSS-grootte als TCP-opties zijn ingeschakeld. Bijvoorbeeld, TCP-tijdstempels zijn standaard ingeschakeld op Linux-platforms. Wanneer TCP-tijdstempels worden gebruikt, moet de maximale MSS-waarde 1460 zijn. Deze waarde kan echter worden verlaagd tot 1448 vanwege TCP-tijdstempels die worden gebruikt.
Methoden om MSS te bepalen in uw netwerk
Er zijn verschillende praktische methoden en tools die u kunt gebruiken om de MSS-waarden te bepalen die in uw netwerk worden gebruikt. Elke methode heeft zijn eigen voordelen en gebruikscases.
Methode 1: Gebruik van Wireshark voor Packet Analyse
Wireshark is een van de krachtigste tools voor het analyseren van TCP-verbindingen en het bepalen van MSS-waarden. De MSS-optie is alleen te vinden in de SYN- en SYN/ACK-pakketten van de TCP-verbindingsinstelling met driewegshandshake. Dit maakt het eenvoudig om MSS-waarden in vastgelegd verkeer te identificeren.
Om MSS te bepalen met behulp van Wireshark:
- Start een pakketopname op de netwerkinterface die u wilt analyseren
- Start een TCP-verbinding (zoals het doorbladeren naar een website of het starten van een bestandsoverdracht)
- Stop de opname en filter voor TCP-verkeer met behulp van het filter: tcp.flags.syn == 1
- Bekijk de SYN- en SYN-ACK-pakketten in de drieweghanddruk
- De TCP-opties sectie in het pakketdetailpaneel uitbreiden
- Zoek naar de optie "Maximum segmentgrootte," die de MSS-waarde in bytes zal weergeven
MSS staat voor Maximale Segment Size die de grootste hoeveelheid gegevens die een apparaat in één TCP-segment kan ontvangen specificeert. De TCP MSS bevat geen IP-header of TCP-header. MSS wordt op drie manieren handshake tussen de client en de server aan het begin van een TCP-verbinding onderhandeld.
Methode 2: Analyse van MSS-waarden in netwerkprestaties
U kunt de MSS waarde voor inzicht in netwerkprestaties analyseren en zien hoe efficiënt data wordt overgedragen. Bij het oplossen van problemen met prestaties is iets minder dan 1000 bytes de moeite waard. Een server reageert met een MSS van 512, wat veel kleiner is dan de 1.460 dan we verwachtten. Dit betekent dat u drie 512-byte segmenten moet sturen in plaats van één 1.460-byte segment.
Kleine MSS-waarden kunnen de efficiëntie van het netwerk aanzienlijk beïnvloeden door meer pakketten te verlangen om dezelfde hoeveelheid gegevens door te geven, de overhead te verhogen en de doorvoer mogelijk te verminderen.
Methode 3: Met behulp van Ping-tests om het pad MTU te bepalen
Terwijl ping niet direct MSS toont, kan het u helpen om het pad MTU te bepalen, waaruit u het juiste MSS kunt berekenen. U kunt het eindapparaat pingen met de "niet fragmenteren" bitset. Dit werkt alleen als ICMP wordt ondersteund door alle tussenliggende apparaten.
Om de optimale MSS/MTU waarde van het netwerk te vinden, doe je de 'ping test' om de MTU te vinden, en verminder je 40 van die waarde en zet je dat als tcp-mss in het firewall beleid. Voor een 1500-byte MTU, 1500-28 (20 bytes=IP header en 8 bytes=ICMP header) = 1472.
Op Windows kunt u het volgende commando gebruiken:
ping -f -l 1472 destination_address
Op Linux of macOS:
ping -M do -s 1472 destination_address
Als het pakket gefragmenteerd moet worden maar de DF bit is ingesteld, is de MTU minder dan 1500 bytes. Stel dat het mogelijk is om te pingen met een grootte van 1400 maar niet met een grootte van 1401 betekent dit dat de MTU waarde 1400+28=1428 bytes is. De oplossing is ofwel om de MTU in het netwerkapparaat te repareren ofwel om de MSS in het firewallbeleid te zetten op 1428-40=1388 bytes.
Methode 4: Controle van configuraties van apparaat en router
Met veel netwerkapparaten kunt u MSS-instellingen direct bekijken en configureren. Op Cisco-routers kunt u bijvoorbeeld de MTU van een interface bekijken met behulp van:
show interface [interface-name]
Dit commando toont de huidige MTU configuratie, waarvan u de verwachte MSS waarde kunt berekenen. Verschillende leveranciers hebben verschillende commando's en configuratie opties voor het bekijken en aanpassen van deze parameters.
Methode 5: Gebruik van netwerk Kenmerkende Hulpmiddelen
Verschillende gespecialiseerde netwerk kenmerkende tools kunnen MSS waarden rapporteren en helpen met Path MTU Discovery. U kunt de PMTU en MSS waarden controleren die elk agent gebruikt bij het verbinden met een doel. Tools zoals ThousandEyes, PathPing en trakepath kunnen waardevolle inzichten geven in de MSS en MTU kenmerken van netwerkpaden.
MSS in speciale netwerkscenario's
Verschillende netwerkconfiguraties en -technologieën vereisen speciale aandacht bij het bepalen en configureren van MSS-waarden.
PPPoE-netwerken
De PPP over Ethernet (PPPoE) standaard ondersteunt een MTU van slechts 1492 bytes. De verschillen tussen de host en PPPoE MTU grootte kunnen ervoor zorgen dat de router tussen de host en de server 1500-byte pakketten laat vallen en TCP sessies via het PPPoE netwerk beëindigt.
De optimale waarde voor het argument van max-segment-grootte is 1452 bytes. Deze waarde plus de 20-byte IP header, de 20-byte TCP header en de 8-byte PPPoE header tellen samen tot een 1500-byte pakket dat overeenkomt met de MTU-grootte voor de Ethernet link.
VPN- en IPsec-tunnels
VPN-verbindingen voegen extra headers toe die de beschikbare ruimte voor data verminderen. In VPN's wordt MSS aangepast om rekening te houden met extra inkapselingskoppen, waardoor versnippering wordt voorkomen. De exacte overhead hangt af van de gebruikte encryptie- en authenticatiealgoritmen.
Er is een extra IPSec header. Het hangt af van de encryptie en authenticatie algoritme. De AES-256 en SHA1 hebben een maximum van 73 bytes, en een ander algoritme kan iets anders bytes hebben. Voor een 1500-byte MTU, de MSS voor een TCP over IPSec tunnel is 1500-20 (IP header) -20 (TCP header)-73 (IPsec header) = 1387.
GRE-tunnels
Generieke Routing Encapsulation (GRE) tunnels voegen hun eigen overhead toe. In het geval van GRE tunneling wordt een 24-byte header toegevoegd aan het oorspronkelijke pakket om het naar een nieuwe bestemming te sturen. Als het oorspronkelijke pakket groter was dan 1.476 bytes, zou dit het nieuwe pakket de typische 1500-byte MTU kunnen doen overschrijden.
Voor GRE tunnels is de aanbevolen MSS typisch 1436 bytes (1500 MTU - 40 bytes TCP/IP headers - 24 bytes GRE header = 1436 bytes).
Jumbo-frames
Voor Ethernet v2 is de MTU 1500 bytes, maar als Jumbo Frames worden gebruikt kan de MTU tot 9000 bytes oplopen. Wanneer jumbo frames zijn ingeschakeld over het gehele netwerkpad, kan de MSS proportioneel worden verhoogd, waardoor een efficiëntere gegevensoverdracht mogelijk is door het aantal pakketten te verminderen dat nodig is om grote hoeveelheden gegevens te verzenden.
Begrip en uitvoering van MSS-klemmen
MSS-klemmen is een techniek die wordt gebruikt om fragmentatie en pakketverlies te voorkomen door de MSS-waarde aan te passen die tijdens de TCP-verbindingsinstelling wordt geadverteerd.
Wat is MSS Klemmen?
MSS-klemmen kunnen worden bereikt door de server te configureren om een MSS-klem toe te passen: tijdens de TCP-handshake kan de server de MSS voor pakketten die hij wil ontvangen, "klemmen" de maximale payloadgrootte van de andere server. Deze techniek is vooral nuttig wanneer tussenapparaten inkapselingkoppen toevoegen die de effectieve MTU verminderen.
Met TCP MSS-klemmen kunt u de maximale segmentgrootte (MSS) waarde die een TCP-sessie tijdens een verbindingsinstelling gebruikt, verminderen via een VPN-tunnel. Netwerkapparaten zoals routers en firewalls kunnen TCP SYN-pakketten onderscheppen en de MSS-optie aanpassen aan een lagere waarde die de werkelijke padbeperkingen omvat.
Waarom MSS Klemmen is noodzakelijk
Af en toe heeft een router langs een netwerkpad een MTU-waarde die lager is dan de typische 1500 bytes. Dit kan leiden tot pakketverlies en kan moeilijk te ontdekken zijn. MSS-klemmen biedt een proactieve oplossing voor dit probleem.
Wanneer een TCP-verkeer door eender welke VPN-tunnel gaat, worden extra headers toegevoegd aan het oorspronkelijke pakket om het veilig te houden. Voor IPSec tunnelmodus zijn extra headers gebruikt IP, ESP en optioneel UDP (als er een port vertaling aanwezig is in het netwerk).Door deze extra headers gaat de grootte van het ingekapselde pakket verder dan de MTU van de VPN-interface.
MSS-klemmen op verschillende platforms instellen
Cisco IOS-routers:
Gebruik het commando ip tcp adjust-mss in interfaceconfiguratiemodus om de MSS-waarde op de tussenliggende router van de SYN-pakketten op te geven om afknotting te voorkomen. Het commando wordt toegepast in interfaceconfiguratiemodus:
interface GigabitEthernet0/0
ip tcp adjust-mss 1452
Het commando ip tcp adjust-mss is alleen effectief voor TCP-verbindingen die door de router gaan. Dit betekent dat het tweerichtingsverkeer door de interface loopt.
Linux met iptables:
Om MSS te klemmen naar pad MTU (dynamisch, aanbevolen), gebruik: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu Dit past de MSS automatisch aan op basis van de interface MTU.
Voor een specifieke MSS-waarde:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380
Junipernetwerken:
Om de kans op fragmentatie te verminderen en te beschermen tegen pakketverlies, kunt u de TCP MSS-grootte verlagen met behulp van de tcp-mss-statement. Configuratie wordt gedaan op het interface- of routeringsniveau, afhankelijk van het platform.
Beste praktijken voor MSS-klemmen
- Symmetrisch aansluiten toepassen: MSS-klemmen aan beide uiteinden van een tunnel of VPN-verbinding instellen om consistent gedrag in beide richtingen te garanderen
- Gebruik dynamische klemvorming indien mogelijk: Automatische MSS-klem op basis van interface MTU vermindert configuratiefouten en past zich aan wijzigingen aan
- Account voor alle inkapseling overhead: Bereken de totale overhead van alle protocollen op het pad (VPN, tunneling, VLAN-tags, enz.)
- Test grondig: Na het implementeren van MSS-klemmen, controleren of verbindingen goed werken en dat er geen fragmentatie optreedt
- Documenteer uw instellingen: Houd duidelijke gegevens bij van MSS-klemconfiguraties en de redenen voor specifieke waarden
Pad MTU Discovery (PMTUD) en de relatie met MSS
Path MTU Discovery is een mechanisme waarmee hosts de maximale MTU langs een netwerkpad kunnen bepalen, wat direct van invloed is op de optimale MSS waarde.
Hoe werkt PMTUD?
Om versnippering te voorkomen, voeren eindhosts meestal PMTUD uit voor elke bestemming, of kunnen ICMP "Packet too big" berichten verwerken (standaard op Linux), en passen de maximale TCP segmentgrootte (MSS) dienovereenkomstig aan. Het proces omvat het verzenden van pakketten met de Don't Fragment (DF) bit set en het luisteren naar ICMP foutmeldingen die aangeven wanneer een pakket te groot is voor een link in het pad.
PMTUD-uitdagingen en beperkingen
Helaas werkt PMTUD niet altijd betrouwbaar in echte netwerken. Veel firewalls en beveiligingsapparaten blokkeren ICMP-berichten, waaronder de "Packet Too Big" berichten waarop PMTUD vertrouwt. Dit kan "zwarte gaten" creëren waar pakketten zonder enige kennisgeving aan de afzender worden gedumpt.
Wanneer PMTUD niet kan worden uitgevoerd, zul je eindigen met ofwel gefragmenteerde pakketten, gevallen pakketten, of beide. In plaats van te proberen om de MTU op de host zelf te veranderen, die vervelend en foutgevoelig is, kan een tussenapparaat TCP pakketten inspecteren en de MSS aanpassen die wordt aangegeven aan een waarde die past binnen de MTU van het pad. Bijvoorbeeld, als er encryptie en tunneling, je kunt bijna 100 bytes verliezen in sommige scenario's en veel mensen zouden een MTU van 1400 en MSS van 1360 configureren in dergelijke scenario's.
MSS-klemmen als PMTUD alternatief
Een andere (misschien efficiëntere) techniek is het vastklemmen van MSS, waarbij middenboxen de waarde van MSS in actieve TCP-verbindingen daadwerkelijk veranderen. Deze aanpak werkt zelfs wanneer ICMP geblokkeerd wordt en biedt een betrouwbaardere oplossing om versnippering in complexe netwerkomgevingen te voorkomen.
Problemen oplossen met MSS-gerelateerde problemen
Misconfiguraties van MSS kunnen verschillende netwerkproblemen veroorzaken. Begrijpen hoe deze problemen te identificeren en op te lossen is essentieel voor netwerkbeheerders.
Vaak voorkomende MSS-problemen
Symptoom: Verbindingen maken maar dataoverdracht mislukt of verloopt erg traag
Dit klassieke symptoom geeft vaak een MSS of MTU mismatch aan. De TCP handshake is succesvol voltooid (met kleine pakketten), maar wanneer grotere datapakketten worden verzonden, overschrijden ze het pad MTU en worden ze laten vallen. Als de DF (niet fragmenteren) bit is ingesteld, dan kan het pakket worden gedropt, wat vertragingen of traagheid in het netwerk kan veroorzaken.
Symptoom: Sommige websites werken terwijl anderen niet werken
Dit kan optreden wanneer sommige servers kleinere pakketten sturen die passen binnen het pad MTU terwijl anderen grotere pakketten sturen die vallen. De inconsistentie maakt het bijzonder moeilijk om te diagnosticeren zonder pakketanalyse tools.
Symptoom: VPN-verbindingen zijn onstabiel of traag
VPN tunnels voegen overhead toe die de effectieve MTU vermindert. Als MSS niet wordt aangepast om rekening te houden met deze overhead, zullen pakketten worden gefragmenteerd of gedaald, waardoor slechte prestaties of verbinding storingen.
Diagnostische stappen
- Capture en analyseer TCP handshakes: Gebruik Wireshark om de MSS-waarden waarover onderhandeld wordt te onderzoeken. Zoek naar ongewoon kleine MSS-waarden of mismatches tussen de twee richtingen.
- Probeer met verschillende pakketgroottes: Gebruik ping met de DF-bitset en verschillende pakketgroottes om het werkelijke pad MTU te bepalen.
- Controleer of ICMP filtering: Controleer of ICMP berichten, met name "Packet Too Big" berichten, de eindpunten kunnen bereiken. Geblokkeerde ICMP kan voorkomen dat PMTUD werkt.
- Review intermediaire apparaatconfiguraties: Controleer routers, firewalls en VPN-gateways voor MTU- en MSS-instellingen. Kijk voor foutieve configuraties of ontbrekende MSS-klemregels.
- Test met MSS-klem: Tijdelijk MSS-klemming met een conservatieve waarde (zoals 1360 bytes) implementeren om te zien of het probleem oplost.
Gebruik van Wireshark voor MSS-problemen oplossen
Wireshark biedt krachtige mogelijkheden voor het diagnosticeren van MSS-gerelateerde problemen. Belangrijkste dingen om te zoeken zijn:
- TCP-doorzendingen: Overmatige doorgiften kunnen erop wijzen dat pakketten worden geschrapt vanwege MTU/MSS-problemen
- ICMP "Fragmentation Need" messages: Deze geven aan dat pakketten te groot zijn voor een koppeling in het pad
- Seksuele getallen hiaten: Ontbrekende volgnummers suggereren pakketverlies, wat te wijten zou kunnen zijn aan oversized pakketten
- MSS-waarden in SYN-pakketten: Vergelijk de geadverteerde MSS-waarden met wat u verwacht op basis van de netwerkconfiguratie
MSS Optimalisatie Strategieën
Het optimaliseren van MSS-waarden kan de netwerkprestaties en betrouwbaarheid aanzienlijk verbeteren. Hier zijn belangrijke strategieën te overwegen.
Balancering van efficiëntie en compatibiliteit
TCP doorvoer wordt voornamelijk beïnvloed door de MSS, round-trip tijd en gemiddelde pakket verlies waarschijnlijkheid, met de segment grootte ideaal ingesteld zo groot mogelijk om de doorvoer te maximaliseren en fragmentatie te minimaliseren, mits de netwerklink ondersteunt de vereiste MTU.
Grotere MSS-waarden verbeteren de efficiëntie door het aantal pakketten dat nodig is om gegevens over te dragen en het minimaliseren van de overhead van per pakje. Echter, ze moeten worden afgewogen tegen de beperkingen van het netwerkpad om versnippering en pakketverlies te voorkomen.
Milieuspecifieke aanbevelingen
Standaard internetverbindingen: Gebruik MSS van 1460 bytes (voor 1500-byte MTU)
PPPoE-verbindingen: Gebruik MSS van 1452 bytes (voor 1492-byte MTU)
IPsec VPN's: Gebruik MSS van 1360-1400 bytes afhankelijk van de encryptie overhead
GRE tunnels: Gebruik MSS van 1436 bytes (voor 1476-byte effectieve MTU)
Multipele inkapsels: Bereken cumulatieve overhead en trek af van basis MTU
Testen en valideren
Testen met Path MTU Discovery (PMTUD): PMTUD helpt bij het bepalen van de kleinste MTU-grootte langs een pad, zodat MSS wordt afgestemd op de mogelijkheden van het netwerk. Configureren MSS Clamping: Routers en firewalls kunnen MSS-klemmen gebruiken om MSS-waarden dynamisch aan te passen, en netwerkbeperkingen te ondersteunen.
Na de implementatie van MSS veranderingen, grondig testen van verschillende scenario's, waaronder:
- Grote bestandsoverdrachten
- Web browsen naar verschillende sites
- Videostreaming
- VoIP of real-time communicatie
- Toepassingsspecifieke protocollen die in uw omgeving worden gebruikt
Geavanceerde MSS-concepten
Asymmetrische MSS-waarden
MSS kan een andere waarde hebben in beide richtingen en dat frames die de MTU overschrijden, ervoor kunnen zorgen dat pakketten (die segmenten inkapselen) gefragmenteerd worden door de netwerklaag, terwijl segmenten die de MSS overschrijden gewoon worden weggegooid. Deze asymmetrie maakt het mogelijk om elk eindpunt te optimaliseren voor zijn eigen netwerkvoorwaarden en mogelijkheden.
In de praktijk zijn asymmetrische MSS-waarden gebruikelijk bij het verbinden van apparaten met verschillende netwerkkenmerken, zoals een mobiel apparaat op een mobiel netwerk dat communiceert met een server op een high-speed datacenternetwerk.
MSS en netwerkprestaties
De MSS-waarde beïnvloedt de efficiëntie van gegevensoverdracht direct door de hoeveelheid gegevens in elk TCP-segment te beperken, wat vooral belangrijk is voor netwerken met beperkingen op pakketgrootte. De relatie tussen MSS, doorvoer en netwerkefficiëntie is complex en hangt af van meerdere factoren, waaronder ronde-triptijd, pakketverlies en congestiecontrolealgoritmen.
Het verminderen van de MSS verhoogt het aantal pakketten en introduceert extra TCP headers, die de netwerkefficiëntie verminderen door bandbreedte te verbruiken op headers die oorspronkelijk niet nodig waren. Meer pakketten betekenen ook meer verwerking, wat de totale datadoorvoer kan verlagen. Daarom is het belangrijk om de optimale MSS waarde voor uw specifieke netwerkomgeving te vinden.
MSS in Complex Network Topologieën
Moderne netwerken omvatten vaak meerdere lagen van inkapseling en tunneling. Als twee of meer overlay technologieën in volgorde (bijv. HCX gevolgd door NSX), elk voegt overhead. Identificeert de grootst mogelijke ingekapselde pakketgrootte van alle initiators helpt bepalen of de gekozen MTU geschikt is voor alle overheads. Als overhead nog steeds fragmentatie veroorzaakt, het uitschakelen van dubbele encryptie (wanneer niet vereist) vermindert overhead, waardoor de noodzaak om MTU verder te verhogen minimaliseren.
In dergelijke omgevingen is een zorgvuldige planning en berekening van cumulatieve overhead essentieel. Elke inkapselinglaag moet worden verantwoord bij het bepalen van de MSS-waarde.
Veiligheidsoverwegingen
Hoewel MSS in de eerste plaats een prestatie- en compatibiliteitsparameter is, heeft het ook beveiligingsimplicaties die netwerkbeheerders moeten kennen.
MSS-gebaseerde aanvallen
Aanvallers kunnen MSS-behandeling op verschillende manieren benutten:
- MSS manipulatie: Slechte actoren zouden extreem kleine MSS waarden kunnen adverteren om prestaties te degraderen of uitputting van hulpbronnen te veroorzaken
- Fragmentatieaanvallen: Door MSS- en MTU-waarden te manipuleren, kunnen aanvallers fragmentatie veroorzaken die kan worden gebruikt voor het ontwijken of ontkennen van diensten
- Fingerprinting: MSS-waarden kunnen worden gebruikt als onderdeel van OS-printingtechnieken om systemen te identificeren
Beschermende maatregelen
- Minimum MSS-waarden op randapparatuur implementeren om extreem kleine waarden te voorkomen
- Monitor voor ongebruikelijke MSS patronen die aanvallen of verkeerde configuraties kunnen aangeven
- Gebruik stateful firewalls die MSS waarden kunnen valideren ten opzichte van verwachte bereiken
- Zorg ervoor dat ICMP-filtering legitieme PMTUD-berichten niet volledig blokkeert terwijl ze nog steeds beschermd worden tegen ICMP-gebaseerde aanvallen
Toekomstige ontwikkelingen en overwegingen
Naarmate netwerken blijven evolueren, zullen MSS-behandeling en optimalisatie belangrijk blijven. Verschillende trends vormen de toekomst:
- IPv6 adoptie: IPv6 heeft verschillende standaard MSS-waarden en headergroottes, waarvoor bijgewerkte berekeningen en configuraties vereist zijn
- Verhoogde encryptie: Meer wijdverspreid gebruik van encryptie voegt overhead toe die moet worden verantwoord in MSS berekeningen
- Software-gedefinieerde netwerk: SDN-technologieën maken dynamischere en geautomatiseerde MSS-optimalisatie mogelijk
- Wild en rand computing: Diverse netwerkpaden en wisselende MTU-ondersteuning vereisen flexibele MSS-behandeling
- 5G en mobiele netwerken: Mobiele netwerken hebben vaak verschillende MTU-kenmerken die de optimale MSS-waarden beïnvloeden
Conclusie
Het bepalen en optimaliseren van de maximale segmentgrootte (MSS) is een cruciaal aspect van TCP/IP netwerkbeheer. Een goede MSS-configuratie voorkomt fragmentatie, vermindert pakketverlies en zorgt voor efficiënte dataoverdracht over diverse netwerkomgevingen. Door de relatie tussen MSS en MTU te begrijpen, met behulp van geschikte diagnosetools zoals Wireshark en ping-tests, en door het waar nodig implementeren van MSS-klemmen, kunnen netwerkbeheerders de netwerkprestaties en betrouwbaarheid aanzienlijk verbeteren.
Whether you're managing a simple network or a complex infrastructure with multiple layers of encapsulation, the principles outlined in this guide w