Indledning
Vi kender alle principperne for klassificering og ikke-klassificering af IP og dets anvendelse i netværkskommunikation. IP-fragmentering og -gensamling er en nøglemekanisme i processen med pakketransmission. Når størrelsen af en pakke overstiger den maksimale transmissionsenhed (MTU) for et netværkslink, opdeler IP-fragmentering pakken i flere mindre fragmenter til transmission. Disse fragmenter transmitteres uafhængigt i netværket, og ved ankomst til destinationen samles de igen til komplette pakker af IP-gensamlingsmekanismen. Denne proces med fragmentering og gensamling sikrer, at store pakker kan transmitteres i netværket, samtidig med at dataenes integritet og pålidelighed sikres. I dette afsnit vil vi se nærmere på, hvordan IP-fragmentering og -gensamling fungerer.
IP-fragmentering og gensamling
Forskellige datalinks har forskellige maksimale transmissionsenheder (MTU); for eksempel har FDDI-datalinket en MTU på 4352 bytes og Ethernet-MTU på 1500 bytes. MTU står for Maximum Transmission Unit og refererer til den maksimale pakkestørrelse, der kan transmitteres over netværket.
FDDI (Fiber Distributed Data Interface) er en højhastighedsstandard for lokalnetværk (LAN), der bruger optisk fiber som transmissionsmedium. MTU (Maximum Transmission Unit) er den maksimale pakkestørrelse, der kan transmitteres via en datalink-lagsprotokol. I FDDI-netværk er størrelsen på MTU'en 4352 bytes. Det betyder, at den maksimale pakkestørrelse, der kan transmitteres via datalink-lagsprotokollen i et FDDI-netværk, er 4352 bytes. Hvis den pakke, der skal transmitteres, overstiger denne størrelse, skal den fragmenteres for at opdele pakken i flere fragmenter, der er egnede til MTU-størrelsen til transmission og gensamling hos modtageren.
For Ethernet er MTU'en typisk 1500 bytes i størrelse. Det betyder, at Ethernet kan transmittere pakker på op til 1500 bytes i størrelse. Hvis pakkestørrelsen overstiger MTU-grænsen, fragmenteres pakken i mindre fragmenter til transmission og samles igen på destinationen. Gensamling af det fragmenterede IP-datagram kan kun udføres af destinationsværten, og routeren vil ikke udføre gensamlingsoperationen.
Vi talte også om TCP-segmenter tidligere, men MSS står for Maximum Segment Size, og det spiller en vigtig rolle i TCP-protokollen. MSS refererer til størrelsen af det maksimale datasegment, der må sendes i en TCP-forbindelse. Ligesom MTU bruges MSS til at begrænse størrelsen af pakker, men det gør det på transportlaget, TCP-protokollaget. TCP-protokollen transmitterer data fra applikationslaget ved at opdele dataene i flere datasegmenter, og størrelsen af hvert datasegment er begrænset af MSS.
MTU'en for hvert datalink er forskellig, fordi hver type datalink bruges til forskellige formål. Afhængigt af formålet kan forskellige MTU'er hostes.
Antag, at afsenderen ønsker at sende et stort datagram på 4000 byte til transmission via et Ethernet-link, så datagrammet skal opdeles i tre mindre datagrammer til transmission. Dette skyldes, at størrelsen af hvert lille datagram ikke må overstige MTU-grænsen, som er 1500 bytes. Efter at have modtaget de tre små datagrammer, samler modtageren dem igen til det originale store datagram på 4000 byte baseret på sekvensnummeret og forskydningen af hvert datagram.
Ved fragmenteret transmission vil tabet af et fragment ugyldiggøre hele IP-datagrammet. For at undgå dette introducerede TCP MSS, hvor fragmentering udføres på TCP-laget i stedet for af IP-laget. Fordelen ved denne tilgang er, at TCP har mere præcis kontrol over størrelsen af hvert segment, hvilket undgår de problemer, der er forbundet med fragmentering på IP-laget.
For UDP forsøger vi at undgå at sende en datapakke, der er større end MTU'en. Dette skyldes, at UDP er en forbindelsesløs transportprotokol, som ikke tilbyder pålidelighed og retransmissionsmekanismer som TCP. Hvis vi sender en UDP-datapakke, der er større end MTU, vil den blive fragmenteret af IP-laget til transmission. Når et af fragmenterne går tabt, kan UDP-protokollen ikke retransmittere, hvilket resulterer i tab af data. For at sikre pålidelig datatransmission bør vi derfor forsøge at kontrollere størrelsen af UDP-datapakker inden for MTU'en og undgå fragmenteret transmission.
Mylinking ™ Netværkspakkemæglerkan automatisk identificere forskellige typer tunnelprotokoller som VxLAN/NVGRE/IPoverIP/MPLS/GRE osv., og kan bestemmes i henhold til brugerprofilen i henhold til tunnelflowets output af indre eller ydre egenskaber.
○ Den kan genkende VLAN-, QinQ- og MPLS-labelpakker
○ Kan identificere det indre og ydre VLAN
○ IPv4/IPv6-pakker kan identificeres
○ Kan identificere VxLAN-, NVGRE-, GRE-, IPoverIP-, GENEVE- og MPLS-tunnelpakker
○ IP-fragmenterede pakker kan identificeres (Understøtter IP-fragmenteringsidentifikation og understøtter gensamling af IP-fragmentering for at implementere L4-funktionsfiltrering på alle IP-fragmenteringspakker. Implementer trafikoutputpolitik.)
Hvorfor er IP fragmenteret og TCP fragmenteret?
Da IP-laget automatisk fragmenterer datapakken i netværkstransmissionen, vil datapakken automatisk blive fragmenteret af IP-laget og transmitteret normalt, selvom TCP-laget ikke segmenterer dataene. Så hvorfor skal TCP fragmenteres? Er det ikke overdrevet?
Antag, at der er en stor pakke, der ikke er segmenteret på TCP-laget og går tabt under transmission; TCP vil videresende den, men kun i hele den store pakke (selvom IP-laget opdeler dataene i mindre pakker, som hver især har MTU-længde). Dette skyldes, at IP-laget ikke er interesseret i pålidelig datatransmission.
Med andre ord, hvis transportlaget fragmenterer dataene på en maskines transport-til-netværksforbindelse, fragmenterer IP-laget dem ikke. Hvis fragmentering ikke udføres på transportlaget, er fragmentering mulig på IP-laget.
Kort sagt segmenterer TCP data, så IP-laget ikke længere er fragmenteret, og når der sker retransmissioner, retransmitteres kun små dele af de data, der er blevet fragmenteret. På denne måde kan transmissionseffektiviteten og pålideligheden forbedres.
Hvis TCP er fragmenteret, er IP-laget så ikke fragmenteret?
I ovenstående diskussion nævnte vi, at der efter TCP-fragmentering hos afsenderen ikke er nogen fragmentering på IP-laget. Der kan dog være andre netværkslagsenheder i hele transportforbindelsen, der kan have en maksimal transmissionsenhed (MTU), der er mindre end MTU'en hos afsenderen. Derfor, selvom pakken er blevet fragmenteret hos afsenderen, fragmenteres den igen, når den passerer gennem IP-laget på disse enheder. Til sidst vil alle shards blive samlet hos modtageren.
Hvis vi kan bestemme den minimale MTU over hele linket og sende data med den længde, vil der ikke forekomme fragmentering, uanset hvilken node dataene transmitteres til. Denne minimale MTU over hele linket kaldes stien MTU (PMTU). Når en IP-pakke ankommer til en router, og routerens MTU er mindre end pakkelængden, og DF (Do not Fragment)-flaget er indstillet til 1, vil routeren ikke være i stand til at fragmentere pakken og kan kun slippe den. I dette tilfælde genererer routeren en ICMP-fejlmeddelelse (Internet Control Message Protocol) kaldet "Fragmentation Needed But DF Set". Denne ICMP-fejlmeddelelse sendes tilbage til kildeadressen med routerens MTU-værdi. Når afsenderen modtager ICMP-fejlmeddelelsen, kan den justere pakkestørrelsen baseret på MTU-værdien for at undgå den forbudte fragmenteringssituation igen.
IP-fragmentering er en nødvendighed og bør undgås på IP-laget, især på mellemliggende enheder i linket. Derfor er fragmentering af IP-pakker af mellemliggende enheder forbudt i IPv6, og fragmentering kan kun udføres i starten og slutningen af linket.
Grundlæggende forståelse af IPv6
IPv6 er version 6 af internetprotokollen, som er efterfølgeren til IPv4. IPv6 bruger en adresselængde på 128 bit, hvilket kan give flere IP-adresser end IPv4's 32 bit. Dette skyldes, at IPv4-adresserummet gradvist udtømmes, mens IPv6-adresserummet er meget stort og kan imødekomme behovene i fremtidens internet.
Når man taler om IPv6, giver det udover mere adresseplads også bedre sikkerhed og skalerbarhed, hvilket betyder, at IPv6 kan give en bedre netværksoplevelse sammenlignet med IPv4.
Selvom IPv6 har eksisteret i lang tid, er den globale udrulning stadig relativt langsom. Dette skyldes primært, at IPv6 skal være kompatibelt med det eksisterende IPv4-netværk, hvilket kræver overgang og migrering. Men med udtømningen af IPv4-adresser og den stigende efterspørgsel efter IPv6, er flere og flere internetudbydere og organisationer gradvist ved at implementere IPv6 og realisere dual-stack-driften af IPv6 og IPv4.
Oversigt
I dette kapitel har vi set nærmere på, hvordan IP-fragmentering og -gensamling fungerer. Forskellige datalinks har forskellige maksimale transmissionsenheder (MTU). Når størrelsen på en pakke overstiger MTU-grænsen, opdeler IP-fragmentering pakken i flere mindre fragmenter til transmission og samler dem igen til en komplet pakke ved hjælp af IP-gensamlingsmekanismen efter ankomst til destinationen. Formålet med TCP-fragmentering er at forhindre IP-laget i at fragmentere og kun videresende de små data, der er blevet fragmenteret, når videresendelsen finder sted, for at forbedre transmissionseffektiviteten og pålideligheden. Der kan dog være andre netværkslagsenheder i hele transportforbindelsen, hvis MTU kan være mindre end afsenderens, så pakken stadig vil blive fragmenteret igen på IP-laget på disse enheder. Fragmentering på IP-laget bør undgås så meget som muligt, især på mellemliggende enheder i forbindelsen.
Opslagstidspunkt: 7. august 2025