Fragmentacja datagramów IP – proces podziału pakietów protokołu internetowego na mniejsze części (nazywane fragmentami). Działanie to jest konieczne, aby pakiety mogły zostać przesłane przez łącze, którego maksymalna jednostka transmisji (MTU) jest mniejsza niż rozmiar oryginalnego pakietu. Fragmenty są następnie ponownie składane w całość przez hosta docelowego.
Szczegóły mechanizmu fragmentacji, a także ogólne podejście architektoniczne do tego procesu, różnią się w zależności od wersji protokołu IPv4 i IPv6.
Przebieg procesu Procedura fragmentacji, transmisji i ponownego składania pakietów IP została opisana w dokumencie RFC 791. Uproszczony algorytm składania fragmentów przedstawiono natomiast w RFC 815. Do prawidłowej fragmentacji i defragmentacji pakietów wykorzystywane są pola nagłówka IP: pole identyfikacyjne (Identification), adresy źródłowy i docelowy, identyfikator protokołu (Protocol), a także pole przesunięcia fragmentu (Fragment offset) oraz flagi Don't Fragment (DF) i More Fragments (MF).
Host, który otrzymuje pofragmentowany pakiet IP, musi go złożyć z powrotem w całość, a następnie przekazać do warstwy wyższej. Proces ten z założenia odbywa się na hoście docelowym, jednak w praktyce może być również wykonywany przez router pośredniczący. Dzieje się tak na przykład w przypadku mechanizmu NAT, który może wymagać złożenia fragmentów w celu translacji strumieni danych.
Wpływ na przekazywanie pakietów w sieci Gdy w sieci istnieje wiele równoległych ścieżek, technologie takie jak agregacja łączy czy Cisco Express Forwarding rozdzielają ruch pomiędzy nimi przy użyciu funkcji haszującej. Jednym z celów takiego algorytmu jest zapewnienie, by wszystkie pakiety należące do tego samego były wysyłane tą samą ścieżką, co pozwala zminimalizować zjawisko zmiany kolejności pakietów.
Fragmentacja IP może prowadzić do nadmiernych retransmisji, gdy fragmenty napotkają na problem utraty pakietów. W takiej sytuacji protokoły niezawodne, takie jak TCP, muszą ponownie przesłać wszystkie fragmenty, aby odzyskać dane po utracie nawet jednego z nich. Z tego powodu nadawcy zazwyczaj stosują jedną z dwóch metod do określania rozmiaru wysyłanych pakietów IP. Pierwsza polega na wysyłaniu przez hosta nadawczego pakietów o rozmiarze równym MTU dla pierwszego skoku na trasie do odbiorcy. Drugą metodą jest użycie algorytmu Path MTU Discovery, który pozwala na określenie MTU dla całej ścieżki (tzw. Path MTU) między dwoma hostami, co umożliwia uniknięcie fragmentacji.
Fragmentacja IP jest często uważana za mechanizm mało odporny na błędy i często niepożądany ze względu na negatywny wpływ na bezpieczeństwo.
Przypisy
Kategoria:Protokół internetowy