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

Protokoly TCP/IP II.

Rodina protokolů TCP/IP (TCP/IP Protocol Suite), na které je vybudován a dodnes funguje celý Internet, je skutečně velmi obsáhlou soustavou mnoha různých protokolů. Vedle "nejznámějších" protokolů jako IP, TCP či UDP sem patří i celá plejáda aplikačních protokolů, které zajišťují fungování aplikačních služeb typu elektronické pošty, přenosu soborů, služby World Wide Web apod. Patří sem ale také celá řada "technických" protokolů, které jsou nezbytné pro fungování těchto služeb, i pro fungování základních přenosových protokolů, typu IP, TCP či UDP.

 
SLIP (Serial Line Internet Protocol)
tento protokol, v doslovném překladu "IP po sériové lince" byl vyvinut pro potřeby provozování protokolu IP nad dvoubodovými spoji, typu samostatného (dvoubodového) metalického vedení, či datového okruhu vytvořeného pomocí modemů ve veřejné síti (tedy pro potřeby provozování protokolu IP po telefonních linkách). Protokol SLIP byl prvním pokusem o takovéto řešení, je samozřejmě plně funkční a stále se používá, ale je spíše na ústupu - místo něj se používá propracovanější a efektivnější protokol PPP.
 
PPP (Point-to-Point Protocol)
v doslovném překladu "protokol pro přenosy typu bod-bod" je dnes zřejmě nejrozšířenějším způsobem, jak provozovat protokol IP po dvoubodových spojích. Oproti protokolu SLIP je efektivnější (má menší vlastní režii na přenos), a podporuje také některé činnosti a má některé vlastnosti, které SLIP nemá (umožňuje např. lepší hospodaření s IP adresami, umožňuje dohodu komunikujících stran ohledně parametrů přenosu apod.). Spolu s protokolem SLIP však tento protokol poněkud vybočuje z celkové koncepce rodiny protokolů TCP/IP. Ta počítá s tím, že nebude sama naplňovat svou vrstvu síťového rozhraní (viz minule) - neboli že součástí TCP/IP nebudou technologie, které fyzicky přenáší nějaká data to (jako např. Ethernet, Token Ring, ATM apod. - s tím že tyto technologie budou vznikat mimo rámec TCP/IP). Protokoly SLIP a PPP jsou výjimkou z tohoto pravidla, protože se zabývají skutečným (fyzickým) přenosem protokolu IP po dvoubodových přenosových cestách - ale jinak jde o výjimku, která pouze potvrzuje pravidlo o tom, že v rámci TCP/IP se s úspěchem využívají technologie, vzniklé jinde.
 
RIP (Routing Information Protocol)
podmínkou pro správné fungování protokolu IP, který zajišťuje přenos na úrovni síťové vrstvy (a hlavně tzv. směrování, neboli volbu směru dalšího přenosu), je existence aktuálních a korektních informací o momentální topologii celé soustavy sítí - má-li se protokol IP rozhodnout, kudy poslat dál nějaký datový paket, musí mít informaci o tom, kudy vede jaká cesta. Skutečná topologie každé soustavy vzájemně propojených sítí (a samozřejmě i celého Internetu) se však může dynamicky měnit, a tak je vhodné, aby se i protokol IP průběžně "dozvídal" o všech změnách. Právě k tomuto účelu slouží protokol RIP, který průběžně rozesílá mezi všechny uzly sítě informace o tom, jaká je momentální topologie celé soustavy vzájemně propojených sítí. Právě tyto průběžně aktualizované informace pak využívá protokol IP ke svým konkrétním rozhodnutím v rámci směrování.
 
OSPF (Open Shortest Path First)
Protokol RIP je relativně staršího data a vzniknul s představou, že bude průběžně distribuovat informace o topologii takové soustavy vzájemně propojených sítí, která není příliš velká - určitě ne v takovém rozsahu, jaký se týká většiny částí dnešního Internetu. Rozsah informací, které protokol RIP "roznáší" o každém jednotlivém spoji je relativně velký, a hlavně s růstem celé soustavy sítí velmi rychle roste. Proto je tento protokol dnes stále častěji nahrazován protokolem OSPF, který slouží přesně stejnému účelu (průběžné distribuci směrovacích informací), ale má menší režii a je lépe škálovatelný, tj. tato jeho režie s růstem celé soustavy sítí neroste tak rychle, jak by rostla v případě protokolu RIP.
 
