Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

WebRTC

From Wikipedia, the free encyclopedia
API that supports browser-to-browser communication
WebRTC
Original authorsJustin Uberti
Peter Thatcher
Initial release2011; 14 years ago (2011)
Stable release
1.0[1] / May 4, 2018; 7 years ago (2018-05-04)
Repositorywebrtc.googlesource.com
Written inC++,[2]JavaScript
Standardw3.org/TR/webrtc/
LicenseBSD license[3]
Websitewebrtc.org

WebRTC (Web Real-Time Communication) is afree and open-source project providingweb browsers andmobile applications withreal-time communication (RTC) viaapplication programming interfaces (APIs). It allows audio and video communication and streaming to work inside web pages by allowing directpeer-to-peer communication, eliminating the need to installplugins or download native apps.[4]

Supported byApple,Google,Microsoft,Mozilla, andOpera, WebRTC specifications have been published by theWorld Wide Web Consortium (W3C) and theInternet Engineering Task Force (IETF).[5][6]

ICE,STUN andTURN are theNAT traversal techniques used to connect to remote peers.[7]

History

[edit]

In May 2010, Google boughtGlobal IP Solutions or GIPS, aVoIP andvideoconferencing software company that had developed many components required for RTC, such as codecs and echo cancellation techniques. Google open-sourced the GIPS technology and engaged with relevant standards bodies at theIETF andW3C to ensure industry consensus.[8][9] In May 2011,Google released anopen-source project for browser-based real-time communication known as WebRTC.[10] This has been followed by ongoing work to standardize the relevantprotocols in theIETF[11] and browser APIs in the W3C.[12]

In January 2011,Ericsson Labs built the first implementation of WebRTC using a modifiedWebKit library.[13][14] In October 2011, theW3C published its first draft for the spec.[15] WebRTC milestones include the first cross-browser video call (February 2013), first cross-browser data transfers (February 2014), and as of July 2014Google Hangouts was "kind of" using WebRTC.[16]

The W3C draft API was based on preliminary work done in theWHATWG.[17] It was referred to as the ConnectionPeer API, and a pre-standards concept implementation was created atEricsson Labs.[13] The WebRTC Working Group expects this specification to evolve significantly based on:

  • Outcomes of ongoing exchanges in the companion RTCWEB group atIETF[18] to define the set ofprotocols that, together with this document, definereal-time communications in web browsers. While no one signaling protocol is mandated,SIP overWebSockets (RFC 7118) is often used partially due to the applicability of SIP[19] to most of the envisaged communication scenarios as well as the availability of open-source software such asJsSIP.
  • Privacy issues that arise when exposing local capabilities and local streams
  • Technical discussions within the group, on implementing data channels in particular[20]
  • Experience gained through early experimentation
  • Feedback from other groups and individuals

In November 2017, the WebRTC 1.0 specification transitioned from Working Draft to Candidate Recommendation.[21]

In January 2021, the WebRTC 1.0 specification transitioned from Candidate Recommendation toRecommendation.[5]

Design

[edit]

