Dekryptering av IP-fragmentering og reassemblering: Mylinking™ Network Packet Broker identifiserer IP-fragmenterte pakker

Introduksjon

Vi kjenner alle prinsippene om klassifisering og ikke-klassifisering i IP og dets anvendelse i nettverkskommunikasjon. IP-fragmentering og reassemblering er en nøkkelmekanisme i prosessen med pakkeoverføring. Når størrelsen på en pakke overstiger den maksimale overføringsenheten (MTU) for en nettverkskobling, deler IP-fragmentering pakken inn i flere mindre fragmenter for overføring. Disse fragmentene overføres uavhengig i nettverket, og ved ankomst til destinasjonen settes de sammen igjen til komplette pakker av IP-reassemble-mekanismen. Denne prosessen med fragmentering og reassemblering sikrer at store pakker kan overføres i nettverket samtidig som dataenes integritet og pålitelighet sikres. I denne delen skal vi se nærmere på hvordan IP-fragmentering og reassemblering fungerer.

IP-fragmentering og reassemblering

Ulike datalinker har forskjellige maksimale overføringsenheter (MTU); for eksempel har FDDI-datalinken en MTU på 4352 byte og Ethernet-MTU på 1500 byte. MTU står for Maximum Transmission Unit og refererer til den maksimale pakkestørrelsen som kan overføres over nettverket.

FDDI (Fiber Distributed Data Interface) er en standard for høyhastighets lokalnettverk (LAN) som bruker optisk fiber som overføringsmedium. MTU (Maximum Transmission Unit) er den maksimale pakkestørrelsen som kan overføres av en datalink-lagsprotokoll. I FDDI-nettverk er størrelsen på MTU 4352 byte. Dette betyr at den maksimale pakkestørrelsen som kan overføres av datalink-lagsprotokollen i FDDI-nettverk er 4352 byte. Hvis pakken som skal overføres overstiger denne størrelsen, må den fragmenteres for å dele pakken inn i flere fragmenter som er egnet for MTU-størrelse for overføring og reassemblering hos mottakeren.

For Ethernet er MTU vanligvis 1500 byte i størrelse. Dette betyr at Ethernet kan overføre pakker på opptil 1500 byte i størrelse. Hvis pakkestørrelsen overstiger MTU-grensen, fragmenteres pakken i mindre fragmenter for overføring og settes sammen på nytt på destinasjonen. Reassemblering av det fragmenterte IP-datagrammet kan bare utføres av destinasjonsverten, og ruteren vil ikke utføre reassembleringsoperasjonen.

Vi snakket også om TCP-segmenter tidligere, men MSS står for Maximum Segment Size, og det spiller en viktig rolle i TCP-protokollen. MSS refererer til størrelsen på det maksimale datasegmentet som er tillatt å sende i en TCP-forbindelse. I likhet med MTU brukes MSS til å begrense størrelsen på pakker, men det gjør det på transportlaget, TCP-protokolllaget. TCP-protokollen overfører dataene fra applikasjonslaget ved å dele dataene inn i flere datasegmenter, og størrelsen på hvert datasegment er begrenset av MSS.

MTU-en til hver datalink er forskjellig fordi hver type datalink brukes til forskjellige formål. Avhengig av bruksformålet kan forskjellige MTU-er driftes.

Anta at avsenderen ønsker å sende et stort datagram på 4000 byte for overføring over en Ethernet-kobling, så datagrammet må deles inn i tre mindre datagrammer for overføring. Dette er fordi størrelsen på hvert lille datagram ikke kan overstige MTU-grensen, som er 1500 byte. Etter å ha mottatt de tre små datagrammene, setter mottakeren dem sammen igjen til det opprinnelige store datagrammet på 4000 byte basert på sekvensnummeret og forskyvningen til hvert datagram.

 IP-fragmentering og reassemblering

Ved fragmentert overføring vil tapet av et fragment ugyldiggjøre hele IP-datagrammet. For å unngå dette introduserte TCP MSS, hvor fragmentering gjøres på TCP-laget i stedet for av IP-laget. Fordelen med denne tilnærmingen er at TCP har mer presis kontroll over størrelsen på hvert segment, noe som unngår problemene forbundet med fragmentering på IP-laget.

For UDP prøver vi å ikke sende en datapakke som er større enn MTU. Dette er fordi UDP er en forbindelsesløs transportprotokoll, som ikke tilbyr pålitelighet og retransmisjonsmekanismer som TCP. Hvis vi sender en UDP-datapakke som er større enn MTU, vil den bli fragmentert av IP-laget for overføring. Når et av fragmentene går tapt, kan ikke UDP-protokollen sende på nytt, noe som resulterer i tap av data. For å sikre pålitelig dataoverføring bør vi derfor prøve å kontrollere størrelsen på UDP-datapakkene innenfor MTU og unngå fragmentert overføring.

Mylinking ™ Nettverkspakkemeglerkan automatisk identifisere ulike typer tunnelprotokoller som VxLAN/NVGRE/IPoverIP/MPLS/GRE osv., og kan bestemmes i henhold til brukerprofilen i henhold til tunnelflytutgangen for indre eller ytre egenskaper.

○ Den kan gjenkjenne VLAN-, QinQ- og MPLS-etikettpakker

○ Kan identifisere det indre og ytre VLAN-et

○ IPv4/IPv6-pakker kan identifiseres

○ Kan identifisere tunnelpakker av typen VxLAN, NVGRE, GRE, IPoverIP, GENEVE og MPLS