ICMP (Internet Control Message Protocol)
Protokol IP, který je hlavním přenosovým protokolem na úrovni síťové vrstvy, funguje tzv. nespolehlivě - když zjistí, že se něco při přenosu poškodilo, nepovažuje za svou povinnost postarat se o nápravu (ale počítá s tím, že o ev. nápravu se postará někdo jiný, a to vyšší vrstvy). Protokol IP tedy má právo zahodit taková data, u kterých zjistí že jsou nějakým způsobem poškozena (samozřejmě je nezahazuje bezdůvodně). I když nemá povinnost postarat se o nápravu, přesto se snaží alespoň informovat o tom, že se něco špatného stalo. Právě k tomuto účelu pak využívá další z "doprovodných" protokolů, protokol ICMP. Ten je jakýmsi "poslem špatných zpráv" - sám nenapravuje žádné chyby či závady nebo jiné nestandardní situace, ale pouze přenáší zprávy o tom, že něco je v nepořádku. Příkladem může být zacyklení datového paketu, k němuž může dojít např. v důsledku chybných informací o topologii (pokud např. protokol RIP či OSPF rozšíří nesprávnou informaci, v důsledku které bude datový paket cyklicky přenášen v kruhu, aniž by se dostal na míst svého určení). Protokol IP má zabudovány mechanismy proti takovémuto zacyklení: dokáže jej rozpoznat a zacyklený paket má právo bez náhrady zahodit. Využije však protokol ICMP k tomu, aby odesilateli tohoto paketu poslal zprávu ve smyslu "došlo k zacyklení tebou vyslaného paketu". Na základě této informace pak mohou nastoupit další opravné mechanismy, zásahy správce sítě apod.
 
BOOTP (Bootstrap Protocol)
Každý uzel v TCP/IP síti musí být vybaven určitou základní množinou konfiguračních informací - musí znát svou vlastní IP adresu, musí znát IP adresu alespoň jednoho směrovače, vedoucího ven z jeho dílčí sítě do ostatních sítí, dále musí znát adresu alespoň jednoho DNS serveru, aby věděl kam se má obracet se svými požadavky na převod symbolických doménových jmen na číselné IP adresy. Tyto informace mohou být každému uzlů doslova "vrozeny" - může si je uchovávat přímo u sebe, nejspíše na svém pevném disku, nebo je dokonce může mít "vypáleny" ve vhodné pevné paměti. Z hlediska správy sítě i správy aplikací to ale není nejvhodnější řešení, a v případě tzv. bezdiskových stanic dokonce řešení nemožné. Součástí rodiny protokolů TCP/IP jsou ale i takové protokoly, které umožňují aby si takovéto konfigurační informace každý uzel mohl dynamicky získat od někoho, kdo je ochoten mu je poskytnout - od specializovaného konfiguračního serveru, na kterém jsou potřebné informace uchovávány a kde mohou být také centrálně spravovány. Protokol BOOTP slouží právě tomuto účelu, a vychází vstříc dokonce i bezdiskovým stanicím, kterým umožňuje tzv. počáteční zavedení jejich operačního systému (tzv. bootstrap, odsud také jeho název) - protokol BOOTP poskytne startující (tzv. bootující) stanici přesný odkaz na místo, odkud si může vyzvednou svůj operační systém a vše, co potřebuje ke svému startu (tzv. boot image).
 
DHCP (Dynamic Host Control Protocol)
Protokol BOOTP je řešení, které je už delší dobu k dispozici, a v době jeho vzniku nemohly být anticipovány všechny potřeby v oblasti dynamického poskytování konfiguračních informací nejrůznějším síťovým uzlům a jejich správy. Proto je vcelku přirozené, že se časem objevily novější a propracovanější protokoly, schopné nahradit základní funkčnost protokolu BOOTP a poskytnout i mnoho dalších potřebných funkcí. Příkladem je protokol DHCP (Dynamic Host Control Protocol), často nesprávně považovaný za proprietární řešení firmy Microsoft - ta jej totiž implementovala ve svých produktech jako první (a podpora je DHCP standardní součástí všech implementací TCP/IP v prostředích MS Windows). Protokol DHCP (stejně jako BOOTP) přitom vychází z architektury klient/server a počítá s existencí konfiguračního serveru (DHCP serveru), který poskytuje potřebné konfigurační informace uzlům, které vůči němu vystupují jako jeho klienti. Jednou z jeho odlišností oproti protokolu BOOTP je například to, že dokáže "propůjčovat" svým klientům IP adresy pouze dočasně, jen na dobu jejich skutečné potřeby, a pak je zase odebírat a využívat jinak.