(57)【要約】      （修正有）【課題】中間ノードが潜在的なタイムアウトイベントを処理するのを容易とするシステムを提供する。【解決手段】中間ノード１１４（ルータ）は、インタレストメッセージについての名称、保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信と、名称に基づいてキープアライブ制御パケットがＰＩＴエントリに対応するかどうかを判定し、キープアライブ制御パケットがＰＩＴエントリに対応するとの判定に応答して、キープアライブ制御パケットに示された期間に基づいてＰＩＴエントリのタイムアウト値を更新する。インタレストメッセージが受信されたＰＩＴエントリにおいて特定された１つ以上のインターフェースを判定することに応答して、中間ノード１１４は、１つ以上のインターフェースに対してキープアライブ制御パケットを転送する。【選択図】図２
2016059039.tif 000002
【特許請求の範囲】
【請求項１】
パケットを転送するためのコンピュータ実装方法において、
中間ノードにより、インタレストメッセージについての名称、保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ、及び、前記ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信することと、
前記名称に基づいて前記キープアライブ制御パケットが前記ＰＩＴエントリに対応するかどうかを判定することと、
前記キープアライブ制御パケットが前記ＰＩＴエントリに対応するとの判定に応答して、前記キープアライブ制御パケットにおいて示された前記期間に基づいて前記ＰＩＴエントリのタイムアウト値を更新することと、
前記インタレストメッセージが受信された前記ＰＩＴエントリにおいて特定された１つ以上のインターフェースを判定するのに応答して、前記１つ以上のインターフェースに対して前記キープアライブ制御パケットを転送し、
それにより、前記中間ノードが潜在的なタイムアウトイベントを処理するのを容易とすることとを備える、方法。
【請求項２】
さらに、
前記キープアライブ制御パケットに期間が示されていないとの判定に応答して、
所定値、及び、
ネットワーク状態に基づいてルータによって動的に調整される所定値
のうちの１つ以上に基づいて、前記ＰＩＴエントリの前記タイムアウト値を更新する、請求項１に記載の方法。
【請求項３】
さらに、
前記インタレストに応答してコンテンツオブジェクトを受信することと、
前記インタレストについての前記名称に対応する前記ＰＩＴエントリを削除することとを備える、請求項１に記載の方法。
【請求項４】
前記キープアライブ制御パケットが前記ＰＩＴエントリに対応するかどうかを判定することが、さらに、一致基準に基づいており、さらに、前記一致基準が、
コンテンツ制作ノードに関連付けられた鍵識別子、
前記インタレストに対応するコンテンツオブジェクトのハッシュ値、及び、
前記インタレストの概要
のうちの少なくとも１つ以上である旨を前記キープアライブ制御パケットが示している、請求項１に記載の方法。
【請求項５】
さらに、
名称接頭辞についての前記ＰＩＴにおけるエントリの所定数を受信することであり、前記名称接頭辞が階層的に構造化された可変長識別子（ＨＳＶＬＩ）の１つ以上の名称要素を備える、受信することと、
前記名称接頭辞についての前記所定数のエントリに到達したとの判定に応答して、同じ名称接頭辞を有するさらなるＰＩＴエントリをタイムアウトすることとを備える、請求項１に記載の方法。
【請求項６】
パケットを転送するためのコンピュータ実装方法において、
コンテンツ制作ノードにより、インタレストメッセージについての名称、前記名称に対応する保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ、及び、前記ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを生成することと、
中間ノードに対して前記キープアライブ制御パケットを送信し、それにより、潜在的なタイムアウトイベントを処理するのを容易とすることとを備える、方法。
【請求項７】
前記キープアライブ制御パケットが、さらに、
前記コンテンツ制作ノードに関連付けられた鍵識別子、
前記インタレストに対応するコンテンツオブジェクトのハッシュ値、及び、
前記インタレストメッセージの概要
のうちの１つ以上を示す、請求項６に記載の方法。
【請求項８】
さらに、
前記インタレストに応答してコンテンツオブジェクトを生成することを備える、請求項６に記載の方法。
【請求項９】
パケットの転送を容易とするコンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行されたとき、前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
中間ノードにより、インタレストメッセージについての名称、保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ、及び、前記ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信することと、
前記名称に基づいて前記キープアライブ制御パケットが前記ＰＩＴエントリに対応するかどうかを判定することと、
前記キープアライブ制御パケットが前記ＰＩＴエントリに対応するとの判定に応答して、前記キープアライブ制御パケットにおいて示された前記期間に基づいて前記ＰＩＴエントリのタイムアウト値を更新することと、
前記インタレストメッセージが受信された前記ＰＩＴエントリにおいて特定された１つ以上のインターフェースを判定するのに応答して、前記１つ以上のインターフェースに対して前記キープアライブ制御パケットを転送し、
それにより、前記中間ノードが潜在的なタイムアウトイベントを処理するのを容易とすることとを備える、コンピュータシステム。
【請求項１０】
パケットの転送を容易とするコンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行されたとき、前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
コンテンツ制作ノードにより、インタレストメッセージについての名称、前記名称に対応する保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ、及び、前記ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを生成することと、
中間ノードに対して前記キープアライブ制御パケットを送信し、それにより、潜在的なタイムアウトイベントを処理するのを容易とすることとを備える、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ディジタルコンテンツの配信に関する。より具体的には、本開示は、コンテンツ中心ネットワーク（ＣＣＮ）におけるインタレスト生存を保持するために、潜在的なタイムアウトイベントの中間ルータに対するコンテンツ制作装置による通知を提供することに関する。
【背景技術】
【０００２】
インターネット及び電子商取引の普及は、膨大な量のディジタルコンテンツを作成し続けている。コンテンツ中心ネットワーク（ＣＣＮ）アーキテクチャは、そのようなディジタルコンテンツのアクセス及び制作を容易とするように設計されている。ＣＣＮは、様々なコンテンツアイテムについてのインタレストパケットを送信し且つ返送においてコンテンツオブジェクトパケットを受信することによって互いに通信するネットワーククライアント、フォワーダ（例えば、ルータ）及びコンテンツ制作者などのエンティティ又はノードを含む。ＣＣＮインタレスト及びコンテンツオブジェクトは、典型的には階層的に構造化された可変長識別子（ＨＳＶＬＩ）であるそれらの固有の名称によって識別される。ＨＳＶＬＩは、最も一般的なレベルから最も特定のレベルまで順序付けられた連続的な名称要素を含むことができる。インタレストパケットは、コンテンツ要求ノードからコンテンツ制作ノードに対してネットワークを介してルーティングされることから、各中間ＣＣＮルータは、インタレストに対応するその保留インタレスト表（ＰＩＴ）にエントリを付加し、次のＣＣＮルータに対してインタレストを転送する。一致するコンテンツオブジェクトパケットがコンテンツ制作ノードから要求ノードに対して返送されると、それはインタレストの逆経路をたどる。各中間ＣＣＮルータは、対応するＰＩＴエントリに一覧表示された要求インターフェースに沿ってコンテンツオブジェクトを転送した後、インタレストが満たされたことを示すＰＩＴエントリを削除する。
【０００３】
ＰＩＴエントリはまた、ＰＩＴエントリがタイムアウトしたときにＣＣＮノード（又はルータ）によって削除されることができる。ノードは、ノードがそのＰＩＴに対してインタレストを付加するのに適切であるとみなす任意のタイムアウト値を選択することができる。ＰＩＴエントリは、異なるシナリオのもとにタイムアウトすることができる。１つの場合は、インタレストのシステムドロップ又は一致するコンテンツオブジェクトをもたらすネットワークにおける輻輳に起因するものである。他の場合は、一致するコンテンツオブジェクトを生成する責を担うコンテンツ制作ノード又はアプリケーションがレスポンスを返送することができる前に（例えば、４５秒かかる）計算的に集中的なタスクを実行する必要があるときである。双方の場合において、ＰＩＴエントリのタイムアウトは、時には反復的に且つ短期間にわたってインタレストを再発現する要求ノードをもたらすことがある。ＰＩＴエントリのタイムアウトはまた、中間ＣＣＮルータに複数のインターフェースにおいて再発現したインタレストを送信させることができ、それゆえに、ネットワークトラフィックを増やし、さらなる輻輳を形成する。
【発明の概要】
【課題を解決するための手段】
【０００４】
１つの実施形態は、中間ノードが潜在的なタイムアウトイベントを処理するのを容易とするシステムを提供する。動作中、システムは、中間ノードにより、インタレストメッセージについての名称、保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信する。中間ノードは、名称に基づいてキープアライブ制御パケットがＰＩＴエントリに対応するかどうかを判定し、キープアライブ制御パケットがＰＩＴエントリに対応するとの判定に応答して、キープアライブ制御パケットに示された期間に基づいてＰＩＴエントリのタイムアウト値を更新する。インタレストメッセージが受信されたＰＩＴエントリにおいて特定された１つ以上のインターフェースを判定することに応答して、中間ノードは、１つ以上のインターフェースに対してキープアライブ制御パケットを転送し、それにより、中間ノードが潜在的なタイムアウトイベントを処理するのを容易とする。
【０００５】
いくつかの実施形態において、期間がキープアライブ制御パケットに示されていないとの判定に応答して、中間ノードは、所定値、及び、ネットワーク状態に基づいてルータによって動的に調整される所定値のうちの１つ以上に基づいてＰＩＴエントリのタイムアウト値を更新する。
【０００６】
いくつかの実施形態において、中間ノードは、インタレストに応答してコンテンツオブジェクトを受信し、インタレストについての名称に対応するＰＩＴエントリを削除する。
【０００７】
いくつかの実施形態において、キープアライブ制御パケットがＰＩＴエントリに対応するかどうかの判定は、一致基準にさらに基づいており、キープアライブ制御パケットは、さらに、一致基準が、コンテンツ制作ノードに関連付けられた鍵識別子、インタレストに対応するコンテンツオブジェクトのハッシュ値及びインタレストの概要のうちの１つ以上である旨を示す。
【０００８】
いくつかの実施形態において、中間ノードは、名称接頭辞についてのＰＩＴにおけるエントリについての所定数を受信し、名称接頭辞は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）の１つ以上の名称要素を備える。名称接頭辞についてのエントリの所定数に到達したとの判定に応答して、中間ノードは、同じ名称接頭辞を有するさらなるＰＩＴエントリをタイムアウトする。
【０００９】
他の実施形態は、潜在的なタイムアウトイベントの処理を容易とするシステムを提供する。動作中、システムは、コンテンツ制作ノードにより、インタレストメッセージについての名称、名称に対応する保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを生成する。コンテンツ制作ノードは、中間ノードに対してキープアライブ制御パケットを送信し、それにより、潜在的なタイムアウトイベントの処理を容易とする。
【００１０】
いくつかの実施形態において、コンテンツ制作ノードによって生成されたキープアライブ制御パケットは、さらに、コンテンツ制作ノードに関連付けられた鍵識別子、インタレストに対応するコンテンツオブジェクトのハッシュ値及びインタレストメッセージの概要のうちの１つ以上を示す。
【００１１】
いくつかの実施形態において、コンテンツ制作ノードは、インタレストに応答してコンテンツオブジェクトを生成する。
【００１２】
いくつかの実施形態において、コンテンツ制作ノードは、ハッシュキャッシュ値を算出し、キープアライブ制御パケットに算出されたハッシュキャッシュ値を含める。ここで、ハッシュキャッシュの計算は、計算が行われるたびに次第により複雑になる。
【００１３】
いくつかの実施形態において、システムは、キープアライブ制御パケットに基づいて維持されることになるコンテンツ制作ノードとコンテンツ要求ノードとの間においてインターネットサービスプロバイダによって提供される仮想接続を可能とする。
【００１４】
いくつかの実施形態において、コンテンツ制作ノードは、上流ノードから所定数のトークンを受信し、トークンは、コンテンツ制作ノードにおいてＰＩＴエントリをキープアライブするための期間に対応する。コンテンツ制作ノードは、キープアライブ制御パケットを生成するのと引き換えにトークンを消費し、ＰＩＴエントリをキープアライブするための期間は、トークンに対応する期間である。
【００１５】
いくつかの実施形態において、所定数のトークンを受信することは、インターネットサービスプロバイダからコンテンツ制作ノードによって１つ以上のトークンを購入すること、コンテンツ制作ノードの評価、コンテンツ制作ノードの履歴挙動及び任意の他の技術のうちの１つ以上に基づいている。
【００１６】
いくつかの実施形態において、システムは、コンテンツ制作ノードの否定的挙動に基づいてトークンを削除する。
【００１７】
いくつかの実施形態において、否定的挙動は、上流ノードの悪用を含む。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の実施形態にかかる、中間ノードが潜在的なタイムアウトイベントを処理するのを容易とする例示的なネットワークを図示している。
【図２】図２は、本発明の実施形態にかかる、中間ノードとコンテンツ制作ノードとの間の例示的な通信を図示している。
【図３Ａ】図３Ａは、本発明の実施形態にかかる、キープアライブ制御パケット及び一致するコンテンツオブジェクトを生成することによってインタレストを処理するコンテンツ制作ノードによる方法を図示するフローチャートである。
【図３Ｂ】図３Ｂは、本発明の実施形態にかかる、ネットワークにおける輻輳を緩和するための技術を適用するコンテンツ制作ノードによる方法を図示するフローチャートである。
【図４Ａ】図４Ａは、本発明の実施形態にかかる、インタレストメッセージ及び対応するキープアライブ制御パケットを処理する中間ノードによる方法を図示するフローチャートである。
【図４Ｂ】図４Ｂは、本発明の実施形態にかかる、ネットワークにおける輻輳を緩和するための中間ノードによる方法を図示するフローチャートである。
【図５Ａ】図５Ａは、本発明の実施形態にかかる、コンテンツ制作ノードによって生成されてネットワークを介して伝播されるキープアライブ制御パケットの例示的なフォーマットを図示している。
【図５Ｂ】図５Ｂは、本発明の実施形態にかかる、キープアライブ制御パケットの受信前後における中間ノードにおける保留インタレスト表（ＰＩＴ）エントリの例示的なフォーマットを図示している。
【図６】図６は、本発明の実施形態にかかる潜在的なタイムアウトイベントの処理を容易とする例示的なコンピュータ及び通信システムを図示している。
【発明を実施するための形態】
【００１９】
図面において、同様の参照符号は、同一の図要素を指す。
【００２０】
以下の説明は、当業者が本発明を作成して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義される一般的な原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲を与えられるべきである。
【００２１】
本発明の実施形態は、コンテンツ制作装置（例えば、サーバ）がコンテンツ要求装置（例えば、クライアント）からのインタレストに応答して一致するコンテンツオブジェクトを生成するための追加時間を要求したときに潜在的なタイムアウトイベントを処理するのを容易とするシステムを提供する。動作中、コンテンツ制作者は、コンテンツ要求者からインタレストメッセージを受信し、一致するコンテンツオブジェクトを生成するために追加時間が必要であることを判定する。コンテンツ制作者は、各中間ルータの保留インタレスト表（ＰＩＴ）における対応するエントリが所定時間だけキープアライブされることになる旨を示すキープアライブ制御パケットを送信することによって中間ルータに通知する。キープアライブ制御パケットは、インタレストと同じ名称、制御パケットが「キープアライブ」メッセージである旨のインジケータ及びどのくらい長く中間ルータがそのＰＩＴにおけるエントリを記憶し続けることになるかに対応する期間を含む。中間ルータは、示された期間をＰＩＴエントリについてのタイムアウト値に付加する。値が期間について特定されない場合、システムは、所定のデフォルト値を使用する。そして、中間ルータは、対応するＰＩＴエントリにおいて特定された全てのインターフェース、例えばインタレストメッセージを前に転送した全てのインターフェースに対してキープアライブ制御パケットを転送する。このようにして、キープアライブ制御パケットは、インタレストが前に送信された経路に沿って全ての中間ルータに対してネットワークを介して伝播される。
【００２２】
中間ＣＣＮルータは、応答コンテンツオブジェクトを生成するためにコンテンツ制作者によって必要とされる計算期間だけインタレストに関連付けられた状態を維持することによってコンテンツ制作者の計算の進捗状況を追跡する。それゆえに、インタレストは、キープアライブ制御パケットの形態での中間ルータに対する通知を介して「キープアライブ」され、その後、インタレストの経路における全ての中間ルータの対応するＰＩＴエントリに更新する。この解決策は、不要なＰＩＴエントリのタイムアウト量を削減してＰＩＴ空間をなくし、ＣＣＮにおいて送信されて保留している再発現されるインタレストの数を低減することによってネットワーク輻輳を順次削減する。
【００２３】
ＣＣＮにおいて、コンテンツの各部は、個別に名称付けられ、データの各部は、同じデータの他のバージョン又は他のソースからのデータなどの任意の他のデータ部分からデータを区別する固有の名称に結合される。この固有の名称は、ネットワーク装置が固有の名称を示す要求又はインタレストを広めることによってデータを要求するのを可能とし、データの記憶場所、ネットワーク場所、アプリケーション及び伝送手段から独立したデータを取得することができる。以下の用語は、ＣＣＮアーキテクチャについて説明する。
コンテンツオブジェクト：固有の名称に結合されている名称付けデータの単一部分である。コンテンツオブジェクトは、コンテンツオブジェクトがコンピューティングデバイス内又は異なるコンピューティングデバイス間を移動することができるが変化しないことを意味する、「永続的」である。コンテンツオブジェクトの任意の要素が変化した場合、変更を行ったエンティティは、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たな固有の名称に新たなコンテンツオブジェクトを結合する。
【００２４】
固有の名称：ＣＣＮ内の名称は、通常、場所とは無関係であり、コンテンツオブジェクトを固有に識別する。データ転送装置は、コンテンツオブジェクトについてのネットワークアドレス又は物理的場所にかかわらず、コンテンツオブジェクトを生成又は記憶するネットワークノードに向けてインタレストパケットを転送するために名称又は名称接頭辞を使用することができる。いくつかの実施形態において、名称は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）とすることができる。ＨＳＶＬＩは、様々な方法で構築可能ないくつかの階層的な要素に分割されることができる。例えば、個々の名称要素ｐａｒｃ、ｈｏｍｅ、ｃｃｎ及びｔｅｓｔ．ｔｘｔは、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成するために左指向の接頭辞が主要である方法で構築可能である。それゆえに、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」又は「接頭辞」とすることができる。共同文書などの異なるバージョンのコンテンツアイテムを区別するためにさらなる要素が使用可能である。
いくつかの実施形態において、名称は、コンテンツオブジェクトのデータ（例えば、チェックサム値）から及び／又はコンテンツオブジェクトの名称要素から導出されたハッシュ値などの非階層的識別子を含むことができる。ハッシュベースの名称記述は、米国特許出願第１３／８４７，８１４号に記載されている。名称はまた、フラットラベルとすることができる。以下では、「名称」は、階層名称若しくは名称接頭辞、フラット名称、固定長名称、任意長名称又はラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名称データネットワークにおけるデータの一部用の任意の名称を指すのに使用される。
【００２５】
インタレスト：データの一部についての要求を示し且つデータの一部についての名称（又は名称接頭辞）を含むパケットである。データ消費者は、ＣＣＮルータが、要求やインタレストを満たすために要求されたデータを提供することができる記憶装置（例えば、キャッシュサーバ）又はデータ制作者に向けて伝播することができる情報中心ネットワークにわたって要求又はインタレストを広めることができる。
【００２６】
本願明細書に開示された方法は、ＣＣＮネットワークに限定されるものではないが、他のアーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの記述は、米国特許出願第１２／３３８，１７５号に記載されている。
【００２７】
図１は、本発明の実施形態にかかる、中間ノードが潜在的タイムアウトイベントを処理するのを容易とする例示的なネットワーク１００を図示している。ネットワーク１００は、コンテンツ要求装置１１６、コンテンツ制作装置１１８、並びに、ノード１０２、１０４、１０６、１０８、１１０、１１２及び１１４におけるルータ又は他の転送装置を含むことができる。ノードは、コンピュータシステム、ユーザを表すエンドポイント、及び／又は、インタレストを生成するか若しくはコンテンツを創出することができる装置とすることができる。ノードはまた、エッジルータ（例えば、ＣＣＮノード１０２及び１１４）又はコアルータ（例えば、中間ＣＣＮルータ１０４−１１２）とすることができる。
【００２８】
例えば、コンテンツ要求装置１１６は、コンテンツの一部においてインタレストを生成することができる。ネットワーク１００は、その保留インタレスト表（ＰＩＴ）にエントリを付加して中間ＣＣＮルータ１１０に対してインタレストを転送するＣＣＮルータ１０２に対してインタレストをルーティングする。インタレストを受信する各ＣＣＮルータは、同じ動作を行い、そのＰＩＴにエントリを追加してルータの転送情報ベース（ＦＩＢ）によって特定されたインターフェースに対してインタレストを転送する。例えば、ＣＣＮルータ１０２のＦＩＢは、インタレストがノード１０８及び１１０におけるインターフェースに対して転送されることになる旨を規定することができ、ノード１１０を介して転送されたインタレストは、ノード１０２からノード１１０、１１２及び１１４に対して移動する一方で、ノード１０８を介して転送されたインタレストは、ノード１０２からノード１０８及び１１４に対して移動する。その後、ＣＣＮルータ１１４は、（インタレストがノード１０８及び１１２に対応するインターフェースにおいて受信された旨の指示を含み）そのＰＩＴにエントリを追加し、コンテンツ制作装置１１８に対してインタレストを転送する。装置１１８は、一致するコンテンツオブジェクトを生成するためにさらなる計算時間が必要とされる旨を判定し、そのＣＣＮフォワーダ（ＣＣＮルータ１１４）に対してキープアライブ制御パケットを送信する。キープアライブ制御パケットは、ＣＣＮルータ１１４が対応するＰＩＴエントリを記憶し続けるための期間を示す。キープアライブ制御パケットはまた、インタレストと同じである名称と、制御パケットが「キープアライブ」メッセージである旨のインジケータとを含むことができる。ＣＣＮルータ１１４は、タイムアウト値に指示された期間を追加することによってそのＰＩＴエントリを更新し、ＰＩＴエントリについて特定された全てのインターフェース（例えば、ノード１０８及び１１２に対応するインターフェース）に対してキープアライブ制御パケットを転送する。例えば、キープアライブ制御パケットは、ノード１１４からノード１０８及び１０２まで移動し、また、ノード１１４からノード１１２、１１０及び１０２まで移動する。キープアライブ制御パケットを受信する各中間ノードは、ルータ１１４と同じ動作を実行し、ＰＩＴエントリのタイムアウト値を更新し、特定された全てのインターフェースに対して転送する。
【００２９】
コンテンツ制作装置１１８は、同じインタレストについて複数のキープアライブ制御パケットを送信することができる。例えば、コンテンツ制作装置１１８は、２０秒の時間を示すキープアライブ制御パケットを最初に送信することができ、その後、応答コンテンツオブジェクトを生成するためにさらなる時間が必要とされるかを判定することができる。その後、装置１１８は、例えば３０秒の時間を示す更新されたキープアライブ制御パケットを送信することができる。コンテンツ制作装置１１８が応答コンテンツオブジェクトを生成するために必要な計算を完了すると、装置１１８は、逆方向に同じ経路に沿ってコンテンツ要求装置１１６に対して一致するコンテンツオブジェクトを返送する。各中間ルータは、逆方向データ経路における前のホップノードに対して一致するコンテンツオブジェクトを再度転送し、対応するＰＩＴエントリを削除する。
【００３０】
図２は、本発明の実施形態にかかる、中間ノード（例えば、図１における中間ＣＣＮルータ１１４）とコンテンツ制作ノード（例えば、図１におけるコンテンツ制作装置１１８）との間の例示的な通信を図示している。中間ノード１１４及びコンテンツ制作ノード１１８の下の垂直線は、時間の経過を示している。動作中、中間ルータ１１４は、「／ａ／ｂ／ｃ／ｄ」の名称を有するインタレストを受信し（動作２０２）、名称に対応するその保留インタレスト表（ＰＩＴ）におけるエントリを作成する（動作２０４）。いくつかの実施形態において、インタレストは、ＫｅｙＩＤ制限及び／又はコンテンツオブジェクトハッシュ制限を含む。ＫｅｙＩＤは、コンテンツ制作ノードに関連付けられた鍵識別子を特定することができ、コンテンツオブジェクトハッシュ制限は、インタレストに対応するコンテンツオブジェクトについてのハッシュ値を特定することができる。ＫｅｙＩＤ制限がインタレストに含まれる場合、中間又は転送ＣＣＮノード（例えば、中間ルータ１１４）は、ＫｅｙＩＤに関連付けられたターゲットＣＣＮコンテンツ制作ノード（例えば、コンテンツ制作装置１１８）に向かってインタレストを転送する。同様に、コンテンツオブジェクトハッシュ制限がインタレストに含まれる場合、コンテンツ制作ノードは、そのハッシュ値がハッシュ制限に一致するコンテンツオブジェクトを返送する。
【００３１】
中間ルータ１１４は、コンテンツ制作装置１１８に対してインタレストを転送する（動作２０６）。装置１１８は、一致するコンテンツオブジェクトを生成するためにさらなる計算時間が必要であると判定し、キープアライブ制御パケットを生成する（動作２０８）。そして、装置１１８は、中間ルータ１１４に対してキープアライブ制御パケットを送信する（動作２１０）。キープアライブ制御パケットは、インタレストと同じ名称、パケットが「キープアライブ」制御パケットであることを示すインジケータ及び
どのくらい長く受信中間ＣＣＮルータが対応するインタレストをキープアライブし続けることになるかの期間を示している。いくつかの実施形態において、中間ノードは、インタレストの名称、又は、ＫｅｙＩＤ制限及び／又はコンテンツオブジェクトハッシュ制限などのキープアライブ制御パケットに含まれる他の一致基準に基づいて、キープアライブ制御パケットがＰＩＴエントリに対応するかどうかを判定する。キープアライブ制御パケットは、インタレストに存在する制限を指定し、また、インタレストメッセージのＳＨＡ−２５６ハッシュなどのインタレストの概要を含むことができる。キープアライブ制御パケットがそのＰＩＴエントリに対応すると判定すると、中間ルータ１１４は、タイムアウト値に指定された期間を追加することによってそのＰＩＴエントリを更新し（動作２１４）、図１に関連して説明されたようにキープアライブ制御パケットを転送する（動作２１６）。
【００３２】
一方、コンテンツ制作装置１１８は、インタレストに一致するコンテンツオブジェクトの生成を成功裏に完了し（動作２１２）、そのため、装置１１８は、中間ルータ１１４に対して応答コンテンツオブジェクトを返送する（動作２１８）。ルータ１１４は、インタレストが満たされたことを示す対応するＰＩＴエントリを削除し（動作２２０）、逆方向データ経路における前のホップノードに対して応答コンテンツオブジェクトを転送する（動作２２２）。
【００３３】
図３Ａは、本発明の実施形態にかかる、キープアライブ制御パケット及び一致するコンテンツオブジェクトを生成することによってインタレストを処理するコンテンツ制作ノードによる方法を図示するフローチャート３００である。動作中、システムは、コンテンツ制作ノードにより、インタレストメッセージに対応し且つインタレストについての名称を含むパケットを受信する（動作３０２）。コンテンツ制作ノードは、インタレストに応答してコンテンツオブジェクトを生成するためにさらなる時間が必要であると判定し（動作３０４）、キープアライブ制御パケットを生成する（動作３０６）。キープアライブ制御パケットは、インタレストと同じ名称、対応するＰＩＴエントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示している。コンテンツ制作ノードは、中間ノードに対してキープアライブ制御パケットを送信する（動作３０８）。コンテンツ制作ノードは、インタレストについての複数のキープアライブ制御パケットを生成して送信することができる。例えば、コンテンツ制作ノードは、２０秒の時間を示すキープアライブ制御パケットを生成して送信することができる。そして、コンテンツ制作ノードは、対応するコンテンツオブジェクトを生成するためにさらなる時間が必要であると判定することができ、そのため、コンテンツ制作ノードは、３０秒の時間を示す更新されたキープアライブ制御パケットを生成して送信することができる。対応するコンテンツオブジェクトを生成した後（動作３１０）、コンテンツ制作ノードは、インタレストとして逆方向データ経路における前ホップノードに対してコンテンツオブジェクトを送信する（動作３１２）。
【００３４】
図３Ｂは、本発明の実施形態にかかる、ネットワークにおける輻輳を緩和するための技術を適用するコンテンツ制作ノードによる方法を図示するフローチャート３５０である。コンテンツ制作ノードは、インタレストの名称、対応するＰＩＴエントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを生成する（動作３０６）。コンテンツ制作ノードは、使用される輻輳緩和技術を判定する（動作３５２）。１つの実施形態において、コンテンツ制作ノード（又はサーバ上で実行されるアプリケーション）は、上流ノード（例えば、システム又はインターネットサービスプロバイダ（ＩＳＰ））から所定数のトークンを受信することができる（動作３５４）。コンテンツ制作ノードは、ＰＩＴエントリについてのより多くの「キープアライブ」時間と引き換えにトークンを消費することができる（動作３５６）。ＰＩＴエントリがタイムアウトしてその後に削除されると、コンテンツ制作ノードは、トークンを受信しなおし、他のＰＩＴエントリをキープアライブするためにトークンを交換することができる。いくつかの実施形態において、コンテンツ制作ノードによって最初に受信されたトークンの数は、例えば、コンテンツ制作ノードにおけるサービスの評価に基づくことができる。さらに、コンテンツ制作ノードは、所定の「良好な挙動」に基づいて又はＩＳＰからさらなるトークンを購入することによってさらなるトークンを取得することができる（動作３５４）。トークンの割り当てはまた、コンテンツ制作ノードの否定的挙動に基づいて削減されることができる。トークンの割り当てはまた、例えば、ネットワークにおけるトラフィック、利用可能な帯域幅及び輻輳などの現在のネットワーク状態に基づくことができる。
【００３５】
さらなる実施形態において、システムは、キープアライブ制御パケットに基づいて（動作３６０）仮想接続がコンテンツ制作ノード（例えば、サーバ）とコンテンツ要求ノード（例えば、クライアント）との間のインターネットサービスプロバイダ（ＩＳＰ）によって維持されるのを可能とすることができる（動作３５８）。ＩＳＰは、特定の請求期間中に開いた仮想接続数に基づいて、コンテンツ制作ノードにおいてサーバ又はサービスを請求することができる。さらに、ピークトラフィック中に提供される仮想接続は、追加コストが発生することがある。
【００３６】
必要に応じて、コンテンツ制作ノードは、ハッシュキャッシュ値を算出し（動作３６２）、キープアライブ制御パケットにおいて算出したハッシュキャッシュ値を含むことができる（動作３６４）。ハッシュキャッシュの計算は、計算が行われるたびに次第により複雑になることがあり、それゆえに、同じインタレストについて後続のキープアライブ制御パケットを生成して送信するために否定的なインセンティブを有するコンテンツ制作ノードを提供する。このように、システムは、コンテンツ制作ノードがＰＩＴにおけるエントリの寿命を不必要に延ばすのを妨げることによってネットワーク輻輳を緩和する。
【００３７】
様々な輻輳緩和技術が使用された後、コンテンツ制作ノードは、中間ノードに対してキープアライブ制御パケットを送信する（動作３０８）。必要な計算が行われた後、コンテンツ制作ノードは、応答コンテンツオブジェクトを生成し（動作３１０）、インタレストとして逆方向データ経路における前のホップノードに対して応答コンテンツオブジェクトを送信する（動作３１２）。
【００３８】
図４Ａは、本発明の実施形態にかかる、インタレストメッセージ及び対応するキープアライブ制御パケットを処理する中間ノードによる方法を図示するフローチャート４００である。動作中、システムは、中間ノードにより、インタレストメッセージに対応し且つインタレストについての名称を含むパケットを受信する（動作４０２）。中間ノードは、その保留インタレスト表（ＰＩＴ）において対応するエントリを作成し（動作４０４）、適切な次のホップＣＣＮノードに対してインタレストを転送する（動作４０６）。その後、中間ノードは、名称、対応するＰＩＴエントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信する（動作４０８）。システムは、期間がキープアライブ制御パケットにおいて指定されたかどうかを判定する（判定４１０）。時間が指定されている場合、中間ノードは、ＰＩＴエントリについてタイムアウト値に対して指定した期間を追加することによってＰＩＴエントリを更新する（動作４１２）。期間が指定されていない場合、中間ノードは、ＰＩＴエントリについてのタイムアウト値に対してデフォルト期間を追加することによってＰＩＴエントリを更新する（動作４１４）。いくつかの実施形態において、デフォルト期間は、ネットワーク状態に基づいてルータによって動的に調整されることができる。そして、中間ノードは、ＰＩＴエントリにおいて指定されたインターフェース、例えばインタレストが受信されたフェースに対してキープアライブ制御パケットを転送する（動作４１６）。中間ノードは、インタレストに応答してコンテンツオブジェクトを最終的に受信し、対応するＰＩＴエントリを削除し、インタレストとして逆方向データ経路における適切な前のホップノードに対してコンテンツオブジェクトを転送する（動作４１８）。
【００３９】
図４Ｂは、本発明の実施形態にかかる、ネットワークにおける輻輳を緩和するための中間ノードによる方法を図示するフローチャート４５０である。動作中、中間ノードは、キープアライブ制御パケットを受信する（動作４０８）。中間ノードは、特定の名称接頭辞についてのＰＩＴにおけるエントリについての固定数（例えば、５０）を受信する（動作４５２）。いくつかの実施形態において、中間ノードは、特定の名称接頭辞に対応する名称を含むキープアライブ制御パケットを受信する前に固定数を受信する。中間ノードは、十分な数のＰＩＴエントリがキープアライブ制御パケットに示された名称の名称接頭辞について残っているかどうかを判定する（動作４５４）。十分なＰＩＴエントリが残っている場合、図４Ａにおいて説明されたように動作を継続する（例えば、判定４１０、動作４１２、４１４、４１６及び４１８）。そうでない場合、中間ノードは、キープアライブ制御パケットを無視し、対応するＰＩＴエントリがタイムアウトするのを可能とする（動作４５８）。いくつかの実施形態において、中間ノードは、コンテンツ制作ノードにおけるサーバ又はサービスが、ＰＩＴエントリがメモリに且つどのくらい長く記憶されなければならないのかを判定する責を担うように、コンテンツ制作ノードから名称接頭辞についての固定数のエントリを受信する。
【００４０】
図５Ａは、本発明の実施形態にかかる、コンテンツ制作ノードによって生成されてネットワークを介して伝播されるキープアライブ制御パケット５００の例示的なフォーマットを図示している。キープアライブ制御パケット５００は、「／ａ／ｂ／ｃ／ｄ」の値を有する名称５０２、「キープアライブ」の値を有する種類５０４フィールド、及び、対応するＰＩＴエントリが「キープアライブ」し続けることになるのかの期間を示す「３０秒」の値を有するキープアライブ期間５０６フィールドを含む。
【００４１】
図５Ｂは、本発明の実施形態にかかる、キープアライブ制御パケットの受信前（ＰＩＴエントリ５２０）及び後（ＰＩＴエントリ５４０）における中間ノードにおける保留インタレスト表（ＰＩＴ）エントリの例示的なフォーマットを図示している。ＰＩＴエントリ５２０は、キープアライブ制御パケット５００の名称５０２と同じ「／ａ／ｂ／ｃ／ｄ」の値を有する名称５２２、２秒の値を有するタイムアウト５２４フィールド、及び、ノード１０８及び１１２を含むインターフェース５２６フィールドを含む。キープアライブ制御パケット５００を受信した後、ＰＩＴエントリ５４０は、「／ａ／ｂ／ｃ／ｄ」の値を有する名称５２２、２＋３０＝３２秒の値を有するタイムアウト５２４フィールド、及び、ＰＩＴエントリ５２０と同じノード１０８及び１１２を有するインターフェース５２６フィールドを含む。
【００４２】
図６は、本発明の実施形態にかかる潜在的なタイムアウトイベントの処理を容易とする例示的なコンピュータ及び通信システム６０２を図示している。コンピュータ及び通信システム６０２は、プロセッサ６０４と、メモリ６０６と、記憶装置６０８とを含む。メモリ６０６は、管理メモリとして機能し且つ１つ以上のメモリプールを記憶するために使用可能な揮発性メモリ（例えば、ＲＡＭ）を含むことができる。さらにまた、コンピュータ及び通信システム６０２は、ディスプレイ装置６１０、キーボード６１２及びポインティングデバイス６１４に結合されることができる。記憶装置６０８は、オペレーティングシステム６１６、コンテンツ処理システム６１８及びデータ６３０を記憶することができる。
【００４３】
コンテンツ処理システム６１８は、コンピュータ及び通信システム６０２によって実行されたとき、コンピュータ及び通信システム６０２に本開示に記載された方法及び／又はプロセスを実行させることができる命令を含むことができる。具体的には、コンテンツ処理システム６１８は、中間ノードにより、インタレストメッセージについての名称、名称に対応する保留インタレスト表（ＰＩＴ）エントリをキープアライブするためのインジケータ、及び、ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを受信するための命令を含むことができる（通信機構６２０）。コンテンツ処理システム６１８はまた、キープアライブ制御パケットにおいて示された期間に基づいてＰＩＴエントリのタイムアウト値を更新するための命令を含むことができる（保留インタレスト表機構６２４）。コンテンツ処理システム６１８は、インタレストメッセージが受信されたＰＩＴエントリにおいて特定された１つ以上のインターフェースの判定に応答して、１つ以上のインターフェースに対してキープアライブ制御パケットを転送するための命令を含むことができる（通信機構６２０）。
【００４４】
コンテンツ処理システム６１８は、さらに、キープアライブ制御パケットにおいて期間が指定されていないとの判定に応答して、所定値に基づいてＰＩＴエントリのタイムアウト値を更新するための命令を含むことができる（保留インタレスト表機構６２４）。コンテンツ処理システム６１８は、インタレストに応答してコンテンツオブジェクトを受信することができ（通信機構６２０）、インタレストについての名称に対応するＰＩＴエントリを削除する（保留インタレスト表機構６２４）。
【００４５】
コンテンツ処理システム６１８はまた、名称接頭辞についてのＰＩＴにおけるエントリについての所定数を受信するための命令を含むことができる。ここで、名称接頭辞は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）の１つ以上の名称要素を備える（輻輳緩和機構６２６）。コンテンツ処理システム６１８は、名称接頭辞についての所定数のエントリに到達したとの判定に応答して（輻輳緩和機構６２６）、同じ名称接頭辞を有するさらなるＰＩＴエントリをタイムアウトするための命令を含むことができる（保留インタレスト表機構６２４）。
【００４６】
コンテンツ処理システム６１８は、さらに、コンテンツ制作ノードにより、インタレストメッセージについての名称、名称に対応するＰＩＴエントリをキープアライブするためのインジケータ、及び、ＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケットを生成するための命令を含むことができる（キープアライブ制御パケット機構６２０）。コンテンツ処理システム６１８は、中間ノードに対してキープアライブ制御パケットを送信するための命令を含むことができる（通信機構６２０）。コンテンツ処理システム６１８は、インタレストに応答してコンテンツオブジェクトを生成し（コンテンツ生成機構６２８）、他のノードに対してコンテンツオブジェクトを送信する（通信機構６２４）ための命令を含むことができる。
【００４７】
コンテンツ処理システム６１８はまた、ハッシュキャッシュ値を算出してキープアライブ制御パケットにおいて算出したハッシュキャッシュ値を含むための命令を含むことができる。ここで、ハッシュキャッシュの計算は、計算が行われるたびに次第により複雑になる（輻輳緩和機構６２６）。コンテンツ処理システム６１８はまた、キープアライブ制御パケットに基づいてコンテンツ制作ノードとコンテンツ要求ノードとの間においてＩＳＰによって提供される仮想接続が維持されるのを可能とするための命令を含むことができる（輻輳緩和機構６２６）。
【００４８】
コンテンツ処理システム６１８は、さらに、上流ノードから所定数のトークンを受信するための命令を含むことができる。ここで、トークンは、コンテンツ制作ノードにおいてＰＩＴエントリをキープアライブするための期間に対応する（輻輳緩和機構６２６）。コンテンツ処理システム６１８は、キープアライブ制御パケットを生成するのと引き換えにトークンを消費するための命令を含むことができる。ここで、ＰＩＴエントリをキープアライブするための期間は、トークンに対応する期間である（輻輳緩和機構６２６）。コンテンツ処理システム６１８は、コンテンツ制作ノードの否定的挙動に基づいてトークンを削除するための命令を含むことができる（輻輳緩和機構６２６）。
【００４９】
データ６３０は、本開示に記載された方法及び／又はプロセスによって入力として必要とされるか又は出力として生成される任意のデータを含むことができる。具体的には、データ６３０は、少なくとも、インタレストメッセージに対応するパケット、インタレストについての名称、最も一般的なレベルから最も特定のレベルまで順序付けられた連続的な名称要素を備える階層的に構造化された可変長識別子（ＨＳＶＬＩ）であるインタレストについての名称、ＨＳＶＬＩの１つ以上の名称要素を備える名称接頭辞、保留インタレスト表（ＰＩＴ）におけるエントリ、インタレストメッセージについての名称、ＰＩＴエントリをキープアライブするためのインジケータ及びＰＩＴエントリをキープアライブするための期間を示すキープアライブ制御パケット、ＰＩＴエントリのタイムアウト値、インタレストメッセージが受信されたＰＩＴエントリにおける１つ以上のインターフェース、所定期間、ネットワーク状態に基づいてルータによって動的に調整されることができる所定期間、コンテンツオブジェクトに対応するパケット、名称接頭辞についてのＰＩＴにおけるエントリについての所定数、計算が行われるたびにその計算が次第により複雑になるハッシュキャッシュ値、ＰＩＴエントリをキープアライブするための期間に対応する所定数のトークン、コンテンツ制作装置の評価に関する情報、並びに、コンテンツ制作装置の履歴又は否定的挙動に関する情報を記憶することができる。
【００５０】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られている若しくは今後開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００５１】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。
【００５２】
さらにまた、上述した方法及びプロセスは、ハードウェアモジュール又は装置に含めることができる。ハードウェアモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュール又は特定時間におけるコードの一部を実行する専用又は共有プロセッサ、及び、現在知られている若しくは今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【図１】
2016059039.tif 000003
【図２】
2016059039.tif 000004
【図３Ａ】
2016059039.tif 000005
【図３Ｂ】
2016059039.tif 000006
【図４Ａ】
2016059039.tif 000007
【図４Ｂ】
2016059039.tif 000008
【図５Ａ】
2016059039.tif 000009
【図５Ｂ】
2016059039.tif 000010
【図６】
2016059039.tif 000011