Vyšlo v týdeníku CHIPweek číslo 17/98, 21. dubna 1998
Vytištěno z adresy: http://www.earchiv.cz/a98/a817k180.php3

Protokoly TCP/IP

TCP/IP Protocol Suite (rodina protokolů TCP/IP)
o TCP/IP se často nesprávně mluví v jednotném čísle, jako o "protokolu TCP/IP". Ve skutečnosti jde o celou soustavu (rodinu) jednotlivých protokolů, které jsou spojeny společnou představou o tom, jak by měly vypadat a jak by měly fungovat. Tato představa vznikla v sedmdesátých letech v USA, pro potřeby budování tehdy teprve se rodícího Internetu - ten je také na protokolech TCP/IP vybudován. Neznamená to ale, že by protokoly TCP/IP byly výhradní specialitou Internetu. Jde vlastně o ucelenou "síťovou koncepci", která může být s úspěchem použita v jakékoli počítačové síti, a to jak lokální, tak i rozlehlé. Součástí rodiny protokolů je dnes více než 100 různých konkrétních protokolů, a další neustále vznikají. Kromě toho je s rodinou protokolů TCP/IP spojena i ucelená představa o tom, do jakých hierarchických vrstev by měly být rozděleny nejrůznější síťové funkce- tedy tzv. síťový model. Koncepce TCP/IP počítá s existencí čtyř takovýchto hierarchicky uspořádaných vrstev: aplikační vrstvou, transportní vrstvou, síťovou vrstvou, a vrstvou síťového rozhraní. Do nejvyšší (aplikační) vrstvy přitom zasahují jednotlivé aplikace - příslušným aplikační protokolům se budeme věnovat v dalších dílech. Nejnižší vrstvu (vrstvu síťového rozhraní) naproti tomu rodina protokolů TCP/IP vůbec "nezabydluje" - předpokládá, že zde budou použity fyzické přenosové protokoly, vzniklé jinde, mimo TCP/IP (například Ethernet, Token Ring, ATM apod.).
 
IP, Internet Protocol
Pojmenování "TCP/IP" vzniklo spojením jmen dvou zřejmě nejvýznamnějších protokolů z celé rodiny, a to protokolů IP (Internet Protocol) a TCP (Transmission Control Protocol). Protokol IP je protokolem tzv. síťové vrstvy (druhé odspodu, v rámci čtyřvrstvového modelu TCP/IP, resp. třetí, počítáno v rámci sedmivrstvého modelu ISO/OSI). Jeho úkolem je přesně to, co je hlavním úkolem síťové vrstvy: dopravovat data až na místo jejich určení, a to i přes eventuelní mezilehlé ("přestupní") uzly, neboli přes tzv. směrovače. Aby to protokol IP dokázal, musí hledat vhodné směry (cesty) v soustavě vzájemně propojených směrovačů, vedoucí až k požadovanému cíli - neboli zajišťovat to, čemu se říká směrování (routing). K tomu pak protokol IP potřebuje vhodné informace o topologii celé sítě, na kterou se snaží dívat jako na soustavu dílčích sítí, vzájemně propojených právě prostřednictvím směrovačů. Tato představa odpovídá tomu, čemu se v angličtině říká "internetwork", zkráceně "internet" (a co se na rozdíl od globálního Internetu píše s malým i) - právě této představě obecné soustavy vzájemně propojených sítí pak protokol IP vděčí za první polovinu svého jména. Kromě protokolu IP je ale síťová vrstva TCP/IP "obydlena" ještě mnoha dalšími protokoly, které většinou slouží jako "podpora" pro protokol IP - zajišťují například ošetření nestandardních situací, starají se o šíření informací potřebných ke korektnímu směrování atd.
 
TCP, Transmission Control Protocol
Protokol TCP se v rámci hierarchického vrstevnatého modelu nachází v tzv. transportní vrstvě, bezprostředně nad vrstvou síťovou, ve které sídlí protokol IP. V praxi to znamená, že protokol TCP je tzv. transportním protokolem, který sám využívá přenosových služeb síťového protokolu IP, které dále obohacuje a zdokonaluje. Jedním z takovýchto "obohacení" je i zvýšení přenosové spolehlivosti: protokol IP je tzv. nespolehlivý, v tom smyslu že když zjistí že se něco při přenosu poškodilo, nepovažuje za svou povinnost postarat se o nápravu (a poškozená data jednoduše zahodí a pokračuje dál). Transportní protokol TCP se již chová jinak - případné chyby se snaží napravit sám, a to podniknutím potřebných nápravných akcí (vyžádá si nový přenos dat, které se poškodily). Jinou odlišností protokolu TCP od protokolu IP je to, s jakými adresami tyto protokoly pracují. Protokol IP pracuje s tzv. IP adresami (viz předminule), které identifikují každý síťový uzel jako celek - protokol IP tedy "vidí" jen celé jednotlivé uzly, a nesnaží se o jakékoli jemnější rozlišení. To dělá až protokol TCP, který uvažuje různé příjemce či odesilatele v rámci jednotlivých uzlů (například různé aplikace a systémové programy, či skutečné "fyzické" uživatele apod.), a identifikuje je pomocí tzv. čísel portů. Součástí celé ucelené "síťové koncepce", kterou rodina protokolů TCP/IP představuje, je i konvence o tzv. dobře známých číslech portů - například to, že WWW server je standardně adresován číslem 80 (resp. "sedí" na portu číslo 80).
 
