| 原作者 | ジャスティン・ウベルティ ピーター・サッチャー |
|---|---|
| 初回リリース | 2011年 |
| 安定リリース | 1.0 [1]
/ 2018年5月4日 |
| リポジトリ | ウェブRTC |
| 書かれた | C++、[2] JavaScript |
| 標準 | ウェブRTC |
| ライセンス | BSDライセンス [要出典] |
| Webサイト | ウェブRTC.org |
WebRTC(Web Real-Time Communication)は、アプリケーションプログラミングインターフェース(API)を介してWebブラウザやモバイルアプリケーションにリアルタイム通信(RTC)を提供する無料のオープンソースプロジェクトです。直接ピアツーピア通信を可能にすることで、プラグインをインストールしたりネイティブアプリをダウンロードしたりする必要がなくなり、オーディオとビデオの通信とストリーミングをWebページ内で実行できるようになります。[3]
WebRTC仕様は、 Apple、Google、Microsoft、Mozilla、Operaによってサポートされており、 World Wide Web Consortium(W3C)とInternet Engineering Task Force (IETF)によって公開されています。[4] [5]
歴史
2010年5月、Googleは、コーデックやエコーキャンセル技術など、RTCに必要な多くのコンポーネントを開発したVoIPおよびビデオ会議ソフトウェア会社であるGlobal IP Solutions(GIPS)を買収しました。GoogleはGIPSテクノロジーをオープンソース化し、 IETFおよびW3Cの関連標準化団体と協力して業界のコンセンサスを確保しました。[6] [7] 2011年5月、GoogleはWebRTCとして知られるブラウザベースのリアルタイム通信のオープンソースプロジェクトをリリースしました。 [8]その後、 IETF [9]で関連プロトコルを標準化し、W3CでブラウザAPIを標準化する作業が継続されています。 [10]
2011年1月、Ericsson Labsは改良されたWebKitライブラリを使用してWebRTCの最初の実装を構築しました。[11] [12] 2011年10月、W3Cは仕様の最初のドラフトを公開しました。[13] WebRTCのマイルストーンには、最初のクロスブラウザビデオ通話(2013年2月)、最初のクロスブラウザデータ転送(2014年2月)があり、2014年7月の時点でGoogle Hangoutsは「ある意味」WebRTCを使用していました。[14]
W3CのドラフトAPIはWHATWGで行われた予備作業に基づいています。[15]これはConnectionPeer APIと呼ばれ、標準化前のコンセプト実装はEricsson Labsで作成されました。[11] WebRTCワーキンググループは、この仕様が以下に基づいて大幅に進化することを期待しています。
- IETF [16]のRTCWEBグループで進行中の交換の結果。この文書と合わせて、ウェブブラウザでのリアルタイム通信を定義するプロトコルセットを定義します。特定のシグナリングプロトコルは義務付けられていませんが、想定される通信シナリオのほとんどにSIP [17]が適用可能であることや、 JsSIPなどのオープンソースソフトウェアが利用できることから、SIP over WebSockets ( RFC 7118)がよく使用されます。
- ローカル機能とローカルストリームを公開する際に発生するプライバシーの問題
- グループ内での技術的な議論、特にデータチャネルの実装について[18]
- 初期の実験を通じて得られた経験
- 他のグループや個人からのフィードバック
2017年11月、WebRTC 1.0仕様はワーキングドラフトから勧告候補に移行しました。[19]
2021年1月、WebRTC 1.0仕様は勧告候補から勧告に移行しました。[4]
デザイン
WebRTC の主要コンポーネントには、いくつかのJavaScript APIが含まれます。
getUserMediaオーディオとビデオメディアを取得する(例えば、デバイスのカメラとマイクにアクセスすることによって)。[20]RTCPeerConnectionピア間のオーディオおよびビデオ通信を可能にします。信号処理、コーデック処理、ピアツーピア通信、セキュリティ、帯域幅管理を実行します。[21]RTCDataChannelピア間で任意のデータを双方向に通信できます。データはSCTP over DTLSを使用して転送されます。[22] WebSocketと同じAPIを使用し、非常に低いレイテンシを実現します。[23]
WebRTC API には統計機能も含まれています。
getStatsWebアプリケーションがWebRTCセッションに関する統計情報を取得できるようにします。これらの統計データは別のW3Cドキュメントで説明されています。[24]
WebRTC APIには、接続するピアを発見し、それらの間で接続を確立する方法を決定するシグナリングに関する規定は含まれていません。アプリケーションは、接続にインタラクティブ接続確立を使用し、セッション管理を担当し、セッション開始プロトコル、拡張メッセージングおよびプレゼンスプロトコル(XMPP)、メッセージキューテレメトリトランスポート、マトリックス、またはその他のプロトコルのいずれかに依存している可能性があります。シグナリングは、1つ以上のサーバーに依存する場合があります。[25] [26]
RFC 7478 では、実装において最低限の機能としてPCMA / PCMU ( RFC 3551)、DTMFとしての電話イベント( RFC 4733)、およびOpus ( RFC 6716)オーディオ コーデック を提供することが求められています。PeerConnection、データ チャネル、およびメディア キャプチャ ブラウザー API の詳細は、W3C 仕様に記載されています。
W3CはWebRTC用のORTC(Object Real-Time Communications)を開発している。[27]
アプリケーション
WebRTC を使用すると、ブラウザーはファイルを直接相互にストリーミングできるため、サーバー側のファイルホスティングの必要性が軽減されるか、完全になくなります。WebTorrentは、ブラウザーでBitTorrentプロトコルを使用してピアツーピアのファイル共有を可能にするために WebRTC トランスポートを使用します。 [28]一部のファイル共有Web サイトでは、ユーザーがブラウザーでファイルを直接送信できるようにするためにこれを使用していますが、この場合、アップロード者はファイルがダウンロードされるまでタブを開いたままにする必要があります。[29] [30] [31] Microsoft 所有の Peer5 などのいくつかのCDN は、クライアントの帯域幅を使用して他の接続されたピアにメディアをアップロードし、各ピアがエッジサーバーとして機能できるようにします。[32] [33]
WebRTCは当初ウェブブラウザ向けに開発されたが、モバイルプラットフォームやIoTデバイスなど、ブラウザ以外のデバイス向けのアプリケーションもある。例としては、ブラウザベースのVoIPテレフォニー(クラウドフォンやウェブフォンとも呼ばれる)があり、ウェブブラウザ内から通話の発信や受信が可能で、ソフトフォンをダウンロードしてインストールする必要がなくなる。[34]
サポート
WebRTC は次のブラウザでサポートされています (不完全なリスト、サポートされている最も古いバージョンが指定されています)。
- デスクトップPC
- マイクロソフトエッジ12+ [35]
- Google Chrome 28以上
- Mozilla Firefox 22+ [36]
- Safari 11+ [37]
- オペラ18歳以上[38]
- ヴィヴァルディ1.9+
- 勇敢な
- アンドロイド
- Google Chrome 28+ (29以降はデフォルトで有効)
- Mozilla Firefox 24+ [39]
- Opera モバイル 12+
- Chrome OS について
- Firefox OS
- ブラックベリー10
- iOS
- MobileSafari/WebKit ( iOS 11以降)
- ティゼン3.0
- GStreamerは無料のWebRTC実装を直接提供します。[40]
- オーブンメディアエンジン
ブラウザ間のコーデックサポート
WebRTCは、すべての準拠ブラウザが実装する必要がある標準コーデックセットを確立します。一部のブラウザは他のコーデックもサポートする場合があります。[41]
脆弱性
2017年1月、TorrentFreakはWebRTCをサポートするブラウザに重大なセキュリティ上の欠陥があり、ユーザーの本当のIPアドレスが公開されることでVPNトンネルのセキュリティが侵害されると報告しました。[43] IPアドレスの読み取り要求はブラウザの開発者コンソールには表示されず、ほとんどの広告ブロック、プライバシー、セキュリティアドオンではブロックされないため、予防策を講じてもオンライントラッキングが可能になります。[44]
アドレス漏洩の原因はパッチを当てられるバグではなく、WebRTCの動作方法に根本的な原因があると報告されていますが、問題を軽減する解決策はいくつかあります。WebRTCの漏洩はテストすることができ、ほとんどのブラウザで解決策が提供されています。[45] WebRTCは、必要がない場合はほとんどのブラウザで無効にすることができます。uBlock Originアドオンを使用すると、この問題を修正できます(一部のブラウザではこの問題が自動的に修正されるため、uBlock Origin v1.38以降では、これらのブラウザでこのオプションは無効になっています[46])。
参照
参考文献
- ^ 「WebRTC 1.0: ブラウザ間のリアルタイム通信」。World Wide Web Consortium。2018年9月27日。2019年4月7日時点のオリジナルよりアーカイブ。2019年3月25日閲覧。
- ^ “Src/webrtc - Git at Google”. 2018年4月23日時点のオリジナルよりアーカイブ。 2018年4月22日閲覧。
- ^ WebRTC が電話技術に革命を起こす方法 (2014 年 4 月 7 日、Wayback Machineにアーカイブ)。Blogs.trilogy-lte.com (2014 年 2 月 21 日)。2014 年 4 月 11 日に取得。
- ^ ab 「Web Real-Time Communications (WebRTC) transforms the communications landscape as it become a World Wide Web Consortium (W3C) Recommendation and Internet Engineering Task Force (IETF) standards」. World Wide Web Consortium . 2021年1月26日. 2022年7月27日時点のオリジナルよりアーカイブ。 2021年1月27日閲覧。
- ^ 「Rtcweb Status Pages」。tools.ietf.org 。 2020年4月20日時点のオリジナルよりアーカイブ。2021年2月18日閲覧。
- ^ 「WebRTC コンポーネントは Google による Global IP Solutions の買収によるものか?」WebRTC。2011 年 6 月 7 日時点のオリジナルよりアーカイブ。2018年2 月 6 日閲覧。
- ^ Wauters, Robin (2010年5月18日). 「GoogleがGlobal IP Solutionsに6820万ドルの現金オファー」TechCrunch。2018年2月7日時点のオリジナルよりアーカイブ。 2018年2月6日閲覧。
- ^ Harald Alvestrand (2011-05-31). 「Google による WebRTC ソースコードのリリース」。public-webrtc@w3.org。2013 年 2 月 27 日時点のオリジナルよりアーカイブ。2012年 9 月 12 日閲覧。
- ^ 「WEBブラウザにおけるリアルタイム通信(rtcweb)ワーキンググループの憲章」。2013年11月11日時点のオリジナルよりアーカイブ。 2013年11月11日閲覧。
- ^ 「WebRTC 1.0: ブラウザ間のリアルタイム通信」。W3.org。2012年9月5日時点のオリジナルよりアーカイブ。2012年9月12日閲覧。
- ^ ab 「HTML5を超えて:ピアツーピア会話型ビデオ」。Ericsson Researchブログ。Labs.ericsson.com。2011年1月25日。2017年2月25日時点のオリジナルよりアーカイブ。2021年3月21日閲覧。
- ^ Stefan Håkansson、Stefan Ålund (2011 年 5 月 26 日)。「HTML5 を超えて: ブラウザーでのリアルタイム通信の実験」。Ericsson Research ブログ。2018 年 2 月 7 日時点のオリジナルよりアーカイブ。2018年2 月 6 日閲覧。
- ^ 「WebRTC 1.0: ブラウザー間のリアルタイム通信 (W3C ワーキングドラフト 2011 年 10 月 27 日)」。World Wide Web Consortium。2011年 10 月 27 日。2011 年 10 月 29 日時点のオリジナルよりアーカイブ。2018 年2 月 6 日閲覧。
- ^ Nowak, Szymon. 「WebRTC: ビデオ会議以上のもの」. GitHub . 2018年2月7日時点のオリジナルよりアーカイブ。2018年2月6日閲覧。
- ^ 「Introduction — HTML Standard」。Whatwg.org。2014年8月16日時点のオリジナルよりアーカイブ。2012年9月12日閲覧。
- ^ 「Rtcweb Status Pages」。Tools.ietf.org。2012年9月5日時点のオリジナルよりアーカイブ。2012年9月12日閲覧。
- ^ SIP Trunking、MTPL (2023年7月18日)。「WebRTC SDKを使用したSIP Trunking VoIP」。Moon Technolabs。2023年8月5日時点のオリジナルよりアーカイブ。 2023年7月18日閲覧。
- ^ 「draft-jesup-rtcweb-data-protocol-00 - WebRTC データ チャネル プロトコル」。Tools.ietf.org。2012 年 10 月 31 日時点のオリジナルよりアーカイブ。2012年 9 月 12 日閲覧。
- ^ 「WebRTC 1.0: ブラウザー間のリアルタイム通信 (W3C 2017年11月2日候補勧告)」。2017年11月2日。2017年11月2日時点のオリジナルよりアーカイブ。2019年3月25日閲覧。
- ^ 「メディアキャプチャとストリーム: getUserMedia」。W3C。2013-09-03。2014-01-02にオリジナルからアーカイブ。2014-01-15に取得。
- ^ 「WebRTC: RTCPeerConnection インターフェース」。W3C。2013 年 9 月 10 日。2012 年 9 月 5 日時点のオリジナルよりアーカイブ。2014年 1 月 15 日に取得。
- ^ 「RFC 8831 - WebRTC データチャネル」。datatracker.ietf.org。2022年3月10日時点のオリジナルよりアーカイブ。2022年3月10日閲覧。
- ^ 「WebRTC: RTCDataChannel」。W3C。2013-09-10。2012-09-05にオリジナルからアーカイブ。2014-01-15に取得。
- ^ 「WebRTC の統計 API の識別子」。W3C。2014 年 9 月 29 日。2017 年 7 月 15 日時点のオリジナルよりアーカイブ。2017年 12 月 2 日閲覧。
- ^ Tsahi Levent-Levi (2020年4月13日). 「WebRTCサーバー:それは正確には何ですか?」BlogGeek.me。2020年5月11日時点のオリジナルよりアーカイブ。 2020年6月10日閲覧。
- ^ Tsahi Levent-Levi (2014年11月13日). 「Matrix.orgとWebRTC:Matthew Hodgson氏へのインタビュー」BlogGeek.me。2021年2月25日時点のオリジナルよりアーカイブ。 2020年6月10日閲覧。
- ^ 「W3C ORTC (Object Real-time Communications) コミュニティ グループ」。2014 年 10 月 29 日時点のオリジナルよりアーカイブ。2014 年 10 月 29 日閲覧。
- ^ 「WebTorrent FAQ」。webtorrent.io。2022年3月11日時点のオリジナルよりアーカイブ。2022年3月10日閲覧。
- ^ 「Snapdrop を使用して Linux、Android、iOS 間でファイルを転送する方法」。MUO。2021年8 月 4 日。2022 年 1 月 29 日時点のオリジナルよりアーカイブ。2022年 3 月 10 日閲覧。
- ^ Pinola, Melanie (2014-04-07). 「同じネットワーク上のデバイス間でファイルを転送する最も簡単で迅速な方法」. Computerworld . 2022-06-28時点のオリジナルよりアーカイブ。2022-03-10閲覧。
- ^ 「FilePizza: ブラウザで仲介者なしでファイルを共有 - gHacks Tech News」。gHacks Technology News。2015年5月12日。2022年1月23日時点のオリジナルよりアーカイブ。2022年3月10日閲覧。
- ^ Foley, Mary Jo. 「Microsoft が Peer5 を買収し、Teams のライブ ビデオ ストリーミングを補完」ZDNet。2022年 3 月 10 日時点のオリジナルよりアーカイブ。2022年 3 月 10 日閲覧。
- ^ 「Overview - Peer5 P2P Docs」。docs.peer5.com。2022年3月16日時点のオリジナルよりアーカイブ。2022年3月10日閲覧。
- ^ 「Catch the Babelfish: Irish telco des ins a new kind of cloud phone」2017年11月。2017年11月1日時点のオリジナルよりアーカイブ。2017年11月20日閲覧。
- ^ 「ORTC API が Microsoft Edge で利用できるようになりました」。Microsoft。2015 年 9 月 18 日。2015 年 10 月 9 日時点のオリジナルよりアーカイブ。2015年 9 月 20 日閲覧。
- ^ Firefox Notes - デスクトップ Archived 2014-08-21 at the Wayback Machine . Mozilla.org (2013-06-25). 2014-04-11 取得。
- ^ “Safari 11.0”. Apple Inc. 2017年11月14日時点のオリジナルよりアーカイブ。2017年6月6日閲覧。
- ^ Opera News Archived 2015-09-07 at the Wayback Machine . blogs.opera.com (2013-11-19). 2015-09-17 に取得。
- ^ Firefox Notes - デスクトップ Archived 2021-04-01 at the Wayback Machine . Mozilla.org (2013-09-17). 2014-08-04 取得。
- ^ 「GStreamer 1.14 リリースノート」。gstreamer.freedesktop.org。2018年3月20日時点のオリジナルよりアーカイブ。2019年12月19日閲覧。バージョン1.15以降
- ^ “WebRTC で使用されるコーデック - Web メディアテクノロジー | MDN”. developer.mozilla.org . 2021-07-27 時点のオリジナルよりアーカイブ。 2021-07-29閲覧。
- ^ Fablet, Youenn (2019-03-12). 「VP8を含むWebRTC 1.0への道」WebKit . 2021-07-29時点のオリジナルよりアーカイブ。2021-07-29に取得。
- ^ 巨大なセキュリティ欠陥により、VPN ユーザーの実際の IP アドレスが漏洩 Archived 2021-01-08 at the Wayback Machine TorrentFreak.com (2015-01-30). 2015-02-21 に取得。
- ^ WebRTC の STUN IP アドレス要求 Archived 2015-02-18 at the Wayback Machine取得日 2015-02-21.
- ^ Timmerman, Crystal (2022年2月28日). 「WebRTCは実際のIPアドレスを漏らす(VPNを使用しても)”. IPVanish . 2022年8月13日時点のオリジナルよりアーカイブ。 2022年8月12日閲覧。
- ^ Raymond Hill (2021年9月17日). 「WebRTCによるローカルIPアドレスの漏洩を防ぐ」uBlock Originのドキュメント。2016年2月21日時点のオリジナルよりアーカイブ。 2021年12月18日閲覧。
さらに読む
- Proust, S. 編 (2016年5 月)。相互運用性のための追加の WebRTC オーディオ コーデック。IETF。doi : 10.17487 /RFC7875。RFC 7875。2016年10月 12 日閲覧。
- Valin, JM; Bran, C. (2016 年 5 月). WebRTC オーディオ コーデックと処理要件。IETF . doi : 10.17487/RFC7874 . RFC 7874. 2016 年 10 月 12日閲覧。
- Roach, AB (2016年3 月). WebRTC ビデオ処理およびコーデック要件。IETF。doi : 10.17487 /RFC7742。RFC 7742。2016年10 月12日閲覧。
- Perumal, M.; Wing, D .; Ravindranath, R.; Reddy, T.; Thomson, M. (2015 年 10 月) 。NAT (STUN) 使用による同意の鮮度向上のためのセッション トラバーサル ユーティリティ。IETF。doi : 10.17487/RFC7675。RFC 7675。2016年10 月 12日閲覧。
- Holmberg, C .; Hakansson, S.; Eriksson, G. (2015 年 3 月) 。Webリアルタイム通信のユースケースと要件。IETF。doi : 10.17487 /RFC7478。RFC 7478。2016年10 月 12日閲覧。
外部リンク
- 公式サイト
- W3C ウェブリアルタイムコミュニケーションワーキンググループ
- IETF ウェブブラウザでのリアルタイム通信 (rtcweb) ワーキンググループ
- WebRTC ベースのビデオチャット デモ アプリ
- libdatachannel、オープンソースの WebRTC ネットワーク ライブラリ
