(57)【要約】      （修正有）【課題】完全一致するネームを使用して局所ノードと遠隔ノードの間のデータのコレクションの同期を容易にするシステムを提供する。【解決手段】局所ノードは、遠隔ノードにおいて遠隔マニフェストに対応するアドバタイズメントを受信する。マニフェスト１２０はコレクションのコンテンツオブジェクトを識別するルートハッシュ値に対応している。局所ノードは、局所マニフェストと遠隔マニフェストのルートハッシュ値を比較し、コレクションのコンテンツが異なっている場合、局所ノードは遠隔マニフェストに対するリクエストを送信することによって遠隔マニフェストを検索する。局所ノードは遠隔マニフェストにおいて、異なっているコンテンツを識別し、異なっているコンテンツオブジェクトに対するインタレストの集合を送信し、コンテンツオブジェクトのリクエストされた集合を受信し、局所ノードおよび遠隔ノードのコンテンツオブジェクトの同期を行う。【選択図】図１
2015201178.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行時にコンピュータに方法を実行させる命令を格納した非一時的コンピュータ可読記憶媒体であって、
前記方法が、
局所ノードにより、マニフェストがノードにおいてコンテンツオブジェクトのコレクションを表す遠隔ノードの遠隔マニフェストに対応しているアドバタイズメントを受信するステップと、
局所マニフェストが前記遠隔マニフェストとは異なっているという判断に応答して前記遠隔マニフェストに対するリクエストを送信するステップであって、前記遠隔マニフェストと前記局所マニフェストが同じコンテンツオブジェクトのコレクションに対応しているステップと、
前記受信された遠隔マニフェストに基づいて、前記遠隔マニフェストにおいて示されたどのコンテンツオブジェクトが前記局所マニフェストにおいて示されたコンテンツオブジェクトとは異なっているかを判断するステップと、
異なっている前記コンテンツオブジェクトに対するインタレストの集合を送信するステップと、
を含むコンピュータ可読記憶媒体。
【請求項２】
前記局所マニフェストが前記遠隔マニフェストとは異なっていると判断するステップが前記局所マニフェストのルートハッシュ値が前記遠隔マニフェストのルートハッシュ値とは異なっていることを判断するステップを更に含み、マニフェストのルートハッシュ値は前記マニフェストのコンテンツオブジェクトを識別する、請求項１に記載の記憶媒体。
【請求項３】
遠隔マニフェストに対するリクエストを送信するステップが、各インタレストが前記マニフェストの番号付きチャンクに対応しているチャンキングプロトコルに基づいて、インタレストの集合を送信するステップを更に含む、請求項１に記載の記憶媒体。
【請求項４】
異なっているコンテンツオブジェクトに対するインタレストの集合を送信するステップが前記コンテンツオブジェクトのハッシュ値および前記マニフェストに示されているコンテンツオブジェクトのネームの一以上に基づいている請求項１の記憶媒体。
【請求項５】
前記コンテンツオブジェクトに対するネームが最も一般的なレベルから最も特定なレベルまで順序付けされた連続的なネームコンポーネントを含む階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり、前記ネームがコンテンツオブジェクトが変更された時間および前記コンテンツオブジェクトが変更された時間に基づいたシーケンス番号の一以上を更に示す請求項１に記載の記憶媒体。
【請求項６】
前記方法が、後の時間がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトが変更された時間、より大なるシーケンス番号がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトが変更された時間に基づくシーケンス番号、および暗黙的仕分け順序がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトのネームの順序付けの一以上に基づいて、前記遠隔マニフェストにおけるコンテンツオブジェクトが前記局所マニフェストにおけるコンテンツオブジェクトより新しいかどうかを判断するステップを更に含む、請求項１に記載の方法。
【請求項７】
前記遠隔マニフェストのコンテンツオブジェクトが前記局所マニフェストのコンテンツオブジェクトより新しいとの判断に応答して、前記局所マニフェストの前記コンテンツオブジェクトの値を前記遠隔マニフェストの前記コンテンツオブジェクトの値で更新し、よって、前記局所ノードと前記遠隔ノードの両方のマニフェストに関連付けられたコンテンツオブジェクトの同期を容易にするステップを更に含む請求項６に記載の記憶媒体。
【請求項８】
前記遠隔マニフェストのコンテンツオブジェクトの変更時間が前記局所マニフェストの対応しているコンテンツオブジェクトの変更時間より新しくないとの判断に応答して、前記遠隔マニフェストの前記コンテンツオブジェクトの対応する値および変更時間を前記局所マニフェストのコンテンツオブジェクトの履歴フィールドに挿入するステップを更に含む請求項６に記載の記憶媒体。
【請求項９】
前記局所ノードによって送信または受信されたパケットが、前記マニフェストを識別する経路指定可能なプレフィックス、前記パケットがデータの転送に対応していることを判断する識別子、および前記マニフェストのルートハッシュ値、チャンキングプロトコルに基づいた番号付きチャンクに対応している番号、前記コンテンツオブジェクトのハッシュ、および前記マニフェストの前記コンテンツオブジェクトのネームの一以上を示している請求項１に記載の記憶媒体。
【請求項１０】
コンピュータ実行時に前記コンピュータに方法を実行させる命令を格納した非一時的コンピュータ可読記憶媒体であって、
前記方法が、
局所ノードによって、マニフェストがノードにおいてコンテンツオブジェクトのコレクションを表しているマニフェストに対応しているアドバタイズメントを送信するステップと、
前記マニフェストに対するリクエストを受信し次第、遠隔ノードへ前記マニフェストを送信するステップと、
前記マニフェストに関連付けられたリクエストされたコンテンツオブジェクトを遠隔ノードへ送信するステップと、
を含む、
コンピュータ可読記憶媒体。
【請求項１１】
チャンキングプロトコルに基づいて、各々が前記マニフェストの番号付きチャンクに対応しているインタレストの集合を受信するステップを更に含む請求項１０に記載の記憶媒体。
【請求項１２】
前記送信されたアドバタイズメントに対応しているインタレストが、前記マニフェストを識別する経路指定可能なプレフィックス、前記インタレストが前記マニフェストのアドバタイズメントに対応していることを判断する識別子、および前記マニフェストのルートハッシュ値の一以上を示している請求項１０に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ同期化に係り、より詳細には、完全に一致したネームを使って、ネットワーク上のピア間のコレクションの同期を実行することに関する。
【背景技術】
【０００２】
数多くのコンピューティングアプリケーションにおいて、多くの場合、ネットワーク上のピアがデータの各々のコレクションを同期させることが重要である。ディジタルコンテンツの肥大化は、調整を必要とするぼう大な数のコレクションを作り出している。このようなディジタルコンテンツへのアクセスやプロセッシングを容易にするためにコンテンツセントリックネットワーク（ＣＣＮ）アーキテクチャが設計されている。ＣＣＮは、様々なコンテンツアイテムに対する「興味関心（インタレスト）」パケットを送信し、引き換えに、「コンテンツオブジェクト」パケットを受信することによって互いに通信する、ネットワーククライアント、フォワーダ（例えば、ルータ）、コンテンツプロデューサなどのエンティティ、またはノードを含む。ＣＣＮのインタレストおよびコンテンツオブジェクトは一意名に基づいて識別され、一意名は、通常、最も一般的なレベルから最も特定のレベルまで順序付けられる連続的なネームを含む階層的に構造化された可変長の識別子（ＨＳＶＬＩ）である。
【０００３】
現在のＣＣＮ同期プロトコルは最長プレフィックスマッチング法を使用しており、この方法において、“／ｐａｒｃ／ｅｖｅｎｔｓ／”のインタレストは“／ｐａｒｃ／ｅｖｅｎｔｓ／ｃａｌｅｎｄａｒ．ｔｘｔ”と“／ｐａｒｃ／ｅｖｅｎｔｓ／ｃｏｎｆｅｒｅｎｃｅ．ｔｘｔ．”の両方に一致している。この既存の同期プロトコルは、インタレストのあるネームを拡張する応答に基づいて作成される。この同期プロトコルは、以下の出願、即ち、２０１２年１２月１９日付けで出願された、発明者、Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ（ヴァン、エル、ヤコブソン）とＭａｒｃ  Ｅ．  Ｍｏｓｋｏ（マルク、イー、モスコ）による「ＤＹＮＡＭＩＣ  ＲＯＵＴＩＮＧ  ＰＲＯＴＯＣＯＬＳ  ＵＳＩＮＧ  ＤＡＴＡＢＡＳＥ  ＳＹＮＣＨＲＯＮＩＺＡＴＩＯＮ（データベース同期を使用したダイナミックルーティングプロトコル）」と題された米国特許出願第１３／７２０，７３６号（代理人整理番号ＰＡＲＣ−２０１１１３９７−ＵＳ−ＮＰ）（以下、米国特許出願第１３／７２０，７３６号）、および、２０１２年１１月１９日付けで出願された、発明者、Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ（ヴァン、エル、ヤコブソン）とＭａｒｃ  Ｅ．  Ｍｏｓｋｏ（マルク、イー、モスコ）による「ＤＡＴＡ  ＴＲＡＮＳＰＯＲＴ  ＢＹ  ＮＡＭＥＤ  ＣＯＮＴＥＮＴ  ＳＹＮＣＨＲＯＮＩＺＡＴＩＯＮ（名付けられたコンテンツ同期によるデータトランスポート）」と題された米国特許出願第１３／６８１，３０６号（代理人整理番号ＰＡＲＣ−２０１１１３１７−ＵＳ−ＮＰ）（以下、米国特許出願第１３／６８１，３０６号）に、記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＣＮアーキテクチャが進化するにつれて、既存の最長プレフィックスの一致よりむしろ、ネームの完全一致を可能にする同期プロトコルが必要とされている。このような新しいアーキテクチャにおいて、現在のＣＣＮ同期プロトコルは機能しないという問題があった。
【課題を解決するための手段】
【０００５】
一実施形態は、完全一致するネームを使用して局所ノードと遠隔ノードの間のデータのコレクションの同期を容易にするシステムを提供する。動作中、局所ノードは、遠隔ノードにおいて遠隔マニフェストに対応するアドバタイズメントを受信する。マニフェストはノードにおけるコンテンツオブジェクトのコレクションを表している。一部の実施形態において、マニフェストはコレクションのコンテンツオブジェクトを識別するルートハッシュ値に対応している。局所ノードは、局所マニフェストと遠隔マニフェストの両方が同じコンテンツオブジェクトコレクションを示していると判断する。その後、局所ノードは、局所マニフェストのルートハッシュ値を遠隔マニフェストのルートハッシュ値と比較することによってコレクションのコンテンツが異なっているかどうかを判断する。マニフェストのルートハッシュ値が異なっているとの判断に応答して、局所ノードは遠隔マニフェストに対するリクエストを送信ことによって遠隔マニフェストを検索する。局所ノードは遠隔マニフェストにおいて識別されたどのコンテンツオブジェクトが局所マニフェストにおいて識別されたコンテンツオブジェクトとは異なっているかを判断する。局所ノードは異なっているコンテンツオブジェクトに対してインタレストの集合を送信し、コンテンツオブジェクトのリクエストされた集合を受信し、これによって、局所ノードおよび遠隔ノードの両方におけるマニフェストに関連付けられたコンテンツオブジェクトの同期を容易にする。
【０００６】
別の実施形態において、局所ノードは、各インタレストがマニフェストの番号付きチャンク（塊）に対応しているチャンキング（塊化）プロトコルに基づいて、インタレストの集合を送信することによって遠隔マニフェストに対するリクエストを送信する。
【０００７】
別の実施形態において、局所ノードは、コンテンツオブジェクトのハッシュ値およびマニフェストにおいて示されているコンテンツオブジェクトのネームの一以上に基づいて、異なっているコンテンツオブジェクトに対してインタレストの集合を送信する。
【０００８】
一部の実施形態において、コンテンツオブジェクトに対するネームは最も一般的なレベルから最も特定なレベルまで順序付けされた連続的なネームコンポーネントを含む階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり、ネームはコンテンツオブジェクトが変更された時間とこの変更時間に基づいたシーケンス番号の一以上を更に示している。
【０００９】
一部の実施形態において、局所ノードは、後の時間がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトが変更された時間、より大なるシーケンス番号がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトが変更された時間に基づくシーケンス番号、および暗黙的仕分け順序がより新しいバージョンのコンテンツオブジェクトを示すコンテンツオブジェクトのネームの順序付けの一以上に基づいて、遠隔マニフェストにおけるコンテンツオブジェクトが局所マニフェストにおけるコンテンツオブジェクトより新しいかどうかを判断する。
【００１０】
一部の実施形態において、遠隔マニフェストのコンテンツオブジェクトの変更時間が局所マニフェストのコンテンツオブジェクトの変更時間より新しいとの判断に応答して、システムは、局所マニフェストのコンテンツオブジェクトの値を遠隔マニフェストのコンテンツオブジェクトの値で更新する。
【００１１】
一部の実施形態において、遠隔マニフェストのコンテンツオブジェクトの変更時間が局所マニフェストの対応しているコンテンツオブジェクトの変更時間より新しくないとの判断に応答して、システムは、遠隔マニフェストのコンテンツオブジェクトの対応する値と変更時間を局所マニフェストのコンテンツオブジェクトの履歴フィールドへ挿入する。
【００１２】
一部の実施形態において、局所ノードによって送受信されるパケットは、マニフェストを識別する経路指定可能なプレフィックス、パケットがデータの転送に対応していることを判断する識別子、およびマニフェストのルートハッシュ値、チャンキングプロトコルに基づいて番号付きチャンクに対応している番号、コンテンツオブジェクトのハッシュ、およびマニフェストのコンテンツオブジェクトのネームの一以上を示している。
【００１３】
一部の実施形態において、局所ノードは、マニフェストがノードにおいてコンテンツオブジェクトのコレクションを示しているマニフェストに対応しているアドバタイズメントを送信する。局所ノードは、マニフェストに対するリクエストを受信し次第、遠隔ノードへマニフェストを送信する。局所ノードは、遠隔ノードへ、マニフェストに関連付けられたリクエストされたコンテンツオブジェクトを送信する。
【００１４】
一部の実施形態において、送信されたアドバタイズメントに対応しているインタレストは、マニフェストを識別する経路指定可能なプレフィックス、インタレストがマニフェストのアドバタイズメントに対応していることを判断する識別子、およびマニフェストのルートハッシュ値の一以上を示している。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の一実施形態によるコンテンツセントリックネットワークにおけるノード間のマニフェストの同期を容易にする例示的なコンピュータシステムを示す図である。
【図２】図２は、本発明の一実施形態による局所ノードと遠隔ノードの間の例示的な通信を示す図である。
【図３】図３は、本発明の一実施形態による遠隔マニフェストと局所マニフェストに関連付けられたコンテンツを同期させる方法を示す流れ図である。
【図４】図４は、本発明の一実施形態による、変更時間に基づいて、遠隔マニフェストと局所マニフェストに関連付けられたコンテンツを同期させる方法を示す流れ図である。
【図５】図５は、本発明の一実施形態による、マニフェストに対応しているアドバタイズメントを送信するための方法を示す流れ図である。
【図６Ａ】図６Ａは、本発明の一実施形態による、マニフェストのフォーマットおよびコレクションにおいて表されたコンテンツオブジェクトを示す表である。
【図６Ｂ】図６Ｂは、本発明の一実施形態による、局所マニフェストが遠隔マニフェストからのコンテンツオブジェクトを欠いている同期中の二つのマニフェストのフォーマットを示す表である。
【図６Ｃ】図６Ｃは、本発明の一実施形態による、局所マニフェストにおける同じネームのコンテンツオブジェクトのダイジェストが遠隔マニフェストにおけるダイジェストとは異なっており、かつ、遠隔ノードがそのマニフェストをアドバタイズする、同期中の二つのマニフェストのフォーマットを示す表である。
【図６Ｄ】図６Ｄは、本発明の一実施形態による、局所マニフェストにおける同じネームのコンテンツオブジェクトのダイジェストが遠隔マニフェストにおけるダイジェストとは異なっており、かつ、局所ノードがそのマニフェストをアドバタイズする、同期中の二つのマニフェストのフォーマットを示す表である。
【図６Ｅ】図６Ｅは、本発明の一実施形態による、局所マニフェストにおける同じネームのコンテンツオブジェクトのダイジェストおよび変更時間が遠隔マニフェストにおけるダイジェストおよび変更時間とは異なっている、同期中の二つのマニフェストのフォーマットを示す表である。
【図７】図７は、本発明の一実施形態による、コンテンツセントリックネットワークにおけるマニフェストの同期を容易にする例示的なコンピュータおよび通信システムを示す図である。
【発明を実施するための形態】
【００１６】
図中、同様の図形要素には同様の参照番号を付す。
【００１７】
以下の説明は当業者が実施形態を作成し利用することを可能にするために提示され、特定の出願やその要件に関して提供される。本開時の実施形態への様々な改変は、当業者にとって容易に理解され、本明細書中に定義された一般的な原理は本開示の精神および範囲を逸脱しない限り、他の実施形態および用途に適用可能である。よって、本発明は、図示されている実施形態に限定されないが、本明細書に開示されている原理および特性に符合する最も広い範囲で付与される。
【００１８】
本発明の実施形態は、完全一致ネームを使用して、ネットワーク上のノード間のマニフェストの同期を容易にするシステムを提供する。本発明の実施形態の以下の説明において、関連するＣＣＮエンティティは局所ノードと遠隔ノードであり、その役割は逆でもよい。局所および遠隔ノードの各々はノードにおけるコンテンツオブジェクトのコレクションを表すマニフェストに関連付けられる。マニフェストは特定のプレフィックスで識別され、よって、同じプレフィックスを有する二つのマニフェストがコンテンツオブジェクトの同じコレクションに対応する。
【００１９】
一部の実施形態において、マニフェストはコンテンツオブジェクトのコレクションを識別する順序付けられたリストである。コレクション中の各コンテンツオブジェクトはそのネームと対応するダイジェストによって識別され、このダイジェストはコンテンツオブジェクトのハッシュ値である。一部の実施形態において、各コンテンツオブジェクトはコンテンツが変更された時間を表す変更時間によっても識別される。この説明のために、マニフェストは、順序付けられたリストとして記載されているが、他の実施形態は、コンテンツオブジェクトだけでなく入れ子状のコンテンツオブジェクトのコレクションを含む同期化ツリーとして構造化されたマニフェストを含む。システムはマニフェストに対するルートハッシュ値を生成する。ルートハッシュ値はコレクションの個々のコンテンツオブジェクトのハッシュ値に基づいた相加的ハッシュ値である。マニフェストのルートハッシュ値はマニフェストの一意の識別子である。
【００２０】
システムは、完全一致ネームを使用して、局所マニフェスト内のコンテンツに局所マニフェストのコレクションを同期させることができる。遠隔ノードはそのマニフェストのハッシュを公示（アドバタイズ）する。局所ノードは、アドバタイズメントを受信し、アドバタイズされた遠隔マニフェストが局所マニフェストに対応すると判断し、これによって、遠隔マニフェストおよび局所マニフェストが同じコンテンツオブジェクトコレクションに対応する。局所ノードは、局所マニフェストのルートハッシュ値を遠隔マニフェストのルートハッシュ値と比較することにより、局所マニフェストのコンテンツが遠隔マニフェストのコンテンツに同期するかどうかを判断する。これらのコンテンツが一致しない場合、局所ノードは、遠隔ノードへ遠隔マニフェストに対するリクエストを送信することによって遠隔マニフェストを検索する。一部の実施形態において、局所ノードは、チャンキングプロトコルに基づくインタレストの集合を送信し、各インタレストは、マニフェストの番号付きチャンクに対応している。一部の実施形態において、遠隔ノードは、そのマニフェストに対応するチャンクの数をアドバタイズすることができる。局所ノードは、遠隔マニフェストを所有して、遠隔マニフェストに示されたコンテンツオブジェクトのどのコンテンツオブジェクトが局所マニフェストに示されたコンテンツオブジェクトとは異なっているかを判断する。次に、局所ノードは、（インタレストがリクエストされたコンテンツオブジェクトのネームを含む）異なっているコンテンツオブジェクトに対してインタレストの集合を送信する。一部の実施態様において、インタレストはリクエストされたコンテンツオブジェクトに対応しているハッシュ値も含む。このように、システムはリクエストに完全に一致するネームを使用し、様々なコンテンツオブジェクトの集合を受信する。
【００２１】
一部の実施形態において、マニフェストは、完成したマニフェストを送ることよりもむしろ、ｒｓｙｎｃプロトコルにおいてロールハッシュ技術などの構造化された技術を使用して送信される。
【００２２】
一部の実施形態において、コレクション内のコンテンツオブジェクトは、コンテンツオブジェクトが変更された時間を示す、対応する変更時間によって更に識別される。異なっていると判断されたコンテンツオブジェクト毎に、局所ノードは、遠隔マニフェストにおけるコンテンツオブジェクトの変更時間が局所マニフェストにおける対応するコンテンツオブジェクトより後なのかまたはより前なのかを判断する。遠隔コンテンツオブジェクトがより新しいバージョンに対応する場合、局所ノードは、局所マニフェストにおけるコンテンツオブジェクトの値を遠隔マニフェストからのコンテンツオブジェクトの値で更新する。データコレクションからのコンテンツアイテムを取り去る方法、または「ホワイトアウトする」方法は、米国特許出願第１３／６８１，３０６号に記載されている。
【００２３】
一部の実施形態において、コンテンツオブジェクトのネームは、階層的に構造化された可変長の識別子（ＨＳＶＬＩ）であり、最新バージョンのコンテンツオブジェクトを判断するためにマニフェストにおける変更された時間の代わりに使用されるバージョン番号、タイムスタンプ、または暗黙的仕分け順序を示している。
【００２４】
一部の実施形態において、遠隔コンテンツオブジェクトが新しくないバージョンに対応している場合、システムは、遠隔マニフェストからのコンテンツオブジェクトの値を局所マニフェストにおいて対応するコンテンツオブジェクトの履歴フィールドへ挿入することによって、この履歴を保持すべきかを判断することができる。これに応じて、システムは、異なっていると判断されたコンテンツオブジェクト毎に値を更新する。このように、システムは、局所ノードにおけるマニフェストを遠隔ノードにおけるマニフェストに同期させる。
【００２５】
一部の実施形態において、ネットワーククライアント、ネットワークノード（例えば、ルータなどのフォワーダ）および配信者は、情報セントリックネットワーク（ＩＣＮ）を介して通信する。ＩＣＮにおいて、コンテンツの各部分は、個別に名付けられ、データの各部分は他のバージョンの同じデータまたは他のソースからのデータなどのデータの任意の他の部分からデータを区別する一意名に結合される。この一意名は、ネットワークデバイスに、リクエストまたはこの一意名を示すインタレストを展開することによって、データをリクエストさせるとともに、データの格納場所やネットワークの場所やアプリケーションや交通手段とは無関係のデータを取得することができる。ネーム付きデータネットワーク（ＮＤＮ）またはコンテンツセントリックネットワーク（ＣＣＮ）は、ＩＣＮアーキテクチャの例であり、以下の用語はＮＤＮまたはＣＣＮアーキテクチャのエレメントを説明している：
【００２６】
コンテンツオブジェクト：一意名に結合されたネーム付きデータの一部分。コンテンツオブジェクトは、コンテンツオブジェクトが、コンピューティングデバイス内または複数のコンピューティングデバイスを介してあちこち動き回ることができるが変化することはないという意味で「永続的」である。コンテンツオブジェクトの任意のコンポーネントが変化する場合、その変化したエンティティは更新されたコンテンツを含む新しいコンテンツオブジェクトを作成しかつ新しい一意名に新しいコンテンツオブジェクトを結び付ける。
【００２７】
一意名：ＩＣＮ内のネームは、通常、独立した場所であり、コンテンツオブジェクトを一意に識別する。データ転送デバイスは、コンテンツオブジェクトに対するネットワークアドレスまたは物理的場所とは無関係に、コンテンツオブジェクトを生成または格納するネットワークノードに向けてパケットを転送するためにネームまたはネームプレフィックスを使用することができる。一部の実施形態において、ネームは、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であってよい。ＨＳＶＬＩは、様々な方法で構造化するいくつかの階層的コンポーネントに分割され得る。例えば、個々のネームのコンポーネントのｐａｒｃ，  ｈｏｍｅ，  ｎｄｎ，  およびｔｅｓｔ．ｔｘｔは、ネーム“／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ／ｔｅｓｔ．ｔｘｔ”を形成するために左配向プレフィックス主要方法において構成され得る。よって、ネーム“／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ”は、“／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ／ｔｅｓｔ．ｔｘｔ”の「親」または「プレフィックス」であり得る。共同ドキュメントなどの様々なバージョンのコンテンツアイテムを互いから区別するために更なるコンポーネントを使用することができる。
【００２８】
一部の実施形態において、ネームは、コンテンツオブジェクトのデータ（例えば、チェックサム値）および／またはコンテンツオブジェクトのネームのエレメントから導出されたハッシュ値などの非階層的識別子を含むことができる。ハッシュベースのネームの説明は、（発明者イグナシオ、ソリス（Ｉｇｎａｃｉｏ  Ｓｏｌｉｓ）による「ネームベースのパケット転送のための順序付けされたエレメントネーミング（“ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ”）」と題された２０１３年３月２０日出願された）米国特許出願第１３／８４７，８１４号に記載されている。ネームもフラットラベル化され得る。以下では、「ネーム」は、階層的ネームまたはネームプレフィックス、フラットネーム、固定長ネーム、任意長ネーム、またはラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）などのネームデータネットワークにおけるデータの一部に代わる任意のネームに言及するために使用される。
【００２９】
インタレスト：データの一部分に対するリクエストを示し、データの一部分に対するネーム（またはネームプレフィックス）を含むパケット。データ消費者が情報セントリックネットワークに介してリクエストまたはインタレストを展開することにて、ＣＣＮ／ＮＤＮルータは、記憶装置（例えば、キャッシュサーバ）またはリクエストやインタレストを満たすためにリクエストされたデータを提供することができるデータプロデューサへ向かって伝搬することができる。
【００３０】
一部の実施形態において、ＩＣＮシステムはコンテンツセントリックネットワーキング（ＣＣＮ）アーキテクチャを含むことができる。しかしながら、本明細書に開示された方法は他のＩＣＮアーキテクチャに適用することも可能である。ＣＣＮアーキテクチャの記載は、発明者ヴァン、エル、ヤコブソン（Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ）およびダイアナ、ケー、スメッター（Ｄｉａｎａ  Ｋ．  Ｓｍｅｔｔｅｒｓ）により、２００８年１２月１８日に出願され、「コンテンツセントリックネットワークにおけるインタレストとコンテンツの拡散コントロール（“ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ”）」と題された米国特許出願第１２／３３８，１７５号に記載されている。
【００３１】
図１は、本発明の一実施形態による、コンテンツセントリックネットワーク（ＣＣＮ）におけるノード間のマニフェストの同期を容易にする例示的なネットワーク１００を示している。ネットワーク１００は、クライアントデバイス１１６、コンテンツ生成デバイス１１８、およびノード１０２、１０４、１０６、１０８、１１０、１１２および１１４におけるルータまたは他のフォワーダを含むことができる。ノード１０２〜１１４は各々、一以上のマニフェストを含むことができる。例えば、ノード１１２は、マニフェスト１２０を含む。マニフェスト１２０は、コレクションネーム１２４と、以下のコンテンツオブジェクトネーム１３０．１−１３０．ｎ、ダイジェスト１３２．１−１３２．ｎ、および変更時間１３４．１−１３４．ｎの一以上によって識別されるコンテンツオブジェクトの順序付けされたリストと、を含む。ダイジェスト１３２．１−１３２．ｎは、ネーム１３０．１−１３０．ｎによって各々識別されるコンテンツオブジェクトのハッシュ値を含む。ダイジェストは、（二つの異なるコンテンツオブジェクトの一方向ハッシュから同じ値が得られる）ハッシュ衝突の尤度が十分に低いことにてダイジェストはコンテンツオブジェクトに対する一意の識別子である、コンテンツオブジェクトのＳＨＡ−２５６ハッシュであり得る。マニフェスト１２０は、コレクションの個別のコンテンツオブジェクトのハッシュ値１３２．１−１３２．ｎに基づいた相加的ハッシュ値であるルートハッシュ１２２も含む。ルートハッシュ１２２は、マニフェスト１２０の一意の識別子であり、コレクションにおいてコンテンツオブジェクトを表す。
【００３２】
一部の実施形態において、マニフェストは、ネームと、対応するダイジェストと、を示すが、変更時間は示さない。このようなシステムは、その前のバージョンのテキストファイルが重要でありよってこのシステムによって保持される、例えば、ファイルサーバを含むことができる。他の実施形態において、マニフェストは、ネーム、対応するダイジェスト、および変更時間を示す。システムは、どのバージョンのコンテンツアイテムを保持すべきかを判断するために変更時間を使用することができる。例えば、コンテンツアイテムがリンク状態を示す場合、システムはその前のバージョンに関連する情報を必要としない。この場合、最新の更新時間を有するコンテンツオブジェクトのみが保持される。
【００３３】
ネットワーク内の任意の二つのノードは、同じコレクションのデータを表すマニフェストを含むことができる、よって、マニフェストは本明細書に記載された方法を使って同期され得る。用語「局所ノード」と「遠隔ノード」は、コンテンツセントリックネットワーク（ＣＣＮ）における任意のノードに適用可能であり、本開示においてＣＣＮ内の二つのノードを差別化するために使用される。
【００３４】
二つのノード間のデータの同じコレクションを表しているマニフェストの同期は、三つの部分名に基づいている。第１の部分は“／ａ／ｂ”などのコレクションを識別する経路指定可能なプレフィックスである。第２の部分は関連するネームスペースの識別を含み、アドバタイズメントの“／ａｄｖ”、または、データ転送の“／ｄａｔａ”のいずれかである。第３の部分は、アドバタイズまたは転送されているハッシュ値またはコンテンツである。よって、ＣＣＮネームは
／ｃｏｌｌｅｃｔｉｏｎ＿ｐｒｅｆｉｘ／ａｄｖ＿ｏｒ＿ｄａｔａ／ｐｒｏｔｏｃｏｌ＿ｄａｔａ
のフォームで表される。
例えば、ハッシュアドバタイズメントを送信するインタレストは、
／ａ／ｂ／ａｄｖ／＜ｒｏｏｔｈａｓｈ＞
で表される。
このアドバタイズメントを受信しかつ同じ経路指定可能なプレフィックス“／ａ／ｂ”を有する局所マニフェストを含む局所ノードは、チャンキングプロトコルに基づいたチャンク０，１．．．．．最終チャンクｍ個においてアドバタイズされたマニフェストを検索する。このようなインタレストは、
／ａ／ｂ／ｄａｔａ／＜ｒｏｏｔｈａｓｈ＞／＜ｃｈｕｎｋ  ｎｕｍｂｅｒ＞
と表される。
【００３５】
検索されたマニフェストのエントリに基づいて、システムは検索されたマニフェストにおいて識別されたどのコンテンツオブジェクトが局所マニフェストで識別されたコンテンツオブジェクトとは異なっているかを判断する。システムはコンテンツオブジェクトのネームに基づいて異なるコンテンツオブジェクトを検索する：
／ａ／ｂ／ｄａｔａ／＜ｎａｍｅ  ｏｆ  ｃｏｎｔｅｎｔ  ｏｂｊｅｃｔ＞
一部の実施形態において、システムはリクエストされたコンテンツオブジェクトのハッシュ値に基づいて異なるコンテンツオブジェクトを検索する：
／ａ／ｂ／ｄａｔａ／＜ｈａｓｈ（ｃｏｎｔｅｎｔ  ｏｂｊｅｃｔ）＞
一部の実施形態において、システムはマニフェストのネームに基づいて異なるコンテンツオブジェクトを検索する。この技術はシステムにコレクションのネームスペースの下のコンテンツのネームを使うよりむしろオブジェクトのキャッシュされたコピーを検索させる。例えば、図６Ｂにおけるマニフェスト１４０から第１のアイテムを検索するために、システムはネームおよびダイジェクトに対してインタレストを送信する：
／ｃｈｅｆ／ｅｖｅｎｔｓ／ｃａｌｅｎｄａｒ．ｔｘｔ，  ｄｉｇｅｓｔ  ＝  ｛１｝
【００３６】
図２は、本発明の一実施形態による、ノード２０２（遠隔ノード）とノード２０６（局所ノード）との間の例示的な通信２００を示している。ノード２０２とノード２０６は各々、同じルーティングプレフィックスまたはコレクションネーム“／ａ／ｂ”を有するマニフェストを含む。遠隔ノード２０２は、コレクションネーム“／ａ／ｂ”によって識別されたそのマニフェストのルートハッシュ値を含むハッシュアドバタイズメントである、ｓｅｎｄ＿ａｄｖｅｒｔｉｓｅｍｅｎｔ（アドバタイズメント送信）インタレスト２２０を送信する。インタレストは、“／ａ／ｂ／ａｄｖ／＜ｒｏｏｔｈａｓｈ＞”のフォームをとっている。局所ノード２０６はアドバタイズされたインタレストを受信し、同じコレクションプレフィックス（“／ａ／ｂ”）に基づいて、ノード２０６がアドバタイズされたマニフェストと同じコレクションを示すマニフェストを含むかどうかを判断するために、ｃｈｅｃｋ＿ａｄｖｅｒｔｉｓｅｄ＿ｃｏｌｌｅｃｔｉｏｎ（アドバタイズされたコレクションチェック）手順２２２を実行する。その後、局所ノード２０６は、その局所マニフェストのルートハッシュが遠隔マニフェストのルートハッシュと異なっているかどうかを判断する。ハッシュ値が異なることはコレクションが互いに同期化される必要があることを示す。その後、局所ノード２０６は、マニフェストに対してインタレストの集合を送ることにより、ｒｅｔｒｉｅｖｅ＿ｍａｎｉｆｅｓｔ（マニフェスト検索）手順２２４を実行する。インタレストの集合はチャンキングプロトコルに基づいて複数のチャンクへ分割される。インタレストは、ｒｅｑｕｅｓｔ＿ｍａｎｉｆｅｓｔ＿ｉｎ＿ｃｈｕｎｋｓ  ｍｅｓｓａｇｅ（チャンクマニフェスト要求）メッセージ２２６において送信され、“／ａ／ｂ／ｄａｔａ／＜ｒｏｏｔｈａｓｈ＞／Ｃ０”、“／ａ／ｂ／ｄａｔａ／＜ｒｏｏｔｈａｓｈ＞／Ｃ１”、“／ａ／ｂ／ｄａｔａ／＜ｒｏｏｔｈａｓｈ＞／Ｃ２，”などのフォームをとっており、ここで、“Ｃ０”はマニフェストの第１のチャンク（以下同様）を示している。一部の実施形態において、アドバタイズメントノードはそのマニフェストを転送するために必要とされるチャンク数を含むことができる。ｓｅｎｄ＿ｍａｎｉｆｅｓｔ＿ｉｎ＿ｃｈｕｎｋｓ（チャンクマニフェスト送信）メッセージ２２８において、遠隔ノード２０２は、インタレスト集合に応答して、リクエストされたマニフェストを送り返す。リクエストされたコンテンツオブジェクトは、“／ａ／ｂ／ｄａｔａ／＜ｒｏｏｔｈａｓｈ＞／Ｃ０＋ｐａｙｌｏａｄ”のフォームをとっており、ペイロードはマニフェストのリクエストされたチャンクを含む。
【００３７】
局所ノード２０６は、遠隔マニフェストを所有して、ｄｅｔｅｒｍｉｎｅ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ（差集合を求める）手順２３０を実行する。一部の実施形態において、この手順の結果は、ネームによって識別されたコンテンツオブジェクトのリストである。他の実施形態において、この結果は、対応するダイジェストによって識別されたコンテンツオブジェクトのリストである。その後、局所ノード２０６は、異なっていると判断されたコンテンツオブジェクト毎に、ｒｅｑｕｅｓｔ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ  ｉｎｔｅｒｅｓｔ（差集合インタレスト要求）２３４を送信する。インタレストは、例えば、“／ａ／ｂ／ｄａｔａ／ｎａｍｅ  １３０．３”のフォームをとる。局所ノード２０６は、遠隔ノード２０２がｓｅｎｄ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ（差集合送信）コンテンツオブジェクト２３６を送信したときにリクエストされたコンテンツオブジェクトを受信するが、その際、リクエストされたコンテンツオブジェクトは“／ａ／ｂ／ｄａｔａ／ｎａｍｅ  １３０．３＋ｐａｙｌｏａｄ”のフォームをとる。従って、局所ノード２０６は、局所マニフェストのコンテンツが遠隔マニフェストのコンテンツに同期するように異なっていると判断された全てのコンテンツオブジェクトをリクエストし受信する。一部の実施形態において、局所ノード２０６は、図４に関連して以下に説明される、ｓｙｎｃ＿ｂａｓｅｄ＿ｏｎ＿ｍｏｄ＿ｔｉｍｅ（変更時間に基づく同期）手順２４０を実行する。
【００３８】
図３は、本発明の一実施形態による、遠隔マニフェストと局所マニフェストに関連付けられたコンテンツを同期させるための方法を示す流れ図３００である。以下の説明において、局所ノードは、図２では、ノード１０６として示され、遠隔ノードは、図２では、ノード１０２として示される。局所ノードは遠隔ノードにおいて遠隔マニフェストに対応しているアドバタイズメントを受信する（動作３０２）。マニフェストはノードにおけるコンテンツオブジェクトのコレクションを表している。局所ノードは、遠隔マニフェストと局所マニフェストがコンテンツオブジェクトの同じコレクションを示していると判断する（図２におけるｃｈｅｃｋ＿ａｄｖｅｒｔｉｓｅｄ＿ｃｏｌｌｅｃｔｉｏｎ（アドバタイズされたコレクションチェック）手順２２２に対応している動作３０４）。一部の実施形態において、局所ノードは、マニフェストのコレクションネームまたはルーティングプレフィックスを比較することにより、マニフェストが同じコレクションを示すかどうかを判断する。その後、局所ノードは、その局所マニフェストのルートハッシュ値が遠隔マニフェストのルートハッシュ値とは異なっているかどうかを判断する（動作３０６）。マニフェストのルートハッシュ値は、マニフェストに対する一意の識別子であり、マニフェストにおいて表されたコンテンツオブジェクトのダイジェストの相加的ハッシュ値を含む。局所マニフェストのルートハッシュ値が同じ場合（判断３０８）、手順は戻る。
【００３９】
局所マニフェストのルートハッシュ値が遠隔マニフェストのルートハッシュ値と同じではない場合（判断３０８）、同じコレクションを表す局所および遠隔マニフェストが同期されず再調整する必要があることを意味する。局所ノードは遠隔マニフェストに対するリクエストを送信しこのリクエストに応答して遠隔マニフェストを受信することによって遠隔マニフェストをダウンロードまたは転送する（図２のｒｅｔｒｉｅｖｅ＿ｍａｎｉｆｅｓｔ（マニフェスト検索）手順２２４に対応する動作３１０）。
【００４０】
局所ノードは、遠隔マニフェストにおいて識別されたどのコンテンツオブジェクトが局所マニフェストで識別されたコンテンツオブジェクトと異なっているかを判断する（図２のｄｅｔｅｒｍｉｎｅ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ（差集合を求める）動作２３０に対応する動作３１２）。一部の実施形態において、局所ノードは局所マニフェストで識別されたコンテンツオブジェクトのダイジェストを遠隔マニフェストで識別された同じネームのコンテンツオブジェクトのダイジェストと比較することによって差集合を求める。局所ノードは、コンテンツオブジェクトの求められた差集合に対応しているインタレストの集合を送信し（動作３１４）、引き換えに、リクエストされたコンテンツオブジェクトを受信する（動作２３６）。これは、図２に示したｒｅｓｏｌｖｅ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ（差集合を解く）動作３１６に対応している。よって、局所マニフェストのコンテンツが遠隔マニフェストのコンテンツに同期される。
【００４１】
局所ノードが変化を有する場合、局所ノードは新しいルートハッシュ値をアドバタイズする。局所ノードはこれをすぐに行うか、または、ネットワークまたは他のタイミング検討に基づいて次のアドバタイズメントをスケジューリングすることができる。例えば、局所システムは毎秒少なくとも一回そのルートハッシュをアドバタイズすることができるが、その回数は４回までとされる。よって、調整中、更新によりルートハッシュが変化を有する際、システムは毎秒４回までアドバタイズできる。そうでない定常状態では、システムは毎秒一回アドバタイズできる。
【００４２】
図４は、本発明の実施形態による、変更された時間に基づいて、遠隔マニフェストと局所マニフェストに関連付けられたコンテンツを同期させるための方法を示す流れ図４００である。コンテンツの同期化がコンテンツオブジェクトに関連付けられたシーケンス番号に基づくことができ、より大なるシーケンス番号がより新しいバージョンのコンテンツオブジェクトを指していることに留意されたい。コンテンツの同期化はコンテンツオブジェクトのネームの順序に基づくことができ、暗黙的な仕分け順序はより新しいバージョンのコンテンツオブジェクトを示している。流れ図４００は、図２におけるｓｙｎｃ＿ｂａｓｅｄ＿ｏｎ＿ｍｏｄ＿ｔｉｍｅ動作２４０として示される、コンテンツオブジェクトの変更時間に基づく例示的な方法を示している。先に求められた差集合に基づいて、局所ノードは、対応するコンテンツオブジェクトが変更された時間を示す変更時間を含むリクエストされた集合のコンテンツオブジェクトを受信する（動作４０２）。コンテンツオブジェクト毎に、局所ノードは、遠隔マニフェストのコンテンツオブジェクトの変更時間が局所マニフェストの対応するコンテンツオブジェクトより後なのかまたは前なのかを判断する（動作４０４）。遠隔マニフェストからのコンテンツオブジェクトの変更時間が新しい場合（動作４０６）、システムは、局所マニフェストのコンテンツオブジェクトの値を遠隔マニフェストからのコンテンツオブジェクトの値で更新する（動作４０８）。いくつかの実施形態において、局所ノードは、局所マニフェストのコンテンツオブジェクトの値を更新する前に局所マニフェストの履歴フィールドへ（新しくない）コンテンツオブジェクトの対応する値および変更時間を挿入することによって、局所マニフェストのその（新しくない）コンテンツオブジェクトの値を保持するかどうかを判断する。検索を必要とする集合内にコンテンツオブジェクトがもっとある場合（判断４１０）、システムは動作４０４へ戻る。そうでない場合、システムは必要なコンテンツオブジェクトの検索を終了する。
【００４３】
遠隔マニフェストからのコンテンツオブジェクトの変更時間が局所マニフェストにおける対応するコンテンツオブジェクトより新しくない場合（動作４０６）、システムは、局所マニフェストの履歴フィールドへ（新しくない）コンテンツオブジェクトの対応する値および変更時間を挿入することによって（動作４１４）、遠隔マニフェストからの（新しくない）コンテンツオブジェクトの値を保存するか否かを判断する（判断４１２）。集合内に検索する必要があるコンテンツオブジェクトがもっとある場合（判断４１０）、システムは動作４０４に戻る。そうでない場合、システムは必要なコンテンツオブジェクトの検索を終了する。よって、異なっていると判断されたコンテンツオブジェクトが全て更新され、恐らくは、局所マニフェストの履歴フィールドに保持または保存され、これによって、局所マニフェストのコンテンツが遠隔マニフェストのコンテンツに同期される。
【００４４】
図５は、本発明の一実施形態による、マニフェストに対応するアドバタイズメントを送信するための方法を示す流れ図５００である。図５におけるノードは、パケットを遠隔ノードへ送信するので、局所ノードとして記述される。図５における局所ノードが、その前は遠隔ノード２０２と呼ばれていた図２のノード２０２に対応していることに留意されたい。コンテンツセントリックネットワーク（ＣＣＮ）などのネットワークにおける任意のノードは遠隔ノードまたは局所ノードと称され得ることを想起されたい。
【００４５】
局所ノードは、ノードにおけるコンテンツオブジェクトのコレクションを表すマニフェストに対応するアドバタイズメントを送信する（図２のｓｅｎｄ＿ａｄｖｅｒｔｉｓｅｍｅｎｔ（アドバタイズメント送信）メッセージ２２０に対応する動作５０２）。このアドバタイズメントは、ビーコンに類似し、使用される“／ａｄｖ”ネームスペースに基づくインタレストであり、返信コンテンツをリクエストしない。遠隔ノードからマニフェストに対するリクエストを受信し次第、局所ノードは、遠隔ノードへマニフェストを送信する（図２のｒｅｑｕｅｓｔ＿ｍａｎｉｆｅｓｔ＿ｉｎ＿ｃｈｕｎｋｓ  ｉｎｔｅｒｅｓｔ（チャンクインタレストのマニフェスト要求）２２６およびｓｅｎｄ＿ｍａｎｉｆｅｓｔ＿ｉｎ＿ｃｈｕｎｋｓ（チャンクのマニフェスト送信）メッセージ２２８の受信に対応する動作５０４）。局所マニフェストにおいて識別されたコンテンツオブジェクトに対する遠隔ノードからリクエストを受信し次第、局所ノードは、リクエスト側の遠隔ノードへリクエストされたコンテンツオブジェクトを送信する（図２のｒｅｑｕｅｓｔ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｃｅ  ｉｎｔｅｒｅｓｔ（差集合インタレスト要求）２３４およびｓｅｎｄ＿ｓｅｔ＿ｄｉｆｆｅｒｅｎｔ（差集合送信）メッセージ２３６を受信することに対応する動作５０６）。
【００４６】
図６Ａは、本発明の一実施形態による、マニフェスト１２０のフォーマット、およびコレクションにおいて表されるコンテンツオブジェクトを示す表である。マニフェスト１２０は、コレクションネーム１２２と、以下のコンテンツオブジェクトネーム１３０．１−１３０．ｎ、ダイジェスト１３２．１−１３２．ｎ、および変更時間１３４．１−１３４．ｎの一以上と、によって識別されるコンテンツオブジェクトの順序付けされたリストを含む。ダイジェスト１３２．１−１３２．ｎは、ネーム１３０．１−１３０．ｎによって各々識別されたコンテンツオブジェクトのハッシュ値を含む。マニフェスト１２０はまた、コレクションの個別のコンテンツオブジェクトのハッシュ値１３２．１−１３２．ｎに基づいた相加的ハッシュ値であるルートハッシュ１２４も含む。マニフェスト１２０のルートハッシュ１２４は、マニフェスト１２０に対する一意の識別子である。
【００４７】
図１に関して記載したように、マニフェスト１２０はコレクションにおいて表されたコンテンツオブジェクト毎にネームおよび対応するダイジェストを示すことができる。一部の実施形態において、マニフェスト１２０は、コレクションにおいて表されたコンテンツオブジェクト毎に変更時間も含むことができる。変更された時間フィールドの使用は、実行されている基礎となるアプリケーションやサービスに依存する。マニフェスト１２０がコレクションネーム１２４を示していることに留意されたい。図６Ｂ〜６Ｅに示されるマニフェストは、コレクションネームも含むが、例示的なマニフェストがデータの同じコレクションを含むので、図６Ｂ〜６Ｅにはコレクションネームが含まれていない。
【００４８】
図６Ｂ〜６Ｅは、各々がマニフェストを含む二つのノード、ノード１０２およびノード１０６を示している。この実施例において、ノード１０２は遠隔ノードであり、ノード１０６は局所ノードである。局所ノード１０６はマニフェスト１６０を含み、遠隔ノード１０２はマニフェスト１４０を含む。マニフェスト１４０および１６０は、同じコレクションネーム、またはルーティングプレフィックスを含むことにて、コンテンツオブジェクトまたはデータの同じコレクションを表している。時間は、ラベルＴ１、Ｔ２などによって示され、マニフェスト１４０および１６０のコンテンツはこれらの時間ラベルに対して示される。
【００４９】
マニフェストが、（コレクションの個別のコンテンツオブジェクトのダイジェストに基づいた相加的ハッシュ値である、）図６Ａにおいてルートハッシュ１２４として例示されたルートハッシュ値によって更に識別されることを想起されたい。以下の実施例において、ルートハッシュ値およびダイジェストは、これよりはるかに大なる場合があるが、例えば、“｛９９９｝”などのカッコ内の数値として示される。更に、経時的に変化するマニフェスト１４０とマニフェスト１６０のコンテンツオブジェクトのダイジェストおよび例示的なルートハッシュ値の両方が相加的ハッシュ値のサンプル表現としてのみ示される。
【００５０】
図６Ｂは、本発明の一実施形態による、局所マニフェストが遠隔マニフェストからコンテンツオブジェクトを欠いている、同期中の二つマニフェストのフォーマットを示したす表である。時間Ｔ１において、局所ノード１０６は、マニフェスト１４０の遠隔ノード１０２から、ルートハッシュ値｛９９９｝を有するハッシュアドバタイズメントを受信する。局所ノード１０６は、そのマニフェスト１６０が遠隔マニフェスト１４０と同じデータコレクションを表し、マニフェスト１４０を検索すると判断する。局所ノード１０６は、ルートハッシュ値｛６０｝を有する局所マニフェスト１６０がルートハッシュ値｛９９９｝を有している遠隔マニフェスト１４０に同期していないと判断する。その後、局所ノード１０６は、その局所マニフェスト１６０と遠隔マニフェスト１４０の差集合を求める。この例において、マニフェスト１６０は、ネーム“／ｆｒｕｉｔ／ｌｙｃｈｅｅ／ｐｅｅｌ”によって識別されたコンテンツオブジェクトを欠いていることにて、局所ノード１０６は遠隔ノード１０２へそのネームによってコンテンツオブジェクトに対してインタレストを送信する。遠隔ノード１０２はリクエストされたコンテンツオブジェクトを戻す。時間Ｔ２において、局所ノード１０６はそのマニフェスト１６０を欠落しているコンテンツオブジェクトで更新する。時間Ｔ２におけるマニフェスト１６０のコンテンツに基づいて、システムは、マニフェスト１６０に対して、この時点で、遠隔マニフェストのルートハッシュ値に等しい新しいルートハッシュ値を生成する。これは、時間Ｔ２におけるマニフェスト１６０のルートハッシュ値によって示される：｛６０｝→｛９９９｝。よって、局所マニフェストと遠隔マニフェストがこれらのコレクションを同期させ、両マニフェストが同じルートハッシュ値｛９９９｝を含む。
【００５１】
図６Ｃは、本発明の一実施形態による、局所マニフェストの同じネームのコンテンツオブジェクトのダイジェストが遠隔マニフェストのダイジェスト値とは異なっており、かつ、遠隔ノードがアドバタイズメントを送信し局所ノードが遠隔マニフェストを検索する、同期中の二つのマニフェストのフォーマットを示す表である。時間Ｔ３において、局所ノード１０６は、マニフェスト１４０の遠隔ノード１０２から、ルートハッシュ値｛９９９｝を有するハッシュアドバタイズメントを受信する。局所ノード１０６は、そのマニフェスト１６０が遠隔マニフェスト１４０と同じデータのコレクションを表しており、マニフェスト１４０を検索すると判断する。局所ノード１０６は、ルートハッシュ値｛５３｝を有する局所マニフェスト１６０が、ルートハッシュ値｛９９９｝を有している遠隔マニフェスト１４０に同期していないと判断する。その後、局所ノード１０６は、その局所マニフェスト１６０と遠隔マニフェスト１４０の差集合を求める。この実施例において、マニフェスト１６０が、ダイジェスト｛２７９｝を有するネーム“／ｆｒｕｉｔ／ｌｙｃｈｅｅ／ｐｅｅｌ”によって識別されたコンテンツオブジェクトを欠いていることにて、局所ノード１０６はそのネームおよびダイジェストに基づいたコンテンツオブジェクトに対するインタレストを、遠隔ノード１０２へ、送信する。遠隔ノード１０２はリクエストされたコンテンツオブジェクトを戻す。時間Ｔ４．ａにおいて、局所ノード１０６は、そのマニフェスト１６０を欠如しているコンテンツオブジェクトで更新する。時間Ｔ４．ａにおけるマニフェスト１６０のコンテンツに基づいて、システムはマニフェスト１６０に対して新しいルートハッシュ値を生成する。これは、時間Ｔ４．ａにおけるマニフェスト１６０のルートハッシュ値によって示される：｛５３｝→｛７７２｝。しかしながら、そのオリジナルのルートハッシュ値｛９９９｝を有するマニフェスト１４０は、この時点で、新しいルートハッシュ値｛７７２｝を有しているマニフェスト１６０に同期していない。
【００５２】
次に、遠隔ノード１０２は、マニフェスト１６０の局所ノード１０６から、新しいルートハッシュ値｛７７２｝を有するハッシュアドバタイズメントを受信する。遠隔ノード１０２は、そのマニフェスト１４０がマニフェスト１６０と同じデータのコレクションを表しており、マニフェスト１６０を検索すると判断する。遠隔ノード１０２は、ルートハッシュ値｛９９９｝を有するマニフェスト１４０がルートハッシュ値｛７７２｝を有するマニフェスト１６０に同期していないと判断する。その後、遠隔ノード１０２は、そのマニフェスト１４０とマニフェスト１６０の差集合を求める。この実施例において、マニフェスト１４０は、ダイジェスト｛４１｝を有するネーム“／ｆｒｕｉｔ／ｌｙｃｈｅｅ／ｐｅｅｌ”によって識別されたコンテンツオブジェクトを欠落しており、よって、遠隔ノード１０２はこのネームとダイジェストに基づいてコンテンツオブジェクトに対してインタレストを局所ノード１０６へ送信する。局所ノード１０６は、リクエストされたコンテンツオブジェクトを戻す。時間Ｔ５．ａにおいて、遠隔ノード１０２は、そのマニフェスト１４０を欠落しているコンテンツオブジェクトで更新する。時間Ｔ５．ａにおけるマニフェスト１４０のコンテンツに基づいて、システムは、マニフェスト１４０に対して新しいルートハッシュ値を生成する。これは、時間Ｔ５．ａにおけるマニフェスト１４０のルートハッシュ値によって示される：｛９９９｝→｛７７２｝。よって、時間Ｔ５．ａにおいて、ノード１０２におけるマニフェスト１４０はノード１０６におけるマニフェスト１６０に同期している。ノード１０２および１０６は、それらのコレクションを同期させ、両ノードは同じルートハッシュ値｛７７２｝を含む。
【００５３】
図６Ｄは、本発明の一実施形態による、局所マニフェストの同じネームのコンテンツオブジェクトのダイジェストが遠隔マニフェストのダイジェスト値とは異なっており、かつ、局所ノードがアドバタイズメントを送信し遠隔ノードが局所マニフェストを検索する、同期中の二つのマニフェストのフォーマットを示す表である。時間Ｔ３において、遠隔ノード１０２は、マニフェスト１６０の局所ノード１０６から、ルートハッシュ値｛５３｝有するハッシュアドバタイズメントを受信する。遠隔ノード１０２は、そのマニフェスト１４０がマニフェスト１６０と同じデータのコレクションを表しており、マニフェスト１６０を検索すると判断する。遠隔ノード１０２は、ルートハッシュ値｛９９９｝を有するそのマニフェスト１４０がルートハッシュ値｛５３｝を有するマニフェスト１６０に同期していないと判断する。その後、遠隔ノード１０２は、そのマニフェスト１４０とマニフェスト１６０の差集合を求める。この実施例では、マニフェスト１４０は、ダイジェスト｛４１｝を有するネーム“／ｆｒｕｉｔ／ｌｙｃｈｅｅ／ｐｅｅｌ”によって識別されたコンテンツオブジェクトを欠いていることにて、遠隔ノード１０２は、そのネームおよびダイジェストに基づいてコンテンツオブジェクトに対するインタレストを、局所ノード１０６へ、送信する。局所ノード１０６はリクエストされたコンテンツオブジェクトを戻す。時間Ｔ４．ｂにおいて、遠隔ノード１０２はそのマニフェスト１４０を欠落しているコンテンツオブジェクトで更新する。時間Ｔ４．ｂにおけるマニフェスト１４０のコンテンツに基づいて、システムはマニフェスト１４０に対して新しいルートハッシュ値を生成する。これは、時間Ｔ４．ｂにおけるマニフェスト１４０のルートハッシュ値によって示される：｛９９９｝→｛７７２｝。しかしながら、そのオリジナルのルートハッシュ値｛５３｝を有するマニフェスト１６０は、この時点で、新しいルートハッシュ値｛７７２｝を有するマニフェスト１４０に同期していない。
【００５４】
次に、局所ノード１０６は、マニフェスト１４０の遠隔ノード１０２から、新しいルートハッシュ値｛７７２｝を有するハッシュアドバタイズメントを受信する。局所ノード１０６は、そのマニフェスト１６０がマニフェスト１４０と同じデータのコレクションを表しており、マニフェスト１４０を検索すると判断する。局所ノード１０６は、ルートハッシュ値｛５３｝を有するマニフェスト１６０がルートハッシュ値｛７７２｝を有するマニフェスト１４０に同期していないと判断する。その後、局所ノード１０６は、その局所マニフェスト１６０と遠隔マニフェスト１４０の差集合を求める。この実施例では、マニフェスト１６０は、ダイジェスト｛４１｝を有するネーム“／ｆｒｕｉｔ／ｌｙｃｈｅｅ／ｐｅｅｌ”によって識別されたコンテンツオブジェクトを欠いていることにて、局所ノード１０６はそのネームとダイジェストに基づいてコンテンツオブジェクトに対するインタレストを遠隔ノード１０２へ送信する。遠隔ノード１０２はリクエストされたコンテンツオブジェクトを戻す。時間Ｔ５．ｂにおいて、局所ノード１０６はそのマニフェスト１６０を欠落しているコンテンツオブジェクトで更新する。時間Ｔ５．ｂにおけるマニフェスト１６０のコンテンツに基づいて、システムはマニフェスト１６０に対して新しいルートハッシュ値を生成する。これは、時間Ｔ５．ｂにおけるマニフェスト１６０のルートハッシュ値によって示される：｛５３｝→｛７７２｝。従って、時間Ｔ５．ｂにおいて、ノード１０２におけるマニフェスト１４０は、ノード１０６におけるマニフェスト１６０に同期している。ノード１０２および１０６は、それらのコレクションを同期させ、両ノードは同じルートハッシュ値｛７７２｝を含む。
【００５５】
図６Ｃおよび図６Ｄは、任意のノードが遠隔または局所ノードであってよく、ハッシュアドバタイズメントと、マニフェストと、マニフェストに関連付けられ、異なっていると判断されたコンテンツオブジェクトと、を送受信する順序が、所定時間におけるコレクションのコンテンツ、例えば、時間［Ｔ３，Ｔ４．ａ，Ｔ５．ａ］および時間［Ｔ３，Ｔ４．ｂ，Ｔ５．ｂ］のマニフェスト１４０および１６０のコンテンツに応じて変わり得ることを示す。つまり、どのノードも、ハッシュアドバタイズメントを送受信し、マニフェストを転送し、本開示に記載されている方法を使ってノードにおけるマニフェストのコンテンツを同期させ、これによって、二つのノードにおけるデータコレクションの同期が得られ得る。
【００５６】
図６Ｅは、本発明の一実施形態による、局所マニフェストの同じネームのコンテンツオブジェクトのダイジェストと変更時間が遠隔マニフェストのダイジェストと変更時間とは異なっている、同期中の二つのマニフェストのフォーマットを示す表である。
【００５７】
時間Ｔ６において、局所ノード１０６は、マニフェスト１４０の遠隔ノード１０２から、ルートハッシュ値｛９９９｝を有するハッシュアドバタイズメントを受信する。局所ノード１０６は、そのマニフェスト１６０が、遠隔マニフェスト１４０と同じデータのコレクションを表しており、マニフェスト１４０を検索すると判断する。局所ノード１０６は、ルートハッシュ値｛８０｝を有する局所マニフェスト１６０が、ルートハッシュ値｛９９９｝を有する遠隔マニフェスト１４０に同期していないと判断する。その後、局所ノード１０６は、その局所マニフェスト１６０と遠隔マニフェスト１４０の差集合を求める。この実施例では、マニフェスト１４０とマニフェスト１６０の両方はそのコレクションにおいて表される各コンテンツオブジェクトに対応している変更時間１３４を示す。システムは、マニフェスト１４０およびマニフェスト１６０において同じネームを有するコンテンツオブジェクトが異なるダイジェストおよび異なる変更時間を有していると判断する。変更時間が、対応するコンテンツオブジェクトが変更された秒、分、時、日、月および年についての情報を含むことができることに留意されたい。便宜上、図６Ｅに例示したマニフェストは一日のある時間のみを含む。マニフェスト１４０は、ダイジェスト値｛１｝と変更時間８：０５ａｍを有するネーム“／ｃｈｅｆ／ｅｖｅｎｔｓ／ｃａｌｅｎｄａｒ．ｔｘｔ”によって識別されたコンテンツオブジェクトを含む。マニフェスト１６０は、異なるダイジェスト｛３２０｝および異なる変更時間７：３０ａｍを有する同じネームによって識別されたコンテンツオブジェクトを含む。その後、局所ノード１０６は、異なるコンテンツオブジェクトのネームとダイジェストに基づいてコンテンツオブジェクトに対するインタレストを遠隔ノード１０２へ送信する。遠隔ノード１０２はリクエストされたコンテンツオブジェクトを戻す。
【００５８】
局所ノードは、変更時間８：０５ａｍを有する遠隔マニフェスト１４０からのコンテンツオブジェクトが変更時間７：３０ａｍを有するその局所マニフェスト１６０からのコンテンツオブジェクトより新しいと判断する。よって、時間Ｔ７において、局所ノード１０６は、そのマニフェスト１６０を、異なっておりかつより新しいコンテンツオブジェクトで更新する。時間Ｔ７におけるマニフェスト１６０のコンテンツに基づいて、システムはマニフェスト１６０に対して新しいルートハッシュ値を生成する。これは、時間Ｔ７におけるマニフェスト１６０のルートハッシュ値によって示される：｛８０｝→｛９９９｝。従って、時間Ｔ７において、局所ノード１０６におけるマニフェスト１６０は遠隔ノード１０６におけるマニフェスト１４０に同期している。ノード１０２および１０６はそれらのコレクションを同期させ、両ノードは同じルートハッシュ値｛９９９｝を含む。
【００５９】
一部の実施形態において、システムは、マニフェスト１６０の履歴フィールドにおいてその前のバージョンの変更されたコンテンツオブジェクト（例えば、ダイジェスト｛３２０｝と変更時間７：３０ａｍを有するネーム“／ｃｈｅｆ／ｅｖｅｎｔｓ／ｃａｌｅｎｄａｒ．ｔｘｔ”によって識別されたコンテンツオブジェクト）を保持する。他の実施形態において、遠隔ノード１０２が、マニフェスト１６０の局所ノード１０６から、ルートハッシュ値｛８０｝を有するハッシュアドバタイズメントを受信し、局所マニフェスト１６０をダウンロードするとき、遠隔ノード１０２は、ダイジェスト｛３２０｝と変更時間７：３０ａｍを有するネーム“／ｃｈｅｆ／ｅｖｅｎｔｓ／ｃａｌｅｎｄａｒ．ｔｘｔ”によって識別された受信コンテンツオブジェクトのバージョンがそれ自体のマニフェストのバージョンより新しくないと判断する。この場合、遠隔ノード１０２におけるマニフェスト１４０は局所マニフェスト１０６におけるマニフェスト１６０に同期しないままである。これらのマニフェストが同期を受けるのは、後になって、局所ノード１０６が、マニフェスト１４０の遠隔ノード１０２から、上記したように、より新しく更新されたコンテンツオブジェクトを含むハッシュアドバタイズメントを受信したときである。
【００６０】
図７は、本発明の一実施形態による、コンテンツセントリックネットワークにおけるマニフェストの同期を容易にする例示的なコンピュータおよび通信システムを示す図である。コンピュータおよび通信システム７０２はプロセッサ７０４、メモリ７０６、および記憶装置７０８を含む。メモリ７０６は、管理メモリとして作用する揮発性メモリ（例えば、ＲＡＭ）を含ことができ、一以上のメモリプールを格納するために使用され得る。更に、コンピュータおよび通信システム７０２は、ディスプレイデバイス７１０、キーボード７１２、およびポインティングデバイス７１４に連結され得る。記憶装置７０８は、オペレーティングシステム７１６、コンテンツプロセッシングシステム７１８、およびデータ７３２を格納することができる。
【００６１】
コンテンツプロセッシングシステム７１８は、コンピュータおよび通信システム７０２により実行されると、コンピュータおよび通信システム７０２に本開示に記載の方法および／またはプロセスを実行させることができる命令を含むことができる。具体的には、コンテンツプロセッシングシステム７１８は、遠隔ノードの遠隔マニフェストに対応するアドバタイズメントを送信するための命令を含むことができる（アドバタイズメントメカニズム７２２）。コンテンツプロセッシングシステム７１８は、局所マニフェストが遠隔マニフェストと同じコンテンツオブジェクトのコレクションに対応していることを判断するための命令も含むことができる（コレクションチェックメカニズム７２４）。コンテンツプロセッシングシステム７１８は、局所マニフェストのルートハッシュ値を遠隔マニフェストのルートハッシュ値と比較することにより、局所マニフェストと遠隔マニフェストにおけるコレクションのコンテンツが異なっていることを判断するための命令も含むことができる（コレクションチェックメカニズム７２４）。
【００６２】
コンテンツプロセッシングシステム７１８は、遠隔マニフェストへのリクエストを送信し、遠隔マニフェストを受信し、遠隔マニフェストに関連付けられるコンテンツオブジェクトへのリクエストを送信し、遠隔マニフェストに関連付けられるリクエストされたコンテンツオブジェクトを受信するための命令を含むことができる（通信メカニズム７２０）。また、コンテンツプロセッシングシステム７１８は、チャンキングプロトコルに基づいて、遠隔マニフェストを検索するためにインタレストの集合を送信するための命令を含むことができ、よって、各インタレストがマニフェストの番号付きチャンクに対応する（通信メカニズム７２０）。コンテンツプロセッシングシステム７１８は、マニフェストに対応するアドバタイズメントを送信し、マニフェストに対するリクエストを受信し次第、遠隔ノードへマニフェストを送信し、遠隔ノードへマニフェストに関連付けられたリクエストされたコンテンツオブジェクトを送信し、チャンキングプロトコルに基づいてインタレストの集合を受信するための命令を含むことができ、よって、各インタレストがマニフェストの番号付きチャンクに対応する（通信メカニズム７２０）。
【００６３】
コンテンツプロセッシングシステム７１８は、局所マニフェストにおいて識別されたコンテンツオブジェクトと遠隔マニフェストにおいて識別されたコンテンツオブジェクトの差集合を求めるための命令を更に含むことができ、両マニフェストは同じデータのコレクションを含む（差判断メカニズム７２６）。コンテンツプロセッシングシステム７１８はまた、遠隔マニフェストのコンテンツオブジェクトの変更時間が局所マニフェストの対応するコンテンツオブジェクトの変更時間より新しいという判断に応答して、局所マニフェストのコンテンツオブジェクトの値を遠隔マニフェストからのコンテンツオブジェクトの値で更新するための命令も含むことができる（同期メカニズム７３０）。コンテンツプロセッシングシステム７１８は、遠隔マニフェストのコンテンツオブジェクトの変更時間が局所マニフェストの対応するコンテンツオブジェクトの変更時間より新しくないとの判断に応答して、遠隔マニフェストからのコンテンツオブジェクトの対応する値および変更時間を局所マニフェストのコンテンツオブジェクトの履歴フィールドへ挿入するための命令を含むことができる（履歴メカニズム７２８）。
【００６４】
データ７３２は、本開示に記載の方法および／またはプロセスによって入力として必要とされるか、または、出力として生成される任意のデータを含むことができる。具体的には、データ７３２は、少なくとも、コンテンツオブジェクトのコレクションを示すマニフェスト；コンテンツオブジェクトのネーム；コンテンツオブジェクトの対応するダイジェスト；コンテンツオブジェクトが変更された時間を示す変更時間；マニフェストによって表されるコンテンツオブジェクトのダイジェストに基づいた相加的ハッシュ値であるマニフェストのルートハッシュ値；マニフェストを識別するマニフェストのコレクションネームまたはルーティングプレフィックス；パケットがマニフェストのアドバタイズメントまたはデータ転送に対応していることを判断する識別子；およびチャンキングプロトコルに基づいたマニフェストの番号付きチャンクに対応している番号を格納することができる。
【００６５】
本発明の詳細な説明において記載されたデータストラクチャおよびコードは、通常、コンピュータシステムによって使用するためにコードおよび／またはデータを格納することができる任意のデバイスまたは媒体であってよいコンピュータ可読記憶媒体に格納される。コンピュータ可読記憶媒体は、これらに限定されないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスクまたはディジタルビデオディスク）などの磁気および光記憶素子、または、現在知られておりまたは今後開発されるコンピュータ可読媒体を格納することが可能な他の媒体を含む。
【００６６】
本発明の詳細な説明の部分に記載された方法およびプロセスは、上述したコンピュータ可読媒体に格納され得るコードおよび／またはデータとして具体化され得る。コンピュータシステムがコンピュータ可読記憶媒体に格納されたコードおよび／またはデータを読み出し実行する際、コンピュータシステムは、データストラクチャおよびコードとして具体化され、コンピュータ可読記憶媒体に格納される方法およびプロセスを実行する。
【００６７】
更に、上述した方法およびプロセスは、ハードウェアモジュールまたは装置に含まれ得る。ハードウェアモジュールまたは装置は、これらに限定されないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュールまたはコードの一部を実行する専用または共有プロセッサ、および現在知られておりまたは今後開発される他のプログラマブル論理素子を含むことができる。ハードウェアモジュールまたは装置は、起動されると、内部に含まれる方法やプロセスを実行する。
【図１】
2015201178.tif 000003
【図２】
2015201178.tif 000004
【図３】
2015201178.tif 000005
【図４】
2015201178.tif 000006
【図５】
2015201178.tif 000007
【図６Ａ】
2015201178.tif 000008
【図６Ｂ】
2015201178.tif 000009
【図６Ｃ】
2015201178.tif 000010
【図６Ｄ】
2015201178.tif 000011
【図６Ｅ】
2015201178.tif 000012
【図７】
2015201178.tif 000013