Vyšlo v měsíčníku PC World, 6-8/2006
Vytištěno z adresy: http://www.earchiv.cz/b06/b0800001.php3

Báječný svět počítačových sítí

Část XVII. : Internetworking

Hitem dnešního světa počítačových sítí je jejich propojování, alias tzv. internetworking. Zde se běžně operuje s pojmy a termíny jako opakovač, přepínač, směrovač či brána, případně rovnou s jejich anglickými ekvivalenty - repeater, switch, router či gateway. A když se k tomu přidá ještě rozbočovač, alias hub, může dojít k pořádnému zmatení. Pokusme se v tom udělat trochu jasno.

Počítačové sítě jsou báječnou vymožeností. Naznačuje to ostatně i název celého tohoto seriálu. Jenže ne vždy je jejich přínos a efekt stejný. Velmi rychle totiž roste s tím, jak se příslušná síť zvětšuje, nebo alespoň propojuje s dalšími sítěmi. Určitě to dobře znáte z praxe, třeba u elektronické pošty: mít možnost poslat zprávu emailem kolegovi či kolegyni do vedlejší místnosti, v rámci firemní sítě LAN, je určitě fajn, ale možnost poslat takovou zprávu kamkoli na zeměkouli, skrze celosvětový Internet, je přeci jen něco jiného, co má podstatně větší přínos a efekt.

Dokládá to ostatně i jeden základní poznatek ze světa počítačových sítí, který poprvé formuloval pan Robert Metcalfe, známý jako vynálezce Ethernetu: užitek (užitná hodnota) sítě roste se čtvercem počtu jeho uživatelů! Takže když do nějaké sítě zapojíte dvakrát tolik uživatelů, efekt (přínos) takovéto sítě bude ještě větší než dvojnásobný. V praxi nejde takovýto "rychlejší než lineární" nárůst výsledného efektu vždy exaktně změřit a prokázat, už kvůli jeho obtížné měřitelnosti, ale aspoň intuitivně si to lze představit na jednoduchém příkladu: skupina n lidí může mezi sebou vytvářet n * (n-1) = n2 - n různých jednosměrných vazeb, jako například přímých emailů (od jednoho adresáta k jinému adresátovi) či výzev k on-line komunikaci apod. Ovšem skupina se dvojnásobným počtem členů (2n) už takovýchto vazeb může vytvářet 2n * (2n - 1) = 4*n2 - 2n.

Tento tzv. Metcalfův zákon tak vlastně vysvětluje, proč má dnešní Internet tak obrovský přínos pro celé lidstvo, a to nejen z pohledu vzájemné komunikace mezi lidmi. Jeho dopady lze nejspíše vztáhnout i na další oblasti, jako třeba na rozvoj obchodu, vzdělanosti, kultury atd. Zřejmě ale s důležitým dodatkem, že jde o potenciál, který ne vždy dokážeme náležitě využít. Nebo dokonce jej ani nechceme využít, a vymýšlíme naopak různé bariéry a překážky. Ale to by bylo na úplně jiný seriál.

Síťový efekt jako motivace pro internetworking

V tomto seriálu nadále zůstaneme u počítačových sítí. Otevřeme však další zajímavou kapitolu, kterou je problematika vzájemného propojování sítí, alias tzv. internetworkingu. Něž se ale dostaneme k tomu, jak konkrétně se to dělá, jaké techniky se k tomu používají a jaké nástrahy a překážky se přitom musí překonávat, zastavme se nejprve u toho základního: proč vlastně lidé své sítě propojují? Jakou k tomu mají motivaci?

S jednou významnou motivací jsme se vlastně již seznámili: jde o tzv. síťový efekt, který je popsán právě citovaným Metcalfovým zákonem. Lidé tedy propojují své sítě (mimo jiné) proto, aby dosáhli většího efektu, resp. užitku ze služeb, které v těchto sítích nabízí. A že to neplatí jen pro elektronickou poštu či on-line komunikace, by už pro nás také nemělo být žádným překvapením: třeba když si zřídíte webový server, přístupný jen z vaší lokální sítě, je to něco úplně jiného, než když jej zpřístupníte z celého celosvětového Internetu.

Terminologické okénko:
internetworking, internetwork, internet, Internet

Anglický termín internetworking je slovesem, které označuje činnost, spočívající v propojování (počítačových) sítí. Výsledkem této činnosti pak je soustava vzájemně propojených sítí, pro kterou má angličtina obecný termín internetwork. Ten se v praxi mnohdy zkracuje na pouhé internet.

