Vyšlo v měsíčníku IT-NET, v únoru 2002
Vytištěno z adresy: http://www.earchiv.cz/b02/b0200003.php3

Fungování přepojovacích uzlů

Zastavme se nyní u konkrétního způsobu, jakým přepojovací uzly vlastně "fungují. Postačí nám k tomu velmi jednoduchá a obecná představa, na které si ukážeme to co je podstatné pro správné pochopení switchingu (skutečnost může být poněkud komplikovanější).

Vnitřek přepojovacího uzlu (naší "krabičky") si lze představit jako blok, do kterého vstupuje určitý počet vstupů, a určitý počet výstupů z něj naopak vychází (oba počty mohou, ale nemusí nutně být stejné). Pro každý vstup je uvnitř přepojovacího uzlu tzv. buffer (vyrovnávací paměť), ve kterém se hromadí bloky (rámce), právě přijaté z příslušného vstupu. Podobně pro každý výstup je uvnitř přepojovacího uzlu obdobný buffer, do kterého se ukládají bloky (rámce) určené k odeslání v příslušném směru. Další veledůležitou částí přepojovacího uzlu je "přepojovací stroj" (tzv. engine), neboli výkonná část, kterou si lze představit jako aktivní prvek který podle určitého pravidla odebírá bloky nahromaděné ve vstupních bufferech, analyzuje jejich obsah a rozhoduje se, jak s nimi dál. Pokud se zrovna nerozhodne, že daný blok může zahodit, zvolí jeden z výstupních směrů a příslušný datový blok vloží do bufferu, který je s tímto výstupem spojem.

Potud tedy základní představa o fungování přepojovacích uzlů. Je vhodné si ji upřesnit zdůrazněním, že do každého vstupu vstupuje každý datový blok na úrovni linkové vrstvy, neboli jako linkový rámec. Stejně tak z každého výstupu vystupuje datový blok na úrovni linkové vrstvy, tj. jako linkový rámec. Pozor ale na to, že ne všechny vstupy a výstupy musí vždy používat stejnou linkovou technologii!! Například směrovač může propojovat jeden ethernetový segment lokální sítě s virtuálním okruhem na bázi technologie Frame Relay. To pak fakticky znamená (například), že takovýto směrovač přijme na svém (ethernetovém) vstupu síťový paket "zabalený" do ethernetového linkového rámce, rozhodne se jej odeslat dál ve směru dvoubodového spoje Frame Relay, a tudíž jej zase zpětně "zabalí" do linkového rámce technologie Frame Relay. Jelikož je to směrovač, rozhoduje se primárně podle informací na úrovni síťové vrstvy (tj. ze síťových adres v hlavičce síťového paketu - tedy například z IP adres, jde-li o IP paket). K dispozici pro své rozhodování však může mít i údaje z úrovně linkové vrstvy ( z hlavičky ethernetového rámce, ve kterém byl přijatý paket zabalen").

Pokud by se nejednalo o směrovač a přepojování na síťové vrstvě, mohl by se přepojovací uzel rozhodovat výhradně podle informací z linkové vrstvy. Pak by se jednalo o přepojování na linkové vrstvě. Naopak, pokud přepojovací uzel dokáže analyzovat obsah datového paketu hlouběji - dostat se až do jeho vnitřku a v hlavičce (obálce) příslušející transportní vrstvě správně rozpoznat čísla portů, jednalo by se o přepojování na 4. vrstvě. Pokud by přepojovací uzel dokázat jít ještě "hlouběji" a správně analyzovat i samotná aplikační data, jednalo by se o přepojování na 7. vrstvě.

Co je switching?

Tradiční způsob realizace přepojovacích uzlů obvykle vychází z toho, že jejich inteligence (potřebná hlavně pro potřeby rozhodování) je realizována programovými prostředky - srdcem přepojovacího uzly je procesor (buď univerzální nebo speciální), a logika jeho fungování je dána jeho programem. Ten pak lze v případě potřeby i měnit (aktualizovat). Z hlediska složitosti implementace je to jednodušší, pružnější a umožňuje to realizovat i dosti komplikovaná pravidla rozhodování.

V případě přepojování na úrovni linkové vrstvy naopak může být činnost samotného přepojovacího uzly principiálně velmi jednoduchá, zvláště jsou-li používají-li všechny jeho vstupy a výstupy stejnou linkovou technologii (což je téměř vždy). V takovém případě totiž přepojovací uzel nemusí linkový rámec vůbec vybalovat, a dokonce jej ani nemusí jakkoli měnit (například přepisovat jeho hlavičku). Stačí mu pouze provést příslušné rozhodnutí (zvolit směr pro odeslání, nebo rozhodnout o zahození), a pak toto rozhodnutí naplnit - tedy přemístit linkový rámec ze vstupního bufferu do bufferu výstupního. Toto samotné předání je rutinní operací, kterou lze snadno implementovat přímo v hardwaru a tudíž i velmi rychle.

Pokud jde o samotné rozhodování přepojovacího uzlu na úrovni linkové vrstvy, i to je v zásadě nenáročné může být založeno na velmi jednoduchém a rychlém "podívání se" do předem připravené tabulky, ze které se přepojovací uzel dozví, jak má s rámcem naložit. Dnes již je běžné, že na úrovni linkové vrstvy je i toto rozhodování realizováno v hardwaru, a tudíž i velmi rychlé.

"Zadrátované" fungování přepojovacích uzlů, sledující především jejich celkové zrychlení, dalo vzniknout i novému označení: říká se mu switching (česky též: přepínání). Původně bylo charakteristické právě pro linkovou vrstvu a dalo dokonce vzniknout i pojmenování nejrozšířenějšího typu přepojovacích uzlů, kterým se říká switche (přepínače).

Dnes se však způsob fungování přepojovacích uzlů, optimalizovaný na rychlost, prosazuje i do dalších (vyšších) vrstev, kde se tradičně používalo softwarové řešení příslušných rozhodovacích funkcí. Proto se také hovoří o "switchingu" (přepínání) na vyšších vrstvách. Proto také anglické termíny jako "Layer 3 Switching", "Layer 4 Switching", případně "context switching" apod.

Není ale úplně správné chápat takovýto "switching" na vyšších vrstvách výhradně jako "zadrátování" příslušných funkcí. Jeho hlavním cílem je skutečně výrazné celkové zrychlení, které ale může být dosaženo i jinými způsoby než jen "zadrátováním". Spíše jen pro ilustraci jiných možných přístupů: přepojovací uzel, fungující na 3. vrstvě (na síťové vrstvě) nemusí být vybavenou potřebnou inteligencí pro své rozhodování. Místo toho je vybaven pouze schopností rychlé manipulace se samotnými datovými pakety, s tím že když si s některým z nich neví rady, zeptá se jiného uzlu - tzv. route serveru, který již potřebnou inteligenci má. Jeho radu si "vezme k srdci", zařídí se podle ní a ještě nějakou dobu si ji pamatuje - takže další pakety, které vyžadují obdobné zpracování, dokáže velmi rychle zpracovat bez nutnosti znovu se zeptat.