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