IP protokoll

IP-protokollet, som står för Internet Protocol, är en grundläggande komponent inom datoriserat nätverk och spelar en avgörande roll för överföring av datapaket över internet och andra IP-baserade nätverk.

Här är några viktiga punkter att notera om IP-protokollet:

  • Adressering och routing: IP-protokollet tillhandahåller en standardiserad metod för att tilldela unika IP-adresser till varje enhet som är ansluten till nätverket. Dessa IP-adresser används för att identifiera källan och destinationen för datapaketen. Genom att använda routingtabeller och routingprotokoll kan IP-protokollet dirigera paketen genom olika nätverk för att nå slutdestinationen.
  • Förbindelselös tjänst: IP-protokollet är förbindelselöst, vilket innebär att det inte kräver att en förbindelse eller session upprättas innan data kan överföras. Varje datapaket behandlas oberoende och kan följa olika vägar genom nätverket för att nå sin destination. Detta gör IP till en flexibel och skalbar lösning för nätverkskommunikation.
  • Best Effort-tjänst: IP-protokollet tillhandahåller en ”best effort”-tjänst, vilket innebär att det gör sitt bästa för att vidarebefordra paketen till sin destination, men det kan inte garantera leverans, dataförlust eller ordningshållning av paketen. Det beror på att IP inte har mekanismer för att återhämta sig från fel, hantera trängsel eller garantera kvalitet på tjänsten.
  • Mediaoberoende: IP-protokollet är oberoende av de specifika transmissionsmedierna som används för att överföra data. Det fungerar på samma sätt oavsett om data överförs via Ethernet, trådlösa nätverk, fiberoptiska kablar eller andra tekniker. Detta möjliggör interoperabilitet mellan olika typer av nätverk och ger flexibilitet i nätverksdesign och implementering.

Ett exempel på förbindelselös kommunikation är att skicka ett brev till någon mottagare.

Bild 1: Förbindelselös tjänst

Tänk dig att IP-protokollet fungerar som en analogi till POST-systemet för att skicka brev mellan olika platser. Här är hur metaforen skulle kunna se ut:

  • Adressering: Precis som i POST-systemet har varje brev en avsändaradress och en mottagaradress. I IP-protokollet har varje datapaket en avsändar-IP-adress och en destinations-IP-adress. Detta gör det möjligt för paketen att identifiera avsändaren och rätt destination i nätverket.
  • Leveransmekanism: I POST-systemet skickas breven individuellt, och de kan ta olika vägar genom postnätverket innan de når fram till mottagaren. På samma sätt skickas datapaketen i IP-protokollet individuellt och kan ta olika vägar genom nätverket för att nå sin destination.
  • Förbindelselös kommunikation: I POST-systemet skickar du ett brev till mottagaren utan att först upprätta en förbindelse med dem. Du behöver inte meddela mottagaren i förväg att brevet är på väg. På samma sätt fungerar IP-protokollet för förbindelselös datakommunikation. Paketen skickas utan att först etablera en direkt förbindelse mellan avsändaren och mottagaren.
  • Ingen garanterad leverans: I POST-systemet garanteras inte omedelbar eller 100% tillförlitlig leverans av brev. Det kan finnas leveransförseningar eller förlorade brev på grund av olika faktorer. På samma sätt ger inte IP-protokollet några garantier för att datapaketen når fram till destinationen. Paket kan försenas, förloras eller levereras i oordnad ordning.

Sammanfattningsvis kan man säga att både IP och POST-systemet följer en förbindelselös kommunikationsmodell där paket eller brev skickas utan att först upprätta en förbindelse. De förlitar sig på adressering och leverans mekanismer för att skicka information mellan avsändare och mottagare, men det finns ingen garanti för att paketen eller breven når fram pålitligt eller omedelbart.

Förbindelselöst protokoll

Förbindelselöst protokoll, såsom IP eller UDP, fungerar utan att kräva att en förbindelse eller session upprättas mellan avsändaren och mottagaren innan data kan överföras. Till skillnad från förbindelseorienterat protokoll, såsom TCP, som först etablerar en session och sedan tillåter dataöverföring att äga rum.

Bild 2: IP förbindelselöst protokoll

IPv4  styrinformation (header)

Det finns två huvudsakliga versioner av IP-protokollet i bruk idag: IPv4 och IPv6. IPv4 är den äldre versionen och använder 32-bitars IP-adresser, medan IPv6 är den nyare versionen och använder 128-bitars IP-adresser. Fokus i denna lektion är IP version 4 eller IPV4.

IP-protokollets header bär mindre styrinformation än tillförlitliga protokoll. Det innebär även att det har färre säkerhetsmekanismer, vilket resulterar i mindre bearbetningstid och i bästa fall inga leveransförseningar. Men det är viktigt att notera att ett förbindelselöst protokoll som IP inte kan garantera säkerheten för överföringen. I ett paketförmedlande nätverk kan paketet ta olika vägar till destinationen, vilket resulterar i att paketen anländer vid olika tidpunkter och inte i ordning.

I stället för att erbjuda felfria leveranser tillhandahåller IP bästa möjliga överföringstjänst (best effort) utan kompromisser. Det innebär att dess främsta uppgift inom nätverksskiktet är att transportera paket mellan kommunikationsenheter (värdar) med så liten belastning på nätverket som möjligt.

