Najlepsze pytania
Chronologia
Czat
Perspektywa

WebRTC

Z Wikipedii, wolnej encyklopedii

Remove ads

WebRTC (Web Real-Time Communication) – wolny i otwartoźródłowy projekt, część standardu HTML5 zapewniająca przeglądarkom internetowym oraz aplikacjom mobilnym możliwość komunikacji w czasie rzeczywistym poprzez zestaw prostych interfejsów programowania (API). Podstawowym celem projektu jest umożliwienie komunikacji audio/video na stronach internetowych poprzez bezpośrednią komunikację typu peer-to-peer, eliminując w ten sposób potrzebę instalacji wtyczek czy ściągania natywnych aplikacji[1]. Projekt jest wspierany przez takie firmy jak Apple, Google, Microsoft, Mozilla i Opera. Specyfikacja techniczna została opublikowana przez World Wide Web Consortium (W3C) i Internet Engineering Task Force (IETF)[2][3]

Szybkie fakty Autor, Platforma sprzętowa ...

Według strony webrtc.org celem tego projektu jest „umożliwienie stworzenia bogatych, wysokiej jakości aplikacji RTC dla przeglądarek, platform mobilnych, i urządzeń internetu rzeczy i pozwolenie im na komunikację wspólnym zestawem protokołów[4].

Remove ads

Historia

Podsumowanie
Perspektywa

W maju 2010 roku Google zakupiło przedsiębiorstwo Global IP Solutions (GISP), które specjalizowało się w technologiach Wideokonferencyjnych i VoIP, a które stworzyło wiele komponentów wymaganych do komunikacji w czasie rzeczywistym (RTC), takich jak kodeki, czy techniki eliminacji echa[5]. Następnie przeniesiono posiadane technologie GISP do domeny otwarto-źródłowej i rozpoczęto proces współpracy z organami standaryzującymi takimi jak IETF, czy W3C by zapewnić nowemu standardowi wsparcie branży[6][5]. W maju 2011 Google wypuściło otwarto źródłowy projekt dla przeglądarek internetowych znany wtedy już pod nazwą WebRTC, jednak w dalszym ciągu kontynuowane były prace nad protokołami w IETF[7] i API przeglądarki w W3C[8].

W styczniu 2011 Ericsson Labs zbudowało pierwszą implementację WebRTC wykorzystując do tego bibliotekę WebKit[9][10]. W Październiku 2011, W3C opublikowało pierwszą roboczą specyfikacji projektu[11], by już dwa lata później (Luty 2013) wykonać pierwszą rozmowę i przesył danych z wykorzystaniem przeglądarki. Od Czerwca 2014 Google Hangouts już do pewnego stopnia również wykorzystał WebRTC do przesyłu danych[12].

Projekt API W3C został oparty na wstępnych pracach wykonanych w WHATWG[13]. API otrzymało nazwę ConnectionPeer, a pierwsze implementacja (poprzedzająca jeszcze standaryzację) została stworzona w Ericsson Labs.[10] Grupa Robocza WebRTC oczekuje, że ta specyfikacja będzie znacząco ewoluować na podstawie:

  • wyników trwających dyskusji w grupie RTCWEB w IETF w celu zdefiniowania zestawu protokołów, które wraz z tym dokumentem definiują komunikację w czasie rzeczywistym w przeglądarkach internetowych; chociaż specyfikacja standardu nie narzuca żadnego protokołu sygnalizacyjnego, bardzo często do tego zadania stosowany jest SIP oparty na WebSocketach;
  • problemów z prywatnością, które pojawiają się podczas ujawniania lokalnych możliwości i lokalnych strumieni;
  • dyskusji technicznych w grupie, dotyczących w szczególności implementacji kanałów danych[14];
  • doświadczenia zdobytego podczas wczesnych eksperymentów;
  • Informacji zwrotnych od innych grup i osób.

W listopadzie 2017 r. specyfikacja WebRTC 1.0 przeszła z poziomu Working Draft do Candidate Recommendation[15].

W styczniu 2021 r. specyfikacja WebRTC 1.0 przeszła z poziomu Candidate Recommendation do Recommendation[2].

Remove ads

Opis

Podsumowanie
Perspektywa

Projekt

Główne komponenty WebRTC opierają się na kilku javascriptowych API:

  • getUserMedia pozyskuje media typu audio i wideo (np. uzyskując dostęp do kamery i mikrofonu urządzenia)[16].
  • RTCPeerConnection umożliwia komunikację audio i wideo pomiędzy klientami. Obsługuje przetwarzanie sygnału, kodeki, komunikację peer-to-peer, odpowiada za bezpieczeństwo i przepustowość[17].
  • RTCDataChannel umożliwia dwukierunkową komunikację dowolnych danych pomiędzy peerami. Używa tego samego interfejsu API, co WebSocket i ma bardzo niskie opóźnienie[17].

WebRTC API zawiera również funkcję statystyk:

  • getStats umożliwia aplikacji internetowej pobieranie zestawu statystyk dotyczących sesji WebRTC. Te dane statystyczne są opisane w osobnym dokumencie W3C.[17]

Standard RFC 7874 ↓ wymaga implementacji minimum PCMA/PCMU (RFC 3551 ↓), DTMF (RFC 4733 ↓) oraz kodeka audio Opus (RFC 6716 ↓). Opcjonalne kodeki audio to m.in.: iLBC, iSAC, G.711, G.722, natomiast video to: H.264, VP8, VP9[18]. Interfejsy API przeglądarki PeerConnection, kanału danych i przechwytywania mediów są szczegółowo opisane w W3C.

Przykłady

Chociaż początkowo WebRTC zostało opracowane dla przeglądarek internetowych, jest on z powodzeniem wykorzystywany poza nimi, np. w platformach mobilnych, czy internetu rzeczy. Przykłady obejmują także telefonię VoIP opartą na przeglądarkach, zwaną telefonami w chmurze lub telefonami internetowymi, które umożliwiają wykonywanie i odbieranie połączeń z poziomu przeglądarki internetowej, zastępując wymóg pobierania i instalowania telefonu programowego[19]. O uniwersalności WebRTC świadczyć może to, że za jego pomocą został zaimplementowany klient protokołu BitTorrent dostępny w przeglądarce[20].

Wsparcie

WebRTC jest wspierane przez następujące przeglądarki

GStreamer bezpośrednio udostępnia darmową implementację WebRTC[24].

Remove ads

Wsparcie kodeków w różnych przeglądarkach

Obsługa poszczególnych kodeków nie jest jednolita. WebRTC ustanawia standardowy zestaw kodeków, które muszą wdrożyć wszystkie zgodne przeglądarki. Niektóre przeglądarki mogą zezwalać również na kodeki spoza bazowej specyfikacji[25].

Więcej informacji Nazwa kodeka, Profile ...
Więcej informacji Nazwa kodeka, Wspierające przeglądarki ...

Kontrowersje

W styczniu 2015 r. TorrentFreak zgłosił poważną lukę w zabezpieczeniach przeglądarek obsługujących WebRTC, mówiąc, że naruszył bezpieczeństwo tuneli VPN, ujawniając prawdziwy adres IP użytkownika[27]. Żądania odczytu adresu IP nie są widoczne w konsoli programisty przeglądarki i nie są blokowane przez większość wtyczek zarządzającymi prywatnością, umożliwiając śledzenie online przez reklamodawców i inne podmioty pomimo środków ostrożności (jednak wtyczka uBlock Origin może rozwiązać ten problem).

Remove ads

Przypisy

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads