JP5107517B2 - ネットワーク・サーバ用の事前パケット化キャッシングの方法および装置 - Google Patents

ネットワーク・サーバ用の事前パケット化キャッシングの方法および装置 Download PDF

Info

Publication number
JP5107517B2
JP5107517B2 JP2005333504A JP2005333504A JP5107517B2 JP 5107517 B2 JP5107517 B2 JP 5107517B2 JP 2005333504 A JP2005333504 A JP 2005333504A JP 2005333504 A JP2005333504 A JP 2005333504A JP 5107517 B2 JP5107517 B2 JP 5107517B2
Authority
JP
Japan
Prior art keywords
data
response
dynamic
tcp
client node
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
Application number
JP2005333504A
Other languages
English (en)
Other versions
JP2006146923A (ja
Inventor
ヴァン ベンメル ジェロアン
Original Assignee
アルカテル−ルーセント ユーエスエー インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント ユーエスエー インコーポレーテッド filed Critical アルカテル−ルーセント ユーエスエー インコーポレーテッド
Publication of JP2006146923A publication Critical patent/JP2006146923A/ja
Application granted granted Critical
Publication of JP5107517B2 publication Critical patent/JP5107517B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、通信ネットワーク上の情報を管理する分野に関し、より詳細には、パケット交換通信ネットワーク環境内の情報のキャッシングに関する。
Webサーバ、ビデオ・サーバ、ファイル・サーバなど典型的なネットワーク・サーバ、ならびにローカル・オペレーション・システムは、クライアント情報要求またはクライアント・データ要求にできるだけ迅速に応答するように設計されている。キャッシング、すなわち次の要求を見越して、最近要求のあった情報、たとえばデータ・ファイルをメモリ・バッファに記憶することは、ネットワーク・サーバおよびローカル・オペレーション・システムによってサーバ応答時間を短縮するために使用される一般的な手法である。
たとえば、Webサーバは、最近要求されたHTMLコンテンツを、ディスク上ではなく主記憶装置バッファ内に記憶することによって、ディスク・キャッシュを多用する。この種の記憶域の構成は、参照局所性の原則に従ってうまく働く。すなわち、最近記憶されたコンテンツは、すぐにまた要求される可能性が高い。
一般的に、イーサネット(登録商標)型ローカル・エリア・ネットワーク(LAN)やインターネットなどのパケット交換通信ネットワークは、ホスト/ホスト環境またはサーバ/クライアント環境で使用される。その情報が次回要求されたときに容易にアクセスされスループットが向上するように、通常はサーバによって取り出し済みの、以前に要求された情報がキャッシュされる。しかし、要求されたデータがキャッシュされていたとしても、同一またはほぼ同一なデータに対する新しい要求があるたびに、サーバが、送信のためにネットワーク・インターフェースに送るべき新しいパケット(ペイロードとしてキャッシュ済みデータを含む)を作成せざるを得なくなる。
たとえば、Webサーバの場合、既知のシステムは、URL解決(たとえばURLの、ディスク上のファイルへのマッピング)の結果をキャッシュし、HTTP 200 OK応答といったHTTP応答および最終変更日付などを含み得るHTTP応答ヘッダを、文書ごとにキャッシュする。したがって、これらの既知のシステムでは、静的コンテンツ(たとえばHTTP応答ヘッダおよび本体)のキャッシングを実行することができる。静的コンテンツは通常、すべてのクライアントについて同じコンテンツである。
典型的なサーバ/クライアント・パケット交換通信ネットワークでは、クライアントはデータ要求をサーバに送信することができる。クライアント要求に基づいて、サーバはハード・ドライブまたはフロッピー(登録商標)・ディスクからデータ・ファイルを取り出し、データ・ファイルをパケットに分割し、そのパケットをクライアントへ応答として送信する。パケットを送信する前に、サーバは各パケットごとに1つずつメモリ・バッファを割り当てて、応答データを一時的に格納する必要がある。このプロセスでは、サーバがハード・ドライブまたはフロッピー(登録商標)・ディスクからのデータ・ファイル全体をローカル・メモリにコピーし、そのデータをパケット化し、各パケットを別々のバッファに記憶する必要がある。要求された情報のすべてのバイトをヘッダ情報と共にメモリ・バッファ内にコピーするには、著しく時間がかかる。
したがって、前述のキャッシング技法によってパケット交換通信ネットワークなどにおける応答時間を短縮することができるが、ネットワーク・サーバの平均応答時間を短縮し、パケット交換ネットワーク内のスループットを改善する方法および装置が依然として求められている。
ネットワーク・サーバのハードウェアを必ずしも増強することなく、パケット交換ネットワーク・サーバの応答の平均応答時間を短縮し、比較的多くのクライアント・ノードがネットワーク・サーバに接続できるようにスループットを改善する方法および装置に関する本発明によって、従来技術における様々な欠点は、対処される。
本発明の一態様によれば、サーバ応答データをキャッシュする方法が提供される。この方法は、サーバからデータを取り出す工程と、取り出したデータを、静的コンテンツおよび動的コンテンツを含む複数の応答パケットに分割する工程と、少なくとも1つの応答パケットの動的フィールドを所定の固定値に設定する工程と、少なくとも1つの応答パケットの動的フィールドおよび静的フィールドをメモリ・バッファにキャッシュする工程と、メモリ・バッファからの得られた少なくとも1つの応答パケットを、通信ネットワークを介して送信するためにネットワーク・インターフェースに供給する工程とを含んでいる。
本発明の諸態様の教示内容は、以下の詳細な説明を添付の図面と共に考察すれば容易に理解することができる。
理解を容易にするために、諸図に共通する同じ要素を示すのに、可能な限り同じ参照番号を繰り返し使用する。
本発明の諸態様は、以下では主として、HTMLページを送信するWebベースのサーバ向けのTCP/IPプロトコル群の文脈で論じる。しかし、本発明の諸態様の方法を、ストリーム・ビデオを送信するためのユーザ・データグラム・プロトコル(UDP)(トランスポート)など他のパケット交換トランスポート/ネットワーク・プロトコルにも容易に適用できることが理解されよう。また、これらの例は、IP v4プロトコルに関して説明してあるが、本発明の諸態様を他のIPバージョン、たとえばIP v6にも容易に適用することができる。
本発明の諸態様では、クライアント・ノード要求への応答パケットを送信する前に、要求された情報の既知の静的フィールドおよび動的フィールドを所定の形式でキャッシュしておくことによって、サーバ応答時間を改善する。静的コンテンツは通常、すべてのクライアントに対して同じコンテンツである。また、動的コンテンツは通常、クライアントまたはクライアント要求ごとに異なるコンテンツである。したがって、本発明の諸態様により、要求されるたびにすべてのバイトの応答データを読み取り、取り出す必要が減り、これにより、応答時間が改善され、クライアント要求あたりのスループットが増大する。
図1に、本発明の実施形態を利用できるデータ通信ネットワーク100を示す。図1は、可能な複数のデータ通信ネットワーク構成の一変形形態を示している。たとえば、図1のネットワーク100は、任意選択で、複数のホスト・サーバ106および/またはいくつかのクライアント・ノードもしくはクライアント・コンピュータ102を含む。わかりやすくするため、1つのホスト・サーバ106と1つのクライアント・コンピュータ102だけが示してある。
データ通信ネットワーク100は、クライアント・ノード(またはクライアント・コンピュータ)102とホスト・サーバ106を含んでおり、これらは従来のパケット交換データ通信ネットワーク104(たとえばインターネット、広域ネットワーク(WAN)、イーサネット(登録商標)(LAN)、またはWi−Fiネットワークなどの無線ネットワーク)を介して通信する。ホスト・サーバ106は、アプリケーション・サービスおよびデータ・サービス、ならびにその他のリソース・サービスをクライアント・コンピュータ102に提供するために、ネットワーク・インターフェース・カード(NIC)105を介してネットワーク104に結合されている。また、クライアント・コンピュータ102は、表示装置132にも接続されている。
ホスト・サーバ106は、少なくとも1つの中央処理装置(CPU)110、サポート回路112、およびメモリ114を含んでいる。CPU110は、従来から入手可能な1つまたは複数のマイクロプロセッサを含むことができる。サポート回路112は、CPU110の機能を向上させるために使用される周知の回路である。こうした回路には、キャッシュ・メモリ、電源、クロック回路、入出力(I/O)回路などが含まれ得るが、それだけに限定されない。メモリ114は、CPU100に結合されており、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、取外し可能ディスク・メモリ、フラッシュ・メモリ、およびこの種のメモリの様々な組合せを含むことができる。メモリ114は主記憶と呼ばれることがあり、その一部に、データ・ファイルを求めるクライアント要求に応答してパケット形式の取り出し済みデータを一時的に格納するためのキャッシュ・メモリまたはメモリ・バッファ115の記憶場所を含むことができる。
また、メモリ114は通常、サーバ106のオペレーション・システム・ソフトウェア116と、様々な形態のアプリケーション・ソフトウェア108およびデータ118も記憶する。オペレーション・システム116は、サン・マイクロシステムズ社のSolaris、IBM社のAIX、ヒューレット・パッカード社のHP−UX、レッドハット・ソフトウェア社のLinux、マイクロソフト社のWindows(登録商標)2000など、市販のいくつかのオペレーション・システムのうちの1つとすることができる。
アプリケーション・ソフトウェア108には、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル群を使用して「Webサイト」および「Webページ」にアクセスし、それを記憶し、更新し、あるいはそのいずれかを行う任を負う、様々なソフトウェア・プログラムを含むWebサーバ・ソフトウェア120が含まれ得る。このアプリケーション・ソフトウェアはまた、ファイル転送プロトコル(FTP)アプリケーション・プロトコルを使用して、データ・ファイルを記憶し、編成し、取得し、更新する任を負うファイル・サーバ・ソフトウェア・プログラムを含むこともできる。このアプリケーション・ソフトウェアはさらに、ユーザ・データグラム・プロトコル(UDP)トランスポート・プロトコルを使用して、ビデオ・データ・ファイルを記憶し、編成し、取得し、送信するためのビデオ・サーバ・ソフトウェアを含むこともできる。一般に、Webサーバ・ソフトウェア120は、ホスト・サーバ106上に記憶されたデータおよび情報に対する、「ブラウザ」を介した、あるいはデータを取り出し転送するための他のデバイスを介した、リモート・コンピュータ(たとえばクライアント・コンピュータ102)へのアクセスを提供する。Webサーバ・ソフトウェア120を図に示してはいるが、これには前に述べたように、ファイル・サーバ・ソフトウェアおよび/またはビデオ・サーバ・ソフトウェアも含まれることが理解されよう。
クライアント・コンピュータ102は、中央処理装置(CPU)126、サポート回路124、およびメモリ128を含んでいる。クライアント・コンピュータ102は、ブラウザを実行でき、またネットワーク104に接続できるどんなコンピュータでもよい。このようなクライアント・コンピュータには、パーソナル・コンピュータ、携帯情報端末(PDA)、無線デバイスなどが含まれる。サポート回路124は、CPU126の機能を向上させるために使用される周知の回路である。このような回路は、キャッシュ、電源、クロック回路、入出力インターフェース回路などを含むが、それだけに限定されない。メモリ128は、RAM、ROM、フラッシュ・メモリ、取外し可能ディスク記憶装置などのうちの1つまたは複数を含むことができる。メモリ128は、アプリケーション・ソフトウェア136やオペレーション・システム・ソフトウェア134など様々なソフトウェア・パッケージを記憶することができる。アプリケーション・ソフトウェア136には、種々のプログラムが含まれ得、それにはWebブラウザ・アプリケーション・ソフトウェア130が含まれるが、それだけには限定されない。また、アプリケーション・ソフトウェア136には、クライアント・ベース・ファイル管理ソフトウェアやビデオ管理ソフトウェアも含まれ得る。
Webブラウザ130は、ワールド・ワイド・ウェブあるいは他の通信ネットワークから、HTMLその他のWebページをユーザが検索し表示できるようにする、どんなソフトウェア・アプリケーションでもよい。さらに、Webブラウザ130は、Netscape NavigatorやMicrosoft Internet Explorerなどいくつかの市販のブラウザの1つとすることができるが、それだけには限定されない。同様に、クライアント・コンピュータ102は、サポート回路124(すなわち入出力インターフェース回路)を介して表示装置132に結合されている。表示装置132は、データまたは画像を表示するどんなスクリーン型の表示装置(すなわちCRT(ブラウン管)、プラズマ・ディスプレイ、液晶ディスプレイ(LCD)など)でもよい。
図1に関して説明したような通信システムでは、データ・パケットを送信し受信するためのネットワーク・プロトコルを使用することができる。ネットワーク・プロトコルは通常、階層的に開発されており、各層が通信の異なる面を担当する。一例として、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)などのプロトコル群は、様々な層における異なるプロトコルを組み合わせたものである。図2Aに示すように、TCP/IPは通常、4階層システム200と考えられている。
具体的には、データ・リンク層(またはネットワーク・インターフェース層)202は通常、OS116内にデバイス・ドライバを含み、またサーバ106のサポート回路124内に対応するネットワーク・インターフェース・カード(NIC)105を含む。これらは全体として、通信メディアとの物理的なインターフェースに関する、ハードウェアのすべての詳細を扱う。ネットワーク(またはインターネット)層204は、ネットワーク周りでのパケットの移動を扱う。たとえばパケットの経路指定がここで行われる。たとえば、IPは、TCP/IPプロトコル群のネットワーク層を提供する。次に、トランスポート層206が、その上位のアプリケーション層208のために、2つのホスト間、あるいはホストと1つ(または複数の)クライアント・コンピュータの間のデータの流れをもたらす。
TCP/IPプロトコル群では、少なくとも2つの異なるトランスポート・プロトコル、すなわちTCPおよびユーザ・データグラム・プロトコル(UDP)が存在する。TCPは、2つのホスト間、あるいはホストとクライアント・ノード(たとえばクライアント・コンピュータ)の間の信頼性のあるデータの流れをもたらす。TCPは、その下位のネットワーク層204のために、アプリケーション層208から渡されたデータを適切なサイズの部分またはパケットに分割し、受け取ったパケットの応答を返し、また相手側パケットの応答を返すためのタイムアウトを設定するなどする。この信頼性のあるデータの流れはトランスポート層206によってもたらされるので、アプリケーション層208は通常、これらの詳細をすべて無視することができる。
一方、UDPは、それよりはるかに単純なサービスをアプリケーション層208に提供する。UDPは、一方のホストから他のホストへ、あるいはホストからクライアント・ノード/コンピュータへ、データグラムと呼ばれるデータ・パケットを単に送信するが、データグラムが相手側に届く保証はない。信頼性が所望される場合は、アプリケーション層208がそれを付加しなければならない。
最後に、アプリケーション層208は、特定のアプリケーションの詳細を扱う。ほとんどすべての実装形態で提供されている共通のTCP/IPアプリケーションが数多く存在する。たとえば、ファイル転送プロトコル(FTP)およびハイパーテキスト転送プロトコル(HTTP)がある。アプリケーション層208は、ネットワークを横切るデータの移動には関係しない。下位の3つの層は通常、アプリケーション層208に関する情報を受け取らず、通信のすべての詳細を扱う。全般的に、アプリケーション層208は通常、ユーザ・プロセスであり、一方、下位の3つの層は通常、OS116内に実装される。
したがって、TCP/IPプロトコル・スタックは、上述したように、様々な層を含むように設計されている。既知のシステムは、各層内ですべての情報を明確に分離しておき、その層に関連しない面へのアクセスは提供しない。たとえば、アプリケーション層とIP層は、パケットの断片化に関する情報を共用しない。ある種のデータをどのようにパケット化すべきかに関する情報は、IP層に残されている。アプリケーション層上では、その知識は知られないはずである。その結果、たとえば、クライアント・ノードのデータ・ファイル要求を満たす必要があるたびに、ホスト・サーバ106が、取り出されたデータ・ファイルからすべてのバイトをコピーし、HTTP応答パケットを作成する必要がある。これには、かなり長い時間がかかる。
本発明の様々の側面の内でもとりわけ、下位層の情報を利用し、それを転送することにより、同等以下のコンピュータ・ハードウェアを使用しても、比較的迅速な応答が可能になることが、本発明によって明らかになった。このような情報は、TCP/ΙΡプロトコル・スタックの上位層に送られる。したがって、本発明の諸側面によれば、ネットワーク層204はデータをどのようにパケット化するかに関する情報を有するので、この層から知識が入手される。この情報は、アプリケーション層208に渡され、事前に適用され、その後にこうした情報が応答として送信される。したがって応答データは、事前パケット化レベルでキャッシュされる。
このパケットは、ソケット・インターフェースを使用してクライアント・ノードに送られる。ソケット・インターフェースは、クライアントとネットワーク・サーバの間の接続についての抽象概念である。ソケットの内部では、サポートできる最大パケット・サイズに関してネットワークが制限を有することがあるので、データは適切なサイズに断片化される。このサイズは、ネットワークのタイプごとに異なる。たとえば、イーサネット(登録商標)などのローカル・エリア・ネットワーク(LAN)では、ペイロード・パケットあたり1500バイトしか許容されない。
図1のデータ通信ネットワーク100を利用できる1つのWebサーバ実施形態は、おそらくWebブラウザ・ソフトウェア130を使用するブラウザを介して、データ・ファイルを求めるクライアント・ノード(コンピュータ)102要求に応答して、図2Bに示したようなHTTP応答パケット250を生成できるサーバ106を含んでいる。この具体的な例のパケット250は、代替案も企図されているが、イーサネット(登録商標)・ヘッダ252、IPヘッダ254、TCPヘッダ256、HTTPヘッダ258、およびHTTPペイロードまたはHTTP応答本体260を含んでいる。
たとえば、サンプルHTTP応答パケット250は約1500バイトのIPパケットである。このパケットは、上述のヘッダとHTTP応答本体260を含んでいる。IPヘッダ254は、約20バイトを含む。TCPヘッダ256は、約20バイトを含む。残りの部分は、約1460バイトである。HTTPヘッダは、テキスト・ベースなので、より大きいサイズである。最初のパケットだけがHTTPヘッダを含むことになる。HTTPパケットは、複数のIPパケットに分割される。HTTPヘッダが1500バイトより大きい場合は、ヘッダをいくつかの部分に分けて複数のパケットに格納することができる。残りのHTTP本体260は、一連のIPパケットに分けられ、1500バイトからいくつかのヘッダ・バイト数を引いた断片に分割される。
動作においては、本発明の一態様によれば、図3の流れ図に示したように、図1の通信システム100に関して、クライアント要求セッション300が提供され、これは工程302で開始する。工程304で、サーバ106は、たとえばクライアント・ノード102から要求を受け取る。工程306で、サーバ106は、この要求を構文解析してどのデータ・ファイルが要求されているかを判定することによって、この要求を処理する。工程308で、応答データ・ファイルがメモリ114から取り出される。
工程310で、このデータ・ファイルがセグメントまたは事前パケットに分割される。工程312で、各セグメントにヘッダ情報が付加される。本発明の諸態様によれば、工程314で、セグメントごとのヘッダ情報が、TCP/IPスタック200の下位レベル、この例ではネットワーク層またはIP層204に送られる。
ある種の情報は、どのデータ要求でも同じであり、特に静的コンテンツがそうであり、したがって、あるパケット形式にとどまることができ、バイト・レベルでキャッシュし直す必要がない。したがって、ディスク上のHTMLページなどの静的コンテンツの場合、おそらく以下のフィールドを除き、応答内容は毎回ほぼ同じになる。
イーサネット(登録商標)宛先MACアドレス(ただし、固定LANゲートウェイの場合は不変になる)
IP宛先アドレス
TCP宛先ポート
TCPシーケンス番号
TCPチェックサム(含まれる場合):毎回更新する必要がある
たとえば、データ要求の特定のTCPヘッダに関連する追加の動的フィールドがあり得るが、これらは応答のコピーを、ヘッダの組合せごとに1つずつ、N個キャッシュすることによって対処することができる。たとえば、あるクライアントが、TCPタイムスタンプ・ヘッダを使用して、往復伝搬時間を推定することがある。サーバは、そのクライアントについてはこのようなヘッダを含まなければならないが、それ以外のクライアントについてはその必要はない。したがってサーバは、このヘッダをもつ応答と、もたない応答の(少なくとも)2つのバージョンのパケット化された応答をキャッシュすることになる。タイムスタンプ・フィールドは、更新する必要のある動的フィールドである。一般にこのことは、応答ヘッダの可能なあらゆる組合せに当てはまる。このようなTCPヘッダはしばしば任意であり、それを使用するか否かは、クライアントがそれをサポートするかどうかによる。
一例では、各クライアントは、ローカルの企業イーサネット(登録商標)・ネットワーク内で、(データ・リンク層202からの)異なるMACアドレスを有することになる。しかし、異なるリモート・ネットワークが存在する場合は、イーサネット(登録商標)・スイッチを通過する接続は、そのスイッチのMACアドレスである。したがって、リモート・ネットワークの場合、サーバ106から見ると、すべてのパケットが同じイーサネット(登録商標)MACアドレスからやってきており、そのアドレスは固定あるいは不変である。この知識を使用して、下位のデータ・リンク層202からこれはイーサネット(登録商標)・ネットワークであるとシステムが認識した場合、最終的にどの位のデータを1つのパケットに入れることができるかがわかる。これは、データ・ファイルを分割するのに必要な情報である。
したがって、工程316で、上述のものを含む動的なヘッダ・フィールドは、次回の要求に備えて、事前パケット化の形でキャッシュすることができるように、所定の値に設定される。任意選択で、この特定の例において、TCPトランスポート・プロトコルを使用した場合、TCPチェックサム値がTCPヘッダに含まれる。工程318で、TCPチェックサムの有無がチェックされ、システムがTCP/IPプロトコルを使用しているかどうかが示される。応答がYesの場合、工程320で、TCPチェックサム値が計算される。次いでこの方法は、工程322に進む。応答がNoの場合は、トランスポート層206がUDPプロトコルを使用している可能性が高いことを示しており、工程322に直接進む。工程322で、その結果得られる、各ヘッダを含む応答パケット250内の静的フィールドと動的フィールドがキャッシュされる。次いで工程324で、応答パケットが、データ・ファイルを要求したクライアント・ノード102に送信される。
工程326では、同じまたは同様のデータを求める、同じまたは異なるクライアント・ノードからの第2の要求が行われる。情報およびヘッダ・フィールドの一部はキャッシュされているので、そのデータをバイトごとに再度取り出す必要はない。そうではなく、純粋に新しい情報だけを更新すればよい。具体的には、工程328で、キャッシュ・メモリのヘッダ動的フィールドが、ヘッダ・フィールド情報の変更があった場合にそれを示す新規の所定の値に更新される。さらに、工程330で、TCPチェックサムが含まれるかどうかが問合せされる。すなわち、工程320が既に実行されていて、TCPチェックサム値が既にキャッシュ済みのパケットに含まれていた場合、工程332が実行されて、TCPチェックサム値が増分的に調整される。「増分的に」とは、パケットのすべてのバイトを足し合わせ、チェックサムを含めすべてのバイトの合計が、0か、1か、あるいはそれ以外の何らかの所定の固定値であるような、2の補数の合計を計算することを意味する。工程334で、データ・ファイルを要求している第2のクライアント・ノードに新規の応答パケットが送られる。工程336で、この方法は終了する。この処理を工程336で終了せずに、継続することもできることが理解されよう。
通常のネットワークには、サポートできる最大パケット・サイズに関する制限がある。ネットワークが異なれば、制限も異なる。たとえば、無線ネットワークには、約2300バイトの制限がある。ATMネットワークは、64バイトのセルを有する。IP層上では、標準の故に、IPパケットに対して65536バイトの最大サイズが存在する。しかし、下位層部分が既に非常に小さいので、IPパケットは通常、ネットワークがサポートできる最大パケット・サイズに収まる。
本発明の諸態様をWebサーバおよびHTMLページに関して説明してきたが、本発明をファイル共用に使用することもできる。また、本発明は、ソフトウェア更新に使用することもでき、その場合、事前パケット化形式のセントラル・サーバがソフトウェア更新を記憶し、所与の企業のすべてのクライアントがそれをダウンロードすることができる。様々なレベルでキャッシュすることができる。HTTPヘッダは各応答でほぼ同じなので、一部のWebサーバは、それをキャッシュする。したがって、それを毎回更新する代わりに、1回生成し、単に保持する。HTTPヘッダを再度生成する代わりに、その結果をコピーするだけでよい。
これらの処理は順次的であるので事前に行うことができ、サーバは、パケットを送信するときに、変更された事項を追加するだけでよい。したがって、TCPチェックサム値に関して、本発明の諸態様による方法は、すべてのフィールドがゼロである場合にチェックサム値を計算することを含むことになり、その後、パケットをクライアントに送信するとき、それらのフィールドが記入され、変更されたビットだけが追加される。
たとえば、1500バイトのパケットを有する場合、1500回の加算(あるいは、32ビット・コンピュータで典型的なように4バイト加算を325回)を行ってチェックサム値の計算を行う必要が生じる。本発明の諸態様によれば、サーバは、この1500回の加算のうちの1490回をあらかじめ行い、それを合計し、新しいフィールドを生成し、それが特にクライアント向けに設定される。たとえば、IPアドレス、TCP宛先ポート、TCPシーケンス番号などである。これらは、クライアントに特有の数個のフィールドであり、クライアントごとに異なる。したがって、チェックサムを更新する必要はあるが、1500回のすべてではなく、いくつかの追加の加算についてだけ更新すればよい。
UDPでは、チェックサムはIP v4の場合、任意選択である。これは無効にすることができる。チェックサムが設定されていない場合、チェックサム検査はスキップされる。どんな送信エラーでも他の層(たとえば、ネットワーク層またはアプリケーション層)でしか検出することができない。
したがって、上記で詳細に説明したように、本発明の諸態様による方法および装置では、クライアント・ノード要求の応答時間を短縮しようとして、事前パケット化形式でデータをキャッシュするキャッシング機能を使用した。システムは、IP層から情報を取得する。こうしてシステムは、情報がどのようにしてパケット化されるかを知る。したがって、システムは、情報をアプリケーション層に渡し、それを事前に適用することができる。したがって、本発明の様々な実施形態では、異なるいくつかのプロトコル層を参照し、その下位の層の知識に基づいて最適化を行う。いくつかの利点を挙げてみると、このようにすれば、TCPチェックサム計算のオーバヘッドが回避され、コンテンツ圧縮の(がある場合はその)オーバヘッドが回避され、ディスク・ファイルの読取りが回避され、またバッファ割当ておよびディスク・バッファからネットワーク・インターフェースへのメモリのコピーが回避される。
本発明の諸態様によるすべて又は一部の方法及び装置は、二次記憶装置(たとえばハード・ディスク、フロッピー・ディスク、CD−ROM、DVDなど)や、インターネット又は、その他の形のROM又はRAMなどのコンピュータ可読媒体上に格納し、そこから読み取ることができることが、当業者には理解されよう。最後に、データ処理システムの特定の構成要素について説明してきたが、例示的な実施形態と共に使用するのに適したデータ処理システムは、複数のプロセッサや様々な入出力装置など、追加のあるいは異なる構成要素を含むことができることが、当業者には理解されよう。一般的に、本発明の諸態様のシステム及び方法は、様々な有形及び無形の媒体、様々なコンピュータ、データ処理システムなどで実施することができる。


