(57)【要約】      （修正有）【課題】ネットワークノードのリソースに対する操作を実行するパケットに含まれる命令を実行するかどうかを判定するための評価値を使用する。【解決手段】パケット転送ネットワークノードは、ローカルリソースにおいてカスタマイズ操作を実行するために名称接頭辞についての評価値に基づいてプログラマブルパケットを処理する。プログラマブルパケットは、名称接頭辞と、パケットの名称接頭辞についての評価基準及び１つ以上のリソースフィールドを備えるヘッダとを含む。ネットワークノードがプログラマブルパケットを受信すると、ノードは、ローカルノードにおける名称接頭辞についての評価値を判定し、パケットの評価基準とこの評価値を比較する。ローカルノードにおける名称接頭辞についての評価値が評価基準を満たしている場合、対応するリソース上で操作を実行するために各リソースフィールドの１つ以上の命令を実行する。【選択図】図１
2016039631.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法において、
ネットワーク装置によってパケットを受信することであり、前記パケットが名称又は名称接頭辞を含み且つ１つ以上のリソースフィールドを備えるヘッダを含み、各リソースフィールドがコンピューティング装置の対応するリソースにおいて動作を実行する１つ以上の命令を含むことと、
前記パケットの名称接頭辞についての評価基準を判定するために前記パケットを分析することと、
前記ローカルネットワーク装置において前記名称接頭辞についての評価値を判定することと、
前記名称接頭辞についての前記評価値が前記評価基準を満たすとの判定に応答して、前記対応するリソースにおいて前記動作を実行するように前記各リソースフィールドの前記１つ以上の命令を実行することとを備える、方法。
【請求項２】
前記評価基準が、
最小評価値、
最大評価値、
評価値の範囲のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記ローカルネットワーク装置において前記名称接頭辞についての前記評価値を判定することが、前記ローカルネットワーク装置によって受信又はキャッシュされた、前記名称接頭辞に関連付けられたコンテンツオブジェクトの集合体についての評価値を算出することを含み、
前記評価値が、
前記集合体の中央評価値、
前記集合体の平均評価値、
前記集合体の最高評価値、
前記集合体の最低評価値、及び、
前記集合体についての評価値の範囲のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項４】
前記パケットがまた、前記名称接頭辞についての評価情報を含み、前記１つ以上の命令を実行することが、
前記パケットが到来したインターフェースを判定することと、
前記名称接頭辞及び前記インターフェースに関連付けて前記パケットの評価情報を記憶することとを含む、請求項１に記載の方法。
【請求項５】
コンピュータによって実行されたとき、方法を前記コンピュータに実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
名称又は名称接頭辞を含み且つ１つ以上のリソースフィールドを備えるヘッダを含むパケットを受信することであり、各リソースフィールドがコンピューティング装置の対応するリソースにおいて動作を実行する１つ以上の命令を含むことと、
前記パケットの名称接頭辞についての評価基準を判定するために前記パケットを分析することと、
前記ローカルネットワーク装置において前記名称接頭辞についての評価値を判定することと、
前記名称接頭辞についての前記評価値が前記評価基準を満たすとの判定に応答して、前記対応するリソースにおいて前記動作を実行するように前記各リソースフィールドの前記１つ以上の命令を実行することとを備える、持続性コンピュータ読み取り可能な記憶媒体。
【請求項６】
前記評価基準が、
最小評価値、
最大評価値、
評価値の範囲のうちの少なくとも１つを含む、請求項５に記載の記憶媒体。
【請求項７】
前記ローカルネットワーク装置において前記名称接頭辞についての前記評価値を判定することが、前記ローカルネットワーク装置によって受信又はキャッシュされた、前記名称接頭辞に関連付けられたコンテンツオブジェクトの集合体についての評価値を算出することを含み、
前記評価値が、
前記集合体の中央評価値、
前記集合体の平均評価値、
前記集合体の最高評価値、
前記集合体の最低評価値、及び、
前記集合体についての評価値の範囲のうちの少なくとも１つを含む、請求項５に記載の記憶媒体。
【請求項８】
コンピューティングシステムにおいて、
１つ以上のプロセッサと、
メモリと、
前記１つ以上のプロセッサに結合され、前記１つ以上のプロセッサによって実行されたとき、方法を前記コンピューティングシステムに実行させる命令を記憶するコンピュータ読み取り可能な媒体とを備え、前記方法が、
名称又は名称接頭辞を含み且つ１つ以上のリソースフィールドを備えるヘッダを含むパケットを受信することであり、各リソースフィールドがコンピューティング装置の対応するリソースにおいて動作を実行する１つ以上の命令を含むことと、
前記パケットの名称接頭辞についての評価基準を判定するために前記パケットを分析することと、
前記ローカルネットワーク装置において前記名称接頭辞についての評価値を判定することと、
前記名称接頭辞についての前記評価値が前記評価基準を満たすとの判定に応答して、前記対応するリソースにおいて前記動作を実行するように前記各リソースフィールドの前記１つ以上の命令を実行することとを備える、コンピューティングシステム。
【請求項９】
前記評価基準が、
最小評価値、
最大評価値、
評価値の範囲のうちの少なくとも１つを含む、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記ローカルネットワーク装置において前記名称接頭辞についての前記評価値を判定することが、前記ローカルネットワーク装置によって受信又はキャッシュされた、前記名称接頭辞に関連付けられたコンテンツオブジェクトの集合体についての評価値を算出することを含み、
前記評価値が、
前記集合体の中央評価値、
前記集合体の平均評価値、
前記集合体の最高評価値、
前記集合体の最低評価値、及び、
前記集合体についての評価値の範囲のうちの少なくとも１つを含む、請求項８に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンピュータネットワークに関する。より具体的には、本開示は、ネットワークノードのリソースに対する操作を実行するパケットに含まれる命令を実行するかどうかを判定するために名称接頭辞についての評価値を使用するネットワークノードに関する。
【背景技術】
【０００２】
モバイルコンピューティング及び携帯電話ネットワークの普及は、これまで以上にディジタルコンテンツをよりモバイルにしている。人々は、コンテンツを生成するために、コンテンツを消費するために、又は、コンテンツを生成若しくは消費する他のコンピューティングデバイスに対するインターネットアクセスを提供するためにさえも、自己のスマートフォンを使用することができる。多くの場合、装置のネットワークの場所は、人がこの装置を新たな物理的場所に対して持ち込むのにともない変更可能である。これは、装置の新たなネットワークの場所が知られていないとき、従来のコンピュータネットワーク（例えば、インターネット）のもとでこの装置と通信するのを困難とすることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この問題を解決するために、コンテンツの物理的又はネットワークの場所にかかわらず、その名称に基づいてディジタルコンテンツにアクセスするのを容易とするために情報中心ネットワークアーキテクチャが設計されている。コンテンツ中心ネットワーク（ＣＣＮ）は、情報中心ネットワーク（ＩＣＮ）アーキテクチャの例である。しかしながら、典型的なＣＣＮアーキテクチャは、インタレスト及びコンテンツオブジェクトという２つの種類のパケットの転送に制限されている。インタレストは、名称付きデータの一部についての名称を含む（及び名称付きデータの一部に対する要求として機能する）が、それらはペイロードを含まないことからデータを転送するためには理想的ではない。一方、コンテンツオブジェクトは、通常、ペイロードを含み、一致する名称を有するインタレストによって横断されたネットワーク経路に沿って転送されるのみであり、インタレストパケットによってとられる逆方向においてこの経路を横断する。コンテンツオブジェクトはまた、インタレストパケットに対する応答として送信されるのみであり、コンテンツオブジェクトは、ＣＣＮネットワークにおいて要求されていない送信が行われることはない。
【０００４】
残念なことに、この典型的なＣＣＮアーキテクチャは、カスタム操作が特定のインタレストやコンテンツオブジェクトにおいて実行されるのを可能としない。ＣＣＮネットワークノードは、通常、インタレストやコンテンツオブジェクトを無条件に且つ予め定義された方法で処理する。一部のネットワークノードは、インタレストの構造化された名称に基づいてローカルキャッシュを検索することによってインタレストを処理するように、又は、その構造化された名称にマッピングされたインターフェース（又はインターフェースのリスト）を介してインタレストを転送するように予め構成されることができる。いずれの場合も、システム管理者は、通常、どのようにネットワークのノードが受信した全てのインタレストやコンテンツオブジェクトを処理することになるかを前もって構成する。
【課題を解決するための手段】
【０００５】
１つの実施形態は、ローカルリソースにおいてカスタマイズされた操作を実行するために名称接頭辞についての評価値に基づいてプログラマブルパケットを処理する情報中心ネットワーク（ＩＣＮ）のパケット転送ネットワークノードを提供する。コンテンツ中心ネットワーク（ＣＣＮ）は、情報中心ネットワークアーキテクチャの例である。動作中、ネットワークノードは、名称又は名称接頭辞を含み且つ評価基準及び１つ以上のリソースのフィールドを備えるヘッダを含むプログラマブルパケットを受信することができる。各リソースフィールドは、コンピューティングデバイスの対応するリソース上で操作を実行する１つ以上の命令を含むことができる。ネットワークノードは、パケットの名称接頭辞についての評価基準を判定するためにパケットを分析し、ローカルネットワーク装置における名称接頭辞についての評価値を判定する。ネットワークノードがローカルネットワークノードにおける名称接頭辞についての評価値が評価基準を満たしていると判定した場合、ネットワークノードは、対応するリソースにおける操作を実行するために各リソースフィールドの１つ以上の命令を実行するように進む。
【０００６】
パケットは、パケットを転送するために使用可能な名称（通常は場所に依存しない）を含む。パケットはまた、ネットワークのリソースを操作するために実行可能な命令を担持することができる。例えば、ネットワークノードは、パケットに含まれる命令に応じて、データ要求パケット（例えば、インタレストパケット）として又はデータ伝送パケット（例えば、コンテンツオブジェクト）としてパケットを処理することができる。パケットは、パケットが処理される方法を管理する命令を含むヘッダを含むことができる。パケットはまた、（コンテンツオブジェクトと同様に）データを伝送することができる及び／又はネットワーク装置によって処理可能な命令若しくはプログラムを伝送することができるペイロードを含むことができる。パケットのヘッダ又はペイロードからの命令は、ネットワーク装置によってアクセス可能なリソースにおいてネットワーク装置にデータを作成、読み取り、更新又は削除（ＣＲＵＤ）させることができる。
【０００７】
いくつかの実施形態において、システムは、基本的なＣＣＮ操作を実行するためにパケットに含まれる命令を実行することができる。ＣＣＮにおいて、全てのコンテンツは、名称付けられ、データの各部分は、同じデータの他のバージョン又は他の発行者からのデータなどのデータの任意の他の部分からのデータを区別する固有の名称に結合される。この固有の名称は、ネットワーク装置が名称（又は名称接頭辞）を含むインタレストを広めることによってデータを要求するのを可能とし、データの記憶場所、ネットワークの場所、アプリケーション及び伝送手段から独立したデータを取得することができる。ＣＣＮアーキテクチャの記述は、米国特許出願第１２／３３８，１７５号（２００８年１２月１８日に提出された発明者Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ及びＤｉａｎａ  Ｋ．  Ｓｍｅｔｔｅｒｓによる名称「ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ」）に記載されている。
【０００８】
以下の用語は、ＣＣＮアーキテクチャの要素について説明している。
【０００９】
コンテンツオブジェクト：固有の名称に結合されているデータの単一部分である。コンテンツオブジェクトは、コンテンツオブジェクトがコンピューティングデバイス内又は異なるコンピューティングデバイス間を移動することができるが変化しないことを意味する、「永続的」である。コンテンツオブジェクトの任意の要素が変化した場合、変更を行ったエンティティは、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たな固有の場所に依存しない名称に新たなコンテンツオブジェクトを結合する。
【００１０】
固有の名称：ＩＣＮ（例えば、ＣＣＮ）内の名称は、通常、場所とは無関係であり、コンテンツオブジェクトを固有に識別する。データ転送装置は、コンテンツオブジェクトについてのネットワークアドレス又は物理的場所にかかわらず、コンテンツオブジェクトを生成又は記憶するネットワークノードに向けてパケットを転送するために名称又は名称接頭辞を使用することができる。いくつかの実施形態において、ＣＣＮ名称は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）とすることができる。ＨＳＶＬＩは、様々な方法で構築可能ないくつかの階層的な要素に分割されることができる。例えば、個々の名称要素ｐａｒｃ、ｈｏｍｅ、ｃｃｎ及びｔｅｓｔ．ｔｘｔは、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成するために左指向の接頭辞が主要である方法で構築可能である。それゆえに、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」又は「接頭辞」とすることができる。共同文書などの異なるバージョンのコンテンツアイテムを区別するためにさらなる要素が使用可能である。
【００１１】
他の名称構造もまた可能である。例えば、ＩＣＮにおいて、名称は、コンテンツオブジェクトのデータ（例えば、チェックサム値）から及び／又はコンテンツオブジェクトの名称要素から導出されたハッシュ値などの非階層識別子を含むことができる。ハッシュベースの名称記述は、米国特許出願第１３／８４７，８１４号（２０１３年３月２０日に提出された発明者Ｉｇｎａｃｉｏ  Ｓｏｌｉｓによる名称「ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ」）に記載されている。名称はまた、フラットラベルとすることができる。以下では、「名称」は、階層名称若しくは名称接頭辞、フラット名称、固定長名称、任意長名称又はラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名称付きデータネットワークにおけるデータの一部用の任意の名称を指すのに使用される。
【００１２】
インタレスト：データの一部についての要求を示し且つデータについての名称（又は名称接頭辞）を含むパケットである。データ消費者は、ＣＣＮルータが、インタレストを満たすためにマッチングコンテンツオブジェクトを提供することができる記憶装置（例えば、キャッシュサーバ）又はデータ制作者に向けて伝播することができる名称付きデータネットワークにわたってインタレストを広めることができる。
【００１３】
いくつかの実施形態において、評価基準は、最小評価値、最大評価値及び評価値の範囲のうちの少なくとも１つを含む。
【００１４】
いくつかの実施形態において、ローカルネットワーク装置における名称接頭辞についての評価値を判定しながら、ネットワークノードは、ローカルネットワーク装置によって受信又はキャッシュされている名称接頭辞に関連付けられているコンテンツオブジェクトの集合体についての評価値を算出することができる。評価値は、集合体の平均若しくは中央値の評価値、集合体の最高若しくは最低の評価値又は集合体についての評価値の範囲を含むことができる。
【００１５】
いくつかの実施形態において、パケットはまた、隣接ノードによって名称接頭辞について算出された評価情報を含むことができる。ローカルネットワークノードは、パケットが到来するインターフェースをネットワークノードに判定させる１つ以上の命令を算出し、名称接頭辞及びインターフェースに関連付けてパケットの評価情報を記憶することができる。
【００１６】
いくつかの実施形態において、評価情報は、評価値を算出するために使用される属性値及び重みのセットとともに評価値を含むことができる。
【００１７】
いくつかの実施形態において、パケットはまた、ローカルネットワーク装置からの名称接頭辞のコンテンツオブジェクトについてのリモート評価情報を含む。ローカルネットワークノードは、リモート評価情報から取得又は算出した評価値が名称接頭辞についてのローカル評価値未満であるかどうかをネットワークノードに判定させるパケットの命令を実行し、名称接頭辞についてのローカル評価値とリモート算出評価値との差異を算出することができる。パケットの命令はまた、リモート評価情報からの値がローカル評価値未満であり且つ算出された差異が所定の閾値よりも大きい場合、ネットワークノードに是正措置を実行させることができる。
【００１８】
いくつかの実施形態において、是正措置は、評価値の差異の理由を診断することと、名称接頭辞についての評価値を隣接ノードに通知するためにフェースを介して名称接頭辞についてのフェースの評価情報を送信することと、及び／又は、最高の評価値を有するフェースから名称接頭辞に関連付けられたコンテンツを受信するためにＱｏＳパラメータを調整することとを含むことができる。
【００１９】
いくつかの実施形態において、リソースは、転送情報ベース（ＦＩＢ）、保留インタレスト表（ＰＩＴ）、コンテンツストア（ＣＳ）、処理ユニット、メモリ、仮想メモリ、記憶装置、ネットワークインターフェース及び仮想インターフェースのうちの少なくとも１つを含む。
【００２０】
いくつかの実施形態において、命令は、リソースにおける新たなエントリを作成するための作成命令と、リソースのエントリを読み出すための読み出し命令と、リソースの既存のエントリを更新するための更新命令と、リソースの既存のエントリを削除するための削除命令とのうちの少なくとも１つを含むことができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施形態にかかるパケットの評価基準に基づいてプログラマブルパケットを処理する例示的なコンピューティング環境を図示している。
【図２】図２は、実施形態にかかる名称接頭辞及び／又はインターフェースと評価値を関連付ける例示的なデータ構造を図示している。
【図３Ａ】図３Ａは、実施形態にかかる例示的なネットワークパケットを図示している。
【図３Ｂ】図３Ｂは、実施形態にかかる命令フィールドのセットを含む例示的なリソースフィールドを図示している。
【図３Ｃ】図３Ｃは、実施形態にかかる明確な命令のセットを含む例示的な命令フィールドを図示している。
【図３Ｄ】図３Ｄは、実施形態にかかるネットワークノードによって実行されることになるプログラム命令を含む例示的なリソースフィールドを図示している。
【図４】図４は、実施形態にかかるネットワークノードにおいてパケットを処理する方法を図示するフローチャートである。
【図５】図５は、実施形態にかかるリソースについての命令フィールドに基づいてネットワーク装置リソースに対して実行するための命令を判定する方法を図示するフローチャートである。
【図６】図６は、実施形態にかかるネットワークノードのリソースにおいて実行するための操作を判定するときにセキュリティポリシーを実施する方法を図示するフローチャートである。
【図７】図７は、実施形態にかかるリモートネットワークノードからの評価値を指定するパケットを処理する方法を図示するフローチャートである。
【図８】図８は、実施形態にかかるローカルネットワークノードに対するフェースについての評価値を指定するパケットを処理する方法を図示するフローチャートである。
【図９】図９は、実施形態にかかるパケットの評価基準に基づいてプログラマブルパケットの処理を容易とする例示的な装置を図示している。
【図１０】図１０は、実施形態にかかるパケットの評価基準に基づいてプログラマブルパケットの処理を容易とする例示的なコンピュータシステムを図示している。
【発明を実施するための形態】
【００２２】
図面において、同様の参照符号は、同一の図要素を指す。
【００２３】
以下の説明は、当業者が本実施形態を作成して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義される一般的な原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲を与えられるべきである。
【００２４】
本発明の実施形態は、命令が操作することになる名称接頭辞についての評価情報に基づいてリソースにおける命令を実行するという問題を解決するパケット転送システムを提供する。例えば、情報中心ネットワーク（ＩＣＮ）、コンテンツ中心ネットワーク（ＣＣＮ）又は名称付きデータネットワーク（ＮＤＮ）のネットワークノードは、リソースに関連付けられた様々な名称接頭辞についての評価値を算出することができる。リソースは、例えば、コンテンツストア（ＣＳ）、転送情報ベース（ＦＩＢ）、保留インタレスト表（ＰＩＴ）又はフェース（例えば、仮想インターフェース又は物理インターフェース）を含むことができる。ノードは、属性のセット及び各属性についての重みに基づいてリソースにおける名称接頭辞についての評価値を算出することができる。評価値は、より高い値がリソースにおける名称接頭辞についてのより高い信頼性を示すように所定の範囲（例えば、［０，１］又は［０，１００］）内に入ることができる。また、ノードがコンテンツストアにコンテンツオブジェクトを記憶する場合、ノードはまた、コンテンツオブジェクトに関連付けて評価情報を記憶することができる。この評価情報は、評価値を算出するために使用される属性及び重みとともに評価値を含むことができる。評価情報及び評価値を算出して使用する方法の記述は、番号未定の米国特許出願（代理人整理番号ＰＡＲＣ−２０１４０１８１ＵＳ０１、発明者Ｐｒｉｙａ  Ｍａｈａｄｅｖａｎ及びＧｌｅｎｎ  Ｃ．  Ｓｃｏｔｔによる名称「ＲＥＰＵＴＡＴＩＯＮ−ＢＡＳＥＤ  ＳＴＲＡＴＥＧＹ  ＦＯＲ  ＦＯＲＷＡＲＤＩＮＧ  ＡＮＤ  ＲＥＳＰＯＮＤＩＮＧ  ＴＯ  ＩＮＴＥＲＥＳＴＳ  ＯＶＥＲ  Ａ  ＮＡＭＥＤ  ＤＡＴＡ  ＮＥＴＷＯＲＫ」）に記載されている。
【００２５】
ネットワークノードは、リソース上で実行するための命令を含み且つ命令がリソース上で実行されることになるかどうかを制御する評価基準を含むパケットを受信することができる。ネットワークノードは、リソースにおける名称接頭辞についての評価値を算出することができ（又はルックアップテーブルから予め算出された評価値にアクセスすることができる）、パケットの評価基準と評価値を比較することによってパケットを処理するかどうかを判定する。パケットの評価基準が満たされた場合、ネットワークノードは、パケット自体から命令を取得することによってパケットを処理する方法を判定する。プログラマブルパケットの記述は、米国特許出願第１４／０６６，４７５号（代理人整理番号ＰＡＲＣ−２０１３０７７１ＵＳ０１、２０１３年１０月２９日に提出された発明者Ｇｌｅｎｎ  Ｃ．  Ｓｃｏｔｔ、Ｐｒｉｙａ  Ｍａｈａｄｅｖａｎ及びＭａｒｃ  Ｅ．  Ｍｏｓｋｏによる名称「ＳＯＦＴＷＡＲＥ−ＤＥＦＩＮＥＤ  ＮＡＭＥＤ−ＤＡＴＡ  ＮＥＴＷＯＲＫＩＮＧ」）に記載されている。
【００２６】
いくつかの実施形態において、システムは、パケットがインタレスト又はコンテンツオブジェクトと同様に処理されることになるか又はカスタムの方法で処理される必要があるかを示すパケットを受信することができる。例えば、パケットは、インタレストと同様の方法でパケットを転送するために、ルータのＦＩＢを読み出す及び／又はＰＩＴにエントリを作成する命令を含むことができる。他の例として、パケットは、インタレストを満たすコンテンツオブジェクトと同様にパケットを返送するために、ルータのＰＩＴを読み出す命令を含むことができる。
【００２７】
パケットはまた、現在知られているか又は後に開発される任意のＩＣＮ、ＣＣＮ又はＮＤＮアーキテクチャにおいて高度な操作を実行するために使用されることができる。例えば、パケットは、ペイロードを含むことができ、所定の名称接頭辞に関連付けられた１つ以上のネットワーク装置に向けてパケットのペイロードをプッシュするためにルータのＦＩＢにアクセスする命令を含むことができる。
【００２８】
いくつかの実施形態において、システム管理者は、ネットワークに対して所望の変更を展開するための命令を含むパケットを広めることにより、ネットワークにわたって１つ以上のルータを構成又は再構成することができる。パケットは、例えば、新たなルート経路を確立するために及び／又は他のルート経路を切断するように、ＦＩＢにおいて１つ以上のエントリを作成、更新又は削除するようにルータを構成する命令を含むことができる。パケットはまた、ルータのインターフェース上のトラフィックシェーピングを実行するなど、ルータにおけるサービス品質（ＱｏＳ）要件を確立する命令を含むことができる。
【００２９】
図１は、実施形態にかかるパケットの評価基準に基づいてプログラマブルパケットを処理する例示的なコンピューティング環境１００を図示している。コンピューティング環境１００は、複数のエッジノード１０４及びルーティングノード１０６を含む名称付きデータネットワーク１０２（又は情報中心ネットワーク）を含むことができる。
【００３０】
エッジノード１０４及びルーティングノード１０６は、名称接頭辞のセットについての又は組み合わせた名称接頭辞及びそれらが受信されたフェースについてのローカル評価値をそれぞれ算出することができる。ＣＣＮノードは、特定の目的を満たすためにノードを支援することができた定量化因子を重み付けするように設計されたカスタマイズ可能な計算を使用して数値として評価値を算出することができる。これらの因子は、特定の名称接頭辞についてのインターフェースの待ち時間若しくは帯域幅、又は、インターフェースから到来する特定の名称接頭辞についてのコンテンツオブジェクトの署名を検証するための成功率などの数値属性によって定量化されることができる。属性は、ノードが情報に基づいた決定を行うために測定することができる定量化プロパティ、ポリシー又は特徴である。
【００３１】
ＣＣＮノードについてのシステム管理者は、算出された評価値が所望の目的を達成するように各属性に重み値を割り当てることができる。目的は、例えば、ユーザに連続的なビデオストリーミング体験を提供すること、又は、偽造若しくは改竄されていない真正データを提供することを含むことができる。ネットワークノード又はそのシステム管理者は、インタレストの名称接頭辞に基づいて、又は、名称接頭辞に関連付けられた目的に基づいて、インターフェースの属性に重み値を割り当てることができる。したがって、ビデオストリームに関連付けられた名称接頭辞（例えば、「／ｎｅｔｆｌｉｘ」）は、ユーザに対して連続的なビデオストリーミング体験を提供することができるフェースに対して属性重みに関連付けられることができる。
【００３２】
エッジノード１０４及びルーティングノード１０６は、双方とも、名称接頭辞又は名称接頭辞／フェースの組み合わせについてのローカル評価値がパケットの評価基準を満たしている場合、これらのパケットに含まれる命令を実行することによってパケットを処理することができる。例えば、ネットワーク１０２は、インターネットサービスプロバイダ（ＩＳＰ）によって管理されることができ、複数のクライアント装置に対するネットワークアクセスを提供するエッジノード１０４．１を含むことができる。ネットワーク１０２はまた、複数のオンラインサービスに対するネットワークアクセスを提供し、及び／又は、複数のオンラインサービスによってアクセス可能な帰路ネットワークとインターフェースするエッジノード１０４．２を含むことができる。
【００３３】
コンピューティング環境１００はまた、ネットワーク１０２にわたってパケットを広めることができる他のネットワーク装置を含むことができる。例えば、オンラインサービスプロバイダは、ネットワーク１０２を介してアクセス可能であるコンテンツ制作者１１０においてオンラインサービスを展開することができる。コンテンツ制作者１１０は、ネットワーク１０２のエッジノード１０４．２とインターフェースするサーバコンピュータ又はコンピュータクラスタを含むことができる。しかしながら、ルーティングノード１０６がコンテンツ制作者１１０に最良に到達可能な最適なローカルインターフェースにパケットの名称又は名称接頭辞をマッピングするＦＩＢエントリを含むとき、ルーティングノード１０６は、コンテンツ制作者１１０に対してパケットを最良にルーティングすることができる。
【００３４】
いくつかの実施形態において、オンラインサービスプロバイダは、所定の名称接頭辞についてのコンテンツ制作者１１０に対する最適なルート経路を構成して維持するためにネットワークコントローラ１０８を使用することができる。この最適経路は、複数のクライアントデバイスへのネットワークアクセスを提供する入口エッジノードから開始することができ、コンテンツ制作者１１０への経路に沿って出口エッジノード１０４．２に到達する。
【００３５】
ネットワークコントローラ１０８は、その評価値が評価基準未満の名称接頭辞についての任意のＦＩＢエントリを削除するために、評価基準を指定し且つＦＩＢにアクセスするための命令を含むパケットを生成することができる。パケットはまた、名称接頭辞に関連付けられた任意の残りのＦＩＢエントリを介してコンテンツ制作者１１０に向けてパケットを転送するためにＦＩＢを読み出す命令を含むことができる。
【００３６】
いくつかの実施形態において、ネットワーク装置は、評価基準を満たす任意のフェースを介してデータの特定の部分を送信又は取得するのに必要な命令を含むパケットを生成することができる。例えば、クライアント装置１０２は、データの一部の名称又は名称接頭辞を含み且つ評価基準を含み且つ評価基準を満たすＦＩＢエントリを取得するためにＦＩＢにアクセスするための命令も含むパケットを生成することができる。そして、クライアント装置１０２は、非常に高い評価を有し且つデータについてのパケットの要求を満たすことができるネットワーク１０２の装置からデータを取得するために、ネットワーク１０２にわたってこのパケットを広めることができる。このパケットを受信するルータは、評価基準を満たす名称接頭辞についてのＦＩＢエントリを取得するためにＦＩＢを読み出す命令を実行し、ＦＩＢエントリによって示されるフェースを介してパケットを転送する。
【００３７】
また、いくつかの実施形態において、クライアント装置１１２は、パケット内のペイロードとしてデータを付加することによってもコンテンツ制作者１１０に向けてデータをプッシュすることができる。パケットは、ペイロードをキャッシュするときに使用され且つペイロードがルーティングノードによってキャッシュされるかどうかを示す命令を含む評価基準を指定することができる。例えば、ルーティングノード（例えば、エッジノード１０４．１及び１０４．２）は、（例えば、コンテンツオブジェクトをキャッシュするために）ネットワーク１０２を通過するネットワークパケットからペイロードデータをキャッシュするためにコンテンツストア（ＣＳ）を含むことができる。パケットがＣＳリソースにおいて書き込み又は更新操作を実行する命令を含むことをルーティングノードが検出した場合、ルーティングノードは、ノードがパケットを受信したフェースがパケットの評価基準を満たす（名称接頭辞についての）評価値を有する場合、ＣＳにパケットのペイロードを記憶することができる。
【００３８】
一方、パケットは、ＣＳリソースからエントリを削除する命令を含むことができ、削除されるＣＳエントリについての最大評価値を指定する評価基準を含むことができる。ルーティングノードは、評価基準を満たすパケットの名称接頭辞に関連付けられたデータについてのＣＳを検索することができる。このデータがＣＳに存在する場合、ルーティングノードは、ＣＳからこのデータを削除することができる。
【００３９】
図２は、実施形態にかかる名称接頭辞及び／又はインターフェースと評価情報を関連付ける例示的なデータ構造２００を図示している。欄２０２は、１つ以上の名称接頭辞についてのエントリ（例えば、コンテンツ名又は名称接頭辞）を記憶しており、欄２０４は、名称空間についての関連するフェースを記憶している。欄２０６は、対応する接頭辞における所定の名称空間に関連付けられた評価値を記憶している。データ構造２００はまた、評価値を算出するために使用される属性及び重みのセットを記憶するなど、他の評価情報を記憶するための追加の欄を含むことができる。
【００４０】
いくつかの実施形態において、データ構造２００は、各ＦＩＢエントリに評価情報（例えば、評価値）を割り当てる転送情報ベース（ＦＩＢ）に対応することができる。図２に示されるように、５個の例としてのＦＩＢについてのデータ構造２００における転送規則エントリがある。名称空間「／ｂｂｃ」は、フェースＡ、Ｂ及びＣに対してマッピングされる。フェースＣにおける名称接頭辞「／ｂｂｃ」は、６５％の評価値を有する一方で、フェースＡ又はフェースＢのいずれかにおける名称接頭辞「／ｂｂｃ」は、６０％の評価値を有する。名称接頭辞「／ｎｅｔｆｌｉｘ」についてのＦＩＢエントリは、名称接頭辞「／ｎｅｔｆｌｉｘ」がフェースＤに対してマッピングされており、フェースＤにおける「／ｎｅｔｆｌｉｘ」が５０％の評価値を有することを指定している。
【００４１】
データ構造はまた、全てのフェースにわたって名称接頭辞に評価値を割り当てることができる。例えば、データ構造２００は、フェース欄２０４において数値ゼロによって示されるいかなるフェースにも名称接頭辞「／ｃｎｎ」をマッピングしない。しかしながら、「／ｃｎｎ」エントリについての評価値欄２０４は、６０％の評価値を指定することができる。
【００４２】
いくつかの実施形態において、データ構造２００は、それぞれキャッシュされたコンテンツオブジェクトに評価情報（例えば、評価値）を割り当てるコンテンツストアに対応することができる。欄２０２は、キャッシュされたコンテンツオブジェクトの名称空間を記憶しており、欄２０４は、コンテンツオブジェクトがキャッシュされたフェースを指定することができる。欄２０６は、コンテンツオブジェクトがキャッシュされた時点での名称接頭辞及びフェースについての属性値に基づいて、欄２０４の対応するフェースを介して受信したコンテンツオブジェクトについて算出された評価値を記憶している。
【００４３】
図３Ａは、実施形態にかかる例示的なネットワークパケット３００を図示している。具体的には、パケット３００は、名称（又は名称接頭辞）３０２と、転送ノードの１つ以上のリソースに対して実行される命令を含むヘッダ３０４とを含むことができ、ネットワークノードがリソース上で命令を実行するときを管理する評価基準３０８を含むことができる。ヘッダ３０４は、各リソースフィールドが転送ノードのリソースに関連付けられているように、複数のリソースフィールド３０６を含むことができ、対応するリソースについての命令を含む。パケット３００はまた、ターゲット装置についてのデータを保持することができるか又はリソースフィールドのうちの１つ以上からの命令を実行するときにルータによって使用されるデータを保持することができるペイロード３１０を含むことができる。
【００４４】
リソースフィールド３０６は、転送情報ベースについてのＦＩＢリソースフィールド３０６．１、保留インタレスト表についてのＰＩＴリソースフィールド３０６．２及びコンテンツストアについてのＣＳリソースフィールド３０６．３など、ＣＣＮ、ＮＤＮ又はＩＣＮアーキテクチャのリソースについてのフィールドのセットを含むことができる。例えば、リソースフィールド３０６．１及び３０６．２は、名称接頭辞についての評価値が評価基準３０８を満たす場合にインタレストのようなパケットを転送ノードに処理させる、ＰＩＴについての「書き込み」命令及びＦＩＢについての「読み出し」命令を含むことができる。また、（例えば、要求されたデータを生成又は検索することによって）ネットワークノードがインタレストを満たすことができる場合、ネットワークノードは、データについての同じ名称を含むが最初のパケットの送信元にパケットを返送するプログラムされたヘッダフィールドのセットも含む他のパケットを生成することができる。この新たなパケットは、コンテンツオブジェクトのようなパケットを転送ノードに処理させるＰＩＴについての「読み出し」命令を含むＰＩＴリソースフィールド３０６．２を含むことができる。これらのノードは、対応する要求やインタレストが受信されたインターフェースを介してパケットを転送するためにＰＩＴリソースフィールド３０６．２を処理する。さらに、パケットのデータ（ペイロード）はまた、ＣＳにキャッシュされることができる。いくつかの実施形態において、新たなパケットのヘッダはまた、ネットワークパケット３００において指定された評価基準（例えば、評価基準３０８）を含むことができる。
【００４５】
リソースフィールド３０６はまた、現在知られている又は今後開発される任意の他のネットワーク装置リソースについての１つ以上のフィールドを含むことができる。これらの追加のリソースは、ネットワークノードにおいて展開されている追加特徴をサポートすることができ、又は、より高レベルの名称付きデータネットワーキングアーキテクチャ又は情報中心ネットワーキングアーキテクチャの追加特徴をサポートすることができる。例えば、ネットワークノードはまた、ネットワークノードについての様々なメトリックを記録する「メトリック」リソースを含むことができる。名称３０２は、収集するためにメトリックについての名称接頭辞を指定することができ、メトリックリソースフィールドにおける「読み出し」命令は、名称接頭辞に関連する様々な性能メトリックのレポートをネットワークノードにコンパイルさせることができる。名称接頭辞についての評価値が評価基準３０８を満たす場合、ネットワークノードは、メトリックレポートを含む新たなパケットを生成して新たなパケットを返送するために、リソースフィールドにおける命令を実行する。
【００４６】
他の例として、「ＱｏＳ」リソースは、ＱｏＳリソースに対して実行するための命令を含むパケットに基づいてネットワークノードにおけるルーティング挙動を再構成することができる。ＱｏＳリソースフィールドは、トラフィックシェーピング構成をＱｏＳリソースに移行する「作成」又は「更新」命令を含むことができる。このトラフィックシェーピング構成は、例えば、所定のインターフェースにおける所定の名称接頭辞についての最大帯域幅を示すことができる。名称接頭辞は、全ての名称接頭辞にわたってトラフィックシェーピング構成に移行するためにルート「／」名称接頭辞を含むことができ、又は、所定のインターフェースにおけるこの名称接頭辞についてトラフィックシェーピング構成に移行するために特定の非ルート名称接頭辞（例えば、／ｂｂｃ／ｈｅａｄｌｉｎｅｓ）を含むことができる。また、ＱｏＳリソースフィールドは、所定のインターフェースについてのトラフィックシェーピング構成を読み出すか又は削除する「読み出し」又は「削除」命令を含むことができる。
【００４７】
いくつかの実施形態において、ネットワークノードは、名称接頭辞についての評価値が評価基準３０８を満たす場合にＱｏＳリソースに対して命令を実行することができる。例えば、管理者は、評価基準３０８が第１のトラフィックシェーピング構成に移行するための最小評価閾値を指定する１つのＱｏＳ−構成パケットを発行することができ、評価基準３０８が第２のトラフィックシェーピング構成に移行するための最大評価閾値を指定する他のＱｏＳ−構成パケットを発行することができる。したがって、第２のトラフィックシェーピング構成が第１のトラフィックシェーピング構成よりも低帯域幅構成を示す場合には、これら２つのＱｏＳ−構成パケットは、名称接頭辞についての高い評価値を有する他のインターフェースに対する高帯域幅を可能としながら、名称接頭辞についての低い評価値を有するインターフェースを効果的に抑制することができる。
【００４８】
図３Ｂは、実施形態にかかる命令フィールド３４２のセットを含む例示的なリソースフィールド３４０を図示している。各命令フィールドは、対応するリソース上で実行されることができる所定の操作に対応することができる。例えば、ＦＩＢ、ＰＩＴ及びＣＳは、それぞれ、データ要求パケット（例えば、インタレスト）を転送するために又はデータ（例えば、コンテンツオブジェクト）をキャッシュ若しくは返送するために使用可能なデータを記憶している。したがって、リソースフィールド３４０は、「作成」、「読み出し」、「更新」及び「削除」（ＣＲＵＤ）などの持続的記憶装置において行うことができる様々な基本的な機能のそれぞれについてのフィールドを含むことができる。ネットワークノードは、パケットの名称又は名称接頭辞に基づいてローカルリソースにおいてこれらの機能を実行することができる。「作成」フィールド３４２．１は、ネットワークノードがリソースにエントリを作成するかどうかを示しており、「読み出し」フィールド３４２．２は、ネットワークノードがリソースからエントリを読み出すかどうかを示している。「更新」フィールド３４２．３は、ネットワークノードが既存のリソースエントリを更新するかどうかを示しており、「削除」フィールド３４２．４は、ネットワークノードがリソースの既存のエントリを削除するかどうかを示している。
【００４９】
いくつかの実施形態において、各命令フィールドは、対応する命令又は操作が実行されるかどうかを示す単一ビット又はビット群（例えば、バイト又はワード）などのフラグを含むことができる。例えば、バイナリ「１」の値を含む命令フィールドは、ネットワークノードが対応するリソースに対して実行するように命令フィールドに関連付けられた命令を「示す」又は「含む」と解釈される。バイナリ「０」の値を含む命令フィールドは、命令フィールドに関連付けられた命令を含まないと解釈されるか、又は、命令フィールドに関連付けられた操作が対応するリソース上で実行されるべきではないことを示すと解釈されることができる。命令フィールドがパケットに設定されており且つ名称接頭辞についてのローカル評価値が評価基準を満たしていると転送ノードが判定した場合、転送ノードは、命令フィールドに対応する１つ以上の命令（例えば、バイナリ命令）を判定することができ、パケットを処理するようにリソース上でこれらの命令を実行する。
【００５０】
命令フィールドはまた、転送ノードによって実行されたときにパケットを処理するために転送ノードにリソース上で動作させるか又は操作を実行させる明確な命令のセットを含むことができる。これらの命令は、スクリプト（例えば、インタプリタ言語で記述された命令）を含むことができるか又はスタンドアロンプログラム（例えば、プロセッサ又は仮想マシンによって実行されるバイナリ命令）を含むことができる。転送ノードは、転送ノードがパケットを転送する方法を構成するためにＦＩＢエントリを選択的に作成、更新又は削除するなど、カスタムの方法でＣＲＵＤ操作を実行するために、これらの命令を実行することができる。
【００５１】
いくつかの実施形態において、パケットはまた、パケットがパケットの名称又は名称接頭辞に関連付けられたターゲットネットワークノードに向けてネットワークを横断するのにともないオンザフライルートを動的に変更するためにＦＩＢエントリ上でカスタム「作成」又は「更新」操作を行うことができる。例えば、ＦＩＢリソースフィールドは、失敗したリンクについての又は評価値が評価基準を上回っている若しくは下回っているインターフェースについてのＦＩＢエントリを削除する「削除」命令を含むことができ、過剰利用のインターフェースからネットワークトラフィックを迂回させ且つあまり利用されていないインターフェースに向ける方法でＦＩＢを更新するための「作成」又は「更新」命令を含むことができる。
【００５２】
図３Ｃは、実施形態にかかる明確な命令のセットを含む例示的な命令フィールド３６０を図示している。具体的には、命令フィールド３６０は、フラグ３６２と、パラメータのセット３６４と、命令のセット３６６とを含むことができる。フラグ３６２は、対応する操作が行われるかどうかを示す単一ビット又はビット群を含むことができる。
【００５３】
パラメータ３６４は、「作成」、「読み出し」、「更新」又は「削除」命令又は操作を行うのに必要な任意の追加データを含むことができる。例えば、ＦＩＢリソースについての「読み出し」命令フィールドは、パケットを転送するときに使用するための多数のホップを示すパラメータ３６４を含むことができる。他の例として、ＦＩＢリソース又はＰＩＴリソースについての「作成」又は「更新」命令フィールドは、リソースのエントリに挿入されるデータを含むパラメータ３６４を含むことができる。これは、ネットワークコントローラが、その命令がネットワークにわたってＦＩＢ及びＰＩＴリソースに必要なエントリを作成するパケットを広めることによって名称付きデータネットワーク又は情報中心ネットワークにわたってルートを構成するのを可能とすることができる。
【００５４】
いくつかの実施形態において、パラメータ３６４はまた、対応するリソースにおける名称接頭辞についての評価基準を含むことができる。命令フィールド３６０のパラメータ３６４において指定された評価基準は、パケットのヘッダにおいてグローバルな評価基準を無効にすることができる。代わりに、パケットは、パケットのヘッダにグローバルな評価基準を指定せずにパラメータ３６４においてリソース固有の評価基準を指定することができる。これは、パケットがリソースに固有である評価基準を指定するのを可能とし、複数のリソースにわたって操作を実行するときに複数のリソース固有の属性を指定することを容易とすることができる。
【００５５】
命令３６６は、リソース上で操作を実行するためにネットワークノードによって実行される命令を含むことができる。これは、ネットワークノードがリソースにアクセスする前に前処理作業を実行するのを、又は、リソースにアクセスした後に後処理タスクを実行するのを可能とすることができる。
【００５６】
いくつかの実施形態において、リソースフィールドは、リソース上で実行可能なＣＲＵＤ機能の各種類について別個の命令フィールドを含む必要がないことがある。リソースフィールドは、カスタムタスクを達成するために１つ以上のリソース上で動作するプログラムを形成する命令のセットを含むことができる。図３Ｄは、実施形態にかかるネットワークノードによって実行されるプログラム命令を含む例示的なリソースフィールド３８０を図示している。リソースフィールド３８０は、パケットを処理するためにネットワークノードによって実行される命令のセット３８４を含むことができ、命令３８４によって使用可能なデータ３８２を含むことができる。
【００５７】
図３Ｄは、実施形態にかかるネットワークノードによって実行されるプログラム命令を含む例示的なリソースフィールド３８０を図示している。リソースフィールド３８０は、リソース上で操作を実行するためにネットワークノードによって実行される命令のセット３８４を含むことができる。例えば、データ３８２は、対応するリソースにおいて名称接頭辞についての評価基準を含むことができる。
【００５８】
図４は、実施形態にかかるネットワークノードにおいてパケットを処理する方法４００を図示するフローチャートである。動作中、システムは、名称付きデータネットワーク又は情報中心ネットワークを介してパケットを受信することができる（動作４０２）。システムは、パケットの名称接頭辞についての評価基準を判定するためにパケットのヘッダを分析することができ（動作４０４）、評価基準がローカルに満たされるかどうかを判定することができる（動作４０６）。
【００５９】
いくつかの実施形態において、システムは、リソースにおいて名称接頭辞についての評価値を算出又は取得することによって評価基準がローカルに満たされるかどうかを判定することができ、評価値がパケットの評価基準を満たすかどうかを判定する。システムは、例えば、ルックアップテーブルから評価値にアクセスすることにより、評価値を取得することができる。あるいは、リソースにおいて名称接頭辞についての属性値のセット及び各属性の重みを指定する重み値のセットを含む最新の評価情報を使用して実行時に評価値を算出することができる。評価基準がローカルに満たされていない場合、システムは、パケットの処理を停止することができ、又は、システムログ若しくはネットワークログにおいてパケットを記録するなど、所定の是正措置を実行することができる。
【００６０】
各リソースフィールドは、ネットワーク装置の対応するリソースにおいて実行するための命令を含むことができることを思い出されたい。したがって、評価基準がローカルに満たされる場合、システムは、ローカルネットワークノードのリソースにそれぞれ対応する１つ以上のリソースフィールドを判定するためにパケットのヘッダを分析し（動作４０８）、対応するリソースを操作するように実行するための命令を判定するために各リソースフィールドを分析する（動作４１０）。システムはまた、命令が有効であるかどうかを判定する（動作４１２）。例えば、システムは、リソースが存在し且つローカル装置によってアクセス可能であるかどうかを判定することができ、命令がリソースに対して実行可能であるかどうかを判定することができる。また、システムは、リソースに対して命令を実行するためにパケット許可を与える有効なアクセス制御情報をパケットが有しているかどうかを判定することができる。命令が有効である場合、システムは、対応するリソースに対して命令を実行することによってパケットを処理する（動作４１４）。
【００６１】
図５は、実施形態にかかるリソースについての命令フィールドに基づいてネットワーク装置リソースに対して実行するための命令を判定する方法５００を図示するフローチャートである。動作中、システムは、パケットヘッダのリソースフィールドを分析し、処理するための命令フィールドを選択する（動作５０２）。各命令フィールドは、「作成」、「読み出し」、「更新」又は「削除」操作など、リソース上で実行可能な所定の操作に対応することができることを思い出されたい。命令フィールドは、対応する操作がリソース上で実行されるかどうかを示すフラグを含むことができる。したがって、システムは、命令フィールドのフラグが設定されているかどうかを判定するためにフラグの値を分析する（動作５０４）。
【００６２】
命令フィールドのフラグが設定されている場合、システムは、命令フィールド及びリソースに対応する１つ以上の命令を判定する（動作５０６）。そうでない場合、システムは、より多くの命令フィールドがリソースフィールドに存在するかどうかを判定し続ける（動作５０８）。より多くの命令フィールドが存在する場合、システムは、他の命令フィールドを選択するために動作５０２に戻ることができる。
【００６３】
いくつかの実施形態において、全てのパケットは、ネットワークノードのＦＩＢ、ＰＩＴ又はＣＳなどのネットワークノードのリソース上で特定の操作を実行するのが可能とされるわけではない。例えば、システム管理者は、様々なパケット転送ノードにわたってＦＩＢエントリにルーティング情報を構成するパケットを広めることにより、ネットワークを構成するのを可能とされることができる。一方、通常のクライアント装置は、クライアント装置が制御しないネットワーク経路を構築又は破棄させてはならない。したがって、システムは、パケットが必要な権限を有する場合、パケットを処理するためにローカルリソースに対して命令を実行しなければならないのみである。
【００６４】
図６は、実施形態にかかるネットワークノードのリソースにおいて実行するための操作を判定するときにセキュリティポリシーを実施する方法６００を図示するフローチャートである。動作中、システムは、処理するリソースフィールドを選択し（動作６０２）、対応するリソースに対して実行するための１つ以上の命令を判定する（動作６０４）。
【００６５】
システムはまた、パケットからアクセス制御情報を分析し（動作６０６）、パケットがリソースに対する命令を実行するための十分な権限を有しているかどうかを判定する（動作６０８）。そうである場合、システムは、対応するリソースに対する命令を実行するように進む（動作６１０）。そうでない場合、システムは、処理するより多くのリソースフィールドが存在するかどうかを判定するように進む（動作６１２）。ヘッダがより多くのリソースフィールドを有する場合、システムは、処理する他のリソースフィールドを選択するために動作６０２に戻る。
【００６６】
いくつかの実施形態において、ネットワークノードは、それらの隣接ノードと名称接頭辞についての評価情報を共有することができる。この評価情報は、評価値とともに、評価値を算出するために使用される属性値及び重みを含むことができる。ネットワークノードは、隣接ノードから収集した評価情報からローカルフェースについての評価値を判定することができる。例えば、ローカルノードは、ローカルに評価値を算出する必要がなく、フェースを介してアクセス可能なリモート装置からローカルフェースについての評価値を取得することができる。あるいは、ノードは、所定の目的（例えば、セキュリティ又は性能）に対応する評価値を算出するためにリモート装置から取得した属性値を使用することができる。評価情報を共有するために、システム管理者は、それらの隣接者に対してそれらの評価情報を送信するためにネットワークノードを構成するプログラマブルパケットを広めることができる。このパケットは、評価情報とともに、隣接者とその評価情報を共有するように隣接者を構成するための命令を含むパケットを生成するためにネットワークノードを構成することができる。
【００６７】
例えば、２つのノードＡ及びＢは、それぞれ、ノードＣに対するフェースを有することができる。ノードＡ及びＢは、１つ以上のフェースを介して受信されたデータパケット（例えば、ＣＣＮコンテンツオブジェクト）に基づいて名称接頭辞についての評価値を算出することができる。ノードＡ及びＢはまた、ノードＣに対して評価値を算出するために使用される属性値及び重みとともに名称接頭辞についてのこれらの評価値を通信することができる。この評価情報は、名称接頭辞に収まる全てのコンテンツについての平均又は中央評価値に対応することができるか、又は、コンテンツについての最小若しくは最大評価値又は評価値範囲に対応することができる。
【００６８】
ノードＣは、ノードＡ及びＢから名称接頭辞についての評価情報を指定するパケットを受信することができる。ノードＣは、ノードＢに対する名称接頭辞及びフェースに関連付けてノードＢからの評価情報を記憶することができ、ノードＣに対する名称接頭辞及びフェースに関連付けてノードＣからの評価情報を記憶することができる。
【００６９】
図７は、実施形態にかかるリモートネットワークノードからの評価情報を指定するパケットを処理する方法７００を図示するフローチャートである。評価情報の一部は、評価値とともに、評価値を算出するために使用される属性値及び重みを含む。動作中、ネットワークノードは、名称接頭辞についてのリモートノードの評価情報を指定し且つパケットの評価情報を処理して隣接する他のノードとローカル評価情報を共有するための命令を含むパケットを受信することができる（動作７０２）。ネットワークノードは、パケットが到来したフェースを判定するために（動作７０６）パケットの命令を実行し（動作７０４）、名称接頭辞及びフェースに関連付けてパケットの評価情報を記憶することができる（動作７０８）。
【００７０】
ネットワークノードはまた、ローカルネットワーク装置からアクセス可能なコンテンツについてのローカル評価情報を判定することができ（動作７１０）、評価情報並びに受信したパケットの命令を含むパケットを生成する（動作７１２）。そして、ネットワークノードは、１つ以上の出口フェースを判定し（動作７１４）、１つ以上の出口フェースを介して新たなパケットを転送する（動作７１６）。
【００７１】
いくつかの実施形態において、ネットワークノードはまた、フェースに関連付けられた隣接ノードと、名称接頭辞／フェースの組み合わせについての評価情報を共有することができる。これは、そのフェースから名称接頭辞についての評価低下を隣接ノードにネットワークノードが通知するのを可能とし、隣接ノードが低い評価を生成した問題を分離して修正するのを可能とする。したがって、ネットワークノードは、その隣接者がネットワークノードからの名称接頭辞について算出した評価値を認識することができ、ネットワークノードの隣接者の評価値が名称接頭辞についてのローカル評価値と一致しないときに是正措置を行うことができる。
【００７２】
図８は、実施形態にかかるローカルネットワークノードに対するフェースについての評価情報を指定するパケットを処理する方法８００を図示するフローチャートである。動作中、システムは、ローカルネットワーク装置に対する名称接頭辞及びフェースについてのリモートノードの評価情報を指定するパケットを受信することができる（動作８０２）。パケットはまた、パケットの評価情報を処理し、望ましくない低い評価値を是正するための是正措置を行うための命令を含むことができる。ネットワークノードは、この評価情報から取得又は算出されたリモート評価値が名称接頭辞についてのローカル評価値未満であるかどうかを判定するために（動作８０６）パケットの命令を実行することができる（動作８０４）。リモート評価値は、評価情報に含まれるリモート算出評価値であってもよく、又は、評価情報から属性値及び／又は重みを使用してローカルに算出された評価値であってもよい。
【００７３】
リモート評価値が名称接頭辞についてのローカル評価値未満である場合、ネットワーク装置は、評価値が望ましくないほど低いかどうかを判定することができる。例えば、ネットワーク装置は、ローカル評価値とリモート評価値との差異を算出することができ（動作８０８）、算出された差異が所定の閾値よりも大きいかどうかを判定する（動作８１０）。差異が所定の閾値未満である場合、ネットワーク装置は、名称接頭辞についてのリモート算出評価値とローカル評価値との差異を是正するように設計された是正措置を実行することができる（動作８１２）。是正措置は、評価値の差異の理由を診断することと、それらのフェースに対して評価値の名称接頭辞に関連付けられた１つ以上のフェースに通知することと、及び／又は、高い評価値を有するフェースから名称接頭辞に関連付けられたコンテンツを受信するためにＱｏＳパラメータを調整することとを含むことができる。
【００７４】
例えば、ノードＣは、名称接頭辞「／ｂｂｃ／ｈｅａｄｌｉｎｅｓ」のもとにコンテンツについて７５％の評価値を算出することができる。フェースからノードＣに対する名称接頭辞「／ｂｂｃ／ｈｅａｄｌｉｎｅｓ」についての評価値が８０％から４０％に低下した旨をノードＡがノードＣにレポートした場合、ノードＣは、なぜ性能値が名称接頭辞について低下したのかの理由を判定するために診断チェックを実行することができる。
【００７５】
ノードＣは、フェースからノードＤに対する名称接頭辞「／ｂｂｃ／ｈｅａｄｌｉｎｅｓ」のもとにコンテンツを取得することができる。ノードＤに対するフェースが名称接頭辞「／ｂｂｃ／ｈｅａｄｌｉｎｅｓ」について８０％の評価値を有するとノードＣが判定した場合、ノードＣは、ノードＣがコンプロマイズされたと判定したかどうか、又は、ノードＡとノードＣとの間のリンクがコンプロマイズ若しくは低下したかどうかを調査することができる。しかしながら、ノードＤに対するフェースが名称接頭辞「／ｂｂｃ／ｈｅａｄｌｉｎｅｓ」について４０％の評価値を有する旨をノードＣが判定した場合、ノードＣは、他のフェース（例えば、高い評価値を有する他のフェース）からこの名称接頭辞についてのコンテンツを受信するように決定する。ノードＤは、ノードＤが名称接頭辞についての低い評価値を調査して是正するのを可能とするように低い評価値をノードＤに代替として又は追加的に通知することができる。
【００７６】
図９は、実施形態にかかるパケットに含まれる命令に基づいてパケットの転送を容易とする例示的な装置９００を図示している。装置９００は、有線又は無線の通信チャネルを介して互いに通信することができる複数のモジュールを備えることができる。装置９００は、１つ以上の集積回路を使用して実現されてもよく、図９に示されるものよりも少ないか又は多いモジュールを含んでもよい。さらに、装置９００は、コンピュータシステムに一体化されてもよく、又は、他のコンピュータシステム及び／又は装置と通信することができる別個の装置として実現されてもよい。具体的には、装置９００は、通信モジュール９０２と、パケット処理モジュール９０４と、命令判定モジュール９０６と、命令処理モジュール９０８と、セキュリティモジュール９１０とを備えることができる。
【００７７】
いくつかの実施形態において、通信モジュール９０２は、評価基準と、対応するリソースに対して実行するための命令をそれぞれ含む１つ以上のリソースフィールドとを備えるヘッダを含むパケットを受信することができる。パケット処理モジュール９０４は、パケットの名称接頭辞についての評価値がパケットの評価基準を満たすかどうかを判定することができ、そうである場合には、対応するリソースに対して実行するための命令を含むリソースフィールドを選択する。
【００７８】
命令判定モジュール９０６は、実行される１つ以上の命令を判定するためにリソースフィールドを分析することができ、命令処理モジュール９０８は、リソースを操作するための命令を実行することができる。セキュリティモジュール９１０は、アクセス制御情報がリソースにアクセスするためのパケット許可を与えるかどうかを判定することができ、そうである場合、命令を実行するように命令処理モジュールを構成することができる。
【００７９】
図１０は、実施形態にかかるパケットに含まれる命令に基づいてパケットの転送を容易とする例示的なコンピュータシステム１００２を図示している。コンピュータシステム１００２は、プロセッサ１００４と、メモリ１００６と、記憶装置１００８とを含む。メモリ１００６は、管理メモリとして機能し且つ１つ以上のメモリプールを記憶するために使用可能な揮発性メモリ（例えば、ＲＡＭ）を含むことができる。さらにまた、コンピュータシステム１００２は、ディスプレイ装置１０１０、キーボード１０１２及びポインティングデバイス１０１４に結合されることができる。記憶装置１００８は、オペレーティングシステム１０１６、パケット転送システム１０１８及びデータ１０３０を記憶することができる。
【００８０】
パケット転送システム１０１８は、コンピュータシステム１００２によって実行されたとき、コンピュータシステム１００２に本開示に記載された方法及び／又はプロセスを実行させることができる命令を含むことができる。具体的には、パケット転送システム１０１８は、評価基準と、対応するリソースに対して実行するための命令をそれぞれ含む１つ以上のリソースのフィールドとを備えるヘッダを含むパケットを受信するための命令を含むことができる（通信モジュール１０２０）。さらに、パケット転送システム１０１８は、パケットの名称接頭辞についての評価値がパケットの評価基準を満たすかどうかを判定し、そうである場合、対応するリソースに対して実行するための命令を含むリソースフィールドを選択するための命令を含むことができる（パケット処理モジュール１０２２）。
【００８１】
パケット転送システム１０１８はまた、実行される１つ以上の命令を判定するためにリソースフィールドを分析するための命令を含むことができ（命令判定モジュール１０２４）、リソースにおいて命令を実行するための命令を含むことができる（命令処理モジュール１０２６）。パケット転送システム１０１８はまた、アクセス制御情報がリソースにアクセスするためのパケット許可を与えるかどうかを判定し、アクセス制御情報がリソースにアクセスするための許可を与える場合にコマンドを実行するように命令処理モジュールを構成するための命令を含むことができる（セキュリティモジュール１０２８）。
【００８２】
データ１０３０は、本開示に記載された方法及び／又はプロセスによって入力として必要とされるか又は出力として生成される任意のデータを含むことができる。具体的には、データ１０３０は、少なくともＦＩＢ、ＰＩＴ、ＣＳ、並びに、ＦＩＢ、ＰＩＴ及び／又はＣＳの操作を行うために必要な情報を記憶することができる。
【００８３】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在公知の若しくは後に開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００８４】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。
【００８５】
さらにまた、上述した方法及びプロセスは、ハードウェアモジュールに含めることができる。例えば、ハードウェアモジュールは、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び、現在公知の若しくは後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュールが起動されると、ハードウェアモジュールは、ハードウェアモジュールの内部に含まれる方法及びプロセスを実行する。
【図１】
2016039631.tif 000003
【図２】
2016039631.tif 000004
【図３Ａ】
2016039631.tif 000005
【図３Ｂ】
2016039631.tif 000006
【図３Ｃ】
2016039631.tif 000007
【図３Ｄ】
2016039631.tif 000008
【図４】
2016039631.tif 000009
【図５】
2016039631.tif 000010
【図６】
2016039631.tif 000011
【図７】
2016039631.tif 000012
【図８】
2016039631.tif 000013
【図９】
2016039631.tif 000014
【図１０】
2016039631.tif 000015