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