IPv4 protokoly a model OSI, MTU fragmentace

Petr Odvárka Tutoriály 16. října 2000

Popis IP protokolu ve vztahu k referenčnímu modelu OSI, MTU fragmentace.

Protokoly třídy TCP/IP byly vyvinuty na začátku 70-tých let pro potřeby amerického ministerstva obrany (DoD – Department of Defense) a jeho síť ARPANET (Advanced Research Project Agency´s NET). Tato síť byla navržena jako experimentální WAN s přepínáním paketů. Protože byl experiment úspěšný, došlo v dalších letech k rozvoji a vylaďování protokolového stacku a jeho adaptaci pro použitelnost i v LAN.

Začátkem 80-tých let byl TCP/IP implementován jako integrální součást Berkley UNIXu verze 4.2. V roce 1983 byl protokol TCP/IP přijat americkou armádou jako standard pro síťové komunikace.

Proč právě IP protokol získal takovou oblibu a je v něm spatřována budoucnost ? Důvodů je hned několik:

·         IP protokol není proprietární (na rozdíl od např. IPX, DecNET, SNA, …) a není uzavřený, je vyvíjen a rozvíjen na základě široké spolupráce výrobců a uživatelů;

·         není monolitický, ale je definovatelný na základě modelu OSI;

·         zajišťuje interoperabilitu mezi různými platformami (PC, Workstation, Mini, Mainframe; Unix, Windows, Mac) a výrobci (IBM, HP, Sun, PC, …);

·         jsou na něm založeny aplikace typu klient/server (např. SAP R/3);

·         jsou na něm založeny webové technologie a Internet.

Dominaci protokolu IP je vidět na grafu.

http://www.svetsiti.cz/akttema/2000/zaklady/obr17.gif

Poněkud matoucí může být to, že občas je o protokolu psáno jako o protokolu IP a někdy jako o TCP/IP. Tuto záležitost pochopíte z dalšího textu.

Popis IP protokolu ve vztahu k referenčnímu modelu OSI

7. aplikační

6. presentační

5. spojová

4. transportní

3. síťová

2. linková

1. fyzická

Application (5-7)
TCP

Application (5-7)
UDP

Transport (4)

Internet (3)

Interface (1 a 2)

OSI                                                    IP

Vrstva Interface není tímto modelem popsána. Zajišťuje protokolům IP funkčnost pro enkapsulaci datagramů a jejich přenos specifickým médiem (včetně relace mezi IP a MAC adresou).

Vrstva Internet používá protokol nazývaný Internetwork Protocol – zkratka IP a jeho prostřednictvím zajišťuje :

·         služby doručení datagramů bez závislosti na fyzické médium (vrstvu Interface);

·         adresní mechanismus;

·         směrovací schéma pro přenos dat.

Vrstva Transport zajišťuje spolehlivý přenos dat mezi dvěma koncovými uzly. Míra spolehlivosti odpovídá požadavkům aplikace. Pro přenos dat jsou používány dva typy protokolů – Trasmission Control Protocol známý zkratkou jako TCP a User Datagram Protocol - UDP.

Vrstva Application zahrnuje protokoly specifikující procedury pro uživatele (přihlašování se k serverům, přenos souborů, …). Procedury (aplikace) jsou rozděleny podle použitého protokolu vrstvy Transport. Jsou jimi protokoly UDP a TCP.

Část protokolového stacku podle 3. vrstvy OSI

Jak již bylo řečeno v předchozí části, protokol 3. vrstvy OSI (síťové) je Internetwork Protocol (IP) a jeho úkolem je zajistit adresaci a bezspojovou přepravu datagramů v rámci síťového prostředí; IP protokol má jako všechny ostatní protokoly 3. vrstvy OSI přesně definovanou adresní strukturu, kde každá adresa musí být unikátní.

V současné době je používána verze IPv4. Ta byla připravena pro přenos dat a má v moderních sítích řadu omezení, které je nutno řešit podpůrnými mechanismy a protokoly. Je připravena nová verze nazývaná IPng (IP new generation) nebo IPv6 IP version 6. I když má řadu výhod a integrované důležité mechanismy (např. podporu QoS 4 bitovým polem pro priority) k jeho masovému rozšíření zatím nedošlo a zdá se, že jen tak hned nedojde.

MTU a fragmentace

Datové komunikace používají výraz, který se nazývá MTU. Je to zkratka pojmu Maximum Transmission Unit a identifikuje maximální velikost paketu, kterou je prvek v daném prostředí schopen přenášet. Pokud dorazí na směrovač paket o velikosti větší, než kterou je přenosová trasa schopna přenést (např. při přechodu z Token Ringu používajícího 4 kByte pakety na Ethernet používajícího maximálně 1,5 kByte pakety), musí směrovač zajistit tzv. fragmentaci, neboli rozebrání paketu na menší části a cílový uzel musí zajistit opětovné složení, neboli defragmentaci.

Fragmenty procházejí přes síť jako samostatné datagramy. Aby byl koncový uzel schopen fragmenty složit do originálního datagramu, musí být fragmenty příslušně označeny. Toto označování se provádí v příslušných polích IP hlavičky.

Pokud nesmí být datagram fragmentován, je označen v příslušném místě IP hlavičky příznakem "Don`t Fragment". Jestliže takto označený paket dorazí na směrovač, který by jej měl poslat prostředím s nižším MTU a tudíž je nutnost provést fragmentaci, provede směrovač jeho zrušení a informuje odesílatele chybovou zprávou ICMP.

Příklad fragmentu včetně odpovídajících polí hlavičky (viz dále) za předpokladu, že směrovač musí originální datagram fragmentovat na MTU 280 oktetů.

originální datagram

Identification 12345
Total Lenght 500 (20 IPhlavička, + 480 data)
Fragment Offset 0
More Data Flag False

Směrovač rozdělí tento datagram na dva fragmenty:

první fragment

Identification 12345
Total Lenght 276 (20 IPhlavička, + 256 data)
Fragment Offset 0
More Data Flag True

druhý fragment

Identification 12345
Total Lenght 244 (20 IPhlavička, + 224 data)
Fragment Offset 32
More Data Flag False

Aby byl cílový uzel schopen složit originální datagram, musí mít dostatečný buffer do něhož jsou jednotlivé fragmenty ukládány na příslušnou pozici danou offsetem. Složení je dokončeno v okamžiku, kdy je vyplněn celý datagram začínající fragmentem s nulovým offsetem a končící segmentem s příznakem "More Data Flag" nastaveným na False.