Vzájemné propojování sítí - I.

Při našem povídání o referenčním modelu ISO/OSI jsme až doposud uvažovali pouze v dimenzích jediné počítačové sítě, a neuvažovali její možné vazby na sítě jiné. Uživatelé však dnes stále naléhavěji volají po vzájemném propojování existujících sítí, které by bylo co možná nejuniverzálnější, ale současně i co nejméně "viditelné", tak aby o něm museli vědět co nejméně. V ideálním případě by měla zcela zaniknout jakákoli specifika jednotlivých sítí, aby se uživatel mohl domnívat, že pracuje v jedné jediné, všezahrnující síti. Podívejme se proto nyní, jaké jsou principiální možnosti vzájemného propojování sítí. V dalších dílech si pak užeme, jak k této problematice přistupuje referenční model ISO/OSI i některé další síťové architektury..

Vzájemným propojením dvou či více sítí stejného či různého typu vzniká větší celek, pro který má angličtina velmi výstižné označení: internetwork, nebo jen internet (zatímco Internet - s velkým I - je jméno celosvětové počítačové sítě resp. konglomerátu sítí, který vznikl v USA ze zárodečné sítě ARPANET, viz např. CW 7/92, str. 12). Čeština však vhodný termín pro označování vzájemně propojených sítí teprve hledá).

Problematika vzájemného propojování sítí a jejich součinnosti (v angličtině: internetworking) je sama o sobě značně rozsáhlá, rychle se vyvíjí, a je dnes velmi populární. V současné době existuje řada různých koncepcí toho, jak počítačové sítě navzájem propojovat. Pro jejich pochopení je ale klíčovým momentem poznání toho, že vzájemné propojení je možné realizovat na různých úrovních vrstvového síťového modelu - od fyzické až po aplikační vrstvu.

Základní myšlenka vzájemného propojení je naprosto triviální - dvě nebo více sítí se propojí prostřednictvím k tomu určených zařízení, obecně označovaných jako relay, v terminologii ISO též: Intermediary System resp. IS, případně: Internetworking Unit resp. IWU.

Opakovače

Zmíněné propojující zařízení přitom může být pouhým zesilovačem elektrických signálů, které jsou v síti přenášeny. Tak je tomu například v lokálních sítích typu Ethernet, které umožňují dosáhnout celkové délky kabeláže až 2,5 kilometru, ale jednotlivé připojovací obvody (tzv. transceivery) jsou schopné generovat elektrické signály s dosahem jen asi 500 metrů. Pak je nutné sestavovat celé kabelové vedení ze segmentů (souvislých úseků kabelů) délky maximálně 500 metrů (v případě tzv. tlustého Ethernetu, resp. 200 metrů v případě tzv. tenkého Ethernetu). Jednotlivé segmenty se pak musí spojovat pomocí zařízení, která se v tomto případě nazývají opakovače (repeaters), a fungují právě a pouze jako zesilovače elektrických signálů. Opakovače tedy pracují na úrovni fyzické vrstvy, neboť vzhledem k zesilování elektrických signálů "vnímají" jen jednotlivé přenášené bity, ale nikoli již celé bloky (rámce) dat.

 

Mosty

Nevýhodou opakovačů je skutečnost, že "propouští" veškerý provoz z jednoho segmentu do druhého, i když by to vůbec nebylo nutné. Výhodnější by jistě byl případ, kdyby propojovací zařízení dokázalo správně rozpoznat, která data mohou zůstat "uvnitř" příslušné části sítě (segmentu), a nezatěžovat jimi provoz v ostatních segmentech. K tomu je ale nutné, aby propojovací zařízení "vnímalo" celé přenášené rámce a znalo jejich formát natolik, aby dokázalo zjistit fyzickou adresu jejich odesilatele a příjemce (a podle toho je pak propustit do sousedního segmentu či nikoli). To ovšem znamená, že takovéto propojovací zařízení, které se pak nazývá most (bridge), musí pracovat na úrovni linkové vrstvy (resp. na úrovni podvrstvy řízení přístupu k médiu (vrstvy MAC) v případě lokálních sítí dle standardů IEEE 802), kde již lze fyzické adresy příjemce a odesilatele rozpoznat.

Rozdíl mezi opakovačem a mostem spočívá dále i v mechanismu jejich fungování. Zatímco opakovač nemá paměť a přenášená data resp. signály zpracovává průběžně (je pro ně vlastně "průchozí"), most již pracuje na principu "store and forward" (přijmi a předej dál). Most tedy z každé strany průběžně přijímá jednotlivé datové rámce, a podle adres v nich se rozhoduje, zda je předá na opačnou stranu či nikoli. Existuje přitom více konkrétních postupů a algoritmů, které mohou mosty v této souvislosti používat.

