Vyšlo na www.novinky.cz dne 24.3.1999
Vytištěno z adresy: http://www.earchiv.cz/anovinky/ai1843.php3

IP - Internet Protocol

V rámci rodiny protokolů TCP/IP existuje celá řada konkrétních protokolů, které mají na starosti přenos dat na různých úrovních, resp. vrstvách - nejvýznamnější mezi nimi jsou protokoly TCP (Transmission Control Protocol) a UDP (User Datagram Protocol), fungující na úrovni transportní vrstvy, a protokol IP (Internet Protocol), fungují na úrovni vrstvy síťové. Podle dvou z těchto tří protokolů (TCP a IP) dokonce dostala celá rodina protokolů TCP/IP i své jméno.

Protokol IP je přitom "hlavním obyvatelem" síťové vrstvy, neboť právě on plní rozhodující část úkolů této vrstvy. Jde zejména o přenos datových paketů (označovaných jako IP datagramy) přes mezilehlé uzly (směrovače) až k jejich konkrétnímu cíli. Do tohoto úkolu spadá zejména rozhodování o volbě dalšího směru přenosu IP datagramu, neboli tzv. směrování.

Základní koncepce protokolu IP

Celá koncepce protokolu IP vychází z představy tzv. katenetového modelu - tedy z očekávání, že přenosy dat se odehrávají v rámci soustavy dílčích sítí, které jsou vzájemně propojeny na úrovni síťové vrstvy, neboli prostřednictvím směrovačů (routerů zde též: IP routerů). Protokol IP přitom "sedí" v těchto směrovačích a rozhoduje o tom, kudy bude každý konkrétní datový paket směrován (odeslán), aby se i po případných dalších "přeskocích" dostal ke svému cíli. Této činnosti se ne náhodou říká "směrování" (routing), a jde o rozhodování, které využívá informace o topologii sítě (tzv. směrovací informace).

[Obr: bs9_1.gif (4074 Bytes)]
Představa katenetového modelu

Důležité je, že jednotlivé dílčí sítě mohou být dosti odlišné - někde se jedná o rychlé a poměrně spolehlivé sítě LAN na bázi Ethernetu, zatímco jinde může jít o mnohem méně spolehlivé veřejné sítě či ještě jiné druhy sítí. Protokol IP však nad takto potenciálně různorodou soustavou vytváří jednotné přenosové prostředí - sám nabízí vždy stejné přenosové služby, bez ohledu na to, jak to funguje "pod ním", na úrovni vrstvy síťového rozhraní. Tento efekt lze připodobnit k efektu jednotné pokličky, kterou protokol IP vytváří nad jednotlivými dílčími sítěmi, a přitom zakrývá jejich specifika.

[Obr: bs9_2.gif (5285 Bytes)]
Představa jednotné pokličky

Jaká je jednotná poklička?

Zůstaneme-li ještě na chvilku u představy jednotné pokličky, pak pro správné pochopení základní koncepce protokolu IP je dobré si popsat, jak tato jednotná poklička vypadá a funguje.

Pokud jde o adresování, zde jsme si již v předchozích dílech vysvětlili, že jednotná poklička (tj. protokol IP) pracuje s ryze abstraktními adresami, tzv. IP adresami v rozsahu 32 bitů, které nemají bezprostřední analogii v adresách používaných na úrovni vrstvy linkového rozhraní (tedy například s ethernetovými adresami, s adresami dle doporučení X.25 apod.). Možnost používání takovýchto adres přitom vyžaduje, aby existovala možnost převodu síťových adres (tj. IP adres) na adresy fyzické (např. ethernetové adresy) i možnost opačného převodu. V rámci rodiny TCP/IP k tomuto účelu existují specializované protokoly, které tyto převody zajišťují (jde zejména o protokol ARP, Address Resolution Protocol, a RARP, neboli reverse ARP).

Dalším důležitým koncepčním rysem protokolu IP je volba mezi spolehlivým a nespolehlivým způsobem fungování. Zde rozhodně nejde o to, že by nějaký nespolehlivý přenosový protokol sám a z vlastní iniciativy zahazoval nějaké datové pakety - jde o to, jak se zachovat v situaci, kdy se ukáže, že se něco nepodařilo přenést tak, jak by bylo zapotřebí. Nespolehlivý protokol má právo očekávat, že o případnou nápravu se postará někdo jiný, a sám nemusí nic podnikat (takže poškozená data jednoduše zahodí a pokračuje dál). Naproti tomu spolehlivý protokol považuje za svou povinnost postarat se o nápravu, a tak podnikne nezbytné kroky. S těmi je ale vždy spojena určitá režie (typicky je nutné znovu přenést data, která se původně přenesla chybně), a obecně tedy spolehlivé protokoly vykazují větší režii na vlastní fungování než protokoly nespolehlivé. Autoři protokolu IP se při rozhodování mezi spolehlivou verzí a verzí nespolehlivou rozhodli pro variantu nespolehlivou - dospěli k závěru, že hlavním úkolem protokolu IP je přenášet data, a na tuto úlohu by se měl maximálně soustředit a plnit ji s maximální možnou efektivností. Případnou nápravu chyb může efektivněji zajistit někdo jiný (typicky: protokoly vyšších vrstev).

