(57)【要約】      （修正有）【課題】効率的なパケット転送を容易にするシステムを提供する。【解決手段】動作中、システムは、第１のノードにおける保存デバイスに、タイプと長さ（ＴＬ）ストリングおよび圧縮済み置換ストリングの間のマッピングを備える静的辞書を保存する。パケットにおけるＴＬストリングを特定することに応答して、システムは、ＴＬストリングを圧縮済み置換ストリングに置換し、パケットを、静的辞書をローカル保存デバイスに保存する第２のノードへ送信し、それにより、ＴＬストリングの圧縮を容易にする。【選択図】図１Ｂ
2017092955.tif 000002
【特許請求の範囲】
【請求項１】
効率的なパケット転送のためのコンピュータ実装方法であって、前記方法は、
第１のノードにおける保存デバイスに、タイプと長さ（ＴＬ）ストリングおよび圧縮済み置換ストリングの間のマッピングを備える静的辞書を保存することと、
パケットにおける前記ＴＬストリングを特定することに応答して、前記ＴＬストリングを前記圧縮済み置換ストリングに置換することと、
前記パケットを、前記静的辞書をローカル保存デバイスに保存する第２のノードへ送信し、それにより、ＴＬストリングの圧縮を容易にすることと、
を備える、方法。
【請求項２】
前記パケットはコンテンツ指向型ネットワーク（ＣＣＮ）メッセージであり、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされる連続的な名前コンポーネントを備える、階層的に構造化される可変長識別子（ＨＳＶＬＩ）である、請求項１に記載の方法であって、
前記方法は、前記ＣＣＮメッセージの固定ヘッダを圧縮済み固定ヘッダに置換することを、さらに備える、請求項１に記載の方法。
【請求項３】
前記圧縮済み固定ヘッダは、前記圧縮済み固定ヘッダのフォーマットを表すフィールドのセットを含み、前記フィールドのセットは、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、パケット長、および、ホップリミットを備えるフィールドの第１のセット、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、および、パケット長を備えるフィールドの第２のセット、および、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、パケット長、および、ホップリミットを備えるフィールドの第３のセット、
のうちの１つである、請求項２に記載の方法。
【請求項４】
前記固定ヘッダの前記フィールド長および前記圧縮済み固定ヘッダは同じであり、前記フィールドの第３のセットにおける前記パターンは、前記ＣＣＮメッセージの前記ヘッダが圧縮されていることを示す、請求項３に記載の方法。
【請求項５】
パケットの転送を容易にするコンピュータシステムであって、前記システムは、
プロセッサ、および、
前記プロセッサにより実行されると、前記プロセッサに方法を行わせる命令を保存する保存デバイスであって、前記方法は、
第１のノードにおける保存デバイスに、タイプと長さ（ＴＬ）ストリングおよび圧縮済み置換ストリングの間のマッピングを備える静的辞書を保存することと、
パケットにおける前記ＴＬストリングを特定することに応答して、前記ＴＬストリングを前記圧縮済み置換ストリングに置換することと、
前記ＣＣＮメッセージを、前記静的辞書をローカル保存デバイスに保存する第２のノードへ送信し、それにより、ＴＬストリングの圧縮を容易にすることと、
を備える、保存デバイス、
を備える、コンピュータシステム。
【請求項６】
前記パケットはコンテンツ指向型ネットワーク（ＣＣＮ）メッセージであり、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、請求項５に記載のコンピュータシステムであって、
前記方法は、前記ＣＣＮメッセージの固定ヘッダを圧縮済み固定ヘッダに置換することを、さらに備える、請求項５に記載のコンピュータシステム。
【請求項７】
前記圧縮済み固定ヘッダは、前記圧縮済み固定ヘッダのフォーマットを表すフィールドのセットを含み、前記フィールドのセットは、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、パケット長、および、ホップリミットを備えるフィールドの第１のセット、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、および、パケット長を備えるフィールドの第２のセット、
前記フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、パケット長、および、ホップリミットを備えるフィールドの第３のセット、
のうちの１つである、請求項５に記載のコンピュータシステム。
【請求項８】
前記固定ヘッダおよび前記圧縮済み固定ヘッダの前記フィールド長は同じであり、前記フィールドの第３のセットにおける前記パターンは、前記ＣＣＮメッセージの前記ヘッダが圧縮されていることを示す、請求項７に記載のコンピュータシステム。
【請求項９】
コンピュータにより実行されると、前記コンピュータに方法を行わせる命令を保存する持続性コンピュータ可読保存媒体であって、前記方法は、
第１のノードにおける保存デバイスに、タイプと長さ（ＴＬ）ストリングおよび圧縮済み置換ストリングの間のマッピングを備える静的辞書を保存することと、
パケットにおける前記ＴＬストリングを特定することに応答して、前記ＴＬストリングを前記圧縮済み置換ストリングに置換することと、
前記パケットを、前記静的辞書をローカル保存デバイスに保存する第２のノードへ送信し、それにより、ＴＬストリングの圧縮を容易にすることと、
を備える、持続性コンピュータ可読保存媒体。
【請求項１０】
前記パケットはコンテンツ指向型ネットワーク（ＣＣＮ）メッセージであり、前記ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり、前記方法は、前記ＣＣＮメッセージの固定ヘッダを圧縮済み固定ヘッダに置換することを、さらに備える、請求項９に記載の保存媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、デジタルコンテンツの配信に関する。より具体的には、本開示は、ＣＣＮメッセージのヘッダ圧縮に関する。
【背景技術】
【０００２】
インターネットおよび電子商取引の普及により、膨大な量のデジタルコンテンツが作成され続けている。コンテンツ指向型ネットワーク（ＣＣＮ）アーキテクチャは、そのようなデジタルコンテンツへのアクセスおよび処理を容易にするよう設計されてきた。ＣＣＮは、様々なコンテンツアイテムの「インタレスト」パケットを送信し、引き換えに「コンテンツオブジェクト」パケットを受信することにより、相互に通信する、ネットワーククライアント、転送者（例えば、ルータ）、および、コンテンツ製作者など、エンティティまたはノードを含む。ＣＣＮインタレストおよびコンテンツオブジェクトは、典型的に階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、独自の名前により特定される。ＨＳＶＬＩは、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＣＣＮメッセージ（例えば、ＣＣＮノードからのメッセージ）は、多数の繰り返しフィールドをヘッダに含んでよい。異なるフィールドの実際の値に加えて、ヘッダは、フィールドと関連付けられるフィールド情報（例えば、タイプおよび長さ）を保持してよい。例えば、ＨＳＶＬＩの異なる名前コンポーネントは、対応するタイプおよび長さと共に異なる値を有し得る。しかしながら、ＨＳＶＬＩの各コンポーネントはタイプが「名前」であり得るので、同じフィールド情報が繰り返される。結果として、ＣＣＮメッセージのヘッダにおける情報は反復的になり、パケットを転送する間の非効率的なリソース利用を導き得る。
【課題を解決するための手段】
【０００４】
１つの実施形態は、効率的なパケット転送を容易にするシステムを提供する。動作中、システムは、第１のノードにおける保存デバイスに、タイプと長さ（ＴＬ）ストリングおよび圧縮済み置換ストリングの間のマッピングを備える静的辞書を保存する。パケットにおけるＴＬストリングを特定することに応答して、システムは、ＴＬストリングを圧縮済み置換ストリングに置換し、パケットを、静的辞書をローカル保存デバイスに保存する第２のノードへ送信する。それにより、ＴＬストリングの圧縮が容易になる。
【０００５】
本実施形態の変形において、パケットはコンテンツ指向型ネットワーク（ＣＣＮ）メッセージである。ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である。その後、システムは、ＣＣＮメッセージの固定ヘッダを圧縮済み固定ヘッダに置換する。
【０００６】
さらなる変形において、圧縮済み固定ヘッダは、圧縮済み固定ヘッダのフォーマットを表すフィールドのセットを含む。このフィールドのセットは、以下のうちの１つである：（ｉ）フォーマットを特定するパターン、バージョン、パケットタイプ、パケット長、および、ホップリミットを備えるフィールドの第１のセット；（ｉｉ）フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、および、パケット長を備えるフィールドの第２のセット；および、（ｉｉｉ）フォーマットを特定するパターン、バージョン、パケットタイプ、ヘッダ長、パケット長、および、ホップリミットを備えるフィールドの第３のセット。
【０００７】
さらなる変形において、固定ヘッダおよび圧縮済み固定ヘッダのフィールド長は同じである。フィールドの第３のセットにおけるパターンは、ＣＣＮメッセージのヘッダが圧縮されていることを示す。
【０００８】
本実施形態の変形において、ＴＬストリングは、中間値を有さない連続的なＴＬペアを含む。
【０００９】
本実施形態の変形において、圧縮済み置換ストリングは、ＴＬストリングと関連付けられる可変長を示す長さフィールドを含む。
【００１０】
本実施形態の変形において、システムは、圧縮ヘッダをパケットに追加する。圧縮ヘッダは、静的辞書を特定する文脈識別子を含む。
【００１１】
さらなる変形において、静的辞書は、複数の静的辞書のうちの１つであり、文脈識別子は静的辞書を複数の静的辞書から特定する。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、本発明の１つの実施形態にしたがって、メッセージのヘッダ圧縮を容易にする例示的なコンテンツ指向型ネットワーク（ＣＣＮ）を図示する。
【図１Ｂ】図１Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダを圧縮するための方法を図示するフローチャートを提示する。
【図２Ａ】図２Ａは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮可能な固定ヘッダを図示する。
【図２Ｂ】図２Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮ヘッダを図示する。
【図２Ｃ】図２Ｃは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮済み固定ヘッダフォーマットを図示する。
【図２Ｄ】図２Ｄは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの固定ヘッダを圧縮するための方法を図示するフローチャートを提示する。
【図３Ａ】図３Ａは、本発明の１つの実施形態にしたがって、静的辞書ルックアップに基づくＣＣＮメッセージのヘッダのタイプと長さ（ＴＬ）ペアの例示的な圧縮を図示する。
【図３Ｂ】図３Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダのＴＬペアを圧縮するための例示的な圧縮済み置換ストリングフォーマットを図示する。
【図３Ｃ】図３Ｃは、本発明の１つの実施形態にしたがって、静的辞書ルックアップに基づくＣＣＮメッセージのヘッダのＴＬペアを圧縮するための方法を図示するフローチャートを提示する。
【図４Ａ】図４Ａは、本発明の１つの実施形態にしたがって、学習済み辞書ルックアップに基づくＣＣＮメッセージのヘッダのタイプ、長さ、および、値（ＴＬＶ）の例示的な圧縮を図示する。
【図４Ｂ】図４Ｂは、本発明の１つの実施形態にしたがって、学習済み辞書エントリを作成するためのＴＬＶストリングを学習するための方法を図示するフローチャートを提示する。
【図４Ｃ】図４Ｃは、本発明の１つの実施形態にしたがって、学習済み辞書ルックアップに基づくＣＣＮメッセージのヘッダのＴＬＶストリングを圧縮するための方法を図示するフローチャートを提示する。
【図５Ａ】図５Ａは、本発明の１つの実施形態にしたがって、ビットアラインされた符号化済み辞書エントリのための例示的なフォーマットを図示する。
【図５Ｂ】図５Ｂは、本発明の１つの実施形態にしたがって、符号化済み辞書を生成する方法を図示するフローチャートを提示する。
【図６】図６は、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダ圧縮を容易にする例示的なコンピュータおよび通信システムを図示する。
【発明を実施するための形態】
【００１３】
図において、同様の参照番号は同様の図要素を指す。
【００１４】
以下の説明は、当業者が実施形態を作製および使用可能なように提示され、特定の用途および要件の文脈において提供される。開示される実施形態に対する様々な修正が当業者に容易に明らかになり、本明細書において規定される一般的な原理が、本開示の精神および範囲から逸脱することなく、他の実施形態および用途に適用されてよい。したがって、本発明は示される実施形態に限定されないが、本明細書において開示される原理および特性と一致する最も広い範囲に合致する。
【００１５】
概要
本発明の実施形態は、インタレストメッセージなど、ネットワーク経由で送信されるコンテンツ指向型ネットワーク（ＣＣＮ）メッセージ（ＣＣＮパケットとも称される）のヘッダ圧縮を容易にするシステムを提供する。ＣＣＮメッセージは、固定ヘッダ、ゼロ以上の選択的なヘッダフィールド、および、複数のメッセージ本体フィールドを含む。固定ヘッダは、大部分のパケットのビット長に関して典型的に余剰している、多数のフィールドを含む。さらに、ヘッダおよび本体フィールドは、タイプ、長さ、および、値（ＴＬＶ）フォーマットにより表される。ＴＬＶフィールドの一部は、中間値を有さない連続的なＴＬペアを含み得る。これにより、ＣＣＮメッセージのヘッダにおいて高度に予測可能な情報（例えば、反復されるタイプと長さ）が導かれ得る。
【００１６】
この問題を解決するために、本発明の実施形態は、圧縮済み固定ヘッダフォーマットを使用して固定ヘッダを圧縮し、静的な、学習済み、および／または、符号化済み辞書を使用してＴＬＶフィールドを圧縮する。ＣＣＮノードは、固定ヘッダを圧縮するための１つ以上の圧縮済み固定ヘッダフォーマットを保持する。さらに、ノードは、事前に規定され得る、ＴＬペアを圧縮するための静的辞書を保持する。さらに、ノードは、ＴＬＶストリングを学習し、対応する圧縮済み置換ストリングを生成し、学習済み辞書のエントリにおけるストリング間のマッピングを保持し得る。ノードは、学習済み辞書のエントリをピアノードと共有し、それにより、ノードは、ピアノードへの後続のメッセージのヘッダにおける学習済みＴＬＶストリングを圧縮できる。一部の実施形態において、さらに、ノードは、符号化技術（例えば、ハフマン符号化）を適用することにより静的辞書を符号化し、圧縮効率を向上させ得る。
【００１７】
動作中、メッセージをピアへ送信する前に、ノードは、固定ヘッダを圧縮済み固定ヘッダフォーマットの１つに基づいて圧縮する。その後、ノードは、ヘッダおよびメッセージフィールドを構文解析してＴＬペアストリングを取得し、ＴＬペアストリングと一致する各々の圧縮済み置換ストリング（ＣＲＳ）を静的辞書から取得し、ＴＬペアストリングを対応する置換ストリングに置換する。一部の実施形態において、ノードは、静的辞書の代わりに符号化済み辞書におけるＴＬペアストリングを調べ得る。一部のさらなる実施形態において、さらに、ノードは、ヘッダおよびメッセージフィールドを構文解析してＴＬＶストリングを取得し、ＴＬＶストリングと一致する各々の圧縮済み置換ストリングを学習済み辞書から取得し、ＴＬＶストリングを対応する圧縮済み置換ストリングに置換し得る。ＴＬペアが任意の辞書において一致を引き起こさない場合、ノードは、より小さいビットフィールドにおけるＴＬペアのコンパクト表現を使用して、ＴＬペアの長さをさらに削減し得る。これらの技術の１つ以上を使用して、ノードはＣＣＮメッセージのヘッダを圧縮する。
【００１８】
本開示において、「ヘッダ圧縮」という用語は、アプリケーションペイロードを除く、フレーミングの量の削減およびパケットにおけるオーバーヘッドの伝達の共通使用において使用される。ＣＣＮメッセージにおいて、ヘッダ圧縮は、パケットフレーミング（固定ヘッダ）、フィールドフレーミング（タイプ−長さ−値）、および、ＣＣＮプロトコルの一部である暗号キーまたはハッシュ値などの信号伝達に適用される。
【００１９】
以下の用語が、ＣＣＮアーキテクチャを説明するために使用される：
【００２０】
コンテンツオブジェクト：独自の名前と結び付く、単体の名付けられたデータ。コンテンツオブジェクトは「永続的」である。これは、コンテンツオブジェクトが、計算デバイス内、または、異なる計算デバイスとの間で、移動可能であり得るが、変化しないことを意味する。コンテンツオブジェクトの任意のコンポーネントが変化する場合、変化をもたらすエンティティは、更新済みコンテンツを含む新しいコンテンツオブジェクトを作成して、新しいコンテンツオブジェクトを新しい独自の名前と結び付ける。
【００２１】
独自の名前：ＣＣＮにおける名前は、典型的に独立した位置であり、コンテンツオブジェクトを独自に特定する。データ転送デバイスは、名前または名前プレフィックスを使用して、コンテンツオブジェクトのネットワークアドレスまたは物理的な位置に関係なく、コンテンツオブジェクトを生成または保存するネットワークノードへパケットを転送し得る。一部の実施形態において、名前は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であってよい。ＨＳＶＬＩは、様々な手法で構造化され得る、いくつかの階層的なコンポーネントに分割され得る。例えば、個々の名前コンポーネントｐａｒｃ、ｈｏｍｅ、ｃｃｎ、およびｔｅｓｔ．ｔｘｔは、左向き上位プレフィックスの手法で構造化され、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成し得る。したがって、名前「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」または「プレフィックス」であり得る。追加的なコンポーネントは、共同文書など、コンテンツアイテムの異なるバージョンを区別するのに使用され得る。
【００２２】
一部の実施形態において、名前は、コンテンツオブジェクトのデータ（例えば、チェックサム値）から生じる、および／または、コンテンツオブジェクトの名前の要素から生じる、ハッシュ値など、非階層的な識別子を含み得る。ハッシュベースの名前の説明は、米国特許出願第１３／８４７，８１４号に記載されている。
【００２３】
さらに、名前はフラットラベルであり得る。以降、「名前」は、階層的な名前または名前プレフィックス、フラットな名前、固定長の名前、任意の長さの名前、または、ラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）など、名前−データネットワークにおけるデータの任意の名前を指すために使用される。
【００２４】
インタレスト：データに対する要求を示し、データの名前（または、名前プレフィックス）を含む、パケット。データ消費者は、要求またはインタレストを、ＣＣＮルータが、保存デバイス（例えば、キャッシュサーバ）へ、または、要求されたデータを提供して要求またはインタレストを満たし得るデータ製作者へ、伝搬し得る、情報指向型ネットワークを介して広め得る。
【００２５】
本明細書において開示される方法は、ＣＣＮネットワークに限定されず、他のアーキテクチャにも適用可能である。ＣＣＮアーキテクチャの説明は、米国特許出願第１２／３３８，１７５号に記載されている。
【００２６】
例示的なネットワークおよび通信
図１Ａは、本発明の１つの実施形態にしたがって、メッセージのヘッダ圧縮を容易にする例示的なコンテンツ指向型ネットワーク（ＣＣＮ）を図示する。ＣＣＮであり得るネットワーク１００は、クライアントデバイス１１６、コンテンツ製作デバイス１１８、および、ノード１０２、１０４、１０６、１０８、１１０、１１２、および１１４にルータまたは他の転送デバイスを含み得る。ノードは、コンピュータシステム、ユーザを表すエンドポイント、および／または、インタレストの生成またはコンテンツの創出を行い得るデバイスであり得る。ピアＣＣＮノード１０２および１１４が、静的辞書、学習済み辞書、および、符号化済み辞書を共有すると仮定する。さらに、ノード１０２および１１４は、相互に支持される圧縮済み固定ヘッダフォーマットを認識し得る。一部の実施形態において、静的辞書は、（例えば、ネットワーク管理者により）事前に構成され、ネットワーク１００を介して伝搬される。
【００２７】
動作中、ＣＣＮノード１０２は、メッセージ１２０（例えば、コンテンツに対するインタレスト）を生成し得る。メッセージ１２０は、固定ヘッダ、選択的なヘッダ、および、ＣＣＮメッセージペイロードを含む。ノード１０２は、メッセージ１２０のヘッダおよびメッセージフィールドを圧縮し、圧縮済みヘッダ１２１を生成し得る。圧縮済みヘッダ１２１は、以下のうちの１つ以上を含み得る：圧縮済み固定ヘッダフォーマットに基づいて生成される圧縮済み固定ヘッダ１２２；静的（および／または、符号化済み）辞書に基づく圧縮済みＴＬペア１２４、および、ＴＬペアの対応する値１２５；学習済み辞書に基づく圧縮済みＴＬＶ１２６；および、辞書におけるエントリと一致しないコンパクト化済みＴＬペア１２８。一部の実施形態において、ノード１０２は、文脈識別子を圧縮済みヘッダ１２１に含む。文脈識別子は、辞書が圧縮済みヘッダ１２１を生成するために使用されたことを示し得る。
【００２８】
ノード１０２は、メッセージ１２０をピアＣＣＮノード１１４へ送信する。ノード１１４は、メッセージ１２０を受信し、文脈識別子を圧縮済みヘッダ１２１から取得し、辞書情報を文脈識別子から取得する。その後、ノード１１４は、情報を圧縮済み固定ヘッダ１２２のヘッダフィールドから、そのフォーマットに基づいて取得する。その後、ノード１１４は、圧縮済みＴＬペア１２４の静的（および／または、符号化済み）辞書において逆ルックアップ（すなわち、逆マッチング）を行い、元のＴＬペアを取得して、当該のＴＬペアの文脈における値１２５を使用する。同様に、ノード１１４は、元のＴＬＶを圧縮済みＴＬＶ１２６から、共有される学習済み辞書に基づいて取得する。さらに、ノード１１４は、情報をコンパクト化済みＴＬペア１２８のフィールドから、そのフォーマットに基づいて取得する。したがって、ノード１１４は、固定ヘッダ１３２および選択的なヘッダ１３４を含む、逆辞書ルックアップに基づいて生成される未圧縮ヘッダ１３０を生成する。この手法において、ピアノード１０２および１１４は、ＣＣＮメッセージを圧縮済みヘッダと交換し得る。それにより、送信およびヘッダ処理の効率化を達成する。
【００２９】
ヘッダ圧縮の概要
図１Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダを圧縮するための方法を図示するフローチャート１５０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、ヘッダ圧縮の候補メッセージを特定する（動作１５２）。候補メッセージの例は、別のＣＣＮノードから受信された未圧縮メッセージ、ＣＣＮノードのヘッダが未圧縮のメッセージ、および、ＣＣＮノードにより生成されたメッセージを含むが、それらに限定されない。その後、システムは、メッセージの固定ヘッダを圧縮済み固定ヘッダフォーマットに基づいて圧縮する（動作１５４）。フォーマットは、固定ヘッダの異なるフィールドに対する最も一般的な値を効率的な手法で表す。
【００３０】
システムは、ＴＬペアストリングを静的辞書におけるメッセージの選択的なヘッダおよびメッセージ本体から調べ、対応する圧縮済み置換ストリングを特定する。その後、システムは、ＴＬペアストリングを特定された圧縮済み置換ストリングに置換する（動作１５６）。一部の実施形態において、システムは、静的辞書を符号化することにより（例えば、ハフマン符号化を適用することにより）生成される、符号化済み辞書においてルックアップを行い得る。符号化済み置換ストリングが可変長のものである場合、符号化済み置換ストリングは、符号化された長さのＴＬペアストリングに先行する。その後、システムは、ＴＬＶストリングを学習済み辞書におけるメッセージの選択的なヘッダおよびメッセージ本体から調べ、対応する圧縮済み置換ストリングを特定する。その後、システムは、ＴＬＶストリングを特定された圧縮済み置換ストリングに置換する（動作１５８）。
【００３１】
いかなるＴＬペアも辞書エントリと一致しない場合、システムはＴＬペアのサイズをさらに削減してよい。その後、システムは、辞書エントリと一致しないＴＬペアのパターンを使用して、ＴＬペアをコンパクト化する（動作１６０）。一部の実施形態において、システムは、文脈識別子を圧縮済みヘッダに組み込む（動作１６２）。この文脈識別子は、圧縮済み固定ヘッダに先行してよく、圧縮済みヘッダを生成するために使用される１つ以上の辞書を特定し得る。例えば、ピアノードが複数の静的辞書を有する場合、圧縮済みヘッダを有するメッセージを受信するピアノードは、圧縮済みヘッダを解凍するために使用する辞書を文脈識別子から判定し得る。
【００３２】
フィールドヘッダの圧縮
図２Ａは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮可能な固定ヘッダを図示する。ＣＣＮメッセージの通常の固定ヘッダ２３０は、典型的に、複数のフィールドを含む。これらのフィールドは、以下のうちの１つ以上を含む：バージョン２０２、パケットタイプ２０４、パケット長２０６、ホップリミット２０８、および、ヘッダ長２１２。加えて、固定ヘッダ２３０は、さらに、予備フィールド２１０を含み得る。しかしながら、ノードが固定ヘッダ２３０を有するパケットを受信すると、ノードは、パケットのヘッダ（すなわち、固定ヘッダおよび／または選択的なヘッダ）が圧縮されているか、認識しない可能性がある。
【００３３】
この問題を解決するために、固定ヘッダ２３０のフォーマットは、圧縮可能な固定ヘッダ２３２へ変更される。バージョンフィールド２０２のビットは、パターンフィールド２００（すなわち、ビットパターン）、より短いバージョンフィールド２０３、および、予備ビット２１４を含むよう再配分される。パターンフィールド２００は、パケットが圧縮されているかを示し得る。さらに、パターンフィールド２００は、どの固定ヘッダフォーマットが圧縮済み固定ヘッダを生成するために使用されるかを示し得る。例えば、パターン「０００」はパケットが未圧縮であることを示してよく、パターン「００１」は特定の圧縮済み固定ヘッダフォーマットを示し得る。
【００３４】
図２Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮ヘッダを図示する。圧縮ヘッダ２３４は、圧縮済み固定ヘッダ２２６の前に追加される。圧縮済み固定ヘッダ２２６は、固定ヘッダ２３２と同じフィールド長を有してよいことに、留意されたい。しかしながら、圧縮済み固定ヘッダ２２６のパターンは、後続の選択的なヘッダが圧縮されている場合、それを圧縮済みヘッダとして特定する。このように、ピアノードは、圧縮済みの選択的なヘッダを認識する。
【００３５】
圧縮ヘッダ２３４は、文脈パターン（ＣＰ）２２０、文脈識別子（ＣＩＤ）２２２、および、周期的冗長検査（ＣＲＣ）フィールド２２４を含む。一部の実施形態において、ＣＲＣフィールド２２４は、ＩＥＴＦのＲｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ（ＲＦＣ）４９９５に記載されるように、ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ４９９５で入手可能な「Ｔｈｅ  ＲＯｂｕｓｔ  Ｈｅａｄｅｒ  Ｃｏｍｐｒｅｓｓｉｏｎ（ＲＯＨＣ）  Ｆｒａｍｅｗｏｒｋ（ロバストヘッダ圧縮フレームワーク）」と題された、ＲＯｂｕｓｔ  Ｈｅａｄｅｒ  Ｃｏｍｐｒｅｓｓｉｏｎ（ＲＯＨＣ）に基づいて計算される。文脈識別子２２２は、異なる長さ（例えば、バイト配列ごとに３ビットまたは１０ビット）を有し得る。文脈パターン２２０は、文脈識別子の長さを示す。
【００３６】
図２Ｃは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの例示的な圧縮済み固定ヘッダフォーマットを図示する。この例において、圧縮済み固定ヘッダは、フォーマット２４１、２５１、または２６１で表され得る。これらのフォーマットの各々は、効率的な処理のためにバイトアラインされ得る。フォーマット２４１は、フォーマット２４１を特定するパターン２４２（例えば、「０１０」）、バージョンフィールド２４３、パケットタイプフィールド２４４、パケット長フィールド２４５、および、ホップリミットフィールド２４６を含む。フォーマット２４１は、ヘッダが固定ヘッダ長を有しており、それを表すための専用ビットを必要としない場合、適切である。フォーマット２５１は、フォーマット２５１を特定するパターン２５２（例えば、「０１１」）、バージョンフィールド２５３、パケットタイプフィールド２５４、ヘッダ長フィールド２５５、および、パケット長フィールド２５６を含む。フォーマット２５１は、メッセージがホップリミットを有さない場合、適切である。
【００３７】
フォーマット２６１は、フォーマット２６１を特定するパターン２６２（例えば、「００１」または「１００」），バージョンフィールド２６３、パケットタイプフィールド２６４、ヘッダ長フィールド２６５、パケット長フィールド２６６、および、ホップリミットフィールド２６７を含む。フォーマット２６１は、固定ヘッダの各々のフィールドが必要な場合、適切である。しかしながら、フォーマット２６１のフィールド長は異なっている可能性があり、パターン２６２はフィールド長の差異を示し得る。例えば、圧縮済み固定ヘッダ２２６が固定ヘッダ２３２と同じフィールド長を必要とする場合、パターン２６２は１つのビットパターン（例えば、「００１」）を推定し得る。一方で、フィールド長が固定ヘッダ２３２より短い場合、パターン２６２は別のビットパターン（例えば、「１００」）を推定し得る。フォーマット２６１のフィールドは同じままであってよく、または、ヘッダ長フィールドは、ヘッダ長に加えてリターンコードを表すよう、さらに分割され得る。
【００３８】
図２Ｄは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージの固定ヘッダを圧縮するための方法を図示するフローチャート２８０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、図２Ｃと関連して記載されるように、メッセージの固定ヘッダのフィールドの各々の値を特定し（動作２８２）、固定ヘッダフォーマットを特定された値に基づいて判定する（動作２８４）。その後、システムは、固定ヘッダを判定された固定ヘッダフォーマットに基づいて圧縮する（動作２８６）。
【００３９】
静的辞書を使用するＴＬ圧縮
図３Ａは、本発明の１つの実施形態にしたがって、静的辞書ルックアップに基づくＣＣＮメッセージのヘッダのＴＬペアの例示的な圧縮を図示する。この例において、メッセージの選択的なヘッダは、値Ｖ３を含む、いかなる中間値も有さない連続的なＴＬペア（Ｔ０，Ｌ０）、（Ｔ１，Ｌ１）、および（Ｔ２，Ｌ２）のセットに先行するＴＬＶ３０２を含む。例えば、連続的なＴＬペアは、検証タイプ、ハッシュ値（例えば、（セキュアハッシュアルゴリズム）ＳＨＡ−２５６）、および、キー（例えば、公開キー）、および、各々の長さを表し得る。これらの種類および対応する長さの各々は固定されているため、連続的なＴＬペア（Ｔ０，Ｌ０）、（Ｔ１，Ｌ１）、および（Ｔ２，Ｌ２）は、静的辞書のエントリにおける単一の圧縮済み置換ストリング（ＣＲＳ）３０６により表され得る。ノードは、静的辞書においてルックアップを行い、ストリング３０６を取得し、連続的なＴＬペア（Ｔ０，Ｌ０）、（Ｔ１，Ｌ１）、および（Ｔ２，Ｌ２）を、メッセージのヘッダにおける圧縮済みＴＬペア３０４として置換し得る。ここで、圧縮は「タイプ」（例えば、Ｔ０）で始まり、「値」（例えば、Ｖ３）の前で終わる。
【００４０】
静的辞書は、既知のＴＬペアストリングを使用してドメイン知識の分析（例えば、頻度分析）に基づいて構築され得る。さらに、静的辞書は、特有の事例に対して構築され得る。例えば、静的辞書は、クライアントに最も一般的に使用されるＴＬペアのために存在し得る。ノードは複数の静的辞書を含むことができ、文脈識別子は圧縮のために使用された静的辞書を示し得る。ノードが静的辞書の使用を開始し得る前に、ネットワークの各々の他のノードも静的辞書の複製を保存するのがよい。一部の実施形態において、静的辞書はネットワークの各々のノードへ伝搬される。
【００４１】
図３Ｂは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダの対応するＴＬペアのための例示的な圧縮済み置換ストリングフォーマットを図示する。この例において、圧縮済み置換ストリング３０６は、フォーマット３１１、３２１、または３３１で表され得る。これらのフォーマットの各々は、効率的な処理のためにバイトアラインされ得る。フォーマット３１１は、フォーマット３１１を特定するパターン３１２（例えば、「１０」）および圧縮キー３１３を含む。この圧縮キー３１３は、圧縮済みヘッダにおける単一または連続的なＴＬペアを表し得る。圧縮キーは、静的辞書において対応するＴＬペアにマップされる。圧縮キー３１３を表すためのビット数は様々であってよく、パターン３１２は圧縮キー３１３に割り当てられているビット数を示す。フォーマット３１１は、ＴＬペアが固定長を有しており、それを表すためのビットが必要でない場合、適切である。
【００４２】
一方で、フォーマット３２１は、フォーマット３２１を特定するパターン３２２（例えば、「０」または「１１０」）、圧縮キー３２３、および、長さ３２４を含む。圧縮キー３２３および／または長さ３２４を表すためのビット数は様々であり、パターン３２２は圧縮キー３２３および長さ３２４に割り当てられているビット数を示す。圧縮キー３２３は単一または連続的なＴＬペアを表すことができ、長さ３２４はＴＬペアの長さを表し得る。フォーマット３２１は、ＴＬペアが圧縮済み置換ストリングに置換されることができ、その長さが長さ３２４のビットにより表され得る場合、適切である。ここで、フォーマット３１１および３２１の両方は、辞書ヒット（すなわち、静的辞書における成功したルックアップ）を符号化し得る。
【００４３】
しかしながら、辞書のミスが起こると、ノードは、より少ないビットを使用してタイプおよび長さを表すことにより、ＴＬペアをさらにコンパクト化し得る。フォーマット３３１は、コンパクト化されたＴＬペアを表す。フォーマット３３１は、フォーマット３３１を特定するパターン３３２（例えば、「１１１０」、「１１１１１０」、または「１１１１１１１」）、タイプ３３３、および、長さ３３４を含む。タイプ３３３および／または長さ３３４を表すためのビット数は様々であり、パターン３３２はタイプ３３３および長さ３３４に割り当てられているビット数を示す。ＴＬペアのほとんどで、フォーマット３３１は、ＴＬペアの長さより短くなり得る。言い換えると、フォーマット３３１は、より少ないバイトを使用してタイプ３３３および／または長さ３３４を表すことができ、それにより、ＴＬペアをコンパクト化する。
【００４４】
図３Ｃは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダのＴＬペアを静的辞書ルックアップに基づいて圧縮するための方法を図示するフローチャート３５０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、静的辞書ルックアップに対するメッセージの選択的なヘッダにおける単一または連続的な（すなわち、中間値を有さない）ＴＬペアストリングを取得する（動作３５２）。システムは、静的辞書におけるトークンと一致するエントリを特定する（動作３５４）。その後、システムは、圧縮済み置換ストリングをエントリから検索し（動作３５６）、選択的なヘッダおよびメッセージ本体におけるＴＬペアストリングを圧縮済み置換ストリングに置換する（動作３５８）。
【００４５】
学習済み辞書を使用するＴＬＶ圧縮
図４Ａは、本発明の１つの実施形態にしたがって、学習済み辞書ルックアップに基づくＣＣＮメッセージのヘッダのＴＬＶの例示的な圧縮を図示する。この例において、メッセージの選択的なヘッダは、ＴＬＶのセット（Ｔ０，Ｌ０，Ｖ０）、（Ｔ１，Ｌ１，Ｖ１）、および（Ｔ２，Ｌ２，Ｖ２）を含む、ＴＬＶ４１２を含む。ＴＬＶがトークンを表す場合、ノードはＴＬＶストリングを学習し、圧縮済み置換ストリング４１４を作成し、圧縮済み置換ストリング４１４を有する学習済み辞書にエントリを作成する。一方で、ＴＬＶがカウンタを表す場合、ノードはＴＬＶストリングを学習し、ＴＬＶのタイプおよびオフセットの基準値４０９を符号化する圧縮キー４０８を備える置換カウンタ４１６を判定する。ノードは、置換カウンタ４１６を有する学習済み辞書にエントリを作成する。圧縮済み置換ストリング４１４および置換カウンタ４１６は、効率的な処理のためにバイトアラインされ得る。ここで、圧縮は「タイプ」（例えば、Ｔ０）で始まり、「値」（例えば、Ｖ２）で終わる。
【００４６】
その後、ノードはエントリをピアノードと共有する。ノードは、分離交換メッセージ（例えば、「辞書」を示す固定ヘッダのパケットタイプを有する）を送り得る。交換メッセージは、トークンおよびカウンタＴＬＶの両方に対する１つ以上の辞書エントリ（すなわち、辞書定義）を保持し得る。さらに、ノードは、辞書エントリを帯域内交換（例えば、データメッセージにおけるピギーバック）を使用して送り得る。ストリーミングを容易にするために、学習済みの値は符号化されずに送られる。帯域内交換は独自のＣＲＣを有してよく、パケットの辞書情報を指し示すために逆オフセットおよびメッセージのフッタの長さを使用し得る。
【００４７】
ピアノードが辞書エントリを受信すると、ピアノードは承認をノードへ返送する。一部の実施形態において、承認は、情報の効率的な交換のために静的辞書に基づくエントリに基づいている。各々のノードは、学習済み（および、静的）辞書の各々のエントリにタイマーを保持し得る。エントリが一定期間にわたって使用されない場合、ノードはエントリをタイムアウトにして辞書から取り除く。承認を受信すると、ノードは、トークンＴＬＶストリングを任意の後続のメッセージのヘッダにおける圧縮済み置換ストリング４１４に置換する。一方で、メッセージのヘッダがカウンタＴＬＶを含む場合、ノードはカウンタ値をカウンタＴＬＶから取得し、オフセットを現在値および基準値４０９に基づいて計算する。その後、ノードは、カウンタＴＬＶストリングを、オフセットが続く置換カウンタ４１６に置換する。
【００４８】
例えば、ＴＬＶは名前「／ｆｏｏ／ｂａｒ／ｃｈｕｎｋ＝７」を表し得る。ここで、（Ｔ０，Ｌ０，Ｖ０）は、それぞれ名前のタイプ、名前コンポーネント「ｆｏｏ」の長さ、および、ストリング「ｆｏｏ」に対応する。同様に、（Ｔ１，Ｌ１，Ｖ１）は名前コンポーネント「ｂａｒ」を表し、（Ｔ２，Ｌ２，Ｖ２）は名前コンポーネント「ｃｈｕｎｋ＝７」を表す。ファイルは複数のチャンクにさらに分割されることができ、「ｃｈｕｎｋ＝７」はファイルの８番目のチャンクを表し得る。（Ｔ０，Ｌ０，Ｖ０）および（Ｔ１，Ｌ１，Ｖ１）は各々のチャンクの間に繰り返されるので、ノードは、（Ｔ０，Ｌ０，Ｖ０）および（Ｔ１，Ｌ１，Ｖ１）を表すＴＬＶストリングを圧縮済み置換ストリング４１４と共に圧縮し得る。一方で、（Ｔ２，Ｌ２，Ｖ２）はカウンタを表すので、ノードは、（Ｔ２，Ｌ２，Ｖ２）をオフセット（例えば、Ｖ２−基準値４０９）が続く置換カウンタ４１６に置換することにより、（Ｔ２，Ｌ２，Ｖ２）を圧縮し得る。
【００４９】
ピアノードが圧縮済みの選択的なヘッダおよびメッセージ本体を有するメッセージを受信すると、ピアノードは逆マッチングを学習済み辞書に適用して、トークンＴＬＶストリングを取得する。同様に、ピアノードは、カウンタＴＬＶストリングの基準値を取得し得る。その後、ピアノードは、基準値およびオフセットを使用して値を計算する。圧縮および解凍は、２つのピアノード間または通信のエンドポイント（例えば、インタレストの生成者および消費者）間で行われ得ることに、留意されたい。
【００５０】
基準値４０９が変更される必要がある（例えば、より大きいカウンタ値に適応するために）場合、ノードは、置換カウンタ４１６を有するエントリにおける基準値４０９を更新し、更新済みエントリをピアノードへ送る。ノードは、交換メッセージまたは帯域内交換を使用して、更新済みエントリを送り得る。一部の実施形態において、ノードは、学習済み辞書におけるカウンタＴＬＶストリングに対する異なる圧縮キーを有する複数の置換カウンタを生成し得る。これらの置換カウンタは異なる基準値に対応し、各々がカウンタ値の範囲に対する基準を表す。ノードは、これらの置換カウンタをピアノードと共有する。より大きいカウンタ値が必要となる場合、ノードは、カウンタ値の次の範囲に対する基準値を単に使用する。このように、ノードは、ピアノードからの交換承認を待つことを回避し得る。
【００５１】
この例において、圧縮済み置換ストリング４１４は、パターン４０２（例えば、「１１１１０」、「１１１１１１０」、または「１１１１１１１０」）および圧縮キー４０４を含む。圧縮キー４０４を表すためのビット数（すなわち、長さ）は様々であってよく、パターン４０２は圧縮キー４０４に割り当てられているビット数を示す。圧縮キー４０４の長さ（および、したがって、圧縮済み置換ストリング４１４）は、学習済み辞書のエントリにおけるＴＬＶストリングの長さに比例し得る。例えば、ＴＬＶストリングが名前セグメント、キー識別子、または、公開キーの場合、圧縮済み置換ストリング４１４の長さは、それぞれ２、３、または４バイトであり得る。同様に、置換カウンタ４１６は、圧縮キー４０８に割り当てられているビット数を示す、パターン４０６を含む。オフセットを効率的に計算するために、計算済みオフセットは、オフセットの範囲を表すプレフィックス（例えば、「０」、「１０」、「１１０」、「１１１０」、および「１１１１０」）を有し得る。その後、オフセットは、当該の範囲内の値を示すために必要なビットを使用するのみであり、それにより、さらなる圧縮を達成する。
【００５２】
図４Ｂは、本発明の１つの実施形態にしたがって、学習済み辞書エントリを作成するためにＴＬＶストリングを学習するための方法を図示するフローチャート４５０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、特定のＴＬＶストリングをメッセージのヘッダから学習する（動作４５２）。その後、システムは、図４Ａと関連して記載されるように、学習済みＴＬＶストリングがカウンタＴＬＶストリングであるか確認する（動作４５４）。そうでない場合、システムは、学習済み辞書における学習済みＴＬＶストリングとマップされる圧縮済み置換ストリングを備えるエントリを作成する（動作４５６）。あるいは、システムは、カウンタに対する基準値および学習済み辞書における学習済みＴＬＶストリングのタイプとマップされる置換カウンタを備えるエントリを作成する（動作４５８）。その後、システムは、エントリをピアノードと、交換メッセージおよび／または帯域内交換を使用して交換する（動作４６０）。
【００５３】
図４Ｃは、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダのＴＬＶストリングを学習済み辞書ルックアップに基づいて圧縮するための方法を図示するフローチャート４７０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、学習済み辞書ルックアップのためのＴＬＶストリングを取得し（動作４７２）、学習済み辞書におけるＴＬＶストリング（または、ＴＬＶストリングのタイプ）と一致するエントリを特定する（動作４７４）。その後、システムは、エントリがカウンタエントリであるか確認する（動作４７６）。
【００５４】
そうでない場合、システムは、圧縮済み置換ストリングをエントリから検索し（動作４７８）、ＴＬＶストリングを圧縮済み置換ストリングに置換する（動作４８０）。あるいは、システムは、置換カウンタおよびカウンタの基準値をエントリから検索する（動作４８２）。その後、システムは、現在値をＴＬＶストリングから取得し、オフセットを基準値および現在値に基づいて計算する（動作４８４）。システムは、ＴＬＶストリングを、オフセットが続く置換カウンタに置換する（動作４８６）。
【００５５】
符号化済み辞書を使用するＴＬ圧縮
図５Ａは、本発明の１つの実施形態にしたがって、ビットアラインされた符号化済み辞書エントリの例示的なフォーマットを図示する。この例において、ＣＣＮノードは、静的辞書５０２に符号化を適用し、符号化済み辞書５０４を生成し得る。一部の実施形態において、符号化はハフマン符号化である。結果として、符号化済み辞書５０４におけるエントリは、静的辞書５０２における圧縮済み置換ストリングを表すハフマン木の葉ノードに対応し得る。圧縮済み置換ストリングを符号化することにより、ノードは、対応する符号化済み置換ストリング（ＥＲＳ）５０６を生成する。符号化済み置換ストリング５０６は、固定ＴＬペア、連続的なＴＬペア、固定タイプおよびビット長、および、固定タイプおよび符号化済み長さを表し得る。
【００５６】
この例において、符号化済み置換ストリング５０６は、フォーマット５２２または５２４で表され得る。符号化済み置換ストリング５０６はハフマン符号化に基づいて生成され得るので、これらのフォーマットはビットアラインされ得る。フォーマット５２２は、符号化済み辞書が解凍に使用されるべきであることを示すパターン５１２（例えば、「０」）を含む。さらに、フォーマット５２２は、ハフマン木からのストリングである、符号化済み圧縮キー５１４を含む。フォーマット５２４において、符号化済み圧縮キー５１４は符号化済み長さフィールド５１６に先行する。符号化済み長さフィールド５１６は、値の範囲に対応するプレフィックスを含む。残りのビットは、範囲における値を表すために使用される。符号化済み辞書を使用するＴＬペアの圧縮は、図３Ｃと関連して記載されている。
【００５７】
図５Ｂは、本発明の１つの実施形態にしたがって、符号化済み辞書を生成する方法を図示するフローチャート５５０を提示する。動作中、ＣＣＮノードのヘッダ圧縮システムは、圧縮済み置換ストリングを静的辞書から特定する（動作５５２）。システムは、特定されたストリングを対応するＴＬペアの重み（例えば、各々の頻度）に基づいて符号化する（動作５５４）。一部の実施形態において、符号化はハフマン符号化に基づいて行われ、重みは対応するＴＬペアの出現の頻度を表す。システムは、符号化済み置換ストリングを符号化に基づいて生成し（動作５５６）、可変長を有する符号化済み置換ストリングの符号化済み長さを生成する（動作５５８）。その後、システムは、符号化済み置換ストリング（および、該当する場合、それらの符号化済み長さ）を符号化済み辞書に含む（動作５６０）。
【００５８】
例示的なコンピュータおよび通信システム
図６は、本発明の１つの実施形態にしたがって、ＣＣＮメッセージのヘッダ圧縮を容易にする例示的なコンピュータおよび通信システムを図示する。コンピュータおよび通信システム６０２は、プロセッサ６０４、メモリ６０６、および、保存デバイス６０８を含む。メモリ６０６は、マネージドメモリの役割を果たす揮発性メモリ（例えば、ＲＡＭ）を含むことができ、１つ以上のメモリプールを保存するために使用され得る。さらに、コンピュータおよび通信システム６０２は、表示デバイス６１０、キーボード６１２、および、ポインティングデバイス６１４と結合され得る。保存デバイス６０８は、オペレーティングシステム６１６、ヘッダ圧縮システム６１８、および、データ６３２を保存し得る。
【００５９】
ヘッダ圧縮システム６１８は、コンピュータおよび通信システム６０２により実行されると、コンピュータおよび通信システム６０２に、本開示に説明される方法および／またはプロセスを行わせ得る命令を含み得る。具体的には、ヘッダ圧縮システム６１８は、コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケットを受信するための命令を含んでよく、ここで、ＣＣＮメッセージの名前は、最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である（通信メカニズム６２８）。
【００６０】
さらに、ヘッダ圧縮システム６１８は、ＣＣＮメッセージの固定ヘッダを圧縮するための命令を含み得る（固定ヘッダ圧縮メカニズム６２０）。さらに、ヘッダ圧縮システム６１８は、単一または連続的なＴＬペアを静的辞書に基づいて圧縮（および、解凍）するための命令を含み得る（静的圧縮メカニズム６２２）。ヘッダ圧縮システム６１８は、学習済み辞書におけるＴＬＶストリングを学習し、ＴＬＶストリングを学習済み辞書に基づいて圧縮（および、解凍）するための命令を含み得る（学習済み圧縮メカニズム６２４）。さらに、ヘッダ圧縮システム６１８は、学習済み辞書をピアノードと交換するための命令を含み得る（通信メカニズム６２８）。加えて、ヘッダ圧縮システム６１８は、静的辞書の符号化を学習して符号化済み辞書を作成し、符号化済み辞書を使用して単一または連続的なＴＬペアを圧縮（および、解凍）するための命令を含み得る（符号化済み圧縮メカニズム６２６）。辞書はメモリ６０６および／または保存デバイス６０８に保存され得る。
【００６１】
データ６３２は、本開示に記載される方法および／またはプロセスにより、入力として必要な任意のデータまたは出力として生成される任意のデータを含み得る。具体的には、データ６３２は、少なくとも以下を保存し得る：コンテンツ指向型ネットワーク（ＣＣＮ）メッセージに対応するパケット；最も一般的なレベルから最も特定的なレベルへ順序付けされた連続的な名前コンポーネントを備える、階層的に構造化された可変長識別子（ＨＳＶＬＩ）である、ＣＣＮメッセージの名前；インタレストメッセージであるＣＣＮメッセージ；インタレストリターンメッセージに対応するパケット；ＣＣＮメッセージまたはインタレストメッセージの名前に対応する利用不可能な転送ルートに対応するエラー状態の表示。
【００６２】
この詳細な説明に記載されるデータ構造およびコードは、典型的に、コンピュータシステムにより使用されるコードおよび／またはデータを保存し得る任意のデバイスまたは媒体であってよい、コンピュータ可読保存媒体に保存される。コンピュータ可読保存媒体は、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）、または、現段階で既知であるか、または、今後に開発される、コンピュータ可読媒体を保存可能な他の媒体など、磁気および光保存デバイスを含むが、それらに限定されない。
【００６３】
詳細な説明の項に記載される方法およびプロセスは、上述されたコンピュータ可読保存媒体に保存され得る、コードおよび／またはデータとして具現化され得る。コンピュータシステムが、コンピュータ可読保存媒体に保存されているコードおよび／またはデータを読み込んで実行すると、コンピュータシステムは、データ構造およびコードとして具現化されコンピュータ可読保存媒体内に保存された方法およびプロセスを行う。
【００６４】
さらに、上述された方法およびプロセスは、ハードウェアモジュールまたは装置に含まれ得る。ハードウェアモジュールまたは装置は、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュールまたは特定の時間にコードを実行する専用または共有プロセッサ、および、現時点で既知であるか、または、今後に開発される、他のプログラマブル論理デバイスを含み得るが、それらに限定されない。ハードウェアモジュールまたは装置は起動されると、それらに含まれる方法およびプロセスを行う。
【図１Ａ】
2017092955.tif 000003
【図１Ｂ】
2017092955.tif 000004
【図２Ａ】
2017092955.tif 000005
【図２Ｂ】
2017092955.tif 000006
【図２Ｃ】
2017092955.tif 000007
【図２Ｄ】
2017092955.tif 000008
【図３Ａ】
2017092955.tif 000009
【図３Ｂ】
2017092955.tif 000010
【図３Ｃ】
2017092955.tif 000011
【図４Ａ】
2017092955.tif 000012
【図４Ｂ】
2017092955.tif 000013
【図４Ｃ】
2017092955.tif 000014
【図５Ａ】
2017092955.tif 000015
【図５Ｂ】
2017092955.tif 000016
【図６】
2017092955.tif 000017