JP2002529856A - インターネットクライアントサーバマルチプレクサ - Google Patents

インターネットクライアントサーバマルチプレクサ

Info

Publication number
JP2002529856A
JP2002529856A JP2000581549A JP2000581549A JP2002529856A JP 2002529856 A JP2002529856 A JP 2002529856A JP 2000581549 A JP2000581549 A JP 2000581549A JP 2000581549 A JP2000581549 A JP 2000581549A JP 2002529856 A JP2002529856 A JP 2002529856A
Authority
JP
Japan
Prior art keywords
server
segment
connection
client
modified
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.)
Granted
Application number
JP2000581549A
Other languages
English (en)
Other versions
JP2002529856A5 (ja
JP4312962B2 (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 JP2002529856A publication Critical patent/JP2002529856A/ja
Publication of JP2002529856A5 publication Critical patent/JP2002529856A5/ja
Application granted granted Critical
Publication of JP4312962B2 publication Critical patent/JP4312962B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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
    • 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/14Multichannel or multilink protocols
    • 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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 ネットワーククライアントサーバマルチプレクシングのための装置、方法、およびコンピュータプログラム製品である。この装置は、複数のサーバをインターネット(これは複数のクライアントに接続される)と接続するインターフェイスユニット内で実行される。本発明の「接続プーリング」の局面によれば、インターフェイスユニットは、サーバとの接続を開にして維持し、サーバにアクセスするクライアントとの接続の開閉を操作する。そのため、接続の開閉により課せられるサーバの処理負荷を解放する。本発明の「接続分散」の局面によれば、インターフェイスユニットはクライアントから受信した要求中のパス名を調査し、要求された情報を管理するサーバをパス名に従って選択する。

Description

【発明の詳細な説明】
【0001】 (発明の背景) (発明の分野) 本発明は概して、インターネットクライアントサーバアプリケーション、より
詳細には、クライアントとサーバとの間のインターネットを通じたマルチプレク
サ接続に関するものである。
【0002】 (関連技術) 早い情報交換およびデータ交換の現代の経済に対する重要性は控え目に述べる
ことはできない。これは、指数関数的に増加するインターネットの人気を説明す
る。インターネットは、相互接続されたコンピュータネットワークの世界的な集
合である。そのコンピュータネットワークの集合は、量および種類が増大する情
報に電子的にアクセスするために用いられ得る。
【0003】 インターネット上の情報にアクセスするための一手法は、ワールドワイドウェ
ブ(wwwまたは「ウェブ」)として公知である。そのウェブは、分散されたハ
イパーメディアシステムであり、クライアントサーバに基づいた情報提示システ
ムとして機能する。ウェブ全体にわたってアクセス可能であるように意図される
情報は、「サーバ」として公知の汎用コンピュータに「ページ」の形式で記憶さ
れている。コンピュータのユーザは、そのページのユニフォームリソースロケー
タ(URL)を指定することによって、「クライアント」と呼ばれる汎用コンピ
ュータを用いてウェブページにアクセスし得る。図1は、インターネットに接続
された複数のクライアントおよびサーバを示したネットワークブロック図である
【0004】 クライアントがURLを特定する場合、ドメイン名として公知のURLの一部
は、ネットワークアドレスに変換するためにドメインサーバ(DNS)に渡され
る。そのネットワークアドレスは、意図したサーバのインターネットプロトコル
(IP)アドレスを指定する。クライアント要求は、そのネットワークアドレス
を有するサーバに渡される。そのサーバは、クライアントによって要求されたウ
ェブページの位置を示すためにURL中のパス名を用いる。次いで、ウェブペー
ジのコピーは、ユーザが見るためにクライアントに送信される。
【0005】 上記されたクライアントサーバのパラダイムは、インターネットに非常に役立
ってきた。しかしながら、いくつかの問題が存在する。1つの問題は、サーバ接
続ローディングである。
【0006】 サーバは、あることをうまく行なうように設計されている。サーバは、一般的
なタスク、例えば、ファイル管理、アプリケーション処理、データベース処理な
どに対して最適化された汎用機である。サーバは、ネットワーク接続の開閉のよ
うなタスク切換えを扱うようには最適化されていない。ある負荷条件下で、これ
らのタスクは、サーバの処理リソースの大部分のパーセンテージ(しばしば20
パーセント、時には50パーセントまでのオーダ)を消費する、かなりのオーバ
ーヘッドを表し得る。この問題は、本明細書では「接続ローディング」と呼ぶ。
【0007】 ローディングをさらに説明すると、クライアントおよびサーバは、典型的に接
続を設定するために3パケットの情報を交換しなければならない。一度その接続
が確立されると、クライアントは、サーバにURL(ページ)要求を送信する。
このURL(ページ)要求は、1パケットからなる。次いで、このサーバは、1
つ以上のパケット応答を、クライアントへ返送する。一度要求および応答が、ク
ライアントおよびサーバから交換されると、クライアントおよびサーバの両方は
、それぞれの接続を閉にする。接続を閉にするには、さらに4つのパケット情報
交換が必要である。上述されたように、1つのURLをダウンロードすることに
関するかなりの量のオーバーヘッドがある(すなわち、7パケット)。ページは
典型的に、複数のURLからなる。
【0008】 接続ローディングに関するさらなる問題は、以下のことを含む。サーバに到達
する各パケットは、サーバのCPUに割り込み、ネットワークインターフェイス
カード(NIC)からサーバのメインメモリまでのそのパケットを移動させる。
結果として、これはサーバのCPUの生産性を損失する。従って、必要とされる
ことは、サーバ側で貴重なCPU時間を消費することを回避する方法である。結
果として、同じリソースがより多くのURL(ページ)要求を処理するために適
用され得る。従って、これによりサーバのURL処理容量が改善される。
【0009】 上記で議論されたように、接続の確立のために3つのパケットが必要である。
さらに、接続の確立は、CPU/メモリに関連したかなりのサーバリソースを消
耗する。サーバ側で接続を確立するために、パケットは、ドライバ層によって処
理されることが必要である。ここで、イーサネット(登録商標)特有の情報が扱
われる。そのドライバ層は、より多く処理するためにIP層にパケットを送信す
る。ここで、IP(インターネットプロトコル)に関連した処理の全てが扱われ
る。この後、パケットはTCP(伝送制御プロトコル)層に渡される。ここで、
TCP層に関連する情報が処理される。TCP層は、接続テーブル等を作成する
ために、かなりのサーバリソースを消費する。従って、必要とされることは接続
処理を回避して、それによって、かなりのCPU/メモリリソースをセーブする
ための方法である。
【0010】 ウェブサーバは、処理されるべき入来接続のそれぞれに対するスレッドを作成
する必要がある。接続とURL要求が処理されると、そのスレッドは終了する。
スレッドは、プロセスの型の1つであるライトウェイトプロセス(LWP)であ
る。スレッドは効率的であるけれども、スレッドを作成し、破壊するためにかな
りのCPUおよびメモリが必要である。従って、スレッドの作成を回避すること
により、サーバリソースのかなりの量が温存され得る。続いて、そのサーバリソ
ースのかなりの量は、ウェブ要求をより多く処理するために用いられ得る。
【0011】 1つ以上のCPUを有するサーバは、SMP(対称型マルチプロセッシング)
システムと呼ばれており、これらのシステムは、共通のメモリアーキテクチャを
有する。そのSMPシステムはまた、複数のCPUを管理する1つのオペレイテ
ィングシステム(OS)を有する。1つのOSは、1つのネットワーキング/プ
ロトコルスタックを意味する。複数のCPUがカーネルプロトコルスタック中の
データ構造にアクセスする場合、1つ以上のCPUがそのデータ構造に読み/書
きをし得るので、データの破損に対して保護することが重要である。保護コード
は、SMPシステムにパケット当たりのさらなるオーバーヘッドを負担させる。
【0012】 最終的に、個々のサーバのスループットには、限界がある。従って、大量のイ
ンターネット要求を扱うことを望むデータの提供者は、しばしば、複数のサーバ
上にコンテンツを複製し、次に、これらのサーバ間に要求を分散させるというア
プローチに頼る。このアプローチは、たとえそのコンテンツが、まれにしかアク
セスされなくても、各複製サーバにコンテンツの全体を複製する必要がある。こ
れは、サーバリソースの浪費を示す。
【0013】 (発明の要旨) 本発明は、ネットワーククライアントサーバのマルチプレッシングのためのシ
ステム、方法、およびコンピュータプログラム製品である。好適な実施形態にお
いて、本発明は、インターネットに複数のサーバを接続するインターフェイスユ
ニットの中で実行され、インターフェイスユニットは、次に、複数のクライアン
トに接続されている。
【0014】 本発明の1つの局面によれば、その方法は、クライアントとインターフェイス
ユニットとの間の接続を開始するステップと、インターフェイスユニットとサー
バとの間で開である、空いている接続がない場合、インターフェイスユニットと
サーバとの間の接続を開にするステップと、クライアントがその接続を経由して
サーバ上の情報にアクセスすることを可能にするステップと、インターフェイス
ユニットとサーバとの間の接続を開に維持する一方で、クライアントとインター
フェイスユニットとの間の接続を閉にするステップとを含む。
【0015】 本発明の別の局面によれば、その方法は、ネットワークアドレスおよびパス名
を使用してデータを検索する要求をクライアントから受信するステップと、パス
名、サーバの負荷、およびサーバの状態のうち少なくとも1つを含むあらかじめ
定義された方針の機能としてデータを格納するサーバを選択するステップと、既
に開にされた接続を使用してサーバからデータを検索するステップと、クライア
ントにそのデータを送信するステップとを含む。
【0016】 本発明の1つの利点は、本明細書において「接続プーリング」として参照され
る技術によって、接続ローディング問題を解消するということである。
【0017】 本発明の別の利点は、本明細書において「接続分散(connection
distribution)」として参照される技術の使用によって、接続複製
問題を解消するということである。
【0018】 さらに本発明の別の利点は、本明細書において「接続マルチプレクシング」と
して参照される技術を使用して、サーバおよびクライアントからの接続を、ユー
ザに意識させないでスプライスする(splice)ということである。
【0019】 本発明の特徴および利点は、図面を組合せることで、下記に示す詳細な記述に
より、より明白となる。図面にわたって、同じ参照文字は対応する要素を特定す
る。
【0020】 (好適な実施形態の詳細な説明) 本発明は、ネットワーククライアントサーバのマルチプレクシングのためのシ
ステム、方法、およびコンピュータプログラム製品である。
【0021】 図2は、本発明の好適な実施形態に従うインターフェイスユニット202につ
いてのネットワークコンテクストの図である。好適な実施形態において、インタ
ーフェイスユニットは、サーバ内のCPUを有するインテリジェントネットワー
クインターフェイスカードである。インターフェイスユニットはまた、サーバの
外に設置しているインテリジェントボックスであり得、この場合、1つ以上のサ
ーバを取り扱い得る。インターフェイスユニット202はまた、クライアントと
サーバとの間に設けられている負荷バランサ、バンド幅マネージャ、ファイアウ
ォール、ルータ、スイッチ、コンピュータシステム、または他の任意のネットワ
ークデバイスであり得る。
【0022】 図2を参照すると、複数のクライアントC1、C2、C3は、インターネット
に接続されており、複数のサーバS1、S2、S3は、インターフェイスユニッ
ト202によってインターネットに接続されている。複数のサーバS1、S2、
S3は、ひとまとめにして「サーバファーム」と言われている。サーバファーム
とのすべてのインターネットトラフィックは、インターフェイスユニット202
を通過する。本発明はインターネットに関して説明されるが、当該分野の当業者
に明確なように、説明される概念はまた、別のタイプのネットワークにもあては
まるる。
【0023】 本発明の1つの局面によると、インターフェイスユニット202は、各サーバ
との1つ以上の接続を開にし、インターネットを介してクライアントが繰り返し
てデータにアクセスできるようにこれらの接続を維持することによって、クライ
アントへの接続を繰り返し開閉することで生じるサーバS1、S2、S3の多く
の処理負荷を軽減する。この技術は、本明細書において「接続プーリング」と言
われている。
【0024】 図3は、好適な実施形態に従う本発明の接続プーリング局面の動作を示すフロ
ーチャートである。このプロセスは、クライアントが、インターフェイスユニッ
ト202によって管理されているサーバファームにおいて、1つのサーバへのア
クセスを要求する場合に開始する。接続は、インターフェイスユニットと要求し
ているクライアントとの間で開であり、インターフェイスユニット202は、ス
テップ302で示されるように、サーバにアクセスするためのクライアント要求
を受信する。インターフェイスユニット202は、ステップ304で示されるよ
うに、要求されたサーバのアイデンティティを決定する。1つの実施形態におい
て、これは、クライアント要求によって特定されたデスティネーションネットワ
ークアドレスを検査することによって達成される。別の実施形態において、これ
は、クライアント要求によって特定されたネットワークアドレスおよびパス名を
検査することによって達成される。クライアント要求が向けられなければならな
いサーバのアイデンティティを決定した後、インターフェイスユニット202は
、ステップ306で示されるように、サーバへの空いている(すなわち、使用さ
れていない)接続が既に開であるかどうかを決定する。開であるなら、処理はス
テップ310で再開する。開でないなら、インターフェイスユニット202は、
ステップ308で示されるように、サーバへの接続を開にする。次に、インター
フェイスユニット202は、ステップ310で示され、以下の図4に関してより
詳細に説明するように、クライアント要求を変換し、サーバにそれを渡す。サー
バ処理の後、インターフェイスユニットは、ステップ312で示されるように、
サーバからの応答を受信する。サーバ応答は、ステップ314で示され、以下に
さらに説明されるように、交換され、要求しているクライアントに渡される。最
終的に、インターフェイスユニット202は、ステップ316で示されるように
、クライアントとの接続を閉にする。しかしながら、インターフェイスユニット
202とサーバとの間の接続は、切断されない。サーバとの開である接続を維持
すること、ならびに、必要に応じてクライアントとの接続を開閉することによっ
て、インターネットを介して取り扱うクライアントに関する接続負荷のほとんど
すべての問題をサーバから解放する。
【0025】 図4は、ステップ310およびステップ314で示されるように、接続マルチ
プレクシングを達成するためにクライアントおよびサーバの要求を変換する際の
、本発明の動作を示すフローチャートである。好適な実施形態において、メッセ
ージトラフィックは、TCP/IPパケットの形式、当該分野で周知のプロトコ
ル群の形式である。TCP/IPプロトコル群は、多くのアプリケーション、例
えば、Telnet、File Transfer Protocol(FTP
)、e-mail、Hyper-Text Transfer Protocol
(HTTP)をサポートする。本発明は、HTTPプロトコルに関して説明され
る。しかしながら、本明細書を読むことで、当該者に明確となるように、本発明
の概念は、他のTCP/IPアプリケーションにも同様にあてはまる。
【0026】 各TCPパケットは、TCPヘッダおよびIPヘッダを備える。IPヘッダは
、32ビットソースIPアドレス、および32ビットデスティネーションIPア
ドレスを備える。TCPヘッダは、16ビットソースポート番号、および16ビ
ットデスティネーションポート番号を備える。ソースIPアドレスおよびポート
番号はひとまとめにして、ソースネットワークアドレスと呼ばれており、パケッ
トのソースインターフェイスを一意に特定する。同様に、デスティネーションI
Pアドレスおよびポート番号はひとまとめにして、デスティネーションネットワ
ークアドレスと呼ばれており、パケットに対するデスティネーションインターフ
ェイスを一意に特定する。パケットのソースネットワークアドレスおよびデステ
ィネーションネットワークアドレスは、接続を一意に特定する。TCPヘッダは
また、32ビットシーケンス番号および32ビット承認番号を含む。
【0027】 パケットのTCPの部分は、セグメントと呼ばれている。セグメントは、TC
Pヘッダおよびデータを含む。シーケンス番号は、送信TCPから受信TCPま
でのデータの文字列でセグメントのデータの初めのバイトが表わすバイトを特定
する。交換されたそれぞれのバイトが番号付けされるので、承認番号は、承認の
送信側が受け取ると予期する次のシーケンス番号を含む。従って、これは、最後
に正常に受信されたデータのバイトを加えたシーケンス番号である。チェックサ
ムはTCPセグメント、すなわち、TCPヘッダおよびTCPデータをカバーす
る。これは、送信側によって計算され、記憶され、続いて、受信側によって確認
されなければならない必須のフィールドである。
【0028】 クライアントから意図したサーバまでインバウンドのパケットを正常にルーテ
ィングするために、または、サーバからクライアントまでアウトバウンドのパケ
ットを正常にルーティングするために、インターフェイスユニット202は、「
ネットワークアドレス変換」として公知のプロセスを使用する。ネットワークア
ドレス変換は、当該分野で周知であり、request for commen
ts(RFC)1631によって仕様が定められている。そのRFC1631は
、URL http://www.safety.net/RFC1631.t
xtで見出され得る。
【0029】 しかしながら、クライアントおよびサーバ接続を連続的にスプライスするため
に、本発明はまた、本明細書中で「接続マルチプレクシング」と呼ばれる新しい
変換技術を使用する。この技術によって、本発明は、TCPプロトコルレベルで
パケットのシーケンス番号および承認番号を修正することによってパケットを変
換する。この技術の重要な利点は、アプリケーション層相互作用が必要とされな
いということである。
【0030】 図4を参照して、ステップ402に示されるように、パケットのネットワーク
アドレスが変換される。インバウンドパケット(すなわち、パケットがクライア
ントから受信された)の場合において、パケットのソースネットワークアドレス
は、インターフェイスユニットの出力ポートのネットワークアドレスに変換され
、デスティネーションネットワークアドレスは、意図したサーバのネットワーク
アドレスに変換される。アウトバンドパケット(すなわち、パケットがサーバか
ら受信された)の場合において、ソースネットワークアドレスは、サーバのネッ
トワークアドレスからインターフェイスユニットの出力ポートのネットワークア
ドレスに変換され、デスティネーションアドレスは、インターフェイスユニット
のネットワークアドレスから要求しているクライアントのネットワークアドレス
に変換される。パケットのシーケンス番号および承認番号もまた、ステップ40
4および406に示され、以下で詳細に記載されるように、変換される。最後に
、パケットチェックサムは、ステップ408に示されるように、これらの変換を
仕上げるために再計算される。
【0031】 図5は、好適な実施形態に従う本発明の接続プーリング局面を示すメッセージ
フロー図である。図5は、サーバSに2つのクライアントC1およびC2を接続
したインターフェイスユニット202を示す。初めに、インターフェイスユニッ
ト202は、フロー502に示されるように、クライアントC1によって提供さ
れたネットワークアドレス1を使用して、クライアントC1との接続を開にする
。フローライン502は、2方向のフローとして示されている。なぜならば、T
CP/IPプロトコルは、接続を開にするために多段式のハンドシェイクを使用
するからである。
【0032】 ひとたび接続が開にされると、インターフェイスユニット202は、フローラ
イン504に示されるように、/sales/forecast.htmlのパ
ス名を指定するクライアントC1からのGET要求を受信する。インターフェイ
スユニット202とサーバSとの間に開である空いている接続がないために、イ
ンターフェイスユニット202はサーバSとの接続を開にする。フローライン5
06に示されるように、インターフェイスユニット202は、サーバSを特定す
るネットワークアドレス2にこの要求をマッピングする。インターフェイスユニ
ット202はまた、フローライン508に示されるように、そのサーバにGET
要求を渡す。サーバSは、フローライン510に示されるように、要求されたウ
ェブページで応答する。インターフェイスユニット202は、フローライン51
2に示されるように、クライアントC1にウェブページを転送する。最後に、ク
ライアントC1とインターフェイスユニット202との間の接続は、フローライ
ン514に示されるように、閉にされる。TCP/IPプロトコルによれば、ネ
ットワークの接続を閉にすることは、多段式のプロセスを包含し得る。従って、
フローライン514は、双方向として示される。インターフェイスユニット20
2は、サーバSとの接続を閉にせず、むしろ、さらなるデータフローを供給する
ために接続を開に維持することに注意することが重要である。
【0033】 次に、接続は、フローライン516に示されるように、クライアントC2によ
って提供されたネットワークアドレス1を使用して、インターフェイスユニット
202とクライアントC2との間で開にされる。続いて、インターフェイスユニ
ット202は、フローライン518に示されるように、ウェブページ/sale
s/forecast.htmlを指定するクライアントC2からのGET要求
を受信する。空いている接続がすでにインターフェイスユニット202とサーバ
Sとの間で開であるために、インターフェイスユニット202にとって、サーバ
Sにさらなる接続を開にする際にともなう処理負荷を負わせることが不要となる
。インターフェイスユニット202は単に、空いている、開である接続を使用す
る。インターフェイスユニット202は、フローライン520に示されるように
、サーバSにGET要求をマッピングし、GET要求を変換し、サーバSにGE
T要求を転送する。インターフェイスユニット202は、フローライン522に
示されるように、サーバSからの応答を受信し、フローライン524に示される
ように、クライアントC2に応答を転送する。最後に、インターフェイスユニッ
ト202は、フローライン526に示されるように、クライアントC2との接続
を閉にする。前と同じように、インターフェイスユニット202は、サーバSと
の接続を閉にしない。代わりに、インターフェイスユニット202は、さらなる
データフローを供給するために接続を開に維持する。
【0034】 フローライン524に示されるように、インターフェイスユニット202が結
果としてクライアントC2との接続を閉にするという多くのシナリオが存在する
。例えば、クライアントは、FIN(終了)コマンドを開始し得る。それは、ひ
とたびクライアントが要求したデータの全てを受信したときに生じる。クライア
ントはまた、RST(リセット)コマンドを開始し得る。インターフェイスユニ
ット202とクライアントとの間の接続を閉にすることに加えて、RSTコマン
ドにより、サーバ側の接続を良好な順序に維持するために実行される多くのハウ
スキーピング動作が、結果として得られる。特に、TCPプロトコルは、RST
コマンドが正しいSEQ(シーケンス)番号を有し、それにより、サーバが、セ
グメントを受取るということを保証する。しかしながら、RSTコマンドは、正
しいACK(承認)番号を有することが保証されない。このシナリオを処理する
ために、インターフェイスユニット202は、サーバによって送信されたデータ
のバイトおよびクライアントによって承認されたバイトを追跡する。クライアン
トが、サーバによるデータの全てをまだ承認していなかった場合、インターフェ
イスユニット202は、承認されていないバイトを計算し、サーバにACKを送
信する。その上、サーバ側のPCBは、任意の処理待ちのサーバデータトランス
ファを排出することを可能にするタイムアウトキューに配置され得る。
【0035】 さらに、図5には示されていないが、サーバはまた、サーバ自身とインターフ
ェイスユニット202との間の接続を閉にし得る。サーバは、インターフェイス
ユニット202にFINコマンドを送信する。このケースにおいて、サーバとイ
ンターフェイスユニット202との間の接続、およびインターフェイスユニット
202とクライアントとの間の接続の両方は、閉にされる。
【0036】 本発明の別の局面は、サーバが接続を閉じる機会を最小限にすることにより、
サーバからの接続処理の負荷の除去を最大限にすることである。以下の3つの場
合がある。
【0037】 (1)プロトコルバージョンHTTP/1.1が使用される場合。この場合、
明示的なKeep−Aliveヘッダは必要とされない。デフォルトにより、サ
ーバは接続を開いたままにし、接続を閉じるのはクライアント次第である。本発
明は、サーバ側接続を再利用することにより、サーバの負荷を取り除く。
【0038】 (2)プロトコルバージョンHTTP/1.0が使用され、かつ、クライアン
トにより“Connection:Keep−Alive”ヘッダが提供される
場合。この場合、サーバは接続を開いたままにし、接続を閉じるのはクライアン
ト次第である。本発明は、サーバ側接続を再利用することにより、サーバの負荷
を取り除く。
【0039】 (3)プロトコルバージョンHTTP/1.0が使用され、かつ、クライアン
トにより“Connection:Keep−Alive”ヘッダが提供されな
い場合。この場合、サーバは、通常(本発明を使用せずに)、1つのGET要求
を完全に満たした後、接続を閉じる。サーバが各要求後に接続を閉じる場合、サ
ーバは、そのインターフェイスユニット202に、サーバ側接続を再利用する機
会を与えない。インターネットの多くが、依然として“Connection:
Keep−Alive”なしでHTTP/1.0を使用していることがわかる。
従って、本発明は、この特定の、かつ重要な場合に、サーバ側接続の再使用を可
能にする。インターフェイスユニット202は、GETパケットを調べて、この
状況を検出する。この場合が検出されると、インターフェイスユニット202は
、GETパケットに“Connection:Keep−Alive”を挿入す
る。これは、クライアントには見えない状態で行われるため、インターフェイス
ユニット202は、サーバ側接続での“Bytes Added”の数を把握し
なければならない。“Bytes Added”は、GETパケットにおけるシ
ーケンス番号に影響を及ぼさない。なぜなら、シーケンス番号は、最初のバイト
のものであるからである。しかし、インターフェイスユニット202は、クライ
アントからサーバへの後続パケットのシーケンス番号に、“Bytes Add
ed”を追加しなければならない。逆に言えば、サーバは、追加バイトを承認す
るが、インターフェイスユニットは、これらのバイトが追加されたことを知らな
いクライアントに承認応答を送る前に、追加バイトを差し引かなければならない
【0040】 上記のように、接続マルチプレクシングは、シーケンス番号および承認番号を
操作することにより達成される。インターフェイスユニット202により受け取
られたセグメントのシーケンス番号および承認番号は、変更され、そして受け側
により期待される値にマップされる。クライアントには、データは、サーバから
入ってくるように見え、そしてその逆も同様である。たとえば、“Inflow
”が、インターフェイスユニット202により受け取られたセグメントを示し、
“Outflow”が対応する出力セグメントを示す場合、シーケンス番号およ
び承認番号は、以下の態様で変えられる。
【0041】 Outflowシーケンス番号=Inflowシーケンス番号−Inflow
開始シーケンス番号+Outflow開始シーケンス番号 Outflow承認番号=Inflow承認番号−Inflow開始承認番号
+Outflow開始承認番号 HTTP/1.0パケットの場合の“Connection:Keep−Ali
ve”ヘッダの追加に対処するために、インターフェイスユニット202は、接
続の適切な側、この場合はサーバ側で、“Bytes Added”を追跡する
。シーケンス番号および承認番号の式は、以下のように変えられる。
【0042】 Outflowシーケンス番号=Inflowシーケンス番号−Inflow
開始シーケンス番号+Outflow開始シーケンス番号+Outflow B
ytes Added Outflow承認番号=Inflow承認番号−Inflow開始承認番号
+Outflow開始承認番号−Inflow Bytes Added これらの式を用いて達成される変換の具体的な実施例が、以下に示される。
【0043】 図6Aおよび図6Bは、好適な実施形態に従って図5の実施例において本発明
により行われる承認番号およびシーケンス番号の変換を説明する詳細なフロー図
である。図6Aおよび図6Bにおける各フローのラベルは、T:S,A(L)の
形である。ここで、TはTCPセグメントタイプを示し、Sはシーケンス番号で
あり、Aは承認番号であり、Lは長さパラメータである。長さパラメータは、T
CPセグメントにおけるデータのバイト数を示す。図6Aのフローは、図5のフ
ロー502〜514に対応する。
【0044】 フロー602A、B、Cは、フロー502に対応し、クライアントC1とイン
ターフェイスユニット202との間の接続を開く1つの方法を示す。各フローは
、TCPセグメントを示す。TCPセグメント602Aにおいて、TCPヘッダ
のSYNフラグがセットされ、クライアントC1からの新しい接続要求を示す。
クライアントC1は、開始シーケンス番号2000および承認番号2000を確
立している。インターフェイスユニット202は、フロー602Bで示されるよ
うに、開始シーケンス番号4000を指定しかつ承認番号を2001に増加する
SYN ACKセグメントで応答する。当該分野において周知のように、ネット
ワーク内の各エンティティ(例えば、クライアント、サーバ、インターフェイス
ユニット)は、そのエンティティ自体の固有のシーケンス番号および/または承
認番号をセットする。クライアントC1は、フロー602Cで示されるように、
シーケンス番号2001を指定しかつ承認番号を4001に増加するACKセグ
メントで応答する。次いで、クライアントC1は、フロー604で示されるよう
に、49バイト長を指定するGETセグメントを送る。
【0045】 インターフェイスユニット202は、サーバSとの間に空いている開いた接続
はないと判定し、従って、フロー606Aに示されるように、開始シーケンス番
号1950を指定するSYNセグメントをサーバSに送る。サーバSは、606
Bに示されるように、開始シーケンス番号6000を指定しかつ承認番号を19
51に増加するSYN ACKセグメントで応答する。インターフェイスユニッ
ト202は、フロー606Cで示されるように、ACKセグメントで応答する。
次いで、インターフェイスユニット202は、フローライン608で示されるよ
うに、上記変換式に従ってシーケンス番号および承認番号を変更した後、クライ
アントC1からサーバSにGETセグメントを送る。
【0046】 サーバSは、フロー610で示されるように、シーケンス番号6001、承認
番号2000、および長さ999を指定する要求データで応答する。インターフ
ェイスユニット202は、RESPセグメントを受け取り、シーケンス番号およ
び承認番号を変換し、そしてフローライン612Aで示されるように、RESP
セグメントをクライアントC1に送る。クライアントC1は、フロー612Bで
示されるように、RESP ACKセグメントで応答する。インターフェイスユ
ニット202は、承認番号およびシーケンス番号を変更し、そしてフロー612
Cに示されるように、RESP ACKセグメントをサーバSに送る。
【0047】 次いで、フロー614A、B、C、Dに示されるように、クライアントC1と
インターフェイスユニット202との間の接続が閉じられる。ただし、インター
フェイスユニット202がサーバSとの接続を維持することに注目することが重
要である。
【0048】 図6Bは、図6Aの実施例の続きである。図6Bのフローは、図5のフロー5
16〜526に対応する。フロー616A、B、Cはフロー516に対応し、ク
ライアントC2とインターフェイスユニット202との間の接続を開く1つの方
法を示す。TCPセグメント618Aにおいて、TCPヘッダのSYNフラグが
セットされ、クライアントC2からの新しい接続要求を示す。クライアントC2
は、開始シーケンス番号999および承認番号999を確立している。インター
フェイスユニット202は、開始シーケンス番号4999を指定しかつ承認番号
を1000に増加するSYN ACKセグメントで応答する。クライアントC2
は、フロー616Cで示されるように、シーケンス番号1000を指定しかつ承
認番号を5000に増加するACKセグメントで応答する。次いで、クライアン
トC2は、フロー618で示されるように、50バイト長を指定するGETセグ
メントを送る。
【0049】 インターフェイスユニット202は、サーバSとの間に空いている開いた接続
があると判定し、従って、インターフェイスユニット202は、その接続を使用
する。サーバSとの間に新しい接続を開く必要はない。インターフェイスユニッ
ト202が、サーバSとの間の事前に開かれていた接続を使用しているため、イ
ンターフェイスユニット202は、その接続での以前の交換中に確立されたシー
ケンス番号および承認番号に従ってGETセグメントのシーケンス番号および承
認番号を変換する。本実施例では、インターフェイスユニット202は、フロー
606で確立された開始シーケンス番号および承認番号を使用し、最新フローで
あるフロー612Cで使用するシーケンス番号および承認番号で再開する。従っ
て、インターフェイスユニット202は、フローライン620で示されるように
、シーケンス番号2000、承認番号7000、および長さ50を用いて、GE
Tセグメントを、クライアントC2からサーバSに送る。
【0050】 サーバSは、フロー622で示されるように、シーケンス番号7000、承認
番号2050、および長さ500を指定する要求データで応答する。インターフ
ェイスユニット202は、RESPセグメントを受け取り、シーケンス番号およ
び承認番号を変換し、そしてフローライン624Aで示されるように、RESP
セグメントをクライアントC2に送る。クライアントC2は、フロー624Bで
示されるように、RESP ACKセグメントで応答する。インターフェイスユ
ニット202は、承認番号およびシーケンス番号を変更し、そしてフロー624
Cで示されるように、RESP ACKセグメントをサーバSに送る。
【0051】 次いで、フロー626A、B、C、Dで示されるように、クライアントC2と
インターフェイスユニット202との間の接続が閉じられる。インターフェイス
ユニット202がここでもサーバSとの接続を維持することに注目することが重
要である。
【0052】 図7は、好適な実施形態に従う本発明の接続分散の特徴の動作を示すフローチ
ャートである。この特徴によれば、インターフェイスユニット202は、複数の
サーバとの接続を維持し、そして、クライアント要求において指定されたパス名
に基づいて、クライアント要求をこれらのサーバに経路付けする。まず、ステッ
プ702に示されるように、インターフェイスユニット202は、サーバとの間
の接続を開く。次に、ステップ704に示されるように、クライアント要求に応
答して、インターフェイスユニット202は、クライアントへの接続を開き、そ
してクライアントから、パス名を用いてデータを検索する要求を受信する。ステ
ップ706に示されるように、インターフェイスユニット202は、そのパス名
により指定された内容を管理しているサーバを選択する。別の実施形態では、イ
ンターフェイスユニット202は、サーバの負荷およびサーバの状態、などのそ
の他のあらかじめ規定された方針を考慮して、適切なサーバを選択する。インタ
ーフェイスユニット202は、インターフェイスユニット202が応対している
サーバおよびサーバファームのデータベースの管理および維持を行う。とりわけ
、このデータベースの情報は、インターフェイスユニット202が入力パケット
を正しいサーバに向けることを可能にする現在使用中のポリシーおよびルールを
含む。所望のネットワーク状態およびサービスに依存して、これらのポリシーお
よびルールは、非常に迅速に変わり得る。
【0053】 次いで、ステップ708に示されるように、インターフェイスユニット202
は、要求を変換し、そして、変換された要求を、選択されたサーバに渡す。この
変換は、上で図4に関して大まかに説明されており、以下に詳細に説明される。
【0054】 ステップ710に示されるように、インターフェイスユニットは、サーバから
応答を受信する。次いで、ステップ712に示されるように、インターフェイス
ユニット202は、応答を変換し、そして変換された応答をクライアントに渡す
。ステップ708と同様に、ステップ712の変換は、以下に詳細に説明される
。最後に、ステップ714に示されるように、インターフェイスユニット202
は、クライアントとの間の接続を閉じる。
【0055】 図8は、好適な実施形態に従う本発明の接続分散の局面を説明するメッセージ
フロー図である。図8は、インターフェイスユニット202がクライアントC2
を2つのサーバS1およびS2に接続する状態を示す。この実施例では、図7の
ステップ702で示されるように、サーバS1およびS2との接続が事前に開か
れているものとする。
【0056】 まず、インターフェイスユニット202は、フロー802で示されるように、
クライアントC2により提供されたネットワークアドレス1を用いて、クライア
ントC2との間の接続を開く。一旦接続が開かれると、インターフェイスユニッ
ト202は、フローライン804で示されるように、クライアントC1から、パ
ス名/sales/forecast.htmlを指定するGET要求を受信す
る。インターフェイスユニット202とサーバS1との間の空いている接続が開
いているため、インターフェイスユニット202は、サーバS1との間に別の接
続を開かない。
【0057】 インターフェイスユニット202は、パス名を用いて、GET要求をサーバS
2にマップする。例えば、インターフェイスユニット202は、サーバファーム
の各パス名を、対応するウェブページを含むサーバにマップするテーブルを含み
得る。インターフェイスユニット202は、フローライン806で示されるよう
に、GET要求をサーバS1に送る。サーバS1は、フローライン808で示さ
れるように、要求されたウェブページで応答する。インターフェイスユニット2
02は、フローライン810で示されるように、ウェブページをクライアントC
2に送る。本発明の接続プールの特徴に従って、インターフェイスユニット20
2は、サーバS1との接続を閉じないで開いたままにし、さらなるデータフロー
を受け入れる。
【0058】 次に、フロー812に示されるように、別のGET要求がクライアントC2か
ら受け取られる。インターフェイスユニット202とクライアントC2との間の
接続が、連続するGET要求の間で閉じられるかどうかは、本実施例では重要で
はない。このGET要求が、前のGET要求と同じクライアントから出されたも
のであるかどうかも、本実施例では重要ではない。重要なのは、クライアントか
らのGET要求が、前のGET要求と同じネットワークアドレス(ネットワーク
アドレス1)に向けられているのに、前の要求とは異なるサーバ(サーバS2)
にマップされることである。本発明の接続多重化の特徴のため、このリダイレク
ションは、要求の発信元に対して透過性である。
【0059】 インターフェイスユニット202は、クライアントC2からGET要求を受信
する。GET要求は、パス名/products/new.htmlを指定する
。インターフェイスユニット202は、このパス名に対応するウェブページがサ
ーバS2上にあると判定する。従って、図8のGET要求は同じネットワークア
ドレスを指定しているが、これらのGET要求は、それぞれのパス名を用いて、
異なるサーバにマップされる。本実施例は、本発明の「接続分散」の局面を説明
する。
【0060】 インターフェイスユニット202とサーバS2との間の空いている接続がすで
に開いているため、インターフェイスユニット202が、サーバS2に、別の接
続を開く処理負荷を与えずにすむ。インターフェイスユニット202は単に、空
いている開いた接続を使用するだけである。インターフェイスユニット202は
、フローライン816で示されるように、サーバS2から応答を受け取り、フロ
ーライン818に示されるように、その応答をクライアントC2に送る。最後に
、インターフェイスユニット202は、フロー820に示されるように、クライ
アントC2との接続を閉じる。この場合も、インターフェイスユニット202は
、サーバS2との間の接続を閉じない。その代わりに、インターフェイスユニッ
ト202は、接続を開いたままにして、さらなるデータフローを受け入れる。
【0061】 図9は、好適な実施形態に従って図8の実施例において本発明により行われる
承認番号およびシーケンス番号の変換を説明する詳細なフロー図である。図9の
フローは、図8のフロー802〜820に対応する。
【0062】 フロー902A、B、Cは、フロー802に対応し、クライアントC2とイン
ターフェイスユニット202との間の接続を開く1つの方法を示す。クライアン
トC2は、開始シーケンス番号999および承認番号999を確立している。イ
ンターフェイスユニット202は、フロー902Bで示されるように、開始シー
ケンス番号4999を指定しかつ承認番号を1000に増加するSYN ACK
セグメントで応答する。クライアントC2は、フロー902Cで示されるように
、シーケンス番号1000を指定しかつ承認番号を5000に増加するACKセ
グメントで応答する。次いで、クライアントC2は、フロー904で示されるよ
うに、50バイト長を指定するGETセグメントを送る。
【0063】 サーバS1との間に空いている開いた接続があるため、インターフェイスユニ
ット202は、新しい接続を開くのではなく、その接続を使用し、そして、その
接続を介して伝送された前のセグメントからのシーケンス番号および承認番号を
用いてGETセグメントのシーケンス番号および承認番号を変更する。本実施例
では、それらのパラメータがそれぞれ2000および7000であるものとする
。従って、インターフェイスユニット202は、フローライン906で示される
ように、シーケンス番号2000、承認番号7000、および長さ50を用いて
、GETセグメントをサーバS1に送る。
【0064】 サーバS1は、フロー908で示されるように、シーケンス番号7000、承
認番号2050、および長さ500を指定する要求データで応答する。インター
フェイスユニット202は、RESPセグメントを受け取り、シーケンス番号お
よび承認番号を変換し、そしてフローライン910Aで示されるように、RES
PセグメントをクライアントC2に送る。クライアントC2は、フロー910B
で示されるように、RESP ACKセグメントで応答する。インターフェイス
ユニット202は、承認番号およびシーケンス番号を変更し、そしてフロー91
0Cで示されるように、RESP ACKセグメントをサーバS1に送る。
【0065】 次いで、インターフェイスユニット202は、クライアントC2から、50バ
イト長を指定する別のGETセグメントを受け取る。上記のように、インターフ
ェイスユニット202は、この要求をサーバS2にマップする。そのサーバとの
間の空いている接続がすでに開いているため、インターフェイスユニット202
は、その接続を使用し、そして、その接続を介して伝送された前のセグメントか
らのパラメータを用いてGETセグメントのシーケンスパラメータおよび承認パ
ラメータを変換する。本実施例では、それらのパラメータがそれぞれ3000お
よび4000であるものとする。従って、インターフェイスユニット202は、
フローライン914で示されるように、シーケンス番号3000、承認番号40
00、および長さ50を用いて、GETセグメントをサーバS2に送る。
【0066】 サーバS2は、フロー916で示されるように、シーケンス番号4000、承
認番号3050、および長さ400を指定する要求データで応答する。インター
フェイスユニット202は、RESPセグメントを受け取り、シーケンス番号お
よび承認番号を変換し、そしてフローライン918Aで示されるように、RES
PセグメントをクライアントC2に送る。クライアントC2は、フロー918B
で示されるように、RESP ACKセグメントで応答する。インターフェイス
ユニット202は、承認番号およびシーケンス番号を変更し、そしてフロー91
8Cで示されるように、RESP ACKセグメントをサーバS2に送る。最後
に、フロー920A、B、C、Dに示されるように、インターフェイスユニット
202とクライアントC2との間の接続が閉じられる。
【0067】 本発明は、ハードウェア、ソフトウェア、またはその組み合わせを用いて実現
され得るとともに、コンピュータシステムまたはその他の処理システムにおいて
実現され得る。実際に、1つの実施形態では、本発明は、本明細書に記載される
機能を実行することができる1つ以上のコンピュータシステムに関する。例示的
なコンピュータシステム1000が、図10に示される。コンピュータシステム
1000は、プロセッサ1004などの1つ以上のプロセッサを含む。プロセッ
サ1004は、通信バス1006に接続される。この例示的なコンピュータシス
テムに関して、様々なソフトウェアの実施形態が説明される。本明細書を読めば
、その他のコンピュータシステムおよび/またはコンピュータアーキテクチャを
用いて本発明を実現する方法が、関連分野の当業者に明らかになる。
【0068】 コンピュータシステム1000はまた、メインメモリ1008、好ましくはラ
ンダムアクセスメモリ(RAM)を含み、二次メモリ1010も含み得る。二次
メモリ1010は、例えば、ハードディスクドライブ1012および/またはリ
ムーバブル格納ドライブ1014を含み得る。リムーバブル格納ドライブ101
4は、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディ
スクドライブなどを表す。リムーバブル格納ドライブ1014は、周知の態様で
リムーバブル格納ユニット1018からの読み出しおよび/またはリムーバブル
格納ユニット1018への書き込みを行う。リムーバブル格納ユニット1018
は、リムーバブル格納ドライブ1014により読み出しおよび書き込みが行われ
る、フロッピー(登録商標)ディスク、磁気テープ、光ディスクなどを表す。リ
ムーバブル格納ユニット1018は、コンピュータソフトウェアおよび/または
データを格納している、コンピュータで使用可能な記憶媒体を含むことが認識さ
れる。
【0069】 別の実施形態では、二次メモリ1010は、コンピュータプログラムまたはそ
の他の命令がコンピュータシステム1000にロードされることを可能にするた
めのその他の同様の手段を含み得る。そのような手段は、例えば、リムーバブル
格納ユニット1022およびインターフェイス1020を含み得る。そのような
ものの例は、プログラムカートリッジおよびカートリッジインターフェイス(ビ
デオゲームデバイスにみられるものなど)、リムーバブルメモリチップ(EPR
OMまたはPROMなど)および関連ソケット、ならびに、ソフトウェアおよび
データがリムーバブル格納ユニット1018からコンピュータシステム1000
に転送されることを可能にするその他のリムーバブル格納ユニット1022およ
びインターフェイス1020、を含み得る。
【0070】 コンピュータシステム1000はまた、通信インターフェイス1024を含み
得る。通信インターフェイス1024は、ソフトウェアおよびデータが、コンピ
ュータシステム1000と外部デバイスとの間で転送されることを可能にする。
通信インターフェイス1024の例は、モデム、ネットワークインターフェイス
(イーサネット(登録商標)カードなど)、通信ポート、PCMCIAスロット
およびカード、などを含み得る。通信インターフェイス1024を介して転送さ
れたソフトウェアおよびデータは信号の形態であり、これらの信号は、電子、電
磁、光学、または、通信インターフェイス1024により受け取られることが可
能なその他の信号であり得る。これらの信号1026は、チャネル1028を介
して通信インターフェイスに提供される。このチャネル1028は、信号102
6を運び、ワイヤまたはケーブル、光ファイバ、電話回線、セルラーホンリンク
、RFリンク、およびその他の通信チャネルを用いて実現され得る。
【0071】 本明細書において、「コンピュータプログラム媒体」および「コンピュータで
使用可能な媒体」という用語は、リムーバブル格納デバイス1018、ハードデ
ィスクドライブ1012に取り付けられたハードディスク、および信号1026
、などの媒体を総称するために用いられる。これらのコンピュータプログラムプ
ロダクトは、コンピュータシステム1000にソフトウェアを提供するための手
段である。
【0072】 コンピュータプログラム(コンピュータ制御論理とも呼ばれる)は、メインメ
モリおよび/または二次メモリ1010に格納される。コンピュータプログラム
はまた、通信インターフェイス1024を介して受け取られ得る。そのようなコ
ンピュータプログラムは、実行されると、コンピュータシステム1000が本明
細書において説明される本発明の特徴を実行することを可能にする。特に、コン
ピュータプログラムは、実行されると、プロセッサ1004が本発明の特徴を実
行することを可能にする。従って、そのようなコンピュータプログラムは、コン
ピュータシステム1000のコントローラを表す。
【0073】 ソフトウェアを用いて本発明が実現される実施形態では、ソフトウェアは、コ
ンピュータプログラムプロダクトに格納され得、そして、リムーバブル格納ドラ
イブ1014、ハードドライブ1012、または通信インターフェイス1024
を用いて、コンピュータシステム1000にロードされ得る。制御論理(ソフト
ウェア)は、プロセッサ1004により実行されると、プロセッサ1004に、
本明細書に記載される本発明の機能を実行させる。
【0074】 別の実施形態では、本発明は、例えば、特定用途向け集積回路(ASIC)な
どのハードウェアコンポーネントを用いて、主としてハードウェアにおいて実現
される。本明細書に記載された機能を実行するようにハードウェアステートマシ
ンを実現することは、関連分野の当業者に明らかである。さらに他の実施形態で
は、本発明は、ハードウェアおよびソフトウェアの両方の組み合わせを用いて実
現される。
【0075】 本発明は、サーバから接続処理オーバヘッドの負担を取り除く目的で、ファー
ムのサーバに接続されるインターフェイスユニット202などのインターフェイ
スユニット内で実現される場合について具体的に説明されている。しかし、本発
明はまた、クライアントとサーバとの間のネットワーク接続パスにあるその他の
種類のデバイス内で適用され得る。ネットワークトラフィックがそのようなデバ
イスを通過するとき、それらのデバイスはすべて、本発明を適用して接続処理の
負荷を取り除く機会を有する。そのようなデバイスのいくつかの例としては、以
下のものがある。
【0076】 −(局所的または地域分散型の)サーバファームのサーバの組の間でクライア
ントネットワーク接続を分配する負荷バランサ。本発明は、負荷バランシング機
能と容易に組み合わされ得る。
【0077】 −ネットワークトラフィックをモニタするとともに、パケットフローを計るバ
ンド幅マネージャ。これらのデバイスはまた、本発明を使用し得る。
【0078】 −ファイアウォールは、パケットをモニタし、そして、許可されたパケットだ
けが通過することを可能にする。本発明は、ファイアウォール内で追加の特徴を
提供するために用いられ得る。
【0079】 −ルータおよびスイッチはまた、ネットワークトラフィックのパスにある。産
業トレンドは、追加の機能(負荷バランシング、バンド幅管理、およびファイア
ウォール機能など)を、これらのデバイス内に組み入れることである。従って、
本発明は、ルータに容易に組み込まれ得る。
【0080】 上記デバイスの各々への本発明の具体的な組み込みは、実現例に固有のもので
ある。
【0081】 本発明はまた、ネットワーク接続のエンドポイントであるコンピュータシステ
ム内で適用され得る。この場合、本発明を実現するためにアドオンカードが使用
され得、従って、アドオンカードは、コンピュータシステム内の主要な処理エレ
メントの負荷を取り除き得る。
【0082】 (結論) 以上の好適な実施形態の説明は、任意の当業者が本発明を作製または使用する
ことを可能にするために提供される。これらの実施形態の様々な改変例が当業者
に容易に明らかとなり、本明細書において規定された一般原理は、発明力を用い
ずに、その他の実施形態に適用され得る。従って、本発明は、本明細書に示され
た実施形態に限定されるものではなく、本発明には、本明細書に開示された原理
および新規な特徴と一致する最も広い範囲が与えられるものとする。
【図面の簡単な説明】
【図1】 インターネットに接続された複数のクライアントおよびサーバを示すネットワ
ークブロック図である。
【図2】 本発明の好適な実施形態に従うインターフェイスユニットについてのネットワ
ークコンテクストの図である。
【図3】 好適な実施形態に従う本発明の接続プーリング局面の動作を示すフローチャー
トである。
【図4】 接続マルチプレクシングを達成するために、クライアントおよびサーバの要求
を変換する際の、本発明の動作を示すフローチャートである。
【図5】 好適な実施形態に従う本発明の接続プーリング局面を示すメッセージフロー図
である。
【図6A】 図5の例において、好適な実施形態に従う本発明によって実施される承認番号
およびシーケンス番号の変換を示す詳細なフロー図である。
【図6B】 図5の例において、好適な実施形態に従う本発明によって実施される承認番号
およびシーケンス番号の変換を示す詳細なフロー図である。
【図7】 好適な実施形態に従う本発明の接続分散特徴の動作を示すフローチャートであ
る。
【図8】 好適な実施形態に従う本発明の接続分散局面を示すメッセージフロー図である
【図9】 図8の例において、好適な実施形態に従う本発明によって実施される承認番号
およびシーケンス番号の変換を示す詳細なフロー図である。
【図10】 本発明が実行され得るコンピュータシステムの例を示す。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW (72)発明者 セティア, ディーピンダー エス. アメリカ合衆国 カリフォルニア 95136, サン ノゼ, マウントキャッスル ウ ェイ, 4289 (72)発明者 ソニ, アジャイ ブイ. アメリカ合衆国 カリフォルニア 94086, サニーベイル, ナンバー5, サン コンラド テラス 612 Fターム(参考) 5B045 BB11 GG02 GG06 5B089 GA11 GB01 GB09 HA10 JA11 KA06 KB10 KC23 5K030 HC01 HD03 JA01 LB02 LB03 LE02 LE03

Claims (38)

    【特許請求の範囲】
  1. 【請求項1】 クライアントとインターフェイスユニットとの間の接続を開
    にするための手段と、 該インターフェイスユニットとサーバとの間で開である空いている接続がない
    場合、該インターフェイスユニットと該サーバとの間の接続を開にするための手
    段と、 該クライアントが、該接続を経由して該サーバ上の情報にアクセスすることを
    可能にするための手段と、 該インターフェイスユニットと該サーバとの間の該接続を開に維持する一方で
    、該クライアントと該インターフェイスユニットとの間の該接続を閉にするため
    の手段と、 を備える、装置。
  2. 【請求項2】 さらなるクライアントと前記インターフェイスユニットとの
    間の接続を開にするための手段と、 該さらなるクライアントと該インターフェイスユニットとの間の該接続、およ
    び該インターフェイスユニットと前記サーバとの間の前記接続を経由して、該さ
    らなるクライアントが、該サーバ上の情報にアクセスすることを可能にするため
    の手段と、 をさらに備える、請求項1に記載の装置。
  3. 【請求項3】 前記クライアントと前記インターフェイスユニットとの間の
    前記接続を開にするための前記手段が、 該インターフェイスユニットに対応するネットワークアドレスを使用して接続
    を開にする要求を受信するための手段と、 前記サーバに対応するパス名を使用してデータを検索する要求を受信するため
    の手段と、 を備える、請求項1に記載の装置。
  4. 【請求項4】 前記クライアントと前記インターフェイスユニットとの間の
    前記接続を開にするための前記手段が、前記ネットワークアドレスの機能として
    前記サーバを選択するための手段を備える、請求項3に記載の装置。
  5. 【請求項5】 前記可能にするための手段が、前記パス名を使用して前記サ
    ーバから前記データを検索するための手段を備える、請求項4に記載の装置。
  6. 【請求項6】 前記可能にするための手段が、前記データを前記クライアン
    トへ送信するための手段をさらに備える、請求項5に記載の装置。
  7. 【請求項7】 データを検索する要求を受信するための前記手段が、シーケ
    ンスおよび承認パラメータを有するGETセグメントを受信するための手段を備
    え、 該検索するための手段が、 改変されたGETセグメントを生成するように該パラメータを改変するための
    手段と、 前記サーバに該改変されたGETセグメントを送信するための手段と、 を備える、請求項5に記載の装置。
  8. 【請求項8】 前記検索するための手段が、 “Connection:Keep−Alive”ヘッダを前記改変されたG
    ETセグメントへ挿入するための手段と、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、前記サーバから受
    信された前記承認パラメータから引くための手段と、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、該改変されたGE
    Tセグメントに続くパケットを該サーバへ送信する前に、前記シーケンスの数に
    加えるための手段と、 をさらに備える、請求項7に記載の装置。
  9. 【請求項9】 前記検索するための手段が、 さらなるシーケンスおよび承認パラメータを有するRESPセグメントを受信
    するための手段と、 改変されたRESPセグメントを生成するように該さらなるパラメータを改変
    するための手段と、 該改変されたRESPセグメントを前記クライアントへ送信するための手段と
    、 をさらに備える、請求項7に記載の装置。
  10. 【請求項10】 データを検索する要求を受信するための前記手段が、シー
    ケンスおよび承認パラメータを有する第1のGETセグメントを受信するための
    手段を備え、 前記検索するための手段が、 改変されたパラメータを生成するように該パラメータを改変するための手段と
    、 第2のGETセグメントを前記サーバへ送信するための手段であって、該第2
    のGETセグメントは該改変されたパラメータを有する、手段と、 を備える、請求項5に記載の装置。
  11. 【請求項11】 前記検索するための手段が、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するための手段と、 さらなる改変されたパラメータを生成するように該さらなるパラメータを改変
    するための手段と、 第2のRESPセグメントを前記クライアントへ送信するための手段であって
    、該第2のRESPセグメントは該さらなる改変されたパラメータを有する、手
    段と、 をさらに備える、請求項7に記載の装置。
  12. 【請求項12】 ネットワークアドレスおよびパス名を使用してデータを検
    索する要求をクライアントから受信するための手段と、 該パス名、サーバの負荷、および該サーバの状態のうちの少なくとも一つを含
    む事前に定義された方針の機能として、該データを格納する該サーバを選択する
    ための手段と、 すでに開にされた接続を使用して該サーバから該データを検索するための手段
    と、 該データを該クライアントへ送信するための手段と、 を備える、装置。
  13. 【請求項13】 前記受信するための手段が、 前記ネットワークアドレスを使用してホストへの接続を開にする要求を前記ク
    ライアントから受信するための手段と、 前記パス名を使用してデータを検索する要求を該クライアントから受信するた
    めの手段と、 を備える、請求項12に記載の装置。
  14. 【請求項14】 前記ネットワークアドレスおよびさらなるパス名を使用し
    てさらなるデータを検索するさらなる要求を受信するための手段と、 該さらなるパス名の機能としてさらなるサーバを選択するための手段と、 該さらなるサーバから該さらなるデータを検索するための手段と、 をさらに備える、請求項12に記載の装置。
  15. 【請求項15】 データを検索する要求を受信するための前記手段が、シー
    ケンスおよび承認パラメータを有する第1のGETセグメントを受信するための
    手段を備え、 該検索するための手段が、 改変されたGETセグメントを生成するように該パラメータを改変するための
    手段と、 該改変されたGETセグメントを前記サーバへ送信するための手段と、 を備える、請求項12に記載の装置。
  16. 【請求項16】 前記検索するための手段が、 “Connection:Keep−Alive”ヘッダを前記改変されたG
    ETセグメントへ挿入するための手段と、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、前記サーバから受
    信された前記承認パラメータから引くための手段と、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、該改変されたGE
    Tセグメントに続くパケットを該サーバへ送信する前に、前記シーケンスの数に
    加えるための手段と、 をさらに備える、請求項15に記載の装置。
  17. 【請求項17】 前記検索するための手段が、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するための手段と、 改変されたRESPセグメントを生成するように該さらなるパラメータを改変
    するための手段と、 該改変されたRESPセグメントを前記クライアントへ送信するための手段と
    、 をさらに備える、請求項15に記載の装置。
  18. 【請求項18】 データを検索する要求を受信するための前記手段が、シー
    ケンスおよび承認パラメータを有する第1のGETセグメントを受信するための
    手段を備え、 該検索するための手段が、 改変されたパラメータを生成するように該パラメータを改変するための手段と
    、 第2のGETセグメントを前記サーバへ送信するための手段であって、該第2
    のGETセグメントは該改変されたパラメータを有する、手段と、 を備える、請求項12に記載の装置。
  19. 【請求項19】 前記検索するための手段が、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するための手段と、 さらなる改変されたパラメータを生成するように該さらなるパラメータを改変
    するための手段と、 第2のRESPセグメントを前記クライアントへ送信するための手段であって
    、該第2のRESPセグメントは該さらなる改変されたパラメータを有する、手
    段と、 をさらに備える、請求項15に記載の装置。
  20. 【請求項20】 クライアントとインターフェイスユニットとの間の接続を
    開にするステップと、 該インターフェイスユニットとサーバとの間で開である空いている接続がない
    場合、該インターフェイスユニットと該サーバとの間の接続を開にするステップ
    と、 該クライアントが、該接続を経由して該サーバ上の情報にアクセスすることを
    可能にするステップと、 該インターフェイスユニットと該サーバとの間の該接続を開に維持する一方で
    、該クライアントと該インターフェイスユニットとの間の該接続を閉にするステ
    ップと、 を包含する、方法。
  21. 【請求項21】 さらなるクライアントと前記インターフェイスユニットと
    の間の接続を開にするステップと、 該さらなるクライアントと該インターフェイスユニットとの間の該接続、およ
    び該インターフェイスユニットと前記サーバとの間の前記接続を経由して、該さ
    らなるクライアントが、該サーバ上の情報にアクセスすることを可能にするステ
    ップと、 をさらに包含する、請求項20に記載の方法。
  22. 【請求項22】 前記クライアントと前記インターフェイスユニットとの間
    の前記接続を開にする前記ステップが、 該インターフェイスユニットに対応するネットワークアドレスを使用して接続
    を開にする要求を受信するステップと、 前記サーバに対応するパス名を使用してデータを検索する要求を受信するステ
    ップと、 を包含する、請求項20に記載の方法。
  23. 【請求項23】 前記クライアントと前記インターフェイスユニットとの間
    の前記接続を開にする前記ステップが、前記ネットワークアドレスの機能として
    前記サーバを選択するステップを包含する、請求項22に記載の方法。
  24. 【請求項24】 前記可能にするステップが、前記パス名を使用して前記サ
    ーバから前記データを検索するステップを包含する、請求項23に記載の方法。
  25. 【請求項25】 前記可能にするステップが、前記データを前記クライアン
    トへ送信するステップをさらに備える、請求項24に記載の方法。
  26. 【請求項26】 データを検索する要求を受信する前記ステップが、シーケ
    ンスおよび承認パラメータを有するGETセグメントを受信するステップを包含
    し、 該検索するステップが、 改変されたGETセグメントを生成するように該パラメータを改変するステッ
    プと、 前記サーバに該改変されたGETセグメントを送信するステップと、 を包含する、請求項24に記載の方法。
  27. 【請求項27】 前記検索するステップが、 “Connection:Keep−Alive”ヘッダを前記改変されたG
    ETセグメントへ挿入するステップと、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、前記サーバから受
    信された前記承認パラメータから引くステップと、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、該改変されたGE
    Tセグメントに続くパケットを該サーバへ送信する前に、前記シーケンスの数に
    加えるステップと、 をさらに包含する、請求項26に記載の方法。
  28. 【請求項28】 前記検索するステップが、 さらなるシーケンスおよび承認パラメータを有するRESPセグメントを受信
    するステップと、 改変されたRESPセグメントを生成するように該さらなるパラメータを改変
    するステップと、 該改変されたRESPセグメントを前記クライアントへ送信するステップと、
    をさらに包含する、請求項26に記載の方法。
  29. 【請求項29】 データを検索する要求を受信する前記ステップが、シーケ
    ンスおよび承認パラメータを有する第1のGETセグメントを受信するステップ
    を包含し、 該検索するステップが、 改変されたパラメータを生成するように該パラメータを改変するステップと、 第2のGETセグメントを前記サーバへ送信するステップであって、該第2の
    GETセグメントは該改変されたパラメータを有する、ステップと、 を包含する、請求項24に記載の方法。
  30. 【請求項30】 前記検索するステップが、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するステップと、 さらなる改変されたパラメータを生成するように該さらなるパラメータを改変
    するステップと、 第2のRESPセグメントを前記クライアントへ送信するステップであって、
    該第2のRESPセグメントは該さらなる改変されたパラメータを有する、ステ
    ップと、 をさらに包含する、請求項26に記載の方法。
  31. 【請求項31】 ネットワークアドレスおよびパス名を使用してデータを検
    索する要求をクライアントから受信するステップと、 該パス名、サーバの負荷、および該サーバの状態のうちの少なくとも一つを含
    む事前に定義された方針の機能として、該データを格納する該サーバを選択する
    ステップと、 すでに開にされた接続を使用して該サーバから該データを検索するステップと
    、 該データを該クライアントへ送信するステップと、 を包含する、方法。
  32. 【請求項32】 前記受信するステップが、 前記ネットワークアドレスを使用してホストへの接続を開にする要求を前記ク
    ライアントから受信するステップと、 前記パス名を使用してデータを検索する要求を該クライアントから受信するス
    テップと、 を包含する、請求項31に記載の方法。
  33. 【請求項33】 前記ネットワークアドレスおよびさらなるパス名を使用し
    てさらなるデータを検索するさらなる要求を受信するステップと、 該さらなるパス名の機能としてさらなるサーバを選択するステップと、 該さらなるサーバから該さらなるデータを検索するステップと、 をさらに包含する、請求項31に記載の方法。
  34. 【請求項34】 データを検索する要求を受信する前記ステップが、シーケ
    ンスおよび承認パラメータを有する第1のGETセグメントを受信するステップ
    を包含し、 該検索するステップが、 改変されたGETセグメントを生成するように該パラメータを改変するステッ
    プと、 該改変されたGETセグメントを前記サーバへ送信するステップと、 を包含する、請求項31に記載の方法。
  35. 【請求項35】 前記検索するステップが、 “Connection:Keep−Alive”ヘッダを前記改変されたG
    ETセグメントへ挿入するステップと、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、前記サーバから受
    信された前記承認パラメータから引くステップと、 該“Connection:Keep−Alive”ヘッダを該改変されたG
    ETセグメントへ挿入することにより加えられたバイト数を、該改変されたGE
    Tセグメントに続くパケットを該サーバへ送信する前に、前記シーケンスの数に
    加えるステップと、 をさらに包含する、請求項34に記載の方法。
  36. 【請求項36】 前記検索するステップが、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するステップと、 改変されたRESPセグメントを生成するように該さらなるパラメータを改変
    するステップと、 該改変されたRESPセグメントを前記クライアントへ送信するステップと、 をさらに包含する、請求項34に記載の方法。
  37. 【請求項37】 データを検索する要求を受信する前記ステップが、シーケ
    ンスおよび承認パラメータを有する第1のGETセグメントを受信するステップ
    を包含し、 該検索するステップが、 改変されたパラメータを生成するように該パラメータを改変するステップと、 第2のGETセグメントを前記サーバへ送信するステップであって、該第2の
    GETセグメントは該改変されたパラメータを有する、ステップと、 を包含する、請求項31に記載の方法。
  38. 【請求項38】 前記検索するステップが、 さらなるシーケンスおよび承認パラメータを有する第1のRESPセグメント
    を受信するステップと、 さらなる改変されたパラメータを生成するように該さらなるパラメータを改変
    するステップと、 第2のRESPセグメントを前記クライアントへ送信するステップであって、
    該第2のRESPセグメントは該さらなる改変されたパラメータを有する、ステ
    ップと、 をさらに包含する、請求項34に記載の方法。
JP2000581549A 1998-11-10 1999-11-10 インターネットクライアントサーバマルチプレクサ Expired - Lifetime JP4312962B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/188,709 US6411986B1 (en) 1998-11-10 1998-11-10 Internet client-server multiplexer
US09/188,709 1998-11-10
PCT/US1999/026442 WO2000028433A2 (en) 1998-11-10 1999-11-10 Internet client-server multiplexer

Publications (3)

Publication Number Publication Date
JP2002529856A true JP2002529856A (ja) 2002-09-10
JP2002529856A5 JP2002529856A5 (ja) 2007-01-18
JP4312962B2 JP4312962B2 (ja) 2009-08-12

Family

ID=22694205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000581549A Expired - Lifetime JP4312962B2 (ja) 1998-11-10 1999-11-10 インターネットクライアントサーバマルチプレクサ

Country Status (6)

Country Link
US (2) US6411986B1 (ja)
EP (4) EP1129412B1 (ja)
JP (1) JP4312962B2 (ja)
KR (1) KR100723320B1 (ja)
AU (1) AU1613300A (ja)
WO (1) WO2000028433A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226127A (ja) * 2007-03-15 2008-09-25 Toshiba Corp 分散処理におけるメッセージングの高信頼化装置及び高信頼化方法
JP2012027925A (ja) * 2004-12-30 2012-02-09 Citrix Systems Inc クライアント側の加速技術を提供するシステムおよび方法

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6789119B1 (en) * 1999-11-24 2004-09-07 Webex Communication, Inc. Emulating a persistent connection using http
US7117263B1 (en) * 2000-02-01 2006-10-03 Hewlett-Packard Development Company, L.P. Apparatus and method for processing requests from an external queue in a TCP/IP-based application system
US6725272B1 (en) * 2000-02-18 2004-04-20 Netscaler, Inc. Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time
US6912578B1 (en) * 2000-02-25 2005-06-28 Sun Microsystems, Inc. Method and apparatus for improving utilization of a resource on a shared client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7441263B1 (en) 2000-03-23 2008-10-21 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
JP2001285400A (ja) * 2000-03-29 2001-10-12 Kddi Corp トラヒック統計情報収集方法
US6671725B1 (en) * 2000-04-18 2003-12-30 International Business Machines Corporation Server cluster interconnection using network processor
US20100042565A1 (en) * 2000-09-25 2010-02-18 Crossbeam Systems, Inc. Mezzazine in-depth data analysis facility
US20020165947A1 (en) 2000-09-25 2002-11-07 Crossbeam Systems, Inc. Network application apparatus
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US20110219035A1 (en) * 2000-09-25 2011-09-08 Yevgeny Korsunsky Database security via data flow processing
US9525696B2 (en) 2000-09-25 2016-12-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
US9800608B2 (en) 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20110213869A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Processing data flows with a data flow processor
US8010469B2 (en) 2000-09-25 2011-08-30 Crossbeam Systems, Inc. Systems and methods for processing data flows
US20110214157A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Securing a network with data flow processing
US7562147B1 (en) * 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
FR2814827B1 (fr) * 2000-10-02 2003-01-10 Amadeus Developement Company Unite de multiplexage, systeme et procede de communication dans un reseau informatique
US7055028B2 (en) * 2000-10-10 2006-05-30 Juniper Networks, Inc. HTTP multiplexor/demultiplexor system for use in secure transactions
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US7801978B1 (en) * 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US6697206B2 (en) * 2000-12-19 2004-02-24 Imation Corp. Tape edge monitoring
US6850982B1 (en) * 2000-12-19 2005-02-01 Cisco Technology, Inc. Methods and apparatus for directing a flow of data between a client and multiple servers
US8266677B2 (en) * 2000-12-20 2012-09-11 Intellisync Corporation UDP communication with a programmer interface over wireless networks
US7124189B2 (en) * 2000-12-20 2006-10-17 Intellisync Corporation Spontaneous virtual private network between portable device and enterprise network
US7340530B2 (en) * 2001-01-17 2008-03-04 International Business Machines Corporation Methods, for providing data from network secure communications in a cluster computing environment
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US20020120743A1 (en) * 2001-02-26 2002-08-29 Lior Shabtay Splicing persistent connections
JP5229109B2 (ja) * 2001-03-27 2013-07-03 富士通株式会社 パケット中継処理装置
US20020143946A1 (en) * 2001-03-28 2002-10-03 Daniel Crosson Software based internet protocol address selection method and system
JP2003006347A (ja) * 2001-06-22 2003-01-10 Denno:Kk 採点システム
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
JP2003030018A (ja) * 2001-07-13 2003-01-31 Sony Corp データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム
US7774492B2 (en) * 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7092997B1 (en) 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
FI20011651A (fi) 2001-08-15 2003-02-16 Nokia Corp Palveluklusterin kuormituksen tasapainoittaminen
US7287258B1 (en) * 2001-08-31 2007-10-23 International Business Machines Corporation Thread consistency support system and method
US7747758B2 (en) * 2001-10-29 2010-06-29 International Business Machines Corporation Dynamic port assignment
US6976085B1 (en) * 2001-11-20 2005-12-13 Cisco Technology, Inc. Methods and apparatus for inserting data into a communications session
US7720997B1 (en) * 2001-12-19 2010-05-18 Cisco Technology, Inc. Path selection system
EP1326476B1 (en) * 2002-01-08 2013-03-13 Alcatel Lucent Network, network-unit, method, and processor program product for exchanging packet signals via pooled connection
US7298746B1 (en) 2002-02-11 2007-11-20 Extreme Networks Method and system for reassembling and parsing packets in a network environment
US7447777B1 (en) * 2002-02-11 2008-11-04 Extreme Networks Switching system
US7321926B1 (en) 2002-02-11 2008-01-22 Extreme Networks Method of and system for allocating resources to resource requests
US7814204B1 (en) 2002-02-11 2010-10-12 Extreme Networks, Inc. Method of and system for analyzing the content of resource requests
US7584262B1 (en) 2002-02-11 2009-09-01 Extreme Networks Method of and system for allocating resources to resource requests based on application of persistence policies
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US7929447B2 (en) * 2002-03-05 2011-04-19 Sony Corporation Method of flow control for data transported using isochronous packets over an IEEE 1394-2000 serial bus network
US7296074B2 (en) * 2002-03-20 2007-11-13 Scientific-Atlanta, Inc. Media on demand session re-use
US7490162B1 (en) 2002-05-15 2009-02-10 F5 Networks, Inc. Method and system for forwarding messages received at a traffic manager
US7089565B2 (en) * 2002-05-23 2006-08-08 International Business Machines Corporation Software architecture for providing a connection handle association
WO2004006115A1 (en) * 2002-07-02 2004-01-15 Netscaler, Inc System, method and computer program product to avoid server overload by controlling http denial of service (dos) attacks
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7774484B1 (en) 2002-12-19 2010-08-10 F5 Networks, Inc. Method and system for managing network traffic
JP4108486B2 (ja) * 2003-01-08 2008-06-25 Necインフロンティア株式会社 Ipルータ、通信システム及びそれに用いる帯域設定方法並びにそのプログラム
JP4173517B2 (ja) * 2003-03-05 2008-10-29 インテリシンク コーポレイション コンピューティング・ネットワークとリモート装置との間のバーチャル・プライベート・ネットワーク
WO2004107131A2 (en) 2003-05-28 2004-12-09 Caymas Systems, Inc. Policy based network address translation
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8285881B2 (en) * 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8041821B2 (en) * 2003-11-26 2011-10-18 International Business Machines Corporation Connection pool management
US8572249B2 (en) * 2003-12-10 2013-10-29 Aventail Llc Network appliance for balancing load and platform services
US20100211626A1 (en) * 2004-01-12 2010-08-19 Foundry Networks, Inc. Method and apparatus for maintaining longer persistent connections
GB0410151D0 (en) * 2004-05-07 2004-06-09 Zeus Technology Ltd Load balancing & traffic management
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
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
KR20070058445A (ko) * 2004-07-02 2007-06-08 스트라스바흐, 인코포레이티드 웨이퍼 처리 방법 및 시스템
US8046830B2 (en) 2004-07-23 2011-10-25 Citrix Systems, Inc. Systems and methods for network disruption shielding techniques
AU2005266945A1 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. A method and systems for securing remote access to private networks
US8224966B2 (en) * 2004-08-24 2012-07-17 Cisco Technology, Inc. Reproxying an unproxied connection
US7657940B2 (en) * 2004-10-28 2010-02-02 Cisco Technology, Inc. System for SSL re-encryption after load balance
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
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
US7581005B2 (en) * 2005-01-20 2009-08-25 Citrix Systems, Inc. Systems and methods for preserving transport layer protocol options
US8077632B2 (en) * 2005-01-20 2011-12-13 Citrix Systems, Inc. Automatic LAN/WAN port detection
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
US9118717B2 (en) * 2005-02-18 2015-08-25 Cisco Technology, Inc. Delayed network protocol proxy for packet inspection in a network
US20060212521A1 (en) * 2005-03-17 2006-09-21 Nadeem Malik Asynchronous transactions action buttons over communication mediums
US8418233B1 (en) 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
CA2614364C (en) 2005-08-11 2016-09-27 Contextweb, Inc. Method and system for placement and pricing of internet-based advertisements or services
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
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
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
US20090012903A1 (en) * 2006-01-26 2009-01-08 Contextweb, Inc. Online exchange for internet ad media
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US8108525B2 (en) * 2006-08-03 2012-01-31 Citrix Systems, Inc. Systems and methods for managing a plurality of user sessions in a virtual private network environment
KR100837434B1 (ko) * 2006-09-29 2008-06-12 삼성전자주식회사 클라이언트와 서버 간의 인터페이스를 수행하는 매개장치및 그의 인터페이스방법
US7664857B2 (en) * 2007-01-26 2010-02-16 Citrix Systems, Inc. Systems and methods of using an IP ID field for automatic WAN/LAN detection
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US20080273472A1 (en) * 2007-05-03 2008-11-06 Adrian Bashford Ethernet resource management
US8073046B2 (en) * 2007-06-14 2011-12-06 Zoran Corporation Fast training equalization of a signal by using adaptive-iterative algorithm with main path phase correction
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
AU2009274007A1 (en) * 2008-07-22 2011-06-23 Contextweb, Inc. New open insertion order system to interface with an exchange for internet ad media
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US7958247B2 (en) * 2008-10-14 2011-06-07 Hewlett-Packard Development Company, L.P. HTTP push to simulate server-initiated sessions
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8875220B2 (en) * 2010-07-01 2014-10-28 Raytheom Company Proxy-based network access protection
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8880666B2 (en) * 2010-10-29 2014-11-04 At&T Intellectual Property I, L.P. Method, policy request router, and machine-readable hardware storage device to select a policy server based on a network condition to receive policy requests for a duration
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9680925B2 (en) 2012-01-09 2017-06-13 At&T Intellectual Property I, L. P. Methods and apparatus to route message traffic using tiered affinity-based message routing
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
WO2013163648A2 (en) 2012-04-27 2013-10-31 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
WO2015164079A1 (en) * 2014-04-25 2015-10-29 Cisco Technology, Inc. Managing sequence values with added headers in computing devices
US9848067B2 (en) * 2014-04-25 2017-12-19 Cisco Technology, Inc. Managing sequence values with added headers in computing devices
US9678910B2 (en) 2014-04-25 2017-06-13 Liqid Inc. Power handling in a scalable storage system
US10467166B2 (en) 2014-04-25 2019-11-05 Liqid Inc. Stacked-device peripheral storage card
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US9645902B2 (en) 2014-06-23 2017-05-09 Liqid Inc. Modular switched fabric for data storage systems
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US9653124B2 (en) 2014-09-04 2017-05-16 Liqid Inc. Dual-sided rackmount storage assembly
US10362107B2 (en) 2014-09-04 2019-07-23 Liqid Inc. Synchronization of storage transactions in clustered storage systems
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US10389652B2 (en) 2014-12-19 2019-08-20 International Business Machines Corporation Connection pool management
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10198183B2 (en) 2015-02-06 2019-02-05 Liqid Inc. Tunneling of storage operations between storage nodes
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10108422B2 (en) 2015-04-28 2018-10-23 Liqid Inc. Multi-thread network stack buffering of data frames
US10019388B2 (en) 2015-04-28 2018-07-10 Liqid Inc. Enhanced initialization for data storage assemblies
US10191691B2 (en) 2015-04-28 2019-01-29 Liqid Inc. Front-end quality of service differentiation in storage system operations
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US20170085500A1 (en) * 2015-09-18 2017-03-23 Pluribus Networks, Inc. Streamlined processing in a network switch of network packets in a spliced connection
US20170118293A1 (en) * 2015-10-26 2017-04-27 Trilliant Networks, Inc. Method and system for efficient task management
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies 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
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10255215B2 (en) 2016-01-29 2019-04-09 Liqid Inc. Enhanced PCIe storage device form factors
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US11880326B2 (en) 2016-08-12 2024-01-23 Liqid Inc. Emulated telemetry interfaces for computing units
US20180046338A1 (en) 2016-08-12 2018-02-15 Liqid Inc. Disaggregated Fabric-Switched Computing User Interfaces
US11294839B2 (en) 2016-08-12 2022-04-05 Liqid Inc. Emulated telemetry interfaces for fabric-coupled computing units
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
WO2018200761A1 (en) 2017-04-27 2018-11-01 Liqid Inc. Pcie fabric connectivity expansion card
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US10180924B2 (en) 2017-05-08 2019-01-15 Liqid Inc. Peer-to-peer communication for graphics processing units
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
WO2018210139A1 (zh) * 2017-05-18 2018-11-22 苏州欧普照明有限公司 无线网络节点的配置方法、装置及系统
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11483394B2 (en) * 2018-02-08 2022-10-25 Forcepoint Llc Delayed proxy-less network address translation decision based on application payload
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US10660228B2 (en) 2018-08-03 2020-05-19 Liqid Inc. Peripheral storage card with offset slot alignment
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
EP3959604A4 (en) 2019-04-25 2023-01-18 Liqid Inc. MACHINE TEMPLATES FOR DEDICATED COMPUTING UNITS
EP3959860A4 (en) 2019-04-25 2023-01-25 Liqid Inc. MULTI-PROTOCOL COMMUNICATION CONTROL FOR TISSUE
US11199855B2 (en) 2019-08-20 2021-12-14 Lisandro Chacin System and method for lube cost control on heavy machinery
US11442776B2 (en) 2020-12-11 2022-09-13 Liqid Inc. Execution job compute unit composition in computing clusters

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5918013A (en) 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US5774660A (en) 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5941988A (en) 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6774670B1 (en) * 2002-12-30 2004-08-10 Actel Corporation Intra-tile buffer system for a field programmable gate array

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027925A (ja) * 2004-12-30 2012-02-09 Citrix Systems Inc クライアント側の加速技術を提供するシステムおよび方法
JP2008226127A (ja) * 2007-03-15 2008-09-25 Toshiba Corp 分散処理におけるメッセージングの高信頼化装置及び高信頼化方法

Also Published As

Publication number Publication date
US6954780B2 (en) 2005-10-11
EP2439897B1 (en) 2020-06-10
WO2000028433A2 (en) 2000-05-18
KR20010107955A (ko) 2001-12-07
AU1613300A (en) 2000-05-29
EP2439897A2 (en) 2012-04-11
EP2439896A3 (en) 2013-06-19
WO2000028433A3 (en) 2000-08-31
EP2159990B1 (en) 2018-07-18
US20020059428A1 (en) 2002-05-16
EP2439896B1 (en) 2019-01-09
EP2439897A3 (en) 2013-06-19
EP1129412A4 (en) 2009-04-01
EP2439896A2 (en) 2012-04-11
US6411986B1 (en) 2002-06-25
JP4312962B2 (ja) 2009-08-12
EP1129412A2 (en) 2001-09-05
EP2159990A1 (en) 2010-03-03
US20020147822A1 (en) 2002-10-10
KR100723320B1 (ko) 2007-05-31
EP1129412B1 (en) 2018-03-28

Similar Documents

Publication Publication Date Title
JP4312962B2 (ja) インターネットクライアントサーバマルチプレクサ
US9148493B2 (en) Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US5852717A (en) Performance optimizations for computer networks utilizing HTTP
US8799502B2 (en) Systems and methods for controlling the number of connections established with a server
US7003574B1 (en) Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
CA2491740C (en) Method for caching and delivery of compressed content in a content delivery network
JP2002508133A (ja) 拡張ネットワーク通信
JP2002523838A (ja) 持続的接続を使用するプロキシ・サーバ・アレイの性能を改善するための装置および方法
US9843514B2 (en) Packet processing method and background server
JP2001517899A (ja) エグゼキュータブル・オブジェクトを識別および抑制するための方法およびシステム
JP4398354B2 (ja) 中継システム
EP1950917A1 (en) Methods for peer-to-peer application message identifying and operating realization and their corresponding devices
US20050086390A1 (en) Efficient packet desegmentation on a network adapter
US20090106395A1 (en) Satellite Data Network Acceleration
JP2000020415A (ja) Wwwサーバプロキシとwwwブラウザプロキシおよびwwwシステム
CN117857469A (zh) 数据包传输方法、装置、服务器及存储介质
CN117240896A (zh) 一种获取数据的方法以及相关装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061109

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090408

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

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

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4312962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term