
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ě
![]() |
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.
![]() |
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žší
![]() |
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ů
![]() |