Termíny "internetwork", resp. "internet" tedy označují obecně jakoukoli soustavu vzájemně propojených sítí, bez toho že by říkaly cokoli o její velikosti, technickém řešení, vlastnických vztazích, možnosti přístupu k takovéto soustavě sítí apod. Takže "internetem" může být třeba to, co máte doma v obýváku, a co vám plně patří. Stejně tak to ale může být i nějaká velká firemní síť, vzniklá propojením několik sítí LAN, rozpínající se třeba i přes několik kontinentů. Stále je to obecný "internet", s definovaným vlastníkem, který určuje co a jak se s jeho sítí smí či nesmí dít.

Vedle obecného termínu "internet" pak existuje ještě vlastní jméno "Internet" (psané s velkým počátečním písmenem), které označuje jednu konkrétní soustavu vzájemně propojených sítí, s celosvětovým dosahem - "ten" Internet, který všichni tak rádi používáme. Je charakteristický mimo jiné i tím, že jako celek nikomu nepatří (nemá žádného jednotlivého vlastníka). Své individuální vlastníky mají jen jeho jednotlivé části (dílčí sítě).

Není internet jako Internet. Nebo ano?

Na termín"internet" je třeba se dívat jako na obecné (druhové, resp. generické) označení, pro jakoukoli soustavu vzájemně propojených sítí. Podobnými generickými označeními jsou třeba pojmy jako televize, dálnice apod. Vedle nich pak existují konkrétní instance televizí (např. Česká televize, TV Nova, TV Prima atd.) či instance dálnic (D1, D5 atd.), které již mají svá vlastní jména, psaná s velkými počátečními písmeny. Zde si asi málokdo bude plést druhové (generické) označení s vlastním jménem jedné konkrétní instance daného druhu a klást mezi ně rovnítko. Tedy tvrdit něco ve smyslu "dálnice = D5", či "televize = TV Nova").

V případě vzájemně propojených počítačových sítí (internetů) je ale situace jiná. Alespoň u nás v ČR jsme už přestali skoro úplně rozlišovat mezi internetem jako obecným (druhovým, generickým) označením na straně jedné, a vlastním jménem jedné konkrétní celosvětové soustavy vzájemně propojených sítí ("tím" Internetem) na straně druhé. Píšeme běžně "internet" (s malým počátečním "i"), ale myslíme tím "Internet" (s velkým počátečním "I").

Další, úzce související motivací pro internetworking, je snaha něco zpřístupnit, obvykle na dálku. Pokud se třeba v jedné firemní síti LAN nachází šikovná tiskárna, a uživatelé jiné firemní sítě LAN na ní chtějí tisknout, musí se nejprve obě sítě vzájemně propojit. Jiným příkladem může být snaha zpřístupnit nějaké skladiště souborů (FTP archiv), nějaký superpočítač s jeho obrovskou výpočetní kapacitou, či jakýkoli jiný síťový zdroj. Možností je nepřeberně.

Potřeba propojení

Další důvody pro internetworking, alias vzájemné propojování sítí, mohou být čistě technické. Při budování sítí snad vždy narazíme na nějaké vzdálenostní omezení, které ale budeme potřebovat nějak překonat. Třeba u klasického desetimegabitového Ethernetu, ještě ve verzi využívající tzv. tenký koaxiální kabel, nesmí být souvislé kusy kabelu (tzv.. segmenty) delší než 185 metrů. Pokud potřebujeme překlenout větší vzdálenost, musíme použít několik takovýchto segmentů a mezi sebou je vhodně propojit. A to už je vlastně základ internetworkingu.

Základní představa internetworkingu, jako vzájemného propojení dvou (či více) segmentů či sítí

Princip propojení je přitom až trapně jednoduchý: mezi dva kabelové segmenty, které potřebujeme propojit (či celé sítě nebo jejich části), umístíme vhodnou "krabičku". No a ta zajistí vše potřebné.

Jednoduché, ne? Takže o čem se dnes budeme až do konce (a ještě příště a přespříště) vlastně bavit?

Opakovače, mosty, přepínače, směrovače, brány …

Jak záhy uvidíme, tak jednoduché to zase není. Velmi totiž záleží na tom, jak funguje ona "propojující krabička" - na jaké vrstvě (sedmivrstvého modelu ISO/OSI) pracuje, jakým způsobem se rozhoduje, co všechno přitom bere v úvahu, na co je zaměřena či přímo optimalizována, jaké techniky ke své činnosti využívá atd.

