Sliver.tvを提供するTHETAネットワークのホワイトペーパーの翻訳 #3

Theta メッシュデリバリーネットワーク

不特定多数のピアがP2Pネットワークに参加する場合、たくさんの人が同時に同じストリームを開くことが一番望ましい。なぜなら、互いの余分なネットワークリソースやコンピューターリソースを同時に使うことができるので効果的なのである。さらに、システムのセキュリティレベルも、中央サーバーにコンテンツのダウンロードを依存するに比べてより強固なものになる。逆に、中央集権型のCDNの場合、大量のユーザーが同時に視聴すると、ネットワークが集中するため遅延が発生しやすくなる。

しかし、P2Pネットワークの場合、いつどれだけのネットワークリソースが稼働可能になるかが非常に読みにくいため、データのアップロードキャパシティとダウンロードキャパシティがどの程度になるかも読みにくい。一方で、CDNは、常に一定量のネットワークリソースを確保しているため、P2Pネットワークに取っては、信頼のおけるバックアップ先になる。

我々のゴールは、CDNへの依存度を最小化することにある。つまり、現時点でライブのP2Pネットワークのリソースを常に使い、不足している分をCDNで補うということである。このゴールを達成するには、視聴者の物理的に近くにいるノードを精密に特定できることが重要である。これができれば、一つのノードが、コンストタントにビデオストリームのデータを送ることができる。

この問題を解決するために、Thetaは、ハイパー・オプティマイズトラッカーサーバーとプレイヤー・クライアント・サイド・インテリジェンスを組み合わせたプロダクト戦略を実行している。基本的には、トラッカーサーバーが、ピアの候補リストを、プレイヤーサイドに送り、プレイヤーは、フィルターアルゴリズムを使って、至近距離のノードの中から最適なリソースを提供してくれるピアを選ぶのである。

地理的に最適化されたトラッカー・サーバー

トラッカーは、各クライアントに、ピアノードの候補リストを提供するために、トラッカーサーバーは、ピアがどこでネットワークに入ったか、IPアドレス、緯度・経度、他のパフォーマンスパラメーターを常に記録しておく。この情報と共に、サーバーは、そのノードを特定のデータベースで管理する。このデータベースが、地理的に最適化されたノードの詳細情報を管理するのである。図4にあるように、新しいピアノードがネットワークに参加したら、サーバーは、リストの中から高速に効率的にノード候補をピックアップし、そのピア・クライアントに伝える。このデータベースは、ビデオストリーミングサイトであるSlivertvやその利用者であるコミュニティピアによってメンテナンスされる。

先に述べたように、ピアノードは、ネットワークからイン悪なるかもしれないので、トラッカーサーバーは、どのノードがアクティブかを常に知る必要がある。これを実現するために、アクティブピアノードは、ソケットコネクションをトラッカーサーバーとの間に常に維持し、ハートビートシグナルを継続的に送る必要がある。もし、サーバーが、一定期間、そのピアからハートビートのシグナルを受信しなかった場合、そのピアはネットワークから離脱したとみなし、データベースのリストをアップデートする。

また、二つのピアの間における”距離”の概念については、何台のルーターをホッピングしているかで計測するのであって、地理的な距離では計測しない。ただ典型的な話としては、ネットワーク距離と地理的な距離がずれることはまずないが、必ずしもイコールになるわけではない。たとえば、二つのコンピューターが並んでいたとしても、別のISPsを使って繋がっている場合は、この二つのコンピューターの間には、多数のホッピングが存在するため、距離があく可能性がある。故に、地理的な情報とは別に、IPアドレスの分析も並行して走らせることで、至近距離のピアを特定できるようにする。たとえば、視聴者として同じISPに繋がっていないノードは除外するなどである。

インテリジェント・プレイヤー・クライアント

各ピアノードは、視聴者のときもあれば、キャッシングノードのときもあれば、両方のときもある。ノードが立ち上がると、そのライブストリームを見ているピアのリスト情報をトラッカーサーバーからもらう。そして、パフォーマンスを最適化するためのスピードと可用性のテストを実施する。このテストを常に行うことで、ストリームの品質を確かにものにしていく。


QoSの劣化を避けるために、ローカル環境でのバッファーマネジメントは非常に重要である。図5にあるように、クライアントプレイヤーは、別のローカル・キャッシュのデータを入手する。もし、そのキャッシュデータが、不十分な場合は、他の距離が近いピアのキャッシュデータを検索しにいく。そして、他に候補がない場合は、CDNをコールする。この流れで、一定レベルの以上のQoSを実現するためには、コンスタントにトラッカーサーバーにアクセスすることが重要になる。

初期のクライアントビデオプレイヤーは、web/HTML5ベースのもので、ピア間のストリーム配信に、WebTRCプロトコルを適用する。なぜなら、ウェブベースのプレイヤーのディプロイにはそれほど労力がかからないからである。ストリーミングサイトやプラットフォームは、シンプルに、プレイヤーをWebページに埋め込めばよいので、Thetaメッシュネットワークに、何百万ものエンドユーザーノードをすぐに展開することが可能になる。

Thetaは同様に、デスクトップとモバイルクライアントアプリもサポートする予定である。アプリを提供する最大の目的は、ウェブベースのクライアントプレイヤーと異なり、ユーザーがビデオを見てないときでも、バックグラウンドで、ビデオストリーミングのリレイを走らせることができる点である。さらに、Thetaは、IoTデバイスやSmartTVなども視野に入れて、このネットワークに組み入れていくことを考えており、これらのデバイスは、スマートフォンやPCよりもさらにベターな可用性と帯域幅を確保できる。

つづく。

関連記事