WebRTC

Webrtc
WebRTC Logo.svg
Originalautor (en) Justin Uberti
Peter Thatcher
Erstveröffentlichung 2011; Vor 11 Jahren
Stabile Version
1.0[1] / 4. Mai 2018; vor 4 Jahren
Repository webrtc.googlesource.com
Geschrieben in C ++,[2] JavaScript
Standard(s) W3.org/Tr/webrtc/
Lizenz BSD -Lizenz
Webseite webrtc.org

Webrtc (Web-Echtzeitkommunikation) ist ein frei und offen Projektbereitstellung Internetbrowser und mobile Anwendungen mit Echtzeitkommunikation (RTC) über Anwendungsprogrammierschnittstellen (APIS). Es ermöglicht Audio- und Videokommunikation, auf Webseiten zu arbeiten, indem es direkt zulässig ist Peer-To-Peer Kommunikation und die Installation der Notwendigkeit der Installation Plugins oder native Apps herunterladen.[3] Unterstützt durch Apfel, Google, Microsoft, Mozilla, und OperDie WEBRTC -Spezifikationen wurden von der veröffentlicht World Wide Web Konsortium (W3c) und die Internettechnik-Arbeitsgruppe (IETF).[4][5]

Laut der Website webrtc.org besteht der Zweck des Projekts darin, "die Entwicklung reicher, hochwertiger RTC-Anwendungen für den Browser, die mobilen Plattformen und für den Browser zu ermöglichen IoT Geräte und erlauben ihnen alle, über einen gemeinsamen Satz von zu kommunizieren Protokolle".[6]

Geschichte

Im Mai 2010 kaufte Google Globale IP -Lösungen oder Gips, a Voip und Videokonferenz Softwareunternehmen, das viele für RTC erforderliche Komponenten entwickelt hatte, wie z. B. Codecs und Echo -Stornierungstechniken. Google Open-Souring die GIPS Ietf und W3c Um den Branchenkonsens zu gewährleisten.[7][8] Im Mai 2011, Google veröffentlicht an Open Source Projekt für Browser-basierte Echtzeitkommunikation, bekannt als WEBRTC.[9] Diesem folgte laufende Arbeiten, um die Relevanten zu standardisieren Protokolle in dem Ietf[10] und Browser -APIs im W3C.[11]

Im Januar 2011, Ericsson Labors bauten die erste Implementierung von WEBRTC unter Verwendung eines modifizierten Webkit Bibliothek.[12][13] Im Oktober 2011 die W3c veröffentlichte seinen ersten Entwurf für die Spezifikation.[14] Zu den WEBRTC-Meilensteinen gehören der erste Cross-Browser-Videoanruf (Februar 2013), First Cross-Browser-Datentransfers (Februar 2014) und ab Juli 2014 Google -Treffpunkte war "Art von" verwendete Webrtc.[15]

Die W3C -Entwurfs -API basierte auf vorläufigen Arbeiten in der Waswg.[16] Es wurde als ConnectionPeer-API bezeichnet, und es wurde eine Implementierung vor dem Standardkonzept erstellt Ericsson Labors.[12] Die WebBRTC -Arbeitsgruppe erwartet, dass sich diese Spezifikation erheblich entwickelt, basierend auf:

  • Ergebnisse des laufenden Austauschs in der Begleiterin RTCWEB -Gruppe bei Ietf[17] zu definieren, die Menge von Protokolle Das definieren zusammen mit diesem Dokument Echtzeitkommunikation In Webbrowsern. Während niemand Signalprotokoll vorgeschrieben ist, SCHLUCK Über Websockets ( RFC 7118) wird häufig teilweise auf die Anwendbarkeit von SIP auf die meisten geplanten Kommunikationsszenarien sowie auf die Verfügbarkeit von Open-Source-Software wie z. JSSIP.
  • Datenschutzfragen Dies entsteht bei der Freigabe lokaler Fähigkeiten und lokalen Ströme
  • Technische Diskussionen innerhalb der Gruppe, insbesondere zum Implementieren von Datenkanälen[18]
  • Erfahrung, die durch frühes Experimentieren gewonnen wurde
  • Feedback von anderen Gruppen und Einzelpersonen

Im November 2017 wechselte die WEBRTC 1.0 -Spezifikation vom Arbeitsentwurf zur Empfehlung von Kandidaten.[19]

Im Januar 2021 wechselte die WEBRTC 1.0 -Spezifikation von der Empfehlung der Kandidaten zu Empfehlung.[4]

