Báječný svět počítačových sítí, část VII. - Přenosové techniky
V prostředí počítačových sítí se data přenáší mnoha různými způsoby, s využitím různých technik. Některé přenosy jsou například plně duplexní, zatímco jiné jen simplexní. A jak postupovat, když potřebujeme rozdělit jeden přenosový kanál mezi více dílčích přenosů? Jaké techniky multiplexu se k tomu používají?Naše dnešní povídání o přenosových technikách začneme tím, co jsou duplexní a simplexní přenosy. Rozdíl mezi nimi se týká toho, zda jsou data přenášena jen v jednom směru (pak jde o simplexní přenos), nebo v obou směrech (pak jde o duplexní přenos).
S tím úzce souvisí i pojmy jako je kanál a okruh, které ale nepochází ani tak ze světa počítačových sítí, jako ze světa telekomunikací a spojů. Jako kanál se označuje taková přenosová cesta, která je pouze jednosměrná (tj. dá s využít pouze k simplexním přenosům). Naproti tomu okruh již je obousměrný, tj. umožňuje duplexní přenos.
Simplex, semiduplex
Příkladem čistě simplexního přenosu může být televizní a rozhlasové vysílání. To klasické (analogové) sice místo digitálních dat přenáší pouze analogový signál, ale i tak názorně ilustruje podstatu "simplexu": přenos probíhá jen jedním směrem, ke koncovým příjemcům. Stejně je na tom i teprve nastupující digitální televizní vysílání, u kterého již lze hovořit o přenosu dat. Pozemní (i satelitní) digitální vysílání, řešené na bázi standardu DVB-T (resp. DVB-S, pro satelit) totiž také počítá jen se simplexním přenosem.
Pokud se tedy v souvislosti s digitálním vysílání hovoří o interaktivitě a interaktivních službách, jako například o možnosti on-line hlasování, nakupování či třeba čtení emailů, pak musí být použit ještě nějaký "externí" přenosový kanál, umožňující přenos v opačném směru, od diváka k tomu, kdo programy připravuje a vysílá. Může to být v zásadě jakýkoli kanál - třeba telefonický (vytáčené připojení k Internetu), mobilní GPRS, ADSL apod.
Takové přenosy, které již fungují oběma směry, ale v každém z nich jiným způsobem, se obecně označují jako semiduplexní. Někdy také jako asymetrické, ale to není příliš šťastné. Toto adjektivum se častěji používá k vyjádření rozdílu v rychlostech přenosu v obou směrech, a nikoli v technice přenosu, resp. druhu použitého přenosového kanálu.
Plný duplex, poloviční duplex
I v případě obousměrných přenosů připadají v úvahu různé varianty, mezi kterými je třeba rozlišovat. Někdy je totiž komunikace v obou směrech sice možná, ale nikoli současně. To je případ tzv. polovičního duplexu, který umožňuje v každém okamžiku přenášet jen jedním směrem. Je to analogie železniční tratě s jednou kolejí - vlaky po ní mohou jezdit oběma směry, ale nikoli současně.
Naproti tomu varianta, kdy je možné přenášet oběma směry současně, je označována jako tzv. plný duplex. V rámci analogie s železnicí by to dopovídalo dvojkolejné trati.
Ještě ale k terminologii: někdy se lze i v češtině setkat s anglickými názvy "half-duplex" (poloviční duplex, zkráceně poloduplex), a "full duplex" (plný duplex).
Duplexní a poloduplexní přenosy
Důležité také je uvědomit si, že různé varianty "duplexů" se nemusí týkat pouze schopností přenosových médií a cest (resp. okruhů, v terminologii spojů) jako takových. Mohou vypovídat také o tom, jak jsou tyto schopnosti využívány pro konkrétní přenosy. Například: můžeme mít přenosovou cestu, která je sama o sobě plně duplexní. Z nějakého důvodu ji ale budeme využívat pouze poloduplexně. To znamená, že nad plně duplexní přenosovou cestou budou probíhat pouze poloduplexní přenosy.
Dělat to obráceně, tj. realizovat plně duplexní přenosy nad poloduplexní (či dokonce jen simplexní) přenosovou cestou není v principu možné. Lze to ale snadno obejít: stačí vzít dvě přenosové cesty (ať již poloduplexní či plně simplexní), a každou z nich používat pro přenos jedním směrem.
Příkladem mohou být přenosy po optických vláknech, které jsou (bez dalších opatření) pouze simplexní. Stačí ale použít po jednom vlákně pro každý směr, a již je možné realizovat plně duplexní přenosy.
Channel bundling
Další oblíbenou technikou, která souvisí s přenosovými kanály a jejich "duplexností", či spíše "simplexností", je jejich slučování, resp. skládání (známější spíše pod anglickým výrazem "channel bundling", případně "channel bonding"). Jde o to, že v praxi nemusíme mít vždy k dispozici takový přenosový kanál, který by svými parametry (hlavně rychlostí, resp. přenosovou kapacitou) odpovídal potřebám zamýšlených přenosů. Někdy ale můžeme získat takovýchto kanálů více, a používat je souběžně. Vlastně z nich jakoby složit jeden větší (širší, resp. rychlejší) přenosový kanál, který již vystačí našim potřebám. Právě tomu se říká "channel bundling".
V praxi se s takovýmto spojováním kanálů můžeme setkat například u přípojek ISDN. Ty nabízí přenosové kanály (kanály B, fakticky jde o obousměrné okruhy) o rychlosti 64 kbit/s. Pokud nám tato jejich rychlost nestačí, můžeme je spojovat (na principu channel bundlingu) do větších celků, odpovídajících celistvým násobkům. Tj. vezmeme vždy patřičný počet jednotlivých kanálů a používáme je jako jeden výsledný (sloučený, "bundlovaný") kanál. Pozor ale na to, že právě u ISDN přípojek je použití jednotlivých kanálů standardně zpoplatněno, a to samostatně. Takže když použijeme n kanálů současně, platíme nx více!
Jiným příkladem mohou být mobilní sítě GSM. Ty vlastně také nabízí dílčí přenosové kanály (byť se jim říká timesloty, tj. časové sloty, viz dále), a v každém z nich lze dosáhnout určitou přenosovou rychlost (standardně buď 9,6 kbit/s v případě Oskara a T-Mobile, a 14,4 kbit/s u Eurotelu). Pokud chceme dosáhnout vyšší rychlosti, například v rámci služeb GPRS, musíme použít více takovýchto dílčích kanálů (timeslotů) současně. Kolik jich skutečně využijeme, to záleží na více faktorech: na tom, zda je mobilní síť má momentálně k dispozici, zda je provozovatel sítě (operátor) ochoten je uvolnit (resp. přidělit více timeslotů stejnému uživateli), a také zda naše mobilní zařízení je schopné pracovat s více timesloty současně. Například když se o nějakém zařízení dočtete, že podporuje GPRS se 4+2 timesloty, znamená to, že je schopné využít nejvýše 4 timesloty pro přenosy ze sítě, a nejvýše 2 pro přenosy opačným směrem (do sítě).
Multiplex a inverzní multiplex
Techniku slučování kanálů (channel bundlingu) si můžeme představit jako řešení problému s neexistencí dostatečně velkého (širokého) přenosového kanálu. Místo něj se tedy použije patřičný počet menších (užších) kanálů, mezi které se celkový datový tok rozloží.
V praxi ale často nastává i přesně opačný problém: máme jeden větší (širší) přenosový kanál, a potřebujeme jej rozdělit na několik dílčích částí, které by se chovaly jako samostatné a na sobě nezávislé kanály. Tedy tak, aby po nich bylo možné přenášet několik zcela samostatných a na sobě nezávislých datových toků.
Řešení právě popsaného úkolu (rozdělení jednoho přenosového kanálu, případně okruhu, na více částí) se obecně označuje jako "multiplexování", resp. multiplex. Jeho představu obecně naznačuje následující obrázek, který jej dává do protikladu s již popsaným slučováním kanálů (channel bundlingem). Snad je z tohoto obrázku dostatečně zřejmé, proč se technice slučování kanálů někdy říká také inverzní multiplex.
Frekvenční multiplex
Realizace multiplexu, neboli rozdělení jednoho přenosového kanálu na více samostatně využitelných částí (kanálů), může být v praxi dosaženo více různými technikami, resp. postupy. Ty přitom mohou mít jak analogový charakter, tak i digitální charakter.
Příkladem analogové techniky multiplexu je tzv. frekvenční multiplex (anglicky: FDM, Frequency Division Multiplexing). Lze si jej představit tak, že analogový signál na každém ze vstupních kanálů je posunut do jiné "frekvenční polohy" (do jiného rozsahu frekvencí), a to tak šikovně, aby se žádné tyto polohy vzájemně nepřekrývaly. Pak je možné takto frekvenčně posunuté signály jednoduše sečíst (sloučit) do jednoho "širšího" signálu, a ten přenést skrze dostatečně "široký" přenosový kanál. Na druhé straně se pak provede přesně obrácený postup: jednotlivé dílčí signály se zase od sebe oddělí, a vrátí do původní frekvenční polohy (do svého původního frekvenčního rozsahu). Představu ilustruje následující obrázek.
V praxi je ovšem frekvenční multiplex nepříliš výhodný právě kvůli tomu, že jde o analogovu techniku - různé frekvenční posuny, vzájemné slučování a následné oddělování nejsou nikdy ideální, a vždy určitým způsobem znehodnocují přenášený signál. Jde jen o míru tohoto znehodnocení, tak jak ostatně u všech analogových technik.
Již v minulém dílu tohoto seriálu jsme si ukazovali ještě jednu variantu analogového multiplexu - multiplex vlnový (WDM, Wavelength Division Multiplexing). Byl založen na tom, že skrze jedno optické vlákno se přenášelo více "svazků" světla, každý o trochu jiné frekvenci, s tím že každý se choval samostatně (jako samostatný přenosový kanál). V zásadě tedy šlo o specifickou variantu frekvenčního multiplexu.
Časový multiplex
Z digitálních technik multiplexu je asi nejčastější multiplex časový (anglicky: TDM, Time Division Multiplexing). Ten si můžeme představit tak, že jeden "širší" přenosový kanál rozděluje v čase - vždy jej na krátký časový úsek (časový slot, timeslot) přidělí celý jednomu vstupnímu kanálu, na další krátký časový úsek (časový slot) jej svěří jinému vstupu atd., a tak stále dokola.
Pokud tato představa není zcela srozumitelná, lze si pomocí analogií s vláčkem a vagónky: skrze "širší" přenosový kanál, který je dělen v čase pomocí časového multiplexu, projíždí nekonečně dlouhý vláček. Má nekonečně mnoho vagónků, které jsou všechny stejně velké (uvezou stejně velký náklad), a jsou také pevně přiřazeny jednotlivým vstupům. Například tak, že první vstupní kanál má vyhrazeny vagónky č. 1, 3, 5, 7 atd., druhý vstup vagónky č. 2, 6, 10, 14 atd., a třetí vstup vagónky 4, 8, 12 atd.
Nebo nějak jinak, v zásadě jakkoli - ale s důležitým dovětkem, že toto přidělení je pevně dáno a předem známo. Příjemce tedy nemusí nikdy přemýšlet o tom, komu patří obsah toho kterého vagónku (časového úseku, resp. slotu). Jelikož zná příslušnou konvenci, okamžitě ví, na který výstup má předat obsah toho kterého vagónku (časového úseku, timeslotu).
Rozdělení celkové přenosové kapacity (přidělení všech vagónků nekonečně dlouhého vláčku) přitom nemusí být vůbec rovnoměrné. Časový multiplex může rozdělovat celkovou přenosovou kapacitu "širšího" přenosového kanálu na různě velké části (různě velké dílčí přenosové kanály). Stále však platí, že toto rozdělení je pevně dáno a nemění se v čase.
Statistický multiplex
Fixní a v čase neměnný způsob rozdělení přenosové kapacity u časového multiplexu může být jak výhodou, tak i nevýhodou.
Výhodou je v situaci, kdy jednotlivé vstupy generují rovnoměrné datové toky, bez významnějších odchylek v čase. Pak skutečně má smysl a je efektivní rozdělit celkovou přenosovou kapacitu na příslušný počet částí, a toto rozdělení dále neměnit.
Jinak je tomu ale v situaci, kdy se objemy dat, procházející přes jednotlivé vstupu, v čase významněji mění a kolísají. Problém nastává, když je skutečný objem dat k přenesení menší, než bylo původně očekáváno (a odpovídá rozdělení pomocí časového multiplexu). Pak totiž zůstává část přidělené kapacity nevyužita a není možné ji přenechat jinému vstupu, který by ji naopak naléhavě potřeboval, protože právě potřebuje přenést naopak více dat.
Pokud je třeba reflektovat měnící se zátěž (datové toky) na jednotlivých vstupech, a podle ní průběžně upravovat rozdělení celkové přenosové kapacity na příslušný počet částí, už je nutné místo časového multiplexu použít multiplex statistický (anglicky: STDM, Statistical Time Division Multiplexing). Jeho podstatu si lze přiblížit tak, že každý časový úsek (resp. vagónek, v analogii se železnicí) nemá pevně a dopředu určeno, jaký náklad bude přenášet. Místo toho může být přidělen podle momentální potřeby tomu vstupu (dílčímu přenosu), který jej právě potřebuje.
To má ale jeden závažný důsledek: příjemce se už nemůže spoléhat na to, že dopředu zná konvenci o rozdělení celkové přenosové kapacity, a tudíž dopředu ví, komu patří obsah toho kterého časového úseku (timeslotu, vagónku). Místo toho musí u statistického multiplexu každý časový úsek sám o sobě a explicitně říkat, jaký obsah přenáší. Spolu s "užitečnými" daty tak musí nést nějakou režijní hlavičku, ve které je potřebná informace o příslušnosti dat obsažena.
Kolísání objemu dat na jednotlivých vstupech, se kterým si statistický multiplex dokáže poradit (zatímco časový nikoli), může mít velmi racionální původ. Je jím zejména použití různých kompresí, který usilují co nejvíce zmenšit objem dat, určených k přenosu. Například při kompresi zvuku (hlasu) či obrazu je úspěšnost komprese, a s ní i velikost komprimovaných dat, závislá na dění na scéně, resp. na průběhu zvuku. Naproti tomu bez použití komprese by generovaný objem dat byl stejný bez ohledu na to, co se na scéně právě děje, zda právě někdo mlčí či naopak mluví atd.
Ve stručnosti proto lze konstatovat, že časový multiplex je vhodný pro nekomprimované přenosy, zatímco statistický je vhodný pro přenosy využívající komprese dat.
Kódový multiplex
Pro úplnost se musíme zmínit ještě o jednom dalším druhu multiplexu, kterým je multiplex kódový (CDM, Code Division Multiplexing). Jeho princip si lze nejlépe představit na příkladu rádiových přenosů, s několika na sobě nezávislými vysílači a přijímači, přičemž všechny tyto přijímače a vysílače využívají stejný rozsah frekvencí. Vše pak funguje tak, že každý vysílač svá data nejprve vhodně zakóduje, a pak rovnou vysílá, na stejné frekvenci jako ostatní vysílače. V éteru pak sice dochází ke "smíchání" všech takto vysílaných signálů, ale důležité je, že toto smíchání není nevratné. Naopak, každý přijímač by měl být schopen z přijaté "směsi" vyextrahovat právě to, co vyslal ten konkrétní vysílač, jehož data chce přijímat. Představu ilustruje následující obrázek, který znázorňuje různé signály (složky) prostřednictvím barev.
Vysvětlení toho, proč je "smíchání" jednotlivých signálů v éteru vratné, a jak lze následně vyextrahovat z výsledné "směsi" jednotlivé složky, je poněkud komplikovanější a byl by spíše na samostatný článek. Ve stručnosti si ale můžeme naznačit, že vše je skryto ve způsobu, jakým jednotlivé vysílače kódují vysílaný signál, resp. data. Musí být použito takové specifické kódování (u každého vysílače jiné), které příjemci umožní provést opačný postup (dekódování), a díky němu získat ze "směsi" požadovanou původní složku či složky. Proto také označení "kódový multiplex".
Kódový multiplex má také jednu zajímavou vlastnost, kterou je vhodné zde zmínit. Pokud je použit pro rádiové přenosy, jak jsme si právě naznačili, pak je velmi šetrný vůči přírodním zdrojům, konkrétně vůči použitým frekvencím. Například takový frekvenční multiplex s nimi naopak spíše plýtvá, protože když posouvá jednotlivé složky (dílčím přenosy) do různých frekvenčních poloh, musí mezi nimi dělat i určité nenulové odstupy, aby se vzájemně neovlivňovaly a bylo možné je od sebe zase správně oddělit. Frekvenční multiplex tak vlastně přenáší svou režii do vyšší spotřeby frekvencí. Těch je ale od přírody málo, a tak je nutné s nimi hospodařit co nejefektivněji.
Naproti tomu kódový multiplex "pouští" všechny dílčí přenosy (složky) do jednoho (a tudíž stejného) frekvenčního pásma, kde dochází k jejich vzájemnému smíchání. Režie, která je spojena s jejich opětovným oddělením, jde ale na vrub výpočetní kapacitě jednotlivých odesilatelů, a hlavně příjemců. Oni musí provést příslušné dekódování, a k tomu potřebují příslušnou výpočetní kapacitu (procesor, paměť atd.). Ovšem výpočetní kapacita, na rozdíl od frekvencí, je prakticky libovolně "nafukovatelná" - lze ji přidávat podle potřeby, a její cena navíc postupně klesá.
Multiplex jako metoda řízení přístupu
Kódový multiplex je tedy šetrný vůči vzácným přírodním zdrojům (frekvencím). To je důvod, proč je s oblibou používán i v situaci, kdy určitý počet stanic soupeří o využití jednoho společného přenosového kanálu. K tomu dochází například v mobilních sítích, protože jejich provozovatelé (mobilní operátoři) dostali ve svých licencích k dispozici jen určitý omezený rozsah frekvencí (frekvenčních kanálů), které smí využívat. Proto se operátoři snaží využívat jednotlivé frekvenční kanály opakovaně, a kvůli tomu rozdělují svou síť na buňky
Konkrétně v ČR regulátor (Český telekomunikační úřad) vyčlenil pro potřeby mobilních sítí GSM určitý rozsah frekvencí v pásmu 900 MHz (a později i v pásmu 1800 MHz). Tento rozsah frekvencí pak rozdělil, na principu frekvenčního multiplexu, na jednotlivé frekvenční kanály, vždy o šířce 200 kHz. Celkem jich takto v pásmo 900 MHz vzniklo 124, s tím že regulátor dal každému z mobilních operátorů určitý počet - viz následující obrázek.
Pro nás je ale v tuto chvíli podstatné něco jiného: i v rámci každé buňky jsou frekvenční kanály určitým způsobem sdíleny jednotlivými mobilními stanicemi (terminály), resp. rozděleny mezi ně. No a k tomu je již využit multiplex časový. Když si to hodně zjednodušíme, je každý frekvenční kanál v GSM rozdělen pomocí časového multiplexu na 8 časových slotů (timeslotů). Představu ilustruje následující obrázek:
Mobilní telefony v sítích GSM pak při telefonování využívají vždy jeden timeslot pro přenos (digitalizovaného lidského hlasu) v jednom směru, a jeden timeslot pro přenos v opačném směru. Jak jsme si již uvedli, pro datové přenosy se může využívat i více timeslotů současně.
Síť GSM tedy využívá techniky časového multiplexu, k řízení přístupu svých stanic ke společnému přenosovému médiu, v podobě příslušného frekvenčního kanálu. Kvůli tomuto konkrétnímu využití, pro potřeby řízení přístupu (anglicky: Access Control), se pak také hovoří o řízení přístupu na bázi časového multiplexu, zkratkou TDMA (Time Division Multiple Access), nebo o řízení přístupu na bázi frekvenčního multiplexu FDMA (Frequency Division Multiple Access).
Ovšem GSM není jediný standard pro mobilní sítě, který se používá. Vedle něj existují i jiné, využívající úplně jiné metody pro sdílení přenosového média (frekvenčních kanálů) a řízení přístupu jednotlivých stanic, než je časový multiplex, resp. TDMA. Zejména v zámoří jsou oblíbené mobilní sítě, využívající k danému účelu techniky kódového multiplexu. Ten je při daném využití (pro potřeby řízení přístupu) již označován jako CDMA (Code Division Multiple Access). Snad netřeba připomínat, že i v ČR máme jednu CDMA síť - provozuje ji Eurotel, v pásmu 450 MHz, a to výhradně pro datové přenosy (nikoli pro hlas).
TDD a FDD
Na závěr se musíme zmínit ještě o jedné související technice, a to technice tzv. duplexingu. Jak už její název napovídá, jde o způsob, jakým je v bezdrátových sítích řešena komunikace v obou směrech.
Základní možnosti jsou dvě, a ilustruje je následující obrázek:
- technika tzv. frekvenčního duplexu (FDD, Frequency Division Duplex) předpokládá, že pro každý ze směrů jsou použity samostatné (a tudíž různé) frekvenční rozsahy. Takto je to řešeno například v GSM, kde je fakticky vyhrazeno 2x 124 frekvenčních kanálů: 124 v pásmu 890-915 MHz pro tzv. uplink (směr od mobilního terminálu do sítě), a 124 v pásmu 935 až 960 MHz pro opačný směr, tzv. downlink.
- technika tzv. časového duplexu (TDD, Time Division Duplex) předpokládá, že pro komunikaci v obou směrech se používají stejné frekvence, ale střídavě v čase. Každý timeslot je vždy použit pro přenos jedním směrem, ale další timeslot již může být využit pro přenos opačným směrem.
Zajímavé je, že obě tyto techniky si nejsou zcela rovny, pokud jde o jejich vhodnost pro potřeby datových služeb. V případě hlasových služeb ještě nikoli, protože zde je "spotřeba" přenosových kapacit v obou směrech v zásadě stejná. Ale v případě datových přenosů bývají požadavky asymetrické, konkrétně větší ve směru downlinku (od sítě k uživateli), a menší v opačném směru. Technika frekvenčního duplexu, v rámci které by pro oba směry byl vyhrazen stejný počet frekvenčních kanálů, by pak nebyla nejvhodnější. Naopak technika časového duplexu umožňuje rozkládat celkovou přenosovou kapacitu mezi oba směry podle momentálních potřeb.