Jednou z nejjednodušších variant je ta, při které most průběžně vyhodnocuje odesilatele jednotlivých rámců, a podle toho, ze kterého směru příslušný rámec přijal, si pak sám odvozuje umístění jednotlivých uzlů. Záhy se tak sám dokáže "naučit" topologii sítě. V době, kdy ji ještě nezná, jednoduše předává všechny rámce do všech ostatních segmentů.

Tato metoda je velmi atraktivní proto, že nevyžaduje žádné konfigurování mostu (který se všechno potřebné naučí sám). Jednotlivé uzly v síti přitom nemusí o jeho existenci vůbec vědět - proto se také takovýto typ mostu označuje jako tzv. transparentní most (transparent bridge). Lze jej ovšem použít jen v takových sítích, které mají přísně stromovitou strukturu, kdy mezi každými dvěma uzly existuje vždy jen jedna jediná cesta. Pro obecnější topologie jsou pak nutné jiné, složitější algoritmy práce mostů.

Pokud jde o technické provedení, mohou být opakovače i mosty konstruovány tak, aby vzájemně propojovaly jen dva segmenty, nebo také více segmentů najednou. Pak jde o tzv. vícevstupové opakovače (multiport repeater) resp. vícevstupové mosty (multiport bridge).

Mosty se vyrábí i ve variantě tzv. vzdálených mostů (remote bridge). Od standardní varianty mostů (označovaných pro odlišení také jako místní mosty resp. local bridges) se vzdálené mosty liší v tom, že jde vlastně o dvě relativně samostatné "poloviny" mostu, příznačně nazývané půlmosty (halfbridge), které jsou mezi sebou vhodně propojeny - např. pevným telefonním okruhem, optickým kabelem apod. Umožňují propojit dva segmenty sítě, které nejsou fyzicky blízko sebe. Takto lze například propojit dva segmenty lokální sítě ve dvou objektech na opačných stranách města, přičemž výsledný efekt je takový, že oba segmenty tvoří jedinou "logickou" síť (z pohledu síťové vrstvy a všech vyšších vrstev je totiž existence místních i vzdálených mostů transparentní).

Některé mosty pak mohou mít i schopnost selektivního filtrování některých rámců v závislosti na jejich odesilateli či příjemci, denní době, intenzitě provozu apod. Pak jde o tzv. routing bridges, které správcům sítí umožňují regulovat přenosy mezi jednotlivými segmenty - umožňují například zakázat v době "špičky" přístup z jednoho segmentu do jiného, a při poklesu intenzity provozu jej pak zase následně povolit.

Mosty i opakovače se tedy používají pro spojování jednotlivých segmentů lokálních sítí. Opakovače jako jednodušší a lacinější (a současně i rychlejší) se pak volí spíše tam, kde intenzita provozu není velká. Použití mostů (obecně složitějších, dražších a také pomalejších než opakovače) je naopak vhodné tam, kde je potřeba vzájemně propojit segmenty s větší intenzitou provozu tak, aby se navzájem nezatěžovaly více, než je skutečně nezbytně nutné.

Velmi častou a oblíbenou topologií lokálních sítí sběrnicového typu Ethernet je zapojení s tzv. páteří (backbone), což je segment, určený především pro vzájemné propojení ostatních segmentů. Výhodou této topologie je skutečnost, že spojení mezi kterýmikoli dvěma body sítě prochází vždy nejvýše přes dva mosty. Například v budově o více patrech je možné vést jednotlivé segmenty horizontálně po patrech, a pomocí mostů je připojit na vertikálně vedenou páteř, která prochází všemi patry.

 

Vzájemné propojování sítí - II.

V minulém dílu našeho seriálu jsme si naznačili, že počítačové sítě je možné vzájemně propojovat na různých úrovních vrstvového síťového modelu. Podrobněji jsme se pak zabývali opakovači (repeaters) a mosty (bridges), které realizují propojení na úrovni fyzické resp. linkové vrstvy. Dnes budeme pokračovat možnostmi propojování na vyšších úrovních.