Entwurf

Hauptkomponenten von WEBRTC sind mehrere JavaScript Apis:

  • GetUsermedia Erfasst die Audio- und Video -Medien (z. B. durch Zugriff auf die Kamera und das Mikrofon eines Geräts).[20]
  • Rtcpeerconnection Ermöglicht die Audio- und Videokommunikation zwischen Gleichaltrigen. Es führt Signalverarbeitung, Codec Handhabung, Peer-to-Peer-Kommunikation, Sicherheit und Bandbreite Management.[21]
  • Rtcdatachannel Ermöglicht die bidirektionale Kommunikation willkürlicher Daten zwischen Gleichaltrigen. Die Daten werden mit Verwendung transportiert SCTP Über Dtls.[22] Es verwendet die gleiche API wie Websockets und hat sehr niedrig Latenz.[23]

Die WebRTC -API enthält auch eine Statistikfunktion:

  • Getstats Ermöglicht der Webanwendung eine Reihe von Statistiken zu WebRTC -Sitzungen. Diese Statistikdaten werden in einem separaten W3C -Dokument beschrieben.[24]

Die WebRTC -API enthält Keine Bestimmungen für die SignalisierungDas entdeckt Peers, die sich miteinander verbinden und feststellen können, wie Verbindungen zwischen ihnen hergestellt werden können. Anwendungen verwenden Interaktive Konnektivitätsanlage für Verbindungen und sind für die Verwaltung von Sitzungen verantwortlich Gesprächs Protokoll, Extensible Messaging und Präsenzprotokoll, Message Queuing Telemetry Transport, Matrixoder ein anderes Protokoll. Die Signalisierung kann von einem oder mehreren Servern abhängen.[25][26]

RFC 7478 erfordert Implementierungen, um bereitzustellen PCMA/PCmu (RFC 3551), Telefonereignis als DTMF (RFC 4733), und Opus (RFC 6716) Audio -Codecs als Mindestfähigkeiten. Die Browser -APIs von Peerconnection, Data Channel und Media Capture sind in der W3C -Spezifikation beschrieben.

W3C entwickelt ORTC (Objekt-Echtzeitkommunikation) für WEBRTC.[27]

Anwendungen

Mit WebRTC können Browser Dateien direkt zueinander streamen und die Notwendigkeit des serverseitigen Datei-Hostings reduzieren oder vollständig beseitigen. Webtorrent Verwendet einen WEBRTC-Transport, um Peer-to-Peer-Dateifreigabe mithilfe des Bittorrent Protokoll im Browser.[28] Etwas Datenaustausch Websites ermöglichen es Benutzern, Dateien in ihren Browsern direkt an einander zu senden, obwohl der Uploader die Registerkarte offen hält, bis die Datei heruntergeladen wurde.[29][30][31] Ein paar CDNsVerwenden Sie wie das Microsoft-Besitz von Peer5 die Bandbreite des Clients, um Medien auf andere verbundene Kollegen hochzuladen, sodass jeder Peer als Edge-Server fungieren kann.[32][33]

Obwohl WEBRTC ursprünglich für Webbrowser entwickelt wurde, verfügt er Anwendungen für Nicht-Browser-Geräte, einschließlich mobiler Plattformen und IoT -Geräte. Beispiele sind browserbasiert Voip Telefonie, auch Cloud -Telefone oder Web -Telefone genannt, mit denen Anrufe in einem Webbrowser getätigt und empfangen werden können, wodurch die Anforderung zum Herunterladen und Installieren eines Softphones ersetzt werden kann.[34]

Die Unterstützung

WEBRTC wird von den folgenden Browsern unterstützt:

Gstreamer Bietet direkt eine kostenlose WEBRTC -Implementierung.[40]

Codec -Unterstützung über Browser hinweg

Die Unterstützung für einzelne Codecs ist nicht einheitlich. WEBRTC stellt einen Standard -Codecs fest, den alle konformen Browser implementieren müssen. Einige Browser können auch andere Codecs zulassen. [41]

Video -Codec -Kompatibilität
Codec -Name Profil (en) Browser-Kompatibilität
H.264 Eingeschränkte Grundlinie (CB) Chrom (52+), Rand, Firefox[1], Safari
VP8 - Chrom, Rand, Firefox, Safari (12,1+)[42]
VP9 - Chrom (48+), Firefox
Audio -Codec -Kompatibilität
Codec -Name Browser-Kompatibilität
Opus Chrom, Rand, Firefox, Safari
G.711 PCM (A-Law) Chrom, Firefox, Safari
G.711 PCM (µ-Law) Chrom, Firefox, Safari
G.722 Chrom, Firefox, Safari
ILBC Chrome, Safari
ISAC Chrome, Safari

