WebRTCとは?仕組み・サーバー・活用シーンを解説

サーバーについて学習する上で、「WebRTC」について詳しく知りたいけれど、

WebRTCの仕組みが分からない
WebRTCの具体的な活用方法が知りたい

こんな悩みはありませんか?そこでこの記事では、

WebRTCの概要と仕組み
WebRTCの具体的な活用シーン

について解説します。

WebRTCとは:リアルタイム通信技術

WebRTCとは、「Web Real-Time Communication」の略称です。Webブラウザ同士でリアルタイムに音声や映像をやり取りする通信技術WebRTCと呼ばれます。

WebRTCは、専用のソフトウェアやシステム使わず手軽に通信する方法を確立するプロジェクトによって開発されました。現在では、オンライン会議やライブストリーミングなどにWebRTCの技術が用いられています。

WebRTCの対応ブラウザ

WebRTCは、Google ChromeMicrosoft Edgeをはじめ、Mozilla FirefoxSafariOperaなど多数のブラウザに対応しています。ブラウザがインストールできる端末であれば、PCだけでなくスマホやタブレット端末でもWebRTCによる通信が可能です。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

WebRTCの仕組み:P2P方式を用いる

WebRTCは、P2PPeer to Peer:ピアツーピア)方式と呼ばれる通信技術を用いています。P2P方式の仕組みは次の通りです。

P2P方式:端末同士が直接通信

端末同士が直接通信を行うことが、P2P方式の特徴です。WebRTCは、PCやスマホなどの端末同士が直接データをやり取りする仕組みとなっています。

P2Pではない通信方式では、データを提供するサーバーを介して情報共有が行われます。P2Pの場合、データを提供するサーバーが存在しません。特定のサーバーに負荷が集中しないことが、P2P方式のメリットです。

P2P方式の詳細について知りたい方は、「P2P(ピアツーピア)とは?仕組みから活用例まで詳しく解説」を参考にしてください。

P2P方式で使用するサーバー

P2P方式ではデータを提供するサーバーを使わないものの、通信相手とのやり取りに必要な情報を取得するためのサーバーは必要です。P2P方式で使用するサーバーには次のようなものがあります。

  • シグナリングサーバー
  • STUNサーバー
  • TURNサーバー

シグナリングサーバー:相手の情報を得る

シグナリングサーバーは、通信相手を特定するための情報を得るサーバーです。

端末同士で情報通信を行う際に必要な、相手のユーザー名やアドレスなどの情報を取得する役割を担います。シグナリングサーバーは、WebRTCによる通信の仲介役として重要です。

STUNサーバー:NAT越えの判断

STUNサーバーとは、外部のネットワークから見た自身の端末のIPアドレスを取得できるサーバーです。

通常、ネットワークを介した通信では、端末のプライベートIPアドレスがNATNetwork Address Translation)と呼ばれる仕組みによってグローバルIPアドレスに変換されています。しかし、グローバルIPアドレスを知るだけでは、端末同士で情報のやり取りをすることができません。

アドレスがNATによって変換されている場合、P2P方式で通信をするために「NAT越え」と呼ばれる操作が必要です。STUNサーバーから取得した自身の端末のIPアドレスをチェックすることで、NATによる変換が行われているかどうかを判断できます。

TURNサーバー:Firewall越えの判断

企業のネットワークなどでは、不正アクセスなどのトラブルを避ける対策としてFirewall(ファイアウォール)が設置されていることが一般的です。Firewallが機能している状態では、P2P方式の通信がブロックされてしまいます。

通信を中継できる機能を持つTURNサーバーがあれば、Firewallが機能している場合でもP2P方式の通信が可能です。

WebRTCで多拠点接続をする場合のサーバー

P2P方式では端末同士が直接通信するため、接続先の端末数が多くなるとリアルタイムでの処理が難しくなる場合があります。

そこで、WebRTCで複数の拠点を接続する際はP2P方式ではなく、クライアント・サーバー方式と呼ばれる通信方式が使用されます。クライアント・サーバー方式で使用されるサーバーは以下のものがあります。

  • SFUサーバー
  • MCUサーバー

SFUサーバー:サーバーを経由して通信

SFU(Selective Forwarding Unit)方式では、全ての通信がSFUサーバーを経由してやりとりされます。

SFUサーバーは端末から送信されてきたデータに加工などを加えず、そのまま別の拠点の端末へと伝えることが特徴です。

MCUサーバー:データを合成・変換して通信

MCU(Multipoint Control Unit)方式は、SFU方式と同様に、MCUサーバーというサーバーを経由して全ての通信が行われる方式です。

ただし、SFUサーバーとは異なり、MCUサーバーはデータの合成や変換を行ってから他の端末へと送信します。

MCU方式ではデータの合成や変換などの処理時に大きな負荷がかかるため、高性能なサーバーが必要です。

WebRTCの活用シーン

WebRTCの代表的な活用シーンとして、ZoomWebexなどのツールを使ったオンライン会議が挙げられます。Webブラウザ上で音声や映像によるやり取りが可能です。また、スポーツ中継など、リアルタイム性が求められる配信にもWebRTCが活用されています。多数のユーザーが同時に視聴するオンライン配信では、WebRTCの技術が欠かせません。

WebRTCを活用してリアルタイム通信を向上させよう!

WebRTCは、Webブラウザ上でリアルタイムに通信を行うために開発された技術で、オンライン会議やライブストリーミングなど、様々な場面で活用されています。

今後のビジネスシーンにおいても、インターネットを活用したコミュニケーションは加速し、動画や音声サービスもさらに発展していくことが予想されます。その際、WebRTCへの期待も高まって いくことは間違いありません。

オンライン会議やライブ配信アプリケーションを開発する方やこれからWebRTCを学びたい方には、下記の講座がおすすめです。

Udemyおすすめ講座

ReactとFirebase とWebRTCで P2P ビデオ会議システムを開発しよう!

ReactとFirebase とWebRTCで P2P ビデオ会議システムを開発しよう!

4.2(91 件の評価)

1,512 人の受験生

作成者: はむさんのオンラインスクール 石田 敦志(シニアソフトウェアエンジニア、プログラミング講師)

React/WebRTC/Firebase/P2Pを駆使して、ビデオ会議システムの開発プロセスを徹底解説。手が痙攣するくらい、コードを書きまくってもらいます!終了後はウェブの違った世界が見えることでしょう!

\無料でプレビューをチェック!/

講座を見てみる

評価:★★★★★
内容:丁寧にP2P通信を説明してくださっているので,非常に勉強になりました。内容は難しいですが,無事に最後まで受講できました。

評価:★★★★★
内容:WebRTCを学びたいと思っていたのでドンピシャの講座でした。

P2P方式やクライアント・サーバー方式などの通信方式の仕組みを知り、WebRTCへの理解を深めましょう!