以上論じてきたように、本発明の一態様の利点は、オーバヘッドの削減によって明らかになる。すなわち、パケットのすべてのバイトを毎回再パケット化する必要がない。既知の処理ですべてのバイトを毎回コピーするには、時間を要する。あらかじめパケット化を実行し、キャッシングを行うことができ、それによって応答時間が短縮され、ネットワーク・サーバ106上の負荷が低減される。その結果、同じハードウェアが、同じ時間内により多くのクライアント・ノード(またはクライアント・コンピュータ)を処理することができる。あるいは、同じ数のクライアント・ノードを処理するのに、より少ないハードウェアで済む。
本発明の諸態様をWebサーバに関して説明してきたが、上述のような他の種類のサーバ(すなわちファイル・サーバおよびビデオ・サーバ)も企図されており、本発明の範囲に含まれることが当業者には理解されるはずである。
たとえば、ビデオ・サーバは、UDPパケットを使用することができる。この場合、関与するフロー制御もデータ・パケットの動的サイズ設定もない。固定サイズのパケットだけが存在する。したがって、データ・ブロック単位でビデオの事前符号化がすでにされている。たとえば、同じビデオ・ファイルに、異なるクライアント向けの、品質またはCODECの異なるバージョンがいくつも存在してもよい。しかし、このデータはやはり、取り出し、UDPパケットに入れ、ネットワーク上に送出する必要がある。したがって、本発明の他の諸態様によれば、ビデオ・ファイルを符号化し、それをビデオ・サーバ上に事前パケット化形式で記憶する手段が提供される。各パケットは、ネットワーク・インターフェース上に容易に送出することができる。
本発明の諸態様の教示を組み込んだ様々な実施形態を本明細書で詳細に示し説明してきたが、当業者であれば、これらの教示をやはり組み込んだその他多くの様々な実施形態を容易に考案することができよう。
本発明の諸態様に従って動作する通信ネットワーク・アーキテクチャの機能ブロック図である。 本発明の諸態様に関連して使用されるサンプルTCP/IPスタックを示す図である。 図1の通信ネットワーク・システムによって生成し、図2AのTCP/IPプロトコルを使用して送信することができる、サンプルHTTP応答パケットを示す図である。 本発明の諸態様による方法の流れ図である。