Vraťme se však ještě na chvilku k mostům. Jak jsme si již uvedli, používají se tyto v lokálních sítích pro spojování jednotlivých segmentů, pracují na úrovni linkové vrstvy (přesněji: na úrovni podvrstvy MAC), a při své činnosti vychází pouze z fyzických adres skutečného odesilatele a příjemce jednotlivých rámců. Vlastní datový obsah jednotlivých rámců přitom nijak neinterpretují ani nemění. Tím jsou pro ně neviditelné veškeré informace, které do obsahu vlastního rámce zakódovaly protokoly vyšších vrstev, od síťové počínaje. Je jim ovšem také jedno, které konkrétní protokoly to byly. Jinými slovy: mosty jsou zcela transparentní pro protokoly vyšších vrstev. Dokáží tedy spolupracovat s jakýmikoli síťovými (a vyššími) protokoly, a přenášet jejich pakety bez toho, že by je jakkoli transformovaly či měnily. Jednotlivé segmenty, které jsou vzájemně propojeny prostřednictvím mostů, tvoří z pohledu síťové vrstvy (i všech vyšších) jediný logický celek, který má také jedinou společnou (síťovou) adresu.

Směrovač a jeho funkce

Jakmile však budeme požadovat, aby si jednotlivé segmenty lokálních zachovaly relativní samostatnost (například vlastní síťovou adresu, možnost samostatné správy apod.), nebo když potřebujeme vzájemně propojit lokální sítě různých typů, spojujeme-li dvě lokální sítě přes síť rozlehlou nebo vytváříme-li vzájemné propojení sítí se složitější topologií, musíme k tomu použít obecnější řešení, než jaké nabízí mosty. Potřebujeme propojovací zařízení, které již pracuje na úrovni síťové vrstvy, a nazývá se směrovač (router). Teprve takovéto zařízení totiž "vnímá" vlastní obsah jednotlivých rámců (na úrovni linkové vrstvy), dokáže správně rozpoznat formát jednotlivých paketů, které jsou v rámcích přenášeny, a využít informace, které jsou v nich obsaženy.

Hlavní úkol směrovačů je vlastně shodný s úkolem síťové vrstvy - tedy postarat se o doručení paketů od jejich původního odesilatele až ke konečnému příjemci. Směrovače tedy musí přijímat rozhodnutí o tom, kudy mají dále odeslat každý jednotlivý paket tak, aby se dostal ke svému cíli - tedy zajišťovat to, čemu se běžně říká směrování (routing). Musí nutně používat nějaký algoritmus směrování, na základě kterého svá rozhodnutí přijímají. Jak jsme si již také uvedli ve 34. dílu, může mít tento algoritmus a z něho vycházející směrování statickou povahu (tj. být nezávislé na okamžitém stavu sítě), nebo může mít naopak dynamickou povahu (a reagovat na průběžnou situaci). V tomto druhém případě, který je dnes nejčastější, pak ještě potřebuje vhodnou metodu resp. protokol, prostřednictvím kterého získává potřebné informace o stavu sítě.

Další charakteristickou odlišností směrovačů od mostů je to, že jsou pro ostatní entity na úrovni síťové a linkové vrstvy viditelné. Mají své adresy, a pakety, které jimi mají projít, jim jsou explicitně adresovány (zatímco mosty zachycují veškerý provoz v každém z připojených segmentů). Proto také směrovače zpracovávají méně rámců než mosty, ovšem jejich zpracování je zase o to náročnější.

Je dobré si uvědomit, že pro funkci směrovače je nutné, aby vzájemně propojované sítě používaly stejný protokol na úrovni síťové vrstvy - podle něj totiž směrovač rozpoznává odesilatele i adresáta jednotlivých paketů, a rozhoduje o tom, kudy je dále odeslat. Není ovšem nutné, aby totéž platilo i na úrovni linkové a fyzické vrstvy. Zde se již konkrétní protokoly a přenosové technologie mohou lišit. Směrovače jsou dnes obvykle konstruovány tak, aby měly více různých rozhraní (tzv. portů), a bylo je možné vzájemně propojit například pomocí pevných okruhů, veřejných datových sítí, optických přenosových cest, a připojit k nim různé lokální sítě dle standardů IEEE 802 apod. V rámci budov jsou jednotlivé segmenty připojeny na páteřní síť pomocí mostů, zatímco páteře jsou vzájemně spojeny prostřednictvím směrovačů (propojených optickým kabelem resp. pevným okruhem)

Multiprotokolové směrovače

Požadavek stejného (a tudíž jediného) protokolu v síťové vrstvě je ovšem velmi omezující, zvláště v dnešní době, kdy vedle sebe koexistuje celá řada soustav protokolů (kromě ISO/OSI též TCP/IP, SNA, DECnet, SPX/IPX a další), a uživatelé volají po jejich co nejtěsnější integraci v rámci tzv. heterogenních sítí (tj. sítí, jejichž uzly používají různé soustavy protokolů).

