Den första skillnaden är att IPv4 har ett huvud (en plats för styrinformation) medan IPv6 har ett primärt huvud och andra inkapslade till. Det som visas på bild 1 är huvudstrukturen (”main IPv6 header”).
Den andra skillnaden är representationen av protokollen. Observera att IPv4 består av 32 bitars och IPv6 av 128 bitar, men deras logiska representationer i forma av en tabell har olika bredd. IPv4 representeras med 32 bitar och IPv6 med 64 bitar.
Utöver huvudstrukturen (main header) kan IPv6 också inkludera flera ”Extension Headers” som innehåller extra information för särskilda ändamål. Dessa extension headers kan användas för funktioner som fragmentering, ruttning (routing), säkerhet och andra avancerade funktioner. De läggs till i huvudstrukturen och ordnas i en kedja av ”next header” i ett paket så att IPv6 kan vara mer flexibelt och skalbart. Det möjliggör enklare implementering av nya funktioner utan att förändra själva huvudstrukturen. Detta är en viktig förbättring jämfört med IPv4, där många tillägg gjordes direkt i huvudstrukturen, vilket ledde till en mindre flexibel och ibland svårt underhållen protokollstandard.
IPv4 och IPv6 MTU
Datalänkar reglerar dataöverföringar med hjälp av maximala storlekar, kända som MTU eller Maximum Transmission Unit. MTU är ett mått som inkluderar den totala paketlängden, data att överföra och inklusive dess header. Både IPv4 och IPv6 använder MTU för att bestämma storleken på datapaket som kan skickas över nätverket.
I fallet med IPv4 kräver protokollet en minimal MTU på 68 byte. Varje router i nätverket ska kunna hantera paketöverföringar på minst 68 byte utan att behöva genomföra fragmentering. Detta beror på att den maximala storleken för IPv4-huvudet är 60 byte, vilket innebär att nyttolasten (payload) kan vara upp till 8 byte, men som är oftast större. Om det behövs mer utrymme för nyttolasten måste paketet fragmenteras. Dessutom måste varje klient-mottagare i destinationsnätverket kunna ta emot IPv4-paket med en minsta storlek på 576 byte, vilket kan innebära flera paketfragment.
Å andra sidan kräver IPv6 en minimal MTU på 1280 byte, men det rekommenderas att använda en MTU på 1500 byte, vilket är samma som vanligtvis används för Ethernet-nätverk. Detta ger IPv6 ett större utrymme för att bära data och minimerar behovet av fragmentering.
Sammantaget innebär detta att IPv6 med en större MTU ger en effektivare och mer tillförlitlig datapaketöverföring, vilket är en av anledningarna till varför övergången till IPv6 blir allt viktigare för att möta de växande kraven och utmaningarna i dagens digitala värld.
IPv4 paketfragmentering
IPv4 är utformat för att fungera på olika bandbredder och olika typer av datalänkar. I en sådan nätverksmiljö tillåts routrar att fragmentera stora paket när det behövs. Till exempel, om en router tar emot ett paket som är för stort för att vidarebefordras via det utgående gränssnittet på grund av en mindre MTU (Maximum Transmission Unit), som visas i bild ovan, så måste paketet fragmenteras innan det kan skickas vidare. För att göra detta måste flaggan DF (Don’t Fragment) i pakethuvudet vara satt till noll (DF=0). Om DF-flaggan är satt till ett (DF=1), kommer paketet att kasseras och inte vidarebefordras.
Om DF-flaggan är satt till noll, fragmenteras paketet och när alla paketfragment har nått mottagaren blir det mottagarens uppgift att återställa dem till de ursprungliga paketen. Detta fragmenterings- och återsamlingsprocessen kan orsaka ökad nätverkstrafik och leda till fördröjningar, särskilt på långsammare länkar.
IPv6 paketfragmentering
Till skillnad från IPv4, där routrar tillåts fragmentera paket med en för stor MTU, fragmenteras inte paket av IPv6-routrar. I stället får avsändaren fragmentera paket vid behov, men inte de mellanliggande routrarna.
När en IPv6-router tar emot ett paket som är större än MTU på det utgående gränssnittet, tas paketet bort och routern skickar istället ett ICMPv6 (Internet Control Message Protocol version 6) ”Packet Too Big” meddelande tillbaka till avsändaren. Detta meddelande innehåller MTU-storleken på datalänken i byte, så att avsändaren kan ändra paketets storlek för att kunna vidarebefordras korrekt. Denna mekanism möjliggör att avsändaren dynamiskt justerar paketstorleken för att passa den aktuella nätverksmiljön.
Med övergången till IPv6 har man strävat efter att minska behovet av fragmentering, vilket är en av de förbättringar som detta nya protokoll erbjuder. IPv6 rekommenderar en MTU på 1500 byte, vilket är samma som det som vanligtvis används för Ethernet-nätverk. Genom att ha en större MTU blir IPv6 mer effektivt för att hantera moderna nätverkstrafik och undvika behovet av fragmentering i de flesta fall. Detta är en av de sätt som IPv6 strävar efter att vara mer skalbart och förbättra prestanda i jämförelse med IPv4.
så vad är det bästa, små eller stora paketstorlek?
Data är vanligtvis överförd som en serie paket, ibland kallad pakettåg. Ju större paketen är, desto färre paket behövs för dataöverföring. Det gör att det största paketstorleken föredras i enlighet med minsta MTU längs vägen till mottagare. För att kunna identifiera minsta MTU skickas först ett utforskande paket med namnet Path MTU-discovery.