IPv6 (Internet Protocol version 6) är efterföljaren till IPv4 och utvecklades för att möta de begränsningar som IPv4 har, framför allt bristen på adresser. Utöver en massiv utökning av adressrymden innebär IPv6 också en effektivare struktur för paketbehandling, förenklade headers och nya sätt att skicka trafik mellan enheter.

Med sina 128-bitars adresser erbjuder IPv6 i princip obegränsat med unika adresser. Adresserna delas in i olika typer beroende på användning:
- Unicast – en-till-en-kommunikation.
- Multicast – en-till-många, riktat till en grupp mottagare.
- Anycast – en-till-en-grupp, levereras till den närmaste noden i gruppen.
Till skillnad från IPv4 finns det ingen broadcast i IPv6, vilket gör kommunikationen mer effektiv och minskar onödig trafik i nätverket. Broadcast skulle skapa onödig belastning när alla noder måste lyssna på trafiken. Multicast och anycast ersätter behovet av broadcast och är mer effektiva.
Adresstyper i IPv6

- Unicast-adresser – En unicast-adress identifierar en enskild mottagare. Ett paket som skickas till en unicast-adress levereras bara till den enheten. Vanliga exempel är:
- Global unicast – unika och routbara på Internet.
- Link-local – används på en länk och skapas automatiskt av alla noder (börjar alltid med FE80::).
- Unique local – för interna nätverk, liknar privata IPv4-adresser (börjar med FC00::/7).
- Multicast-adresser – En multicast-adress identifierar en grupp mottagare. Ett paket som skickas till en multicast-adress levereras till alla noder i gruppen. Exempel:
- FF02::1 – alla noder på länken.
- FF02::2 – alla routrar på länken.
- Anycast-adresser – En anycast-adress tilldelas flera noder, men paketet levereras bara till den närmaste noden (enligt routing). Vanligt exempel är DNS-servrar som delar samma anycast-adress för att öka redundans och tillgänglighet.
IPv6 header
Studera bilden:

Låt oss förklara hur man tolkar en grafisk representation av IPv6-headern.
- IPv6-huvudet är 40 byte (320 bitar).
- Varje rad i bilden är 32 bitar = 4 byte = 1 ord
- Rutorna i raden motsvarar olika fält i olika storlek
- Sedan följer Source Address (128 bitar = 4 rader, även om den inte syns på bilden) och Destination Address.
IPv6 headerns fält
IPv6-headern är alltid 40 byte lång (320 bitar), till skillnad från IPv4 som varierar mellan 20 och 60 byte. I grafiska representationer delas headern ofta upp i rader om 4 byte (32 bitar), precis som i IPv4. Ibland används istället 8 byte (64 bitar) per rad, men det är bara en annan presentationsform – innehållet är detsamma.
Några centrala fält är:
- Version (4 bitar): alltid värdet 6 (0110), skiljer IPv6 från IPv4.
- Traffic Class (8 bitar): används för QoS och prioritering av trafik.
- Flow Label (20 bitar): identifierar flöden, t.ex. för video eller realtidsdata.
- Payload Length (16 bitar): anger nyttolastens längd.
- Next Header (8 bitar): visar vilket protokoll eller extension header som följer.
- Hop Limit (8 bitar): motsvarar TTL i IPv4, minskas med 1 i varje router.
- Source Address (128 bitar): avsändarens adress.
- Destination Address (128 bitar): mottagarens adress.
Obs! Fält som Header Checksum och Fragment Offset finns inte i huvudheadern, vilket förenklar behandlingen. Specialfunktioner hanteras istället i extension headers.
Extension headers
IPv6-headern är medvetet gjord enkel och alltid fast på 40 byte. All extra funktionalitet (sådant som i IPv4 låg i “Options”-fältet) placeras istället i extension headers. Dessa fungerar som tilläggshuvuden som placeras mellan IPv6-huvudet och Transport lagrets protokoll (t.ex. TCP/UDP).
Exempel på IPv6 paket utan och med Extension Headers:
- Enkelt paket utan extension headers:
- [ IPv6 Header ] + [ TCP Header ] + [ Data ]
- Kan uppfattas som header + Data (TCP segment + Data)
- Paket som måste fragmenteras:
- [ IPv6 Header ] + [ Fragment Header ] + [ TCP Header ] + [ Data ]
- Fragmentering finns kvar i IPv6, men endast avsändaren får fragmentera och inte routrar.
- Paket som använder IPsec (ESP)
- [ IPv6 Header ] + [ ESP Header ] + [ Krypterad nyttolast ]
- Paket med routing-information
- [ IPv6 Header ] + [ Routing Header ] + [ UDP Header ] + [ Data ]
Fragmentering i IPv6
Fragmentering hanteras på ett annat sätt i IPv6 än i IPv4.
- I IPv4 kan både avsändare och routrar fragmentera paket vid behov.
- I IPv6 är det endast avsändaren som får fragmentera; routrar får aldrig göra det.
Om ett paket är för stort för att skickas över en länk skickar routern tillbaka ett ICMPv6-meddelande av typen Packet Too Big. Avsändaren justerar därefter storleken på sina paket med hjälp av Path MTU Discovery.
När fragmentering behövs i IPv6 används en särskild Fragment Header (en extension header). Återmontering (reassembly) av fragment sker alltid hos mottagaren och aldrig i mellanförliggande routrar.
kort jämförelsetabell mellan IPv4 och IPv6 headers
| Aspekt | IPv4 | IPv6 |
|---|---|---|
| Vem får fragmentera? | Avsändare och routrar | Endast avsändaren (routrar fragmenterar aldrig) |
| Signal vid för stort paket | ICMP Destination Unreachable – Fragmentation Needed (om DF=1) | ICMPv6 Packet Too Big |
| Styrning av paketstorlek | Path MTU Discovery (beroende på ICMP och DF-flagga) | Path MTU Discovery (obligatoriskt i praktiken) |
| Header-stöd | Fragmentfält i huvudheader (Flags, Fragment Offset, Identification) | Fragment Header som extension header |
| Återmontering (reassembly) | Endast hos mottagaren (rekommenderat); routrar ska inte reassemblera | Endast hos mottagaren (routrar reassemblerar aldrig) |
| DF/”Don’t Fragment” | DF-flagga finns; om satt och MTU underskrids och ICMP skickas | Ingen DF-flagga; routrar skickar alltid ICMPv6 Packet Too Big |
| Minsta länk-MTU | Ingen generell miniminivå (vanligtvis 1500 på Ethernet) | 1280 byte (enligt standard) |
| Prestandapåverkan i nätet | Routrar kan behöva fragmentera men ökad belastning | Routrar fragmenterar inte därmed enklare och effektivare vidarebefordran |
I praktiken bör applikationer/stacken undvika fragmentering genom att anpassa MSS/PMTU.