IP datagram

Z Wikipedie, otevřené encyklopedie

Pojmem datagram se označuje datový paket v protokolu IP. Název pochází z analogie s telegramem – stejně jako telegramy jsou datagramy přenášeny každý samostatně, nezávisle na ostatních. Teoreticky může každý ze skupiny datagramů odeslaných stejným strojem témuž adresátovi putovat jinou cestou než ostatní (v praxi tak divoké změny nebývají – viz směrování).

[editovat] IP verze 4 (IPv4)

Bity 0–3 4–7 8–15 16–18 19–31
0 Verze Délka hlavičky Typ služby Celková délka
32 Identifikace Příznaky Posun fragmentu
64 Životnost (TTL) Protokol Kontrolní součet hlavičky
96 Adresa odesilatele
128 Cílová adresa
160 Volby (volitelná délka)
 
Data
 
  • Verze: Verze IP, zde 4.
  • Délka hlavičky: Délka hlavičky ve čtyřbajtových slovech. Díky volbám může být hlavička různě dlouhá, proto tato položka.
  • Typ služby (Type of Service, TOS): Podle původních představ měla tato položka umožnit odesilateli, aby zvolil charakter přepravní služby ideální pro dotyčný datagram. Jednotlivé bity znamenaly např. požadavek na nejmenší zpoždění, největší šířku pásma či nejlevnější dopravu. Směrování pak mělo brát ohled na hodnotu TOS a volit z alternativních tras tu, která nejlépe odpovídala požadavkům datagramu. V praxi však k realizaci nedošlo. V současnosti se položka používá k podobným účelům – nese značku pro mechanismy zajišťující služby s definovanou kvalitou (QoS).
  • Celková délka: Délka datagramu v bajtech.
  • Identifikace: Odesilatel přidělí každému odeslanému paketu jednoznačný identifikátor. Pokud byl datagram při přepravě fragmentován, pozná se podle této položky, které fragmenty patří k sobě (mají stejný identifikátor).
  • Volby: Slouží pro fragmentaci. Definovány jsou dvě: More fragments ve významu „nejsem poslední, za mnou následuje další fragment původního datagramu“ a Don’t fragmnt zakazující tento datagram fragmentovat.
  • Posun fragmentu udává, na jaké pozici v původním datagramu začíná tento fragment. Jednotkou je osm bajtů.
  • Životnost (Time To Live, TTL): Představuje ochranu proti zacyklení. Každý směrovač zmenší tuto hodnotu o jedničku (případně o počet sekund, které datagram ve směrovači strávil, pokud zde čeká déle). Pokud tím TTL nabude hodnotu nula, datagram zahodí, protože vypršela jeho životnost.
  • Protokol: Určuje, kterému protokolu vyšší vrstvy se mají data předat při doručení. Čísla protokolů definována v RFC 1700. (TCP: 6, UDP: 17, ICMP: 1, EGP: 8,…)
  • Kontrolní součet: Ověřuje, zda nedošlo k poškození dat. Počítá se pouze z hlavičky a pokud nesouhlasí, datagram bude zahozen.
  • Adresa odesilatele: IPv4 adresa počítače, který datagram vyslal.
  • Cílová adresa: IP adresa stroje, kterému je datagram určen.
  • Volby: Různé rozšiřující informace či požadavky. Například lze předepsat sérii adres, kterými má datagram projít.

Za výše popsanou hlavičkou následuje případná výplň, která její délku dorovná na násobek čtyř bajtů (pokud jsou volby kratší, délka hlavičky se uvádí ve čtyřbajtových slovech). Za ní jsou pak umístěna samotná nesená data.

[editovat] IP verze 6 (IPv6)

Bity 0–3 4–7 8–11 12–15 16–19 20–23 24–27 28–31
0 Verze Třída provozu Značka toku
32 Délka dat Další hlavička Maximum skoků
64 Adresa odesilatele
96
128
160
192 Cílová adresa
224
256
288
320
 
Data
 

Hlavička IPv6 datagramu je jednodušší – cílem návrhu bylo umožnit její rychlé zpracování. Proto z ní byly odstraněny všechny zbytné položky i kontrolní součet, který je nutné přepočítávat na každém směrovači po cestě (protože se mění životnost). V důsledku toho se prodloužila jen na dvojnásobek (40 B proti původním 20 B), přestože délka nesených adres je čtyřnásobná. Obsahuje následující položky:

  • Verze: Verze protokolu, zde 6.
  • Třída protovozu: Význam není pevně definován, obecně má sloužit pro služby s definovanou kvalitou (podobně jako TOS v IPv4).
  • Značka toku: Koncepce toků má umožnit optimalizaci směrování pro sled datagramů tvořících jeden logický celek (např. přenos souboru z jednoho místa na druhé). Přesný význam opět dosud nebyl definován.
  • Délka dat: Délka datagramu, ovšem nepočítá se do ní úvodní 20B hlavička.
  • Další hlavička: Rozšiřující prvky jsou v IPv6 přesunuty do rozšiřujících hlaviček, které se v případě potřeby připojují za základní hlavičku. Jsou zřetězeny položkami Další hlavička, které vždy identifikují typ následující hlavičky. Poslední hlavička pak v této položce nese informaci o protokolu vyšší vrstvy, kterému mají být data předána při doručení. Pokud tedy datagram žádné rozšiřující hlavičky nemá, hned základní hlavička v této položce stanoví protokol vyšší vrstvy.
  • Maximum skoků: Životnost datagramu. Stejně jako u TTL v IPv4 zde každý směrovač zmenší hodnotu o jedničku a dojde-li do nuly, datagram zahodí.
  • Adresa odesilatele: IPv6 adresa počítače, který datagram vyslal.
  • Cílová adresa: IPv6 adresa stroje, kterému je datagram určen.