IP fragmentace

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

IP fragmentace je v informatice rozdělování IP datagramů na menší části, aby mohly být přeneseny další částí počítačové sítě. Každá část přenosové trasy v počítačové síti má totiž definovanou svoji maximální MTU (anglicky Maximum Transmission Unit), která určuje maximální velikost IP datagramu, který je možné přenést. Současná obvyklá velikost MTU je 1500 bajtů (tj. maximální délka Ethernetového rámce), avšak vysokorychlostní sítě používají kvůli nižší režii větší délky a naopak tunelované spoje MTU kvůli vlastní režii snižují.

Popis funkce[editovat | editovat zdroj]

RFC 791 popisuje postup pro fragmentaci IP datagramů, jejich přenos a zpětné sestavení. RFC 815 popisuje zjednodušený algoritmus, který lze u síťových zařízení snadno realizovat. Pro řízení fragmentace jsou v hlavičce IP datagramu položky:

  • Identification – identifikace fragmentu
  • Fragment offset – pozice fragmentu v originálním paketu (počet osmic bytů dat od počátku původního datagramu k počátku tohoto fragmentu)
  • Don't Fragment (DF) – zákaz fragmentace (bitový příznak)
  • More Fragments – následují další fragmenty (bitový příznak)

V IPv4router při obdržení PDU (Protocol data unit, zde tedy IP datagram) větší velikosti, než je MTU následující trasy (příštího skoku) dvě možnosti. Buď PDU zahodí a odešle ICMP zprávu Packet too Big (paket příliš velký), nebo může PDU fragmentovat na menší části, které projdou linkou s menším MTU (pouze v případě, že fragmentace není zakázána pomocí příznaku Don't Fragment). V IPv6 si musí obě strany před zahájením komunikace zjistit optimální MTU.

Fragmentace IP datagramů může způsobovat nadměrné přenosy, když dojde ke ztrátě jednotlivých fragmentů, protože protokoly se zárukami (např. TCP) si vyžádají přenos celého původního datagramu, i když chybí jediný fragment.[1] Proto při navázání spojení obě strany komunikace zjišťují maximální možnou velikost datagramu pomocí jedné ze dvou dostupných metod. První zasílá na začátku z obou stran datagramy o maximální velikosti prvního skoku. Druhá využívá Path MTU discovery algoritmus popsaný v RFC 1191, který umožňuje zjistit maximální velikost MTU pro celou cestu.

Při defragmentaci se předpokládá, že původní datagram sestaví z fragmentů až příjemce, který výsledek předává do vyšší síťové vrstvy (např. aplikaci). V praxi však může být nutné sestavovat fragmenty již dříve – například na routeru, který provádí NAT (Network address translation), protože je nutné analyzovat obsah datagramů nebo je modifikovat a přepočítávat jejich kontrolní součty (viz FTP a NAT). V tomto případě je však nutné, aby skrze takový router procházel veškerý síťový provoz k cílovému síťovému rozhraní, protože jinak by některé fragmenty mohly putovat jinou cestou a absence fragmentu by vyžadovala nový přenos celého původního velkého datagramu bez záruky toho, že příště projdou žádoucím uzlem.

Rozdíly v IPv4 a IPv6[editovat | editovat zdroj]

Mechanismus fragmentace se v IPv4 (první a v současné době nejvíce používané verze) a v novější verzi IPv6 liší v tom, která zařízení fragmentaci provádějí. V Pv4 datagramy rozdělují (fragmentují) vysílající stanice jen pro potřeby přenosu k nejbližšímu směrovači, neprojde-li datagram linkou mezi routery po cestě (velikost paketu je větší než MTU této linky), provede rozdělení datagramu router. V IPv6 (a stejně tak i v IPv4 v případě použití příznaku DF - nefragmentovat) router fragmentaci neprovádí, ale neprojde-li datagram linkou, zahodí jej a informuje o tomto odesílatele ICMP zprávou. Ten může následně přenos datagramu zopakovat s menšími (jemněji fragmentovanými) pakety.

Přestože jsou formáty hlavičky pro IPv4 a IPv6 různé, jsou pro fragmentaci používána pole s obdobným významem, takže se k fragmentaci i opětovnému sestavení datagramů lze použít stejný algoritmus pro oba protokoly.

Literatura[editovat | editovat zdroj]

  • PETERKA, Jiří. Protokol IP [online]. eArchiv.cz: Computerworld, 1992/48, [cit. 2009-11-06]. Dostupné online.  

Reference[editovat | editovat zdroj]

  1. Christopher A. Kent, Jeffrey C. Mogul. Fragmentation Considered Harmful [online]. . Dostupné online.