(57)【要約】      （修正有）【課題】ネットワーク上で送信されるコンテンツ指向型ネットワーク（ＣＣＮ）メッセージと関連付けられる、エラー状況情報の処理を容易にする、システムを提供する。【解決手段】動作中、システムは、第１のノードにより、ＣＣＮメッセージに対応するパケットを受信する。ここでＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である。ＣＣＮメッセージがエラー状況を引き起こすと判定するのに応答して、システムは、データ構造をＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成する。ここでデータ構造はエラー状況を示す。システムは、インタレストリターンメッセージを第２のノードへ送信する。【選択図】図２
2016025658.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実現されるパケットを転送する方法であって、前記方法は、
第１のノードにより、コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケットを受信することであって、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、受信することと、
前記ＣＣＮメッセージがエラー状況を引き起こすと判定するのに応答して、データ構造を前記ＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成することであって、前記データ構造は前記エラー状況を示す、生成することと、    前記インタレストリターンメッセージを第２のノードへ送信し、
それにより、ネットワーク上で送信されるＣＣＮメッセージと関連付けられる、エラー状況情報の処理が容易になることと、
を備える、方法。
【請求項２】
パケットの転送を容易にするコンピュータシステムであって、前記システムは、
プロセッサと、
前記プロセッサにより実行されると、前記プロセッサに方法を行わせる命令を保存する保存デバイスであって、前記方法は、
第１のノードにより、コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケットを受信することであって、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、受信することと、
前記ＣＣＮメッセージがエラー状況を引き起こすと判定するのに応答して、データ構造を前記ＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成することであって、前記データ構造は前記エラー状況を示す、生成することと      前記インタレストリターンメッセージを第２のノードへ送信し、
それにより、ネットワーク上で送信されるＣＣＮメッセージと関連付けられる、エラー状況情報の処理が容易になることと、
を備える、保存デバイスと、
を備える、コンピュータシステム。
【請求項３】
前記ＣＣＮメッセージはインタレストメッセージである、請求項２に記載のコンピュータシステム。
【請求項４】
前記方法は、
前記第２のノードにより、前記インタレストリターンメッセージを受信することと、
保留インタレストテーブル（ＰＩＴ）が前記インタレストリターンメッセージの一部として受信される前記インタレストメッセージに対応するエントリを包含するか、判定することと、
前記ＰＩＴが前記対応するエントリを包含すると判定することに応答して、
前記対応するエントリを前記ＰＩＴから削除することと、
前記インタレストリターンメッセージを逆経路上に前記インタレストとして転送することと、
をさらに備える、請求項３に記載のコンピュータシステム。
【請求項５】
ＰＩＴが前記インタレストリターンメッセージの一部として受信される前記インタレストメッセージに対応するエントリを包含するか、判定することは、前記インタレストメッセージの前記ＨＳＶＬＩに基づく、請求項４に記載のコンピュータシステム。
【請求項６】
前記方法は、
前記第２のノードにより、前記インタレストリターンメッセージを受信することと、
保留インタレストテーブル（ＰＩＴ）が前記インタレストリターンメッセージの一部として受信される前記インタレストメッセージに対応するエントリを包含するか、判定することと、
前記ＰＩＴが前記対応するエントリを包含すると判定することに応答して、前記インタレストの代替的な転送経路が存在するか判定することと、
代替的な転送経路が存在すると判定することに応答して、
前記インタレストメッセージを、前記代替的な転送経路に基づいて、次ホップノードへ転送することと、
前記インタレストリターンメッセージを破棄することと、
をさらに備える、請求項３に記載のコンピュータシステム。
【請求項７】
前記エラー状況は、
前記ＣＣＮメッセージの前記名前に対応する利用可能な転送ルートなしと、
前記インタレストリターンメッセージの一部として受信される前記ＣＣＮメッセージに対応する、保留インタレストテーブル（ＰＩＴ）の有効期限切れと、
不特定の拒絶理由と、
最大送信単位（ＭＴＵ）が所定の最小ＭＴＵより大きい、ＣＣＮメッセージと、
のうちの１つ以上と関連付けられる、請求項２に記載のコンピュータシステム。
【請求項８】
前記データ構造は、
前記メッセージがインタレストリターンメッセージと関連付けられていることを示す新規固定ヘッダであって、前記新規固定ヘッダは、前記ＣＣＮメッセージのペイロードフィールドの長さを含む、新規固定ヘッダと、
前記インタレストリターンメッセージの理由を示す、インタレストリターンヘッダと、
当初の固定ヘッダおよび前記ＣＣＮメッセージの１つ以上の選択的ヘッダを示す、カプセル化ヘッダであって、前記カプセル化ヘッダは、前記ＣＣＮメッセージの前記ヘッダフィールドの前記長さを含む、カプセル化ヘッダと、
を備える、請求項２に記載のコンピュータシステム。
【請求項９】
前記方法は、
前記インタレストリターンメッセージの認証符号を生成することであって、前記認証符号は、前記インタレストリターンメッセージの１つ以上のフィールド、および、前記第１のノードおよび前記第２のノードにより事前に合意された共有秘密鍵、に基づく、生成することと、
前記インタレストリターンメッセージを前記第２のノードへ送信する際、前記認証符号を前記先頭に追加されるデータ構造の一部として含むことと、
をさらに備える、請求項２に記載のコンピュータシステム。
【請求項１０】
コンピュータにより実行されると前記コンピュータに方法を行わせる命令を保存する、持続性コンピュータ可読保存媒体であって、前記方法は、
第１のノードにより、コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケットを受信することであって、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、受信することと、
前記ＣＣＮメッセージがエラー状況を引き起こすと判定するのに応答して、データ構造を前記ＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成することであって、前記データ構造は前記エラー状況を示す、生成することと、
前記インタレストリターンメッセージを第２のノードへ送信し、
それにより、ネットワーク上で送信されるＣＣＮメッセージと関連付けられる、エラー状況情報の処理が容易になることと、
を備える、持続性コンピュータ可読保存媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、デジタルコンテンツの配信に関する。より詳細には、本開示は、ＣＣＮインタレストを前ホップへ戻して、インタレストと関連付けられるエラー状況情報の処理を容易にすることに関する。
【背景技術】
【０００２】
インターネットおよび電子商取引の普及により、大量のデジタルコンテンツが作成され続けている。コンテンツ指向型ネットワーク（ＣＣＮ）アーキテクチャは、そのようなデジタルコンテンツへのアクセス、および、デジタルコンテンツの処理を、容易にするよう設計されてきた。ＣＣＮは、ネットワーククライアント、転送者（例えば、ルータ）、およびコンテンツ製作者などのエンティティ、またはノードを含み、これらは様々なコンテンツ項目の「インタレスト」パケットを送信し、引き換えに「コンテンツオブジェクト」パケットを受信することにより、相互に通信を行う。ＣＣＮインタレストおよびコンテンツオブジェクトは、典型的には、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、一意的な名前により識別される。ＨＳＶＬＩは、最も一般的なレベルから最も特定的なレベルへ順序付けされた、連続的な名前コンポーネントを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
インタレストを受信するＣＣＮノードは、インタレストの処理中にエラーに直面する場合がある。そのようなエラーは、ＨＳＶＬＩまたは管理上の禁止令に基づいて、インタレストを転送するのに利用可能なルートがないことを含み得る。そのようなエラーに直面する、転送者などのネットワークエンティティは、典型的には、送信ＣＣＮノードへエラーを通知することができない。そのため、受信ＣＣＮノードは、送信ノードまたはインタレストの逆ルーティング経路における任意の他のノードへインタレストを通知することなしに、インタレストを廃棄する可能性があるため、ネットワークの非効率性が生じる。
【課題を解決するための手段】
【０００４】
１つの実施形態は、ネットワーク上で送信されるコンテンツ指向型ネットワーク（ＣＣＮ）メッセージと関連付けられる、エラー状況情報の処理を容易にするシステムを提供する。動作中、システムは、第１のノードにより、ＣＣＮメッセージに対応するパケットを受信し、ここでＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である。ＣＣＮメッセージがエラー状況を引き起こしたと判定するのに応答して、システムは、データ構造をＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成し、ここでデータ構造はエラー状況を示す。システムは、インタレストリターンメッセージを第２のノードへ送信する。
【０００５】
一部の実施形態において、ＣＣＮメッセージは、インタレストメッセージである。
【０００６】
一部の実施形態において、システムは、第２のノードにより、インタレストリターンメッセージを受信し、保留インタレストテーブル（ＰＩＴ）が、インタレストリターンメッセージの一部として受信されたインタレストメッセージに対応するエントリを包含するか判定する。ＰＩＴが対応するエントリを包含すると判定するのに応答して、システムは、対応するエントリをＰＩＴから削除し、インタレストリターンメッセージを逆経路上にインタレストとして転送する。
【０００７】
一部の実施形態において、ＰＩＴがインタレストリターンメッセージの一部として受信されるインタレストメッセージに対応するエントリを包含するか、判定することは、インタレストメッセージのＨＳＶＬＩに基づく。
【０００８】
一部の実施形態において、システムは、第２のノードにより、インタレストリターンメッセージを受信し、保留インタレストテーブル（ＰＩＴ）が、インタレストリターンメッセージの一部として受信したインタレストメッセージに対応するエントリを包含するか判定する。ＰＩＴが対応するエントリを包含すると判定するのに応答して、システムは、インタレストの代替的な転送経路が存在するか判定する。代替的な転送経路が存在すると判定するのに応答して、システムは、インタレストメッセージを次ホップノードへ、代替的な転送経路に基づいて転送し、インタレストリターンメッセージを破棄する。
【０００９】
一部の実施形態において、エラー状況は、以下のうちの１つ以上と関連付けられる：ＣＣＮメッセージの名前に対応する利用可能な転送ルートなし；インタレストリターンメッセージの一部として受信されるＣＣＮメッセージに対応する保留インタレストテーブル（ＰＩＴ）エントリの有効期限切れ；不特定の拒絶理由；および、最大送信単位（ＭＴＵ）が所定の最小ＭＴＵより大きいＣＣＮメッセージ。
【００１０】
一部の実施形態において、データ構造は以下を備える：メッセージがインタレストリターンメッセージと関連付けられていることを示す新規固定ヘッダであって、新規固定ヘッダは、ＣＣＮメッセージのペイロードフィールドの長さを含む、新規固定ヘッダ；インタレストリターンメッセージの理由を示す、インタレストリターンヘッダ；および、当初の固定ヘッダおよびＣＣＮメッセージの１つ以上の選択的ヘッダを示す、カプセル化ヘッダであって、カプセル化ヘッダは、ＣＣＮメッセージのヘッダフィールドの長さを含む、カプセル化ヘッダ。
【００１１】
一部の実施形態において、システムは、インタレストリターンメッセージの認証符号を生成し、ここで認証符号は、インタレストリターンメッセージの１つ以上のフィールド、および、第１のノードおよび第２のノードにより事前に合意された共有の秘密鍵に基づいている。システムは、インタレストリターンメッセージを第２のノードへ送信する際、認証符号を、先頭に追加されたデータ構造の一部として含む。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施形態にしたがって、ネットワーク上で送信されるインタレストメッセージと関連付けられるエラー状況情報の処理を容易にする、例示的なネットワークを図示する。
【図２】図２は、本発明の実施形態にしたがって、インタレストリターンメッセージを生成および送信することにより、エラー状況を引き起こすインタレストパケットを処理する方法を図示するフローチャートを提示する。
【図３】図３は、本発明の実施形態にしたがって、インタレストリターンメッセージを受信および処理する方法を図示するフローチャートを提示する。
【図４】図４は、本発明の実施形態にしたがって、インタレストリターンメッセージを生成、認証、および送信する方法を図示するフローチャートを提示する。
【図５】図５は、本発明の実施形態にしたがって、インタレストリターンメッセージを受信および認証する方法を図示するフローチャートを提示する。
【図６Ａ】図６Ａは、本発明の実施形態にしたがって、ＣＣＮインタレストメッセージおよび対応するＣＣＮインタレストリターンメッセージの例示的な形式を図示する。
【図６Ｂ】図６Ｂは、本発明の実施形態にしたがって、例示的なＣＣＮインタレストメッセージおよび対応するＣＣＮインタレストリターンメッセージを図示する。
【図７】図７は、本発明の実施形態にしたがって、インタレストリターン認証符号を含むＣＣＮインタレストリターンメッセージの例示的な形式を図示する。
【図８】図８は、本発明の実施形態にしたがって、ネットワーク上で送信されるインタレストメッセージと関連付けられるエラー状況の処理を容易にする、例示的なコンピュータおよび通信システムを図示する。
【発明を実施するための形態】
【００１３】
図において、同様の参照番号は同様の図要素を指す。
【００１４】
以下の説明は、当業者により実施形態が作成および使用可能となるよう提示され、特定の用途および要件において提供される。開示される実施形態に対する様々な修正が、当業者に容易に明らかになり、本明細書において定義される一般的な原理は、本開示の精神および範囲から逸脱せずに、他の実施形態および用途に適用されてよい。したがって、本発明は、示される実施形態に限定されるものではなく、本明細書において開示される原理および特徴と一致する最も広い範囲に合致する。
【００１５】
本発明の実施形態は、インタレストメッセージなど、ネットワーク上で送信されるコンテンツ指向型ネットワーク（ＣＣＮ）メッセージと関連付けられる、エラー状況情報の処理を容易にするシステムを提供する。動作中、第１のＣＣＮノードはインタレストメッセージを受信し、インタレストの処理中にエラー状況を検出する。エラー状況は、以下を含み得る：インタレストの名前への利用可能なルートなし；保留インタレストテーブル（ＰＩＴ）におけるエントリの期限切れ；インタレストの最大送信単位（ＭＴＵ）が要求される最小値に不適合；および、例えば、内部の容量制限、ポリシー設定、および管理上の禁止令に基づき得る、他の拒絶。エラー状況が発生するＣＣＮノードは、データ構造を当初のインタレストメッセージの先頭に追加することにより、インタレストリターンメッセージ（一般的に、制御メッセージとも称される）を作成し、当初のインタレストメッセージを残しておく。先頭に追加されたデータ構造は、エラー状況および追加ヘッダを含む。一部の実施形態において、データ構造は、インタレストリターンメッセージを作成または転送する各ノードにより生成される、インタレストリターン認証符号を含む。その後、ＣＣＮノードは、先頭に追加されたデータ構造および当初のインタレストメッセージを含む、インタレストリターンメッセージを、インタレストが以前に進んだ逆経路上に転送する。
【００１６】
上流のＣＣＮノードは、インタレストリターンメッセージを受信し、先頭に追加されたデータ構造に含まれるエラー状況に基づいて、インタレストリターンメッセージを処理する。例えば、エラー状況が、インタレストのルートがないことを示す場合、上流のＣＣＮノードは、対応するエントリがＰＩＴに存在すると判定し得る。代替の転送経路が存在する場合、上流のＣＣＮノードは代替の転送経路上にインタレストを転送し、インタレストリターンメッセージを破棄し得る。代替の転送経路がない場合、上流のＣＣＮノードはＰＩＴエントリを削除して、インタレストリターンメッセージを、インタレストの逆データ経路における前ホップへ転送し得る。インタレストリターンメッセージが認証符号を含む場合、上流のＣＣＮノードは、インタレストリターンメッセージを処理する前に、パケットを認証し得る。
【００１７】
以下の用語が、ＣＣＮアーキテクチャを説明するために使用される：
【００１８】
コンテンツオブジェクト：一意的な名前でなければならない、単一の名付けられたデータ。コンテンツオブジェクトは「永続的」であり、これは、コンテンツオブジェクトが、計算デバイス内部、または、異なる計算デバイスにわたって移動し得るが、変化しないことを意味する。コンテンツオブジェクトの任意のコンポーネントが変化すると、変化が起きたエンティティは、更新されたコンテンツを含む新規のコンテンツオブジェクトを作成し、新規のコンテンツオブジェクトを新規の一意的な名前と結び付ける。
【００１９】
一意的な名前：ＣＣＮにおける名前は、典型的には、場所に依存せず、独自にコンテンツオブジェクトを識別する。データ転送デバイスは、名前または名前プレフィックスを使用して、コンテンツオブジェクトを生成または保存するネットワークノードへ向けて、コンテンツオブジェクトのネットワークアドレスまたは物理的な場所に関係なく、パケットを転送し得る。一部の実施形態において、名前は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であってよい。ＨＳＶＬＩは、様々な手法で構造化され得る、いくつかの階層的なコンポーネントに分割され得る。例えば、個々の名前コンポーネントｐａｒｃ、ｈｏｍｅ、ｃｃｎ、およびｔｅｓｔ．ｔｘｔは、左向き上位プレフィックスの形式で構造化され、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成し得る。したがって、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」または「プレフィックス」であり得る。追加コンポーネントは、共同文書など、コンテンツ項目の異なるバージョンを区別するために使用され得る。
【００２０】
一部の実施形態において、名前は、コンテンツオブジェクトのデータ（例えば、チェックサム値）および／またはコンテンツオブジェクトの名前の要素から生じる、ハッシュ値など、非階層的識別子を含み得る。ハッシュベースの名前の説明は、米国特許出願第１３／８４７，８１４号に記載されている。
【００２１】
さらに、名前は平形ラベルであり得る。以降、「名前」は、構造的な名前または名前プレフィックス、平形の名前、固定長の名前、任意の長さの名前、またはラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名前データネットワークにおけるデータの任意の名前を指すために使用される。
【００２２】
インタレスト：データの要求を示し、データの名前（または、名前プレフィックス）を含む、パケット。データ利用者は、ＣＣＮルータが、保存デバイス（例えば、キャッシュサーバ）、または、要求データを提供し得るデータ制作者に向けて、要求またはインタレストを満たすために伝え得る、情報指向型ネットワークを通じて、要求またはインタレストを発信し得る。
【００２３】
本明細書において開示される方法は、ＣＣＮネットワークに限定されず、他のアーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの説明は、米国特許出願第１２／３３８，１７５号に記載されている。
【００２４】
図１は、本発明の実施形態にしたがって、ネットワーク上で送信されるインタレストメッセージと関連付けられるエラー状況情報の処理を容易にする、例示的なネットワーク１００を図示する。ネットワーク１００は、クライアントデバイス１１６、コンテンツ制作デバイス１１８、および、ノード１０２、１０４、１０６、１０８、１１０、１１２、および１１４におけるルータまたは他の転送デバイス、を含み得る。ノードは、コンピュータシステム、ユーザを代表とするエンドポイント、および／または、インタレストの生成またはコンテンツの創出を行い得るデバイスであり得る。例えば、ＣＣＮノード１０２は、コンテンツにおいてインタレストメッセージ１２０を生成することができ、ここでインタレストメッセージ１２０は、固定ヘッダＡ１２２、選択的ヘッダＡ１２４、およびＣＣＮメッセージペイロード１２６を含む。インタレストメッセージ１２０は、中間ＣＣＮルータ１０４へ送信され、続いて中間ＣＣＮルータ１０４へ、その後、ＣＣＮルータ１１０へ送信される。ＣＣＮルータ１１０は、インタレストメッセージ１２０を受信して、インタレストメッセージ１２０がエラー状況を引き起こすと判定する。ルータ１１０は、データ構造１４０をインタレストメッセージ１２０の先頭に追加することにより、インタレストリターンメッセージ１３０を生成する。データ構造１４０は、固定ヘッダＢ１３２、インタレストリターンヘッダ１３４、およびカプセル化ヘッダ１３６を含む。データ構造１４０は、さらに、インタレストリターンメッセージを作成または転送する各ルータにより生成される、インタレストリターン認証符号を含み得る。その後、ＣＣＮルータ１１０は、インタレストリターンメッセージ１３０を逆経路上にインタレストとして、例えばＣＣＮルータ１０６へ送信する。
【００２５】
インタレストリターンメッセージ１３０を受信すると、ＣＣＮルータ１０６は、先頭に追加されたデータ構造１４０に含まれるエラー状況に基づいて、インタレストリターンメッセージ１３０を処理し得る。ＣＣＮルータ１０６は、インタレストのエントリが保留インタレストテーブル（ＰＩＴ）に存在するか判定し得る。存在する場合、ＣＣＮルータ１０６は、インタレストメッセージ１２０の代替的な転送経路（例えば、ＣＣＮルータ１０８がＰＩＴにおいて代替的な転送経路としてリストされていてよい）を判定するか、または、インタレストリターンメッセージ１３０をＣＣＮルーティング経路における前ホップ（例えば、ＣＣＮルータ１０４）へ転送するか、のいずれかを行い得る。
【００２６】
図２は、本発明の実施形態にしたがって、インタレストリターンメッセージを生成および送信することにより、エラー状況を引き起こすインタレストパケットを処理する方法を図示するフローチャート２００を提示する。動作中、システムは、第１のノード（例えば、中間ＣＣＮルータ）により、コンテンツにおけるインタレストに対応するパケットを受信する（動作２０２）。第１のノードは、エラー状況がインタレストにより引き起こされたか判定する（判定２０４）。エラー状況が引き起こされていない場合、システムはインタレストを（例えば、米国特許出願第１２／３３８，１７５号において説明されるように）正常に処理する（動作２０６）。エラー状況が引き起こされる場合（判定２０４）、システムは、どのエラー状況が引き起こされたか判定する（動作２０８）。エラー状況は、以下を含み得る：インタレストの名前の利用可能な経路なし（「名前のルートなし」）；保留インタレストテーブル（ＰＩＴ）におけるエントリの期限切れ（「ＰＩＴ時間超過」）；インタレストの最大送信単位（ＭＴＵ）が要求される最小値に適合しない（「ＭＴＵ不適合」）；および、他の不特定拒絶（「他の拒絶」）。
【００２７】
引き起こされたエラー状況が、名前の経路なし（動作２１０）、ＰＩＴ時間超過（動作２１２）、または他の拒絶（動作２１４）である場合、システムは、データ構造をインタレストメッセージの先頭に追加することにより、インタレストリターンメッセージを生成し、ここでデータ構造は、引き起こされたエラー状況を示す（動作２１８）。一部の実施形態において、ＰＩＴ時間超過のエラー状況は、ネットワークをテストする目的でのみ使用され、インタレストメッセージを処理する際のＣＣＮ転送者によるエラー状況としては使用されない。その後、第１のノードは、インタレストリターンメッセージを逆ルーティング経路の前ホップ（例えば、以前の中間ＣＣＮルータまたは起点ＣＣＮノード）へ送信する。
【００２８】
引き起こされたエラー状況が、ＭＴＵ不適合である場合（動作２１６）、システムは、インタレストリターンメッセージを生成するか、または、パケットを廃棄するか、判定する（判定２２２）。一部の実施形態において、このエラー状況は、インタレストが断片化を要求していることを示す。エンドツーエンドのＣＣＮ断片化は、米国特許出願第１４／０６５，６９１号および第１４／０６７，５８７号において記載されている。
【００２９】
システムが、インタレストリターンメッセージを生成すると判定する場合、第１のノードは、インタレストメッセージの先頭にエラー状況を示すデータ構造を追加し（動作２１８）、続いて、インタレストリターンメッセージを、逆ＣＣＮルーティング経路における前ホップノードへ送信する（動作２２０）。システムが、インタレストを廃棄すると判定する場合、第１のノードは、そのままインタレストを破棄する（動作２２４）。
【００３０】
図３は、本発明の実施形態にしたがって、インタレストリターンメッセージを受信および処理する方法を図示する、フローチャート３００を提示する。動作中、システムは、第２のノード（例えば、インタレストの逆データ経路における上流のＣＣＮ転送者）により、インタレストリターンメッセージに対応するパケットを受信する（動作３０２）。第２のノードは、インタレストメッセージに示される名前またはＨＳＶＬＩに対応する保留インタレストテーブル（ＰＩＴ）に、エントリが存在するか判定する（判定３０４）。ＰＩＴエントリが存在しない場合、第２のノードは、インタレストリターンメッセージを無視する（動作３０６）。ＰＩＴエントリが存在する場合、第２のノードは、どのエラー状況がインタレストリターンメッセージに示されているか判定する（動作３０８）。示されるエラー状況が、名前のルートなし（動作３１０）、ＰＩＴ時間超過（動作３１２）、または他の拒絶（動作３１４）である場合、システムは、インタレストの代替的な転送ルートが存在するか判定する（判定３１８）。ＰＩＴは、インタレストが転送され得る、１つ以上の経路に関連する情報を包含し得る。代替的な転送経路が存在する場合、第２のノードは、代替的な転送経路に基づいてインタレストを転送し（動作３２０）、インタレストリターンメッセージを破棄する（動作３２２）。代替的な転送経路が存在しない場合（判定３１８）、または、示されるエラー状況がＭＴＵ不適合である場合（動作３１６）、第２のノードは対応するＰＩＴエントリを削除する（動作３２４）。第２のノード（受信ノードとも称される）がインタレストの起点となるノードである場合（判定３２６）、本方法は終了する。第２のノートが起点ノードでない場合、第２のノードは、インタレストリターンメッセージを前ホップＣＣＮノードへ送信する（動作３２８）。
【００３１】
図４は、本発明の実施形態にしたがって、インタレストリターンメッセージを生成、認証、および送信する方法を図示する、フローチャート４００を提示する。動作中、システムは、第１のノードにより、インタレストメッセージに対応するパケットを受信し（動作４０２）、どのエラー状況が引き起こされたか判定し（動作４０４）、および、データ構造をインタレストメッセージの先頭に追加することにより、インタレストリターンメッセージを生成し、ここでデータ構造はエラー状況を示す（動作４０６）。第１のノードは、インタレストリターンメッセージの１つ以上のフィールド、および、第１のノードと第２のピアノードとの間の秘密鍵交換において、事前に合意された共有秘密鍵に基づいて、認証符号を生成する（動作４０８）。認証符号は、インタレストリターンメッセージの先頭に追加されるデータ構造の一部として、含まれる（以下の図７および関連説明を参照）（動作４１０）。加えて、第１のノードは、先頭に追加されるデータ構造の固定ヘッダにおけるヘッダ長フィールドを更新する（図６Ａ、図６Ｂ、および図７参照）（動作４１２）。続いて、第１のノードは、第１の認証符号を含むインタレストリターンメッセージを、前ホップＣＣＮノードへ送信する（動作４１４）。
【００３２】
図５は、本発明の実施形態にしたがって、インタレストリターンメッセージを受信および認証する方法を図示する、フローチャート５００を提示する。動作中、第２のノード（例えば、ＣＣＮ転送者）は、インタレストリターンメッセージに対応する第１のノード（例えば、送信ＣＣＮノード）からのパケットを受信し、ここでインタレストリターンメッセージは第１の認証符号を含む（動作５０２）。第２のノードは、インタレストリターンメッセージの１つ以上のフィールド、および、第２のノードおよび送信ノードにより事前に合意された共有秘密鍵に基づいて、第２の認証符号を生成することにより、インタレストリターンメッセージを認証する（動作５０４）。第２のノードは、第２の認証符号が第１の認証符号と合致するか判定する（判定５０６）。合致しない場合、第２のノードはパケットを破棄し、認証失敗を示す（動作５０８）。第２の認証符号が第１の認証符号と合致する場合、その後システムは、図３と関連して描写および説明される動作（図５に示されず）へ進む（動作３０４〜３２４）。より具体的には、第２のノードは、インタレストの対応するＰＩＴエントリが存在するか判定し（判定３０４）、どのエラー状況がインタレストリターンメッセージに示されているか判定し（動作３０８）、および、エラー状況（動作３１０、３１２、３１４、および３１６）および代替的な転送経路があるか（判定３１８）に基づいて、インタレストの転送およびインタレストリターンメッセージの破棄（動作３２０および３２２）、または、ＰＩＴエントリの削除（動作３１６および３２４）のいずれかを行う。
【００３３】
図５に戻ると、第２のノード（受信ノードとも称される）は、インタレストの起点となるノードであるか判定する（判定５１０）。受信ノードが起点ノードである場合、本方法は終了する。受信ノードが起点ノードでない場合、第２のノードは、インタレストリターンメッセージの１つ以上のフィールド、および、第２のノードと別のピアノードとにより事前に合意された共有秘密鍵に基づいて、第３の認証符号を生成する（動作５１２）。第３の認証符号は、インタレストリターンメッセージの先頭に追加されたデータ構造の一部として含まれる（以下の図７および関連説明を参照）（動作５１４）。加えて、第２のノードは、先頭に追加されるデータ構造の固定ヘッダにおけるヘッダ長フィールドを更新する（図６Ａ、図６Ｂ、および図７参照）（動作５１６）。続いて、第２のノードは、第３の認証符号を含むインタレストリターンメッセージを、前ホップＣＣＮノードへ送信する（動作５１８）。
【００３４】
図６Ａは、本発明の実施形態にしたがって、ＣＣＮインタレストメッセージ６００および対応するＣＣＮインタレストリターンメッセージ６３０の例示的な形式を図示する。一部の実施形態において、ＣＣＮインタレストメッセージ６００およびＣＣＮインタレストリターンメッセージ６３０は、タイプ−長さ−値（ＴＬＶ）フィールドの連結セットで形式化される。ＣＣＮインタレストメッセージ（ＩＮＴ）６００は、固定ヘッダＡ（ＦＨＡ）６６０、選択的ヘッダＡ（ＯＨＡ）６６２、およびＣＣＮペイロード（ＰＬ）６６４を含み得る。ＦＨＡ６６０は、以下を含み得る：関連プロトコルのバージョンを示す、バージョン６０２フィールド；ＣＣＮパケット（例えば、インタレスト、コンテンツオブジェクト、またはインタレストリターン）のタイプを示す、パケットタイプ６０４フィールド；ＰＬ６６４の長さを示す、当初のペイロード長６０６フィールド；残りのホップ数を示し、各ホップでゼロに到達するまで減少し得る、ホップ制限６０８フィールド；予備６１０フィールド；および、ＯＨＡ６６２の長さを示す、当初のヘッダ長６１２フィールド。ＯＨＡ６６２は、例えば、優先度、サービスの品質、または他のマーカなど、当初のインタレストに関連するＴＬＶフィールドの選択的セットを含み得る。ＰＬ６６４は、以下を含み得る：ＣＣＮメッセージのタイプ（例えば、インタレストまたはコンテンツオブジェクト）を示す、フィールドタイプ６１６フィールド；ＣＣＮメッセージの長さを示す、メッセージ長６１８フィールド；および、ＣＣＮメッセージのペイロードを包含する、ＣＣＮメッセージペイロード６２０フィールド。
【００３５】
ＣＣＮインタレストリターンメッセージ６３０は、先頭に追加されたデータ構造６８０およびインタレストメッセージ（ＩＮＴ）６００を含み得る。データ構造６８０は、固定ヘッダＢ（ＦＨＢ）６６６、インタレストリターンヘッダ（ＩＲＨ）６６８、およびカプセル化ヘッダ（ＥＨ）６７０を含み得る。ＦＨＢ６６６は、ＦＨＡ６６０と同様のフィールドを包含する：関連プロトコルのバージョンを示す、バージョン６３２フィールド；ＣＣＮパケットのタイプ（例えば、インタレストリターン）を示す、パケットタイプ６３４フィールド；ＰＬ６６４の長さを示す、当初のペイロード長６３６フィールド；残りのホップ数を示し、各ホップでゼロに到達するまで減少し得る、ホップ制限６３８フィールド；および、予備６４０フィールド。さらに、ＦＨＢ６６６は、ＯＨＡ６６２の長さに、ＦＨＡ６６０の長さ（８バイト）、ＥＨ６７０の長さ（４バイト）、およびＩＲＨ６６８の長さ（８バイト）の合計として、追加的な２０バイトをプラスした長さを示す、ヘッダ長６４２フィールドを包含する。ＩＲＨ６６８は、以下を含み得る：インタレストリターンを示す、フィールドタイプ６４４フィールド；以降のフィールドの長さを示す、長さ６４６フィールド；インタレストリターンの理由を示す、理由６４８フィールド；および、予備６５０フィールド。ＥＨ６７０は、以下を含み得る：カプセル化ヘッダを示す、フィールドタイプ６５２フィールド；および、ＯＨＡ６６２の長さに、ＦＨＡ６６０の長さとして追加的な８バイトをプラスした長さを示す、ヘッダ長６５４フィールド。したがって、ＥＨ６７０は、ＦＨＡ６６０およびＯＨＡ６６２をカプセル化する。
【００３６】
ＣＣＮインタレストリターンメッセージ６３０は、固定ヘッダＡ６６０、選択的ヘッダＡ６６２、およびＣＣＮメッセージ本体ペイロード６６４のＴＬＶ形式との互換性を維持する。例えば、ＣＣＮインタレストリターンメッセージ６３０は、ＦＨＢ６６６、選択的ヘッダ（ＯＨＢ）６９０、およびＰＬ６６４を含むように描写され得る。ＯＨＢ６９０は以下を含む：先頭に追加されたデータ構造６８０のＩＲＨ６６８およびＥＨ６７０；および、インタレストメッセージ（ＩＮＴ）６００のＦＨＡ６６０およびＯＨＡ６６２。データ構造６８０は単純にＩＮＴ６００の先頭に追加されるので、インタレストリターンメッセージ６３０のＦＨＢ６６６における当初のペイロード長６３６は、ＩＮＴ６００のＦＨＡ６６０における本来のペイロード長６０６と同じままである。さらに、システムは本来のインタレストを書き直す必要がなく、したがって、ネットワーク上でインタレストを送信する際にエラー状況情報の処理が容易になる。
【００３７】
図６Ｂは、本発明の実施形態にしたがって、例示的なＣＣＮインタレストメッセージおよび対応するＣＣＮインタレストリターンメッセージを図示する。図６Ｂにおける値は、図６Ａと関連して上記で説明されたフィールドに対応している。例えば、ＦＨＡ６６０は、以下を含み得る：「０」に対応するプロトコルを示す、バージョン；タイプ「Ｔ＿ＩＮＴＥＲＥＳＴ」のパケット；「１６」のペイロード長；「２７」のホップ制限；「０」の予備フィールド；および、「６」の当初のヘッダ長。ＯＨＡ６６２は、「２」の長さおよび「１０００」の値と共にタイプ「Ｔ＿ＰＲＩＯＲＩＴＹ」を含み得る。ＰＬ６６４は、長さ「８」のタイプ「Ｔ＿ＮＡＭＥ」、および、｛長さ「４」のタイプ「Ｔ＿ＮＡＭＥ＿ＣＯＭＰ」および「ａｂｃｄ」の値｝の値を含む、「１２」の長さと共に「Ｔ＿ＩＮＴＥＲＥＳＴ」のフィールドタイプを含み得る。
【００３８】
ＦＨＢ６６６は、以下を含み得る：「０」に対応するＦＨＡ６６０と同じプロトコルを示す、バージョンフィールド；インタレストリターンメッセージを示すためのタイプ「ＭＳＧ＿ＩＮＴＲＴＮ」のパケット；「１６」のペイロード長；「２６」まで減少したホップ制限；「０」の予備フィールド；および、ＯＨＡ６６２（６バイト）に、追加的な固定の２０バイトをプラスした「２６」の値を含む、ヘッダ長。ＩＲＨ６６８は、以下を含み得る：「４」の長さおよび不特定の拒絶理由に対応する「３」の値を有する、タイプ「Ｔ＿ＩＮＴＥＲＥＳＴ＿ＲＥＴＵＲＮ」のパケット；および、値「０」の予備フィールド。ＥＨ６７０は、以下を含み得る：ＯＨＡ６６２の長さ（６バイト）に、追加的な８バイトをプラスした「１４」の値を含む、ヘッダ長を有する、タイプ「Ｔ＿ＩＮＴＥＲＥＳＴ＿ＥＮＣＡＰ」のフィールド。
【００３９】
図７は、本発明の実施形態にしたがって、インタレストリターン認証符号を含むＣＣＮインタレストリターンメッセージの先頭に追加されるデータ構造７００の、例示的な形式を図示する。データ構造７００は、固定ヘッダＢ（ＦＨＢ）６６６、認証符号（ＡＵＴＨ）７０４、インタレストリターンヘッダ（ＩＲＨ）６６８、およびカプセル化ヘッダ（ＥＨ）６７０を含む。一部の実施形態において、ＣＣＮ転送者は、ピアツーピア鍵交換プロトコルを使用して、ピアノードの各々と秘密鍵の取り決めを行うことにより、インタレストリターンメッセージを認証する。したがって、各ピアノードは、鍵交換プロトコルの一部として取り決められた、一意的な３２ビット鍵ＩＤを処理する。鍵ＩＤは、特定のピアおよび秘密鍵を識別する。一部の実施形態において、ＣＣＮノードは、インタレストリターンメッセージの１つ以上のフィールドおよび秘密鍵に基づいて、認証符号を生成することにより、インタレストリターンメッセージを認証する。認証符号は、共有秘密鍵およびインタレストリターンメッセージの以下のフィールドを入力する際に取り込む、暗号ハッシュである、メッセージ認証コード（ＭＡＣ）に基づき得る：インタレストリターンヘッダ（ＩＲＨ６６８）；カプセル化ヘッダ（ＥＨ６７０）；および、当初のインタレストメッセージのペイロード（ＰＬ６６４）。
【００４０】
データ構造７００の一部として示される、ＦＨＢ６６６、ＩＲＨ６６８、およびＥＨ６７０は、図６Ａと関連して上記で説明されている。データ構造７００のヘッダ長７０２フィールドは、当初のヘッダの長さ、ＡＵＴＨ７０４の長さ、および追加的な２０バイトを含むことに留意されたい。ＡＵＴＨ７０４は、以下を含み得る：値「Ｔ＿ＩＮＴＥＲＥＳＴ＿ＡＵＴＨ」のタイプ７２０フィールド；メッセージ認証コード（ＭＡＣ）に、４バイトの鍵ＩＤ７２６フィールドおよび４バイトの連番７２８フィールドの合計として、追加的な８バイトをプラスした長さを含む、長さ７２２フィールド；ＭＡＣを包含する、値７２４フィールド；鍵ＩＤ７２６フィールド；および、連番７２８フィールド。
【００４１】
図８は、本発明の実施形態にしたがって、ネットワーク上で送信されるインタレストメッセージと関連付けられる、エラー状況情報の処理を容易にする、例示的なコンピュータおよび通信システム８０２を図示する。コンピュータおよび通信システム８０２は、プロセッサ８０４、メモリ８０６、および保存デバイス８０８を含む。メモリ８０６は、管理メモリの役割を果たす、揮発性メモリ（例えば、ＲＡＭ）を含むことができ、１つ以上のメモリプールを保存するために使用され得る。さらに、コンピュータおよび通信システム８０２は、表示デバイス８１０、キーボード８１２、およびポインティングデバイス８１４と連結され得る。保存デバイス８０８は、オペレーティングシステム８１６、コンテンツ処理システム８１８、およびデータ８３２を保存し得る。
【００４２】
コンテンツ処理システム８１８は、コンピュータおよび通信システム８０２により実行されると、コンピュータおよび通信システム８０２に、本開示において説明される方法および／またはプロセスを行わせ得る、命令を含み得る。具体的には、コンテンツ処理システム８１８は、コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケットを受信する命令を含んでよく、ここでＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた、連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である（通信メカニズム８２０）。さらに、コンテンツ処理システム８１８は、ＣＣＮメッセージがエラー状況を引き起こすか判定するための命令を含み得る（エラー検出メカニズム８２２）。コンテンツ処理システム８１８は、データ構造をＣＣＮメッセージの先頭に追加することにより、インタレストリターンメッセージを生成する命令（インタレストリターン生成メカニズム８２４）を含むことができ、ここでデータ構造はエラー状況を示す。
【００４３】
さらに、コンテンツ処理システム８１８は、インタレストリターンメッセージを受信する命令であって、ＣＣＮメッセージはインタレストメッセージである、受信する命令（通信メカニズム８２０）と、保留インタレストテーブル（ＰＩＴ）がインタレストメッセージに対応するエントリを包含するか判定し、エントリをＰＩＴから削除する命令（保留インタレストテーブルメカニズム８２８）とを、含み得る。コンテンツ処理システム８１８は、インタレストリターンメッセージを逆経路上にインタレストとして転送する命令（インタレストリターン処理メカニズム８２６）を含み得る。コンテンツ処理システム８１８は、エントリの代替的な転送経路が存在するか判定する命令（保留インタレストテーブルメカニズム８２８）と、さらに、インタレストメッセージを、代替的な転送経路に基づいて次ホップノードへ転送する命令（通信メカニズム８２０）とを含み得る。さらに、コンテンツ処理システム８１８は、インタレストリターンメッセージを破棄する命令（インタレストリターン処理メカニズム８２６）を含み得る。
【００４４】
さらに、コンテンツ処理システム８１８は、インタレストリターンメッセージの認証符号を生成する命令（認証符号メカニズム８３０）を含むことができ、ここで認証符号は、インタレストリターンメッセージの１つ以上のフィールド、および、ネットワークにおける２つのノードにより事前に合意された共有秘密鍵に基づく。コンテンツ処理システム８１８は、インタレストリターンメッセージを別のノードへ送信する際、認証符号をインタレストリターンメッセージの一部として含むための命令（インタレストリターン生成メカニズム８３０）を含み得る。
【００４５】
データ８３２は、本開示において説明される方法および／またはプロセスにより、入力として要求される任意のデータ、または、出力として生成される任意のデータを、含み得る。具体的には、データ８３２は、少なくとも以下を保存し得る：コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケット；最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、ＣＣＮメッセージの名前；インタレストメッセージである、ＣＣＮメッセージ；インタレストリターンメッセージに対応するパケット；ＣＣＮメッセージまたはインタレストメッセージの名前に対応する、利用可能な転送ルートなし、に対応するエラー状況の表示；インタレストリターンメッセージの一部として受信されるＣＣＮメッセージに対応する、保留インタレストテーブル（ＰＩＴ）エントリの有効期限切れ、に対応するエラー状況の表示；不特定の拒絶理由に対応する、エラー状況の表示；および、最大送信単位（ＭＴＵ）が所定の最小ＭＴＵより大きい、ＣＣＮメッセージに対応する、エラー状況の表示；保留インタレストテーブル（ＰＩＴ）；インタレストメッセージまたはインタレストリターンメッセージに対応する、ＰＩＴにおけるエントリ；インタレストの代替的な転送経路；固定ヘッダ、インタレストリターンヘッダ、認証符号、およびカプセル化ヘッダ、のうちの１つ以上を含む、データ構造；メッセージがインタレストリターンメッセージと関連付けられていることを示す固定ヘッダであって、固定ヘッダはＣＣＮメッセージのペイロードフィールドの長さを含む、固定ヘッダ；インタレストリターンメッセージの理由を示す、インタレストリターンヘッダ；当初の固定ヘッダおよびＣＣＮメッセージの１つ以上の選択的ヘッダを示す、カプセル化ヘッダであって、カプセル化ヘッダはＣＣＮメッセージのヘッダフィールドの長さを含む、カプセル化ヘッダ；秘密鍵；インタレストリターンメッセージおよび秘密鍵の１つ以上のフィールドに基づく、インタレストリターンメッセージのメッセージ認証コード（ＭＡＣ）または他の認証符号。
【００４６】
この詳細な説明において記載されるデータ構造およびコードは、典型的には、コンピュータシステムにより使用されるコードおよび／またはデータを保存し得る、任意のデバイスまたは媒体であってよい、コンピュータ可読保存媒体に保存される。コンピュータ可読保存媒体は、揮発性メモリ、不揮発性メモリ、および、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）、または、現段階で既知あるか、または、今後開発される、コンピュータ可読媒体を保存可能な他の媒体など、磁気および光保存デバイスを含むが、それらに限定されない。
【００４７】
詳細な説明の項において記載される方法およびプロセスは、上述されたようなコンピュータ可読保存媒体に保存され得る、コードおよび／またはデータとして具現化され得る。コンピュータシステムがコンピュータ可読保存媒体に保存されるコードおよび／またはデータを読み込んで実行すると、コンピュータシステムは、データ構造およびコードとして具現化され、コンピュータ可読保存媒体内に保存される、方法およびプロセスを行う。
【００４８】
さらに、上述した方法およびプロセスは、ハードウェアモジュールまたは装置に含まれ得る。ハードウェアモジュールまたは装置は、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュールまたはコードを特定の時間に実行する、専用または共有プロセッサ、および、現段階で既知であるか、または、今後開発される、他のプログラマブル論理デバイス、を含み得るが、それらに限定されない。ハードウェアモジュールまたは装置が起動されると、それらに含まれる方法およびプロセスが行われる。
【図１】
2016025658.tif 000003
【図２】
2016025658.tif 000004
【図３】
2016025658.tif 000005
【図４】
2016025658.tif 000006
【図５】
2016025658.tif 000007
【図６Ａ】
2016025658.tif 000008
【図６Ｂ】
2016025658.tif 000009
【図７】
2016025658.tif 000010
【図８】
2016025658.tif 000011