UDP, User Datagram Protocol
Protokol TCP není jediným transportním protokolem z rodiny TCP/IP, neboli jediným "obyvatelem" transportní vrstvy. Vedle něj existuje ještě jeden významný transportní protokol, kterým je protokol UDP. Jeho odlišností od protokolu TCP je především způsob, jakým dále "rozvíjí a obohacuje" přenosové funkce protokolu IP - protokol UDP je v zásadě nijak kvalitativně nemění. Nesnaží se například zavádět spolehlivost, a jeho služby jsou proto stejně nespolehlivé jako přenosové služby samotného protokolu IP (samozřejmě ne v tom smyslu, že by tyto protokoly samovolně nějaká data zahazovaly - pouze v případě poškození nepovažují za svou povinnost postarat se o nápravu). Jeho významnou předností, oproti protokolu TCP, je jeho vyšší efektivnost - díky tomu, že se nesnaží dělat "nic navíc", nemusí nést režii která by s tím nutně byla spojena, a může tudíž fungovat efektivněji. Zajímavý je smysl dvou alternativních transportních protokolů, TCP a UDP, z nichž jeden je spíše "minimalistický" (protokol UDP), zatížený minimální režií, zatímco druhý (TCP) je spíše maximalistický, a snaží se dělat něco navíc (oproti protokolu IP), a tudíž s větší vlastní režií: aplikace, provozované v jednotlivých uzlech sítě, si mohou samy vybrat ten z obou transportních protokolů, který jim lépe vyhovuje. Například elektronická pošta pro své přenosy volí spolehlivý protokol TCP, zatímco např. služba WWW si kvůli efektivnosti a bezestavovému způsobu fungování volí protokol UDP.
 
RTP, Real Time Protocol
Ani protokol TCP, ani protokol UDP není uzpůsoben přenosu takových dat, které mají multimediální charakter, a pro které je velmi podstatné, v jakém čase budou doručeny až na místo svého určení. Například jednotlivé snímky v rámci přenosu živého video obrazu musí být doručovány s dostatečnou pravidelností, protože jinak by vznikal nepříjemně trhavý obraz. Nicméně celá původní koncepce rodiny protokolů TCP/IP s něčím takovým nepočítala a nesnaží se jakkoli garantovat, jak dlouhou dobu se ta která část přenášených dat zdrží v kterémkoli z přestupních uzlů (směrovači). V poslední době byl proto v rámci rodiny protokolů TCP/IP vyvinut další transportní protokol, který vychází vstříc multimediálním přenosům - přesněji přenosům, které jsou citlivé na fungování v tzv. reálném čase (na velikost přenosového zpoždění, na jeho pravidelnost atd.). Tímto protokolem je protokol jménem RTP (Real-Time Protocol).
 
RSVP (Resource Reservation Setup Protocol)
K tomu, aby protokol RTP mohl fungovat tak jak má a mohl garantovat přenášeným datům, že při průchodu směrovači nedojde k jejich zdržení, musí být pro jeho potřeby vyhrazen určitý objem přepojovací kapacity v rámci zmíněných směrovačů - jinak by totiž veškerá tato kapacita byla využívána společně pro potřeby všech přenášených dat (tzv. sdílena), a žádná data by neměla přednost. Zmíněné vyhrazení části potřebné přepojovací kapacity ve směrovačích, pro potřeby protokolu RTP, zajišťuje další nový protokol z rodiny TCP/IP, jménem RSVP (Resource Reservation Setup Protocol, protokol pro nastavení rezervace zdrojů). Jméno protokolu RSVP je přitom shodné s jednou oblíbenou zkratkou, používanou v rámci elektronické pošty - končí-li nějaká zpráva slůvkem RSVP, jde o zkratku z francouzského "Repondez S'il Vous Plait", neboli: "odpovězte, prosím".