(57)【要約】【課題】情報指向ネットワーキング（ＩＣＮ）ネットワークにおけるパケット・ハンドリングの方法等を提供する。【解決手段】方法は、インタレスト・パケットをネットワーク・デバイスで受信することを含んでよく、インタレスト・パケットは、複数の関数を含む機能チェーンを識別する。方法は、機能チェーンにおける複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行することを更に含んでよい。【選択図】図１１
2017139761.tif 000002
【特許請求の範囲】
【請求項１】
情報指向ネットワーキング（ＩＣＮ）ネットワークにおいてパケットを処理する方法であって、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する方法。
【請求項２】
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
請求項１に記載の方法。
【請求項３】
前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送する
ことを更に有する請求項２に記載の方法。
【請求項４】
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、請求項１に記載の方法。
【請求項７】
前記プローブ・インタレスト・メッセージを送信することは、プローブ・インタレストを識別するフィールド、ルーティング・コストを識別するフィールド、及び前記ネットワーク・デバイスによって送信されるプローブ・メッセージの数を識別するフィールド、のうちの１つ以上を含むプローブ・インタレスト・メッセージを送信することを有する、
請求項６に記載の方法。
【請求項８】
１つ以上のプロセッシング・システムによって実行される場合に、該プロセッシング・システムに、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する動作を実施させるよう構成される命令を含む１つ以上の非一時的なコンピュータ可読媒体。
【請求項９】
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記動作は、前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送することを更に有する、
請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、請求項８に記載のコンピュータ可読媒体。
【請求項１２】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、請求項８に記載のコンピュータ可読媒体。
【請求項１３】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、請求項８に記載のコンピュータ可読媒体。
【請求項１４】
情報指向ネットワーキング（ＩＣＮ）ネットワークにおいて作動するネットワーク・デバイスであって、
入来インターフェイスと、
発出インターフェイスと、
１つ以上のプロセッサと、
前記プロセッサによって実行される場合に、該プロセッサに、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する動作を実施させるよう構成されるコンピュータ読み出し可能な命令を記憶するメモリと
を有するネットワーク・デバイス。
【請求項１５】
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
請求項１４に記載のネットワーク・デバイス。
【請求項１６】
前記動作は、前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送することを更に有する、
請求項１５に記載のネットワーク・デバイス。
【請求項１７】
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、請求項１４に記載のネットワーク・デバイス。
【請求項１８】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、請求項１４に記載のネットワーク・デバイス。
【請求項１９】
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、請求項１４に記載のネットワーク・デバイス。
【請求項２０】
前記プローブ・インタレスト・メッセージを送信することは、プローブ・インタレストを識別するフィールド、ルーティング・コストを識別するフィールド、及び前記ネットワーク・デバイスによって送信されるプローブ・メッセージの数を識別するフィールド、のうちの１つ以上を含むプローブ・インタレスト・メッセージを送信することを有する、
請求項１９に記載のネットワーク・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願で論じられる実施形態は、情報指向ネットワーキング（ＩＣＮ；information  centric  networking）ネットワークにおけるルーティング・プロトコルに関係がある。
【０００２】
［関連出願の相互参照］
本願は、２０１６年２月５日付けで出願された米国特許出願第１５／０１７５５０号の一部係属出願であり、該特許出願は、その全文を参照により本願に援用される。
【背景技術】
【０００３】
インターネットは、現在、インターネット・プロトコル（ＩＰ；Internet  Protocol）構造に基づく。それは、コンテンツが位置している場所（例えば、所与のＩＰアドレス）を基準とする。情報指向ネットワーキング（ＩＣＮ）ネットワークでは、基準は、どこにコンテンツが位置しているかではなく、どのコンテンツが要求されているかに基づく。
【０００４】
本願で請求される対象は、上述されたような環境でのみ動作する実施形態又は上述されたような如何なる欠点も解決する実施形態に制限されない。むしろ、この背景は、本願で記載される実施形態が実施され得る技術分野の一例を説明するためにのみ設けられている。
【発明の概要】
【０００５】
本開示の１つ以上の実施形態は、情報指向ネットワーキング（ＩＣＮ）ネットワークにおいてパケットを処理する方法を含んでよい。一実施形態に従って、方法は、インタレスト・パケット（interest  packet）をネットワーク・デバイスで受信することを含んでよく、前記インタレスト・パケットは、複数の関数を含む機能チェーン（functional  chain）を識別する。更に、方法は、前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行することを含んでよい。
【０００６】
実施形態の目的及び利点は、特許請求の範囲に特に指し示されている要素、特徴、及び組み合わせに少なくともよって、実現及び達成されるだろう。前述の概要及び以下の詳細な説明はいずれも、説明及び例示であり、限定ではない。
【図面の簡単な説明】
【０００７】
例となる実施形態は、添付の図面の使用を通じて、更なる特定及び詳細をもって記載及び説明されるだろう。
【０００８】
【図１】情報指向ネットワーキング（ＩＣＮ）ネットワークにおいてパケットを処理するためのシステムの例を表す図である。
【０００９】
【図２】Ａ及びＢは、ＩＣＮネットワークの様々なネットワーク・デバイスのためのペンディング・インタレスト・テーブル（ＰＩＴ；pending  interest  table(s)）の例を表す。
【００１０】
【図３】ＩＣＮネットワークにおいてインタレスト・パケットを処理する方法の例のフローチャートである。
【００１１】
【図４】ＩＣＮネットワークにおいてデータ・パケットを処理する方法の例のフローチャートである。
【００１２】
【図５】ＩＣＮネットワークにおいてデータ・パケットを処理するシステムの他の例を表す図である。
【００１３】
【図６】Ａ、Ｂ及びＣは、ＩＣＮネットワークの様々なネットワーク・デバイスのためのフォワーディング情報ベース（ＦＩＢ；forwarding  information  base(s)）を表す。
【００１４】
【図７】Ａ、Ｂ及びＣは、ＩＣＮネットワークの様々なネットワーク・デバイスのためのＰＩＴの例を表す。
【００１５】
【図８】ＩＣＮネットワークにおいてパケットを処理するシステムの他の例を表す。
【００１６】
【図９】ＩＣＮネットワークのネットワーク・デバイスのためのＦＩＢの例を表す。
【００１７】
【図１０】ＩＣＮネットワークにおいてインタレスト・パケットを処理する方法の他の例のフローチャートである。
【００１８】
【図１１】ＩＣＮネットワークにおいてインタレスト・パケットを処理する方法の更なる他の例のフローチャートである。
【００１９】
【図１２】ＩＣＮネットワークにおいてインタレスト・パケットを処理するシステムの他の例を表す。
【００２０】
【図１３】ＩＣＮシステムの例を表す図である。
【００２１】
【図１４】コンピューティング・デバイスの例のブロック図である。
【発明を実施するための形態】
【００２２】
本開示は、情報指向ネットワーキング（ＩＣＮ）におけるパケット・ハンドリングに関する。より具体的には、本開示の実施形態は、ＩＣＮネットワークにおける機能チェーンのための命名スキーム及び／又はルーティング・プロトコルに関する。当業者によって認識されるだろうように、本開示の様々な実施形態は、ＩＣＮネットワークの効率及び／又は性能を高めることができる。
【００２３】
一実施形態に従って、特定のシンボル（例えば、“→”又は“←”）を含む命名スキームは、ＩＣＮネットワークにおける機能チェーンを識別するために使用されてよい。別の言い方をすれば、特定のシンボル及び特定のフォーマットを含む、インタレスト・パケット（例えば、データを要求するパケット）の名称は、ＩＣＮネットワークにおける機能チェーンを識別してよい。一例として、インタレスト・パケットの名称は、“Ａ→Ｂ→Ｃ”又は“Ｃ←Ｂ←Ａ”であってよく、処理されたデータ（本願では“処理済みデータ（cooked  data）”とも呼ばれる。）を要求してよい。この例において、処理されたデータは、生のデータ（raw  data）Ａを関数Ｂによって処理することによって、次いで、その処理されたデータを関数Ｃによって更に処理することによって、生成されてよい。１つ以上の処理ステップのそのような連続は、機能チェーンと呼ばれてよい。語「機能チェーン」は、本願では「サービス・チェーン」又は「プロセス・チェーン」とも呼ばれてよいことが知られる。
【００２４】
使用される命名スキームにかかわらず、インタレスト・パケットは、プロセス・チェーンにおける最終エントリ（本願では、「最後のエントリ」とも呼ばれる。）に基づきネットワーク内でルーティングされてよい。より具体的には、“→”（右向き矢印）を含むインタレスト・パケットの名称に関して、生のデータＡは、名称の最初に置かれてよく、プロセス・チェーンにおける最終エントリは、名称の最後に置かれてよい。“←”（左向き矢印）を含むインタレスト・パケットの名称に関して、生のデータＡは、名称の最後に置かれてよく、プロセス・チェーンにおける最終エントリは、名称の最初に置かれてよい。本願で開示される実施形態に従って、“→”又は“←”以外の他のシンボルが命名スキームにおいて使用されてよいことが知られる。１つの非限定的な例として、インタレスト・パケットは、例えば、生のデータＡが関数Ｂによって処理され、次いで関数Ｃによって更に処理されることを要求するように、“Ａ＊Ｂ＊Ｃ”又は“Ｃ＊Ｂ＊Ａ”と命名されてよい。他の例として、インタレスト・パケットは、例えば、生のデータＸが関数Ｙによって処理され、次いで関数Ｚによって更に処理されることを要求するように、“Ｘ！Ｙ！Ｚ”又は“Ｚ！Ｙ！Ｘ”と命名されてよい。
【００２５】
本開示の様々な実施形態に従って、ネットワーク・デバイス（例えば、ルータ）は、プロセス・チェーンの最後の関数（例えば、インタレスト・パケットの名称における最終エントリ）に基づき、インタレスト・パケットを転送してよい。更には、インタレスト・パケットを受信すると、サービス・ルータ（例えば、プロセス・チェーンの関数を提供することができるルータ）は、自身がプロセス・チェーンの最終エントリによって示されている関数を提供するよう構成されているかどうかを判定してよい。そうであるならば、サービス・ルータは、プロセス・チェーンの最終のエントリを除くことによって、インタレスト・パケットの名称を更新してよい。より具体的には、サービス・ルータは、名称から最右のエントリ（“→”の場合）又は最左のエントリ（“←”の場合）を除くことによって、インタレスト・パケットの名称を更新してよい。更には、２つのエントリが、サービス・ルータにおいてペンディング・インタレスト・テーブル（ＰＩＴ）に加えられてよい。認識されるだろうように、ＰＩＴエントリは、処理されたデータをプロセス・チェーンにおけるコンシューマへ返送するために使用されてよい。
【００２６】
いくつかの実施形態において、サービス・ルータは、サービス・ルータに関連するプロセッシング・デバイス（例えば、アプリケーション）へインタレスト・パケットを転送してよく、プロセッシング・デバイス（例えば、アプリケーション）は、名称から最右のエントリ（“→”の場合）又は最左のエントリ（“←”の場合）を除くことによってインタレスト・パケットの名称を更新し、更新されたインタレスト・パケットを更なる転送のためにサービス・ルータへ返送してよい。
【００２７】
プロセス・チェーンの最終エントリによって示されている関数を提供するようサービス・ルータが構成されていない場合には、サービス・ルータは、フォワーディング情報ベース（ＦＩＢ）に従ってインタレスト・パケットを転送してよい。ＦＩＢは、関数（例えば、アプリケーション又はコンテンツ）の名称及び関数への対応するインターフェイスを含んでよい。
【００２８】
他の実施形態に従って、インタレスト・パケットのためのルートは、機能チェーンの複数の関数に基づき決定されてよい。別な言い方をすれば、インタレスト・パケットのためのルートは、インタレスト・パケットの名称に含まれている複数のエントリに基づき決定されてよい。
【００２９】
実施形態において、例えば、ルートは、機能チェーンにおける夫々の関数に基づき、ソース・ルータ（例えば、ソース・ネットワーク・デバイス）によって決定されてよい。この実施形態において、ソース・ルータは、決定された最適なルートをオブジェクト（例えば、強制ルート・オブジェクト（forced  route  object））にポピュレート（populate）し、オブジェクトを含むインタレスト・パケットを転送してよい。インタレスト・パケットを受信する各ルータは、オブジェクトによって定義されている決定されたルートに基づき、インタレスト・パケットを転送してよい。
【００３０】
他の実施形態において、例えば、インタレスト・パケットを受信する各ルータは、機能チェーンにおける２つ以上の関数に基づきルートを決定してよい。更に具体的には、一例として、インタレスト・パケットを受信する各ルータは、２つの関数（例えば、機能チェーンにおいて隣接するもの）がそのルータの共通の発出インターフェイスに関連しているかどうかを判定してよい。インタレスト・パケットは、存在する場合に共通のインターフェイスへ転送されてよい。
【００３１】
他の実施形態において、インタレスト・パケットを受信する各ルータは、その発出インターフェイスのうちのどれが機能チェーンにおける関数の最多数と関連しているかを決定してよい。この実施形態において、各ルータは、関連する関数が最多数である自身の発出インターフェイスへインタレスト・パケットを転送してよい。
【００３２】
更なる他の実施形態において、例えば、インタレスト・パケットのためのルートは、機能チェーンにおける各関数に基づき、あて先ルータ（例えば、あて先ネットワーク・デバイス）によって決定されてよい。この実施形態において、あて先ルータは、ソース・ルータとあて先ルータとの間の夫々の起こり得るルートのコストに基づき、最適なルートを決定してよい。
【００３３】
本開示の実施形態は、これより、添付の図面を参照して説明される。
【００３４】
図１は、本開示の少なくとも１つの実施形態に従ってＩＣＮネットワークにおいてパケットを処理する、例となるシステム１００を表す図である。システム１００は、データ・コンシューマ１１０、１つ以上のネットワーク・デバイス１２０（例えば、ネットワーク・デバイス１２０Ａ、１２０Ｂ、１２０Ｃ、１２０Ｄ、１２０Ｅ、及び１２０Ｆ）、１つ以上のプロセッシング・デバイス１３０（例えば、１３０Ｆ）、及びネットワーク１５０を含んでよい。
【００３５】
いくつかの実施形態において、システム１００はＩＣＮネットワークであってよい。そのような及び他の実施形態において、データ・コンシューマ１１０は、インタレスト・パケット（例えば、インタレスト・パケット１４０）を介してデータを要求してよい。いくつかの実施形態において、インタレスト・パケットは、処理チェーンにおける各ステップを識別してよい。例えば、データ・コンシューマ１１０からのインタレスト・パケットは、処理ステップ（例えば、プロセッシング・デバイス１３０Ｆで実行されるもの）及び他の処理ステップ（例えば、ネットワーク・デバイス１２０Ｂで実行されるもの）を識別してよい。更には、ネットワーク・デバイス１２０及びプロセッシング・デバイス１３０のうちの１つ以上は、データ・パケットを生成してよい。データ・パケットは、インタレスト・パケットによって要求されるデータ（本願では「コンテンツ」とも呼ばれる。）を提供するパケットである。
【００３６】
データ・コンシューマ１１０は、コンテンツを要求するよう構成される如何なるデバイス、システム、コンポーネント、又はコンポーネントの集合も含んでよい。データ・コンシューマ１１０は、コンピュータ（例えば、デスクトップ、ラップトップ、サーバ、など）として、モバイル機器（例えば、携帯電話機、パーソナル・デジタル・アシスタント（ＰＤＡ；personal  digital  assistant）、タブレット、など）として、又はネットワークへ接続された何らかの他のデバイス（例えば、ネットワーク対応サーモスタット、冷蔵庫、又は他の電気製品）として実装されてよい。データ・コンシューマ１１０は、プロセッサ、メモリ、及び記憶媒体を含んでよい。例として、ネットワーク１５０での動作中に、データ・コンシューマ１１０は、インタレスト・パケットをネットワーク・デバイス１２０へ送ってよい。ネットワーク１５０はＩＣＮネットワークとして動作しているので、インタレスト・パケットは、所望のコンテンツがどこに位置するかを示さなくてよく、代わりに、データ・コンシューマ１１０によって望まれているコンテンツの名前を挙げてよい。
【００３７】
ネットワーク・デバイス１２０は、ネットワーク１５０内でパケットを受信し、ハンドリングし、及び／又は処理するよう構成される如何なるデバイス、システム、コンポーネント、又はコンポーネントの集合も含んでよい。ネットワーク・デバイス１２０は、夫々がルータ、ゲートウェイ、スイッチ、又は何らかの他のネットワーク要素として実装されてよい。いくつかの実施形態において、ネットワーク・デバイス１２０は、夫々がプロセッサ、メモリ、及び記憶媒体を含んでよい。ネットワーク・デバイス１２０は、夫々が１つ以上のインターフェイスを更に含んでよい。インターフェイスを介して、ネットワーク・デバイス１２０は通信する。インターフェイスは、ネットワーク・デバイスとの通信のための物理的及び／又は論理的入口若しくは出口点を含んでよい。例えば、ネットワーク・デバイス１２０Ａは、ネットワーク・デバイス１２０Ａをデータ・コンシューマ１１０へ接続する第１インターフェイスと、ネットワーク・デバイス１２０Ａをネットワーク・デバイス１２０Ｂへ接続する第２インターフェイスとを備えてよい。
【００３８】
いくつかの実施形態において、ネットワーク・デバイス１２０は、夫々がコンテンツ・ストア、ＰＩＴ、及びＦＩＢを含んでよい。コンテンツ・ストア、ＰＩＴ、及びＦＩＢは、ネットワーク・デバイス１２０のメモリ及び／又は記憶媒体内の物理的又は論理的記憶コンポーネント若しくは場所であってよい。
【００３９】
いくつかの実施形態において、コンテンツ・ストアは、ネットワーク１５０における他のデバイスによって要求されているコンテンツのための記憶場所として動作してよい。コンテンツ・ストアを有してネットワーク１５０において１つ以上のネットワーク・デバイスを実装することによって、頻繁に要求されるコンテンツは、複数のネットワーク・デバイスのコンテンツ・ストアにおいて位置してよく、コンテンツを要求しているデバイスへ、より速く及び／又は効率良く供給されてよい。
【００４０】
いくつかの実施形態において、ＰＩＴは、ネットワーク・デバイスが依然としてコンテンツ・パケットを待っている間にどのようなインタレスト・パケットがネットワーク・デバイスによって受信されたかのステータス・インジケータとなる。例えば、ＰＩＴは、要求されているコンテンツを、そのコンテンツを要求するインタレスト・パケットを受信したネットワーク・デバイスのインターフェイスと関連付けるテーブル・エントリを備えてよい。ＰＩＴは、コンテンツ・パケットがネットワーク・デバイスによって受信される場合に、どのインターフェイスがそのコンテンツを要求しているかを識別するために使用されてよい。それ故に、コンテンツ・パケットは、コンテンツを要求したインターフェイス（要求元インターフェイスと呼ばれる。）においてネットワーク・デバイスから送出されてよい。
【００４１】
いくつかの実施形態において、ＦＩＢは、規則、プロトコル、又は同様のものの組を含んでよく、それによって、ネットワーク・デバイスは、インタレスト・パケットをそのネットワーク・デバイスによって受信される場合にどこに転送すべきかを決定してよい。例えば、インタレスト・パケットがネットワーク・デバイスで受信される場合に、ＦＩＢは、ネットワーク・デバイスのどのインターフェイス（複数を含む。）がインタレスト・パケットを送信してコンテンツを要求するために使用されるかを決定するために利用されてよい。
【００４２】
データ・コンシューマ１１０は、１つ以上のネットワーク・デバイス１２０と通信するよう構成されてよい。例えば、データ・コンシューマ１１０は、処理されたデータをネットワーク・デバイス１２０Ａに要求してよい。ネットワーク・デバイス１２０Ａは、生のデータを記憶してよく、あるいは、別なふうに生のデータへのアクセスを有してよい。生のデータは、１つ以上の処理ステップの後に、データ・コンシューマ１１０によって要求されている処理されたデータを最終的にもたらしてよい。
【００４３】
プロセッシング・デバイス１３０Ｆのような１つ以上のプロセッシング・デバイス１３０は、プロセス・チェーンの１つ以上の処理ステップを実施してよい。加えて、又は代替的に、ネットワーク・デバイス１２０のうちの１つ以上は、プロセス・チェーンの処理ステップのうちの１つ以上を実施するよう構成されてよい。データ・コンシューマ１１０及び／又はネットワーク・デバイス１２０は、プロセス・チェーンの前、間、及び後にインタレスト・パケット１４０及び／又はデータ・パケット１６０を用いてネットワーク１５０上で通信してよい。
【００４４】
ネットワーク１５０は、データ・コンシューマ１１０、ネットワーク・デバイス１２０、及び／又はプロセッシング・デバイス１３０のうちの１つ以上の間の通信を提供するよう構成される如何なるデバイス、システム、コンポーネント、又はそれらの組み合わせも含んでよい。例として、ネットワーク１５０は、通信における１つ以上のワイド・エリア・ネットワーク（ＷＡＮ；wide  area  network(s)）又はローカル・エリア・ネットワーク（ＬＡＮ；local  area  network(s)）を含んでよい。いくつかの実施形態において、ネットワーク１５０は、複数のＷＡＮ及び／又はＬＡＮの間の論理的及び物理的接続によって形成された世界的なインターネットワークを含め、インターネットを含んでよい。加えて、又は代替的に、ネットワーク１５０は、１つ以上のＲＦネットワーク並びに／又は１つ以上の有線及び／若しくは無線ネットワーク、例えば、制限なしに、８０２．ｘｘ、Ｂｌｕｅｔｏｏｔｈ（登録商標）アクセス・ポイント、無線アクセス・ポイント、ＩＰベース・ネットワーク、又は同様のものを含んでよい。ネットワーク１５０はまた、１つのタイプのネットワークが他のタイプのネットワークとインターフェイス接続することを可能にするサーバ、サブステーション、又は他の接続デバイスを含んでよい。加えて、又は代替的に、ネットワーク１５０は、イントラネット、あるいは、組織内で又は別なふうに安全な様態において通信する１つ以上のコンピューティング・デバイスを含んでよい。
【００４５】
プロセス・チェーンの一例は、圧縮、フォーマット変更、音声出力の変化、などのような、映像に関連した処理ステップを含んでよい。他の例として、プロセス・チェーンは、患者の身体に対して配置されているセンサからの生のデータをコンパイルすること、データにフィルタをかけること、データをモデリングすること、及びデータを用いてシミュレーションを実行することのような、医療データに関連した処理ステップを含んでよい。あらゆるデータのためのあらゆるサイズのプロセス・チェーンが、本開示の適用範囲内で考えられる。いくつかの実施形態において、プロセス・チェーンのステップは、順序に依存してよく（例えば、特定の順序を有してよい。）、あるいは、順序に非依存であってよく（例えば、如何なる順序でも行われてよい。）、あるいは、複合的であってよい（例えば、一部のステップは如何なる順序でも行われてよいが、他のステップは特定の順序を有する。）。
【００４６】
単に説明を目的として、システム１００の考えられる動作は、これより記載される。最初に、インタレスト・パケット１４０Ａは、データ・コンシューマ１１０からネットワーク・デバイス１２０Ａへ送られてよい。ネットワーク１５０はＩＣＮネットワークとして動作しているので、インタレスト・パケット１４０Ａは、所望のコンテンツがどこに位置するかを示さなくてよく、代わりに、データ・コンシューマ１１０によって望まれているコンテンツの名前を挙げてよい。一実施形態に従って、インタレスト・パケット１４０Ａの名称は、特定のシンボル及び特定のフォーマットを含んでよい。より具体的には、インタレスト・パケット１４０Ａの名称は、名称のエントリ間にシンボルを含んでよい。単なる例として、シンボルは“→”又は“←”を含んでよい。
【００４７】
上述されたように、例となるプロセス・チェーンは、医療データに関連した処理ステップを含んでよい。１つの具体例において、図１を参照して以下で記載されるように、生の医療データは（例えば、患者の身体に対して配置されているセンサから）コンパイルされてよく、データはモデリングされてよく、次いで、モデリングされたデータはシミュレーションされてよい。この例において、ネットワーク・デバイス１２０Ａで受信されるインタレスト・パケット１４０Ａの名称は、“/medical/data/Alex→/model/medical→/simulation/medical”であってよい。
【００４８】
一実施形態において、インタレスト・パケット１４０Ａを受信すると、ネットワーク・デバイス１２０Ａは、自身がプロセス・チェーンの最終エントリ（例えば、“/simulation/medical”）で示されている関数を提供することができるかどうかを判定してよい。この例において、ネットワーク・デバイス１２０Ａは、示されている関数を提供するよう構成されておらず、よって、そのＦＩＢに従って、ネットワーク・デバイス１２０Ａは、プロセス・チェーンにおける最終エントリ（例えば、“/simulation/medical”）に基づきインタレスト・パケット１４０Ａを転送してよい。
【００４９】
この例を続けると、インタレスト・パケット１４０Ａは、ネットワーク・デバイス１２０Ｂへ転送されてよい。ネットワーク・デバイス１２０Ｂは、プロセス・チェーンにおける最終エントリ（例えば、“/simulation/medical”）によって示されている関数を実行するよう構成されている。ネットワーク・デバイス１２０Ｂは関数（例えば、“/simulation”関数）を実行するよう構成されているので、ネットワーク・デバイス１２０Ｂは、インタレスト・パケットの名称から最終エントリを除くことによって、インタレスト・パケットの名称を更新してよい。別の言い方をすれば、名称“/medical/data/Alex→/model/medical”を有する更新されたインタレスト・パケット１４０Ｂが、ネットワーク・デバイス１２０Ｂで生成されてよい。
【００５０】
更には、例えば、２つのエントリが、ネットワーク・デバイス１２０ＢでＰＩＴへ加えられてよい。１つのＰＩＴエントリは、ネットワーク・デバイス１２０Ａから送信されてネットワーク・デバイス１２０Ｂで受信されたインタレスト・パケットの完全な名称を含んでよく、１つのＰＩＴエントリは、インタレスト・パケット１４０Ｂの更新された名称を含んでよい。図２Ａは、ネットワーク・デバイス１２０ＢでのＰＩＴの例を表す。
【００５１】
この例を続けると、ネットワーク・デバイス１２０Ｂは、プロセス・チェーンにおける最終エントリ（例えば、“/model/medical”）に基づきインタレスト・パケット１４０Ｂ（例えば、“/medical/data/Alex→/model/medical”）を転送してよい。インタレスト・パケット１４０Ｂは、ネットワーク・デバイス１２０Ｃへ転送されてよい。インタレスト・パケットを受信すると、ネットワーク・デバイス１２０Ｃは、自身がプロセス・チェーンにおける最終エントリ（例えば、“/model/medical”）で示されている関数（例えば、“model”関数）を提供することができるかどうかを判定してよい。この例において、ネットワーク・デバイス１２０Ｃは、示されている関数を提供するよう構成されておらず、よって、そのＦＩＢに従って、ネットワーク・デバイス１２０Ｃは、プロセス・チェーンにおける最終エントリ（例えば、“/model/medical”）に基づきインタレスト・パケット１４０Ｂをネットワーク・デバイス１２０Ｆへ転送してよい。
【００５２】
この例において、ネットワーク・デバイス１２０Ｆ、及び、より具体的には、プロセッシング・デバイス１３０Ｆは、プロセス・チェーンにおける最終エントリ（例えば、“/model/medical”）によって示されている処理ステップを実施するよう構成されてよい。よって、ネットワーク・デバイス１２０Ｆは、インタレスト・パケットの名称から最終エントリを除くことによって、インタレスト・パケットの名称を更新してよい。別の言い方をすれば、名称“/medical/data/Alex”を有する更新されたインタレスト・パケット１４０Ｆが、ネットワーク・デバイス１２０Ｆで生成されてよい。
【００５３】
更には、例えば、２つのエントリが、ネットワーク・デバイス１２０ＦでＰＩＴへ加えられてよい。１つのＰＩＴエントリは、ネットワーク・デバイス１２０Ｃから送信されてネットワーク・デバイス１２０Ｆで受信されたインタレスト・パケットの完全な名称を含んでよく、１つのＰＩＴエントリは、インタレスト・パケットの更新された名称を含んでよい。図２Ｂは、ネットワーク・デバイス１２０ＦでのＰＩＴの例を表す。
【００５４】
ネットワーク・デバイス１２０Ｆは、次いで、プロセス・チェーンにおける残りのエントリ（例えば、/medical/data/Alex）に基づきインタレスト・パケット（例えば、/medical/data/Alex）を転送してよい。インタレスト・パケット１４０Ｆは、要求されたデータを含むネットワーク・デバイス１２０Ｄへ転送されてよい。
【００５５】
ネットワーク・デバイス１２０Ｆからインタレスト・パケット１４０Ｆを受信すると、ネットワーク・デバイス１２０Ｄは、データ・パケット１６０Ｄ（例えば、/medical/data/Alex）をネットワーク・デバイス１２０Ｆへ返送してよい。ＰＩＴエントリに従って、ネットワーク・デバイス１２０Ｆは、次いで、データ・パケット１６０Ｆ（例えば、/medical/data/Alex）をプロセッシング・デバイス１３０Ｆへ送ってよい。プロセッシング・デバイス１３０Ｆは、関数（例えば、model関数）を実行し、データ・パケット１６０Ｆ（例えば、/medical/data/Alex→/model/medical）をネットワーク・デバイス１２０Ｆへ返送してよい。ネットワーク・デバイス１２０ＦでのＰＩＴエントリに基づき、データ・パケット１６０Ｆ（例えば、/medical/data/Alex→/model/medical）は、ネットワーク・デバイス１２０Ｃへ、次いでネットワーク・デバイス１２０Ｂへ返送されてよい。ネットワーク・デバイス１２０Ｂは、データ・パケットをシミュレーション・アプリケーションへ転送してよい。シミュレーション・アプリケーションは、関数（例えば、simulation関数）を実行するよう、ネットワーク・デバイス１２０Ｂの部分であるか、あるいは、ネットワーク・デバイス１２０Ｂへローカルで付属されてよい。処理されたデータを含むデータ・パケット１７０Ｆは、次いで、ネットワーク・デバイス１２０Ａを介してデータ・コンシューマ１１０へ送られてよい。
【００５６】
本開示の実施形態は、上述されたように、特定のシンボルとして矢印（例えば、“→”又は“←”）を使用して記載されているが、如何なる他の適切なシンボル（例えば、“＆”又は“＾”）も使用されてよいことが認識されるだろう。更には、変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、図１に対して行われてよい。例えば、システム１００は、本開示において例示及び記載されているものよりも多い又は少ない要素を含んでよい。システム１００は、如何なるトポロジにおいても配置される更なるネットワーク・デバイス、プロセッシング・デバイス、及び／又はデータ・コンシューマを含んでよい。加えて、又は代替的に、処理チェーンの如何なる長さ又は組み合わせも、利用されてよい。
【００５７】
上述されたように、“←”を使用することによって、インタレスト・パケットは、プロセス・チェーンにおける最終エントリに基づきルーティングされてよい。例えば、インタレスト・パケットＣ←Ｂ←Ａを考えると、インタレスト・パケットは、デフォルトのルーティング方法を用いて関数Ｃへ転送されてよい。このルーティング方法は、“最長プリフィックス一致（longest  prefix  matching）”と呼ばれてよい。ルータは、ローカルのＦＩＢテーブルをチェックし、インタレスト・パケットの名称について最も長いプリフィックス一致を与えうる第１インターフェイスを選択し、インタレスト・パケットを転送してよい。更には、関数Ｃ（又は関数Ｃへ接続されているルータ）は、インタレスト・パケットの名称を“Ｂ←Ａ”へ変更し、そして、デフォルトのルーティング方法を用いて関数Ｂへインタレスト・パケットを転送してよい。更には、関数Ｂ（又は関数Ｂへ接続されているルータ）は、インタレスト・パケットの名称を“Ａ”へ変更し、そして、デフォルトのルーティング方法を用いて生のデータＡへインタレスト・パケットを転送してよい。
【００５８】
図３は、本開示の少なくとも１つの実施形態に従って、受信されたインタレスト・パケットを処理するための例となる方法３００のフローチャートである。方法３００は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００又はそのコンポーネントの１つ以上は、方法３００に関連した動作の１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体に記憶されているプログラム命令は、方法３００の動作の１つ以上を実施するよう実行されてよい。
【００５９】
ブロック３０５で、インタレスト・パケットは、最初のネットワーク・デバイス（例えば、図１のネットワーク・デバイス１２０Ａ）からネットワーク・デバイス（例えば、図１のネットワーク・デバイス１２０Ｂ）で受信されてよい。インタレスト・パケットは、１つ以上のエントリを含む名称を含んでよく、プロセス・チェーンにおける各ステップを識別してよい。更には、いくつかの実施形態において、インタレスト・パケットにおける名称のエントリは、コンテンツ要求を識別し、及び／又は、プロセス・チェーンにおいて実行される１つ以上の関数を示してよい。
【００６０】
ブロック３１０で、インタレスト・パケットで要求されているコンテンツがネットワーク・デバイスのコンテンツ・ストアにおいて記憶されているかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、要求されているコンテンツの名称を、ネットワーク・デバイスのコンテンツ・ストアにおけるエントリと比較してよい。要求されているコンテンツがネットワーク・デバイスのコンテンツ・ストアにおいて記憶されていると決定される場合には、方法３００はブロック３４５へ進んでよい。要求されているコンテンツがネットワーク・デバイスのコンテンツ・ストアにおいて記憶されていないと決定される場合には、方法３００はブロック３１５へ進んでよい。
【００６１】
ブロック３１５で、ネットワーク・デバイスのＰＩＴがインタレスト・パケットのエントリ（例えば、要求されているコンテンツ）を含むかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、要求されているコンテンツの名称を、ネットワーク・デバイスのＰＩＴにおけるエントリと比較してよい。ネットワーク・デバイスのＰＩＴがインタレスト・パケットのエントリを含むと決定される場合には、方法３００はブロック３５０へ進んでよい。ネットワーク・デバイスのＰＩＴがインタレスト・パケットのエントリを含まないと決定される場合には、方法３００はブロック３２０へ進んでよい。
【００６２】
ブロック３２０で、インタレスト・パケットの名称が特定のシンボル（例えば、“→”）を含むかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、特定のシンボルについてインタレスト・パケットの名称をパーズ（parse）してよい。インタレスト・パケットの名称が特定のシンボルを含むと決定される場合には、方法３００はブロック３５５へ進んでよい。インタレスト・パケットの名称が特定のシンボルを含まないと決定される場合には、方法３００はブロック３２５へ進んでよい。
【００６３】
ブロック３２５で、インタレスト・パケットを転送するための規則、プロトコル、又は同様のものをＦＩＢが含むかどうかが決定されてよい。例えば、ネットワーク・デバイスは、そのＦＩＢにアクセスして、ＦＩＢがインタレスト・パケットを転送するための規則、プロトコル、又は同様のものを含むかどうかを決定してよい。ネットワーク・デバイスのＦＩＢがインタレスト・パケットを転送するための規則、プロトコル、又は同様のものを含まない場合には、方法３００はブロック３６０へ進んでよい。ネットワーク・デバイスのＦＩＢがインタレスト・パケットを転送するための規則、プロトコル、又は同様のものを含む場合には、方法３００はブロック３３０へ進んでよい。
【００６４】
ブロック３３０で、ネットワーク・デバイスが要求されている関数を実行するよう構成されているかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、それが、又は関連するプロセッシング・デバイスが、要求されている関数を実行し得るかどうかを決定してよい。ネットワーク・デバイスも関連するプロセッシング・デバイスも要求されている関数を実行するよう構成されていないと決定される場合には、方法３００はブロック３６５へ進んでよい。ネットワーク・デバイス又は関連するプロセッシング・デバイスが要求されている関数を実行するよう構成されていると決定される場合には、方法３００はブロック３３５へ進んでよい。
【００６５】
ブロック３３５で、インタレスト・パケットの名称が特定のシンボル（例えば、“→”）を含むかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、特定のシンボルについてインタレスト・パケットの名称をパーズ（parse）してよい。インタレスト・パケットの名称が特定のシンボルを含まないと決定される場合には、方法３００はブロック３７０へ進んでよい。インタレスト・パケットの名称が特定のシンボルを含むと決定される場合には、方法３００はブロック３４０へ進んでよい。
【００６６】
ブロック３４０で、（例えば、ネットワーク・デバイスでの又は関連するプロセッシング・デバイスでの）アプリケーションへのインターフェイスを示すエントリはＰＩＴへ加えられてよく、インタレスト・パケットの名称の最終エントリは取り除かれてよく、そして、方法３００はブロック３２０へ戻ってよい。例えば、ネットワーク・デバイスは、そのＰＩＴに対してアプリケーションへのインターフェイスを示すエントリを加え、且つ、インタレスト・パケットの名称の最終エントリを取り除いてよい。
【００６７】
ブロック３４５で、ネットワーク・デバイスは、インタレスト・パケットが受信されたインターフェイスを介して、データ・パケットにおいてコンテンツを返送してよい。
【００６８】
ブロック３５０で、ネットワーク・デバイスは、インタレスト・パケットが受信されたインターフェイスを更に示すように、インタレスト・パケットのためのＰＩＴエントリを更新してよい。
【００６９】
ブロック３５５で、インタレスト・パケットの名称における最終エントリが特定されてよく、方法３００はブロック３２５へ進んでよい。
【００７０】
ブロック３６０で、インタレスト・パケットはドロップされてよく、且つ／あるいは、否定応答（ＮＡＣＫ；negative-acknowledgement）が送信されてよい。
【００７１】
ブロック３６５で、インタレスト・パケットは、ネットワーク・デバイスのＦＩＢに基づき処理のために他のネットワーク・デバイス（例えば、次のネットワーク・デバイス）へ転送されてよい。
【００７２】
ブロック３７０で、インタレスト・パケットは、処理のために（例えば、関数を実行するネットワーク・デバイスでの又は関連するプロセッシング・デバイスでの）アプリケーションへ転送されてよい。
【００７３】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに方法３００に対して行われてよい。例えば、方法３００の動作は、異なる順序で実施されてよい。更には、説明されている動作及びアクションは、例としてのみ与えられており、動作及びアクションのいくつかは、開示される実施形態の本質から外れることなしに、任意であっても、より少ない動作及びアクションへとまとめられても、あるいは、更なる動作及びアクションへと拡張されてもよい。
【００７４】
一実施形態に従って、ＩＣＮネットワークの予期される動作は、条件付き処理ループを含んでよい。この条件付き処理ループでは、サービス・ルータは、受信されたデータが満足されるかどうかを判定してよい。そうでない場合には、新しいインタレスト・パケットが、データを再度要求するためにサービス・ルータから発せられてよい。
【００７５】
例えば、プロセス・チェーンのためのインタレスト・パケットの名称は、“Ａ→Ｂ→Ｃ”であってよい。予期される動作の間に、データＡは、処理のためにデバイス（例えば、サービス・ルータ）Ｂへ送られてよい。更に、処理されたデータ（例えば、Ａ→Ｂ）は、更なる処理のために他のデバイス（例えば、他のサービス・ルータ）Ｃへ送られてよく、最終的な処理されたデータ（例えば、Ａ→Ｂ→Ｃ）は、コンシューマへ送られてよい。しかし、いくつかの場合に、デバイスＢへ送られるデータＡは、デバイスＢにとって満足でないことがある。よって、デバイスＢは、データＡを再度要求（例えば、Ａへループバック）してよい。同様に、デバイスＣへ送られる処理されたデータＡ→Ｂは、デバイスＣにとって満足でないことがある。従って、デバイスＣは、デバイスＢが処理されたデータＡ→Ｂを再度送ることを要求してよい。
【００７６】
図４は、本開示の少なくとも１つの実施形態に従って、受信されたデータ・パケットを処理するための例となる方法４００のフローチャートである。方法４００は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００又はそのコンポーネントの１つ以上は、方法４００に関連した動作の１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体に記憶されているプログラム命令は、方法４００の動作の１つ以上を実施するよう実行されてよい。
【００７７】
ブロック４０５で、データ・パケットは、名称及びコンテンツを含んでよく、ネットワーク・デバイスで受信されてよい。
【００７８】
ブロック４１０で、データ・パケットにおけるコンテンツについてネットワーク・デバイスが一致したＰＩＴエントリを有しているかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、コンテンツの名称を、ネットワーク・デバイスのＰＩＴにおけるエントリと比較してよい。ネットワーク・デバイスがデータ・パケットにおけるコンテンツについてＰＩＴエントリを含まないと決定される場合には、方法４００はブロック４３５へ進んでよい。ネットワーク・デバイスがデータ・パケットにおけるコンテンツについてＰＩＴエントリを含むと決定される場合には、方法４００はブロック４１５へ進んでよい。
【００７９】
ブロック４１５で、ＰＩＴがアプリケーション（例えば、要求されている関数を実行するアプリケーション）へのインターフェイスを識別するかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイスは、ネットワーク・デバイスで動作しているアプリケーション又は関連するプロセッシング・デバイスで動作しているアプリケーションへのインターフェイスをＰＩＴエントリが識別するかどうかを判定してよい。ＰＩＴエントリがアプリケーションへのインターフェイスを識別しないと決定される場合には、方法４００はブロック４４０へ進んでよい。ＰＩＴエントリがアプリケーションへのインターフェイスを識別すると決定される場合には、方法４００はブロック４２０へ進んでよい。
【００８０】
ブロック４２０で、データ・パケットのコンテンツは、ＰＩＴエントリに基づきアプリケーションへ転送されてよい。例えば、ネットワーク・デバイスは、ＰＩＴエントリで識別されているインターフェイスを介して、ネットワーク・デバイスで動作しているアプリケーションへ又は関連するプロセッシング・デバイスへコンテンツを供給してよい。
【００８１】
ブロック４２５で、データ・パケットのコンテンツが満足であるかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイス及び／又はプロセッシング・デバイスは、コンテンツを解析して、コンテンツがプロセス・チェーンで実施される処理のために有効であることを確かめてよい。データ・パケットのコンテンツが満足でないと決定される場合には、方法４００はブロック４５０へ進んでよい。データ・パケットのコンテンツが満足であると決定される場合には、方法４００はブロック４３０へ進んでよい。
【００８２】
ブロック４３０で、アプリケーションは、処理されたデータをネットワーク・デバイス（例えば、アプリケーションに関連するネットワーク・デバイス）へ返送してよく、データ・パケットの名称は然るべく変更されてよく、そして、方法４００はブロック４１０へ戻ってよい。
【００８３】
ブロック４３５で、ネットワーク・デバイスは、データ・パケットのコンテンツを捨ててよい。
【００８４】
ブロック４４０で、ネットワーク・デバイスは、そのコンテンツ・ストアにおいてコンテンツを記憶してよく、方法４００はブロック４４５へ進んでよい。
【００８５】
ブロック４４５で、データ・パケットは、ネットワーク・デバイスのＰＩＴに基づき転送されてよい。
【００８６】
ブロック４５０で、アプリケーションは、コンテンツのためのインタレスト・パケットを再発行してよい。
【００８７】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに方法４００に対して行われてよい。例えば、方法４００の動作は、異なる順序で実施されてよい。更には、説明されている動作及びアクションは、例としてのみ与えられており、動作及びアクションのいくつかは、開示される実施形態の本質から外れることなしに、任意であっても、より少ない動作及びアクションへとまとめられても、あるいは、更なる動作及びアクションへと拡張されてもよい。
【００８８】
いくつかの実施形態において、いくつかのシステムは、生のデータの複数のソース（例えば、複数台のビデオカメラ）を含んでよい。図５は、コンシューマ５１０、ネットワーク・デバイス５２０Ａ、５２０Ｂ及び５２０Ｃ、プロセッシング・デバイス５３０Ａ及び５３０Ｂ、並びにデータ・ソース５５０を含むシステム５００を表す。データ・ソースは、データの３つのソース５５０Ａ、５５０Ｂ及び５５０Ｃを含んでよい。より具体的には、この例において、プロセッシング・デバイス５３０Ａはビデオ圧縮器を含み、プロセッシング・デバイス５３０Ｂはビデオ結合器を含む。データ・ソース５５０Ａ、５５０Ｂ及び５５０Ｃは、夫々が、例えば、ビデオカメラを含む。更には、ネットワーク・デバイス５２０ＡはインターフェイスＡ＿１、Ａ＿２及びＡ＿３を含んでよく、ネットワーク・デバイス５２０ＢはインターフェイスＢ＿１、Ｂ＿２及びＢ＿３を含んでよく、ネットワーク・デバイス５３０ＣはインターフェイスＣ＿１、Ｃ＿２、Ｃ＿３及びＣ＿４を含んでよい。
【００８９】
この例において、コンシューマ５１０は、ショーから複数のビデオ（例えば、ライブ映像）を受信したいと望んでよく、単に例として、“/video_compression/←/video_combiner/←/video_data/3/”と名付けられたインタレスト・パケットを生成してよい。
【００９０】
システム５００の例を続けると、インタレスト・パケットは、インタレスト・パケットの名称における最後のエントリ（“/video_compression/”）に基づきネットワーク・デバイス５２０Ａへ転送されてよい。ネットワーク・デバイス５２０Ａは、インタレスト・パケットをプロセッシング・デバイス５３０Ａへ転送してよい。プロセッシング・デバイス５３０Ａは、インタレスト・パケットをネットワーク・デバイス５２０Ａへ転送してよい。プロセッシング・デバイス５３０Ａ（又はネットワーク・デバイス５２０Ａ）は、インタレスト・パケットの名称を“/video_combiner/←/video_data/3/”に変更してよく、インタレスト・パケットは、ネットワーク・デバイス５２０Ｂへ転送されてよい。ネットワーク・デバイス５２０Ｂは、インタレスト・パケットをプロセッシング・デバイス５３０Ｂへ転送してよい。プロセッシング・デバイス５３０Ｂは、インタレスト・パケットをネットワーク・デバイス５２０Ｂへ転送してよい。インタレスト・メッセージは、３片のビデオ・データを要求してよい。よって、プロセッシング・デバイス５３０Ｂ（又はネットワーク・デバイス５２０Ｂ）は、３つのインタレスト・パケットを発行してよく、３つの異なったビデオ・データ片を取り出すようインタレスト・パケットの名称を変更してよい。インタレスト・パケットは、ネットワーク・デバイス５２０Ｃへ転送されてよい。ネットワーク・デバイス５２０Ｃは、インタレスト・パケットをデータ・ソース５５０Ａ、５５０Ｂ及び５５０Ｃへ夫々送信してよい。ネットワーク・デバイス５２０Ａ、５２０Ｂ及び５２０ＣにあるＦＩＢは、図６Ａ、６Ｂ及び６Ｃにおいて夫々表されている。
【００９１】
再び図５を参照すると、ネットワーク・デバイス５２０Ｂは、データがプロセッシング・デバイス５３０Ｂを介して結合され得る前に、複数のデータ・セット（例えば、多角映像）を受信してよい。よって、プロセッシング・デバイス５３０Ｂ（又はネットワーク・デバイス５２０Ｂ）は、上述されたように複数のインタレスト・パケットを発行してよい。より具体的には、例えば、ネットワーク・デバイス５２０Ｂは、次の３つのインタレスト・パケットを発行してよい：
/video_data/AreaA/；
/video_data/AreaB/；及び
/video_data/AreaC/。
【００９２】
システム５００の例を続けると、データ・ソース５５０Ａ、５５０Ｂ及び５５０Ｃを含むデータ・ソース５５０は、名称、単に例として、“/video_data/AreaA/”、“/video_data/AreaB/”及び“/video_data/AreaC/”、を有するデータ・パケットを生成してよい。データ・パケットは、ネットワーク・デバイス５２０Ｃへ転送されてよい。ネットワーク・デバイス５２０Ｃは、データ・パケットをネットワーク・デバイス５２０Ｂへ転送してよい。ネットワーク・デバイス５２０Ｂは、データ・パケットをプロセッシング・デバイス５３０Ｂへ送信してよい。プロセッシング・デバイス５３０Ｂは、関数（例えば、ビデオ結合）を実行し、処理済みデータをネットワーク・デバイス５２０Ｂへ送信してよい。プロセッシング・デバイス５３０Ｂ（又はネットワーク・デバイス５２０Ｂ）は、データ・パケットの名称を“/video_combiner/←/video_data/3/”へ変更してよい。ネットワーク・デバイス５２０Ｂは、データ・パケットをネットワーク・デバイス５２０Ａへ送信してよい。ネットワーク・デバイス５２０Ａは、データ・パケットをプロセッシング・デバイス５３０Ａへ転送してよい。プロセッシング・デバイス５３０Ａは、関数を実行し、処理済みデータをネットワーク・デバイス５２０Ａへ送信してよい。プロセッシング・デバイス５３０Ａ（又はネットワーク・デバイス５２０Ａ）は、データ・パケットの名称を“/video_compression/←/video_combiner/←/video_data/3/”へ変更してよい。プロセッシング・デバイス５３０Ａは、次いで、インタレスト・パケットをコンシューマ５１０へ転送してよい。
【００９３】
ネットワーク・デバイス５２０Ａ、５２０Ｂ及び５２０ＣにあるＰＩＴは、図７Ａ、７Ｂ及び７Ｃにおいて夫々表される。
【００９４】
ソース・ルータ（例えば、ネットワーク・デバイス１２０Ａ；図１を参照。）は、（関数を実行する）サービス・ルータの場所及び／又は（コンシューマによって要求されている）データの場所を知っていても知らなくてもよい。更には、機能チェーンの１つよりも多いエントリ（例えば、関数）は、図１を参照して記載されるルーティング・プロトコルのようなルーティング・プロトコルの間、ルータによって考慮されなくてよい。
【００９５】
本開示の他の実施形態に従って、インタレスト・パケットのためのルーティング・プロトコルは、機能チェーンにおける複数の関数に基づき決定されてよい。別の言い方をすれば、機能チェーンのただ１つの関数（例えば、最後の関数）に基づきパケットのルートを決定することに代えて、本開示の様々な実施形態は、機能チェーンにおける複数のエンティティ（例えば、関数）に基づき、インタレスト・パケットのための最適な経路を決定することを含んでよい。語「関数（function）」は、本願では、データ（例えば、医療センサデータ）の処理（例えば、映像データの結合若しくは圧縮）又は取得を参照して使用されてよいことが知られる。
【００９６】
例えば、一実施形態において、ルーティング経路は、ソース・ルータ（例えば、パケットを受信する第１ルータ）によって決定されてよく、ソース・ルータ及び中間のルータは、その決定されたルーティング経路に基づきインタレスト・パケットを転送してよい。別の言い方をすれば、ルーティング経路は、ソース・ルータによって決定されてよく、ソース・ルータ及び夫々の中間ルータは、予め決定されたルーティング経路に基づきインタレスト・パケットを転送してよい。より具体的には、ソース・ルータは、機能チェーンを識別するインタレスト・パケットを受信した後、最低コストを有して機能チェーンの要求されている関数を実行する最適なルートを決定してよい。いくつかの実施形態において、ネットワーク内のルータは、ネットワークの大域的なビューを有してよく、このようにして、ルータは、そのネットワーク内のコンテンツの場所及び関数を知り得ることが知られる。更には、１つ以上の実施形態に従って、インタレスト・パケットの名称は、コンテンツ及びコンテンツの場所を識別してよい。
【００９７】
より具体的な実施形態に従って、インタレスト・パケットは、オブジェクト（強制ルート・オブジェクト）を含んでよい。オブジェクトは、インタレスト・パケットが送信され得る全てのルータを含むホップごとのルーティング経路を識別してよい。一実施形態において、オブジェクトを含むインタレスト・パケットを受信すると、ソース・ルータは、最適なルーティング経路を決定し、その決定されたルーティング経路をオブジェクトにポピュレートしてよい。インタレスト・パケットは、オブジェクトに基づき（例えば、ルーティング経路における全てのルータによって）ルーティングされてよい。
【００９８】
他の実施形態に従って、インタレスト・パケットを受信すると、ルータは、機能チェーンにおける１つよりも多い関数がルータの共通の発出インターフェイスに関連しているかどうかを判定してよい。一例として、機能チェーンにおいて考えられる関数の数は、２、３、４又はそれ以上であってよい。より具体的には、例えば、ルータは、機能チェーンにおいて隣接する２つの関数がルータの同じ発出インターフェイスに関連しているかどうかを判定してよい。更には、より具体的に、ルータは、機能チェーンにおける最後の２つの関数がルータの共通の発出インターフェイスに関連しているかどうかを判定してよい。
【００９９】
一例として、名称“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”を含むインタレスト・パケットを考えると、ルータ（例えば、ソース・ルータ）は、最後の関数（関数Ａｎ）のための発出インターフェイスが最後から２番目の関数（関数Ａｎ−１）のための発出インターフェイスと同じであるかどうかを判定してよい。最後の関数のための発出インターフェイスが最後から２番目の関数のための発出インターフェイスと同じである場合には、インタレスト・パケットは、その共通のインターフェイスを介して転送されてよい。そうでない場合には、デフォルトのルーティング・プロトコルが使用されてよい。
【０１００】
この例を続けると、インタレスト・パケット（“Ａｎ−１←・・・←Ａ２←Ａ１”）を受信すると、ルータ（例えば、関数Ａｎを実行するよう構成されるネットワーク・デバイス）は、関数Ａｎ−１のための発出インターフェイスが関数Ａｎ−２のための発出インターフェイスと同じであるかどうかを判定してよい。関数Ａｎ−１のための発出インターフェイスが関数Ａｎ−２のための発出インターフェイスと同じである場合には、インタレスト・パケットは、その共通のインターフェイスを介して転送されてよい。そうでない場合には、デフォルトのルーティング・プロトコルが使用されてよい。このプロセスは、関数Ａ１を実行するよう構成されるルータにインタレスト・パケットが達するまで、続いてよい。
【０１０１】
図８は、コンシューマ５１０、ネットワーク・デバイス６２０Ａ、６２０Ｂ、６２０Ｃ及び６２０Ｄ、プロセッシング・デバイス６３０Ａ、６３０Ｂ及び６３０Ｄ、並びにデータ・ソース５５０を含むシステム６００を表す。より具体的には、この例において、プロセッシング・デバイス６３０Ａはビデオ圧縮器を含み、プロセッシング・デバイス６３０Ｂ及びプロセッシング・デバイス６３０Ｄの夫々はビデオ結合器を含む。更には、ネットワーク・デバイス６２０Ａは、発出インターフェイス１及び発出インターフェイス２を含んでよい。ネットワーク・デバイス６２０ＡでのＦＩＢの例は、図９に表される。
【０１０２】
単に説明を目的として、システム６００の予期される動作がこれより記載される。最初に、インタレスト・パケット６４０Ａは、データ・コンシューマ５１０からネットワーク・デバイス６２０Ａへ送られてよい。この例において、ネットワーク・デバイス６２０Ａで受信されるインタレスト・パケット６４０Ａの名称は、“/video_compression/←/video_combiner/←/video_data/”であってよい。
【０１０３】
一実施形態において、インタレスト・パケット６４０Ａを受信すると、ネットワーク・デバイス６２０Ａは、機能チェーンの最終エントリ（例えば、“video_compression”）において示されている関数（最後の関数）を自身が提供することができるかどうかを判定してよい。この例において、ネットワーク・デバイス６２０Ａは、示されている関数を提供するよう構成されており、よって、ネットワーク・デバイス６２０Ａは、インタレスト・パケットの名称から最終エントリを除くことによって、インタレスト・パケットの名称を更新してよい。別の言い方をすれば、名称“/video_combiner/←/video_data/”を有する更新されたインタレスト・パケット６４０Ｂが、ネットワーク・デバイス６２０Ａで生成されてよい。更には、例えば、２つのエントリが、ネットワーク・デバイス６２０ＡにおいてＰＩＴに加えられてよい。１つのＰＩＴエントリは、ネットワーク・デバイス６２０Ａで受信されたインタレスト・パケットの完全な名称を含んでよく、１つのＰＩＴエントリは、インタレスト・パケットの更新された名称を含んでよい。
【０１０４】
更には、ネットワーク・デバイス６２０Ａは、関数Ａｎ（“video_combiner”）を実行するアプリケーションへの発出インターフェイスが、関数Ａｎ−１（“video_data”）を実行するアプリケーションへの発出インターフェイスと同じであるかどうかを判定してよい。この例において、ビデオ結合器に関連するネットワーク・デバイス６２０Ｂ、及び映像データを取り出すよう構成されるネットワーク・デバイス６２０Ｃは、ネットワーク・デバイス６２０Ａの発出インターフェイス１を介して夫々アクセス可能である。対照的に、ビデオ結合器に関連するネットワーク・デバイス６２０Ｄのみが、ネットワーク・デバイス６２０Ａの発出インターフェイス２を介してアクセス可能である。そのようなものとして、この例において、ネットワーク・デバイス６２０Ａは、自身の発出インターフェイス１を介してインタレスト・パケット６４０Ｂを送信してよい。
【０１０５】
図１０は、本開示の少なくとも１つの実施形態に従って、インタレスト・パケットをルーティングするための例となる方法６５０のフローチャートである。方法６５０は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００又はそのコンポーネントのうちの１つ以上は、方法６５０に関連した動作のうちの１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体において記憶されているプログラム命令は、方法６５０の動作のうちの１つ以上を実施するよう実行されてよい。
【０１０６】
ブロック６５５で、インタレスト・パケットは、他のデバイス（例えば、図１のコンシューマ１１０）からネットワーク・デバイス（例えば、図１のネットワーク・デバイス１２０Ａ）で受信されてよい。インタレスト・パケットは、１つ以上のエントリを含む名称を含んでよく、且つ、機能チェーンにおける各ステップを識別してよい。更には、いくつかの実施形態において、インタレスト・パケットにおける名称のエントリは、コンテンツ要求を識別し、及び／又は、機能チェーンにおいて実施される１つ以上の関数を示してよい。単に説明を目的として、ブロック６５５で受信されるインタレスト・パケットの名称は、“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”であってよい。
【０１０７】
ブロック６６０で、ネットワーク・デバイスが、機能チェーンにおける最後の関数を実行するアプリケーション、及び機能チェーンにおける最後から２番目の関数を実行するアプリケーションへの共通の発出インターフェイスを備えるかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイス１２０Ａは、関数Ａｎを実行するアプリケーションへの発出インターフェイスが、関数Ａｎ−１を実行するアプリケーションへの発出インターフェイスと同じであるかどうかを判定してよい。最後の関数を実行するアプリケーション及び最後から２番目の関数を実行するアプリケーションのための共通の発出インターフェイスが存在すると決定される場合には、方法６５０はブロック６６５へ進んでよい。最後の関数及び最後から２番目の関数のための共通の発出インターフェイスが存在しないと決定される場合には、方法６５０はブロック７００へ進んでよい。
【０１０８】
ブロック６６５で、インタレスト・パケットは、ネットワーク・デバイスの共通の発出インターフェイスを介して転送されてよい。
【０１０９】
ブロック６７０で、最後のエントリによって識別される関数を実行するアプリケーションを含むか又はそれに関連しているネットワーク・デバイスにインタレスト・パケットが到達したかどうかに関して、決定が行われてよい。インタレスト・パケットがそのようなネットワーク・デバイスに到達したと決定される場合には、方法６５０はブロック６７５へ進んでよい。インタレスト・パケットがそのようなネットワーク・デバイスに到達していないと決定される場合には、方法６５０はブロック６６０へ戻ってよい。
【０１１０】
ブロック６７５で、ネットワーク・デバイスが、機能チェーンにおける最後の関数を実行するアプリケーション、及び機能チェーンにおける最後から２番目の関数を実行するアプリケーションに共通の発出インターフェイスを備えるかどうかに関して、決定が行われてよい。例えば、ネットワーク・デバイス１２０Ｂは、関数Ａｎ−１を実行するアプリケーションへの発出インターフェイスが、関数Ａｎ−２を実行するアプリケーションへの発出インターフェイスと同じであるかどうかを判定してよい。最後の関数及び最後から２番目の関数のための共通の発出インターフェイスが存在すると決定される場合には、方法６５０はブロック６８０へ進んでよい。最後の関数及び最後から２番目の関数のための共通の発出インターフェイスが存在しないと決定される場合には、方法６５０はブロック７０５へ進んでよい。
【０１１１】
ブロック６８０で、インタレスト・パケットは、ネットワーク・デバイスの共通の発出インターフェイスを介して転送されてよい。
【０１１２】
ブロック６８５で、最後のエントリによって識別される関数を実行するアプリケーションを含むか又はそれに関連しているネットワーク・デバイスにインタレスト・パケットが到達したかどうかに関して、決定が行われてよい。インタレスト・パケットがそのようなネットワーク・デバイスに到達したと決定される場合には、方法６５０はブロック６９０へ進んでよい。インタレスト・パケットがそのようなネットワーク・デバイスに到達していないと決定される場合には、方法６５０はブロック６７５へ戻ってよい。
【０１１３】
ブロック６９０で、ｎ−１＝１であるかどうかに関して、決定が行われてよい。ｎ−１＝１であると決定される場合には、方法６５０はブロック６９５へ進んでよい。ｎ−１！＝１であると決定される場合には、方法６５０はブロック７１０へ進んでよい。
【０１１４】
ブロック７００で、デフォルトのルーティング・プロトコルが実施されてよく、方法６５０はブロック６７０へ進んでよい。
【０１１５】
ブロック７０５で、デフォルトのルーティング・プロトコルが実施されてよく、方法６５０はブロック６８５へ進んでよい。
【０１１６】
ブロック７１０で、ｎはｎ−１に等しく設定されてよく、方法６５０はブロック６７５へ進んでよい。
【０１１７】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、方法６５０に対して行われてよい。例えば、方法６５０の動作は、異なる順序で実施されてよい。更には、説明されている動作及びアクションは、単に例として与えられており、動作及びアクションのいくつかは、開示される実施形態の本質から外れることなしに、任意であっても、より少ない動作及びアクションへとまとめられても、あるいは、更なる動作及びアクションへと拡張されてもよい。
【０１１８】
他の実施形態に従って、ネットワーク内の夫々のルータは、いくつの関数がルータの夫々の発出インターフェイスを介して到達され得るかを決定してよい。更には、ルータは、到達可能な関数の最多数を有する発出インターフェイスを介して、インタレスト・パケットを転送してよい。別の言い方をすれば、いくつの関数がその発出インターフェイスを介して到達され得るかを決定した後、ルータは、機能チェーンにおける関数の最多数を有する発出インターフェイスを介してインタレスト・パケットを転送してよい。このプロセスは、機能チェーンの最初の関数（例えば、機能チェーン“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”の関数Ａ１）を実行するよう構成されるルータが到達されるまで、夫々のルータで実施されてよい。
【０１１９】
例として、インタレスト・パケット名“Ａ５←Ａ４←Ａ３←Ａ２←Ａ１”を考えると、ルータは、インタレスト・パケットを受信すると、関数Ａ５、Ａ４及びＡ１が発出インターフェイス３を介して到達され得ること、及び関数Ａ３及びＡ２が発出インターフェイス２を介して到達され得ること、を決定してよい（すなわち、そのローカルＦＩＢに基づく。）。よって、この例において、インタレスト・パケットは、出力インターフェイス３を介して転送されてよい。
【０１２０】
図１１は、本開示の少なくとも１つの実施形態に従って、インタレスト・パケットをルーティングするための例となる方法７５０のフローチャートである。方法７５０は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００又はそのコンポーネントのうちの１つ以上は、方法７５０に関連した動作のうちの１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体において記憶されているプログラム命令は、方法７５０の動作のうちの１つ以上を実施するよう実行されてよい。
【０１２１】
ブロック７５５で、インタレスト・パケットは、他のデバイス（例えば、図１のコンシューマ１１０）からネットワーク・デバイス（例えば、図１のネットワーク・デバイス１２０Ａ）で受信されてよい。単に説明を目的として、ブロック７５５で受信されるインタレスト・パケットの名称は、“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”であってよい。
【０１２２】
ブロック７６０で、インタレスト・パケットの名称において識別される１つよりも多い関数がネットワーク・デバイスの単一の発出インターフェイスを介して到達され得るかどうかに関して、決定が行われてよい。１つよりも多い関数がネットワーク・デバイスの単一の発出インターフェイスを介して到達され得ると決定される場合には、方法７５０はブロック７６５へ進んでよい。インタレスト・パケットの名称において識別される１つよりも多い関数へネットワーク・デバイスの発出インターフェイスが接続しないと決定される場合には、方法７５０はブロック７８０へ進んでよい。
【０１２３】
ブロック７６５で、いくつの関数がネットワーク・デバイスの夫々の発出インターフェイスを介して到達可能であるかに関して決定が行われてよく、インタレスト・パケットは、到達可能な関数の最多数を有する発出インターフェイスを介して転送されてよい。
【０１２４】
ブロック７７０で、インタレスト・パケットがインタレスト・パケットの名称において識別される最初の関数を実行するよう構成されるアプリケーションに到達したかどうかに関して、決定が行われてよい。例えば、インタレスト・パケットの当初の名称が“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”である場合には、関数Ａ１を実行するよう構成されるアプリケーションにインタレスト・パケットが到達したかどうかに関して、決定が行われてよい。最初の関数を実行するよう構成されるアプリケーションにインタレスト・パケットが到達したと決定される場合には、方法７５０はブロック７７５へ進んでよい。最初の関数を実行するよう構成されるアプリケーションにインタレスト・パケットが到達していないと決定される場合には、方法７５０はブロック７６０へ戻ってよい。
【０１２５】
ブロック７８０で、デフォルトのルーティング・プロトコルが実施されてよく、方法７５０はブロック７７０へ進んでよい。
【０１２６】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、方法７５０に対して行われてよい。例えば、方法７５０の動作は、異なる順序で実施されてよい。更には、説明されている動作及びアクションは、単に例として与えられており、動作及びアクションのいくつかは、開示される実施形態の本質から外れることなしに、任意であっても、より少ない動作及びアクションへとまとめられても、あるいは、更なる動作及びアクションへと拡張されてもよい。
【０１２７】
更なる他の実施形態に従って、インタレスト・パケットのためのルートは、あて先ルータによって少なくとも部分的に決定されてよい。より具体的には、あて先ルータは、ソース・ルータとあて先ルータとの間の夫々のルートのコストに基づき、インタレスト・パケットのための最適なルートを決定してよい。
【０１２８】
より具体的には、例えば、ネットワークの予期される動作の間に、名称“Ａｎ←Ａｎ−１←・・・←Ａ２←Ａ１”を有するインタレスト・パケットを考えると、ルータ（例えば、ソース・ルータ）は、インタレスト・パケットの名称において識別される最後の関数（例えば、関数Ａｎ）を実行するアプリケーションへいくつの発出インターフェイスが接続するかを決定してよい。最後の関数（例えば、関数Ａｎ）を実行するアプリケーションへただ１つの発出インターフェイスしか接続しない場合には、インタレスト・パケットは、その発出インターフェイスを介して転送されてよい。最後の関数（例えば、関数Ａｎ）を実行するアプリケーションへの発出インターフェイスが複数存在するとルータが決定する場合には、ルータは、夫々の発出インターフェイスを介してあて先ノードへ複数のプローブ・インタレスト・メッセージ（probe  interest  messages）を送ってよい。別の言い方をすれば、あて先ノードは、ソース・ルータから複数のプローブ・インタレスト・メッセージを受信してよく、夫々のプローブ・インタレスト・メッセージは、ソース・ルータからあて先ルータへ異なる発出インターフェイスを介して送られる。
【０１２９】
プローブ・インタレスト・メッセージは、１つ以上のフィールドを含んでよい。例えば、プローブ・インタレスト・メッセージは、設定される場合にメッセージがプローブ・インタレストであることを示すフィールド（例えば、“Ｐフラグ（P  flag）”）を含んでよい。更には、プローブ・インタレスト・メッセージは、ルーティング・コストに関係があり得るフィールド（例えば、“コスト（cost）”）を含んでよい。非限定的な例として、ルーティング・コストは、ソース・ルータからあて先ルータへのホップの数、ソース・ルータからあて先ルータまでの距離、ルートのための信号強度、などのような、１つ以上の因子に基づいてよい。加えて、プローブ・インタレスト・メッセージは、あて先ルータへ送られるプローブ・メッセージの数を示すことができるフィールド（例えば、“プローブ数（Num.  Probe）”）を含んでよい。
【０１３０】
夫々のプローブ・インタレスト・メッセージについて、“コスト”フィールドは、プローブ・インタレスト・メッセージを受信する各ルータ（夫々の中間ルータ）によって更新されてよい。プローブ・インタレスト・メッセージがあて先ルータに到達すると、あて先ルータは、“プローブ数”フィールドをチェックしてよい。更には、“プローブ数”フィールドに等しい数のプローブ・インタレスト・メッセージを受信した後、あて先ノードは、最低限のコストにより、プローブ・インタレスト・メッセージを識別するソース・ルータへのプローブ・データ・メッセージ（probe  data  message）を返送してよい。
【０１３１】
標準のインタレスト・メッセージと同様に、プローブ・インタレスト・メッセージは、夫々の受信ルータにおいてＰＩＴをポピュレートしてよい。標準のデータ・メッセージと同様に、プローブ・データ・メッセージは、選択されたプローブ・インタレスト・メッセージが使用したのと逆の経路を使用し、そして、プローブ・データ・メッセージは、受信ルータ（例えば、プローブ・データ・メッセージを受信するルータ）でＰＩＴを消費するために使用されてよい。更には、プローブ・データ・メッセージは、受信ルータにおいて情報を更新するために使用されてよい。例えば、プローブ・データ・メッセージにおける情報は、受信ルータのＦＩＢにおいてエントリを加えるために、機能チェーン・ルーティング・テーブル（ＦＣＲＴ；functional  chaining  routing  table）における情報を生成及び更新するために、又はその両方のために、使用されてよい。
【０１３２】
プローブ・データ・メッセージがソース・ルータへ戻ると、ソース・ルータは、プローブ・データ・メッセージが受信された同じインターフェイスへインタレスト・パケットを送信してよい。受信ルータにおける更新されたルーティング情報（例えば、更新されたＦＩＢ又はＦＣＲＴのいずれか一方）に基づき、インタレスト・パケットは、あて先ルータへ転送されてよい。
【０１３３】
図１２は、ネットワーク・デバイス８２０Ａ、８２０Ｂ、８２０Ｃ及び８２０Ｄを含むシステム８００を表す。一例において、ネットワーク・デバイス８２０Ａはソース・ルータであってよく、ネットワーク・デバイス８２０Ａで受信されるインタレスト・パケットの名称は“/medical/data/Alex→/model/medical→/simulation/medical”であってよい。更には、ネットワーク・デバイス８２０Ｂは、シミュレーション関数を実行するよう構成されてよく、ネットワーク・デバイス８２０Ｃは、モデリング関数を実行するよう構成されてよい。
【０１３４】
この例を続けると、ネットワーク・デバイス８２０Ａは、インタレスト・パケットの名称において識別される最後の関数（例えば、/simulation/medical）へいくつの発出インターフェイスが接続するかを決定してよい。この例において、ただ１つの発出インターフェイスしかネットワーク・デバイス８２０Ｂへ接続しない。ネットワーク・デバイス８２０Ｂは、インタレスト・パケットの名称において識別される最後の関数を実行するよう構成される。従って、インタレスト・パケットは、インターフェイスＸを介してネットワーク・デバイス８２０Ｂへ送信されてよい。更には、上記の様々な実施形態に従って、インタレスト・パケットの名称は更新されてよい。
【０１３５】
更には、ネットワーク・デバイス８２０Ｂは、インタレスト・パケットの名称において識別される最後の関数（例えば、/model/medical）へいくつの発出インターフェイスが接続するかを決定してよい。この例において、２つの発出インターフェイスＹ及びＺは最後の関数へ接続し、従って、ネットワーク・デバイス８２０Ｂは、１つのプローブ・インタレスト・メッセージをネットワーク・デバイス８２０Ｄへ発出インターフェイスＹを介して送信し、他のプローブ・インタレスト・メッセージをネットワーク・デバイス８２０Ｄへ発出インターフェイスＹを介して送信してよい。
【０１３６】
夫々のプローブ・インタレスト・メッセージは、例えば、プローブ・インタレストを示すよう設定されたフィールド（例えば、“Ｐフラグ”）と、ルーティング・コスト（例えば、ソース・ノードからあて先ノードへのホップの数）を示すフィールド（例えば、“コスト”）と、送信されるプローブ・メッセージの数を示すことができるフィールド（例えば、“プローブ数”）とを含んでよい。この例において、２つの発出インターフェイスがネットワーク・デバイス８２０Ｄへ接続し、よって、“プローブ数”は、２に等しく設定されてよい。
【０１３７】
夫々のプローブ・インタレスト・メッセージについて、“コスト”フィールドは、プローブ・インタレスト・メッセージを受信する各ルータによって更新されてよい。より具体的には、この例において、ネットワーク・デバイス８２０Ｃ及び８２０Ｄは、１つのプローブ・インタレスト・メッセージのコスト・フィールドを更新してよく、ネットワーク・デバイス８２０Ｄは、他のプローブ・インタレスト・メッセージのコスト・フィールドを更新してよい。プローブ・インタレスト・メッセージがネットワーク・デバイス８２０Ｄに到達すると、ネットワーク・デバイス８２０Ｄは、“プローブ数”フィールドをチェックしてよい。更には、“プローブ数”フィールドに等しい数のプローブ・インタレスト・メッセージを受信した後、ネットワーク・デバイス８２０Ｄは、最低限のコストにより、プローブ・インタレスト・メッセージを識別するネットワーク・デバイス８２０Ｂへのプローブ・データ・メッセージを返送してよい。この例において、発出インターフェイスＺを介して送信されたプローブ・インタレスト・メッセージは、プローブ・インタレスト・メッセージが発出インターフェイスＹを介して送信されるよりも低いコスト（例えば、より少ないホップ）であってよい。
【０１３８】
プローブ・データ・メッセージは、１つ以上のネットワーク・デバイスにおいて情報を更新してよい。例えば、プローブ・データ・メッセージは、標準のデータ・メッセージと同様に、１つ以上のネットワーク・デバイスにおいてＰＩＴを消費してよい。更には、プローブ・データ・メッセージは、プローブ・データ・メッセージを受信するネットワーク・デバイスのＦＩＢにおいてエントリを加えてよく、プローブ・データ・メッセージを受信するネットワーク・デバイスの機能チェーン・ルーティング・テーブル（ＦＣＲＴ）における情報を生成及び更新してよく、あるいは、その両方を行ってよい。
【０１３９】
プローブ・データ・メッセージがネットワーク・デバイス８２０Ｂに戻ると、ネットワーク・デバイス８２０Ｂは、インタレスト・パケットをネットワーク・デバイス８２０Ｄへ発出インターフェイスＺを介して送信してよい。１つ以上のネットワーク・デバイスにおける更新されたルーティング情報（例えば、更新されたＦＩＢ又はＦＣＲＴのいずれか一方）に基づき、インタレスト・パケットは、あて先ルータへ転送されてよい。あて先ルータは、この例において、ネットワーク・デバイス８２０Ｄである。このプロセスは、例えば、夫々のサービス・ルータがインタレスト・パケットを受信するまで、続いてよい。
【０１４０】
様々な実施形態において、サービス・プロバイダは、機能チェーン・サービスを提供するようにＩＣＮネットワークにおいて要求されてよい。サービス・プロバイダは、生のデータのプロバイダ、関数プロバイダ及びコンシューマを接続してよく、例えば、サービス・アグリーメント（service  agreement）、命名ポリシー、命名変換（naming  conversion）ポリシー、並びに認証（authentication）、認可（authorization）及びアカウンティング（accounting）（ＡＡＡ）標準を支配してよい。図１３は、コンシューマ５１０、ネットワーク・デバイス５２０Ａ、５２０Ｂ及び５２０Ｃ、プロセッシング・デバイス５３０Ａ及び５３０Ｂ、データ・ソース５５０、並びにサービス・プロバイダ８６を含むシステム８５０を表す。
【０１４１】
分散型モデルにおいて、ネットワーク・キャリア及びオペレータは、ネットワーク制御に関与してよい。サービス・プロバイダは、ネットワーク制御に関与しなくてよい。更には、完全分散型ルーティング・プロトコル（例えば、ＮＬＳＲ）は、ルータにおいて実装されてよく、夫々のルータにおいてＦＩＢテーブルを更新するよう情報を交換してよい。
【０１４２】
中央集権型モデルにおいて、ネットワーク・キャリアは、ネットワークの少なくとも一部分が、サービス・プロバイダとのサービス・アグリーメントに基づき、サービス・プロバイダによって制御されることを可能にしてよい。この実施形態において、サービス・プロバイダは、ネットワークの視覚化されたビューを有してよく、サービス・プロバイダは、ネットワークを、例えば、ソフトウェア定義ネットワーキング（ＳＤＮ；software-defined  networking）コントローラを介して、制御してよい。加えて、夫々のルータにおけるＦＩＢテーブルは、中央集権型ＳＤＮコントローラによって更新されてよい。
【０１４３】
図１４は、本開示の少なくとも１つの実施形態に従って、例となるコンピューティング・デバイス９００のブロック図である。図１、５、８及び１２のデータ・コンシューマ１１０／５１０、ネットワーク・デバイス１２０／５２０／６２０／８２０、及び／又はプロセッシング／デバイス１３０／５３０／６３０のいずれもが、コンピューティング・デバイス９００として実装されてよい。コンピューティング・デバイス９００は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータ、タブレット・コンピュータ、携帯電話機、スマートフォン、パーソナル・デジタル・アシスタント（ＰＤＡ；personal  digital  assistant）、電子リーダ・デバイス、ネットワーク・スイッチ、ネットワーク・ルータ、ネットワーク・ハブ、他のネットワーキング・デバイス、又は他の適切なコンピューティング・デバイスを含んでよい。
【０１４４】
コンピューティング・デバイス９００は、プロセッサ９１０、記憶デバイス９２０、メモリ９３０、及び通信コンポーネント９４０を含んでよい。プロセッサ９１０、記憶デバイス９２０、メモリ９３０、及び／又は通信コンポーネント９４０は、全てが通信上結合されてよく、それにより、コンポーネントの夫々が他のコンポーネントと通信することができる。コンピューティング・デバイス９００は、本開示で記載される動作のいずれも実施してよい。
【０１４５】
一般に、プロセッサ９１０は、様々なハードウェア又はソフトウェア・モジュールを含む如何なる適切な特別目的又は汎用のコンピュータ、コンピューティング・エンティティ、又はプロセッシング・デバイスも含んでよく、如何なる適用可能なコンピュータ可読記憶媒体においても記憶される命令を実行するよう構成されてよい。例えば、プロセッサ９１０は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ；digital  signal  processor）、特定用途向け集積回路（ＡＳＩＣ；application-specific  integrated  circuit）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ；Field-Programmable  Gate  Array）、あるいは、プログラム命令を解釈するよう及び／若しくは実行するよう並びに／又はデータを処理するよう構成されたあらゆる他のデジタル又はアナログ回路を含んでよい。図１４では単一のプロセッサとして表されているが、プロセッサ９１０は、本開示で記載される動作をいくつでも個々に又は集合的に実施するよう構成されたプロセッサをいくつでも含んでよい。
【０１４６】
いくつかの実施形態において、プロセッサ９１０は、記憶デバイス９２０、メモリ９３０、又は記憶デバイス９２０及びメモリ９３０において記憶されているプログラム命令を解釈及び／若しくは実行し並びに／又はデータを処理してよい。いくつかの実施形態において、プロセッサ９１０は、記憶デバイス９２０からプログラム命令をフェッチし、プログラム命令をメモリ９３０にロードしてよい。プログラム命令がメモリ９３０にロードされた後、プロセッサ９１０はプログラム命令を実行してよい。
【０１４７】
例えば、いくつかの実施形態において、機能チェーンの処理動作のうちの１つ以上は、プログラム命令としてデータ記憶部９２０において含まれてよい。プロセッサ９１０は、処理動作のうちの１つ以上のプログラム命令をフェッチしてよく、処理動作のプログラム命令をメモリ９３０にロードしてよい。処理動作のプログラム命令がメモリ９３０にロードされた後、プロセッサ９１０はプログラム命令を実行してよく、それにより、コンピューティング・デバイス９００は、プログラム命令によって指示される処理動作に関連した動作を実施することができる。
【０１４８】
記憶デバイス９２０及びメモリ９３０は、コンピュータ実行可能な命令又はデータ構造を搬送する又は記憶しているコンピュータ可読記憶媒体を含んでよい。そのようなコンピュータ可読記憶媒体は、プロセッサ９１０のような汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体も含んでよい。例として、制限なしに、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の光学ディスク・ストレージ、磁気ディスク・ストレージ若しくは他の磁気記憶デバイス、フラッシュ・メモリ・デバイス（例えば、固体状態メモリ・デバイス）、あるいは、コンピュータ実行可能な命令又はデータ構造の形で所望のプログラムコードを搬送又は記憶するために使用されてよく、且つ、汎用又は特別目的のコンピュータによってアクセスされ得るあらゆる他の記憶媒体を含む、有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。それらの組み合わせも、コンピュータ可読記憶媒体の適用範囲内に含まれてよい。コンピュータ実行可能な命令は、例えば、プロセッサ９１０に特定の動作又は動作のグループを実施させるよう構成された命令及びデータを含んでよい。
【０１４９】
いくつかの実施形態において、記憶デバイス９２０及び／又はメモリ９３０は、ＩＣＮネットワークに関連したデータを記憶してよい。例えば、記憶デバイス９２０及び／又はメモリ９３０は、ＰＩＴ、フォワーディング情報ベース（ＦＩＢ）、及び／又はコンテンツ・ストアを記憶してよい。
【０１５０】
通信コンポーネント９４０は、コンピューティング・デバイス９００とネットワーク（例えば、図１のネットワーク１５０）との間の通信を許可し又は助けるよう構成された如何なるデバイス、システム、コンポーネント、又はコンポーネントの集合も含んでよい。例えば、通信コンポーネント９４０は、モデム、ネットワーク・カード（無線若しくは有線）、赤外線通信デバイス、光通信デバイス、無線通信デバイス（例えば、アンテナ）、及び／又はチップセット（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、８０２．６デバイス（例えば、メトロポリタン・エリア・ネットワーク（ＭＡＮ；Metropolitan  Area  Network））、Ｗｉ−Ｆｉ（登録商標）デバイス、ＷｉＭＡＸ（登録商標）デバイス、セルラー通信設備、など）、及び／又は同様ものを制限なしに含んでよい。通信コンポーネント９４０は、２、３例を挙げると、セルラー・ネットワーク、Ｗｉ−Ｆｉネットワーク、ＭＡＮ、光ネットワーク、などのようなあらゆるネットワーク（ネットワーク１５０を含む。）、及び／又は遠隔デバイスを含む、本願で記載されるあらゆる他のデバイスとデータが交換されることを可能にしてよい。
【０１５１】
いくつかの実施形態において、通信コンポーネント９４０は、ＩＣＮネットワーク内の通信を提供してよい。例えば、通信コンポーネント９４０は、１つ以上のインターフェイスを含んでよい。いくつかの実施形態において、通信コンポーネント９４０は、単一の物理コンポーネントにおける論理的な区別、例えば、単一の物理ケーブル又は光信号にわたる複数のインターフェイス、を含んでよい。
【０１５２】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに図１４に対して行われてよい。例えば、コンピューティング・デバイス９００は、本開示で例示及び記載されているものより多い又は少ない要素を含んでよい。例えば、コンピューティング・デバイス９００は、タブレット又は携帯電話機の画面のような、一体化された表示デバイスを含んでよく、あるいは、コンピューティング・デバイス９００とは別であってそれと通信上結合され得る外付けモニタ、プロジェクタ、テレビ受信機、又は他の適切な表示デバイスを含んでよい。
【０１５３】
本開示で使用されるように、語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントのアクションを実施するよう構成された具体的なハードウェア実施、並びに／又はコンピューティング／システムの汎用ハードウェア（例えば、コンピュータ可読媒体、プロセッシング・デバイス、など）によって記憶及び／若しくは実行され得るソフトウェア・オブジェクト若しくはソフトウェア・ルーチンを指してよい。いくつかの実施形態において、本開示で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピューティング・システムで（例えば、別個のスレッドとして）実行するオブジェクト又はプロセスとして実装されてよい。本開示で記載されるシステム及び方法のいくつかは、概して、ソフトウェア（汎用ハードウェアによって記憶及び・実行されるもの）において実装されるものとして記載されるが、具体的なハードウェア実施又はソフトウェアと具体的なハードウェア実施との組み合わせも可能であり、考えられる。本開示において、「コンピューティング・エンティティ」は、本開示で先に定義されたあらゆるコンピューティング・システム、又はコンピューティング・システムで実行されるあらゆるモジュール若しくはモジュールの組み合わせであってよい。
【０１５４】
本願において、特に添付の請求の範囲内（例えば、添付の請求の範囲の要部）で使用される用語は、一般的に「非限定的な（open）」用語として意図されている（例えば、「含んでいる（including）」という用語は、「・・・を含んでいるが限定されない（including,  but  not  limited  to）」と解釈されるべきであり、「有している（having）」という用語は、「少なくとも・・・を有している（having  at  least）」と解釈されるべきであり、「含む（includes）」という用語は、「・・・を含むが限定されない（includes,  but  is  not  limited  to）」と解釈されるべきである。）。
【０１５５】
加えて、導入されたクレーム記載（introduced  claim  recitation）において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。理解を促すために、例えば、後続の添付する特許請求の範囲では、「少なくとも１つの（at  least  one）」及び「１つ以上の（one  or  more）」といった導入句を使用し、クレーム記載を導入することがある。しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「１つ以上の」又は「少なくとも１つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を１つのみ含む例に限定されるということが示唆されると解釈されるべきではない（例えば、「a」及び／又は「an」は、通常は、「少なくとも１つの」又は「１つ以上の」を意味すると解釈されるべきである。）。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
【０１５６】
加えて、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、「少なくとも」記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう（例えば、他に修飾語のない、単なる「２つの記載事項」という記載がある場合、この記載は、「少なくとも」２つの記載事項、又は「２つ以上の」記載事項を意味する。）。更に、「Ａ、Ｂ及びＣなどのうち少なくとも１つ」又は「Ａ、Ｂ及びＣのうちの１つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、Ａ及びＢの両方、Ａ及びＣの両方、Ｂ及びＣの両方、並びに／又はＡ及びＢ及びＣの全て、などを有するものとして意図される。
【０１５７】
更に、２つ以上の選択可能な用語を表すあらゆる離接語及び／又は離接句は、明細書、特許請求の範囲、又は図面のいずれにあろうと、それら用語のうちの１つ、それらの用語のうちのいずれか、又はそれらの用語の両方を含む可能性を意図すると理解されるべきであることが、当業者には理解されるであろう。例えば、「Ａ又はＢ」という句は、「Ａ又はＢ」、あるいは「Ａ及びＢ」の可能性を含むことが理解されよう。
【０１５８】
本願で挙げられている全ての例及び条件付き語は、当該技術の促進に対して発明者によって寄与される概念及び発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないものとして解釈されるべきである。本開示の実施形態は詳細に記載されてきたが、様々な変更、置換及び代替は、本開示の主旨及び適用範囲から逸脱することなしに行われてよいことが理解されてよい。
【０１５９】
上記の実施形態に加えて、以下の付記を開示する。
（付記１）
情報指向ネットワーキング（ＩＣＮ）ネットワークにおいてパケットを処理する方法であって、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する方法。
（付記２）
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
付記１に記載の方法。
（付記３）
前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送する
ことを更に有する付記２に記載の方法。
（付記４）
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、付記１に記載の方法。
（付記５）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、付記１に記載の方法。
（付記６）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、付記１に記載の方法。
（付記７）
前記プローブ・インタレスト・メッセージを送信することは、プローブ・インタレストを識別するフィールド、ルーティング・コストを識別するフィールド、及び前記ネットワーク・デバイスによって送信されるプローブ・メッセージの数を識別するフィールド、のうちの１つ以上を含むプローブ・インタレスト・メッセージを送信することを有する、
付記６に記載の方法。
（付記８）
１つ以上のプロセッシング・システムによって実行される場合に、該プロセッシング・システムに、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する動作を実施させるよう構成される命令を含む１つ以上の非一時的なコンピュータ可読媒体。
（付記９）
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
付記８に記載のコンピュータ可読媒体。
（付記１０）
前記動作は、前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送することを更に有する、
付記９に記載のコンピュータ可読媒体。
（付記１１）
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、付記８に記載のコンピュータ可読媒体。
（付記１２）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、付記８に記載のコンピュータ可読媒体。
（付記１３）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、付記８に記載のコンピュータ可読媒体。
（付記１４）
情報指向ネットワーキング（ＩＣＮ）ネットワークにおいて作動するネットワーク・デバイスであって、
入来インターフェイスと、
発出インターフェイスと、
１つ以上のプロセッサと、
前記プロセッサによって実行される場合に、該プロセッサに、
複数の関数を含む機能チェーンを識別するインタレスト・パケットをネットワーク・デバイスで受信し、
前記機能チェーンにおける前記複数の関数のうちの２つ以上の関数に基づき少なくとも１つのアクションを実行する
ことを有する動作を実施させるよう構成されるコンピュータ読み出し可能な命令を記憶するメモリと
を有するネットワーク・デバイス。
（付記１５）
前記少なくとも１つのアクションを実行することは、前記ネットワーク・デバイスからあて先ネットワーク・デバイスへの前記インタレスト・パケットのためのルートを決定することを有する、
付記１４に記載のネットワーク・デバイス。
（付記１６）
前記動作は、前記ネットワーク・デバイスから前記あて先ネットワーク・デバイスへの前記ルートを定義するオブジェクトに基づき前記インタレスト・パケットを転送することを更に有する、
付記１５に記載のネットワーク・デバイス。
（付記１７）
前記少なくとも１つのアクションを実行することは、
前記機能チェーンにおける最後の関数を実行するアプリケーション及び前記機能チェーンにおける最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されているかどうかを判定し、
前記機能チェーンにおける前記最後の関数を実行するアプリケーション及び前記機能チェーンにおける前記最後から２番目の関数を実行するアプリケーションが前記ネットワーク・デバイスの共通の発出インターフェイスへ接続されていると決定すると、該共通のインターフェイスを介して前記インタレスト・パケットを転送する
ことを有する、付記１４に記載のネットワーク・デバイス。
（付記１８）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスの夫々の発出インターフェイスに関連した前記機能チェーンにおける関数の数を決定し、
前記機能チェーンの関数の最多数に関連した発出インターフェイスへ前記インタレスト・パケットを転送する
ことを有する、付記１４に記載のネットワーク・デバイス。
（付記１９）
前記少なくとも１つのアクションを実行することは、
前記ネットワーク・デバイスが前記機能チェーンの関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有しているかどうかを判定し、
前記ネットワーク・デバイスが前記関数を実行するアプリケーションに対して１つよりも多い発出インターフェイスを有していると決定すると、前記１つよりも多い発出インターフェイスの夫々の発出インターフェイスを介してプローブ・インタレスト・メッセージを送信し、
前記関数を実行するよう前記アプリケーションに関連したあて先ネットワーク・デバイスで受信された夫々のプローブ・インタレスト・メッセージを介して決定された夫々のルートのコストに基づき、前記インタレスト・パケットのための最適なルートを決定する
ことを有する、付記１４に記載のネットワーク・デバイス。
（付記２０）
前記プローブ・インタレスト・メッセージを送信することは、プローブ・インタレストを識別するフィールド、ルーティング・コストを識別するフィールド、及び前記ネットワーク・デバイスによって送信されるプローブ・メッセージの数を識別するフィールド、のうちの１つ以上を含むプローブ・インタレスト・メッセージを送信することを有する、
付記１９に記載のネットワーク・デバイス。
【符号の説明】
【０１６０】
１００，５００，６００，８００，８５０  システム
１１０                  データ・コンシューマ
１２０，５２０，６２０  ネットワーク・デバイス
１３０，５３０，６３０  プロセッシング・デバイス
１４０，６４０          インタレスト・パケット
１５０                  ネットワーク
１６０，１７０          データ・パケット
５１０                  コンシューマ
５５０                  データ・ソース
８６０                  サービス・プロバイダ
９００                  コンピューティング・デバイス
９１０                  プロセッサ
９２０                  記憶デバイス
９３０                  メモリ
９４０                  通信デバイス
【図１】
2017139761.tif 000003
【図２】
2017139761.tif 000004
【図３】
2017139761.tif 000005
【図４】
2017139761.tif 000006
【図５】
2017139761.tif 000007
【図６】
2017139761.tif 000008
【図７】
2017139761.tif 000009
【図８】
2017139761.tif 000010
【図９】
2017139761.tif 000011
【図１０】
2017139761.tif 000012
【図１１】
2017139761.tif 000013
【図１２】
2017139761.tif 000014
【図１３】
2017139761.tif 000015
【図１４】
2017139761.tif 000016