(57)【要約】      （修正有）【課題】コンテンツ中心ネットワーク（ＣＣＮ）においてインタレストを正確に処理するためのシステムを提供する。【解決手段】動作中、ＣＣＮにおける第１のノードは、第２のノードからコンテンツの一部についてのインタレストを受信する。インタレストは、コンテンツの一部の名称及び第２のノードからコンテンツの一部を広告する送信先ノードまでのホップ数を示す。システムは、第１のノードに記憶された転送情報及び保留インタレストに関連する情報に基づいて、距離ベースの転送条件が満たされているかどうかを判定し、距離ベースの転送条件が満たされるのに応じて、インタレストを受け入れる。【選択図】図１４
2016116218.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ中心ネットワーク（ＣＣＮ）においてインタレストを正確に処理するためのコンピュータ実行可能な方法において、
前記ＣＣＮにおける第１のノードにより、第２のノードからコンテンツの一部についての前記インタレストであって、コンテンツの一部の名称と、前記第２のノードからコンテンツの一部を広告する送信先ノードまでのホップ数とを示す前記インタレストを受信することと、
前記第１のノードに記憶されている転送情報及び保留インタレストに関連する情報に基づいて、距離ベースの転送条件が満たされているかどうかを判定することと、
前記距離ベースの転送条件が満たされるのに応じて、前記インタレストを受け入れることとを備える、方法。
【請求項２】
前記転送情報が前記コンテンツの一部の名称に関連付けられた１つ以上のエントリを含み、各エントリが前記第１のノードが前記送信先ノードに対してインタレストを転送できるような次ホップ隣接者を指定し、前記エントリが、さらに、前記次ホップ隣接者を介した前記第１のノードから前記送信先ノードまでのホップ数を指定する、請求項１に記載の方法。
【請求項３】
コンピューティングデバイスによって実行されたときに、前記コンピューティングデバイスにコンテンツ中心ネットワーク（ＣＣＮ）においてインタレストを正確に処理するための方法を実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
前記ＣＣＮにおける第１のノードにより、第２のノードからコンテンツの一部についての前記インタレストであって、コンテンツの一部の名称と、前記第２のノードからコンテンツの一部を広告する送信先ノードまでのホップ数とを示す前記インタレストを受信することと、
前記第１のノードに記憶されている転送情報及び保留インタレストに関連する情報に基づいて、距離ベースの転送条件が満たされているかどうかを判定することと、
前記距離ベースの転送条件が満たされるのに応じて、前記インタレストを受け入れることとを備える、コンピュータ読み取り可能な記憶媒体。
【請求項４】
前記転送情報が前記コンテンツの一部の名称に関連付けられた１つ以上のエントリを含み、各エントリが前記第１のノードが前記送信先ノードに対してインタレストを転送できるような次ホップ隣接者を指定し、前記エントリが、さらに、前記次ホップ隣接者を介した前記第１のノードから前記送信先ノードまでのホップ数を指定する、請求項３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５】
コンテンツ中心ネットワーク（ＣＣＮ）においてインタレストを正確に処理するためのコンピュータシステムにおいて、
前記ＣＣＮにおける第１のノードにより、第２のノードからコンテンツの一部についての前記インタレストであって、コンテンツの一部の名称と、前記第２のノードからコンテンツの一部を広告する送信先ノードまでのホップ数とを示す前記インタレストを受信するように構成されたインタレスト受信モジュールと、
前記第１のノードに記憶されている転送情報及び保留インタレストに関連する情報に基づいて、距離ベースの転送条件が満たされているかどうかを判定するために、前記受信したインタレストを処理し、
前記距離ベースの転送条件が満たされるのに応じて、前記インタレストを受け入れる
ように構成されたインタレスト処理モジュールとを備える、コンピュータシステム。
【請求項６】
前記転送情報が前記コンテンツの一部の名称に関連付けられた１つ以上のエントリを含み、各エントリが前記第１のノードが前記送信先ノードに対してインタレストを転送できるような次ホップ隣接者を指定し、前記エントリが、さらに、前記次ホップ隣接者を介した前記第１のノードから前記送信先ノードまでのホップ数を指定する、請求項５に記載のシステム。
【請求項７】
前記エントリの少なくとも１つによって指定されたホップ数が、前記受信したインタレストによって示されるホップ数よりも小さい場合、前記距離ベースの転送条件が満たされる、請求項６に記載のシステム。
【請求項８】
前記距離ベースの転送条件が満たされるのに応じて、前記距離ベースの転送条件を満たす隣接者のうち最高にランク付けされた次ホップ隣接者に対して前記インタレストを転送するように構成されたインタレスト転送モジュールをさらに備える、請求項６に記載のシステム。
【請求項９】
前記保留インタレストに関連する情報が、前記コンテンツの一部の名称に関連付けられた１つ以上のエントリを含み、各エントリが保留インタレストに対応し、前記エントリが、前記保留インタレストによって示される前記コンテンツの一部の名称及びホップ数を指定する、請求項５に記載のシステム。
【請求項１０】
前記保留インタレストによって示される前記ホップ数が、前記受信したインタレストによって示されるホップ数よりも小さい場合、前記距離ベースの転送条件が満たされる、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンテンツ中心ネットワーク（ＣＣＮ）に関する。より具体的には、本開示は、コンテンツセントリックネットワーク（ＣＣＮ）において距離ベースのインタレスト転送のためのシステム及び方法に関する。
【背景技術】
【０００２】
インターネット及び電子商取引の普及は、ネットワーク業界において革命的な変化を刺激し続けている。今日では、オンライン映画視聴から毎日のニュース配信、小売売上高及びインスタントメッセージングまで、かなりの数の情報交換がオンラインで行われている。インターネットアプリケーション数の増加はまた、モバイルになってきている。しかしながら、現在のインターネットは、主に位置ベースのアドレッシング方式で動作する。２つの最もユビキタスなプロトコルであるインターネットプロトコル（ＩＰ）及びイーサネット（登録商標）プロトコルは、双方とも、エンドホストアドレスに基づいている。すなわち、コンテンツの消費者は、典型的には物理的オブジェクト又は位置に関連しているアドレス（例えば、ＩＰアドレスやイーサネット（登録商標）メディアアクセス制御（ＭＡＣ）アドレス）からコンテンツを明示的に要求することによってコンテンツを受信することができるのみである。この制限されたアドレッシング方式は、刻々と変化するネットワーク要求を満たすためには次第に不十分になってきている。
【０００３】
近年、業界においてコンテンツが直接名称付けられてアドレッシングされる情報中心ネットワーク（ＩＣＮ）アーキテクチャが提案されている。典型的なＩＣＮアーキテクチャであるコンテンツ中心ネットワーク（ＣＣＮ）は、コンテンツのトランスポートに対して新たなアプローチをもたらす。コンテンツが移動するエンド・ツー・エンド会話としてアプリケーションレベルでみられるネットワークトラフィックを有する代わりに、コンテンツは、固有の名称に基づいて要求されるか又は返送され、ネットワークは、プロバイダから消費者に対してコンテンツをルーティングする責を負う。コンテンツは、通信システムにおいて伝送されることができるテキスト、画像、映像及び／又は音声などの任意の形式のデータを含むことに留意されたい。消費者及びプロバイダは、コンピュータにおける人又はＣＣＮの内外の自動化プロセスとすることができる。コンテンツの一部は、コンテンツ全体又はコンテンツの各部を指すことができる。例えば、新聞記事は、データパケットとして具現化されるコンテンツの複数の部分によって表現されることができる。コンテンツの一部はまた、認証データ、作成日付、コンテンツ所有者などの情報によってコンテンツの一部を記述又は増補するメタデータに関連付けることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多くの既存のＣＣＮアプローチは、コンテンツ名を宣伝する意図したノードからコンテンツを取得するために要求されたコンテンツの名称及びナンスを述べるインタレストをあてにしている。さらに、不要なトラフィックを低減するために、ＣＣＮルータは、大抵の場合、ルータのみが一度同じコンテンツのインタレストを転送する必要があるようにインタレストを集約する。しかしながら、インタレストの集約は、インタレストループの検出を困難なものとする。
【課題を解決するための手段】
【０００５】
本発明の１つの実施形態は、コンテンツ中心ネットワーク（ＣＣＮ）においてインタレストを正確に処理するためのシステムを提供する。動作中、ＣＣＮにおける第１のノードは、第２のノードからコンテンツの一部についてのインタレストを受信する。インタレストは、コンテンツの一部の名称及び第２のノードからコンテンツの一部を広告する送信先ノードまでのホップ数を示す。システムは、第１のノードに記憶された転送情報及び保留インタレストに関連する情報に基づいて、距離ベースの転送条件が満たされているかどうかを判定し、距離ベースの転送条件が満たされるのに応じて、インタレストを受け入れる。
【０００６】
この実施形態の変形例において、転送情報は、コンテンツの一部の名称に関連付けられた１つ以上のエントリを含む。各エントリは、第１のノードが送信先ノードに対してインタレストを転送することができる次ホップ隣接者を指定し、エントリは、さらに、次ホップ隣接者を介して第１のノードから送信先ノードまでのホップ数を指定する。
【０００７】
さらなる変形例において、エントリの少なくとも１つによって指定されたホップ数が受信したインタレストによって示されるホップ数よりも小さい場合には、距離ベースの転送条件が満足される。
【０００８】
さらなる変形例において、距離ベースの転送条件が満たされるのに応じて、システムは、距離ベースの転送条件を満たす隣接者のうち最高にランク付けされた次ホップ隣接者に対してインタレストを転送する。
【０００９】
この実施形態の変形例において、保留インタレストに関連する情報は、コンテンツの一部の名称に関連付けられた１つ以上のエントリを含む。各エントリは、保留インタレストに対応し、エントリは、保留インタレストによって示されるコンテンツの一部の名称及びホップ数を指定する。
【００１０】
さらなる変形例において、保留インタレストによって示されるホップ数が受信したインタレストによって示されるホップ数よりも小さい場合、距離ベースの転送条件は満たされる。
【００１１】
さらなる変形例において、エントリは、さらに、コンテンツの一部についてのインタレストが受信された到来隣接者のセットを指定する。距離ベースの転送条件が満たされるのに応じて、システムは、到来隣接者のセットに第１のノードを追加することによって受信したインタレストを集約する。
【００１２】
この実施形態の変形例において、距離ベースの転送条件が満たされないのに応じて、システムは、インタレストをドロップし、第１のノードに対して制御メッセージを返送する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャを図示している。
【図２Ａ】図２Ａは、ＮＤＮにおける例示的なインタレストループを図示する図である。
【図２Ｂ】図２Ｂは、ＮＤＮにおける例示的なインタレストループを図示する図である。
【図３】図３は、本発明の実施形態にかかる例示的な転送情報ベース（ＦＩＢ）を図示する図である。
【図４】図４は、本発明の実施形態にかかる例示的な保留インタレストテーブル（ＰＩＴ）を図示する図である。
【図５】図５は、本発明の実施形態にかかるＣＣＮルータの例示的なアーキテクチャを提示する図である。
【図６】図６は、本発明の実施形態にかかる例示的なインタレスト処理アルゴリズムを図示する図である。
【図７】図７は、本発明の実施形態にかかる例示的なインタレスト転送アルゴリズムを図示する図である。
【図８】図８は、本発明の実施形態にかかる例示的なＮＤＯメッセージ処理アルゴリズムを図示する図である。
【図９】図９は、本発明の実施形態にかかる期限切れのＰＩＴエントリを処理するための例示的なアルゴリズムを図示する図である。
【図１０】図１０は、本発明の実施形態にかかる例示的なＮＡＣＫメッセージ処理アルゴリズムを図示する図である。
【図１１】図１１は、本発明の実施形態にかかる例示的なリンク障害処理アルゴリズムを図示する図である。
【図１２Ａ】図１２Ａは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。
【図１２Ｂ】図１２Ｂは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。
【図１３Ａ】図１３Ａは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。
【図１３Ｂ】図１３Ｂは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。
【図１４】図１４は、実施形態にかかる距離ベースのインタレスト転送のための例示的なシステムを図示している。
【発明を実施するための形態】
【００１４】
図において、同様の参照符号は、同じ図要素を指している。
【００１５】
概説
本発明の実施形態は、ルーティングテーブルのループが発生してインタレストが集約又は同時に複数の経路を介して転送されるときに正しく動作する距離ベースのインタレスト転送戦略、ホップ数によるインタレスト転送及び集約のための戦略（ＳＩＦＡＨ）を実装するＣＣＮシステムを提供する。より具体的には、ＳＩＦＡＨを実装するために、各ＣＣＮルータは、その転送情報ベース（ＦＩＢ）において、名称付きコンテンツまでのホップ数とともに次ホップを記憶する。名称付きコンテンツについての各転送されたインタレストは、要求されたコンテンツの名称及び転送ルータから要求されたコンテンツまでのホップ数を含む。インタレストを識別するためにナンスを使用する転送戦略と比較して、ＳＩＦＡＨは、はるかに少ない記憶装置オーバーヘッドを発生させる。
【００１６】
ＣＣＮアーキテクチャ
一般に、ＣＣＮは、インタレスト及びコンテンツオブジェクトという２つの種類のメッセージを使用する。インタレストは、コンテンツオブジェクトの「名称」とも称される階層的構造化可変長識別子（ＨＳＶＬＩ）を担持し、そのオブジェクトについての要求として機能する。ネットワーク要素（例えば、ルータ）が同じ名称について複数のインタレストを受信する場合、それらのインタレストを集約することができる。マッチングコンテンツオブジェクトを有するインタレストの経路に沿ったネットワーク要素は、インタレストを満たすそのオブジェクトをキャッシュして返送することができる。コンテンツオブジェクトは、インタレストの原点（複数可）までインタレストの逆経路をたどる。
【００１７】
本開示において使用される用語は、一般に、以下のように定義される（しかし、それらの解釈は、そのようなものに限定されるものではない）。
【００１８】
「ＨＳＶＬＩ」：名称とも称される階層的構造化可変長識別子である。それは、可変長のオクテット文字列とすることができる名称要素の順序付きリストである。人間が読み取り可能な形式において、それは、ｃｃｎｘ：／ｐａｔｈ／ｐａｒｔなどの形式で表現することができる。また、ＨＳＶＬＩは、人間が読み取りできなくてもよい。上述したように、ＨＳＶＬＩは、コンテンツを指し、それらがコンテンツについての組織的構造を表すことができ且つ人間にとって少なくとも部分的に意味があることができるのが望ましい。ＨＳＶＬＩの個々の要素は、任意長を有することができる。さらにまた、ＨＳＶＬＩは、明示的に区切られた要素を有することができ、任意のバイトのシーケンスを含むことができ、人間が読み取り可能な文字に限定されるものではない。最長接頭辞一致探索は、ＨＳＶＬＩを有するパケットを転送するのに重要である。例えば、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ」におけるインタレストを示すＨＳＶＬＩは、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｔｅｓｔ．ｔｘｔ」及び「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｂａｒ．ｔｘｔ」の双方に一致する。名称要素の数の点で、最長一致は、それは最も特異的であるために最良であると考えられる。ＨＳＶＬＩの詳細な説明は、２００９年９月２３日に出願された発明者Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ及びＪａｍｅｓ  Ｄ．  Ｔｈｏｒｎｔｏｎによる「ＳＹＳＴＥＭ  ＦＯＲ  ＦＯＲＷＡＲＩＤＮＧ  Ａ  ＰＡＣＫＥＴ  ＷＩＴＨ  Ａ  ＨＩＥＲＡＲＣＨＩＣＨＡＬＬＹ  ＳＴＲＵＣＴＵＲＥＤ  ＶＡＲＩＡＢＬＥ−ＬＥＮＧＴＨ  ＩＤＥＮＴＩＦＩＥＲ」と名称が付された米国特許第８，１６０，０６９号明細書にみることができる。
【００１９】
「インタレスト」：コンテンツオブジェクトについての要求である。インタレストは、ＨＳＶＬＩ名称接頭辞と、同じ名称接頭辞によって複数のオブジェクト間で選択するために使用可能な他の任意のセレクタとを指定する。名称がインタレスト名称接頭辞（及び必要に応じて発行者鍵ＩＤ一致などの他の要求されたパラメータ）と一致するいかなるコンテンツオブジェクトも、インタレストを満たす。
【００２０】
「コンテンツオブジェクト」：インタレストに応答して送信されたデータオブジェクトである。それは、ＨＳＶＬＩ名称と、暗号化署名を介してともに結合されるコンテンツペイロードとを有する。必要に応じて、全てのコンテンツオブジェクトは、コンテンツオブジェクトのＳＨＡ−２５６ダイジェストから構成された暗黙的な端末名要素を有する。１つの実施形態において、暗黙的なダイジェストは、有線で転送されないが、必要に応じて、各ホップにおいて計算される。本開示において、「コンテンツオブジェクト」という用語及び「名称付きデータオブジェクト（ＮＤＯ）」という用語は交換可能である。
【００２１】
「フェース」：ＣＣＮにおいて、フェースという用語は、インターフェースの概念の一般化である。フェースは、ネットワークに対する又は直接アプリケーションパーティに対する接続とすることができる。フェースは、特定のネットワークインターフェース上でブロードキャスト若しくはマルチキャストパケットを送受信するか又は基礎となるトランスポートにおいてポイント・ツー・ポイントアドレッシングを使用して若しくはトンネル（例えば、ＴＣＰトンネル）を使用してパケットを送受信するように構成することができる。フェースはまた、ＵＤＰ又はＯＳ固有のプロセス間通信路のようなカプセル化を介して同じマシン上で実行される単一のアプリケーションプロセスに対する接続であってもよい。全てのメッセージは、フェースを介して到達し、フェースを介して送信される。本開示において、「隣接者」という用語は、インタレストの到来又は発信インターフェースを指す「フェース」という用語と交換可能である。
【００２２】
上述したように、ＨＳＶＬＩは、コンテンツの一部を示し、階層的に構造化され、最も一般的なレベルから最も特定のレベルまで順序付けられた連続要素を含む。各ＨＳＶＬＩの長さは固定されない。コンテンツ中心ネットワークにおいて、従来のＩＰネットワークとは異なり、パケットは、ＨＳＶＬＩによって識別されることができる。例えば、「ａｂｃｄ／ｂｏｂ／ｐａｐｅｒｓ／ｃｃｎ／ｎｅｗｓ」は、コンテンツの名称とすることができ、対応するパケット（複数可）、すなわち、「ＡＢＣＤ」と名付けられた組織における「Ｂｏｂ」と名付けられたユーザについての新聞の「ｃｃｎ」コレクションからの「ｎｅｗｓ」記事を識別する。コンテンツの一部を要求するために、ノードは、コンテンツの名称によってそのコンテンツにおいてインタレストを表現する（例えば、ブロードキャストする）。コンテンツの一部におけるインタレストは、コンテンツの名称又は識別子に応じたコンテンツについてのクエリとすることができる。コンテンツは、ネットワークにおいて利用可能な場合、コンテンツを記憶する任意のノードから要求ノードに対して返送される。ルーティングインフラストラクチャは、情報を有する可能性が高い有望なノードに対してインタレストをインテリジェントに伝播した後、インタレストメッセージが移動する逆経路に沿って利用可能なコンテンツを送り返す。基本的に、コンテンツオブジェクトは、インタレストメッセージによって残されたブレッドクラムに追随し、それゆえに要求ノードに到達する。
【００２３】
図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャを図示している。この例において、ネットワーク１８０は、ノード１００〜１４５を備える。ネットワークにおける各ノードは、１つ以上の他のノードに接続されている。ネットワーク接続１８５は、そのような接続の例である。ネットワーク接続は、実線として示されているが、各線はまた、１つのノードが他のノードに接続することができるサブネットワーク又はスーパーネットワークを表すことができる。ネットワーク１８０は、コンテンツ中心、ローカルネットワーク、スーパーネットワーク又はサブネットワークとすることができる。これらのネットワークのそれぞれは、１つのネットワークにおけるノードが他のネットワークにおけるノードに到達できるように相互接続することができる。ネットワーク接続は、ブロードバンド、無線、電話、衛星又は任意の種類のネットワーク接続とすることができる。ノードは、コンピュータシステム、ユーザを表すエンドポイント及び／又はインタレストを生成したりコンテンツを発信したりすることができる装置とすることができる。
【００２４】
本発明の実施形態によれば、消費者は、コンテンツの一部についてのインタレストを生成することができ、ネットワーク１８０におけるノードに対してそのインタレストを転送することができる。コンテンツの一部は、ネットワークの内又は外に位置することができる発行者又はコンテンツプロバイダによってネットワーク１８０におけるノードに記憶することができる。例えば、図１において、コンテンツの一部におけるインタレストは、ノード１０５において発生する。コンテンツがノードにおいて利用可能でない場合、インタレストは、第１のノードに結合された１つ以上のノードに流れる。例えば、図１において、インタレストは、利用可能なコンテンツを有しないノード１１５に流れる（インタレストフロー１５０）。次に、インタレストは、ノード１１５から同様にコンテンツを有しないノード１２５に流れる（インタレストフロー１５５）。そして、インタレストは、利用可能なコンテンツを有するノード１３０に流れる（インタレストフロー１６０）。そして、コンテンツオブジェクトのフローは、コンテンツが配信されるノード１０５に到達するまで、その逆経路を引き返す（コンテンツフロー１６５、１７０及び１７５）。認証などの他のプロセスは、コンテンツのフローに含まれることができる。
【００２５】
ネットワーク１８０において、コンテンツホルダ（ノード１３０）とインタレスト生成ノード（ノード１０５）との間の経路における任意数の中間ノード（ノード１００〜１４５）は、それがネットワークを介して移動するときにコンテンツのローカルコピーをキャッシュするのに参加することができる。キャッシングは、ローカルにキャッシュされたコンテンツへのアクセスを暗黙的に共有することによって他の加入者の近傍に位置する第２の加入者のためのネットワーク負荷を軽減する。
【００２６】
ＣＣＮにおいて、各ノード（ルータとも称される）は、転送情報ベース（ＦＩＢ）、コンテンツストア（ＣＳ）及び保留インタレストテーブル（ＰＩＴ）を含む３つの主要なデータ構造を維持する。
【００２７】
ＦＩＢは、一致するコンテンツオブジェクトの可能性のあるソース（複数可）に向けてインタレストパケットを転送するために使用される。通常、ルーティングプロトコルは、ネットワーク内の全てのノード間でＦＩＢを移入するために使用される。従来のＣＣＮにおいて、ＦＩＢエントリは、大抵の場合、名称接頭辞によってインデックス付けされ、各エントリは、一致するインタレストが転送されるべき少なくとも１つのフェースの物理アドレスを含む。インタレストメッセージを転送するとき、名称の最長接頭辞一致探索は、一致するエントリをみつけるためにＦＩＢにおいて実行される。
【００２８】
コンテンツストア（ＣＳ）は、ＩＰルータにおいて使用されるバッファメモリと同様である。より具体的には、ＣＳは、このノードを通過するコンテンツオブジェクトを一時的にバッファリングし、異なる消費者による効率的なデータ検索を可能とする。ルータがインタレストパケットを受信するとき、それは、インタレストを上流に発行する前に、そのコンテンツストアに一致するコンテンツオブジェクトがあるかどうかを最初にチェックする。
【００２９】
保留インタレストテーブル（ＰＩＴ）は、インタレスト状態のキャッシュとして機能する。ＰＩＴは、返送されたコンテンツオブジェクトがその要求者（複数可）に対して逆のインタレスト経路をたどって下流に送信されることができるように、コンテンツソース（複数可）に向かって上流に転送されたインタレストを追跡する。これは、上流及び下流のネットワークフローを維持する。ＣＣＮにおいて、インタレストパケットのみがルーティングされる。返送されたコンテンツオブジェクトは、コンテンツ要求者に対してインタレストパケットの軌跡を逆にたどる。インタレストについてのＰＩＴエントリは、インタレストの名称又は名称接頭辞及びそのインタレストを要求した１つ又は複数の到来フェースを指定する。
【００３０】
インタレストパケットが特定のフェースに到達すると、コンテンツ名又はＨＳＶＬＩに基づいて最長一致探索が行われる。名称探索に使用されるインデックス構造は、ＣＳ一致がＦＩＢ一致よりも優先されるＰＩＴ一致よりも優先されるように順序付けられる。したがって、ＣＳにインタレストに一致するコンテンツオブジェクトが既に存在する場合、コンテンツオブジェクトは、インタレストが到達したフェースを介して送信され、インタレストは破棄される。それ以外の場合、ＰＩＴは、一致をみつけることができるかどうかを確認するためにチェックされる。もしそうであれば、インタレストの到達フェースがＰＩＴエントリの要求フェースリストに追加され、インタレストは破棄される。それ以外の場合、ＦＩＢがチェックされ、インタレストは、一致するＦＩＢエントリに記載されている１つ以上のフェースに沿って転送される。
【００３１】
既存のインタレスト転送戦略の欠点
上述したように、ＣＣＮにおいて、転送戦略は、ＦＩＢ、ＰＩＴ及びＣＳの間の相互作用を管理する。より具体的には、ＣＳ及びＰＩＴにおいて一致をみつけることができないとき、ルータは、ＦＩＢに記憶された情報に基づいて、受信したインタレストを上流に転送する必要がある。しかしながら、ネットワークトポロジ及びルーティングが安定しており且つ全ての送信が成功した場合であっても、いくつかのインタレストがインタレストを発行した消費者に対してコンテンツオブジェクトを返送することはないという点で、既存の転送戦略は安全ではないことを示すことができる。
【００３２】
特に、ほとんどの既存の転送戦略は、各インタレストを固有に識別するためにランダムに生成される数値（ナンス）をあてにしている。例えば、名称付けられたコンテンツオブジェクト（ＮＤＯ）についてのソースｓによって生成されたインタレストは、ｎ（ｊ）及びナンスｉｄｊ（ｓ）を述べる。対（ｎ（ｊ），ｉｄｊ（ｓ））は、十分に大きな確率で固有にインタレストを示すために使用される。さらにまた、同じ対は、インタレストがループを通過しているかどうかを検出するために使用可能であることが期待される。実際に、現在までのＣＣＮ又は名称付きデータネットワーキング（ＮＤＮ）などのインタレストベースのＩＣＮアーキテクチャについて提案されている転送戦略の重要な態様は、単にインタレストについてのコンテンツ名及びインタレスト識別データ（ＮＤＮの場合にはナンスなど）に基づいてインタレストが重複インタレストであるか否かをルータが判定するというものである。しかしながら、以下の議論は、インタレスト集約が実装されている場合にはそのような期待が偽であることを示す。
【００３３】
より具体的には、名称ｎ（ｊ）を有するＮＤＯについてのｈホップのインタレストループは、ルータνｋがノードνｋ−１からＮＤＯｎ（ｊ）についてのインタレストを受信し、インタレストに対する応答を待機している間にそれは同じ名称についてルータνｋ＋１に転送されるように、ｎ（ｊ）を要求する１つ以上のインタレストがサイクルＬ＝｛ｖ１，ｖ２，．．.，ｖｈ、ｖ１｝に沿ってルータによって転送されて集約されるときに発生する。ここで、１≦ｋ≦ｈ、νｈ＋１＝ν１及びν０＝νｈである。既存のＮＤＮ転送戦略によれば、ルータは、そのような隣接者がコンテンツをもたらすことができ且つその性能が同様にコンテンツをもたらすことができる他の隣接者よりも高くランク付けされる場合、インタレストを転送するために隣接者を選択することができる。隣接者のランク付けは、他のルータから独立してルータによって行われることに留意されたい。したがって、制御プレーンにおいて使用されるルーティングプロトコルが瞬時的なループの自由度を保証しない場合、ＦＩＢによって暗示される長期間ルーティングループをもたらすことができる。
【００３４】
図２Ａは、ＮＤＮにおける例示的なインタレストループを図示する図である。図２Ａにおいて、ネットワーク２００は、ルータ２０２〜２１８などの相互接続された複数のルータを含む。図２Ａにおける矢印線は、各ルータに記憶されているＦＩＢエントリに応じてルータ２１８によって広告されるコンテンツに対する次ホップを示している。わかるように、ルータ２０４、２０６、２０８及び２１０から構成されるループが存在する。インタレストは、ルータ２０４からルータ２０６、２０８、２１０に対して転送され、ルータ２０４に戻されることができる。図２Ａにおいて、太線は、隣接者の体感的な性能が細線によって示された隣接者よりも優れていることを示している。例えば、ルータ２０４に対して、ルータ２０６は、ルータ２１２よりも優れた性能の隣接者である。ループフリーでないＦＩＢに暗示される複数の経路は、全てのルーティングテーブルが一致しているにもかかわらず、長期間インタレストループを引き起こす可能性があることが図２Ａからわかる。この場合、ＦＩＢにおける隣接者のランク付けは、より大きなホップ数を有する経路が小さいホップ数を有する経路よりも高くランク付けされることができるようなものとすることができる。
【００３５】
また、図２Ａにおいて、破線は、リンク及び経路を介したインタレストの移動を示しており、異なる破線パターンは、異なる発信者による、それゆえに異なるナンスを有するインタレストを表している。イベントがルータに到達した時間は、ｔｉで示されている。例えば、ルータ２０４は、ｔ１においてルータ２０２からインタレストを受信し、ｔ３においてルータ２１０から同じ名称であるが異なるナンスを有するインタレストを受信する。同様に、ルータ２１０は、ｔ４においてルータ２０６からインタレストを受信する。理想的には、インタレストループは、以前にそれ自身によって送信されたＮＤＯ名称及びナンスによって識別されるような同じインタレストを受信したことをルータが通知した場合に検出されることができる。しかしながら、図２Ａに示される例において、インタレスト集約に起因して、ルータ２０４は、インタレストのループを検出することができない。より具体的には、図２Ａは、ｔ４において、ルータ２０２からルータ２０４に対して、ルータ２０６から送信された同じインタレストであるインタレスト（ｎ（ｊ），ｎｏｎｃｅ１）をルータ２１０が受信することを示している。しかしながら、ルータ２０４に対してそのようなインタレストを転送する代わりに、ルータ２１０は、ｔ３においてルータ２０４に到達した異なるナンスのインタレスト（ｎ（ｊ），ｎｏｎｃｅ２）とこのインタレストを集約する。換言すれば、ルータ２０４は、ルータ２１０から送信された（ｎ（ｊ），ｎｏｎｃｅ２）をみるのみである。同様に、ルータ２０４はまた、ルータ２１０から受信したインタレスト（すなわち、（ｎ（ｊ），ｎｏｎｃｅ２））を集約し、ルータ２０２から受信したインタレスト（すなわち、（ｎ（ｊ），ｎｏｎｃｅ１））を送出するのみである。したがって、インタレストループは、ルータ２０４によって検出されることなく形成される。
【００３６】
さらに、ルーティングテーブルがネットワーク又はコンテンツダイナミクスの結果として矛盾している状況において、インタレストループは、制御プレーンがコンテンツに対する単一経路のルーティングのみをサポートしている場合であっても検出されないことが可能である。図２Ｂは、ＮＤＮにおける例示的なインタレストループを図示する図である。図２Ｂは、図２Ｂに示された例においてはルーティングが単一経路であり且つルータ２０６と２１４の間のリンクに障害が発生した場合にネットワークトポロジがｔ１において変化することを除いて、図２Ａに示されたのと同じ例示的なネットワーク２００を示している。図２Ａに示された例と同様に、ルータ２０４は、ルータ２１０からのインタレストを集約し、ルータ２１０は、ルータ２０８からのインタレストを集約し、これらの組合せステップは、一時的なインタレストループの検出を妨げる。
【００３７】
実際に、ＮＤＮ転送戦略は、ナンスが固有にインタレストを示すためのものであったとしても、インタレストループが発生した安定したエラーのないネットワークにおいては安全ではないことを証明することができる。さらに、インタレスト識別データの一致に基づくインタレスト集約及びインタレストループ検出を有する転送戦略が安全ではないことも証明することができる。簡略化された証明は、ＮＤＮのインタレスト処理戦略、及び、インタレストがアルゴリズムのトークンとして機能するサイクルにわたる分散端末検出の問題に対してインタレスト識別データを照合することによってインタレストループを検出しようとする任意の転送戦略をマッピングすることである。インタレスト集約は、リング内の任意のノードが以前に異なるトークンを作成した際にリング（インタレストループ）を移動するトークンを消去することから、リングを介した正確な端末検出（すなわち、インタレストループ検出）は、インタレスト集約の存在下で保証することはできない。
【００３８】
ホップ数によるインタレスト転送及び集約のための戦略（ＳＩＦＡＨ）
１つの明白な正確なインタレスト処理戦略は、インタレストにおけるソースルートを指定することである。ソースルーティングされたインタレストは、それに記載されたルートを通過しなければならないか又は破棄されることから、ループは、いかなるインタレストによっても通過することができない。しかしながら、これは、ネットワーク内のノード及びコンテンツオブジェクトの数に比例しない各送信先についての完全なトポロジ情報又は少なくとも経路情報を有するためにＩＣＮにおける全てのルータを必要とする。さらにまた、インタレストのソースルーティングは、インタレスト処理を過度に複雑化し、ソースルータが要求するコンテンツの識別を明らかにする。
【００３９】
一方、ＮＤＮにおいて使用されるナンスは、かなりの記憶装置オーバーヘッドをなおも発生しながら、実際に許容されるのに十分な大きさのある確率でインタレストが固有に表されることを保証することができるのみである。より重要なことに、前のセクションにおいて説明したように、ナンスを使用するか又はインタレストを固有に識別することは、インタレストが集約されるときにはインタレストループ検出のために無用である。したがって、インタレストの識別から独立して、少なくとも１つのルータがインタレストループの存在を検出するのを可能とする転送戦略を実装する必要がある。そのようなインタレストループを検出するための１つの方法は、要求されたコンテンツを広告したノードに近いインタレストを得ていない経路をインタレストが通過していることを検出することである。
【００４０】
インタレストによってネットワークをフラッディングすること又はコンテンツのネットワーク検索のランダムウォークを行うことよりも、ルータが要求されたコンテンツの最寄りのインスタンスに向けてインタレストを転送するのを可能とするために、任意のインタレストベースＩＣＮにおいて距離情報又は他のいくつかの順序付け情報が必要とされることに留意されたい。同じ情報はまた、インタレストが要求されたコンテンツを広告したノードにそれらが近付くようにして転送されることを保証するために使用することができる。ＦＩＢがＩＣＮの制御プレーンにおいて維持されるルーティングテーブルから移入されることを考えると、それらは、データプレーンにおいて動作する転送戦略と制御プレーンにおいて動作するルーティングプロトコルによって維持される広告されたコンテンツまでの距離との間の適切な相互作用を確立するために、容易に利用可能なツールを構成する。したがって、距離ベースのインタレスト転送戦略は、同時に複数の経路を介してインタレストが集約又は転送されたときに、ループ検出のための解決策になることができる。
【００４１】
いくつかの実施形態において、システムは、ホップ数によるインタレスト転送及び集約のための戦略（ＳＩＦＡＨ）を実装する。より具体的には、ＳＩＦＡＨに基づいて、ルータは、発生したいかなるインタレストループも検出されるのを可能とするために全てのＰＩＴエントリがいずれか１つのルータに十分長く記憶されるように、インタレストについての再送信戦略を採用する。より具体的には、現在のノードから要求されたコンテンツを記憶するノードまでのホップ数を指定するホップ数は、要求されたコンテンツの名称とともに、送信されるインタレストに含まれる。ルータがインタレストを受信すると、ＣＳ及びＰＩＴにおいて、コンテンツ名に基づいて一致について最初にチェックする。一致がみつからない場合、ルータは、現在のルータのホップ数（ルータからコンテンツへのホップ数）と受信したインタレストに示されたホップ数を比較する。受信したインタレストにおけるホップ数がルータのホップ数よりも小さい場合、ルータは、インタレストループが発生していると仮定する。そして、ルータは、そのようなインタレストを転送したノードに対して通知を送信し、インタレストをドロップする。
【００４２】
図３は、本発明の実施形態にかかる例示的な転送情報ベース（ＦＩＢ）を図示する図である。図３において、ＦＩＢ３００は、コンテンツ名称接頭辞を使用してインデックス付けされた複数のエントリを含む。各エントリは、名称接頭辞と、名称接頭辞を広告するノードまでのホップ数とによって識別されるコンテンツに対する次ホップを述べている。表記のために、ルータｉにおいて、ＦＩＢは、ＦＩＢｉと表され、ＦＩＢエントリ３０２などの名称接頭辞ｎ（ｊ）＊についての各ＦＩＢエントリは、
【００４３】
【数１】
2016116218.tif 000003
【００４４】
と表される。各ＦＩＢエントリは、１つ以上のタプルのリストを含むことができることに留意されたい。各タプルは、ｎ（ｊ）＊までの次ホップとホップ数とを述べる。
【００４５】
【数２】
2016116218.tif 000004
【００４６】
にリスト化されたｎ（ｊ）＊までの次ホップのセットは、
【００４７】
【数３】
2016116218.tif 000005
【００４８】
と表され、隣接者ｑ、
【００４９】
【数４】
2016116218.tif 000006
【００５０】
を介したｎ（ｊ）＊までのホップ数は、ｈ（ｉ，ｎ（ｊ）＊，ｑ）と表される。
【００５１】
図４は、本発明の実施形態にかかる例示的な保留インタレストテーブル（ＰＩＴ）を図示する図である。図４において、ＰＩＴ４００は、ＮＤＯの名称を使用してインデックス付けされた複数のエントリを含む。ルータｉにおいて、ＰＩＴは、ＰＩＴｉと表され、
【００５２】
【数５】
2016116218.tif 000007
【００５３】
は、名称ｎ（ｊ）を有するＰＩＴｉにおいて形成されたエントリを表している。ＰＩＴ内の各エントリは、ＮＤＯの名称、インタレストがＮＤＯを満たしたかどうかを述べるフラグ、インタレストを転送するときにルータによって想定されるホップ数、ＮＤＯについてのインタレストが受信される到来隣接者のセット、ルータがそのインタレストを転送する発信隣接者のセット、同じインタレストについて許可された再送信回数及びインタレストについての残存寿命を指定する。ＰＩＴエントリの各要素の表記が図４に図示されている。例えば、ＰＩＴエントリ
【００５４】
【数６】
2016116218.tif 000008
【００５５】
又は図４におけるエントリ４０２は、ＮＤＯ名称ｎ（ｊ）、フラグ
【００５６】
【数７】
2016116218.tif 000009
【００５７】
インタレスト
【００５８】
【数８】
2016116218.tif 000010
【００５９】
を転送するときにルータｉによって想定されるホップ数ｈＩ（ｉ）、到来隣接者
【００６０】
【数９】
2016116218.tif 000011
【００６１】
のセット、発信隣接者
【００６２】
【数１０】
2016116218.tif 000012
【００６３】
のセット、許可された再送信回数
【００６４】
【数１１】
2016116218.tif 000013
【００６５】
及び残存寿命
【００６６】
【数１２】
2016116218.tif 000014
【００６７】
を含む。
【００６８】
従来のＩＣＮにおいて使用されるＦＩＢ及びＰＩＴと比較して、図３及び図４に示されるＦＩＢ及びＰＩＴは、ホップ数などのコンテンツまでの距離に関連する追加情報を含むことに留意されたい。この情報は、ルーティングプロトコルがルータ間でＦＩＢに移入される場合に得ることができる。しかしながら、ルータに記憶されたＦＩＢに対して行われた更新は、それらのＰＩＴに対して行われた更新とは独立して且つ同時に起こるという事実に対して特別な注意が払われなければならない。例えば、ルータがコンテンツ接頭辞ｎ（ｊ）＊まで所定の距離を想定したインタレストを転送してデータオブジェクトを返送するためにインタレストを待機すると、その同じコンテンツまでの距離は、そのＦＩＢに対する更新に基づいて変更されることがある。したがって、インタレストに記載されたコンテンツまでの距離に対して単純にルータからコンテンツまでの最小距離を比較することは、要求されたコンテンツから遠くにあるルータに対してインタレストが誤って転送されるのを防ぐのに十分ではない。
【００６９】
本発明のいくつかの実施形態において、ＳＩＦＡＨを実装するシステムは、そのインタレストを発行した場合に想定されるコンテンツまでの距離の値をそのＰＩＴエントリに、所定のコンテンツの一部についてのインタレストを転送するルータが記憶していることを要求することによってＦＩＢ及びＰＩＴが独立して更新されるという事実を考慮する。そして、ルータは、インタレストがコンテンツまでのホップ数に基づいてインタレストループを介して伝播することができるかどうかを判定することができる。ＦＩＢにホップ数距離を記憶することは、複雑な距離値を記憶するよりも少ない記憶装置オーバーヘッドを招くこと及びコンテンツまでの実際の距離に基づいてＦＩＢに記憶された接頭辞に対して次ホップのランク付けを可能とすることを含む２つの利点を提供する。
【００７０】
上述したように、距離ベースの転送を実現するために、ＮＤＯｎ（ｊ）を要求するルータｋは、ＮＤＯ名称と、ルータｋがインタレストを転送するときにＮＤＯ名称ｎ（ｊ）と最良に一致するルータｋから名称接頭辞ｎ（ｊ）＊までのホップ数を述べるホップ数ｈＩ（ｋ）とを含むインタレストを送信する。インタレストは、Ｉ［ｎ（ｊ），ｈＩ（ｋ）］と表される。いくつかの実施形態において、ルータｉは、以下の２つの条件のいずれかが満たされる場合にのみ、ルータｋからのそのようなインタレストを受け入れることができる。
【００７１】
【数１３】
2016116218.tif 000015
【００７２】
又は、
条件２）：ｎ（ｊ）∈ＰＩＴｉ∧ｈＩ（ｋ）＞ｈＩ（ｉ）。この規則はまた、集約規則によるホップ数転送（ＨＦＡＲ）とも称される。
【００７３】
第１の条件は、そのインタレストを送信したときにルータｋよりもルータｉが少なくとも１つの隣接者（
【００７４】
【数１４】
2016116218.tif 000016
【００７５】
にリスト化されたｎ（ｊ）＊までの次ホップのセットに属する隣接者ｖ）を介して名称接頭辞ｎ（ｊ）＊に近いことを判定した場合にのみ、ルータｉが隣接者ｋからインタレストを受け入れることを保証する。第２の条件は、双方のルータがそれらのインタレストを送信したときにルータｋよりもルータｉが名称接頭辞ｎ（ｊ）＊に近かった場合にのみ、ルータｉが隣接者ｋからインタレストを受け入れることを保証する。ルータｉから名称接頭辞ｎ（ｊ）＊までのホップ数はＰＩＴｉに記憶されていることに留意されたい。
【００７６】
これらの２つの条件は、インタレストが不正確に転送されたことを検出するループ内のルータなしではインタレストループが発生することができないことを保証するのに十分であることに留意されたい。この結果は、１つ又は複数の経路を介してインタレストが集約若しくは送信されるかどうか又はどのようにインタレストが再送信されるかとは無関係である。そのような条件は、ループを検出するためには必要ではないものの（全くインタレストのループが存在しなくてもこれらの条件が満たされない場合がある）、ＦＩＢが正確なホップ数を反映するように更新されることを考えると、マルチパスルーティングによって動作するループ検出のための十分な条件は、インタレストベースのＩＣＮにおける転送戦略にとって良好なベースラインである。
【００７７】
図５は、本発明の実施形態にかかるＣＣＮルータの例示的なアーキテクチャを提示する図である。図５において、ＣＣＮルータ５００は、フェース５０２、５０４及び５０６などの複数のフェースと、インタレスト処理モジュール５０８と、転送モジュール５１０と、ＮＤＯ処理モジュール５１２と、制御メッセージ生成モジュール５１４と、データベース５１６とを含む。
【００７８】
フェース５０２〜５０６は、物理インターフェースのみならず、インタレスト及びＮＤＯを含むパケットの送受信が可能なアプリケーションプロセスも含むことができる。インタレスト処理モジュール５０８は、様々なフェースにおいて受信したインタレストを処理する責を負う。いくつかの実施形態において、インタレスト処理モジュール５０８は、上述した条件に基づいて到来したインタレストを受け入れるかどうかを判定する。転送モジュール５１０は、フェースに対して、インタレスト又はコンテンツオブジェクトなどのパケットを転送する責を負う。ＮＤＯ処理モジュール５１２は、インタレストに応答して受信したＮＤＯメッセージを処理する責を負う。制御メッセージ生成モジュール５１４は、異なるＮＡＣＫメッセージを含むことができる制御メッセージを生成する。いくつかの実施形態において、制御メッセージ生成モジュール５１４は、限定されるものではないが、インタレストループが検出されたとき、要求されたコンテンツに向かうルートがみつからないとき、いかなるコンテンツもみつからないとき及びＰＩＴエントリが期限切れであるときを含む様々な条件下でＮＡＣＫメッセージを生成する。名称ｎ（ｊ）についてのインタレストに応答するＮＡＣＫメッセージは、ＮＩ［ｎ（ｊ），ＣＯＤＥ］で表される。ここで、ＣＯＤＥは、ＮＡＣＫが送信される条件を述べている。データベース５１６は、コンテンツストア、転送情報ベース及び保留情報テーブルというＣＣＮ動作についての３つの基本的なデータ構造を記憶する。
【００７９】
図６は、本発明の実施形態にかかる例示的なインタレスト処理アルゴリズムを図示する図である。図６から、ルータｉのインタレスト処理モジュール５０８が隣接者ｋからインタレストＩ［ｎ（ｊ），ｈＩ（ｋ）］を受信したとき、それは、一致についてコンテンツストアＣＳｉを最初にチェックすることがわかる。一致がみつかった場合、転送モジュール５１０は、隣接者ｋに対して一致するＮＤＯを返送する。Ｄ［ｎ（ｊ），ｓｉｇ（ｊ）］は、インタレストＩ［ｎ（ｊ），ｈＩ（ｋ）］に応答して送信されたコンテンツオブジェクトメッセージを表すことに留意されたい。そのようなコンテンツオブジェクトメッセージは、インタレストの名称、コンテンツオブジェクトを検証するために使用される署名ペイロードｓｉｇ（ｊ）及びコンテンツオブジェクト自体を述べる。
【００８０】
コンテンツストア及びＰＩＴに一致がみつからない場合、インタレスト処理モジュール５０８は、一致についてのＦＩＢをチェックする。一致がＦＩＢにみつからない場合、要求されたコンテンツまでのルートが存在しないと判定される。これに応答して、制御メッセージ生成モジュール５１４は、ルートがみつからなかったことからＮＡＣＫが発行されることを述べるＮＡＣＫメッセージＮＩ［ｎ（ｊ），ｎｏ  ｒｏｕｔｅ］を生成する。その後、転送モジュール５１０は、隣接者ｋに対してＮＡＣＫを転送し、インタレスト処理モジュール５０８は、受信したインタレストをドロップする。
【００８１】
一致がＦＩＢにみつかった場合、インタレスト処理モジュール５０８は、上述した条件（１）が満たされたかどうか、すなわち、そのインタレストを送信したときにルータｋよりもルータｉが少なくとも１つの隣接者を介して名称接頭辞ｎ（ｊ）＊に近いかどうかを判定する。そうである場合、インタレストが転送されることができると判定され、転送モジュール５１０は、適切な転送アルゴリズムに基づいてインタレストを転送する。条件（１）が満たされない場合、インタレストがループを通過することができると判定される。これに応答して、制御メッセージ生成モジュール５１４は、ループがみつかったことからＮＡＣＫが発行されることを述べるＮＡＣＫメッセージＮＩ［ｎ（ｊ），ｌｏｏｐ］を生成する。その後、転送モジュール５１０は、隣接者ｋに対してＮＡＣＫを転送し、インタレスト処理モジュール５０８は、受信したインタレストをドロップする。
【００８２】
インタレスト名に一致するものがＰＩＴにみつかった場合、インタレスト処理モジュール５０８は、上述した条件（２）が満たされたかどうか、すなわち、双方のルータがそれらのインタレストを送信したときにルータｋよりもルータｉが名称接頭辞ｎ（ｊ）＊に近かったかどうかを判定する。そうである場合、インタレストが集約されることができると判定される。これに応答して、ＰＩＴは、ｎ（ｊ）についてのインタレストが受信された到来隣接者のセットにルータｋを追加することによって更新される。条件（２）が満たされない場合、インタレストがループを通過することができると判定される。これに応答して、制御メッセージ生成モジュール５１４は、ループがみつかったことからＮＡＣＫが発行されることを述べるＮＡＣＫメッセージＮＩ［ｎ（ｊ），ｌｏｏｐ］を生成する。その後、転送モジュール５１０は、隣接者ｋに対してＮＡＣＫを転送し、インタレスト処理モジュール５０８は、受信したインタレストをドロップする。
【００８３】
インタレスト処理アルゴリズムを実装する場合、ローカルコンテンツ消費者からのコンテンツ要求は、コンテンツまでのホップ数を述べるインタレストの形態でルータに対して送信されることが仮定され、各ルータは、隣接者が離れており且つローカルであることを知る。
【００８４】
図７は、本発明の実施形態にかかる例示的なインタレスト転送アルゴリズムを図示する図である。ルータは、典型的には、そのＰＩＴに残っているインタレストについての最大インタレスト寿命（ＭＩＬ）を仮定しており、ＭＩＬを超えた場合にはそのＰＩＴからのインタレストを消去することに留意されたい。ＭＩＬは、過剰な数の再送信を排除するのに十分な大きさでなければならない。一方、ＭＩＬは、ＮＤＯメッセージ又はＮＡＣＫが故障や送信エラーに起因して送信されない多くのインタレストをＰＩＴに記憶させるように大きすぎてはいけない。例えば、数秒間がＭＩＬについての実行可能な値となる。しかしながら、実際には、そのローカルルータに対してインタレストを提出する消費者は、コンテンツの大部分に対応する同じＮＤＯグループにおけるＮＤＯ（例えば、映画）について提出される複数のインタレストにわたって推定されるインタレスト寿命の初期値を提供することができる。これは、特に、インタレストの再送信がルータによってではなくコンテンツ消費者によって行われるという我々の仮定が与えられた場合である。
【００８５】
図７に示されるインタレスト転送アルゴリズムによれば、ルータｉは、上述した条件（１）を満たす接頭辞ｎ（ｊ）＊についてＦＩＢに記憶されている隣接者のランク付けされたリスト内の第１の隣接者ｖを単に選択する。隣接者がＦＩＢにリスト化されているセットにおいて使用可能でない場合、制御メッセージ生成モジュール５１４は、到来するセットにおける各隣接者についてのＮＡＣＫメッセージＮＩ［ｎ（ｊ），ｎｏ  ｒｏｕｔｅ］を生成し、転送モジュール５１０は、それに応じてＮＡＣＫメッセージを転送する。
【００８６】
より洗練された戦略は、要求されたコンテンツに向かう複数の利用可能なルートのうち負荷バランスを達成して最適に近付けることができると考えることができる。さらに、同じインタレストは、インタレストが成功裏に通過した各経路を介してコンテンツが返送される場合には同時に複数の経路を介して転送されることができる。しかしながら、有効であるために、これらのアプローチは、制御プレーンにおけるループフリーのマルチパスルーティングプロトコルの採用を必要としなければならない。この文脈において、制御プレーンは、長期間性能基準を使用してコンテンツ接頭辞に対して有効なマルチパスを確立し、データプレーンは、ループによるバックトラックに関連する長い遅延の危険性なしで、距離ベースの転送戦略（ＳＩＦＡＨなど）及び短期間性能基準を使用してそれらの経路を利用する。
【００８７】
図８は、本発明の実施形態にかかる例示的なＮＤＯメッセージ処理アルゴリズムを図示する図である。図８に示されるアルゴリズムによれば、ルータは、インタレストが送信された隣接者の１つから到来したコンテンツ及びＮＤＯを待機するＰＩＴエントリを有する場合には隣接者から受信したＮＤＯを受け入れる。アルゴリズムは、（経路ベース又はエッジベースとすることができるＩＣＮにおいて使用されるキャッシュ戦略にしたがって）署名検証及びコンテンツのキャッシュのための（「［Ｏ］」によって示される）任意の動作を含むことに留意されたい。ルータは、それを要求した任意の隣接者に対して有効なＮＤＯを転送し、対応するＰＩＴエントリを削除する。
【００８８】
図９は、本発明の実施形態にかかる期限切れのＰＩＴエントリを処理するための例示的なアルゴリズムを図示する図である。名称ｎ（ｊ）を有するＰＩＴエントリがＮＤＯ又はＮＡＣＫを受信せずに期限切れとなった場合、ルータがインタレストの再送信を開始していないことを考えると、ルータｉは、名称ｎ（ｊ）についてのインタレストを受信した全ての隣接者に対してＮＡＣＫを単に送信する。より洗練されたアプローチは、ルータがインタレストの再送信を提供しなければならないＩＣＮの場合に必要とされるであろう。
【００８９】
図１０は、本発明の実施形態にかかる例示的なＮＡＣＫメッセージ処理アルゴリズムを図示する図である。図１０に示されるアルゴリズムによれば、ルータｉは、ｎ（ｊ）についてのインタレストを受信した全てのそれらの隣接者に対してｎ（ｊ）について受信したＮＡＣＫを転送し、その後にインタレストのエントリを削除する。ルータによってインタレストの再送信をサポートすることは、ＮＡＣＫを処理するためにより複雑なアプローチを必要とする。
【００９０】
図１１は、本発明の実施形態にかかる例示的なリンク障害処理アルゴリズムを図示する図である。リンクを介した接続が失敗した場合、ルータは、期限切れまでそれらのインタレストの寿命を単に待機することによってインタレストが転送される隣接者との認識された接続の失敗に反応することができることに留意されたい。しかしながら、そのようなアプローチは、図１１に示されたアルゴリズムに比べてリンク障害に反応するのが非常に遅くなることがある。このアルゴリズムは、制御プレーンが１つ以上の隣接者に対する接続の損失から生じる名称接頭辞に対するホップ数のいかなる変更も反映するようにＦＩＢｉを更新することを仮定する。図１１に示される例において、ルータｉが失敗したリンクを介して転送された各インタレストについてのリンク（ｉ，ｋ）上で接続障害を検出した場合、ルータｉは、インタレストが集約された全ての隣接者に対してＮＡＣＫを送信する。より具体的には、隣接者ｋが到来する隣接者のセットに属する場合、ルータｉは、セットから隣接者ｋを単に削除する。一方、隣接者ｋがｎ（ｊ）についての発信隣接者のみである場合、ルータｉは、インタレストについての到来隣接者を特定し、それらの到来隣接者までのルートを記述しないＮＡＣＫを送信する必要がある。
【００９１】
動作例
図１２Ａ〜図１２Ｂは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。より具体的には、図１２Ａは、制御プレーンによって判定されるようなルーティング情報を図示しており、図１２Ｂは、インタレストがリンクを通過する方法を図示している。図２Ａに示されているものと同様に、図１２Ａにおいて、ネットワーク１２００は、ルータに記憶されているＦＩＢエントリに応じてルータ１２１８によって広告される（名称ｎ（ｊ）を有する）コンテンツに対する次ホップを示す矢印線を有するノード１２０２〜１２１８などの複数のノードを含む。図１２Ａ〜図１２Ｂに示される例は、制御プレーンが各名称接頭辞に対するマルチパスを確立するが、ループフリーのルーティングテーブルを保証しない場合の動作を実証するために使用される。この例において、（ａ）ルータは、ループフリーのＦＩＢを強制しないルーティングプロトコルを実行する；及び（ｂ）隣接者のランキングは、各経路及びインターフェースの知覚される性能に基づいていくつかのデータプレーン戦略を使用して各ルータにおいて独立して判定されることが仮定される。経路の距離値は、図に示された経路のホップ数値に正比例している必要はないことに留意されたい。
【００９２】
図１２Ａに示されるように、マルチパスは、ノード１２０２と１２１８との間に存在し、ルーティングテーブルは、ループ、すなわち、ノード１２０４−ノード１２０６−ノード１２０８−ノード１２１０−ノード１２０４を含むことができる。さらに、図１２Ａにおいては、ルータからその隣接者へと発信する各リンクにおいて、隣接者を介したｎ（ｊ）に対するホップ数（第１の番号）とＦＩＢにおける隣接者のランク（第２の番号）とを示す一対の番号がリスト化されている。同じリンクについて２つの対があってもよく、各対がその対に近いルータにおけるＦＩＢに記憶されることに留意されたい。例えば、ルータ１２０４からルータ１２０６までのリンクにおいて、２つの番号対、対（７，１）及び対（８，２）は、リンクの隣に示されている。番号対（７，１）は、ルータ１２０４に隣接しており、ルータ１２０４のＦＩＢに記憶され、番号対（８，２）は、ルータ１２０６に隣接しており、ルータ１２０６のＦＩＢに記憶される。より具体的には、ルータ１２０４に隣接する番号対（７，１）は、その隣接者１２０６からのホップ数が７であり、隣接者１２０６にルータ１２０４のＦＩＢにおいて番号１がランク付けされていることを示している。一方、ルータ１２０６に隣接する番号対（８，２）は、その隣接者１２０４からのホップ数が８であり、隣接者１２０４にルータ１２０６のＦＩＢにおいて番号２がランク付けされていることを示している。
【００９３】
隣接者、そのホップ数及びそのランキングを示すためにタプル（ｖ：ｈ，ｒ）を使用することができる。そのようなタプルは、名称接頭辞ｎ（ｊ）＊に基づいてＦＩＢにリスト化されたエントリとすることができることに留意されたい。例えば、ＦＩＢｎｏｄｅ１２０４は、タプル（ノード１２０６：７，１）、（ノード１２１２：７，２）及び（ノード１２１０：９，３）をリスト化することができる。同様に、ＦＩＢｎｏｄｅ１２０２は、タプル（ノード１２０４：８，１）をリスト化することができ、ＦＩＢｎｏｄｅ１２０６は、タプル（ノード１２０８：９，１）、（ノード１２０４：８，２）及び（ノード１２１４：６，３）をリスト化することができ、ＦＩＢｎｏｄｅ１２０８は、タプル（ノード１２０６：７，１）、（ノード１２１０：９，２）及び（ノード１２１６：９，３）をリスト化することができ、ＦＩＢｎｏｄｅ１２１０は、タプル（ノード１２０４：８，１）及び（ノード１２０８：８，２）をリスト化することができる。ノード１２１２、１２１４及び１２１６についての部分的なＦＩＢエントリもまた図１２Ａに示されていることに留意されたい。
【００９４】
図２Ｂに示されているものと同様に、図１２Ｂは、インタレストの転送を図示している。図１２Ｂに示される例において、ルータ１２０２は、名称ｎ（ｊ）についてのインタレストを発信し、ｈＩ（Ｎｏｄｅ１２０２）＝８でルータ１２０４に対してインタレストＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２０２）］を送信する。ルータ１２０４は、ＨＦＡＲ、より具体的には条件（１）を満たす少なくとも１つの隣接者（ルータ１２０６）を有することから、ｈＩ（Ｎｏｄｅ１２０２）＞ｈ（Ｎｏｄｅ１２０４，ｎ（ｊ）＊，Ｎｏｄｅ１２０６）＝７の場合に、時間ｔ１においてインタレストを受信し、インタレストを受け入れる。ルータ１２０４は、ルータ１２０６がＨＦＡＲを満たす最高ランクの隣接者であることから、ｈＩ（Ｎｏｄｅ１２０４）＝７でルータ１２０６に対してインタレストＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２０４）］を送信する。ルータ１２０４は、ｔ１よりも大きい時間ｔ３においてルータ１２１０からｈＩ（Ｎｏｄｅ１２１０）＝８でＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２１０）］を受信し、ルータ１２０４が小さいホップ数で先にインタレストを送信したことから、そのようなインタレストを集約する。より具体的には、ルータ１２０４は、ホップ数ｈＩ（Ｎｏｄｅ１２１０）＝８よりも小さいホップ数ｈＩ（Ｎｏｄｅ１２０４）＝７で時間ｔ１においてＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２０４）］を送信した。一方、ルータ１２０６は、ｔ１よりも大きい時間ｔ２においてインタレストＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２０４）］を受信し、ＨＦＡＲを満たす少なくとも１つの隣接者を有することからそれを受け入れる。より具体的には、ｈＩ（Ｎｏｄｅ１２０４）＞ｈ（Ｎｏｄｅ１２０６，ｎ（ｊ）＊，Ｎｏｄｅ１２１４）＝６である。そして、ルータ１２０６は、ルータ１２１４がＨＦＡＲを満たすルータ１２０６に対する最高ランクの隣接者であることから、ルータ１２１４に対してインタレストＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１２０４）］を送信する。そのようなインタレストは、時間ｔ４においてルータ１２１４に到達する。
【００９５】
図１２Ａ〜図１２Ｂに示された例からわかるように、インタレストは、ルータがＳＩＦＡＨを実装する場合にはループフリーの経路に沿って転送され、ルータによって維持されるＦＩＢは、ＦＩＢにおいて暗示されるマルチパスの一部がループを含む場合であっても一貫性のある情報を有する。一般に、インタレストループが発生することができず且つＳＩＦＡＨが実装されるＩＣＮにおいて検出されないことを証明することができる。また、ＳＩＦＡＨは、故障も送信エラーもないＩＣＮにおいて安全であることを証明することができる。
【００９６】
図１３Ａ〜図１３Ｂは、本発明の実施形態にかかるＳＩＦＡＨの動作例を図示する図である。より具体的には、図１３Ａ〜図１３に示される例は、制御プレーンのみが単一経路のルーティングを使用する場合の動作を示すために使用される。図１３Ａにおいて、各ルータは、そのＦＩＢにリスト化されている各接頭辞についての単一の次ホップと１つのホップ数とを有する。例えば、ルータ１３１８によって広告される名称接頭辞ｎ（ｊ）＊について、ルータ１３０４は、隣接者ルータ１３０６を介して７のホップ数をリスト化し、ルータ１３０６は、隣接者ルータ１３０８を介して１０のホップ数をリスト化する。ルータ１３０６とルータ１３１４との間のリンクが故障した場合、ルータ１３０６は、時間ｔ１においてリンク障害を反映するようにそのＦＩＢを更新するとともに、ルータ１３０２は、ｎ（ｊ）を要求するルータ１３０４に対してインタレストを送信する。ネットワーク１３００におけるルータは、ルーティングが伝播を更新し且つインタレストが転送される間、ｎ（ｊ）について一貫性のないＦＩＢ状態を有することができる。
【００９７】
図１３Ｂは、インタレスト及びＮＡＣＫがリンクを移動する方法を図示している。図１３Ｂに示されるように、ルータ１３０６は、
【００９８】
【数１５】
2016116218.tif 000017
【００９９】
であり且つＨＦＡＲが満たされないことから、ルータ１３０４に対してＮＡＣＫメッセージＮＩ［ｎ（ｊ），ｌｏｏｐ］を送信しなければならない。返送において、ルータ１３０４がルータ１３０６からＮＡＣＫを受信すると、それはルータ１３０２及びルータ１３１０に対してＮＡＣＫを転送しなければならない。最終的に、制御プレーンにおいて実行されるルーティングプロトコルは、リンク（ルータ１３０６、ルータ１３１４）の障害を反映するように、ルータ１３０４及び１３０２にそれらのＦＩＢにおいてｎ（ｊ）＊までのホップ数を変更させる。その時点で、ルータ１３０２からのインタレストの再送信は、ｈＩ（Ｎｏｄｅ１３０２）＝９を述べ、ルータ１３０４にインタレストＩ［ｎ（ｊ），ｈＩ（Ｎｏｄｅ１３０４）＝８］をルータ１３１２に対して転送させるであろう。
【０１００】
上述したように、距離ベースの転送戦略、すなわちＳＩＦＡＨは、従来のＮＤＮ転送戦略によって被ったものと比較して小さな記憶装置オーバーヘッドで多くの利点を提供する。ＳＩＦＡＨにおいて、ルータｉは、ルータｋから受信したインタレストがインタレストループを通過することができるかどうかを判定するためにホップ数値ｈＩ（ｉ）のみを使用し、ｈＩ（ｋ）を記憶しない。したがって、ＳＩＦＡＨを実装するルータについてのＰＩＴ記憶装置サイズは、
【０１０１】
【数１６】
2016116218.tif 000018
【０１０２】
として推定することができる。ここで、
【０１０３】
【数１７】
2016116218.tif 000019
【０１０４】
は、ＳＩＦＡＨが使用される場合のＰＩＴｉにおける保留インタレストの数であり、｜ｍｈ｜は、ｈＩ（ｉ）を記憶するために使用されるビット数であり、ＩＮＴは、所定のインタレストについての到来及び発信の隣接者に関する情報を維持するために必要とされる平均記憶装置である。名称ｎ（ｊ）を有する所定のＮＤＯについて、到来及び発信の隣接者を維持するために必要な記憶装置の量は、
【０１０５】
【数１８】
2016116218.tif 000020
【０１０６】
である。
【０１０７】
対照的に、ＮＤＮ転送戦略は、所定のＮＤＯ名称ｎ（ｊ）についての有効なインタレストを示すために使用される異なるナンスのリストを記憶するために各ルータを必要とする。サイズ｜ｉｄ｜の各ナンス及びＮＤＯについての有効なインタレストを送信する最大Ｉ個の隣接者を有するルータｉにより、ＮＤＮについてのＰＩＴ記憶装置サイズは、
【０１０８】
【数１９】
2016116218.tif 000021
【０１０９】
である。ここで、
【０１１０】
【数２０】
2016116218.tif 000022
【０１１１】
は、ＮＤＮが使用される場合のＰＩＴｉにおける保留インタレストの数である。したがって、
【０１１２】
【数２１】
2016116218.tif 000023
【０１１３】
の場合であっても、ＳＩＦＡＨにわたってＮＤＮに必要とされる追加のＰＩＴ記憶装置の量は、
【０１１４】
【数２２】
2016116218.tif 000024
【０１１５】
である。
【０１１６】
ＮＤＮにおけるナンスのサイズは１６バイトである一方で、インタレストについての２５５の最大ホップ数は十分以上のものである。したがって、ＳＩＦＡＨと比較してＮＤＮにおいて必要な追加のＰＩＴ記憶装置は（１２８Ｉ−８）
【０１１７】
【数２３】
2016116218.tif 000025
【０１１８】
である。これは、ＰＩＴエントリの数よりも多い大きさのオーダで、ＲＡＭの数百ギガバイトを表す。さらにまた、インタレストが集約されたときにはＮＤＮ転送戦略がループを検出しないことから、ＰＩＴにおける多くのインタレストエントリは、それらの寿命が終わるまで記憶される必要があってもよい。したがって、
【０１１９】
【数２４】
2016116218.tif 000026
【０１２０】
は、
【０１２１】
【数２５】
2016116218.tif 000027
【０１２２】
よりもはるかに大きくすることができる。
【０１２３】
ＮＤＮ転送戦略と比較してＳＩＦＡＨにおける追加のＦＩＢ記憶装置オーバーヘッドは、各隣接者からの各名称接頭辞ｎ（ｊ）＊についてのホップ数情報の記憶から構成される。これは、ルータｉにおいて（｜ｍｈ｜）（｜ＦＩＢｉ｜）Ｄｉにのぼる。ここで、Ｄｉは、ルータｉの隣接者数であり、｜ＦＩＢｉ｜は、ＦＩＢｉにおけるエントリ数である。Ｄｉ及びＩが同じオーダであり且つＯ（｜ＦＩＢｉ｜）＜Ｏ（｜ＰＩＴｉ｜）であることを考えると、ＳＩＦＡＨにおける追加のＦＩＢ記憶装置は、ＮＤＮ転送戦略によって必要な追加のＰＩＴ記憶装置よりもはるかに小さい。
【０１２４】
コンピュータ及び通信システム
図１４は、本発明の実施形態にかかる距離ベースのインタレストの転送のための例示的なシステムを図示している。距離ベースのインタレストの転送のためのシステム１４００は、プロセッサ１４１０と、メモリ１４２０と、記憶装置１４３０とを含む。記憶装置１４３０は、典型的には、上述した方法を実行するためにメモリ１４２０にロードされてプロセッサ１４１０によって実行可能な命令を記憶する。１つの実施形態において、記憶装置１４３０における命令は、インタレスト処理モジュール１４３２と、名称付きデータオブジェクト処理モジュール１４３４と、転送モジュール１４３６と、制御メッセージ生成モジュール１４３８とを実装することができ、その全ては、様々な手段を介して互いに通信することができる。記憶装置１４３０は、さらに、コンテンツストア１４４０、転送情報ベース１４４２及び保留インタレストテーブル１４４４などの複数のデータ構造を備えることができる。
【０１２５】
いくつかの実施形態において、モジュール１４３２、１４３４、１４３６、１４３８は、部分的又は全体的にハードウェアで実装することができ、プロセッサ１４１０の一部とすることができる。さらに、いくつかの実施形態において、システムは、別個のプロセッサ及びメモリを含まなくてもよい。代わりに、それらの特定のタスクを実行することに加えて、モジュール１４３２、１４３４、１４３６、１４３８は、別個に又は協働して、汎用又は特殊目的の計算エンジンの一部とすることができる。
【０１２６】
記憶装置１４３０は、プロセッサ１４１０によって実行されることになるプログラムを記憶する。具体的には、記憶装置１４３０は、距離ベースのインタレストの転送のためのシステム（アプリケーション）を実装するプログラムを記憶する。動作中、アプリケーションプログラムは、記憶装置１４３０からメモリ１４２０にロードされてプロセッサ１４１０によって実行されることができる。その結果、システム１４００は、上述した機能を実行することができる。システム１４００は、（タッチスクリーンディスプレイとすることができる）任意のディスプレイ１４８０、キーボード１４６０及びポインティングデバイス１４７０に接続されることができ、また、１つ以上のネットワークインターフェースを介してネットワーク１４８２に結合されることができる。
【０１２７】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られている若しくは今後開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【０１２８】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体内に記憶された方法及びプロセスを実行する。
【０１２９】
さらにまた、本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置に含めることができる。これらのモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュール又は特定時間においてコードの一部を実行する専用又は共有プロセッサ、及び／又は、現在知られている若しくは今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【図１】
2016116218.tif 000028
【図２Ａ】
2016116218.tif 000029
【図２Ｂ】
2016116218.tif 000030
【図３】
2016116218.tif 000031
【図４】
2016116218.tif 000032
【図５】
2016116218.tif 000033
【図６】
2016116218.tif 000034
【図７】
2016116218.tif 000035
【図８】
2016116218.tif 000036
【図９】
2016116218.tif 000037
【図１０】
2016116218.tif 000038
【図１１】
2016116218.tif 000039
【図１２Ａ】
2016116218.tif 000040
【図１２Ｂ】
2016116218.tif 000041
【図１３Ａ】
2016116218.tif 000042
【図１３Ｂ】
2016116218.tif 000043
【図１４】
2016116218.tif 000044