(58)【調査した分野】(Int.Cl.,DB名)
トラッカーノードに動作可能なようにリンクされた複数のピアノードを含み、ピアノードが、送信するノードおよび受信するノードを含む、ピアツーピアコンテンツ配信システムにおいて、トラッカーノードによって実行される方法であって、
受信ノードから、受信されたコンテンツアイテムに関連する検証トークンの要求を受信するステップであって、受信されたコンテンツアイテムが、アドバタイズされたコンテンツアイテムの要求に応答して送信ノードから受信済みであり、検証トークンの要求が、アドバタイズされたコンテンツアイテムの標識を含む、受信するステップと、
アドバタイズされたコンテンツアイテムの単一のランダムな部分に基づく検証トークンを取得するステップであって、単一のランダムな部分が指定されたビットで始まる、取得するステップと、
受信ノードに、検証トークン、アドバタイズされたコンテンツアイテムの標識、およびトークンが生成されたアドバタイズされたコンテンツアイテムのランダムな部分の標識を含む応答を送信するステップであって、受信ノードが、その後、(a)受信されたコンテンツアイテムの対応するランダムな部分に基づく第2のトークンを生成し、(b)第2のトークンが検証トークンに一致する場合に、受信されたコンテンツアイテムがアドバタイズされたコンテンツアイテムに一致することを確認するように動作可能である、送信するステップとを含む、方法。
トラッカーノードに動作可能なようにリンクされた複数のピアノードを含むピアツーピアコンテンツ配信システムに従って受信ノードで受信されたコンテンツの完全性を確認するための、トラッカーノードの装置であって、
ピアノードインターフェースと、
コンテンツストレージノードインターフェースと、
メモリと、
ピアノードインターフェース、コンテンツストレージノードインターフェース、およびメモリに動作可能なように結合され、
(a)受信ノードから、受信されたコンテンツアイテムに関連する検証トークンの要求を受信することであって、受信されたコンテンツアイテムが、アドバタイズされたコンテンツアイテムの要求に応答して送信ノードから受信済みであり、検証トークンの要求が、アドバタイズされたコンテンツアイテムの標識を含む、受信すること、
(b)アドバタイズされたコンテンツアイテムの単一のランダムな部分に基づく検証トークンを取得することであって、単一のランダムな部分が指定されたビットで始まる、取得すること、ならびに
(c)受信ノードに、検証トークン、アドバタイズされたコンテンツアイテムの標識、およびトークンが生成されたアドバタイズされたコンテンツアイテムのランダムな部分の標識を含む応答を送信することであって、受信ノードが、その後、(1)受信されたコンテンツアイテムの対応するランダムな部分に基づく第2のトークンを生成し、(2)第2のトークンが検証トークンに一致する場合に、受信されたコンテンツアイテムがアドバタイズされたコンテンツアイテムに一致することを確認するように動作可能である、送信することを行うように構成された、少なくとも1つのプロセッサとを含む、装置。
トラッカーノードに動作可能なようにリンクされた複数のピアノードを含み、ピアノードが、送信するノードおよび受信するノードを含む、ピアツーピアコンテンツ配信システムにおいて、受信ノードによって実行される方法であって、
送信ノードから、アドバタイズされたコンテンツアイテムを要求することに応答して受信されるコンテンツアイテムを受信するステップと、
トラッカーノードに、受信されたコンテンツアイテムに関連する検証トークンの要求を送信するステップであって、検証トークンの要求が、アドバタイズされたコンテンツアイテムの標識を含む、送信するステップと、
要求に応答して、アドバタイズされたコンテンツアイテムの単一のランダムな部分に基づく検証トークンとトークンが生成されたアドバタイズされたコンテンツアイテムの単一のランダムな部分の標識を受信するステップであって、単一のランダムな部分が指定されたビットで始まる、受信するステップと、
受信されたコンテンツアイテムの対応するランダムな部分に基づく第2のトークンを生成するステップと、
第2のトークンが検証トークンに一致する場合に、受信されたコンテンツアイテムがアドバタイズされたコンテンツアイテムに一致することを確認するステップとを含む、方法。
トラッカーノードに動作可能なようにリンクされた複数のピアノードを含むピアツーピアコンテンツ配信システムによって受信ノードで受信されたコンテンツの完全性を確認するための、受信ノードの装置であって、
メモリと、
メモリに動作可能なように結合され、
(a)送信ノードから、アドバタイズされたコンテンツアイテムを要求することに応答して受信されるコンテンツアイテムを受信すること、
(b)トラッカーノードに、受信されたコンテンツアイテムに関連する検証トークンの要求を送信することであって、検証トークンの要求が、アドバタイズされたコンテンツアイテムの標識を含む、送信すること、
(c)要求に応答して、アドバタイズされたコンテンツアイテムの単一のランダムな部分に基づく検証トークンとトークンが生成されたアドバタイズされたコンテンツアイテムの単一のランダムな部分の標識を受信することであって、単一のランダムな部分が指定されたビットで始まる、受信すること、
(d)受信されたコンテンツアイテムの対応するランダムな部分に基づく第2のトークンを生成すること、および
(e)第2のトークンが検証トークンに一致する場合に、受信されたコンテンツアイテムがアドバタイズされたコンテンツアイテムに一致することを確認することを行うように構成された少なくとも1つのプロセッサとを含む、装置。
【発明を実施するための形態】
【0014】
参照しやすくするために、詳細な説明は以下のように分割される。第I節は、IMSに基づくピアツーピアコンテンツ配信システムの概要を与える。第II節は、本発明の原理が適用され得るIMSに基づくピアツーピアコンテンツ配信システムの例示的な使用事例を説明する。第III節は、IMSに基づくP2Pコンテンツ配信システムにおいてピアによって供給されるコンテンツの完全性を確認するための解決策を説明する。
【0015】
I.IMSに基づくP2Pコンテンツ配信システムの概要
第3世代パートナーシッププロジェクト(3GPPまたは3GPP2)によって標準化されたインターネットマルチメディアサブシステム(IMS)は、集約されたネットワーク(つまり、モバイルユーザと固定アクセスユーザとを有する)にマルチメディアサービスを提供するための次世代アーキテクチャを全体的に定義する。IMSは、IP(インターネットプロトコル)を使用し、より詳細には、通信プロトコルとしてセッション開始プロトコル(SIP)を使用する。最近、3GPPは、IMSインフラストラクチャを使用してIMSに基づくピアツーピア(P2P)コンテンツ配信サービスを提供する方法の研究を開始した。
【0016】
図1は、P2Pコンテンツ配信サービスを提供するための例示的なIMSに基づく通信ネットワーク100を示す。通信ネットワーク100は、IPデータネットワーク110の1つまたは複数のコンテンツサーバ108にアクセスネットワーク104、106によって相互接続される1つまたは複数のユーザプラットフォーム102を含む。例示的な通信ネットワーク100において、コンテンツサーバ108は、集中型のコンテンツソースサーバ112に対する需要を削減しながらエンドユーザにマルチメディアコンテンツを提供するように、集中型のコンテンツソースサーバ112とは対照的に、IPネットワークの端(つまり、ユーザプラットフォーム102の近く)にコンテンツキャッシュサーバを含む。
【0017】
ユーザプラットフォーム102(「IMS UE」)は、例えば、コンテンツサーバ108にマルチメディアコンテンツを要求し、UEの能力が許容する場合にはマルチメディアコンテンツを記憶し、および/またはマルチメディアコンテンツをその他のユーザプラットフォームに提供するためにユーザによって操作されるラップトップコンピュータ、デスクトップコンピュータ、またはモバイルコンピューティングデバイスを含む。
【0018】
アクセスネットワーク104、106は、概して、ワイヤレスまたは固定アクセスネットワークを含む任意の種類のアクセスネットワークを含む。例示的な通信ネットワーク100において、アクセスネットワーク104、106は、パケット交換/無線アクセスネットワーク(PSコア/RAN)104と、固定ブロードバンド/WLANアクセスネットワーク106とを含む。
【0019】
集中型のコンテンツソースサーバ112は、概して、主コンテンツアイテム(primary content item)を生成、記憶、および配信するように構成される、名目上は主コンテンツプロバイダによって運用され、ユーザプラットフォーム102に対して集中的な位置に置かれる任意のサーバ、プラットフォーム、システム、アプリケーション、または機能を含む。コンテンツプロバイダの例は、例えば、映画またはテレビ制作または配信会社を含み、主コンテンツアイテムは、限定することなく、映画、ライブストリーミングイベントなどを含む可能性がある。通常、主コンテンツアイテムがより小さなセグメントに分割され得る範囲で、集中型のソースサーバは、主コンテンツ(primary content)の全体(すなわち、すべてのセグメント)を保有するか、または主コンテンツの全体(すなわち、すべてのセグメント)にアクセスすることができる。
【0020】
コンテンツキャッシュサーバ108は、概して、その他のコンテンツキャッシュサーバまたはユーザプラットフォームに配信するために集中型のコンテンツソースサーバ112から生じるマルチメディアコンテンツを受信するように構成された、名目的にネットワークの端に(つまり、ユーザプラットフォーム102の近くに)置かれる任意のサーバ、プラットフォーム、システム、アプリケーション、または機能を含む。コンテンツアイテムが部分にセグメント分けされ得る範囲で、個々のコンテンツキャッシュサーバ108は、集中型のコンテンツサーバで保有される主コンテンツアイテムの一部を受信および配信する可能性がある。
【0021】
IPデータネットワーク110は、コンテンツキャッシュサーバ108および集中型のコンテンツソースサーバ112とユーザプラットフォーム102との間、ならびにコンテンツキャッシュサーバ108と、集中型のコンテンツソースサーバ112と、ユーザプラットフォーム102との間のコンテンツ配信をサポートするように構成された任意のパケットに基づくネットワークを含む。例示的な通信ネットワーク100において、IPデータネットワーク110は、IMSに基づくネットワークであり、ネットワークの一部は、IMSコア114と呼ばれる。概して、IMSに基づく通信ネットワーク100内のメッセージトラフィックは、2つの機能プレーン:シグナリングトラフィックのための制御プレーンと、マルチメディアコンテンツなどのベアラトラフィックのためのベアラプレーンとのうちのどちらかに特徴付けられ得る。概念的に、IMSコア114は、制御トラフィックを管理するためのネットワークの部分であり、IPデータネットワーク110は、ベアラトラフィックを伝達するためのネットワーク100の部分である。
【0022】
ユーザプラットフォーム102は、限定することなく、SIP登録、SIPセッション要求、ユーザ認証を遂行し、妥当ならばコンテンツ配信サービスを開始するためにIMSコア114と通信する。UEの能力が許容する範囲で、個々のユーザプラットフォーム102は、その他のユーザプラットフォームからコンテンツを受信し、および/またはその他のユーザプラットフォームにコンテンツを配信するためにピアツーピアモデルに参加することができる。この文脈において、コンテンツを受信および/または配信するために参加するユーザプラットフォームは、「ピア」と呼ばれる。
【0023】
一実施形態において、IMSコア114は、限定することなく、クライアントの登録、コンテンツのインデックス付け、ブラウジング、および検索機能を遂行するための、コンテンツ配信サービスに関連する機能要素を含む。一態様において、IMSコアは、それぞれのプラットフォームによって所持されるコンテンツアイテムまたはセグメントのリストなどを保有することによって、さまざまなユーザプラットフォーム102により所持されるコンテンツアイテムを「追跡する」トラッカーノード116を含む。トラッカーノードは、キャッシュサーバ108によって所持されるコンテンツアイテムも追跡する可能性がある。
【0024】
概して、トラッカーノード116は、ユーザプラットフォーム102によって所持されるコンテンツアイテムを追跡し、本発明の実施形態によれば、ユーザプラットフォーム108によって所持されていると宣言されるコンテンツを確認するように動作可能である、ユーザプラットフォーム102、キャッシュサーバ108、およびコンテンツソースサーバ112に論理的に接続された任意のハードウェアデバイス、サーバ、アプリケーション、または機能として定義される。トラッカーノード116は、単一のデバイスもしくはプラットフォームに存在する可能性があり、または複数のデバイスもしくはプラットフォームの間に分散される可能性がある。トラッカーノードの論理的なハードウェア構成(図示せず)は、プロセッサおよびメモリ、論理的に接続されたノードとの通信を行い、追跡および確認機能を実行するためのピアノードインターフェースおよびコンテンツストレージノードインターフェースを含む。追跡および確認機能は、例えば、限定することなく、メモリに記憶された(例えば、オペレーティングシステムのファームウェア/ソフトウェアおよびアプリケーションのソフトウェアを含むがこれらに限定されない)プログラムコードをプロセッサが実行するによって実行され得る。
【0025】
II.IMSに基づくP2Pコンテンツ配信システムの例示的な使用事例
A.使用事例1:複数のオンラインユーザのためのライブストリーミングサービス
図2は、複数のオンラインユーザへのコンテンツのライブストリーミングのためのIMSに基づくP2Pコンテンツ配信システム200の使用の図である。便宜的に、
図1と比較して同様である
図2の要素は、同様の参照番号によって特定される。
【0026】
複数のユーザの絵102は、論理的な領域202(「領域1」)内で動作している複数のオンラインユーザ(およびUE)を表す。ユーザの絵102は、4人のIMS加入者、Jessica、Bob、Jason、およびAliceを特定する。領域202は、例えば、IMSサービスプロバイダの地理的領域を含む可能性がある。ユーザ102は、IPデータネットワーク110およびIMSコア114と通信することによってマルチメディアサービスおよびコンテンツにアクセスする。
図1に関連して概説されたように、IPデータネットワークは、マルチメディアコンテンツを配信するためのコンテンツキャッシュサーバ108およびコンテンツソースサーバ112を含み、IMSコア114は、クライアントの登録、コンテンツのインデックス付け、ブラウジング、および検索機能などの機能を実行するための、限定することなくトラッカー116を含むさまざまな機能要素を含む。ベアラトラフィック204は、実線によって表され、制御トラフィック206は、破線によって表される。
【0027】
例示的な使用事例においては、Jessicaが、午後8時に始まるバスケットボールの試合を見たいと望んでおり、自身のIMSストリーミングクライアント(UE)上のプッシュされたアドバタイズメントから、「IMSライブチャネル」が試合を放送することができることを知るものとする。Jessicaは、IMSライブチャネルで試合を見ると決定する。
【0028】
(1)午後8時頃、Jessicaは、自身のIMSストリーミングクライアントを起動し、IMS登録プロセスを開始する。Jessicaが自身の登録を終えた後、IMSストリーミングサービスが、IMSライブ放送チャネルの情報をクライアントに届ける。Jessicaは、IMSライブ放送チャネルのリストから見たいバスケットの試合に関連するIMSライブ放送チャネルを検索および選択し、それによって、バスケットボールの試合を見始めたいことをIMSストリーミングクライアントに示す。
【0029】
(2)Jessicaの要求を受信した後、IMSストリーミングサービスは、何らかの理由(例えば、容量のボトルネック、またはアクセスルータがIPマルチキャスト機能をサポートしない)でIPマルチキャストサービスへのアクセスを提供できず、したがって、少ない遅延でバスケットボールの試合を提供するためにピアツーピアモデルに基づくアプリケーションレベルのマルチキャストに切り替える。マルチキャストピアツーピアサービスは、バスケットボールの試合のチャネルリソースの位置を問い合わせ、リソースの位置のリストをJessicaに送信する。例示を目的として、初めは、コンテンツキャッシュサーバ108のみがバスケットボールの試合をキャッシュ済みであり、したがって、IMSストリーミングサービスは、Jessicaがコンテンツキャッシュサーバ108からバスケットボールの試合をストリーミングし得ることをJessicaに伝える。ストリーミングのバスケットボールの試合のコンテンツは固定長の部分に絶えずセグメント分けされていることに留意されたい。
【0030】
(3)JessicaのUEは、コンテンツキャッシュサーバ108から(例えば、UEのキャッシュメモリに)バスケットボールの試合の1つまたは部分(すなわち、セグメント)をダウンロードし、Jessicaは、バスケットボールの試合を見始める。
【0031】
(4)JessicaのUEは、バスケットボールの試合のどの部分がそのUEのキャッシュされたメモリに現在保有されているかをトラッカー116に周期的にアナウンスする。コンテンツの所持をアナウンスするUEの態様は、以降、コンテンツの「アドバタイズ」と呼ばれる。妥当な場合、コンテンツキャッシュサーバおよび/またはその他のUEも、トラッカー116にコンテンツの所持をアドバタイズし、したがって、トラッカーは、どのリソースがコンテンツのどのセグメントを保有しているかを絶えず(またはほぼ途切ることなく)「追跡する」。Jessicaのコンテンツのアドバタイズメントと同時に、JessicaのUEは、バスケットボールの試合の一部を受信したコンテンツキャッシュサーバおよび/またはその他のピアUEの更新されたリストを受信する。
【0032】
(5)時間が経つにつれて、領域1内のますます多くのユーザが、バスケットボールの試合の視聴キューに加わり、コンテンツキャッシュサーバ108が、過負荷になり始める。例示を目的として、最後のトラッカーの更新(ステップ4)以後、JessicaのUEは、Jason、Alice、およびBobのUEがバスケットボールの試合のいくつかのキャッシュされた部分を有することを知っているものとする。したがって、JessicaのUEは、より効率的なコンテンツ配信のためにJason、Alice、および/またはBobのUEからバスケットボールの試合のいくつかの部分をダウンロードし、コンテンツキャッシュサーバ108の処理負荷を減らすように試みることができる。
【0033】
B.使用事例2:複数のオンラインユーザのためのコンテンツオンデマンドサービス
図3は、複数のオンラインユーザにコンテンツオンデマンドサービスを行うためのIMSに基づくP2Pコンテンツ配信システム300の使用の図である。便宜的に、
図1および
図2と比較して同様である
図3の要素は、同様の参照番号によって特定される。
【0034】
複数のユーザの絵102は、複数の論理的な領域202(示されているように、「領域1」および「領域2」)内で動作している複数のオンラインユーザ(およびUE)を表す。ユーザの絵102は、各領域202内の4人のIMS加入者(領域1では名前がなく、領域2ではJessica、Bob、Jason、およびAliceと名前が付けられている)を特定する。領域202は、例えば、2つの異なるIMSサービスプロバイダの別々の論理的な領域、または単一のサービスプロバイダの別々の地理的な領域を含む可能性がある。ユーザ102は、IPデータネットワーク110およびIMSコア114と通信することによってマルチメディアサービスおよびコンテンツにアクセスする。
図3に示されたように、IPデータネットワークは、マルチメディアコンテンツを配信するための2つのコンテンツキャッシュサーバ108(「コンテンツキャッシュサーバ1」および「コンテンツキャッシュサーバ2」)ならびにコンテンツソースサーバ112を含み、IMSコア114は、クライアントの登録、コンテンツのインデックス付け、ブラウジング、および検索機能などの機能を実行するための、限定することなくトラッカー116を含むさまざまな機能要素を含む。ベアラトラフィック304は、実線によって表され、制御トラフィック306は、破線によって表される。
【0035】
例示的な使用事例においては、Jessicaが領域2内のIMS加入者であり、自身のUE102で(例えば、「IMSオンライン映画館」からの)オンデマンドの映画を見たいと望んでいるものとする。
【0036】
(1)Jessicaは、自身のIMS P2Pアプリケーションを起動し、IMS登録プロセスを開始する。Jessicaが自身の登録を終えた後、IMS P2Pアプリケーションは、クライアントに番組情報(例えば、オンデマンド番組のリスト/メニュー)を届ける。Jessicaは、番組リストから映画を探し、選択して、その映画を見始めたいことをP2Pアプリケーションに示す。
【0037】
(2)Jessicaの要求を受信した後、P2Pアプリケーションは、選択された映画の映画ストレージリソースの位置を問い合わせ、リソースの位置のリストをJessicaに送り返す。例示を目的として、選択された映画が10個の部分(例えば、部分1、部分2など)にセグメント分けされ、コンテンツソースサーバ112が10個の部分のすべてを有し、コンテンツキャッシュサーバ108が10個の部分の初めの部分(例えば、部分1および部分2)を有するものとする。Jessicaの要求に応答して、P2Pアプリケーションは、Jessicaがコンテンツキャッシュサーバ2から映画をダウンロードし得ることをJessicaに伝えるものとする。
【0038】
(3)JessicaのUEは、映画のどの部分がコンテンツキャッシュサーバ2からダウンロード可能であるかを判定するためにコンテンツキャッシュサーバ2に問い合わせる。コンテンツキャッシュサーバ2は、部分1および2がダウンロード可能であることをJessicaのUEに知らせる。
【0039】
(4)JessicaのUEは、コンテンツキャッシュサーバ2から(例えば、UEのキャッシュメモリに)部分1および2をダウンロードし、Jessicaは、映画を見始める。
【0040】
(5)JessicaのUEは、映画のどの部分がそのUEのキャッシュされたメモリに現在保有されているかをトラッカー116に周期的にアナウンス(またはアドバタイズ)し、映画のその他の部分がどこに配信されたか(例えば、コンテンツキャッシュサーバまたはピアUE)を特定する更新された情報をトラッカー116から受信する。Jessicaが部分1および2(すなわち、コンテンツキャッシュサーバ2から取得された)を見終わるとき、JessicaのUEは、コンテンツソースサーバ112、またはトラッカー116によって示された場所から部分の残りを取得し得る。
【0041】
(6)時間が経つにつれて、Jessicaの周りの(つまり、領域2内の)ますます多くのユーザが、映画の視聴キューに加わり、コンテンツキャッシュサーバ2から部分1および2を受信し、コンテンツソースサーバ112からさらなる部分を受信し、少なくとも最初は、コンテンツソースサーバを混雑させる。幸いなことに、ステップ(5)から、ユーザは、トラッカー116によって示される映画の代替的なストレージリソースを周期的に知ることができ、コンテンツソースサーバ112の処理負荷を軽減するためにそれらのリソースにアクセスすることができる。例示を目的として、最後のトラッカーの更新以後、Jessicaの領域内のユーザは、映画のさらなる部分が今やコンテンツキャッシュサーバ1から取得され得ることを知っており、映画の部分をコンテンツキャッシュサーバ1からダウンロードし始めるものとする。
【0042】
(7)さらに時間が経ち、領域1および2内の一層多くのユーザが映画の視聴キューに加わり、今や、コンテンツキャッシュサーバ1および2が過負荷になり始めている。ここで、最後のトラッカーの更新以後、JessicaのUEは、映画のさらなる部分がJessicaの3つの近隣のUE、Jason、Bob、およびAliceから取得され得ることを知っており、したがって、JessicaのUEは、近隣のUEのうちの1つまたは複数から映画の部分をダウンロードしようとするものとする。
【0043】
III.問題の提示および解決策
上記の使用事例の説明から、P2Pコンテンツ配信サービスの重要な態様が、UEおよび/または妥当な場合にはコンテンツキャッシュサーバから、任意の所与の時点でコンテンツを所持しているUEおよび/またはコンテンツキャッシュサーバのリストを保有するトラッカーへのコンテンツ所持のアドバタイズメントであることは明らかである。1つの大きなセキュリティ上の脅威は、トラッカーにより誤った情報が保有されることと、クライアントピア側でのリソースおよび時間の無駄とにつながる可能性がある、(例えば、アドバタイズされるコンテンツを所持していない悪意のあるピアによる)コンテンツのあり得る誤ったアドバタイズメントに存する。この脅威は、P2Pコンテンツ配信システムにおけるアナウンスするピアによるコンテンツ所持の確認(つまり、アドバタイズされたコンテンツ所持の真または偽の判定)を対象とする関連する米国特許出願第XXXX号によって対処される。
【0044】
さらに、コンテンツの正常なアドバタイズメント(アナウンスするピアがアドバタイズされたコンテンツアイテムを所持していると確認された)に続き、アナウンスするピアが、受信ピアと、アドバタイズされたまたは要求されたコンテンツとどこかが異なるコンテンツを悪意を持って(またはおそらく誤って)共有する可能性があるという脅威が存在する。例えば、アドバタイズするピアは、何らかの方法で改ざんされたか、もしくは悪意のあるソフトウェアを含むコンテンツ、または他の点はおかしくないが、受信ピアによって要求されていないコンテンツを共有する可能性がある。この場合、受信ピアは、トラッカーから正しいピアのリストを取得するが、要求されたコンテンツを取得しない。やはり、これは、ピアUEに対する潜在的な損害は言うまでもなく、クライアントピア側のリソースおよび時間の無駄につながる可能性がある。この脅威に対処するために、本発明の実施形態は、P2Pコンテンツ配信システムにおけるピアにより供給されるコンテンツの完全性の確認を対象とする。
【0045】
ここで
図4を参照すると、本発明の実施形態による、ピアによって供給されるコンテンツの完全性の確認のためのメッセージシーケンスが示されている。
図4のステップは、妥当な場合、
図1、
図2、または
図3に示されたようなP2Pコンテンツ配信システムの送信ピア102、受信ピア102、トラッカー116、およびコンテンツソースサーバ112によって実行される。
【0046】
ブロック402において、送信ピア(例えば、「Jason」)がコンテンツの正常なアナウンスメント(announcement)を行った、つまり、いかなるコンテンツを送信するよりも前に、JasonのUEが、コンテンツアイテムの所持をアドバタイズし、アドバタイズされたコンテンツアイテムを所持しているとトラッカーによって確認されたものとする。例えば、
図3に関連して説明された使用事例を参照すると、トラッカーは、JasonのUEからのアドバタイズメントの後、JasonがJessicaの選択された映画の部分3を所持していることを確かめる可能性がある。正常なアナウンスメントと同時に、トラッカー116は、アナウンスするピアがアドバタイズされたコンテンツを所持していると確かめられていることを示すためにそのトラッカー116のピアのリストを更新する。ブロック404において、受信ピア(例えば、「Jessica」)が、どのコンテンツアイテムが送信ピアによって所持されているかを知るためにピアのリストを取得する。
【0047】
ステップ406において、受信ピアが、送信ピアによって所持されるコンテンツの1つのアイテム(または複数のアイテム)を要求する。要求は、コンテンツの「ContentID」またはその他の標識を含む。要求に応じて、ステップ408において、送信ピアが、受信ピアに1つのコンテンツアイテム(または複数のコンテンツアイテム)を送信し、(1つまたは複数の)コンテンツアイテムが、受信ピアによって受信される。上述のように、ピアによって供給されるコンテンツは、アドバタイズされたまたは要求されたコンテンツと少なくとも部分的に異なる可能性があることがあり得る。ステップ410において、ピアによって供給されるコンテンツの完全性を確認するために、受信ピアが、トラッカーに検証トークンを要求する。要求は、要求されたコンテンツの「ContentID」またはその他の標識を含む。例えば、
図3に関連して説明された使用事例を参照して、JessicaがJasonのUEに選択された映画の部分3を要求するが、JessicaのUEが、部分3の改ざんされたバージョンまたは完全に異なるコンテンツのセグメントを受信すると想定する。JessicaのUEは、受信されたコンテンツが要求されたコンテンツと異なるかどうかを突き止めるのに役立つように、(例えば、「Transformer」の部分3に関連する)検証トークンをトラッカーに要求することができる。
【0048】
一実施形態においては、トラッカー自体がトークンを生成し、そうするために、トラッカーは、アドバタイズされたコンテンツ自体を所持しなければならないか、またはコンテンツソースサーバ112からコンテンツを取得する可能性がある。したがって、
図4のメッセージシーケンスにおいては、トラッカー自体は、アドバタイズされたコンテンツを所持しておらず、ステップ412、414において、アドバタイズされたコンテンツをコンテンツソースサーバ112に要求し、取得するものとする。
【0049】
アドバタイズされたコンテンツが取得されると、トラッカーは、ピアによって供給されるコンテンツの完全性を確認するために受信ピアによって使用され得るトークンを生成する。トークンは、例えば、アドバタイズされたコンテンツ(例えば、コンテンツ全体)のハッシュであるか、または好ましい実施形態においては、アドバタイズされたコンテンツのランダムな部分のハッシュである可能性がある。よく知られているように、ハッシュは、データの任意のブロックを入力に取り、ハッシュ値を出力として生成する暗号化関数であり、2つの入力は、同一でない限り同じハッシュ値を生じない。
【0050】
コンテンツのランダムな部分に基づくトークンは、コンテンツの名目的な所持者が信頼できるコンテンツを有する場合にのみ正しく答えられ得るコンテンツ自体についてのランダムな質問を生成することと同じであると考えられ得る。例えば、本の類似性を使用して、チャレンジャー(challenger)は、特定の本の名目的な所持者に、本の72ページの20番目の単語の7番目の文字を尋ねることができる。本を実際に有していないか、本の異なるバージョンを有していれば、名目的な所持者は、質問に答えることができない。デジタルマルチメディアコンテンツの場合、チャレンジャーは、信頼できるコンテンツの特定のブロックの所持を確かめるために名目的な所持者に尋ねることができ、ブロックの始まりおよびブロックの長さは、ランダムに選択される。答えの的確な表現は、このブロックのハッシュであり、質問のランダム性を考慮すると、ハッシュは安全である必要がない。
【0051】
ステップ416において、好ましい実施形態によれば、トラッカーが、アドバタイズされたコンテンツのブロック(例えば、指定されたビットで始まり、指定された長さを有するブロック)をランダムに選択し、信頼できるアドバタイズされたコンテンツの選択されたブロックに基づくトークンを生成する。一実施形態において、トークンは、ランダムに選択されたブロックのハッシュを実行することによって導出される。上述のように、ブロックのランダム性を考慮すると、ハッシュは安全である必要がない。例えば、Jessicaが選択された映画の部分3に対応する検証トークンを要求した場合、(部分3の信頼できるコピーを取得済みの)トラッカーが、指定されたビットで始まり、指定された長さを有するランダムなブロックを部分3から選択し、選択されたブロックのハッシュを含むトークンを生成する。ステップ418において、トラッカーが、トークンを含む応答を受信ピアに送信する。一実施形態において、応答は、要求されたコンテンツの「ContentID」またはその他の標識と、(例えば、開始ビット番号およびブロックの長さを示すことによる)ランダムなブロックの標識と、トークンが導出されたハッシュ関数とを含む。
【0052】
代替的に、ステップ416において、セキュリティの追加のレイヤを実現し、反射攻撃を防止するために、トラッカーが、ランダムなシード値を生成し、ランダムに選択されたブロックとランダムなトークンとの組み合わせに基づくトークンを生成する可能性がある。例えば、限定することなく、トラッカーは、ランダムなシード値と組み合わされた、ランダムに選択されたブロックのハッシュを実行することによってトークンを生成する可能性がある。妥当な場合、ステップ418において、トラッカーが、受信ピアへの応答にランダムなシード値を含める。
【0053】
ステップ420において、受信ピアが、例えば、トラッカーから受信された(つまり、信頼できるコピーから得られたランダムなサンプルに基づく)トークンを、受信ピア自体によって対応する方法で生成された(つまり、ピアによって受信されたコンテンツから得られた対応するランダムなサンプルと、妥当な場合にはランダムなシード値とに基づく)トークンと比較することによって、送信ピアから受信されたコンテンツの完全性を確認する。トークンが同じである場合、受信ピアは、ピアによって受信されたコンテンツの完全性を確かめられ、ステップ422において、送信ピアに正常な確認について知らせる。しかし、トークンが同じでない場合、確認は失敗し、受信ピアがコンテンツを破棄する。任意で、受信ピアは、失敗した確認について送信ピアおよびトラッカーに知らせる可能性がある。
【0054】
図5は、本発明の代替的な実施形態による、ピアによって供給されるコンテンツの完全性の確認のためのメッセージシーケンスを示す。
図5のステップは、妥当な場合、
図1、
図2、または
図3に示されたようなP2Pコンテンツ配信システムの送信ピア102、受信ピア102、トラッカー116、およびコンテンツソースサーバ112によって実行される。
【0055】
ブロック502において、送信ピア(例えば、「Jason」)はコンテンツの正常なアナウンスメントを行った、つまり、いかなるコンテンツを送信するよりも前に、JasonのUEは、コンテンツアイテムの所持をアドバタイズし、アドバタイズされたコンテンツアイテムを所持しているとトラッカーによって確認されたものとする。正常なアナウンスメントと同時に、トラッカー116は、アナウンスするピアがアドバタイズされたコンテンツを所持していると確かめられていることを示すためにそのトラッカー116のピアのリストを更新する。ブロック504において、受信ピア(例えば、「Jessica」)が、どのコンテンツアイテムが送信ピアによって所持されているかを知るためにピアのリストを取得する。
【0056】
ステップ506において、受信ピアが、送信ピアによって所持されるコンテンツの1つのアイテム(または複数のアイテム)を要求する。要求は、コンテンツの「ContentID」またはその他の標識を含む。要求に応じて、ステップ508において、送信ピアが、受信ピアに1つのコンテンツアイテム(または複数のコンテンツアイテム)を送信し、(1つまたは複数の)コンテンツアイテムが、受信ピアによって受信される。上述のように、ピアによって供給されるコンテンツは、アドバタイズされたまたは要求されたコンテンツと少なくとも部分的に異なる可能性があることがあり得る。ステップ510において、ピアによって供給されるコンテンツの完全性を確認するために、受信ピアが、トラッカーに検証トークンを要求する。要求は、要求されたコンテンツの「ContentID」またはその他の標識を含む。例えば、
図3に関連して説明された使用事例を参照して、JessicaがJasonのUEに選択された映画の部分3を要求するが、JessicaのUEが、部分3の改ざんされたバージョンまたは完全に異なるコンテンツのセグメントを受信すると想定する。JessicaのUEは、受信されたコンテンツが要求されたアドバタイズされたコンテンツと異なるかどうかを突き止めるのに役立つように、(例えば、部分3の信頼できるコピーに関連する)検証トークンをトラッカーに要求すればよい。
【0057】
図5の実施形態において、トラッカーは、アドバタイズされたコンテンツを所持または所持せず、トークンも生成しない。そうではなく、トラッカーは、ステップ512において、信頼できるアドバタイズされたコンテンツを所持していることをそのトラッカーが知っているコンテンツソースサーバ112に検証トークンの要求を転送する。トークンは、例えば、アドバタイズされたコンテンツ(例えば、コンテンツ全体)のハッシュであるか、または好ましい実施形態においては、アドバタイズされたコンテンツのランダムな部分のハッシュである可能性がある。
【0058】
ステップ514において、好ましい実施形態によれば、コンテンツソースサーバが、アドバタイズされたコンテンツのブロック(例えば、指定されたビットで始まり、指定された長さを有するブロック)をランダムに選択し、信頼できるアドバタイズされたコンテンツの選択されたブロックに基づくトークンを生成する。一実施形態において、トークンは、ランダムに選択されたブロックのハッシュを実行することによって導出される。例えば、Jessicaが選択された映画の部分3に対応する検証トークンを要求し、この要求がトラッカーからコンテンツソースサーバに転送される場合、(部分3の信頼できるコピーを所持する)コンテンツソースサーバが、指定されたビットで始まり、指定された長さを有するランダムなブロックを部分3から選択し、選択されたブロックのハッシュを含むトークンを生成する。ステップ516において、コンテンツソースサーバが、トークンを含む応答をトラッカーに送信し、ステップ518において、トラッカーが、受信ピアに応答を転送する。一実施形態において、応答は、アドバタイズされたコンテンツの「ContentID」またはその他の標識と、コンテンツのランダムなブロックの標識と、トークンが導出されたハッシュ関数とを含む。
【0059】
代替的に、ステップ514において、セキュリティの追加のレイヤを実現し、反射攻撃を防止するために、コンテンツソースサーバが、ランダムなシード値を生成し、ランダムに選択されたブロックとランダムなトークンとの組み合わせに基づくトークンを生成する可能性がある。例えば、限定することなく、コンテンツソースサーバは、ランダムなシード値と組み合わされた、ランダムに選択されたブロックのハッシュを実行することによってトークンを生成する可能性がある。妥当な場合、ステップ516において、コンテンツソースサーバが、トラッカーへの応答にランダムなシード値を含め、このランダムなシード値は、ステップ518において、トークンと一緒に受信ピアに転送される。
【0060】
ステップ520において、受信ピアが、例えば、コンテンツソースサーバによって生成され、トラッカーから転送された(つまり、信頼できるコピーから得られたランダムなサンプルに基づく)トークンを、受信ピア自体によって対応する方法で生成された(つまり、ピアによって受信されたコンテンツから得られた対応するランダムなサンプルに基づく)トークンと比較することによって、送信ピアから受信されたコンテンツの完全性を確認する。トークンが同じである場合、受信ピアは、ピアによって受信されたコンテンツの完全性を確かめられ、ステップ522において、送信ピアに正常な確認を知らせる。しかし、トークンが同じでない場合、確認は失敗し、受信ピアがコンテンツを破棄する。任意で、受信ピアは、失敗した確認について送信ピアおよびトラッカーに知らせる可能性がある。
【0061】
図1−5および上述の説明は、本発明を実施し、使用する方法を当業者に教示するために本発明の特定の例示的な実施形態を示した。説明された実施形態はすべての点において例示的とだけ考えられるべきであり、限定的と考えられるべきではない。本発明は、添付の特許請求の範囲によって示される本発明の範囲を逸脱することなくその他の特定の形態で具現化され得る。特許請求の範囲と均等な意味および範囲内に入るすべての変更は、特許請求の範囲に包含されるべきである。
【0062】
例えば、実施形態は、IMSに基づくネットワークトポロジーに関連して本明細書において説明されている。しかし、本発明の原理は、IMSに基づくネットワークに適用可能であるが、そのように限定されるように意図されていないことを理解されたい。それどころか、本発明の実施形態は、マルチメディアコンテンツ配信を容易にするためにP2P技術を利用する任意の種類の通信ネットワークまたはハイブリッドネットワークに広く適用可能である。