WebRTC Nedir?

WebRTC Nedir?

WebRTC adını son zamanlarda oldukça fazla duymaya başladık. Aslında çok da yeni bir teknoloji değil, 2011 yılından beri kullanıma açık olan WebRTC, eş zamanlı olarak medya iletişimi (sesli ve/veya görüntülü) sağlayan bir teknolojidir. Pek çok avantaja sahip olan WebRTC’nin en büyük özelliği ise ek bir yazılım gerektirmeden bir çok popüler tarayıcı üzerinde doğrudan çalışabilmesidir.

WebRTC’nin açılımı Web Based Real Time Communication‘dır.  HTML5 ve Javascript API’leri kullanarak multimedya uygulamaları tasarlanabilir.

WebRTC’de kullanılan iletişim biçimini eşler arası (peer-to-peer) olarak tanımlayabiliriz. Bu iletişim doğrudan eşler arasında olduğundan her hangi bir medya sunucusuna ihtiyaç duymazsınız. WebRTC ücretsizdir ve BSD lisansına sahiptir, yani ücretsiz olarak WebRTC uygulamaları geliştirebilirsiniz. (Örneğin bu adreste WebRTC ile yapılmış bir video konferans sanal odasına girip görüşme yapabilirsiniz)

WebRTC Destekleyen Tarayıcılar

Günümüzde aşağıdaki tarayıcılar WebRTC desteklemektedir:

  • PC & MAC
    • Microsoft Edge 12+
    • Google Chrome 28+
    • Mozilla Firefox 22+
    • Safari 11+
    • Opera 18+
    • Vivaldi 1.9+
  • Android
    • Google Chrome 28+
    • Mozilla Firefox 24+
    • Opera Mobile 12+
  • iOS
    • MobileSafari/WebKit (iOS 11+)
  • Chrome OS
  • Firefox OS
  • BlackBerry 10
  • Tizen 3.0

WebRTC Bileşenleri

WebRTC’de 3 ana bileşen vardır:

1. MediaStream API

MediaStream API, javascript kullanarak kullanıcıdaki kamera, mikrofon veya ekrana erişim fonksiyonunlarını sağlar.

2. RTCPeerConnection API

RTCPeerConnection API, NAT traversal, Codec işleme, karşılıklı SDP anlaşması, medya iletimi ve eşler arasındaki güvenli bağlantı fonksiyonlarını sağlar.

3. RTCDataChannel API

RTCDataChannel API, eşler arasında çift yönlü veri aktarım kanalları kurulması fonksiyonlarını sağlar.

Eşler Arası Bağlantının Kurulması

Sinyaleşme, eşler arasındaki bağlantıyı oluşturan bir süreçtir. WebSocket, XMPP, SIP veya herhangi bir mekanizmayla elde edilebilir. WebRTC teknolojisi, RTP, STUN, SIP ve ICE gibi önemli protokollerden yararlanır.

WebRTC Sinyalleşme Süreci

Session Description Protocol (SDP)

SDP olarak da bilinir, Bir bağlantı kurmadan önce eşler arasındaki medya yeteneklerini (ses kodekleri, IP ve port bilgileri vs.) birbirlerini iletmek ve karşılıklı ortak noktada buluşmak için kullanılan bir protokoldür.

Interactive Connectivity Establishment (ICE)

ICE, NAT traversal mekanizması için kullanılan bir frameworktür. ICE mevcut tüm adayları toplar (yerel IP adresleri, dönüş IP adresleri STUN ve iletilen IP adresleri – TURN). Toplanan tüm adresler daha sonra SDP aracılığıyla uzak eşlere gönderilir.

STUN Sunucusu

STUN sunucusu, eşlerin genel (public) IP adreslerini, kullandıkları NAT türlerini ve NAT tarafından belirlenen yerel port bilgisi ile ilişkilendirilen Internet tarafı port bilgisi arasındaki ilişkiyi bulmalarını sağlar.

TURN Sunucusu

TURN sunucusu STUN kullanımı mümkün olmadığında, medya akışlarını bir TURN sunucusu üzerinden iletmek için (proxy gibi düşünebilirsiniz) kullanılır.

WebRTC her zaman eşler arası (P2P) değildir, çoklu iletişim durumlarında ise (ör. video konferans) farklı çözümler mevcuttur. Şimdi bunlara bir göz atalım.

Çoklu Nokta İletişim Türleri

1. Mesh

Mesh ağında, tüm eşler akışlarını doğrudan ağdaki diğer bağlı eşlere ayrı ayrı gönderir.

Mesh Topolojisinde Tüm Eşler Birbirleri İle İletişim Halindedir

Bu yapı tamamen dağıtık bir yapı olduğundan merkezde her hangi bir medya sunucusu bulunmasına gerek yoktur. Mesh yapısının dezavantajı ise yüksek bant genişliği kullanımıdır. Mesh yapısı kullanılan bir çoklu video görüşmesinde her kullanıcı 1 Mbps lik bir akış ürettiiği taktirde kullanıcı başına alınan ve gönderilen veri miktarı 4 er Mbps olacaktır.

2. SFU

SFU, Selective Forwarding Unit (Seçici İletme Birimi) anlamına gelir. Bir SFU gelen medya akışlarını tüm kullanıcılardan alır ve daha sonra hangi kullanıcılara gönderileceğine karar vererek iletimini sağlar.

SFU Merkezden Tüm Eşlere Ayrı Ayrı Aktarım Yapar

Bu yapıda her kullanıcı kendi ürettiği medya akışını SFU sunucusuna iletir. SFU sunucusu kim hangi akışı istiyorsa ona gönderebilir. Bu sayede bant genişliği daha efektif kullanılmış olur. Mesh örneğinde olduğu gibi burada da her kullanıcı 1 Mbps lik bir akış üretirse kullanıcı başına toplam gönderim miktarı 1 Mbps, toplam alım miktarı ise maksimum 4 Mbps olacaktır.

3. MCU

MCU, Multipoint Conferencing Unit (Çok Noktalı Konferans Birimi) anlamına gelir. Bir MCU gelen medya akışlarını tüm kullanıcılardan alır, hepsini çözer (decode), yeni bir düzen oluşturur ve tüm kullanıcılara tek bir akış olarak gönderir.

MCU Tüm Eşlerin Medyalarını Birleştirerek Eşlere Tek Bir Akış Gönderir

Bu yapının SFU dan farkı ise her kullanıcıya kombine tek bir akış gönderileceği için kullanıcı başı toplam gönderim ve alım miktarı 1 er Mbps olacaktır. Bu yapının da dezavantajı tahmin edebileceğiniz üzere merkezde bulunan yüksek işlem gücüne sahip olan MCU maliyetidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir