WebRTCのSFUとは?
特徴やP2Pとの違い について解説!
インターネット文化の進化に伴い、数多くの通信機器も多様化され世間に普及されていきました。
新型コロナウイルスが蔓延する現代、リモートでの作業や会議、通話などを行うのが当たり前となった方々が多いのではないでしょうか。今回はそんなデータ通信における「WebRTC」の技術について迫っていきます。
WebRTCについて詳しく知りたい方は、こちらの記事もご覧ください。
SFUサーバーとは?
SFU(Selective Forwarding Unit)サーバーとは、P2P経由ではなくサーバー経由で音声や映像を再生、通信するWebRTC技術の1つです。
通信機器の性能やインターネット文化の進化に伴い、ユーザー数もかなり増えてきた現在では、ますますデータ通信による負担に耐えうるサーバーが必要となりました。
SFUサーバーの仕組みを活用することで、メディアの容量の大きさや配信時の視聴者の数による負担を大幅に減らすことが可能。そのため、より快適なリアルタイムコミュニケーション(音声、ビデオ通話、ファイルや画面共通、キャッシュ管理など)を取ることができます。
2011年から発足したWebRTCプロジェクトには、Googleだけでなく、Apple、Mozilla、Opera、Microsoftなどといった大手ソフトウェア開発企業が多数携わっています。
そのため、現在対応しているブラウザとしては、下記のとおりです。
- Google Chrome
- Microsoft Edge
- Firebox
- Opera
- Safari
これら、私達が日常的に活用しているツールのほとんどに導入されています。
SFUとP2Pの違いとは?
SFUとP2P、この2つの大きな違いとしては、データ通信を行っているのがサーバー経由か直接端末同士なのかです。
WebRTCにおいて技術を実行する際には、サーバーを介する方法も、そうでない方法も両方存在するのですが、ここでいう前者が「SFU」、そして後者が「P2P」です。この「サーバー経由をするか否か」という点には凄く大きな差があり、スペック的には明らかにSFUの方が上といえるでしょう。
まずは、P2Pについての概要について理解しましょう。
P2Pとは?
P2Pとは「Peer-to-peer」の略称で、通信を行うノードおよび通信相手がデータを所有している際、他のノードに対しても対等にデータ共有やアクセス権を求めるなどの自立分散型ネットワークモデルを指します。
わかりやすく説明すると、WebRTCにおいてサーバーを介することなく、端末同士が直接通信できるようになる仕組みのこと。このP2Pには、下記の3つのスペックで分類されます。
- ハイブリッドP2P
- ピュアP2P
- スーパーノード型P2P
P2Pについては、こちらの記事でも紹介していますので、ぜひご覧ください。
P2Pには利点が一切ないのか?
以前と比べて、現代ではインターネットに限らず「何らかの手段を使って通信する」といった機会や利用している機器は大幅に増えてきました。
利用者も増えるということは当然、それを支えるものも強固なものでなくてはなりません。また、大量の同時接続には、どんなに機能性に優れた端末でも耐えることができません。
そこで、WebRTCの上位互換でもあるSFUサーバーを経由することによって、それらを簡単に処理し、ユーザーを待たせることのないデータ通信を実現することができるのです。
SFUはP2Pの上位互換と書きましたが、それはあくまでも大まかなスペックで見ればの話です。では、実際にP2Pが活躍するのはどのような場面でしょうか。そのヒントはWebRTCが可能とする「双方向通信」という技術にあります。
双方向通信とは?
双方向通信とは、簡単にいえば「どちらも送信・受信ができる関係性」という意味です。以前は、送る側と受け取る側が決まっており、比率も受信側が圧倒的に多いといった状況でした。
放送局から決められた映像・音声を受け取り、それだけを流していたラジオやテレビがよい例です。ちなみに、この仕組みのことを片方向通信と呼びます。
現在ではWebRTCの発展のおかげで、この送受信どちらも機能として備えてあるのが当たり前の環境となりました。多人数によるビデオ通話や遠隔操作などが世間に浸透するのも、非常に速かった印象です。
P2Pが活躍するのはどんな場面?
前述したように、P2PはWebRTCサーバーを経由することがないため、端末同士の通信に限り非常に速い処理速度で実行ができます。SFUが大多数を想定しているのに対して、数が少ないほど処理能力が優れる仕組みがP2Pなのです。
条件が限られるものの、SFUよりも気軽に、よりリアルタイム感覚で楽しめるのが大きな差別点となります。
ブラウザだけでやり取りできる理由は?
続いて、なぜWebRTC SFUはブラウザだけでデータ通信が問題なく行えているのか、その理由について解説していきます。ブラウザの役割としては、下記の3つが挙げられます。
- Webページの場所を細かく指定できる
- 指定されたWebページを表示する
- Webページ閲覧時もサポート
それでは、詳しくみていきましょう。
理由①|Webページの場所を細かく指定できるため
WebRTC SFUが、ブラウザだけでやり取りできる理由の1つに、Webページの場所を細かく指定できることが挙げられます。
すなわち、WebブラウザのURLを指しています。リンク先ともいわれていますね。
GoogleやFireboxなどのツールでは検索バーが構築されているため、そこでキーワードを入力して探すのが一般的かと思われますが、より精度の高い検索であればURLの方が効果的です。
理由②|指定されたWebページを表示する仕組みが備わっているため
2つ目の理由は、ブラウザ側から指定されたページを表示する機能がWebRTC SFUに備わっているため。リクエストデータが送られる際、データ上では私達人間が読める文字ではなく、HTMLファイルと呼ばれる特殊な文字列に変換されます。
その後、リクエストに適したページを再変換して、私達が読める文章として表示されるといった仕組み。この検索時に限らず、データ通信が行われる際は、毎回HTMLファイルが高速で処理されながら指定されたWebページが表示されています。
理由③|Webページ閲覧時もサポートしてくれるため
私達が閲覧している際にも、ブラウザは便利な機能を数多く備えています。
例えば、ブックマーク機能をみてみましょう。何度も見たい、後で見たいと思ったサイトを記録してくれたり、ショートカットとしてホーム画面に残してくれたりします。
「戻る」「進む」機能も同じく、閲覧したページ情報を記録しつつリクエストがあった際には瞬時に切り替えてくれて、地味ではあるものの非常に大きな機能ですよね。
こういったデータの通信、解読、整理、表示といった処理能力や、表示後もサポートを絶やさない豊富なオプションも備わっているために、ブラウザ単体でもデータのやり取りが行える仕組みです。
まとめ
今回は、WebRTCのSFUサーバーの特徴や役割を中心に解説してきました。
WebRTC技術の大まかな要素であるSFUだけでなく、P2Pの基礎にもふれてきましたが、その違いやブラウザ単体での機能性について深く理解できたことでしょう。
インターネットの普及に伴い、どこでもネットに繋げて快適にデータ通信を行えることは当たり前となった現代において、私達もWebRTCの技術を最大限活用していくことが重要です。
技術の進化に遅れないよう、WebRTCなどのトレンド情報は日頃から関心を持っておくことも大切なポイントといえるでしょう。