Již teď, v prvním přiblížení, si však můžeme naznačit alespoň něco ze základní terminologie. Nejčastěji jsou totiž "propojovací krabičky" pojmenovávány podle toho, na jaké vrstvě fungují. Pak říkáme, že jde o:

  • opakovač (anglicky: repeater), pokud "krabička" funguje na fyzické vrstvě
  • most (bridge) či přepínač (switch), pokud funguje na vrstvě linkové
  • směrovač (router), pokud funguje na vrstvě síťové
  • brána (gateway), pokud funguje na aplikační vrstvě

Představa propojovacích prvků a jejich označení

Později, v dalších dílech, se seznámíme ještě s dalšími možnými termíny, jako třeba "L3 switch", "L4 switch" či "content switch". Stejně tak si později povíme o dalších propojovacích prvcích, jakými jsou například tzv. firewally či různé proxy brány. Ale teď se jimi ještě nebudeme zatěžovat.

Terminologické okénko: IP Gateway stále žije!

Terminologie internetworkingu je dnes již dostatečně ustálená, ale ne vždy je skutečně dodržována a používána konzistentním způsobem. Nejčastější výjimkou je používání termínu "brána" tam, kde je ve skutečnosti myšlen směrovač. Ostatně, dodnes se s tím můžete setkat třeba při nastavování TCP/IP u nejnovější verze MS Windows (viz obrázek): v okamžiku, kdy se po vás chce zadání IP adresy výchozího směrovače, jste vyzváni k zadání adresy výchozí brány.

"Bránou" je ve skutečnosti míněn směrovač

Nesvalujme ale vinu jen na autory české lokalizace. Stejná terminologická chyba je totiž i v anglickém originále, kde se používá termín Gateway. Důvodem je skutečnost, že používání termínu "IP Gateway" (doslova: IP brána) se zavedlo ještě v ranných dobách Internetu, kdy protokoly TCP/IP teprve vznikaly, a terminologie nebyla zdaleka tak ustálená.

Jenže ani od té doby se používání věcně nesprávného termínu IP Gateway nepodařilo vymítit a nahradit věcně správným termínem "IP router" (IP směrovač).

Opakovač je když ….

Pojďme se nyní podívat podrobněji na opakovač (anglicky: repeater). Jak už víme, jde o propojovací zařízení fungující na fyzické vrstvě, a typickým důvodem pro jeho použití je překonání "vzdálenostních omezení",vyplývajících z omezené maximální délky kabelových segmentů. Jinými slovy: nemůže-li mít souvislý kabelový segment více jak X metrů, ale my se potřebujeme dostat dále, použijeme dva či více kabelových segmentů (délky nejvýše X) a propojíme je prostřednictvím opakovače, resp. opakovačů.

Později se seznámíme s tím, že například v Ethernetu nemůžeme takto "řetězit" kabelové segmenty pomocí opakovačů libovolně dlouho, ale teď si toho ještě nebudeme všímat. Spíše si řekněme, že při použití opakovačů mohou vznikat i jiná než lineární uspořádání (viz obrázek č. 3), díky tomu že existují i opakovače s více tzv. porty, ke kterým se připojují jednotlivé kabelové segmenty.

Představa opakovače se dvěma a s více porty

A odkud že opakovač dostal své jméno? Od toho, že když přijímá nějaká data z kteréhokoli svého segmentu, okamžitě je rozesílá (jakoby: opakuje) do všech ostatních segmentů, které jsou k němu připojeny.

Představa fungování opakovače

Co ale v případě, pokud by opakovač přijímal data z více segmentů současně, a měl je všechny předávat do všech ostatních segmentů? Například v Ethernetu jsou takovéto nežádoucí situace celkem běžné, a říká se jim příhodně: kolize. Odpovídají situaci, kdy současně vysílá více uzlů, jakoby "proti sobě", a jejich vysílání kvůli tomu vzájemně "koliduje" (ve smyslu: vzájemně se ruší).

Důležité přitom je, že opakovač kolize nezastavuje, ale propouští dále. To pak má (stále v Ethernetu) jeden velmi významný důsledek: všechno, co je propojeno opakovačem, neboli na úrovni fyzické vrstvy, tvoří tzv. kolizní doménu. Tedy oblast, po které se kolize šíří.

Představa kolizních domén (v Ethernetu)

Kolizní doména má v Ethernetu ještě jeden důležitý význam: je to právě ta oblast, ve které je určitá přenosová kapacita sdílena všemi uzly, které se v dané kolizní doméně nachází. Takže když se jedná o klasický desetimegabitový Ethernet, pak oněch 10 Mbit/s sdílí všechny uzly v kolizní doméně. Je to dáno tím, že vysílat touto rychlostí může vždy jen jeden z nich, a nikoli více uzlů současně (protože to už by právě došlo k nežádoucí kolizi).

Kdo pracuje s čím?