Major components of WebRTC include severalJavaScriptAPIs:

  • getUserMedia acquires the audio and video media (e.g., by accessing a device's camera and microphone).[22]
  • RTCPeerConnection enables audio and video communication between peers. It performssignal processing,codec handling, peer-to-peer communication, security, andbandwidth management.[23]
  • RTCDataChannel allows bidirectional communication of arbitrary data between peers. The data is transported usingSCTP overDTLS.[24] It uses the same API asWebSockets and has very lowlatency.[25]

The WebRTC API also includes a statistics function:

  • getStats allows the web application to retrieve a set of statistics about WebRTC sessions. These statistics data are being described in a separate W3C document.[26]

The WebRTC API includesno provisions for signaling, that is discovering peers to connect to and determine how to establish connections among them. Applications useInteractive Connectivity Establishment for connections and are responsible for managing sessions, possibly relying on any ofSession Initiation Protocol, Extensible Messaging and Presence Protocol (XMPP),Message Queuing Telemetry Transport,Matrix, or another protocol. Signaling may depend on one or more servers.[27][28]

RFC 7478 requires implementations to providePCMA/PCMU (RFC 3551), Telephone Event asDTMF (RFC 4733), andOpus (RFC 6716)audio codecs as minimum capabilities. The PeerConnection, data channel and media capture browser APIs are detailed in the W3C specification.

W3C is developing ORTC (Object Real-Time Communications) for WebRTC.[29]

Applications

[edit]

WebRTC allows browsers to stream files directly to one another, reducing or entirely removing the need for server-side file hosting.WebTorrent uses a WebRTC transport to enable peer-to-peer file sharing using theBitTorrent protocol in the browser.[30] Somefile-sharing websites use it to allow users to send files directly to one another in their browsers, although this requires the uploader to keep the tab open until the file has been downloaded.[31][32][33] A fewCDNs, such as the Microsoft-owned Peer5, use the client's bandwidth to upload media to other connected peers, enabling each peer to act as an edge server.[34][35]

Although initially developed for web browsers, WebRTC has applications for non-browser devices, including mobile platforms andIoT devices. Examples include browser-basedVoIP telephony, also called cloud phones or web phones, which allow calls to be made and received from within a web browser, replacing the requirement to download and install a softphone.[36]

Support

[edit]

WebRTC is supported by the following browsers (incomplete list; oldest supported version specified):

Codec support across browsers

[edit]

WebRTC establishes a standard set of codecs which all compliant browsers are required to implement (underlined). Some browsers may also support other codecs.[42]

Video codec compatibility
Codec nameProfileBrowser compatibility
H.264Constrained Baseline (CB)Chrome, Edge, Firefox, Safari (12.1+)
VP8-Chrome (52+), Edge, Firefox, Safari[43]
VP9-Chrome (48+), Firefox
AV1-Chrome (113+), Firefox (136+)
Audio codec compatibility
Codec nameBrowser compatibility
OpusChrome, Firefox, Safari
G.711 PCM(A-law)Chrome, Firefox, Safari
G.711 PCM(μ-law)Chrome, Firefox, Safari
G.722Chrome, Firefox, Safari
iLBCChrome, Safari
iSACChrome, Safari

Vulnerability

[edit]

In January 2015,TorrentFreak reported a serious security flaw in browsers supporting WebRTC, that compromised the security ofVPN tunnels by exposing a user's trueIP address.[44] The IP address read requests are not visible in the browser's developer console, and they are not blocked by mostad blocking,privacy andsecurity add-ons, enabling online tracking despite precautions.[45]

It has been reported that the cause of the address leak is not a bug that can be patched, but is foundational to the way WebRTC operates; however, there are several solutions to mitigate the problem. WebRTC leakage can be tested for, and solutions are offered for most browsers.[46] WebRTC can be disabled, if not required, in most browsers. TheuBlock Origin add-on can fix this problem (as some browsers now fix this problem by themselves, from uBlock Origin v1.38 onwards this option has been disabled on these browsers[47]).

See also

[edit]

References

[edit]
  1. ^"WebRTC 1.0: Real-time Communication Between Browsers".World Wide Web Consortium. 27 September 2018.Archived from the original on 7 April 2019. Retrieved25 March 2019.
  2. ^"Src/webrtc - Git at Google".Archived from the original on 2018-04-23. Retrieved2018-04-22.
  3. ^"WebRTC License".
  4. ^How WebRTC Is Revolutionizing TelephonyArchived 2014-04-07 at theWayback Machine. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
  5. ^ab"Web Real-Time Communications (WebRTC) transforms the communications landscape as it becomes a World Wide Web Consortium (W3C) Recommendation and Internet Engineering Task Force (IETF) standards".World Wide Web Consortium. 26 Jan 2021.Archived from the original on 27 July 2022. Retrieved27 Jan 2021.
  6. ^"Rtcweb Status Pages".tools.ietf.org.Archived from the original on 2020-04-20. Retrieved2021-02-18.
  7. ^"Introduction".W3C WebRTC.
  8. ^"Are the WebRTC components from Google's acquisition of Global IP Solutions?".WebRTC. Archived fromthe original on 7 June 2011. Retrieved6 February 2018.
  9. ^Wauters, Robin (18 May 2010)."Google makes $68.2 million cash offer for Global IP Solutions".TechCrunch.Archived from the original on 7 February 2018. Retrieved6 February 2018.
  10. ^Harald Alvestrand (2011-05-31)."Google release of WebRTC source code". public-webrtc@w3.org.Archived from the original on 2013-02-27. Retrieved2012-09-12.
  11. ^"Charter of the Real-Time Communication in WEB-browsers (rtcweb) working group".Archived from the original on 2013-11-11. Retrieved2013-11-11.
  12. ^"WebRTC 1.0: Real-time Communication Between Browsers". W3.org.Archived from the original on 2012-09-05. Retrieved2012-09-12.
  13. ^ab"Beyond HTML5: Peer-to-Peer Conversational Video".Ericsson Research blog. Labs.ericsson.com. 25 January 2011. Archived fromthe original on 25 February 2017. Retrieved21 March 2021.
  14. ^Stefan Håkansson; Stefan Ålund (26 May 2011)."Beyond HTML5: Experiment with Real-Time Communication in a Browser".Ericsson Research blog.Archived from the original on 7 February 2018. Retrieved6 February 2018.
  15. ^"WebRTC 1.0: Real-time Communication Between Browsers (W3C Working Draft 27 October 2011)".World Wide Web Consortium. 27 October 2011.Archived from the original on 29 October 2011. Retrieved6 February 2018.
  16. ^Nowak, Szymon."WebRTC: So Much More Than Videoconferencing".GitHub.Archived from the original on 7 February 2018. Retrieved6 February 2018.
  17. ^"Introduction — HTML Standard". Whatwg.org.Archived from the original on 2014-08-16. Retrieved2012-09-12.
  18. ^"Rtcweb Status Pages". Tools.ietf.org.Archived from the original on 2012-09-05. Retrieved2012-09-12.
  19. ^SIP Trunking, MTPL (18 July 2023)."SIP Trunking VoIP with WebRTC SDK".Moon Technolabs.Archived from the original on 5 August 2023. Retrieved18 July 2023.
  20. ^Jesup, Randell; Loreto, Salvatore; Tüxen, Michael (5 March 2012)."draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol". Tools.ietf.org.Archived from the original on 2012-10-31. Retrieved2012-09-12.
  21. ^"WebRTC 1.0: Real-time Communication Between Browsers (W3C Candidate Recommendation 02 November 2017)". 2 November 2017.Archived from the original on 2 November 2017. Retrieved25 March 2019.
  22. ^"Media Capture and Streams: getUserMedia". W3C. 2013-09-03.Archived from the original on 2014-01-02. Retrieved2014-01-15.
  23. ^"WebRTC: RTCPeerConnection Interface". W3C. 2013-09-10.Archived from the original on 2012-09-05. Retrieved2014-01-15.
  24. ^Jesup, Randell; Loreto, Salvatore; Tüxen, Michael (January 2021)."RFC 8831 - WebRTC Data Channels".datatracker.ietf.org.Archived from the original on 2022-03-10. Retrieved2022-03-10.
  25. ^"WebRTC: RTCDataChannel". W3C. 2013-09-10.Archived from the original on 2012-09-05. Retrieved2014-01-15.
  26. ^"Identifiers for WebRTC's Statistics API". W3C. 2014-09-29.Archived from the original on 2017-07-15. Retrieved2017-12-02.
  27. ^Tsahi Levent-Levi (13 April 2020)."WebRTC Server: What is it exactly?".BlogGeek.me.Archived from the original on 11 May 2020. Retrieved10 June 2020.
  28. ^Tsahi Levent-Levi (13 November 2014)."Matrix.org and WebRTC: An Interview with Matthew Hodgson".BlogGeek.me.Archived from the original on 25 February 2021. Retrieved10 June 2020.
  29. ^"W3C ORTC (Object Real-time Communications) Community Group". 19 August 2014.Archived from the original on 2014-10-29. Retrieved2014-10-29.
  30. ^"WebTorrent FAQ".webtorrent.io.Archived from the original on 2022-03-11. Retrieved2022-03-10.
  31. ^"How to Transfer Files Between Linux, Android, and iOS Using Snapdrop".MUO. 2021-08-04.Archived from the original on 2022-01-29. Retrieved2022-03-10.
  32. ^Pinola, Melanie (2014-04-07)."The easiest and quickest way to transfer files between devices on the same network".Computerworld.Archived from the original on 2022-06-28. Retrieved2022-03-10.
  33. ^"FilePizza: share files without the middleman in your browser - gHacks Tech News".gHacks Technology News. 2015-05-12.Archived from the original on 2022-01-23. Retrieved2022-03-10.
  34. ^Foley, Mary Jo."Microsoft acquires Peer5 to supplement Teams' live video streaming".ZDNet.Archived from the original on 2022-03-10. Retrieved2022-03-10.
  35. ^"Overview - Peer5 P2P Docs".docs.peer5.com.Archived from the original on 2022-03-16. Retrieved2022-03-10.
  36. ^"Catch the Babelfish: Irish telco devises a new kind of cloud phone". November 2017.Archived from the original on 2017-11-01. Retrieved2017-11-20.
  37. ^"ORTC API is now available in Microsoft Edge". Microsoft. 2015-09-18.Archived from the original on 2015-10-09. Retrieved2015-09-20.
  38. ^Firefox Notes - DesktopArchived 2014-08-21 at theWayback Machine. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  39. ^"Safari 11.0". Apple Inc.Archived from the original on 14 November 2017. Retrieved6 June 2017.
  40. ^Opera NewsArchived 2015-09-07 at theWayback Machine. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
  41. ^Firefox Notes - DesktopArchived 2021-04-01 at theWayback Machine. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  42. ^"Codecs used by WebRTC - Web media technologies | MDN".developer.mozilla.org.Archived from the original on 2021-07-27. Retrieved2021-07-29.
  43. ^Fablet, Youenn (2019-03-12)."On the Road to WebRTC 1.0, Including VP8".WebKit.Archived from the original on 2021-07-29. Retrieved2021-07-29.
  44. ^Huge Security Flaw Leaks VPN Users’ Real IP-addressesArchived 2021-01-08 at theWayback Machine TorrentFreak.com (2015-01-30). Retrieved on 2015-02-21.
  45. ^STUN IP Address requests for WebRTCArchived 2015-02-18 at theWayback Machine Retrieved on 2015-02-21.
  46. ^Timmerman, Crystal (28 February 2022)."WebRTC leaks real IP addresses (even with VPN)".IPVanish.Archived from the original on 13 August 2022. Retrieved12 August 2022.
  47. ^Raymond Hill (17 Sep 2021)."Prevent WebRTC from leaking local IP address".uBlock Origin documentation.Archived from the original on 21 February 2016. Retrieved18 Dec 2021.
  48. ^"Introduction to the Real-time Transport Protocol (RTP) - Web APIs | MDN".developer.mozilla.org. 26 July 2024.

Further reading

[edit]

External links

[edit]
Features, standards & protocols
Features
Web standards
Protocols
Active
Blink-based
Proprietary
FOSS
Gecko-based
WebKit-based
Multi-engine
Other
Discontinued
Blink-based
Gecko-based
MSHTML-based
WebKit-based
Other
Protocols
Server APIs
Apache modules
Topics
Browser APIs
Web APIs
WHATWG
W3C
Khronos
Others
Topics
Related topics
Retrieved from "https://en.wikipedia.org/w/index.php?title=WebRTC&oldid=1312768163"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp