Nelze-li použít statické směrování, přichází ke slovu směrovací protokoly (routing protocols). V routeru běží proces, který komunikuje s obdobnými procesy v sousedních routerech. Aby mohla komunikace probíhat, je i zde třeba nějaká minimální statická konfigurace, stačí ovšem, aby směrovací tabulka obsahovala cesty na všechny přímo připojené sítě. Naplnění tabulky těmito základními informaci obvykle proběhne automaticky při nakonfigurování jednotlivých síťových rozhraní. Jakmile zná router cesty na své nejbližší sousedy, může již začít fungovat protokol IP a i vyšší vrstvy síťových protokolů a směrovací protokoly mohou těchto služeb využívat.
Směrovací protokoly dělíme na dvě skupiny - interní protokoly (Interior Protocols) a externí protokoly (Exterior Protocols); mohli bychom hovořit o směrování "ve velkém" a "v malém". Celý Internet (či jiná velká síť) je rozdělen do takzvaných autonomních systémů (AS). Uvnitř AS je výměna směrovacích informací zajišťována interními protokoly, globální informaci pro celou síť zajišťují externí protokoly. Routery uvnitř AS vůbec nemusí znát topologii celého Internetu, stačí, když vědí, které routery zajišťují spojení se zbytkem světa. Naopak externí routery se nemusí zatěžovat podrobnou strukturou jednotlivých AS (musí ovšem znát přiřazení sítí k AS, ve kterých jsou obsaženy) a mohou využít výhodu sdružování jednotlivých sítí do bloků.
Nebudeme se zabývat podrobnostmi o externích protokolech, ale povíme si základní informace o některých interních protokolech. Ty lze podle principu (algoritmu) činnosti rozdělit na dvě hlavní skupiny - protokoly využívající algoritmus vektoru vzdáleností (Distance Vector Algorithm) a protokoly využívající algoritmus stavů linek (Link State Algorithm). Do první skupiny patří například protokoly RIP (Routing Information Protocol) a Hello, do druhé protokoly OSPF (Open Shortest Path First), IS-IS (Intermediate System to Intermediate System) nebo IGRP.
Algoritmus distančního vektoru je jednoduchý a přímočarý. Každý router oznamuje v pravidelných intervalech svým sousedům seznam (vektor) cest na sítě, na které zná cestu, a metrik - vzdáleností do jednotlivých sítí. Dostane-li od svého souseda informaci, že některý router má lepší cestu na určitou síť, než měl ve své tabulce, zapíše si do tabulky tuto lepší cestu. Tento postup je velmi snadno implementovatelný, a proto je, především v podobě protokolu RIP, velmi rozšířený. Algoritmus funguje velmi dobře v relativně malých sítích, v sítích většího rozsahu a zejména v sítích, které obsahují záložní spoje (tedy nemají stromovou strukturu), je problém s jeho konvergencí a hrozí nebezpečí vzniku nekonzistence a zacyklení cest. Je rovněž velmi zranitelný, objeví-li se v síti router dávající nesprávné informace.
Link state algoritmus je dokonalejší, robustnější, ale také složitější (v důsledku toho i obtížněji implementovatelný, s větším nebezpečím chyb v implementaci). Na rozdíl od distančního algoritmu zde routery oznamují ostatním pouze informaci o stavu svého nejbližšího okolí, tedy o stavu linek (sítí) spojujících je s nejbližšími sousedy. Tyto informace se oznamují při změně stavu linek a navíc i pravidelně v určitých intervalech. Šíří se po celé oblasti (autonomní systém je zde obvykle rozdělen na řadu oblastí) mechanismem zvaným flooding (zaplavování). Každý router si na základě informací ode všech routerů v oblasti zkonstruuje graf celé struktury sítě v dané oblasti. V tomto grafu pak pomocí Dijkstrova algoritmu shortest-path-first zjistí nejkratší cestu ke každé síti. Výhodou algoritmu je lepší rychlost konvergence, lepší odolnost vůči chybám a nekonzistenci a je vhodný zejména v sítích se složitější topologií. Proto se i přes svou složitost začíná v současné době výrazně prosazovat, zejména jako součást protokolu OSPF.
Protože je v Internetu zapojeno velké množství různých zařízení různých výrobců, je v něm současně používáno i mnoho různých směrovacích protokolů. Je tedy nutné, aby některé routery provozovaly současně více směrovacích protokolů a informace z jednoho protokolu předávaly do protokolů jiných. Součinnost různých protokolů působí často velké starosti správcům sítí, funkčnost Internetu jako celku však dokazuje, že i tento informační Babylón je zvládnutelnou, ač obtížnou, záležitostí.
Po delším povídání o nejnižších třech vrstvách síťové hierarchie si nyní alespoň stručně řekněme něco o čtvrté - transportní vrstvě. Opět si její funkce objasníme na konkrétních protokolech používaných v Internetu: na protokolu UDP a TCP.
UDP - User Datagram Protocol - je poměrně jednoduchým rozšířením IP; oproti němu zabezpečuje navíc datagramy kontrolním součtem, takže lze rozpoznat, že při přenosu došlo k chybě. Stále ještě však není řešeno potvrzování příjmu paketu - to si musí jednotlivé aplikace, je-li to třeba, zajistit samy. Takováto strategie je pro mnohé aplikace naprosto vyhovující. UDP je vhodný tam, kde se nevyžaduje trvalé spojení komunikujících procesů a kde je potřeba posílat jednotlivé zprávy, požadavky, odpovědi apod. Protokol UDP je používán například systémem sdílení souborů NFS.
Protokol TCP - Transmission Control Protocol, který si svým významem zasloužil místo v názvu celého systému internetovských protokolů, je již poněkud složitější. Umožňuje vytvoření bezchybného, plně duplexního kanálu mezi dvěma počítači. K tomu je samozřejmě nutný mechanismus potvrzování správnosti přenášených dat, číslování datagramů, opakování ztracených nebo vadných datagramů. To vše je řešeno rafinovaně jednoduchým protokolem sliding windows, známým i z jiných síťových protokolů a aplikací. TCP se rovněž musí vypořádat s poměrně komplikovaným rozhodováním o volbě správného timeoutu pro potvrzení doručení datagramu a dalších parametrů tak, aby nedocházelo k zahlcení přenosové cesty, ale aby přitom byla maximálně efektivně využita její přenosová kapacita. K tomuto účelu slouží poměrně důmyslné algoritmy adaptace časových parametrů na konkrétní podmínky v síti. Pro vyšší vrstvy softwaru však tyto problémy zůstávají skryty, stačí pouze požádat o vytvoření komunikačního kanálu a potom už z něj jenom číst nebo do něj zapisovat data. Samozřejmostí je, že takovýchto kanálů může být v daném okamžiku otevřeno několik. Protokol TCP je velmi vhodný především pro přenos souborů, vzdálený terminálový přístup, přenos elektronické pošty a nepřeberné množství dalších aplikací.
Přeskočme nyní další dvě vrstvy síťové hierarchie, jednak proto, že jejich popis není zcela nezbytný pro pochopení dění v síti, jednak proto, že tyto vrstvy nejsou zahrnuty ve schématu protokolů TCP/IP, ale jsou skryty v nižších vrstvách a zejména v aplikacích, nebo chybějí úplně.
Výše popsané protokoly vytvářejí jakousi dopravní síť. Uživatele železnice ovšem příliš nezajímá, jak vypadají koleje, podstatné je pro něj spíše to, kam se po nich dostane či jaké zboží mu po nich někdo přiveze. Povězme si tedy o některých aplikacích nad naší dopravní sítí.
Přenos souborů je snad nejzákladnější služba, poskytovaná asi všemi existujícími síťovými systémy.
FTP - File Transfer Protocol - je klasickou internetovskou službou. Zajišťuje přenos souborů ovládaný interaktivním způsobem, obvykle z příkazové řádky, bývá ale často i jednou ze služeb graficky orientovaných uživatelských programů (Mosaic apod.). Při zahájení relace požaduje zadání jména uživatele a hesla na vzdáleném počítači - podle toho jsou pak řízena přístupová práva ke vzdáleným souborům. Kromě vlastního přenosu souborů příkazy get a put (resp. mget a mput pro přenos více souborů najednou) umožňuje vypsání adresáře, přejmenování a rušení souborů a řadu dalších příkazů. Přenos souborů je možný buď v binárním režimu nebo v textovém režimu, s případnou konverzí textu, liší-li se formát či kódování textových souborů na vzdáleném a místním počítači.
Velmi populární je takzvané anonymní FTP, kdy je k určitým archívům souborů povolen přístup, alespoň pro čtení, libovolným uživatelům v síti a nejsou kontrolována přístupová práva, pouze je vyžadována identifikace uživatele. Tímto způsobem je zpřístupněno například obrovské množství volně šiřitelných softwarových produktů, nesmírné množství zajímavých textových dokumentů a podobně.
Jinou variantou přenosu souborů je rcp (remote copy) umožňující v některých případech jednodušší použití. Umožňuje zadání požadavku na přenos souboru přímo z příkazového řádku a nevyžaduje zadání uživatelského jména a hesla. Je to ovšem možné jen tehdy, je-li na vzdáleném počítači zaznamenána informace, že takovýto přenos je určitým uživatelům určitých počítačů povolen.
Vzdálený terminálový přístup umožňuje vzdálené přihlášení (remote login) ke vzdálenému počítači. Z lokálního terminálu (konzoly) pracujeme na vzdáleném počítači stejným způsobem, jako kdybychom seděli u jeho lokálního terminálu. Vzdálený počítač přitom může pracovat pod zcela jiným operačním systémem než místní počítač. Některé programy umožňují emulaci několika různých typů terminálů, jako například VT100, VT220, grafických terminálů Tektronix, IBM terminálu 3270 a podobně. Nejznámějšími programy umožňujícími vzdálený terminálový přístup jsou telnet a rlogin.
Někdy je namísto interaktivní práce se vzdáleným počítačem potřebné pouze vykonání jednotlivých příkazů na jiném počítači. K tomu lze použít například program rsh - remote shell.
Elektronická pošta je dnes pravděpodobně nejpoužívanější službou v rozlehlých počítačových sítích. Umožňuje psát, odesílat, přijímat, odpovídat, ukládat, třídit a jinak zpracovávat korespondenci v elektronické formě. Doručení dopisu třeba na opačný konec zeměkoule může v ideálním případě trvat jen několik sekund (i když jsou ještě používány méně dokonalé systémy, kde doručení trvá mnohem déle).
Systém elektronické pošty obsahuje část zvanou Mail User Agent - MUA, představovanou programem, který interaktivně komunikuje s uživatelem. Známými MUA programy jsou například Elm, Pine, PopMail, Pegasus Mail a velké množství dalších.
Další podstatnou složkou poštovního systému je Mail Transfer Agent - MTA, jehož úkolem je doručení pošty mezi jednotlivými počítači. Toto spojení může probíhat buď přímo (například navázáním jednoho TCP spojení mezi oběma počítači), nebo v několika krocích.
Existují brány, které spojují sítě na bázi různých protokolů a používají různých způsobů přenosu pošty. Standardním protokolem používaným v Internetu je protokol SMTP - Simple Mail Transfer Protocol. Asi nejrozšířenějším programem pro přenos pošty je program sendmail.
Sdílení souborů (disků) je základní službou používanou v lokálních sítích. Umožňuje zpřístupnit soubory vzdáleného počítače tak, že s nimi lze pracovat shodným způsobem (příkazy, programy), jako by byly přímo na lokálním disku počítače. To umožňuje úsporu diskového prostoru, zjednodušení administrace velkých programových balíků a zlepšuje možnosti práce ve skupinách na společných projektech. Velmi rozšířený je systém sdílení souborů Novell Netware a existuje nesmírné množství dalších obdobných prostředků pro lokální sítě. V Internetu, především na středních a velkých počítačích, je rozšířen universálnější protokol postavený na IP, NFS - Network File System. Jeho hlavní výhodou je, na rozdíl od řady jiných, určených především pro prostředí MS DOS/Windows, že není závislý na jediném operačním systému, ale je implementován na velkém množství různých systémů.
X Window System, často označovaný jen jako X, je grafickým uživatelským prostředím (GUI - Graphic User Interface), do kategorie síťových aplikací jej ovšem řadí jeho velmi těsná vazba na síťové prostředí (především opět TCP/IP). Kromě bohatých prostředků pro ovládání grafického terminálu a práci s okny, běžných i u jiných grafických prostředí, jako jsou třeba dobře známá MS-Windows, umožňuje provozování distribuovaných grafických aplikací, kdy je aplikace na jednom počítači spuštěna (probíhá výpočet apod.) a na jiném počítači nebo grafickém terminálu je zobrazována. X Window System tak vytváří nový standard uživatelského grafického terminálu - X terminál.
V současné době získávají v prostředí Internetu mimořádnou popularitu distribuované informační systémy. Nejrozšířenější jsou systémy gopher a WWW (World-Wide Web). Umožňují zpřístupnit širokému okruhu uživatelů informace z nejrůznějších oblastí lidské činnosti - například informace vědeckého, obchodního, zeměpisného charakteru a podobně. Kromě textových informací je možné tímto způsobem zveřejnit informace obrazové (včetně video), zvukové, počítačové programy a mnohé jiné. Je používána technologie známá pod názvem HyperText. Jednotlivé informační servery jsou navzájem provázány do celosvětové informační sítě, jejíž strukturou se uživatel nemusí příliš zatěžovat; v systému vzájemných odkazů z jednotlivých informačních stránek na jiné se může volně pohybovat (pokud v nich nezabloudí) za informacemi, které ho zajímají.
Nepochybně jsme zde popsali jen nepatrný zlomek dostupných síťových aplikací, ale snad jsme alespoň čtenáře uvedli do tohoto pestrého světa. Příjemné síťování!
[1] | David M. Piscitello, Lyman A. Chapin. Open Systems Networking, TCP/IP and OSI. Addison-Wesley Publishing Company, 1993, ISBN 0-201-56334-7. |
[2] | Raj Jain. FDDI Handbook, High-Speed Networking Using Fiber and Other Media. Addison-Wesley Publishing Company, 1994, ISBN 0-201-56376-2. |
[3] | Carl Malamud. Stacks, Interoperability in Today's Computer Networks. Prentice Hall, 1992, ISBN 0-13-484080-1. |
[4] | Lenka Motyčková, Jan Staudek. Internetworking. In: SOFSEM'91 Conference Proceedings. |
[5] | František Dlabola, Jaroslav Starý. Systémy s mikroprocesory a přenos dat. Nakladatelství dopravy a spojů, OS-31-073-86-05-39. |
[6] | Dokumentace k modemu U.S. Robotics Courier V.32. |
[7] | Adam Osborne, Jerry Kane. An Introduction To Microcomputers. Volume 3, Some Real Support Devices. Berkeley, Osborne & Associates, Inc. |