Vyšlo v týdeníku CHIPweek č. 11/97, 11. března 1997
Vytištěno z adresy: http://www.earchiv.cz/a97/a711k150.php3

Kdy použít switch?

V minulém dílu tohoto modulu jsme dospěli k rozdílům mezi sdílenou a dedikovanou přenosovou kapacitou, a k faktu že opakovače zachovávají princip sdílení, zatímco ostatní druhy propojovacích uzlů nikoli. Dnes si podrobněji povíme, jak je tomu s přepínači (switch-i), a řekneme si kdy s k čemu se tyto používají.

Připomeňme si alespoň náznakem, v čem je rozdíl mezi sdílenou a dedikovanou (vyhrazenou) přenosovou kapacitou: v tom, zda se o přenosové možnosti dané určitou přenosovou technologií (např. 10 Mbps Ethernetu) musí všechny uzly dělit, nebo zda je v ideálním případě může mít každá komunikující dvojice jen a jen pro sebe.

Skutečnost, že jsme si rozdíl mezi oběma případy ukazovali (i v minulém dílu) na příkladu Ethernetu, není nijak náhodná. Právě Ethernet totiž nejvíce doplácel na svou sdílenou povahu, a právě v prostředí Ethernetu se proto nejintenzivněji hledaly možnosti jak to změnit. Snad tedy neuškodí trochu předběhnout další díly seriálu a naznačit si něco z vývoje Ethernetu - bude to velmi přínosné pro pochopení toho, kdy a k čemu se používají switche.

Za vším je Ethernet

Sdílený charakter Ethernetu, tak jak byl původně koncipován a standardizován v roce 1982 společností IEEE, vycházel z vlastností tehdy používané kabeláže, tj. koaxiálních kabelů - jak jsme si o tom již říkali v minulém dílu. Praktickým důsledkem pak bylo to, že rozvody Ethernetových sítí byly tvořeny spíše menšími počty relativně velkých a relativně "hodně obydlených" kabelových segmentů (například i s několika desítkami uzlů v každém segmentu). Mosty pak byly řešením, který z tohoto stavu vycházel a snažil se dosáhnout dvou cílů: možnosti propojení takovýchto "velkých" sdílených segmentů, a minimalizace jejich vzájemného "zatěžování" (v tom smyslu, aby provoz v jednom sdíleném segmentu nepronikal i do druhého segmentu resp. ostatních segmentů, pokud to není nezbytně nutné). K ideálnímu stavu a dedikované přenosové kapacitě to mělo velmi daleko, ale bylo to zřejmě maximum možného v situaci, kdy se používala koaxiální kabeláž, svou bytostnou podstatou sdíleného charakteru.

K zajímavému momentu došlo s nástupem kroucené dvoulinky a rozvodů, budovaných na tomto druhu kabeláže. Na kroucené dvoulince totiž nejde vytvářet odbočky, a lze ji tudíž použít jen pro dvoubodové spoje - tedy spoje vedoucí od koncového uzlu k nejbližšímu propojovacímu uzlu. Takováto "přípojka" pak ale již nemá sdílený charakter, protože uzel který je jejím prostřednictvím připojen se o její přenosové schopnosti již nedělí s žádným jiným uzlem.

Důležité ovšem bylo, že Ethernet se k rozvodům na bázi kroucené dvoulinky snažil chovat stejně, jako ke koaxiálním rozvodům - snažil se je používat stejným sdíleným způsobem. V praxi to znamenalo, že jednotlivé (fyzicky dedikované) přípojky koncových uzlů byly v nejbližším propojovacím uzlu (hub-u) propojeny na úrovni fyzické vrstvy, neboli pomocí opakovače. Ten pak svým fungováním zajišťoval, že celá soustava přípojek na bázi kroucené dvoulinky se chovala jako jedno jediné sdílené médium, tj. obdobně jako koaxiální kabelový segment. Důvod byl zřejmý: šlo o co nejjednodušší návaznost na již existující (koaxiální) rozvody, a o možnost zachování přístupové metody CSMA/CD, která doslova staví na sdíleném charakteru přenosového média.

Switching se rodí v prostředí Ethernetu

Obrázek 1.
Mechanismus switchingu, který jsme si popisovali podrobněji již v 6. dílu předchozího modulu, lze v kontextu našich úvah chápat jako řešení usilující lépe využít možností nové kabeláže (umožňující dosáhnout i ideálního stavu, kdy každá komunikující dvojice uzlů má k dispozici plnou přenosovou kapacitu Ethernetu, viz minule).