Opakovač je ve své podstatě jen digitální zesilovač, který z jedné strany přijímá signál představující jednotlivé datové bity, regeneruje tento signál (zesiluje, znovu právně tvaruje) a vysílá dál, do ostatních segmentů. Je navíc zařízením velmi hloupým, protože nevnímá význam jednotlivých bitů, které skrze něj prochází. Tudíž ani nedokáže rozpoznat situaci, kdy by takovéto bity již nemusel předávat (opakovat) do všech segmentů, ale třeba jen do jednoho cílového segmentu (nebo dokonce do žádného).

Představa opakovače jako digitálního zesilovače

Pokud bychom chtěli, aby se propojovací zařízení chovalo inteligentněji, pak už ho musíme nechat fungovat na některé z vyšších vrstev ISO/OSI. Teprve zde totiž může vnímat vzájemné souvislosti jednotlivých bitů, rozpoznávat "že k sobě patří" a že tvoří určitý blok, a podle obsahu tohoto bloku (hlavně podle adres příjemce) pak činit konkrétní rozhodnutí o tom, kam a zda vůbec příslušný blok předat dál.

Než si to dále rozvedeme, naznačme si o jaké bloky se kde jedná. I to je důležitý základ terminologie internetworkingu:

  • opakovač (repeater) pracuje s jednotlivými bity (protože na fyzické vrstvě je přenášeným blokem bit jako takový)
  • most (bridge) a přepínač (switch) pracují s linkovými rámci. Oba totiž fungují na úrovni linkové vrstvy, kde se přenášené bloky označují jako rámce (anglicky: frames). Takže třeba Ethernetový přepínač zpracovává ethernetové rámce.
  • směrovač (router) pracuje s pakety. Funguje na síťové vrstvě, kde se přenášeným blokům říká právě pakety (packets). Takže třeba (IP) směrovač zpracovává IP pakety.
  • brána (gateway) pracuje na úrovni aplikační vrstvy, kde označení přenášených bloků není vždy stejné. Například poštovní brány přenáší jednotlivé poštovní zprávy.

Most a přepínač jsou když …

Jak už tedy víme, mosty (anglicky: bridge) a přepínače (switch) pracují na úrovni linkové vrstvy, "vnímají" jednotlivé linkové rámce, a podle jejich obsahu se rozhodují o tom, jak s nimi naloží. Zda mají nějaký konkrétní rámec cíleně předat do některého z dalších segmentů (pak jde o tzv. forwarding), nebo zda jej nemají vůbec předávat do žádného jiného segmentu (pak jde o tzv. filtering). Viz též obrázek č. 7.

Představa cíleného předávání (forwarding-u) a filtrování (filteringu)

Nechme v tuto chvíli stranou to, čím přesně se od sebe odlišují mosty a přepínače. K tomu se dostaneme v dalších dílech, v tuto chvíli vezměme zavděk alespoň konstatováním, že mosty jsou starší zařízení, zatímco přepínače jsou zařízení novější. Jinak je ale základní princip jejich práce stejný: pracují s linkovými rámci a podle (linkových, například ethernetových) adres odesilatele a příjemce se rozhodují, jak s rámcem naloží dále.

Pro správné zasazení do celého dnešního kontextu si ještě zdůrazněme, že ke každému portu mostu či přepínače nemusíme připojovat jen jeden jediný uzel, ale obecně celý sdílený segment (celou kolizní doménu, viz výše). Vše naznačuje následující obrázek č. 8. K němu si dodejme, že případné kolize z jednotlivých kolizních domén již nejsou přenášeny dále. Mosty a přepínače (na rozdíl od opakovačů) totiž kolize zastavují.

Představa propojení na úrovni linkové vrstvy, pomocí mostů či přepínačů

A co vlastně vzniká, když pomocí mostu či přepínače propojíme několik segmentů (event. samostatných uzlů)? Výsledkem je celek na bezprostředně vyšší vrstvě, neboli jedna síť (anglicky: network). Třeba z pohledu přidělování IP adres je to skupina uzlů, které musí mít stejnou síťovou část své IP adresy. Nebo z pohledu všesměrového vysílání (tzv. broadcastu) je to oblast, kde se takovéto všesměrové vysílání musí šířit ke všem uzlům. Takže se v této souvislosti hovoří o broadcastové doméně (podobně jako "o patro níže" jsme měli kolizní doménu jako oblast, ve které se musela šířit kolize). Z toho nám také vyplývá, že mosty a přepínače sice již nepropouští kolize, ale stále musí propouštět všesměrové vysílání (broadcast).

Směrovač je když …