Bedenken

Im Januar 2015, Torrentfreak berichtete über einen schwerwiegenden Sicherheitsfehler in Browsern, der WEBRTC unterstützt, und sagte, dass dies die Sicherheit von gefährdet hat VPN Tunnel, indem Sie das wahre freigeben IP Adresse eines Benutzers.[43] Die IP -Adress -Leseanforderungen sind in der Entwicklerkonsole des Browsers nicht sichtbar und werden von den meisten nicht blockiert Anzeigenblockierung/Privatsphäre/Sicherheit Add-Ons, das Online-Tracking durch Werbetreibende und andere Unternehmen trotz Vorsichtsmaßnahmen ermöglichen,[44] Obwohl die Ublock -Ursprung Add-On kann dieses Problem beheben (da einige Browser dieses Problem jetzt selbst beheben, von Ublock Origin V1.38 wurde diese Option auf diesen Browsern deaktiviert[45]). Ab September 2019 taucht dieser WEBRTC -Fehler immer noch auf Firefox 69.x auf und zeigt standardmäßig die interne IP -Adresse des Benutzers dem Web.[46] In Firefox kann Webrtc über Media.PeerConnection.Enabled Config-Option deaktiviert werden.

Verweise

  1. ^ "WEBRTC 1.0: Echtzeitkommunikation zwischen Browsern". World Wide Web Konsortium. 27. September 2018. Abgerufen 25. März 2019.
  2. ^ "SRC/WEBRTC - Git at Google".
  3. ^ Wie webrtc die Telefonie revolutioniert. Blogs.trilogy-lte.com (2014-02-21). Abgerufen am 2014-04-11.
  4. ^ a b "Web-Echtzeitkommunikation (WebRTC) verändert die Kommunikationslandschaft, da sie zu einer Empfehlung des World Wide Web Consortium (W3C) und der IETF-Standards (Internet Engineering Task Force) wird.". World Wide Web Konsortium. 26. Januar 2021. Abgerufen 27. Januar 2021.{{}}: CS1 Wartung: URL-Status (Link)
  5. ^ "RTCWEB -Status Seiten". Tools.ietf.org. Abgerufen 2021-02-18.
  6. ^ "Webrtc". Webrtc. Archiviert von das Original am 9. Januar 2018. Abgerufen 6. Februar 2018.
  7. ^ "Sind die WEBRTC -Komponenten aus der Erfassung globaler IP -Lösungen durch Google?". Webrtc. Abgerufen 6. Februar 2018.
  8. ^ Wauls, Robin (18. Mai 2010). "Google macht ein Barangebot von 68,2 Millionen US -Dollar für globale IP -Lösungen". Techcrunch. Abgerufen 6. Februar 2018.
  9. ^ Harald Alvestrand (2011-05-31). "Google Release von WebRTC -Quellcode". ö[email protected]. Abgerufen 2012-09-12.
  10. ^ Charta der Echtzeitkommunikation in Webbrowsers (RTCWEB) Arbeitsgruppe
  11. ^ "WEBRTC 1.0: Echtzeitkommunikation zwischen Browsern". W3.org. Abgerufen 2012-09-12.
  12. ^ a b "Jenseits von HTML5: Peer-to-Peer-Konversationsvideo". Ericsson Research Blog. Lab.ericsson.com. 25. Januar 2011. archiviert von das Original am 25. Februar 2017. Abgerufen 21. März 2021.
  13. ^ Stefan Håkansson; Stefan Ålund (26. Mai 2011). "Jenseits von HTML5: Experimentieren Sie mit Echtzeitkommunikation in einem Browser". Ericsson Research Blog. Abgerufen 6. Februar 2018.
  14. ^ "WEBRTC 1.0: Echtzeitkommunikation zwischen Browsern (W3C-Entwurf 27. Oktober 2011)". World Wide Web Konsortium. 27. Oktober 2011. Abgerufen 6. Februar 2018.
  15. ^ Nowak, Szymon. "WEBRTC: So viel mehr als Videokonferenzen". GitHub. Abgerufen 6. Februar 2018.
  16. ^ "Einführung - HTML Standard". Whatwg.org. Abgerufen 2012-09-12.
  17. ^ "RTCWEB -Status Seiten". Tools.ietf.org. Abgerufen 2012-09-12.
  18. ^ "Draft-JESUP-RTCWEB-DATA-PROTOCOL-00-WEBRTC-Datenkanalprotokoll". Tools.ietf.org. Abgerufen 2012-09-12.
  19. ^ "WEBRTC 1.0: Echtzeitkommunikation zwischen Browsern (W3C-Kandidatenempfehlung 02. November 2017)". 2. November 2017.
  20. ^ "Medienerfassung und Streams: GetUSmedia". W3c. 2013-09-03. Abgerufen 2014-01-15.
  21. ^ "WEBRTC: RTCPeerConnection -Schnittstelle". W3c. 2013-09-10. Abgerufen 2014-01-15.
  22. ^ "RFC 8831 - WEBRTC -Datenkanäle". DataTracker.ietf.org. Abgerufen 2022-03-10.
  23. ^ "WEBRTC: rtcdatachannel". W3c. 2013-09-10. Abgerufen 2014-01-15.
  24. ^ "Identifikatoren für die Statistik -API von WebRTC". W3c. 2014-09-29.
  25. ^ Tsahi Levent-Levi (13. April 2020). "WEBRTC Server: Was genau ist es?". Bloggeek.me.
  26. ^ Tsahi Levent-Levi (13. November 2014). "Matrix.org und webrtc: Ein Interview mit Matthew Hodgson". Bloggeek.me.
  27. ^ "W3C ORTC (Objekt Echtzeitkommunikation) Community Group".
  28. ^ "Webtorrent FAQ". webtorrent.io. Abgerufen 2022-03-10.
  29. ^ "So übertragen Sie Dateien zwischen Linux, Android und iOS mit Snapdrop". Muo. 2021-08-04. Abgerufen 2022-03-10.
  30. ^ Pinola, Melanie (2014-04-07). "Der einfachste und schnellste Weg, Dateien zwischen Geräten im selben Netzwerk zu übertragen". Computerwelt. Abgerufen 2022-03-10.
  31. ^ "Filepizza: Teilen Sie Dateien ohne den Mittelsmann in Ihrem Browser - Ghacks Tech News". Ghacks Technology News. 2015-05-12. Abgerufen 2022-03-10.
  32. ^ Foley, Mary Jo. "Microsoft erwirbt Peer5, um das Live -Video -Streaming der Teams zu ergänzen.". ZDNET. Abgerufen 2022-03-10.
  33. ^ "Übersicht - Peer5 P2P -Dokumente". docs.peer5.com. Abgerufen 2022-03-10.
  34. ^ "Catch the Babelfish: Irish Telco entwickelt eine neue Art von Cloud -Telefon". November 2017.
  35. ^ "Die ORTC -API ist jetzt in Microsoft Edge erhältlich". Microsoft. 2015-09-18.
  36. ^ Firefox Notes - Desktop. Mozilla.org (2013-06-25). Abgerufen am 2014-04-11.
  37. ^ "Safari 11.0". Apple Inc. Abgerufen 6. Juni 2017.
  38. ^ Opera News. blogs.opera.com (2013-11-19). Abgerufen am 2015-09-17.
  39. ^ Firefox Notes - Desktop. Mozilla.org (2013-09-17). Abgerufen am 2014-08-04.
  40. ^ "Gstreamer 1.14 Versionsnotizen". gstreamer.freedesktop.org. Abgerufen 2019-12-19. Seit Version 1.14
  41. ^ "Codecs, die von WEBRTC verwendet werden - Web Media Technologies | Mdn". Entwickler.mozilla.org. Abgerufen 2021-07-29.
  42. ^ Fablet, Youenn (2019-03-12). "Auf der Straße zu Webrtc 1.0, einschließlich VP8". Webkit. Abgerufen 2021-07-29.
  43. ^ Riesige Sicherheitsfehler Leaks VPN-Benutzer echte IP-Adressen Torrentfreak.com (2015-01-30). Abgerufen am 2015-02-21.
  44. ^ Stun IP -Adressanfragen für WEBRTC Abgerufen am 2015-02-21.
  45. ^ Raymond Hill (17. September 2021). "Verhindern. Ublock -Ursprungsdokumentation. Abgerufen 18. Dezember 2021.
  46. ^ Raymond Hill (26. März 2016). "Verhindern. Ublock -Ursprungsdokumentation. Abgerufen 1 Sep 2016.

Weitere Lektüre

Externe Links