(57)【要約】      （修正有）【課題】ネットワークを介したメッセージフラグメントの横断転送を容易とするシステムを提供する。【解決手段】動作中、システムは、メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信する。システムは、フラグメントヘッダと階層的に構造化された可変長識別子（ＨＳＶＬＩ）との間のマッピング関係をデータ構造内に記憶し、ＨＳＶＬＩは、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称の要素を含む。システムは、メッセージに関連付けられた全てのフラグメントパケットを受信する前に、フラグメントヘッダに基づいてパケットの転送決定を行い、それにより、ネットワークを介したメッセージフラグメントの横断転送を容易とする。【選択図】図２
2016005272.tif 000002
【特許請求の範囲】
【請求項１】
パケットを転送するコンピュータ実装方法において、
メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信することと、
前記フラグメントヘッダと、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称の要素を含む階層的に構造化された可変長識別子（ＨＳＶＬＩ）との間のマッピング関係をデータ構造内に記憶することと、
前記メッセージに関連付けられた全てのフラグメントパケットを受信する前に、前記フラグメントヘッダに基づいて前記パケットの転送決定を行うこととを備え、
それにより、ネットワークを介したメッセージフラグメントの横断転送を容易とする方法。
【請求項２】
パケットの転送を容易とするコンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行された場合に、前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信することと、
前記フラグメントヘッダと、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称の要素を含む階層的に構造化された前記可変長識別子（ＨＳＶＬＩ）との間のマッピング関係をデータ構造内に記憶することと、
前記メッセージに関連付けられた全てのフラグメントパケットを受信する前に、前記フラグメントヘッダに基づいて前記パケットの転送決定を行うこととを備え、
それにより、ネットワークを介した前記メッセージフラグメントの横断転送を容易とするコンピュータシステム。
【請求項３】
前記フラグメントヘッダが、
前記フラグメントが前記メッセージに対応していることを示すフロー識別子と、
前記メッセージに対応しているフラグメントの総数を示すフラグメント数と、
前記フラグメントの前記インデックスを示すフラグメント番号とを含む、請求項２に記載のコンピュータシステム。
【請求項４】
前記データ構造が、さらに、
インターネットプロトコル（ＩＰ）送信元アドレス、
ＩＰ送信先アドレス、
ＩＰパケットで運ばれる上位層プロトコルを示すプロトコルフィールド、及び、
前記メッセージに対応する前記フラグメントを示すフロー識別子
を含むタプルに対応しているフラグメントストリーム識別子を含む、請求項２に記載のコンピュータシステム。
【請求項５】
前記方法が、さらに、保留インタレスト表（ＰＩＴ）を維持することを備え、前記ＰＩＴにおける各エントリが、保留インタレスト、前記フロー識別子、前記インタレストを識別し且つ前記フロー識別子に対応する階層的に構造化された可変長識別子（ＨＳＶＬＩ）、前記インタレストについて提供された対応するコンテンツフラグメントの数を示すフラグメントビットマップを示す、請求項２に記載のコンピュータシステム。
【請求項６】
前記方法が、さらに、
混合ネットワークを介して前記パケットを送信するために外側のインターネットプロトコル（ＩＰ）ヘッダを使用して前記パケットをカプセル化することを備え、前記混合ネットワークが、
コンテンツ中心ネットワーク（ＣＣＮ）、
ＩＰのバージョン４を実行しているネットワーク、及び、
ＩＰのバージョン６を実行しているネットワーク
のうちの１つ以上に関連付けられたノードから構成されており、
それにより、前記ネットワークを介したＩＰカプセル化を使用した前記メッセージフラグメントの横断転送を容易とする、請求項２に記載のコンピュータシステム。
【請求項７】
前記パケットが、前記コンテンツにおけるインタレストに応答してコンテンツオブジェクトを含み、前記コンテンツオブジェクトを含む前記パケットの大きさが、前記フラグメントヘッダにおける同じフロー識別子に基づいて、前記コンテンツにおけるインタレストに対応する最大のフラグメントと等しい大きさ又はそれよりも小さい大きさである、請求項２に記載のコンピュータシステム。
【請求項８】
前記方法が、さらに、
リクエストノードにより、ネットワークの最大伝送単位（ＭＴＵ）を判定することと、
各パケットの大きさが前記ネットワークの前記ＭＴＵ以下である１つ以上のパケットにメッセージをフラグメント化することと、
前記メッセージに対応するように前記１つ以上のパケットを識別するフラグメントヘッダを生成することを備える、請求項２に記載のコンピュータシステム。
【請求項９】
前記フラグメントヘッダを生成することが、さらに、
前記メッセージの階層的に構造化された可変長識別子（ＨＳＶＬＩ）に対応するフロー識別子を生成することを備え、
前記フラグメントヘッダが、
前記フロー識別子と、
前記メッセージに対応しているフラグメントの総数を示すフラグメント数と、
前記フラグメントのインデックスを示すフラグメント番号とを含む、請求項８に記載のコンピュータシステム。
【請求項１０】
コンピュータによって実行された場合に、前記コンピュータに方法を実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信することと、
前記フラグメントヘッダと、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称の要素を含む階層的に構造化された可変長識別子（ＨＳＶＬＩ）との間のマッピング関係をデータ構造内に記憶することと、
前記メッセージに関連付けられた全てのフラグメントパケットを受信する前に、前記フラグメントヘッダに基づいて前記パケットの転送決定を行うこととを備え、
それにより、ネットワークを介した前記メッセージフラグメントの横断転送を容易とする持続性コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データネットワーク上の効率的な通信に関する。より具体的には、本開示は、ＩＰカプセル化を使用したＣＣＮメッセージフラグメントの横断転送に関する。
【背景技術】
【０００２】
インターネットや電子商取引の普及は、膨大な量のディジタルコンテンツを作成し続けている。コンテンツ中心ネットワーク（ＣＣＮ）アーキテクチャは、そのようなディジタルコンテンツにアクセスして処理するのを容易とするように設計されている。ＣＣＮは、様々なコンテンツアイテムについての「インタレスト」パケットを送信し且つ返信において「コンテンツオブジェクト」パケットを受信することによって互いに通信するネットワーククライアント、フォワーダ（例えば、ルータ）及びコンテンツ制作者などのエンティティ又はノードを含む。ＣＣＮのインタレストやコンテンツオブジェクトは、典型的には階層的に構造化された可変長識別子（ＨＳＶＬＩ）であるそれらの固有の名称によって識別される。一般に、インタレストやコンテンツオブジェクトは、それらが送信先に到達することができる前に、多数のリンクを通過する。各リンクは、それ自体の最大伝送単位（ＭＴＵ）を有することができ、異なるＭＴＵ制限は、異なるフラグメント要件を強いる。エンド・ツー・エンドのＣＣＮフラグメントは、以下の特許出願において記載されている。
【０００３】
２０１３年１０月２８日に出願された発明者Ｍａｒｃ  Ｅ．Ｍｏｓｋｏ及びＭｉｃｈａｅｌ  Ｆ．Ｐｌａｓｓによる「階層的に構造化された可変長識別子によるパケットのハッシュベースの転送システム及び方法（ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＨＡＳＨ−ＢＡＳＥＤ  ＦＯＲＷＡＲＤＩＮＧ  ＯＦ  ＰＡＣＫＥＴＳ  ＷＩＴＨ  ＨＩＥＲＡＲＣＨＩＣＡＬＬＹ  ＳＴＲＵＣＴＵＲＥＤ  ＶＡＲＩＡＢＬＥ−ＬＥＮＧＴＨ  ＩＤＥＮＴＩＦＩＥＲＳ）」と名称が付された米国特許出願第１４／０６５，６９１号（代理人整理番号ＰＡＲＣ−２０１３０９９７ＵＳ０１）（以下、「米国特許出願第１４／０６５，６９１号」）、及び、２０１３年１０月３０日に出願された発明者Ｍａｒｃ  Ｅ．Ｍｏｓｋｏによる「コンテンツ中心ネットワークにおける最小パスＭＴＵ発見システム及び方法（ ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＭＩＮＩＭＵＭ  ＰＡＴＨ  ＭＴＵ  ＤＩＳＣＯＶＥＲＹ  ＩＮ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫＳ）」と名称が付された米国特許出願第１４／０６７，５８７号（代理人整理番号ＰＡＲＣ−２０１３０８７４ＵＳ０１）（以下、「米国特許出願第１４／０６７，５８７号」）。
【０００４】
ＣＣＮ及びインターネットプロトコル（ＩＰ）の双方のルータなどのノード又は転送装置から構成される異種ネットワークにおいて、（インタレストにおいてリクエストされた又はコンテンツオブジェクトにおいて受信された）ＣＣＮコンテンツの一部は、ネットワークの最大伝送単位（ＭＴＵ）よりも大きいことがある。１つの解決策は、ネットワーク層においてＩＰを使用してＩＰフラグメントに依存することである。ＣＣＮメッセージ（インタレスト又はコンテンツオブジェクト）は、ＩＰペイロードとして伝送されることができ、次のＣＣＮルータにホップ・バイ・ホップで移動するのにともない現在知られているＩＰフラグメント化方法によってフラグメント化されることができる。ＣＣＮノードは、各ＣＣＮホップにおいてフラグメントを再構成するために、標準的なＩＰｖ４又はＩＰｖ６プロトコルスタックに依存することができる。しかしながら、ＣＣＮルータは、ＣＣＮメッセージ全体を再構成して次のＣＣＮホップを決定するために到来する全てのＩＰフラグメントを待つ必要があることから、この解決策は遅延を導入する。さらにまた、再構成により、ＩＰパケットがネットワークを介してその後の移動のために再フラグメント化される必要があり得ることから、この解決策はさらなる遅延を導入する。
【発明の概要】
【課題を解決するための手段】
【０００５】
１つの実施形態は、ネットワークを介したメッセージフラグメントの横断転送を容易とするシステムを提供する。動作中、システムは、メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信する。システムは、フラグメントヘッダと階層的に構造化された可変長識別子（ＨＳＶＬＩ）との間のマッピング関係をデータ構造内に格納し、ＨＳＶＬＩは、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称要素を含む。システムは、メッセージと関連付けられている全てのフラグメントパケットを受信する前のフラグメントヘッダに基づいてパケットの転送を判断し、それにより、ネットワークを介したメッセージフラグメントの横断転送を容易とする。
【０００６】
いくつかの実施形態において、フラグメントヘッダは、フラグメントがメッセージに対応することを示すフロー識別子と、メッセージに対応するフラグメントの総数を示すフラグメント数と、フラグメントのインデックスを示すフラグメント番号とを含む。
【０００７】
いくつかの実施形態において、データ構造は、さらに、インターネットプロトコル（ＩＰ）送信元アドレス、ＩＰ送信先アドレス、ＩＰパケットで運ばれる上位層プロトコルを示すプロトコルフィールド、及び、フラグメントがメッセージに対応することを示すフロー識別子を含むタプルに対応するフラグメントストリーム識別子を備える。
【０００８】
いくつかの実施形態において、システムは、保留インタレスト表（ＰＩＴ）を維持し、ＰＩＴ内の各エントリは、保留インタレスト、フロー識別子、インタレストを識別してフロー識別子に対応する階層的に構造化された可変長識別子（ＨＳＶＬＩ）、及び、インタレストについて提供された対応するコンテンツフラグメントの数を示すフラグメントビットマップを示す。
【０００９】
いくつかの実施形態において、システムは、混合ネットワークにわたってパケットを送信するために外側のＩＰヘッダを使用してパケットをカプセル化し、混合ネットワークは、コンテンツ中心ネットワーク（ＣＣＮ）、ＩＰのバージョン４を実行しているネットワーク、ＩＰのバージョン６を実行しているネットワークのうちの１つ以上に関連付けられたノードから構成され、それにより、ネットワークを介したＩＰカプセル化を使用したメッセージフラグメントの横断転送を容易とする。
【００１０】
いくつかの実施形態において、パケットは、コンテンツにおけるインタレストに応じてコンテンツオブジェクトを含み、コンテンツオブジェクトを含むパケットの大きさは、フラグメントヘッダにおける同じフロー識別子に基づいて、コンテンツにおけるインタレストに対応する最大のフラグメント以下の大きさである。
【００１１】
いくつかの実施形態において、システムは、リクエストノードにより、ネットワークの最大伝送単位（ＭＴＵ）を判定する。システムは、１つ以上のパケットにメッセージをフラグメント化し、各パケットの大きさは、ネットワークのＭＴＵ以下である。システムは、メッセージに対応するように１つ以上のパケットを識別するフラグメントヘッダを生成する。
【００１２】
いくつかの実施形態において、システムは、メッセージのＨＳＶＬＩに対応するフロー識別子を生成する。さらにまた、フラグメントヘッダは、フロー識別子と、メッセージに対応するフラグメントの総数を示すフラグメント数と、フラグメントのインデックスを示すフラグメント番号とを含む。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態にかかるネットワークを介したＣＣＮメッセージフラグメントの横断転送を容易とする典型的なネットワークを図示している。
【図２】図２は、本発明の実施形態にかかる、コンテンツの一部におけるインタレストを示すパケットを受信して転送する方法を図示するフローチャートである。
【図３】図３は、本発明の実施形態にかかる、コンテンツオブジェクトメッセージフラグメントを含むパケットを受信して転送する方法を図示するフローチャートである。
【図４】図４は、本発明の実施形態にかかる、インタレストを事前フラグメント化してフラグメントヘッダを生成する方法を図示するフローチャートである。
【図５】図５は、本発明の実施形態にかかる、コンテンツオブジェクトを事前フラグメント化することによってコンテンツの一部におけるインタレストを満たす方法を図示するフローチャートである。
【図６Ａ】図６Ａは、本発明の実施形態にかかるネットワークを介したメッセージフラグメントの横断転送を容易とするＣＣＮインタレスト又はインタレストフラグメントについての典型的なフォーマットを図示している。
【図６Ｂ】図６Ｂは、本発明の実施形態にかかるネットワークを介したメッセージフラグメントの横断転送を容易とするＣＣＮコンテンツオブジェクト又はコンテンツオブジェクトフラグメントについての典型的なフォーマットを図示している。
【図７】図７は、本発明の実施形態にかかるネットワークを介したメッセージフラグメントの横断転送を容易とするようにシステムによって維持される典型的なデータ構造を図示している。
【図８】図８は、本発明の実施形態にかかるネットワークを介したメッセージフラグメントの横断転送を容易とするようにシステムによって維持される典型的な保留インタレスト表（ＰＩＴ）を図示している。
【図９】図９は、本発明の実施形態にかかるネットワークを介したメッセージフラグメントの横断転送を容易とする典型的なコンピュータ及び通信システムを図示している。
【発明を実施するための形態】
【００１４】
図面において、同様の参照符号は、同じ図要素を指す。
【００１５】
以下の説明は、当業者が実施形態を製造して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更例は、当業者にとって容易に明らかであり、本願明細書において定義される一般的原理は、本開示の精神及び範囲から逸脱することなく、他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲を与えられるべきである。
【００１６】
概要
本発明の実施形態は、ＣＣＮ及びＩＰノードの双方から構成される異種ネットワークにおけるＩＰカプセル化を使用したＣＣＮメッセージフラグメントの横断転送を容易とするシステムを提供する。そのようなネットワークにおいて、ＣＣＮインタレスト又はコンテンツオブジェクトメッセージが下層のネットワークの最大伝送単位（ＭＴＵ）よりも大きい場合、ネットワークは、フラグメント化サービス、例えばＩＰフラグメント化を提供する。ＣＣＮメッセージは、ＩＰフラグメント化を使用してフラグメント化されたＩＰパケット内のペイロードとして運ばれ、リクエストＣＣＮノードから送信先ＩＰアドレスにおけるＣＣＮノードへと送信される。受信ＣＣＮノードは、各ＣＣＮホップにおいてフラグメントを再構成するために、標準的なＩＰｖ４又はＩＰｖ６プロトコルスタックを使用することができる。しかしながら、この方法は、１）ＣＣＮノードがＣＣＮメッセージを再構成して次のＣＣＮホップを決定するために到来する全てのＩＰパケットフラグメントを待つ必要があり、２）再構成により、ＣＣＮメッセージがネットワークを介してその後の送信のために再フラグメント化される必要があり得ることから、遅延を招く。
【００１７】
本発明は、ＣＣＮメッセージを、下層のネットワークのＭＴＵと同じ大きさ又はそれよりも小さく且つ各メッセージフラグメントのペイロードにフラグメントヘッダを含むフラグメントに事前フラグメント化することによる再構成及び再フラグメント化に起因する遅延及び非効率性という問題を解決する。フラグメントヘッダは、ＣＣＮメッセージに属するものとしてフラグメントを識別する。動作中、ＣＣＮノードは、フラグメントヘッダとともにコンテンツの一部を固有に識別するＨＳＶＬＩを含むＣＣＮインタレストやコンテンツオブジェクトとすることができるＣＣＮメッセージに関連付けられた最初のフラグメントを送信する。ＣＣＮノードによって送信された後続のフラグメントは、同じＣＣＮメッセージの一部と、ＣＣＮメッセージに対応するフロー識別子、フラグメント総数及びインデックス番号を示す適切なフラグメントヘッダとを含む。フラグメントは、ＩＰ層に渡され、適切なＩＰヘッダによってカプセル化される。
【００１８】
中間ＣＣＮノードは、最初のフラグメントを受信し、ＨＳＶＬＩにフロー識別子をマッピングし、その保留インタレスト表（ＰＩＴ）を更新し、ＩＰ層にフラグメントを返すことによってＣＣＮデータ経路における次のＣＣＮホップに対してフラグメントを転送する。この中間ＣＣＮノードが同じＣＣＮメッセージの後続のフラグメントを受信した場合、それは、単に、フロー識別子を検査し、転送の決定を行う前に受信されるように同じＣＣＮメッセージに属する全てのフラグメントを待つ必要がなく、最初のフラグメントと同様にして次のＣＣＮホップに対してフラグメントを転送する。それゆえに、このシステムは、下層のＩＰカプセル化によってＣＣＮメッセージフラグメントの横断転送を容易とする。
【００１９】
以下の用語は、ＣＣＮアーキテクチャの要素を説明する。
コンテンツオブジェクト：固有の名称に結合されている名称付きデータの単一部分である。コンテンツオブジェクトは、コンテンツオブジェクトが変化せずにコンピューティングデバイス内又は異なるコンピューティングデバイス間を移動することができることを意味する、「永続的」である。コンテンツオブジェクトの任意の要素が変化した場合、変更を行ったエンティティは、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たな固有の名称に新たなコンテンツオブジェクトを結合する。
【００２０】
固有の名称：ＣＣＮ内の名称は、通常、場所とは無関係であり、コンテンツオブジェクトを固有に識別する。データ転送装置は、コンテンツオブジェクトについてのネットワークアドレス又は物理的場所にかかわらず、コンテンツオブジェクトを生成又は記憶するネットワークノードに向けてパケットを転送するために名称又は名称接頭辞を使用することができる。いくつかの実施形態において、名称は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）とすることができる。ＨＳＶＬＩは、様々な方法で構築可能ないくつかの階層的な要素に分割されることができる。例えば、個々の名称要素ｐａｒｃ、ｈｏｍｅ、ｃｃｎ及びｔｅｓｔ．ｔｘｔは、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成するために左指向の接頭辞が主要である方法で構築可能である。それゆえに、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」又は「接頭辞」とすることができる。共同文書などの異なるバージョンのコンテンツアイテムを区別するためにさらなる要素が使用可能である。
【００２１】
いくつかの実施形態において、名称は、コンテンツオブジェクトのデータ（例えば、チェックサム値）及び／又はコンテンツオブジェクトの名称の要素から導出されるハッシュ値などの非階層識別子を含むことができる。ハッシュベースの名称の記載は、（２０１３年３月２０日に出願された発明者Ｉｇｎａｃｉｏ  Ｓｏｌｉｓによる「名称ベースのパケット転送用の順序付けられた要素の名称付け」と名称が付された）米国特許出願第１３／８４７，８１４号に記載されている。名称はまた、フラットラベルとすることができる。以下では、「名称」は、階層名称若しくは名称接頭辞、フラット名称、固定長名称、任意長名称又はラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名称データネットワークにおけるデータの一部用の任意の名称を指すのに使用される。
【００２２】
インタレスト：データの一部についてのリクエストを示し且つデータの一部についての名称（又は名称接頭辞）を含むパケットである。データ消費者は、ＣＣＮルータが、記憶装置（例えば、キャッシュサーバ）又はリクエストやインタレストを満たすためにリクエストされたデータを提供することができるデータ制作者に向けて伝播することができる情報中心ネットワークにわたってリクエストやインタレストを広めることができる。
【００２３】
本願明細書に開示される方法は、ＣＣＮネットワークに限定されるものではなく、同様に他のアーキテクチャにも適用可能である。ＣＣＮアーキテクチャの記載は、（２００８年１２月１８日に出願された発明者Ｖａｎ  Ｌ．Ｊａｃｏｂｓｏｎ及びＤｉａｎａ  Ｋ．Ｓｍｅｔｔｅｒｓによる「コンテンツ中心ネットワークにおけるインタレスト及びコンテンツの普及の制御」と名称が付された）米国特許出願第１２／３３８，１７５号に記載されている。
【００２４】
典型的なネットワーク及び通信
図１は、本発明の実施形態にかかるネットワークを介したＣＣＮメッセージフラグメントの横断転送を容易とする典型的なネットワーク１００を図示している。ネットワーク１００は、クライアントデバイス１１６と、コンテンツ制作装置１１８と、ノード１０２、１０４、１０６、１０８、１１０、１１２及び１１４におけるルータ又は他の転送装置とを含むことができる。ネットワーク１００は、異種ネットワークとすることができ、ノード１０２−１１４のそれぞれは、ＣＣＮルータ又はＩＰ専用ルータとすることができる。例えば、ノード１０２、１０８、１１２及び１１４は、ＣＣＮルータとすることができる一方で、ノード１０４、１０６及び１１０は、ＩＰ専用ルータとすることができる。ＣＣＮルータは、ＩＰルータの上部に存在するＣＣＮ転送装置とすることができる。換言すれば、ＣＣＮは、ＩＰの上部におけるオーバーレイとして実装可能である。他のＣＣＮオーバーレイアーキテクチャもまた可能である。ノードは、コンピュータシステム、ユーザを表すエンドポイント及び／又はインタレストを生成したり若しくはコンテンツを発信したりすることができる装置とすることができる。例えば、リクエストＣＣＮノード１０２は、コンテンツの一部のインタレストを生成することができ、中間ＣＣＮルータ１０８及び１１２は、メッセージフラグメントを受信して転送することができ、ＣＣＮコンテンツ制作者１１４は、リクエストされたインタレストを満たすことができる。ノード１０２は、コンテンツの一部におけるインタレストを生成することができ、インタレストメッセージを事前フラグメント化することができ、各フラグメントにフラグメントヘッダを追加することができ、中間ＣＣＮルータ１０８に対してインタレストフラグメントを転送することができる。ＣＣＮルータ１０８は、フラグメントヘッダがフロー識別子とＨＳＶＬＩとの間のマッピング関係を示しているかどうかを判定することができる。マッピングが存在する場合、ＣＣＮルータ１０８は、次のＣＣＮノードに対してメッセージフラグメントを転送する。そして、下層のＩＰ層は、送信先ＩＰアドレスが次のＣＣＮノードを指すようにＩＰヘッダを書き換える。マッピング関係が存在しない場合、ＣＣＮルータ１０８は、ＨＳＶＬＩに対するフロー識別子をマッピングし、そのＰＩＴを更新し、次のＣＣＮホップ（例えば、ＣＣＮルータ１１２）に対してインタレストフラグメントを転送する。メッセージフラグメントが、コンテンツを生成することができる又はそのキャッシュがリクエストされたコンテンツ（例えば、制作者１１４）を含むノードに到達するまで、各中間ＣＣＮルータにおいて同じ手順が発生する。
【００２５】
コンテンツ制作者１１４は、インタレストフラグメントを受信することができ、リクエストされたコンテンツオブジェクトを事前フラグメント化することができ、フラグメントパケットのそれぞれに対してフラグメントヘッダを追加することができ、インタレストの逆経路に沿ってコンテンツオブジェクトフラグメントを転送することができる。ＣＣＮルータ１１２は、フラグメントを受信して、インタレストの逆経路（例えば、ＣＣＮルータ１０８に対して及びリクエストノード１０２に対して）にしたがい続けることによってコンテンツオブジェクトフラグメントを転送することができる。リクエストノード１０２は、全てのコンテンツオブジェクトフラグメントを受信し、コンテンツオブジェクトを再構成する。
【００２６】
インタレストフラグメントの受信及び転送
図２は、本発明の実施形態にかかる、コンテンツの一部におけるインタレストを示すパケットを受信して転送する方法を図示するフローチャート２００である。動作中、システム（例えば、中間ＣＣＮルータ）は、ＣＣＮメッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信する（動作２０２）。パケットがＣＣＮインタレストを識別するための十分な情報（例えば、階層的に構造化された可変長識別子（ＨＳＶＬＩ）などのコンテンツ名称）を含む場合（判定２０４）、受信ノードは、コンテンツが既にそのキャッシュ内に存在するかどうかを判定する（判定２１０）。そうである場合、システムは、図５に示される動作に移行する。パケットが固有の識別子（例えば、ＨＳＶＬＩ）を含まない場合、システムは、フラグメントヘッダからのフロー識別子が既に局所データ構造内に存在するかどうかを判定する（判定２０６）。フロー識別子が局所データ構造内にみつからない場合、これは、インタレストについての固有の識別情報を含む最初のフラグメント又は複数のフラグメントが中間ルータにまだ到着していないことを示す。中間ルータは、それが識別情報を含む最初のフラグメント又は複数のフラグメントを受信するまで、フラグメントをバッファリングすることができ、複数のフラグメントを受信し続けてバッファリングすることができる（動作２０８）。あるいは、中間ルータは、パケットをドロップすることができ、発信ＣＣＮノードに対して通知メッセージを送信することができ、それが関連するフラグメント又は複数のフラグメントを受信するまで待機することができる（動作２０８）。
【００２７】
フロー識別子がデータ構造内に存在する場合（判定２０６）、ＨＳＶＬＩとフロー識別子との間のマッピング関係は既に作成され、ＨＳＶＬＩを含むフラグメント（又は複数のフラグメント）が既に中間ルータによって受信されたことを示す。この場合、システムは、メッセージに関連付けられた全てのフラグメントパケットを受信する前に、ＣＣＮデータ経路における次のホップに対してフラグメントを転送することによってインタレストメッセージフラグメントの横断転送を行う（動作２１６）。中間ＣＣＮルータは、下層のＩＰ層にＣＣＮフラグメントを送信することによってフラグメントを転送し、次のホップのＣＣＮノードのＩＰアドレスに基づいてＩＰヘッダを書き換える。
【００２８】
受信フラグメントがＨＳＶＬＩを含み（判定２０４）且つコンテンツが中間ルータのキャッシュ内に存在しない（判定２１０）場合、中間ルータは、フラグメントヘッダからＨＳＶＬＩに対してフロー識別子をマッピングするデータ構造を作成する（動作２１２）。中間ルータは、インタレストに対応するエントリを追加することによって保留インタレスト表（ＰＩＴ）を更新し（動作２１４）、ＣＣＮルーティング経路における次のホップの外側のＩＰヘッダを書き換えることによってフラグメントを転送する（動作２１６）。いくつかの実施形態において、ＰＩＴは、対応するインタレストフラグメントが中間ルータによって受信されるたびに更新されるインタレストフラグメントビットマップコラムを含む。
【００２９】
コンテンツオブジェクトフラグメントの受信及び転送
図３は、本発明の実施形態にかかる、コンテンツオブジェクトを含むパケットを受信して転送する方法を図示するフローチャート３００である。中間ＣＣＮルータは、コンテンツオブジェクトメッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信する（動作３０２）。中間ルータは、コンテンツオブジェクトメッセージフラグメントのフラグメントヘッダに含まれるフロー識別子に基づいて、各ＰＩＴエントリを検査する（動作３０４）。中間ルータはまた、コンテンツオブジェクトに関連付けられた全てのフラグメントが受信されたかどうかを示すビットマップ（例えば、６４ビット長のビットマップ）を記憶するＰＩＴにおけるフラグメントビットマップコラムを更新する（動作３０６）。例えば、特定のコンテンツオブジェクトフラグメントについてのフラグメントヘッダからのフラグメント数及びフラグメントインデックスに基づいて、中間ルータは、フラグメントが受信されたことを示すために「０」を有するビットマップ内の適切なビットを更新することができる。フラグメントマップにおける全ビットが「０」であると、ビットマップコラムは、同じフロー識別子に基づいてメッセージに対応するフラグメントの全てを中間ルータが受信したことを示す「ゼロ設定」にされる（判定３０８）。中間ルータは、保留インタレストが満たされたことを示すためにＰＩＴエントリを削除する（動作３１０）。最後に、中間ＣＣＮルータは、下層のＩＰ層に対してＣＣＮフラグメントを送信することによってコンテンツオブジェクトフラグメントを転送し、次のホップのＣＣＮノードのＩＰアドレスに基づいてＩＰヘッダを書き換える（動作３１２）。
【００３０】
インタレストの事前フラグメント化及びフラグメントヘッダの生成
図４は、本発明の実施形態にかかる、インタレストを事前フラグメント化してフラグメントヘッダを生成する方法を図示するフローチャート４００である。動作中、システム（例えば、コンテンツリクエストノード）は、ネットワークの最大伝送単位（ＭＴＵ）を判定し（動作４０２）、フラグメントの大きさがネットワークのＭＴＵ以下となるように、判定されたＭＴＵに基づいてメッセージを事前フラグメント化する（動作４０４）。リクエストノードは、階層的に構造化された可変長識別子（ＨＳＶＬＩ）に基づいてフロー識別子を生成する（動作４０６）。システムは、フロー識別子、フラグメント総数及びフラグメントインデックス番号を含み（動作４０８）且つメッセージフラグメントの全てにペイロードの一部としてフラグメントヘッダを含む（動作４１０）フラグメントヘッダを生成する。最後に、リクエストノードは、ＩＰ層に対してメッセージフラグメントを送信し、ＣＣＮデータ経路における次のホップのＣＣＮノードについてのＩＰヘッダを生成する（動作４１２）。
【００３１】
コンテンツオブジェクトメッセージの事前フラグメント化
図５は、本発明の実施形態にかかる、コンテンツオブジェクトを事前フラグメント化することによってコンテンツの一部におけるインタレストを満たす方法を図示するフローチャート５００である。システム（例えば、コンテンツ制作ノード）は、ＣＣＮインタレストメッセージの全てのフラグメントを受信し（動作５０２）し、コンテンツ制作ノードがインタレストを満たすことができる旨の判定により、受信したフラグメント及びフラグメントヘッダに含まれる情報（例えば、フラグメントの総数及び各フラグメントのインデックス番号）を使用してインタレストメッセージを再構成する（動作５０４）。これに応答して、コンテンツ制作ノードは、受信した最大のインタレストフラグメントよりも大きくない大きさに対応するコンテンツオブジェクトをフラグメント化する（動作５０６）。コンテンツ制作ノードは、フロー識別子、フラグメント総数及びフラグメントインデックス番号を含み（動作５０８）且つ全てのコンテンツオブジェクトフラグメントにおけるペイロードの一部としてフラグメントヘッダを含む（動作５１０）フラグメントヘッダを生成する。最後に、コンテンツ制作ノードは、下層のＩＰ層に対してＣＣＮフラグメントを送信することによってコンテンツオブジェクトフラグメントを転送し、次のホップのＣＣＮノードのＩＰアドレスに基づいて、ＩＰヘッダを書き換える（動作５１２）。
【００３２】
メッセージフラグメントの典型的なフォーマット及びデータ構造
図６Ａは、本発明の実施形態にかかる、ネットワークを介したメッセージフラグメントの横断転送を容易とするＣＣＮインタレスト又はインタレストフラグメント６００についての典型的なフォーマットを図示している。フラグメント６００は、インタレスト又はインタレストフラグメント６１４及びフラグメントヘッダ６１８を含む。フラグメントヘッダ６１８は、フロー識別子６０８、フラグメント数６１０及びフラグメント番号６１２を含む。インタレスト又はインタレストフラグメント６１４は、ＣＣＮメッセージの一部を含み、フラグメントヘッダ６１８は、そのＣＣＮメッセージに属するものとしてフラグメントを識別するように各ＣＣＮフラグメントペイロードに含まれる。フロー識別子６０８は、ＣＣＮメッセージに属するものとしてフラグメントを識別する番号又は共通ラベルである。いくつかの実施形態において、フロー識別子６０８は、ランダムに生成された６４ビットの数値とすることができる。フロー識別子６０８はまた、米国特許出願第１４／０６７，５８７号及び米国特許出願第１４／０６５，６９１号に記載されるように、ＨＳＶＬＩに基づいて生成されたハッシュベースの値、ＨＳＶＬＩのルーティング可能な部分、及び／又はＣＣＮメッセージの他の要素とすることもできる。フラグメント数６１０は、ＣＣＮメッセージに対応するフラグメントの総数を示す。フラグメント番号６１２は、ストリーム内のフラグメントのインデックスを示す。ＩＰヘッダ６１６は、ＩＰ送信元アドレス６０２、ＩＰ送信先アドレス６０４及びプロトコルフィールド６０６を含む。他の既知のＩＰヘッダフィールド（図示しない）もまた、ＩＰヘッダ６１６に含めることができる。例えば、いくつかの実施形態において、ＩＰヘッダ６１６は、ＩＰパケット（この場合、ペイロードとして事前フラグメント化されたＣＣＮメッセージフラグメント６１４及びフラグメントヘッダ６１８を担持する）がフラグメント化されるべきではないことを示すように「１」に設定される「フラグメント化しない（‘Ｄｏｎ’ｔ  Ｆｒａｇｍｅｎｔ）」（ＤＦ）サブフィールドについての制御フラグを含む。
【００３３】
図６Ｂは、本発明の実施形態にかかる、ネットワークを介したメッセージフラグメントの横断転送を容易とするＣＣＮコンテンツオブジェクト又はコンテンツオブジェクトフラグメント６２０についての典型的なフォーマットを図示している。コンテンツオブジェクト又はコンテンツオブジェクトフラグメント６２０は、図６Ａにおけるインタレスト又はインタレストフラグメント６００と同様のフィールドを含む。すなわち、フラグメント６２０は、コンテンツオブジェクト又はコンテンツオブジェクトフラグメント６３４と、フラグメントヘッダ６３８とを含む。フラグメントヘッダ６３８は、フロー識別子６２８、フラグメント数６３０及びフラグメント番号６３２を含む。ここで留意すべきは、コンテンツオブジェクトに関連付けられたフラグメントの大きさ及び数が、受信した対応するインタレストメッセージに含まれるフラグメントの大きさ及び数とは異なってもよいということである。例えば、コンテンツオブジェクトメッセージフラグメントの大きさは、最大の受信したインタレストフラグメントよりも大きくなることはできない。さらにまた、受信したインタレストに応答してコンテンツオブジェクトの全体の大きさは、受信したインタレストよりも大きいことがあることから、コンテンツオブジェクトフラグメントストリームに関連付けられたフラグメントの数は、受信したインタレストストリームに関連付けられたフラグメントの数よりも大きくてもよい。図６Ａにおけるインタレスト又はインタレストフラグメント６００と同じように、フラグメント６２０は、ＩＰ送信元アドレス６２２、ＩＰ送信先アドレス６２４及びプロトコルフィールド６２６を含むＩＰヘッダ６３６を含む。
【００３４】
図７は、本発明の実施形態にかかる、ネットワークを介したメッセージフラグメントの横断転送を容易とするためにシステムによって維持される典型的なデータ構造７００を図示している。データ構造７００は、名称フィールド７０２を含み、階層的に構造化された可変長識別子（ＨＳＶＬＩ）として示されているが、本願明細書に記載される他のフォーマットを含むことができる。図６Ａ及び図６Ｂに示されるフラグメントヘッダについてのフォーマットに関連して説明したように、データ構造７００はまた、フロー識別子７０４を含むことができる。フロー識別子７０４は、同一のフロー識別子を含むメッセージフラグメントが同じＣＣＮメッセージに対応するように、ＨＳＶＬＩ７０２に対応している。データ構造７００はまた、リクエストノードのＩＰ送信元アドレス７０６、受信ノードのＩＰ送信先アドレス７０８、及び、パケットを伝送するのに使用されるプロトコル７１０を含むことができる。いくつかの実施形態において、ＩＰパケットを伝送するのに使用される上位層プロトコルは、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）又は一般ルーティングカプセル化（ＧＲＥ）とすることができる。いくつかの実施形態において、フロー識別子７０４、ＩＰ送信元アドレス７０６、ＩＰ送信先アドレス７０８及びプロトコルフィールド７１０は、ＩＰｖ４パケットのタプルをともに形成する。このタプルは、１２バイトのフィールドとすることができるフラグメントストリームＩＤを含む。いくつかの実施形態において、フラグメントストリームＩＤは、特定のフラグメントストリームの経路を示すためにＰＩＴの状態を維持するのに使用可能である。例えば、データ構造７００の１つのエントリは、８２４のフロー識別子、１．１．１．１のＩＰ送信元アドレス、３．３．３．３のＩＰ送信先アドレス及びＴＣＰを示すプロトコルフィールドを有する「／ｗｉｌｄｌｉｆｅ／ａｉｒ／ｂｉｒｄ／ｆｉｎｃｈ」のＨＳＶＬＩを含むことができる。
【００３５】
図８は、本発明の実施形態にかかる、ネットワークを介したメッセージフラグメントの横断転送を容易とするためにシステムによって維持される典型的な保留インタレスト表（ＰＩＴ）８００を図示している。ＰＩＴ８００は、名称フィールド８０２を含むことができ、階層的に構造化された可変長識別子（ＨＳＶＬＩ）として示されているが、本願明細書に記載される他のフォーマットを含むことができる。ＰＩＴ８００はまた、インタレストが到着したポートを示し且つ対応するコンテンツオブジェクトが送信されなければならないポートに対応するインタレスト入力ポートフィールド８０４を含むことができる。図６Ａ及び図６Ｂに示されるフラグメントヘッダのフォーマットに関連して説明したように、ＰＩＴ８００はまた、フロー識別子フィールド８０６を含むことができる。フロー識別子フィールド８０６は、同じフロー識別子を含むメッセージフラグメントが同じＣＣＮメッセージに対応するように、名称フィールド８０２に対応している。ＰＩＴ８００はまた、コンテンツオブジェクトメッセージフラグメントの全てが受信されたかどうかを示すビットマップ（例えば、６４ビット長のビットマップ）を記憶するフラグメントビットマップコラム８０８を含むことができる。いくつかの実施形態において、ＰＩＴ８００は、インタレストメッセージフラグメントの全てが受信されたかどうかを示すビットマップを記憶するインタレストフラグメントビットマップコラム（図示しない）を含むことができる。システムは、ＰＩＴ８００における不完全なエントリを削除するかどうかを判定するために、有効期間（ＴＴＬ）フィールド又は他のタイムアウト若しくは期限フィールドに関連して、このビットマップを使用することができる。システムは、さらに、本願明細書に列挙されていない他の目的についてのインタレストフラグメントビットマップコラムを使用することができる。
【００３６】
典型的なコンピュータ及び通信システム
図９は、ネットワークを介したメッセージフラグメントの横断転送を容易とする典型的なコンピュータ及び通信システム９０２を図示している。コンピュータ及び通信システム９０２は、プロセッサ９０４と、メモリ９０６と、記憶装置９０８とを含む。メモリ９０６は、管理メモリとして機能する揮発性メモリ（例えば、ＲＡＭ）を含むことができ、１つ以上のメモリプールを記憶するのに使用可能である。さらにまた、コンピュータ及び通信システム９０２は、表示装置９１０と、キーボード９１２と、ポインティングデバイス９１４に接続可能である。記憶装置９０８は、オペレーティングシステム９１６、コンテンツ処理システム９１８及びデータ９３２を記憶することができる。
【００３７】
コンテンツ処理システム９１８は、コンピュータ及び通信システム９０２によって実行された場合に、コンピュータ及び通信システム９０２に本開示に記載された方法及び／又は処理を実行させることができる命令を含むことができる。具体的には、コンテンツ処理システム９１８は、メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットを受信するための命令を含むことができる（通信機構９２０）。コンテンツ処理システム９１８はまた、メッセージに関連付けられている全てのフラグメントを受信する前に、フラグメントヘッダに基づいてパケットの転送決定を行うための命令を含むことができる（転送機構９２８）。
【００３８】
コンテンツ処理システム９１８は、さらに、ネットワークの最大伝送単位（ＭＴＵ）を識別することに応答して、１つ以上のパケットにメッセージをフラグメント化するための命令を含むことができ、各パケットの大きさは、ネットワークのＭＴＵ以下である（フラグメント化機構９２２）。コンテンツ処理システム９１８はまた、メッセージに対応するように１つ以上のパケットを識別するフラグメントヘッダを生成するための命令を含むことができ（フラグメントヘッダ生成機構９２４）、さらに、メッセージの階層的に構造化された可変長識別子（ＨＳＶＬＩ）に対応するフロー識別子を生成することができる（フラグメントヘッダ生成機構９２４）。
【００３９】
コンテンツ処理システム９１８は、フラグメントヘッダとＨＳＶＬＩとの間のマッピング関係をデータ構造内に記憶するための命令を含むことができ、ＨＳＶＬＩは、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する名称要素を含む（データ構造維持機構９２６）。コンテンツ処理システム９１８はまた、保留インタレスト表（ＰＩＴ）を維持するための命令を含むことができ、各ＰＩＴエントリは、保留インタレスト、フロー識別子、インタレストを識別し且つフロー識別子に対応するＨＳＶＬＩ、及び、インタレストについて提供された対応するコンテンツフラグメントの数を示すフラグメントビットマップコラムを示す（データ構造維持機構９２６）。コンテンツ処理システム９１８は、さらに、混合ネットワークにわたってパケットを送信するために外側のインターネットプロトコル（ＩＰ）ヘッダを使用してパケットをカプセル化するための命令を含むことができ、混合ネットワークは、ＣＣＮ、ＩＰｖ４ネットワーク及びＩＰｖ６ネットワークのうちの１つ以上に関連するノードから構成される（カプセル化機構９３０）。
【００４０】
データ９３２は、本開示に記載された方法及び／又は処理による入力として必要とされるか又は出力として生成される任意のデータを含むことができる。具体的には、データ９３２は、少なくとも、メッセージのフラグメントに対応し且つフラグメントヘッダを含むパケットと、フラグメントヘッダと、フラグメントがメッセージに対応していることを示すフロー識別子と、メッセージに対応するフラグメントの総数を示すフラグメント数と、ストリーム内のフラグメントのインデックスを示すフラグメント番号と、ＩＰ送信元アドレス、ＩＰ送信先アドレス、ＩＰパケットで運ばれる上位層プロトコルを示すプロトコルフィールド、及び、メッセージに対応するフラグメントを示すフロー識別子から構成されたタプルに対応するフラグメントストリーム識別子と、最も一般的なレベルから最も特定のレベルまで順序付けられた連続した名称要素を含む階層的に構造化された可変長識別子（ＨＳＶＬＩ）と、フラグメントヘッダとＨＳＶＬＩとの間のマッピング関係を含むデータ構造と、保留インタレスト表（ＰＩＴ）と、インタレストについて提供された対応するコンテンツフラグメントの数を示すフラグメントビットマップと、中間ノードによって受信された対応するインタレストフラグメントの数を示すフラグメントビットマップと、ＩＰパケットをカプセル化し、ＣＣＮ、ＩＰｖ４及び／又はＩＰｖ６ノードから構成された混合ネットワークを介してパケットを送信するのに十分なＩＰヘッダとを記憶することができる。
【００４１】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、既知の若しくは後に開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００４２】
詳細な説明のセクションに記載された方法及び処理は、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具現化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行した場合、コンピュータシステムは、データ構造及びコードとして具体化され且つコンピュータ読み取り可能な記憶媒体内に記憶された方法及び処理を実行する。
【００４３】
さらにまた、上述した方法及び処理は、ハードウェアモジュール又は装置に含めることができる。ハードウェアモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュール又は特定の時点におけるコードの一部を実行する専用又は共有プロセッサ、並びに、既知の又は後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動された場合、それらは、それらの内部に含まれる方法及び処理を実行する。
【図１】
2016005272.tif 000003
【図２】
2016005272.tif 000004
【図３】
2016005272.tif 000005
【図４】
2016005272.tif 000006
【図５】
2016005272.tif 000007
【図６Ａ】
2016005272.tif 000008
【図６Ｂ】
2016005272.tif 000009
【図７】
2016005272.tif 000010
【図８】
2016005272.tif 000011
【図９】
2016005272.tif 000012