Jak se nese hlas po síti - Internetová telefonie se pomalu rozmáhá

1. 1. 2005

Sdílet

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áč...

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