User:Bashar Al-Saify/sandbox

IP fragmentering är en mekanism som Internet protokoll använder för att kunna transmittera för stora datapaket. Metoden bygger på att när mottagarens maximum transmission unit [MTU] är för liten för att ta emot ett datapaket från sändaren, väljer internet protokollet att fragmentera datapaketet i mindre delar. När alla datapaket ät framme sammanfogas de olika fragmenten till original datapaketet. Vem som sköter processen skiljer sig beroende på vilken version av internet protokollet. I IPv4 är det nätverket som har ansvar för processen, medan i IPv6 är det ett tillägg (Fragment Extension Header) som tillkallas vid överföring av för stora paket. Dessa olika mekanismer presenteras i stadrader för internet, Request For Comments [RFC]. I RFC 791 beskriver den processen för IP fragmentering, överföring och sammanfogning av datapaket. RFC 815 beskriver mekanismen för sammanfognings algoritmen.

Anledning till att IP fragmentering används
Det som gör internet väldigt kraftfullt är att den binder ihop flera nätverk tillsammans vilket skapar ett stort nätverk som ger möjlighet för alla som är ansluta till internet att ta del av den information som finns tillgänglig. Vid transmittering av data är den maximala storleken på data som ett lager kan överföra kallas för maximum transmission unit [MTU]. Eftersom varje IP datagram är inkapslad i en datalänklager ram för transportering från ena noden till den andra. MTU för datalager protokollet sätter en hård gräns på storleken på IP datagrammet. Vilket inte är problem, utan problemet ligger i att var och en av datalänkarna längs vägen mellan avsändaren och mottagaren kan använda olika datalänk lagerprotokoll och var och en av dessa protokoll kan ha olika MTU.

Mekanismerna för IP Fragmentering
Innan de olika fragmenten kommer fram till sin destination måste de olika fragmenten sättas ihop. Nämligen både TCP och UDP förväntar att ta emot ett färdigt, fragmenterat segment från närverkslagret. Vid skapandet av IPv4 var tanken av att sammanfoga de olika fragmenten i noden skulle skapa flera signifikanta komplikationer i protokollet och minska nodens prestanda och effektivitet vid transportering av data. Därför valdes att nodens arbete skulle vara självklar och simple för att maximera dess effektivitet och prestanda. Därför valde man att sätta processen för sammanfogning i slutet av överföringsprocessen.

När mottagaren tar emot en serie av datagram från samma källa, behöver den ta reda på om det är ett fragment till ett original datagram eller om den är det original datagrammet. Samtidigt måste den kunna ta reda på när det sista fragmentet anländer för att vidare kunna sätta ihop fragmenten till det original datagrammet innan den fragmenterades. För att möjliggöra sammanfogningen av fragmenten hos mottagaren har IPv4 flera verktyg för att informera om vilka delar ska sammanfogas. Bland dessa verktyg är identification, flag och offset som sätts i datagrammets header.

Identification [ID] är ett verktyg som är 16-bit lång och är unik för varje datagram från samma källa. Det innebär att all datagram mellan sändare och mottagare med ett specifikt protokoll måste ha en unik IPv4 ID.

Den unika ID behålls under ett visst tids period oftast hålls den i två minuter enligt rekommendationerna [RFC1122].

Flaggan i headern representerar hur IP paketet ska behandlas av enheten. I fältet är det 3 bits och de olika delarna representerar olika åtgärder. Det första fältet är alltid satt till 0. Det andra fältet representerar om datapaketet får fragmenteras eller inte. Om det andra fältet har 0 betyder det att datapaketet får fragmenteras, medan om den är satt till 1 innebär det att den inte får fragmenteras. Det tredje fältet representerar vilken position paketet har i serien av fragmenteringen. Om 0 är satt betyder det antingen att det är sista fragmentet eller att den inte har fragmenterats. Om värdet 1 är satt betyder det att den inte är sista paketet och att flera paket förväntas tas emot i en serie av fragment. Offset fältet används för att indikera för destinationsenheten var ett mottaget fragment ska placeras när allt datapaket ska sammanfogas.

Skillnaden mellan IPv4 och IPv6 vid fragmentering
Vid användningen internet protokollet version 4 [IPv4] sker fragmenterings mekanismen annorlunda i jämförelse med internet protokollet version 6 [IPv6]. Det som sker i IPv4 är att när det för stort datapaket ska skickas fragmenteras den i mindre delar som kallas för fragment. I IPv4 headern talar den om att datapaketet är fragmenterad och vilken ordningen de olika fragmenten har. Samtidigt sker fragmentering och sammanfogning av datapaketet i nätverket. Till skillnad från IPv6 så har den ingen fragmentering mekanism, istället har man lagt till en ny teknik som heter Path MTU Discovery [PMUTD] som används för att upptäcka det största datapaket som ska transmitteras. PMUTD mekanismen ska användas varje gång innan en anslutning ska upprättas. Det som sker när ett för stort paket ska överföras är att paketet förloras på vägen samtidigt som det skickas ett ICMPv6 typ 2 meddelande (Packet too big) till sändaren som talar om att paketet som ska överföras är för stort.

Om paketet inte lyckas överföras använder man sig av Fragment Extension Header som är en mekanism som fragmenterar hela datapaketet. Det som skiljer sig mellan IPv4 och IPv6 vid fragmentering är att i IPv4 sker fragmentering och sammanfogningen av nätverk medan i IPv6 sker det av sändaren.

påverkan på överföring av data
IP fragmentering kan vissa fall leda till att vissa fragment förloras som i sin tur leder till paketförlust som i sin tur orsakar att protokoll som TCP tvingas skicka om det förlorade datapaketet.

Sändaren kan använda sig av två metoder för att bestämma storleken på datapaketet som ska skickas över nätverket. Det första metoden är att sändaren skickar datapaket över till mottagaren och långsamt öka mängden data tills nätverket når sitt maximala. Den andra metoden är genom Path MTU Discovery som används för att undersöka MTU mellan sändare och mottagaren för att undvika IP fragmentering kan undvikas.