Problém heterogenních sítí lze řešit v principu dvěma způsoby - konverzí protokolů, a směrováním více protokolů současně. Řešení prostřednictvím konverzí se ukázalo být značně náročné a nespolehlivé, a proto se prosadila především druhá možnost. Přední výrobci dnes nabízí tzv. multiprotokolové směrovače (multiprotocol routers), schopné pracovat současně s více různými protokoly. Multiprotokolový směrovač musí být schopen rozpoznat typ paketu, který dostane od linkové vrstvy, a podle toho pak aplikovat ten směrovací algoritmus, který k příslušnému síťovému protokolu přísluší.

 

Rrouter

V dnešní době, kdy dochází ke stále těsnějšímu propojování rozlehlých i lokálních sítí, je použití mostů i směrovačů velmi rozšířené. Rozhodnutí mezi tím, zda v určité situaci použít most či směrovač, nemusí být vždy okamžitě zřejmé, zvláště pak u lokálních sítí se složitější topologií a větším počtem používaných protokolů. V dnešní době však již existují také zařízení, která v sobě kombinují funkce obou těchto zařízení. V angličtině se pro jejich označení používá nejčastěji termín bridge/router, někdy též: brouter. Jde o zařízení, které se snaží fungovat jako směrovač, a teprve v okamžiku, kdy pro nějaký paket neumí aplikovat směrovací algoritmus, předá původní rámec dál tak, jako by to udělal most. Výhodou takovéhoto zařízení je pak i to, že se dokáže vyrovnat s takovými protokoly, které vůbec nelze směrovat (neboť nepočítají se síťovou vrstvou - jako například protokoly DECLAT (DEC Local Area Transport), LU 6.2 firmy IBM a protokoly NetBIOS).

 

Brána

Pokud je potřeba vzájemně propojit sítě zcela odlišných koncepcí, používající zcela jiné soustavy protokolů, je nutné použít propojovací zařízení, schopné provádět nezbytnou konverzi protokolů. Takovéto zařízení, označované nejčastěji jako brána (gateway, někdy též: protocol converter) pak pracuje na takové úrovni, na které je možné příslušnou konverzi zajistit - tedy například až na úrovni aplikační vrstvy.

Poznamenejme však ještě, že pojem "brána" resp. "gateway" se často používá i pro propojovací zařízení na nižších úrovních. Například v souvislosti s protokoly TCP/IP je termín "gateway" používán k označení směrovače (routeru).

 

Vzájemné propojování sítí a RM ISO/OSI

V minulých kapitolách jsme se zabývali možností vzájemného propojování počítačových sítí na různých úrovních vrstvového síťového modelu. Ukažme si nyní, jak se k této problematice staví referenční model ISO/OSI.

Referenční model ISO/OSI samozřejmě počítá s možností vzájemného propojování jednotlivých sítí - veřejných i privátních, rozlehlých i lokálních - a v důsledku toho i s tím, že spojení mezi dvěma koncovými účastníky může ve skutečnosti procházet přes jednu či více mezilehlých sítí (které se v terminologii ISO označují jako podsítě, subnetworks). Pro transportní vrstvu, která zajišťuje přímou komunikaci koncových účastníků, by ale tento fakt neměl být vůbec viditelný - proto referenční model ISO/OSI svěřuje veškerou agendu, spojenou se vzájemným propojením podsítí, vrstvě síťové.

Síťová vrstva referenčního modelu ISO/OSI se pak člení na tři podvrstvy:

 

Podvrstva přístupu k podsíti, která je z těchto tří podvrstev nejnižší, má na starosti to, co jsme až doposud přisuzovali celé síťové vrstvě jako takové - tedy především směrování jednotlivých paketů či datagramů - ovšem pouze v rámci jedné konkrétní podsítě, kde platí stejná pravidla pro směrování, kde se používají stejné adresy, kde jsou k dispozici stejné přenosové služby atd.

Sítě odlišného typu samozřejmě vyžadují různé podvrstvy přístupu, které ovšem poskytují nestejné služby, vyplývající z odlišného charakteru mechanismů a principů, na kterých jsou tyto sítě založeny. Jednotlivé podvrstvy přístupu k podsíti proto ještě není možné mezi sebou vzájemně propojit. Místo toho je nutné nejprve přizpůsobit jimi poskytované služby jednotnému standardu, což má za úkol prostřední ze tří zmíněných podvrstev, podvrstva přizpůsobení podsítě.

