====== 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: {{soubor:ipv6datagram.gif}} 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é [[fragmentace|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 [[fragmentace|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 |