Låt oss studera de olika fälten i IPv4 header.

Bild 3: IP pakets header

Här är en kort beskrivning av några av de viktigaste fälten i IPv4-header:

  • Version – Detta 4-bitars fält anger vilken version av IP-protokollet som används. För IPv4 är värdet alltid 4 (binärt 0100).
  • IHL(Internet Header Length) – Fältet IHL är en 4-bitars fält och kan anta värden från 5 till 15. Genom att multiplicera värdet i IHL med 4 får man längden på IP-headern i bytes.
  • Type of Service – TOS är ett 8-bitars fält som används för att ange olika typer av tjänster eller kvalitetsnivåer för IP-paketet, som prioritering eller differential services.
  • Total Length – Detta 16-bitars fält anger den totala längden på IP-paketet, inklusive både header och data, i byte.
  • Identification – Detta 16-bitars fält används för att identifiera ett unikt IP-paket. Det är användbart vid fragmentering och återuppbyggnad av paket.
  • Flag – Detta 3-bitars fält innehåller bitar som används för att hantera fragmentering av IP-paketet. Exempelvis finns flaggorna MF (More Fragment) för att indikera om paketet är fragmenterat och DF (Do not Fragment) för att indikera att paketet inte får fragmenteras.
  • Fragment Offset – Fragment Offset är ett fält i IPv4-header som används för att ange ordningen av paket fragment i återuppbyggnaden av det ursprungliga IP-paketet efter fragmentering. När ett IP-paket fragmenteras i mindre delar får varje fragment ett Fragment Offset-värde som indikerar dess position i den ursprungliga data.
  • Time to Live (TTL) – Detta 8-bitars fält används för att begränsa livslängden för ett IP-paket. När ett IP-paket skickas ut av avsändaren sätts ett initialt TTL-värde. Varje gång paketet passerar en router på dess väg till destinationen, minskas TTL-värdet med ett. Om TTL når värdet noll på en router, kastas paketet och en ICMP-meddelande (Internet Control Message Protocol) kan skickas tillbaka till avsändaren för att informera om att paketet har förkastats.
  • Protocol – Detta 8-bitars fält används för att identifiera protokollet på nästa nivå. Det värdet indikerar vilken typ av datalast som paketet bär på och möjliggör överföring till lämpligt protokoll på övre skiktet. Exempel på vanliga värden inkluderar ICMP (1), TCP (6) och UDP (17).
  • Header Checksum – Detta används för att upptäcka eventuella ändringar i IPv4-huvudet.
  • Source Address – Detta fält innehåller avsändarens 32-bitars binära IP-adress.
  • Destinationen Address – Detta fält innehåller destinationens 32-bitars binära IP-adress. Det kan vara en unicast- eller multicastadress.

Mer om fältet Fragment Off

När mottagaren tar emot fragmenterade paket och flaggan ”MF” (More Fragments) är satt till 1, granskar den Fragment Offset-värdet för att avgöra ordningen av fragmenten och återuppbygga det ursprungliga paketet korrekt. Mottagaren samlar ihop fragmenten baserat på deras Fragment Offset-värden för att återskapa den ursprungliga datan.

När mottagaren tar emot det sista fragmentet, där flaggan ”MF” är satt till 0, placeras det sist i återuppbyggnads processen. På det sättet kan mottagaren avgöra när alla fragment har mottagits och återuppbyggnaden är komplett.

Ett icke fragmenterat paket, det vill säga ett paket som inte har blivit delat upp i mindre fragment, har alla flaggor, inklusive ”MF”, satta till noll. Det indikerar att paketet är komplett och inte behöver återuppbyggas.

Mer om fältet TTL

TTL tjänar flera syften. För det första begränsar det paketets livslängd i nätverket och förhindrar att paket cirkulerar oändligt. Det hjälper också till att undvika att paket fastnar i loopar eller felaktiga rutningsvägar. Dessutom används TTL för att mäta fördröjningar och bestämma vägen mellan källan och destinationen genom att analysera värdet i ICMP-meddelanden som returneras av routern när paketet förkastas.

När ett paket vidarebefordras mellan nätverksenheter, som routers, ändras TTL-värdet för varje hopp. Detta gör att routern kan övervaka och kontrollera trafiken i nätverket. Avsändaren kan initialt sätta TTL-värdet baserat på önskad livslängd för paketet, och sedan kan nätverket reglera det ytterligare genom att minska värdet för varje hopp.

IP protokoll arbetar oberoende av transmissionsmedier

När vi säger att IP är oberoende av transmissionsmedia menar vi att IP-protokollet i sig inte är beroende av en specifik typ av fysiskt transmissionsmedium för att överföra data. IP är utformat för att fungera över olika typer av nätverk och transmissionsmedier, som exempelvis koppar, fiberoptik, trådlösa radiovågor och satellitförbindelser.

Bild 3: IP oberoende av transmissionsmedier

Detta innebär att IP-paket kan överföras som elektriska signaler över kopparkablar, som ljussignaler över fiberoptiska kablar eller som radiosignaler genom trådlösa kommunikationslänkar.