JP2017536751A - 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート - Google Patents

分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート Download PDF

Info

Publication number
JP2017536751A
JP2017536751A JP2017520976A JP2017520976A JP2017536751A JP 2017536751 A JP2017536751 A JP 2017536751A JP 2017520976 A JP2017520976 A JP 2017520976A JP 2017520976 A JP2017520976 A JP 2017520976A JP 2017536751 A JP2017536751 A JP 2017536751A
Authority
JP
Japan
Prior art keywords
node
content
nodes
content stream
peer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017520976A
Other languages
English (en)
Other versions
JP6523447B2 (ja
JP2017536751A5 (ja
Inventor
タッシュ,ジョナサン・キング
ブランケンシップ,スティーブン・ジェイ
Original Assignee
コレクティブ テクノロジー, インコーポレイテッド
コレクティブ テクノロジー, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コレクティブ テクノロジー, インコーポレイテッド, コレクティブ テクノロジー, インコーポレイテッド filed Critical コレクティブ テクノロジー, インコーポレイテッド
Publication of JP2017536751A publication Critical patent/JP2017536751A/ja
Publication of JP2017536751A5 publication Critical patent/JP2017536751A5/ja
Application granted granted Critical
Publication of JP6523447B2 publication Critical patent/JP6523447B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/02Arrangements for relaying broadcast information
    • H04H20/08Arrangements for relaying broadcast information among terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

開示されている実施形態は、分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするシステムを提供する。このシステムは分散型コンテンツ配信ネットワーク内のノードを含み、このノードは、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する。上記ノードはリーダーシップ管理装置を含み、この装置は上記ノードを分散型コンテンツ配信ネットワークのローカルネットワークのピアリーダーとして特定する。また、上記ノードはブロードキャスト装置を含む。ノードがピアリーダーとして特定されると、ブロードキャスト装置は、コンテンツストリームをコンテンツソースから取得し、ローカルネットワーク内の他のノードにブロードキャストし、コンテンツストリームをコンテンツソースから取得することに関連する1つ以上の属性に基づいてコンテンツストリームのビットレートを調整する。

Description

背景
分野
開示されている実施形態は、適応ビットレートストリーミングを提供するための技術に関する。より具体的には、開示されている実施形態は、分散型コンテンツ配信ネットワークにおけるブロードキャストレディネスをテストするための技術に関する。
関連技術
電子機器の能力および台数の向上は、結果として電子機器に対するデジタルコンテンツの配信の増加をもたらした。たとえば、ビデオ、音声、および/またはその他の種類の媒体ストリームは、複数のパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、タブレットコンピュータ、および/またはその他のネットワーク対応電子機器に、インターネットベースのコンテンツプロバイダおよび/またはコンテンツ配信ネットワークを用いて送信し得る。
しかしながら、デジタルコンテンツ配信によって消費される帯域幅が、電子機器上でのコンテンツ再生および/またはその他のネットワークアクセスに干渉する場合がある。たとえば、企業環境においてビデオの需要が増大すると、企業ネットワーク内でのネットワークの使用は、小さなトランザクションペイロードから大きな分散ペイロードに移行する場合がある。そうすると、企業ネットワークはこのペイロードによって過負荷になり、企業ネットワーク内におけるビデオ体験に障害が発生するおよび/または機器に到達するために業務上不可欠なトラフィックが得られないという結果が生じ得る。
企業の中には、分散型コンテンツ配信ネットワークを創設することによってこの問題を解決しようと試みた企業がある。分散型コンテンツ配信ネットワークにおいて、クライアントはコンテンツを互いに共有するピアとして機能し得る。あるクライアントがファイルを中央サーバから受信すると、このクライアントは他のクライアントに対してこのファイルのサーバになり得る。クライアントがコンテンツをダウンロードすると、そのコンテンツのサーバになり得るクライアントの数が増し、それ以降のクライアントは、このコンテンツをワイドエリアネットワーク(WAN)ではなくローカルエリアネットワーク(LAN)から取得することができ、クライアントとWANとの間の輻輳は減少する。
一方、帯域幅および/またはプロセッサの利用は、個々のクライアントにおけるコンテンツの再生に影響し続ける場合がある。たとえば、ライブイベントのビデオは、何百または何千ものクライアントに対し、複数のネットワークおよび/または物理的な場所を通してストリーミングされることがある。クライアント、ネットワーク、および/または場所の数が増すと、1以上のクライアントおよび/またはネットワークがコンフィギュレーション不良または利用不能になる可能性が増す。また、クライアント間で帯域幅が異なっていると、一組のピア間で共有されるべきコンテンツの適切なビットレートの選択が難しくなる場合がある。
ゆえに、複数のネットワークおよび/または物理的な場所を通してコンテンツをクライアントに配信し再生することは、クライアントにおけるネットワークおよび/または再生の問題を動的に検出し管理するためのメカニズムによって容易になるであろう。
概要
開示されている実施形態は、分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするシステムを提供する。このシステムは分散型コンテンツ配信ネットワーク内のノードを含み、このノードは、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する。上記ノードはリーダーシップ管理装置を含み、この装置は上記ノードを分散型コンテンツ配信ネットワークのローカルネットワークのピアリーダーとして特定する。また、上記ノードはブロードキャスト装置を含む。ノードがピアリーダーとして特定されると、ブロードキャスト装置は、コンテンツストリームをコンテンツソースから取得し、ローカルネットワーク内の他のノードにブロードキャストし、コンテンツストリームをコンテンツソースから取得することに関連する1つ以上の属性に基づいてコンテンツストリームのビットレートを調整する。
いくつかの実施形態において、リーダーシップ管理装置はまた、ピアリーダーからのコンテンツストリームの受信者としてノードを特定する。コンテンツストリームの受信者としてノードが特定されたときに、ブロードキャスト装置は、ピアリーダーからまたはノードがアクセス可能な1つ以上の他のピアリーダーからコンテンツストリームを受信するための最も有効なビットレートを選択する。
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、ローカルネットワーク内の他のノードのうちの1つ以上のノードからノード特徴の1つ以上の値を取得することと、ノードのノード特徴の値と、他のノードのうちの1つ以上のノードからのノード特徴の1つ以上の値とに基づいて、ノードをピアリーダーとして選択することとを含む。
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、ピアリーダーとしてのノードのステータスをブロードキャストすることと、ピアリーダーとしてのノードのステータスを、ローカルネットワークの1つ以上のサブネット上のピアリーダーの1つ以上のクライアントに送信することとをさらに含み、ステータスは、1つ以上のクライアントによって1つ以上のサブネット内の他のクライアントにブロードキャストされる。
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、コンテンツソースからコンテンツストリームを取得することに関連する劣化が検出されたときに、ノードのノード特徴の値をリセットすることにより、他のノードのうちの1つ以上のノードからピアリーダーを選択することを容易にすることをさらに含む。
いくつかの実施形態において、上記1つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む。
いくつかの実施形態において、ノードを用いてコンテンツストリームを再生することは、コンテンツストリームを、ノード上のプレーヤーに対し、ビットレートをプレーヤーに通知せずに提供することを含む。
開示されている実施形態に従うシステムの概略図を示す。 開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためのシステムを示す。 開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるローカルネットワークの一組のノードにコンテンツを送信するための代表的な送信チェーンを示す。 開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするプロセスを説明するフローチャートを示す。 開示されている実施形態に従う分散型コンテンツ配信ネットワーク内のノードのステータスを特定するプロセスを説明するフローチャートを示す。 開示されている実施形態に従うコンピュータシステムを示す。
図中、同様の参照番号は同一の図面要素を示す。
詳細な説明
以下の説明は、当業者が実施形態を実施し使用することを可能にするために述べられ、特定の用途およびその必要条件という文脈において提供される。開示される実施形態のさまざまな変形は、当業者には難なく明らかになるであろう。また、本明細書で定義される一般原則は、本開示の精神および範囲から逸脱することなく、他の実施形態および用途に適用し得る。よって、本発明は、示されている実施形態に限定されるのではなく、本明細書に開示される原則および特徴と合致する最も広い範囲に従うことを意図している。
この詳細な説明に記載されるデータ構造およびコードは、典型的にはコンピュータ読取可能な記憶媒体に格納されており、この媒体は、コンピュータシステムによって使用されるコードおよび/またはデータを格納できる何らかの装置または媒体であればよい。コンピュータ読取可能な記憶媒体は、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多用途ディスクまたはデジタルビデオディスク)等の磁気および光記憶装置、または、現在周知のまたは今後開発されるコードおよび/またはデータを格納できるその他の媒体を含むが、これらに限定されない。
この詳細な説明のセクションに記載の方法およびプロセスは、上記コンピュータ読取可能な記憶媒体に格納できるコードおよび/またはデータとして実施することができる。コンピュータシステムは、コンピュータ読取可能な記憶媒体に格納されているコードおよび/またはデータを読取って実行するとき、データ構造およびコードとして実施され上記コンピュータ読取可能な記憶媒体に格納されている方法およびプロセスを実行する。
さらに、本明細書に記載の方法およびプロセスは、ハードウェアモジュールまたは装置に含めることができる。これらのモジュールまたは装置は、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定のソフトウェアモジュールまたは1つのコードを特定の時間に実行する専用もしくは共有プロセッサ、および/または現在周知のまたは今後開発されるその他のプログラマブルロジックデバイスを含み得るが、これらに限定されない。ハードウェアモジュールまたは装置は、起動されると、そこに含まれている方法またはプロセスを実行する。
図1は、本発明の実施形態に従う分散型コンテンツ配信ネットワーク100を示す。分散型コンテンツ配信ネットワーク100は、ピア101およびピア102を含む。ピア101および102は、分散型コンテンツ配信ネットワーク100上のノードとして機能する、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、および/または携帯情報端末等のネットワーク対応電子装置であってもよい。より具体的には、ピア101および102は、クライアントとしても、コンテンツを他のクライアントに供給する候補サーバとしても機能し得る。図1はまた、ディレクトリサーバ104、106および108と、ロギングサーバ110と、オリジンサーバ112とを含む。サーバ104、106、108、110および112は、分散型コンテンツ配信ネットワーク100内のクライアント(たとえばピア101〜102)からの要求を処理する物理および/または仮想サーバであってもよい。
1つ以上の実施形態において、ピア101はコンテンツの要求をディレクトリサーバ104に送信する。このコンテンツは、ビデオ、音声、および/またはマルチメディア等のストリーミング媒体を含み得る。たとえば、ピア101は、プレゼンテーション、発表、社内会議、式典、演説、ニュース放送、および/またはスポーツイベント等のライブイベント中に、ビデオコンテンツのストリーミングを要求してもよい。代わりに、ピア101は、ディレクトリサーバ104に、ビデオおよび/または音声コンテンツをオンデマンドで要求してもよい。
ディレクトリサーバ104は、任意で、この要求をディレクトリサーバ106またはディレクトリサーバ108に転送またはリダイレクトしてもよい。1つ以上のディレクトリサーバ104〜108は、この要求を、サーバになり得る候補サーバのリストをピア101に返送することによって処理してもよい。なお、ピアは、コンテンツを要求するときはいつでも、そのコンテンツのサーバになり得る候補サーバになり、他のクライアントに転送される、サーバになり得る候補サーバのリストの中に出現するであろう。このサーバになり得る候補サーバのリストは、任意で、このコンテンツのオリジナルソースとして機能し得るオリジンサーバ112および/またはオリジナルソースからのコンテンツをミラーリングするサーバを特定してもよい。
ピア101は、このリストを用いて、ピア102、オリジンサーバ112、および/またはリスト中の別の候補サーバにコンテンツを要求してもよい。コンテンツの受信中に、ピア101は、受信したコンテンツの部分とピア101がコンテンツをダウンロードしようと試みたサーバとを含むフィードバック情報を、ロギングサーバ110に提供してもよい。その後、ロギングサーバ110は、このピア101からのフィードバック情報をディレクトリサーバ104に転送してもよく、ディレクトリサーバ104は、このフィードバック情報を用いてコンテンツの将来の要求を処理してもよい。図1の構成要素は、本明細書に引用により援用する、2003年6月30日に出願され発明者がWade L. HennesseyおよびJohn B. Wainwrightであり「Method and Apparatus for Establishing Peering Rules for Distributed Content Delivery」と題された同時係属中の非仮出願第10/611,783号(代理人整理番号KON03−0003)に,さらに詳細に記載されている。
図2は、開示されている実施形態に従う分散型コンテンツ配信ネットワーク(たとえば図1の分散型コンテンツ配信ネットワーク100)におけるブロードキャスト送信を容易にするためのシステムを示す。図2に示されるように、オリジンサーバ(たとえば図1のオリジンサーバ112)等のコンテンツソース222からコンテンツ224(たとえばビデオ、音声、マルチメディア等)が、ピアリーダー202および受信者ノード204を含む、分散型コンテンツ配信ネットワーク内の一組のノードに提供されてもよい。たとえば、コンテンツソース222からのコンテンツ224は、1つ以上のコンテンツストリーム(たとえばコンテンツストリーム236〜238)として、分散型コンテンツ配信ネットワーク内のノードに、ライブイベントから予め指定された遅れ(たとえば30秒)を伴ってブロードキャストされてもよい。コンテンツ224はこのライブイベントから記録または生成されたコンテンツである。これに代えて、1つ以上のメディアファイルからのコンテンツ224が、分散型コンテンツ配信ネットワーク内の1つ以上のノードにオンデマンドでストリーミングされてもよい。
ピアリーダー202および受信者ノード204は、分散型コンテンツ配信ネットワーク内のピア(たとえば図1のピア101および102)であってもよい。たとえば、ピアリーダー202および受信者ノード204は各々、電子装置上で実行される固有メディア配信アプリケーションを含み得る。これは、コンテンツを分散型コンテンツ配信ネットワークから取得し、この電子装置のユーザに対して再生し、および/またはこのコンテンツを分散型コンテンツ配信ネットワーク内の他のノードに提供する。ピアリーダー202は、コンテンツソース222からおよび/またはピアリーダー202が存在するローカルネットワークの外部の別のコンテンツソースから、コンテンツストリーム236としてコンテンツ224を取得してもよい。そうすると、ピアリーダー202は、受信者ノード204を含む、ローカルネットワーク内の他のノードおよび/またはピアに、コンテンツストリーム236をブロードキャストしてもよい。コンテンツ224はローカルネットワークに対して1度だけ送信されればよいので、ローカルネットワークとコンテンツの送信元であるワイドエリアネットワーク(WAN)との間における帯域幅消費が減少するであろう。
加えて、コンテンツストリーム236は、構造化された送信チェーンに沿って、ピアリーダー202から受信者ノード204およびローカルネットワーク内の他のノードに送信されてもよい。たとえば、ローカルネットワーク内の各ノードは、予め規定されている、8〜12の他のノードに対する供給能力を有していてもよい。ノード(たとえば受信者ノード204)がコンテンツストリーム236を求めてピアリーダー202に接続すると、その後のピアリーダー202の供給能力は1つ減少するであろう。ピアリーダー202に供給能力が残っていなければ(たとえば最大数のノードがピアリーダー202に接続された後)、ピアリーダー202は、コンテンツストリーム236を供給する役割を、ピアリーダー202に接続されているノードに委託してもよい。そうすると、委託されたノードは、供給能力がなくなり他のノードに供給する役割をローカルネットワーク内の他のノードに委託するまでの、ローカルネットワーク内の他のノードに対する供給能力を、通知してもよい。したがって、以下図3に関連してさらに詳細に説明するように、ローカルネットワーク内のノードがツリー状構造を形成し、コンテンツストリーム236がこのツリー状構造を通して供給されてもよい。
1つ以上の実施形態において、ローカルネットワーク内のノード(たとえばピアリーダー202、受信者ノード204等)のメンバシップは、ネットワークホップ、ラウンドトリップタイム(round-trip time:RTT)、および/またはローカルネットワーク内のパケット送信に関連するその他のネットワークの特徴に対する制限に基づいて、動的に決定されてもよい。たとえば、あるノードは、ローカルネットワーク内の他のすべてのノードに予め指定されたミリ秒数またはネットワークホップ数未満で到達できる場合に、このローカルネットワークに属し得る。したがって、このローカルネットワークは、個々のブロードキャストドメインに限定される従来の定義のローカルエリアネットワーク(LAN)よりも、多くのノードおよび/またはネットワークコンポーネントを含み得る。たとえば、このローカルネットワークは、同一建築物内の、複数のブロードキャストドメイン、スイッチ、および/またはLANを含み得る。なぜなら、この建築物内の電子装置間においてネットワークパケットを全帯域幅で送信できるからである。
加えて、複数のローカルネットワークからノードに予め指定された時間および/またはホップ数以内で到達できる場合、このノードは2つ以上のローカルネットワークのメンバシップを有し得る。ノードを2つ以上のローカルネットワークに含めることができる場合、このノードは、参加するローカルネットワークを選択し選択したローカルネットワークを通してコンテンツ224を受信すればよい。逆に、ノードが、何らかの既存のローカルネットワーク内の他のすべてのノードに到達できない場合は、他のノードが参加するための別のローカルネットワークを形成してもよい。
ローカルネットワークの中で、ピアリーダー202は、一組のノードから、これらのノードの1つ以上のノード特徴(たとえばノード特徴214〜216)に基づいて選択されてもよい。より具体的には、ピアリーダー102、受信者ノード204、および/またはローカルネットワーク内のピアリーダー202の候補となり得るその他のノードは、それらのノード特徴を互いに共有していてもよく、ピアリーダー202、受信者ノード204、および/またはその他のノードの中のリーダーシップ管理装置206〜208は、最も優れたノード特徴を有するノードをピアリーダー202として選択してもよい。
たとえば、複数のピアは、ピアリーダー202が選択される前に、コンテンツストリーム(たとえばコンテンツストリーム236〜238)としてのコンテンツ224を、コンテンツソース222からおよび/または互いから取得してもよい。結果として、ピアリーダー202が、バッファのコンテンツ224占有量が最大である、ローカルネットワーク内のノードとして選択されてもよい。これは、ピアリーダー候補のバッファ内のコンテンツ224のバイト数および/または秒数によって決まる。これに代えてまたはこれに加えて、ピアリーダー202は、コンテンツソース222への直接または間接接続が最も長いことに基づいて特定されてもよい。これは、各ノードが最初にコンテンツソース222および/またはコンテンツソース222への経路を有する別のノードに接続された時間を表わすタイムスタンプによって決まる。一方、受信者ノード204はピアリーダー202として選択されない場合がある。なぜなら、受信者ノード204は、ピアリーダー202のノード特徴214と比較して、バッファ占有量が少ない、コンテンツソース222への接続が短い、および/またはピアリーダーシップとして望ましくないその他のノード特徴を有する場合があるからである。
2つ以上のノードが同一のノード特徴を有しこれがピアリーダー202のためのタイ(tie)を形成している場合、各ノード内のリーダーシップ管理装置は、別々のメカニズムを用いてこのタイを切断し1つのノードをピアリーダーとして選択してもよい。たとえば、このタイにおける各ノードのグローバル一意識別子(globally unique identifier:GUID)と、コンテンツ224のメディアオブジェクト識別子(media object identifier:MOID)との近さを計算し、コンテンツ224のメディアオブジェクト識別子(MOID)に最も近いGUIDを有するノードをピアリーダー202として選択することにより、このタイを切断してもよい。
さらに、ピアリーダー202を特定するためのノード特徴(たとえばノード特徴214〜216)を選択することにより、ピアリーダー202選択後の安定性を維持してもよい。たとえば、バッファ占有量および/またはコンテンツソース222への接続時間に基づいてピアリーダー202を選択することにより、最近ローカルネットワークに参加したノードがピアリーダー202を引き継ぐことを防止してもよい。なぜなら、最近参加したノードが、ピアリーダー202よりも占有量が多いバッファを有するおよび/または接続時間が長いことは、まずないからである。
一方、ノード特徴214は、コンテンツソース222からのコンテンツ224の取得に関連する劣化が検出されたら、ピアリーダー202によってリセットされてもよい。たとえば、ピアリーダー202が、コンテンツ224の通常再生を維持するレートでコンテンツ224をコンテンツソース222から受信するのに十分な帯域幅を有していない場合、ピアリーダー202は、ピアリーダー202からコンテンツソース222への最初の接続時間を表わすタイムスタンプを現在の時間にリセットしてもよい。そうすると、既にコンテンツソース222に接続している他のいずれかのピアが、コンテンツソース222への最初の接続時間がより早いかもしれず、そのピアがピアリーダー202を引き継げばよい。一方、ローカルネットワーク内においてピアリーダー202がコンテンツソース222に接続されている唯一のピアである場合は、ピアリーダー202が引続きコンテンツソース222からコンテンツストリーム235を直接受信すればよい。
ピアリーダー202がノード特徴214に基づいて特定された後に、リーダーシップ管理装置206は、ピアリーダー202のリーダーシップステータス218を、ローカルネットワーク内の他のピアに通知してもよい。他のピアは、たとえば、ピアリーダー202からのコンテンツストリーム236の受信者として、異なるステータス220を有する受信者ノード204である。最初に、ピアリーダー202は、ステータス218を、ピアリーダー202と同じサブネット上のノードにブロードキャストしてもよい。ステータス218をローカルネットワーク内の他のサブネットに伝えるために、ピアリーダー202は、ステータス218を直接接続を介して各サブネットのクライアントに送信してもよく、このクライアントは、ステータス218をサブネットにブロードキャストすることによってサブネット内の他のノードに中継してもよい。
1つ以上の実施形態において、コンテンツソース222は、ピアリーダー202および/または分散型コンテンツ配信ネットワーク内の他のピアリーダーに、コンテンツ224をあるビットレート(たとえばビットレート1:226、ビットレートx:228)で提供する。たとえば、コンテンツソース222は、240p、360p、480p、720pおよび/または1080pというビデオ品質に対応するビットレートでビデオコンテンツ224を提供してもよい。各ビットレートは異なるフォーマットMOIDに関連していてもよく、同一コンテンツ224に対する一群のビットレートが同一固有コンテンツMOIDに関連していてもよい。
ピアリーダー202内のブロードキャスト装置210は、コンテンツストリーム236のビットレート232を、コンテンツソース222からのコンテンツストリームの取得に関連する1つ以上の属性230に基づいて選択および/または調整してもよい。たとえば、ブロードキャスト装置210は、コンテンツ224を含むネットワークパケットを調べることにより、コンテンツソース222からのネットワークパケットの受信に関連するネットワークレイテンシ等の属性230を求めてもよく、および/またはコンテンツソース222からのネットワークパケットのバースト帯域幅テストを実施してもよい。ブロードキャスト装置210はまた、コンテンツストリーム236を含むバッファをモニタリングすることにより、バッファ占有量および/またはバッファ占有量の増減等のその他の属性230を求めてもよい。次に、ブロードキャスト装置210は、ネットワークレイテンシ、バースト帯域幅テストの結果、バッファ占有量、および/またはバッファ占有量の変化を用いて、コンテンツ224のバッファリングおよび/またはその他の再生不良を招かない最高の可能なビットレート232でコンテンツストリーム236が取得されるように、ビットレート232を選択してもよい。
ブロードキャスト装置210は、利用できる帯域幅および/またはその他の属性230の変化に応じてビットレート232を調整してもよい。たとえば、ピアリーダー202の利用できる帯域幅および/またはバッファ占有量が減少すると、コンテンツソース222からのビットレート232は、次に最も低いビットレートに低下し得る。一方、ピアリーダー202の利用できる帯域幅および/またはバッファ占有量が増加すると、コンテンツソース222からのビットレート232は、次に最も高いビットレートに増加し得る。このようなビットレート232の変更は、現在のビットレート232が予め指定された期間使用された後に行なうことにより、ビットレート232の頻繁な変更および/または帯域幅、レイテンシ、および/またはその他の属性230の一時的な変動によって、ビットレート232の変化が生じないようにしてもよい。たとえば、ピアリーダー202は、コンテンツストリーム236を選択されたビットレート232で予め指定された秒数の時間受信することで、コンテンツソース222との新たな接続を確立してもよい、および/またはブロードキャスト装置210がコンテンツストリーム236に対して他のビットレートを使用すべきか否か判断する前に、コンテンツストリーム236の一定量のデータをビットレート232で受信してもよい。
ブロードキャスト装置210によってビットレート232が変更されると、新たなビットレート232のコンテンツストリーム236のデータが、前のビットレートのコンテンツストリーム236のデータと同じバッファによって受信される。次に、バッファの異なるビットレートに従ってバッファの占有量を計算してもよい。たとえば、バッファは、30秒のコンテンツストリーム236を含む場合にその占有量が最大であってもよい。ブロードキャスト装置210は、バッファ占有量が800kb/sの20秒のコンテンツストリーム236に減少すると、ビットレート232を800kb/sから400kb/sに下げてもよい。ビットレート232が2分の1になった後に、ブロードキャスト装置210は、2倍の秒数のコンテンツストリーム236を同一量のデータで受信し得る。すると、5秒後に、バッファは、24秒のバッファ占有量に対し、15秒の800kb/sのコンテンツストリームと9秒の400kb/sのコンテンツストリームを含むであろう。ビットレートが異なるデータを相互に区別しバッファ占有量を計算するために、ブロードキャスト装置210は、コンテンツストリーム236のデータのフォーマットMOIDを、フォーマットMOIDが示すビットレートと一致させてもよい。その後、ブロードキャスト装置210が予め指定された期間(たとえば12秒)400kb/sというビットレート232でバッファを最大占有量または最大に近い占有量に保つことができる場合、ブロードキャスト装置210は、ビットレート232を増して800kb/sに戻すことを試みてもよい。ブロードキャスト装置210は、引続き800kb/sのビットレート232を使用してもよく、その間、コンテンツストリーム236は、バッファを最大占有量または最大に近い占有量に保つのに十分素早く受信される。
上記のように、ピアリーダー202は、コンテンツストリーム236を、受信者ノード204および/または同一ローカルネットワーク内の他のノードにブロードキャストし得る。結果として、ピアリーダー202に接続されているすべてのノードは、それらのコンテンツストリーム(たとえばコンテンツストリーム238)を、コンテンツストリーム236と同じビットレート232で受信し得る。逆に、受信者ノード204および/またはローカルネットワーク内の他の受信者ノードは、ピアリーダー202および/または受信者ノードがアクセス可能な他のピアリーダーからコンテンツストリーム(たとえばコンテンツストリーム238)を受信するための最も有効なビットレート(たとえば最も有効なビットレート234)を選択し得る。たとえば、受信者ノード204が複数のローカルネットワークに参加できる場合および/または受信者ノード204がメンバーである1つのローカルネットワークが一時的に複数のピアリーダーを有する場合(たとえばリーダーシップ交渉中および/またはローカルネットワーク内のノード間のリーダーシップ変更中)、受信者ノード204は複数のピアリーダーを利用できるであろう。受信者ノード204は、ピアリーダーから提供される、受信者ノード204上でコンテンツ224の通常再生が可能な最高ビットレートとして、コンテンツストリーム238の最も有効なビットレート234を選択してもよい。
ピアリーダー202から提供されるビットレート232は受信者ノード204上での通常再生には高すぎる場合があることを、当業者は理解するであろう。たとえば、受信者ノード204はピアリーダー202よりも利用できる帯域幅が小さい場合があり、その結果、受信者ノード204上でピアリーダー202からのコンテンツストリーム236がダウンロードおよび再生されている間にバッファリングおよび/またはストールが発生する場合がある。一方、このようなバッファリングおよび/またはストールは、ピアリーダー202がコンテンツストリーム236をコンテンツソース222から十分に速いレートでダウンロードできないことに原因がある場合がある。受信者ノード204および/またはピアリーダー202がビットレート232をサポートできないことに関連する再生の問題を緩和するために、受信者ノード204は、同一のローカルネットワークおよび/または異なるローカルネットワークのピアリーダー202になることを試みてもよい。一方、上記のように、ピアリーダー202は、コンテンツソース222からのコンテンツ224の取得に関連する劣化を検出したときに(たとえば、受信者ノード204および/またはその他の受信者ノードに対する供給帯域幅がコンテンツストリーム236のビットレート未満になった場合)、ノード特徴214をリセットしてもよい。結果として、ピアリーダーシップは、ピアリーダー202がローカルネットワーク上で最も帯域幅が制限されたノードを表わすまで、ローカルネットワークで持ち回りされるかもしれず、その場合は、ピアリーダー202からのビットレート232およびコンテンツストリーム236をローカルネットワーク上のすべてのノードが使用できる。なぜなら、他のノードはピアリーダー202よりも帯域幅が大きいからである。
ローカルネットワーク内のノードが受信するコンテンツストリーム(たとえばコンテンツストリーム236〜238)はさらに、これらのノード上のプレーヤーに対し、コンテンツストリームのビットレート(たとえばビットレート232、最も有効なビットレート234)を通知せずに提供してもよい。たとえば、各ノードは、受信したコンテンツストリームのビットレートを、プレーヤーが再生できる非圧縮形式にコンテンツストリームをデコードすることによって、このノード上のプレーヤーから隠してもよい。その代わりに、ノードが、コンテンツストリームをこのノード上のプレーヤーに提供する前に、コンテンツストリームを標準ビットレートで再度符号化してもよい。結果として、分散型コンテンツ配信ネットワーク内のビットレート適応化は、プレーヤーレベルでの知識または入力なしで実施し得る。
このようなビットレート232の動的適応化によって、ピアリーダー202は、ローカルネットワーク内のピアリーダーシップを放棄せずにコンテンツソース222からのコンテンツ224の受信に関連するネットワークの問題を処理するためにピアリーダー202が利用できるその他の情報(たとえばネットワークレイテンシ、バッファ占有量等)を用いることができる。たとえば、ピアリーダー202は、ネットワークレイテンシの増加に応じてビットレート232を下げることにより、ピアリーダーシップの喪失につながり得る、コンテンツストリーム236の再生中のバッファリングおよび/またはストールを防止し得る。そうすると、ピアリーダー202による適応ビットレートストリーミングは、プレーヤーがネットワーク情報なしで実行する従来の適応ビットレートストリーミングよりも優れた再生体験を提供し得る。加えて、ピアリーダー202を選択するおよび/またはピアリーダー202に異議を唱えるメカニズムにより、ローカルネットワーク内の他のノードもピアリーダー202と同じビットレート232でコンテンツ224をストリーミングし再生できることを保証し得る。言い換えると、図2のシステムは、ピアベースの分散型コンテンツ配信ネットワークにおけるコンテンツ222のブロードキャスト中に適応ビットレートストリーミングを実行し得る。
図2のシステムはさまざまなやり方で実装し得ることを当業者は理解するであろう。具体的には、コンテンツソース222は多数のハードウェアおよび/またはソフトウェアコンポーネントによって提供し得る。たとえば、コンテンツソース222は、コンテンツ224のオリジナルソースとして機能する中央オリジンサーバ、中央オリジンサーバからのコンテンツ224のコピーを含むキャッシングオリジンサーバ、および/またはコンテンツ224をオリジンサーバおよび/または別のWANピアから取得しコンテンツ224をWANを通してピアリーダー202に提供するWANピアであってもよい。
加えて、ピアリーダー202、受信者ノード204、および/または分散型コンテンツ配信ネットワーク内の他のノードのコンポーネントは、一緒におよび/または別々に、1つ以上のハードウェアおよび/またはソフトウェアコンポーネントおよび/またはレイヤによって実装されてもよい。たとえば、リーダーシップ管理装置206およびブロードキャスト装置210は同一のハードウェアまたはソフトウェアコンポーネントによって提供されてもよく、または、リーダーシップ管理装置206およびブロードキャスト装置210は別々のコンポーネントによって実装されてもよい。
図3は、開示されている実施形態に従う分散型コンテンツ配信ネットワークのローカルネットワーク内の一組のノードに対してコンテンツを送信するための代表的な送信チェーンを示す。コンテンツは、コンテンツストリームとして、ローカルネットワークの外部のコンテンツソースから、ピアリーダー302によって取得されてもよい。次に、コンテンツストリームは、ピアリーダー302からローカルネットワーク内の一組のクライアント304〜320に、ローカルネットワーク内のすべてのノード上でコンテンツが同時にストリーミングおよび/または再生されるように、ブロードキャストされてもよい。
上記のように、ローカルネットワーク内の各ノードは、予め指定された供給能力を有していてもよい。たとえば、ピアリーダー302およびクライアント304〜320は、ローカルネットワーク内の最大3つの他のクライアントに供給するように構成されてもよい。ノードの供給能力が使い尽くされると、このノードは、自身が供給する1つ以上の他のノードに、それぞれの供給能力を通知するように命令することによって、コンテンツを供給する役割を他のノードに委託してもよい。したがって、ノードの供給能力を通知せよという命令は、ピアリーダー302から1つ以上のクライアント304〜320に対し、利用できる供給能力を有するノードにこの命令が達するまで、送信されてもよい。
図3に示されるように、ピアリーダー302は、ピアリーダー302の供給能力を受け継ぐ3つのクライアント304〜308にコンテンツを提供する。ピアリーダー302はこのように、1つ以上のクライアント304〜308に対し、それぞれの供給能力をローカルネットワーク内の他のノードに公表することを定期的に命令する。他のノードは、ローカルネットワークに最近参加したノードを含む。クライアント304〜308の供給能力が通知された後、クライアント304は、他の1つのクライアント310にコンテンツを供給し残りの供給能力を2としてもよい。この場合、クライアント310がコンテンツを供給する他のクライアントはゼロなので残りの供給能力は3である。クライアント310は、この供給能力を、2つ以上のクライアントがクライアント304に接続してコンテンツをクライアント304から取得した後に、通知してもよい。クライアント308は、コンテンツを他の1つのクライアント320に提供し残りの供給能力を2としてもよい。クライアント304および308は供給能力を有するので、クライアント304および308は引続きそれぞれの供給能力をローカルネットワークに通知することにより、ローカルネットワーク内の他のノードがこれらのクライアントに接続してコンテンツをこれらのクライアントから取得できるようにしてもよい。
クライアント306は、コンテンツを他の3つのクライアント312〜316に供給して残りの供給能力をゼロとしてもよい。したがって、供給能力の通知命令は、ピアリーダー302からクライアント306へ、さらにクライアント312〜316に送られるであろう。クライアント312〜316の供給能力が通知された後、クライアント316はコンテンツを他の2つのクライアント318〜320に供給して残りの供給能力を1としてもよく、クライアント312〜314および318〜320は各々最大供給能力である3を有し得る。なぜなら、クライアント312〜314および318〜320は現在コンテンツを他のノードに供給していないからである。
ピアリーダー302およびクライアント304〜320はこのようにしてグラフ状の送信チェーンを形成し得る。この送信チェーンに沿ってコンテンツソースからコンテンツが送信される。たとえば、ピアリーダー302は、コンテンツをコンテンツソースから取得しクライアント304〜308にブロードキャストすることにより、送信チェーンのルートとして機能し得る。クライアント304〜308がコンテンツを受信した後に、クライアント304はコンテンツをクライアント310にブロードキャストしてもよく、クライアント306はコンテンツをクライアント312〜316にブロードキャストしてもよく、クライアント308はコンテンツをクライアント320にブロードキャストしてもよい。クライアント316は、コンテンツをクライアント306から受信した後に、コンテンツをクライアント318〜320にブロードキャストしてもよい。クライアント302〜320のいずれのサブセットも別のクライアントに対する供給能力を有することを保証するために、各クライアントの供給は、このクライアントが使用するコンテンツのソースの数を上回っている必要があるであろう。たとえば、クライアント320はコンテンツを2つのクライアント308および316から受けるので供給能力は3以上であってもよい。したがって、送信チェーンにより、ローカルネットワーク内のすべてのノードは、コンテンツ要求でローカルネットワーク内の個々のノードが過負荷になることなく、コンテンツを受信できるであろう。
図4は、開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするプロセスを説明するフローチャートを示す。より具体的には、図4は分散型コンテンツ配信ネットワーク内のノードを動作させるためのフローチャートを示す。1つ以上の実施形態において、ステップのうちの1つ以上が、省略されてもよく、繰返されてもよく、および/または異なる順序で実行されてもよい。よって、図4に示されるステップの特定の構成は、実施形態の範囲を限定すると解釈されるべきではない。
最初に、ノードを用いて、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する(動作402)。たとえば、ノードを用いて、ライブイベントの音声および/またはビデオを、ライブイベントから予め指定された遅れを伴って再生してもよい。次に、分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして、または、ピアリーダーからのコンテンツストリームの受信者として、ノードをこのノードのステータスに基づいて動作させてもよい(動作404)。ピアリーダーとして、またはピアリーダーからのコンテンツストリームの受信者として、ノードを特定することは、ノードおよび/または同一ローカルネットワーク内の他のノードによって実施されてもよく、このことについては以下図5との関連でより詳細に説明する。
ノードがピアリーダーである場合、このノードを用いてコンテンツストリームをコンテンツソースから取得する(動作406)。たとえば、ノードは、コンテンツストリームを、オリジンサーバおよび/またはノードのローカルネットワークの外部のWANピアから、ダウンロードしてもよい。次に、このノードを用いてコンテンツストリームをローカルネットワーク内の他のノードにブロードキャストする(動作408)。上記のように、コンテンツストリームは、ノードに直接接続されている他のノードの第1のサブセットにコンテンツストリームを送信することによって他のノードにブロードキャストしてもよい。次に、コンテンツストリームを、送信チェーンに沿って、他のノードの残りに中継してもよい。この送信チェーンは、サブセットと、第1のサブセットに直接または間接的に接続される他のノードの1つ以上の他のサブセットとを含む。
また、ノードを用いて、コンテンツソースからコンテンツストリームを取得することに関連する1つ以上の属性に基づいて、コンテンツストリームのビットレートを調整してもよい(動作410)。たとえば、コンテンツストリームのビットレートを、ネットワークレイテンシおよび/またはバッファ占有量等の属性に基づいて増減してもよい。次に、選択されたビットレートのコンテンツストリームを、ピアリーダーに直接または間接的に接続されている他のノードに提供すると、ピアリーダーに接続されているすべてのノードはコンテンツストリームを同一のビットレートで受信することになる。加えて、コンテンツストリームは、各ノード上のプレーヤーに対し、プレーヤーにビットレートを通知せずに、提供されてもよい。
逆に、ノードがピアリーダーからのコンテンツストリームの受信者である場合、ノードを用いて、ピアリーダーからおよび/またはノードがアクセスできる他のピアリーダーからコンテンツを受信するのに最も有効なビットレートを選択する(動作412)。たとえば、ノードは、ノードが参加できる1つ以上のローカルネットワーク内の1つ以上のピアリーダーから、ノード上でコンテンツストリームの通常再生を実施できる最も高い有効ビットレートを選択してもよい。
コンテンツストリームはノード上で継続的に再生されてもよい(動作414)。たとえば、コンテンツストリームは、ノードによって取得され、ノード上のコンテンツストリームの再生が停止されるまでおよび/またはコンテンツストリームの最後に達するまで、再生されてもよい。コンテンツストリームを再生しようとするとき、ノードのステータス(動作404)を用いてノードをピアリーダーとして動作させる(動作406〜410)、またはピアリーダーからのコンテンツストリームの受信者として動作させる(動作412)。このように、ノードは、コンテンツストリームの再生に使用されなくなるまで動作し得る。
図5は、開示されている実施形態に従う分散型コンテンツ配信ネットワーク内のノードのステータスを識別するプロセスを説明するフローチャートを示す。1つ以上の実施形態において、ステップのうちの1つ以上が、省略されてもよく、繰返されてもよく、および/または異なる順序で実行されてもよい。よって、図5に示されるステップの特定の構成は、実施形態の範囲を限定すると解釈されるべきではない。
最初に、ノードを用いて、このノードと同じローカルネットワーク内の1つ以上の他のノードからノード特徴の1つ以上の値を取得する(動作502)。たとえば、このノードおよび/または他のノードは、タイムスタンプを互いに共有してもよく、各タイムスタンプはそのノードにおけるコンテンツの受信期間(たとえばコンテンツストリームを含むコンテンツソースに対するノードの接続の長さ)を表わしてもよい。次に、ノードは、このノードおよび他のノードのノード特徴の値に基づいてピアリーダーとして選択される(動作504)。上記例を続けると、このノードは、コンテンツストリームをコンテンツソースから最も長い時間にわたって受信しているという理由でピアリーダーとして選択されてもよい。
ノードは、ピアリーダーとして選択された後に、ピアリーダーとしてのノードのステータスをブロードキャストするために使用される(動作506)。たとえば、ノードはそのピアリーダーとしてのステータスを、このピアリーダーと同一のサブネット内の他のノードにブロードキャストしてもよい。ノードはまた、そのピアリーダーとしてのステータスを、ローカルネットワークの他のサブネット上のクライアント等の、ローカルネットワークの1つ以上のサブネット上の1つ以上のクライアントに送信してもよい(動作508)。そうすると、クライアントは、ピアリーダーとしてのノードのステータスを、他のサブネット内の他のクライアントにブロードキャストすることにより、他のクライアントにピアリーダーのアイデンティティを通知してもよい。
最後に、ノードは、任意で、そのノード特徴の値を、コンテンツソースからのコンテンツストリームの取得に関連する劣化を検出したときにリセットしてもよい(動作510)。たとえば、ノードは、コンテンツストリームのビットレートを適応させてまたは適応させずに、コンテンツストリームの通常の(たとえば非不良)再生をサポートするレートでコンテンツソースからコンテンツストリームを取得できない場合、コンテンツソースに対するノードの最初の接続を表わすタイムスタンプを、現在の時間に設定してもよい。ノード特徴の値をリセットすることにより、ノードは(たとえばローカルネットワーク内のノード間で後におよび/または定期的リーダーシップが決定されるラウンド中)他のノードからピアリーダーを選択することを容易にし得る。
図6は、ある実施形態に従うコンピュータシステム600を示す。コンピュータシステム600は、プロセッサ602、メモリ604、記憶装置606、および/または電子コンピューティングデバイス内にあるその他のコンポーネントを含む。プロセッサ602は、コンピュータシステム600内の他のプロセッサとの並列処理および/またはマルチスレッドオペレーションをサポートし得る。コンピュータシステム600はまた、キーボード608、マウス610、およびディスプレイ612等の入出力(I/O)装置を含み得る。
コンピュータシステム600は、本実施形態のさまざまなコンポーネントを実行する機能を含み得る。具体的には、コンピュータシステム600は、コンピュータシステム600上のハードウェアおよびソフトウェアリソースの使用を調整するオペレーティングシステム(図示せず)と、ユーザのための専用タスクを実行する1つ以上のアプリケーションとを含み得る。ユーザのためのタスクを実行するために、アプリケーションは、オペレーティングシステムから、コンピュータシステム600上のハードウェアリソースの使用権を取得するとともに、オペレーティングシステムが提供するハードウェアおよび/またはソフトウェアフレームワークを通してユーザと対話してもよい。
1つ以上の実施形態において、コンピュータシステム600は、分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするシステムを提供する。このシステムは、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する、分散型コンテンツ配信ネットワーク内のノードを含む。このノードはリーダーシップ管理装置を含み得る。リーダーシップ管理装置は、上記ノードを、分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして、および/またはピアリーダーからのコンテンツの受信者として特定する。
上記ノードはまた、ブロードキャスト装置を含み得る。ノードがピアリーダーとして特定されると、ブロードキャスト装置は、コンテンツストリームをコンテンツソースから取得し、ローカルネットワーク内の他のノードにブロードキャストし、コンテンツストリームをコンテンツソースから取得することに関連する1つ以上の属性に基づいてコンテンツストリームのビットレートを調整してもよい。ノードがピアリーダーからのコンテンツストリームの受信者として特定されると、ブロードキャスト装置は、上記ピアリーダーからまたはローカルネットワーク内の1つ以上の他のピアリーダーからコンテンツを受信するための最も有効なビットレートを選択してもよい。
加えて、コンピュータシステム600の1つ以上のコンポーネントは、遠隔場所に位置し他のコンポーネントにネットワークを通して接続されてもよい。また、本実施形態のそれぞれの部分(たとえばコンテンツソース、ノード、リーダーシップ管理装置、ブロードキャスト装置等)は、実施形態を実装する分散型システムの異なるノード上に位置していてもよい。たとえば、本実施形態はクラウドコンピューティングシステムを用いて実装されてもよく、このクラウドコンピューティングシステムは、一組の遠隔ノードの中からピアリーダーを識別し、このピアリーダーを、コンテンツストリームを遠隔コンテンツソースから取得し同一ローカルネットワーク内の他の遠隔ノードにブロードキャストしコンテンツソースからのコンテンツストリームの取得に関連する属性に基づいてコンテンツストリームのビットレートを調整するように、構成する。
これまでのさまざまな実施形態の記載は、例示と説明のみを目的としている。これらの記載は、本発明を余すところなく述べることまたは開示されている形態に限定することを意図しているのではない。したがって、数多くの修正および変形が当業者には明白であろう。加えて、上記開示は本発明を限定することを意図しているのではない。

Claims (20)

  1. 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためにコンピュータで実行される方法であって、
    前記分散型コンテンツ配信ネットワーク内のノードを用いて、前記分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生するステップと、
    前記分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして前記ノードを特定したときに、前記ノードを用いて、
    前記コンテンツストリームをコンテンツソースから取得し、
    前記コンテンツストリームを前記ローカルネットワーク内の他のノードにブロードキャストし、
    前記コンテンツソースから前記コンテンツストリームを取得することに関連する1つ以上の属性に基づいて、前記コンテンツストリームのビットレートを調整するステップとを含む、コンピュータで実行される方法。
  2. 前記ピアリーダーからの前記コンテンツストリームの受信者として前記ノードを特定したときに、前記ノードを用いて、前記ピアリーダーからまたは前記ノードがアクセス可能な1つ以上の他のピアリーダーから前記コンテンツストリームを受信するための最も有効なビットレートを選択するステップをさらに含む、請求項1に記載のコンピュータで実行される方法。
  3. 前記ノードを一組のノードに対するピアリーダーとして特定することは、
    前記ノードにおいて、前記他のノードのうちの1つ以上のノードからノード特徴の1つ以上の値を取得することと、
    前記ノードのノード特徴の値と、前記他のノードのうちの1つ以上のノードからのノード特徴の1つ以上の値とに基づいて、前記ノードを前記ピアリーダーとして選択することとを含む、請求項1に記載のコンピュータで実行される方法。
  4. 前記ノードを一組のノードに対するピアリーダーとして特定することは、
    前記ノードを用いて、
    前記ピアリーダーとしての前記ノードのステータスをブロードキャストすることと、
    前記ピアリーダーとしての前記ノードのステータスを、前記ローカルネットワークの1つ以上のサブネット上のピアリーダーの1つ以上のクライアントに送信することとをさらに含み、前記ステータスは、前記1つ以上のクライアントによって前記1つ以上のサブネット内の他のクライアントにブロードキャストされる、請求項3に記載のコンピュータで実行される方法。
  5. 前記ノードを一組のノードに対するピアリーダーとして特定することは、前記コンテンツソースから前記コンテンツストリームを取得することに関連する劣化が検出されたときに、前記ノードのノード特徴の値をリセットすることにより、前記他のノードのうちの1つ以上のノードから前記ピアリーダーを選択することを容易にすることをさらに含む、請求項3に記載のコンピュータで実行される方法。
  6. 前記ノード特徴は、前記ノードにおける前記コンテンツストリームの受信期間を含む、請求項3に記載のコンピュータで実行される方法。
  7. 前記ノードを用いて前記コンテンツストリームを他のノードにブロードキャストするステップは、前記ノードを用いて前記コンテンツストリームを前記他のノードの第1のサブセットに送信することを含み、前記コンテンツストリームは、前記他のノードに、前記他のノードの前記第1のサブセットと1つ以上の他のサブセットとを含む送信チェーンに沿って中継される、請求項1に記載のコンピュータで実行される方法。
  8. 前記1つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む、請求項1に記載のコンピュータで実行される方法。
  9. 前記ノードを用いて前記コンテンツストリームを再生するステップは、前記コンテンツストリームを、前記ノード上のプレーヤーに対し、前記ビットレートを前記プレーヤーに通知せずに提供することを含む、請求項1に記載のコンピュータで実行される方法。
  10. 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためのシステムであって、
    前記分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生するように構成された、前記分散型コンテンツ配信ネットワーク内のノードを備え、前記ノードは、
    前記分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして前記ノードを特定するように構成されたリーダーシップ管理装置と、
    ブロードキャスト装置とを含み、前記ノードが前記ピアリーダーとして特定されたときに、前記ブロードキャスト装置は、
    前記コンテンツストリームをコンテンツソースから取得し、
    前記コンテンツストリームを前記ローカルネットワーク内の他のノードにブロードキャストし、
    前記コンテンツソースから前記コンテンツストリームを取得することに関連する1つ以上の属性に基づいて、前記コンテンツストリームのビットレートを調整するように構成されている、システム。
  11. 前記リーダーシップ管理装置はさらに、前記ピアリーダーからの前記コンテンツストリームの受信者として前記ノードを特定するように構成され、
    前記コンテンツストリームの受信者として前記ノードが特定されたときに、前記ブロードキャスト装置はさらに、前記ピアリーダーからまたは前記ノードがアクセス可能な1つ以上の他のピアリーダーから前記コンテンツストリームを受信するための最も有効なビットレートを選択するように構成される、請求項10に記載のシステム。
  12. 前記ノードを一組のノードに対するピアリーダーとして特定することは、
    前記ローカルネットワーク内の他のノードのうちの1つ以上のノードからノード特徴の1つ以上の値を取得することと、
    前記ノードのノード特徴の値と、前記他のノードのうちの1つ以上のノードからのノード特徴の1つ以上の値とに基づいて、前記ノードを前記ピアリーダーとして選択することとを含む、請求項10に記載のシステム。
  13. 前記ノードを一組のノードに対するピアリーダーとして特定することは、
    前記ピアリーダーとしての前記ノードのステータスをブロードキャストすることと、
    前記ピアリーダーとしての前記ノードのステータスを、前記ローカルネットワークの1つ以上のサブネット上のピアリーダーの1つ以上のクライアントに送信することとをさらに含み、前記ステータスは、前記1つ以上のクライアントによって前記1つ以上のサブネット内の他のクライアントにブロードキャストされる、請求項12に記載のシステム。
  14. 前記ノードを一組のノードに対するピアリーダーとして特定することは、前記コンテンツソースから前記コンテンツストリームを取得することに関連する劣化が検出されたときに、前記ノードのノード特徴の値をリセットすることにより、前記他のノードのうちの1つ以上のノードから前記ピアリーダーを選択することを容易にすることをさらに含む、請求項12に記載のシステム。
  15. 前記1つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む、請求項10に記載のシステム。
  16. 前記ノードを用いて前記コンテンツストリームを再生することは、前記コンテンツストリームを、前記ノード上のプレーヤーに対し、前記ビットレートを前記プレーヤーに通知せずに提供することを含む、請求項10に記載のシステム。
  17. コンピュータによって実行されたときに前記コンピュータに分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするための方法を実行させる命令が格納された非一時的なコンピュータ読取可能な記憶媒体であって、前記方法は、
    前記分散型コンテンツ配信ネットワーク内のノードを用いて、前記分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生するステップと、
    前記分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして前記ノードを特定したときに、前記ノードを用いて、
    前記コンテンツストリームをコンテンツソースから取得し、
    前記コンテンツストリームを前記ローカルネットワーク内の他のノードにブロードキャストし、
    前記コンテンツソースから前記コンテンツストリームを取得することに関連する1つ以上の属性に基づいて、前記コンテンツストリームのビットレートを調整するステップとを含む、非一時的なコンピュータ読取可能な記憶媒体。
  18. 前記方法は、前記ピアリーダーからの前記コンテンツストリームの受信者として前記ノードを特定したときに、前記ノードを用いて、前記ピアリーダーからまたは前記ノードがアクセス可能な1つ以上の他のピアリーダーから前記コンテンツストリームを受信するための最も有効なビットレートを選択するステップをさらに含む、請求項17に記載の非一時的なコンピュータ読取可能な記憶媒体。
  19. 前記ノードを一組のノードに対するピアリーダーとして特定することは、
    前記ノードにおいて、前記他のノードのうちの1つ以上のノードからノード特徴の1つ以上の値を取得することと、
    前記ノードのノード特徴の値と、前記他のノードのうちの1つ以上のノードからのノード特徴の1つ以上の値とに基づいて、前記ノードを前記ピアリーダーとして選択することとを含む、請求項17に記載の非一時的なコンピュータ読取可能な記憶媒体。
  20. 前記1つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む、請求項17に記載の非一時的なコンピュータ読取可能な記憶媒体。
JP2017520976A 2014-10-16 2015-10-05 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート Active JP6523447B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/516,528 US9866602B2 (en) 2014-10-16 2014-10-16 Adaptive bit rates during broadcast transmission in distributed content delivery networks
US14/516,528 2014-10-16
PCT/US2015/054058 WO2016060875A1 (en) 2014-10-16 2015-10-05 Adaptive bit rates during broadcast transmission in distributed content delivery networks

Publications (3)

Publication Number Publication Date
JP2017536751A true JP2017536751A (ja) 2017-12-07
JP2017536751A5 JP2017536751A5 (ja) 2018-09-20
JP6523447B2 JP6523447B2 (ja) 2019-05-29

Family

ID=54337416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017520976A Active JP6523447B2 (ja) 2014-10-16 2015-10-05 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート

Country Status (5)

Country Link
US (1) US9866602B2 (ja)
EP (1) EP3207686B1 (ja)
JP (1) JP6523447B2 (ja)
GB (1) GB2540442B (ja)
WO (1) WO2016060875A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126927B1 (en) 2013-03-15 2018-11-13 Study Social, Inc. Collaborative, social online education and whiteboard techniques
US10367676B1 (en) * 2015-09-28 2019-07-30 Amazon Technologies, Inc. Stable leader selection for distributed services
US20200145484A1 (en) * 2017-02-03 2020-05-07 Hewlett-Packard Development Company, L.P. Sub-groups of remote computing devices with relay devices
US10404943B1 (en) * 2017-11-21 2019-09-03 Study Social, Inc. Bandwidth reduction in video conference group sessions
US10862964B2 (en) 2018-09-18 2020-12-08 At&T Intellectual Property I, L.P. Peer packet transport
CN111432252B (zh) * 2019-01-09 2022-06-17 中央电视台 4k视音频流的安全控制系统、方法及计算机程序产品
US11588876B2 (en) * 2020-06-16 2023-02-21 T-Mobile Usa, Inc. Device-side playback restrictions on high throughput networks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008092235A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP2009165092A (ja) * 2007-12-31 2009-07-23 Ind Technol Res Inst ストリームデータのネットワーク伝送システム及び方法
JP2010245654A (ja) * 2009-04-02 2010-10-28 Sony Corp 配信サーバ、配信サーバにおけるコンテンツ配信方法、マルチキャストサーバおよびマルチキャストサーバにおけるコンテンツ配信方法
US20110258322A1 (en) * 2008-10-02 2011-10-20 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
JP2014512153A (ja) * 2011-04-21 2014-05-19 株式会社 Itec Tokyo 無線lan基盤ピアツーピアアプリケーション間の接続方法、無線lan基盤ピアツーピアアプリケーション間の接続性の維持方法および無線lan基盤ピア端末
WO2014117251A1 (en) * 2013-01-29 2014-08-07 Espial Group Inc. Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602820B2 (en) * 2005-02-01 2009-10-13 Time Warner Cable Inc. Apparatus and methods for multi-stage multiplexing in a network
US7697557B2 (en) * 2007-12-26 2010-04-13 Alcatel Lucent Predictive caching content distribution network
JP5240009B2 (ja) * 2009-03-30 2013-07-17 ブラザー工業株式会社 コンテンツ分散保存システム、Webページ生成方法、サーバ装置、及びサーバ処理プログラム
RU2553671C2 (ru) 2011-02-28 2015-06-20 Битторрент, Инк. Прямая потоковая передача между одноранговыми элементами
US9705948B2 (en) * 2013-05-31 2017-07-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for transmitting content using segment-based and non-segment-based streams

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008092235A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP2009165092A (ja) * 2007-12-31 2009-07-23 Ind Technol Res Inst ストリームデータのネットワーク伝送システム及び方法
US20110258322A1 (en) * 2008-10-02 2011-10-20 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
JP2010245654A (ja) * 2009-04-02 2010-10-28 Sony Corp 配信サーバ、配信サーバにおけるコンテンツ配信方法、マルチキャストサーバおよびマルチキャストサーバにおけるコンテンツ配信方法
JP2014512153A (ja) * 2011-04-21 2014-05-19 株式会社 Itec Tokyo 無線lan基盤ピアツーピアアプリケーション間の接続方法、無線lan基盤ピアツーピアアプリケーション間の接続性の維持方法および無線lan基盤ピア端末
WO2014117251A1 (en) * 2013-01-29 2014-08-07 Espial Group Inc. Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol

Also Published As

Publication number Publication date
EP3207686B1 (en) 2021-05-19
EP3207686A1 (en) 2017-08-23
GB2540442B (en) 2021-02-03
US9866602B2 (en) 2018-01-09
US20160112483A1 (en) 2016-04-21
JP6523447B2 (ja) 2019-05-29
GB201518144D0 (en) 2015-11-25
WO2016060875A1 (en) 2016-04-21
GB2540442A (en) 2017-01-18

Similar Documents

Publication Publication Date Title
JP6523447B2 (ja) 分散型コンテンツ配信ネットワークにおけるブロードキャスト送信中の適応ビットレート
US10277530B2 (en) Allocating portions of a shared network resource based on client device groups
US10791157B2 (en) Multi-tenant over-the-top multicast
TWI580237B (zh) 單一播放適應性位元率串流
US8726327B2 (en) System and method for peer-to-peer live streaming
TWI574531B (zh) 於相同視訊傳送管線內之客戶前提元件中將多重播放適應性位元率及單一播放適應性位元率與累進下載適應性位元率合併之技術
US9712408B2 (en) Bandwidth management in a content distribution network
US8516144B2 (en) Startup bitrate in adaptive bitrate streaming
US9332051B2 (en) Media manifest file generation for adaptive streaming cost management
US8499059B2 (en) System and methods for buffering of real-time data streams
KR101922281B1 (ko) 대역폭을 제어하는 방법 및 이에 대응하는 디바이스
US20030126277A1 (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
US20130114744A1 (en) Segmented parallel encoding with frame-aware, variable-size chunking
CN105379295A (zh) 分段内容的流送
US9800638B2 (en) Downstream bandwidth aware adaptive bit rate selection
KR20150079557A (ko) 클라이언트 장치에 시청각 컨텐츠를 전달하는 시스템 및 방법
US9871716B2 (en) Broadcast readiness testing in distributed content delivery networks
US20170006324A1 (en) Network pvr
US11997366B2 (en) Method and apparatus for processing adaptive multi-view streaming
JP2008293436A (ja) コンテンツ受信制御装置及びコンテンツ受信制御プログラム
Oyekanmi et al. A Survey of Challenges in Streaming Multimedia Systems on the Internet
JP2023004668A (ja) 配信装置、配信方法及び配信プログラム
Episkopos Peer-to-Peer video content delivery optimization service in a distributed network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180810

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190425

R150 Certificate of patent or registration of utility model

Ref document number: 6523447

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250