Část XVII: Internetworking
Hitem dnešního světa počítačových sítí je jejich propojování, tzv. internetworking. Zde se běžně operuje s pojmy a termíny jako opakovač, přepínač, směrovač či brána, případně s jejich anglickými ekvivalenty repeater, switch, router či gateway. A když se k tomu přidá ještě rozbočovač neboli 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. Ne vždy je ale 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 e-mailem 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 přes celosvětový internet je přece 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 pokud do nějaké sítě zapojíte dvakrát tolik uživatelů, efekt (přínos) takové sítě bude ještě větší než dvojnásobný. V praxi nejde takový "rychlejší než lineární" nárůst výsledného efektu vždy přesně změřit a prokázat, už kvůli jeho obtížné měřitelnosti, ale intuitivně si lze vše představit na jednoduchém příkladu: skupina n lidí může mezi sebou vytvářet n x (n-1) = n2 n různých jednosměrných vazeb, jako například přímých e-mailů (od jednoho adresáta k jinému) či výzev k on-line komunikaci apod. Ovšem skupina s dvojnásobným počtem členů (2n) už takových vazeb může vytvářet 2n x (2n 1) = 4xn2 2n.
Tento tzv. Metcalfův zákon vlastně vysvětluje, proč dnešní internet znamená tak obrovský přínos pro celé lidstvo, a to nejen z pohledu vzájemné komunikace. Jeho dopady lze nejspíše vztáhnout i na další oblasti, jako třeba rozvoj obchodu, vzdělanosti, kultury atd. Ovšem zřejmě 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 využít nechceme a vymýšlíme naopak různé bariéry a překážky. Ale to by bylo téma pro ú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í, tzv. internetworkingu. Než se ale dostaneme k tomu, jak konkrétně se to dělá, jaké techniky se při tom používají a jaké nástrahy a překážky se 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é jsou v těchto sítích k dispozici. 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: 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.
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, tedy 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é bude potřeba nějak překonat. Třeba u klasického desetimegabitového Ethernetu 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ých segmentů a vhodně je mezi sebou propojit. A to už je vlastně základ internetworkingu.
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". 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 ona "propojující krabička" funguje 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ď, při prvním přiblížení, si však můžeme naznačit ze základní terminologie alespoň něco. Nejčastěji jsou totiž "propojovací krabičky" pojmenovávány podle toho, na jaké vrstvě fungují. Pak říkáme, že jde o:
opakovač (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ě.
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ě zatěžovat nebudeme.
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ě, 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 než 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), a to díky tomu, že existují i opakovače s více porty, ke kterým se jednotlivé kabelové segmenty připojují.
A odkud vlastně opakovač dostal své jméno? Když přijímá nějaká data z libovolného segmentu, okamžitě je rozesílá (jakoby opakuje) do všech ostatních segmentů, které jsou k němu připojeny.
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é nežádoucí situace poměrně běžné, ří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 níž se kolize šíří.
Kolizní doména má v Ethernetu ještě jeden 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ázejí. Pokud 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ě (to už by 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, tento signál regeneruje (zesiluje, znovu správně tvaruje) a vysílá dál, do ostatních segmentů. Je to navíc zařízení velmi hloupé, protože nevnímá význam jednotlivých bitů, které přes něj prochází. Tudíž ani nedokáže rozpoznat situaci, kdy by tyto 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).
Pokud bychom chtěli, aby se propojovací zařízení chovalo inteligentněji, pak už ho musíme nechat pracovat 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 tvoří určitý blok. Podle obsahu tohoto bloku (hlavně podle adres příjemce) pak může přijímat konkrétní rozhodnutí o tom, kam a zda vůbec příslušný blok předat dál.
Než si toto dále rozvedeme, naznačme si, o jaké bloky se 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). 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 (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í předávat do jiného segmentu vůbec (pak jde o tzv. filtering). Viz též další obrázek.
Nechme v tuto chvíli stranou, čí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 se spokojíme alespoň s 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 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. K němu 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í.
A co vlastně vzniká, když pomocí mostu či přepínače propojíme několik segmentů (případně 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. Z pohledu všesměrového vysílání (tzv. broadcastu) je to oblast, kde se takové 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, tedy oblast, ve které se musela šířit kolize). Také z toho 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 vzájemnému propojování sítí, k internetwotkingu, však můžeme jednoduše vyhovět prostřednictvím směrovačů (routerů). Jedná se o propojení na úrovni síťové vrstvy, kdy propojovací zařízení již "vnímá" jednotlivé síťové pakety (v sítích TCP/IP konkrétně IP pakety) a podle jejich obsahu se rozhoduje, jak s nimi naložit kam daný paket nasměrovat, aby se (třeba i postupně) dostal ke svému cíli.
Z dnešního pohledu je přitom podstatné, že pomocí směrovačů propojujeme jednotlivé sítě (networks) s tím, že výsledkem takového propojení je soustava vzájemně propojených sítí, tedy (v angličtině) "internetwork", zkráceně pak "internet". Celosvětový internet pak není ničím jiným než jednou konkrétní (a opravdu hodně velkou) soustavou takto vzájemně propojených sítí. Z představy obrovského celosvětového internetu jako jedné konkrétní soustavy vzájemně propojených sítí můžeme odvodit další významnou vlastnost směrovačů (router): ty 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 neboli huby
Na závěr si ještě řekněme něco o jednom specifickém propojovacím zařízení, které se z dosud zavedené terminologie poněkud vymyká. Jde o tzv. rozbočovač, anglicky hub. Jeho smysl 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 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é vidíte v levé části následujícího obrázku. V odborné terminologii se tomu říká "sběrnicová topologie" (topologie "do sběrnice"). Po funkční stránce odpovídá použití opakovače (který je zde jakoby "zadrátován" přes odbočky na kabelu).
První verze Ethernetu, která urč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 lacinější a má i další příznivější vlastnosti. Ale nabízí rovněž jednu méně výhodnou vlastnost: 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 než 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". 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č, 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í, že rozbočovač může fungovat i jinak než jako opakovač.
Možná nejnázornější je představa, ž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. 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?6 0349/ZAJ o
Terminologické okénko: internetworking, internetwork, internet, Internet
Anglický termín internetworking je sloveso, 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í, aniž 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 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" (mohlo by se psát s velkým počátečním písmenem, i když český pravopis se k tomu nyní staví jinak), 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").
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.
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á.
Ani od té doby se však používání věcně nesprávného termínu IP Gateway nepodařilo vymítit a nahradit správným termínem "IP router" (IP směrovač).