○ IP-fragmenterte pakker kan identifiseres (Støtter identifisering av IP-fragmentering og støtter reassemblering av IP-fragmentering for å implementere L4-funksjonsfiltrering på alle IP-fragmenteringspakker. Implementer trafikkutdatapolicy.)

Hvorfor er IP fragmentert og TCP fragmentert?

Siden IP-laget automatisk fragmenterer datapakken i nettverksoverføringen, vil datapakken automatisk fragmenteres av IP-laget og overføres normalt, selv om TCP-laget ikke segmenterer dataene. Så hvorfor trenger TCP fragmentering? Er ikke det overdrevent?

Anta at det finnes en stor pakke som ikke er segmentert på TCP-laget og går tapt underveis; TCP vil sende den på nytt, men bare i hele den store pakken (selv om IP-laget deler dataene inn i mindre pakker, som hver har MTU-lengde). Dette er fordi IP-laget ikke bryr seg om pålitelig overføring av data.

Med andre ord, på en maskins transport-til-nettverkskobling, hvis transportlaget fragmenterer dataene, fragmenterer ikke IP-laget dem. Hvis fragmentering ikke utføres på transportlaget, er fragmentering mulig på IP-laget.

Enkelt sagt segmenterer TCP data slik at IP-laget ikke lenger er fragmentert, og når retransmisjoner skjer, blir bare små deler av dataene som har blitt fragmentert, retransmittert. På denne måten kan overføringseffektiviteten og påliteligheten forbedres.

Hvis TCP er fragmentert, er ikke IP-laget fragmentert?

I diskusjonen ovenfor nevnte vi at etter TCP-fragmentering hos avsenderen, er det ingen fragmentering på IP-laget. Det kan imidlertid være andre nettverkslagsenheter i transportlenken som kan ha en maksimal overføringsenhet (MTU) som er mindre enn MTU hos avsenderen. Derfor, selv om pakken har blitt fragmentert hos avsenderen, fragmenteres den igjen når den passerer gjennom IP-laget til disse enhetene. Til slutt vil alle shardene bli satt sammen hos mottakeren.

Hvis vi kan bestemme minimum MTU over hele lenken og sende data med den lengden, vil det ikke oppstå fragmentering uansett hvilken node dataene sendes til. Denne minimum MTU over hele lenken kalles banens MTU (PMTU). Når en IP-pakke ankommer en ruter, og ruterens MTU er mindre enn pakkelengden og DF (Do not Fragment)-flagget er satt til 1, vil ikke ruteren kunne fragmentere pakken og kan bare slippe den. I dette tilfellet genererer ruteren en ICMP-feilmelding (Internet Control Message Protocol) kalt "Fragmentation Needed But DF Set." Denne ICMP-feilmeldingen sendes tilbake til kildeadressen med ruterens MTU-verdi. Når avsenderen mottar ICMP-feilmeldingen, kan den justere pakkestørrelsen basert på MTU-verdien for å unngå den forbudte fragmenteringssituasjonen igjen.

IP-fragmentering er en nødvendighet og bør unngås på IP-laget, spesielt på mellomliggende enheter i lenken. Derfor er fragmentering av IP-pakker av mellomliggende enheter forbudt i IPv6, og fragmentering kan bare utføres i starten og slutten av lenken.

Grunnleggende forståelse av IPv6

IPv6 er versjon 6 av Internett-protokollen, som er etterfølgeren til IPv4. IPv6 bruker 128-biters adresselengde, som kan gi flere IP-adresser enn 32-biters adresselengde for IPv4. Dette er fordi IPv4-adresserommet gradvis uttømmes, mens IPv6-adresserommet er veldig stort og kan møte behovene til fremtidens internett.

Når man snakker om IPv6, gir det i tillegg til mer adresseplass også bedre sikkerhet og skalerbarhet, noe som betyr at IPv6 kan gi en bedre nettverksopplevelse sammenlignet med IPv4.

Selv om IPv6 har eksistert lenge, er den globale utrullingen fortsatt relativt langsom. Dette skyldes hovedsakelig at IPv6 må være kompatibelt med det eksisterende IPv4-nettverket, noe som krever overgang og migrering. Men med uttømmingen av IPv4-adresser og den økende etterspørselen etter IPv6, tar flere og flere internettleverandører og organisasjoner gradvis i bruk IPv6, og realiserer gradvis dual-stack-driften av IPv6 og IPv4.

Sammendrag

I dette kapittelet har vi sett nærmere på hvordan IP-fragmentering og reassemblering fungerer. Ulike datalinker har ulik maksimal overføringsenhet (MTU). Når størrelsen på en pakke overstiger MTU-grensen, deler IP-fragmentering pakken inn i flere mindre fragmenter for overføring, og setter dem sammen igjen til en komplett pakke ved hjelp av IP-reassembleringsmekanismen etter at den ankommer destinasjonen. Formålet med TCP-fragmentering er å forhindre at IP-laget fragmenteres, og bare overfører de små dataene som har blitt fragmentert når resendingen skjer, for å forbedre overføringseffektiviteten og påliteligheten. Det kan imidlertid være andre nettverkslagsenheter i hele transportlinken hvis MTU kan være mindre enn avsenderens, slik at pakken fortsatt vil bli fragmentert igjen på IP-laget til disse enhetene. Fragmentering på IP-laget bør unngås så mye som mulig, spesielt på mellomliggende enheter i lenken.


Publisert: 07.08.2025