Vyšlo v měsíčníku IT-NET, v červenci 2000
Vytištěno z adresy: http://www.earchiv.cz/b00/b0007002.php3

Směrovače nebo přepínače? (část 2.)

Zpět k teorii

Udělejme si nyní malou odbočku do teorie, abychom mohli docenit co jsou zač a jak fungují přepínače (switche) a směrovače (routery).

Hlavní rozdíly souvisí s vrstvovým modelem, ze kterého vychází dnešní sítě - ať již se pohybujeme v rámci (spíše akademického) modelu ISO/OSI či v praxi používaného modelu TCP/IP, směrovače fungují na úrovni vrstvy síťové (třetí vrstvy počítáno odspodu), zatímco přepínače na úrovni bezprostředně nižší vrstvy linkové (resp. vrstvy síťového rozhraní, v terminologii TCP/IP).

Pro připomenutí: na síťové vrstvě pracuje protokol mj. IP, a používají se zde 32-bitové IP adresy. Blokům dat, které se zde přenáší, se říká pakety (packets), někdy také datagramy (datagrams). Když takovéto pakety prochází skrz směrovače, tyto se musí rozhodnout, kterým směrem je předají dal - od "volby směru" je odvozen termín "směrování" (anglicky: routing), kterým je označována činnost směrovače (routeru).

Naproti tomu na úrovni linkové vrstvy pracuje například Ethernet, který používá 48-bitové Ethernetové adresy (nebo Token Ring či jiné protokoly se svými linkovými adresami). Bloky dat, které se na této úrovni přenáší, se označují jako rámce (frames), a jsou obecně větší než pakety - vzhledem k řazení vrstev (síťová vrstva je nad vrstvou linkovou) jsou pro potřeby přenosu jednotlivé síťové pakety vkládány do linkových rámců (jsou vkládány do jejich nákladové části), viz obrázek:

Představa vkládání paketů do rámců

Pokud bychom se přesunuli až na nejvyšší vrstvu (vrstvu aplikační), pak i zde bychom našli určité "propojovací uzly", které propojují mezi sebou různé sítě či celé soustavu sítí. V tomto případě, kdy propojovací uzly pracují na úrovni aplikační vrstvy, bývají označovány jako brány (gateways).

Routing vs. switching

Všechny tři typy aktivních prvků mají jednu zásadní věc společnou: blok dat, který přijmou z jednoho směru (z jedné strany, resp. z jedné sítě, z jednoho segmentu atd.) musí předat do jiného směru (strany, sítě, segmentu atd.) - ať již se jedná o rámec v případě přepínače, paket v případě směrovače, či zprávu (nebo jinak pojmenovaný blok) v případě brány. V tomto svém aspektu, který bychom mohli obecně pojmenovat jako "přepojování" a představovat si jej jako určité "přehazování z jedné strany na druhou" se tedy uvedené tři typy aktivních prvků neliší.

V čem se ale jejich fungování liší zásadním způsobem, je způsob jejich rozhodování o volbě dalšího směru, přesněji informace ze kterých vychází.

Přepínač (switch), který přepojuje rámce, se rozhoduje pouze na základě linkových adres (tedy například na základě ethernetových adres, jde-li o ethernetové rámce). Přitom vystačí jen se znalostí struktury linkových rámců (aby věděl kde v nich najít adresy příjemce a odesilatele), a se znalostí svého bezprostředního okolí (svých bezprostředních sousedů). Tuto znalost získává v zásadě sám (samoučením), tím že monitoruje odkud mu přichází jaké rámce. Přepínače jsou tedy zařízeními typu plug&play, které stačí zapnout a fungují samy od sebe. Je pro ně charakteristické také to, že jsou optimalizovány na rychlost, a té se typicky dosahuje "zadrátováním" příslušných přepojovacích funkcí (neboli: jejich implementací přímo v hardwaru, dnes prostřednictvím integrovaných obvodů ASIC). Inteligence přepínačů (switchů) je také přizpůsobena jejich rychlosti - řečeno velmi lapidárně a s určitou mírou nadsázky, přepínače nejsou stavěny na žádné velké přemýšlení (ale na rychlost).

