(57)【要約】      （修正有）【課題】情報中心ネットワーク（ＩＣＮ）におけるルータのルーティングテーブルのサイズを削減する。【解決手段】ルータは、コンテンツの一部に関連付けられた名称を示すインタレストを受信するように構成された受信モジュールを含み、また、インタレストが転送されることができるかどうかを判定し、インタレストが第２のルータに転送されることができるという判定に応答して、第２のルータに固有のラベルを取得し、インタレストにラベルを添付するように構成されたインタレスト処理モジュールを含み、添さらに、付されたラベルを有する第２のルータに対してインタレストを転送するように構成された転送モジュールを含む。【選択図】図１１
2017069950.tif 000002
【特許請求の範囲】
【請求項１】
情報中心ネットワーク（ＩＣＮ）におけるルータにおいて、
コンテンツの一部についてのインタレストを受信するように構成され、前記インタレストが前記コンテンツの一部に関連付けられた名称を示す受信モジュールと、
前記インタレストが転送されることができるかどうかを判定し、
前記インタレストが第２のルータに対して転送されることができるという判定に応答して、前記第２のルータに固有のラベルを取得し、
前記インタレストにラベルを添付するように構成されたインタレスト処理モジュールと、
前記添付されたラベルを有する前記第２のルータに対して前記インタレストを転送するように構成された転送モジュールとを備える、ルータ。
【請求項２】
前記転送モジュールが、さらに、
前記インタレストが転送されることができないと前記インタレスト処理モジュールが判定したことに応答して、前記インタレストに対する応答を送信するように構成されている、請求項１に記載のルータ。
【請求項３】
前記インタレスト処理モジュールが、
前記コンテンツの一部をみつけることができないこと、
前記コンテンツの一部を公表する宛先ルータまでのルートをみつけることができないこと、
前記インタレストがループを移動していることのいずれかに基づいて、前記インタレストが転送されることができないことを判定するように構成されており、前記転送モジュールによって送信された応答が否定応答を含む、請求項２に記載のルータ。
【請求項４】
前記インタレストが、さらに、前記コンテンツの一部を公表する宛先ルータまでのホップ数を示し、前記インタレスト処理モジュールが、前記ルータに記憶されたルーティング情報及び前記ホップ数に基づいて前記インタレストが前記ループを移動していることを判定するように構成されている、請求項３に記載のルータ。
【請求項５】
コンピュータ実行可能な方法において、
情報中心ネットワーク（ＩＣＮ）における第１のノードにより、コンテンツの一部についてのインタレストを受信することであって、前記インタレストが前記コンテンツの一部に関連付けられた名称を示すことと、
前記インタレストが転送されることができるかどうかを判定することと、
前記インタレストが第２のノードに対して転送されることができるという判定に応答して、前記第２のノードに固有のラベルを取得することと、
前記インタレストにラベルを添付することと、
前記添付されたラベルを有する前記第２のノードに対して前記インタレストを転送することとを備える、方法。
【請求項６】
さらに、
前記インタレストが転送されることができないという判定に応答して、前記インタレストに対する応答を送信することを備える、請求項５に記載の方法。
【請求項７】
前記インタレストが転送されることができないと判定することが、
前記コンテンツの一部をみつけることができないと判定することと、
前記コンテンツの一部を公表するノードまでのルートをみつけることができないと判定することと、
前記インタレストがループを移動していると判定することのいずれかを含み、
前記応答が否定応答を含む、請求項６に記載の方法。
【請求項８】
コンピューティングデバイスによって実行されたときに前記コンピューティングデバイスに方法を実行させる命令を記憶する非一時的コンピュータ読み取り可能な記憶媒体において、
前記方法が、
情報中心ネットワーク（ＩＣＮ）における第１のノードにより、コンテンツの一部についてのインタレストを受信することであって、前記インタレストが前記コンテンツの一部に関連付けられた名称を示すことと、
前記インタレストが転送されることができるかどうかを判定することと、
前記インタレストが第２のノードに対して転送されることができるという判定に応答して、前記第２のノードに固有のラベルを取得することと、
前記インタレストにラベルを添付することと、
前記添付されたラベルを有する前記第２のノードに対して前記インタレストを転送することとを備える、コンピュータ読み取り可能な記憶媒体。
【請求項９】
前記方法が、さらに、
前記インタレストが転送されることができないという判定に応答して、前記インタレストに対する応答を送信することを備える、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記インタレストが転送されることができないと判定することが、
前記コンテンツの一部をみつけることができないと判定することと、
前記コンテンツの一部を公表するノードまでのルートをみつけることができないと判定することと、
前記インタレストがループを移動していると判定することのいずれかを備え、
前記応答が否定応答を含む、請求項９に記載のコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、情報中心ネットワーク（ＩＣＮ）に関する。より具体的には、本開示は、データ回答ルーティングテーブル（ＤＡＲＴ）によって保留インタレストテーブルを置換するＩＣＮアーキテクチャに関する。
【背景技術】
【０００２】
インターネット及び電子商取引の普及は、ネットワーク業界における革命的な変化を刺激し続けている。今日では、オンライン映画鑑賞から毎日のニュース配信、小売売上高及びインスタントメッセージまで、かなりの数の情報交換がオンラインで行われている。増加する数のインターネットアプリケーションはまたモバイルになってきている。しかしながら、現在のインターネットは、主にロケーションベースのアドレッシング方式で動作する。２つの最もユビキタスなプロトコルであるインターネットプロトコル（ＩＰ）及びイーサネット（登録商標）プロトコルは、双方とも、エンドホストアドレスに基づいている。すなわち、コンテンツの消費者は、典型的には物理オブジェクト又は位置に関連しているアドレス（例えば、ＩＰアドレス又はイーサネット（登録商標）メディアアクセス制御（ＭＡＣ）アドレス）からコンテンツを明示的に要求することによってコンテンツを受信することができるにすぎない。この制限のあるアドレッシング方式は、刻々と変化するネットワークの要求を満たすために次第に不十分になってきている。
【０００３】
近年、コンテンツが直接名称付けられてアドレッシングされる情報中心ネットワーク（ＩＣＮ）アーキテクチャが業界において提案されている。コンテンツ中心ネットワーキング（ＣＣＮ）及び名称付きデータネットワーキング（ＮＤＮ）は、主要なインタレストベースのＩＣＮアプローチである。ＣＣＮにおいて、コンテンツが移動するエンドツーエンド会話としてのアプリケーションレベルでネットワークトラフィックを表示する代わりに、コンテンツは、固有名称に基づいて要求又は返送され、ネットワークは、提供者から消費者へとコンテンツをルーティングする責を担う。コンテンツは、テキスト、画像、映像及び／又は音声などの任意の形態のデータを含む通信システムにおいて伝送されることができるデータを含むことに留意されたい。消費者及び提供者は、ＣＣＮの内部又は外部のコンピュータ又は自動プロセスにおける人とすることができる。コンテンツの一部は、コンテンツ全体又はコンテンツの各部を指すことができる。例えば、新聞記事は、データパケットとして具現化されたコンテンツの複数部分によって表されることができる。コンテンツの一部はまた、認証データ、作成日付、コンテンツ所有者などの情報を有するコンテンツの一部を記述又は増補するメタデータに関連付けることができる。
【０００４】
ＣＣＮ及びＮＤＮなどの既存のインタレストベースのＩＣＮアプローチにおいて、ルータ（又はネットワークにおけるノード）は、特定の名称付きデータオブジェクト（ＮＤＯ）についてのインタレストが受信されるインターフェース及びそのようなインタレストが転送されるインターフェースを含むインタレスト状態を記憶するために、保留インタレストテーブル（ＰＩＴ）を維持する必要がある。ＰＩＴは、元の要求者の身元を隠しながらインタレストを満たすＮＤＯが元の要求者まで戻る逆経路をたどるのを可能とする。しかしながら、ルータによって処理されるインタレスト数が増えるのにともない、ルータがネットワーク内のルータの数よりもはるかに多くのインタレストを処理することから、伝統的なルーティングテーブルのサイズよりも大きい大きさの多くのオーダとすることができるＰＩＴのサイズがとても大きくなる。
【０００５】
本開示において使用される用語は、一般に、以下のように定義される（それらの解釈はそのように限定されるものではない）。
【０００６】
「ＨＳＶＬＩ」：名称とも称される階層的構造化可変長識別子である。それは、可変長オクテット文字列とすることができる名称要素の順序付きリストである。人間が読める形式において、ｃｃｎｘ：／ｐａｔｈ／ｐａｒｔなどの形式で表現することができる。また、ＨＳＶＬＩは、人間が読めるものでなくてもよい。上述したように、ＨＳＶＬＩは、コンテンツを指し、それらは、コンテンツについての組織的構造を表現することができ且つ人間にとって少なくとも部分的に有意とすることができるのが望ましい。ＨＳＶＬＩの個別の要素は、任意長を有することができる。さらにまた、ＨＳＶＬＩは、明示的に区切られた要素を有することができ、バイトの任意のシーケンスを含むことができ、人間が読める文字に限定されるものではない。最長接頭辞一致検索は、ＨＳＶＬＩを有するパケットの転送に重要である。例えば、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ」におけるインタレストを示すＨＳＶＬＩは、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｔｅｓｔ．ｔｘｔ」及び「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｂａｒ．ｔｘｔ」の双方に一致する。名称要素の数の観点で最長の一致は、最も特異的であるために最良であると考えられる。ＨＳＶＬＩの詳細な説明は、２００９年９月２３日に出願された発明者Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ及びＪａｍｅｓ  Ｄ．  Ｔｈｏｒｎｔｏｎによる「階層的構造化可変長識別子を有するパケットを転送するためのシステム」と題された米国特許第８，１６０，０６９号明細書においてみることができる。
【０００７】
「インタレスト」：コンテンツオブジェクトについての要求である。インタレストは、同じ名称接頭辞を有する複数のオブジェクトを選択するために使用することができるＨＳＶＬＩ名称接頭辞及び他の任意のセレクタを指定する。名称がインタレスト名称接頭辞と一致する（及び、必要に応じて発行者鍵ＩＤなど他の要求されたパラメータが一致する）任意のコンテンツオブジェクトは、インタレストを満たす。
【０００８】
「コンテンツオブジェクト」：インタレストに応答して送信されたデータオブジェクトである。それは、暗号化署名を介して互いに結合しているＨＳＶＬＩ名称及びコンテンツペイロードを有する。必要に応じて、全てのコンテンツオブジェクトは、コンテンツオブジェクトのＳＨＡ−２５６ダイジェストから構成された暗黙的な端末名称要素を有する。１つの実施形態において、暗黙的なダイジェストは、有線で転写されないが、必要に応じて、各ホップにおいて計算される。この開示において、用語「コンテンツオブジェクト」及び用語「名称付きデータオブジェクト（ＮＤＯ）」は互換性がある。
【０００９】
「フェース」：ＣＣＮにおいて、用語フェースは、インターフェースの概念の一般化である。フェースは、ネットワーク又は直接アプリケーションパーティに接続されることができる。フェースは、特定のネットワークインターフェース上でブロードキャスト又はマルチキャストパケットを送受信するか又は下層伝送においてポイントツーポイントアドレッシングを使用して若しくはトンネル（例えば、ＴＣＰトンネル）を使用してパケットを送受信するように構成されることができる。フェースはまた、ＵＤＰ又はＯＳ固有のプロセス間通信経路のようなカプセル化を介して、同じマシン上で実行されている単一のアプリケーションプロセスへの接続とすることができる。全てのメッセージは、フェースを介して到達し、フェースを介して送信される。この開示において、用語「隣接者」は、用語「フェース」と互換可能であり、インタレストの到来又は発信インターフェースを指す。
【００１０】
「接頭辞」：この開示において、用語「接頭辞」は、特定のコンテンツオブジェクトの名称又はコンテンツオブジェクトについての名称接頭辞のいずれかを指すために使用することができる。
【００１１】
「アンカー」：この開示において、用語「アンカー」は、コンテンツを公表するルータを指すために使用される。より具体的には、接頭辞に対応するコンテンツの一部又は全てについて公表するルータ（又はノード）は、接頭辞のアンカーと称される。
【００１２】
「ＤＡＲＴ」：この開示において、大文字頭文字「ＤＡＲＴ」は、宛先及び返送トークン（ｄａｒｔ）とルータのフェースとの間のマッピングを記憶するデータ構造（テーブル）を指す。
【００１３】
「ｄａｒｔ」：この開示において、小文字頭文字「ｄａｒｔ」は、インタレストによって担持された宛先及び返送トークンを指し、テーブル「ＤＡＲＴ」と混同してはならない。
【発明の概要】
【課題を解決するための手段】
【００１４】
本発明の１つの実施形態は、情報中心ネットワーク（ＩＣＮ）におけるルータを提供する。ルータは、コンテンツの一部についてのインタレストを受信するように構成された受信モジュールを含む。インタレストは、コンテンツの一部に関連付けられた名称を示す。ルータは、さらに、インタレストが転送されることができるかどうかを判定し、インタレストが第２のルータに転送されることができるという判定に応答して、第２のルータに固有のラベルを取得し、インタレストにラベルを添付するように構成されたインタレスト処理モジュールを含む。ルータはまた、添付されたラベルを有する第２のルータに対してインタレストを転送するように構成された転送モジュールを含む。
【００１５】
この実施形態の変形例において、転送モジュールは、さらに、インタレストが転送されることができないとインタレスト処理モジュールが判定したのに応答してインタレストに対する応答を送信するように構成されている。
【００１６】
さらなる変形例において、インタレスト処理モジュールは、コンテンツの一部をみつけることができないこと、コンテンツの一部を公表する宛先ルータまでのルートをみつけることができないこと、及び、インタレストがループを移動していることのいずれかに基づいて、インタレストが転送されることができないことを判定するように構成されており、転送モジュールによって送信された応答は否定応答を含む。
【００１７】
さらなる変形例において、インタレストは、さらに、コンテンツの一部を公表する宛先ルータへのホップ数を示し、インタレスト処理モジュールは、ルータに記憶されたルーティング情報及びホップ数に基づいてインタレストがループを移動していることを判定するように構成されている。
【００１８】
さらなる変形例において、インタレスト処理モジュールは、ルータがコンテンツの一部に関連付けられた名称に基づいてコンテンツの一部のコピーを有することを判定するように構成されており、転送モジュールによって送信された応答は、コンテンツの一部のコピーを含む。
【００１９】
さらなる変形例において、転送モジュールは、インタレストが移動する逆経路に沿ってインタレストの発信元に対して応答を送信するか、又は、インタレストが移動する逆経路とは異なる経路に沿ってインタレストの発信元に対して応答を送信するように構成されている。
【００２０】
さらなる変形例において、インタレストは、さらに、インタレストの発信元に特有のノンスを示す。ルータは、さらに、一致エントリが１つ以上のタプルを含み且つ各タプルが隣接ルータ及び隣接ルータに特有のラベルを示し、ノンスに基づく一致エントリについてローカルに記憶されたテーブルにおける検索を実行し、１つ以上のタプルからタプルを選択し、選択されたタプルによって示されたラベルを使用して応答にラベル付けするように構成された応答処理モジュールを備える。転送モジュールは、選択されたタプルによって示されたルータに対してラベル付けされた応答を送信するように構成されている。
【００２１】
この実施形態の変形例において、インタレストは、さらに、以前のラベルを含む。インタレスト処理モジュールは、一致エントリが第２のルータ及び第２のルータに特有のラベルを示し、以前のラベルに基づく一致エントリについてローカルに記憶されたテーブルにおける検索を実行し、一致エントリがみつからないことに応答して、第２のルータ及び第２のルータに特有のラベルを示す記憶されたエントリとともに、エントリを生成してローカルテーブルに記憶するように構成されている。
【００２２】
さらなる変形例において、インタレストにラベルを添付することは、第２のルータに特有のラベルによって以前のラベルを置き換えることを備える。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施形態にかかる、ネットワークの例示的なアーキテクチャを図示している。
【図２】図２は、本発明の実施形態にかかる、例示的な転送情報ベース（ＦＩＢ）を図示する図である。
【図３】図３は、本発明の実施形態にかかる、例示的なデータ回答ルーティングテーブル（ＤＡＲＴ）を図示する図である。
【図４Ａ】図４Ａは、本発明の実施形態にかかる、例示的な発信元ノンステーブル（ＯＮＴ）を図示する図である。
【図４Ｂ】図４Ｂは、本発明の実施形態にかかる、例示的な宛先ノンステーブル（ＤＮＴ）を図示する図である。
【図５Ａ】図５Ａは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがインタレストループを検出する方法を図示している。
【図５Ｂ】図５Ｂは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがインタレストループを検出する方法を図示している。
【図６Ａ】図６Ａは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがシングルパスルーティング及び一時ルーティングテーブルループによって動作する方法を図示している。
【図６Ｂ】図６Ｂは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがシングルパスルーティング及び一時ルーティングテーブルループによって動作する方法を図示している。
【図６Ｃ】図６Ｃは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがシングルパスルーティング及び一時ルーティングテーブルループによって動作する方法を図示している。
【図７】図７は、本発明の実施形態にかかる、ルータがローカル消費者からインタレストを受信したときにルータによって実行される例示的なインタレスト処理アルゴリズムを示している。
【図８】図８は、本発明の実施形態にかかる、ルータが隣接者からインタレストを受信したときにルータによって実行される例示的なインタレスト処理アルゴリズムを示している。
【図９】図９は、本発明の実施形態にかかる、例示的な応答生成アルゴリズムを示している。
【図１０Ａ】図１０Ａは、本発明の実施形態にかかる、例示的なＮＤＯ処理アルゴリズムを示している。
【図１０Ｂ】図１０Ｂは、本発明の実施形態にかかる、例示的なＮＡＣＫ処理アルゴリズムを示している。
【図１１】図１１は、本発明の実施形態にかかる、例示的なＣＣＮ−ＤＡＲＴルータのアーキテクチャを示す図である。
【図１２】図１２は、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴの例示的な動作を図示する図である。
【図１３】図１３は、実施形態にかかる、ＣＣＮ−ＤＡＲＴについての例示的なシステムを図示している。
【発明を実施するための形態】
【００２４】
図面において、同様の参照符号は、同じ図要素を指している。
【００２５】
概説
本発明の実施形態は、データ回答ルーティングテーブル（ＣＣＮ−ＤＡＲＴ）を実装するＣＣＮシステムを提供する。具体的には、ＣＣＮ−ＤＡＲＴを実装するルータは、もはや保留インタレストテーブル（ＰＩＴ）を維持する必要がない。代わりに、ＣＣＮ−ＤＡＲＴルータは、ラベル交換ネットワークにおいて使用されるラベルスワッピングテーブルと同様のデータ回答ルーティングテーブル（ＤＡＲＴ）を維持する。インタレストは、要求されたコンテンツの名称、ホップ数、宛先及び返送トークン（ｄａｒｔ）及びノンスを記載する。ホップ数は、正確なインタレストループ検出を確実にするために使用される。ｄａｒｔは、以前のホップ及び現在のホップのローカル識別子を使用してインタレストが移動する経路跡を残すためにルータを転送することによって使用される。それは、ホップ単位で変更し、ルート固有である。ｄａｒｔは、名称付きデータオブジェクト（ＮＤＯ）又は否定応答（ＮＡＣＫ）がインタレストのソースを開示することなくコンテンツ要求者に返送するのを可能とする。インタレストのノンスは、そのルータの身元を把握することなく、インタレストが移動する複数の経路を同じ発信元ルータと関連付けるためにコンテンツ制作者又はキャッシングルータによって使用される。ノンスは、逆経路転送を必要とするよりもむしろ、ルータがコンテンツ消費者とコンテンツ提供者との間に確立された複数経路にわたってインタレスト及びＮＤＯ又はＮＡＣＫを転送するのを可能とする。
【００２６】
ＣＣＮアーキテクチャ
一般に、ＣＣＮは、インタレスト及びコンテンツオブジェクトという２つの種類のメッセージを使用する。インタレストは、コンテンツオブジェクトの「名称」とも称される階層的構造化可変長識別子（ＨＳＶＬＩ）を担持し、そのオブジェクトについての要求として機能する。ネットワーク要素（例えば、ルータ）が同じ名称についての複数のインタレストを受信した場合、それはそれらのインタレストを集約することができる。一致するコンテンツオブジェクトとともにインタレストの経路に沿ったネットワーク要素は、インタレストを満たすそのオブジェクトをキャッシュして返送することができる。コンテンツオブジェクトは、インタレストの発信元へのインタレストの逆経路をたどる。
【００２７】
前述したように、ＨＳＶＬＩは、コンテンツの一部を示し、階層的に構造化されており、最も一般的なレベルから最も特定のレベルまで順序付けられた連続要素を含む。各ＨＳＶＬＩの長さは固定されていない。コンテンツ中心ネットワークにおいて、従来のＩＰネットワークとは異なり、パケットは、ＨＳＶＬＩによって識別されることができる。例えば、「ａｂｃｄ／ｂｏｂ／ｐａｐｅｒｓ／ｃｃｎ／ｎｅｗｓ」は、コンテンツの名称とすることができ、対応するパケット、すなわち、「ＡＢＣＤ」と名付けられた組織における「Ｂｏｂ」と名付けられたユーザについての新聞の「ｃｃｎ」コレクションからの「ｎｅｗｓ」記事を識別する。コンテンツの一部を要求するために、ノードは、コンテンツの名称によってそのコンテンツにおけるインタレストを表現する（例えば、ブロードキャストする）。コンテンツの一部におけるインタレストは、コンテンツの名称又は識別子に応じたコンテンツについてのクエリとすることができる。コンテンツは、ネットワークにおいて利用可能な場合、コンテンツを記憶する任意のノードから要求ノードに対して返送される。ルーティングインフラストラクチャは、情報を有する可能性が高い有望なノードに対してインタレストをインテリジェントに伝播した後、インタレストメッセージが移動する逆経路に沿って利用可能なコンテンツを運ぶ。基本的に、コンテンツオブジェクトは、インタレストメッセージによって残されたブレッドクラムにしたがい、それゆえに要求ノードに到達する。
【００２８】
図１は、本発明の実施形態にかかる、ネットワークの例示的なアーキテクチャを図示している。この例において、ネットワーク１８０は、ノード１００〜１４５を備える。ネットワーク内の各ノードは、１つ以上の他のノードに接続されている。ネットワーク接続１８５は、そのような接続の例である。ネットワーク接続は実線で示されているが、各線はまた、１つのノードが他のノードに結合することができるサブネットワーク又はスーパーネットワークを表現することができる。ネットワーク１８０は、コンテンツ中心のローカルネットワーク、スーパーネットワーク又はサブネットワークとすることができる。１つのネットワーク内のノードが他のネットワーク内のノードに到達することができるように、これらのネットワークのそれぞれは、相互接続することができる。ネットワーク接続は、ブロードバンド、無線、電話、衛星又は任意の種類のネットワーク接続とすることができる。ノードは、コンピュータシステム、ユーザを表すエンドポイント及び／又はインタレストを生成したり若しくはコンテンツを発信したりすることができる装置とすることができる。
【００２９】
本発明の実施形態によれば、消費者は、コンテンツの一部についてのインタレストを生成し、ネットワーク１８０内のノードに対してそのインタレストを転送することができる。コンテンツの一部は、ネットワークの内部又は外部に配置することができる発行者又はコンテンツ提供者によってネットワーク１８０内のノードに記憶されることができる。例えば、図１において、コンテンツの一部におけるインタレストは、ノード１０５において発生する。コンテンツがノードにおいて利用可能でない場合、インタレストは、第１のノードに結合された１つ以上のノードへと流れる。例えば、図１において、インタレストは、利用可能なコンテンツを有していないノード１１５に流れる（インタレストフロー１５０）。次に、インタレストは、ノード１１５から同様にコンテンツを有しないノード１２５に流れる（インタレストフロー１５５）。そして、インタレストは、利用可能なコンテンツを有するノード１３０に流れる（インタレストフロー１６０）。そして、コンテンツオブジェクトのフローは、コンテンツが配信されるノード１０５に到達するまでその経路を引き返す（コンテンツフロー１６５、１７０及び１７５）。認証などの他のプロセスは、コンテンツのフローに含まれることができる。
【００３０】
ネットワーク１８０において、コンテンツホルダ（ノード１３０）とインタレスト生成ノード（ノード１０５）との間の経路における任意数の中間ノード（ノード１００〜１４５）は、それがネットワークを介して移動するのにともないコンテンツのローカルコピーをキャッシュする際に加入することができる。キャッシングは、ローカルにキャッシュされたコンテンツに対するアクセスを暗黙的に共有することによって他の加入者の近傍に位置する第２の加入者についてのネットワーク負荷を低減する。
【００３１】
従来のＣＣＮ又はＮＤＮにおいて、各ノードは（ルータとも称される）は、転送情報ベース（ＦＩＢ）、コンテンツストア（ＣＳ）及び保留インタレストテーブル（ＰＩＴ）を含む３つの主要なデータ構造を維持する。転送プレーンは、要求されたコンテンツのコピーを公表するノードに向けてインタレストを転送し、インタレストが移動する逆経路上にそれらを要求した消費者に対してＮＤＯ又は他の応答を返送するために、これらの３つのテーブルに記憶された情報を使用する。
【００３２】
ＦＩＢは、一致コンテンツオブジェクトのポテンシャルソースに向けてインタレストパケットを転送するために使用される。典型的に、ルーティングプロトコルは、ネットワーク内の全てのノード間でＦＩＢを投入するために使用される。従来のＣＣＮにおいて、ＦＩＢエントリは、大抵の場合、一致するインタレストが転送されるべき少なくとも１つのフェースの物理アドレスを含む各エントリとともに名称接頭辞によってインデックス付けされる。ＮＤＮにおいて、名称接頭辞についてのＦＩＢエントリはまた、その後にエントリが削除されることができる失効時間、インターフェースを介したラウンドトリップ時間、レート制限、及び、インターフェースがデータを戻すことができるかできないことを知っているか知っていないかを記載するステータス情報を含む。インタレストメッセージを転送するとき、一致するエントリをみつけるためにＦＩＢにおいて名称最長接頭辞一致検索が実行される。
【００３３】
コンテンツストア（ＣＳ）は、ＩＰルータにおいて使用されるバッファメモリと同様である。より具体的には、ＣＳは、このノードを通過するコンテンツオブジェクトを一時的にバッファリングし、異なる消費者による効率的なデータ検索を可能とする。ルータがインタレストパケットを受信したとき、それは、上流のインタレストを発行する前にそのコンテンツストアに一致するコンテンツオブジェクトがあるかどうかを最初にチェックする。
【００３４】
保留インタレストテーブル（ＰＩＴ）は、インタレスト状態のキャッシュとして機能する。ＰＩＴは、ＮＤＯメッセージ又は制御メッセージ（例えば、ＮＡＣＫ）がインタレストに対する応答において返送されるべきである隣接者を追跡する。これは、上流及び下流のネットワークフローを維持し、インタレストがそれらのソースを開示しないことを可能とし、インタレスト集約を可能とする。ＣＣＮにおいては、インタレストパケットのみがルーティングされる。ＮＤＮにおいては、ＰＩＴエントリは、ベクトル、又は、同じＮＤＯ名称について処理された各ノンスについての１つのタプルを有する１つ以上のタプルを含むことができる。各タプルは、使用されるノンス、到来フェース及び発信フェースを記載する。各ＰＩＴエントリはまた、典型的には要求されたＮＤＯを有するノードまでの推定ラウンドトリップ時間よりも大きい寿命を有する。
【００３５】
ルータがインタレストを受信すると、そのＣＳにおいて要求されたコンテンツについての一致があるかどうかをチェックする。ＣＮＮにおいて、正確なインタレスト一致機構が一致するコンテンツをみつけるために使用される。インタレストに対する一致がみつかった場合、ルータは、インタレストが移動する逆経路を介してＮＤＯを返送する。ＣＳにおいて一致がみつからない場合、ルータは、同じコンテンツについてのエントリについてのＰＩＴをチェックする。ノンスがインタレストを識別するために使用されるＮＤＮにおいて、インタレストが要求されたコンテンツについてのＰＩＴエントリに記憶されたものとは異なるノンスを記載する場合、ルータは、インタレストを転送することなく、ＰＩＴエントリに到来フェース及びノンスを追加することによってインタレストを集約する。一方、インタレストにおける同じノンスが要求されたコンテンツについてのＰＩＴエントリにすでに記載されている場合、ルータは、インタレストが移動する逆経路上にループが検出されたことを示すＮＡＣＫを送信する。ＣＣＮにおいて、集約は、要求されたコンテンツについてのＰＩＴエントリに記載されていないフェースからインタレストが受信された場合に行われ、同じフェースから受信した繰り返されたインタレストは単に削除される。
【００３６】
ルータがそのＣＳ及びＰＩＴにおいて一致をみつけなかった場合、ルータは、最高の接頭辞一致についてそのＦＩＢに記載されているルート（又は複数のルート）に沿ってインタレストを転送する。ＮＤＮにおいて、ルータは、そのようなフェースがコンテンツをもたらすことが知られており且つその性能がコンテンツを同様にもたらすことができる他のフェースよりも高くランク付けされている場合、インタレストを転送するようにフェースを選択することができる。ルータは、他のルータとは独立してフェースのランク付けを実行する。
【００３７】
前述したように、ＰＩＴのサイズがルータによって処理されるインタレストの数のオーダで大きくなることから、ＰＩＴを維持し且つＰＩＴにおける一致をチェックすることは、非効率的であることがあり、そのような数は、ネットワーク内のルータの数よりも多いオーダとすることができる。したがって、それらの発信元の要求者に対してＮＤＯを返送するためにＰＩＴに依存しないインタレストベースのＩＣＮシステムを設計することが望ましい。
【００３８】
データ回答ルーティングテーブル（ＣＣＮ−ＤＡＲＴ）を有するＣＣＮ：原理
ＣＣＮ−ＤＡＲＴの設計は、以下の観察に基づいている。まず、ネットワークシミュレーションは、コンテンツストアの容量が増加するのにともない、コンテンツのキャッシュがインタレスト集約の発生を極めて稀にすることを示している。消費者と要求されたコンテンツを記憶するコンテンツストアとの間における同じコンテンツについてのインタレストの到来時間間隔及びラウンドトリップ時間（ＲＴＴ）は、コンテンツが同じコンテンツを要求する後続のインタレストが到来した時点でキャッシュにおいて利用可能であるようなものである。これは、シミュレーションパラメータがインタレスト集約を優先するように設定されている場合にも同様である。一方、ＣＳのサイズとは無関係に、ＰＩＴエントリの数は、インタレスト送信レートによって劇的に大きくなり、インタレスト集約は、検出されないインタレストループをもたらすことがある。
【００３９】
第２に、ネットワーク内のルータの数は、名称付きデータオブジェクト（ＮＤＯ）の数、それゆえにそれらを要求してインタレストの数よりも小さい大きさのオーダである。したがって、ルータを経由するルートに基づいて転送状態を維持することは、ルータを移動するインタレストに基づいて転送状態を維持するよりも小さい大きさのオーダとすることができる。
【００４０】
第３に、正確なインタレスト転送戦略は、固有に各インタレストを識別しようとするよりもむしろ、所定のインタレストを転送するルータの順序に基づくことができる。
【００４１】
最後に、制御プレーンが名称接頭辞に対するマルチパスルーティングをサポートしており且つ適切な転送状態が効率的に維持される場合、インタレストに応答して送信されたＮＤＯ又はＮＡＣＫを転送するために使用されることになる逆経路転送を要求するための固有の理由は存在しない。
【００４２】
仮定の数は、ＣＣＮ−ＤＡＲＴの説明において行うことができる。インタレストは、中継ルータによってではなく発信消費者によってのみ再送信されると仮定することができる。ルータは、どのインターフェースがルータに隣接しているのか及びどのインターフェースがローカル消費者であるのかを知っており、ベストエフォート方式でインタレストを転送すると仮定される。さらにまた、ルータは、インタレストの完全一致を使用すると仮定される。
【００４３】
動作中において、ＣＣＮ−ＤＡＲＴは、ノード間のコンテンツの交換を実現するために、インタレスト、制御メッセージ（例えば、ＮＡＣＫ）及びデータオブジェクト（例えば、ＮＤＯ）を使用する。具体的には、インタレスト、ＮＤＯ及びＮＡＣＫの正確な転送を可能とするために、宛先及び返送トークン（ｄａｒｔ）及びインタレストノンスが使用される。ｄａｒｔは、発信元と宛先ルータとの間で確立されたルートを固有に表すことができるローカル識別子である。ノンスは、同じ発信元と宛先ルータとの間で確立された２つ以上のルートを関連付けることができるグローバル識別子である。
【００４４】
ＮＤＯｎ（ｊ）を要求するノードｋによって送信されたインタレストは、Ｉ［ｎ（ｊ），ｈＩ（ｋ），ＩＤＩ（ｋ），ｄａｒｔＩ（ｋ）］で表される。ここで、要求されたＮＤＯ名称（ｎ（ｊ））、ノードｋからｎ（ｊ）について最高一致である名称接頭辞ｎ（ｊ）＊の最も近いインスタンスまでのホップ数（ｈＩ（ｋ））、インタレストの発信元ルータによって作成されたノンス（ＩＤＩ（ｋ））、及び、インタレストのソースに戻る匿名ルートを確立するために使用されるｄａｒｔ（ｄａｒｔＩ（ｋ））を記載している。いくつかの実施形態において、ノンス及びｄａｒｔは、ラベルスワッピングネットワーキングにおけるデータグラムヘッダの一部であるラベルに類似した方法でインタレストパケットのヘッダフィールドに含めることができる。インタレストＩ［ｎ（ｊ），ｈＩ（ｋ），ＩＤＩ（ｋ），ｄａｒｔＩ（ｋ）］に応答してルータｉによって送信されたコンテンツオブジェクトは、Ｄ［ｎ（ｊ），ｓｉｇ（ｊ），ＩＤＩ（ｉ），ｄａｒｔＩ（ｉ）］で表される。ここで、送信されたＮＤＯの名称（ｎ（ｊ））、必要に応じてコンテンツオブジェクトを検証するために使用される署名ペイロード（ｓｉｇ（ｊ））、ノンス（ＩＤＩ（ｉ））、及び、ＮＤＯを転送するために使用されることになるｄａｒｔ（ｄａｒｔＩ（ｉ））を記載している。一方、インタレストＩ［ｎ（ｊ），ｈＩ（ｋ），ＩＤＩ（ｋ），ｄａｒｔＩ（ｋ）］に応答してルータｉによって送信された制御メッセージ（ＮＡＣＫ）は、ＮＩ［ｎ（ｊ），ＣＯＤＥ，ＩＤＩ（ｉ），ｄａｒｔＩ（ｉ）］で表される。ここで、ＣＯＤＥは、ＮＡＣＫを送信するための理由を記載している。ＮＡＣＫを送信するための考えられる理由は、（ａ）インタレストループが検出されたこと、（ｂ）要求されたコンテンツに向かうルートがみつからないこと、（ｃ）コンテンツがみつからないこと、及び、（ｄ）ＤＡＲＴエントリの期限切れである。
【００４５】
インタレスト、ＮＤＯ及びＮＡＣＫの転送を実現するために、ＣＣＮ−ＤＡＲＴルータは、任意のコンテンツストア（ＣＳｉ）、ＦＩＢ（ＦＩＢｉ）、データ回答ルーティングテーブル（ＤＡＲＴｉ）、発信元ノンステーブル（ＯＮＴｉ）及び宛先ノンステーブル（ＤＮＴｉ）という５つのテーブルを維持する。ＣＳｉは、従来のＣＣＮ又はＮＤＮにおけるものと同様である。ＣＳｉは、ローカルキャッシュに記憶されたＮＤＯを一覧表示し、ＮＤＯの名称によってインデックス付けされる。いくつかの実施形態において、任意のコンテンツストアは、ローカルコンテンツのインデックスとして機能するのみならずリモートコンテンツのローカル要求を追跡する任意の要求コンテンツテーブル（ＲＣＴ）によって置き換えることができる。ＲＣＴにおけるエントリは、コンテンツの名称、コンテンツが記憶されたローカル記憶装置へのポインタ、及び、コンテンツを要求したローカル消費者のリスト（もしあれば）を識別する多数の識別子を含むことができる。ＲＣＴは、一方がローカルコンテンツのためであり且つ一方がリモートコンテンツについての要求のためである２つの別個のインデックスとして実装されることができる。
【００４６】
ＣＣＮ−ＤＡＲＴをより良好に理解するために、先行者、後行者及びアンカーの概念がここで導入される。ルータｉにおいて、名称接頭辞ｎ（ｊ）＊に関するインタレストについての先行者は、名称接頭辞ｎ（ｊ）＊に一致するＮＤＯｎ（ｊ）に関するルータｉに対してインタレストを転送するルータであり、ｎ（ｊ）＊に関連するインタレストについての後行者は、ルータｉが名称接頭辞ｎ（ｊ）＊に一致するＮＤＯｎ（ｊ）に関するインタレストを転送するルータである。接頭辞のアンカーは、接頭辞を公表しているルータである。
【００４７】
図２は、本発明の実施形態にかかる、例示的な転送情報ベース（ＦＩＢ）を図示する図である。図２において、ＦＩＢ２００は、コンテンツ名称接頭辞を使用してインデックス付けされた多数のエントリを含む。各エントリは、名称接頭辞及び名称接頭辞を公表するノードまでのホップ数によって識別されるコンテンツへの次のホップを記載している。表記のために、ルータｉにおいて、ＦＩＢは、ＦＩＢｉとして表され、ＦＩＢエントリ２０２などの名称接頭辞ｎ（ｊ）＊についての各ＦＩＢエントリは、
【００４８】
【数１】
2017069950.tif 000003
【００４９】
として表される。各ＦＩＢエントリは、１つ以上のタプルのリストを含むことができ、その１つはｎ（ｊ）＊についてのルータｉの後行者のセットにおける各次ホップについてものであることに留意されたい。ｎ（ｊ）＊についてのルータｉの後行者（次ホップ）のセットは、
【００５０】
【数２】
2017069950.tif 000004
【００５１】
として表され、ＦＩＢエントリ
【００５２】
【数３】
2017069950.tif 000005
【００５３】
に含まれる。各インターフェース
【００５４】
【数４】
2017069950.tif 000006
【００５５】
について、対応するタプルは、隣接者ｑを通る名称接頭辞ｎ（ｊ）＊までのホップ数（ｈ（ｉ，ｎ（ｊ）＊，ｑ）として表される）及びｎ（ｊ）＊についてｑによって報告されたアンカー（ａ（ｉ，ｎ（ｊ）＊，ｑ）として表される）を記載している。ＦＩＢ２００はまた、ＦＩＢ２００に記載されている任意の隣接者を通るルータから既知の各名称接頭辞までの最小ホップ数を記憶する。具体的には、ルータｉから名称接頭辞ｎ（ｊ）＊までの最小ホップ数は、ｈ（ｉ，ｎ（ｊ）＊）で表される。
【００５６】
図３は、本発明の実施形態にかかる、例示的なデータ回答ルーティングテーブル（ＤＡＲＴ）を図示する図である。ＤＡＲＴは、アンカーまでの経路に沿った後行者に対する先行者のマッピングを記憶する。ルータｉに記憶されたＤＡＲＴは、ＤＡＲＴｉとして表される。図３において、ＤＡＲＴ３００は、ルータｉの隣接フェースにしたがって編成された複数のエントリを含む。ルータｐから受信されて所定のアンカーａに向かってルータｓまで転送されたインタレストについて作成されたエントリは、ＤＡＲＴｉ（ａ，ｐ）として表される。ルータｐに対応する１つ以上のアンカーについて作成されたエントリは、ＤＡＲＴｉにおいてサブテーブル３０２などのサブテーブルを形成することができる。エントリ３０４などのサブテーブル３０２における各エントリは、アンカー（ａｉ（ａ，ｐ））、先行者（ｐｉ（ａ，ｐ））、先行者ｄａｒｔ（ｐｄｉ（ａ，ｐ））、後行者（ｓｉ（ａ，ｐ））、後行者ｄａｒｔ（ｓｄｉ（ａ，ｐ））、ホップ数（ｈｉ（ａ，ｐ））及び寿命（ＬＴｉ（ａ，ｐ））を指定する。
【００５７】
アンカーａｉ（ａ，ｐ）は、転送状態がルータｉにおいて確立されたアンカー（ルータａ）である。先行者ｐｉ（ａ，ｐ）は、ａまでのルートの先行者（ルータｐ）である。先行者ｄａｒｔ  ｐｄｉ（ａ，ｐ）は、ｐからアンカーａに向かうインタレストにおいて受信されたｄａｒｔに等しい。後行者ｓｉ（ａ，ｐ）は、ｐからアンカーａに向かうインタレストを転送するためにルータｉによって選択されたルータｓの名称である。後行者ｄａｒｔ  ｓｄｉ（ａ，ｐ）は、ルータｓを通ってアンカーａに向かって送信されたインタレストに含まれるｄａｒｔである。ホップ数ｈｉ（ａ，ｐ）は、ｄａｒｔエントリが確立されたときに後行者ｓを通るアンカーａまでのホップ数である。ＬＴｉ（ａ，ｐ）は、ＤＡＲＴエントリの寿命である。ＤＡＲＴエントリの寿命は、ルータがそれを記憶するときにデクリメントされる。ＤＡＲＴエントリは、その寿命がゼロに到達したときに削除される。ＰＩＴにおけるエントリの寿命とは対照的に、ＤＡＲＴエントリの寿命は、重要な設計パラメータではない。ＤＡＲＴにおけるエントリは、トポロジ変更がない限り、長期間（例えば、多秒）だけ記憶装置に残ることができる。さらにまた、ＤＡＲＴエントリの削除は、いくつかのインタレストの僅かな減速を生じさせる。安定したネットワークにおいて、ＤＡＲＴエントリの置換は、消去されたエントリと同じ情報を記載している可能性が最も高い。
【００５８】
図４Ａは、本発明の実施形態にかかる、例示的な発信元ノンステーブル（ＯＮＴ）を図示する図である。ルータｉによって記憶されたＯＮＴは、ＯＮＴｉとして表され、ローカル消費者の名称とルータｉによってそれらに割り当てられたノンスとの間のマッピングを記憶する。図４Ａにおいて、例えばエントリ４０２などのＯＮＴｉ４００におけるエントリは、ローカル消費者によってインデックス付けされる。ノンスｎｉについてのエントリは、ローカル消費者のローカル識別子を指定し、ＯＮＴｉ（ｎｉ）として表される。
【００５９】
図４Ｂは、本発明の実施形態にかかる、例示的な宛先ノンステーブル（ＤＮＴ）を図示する図である。ルータｉによって記憶されたＤＮＴは、ＤＮＴｉで表される。図４Ｂにおいて、例えばエントリ４１２などのＤＮＴｉ４１０におけるエントリは、インタレストにおいて受信されたノンスを使用してインデックス付けされる。ルータｋからのインタレストにおいて受信されたノンスＩＤＩ（ｋ）についてのエントリは、ＤＮＴｉ（ＩＤＩ（ｋ））として表され、１つ以上のタプルのリストを含む。各タプルは、同じノンスを含むインタレストを送信したルータの名称と、インタレストに記載されたｄａｒｔとを指定する。
【００６０】
ＣＣＮ−ＤＡＲＴ：ループ検出
ＣＣＮ−ＤＡＲＴは、インタレストルーピングを防止するために距離ベースの転送戦略を実装する。そのような転送戦略は、ｋがインタレストを転送したときにそれがｋよりも少なくとも１つの次ホップの隣接者を通る接頭辞に近いことをルータが判定した場合にのみルータがルータｋからのインタレストを受け入れるのを保証する。インタレストループを防止するために使用することができる距離ベースの転送戦略の詳細な説明は、２０１４年１２月１６日に出願された発明者Ｊｏｓｅ  Ｊ．  Ｇａｒｃｉａ−Ｌｕｎａ−Ａｃｅｖｅｓによる「距離ベースのインタレスト転送のためのシステム及び方法」と題された同時係属の米国特許出願第１４／５７２，６０８号（代理人整理番号ＰＡＲＣ−２０１４０１７８ＵＳ０１）においてみることができる。
【００６１】
ＣＣＮ−ＤＡＲＴを実装するルータがインタレストを受信したとき、それらは、以下の条件が満たされた場合にルータｉが隣接者ｋからのインタレストＩ［ｎ（ｊ），ｈＩ（ｋ），ＩＤＩ（ｋ），ｄａｒｔＩ（ｋ）］を受け入れることができることを記載するインタレスト転送規則（ＩＦＲ）を使用してインタレストを受け入れるかどうかを最初に判定する。
【００６２】
【数５】
2017069950.tif 000007
【００６３】
図５Ａ〜図５Ｂは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがインタレストループを検出する方法を図示している。図５Ａに示されるように、ネットワーク５００は、ノード５０２〜５１４などの多数のノードを含む。マルチパスは、ノード５０２とノード５１４との間に存在し、ルーティングテーブルは、ノード５０４−ノード５０６−ノード５０８−ノード５０４というループを含むことができる。図５Ａにおいて、ルータからその隣接者へと発信する各リンクにおいて、一対の数字が記載されており、これは、ｎ（ｊ）（ノード５１４）まで隣接者を通るホップ数（第１の番号）と、ＦＩＢに応じた隣接者のランキング（第２の番号）とを示す。同じリンクについて、２つの対が存在する可能性があり、各対が対に近いルータにおけるＦＩＢに記憶されることに留意されたい。例えば、ルータ５０４からルータ５０６までのリンクにおいて、２つの番号対、対（４，１）及び対（５，２）がリンクの隣に示されている。番号対（４，１）は、ルータ５０４に隣接し且つルータ５０４のＦＩＢに記憶されており、番号対（５，２）は、ルータ５０６に隣接し且つルータ５０６のＦＩＢに記憶される。具体的には、ルータ５０４に隣接する番号対（４，１）は、その隣接者５０６を介したｎ（ｊ）までのホップ数が４であり、隣接者５０６がルータ５０４のＦＩＢにおいて番号１にランク付けしていることを示す。一方、ルータ５０６に隣接する番号対（５，２）は、その隣接者５０４からｎ（ｊ）までのホップ数が５であり、隣接者５０４がルータ５０６のＦＩＢにおいて番号２にランク付けしていることを示す。
【００６４】
隣接者、そのホップ数及びそのランキングを示すためにタプル（ν，ｈ，ｒ）を使用することができる。そのようなタプルは、名称接頭辞ｎ（ｊ）＊のもとにＦＩＢに記載されたエントリとすることができることに留意されたい。例えば、ＦＩＢｎｏｄｅ５０４は、タプル（ノード５０６，４，１）、（ノード５１０，４，２）及び（ノード５０８，６，３）を一覧表示することができる。同様に、ＦＩＢｎｏｄｅ５０２は、タプル（ノード５０４，５，１）を一覧表示することができ、ＦＩＢｎｏｄｅ５０６は、タプル（ノード５０８，６，１）、（ノード５０４，５，２）及び（ノード５１２，３，３）を一覧表示することができ、ＦＩＢｎｏｄｅ５０８は、タプル（ノード５０６，５，１）及び（ノード５０４，５，２）を一覧表示することができる。ノード５１０及び５１２についての部分的なＦＩＢエントリもまた、図５Ａに示されていることに留意されたい。
【００６５】
図５Ｂは、ＣＣＮ−ＤＡＲＴルータがインタレストを転送する方法を図示している。図５Ｂに示された例において、ルータ５０４は、時間ｔ１においてルータ５０２から名称ｎ（ｊ）についてのインタレストＩ［ｎ（ｊ），ｈＩ（ノード５０２）＝５，ＩＤＩ，ｄａｒｔＩ（ノード５０２）］を受信した。５＝ｈＩ（ノード５０２）＞ｈ（ノード５０４，ｎ（ｊ）＊，ノード５０６）＝４とすれば、ルータ５０４は、ＩＦＲを満たす少なくとも１つの隣接者（ルータ５０６）を有することから、インタレストを受け入れる。そして、ルータ５０４は、ルータ５０６が同様にＩＦＲを満たすルータ５１０よりも上位にランク付けしていることから、ルータ５０６に対してインタレストを転送する。転送前に、ルータ５０４は、インタレストにおけるｄａｒｔをスワップし、ルータ５０６に対してインタレストＩ［ｎ（ｊ），ｈＩ（ノード５０４）＝４，ｄｔＩ（ノード５０４）］を転送することに留意されたい。
【００６６】
ルータ５０６は、時間ｔ２においてＩ［ｎ（ｊ），ｈＩ（ノード５０４）＝４，ＩＤＩ，ｄａｒｔＩ（ノード５０４）］を受信し、４＝ｈＩ（ノード５０４）＞ｈ（ノード５０６，ｎ（ｊ）＊，ノード５１２）＝３であることから、それを受け入れる。そして、ルータ５０６は、ルータ５１２がＩＦＲを満たす最高ランクの隣接者であることから、インタレストについての次ホップとしてルータ５１２を使用する。インタレストが移動するルートは、時系列ｔ１→ｔ２→ｔ３に続く破線によって示されている。道に沿った各ルータは、返送ＮＤＯがインタレストの逆経路をたどることができるのを確実にするために、インタレストに含まれるｄａｒｔをスワップすることに留意されたい。
【００６７】
同様に、ルータ５０８によって生成されたインタレストは、各中継ルータがＩＦＲを満たさなければならないことから、ループを移動することなく、ｎ（ｊ）に向けてルータ５１２に対して転送される（ルートは、時系列ｔ３→ｔ４→ｔ５に続く異なる破線によって示されている）。
【００６８】
図６Ａ〜図６Ｃは、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴがシングルパスルーティング及び一時ルーティングテーブルループによって動作する方法を図示している。図において、ネットワーク６００は、ノード６０２〜６１４などの多数のノードを含む。図６Ａにおいて、各ルータは、そのＦＩＢに記載された各接頭辞についての単一の次ホップ及び１つのホップ数を有する。例えば、ルータ６１４によって公表される名称接頭辞ｎ（ｊ）＊について、ルータ６０４は、（リンク（ノード６０４、ノード６１０）が失敗する前に）隣接ルータ６１０を介した４のホップ数を一覧表示し、ルータ６０６は、隣接ルータ６０８を介した６のホップ数を一覧表示する。ルータから名称接頭辞ｎ（ｊ）＊までの距離は、経路のホップ数に正比例しなくてもよいことに留意されたい。例えば、リンク（ノード６０６、ノード６１２）は、制限された帯域幅又は長い遅延を有してもよく、したがって、ノード６０６は、ノード６１４においてｎ（ｊ）＊に到達するためにノード６０８を通る経路を優先してもよい。
【００６９】
ルータ６０４とルータ６１０との間のリンクが失敗した場合、ルータ６０６は、図６Ａに示されるように、時間ｔ０においてリンク失敗を反映するようにそのＦＩＢを更新する。ここで、ルータ６０４は、隣接ルータ６０６を介した４のホップ数を一覧表示する。そのようなリンク失敗は、インタレストが転送されているときにネットワーク６００内のルータがｎ（ｊ）について一貫性のないＦＩＢ状態を有することをもたらすことに留意されたい。例えば、ルータ６０６は、そのＦＩＢをまだ更新しておらず、一時的なルーティングテーブルのループをもたらすことがある。時間ｔ１において、ルータ６０２は、ルータ６０４に対して名称ｎ（ｊ）についてのインタレストＩ［ｎ（ｊ），ｈＩ（ノード６０２）＝５，ＩＤＩ，ｄａｒｔＩ（ノード６０２）］を送信する。図６Ｂは、ルータ６０４が時間ｔ２においてルータ６０６に対してインタレストを転送することを示している。図６Ｂはまた、ＩＦＲに違反している
【００７０】
【数６】
2017069950.tif 000008
【００７１】
であることから、ルータ６０６が時間ｔ３においてインタレストに対してＮＡＣＫで応答することを示している。ＮＡＣＫは、ループが検出されたときにＮＡＣＫについての理由を示す。ＮＡＣＫは、最終的に、図６Ｃに示されるように、時間ｔ４においてインタレストの発信元であるルータ６０２に対して全ての方法で転送される。
【００７２】
図６Ｂはまた、時間ｔ３において、ルータ６０８がルータ６０４に対して名称ｎ（ｊ）についてのインタレストＩ［ｎ（ｊ），ｈＩ（ノード６０８）＝５，ＩＤＩ，ｄａｒｔＩ（ノード６０８）］を送信することを示している。そのようなインタレストはまた、図６Ｃに示されるように、ＩＦＲ違反に起因して時間ｔ５においてルータ６０６からのＮＡＣＫを促す。図６Ｃはまた、ルータ６０４が時間ｔ６においてルータ６０６からルータ６０８に対してＮＡＣＫを転送することを図示している。有限時間内において、ＦＩＢｎｏｄｅ６０４、ＦＩＢｎｏｄｅ６０６及びＦＩＢｎｏｄｅ６０８は、新たなトポロジ状態を反映するように更新される。具体的には、ノード６０６についてのＦＩＢは、もはやその次ホップとしてノード６０８を一覧表示することができず、ｎ（ｊ）＊に関するノード６０２からのインタレストは、ｎ（ｊ）＊、すなわちノード６１４に向かってノード６０４、６０６及び６１２のチェーンに沿って転送されることができる。同様に、有限時間内において、ｎ（ｊ）＊に関するノード６０８からのインタレストは、ｎ（ｊ）＊に向かってノード６０６及び６１２に対して転送されることができる。ＣＣＮ−ＤＡＲＴにおいてインタレストループは検出されないであろうことを示すことができる。
【００７３】
ＣＣＮ−ＤＡＲＴ：転送状態の維持
ＮＤＮ及びＣＣＮにおけるように、ＣＣＮ−ＤＡＲＴにおけるルータは、名称接頭辞のアンカーまでのルートを維持し、制御プレーンにおいて動作するルーティングプロトコルを使用してそれらのルーティングテーブルを読み込む。
【００７４】
ＮＤＮ及びＣＣＮにおいて、インタレストに対する応答は、インタレストが移動する逆経路をとる。経路は、経路に沿ってルータのＰＩＴに漸増的に記憶される。ＣＣＮ−ＤＡＲＴにおいて、ルータにＰＩＴはない。代わりに、ルータは、ＤＡＲＴ、ＯＮＴ及びＤＮＴを維持する。ＤＡＲＴ及びＯＮＴは、インタレスト応答がインタレストの逆経路を介して正確な消費者に返送されるのを可能とすることができる。一方、ＤＮＴは、インタレストの逆経路でなくてもよい経路にわたるインタレストソースへのＮＡＣＫのＮＤＯメッセージの転送返送を可能とすることができる。
【００７５】
ＤＡＲＴに記憶されたｄａｒｔマッピングは、パケット交換ネットワークにおけるラベルマッピングと同様である。これらのマッピングは、同じ名称接頭辞に関連付けられているＮＤＯを求める複数のインタレストが発信元ルータと接頭辞のアンカー又はコンテンツのキャッシュサイトとの間の同じルート区間において多重化されるのを可能とするために使用することができる。ローカルに固有の識別子であるｄａｒｔに加えて、ルータはまた、ローカル消費者の身元を明らかにすることなくそれらに代わって送信されたインタレストとローカル消費者を一義的に関連付けるためにグローバルに固有のノンスを作成することができる。
【００７６】
この開示において、ルータにおけるノンステーブルは、ローカル消費者にローカルに割り当てられている全てのノンスに移入されており、ＤＡＲＴエントリは、それらの寿命の期限が切れるときに黙って削除されることが想定される。便宜上、また、名称接頭辞のアンカーは、そのＣＳにおける接頭辞に関連付けられている全てのＮＤＯを記憶することが想定される。さらに、制御プレーンは、トポロジ変更に起因する接頭辞に対するホップ数におけるいかなる変更も反映するようにＦＩＢを更新することが想定される。例えば、隣接者ｋに対する接続が切断されたことをルータｉが検出した場合、ｋが任意のアンカーに向かう経路の先行者又は後行者であるＤＡＲＴｉにおける全てのエントリを削除する。
【００７７】
図７は、本発明の実施形態にかかる、ルータがローカル消費者からインタレストを受信したときにルータによって実行される例示的なインタレスト処理アルゴリズムを示している。簡略化するために、ローカル消費者からのコンテンツ要求は、ＮＤＯの名称（ｎ（ｊ））、空ホップ数（ゼロ）、ローカル消費者の名称（ｃ）及び空ｄａｒｔ（ゼロ）を記載するインタレストであると仮定されると想定される。
【００７８】
ルータｉがローカル消費者ｃからインタレストを受信すると、それは、要求されたコンテンツについてのコンテンツストアをチェックし、もしあれば一致するＮＤＯを返送する（図７における３行目）。ＣＳｉが接頭辞を含むが一致するＮＤＯを含まない場合、ルータｉは、コンテンツをみつけることができないことを示すＮＡＣＫを消費者に対して送信することによって応答する（図７における４行目）。そうでない場合、ルータｉは、一致する接頭辞についてのそのＦＩＢをチェックする。一致するＦＩＢエントリは、要求されたコンテンツへのルートが存在しないことを示すＮＡＣＫの返送を促すことはできない（図７における７行目）。
【００７９】
一致するＦＩＢエントリがある場合、ルータｉは、最高ランクの隣接者を使用し、インタレストを転送する（図７における９〜１５行目）。具体的には、ＤＡＲＴエントリがインタレストの選択された後行者について存在する場合、発信インタレストに含まれるｄａｒｔとして対応する後行者ｄａｒｔが使用される（図７における１１〜１２行目）。そうでない場合、新たな後行者ｄａｒｔが作成され、インタレストが転送される前に新たなＤＡＲＴエントリが記憶される（図７における１４〜１５行目）。インタレストを転送するとき、ルータｉはまた、ＯＮＴによって示されるように、消費者ｃに割り当てられたノンスをインタレストに挿入する（図７における１２及び１５行目）。
【００８０】
図８は、本発明の実施形態にかかる、ルータが隣接者からインタレストを受信したときにルータによって実行される例示的なインタレスト処理アルゴリズムを示している。ルータｉが隣接者ｋからインタレストを受信すると、それは、要求されたコンテンツについてのコンテンツストアをチェックし、もしあれば一致するＮＤＯを返送する（図８における３行目）。ＣＳｉが接頭辞を含むが一致するＮＤＯを含まない場合、ルータｉは、コンテンツをみつけることができないことを示すＮＡＣＫをルータｋに対して返送する（図８における４行目）。
【００８１】
コンテンツがローカルにキャッシュされていない場合、すなわち、先行者ｄａｒｔがインタレストに記載されたｄａｒｔと同じである場合、ルータｉは、ＤＡＲＴエントリがルータｋからのインタレストに記載されたｄａｒｔについて存在するかどうかを判定する。ＤＡＲＴにおける一致するエントリの存在は、ＩＦＲが接頭辞のアンカーへの同じルート上の以前のインタレストによって満たされており、既存のマッピングが使用可能であることを意味する。したがって、そのようなＤＡＲＴエントリは、インタレストを転送するために使用することができる。具体的には、ＤＡＲＴエントリによって指定された後行者は、インタレストが転送されるルータであり、転送されたインタレストに含まれるｄａｒｔは、ＤＡＲＴエントリによって指定された後行者ｄａｒｔである（図８における９行目）。アンカー−先行者対（ａ，ｋ）についてのＤＡＲＴｉにおけるエントリは、アンカーａ（先行者ｄａｒｔ）によって解決可能なインタレストにおけるルータｋによって使用されるｄａｒｔから、アンカーａによって解決可能であって且つルータｖ（後行者ｄａｒｔ）に転送可能なインタレストにおけるルータｉによって使用されるｄａｒｔへのマッピングを確立することに留意されたい。ルータｉからアンカーａへのルータのＤＡＲＴに記憶された先行者−後行者マッピングは、一義的にａに向けてインタレストを転送するために使用することができるルート区間を表す。逆に、同じ経路に沿って記憶されている一連の後行者−先行者のマッピングは、一義的にインタレストの発信元に対してインタレスト応答（例えば、ＮＤＯ及びＮＡＣＫ）を転送するために使用することができる。
【００８２】
一致するＤＡＲＴエントリがみつからない場合、ルータｉは、受信したインタレストについての後行者をみつけてＤＡＲＴエントリを作成する必要がある。ＮＡＣＫは、エントリがｎ（ｊ）＊についてのＦＩＢｉにみつけることができない場合（図８における１１行目）又はＩＦＲが満たされない場合（図８における２１行目）に送信される。そうでない場合、ルータｉは、ＩＦＲを満たす最高ランクの隣接ルータｖを選択し、ＤＡＲＴエントリを作成する（図８における１４〜２０行目）。ルータｖは、受信したインタレストに記載されたホップ数よりも厳密に小さい要求されたコンテンツに向けたホップ数を有する経路を提供する。新たに作成されたＤＡＲＴエントリは、受信したインタレストに含まれるｄａｒｔ（先行者ｄａｒｔ）を、ルータｖを通る選択されたアンカーへのルートについて作成された新たなｄａｒｔ（後行者ｄａｒｔ）にマッピングする。新たなｄａｒｔは、ローカルな固有の識別子としてルータｉにおいて作成されることに留意されたい。新たなｄａｒｔを生成する場合、ルータｉは、新たなｄａｒｔがいかなる既存のｄａｒｔとも重複しないことを確実にする必要がある。いくつかの実施形態において、ｄａｒｔは、１６又は３２ビットの番号を含むことができる。ｄａｒｔの長さ及び形式は変化してもよい。例えば、ｄａｒｔはまた、様々な長さの英数字文字列を含んでいてもよい。新たなＤＡＲＴエントリが作成された後、転送されるべきインタレストは、受信したインタレストに含まれるｄａｒｔを新たなＤＡＲＴエントリの後行者ｄａｒｔと置き換えることによって作成される。
【００８３】
図８に示されるアルゴリズムにおいて、ルータｉはまた、受信したインタレストに応答してＮＡＣＫメッセージのＮＤＯメッセージを返送するために応答関数を呼び出すことができる（図８における３、５、１２及び２１行目）。図９は、本発明の実施形態にかかる、例示的な応答生成アルゴリズムを示している。ルータｉが応答（例えば、ＮＤＯ又はＮＡＣＫ）を送出する前に、ルータｉは、（ノード、ｄａｒｔ）対とそのＤＮＴに対するノンスとの間のマッピングを追加する（図９における３行目）。簡略化するために、リモート消費者からのインタレストに対して応答するそれらのルータのみがそれらのＤＮＴに情報を記憶するものとする。中継ルータは、そのような情報を記憶していない。図９から、応答を送信するときに、ルータｉは、インタレストの逆経路ではない経路を選択することができることがわかることに留意されたい（図９における４行目）。例えば、ルータｉは、応答を送信するために、対応するＤＮＴエントリから、ルータｋとは異なるルータｎを選択することができる。図９に示されるアルゴリズムは、対応するＤＮＴエントリによって指定された多くのルータから特定のルータを選択する方法を明示的に開示していないものの、それは、同じルータ間で異なる以前のインタレストが移動する多くの経路のいずれかを介した正確な消費者への応答の転送からノンス及びｄａｒｔの使用を明確にする。
【００８４】
前述したように、インタレストは、複数の経路を介して同じアンカーに転送されることができ、各経路がｄａｒｔマッピングの異なるセットによって識別される。インタレストに対して応答するルータは、インタレストに含まれるノンスと（インタレストにおける隣接ルータ及びｄａｒｔによって識別される）インタレストが受信されたルートとの間のマッピングをそのＤＮＴに記憶する。ノンスが低い衝突確率で割り当てられていることを考えると、ＮＤＯメッセージ又はＮＡＣＫは、インタレストが移動するものとは異なる経路を介して応答するルータによって送信されることができる。これは、この開示の範囲を超えた負荷分散を可能とすることができる。
【００８５】
図１０Ａは、本発明の実施形態にかかる、例示的なＮＤＯ処理アルゴリズムを示している。ルータは、ルータがＮＤＯメッセージに記載されたｄａｒｔに一致する後行者ｄａｒｔとともにＤＡＲＴエントリを有する場合にのみ隣接者から受信したＮＤＯメッセージを受け入れる（図１０Ａにおける５行目）。ルータは、必要に応じて、ＮＤＯの署名を検証し（図１０Ａにおける３行目）、必要に応じて、それが受信したＮＤＯを記憶することができる（図１０Ａにおける６行目）。ＮＤＯを転送するとき、ルータはまた、対応するＤＡＲＴエントリにおける先行者ｄａｒｔを使用してＮＤＯにおけるｄａｒｔをスワップするということに留意されたい（図１０Ａにおける６行目）。
【００８６】
図１０Ｂは、本発明の実施形態にかかる、例示的なＮＡＣＫ処理アルゴリズムを示している。ルータは、ルータがＮＡＣＫに記載されたｄａｒｔに一致する後行者ｄａｒｔとともにＤＡＲＴエントリを有する場合にのみＮＡＣＫを転送する（図１０Ｂにおける３行目）。ＮＡＣＫを転送するとき、ルータは、対応するＤＡＲＴエントリにおける先行者ｄａｒｔを使用してＮＡＣＫにおけるｄａｒｔをスワップする（図１０Ｂにおける４行目）。
【００８７】
ＮＤＮは、集約インタレストが移動する経路を介したインタレストに対する応答の逆経路転送（ＲＰＦ）によってマルチキャストをサポートする。インタレストは、マルチキャスト転送ツリー（ＭＦＴ）を維持し且つマルチキャストソースをペーシングするという二重の目的を果たす。ＣＣＮ−ＤＡＲＴはまた、ＲＰＦアプローチを使用してマルチポイント通信をサポートするが、ソースをペーシングするか又はツリー上でマルチキャストデータを広めるために使用される機構からＭＦＴの確立を分離する。
【００８８】
ＣＣＮ−ＤＡＲＴは、ＭＦＴを維持するためにコンテンツストア及びマルチキャストデータ回答ルーティングテーブル（ＭＤＡＲＴ）を使用する。単一のｄａｒｔは、各ルータにおけるグループのＭＦＴにおける全ての先行者及び後行者を示すために使用することができる。これは、単一のｄａｒｔがマルチキャストグループのＭＦＴの全ての分岐をラベル付けするために使用することができることを意味する。マルチキャストグループ名称ｇ（ｊ）のために使用されるｄａｒｔは、ｄ（ｇ（ｊ））として表され、その普及を簡略化するためにグループ名の一部を構成することができる。
【００８９】
マルチキャストグループのローカル受信機を有するルータは、ＲＣＴにおけるマルチキャストグループの名称に対するローカル受信機の名称のマッピングを維持する。ルータｉにおけるＭＤＡＲＴは、ＭＤＡＲＴｉによって表され、ルータがトラフィックを転送するマルチキャストグループの名称によってインデックス付けされる。ＭＤＡＲＴｉにおける名称ｇ（ｊ）を有するマルチキャストグループについてのエントリは、グループのｄａｒｔ（ｄ（ｇ（ｊ）））、グループに参加するためにルータｉによって選択された後行者、ルータｉを介してｇ（ｊ）に参加するように要求されたルータのセット（先行者）、及び、ルータｉがグループ（ｈｉ（ｇ（ｊ）））についてのＭＤＡＲＴエントリを確立したときのｇ（ｊ）のアンカーまでのホップ数距離を記載する。
【００９０】
ルータｉがグループｇ（ｊ）についてのローカル受信機を有する場合、それは、ＪＲ［ｇ（ｊ），ｈＪ（ｉ），ＩＤＪ（ｉ），ｄａｒｔＪ（ｉ）］として表される参加要求（ＪＲ）を送信する。ここで、ｈＩ（ｉ）＝ｈｉ（ｇ（ｊ））及びｄａｒｔＪ（ｉ）＝ｄ［ｇ（ｊ）］である。ＪＲの転送は、ＦＩＢエントリに基づいており、インタレストの転送と同様である。中継ルータは、２つのケースにおいてｇ（ｊ）のアンカーに向けてＪＲを転送することができる。ＭＤＡＲＴエントリが存在せず且つＩＦＲが満たされる場合、ＭＤＡＲＴエントリは、グループについて作成される。ＭＤＡＲＴエントリが存在する場合、ルータは、単に、既存のＭＤＡＲＴエントリにおけるグループについての新たな先行者を追加する。ｇ（ｊ）までのルートがみつからない場合、ＩＦＲが満たされない場合、又は、ＭＤＡＲＴエントリがトポロジ変更に起因して無効になった場合、否定応答が送信されることができる。
【００９１】
マルチキャストソースのマルチキャストデータ頒布又はペーシングは、この開示の範囲を超えている。
【００９２】
ＣＣＮ−ＤＡＲＴ：ルータアーキテクチャ
図１１は、本発明の実施形態にかかる、例示的なＣＣＮ−ＤＡＲＴルータのアーキテクチャを示す図である。図１１において、ＣＣＮ−ＤＡＲＴルータ１１００は、フェース１１０２、１１０４及び１１０６などの多数のフェースと、インタレスト処理モジュール１１０８と、転送モジュール１１１０と、ＮＤＯ／ＮＡＣＫ処理モジュール１１１２と、制御メッセージ生成モジュール１１１４と、データベース１１１６とを含む。
【００９３】
フェース１１０２〜１１０６は、物理インターフェースのみならず、インタレスト及びＮＤＯを含むパケットの送受信が可能なアプリケーションプロセスを含むことができる。インタレスト処理モジュール１１０８は、様々なフェース上で受信されたインタレストを処理する責を担う。いくつかの実施形態において、インタレスト処理モジュール１１０８は、上述したインタレスト転送規則（ＩＦＲ）に基づいて到来インタレストを受け入れるかどうかを判定する。インタレストが受け入れられた場合、インタレスト処理モジュール１１０８は、ｄａｒｔマッピングをみつけるためにデータベース１１１６に維持されたＤＡＲＴをチェックし、マッピングに基づいてインタレストに含まれるｄａｒｔをスワップする。インタレスト処理モジュール１１０８は、さらに、インタレストについてのノンスを作成することができる（インタレストがローカル消費者から受信された場合）。転送モジュール１１１０は、インタレスト又はＮＤＯなどのパケットをフェースに対して転送する責を担う。いくつかの実施形態において、転送モジュール１１１０は、ｄａｒｔマッピングに基づいてインタレスト／ＮＤＯを転送する。制御メッセージ生成モジュール１１１４は、インタレスト処理モジュール１１０８がインタレストを拒否又は削除したとき、異なるＮＡＣＫメッセージを含むことができる制御メッセージを生成する。いくつかの実施形態において、制御メッセージ生成モジュール１１１４は、それらに限定されるものではないが、インタレストループが検出されたとき、要求されたコンテンツに向かうルートがみつからないとき、コンテンツがみつからないとき、及び、対応するＤＡＲＴエントリの期限が切れたときを含む様々な条件下でＮＡＣＫメッセージを生成する。名称ｎ（ｊ）についてのインタレストに対する応答におけるＮＡＣＫメッセージは、ＮＩ［ｎ（ｊ），ＣＯＤＥ，ＩＤＩ（ｋ），ｄａｒｔＩ（ｋ）］として表される。ここで、ＣＯＤＥは、ＮＡＣＫが送信される条件を記載する。ＮＤＯ／ＮＡＣＫ処理モジュール１１１２は、インタレストに対する応答において受信したＮＤＯ／ＮＡＣＫメッセージを処理する責を担う。いくつかの実施形態において、ＮＤＯ／ＮＡＣＫ処理モジュール１１１２は、ｄａｒｔマッピングをみつけるためにデータベース１１１６に維持されたＤＡＲＴをチェックし、マッピングに基づいてＮＤＯ／ＮＡＣＫメッセージに含まれるｄａｒｔをスワップする。データベース１１１６は、ＦＩＢ、ＤＡＲＴ、ＯＮＴ及びＤＮＴというＣＣＮ−ＤＡＲＴの動作に必要とされるデータ構造を記憶する。データベース１１１６は、必要に応じて、コンテンツストアを記憶する。
【００９４】
ＣＣＮ−ＤＡＲＴ：例示的な動作
図１２は、本発明の実施形態にかかる、ＣＣＮ−ＤＡＲＴの例示的な動作を図示する図である。具体的には、図１２は、ルータがＮＤＯメッセージ及びＮＡＣＫによってインタレスト及び関連するインタレストをラベル付けするためにｄａｒｔ及びノンスを使用する方法を図示している。
【００９５】
図１２において、ネットワーク１２００は、ノード１２０２〜１２１４などの多数のノードを含む。図１２に示される例において、ルータ１２０２及びルータ１２１４は、ルータ１２０８によって公表される名称接頭辞に関するＮＤＯを要求するインタレストを発信するローカル消費者を有する。矢印線は、ルータに記憶されているＦＩＢエントリにしたがってルータ１２０８によって公表される（名称ｎ（ｊ）を有する）コンテンツに対する次ホップを示している。図１２はまた、アンカー１２０８についてのルータのＤＡＲＴエントリを示しており、各ルータの横に記載されている。さらに、ルータ１２０２及び１２１４におけるＯＮＴエントリ並びにルータ１２０８におけるＤＮＴエントリはまた、図１２に示されており、全て対応するルータの横に記載されている。例えば、ルータ１２０２の隣のリストは、アンカー１２０８についてのそのＯＮＴエントリ及びＤＡＲＴエントリを含み、ルータ１２０８の隣のリストは、ＤＮＴエントリを含む。
【００９６】
ルータ１２０２は、２つのコンテンツ消費者（ｃｐ及びｃｑ）を有する。ルータ１２０２において、消費者ｃｐ及びｃｑの代わりにルータ１２０２から発信されたインタレストは、それぞれ、ノンス
【００９７】
【数７】
2017069950.tif 000009
【００９８】
によってラベル付けされる。同様に、ルータ１２１４は、ローカル消費者ｃｗに代わって発信するインタレストをラベル付けするためにノンス
【００９９】
【数８】
2017069950.tif 000010
【０１００】
を使用する。
【０１０１】
ルータ１２０２において維持されるＤＡＲＴマッピングは、先行者及び先行者ｄａｒｔ対［１２０２，１２０２（ｉ）］が後行者及び後行者ｄａｒｔ対［１２０４，１２０２（ｉ）］にマッピングすることを示す。ルータ１２０４において、［１２０２，１２０２（ｉ）］は、［１２０６，１２０４（ｊ）］にマッピングし、ルータ１２０６において、［１２０４，１２０４（ｊ）］は、［１２０８，１２０６（ｉ）］にマッピングする。ルータ１２０８において、コンテンツについてのＤＡＲＴエントリは、先行者及び先行者ｄａｒｔ対［１２０６，１２０６（ｉ）］を指定するのみである。図１２に示されるインデックスｉ、ｊ、ｋ、ｍ、ｕは、個々のＤＡＲＴにおいて使用されるインデックスであることに留意されたい。例えば、１２０２（ｉ）は、ルータ１２０２によって維持されるＤＡＲＴにおけるｉ番目のエントリを意味する。ルータ１２０２、１２０４、１２０６及び１２０６における上述したマッピングは、破線１２２２によって示されるように、ルート（ノード１２０２、ノード１２０４、ノード１２０６、ノード１２０８）、（ノード１２０４、ノード１２０６、ノード１２０８）及び（ノード１２０６、ノード１２０８）を一意的に表す。
【０１０２】
同様に、図１２に示されるＤＡＲＴマッピングはまた、［１２０２，１２０２（ｋ）］がルータ１２０２における［１２１０，１２０２（ｋ）］にマッピングし、［１２０２，１２０２（ｋ）］がルータ１２１０における［１２１２，１２１０（ｍ）］にマッピングし、［１２１０，１２１０（ｍ）］がルータ１２１２における［１２０８，１２１２（ｊ）］にマッピングし、ルータ１２０８がＤＡＲＴエントリ［１２１２，１２１２（ｊ）］を維持することを示している。このＤＡＲＴマッピングのセットは、破線矢印１２２４によって示されるように、ルート（ノード１２０２、ノード１２１０、ノード１２１２、ノード１２０８）と、（ノード１２１０、ノード１２１２、ノード１２０８）及び（ノード１２１２、ノード１２０８）を含むルータ１２０８へのサブ経路とを表している。
【０１０３】
破線矢印１２２６は、ルータ１２１４からアンカー１２０８までのルート、すなわち、（ノード１２１４、ノード１２０４、ノード１２０６、ノード１２０８）を示している。このルートについてのＤＡＲＴマッピングのセットは、図１２において斜文字で示されている。
【０１０４】
アンカー１２０８によって公表されるコンテンツに関する消費者ｃｐ、ｃｑ及びｃｗによって発信された全てのインタレストは、接頭辞及びインタレストの数にかかわらず、図１２に示されているのと同じ少数のｄａｒｔを使用してルータ１２０８に向けてルーティングされることができる。したがって、インタレストについての固有のエントリを有するＰＩＴと比較して、ＤＡＲＴについて使用される記憶装置の量ははるかに小さい。ＮＤＯ又はＮＡＣＫが後行者ｄａｒｔを指定しており且つそれが回答するインタレストにノンスが記載されていることを考えると、ＮＤＯ及びＮＡＣＫは、ルータ１２０８（又は要求されたコンテンツをキャッシュするルータ１２０８への道に沿ったルータ）からルータ１２０２又は１２１４に対して一義的に正確に転送されることができる。さらにまた、ルータ１２０２及び１２１４は、正確なローカル消費者に対して応答を送信するためにそれらが受信する応答においてそれらのＯＮＴ及びノンスにおけるエントリを使用することができる。
【０１０５】
ＤＡＲＴ及びＯＮＴを使用した正確なインタレスト転送及び正確なＮＤＯメッセージ及びＮＡＣＫの逆経路転送のサポートに加えて、ＣＣＮ−ＤＡＲＴはまた、インタレストが移動しない経路を介してインタレストを発信するルータに対するＮＤＯ及びＮＡＣＫの転送をサポートすることができる。図１２に示されるように、ルータ１２０８が隣接者１２０６及び１２１２からインタレストを受信したとき、それは、
【０１０６】
【数９】
2017069950.tif 000011
【０１０７】
がルータおよびｄａｒｔ対［１２０６，１２０６（ｉ）］及び［１２１２，１２１２（ｊ）］にマッピングし、
【０１０８】
【数１０】
2017069950.tif 000012
【０１０９】
がｄａｒｔ対［１２０６，１２０６（ｉ）］及び［１２１２，１２１２（ｊ）］にマッピングし、
【０１１０】
【数１１】
2017069950.tif 000013
【０１１１】
が［１２０６，１２０６（ｋ）］にマッピングするように、そのＤＮＴ（ＤＮＴ１２０８）における受信したインタレストにおいてノンスと後行者ｄａｒｔとの間のマッピングを記憶する。したがって、ルータ１２０８は、インタレストの逆経路を使用する必要なく、隣接ルータ１２０６又は１２１２を介して
【０１１２】
【数１２】
2017069950.tif 000014
【０１１３】
を記載するインタレストの発信元に対してＮＤＯメッセージ又はＮＡＣＫを送信することができる。換言すれば、ルータ１２０２にＮＤＯ又はＮＡＣＫを返送するために、ルータ１２０８は、破線１２２２によって示されるルート又は破線１２２４によって示されるルートを選択することができる。ルートの選択は、ルートの状態又は負荷分散の必要性などの様々な要因によって判定されることができる。例えば、ルート１２２２が輻輳している場合、ルータ１２０８は、ルート１２２４を介してＮＤＯ又はＮＡＣＫを送信することによってルータ１２０２から発信されたインタレストに対して応答することができる。さらに、ルータ１２０８がルータ１２０２から発信された多くのインタレストを受信した場合、ルータ１２０８は、ルート１２２２を介して応答のある部分を且つルート１２２４を介して応答の他の部分を送信することができる。
【０１１４】
前述したように、データ回答ルーティングテーブルを有するＣＣＮ（ＣＣＮ−ＤＡＲＴ）システムは、動作するために保留インタレストテーブル（ＰＩＴ）を必要としないインタレストベースのＩＣＮについての転送戦略を実装する。ＣＣＮ−ＤＡＲＴは、ＦＩＢが次ホップの隣接者及びそのような隣接者を通る名称付きコンテンツまでのホップ数を記憶することを要求することにより、また、要求されたコンテンツの名称、中継ルータからコンテンツまでのホップ数、コンテンツを要求する消費者に固有のノンス並びにインタレストが移動するルートに固有の宛先及び返送トークン（ｄａｒｔ）を記載する各インタレストを有することにより、動作する。インタレストは集約されず、インタレストループ検出は、コンテンツ接頭辞までの距離に基づいている。インタレストの転送状態は、各ルータにおいて保持されるＤＡＲＴによって維持される。ＤＡＲＴエントリは、ネットワークの区間を移動するインタレストの到来フェース及び発信フェースをマッピングする。ＤＡＲＴの状態は、従来のＣＣＮ又はＮＤＮネットワークにおけるように、特定のＮＤＯを要求する個々のインタレストが移動するルートよりもむしろ、コンテンツ接頭辞を公表するルータに向かって移動されるルートの関数である。さらに、含まれるノンスは、インタレストに対する応答がインタレストの逆経路ではない経路を介してインタレストの発信元ルータに対して返送されるのを可能とする。
【０１１５】
インタレストの転送状態を維持するためにＤＡＲＴを使用することは、特にコンテンツ要求のレートが高い場合、ＰＩＴにおけるインタレストあたりの転送状態を保持するアプローチに対して大きな利点を示す。ＰＩＴのサイズは、コンテンツ要求のレートが増加するのにともない劇的に大きくなることができるのに対して、ＤＡＲＴのサイズは、コンテンツ要求レートに対して略一定に維持することができる。実際に、コンテンツ要求レートが低い場合、ＤＡＲＴにおけるエントリの平均数は、ＰＩＴにおけるエントリの平均数よりも大きくすることができる。これは、それらが表すルートがインタレスト及びそれらの応答によって実際に使用されるか否かにかかわらず、ＤＡＲＴエントリが長期間（例えば、数秒）保持されるためである。一方、ＰＩＴエントリは、対応するインタレストが満たされた直後に削除される。しかしながら、コンテンツ要求レートが増加するのにともない、ＰＩＴのサイズは、与えられたＤＡＲＴエントリが多くのインタレストについて使用可能であることから、ＤＡＲＴのサイズの１０倍よりも大きくすることができるのに対して、異なるＰＩＴエントリは、各インタレストについて必要とされる。一般に、軽負荷時に使用することができないＤＡＲＴエントリを維持するためのコストは、高負荷時に既存のＤＡＲＴエントリを使用して転送される多くのインタレストから得られるシグナリング遅延の大幅な減少によって補償されることができることが期待されることができる。
【０１１６】
コンピュータ及び通信システム
図１３は、本発明の実施形態にかかる、適応名称付けによるオンデマンドコンテンツ交換についての例示的なシステムを図示している。適応名称付けによるオンデマンドコンテンツ交換についてのシステム１３００は、プロセッサ１３１０と、メモリ１３２０と、記憶装置１３３０とを含む。記憶装置１３３０は、典型的には、メモリ１３２０にロード可能であり且つ上述した方法を実行するためにプロセッサ１３１０によって実行可能な命令を記憶する。１つの実施形態において、記憶装置１３３０における命令は、インタレスト処理モジュール１３３２と、名称付きデータオブジェクト処理モジュール１３３４と、転送モジュール１３３６と、制御メッセージ生成モジュール１３３８とを実装することができ、それらの全ては様々な手段を介して互いに通信することができる。記憶装置１３３０は、さらに、コンテンツストア１３４０、転送情報ベース１３４２及びデータ回答ルーティングテーブル１３４４などの多数のデータ構造を含むことができる。
【０１１７】
いくつかの実施形態において、モジュール１３３２、１３３４、１３３６及び１３３８は、部分的又は全体的にハードウェアで実装することができ、プロセッサ１３１０の一部とすることができる。さらに、いくつかの実施形態において、システムは、別個のプロセッサ及びメモリを含まなくてもよい。代わりに、それらの特定のタスクを実行することに加えて、モジュール１３３２、１３３４、１３３６及び１３３８は、別個に又は一体的に、汎用又は専用計算エンジンの一部とすることができる。
【０１１８】
記憶装置１３３０は、プロセッサ１３１０によって実行されることになるプログラムを記憶する。具体的には、記憶装置１３３０は、適応名称付けによるオンデマンドコンテンツ交換についてのシステム（アプリケーション）を実装するプログラムを記憶する。動作中において、アプリケーションプログラムは、記憶装置１３３０からメモリ１３２０にロードされることができ、プロセッサ１３１０によって実行されることができる。その結果、システム１３００は、上述した機能を実行することができる。システム１３００は、（タッチスクリーンディスプレイとすることができる）任意のディスプレイ１３８０、キーボード１３６０及びポインティングデバイス１３７０に結合されることができ、また、ネットワーク１３８２に対して１つ以上のネットワークインターフェースを介して結合されることができる。
【０１１９】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られている若しくは今後開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【０１２０】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体内に記憶された方法及びプロセスを実行する。
【０１２１】
さらにまた、本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置に含めることができる。例えば、これらのモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュール若しくはコードの一部を実行する専用又は共有プロセッサ、及び／又は、現在知られている若しくは今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【図１】
2017069950.tif 000015
【図２】
2017069950.tif 000016
【図３】
2017069950.tif 000017
【図４Ａ】
2017069950.tif 000018
【図４Ｂ】
2017069950.tif 000019
【図５Ａ】
2017069950.tif 000020
【図５Ｂ】
2017069950.tif 000021
【図６Ａ】
2017069950.tif 000022
【図６Ｂ】
2017069950.tif 000023
【図６Ｃ】
2017069950.tif 000024
【図７】
2017069950.tif 000025
【図８】
2017069950.tif 000026
【図９】
2017069950.tif 000027
【図１０Ａ】
2017069950.tif 000028
【図１０Ｂ】
2017069950.tif 000029
【図１１】
2017069950.tif 000030
【図１２】
2017069950.tif 000031
【図１３】
2017069950.tif 000032