Vyšlo v týdeníku CHIPweek č. 1/97, 7. ledna 1997
Vytištěno z adresy: http://www.earchiv.cz/a97/a701k150.php3

Přepojování okruhů a přepojování paketů

V minulém dílu tohoto modulu, při povídání o technikách multiplexu, jsme se zabývali možnostmi jak rozdělit jednu přenosovou cestu na několik logicky samostatných kanálů, resp. jak ji využít pro přenosy dat patřících různým příjemcům a různým adresátům. Dnes se posuneme za hranice jednotlivých ("souvislých") přenosových cest a začneme se zabývat způsobem, jakým jsou tyto přenosové cesty propojovány v místech, do kterých ústí - tedy například v nejrůznějších ústřednách, směrovačích a podobných zařízeních.

Obrázek 1.
Obr. 1: Představa přepojovacího uzlu fungujícího na principu přepojování paketů
Hned na začátku si můžeme říct, že k vzájemnému propojování přenosových cest existují dva základní přístupy: první se snaží zachovat iluzi souvislé přenosové cesty, tak aby i soustava vzájemně propojených přenosových cest se vůči komunikujícím stranám "tvářila" jako jedna souvislá cesta. Představíme-li si například přenosové cesty, z nichž jsou prostřednictvím frekvenčního multiplexu "vyříznuty" samostatné přenosové okruhy, pak tyto mohou být v přepojovacích uzlech propojeny takových způsobem, aby jejich "samostatnost" byla zachována, a i jejich výsledné propojení tvořilo jeden samostatný přenosový okruh, funkčně ekvivalentní přenosovému okruhu tvořenému jedinou přenosovou cestou. Konkrétním příkladem může být analogová telefonní síť, kde ke spojování jednotlivých okruhů na ústřednách docházelo prostřednictvím vhodných relátek, tedy dokonce galvanickým propojením. Však se také právě popsané technice říká "přepojování okruhů" (anglicky: circuit switching), a příklad s analogovou telefonní sítí je pro ni velmi reprezentativní.

Druhou variantou je takové propojení přenosových cest, které se nesnaží zachovat iluzi souvislé přenosové cesty, alespoň ne funkčně ekvivalentní jedné, fyzicky souvislé přenosové cestě. Místo toho se snaží rozpoznávat jednotlivé bloky dat, které jsou po dílčích přenosových cestách přenášeny, a tyto pak předávat dál vhodným směrem tak, aby se dostaly ke svým koncovým adresátům. Nedochází zde tedy k žádnému přepojování okruhů (přepojování přenosových cest), ale k přepojování bloků dat, které se po nich přenáší - a jelikož se tak nejčastěji děje na úrovni třetí vrstvy ISO/OSI (vrstvy síťové), kde se přenášené bloky označují jako pakety, je celý princip označován jako přepojování paketů (packet switching).

Trvale vyhrazená, nebo sdílená přenosová kapacita

Snad nejvýraznější odlišností mezi přepojováním paketů a přepojováním okruhů je jejich vztah k přenosové kapacitě. V případě přepojování okruhů se počítá s tím, že dílčí (propojované) přenosové cesty fungují tak, že mají trvale přidělenou (a tím současně i garantovanou) určitou přenosovou kapacitu, a jejich propojení na principu přepojování okruhu toto vyhrazení přenosové kapacity zachovává. Takže přenosové sítě, fungující na principu přepojování okruhů, dokáží vcelku dobře vycházet vstříc různým multimediálním přenosům, které většinou rovnoměrně vytěžují dostupné cesty a dokonce často i přímo vyžadují, aby tyto garantovaly určitou konstatní přenosovou kapacitu a konstantní přenosové zpoždění.

Naproti tomu u přepojování paketů se předpokládá, že dílčí přenosové cesty se celou svou přenosovou kapacitou věnují přenosům jednotlivých bloků dat (paketů), bez ohledu na to komu patří (kdo je jejich odesilatelem a kdo koncovým příjemcem). Jejich vzájemné propojení na principu přepojování paketů pak toto chování opět zachovává. V zásadě tedy přepojování paketů pracuje na principu sdílení veškeré dostupné přenosové kapacity všemi komunikujícími účastníky, zatímco přepojování okruhů pracuje na principu vyhrazování přenosové kapacity jednotlivým komunikujícím dvojicím účastníků.

Mechanismus store&forward

Pro správné pochopení principu přepojování okruhů je vhodné si uvědomit, že je to technika vhodná jak pro digitální, tak i pro analogové přenosy, a že při ní nedochází k žádným "zdržením" ani k žádnému dočasnému "skladování" v přepojovacích - což by v případě digitálních přenosů sice připadalo v úvahu, ale u analogových přenosů by to bylo prakticky neúnosné. Přenos v sítích na principu přepojování okruhů tedy probíhá v zásadě v reálném čase, a jediným zdržením na cestě bývá relativně malé přenosové zpoždění (dané zejména konečnou rychlostí šíření přenášeného signálu přenosovou cestou).