Směrovač je naopak zařízení, tradičně oplývající vysokou vlastní inteligencí - nutnou proto, že jeho rozhodování o volbě dalšího směru je podstatně komplikovanější než rozhodování přepínače. Směrovač vychází při svém rozhodování ze síťových adres (např. z IP adres), a v úvahu musí brát topologii celé soustavy vzájemně propojených sítí (kterou tudíž musí znát). Velmi často také bere do úvahy různá omezení a další "regulační opatření", například toho typu že "účetní nemají právo vstupovat do sítě marketingového oddělení" apod. Takováto omezení jsou nejčastěji vázána právě na informace dostupné na úrovni síťové vrstvy - buďto na příslušnost k určité síti (pak všechny uzly dané sítě mají stejné vlastnosti), nebo na síťovou adresu konkrétního uzlu.

Směrovače také nejsou zařízeními typu plug&play, v tom smyslu že by je bylo možné zapnout a ony budou okamžitě fungovat. Směrovače je nutné na počátku pečlivě nakonfigurovat (udělit jim určité počáteční penzum znalostí, zejména o topologii sítě), s tím že další potřebné informace a jejich aktualizace směrovače získávají ve vzájemném dialogu s ostatními směrovači v soustavě propojených sítí. Proto je nutné, aby každý směrovač podporoval protokoly, které k takovémuto dialogu (zejména k šíření aktualizačních směrovacích informací) slouží. Jde např. o podporu protokolů RIP či OSPF.

Důležité je nutné si zdůraznit, že tradiční směrovač (router) je zařízení, jehož vysoká inteligence je realizována softwarovými prostředky. To jej na jedné straně činí velmi flexibilním (a skýtá to velké možnosti pro potřebnou vlastní inteligenci), ale na druhé straně je takovéto "softwarové rozhodování" relativně pomalé - alespoň ve srovnání s přepínači (switch-i), jejichž rozhodování je podstatně jednodušší a může být implementováno v hardwaru (a je tudíž i výrazně rychleji).

Pokud jde o brány, neboli o propojovací uzly fungující na úrovni aplikační vrstvy, pak u nich jsou požadavky na jejich inteligenci ještě větší. Samotná skutečnost, že fungují na úrovni aplikační vrstvy znamená, že mají co do činění s konkrétními aplikacemi a s jejich fungováním, a zajišťují vždy potřebný "přestup" z oblasti kde se používá jedna verze aplikace resp. služby do oblasti, kde se používá jiná verze. Pro ozřejmění: v Internetu se používá tzv. SMTP pošta, která má své konkrétní představy nejen o mechanismech přenosu, ale také o formátu přenášených zpráv, o významu a formátu adres atd. Vedle SMTP pošty však existuje celá řada dalších koncepcí elektronické pošty (např. X.400, cc:Mail, Mail602 atd.), a přenos pošty mezi nimi vyžaduje právě existenci vhodné poštovní brány. Ta pak musí být obeznámena s detaily obou (resp. všech) koncepcí elektronické pošty, mezi kterými má zajišťovat převod - musí mj. rozumět formátu zpráv, tak aby je dokázala převádět z jednoho tvaru do druhého. Dále musí rozumět významu adres, aby je dokázala překládat atd.

Pro existenci aplikační brány však mohou být i jiné důvody. Příkladem mohou být tzv. WWW proxy brány, implementované současně i jako tzv. cache (WWW cache). Jejich úkolem není přizpůsobení mezi dvěma různými systému, ale optimalizace provozu (zajišťuje cache) a dále realizace určitých bezpečnostních opatření (souvisejících např. s ochranou privátních sítí před "otevřeným" Internetem).