プレイヤーサイド・マルチCDN


Player Side Multi CDN (プレイヤーサイドマルチCDN)とは、マルチCDNにおける最適なCDN選択をプレイヤー内部の判断ロジックで実装することであり、ストリーミングのような連続型メディアに対する次世代型マルチCDNとして期待されている。将来的には、全メディアプレイヤーに実装され使用される標準機能となる可能性を秘めている。別名:CDN Selector、CDN Switcher、Plug-in Multi-CDN。

連続型メディアの特性

マルチCDNの視点において、連続型メディア(ストリーミング)は、単発型メディア(Web)に対し以下のような特徴を持つ:

  • マルチCDNに要求される機能性が増加
    •  再生中(インストリーム)のCDN切り替えが必要
      • 連続型メディアの視聴中にも、ネットワークの状況は常に変化しており、その瞬間瞬間の最適なCDN選択が必要になる
    • リアルタイムのCDN切り替えが必要
      • スマートフォンなどにおいて網を切り替えた(例:モバイル網からWifi網)タイミングで、新しい網に最適なCDNの選択が必要になる
  • マルチCDN実装の可能性が広がる
    •  マルチソースな再生が可能
      • 複数のCDNからファイルを取得しながら(例えば、交互にメディアチャンクをダウンロードしながら)、動画を再生できる
    •  プレイヤー側でのインテリジェントな処理が可能
      • プレイヤーは、ダウンロード速度の計測・統計処理をし、それをベースに次の瞬間に使うCDNを変更できる(計測・決定を連続的に繰り返すことができる)
    • CDN決定までの時間的余裕がある
      • CDN決定のために0.1秒程度の遅れが発生してもその影響は少ない(ユーザの再生までの待ち時間についての許容度がWebに比べ高い。つまり、バッファリング等により数秒待つことに慣れている)。

実装アプローチ

プレイヤーサイド・マルチCDNの基本的な実装は、以下の2種類に分かれる:

  • レイテンシ比較型
    • 再生開始時に各CDNまでのレイテンシ計測を行い、レイテンシの小さいCDNを選択する
    • 定常的、瞬間的なCDN切り替えは出来ないが、実装は容易である
    • 商用システムとしては、HolaSparkにより実装されている
  • ダウンロード速度比較型
    • 複数のCDNから継続的にチャンクファイルをダウンロードし、その速度を計測する。その計測結果により、高速なCDNからダウンロードする割合を高める
    • 定常的なCDN切り替えが可能になるが、根本的なフィアルダウンロードの部分の改造が必要である

実装例

  • mse-multicdn.html
    • console.logでダウンロード速度その他を表示(開発者ツール(F12)のconsoleで確認可能)

ベースプレイヤー

基本アルゴリズム

  • 初期CDN判定
    • Headリクエストのレイテンシ比較によりプライマリCDNを決定
  • ダウンロード処理
    • プライマリ・セカンダリの両CDNから、4:1の割合でチャンクをダウンロード
  • ダウンロード中のCDN判定(5秒単位)
    •  過去4回分の平均ダウンロード速度を比較
      • 現プライマリ:直近の4回分(連続取得)
      • 現セカンダリ:直近の4回分

4Kストリームの実行結果サンプル

  • 初期判定でレイテンシが小さかったCDN2が、ダウンロード速度が良好であったため、プライマリCDNを維持している

プレイヤー側のインテリジェント処理

このようなプレイヤー側にインテリジェントな判断をさせる機能の先行例としては、アダプティブ(マルチ)ビットレート(ABR、MBR)の動画配信がある。これは、「再生環境に合わせ最適なビットレートの動画を選択する」という技術であり、1998年に実用化(RealServer G2)され、現在、広く使用されている。

この技術も、1998年当時では、ビットレートの判定はサーバ側であった(プレイヤーは、パケット落ち等をサーバに報告するだけで、最適なビットレートの判定はサーバで行われていた)。しかし、現在では、プレイヤー側でビットレート判定を行うとい処理が主流である。このように、「各種判断のプレイヤー上での実装」というのは、技術の正当な進化であるとも言える。

サービス

幾つかの会社がサービスをリリースしている(詳細調査中)

マルチCDN比較:サーバサイド vs プレイヤーサイド

サーバサイド プレイヤーサイド
用途 Web ストリーミング
サービス例 Cedexis (Citrix ITM) Streamroot Compass
プレイヤー(ブラウザ)のインテリジェンス 不要 必要
ファーストタッチの判断※1 ×
計測結果の即時反映※2 ×
無駄な計測トラフィック あり なし
4K、8Kコンテンツの計測※3 ×

補足

  • ※1:Webアクセスに対するマルチCDNでは、ファーストタッチの判断(URLとローカルなIPだけから最適なCDNを、即座に判定すること)が必要になる。これを行うには、定期的なCDN計測とその計測結果に基づいた即時CDN判定を行う必要があり、サーバサイドマルチCDNが必要となる。
  • ※2:サーバサイドマルチCDNでは、計測結果を一度サーバで集約し、統計処理を行った後に、CDN選択テーブルを作成している。また、CDN選択についても、基本的には、プレイヤーの属するネットワーク単位での判断である(プレイヤー単位での細かな制御は、サーバ負荷が大きくなりすぎるため、一般には行われてない)。
  • ※3:4Kコンテンツで約20Mbpsの帯域が必要となる。一方、サーバサイドマルチCDNでは、基本的にファイルサイズの小さいダミーデータ(Cedexisの場合100KB)に対する計測しかしておらず、高ビットレートの連続計測は行っていない。しかし、ダミーデータのファイルサイズを大きくすると、ユーザ側の無駄な(計測のためだけの)パケット負担が大きくなる(最近のマルチCDNでは、実ユーザにダミーデータの計測をさせるRUM型が主流)。一方、プレイヤーサイドマルチCDNでは、実際にコンテンツを消費しながら速度比較を行うため、4Kコンテンツのリアルなパフォーマンスを計測でき、無駄な計測トラフィックも発生しない。

特許

プレイヤーサイド・マルチCDNについての特許概要は以下:

  • 特許対象:以下のようなプレイヤー動作
    • 複数のサーバ(CDN)からメディアチャンクを受け取る(たとえばCDN-AとCDN-Bから1:5の比率で取る:CDN-Aからは1番目、6番目、11番目…、CDN-Bからは2番目、3番目、4番目、5番目、7番目、8番目、9番目、10番目、12番目…)
    • それぞれのCDN(チャンク)のダウンロード速度を計測する
    • 計測した速度に合わせて、CDN-AとCDN-Bから受け取るチャンク比率を最適化する(単純には早い方から5:1で多くとる)
  • 国内特許番号 : 特許第 6471252 号
    • 発明の名称 : 再生装置及びプログラム
    • 出願日 : 平成 30 年 3 月 20 日 (2018.3.20)
    • 登録日 : 平成 31 年 1 月 25 日 (2019.1.25)
  • PCT出願番号:PCT/JP2019/006467
    •  国際出願日:平成31年2月21日
    • 国際検査機関の見解書:受領済み
      • 新規性、進歩性、利用可能性あり

参考資料