(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-08
(45)【発行日】2022-07-19
(54)【発明の名称】情報中心ネットワークにおけるコンテンツのディレクトリ支援型ルーティング
(51)【国際特許分類】
H04L 45/74 20220101AFI20220711BHJP
【FI】
H04L45/74
(21)【出願番号】P 2021518037
(86)(22)【出願日】2019-06-05
(86)【国際出願番号】 US2019035646
(87)【国際公開番号】W WO2019236742
(87)【国際公開日】2019-12-12
【審査請求日】2021-02-02
(32)【優先日】2018-06-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520482168
【氏名又は名称】グランブー・インコーポレイテッド
【氏名又は名称原語表記】GRAMBOO INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ジョン,ニティッシュ
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2015-162686(JP,A)
【文献】特開2018-049473(JP,A)
【文献】特開2018-014568(JP,A)
【文献】特開2017-147645(JP,A)
【文献】特表2008-526056(JP,A)
【文献】米国特許出願公開第2016/0094553(US,A1)
【文献】中国特許出願公開第106970965(CN,A)
【文献】ICNが切り開く次世代ネットワークアーキテクチャ,FUJITSU,VOL.66 No.5,2015年09月01日
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/28,12/44-12/66,45/00-49/9057
(57)【特許請求の範囲】
【請求項1】
パブリッシャノードに結び付けられ、かつコンテンツアイテムに結び付けられた識別子と、前記パブリッシャノードの第1のアンカ・ディレクトリ・ルータの第1のアンカプレフィックスとを含む、パブリッシュメッセージを、情報中心ネットワーク(ICN)内の権威ディレクトリルータにより、取得することと、
前記識別子の双方向コードが前記権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断することと、
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記権威ディレクトリルータに結び付けられたローカル・コード・リポジトリを、前記第1のアンカプレフィックスと前記識別子とで更新することとを含む、
方法。
【請求項2】
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記権威ディレクトリルータにより、前記識別子と前記第1のアンカプレフィックスとを含むパブリッシュ承認メッセージを生成することと、
前記パブリッシュメッセージ内の前記第1のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第1のアンカ・ディレクトリ・ルータへ前記パブリッシュ承認メッセージを転送することとをさらに含む、
請求項1に記載の方法。
【請求項3】
前記アンカ・ディレクトリ・ルータに新たなプレフィックスが割り当てられた後に、前記コンテンツアイテムを再パブリッシュすることと、
前記権威ディレクトリルータの前記ローカル・コード・リポジトリを前記新たなプレフィックスで更新することとをさらに含む、
請求項1に記載の方法。
【請求項4】
前記権威ディレクトリによって前記パブリッシュメッセージが取得される前に、前記第1のアンカ・ディレクトリ・ルータにより、前記コンテンツアイテムに結び付けられた前記識別子を含む前記パブリッシュメッセージを取得することと、
前記双方向コードが前記第1のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断することと、
前記双方向コードが前記権威コード範囲の範囲外であると判断したことに応じて、前記パブリッシュメッセージに前記第1のアンカ・ディレクトリ・ルータの前記第1のアンカプレフィックスを挿入することと、
前記双方向コードと区間ルーティングとに基づいて、前記第1のアンカプレフィックスを含む前記パブリッシュメッセージを転送することとをさらに含み、
前記第1のアンカ
・ディレクトリ
・ルータが前記パブリッシュメッセージを転送した後に、前記権威ディレクトリルータが前記パブリッシュメッセージを取得する、
請求項1に記載の方法。
【請求項5】
前記パブリッシュメッセージを取得したことに応じて、前記第1のアンカ・ディレクトリ・ルータにより、パブリッシュ承認メッセージを生成することと、
前記パブリッシャノードへ前記パブリッシュ承認メッセージを送信することと、
パブリッシュメッセージに基づいて前記第1のアンカ・ディレクトリ・ルータのローカル・コード・リポジトリを更新することとをさらに含む、
請求項1に記載の方法。
【請求項6】
前記ICN内の中間ディレクトリルータにより、前記第1のアンカプレフィックスと前記コンテンツアイテムに結び付けられた前記識別子とを含む前記パブリッシュメッセージを取得することと、
前記中間ディレクトリルータにより、前記パブリッシュメッセージから前記
パブリッシャノードの識別情報を抽出することと、
前記中間ディレクトリルータのローカル・ルーティング・リポジトリを、前記パブリッシャノードの前記識別情報と前記コンテンツアイテムに結び付けられた前記識別子とで更新することと、
前記識別子の前記双方向コードが前記中間ディレクトリルータに割り当てられた権威コード範囲の範囲外であると判断することと、
前記中間ディレクトリルータにより、前記双方向コードと区間ルーティングとに基づいて、前記第1のアンカプレフィックスを含む前記パブリッシュメッセージを転送することとをさらに含み、
前記中間ディレクトリルータが前記パブリッシュメッセージを転送した後に、前記権威ディレクトリルータが前記パブリッシュメッセージを取得する、
請求項1に記載の方法。
【請求項7】
サブスクライバノードに結び付けられ、かつ前記サブスクライバノードの第2のアンカ・ディレクトリ・ルータの第2のアンカプレフィックスと、前記コンテンツアイテムに結び付けられた前記識別子とを含むルックアップメッセージを、前記ICN内の前記権威ディレクトリルータにより、取得することと、
前記ルックアップメッセージに応じて、前記権威ディレクトリにより、前記識別子と、前記第1のアンカプレフィックスと、前記第2のアンカプレフィックスとを含むルックアップ応答メッセージを生成することと、
前記ルックアップ応答メッセージ内の前記第2のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第2のアンカ・ディレクトリ・ルータへ前記ルックアップ応答メッセージを転送することとをさらに含み、
前記サブスクライバノードが前記ルックアップ応答メッセージに基づいて前記コンテンツアイテムのデータ要求メッセージを発行する、
請求項1に記載の方法。
【請求項8】
前記パブリッシュメッセージが、前記パブリッシャノードにとって既知である第1のランドマーク・ディレクトリ・ルータの第1のランドマークプレフィックスを含み、前記ランドマーク・ディレクトリ・ルータは前記第1のアンカ・ディレクトリ・ルータとは別個のものであり、
前記権威ディレクトリルータに結び付けられた前記ローカル・コード・リポジトリを更新することが、前記第1のランドマークプレフィックスを保管することを含み、
前記ルックアップ応答メッセージが、前記権威ディレクトリルータに結び付けられた前記ローカル・コード・リポジトリから取り出された前記第1のランドマークプレフィックスを含み、
前記データ要求メッセージが、前記第1のランドマークプレフィックスと、前記サブスクライバノードにとって既知である第2のランドマークディレクトリの第2のランドマークプレフィックスとを含み、
前記パブリッシャノードが、前記データ要求メッセージに応じて、前記コンテンツアイテムと、前記第1のランドマークプレフィックスと、前記第2のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項7に記載の方法。
【請求項9】
前記ICN内の中間ディレクトリルータにより、前記ルックアップ応答メッセージを取得することと、
前記中間ディレクトリルータのローカル・コード・リポジトリを、前記ルックアップ応答メッセージからの前記識別子と、前記第1のアンカプレフィックスと、前記第1のランドマークプレフィックスとで更新することと、
前記中間ディレクトリルータにより、
プレフィックスルーティングと、
前記第1のアンカプレフィックス及び前記第1のランドマークプレフィックスからなるグループから選ばれる少なくともいずれか1つと、
を使用して、前記ルックアップ応答メッセージを転送することと、
前記中間ディレクトリルータにより、前記識別子を含むさらなるルックアップメッセージを取得することと、
前記さらなるルックアップ応答メッセージに応じて、前記中間ディレクトリルータにより、前記中間ディレクトリルータの前記ローカル・コード・リポジトリからの前記第1のアンカプレフィックスと前記第1のランドマークプレフィックスとを含むさらなる応答メッセージを生成することとをさらに含む、
請求項8に記載の方法。
【請求項10】
第1のアンカプレフィックスを含む第1のアンカ・ディレクトリ・ルータであって、前記第1のアンカ・ディレクトリ・ルータが、
コンテンツアイテムに結び付けられた識別子を含むパブリッシュメッセージを取得し、
前記コンテンツアイテムの双方向コードが前記第1のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、
前記パブリッシュメッセージに前記第1のアンカプレフィックスを挿入し、
区間ルーティングと前記双方向コードとに基づいて前記パブリッシュメッセージを転送する、
ように構成される、前記第1のアンカ・ディレクトリ・ルータと、
第2のアンカプレフィックスを含む第2のアンカ・ディレクトリ・ルータであって、前記第2のアンカ・ディレクトリ・ルータが、
前記識別子を含むルックアップメッセージを取得し、
コンテンツアイテムの前記双方向コードが前記第2のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、
前記ルックアップメッセージに前記第2のアンカプレフィックスを挿入し、
区間ルーティングと前記双方向コードとに基づいて前記ルックアップメッセージを転送する、
ように構成される、前記第2のアンカ・ディレクトリ・ルータと、
権威ディレクトリルータであって、前記権威ディレクトリルータが、
前記パブリッシュメッセージと前記ルックアップメッセージとを取得し、
前記識別子の前記双方向コードが前記権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断し、
前記ルックアップメッセージに応じて、前記識別子と、前記パブリッシュメッセージ内の前記第1のアンカプレフィックスと、前記ルックアップメッセージ内の前記第2のアンカプレフィックスとを含むルックアップ応答メッセージを生成し、
前記ルックアップ応答メッセージ内の前記第2のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ルックアップ応答メッセージを転送する、
ように構成される、前記権威ディレクトリルータとを含む、
情報中心ネットワーク(ICN)。
【請求項11】
前記双方向コードが空間充填曲線コードである、請求項10に記載のICN。
【請求項12】
前記権威ディレクトリが、
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記識別子と前記第1のアンカプレフィックスとを含むパブリッシュ承認メッセージを生成し、
前記パブリッシュメッセージ内の前記第1のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第1のアンカ・ディレクトリ・ルータへ前記パブリッシュ承認メッセージを転送するようにさらに構成される、請求項10に記載のICN。
【請求項13】
前記第1のアンカ・ディレクトリ・ルータが、
前記パブリッシュメッセージを取得したことに応じて、パブリッシュ承認メッセージを生成し、
パブリッシャノードへ前記パブリッシュ承認メッセージを送信し、
パブリッシュメッセージに基づいて前記第1のアンカ・ディレクトリ・ルータのローカル・コード・リポジトリを更新するようにさらに構成される、請求項10に記載のICN。
【請求項14】
前記パブリッシュメッセージが、前記コンテンツアイテムに結び付けられたパブリッシャノードによって生成され、
前記ルックアップメッセージが、サブスクライバノードによって生成され、
前記パブリッシュメッセージが、前記パブリッシャノードにとって既知である第1のランドマーク・ディレクトリ・ルータの第1のランドマークプレフィックスを含み、前記ランドマーク・ディレクトリ・ルータが前記第1のアンカ・ディレクトリ・ルータとは別個であり、
前記ルックアップ応答メッセージが、前記第1のランドマークプレフィックスを含み、
前記サブスクライバノードが、前記ルックアップ応答メッセージに応じて、前記第1のランドマークプレフィックスと、前記サブスクライバノードにとって既知である第2のランドマークディレクトリの第2のランドマークプレフィックスとを含むデータ要求メッセージを発行し、
前記パブリッシャノードが、前記データ要求メッセージに応じて、前記コンテンツアイテムと、前記第1のランドマークプレフィックスと、前記第2のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項10に記載のICN。
【請求項15】
中間ディレクトリルータであって、
前記データ応答メッセージを取得し、
前記データ応答メッセージから前記中間ディレクトリルータのキャッシュに前記コンテンツアイテムのコピーを保管し、
プレフィックスルーティングを使用して前記データ応答メッセージを転送し、
前記中間ディレクトリルータにより、前記中間ディレクトリルータのプレフィックスを含む、前記コンテンツアイテムのためのさらなるパブリッシュメッセージを生成する、
ように構成される、前記中間ディレクトリルータをさらに含む、請求項14に記載のICN。
【請求項16】
情報中心ネットワーク(ICN)内の第1のアンカ・ディレクトリ・ルータ(ADR)により、第1のコンテンツアイテムに結び付けられた第1の識別子を含むパブリッシュメッセージを取得することと、
前記第1のADRにより、前記第1の識別子の第1の双方向コードが前記第1のADRに割り当てられた権威コード範囲の範囲外であると判断することと、
前記第1の双方向コードが前記第1のADRに割り当てられた前記権威コード範囲の範囲外であると判断したことに応じて、前記第1のADRにより、前記パブリッシュメッセージに前記第1のADRの第1のアンカプレフィックスを挿入することと、
前記第1の双方向コードと区間ルーティングとに基づいて、前記第1のアンカプレフィックスを含む前記パブリッシュメッセージを転送することと、
前記第1のアンカプレフィックスを含み、前記ICN内の第1の権威ディレクトリルータによって生成される、パブリッシュ承認メッセージを取得することとを含み、
前記第1の双方向コードが、前記第1の権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であり、
前記パブリッシュ承認メッセージが、前記パブリッシュ承認メッセージ内の前記第1のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記ICNの中を通行する、
方法。
【請求項17】
前記第1の双方向コードがヒルベルト空間充填曲線コードであり、前記第1のコンテンツアイテムがビデオファイルである、請求項16に記載の方法。
【請求項18】
前記第1のADRにより、前記第1のアンカプレフィックスと前記第1の識別子とをローカル・コード・リポジトリに保管することと、
前記第1のADRにより、前記第1の識別子と、第2のアンカ・ディレクトリ・ルータの第2のアンカプレフィックスとを含むルックアップメッセージを取得することと、
前記第1のADRにより、前記第1の識別子に基づいて、前記ローカル・コード・リポジトリから前記第1のアンカプレフィックスを取り出すことと、
前記第1のADRにより、前記第1のアンカプレフィックスと、前記ルックアップメッセージからの前記第2のアンカプレフィックスと、前記第1の識別子とを含むルックアップ応答メッセージを生成することと、
前記第1のADRにより、前記ルックアップ応答メッセージ内の前記第2のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ルックアップ応答メッセージを転送することとをさらに含む、
請求項16に記載の方法。
【請求項19】
ホストノードに結び付けられ、かつ第2のコンテンツアイテムに結び付けられた第2の識別子を含む、ルックアップメッセージを、前記第1のADRにより取得することと、
前記第1のADRにより、前記第2の識別子の第2の双方向コードが前記第1のADRに割り当てられた前記権威コード範囲の範囲外であると判断することと、
前記第2の双方向コードが前記第1のADRに割り当てられた前記権威コード範囲の範囲外であると判断したことに応じて、前記第1のADRにより、前記ルックアップメッセージに前記ADRの前記第1のアンカプレフィックスを挿入することと、
前記第1のADRにより、前記第2の双方向コードと区間ルーティングとに基づいて前記ルックアップメッセージを転送することと、
第2の権威ディレクトリルータによって生成されたルックアップ応答メッセージであって、
前記第1のADRの前記第1のアンカプレフィックスと、
前記第2のコンテンツアイテムに結び付けられたパブリッシャノードの第2のADRの第2のアンカプレフィックスと、
前記パブリッシャノードにとって既知である第1のランドマーク・ディレクトリ・ルータの第1のランドマークプレフィックスとを含む、前記ルックアップ応答メッセージを、前記第1のADRにより、取得することと、
前記第1のADRにより、前記ホストノードへ前記第2のアンカプレフィックスと前記第1のランドマークプレフィックスを送信することとをさらに含み、
前記第2の双方向コードが、前記第2の権威ディレクトリに割り当てられた権威コード範囲の範囲内であり、
前記ルックアップ応答メッセージが、前記ルックアップ応答メッセージ内の前記第1のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ICNの中を通行する、
請求項16に記載の方法。
【請求項20】
前記ホストが、前記第2の識別子と、前記第2のアンカプレフィックスと、前記第1のランドマークプレフィックスと、前記ホストノードにとって既知である第2のランドマーク・ディレクトリ・ルータの第2のランドマークプレフィックスとを含むデータ要求メッセージを生成し、
前記パブリッシャノードが、前記第2のコンテンツアイテムと前記データ要求メッセージ内の前記第2のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項19に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
背景技術
現代のインターネットアーキテクチャは、ホスト中心の通信モデルで設計されている。ただし、ネットワークに接続される機器の数が増え続け、データトラフィックが増大し続けているため、ホスト中心のネットワークでスケーリングコンテンツ配布、モビリティ、セキュリティ、キャッシング、及び信頼に見られる問題を軽減するためには、コンテンツを設計の中核に据えたインターネットのための新しいアーキテクチャが必要となるであろう。
【発明の概要】
【課題を解決するための手段】
【0002】
発明の概要
概して、一態様において、本発明の1つ以上の実施形態は方法を対象としている。該方法は、パブリッシャノードに結び付けられ、コンテンツアイテムに結び付けられた識別子と、パブリッシャノードの第1のアンカ・ディレクトリ・ルータの第1のアンカプレフィックスとを含む、パブリッシュメッセージを、情報中心ネットワーク(ICN)内の権威ディレクトリルータにより、取得することと、識別子の双方向コードが権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断することと、双方向コードが権威コード範囲の範囲内であることに応じて、権威ディレクトリルータに結び付けられたローカル・コード・リポジトリを、第1のアンカプレフィックスと識別子とで更新することとを含む。
【0003】
概して、一態様において、本発明の1つ以上の実施形態は情報中心ネットワーク(ICN)を対象としている。該ICNは、第1のアンカプレフィックスを含む第1のアンカ・ディレクトリ・ルータと、第2のアンカプレフィックスを含む第2のアンカ・ディレクトリ・ルータと、権威ディレクトリルータとを含む。第1のアンカ・ディレクトリ・ルータは、コンテンツアイテムに結び付けられた識別子を含むパブリッシュメッセージを取得し、コンテンツアイテムの双方向コードが第1のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、パブリッシュメッセージに第1のアンカプレフィックスを挿入し、なおかつ区間ルーティングと双方向コードとに基づいてパブリッシュメッセージを転送するように構成される。第2のアンカ・ディレクトリ・ルータは、識別子を含むルックアップメッセージを取得し、コンテンツアイテムの双方向コードが第2のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、ルックアップメッセージに第2のアンカプレフィックスを挿入し、なおかつ区間ルーティングと双方向コードとに基づいてルックアップメッセージを転送するように構成される。権威ディレクトリルータは、パブリッシュメッセージとルックアップメッセージとを取得し、識別子の双方向コードが権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断し、ルックアップメッセージに応じて、識別子と、パブリッシュメッセージ内の第1のアンカプレフィックスと、ルックアップメッセージ内の第2のアンカプレフィックスとを含むルックアップ応答メッセージを生成し、なおかつルックアップ応答メッセージ内の第2のアンカプレフィックスとプレフィックスルーティングとに基づいてルックアップ応答メッセージを転送するように構成される。
【0004】
概して、一態様において、本発明の1つ以上の実施形態は方法を対象としている。該方法は、情報中心ネットワーク(ICN)内の第1のアンカ・ディレクトリ・ルータ(ADR)により、第1のコンテンツアイテムに結び付けられた第1の識別子を含むパブリッシュメッセージを取得することと、第1のADRにより、第1の識別子の第1の双方向コードが第1のADRに割り当てられた権威コード範囲の範囲外であると判断することと、第1の双方向コードが第1のADRに割り当てられた権威コード範囲の範囲外であると判断したことに応じて、第1のADRにより、パブリッシュメッセージに第1のADRの第1のアンカプレフィックスを挿入することと、第1の双方向コードと区間ルーティングとに基づいて、第1のアンカプレフィックスを含むパブリッシュメッセージを転送することと、第1のアンカプレフィックスを含み、ICN内の第1の権威ディレクトリルータによって生成される、パブリッシュ承認メッセージを取得することとを含み、第1の双方向コードは、第1の権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であり、パブリッシュ承認メッセージは、パブリッシュ承認メッセージ内の第1のアンカプレフィックスとプレフィックスルーティングとに基づいてICNの中を通行する。
【0005】
実施形態のその他の態様は、以降の説明と添付の請求項から明らかになるであろう。
【図面の簡単な説明】
【0006】
【
図1A】本発明の1つ以上の実施形態による1つ以上の情報中心ネットワーク(ICN)を示す。
【
図1B】本発明の1つ以上の実施形態による1つ以上の情報中心ネットワーク(ICN)を示す。
【
図1C】本発明の1つ以上の実施形態による1つ以上の情報中心ネットワーク(ICN)を示す。
【
図2A】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図2B】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図3A】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図3B】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図4A】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図4B】本発明の1つ以上の実施形態によるICNの中でやり取りされるメッセージを示す。
【
図5A】本発明の1つ以上の実施形態によるICNの中のルータ及びリポジトリを示す。
【
図5B】本発明の1つ以上の実施形態によるICNの中のルータ及びリポジトリを示す。
【
図5C】本発明の1つ以上の実施形態によるICNの中のルータ及びリポジトリを示す。
【
図6】本発明の1つ以上の実施形態によるフローチャートを示す。
【
図7】本発明の1つ以上の実施形態によるフローチャートを示す。
【
図8】本発明の1つ以上の実施形態による一例を示す。
【
図9】本発明の1つ以上の実施形態によるコンピュータシステムを示す。
【発明を実施するための形態】
【0007】
発明を実施するための形態
開示される技術を十分に理解するため、実施形態の以降の詳細な説明には数多くの具体的詳細が記載されている。ただし、これらの具体的詳細がなくとも開示されている技術を実践できることは当業者にとって明白となるであろう。また、説明を不必要に込み入ったものにするのを避けるため、周知の事柄は詳しく説明されない。
【0008】
本願の全体を通じて、要素(すなわち、本願における何らかの名詞)の形容詞として序数(例えば、第1、第2、第3、その他)が使われている場合がある。「前」、「後」、「単一」などの用語を用いて明確に表明されている場合を除き、序数の使用はそれらの要素の特定の順序を示唆するものでも作るものでもなく、要素をただ1つの要素に限定するものでもない。むしろ、序数の使用は要素を区別するものである。一例として、第1の要素は第2の要素と異なり、第1の要素は要素の順序の中で第2の要素に後続(又は先行)することがある。
【0009】
本発明の1つ以上の実施形態は、複数のディレクトリルータを含む情報中心のネットワーク(ICN)を対象とする。ICNを通じてアクセス可能な各コンテンツアイテム(例えば、画像ファイル、動画ファイル、音声ファイル、実行ファイル、pdf文書、スプレッドシート、ウェブページ、その他)には、双方向コード(例えば、空間充填曲線コード)が結び付けられる。さらに、それぞれのディレクトリルータにはプレフィックスを付けることができ、それぞれのディレクトリルータには双方向コードの1つ以上の区間(すなわち、1つ以上の権威コード範囲)を割り当てることができる。メッセージは、プレフィックスルーティング及び/又は区間ルーティングに基づいてICNの中を通行する。プレフィックスルーティング及び/又は区間ルーティングの使用は、ホスト中心のネットワークを悩ます大規模なルーティングテーブルを回避する。プレフィックスルーティング及び/又は区間ルーティングの使用は、ペンディング・インタレスト・テーブル(PIT)と既存のICNにしばしば見られるフラッディング操作の必要性も回避する。これらは、少なくともコンピュータネットワークとデータ管理の技術分野に対する技術的な改善である。
【0010】
図1Aは、本発明の1つ以上の実施形態によるシステム(100)を示している。
図1Aに示されているように、システム(100)は、1つ以上のパブリッシャノード(すなわち、パブリッシャノード1(105A)、パブリッシャノード2(105B)、パブリッシャノードR(105R))と1つ以上のサブスクライバノード(すなわち、サブスクライバノード1(185A)、サブスクライバノード2(185B)、及びサブスクライバノードN(185N))とを含む複数のコンポーネントを有している。それぞれのパブリッシャノード(105A、105B、105R)とそれぞれのサブスクライバノード(185A、185B、185N)は、計算機器(例えば、パーソナルコンピュータ(PC)、タブレットPC、サーバ、スマートフォン、メインフレーム、キオスク、その他)に相当してよい。さらに、パブリッシャノード(105A、105B、105R)の各々とサブスクライバノード(185A、185B、185N)の各々は、ホストと呼ばれることもある。さらに、それぞれのパブリッシャノード(105A、105B、105R)とそれぞれのサブスクライバノード(185A、185B、185N)は、一意な識別情報(例えば、一意な名前、一意なシリアル番号、その他)を有してよい。
【0011】
1つ以上の実施形態において、それぞれのパブリッシャノード(105A、105B、105R)は1つ以上のコンテンツアイテム(例えば、画像ファイル、動画ファイル、音声ファイル、実行ファイル、pdf文書、スプレッドシート、ウェブページ、その他)をパブリッシュする(例えば、利用可能にする)。パブリッシャノードによってパブリッシュされるコンテンツアイテムの数とタイプは、時間の経過にともない変わることがある。1つ以上の実施形態において、それぞれのサブスクライバノード(108A、185B、185R)は、コンテンツアイテムのいずれか1つ以上へのアクセスを求める。換言すると、パブリッシャノード(105A、105B、105R)は実質的にはコンテンツアイテムのソースであり、サブスクライバノード(185A、185B、185N)は実質的にはコンテンツアイテムのコンシューマである。
【0012】
図1Aを引き続き参照し、パブリッシャノード(105A、105B、105R)とサブスクライバノード(185A、185B、185N)はICN(125)によって接続されている。ICN(125)は、有線及び/又は無線部分を含む任意の規模であってよい。ICN(125)へ接続されるパブリッシャノードとサブスクライバノードの数は、時間の経過にともない変わることがある。
【0013】
図1Bは、本発明の1つ以上の実施形態によるICN(125)を示している。
図2Aに示されているように、ICN(125)は複数のディレクトリルータ(すなわち、ディレクトリルータC(110C)、ディレクトリルータG(110G)、ディレクトリルータL(110L)、ディレクトリルータQ(110Q)、ディレクトリルータN(110N))を含んでいる。それぞれのディレクトリルータは別のディレクトリルータへ直接接続された状態で示されているが、1つ以上の実施形態では、ある1つのディレクトリルータから別のディレクトリルータへ至る経路の一部に1つ以上の中間(非ディレクトリ)ルータがある(後述)。
【0014】
本発明の1つ以上の実施形態において、ディレクトリルータ(110C、110G、110L、110Q、110N)は階層(例えば、ツリー)を形成する。具体的に述べると、ディレクトリルータC(110C)はルートであり、ディレクトリルータL(110L)とディレクトリルータG(110G)はいずれもディレクトリルータC(110C)の子であり、ディレクトリルータQ(110Q)とディレクトリルータN(110N)はいずれもディレクトリルータL(110L)の子である。階層(例えば、ツリー)はレベルをいくつでも有してよく、1つのレベルの中にはディレクトリルータがいくつあってもよい。
【0015】
1つ以上の実施形態において、ICN(125)内の各ディレクトリルータ(110C、110G、110L、110Q、110N)には一意なプレフィックスが付く。ディレクトリルータのプレフィックスは、その親ディレクトリルータのプレフィックスと、これに加えて当該ディレクトリルータをその兄弟から区別するための少なくとも1つの追加の数字とを、含む。例えば、ディレクトリルータC(110C)はディレクトリルータL(110L)とディレクトリルータG(110G)の両方の親である。ディレクトリルータC(110C)のプレフィックスは「0」である。ディレクトリルータG(110G)のプレフィックスは「00」であり、ディレクトリルータL(110L)のプレフィックスは「01」である。「00」と「01」における最初の「0」は、親ディレクトリルータC(110C)のプレフィックスである。
【0016】
別の一例として、ディレクトリルータL(110L)はディレクトリルータQ(110Q)とディレクトリルータN(110N)の両方の親である。ディレクトリルータL(110L)のプレフィックスは「01」であり、ディレクトリルータQ(110Q)のプレフィックスは「010」であり、ディレクトリルータN(110N)のプレフィックスは「011」である。「010」と「011」における最初の「01」は、ディレクトリルータL(110L)のプレフィックスである。
【0017】
ディレクトリルータ(110C、110G、110L、110Q、110N)は、その親ディレクトリルータに割り当てられるプレフィックスと、その子ディレクトリルータのいずれか1つ以上に割り当てられるプレフィックスを認識する。ディレクトリルータ(110C、110G、110L、110Q、110N)は、ICN(126)内の他のいずれかのディレクトリルータ(すなわち、その親又は子以外のディレクトリルータ)に割り当てられるプレフィックスも認識できる。1つ以上の実施形態において、それぞれのディレクトリルータ(110C、110G、110L、110Q、110N)にプレフィックスが付けられる場合は、プレフィックスルーティングを利用してディレクトリルータ及び/又はホスト間でメッセージをやり取りすることができる。
【0018】
1つ以上の実施形態において、プレフィックスルーティングでは、メッセージを所持しているディレクトリルータ(「所持ディレクトリルータ」)が、メッセージの中に明記された送信先ディレクトリルータのプレフィックス(「送信先プレフィックス」)を、所持ディレクトリルータにとって既知であるディレクトリルータのプレフィックスと比較する。所持ディレクトリルータは、送信先プレフィックスに最もよく一致するプレフィックスを有する既知ディレクトリルータへメッセージを送信できる。1つ以上の実施形態において、最もよく一致するプレフィックスとは、メッセージ内の送信先プレフィックスとの重複が最も多いプレフィックスである。所持ディレクトリルータは、送信先プレフィックスと所持ディレクトリルータにとって既知であるプレフィックスとの間に重複がない場合に、自身の親ディレクトリルータへメッセージを送信できる。
【0019】
本発明の1つ以上の実施形態において、ディレクトリルータ(110C、110G、110L、110Q、110N)のいずれか1つ以上は権威コード範囲を維持する。それぞれのコード範囲は実数(例えば、整数)からなる区間であり、コード範囲間に重複はない。ディレクトリルータには権威コード範囲を割り当てることができる。さらに、ディレクトリルータ(110C、110G、110L、110Q、110N)は、自身のコード範囲の一部又は全部を1つ以上の子ディレクトリルータに割り当てる(例えば、委譲する)ことができる。
【0020】
例えば、ディレクトリルータC(110C)にはコード範囲[0,255]を割り当てることができる。その後、ディレクトリルータC(110C)は子ディレクトリルータL(110L)にコード範囲[0,150]を割り当て、子ディレクトリルータG(110G)にコード範囲[201-255]を割り当て、コード範囲[151,200]は自身のために保持することができる。ディレクトリルータL(110L)は子ディレクトリルータN(110N)にコード範囲[0-50]を割り当て、子ディレクトリルータQ(110Q)にコード範囲[51-99]を割り当て、コード範囲[100-150]は自身のために保持することができる。割り当てられたコード範囲はいずれも重複していない。
【0021】
ICN(125)の確立中に、それぞれのディレクトリルータは最初に、各自が親ディレクトリルータであると仮定し、プレフィックス「0」を有する。ただし、それぞれのディレクトリルータが他のディレクトリルータを検出するにつれて、親・子階層が形成され始める。例えば、ディレクトリルータx及びyの場合に、辞書学的に|xの識別情報|<|yの識別情報|であるなら、xはyの親である。
【0022】
上述したように、それぞれのパブリッシャノード(105A、105B、105R)は、1つ以上のサブスクライバノード(185A、185B、185C)によって消費される1つ以上のコンテンツアイテムをパブリッシュする。それぞれのコンテンツアイテムには識別子が結び付けられる。この識別子はコンテンツアイテムの名前であってよい(例えば、dog.jpg)。加えて、又は代わりに、識別子はURLであってよく、あるいはコンテンツアイテムのディレクトリ情報を含んでよい(例えば、website.com/directory/sub-directory/newDocument.pdf)。
【0023】
本発明の1つ以上の実施形態において、ディレクトリルータ(110C、110G、110L、110Q、110N)のいずれか1つ以上は、コンテンツアイテムの識別子から双方向コードを生成するように構成される。換言すると、ディレクトリルータ(110C、110G、110L、110Q、110N)のいずれか1つ以上は機能を実行し、この機能への入力はコンテンツアイテムの識別子であり、この機能の出力は双方向コードである。双方向コードは一次元(1D)数値であってよい。それぞれの双方向コードは、割り当てられたコード範囲の、1つの、なおかつただ1つの、コード範囲の範囲内に入る。2つの識別子が似ている場合は(例えば、ファイル名が似ている2つのコンテンツアイテム)、対応する双方向コードの間隔が短距離になる。双方向コードは空間充填曲線コード(例えば、ヒルベルト空間充填曲線コード)であってよい。双方向コードを計算するために使用される機能は、随時変更されてよい。
【0024】
1つ以上の実施形態において、双方向コードと割り当てられた権威コード範囲は、ICN(125)の中で区間ルーティングを可能にする。具体的に述べると、あるメッセージに双方向コードが結び付けられている場合、そして当該メッセージを所持するディレクトリルータが当該双方向コードを含む権威コード範囲を子ディレクトリルータに割り当てた場合は、当該ディレクトリルータは当該子ディレクトリルータへ当該メッセージを転送できる。そうではなく、あるメッセージに双方向コードが結び付けられている場合、そして当該メッセージを所持するディレクトリルータが当該双方向コードを含む権威コード範囲を子ディレクトリルータに割り当てておらず、また当該双方向コードを含む権威コード範囲を維持していない場合は、当該ディレクトリルータはその親ディレクトリルータへ当該メッセージを転送できる。このプロセスは、当該メッセージを所持する当該ディレクトリルータがまた、当該双方向コードを含む権威コード範囲を維持するディレクトリルータになるまで繰り返すことができる。1つ以上の実施形態において、ある特定のときに、当該双方向コードは、1つの、なおかつただ1つの、コード範囲の範囲内に入る(すなわち、当該双方向コードは1つのコード範囲を除く全てのコード範囲から外れる)。
【0025】
1つ以上の実施形態において、ICN(125)が確立される過程では、各ディレクトリルータは、各自が双方向コード空間全体の権威ディレクトリルータであると仮定する。ただし、ひとたびディレクトリルータの階層が形成されると、各ディレクトリルータは、親ディレクトリルータによって各自に割り当てられたコード空間部分だけの権威ディレクトリルータになる。
【0026】
図1Cは、本発明の1つ以上の実施形態によるICN(126)を示している。ICN(126)は、
図1A及び
図1Bを参照して上述したICN(125)に似ている。
図1Cに示されているように、ICN(126)は、ある1つのディレクトリルータを別のディレクトリルータに結ぶ経路沿いに1つ以上の中間ルータ(すなわち、中間ルータA(120A)、中間ルータB(120B)、中間ルータD(120D)、中間ルータE(220E)、中間ルータF(120F)、中間ルータH(120H)、中間ルータI(120I)、中間ルータJ(120J)、中間ルータK(120K)、中間ルータM(120M))を含んでいる。さらに、ホスト(例えば、パブリッシャノード1(105A))をディレクトリルータに結ぶ経路沿いにも1つ以上の中間ルータがあってよい。
【0027】
1つ以上の実施形態において、ホスト(例えば、パブリッシャノード1(105A)、サブスクライバノード1(185A))は自身の存在をディレクトリルータのいずれか1つに登録する。登録後に、そのディレクトリルータはホストのアンカ・ディレクトリ・ルータになる。1つ以上の実施形態において、ディレクトリルータがホストのアンカ・ディレクトリ・ルータになるには、ホストから限界ホップ数(例えば、2ホップ)以内にディレクトリルータがなければならない。例えば、
図1Cで、ディレクトリルータN(110N)はパブリッシャノード1(105A)のアンカ・ディレクトリ・ルータであり、ディレクトリルータC(110C)はサブスクライバノード1(185A)のアンカ・ディレクトリ・ルータである。さらに、アンカ・ディレクトリ・ルータのプレフィックスはアンカプレフィックスと呼ばれることがある。
【0028】
本発明の1つ以上の実施形態において、ホストにとって既知である近傍のディレクトリルータはランドマーク・ディレクトリ・ルータと呼ばれる。例えば、
図1Cで、ディレクトリルータL(110L)はパブリッシャノード1(105A)のランドマーク・ディレクトリ・ルータである。1つ以上の実施形態において、ホストのアンカ・ディレクトリ・ルータも当該ホストのランドマーク・ディレクトリ・ルータとみなされる。ランドマーク・ディレクトリ・ルータのプレフィックスはランドマークプレフィックスと呼ばれることがある。
【0029】
上述したように、それぞれのコンテンツアイテムには識別子が結び付けられ、それぞれのディレクトリルータは識別子から双方向コードを生成するように構成される。同じく上述したように、ディレクトリルータ(110C、110G、110L、110Q、110N)のいずれか1つ以上は重複しないコード範囲を維持する。コンテンツアイテムの双方向コードがディレクトリルータによって維持されているコード範囲の範囲内である場合は、当該ディレクトリルータが当該双方向コードの権威ディレクトリルータと呼ばれることがある。権威ディレクトリルータはアンカ・ディレクトリ・ルータとは異なる場合があり、ランドマーク・ディレクトリ・ルータと異なる場合もある。例えば、
図1Cで、ディレクトリルータN(110N)はパブリッシャノード1(105A)のアンカ・ディレクトリ・ルータであり、ディレクトリルータL(110L)はパブリッシャノード1(105A)の一ランドマーク・ディレクトリ・ルータであり、ディレクトリルータG(110G)はパブリッシャノード1(105A)によってパブリッシュされるコンテンツアイテムの権威ディレクトリルータになる可能性がある(すなわち、当該コンテンツアイテムの双方向コードがディレクトリルータG(110G)によって維持されているコード範囲の範囲内に入る)。
【0030】
本発明の1つ以上の実施形態においては、単一のディレクトリルータが、コード範囲の権威ディレクトリルータとして、1つ以上のホストのアンカ・ディレクトリ・ルータとして、及び1つ以上のホストのランドマーク・ディレクトリ・ルータとして、同時に働くこともある。ICN(126)を通行するメッセージは、複数のディレクトリルータを通過することがある。通行経路沿いのこれらのディレクトリルータは中間ディレクトリルータと呼ばれることがある。
【0031】
1つ以上の実施形態において、それぞれのディレクトリルータ(110C、110G、110L、110N、110Q)とそれぞれの中間ルータ(120A、120B、120D、120E、120F、120H、120I、120J、120K、120M)は、1つ以上のインターフェイスを含む。インターフェイスとは、隣接するルータ又はホストへ至る直接的な接続又は経路である。例えば、ディレクトリルートL(110L)は3つのインターフェイス、すなわちI1、I2、I3を有する。I1はディレクトリルータL(110L)を中間ルータF(120F)に接続する。I2はディレクトリルータL(110L)を中間ルータJ(120J)に接続する。I3はディレクトリルータL(110L)をディレクトリルータC(110C)に接続する。
【0032】
図2Aは、本発明の1つ以上の実施形態によるパブリッシュメッセージ(210)を示している。パブリッシュメッセージ(210)は、パブリッシャノードがコンテンツアイテムをパブリッシュする準備ができたときに当該パブリッシャノードによって生成されてよい。パブリッシュメッセージ(210)は、コンテンツアイテムを一時的にキャッシュしている別のディレクトリルータによって生成されてもよい(後述)。
図2Aに示されているように、パブリッシュメッセージは、コンテンツ識別子(212)と、パブリッシャノード識別情報(214)(例えば、パブリッシャノードに与えられた名前、パブリッシャノードのシリアル番号、その他)と、パブリッシャ・アンカ・プレフィックス(216)(すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス)と、1つ以上のランドマークプレフィックス(218)(すなわち、パブリッシュメッセージ(210)が生成されるときにパブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータがある場合の当該ランドマーク・ディレクトリ・ルータのプレフィックス)とを含む、複数のフィールドを含んでよい。パブリッシュメッセージ(210)は、リプレーアタックを防ぐためのランダム疑似数(すなわち、ノンス)や後続の更新メッセージを追跡するための連続番号をはじめとする、さらなるデータ(図示せず)を含んでもよい。パブリッシュメッセージ(210)は区間ルーティングによってICN(126)を横断できる。1つ以上の実施形態において、パブリッシュメッセージ(210)の送信先は、コンテンツ識別子(212)の双方向コードを含むコード範囲を維持する権威ディレクトリルータである(後述)。
【0033】
図2Bは、本発明の1つ以上の実施形態によるパブリッシュ承認(ACK)メッセージ(220)を示している。パブリッシュ承認メッセージ(220)は、パブリッシュメッセージ(210)に応じて権威ディレクトリルータによって生成されてよい。パブリッシュACKメッセージ(220)は、パブリッシュメッセージ(210)からのコンテンツ識別子(220)とパブリッシャ・アンカ・プレフィックス(216)とを含む、複数のフィールドを有する。パブリッシュACKメッセージ(220)は、ノンスや連続番号に関係するさらなるデータを含んでもよい(図示せず)。パブリッシュACKメッセージ(220)の送信先は、パブリッシャノードのアンカディレクトリである。したがって、パブリッシュACKメッセージ(220)は、プレフィックスルーティングと、リンク・コスト・リポジトリ(後述)と、パブリッシャ・アンカ・プレフィックス(216)とを使用してICN(126)の中を伝送されてよい。
【0034】
図3Aは、本発明の1つ以上の実施形態によるルックアップメッセージ(310)を示している。
図3Aに示されているように、ルックアップメッセージ(310)は、コンテンツアイテムを求めているサブスクライバノードによって生成されてよい。
図3Aに示されているように、ルックアップメッセージ(310)は、要求されているコンテンツアイテムの識別子(312)と、サブスクライバ・アンカ・プレフィックス(316)(すなわち、当該サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス)と、当該サブスクライバノードの識別情報(399)とを含む。ルックアップメッセージ(310)は、ノンスや連続番号に関係するさらなるデータ(図示せず)を含んでもよい。ルックアップメッセージ(310)は区間ルーティングによってICN(126)を横断でき、ルックアップメッセージ(310)の送信先は、コンテンツ識別子(312)の双方向コードを含むコード範囲を維持する権威ディレクトリルータであってよい(後述)。
【0035】
図3Bは、本発明の1つ以上の実施形態によるルックアップ応答メッセージ(320)を示している。ルックアップ応答メッセージ(320)は、ルックアップメッセージ(310)に応じて権威ディレクトリルータ(又は別のディレクトリルータ)によって生成されてよい。ルックアップ応答メッセージ(320)は、コンテンツ識別子(312)と、サブスクライバ・アンカ・プレフィックス(316)と、サブスクライバノード識別情報(399)とを含む、ルックアップメッセージ(310)からの複数のデータ項目を有する。ルックアップ応答メッセージ(320)はまた、要求されているコンテンツアイテムをパブリッシュしたパブリッシャノードの識別情報(325)と、パブリッシャ・アンカ・プレフィックス(327)(すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス)と、パブリッシャ・ランドマーク・プレフィックス(329)(すなわち、パブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス)とを含む。パブリッシャノード識別情報(325)と、パブリッシャ・アンカ・プレフィックス(327)と、パブリッシャ・ランドマーク・プレフィックス(329)とを含むデータ構造(例えば、nタプル)は、コンテンツ・アイテム・プロファイル(377)と呼ばれることがある。
【0036】
1つ以上の実施形態において、要求されているコンテンツアイテムは複数のパブリッシャノードによってパブリッシュされることがある。そのような状況では、ルックアップ応答メッセージ(320)にコンテンツ・アイテム・プロファイル(377)の複数のインスタンスがあってよく、それぞれのインスタンスは複数のパブリッシャノードのいずれか1つに対応する。
【0037】
1つ以上の実施形態において、ルックアップ応答メッセージ(320)は、ノンスと連続番号とを含むさらなるデータ(図示せず)を含む。ルックアップ応答メッセージ(320)の最終的な送信先は、ルックアップメッセージ(310)を生成したサブスクライバノードであってよい。したがって、ルックアップ応答メッセージ(320)は、プレフィックスルーティングと、リンク・コスト・リポジトリ(後述)と、ルックアップ応答メッセージ(320)内のサブスクライバ・アンカ・プレフィックス(316)とを使用して、ICN(126)を通ってサブスクライバ・アンカ・ディレクトリへ伝送されてよい。その後、サブスクライバ・アンカ・ディレクトリは、ルックアップ応答メッセージ(320)内のサブスクライバノード識別情報(399)に基づいてサブスクライバノードへルックアップ応答メッセージ(320)(又はそのデータの少なくとも一部)を伝送してよい。加えて、又は代わりに、サブスクライバノードに近いルータが、サブスクライバノードのアンカ・ディレクトリ・ルータを迂回してサブスクライバノードへルックアップ応答メッセージ(320)をリダイレクトしてもよい。
【0038】
図4Aは、本発明の1つ以上の実施形態によるデータ要求メッセージ(410)を示している。データ要求メッセージ(410)は、ルックアップ応答メッセージ(320)内のデータに基づいてサブスクライバノードによって生成されてよい。
図4Aに示されているように、データ要求メッセージ(410)は、コンテンツアイテムの識別子(411)と、要求されているコンテンツアイテムをパブリッシュしたパブリッシャノードの識別情報(413)と、パブリッシャ・ランドマーク・プレフィックス(415)(すなわち、パブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス)と、パブリッシャ・アンカ・プレフィックス(498)(すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス)と、データ要求メッセージ(410)を生成しているサブスクライバノードの識別情報(417)と、サブスクライバ・ランドマーク・プレフィックス(419)(すなわち、データ要求メッセージ(410)が生成されたときにサブスクライバノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス)と、サブスクライバ・アンカ・プレフィックス(497)(すなわち、サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス)とを含む。1つ以上の実施形態において、データ要求メッセージ(410)は、ノンスと連続番号とを含むさらなるデータ(図示せず)を含む。
【0039】
データ要求メッセージ(410)の意図された送信先は、コンテンツアイテムのパブリッシャノードのいずれか1つである。したがって、データ要求メッセージ(420)は、プレフィックスルーティングと、リンク・コスト・リポジトリ(後述)と、データ要求メッセージ(410)内のパブリッシャ・アンカ・プレフィックス(498)又はパブリッシャ・ランドマーク・プレフィックス(415)のいずれか1つとを使用して、ICN(126)を通ってパブリッシャ・アンカ・ディレクトリ・ルータかパブリッシャ・ランドマーク・ディレクトリ・ルータのいずれか1つへ伝送されてよい。サブスクライバノードは、最も適切なすぐ近くのルータへデータ要求メッセージを転送でき、この最も適切なすぐ近くのルータは、パブリッシャ・アンカ・プレフィックス(498)又はパブリッシャ・ランドマーク・プレフィックス(415)のいずれか1つ以上の方向にあるサブスクライバノードのアンカディレクトリであってよく、又は当該アンカディレクトリでなくてもよい。データ要求メッセージ(410)を最終的に受信したパブリッシャ・アンカ・ディレクトリ・ルータ(又はランドマーク・ディレクトリ・ルータ)はその後、パブリッシャノード識別情報(413)に基づいてパブリッシャノードへデータ要求メッセージ(410)(又はそのデータの少なくとも一部)を伝送できる。加えて、又は代わりに、パブリッシャノードに近いルータが、パブリッシャ・アンカ・ディレクトリ・ルータ及び/又はパブリッシャ・ランドマーク・ディレクトリ・ルータを迂回してパブリッシャノードへデータ要求メッセージ(410)をリダイレクトしてもよい。
【0040】
図4Bは、本発明の1つ以上の実施形態によるデータ応答メッセージ(450)を示している。データ応答メッセージ(450)は、データ要求メッセージ(410)内のデータに基づいてパブリッシャノードによって生成されてよい。
図4Bに示されているように、データ応答メッセージ(450)はデータ要求メッセージ(410)からのデータを数多く含んでいる。ただし、データ応答メッセージ(450)はコンテンツアイテム(499)自体をも含んでいる。
【0041】
データ応答メッセージ(450)の意図された送信先は、コンテンツアイテム(499)を要求したサブスクライバノードである。したがって、データ応答メッセージ(450)は、プレフィックスルーティングと、リンク・コスト・リポジトリ(後述)と、データ応答メッセージ(450)内のサブスクライバ・アンカ・プレフィックス(497)又はサブスクライバ・ランドマーク・プレフィックス(419)のいずれか1つとを使用して、ICN(126)を通ってサブスクライバ・アンカ・ディレクトリ・ルータかサブスクライバ・ランドマーク・ディレクトリ・ルータのいずれか1つへ伝送されてよい。パブリッシャノードは、最も適切なすぐ近くのルータへデータ応答メッセージを転送でき、この最も適切なすぐ近くのルータは、サブスクライバ・アンカ・プレフィックス(497)又はサブスクライバ・ランドマーク・プレフィックス(419)のいずれか1つ以上の方向にあるパブリッシャノードのアンカディレクトリであってよく、又は当該アンカディレクトリでなくてもよい。データ応答メッセージ(450)を最終的に受信したサブスクライバ・アンカ・ディレクトリ・ルータ(又はサブスクライバ・ランドマーク・ディレクトリ・ルータ)はその後、サブスクライバノード識別情報(417)に基づいてサブスクライバノードへデータ応答メッセージ(450)(又はそのデータの少なくとも一部)を伝送できる。加えて、又は代わりに、サブスクライバノードに近いルータが、サブスクライバ・アンカ・ディレクトリ・ルータ及び/又はサブスクライバ・ランドマーク・ディレクトリ・ルータを迂回してパブリッシャノードへデータ応答メッセージ(450)をリダイレクトしてもよい。
【0042】
大規模な伝送情報ベーステーブルとペンディング・インタレスト・テーブルに依存する他のICNネットワークと違って、データ要求メッセージ(410)とデータ応答メッセージ(450)は、各ホップでの拡張可能でロバストで効率的なルーティングに役立つランドマーク・ディレクトリ・プレフィックス(415、419)(アンカ・ディレクトリ・プレフィックスを含む)を含む。換言すると、ICN(126)は転送情報ベーステーブルとペンディング・インタレスト・テーブルを必要としない。
【0043】
図5Aは、本発明の1つ以上の実施形態によるディレクトリルータ(510)を示している。ディレクトリルータ(510)は、
図1Bを参照して上述したディレクトリルータ(110C、110G、110L、110N、110Q)のいずれかに相当してよい。
図5Aに示されているように、ディレクトリルータ(510)は複数のリポジトリを有する。これらのリポジトリは、何らかのタイプのデータ構造(例えば、テーブル、リンクされたリスト、データベース、その他)を使用して実装されてよい。
【0044】
1つ以上の実施形態において、リンク・コスト・リポジトリ(511)は複数の項目を有する。1つ以上の項目は、別のディレクトリルータの識別情報と、当該別のディレクトリルータのプレフィックスと、ディレクトリルータ(510)から当該別のディレクトリルータに到達するのに必要なホップの数と、当該別のディレクトリルータに到達するための経路内の次のルータと(すなわち、次のルータとディレクトリルータ(510)との間には直接的な接続がある)、ディレクトリルータ(510)を次のルータに接続するインターフェイスとを含んでよい。加えて、1つ以上の項目は、ホスト(すなわち、パブリッシャノード又はサブスクライバノード)の識別情報と、当該ホストに到達するために必要なホップの数と、当該ホストに到達するための経路内の次のルータと、ディレクトリルータ(510)を次のルータに接続するインターフェイスとを含んでよい。
【0045】
図5Bは、リンク・コスト・リポジトリ(511)の一例を示している。具体的に述べると、
図5Bは、
図1B及び
図1Cを参照して上述したディレクトリルータL(110L)内のリンク・コスト・リポジトリであってよい。
図5Bに示されているように、メッセージ(例えば、パブリッシュメッセージ、パブリッシュACKメッセージ、ルックアップメッセージ、ルックアップ応答メッセージ、データ要求メッセージ、データ応答メッセージ、その他)をパブリッシャノード1(105A)へ転送するには、インターフェイスI2によってディレクトリルータL(110L)へ直接接続されている中間ルータJ(120J)へメッセージを転送できる。メッセージはその後、中間ルータJ(120J)によって中間ルータK(120K)へ転送され、その後、中間ルータK(120K)によってパブリッシャノード1(105A)へ転送される。
【0046】
同じく
図5Bに示されているように、メッセージをディレクトリルータC(110C)へ転送するにあたっては、ディレクトリルータL(110L)にとって既知である2通りのオプションがある。一方のオプションは1つのホップを必要とし(「短い経路」)、他方のオプションは3つのホップを必要とする(「長い経路」)。短い経路の場合は、ディレクトリルータL(110L)をディレクトリルータC(110C)に直接接続しているインターフェイスI3を経由してメッセージを転送できる。長い経路の場合は、インターフェイスI1によってディレクトリルータL(110L)へ直接接続されている中間ルータF(120F)へメッセージを転送できる。メッセージはその後、中間ルータF(120F)によって中間ルータE(120E)へ転送され、その後、中間ルータE(120E)によってディレクトリルータC(110C)へ転送される。1つ以上の実施形態において、同じ送信先に至る複数の経路がある場合は、ホップ数が最も少ない経路が利用される。ホップ数が等しい経路が複数ある場合は、経路がランダムに選択されてよい。
【0047】
この詳細な説明の恩恵に浴する当業者なら、いずれかのルータのリンク・コスト・リポジトリが、HELLOメッセージをブロードキャストするルータによって生成され更新されてよいことを理解するであろう。
【0048】
図5Aに戻り、1つ以上の実施形態において、ディレクトリルータ(510)は区間リポジトリ(515)を含む。区間リポジトリは、ディレクトリルータによって維持されている1つ以上のコード範囲を保管する。換言すると、ディレクトリルータ(510)は、区間リポジトリ(515)内のコード範囲の権威ディレクトリルータである。1つ以上の実施形態において、区間リポジトリ(515)は、子ディレクトリルータに委譲されたコード範囲がある場合は、そのコード範囲をも保管する。
【0049】
1つ以上の実施形態において、ローカル・ルーティング・リポジトリ(515)は、ディレクトリルータ(510)がコンテンツアイテムに対応する双方向コードの権威ディレクトリではない場合でも、ディレクトリルータ(510)によって受信される各パブリッシュメッセージから抽出されるコンテンツアイテム識別子とパブリッシャノード識別情報とを保管する。ローカル・ルーティング・リポジトリ(515)内の項目は、ディレクトリルータ(510)が権威ディレクトリルータではない場合でも、ディレクトリルータ(510)によって取得されるルックアップ要求メッセージに応答するために使用することができる。
【0050】
1つ以上の実施形態において、ローカル・コード・リポジトリ(517)は、ディレクトリルータ(510)によって受信されるパブリッシュメッセージのいずれかから抽出されるコンテンツアイテム識別子と、パブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを保管する(後述)。
図3Bを参照して上述したように、パブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスは、コンテンツ・アイテム・プロファイルと総称されることがある。1つ以上の実施形態においては、同じコンテンツアイテムについて複数のパブリッシャノードがある。かかる実施形態においては、同じコンテンツアイテムについて複数のコンテンツ・アイテム・プロファイルがローカル・コード・リポジトリ(517)に保管されてよく、それぞれのコンテンツ・アイテム・プロファイルは、別々のパブリッシャノード、そのアンカディレクトリ、及びそのランドマークプレフィックスに対応している。
【0051】
1つ以上の実施形態において、ローカル・ルーティング・リポジトリ(515)とローカル・コード・リポジトリ(517)の中の項目はどちらも期限切れになる。ただし、ローカル・ルーティング・リポジトリ(515)内の項目は、ローカル・コード・リポジトリ(517)内の項目より遥かに速く期限切れになる。
【0052】
本発明の1つ以上の実施形態において、ディレクトリルータ(510)はコンテンツ・アイテム・キャッシュ(519)を含む。ディレクトリルータ(510)がデータ応答メッセージの意図された送信先ではない(例えば、ディレクトリルータ(510)が中間ディレクトリルータである)場合でも、データ応答メッセージを取得したら、コンテンツ・アイテム・キャッシュ(519)は、データ応答メッセージ内のコンテンツアイテムのコピーを保管できる。例えば、ディレクトリルータ(510)が同じコンテンツアイテムを含む限界数のデータ応答メッセージを取得する場合は、このコンテンツアイテムの需要が大きいことを意味し、ディレクトリルータ(510)はそのコンテンツアイテムのコピーをコンテンツ・アイテム・キャッシュ(519)に保管できる。そのような状況では、ディレクトリルータ(510)がそのコンテンツアイテムのために独自のパブリッシュメッセージを生成し転送することができ、実質的に、少なくとも一時的には、そのコンテンツアイテムのもうひとつのパブリッシャノードになる。この追加のパブリッシュメッセージは、中間ディレクトリルータのプレフィックスと、中間ディレクトリルータにとって既知である1つ以上のランドマーク・ディレクトリ・ルータのプレフィックスとを含んでよい。これは、日和見的キャッシングの一例である。
【0053】
図5Cは、本発明の1つ以上の実施形態による中間ルータ(550)を示している。中間ルータ(550)は、
図1Cを参照して上述した中間ルータ(120A、120B、120D、120E、120F、120H、120I、120J、120K、120M)のいずれかに相当してよい。
図5Cに示されているように、中間ルータ(510)は複数のリポジトリを有する。これらのリポジトリは、何らかのタイプのデータ構造(例えば、テーブル、リンクされたリスト、データベース、その他)を使用して実装されてよい。中間ルータ(550)内のリンク・コスト・リポジトリ(511)とローカル・ルーティング・リポジトリ(515)は、ディレクトリルータ(510)内のそれらと同様である。さらに、それぞれのパブリッシャノード及び/又はサブスクライバノード自体が各自のリンク・コスト・リポジトリを有してもよい。
【0054】
図6は、本発明の1つ以上の実施形態によるフローチャートを示している。
図6に示されたプロセスは、
図1Bを参照して上述したディレクトリルータのいずれか1つによって遂行されてよい。1つ以上の実施形態において、
図6に示されたステップのいずれか1つ以上は省略されてよい、繰り返されてよい、及び/又は
図6に示された順序とは異なる順序で遂行されてよい。したがって、本開示の範囲は
図6に示された具体的なステップ配列に限定されるとみなすべきではない。
【0055】
最初は、ディレクトリルータがパブリッシュメッセージを取得する(ステップ605)。このパブリッシュメッセージは、コンテンツアイテムを登録するために(すなわち、コンテンツアイテムをサブスクライバノードにとって利用可能なものにするために)パブリッシャノードによって生成されたものであり得る。上述したように、パブリッシュメッセージは、コンテンツアイテムの識別子と、パブリッシャノードの識別情報と、ことによるとパブリッシャ・ランドマーク・プレフィックス(すなわち、パブリッシュメッセージが生成されたときにパブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス)とを含む。
【0056】
ステップ610では、ディレクトリルータのローカル・ルーティング・リポジトリが更新される。ローカル・ルーティング・リポジトリを更新することは、パブリッシャノード識別情報とパブリッシュノードによってパブリッシュされているコンテンツアイテムの識別子とを抽出することと、その後、これらの抽出したデータ要素をローカル・ルーティング・リポジトリに保管することとを含んでよい。
【0057】
ステップ615では、コンテンツアイテム識別子の双方向コードが計算される。上述したように、この識別子はコンテンツアイテムの名前であってよい(例えば、dog.jpg)。加えて、又は代わりに、識別子はURLであってよく、あるいはコンテンツアイテムのディレクトリ情報を含んでよい(例えば、website.com/directory/sub-directory/newDocument.pdf)。双方向コードは識別子の1D数値であってよい。例えば、双方向コードは空間充填曲線コード(例えば、ヒルベルト空間充填曲線コード)に相当してよい。
【0058】
ステップ620では、ディレクトリルータが双方向コードの権威ディレクトリルータであるか否かが判断される。換言すると、ディレクトリルータが権威コード範囲を維持している場合は、双方向コードがそのコード範囲の範囲内であるか否かが判断される。双方向コードがディレクトリルータによって管理される権威コード範囲の範囲内であり、それゆえ、ディレクトリルータが双方向コードの権威ディレクトリルータであると判断される場合は、プロセスがステップ625へ進む。双方向コードがディレクトリルータによって管理されるコード範囲の範囲外である(又は、ディレクトリルータがどのコード範囲も管理していない)と判断される場合は、ディレクトリルータは双方向コードの権威ディレクトリルータではなく、プロセスはステップ635へ進む。ディレクトリルータによって管理されるコード範囲は、ディレクトリルータの区間リポジトリに保管されてよい。
【0059】
ステップ625では、パブリッシュメッセージに基づいてローカル・コード・リポジトリが更新される。ローカル・コード・リポジトリを更新することは、パブリッシュメッセージからパブリッシャノード識別情報と、コンテンツアイテムの識別子と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを抽出することと、これらの項目をローカル・コード・リポジトリに保管することとを含んでよい。少なくともパブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを含むデータ構造(例えば、nタプル)は、存在する場合に、コンテンツ・アイテム・プロファイルと呼ばれることがあり、コンテンツアイテム識別子と共にローカル・コード・リポジトリに保管されるのはこのデータ構造(例えば、nタプル)である。
【0060】
ステップ630では、パブリッシュACKメッセージが生成される。パブリッシュACKメッセージは、パブリッシュメッセージからのコンテンツアイテムに結び付けられた識別子とパブリッシャ・アンカ・プレフィックスとを含む。ディレクトリルータは、パブリッシャ・アンカ・プレフィックスとプレフィックスルーティングとを使用してパブリッシュACKメッセージを転送できる。具体的に述べると、ディレクトリルータは、1つ以上のディレクトリルータに至る経路と、それらのディレクトリルータのプレフィックスとを示す、リンク・コスト・リポジトリ(上述)を含む。パブリッシュACKメッセージは、パブリッシュACKメッセージ内のパブリッシュ・アンカ・プレフィックスと最もよく一致するプレフィックスを有するディレクトリルータへ転送されてよい。パブリッシュACKメッセージは、パブリッシャのアンカ・ディレクトリ・ルータ(すなわち、パブリッシャ・アンカ・プレフィックスが付いたアンカ・ディレクトリ・ルータ)に到達するまで伝送され続けてよい。
【0061】
ステップ635では、ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータであるか否かが判断される。1つ以上の実施形態において、ディレクトリルータは、自身がアンカディレクトリとして担当するパブリッシャノードのデータ構造(例えば、テーブル)を維持する。ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータではないと判断される場合は、プロセスがステップ640へ進む。ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータであると判断される場合は、プロセスがステップ645へ進む。
【0062】
パブリッシャノードのアンカ・ディレクトリ・ルータでもあると判断されたディレクトリルータはステップ645で、そのプレフィックス(すなわち、パブリッシャ・アンカ・プレフィックス)をパブリッシュメッセージに挿入する。ディレクトリルータはパブリッシュACKメッセージを生成してパブリッシャノードへ送信することもできる。
【0063】
ステップ641では、パブリッシュメッセージに基づいてローカル・コード・リポジトリが更新される。ステップ641はステップ625と基本的に同じである。ステップ640では、ディレクトリルータが区間ルーティングに基づいてパブリッシュメッセージを転送する。具体的に述べると、双方向コードを含むコード範囲がディレクトリルータに割り当てられなかった場合は、ディレクトリルータはその親ディレクトリルータへパブリッシュメッセージを転送する。ディレクトリルータが双方向コードを含むコード範囲を子ディレクトリルータにあらかじめ割り当てた場合は、ディレクトリルータはその子ディレクトリルータへパブリッシュメッセージを転送する。
【0064】
この詳細な説明の恩恵に浴する当業者なら、パブリッシュメッセージを取得するICN内の各ディレクトリルータによって
図6に示されたプロセスが実行されてよいことを理解するであろう。この詳細な説明の恩恵に浴する当業者なら、パブリッシュメッセージに基づいてアンカ・ディレクトリ・ルータ(ステップ641)と権威ディレクトリルータ(ステップ625)の両方のローカル・コード・リポジトリを更新することによって、アンカ・ディレクトリ・ルータか権威ディレクトリルータがICNから切断される場合でも、コンテンツアイテムがICNに登録された状態を保つことも理解するであろう。
【0065】
1つ以上の実施形態においては、複数のパブリッシャノードが同じ識別子を有する同じコンテンツアイテムをパブリッシュすることがある。かかる実施形態では、この識別子に対応する双方向コードの権威ディレクトリルータが複数のパブリッシュメッセージを受け取り得る。したがって、ローカル・コード・リポジトリは、1つのコンテンツアイテム識別子に対して複数のコンテンツ・アイテム・プロファイル(すなわち、複数のパブリッシャノード識別情報、複数のアンカプレフィックス、及びランドマークプレフィックスの複数セット)を有する。
【0066】
本発明の1つ以上の実施形態においては、権威ディレクトリルータでもアンカ・ディレクトリ・ルータでもないディレクトリルータ(例えば、中間ディレクトリルータ)ですら、パブリッシュメッセージに基づいて自身のローカル・コード・リポジトリを更新する(すなわち、パブリッシュメッセージの中で言及されているコンテンツアイテムについて自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルを保管する)。これは、日和見的キャッシングの一例である。例えば、ディレクトリルータは、同じコンテンツ識別子を含む限界数のパブリッシュメッセージを取得する場合に、同じコンテンツ識別子を含む将来のパブリッシュメッセージに基づいて自身のローカル・コード・リポジトリの更新を開始できる。別の一例として、ディレクトリルータは、同じコンテンツアイテムか異なるコンテンツアイテムのために同じパブリッシャノードによって生成された限界数のパブリッシュメッセージを取得する場合に、パブリッシャノードによって生成される将来のパブリッシュメッセージに基づいて自身のローカル・コード・リポジトリの更新を開始できる。これも、日和見的キャッシングの一例である。加えて、ディレクトリルータは、日和見的キャッシングをトリガする別のパターンを期待することができ、あるいは日和見的キャッシングをトリガする別のポリシを検討することができる。
【0067】
ICNの中では1つ以上のディレクトリルータが随時故障し得る、及び/又は除去され得る可能性がある。本発明の1つ以上の実施形態において、ディレクトリルータを含むルータは、定期的に、又は散発的に、HELLOメッセージをブロードキャストする。これらのHELLOメッセージは、残りのディレクトリルータ(すなわち、ICN内にまだあるディレクトリルータ)に新たなプレフィックスを割り当てるのに使用することができる。本発明の1つ以上の実施形態において、パブリッシャノードは、
図6に示されたプロセス(又は同様のプロセス)を使用して、そのコンテンツアイテムを、定期的に、又は散発的に、再パブリッシュする。コンテンツアイテムを再パブリッシュすることにより、ローカル・コード・リポジトリに保管されたコンテンツ・アイテム・プロファイル内の全てのプレフィックス(例えば、アンカ・ディレクトリ・ルータのプレフィックス、ランドマーク・ディレクトリ・ルータのプレフィックス、その他)が新たに割り当てられたプレフィックスで更新されることが保証される。
【0068】
図7は、本発明の1つ以上の実施形態によるフローチャートを示している。
図7に示されたプロセスは、
図1Bを参照して上述したディレクトリルータのいずれか1つによって遂行されてよい。1つ以上の実施形態において、
図7に示されたステップのいずれか1つ以上は省略されてよい、繰り返されてよい、及び/又は
図7に示された順序とは異なる順序で遂行されてよい。したがって、本開示の範囲は
図7に示された具体的なステップ配列に限定されるとみなすべきではない。
図7の1つ以上のステップは、
図6に示されたプロセスが実行された後に遂行されてもよい。
【0069】
最初は、ルックアップメッセージが取得される(ステップ705)。ルックアップメッセージは、コンテンツアイテムを求めているサブスクライバノードによって生成されてよい。ルックアップメッセージは、サブスクライバノードの識別情報と、サブスクライバ・アンカ・プレフィックス(すなわち、サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス)と、コンテンツアイテムの識別子とを含んでよい。
【0070】
ステップ715では、識別子の双方向コードが計算される。双方向コードは識別子の1D数値であってよい。例えば、双方向コードは空間充填曲線コード(例えば、ヒルベルト空間充填曲線コード)に相当してよい。
【0071】
ステップ720では、ディレクトリルータが双方向コードの権威ディレクトリルータであるか否かが判断される。換言すると、ディレクトリルータがコード範囲を維持している場合は、双方向コードがそのコード範囲の範囲内であるか否かが判断される。双方向コードがディレクトリルータによって管理されるコード範囲の範囲内であり、それゆえ、ディレクトリルータが双方向コードの権威ディレクトリルータであると判断される場合は、プロセスがステップ730へ進む。双方向コードがディレクトリルータによって管理されるコード範囲の範囲外である(又は、ディレクトリルータがどのコード範囲も管理していない)と判断される場合は、ディレクトリルータは双方向コードの権威ディレクトリルータではなく、プロセスはステップ725へ進む。ディレクトリルータによって管理されるコード範囲は、ディレクトリルータの区間リポジトリに保管されてよい。
【0072】
ステップ725では、コンテンツアイテムの識別子がディレクトリルータのローカル・コード・リポジトリに入っているか否かが判断される。例えば、ディレクトリルータがコンテンツアイテムをパブリッシュしたパブリッシャノードのアンカディレクトリであるなら、コンテンツアイテム識別子がローカル・コード・リポジトリに入っている見込みがある(
図6のステップ641を参照して上述)。ローカル・コード・リポジトリがコンテンツアイテム識別子を含んでいると判断される場合は、プロセスがステップ730へ進む。ローカル・コード・リポジトリがコンテンツアイテム識別子を含んでいないと判断される場合は、プロセスがステップ740へ進む。
【0073】
ステップ730では、コンテンツアイテム識別子に対応する1つ以上のコンテンツ・アイテム・プロファイルがローカル・コード・リポジトリから取り出される。それぞれのコンテンツ・アイテム・プロファイルは、存在する場合は、少なくともコンテンツアイテムのパブリッシャノードの識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを含むnタプル(又は他のデータ構造)であってよい。
【0074】
ステップ735では、ルックアップ応答メッセージが生成される。ルックアップ応答メッセージは、ルックアップメッセージから抽出されたコンテンツアイテム識別子とサブスクライバ・アンカ・プレフィックスとを含んでよい。ルックアップ応答メッセージは、ローカル・コード・リポジトリから取り出された1つ以上のコンテンツ・アイテム・プロファイルも含む。ディレクトリルータは、サブスクライバ・アンカ・プレフィックスとプレフィックスルーティングに基づいてルックアップ応答メッセージを転送する。具体的に述べると、ディレクトリルータは、1つ以上のディレクトリルータに至る経路と、それらのディレクトリルータのプレフィックスとを示す、上述のリンク・コスト・リポジトリを含む。ルックアップ応答メッセージは、サブスクライバ・アンカ・プレフィックスと最もよく一致するプレフィックスを有するディレクトリルータへ転送されてよい。ルックアップ応答メッセージは、サブスクライバのアンカ・ディレクトリ・ルータ(すなわち、サブスクライバ・アンカ・プレフィックスが付いたアンカ・ディレクトリ・ルータ)及び/又はサブスクライバノードそのものに到達するまで伝送され続けてよい。
【0075】
ステップ740では、ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータであるか否かが判断される。1つ以上の実施形態において、ディレクトリルータは、自身がアンカディレクトリとして担当するサブスクライバノードのデータ構造(例えば、テーブル)を維持する。ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータではないと判断される場合は、プロセスがステップ750へ進む。ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータであると判断される場合は、プロセスがステップ645へ進む。
【0076】
サブスクライバノードのアンカ・ディレクトリ・ルータであると判断されたディレクトリルータはステップ745で、そのプレフィックス(すなわち、サブスクライバ・アンカ・プレフィックス)をルックアップメッセージに挿入する。
【0077】
ステップ750では、ディレクトリルータが識別子の双方向コードと区間ルーティングに基づいてルックアップメッセージを転送する。具体的に述べると、双方向コードを含むコード範囲がディレクトリルータに割り当てられなかった場合は、ディレクトリルータはその親ディレクトリルータへルックアップメッセージを転送する。ディレクトリルータが双方向コードを含むコード範囲を子ディレクトリルータにあらかじめ割り当てた場合は、ディレクトリルータはその子ディレクトリルータへルックアップメッセージを転送する。
【0078】
本発明の1つ以上の実施形態において、ルックアップ応答メッセージは、サブスクライバノードに向かってICNの中を通行するときに、1つ以上の中間ディレクトリルータを通過することがある。ルックアップ応答メッセージを取得したこれらの中間ディレクトリルータのいずれか1つ以上は、ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータではない場合でも、ルックアップ応答メッセージからコンテンツ・アイテム・プロファイルのコピーを保管できる。例えば、中間ディレクトリルータが同じコンテンツアイテムに関連する限界数のルックアップメッセージ又はルックアップ応答メッセージを取得する場合は、このコンテンツアイテムの需要が大きいことを意味し、中間ディレクトリルータは自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルのコピーを保管できる。そのような状況では、中間ディレクトリルータは先々取得するコンテンツアイテムのルックアップメッセージに応答でき(すなわち、ルックアップ応答メッセージを生成でき)、コンテンツアイテムに関わる権威ディレクトリルータの負担が軽減し、権威ディレクトリルータに対するサービス妨害攻撃が成功する見込みが低下する。これも、日和見的キャッシングの一例である。
【0079】
図8は、本発明の1つ以上の実施形態による一例を示している。
図8は、サブスクライバノード2(185B)をも含む点を除いて、
図1Cと基本的に同じである。
【0080】
この例で、ディレクトリルータN(110N)はパブリッシャノード1(105A)のアンカ・ディレクトリ・ルータであり、ディレクトリルータC(110C)はサブスクライバノード1(185A)のアンカ・ディレクトリ・ルータであり、ディレクトリルータQ(110Q)はサブスクライバノード2(185B)のアンカ・ディレクトリ・ルータである。この例ではまた、パブリッシャノード1(105A)が識別子「game.mpep」を有するビデオクリップ(199)をパブリッシュすることを望んでおり、ディレクトリルータG(110G)は、「game.mpeg」の双方向コードを含むコード範囲の権威ディレクトリルータである。
【0081】
最初は、パブリッシャノード1(105A)がビデオクリップのためにパブリッシュメッセージを生成し、自身のアンカ・ディレクトリ・ルータ(すなわち、ディレクトリルータN(110N))へパブリッシュメッセージを転送する。このパブリッシュメッセージは、識別子「game.mpeg」とパブリッシャノードの識別情報「1」とを含んでいる。ディレクトリルータN(110N)は、自身のアンカプレフィックス「011」をパブリッシュメッセージに挿入する。ディレクトリルータN(110N)はまた、「game.mpeg」の双方向コードを計算する。その後は区間ルーティングにより、識別子「game.mpeg」の双方向コードの権威ディレクトリルータ(すなわち、ディレクトリルータG(110G))へパブリッシュメッセージが伝送される。(区間ルーティングの一部として)パブリッシュメッセージがとるルートは、ルータN-K-J-L-C-B-D-Gである。区間ルーティングを遂行するため、このルート沿いでディレクトリルータL(110L)とディレクトリルータC(110C)も識別子「game.mpeg」の双方向コードを計算する。
【0082】
権威ディレクトリルータ(ディレクトリルータG(110G))は、パブリッシャ・アンカ・プレフィックス「011」とパブリッシャ識別情報「0」とを含むコンテンツ・アイテム・プロファイルを生成する。権威ディレクトリルータはまた、自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルをコンテンツ識別子「game.mpeg」と共に保管する。さらに、権威ディレクトリルータはまた、パブリッシュメッセージとコンテンツ識別子からパブリッシャ・アンカ・プレフィックス「011」を含むパブリッシュACKメッセージを生成する。このパブリッシュACKメッセージは、「011」のプレフィックスルーティングに基づいてパブリッシャ・アンカ・ディレクトリ・ルータ(すなわち、ディレクトリルータN(110N))へ送り返される。(プレフィックスルーティングの一部として)パブリッシュACKメッセージがとるルートは、ルータG-D-B-C-L-J-K-Nである。
【0083】
将来のある時点に、サブスクライバノード1(185A)は識別子「game.mpeg」を有するビデオクリップを消費することを望む。したがって、サブスクライバノード1(185A)は、識別子「game.mpep」とサブスクライバノード識別情報「1」とを含むルックアップ要求を生成し、このルックアップ要求を自身のアンカ・ディレクトリ・ルータ(すなわち、ディレクトリルータC(110C))へ転送する。ディレクトリルータC(110C)は自身のアンカプレフィックス「0」をルックアップメッセージに挿入する。ディレクトリルータC(110C)はまた、「game.mpeg」の双方向コードを計算し、その後は区間ルーティングにより、識別子「game.mpeg」の双方向コードの権威ディレクトリルータ(すなわち、ディレクトリルータG(110G))へルックアップメッセージが伝送される。(区間ルーティングの一部として)ルックアップメッセージがとるルートは、ルータC-B-D-Gである。
【0084】
ルックアップメッセージを受信した権威ディレクトリルータ(ディレクトリルータG(110G))は、ルックアップメッセージ内のコンテンツ識別子「game.mpeg」に基づいて、対応するコンテンツ・アイテム・プロファイルを自身のローカル・コード・リポジトリから取り出す。上述したように、このコンテンツ・アイテム・プロファイルは、パブリッシャ識別情報「1」とパブリッシャ・アンカ・プレフィックス「011」とを含んでいる。さらに、権威ディレクトリルータ(すなわち、ディレクトリルータG(110G))は、パブリッシャ・アンカ・プレフィックス「011」と、パブリッシャ識別情報「1」と、ルックアップメッセージからのサブスクライバ・アンカ・プレフィックス「0」と、同じくルックアップメッセージからのサブスクライバ識別情報「1」とを含むルックアップ応答メッセージを生成する。このルックアップ応答メッセージは、プレフィックスルーティングとサブスクライバプレフィックス「0」を使用してディレクトリルータC(110C)へ送り返され、ディレクトリルータC(110C)はこれをサブスクライバノード1(185A)へ転送する。(区間ルーティングの一部として)ルックアップ応答メッセージがとるルートは、ルータG-D-B-Cである。
【0085】
ルックアップ要求メッセージを受信したサブスクライバノード1(185A)は、データ要求メッセージを生成する。このデータ要求メッセージは、サブスクライバ・アンカ・プレフィックス「0」と、サブスクライバ識別情報「1」と、(ルックアップ応答メッセージからの)パブリッシャ・アンカ・プレフィックス「011」と、(ルックアップ応答メッセージからの)パブリッシャ識別情報「1」とを含んでいる。データ要求メッセージは、プレフィックスルーティングとパブリッシャ・アンカ・プレフィックス「011」とを使用して伝送される。パブリッシャ・アンカ・ディレクトリ(すなわち、ディレクトリルータN(110N))に向かって中間ルータK(120K)に到達したデータ要求メッセージは、(パブリッシャ・アンカ・ディレクトリを迂回して)中間ルータK(120K)からパブリッシャノード1(105A)へ直接転送されてよい。(区間ルーティングの一部として)データ要求メッセージがとるルートは、ルータC-L-J-Kであり、その後パブリッシャノード1である。
【0086】
データ要求メッセージを受信したパブリッシャノード1(105A)は、データ応答メッセージを生成する。このデータ応答メッセージはデータ要求メッセージと同様であり、ただし、このデータ応答メッセージはビデオクリップをも含んでいる。データ要求メッセージは、プレフィックスルーティングとサブスクライバ・アンカ・プレフィックス「0」とを使用して伝送される。受信したディレクトリルータC(110C)は、データ応答メッセージを、又は少なくともビデオクリップを、消費(例えば、表示)のため、サブスクライバノード1(185A)へ転送する。
【0087】
パブリッシュメッセージは、ディレクトリルータG(110G)へ進んでいたときに、ディレクトリルータL(110L)を通過した。ディレクトリルータL(110L)は、パブリッシュメッセージに基づいてコンテンツ・アイテム・プロファイルを生成し、そのコンテンツ・アイテム・プロファイルと識別子「game.mpeg」を自身のローカル・コード・リポジトリに保管した可能性がある。しかし、パブリッシュメッセージは引き続きディレクトリルータG(110G)へ進んだ。
【0088】
将来のある時点に、サブスクライバノード2(185B)は識別子「game.mpeg」を有するビデオクリップを消費することを望む。したがって、サブスクライバノード2(185B)は、識別子「game.mpep」とサブスクライバノード識別情報「2」とを含むルックアップ要求を生成し、このルックアップ要求を自身のアンカ・ディレクトリ・ルータ(すなわち、ディレクトリルータQ(110Q))へ転送する。ディレクトリルータQ(110Q)は自身のアンカプレフィックス「010」をルックアップメッセージに挿入する。ディレクトリルータC(110C)はまた、「game.mpeg」の双方向コードを計算し、その後は区間ルーティングにより、識別子「game.mpeg」の双方向コードの権威ディレクトリルータ(すなわち、ディレクトリルータG(110G))へルックアップメッセージが伝送される。
【0089】
区間ルーティングの一部として、ルックアップメッセージはディレクトリルータL(110L)を通過する。ディレクトリルータL(110L)は、「game.mpeg」に対応する双方向コードの権威ディレクトリルータではないが、パブリッシュメッセージが発行されたときから、「game.mpeg」のコンテンツ・アイテム・プロファイルを所持している。したがって、ディレクトリルータL(110L)は、サブスクライバノード2(185B)からのルックアップメッセージにルックアップ応答メッセージで応答できる。このルックアップ応答メッセージは、パブリッシャ・アンカ・プレフィックス「011」と、パブリッシャ識別情報「1」と、ルックアップメッセージからのサブスクライバ・アンカ・プレフィックス「010」と、同じくルックアップメッセージからのサブスクライバ識別情報「2」とを含んでいる。このルックアップ応答メッセージは、プレフィックスルーティングとサブスクライバプレフィックス「010」を使用してディレクトリルータQ(110Q)へ送り返され、ディレクトリルータQ(110Q)はこれをサブスクライバノード2(185A)へ転送する。
【0090】
ルックアップ要求メッセージを受信したサブスクライバノード2(185B)は、データ要求メッセージを生成する。このデータ要求メッセージは、サブスクライバ・アンカ・プレフィックス「010」と、サブスクライバ識別情報「2」と、(ルックアップ応答メッセージからの)パブリッシャ・アンカ・プレフィックス「011」と、(ルックアップ応答メッセージからの)パブリッシャ識別情報「1」とを含んでいる。サブスクライバノード2(185B)がディレクトリルータL(110L)を認識し、それゆえ、ディレクトリルータL(110L)をランドマークディレクトリとみなすと仮定する。したがって、データ要求メッセージはランドマークプレフィックス「01」(すなわち、ランドマーク・ディレクトリ・ルータ(110L)のプレフィックス)をも含むことになる。
【0091】
データ要求メッセージは、プレフィックスルーティングとパブリッシャ・アンカ・プレフィックス「011」とを使用して伝送される。パブリッシャ・アンカ・ディレクトリ(すなわち、ディレクトリルータN(110N))に向かって中間ルータK(120K)に到達したデータ要求メッセージは、(パブリッシャ・アンカ・ディレクトリを迂回して)中間ルータK(120K)からパブリッシャノード1(105A)へ直接転送されてよい。
【0092】
データ要求メッセージを受信したパブリッシャノード1(105A)は、データ応答メッセージを生成する。このデータ応答メッセージはデータ要求メッセージと同様であり(なおかつパブリッシャ・ランドマーク・プレフィックス「01」を含んでおり)、ただし、このデータ応答メッセージはビデオクリップをも含んでいる。データ要求メッセージは、プレフィックスルーティングとパブリッシャ・ランドマーク・プレフィックス「01」とを使用して伝送される。受信したディレクトリルータL(110L)は、データ応答メッセージを、又は少なくともビデオクリップを、消費(例えば、表示)のため、サブスクライバノード2(185B)へ転送し、サブスクライバ・アンカ・ディレクトリ(すなわち、ディレクトリルータQ(110Q))を迂回する。
【0093】
本開示の実施形態は計算システム上に実装されてよい。モバイル、デスクトップ、サーバ、ルータ、スイッチ、組み込み型機器、又は他種ハードウェアからなる任意の組み合わせが使用されてよい。例えば、
図9に示されているように、計算システム(900)は、1つ以上のコンピュータプロセッサ(902)と、非永続型ストレージ(904)(例えば、ランダム・アクセス・メモリ(RAM)、キャッシュメモリなどの揮発性メモリ)、永続型ストレージ(906)(例えば、ハードディスク、コンパクトディスク(CD)ドライブやデジタル多用途ディスク(DVD)ドライブなどの光学式ドライブ、フラッシュメモリ、その他)と、通信インターフェイス(912)(例えば、Bluetooth(登録商標)インターフェイス、赤外線インターフェイス、ネットワークインターフェイス、光学式インターフェイス、その他)と、多数のその他要素及び機能とを含んでよい。
【0094】
コンピュータプロセッサ(902)は、命令を処理する集積回路であってよい。例えば、コンピュータプロセッサはプロセッサの1つ以上のコア又はマイクロコアであってよい。計算システム(900)はまた、タッチスクリーン、キーボード、マウス、マイクロフォン、タッチパッド、電子ペン、又は他の何らかのタイプの入力機器など、1つ以上の入力機器(910)を含んでよい。
【0095】
通信インターフェイス(912)は、ネットワーク(図示せず)(例えば、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、携帯電話網、又は他の何らかのタイプのネットワーク)、及び/又は別の計算機器などの別の機器へ、計算システム(900)を接続する集積回路を含んでよい。
【0096】
さらに、計算システム(900)は、画面(例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、タッチスクリーン、ブラウン管(CRT)モニタ、プロジェクタ、又は他の表示機器)、プリンタ、外部ストレージ、又は他の何らかの出力機器など、1つ以上の出力機器(908)を含んでよい。出力機器のいずれか1つ以上は、入力機器と同じであってよく、あるいは入力機器と異なってもよい。入力機器と出力機器は、コンピュータプロセッサ(902)、非永続型ストレージ(904)、及び永続型ストレージ(906)へローカル接続されてよく、あるいはリモート接続されてよい。タイプの異なる計算システムが数多く存在しており、前述した入力機器と出力機器は別の形態をとる場合がある。
【0097】
本開示の実施形態を遂行するコンピュータ可読プログラムコードの形をとるソフトウェア命令は、その全体又は一部が、CD、DVD、ストレージ機器、ディスケット、テープ、フラッシュメモリ、物理的メモリ、又は他の何らかのコンピュータ可読ストレージ媒体などの非一時的なコンピュータ可読媒体に、一時的に、又は永久的に、保管されてよい。具体的に述べると、ソフトウェア命令は、プロセッサによって実行されたときに、本開示の1つ以上の実施形態を遂行するように構成されたコンピュータ可読プログラムコードに相当してよい。
【0098】
このように、本明細書に記載された実施形態と例は、様々な実施形態とその具体的応用を十分に説明することで、当業者が実施形態を製作し運用できるようにするために提示されたものである。ただし、当業者なら、前述した説明と例が専ら解説と例の目的のために提示されていることを認めるであろう。記載された説明は、網羅的になることを、あるいは開示されているとおりの形態に限定することを、意図していない。
【0099】
多数の実施形態を説明してきたが、本開示の恩恵に浴する当業者なら、範囲から逸脱せずに別の実施形態を考案できることを理解するであろう。したがって、本開示の範囲は添付の特許請求の範囲によってのみ制限されるものとする。