V praxi se ale switching snažil vyjít vstříc i méně ideálním trendům vyvolaným nástupem nového druhu kabeláže - zejména trendu k vytváření menších a "méně obydlených" sdílených segmentů (kterých ale na druhé straně zase vychází více). Souviselo to ostatně i s faktem, že aplikace provozované na uzlových počítačích byly stále náročnější na přenosovou kapacitu, a tudíž bylo žádoucí zmenšit počet uzlů, dělících se o společně sdílený segment s jeho pevně danou přenosovou kapacitu. V praxi proto docházelo (a stále ještě dochází) k nasazování switchů spíše v konfiguracích, které naznačuje dnešní obrázek.

Konkrétní Ethernetové switche se samozřejmě v mnohém liší: nejen v počtu segmentů, které je možné k nim připojit, ale také například v maximálním počtu uzlů v každém takovémto segmentu (zde se většinou mluví o počtu "portů" na segment, ev. o počtu MAC adres na segment), a ve způsobu fungování (zda na  principu store&forward, nebo na principu cut-through, viz 6. díl 7. modulu]. Velmi důležitá je i celková výkonnost switche, neboli jeho "přepojovací kapacita" - měřená v celkovém počtu rámců, které mohou projít skrz switch za jednotku času.

Typické použití switchů

Pokusme se nyní stručně shrnout to, k čemu se v dnešních lokálních sítích (nejčastěji Ethernetových) používají switche: k tomu, aby se dosáhlo vhodného rozložení toků v jednotlivých částech sítě, především s cílem poskytnout co možná nejvíce přenosové kapacity uzlům, které ji potřebují. V praxi to znamená "rozparcelovat" síť na vhodně velké segmenty (které budou mít sdílený charakter, tj. v rámci těchto segmentů bude použito propojení pomocí opakovačů), a tyto segmenty propojit pomocí switche (v zásadě tak, jak ukazuje dnešní obrázek). Konkrétní rozdělení sítě na jednotlivé segmenty by samozřejmě mělo brát v úvahu požadavky a nároky jednotlivých uzlů - pracovní stanice uživatelů, kteří mají jen minimální nároky na práci v síti, mohou být zapojovány do "více obydlených" segmentů, zatímco uzly s většími nároky budou nejspíše zařazovány do segmentů s menšími počty uzlů. Pro výkonné servery se může ukázat jako nejvhodnější přidělit jim samostatný "jednouzlový" segment, tj. dát jim dedikovanou přenosovou kapacitu.

Nevýhody switchů

Při konkrétním rozhodování o tom, jak rozdělit určitou síť na dílčí segmenty a jak je vzájemně pospojovat, je dobré mít na paměti také nevýhody a omezení switch-ů. Ty vyplývají z jejich samotné podstaty (přepojování na úrovni linkové vrstvy), a pak také z faktu, že se jedná o zařízení zaměřená hlavně na rychlost.

Typické switche například nebývají uzpůsobeny tomu, aby braly do úvahy různá přístupová práva a omezení - jelikož se snaží fungovat maximálně rychle, nebylo by příliš rozumné zatěžovat je ověřování složitějších přístupových strategií a povinností provádět rozhodnutí, která s tím souvisí. Na úrovni linkové vrstvy, na které switche pracují, by to ostatně nebylo ani dost dobře možné, protože potřebné informace o nejrůznějších přístupových omezeních, právech a obdobných pravidlech bývají vztažena až k bezprostředně vyšší vrstvě (vrstvě síťové). Propojením pomocí switchů proto vzniká "plochá" síť, která je z hlediska přístupových práv a omezení homogenní.

V praxi ale bývá žádoucí, aby takováto homogenní síť (vniklá propojením pomocí switche) nebyla příliš velká. Důvodem může být například efektivita - switch totiž musí propouštět do všech stran tzv. všesměrové vysílání (broadcasting), které je mnoha dnešními síťovými službami s oblibou využíváno, ale které jde "proti duchu" fungování switche. Dalším důvodem bývá potřeba zavést různá přístupová omezení, nejen vůči uživatelům přícházejícím "zvenku", ale třeba i mezi skupinami vlastních uživatelů. Ještě dalšími důvody, které vedou k potřebě nasadit směrovače na "okraje" soustavy segmentů propojených switchem, jsou důvody ryze praktické - například vlastnosti a způsob přidělování IP adres v TCP/IP sítích, potřeba připojení k Internetu, potřeba vybudovat firewall apod.