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

Bridge

Lokální počítačové sítě se v poslední době čím dál tím více zpronevěřují svému přívlastku "lokální"; jejich dosah se začíná měřit spíše na kilometry než na metry a počet jejich uzlů se mnohdy místo na jednotky počítá na desítky až stovky. Budování takovýchto sítí pak ale již začíná narážet na různá technická omezení, vyplývající z použitého druhu kabeláže. O tom, jak je tomu při použití koaxiálního kabelu, jsme se již zmiňovali v předchozích vydáních této rubriky - jakmile je třeba propojit uzlové počítače na větší vzdálenost, než dovoluje jeden souvislý segment kabelu (tj. 500 metrů u tzv. tlustého či 185 metrů u tzv. tenkého koaxiálního kabelu), nebo je třeba zapojit více stanic, než kolik je přípustné připojit k jednomu segmentu (tj. 100 u tlustého a 30 u tenkého kabelu), je zapotřebí použít více kabelových segmentů. Ty je ovšem nutné mezi sebou vhodně propojit.

Jak jsme si již také naznačili, takovéto propojení je vždy realizováno "krabičkou", která ale může fungovat více různými způsoby. Minulý díl této rubriky jsme věnovali jedné z možností, spočívající v průběžném zesilování signálů, přenášených jedním nebo druhým směrem, a v jejich nezbytné regeneraci. Šlo tedy o případ, kdy zmíněná "krabička" funguje jako pouhý digitální zesilovač, který všechno, co "zaslechne" z jedné strany (tj. z jednoho kabelového segmentu), okamžitě "zopakuje" druhé straně (druhému segmentu, resp. všem ostatním segmentům, které jsou na něj napojeny). Proto se takto fungujícímu zařízení říká opakovač (repeater).

Pokud bychom chtěli opakovač zařadit do některé z vrstev, které se dnes u počítačových sítí s tak velkou oblibou rozlišují, pak by nutně šlo o tu nejnižší z nich (označovanou jako fyzická). Opakovač totiž skutečně pracuje na nejnižší možné úrovni, na které rozlišuje pouze jednotlivé bity (resp. diskrétní stavy číslicových signálů), ale nijak nevnímá jejich význam. A právě to je jeho velkou výhodou i nevýhodou současně.

Jelikož se opakovač nemusí zdržovat interpretací jím procházejících dat, může být velmi rychlý - může pracovat "v reálném čase" a okamžitě předávat z jedné strany na druhou skutečně vše, co kde zaslechne. To ale není zdaleka vždy výhodné.

Představme si jednoduchý příklad: dva kabelové segmenty spojené opakovačem a čtyři uzlové počítače A, B, C a D připojené tak, že uzly A a B jsou na jednom segmentu a uzly C a D na druhém. Teď si představme, že uzel A právě komunikuje s uzlem B. Jelikož se oba tyto uzly nachází ve stejném segmentu, mohla by veškerá jejich komunikace zůstávat pouze "uvnitř" tohoto segmentu a vůbec by nemusela být přenášena i do druhého segmentu, kde navíc brání případné souběžné komunikaci uzlů C a D. Pokud jsou ale oba segmenty spojeny opakovačem, ten není schopen rozpoznat, co by mohlo zůstat lokální, a co nikoli, a proto musí přenášet z jednoho segmentu do druhého skutečně vše.

Nevhodnost takovéhoto způsobu fungování opakovače je v sítích typu Ethernet ještě umocněna podstatou jejich přístupové metody, která připouští možnost tzv. kolizí (neboli situací, kdy více uzlů začne vysílat najednou - viz CW 33/93). V ethernetovských sítích kolize opakovači prochází, a šíří se tak z jednoho segmentu do všech ostatních (i když její příčina může mít lokální charakter).

Pokud bychom chtěli, aby "krabička" mezi dvěma kabelovými segmenty sama dokázala rozpoznat, co musí přenést z jedné strany na druhou, a co naopak nemusí, pak je třeba ji vybavit určitou mírou inteligence. Pokud tato inteligence stačí právě na to, aby se "krabička" dokázala sama rozhodnout, zda data mohou zůstat lokální v určitém segmentu (a pak s nimi jednoduše nic nedělat), nebo zda nikoli (a pak se zachovat jako opakovač a rozeslat je do všech ostatních segmentů), pak jde o tzv. bridge (česky: most, někdy též: můstek). Kdybychom tento požadavek ještě zpřísnili a chtěli, aby "krabička" v tomto druhém případě nerozesílala data do všech ostatních segmentů, ale vybrala z nich jen jeden (ten, který leží na cestě ke konečnému příjemci), pak by již šlo zase o jiný druh "krabičky" (o tzv. směrovač, o kterém si budeme povídat příště).

Most tedy ke své funkci potřebuje znát formát přenášených dat, a to alespoň natolik, aby si z nich dokázal odvodit, kdo je jejich příjemcem a kdo odesilatelem. Kromě toho pak potřebuje i informaci o tom, které uzly se nachází ve kterých segmentech.

Tuto druhou skupinu informací může most získat různými způsoby. Jednou z možností je apriorní "vyplnění tabulky", kterou most ve vhodné formě dostane při svém spuštění a podle které pak pracuje, aniž by ji sám jakkoli měnil. To je jistě velmi robustní řešení, vhodné pro takové sítě, jejichž konfigurace se mění jen zcela výjimečně. V praxi je ale toto řešení používáno jen velmi málo, protože existují jiná, ještě výhodnější řešení.

Jedním z nich je nezadávat mostu apriorně umístění jednotlivých uzlů sítě v konkrétních segmentech, ale ponechat na něm, ať si tuto informaci zjistí sám. To je možné, protože most musí analyzovat každý přijatý blok dat a sledovat, kdo je jeho odesilatelem a kdo jeho příjemcem. Most si tedy může dát do souvislosti adresu odesilatele se segmentem, ze kterého příslušný blok dat přijal, a z toho si odvodit, že odesílající uzel se nachází právě v tomto segmentu. Takto se most dokáže postupně sám naučit vše, co ke své práci potřebuje. Na počátku je sice "úplně hloupý", ale tím není nijak narušena korektnost jeho fungování - je pouze méně efektivní, a to ještě jen na relativně velmi krátkou dobu. Jestliže totiž most na počátku ještě nedokáže rozpoznat, že určitý blok dat by mohl zůstat lokální v příslušném segmentu, rozešle jej i do všech ostatních segmentů. Z první odpovědi se však již dokáže náležitě poučit.

Takovýto způsob fungování mostů se označuje jako transparentní (transparent bridging), a příslušné mosty se pak podle toho označují jako transparentní. Někdy se v této souvislosti používá i výstižný přívlastek samoučící (self-learning). Mosty tohoto typu jsou velmi oblíbené zvláště v sítích typu Ethernet, kde se jiné druhy mostů prakticky nepoužívají. Pro korektní funkci mostů je ovšem velmi důležitý jeden předpoklad: jednotlivé kabelové segmenty sítě nesmí být propojeny pomocí mostů tak, aby zde vznikaly cykly (tj. musí jít o acyklický graf, resp. o důsledně stromovitou strukturu). Jinak by totiž samoučící se most mohl "zaslechnout" jeden a tentýž blok dat (tj. od jednoho a téhož odesilatele) z více stran a nedokázal by si správně odvodit, ve kterém segmentu se tento odesilatel nachází. Mosty samozřejmě lze vybavit další inteligencí, která jim umožní rozpoznat a odstranit případné zacyklení sítě. O tom si ale povíme zase až někdy příště.