Ještě dalším a důležitým "stupněm volnosti" při volbě koncepce protokolu IP bylo to, zda jej zvolit jako tzv. spojovaný (connection-oriented) přenosový protokol, nebo naopak jako tzv. nespojovaný (connectionless) protokol. Rozdíl lze připodobnit k rozdílu mezi fungováním telefonní sítě (která funguje na spojovaném principu) a fungováním běžné listovní pošty (která přenáší jednotlivé dopisy nezávisle na sobě bez předchozího kontaktu s příjemcem, a tedy na nespojovaném principu). V konkrétním případě datových přenosů jde o to, zda před každým přenosem bude vždy navazováno spojení, zahrnující vytýčení cesty, po které pak budou datové pakety následně přenášeny (což minimalizuje průběžné nároky na směrování, které se řeší jen při navazování spojení), nebo zda bude každý jednotlivý datový paket přenášen naprosto nezávisle na ostatních, bez jakéhokoli vytýčení cesty. Autoři protokolu IP se rozhodli pro nespojovanou variantu, a to především pro její robustnost - při eventuelním výpadku není potřeba provádět jakékoli nápravné akce, které by u spojovaného způsobu fungování naopak byly nezbytné.

Svou roli při rozhodování určitě sehrála i skutečnost, že spojovaný přenos je výhodnější u rovnoměrnějších a časově soustředěných přenosů, zatímco nespojovaný přenos je naopak výhodnější při méně intenzivních a spíše příležitostných přenosů (přičemž u vznikajícího Internetu, pro který byl protokol IP vytvářen, se očekávala právě tato druhá varianta provozu).

Sečteno a podtrženo, protokol IP používá abstraktní IP adresy a funguje jako nespolehlivý a nespojovaný.

IP nade vše

Celý protokol IP je navržen spíše minimalisticky, v tom smyslu, že od přenosových technologií z vrstvy síťového rozhraní očekává spíše méně než více. To na jedné straně přináší určité nevýhody, a na straně druhé i četné výhody.

Mezi nevýhody patří zejména to, že když nějaká přenosová technologie dokáže poskytnout "něco navíc", protokol IP to nedokáže využít. Příkladem může být technologie ATM, která dokáže podporovat tzv. kvalitu služeb a různým druhům provozu garantovat požadované parametry přenosu. Protokol IP však s ničím takovým nepočítá, a je-li implementován nad technologií ATM, její přednosti nedokáže využít.

Mezi výhody "minimalistické koncepce" protokolu IP patří zejména skutečnost, že je možné jej implementovat snad nad každou fyzickou přenosovou technologií (neboli přenosovou technologií spadající do vrstvy síťového rozhraní). To ostatně bylo i záměrem autorů protokolu IP, kteří počítali s tím, že celou rodinu protokolů TCP/IP připravují pro potřeby vznikajícího Internetu, ke kterému se budou chtít připojovat opravdu velmi různorodé sítě - protokol IP pak nad nimi vytváří jednotnou pokličku neboli jednotné přenosové prostředí a funguje dodnes jako významný sjednocující prvek či vzájemné "pojítko" mezi různými sítěmi s různými fyzickými přenosovými technologiemi. Dnes je situace taková, že dokonale naplňuje slogan "IP over everything" neboli "IP nade vším" - protože dnes je protokol IP skutečně implementován snad opravdu všude. Díky tomu také dnešní Internet (ale nejen on, obecně jakákoli síť na bázi TCP/IP) může být provozován nad prakticky libovolnými přenosovými technologiemi, od metalických okruhů přes pozemní rádiové až třeba po satelitní spoje.

Co IP protokol nenabízí

Pro korektní seznámení s podstatou protokolu IP je vhodné si naznačit i jeho záporné vlastnosti. Kromě již citované neschopnosti využít specifické vlastnosti fyzických přenosových technologií a malého adresového prostoru IP adres (viz minulé díly), jde zejména o absenci podpory "kvality služeb" - neboli o neschopnost protokolu IP poskytovat různým druhům přenášených dat různé podmínky (například garantovat maximální přenosové zpoždění či pravidelnost doručování).

Zajímavé je, že stávající verze protokolu IP (označovaná jako verze č. 4 neboli IPv4) v hlavičce svého datagramu počítá dokonce s 8 bity, které slouží právě potřebám vyjádření požadavků na určité specifické zpracování (prioritu, přednost, požadavek na malé zpoždění, vyšší spolehlivost či vyšší propustnost). Respektování takto vyjádřených požadavků je ale volitelné, a většina implementací protokolu IP je nerespektuje (tj. ke všem přenášeným datagramům se chová stejně).