Vyšlo v týdeníku CHIPweek č. 20/95, 13. září 1995
Vytištěno z adresy: http://www.earchiv.cz/a95/a520k130.php3

Routing

Staří Římané to měli jednoduché - všechny cesty prý tehdy vedly do Říma. Zřejmě tedy tehdejší silniční a dálniční síť vykazovala čistě hvězdicovitou topologii. Dnešní počítačové sítě ovšem takto idylicky nevypadají, a už vůbec ne celé soustavy vzájemně propojených lokálních a rozlehlých sítí. Výsledná topologie těchto spletitých konglomerátů mnohdy připomíná spíše hodně rafinované bludiště, ve kterém najít cestu z jedné sítě do druhé je značně netriviální.

Ovšem najít cestu odněkud někam je doslova životní nezbytností, mají-li vzájemně propojené sítě fungovat tak, jak od nich jejich uživatelé očekávají. Jak by jinak vypadala například taková elektronická pošta, kdyby přenosová část sítě neuměla najít cestu od odesilatele k adresátovi, a nebyla tudíž schopna zajistit korektní doručení zprávy?

Vlastní proces hledání cesty z jednoho zadaného místa na jiné zadané místo se označuje jako směrování (anglicky: routing) - to proto, že anglické route znamená cestu, resp. směr. Výsledkem aplikace „směrovacího procesu" je pak buď úplná informace o celé „trase" až k touženému cíli, nebo alespoň rozhodnutí, kterým směrem poslat přenášený blok dat dál, přes další přestupní uzly, aby se posléze dostal až ke svému konečnému cíli.

Proces směrování je vždy založen na určitém algoritmu (směrovacím algoritmu), a většinou také využívá znalosti topologie celé soustavy vzájemně propojených sítí (či alespoň jejich části). V prvním přiblížení si lze představit, že každý uzel má k dispozici tabulky (tzv. směrovací tabulky), ve kterých jsou obsaženy potřebné podklady pro jeho rozhodování při směrování. Konkrétní způsob, jakým tyto informace využije, je ale závislý na algoritmu směrování, který se v dané soustavě vzájemě propojených sítí používá.

Algoritmy směrování, které se v praxi používají, mohou být založeny na různých myšlenkách, přístupech i předpokladech. Extrémním případem může být algoritmus směrování, označovaný příznačně jako „metoda horké brambory" - je založen na tom, že každý uzel se snaží zbavit přenášených dat co nejrychleji, a tak je odešle tím směrem, který je momentálně nejméně zatížený. Zcela jiné vlastnosti má například algoritmus tzv. záplavového směrování, podle kterého jsou data současně rozesílána do všech možných směrů - tím sice vznikají četné duplikáty jedněch a týchž dat, ale na druhé straně tento algoritmus vykazuje maximální robustnost a dokáže doručit přenášená data i v situaci, kdy jednotlivé části sítě náhle přestávají být průchodné.

V běžné praxi se ale používají spíše konzervativnější metody směrování, které se snaží využívat informace o skutečné topologii poněkud inteligentněji. Například tak, že si ve svých směrovacích tabulkách pamatují kvantitativní ohodnocení (cenu) různých cest do různých uzlů, a pak mezi nimi vybírají tu nejlacinější. Ovšem co má představovat ohodnocení, resp. cena nějaké cesty? Má to být skutečná „finanční" cena, kterou někdo platí za přenos dat? Nebo má tato hypotetická cena vycházet spíše z přenosové rychlosti, a vyjadřovat tak přímo či zprostředkovaně schopnost dané cesty přenášet data? Nebo má být založena na době kterou přenos trvá, či na něčem ještě jiném?

Problémem je i průběžné udržování obsahu směrovacích tabulek, neboli informací o skutečné topologii sítě. Je to podstatné hlavně u oněch „chytřejších" metod směrování, které se snaží rozumně využívat znalosti skutečné topologie sítě, a také reagovat na její průběžné změny. V praxi to může vypadat například tak, že každý uzel pravidelně „vytrubuje do světa" informaci o tom, jaká je cena jeho spojení s nejbližšími sousedy. Ostatní uzly pak tuto informaci využívají k tomu, aby si průběžně vypočítávaly cenu jednotlivých cest v síti, a udržovaly tak své směrovací tabulky v aktuálním stavu. Má to ovšem všechno malý háček - pokud se to nezařídí dostatečně šikovně, pak takto pravidelně šířených aktualizačních informací bude strašně mnoho, a samy o sobě by mohly celou síť i zahltit. V praxi se tedy používají různá kompromisní řešení, ale o těch snad až někdy příště.