Jednotlivé sítě, jako skupiny uzlů vzájemně propojené na úrovni linkové vrstvy (pomocí mostů, resp. přepínačů) by stále ještě představovaly izolované ostrůvky, jejichž užitná hodnota (síťová efekt) by byla relativně malá. Tendenci k jejich vzájemnému propojování sítí, alias k internetwotkingu, však můžeme jednoduše vyhovět prostřednictvím směrovačů (router-ů).

Tedy propojením na úrovni síťové vrstvy, kdy propojovací zařízení již "vnímá" jednotlivé síťové pakety (v TCP/IP sítích konkrétně IP pakety), a podle jejich obsahu se rozhoduje jak s nimi naložit - kam daný paket nasměrovat tak, aby se (třeba i postupně) dostal ke svému cíli.

Z našeho dnešního pohledu je přitom podstatné, že pomocí směrovačům propojujeme jednotlivé sítě (networks), s tím že výsledkem takovéhoto propojení je soustava vzájemně propojených sítí, alias (v angličtině) "internetwork", zkráceně pak "internet". No a ceslovětový Internet pak není ničím jiným, než jednou konkrétní (a opravdu hodně velkou) soustavou takto vzájemně propojených sítí.

Představa propojování na síťové vrstvě, prostřednictvím směrovačů

Z představy obrovského celosvětového Internetu, jako jedné konkrétní soustavy vzájemně propojených sítí, si můžeme odvodit také jednu významnou vlastnost směrovačů (router): tyto již nepropouští ani kolize, ani všesměrové vysílání. Pokud by tak snad činily, okamžitě by zaplavily celý Internet.

Rozbočovače, alias hub-y

Na závěr si ještě řekněme o jednom specifickém propojovacím zařízení, které se poněkud vymyká z dosud zavedené terminologie. Jde o tzv. rozbočovač, anglicky: hub. Jeho smysl si nejlépe vysvětlíme na příkladu již zmiňovaného Ethernetu, který původně vznikl s představou použití koaxiálního (česky též: souosého) kabelu.

Podstatné bylo, že na koaxiálním kabelu se daly dělat různé odbočky, na které se připojovaly jednotlivé uzly. Výsledkem pak bylo uspořádání, které ukazuje levá část následujícího obrázku (č. 10). V odborné terminologii se tomu říká "sběrnicová topologie" (topologie "do sběrnice"). Po funkční stránce to přitom odpovídá použití opakovače (který je zde jakoby "zadrátován" skrze odbočky na kabelu).

Přechod od koaxiálních kabelů a sběrnicové topologie v Ethernetu ke kroucené dvoulince (a hvězdicové topologii)

První verze Ethernetu, která předurčila všechny jeho základní vlastnosti, vycházela právě z předpokladu použití koaxiálních kabelů a sběrnicové topologie. Jenže časem byl i v rámci Ethernetu koaxiální kabel nahrazen kroucenou dvoulinkou (tzv. twistem), která je jednak lacinější, a má také další příznivější vlastnosti. Ale má také jednu méně výhodnou vlastnost, kterou je to že na kroucené dvoulince nejde dělat odbočky. Může být použita jen pro dvoubodové spoje, mezi dvěma uzly. Jenže jak to pak udělat, když je zapotřebí propojit mezi sebou více jak dva uzly?

Odpověď je principiálně jednoduchá: nelze-li dělat odbočky přímo na kabelu, je nutné je vytvořit elektronickou cestou a provést potřebné "rozvětvení" (či: rozbočení") elektrickými obvody, schovanými do vhodné "krabičky". No a takovouto "krabičkou" je právě zařízení, označované jako rozbočovač, anglicky: hub.

Důležité ovšem je, že rozbočovač nemá přesně předepsáno, jakým způsobem má vlastně "rozbočovat". Přesněji: na jaké vrstvě má propojovat jednotlivé segmenty, které do něj vstupují. Zda se má vůči přenášeným datům chovat jako opakovač, nebo jako přepínač, či dokonce jako směrovač.

V praxi to nejčastěji bývá tak, že rozbočovač funguje jako opakovač, a kvůli tomu se lze běžně setkat s kladením rovnítka mezi oba pojmy, ve smyslu "rozbočovač = opakovač". Ale my si budeme pamatovat, že tomu tak není, a že rozbočovač může fungovat i jinak než jako opakovač.

Možná nejnázornější je představa toho, že rozbočovač je prázdné šasi ("skříňka"), do kterého si zákazník teprve přikupuje konkrétní (zásuvné) moduly, realizující jeho logické funkce. No a pak záleží na tom, zda si koupí modul realizující funkci opakovače, přepínače, či směrovače. Nebo dokonce brány?