Claims (10)

  1. 第1のクライアント・ノード要求に応答してサーバ応答データをキャッシュする方法であって、
    サーバ(106)から要求されたデータを取り出すステップ(308)と、
    該取り出されたデータを、該要求されたデータの静的コンテンツを格納するための複数の静的フィールド及び該要求されたデータの動的コンテンツを格納するための複数の動的フィールドを含む複数の応答パケットに分割するステップ(310)を含み該動的コンテンツは、該第1のクライアント・ノード要求に特有のデータであり、
    該複数の応答パケットの該複数の動的フィールドをそれぞれの所定の値に設定することによって、該要求されたデータの少なくとも一部に対する後続の要求の間に使用するように該動的フィールドを適応させるステップ(316)と、
    該第1のクライアント・ノードによって要求された該データの少なくとも一部に対する後続の要求の間に使用するように、複数の応答パケットの該複数の適応させられた動的フィールド及び該複数の静的フィールドをメモリ・バッファ(115)にキャッシュするステップ(322)とを含むサーバ応答データをキャッシュする方法。
  2. 請求項1に記載の方法において、
    該少なくとも1つの応答パケットのフィールド中でTCPチェックサム値を設定するステップ(318、320)をさらに含む方法。
  3. 請求項2に記載の方法において、
    イーサネット宛先MACアドレス、IP宛先アドレス、TCP宛先ポート、TCPシーケンス番号、クライアント・ノード要求からのTCPヘッダ、及びTCPチェックサムを含む群から該動的フィールドが選択される方法。
  4. 請求項に記載の方法において、
    第2のクライアント・ノード要求に応答して、
    少なくとも1つのキャッシュされた動的フィールドを該第2のクライアント・ノードに特有の動的コンテンツを使用して更新するステップ(328)と、
    該TCPチェックサムを増分的に調整するステップ(322)と、
    該更新された動的フィールドと該キャッシュされた静的フィールドと増分的に調整されたTCPチェックサムとを含む少なくとも1つの応答パケットを、該第2のクライアント・ノードに提供するステップ(334)とをさらに含むの方法。
  5. 請求項に記載の方法において、
    該動的フィールドが該TCPヘッダを含む場合に、該少なくとも1つの応答パケットのN個のコピーをキャッシュするステップをさらに含み、Nは特定のTCPヘッダの数と等しい整数である方法。
  6. サーバ応答データをキャッシュするための装置であって、
    取り出されたデータを、要求されたデータの静的コンテンツを格納するための複数の静的フィールド及び該要求されたデータの動的コンテンツを格納するための複数の動的フィールドを含む複数の応答パケットに分割し、該動的コンテンツは、第1のクライアント・ノード要求に特有の情報を含み、少なくとも1つの応答パケットの該複数の動的フィールドを所定の値に設定するプロセッサ(110)と、後続のクライアント要求に応答して少なくとも1つのクライアント・ノードに送信する事前パケット化データを記憶するためのメモリ・バッファ(115)とを含んでおり、該事前パケット化データが該複数の応答パケットからの該複数の静的フィールド、及び該複数の動的フィールドを含むサーバと、
    該サーバ(106)を通信ネットワーク(104)に接続し、該サーバ(106)の該メモリ・バッファ(115)からの該複数の応答パケットを、該少なくとも1つのクライアント・ノード(102)に送信するためのネットワーク・インターフェース・カード(105)とを含む、サーバ応答データをキャッシュするための装置。
  7. コンピュータ実行可能命令をその上に有するコンピュータ可読媒体であって、該コンピュータ実行可能命令は、コンピュータによって実行されたとき、第1のクライアント・ノード要求に応答して、サーバ(106)上で少なくとも1つの応答パケットをキャッシュする方法を該コンピュータに実施させ、該方法が、
    該少なくとも1つの応答パケットに含めるために、該サーバ(106)のメモリ・データベース(114)からデータを取り出すステップ(308)であって、該少なくとも1つの応答パケットは、該応答パケットの複数の静的フィールド内の該要求されたデータの静的コンテンツ及び該応答パケットの複数の動的フィールド内の該要求されたデータの動的コンテンツを含み、該動的コンテンツは、該第1のクライアント・ノード要求に特有のデータであり
    少なくとも1つの応答パケットの該複数の動的フィールドをそれぞれの所定の値に設定することによって、該要求されたデータの少なくとも一部に対する後続の要求の間に使用するよう苦い少なくとも1つの応答パケットの該複数の動的フィールドを適応させるステップ(316)と、
    該第1のクライアント・ノードによって要求されたデータの少なくとも一部に対する後続の要求の間に使用するように、該得られた少なくとも1つの応答パケットの該第1のクライアント・ノードによって要求されたデータを含む静的フィールド及び該適応された複数の動的フィールドを該サーバ(106)のメモリ・バッファ(115)にキャッシュするステップ(322)とを含むコンピュータ可読媒体。
  8. 請求項7に記載のコンピュータ可読媒体において、
    該少なくとも1つの応答パケットのフィールド内にTCPチェックサム値を設定するステップ(318、320)をさらに含むコンピュータ可読媒体。
  9. 請求項7に記載のコンピュータ可読媒体において、
    イーサネット宛先MACアドレス、IP宛先アドレス、TCP宛先ポート、TCPシーケンス番号、クライアント要求からのTCPヘッダ、及びTCPチェックサムを含む群から該動的フィールドが選択されるコンピュータ可読媒体。
  10. 請求項8に記載のコンピュータ可読媒体において、
    第2のクライアント・ノード要求に応答して、該方法が、
    該動的フィールドの該所定の値該第2のクライアント・ノード要求に特有なデータを含む動的コンテンツを使用して更新するステップ(328)と、
    該TCPチェックサムを増分的に調整するステップ(332)と、
    該更新された動的フィールドと該キャッシュされた静的フィールドと増分的に調整されたTCPチェックサムとを含む少なくとも1つの応答パケットを、該第2のクライアント・ノードに提供するステップ(334)とをさらに含むコンピュータ可読媒体。
