Směrovače nebo přepínače? (část 3.)
Jaké jsou dnešní požadavky?
Situace, ze které jsme vycházeli v odstavci "Jak to bylo dříve", a na kterou navazovala tradiční řešení i tradiční koncepce směrovačů a přepínačů, dnes již zcela neplatí. To, co se změnilo, je především předpoklad o "lokalitě" provozu, vyjádřený empirickým pravidlem "80:20". Dnes, zejména díky Internetu, ale také díky intranetům a celkovému rozvoji síťových služeb a aplikací, se poměr 80:20 podstatně změnil. Skutečnost je dnes tak různorodá, že není možné tento poměr nově přepočítat - v zásadě nikdo nedokáže odhadnout, zda se změnil na "50:50" či dokonce zvrátil na "20:80" apod. - ale obecně panuje shoda v tom, že původní poměr již neplatí. To samo o sobě klade zvýšené nároky na celkovou výkonnost (propustnost, rychlost) směrovačů.
K výrazným změnám však došlo i v jiných oblastech, které také kladou zvýšené požadavky na aktivní síťové prvky charakteru přepínačů a směrovačů. Samozřejmě výrazně stouply nároky na celkovou propustnost, neboli na celkovou přenosovou kapacitu sítí, v důsledku vyšších požadavků provozovaných aplikací - co je ale mnohem důležitější, kromě kvantitativních požadavků těchto aplikací se začaly objevovat i požadavky kvalitativní, týkající se toho jak vlastně přenosy fungují a co garantují a co nikoli. Dříve byl například kladen maximální důraz na efektivní způsob využití dostupných přenosových kapacit, i za cenu toho, že se někde nějaká data "občas zdržela" - maximalizace zpoždění při přenosu a jeho rozptyl (neboli pravidelnost při doručování) původně nebyla požadována ani garantována. S příchodem nejrůznějších multimediálních aplikací, mezi které patří zejména přenos obrazu a zvuku, však byly takovéto požadavky nastoleny, často dosti imperativně. Vyhovět však bylo zapotřebí i dalším požadavkům, třeba tomu aby členění do sítí mohlo být řešeno především na základě logických kritérií (například toho, že určitý uživatel patří ke konkrétní pracovní skupině), a ne kritérií fyzických (toho, že jeho počítač se nachází na určitém konkrétním místě).
Zkusme si nyní podrobněji nastínit některé konkrétní požadavky, samozřejmě bez nároků na úplnost:
- interoperabilita a integrace: v dřívějších dobách mohly být počítačové sítě i jejich aktivní prvky (přepínače, směrovače atd.) budovány poněkud specifickým způsobem, vlastním pro určitého konkrétního výrobce (tzv. proprietárním způsobem). Tento trend s postupem času zmizel, protože výrobci se ve vlastním zájmu čím dál tím více drží existujících standardů. Díky tomu jsou jejich produkty vzájemně slučitelné (interoperabilní), a lze je vzájemně kombinovat nejrůznějšími způsoby, které připadají v úvahu. Stejný problém se ale týká nejrůznějších inovací - pokud nějaký výrobce přijde s novým řešením, je nutné aby si i ono dokázalo porozumět se stávajícími prvky sítě. Obecně jde o to, aby nová řešení mohla být začleňována (integrována) do existujících sítí inkrementálním způsobem, a nikoli s nutností stavět "na zelené louce".
- kapacita s škálovatelnost: neustále rostoucí požadavky aplikací na přenosovou kapacitu vedou na zvyšování výkonnosti (kapacity) všech síťových prvků, a to jak aktivních (přepínačů, směrovačů atd.), tak i pasivních (kabeláže). Také zde je důležité, aby se tak dělo pokud možno inkrementálním způsobem a nabízená řešení byla škálovatelná (scalable) - aby mohla růst spolu s růstem požadavků.
- kvalita služeb (QoS, Quality of Service): pouhé zvyšování přenosových kapacit, beze změny způsobu jejich fungování, lze označit jako "přístup hrubou silou". Ten nereaguje na měnící se požadavky určitých aplikací, které kromě samotné přenosové kapacity požadují i určité specifické parametry - například co nejmenší rozptyl přenosového zpoždění (neboli: co největší pravidelnost doručování jednotlivých částí dat). Obecně jsou takovéto požadavky označovány jako požadavky na "kvalitu služeb" (QoS), a jejich realizace vyžaduje určitou formu "kontraktu" mezi aplikací a sítí: aplikace vznese své požadavky a síť se zaváže je garantovat (nebo je odmítne jako nesplnitelné, například proto že přesahují její momentální možnosti či možnosti principiální).
- řízení a management: dnešní sítě bývají již poměrně komplikovanými soustavami vzájemně propojených uzlů, a na jejich spolehlivém provozu leckdy záleží opravdu mnoho - od řádného chodu firmy či nějaké instituce, až třeba po lidský život v nemocnicích. Roste proto i důležitost správy (managementu) sítí, který se snaží detekovat a lokalizovat eventuelní chyby či problémy a také je odstraňovat (a ze všeho nejlépe jim rovnou předcházet). Stejně tak je čím dál tím důležitější aby sítě vycházely vstříc měnícím se zvykům v chování uživatelů (například jejich větší mobilitě, charakteru provozovaných aplikací a využívaných služeb), i implementaci nejrůznějších opatření v oblasti zabezpečení a ochrany.
- cena: nesmírně důležitým kritériem je i cena, resp. náklady ve všech svých složkách, od jednorázových pořizovacích nákladů, přes náklady provozní až po náklady na řešení nejrůznějších nestandardních situací, které mohou nastávat.
Jak vyhovět novým požadavkům
Zkusme se nejprve zamyslet nad tím, jaké možnosti připadají v úvahu pro zvýšení celkové rychlosti. Půjde nám přitom zejména o aktivní prvky, které v tradičním prostředí propojují mezi sebou jednotlivé sítě, a fungují tudíž na úrovni síťové vrstvy (tedy o směrovače).
Možnosti zvýšení "hrubé rychlosti" (míněno: rychlosti předávání síťových paketů) lze řešit zejména následujícími způsoby či jejich vhodnou kombinací (opět ale nejde o vyčerpávající výčet):
- zabudováním příslušných funkcí do hardwaru. Takto to je tradičně řešeno v přepínačích (switch), ale u směrovačů to představuje poměrně radikální změnu, neboť zde bylo zpracování paketů realizovány typicky v softwaru
- eliminací určitých schopností, které jsou složité a náročné na implementaci a přitom nejsou zcela nezbytné pro samotné fungování aktivního prvku - jde typicky o snížení počtu síťových protokolů, které jsou směrovány (schopnost směrování je například omezena jen na nejpoužívanější síťový protokol IP).
- odstranění nutnosti "plného zpracování" procházejících paketů ve všech uzlech sítě. Tradičně je u každého procházejícího paketu činěno úplné rozhodování na základě všech atributů, které jsou brány v úvahu, a výsledkem je určité rozhodnutí jak s paketem naložit (zejména: kudy ho poslat dál), přičemž k tomuto rozhodování dochází v každém uzlu. Alternativním řešením je "úplně zpracovat" paket pouze v prvním přepojovacím uzlu kterým prochází (či přímo odesilatelem), a výsledek tohoto rozhodnutí předat ostatním přepojovacím uzlů po cestě, kterým pak bude stačit jej pouze naplnit. Konkrétním mechanismem může být opatření každého paketu vhodným identifikátorem, který s ním cestuje po celé trase přenosu až ke koncovému příjemci.
- delegování inteligence a rozhodovacích pravomocí jinému, specializovanému uzlu. Tato metoda předpokládá, že samotný uzel, přes který prochází datové pakety, bude optimalizován na rychlost a nikoli na "přemýšlení". Pokud si s něčím nebude vědět rady, zeptá se jiného uzlu, který je naopak plně optimalizován na rozhodování (zejména rozhodování o dalším směru přenosu), a vyžádá si jeho radu. Tuto radu pak tazatel použije (naplní), a současně si ji na určitou omezenou dobu zapamatuje (ve své vyrovnávací paměti), tak aby se při následující obdobné situaci nemusel ptát znovu. Výhodou je u tohoto řešení také skutečnost, že umožňuje centralizovat do jediného uzlu (tzv. route serveru) nejen veškerou inteligenci, ale také všechny konfigurační informace, které se pak udržují mnohem snáze než když jsou výrazně distribuované.
Přitom pouze první přístup (realizace funkcí v hardwaru a nikoli v softwaru) zachovává plnou kompatibilitu se stávajícími systémy a je zcela transparentní (zvenku nepostřehnutelné). Ostatní přístupy se přeci jen projevují určitými změnami patrnými navenek a nutností určité podpory od ostatních uzlů - snížením počtu podporovaných síťových protokolů, nebo nutností generovat (a podporovat) nálepky (labels) či údaje o prioritě apod. po celé trase přenosu.
Hrubá síla, nebo preference?
Zvyšování rychlosti přepojování paketů (resp. jejich předávání z jednoho směru do jiného), které jsme zmiňovali v předchozím odstavci, je pouze jedním možným přístupem k řešení potřeb dnešních sítí. S jistou dávkou nadsázky je možné jej označit jako přístup "hrubou silou", který se spoléhá na to, že pouhým zvyšování disponibilní přenosové kapacity klesne četnost ostatních problémů pod únosnou hranici (jde zejména o potřebu doručovat data pravidelně, tak jak to chtějí hlavně multimediální aplikace). Pravdou je, že takovýto přístup může v mnoha případech postačovat a být i ekonomicky nejvýhodnější, byť skutečný problém fakticky neřeší, ale pouze zmenšuje jeho statistickou četnost. Z filosofického pohledu jde o řešení, které nemění základní premisu celé koncepce paketového přenosu, která zní následovně: všechny datové přenosy jsou si rovny, a se všemi je také nakládáno stejně (resp. nikomu není poskytováno přednostní zpracování na úkor jiných přenosů).
Existují samozřejmě i jiné přístupy k řešení celého problému, které již nezachovávají právě naznačení "rovnostářství" datových přenosů. Jednou z možností je již u odesilatele analyzovat o jaká data jde a podle výsledku jim přidělit určitou konkrétní prioritu. Takto přidělená priorita pak bude spolu s daty cestovat sítí, a při zpracování v jednotlivých přepojovacích uzlech bude respektována - pakety s vyšší prioritou budou mít přednost před pakety s prioritou nižší. Ani to však nedokáže zcela vyřešit celý problém, protože dat s vyšší prioritou se může kdykoli "sejít" na určitém místě více, než kolik je reálně možné jich zde zpracovat, a tak musí být některé jejich požadavky kráceny.
Některé protokoly přitom již od začátku počítají s takovouto možností přidělování priorit, a mají ve svých hlavičkách pro tento účel vyhrazen určitý počet bytů. Nejinak je tomu i v případě protokolu IP, který ve své hlavičce pamatuje dokonce 8 bity (v položce Type of Service) na vyjádření priority (byť nepřímo, prostřednictvím požadavku na způsob zpracování). Vesměs všechny implementace protokolu IP však tuto položku ignorují, ale přesto jedna z nových koncepcí zajištění tzv. kvality služeb (QoS, Quality of Service), konkrétně DiffServ (Differentiated Services), počítá právě s využitím této dosud ignorované položky. Na stejném principu pak fungují i taková řešení, která se snaží vyjádřit informaci o prioritě resp. požadovaném zpracování pomocí "dodatečné" nálepky (label), připojené k přenášenému paketu (zejména tehdy, pokud formát samotného paketu nepamatuje na takovéto informace).
Protokol DiffServ, stejně jako mechanismy založené na použití nálepek, předpokládají že o povaze přenášených dat, ze které je následně odvozována priorita jejich zpracování, rozhoduje již jejich odesilatel. Existují samozřejmě i jiná řešení, která využívají toho že o povaze přenášených dat si dokáže udělat vlastní úsudek každý přepojovací uzel sám, bez cizí pomoci. Je to možné tam, kde se takovýto uzel dokáže "podívat" dovnitř přenášených paketů, a to dostatečně "hluboko" na to, aby rozpoznal co jsou přenášená data zač. V zásadě postačuje, aby se takovýto uzel "díval" na úroveň transportní vrstvy, kde jsou vyjádřeny adresy portů na straně příjemce a odesilatele. Z těchto čísel je obvykle možné si odvodit, o jaký typ dat se jedná - například všechny odkazy na WWW servery směřují na port číslo 80, veškerá elektronická pošta směřuje přijímajícímu serveru na port č. 25 atd. Díky takovéto znalosti a schopnosti "hloubkové analýzy" přenášených dat si pak příslušné zařízení dokáže samo odvodit, čemu má dát vyšší prioritu a čemu naopak prioritu nižší. Jak záhy uslyšíme, je právě toto skutečnou podstatou toho, co je dnes označováno jako "přepojování na 4. vrstvě" (Layer 4 switching).
Zásadním řešením je garance
Žádný systém priorit nikdy nedokáže skutečně vyřešit náš problém - jak garantovat určitou kvalitu přenosových služeb, zejména pokud jde o pravidelnost doručování (dokáže pouze statisticky zmenšit četnost jeho výskytu). Skutečně zásadní řešení dokáží poskytnout až taková řešení, která se určitým způsobem vracejí zpět k technice tzv. přepojování okruhů (při kterém je komunikující dvojici vyhrazena určitá přenosová kapacita, díky které pak mohou být skutečně garantovány požadované vlastnosti přenosu). Ovšem realizovat něco takového v prostředí sítí fungujících na principu přepojování paketů není snadné - jde to jen takovým způsobem, že část dostupné přenosové kapacity i "zpracovatelské kapacity" v jednotlivých přepojovacích uzlech se doslova "ukradne" společnému využití pro přepojování paketů, a naopak vyhradí pro potřeby přenosů vyžadujících garanci kvality služeb (QoS). V prostředí protokolů TCP/IP lze takovéto řešení realizovat pomocí protokolů RSVP (rezervační protokol, který vyčlení a "rezervuje" příslušné části přenosových a zpracovatelských kapacit, a dále transportní protokol RTP (Real-Time Protocol), který takto vyhrazené kapacity využívá k faktickému přenosu dat s garantovanými parametry přenosu.
Není jenom rychlost
Požadavky na maximální rychlost jsou velmi "viditelnou" záležitostí, která dokáže plnit titulky článků i marketingové slogany prodejců. Neměli bychom ale zapomínat na to, že nejsou zdaleka jedinými požadavky. Každé zařízení, které má propojovat mezi sebou samostatné sítě (fungovat na síťové vrstvě, neboli na vrstvě č. 3), nutně musí podporovat i celou řadu dalších funkcí. Musí například dokázat spolupracovat s ostatními zařízeními, fungujícími na stejné vrstvě na výměně směrovacích informací. Musí tedy podporovat základní protokoly jako RIP či OSPF, a u větších systémů také protokoly BGS, IGRP a další.
Zařízení fungující na úrovni síťové vrstvy by také mělo podporovat obvyklé funkce v oblasti správy a managementu, které bývají na této vrstvě realizovány. Nejde zdaleka jen o podporu protokolu SNMP, který umožňuje provádět management samotného zařízení - jde také o možnost realizovat nejrůznější přístupová omezení odvozovaná typicky od síťových adres, a povolující či naopak zakazující přístup z konkrétních sítí či uzlů na konkrétní sítě či uzly.
Co je "Layer 3 switching" a "Layer 4 switching"?
Nyní, po celém dlouhém úvodu, si již konečně můžeme naznačit, co vlastně se rozumí pod pojmy jako "Layer 3 switching", "Layer 4 switching", či "routing switch" nebo "switching router", případně dalšími novými pojmy, které se v poslední době objevují v souvislosti s aktivními prvky pro počítačové sítě.
Jeden možný pohled na věc by byl takový, že jde jen o nové označení pro tradiční aktivní prvky charakteru směrovačů, a že tedy jde víceméně o marketingový tah. I když tento aspekt určitě také sehrává svou roli, není možné jej přeceňovat. Nové produkty, označované citovanými názvy, jsou totiž skutečně v mnohém odlišné od tradičních směrovačů, a tak si nové označení zaslouží. Problém je spíše v tom, že tyto nové termíny zdaleka nejsou ujednocené a málokterý výrobce si dává dostatečně záležet na tom, aby vysvětlil co konkrétně jimi míní.
Nové aktivní prvky jsou zcela zákonitě zařízení, která se snaží reagovat na změněné potřeby sítí (mj. na neustále rostoucí požadavky na rychlost, na podporu kvality služeb, na absenci pravidla 80:20 atd.) a tak se snaží aplikovat nové poznatky a metody i na svou vlastní koncepci a fungování. Asi nejlépe je možné to ukázat na termínu "Layer 3 switching" - samotný termín "switching" je důsledně spjat se 2. vrstvou (vrstvou linkovou), na které dochází k přepojování linkových rámců. Pro zařízení fungující na principu "switchingu" (switche, česky: přepínače) je charakteristická vysoká rychlost (vysoká celková výkonnost), a z konstrukčního hlediska také realizace přepojovacích funkcí přímo v hardwaru. Proto když tvůrci směrovačů (fungujících o vrstvu výše, tedy na 3. vrstvě neboli na úrovni vrstvy síťové) začali také zvyšovat celkovou rychlost svých produktů a dělali to tak že převedli základní "přepojovací funkce" do hardwaru, použili k označení výsledku spojení termínů "switching" (naznačující použité techniky) a "Layer 3" (vyjadřující to, že vše se odehrává na úrovni 3. vrstvy). Ve stejném smyslu bychom měli chápat i termíny jako "routing switch" či "switching router" - jde o zařízení která fungují na úrovni třetí vrstvy (proto "router" či alespoň "routing"), ale současně používají metody a techniky původně používané na úrovni vrstvy bezprostředně nižší (proto "switching", případně "switch").
Zapomínat bychom ale neměli na skutečnost, že zvyšování celkové rychlosti se u "nových směrovačů" může dosahovat i dalšími způsoby či jejich kombinací (viz výše, například delegováním inteligence na externí uzly apod.). Stejně tak bychom neměli zapomínat ani na to, že i ty nejinovativnější aktivní prvky fungující na úrovni třetí vrstvy musí implementovat takové funkce, které jim zajistí potřebnou schopnost interoperability s jejich okolím, resp. s ostatními aktivními prvky fungujícími na třetí vrstvě (směrovači). Jde zejména o podporu šíření směrovacích informací (skrze protokoly jako RIP, OSPF, případně BGP a další), které musí být podporovány. Na druhé straně se tato nová zařízení snaží implementovat i nové služby, mezi které patří především podpora kvality služeb (QoS, Quality of Service, viz výše).
Zajímavý je také termín "Layer 4 switching", který je striktně vzato kontradikcí: vrstva číslo 4, neboli vrstva transportní, je přítomna pouze v koncových uzlech sítí, a naopak není přítomna v aktivních prvcích sítě, přes které datové přenosy pouze prochází (tyto mají implementovány pouze nejnižší 3 vrstvy). Skutečný význam termínu "Layer 4 switching" je takový, že zařízení fungující na úrovni 3. vrstvy, které se standardně rozhodují podle informací příslušných této vrstvě (tedy zejména podle síťových adres, např. IP adres), se nyní rozhodují i podle informací odpovídajících vyšším vrstvám. Jde o to, že směrovač přes který určitý paket pochází, analyzuje obsah tohoto paketu tak detailně, že si všímá i jeho "nákladu" (paketu který přísluší až čtvrté vrstvě). Z tohoto nákladu je totiž patrné, alespoň v hrubém obrysu, jaký je charakter přenášených dat (z čísla portu odesilatele a příjemce lze například odvodit, zda se jedná o zprávu elektronické pošty (protokolem SMTP), o přenos souboru (protokolem FTP), o přenos WWW stránky (protokolem http) apod. Podle charakteru přenášených dat pak příslušné přepojovací zařízení může samo přiřazovat různým druhům provozu různé priority, a tím zlepšovat své přenosové vlastnosti vůči takovým druhům přenosů, které jsou na tyto vlastnosti citlivé.