WebRTC

維基百科,自由的百科全書
跳至導覽 跳至搜尋
WebRTC
File:WebRTC Logo.svg
原作者Justin Uberti
Peter Thatcher
首次發布2011年,​15年前​(2011
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言C++[1], Javascript
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      許可協定BSD license

      WebRTC,名稱源自網頁即時通訊(英語:Web Real-Time Communication)的縮寫,是一個支援網頁瀏覽器進行即時語音對話或影片對話的API。它於2011年6月1日開源並在GoogleMozillaOpera支援下被納入全球資訊網協會W3C推薦標準[2][3][4]

      瀏覽器支援[編輯]

      當前支援情況[編輯]

      WebRTC在以下瀏覽器版本中開始支援。

      支援歷史細節[編輯]

      • Google Chrome:2012年1月,將WebRTC整合進Dev Channel,同年6月又完成Stable Channel的20版的整合(2012年7月,PeerConnection與MediaStream仍必須透過chrome://flags來開啟)[10]
      • Mozilla Firefox:2012年初Mozilla整合WebRTC入Firefox Alpha,此一版本的Audio Mixing已完成於Media Stream[11]
        • 2012年4月,Mozilla展示Firefox中WebRTC的視訊對話[12]
        • 2013年6月,發佈22.0版本正式整合及支援WebRTC[13]
        • 2013年9月,發佈24.0版本,並宣佈Firefox for Android(行動版)正式整合及支援WebRTC[14]
      • Opera:2012年1月,Opera初步整合WebRTC。
      • Internet Explorer:Microsoft開始開放API[15]
      • Ericsson:2012年11月,Ericsson Labs做出了全世界第一個可以支援WebRTC的手機瀏覽器[16]
      • SeaMonkey:2013年1月發佈的15.0版本初步整合WebRTC。

      歷史[編輯]

      2010年5月,Google以6820萬美元收購VoIP軟體開發商Global IP Solutions的GIPS引擎[2][17][18],並改為名為「WebRTC」。WebRTC使用GIPS引擎,實現了基於網頁的視訊會議,並支援722,PCM,ILBC,ISAC等編碼,同時使用谷歌自家的VP8影片解碼器;同時支援RTP/SRTP傳輸等。

      2012年1月,谷歌已經把這款軟體整合到Chrome瀏覽器中。同時FreeSWITCH專案宣稱支援iSAC audio codec[19]

      組成[編輯]

      • 影像引擎(VideoEngine)
      • 音效引擎(VoiceEngine)
      • 會議管理(Session Management)
      • iSAC:音效壓縮
      • VP8:Google自家的WebM專案的影片編解碼器
      • APIs(Native C++ API, Web API)

      重要API[編輯]

      WebRTC原生APIs檔案是基於WebRTC規格書[20]撰寫而成,這些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三類。

      Network Stream API[編輯]

      • MediaStream:MediaStream用來表示一個媒體資料流。
      • MediaStreamTrack在瀏覽器中表示一個媒體源。

      RTCPeerConnection[編輯]

      • RTCPeerConnection:一個RTCPeerConnection對象允許使用者在兩個瀏覽器之間直接通訊。
      • RTCIceCandidate:表示一個ICE協定的候選者。
      • RTCIceServer:表示一個ICE Server。

      Peer-to-peer Data API[編輯]

      • DataChannel:資料通道(DataChannel)介面表示一個在兩個節點之間的雙向的資料通道。

      安全性[編輯]

      漏洞

      2015年,TorrentFreak報告了一個WebRTC的安全漏洞,該漏洞會致使安裝有WebRTC的使用者洩露真實IP,即使使用者已經使用虛擬私人網路。[21]

      解決方案
      Mozilla Firefox:在網址列輸入「about:config」,搜尋「media.peerconnection.enabled」並雙擊將值改為「false」,WebRTC將被關閉。[22]

      Google Chrome:在谷歌應用商店安裝谷歌官方擴充「WebRTC Network Limiter」。[23]

      其它方案

      uBlock Origin:安裝uBlock Origin並在設定中啟用「避免WebRTC 洩露本地IP位址」可以避免本地IP洩露。但需注意的是,該方案不適用於Firefox 41(或更低)、uBlock Origin 1.3.3(或更低)版本使用者,且該設定選項在本程式的1.38版本中被移除[24]

      隱私獾:安裝隱私獾並在設定中啟用「避免 WebRTC 洩露本地 IP 位址 」可以獲得額外防護,但該選項在其2022年9月27日更新的新版本中移除。[25]

      相關條目[編輯]

      參考資料[編輯]

      1. ^ src/webrtc - Git at Google. [2018-09-09]. (原始內容存檔於2018-04-23). 
      2. ^ 2.0 2.1 Google open source WebRTC for open video/audio chat. 2011-06-01 [2012-03-16]. (原始內容存檔於2011-06-25). 
      3. ^ WebRTC. [2012-03-16]. (原始內容存檔於2011-06-04). 
      4. ^ Introducing WebRTC - an open real-time communications project. 2011-05-03 [2012-03-16]. (原始內容存檔於2011-06-28). 
      5. ^ Firefox Notes - Desktop頁面存檔備份,存於網際網路檔案館). Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
      6. ^ Dev.Opera. My.opera.com. Retrieved on 2014-04-11.
      7. ^ Apple Releases Safari Technology Preview 11 With Bug Fixes and Feature Tweaks. [2017-06-10]. (原始內容存檔於2021-08-20) (English). 
      8. ^ Firefox Notes - Desktop頁面存檔備份,存於網際網路檔案館). Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
      9. ^ Browser - WebRTC on iOS. [2015-01-01]. (原始內容存檔於2020-08-08). 
      10. ^ Real-time Communications in Chrome. 2012-01-18 [2012-08-19]. (原始內容存檔於2022-04-12). 
      11. ^ Paul, Ryan. Mozilla Demos MediaStream Processing, Audio Mixing in Firefox. 2012-01-10 [2012-08-19]. (原始內容存檔於2012-08-17). 
      12. ^ Mozilla shows WebRTC browser-based video calling. 2012-04-10 [2012-08-19]. (原始內容存檔於2021-07-14). 
      13. ^ Mozilla Firefox 22.0 Release Notes. Mozilla.org. 2013-06-25 [2013-06-26]. (原始內容存檔於2013-10-28). 
      14. ^ 行動版 Firefox 24 已支援 WebRTC. Mozilla Taiwan. 2013-09-24 [2013-10-02]. (原始內容存檔於2013-10-05). 
      15. ^ HTML5Labs - Info. [2012-08-19]. (原始內容存檔於2016-03-07). 
      16. ^ The World’s First WebRTC-Enabled Mobile Browser. 2012-10-19 [2012-11-29]. (原始內容存檔於2012-12-18). 
      17. ^ License & Rights. [2012-03-16]. (原始內容存檔於2011-06-04). 
      18. ^ FAQ - WebRTC. [2012-03-16]. (原始內容存檔於2011-06-04). 
      19. ^ WebRTC Gets a Shot in the Arm with mod_iSAC!. 2012-01-24 [2012-03-16]. (原始內容存檔於2012-02-04). 
      20. ^ WebRTC 1.0: Real-time Communication Between Browsers 协议文档中文版 汇总. [2012-10-17]. (原始內容存檔於2012-10-19). 
      21. ^ Ernesto. Huge Security Flaw Leaks VPN Users’ Real IP-Addresses. torrentfreak. 2015年1月30日 [2018年3月1日]. (原始內容存檔於2015年2月22日). 
      22. ^ Sphinx FreeBuf. WebRTC漏洞可泄露VPN用户真实IP. 位元網. 2015-02-06 [2018-03-01]. (原始內容存檔於2018-08-16). 
      23. ^ WebRTC Network Limiter - Chrome Web Store. Chrome網上應用店. 
      24. ^ Prevent WebRTC from leaking local IP address. github. [2018-03-01]. (原始內容存檔於2016-02-21). 
      25. ^ EFForg. Changelog. Github. 2022-09-27 [2023-07-21]. (原始內容存檔於2023-07-21) (English). 

      外部連結[編輯]