Používáte internetovou telefonii? Možná, že přímo tento pojem zní zatím ještě
docela cize, ale názvy jako Skype nebo Microsoft NetMeeting už určitě ne. A co
možnost komunikace hráčů v síťových počítačových hrách? Jak to všechno funguje?
Jak je možné v reálném čase prostřednictvím počítačové sítě nebo internetu
přenášet hlas?
Na internetu a v počítačových sítích vůbec existují z hlediska jejich časové
relevance dva typy přenášených informací. Vždy je lepší, když se samotný přenos
dat z bodu A do bodu B uskuteční co nejrychleji, ne vždy je ale právě tato
rychlost, přesněji zpoždění mezi časem, kdy informace opustila místo, odkud
byla vyslána, a kdy dorazila k příjemci, naprosto určující pro to, aby daná
služba nebo funkce mohla fungovat. Například protokoly pro přenos souborů
(FTP), webových stránek (HTTP) a e-mailu (SMTP) mohou fungovat v podstatě
nezávisle na čase, protože pokud mezi odesláním požadavku uplyne alespoň taková
doba, která se vejde do stanoveného timeoutu, je vlastně jedno, kdy je daná
informace doručena (z hlediska samotného fungování služby) důležité je, že
doručena je. V případě, že není, požádá se o ni prostě znovu.
Data v reálném čase
Pak ale existují takové aplikace, u kterých na čase přenosu informací záleží.
Jsou to ty, u nichž je nutné komunikovat v reálném čase. Především se jedná o
takové, které pracují s některým z typů proudových (streamovaných) dat.
Nejčastější proudová data, s nimiž se můžeme setkat, jsou obraz a zvuk. U nich
záleží nejen na přenosu v reálném čase, ale také na dodržení pořadí přenesené
informace. Nikdo by přece nechtěl, abyste se od toho, kdo vám telefonuje,
dozvěděli nejdříve pointu vtipu a pak jeho začátek. Hlas ovšem není jediným
typem proudově přenášených dat, přesto je v současné době využíván stále více i
v domácím prostředí.
Internet telefonování nepřeje
Rozmach využívání internetu a počítačových sítí pro přenos hlasu přinesl na
jednu stranu zcela novou dimenzi těchto služeb, na stranu druhou ale také
nemalé množství problémů. Většina moderních sítí (internet nevyjímaje) pracuje
na principu paketové komunikace. Data, která je potřeba po síti přenést, jsou
rozdělena na menší části, takzvané pakety. Tyto části mohou, ale nemusí
obsahovat informaci, odkud pocházejí, vždy "vědí", kam míří, tedy co je jejich
cílovou stanicí. Strana, která pakety vysílá, a ta, která je přijímá, jsou pak
odpovědné za správné rozdělení informace a její následné správné "složení"
dohromady. Specifikem internetu je, že v okamžiku, kdy je kterýkoliv paket
odesílán, není zcela jasné, jakou cestou se dostane ke svému příjemci. Internet
byl koncipován jako redundantní síť, a proto není možné jednoznačně stanovit
cestu, kterou bude určitý paket přenášen.
Telefonování po síti vyžaduje z hlediska přenosu jednu věc: aby bylo možné
zaručit, že data představující hlas budou přenášena obousměrně mezi dvěma body
v takřka reálném čase a zároveň v dostatečné kvalitě. Nedojde tedy k převrácení
pořadí paketů, do kterých je hlas rozdělen, nedojde k příliš velkému zpoždění
přenosu, nebude často docházet ke ztrátám paketů. To vše přitom musí probíhat
současně s procesem kódování a dekódování hlasu na obou komunikujících stranách
tak, aby lidé, kteří spolu fyzicky komunikují, o celé poměrně složité
infrastruktuře, jež se mezi nimi nachází, pokud možno vůbec nevěděli.
Právě takové komunikaci internet příliš nepřeje, protože na ni není
konstruován. Stabilita přenosu dat byla při jeho stavbě upřednostněna před
plynulostí. Výsledkem bohužel je, že data, jež potřebují být přenášena
proudově, tím dosti trpí a musí kvůli nim vznikat speciální technologie, které
pak dodatečně umožňují doplňovat do síťové infrastruktury to, co původní autoři
zapomněli implementovat, přesněji co neimplementovali, protože s tím vlastně
ani původně nepočítali.
Jak probíhá telefonování po síti
Internetový nebo vůbec síťový telefon se na první pohled vůbec nemusí odlišovat
od toho klasického. Může mít sluchátko, klávesnici, displej, pouze místo aby
byl připojen do klasické analogové telefonní sítě, je součástí sítě datové. Buď
prostřednictvím běžného ethernetu (telefon má vlastní port), nebo jako
hardwarový doplněk osobního počítače či jiného, například přenosného zařízení.
Nesmíme zapomenout také na čistě softwarové telefony. Běžné počítače mají již
dávno výbavu nezbytnou pro to, aby se mohly stát plnoprávnými telefony. Mají
zvukový adaptér, který je schopen samplovat, tedy digitalizovat zvuk, jenž
přichází z vnějšího zdroje, typicky z mikrofonu, zároveň mohou přehrávat
digitální zvuk, který přichází v datové podobě. Většina zvukových adaptérů,
tedy karet nebo kodeků, jež jsou součástí základních desek moderních PC,
pracuje v plně duplexním režimu. Ten sice není nezbytnou podmínkou
elektronického telefonování, nicméně je jeho velmi důležitým předpokladem,
zejména pokud chceme telefonovat dostatečně rychle a v dostatečné kvalitě.
Digitalizovaný zvuk je pomocí speciálního kodeku komprimován a pak odesílán
příjemci. Současně jsou přijímány pakety od druhé strany. Ty jsou dekódovány,
kontrolovány opravným algoritmem a převáděny na hlasová data. Stejný kodek,
který se stará o kompresi zvuku, jej následně i dekomprimuje a pomocí
výstupního mechanismu, zvukového adaptéru převádí do slyšitelné podoby.
Výsledkem je, že vnímáme zvuk a současně druhý telefonující vnímá nás.
Pokud pro IP telefonování používáme obyčejný počítač a čistě softwarové
prostředky (ICQ, Skype), pak se často můžeme setkat s nedostatky, které plynou
z použití takových prostředků. Speciální jednoúčelové telefony nabízejí mnohem
větší komfort použití, ale jsou samozřejmě dražší a v mnoha případech je jejich
použití v domácím prostředí také obtížnější. Některé z nich jsou totiž
technicky vzato samy o sobě jednoúčelovými počítači, s jejichž pomocí je možné
telefonovat, ale také provádět i další věci, posílat e-maily, krátké textové
zprávy, nebo například používat jednoduché internetové nebo síťové aplikace.
Aby bylo vůbec možné telefonovat a přenášet hlas, musí být mezi oběma (nebo
více) komunikujícími stranami navázáno datové spojení. V případě klasického
telefonování známe číslo které identifikuje stanici, s níž chceme komunikovat.
Podobný identifikátor musí být přiřazen každému uzlu, který se chce účastnit
komunikace i v datovém prostředí. Většinou se jedná o IP adresu, ta ale nemusí
být pro každý síťový prvek stále stejná, a tak se používají i jiné typy
identifikace: speciální čísla, jednoznačné určující řetězce, je dokonce možné
přiřadit elektronickému datovému uzlu klasické telefonní číslo, jaké známe z
běžných telefonů nebo z mobilních sítí (některé firmy, které nabízejí IP
telefonii, to dokonce již i u nás běžně dělají). Komunikace musí být nějak
iniciována k tomu se používá technologie nazvaná adresářová služba. Tato služba
je zodpovědná za udržování seznamu všech účastníků určitého systému a za
schopnost tyto účastníky dohledat. Každý účastník má do adresářové služby
přístup a díky tomu může navazovat spojení s jinými účastníky (protože ví, kde
je má hledat) a také může být sám nalezen (je uveden v adresáři společně se
svým identifikátorem a aktuální IP adresou místem, kde jej lze v internetu nebo
v místní síti najít).
Ještě dříve, než začne hovor po síti, tedy než kodeky začnou digitalizovat a
kódovat váš hlas a přenášet jej druhé straně, se musí komunikační aplikace,
telefony nebo počítačové programy "domluvit" na tom, jak vlastně budou
komunikovat. Určí si jednak optimální kompresní protokol (kodek), dále pak
protokol pro kontrolu chyb na základě dostupného propojení, přesněji na základě
toho, jaká je prostupnost komunikační trasy mezi oběma komunikujícími stranami.
Ve firmách, které mají vlastní síťovou infrastrukturu, se pro tuto komunikaci
často používají speciální prvky, o nichž ještě bude řeč, nicméně v prostředí
klasické IP sítě je nutné několikrát zjistit, jaká je vlastně přenosová
kapacita jednotlivých stran, jak průchodná je cesta mezi nimi a podle toho
vybrat vhodný kodek. Různé algoritmy pro kompresi hlasu vyžadují různě silný
datový tok, to znamená potřebují dosahovat různé komunikační rychlosti mezi
dvěma body. Požadovaný datový tok je obvykle v určitém vztahu s kvalitou
komunikace, přesněji řečeno s kvalitou zvuku, který z IP telefonu nakonec
zazní. A tak je rozhodování ještě o něco komplikovanější.
Podstatný je také algoritmus, který má za cíl chránit navázanou komunikaci před
chybami. Nejčastějšími chybami u proudové komunikace (jíž přenos hlasu je) jsou
zpožděné, nedoručené nebo přehozené pakety. První typ vytváří nepříjemné
zvukové ozvěny, druhý zapříčiňuje nevybavení části hovoru a tedy "chybějící"
informaci, kterou je nutné odeslat znovu za cenu opakování chyby číslo 1.
Přehozené pakety vnášejí do celé komunikace zmatek. Je nutné je identifikovat a
pozdržet do okamžiku, než na ně přijde řada, avšak pouze za předpokladu, že
všechny předchozí jsou k dispozici. To všechno musí probíhat tak rychle, aby si
lidé, kteří spolu telefonují, vůbec neuvědomovali, že někde pod jejich
uživatelským rozhraním dochází ke kódování a dekódování dat, k nepřetržitému
opravování chyb, k udržování spojení a mnoha dalším podobným operacím, jež mají
za cíl zajistit dostatečný komfort při práci s jejich telefonní aplikací, ať je
to náš dobře známý program Skype, nebo například funkce hlasového chatu v
nějaké on-line hře.
VoIP a bezpečnost
Z předchozího vyplývá, že přenos hlasu po internetu není právě jednoduchou a
primitivní záležitostí. Protože jsou ale data tvořící hlas přenášena po síti,
do které má každý v podstatě neomezený přístup, je nějakým způsobem nutné
zajistit i jejich bezpečnost. Jak to ale udělat, jestliže samotná komunikace
představuje poměrně velké množství značně náročných operací, které je potřeba
provádět současně?
Nejklasičtějším přístupem je on-line šifrování hovoru. Komprimovaná data jsou
ještě před odesláním do sítě zašifrována některým ze symetrických šifrovacích
algoritmů, které podporují proudové šifrování. Když dorazí na místo, dochází k
jejich dešifrování a až následně jsou dekomprimována a překládána zpět na hlas
nebo na vstupní zvukovou informaci. Takové šifrování je běžné i v některých
telefonních sítích, avšak má své nedostatky. Komunikující strany si musí
bezpodmínečně vyměnit klíče, jejichž prostřednictvím je šifrování prováděno, a
až na základě těchto klíčů pak komunikovat. Výměna klíčů je poměrně složitou
záležitostí, protože se musí provést tak, aby nikdo nemohl přenášené klíče
odposlechnout.
Autentizace a šifrování je věda a dá se říci, že například ani technologie
mobilních telefonních sítí, které používáme každý den, tuto otázku zcela
nevyřešila. Hovory v GSM, které se (pouze v některých ohledech) technologiím
VoIP podobají, jsou kódovány, ale pouze v jednom úseku svého průběhu, totiž ve
"vzdušné" části, mezi telefonním aparátem koncovým zařízením a základovou
stanicí mobilního operátora (BTS).
Použití meziprvku
Síťová telefonie může být realizována, pokud se jedná o komunikaci dvou prvků,
z nichž oba jsou součástí stejného typu sítě, dvěma způsoby. Buď přímým
propojením, což je běžnější, nebo prostřednictvím speciálního meziprvku
(brány). Ten je vsazen mezi oba účastníky komunikace a může mít několik různých
úkolů. Prvním z nich je funkce transparentního přemostění mezi aplikacemi
založenými na různých standardech. Brána tak slouží vlastně jako jakýsi
překladač komunikace různých klientů nebo různých přístrojů, které pracují na
protokolech, jež mezi sebou nejsou standardní cestou záměnitelné. Další možná
činnost prvku zařazeného mezi účastníky je zajištění vyšší bezpečnosti nebo
například znemožnění přímé identifikace jednotlivých prvků (členů) mezi sebou
navzájem. Meziprvek také může monitorovat nebo zaznamenávat provoz. Tato
činnost bývá vykonávána pro potřeby majitele komunikační sítě, pro archivaci
hovorů ve firmách a z mnoha jiných důvodů.
Přítomnost meziprvku je ovšem nutná tam, kde je potřeba, aby spolu komunikovaly
velmi odlišné systémy v různých sítích. Například když chceme telefonovat z IP
telefonu nebo on-line aplikace na klasické telefonní číslo, které se nachází ve
veřejné síti. To se přitom používá nejen ve firmách, ale například také při
laciném telefonování do zahraničí. Brány jsou obvykle poměrně složitými
počítači, vybavenými speciálními aplikacemi a určenými přímo k této činnosti.
Pokud jsou nezbytnou součástí sítě, je na ně kladen požadavek schopnosti
nepřetržitého provozu a také aby byly schopny realizovat i další služby VoIP
sítě. Například fungují jako adresářové servery, zabezpečují výměnu klíčů a
zprostředkování kompatibilního šifrování, ověřují jednotlivé klienty a
zabraňují tomu, aby se do sítě nepřipojil někdo, kdo k tomu není oprávněn,
navícpak vykonávají další, podobné činnosti.
Kde internet nestačí
Předchozí technologie jsou použitelné pro "běžné" VoIP, jaké můžeme používat
doma. Mnoho firem a institucí se ale již rozhodlo, že své komunikační systémy z
větší části nebo zcela převede na IP technologii. V mnoha ohledech je taková
komunikace totiž jednodušší a lacinější než stavba klasické telefonní sítě a
její propojení s běžnými prostředími tedy s pevnou sítí a s mobilními
komunikačními sítěmi. VoIP nabízí možnost integrace v rámci stávající síťové
infrastruktury, která se používá pro jiné účely, pro klasický provoz počítačové
sítě, internet, sdílené aplikace a další běžné služby. Tam, kde se realizuje
velké množství hovorů prostřednictvím IP systémů, se začínají projevovat
bolesti, o nichž jsme se zmínili v úvodu tohoto článku. Tedy, nepřipravenost
klasické IP struktury pro přenos hlasu a její nedostatky. Proto se ukázalo, že
pro masivní podporu telefonování, ale také například videokonferencí je potřeba
implementovat mimo jiné specializovaný hardware a software, tedy kompletní
systém umožňující VoIP telefonování na podnikové úrovni (call manager, IP
telefonní přístroje, infrastruktura).
Zajímavým trendem poslední doby je, že některé firmy, tradiční výrobci síťových
prvků, se snaží integrovat hlasové funkce i do takových zařízení, které pro ně
nejsou primárně určeny. Se specializovanou podporou VoIP se tak můžeme setkat v
síťových přepínačích, směrovačích, firewallech a především pak v kombinovaných
systémech, které se snaží do jednoho fyzického balení integrovat více než jednu
výše zmíněnou funkci. Bohužel i přes tuto snahu existuje celá řada praktických
problémů, především ve vzájemné kompatibilitě mezi takovými zařízeními.
Existuje sice poměrně slušná standardizace většiny procesů souvisejících s
hlasovou komunikací, nicméně standardy nejsou vždy dodržovány, respektive jsou
rozšiřovány o různé proprietární doplňky, které mají zvyšovat jejich výkonnost,
ve skutečnosti nicméně vedou spíše ke ztrátě kompatibility a možnosti
spolupracovat s jinými zařízeními, byť velmi podobného typu.
Konjunktura VoIP
Přenos hlasu po IP síti je v současné době ve fázi poměrně radikální
konjunktury, i když velcí výrobci a vizionáři v oblasti technologií si již
uvědomují, že tato technologie má své možnosti a limity dané principy, na nichž
je provozována. Jednoduchý program, který můžeme používat doma pro komunikaci
se sousedem nebo s kamarádem u vzdáleného počítače je, i když využívá obdobných
technologií, pouze chabým odleskem mnohem složitějších systémů, jaké najdeme ve
spletité síťové infrastruktuře podniků. Zcela specificky se pak s VoIP můžeme
setkat tam, kde bychom ji vůbec nečekali. Totiž v případě úplně obyčejných
veřejných telefonních sítí, pokud chceme telefonovat do zahraničí, na velkou
vzdálenost atp. Právě tam totiž často dochází k překladu modulovaného zvuku na
přenos typu VoIP a jeho dálkové vedení pomocí veřejné datové sítě. Má to totiž
své velké výhody, především je využití internetu opravdu podstatně lacinější,
než by bylo budovat vlastní, velmi složitou komunikační infrastrukturu.
S internetovou telefonií se tak můžeme setkat v desítkách různých, často velmi
odlišných nasazení, nicméně i přes svou složitost je zde od toho, aby nám v
první řadě kvalitně a dlouhodobě sloužila. To podstatné, (konec konců bez
ohledu na množství technologií a protokolů nacházejících se pod povrchem) je,
abychom se vždy v dobré kvalitě dovolali, abychom slyšeli toho, koho chceme
slyšet a aby nám spojení nepadalo.
Slovníček
Pakety jednotky informace (datové balíčky), na něž jsou rozdělena data putující
internetem i jinými typy sítí.
Timeout limitní čas. Pokud se transakce nerealizuje ve stanovené době, považuje
se za zrušenou. Nejzazší doba, jak dlouho lze na něco čekat.
TTL Time to Live. Maximální doba, po kterou může informace putovat sítí, aniž
by byla prohlášena za "mrtvou" a vymazána, přesněji vyřazena z komunikace. TTL
má na internetu bránit vzniku "bludných paketů".
Reálný čas (Realtime) znamená, že mezi odesláním a přijetím informace musí
uplynout co nejkratší úsek a současně musí být zachováno pořadí informací. Jde
o rychlý přenos a zpracování dat a transakcí, jakmile nastane událost. Je
protikladem zpracování a přenosu dat v dávkách.
Proudová data (Stream) jsou ta, u nichž zásadně záleží na pořadí přenesených
informací. Přenášejí se jako "proud" informací.
VoIP Voice over IP je souhrnný název technologií, které se používají pro přenos
hlasu po internetu, přesněji řečeno prostřednictvím protokolu IP.
Zajímavé adresy
http://www.skype.com
http://www.fayn.cz
http://www.ieee.org
http://www.cisco.cz