(57)【要約】      （修正有）【課題】ホスティングサービスに対してデータの信頼性のあるパイプラインフローを送信するためにコンテンツ中心ネットワーク（ＣＣＮ）を介してホスティングサービスと信頼性のあるコンテンツ交換（ＲＣＸ）セッションを確立する。【解決手段】クライアント装置は、ホスティングサービスに対して認証情報を提供しＲＣＸ制御チャネルを初期化する。ホスティングサービスに対してコンテンツを転送するために交換セッションを確立する交換初期化要求を送信するために制御チャネルを使用する。交換初期化要求は、選択されたコンテンツに関連付けられた集合名及び交換セッションについての交換識別子（ＸＩＤ）を含む。そして、クライアント装置は、交換セッションを介して選択されたコンテンツのセグメントを要求するインタレストを受信することができ、そのペイロードが要求されたコンテンツのセグメントを含むコンテンツオブジェクトを返送することができる。【選択図】なし【特許請求の範囲】
【請求項１】
コンテンツ中心ネットワーク（ＣＣＮ）を介してコンテンツ交換セッションを確立するためのコンピュータ実装方法において、
コンピューティングデバイスにより、ホスティングサービスとの制御チャネルを初期化することと、
前記ホスティングサービスに対して送信するためにコンテンツを選択することと、
前記選択されたコンテンツについての交換セッションについての交換識別子（ＸＩＤ）を生成することと、
前記制御チャネルを介して、前記ホスティングサービスに対して交換初期化要求を送信することであり、前記交換初期化要求が前記交換セッションについての前記選択されたコンテンツ及び前記ＸＩＤに関連付けられた集合名を含む、送信することと、
前記選択されたコンテンツのセグメントを要求するインタレストの受信に応答して、前記交換セッションを介して、そのペイロードが前記要求されたコンテンツのセグメントを含むコンテンツオブジェクトを返送することとを備える、方法。
【請求項２】
前記ホスティングサービスとの制御チャネルを初期化することが、前記ホスティングサービスに対して認証情報を提供することを含む、請求項１に記載の方法。
【請求項３】
前記コンテンツが順次付番されたデータチャンクの集合を含み、前記集合の名称が前記コンテンツについてのチャンク名を含む、請求項１に記載の方法。
【請求項４】
前記集合の名称が前記コンテンツについてのマニフェスト名を含み、前記マニフェスト名が前記コンテンツについてのマニフェストにおいて名称付けられたオブジェクトに基づいて導出される、請求項１に記載の方法。
【請求項５】
前記ホスティングサービスに対して前記交換初期化要求を送信することが、その名称が前記ホスティングサービスに関連付けられた第１の名称接頭辞、前記制御チャネルについてのセッション識別子（ＳＩＤ）、前記選択されたコンテンツに関連付けられた名称及び前記ＸＩＤを備える第２のインタレストメッセージを送信することを含む、請求項１に記載の方法。
【請求項６】
前記ホスティングサービスに対して前記交換初期化要求を送信することに応答して、前記方法が、さらに、前記制御チャネルについての前記ＸＩＤ及びセッション識別子（ＳＩＤ）を含む肯定応答（ＡＣＫ）メッセージを受信することを備える、請求項１に記載の方法。
【請求項７】
前記第２のインタレストメッセージの名称が、前記制御チャネルに関連付けられたセッション鍵を使用して暗号化された前記コンテンツの名称及び前記ＸＩＤを含む、請求項６に記載の方法。
【請求項８】
さらに、
前記ホスティングサービスに対して、前記交換セッションを識別する前記ＸＩＤを含むステータス要求メッセージを送信することと、
前記交換セッションを介して受信した順序付けられたコンテンツオブジェクトのセットを肯定応答するために累積ＡＣＫ名（ＣＡＮ）を含むＡＣＫメッセージを受信することを備え、前記ＣＡＮが前記順序付けられたコンテンツオブジェクトのセットにおける最新のコンテンツオブジェクトについての名称を含み、その名称が最新のコンテンツオブジェクトの名称に一致して含む前記順序付けられたコンテンツオブジェクトのセットを肯定応答する、請求項１に記載の方法。
【請求項９】
コンピュータによって実行されたとき、コンテンツ中心ネットワーク（ＣＣＮ）を介してコンテンツ交換セッションを確立するための方法を前記コンピュータに実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
ホスティングサービスとの制御チャネルを初期化することと、
前記ホスティングサービスに対して送信するためにコンテンツを選択することと、
前記選択されたコンテンツについての交換セッションについての交換識別子（ＸＩＤ）を生成することと、
前記制御チャネルを介して、前記ホスティングサービスに対して交換初期化要求を送信することであり、前記交換初期化要求が前記交換セッションについてのＳＩＤ、前記選択されたコンテンツ及び前記ＸＩＤに関連付けられた集合名を含む、送信することと、
前記選択されたコンテンツのセグメントを要求するインタレストの受信に応答して、前記交換セッションを介して、そのペイロードが前記要求されたコンテンツのセグメントを含むコンテンツオブジェクトを返送することとを備える、持続性コンピュータ読み取り可能な記憶媒体。
【請求項１０】
ホスティングサービスについてのコンピューティングシステムにおいて、
１つ以上のプロセッサと、
メモリと、
前記１つ以上のプロセッサに結合され、前記１つ以上のプロセッサによって実行されたとき、方法を前記コンピューティングシステムに実行させる記憶された命令を記憶するコンピュータ読み取り可能な媒体とを備え、前記方法が、
クライアント装置に対して制御チャネルについてのセッション識別子（ＳＩＤ）を送信することを含む、前記クライアント装置との前記制御チャネルを初期化することと、
前記制御チャネルを介して、前記クライアント装置から交換初期化要求を受信することであり、前記交換初期化要求が交換セッションについての交換識別子（ＸＩＤ）を含み、前記クライアント装置から受信するためにコンテンツに関連付けられた集合の名称を含む、受信することと、
前記交換セッションを介して、前記コンテンツのセグメントを要求するインタレストを送信することと、
そのペイロードが前記要求されたコンテンツのセグメントを含むコンテンツオブジェクトを受信することに応答して、前記コンテンツに関連付けて前記コンテンツオブジェクトを記憶することとを備える、コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンテンツ中心ネットワーク（ＣＣＮ）に関する。より具体的には、本開示は、ＣＣＮ上での信頼性のあるコンテンツ交換のためにＣＣＮノード間においてチャネルを確立することに関する。
【背景技術】
【０００２】
モバイルコンピューティング及び携帯電話ネットワークの普及は、これまで以上にディジタルコンテンツをよりモバイルにしている。人々は、コンテンツを生成するために、コンテンツを消費するために、又は、コンテンツを生成若しくは消費する他のコンピューティングデバイスに対するインターネットアクセスを提供するためにさえも、自己のスマートフォンを使用することができる。多くの場合、装置のネットワークの場所は、人がモバイルコンピューティングデバイスを新たな物理的場所に対して持ち込むのにともない変更可能である。これは、装置の新たなネットワークの場所が知られていないとき、従来のコンピュータネットワーク（例えば、インターネット）のもとでこの装置と通信するのを困難とすることがある。
【０００３】
この問題を解決するために、コンテンツの物理的又はネットワークの場所にかかわらず、その名称に基づいてディジタルコンテンツにアクセスするのを容易とするためにコンテンツ中心ネットワーク（ＣＣＮ）アーキテクチャが設計されている。典型的なＣＣＮアーキテクチャは、インタレスト及びコンテンツオブジェクトという２つの種類のパケットを転送する。インタレストは、名称付きデータの一部についての名称を含む（及び名称付きデータの一部に対する要求として機能する）。一方、コンテンツオブジェクトは、通常、ペイロードを含み、一致する名称を有するインタレストが移動したネットワーク経路に沿って転送され、インタレストパケットによってとられる逆方向においてこの経路を移動する。
【０００４】
一部のコンテンツ制作者は、管理者装置がＣＣＮ上のコンテンツ制作者に代わってコンテンツをホストするのを可能とする。この管理者は、通常、管理者がコンテンツについての転送経路に沿っている場合に又は明示的にコンテンツ制作者からのコンテンツを要求することによってコンテンツを受信する。しかしながら、管理者がコンテンツのチャンクについてのインタレストを広めることによってＣＣＮを介してコンテンツ制作者からデータストリームを取得する場合、管理者がコンテンツ制作者以外の装置からコンテンツを受信すること又はコンテンツの一部のチャンクを受信しないことが可能である。例えば、ＣＣＮアーキテクチャは、インタレストを満たすコンテンツオブジェクトを生成することができる場合に任意のＣＣＮノードが通常のインタレストに対して応答するのを可能とすることから、悪意のあるエンティティがホスティングサービスに対するデータストリームに悪意のある又は誤ったデータを注入することが可能である。また、データのチャンクがライブデータストリーム（例えば、ストリーミングビデオ）に対応する場合、チャンクがネットワークエラーによって管理者に到達しなかった場合であっても、コンテンツ製作者が管理者に送信されたデータのチャンクを削除することが可能である。
【発明の概要】
【課題を解決するための手段】
【０００５】
１つの実施形態は、コンテンツ中心ネットワーク（ＣＣＮ）を介したホスティングサービスとのコンテンツ交換セッションを確立することができるクライアント装置を提供する。動作中、クライアント装置は、ホスティングサービスとの制御チャネルを初期化することができ、ホスティングサービスとの１つ以上の交換セッションを確立するためにこの制御チャネルを使用する。クライアント装置がホスティングサービスに対してコンテンツを送信する必要がある場合、クライアント装置は、ホスティングサービスに対してコンテンツを転送するための交換セッションを確立することができる。例えば、クライアント装置は、ホスティングサービスに対してコンテンツを送信するために使用される新たな交換セッションについての交換識別子（ＸＩＤ）を生成することができ、制御チャネルを介してホスティングサービスに対して交換初期化要求を送信する。交換初期化要求は、コンテンツと交換セッションについてのＸＩＤに関連付けられている集合名を含む。そして、交換セッションを介してコンテンツのセグメントを要求するインタレストを受信することに応答して、クライアントは、そのペイロードがコンテンツの要求されたセグメントを含むコンテンツオブジェクトを返送することができる。
【０００６】
コンテンツ中心ネットワーク（ＣＣＮ）において、コンテンツの各部は、個別に名称付けられ、データの各部は、同じデータの他のバージョン又は他のソースからのデータなどの任意の他のデータ部分からデータを区別する固有の名称に結合される。この固有の名称は、ネットワーク装置が固有の名称を示す要求又はインタレストを広めることによってデータを要求するのを可能とし、データの記憶場所、ネットワーク場所、アプリケーション及び伝送手段から独立したデータを取得することができる。以下の用語は、ＣＣＮアーキテクチャの要素について説明する。
【０００７】
コンテンツオブジェクト：固有の名称に結合されている名称付きデータの単一部分である。コンテンツオブジェクトは、コンテンツオブジェクトがコンピューティングデバイス内又は異なるコンピューティングデバイス間を移動することができるが変化しないことを意味する、「永続的」である。コンテンツオブジェクトの任意の要素が変化した場合、変更を行ったエンティティは、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たな固有の名称に新たなコンテンツオブジェクトを結合する。
【０００８】
固有の名称：ＣＣＮ内の名称は、通常、場所とは無関係であり、コンテンツオブジェクトを固有に識別する。データ転送装置は、コンテンツオブジェクトについてのネットワークアドレス又は物理的場所にかかわらず、コンテンツオブジェクトを生成又は記憶するネットワークノードに向けてインタレストパケットを転送するために名称又は名称接頭辞を使用することができる。いくつかの実施形態において、名称は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）とすることができる。ＨＳＶＬＩは、様々な方法で構築可能ないくつかの階層的な要素に分割されることができる。例えば、個々の名称要素ｐａｒｃ、ｈｏｍｅ、ｃｃｎ及びｔｅｓｔ．ｔｘｔは、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成するために左指向の接頭辞が主要である方法で構築可能である。それゆえに、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」又は「接頭辞」とすることができる。共同文書などの異なるバージョンのコンテンツアイテムを区別するためにさらなる要素が使用可能である。
【０００９】
いくつかの実施形態において、名称は、コンテンツオブジェクトのデータ（例えば、チェックサム値）から及び／又はコンテンツオブジェクトの名称要素から導出されたハッシュ値などの識別子を含むことができる。ハッシュベースの名称記述は、米国特許出願第１３／８４７，８１４号（代理人整理番号ＰＡＲＣ−２０１２０５３７−ＵＳ−ＮＰ、２０１３年３月２０日に提出された発明者Ｉｇｎａｃｉｏ  Ｓｏｌｉｓによる名称「ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ」）に記載されている。名称はまた、フラットラベルとすることができる。以下では、「名称」は、階層名称若しくは名称接頭辞、フラット名称、固定長名称、任意長名称又はラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名称データネットワークにおけるデータの一部用の任意の名称を指すのに使用される。
【００１０】
インタレスト：データの一部についての要求を示し且つデータの一部についての名称（又は名称接頭辞）を含むパケットである。データ消費者は、ＣＣＮルータが、要求やインタレストを満たすために要求されたデータを提供することができる記憶装置（例えば、キャッシュサーバ）又はデータ制作者に向けて伝播することができる情報中心ネットワークにわたって要求又はインタレストを広めることができる。
【００１１】
ＣＣＮアーキテクチャに基づいて説明されるが、本願明細書に開示された方法はまた、他の情報中心ネットワーク（ＩＣＮ）アーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの記述は、米国特許出願第１２／３３８，１７５号（代理人整理番号ＰＡＲＣ−２００８０６２６−ＵＳ−ＮＰ、２００８年１２月１８日に提出された発明者Ｖａｎ  Ｌ．Ｊａｃｏｂｓｏｎ及びＤｉａｎａ  Ｋ．Ｓｍｅｔｔｅｒｓによる名称「ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ」）に記載されている。
【００１２】
いくつかの実施形態において、コンテンツは、順次付番されたデータチャンクの集合を含み、集合名は、コンテンツについてのチャンク名を含む。
【００１３】
いくつかの実施形態において、クライアント装置は、ホスティングサービスに対して認証情報を提供する一方で、ホスティングサービスとの制御チャネルを初期化する。
【００１４】
いくつかの実施形態において、集合名は、コンテンツについてのマニフェスト名を含み、マニフェスト名は、コンテンツについてのマニフェストにおいて名称付けられたオブジェクトに基づいて導出される。
【００１５】
いくつかの実施形態において、ホスティングサービスに対して交換初期化要求を送信するとき、クライアント装置は、その名称が、ホスティングサービスの第１の名称接頭辞、制御チャネルについてのセッション識別子（ＳＩＤ）、コンテンツに関連する名称及びＸＩＤを備える第２のインタレストメッセージを送信する。
【００１６】
いくつかの実施形態において、ホスティングサービスに対して交換初期化要求を送信するのに応答して、クライアント装置は、制御チャネルについてのＸＩＤ及びセッション識別子（ＳＩＤ）を含む肯定応答（ＡＣＫ）メッセージを受信することができる。
【００１７】
これらの実施形態に対するいくつかの変形例おいて、第２のインタレストメッセージ名は、コンテンツ名と、制御チャネルに関連付けられたセッション鍵を使用して暗号化されたＸＩＤとを含む。
【００１８】
いくつかの実施形態において、クライアント装置は、ホスティングサービスに対して、交換セッションを識別するＸＩＤを含むステータス要求メッセージを送信することができる。そして、クライアントは、交換セッションを介して受信した順序付けられたコンテンツオブジェクトのセットを肯定応答するための累積ＡＣＫ名（ＣＡＮ）を含むＡＣＫメッセージを受信する。ＣＡＮは、その名称が最新のコンテンツオブジェクトの名称に一致して含む順序付けられたコンテンツオブジェクトのセットを肯定応答する順序付けられたコンテンツオブジェクトのセットにおいて最新のコンテンツオブジェクトについての名称を含む。
【００１９】
いくつかの実施形態において、クライアント装置は、ホスティングサービスに対して、ホスティングサービスによって要求されることができる次のオブジェクトを指定する次のメッセージを送信することができる。
【００２０】
いくつかの実施形態において、クライアント装置は、交換セッションを閉じることができる。交換セッションを閉じるために、クライアント装置は、ＸＩＤを含む交換閉鎖要求を含むインタレストを送信することができる。そして、交換閉鎖要求を肯定応答するコンテンツオブジェクトを受信することに応答して、クライアント装置は、交換セッションを閉じる。
【００２１】
１つの実施形態は、１つ以上のクライアント又はコンテンツ制作者からのコンテンツをホストするホスティングサービスを提供する。動作中、ホスティングサービスは、クライアント装置との制御チャネルを初期化することができ、クライアント装置に対して制御チャネルについてのセッション識別子（ＳＩＤ）を送信する。ホスティングサービスは、制御チャネルを介して、クライアント装置から交換初期化要求を受信することができる。交換初期化要求は、交換セッションについての交換識別子（ＸＩＤ）を含むことができ、クライアント装置から受信するためにコンテンツに関連付けられている集合名を含むことができる。ホスティングサービスは、交換セッションを介して、コンテンツのセグメントを要求するインタレストを送信することによってコンテンツのセグメントを受信することができる。そして、そのペイロードがコンテンツの要求されたセグメントを含むコンテンツオブジェクトを受信することに応答して、ホスティングサービスは、コンテンツに関連するコンテンツオブジェクトを記憶する。
【００２２】
いくつかの実施形態において、ホスティングサービスは、ホスティングサービス、ＳＩＤ、コンテンツに関連する名称及びＸＩＤに関連付けられた第１の名称接頭辞を含む第２のインタレストメッセージにおける交換初期化要求を受信することができる。
【００２３】
いくつかの実施形態において、第２のインタレストメッセージは、コンテンツ名と、制御チャネルに関連付けられたセッション鍵を使用して暗号化されたＸＩＤとを含む。
【００２４】
いくつかの実施形態において、クライアント装置から交換初期化要求を受信することに応答して、ホスティングサービスは、ＳＩＤ及びＸＩＤを含む肯定応答（ＡＣＫ）メッセージを送信する。
【００２５】
いくつかの実施形態において、ホスティングサービスは、ＳＩＤ及びＸＩＤを含むステータス要求メッセージを受信することができる。ホスティングサービスは、交換セッションを介して受信した順序付けられたコンテンツオブジェクトのセットを肯定応答するための累積ＡＣＫ名（ＣＡＮ）を含むＡＣＫメッセージを返送することによってステータス要求メッセージに応答することができる。ＣＡＮは、その名称が最新のコンテンツオブジェクトの名称に一致して含む順序付けられたコンテンツオブジェクトのセットを肯定応答する順序付けられたコンテンツオブジェクトのセットにおいて最新のコンテンツオブジェクトについての名称を含む。
【００２６】
いくつかの実施形態において、ホスティングサービスは、クライアント装置から、ホスティングサービスによって要求されることができる次のオブジェクトを指定する次のメッセージを受信することができる。
【００２７】
いくつかの実施形態において、ホスティングサービスは、ＳＩＤ及びＸＩＤを含む交換閉鎖要求を含む第２のインタレストメッセージを受信することができる。そして、交換閉鎖要求を肯定応答するコンテンツオブジェクトを返送した後、ホスティングサービスは、交換セッションを閉じる。
【図面の簡単な説明】
【００２８】
【図１】図１は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的なコンピューティング環境を図示している。
【図２】図２は、実施形態にかかるクライアントとホスティングサービスとの間の例示的な通信を図示している。
【図３】図３は、実施形態にかかるホスティングサービスとの交換セッションを確立する方法を図示するフローチャートである。
【図４】図４は、実施形態にかかるホスティングサービスとの交換セッションを管理する方法を図示するフローチャートである。
【図５】図５は、実施形態にかかるクライアントとの交換セッションを確立する方法を図示するフローチャートである。
【図６】図６は、実施形態にかかるクライアントとの交換セッションを管理する方法を図示するフローチャートである。
【図７】図７は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的な装置を図示している。
【図８】図８は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的なコンピュータシステムを図示している。
【発明を実施するための形態】
【００２９】
図面において、同様の参照符号は、同一の図要素を指す。
【００３０】
以下の説明は、当業者が実施形態を作成して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義される一般的な原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲を与えられるべきである。
【００３１】
本発明の実施形態は、ホスティングサービスに対するパイプラインフローの信頼性のあるコンテンツ交換（ＲＣＸ）を実装することにより、ホスティングサービスに対するセキュアなデータ転送を確保するという問題を解決するコンテンツ交換システムを提供する。ＲＣＸは、クライアントが、ＣＣＮを介して、ホスティングサービスとの１つ以上の交換セッションを確立し、各交換セッションにわたるホスティングサービスに対するデータのフローを制御するのを可能とする。
【００３２】
ＲＣＸプロトコルは、クライアントがスライディングデータウィンドウを管理するために使用するクライアントとサービスプロバイダとの間の制御チャネルを含む。例えば、クライアントは、ＣＣＮにわたってクライアントとホスティングサービスとの間の交換セッションを開始又は閉じるように制御チャネルを使用することができる。クライアントはまた、交換セッションを介してクライアントからコンテンツをプルするためにホスティングサービスを依頼し、その転送を保証するためにコンテンツのウィンドウ検索を管理するためにＲＣＸ制御チャネルを使用する。
【００３３】
いくつかの実施形態において、ＲＣＸプロトコルは、ＣｈｕｎｋｅｄＮａｍｅ及びＭａｎｉｆｅｓｔＮａｍｅという２種類の転送をサポートしている。ＣｈｕｎｋｅｄＮａｍｅ転送において、コンテンツは、チャンクされたユーザデータを使用して交換チャネルを介して転送されることができる。チャンクされたユーザデータは、チャンクプロトコルに準拠し、コンテンツの大部分は、「チャンク」の集合に分割され、コンテンツのベース名（例えば、「／ｆｏｏ／ｂａｒ／ｓｌｉｄｅｓ．ｐｄｆ」）は、名称を形成するためにシリーズの各チャンクについて拡張され、名称における終端要素は、チャンク番号を示す。例えば、チャンク名「／ｆｏｏ／ｂａｒ／ｓｌｉｄｅｓ．ｐｄｆ／ｃ５」は、名称を指定する終端名称要素「ｃ５」を含み、シリーズの５番目のチャンクについてのものである。クライアントは、各チャンクについてのコンテンツオブジェクトを生成することができ、コンテンツオブジェクトに対応するチャンク名を割り当てる。そして、クライアントは、制御チャネルを介してホスティングサービスに対してチャンクされたコンテンツオブジェクトのセットのベース名を提供し、ホスティングサービスは、交換セッションを介してインタレストのパイプラインを広めることによってこれらのチャンクされたコンテンツオブジェクトを要求する。
【００３４】
マニフェストアプローチにおいて、「マニフェスト」と称されるチャンクされたオブジェクトは、転送対象の構成コンテンツオブジェクトを一覧表示し、それらのコンテンツオブジェクトハッシュ（ＣＯＨ）を含む。いくつかの実施形態において、マニフェストに一覧表示されているチャンクについてのＣＯＨ値は、個々のチャンクの改竄を防ぐためにハッシュチェーンされることができる。クライアントは、制御チャネルを介してホスティングサービスに対してマニフェストのためにチャンク名を提供することができる。ホスティングサービスは、交換セッションを介してクライアントからマニフェストを受信するためにマニフェストのチャンク名を使用し、要求する必要があるチャンクコンテンツオブジェクトを決定するためにマニフェストを読み取る。そして、ホスティングサービスは、交換セッションを介してインタレストのパイプラインを広めることによってこれらのチャンクコンテンツオブジェクトを要求する。マニフェストの記述は、米国特許出願第１４／３３７，０２６号（代理人整理番号ＰＡＲＣ−２０１４０４８０ＵＳ０１、２０１４年７月２１日に提出された発明者Ｍａｒｃ  Ｅ．Ｍｏｓｋｏによる名称「Ｓｙｓｔｅｍ  ｆｏｒ  Ｄｉｓｔｒｉｂｕｔｉｎｇ  Ｎａｍｅｌｅｓｓ  Ｏｂｊｅｃｔｓ  ｕｓｉｎｇ  Ｓｅｌｆ−Ｃｅｒｔｉｆｙｉｎｇ  Ｎａｍｅｓ」）に記載されている。
【００３５】
いくつかの実施形態において、ＲＣＸプロトコルは、ホスティングサービスによって受信された最後のコンテンツオブジェクトを示すために、累積ＡＣＫ名（ＣＡＮ）を使用して交換セッションのスライディングウィンドウを管理する。より具体的には、ＣＡＮは、ホスティングサービスによって受信された最大の次の名称を示し、転送されるオブジェクトの自然な順序にしたがう。この「最大の次の名称」は、ホスティングサービスがＣＡＮによって指定されたコンテンツオブジェクトに一致して含むシーケンスにおいてコンテンツオブジェクトを受信したことを示している。ＣＣＮ名称が明確に定義された最小値（空名称）を有するが、シーケンス番号を使用してチャンクストリームの特別な場合を除いて「次」の名称を明確に定義していないため、ＣＡＮ命名ストラテジーは有益である。したがって、転送が開始したとき、最初のＣＡＮは、長さゼロの空名称を含むことができる。この長さゼロの空名称は、交換セッションを介して転送される任意のコンテンツオブジェクトを指定していないことから、それは交換セッションを介して潜在的に転送されることができる任意のチャンクについての名称と競合していない。この長さゼロの空名称は、以下では「空」と称するものとする。
【００３６】
ＣｈｕｎｋｅｄＮａｍｅ転送の場合、ＣＡＮは、チャンク番号の順序にしたがう。ＭａｎｉｆｅｓｔＮａｍｅ転送の場合、ＣＡＮは、マニフェストコンテンツオブジェクトに一覧表示されているコンテンツオブジェクトの自然な順序に由来する。いくつかの実施形態において、マニフェストコンテンツオブジェクト（以下、マニフェストチャンクとも称される）は、それ自体が他のマニフェストコンテンツオブジェクトを参照することができる。コンテンツオブジェクトの自然な順序は、マニフェスト階層を横断することによって決定されることができる。この順序は、順序におけるコンテンツオブジェクトチャンクが続く第１のマニフェストチャンク（例えば、ルートマニフェスト）によって始まるように定義されており、それらは、次のマニフェストチャンク及びその一覧表示されたコンテンツオブジェクトなどが続く第１のマニフェストチャンクに一覧表示される。
【００３７】
ホスティングサービスがマニフェストチャンクなどのシーケンスのうちのチャンクを要求するか又は受信することが可能である。しかしながら、累積ＡＣＫ名を報告する目的のために、ＲＣＸプロトコルは、集合における全てのコンテンツオブジェクトに関する明確な順序を強いる。
【００３８】
図１は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的なコンピューティング環境１００を図示している。コンピューティング環境１００は、クライアント１０４、ホスティングサービス１０８、並びに、それらの名称又は名称接頭辞に基づいてインタレスト及びコンテンツオブジェクトを転送することができる複数のＣＣＮノード（例えば、ルータ及びメンバーコンピュータノード）を含むコンテンツ中心ネットワーク（ＣＣＮ）１０２を含むことができる。
【００３９】
クライアント１０４は、スマートフォン１０４．１、タブレットコンピュータ１０４．２及び／又はサーバ若しくはパーソナルコンピュータ１０４．ｍなどのＣＣＮ１０２に結合された任意のコンピューティングデバイスを含むことができる。動作中、ユーザ１０６は、ホスティングサービス１０８との１つ以上の交換セッションを確立し、交換セッションを介してホスティングサービス１０８に対してコンテンツを公開するためにクライアント１０４を使用することができる。クライアント１０４は、ホスティングサービス１０８とのＲＣＸセッションを確立するためにセッション初期化メッセージを送信することができ、ホスティングサービス１０８とのセキュアな交換セッションを確立する開始メッセージ（例えば、交換初期化要求）を送信するためにＲＣＸセッションの制御チャネルを使用する。この開始メッセージは、ホスティングサービス１０８によって取得されてホストされることになるコンテンツを命名する。
【００４０】
いくつかの実施形態において、クライアント１０４は、公開されることになる次のチャンクの名称を示す次のメッセージを送信することによってホスティングサービス１０８との交換セッションについてのその送信ウィンドウを管理する。例えば、クライアント１０４がライブデータフィードを公開している場合、クライアント１０４は、それがより多くのコンテンツを公開するように、次のメッセージを発行し続けることができる。ＣｈｕｎｋｅｄＮａｍｅ転送の場合、次のメッセージは、ストリーム内の次のコンテンツオブジェクトの名称を含む。ＭａｎｉｆｅｓｔＮａｍｅ転送の場合、次のメッセージは、公開されることになるマニフェストの次のチャンクについての名称を含む。
【００４１】
ホスティングサービス１０８は、ＣＣＮ１０２にわたってコンテンツをホストする分散サーバ１１０のセットを含むことができる。例えば、サーバ１１０は、様々なコンテンツ制作者によって公開されたコンテンツを記憶する記憶装置１１２を含むことができるか又はそれに結合されることができる。例えば、クライアント１０４がホスティングサービス１０８との交換セッションを確立すると、１つ以上のサーバ１１０が、交換セッションを介して公開されたコンテンツオブジェクトについてのインタレストを広めることができる。交換セッションは、サーバ１１０がクライアント１０４によって公開されたコンテンツオブジェクトを受信することを保証し、他の（おそらく悪意のある）エンティティによって公開された同じ名称の他のコンテンツオブジェクトを受信しないクライアント１０４とホスティングサービス１０８との間のセキュアな接続である。ホスティングサービス１０８は、ＣＣＮ交換セッションを介して発信する保留インタレストの数を制御することにより、その受信ウィンドウを管理することができる。例えば、ホスティングサービス１０８は、ＣＣＮ１０２にわたって現在のネットワーク状態に応じて受信ウィンドウのサイズを増減させることができる。
【００４２】
いくつかの実施形態において、ホスティングサービス１０８は、その後、クライアント１０４に代わってＣＣＮ１０２を介してこれらの公開されたコンテンツオブジェクトをアクセス可能とすることができる。例えば、ホスティングサービス１０８のサーバ１１０が公開されたコンテンツオブジェクトについてのインタレストを受信したとき、ホスティングサービス１０８は、コンテンツオブジェクトの名称及び／又はハッシュ値に基づいてインタレストを満たすコンテンツオブジェクトを返送することができる。
【００４３】
図２は、実施形態にかかるクライアント２０２とホスティングサービス２０４との間の例示的な通信２００を図示している。動作中、クライアント２０２及びホスティングサービス２０４は、双方向認証を行うことによってセキュアな制御チャネルを確立することができる。クライアント２０２は、記憶装置２０４に対してセッション初期化メッセージ２１２を送信することができ、記憶装置２０４は、クライアント２０２を認証するために使用する。同様に、ホスティングサービス２０４は、クライアント２０２がホスティングサービス２０４を認証するために使用することができるセッション応答メッセージ２１４を返送することができる。双方向認証が成功した場合、クライアント２０２及びホスティングサービス２０４は、セッション識別子（ＳＩＤ）及び必要に応じてセッション鍵（ＳＫ）を有するセキュアな制御チャネルを確立している。
【００４４】
クライアント２０２は、ホスティングサービスが対応するデータ集合を取得するために各交換セッションを使用することができるように、ホスティングサービスとの１つ以上の交換セッションを開始するために制御チャネルを使用することができる。各交換セッションは、名称付けられたコンテンツを取得するためにホスティングサービス２０４についての特定の要求である。名称付けられたコンテンツは、標準的なチャンクプロトコルに準拠したＣｈｕｎｋｅｄＮａｍｅｄコンテンツオブジェクトのシーケンスに分割されることができる。あるいは、名称付けられたコンテンツは、それらのハッシュ値を含む、取得するためにコンテンツオブジェクトについての正確な名称を識別するマニフェスト（例えば、コンテンツオブジェクトのセキュアなカタログ）であってもよい。
【００４５】
クライアント２０２は、ホスティングサービスに対して「開始」メッセージ２１６（例えば、交換初期化要求）を送信し且つ「開始肯定応答」メッセージ２１８を受信することにより、ホスティングサービスとの交換セッションを確立するために転送認証処理を実行することができる。開始２１６は、ＳＩＤ、クライアント生成交換識別子（ＸＩＤ）、クライアント２０２が公開して交換セッションを介して転送されることができるデータ集合についての名称を含む。開始２１６はまた、ホスティングサービス２０４が交換セッションを介して送信するインタレストメッセージに含まれることになる鍵識別子（ＫｅｙＩＤ）を含むことができる。開始肯定応答２１８は、ＳＩＤ及びＸＩＤを含む。
【００４６】
いくつかの実施形態において、公開されたデータ集合についての名称は、例えば、集合についてのチャンク名又は集合のマニフェストについての名称を含むことができる。ホスティングサービス２０４は、クライアント２０２が集合において公開した個々のコンテンツオブジェクトについての名称を導出するか又は判定するために集合の名称を使用することができる。公開されたコンテンツオブジェクトのこの集合は、ホスティングサービス２０４が交換セッションを介して取得することができる「データウィンドウ」を形成する。
【００４７】
交換セッションがＣＣＮを介して実装されていることを思い出されたい。少なくとも１つの交換セッションが開始されると、ホスティングサービス２０４は、セキュアな交換セッションを介してインタレスト２２４を広め且つセキュアな交換セッションを介して対応するコンテンツオブジェクト２２４を受信することにより、公開されたコンテンツオブジェクトを取得することができる。ホスティングサービス２０４は、インタレストを発信する速度を制御することにより、保留インタレストの「受信ウィンドウ」を管理することができる。ホスティングサービス２０４が公開されたデータ集合のセグメントについてのインタレストを広めるたびに、このセグメントは、受信ウィンドウに追加される。また、ホスティングサービス２０４がインタレストを満たすコンテンツオブジェクトを受信するたびに、ホスティングサービス２０４は、受信ウィンドウから対応するデータセグメントを削除する。
【００４８】
いくつかの実施形態において、クライアント２０２は、ホスティングサービス２０４から所定の交換セッションについてのステータスレポートを要求するために制御チャネルを使用することができる。ステータスレポートを要求するために、クライアント２０２は、ＳＩＤ、交換セッションについてのＸＩＤ及びステータスメッセージについてのシーケンス番号識別子（ＳｅｑＮｕｍ）を含むステータスメッセージを送信することができる。ホスティングサービスは、ＳＩＤ、ＸＩＤ、対応するステータスメッセージについてのＳｅｑＮｕｍ、及び、ホスティングサービス２０４が集合から受信した最新のコンテンツオブジェクトについてのＣＡＮ名を含むステータスＡＣＫメッセージを返送する。
【００４９】
例えば、クライアント２０２がホスティングサービス２０４に対して送信する第１のステータスメッセージ（例えば、ステータス２２０）は、「１」のＳｅｑＮｕｍ値を有することができ、クライアント２０２がホスティングサービス２０４に対して送信する第２のステータスメッセージ（例えば、ステータス２２８）は、「２」の値を有することができる。また、ホスティングサービス２０４が交換セッションを介してコンテンツオブジェクトを受信する前にクライアント２０２がホスティングサービス２０４に対してステータスメッセージ２２０を送信する場合、ホスティングサービス２０４は、ホスティングサービス２０４が空名称（例えば、何もない）に一致して含むコンテンツオブジェクトを受信したことを意味するＣＡＮが「空」であるステータスＡＣＫ２２２を返送する。一方、ホスティングサービス２０４が完全なデータ集合をダウンロードした後にクライアント２０２がステータスメッセージ２２８を送信する場合、ホスティングサービスは、ホスティングサービス２０４が集合における最後のコンテンツオブジェクトに一致して含むコンテンツオブジェクトを受信したことを意味するＣＡＮがデータ集合における最後のコンテンツオブジェクトであるステータスＡＣＫ２３０を返送する。
【００５０】
クライアント２０２が（例えば、ステータスＡＣＫ２３０のＣＡＮに基づいて）交換セッションを介して公開したコンテンツをホスティングサービス２０４が受信したとクライアント２０２が判定すると、クライアント２０２は、その後、交換セッションを閉じることができる。クライアント２０２は、閉鎖メッセージ２３２が制御チャネルについてのＳＩＤ及び閉じられる交換セッションについてのＸＩＤを含むように、ホスティングサービス２０４に対して閉鎖メッセージ２３２を送信するために制御チャネルを使用することによって交換セッションを閉じることができる。ホスティングサービスは、交換セッションがＳＩＤ及びＸＩＤも含む閉鎖ＡＣＫメッセージ２３４を返送することによって閉じられたことを肯定応答する。
【００５１】
いくつかの実施形態において、制御チャネルは、ＣＣＮを介して実装されることができる。例えば、クライアント２０２は、以下のインタレストを広めることによってＣＣＮを介して開始メッセージ２１６を広めることができる。
／ｐｒｏｖｉｄｅｒ／ＳＩＤ／Ｅ＿ｓｋ（｛ＸＩＤ，Ｎａｍｅ，［ＫｅｙＩｄ｜Ｈａｓｈ］，ＳＴＡＲＴ｝）      （１）
インタレスト（１）において、接頭辞「／ｐｒｏｖｉｄｅｒ」は、ホスティングサービスに関連付けられたルーティング可能な接頭辞及びホスティングサービスの名称を含む。次の名称要素「ＳＩＤ」は、セッション鍵（ＳＫ）に関連付けられたセッションを識別する。次の要素「Ｅ＿ｓｋ（）」は、必要に応じてセッション鍵ＳＫによって暗号化されたマーシャリングデータ構造を含む。いくつかの例示的な実装は、例えば、Ｔｙｐｅ−Ｌｅｎｇｔｈ−Ｖａｌｕｅ（ＴＬＶ）バイナリフォーマット、外部データ表現（ＸＤＲ）フォーマット又は現在知られている若しくは今後開発される任意の他の転送符号化フォーマットを使用することができる。
【００５２】
マーシャリングデータ構造は、交換セッションについてのＸＩＤ、転送するためのデータ集合についての名称及び開始キーワードを含む。ＸＩＤは、クライアント２０２によって生成され、ランダムに生成された番号などの任意の固有の番号とすることができる。名称要素は、データ集合についてのＣｈｕｎｋｅｄＮａｍｅ又はＭａｎｉｆｅｓｔＮａｍｅを指定する。開始キーワードは、インタレストが交換セッションを開始するための要求を含むことを示す。
【００５３】
いくつかの実施形態において、ＣｈｕｎｋｅｄＮａｍｅは、標準的なチャンクプロトコルに準拠している。ＣｈｕｎｋｅｄＮａｍｅがチャンク番号なしのベース名（例えば、「／ｆｏｏ／ｂａｒ」）である場合、ホスティングサービス２０４は、集合（例えば、「／ｆｏｏ／ｂａｒ／ｃ０」・・・「／ｆｏｏ／ｂａｒ／ｃ９９」）における全てのチャンクを含むデータウィンドウによってパイプラインを開く。ＣｈｕｎｋｅｄＮａｍｅが単一のチャンク名（例えば、「／ｆｏｏ／ｂａｒ／ｃ３３」）に対応する場合、ホスティングサービス２０４は、指定されたチャンクを含むデータウィンドウによってパイプラインを開く。
【００５４】
いくつかの実施形態において、ＭａｎｉｆｅｓｔＮａｍｅは、転送するためにコンテンツオブジェクトの集合を列挙するセキュアなカタログを識別する。ＭａｎｉｆｅｓｔＮａｍｅは、チャンクプロトコルに準拠している。例えば、ホスティングサービス２０４は、マニフェストによって識別された全てのコンテンツオブジェクトを含むデータウィンドウによってパイプラインを開くことによってチャンク番号がないマニフェストの名称を処理する（例えば、「／ｆｏｏ／ｂａｒ／Ｍ０」）。しかしながら、マニフェストの名称にチャンク番号が続く場合（例えば、「／ｆｏｏ／ｂａｒ／Ｍ０／Ｉ０」）、ホスティングサービス２０４は、マニフェスト「Ｍ０」、項目「０」によって識別されたコンテンツオブジェクトを含むデータウィンドウによってパイプラインを開く。
【００５５】
いくつかの実施形態において、開始メッセージ２２０は、ホスティングサービス２０４が交換セッションを介して広めるインタレストに含むように任意のＫｅｙＩＤ制限及び／又はハッシュ制限を含むことができる。それらのＫｅｙＩＤは、ターゲットＣＣＮコンテンツ制作者（例えば、クライアント２０２）に関連付けられた鍵識別子を指定し、ハッシュ制限は、コンテンツオブジェクトについてのハッシュ値（例えば、単一チャンク）を指定する。ホスティングサービス２０４がインタレストにＫｅｙＩｄ制限を含むとき、他のＣＣＮノードは、ＫｅｙＩＤに関連付けられたターゲットＣＣＮコンテンツ制作者に向けてインタレストを転送する。同様に、ホスティングサービス２０４がインタレストにハッシュ制限を含むとき、ターゲット制作者は、そのハッシュ値がハッシュ制限に一致するコンテンツオブジェクトを返送する。
【００５６】
クライアント２０２は、以下のインタレストを広めることによってＣＣＮを介してステータスメッセージ２２０を広めることができる。
／ｐｒｏｖｉｄｅｒ／ＳＩＤ／Ｅ＿ｓｋ（｛ＸＩＤ，ＳｅｑＮｕｍ，ＳＴＡＴＵＳ｝）      （２）
インタレスト（２）において、接頭辞「／ｐｒｏｖｉｄｅｒ」は、同様にホスティングサービス２０４に対応し、名称要素「ＳＩＤ」は、セッション鍵（ＳＫ）に関連付けられることができるクライアント２０２とホスティングサービス２０４との間のセッションを識別する。次の要素「Ｅ＿ｓｋ（）」は、必要に応じてセッション鍵ＳＫによって暗号化されたマーシャリングデータ構造を含む。マーシャリングデータ構造のコンテンツは、交換セッションについての識別子（ＸＩＤ）、ステータスメッセージを識別するシーケンス番号（ＳｅｑＮｕｍ）及びホスティングサービス２０４からのステータスの要求を示すステータスキーワードを含む。
【００５７】
クライアント２０２は、以下のインタレストを広めることによってＣＣＮを介して閉鎖メッセージ２３２を広めることができる。
／ｐｒｏｖｉｄｅｒ／ＳＩＤ／Ｅ＿ｓｋ（｛ＸＩＤ，ＣＬＯＳＥ｝）      （３）
インタレスト（３）において、接頭辞「／ｐｒｏｖｉｄｅｒ」は、同様にホスティングサービス２０４に対応し、名称要素「ＳＩＤ」は、クライアント２０２とホスティングサービス２０４との間のセッションを識別する。次の要素「Ｅ＿ｓｋ（）」は、（必要に応じてセッション鍵ＳＫによって暗号化された）マーシャリングデータ構造を含み、そのコンテンツは、ＸＩＤ識別子、識別子ＸＩＤに関連付けられた交換セッションを閉じるようにホスティングサービス２０４に命令する閉鎖キーワードを含む。
【００５８】
いくつかの実施形態において、クライアント２０２又はホスティングサービス２０４は、交換セッションを中止するためにＣＣＮを介して以下の中止メッセージを広めることができる。
／ｔａｒｇｅｔ／ＳＩＤ／Ｅ＿ｓｋ（｛ＸＩＤ，ＡＢＯＲＴ｝）      （４）
インタレスト（４）において、中止キーワードは、識別子ＸＩＤに関連付けられている交換セッションが終了した受信者「／ｔａｒｇｅｔ」（例えば、クライアント２０２又はホスティングサービス２０４）であることを通知する。
【００５９】
図３は、実施形態にかかるホスティングサービスとの交換セッションを確立する方法３００を図示するフローチャートである。動作中、クライアントは、ホスティングサービスと識別及び／又は認証情報を交換することにより、ホスティングサービスとの制御チャネルを最初に確立することができる。制御チャネルは、ＩＰベースのネットワーク又はコンテンツ中心ネットワーク（ＣＣＮ）などの現在知られている又は今後開発される任意のコンピュータネットワークを介して存在することができる。クライアントは、１つ以上の交換セッションを開始するために且つ交換セッションについてのウィンドウを制御するために制御チャネルを使用することができる。
【００６０】
制御チャネルを確立するために、クライアントは、クライアントを識別するセッション初期化メッセージを生成することができ（動作３０２）、ホスティングサービスに対してセッション初期化メッセージを送信する（動作３０４）。セッション初期化メッセージは、暗号化鍵を介して（例えば、ディジタル証明書を介して）身元を提供することにより、又は、認証信任状（例えば、ユーザ名及びパスワード）を提供することなどにより、クライアントを識別する任意の情報を含むことができる。
【００６１】
ホスティングサービスがクライアントを成功裏に認証又は許可した場合、クライアントは、ホスティングサービスからセッション応答メッセージを受信する（動作３０６）。セッション応答メッセージは、クライアントとホスティングサービスとの間の交換セッションを識別するセッション識別子（ＳＩＤ）を含むことができ、いくつかの実施形態において、交換セッションについてのセッション鍵（ＳＫ）を含むこともできる。いくつかの実施形態において、ホスティングサービスは、クライアントに対してセッション鍵をセキュアに転送することができ、鍵回転プロトコルを介してセキュアなセッション鍵を維持することができる。クライアント及びホスティングサービスは、制御チャネルを介して送信される名称におけるユーザデータ及びパケットのペイロードを暗号化するためにセッション鍵を使用することができる。
【００６２】
クライアントは、ホスティングサービスを認証するためにセッション応答メッセージを使用し（動作３０８）、認証が成功したかどうかを判定する（動作３１０）。認証が成功しなかった場合、クライアントは、是正措置を実行することができる。しかしながら、クライアントがホスティングサービスを認証する場合、制御チャネルが確立され、クライアントは、１つ以上の交換セッションを確立して管理するために制御チャネルを使用することができる。例えば、クライアントは、制御チャネルを介してホスティングサービスに対して「開始」メッセージを送信することによってセキュアな交換セッションを確立することができる（動作３１２）。開始メッセージは、セッション識別子、交換セッションについての交換識別子（ＸＩＤ）、ホスティングサービスによって記憶されるデータ集合についての名称を含むことができる。開始メッセージはまた、ＣＣＮベースの交換セッションを介してデータ集合のセグメントを要求するとき、ホスティングサービスがそのインタレストメッセージに含むことができる鍵ＩＤ制限を含むことができる。
【００６３】
ホスティングサービスがデータ集合を記憶することができる場合、ホスティングサービスは、制御チャネルを介して開始肯定応答（開始ＡＣＫ）メッセージを返送する。したがって、クライアントがホスティングサービスから開始ＡＣＫメッセージを受信すると（動作３１４）、クライアントは、セキュアな交換セッションを介してホスティングサービスに対してデータ集合のデータセグメントを転送するために進む（動作３１６）。具体的には、クライアントは、セキュアな交換セッションを介してデータ集合のセグメントについてのＣＣＮインタレストメッセージを受信することができ、対応するデータセグメントを含むコンテンツオブジェクトを返送するためにこれらのインタレストメッセージを処理する。典型的なＣＣＮネットワークにおいて、インタレストを受信するネットワークノードは、インタレストが到来した場所を典型的には知らない。しかしながら、ＣＣＮパケットを転送するためにセキュアな交換セッションを使用する場合、認証されたホスティングサービスに関連付けられたネットワークノードのみが、クライアントによってホストされたデータ集合についての有効なインタレストを広めることができる。クライアントは、セキュアな交換セッションを介して送信されなかったデータ収集についての任意のインタレストを無視することができる。
【００６４】
交換セッションのデータウィンドウは、ホスティングサービスがクライアントから要求することができる公開されたコンテンツオブジェクトの集合を含むことを思い出されたい。いくつかの実施形態において、クライアントは、交換セッションがアクティブな間、交換セッションのデータウィンドウを調整することができる。これは、クライアントがライブメディアストリームなどのデータ集合にセグメントを追加し、集合における新たなデータセグメントをホスティングサービスに通知するのを可能とする。
【００６５】
図４は、実施形態にかかるホスティングサービスとの交換セッションを管理する方法４００を図示するフローチャートである。動作中、クライアントは、制御チャネルを介してホスティングサービスに対して「ステータス」要求メッセージを送信することができる（動作４０２）。ステータス要求メッセージは、交換セッションを識別するためにセッションＩＤ及びＸＩＤを含むことができ、他のステータス要求メッセージからこのステータス要求メッセージを区別するステータスシーケンス番号（ＳｅｑＮｕｍ）を含むことができる。
【００６６】
クライアントが制御チャネルを介してホスティングサービスからステータスＡＣＫを受信したとき（動作４０４）、クライアントは、ＳｅｑＮｕｍを使用してステータスＡＣＫをステータス要求メッセージに対して照合することができ、ホスティングサービスにおけるデータ転送のステータスを判定するためにステータスＡＣＫを分析する（動作４０６）。そして、クライアントは、交換セッションの転送が終了したかどうかを判定する（動作４０８）。
【００６７】
転送が終了していない場合、クライアントは、転送されることになる次のセグメントを含むようにデータウィンドウを調整することができ（動作４１０）、制御チャネルを介してホスティングサービスに対して「次の」メッセージを送信する（動作４１２）。この次のメッセージは、次のデータウィンドウを指定し、次のメッセージについてのＳＩＤ、ＸＩＤ、（もしあれば）ＫｅｙＩＤ及びＳｅｑＮｕｍを含む。いくつかの実施形態において、次のメッセージは、公開されることになる次のチャンクオブジェクト（例えば、データ集合におけるコンテンツオブジェクト）についての名称を含むことにより、又は、公開されることになる次のマニフェストの名称を含むことにより、次のデータウィンドウを指定する。例えば、ＣｈｕｎｋｅｄＮａｍｅ転送の場合、次のメッセージは、ストリームにおける次のチャンクの名称を含む。ＭａｎｉｆｅｓｔＮａｍｅ転送の場合、次のメッセージは、マニフェストに（又はマニフェスト階層の任意のマニフェストに）一覧表示された次のチャンクについての名称を含む。
【００６８】
クライアントは、以下のインタレストを広めることによってＣＣＮを介して次のメッセージを広めることができる。
／ｐｒｏｖｉｄｅｒ／ＳＩＤ／Ｅ＿ｓｋ（｛ＸＩＤ，ＳｅｑＮｕｍ，ＮｅｘｔＮａｍｅ，ＮＥＸＴ｝）      （５）
インタレスト（５）において、接頭辞「／ｐｒｏｖｉｄｅｒ」は、ホスティングサービスに関連付けられたルーティング可能な接頭辞及びホスティングサービスの名称を含む。名称要素「ＳＩＤ」は、セッション鍵（ＳＫ）に関連付けられることができるクライアントとホスティングサービスとの間のセッションを識別する。次の要素「Ｅ＿ｓｋ（）」は、必要に応じてセッション鍵ＳＫによって暗号化されたマーシャリングデータ構造を含む。マーシャリングデータ構造のコンテンツは、交換セッションについての識別子（ＸＩＤ）、ステータスメッセージを識別するシーケンス番号（ＳｅｑＮｕｍ）及びデータウィンドウに対する更新を含むインタレストを示す次のキーワードを含む。マーシャリングデータ構造はまた、クライアントが交換セッションを介して公開している追加のセグメントについてのＭａｒｓｈａｌｌｅｄＮａｍｅ又はＭａｎｉｆｅｓｔＮａｍｅとすることができる「ＮｅｘｔＮａｍｅ」要素を含む。
【００６９】
ホスティングサービスが次のデータウィンドウによって公開された追加データを記憶することができる場合、クライアントは、ホスティングサービスから次のデータウィンドウを肯定応答する「次のＡＣＫ」メッセージを受信する。一方、交換セッションの転送が終了した場合、クライアントは、ＳＩＤ及びＸＩＤを含む「閉鎖」メッセージを生成することができ、交換セッションを閉じるために制御チャネルを介してホスティングサービスに対して閉鎖メッセージを送信する（動作４１６）。ホスティングサービスは、ＳＩＤ及びＸＩＤを含む「閉鎖ＡＣＫ」メッセージを返送することによって交換セッションの閉鎖を肯定応答する。クライアントが制御チャネルを介してホスティングサービスから閉鎖ＡＣＫメッセージを受信すると（動作４１８）、クライアントは、交換セッションを閉じる（動作４２０）。
【００７０】
クライアント及びホスティングサービスがＳＩＤに関連付けられた複数のアクティブ交換セッションを有することが可能であることを思い出されたい。いくつかの実施形態において、クライアントが１つの交換セッションを閉じるとき、ホスティングサービスは、他のアクティブ交換セッションを介して追加データセグメントを取得するためにインタレストを発信し続けることができる。
【００７１】
図５は、実施形態にかかるクライアントとの交換セッションを確立する方法５００を図示するフローチャートである。動作中、ホスティングサービスは、クライアントから、クライアントを識別するセッション初期化メッセージを受信することができ（動作５０２）、クライアントを認証するためにクライアントの識別情報を使用する（動作５０４）。そして、ホスティングサービスは、認証が成功したかどうかを判定する（動作５０６）。認証が成功しなかった場合、ホスティングサービスは、セッション応答メッセージを返送しないことによって制御チャネルの確立を回避することができ、認証されなかったクライアントからのメッセージを無視する（動作５０８）。
【００７２】
一方、ホスティングサービスがクライアントを成功裏に認証した場合、ホスティングサービスは、制御チャネルの確立を完了するためにクライアントに対してセッション応答メッセージを送信する（動作５１０）。このセッション応答メッセージは、制御チャネルについてのセッション識別子（ＳＩＤ）及びセッション鍵（ＳＫ）を含む。そして、ホスティングサービスは、制御チャネルを介してクライアントから開始メッセージを受信することができる（動作５１２）。開始メッセージは、ＳＩＤ、交換セッションについての交換識別子（ＸＩＤ）及びホスティングサービスによって記憶されることになるデータ集合についての名称を含むことができる。開始メッセージはまた、ＣＣＮベースの交換セッションを介してデータ集合のセグメントを要求したときにホスティングサービスがそのインタレストメッセージを含むことができるＫｅｙＩＤ制限を含むことができる。
【００７３】
そして、ホスティングサービスは、交換セッションを確認するために制御チャネルを介してクライアントに対して開始ＡＣＫメッセージを送信する（動作５１４）。そして、ホスティングサービスは、セキュアな交換セッションを介してクライアントからデータ集合のセグメントを取得するために進む（動作５１６）。交換セッションは、ＣＣＮを介して実現されることを思い出されたい。したがって、ホスティングサービスは、交換セッションのデータウィンドウ内のデータセグメントについてのインタレストを広めることによってデータ集合を取得することができる。ホスティングサービスは、ターゲット最大サイズ内又はその受信ウィンドウの範囲内にとどまるように保留インタレストの数を制限することによってその受信ウィンドウのサイズを制御することができる。
【００７４】
図６は、実施形態にかかるクライアントとの交換セッションを管理する方法６００を図示するフローチャートである。動作中、ホスティングサービスは、交換セッションについてのデータウィンドウを判定することができる（動作６０２）。このデータウィンドウは、クライアントが公開し且つホスティングサービスがクライアントから要求することができるコンテンツオブジェクトの集合を含むことができる。ホスティングサービスは、チャンク名として又はマニフェスト名としてクライアントからデータウィンドウを追加するためにコンテンツオブジェクトについての名称を受信することができる。
【００７５】
ホスティングサービスは、クライアントから要求するためにデータウィンドウにおけるコンテンツオブジェクトのセットを判定し（動作６０４）、コンテンツオブジェクトのセットについてのインタレストのセットを生成する（動作６０６）。そして、ホスティングサービスは、コンテンツオブジェクトのセットを取得するためにセキュアな交換セッションを介してインタレストのセットを広める（動作６０８）。いくつかの実施形態において、ホスティングサービスは、インタレストを広める速度を制御することによってその受信ウィンドウを管理することができる。ホスティングサービスの受信ウィンドウは、ホスティングサービスがコンテンツオブジェクトを待機している保留インタレストのセットに対応している。ホスティングサービスは、交換セッションを介してこのコンテンツオブジェクトについてのインタレストを広めるときに、受信ウィンドウに対してコンテンツオブジェクトを追加し、コンテンツオブジェクトを受信すると受信ウィンドウからコンテンツオブジェクトを除去する。
【００７６】
クライアントは、制御チャネルを介してホスティングサービスに対してメッセージを送信することによって交換セッションを管理することができることを思い出されたい。クライアントは、例えば、ホスティングサービスが成功裏に受信したコンテンツオブジェクトを判定するために「ステータス」メッセージを、データウィンドウに対してコンテンツオブジェクトを追加するために「次の」メッセージを、及び、交換セッションを閉じるために「閉鎖」メッセージを送信することができる。
【００７７】
ホスティングサービスが制御チャネルを介してクライアントからメッセージを受信したとき（動作６１０）、ホスティングサービスは、メッセージについての種類を判定する（動作６１２）。メッセージが「次の」メッセージである場合、ホスティングサービスは、データウィンドウに対して追加するためにコンテンツオブジェクトの集合を判定するために次のメッセージを分析することができる（動作６１４）。次のメッセージは、ホスティングサービスによって記憶されることになるデータ集合についてのＳＩＤ、ＸＩＤ、ＳｅｑＮｕｍ及び名称を含むことができる。次のメッセージはまた、ＣＣＮベースの交換セッションを介してデータ集合のセグメントを要求したときにホスティングサービスがそのインタレストメッセージに含むことができるＫｅｙＩＤ制限を含むことができる。ホスティングサービスは、新たなデータウィンドウにおいて指定されたコンテンツオブジェクト又はコンテンツオブジェクトの集合を含むようにローカルデータウィンドウを更新し（動作６１６）、クライアントに対して次のＡＣＫメッセージを送信する（動作６１８）。そして、ホスティングサービスは、更新されたデータウィンドウに基づいて追加のインタレストを広めるために動作６０４に戻る。次のＡＣＫメッセージは、次のメッセージからのＳＩＤ、ＸＩＤ及びＳｅｑＮｕｍを含むことができる。
【００７８】
メッセージが「ステータス」メッセージである場合、ホスティングサービスは、交換セッションのステータスを判定することができ（動作６２０）、受信されたデータ集合のコンテンツオブジェクトをカプセル化した累積ＡＣＫ名（ＣＡＮ）を含む「ステータスＡＣＫ」メッセージを返送する（動作６２２）。クライアントからのステータスメッセージは、ステータスメッセージについてのＳＩＤ、ＸＩＤ及びＳｅｑＮｕｍを含むことができる。ステータスＡＣＫメッセージは、ステータスメッセージからのＳＩＤ、ＸＩＤ及びＳｅｑＮｕｍと、ＣＡＮとを含むことができる。
【００７９】
メッセージが「閉鎖」メッセージである場合、ホスティングサービスは、閉鎖されている交換セッションを識別するために閉鎖メッセージからセッションＩＤ（ＳＩＤ）及び交換識別子（ＸＩＤ）を判定する（動作６２４）。そして、ホスティングサービスは、ＳＩＤ及びＸＩＤを含む閉鎖ＡＣＫメッセージを返送し（動作６２６）、ＳＩＤ及びＸＩＤに関連付けられた交換セッションを閉じる（動作６２８）。
【００８０】
図７は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的な装置７００を図示している。装置７００は、有線又は無線通信チャネルを介して互いに通信することができる複数のモジュールを備えることができる。装置７００は、１つ以上の集積回路を使用して実現されることができ、図７に示されるものよりも少ないか又は多いモジュールを含むことができる。さらに、装置７００は、コンピュータシステムに一体化されてもよく、又は、他のコンピュータシステム及び／又は装置と通信することができる別個の装置として実現されることができる。具体的には、装置７００は、通信モジュール７０２と、制御チャネル確立モジュール７０４と、認証モジュール７０６と、交換セッション確立モジュール７０８と、インタレスト処理モジュール７１０と、パイプライン管理モジュール７１２とを備えることができる。
【００８１】
いくつかの実施形態において、通信モジュール７０２は、インターネットプロトコル（ＩＰ）ベースのネットワーク、コンテンツ中心ネットワーク（ＣＣＮ）、情報中心ネットワーク（ＩＣＮ）又は現在知られている若しくは今後開発される任意のネットワークアーキテクチャなどのコンピュータネットワークを介してデータを送信及び／又は受信することができる。制御チャネル確立モジュール７０４は、装置７００の代わりにコンテンツをホストすることになるホスティングサービスとの制御チャネルを確立することができ、認証モジュール７０６は、ホスティングサービスを認証することができる。
【００８２】
交換セッション確立モジュール７０８は、ホスティングサービスに対してコンテンツを送信するために、ホスティングサービスとの交換セッションを確立するために制御チャネルを使用することができる。インタレスト処理モジュール７１０は、コンテンツのセグメントを要求するために交換セッションを介して受信したインタレストを処理することができ、要求されたコンテンツのセグメントを含むコンテンツオブジェクトを返送することができる。パイプライン管理モジュール７１２は、コンテンツのセグメントについてのデータウィンドウを調整することによってコンテンツのセグメントのパイプラインフローを管理することができる。
【００８３】
図８は、実施形態にかかるホスティングサービスに対するコンテンツのローディングを容易とする例示的なコンピュータシステム８０２を図示している。コンピュータシステム８０２は、プロセッサ８０４と、メモリ８０６と、記憶装置８０８とを含む。メモリ８０６は、管理メモリとして機能し且つ１つ以上のメモリプールを記憶するために使用可能な揮発性メモリ（例えば、ＲＡＭ）を含むことができる。さらにまた、コンピュータシステム８０２は、ディスプレイ装置８１０、キーボード８１２及びポインティングデバイス８１４に結合されることができる。記憶装置８０８は、オペレーティングシステム８１６、コンテンツ交換システム８１８及びデータ８３２を記憶することができる。
【００８４】
コンテンツ交換システム８１８は、コンピュータシステム８０２によって実行されたとき、コンピュータシステム８０２に本開示に記載された方法及び／又はプロセスを実行させることができる命令を含むことができる。具体的には、コンテンツ交換システム８１８は、インターネットプロトコル（ＩＰ）ベースのネットワーク、コンテンツ中心ネットワーク（ＣＣＮ）、情報中心ネットワーク（ＩＣＮ）又は現在知られている若しくは今後開発される任意のネットワークアーキテクチャなどのコンピュータネットワークを介してデータを送信及び／又は受信するための命令を含むことができる（通信モジュール８２０）。さらに、コンテンツ交換システム８１８は、コンピュータシステム８０２の代わりにコンテンツをホストすることになるホスティングサービスとの制御チャネルを確立するための命令を含むことができ（制御チャネル確立モジュール８２２）、ホスティングサービスを認証するための命令を含むことができる（認証モジュール８２４）。
【００８５】
コンテンツ交換システム８１８はまた、ホスティングサービスとの交換セッションを確立し、ホスティングサービスに対してコンテンツを送信するために制御チャネルを使用するための命令を含むことができる（交換セッション確立モジュール８２６）。コンテンツ交換システム８１８はまた、コンテンツのセグメントを要求するために交換セッションを介して受信したインタレストを処理し、要求されたコンテンツのセグメントを含むコンテンツオブジェクトを返送するための命令を含むことができる（インタレスト処理モジュール８２８）。コンテンツ交換システム８１８はまた、コンテンツのセグメントについてのデータウィンドウを調整することによってコンテンツのセグメントのパイプラインフローを管理するための命令を含むことができる（パイプライン管理モジュール８３０）。
【００８６】
データ８２６は、本開示に記載された方法及び／又はプロセスによって入力として必要とされるか又は出力として生成される任意のデータを含むことができる。具体的には、データ８２６は、公開するために少なくともデータの集合を記憶することができる。
【００８７】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られている若しくは今後開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００８８】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。
【００８９】
さらにまた、上述した方法及びプロセスは、ハードウェアモジュールに含めることができる。例えば、ハードウェアモジュールは、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び、現在知られている若しくは今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュールが起動されると、ハードウェアモジュールは、ハードウェアモジュールの内部に含まれる方法及びプロセスを実行する。
【図１】
2016053950.tif 000002
【図２】
2016053950.tif 000003
【図３】
2016053950.tif 000004
【図４】
2016053950.tif 000005
【図５】
2016053950.tif 000006
【図６】
2016053950.tif 000007
【図７】
2016053950.tif 000008
【図８】
2016053950.tif 000009