Invoering
We kennen allemaal het classificatie- en niet-classificatieprincipe van IP en de toepassing ervan in netwerkcommunicatie. IP-fragmentatie en -reassemblage is een belangrijk mechanisme in het proces van pakketoverdracht. 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, worden ze door het IP-reassemblagemechanisme weer samengevoegd tot complete pakketten. Dit proces van fragmentatie en reassemblage zorgt ervoor dat grote pakketten in het netwerk kunnen worden verzonden met behoud van de integriteit en betrouwbaarheid van de gegevens. In dit gedeelte gaan we dieper in op hoe IP-fragmentatie en -reassemblage werken.
IP-fragmentatie en -reconstructie
Verschillende datalinks hebben verschillende maximale transmissie-eenheden (MTU); zo heeft de FDDI-datalink 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 over het netwerk kan worden verzonden.
FDDI (Fiber Distributed Data Interface) is een hogesnelheidsstandaard voor lokale netwerken (LAN) die optische vezels als transmissiemedium gebruikt. De Maximum Transmission Unit (MTU) is de maximale pakketgrootte die door een datalinklaagprotocol kan worden verzonden. In FDDI-netwerken is de MTU 4352 bytes. Dit betekent dat de maximale pakketgrootte die door het datalinklaagprotocol in een FDDI-netwerk kan worden verzonden 4352 bytes is. Als het te verzenden pakket deze grootte overschrijdt, moet het worden gefragmenteerd om het pakket op te splitsen in meerdere fragmenten die geschikt zijn voor de MTU-grootte, zodat het bij verzending en bij de ontvanger weer kan worden samengevoegd.
Voor Ethernet is de MTU (Maximum Transmission Unit) doorgaans 1500 bytes groot. Dit betekent dat Ethernet pakketten tot 1500 bytes groot kan verzenden. Als de pakketgrootte de MTU-limiet overschrijdt, wordt het pakket gefragmenteerd in kleinere fragmenten voor verzending en vervolgens op de bestemming weer samengevoegd. Het opnieuw samenstellen van het gefragmenteerde IP-datagram kan alleen door de bestemmingshost worden uitgevoerd; de router voert deze bewerking niet uit.
We hebben het eerder al gehad over TCP-segmenten, maar MSS staat voor Maximum Segment Size en speelt een belangrijke rol in het TCP-protocol. MSS verwijst naar de maximale grootte van een datasegment dat via een TCP-verbinding verzonden mag worden. Net als MTU wordt MSS gebruikt om de grootte van pakketten te beperken, maar dan op de transportlaag, de TCP-protocollaag. Het TCP-protocol verzendt de data van de applicatielaag door de data op te delen in meerdere datasegmenten, en de grootte van elk datasegment wordt beperkt door de MSS.
De MTU (Maximum Transmission Unit) van elke datalink is verschillend, omdat elk type datalink voor verschillende doeleinden wordt gebruikt. Afhankelijk van het gebruiksdoel kunnen verschillende MTU's worden toegepast.
Stel dat de zender een groot datagram van 4000 bytes wil verzenden via een Ethernet-verbinding. Dit datagram moet dan worden opgesplitst in drie kleinere datagrammen. De grootte van elk klein datagram mag namelijk de MTU-limiet van 1500 bytes niet overschrijden. Na ontvangst van de drie kleinere datagrammen voegt de ontvanger deze weer 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 hele IP-datagram ongeldig. Om dit te voorkomen, introduceerde TCP MSS, waarbij fragmentatie plaatsvindt op de TCP-laag in plaats van op de IP-laag. Het voordeel van deze aanpak is dat TCP nauwkeurigere controle heeft over de grootte van elk segment, waardoor de problemen die gepaard gaan met fragmentatie op de IP-laag worden vermeden.
Bij UDP proberen we te voorkomen dat datapakketten groter zijn dan de MTU (Maximum Transmission Unit). Dit komt doordat UDP een verbindingsloos transportprotocol is dat geen betrouwbaarheids- en herverzendingsmechanismen biedt zoals TCP. Als we een UDP-datapakket versturen dat groter is dan de MTU, wordt het door de IP-laag gefragmenteerd voor verzending. Zodra een van de fragmenten verloren gaat, kan het UDP-protocol het pakket niet opnieuw verzenden, wat resulteert in dataverlies. Om een betrouwbare gegevensoverdracht te garanderen, moeten we daarom proberen de grootte van UDP-datapakketten binnen de MTU te houden en gefragmenteerde verzending te vermijden.
Mylinking ™ NetwerkpakketbrokerHet systeem kan automatisch verschillende soorten tunnelprotocollen herkennen, zoals VxLAN/NVGRE/IPoverIP/MPLS/GRE, enz., en kan op basis van het gebruikersprofiel en de interne of externe tunnelstroom de kenmerken ervan bepalen.
○ 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 (Ondersteuning voor identificatie van IP-fragmentatie en ondersteuning voor het opnieuw samenstellen van IP-fragmentatie om L4-filtering op alle gefragmenteerde IP-pakketten te implementeren. Implementatie van een verkeersuitvoerbeleid.)
Waarom zijn IP- en TCP-fragmentatie gefragmenteerd?
Omdat de IP-laag tijdens de netwerktransmissie het datapakket automatisch fragmenteert, zelfs als de TCP-laag dat niet doet, wordt het datapakket toch automatisch door de IP-laag gefragmenteerd en normaal verzonden. Waarom heeft TCP dan fragmentatie nodig? Is dat niet overbodig?
Stel dat een groot datapakket niet wordt gesegmenteerd 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 omdat de IP-laag zich niet bekommert om de betrouwbare overdracht van gegevens.
Met andere woorden: als de transportlaag de data fragmenteert op de verbinding tussen een machine en het netwerk, dan doet de IP-laag dat niet. Als de transportlaag geen fragmentatie uitvoert, is fragmentatie wel mogelijk op de IP-laag.
Simpel gezegd segmenteert TCP data zodat de IP-laag niet langer gefragmenteerd is. Bij herverzendingen worden slechts kleine delen van de gefragmenteerde data opnieuw verzonden. Op deze manier kunnen de transmissie-efficiëntie en -betrouwbaarheid worden verbeterd.
Als TCP gefragmenteerd is, is de IP-laag dan niet ook gefragmenteerd?
In de bovenstaande discussie hebben we vermeld dat na TCP-fragmentatie bij de afzender er geen fragmentatie meer plaatsvindt op de IP-laag. Er kunnen echter andere netwerkapparaten in de transportverbinding aanwezig zijn met een maximale transmissie-eenheid (MTU) die kleiner is dan de MTU bij de afzender. Daarom wordt het pakket, ondanks de fragmentatie bij de afzender, opnieuw gefragmenteerd wanneer het de IP-laag van deze apparaten passeert. Uiteindelijk worden alle fragmenten bij de ontvanger samengevoegd.
Als we de minimale MTU over de hele verbinding kunnen bepalen en data met die lengte verzenden, zal er geen fragmentatie optreden, ongeacht naar welk knooppunt de data wordt verzonden. Deze minimale MTU over de hele verbinding wordt de pad-MTU (PMTU) genoemd. Wanneer een IP-pakket bij een router aankomt en de MTU van de router kleiner is dan de pakketlengte en de DF-vlag (Do Not Fragment) op 1 staat, kan de router het pakket niet fragmenteren en kan het alleen maar verwerpen. In dit geval genereert de router een ICMP-foutmelding (Internet Control Message Protocol) met de tekst "Fragmentation Needed But DF Set". Deze ICMP-foutmelding wordt teruggestuurd naar het bronadres met de MTU-waarde van de router. Wanneer de afzender de ICMP-foutmelding ontvangt, kan deze de pakketgrootte aanpassen op basis van de MTU-waarde om te voorkomen dat de verboden fragmentatie zich opnieuw voordoet.
IP-fragmentatie is noodzakelijk en moet op de IP-laag worden vermeden, met name op tussenliggende apparaten in de verbinding. Daarom is in IPv6 fragmentatie van IP-pakketten door tussenliggende apparaten verboden en kan fragmentatie alleen nog 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 gebruikt een adreslengte van 128 bits, waardoor er meer IP-adressen beschikbaar zijn dan met de 32 bits van IPv4. Dit komt doordat de adresruimte van IPv4 geleidelijk uitgeput raakt, terwijl de adresruimte van IPv6 zeer groot is en kan voldoen aan de behoeften van het toekomstige internet.
IPv6 biedt niet alleen meer adresruimte, maar ook betere beveiliging en schaalbaarheid, wat betekent dat IPv6 een betere netwerkervaring kan bieden in vergelijking met IPv4.
Hoewel IPv6 al geruime tijd bestaat, verloopt de wereldwijde uitrol ervan nog steeds relatief traag. Dit komt voornamelijk doordat IPv6 compatibel moet zijn met het bestaande IPv4-netwerk, wat een overgang en migratie vereist. Door het tekort aan IPv4-adressen en de toenemende vraag naar IPv6 stappen steeds meer internetproviders en organisaties over op IPv6 en realiseren ze geleidelijk aan een dual-stack-werking met zowel IPv6 als IPv4.
Samenvatting
In dit hoofdstuk hebben we dieper ingegaan op hoe IP-fragmentatie en -reassemblage werken. Verschillende datalinks hebben verschillende Maximum Transmission Units (MTU). Wanneer de grootte van een pakket de MTU-limiet overschrijdt, verdeelt IP-fragmentatie het pakket in meerdere kleinere fragmenten voor verzending. Na aankomst op de bestemming worden deze fragmenten door het IP-reassemblagemechanisme weer samengevoegd tot één compleet pakket. Het doel van TCP-fragmentatie is om te voorkomen dat de IP-laag zelf verder fragmenteert en alleen de kleine, gefragmenteerde gegevens opnieuw verzendt, waardoor de transmissie-efficiëntie en -betrouwbaarheid worden verbeterd. Er kunnen echter andere netwerklaagapparaten in de transportlink aanwezig zijn met een MTU die kleiner is dan die van de afzender. In dat geval zal het pakket alsnog opnieuw worden gefragmenteerd 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.
Geplaatst op: 7 augustus 2025
