zpět do archivu článků |
rejstřík |
předchozí díl |
následující díl
Jiří Peterka: Co je čím ... v počítačových sítích (53):
Protokol IP
V předcházejících dílech našeho seriálu jsme se
zabývali adresami a způsobem adresování na různých úrovních
- tedy fyzickými adresami, IP adresami i symbolickými jmény,
a dále otázkou směrování. Nyní se již budeme věnovat
konkrétním mechanismům přenosů v TCP/IP sítích.
Vraťme se však ještě jednou ke 42. dílu, ve kterém jsme
si naznačili celkovou filosofii síťového modelu TCP/IP,
a srovnávali ji s filosofií referenčního modelu ISO/OSI. Zde
jsme si uvedli, že síťový model TCP/IP vychází
z předpokladu, že zajištění spolehlivosti při přenosu dat je
spíše otázkou koncových účastníků, a nikoli otázkou
komunikační podsítě. Řečeno jinými slovy: síťový model
TCP/IP zařazuje mechanismy pro zajištění spolehlivosti
přenosů až do vrstvy transportní, a nikoli do vrstvy síťové
(resp. tzv. IP vrstvy). Od této vrstvy očekává pouze
jednoduchou přenosovou službu nespojovaného (connectionless)
charakteru, která by sice neměla samovolně ztrácet přenášené
pakety, ale na druhé straně zase není povinna podnikat žádné
nápravné akce v případě, že se některý paket skutečně
 |
Obr. 53.1.: Služby, poskytované na jednotlivých úrovních síťového modelu TCP/IP
ztratí, nebo když jej tato vrstva není z objektivních důvodů
schopna doručit - například kvůli přeplněným vyrovnávacím
pamětem, kvůli výpadku spojení atd. Takovouto nespolehlivou
nespojovanou službu však musí síťová vrstva poskytovat
jednotným způsobem v rámci celé soustavy vzájemně
propojených sítí (tj. v rámci celého internetu, s malým
"i"), bez ohledu na to, zda jsou data ve skutečnosti
přenášena po lokální síti typu Ethernet, po dvoubodovém
spoji, veřejnou datovou sítí či jiným způsobem.
Nad touto nespolehlivou nespojovanou přenosovou službou
na úrovni síťové vrstvy pak TCP/IP model buduje spolehlivou
transportní službu, a nad ní pak různé druhy aplikačních
služeb - viz obrázek 53.1.
IP, neboli Internet Protocol
Věnujme se nyní způsobu, jakým je v TCP/IP modelu
implementována výše zmíněná nespolehlivá a nespojovaná
přenosová služba na úrovni síťové vrstvy. Definuje ji
protokol, který se plným jménem nazývá Internet Protocol,
ale nejčastěji je označován zkratkou IP.
 |
Obr. 53.2.: Představa IP datagramů a datových rámců
IP protokol definuje základní jednotku dat, která je
soustavou TCP/IP sítí přenášena na úrovni síťové vrstvy,
tzv. Internet datagram, zkráceně IP datagram, a jeho přesný
vnitřní formát. Definuje také způsob, jakým mají být
jednotlivé IP datagramy směrovány, a toto směrování pak
příslušný IP software také zajišťuje. Kromě toho IP protokol
také podrobněji definuje i další aspekty poskytované
nespolehlivé a nespojované přenosové služby - například
podmínky, za jakých mohou být přenášené pakety zahazovány,
kdy mají být generována chybová hlášení a jaká tato hlášení
mají být.
IP datagram a jeho formát
Podobně jako každý jiný druh paketu či rámce, má i IP
datagram dvě základní části: řídící část, tvořenou hlavičkou
datagramu, a datovou část. Jak naznačuje obrázek 53.2., při
vlastním přenosu se tento datagram vkládá (jako data) do
datové části rámce, se kterým pracuje bezprostředně nižší
 |