Naproti tomu u přepojování paketů přepojovací uzly nejčastěji pracují na principu, označovaném jako "store & forward". Ten spočívá v tom, že každý přenášený paket je v přepojovacím uzlu nejprve celý načten a uložen do vhodné vyrovnávací paměti (tzv. bufferu), tvořící vstupní frontu. Teprve poté přepojovací uzel rozhodne co s tímto paketem učiní - aplikuje algoritmus směrování a rozhodne, kterým směrem má být paket odeslán dál. Ve skutečnosti jej ale pouze zařadí do fronty paketů, čekajících na odeslání v příslušném směru, a k faktickému odeslání dochází až tehdy, kdy na paket dojde ve frontě řada (viz obrázek). Důležité je tedy uvědomit si, že každý paket se může v přepojovacím uzlu zdržet takovou dobu, která není apriorně omezena, a není ani předem odhadnutelná (protože závisí na momentální intenzitě provozu). V důsledku toho pak ani není zaručeno, za jak dlouho dorazí paket až na místo svého určení, ke svému koncovému adresátovi. Pro "klasické" aplikace, provozované v počítačových sítí (jako je elektronická pošta, přenos souborů a vzdálené přihlašování) , takovéto chování nijak nevadí, ale pro novější multimediální služby, zahrnující přenos živého zvuku či obrazu, to je velmi nepříjemné - ne ani tak samotné zpoždění, se kterým jsou data doručována, jako spíše nepravidelnost průběžného doručování jednotlivých částí. Představte si třeba přenos živého obrazu, u kterého budou jednotlivé snímky doručovány a zobrazovány s víceméně náhodnými odstupy mezi sebou! To by bylo jako dívat se na promítačku, které neustále kolísá rychlost posuvu filmového pásu.

Proč se ale potom přepojování paketů tak často používá, v prostředí počítačových sítí téměř výlučně? Je to kvůli jeho kladným stránkám, vyplývajícím ze samotného faktu že při přepojování paketů je veškerá přenosová kapacita sdílena: přenosům na bázi přepojování paketů příliš nevadí nárazovitost a nerovnoměrnost jednotlivých přenosů. Díky sdílení dokáží poskytnout veškerou přenosovou kapacitu tomu, kdo ji momentálně skutečně potřebuje, a zbytečně ji nepřidělují k výlučnému využití někomu, kdo ji naopak nevyužije.

Spojovaný a nespojovaný charakter

Zajímavý rozdíl mezi přepojováním okruhů a přepojováním paketů je i v tom, zda mají spojovaný či nespojovaný charakter. Přenosy v sítích fungujících na principu přepojování okruhů mají výlučně spojovaný charakter, protože předpokládají vytvoření přímého "spoje" od odesilatele až adresátovi - zde se tak dokonce děje již na úrovni fyzického spojení, resp. fyzických přenosových okruhů, a znamená to i vyhrazení určité konkrétní přenosové kapacity po celé délce spoje (okruhu). V případě přepojování paketů je obdobný spojovaný princip také možný, ovšem s jedním zásadním rozdílem - příslušný spoj resp. okruh vedoucí od příjemce až k adresátovi je zde vytvořen pouze virtuálně, takovým způsobem aby sám o sobě nespotřebovával (či spíše nevyhrazoval, neblokoval) žádnou přenosovou kapacitu. Jde spíše o záležitost logickou, jakési "vykolíkování cesty" (přesněji o vytvoření položek ve směrovacích tabulkách přepojovacích uzlů, které udávají kudy virtuální okruh vede).

Stejně tak je ale možné i to, aby přenos na principu přepojování paketů měl nespojovaný charakter, při kterém není předem navazováno spojení mezi příjemcem a odesilatelem, a není vytvářena žádná cesta mezi nimi - ani ve fyzickém slova smyslu, jako by tomu bylo u přepojování okruhů, ani ve smyslu logickém, jako u spojované varianty přepojování paketů (neboli u tzv. virtuálních okruhů). Každý paket (nyní označovaný spíše jako datagram) je pak přenášen zcela samostatně a nezávisle na ostatních (podobně jako dopis běžnou listovní poštou), a musí tudíž nést ve své hlavičce plnou adresu svého koncového příjemce (podobně jako běžný dopis). Naproti tomu paketům přenášeným po virtuálních okruzích stačí v jejich hlavičce pouze identifikátor tohoto okruhu, zatímco při přenosech na principu přepojování okruhů není explicitní identifikace příjemce dokonce vůbec nutná (příjemcem je ten, kdo je právě "na druhém konci drátu")!