Invoering
We kennen allemaal het principe van classificatie en non-classificatie van IP en de toepassing ervan in netwerkcommunicatie. IP-fragmentatie en -herassemblage vormen een belangrijk mechanisme in het proces van pakketverzending. Wanneer de grootte van een pakket de maximale transmissie-eenheid (MTU) van een netwerkverbinding overschrijdt, splitst IP-fragmentatie het pakket op in meerdere kleinere fragmenten voor verzending. Deze fragmenten worden onafhankelijk van elkaar in het netwerk verzonden en bij aankomst op de bestemming door het IP-herassemblagemechanisme weer samengevoegd tot complete pakketten. Dit proces van fragmentatie en herassemblage zorgt ervoor dat grote pakketten in het netwerk kunnen worden verzonden, terwijl de integriteit en betrouwbaarheid van de gegevens gewaarborgd blijven. In deze sectie gaan we dieper in op hoe IP-fragmentatie en -herassemblage werken.
IP-fragmentatie en -herassemblage
Verschillende datalinks hebben verschillende Maximum Transmission Units (MTU's); de FDDI-datalink heeft bijvoorbeeld een MTU van 4352 bytes en de Ethernet MTU van 1500 bytes. MTU staat voor Maximum Transmission Unit en verwijst naar de maximale pakketgrootte die via het netwerk kan worden verzonden.
FDDI (Fiber Distributed Data Interface) is een snelle LAN-standaard (Local Area Network) die glasvezel als transmissiemedium gebruikt. De Maximum Transmission Unit (MTU) is de maximale pakketgrootte die kan worden verzonden via een datalinklaagprotocol. In FDDI-netwerken is de grootte van de MTU 4352 bytes. Dit betekent dat de maximale pakketgrootte die kan worden verzonden via het datalinklaagprotocol in een FDDI-netwerk 4352 bytes is. Als het te verzenden pakket deze grootte overschrijdt, moet het worden gefragmenteerd om het te splitsen in meerdere fragmenten die geschikt zijn voor de MTU-grootte voor verzending en herassemblage bij de ontvanger.
Voor Ethernet is de MTU doorgaans 1500 bytes groot. Dit betekent dat Ethernet pakketten tot 1500 bytes kan verzenden. Als de pakketgrootte de MTU-limiet overschrijdt, wordt het pakket voor verzending in kleinere fragmenten gefragmenteerd en op de bestemming weer samengevoegd. Het opnieuw samenstellen van het gefragmenteerde IP-datagram kan alleen door de bestemmingshost worden uitgevoerd; de router zal deze bewerking niet uitvoeren.
We hebben het eerder ook al gehad over TCP-segmenten, maar MSS staat voor Maximum Segment Size (Maximale Segmentgrootte) en speelt een belangrijke rol in het TCP-protocol. MSS verwijst naar de grootte van het maximale datasegment dat via een TCP-verbinding mag worden verzonden. Net als MTU wordt MSS gebruikt om de pakketgrootte te beperken, maar dit gebeurt op de transportlaag, de TCP-protocollaag. Het TCP-protocol verzendt de data van de applicatielaag door deze te verdelen in meerdere datasegmenten, en de grootte van elk datasegment wordt beperkt door de MSS.
De MTU van elke datalink is anders, omdat elk type datalink voor verschillende doeleinden wordt gebruikt. Afhankelijk van het gebruiksdoel kunnen verschillende MTU's worden gehost.
Stel dat de verzender een groot datagram van 4000 bytes wil verzenden via een Ethernet-verbinding. Het datagram moet dan worden opgesplitst in drie kleinere datagrammen. Dit komt doordat de grootte van elk klein datagram de MTU-limiet van 1500 bytes niet mag overschrijden. Na ontvangst van de drie kleine datagrammen, voegt de ontvanger ze samen tot het oorspronkelijke grote datagram van 4000 bytes op basis van het volgnummer en de offset van elk datagram.
Bij gefragmenteerde transmissie maakt het verlies van een fragment het volledige IP-datagram ongeldig. Om dit te voorkomen, introduceerde TCP MSS, waarbij fragmentatie plaatsvindt op de TCP-laag in plaats van door de IP-laag. Het voordeel van deze aanpak is dat TCP de grootte van elk segment nauwkeuriger kan bepalen, waardoor de problemen die gepaard gaan met fragmentatie op de IP-laag worden vermeden.
Voor UDP proberen we geen datapakketten te verzenden die groter zijn dan de MTU. Dit komt doordat UDP een verbindingsloos transportprotocol is, dat geen betrouwbaarheid en hertransmissiemechanismen biedt zoals TCP. Als we een UDP-datapakket verzenden dat groter is dan de MTU, wordt het door de IP-laag gefragmenteerd voor transmissie. Zodra een van de fragmenten verloren gaat, kan het UDP-protocol niet meer hertransmissie uitvoeren, wat resulteert in dataverlies. Om betrouwbare datatransmissie te garanderen, moeten we daarom proberen de grootte van UDP-datapakketten binnen de MTU te beperken en gefragmenteerde transmissie te voorkomen.
Mylinking ™ Netwerkpakketbrokerkan automatisch verschillende soorten tunnelprotocollen identificeren VxLAN/NVGRE/IPoverIP/MPLS/GRE, enz., kan worden bepaald op basis van het gebruikersprofiel op basis van de tunnelstroomuitvoer van interne of externe kenmerken.
○ Het kan VLAN-, QinQ- en MPLS-labelpakketten herkennen
○ Kan de interne en externe VLAN identificeren
○ IPv4/IPv6-pakketten kunnen worden geïdentificeerd
○ Kan VxLAN-, NVGRE-, GRE-, IPoverIP-, GENEVE- en MPLS-tunnelpakketten identificeren
○ Gefragmenteerde IP-pakketten kunnen worden geïdentificeerd (ondersteunt identificatie van IP-fragmentatie en ondersteunt het opnieuw samenstellen van IP-fragmentatie om L4-functiefiltering op alle IP-fragmentatiepakketten te implementeren. Implementeert beleid voor verkeersuitvoer.)
Waarom zijn IP en TCP gefragmenteerd?
Omdat de IP-laag bij netwerktransmissie het datapakket automatisch fragmenteert, zelfs als de TCP-laag de data niet segmenteert, wordt het datapakket automatisch door de IP-laag gefragmenteerd en normaal verzonden. Waarom heeft TCP dan fragmentatie nodig? Is dat niet overdreven?
Stel dat er een groot pakket is dat niet gesegmenteerd is op de TCP-laag en tijdens de overdracht verloren gaat; TCP zal het opnieuw verzenden, maar alleen in zijn geheel (hoewel de IP-laag de gegevens opsplitst in kleinere pakketten, elk met een MTU-lengte). Dit komt doordat de IP-laag zich niet bekommert om de betrouwbare gegevensoverdracht.
Met andere woorden: als de transportlaag de gegevens fragmenteert op de transport-naar-netwerkverbinding van een machine, fragmenteert de IP-laag deze niet. Als er geen fragmentatie plaatsvindt op de transportlaag, is fragmentatie mogelijk op de IP-laag.
Simpel gezegd segmenteert TCP gegevens zodat de IP-laag niet langer gefragmenteerd is en bij hertransmissies slechts kleine delen van de gefragmenteerde gegevens opnieuw worden verzonden. Op deze manier kunnen de transmissie-efficiëntie en -betrouwbaarheid worden verbeterd.
Als TCP gefragmenteerd is, is de IP-laag dan niet gefragmenteerd?
In de bovenstaande bespreking hebben we aangegeven dat er na TCP-fragmentatie bij de verzender geen fragmentatie meer plaatsvindt op de IP-laag. Er kunnen zich echter andere netwerklaagapparaten in de transportverbinding bevinden met een maximale transmissie-eenheid (MTU) die kleiner is dan de MTU bij de verzender. Hoewel het pakket bij de verzender gefragmenteerd is, wordt het dus opnieuw gefragmenteerd wanneer het de IP-laag van deze apparaten passeert. Uiteindelijk worden alle shards bij de ontvanger samengevoegd.
Als we de minimale MTU voor de gehele verbinding kunnen bepalen en gegevens met die lengte kunnen verzenden, zal er geen fragmentatie optreden, ongeacht naar welk knooppunt de gegevens worden verzonden. Deze minimale MTU voor de gehele verbinding wordt de pad-MTU (PMTU) genoemd. Wanneer een IP-pakket bij een router aankomt, kan de router het pakket niet fragmenteren en alleen verwijderen als de MTU van de router kleiner is dan de pakketlengte en de DF-vlag (Do not Fragment) op 1 staat. In dat geval genereert de router een ICMP-foutmelding (Internet Control Message Protocol) met de naam "Fragmentation Needed But DF Set". Deze ICMP-foutmelding wordt teruggestuurd naar het bronadres met de MTU-waarde van de router. Wanneer de verzender de ICMP-foutmelding ontvangt, kan hij de pakketgrootte aanpassen op basis van de MTU-waarde om de verboden fragmentatiesituatie te voorkomen.
IP-fragmentatie is een noodzaak en moet worden vermeden op de IP-laag, met name op tussenliggende apparaten in de verbinding. Daarom is in IPv6 fragmentatie van IP-pakketten door tussenliggende apparaten verboden en kan fragmentatie alleen plaatsvinden aan het begin en einde van de verbinding.
Basiskennis van IPv6
IPv6 is versie 6 van het internetprotocol en de opvolger van IPv4. IPv6 maakt gebruik van een adreslengte van 128 bits, waarmee meer IP-adressen kunnen worden aangeboden dan de 32 bits van IPv4. Dit komt doordat de IPv4-adresruimte geleidelijk opraakt, terwijl de IPv6-adresruimte zeer groot is en kan voldoen aan de behoeften van het toekomstige internet.
Als we het over IPv6 hebben, betekent dit dat het niet alleen meer adresruimte biedt, maar ook betere beveiliging en schaalbaarheid. Dit betekent dat IPv6 een betere netwerkervaring kan bieden vergeleken met IPv4.
Hoewel IPv6 al lang bestaat, verloopt de wereldwijde implementatie ervan nog steeds relatief traag. Dit komt vooral doordat IPv6 compatibel moet zijn met het bestaande IPv4-netwerk, wat transitie en migratie vereist. Door de schaarste aan IPv4-adressen en de toenemende vraag naar IPv6, stappen steeds meer internetproviders en organisaties geleidelijk over op IPv6 en realiseren ze geleidelijk de dual-stack-functionaliteit van IPv6 en IPv4.
Samenvatting
In dit hoofdstuk hebben we dieper ingegaan op hoe IP-fragmentatie en -herassemblering werken. Verschillende datalinks hebben verschillende Maximum Transmission Unit (MTU). Wanneer de grootte van een pakket de MTU-limiet overschrijdt, verdeelt IP-fragmentatie het pakket in meerdere kleinere fragmenten voor verzending. Deze worden na aankomst op de bestemming weer samengevoegd tot een compleet pakket via het IP-herassembleringsmechanisme. Het doel van TCP-fragmentatie is ervoor te zorgen dat de IP-laag niet langer fragmenteert en alleen de kleine hoeveelheid data die bij hertransmissie gefragmenteerd is, opnieuw verzendt. Dit verbetert de transmissie-efficiëntie en -betrouwbaarheid. Er kunnen zich echter andere netwerklaagapparaten in de transportlink bevinden waarvan de MTU kleiner is dan die van de verzender, waardoor het pakket alsnog opnieuw gefragmenteerd wordt op de IP-laag van deze apparaten. Fragmentatie op de IP-laag moet zoveel mogelijk worden vermeden, met name op tussenliggende apparaten in de link.
Plaatsingstijd: 7 augustus 2025