Pro nejvyšší podvrstvu se pak všechny podsítě "tváří" stejně. Podvrstva řízení vzájemně propojených sítí pak již může zajišťovat vše, co je potřeba k doručování jednotlivých paketů až k jejich konečnému příjemci - včetně jejich průchodu skrz jednu či několik mezilehlých sítí prostřednictvím existujících propojovacích zařízení (IS, Intermediary System).

Pro správné pochopení smyslu prostřední podvrstvy, tedy podvrstvy přizpůsobení podsítě, je vhodné si poněkud upřesnit, v čem mohou spočívat odlišnosti jednotlivých sítí resp. podsítí, a jak se projevují.

Představme si jako příklad dvě lokální sítě, propojené prostřednictvím veřejné datové sítě na bázi doporučení X.25. Jedním z nejmarkantnějších rozdílů zde bude již samotná povaha přenosových služeb na úrovni síťové vrstvy. Zatímco lokální sítě budou nejspíše používat nespojované (connectionless) služby, síť na bázi X.25 používá spojovaný (connection-oriented) mechanismus virtuální okruhů. Při přenosu jednotlivých datagramů z jedné lokální sítě do druhé je pak nutné pro každý z nich vždy znovu zřídit nový virtuální okruh, a po přenesení datagramu jej zase ihned zrušit (případně ještě chvíli počkat, zda nebude záhy požadován přenos dalšího datagramu, pro který by se již vytvořený virtuální okruh dal ještě využít). Jde tedy vlastně o emulaci mechanismu datagramové služby prostřednictvím mechanismu virtuálního okruhu, kterou zajišťuje právě podvrstva přizpůsobení podsítě.

Další možnou odlišností je maximální velikost datových paketů resp. rámců v jednotlivých podsítích. Například sítě na bázi X.25 umožňují, aby datový rámec měl až 32768 bitů, zatímco sítě typu Ethernet (resp. IEEE 802.3) připouští rámce jen do velikosti 12144 bitů, ale například sítě typu Token Bus (resp. IEEE 802.4) mohou přenášet rámce velikosti až 65528 bitů.

Problém nastává v okamžiku, kdy potřebujeme přenést pakety resp. rámce určité velikosti podsítí, která je schopna pracovat jen s menšími pakety resp. rámci - například při přenosu z jedné sítě Token Bus do jiné sítě Token Bus přes veřejnou datovou síť na bázi X.25. Zřejmým a v podstatě jediným možným řešením je rozdělit původní velký paket na několik menších paketů, tzv. fragmentů, a ty přenést jako samostatné celky. Otázkou ovšem je, kdo a kdy má provést zpětné sestavení jednotlivých fragmentů do původního celku. Zde jsou možné dva základní přístupy. První z nich, označovaný jako transparentní fragmentace (transparent fragmentation, někdy též: intranet fragmentation), předpokládá, že všechny fragmenty (dílčí pakety) jsou zpětně sestaveny do původního tvaru na výstupu z té podsítě, která fragmentaci vyvolala. Opačný přístup, označovaný jako netransparentní fragmentace (nontransparent fragmentation, někdy též: internet fragmentation), počítá naopak s tím, že jednotlivé fragmenty si do původního tvaru poskládá až jejich koncový příjemce.

Další odlišnosti mezi jednotlivými podsítěmi se týkají například odlišného způsobu adresování a formátu adres, používaných v jednotlivých podsítích, mechanismu řízení toku dat a předcházení stavu zahlcení, zajišťování správy, hlášení nestandardních situací atd.

Podvrstva řízení vzájemně propojených sítí, nejvyšší ze tří podvrstev síťové vrstvy, může být koncipována tak, aby své bezprostředně vyšší (tj. transportní) vrstvě poskytovala služby buď spojovaného, nebo naopak nespojovaného charakteru. V současné době se však i v rámci referenčního modelu ISO/OSI, původně orientovaného výhradně na služby spojovaného charakteru, prosazuje spíše nespojovaná varianta. Organizace ISO přijala dokonce normu ISO 8473, definující protokol podvrstvy řízení vzájemně propojených podsítí (protokol SNICP, viz výše). Tento protokol, známý též jako ISO Internet Protocol či jen ISO-IP, totiž předpokládá právě nespojovaný charakter poskytovaných přenosových služeb. Je nezávislý na konkrétním charakteru podsítě, a je schopen zajistit jak transparentní, tak i netransparentní fragmentaci, směrování, řízení toku atd. Je do značné míry inspirován obdobným protokolem IP (Internet Protocol) ze soustavy protokolů TCP/IP.