Obr. 53.3.: Formát hlavičky IP datagramu
vrstva - vrstva síťového rozhraní. V hlavičce jsou pak různé
řídící informace, potřebné pro doručení datagramu resp.
rámce - v případě hlavičky rámce jde mj. o fyzickou adresu
skutečného odesilatele a bezprostředního příjemce, zatímco
v hlavičce IP datagramu jde o IP adresy koncového příjemce
a původního odesilatele. Jelikož v datovém rámci mohou být
v principu přenášeny i jiné druhy paketů, musí zde být
vyjádřeno také to, o jaký konkrétní druh paketu se v daném
případě jedná (například v sítích typu Ethernet se druh
paketu udává pomocí dvoubytové položky v hlavičce rámce,
a IP datagramy zde mají vyhrazen kód 0800H). Podobně je tomu
i na úrovni paketu, resp. IP datagramu - také v jeho
hlavičce musí být vyjádřeno, jaký je význam obsahu datové
části. V případě IP datagramu jde o jednobytovou položku,
udávájící číslo protokolu na úrovni transportní vrstvy,
kterému obsah IP datagramu patří (položka PROTOCOL, viz obr.
53.3.).
Maximální délka IP datagramu
Konkrétní formát hlavičky IP datagramu ukazuje obrázek
53.3. Za zmínku stojí například velikost položky TOTAL
LENGTH, která udává celkovou délku IP datagramu (tj. jeho
hlavičky i datové části), měřenou v oktetech (tj. v
osmibitových bytech). Jelikož tato položka má rozsah 16
bitů, omezuje tím maximální možnou velikost IP datagramu na
65 535 oktetů.
Doba života
Další zajímavou položkou je jednobytová položka TIME TO
LIVE. Ta udává, jak dlouho (měřeno v sekundách) se daný IP
datagram může nacházet v soustavě vzájemně propojených sítí.
Tato položka je jakousi pojistkou proti nekonzistentnostem
ve směrovacích tabulkách, díky kterým by mohlo dojít
k situaci, že by IP datagram byl směrován v kruhu, a obíhal
v něm nekonečně dlouho. Tomu zabraňuje právě tato položka,
jejíž obsah je každá mezilehlá brána povinna snižovat podle
toho, jak dlouho se v ní příslušný datagram "zdrží". Jakmile
dojde k vynulování položky TIME TO LIVE (doslova: doba
života), je podle pravidel IP protokolu brána oprávněna daný
IP datagram zahodit.
Fragmentace datagramů
Skutečnost, že IP protokol musí být schopen přenášet
své datagramy prostřednictvím různých druhů přenosových
cest, má některé významné důsledky. Například velikost
datových rámců, přenášených na úrovni vrstvy síťového
rozhraní TCP/IP modelu, je závislá na konkrétní přenosové
technologii, pomocí které je daná dílčí síť realizována. V
případě lokálních sítí typu Ethernet je to 1500 oktetů,
zatímco například sítě Token Bus připouští rámce až do
velikosti 8191 oktetů, a veřejné datové sítě na bázi
doporučení X.25 pracují s rámci až do velikosti 4096 oktetů.
Některé moderní přenosové technologie však pracují s mnohem
menšími rámci - například jen 128 oktetů či ještě méně.
Protokol IP se ale dost dobře nemůže přizpůsobit nejmenšímu
možnému formátu rámce, aby do něj mohl vždy vložit svůj IP
datagram celý. Proto musí počítat s možností fragmentace
(viz též 41. díl našeho seriálu), při které pro potřeby
přenosu dochází k rozdělení původního datagramu na několik
dílčích fragmentů - tak velkých, aby se již vešly celé do
těch rámců, které je příslušná síť schopna skutečně přenést
- viz obr. 53.4. Jak jsme si již také naznačili ve 41. dílu,
jde přitom o tzv. netransparentní fragmentaci, při které
jednotlivé fragmenty skládá do původního celku až jejich
koncový příjemce. Ten pak k tomu využívá položky
IDENTIFICATION, FLAGS a FRAGMENT OFFSET jednotlivých
fragmentů.
Nepovinné části IP datagramů
 |
Obr. 53.4.: Představa fragmentace
Položka IP Options, která v hlavičce IP datagramu
následuje IP adresu konečného adresáta, je položkou
nepovinnou. Je určena především pro potřeby testování
a ladění. Pomocí této položky, která má proměnnou délku, je
například možné zaznamenávat cestu, kterou je příslušný
datagram postupně přenášen - což je neocenitelné zvláště pro
potřeby správy sítí. Kromě IP adres bran, kterými datagram
postupně prochází, je možné v této položce zaznamenávat
i čas, kdy datagram jednotlivými bránami prochází. Dalším
mechanismem, velmi užitečným pro správu vzájemně propojených
sítí, je pak možnost explicitně předepsat v této položce
trasu, kterou má být IP datagram doručen.
zpět do archivu článků | rejstřík |
předchozí díl |
následující díl
Tento článek může být volně šířen, pokud se tak děje pro studijní účely, na nevýdělečném základě a se zachováním tohoto dovětku. Podrobnosti hledejte zde, resp. na adrese
http://ksi.ms.mff.cuni.cz/~peterka/archiv/copyleft.htm