För att förstå hur nätverk fungerar på djupet behöver man känna till hur data faktiskt ser ut när den skickas mellan datorer och nätverksenheter. Inom internet och andra IP-baserade nätverk är det IP-protokollet (Internet Protocol) som ansvarar för att paketera, adressera och leverera datan från en avsändare (source) till en mottagare (destination).
Den version som länge har varit den mest använda är IPv4. Den definierar hur datapaket konstrueras, vilka fält som finns i paketets styrinformation (header) och hur dessa används av routrar och nätverksenheter för att vidarebefordra datan på bästa möjliga sätt.
I denna genomgång studerar vi därför:
- de viktigaste egenskaperna hos IPv4 som nätverksprotokoll,
- uppbyggnaden av IPv4-headern,
- samt två fördjupningar i mekanismerna TTL och fragmentering, som båda är avgörande för att förstå hur IP fungerar i praktiken.
IPv4 begränsningar
IPv4 har länge utgjort grunden för Internet, men protokollet har flera begränsningar.
- Med endast 32 bitar adressrymd finns det cirka 4,3 miljarder adresser, vilket snabbt visade sig otillräckligt i en värld med en växande mängd uppkopplade enheter.
- Headern i IPv4 är dessutom komplex och variabel mellan 20 och 60 byte, vilket gör den mer tidskrävande för routrar att bearbeta.
- IPv4 använder också broadcast, vilket innebär att meddelanden kan skickas till alla noder i ett nätverk och därmed skapa onödig belastning.
- En annan svaghet är att fragmentering kan ske både hos avsändaren och i mellanförliggande routrar, vilket gör dataplanet mindre effektivt.
- Vidare är säkerhet (IPsec) endast ett tillval i IPv4 och inte en del av standarden. Till detta kommer att NAT (Network Address Translation) länge har behövts för att hantera bristen på adresser, men det bryter principen om end-to-end-kommunikation och skapar extra komplexitet.
Alla dessa begränsningar är centrala förklaringar till varför utvecklingen av IPv6 blev nödvändig.
Viktiga egenskaper hos IPv4
- Adressering och routing – IP-adresser används för att identifiera både avsändare och mottagare. Genom routing-tabeller och routing-protokoll kan IP välja en väg genom flera nätverk för att nå rätt destination.
- Förbindelselös tjänst (connectionless) – IP kräver inte att en förbindelse upprättas innan data skickas. Varje paket hanteras självständigt och kan ta olika vägar genom nätet. Detta gör protokollet skalbart och effektivt, men innebär också att paketen kan komma fram i oordning eller gå förlorade.
- Best effort tjänst – IP försöker leverera paket så gott det går, men kan inte garantera leverans, ordning eller skydd mot förlust. Felkontroll och återställning sköts av protokoll på högre nivå, exempelvis TCP.
IPv4 styrinformation (header)
Det finns två versioner av IP i bruk: IPv4 (32-bitars adresser) och IPv6 (128-bitars adresser). Fokus här är IPv4 och dess styrinformation. IPv4-headern innehåller styrinformation som routrar och mottagare behöver för att kunna behandla paketen korrekt. Eftersom IP är förbindelselöst är headern relativt enkel, med minimala kontrollmekanismer för att hålla bearbetningen snabb och effektiv.
Viktiga fält i IPv4-headern

