Formát datagramu
Formát datagramu má v IPv6 obvyklou podobu: nejprve hlavička, za ní pak vlastní nesená data. Ovšem hlavička stojí rozhodně za pozornost. Přestože se délka adres prodloužila na čtyřnásobek, celkově má hlavička ve srovnání s IPv4 jen dvojnásobnou délku: 40 bajtů, z toho 32 B tvoří adresy odesilatele a příjemce.
Zajímavý je přístup k různým rozšiřujícím informacím. V IPv4 byly přímo součástí hlavičky, jako její nepovinné položky. V důsledku toho měla hlavička proměnlivou délku. IPv6 řeší problém zcela odlišně. Základní hlavička byla maximálně zjednodušena a obsahuje jen nejnutnější položky. Její složení i délka je konstantní.
Položka nazvaná další hlavička (next header) identifikuje, co následuje za základní hlavičkou. Může se jednat o TCP nebo UDP data, pokud datagram vystačí se základní hlavičkou. Je-li třeba přidat doplňující informaci, vloží se v podobě rozšiřující hlavičky. Každá z rozšiřujících hlaviček má svou položku další hlavička. Z jejich hodnot pak vznikne řetěz, který postupně sděluje „za základní hlavičkou je tahle rozšiřující, pak támhleta, pak ještě takováhle a pak následují data pro TCP.
Pořadí rozšiřujících hlaviček je předepsáno tak, aby nejprve byly umístěny ty, které potenciálně mohou zajímat i směrovače, jimiž datagram prochází. Celé toto uspořádání má jediný cíl: aby směrovače měly co nejlehčí práci. Prozkoumají základní hlavičku a hodnotu v položce další hlavička. Pokud je dotyčná hlavička určena pro ně, zařadí ji do zpracování a zajímají se o další. Jakmile narazí na první rozšiřující hlavičku, která není pro ně, mohou zkoumání paketu ukončit - nic dalšího zajímavého je již nečeká.
Podívejme se, jak vypadá základní hlavička IPv6 datagramu:
První čtveřice bajtů slouží vedle identifikace verze protokolu k realizaci pokročilejších směrovacích technik. Třída provozu umožňuje specifikovat požadavky na vlastnosti sítě, které daný datagram má. Prostřednictvím značky toku se pak identifikuje tok - proud datagramů od jednoho odesilatele ke stejnému cíli se stejnými vlastnostmi. Příslušnost ke stejnému toku by měla usnadnit směrování, zejména ve spolupráci se spojovanými technologiemi, jako je třeba ATM.
A už se na nás ze skříně šklebí první kostlivec. Ani jeden z těchto pokročilejších prvků zatím nebyl detailně definován. Je to zřejmě osud, protože v hlavičce IPv4 také je položka typ služby (TOS) podobného významu, u které bylo přislíbeno pozdější upřesnění. Nikdy k němu pořádně nedošlo.
Na druhém řádku najdete celkem očekávatelné údaje: délku přenášených dat, avizovanou identifikaci typu další hlavičky a konečně maximální počet směrovačů, kterými datagram ještě smí projít (max. skoků, analogie TTL z IPv4). Každý směrovač ji sníží o jedničku a dojde-li do nuly, je povinen datagram zahodit a odeslat odesilateli ICMPv6 zprávu o tomto skutku. Je to klasický způsob ochrany před zacyklením při směrování.
A dále už následují jen adresy: zdrojová a cílová. Všimněte si, že hlavička neobsahuje kontrolní součet. Zdržoval by a v praxi není potřebný (o kontrolu dat se postarají nižší vrstvy).
Ve srovnání s IPv4 zmizely také položky věnované fragmentaci. IPv6 se snaží, aby k ní pokud možno nedocházelo. Proto by komunikující partneři měli měřit MTU (maximální velikost paketu) celé přenosové trasy a posílat dostatečně malé pakety. Pokud k ní přece jen dojde, přibalí se rozšiřující hlavička Fragmentace. Fragmentovat smí jen odesilatel dat.
Přehled rozšiřujících hlaviček
Volby pro všechny | 0 | informace zajímavé pro každého po cestě (např. upozornění směrovače, že paket nese data, která by jej mohla zajímat) |
Směrování | 43 | datagram musí projít předepsanou cestou |
Fragmentace | 44 | při fragmentaci paketu nese informace nutné pro jeho složení do původní podoby |
Šifrování obsahu (ESP) | 50 | obsah datagramu je zašifrován, ESP hlavička nese odkaz na parametry pro dešifrování |
Autentizace (AH) | 51 | data pro ověření totožnosti odesilatele a původnosti obsahu |
Poslední hlavička | 59 | nic dalšího nenásleduje |
Volby pro cíl | 60 | informace určené příjemci datagramu (např. domácí adresa mobilního uzlu) |
Mobilita | 135 | pro potřeby komunikace s mobilními zařízeními |