Hang és videómegoszás könnyedén: WebRTC alapok

Blogposztjainkban mostanában gyakran írunk Nektek a problémamentes hang és videómegosztás fontosságáról. Ezt a fontos feladatot segíti elő egy rohamosan fejlődő technológia, a WebRTC.  Mivel mi, az Opennetworksnél is a  WebRTC-re alapozzuk ilyen fejlesztéseinket, a következő heti bejegyzéseinkben bemutatjuk Nektek, hogyan működik, miben újító jellegű és miért lehet hasznos a technológia alkalmazása.

Bemutatás:

A WebRTC technológia az oktatástól kezdve az egészségügyön át a telekommunikációs szektorig mindenhol költséghatékony és felhasználóbarát videó megosztó, illetve multicsatornás kommunikációs megoldásokat nyújt a cégek számára.  Manapság a pluginek egyre inkább biztonsági problémák frusztráló forrásának tűnnek, a WebRTC viszont egy új, telepítésmentes megoldást biztosít a fejlesztők számára, hogy alkalmazásaik segítségével új és izgalmas módon kössék össze az embereket.

Egy élő videó megosztása egy kameráról egy másik eszközre talán egyszerűen hangzik, de valójában rengeteg a változó tényező egy valós idejű, végpontok közti kommunikációt biztosító alkalmazásban. A hálózatok bonyolultak és nehezen átjárhatóak, a kódolás/dekódolás pedig szintén komplikált feladat, ami kompatibilitási problémákat is felvet. Nem véletlen tehát, hogy bár a WebRTC évek óta létezik, a fejlesztői közösség még mindig nem találta meg a közös hangot minden kérdésben.

P2P és szerver-kliens kapcsolatok:

Ahhoz, hogy megértsük a WebRTC technológia újító jellegét, egyet hátra kell lépnünk, és bemutatni, mi különbözteti meg a hagyományos, szerver-kliens alapú kommunikációtól:

Tegyük fel, hogy egy webszervert futattunk. Ez a szerver valószínűleg egy biztonságos kapcsolatot támogató 443-as TCP porton várja a kliensek kapcsolódását. Bármilyen internetre kapcsolódó eszköz nyithat egy TCP kapcsolatot ezen portok valamelyikével és küldhet egy HTTP kérelmet a szervernek. A szerver elfogadja a kapcsolatot, megkapja a HTTP kérelmet, generál egy megfelelő HTTP választ és a TCP kapcsolaton keresztül visszaküldi a várakozó kliensnek, ami ezután kezd valamit a válasszal, például megmutatja a tartalmát egy internetes böngészőben. Az ilyen hagyományos szerver-kliens kapcsolatok működtetik a világhálót.

De mi teszi a végpontokat klienssé és szerverré, nem tehetjük-e őket egyenrangú végpontokká? Tegyük fel, hogy két, hanghívásban résztvevő mobiltelefon között szeretnénk kapcsolatot létesíteni. Mindkét eszköz egyenlő lesz a hívásban, abban az értelemben, hogy egyaránt privilegizáltak. Az egyes számú telefon épp olyan könnyen kezdeményezhet kapcsolatot a kettesszámúval, ahogy fordítva.  Egyik sem kliens vagy szerver, így egyszerűen végpontokként hivatkozunk rájuk.

Miért hasznos?

Miért válasszuk a végpontok közti közvetlen kapcsolatot? Miért ne közvetítsük az adatokat egy közbülső szerver segítségével? Az egyenlő végpontok közti közvetlen kommunikációnak számos előnye van:

  1. Rövidebb késleltetés. Ez az egyik legkomolyabb érv a végpontok közti közvetlen kapcsolat mellett. A felek egyenlőnek tekintése és az adatok közvetlen küldése nagymértékben le tudja csökkenteni a késleltetést. Ez számos felhasználási területen rendkívül fontos, egy kétirányú videóhívás például komoly különbséget mutat 250 és 500ms-os késleltetés között.
  2. Alacsonyabb költségek. A sávszélesség talán olcsó, de a költségek mégis könnyen megemelkedhetnek, különösen, ha több száz, vagy éppen pár ezer feliratkozó küldi másodpercenként számos megabitnyi videhóhívás adatát keresztül a szervereken. Ilyen esetekben a végpontok közti közvetlen kapcsolat létrehozása komoly megtakarítással jár.

 

A WebRTC ugyanakkor sokkal több, mint egyszerű hálózati kapcsolat-biztosítás. A kapcsolatok önmagukban nem sok haszonnal bírnak, ha nem társul hozzájuk audió vagy videómegosztás funkció, vagy nincs meg a szükséges kapacitás ezek fogadására. Hogy milyen egyéb előnyei vannak a technológia alkalmazásának, bemutatjuk Nektek következő heti blogposztunkban.

Balázs

0

Szólj hozzá