Vyšlo v týdeníku Computerworld č. 42/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a342c120.php3

Router

V posledních dvou vydáních této rubriky jsme se zabývali pojmy opakovač (repeater) a most (bridge). Řekli jsme si, že v obou případech jde o "krabičku", která vzájemně propojuje dva či více kabelových segmentů lokálních počítačových sítí. Rozdíl mezi opakovačem a mostem pak spočívá v tom, jak vlastně fungují: opakovač je pouhým digitálním zesilovačem, který zesiluje a regeneruje přijímané signály a okamžitě je vysílá i do všech ostatních kabelových segmentů, které jsou na něj připojeny. Naproti tomu most (bridge) se chová inteligentněji, a snaží se zbytečně neplýtvat přenosovou kapacitou jednotlivých segmentů. Jeho hlavní funkce spočívá v odfiltrovávání takových dat, která mají svého odesilatele i příjemce v jednom a témže segmentu, a která tudíž není nutné předávat i do jiných segmentů. Další funkcí mostu je pak cílené předávání dat jen do toho segmentu, ve kterém se nachází jejich skutečný příjemce (pokud jsou k mostu připojeny více než dva segmenty). Aby mohl tuto svou úlohu plnit, musí být schopen interpretovat přenášená data alespoň do takové míry, aby z nich poznal odesilatele a příjemce.

Jestliže jsme si opakovač minule zařadili v rámci vrstvových síťových modelů do nejnižší, tzv. fyzické vrstvy, pak most je nutné zařadit do vrstvy bezprostředně vyšší, neboli vrstvy linkové. Na úrovni této vrstvy jsou přenášené bloky dat označovány jako rámce (frames) a jsou vybaveny adresou svého odesilatele a příjemce. Konkrétní forma této adresy přitom závisí na druhu sítě, resp. na použité přenosové technologii. Například v sítích typu Ethernet se na úrovni linkové vrstvy používají 48bitové adresy, zatímco například v sítích Arcnet jsou tyto adresy jednobytové. Podstatné je ovšem to, že v rámci linkové vrstvy jsou jednotlivé rámce přenášeny vždy jen mezi dvojicemi uzlů, které spolu bezprostředně sousedí (v tom smyslu, že mezi nimi existuje přímé spojení). Most, který pracuje na úrovni linkové vrstvy, proto "vnímá" skutečnou topologii sítě jen "na přímou viditelnost", a o existenci takových uzlů, se kterými nemá přímé spojení, nic netuší.

Třetím druhem "krabičky", která může propojovat dva či více kabelových segmentů, je tzv. směrovač (router). Ten si již uvědomuje topologii celé sítě, a díky tomu je pak schopen rozhodnout, kudy vede cesta do nějakého vzdáleného uzlu. Přijme-li nějaký blok dat, umí se rozhodnout, kterým směrem jej poslat dál, aby se nakonec (po případném průchodu dalšími mezilehlými uzly) dostal až ke svému konečnému adresátovi. K tomu ovšem směrovač nevystačí se stejnými informacemi, jaké má k dispozici most (bridge), ale musí se do přenášených bloků dat dívat hlouběji. V praxi to znamená, že směrovač pracuje na úrovni tzv. síťové vrstvy, která je bezprostředně nad vrstvou linkovou. Na této úrovni se přenášeným blokům dat říká obvykle pakety (packets). Ty jsou opatřeny jiným druhem adres, než jaké se používají na úrovni linkové vrstvy, a jsou vkládány do rámců linkové vrstvy (proto se směrovač musí dívat do přenášených dat "hlouběji").

Hlavním úkolem směrovače je tedy rozhodnout, kterým směrem posílat jednotlivé pakety tak, aby se dostaly až ke svým koncovým adresátům. Tomuto rozhodování (a jeho praktickému naplňování, tj. posílání paketů ve zvoleném směru) se ne náhodou říká směrování (routing). Směrovač přitom vychází ze znalosti topologie sítě a na ni pak v jednotlivých případech aplikuje algoritmus volby dalšího směru přenosu. Tomuto algoritmu se říká metoda směrování. Může mít mnoho různých podob - od neadaptivních statických algoritmů, které vychází z předem dané tabulky a nijak nereagují na jakékoli změny stavu sítě, až po takové algoritmy, které se dynamicky přizpůsobují změnám v topologii sítě, přetížení jednotlivých přenosových cest i jiným změnám.

Mezi opakovačem na jedné straně a mostem se směrovačem na straně druhé existuje zásadní rozdíl v tom, že opakovač přenáší data v reálném času, zatímco most a směrovač nikoli. Ty totiž musí nejprve načíst celý paket či rámec (nebo alespoň jeho část) do své vyrovnávací paměti, a teprve pak se podle jeho obsahu mohou rozhodnout, co s ním.

Mezi mostem a směrovačem pak existuje další zásadní rozdíl v tom, že most je pro ostatní uzly neviditelný, zatímco existenci směrovače si ostatní uzly musí plně uvědomovat. Most totiž funguje na principu odposlechu - odesilatel adresuje svůj rámec skutečnému příjemci, o kterém se domnívá, že s ním má přímé spojení (tj. že se nachází ve stejném segmentu jako on sám). Ve skutečnosti ale jde pouze o iluzi, kterou vytváří most. Ten totiž toto vysílání zachytí, rámec přijme sám a na základě v něm obsažených adres jej zase vyšle do toho segmentu, ve kterém se skutečný příjemce doopravdy nachází.

Naproti tomu směrovač, který pracuje na úrovni bezprostředně vyšší vrstvy, je pro odesilatele již plně viditelný. Pokud nějaký uzel potřebuje odeslat paket příjemci v jiném segmentu, opatří jej adresou tohoto příjemce a vloží jej do rámce linkové vrstvy, který ale pošle směrovači! Ten rámec "rozbalí", najde v něm paket síťové vrstvy a v něm adresu koncového příjemce. Podle ní se pak rozhodne, kudy paket poslat dál. Když tak učiní, paket znovu vloží do rámce linkové vrstvy a pošle jej ve zvoleném směru. Příjemcem tohoto rámce pak může být buď konečný adresát paketu (pokud se v příslušném segmentu již nachází), nebo opět další směrovač, ve kterém se celý proces opakuje. Na rozdíl od mostů jsou tedy směrovačům jednotlivé pakety explicitně adresovány.

Zásadní rozdíl je tedy i v tom, jakou iluzi vytváří jednotlivým uzlům most a jakou směrovač. V případě mostu je výsledný efekt takový, že jednotlivé kabelové segmenty logicky splývají v jeden celek (a most, který tuto iluzi vytváří, je sám o sobě neviditelný), zatímco při použití směrovače si jednotlivé segmenty z pohledu ostatních uzlů ponechávají svou vlastní identitu a směrovač je plně viditelnou bránou mezi nimi.