JP2005333504A 2004-11-22 2005-11-18 ネットワーク・サーバ用の事前パケット化キャッシングの方法および装置 Expired - Fee Related JP5107517B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/994,989 US7711799B2 (en) 2004-11-22 2004-11-22 Method and apparatus for pre-packetized caching for network servers
US10/994989 2004-11-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012138727A Division JP2012216230A (ja) 2004-11-22 2012-06-20 ネットワーク・サーバ用の事前パケット化キャッシングの方法及び装置

Publications (2)

Publication Number Publication Date
JP2006146923A JP2006146923A (ja) 2006-06-08
JP5107517B2 true JP5107517B2 (ja) 2012-12-26

Family

ID=35614181

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005333504A Expired - Fee Related JP5107517B2 (ja) 2004-11-22 2005-11-18 ネットワーク・サーバ用の事前パケット化キャッシングの方法および装置
JP2012138727A Pending JP2012216230A (ja) 2004-11-22 2012-06-20 ネットワーク・サーバ用の事前パケット化キャッシングの方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012138727A Pending JP2012216230A (ja) 2004-11-22 2012-06-20 ネットワーク・サーバ用の事前パケット化キャッシングの方法及び装置

Country Status (4)

Country Link
US (1) US7711799B2 (ja)
EP (1) EP1659755B1 (ja)
JP (2) JP5107517B2 (ja)
DE (1) DE602005026091D1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9219579B2 (en) * 2004-07-23 2015-12-22 Citrix Systems, Inc. Systems and methods for client-side application-aware prioritization of network communications
EP2264956B1 (en) 2004-07-23 2017-06-14 Citrix Systems, Inc. Method for securing remote access to private networks
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
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
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
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
CN101147379B (zh) 2005-01-24 2011-05-25 茨特里克斯系统公司 在网络中对动态产生的对象执行缓存的系统和方法
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
IES20050376A2 (en) 2005-06-03 2006-08-09 Asavie R & D Ltd Secure network communication system and method
DE102005053148B4 (de) * 2005-11-04 2022-12-22 Robert Bosch Gmbh Verfahren zur Handhabung von Inhaltsinformationen
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
ES2318978B2 (es) * 2006-07-24 2009-10-07 Universidad De Alcala Mecanismos de marcado e identificacion en el nivel de transporte para la gestion de caches de contenidos.
US8908700B2 (en) 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
US8559463B2 (en) * 2008-02-20 2013-10-15 General Dynamics C4 Systems, Inc. Systems and methods for providing efficient bandwidth utilization in packet switched networks
US9953052B1 (en) * 2012-06-19 2018-04-24 Amazon Technologies, Inc. Caching of updated network content portions
US20140006537A1 (en) * 2012-06-28 2014-01-02 Wiliam H. TSO High speed record and playback system
JP2014235531A (ja) * 2013-05-31 2014-12-15 株式会社東芝 データ転送装置、データ転送システム、およびプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
JPH0669957A (ja) * 1992-08-18 1994-03-11 Matsushita Electric Ind Co Ltd データ送信方法及びデータ送信装置
TW252248B (en) 1994-08-23 1995-07-21 Ibm A semiconductor memory based server for providing multimedia information on demand over wide area networks
US5867114A (en) * 1996-02-29 1999-02-02 Mitel Corporation Method and apparatus for performing data compression
US6021426A (en) * 1997-07-31 2000-02-01 At&T Corp Method and apparatus for dynamic data transfer on a web page
JP2002540684A (ja) * 1999-03-23 2002-11-26 インフォリブリア・インコーポレーテッド ビデオを選択的にキャッシングすることによりオン・デマンド応答時間を改良する装置
US6513062B1 (en) * 1999-05-25 2003-01-28 Grischa Corporation Method, apparatus, and computer program product for efficient server response generation using intermediate state caching
JP2000341328A (ja) * 1999-05-27 2000-12-08 Fujitsu Ltd データ中継装置
US6757708B1 (en) * 2000-03-03 2004-06-29 International Business Machines Corporation Caching dynamic content
US7599851B2 (en) * 2000-09-05 2009-10-06 Renee Frengut Method for providing customized user interface and targeted marketing forum
US7171443B2 (en) * 2001-04-04 2007-01-30 Prodigy Communications, Lp Method, system, and software for transmission of information
US7164680B2 (en) * 2001-06-04 2007-01-16 Koninklijke Philips Electronics N.V. Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US20030055915A1 (en) * 2001-09-14 2003-03-20 Ngo Kin Cuc Method and apparatus for transmitting data over a network
US20030055881A1 (en) * 2001-09-14 2003-03-20 Ngo Kim Cuc Method and apparatus for transmitting data over a network
US7237031B2 (en) * 2002-03-07 2007-06-26 Sun Microsystems, Inc. Method and apparatus for caching protocol processing data
JP2003263385A (ja) * 2002-03-11 2003-09-19 Kochi Systems:Kk 高速wwwサーバシステムおよび高速表示方法
JP3984086B2 (ja) * 2002-03-27 2007-09-26 株式会社東芝 キャッシュサーバ、データ転送装置及びプログラム
JP2004013345A (ja) * 2002-06-04 2004-01-15 Hitachi Information Systems Ltd 情報提供システム及び情報提供プログラム
US7324516B2 (en) * 2002-08-14 2008-01-29 Intel Corporation Data packet header conversion
US20040098463A1 (en) * 2002-11-19 2004-05-20 Bo Shen Transcoding-enabled caching proxy and method thereof
US20040236824A1 (en) * 2003-05-23 2004-11-25 Millington Bradley D. Post-cache substitution
US8620411B2 (en) 2003-12-12 2013-12-31 Johnson & Johnson Consumer Companies, Inc. Method of assessing skin and overall health of an individual

Also Published As

Publication number Publication date
JP2006146923A (ja) 2006-06-08
US20060112185A1 (en) 2006-05-25
US7711799B2 (en) 2010-05-04
EP1659755A1 (en) 2006-05-24
DE602005026091D1 (de) 2011-03-10
JP2012216230A (ja) 2012-11-08
EP1659755B1 (en) 2011-01-26

Similar Documents

Publication Publication Date Title
JP5107517B2 (ja) ネットワーク・サーバ用の事前パケット化キャッシングの方法および装置
US10212124B2 (en) Facilitating content accessibility via different communication formats
US7716306B2 (en) Data caching based on data contents
US10484509B2 (en) Anycast transport protocol for content distribution networks
EP1955526B1 (en) Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US6374300B2 (en) Method and system for storing load balancing information with an HTTP cookie
EP2266043B1 (en) Cache optimzation
US10263950B2 (en) Directing clients based on communication format
US7624184B1 (en) Methods and apparatus for managing access to data through a network device
US9621666B2 (en) Systems and methods for enhanced delta compression
Apostolopoulos et al. L5: A self learning layer 5 switch

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110531

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120620

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120807

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: 20120906

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: 20121004

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

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