I IPv4-headern är varje rad 32 bitar lång, vilket motsvarar 4 byte. En sådan rad kallas för ett ord, och med ord menas alltså en grupp av 4 byte (32 bitar). Den minsta headern består av 5 rader (5 ord = 20 byte), vilket räcker för alla obligatoriska fält. Om optioner används växer headern med fler rader. Den största headern kan därför bestå av upp till 15 ord (60 byte), alltså totalt 6 eller fler rader inklusive option-delen.
Här nedan en kortfattat förklaring för varje fält:
- Version (4 bitar): Identifierar IP-version. För IPv4 är värdet alltid 4 (0100).
- IHL (Internet Header Length, 4 bitar): Anger headerns längd i 32-bitarsord.
- Minsta värdet är 5 (0101 – 20 byte)
- Max 15 (1111 – 60 byte).
- Type of Service (TOS, 8 bitar): Anger prioritering eller kvalitet på tjänsten. I modern användning ersätts detta ofta av DSCP (Differentiated Services Code Point).
- Total Length (16 bitar): Anger paketets totala längd i byte (header + data).
- Identification (16 bitar): Identifierar ett paket för att kunna återskapa fragment.
- Flags (3 bitar): Styr fragmentering, t.ex.:
- DF (Don’t Fragment): Paketet får inte fragmenteras.
- MF (More Fragments): Anger att fler fragment följer.
- Fragment Offset (13 bitar): Anger fragmentets position i det ursprungliga paketet. Detta fält används endast om fragmentering sker. Fragmentering uppstår om ett IPv4-paket är för stor för att passera genom ett nätverk med en viss MTU (Maximum Transmission Unit)
- Time To Live (TTL, 8 bitar): Anger maximal livslängd i hopp. Minskas av varje router. När värdet blir 0 slängs paketet.
- Protocol (8 bitar): Anger vilket protokoll i Transportskiktet som ska ta emot datan, t.ex. TCP (6), UDP (17), ICMP (1).
- Header Checksum (16 bitar): Kontroll-summa för att upptäcka fel i själva headern.
- Source Address (32 bitar): Avsändarens IP-adress.
- Destination Address (32 bitar): Mottagarens IP-adress (unicast eller multicast).
Time To Live (TTL)
TTL är ett 8-bitars fält. Storleken gör att det kan innehålla värden från 0 till 255. Trots namnet mäter det inte tid, utan fungerar som en räknare för antal hopp genom nätverket.
När ett paket skapas får det ett startvärde (t.ex. 64, 128 eller 255, beroende på operativsystem). Varje router som vidarebefordrar paketet minskar värdet med 1. Om värdet blir 0 kasseras paketet och routern skickar ofta ett ICMP Time Exceeded-meddelande tillbaka till avsändaren.
Syftet med TTL är att förhindra att paket fastnar i routing-loopar och cirkulerar oändligt i nätverket. Det används också av verktyget traceroute, som skickar paket med successivt ökande TTL för att kartlägga vägen till en destination.
I IPv6 kallas fältet istället Hop Limit, vilket tydligare återspeglar dess funktion.
Fragmentering
Fragmentering används när ett paket är större än den MTU (Maximum Transmission Unit) som gäller på en viss länk. Paketet delas då upp i mindre fragment som skickas var för sig. Detta var viktigt i äldre nätverk med varierande MTU, men är mindre vanligt idag tack vare att de flesta nät har en standard-MTU på 1500 byte och tekniker som Path MTU Discovery.
I IPv4-headern används tre fält för att hantera fragmentering:
- Identification: samma värde i alla fragment som hör ihop.
- Flags: anger om fragmentering är tillåten (DF) och om fler fragment följer (MF).
- Fragment Offset: anger varje fragments position i det ursprungliga paketet.
Exempel på fragmentering:
Anta ett IP-paket på 4000 byte nyttolast skickas över en länk med MTU = 1500 byte. Med en 20-byte header återstår 1480 byte per fragment.
- Fragment 1: 1480 byte, Offset = 0 ÷ 8 = 0, MF = 1
- Fragment 2: 1480 byte, Offset = 1480 ÷ 8 = 185, MF = 1
- Fragment 3: 1040 byte, Offset = 2960 ÷ 8 = 370, MF = 0
I praktiken delas nyttolasten på 4000 byte upp i fragment som passar inom länkens MTU. Eftersom varje fragment kan innehålla 1480 byte data (1500 byte minus 20 byte för headern) blir uppdelningen: 1480 + 1480 + 1040 byte.

När fragmenten skickas vidare får de ett värde i fältet Fragment Offset, som markerar fragmentets position i det ursprungliga paketet. Detta gör det möjligt för mottagaren att återställa hela paketet i rätt ordning. Mottagaren kan pussla ihop datan igen tack vare att Identification är samma för alla fragment, MF visar att fler fragment följer, och Fragment Offset anger rätt position.
Om ett fragment försvinner kan inte paketet sättas ihop, och då kasseras allt.
Sammanfattning:
IPv4 är ett förbindelselöst och otillförlitligt protokoll som arbetar med adressering, routing och paketleverans. Headern innehåller styrinformation som möjliggör transport, men utan garantier för leveranssäkerhet eller ordning. Två centrala mekanismer i headern är TTL, som begränsar paketens livslängd i nätverket, och fragmentering, som gör det möjligt att anpassa paket till länkar med olika MTU.