JP4564228B2 - ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法 - Google Patents
ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法 Download PDFInfo
- Publication number
- JP4564228B2 JP4564228B2 JP2002514555A JP2002514555A JP4564228B2 JP 4564228 B2 JP4564228 B2 JP 4564228B2 JP 2002514555 A JP2002514555 A JP 2002514555A JP 2002514555 A JP2002514555 A JP 2002514555A JP 4564228 B2 JP4564228 B2 JP 4564228B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data block
- module
- network
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004891 communication Methods 0.000 title claims description 22
- 238000004422 calculation algorithm Methods 0.000 abstract description 127
- 230000005540 biological transmission Effects 0.000 description 38
- 230000006870 function Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000005538 encapsulation Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000000926 separation method Methods 0.000 description 6
- 238000007906 compression Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
本発明はネットワークを介したデータのネットワーキング及び通信に関し、詳しくは、ネットワーク通信データの連続ストリームをオンラインで透過的に符号化及び復号することに関する。
【0002】
【従来の技術】
ネットワーク通信トラフィックの急激な増加に起因して、伝送すべきデータ量がデータ伝送に利用可能なバンド幅を超えてしまうことが多くなった。バンド幅の高い要求は、ネットワーク混雑を招き、通信遅延を生じさせる。利用可能なバンド幅が限られているという問題を解決する1つの方法は、伝送するデータをもっと効率的な形式に符号化することである。この圧縮処理は、データのサイズを低減するので、データ圧縮と呼ばれる。符号化すなわち圧縮されたデータは、元のデータと同じ情報を含んでいるが、記憶または伝送に必要なビット数は少ない。符号化すなわち圧縮されたデータから元のデータを正確に復元できる場合、その符号化処理すなわち圧縮処理は無損失処理と呼ばれる。
【0003】
OSI(Open Systems Interconnection)参照モデルは、ネットワークを介したデータフローを表現するために広く用いられているモデルである。OSI参照モデルは7つの階層からなる。7つの階層の各々は、特定のインタフェースを介して下の階層と通信し、特定のプロトコルを用いてネットワーク上の別のシステムにある同階層と通信する。すべてのネットワーキング層を結合したものは、ネットワークスタックと呼ばれることがある。
【0004】
OSI参照モデルの最下層(第1層)は物理層である。物理層は、物理リンクを介したビット情報の伝送に関する層である。次の層(第2層)はデータリンク層であり、物理層によって提供されたリンクを介するブロックデータの伝送に関する層である。データリンク層は、ネットワーク(例えばイーサネット(R))に接続された複数のシステムによる媒体の共有、互いに直接接続されたシステムのアドレス指定、及び、伝達されたデータブロックのチェックサムの計算などの問題に対処する層である。次の層(第3層)はネットワーク層であり、ネットワーク上の任意の2つのシステムが物理リンクで直接接続されていなくても互いに通信できるようにする層である。つまり、ネットワーク層は、宛先アドレスに基いてルート計算を実施し、それに従って情報パケットをネットワーク中にルーティングする。次の層(第4層)はトランスポート層であり、2つのシステム間でのデータフローを提供する層である。トランスポート層は、個々のデータパケットに対してではなく、2つのシステム間のデータフロー全体に対する処理を行なう。TCP(Transmission Control Protocol)は、トランスポート層のプロトコルの1つである。TCPは、あるシステムから別のシステムへ送信されたすべての情報が実際に受信されること、及び、それらが送信した順番で受信されることを保証することにより、2つのシステム間に信頼性の高いデータの伝達を提供している。TCPプロトコルは、失われたパケットや再送されたパケット等の誤りを取り扱うことにより、この機能を提供する。次の3つの層は、セッション層(第5層)、プレゼンテーション層(第6層)、及び、アプリケーション層(第7層)である。アプリケーション層はOSI参照モデルの最上位層であり、通常、システムユーザに与えられるインタフェースである。例えば、電子メールメッセージは、ユーザによってアプリケーション層で作成され、次いで7つのネットワーキング層の各々で処理され、最終的にネットワーク上に送信される。OSI参照モデルについてはTanenbaum著の「Computer Networks」第2版(1989)に詳しい説明があり、ここで参照することにより本明細書に援用する。
【0005】
2つのシステム間の通信は、コネクションレスとコネクション指向との2つのカテゴリに大きく分類することができる。コネクションレス通信が行なわれるのは、データがアドレス情報を含む個別のパッケージで表現され、ネットワークが各パッケージをネットワーク上で交換されている他のいずれのパッケージとも無関係に配送する場合である。コネクション指向通信が行なわれるのは、2つのシステムがまずセットアップ手順を実行して実際の接続または仮想の接続を作成した後、その接続を介して複数のデータ片を交換する場合である。
【0006】
パケットベースのTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルは、最もよく知られているインターネットのプロトコルのうちの2つである。IPは、コネクションレスのネットワークを介したパケットのアドレス指定及びルーティングに関する一連の標準を規定するネットワーク層プロトコルである。TCPは、ネットワークを介した信頼性の高い情報の伝送を保証する手段を規定するコネクション指向のトランスポート層プロトコルである。IPは、各パケットを個別に取り扱うので、コネクションレスであると考えられることに注意して欲しい。一方、TCPは、まず2つのシステム間にTCP接続を確立し、その後すべてのデータ片がその仮想リンクを利用するので、コネクション指向である。TCP等のコネクション指向のサービスは、IP等のコネクションレス層の上で実施できることに注意して欲しい。
【0007】
ネットワーク通信データの符号化すなわち圧縮は、ネットワーキングスタックの様々な階層で実施することができる。伝統的には、データはアプリケーション層(第7層)で符号化される。例えば、画像は、GIF(Graphics Interchange Format)やJPEG(Joint Photographic Experts Group format)などの様々な形態に符号化することができる。これらの符号化形態は、画像の保管や伝達に必要となる空間を低減させることができる。従って、サーバは、クライアントに送信する前にすべての画像をアプリケーション層で「GIF」形態に符号化することができる。その後、クライアントで受信された各画像はアプリケーション層で復号され、元の閲覧可能な画像が生成される。この形態のアプリケーション層符号化すなわち圧縮は通常、送信前に単一のオブジェクトに対してオフラインで実施される。アプリケーション層符号化は、複数のオブジェクトからなる連続した通信ストリームに対してオンラインで実施されることはない。従って、オフラインアプリケーション層エンコーダは、オブジェクト間情報(即ち、1以上のサーバから1以上のクライアントへ送信される様々なオブジェクトすべてから得られる情報)に基づくのではなく、オブジェクト内情報(即ち、単一オブジェクトからの情報)にのみ基いている。
【0008】
OSI参照モデルのトランスポート層はコネクション指向のサービスなので、この層で使用されるオンライン符号化方法は事実上、コネクション指向のリンクを符号化することになる。従って、この符号化は、単一のコネクションまたは単一のフロー内で送信されるデータに対して実施されるだけである。クライアント−サーバアーキテクチャの場合、各コネクションはサーバと1つのクライアントとの間のコネクションであるから、すべてのクライアントについて個別の符号化処理を実行する必要がある。同様に、サーバからデータを受信するすべてのクライアントの各々について、個別のデコーダが必要である。従って、コネクション指向のリンクのオンライン符号化は、コネクション(即ち、セッションまたはフロー)数が少なく、サーバが1つまたは少数のクライアントとしか通信しない場合に効率的になるにすぎない。また、単一コネクション内のデータの符号化は、同一セッション内に存在する反復を検出できるだけであるから、すべてのコネクションをまとめて同じプロセスで符号化すること程効率的にはならない。例えば、個別の第4層セッション(例えばTCPセッション)の各々には、一回しか送信されない複数のデータパターンまたはオブジェクトが存在する場合がある。この例では、エンコーダが各セッションを個別に検査しても、各オブジェクトまたはパターンが1セッションについて一回しか送信されないので、何も反復は検出されない。一方、エンコーダがすべてのセッションにわたるすべてのデータトラフィックを検査した場合、エンコーダはもっと多くの反復を検出するので、データトラフィックはもっと効率的に符号化される。
【0009】
ネットワーク分野での符号化すなわち圧縮の他の実施形態としては、コネクションレスのレイヤ3におけるトラフィックの符号化に基づくものがある。これらのレイヤ3符号化技術は、パケット内符号化にのみ基いている。つまり、これらのシステムは、各パケットまたはデータグラムを、現在のパケット内の情報にだけ基いて個別に符号化する。従ってこれらのシステムは、パケット全体の反復や、複数のパケットにまたがって存在する反復を検出することができない。従って、これらのパケット内レイヤ3符号化技術では、多数の反復を見落としてしまうので、大量のデータ削減を行なうことができない。
【0010】
従って、データ伝送の効率及びバンド幅利用率を改善することが望まれている。従来の符号化方法は、検査するデータの量に制限があるため、ネットワーク通信トラフィック全体に存在する反復の総数のうちの一部しか検出することができない。例えば、各パケットを個別に符号化する符号化方法は、同一パケット内に存在する反復だけしか検出することができない。同様に、各セッションを個別に扱う符号化方法は、同一セッション内に存在する反復だけしか検出することができない。また、特定の用途または特定のデータタイプに基づく符号化方法は、その特定タイプのデータ内に存在する反復だけしか検出することができない。これらのいずれの場合においても、複数のパケット、セッションあるいはデータタイプにまたがって発生する反復は、全く検出されない。そのため従来の符号化方法は、比較的少量のデータ削減しか行なうことができない。
【0011】
発明の概要
本発明は、データパケットをオンラインで透過的にクロスセッションで符号化する方法及びシステムを提供する。本発明の一実施形態は、データパケットのストリームを補足し、符号化し、カプセル化する。次いでこの実施形態は、符号化及びカプセル化されたデータパケットを送信し、そのデータパケットを復号及び分離し、復号及び分離されたデータパケットをコネクションレスのネットワーク層に再注入する。本発明は、データストリーム内のどこに生じた反復でも(即ち、パケット/セッション内に生じた反復も、複数のパケット/セッションにまたがって生じた反復も両方)見つけて除去することにより、複数の通信セッションからの複数のデータストリームを符号化及び復号することができる。本発明の一実施形態は、ネットワークスタックのうちのコネクションレスのネットワーク層(第3層)でパケットを補足する。本発明のこの実施形態は、コネクションレスのネットワーク層(またはそれより下位の層)で動作するので、ネットワーク、サーバ、アプリケーション、及び、その他のネットワーク装置に対して透過的である。本発明は第3層またはそれより下位の層でパケットを補足及び処理しているので、それより上位の層(第4、第5、第6、及び、第7層)は全く同じ方法で第3層と対話することができる。
【0012】
本発明は、任意の符号化アルゴリズムを用いて処理すべきデータを符号化することができる。従来の符号化方法は、単一パケットまたは単一オブジェクト内の反復を探す符号化アルゴリズムを利用することしかできなかった。本発明は、任意のオブジェクト内、パケット内符号化アルゴリズムに加えて、任意のオブジェクト間、パケット間、または、セッション間符号化アルゴリズムを用いることができる。つまり、本発明によると、データストリーム内にのどこかに生じた間隔の長い反復(即ち、多数の異なる独立したパケット、オブジェクトまたはセッションにまたがる反復)を見つけるための符号化アルゴリズムが利用可能になる。本発明の一実施形態において、この符号化アルゴリズムは、ネットワークを介して伝送される複数のパケットまたはデータグラムの間に生じた任意のデータブロックの反復を探しだす。これらの反復したデータブロックは、そのデータブロックの内容を一意に識別する一意の識別子で置き換えることにより、より効率的な形態に符号化される。
【0013】
【発明の実施の形態】
次に本発明の好ましい実施形態について図面を参照して説明する。図面中の類似の符号は、同一の要素または機能的に類似した要素を意味している。また、図面において、各符号の一番左端の桁は、その符号が最初に登場した図面の番号に対応している。
【0014】
本明細書で「一実施形態」または「実施形態」と呼ぶものは、それらの実施形態に関連して説明した特定の特徴、構造、あるいは性質が本発明の少なくとも1つの実施形態に含まれることを意味している。本明細書の様々な場所で使われる「一実施形態において」というフレーズは、すべて同じ実施形態を指している必要はないものとする。
【0015】
以下の詳細な説明のうちのいくつかの部分は、コンピュータメモリ内のデータビットに対する処理のアルゴリズム及び抽象表現に関するものである。これらのアルゴリズム的な説明及び表現は、データ処理技術の当業者が自分達の成果を他の分野の当業者に効果的に伝達するために用いる手段である。本明細書に示すアルゴリズムは、概して、所望の結果が得られる筋道の通ったステップ(命令)のシーケンスであると考えられる。これらのステップには物理量の操作が必要である。必須ではないが、これらの物理量は通常、記憶、転送、結合、比較、その他操作を施すことが可能な、電気信号、磁気信号、あるいは、光信号の形態をとる。主に共通利用の理由から、これらの信号は、ビット、値、要素、記号、文字、語句、番号などとして示すと便利な場合がある。また、物理量の物理的操作が必要なステップの特定の構成は、モジュールまたはプログラム装置として示すと、汎用性を失わないので便利な場合がある。
【0016】
しかしながら、これらすべて及び同様の用語は、適当な物理量に関するものであり、それらの物理量に付けられた単なる便宜上のラベルであると考えるべきである。下記の説明から明らかなように、明示的に述べていない限り、「処理」、「算出」、「計算」、「判定」、「表示」、または、「判定」などの用語を用いた説明は、コンピュータのシステムメモリ、レジスタまたはその他の情報記憶、伝達または表示装置内の物理(電子)量として表現されたデータを操作及び変換するコンピュータシステムまたはそれに類似する電子計算装置の動作及び処理を指している。
【0017】
本発明の特定の態様には、本明細書で説明する処理ステップ及び命令がアルゴリズムの形態で含まれる。本発明のこれらの処理ステップ及び命令は、ソフトウェアでも、ファームウェアでも、あるいはハードウェアでも実現することができ、様々なオペレーティングシステムで使用される異なるプラットフォームにダウンロードしたり、それらから操作することができる。
【0018】
本発明は、本明細書で説明する処理を実施するための装置に関するものでもある。この装置は、必要な目的に応じて専用に構成することもできるし、コンピュータに格納されたコンピュータプログラムによって選択的に稼動され、再構成される汎用コンピュータを含んでもよい。こうしたコンピュータプログラムは、限定はしないが、フロッピー(R)ディスク、光ディスク、CD−ROM、磁気光ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気/光カード、特定用途向け集積回路(ASIC)、及び、電気的命令を記憶するのに適した任意の種類の媒体などのコンピュータ読取可能媒体などに記憶され、各々がコンピュータシステムバスに接続される。さらに、本明細書でコンピュータと呼ぶものは、シングルプロセッサを有する場合もあるし、計算能力を向上させるためにマルチプロセッサ設計を採用したアーキテクチャである場合もある。
【0019】
本明細書に提示するアルゴリズム及び表示は、何らかの特定のコンピュータまたはその他装置に関連するものではもともとない。本発明の教示に従うプログラムと共に様々な汎用システムも用いることができるし、もっと専用の装置を構成して必要な方法ステップを実施した方が便利であることが判明する場合もある。様々なこれらの構成について、必要な構成は、以下の説明から分かるであろう。さらに、本発明は、何らかの特定のプログラミング言語に関するものとして書かれたものではない。本明細書で説明するように、本発明の教示を実施するためには様々なプログラミング言語を利用することができ、下記では本発明の実施可能形態及び最良形態の開示のために特定の言語を設けているものと考えられる。
【0020】
最後に、明細書で用いる言語は、可読性と産業上の目的を追求して選択したものであり、本発明の内容を正確に表現したり制限したりするために選択されたものではない。従って、本発明の開示は、本発明の例示を意図するものであり、特許請求の範囲に記載した発明の制限を意図したものではない。
【0021】
図1は、本発明を含むネットワークを示す図である。この実施形態の場合、ネットワークはネットワーク接続すなわちリンクによって接続された2つのサブネットワーク102を含む。ネットワーク接続は、私設専用回線、フレームリレー回線または仮想私設網などの2つの個別ネットワークを相互接続する任意の物理的または論理的手段でよい。この2つのサブネットワーク102は、任意の距離だけ地理的に離れている。例えば、この2つのサブネットワーク102は、地理的に離れていて、ワイドエリアネットワーク(WAN)リンクで互いに接続された2つの企業の遠隔事務所である場合がある。
【0022】
本発明は、2つのモジュール、即ち、符号化・カプセル化モジュール(EE)104及び復号・分離モジュール(DD)106を含む。EEモジュール104は通信トラフィックのパケットを符号化してカプセル化する。DDモジュール106は、EEモジュール104によって符号化された通信トラフィックを復号して、元の通信トラフィックを再現する。つまり、すべてのEEモジュール104の各々について、対応するDDモジュール106が存在しなければならない。図1では、WANリンクの両端の各々は、1つのEEモジュール及び1つのDDモジュール106を有している。従ってこの場合、いずれかのサブネットワークから他方のサブネットワークへのトラフィックは、EEモジュール104によって符号化され、DDモジュール104によって復号される。ネットワークリンクの同じ側にあるEEモジュール104及びDDモジュール106は、同一の物理装置またはボックスに存在してもよい。各EEモジュール104及びDDモジュール106は単に、同一のハードウェアプラットフォーム上で動作する異なるプロセスにしてもよい。EEモジュール104及びDDモジュール106は、プロセッサ上で動作するソフトウェアとして実現することもできるし、専用ハードウェア、ファームウェア、あるいはそれらの組み合わせとして実現することもできる。
【0023】
データパケットはEEモジュール104によってより小さく効率的な形態に変換され、その後DDモジュール106によって再変換されて元の大きさに戻される。従って、図1に示す例の場合、本発明によってデータ伝送の効率の度合いが改善されるネットワークの領域は、ワイドエリアネットワークリンクである。多くの場合、WANリンクはネットワークの最も高価な構成要素であるから、この構成要素がバンド幅の最大要求の影響を受ける。従って本発明は、各WANパケットをより効率的な小さな形態に符号化してWAN108を通るデータ伝送の効率を向上させるために用いられる。
【0024】
本発明は、ネットワークのどのポイントでもデータを符号化及びカプセル化し、復号及び分離することができる。上記のように、図1はネットワークのWANセグメント108を通じた本発明の利用を図示している。WANに用いられる物理伝送媒体及び通信プロトコルは、LANに用いられるものとは異なる場合が多い。本発明は、符号化されたパケットを伝送する前にカプセル化するので、WANインタフェースにもLANインタフェースにも内在させることができる。例えば図1の場合、本発明はWANを通るトラフィックを最適化しているが、LANパケットをWANを通じた伝送のための正しい形態に変換するLAN-to-WANエッジルータその他の装置の直前のLAN側にEEモジュール104を設置することもできる。この場合、このエッジ装置に宛てられたパケットはすべて、本発明のEEモジュール104にまず転送されることになる。同様に本発明のDDモジュール106も設置することができ、この場合、WAN-to-LANエッジ装置の直後のLAN側に設置することができる。従ってEEモジュール104及びDDモジュール106は、いずれもLAN内に実際に配置されることになるが、それらはWAN108を通るように宛先指定されたトラフィックしか処理しない。本発明をLAN内に配置するように設計する場合、LAN内の本発明の実際の配置はネットワーク構成にかなり依存するものになる。符号化の必要なデータパケットがEEモジュール104に届きさえすれば、EEモジュール104はLAN内のどこにあってもよい。同様に、符号化されたパケットがDDモジュール106に送信されて復号され、DDモジュール106が復号されたパケットをそれらのパケットの宛先に送信できさえすれば、DDモジュール106もLAN内のどこにあってもよい。
【0025】
一実施形態において、本発明はLANネットワーク及びWANネットワークに対して完全に透過的であり、2ポートのレイヤ3LANスイッチのように見える。この実施形態の場合、本発明はルーティングを行うノードではなく、ネットワーク内の経路指定された2つのノード間の中間装置として機能する。この場合、本発明のEEモジュール104が符号化できるパケットは、ネットワークのこれら2つのノード間でやり取りされるパケットだけである。これは、本発明の非経路指定動作モードと呼ばれる。本発明を非経路指定動作モードで利用する場合、本発明のユーザがすべてのWANトラフィックを処理することを望む場合(上記のように)には、本発明を取り付けるLAN内の適当な場所はLANのエッジルータの直前になる。本発明のもう1つの実施形態は、経路指定動作モードである。この形態の場合、本発明はLANの経路指定されたノードのように機能する。この場合、EEモジュール104によって符号化する必要のあるパケットはすべて本発明に経路指定されるので、本発明はLAN内のどこにでも仮想的に取り付けることができる。
【0026】
本発明の非経路指定実施形態及び経路指定実施形態は、いずれもLANの第3層で動作し、ネットワーキングスタックの第3層よりも上位の層すべてに対して透過的である。そのため本発明は、特定のパケットを処理せずにそれらのパケットをネットワークの次のノードへ透過的に転送するという選択もできる。この場合、本発明は、第3層からパケットを単に補足し、そのパケットを第3層でネットワークに再注入する。パケットが符号化されないので、パケットをカプセル化して対応するDD装置に送信し、分離及び復号する必要はない。
【0027】
本発明の非経路指定実施形態の場合、本発明はルーティング機能を何も実施しないので、ネットワーク接続性及び設計目的については、物理ワイヤーまたはリンクのように見える。また、本発明は、他のネットワークアプリケーション及びプロトコルに対して論理的に透過的であるので、ネットワークオペレータがパケットの符号化を望まない場合は、ワイヤーで置き換えることもできる。本発明はこのことを利用して、ネットワークから装置を物理的に切り離してその装置を物理的ワイヤーで効率的に置き換えるための「ワイヤーへの切替」モジュールを設けることにより、高レベルの信頼性を提供することができる。この機能は、異なる端点間の接続を切り替えるための物理的リレーを用いることにより実現することができる。このワイヤーへの切り替え機能は、本発明に対する電力の損失などを含む何らかの故障状況でトリガーすることができる。これらの故障状況の場合、リレーは、データパケットを物理入力ポートから直接取り出して物理出力ポートに出力するように、位置を切り替える。非故障状況の場合、リレーは、入力ポートをEEモジュール104及びDD106モジュールの物理入力インタフェースに接続し、出力ポートをEEモジュール104及びDD106モジュールの物理出力インタフェースに接続する。
【0028】
いずれのLANベースの実施形態においても、本発明は、LANルーティング情報を処理することにより、本発明のDDモジュール106が通信できるサブネットワーク及びアドレスを見付けることができる。例えば、本発明のDDモジュール106は、ルーティング情報を伝達するOSPF(Open Shortest Path First)またはRIP(Routing Information Protocol)プロトコルパケットを受信することができる。本発明が非経路指定モードである場合、DDモジュール106は、これらのルーティングパケットを受信するだけでよく、これらのルーティングプロトコルに参加する必要はない。本発明のDDモジュール106は、DDモジュール106が通信することのできる相手先の(ローカルLAN上の)サブネットワーク及びアドレスを、そのDDモジュール106に対応するEEモジュール104へ伝達する。対応するEEモジュール104は、これらのサブネットワーク及びアドレス宛てのパケットだけを符号化してその特定のDDモジュール106に送信することを請け負う。つまり、EEモジュール104は、パケットを受信して処理する際に、そのパケットが対応するDDモジュール106でサポートされたアドレス宛てのパケットであるか否かをまず判定する。アドレスがDDモジュール106が通信できるLANサブネットワークに属するものであった場合、そのパケットを符号化及びカプセル化し、DDモジュール106へ送信する。そうではなかった場合、そのパケットは符号化されることなく本発明を通過して透過的に転送される。このように、本発明のEEモジュール104は、DDモジュール106から得たルーティング情報を用いることにより、処理すべきパケットを判定することができる。また、ネットワークに複数のDDモジュール106が存在し、2以上のDDモジュール106が同じアドレスまたはサブネットワークを報告してきた場合は、ルーティングコスト、すなわちそのアドレスから複数のDDモジュールまでの距離を用いることにより、そのパケットを処理すべきEE/DDのペアを判定することができる。
【0029】
符号化されたパケットはすべてDDモジュール106によって復号される必要があるので、EEモジュール104は、自分の符号化したパケットが対応するDDモジュール106で正しく復号されることを保証する必要がある。これを保証するため、本発明は、EEモジュール104とDDモジュール106との間に同期手段を設けることで、符号化アルゴリズムと復号アルゴリズムとが正しく同期することを保証している。このような同期システムの一例を次に示す。
【0030】
一実施形態において、本発明は、コネクションレスのネットワーク層(即ち第3層)で伝送するためのパケットを取り出す。この実施形態の場合、本発明のEEモジュール104は、レイヤ3パケットまたはデータグラムの各々を符号化し、符号化されたパケットをカプセル化して、対応するDDモジュール106行きの通信路に入れる。このカプセル化は、符号化されたパケットが対応するDDモジュール106へ確実にルーティングされるものであれば、いかなるカプセル化プロトコルによって実施してもよい。考えられるカプセル化プロトコルとしては、TCP、UDP、及び、IP-in-IPが挙げられる。カプセル化プロトコルの選択は、各パケットを符号化するために用いられる符号化方法に影響を与える。例えば、TCPのような信頼性の高い伝送プロトコルを符号化された各パケットのカプセル化に用いた場合、符号化アルゴリズムはDDモジュール106上の復号アルゴリズムと明示的に同期させる必要はない。これに対して、UDPのような信頼性の無い伝送プロトコルを符号化された各パケットのカプセル化に用いた場合、符号化アルゴリズムは、符号化されたパケットがすべて正しく復号されることを保証するため、DDモジュール106に関連する信頼性の高い個別の通信路を必要とする。このような違いがある理由は、TCPのような信頼性の高い伝送プロトコルをカプセル化に用いた場合、EEモジュール104とDDモジュール106は、それらの間にデータ損失がないこと、及び、EEモジュール104から送信されたパケットが同じ順番でDDモジュール106に配送される(TCPで)ことが保証されるからである。このような条件下では、EEモジュール104と対応するDDモジュール106とのペアは、各々のアルゴリズムの状態が処理されるデータの関数として確定的に計算されるという事実に基いて、符号化アルゴリズムと復号化アルゴリズムとを確実に同期させることができる。従って、符号化アルゴリズムと復号化アルゴリズムが同じ同期パラメタを有していて、処理すべき同じデータが同じ順序でそれらのアルゴリズムに与えられた場合、自明ではあるが、それらのアルゴリズムは同じ同期状態を常に維持する。これに対して、EEモジュール104からDDモジュール106への符号化されたデータの伝送中にデータ損失やデータの再送要求が起こる可能性がある場合(例えば、符号化されたパケットをUDPを用いてカプセル化した場合)、本発明は、個別の同期通信路を用いてDDモジュール106をEEモジュール104に同期させることにより、DDモジュール106によって受信された符号化データがすべて正確に復号されることを保証することができる。
【0031】
図2は、本発明の一実施形態によるEEモジュール104及びDDモジュール106を示す図である。EEモジュール104は、検出器構成要素202と、伝送構成要素204と、符号化・カプセル化構成要素とを含む。DDモジュール106は、検出器構成要素202と、復号・分離構成要素210とを含む。これらのモジュールによって実施される処理は、本明細書に記載されている。
【0032】
EEモジュール104の符号化構成要素206によるパケットのカプセル化は、様々な方法で実施することができる。一実施形態では、処理された各パケットは、符号化が完了した後で、1つの送信パケットにカプセル化することができる。この場合、本発明を通過する入力パケット数と出力パケット数は同じになる。他の実施形態では、複数の符号化された入力パケットを、まとめて1つの送信カプセル化パケットにカプセル化することもできる。1つの出力パケットの中にカプセル化する符号化パケットの数は、異なっていてよいので、出力パケットのサイズが所与の固定サイズ(例えば、最大送信可能単位サイズ)を超えないように調節することができる。複数のパケットを複数の出力パケットにカプセル化する場合、出力パケット数はEEモジュール104の入力パケット数より少なくなる。同様に、出力パケット数は、DDモジュール106の入力パケット数より多くなる。この実施形態では、符号化された入力パケットをバッファに保持することにより、さらなる入力パケットを一緒にカプセル化することも可能である。例えば、符号化パケットのサイズが500バイトしかなく、カプセル化パケットの最大サイズが1000バイトである場合、出力バッファにさらに500バイトが追加されるまでその符号化パケットをバッファに保持することができる。また、この実施形態は、タイマー手段を用いることにより、符号化パケットの各々が所定の最大時間までしかバッファに保持されないようにすることができる。符号化パケットまたは複数の符号化パケットがこの最大時間制限より長い時間バッファに保持された場合は、出力バッファ内のそれらの符号化パケットをすべてカプセル化し、直ちに送信する(符号化パケットの総サイズが最大サイズに満たなくても)。
【0033】
図3aは、本発明の一実施形態によるEEモジュール104及びDDモジュール106によって処理されるようなパケットストリームの一例を示す状態図である。符号化後の8パケットは、3パケットしか占めないサイズにまで縮小される。これらの符号化パケット308は、カプセル化されてDDモジュール106に送信される。次に、DDモジュール106は、EEモジュール104から受信したそのストリームを復号及び分離して、元のコネクションレスストリームのパケットを復元する。次いで、ネットワーク層(第3層)でこれらのパケットをネットワークに直接注入する。従って、本発明は、EEモジュール104とDDモジュール106との間の領域のパケット伝送を横取りして、リダイレクトするものである。ネットワーク層でEEモジュール104に入るパケットと、ネットワーク層でDDモジュール104から送信されるパケットが全く同じものであるため、2つのボックスの存在は発信元の機械と宛先の機械にとって透過的なものになる。例えば、TCP接続のような発信元と宛先との間のコネクション指向リンクは、本発明の影響を受けることがなく、EEモジュール104及びDDモジュール106が存在しなかったかのように機能し続ける。
【0034】
図3bは、本発明の他の実施形態を示す図である。このネットワークは、図1に示したネットワークの論理的拡張である。図3bのネットワークは、1つのサブネットワークが複数のサブネットワークに接続されたポイント・ツー・マルチポイントのネットワークである。この場合も図1と同様に、各サブネットワークはローカルエリアネットワーク(LAN)によって接続された複数のシステムを含んでいる。個々のサブネットワーク間の接続は、ワイドエリアネットワーク(WAN)を通して行なわれる。この場合、ネットワークの中央、すなわちハブにある包括的なEEモジュール104及びDDモジュール106には、複数のEEプロセス及びDDプロセスが含まれる。これらのEEプロセス及びDDプロセスは、物理的にすべて同じ装置またはボックスに存在してもよい。ハブにあるEEサブプロセス及びDDサブプロセス(サブユニット)の各々は、リモートサブネットワークの各々にある特定のEEモジュール及びDDモジュール106に対応している。中央すなわちハブにあるこの包括的なEEモジュール104は、リモートDDモジュール106のそれぞれから送信されたネットワーク接続形態情報を収集することにより、いずれのDDモジュール106がいずれのサブネットワーク及びアドレス空間をサポートしているかを判定することができる。つまり、ハブにある包括的なEEモジュール104は、パケットを捕捉し、そのパケットの宛先情報とネットワーク接続形態情報とを用いて、いずれのEE/DDペアでそのパケットを処理すべきかを判定する。もしそのパケットがいずれのリモートDDモジュールによってもサポートされていないアドレスに宛てられたものであった場合、そのパケットはEEモジュール104を透過的に通過する(符号化及びカプセル化されることなく)。本発明で使用する符号化アルゴリズムは、様々なEE及びDDプロセス間の符号化及び同期データを共有することにより、様々な方法でこのポイント・ツー・マルチポイント拡張を取り扱うことができる。図1及び上で説明した本発明のポイント・ツー・ポイントの様々な実施形態は、すべてこのポイント・ツー・マルチポイントの実施形態にも適用することができる。その理由は、ポイント・ツー・マルチポイント実施形態がポイント・ツー・ポイント実施形態の論理的拡張であるからである。
【0035】
上で説明した本発明のポイント・ツー・ポイント実施形態及びポイント・ツー・マルチポイント実施形態は、マルチポイント・ツー・マルチポイント構成を含むようにさらに拡張することができる。この場合、グローバルネットワーク中の各サブネットワークは他のサブネットワークの各々に直接接続される。本発明は、複数のEEプロセス及びDDプロセスをネットワーク中の各サブネットワークに置くことにより、この構成をサポートすることができる。この場合、本発明は、ネットワークの各WANについて個別のEE及びDDプロセスペアを論理的に作成する。ネットワークリンクの同じ側に存在する複数のEEプロセス及びDDプロセスは、すべて同じ物理装置に配置することもできるし、複数の装置上に配置することもできる。上で説明したポイント・ツー・ポイント及びポイント・ツー・マルチポイントの本発明の様々な実施形態は、このマルチポイント・ツー・マルチポイント実施形態にも同様に適用することができる。その理由は、マルチポイント・ツー・マルチポイント実施形態がポイント・ツー・ポイント実施形態及びポイント・ツー・マルチポイント実施形態の論理的拡張であるからである。
【0036】
図4は、本発明の一実施形態によるデータストリームの符号化、復号、及び、分離の処理を示すフロー図である。符号化/カプセル化構成要素206の符号化アルゴリズムは、コネクションレスのネットワーク層でパケットを捕捉する(402)。次いでこのアルゴリズムは、各パケットを符号化し(404)、符号化されたパケットをカプセル化する(406)。パケットを符号化するための処理については、以下でさらに説明する。次に、符号化及びカプセル化されたパケットを復号アルゴリズムに送信する(408)。次に、復号/分離構成要素210によって、このパケットを分離及び復号する(410)。パケットを復号するための処理については、以下でさらに詳しく説明する。次いでDDモジュール106は、この復号及び分離されたパケットをコネクションレスのネットワーク層に注入する。
【0037】
本発明は、処理するデータを符号化するために、任意の符号化アルゴリズムを用いることができる。上記のように、従来の符号化方法は、1パケットまたは1オブジェクト内の反復を見付ける符号化アルゴリズムを利用することしかできない。本発明は、任意のオブジェクト内、及び、パケット内符号化アルゴリズムに加えて、任意のオブジェクト間、パケット間、または、セッション間符号化アルゴリズムを利用することができる。つまり、データストリーム内のどこかに生じた長い間隔の空いた(即ち、多数の異なる、独立したパケット、オブジェクトまたはセッションにまたがる)反復を見付けるための符号化アルゴリズムを利用できる技術は、本発明だけである。本発明と共に用いることができるクロスセッションな符号化アルゴリズムの1つは、2001年3月31日に出願された「System and Method for Incremental and Continuous Data Compression」と題した米国特許出願第09/872,184号明細書に記載されており、ここで参照することによりそのすべてが本明細書に取り込まれる。
【0038】
本発明の他の実施形態では、符号化アルゴリズムは、ネットワークを介して伝送される複数のパケット間またはデータグラム間の何らかのデータブロックの反復を見付ける。これらの反復したデータブロックは、そのデータブロックの内容を一意に識別する一意の識別子で置き換えることにより、さらに効率的な形態に符号化される。この場合、符号化アルゴリズムは、複数のパケットにまたがる同一の2つのブロックデータを識別し、それらを高度に圧縮された形態に符号化する。この符号化アルゴリズムは、グローバルブロック符号化アルゴリズムと呼ばれる。グローバルブロック符号化アルゴリズムのブロックサイズは様々なサイズでよい。一実施形態では、このブロックサイズはそのパケットのペイロード全体と同じにすることができる。本発明の他の実施形態では、このブロックサイズは、任意の固定サイズ(例えば100バイト)にすることもできるし、パケットごとに異なるサイズ(例えば、現在のパケットのペイロードの4分の1等)にすることもできる。
【0039】
グローバルブロック符号化アルゴリズムは、署名関数を利用して同じデータブロックを識別する。署名関数は、ハッシュ関数とも呼ばれる。この符号化アルゴリズムは、ハッシュ関数を用い、データブロックの内容に基いてその特定データブロックの署名を計算する。次いで各データブロックの署名を過去に送信したデータブロックの署名と比較する。過去に送信したデータブロックに現在の署名と同じ署名を有するものが無かった場合、現在のデータブロックをデータブロックのテーブルに追加し、そのデータブロック全体を送信する(同期タグを付加する場合もある)。現在のデータブロックの署名と過去に送信されたデータブロックの署名が一致した場合、本発明は、現在のブロックの内容と、その同じ署名を有する過去のブロックの内容とを比較する。同じ署名を有する過去のブロックの内容が一致しない場合、現在のデータブロック全体を送信する(先と同様に)。現在のデータブロックの内容が過去のデータブロックの内容と一致する場合、そのデータブロックを特別な一意の識別子で置き換える。この置き換えは、符号化アルゴリズムが、復号アルゴリズムがこの特定の識別子にそのデータブロックの現在の内容そのものを関連付けていることを確信した場合にしか実施されない。2つのアルゴリズムがこの情報を共有していない場合、そのブロックを識別子で置き換えることはできない。この一意の識別子は、復号アルゴリズムによって元のデータブロックをパケットに置き換えるために使用される。このように、1以上の発信元から複数の類似したパケットあるいは同一のパケットが送信された場合、本発明は、ブロックまたはペイロード全体の伝送を省略することができるので、パケット内の反復だけを省略する場合よりも、多くの帯域幅を削減することができる可能性がある。
【0040】
図5は、本発明の一実施形態によるグローバルブロック符号化アルゴリズムを示すフロー図である。例示の目的で、使用するブロックサイズはパケットのペイロード全体と同じにしてある。上記のように、ブロックサイズはペイロード全体のサイズである必要はなく、ペイロードのうちの固定数バイトでもよいし、可変数バイトでもよい。あるパケットのペイロードが反復しているか否かを判定する1つの方法は、そのペイロードのデータを既に送信された直前のNパケットのデータと比較することである。従って、この処理はすべての入力パケットの各々について、ペイロード全体の比較を最大N回必要とする。このサーチ効率を向上させるため、この符号化アルゴリズムは、すべてのペイロードパケットの各々について特定の署名を確定的に生成する署名関数すなわちハッシュ関数を用いる。署名関数は、ペイロードのビットのうちの一部または全部を分析し、それらのビットに基いて署名を生成する。異なる署名を生成するためには2つのペイロードのうちの少なくとも1ビットが異なる必要があるので、2つのペイロードが異なる署名を有する場合、それら2つのペイロードは異なるものであることが保証される。2つのペイロードが同じ署名を有する場合、それらの異なるものであるか同じものであるかは、使用した署名関数すなわちハッシュ関数によって決まる。各署名値Siについてのペイロードのリストは、標準チェーンのハッシュテーブルを用いて実現することができる。したがって、署名Siを有するすべてのペイロードを検索するためには、プログラムはSiに対応するハッシュテーブルのビンを見るだけでよい。
【0041】
符号化アルゴリズム及び復号アルゴリズムは、最大でN個のペイロード(またはデータブロック)をローカルテーブルに保持する。このテーブル内の各項目(即ち、ペイロードまたはデータブロック)は、一意の識別番号で与えられる。例えば、これらの識別番号は1〜Nの整数とすることができる。符号化アルゴリズムは、LRU(Least Recently Used)データ構造を用いることにより、最後のN個の一意のパケットのペイロードだけを自分のテーブル内に保持することができる。LRUは、リストをリンクさせたものや、その他適当なデータ構造によって実現することができる。
【0042】
グローバルブロック符号化アルゴリズムの能力は、そのアルゴリズムが利用する署名関数によって決まる。署名関数がすべての一意のパケットの各々について完全に一意の署名を生成することができるものであれば、入力パケットの各々は、過去に送信されたパケットとほとんど一回しか比較されない。しかしながら、署名関数が多数のパケットに対して同じ署名を生成するものである場合、各パケットには複数回の比較が必要になる。例えば、署名関数を単にペイロードの最初のビットにした場合、送信されたすべてのパケットのうちの約半分は同じ署名を有する可能性がある。したがって、テーブルがN個の場合、各入力パケットついて約N/2回の比較が必要である。複雑な署名関数を用いるとペイロードの比較回数は少なくなるが、署名を作成するために必要な時間は長くなる。したがって2つの極限の間の優れたトレードオフを用いる必要がある。署名関数の一例としては、あらかじめ選択されたペイロード内のM個のランダム位置から取ったMビットにすることができる。署名関数の他の例としては、ペイロード内のM個のランダム位置から取ったMビットに対する1以上の2進関数とすることもできる。署名関数のさらに別の例としては、ペイロード内の全バイトまたはワードの合計とすることもできる。この署名関数すなわちハッシュ関数は、ペイロードのチェックサムに似ている。他にも多数の署名関数を用いることができる。署名関数によって返される最終的な署名はハッシュテーブルのビンの数よりも小さい数にすると便利であるが、必須ではない。この場合、署名は、単にハッシュテーブル内を索引付けし、同じ署名を生成したすべての過去のペイロードまたはデータブロックを検索するために用いることができる。最終的な署名がハッシュテーブルのビンの数よりも小さくなるようにするため、署名は、ビンの数を法として計算することもできる。
【0043】
上記のように、符号化アルゴリズムと復号アルゴリズムとは、符号化されたパケットがすべてDDモジュール106によって実際に復号されるように、同期させる必要がある。グローバルブロック符号化アルゴリズムの場合、いずれの一意の識別子がいずれのデータブロックに対応するものであるかを示すテーブルも同期させる必要がある。符号化アルゴリズムは、テーブル識別番号Xを有するデータブロックが与えられても、復号アルゴリズム上のテーブル識別番号Xがそのデータブロックにちょうど対応するものであることを確信した場合にしか、そのデータブロックをそのテーブル識別番号Xで置き換えることができない。EEモジュール104とDDモジュール106の間に用いるカプセル化プロトコルがTCPのような信頼性の高い伝送プロトコルである場合(即ち、すべてのデータ配送が正しい順序で行なわれることを保証するプロトコルである場合)、2つのテーブルが全く同じパラメタ(例えばテーブルサイズ)を用いていることを確認することにより、それらを確実に同期させることができる。テーブルに記憶されるデータブロック及びLRUに保持されるデータブロックは、それらが到着した順番に基いて選択されるので、符号化テーブルの状態はパケットが符号化アルゴリズムによって処理及び符号化される順番の関数になる。符号化されたパケットが同じ順番で復号アルゴリズムに配送されることを保証するため、2つのシステムは、それらの個々のテーブル及びLRUが常に同期していること(例えば、テーブル及びLRUの同じ位置に同じデータブロックが保持されること)を保証することができる。
【0044】
図5及び図6は、信頼性の高い伝送プロトコルの使用に基づく符号化パケットのカプセル化を示すフロー図である。これらの図は、グローバルブロック符号化アルゴリズムのブロックサイズがパケットのペイロード全体であることも仮定している。
【0045】
この符号化アルゴリズムを実施する場合、まず符号化アルゴリズムがデータパケットのストリームの中から次の入力パケットPiを取り出す(502)。次いで符号化アルゴリズムは、そのPiのペイロードについて署名を計算する(504)。符号化アルゴリズムは、Piのペイロードを、同じ署名Siを有する他のすべてのパケットのペイロードと比較する(506)。Piのペイロードが他のパケットPkのペイロードと同じである場合、PkをLRUリストの前に移動する(510)。符号化アルゴリズムは、Piのヘッダを出力バッファに書き込み(512)、特別な記号及びそれに続くPkの識別番号を出力バッファに書き込む(514)。この特別な記号は、ペイロードがすでに送信されたパケットに属するようなヘッダを識別するものである。この特別な記号は、それを用いて復号アルゴリズムがペイロードが識別子で置き換えられたパケットを識別できるものであれば、いかなるインジケータでもよい。例えば、この特別な記号にはヘッダフィールド内の未使用ビットを用いることができ、ペイロードが識別子で置き換えられた場合はこれを「1」に設定し、ペイロードが変更されることなく送信された場合は「0」を設定する場合がある。パケットがカプセル化されているので、復号端でヘッダフィールドの変更を元に戻すことができる限り、ヘッダフィールドは変更してもよい。他の実施形態では、符号化及び復号アルゴリズムは、ペイロードが置き換えられているか否かに関わらず、すべてのパケットが識別子と共にペイロードの状態を示す固定長の特別なヘッダを有しているものと仮定する。この特別なヘッダには、任意の長さの固定長(例えば4バイト)のヘッダを用いることができ、ペイロードの開始に先立って直ちに配置される。ブロックサイズがペイロード全体よりも小さい場合、本発明は、この特別な識別ヘッダを各ブロックの前に挿入することができる。このような方法によると、過去に送信されたパケットがLRUリスト上に存在する限り、同じペイロードを有するパケットは1回しか送信されない。そのデータパケットが処理され終わると、次に、符号化アルゴリズムは次の入力パケットを検査する。
【0046】
PiのペイロードがPkのペイロードと一致しない場合(508)、符号化アルゴリズムは、LRUの長さがNであるか否かを判定する(516)。LRUの長さがNパケットに等しい場合、符号化アルゴリズムはリスト内の最後のペイロードを消去する(518)。この最後のペイロードは最も古くに使用されたペイロードであるから、符号化アルゴリズムのテーブルから取り除き、新たなペイロードで置き換える。消去されたペイロードは、ハッシュテーブルからも取り除く。次いで、パケットPiの新たなペイロードをLRUの先頭に追加する(520)。最後のペイロードの消去が必要だった場合(即ち、LRUの長さがすでにNであった場合)、新たな追加に用いられるテーブルエントリ番号は、LRUの最後から消去したテーブルエントリ番号である。何も消去が必要なかった場合はLRUの長さがN未満であるから、テーブルエントリ番号は単に新たなペイロードを先頭に追加する前のLRUの長さである。さらに、符号化アルゴリズムは、Piのペイロードを署名Siと共にペイロードのリストに追加する(522)。つまり、Piのペイロードは、そのペイロードの署名に対応するハッシュテーブルのビンに入れられる。次いでEEモジュール104は、パケットPi全体を出力バッファに書き込み(524)、次の入力パケットを検査する。
【0047】
図6は、本発明の一実施形態による復号アルゴリズムにより実施される復号処理を示すフロー図である。この復号アルゴリズムは、入力バッファの中から次のパケットヘッダHiを取り出す(602)。復号アルゴリズムは、そのヘッダの後に特別な記号が続いているか否かを判定する(604)。上記のように、この特別な記号には、ヘッダに設定された1ビットを用いることもできる。その場合、復号アルゴリズムはそのビットを検査した後、そのビットを元の状態に戻す。ヘッダの後に特別な記号が続いている場合、復号/分離構成要素210の復号アルゴリズムは、ペイロード識別番号Pkを読み出す(606)。復号アルゴリズムは、そのペイロードPkをLRUリストの前に移動する。次いで復号アルゴリズムは、ヘッダHi及びペイロードPkを有する新たなデータパケットを作成する(610)。復号アルゴリズムは、その新たなパケットをコネクションレスのネットワーク層に直接注入して送信する(612)。
【0048】
次のパケットのヘッダの後に特別な記号が続いていない場合、DDモジュール106は、そのヘッダの後にそのパケットの元のペイロードが続いているものと認識する。復号アルゴリズムはペイロードPi全体を読み出す(616)。LRUの長さがNである場合、復号アルゴリズムはLRUリストの最後にあるペイロードを消去する(620)。例えば、復号アルゴリズムは反復したペイロードを探す必要がないので、すべてのペイロードのハッシュテーブルを保持している必要はない。従って、復号アルゴリズムによって何らかのペイロードが追加または消去された場合でも、ハッシュテーブルは全く更新する必要がない。次いで復号アルゴリズムは、PiをLRUリストの先頭に追加する(622)。符号化アルゴリズムと同様に、LRUに新たに追加するためのテーブル番号は、LRUの最後から消去したペイロードのテーブル番号(LRUの長さがNであった場合)、または、新たなペイロードを先頭に追加する前のLRUの長さである。次いで復号アルゴリズムはパケット全体をネットワーク層に直接注入して送信する(624)。テーブルサイズ及びLRUの長さが符号化アルゴリズムについても復号アルゴリズムについても同じであり、同じテーブル識別番号はいずれのアルゴリズムについても同じペイロードを指し示すので、これらのテーブルは確実に常に同期している。その理由は、この実施形態の場合、処理されたパケットが符号化アルゴリズムによって信頼性の高い伝送通信路にカプセル化されるからである。従って、符号化アルゴリズムによって処理されるペイロードの順番は復号アルゴリズムによって処理されるペイロードの順番と全く同じになる。これは、いずれのペイロードを記憶しいずれのペイロードを消去するかを判定するLRUの符号化及び復号が常に確実に同期しているので、両方のアルゴリズムについて同じペイロードが追加及び消去されることを意味している。符号化アルゴリズムによって送信されたいかなるテーブル識別子も復号アルゴリズムで常に全く同じ元のペイロードを生成するということを保証する番号体系も同じになる。
【0049】
上記の符号化アルゴリズム及び復号アルゴリズムは、信頼性の高い伝送通信路を用いることによって、それらのテーブルが確実に同期することを保証している。本発明の他の実施形態では、UDP等の信頼性の無い伝送プロトコルを用いて符号化パケットをカプセル化する。この実施形態の場合、本発明は2つのテーブルを確実に同期させるための明示的な同期手段を用いることができる。この明示的な同期は、EEモジュール104とDDモジュール106との間の信頼性の高い個別の伝送通信路を用い、テーブル同期メッセージを伝達する。この明示的同期には、符号化アルゴリズムから送信される各ペイロードに、そのペイロードの現在のステータスを復号アルゴリズムに示すためのステータスヘッダを付ける必要がある。例えば、符号化アルゴリズムが過去に見たことのない一意のペイロードを受信した場合を考える。この場合、図5で説明したように、符号化アルゴリズムはそのペイロードをテーブルに追加し、そのペイロードに一意のテーブル識別番号Yを付ける。しかしながら、そのペイロードを有するパケット全体を出力バッファに単に書き込む替わりに、符号化アルゴリズムは、それがテーブルの位置Yに今追加されたばかりの新たなペイロードであることを示すステータスヘッダをさらにそのパケットに付加する。この特別なヘッダには、ネットワークとパケットのペイロードとの間に常に配置される固定長の記号(例えば4バイト)を用いることができる。符号化アルゴリズムは、復号アルゴリズムがペイロードのインストールを完了してそのペイロードについての受領応答を返したか否かを示すテーブルに各エントリを有するフラグをさらに用いる。この「インストール」フラグは、そのペイロードが初めてテーブルに追加され、復号アルゴリズムに送信されるとき、0(即ち、偽)に設定される。復号アルゴリズムは、このパケットを受信すると、ステータス情報を用いてそのペイロードを復号テーブルの位置Yに配置する。次いで復号アルゴリズムは、位置Yにあるペイロードの受信及びインストールが完了したことを伝える受領応答を符号化アルゴリズムに返送する。このメッセージは、同期通信路をベースとする信頼性の高い個別の伝送路を介して送信される。符号化アルゴリズムは、この受領応答を受信すると、自分のテーブルエントリYのローカルな「インストール」フラグを1(即ち、真)に設定する。これは、復号アルゴリズムがYを全く同じペイロードとして逆参照できるので、このペイロードのその後のインスタンスは識別子Yで置き換えることができるということを、符号化アルゴリズムに示すものである。従って、符号化アルゴリズムで用いられる「インストール」フラグは、符号化アルゴリズムが符号化するすべてのパケットが復号アルゴリズムによって正しく復号できることを保証するものである。符号化アルゴリズムは、過去のペイロードと同じペイロードを見つけると、その過去のペイロードのインストールフラグをまずチェックする。インストールフラグが0の場合、そのペイロードの内容を送信し、そのペイロードは送信されたことがあるということを示すステータスフラグを符号化テーブルのテーブルエントリ番号Yに現在あるステータスフラグに追加する。インストールフラグが1の場合、そのペイロードがテーブルエントリ番号Yで置き換えられたことを示すようにステータスフラグを設定する。
【0050】
カプセル化されたパケットの各々は信頼性の無い伝送プロトコルで伝送されるので、伝送中にカプセル化されたパケットが失われる可能性がある。この失われたパケットには、復号テーブルの位置Yに追加された新たなペイロードの最初のインスタンスが含まれる場合がある。その場合、復号アルゴリズムはそのペイロードを受信せず、それをテーブルに追加しないので、このペイロードについての受領確認は送信されない。この状況は、そのペイロードの次のインスタンスが符号化アルゴリズムによって受信されるときに対処することができる。次のインスタンスは、そのペイロードのインストールフラグが0のままになっているので、符号化アルゴリズムによって置き換えがなされない。しかしながら、次のインスタンスが失われない場合、復号アルゴリズムはその受信について受領応答を返すので、符号化アルゴリズムはそのペイロードのすべてのその後のインスタンスを識別子Yで置き換えできるようになる。
【0051】
この暗示的テーブル同期方法には、他にも様々な変更を施して、さらに効率的にすることができる。例えば、テーブルエントリの数は限られているので(例えば1〜N)、テーブル番号Xのペイロードを消去することにより、番号Xを新たなペイロードを指すことに再利用できる。信頼性の無い伝送プロトコルは誤ったパケット配送をする可能性があるので、特定状況下でのテーブル番号の再利用は、符号化テーブルと復号テーブルとの非同期を引き起こす場合がある。この問題は、符号化テーブル及び復号テーブルにバージョン番号を付加することで回避することができる。このバージョン番号は、そのテーブルエントリを再利用できる時間を示すものである。従って、符号化アルゴリズムは、ペイロードが追加されたテーブルエントリを送信するだけでなく、この特定エントリのバージョン番号も送信しなければならない。復号アルゴリズムは、テーブル番号とバージョン番号との両方を用いることにより、符号化テーブルと復号テーブルが同期していることを保証することができる。
【0052】
上記の暗示的テーブル同期方法は、テーブル参照の推測的伝送を可能にすることにより、さらに最適化することができる。この場合、所定時間の経過後、「インストール」フラグを0から1へ自動的に変換することができる。この時間は、EEモジュール104とDDモジュール106との間のパケット配送時間のばらつきにほぼ対応する。符号化アルゴリズムは、復号アルゴリズムからの実際の受領応答を待つのではなく、(符号化アルゴリズムからカプセル化されたペイロードを送信した後)所定時間の経過後には、復号アルゴリズムによるペイロードのインストールが完了したものと推測する。この所定時間が経過した後、符号化アルゴリズムは、そのペイロードのその後のインスタンスのテーブル番号での置き換えを開始する。このペイロードが復号アルゴリズムによってインストールされていなかった場合(例えば、そのペイロードが失われた場合)、復号アルゴリズムは、その特定のテーブル及びバージョン番号が同期していないので復号アルゴリズムにより再送信すべきことを示すメッセージを返送することができる。この予測的実施形態により、本発明は、推測的でない明示的同期方法よりも早く特定のテーブル番号でのペイロードの置き換えを開始することができるようになる。これは、符号化アルゴリズムが復号アルゴリズムから戻ってくる受領応答を待つ必要がない替わりに、短時間の経過後にインストールフラグを1に設定するからである。
【0053】
グローバルブロック符号化アルゴリズムについての上記の詳細な説明のすべて、及び、その複数テーブル同期方法は、任意のブロックサイズに適用することができる。上記の説明では、パケットのペイロードサイズに対応するブロックサイズを用いた。他の実施形態では、ブロックサイズを任意の他の固定サイズまたは可変サイズに設定することもできる。
【0054】
好ましい実施形態及びいくつかの代替実施形態を参照して本発明を具体的に図示及び説明してきたが、当業者であれば、本発明の思想及び範囲から外れることなくその形態及び細部に様々な変更を施すことが可能であると考えられる。
【図面の簡単な説明】
【図1】 本発明を備えたネットワークを示す図である。
【図2】 本発明の一実施形態によるEEッモジュール及びDDモジュールを示す図である。
【図3a】 本発明の一実施形態によるEEモジュール及びDDモジュールによる処理を示す図である。
【図3b】 本発明の一実施形態によるポイント・ツー・マルチポイントネットワークを示す図である。
【図4】 本発明の一実施形態によるデータストリームの符号化、カプセル化、復号及び分離の処理を示すフロー図である。
【図5】 本発明の一実施形態によるEEモジュールによって実施される符号化アルゴリズムを示すフロー図である。
【図6】 本発明の一実施形態によるDDモジュールによって実施される復号処理を示すフロー図である。
Claims (23)
- ネットワークを介して通信されるデータ中の1以上の反復するデータブロックを符号化するシステムであって、
前記ネットワークに接続され、前記データを捕捉し、捕捉されたデータの中から、少なくとも1つの対応するデコーダモジュールにより復号可能な宛先アドレスを有する様々な通信セッションからのデータブロックを抽出し、サポートされた宛先アドレスを持たないデータを通過させる、エンコーダモジュールと、
前記エンコーダモジュールにアクセスすることができ、前記エンコーダモジュールによって過去に送信された1以上のデータブロックの内容を記憶するメモリであって、前記エンコーダモジュールが、抽出された前記データブロックのそれぞれの内容が前記エンコーダモジュールによって過去に送信された前記少なくとも1つデータブロックの内容と一致するか否かを判定する、メモリと、
からなり、前記判定が一致するものであった場合、前記エンコーダモジュールは対応する抽出された前記データブロックを符号化し、該データブロックを符号化形態で前記少なくとも1つの対応するデコーダモジュールへ送信し、前記判定が一致しないものであった場合、前記エンコーダモジュールは対応する抽出された前記データブロックを捕捉時の形態で前記少なくとも1つのデコーダモジュールへ送信する、システム。 - 前記符号化形態の抽出されたデータブロックのそれぞれが、前記ネットワーク中の1以上のノードに対して透過的である、請求項1に記載のシステム。
- 前記エンコーダモジュールが、前記ネットワークの2つのノード間の物理的接続におけるスイッチを介して接続され、前記スイッチが第1の構成であるときに前記エンコーダモジュールは前記2つのノード間の物理的接続を通るデータを処理し、前記スイッチが第2の構成であるときに該データは前記エンコーダモジュールを通過する、請求項1に記載のシステム。
- 前記エンコーダモジュールは前記ネットワーク内のノードで動作し、抽出された前記データブロックのそれぞれについて、該データブロックの宛先アドレスをサポートする少なくとも1つの対応するデコーダモジュールへ至る経路を判定する、請求項1に記載のシステム。
- 内容が一致する場合、前記エンコーダモジュールは、対応するデータブロックの内容が過去に送信されたものであることを示すインジケータを送信する、請求項1に記載のシステム。
- 前記インジケータは特別な記号である、請求項5に記載のシステム。
- 前記インジケータは特別なヘッダである、請求項5に記載のシステム。
- 少なくとも1つのデータブロックのそれぞれがパケットペイロードである、請求項1に記載のシステム。
- 少なくとも1つのデータブロックのそれぞれがパケットペイロードの一部である、請求項1に記載のシステム。
- 前記エンコーダモジュールは、抽出された前記データブロックを過去に送信された1以上のデータブロックの識別を確認するための同期手段を用いて符号化し、前記少なくとも1つの対応するデコーダモジュールは、抽出された前記データブロックの宛先アドレスをサポートする、請求項1に記載のシステム。
- ネットワークを介して通信されるデータ中の1以上の反復するデータブロックを符号化する方法であって、
前記データを捕捉するステップと、
捕捉された前記データの中から、復号可能な宛先アドレスを有する様々な通信セッションからのデータブロックを抽出するステップと、
サポートされた宛先アドレスを持たないデータを通過させるステップと、
1以上の過去に送信されたデータブロックの内容を記憶するステップと、
抽出された前記データブロックのそれぞれの内容が少なくとも1つの過去に送信されたデータブロックの内容と一致するか否かを判定するステップと、
前記判定が一致するものであった場合、対応する抽出された前記データブロックを符号化し、該データブロックを符号化形態で前記少なくとも1つの対応するデコーダモジュールへ送信するステップと、
前記判定が一致しないものであった場合、対応する抽出された前記データブロックを捕捉時の形態で前記少なくとも1つのデコーダモジュールへ送信するステップと、
からなる方法。 - 内容が一致した場合、対応するデータブロックの内容が過去に送信されたものであることを示すインジケータを送信するステップを更に含む、請求項11に記載の方法。
- 前記少なくとも1つの過去に送信されたデータブロックの識別を、抽出された前記データブロックの宛先アドレスをサポートする少なくとも1つ対応するデコーダモジュールに同期させるステップを更に含む、請求項11に記載の方法。
- 抽出された前記データブロックの内容が前記少なくとも1つの過去に送信されたいずれのデータブロックの内容とも一致しなかった場合、メモリ内にある過去に送信されたデータブロックのうちの少なくとも1つを消去して、対応する抽出された前記データブロックを捕捉時の形態で前記メモリに記憶するか否かを判定するステップを更に含む、請求項11に記載の方法。
- 前記1以上の過去に送信されたデータブロックの内容を記憶するステップは、1以上の過去に送信された一意のデータブロックを最近使用データ構造に記憶することを含み、該最近使用データ構造は最大容量を有し、前記過去に送信された一意のデータブロックのそれぞれが一意の識別子を有し、前記1以上の記憶されるデータブロックは最後に使用されたものから最も古くに使用されたものの順で配置される、請求項11に記載の方法。
- 内容が一致した場合、一致する内容を有する前記過去に送信されたデータブロックを、最後に使用された過去に送信されたデータであることを示す前記最近使用データ構造内の位置に関連付けるステップを更に含む、請求項15に記載の方法。
- 抽出された前記データブロックの内容が過去に送信されたいずれのデータブロックの内容とも一致しなかった場合、該抽出されたデータブロックを前記最近使用データ構造に記憶し、最後に使用された位置を該抽出されたデータブロックに関連付けるステップを更に含む、請求項15に記載の方法。
- 前記最近使用データ構造が最大容量に達した場合、最も古くに使用されたデータブロックの順番位置にある前記過去に送信されたデータブロックを消去するステップを更に含む、請求項17に記載の方法。
- ネットワークを介したデータフローを表すモデルの第1の層で少なくとも1つのデータブロックを符号化し、前記モデルの第2の層で少なくとも1つの抽出されたデータブロックをカプセル化するステップを更に含む、請求項18に記載の方法。
- 前記層のうちの一方がコネクション指向の層であり、他方の層がコネクションレスの層である、請求項19に記載の方法。
- 1以上の対応するデコーダモジュールからネットワークを介してルーティング情報を受信するステップと、
前記ルーティング情報から各デコーダモジュールでサポートされる1以上のアドレスを判定するステップと、
を更に含む、請求項11に記載の方法。 - 前記1以上のデコーダモジュールからの前記ルーティング情報に基づいてネットワークトポロジ情報を判定するステップを更に含む、請求項21に記載の方法。
- ネットワーク内の複数のデコーダモジュールが同じアドレスをサポートしている場合、1以上の抽出されたデータブロックの宛先デコーダモジュールを、ネットワークトポロジ情報およびルーティング基準に基づいて判定するステップを更に含む、請求項22に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22126200P | 2000-07-25 | 2000-07-25 | |
US09/915,939 US7336682B2 (en) | 2000-07-25 | 2001-07-25 | Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data |
PCT/US2001/023558 WO2002008920A1 (en) | 2000-07-25 | 2001-07-25 | Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004505475A JP2004505475A (ja) | 2004-02-19 |
JP2004505475A5 JP2004505475A5 (ja) | 2005-12-22 |
JP4564228B2 true JP4564228B2 (ja) | 2010-10-20 |
Family
ID=26915633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002514555A Expired - Fee Related JP4564228B2 (ja) | 2000-07-25 | 2001-07-25 | ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7336682B2 (ja) |
EP (1) | EP1330720B1 (ja) |
JP (1) | JP4564228B2 (ja) |
AT (1) | ATE397346T1 (ja) |
AU (1) | AU2001280818A1 (ja) |
DE (1) | DE60134255D1 (ja) |
IL (2) | IL153955A0 (ja) |
WO (1) | WO2002008920A1 (ja) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073617A1 (en) * | 2000-06-19 | 2004-04-15 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail |
US20040064737A1 (en) * | 2000-06-19 | 2004-04-01 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of polymorphic network worms and viruses |
US7328349B2 (en) * | 2001-12-14 | 2008-02-05 | Bbn Technologies Corp. | Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses |
US6856651B2 (en) * | 2000-07-25 | 2005-02-15 | Peribit Networks, Inc. | System and method for incremental and continuous data compression |
US7200105B1 (en) | 2001-01-12 | 2007-04-03 | Bbn Technologies Corp. | Systems and methods for point of ingress traceback of a network attack |
US6954448B2 (en) * | 2001-02-01 | 2005-10-11 | Ipr Licensing, Inc. | Alternate channel for carrying selected message types |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
ATE374971T1 (de) * | 2001-08-24 | 2007-10-15 | Intel Corp | Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur unterstützung von bestehenden unterbrechungen |
US9836424B2 (en) * | 2001-08-24 | 2017-12-05 | Intel Corporation | General input/output architecture, protocol and related methods to implement flow control |
US7124195B2 (en) * | 2001-10-17 | 2006-10-17 | Velcero Broadband Applications, Llc | Broadband network system configured to transport audio or video at the transport layer, and associated method |
WO2003084082A2 (en) | 2002-03-29 | 2003-10-09 | Celion Networks, Inc. | Distributed terminal optical transmission system |
US7236453B2 (en) * | 2002-06-27 | 2007-06-26 | Jeremy Benjamin, Trustee | High available method for border gateway protocol version 4 |
US7542471B2 (en) | 2002-10-30 | 2009-06-02 | Citrix Systems, Inc. | Method of determining path maximum transmission unit |
US8270423B2 (en) | 2003-07-29 | 2012-09-18 | Citrix Systems, Inc. | Systems and methods of using packet boundaries for reduction in timeout prevention |
US8176186B2 (en) * | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7630305B2 (en) | 2003-07-29 | 2009-12-08 | Orbital Data Corporation | TCP selective acknowledgements for communicating delivered and missed data packets |
US7616638B2 (en) | 2003-07-29 | 2009-11-10 | Orbital Data Corporation | Wavefront detection and disambiguation of acknowledgments |
US8233392B2 (en) | 2003-07-29 | 2012-07-31 | Citrix Systems, Inc. | Transaction boundary detection for reduction in timeout penalties |
US7120666B2 (en) | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US7126955B2 (en) * | 2003-01-29 | 2006-10-24 | F5 Networks, Inc. | Architecture for efficient utilization and optimum performance of a network |
US7542465B2 (en) * | 2003-03-28 | 2009-06-02 | Broadcom Corporation | Optimization of decoder instance memory consumed by the jitter control module |
US8432800B2 (en) | 2003-07-29 | 2013-04-30 | Citrix Systems, Inc. | Systems and methods for stochastic-based quality of service |
US8238241B2 (en) | 2003-07-29 | 2012-08-07 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
US7656799B2 (en) | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
US8437284B2 (en) | 2003-07-29 | 2013-05-07 | Citrix Systems, Inc. | Systems and methods for additional retransmissions of dropped packets |
US7286476B2 (en) * | 2003-08-01 | 2007-10-23 | F5 Networks, Inc. | Accelerating network performance by striping and parallelization of TCP connections |
US7853699B2 (en) * | 2005-03-15 | 2010-12-14 | Riverbed Technology, Inc. | Rules-based transaction prefetching using connection end-point proxies |
JP2007533172A (ja) * | 2003-11-11 | 2007-11-15 | サイトリックス ゲートウェイズ, インコーポレイテッド | 偽サーバを備えた仮想プライベートネットワーク |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
GB2416266A (en) * | 2004-07-15 | 2006-01-18 | Siemens Ag | Head office and branch office network connections |
WO2006012612A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US8046830B2 (en) | 2004-07-23 | 2011-10-25 | Citrix Systems, Inc. | Systems and methods for network disruption shielding techniques |
EP1776825B1 (en) * | 2004-08-13 | 2012-12-19 | Citrix Systems, Inc. | A method for maintaining transaction integrity across multiple remote access servers |
WO2006025816A1 (en) * | 2004-08-25 | 2006-03-09 | Thomson Licensing | Compression in cable data service |
US7526607B1 (en) | 2004-09-23 | 2009-04-28 | Juniper Networks, Inc. | Network acceleration and long-distance pattern detection using improved caching and disk mapping |
US8159940B1 (en) | 2004-11-11 | 2012-04-17 | F5 Networks, Inc. | Obtaining high availability using TCP proxy devices |
US7675872B2 (en) * | 2004-11-30 | 2010-03-09 | Broadcom Corporation | System, method, and apparatus for displaying pictures |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
WO2006081032A2 (en) | 2005-01-24 | 2006-08-03 | Citrix Systems, Inc. | Systems and methods for performing caching of dynamically generated objects in a network |
US8059551B2 (en) * | 2005-02-15 | 2011-11-15 | Raytheon Bbn Technologies Corp. | Method for source-spoofed IP packet traceback |
US20060248194A1 (en) | 2005-03-18 | 2006-11-02 | Riverbed Technology, Inc. | Connection forwarding |
JP4551804B2 (ja) * | 2005-03-30 | 2010-09-29 | キヤノン株式会社 | 伝送システム、中継機器及び制御方法 |
JP4772375B2 (ja) * | 2005-04-28 | 2011-09-14 | 株式会社東芝 | 電子機器およびコンテンツ管理方法 |
EP1739672A1 (en) * | 2005-07-01 | 2007-01-03 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for managing memory accesses in an AV decoder |
US8161159B1 (en) | 2005-10-31 | 2012-04-17 | Adobe Systems Incorporated | Network configuration with smart edge servers |
US7770198B1 (en) | 2005-11-08 | 2010-08-03 | Juniper Networks, Inc. | Transparent caching of repeated video content in a network |
US20070143487A1 (en) * | 2005-12-19 | 2007-06-21 | Microsoft Corporation | Encoding Enhancement |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
WO2008005629A2 (en) * | 2006-05-26 | 2008-01-10 | Riverbed Technology, Inc. | Throttling of predictive acks in an accelerated network communication system |
US8903916B2 (en) * | 2006-07-05 | 2014-12-02 | International Business Machines Corporation | Method, system, and computer-readable medium to render repeatable data objects streamed over a network |
GB2454133B (en) * | 2006-08-15 | 2011-10-26 | Celtro Ltd | Method and system for saving bandwidth during broadcasting/multicasting |
US9137212B2 (en) * | 2006-12-04 | 2015-09-15 | Oracle America, Inc. | Communication method and apparatus using changing destination and return destination ID's |
US7760642B2 (en) | 2007-03-12 | 2010-07-20 | Citrix Systems, Inc. | Systems and methods for providing quality of service precedence in TCP congestion control |
US7796510B2 (en) * | 2007-03-12 | 2010-09-14 | Citrix Systems, Inc. | Systems and methods for providing virtual fair queueing of network traffic |
US8908700B2 (en) | 2007-09-07 | 2014-12-09 | Citrix Systems, Inc. | Systems and methods for bridging a WAN accelerator with a security gateway |
US8589579B2 (en) * | 2008-10-08 | 2013-11-19 | Citrix Systems, Inc. | Systems and methods for real-time endpoint application flow control with network structure component |
CN101997859B (zh) * | 2009-08-28 | 2014-10-08 | 国际商业机器公司 | 识别tcp流中的数据包的载荷的方法和设备 |
EP2477362A4 (en) | 2009-09-10 | 2013-12-04 | Nec Corp | RELAY CONTROL DEVICE, RELAY CONTROL SYSTEM, RELAY CONTROL METHOD, AND RELAY CONTROL PROGRAM |
KR101326983B1 (ko) * | 2009-12-21 | 2014-01-15 | 한국전자통신연구원 | 트래픽 제어 장치 및 방법 |
US9306766B2 (en) | 2011-03-28 | 2016-04-05 | Honeywell International Inc. | Versatile source port enforcement for data networks |
US8665884B2 (en) | 2011-08-25 | 2014-03-04 | Honeywell International Inc. | Embedded end-to-end delay information for data networks |
US9020952B2 (en) * | 2011-10-04 | 2015-04-28 | Reputation.Com, Inc. | Methods and systems for providing unique signatures |
WO2014116964A1 (en) * | 2013-01-24 | 2014-07-31 | Tt Government Solutions, Inc. | Method and system for visualizing and analyzing a field area network |
EP3149889B1 (en) | 2014-06-02 | 2021-03-31 | Datex Inc. | Tokenizing network appliance and method |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US11165574B2 (en) * | 2018-10-18 | 2021-11-02 | Here Global B.V. | Secure map data storage using encoding by algorithm pool |
US11088998B2 (en) | 2019-01-02 | 2021-08-10 | International Business Machines Corporation | Encrypted fibre channel over internet protocol data replication |
EP3975016A1 (de) * | 2020-09-29 | 2022-03-30 | Siemens Aktiengesellschaft | Verfahren und einrichtung zur sicherung von zugriffen auf codierte variablen in einem computerprogramm |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
JPS59231683A (ja) | 1983-06-01 | 1984-12-26 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | データ圧縮方法 |
US4876541A (en) * | 1987-10-15 | 1989-10-24 | Data Compression Corporation | Stem for dynamically compressing and decompressing electronic data |
CA2180039C (en) | 1989-12-29 | 1999-01-12 | Michael Gutman | Transmitting encoded data on unreliable networks |
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
US5087913A (en) * | 1990-08-27 | 1992-02-11 | Unisys Corporation | Short-record data compression and decompression system |
JP3083550B2 (ja) * | 1990-11-20 | 2000-09-04 | 富士通株式会社 | データ圧縮及び復元方法 |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
FR2683341A1 (fr) * | 1991-10-30 | 1993-05-07 | Apple Computer | Procede et appareil pour reduire la transmission de donnees par la mise en antememoire indexee de donnees. |
US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
US5485526A (en) * | 1992-06-02 | 1996-01-16 | Hewlett-Packard Corporation | Memory circuit for lossless data compression/decompression dictionary storage |
US5450562A (en) * | 1992-10-19 | 1995-09-12 | Hewlett-Packard Company | Cache-based data compression/decompression |
US5394879A (en) * | 1993-03-19 | 1995-03-07 | Gorman; Peter G. | Biomedical response monitor-exercise equipment and technique using error correction |
US5521597A (en) | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
US5864554A (en) * | 1993-10-20 | 1999-01-26 | Lsi Logic Corporation | Multi-port network adapter |
US5708659A (en) * | 1993-10-20 | 1998-01-13 | Lsi Logic Corporation | Method for hashing in a packet network switching system |
WO1996002098A2 (en) * | 1994-07-05 | 1996-01-25 | Philips Electronics N.V. | Signal processing system |
US5592227A (en) * | 1994-09-15 | 1997-01-07 | Vcom, Inc. | Method and apparatus for compressing a digital signal using vector quantization |
US5771010A (en) * | 1995-03-22 | 1998-06-23 | Ibm Corporation | Apparatus for compressing data using a Lempel-Ziv-type algorithm |
KR100226528B1 (ko) * | 1995-03-29 | 1999-10-15 | 가나이 쓰도무 | 다중화 압축화상/음성데이타의 복호장치 |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
US5867114A (en) * | 1996-02-29 | 1999-02-02 | Mitel Corporation | Method and apparatus for performing data compression |
US5940596A (en) * | 1996-03-25 | 1999-08-17 | I-Cube, Inc. | Clustered address caching system for a network switch |
US5754791A (en) * | 1996-03-25 | 1998-05-19 | I-Cube, Inc. | Hierarchical address translation system for a network switch |
JP3866793B2 (ja) * | 1996-05-21 | 2007-01-10 | ヒューレット・パッカード・カンパニー | ネットワークシステム |
US6172972B1 (en) * | 1996-05-28 | 2001-01-09 | Microsoft Corporation | Multi-packet transport structure and method for sending network data over satellite network |
US5996022A (en) * | 1996-06-03 | 1999-11-30 | Webtv Networks, Inc. | Transcoding data in a proxy computer prior to transmitting the audio data to a client |
US5951623A (en) * | 1996-08-06 | 1999-09-14 | Reynar; Jeffrey C. | Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases |
US6369855B1 (en) * | 1996-11-01 | 2002-04-09 | Texas Instruments Incorporated | Audio and video decoder circuit and system |
EP0866611A1 (en) * | 1997-03-21 | 1998-09-23 | CANAL+ Société Anonyme | Broadcast receiving system comprising a computer and a decoder |
US6009097A (en) * | 1997-04-04 | 1999-12-28 | Lucent Technologies Inc. | System for routing packet switched traffic |
US6067381A (en) * | 1997-06-13 | 2000-05-23 | International Business Machines Corporation | Method of reinitializing dictionaries in a data transmission system using data compression |
US6907048B1 (en) * | 1997-10-14 | 2005-06-14 | Alvarion Israel (2003) Ltd. | Method and apparatus for transporting ethernet data packets via radio frames in a wireless metropolitan area network |
US7237036B2 (en) * | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US6484210B1 (en) * | 1997-11-10 | 2002-11-19 | General Instrument Corporation | Packet processing relay agent to provide link layer forwarding in one-way cable/wireless/satellite modems |
US6339595B1 (en) * | 1997-12-23 | 2002-01-15 | Cisco Technology, Inc. | Peer-model support for virtual private networks with potentially overlapping addresses |
US6498809B1 (en) * | 1998-01-20 | 2002-12-24 | Motorola, Inc. | Video bitstream error resilient transcoder, method, video-phone, video-communicator and device |
JP3421700B2 (ja) * | 1998-01-22 | 2003-06-30 | 富士通株式会社 | データ圧縮装置及び復元装置並びにその方法 |
US6119171A (en) * | 1998-01-29 | 2000-09-12 | Ip Dynamics, Inc. | Domain name routing |
US6100824A (en) * | 1998-04-06 | 2000-08-08 | National Dispatch Center, Inc. | System and method for data compression |
US6490276B1 (en) * | 1998-06-29 | 2002-12-03 | Nortel Networks Limited | Stackable switch port collapse mechanism |
JP4242970B2 (ja) * | 1998-07-09 | 2009-03-25 | 富士通株式会社 | データ圧縮方法及びデータ圧縮装置 |
US6427187B2 (en) * | 1998-07-31 | 2002-07-30 | Cache Flow, Inc. | Multiple cache communication |
US6584093B1 (en) * | 1998-08-25 | 2003-06-24 | Cisco Technology, Inc. | Method and apparatus for automatic inter-domain routing of calls |
US6456209B1 (en) * | 1998-12-01 | 2002-09-24 | Lucent Technologies Inc. | Method and apparatus for deriving a plurally parsable data compression dictionary |
US6822589B1 (en) * | 1999-01-29 | 2004-11-23 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
CN1312892C (zh) * | 1999-06-30 | 2007-04-25 | 倾向探测公司 | 用于监控网络流量的方法和设备 |
US6771646B1 (en) * | 1999-06-30 | 2004-08-03 | Hi/Fn, Inc. | Associative cache structure for lookups and updates of flow records in a network monitor |
JP2001168727A (ja) * | 1999-12-08 | 2001-06-22 | Sony Corp | 情報処理装置および方法、並びに記録媒体 |
US6614785B1 (en) * | 2000-01-05 | 2003-09-02 | Cisco Technology, Inc. | Automatic propagation of circuit information in a communications network |
US7162539B2 (en) * | 2000-03-16 | 2007-01-09 | Adara Networks, Inc. | System and method for discovering information objects and information object repositories in computer networks |
US6388584B1 (en) | 2000-03-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for data compression of network packets |
US6748520B1 (en) * | 2000-05-02 | 2004-06-08 | 3Com Corporation | System and method for compressing and decompressing a binary code image |
US7023851B2 (en) * | 2000-10-12 | 2006-04-04 | Signafor, Inc. | Advanced switching mechanism for providing high-speed communications with high Quality of Service |
US7379475B2 (en) * | 2002-01-25 | 2008-05-27 | Nvidia Corporation | Communications processor |
AU2002326995A1 (en) * | 2001-09-19 | 2003-04-01 | Bay Microsystems, Inc. | Vertical instruction and data processing in a network processor architecture |
US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
-
2001
- 2001-07-25 AT AT01959237T patent/ATE397346T1/de not_active IP Right Cessation
- 2001-07-25 DE DE60134255T patent/DE60134255D1/de not_active Expired - Lifetime
- 2001-07-25 EP EP01959237A patent/EP1330720B1/en not_active Expired - Lifetime
- 2001-07-25 WO PCT/US2001/023558 patent/WO2002008920A1/en active Application Filing
- 2001-07-25 AU AU2001280818A patent/AU2001280818A1/en not_active Abandoned
- 2001-07-25 US US09/915,939 patent/US7336682B2/en active Active
- 2001-07-25 JP JP2002514555A patent/JP4564228B2/ja not_active Expired - Fee Related
- 2001-07-25 IL IL15395501A patent/IL153955A0/xx unknown
-
2003
- 2003-01-14 IL IL153955A patent/IL153955A/en not_active IP Right Cessation
-
2006
- 2006-01-19 US US11/335,207 patent/US7577164B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
IL153955A (en) | 2008-11-03 |
EP1330720B1 (en) | 2008-05-28 |
EP1330720A1 (en) | 2003-07-30 |
JP2004505475A (ja) | 2004-02-19 |
ATE397346T1 (de) | 2008-06-15 |
US20060114939A1 (en) | 2006-06-01 |
WO2002008920A1 (en) | 2002-01-31 |
EP1330720A4 (en) | 2005-07-27 |
US20020071438A1 (en) | 2002-06-13 |
US7577164B2 (en) | 2009-08-18 |
IL153955A0 (en) | 2003-07-31 |
AU2001280818A1 (en) | 2002-02-05 |
DE60134255D1 (de) | 2008-07-10 |
US7336682B2 (en) | 2008-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4564228B2 (ja) | ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法 | |
US10652147B2 (en) | Packet coalescing | |
KR100910818B1 (ko) | 비-macsec 노드들을 통해 macsec 패킷들을터널링하기 위한 방법 및 시스템 | |
EP1897297B1 (en) | System and methods for compressing message headers | |
US8711883B2 (en) | Multiple carrier compression scheme | |
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
EP0836781B1 (en) | Method and apparatus for synchronizing data transmission with on-demand links of a network | |
WO2009012688A1 (fr) | Procédé, système et appareil de réacheminement de message dans un réseau privé virtuel à trois couches | |
US20180198715A1 (en) | Method and apparatus for flow control | |
US20160337146A1 (en) | Method of data delivery across a network fabric in a router or ethernet bridge | |
JP4547349B2 (ja) | ネットワーク型ルーティング機構 | |
US20050243834A1 (en) | Packet transfer method and device | |
US20110122893A1 (en) | Header compression scheme | |
CN106576108B (zh) | 通信系统中的通信方法和设备及系统 | |
US8009683B2 (en) | IP network system | |
US10791051B2 (en) | System and method to bypass the forwarding information base (FIB) for interest packet forwarding in an information-centric networking (ICN) environment | |
US20060198373A1 (en) | Communication system | |
CN115567346A (zh) | 数据报文传输方法、装置、电子设备及存储介质 | |
US6229823B1 (en) | System and method for the compression of proprietary encapsulations | |
US20050100010A1 (en) | Method, system and article for router-assisted fast processing of packet termination in hosts | |
CN100484101C (zh) | 一种以太网传输IPv6报文方法、系统与装置 | |
US6542503B1 (en) | Multicast echo removal | |
CN113541924B (zh) | 报文检测的方法、设备以及系统 | |
JP2005286832A (ja) | Atm通信システムおよびatm通信方法 | |
EP2150018A1 (en) | Header compression scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041118 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20071016 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100405 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100720 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100730 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |