"サーバへの1つ以上のトランスポート層接続をクライアント上にプールすることによって、クライアントによるサーバへのアクセスを加速する方法であって、該方法は、a第一のアプリケーションによる、サーバと第一のトランスポート層接続を確立したいという第一の要求を、クライアント上の加速プログラムによって傍受するステップと、b該加速プログラムと該サーバとの間のトランスポート層接続を、該加速プログラムによって確立するステップと、c第二のアプリケーションによる、該サーバと第二のトランスポート層接続を確立したいという第二の要求を、該加速プログラムによって傍受するステップと、e該確立されたトランスポート層接続を該加速プログラムによって使用し、該第二のアプリケーションのための該要求されたトランスポート層接続を提供するステップとを包含する、方法。前記サーバとの接続またはセッションのうちの一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを、機器によって、該クライアントに送信するステップを包含する、請求項1に記載の方法。前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、請求項1に記載の方法。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、請求項1に記載の方法。前記加速プログラムによって、前記確立されたトランスポート層接続を経由して、前記クライアント上の複数のアプリケーションからの要求を多重化するステップを包含する、請求項1に記載の方法。前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行するステップを包含する、請求項1に記載の方法。前記加速プログラムによって、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行するステップを包含する、請求項1に記載の方法。前記加速プログラムによって、リセットコマンドまたは終了コマンドを受信すると、前記第一のトランスポート層接続を閉じるステップを包含する、請求項1に記載の方法。前記加速プログラムによって、前記サーバと、前記第一のアプリケーションまたは前記第二のアプリケーションとの間のアイドル活動の期間の間、前記トランスポート層接続を開いたまま維持するステップを包含する、請求項1に記載の方法。前記加速プログラムによって、前記トランスポート層接続を開いたままに保つ命令を、前記クライアントから前記サーバへの通信に挿入するステップを包含する、請求項9に記載の方法。前記サーバに送信され、該サーバから確認応答されたバイト数を各アプリケーションに対して比較することによって、前記トランスポート層接続が、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つによって現在使用されていることを、前記加速プログラムによって判断するステップを包含する、請求項1に記載の方法。前記トランスポート層接続が、前記第一のアプリケーションによって現在使用中であることを、前記加速プログラムによって判断するステップと、前記第二のアプリケーションによって使用するために、前記加速プログラムと前記サーバとの間の第二のトランスポート層接続を開くステップとを、ステップeは包含する、請求項1に記載の方法。前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するステップを、ステップbは包含する、請求項1に記載の方法。前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを、前記機器によって確立するステップを包含する、請求項13に記載の方法。前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項1に記載の方法。前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、請求項1に記載の方法。サーバへの1つ以上のトランスポート層接続をクライアント上にプールすることによって、クライアントによる1つ以上のサーバへのアクセスを加速化するためのシステムであって、第一のアプリケーションによる、サーバとの第一のトランスポート層接続を確立したいという第一の要求を、該クライアントの加速プログラムによって傍受するための手段と、該加速プログラムと該サーバとの間のトランスポート層接続を、該加速プログラムによって確立するための手段と、第二のアプリケーションによる、該サーバとの第二のトランスポート層接続を確立したいという第二の要求を、該加速プログラムによって傍受するための手段と、該確立されたトランスポート層接続を該加速プログラムによって使用して、該第二のアプリケーションのための該要求されたトランスポート層接続を提供するための手段とを備える、システム。前記クライアントによって、前記加速プログラムを、自動的にインストールし、実行するための手段を備える、請求項17に記載のシステム。前記サーバとの接続またはセッションのうち一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを該クライアントに送信する機器を備える、請求項17に記載のシステム。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、請求項17に記載のシステム。前記加速プログラムによって、前記第二のトランスポート層接続を経由して、前記クライアント上の複数のアプリケーションからの要求を多重化するための手段を備える、請求項17に記載のシステム。前記加速プログラムは、圧縮と、解凍と、伝送制御プロトコルTCP接続多重化と、TCPバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行する、請求項17に記載のシステム。前記加速プログラムは、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行する、請求項17に記載のシステム。前記加速プログラムによって、リセットコマンドまたは終了コマンドの受信を受けて、前記トランスポート層接続を閉じるための手段を備える、請求項17に記載のシステム。前記加速プログラムは、前記サーバと、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つとの間のアイドル活動の期間の間、前記トランスポート層接続を開いたまま維持する、請求項17に記載のシステム。前記加速プログラムは、前記接続を開いたままに保つ命令を、前記クライアントから前記サーバへの通信に挿入する、請求項25に記載のシステム。前記サーバに送信され、該サーバから確認応答されたバイト数を各アプリケーションに対して比較することによって、前記トランスポート層接続が、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つによって現在使用されていることを、前記加速プログラムは判断する、請求項17に記載のシステム。前記加速プログラムは、前記トランスポート層接続が、前記第一のアプリケーションによって現在使用中であることを判断し、前記第二のアプリケーションによって使用するために、前記加速プログラムと前記サーバとの間の第二のトランスポート層接続を開く、請求項17に記載のシステム。前記加速プログラムと、前記サーバと通信している機器との間に、前記第二のトランスポート層接続を確立するための手段を備える、請求項17に記載のシステム。前記機器は、前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを備える、請求項17に記載のシステム。前記加速プログラムは、前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアント上で実行する、請求項17に記載のシステム。前記加速プログラムは、前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアント上で実行する、請求項17に記載のシステム。共有されたトランスポート層接続経由の複数のアプリケーション要求を多重化することにより、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するための方法であって、該方法は、aサーバへのアクセスという、クライアントの第一のアプリケーションによる第一の要求を、該クライアント上の加速プログラムによって傍受するステップと、b該第一の要求を、該加速プログラムと該サーバとの間に確立されたトランスポート層接続を経由して、該加速プログラムによって送信するステップと、c該サーバへのアクセスという、該クライアントの第二のアプリケーションによる第二の要求を、該加速プログラムによって傍受するステップと、d該第二の要求を、該第一のアプリケーションによって使用された該確立されたトランスポート層接続を経由して、該加速プログラムによって送信するステップとを包含する、方法。前記第一のアプリケーションの前記要求への応答を前記サーバから受信すると、前記第二の要求を前記加速プログラムによって送信するステップを包含する、請求項33に記載の方法。前記第一のアプリケーションが前記トランスポート層接続を現在使用していないと判断すると、前記第二の要求を前記加速プログラムによって送信するステップを包含する、請求項33に記載の方法。前記第一のアプリケーションによって前記サーバへ送信されたバイト数と、該サーバによって確認応答されたバイト数とを比較することによって、該第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムで判断するステップを包含する、請求項35に記載の方法。前記クライアントと前記サーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、前記第一のアプリケーションがトランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するステップを包含する、請求項35に記載の方法。前記トランスポート層接続を経由する前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するステップを包含する、請求項33に記載の方法。前記クライアントの複数のアプリケーションによって使用するための、前記サーバへの複数のトランスポート層接続を、前記加速プログラムによってプールするステップを包含する、請求項33に記載の方法。前記サーバとの接続を確立したいという前記クライアントからの要求を受けて、前記加速プログラムを、機器によって、該クライアントに送信するステップを包含する、請求項33に記載の方法。前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、請求項33に記載の方法。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、請求項33に記載の方法。前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを実行するステップを包含する、請求項33に記載の方法。前記加速プログラムによって、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行するステップを包含する、請求項33に記載の方法。前記加速プログラムによって、前記第一のアプリケーションおよび前記第二のアプリケーションに対するリセットコマンドまたは終了コマンドのうちの一つを受信すると、前記トランスポート層接続を閉じるステップを包含する、請求項33に記載の方法。前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するステップを、ステップbは包含する、請求項33に記載の方法。前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを、前記機器によって確立するステップを包含する、請求項46に記載の方法。前記機器によって、一つ以上のトランスポート層接続のプールを経由して、前記加速プログラムと前記サーバとの間の複数の通信を多重化するステップを包含する、請求項46に記載の方法。前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項33に記載の方法。前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、請求項33に記載の方法。共有されたトランスポート層接続を経由する複数のアプリケーション要求を多重化することによって、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するためのシステムであって、該システムは、クライアントの第一のアプリケーションによる、サーバへアクセスしたいという第一の要求を、該クライアント上の加速プログラムによって傍受するための手段と、該第一の要求を、該加速プログラムと該サーバとの間に確立されたトランスポート層接続経由で、該加速プログラムによって送信するための手段と、クライアントの第二のアプリケーションによる、該サーバへアクセスしたいという第二の要求を、加速プログラムによって傍受するための手段と、該第二の要求を、該第一のアプリケーションによって使用された該確立されたトランスポート層接続経由で、該加速プログラムによって送信するための手段とを備える、システム。前記第一のアプリケーションの前記要求の応答を前記サーバから受信すると、前記第二の要求を前記加速プログラムによって送信するための手段を備える、請求項51に記載のシステム。前記加速プログラムによって、前記第一のアプリケーションは、前記トランスポート層接続を現在使用していないと判断すると、前記第二の要求を送信するための手段を備える、請求項51に記載のシステム。前記第一のアプリケーションによって前記サーバへ送信されたバイト数と、該サーバによって確認応答されたバイト数とを比較することによって、該第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するための手段を備える、請求項51に記載のシステム。前記クライアントと前記サーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、前記第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するための手段を備える、請求項54に記載のシステム。前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を前記加速プログラムによって多重化するための手段を備える、請求項51に記載のシステム。複数のアプリケーションによって使用するための、前記サーバへの複数のトランスポート層接続を、前記加速プログラムによって、プールするための手段を備える、請求項51に記載のシステム。前記サーバとの接続またはセッションのうち一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを該クライアントに送信する機器を備える、請求項51に記載のシステム。前記加速プログラムを受信すると、前記クライアントが自動的に前記加速プログラムをインストールして、実行することを含む、請求項58に記載のシステム。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、請求項51に記載のシステム。前記加速プログラムは、圧縮と、解凍と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行する、請求項51に記載のシステム。前記加速プログラムは、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行する、請求項51に記載のシステム。前記加速プログラムによって、前記第一のアプリケーションおよび前記第二のアプリケーションのうちの一つに対するリセットコマンドまたは終了コマンドのうちの一つを受信すると、前記トランスポート層接続を閉じるための手段を供える、請求項51に記載のシステム。前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するための手段を備える、請求項51に記載のシステム。前記機器は、前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを備える、請求項51に記載のシステム。前記機器は、前記一つ以上のトランスポート層接続のプール経由で、前記加速プログラムと前記サーバとの間の複数の通信を多重化する、請求項51に記載のシステム。前記クライアントは、該クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、前記加速プログラムを実行する、請求項51に記載のシステム。前記クライアントは、前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを実行する、請求項51に記載のシステム。サーバから受信した応答の消費速度と、該サーバへ送信した要求の産出速度との差異をクライアント上で管理するための方法であって、該方法は、a該クライアント上の加速プログラムによって、サーバにアクセスしたいというアプリケーションによる要求を傍受するステップであって、該加速プログラムは、トランスポート層接続経由で、該アプリケーションの代わりに該サーバと通信する、ステップと、b受信したサーバ応答の消費速度と、該クライアントによって送信された要求の産出速度との差異が、所定の閾値を下回ることを該加速プログラムによって判断するステップと、c該加速プログラムによって、該要求を該クライアントのメモリエレメントに格納するステップとを包含する、方法。前記消費速度は、前記産出速度未満である、請求項69に記載の方法。前記クライアントによる前記消費速度または前記産出速度のうちの一つの変化に基づいて、前記格納された要求を送信することを、前記加速プログラムによって決定するステップを包含する、請求項69に記載の方法。前記サーバへの接続を確立したいという前記クライアントからの要求を受けて、機器によって、前記加速プログラムを該クライアントに送信するステップを包含する、請求項69に記載の方法。前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールし、実行するステップを包含する、請求項72に記載の方法。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、請求項69に記載の方法。前記加速プログラムによって、メモリエレメントに格納された前記要求を圧縮するステップを包含する、請求項69に記載の方法。前記クライアント上の前記アプリケーションによって前記サーバへアクセスするための一つ以上のトランスポート層接続のプールを、前記加速プログラムによって提供するステップを包含する、請求項69に記載の方法。前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するステップを包含する、請求項69に記載の方法。前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項69に記載の方法。前記アプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、請求項69に記載の方法。サーバから受信した応答の消費速度と、該サーバへ送信した要求の産出速度との差異をクライアント上で管理するためのシステムであって、該システムは、該クライアント上の加速プログラムによって、サーバにアクセスしたいというアプリケーションによる要求を傍受するための手段であって、該加速プログラムは、トランスポート層接続経由で、該アプリケーションの代わりに該サーバと通信する、手段と、受信したサーバ応答の消費速度と、該クライアントによって送信された要求の産出速度との差異が、所定の閾値を下回ることを該加速プログラムによって判断するための手段と、該加速プログラムによって、該要求を該クライアントのメモリエレメントに格納するための手段とを備える、システム。前記消費速度は、前記産出速度未満である、請求項80に記載のシステム。前記クライアントによる前記消費速度または前記産出速度のうちの一つの変化に基づいて、格納された要求を送信することを、前記加速プログラムによって決定するための手段を備える、請求項80に記載のシステム。前記サーバへの接続を確立したいという前記クライアントからの要求を受けて、機器によって、前記加速プログラムを該クライアントに送信するための手段を備える、請求項80に記載のシステム。前記加速プログラムを受信すると、前記クライアントが、該加速プログラムを自動的にインストールし、実行することを含む、請求項83に記載のシステム。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、請求項80に記載のシステム。前記加速プログラムによって、メモリエレメントに格納された前記要求を圧縮するための手段を備える、請求項80に記載のシステム。前記クライアント上の前記アプリケーションによって前記サーバへアクセスするための一つ以上のトランスポート層接続のプールを、前記加速プログラムによって提供するための手段を備える、請求項80に記載のシステム。前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するための手段を備える、請求項80に記載のシステム。前記クライアントのネットワークスタックのネットワーク層、セッション層、または前記アプリケーション層のうちの一つにはトランスペアレントに、該クライアントは、前記加速プログラムを実行する、請求項80に記載のシステム。前記アプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記クライアントは、前記加速プログラムを実行する、請求項80に記載のシステム。クライアントとサーバとの間のトランスポート層接続経由で通信されるネットワークパケットに対して、該クライアント上の加速プログラムによって、複数の加速技術を実行するための方法であって、該ネットワークパケットは、該加速プログラムによって該トランスポート層で傍受され、該方法は、aクライアント上の加速プログラムによって、該加速プログラムと該サーバとの間にトランスポート層接続を確立するステップと、b該加速プログラムによって、該トランスポート層で、該クライアントと該サーバ間との間で通信されるネットワークパケットを傍受するステップと、c該トランスポート層で傍受された該ネットワークパケット上で、該加速プログラムによって、複数の加速技術を実行するステップとを包含する、方法。前記トランスポート層接続へのインタフェースによって提供されるカーネルレベルのデータ構造経由の前記ネットワークパケットに、前記加速プログラムによってアクセスするステップを包含する、請求項91に記載の方法。前記加速プログラムによって、前記ネットワークパケットから前記サーバへ通信するステップを包含する、請求項91に記載の方法。前記ステップdは、前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行するステップを包含する、請求項91に記載の方法。前記加速プログラムによって、前記ネットワークパケットの一部分の暗号化または復号化のうちの一つを行うステップを包含する、請求項91に記載の方法。前記加速プログラムによって、前記サーバへの仮想プライベートネットワーク接続を提供するステップを包含する、請求項91に記載の方法。前記クライアントのオペレーティングシステムのユーザモードまたはカーネルモードのうちの一つにおいて、前記加速プログラムによって、前記複数の加速技術を実行するステップを包含する、請求項91に記載の方法。前記加速プログラムの実行可能な命令の一部分において、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、請求項91に記載の方法。前記加速プログラムの実行可能な命令の一つのインタフェースポイントで、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、請求項91に記載の方法。前記加速プログラムの実行可能な命令の実行のインスタンスの間に、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、請求項91に記載の方法。前記カーネルレベルのデータ構造を経由して、前記ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを提供するステップを包含する、請求項91に記載の方法。前記クライアントのネットワークスタックのネットワーク層またはセッション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項91に記載の方法。前記クライアントのユーザ、該クライアント上のアプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項91に記載の方法。クライアントとサーバとの間のトランスポート層接続経由で通信されるネットワークパケットに対して、クライアント上の加速プログラムによって、複数の加速技術を実行するためのシステムであって、該ネットワークパケットは、該加速プログラムによって該トランスポート層で傍受され、該システムは、クライアント上の加速プログラムによって、該加速プログラムと該サーバとの間にトランスポート層接続を確立するための手段と、該加速プログラムによって、該トランスポート層で、該クライアントと該サーバとの間で通信されるネットワークパケットを傍受するための手段と、該トランスポート層で傍受された該ネットワークパケット上で、該加速プログラムによって、複数の加速技術を実行するための手段とを備える、システム。前記加速プログラムは、前記トランスポート層接続へのインタフェースをプログラミングするアプリケーションを呼び出すことによって、カーネルレベルのデータ構造を取得する、請求項104に記載のシステム。前記加速プログラムは、前記ネットワークパケットから前記サーバへ通信する、請求項104に記載のシステム。前記複数の加速技術は、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとのうちの少なくとも一つを備える、請求項104に記載のシステム。前記加速プログラムは、前記ネットワークパケットの一部分の暗号化または復号化のうちの一つを行う、請求項104に記載のシステム。前記加速プログラムは、前記サーバへの仮想プライベートネットワーク接続を提供する、請求項104に記載のシステム。前記加速プログラムは、前記クライアントのオペレーティングシステムのユーザモードまたはカーネルモードのうちの一つで実行する、請求項104に記載のシステム。前記加速プログラムは、互いに連続する前記複数の加速技術のそれぞれを実行する実行可能な命令を備える、請求項104に記載のシステム。前記加速プログラムは、前記複数の加速技術が互いに連続して実行される一つのインタフェースポイントを備える、請求項104に記載のシステム。前記加速プログラムは、前記複数の加速技術が互いに連続して実行される実行のインスタンスを有する実行可能な命令を備える、請求項104に記載のシステム。前記加速プログラムは、前記カーネルレベルのデータ構造を経由して、前記トランスポート層で、前記ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを取得する、請求項104に記載のシステム。前記クライアントは、該クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、前記加速プログラムを実行する、請求項104に記載のシステム。前記クライアントは、該クライアントのユーザ、該クライアント上のアプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを実行する、請求項104に記載のシステム。クライアントによって、仲介物がサーバとの通信に使用不可能であると判断すると、該クライアントの該サーバへの通信を、該クライアント上で、該仲介物をバイパスするように、リダイレクトする方法であって、該方法は、aクライアント上の加速プログラムによって、該クライアントとサーバとの間のトランスポート層接続を仲介物経由で確立するステップと、b該加速プログラムによって、該仲介物が、該クライアントによる該サーバへの該トランスポート層接続経由で通信することに、使用可能でないと判断するステップと、c該加速プログラムによって、該クライアントから該サーバへの通信を傍受するステップと、d該加速プログラムによって、該仲介物をバイパスするために、該加速プログラムと該サーバとの間に第二のトランスポート層接続を確立するステップとを包含する、方法。ステップdは、前記加速プログラムによって、前記サーバとの前記第二のトランスポート層接続を直接確立するステップを包含する、請求項117に記載の方法。ステップdは、前記加速プログラムによって、第二の仲介物経由で、前記サーバとの前記第二のトランスポート層接続を確立するステップを包含する、請求項117に記載の方法。前記加速プログラムによって、前記第二のトランスポート層接続経由で、前記サーバへの通信を送信するステップを包含する、請求項117に記載の方法。前記加速プログラムを前記仲介物から受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、請求項117に記載の方法。前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、請求項117に記載の方法。前記加速プログラムによって、圧縮と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記通信上で実行するステップを包含する、請求項117に記載の方法。前記加速プログラムによって、前記クライアントと前記サーバとの間の通信を暗号化するステップを包含する、請求項117に記載の方法。前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、請求項117に記載の方法。前記クライアントのアプリケーション、該クライアントのユーザ、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、請求項117に記載の方法。前記仲介物は、キャッシュ、ゲートウェイ、ファイアウォール、サーバ、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、請求項117に記載の方法。クライアントによって、仲介物がサーバとの通信に使用不可能であると判断すると、該クライアントの該サーバへの通信は、該クライアント上で、該仲介物をバイパスするように、リダイレクトするシステそこで望まれるのは、リモートアクセスアプリケーションの性能を向上させるクライアント側加速能力を提供するシステムおよび方法である。この望ましいシステムおよび方法は、クライアントとWANとの間での加速ソフトを起動させるネットワーク機器またはサーバの設置およびメンテナンスを必要としないものである。また、リモートアクセスアプリケーションの性能をさらに向上させるには、アクセラレータ機能がWANのクライアント側と企業ネットワーク側の両方で実行され得ることが、望ましいであろう。本発明の概要本発明は、クライアント上に加速機能を動的に展開、実行して、リモートアクセスアプリケーションの性能および配信を向上させるためのシステムおよび方法を対象とするものである。クライアント側の加速機能は、クライアントとサーバ間の通信における、次の加速技術のうちの一つ以上を使用する加速プログラムによって提供される。すなわち、例えば、リモートアクセスアプリケーションに対して、1マルチプロトコル圧縮、2転送制御プロトコルプーリング、3転送制御プロトコル多重化、4転送制御プロトコルバッファリング、5キャッシング、である。一形態では、本発明の加速プログラムは、クライアントの動作に対してトランスペアレントかつシームレスな方法で、クライアント上に自動的にインストール、実行される。サーバとの通信セッションや接続を確立したいというクライアントの要求を、機器が傍受して、加速プログラムをクライアントに送信する。クライアントがアクセスしているアプリケーションが加速できるかどうかを機器が判断して、アプリケーションが加速可能な場合に、加速プログラムの提供のみを行う場合がある。加速プログラムを受け取ると、クライアントは加速プログラムの静かなインストールを自動的に行い、インストールが完了すると加速プログラムを実行する。一形態では、本発明は、加速プログラムをクライアントに動的に提供して、自動的にインストールおよび実行するための方法に関するものである。加速プログラムは、リモートアクセスアプリケーションへのクライアントによるアクセスを加速化する。この方法には、サーバとの通信セッションを確立するというクライアントの要求を機器によって受信することと、サーバを介して提供される、クライアントがアクセスするアプリケーションの加速化をクライアント上で行うためのネットワークドライバからなる加速プログラムを、その機器によって、クライアントに送信することのステップが含まれる。加速プログラムを受信すると、クライアントは、ネットワークドライバをクライアントの記憶装置に静かなインストールを自動的に実行する。ネットワークドライバがインストールされると、クライアントは、クライアントのネットワークスタックに割り当てられた、メモリ内のネットワークドライバを自動的に実行する。本発明の一実施形態では、方法には、サーバとの通信セッションの確立時に、機器によって、クライアントに加速プログラムを送信することが含まれる。もう一つの実施形態では、この方法には、加速プログラムによるサーバとの通信セッションの確立が含まれる。いくつかの実施形態では、加速プログラムがクライアントの再起動またはクライアントのユーザによる相互作用処理なしに、クライアント上にインストールされる。他の実施形態では、加速プログラムのインストールおよび実行が、クライアントのユーザ、アプリケーション、またはサーバにトランスペアレントに、クライアント上で行われる。いくつかの実施形態では、本発明のネットワークドライバは、ネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバで構成される。一実施形態では、加速プログラムは、ネットワークスタックのネットワーク層、セッション層またはアプリケーション層にトランスペアレントに、サーバ上のアプリケーションへの、クライアント側で加速されたアクセスを提供する。他の実施形態では、本発明の方法には、機器による第一のプログラムのクライアントへの送信が含まれる。第一のプログラムには加速プログラムが含まれる。第一のプログラムを受信すると、クライアントは自動的に第一プログラムを実行して、加速プログラムをインストールし、実行する。いくつかの実施形態では、第一のプログラムには、ブラウザに提供され、ブラウザ上で実行される、実行可能命令が含まれる。本発明のいくつかの実施形態では、方法には、サーバ上のアプリケーションにアクセスするというクライアントからの要求を機器によって受信し、その機器により、クライアントに対して、加速プログラムに通信して、クライアントとサーバ間の通信時に少なくとも一つの加速技術を実施するよう、メッセージを送信することが含まれる。さらに、一実施形態では、アプリケーションが加速できるかどうかを機器が判断して、アプリケーションが加速可能な場合に、クライアントにメッセージを送信する。いくつかの実施形態では、加速プログラムは、クライアント上で次の加速技術のうちの一つを実行する。すなわち、1圧縮、2解凍、3伝送制御プロトコル接続プーリング、4伝送制御プロトコル接続多重化、5伝送制御プロトコル接続バッファリング、6キャッシングである。他の実施形態では、加速プログラムは、クライアントとサーバ間の通信の暗号化または復号化を行う。一実施形態では、ネットワークドライバは、機器またはサーバとの仮想プライベートネットワーク接続を確立する。機器には、キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジが含まれる。他の形態では、本発明は、リモートアクセスアプリケーションへのクライアントによるアクセスを加速するために、クライアントに加速プログラムを動的に提供する方法に関するものである。この方法には、機器により、サーバを介してアプリケーションにアクセスするというクライアントからの要求を受信し、この機器により、このアプリケーションが加速可能であることを判断することが含まれる。この方法はさらに、クライアント上で自動的にインストールし実行するための加速プログラムを、この機器によってクライアントに送信することが含まれる。一実施形態では、本発明の方法には、クライアントによる、機器から受信した加速プログラムの自動的インストールおよび実行が含まれる。いくつかの実施形態では、クライアントは、加速プログラムを、クライアント上のアプリケーション、ユーザまたはサーバにはトランスペアレントに、受信、インストール、および/または実行する。他の実施形態では、機器はアプリケーションが加速可能でないことを判断し、要求をサーバに転送する。いくつかの実施形態では、機器はアプリケーションが次の加速技術のうちの一つによって加速可能であることを判断する。すなわち、1圧縮、2解凍、3伝送制御プロトコル接続プーリング、4伝送制御プロトコル接続多重化、5伝送制御プロトコル接続バッファリング、6キャッシングである。機器は、アプリケーションを加速することができると機器が判断する加速技術を提供するように設定された加速プログラムを送信する。加速プログラムはこれらの加速技術のうちの一つを処理または実行する。いくつかの実施形態では、加速プログラムは、仮想プライベートネットワークを機器またはサーバに提供する。機器には、キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジが含まれる。いくつかの形態では、本発明は、リモートアクセスアプリケーションへのクライアントによるアクセスを加速するために、クライアントに加速プログラムを動的に提供するための機器に関するものである。この機器には、サーバを介してアプリケーションにアクセスするというクライアントからの要求を受信し、このアプリケーションが加速可能であることを判断し、加速プログラムを、クライアントに送信するための手段が含まれる。加速プログラムは、クライアント上で自動的にインストールし、実行するように設定されている。いくつかの実施形態では、機器には、アプリケーションが加速可能でないことを機器によって判定し、要求をサーバに転送するための手段も含まれている。他の実施形態では、機器には、アプリケーションが次の加速技術のうちの一つによって加速可能であることを機器によって判断するための手段が含まれている。すなわち、1圧縮、2解凍、3伝送制御プロトコル接続プーリング、4伝送制御プロトコル接続多重化、5伝送制御プロトコル接続バッファリング、6キャッシングである。一実施形態では、機器は、アプリケーションを加速することができると機器が判断する加速技術を提供するように設定された加速プログラムを、機器によって送信するための手段を備えている。機器はまた、加速プログラムとの仮想プライベートネットワークを確立し得る。機器には、キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジが含まれる。他の形態では、クライアント側の加速機能は、トランスポート層接続プーリング技術を使って通信性能とリモートアクセスアプリケーションの配信を改善する、加速プログラムによって提供される。加速プログラムは、クライアントからサーバへのトランスポート層接続を確立し、その接続はクライアント上の複数のアプリケーションによって使用されることができ、あるいは、そうでなければ、クライアントのアプリケーションの間で共有される。加速プログラムは、トランスポート層接続要求の数、およびクライアント上で作動する一つまたは複数のアプリケーションのためにサーバとの間に確立されるトランスポート層接続の数を減らすために、トランスポート層接続をオープンに保つ。一形態では、本発明は、クライアント上にサーバへのトランスポート層接続を一つ以上プールすることによって、クライアントによるサーバへのアクセスを加速する方法に関するものである。この方法には、第一のアプリケーションによる、サーバとの第一のトランスポート層接続を確立するという第一の要求を、クライアント上の加速プログラムにより傍受し、加速プログラムとサーバ間のトランスポート層接続を、加速プログラムにより確立することが含まれる。この方法には、また、第二のアプリケーションによる、サーバとの第二のトランスポート層接続を確立するという第二の要求を、加速プログラムにより傍受し、確立されたトランスポート層接続を加速プログラムにより利用して、要求された第二のアプリケーションのためのトランスポート層接続を提供することが含まれる。一実施形態では、本発明の方法には、サーバとの接続またはセッションのうちの一つを確立するというクライアントからの要求を受けて、機器によって加速プログラムをクライアントに送信することが含まれる。加速プログラムを受信すると、クライアントは自動的に加速プログラムをインストールし、実行し得る。いくつかの実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続されたフィルタデバイスドライバが含まれる。他の実施形態では、方法には、確立されたトランスポート層接続を介しての、クライアント上の複数のアプリケーションからの要求を、加速プログラムにより多重化することも含まれる。いくつかの実施形態では、方法には、加速プログラムにより、クライアント上で次の加速技術のうちの一つを実行することが含まれる。すなわち、1マルチプロトコル圧縮、2転送制御プロトコル多重化、3転送制御プロトコルバッファリング、4キャッシング、である。他の実施形態では、加速プログラムは、クライアントとサーバ間の通信の暗号化または復号化を行う。一実施形態では、方法には、リセットまたは終了のコマンドの受信時に、第一のトランスポート層接続を加速プログラムにより閉じることが含まれる。他の実施形態では、サーバと第一のアプリケーションまたは第二のアプリケーションとの間の活動が待機状態の期間、トランスポート層接続を加速プログラムによりオープンに保つことが含まれる。その他の実施形態では、加速プログラムが、クライアントからサーバへの通信の中に、トランスポート層接続をオープンに保つようにという命令を挿入する。本発明の一実施形態では、方法には、サーバに送信され、サーバが確認応答するバイト数を各アプリケーションについて比較することによって、トランスポート層接続が現在、第一のアプリケーションまたは第二のアプリケーションによって使用中であることを、加速プログラムにより判定することが含まれる。いくつかの実施形態では、加速プログラムは、トランスポート層接続が現在、第一のアプリケーションによって使用中であると判定し、第二のアプリケーションが使用するための、加速プログラムとサーバ間の第二のトランスポート層接続をオープンする。一実施形態では、トランスポート層接続は、加速プログラムとサーバと通信している機器との間に確立される。いくつかの実施形態では、機器は、加速プログラムが使用するための一つ以上のトランスポート層接続のプールを確立する。他の実施形態では、方法には、クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層にトランスペアレントに、加速プログラムをクライアントにより実行することが含まれる。その他の実施形態では、方法には、第一のアプリケーション、第二のアプリケーション、またはサーバのうちの一つにトランスペアレントに、加速プログラムをクライアントにより実行することが含まれる。他の形態では、本発明は、クライアント上にサーバへのトランスポート層接続を一つ以上プールすることによって、クライアントによる一つ以上のサーバへのアクセスを加速化するためのシステムに関するものである。システムには、第一のアプリケーションによる、サーバとの第一のトランスポート層接続を確立するという第一の要求を、クライアント上の加速プログラムにより傍受し、加速プログラムとサーバ間のトランスポート層接続を、加速プログラムにより確立するための手段が含まれる。そのシステムにはさらに、第二のアプリケーションによる、サーバとの第二のトランスポート層接続を確立するという第二の要求を、加速プログラムにより傍受し、確立されたトランスポート層接続を加速プログラムにより利用して、要求された第二のアプリケーションのためのトランスポート層接続を提供するための手段が含まれる。一実施形態では、本発明のシステムには、加速プログラムをクライアントにより自動的にインストールし、実行するための手段が含まれる。他の実施形態では、システムには、サーバとの接続またはセッションのうち一つを確立するというクライアントからの要求を受けて、加速プログラムをクライアントに送信する機器が含まれる。加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれ得る。いくつかの実施形態では、システムには、第二のトランスポート層接続を介する、クライアント上の複数のアプリケーションからの要求を、加速プログラムにより多重化するための手段が含まれる。いくつかの実施形態では、システムには、クライアント上で次の加速技術のうちの一つを実行する、加速プログラムが含まれる。すなわち、1マルチプロトコル圧縮、2転送制御プロトコル多重化、3転送制御プロトコルバッファリング、4キャッシング、である。他の実施形態では、加速プログラムは、クライアントとサーバ間の通信の暗号化または復号化を行う。一実施形態では、システムには、リセットまたは終了のコマンドの受信時に、第一のトランスポート層接続を加速プログラムにより閉じるための手段が含まれる。他の実施形態では、加速プログラムは、サーバと第一のアプリケーションまたは第二のアプリケーションとの間の活動が待機状態の期間、トランスポート層接続をオープンに保つ。システムのその他の実施形態では、加速プログラムが、クライアントからサーバへの通信に、トランスポート層接続をオープンに保つようにという命令を挿入する。システムの一実施形態では、加速プログラムには、サーバに送信され、サーバが確認応答するバイト数を各アプリケーションについて比較することによって、トランスポート層接続が現在、第一のアプリケーションまたは第二のアプリケーションのうちの一つによって使用中であることを、判定するための手段が含まれる。他の実施形態では、加速プログラムには、トランスポート層接続が現在、第一のアプリケーションによって使用中であると判定する手段を含み、第二のアプリケーションが使用するための、加速プログラムとサーバ間の第二のトランスポート層接続をオープンにする。いくつかの実施形態では、加速プログラムが、加速プログラムとサーバと通信している機器との間に第二のトランスポート層接続を確立する。一実施形態では、機器は、加速プログラムが使用するための一つ以上のトランスポート層接続のプールを提供する。システムの他の実施形態では、クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層にトランスペアレントに、加速プログラムを実行する。その他の実施形態では、システムには、第一のアプリケーション、第二のアプリケーション、またはサーバのうちの一つにトランスペアレントに、クライアントが加速プログラムを実行することが含まれる。他の形態では、クライアント側の加速機能は、トランスポート層接続多重化技術を実行して通信性能とリモートアクセスアプリケーションの配信を改善する、加速プログラムによって提供される。加速プログラムは、クライアントからサーバへのトランスポート層接続を確立し、その接続はクライアント上の複数のアプリケーションが使用することができ、あるいは、そうでなければ、クライアントのアプリケーションの間で共有される。加速プログラムは、加速プログラムによって維持される同一のトランスポート層接続を介しての、一つ以上のアプリケーションからの要求を多重化する。そのため、加速プログラムは、トランスポート層接続を使って、一つのアプリケーションのアイドルタイムを利用し、同じトランスポート層接続を介しての第二のアプリケーションの要求に供することができる。一形態では、本発明は、共有されたトランスポート層接続を介しての複数のアプリケーション要求を多重化することにより、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するための方法に関するものである。この方法には、サーバへのアクセスという、クライアントの第一のアプリケーションによる第一の要求を、クライアント上の加速プログラムによって傍受し、その第一の要求を、加速プログラムとサーバとの間に確立されたトランスポート層接続を介して、加速プログラムによって送信することが含まれる。その方法には、また、そのサーバへのアクセスという、クライアントの第二のアプリケーションによる第二の要求を、加速プログラムによって傍受し、その第二の要求を、第一のアプリケーションが使用して確立されたトランスポート層接続を介して、加速プログラムによって送信することが含まれる。一実施形態では、本発明の方法には、第一のアプリケーションの要求への応答をサーバから受信した時に、第二の要求を加速プログラムにより送信することが含まれる。いくつかの実施形態では、この方法には、第一のアプリケーションが現在トランスポート層接続を使用していないと判断した時に、第二の要求を加速プログラムにより送信することが含まれる。他の実施形態では、方法には、第一のアプリケーションがサーバへ送信したバイト数とサーバが確認応答したバイト数を比較することによって、第一のアプリケーションが現在トランスポート層接続を使用していないことを、加速プログラムで判断することが含まれる。その他の実施形態では、この方法には、クライアントとサーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、第一のアプリケーションが現在トランスポート層接続を使用していないことを、加速プログラムで判断することが含まれる。本発明の一実施形態では、この方法にはさらに、トランスポート層接続を介しての、クライアント上の複数のアプリケーションからの要求を、加速プログラムにより多重化することが含まれる。他の実施形態では、この方法には、クライアントの複数のアプリケーションが使用するための、サーバへの複数のトランスポート層接続を、加速プログラムによってプールすることが含まれる。いくつかの実施形態では、この方法には、サーバとの接続を確立するというクライアントからの要求を受けて、機器により加速プログラムをクライアントに送信することが含まれる。加速プログラムを受信すると、クライアントは自動的に加速プログラムをインストールし、実行し得る。いくつかの実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれる。いくつかの実施形態では、方法には、加速プログラムによって、次の加速技術のうちの一つを実行することが含まれる。すなわち、1圧縮、2解凍、3転送制御プロトコルバッファリング、4キャッシングである。他の実施形態では、加速プログラムは、クライアントとサーバ間の通信の暗号化または復号化を行う。一実施形態では、方法には、第一のアプリケーションおよび第二のアプリケーションのリセットまたは終了のコマンドの受信時に、トランスポート層接続を加速プログラムにより閉じることが含まれる。さらに一実施形態では、方法には、加速プログラムとサーバと通信している機器との間にトランスポート層接続を確立することが含まれる。一実施形態では、機器は、加速プログラムが使用するための一つ以上のトランスポート層接続のプールを確立する。他の実施形態では、機器が一つ以上のトランスポート層接続のプールを介して、加速プログラムとサーバ間の複数の通信を多重化する。本発明の一実施形態では、方法には、クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにトランスペアレントに、加速プログラムをクライアントが実行することが含まれる。他の実施形態では、方法には、第一のアプリケーション、第二のアプリケーション、またはサーバにトランスペアレントに、加速プログラムをクライアントが実行することが含まれる。他の形態では、本発明は、共有されたトランスポート層接続を介しての複数のアプリケーション要求を多重化することにより、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するためのシステムに関するものである。このシステムには、サーバへのアクセスという、クライアントの第一のアプリケーションによる第一の要求を、クライアント上の加速プログラムによって傍受し、その第一の要求を、加速プログラムとサーバとの間に確立されたトランスポート層接続を介して、加速プログラムによって送信するための手段が含まれる。このシステムには、また、そのサーバへのアクセスという、クライアントの第二のアプリケーションによる第二の要求を、加速プログラムによって傍受し、その第二の要求を、第一のアプリケーションが使用して確立されたトランスポート層接続を介して、加速プログラムによって送信するための手段が含まれる。一実施形態では、本発明のシステムには、第一のアプリケーションの要求への応答をサーバから受信した時に、第二の要求を加速プログラムにより送信するための手段が含まれる。他の実施形態では、このシステムには、第一のアプリケーションが現在トランスポート層接続を使用していないとの判断時に、第二の要求を加速プログラムにより送信するための手段が含まれる。いくつかの実施形態では、システムには、第一のアプリケーションがサーバへ送信したバイト数とサーバが確認したバイト数を比較することによって、第一のアプリケーションが現在トランスポート層接続を使用していないことを、加速プログラムで判断するための手段が含まれる。さらに別の実施形態では、このシステムには、クライアントとサーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、第一のアプリケーションが現在トランスポート層接続を使用していないことを、加速プログラムが判断する手段が含まれる。いくつかの実施形態では、このシステムには、トランスポート層接続を介しての、クライアント上の複数のアプリケーションからの要求を多重化する加速プログラムが含まれる。その他の実施形態では、このシステムには、複数のアプリケーションが使用するための、サーバへの複数のトランスポート層接続をプールする加速プログラムが含まれる。一実施形態では、このシステムには、サーバとの接続またはセッションのうちの一つを確立するというクライアントからの要求を受けて、加速プログラムをクライアントに送信する機器が含まれる。さらに一実施形態では、加速プログラムを受信すると、クライアントは自動的に加速プログラムをインストールし、実行する。いくつかの実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれる。このシステムのいくつかの実施形態では、加速プログラムは、次の加速技術のうちの一つを実行する。すなわち、1圧縮、2解凍、3転送制御プロトコルバッファリング、4キャッシング、である。他の実施形態では、加速プログラムは、クライアントとサーバ間の通信の暗号化または復号化する。一実施形態では、システムには、第一のアプリケーションおよび第二のアプリケーションのリセットまたは終了のコマンドを受信した時に、トランスポート層接続を加速プログラムにより閉じるための手段が含まれる。さらに一実施形態では、方法には、加速プログラムとサーバと通信している機器の間にトランスポート層接続を確立することが含まれる。一実施形態では、機器は、加速プログラムが使用するための一つ以上のトランスポート層接続のプールを確立する。他の実施形態では、機器が一つ以上のトランスポート層接続のプールを介して、加速プログラムとサーバ間の複数の通信を多重化する。本発明の一実施形態では、方法には、クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにトランスペアレントに、加速プログラムをクライアントにより実行することが含まれる。他の実施形態では、方法には、第一のアプリケーション、第二のアプリケーション、またはサーバにトランスペアレントに、加速プログラムをクライアントにより実行することが含まれる。いくつかの実施形態では、このシステムには、加速プログラムとサーバと通信している機器との間にトランスポート層接続を確立するための手段が含まれる。機器は、加速プログラムが使用するための一つ以上のトランスポート層接続のプールを提供する。この機器はまた、一つ以上のトランスポート層接続のプールを介して、加速プログラムとサーバ間の複数の通信を多重化する。さらに別の形態では、クライアント側の加速機能は、トランスポート層接続バッファリング技術を使って通信性能およびリモートアクセスアプリケーションの配信を改善する、加速プログラムによって提供される。加速プログラムは、クライアントからサーバへのトランスポート層接続を確立し、クライアントがサーバから受信する応答の消費速度とクライアントからサーバへ送信する要求の産出速度との差異の判断に基づき、クライアントの要求をバッファリングする。それによって、クライアントの応答消費速度が、要求の提出速度より遅れている場合、加速プログラムは、クライアントの送信を減速することができる。一形態では、本発明は、サーバから受信した応答の消費速度とサーバへ送信した要求の産出速度との差異をクライアント上で管理するための方法に関するものである。方法には、サーバにアクセスするというアプリケーションによる要求を、加速プログラムがトランスポート層接続を介して、アプリケーションの代わりにサーバと通信して、クライアント上の加速プログラムにより傍受することが含まれる。また、この方法には、受信したサーバ応答の消費速度とクライアントが送信した要求の産出速度との差異が、所定の閾値を下回ることを加速プログラムにより判定し、加速プログラムにより要求をクライアントのメモリエレメントに保存することが含まれる。一実施形態では、消費速度は産出速度未満である。本発明のいくつかの実施形態では、方法には、クライアントによる消費速度または産出速度の変化に基づいて、保存された要求の送信を、加速プログラムにより判断することが含まれる。その他の実施形態では、方法には、サーバとの接続を確立するというクライアントからの要求を受けて、機器により加速プログラムをクライアントに送信することが含まれる。一実施形態では、方法には、加速プログラムの受信時に、加速プログラムをクライアントにより自動的にインストールし、実行することが含まれる。加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれ得る。他の実施形態では、加速プログラムは、メモリエレメントに保存された要求を圧縮する。一実施形態では、本発明の方法には、クライアント上のアプリケーションがサーバへアクセスするための一つ以上のトランスポート層接続のプールを、加速プログラムにより提供することが含まれる。他の実施形態では、方法には、また、トランスポート層接続を介しての、クライアント上の複数のアプリケーションからの要求を、加速プログラムにより多重化することも含まれる。他の形態では、本発明は、サーバから受信した応答の消費速度とサーバへ送信した要求の産出速度との差異をクライアント上で管理するためのシステムに関するものである。システムには、サーバにアクセスするというアプリケーションによる要求を、加速プログラムがトランスポート層接続を介して、アプリケーションの代わりにサーバと通信して、クライアント上の加速プログラムにより傍受するための手段が含まれる。また、このシステムには、受信したサーバ応答の消費速度とクライアントが送信した要求の産出速度との差異が、所定の閾値を下回ることを加速プログラムにより判定し、加速プログラムにより要求をクライアントのメモリエレメントに保存するための手段が含まれる。いくつかの実施形態では、消費速度は産出速度未満である。一実施形態では、本発明のシステムには、クライアントによる消費速度または産出速度の変化に基づいて、保存された要求の送信を、加速プログラムにより判断するための手段が含まれる。他の実施形態では、システムには、サーバとの接続を確立するというクライアントからの要求を受けて、加速プログラムをクライアントに送信するためのアプリケーションが含まれる。いくつかの実施形態では、クライアントは加速プログラムを受信すると自動的にインストールし、実行する。一実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれる。さらなる一実施形態では、システムには、メモリエレメントに保存された要求を、加速プログラムにより圧縮するための手段が含まれる。いくつかの実施形態では、本発明の加速プログラムは、クライアント上のアプリケーションがサーバへアクセスするための一つ以上のトランスポート層接続のプールを提供する。その他の実施形態では、加速プログラムは、トランスポート層接続を介しての、クライアント上の複数のアプリケーションからの要求を多重化する。システムの一実施形態では、クライアントは、クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層にトランスペアレントに、加速プログラムを実行する。他の実施形態では、クライアントは、アプリケーションまたはサーバにトランスペアレントに、加速プログラムを実行する。他の形態では、クライアント側の加速機能は、次の加速技術の複数のものを総合的かつ効果的に使用する加速プログラムによって提供される。すなわち、1マルチプロトコル圧縮、2転送制御プロトコルプーリング、3転送制御プロトコル多重化、4転送制御プロトコルバッファリング、5キャッシング、である。加速プログラムは、クライアントとサーバ間のトランスポート層接続を確立し、トランスポート層でネットワークパケットを傍受する。加速プログラムは、カーネルレベルのデータ構造を使って、トランスポート層で傍受したネットワークパケットにアクセスし、続いて、加速プログラムの、一つのインタフェース箇所または実行箇所で、傍受したネットワークパケットに一つ以上の加速技術を使用する。一形態では、本発明は、クライアントとサーバ間のトランスポート層接続を介して通信されるネットワークパケットに対して、クライアント上の加速プログラムにより、複数の加速技術を実行するための方法に関するものである。ネットワークパケットは、加速プログラムによってトランスポート層で傍受される。この方法には、クライアント側の加速プログラムにより、加速プログラムとサーバ間のトランスポート層接続を確立すること、そして、加速プログラムにより、トランスポート層において、クライアントとサーバ間で通信されるネットワークパケットを傍受することが含まれる。この方法には、また、トランスポート層で傍受されたネットワークパケットに対して、加速プログラムによって複数の加速技術を使用することも含まれる。一実施形態では、方法には、加速プログラムにより、トランスポート層接続へのインタフェースによって提供されるカーネルレベルのデータ構造を介してネットワークパケットにアクセスすることが含まれる。方法には、また、加速プログラムによる、ネットワークパケットのサーバへの通信も含まれる。加速プログラムはクライアント上で、傍受したトランスポート層ネットワークパケットに対して、次の技術の一つを使用する。すなわち、1圧縮、2解凍、3伝送制御プロトコル接続プーリング、4伝送制御プロトコル接続多重化、5伝送制御プロトコル接続バッファリング、6キャッシング、である。他の実施形態では、方法には、加速プログラムによる、ネットワークパケットの一部の暗号化または復号化が含まれる。いくつかの実施形態では、本発明の方法には、加速プログラムによる、サーバへの仮想プライベートネットワーク接続の提供が含まれる。他の実施形態では、方法には、クライアントのオペレーティングシステムのユーザモードまたはカーネルモードでの、加速プログラムによる、複数の加速技術の実行が含まれる。本発明のいくつかの実施形態では、方法には、加速プログラムの実行可能命令の一部において、加速プログラムによって、複数の加速技術を次々と使用することが含まれる。その他の実施形態では、方法には、加速プログラムの実行可能命令における一つのインタフェースポイントで、加速プログラムによって、複数の加速技術を次々と使用することが含まれる。他の実施形態では、本発明の方法には、加速プログラムの実行可能命令の実行のインスタンスの間に、加速プログラムによって、複数の加速技術を次々と使用することが含まれる。いくつかの実施形態では、カーネルレベルのデータ構造は、ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを提供する。他の形態では、本発明は、クライアントとサーバ間のトランスポート層接続を介して通信されるネットワークパケットに対して、クライアント上の加速プログラムにより、複数の加速技術を実行するためのシステムに関するものである。ネットワークパケットは、加速プログラムによってトランスポート層で傍受される。このシステムには、クライアント側の加速プログラムにより、加速プログラムとサーバ間のトランスポート層接続を確立し、そして、加速プログラムにより、トランスポート層にて、クライアントとサーバ間で通信されるネットワークパケットを傍受するための手段が含まれる。このシステムには、また、トランスポート層で傍受されたネットワークパケットに対して、加速プログラムによって複数の加速技術を使用するための手段も含まれる。本発明のシステムの一実施形態では、加速プログラムは、トランスポート層接続へのインタフェースをプログラミングするアプリケーションを呼び出すことにより、カーネルレベルのデータ構造を取得する。一実施形態では、加速プログラムは、ネットワークパケットのサーバへの通信を行う。いくつかの実施形態では、複数の加速技術は、次のうちの少なくとも一つで構成される。すなわち、1圧縮、2解凍、3伝送制御プロトコル接続プーリング、4伝送制御プロトコル接続多重化、5伝送制御プロトコル接続バッファリング、6キャッシング、である。他の実施形態では、加速プログラムは、ネットワークパケットの一部を暗号化または復号化する。いくつかの実施形態では、加速プログラムは、サーバへの仮想プライベートネットワーク接続を提供する。他の実施形態では、加速プログラムは、クライアントのオペレーティングシステムのユーザモードまたはカーネルモードで実行する。いくつかの実施形態では、本発明の加速プログラムには、複数の加速技術の各々を次々と使用する実行可能命令が含まれる。その他の実施形態では、加速プログラムは、複数の加速技術が次々と使用される一つのインタフェース箇所で構成される。その他の実施形態では、加速プログラムは、複数の加速技術が次々と使用される実行のインスタンスを有する実行可能命令で構成される。一実施形態では、加速プログラムは、カーネルレベルのデータ構造を介してのトランスポート層で、ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを取得する。他の形態では、本発明は、クライアントとサーバとのクライアント通信について、そのような通信には利用不可能と判断される仲介物を回避するよう、動的にリダイレクトするためのシステムおよび方法を対象とするものである。クライアント上の加速プログラムは、クライアントとサーバ間のトランスポート層接続を確立し、クライアントからサーバへの通信を傍受する。トランスポート層接続は、ゲートウェイ、プロキシ、機器等の仲介物を通して確立され得る。クライアント側の加速プログラムが、その仲介物はクライアントによるサーバへの通信には利用できないと判断する場合、加速プログラムはその仲介物を回避するために、自動的にサーバへの第二のトランスポート層接続を確立する。次に、加速プログラムは、傍受されたクライアントの通信を第二のトランスポート層接続を介してサーバへ送信する。加速プログラムは、クライアントのユーザまたはアプリケーションにはトランスペアレントに、傍受されたクライアントの通信をサーバへ自動的にリダイレクトする。一形態では、本発明は、ある仲介物がクライアントによるサーバへの通信に使用できないと判断すると、その仲介物を回避するために、クライアント上でクライアントのサーバへの通信をリダイレクトするための方法に関するものである。方法には、クライアント上の加速プログラムにより、ある仲介物を介してクライアントとサーバ間のトランスポート層接続を確立することと、加速プログラムにより、その仲介物がクライアントによるトランスポート層接続を介してのサーバへの通信には使用できないことを判断することが含まれる。方法には、また、加速プログラムにより、クライアントからサーバへの通信を傍受することと、加速プログラムにより、加速プログラムとサーバとの間の第二トランスポート層接続を確立して仲介物を回避することが含まれる。一実施形態では、第二トランスポート層接続は、直接サーバとの間に確立される。他の実施形態では、第二トランスポート層接続は、第二仲介物を介してサーバとの間に確立される。仲介物および第二仲介物には、キャッシュ、ゲートウェイ、ファイアウォール、サーバ、プロキシ、ルータ、スイッチ、ブリッジが含まれる。一実施形態では、本発明の方法には、加速プログラムにより、第二トランスポート層接続を介してサーバへの通信を送信することが含まれる。いくつかの実施形態では、方法には、加速プログラムを仲介物から受信すると、クライアントにより、その加速プログラムを自動的にインストールおよび実行することが含まれる。一実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれる。他の実施形態では、方法には、加速プログラムにより、次の加速技術のうちの一つを通信に使用することが含まれる。すなわち、1圧縮、2伝送制御プロトコル接続プーリング、3伝送制御プロトコル接続多重化、4伝送制御プロトコル接続バッファリング、5キャッシング、である。その他の実施形態では、方法には、加速プログラムによる、クライアントとサーバ間の通信の暗号化が含まれる。他の形態では、本発明は、ある仲介物がクライアントによるサーバへの通信に使用できないと判断すると、その仲介物を回避するために、クライアント上でクライアントのサーバへの通信をリダイレクトするためのシステムに関するものである。システムには、クライアント上の加速プログラムにより、仲介物を介してクライアントとサーバ間のトランスポート層接続を確立し、加速プログラムにより、その仲介物がクライアントによるトランスポート層接続を介してのサーバへの通信には使用できないことを判断するための手段が含まれる。システムには、また、加速プログラムにより、クライアントからサーバへの通信を傍受し、加速プログラムにより、加速プログラムとサーバとの第二トランスポート層接続を確立して仲介物を回避するための手段が含まれる。一実施形態では、システムは、第二トランスポート層接続を直接サーバとの間に確立する。他の実施形態では、システムは、第二トランスポート層接続を第二仲介物を介してサーバとの間に確立する。仲介物および第二仲介物には、キャッシュ、ゲートウェイ、ファイアウォール、サーバ、プロキシ、ルータ、スイッチ、ブリッジが含まれ得る。本発明のシステムの一実施形態では、加速プログラムは、第二トランスポート層接続を介してサーバへ通信を送信する。他の実施形態では、システムには、加速プログラムを仲介物から受信すると、クライアントにより、その加速プログラムを自動的にインストールおよび実行するための手段が含まれる。いくつかの実施形態では、加速プログラムには、クライアントのネットワークスタックのトランスポート層にインタフェース接続したフィルタデバイスドライバが含まれる。他の実施形態では、システムには、加速プログラムが次の加速技術のうちの一つを通信に使用することが含まれる。すなわち、1圧縮、2伝送制御プロトコル接続プーリング、3伝送制御プロトコル接続多重化、4伝送制御プロトコル接続バッファリング、5キャッシング、である。本発明の加速プログラムは、クライアントとサーバ間の通信の暗号化も行う。本発明の様々な実施形態の詳細は、添付図面および以下の明細書に記述される。本発明は、例えば、以下を提供する。項目1加速プログラムをクライアントに動的に提供して、自動的にインストールし、実行するための方法であって、該加速プログラムは、リモートアクセスされたアプリケーションへの該クライアントによるアクセスを加速し、該方法は、aサーバとの通信セッションを確立したいという、クライアントによる要求を機器によって受信するステップと、b該サーバ経由で提供されるアプリケーションへのクライアントのアクセスの加速を該クライアント上で実行するために、ネットワークドライバを備える加速プログラムを該クライアントに、該機器によって送信するステップと、c該加速プログラムを受信すると、該クライアントによって、該クライアントのストレージに、該ネットワークドライバの静かなインストールを自動的に実行するステップと、d該ネットワークドライバがインストールされると、該クライアントによって、該クライアントの該ネットワークスタックに割り当てられたメモリ内の該ネットワークドライバを自動的に実行する、ステップとを包含する、方法。項目2前記サーバと前記通信セッションが確立すると、前記加速プログラムを前記クライアントに、前記機器によって送信するステップを包含する、項目1に記載の方法。項目3前記加速プログラムによって、前記サーバと前記通信セッションを確立するステップを包含する、項目1に記載の方法。項目4前記クライアントの再起動、または該クライアントのユーザによる相互作用のうちの一つをすることなく、前記加速プログラムを該クライアント上にインストールするステップを包含する、項目1に記載の方法。項目5ステップb、ステップc、またはステップdのうちの一つは、前記クライアント上で、該クライアントのユーザ、該クライアントのアプリケーション、または前記サーバのうちの一つにはトランスペアレントに実行される、項目1に記載の方法。項目6前記ネットワークドライバは、前記ネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、項目1に記載の方法。項目7前記加速プログラムは、該サーバ上のアプリケーションに、クライアント側で加速されたアクセスを、前記ネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに提供する、項目1に記載の方法。項目8前記機器によって、前記加速プログラムを備える第一のプログラムを前記クライアントに送信するステップを包含する、項目1に記載の方法。項目9前記第一のプログラムを受信すると、前記クライアントによって、該第一のプログラムを自動的に実行し、前記加速プログラムをインストールして、実行するステップを包含する、項目8に記載の方法。項目10前記第一のプログラムは、ブラウザに提供され、該ブラウザ上で実行される実行可能な命令を備える、項目8に記載の方法。項目11e前記サーバ上のアプリケーションにアクセスしたいという、前記クライアントからの要求を前記機器によって、受信するステップと、f該機器によって、前記加速プログラムに通信する該クライアントにメッセージを送信し、該クライアントと該サーバとの間の通信上で、少なくとも一つの加速技術を実行するステップとを包含する、項目1に記載の方法。項目12g前記アプリケーションは、加速されることが可能であるかどうかを、前記機器によって、判断するステップと、h該アプリケーションが、加速されることが可能である場合、該機器によって、前記メッセージを前記クライアントに送信するステップとを包含する、項目11に記載の方法。項目13前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行するステップを包含する、項目1に記載の方法。項目14前記加速プログラムによって、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行するステップを包含する、項目1に記載の方法。項目15前記ネットワークドライバによって、前記機器または前記サーバのうちの一つに仮想プライベートネットワーク接続を確立するステップを包含する、項目1に記載の方法。項目16前記機器は、キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、項目1に記載の方法。項目17加速プログラムをクライアントに動的に提供して、リモートアクセスされたアプリケーションへの該クライアントによるアクセスを加速するための方法であって、該方法は、aサーバを経由してアプリケーションにアクセスしたいという、クライアントからの要求を、機器によって受信するステップと、b該アプリケーションは、加速されることが可能であると、該機器によって判断するステップと、c該クライアント上で、自動的にインストールして、実行するための加速プログラムを該機器によって、該クライアントに送信するステップとを包含する、方法。項目18前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的に実行して、インストールするステップを包含する、項目17に記載の方法。項目19前記クライアントによって、該クライアント上のアプリケーション、該クライアント上のユーザ、または前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを受信すること、インストールすること、または実行することのうちの一つのことを包含する、項目17に記載の方法。項目20前記機器によって、前記アプリケーションが、加速されることができないと判断して、前記要求を前記サーバに転送するステップを包含する、項目17に記載の方法。項目21前記機器によって、前記アプリケーションが、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つで加速されることが可能であると判断することを包含する、項目17に記載の方法。項目22前記機器によって、前記アプリケーションを加速することが可能であると判断された前記加速技術を提供するように構成された前記加速プログラムを、該機器によって送信することを包含する、項目19に記載の方法。項目23前記加速プログラムによって、前記加速技術のうちの一つを実行することを包含する、項目19に記載の方法。項目24前記加速プログラムによって、前記機器または前記サーバのうちの一つに仮想プライベートネットワークを提供することを包含する、項目17に記載の方法。項目25前記機器は、キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、項目17に記載の方法。項目26加速プログラムをクライアントに動的に提供して、リモートアクセスされたアプリケーションへの該クライアントによるアクセスを加速するための機器であって、該機器は、クライアントからの要求を受信し、サーバを経由してアプリケーションにアクセスするための手段と、該アプリケーションが、加速されることを可能であると判断するための手段と、該クライアントに加速プログラムを送信するための手段であって、該加速プログラムは、該クライアント上で自動的にインストールされ、実行されるように構成される、手段とを備える、機器。項目27前記機器によって、前記アプリケーションは、加速されることができないことを判断し、前記サーバに前記要求を転送するための手段を備える、項目26に記載の機器。項目28前記アプリケーションは、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つによって、加速されることが可能であると、前記機器によって、判断するための手段を備える、項目26に記載の機器。項目29前記アプリケーションを加速することが可能であると、前記機器によって判断された前記加速技術を提供するように構成された前記加速プログラムを、該機器によって、送信するための手段を備える、項目26に記載の機器。項目30前記加速プログラムを用いて、仮想プライベートネットワークを確立するための手段を備える、項目26に記載の機器。項目31キャッシュ、ゲートウェイ、サーバ、ファイアウォール、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、項目26に記載の機器。項目32サーバへの1つ以上のトランスポート層接続をクライアント上にプールすることによって、クライアントによるサーバへのアクセスを加速する方法であって、該方法は、a第一のアプリケーションによる、サーバと第一のトランスポート層接続を確立したいという第一の要求を、クライアント上の加速プログラムによって傍受するステップと、b該加速プログラムと該サーバとの間のトランスポート層接続を、該加速プログラムによって確立するステップと、c第二のアプリケーションによる、該サーバと第二のトランスポート層接続を確立したいという第二の要求を、該加速プログラムによって傍受するステップと、e該確立されたトランスポート層接続を該加速プログラムによって使用し、該第二のアプリケーションのための該要求されたトランスポート層接続を提供するステップとを包含する、方法。項目33前記サーバとの接続またはセッションのうちの一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを、機器によって、該クライアントに送信するステップを包含する、項目32に記載の方法。項目34前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、項目32に記載の方法。項目35前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、項目32に記載の方法。項目36前記加速プログラムによって、前記確立されたトランスポート層接続を経由して、前記クライアント上の複数のアプリケーションからの要求を多重化するステップを包含する、項目32に記載の方法。項目37前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行するステップを包含する、項目32に記載の方法。項目38前記加速プログラムによって、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行するステップを包含する、項目32に記載の方法。項目39前記加速プログラムによって、リセットコマンドまたは終了コマンドを受信すると、前記第一のトランスポート層接続を閉じるステップを包含する、項目32に記載の方法。項目40前記加速プログラムによって、前記サーバと、前記第一のアプリケーションまたは前記第二のアプリケーションとの間のアイドル活動の期間の間、前記トランスポート層接続を開いたまま維持するステップを包含する、項目32に記載の方法。項目41前記加速プログラムによって、前記トランスポート層接続を開いたままに保つ命令を、前記クライアントから前記サーバへの通信に挿入するステップを包含する、項目40に記載の方法。項目42前記サーバに送信され、該サーバから確認応答されたバイト数を各アプリケーションに対して比較することによって、前記トランスポート層接続が、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つによって現在使用されていることを、前記加速プログラムによって判断するステップを包含する、項目32に記載の方法。項目43前記トランスポート層接続が、前記第一のアプリケーションによって現在使用中であることを、前記加速プログラムによって判断するステップと、前記第二のアプリケーションによって使用するために、前記加速プログラムと前記サーバとの間の第二のトランスポート層接続を開くステップとを、ステップeは包含する、項目32に記載の方法。項目44前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するステップを、ステップbは包含する、項目32に記載の方法。項目45前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを、前記機器によって確立するステップを包含する、項目44に記載の方法。項目46前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目32に記載の方法。項目47前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、項目32に記載の方法。項目48サーバへの1つ以上のトランスポート層接続をクライアント上にプールすることによって、クライアントによる1つ以上のサーバへのアクセスを加速化するためのシステムであって、第一のアプリケーションによる、サーバとの第一のトランスポート層接続を確立したいという第一の要求を、該クライアントの加速プログラムによって傍受するための手段と、該加速プログラムと該サーバとの間のトランスポート層接続を、該加速プログラムによって確立するための手段と、第二のアプリケーションによる、該サーバとの第二のトランスポート層接続を確立したいという第二の要求を、該加速プログラムによって傍受するための手段と、該確立されたトランスポート層接続を該加速プログラムによって使用して、該第二のアプリケーションのための該要求されたトランスポート層接続を提供するための手段とを備える、システム。項目49前記クライアントによって、前記加速プログラムを、自動的にインストールし、実行するための手段を備える、項目48に記載のシステム。項目50前記サーバとの接続またはセッションのうち一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを該クライアントに送信する機器を備える、項目48に記載のシステム。項目51前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、項目48に記載のシステム。項目52前記加速プログラムによって、前記第二のトランスポート層接続を経由して、前記クライアント上の複数のアプリケーションからの要求を多重化するための手段を備える、項目48に記載のシステム。項目53前記加速プログラムは、圧縮と、解凍と、伝送制御プロトコルTCP接続多重化と、TCPバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行する、項目48に記載のシステム。項目54前記加速プログラムは、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行する、項目48に記載のシステム。項目55前記加速プログラムによって、リセットコマンドまたは終了コマンドの受信を受けて、前記トランスポート層接続を閉じるための手段を備える、項目48に記載のシステム。項目56前記加速プログラムは、前記サーバと、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つとの間のアイドル活動の期間の間、前記トランスポート層接続を開いたまま維持する、項目48に記載のシステム。項目57前記加速プログラムは、前記接続を開いたままに保つ命令を、前記クライアントから前記サーバへの通信に挿入する、項目56に記載のシステム。項目58前記サーバに送信され、該サーバから確認応答されたバイト数を各アプリケーションに対して比較することによって、前記トランスポート層接続が、前記第一のアプリケーションまたは前記第二のアプリケーションのうちの一つによって現在使用されていることを、前記加速プログラムは判断する、項目48に記載のシステム。項目59前記加速プログラムは、前記トランスポート層接続が、前記第一のアプリケーションによって現在使用中であることを判断し、前記第二のアプリケーションによって使用するために、前記加速プログラムと前記サーバとの間の第二のトランスポート層接続を開く、項目48に記載のシステム。項目60前記加速プログラムと、前記サーバと通信している機器との間に、前記第二のトランスポート層接続を確立するための手段を備える、項目48に記載のシステム。項目61前記機器は、前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを備える、項目48に記載のシステム。項目62前記加速プログラムは、前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアント上で実行する、項目48に記載のシステム。項目63前記加速プログラムは、前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアント上で実行する、項目48に記載のシステム。項目64共有されたトランスポート層接続経由の複数のアプリケーション要求を多重化することにより、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するための方法であって、該方法は、aサーバへのアクセスという、クライアントの第一のアプリケーションによる第一の要求を、該クライアント上の加速プログラムによって傍受するステップと、b該第一の要求を、該加速プログラムと該サーバとの間に確立されたトランスポート層接続を経由して、該加速プログラムによって送信するステップと、c該サーバへのアクセスという、該クライアントの第二のアプリケーションによる第二の要求を、該加速プログラムによって傍受するステップと、d該第二の要求を、該第一のアプリケーションによって使用された該確立されたトランスポート層接続を経由して、該加速プログラムによって送信するステップとを包含する、方法。項目65前記第一のアプリケーションの前記要求への応答を前記サーバから受信すると、前記第二の要求を前記加速プログラムによって送信するステップを包含する、項目64に記載の方法。項目66前記第一のアプリケーションが前記トランスポート層接続を現在使用していないと判断すると、前記第二の要求を前記加速プログラムによって送信するステップを包含する、項目64に記載の方法。項目67前記第一のアプリケーションによって前記サーバへ送信されたバイト数と、該サーバによって確認応答されたバイト数とを比較することによって、該第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムで判断するステップを包含する、項目66に記載の方法。項目68前記クライアントと前記サーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、前記第一のアプリケーションがトランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するステップを包含する、項目66に記載の方法。項目69前記トランスポート層接続を経由する前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するステップを包含する、項目64に記載の方法。項目70前記クライアントの複数のアプリケーションによって使用するための、前記サーバへの複数のトランスポート層接続を、前記加速プログラムによってプールするステップを包含する、項目64に記載の方法。項目71前記サーバとの接続を確立したいという前記クライアントからの要求を受けて、前記加速プログラムを、機器によって、該クライアントに送信するステップを包含する、項目64に記載の方法。項目72前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、項目64に記載の方法。項目73前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、項目64に記載の方法。項目74前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを実行するステップを包含する、項目64に記載の方法。項目75前記加速プログラムによって、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行するステップを包含する、項目64に記載の方法。項目76前記加速プログラムによって、前記第一のアプリケーションおよび前記第二のアプリケーションに対するリセットコマンドまたは終了コマンドのうちの一つを受信すると、前記トランスポート層接続を閉じるステップを包含する、項目64に記載の方法。項目77前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するステップを、ステップbは包含する、項目64に記載の方法。項目78前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを、前記機器によって確立するステップを包含する、項目77に記載の方法。項目79前記機器によって、一つ以上のトランスポート層接続のプールを経由して、前記加速プログラムと前記サーバとの間の複数の通信を多重化するステップを包含する、項目77に記載の方法。項目80前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目64に記載の方法。項目81前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、項目64に記載の方法。項目82共有されたトランスポート層接続を経由する複数のアプリケーション要求を多重化することによって、サーバ上の一つ以上のアプリケーションへのクライアントによるクライアントアクセスを加速するためのシステムであって、該システムは、クライアントの第一のアプリケーションによる、サーバへアクセスしたいという第一の要求を、該クライアント上の加速プログラムによって傍受するための手段と、該第一の要求を、該加速プログラムと該サーバとの間に確立されたトランスポート層接続経由で、該加速プログラムによって送信するための手段と、クライアントの第二のアプリケーションによる、該サーバへアクセスしたいという第二の要求を、加速プログラムによって傍受するための手段と、該第二の要求を、該第一のアプリケーションによって使用された該確立されたトランスポート層接続経由で、該加速プログラムによって送信するための手段とを備える、システム。項目83前記第一のアプリケーションの前記要求の応答を前記サーバから受信すると、前記第二の要求を前記加速プログラムによって送信するための手段を備える、項目82に記載のシステム。項目84前記加速プログラムによって、前記第一のアプリケーションは、前記トランスポート層接続を現在使用していないと判断すると、前記第二の要求を送信するための手段を備える、項目82に記載のシステム。項目85前記第一のアプリケーションによって前記サーバへ送信されたバイト数と、該サーバによって確認応答されたバイト数とを比較することによって、該第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するための手段を備える、項目82に記載のシステム。項目86前記クライアントと前記サーバとの間のメッセージの中のメッセージ識別子の長さをチェックすることによって、前記第一のアプリケーションが前記トランスポート層接続を現在使用していないことを、前記加速プログラムによって判断するための手段を備える、項目85に記載のシステム。項目87前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を前記加速プログラムによって多重化するための手段を備える、項目82に記載のシステム。項目88複数のアプリケーションによって使用するための、前記サーバへの複数のトランスポート層接続を、前記加速プログラムによって、プールするための手段を備える、項目82に記載のシステム。項目89前記サーバとの接続またはセッションのうち一つを確立したいという前記クライアントからの要求を受けて、前記加速プログラムを該クライアントに送信する機器を備える、項目82に記載のシステム。項目90前記加速プログラムを受信すると、前記クライアントが自動的に前記加速プログラムをインストールして、実行することを含む、項目89に記載のシステム。項目91前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、項目82に記載のシステム。項目92前記加速プログラムは、圧縮と、解凍と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行する、項目82に記載のシステム。項目93前記加速プログラムは、前記クライアントと前記サーバとの間の通信の暗号化または復号化のうちの一つを実行する、項目82に記載のシステム。項目94前記加速プログラムによって、前記第一のアプリケーションおよび前記第二のアプリケーションのうちの一つに対するリセットコマンドまたは終了コマンドのうちの一つを受信すると、前記トランスポート層接続を閉じるための手段を供える、項目82に記載のシステム。項目95前記加速プログラムと、前記サーバと通信している機器との間に、前記トランスポート層接続を確立するための手段を備える、項目82に記載のシステム。項目96前記機器は、前記加速プログラムによって使用するための一つ以上のトランスポート層接続のプールを備える、項目82に記載のシステム。項目97前記機器は、前記一つ以上のトランスポート層接続のプール経由で、前記加速プログラムと前記サーバとの間の複数の通信を多重化する、項目82に記載のシステム。項目98前記クライアントは、該クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目82に記載のシステム。項目99前記クライアントは、前記第一のアプリケーション、前記第二のアプリケーション、または前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目82に記載のシステム。項目100サーバから受信した応答の消費速度と、該サーバへ送信した要求の産出速度との差異をクライアント上で管理するための方法であって、該方法は、a該クライアント上の加速プログラムによって、サーバにアクセスしたいというアプリケーションによる要求を傍受するステップであって、該加速プログラムは、トランスポート層接続経由で、該アプリケーションの代わりに該サーバと通信する、ステップと、b受信したサーバ応答の消費速度と、該クライアントによって送信された要求の産出速度との差異が、所定の閾値を下回ることを該加速プログラムによって判断するステップと、c該加速プログラムによって、該要求を該クライアントのメモリエレメントに格納するステップとを包含する、方法。項目101前記消費速度は、前記産出速度未満である、項目100に記載の方法。項目102前記クライアントによる前記消費速度または前記産出速度のうちの一つの変化に基づいて、前記格納された要求を送信することを、前記加速プログラムによって決定するステップを包含する、項目100に記載の方法。項目103前記サーバへの接続を確立したいという前記クライアントからの要求を受けて、機器によって、前記加速プログラムを該クライアントに送信するステップを包含する、項目100に記載の方法。項目104前記加速プログラムを受信すると、前記クライアントによって、該加速プログラムを自動的にインストールし、実行するステップを包含する、項目103に記載の方法。項目105前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、項目100に記載の方法。項目106前記加速プログラムによって、メモリエレメントに格納された前記要求を圧縮するステップを包含する、項目100に記載の方法。項目107前記クライアント上の前記アプリケーションによって前記サーバへアクセスするための一つ以上のトランスポート層接続のプールを、前記加速プログラムによって提供するステップを包含する、項目100に記載の方法。項目108前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するステップを包含する、項目100に記載の方法。項目109前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目100に記載の方法。項目110前記アプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、項目100に記載の方法。項目111サーバから受信した応答の消費速度と、該サーバへ送信した要求の産出速度との差異をクライアント上で管理するためのシステムであって、該システムは、該クライアント上の加速プログラムによって、サーバにアクセスしたいというアプリケーションによる要求を傍受するための手段であって、該加速プログラムは、トランスポート層接続経由で、該アプリケーションの代わりに該サーバと通信する、手段と、受信したサーバ応答の消費速度と、該クライアントによって送信された要求の産出速度との差異が、所定の閾値を下回ることを該加速プログラムによって判断するための手段と、該加速プログラムによって、該要求を該クライアントのメモリエレメントに格納するための手段とを備える、システム。項目112前記消費速度は、前記産出速度未満である、項目111に記載のシステム。項目113前記クライアントによる前記消費速度または前記産出速度のうちの一つの変化に基づいて、格納された要求を送信することを、前記加速プログラムによって決定するための手段を備える、項目111に記載のシステム。項目114前記サーバへの接続を確立したいという前記クライアントからの要求を受けて、機器によって、前記加速プログラムを該クライアントに送信するための手段を備える、項目111に記載のシステム。項目115前記加速プログラムを受信すると、前記クライアントが、該加速プログラムを自動的にインストールし、実行することを含む、項目114に記載のシステム。項目116前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層にインタフェースされたフィルタデバイスドライバを備える、項目111に記載のシステム。項目117前記加速プログラムによって、メモリエレメントに格納された前記要求を圧縮するための手段を備える、項目111に記載のシステム。項目118前記クライアント上の前記アプリケーションによって前記サーバへアクセスするための一つ以上のトランスポート層接続のプールを、前記加速プログラムによって提供するための手段を備える、項目111に記載のシステム。項目119前記トランスポート層接続経由の、前記クライアント上の複数のアプリケーションからの要求を、前記加速プログラムによって多重化するための手段を備える、項目111に記載のシステム。項目120前記クライアントのネットワークスタックのネットワーク層、セッション層、または前記アプリケーション層のうちの一つにはトランスペアレントに、該クライアントは、前記加速プログラムを実行する、項目111に記載のシステム。項目121前記アプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記クライアントは、前記加速プログラムを実行する、項目111に記載のシステム。項目122クライアントとサーバとの間のトランスポート層接続経由で通信されるネットワークパケットに対して、該クライアント上の加速プログラムによって、複数の加速技術を実行するための方法であって、該ネットワークパケットは、該加速プログラムによって該トランスポート層で傍受され、該方法は、aクライアント上の加速プログラムによって、該加速プログラムと該サーバとの間にトランスポート層接続を確立するステップと、b該加速プログラムによって、該トランスポート層で、該クライアントと該サーバ間との間で通信されるネットワークパケットを傍受するステップと、c該トランスポート層で傍受された該ネットワークパケット上で、該加速プログラムによって、複数の加速技術を実行するステップとを包含する、方法。項目123前記トランスポート層接続へのインタフェースによって提供されるカーネルレベルのデータ構造経由の前記ネットワークパケットに、前記加速プログラムによってアクセスするステップを包含する、項目122に記載の方法。項目124前記加速プログラムによって、前記ネットワークパケットから前記サーバへ通信するステップを包含する、項目122に記載の方法。項目125前記ステップdは、前記加速プログラムによって、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記クライアント上で実行するステップを包含する、項目122に記載の方法。項目126前記加速プログラムによって、前記ネットワークパケットの一部分の暗号化または復号化のうちの一つを行うステップを包含する、項目122に記載の方法。項目127前記加速プログラムによって、前記サーバへの仮想プライベートネットワーク接続を提供するステップを包含する、項目122に記載の方法。項目128前記クライアントのオペレーティングシステムのユーザモードまたはカーネルモードのうちの一つにおいて、前記加速プログラムによって、前記複数の加速技術を実行するステップを包含する、項目122に記載の方法。項目129前記加速プログラムの実行可能な命令の一部分において、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、項目122に記載の方法。項目130前記加速プログラムの実行可能な命令の一つのインタフェースポイントで、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、項目122に記載の方法。項目131前記加速プログラムの実行可能な命令の実行のインスタンスの間に、前記加速プログラムによって、互いに連続する前記複数の加速技術を実行するステップを包含する、項目122に記載の方法。項目132前記カーネルレベルのデータ構造を経由して、前記ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを提供するステップを包含する、項目122に記載の方法。項目133前記クライアントのネットワークスタックのネットワーク層またはセッション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目122に記載の方法。項目134前記クライアントのユーザ、該クライアント上のアプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目122に記載の方法。項目135クライアントとサーバとの間のトランスポート層接続経由で通信されるネットワークパケットに対して、クライアント上の加速プログラムによって、複数の加速技術を実行するためのシステムであって、該ネットワークパケットは、該加速プログラムによって該トランスポート層で傍受され、該システムは、クライアント上の加速プログラムによって、該加速プログラムと該サーバとの間にトランスポート層接続を確立するための手段と、該加速プログラムによって、該トランスポート層で、該クライアントと該サーバとの間で通信されるネットワークパケットを傍受するための手段と、該トランスポート層で傍受された該ネットワークパケット上で、該加速プログラムによって、複数の加速技術を実行するための手段とを備える、システム。項目136前記加速プログラムは、前記トランスポート層接続へのインタフェースをプログラミングするアプリケーションを呼び出すことによって、カーネルレベルのデータ構造を取得する、項目135に記載のシステム。項目137前記加速プログラムは、前記ネットワークパケットから前記サーバへ通信する、項目135に記載のシステム。項目138前記複数の加速技術は、圧縮と、解凍と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとのうちの少なくとも一つを備える、項目135に記載のシステム。項目139前記加速プログラムは、前記ネットワークパケットの一部分の暗号化または復号化のうちの一つを行う、項目135に記載のシステム。項目140前記加速プログラムは、前記サーバへの仮想プライベートネットワーク接続を提供する、項目135に記載のシステム。項目141前記加速プログラムは、前記クライアントのオペレーティングシステムのユーザモードまたはカーネルモードのうちの一つで実行する、項目135に記載のシステム。項目142前記加速プログラムは、互いに連続する前記複数の加速技術のそれぞれを実行する実行可能な命令を備える、項目135に記載のシステム。項目143前記加速プログラムは、前記複数の加速技術が互いに連続して実行される一つのインタフェースポイントを備える、項目135に記載のシステム。項目144前記加速プログラムは、前記複数の加速技術が互いに連続して実行される実行のインスタンスを有する実行可能な命令を備える、項目135に記載のシステム。項目145前記加速プログラムは、前記カーネルレベルのデータ構造を経由して、前記トランスポート層で、前記ネットワークパケットの一つ以上のアプリケーションレベルのプロトコルペイロードへのアクセスを取得する、項目135に記載のシステム。項目146前記クライアントは、該クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目135に記載のシステム。項目147前記クライアントは、該クライアントのユーザ、該クライアント上のアプリケーションまたは前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目135に記載のシステム。項目148クライアントによって、仲介物がサーバとの通信に使用不可能であると判断すると、該クライアントの該サーバへの通信を、該クライアント上で、該仲介物をバイパスするように、リダイレクトする方法であって、該方法は、aクライアント上の加速プログラムによって、該クライアントとサーバとの間のトランスポート層接続を仲介物経由で確立するステップと、b該加速プログラムによって、該仲介物が、該クライアントによる該サーバへの該トランスポート層接続経由で通信することに、使用可能でないと判断するステップと、c該加速プログラムによって、該クライアントから該サーバへの通信を傍受するステップと、d該加速プログラムによって、該仲介物をバイパスするために、該加速プログラムと該サーバとの間に第二のトランスポート層接続を確立するステップとを包含する、方法。項目149ステップdは、前記加速プログラムによって、前記サーバとの前記第二のトランスポート層接続を直接確立するステップを包含する、項目148に記載の方法。項目150ステップdは、前記加速プログラムによって、第二の仲介物経由で、前記サーバとの前記第二のトランスポート層接続を確立するステップを包含する、項目148に記載の方法。項目151前記加速プログラムによって、前記第二のトランスポート層接続経由で、前記サーバへの通信を送信するステップを包含する、項目148に記載の方法。項目152前記加速プログラムを前記仲介物から受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するステップを包含する、項目148に記載の方法。項目153前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、項目148に記載の方法。項目154前記加速プログラムによって、圧縮と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを、前記通信上で実行するステップを包含する、項目148に記載の方法。項目155前記加速プログラムによって、前記クライアントと前記サーバとの間の通信を暗号化するステップを包含する、項目148に記載の方法。項目156前記クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、該クライアントによって前記加速プログラムを実行するステップを包含する、項目148に記載の方法。項目157前記クライアントのアプリケーション、該クライアントのユーザ、または前記サーバのうちの一つにはトランスペアレントに、前記クライアントによって前記加速プログラムを実行するステップを包含する、項目148に記載の方法。項目158前記仲介物は、キャッシュ、ゲートウェイ、ファイアウォール、サーバ、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、項目148に記載の方法。項目159クライアントによって、仲介物がサーバとの通信に使用不可能であると判断すると、該クライアントの該サーバへの通信は、該クライアント上で、該仲介物をバイパスするように、リダイレクトするシステムであって、該システムは、クライアント上の加速プログラムによって、クライアントとサーバとの間のトランスポート層接続を、仲介物を経由して確立するための手段と、該加速プログラムによって、該仲介物が、該クライアントによる該サーバへの該トランスポート層を経由する通信には使用不可能であると判断するための手段と、該加速プログラムによって、該クライアントから該サーバへの通信を傍受するための手段と、該加速プログラムによって、該仲介物をバイパスするために、該加速プログラムと該サーバとの間に第二のトランスポート層接続を確立するための手段とを備える、システム。項目160前記加速プログラムは、直接前記サーバとの間に、前記第二のトランスポート層接続を確立する、項目159に記載のシステム。項目161前記加速プログラムは、第二の仲介物経由で、前記サーバと、前記第二のトランスポート層接続を確立する、項目159に記載のシステム。項目162前記加速プログラムは、前記第二のトランスポート層接続を経由する前記サーバへの通信を送信する、項目159に記載のシステム。項目163前記加速プログラムを前記仲介物から受信すると、前記クライアントによって、該加速プログラムを自動的にインストールして、実行するための手段を備える、項目159に記載のシステム。項目164前記加速プログラムは、前記クライアントのネットワークスタックのトランスポート層に、インタフェースされたフィルタデバイスドライバを備える、項目159に記載のシステム。項目165前記加速プログラムは、前記通信のために、圧縮と、伝送制御プロトコル接続プーリングと、伝送制御プロトコル接続多重化と、伝送制御プロトコルバッファリングと、キャッシングとの加速技術のうちの一つを実行する、項目159に記載のシステム。項目166前記加速プログラムは、前記クライアントと前記サーバとの間の通信の暗号化する、項目159に記載のシステム。項目167前記クライアントは、該クライアントのネットワークスタックのネットワーク層、セッション層、またはアプリケーション層のうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目159に記載のシステム。項目168前記クライアントは、該クライアント上のアプリケーション、該クライアントのユーザ、または前記サーバのうちの一つにはトランスペアレントに、前記加速プログラムを実行する、項目159に記載のシステム。項目169前記仲介物は、キャッシュ、ゲートウェイ、ファイアウォール、サーバ、プロキシ、ルータ、スイッチ、またはブリッジのうちの一つを備える、項目159に記載のシステム。本発明の特徴および利点は、以下に記述される詳細な説明をこれらの図面と併せて読めば、より明らかになるであろう。詳細説明の中では、全体を通して類似した参照文字が対応する要素を示している。図面では、類似した参照番号が、一般に、同一の、機能的に類似した、および/または構造的に類似した要素を表している。本発明の詳細な説明本発明の具体例は、リモートアクセスアプリケーション等で、クライアントとサーバ間の通信性能を向上させるために、ネットワーク環境におけるクライアント側加速技術を展開、実行することを対象としている。ある具体例では、本発明のクライアント側加速プログラムを、クライアントの動作に対してトランスペアレントかつシームレスな方法で、クライアント上に自動的にインストールし、実行することを対象としている。他の具体例では、本発明は、サーバまたはリモートアプリケーションへのクライアントのアクセスが加速できると機器デバイスが判断すると、そのデバイスがクライアント側加速プログラムをクライアントに動的に提供することを対象としている。他の具体例では、本発明は、クライアント上で次の加速技術のうちの一つ以上を使用する加速プログラムを対象としている。すなわち、1マルチプロトコル圧縮、2転送制御プロトコルプーリング、3転送制御プロトコル多重化、4転送制御プロトコルバッファリング、5キャッシング、である。ある具体例では、本発明は、これらの加速技術をトランスポート層で、カーネルレベルのデータ構造を使って、総合的かつ効果的方法で使用する。さらに他の具体例では、クライアント側加速プログラムは、プロキシのリダイレクト技術を使用して、任意の仲介デバイスを自動的に回避し、クライアントによるサーバまたはリモートアクセスアプリケーションへのアクセスを継続的に提供する。本発明のクライアント側加速プログラムおよび機能は、いかなる種類および形態のネットワーク上でも通信し、本明細書に記載される本発明の動作を行うことが可能な、コンピュータ、ネットワークデバイス、または機器等いかなる種類および形態のコンピュータ機器でも展開および実行することができる。図1Aおよび図1Bは、本発明の一実施形態を実施するのに役立つコンピュータ機器100のブロック図を表している。図1Aおよび図1Bに示されるように、各コンピュータ機器100には、メインプロセッサ102、メインメモリ122が含まれる。図1Aに示されるように、標準的なコンピュータ機器100には、視覚的表示装置124、キーボード126および/またはマウス等のポインティングデバイス127が含まれている。各コンピュータ機器100には、一つ以上の入力/出力装置130a~130b一般に参照数字130を使って記載される、およびメインプロセッサ102と通信しているキャッシュメモリ140のような、追加的、随意的要素も含まれていることがある。メインプロセッサ102は、メインメモリ122からフェッチされる命令に応答し、処理する任意の論理回路である。多くの実施形態では、メインプロセッサはマイクロプロセッサユニットによって提供される。例えば、カリフォルニア州マウンテンビューのインテル社製のもの、イリノイ州ショウンバーグのモトローラ社製のもの、カリフォルニア州サンタクララのトランスメタ社製のもの、RS/6000プロセッサ、ニューヨーク州ホワイトプレーンズのIBM社製のもの、または、カリフォルニア州サニーベールのアドバンストマイクロデバイシーズ社製のもの等である。コンピュータ100は、上記のいずれかのプロセッサ、または本明細書に記載の動作が可能な、その他のプロセッサに基づいている。メインメモリ122は、データを格納することができ、どの格納場所にもマイクロプロセッサ102が直接アクセス可能な、一つ以上のメモリーチップで、例えば、スタティックランダムアクセスメモリSRAM、バーストSRAMまたはシンクバーストSRAMBSRAM、ダイナミックランダムアクセスメモリDRAM、ファーストページモードDRAMFPMDRAM、エンハンストDRAMEDRAM、エクステンデッドデータアウトプットRAMEDORAM、エクステンデッドデータアウトプットDRAMEDODRAM、バーストエクステンデッドデータアウトプットDRAMBEDODRAM、エンハンストDRAMEDRAM、シンクロナスDRAMSDRAM、JEDECSRAM、PC100SDRAM、ダブルデータレートSDRAMDDRSDRAM、エンハンストSDRAMESDRAM、シンクリンクDRAMSLDRAM、ダイレクトラムバスDRAMDRDRAM、フェロエレクトリックRAMFRAM等である。メインメモリ122は、上記のいずれかのメモリーチップ、または本明細書に記載の動作が可能な、その他の利用可能なメモリーチップに基づいている。図1Aに示される実施形態では、プロセッサ102は、システムバス150を通してメインメモリ204と通信する以下により詳しく説明。図1Aは、プロセッサが、メモリーポート103を介してメインメモリ122と直接通信する、コンピュータ機器100の一実施形態を表している。例えば、図1Bでは、メインメモリ122はDRDRAMであり得る。図1Bは、メインプロセッサ102が、時にバックサイドバスと呼ばれるセカンダリーバスを通してキャッシュメモリ140と直接通信する、一実施形態を表している。他の実施形態では、メインプロセッサ102は、システムバス150を使って、キャッシュメモリ140と通信する。キャッシュメモリ140は、通常、メインメモリ122より応答時間が速く、通常、SRAM、BSRAM、またはEDRAMによって提供される。図1Aに示される実施形態では、プロセッサ102は、ローカルシステムバス150を介して、様々なI/O入力/出力装置130と通信する。メインプロセッサ102をいずれかのI/O装置130と接続するために、様々なバスが使われ、それには、VESAVLバス、ISAバス、EISAバス、マイクロチャンネルアーキテクチャMCAバス、PCIバス、PCI-Xバス、PCI-エクスプレスバス、またはニューバス等が含まれる。I/O装置がビデオディスプレイ124である実施形態については、プロセッサ102は、アドバンストグラフィックスポートAGPを使って、ディスプレイ124と通信する。図1Bは、メインプロセッサ102が、ハイパートランスポート、ラピッドI/O、またはインフィニバンドを介してI/O装置130bと直接通信する、コンピュータ100の一実施形態を表している。図1Bはまた、ローカルバスと直接通信が混在する一実施形態も表している。すなわち、プロセッサ102はI/O装置130bと直接通信しながら、ローカルインターコネクトバスを使ってI/O装置130aと通信する。コンピュータ機器100は、任意の適切なインストール装置116をサポートし得る。それは、例えば、3.5インチ、5.25インチのディスク、またはZIPディスクを受け入れるフロッピー登録商標ディスクドライブ、CD-ROMドライブ、CD-R/RWドライブ、DVD-ROMドライブ、様々なフォーマットのテープドライブ、USB装置、ハードドライブ、その他、本発明に関連する加速ソフトウェア120、またはその一部のようなソフトウェアやプログラムのインストールに適した装置である。コンピュータ機器100は、さらに、オペレーティングシステムその他の関連ソフトを記憶し、本発明の加速プログラム120に関連するプログラム等のアプリケーションソフトウェアプログラムを記憶するための記憶装置128、例えば、一つ以上のハードディスクドライブまたはRAIDredundantarraysofindependentdiskで構成される。オプションとして、インストール装置116のいずれかを、記憶装置128として使うこともできる。また、オペレーティングシステムおよびソフトウェアプログラムは、起動用媒体、例えば、KNOPPIX登録商標、GNU/LinuxディストリビューションとしてKnoppix.netから入手できるGNU/LinuxのためのブータブルCD等のブータブルCDから実行することができる。さらに、コンピュータ機器100には、ローカルエリアネットワークLAN、広域ネットワークWAN、またはインターネットとのインタフェースのためのネットワークインタフェース118が含まれ、その接続は、標準の電話回線、LANまたはWANリンク例えば、802.11、T1、T3、56kb、X.25、ブロードバンド接続例えば、ISDN、フレームリレー、ATM、無線接続、または以上のいずれかまたは全ての組み合わせを含む様々な接続を通じて行われるが、必ずしもこれらに限定されない。ネットワークインタフェース118は、内蔵ネットワークアダプター、ネットワークインタフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプター、無線ネットワークアダプター、USBネットワークアダプター、モデム、または、コンピュータ機器100と、通信および本明細書に記載の動作の実行が可能なネットワークとをインタフェースするのに適した、その他の装置で構成される。コンピュータ機器100には、多様なI/O装置130a~130nが存在する。入力装置には、キーボード、マウス、トラックパッド、トラックボール、マイクロフォン、ドローイングタブレットが含まれる。出力装置には、ビデオディスプレイ、スピーカー、インクジェットプリンタ、レーザープリンタ、昇華型プリンタが含まれる。I/O装置は、図1Aに示されるように、I/Oコントローラ123によって制御され得る。I/Oコントローラは、一つ以上のI/O装置、例えばキーボード126およびポインティングデバイス127例えばマウスまたは光学ペンを制御し得る。さらに、I/O装置は、ストレージ128および/またはインストール媒体116もコンピュータ機器100に提供することがある。さらに別の実施形態では、コンピュータ機器100は、カリフォルニア州ロスアラミトスのツインテクインダストリー社製のUSBフラッシュドライブラインの装置のような携帯用USB記憶装置を受け入れるためのUSB接続を提供する。いくつかの実施形態では、コンピュータ機器100は、複数のディスプレイ装置124a~124nで構成され、またはそれらに接続され、それらは同じまたは異なる種類および/または形状である。そのため、I/O装置130a~130nのいずれか、および/またはI/Oコントローラ123は、コンピュータ機器100による複数のディスプレイ装置124a~124nの接続および使用をサポートし、可能にし、あるいは提供する種類および/または形状の適切なハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで構成される。例えば、コンピュータ機器100には、ディスプレイ装置124a~124nとインタフェース、通信、接続、もしくは使用するための種類および/または形状のビデオアダプタ、ビデオカード、ドライバ、および/またはライブラリが含まれる。一実施形態では、ビデオアダプタは、複数のディスプレイ装置124a~124nとインタフェースする複数のコネクタで構成される。その他の実施形態では、コンピュータ機器100には、複数のビデオアダプタが含まれ、各ビデオアダプタは、一つ以上のディスプレイ装置124a~124nに接続される。いくつかの実施形態では、コンピュータ機器100のオペレーティングシステムの一部は、複数のディスプレイ124a~124nを使うために設定され得る。その他の実施形態では、一つ以上のディスプレイ装置124a~124nは、コンピュータ機器100に、例えばネットワークを介して接続されるコンピュータ機器100aおよび100b等、一つ以上の他のコンピュータ機器によって提供され得る。これらの実施形態には、他のコンピュータのディスプレイ装置を、コンピュータ機器100の第二のディスプレイ装置124aとして使うように設計、構成された種類のソフトウェアが含まれる。当業者なら、コンピュータ機器100が複数のディスプレイ装置124a~124nを持つように設定される、様々な方法および実施形態を認識し、理解するだろう。さらに進んだ実施形態では、I/O装置130は、システムバス150と外部の通信バス、例えば、USBバス、アップルデスクトップバス、RS-232シリアルコネクション、SCSIバス、ファイヤーワイヤーバス、ファイヤーワイヤー800バス、イーサネット登録商標バス、アップルトークバス、ギガビットイーサネット登録商標バス、非同期転送モードバス、HIPPIバス、スーパーHIPPIバス、シリアルプラスバス、SCI/LAMPバス、ファイバーチャンネルバス、シリアルアタッチド小型コンピュータ用周辺機器インタフェースSCSIバス等の間のブリッジ170である。図1Aおよび図1Bに表されるようなコンピュータ機器100は、通常、オペレーティングシステムの制御のもとで動作し、オペレーティングシステムは、タスクのスケジューリングおよびシステム資源へのアクセスを制御する。コンピュータ機器100は、例えば、Microsoft登録商標Windows登録商標のオペレーティングシステムのいずれかのバージョン、UNIX登録商標およびLinuxオペレーティングシステムの様々なリリース、マッキントッシュコンピュータ用のMacOS登録商標のいずれかのバージョン、組み込みオペレーティングシステム、リアルタイムオペレーティングシステム、オープンソースオペレーティングシステム、専用オペレーティングシステム、モバイルコンピュータ機器用のオペレーティングシステム、または、コンピュータ機器での作動が可能で、本明細書に記載の動作の実行が可能な、その他のオペレーティングシステム等、どんなオペレーティングシステムでも実行することができる。標準的なオペレーティングシステムに含まれるのは、WINDOWS登録商標3.x、WINDOWS登録商標95、WINDOWS登録商標98、WINDOWS登録商標2000、WINDOWS登録商標NT3.51、WINDOWS登録商標NT4.0、WINDOWS登録商標CE、そしてWINDOWS登録商標XPこれらは全て、ワシントン州レドモンドのマイクロソフト社製、MacOSカリフォルニア州クパチーノのアップルコンピュータ社製、OS/2ニューヨーク州アーモンクのIBM社製、そしてLinuxユタ州ソルトレークシティのカルデラ社によって配布される無料のオペレーティングシステム、または任意の種類および/または形式のUnix登録商標のオペレーティングシステムである。他の実施形態では、コンピュータ機器100は、その機器にふさわしい、異なるプロセッサ、オペレーティングシステム、入力装置を持ち得る。例えば、ある実施形態では、コンピュータ機器100は、パーム社製のTreo180、270、300、600または650スマートフォンである。この実施形態では、Treoスマートフォンは、パームOSオペレーティングシステムの制御の下で動作し、ペン型入力装置および5方向ナビゲーター装置を含む。さらに、コンピュータ機器100は、通信が可能で、本明細書に記載の動作を実行するに足る十分なプロセッサ能力と記憶容量を持つ、ワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ハンドヘルドコンピュータ、携帯電話、その他のコンピュータ、または、他の形体のコンピュータ機器または通信機器である。1つの局面において、本発明は、1つ以上の加速技術を実行するクライアント側の加速プログラムに関し、該技術は、サーバによって提供されるアプリケーションへのアクセスなどの、クライアントのサーバとの通信および/またはサーバへのアクセスを加速、向上、またはさもなくば改善する。ここで図2Aを参照して、本発明の加速プログラム120を有するクライアント205が示される。簡単に概観すると、クライアント205は、コンピューティングデバイス100上で作動し、コンピューティングデバイス100は、カーネルモード202とユーザモード202とを用いるオペレーティングシステムと、1つ以上の層210a~210bを有するネットワークスタック210とを有する。クライアント205は、1つ以上のアプリケーション220a~220nをインストールおよび/または実行したということがあり得る。一部の実施形態において、1つ以上のアプリケーション220a~220nは、ネットワークスタック210を介してネットワークと通信し得る。アプリケーション220Nのうちの1つはまた、たとえば第1のプログラム222を含み得、そのプログラムは、加速プログラム120をインストールおよび/または実行するために一部の実施形態において使用され得る。クライアント205のネットワークスタック210は、ネットワークへの接続性およびネットワークとの通信を提供するための、任意のタイプおよび形態のソフトウェア、またはハードウェア、またはそれらの任意の組み合わせを含み得る。一実施形態において、ネットワークスタック210は、ネットワークプロトコルスーツのためのソフトウェアインプリメンテーションを含む。ネットワークスタック210は、当業者が認識して理解するような、開放型システム間相互接続OpenSystemsInterconnectionOSI通信モデルの任意のネットワーク層などの、1つ以上のネットワーク層を含み得る。そのように、ネットワークスタック210は、OSIモデルの以下の層のうちのいずれかに対して、任意のタイプおよび形態のプロトコルを含み得る:1物理的リンク層、2データリンク層、3ネットワーク層、4トランスポート層、5セッション層、6プレゼンテーション層、および7アプリケーション層。一実施形態において、ネットワークスタック310は、インターネットプロトコルIPのネットワーク層プロトコルにわたる転送制御プロトコルTCPを含み得、これは一般的にTCP/IPと呼ばれている。一部の実施形態において、TCP/IPプロトコルは、イーサネット登録商標プロトコルにわたって運ばれcarriedover得、イーサネット登録商標プロトコルは、IEEE802.3によってカバーされるプロトコルなどの、IEEE広域ネットワークWANまたはローカルエリアネットワークLANのファミリーのうちのいずれかを含み得る。一部の実施形態において、ネットワークスタック210は、IEEE802.11および/またはモバイルインターネットプロトコルなどの、任意のタイプおよび形態のワイヤレスプロトコルを含む。TCP/IPベースのネットワークを鑑みると、以下を含む任意のTCP/IPベースのプロトコルが使用され得る:メッセージングアプリケーションプログラミングインタフェースMessagingApplicationProgrammingInterfaceMAPIeメール、ファイル転送プロトコルFileTransferProtocolFTP、ハイパーテキスト転送プロトコルHyperTextTransferProtocolHTTP、コモンインターネットファイルシステムCommonInternetFileSystemCIFSプロトコルファイル転送、インデペンデントコンピューティングアークテクチャIndependentComputingArchitectureICAプロトコル、リモートデスクトッププロトコルRemoteDesktopProtocolRDP、ワイヤレスアプリケーションプロトコルWirelessApplicationProtocolWAP、モバイルIPMobileIPプロトコル、およびボイスオーバIPVoiceOverIPVoIPプロトコル。別の実施形態において、ネットワークスタック210は、変更転送制御プロトコルなどの任意のタイプおよび形態の転送制御プロトコルを含み、それはたとえば、トランザクションTCPTransactionTCPT/TCP、選択肯定応答selectionacknowledgementを用いるTCPTCP-SACK、大きなウィンドウを用いるTCPTCP-LW、TCP-Vegasプロトコルなどの輻輳予測プロトコル、およびTCPスプーフィングプロトコルである。他の実施形態において、IPにわたるUDPなどの任意のタイプおよび形態のユーザデータグラムプロトコルUDPが、ネットワークスタック210によって使用され得る音声通信またはリアルタイムデータ通信など。さらに、ネットワークスタック310は、TCPドライバまたはネットワーク層ドライバなどの、1つ以上の層をサポートする1つ以上のネットワークドライバを含み得る。ネットワークドライバは、コンピューティングデバイス100のオペレーティングシステムの一部として、またはコンピューティングデバイス100の任意のネットワークインタフェースカードまたは他のネットワークアクセスコンポーネントの一部として、含まれ得る。一部の実施形態において、ネットワークスタック210のネットワークドライバのうちのいずれかは、本明細書中に記載される本発明の技術のいずれかをサポートして、ネットワークスタック210のカスタム部分または変更部分を提供するように、カスタマイズ、変更、または適合され得る。他の実施形態において、加速プログラム120は、ネットワークスタック210とともに作動または作用するように設計および構築され、ネットワークスタック210は、クライアント205のオペレーティングシステムによってインストールまたはさもなくば、提供される。ネットワークスタック210は、クライアント205のネットワーク通信に関連する任意の情報およびデータを、受信、取得、提供、さもなくば、アクセスするための、任意のタイプおよび形態のインタフェースを含む。一実施形態において、ネットワークスタック210に対するインタフェースは、アプリケーションプログラミングインタフェースAPIを含む。インタフェースはまた、任意の関数呼出し、フッキングまたはフィルタリングのメカニズム、イベントまたはコールバックのメカニズム、または任意のタイプのインタフェース技術を含み得る。インタフェースを介したネットワークスタック210は、ネットワークスタック210の機能性または動作に関連する、オブジェクトなどの、任意のタイプおよび形態のデータ構造を、受信または提供し得る。たとえば、データ構造は、ネットワークパケットに関連する情報およびデータ、または1つ以上のネットワークパケットを含み得る。一部の実施形態において、データ構造は、トランスポート層のネットワークパケットなどの、ネットワークスタック210のプロトコル層において処理されたネットワークパケットの部分を含む。一部の実施形態において、データ構造225はカーネルレベルデータ構造を含むが、他の実施形態において、データ構造225はユーザモードのデータ構造を含む。カーネルレベルデータ構造は、カーネルモード202において動作するネットワークスタック210の部分に取得されたかまたは関連するデータ構造、またはカーネルモード202において実行するネットワークドライバまたは他のソフトウェア、またはオペレーティングシステムのカーネルモードにおいて実行または動作するサービス、プロセス、タスク、スレッドまたは他の実行可能な命令によって取得されたかまたは受信された任意のデータ構造を含み得る。さらに、ネットワークスタック210の一部の部分は、カーネルモード202たとえばデータリンクまたはネットワーク層において実行または動作し得るが、他の部分は、ネットワークスタック210のアプリケーション層などの、ユーザモード203において実行または動作する。たとえば、ネットワークスタックの第1の部分210aは、アプリケーション220a~220nに対してネットワークスタック210へのユーザモードアクセスを提供し得るが、ネットワークスタック210の第2の部分210aは、ネットワークへのアクセスを提供する。一部の実施形態において、ネットワークスタックの第1の部分210aは、層5~7のうちのいずれかなどの、ネットワークスタック210の1つ以上の上位層を含み得る。他の実施形態において、ネットワークスタック210の第2の部分210bは、層1~4のうちのいずれかなどの、1つ以上の下位層を含む。ネットワークスタック210の第1の部分210aおよび第2の部分210bの各々は、ユーザモード203、カーネルモード202、またはそれらの組み合わせにおける任意の1つ以上のネットワーク層において、またはネットワーク層の任意の部分、またはネットワーク層のインタフェースポイント、またはユーザモード203およびカーネルモード202へのインタフェースポイントの任意の部分において、ネットワークスタック210の任意の部分を含み得る。本発明の加速プログラム120は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを含み得る。一部の実施形態において、加速プログラム120は、本明細書中に記載される本発明の機能性および動作を実行または提供するように構築および設計された、任意のタイプおよび形態の実行可能な命令を含む。一部の実施形態において、加速プログラム120は、任意のタイプおよび形態のアプリケーション、プログラム、サービス、プロセス、タスク、またはスレッドを含む。一実施形態において、加速プログラム120は、ネットワークスタック210とともにインタフェースおよび作用するように構築および設計されたネットワークドライバなどの、ドライバを含む。加速プログラム120の実行可能な命令の論理、機能、および/または動作は、本発明の以下の加速技術のうちの1つ以上を実行し得る:1マルチプロトコル圧縮238、2転送制御プロトコルプーリング224、3転送制御プロトコル多重化226、4転送制御プロトコルバッファリング228、および5キャッシュマネジャー232を介したキャッシング。これらは以下にさらに詳細に説明される。さらに、加速プログラム120は、クライアント205によって受信および/または送信された任意の通信の暗号化234および/または復号化を実行し得る。一部の実施形態において、加速プログラム120はまた、クライアント205と、サーバなどの別のコンピューティングデバイス100との間のトンネリングを実行する。他の実施形態において、加速プログラム120は、仮想プライベートネットワークをサーバに提供する。一部の実施形態において、加速プログラム120は、トランスポート層などの、ネットワークスタック210の1つ以上の層において動作する。一実施形態において、加速プログラム120は、フィルタドライバ、フッキングメカニズム、または、トランスポートドライバインターフェースドライバTDIを介するなどの、ネットワークスタックのトランスポート層に対してインタフェースする、任意の形態およびタイプの適切なネットワークドライバインタフェースを含む。一部の実施形態において、加速プログラム120は、トランスポート層などの第1のプロトコル層、およびトランスポート層よりも上位の任意の層たとえばアプリケーションプロトコル層などの別のプロトコル層に対して、インタフェースする。一実施形態において、加速プログラム120は、ネットワークドライバインタフェース仕様NetworkDriverInterfaceSpecificationNDISに準拠するドライバ、またはNDISドライバを含み得る。別の実施形態において、加速プログラム120は、ミニフィルタmin-filterまたはミニポートフィルタを含み得る。一実施形態において、加速プログラム120、またはその部分は、カーネルモード202において動作する。別の実施形態において、加速プログラム120、またはその部分は、ユーザモード203において動作する。一部の実施形態において、加速プログラム120の部分はカーネルモード202において動作するが、加速プログラム120の別の部分はユーザモード203において動作する。他の実施形態において、加速プログラム120は、ユーザモード203において動作するが、カーネルレベルデータ構造225を取得するためなどに、ドライバ、プロセス、サービス、タスク、またはオペレーティングシステムの部分に対してインタフェースする。さらなる実施形態において、加速プログラム120は、アプリケーション220a~220nなどの、ユーザモードのアプリケーションまたはプログラムである。加速プログラム120は、ネットワークスタック210のどの他のプロトコル層に対してもトランスペアレントな態様で、プロトコル層において動作し得、またはプロトコル層とインタフェースし得る。たとえば、一実施形態において、加速プログラム120は、ネットワーク層などの、トランスポート層よりも下位の任意のプロトコル層、およびセッション、プレゼンテーション、またはアプリケーション層プロトコルなどの、トランスポート層よりも上位の任意のプロトコル層に対してトランスペアレントなように、ネットワークスタック210のトランスポート層とともに動作するかまたはトランスポート層とインタフェースする。このことは、ネットワークスタック210の他のプロトコル層が、望まれるように、および本発明の加速プログラム120を使用するための変更なしに、動作することを可能にする。そのように、加速プログラム120は、TCP/IPにわたる任意のアプリケーション層プロトコルなどの、トランスポート層によって運ばれる任意のプロトコルを介して提供される任意の通信を加速するように、トランスポート層とインタフェースし得る。さらに、加速プログラム120は、任意のアプリケーション220a~220n、クライアント205のユーザ、およびクライアント205と通信するサーバなどの任意の他のコンピューティングデバイスに対してトランスペアレントな態様で、ネットワークスタック210において動作し得るかまたはネットワークスタック210とインタフェースし得る。加速プログラム120は、アプリケーション220a~220nを変更することなしに、加速プログラム120がアプリケーション220a~220nの任意の通信を加速し得るような態様で、クライアント205上でインストールおよび/または実行され得る。一部の実施形態において、クライアント205のユーザ、またはクライアント205と通信するコンピューティングデバイスは、加速プログラム120の存在、実行、または動作に気がつかない。そのように、一部の実施形態において、加速プログラム120は、アプリケーション220a~220n、クライアント205のユーザ、サーバなどの別のコンピューティングデバイス、または加速プログラム120によってインタフェースされるプロトコル層の上位および/または下位のプロトコル層のいずれかに対してトランスペアレントなように、インストール、実行、および/または動作される。一部の実施形態において、加速プログラム120は、統合された態様または方法で、加速技術224、226、228、232のうちの1つ以上を実行する。一実施形態において、加速プログラム128は、ネットワークスタック210のトランスペアレントなプロトコル層において通信を傍受、フッキング、フィルタリング、または受信する任意のタイプおよび形態のメカニズムを含む。トランスポート層においてクライアント205のネットワークパケットを傍受し、カーネルレベルデータ構造225などのデータ構造を介してトランスポート層においてネットワークスタック210に対してインタフェースすることによって、加速プログラム120は、転送制御プロトコルTCPバッファリング、TCP/IPプーリング、およびTCP多重化などの、ネットワークパケット上で、トランスポート層に関連した加速技術を実行し得る。さらに、加速プログラム120は、トランスポート層プロトコルのネットワークパケットのペイロードとして運ばれる、プロトコルまたはマルチプルプロトコルのいずれかの上で、圧縮225を実行し得る。一実施形態において、加速プログラム120は、1つ以上のネットワークパケットたとえばクライアント205からの要求またはサーバからの応答を含むネットワークパケットの任意の部分に対するアクセスを提供するカーネルレベルデータ構造225を使用する。一実施形態において、カーネルレベルデータ構造は、所望の加速技術を実行するように、加速プログラム120によって使用され得る。一実施形態において、加速プログラム120はカーネルレベルデータ構造225を使用するときにカーネルモード202で実行するが、別の実施形態において、加速プログラム120はカーネルレベルデータ構造225を使用するときにユーザモード203で実行する。一部の実施形態において、カーネルレベルデータ構造は、第2のカーネルレベルデータ構造、または任意の所望のユーザレベルデータ構造に対してコピーされ得るかまたは渡され得る。加速プログラム120は、一般的に図2Aにおいて、ユーザモード203で動作する第1の部分と、カーネルモード202で動作する第2の部分とを有するように示されるが、一部の実施形態において、加速プログラム120の任意の部分は、ユーザモード203またはカーネルモード202において実行し得る。一部の実施形態において、加速プログラム120はユーザモード203のみにおいて動作し得るが、他の実施形態において、加速プログラム120はカーネルモード202のみにおいて動作し得る。さらに、ネットワークスタック210のトランスポート層において傍受するか、またはカーネルレベルデータ構造225を介してネットワークパケットへのアクセスを取得することによって、加速プログラム120は、単一のインタフェースポイントにおいて、または実行の単一のポイントにおいて、または加速プログラム120の任意の実行可能な命令を実行するときに、本発明の複数の加速技術を実行または適用し得る。たとえば、一実施形態において、加速プログラム120の機能または命令のセットにおいて、加速技術を実行するように構築されて設計された実行可能な命令のセットを呼び出すことなどによって、複数の加速技術が実行され得る。一部の実施形態において、加速プログラム120は、1つのインタフェースポイント、実行の場所、または命令呼び出しのセットにおいて、任意のプログラム、サービス、プロセス、タスク、スレッド、または実行可能な命令に対する1つ以上のアプリケーションプログラミングインタフェースAPIは、以下を提供するように設計されて構築されている。すなわち、1マルチプロトコル圧縮238、2転送制御プロトコルプーリング224、3転送制御プロトコル多重化226、4転送制御プロトコルバッファリング228、および5キャッシュマネジャー232を介したキャッシング、および一部の実施形態において暗号化234である。加速プログラム120の実行可能な命令における1つの場所またはロケーションにおいて、またはトランスポート層などのネットワークスタック210の1つのプロトコル層において、複数の加速技術を実行することによって、これらの加速技術の統合が、より効率的かつ効果的に実行される。1つの局面において、プロセス間のコンテキストスイッチの数が低減され得、ならびに、使用されるデータ構造、または必要とされるかさもかければ使用されるメモリにおけるデータ構造のコピーの数を低減する。さらに、加速技術のいずれかの同期化およびいずれかの間の通信は、加速プログラム120の実行可能な命令のセットにおいて、密接に結合された態様などで、より効率的に実行され得る。そのように、実行すべき技術である加速技術、および技術間で共有されて渡されるべきデータおよび情報の順序に関する、任意の論理、ルール、機能性、または動作は、より効率的に実行され得る。加速プログラム120は、トランスポート層においてTCPパケットを傍受し得、カーネルレベルデータ構造225を介してTCPパケットのペイロードを取得し得、次に所望の加速技術を所望の順序で実行し得る。たとえば、ネットワークパケットは、最初に圧縮され得、次にキャッシングされ得る。別の実施例において、圧縮されてキャッシングされたデータは、バッファリング、プーリング、および/または多重化されたTCP接続を介して、サーバに通信され得る。一部の実施形態において、図2Aをさらに参照して、第1のプログラム222は、自動的に、静かに、トランスペアレントに、または別なふうに、加速プログラム120をインストールおよび/または実行するために使用され得る。一実施形態において、第1のプログラム222は、ActivX制御またはJava登録商標制御、またはアプリケーション220a~220nによってロードされて実行されるスクリプトなどの、プラグインコンポーネントを含む。たとえば、第1のプログラムは、アプリケーション220のメモリスペースまたはコンテクストにおけるように、ウェブブラウザアプリケーション220によってロードされて実行されるActivX制御を含む。別の実施形態において、第1のプログラム222は、ブラウザなどの、アプリケーション220a~220nによってロードされて実行される実行可能な命令のセットを含む。一実施形態において、第1のプログラム222は、加速プログラム120をインストールするように設計されて構築されたプログラムを含む。一部の実施形態において、第1のプログラム222は、別のコンピューティングデバイスから、ネットワークを介して、加速プログラム120を取得、ダウンロード、または受信する。別の実施形態において、第1のプログラム222は、クライアント205のオペレーティングシステム上でネットワークドライバなどのプログラムをインストールするための、インストーラプログラムまたはプラグアンドプレイマネジャーである。他の実施形態において、第1のプログラム222は、加速技術のいずれかなどの、本明細書中に記載される加速プログラム120の機能性、動作、および論理のいずれかを容易にするかまたは実行するために、加速プログラム120の機能性、動作、および論理の部分を含み得る。一部の実施形態において、第1のプログラム222は、トランスポート層接続などの接続、またはセキュアソケット層SecureSocketLayerSSL通信セッションなどの、サーバ上の機器との通信セッションを確立するために使用される。一実施形態において、第1のプログラム222は、仮想プライベートネットワーク接続および通信セッションの確立を確立するかまたは容易にするために使用される。図2Aに示されるような、加速プログラム120のキャッシュマネジャー232またはクライアント205は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを含み得ることによって、サーバ206a~206nによってサーブされるオブジェクトまたは動的に生成されたオブジェクトなどの、任意のタイプおよび形態のコンテンツの、キャッシュアクセス、制御、および管理を提供する。キャッシュマネジャー232によって処理されて格納されたデータ、オブジェクト、またはコンテンツは、マーク付け言語などの任意のフォーマットのデータを含み得るか、または任意のプロトコルを介して通信され得る。一部の実施形態において、キャッシュマネジャー232は、他の場所で格納されたもともとのデータ、または以前に計算、生成、または送信されたデータを複製する。ここで、もともとのデータは、キャッシュメモリエレメントを読み出すのに対して、フェッチ、計算、またはさもなくば、取得するためにより長いアクセス時間を必要とし得る。ひとたびデータがキャッシュメモリエレメントに格納されると、将来の使用は、もともとのデータを再びフェッチしたり再計算したりするのではなく、キャッシングされたコピーにアクセスすることによってなされ得、それによってアクセス時間を低減する。一部の実施形態において、キャッシュメモリエレメントは、クライアント205のメモリにおいてデータオブジェクトを含み得る。他の実施形態において、キャッシュメモリエレメントは、クライアント205によって別に使用されるメモリよりも速いアクセス時間を有するメモリを含み得る。他の実施形態において、キャッシュメモリエレメントは、ハードディスクの部分などの、クライアント205の任意のタイプおよび形態のストレージエレメントを含み得る。さらに別の実施例において、キャッシュマネジャー232は、データ、オブジェクト、および他のコンテンツをキャッシングするための、メモリ、ストレージ、または処理ユニットの、任意の部分および組み合わせを使用し得る。さらに、本発明のキャッシュマネジャー232は、本明細書中に記載される本発明の技術の任意の実施形態を実行するために、任意の論理、機能、ルール、または動作を含む。たとえば、キャッシュマネジャー232は、無効期間の満了に基づいて、またはクライアント205a~205nまたはサーバ206a~206nから無効コマンドを受信したときに、オブジェクトを無効にする、論理または機能性を含む。一部の実施形態において、キャッシュマネジャー232は、カーネルスペース202において他の実施形態ではユーザスペース203において実行するプログラム、サービス、プロセス、またはタスクとして動作し得る。一実施形態において、キャッシュマネジャー232の第1の部分はユーザスペース203において実行するが、第2の部分はカーネルスペース202において実行する。一部の実施形態において、キャッシュマネジャー232は、書替え可能ゲートアレイFieldProgrammableGateArrayFPGA、プログラム可能論理デバイスProgrammableLogicDevicePLD、または専用集積回路ApplicationSpecificIntegratedCircuitASICなどの、任意のタイプの汎用プロセッサGPPまたは任意の他のタイプの集積回路を含み得る。加速プログラム120の暗号化エンジン234またはクライアント205は、SSLまたはTLSなどの任意のセキュリティ関連のプロトコル、またはそれに関連する任意の機能の処理を取り扱うための、任意の論理、ビジネスルール、機能、または動作を含む。たとえば、暗号化エンジン234は、クライアント205によって通信されるネットワークパケットまたはその任意の部分を暗号化および復号化する。暗号化エンジン234はまた、クライアント205a~205nのために、SSLまたはTLS接続を設定または確立し得る。そのように、暗号化エンジン234は、SSL処理のオフローディングoffloadingおよび加速を提供する。一実施形態において、暗号化エンジン234は、トンネリングプロトコルを使用することによって、クライアント205a~205nとサーバなどの別のコンピューティングデバイスとの間に、仮想プライベートネットワークを提供する。図2Aをさらに参照して、加速プログラム120のマルチプロトコル圧縮エンジン238またはクライアント205は、クライアント205のネットワークスタック210によって使用されるプロトコルのいずれかなどの、ネットワークパケットの1つ以上のプロトコルを圧縮するための任意の論理、ビジネスルール、機能、または動作を含む。たとえば、マルチプロトコル圧縮238は、圧縮および解凍ユーティリティーを含み得、該ユーティリティーは、GZip圧縮および解凍、ディファレンシャルdifferential圧縮およびアンコンプレッションUnCompression、またはネットワークを介して送信されるべきデータを圧縮および解凍するための、任意の他の専用のproprietaryまたは公的に利用可能なユーティリティーを含む。一実施形態において、マルチプロトコル圧縮エンジン238は、クライアント205とサーバなどの別のコンピューティングデバイスとの間で双方向的に、任意のTCP/IPベースのプロトコルを圧縮する。TCP/IPベースプロトコルは、メッセージングアプリケーションプログラミングインタフェースMessagingApplicationProgrammingInterfaceMAPIeメール、ファイル転送プロトコルFileTransferProtocolFTP、ハイパーテキスト転送プロトコルHyperTextTransferProtocolHTTP、コモンインターネットファイルシステムCommonInternetFileSystemCIFSプロトコルファイル転送、インデペンデントコンピューティングアークテクチャIndependentComputingArchitectureICAプロトコル、リモートデスクトッププロトコルRemoteDesktopProtocolRDP、ワイヤレスアプリケーションプロトコルWirelessApplicationProtocolWAP、モバイルIPMobileIPプロトコル、およびボイスオーバIPVoiceOverIPVoIPプロトコルを含む。他の実施形態において、マルチプロトコル圧縮エンジン238は、ハイパーテキストマーク付け言語HypertextMarkupLanguageHTMLベースのプロトコルの圧縮を提供し、一部の実施形態において、拡張可能なマーク付け言語ExtensibleMarkupLanguageXMLなどの任意のマーク付け言語の圧縮を提供する。そのように、本発明のマルチプロトコル圧縮エンジン238は、デスクトップクライアントOracle、SAP、およびSiebelなどの企業アプリケーションによって起動させられる任意のクライアントのような、およびPocketPCなどのモバイルクライアントでさえのような、たとえばMicrosoftOutlookおよび非ウェブシンクライアントを介してアプリケーションにアクセスするユーザにとってのパフォーマンスを加速する。本発明の加速プログラム120はまた、以下にさらに詳細に説明されるように、バッファリング、プーリング、および多重化の、トランスポートプロトコル層加速技術を実行する。そのように、加速プログラム120は、本明細書中に記載されるこれらの技術のいずれかを実行する論理、ルール、機能、および動作を有する、任意のタイプおよび形態の実行可能な命令を含む。加速プログラム120は、ネットワークスタック210のトランスポート層において、ネットワークスタック210を介してアプリケーション220a~220nによってなされる任意のトランスポート層アプリケーションプログラミングインタフェースAPI呼び出しを、傍受、制御、および管理する。加速プログラム120は、ネットワークスタック210のトランスポートプロトコル層から予測されるような応答をクライアント205が受信するように、トランスペアレントな態様でクライアント205の任意の要求に対して応答する。たとえば、一実施形態において、加速プログラム120は、クライアント205のネットワークスタック210において要求を傍受することによって、サーバなどの別のコンピューティングデバイスとのトランスポート層接続を確立し、該要求に応答するために、加速プログラム120によって確立された1つ以上のトランスポート層接続のプールを使用し得る。別の実施形態において、加速プログラム120は、第2のアプリケーション220bによって使用される確立されたトランスポート層接続を介して、第1のアプリケーション220aからの要求を多重化する。一部の実施形態において、加速プログラム120は、ネットワーク上に送信する前にクライアント205においてクライアント205の通信をバッファリングまたは保持するメカニズムを含む。たとえば、サーバからなどのネットワークから受信される通信の、クライアント205による消費の比率は、ネットワーク上でクライアント205によって送信される通信の生産の比率よりも小さくあり得る。そのように、クライアント205がサーバ206a~206nに要求を送り得る比率は、クライアント205がそのような要求からの応答を消費および処理し得る比率よりも大きい。加速プログラム120は、通信を傍受し得、クライアント205の消費および/または生産の比率が、ユーザ、クライアント205、または他のコンピューティングデバイスによって構成される閾値などの所定の閾値よりも低いかどうかを決定し得る。決定された比率が所望の閾値よりも低い場合には、加速プログラム120は、クライアント205のパフォーマンスが、所定のまたは所望の閾値以上の比率まで消費および/または生産の比率を増加させるまで、傍受された通信をクライアントのメモリエレメントに格納する。その時点において、加速プログラム120は、ネットワーク上にクライアントの通信を通信する。そのように、本発明は、クライアント205による通信の消費および/または生産のパフォーマンスに基づいて、クライアント205の通信をスロットルするクライアント側のメカニズムを提供する。図2Aに示されるアプリケーション220a~220nは、ウェブブラウザ、ウェブベースのクライアント、クライアントサーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveX制御、またはJava登録商標アプレットなどの任意のタイプおよび/または形態などの、任意のタイプおよび/または形態のアプリケーション、またはクライアント205上で実行するかまたはネットワーク204を介して通信する能力のある任意の他のタイプおよび/または形態の実行可能な命令であり得る。アプリケーション220a~220nは、任意のタイプのプロトコルを使用し得、たとえばHTTPクライアント、FTPクライアント、Oscarクライアント、またはTelnetクライアントであり得る。一部の実施形態において、アプリケーション220a~220nは、リモートディスプレイまたはプレゼンテーションレベルプロトコルを使用する。一実施形態において、アプリケーション220a~220nは、フロリダ州FortLauderdaleのCitrixSystems,Inc.によって開発されるICAクライアントである。他の実施形態において、アプリケーション220a~220nは、ワシントン州RedmondのMicrosoftCorporationによって開発されるRemoteDesktopRDPを含む。他の実施形態において、アプリケーション220a~220nは、ソフトIP電話などのVoIP通信に関連する任意のタイプのソフトウェアを含む。さらなる実施形態において、アプリケーション220a~220nは、ビデオおよび/またはオーディオをストリーミングするアプリケーションなどの、リアルタイムデータ通信に関連する任意のアプリケーションを含む。ここで図2Bを参照して、本発明の加速プログラム120を実行するネットワーク環境200が示される。簡潔な概観において、環境200は、ネットワーク204を介して1つ以上のサーバ206a~206nと通信するクライアント205a~20nを含む。サーバ206a~206nは、クライアント205a~205nによって使用されるための1つ以上のアプリケーション220sa~220nを提供または実行し得る。サーバ206a~206nはまた、インストレーションおよび実行のためにクライアント205a~205nに提供する加速プログラム120a~120nを含み得る。たとえば、一実施形態において、サーバ206a~206nは、サーバ206a~206nとの接続または通信セッションを確立する要求の際などの、サーバにアクセスするクライアント205sa~205nからの要求の受信に応答して、加速プログラム120a~120nをクライアント205a~205nに送信する。ネットワーク204は、任意のタイプおよび形態のネットワークであり得る。ネットワーク204は、企業のイントラネット、都市圏ネットワークMANなどのローカルエリアネットワークLAN、またはインターネットまたはワールドワイドウェブWorldWideWebなどの広域ネットワークWANであり得る。ネットワーク204のトポロジは、バスネットワーク、星状ネットワーク、または環状ネットワークのトポロジであり得る。ネットワーク204およびネットワークトポロジは、本明細書中に記載される本発明の動作をサポートする能力のある、任意のそのようなネットワークまたはネットワークトポロジであり得る。クライアント205a~205nおよびサーバ206a~206nは、標準的な電話回線、LANまたはWANリンクたとえば、T1、T3、56kb、X.25、SNA、DECNET、ブロードバンド接続ISDN、フレームリレー、ATM、ギガビットEthernet登録商標、SONET経由のEthernet登録商標、およびワイヤレス接続、またはこれらの任意の組み合わせを含む、種々の接続を通して、1つ以上のネットワーク204に接続し得る。接続は、種々の通信プロトコルたとえば、TCP/IP、IPX、SPX、NetBIOS、Ethernet登録商標、ARCNET、光ファイバ分散データインタフェースFiberDistributedDataInterfaceFDDI、RS232、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、および直接非同期接続directasynchronousconnectionを使用して確立され得る。一部の実施形態において、サーバ206a~206nは、アプリケーション220a~220nを実行し得、アプリケーション220a~220nは、たとえば、ワシントン州RedmondのMicrosoftCorporationによって製造されるMicrosoftExchange、ウェブまたはインターネットサーバ、またはデスクトップシェアリングサーバ、またはコラボレーションサーバなどの、電子メールサービスを提供するアプリケーションサーバであり得る。一部の実施形態において、アプリケーション220a~220nのいずれも、フロリダ州のFt.LauderdaleのCitrixSystems,Inc.によって提供されるGoToMeeting.com、カリフォルニア州SantaClaraのWebEx,Inc.によって提供されるWebEx.com、またはワシントン州RedmondのMicrosoftCorporationによって提供されるLiveMeeting.comなどの、任意のタイプのホストされるサービスを含み得る。別の実施形態において、クライアント205a~205nのいずれも、ネットワーク204を介して、単一のエンティティとして管理される1つ以上のサーバの論理グループであるサーバファーム206a~206nまたはサーバネットワークと通信し得る。サーバファーム206a~206nは、シンクライアントコンピューティングまたはリモートディスプレイプレゼンテーションアプリケーションを提供するアプリケーション33fなどの、1つ以上のアプリケーション220a~220nを実行し得る。一実施形態において、サーバ206aまたはサーバファーム206a~206nは、アプリケーション220a~220nとして、MetaFrameまたはCitrixPresentationServer登録商標などの、CitrixSystems,Inc.によるCitrixAccessSuite登録商標の任意の部分、および/またはMicrosoftCorporationによって製造されるMicrosoftWindows登録商標TerminalServicesのいずれかを実行する。一部の実施形態において、サーバ206a~206nのうちのいずれか1つは、クライアント205a~205nを任意のサーバ206a~205nに接続するための、ゲートウェイ、ファイアウォール、ルータ、スイッチ、またはブリッジを含む。一実施形態において、サーバ206a~206nは、プロキシを含む。別の実施形態において、サーバ206a~206nは、ロードバランサを含む。一部の実施形態において、クライアント205a~205nは、機器を介してサーバ206a~206nと通信し得る。図2Cは、ネットワーク環境201の別の実施形態を示し、ここでは、クライアント205a~205nとサーバ220a~220nとの間の接続および通信のために、機器250が使用される。簡潔な概観において、機器250は、ネットワーク204上のクライアント205a~205nとネットワーク204’上のサーバ206a~206nとの間の通信を提供するための、コンピューティングデバイスまたはネットワーキングデバイスを含む。一部の実施形態において、クライアント205a~205nおよびサーバ206a~206nは、同一のネットワーク204上または異なるネットワーク上にあり得る。他の実施形態において、クライアント205a~205nは、インターネットなどの公衆ネットワーク上にあり得、サーバ206a~206nは、法人ネットワークまたは企業ネットワークなどのプライベートネットワーク上にあり得る。機器250は、任意のタイプのコンピューティングデバイスまたはネットワーキングデバイスを含む。一部の実施形態において、機器250は、ゲートウェイ、プロキシ、SSLVPNデバイス、ブリッジ、ルータ、またはスイッチを含む。一実施形態において、機器250は、ネットワーク204上のクライアント205a~205nから、ネットワーク204’上のサーバ206a~206nに、仮想私設接続を提供する。一部の実施形態において、機器250は、ネットワーク204上のクライアント205a~205nとの第1のトランスポート層接続、およびネットワーク204’上のサーバ206a~206nとの第2のトランスポート層接続を確立し得る。一部の実施形態において、機器250は、通信の加速、およびクライアント205a~205nとサーバ206a~206nとの間のアプリケーション220a~220nなどの、リモートアクセスされるアプリケーションを提供する。クライアント側の加速プログラム120と同様に、機器250に関する実行可能な命令の論理、機能、および/または動作は、本発明の以下の加速技術のうちの1つ以上を実行し得る:1マルチプロトコル圧縮、2転送制御プロトコルプーリング、3転送制御多重化、4転送制御プロトコルバッファリング、5キャッシュマネジャーを介したキャッシング。さらに、機器250は、クライアント205によって受信および/または送信された任意の通信の暗号化および/または復号化を実行し得る。一部の実施形態において、機器250はまた、クライアント205a~205nのためのように、サーバ206a~206nの間のトンネリングを実行する。図2Dは、機器250の例示的アーキテクチャを図示する。簡単な概略において、機器250は、ハードウェア層206とソフトウェア層とを含み、ソフトウェア層はユーザスペース203とカーネルスペース202とに分割される。ハードウェア層206は、ハードウェアエレメントを提供し、ハードウェアエレメントの上で、カーネルスペース202およびユーザスペース203の中のプログラムおよびソフトウェアが実行される。ハードウェア層206はまた、構造およびエレメントを提供し、それらは、カーネルスペース202およびユーザスペース203の中のプログラムおよびサービスが、機器250に関して内部的および外部的の両方でデータを通信することを可能にする。ソフトウェア層は、プログラム、サービス、プロセス、タスク、スレッド、および他の実行可能な命令を含むことによって、機器250の論理、機能、および動作を提供する。機器250は、アプリケーション加速決定メカニズム275と、クライアント側の加速プログラム120とを含む。アプリケーション加速決定メカニズム275は、ソフトウェア、ハードウェア、またはハードウェアおよびソフトウェアの任意の組み合わせを含む。一部の実施形態において、アプリケーション加速決定メカニズム275は、クライアント205a~205nおよび/またはサーバ206a~206nの上で実行するアプリケーション220a~220nが加速され得るかどうか、またはクライアント205a~205nとサーバ206a~206nとの間のアクセスまたは通信が加速され得るかどうかを決定するための、論理、機能、ルール、または動作を有する、プログラム、サービス、プロセス、タスク、またはスレッドなどの、任意のタイプおよび形態の実行可能な命令を含む。一実施形態において、データベースは、アプリケーション加速決定メカニズム275によって使用されることによって、アプリケーション220a~220nが加速され得るかどうかを決定する。たとえば、データベースは、アプリケーション220a~220nを、アプリケーション220a~220nを加速することが可能な1つ以上の加速技術に関連づけ得、クライアント205a~205nおよび/またはサーバ206a~206nの、ユーザ、タイプ、形態、場所、処理能力、および他の特性にさらに基づき得る。一部の実施形態において、アプリケーション加速決定メカニズム275は、アプリケーション220a~220nが、名前、タイプ、またはカテゴリーによって、加速技術によって加速され得るかどうかを識別する情報を含むメモリ内の、ルックアップテーブル、ファイル、データ構造、またはオブジェクトを使用する。別の実施形態において、機器250および/または加速決定メカニズム275は、アプリケーション220a~220n、またはサーバ206a~206nへのアクセスが加速され得るかどうかを識別し、指定し、構成するユーザ入力を受信するための、ユーザインタフェース、グラフィカル、コマンドライン、または他のものなどの、構成メカニズムを含む。一部の実施形態において、アプリケーション加速決定メカニズム275は、サーバ206a~206nから、アプリケーション220a~220nが加速され得るかどうかを識別する情報を要求し、さらなる実施形態において、どの加速技術によって、およびどのタイプおよび形態のクライアント205a~205nについて、アプリケーション220a~220nが加速され得るかどうかを識別する情報を要求する。さらに別の実施形態において、アプリケーション加速決定メカニズム275は、クライアント205a~205nとサーバ206a~206nとの間のアプリケーション220a~220nの性能に関する履歴情報のデータベースを含むことによって、1つ以上のクライアント側の加速技術を用いておよび用いずに、本発明の任意のクライアント側の加速技術を使用して、どこでアプリケーション220a~220nが加速されるか、または加速されることが可能かについての、比較的かつ発見的な情報のデータベースを提供する。たとえば、機器250は、クライアント205a~205nから、アプリケーション220a~220nの性能に関するネットワーク関連性能情報を獲得し得る。そのように、アプリケーション220a~220nが加速されることが可能であるかどうかの決定は、ネットワーク204の動作特性および性能特性を変化することに、適合され得、基づき得、影響され得る。一局面において、アプリケーション220a~220nは、加速されることが可能でないことがあり得るか、または加速されることが可能であり得るものの、加速は効果的ではないか、さもなくば、最小限であり得る。一実施形態において、アプリケーション220a~220nのタイプおよび形態は、加速技術とともに使用するのに適切な態様においては、プロトコルを使用しないことがあり得るか、または通信しないことがあり得る。別の実施形態において、アプリケーション220a~220nが通信するプロトコルまたは態様は、加速技術の実行を可能にし得るが、クライアント205a~205n、アプリケーション250またはサーバ206a~206nの動作特性または性能特性のいずれかに基づいて、加速技術は効果的ではないことがあり得るか、さもなくば、最小限の加速を提供し得る。そのように、アプリケーション加速決定メカニズム275は、アプリケーション220a~220nが加速されることが可能であるかどうか、または加速が性能改善の所望の所定の閾値を満たし得るかどうかに基づいて、アプリケーション220a~220nが加速されることが望ましくないと決定し得る。別の局面において、アプリケーション250は、機器のハードウェア層206によって提供されるストレージまたはメモリなどの、機器250のストレージまたはメモリエレメントの中に、クライアント側の加速プログラム120を格納する。一実施形態において、機器250は、アプリケーション加速決定メカニズム275を介して、クライアント205a~205nによって使用されるべきかまたは使用されているアプリケーション220a~220nが、クライアント205a~205n上で実行する加速プログラム120によって加速され得ることを動的に決定し、機器250のストレージまたはメモリから、クライアント205a~205nへ、加速プログラム120を送信するかさもなくば、通信する。別の実施形態において、機器250は、クライアント205a~205nとサーバ206a~206nとの間の通信が、クライアント205上で実行する加速プログラム120によって加速され得ることを決定し、加速プログラム120をクライアント205に通信する。一部の実施形態において、機器250は、サーバ206a~206nなどの別のコンピューティングデバイス100から、加速プログラム120を、受信、ダウンロード、または取得する。図2Dに示されるように、ハードウェア層206は、ソフトウェアプログラムおよびサービスを実行する処理ユニット262と、ソフトウェアおよびデータを格納するメモリ264と、ネットワークを介してデータを送信および受信するネットワークポート266と、ネットワークを介して送信および受信されるデータのセキュアソケット層SecureSocketsLayer処理に関連する機能を実行する暗号化プロセッサ260とを含む。一部の実施形態において、中央処理ユニット262は、単一のプロセッサにおいて暗号化プロセッサ260の機能を実行し得る。さらに、ハードウェア層206は、処理ユニット262および暗号化プロセッサ260の各々について、複数のプロセッサを含み得る。機器250のハードウェア層206は、概して暗号化プロセッサ260とともに図示されるが、プロセッサ260は、セキュアソケット層SSLまたはトランスポート層セキュリティTLSプロトコルなどの、任意の暗号化プロトコルに関連する機能を実行するプロセッサであり得る。一部の実施形態において、プロセッサ260は汎用プロセッサGPPであり得、さらなる実施形態においては、任意のセキュリティ関連プロトコルの処理を実行するための実行可能な命令を有し得る。機器250のハードウェア層206は、図2Dにおいて一定のエレメントとともに図示されるが、機器250のハードウェア部分またはコンポーネントは、図1Aおよび図1Bに関連して図示され論議されたコンピューティングデバイス100などのコンピューティングデバイスの、任意のタイプおよび形態のエレメント、ハードウェア、またはソフトウェアを含み得る。一部の実施形態において、機器250は、キャッシュ、サーバ、ルータ、スイッチ、ブリッジ、または他のタイプおよび形態のコンピューティングデバイスまたはネットワークデバイスを含み得、それらに関連する任意のハードウェアおよび/またはソフトウェアエレメントを有し得る。機器250のオペレーティングシステムは、利用可能なシステムメモリを、カーネルスペース202およびユーザスペース204の中に、割当て、管理し、さもなくば、分離する。例示的なソフトウェアアーキテクチャ200において、オペレーティングシステムは、任意のタイプおよび/または形態のUNIX登録商標オペレーティングシステムであり得るが、本発明はそのように限定されない。そのように、機器250は、Microsoft登録商標Windows登録商標オペレーティングシステムのバージョンのいずれか、Unix登録商標およびLinuxオペレーティングシステムの異なるリリース、MacintoshコンピュータのMacOS登録商標の任意のバージョン、任意の埋込型オペレーティングシステム、任意のネットワークオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専用のproprietaryオペレーティングシステム、または機器250上で実行し本明細書中に記載される動作を実行することが可能な任意の他のオペレーティングシステムなどの、任意のオペレーティングシステムを実行し得る。カーネルスペース202は、任意のデバイスドライバ、カーネル拡張、または他のカーネル関連のソフトウェアを含む、カーネル230を実行するためにとっておかれる。当業者にとって公知であるように、カーネル230は、オペレーティングシステムのコアであり、アプリケーション104のリソースおよびハードウェア関連エレメントの、アクセス、制御、および管理を提供する。本発明の実施形態に従って、カーネルスペース202はまた、キャッシュマネジャー232と関連して作用する多数のネットワークサービスまたはプロセスを含み、キャッシュマネジャー232は統合されたキャッシュと呼ばれることもあり、その利点は本明細書中にさらに詳細に説明される。さらに、カーネル230の実施形態は、インストールされるか、構成されるか、さもなくば、機器250によって使用される、オペレーティングシステムの実施形態に依存する。一実施形態において、機器250は、クライアント102a~102nおよび/またはサーバ206a~206nと通信するための、TCP/IPベースのスタックなどの、1つのネットワークスタック267を含む。一実施形態において、ネットワークスタック267は、第1のネットワークネットワーク204などおよび第2のネットワーク204’と通信するために使用される。一部の実施形態において、機器250は、クライアント205a~205nのTCP接続などの、第1のトランスポート層接続を終了し、クライアント205a~205nによる使用のためにサーバ206a~206nへの第2のトランスポート層接続を確立するたとえば第2のトランスポート層接続は、機器250およびサーバ206a~206nにおいて終了される。第1および第2のトランスポート層接続は、単一のネットワークスタック267を介して確立され得る。他の実施形態において、機器250は、複数のネットワークスタックたとえば267および267’を含み得、第1のトランスポート層接続は、1つのネットワークスタック267において確立または終了され得、第2のトランスポート層接続は、第2のネットワークスタック267’において確立または終了され得る。たとえば、1つのネットワークスタックは、第1のネットワーク上でネットワークパケットを受信および送信するためのものであり得、別のネットワークスタックは、第2のネットワーク上でネットワークパケットを受信および送信するためのものであり得る。一実施形態において、ネットワークスタック267は、機器250による送信のための1つ以上のネットワークパケットをキューに入れるためのバッファ243を含む。図2Dに示されるように、カーネルスペース202は、キャッシュマネジャー232と、高速層2~7が統合されたパケットエンジン240と、暗号化エンジン234と、ポリシーエンジン236と、マルチプロトコル圧縮論理238とを含む。これらのコンポーネントまたはプロセス232、240、234、236、および238を、ユーザスペース203ではなく、カーネルスペース202またはカーネルモードで実行することは、これらのコンポーネントの各々の性能を単独および組み合わせで改善する。カーネル動作は、これらのコンポーネントまたはプロセス232、240、234、236、および238が、機器250のオペレーティングシステムのコアアドレススペースにおいて実行することを意味する。たとえば、暗号化エンジン234をカーネルモードで実行することは、暗号化動作および復号化動作をカーネルに移動させることによって、暗号化性能を改善し、それによって、カーネルモードにおけるメモリスペースまたはカーネルスレッドと、ユーザモードにおけるメモリスペースまたはスレッドとの間の、遷移の数を低減する。たとえば、カーネルモードにおいて取得されたデータは、カーネルレベルのデータ構造からユーザレベルのデータ構造へのように、ユーザモードにおいて実行するプロセスまたはスレッドに渡されるかまたはコピーされる必要がないことがあり得る。別の局面において、カーネルモードとユーザモードとの間のコンテキストスイッチの数も低減される。さらに、コンポーネントまたはプロセス232、240、235、236、および238のいずれかの間の同期化および通信は、カーネルスペース202においてより効率的に実行され得る。一部の実施形態において、コンポーネント232、240、234、236、および238の任意の部分は、カーネルスペース202において実行または動作し得るが、これらのコンポーネント232、240、234、236、および238の他の部分は、ユーザスペース203で実行または動作し得る。一実施形態において、本発明は、1つ以上のネットワークパケットたとえば、クライアント205a~205nからのリクエスト、またはサーバ206a~206nからの応答を含む、ネットワークパケットの任意の部分にアクセスを提供する、カーネルレベルのデータ構造を使用する。一部の実施形態において、カーネルレベルのデータ構造は、トランスポート層ドライバインタフェース、またはネットワークスタック267へのフィルタを介して、パケットエンジン240によって取得され得る。カーネルレベルのデータ構造は、任意のインタフェースおよび/またはカーネルスペース202を介してアクセス可能なデータを含み得、カーネルスペース202は、ネットワークスタック267、ネットワークトラフィック、またはネットワークスタック267によって受信または送信されたパケットに関連する。他の実施形態において、カーネルレベルのデータ構造は、コンポーネントまたはプロセス232、240、234、236、および238のいずれかによって使用され得ることによって、コンポーネントまたはプロセスの所望の動作を実行する。一実施形態において、コンポーネント232、240、234、236、および238は、カーネルレベルのデータ構造を使用するときにカーネルモード202で実行するが、別の実施形態において、コンポーネント232、240、234、236、および238は、カーネルレベルのデータ構造を使用するときにユーザモードで実行する。一部の実施形態において、カーネルレベルのデータ構造は、第2のカーネルレベルのデータ構造、または任意の所望のユーザレベルのデータ構造に、コピーまたは渡され得る。クライアント側の加速プログラム120のように、機器はまた、クライアント205a~205nとサーバ206a~206nとの間の任意の通信のためのキャッシングを実行し得る。一部の実施形態において、キャッシュメモリ232のエレメントは、機器250のメモリ264におけるデータオブジェクトを含み得る。他の実施形態において、キャッシュメモリのエレメントは、メモリ264よりも速いアクセス時間を有するメモリを含み得る。別の実施形態において、キャッシュメモリのエレメントは、ハードディスクの一部分などの、機器250の任意のタイプおよび形態のストレージエレメントを含み得る。一部の実施形態において、処理ユニット262は、本発明のキャッシュマネジャー232によって使用されるためのキャッシュメモリを提供し得る。さらなる実施形態において、キャッシュマネジャー232は、データ、オブジェクト、および他のコンテンツをキャッシングするために、機器250のメモリ、ストレージ、または処理ユニットの、任意の部分および組み合わせを使用し得る。さらに、本発明のキャッシュマネジャー232は、本明細書中に記載される本発明の技術の任意の実施形態を実行するための、任意の論理、機能、ルール、または動作を含む。たとえば、キャッシュマネジャー232は、無効化期間の満了に基づいて、またはクライアント205a~205nまたはサーバ206a~206nからの無効化コマンドの受信の際に、オブジェクトを無効化する、論理または機能性を含む。一部の実施形態において、キャッシュマネジャー232は、カーネルスペース202において実行する、および他の実施形態においてはユーザスペース203において実行する、プログラム、サービス、プロセス、またはタスクとして動作し得る。一実施形態において、キャッシュマネジャー232の第1の部分は、ユーザスペース203において実行するが、第2の部分は、カーネルスペース202において実行する。一部の実施形態において、キャッシュマネジャー232は、任意のタイプの汎用プロセッサGPP、または、書替え可能ゲートアレイFieldProgrammableGateArrayFPGA、プログラム可能論理デバイスProgrammableLogicDevicePLD、または専用集積回路ApplicationSpecificIntegratedCircuitASICなどの、任意の他のタイプの集積回路を含み得る。図2Dに示されるようなポリシーエンジン236は、たとえば、インテリジェント統計エンジンintelligentstatisticalengineまたは他のプログラマブルアプリケーションを含み得る。一実施形態において、ポリシーエンジン236は、ユーザがキャッシングポリシーを識別、指定、定義、または構成することを可能にする、構成メカニズムを提供する。ポリシーエンジン236はまた、一部の実施形態において、ルックアップテーブルまたはハッシュテーブルなどのデータ構造をサポートするためのメモリへのアクセスを有することによって、ユーザ選択のキャッシングポリシー決定を可能にする。他の実施形態において、ポリシーエンジン236は、機器250によって実行される、アクセス、セキュリティの制御および管理、ネットワークトラフィック、ネットワークアクセス、圧縮、または任意の他の機能または動作に加えて、機器250によってキャッシングされる、オブジェクト、データ、またはコンテンツの、アクセス、制御、および管理を決定および提供するための、任意の論理、ルール、機能、または動作を含み得る。一部の実施形態において、加速プログラム120は、機器250のポリシーエンジン236から、ポリシー情報を、受信、ダウンロード、または取得する。他の実施形態において、加速プログラム120は、機器250のポリシーエンジン236とは無関係に、またはポリシーエンジン236と関連して、ポリシーエンジン236を実行および操作する。クライアント側の加速プログラム120と同様の態様で、図2Dをさらに参照すると、機器は暗号化エンジン234を含み、暗号化エンジン234は、任意のセキュリティプロトコルSSLまたはTLS、またはそれらに関連する任意の機能などの処理を扱うための、任意の論理、ビジネスルール、機能、または動作を含む。たとえば、暗号化エンジン234は、機器250を介して通信されるネットワークパケットまたはその任意の部分を、暗号化および復号化する。暗号化エンジン234はまた、クライアント205a~205n、サーバ206a~206n、または機器250のために、SSLまたはTLS接続を設定または確立し得る。そのように、暗号化エンジン234は、SSL処理のオフローディングoffloadingおよび加速を提供する。一実施形態において、暗号化エンジン234は、トンネリングプロトコルを使用することによって、クライアント205a~205nとサーバ206a~206nとの間に仮想プライベートネットワークを提供する。一部の実施形態において、暗号化エンジン234は、暗号化プロセッサ260と通信する。他の実施形態において、暗号化エンジン234は、暗号化プロセッサ260上で実行する実行可能な命令を含む。また、クライアント側の加速プログラム120のように、機器250は、マルチプロトコル圧縮エンジン238’を含み得、マルチプロトコル圧縮エンジン238’は、ネットワークパケットの1つ以上のプロトコル機器250のネットワークスタック267によって使用されるプロトコルのいずれかなどを圧縮するための、任意の論理、ビジネスルール、機能、または動作を含む。一実施形態において、マルチプロトコル圧縮エンジン238は、任意のTCP/IPベースのプロトコルを、クライアント102a~102nとサーバ206a~206nとの間で双方向に圧縮し、任意のTCP/IPベースのプロトコルは、メッセージングアプリケーションプログラミングインタフェースMessagingApplicationProgrammingInterfaceMAPI電子メール、ファイル転送プロトコルFileTransferProtocolFTP、ハイパーテキスト転送プロトコルHyperTextTransferProtocolHTTP、コモンインターネットファイルシステムCommonInternetFileSystemCIFSプロトコルファイル転送、インデペンデントコンピューティングアークテクチャIndependentComputingArchitectureICAプロトコル、リモートデスクトッププロトコルRemoteDesktopProtocolRDP、ワイヤレスアプリケーションプロトコルWirelessApplicationProtocolWAP、モバイルIPMobileIPプロトコル、およびボイスオーバIPVoiceOverIPVoIPプロトコルを含む。他の実施形態において、マルチプロトコル圧縮エンジン238は、ハイパーテキストマーク付け言語HypertextMarkupLanguageHTMLベースのプロトコルの圧縮を提供し、一部の実施形態において、拡張可能なマーク付け言語ExtensibleMarkupLanguageXMLなどの、任意のマーク付け言語の圧縮を提供する。一実施形態において、マルチプロトコル圧縮エンジン238は、機器250通信に対する機器250のために設計された任意のプロトコルなどの、任意の高性能プロトコルの圧縮を提供する。別の実施形態において、マルチプロトコル圧縮エンジン238は、変更された転送制御プロトコルトランザクションTCPT/TCP、選択肯定応答を用いたTCPTCP-SACK、大きなウィンドウを用いたTCPTCP-LW、TCP-Vegasプロトコルなどの輻輳予測プロトコル、およびTCPスプーフィングプロトコルなどを使用して、任意のペイロードまたは任意の通信を圧縮する。そのように、本発明のマルチプロトコル圧縮エンジン238は、デスクトップクライアントたとえばMicrosoftOutlookおよび非ウェブシンクライアントOracle、SAP、およびSiebel、およびPocketPCなどのモバイルクライアントさえもなどのポピュラーな企業アプリケーションによって起動される、任意のクライアントなどを介してアプリケーションにアクセスするユーザにとっての性能を加速する。一部の実施形態において、マルチプロトコル圧縮エンジン238は、カーネルモード202において実行することと、ネットワークスタック267にアクセスするパケット処理エンジン240に統合することとによって、アプリケーション層プロトコルなどのTCP/IPプロトコルによって運ばれるプロトコルのいずれかを圧縮することが可能である。図2Dに示される、高速層2~7が統合されたパケットエンジン240は、一般的にパケット処理エンジンまたはパケットエンジンとも呼ばれ、ネットワークポート266を介して機器250によって受信および送信されたパケットのカーネルレベルの処理を管理することを担う。高速層2~7が統合されたパケットエンジン240は、処理の間に1つ以上のネットワークパケットをキューに入れるためネットワークパケットの受信またはネットワークパケットの送信のためなどのバッファを含み得る。さらに、高速層2~7が統合されたパケットエンジン240は、1つ以上のネットワークスタック267と通信することによって、ネットワークポート266を介してネットワークパケットを送信および受信する。高速層2~7が統合されたパケットエンジン240は、暗号化エンジン234、キャッシュマネジャー232、ポリシーエンジン236、およびマルチプロトコル圧縮エンジン238とともに作用する。特に、暗号化エンジン234は、パケットのSSL処理を実行するように構成され、ポリシーエンジン236は、要求レベルコンテンツスイッチングおよび要求レベルキャッシュリダイレクションなどの、トラフィック管理に関連する機能を実行するように構成され、マルチプロトコル圧縮エンジン238は、データの圧縮および解凍に関連する機能を実行するように構成されている。高速層2~7が統合されたパケットエンジン240は、パケット処理タイマー242を含む。一実施形態において、パケット処理タイマー242は、入ってくるすなわち受信されたまたは出て行くすなわち送信されたネットワークパケットの処理をトリガするための1つ以上の時間インターバルを提供する。一部の実施形態において、高速層2~7が統合されたパケットエンジン240は、タイマー242に応答してネットワークパケットを処理する。パケット処理タイマー242は、任意のタイプおよび形態の信号をパケットエンジン240に提供することによって、時間に関連するイベント、インターバル、またはできごとを、通知、トリガ、または通信する。多くの実施形態において、パケット処理タイマー242は、ミリ秒のオーダーで動作する。たとえば、一部の実施形態において、パケット処理タイマー242は、時間インターバルを提供するか、さもなくば、ネットワークパケットを、10ミリ秒のインターバルで、他の実施形態においては5ミリ秒のインターバルで、さらなる実施形態においては1および/または2ミリ秒のインターバルで、高速層2~7が統合されたパケットエンジン240によって処理させる。高速層2~7が統合されたパケットエンジン240は、動作の間に、暗号化エンジン234、キャッシュマネジャー232、ポリシーエンジン236、およびマルチプロトコル圧縮エンジン238と、インタフェースされ得るか、統合され得るか、または通信し得る。そのように、暗号化エンジン234、キャッシュマネジャー232、ポリシーエンジン236、およびマルチプロトコル圧縮エンジン238の、論理、機能、または動作のいずれかは、パケット処理タイマー242および/またはパケットエンジン240に応答して実行され得る。したがって、暗号化エンジン234、キャッシュマネジャー232、ポリシーエンジン236、およびマルチプロトコル圧縮エンジン238の、論理、機能、または動作のいずれかは、パケット処理タイマー242を介して提供される時間インターバルの細分性granularityにおいてたとえば10ミリ秒以下の時間インターバルにおいて実行され得る。たとえば、一実施形態において、キャッシュマネジャー232は、高速層2~7が統合されたパケットエンジン240および/またはパケット処理タイマー242に応答して、任意のキャッシングされたオブジェクトの無効化を実行し得る。別の実施形態において、キャッシングされたオブジェクトの満了または無効化時間は、パケット処理タイマー242の時間インターバルと同じオーダーの細分性10ミリ秒ごとなどに設定され得る。他の実施形態において、パケットエンジン240またはその部分は、加速プログラム120の部分などの、クライアント205a~205n上で動作され得る。そのように、加速プログラム120は、上述のようにパケット処理タイマー242に従ってクライアント205a~205n上で動作し得る。一局面において、加速プログラム120は、実行の一時点において、かつパケット処理タイマー242によって提供される細分な時間インターバルに応答して、統合された加速技術を実行し得る。カーネルスペース202とは対照的に、ユーザスペース203は、ユーザモードアプリケーションまたはユーザモードで別なふうに実行するプログラムによって使用されるオペレーティングシステムの、メモリエリアまたは部分である。ユーザモードアプリケーションは、カーネルスペース202に直接的にアクセスしないことがあり得、カーネルサービスにアクセスするためにサービスコールを使用する。図2Dに示されるように、機器250のユーザスペース203は、グラフィカルユーザインタフェースGUI210と、コマンドラインインタフェースCLI212と、シェルサービス214と、健康監視プログラム216と、デーモンサービス218とを含む。GUI210およびCLI212は、システム管理者または他のユーザが機器250の動作と相互作用して動作を制御し得る手段を提供し機器250のオペレーティングシステムを介してなど、ユーザスペース203またはカーネルスペース202のいずれかである。GUI210は、任意のタイプおよび形態のグラフィカルユーザインタフェースであり得、テキスト、グラフィカルを介して、さもなくば、ブラウザなどの任意のタイプのプログラムまたはアプリケーションによって、提示され得る。CLI212は、オペレーティングシステムによって提供されるコマンドラインなどの、任意のタイプおよび形態のコマンドラインまたはテキストベースインタフェースであり得る。たとえば、CLI212はシェルを含み得、シェルはユーザがオペレーティングシステムと相互作用することを可能にするツールである。一部の実施形態において、CLI212は、bach、csh、tcsh、またはkshタイプのシェルを介して提供され得る。シェルサービス214は、プログラム、サービス、タスク、プロセス、または実行可能な命令を含むことによって、GUI210および/またはCLI212を介したユーザによる機器250またはオペレーティングシステムとの相互作用をサポートする。なおも図2Dを参照すると、健康監視プログラム216は、ネットワークシステムが適切に機能しており、かつユーザが要求されたコンテンツをネットワークを介して受信していることを、監視、チェック、報告、および保証するために使用される。健康監視プログラム216は、1つ以上のプログラム、サービス、タスク、プロセス、または実行可能な命令を含むことによって、機器250の任意の活動を監視するための、論理、ルール、機能、または動作を提供する。一部の実施形態において、健康監視プログラム216は、機器250を介して渡された任意のネットワークトラフィックを傍受およびインスペクトする。他の実施形態において、健康監視プログラム216は、任意の手段および/またはメカニズムによって、以下のうちの1つ以上と相互作用する:暗号化エンジン234、キャッシュマネジャー232、ポリシーエンジン236、マルチプロトコル圧縮エンジン238、パケットエンジン240、デーモンサービス218、およびシェルサービス214。そのように、健康監視プログラム216は、任意のアプリケーションプログラミングインタフェースAPIを呼び出し得ることによって、機器250の任意の部分の状態state、ステータス、または健康を決定する。たとえば、健康監視プログラム216は、プログラム、プロセス、サービス、またはタスクが、アクティブであり、現在実行中であるかどうかをチェックするために、定期的にステータス照会をピングpingまたは送信し得る。別の例において、健康監視プログラム216は、任意のプログラム、プロセス、サービス、またはタスクによって提供される、ステータス、エラー、または履歴ログをチェックし得ることによって、機器250の任意の部分の任意の状態condition、ステータス、またはエラーを決定する。同様な態様で、および他の実施形態において、健康監視プログラム216は、機器250と通信しているかまたは機器250が加速プログラム120を送信した、任意のクライアント205a~205n上の、任意のクライアント側の加速プログラム120の、ステータス、エラー、または履歴をチェックおよび決定し得る。一部の実施形態において、健康監視プログラム216またはその部分は、クライアント205a~205n上で実行する。デーモンサービス218は、連続的にまたはバックグラウンドで実行し、機器250によって受信された定期的なサービス要求を処理する、プログラムである。一部の実施形態において、デーモンサービスは、要求を他のプログラムまたはプロセス別のデーモンサービス218に適宜転送し得る。デーモンサービス218は、連続的なまたは定期的なシステム全体にわたる機能ネットワーク制御などを実行するか、または任意の所望のタスクを実行するように、無人で実行し得る。一部の実施形態において、1つ以上のデーモンサービス218がユーザスペース203において実行するが、他の実施形態においては、1つ以上のデーモンサービス218がカーネルスペース202において実行する。ここで図3Aを参照すると、機器250によって加速プログラム120を動的に提供し、クライアント205によって加速プログラム120を自動的にインストールして実行するための、本発明の方法300の実施形態が示される。簡単な概略において、ステップ310において、機器250は、クライアント205からの要求を傍受することによって、サーバとの通信セッションを確立する。ステップ315において、機器250は、クライアント205が自動的にインストールして実行するために、加速プログラム120をクライアント205に送信する。ステップ320において、加速プログラム120を受信すると、クライアント205は、加速プログラム120の静かなインストールを自動的に実行executeまたは実行performする。ステップ325において、加速プログラム120のインストールが完了すると、クライアント205は、ネットワークスタック210における加速プログラム120を自動的に実行することによって、クライアント205とサーバ206との間の通信を傍受する。ステップ330において、加速プログラム120は、複数の加速技術のうちのいずれかを実行し、通信を暗号化および/または復号化し得る。さらなる詳細において、ステップ310において、加速プログラム120は、任意の適切な手段およびメカニズムによって、クライアント205からの要求を傍受するかさもなくば、受信し得ることによって、サーバ206との通信セッションを確立する。一実施形態において、機器250のパケットエンジン240は、クライアント205からの通信を傍受する。他の実施形態において、機器250は、たとえば加速プログラム120を用いてクライアント205との第1のトランスポート層接続を確立し、クライアント205のためにサーバ205との第2のトランスポート層接続を確立する。そのように、機器250は、サーバ206に送信されるクライアントの通信のいずれかを、受信、傍受、さもなくば、取得し得る。一部の実施形態において、機器250は、クライアント205のための要求を傍受することによって、サーバ206とのトランスポート層接続を確立する。他の実施形態において、機器250は、要求を傍受することによって、トランスポート層よりも上位の任意のプロトコル層HTTPのアプリケーション層プロトコルなどを介して通信セッションを確立する。本発明の方法のこの実施形態は、クライアント205のネットワークスタック210の任意のプロトコル層において通信セッションを確立する要求とともに実施され得る。ステップ315において、機器250は、加速プログラム120をクライアント205に送信する。機器250は、クライアント205によって要求された通信セッションを確立する前、間、または後の任意の時点において、加速プログラム120を送信し得る。一実施形態において、機器250は、クライアント要求を傍受することに応答して、加速プログラム120をクライアント205に送信する。別の実施形態において、機器250は、要求をサーバ206に転送し、加速プログラム120をクライアント205に送信する。一部の実施形態において、機器250は、サーバ206との通信セッションを確立し、通信セッションを確立すると、機器250は加速プログラム120を送信する。さらに別の実施形態において、機器250は、クライアント205,またはクライアント205のユーザの認証および/または認可を実行し、認証されたユーザまたはクライアント205がそのように認可された場合には、機器250は、加速プログラム120をクライアント205に送信する。一実施形態において、機器250は、認証および/または認可のために、クライアントの要求をサーバ206に転送し、サーバ206がクライアントの要求を認証および/または認可した場合には、機器250は加速プログラム120をクライアント205に送信する。一実施形態において、機器250は、機器250のストレージまたはメモリから加速プログラム120を送信する。他の実施形態において、機器250は、サーバ206から加速プログラム120を要求し、受信した加速プログラム120をクライアント205に転送する。別の実施形態において、サーバ206は、加速プログラム120をクライアント205に送信する。一実施形態において、機器250は、ユニフォームリソースロケータURLをクライアント205に送信することにより、クライアント205は、加速プログラムを取得、ダウンロード、または受信する。一部の実施形態において、URLは、機器250のストレージまたはメモリにおける加速プログラム120の位置を識別し、一方において、他の実施形態において、URLは、サーバ206上、例えば加速プログラム120をダウンロードのために提供するようなウェブサーバ上の加速プログラム120を識別する。一実施形態において、加速プログラム120は、クライアント205に格納され、機器250は、キー、例えば暗号化またはライセンスキーをクライアント205に送信することによって、クライアント205は、クライアント205に格納された加速プログラム120をインストールおよび利用する。一部の実施形態において、機器250は、クライアント205にあらゆるファイル、コンフィギュレーション、データまたは他の情報を送信することによって、クライアント205に加速プログラム120をインストールおよび実行するように用いられる。一実施形態において、加速プログラム120は、クライアント205によって自動的にインストールおよび実行されるように、設計および構成される。加速プログラム120は、任意のファイル、エントリ、コンフィギュレーション、データまたは命令を含み得ることによって、オペレーティングシステムのタイプおよび形態に従って、加速プログラム120は、クライアント205のオペレーティングシステムによって登録または認識される。一実施形態において、別のコンピューティングデバイス、例えばサーバまたは機器は、クライアント205に加速プログラムを送信し、クライアント205は、自動的に加速プログラム120をインストールおよび実行する。一実施形態において、加速プログラム120は、プラグアンドプレイPnPデバイスとなるように設計および構成されることにより、ランしているコンピューティングデバイス100に加えられる。一部の実施形態において、加速プログラム120は、自己インストール型の実行可能プログラム、例えばインストーラプログラムおよび加速プログラム120を含む実行可能プログラムである。他の実施形態において、加速プログラム120は、複数のファイルを含み得、それらは、例えばインストレーションパッケージまたはインストレーションダウンロードなどの、クライアント205のオペレーティングシステムに加速プログラム120を登録およびインストールするために必要なファイルである。例えば、加速プログラム120は、.infファイルおよび.sysファイルを含み得る。.infファイルは、オペレーティングシステムのMicrosoftWindows登録商標ファミリーにおけるWindows登録商標セットアップに、デバイスを設定するために要求される情報、例えばデバイスに対する有効なロジカルコンフィギュレーションおよびデバイスと関連したドライバファイルの名前などを提供する。一部の実施形態において、.infファイルは、開始が実行可能なオペレーションシステムを述べるか、または通知するオートラン.infファイル、および該実行可能なオペレーションシステムに関連した任意のコンフィギュレーション情報を含み得る。一実施形態において、.sysファイルは、加速プログラム120またはその一部を含むドラバファイルである。ステップ320において、クライアント205は、加速プログラム120を自動的にインストールする。加速プログラム120は、クライアント205のオペレーションシステムに従って、任意の適切な方法においてインストールされ得る。一実施形態において、クライアント205は、クライアント205を受け取ると、該プログラムをインストールする。一部の実施形態において、クライアント205は、加速プログラム120の静かなインストールを自動的に行うか、または実行する。一部の実施形態において、静かなインストールは、クライアント205のユーザまたは機器にトランスペアレントに行われる。他の実施形態において、加速プログラム120の静かなインストールは、クライアント205のリブートまたは再スタートを要求しない。別の実施形態において、静かなインストールは、インストレーションを開始および/または完了するためにユーザによる相互作用を要求しない。他の実施形態において、加速プログラム120の静かなインストールは、クライアント205がランしており、ネットワークスタック210のネットワーク層、セッション層および/またはアプリケーション層にトランスペアレントにランしている間に発生する。一部の実施形態において、加速プログラム120は、自己インストール型の実行可能プログラムであり、クライアント205によって実行される。他の実施形態において、クライアント205は、プラグアンドプレイマネジャーを用いることにより、加速プログラム120をインストールする。一実施形態において、クライアント205は、インストレーションマネジャーを含み、該マネジャーは、加速プログラム120を受信およびインストールする。別の実施形態において、機器250によって送信される加速プログラム120は、加速プログラム120をインストールするインストレーションプログラムをも含み得る。別の実施形態において、加速プログラム120は、静かなインストールを介して自動的にインストールされる。一実施形態において、静かなインストールは、ユーザによって付き添われることがないインストレーションを含む。別の実施形態において、静かなインストールは、インストレーションを開始および/または完了するためにユーザによる相互作用を要求しないまたは有することがないインストレーションを含む。一部の実施形態において、インストレーションは、インストレーションプロセスが、インストレーションの状態または進行に関する情報を表示しないという点において、静かである。一実施形態において、インストレーションは、ユーザにとってトランスペアレントであるという点において、静かである。他の実施形態において、インストレーションが静かであるのは、加速プログラム120のインストレーションが、クライアント205のリブートまたは再スタートを要求しないからである。別の実施形態において、インストレーションは、インストレーションが、クライアント205の作動の間に、クライアントの作動に対する中断または破裂なしに、シームレスに発生するという点において、静かである。そういう点において、加速プログラム120は、リブートを要求しないこと、およびインストレーションに関連したユーザに何も情報を表示しないことによって、ユーザまたはクライアント205のアプリケーションにトランスペアレントな方法によってインストールされ得る。クライアント205のリブートまたは再スタートを防止または回避するために、一部の実施形態において、オペレーティングシステムがランしている間に、クライアント205のオペレーティングシステムなどのクライアント205は、プラグアンドプレイマネジャーを有することによって、加速プログラム120の一実施形態においてネットワークドライバのようなドライバをプラグアンドプレイデバイスに対してインストールおよび構成する。一実施形態において、プラグアンドプレイマネジャーは、加速プログラム120のインストレーションパッケージの構成に基づいてクライアント205をリブートまたは再スタートするように命令されてはいない。別の実施形態において、.infファイルは、コンピュータをリブートまたは再スタートさせる命令を含まない。一実施形態において、共用で、使用中の動的リンクライブラリDLLと取り替える代わりに、加速プログラム120は、並行side-by-sideの構成要素としてインプリメントされ得る。他の特定の実施形態において、加速プログラム120のネットワークドライバに対して、加速プログラム120は、INetCfgPnpReconfigCallbackネットワークドライバAPIを用い、その結果として、ユーザは、オペレーションシステムをリブートすることを要求されることなく、ドライバにおいてコンフィギュレーションの変化が発生する。さらに、加速プログラム120は、INetCfgComponetControlのApplyPngChanges方法のインプリメンテーション内のSendPnpReconfigAPIを呼ぶ通知目標を有し得、該目標を所有するネットワーク構成要素のドライバにコンフィギュレーション情報を送信する。SendPngReconfigAPIは、通知目標にドラバにデータを送信するメカニズムを提供し、一部の実施形態において、コンフィギュレーションの変化が発生する前にユーザにオペレーションシステムをリブートさせることを防ぐために用いられる。ステップ325において、加速プログラム120のインストレーションが、自動的、静か、トランスペアレント、またはそれ以外の様式で完了すると、加速プログラム120は、クライアント205上で自動的に実行される。一部の実施形態において、加速プログラム120をインストールするインストレーションプログラムは、加速プログラム120を開始または実行する。一部の実施形態において、加速プログラム120に対するインストーラプログラムは、システム呼出しを行うことにより、クライアント205のメモリにおいて加速プログラム120をロードまたは実行する。一実施形態において、加速プログラム120のインストレーションは、加速プログラム120を開始するための命令、コマンドまたはディレクティブを含む。一実施形態において、加速プログラム120は、自動ランコンフィギュレーション、例えばオートラン.infファイルを含み、クライアント205に自動的に加速プログラム120をランするように通知する。他の実施形態において、プラグアンドプレイマネジャーまたはクライアント205のオペレーティングシステムは、インストールすると自動的に加速プログラム120を実行する。一実施形態において、加速プログラム120は、クライアント205によって開始されるサービス、プロセス、スレッドまたはタスクを含む。一部の実施形態において、加速プログラム120は、自動的に開始されるように構成されるオペレーティングシステムのサービスである。一実施形態において、加速プログラム120は、クライアントに関するオペレーティングシステムのネットワークスタックのメモリにおいてロードされるネットワークドライバを含む。別の実施形態において、加速プログラム120は、クライアント205のメモリにおいてロードされるネットワークドライバを含む。一部の実施形態において、加速プログラム120は、ネットワークスタック210に割り当てられたメモリにロードされる。一部の場合において、加速プログラム120は、加速プログラム120がトランスポート層などのネットワークスタックのプロトコル層にアクセスすることを可能にするメモリ領域または空間においてロードまたは実行される。他の場合において、加速プログラムは、加速プログラム120がカーネルレベルデータ構造225にアクセスすることを可能にするメモリにおいてロードまたは実行される。別の実施形態において、加速プログラム120は、機器220a~220nのメモリにおいてロードされる。別の実施形態において、加速プログラム120は、それ自体のメモリ空間またはコンテクストにおいて、独自に実行する。一実施形態において、加速プログラム120は、機器220a~220nのメモリ空間またはコンテクストにおいてランする。一部の実施形態において、加速プログラム120は、ユーザモードメモリまたはユーザモード203に割り当てられたメモリにロードされ、その一方で、他の実施形態において、加速プログラム120は、カーネルモードメモリまたはカーネルモード202に割り当てられたメモリにロードされる。一部の実施形態において、加速プログラム120は、メモリにロードされ、および/またはクライアントのユーザ、クライアント205のアプリケーション、機器250またはサーバ206対してトランスペアレントにクライアント205上で実行される。別の実施形態において、加速プログラム120は、ネットワークスタック210のトランスポート層とインタフェースするために実行し、セッション層またはアプリケーション層のようなトランスポート層の上の任意のプロトコル層、およびネットワーク層のようなトランスポート層の下のあらゆるプロトコル層にトランスペアレントに実行する。一実施形態において、加速プログラム120は、クライアント205のあらゆるトランスポート層接続またはトランスポート層自体にトランスペアレントに実行する。ステップ330において、ロードされた、開始された、またはその他に実行中の加速プログラム120は、加速プログラム120のうちの任意の複数の加速技術を行い、それらの任意の技術は、1マルチプロトコル圧縮238、2転送制御プロトコルプーリング224、3転送制御プロトコル多重化226、4転送制御プロトコルバッファリング228、および5キャッシュマネジャー232を介したキャッシングによって提供される。加速プログラム120はまた、クライアント205およびサーバ206の間の通信のあらゆる暗号化および/または復号化を行い得る。一実施形態において、加速プログラム120は、マルチプロトコル圧縮を行う。別の実施形態において、加速プログラム120は、転送制御プロトコルプーリングを行い、さらなる実施形態において、加速プログラム120は、プールドトランスポート層接続を介して多重化を行う。一実施形態において、加速プログラム120は、転送制御プロトコルバッファリングを行う。一部の実施系形態において、加速プログラム120は、キャッシングを行う。他の実施形態において、加速プログラム120は、キャッシングおよび圧縮を行う。一実施形態において、加速プログラム120は、トランスポート層のプーリングおよび多重化を伴ってキャッシングを行う。別の実施形態において、加速プログラム120は、トランスポート層のプーリングおよび多重化を伴ってマルチプロトコル圧縮を行う。別の実施形態において、加速プログラム120は、TCPバッファリングを伴ってキャッシングおよび/または圧縮を行い、さらなる実施形態において、TCPプーリングおよび多重化を伴って行われる。そのような点において、本発明のクライアント側の加速プログラム120は、機器205によって動的に提供され、静かな方法において、またはユーザまたはクライアントのアプリケーションに対してトランスペアレントに、クライアント205上において自動的にインストールおよび実行されることによって、クライアント205とサーバ206との間の通信に1つ以上のクライアント側の加速技術を行う。加速プログラム120は、これらの加速技術をネットワークスタックのあらゆるプロトコル層にトランスペアレントに、およびクライアントのユーザ、クライアントのアプリケーション、機器またはサーバにトランスペアレントに行い得る。別の局面において、本発明は、機器250に関連しており、該機器250は、クライアント205によってアクセスされるように要求されたアプリケーションが加速されるかどうかを決定し、アプリケーションが加速され得る場合には加速プログラム120をクライアント205に提供する。図3Bをここで参照すると、本発明の方法の別の実施形態が図示される。本発明は、接続または通信セッションを確立する要求およびサーバ上のアプリケーションにアクセスする要求がなされるときに、実施され得る。方法350の概略的な全体像において、機器250は、ステップ355においてサーバ206上のアプリケーション220a~220nへのアクセスを要求するクライアント205から要求を傍受する。ステップ260において、機器250は、アプリケーション220が加速される能力を有するかどうかを決定する。ステップ365において、アプリケーション220が加速され得ない場合には、アプリケーションは、ステップ267において要求をサーバに転送する。ステップ365において、アプリケーション220が加速され得る場合には、機器250は、加速プログラム120がクライアント205にインストールされるか、以前においてクライアント205に送信されたかを決定する。加速プログラム120が、未だクライアント205に提供されていない場合には、方法350は、上述された方法300のステップ315において継続することによって、加速プログラムを送信、インストールおよび実行する。加速プログラム120がインストールされていて、クライアント205上で実行している場合には、ステップ375において機器250は、クライアント205上の加速プログラム120にメッセージを送信し、アプリケーション220を加速する。方法350のステップ330において、加速プログラム120は、アプリケーション220に対する通信において複数の加速技術を行い、そのような通信を暗号化および/または復号化し得る。さらなる詳細において、機器250は、ステップ355において、あらゆる適切な手段およびメカニズムによって、サーバ206によって提供されるアプリケーションにアクセスするために、クライアント205からの要求を傍受し得る。一実施形態において、機器250のパケットエンジン240は、クライアント205からの通信を傍受する。他の実施形態において、機器250は、クライアント205を伴う第1のトランスポート層接続を、例えば加速プログラム120と確立し、第2のトランスポート層接続をクライアント205に代わってサーバ205と確立する。そのような点において、機器250は、サーバ206に送信されたあらゆるクライアントの通信を受信、傍受またはそうでなければ取得し得る。一部の実施形態において、機器250は、クライアント205に対する要求を傍受することによって、サーバ206と確立されたトランスポート層接続を介して、アプリケーション220にアクセスする。他の実施形態において、機器205は、要求を傍受することによって、HTTPのアプリケーション層プロトコルのようなトランスポート層接続の上のプロトコル層を介して通信セッションを確立する。一実施形態において、機器205は、クライアント205からの要求を傍受することによって、ICAまたはRDPなどのリモートディスプレイプロトコルを介して、サーバ206からアプリケーション220を表示および提供する。ステップ360において、機器250は、クライアント205によって要求されたアプリケーション220が加速され得るかどうかを決定する。一部の実施形態において、機器250は、アプリケーションを名前、タイプまたはカテゴリーによって識別する傍受されたクライアント要求からのアプリケーション識別子を識別、抜粋またはそうでなければ処理する。一実施形態において、アプリケーション加速決定メカニズム275は、機器250によって用いられることによって、アプリケーション220は加速され得るかどうか、そのような場合があるかを決定する。一部の実施形態において、アプリケーション加速決定メカニズム275は、データベース、ルックアップテーブル、またはデータ構造またはデータ目標などのメモリまたはストレージにおけるデータの構造化されたソースにおいて、クエリまたはルックアップを行うことによって、アプリケーション220が加速され得るかどうかを決定する。別の実施形態において、機器250は、要求のような通信をサーバ206に送信することによって、アプリケーション220は加速され得るかどうかを決定する。他の実施形態において、機器250は、パフォーマンスログまたはパフォーマンス履歴を有することによって、アプリケーション220が以前に加速されたかどうか、および該加速はアプリケーション220の、パフォーマンスおよび作動を向上させたかどうかを決定する。そのような点において、そのような加速がアプリケーション220のパフォーマンスまたは作動に対する向上の所定の閾値を満たす場合には、機器250は、アプリケーション220が加速され得ると決定し得る。さらに別の実施形態において、機器250は、ネットワーク204、クライアント205またはサーバ206の現在の作動およびパフォーマンスに基づいて、帰納的な規則を提供する。一実施形態において、クライアント205が、特定のパフォーマンスおよび作動上の特徴または性能、例えば特定のスピードプロセッサまたは最低量のメモリを有する場合には、アプリケーション220は、加速される能力があると決定され得る。一部の実施形態において、アプリケーション220は、構成されたポリシーまたは規則、例えば機器250のポリシーマネジャーにあるようなものに基づいて、加速される能力を有すると決定され得る。例えば、アプリケーション220および/またはサーバ206の特定のタイプにアクセスするクライアント205の特定のタイプを用いるリモートユーザの間で通信されるアプリケーション220は、加速され得る。他の実施形態において、アプリケーション220は、ユーザまたはクライアント205の認証および認可に基づいて、加速の能力を有すると決定され得る。さらに別の実施形態において、アプリケーション220は、加速されることを望むことはないと決定され得る。例えば、アプリケーション220は、まれにしか用いられないタイプである。ステップ365において、アプリケーション220が、加速される能力を有することがない、またはクライアント205上のアプリケーション220に加速技術を摘要することは望まれていないと決定された場合には、機器250は、ステップ368において傍受したクライアント要求をサーバ206に転送し、加速プログラム120をクライアント205には送信または提供しない。一実施形態において、機器250は、機器220の機器ベースの加速を行うか、提供し得る。他の実施形態において、機器250は、機器250上のアプリケーション220の加速を行わない。さらに別の実施形態において、機器250が、アプリケーション220は加速する能力を有さないか、またはそうでなければ望まれないとけっていする場合には、機器250は、アプリケーション220に対して一部の加速技術を行い、他の技術を行い得ない。ステップ365において、アプリケーション220が、加速される能力を有するか、またはそうでなければクライアント205上のアプリケーションに加速技術を適用することが望まれる場合には、機器250は、加速プログラム120がクライアント205に提供されたかどうかを決定する。一実施形態において、機器250は、加速プログラム120がクライアント205上にインストールされたかどうか、またはクライアント205上で実行しているかを決定する。一部の実施形態において、機器250は、クライアント205上の加速プログラム120に通信を送信することによって、加速プログラム120がクライアント205上でランしているかどうかを決定する。他の実施形態において、機器250は、ログファイルまたはログ履歴を確認することによって、加速プログラム120がクライアント205に送信されたかどうかを決定する。別の実施形態において、機器250は、機器250またはクライアント205の健康監視プログラム216を確認することによって、加速プログラム120がクライアント205上で実行しているかどうかを決定する。機器250が、加速プログラム120は、クライアント205上に送信、インストールおよび/または実行されていないと決定する場合には、機器250は、図3Aに関連して記述された方法300のステップに従って、加速プログラム120を提供する。例えば、機器250は、クライアント205に加速プログラム120を送信し、クライアント205は、受信すると、自動的にインストールおよび実行する。一実施形態において、方法300の実施形態の適切なステップを行うと、機器250は、ステップ275において加速プログラムにメッセージを通信し得ることによって、1つ以上の加速技術をアプリケーション220に適用する。他の実施形態において、加速プログラム120が既にインストールされ、実行されている場合には、ステップ375において、機器250は、加速プログラム120にメッセージを通信することによって、アプリケーション220に1つ以上の加速技術を適用する。一部の実施形態において、加速プログラム120は、識別されたアプリケーション120に対する加速プログラム120によって利用可能な任意の加速技術を行う。他の実施形態において、機器250は、アプリケーション220に対してどの加速技術を行うかを加速プログラム120に示す。一実施形態において、加速プログラム120は、各セッションを基礎として、アプリケーション120に対して所望の加速技術を適用し得る。すなわち、機器250から加速プログラム120へのメッセージは、加速プログラム120に、この場合またはアプリケーション220のセッションに対する加速技術を行うことのみを通知する。他の実施形態において、加速プログラム120が、識別されたアプリケーション220に対する加速技術を適用するために、機器250からメッセージを受信すると、加速プログラム120は、任意の場合またはアプリケーション220のセッションに対して、またはクライアント205がリブートまたは再スタートされるまで、または機器205がリブートまたは再スタートされるまで加速技術を適用する。一実施形態において、ステップ375における機器250のメッセージは、アプリケーションに特定のものではない。例えば、メッセージは、加速プログラム120に、クライアント205のあらゆるアプリケーションに対する1つ以上の加速技術を実行するように通知する。一部の実施形態において、クライアント205に送信されたメッセージは、アプリケーション220に対する、または全てのアプリケーション220a~220nに対するいずれか1つまたはそれ以上の加速技術を用いることを停止するようにアプリケーションプログラム120に通知する。別の実施形態において、機器250は、加速プログラム120にメッセージを通信することによって、特定のアプリケーション220を無視する。さらに別の実施形態において、機器250は、加速プログラム120にメッセージを通信することによって、加速プログラム120に加速技術に対する更新または新たな加速技術のアプリケーションなどのコンフィギュレーションデータまたはコンフィギュレーション情報を提供する。ステップ330において、加速プログラム120は、アプリケーション220に対する加速プログラム120のあらゆる複数の加速技術、例えば1マルチプロトコル圧縮238、2転送制御プロトコルプーリング224、3転送制御プロトコル多重化226、4転送制御プロトコルバッファリング228、および5キャッシュマネジャー232を介したキャッシングによって提供されたあらゆる技術を行う。加速プログラム120は、クライアント205とサーバ206との間のアプリケーション220の通信のあらゆる暗号化および/復号化をも行い得る。一実施形態において、加速プログラム120は、アプリケーション関連のデータのマルチプロトコル圧縮を行う。別の実施形態において、加速プログラム120は、転送制御プロトコルプーリングを行い、さらなる実施形態において、加速プログラム120は、プールされたトランスポート層接続を介して多重化を行う。一実施形態において、加速プログラム120は、転送制御プロトコルバッファリングを行う。一部の実施形態において、加速プログラム120は、キャッシングを行う。他の実施形態において、加速プログラム120は、キャッシングおよび圧縮を行う。一実施形態において、加速プログラム120は、トランスポート層プーリングを伴うキャッシングを行い、さらなる実施形態において、多重化をも伴ってキャッシングを行う。別の実施形態において、加速プログラム120は、TCPバッファリングを伴ってマルチプロトコル圧縮を行い、さらなる実施形態において、トランスポート層プーリングを伴って行い、まだその上にさらなる実施形態において、多重化を伴って行う。別の実施形態において、加速プログラム120は、圧縮を伴ってキャッシングを行い、さらなる実施形態において、TCPプーリングを伴って行い、まだその上にさらなる実施形態において、多重化を伴って行う。そのような点において、本発明の機器250は、アプリケーションを加速させるかどうか、またはアプリケーションは加速され得るかどうかを動的に決定し、本発明のクライアント側の加速プログラム120に通信することによって、クライアント205上でアプリケーション220に対するあらゆる1つまたはそれ以上の加速技術を行う。さらに、一部の実施形態において、複数の加速プログラム120は、機器によってクライアント205に動的に届けられ得、クライアント205によって自動的にインストールおよび実行される。例えば、加速プログラムは、サーバ205に対する各接続またはアプリケーション220を伴う各通信セッションに対して、本発明の技術および方法に従って、提供され得る。そのような点において、クライアント205は、複数の加速プログラム120を自動的にインストールおよび実行し得ることによって、各サーバ206a~206nまたは各アプリケーション220a~220nに対して加速を操作し、行う。一局面において、本発明は、効果的かつ集積化された方法において、加速プログラムによって複数の加速技術が行われることに関連する。加速プログラム120は、転送制御プロトコル接続のトランスポート層においてネットワークパケットを傍受し、カーネルレベルデータ構造を用いることによって、ネットワークパケットのペイロードデータのような情報およびデータを取得し、加速プログラム120における単一のインタフェース地点または実行の位置において、複数の加速技術を適用する。図3Dをここで参照すると、集積化された方法において複数の加速技術を行うことに対する方法380の実施形態が、図示される。概略的な全体像において、加速プログラム120は、ステップ280において、トランスポート層接続を介してクライアント205とサーバ206との間の通信のネットワークパケットを、トランスポート層において傍受する。ステップ390において、加速プログラム120は、カーネルレベルデータ構造、例えば、クライアント205のネットワークスタック210へのAPIを介して提供されるデータ構造を介して、ネットワークパケットに、トランスポート層においてアクセスする。ステップ395において、加速プログラム120は、インタフェース地点または加速プログラム120における実行の地点において、カーネルレベルデータ構造を用いて、集積化された方法において複数の加速技術を行う。さらなる詳細において、加速プログラム120は、ステップ385においてあらゆる適切な手段およびメカニズムによって、トランスポート層接続を介するクライアント205とサーバ206との間の通信のネットワークパケットを傍受する。一実施形態において、加速プログラム120は、クライアントによる要求またはその応答のネットワークパケット、またはそれに関連したネットワークパケットを傍受することによって、クライアント205とサーバ206との間にトランスポート層接続を確立する。別の実施形態において、加速プログラム120は、要求またはその応答のネットワークパケットまたはそれに関連したネットワークパケットを傍受することによって、クライアント205とサーバ206との間のトランスポート層接続を介するアプリケーション220にアクセスするか、または用いる。一実施形態において、加速プログラム120は、トランスポートドライバインターフェースを介してトランスポートプロトコルそうにおいてネットワークパケットを傍受するか、そうでなければネットワークドライバは、ネットワークスタック210のトランスポートプロトコル層においてインタフェースされる。別の実施形態において、加速プログラム120は、ネットワークドラバインターフェース規格NDISまたはミニポートドライバまたはミニフィルタドライバを介して、トランスポートプロトコル層、またはネットワークスタック210のあらゆる他のプロトコル層においてネットワークパケットを傍受する。一部の実施形態において、加速プログラム120は、フッキングまたはフィルタリングメカニズムを介してトランスポート層においてネットワークパケットを傍受する。ステップ390において、加速プログラム120は、カーネルレベルデータ構造225を介して、トランスポート層において傍受されたネットワークパケットの情報およびデータにアクセス、またはそうでなければ取得する。カーネルレベルデータ構造225を用いて、加速プログラム120は、トランスポート層においてネットワークパケットによって運ばれたか、または転送されたペイロードまたは1つ以上のプロトコル上の情報およびデータを取得し得る。一部の実施形態において、カーネルレベルデータ構造を用いてトランスポート層における、および/またはその上におけるネットワークスタックの層においてネットワークパケットを表すことは、トランスポート層において、およびトランスポート層ネットワークパケットによって運ばれたプロトコル層に対して、加速プログラム120に複数の加速技術を行わせるか、または作動させる。一実施形態において、単一のカーネルレベルデータ構造225を用いることは、ネットワークスタック210の様々なプロトコル層において複数のデータ構造を用いることからコンテクストをスイッチングすることの他に、コピーイングおよびメモリ割当てを防止または回避する。一実施形態において、加速プログラム120は、カーネルレベルデータ構造225を第2のデータ構造にコピーし、該第2のデータ構造は、別のカーネルレベルデータ構造またはユーザレベルのデータ構造を包含し得る。ステップ395において、加速プログラム120は、単一のインタフェース地点、またはプログラム210におけるロケーション、または一連の実行可能な命令において、またはプログラム210の実行の一地点において、複数の加速技術を行うか、実行するか、または作動させる。加速プログラム120は、加速プログラム120のあらゆる複数の加速技術、例えば、1マルチプロトコル圧縮238、2転送制御プロトコルプーリング224、3転送制御プロトコル多重化226、4転送制御プロトコルバッファリング228、および5キャッシュマネジャー232を介したキャッシングによって提供されたあらゆる技術を行う。加速プログラム120は、加速プログラム120の加速技術の実行における同一地点において、クライアント205とサーバ206との間のアプリケーション220の通信のあらゆる暗号化および/または復号化をも行い得る。一実施形態において、加速プログラム120は、一連の実行可能な命令、例えば関数呼出しまたは一地域、または一ロケーションとして、あらゆる複数で所望の、互いが続いて起こる加速技術を行う。例えば、加速プログラム120は、カーネルレベルデータ構造を介して傍受されたネットワークパケットを取得し、次いで互いが続いて起こる加速技術のロジック、関数、規則または作動を表す命令を実行する。そのような点において、ネットワークパケットの情報およびデータは、カーネルレベルデータ構造225を介して抜粋または取得され得、加速技術を表す加速プログラム120のあらゆる命令に対するインプット、パラメータ、アーギュメントおよびコンディションとして用いられる。ネットワークパケットは、より高いレベルのプロトコルデータおよび情報を運ぶが、一部の実施形態における加速プログラム120は、実行の間において一地点において一度、ネットワークパケットおよびより高いレベルのプロトコルデータおよび情報を処理する。さらに、加速プログラム120は、集積化された方法において、あらゆる所望の順序にて複数の加速技術のそれぞれ、例えばキャッシュマネジャー232に格納された圧縮データ、またはキャッシュから抽出された圧縮/非圧縮データを行い得る。一実施形態において、加速プログラム120は、互いが続いて起こるマルチプロトコル圧縮およびキャッシングを行う。別の実施形態において、加速プログラム120は、プールされたトランスポート層接続を介して、転送制御プロトコルプーリングおよび多重化に関連した他のオペレーションを互いに続いて起こるように行う。一実施形態において、加速プログラム120は、圧縮またはキャッシング、あるいはTCPプーリングおよび/または多重化に続いて起こるように、転送制御プロトコルバッファリングを行う。一部の実施形態において、加速プログラム120は、キャッシングを行う。一実施形態において、加速プログラム120は、トランスポート層のプーリングおよび多重化に続くようにキャッシングを行う。別の実施形態において、加速プログラム120は、トランスポート層のプーリングおよび多重化に続くようにマルチプロトコル圧縮を行う。別の実施形態において、加速プログラム120は、TCPバッファリングに続いて起こるようにキャッシングおよび/または圧縮を行い、さらなる実施形態において、TCPのプーリングおよび多重化に続いて起こるように行われる。加速プログラムは、加速技術を続いて行うように、一般的に記述されたが、続いて起こる実行には、加速に関連はせず、各加速技術の間に集積および実行される他のロジック、関数およびオペレーションを含み得る。加速プログラムはさらに、加速技術に対して実行可能な命令などの集積化から作動上およびパフォーマンスの効率を取得し、他のオペレーションまたは関数は、加速プログラムにおける単一のインタフェース地点または実行の地点において実行される。さらに、トランスポートプロトコル層の上のプロトコル層、または運ばれたプロトコル層に対する加速技術は、トランスポート層にて一度および/または一ロケーションにおいて処理される。そのような点において、これらのより高いれレベルのプロトコルに対する加速技術は、これらのより高いレベルのネットワークスタック210において、またはネットワークスタック210の後の地点において、ネットワークパケットトラバースおよびゲットとして再び適用される必要がない。他の局面において、本発明は、第1のプログラム222および加速プログラム120または、この実施形態において第2のプログラムとして呼ばれるを用いて実施される。一実施形態において、第2のプログラム120と共に第1のプログラム222は、例えば、機器250を介して、サーバ206との仮想プライベートネットワーク接続を促進および確立するように用いられ得、本発明のクライアント側の加速技術が適用され得る。別の実施形態において、第1のプログラム222は、第2のプログラム、つまりは加速プログラム120をインストールおよび実行するために用いられる。ここで図4Aを参照すると、本発明のこの局面を実施する方法400の実施形態が、図示される。概略的な全体像において、ステップ402において、クライアント205は、機器205との通信セッションにログインし、該セッションを確立する。ステップ404において、機器250は、第1のプログラム222をクライアント205に送信する。ステップ406において、クライアント205は、第1のプログラム222をインストールおよび実行し、該第1のプログラムは、続いて加速プログラム120、すなわち第2のプログラムをインストールおよび実行する。ステップ407において、クライアント205は、確立され暗号化されたデータ通信セッションを介して、プライベートネットワーク204上のアクセスリソースと通信する。ステップ410において、クライアント205は、機器250からログアウトし、機器250との通信セッションを終了する。方法400のステップ402において、クライアント205は、ログインの手順を行い、ネットワーク204を介して機器250との暗号化されたデータ通信セッションを確立する。一実施形態において、暗号化されたデータ通信セッションは、クライアント205からプライベートデータ通信ネットワーク204’において機器250の背後に存在するサーバ206a~206nのいずれかに、トンネルからブリッジへのトラフィックとして用いられる。実施形態において、クライアント205は、ウェブブラウザ、例えばMicrosoftInternetExplorer登録商標またはNetscapeNavigator登録商標を用いることによって、SecureSocketsLayerSSLまたは他の暗号化方法、例えばIPSec、およびTransportLayerSecurityTLSを用いている機器250とのデータ通信セッションにログインし、該セッションを確立する。別の実施形態において、HypertextTransferProtocoloverSecureSocketsLayerHTTPSのようなプロトコルが、暗号化されたデータ通信セッションを初期化するために用いられ得る。ステップ404において、暗号化されたデータ通信セッションのログインおよび確立に応答して、機器250は、ネットワーク204を介してクライアント205に第1のプログラムを送信する。第1のプログラムは、暗号化されたデータ通信セッションを介する通信に対してトンネルのエンドポイントとして機能するように設計、構築またはそうでなければ構成される。一実施形態において、第1のプログラムは、クライアント204のブラウザによって自動的にインストールおよび実行されるプラグインアプリケーションを含む。例えば、第1のプログラムは、MicrosoftInternetExplorer登録商標Webブラウザによって実行されるプラグインとして提供されるActiveX制御を含み得る。別の実施形態において、第1のプログラムは、NetscapeNavigator登録商標Webブラウザまたはネットワーク環境において動作する別の制御またはプログラミングの構成要素によって実行される、プラグインとして提供されるJava登録商標アプレットを含み得る。ステップ406において、クライアント205は、第1のプログラム222をインストールおよび実行し、ここでは、第1のプログラムを実行することは、第2のプログラムをクライアント205上にインストールすることを含む。一実施形態において、第1のプログラム222は、方法300および図3Aと関連して記述されたあらゆる技術を用いるなどして、自動的にインストールおよび実行され得る。一部の実施形態において、第1のプログラム222は、機器250から第2のプログラム、つまりは加速プログラム120を取得、ダウンロード、または受信する。別の実施形態において、第1のプログラム222は、第2のプログラム、例えば加速プログラム120に対するインストーラまたはインストールマネジャーを含むことによって、静かなインストールまたはクライアント205のユーザ、クライアント205のアプリケーション220、機器250またはサーバ206にトランスペアレントなインストールを用いることによって、第2のプログラムを自動的にインストールおよび実行する。一実施形態において、第2のプログラムは、ネットワーク204上のリソースに行き先を定められたクライアント205上でランしているアプリケーション220から通信を傍受し、暗号化されたデータ通信セッションを介して機器250に送信するために、第1プログラム222に傍受された通信を提供するように、部分的に構成される。第2のプログラムはまた、イントラネットネットワーク名レゾルーションを提供し、オプションでネットワークトラフィックを分割するように構成され得る。トラフィックを分割することによって、本発明の実施形態は、どのトラフィックが第1のプログラム222のSSLトンネルまたは暗号化トンネルにチャネルされるか、および、どのトラフィックが、クライアント205の通常、ルーチンまたは一般的な作動の下に、ネットワークスタック210のトランスポート層によって処理するために継続が許可されるか、または継続を可能にするか、を決定することができる。実施形態において、第2のプログラムは、動的なインターセプタ例えば、フィルタデバイスドライバを含み、該インターセプタは、クライアント205のオペレーティングシステムにフックとして挿入される。例えば、第2のプログラムは、フィルタデバイスドライバを含み得、該ドライバは、クライアントオペレーティングシステムのトランスポート層スタック、例えばMicrosoftWidows登録商標オペレーティングシステムのトランスポート層スタックに装着される。ステップ408において、第1および第2のプログラムがインストールされると、クライアント205上をランしているアプリケーションは、確立され暗号化されたデータ通信セッションを介して、プライベートデータ通信ネットワーク204上のアクセスリソース、例えばアプリケーションおよびデータと通信し得る。この通信が発生する方法は、図4Bに関連して以下に詳細に記述される。一実施形態において、上述された第1および第2のプログラムの機能は、本発明の加速プログラム120などのクライアント205によって自動的にインストールまたは実行される単一の制御またはプログラミングの構成要素によって行われることに留意されたい。仮想プライベートネットワーク接続および通信を提供することに加えて、第1のプログラム222および/または第2のプログラム、例えば加速プログラム120は、仮想プライベートネットワーク接続、例えば機器250への暗号化されたトンネルまたはブリッジを介してクライアントの通信上において、本明細書に記述される任意の加速技術を行い得る。ステップ410において、クライアント205は、ネットワーク204から切断するためにログアウト手順を行い、該ネットワークは、機器250との暗号化されたデータ通信セッションを終了する。一実施形態において、ログアウトの時点において、第1のプログラム222は、クライアント205のオペレーティングシステムになされた変更を自動的にクリーンアップすることによって、オペレーティングシステムを第1のプログラム222および/または第2のプログラムのインストールの前の状態に戻す。一実施形態において、第1のプログラム222および/または第2のプログラムはまた、アンインストーラまたはアンインストール命令を含み、クライアント205の継続される作動に割り込まない方法にて、クライアント205のオペレーティングシステムから、またはクライアント205上のさらなる作動から、第1および第2のプログラムを除去する。その上にさらなる実施形態において、第1のプログラム222および/または加速プログラム120は、本発明を用いて提供されたあらゆる通信接続またはセッションの間にクライアント205のアプリケーションによって用いられたあらゆるファイル、例えば一時的なファイルまたはクッキーを除去する。図4Bは、本発明の別の方法450の実施形態を図示し、ここでは、クライアント205は、プライベートデータ通信ネットワーク204上のアクセスリソースと通信する。例えば、方法450は、方法400のステップ408が実行され得る方法を表す。概略的な全体図において、クライアント205は、ステップ452において、第1のプログラムおよび/または第2のプログラムを介して、新たな接続を作るか、またはドメイン名、例えばTCP/IPドメイン名レゾルーションを決める。ステップ454において、第2のプログラムが実行される。ステップ456において、第2のプログラムは、クライアント205からプライベートネットワーク204’に行き先を定められた通信を傍受し、該通信を第1のプログラム222に別ルートで送信または送信する。ステップ458において、第1のプログラム222は、接続を終了またはプロキシし、ペイロードを分離し、かつ確立され暗号化された通信セッションを介するデリバリに対するペイロードを簡約する。ステップ460において、第1のプログラム222は、パブリックネットワーク204上で傍受した通信を、予め確立された暗号通信セッションを介してプライベートネットワーク204における機器250に送信する。ステップ462において、機器250は、第1のプログラムから受信した通信を復号し、復号された通信を適切な行先のリソース、例えばサーバ206a~206mに転送する。ステップ464において、行先のリソースは、復号化された通信をプロセスし、ステップ464において、行先のリソースは、応答のある通信がある場合には、機器250に送信する。ステップ468において、機器250は、応答のある通信を暗号化し、パブリックネットワーク205上の暗号化された通信を、予め確立され暗号化された通信セッションを介してクライアント205の第1のプログラム222に送信する。ステップ470において、第1のプログラム222は、応答のある通信を復号化し、第2のプログラムを介して、適切なクライアントアプリケーションに復号化された通信を転送する。ステップ452において、クライアント205のアプリケーション220は、クライアント205のネットワークスタック210のトランスポートプロトコル層を介して、新たな接続を作るか、またはドメイン名を決める。一実施形態において、アプリケーション220は、クライアント205とサーバ206との間に、またはクライアント205と機器250との間にトランスポート層接続を確立するように要求し得る。別の実施形態において、アプリケーション220またはクライアント205は、サーバ206によって提供されるアプリケーション220へのアクセスを要求し得る。例えば、サーバ206は、サーバベースのコンピューティングまたはシンクライアントコンピューティングを提供し得、これは、サーバ206上で実行するアプリケーション220のアウトプットを表すICAまたはRDPのリモートディスプレイプロトコルを送信することによって行われる。別の実施形態において、クライアント205は、ファイル、ディレクトリまたは電子メールサービスなどのサーバ206のリソースへのアクセスを要求し得る。一部の実施形態において、クライアント205は、パブリックネットワーク204上およびプライベートネットワーク204’上のサーバ206上にあり得る。他の実施形態において、クライアント205およびサーバ206は、異なるプライベートネットワーク上にあり得る。ステップ454において、第2のプログラムは、1つ以上の機能を自動的に、またはあらゆるトランスポート層の機能が開始される前に実行される。一部の実施形態において、第2のプログラムは、本発明の加速プログラム120であるか、そうでなければ加速プログラム120を含む。一実施形態において、第2のプログラムは、ステップ452のクライアント要求を傍受または受信する。一部の実施形態において、クライアント205のアプリケーション220は、ネットワークスタック210にAPI呼出しを行い、該API呼出しは、第2のプログラムによって傍受される。あらゆるAPI呼出しがネットワークスタック210のトランスポート層によって処理される前に、第2のプログラムは、ネットワークスタック210にフックされるか、そうでなければインタフェースされることによって、トランスポート層接続を介する送信に対して送信または処理される通信に先立って、ロジック、規則、関数または作動を実行する。ステップ456において、第2のプログラムは、クライアント205からの通信を、ネットワーク204’上のリソースに行き先を定められた、クライアント205上のあらゆるアプリケーション220a~220nなどによって傍受し、第1のプログラム222に別ルートで送信し、該第1のプログラムは、一実施形態においてネットワーク環境において動作するActiveX制御プラグイン、Java登録商標アプレット、または他の制御またはプログラミングの構成要素を含む。第2のプログラムは、ネットワークパケットまたは複数のネットワークパケットから行先情報にアクセスし得るか、読み取り得るか、または取得し得、該ネットワークパケットまたは複数のネットワークパケットは、傍受された通信を提供することによって、該通信は、ネットワーク204’、例えば機器250の背後にあるプライベートネットワークに行き先が定められていることを決定する。例えば、第2のプログラムは、ネットワークパケットからの行先IPアドレスおよび/またはポートを抜粋または解釈し得る。傍受された通信が、ネットワーク204’に対して行き先が定められると、第2のプログラムは、任意のインタープロセス通信インタフェースまたはAPI呼出しなどの任意の適切なインタフェース手段およびメカニズムを介して、第1のプログラム222に傍受された通信を通信する。一実施形態において、傍受された通信は、第1のプログラム222にそのままの状態で送信されるか、他の実施形態において、該傍受された通信は、第1のプログラム222への送信に先立って、第2のプログラムによって予め処理される。例えば、第2のプログラムは、傍受された通信からペイロードを除去し得、該ペイロードを第1のプログラム222に転送し得る。ステップ458において、各傍受された通信は、第1のプログラム222によって終了またはプロキシされ、第1のプログラム222は、傍受された通信を準備し、確立され暗号化されたデータ通信セッションを介して送信する。一実施形態において、第1のプログラム222は、ペイロードを分離させ、確立され暗号化された通信セッションを介するデリバリに対するペイロードを簡約する。別の実施形態において、第1のプログラム222は、第2のプログラムから受信された傍受された通信を簡約する。一部の実施形態において、ペイロードは、TCPペイロードであり、クライアント205とサーバ206との間、例えば機器250を介する新たなTCP接続で簡約される。ステップ460において、第1のプログラム222は、ネットワーク204上の傍受された通信を、予め確定され暗号化されたデータ通信セッションを介して、ネットワーク204’における機器250に送信する。一部の実施形態において、第1のプログラム222は、傍受された通信を暗号化し、暗号化され傍受された通信を機器250に送信する。一実施形態において、暗号化は、SSLプロトコルに従って実行される。別の実施形態において、暗号化は、TLSベースである。あらゆるタイプおおよび形状の暗号化および/または復号化は、第1のプログラム222または加速プログラム120によって用いられ得る。ステップ462において、機器250は、プロキシとして機能し、第1のプログラム222によって送信された接続を終了する。機器250は、第1のプログラム222から受信された通信を復号化し、該復号化された通信を、機器250がネットワーク204上の行先リソースを用いて確立させた第2の接続を介して、適切な行先リソース上に通信する。一実施形態において、復号化は、SSLプロトコルまたは他に適用が可能な暗号化または復号化のプロトコルに従って実行される。一部の実施形態において、機器250は、行先リソースに転送された通信上で、1つ以上の加速技術を行い、該行先リソースは、1つ以上の1マルチプロトコル圧縮238’、2転送制御プロトコルプーリング224’、3転送制御プロトコル多重化226’、4転送制御プロトコルバッファリング228’、および5キャッシュマネジャー232’を介したキャッシングである。ステップ464において、行先リソースは、復号化された通信を処理する。一実施形態において、復号化された通信は、接続または通信セッションを確立するための要求である。別の実施形態において、復号化された通信は、クライアント205に代わってアプリケーション220を開始またはアクセスするための要求である。他の実施形態において、復号化された通信は、ウェブページに対する要求、例えばHTTP要求であり、ウェブサーバ206からウェブページを受信する。ステップ466において、復号化された通信が要求を含み、該要求に対する応答が存在する場合には、行先リソースは、機器250に応答のある通信を送信する。一部の実施形態において、要求は、クライアント205によって要求された接続または通信セッションの確立の承認を含む。他の実施形態において、応答は、エラーメッセージを含む。一実施形態において、応答は、認証要求またはチャレンジ応答メカニズムを含む。一部の実施形態において、応答は、クライアント205によって用いられるべき加速プログラム120を含む。別の実施形態において、応答は、HTML、例えばクライアント205によって表示されるウェブページを含む。別の実施形態において、応答は、目標、例えば動的に生成される目標を含む。ステップ468において、機器250は、ネットワーク204上の応答のある通信を、予め確立された暗号化されたデータ通信セッションを介して、クライアント205上の第1のプログラム220に送信する。一部の実施形態において、暗号化は、SSLプロトコルまたは他に適切な暗号化および復号化のプロトコルに従って実行される。さらに、機器250は、クライアント205、例えばマルチプロトコル圧縮238’、キャッシング232’またはTCPバッファリング228’と通信する、本発明の任意の加速技術を行い得る。ステップ470において、第1のプログラム222は、応答のある通信を復号化し、第2のプログラムを介して、適切なアプリケーション222に該通信を転送する。第1のプログラム222は、あらゆる適切なインタフェース手段およびメカニズムを用い得、あらゆるタイプおよび形状のインタープロセス通信メカニズムまたはAPI呼出しなどを介して、第2のプログラムと通信し得る。第2のプログラムは、クライアント205のネットワークスタック210を介して、応答のある通信をアプリケーション220に提供する。そのような点において、アプリケーション220は、アプリケーション220への変化または変更は何もなく、応答のある通信をトランスペアレントに受信する。本発明の別の実施形態に従うと、ステップ458で、クライアント205は、ネットワーク204を介して通信を送信する前に、傍受された通信の追加的な処理を実行する。本発明の実施形態は、このようなデータを暗号化する前に、クライアントで、プロキシ終了接続として機能するVPNソリューションを提供するので、追加的な処理は、より効率的に実行され得る。このような処理は、クライアントアプリケーションが、どのようなIPアドレスを選択したとしても、またランタイムにこれらのアドレスをどのようなアドレスに動的に変更したとしても、クライアントアプリケーションが使用できるようにするために、傍受された通信のドメイン名サービスDNSネームレゾリューションnameresolutionを含み得る。このような追加的な処理は、本発明の実施形態が、効率的に、他の技術例えば、分配されたゲートウェイまたはサーバの間で、さらなる利用可能性の向上と、さらなる効率の向上を実行するための全体的なサービス負荷均衡と効率的に統合されることを可能にする。追加的な接続処理は、また、傍受された通信に関する詳細なログおよび統計を保持することも可能にする。本発明の別の実施形態において、機器250は、ステップ462で示されるように、ネットワーク204上の目的地に通信を転送するよりも、むしろ、クライアント205上の第一のプログラムから受信された通信を終了し、そのプログラムに含まれる1つ以上の要求をさらに処理する。このさらなる処理は、バックエンドの暗号化を含み得、通信が、ネットワーク204上の適切な目的地に配送される前に、機器250によって再び暗号化され、それによって、エンドツーエンドのネットワークセキュリティを提供する。その後、この目的地は、トラフィックを解読し、適切に応答する。さらに、このような処理は、目的地サーバによって追加的なワークを要求されるよりも、むしろ、機器250がキャッシュから離れてoutof応答をサービスすることを可能にし得、局所的なネットワーク負荷均衡、全体的なサービス負荷均衡、および/または通信上の圧縮を実行して、ネットワーク204の効率および応答性を向上し得る。上述の方法に従うと、暗号化されたデータ通信セッションに基づくVPNは、クライアント205とネットワーク204との間に確立される。例えば、一実施形態において、安全なVPNは、HTTPSを経由して確立される。その後、クライアント205からネットワーク204への全ての通信は、この暗号化されたデータ通信セッションを介して、第一のプログラム経由で、機器250にルーティングされ、また、その逆方向にルーティングされる。暗号化されたデータ通信セッションは、HTTPSを用いて確立され得るが、この暗号化されたデータ通信セッションを介してパスされる通信は、HTTPSパケットデータであることも、あるいはHTTPパケットデータであることすらも必要でないことには、留意すべきである。例えば、通信は、また、送信制御プロトコル/ユーザデータグラムプロトコルTCP/UDPまたはインターネット制御メッセージプロトコルICMPパケットデータを備え得る。しかしながら、これらの例は、限定することを意図されない。さらに、図4Bを参照して記載された方法は、クライアント205上のアプリケーションとネットワーク204上のリソースとの間の要求-応答タイプの通信を説明するが、本発明に従う暗号化された通信は、要求-応答をベースとする必要はない。むしろ、通信は、任意のタイプのものであり得る。したがって、接続または通信セッション例えば、UDPセッションを確立し得る任意のクライアントアプリケーションは、本発明の実施形態に従って暗号化された通信を送受信し得る。別の局面において、本発明は、サーバ206と接続または通信するための任意の仲介デバイスをクライアントから動的にバイパスする加速プログラム120に関連する。例えば、クライアント205は、本発明の機器250のような1つ以上の仲介物intermediaryを経由して、サーバと接続し得る。何らかの理由で、例えば、機器250が、メンテナンスのためにダウンし得るか、あるいは再起動または再開の処理中であり得るなど、サーバ206と通信するための仲介物が、もはや、クライアント205による使用に利用できなくなり得る。本発明の加速プログラム120は、その仲介物が利用できないと判断すると、サーバ206との異なる接続または通信セッション経路を自動的に確立する。これは、クライアント205のユーザまたはアプリケーションには、その接続および/または通信セッションが変更されなかったかのように、さもなくば、妨害されたかのように、トランスペアレントに起こり得る。ここで、図5を参照すると、仲介物を自動的にバイパスする本発明の方法500の実施形態が示される。簡単に総括すると、ステップ505で、加速プログラム120が、機器250のような仲介物を経由して、クライアント205とサーバ206との間に、トランスポート層接続を確立する。ステップ510で、確立されたトランスポート層接続を経由するサーバ206へのクライアント205による通信に、仲介物は使用可能でないと、加速プログラム120は、判断する。ステップ515で、加速プログラム120は、クライアント205からサーバ206への通信を、クライアント205上で傍受する。ステップ520で、加速プログラム120は、第二のトランスポート層接続を、クライアント205とサーバ206との間に確立し、その結果として、クライアントによるサーバ206への通信に使用可能でないと判断された仲介物をバイパスする。ステップ525で、加速プログラム120は、第二のトランスポート層接続を経由するサーバ206へのクライアント205による傍受された通信を送信する。さらなる詳細において、ステップ505で、加速プログラム120は、クライアント205とサーバ206との間で、仲介物を経由するトランスポート層接続を確立する。一つの実施形態において、仲介物は、機器205を備える。別の実施形態において、仲介物は、キャッシュ、サーバ、ゲートウェイ、ファイアウォール、ブリッジ、ルータ、スイッチ、ハブ、プロキシ、あるいは仲介物のこれらのタイプおよび形式のうちの任意の機能性および動作として機能するか、これらの機能性および動作を提供する任意のソフトウェアアプリケーションまたはプログラムのうちのいずれか一つを備える。一つの実施形態において、仲介物は、サーバ206上で動作し得る。一部の実施形態において、トランスポート層接続は、同じタイプおよび形式あるいは異なるタイプおよび形式の複数の仲介物を経由して確立される。別の実施形態において、トランスポート層接続は、本明細書に記載された本発明の動作に従って、クライアント205または機器250のいずれかで確立されるトランスポート層接続のプールの接続からなる。ステップ510で、確立されたトランスポート層接続を経由するサーバ206へのクライアント205による通信に、仲介物が利用可能でないと、あるいはさもなくば、使用可能でないと、加速プログラム120は、判断する。加速プログラム120は、任意の適切な手段および/またはメカニズムによって、仲介物のステータスまたは利用可能性を判断し得る。一つの実施形態において、加速プログラム120は、仲介物への送信と関連するエラーメッセージまたは失敗返答failurereplyを受信することによって、仲介物が利用可能でないと判断する。例えば、加速プログラム120は、確立されたトランスポート層接続を経由するクライアント205からの通信を送信するときに、失敗したトランスポート層通信応答を受信し得る。別の実施形態において、加速プログラム120は、仲介物のステータスおよび利用可能性をモニタするために、所定の頻度で、ピングpingコマンドを仲介物に送信し得る。加速プログラム120が仲介物から返答を受信しない場合、あるいは、一部の実施形態において、遅延された返答または所望の待ち時間latencyよりも長い待ち時間を有する返答を受信する場合、加速プログラム120は、その仲介物がクライアント205によって利用可能または使用可能でないと判断し得る。別の実施形態において、その仲介物がクライアント205によって、利用可能でない、さもなくば、使用可能でないことを同定する情報を提供するメッセージを、サーバ206、機器250、または仲介物は、クライアント205または加速プログラム120に送信し得る。一部の実施形態において、確立されたトランスポート層接続は、妨害disruptまたは中断interruptされ、あるいは他の実施形態において、閉じられる。ステップ515で、加速プログラム120は、確立されたトランスポート層接続を介して、仲介物を経由して進むように運命づけられたクライアント205からサーバ206への通信を傍受する。加速プログラム120は、ネットワークスタック210の任意の点および任意のプロトコル層で、通信を傍受し得る。一つの実施形態において、加速プログラム120は、確立されたトランスポート層接続上に送信する前に、トランスポートプロトコル層で、通信を傍受する。例えば、一部の実施形態において、加速プログラム120は、トランスポートドライバインターフェースを有するネットワークドライバを、さもなくば、トランスポートプロトコル層にインタフェースするネットワークドライバを備える。他の実施形態において、本発明は、第一のプログラム222と、図4A~4Bと関連して議論されたような第二のプログラムとして加速プログラム120を用いて、実施される。ここで、第一のプログラム222または加速プログラム120のいずれかが、通信を傍受する。ステップ520で、加速プログラム120は、クライアント205のために、サーバ205への第二のトランスポート層接続を確立する。これは、ステップ510で、クライアントによって、利用可能でない、あるいは使用可能でないと判断された仲介物を、クライアント205がバイパスするためである。一つの実施形態において、加速プログラム120は、第二のトランスポート層接続を、直接サーバ206に確立する。例えば、クライアント205およびサーバが、同じネットワーク205上にあるとき、あるいはクライアント205とサーバ206との間でルーティング可能な異なるネットワーク上にあるときである。別の実施形態において、加速プログラム120は、第二の機器250’のような第二の仲介物と、第二のトランスポート層接続を確立する。一部の実施形態において、加速プログラム120は、機器250に、サーバ250との別のトランスポート層接続を確立するように要求する。一つの実施形態において、機器250は、サーバ206へのトランスポート層接続のプールの中からof第二のトランスポート層接続を使用する。別の実施形態において、加速プログラム120は、サーバ206に、第二のトランスポート層接続を確立するように要求する。一部の実施形態において、加速プログラム120は、本明細書に記載された本発明の動作に従って、加速プログラム120によって、サーバ206と確立されたトランスポート層接続のプールからの第二のトランスポート層接続を使用する。一つの実施形態において、ステップ520で、加速プログラム120は、クライアント205のユーザまたはアプリケーション220にはトランスペアレントに、あるいは一部の実施形態においては、トランスポート層の上または下の任意のプロトコル層にトランスペアレントに、第二のトランスポート層接続を確立する。一部の局面において、ステップ510で、仲介物がクライアント205によって利用可能でない、あるいは使用されるべきではないと判断されると、第二のトランスポート層接続は、自動的に確立される。他の実施形態において、傍受された通信をサーバ206へ送信すること例えば、通信を送信する最初の試みに失敗すると、クライアント205のために、第二のトランスポート層接続が、自動的に確立される。一部の実施形態において、通信の送信を1回以上再試行するのに失敗すると、あるいは所定の回数の再試行を果たすと、第二のトランスポート層接続が、自動的に確立される。別の実施形態において、仲介物がネットワークパケットの送信速度または受信速度を遅延していると判断すると、あるいは仲介物が待ち時間を生じさせていると判断すると、さもなくば、望ましからぬ方法でトランスポート層接続の使用に影響を及ぼしていると判断すると、第二のトランスポート層接続が、確立される。一つの実施形態において、加速プログラム120は、負荷平衡を実行し、仲介物からクライアント205および/または第二の仲介物への任意の処理または動作の負荷を除くoffloadために、その仲介物をバイパスする第二のトランスポート層接続を確立する。ステップ525で、加速プログラム120は、クライアント205の傍受された通信を、第二のトランスポート層接続を経由して、サーバ206に送信する。一つの実施形態において、加速プログラム120は、傍受された通信を直接、サーバ106に送信する。別の実施形態において、加速プログラム120は、第二の機器250のような第二の仲介物を経由して、傍受された通信を送信する。第二のトランスポート層接続を使用することによって、加速プログラム120は、仲介物をバイパスし、クライアント205のアプリケーション220は、サーバ206との動作を続ける。一つの実施形態において、クライアント205のアプリケーション220は、そのアプリケーション220が、以前または最初に確立したトランスポート層接続を使用し続けているかのように、サーバ220との動作および通信を続ける。このように、加速プログラム120は、仲介物が加速プログラム120によってバイパスされない場合、起こり得る任意の通信の中断、分裂、待ち時間、遅延、あるいは動作問題または性能問題を防止、回避、または迂回する。別の局面において、本発明のこの技術は、たとえ、仲介するデバイスからのアクセスに問題またはアクセスの中断があったとしても、サーバ206またはリモートアクセスされたアプリケーションへの連続的なアクセスをクライアント205に、自動的に提供する。さらに、上述された本発明のリダイレクトおよびバイパスの技術は、クライアント205上で負荷均衡およびトラフィック管理を実行して、アプリケーション220a~220nを提供する1つ以上のサーバ206a~206nに、あるいはクライアント205への他のコンテンツおよび機能性にアクセスするために、使用され得る。例えば、一つの実施形態において、クライアントによって、サーバにアクセスするために使用される仲介物または機器は、トランスポート層接続を増やすと、過負荷になり得、応答速度、性能、または他の動作を低下させ得る。加速プログラム120は、仲介物または機器の性能が低下していると判断すると、加速プログラム120は、クライアントを別の仲介物または機器にリダイレクトし得るか、あるいはサーバをリダイレクトして、クライアントのサーバへのエンドツーエンドの接続性における任意の性能のボトルネックをバイパスし得る。別の局面において、本発明は、クライアントのネットワークスタックのトランスポートプロトコル層に関連する、あるいはその層で実行されるクライアント側の加速技術に関する。加速プログラム120は、1伝送制御プロトコルTCPバッファリング228、2TCP接続プーリング224、および3TCP多重化226のうちの任意の1つ以上を実行する実行可能な命令を備え得る。一部の実施形態において、加速プログラム120は、クライアントのネットワークスタックのトランスポートプロトコル層で傍受された通信をトランスペアレントに処理し、加速プログラム120は、クライアントのTCP接続と、クライアント205のアプリケーション220a~220nによる接続を介する使用および送信とを制御し得、管理し得る。図6は、本発明のTCPバッファリング技術を実施する方法600の実施形態を示し、その一方で、図7A~7Bは、本発明のTCP接続プーリング技術の実施形態を示し、そして、図8、図9、および図10は、TCP多重化技術を示す。図6に示される方法600の実施形態を簡単に総括すると、ステップ605で、加速プログラム120は、クライアント205からサーバ206への通信例えば、クライアント205によるサーバ206へアクセスしたいという要求を傍受する。ステップ610で、加速プログラム120は、受信したサーバ応答の消費速度と、クライアントによって送信された要求の産出速度との差異が、所定の閾値を下回るかどうかを判断する。ステップ615で、産出速度と消費速度との差異が、所定の閾値を下回らない場合、ステップ617で、加速プログラム120は、サーバ260に通信を転送する。ステップ615で、両速度の差異が、所定の閾値を下回る場合、ステップ620で、加速プログラム120は、クライアント205のメモリの中に、その通信を格納する。ステップ625で、加速プログラム120は、両速度の差異が、所定の閾値を上回るように変化したかどうかを判断し、上回った場合は、格納された通信をサーバ206に転送する。上回らない場合、ステップ625で、速度の差異が所定の閾値を上回る時点まで、加速プログラム120は、クライアント205のメモリの中に通信を維持する。例えば、クライアント205が生成された応答を消費し得るより高速で、クライアント205が、サーバ206に要求を送信する場合、本発明の加速プログラム120は、速度の差異が変化する将来の時点まで、さらなる送信を保持する。さらなる詳細には、ステップ605で、加速プログラムは、クライアント205からサーバ206への通信を傍受する。加速プログラム120は、ネットワークスタック210の任意の点および任意のプロトコル層で、通信を傍受し得る。一つの実施形態において、加速プログラム120は、確立されたトランスポート層接続上への送信前に、トランスポートプロトコル層で、通信を傍受する。例えば、一部の実施形態において、加速プログラム120は、トランスポートドライバインターフェースを有するネットワークドライバを、さもなくば、トランスポートプロトコル層にインタフェースするネットワークドライバを備える。他の実施形態において、本発明は、第一のプログラム222と、図4A~4Bと関連して議論されたような第二のプログラムとして加速プログラム120とを用いて、実施される。ここで、第一のプログラム222または加速プログラム120のいずれかが、通信を傍受する。一つの実施形態において、通信は、サーバ206のリソース例えば、アプリケーション220を使用したい、さもなくば、アクセスしたいという、クライアント205による要求を備える。ステップ610で、クライアント205の消費速度と産出速度との差異が、所定の閾値を下回るかどうかを、加速プログラム120は判断する。一つの実施形態において、加速プログラム120は、クライアント205によってサーバ206に送信された要求の数をカウントし、トラックし、別の実施形態において、加速プログラム120は、クライアント205によってサーバ206から受信された応答の数をカウントし、トラックする。一部の実施形態において、クライアント205は、アプリケーション220ごとに、送信された応答と、受信された要求とをトラックする。応答および要求は、ネットワークスタック210の任意のプロトコル層で、トラックされ得る。一つの実施形態において、クライアント205またはアプリケーション220によって送信された要求の数は、送信ポイントから、クライアント205とサーバ206との間のトランスポート層またはトランスポート層接続まで、カウントされ、トラックされる。同様に、別の実施形態において、クライアント205またはアプリケーション220によってサーバ206から受信された応答の数は、受信ポイントから、クライアント205とサーバ206との間のトランスポート層またはトランスポート層接続まで、および/またはネットワークスタック210のトランスポート層の上で、アプリケーション層のようなプロトコル層に応答が提供されるポイントで、カウントされ、トラックされる。一部の実施形態において、加速プログラム120は、クライアント205とサーバ206との間に、加速プログラム120によって確立されたトランスポート層接続の送受信TCPバッファに関する情報およびデータにアクセスし、検査し、あるいは、さもなくば、入手する。例えば、加速プログラム120は、任意のTCP/IPバッファのデフォルトおよび最大サイズと、そのバッファの現在使用中の部分とを決定して、クライアント205からサーバ206へのネットワークパケットの送信速度と受信速度との間の差異を決定し得る。他の実施形態において、加速プログラム120は、任意のタイプおよび形式の輻輳アルゴリズムを使用して、クライアント205からサーバ206へのネットワークパケットの消費と産出との差異によって生じた輻輳があるかどうかを判断する。別の実施形態において、加速プログラム120は、トランスポート層接続によって例えば、ネットワークドライバまたはTCPサービスプロバイダによって使用される輻輳アルゴリズムからの情報またはデータとインタフェースするか、あるいはこれらの情報またはデータを入手する。例えば、一つの実施形態において、加速プログラム120は、接続によって使用される輻輳ウィンドウに関する情報およびデータを判断する。所定の閾値は、加速プログラム120の任意の適切な手段およびメカニズムによって、構成、特定、規定、または同定され得る。一つの実施形態において、閾値は、クライアント205および/またはアプリケーション220の産出速度と消費速度との間において、百分率で、相対的に、絶対的に、あるいはその他で、特定され得る。消費速度および/または産出速度は、任意の期間にわたって、任意の細かさgranularityで、消費された受信の数と産出された送信の数とのそれぞれによって、同定され得る。一部の実施形態において、閾値は、クライアント205および/またはアプリケーション220の産出速度と消費速度との間の量の差異として特定され得、一部の実施形態において、ある期間にわたる量の差異として、特定され得る。例えば、閾値は、クライアント205が消費するよりも、100個多い要求をクライアント205が産出する期間として、特定され得る。別の例において、閾値は、期間ごとに、クライアント205がサーバ206に産出する要求が、その同じ期間の間に、クライアント205によって消費される要求よりも10個多いときの時点として、特定され得る。ステップ615で、クライアント205および/またはアプリケーション220の産出速度と消費速度との差異が、所定の閾値を下回らない場合、ステップ617で、加速プログラム120は、サーバ260に通信を転送する。一部の実施形態において、加速プログラムは、通信するために、本発明の加速技術の任意のものを実行する。例えば、通信は、プーリングされ、多重化されたトランスポート層接続を経由して、サーバに転送され得、追加的に、圧縮され得る。他の実施形態において、クライアント205は、クライアント205にサーバ206への接続を提供する機器250に通信を転送し得る。ステップ615で、クライアント205および/またはアプリケーション220の産出速度と消費速度との差異が、所定の閾値を下回る場合、ステップ620で、加速プログラム120は、クライアント205のメモリの中に、その通信を格納する。一部の実施形態において、メモリは、クライアント205のカーネルモード202のメモリであり得、その一方で、他の実施形態において、メモリは、クライアント205のユーザモード203であり得る。一つの実施形態において、加速プログラム120は、キャッシュマネージャ232を経由して、キャッシュの中に通信を格納し得る。他の実施形態において、加速プログラム120は、加速プログラム120によってアクセス可能なオブジェクト、データ構造、または他のデータエレメントを使用して、傍受された通信をバッファ、保持、さもなくば、格納し得る。一つの実施形態において、傍受された通信は、メモリの中に、圧縮される方法で、格納され得る。別の実施形態において、加速プログラム120は、傍受された通信を、第一のプログラム222に送信して、時間的に後の時点で、送信するために、メモリの中に、格納または保持する。ステップ625で、加速プログラム120は、サーバ206に格納された通信をいつ送信するかを決定する。一つの実施形態において、加速プログラム120は、ステップ610および615を実行して、クライアント205の産出速度と消費速度との差異が閾値を上回ると判断すると、加速プログラム120は、ステップ617でサーバ206に格納された通信を転送する。一部の実施形態において、加速プログラム120は、定期的な頻度または所定の頻度で、あるいはポーリングpollingまたはイベントのベースで、産出速度と消費速度との差異を比較して、その差異が、所定の閾値を超えるときに、加速プログラム120は、通信をサーバ206に転送する。他の実施形態において、加速プログラム120は、タイマーを設定または構成し、その傍受された通信がどのくらいの間にわたって、格納されているかを決定する。タイマーの設定時間が切れると、加速プログラム120は、サーバ206に格納された通信を送信する。別の実施形態において、加速プログラム120は、傍受された通信が格納されてから、クライアント205によって消費されたサーバ応答の数をチェックする。消費された応答の数が、所定の数よりも大きい場合、加速プログラム120は、傍受された通信をメモリバッファまたはストレージからリリースし、サーバ206への送信のために通信をサブミットsubmitする。ステップ625で、加速プログラム120が、産出速度または消費速度が適切な方法で変化しなかったと判断する場合、加速プログラム120は、適切な時点が来るまで、傍受された通信を保持または維持する。一つの実施形態において、ステップ617で、たとえ、産出速度および/または消費速度が変化しなくても、加速プログラム120は、通信をサーバに転送する。例えば、産出速度および/または消費速度を所定の期間待った後に、これらの速度が変化しないとき、加速プログラム120は、サーバ206に通信を転送する。本発明のTCPバッファリング技術は、一般的に、傍受された通信または要求と関連して、議論され、本発明の方法600の実施形態は、連続的に、ほぼ同時に、あるいは同時に、クライアント205からサーバ205への複数の傍受された通信に対して、実施され得る。追加的に、別の実施形態において、本発明の方法600は、クライアントから複数のサーバ206a~206nへの通信に対して、クライアント上で実施され得る。例えば、方法600の第一のインスタンスは、クライアント205と第一のサーバ206aとの間で実施され得、方法600の第二のインスタンスは、クライアント205と第二のサーバ206bとの間で実施され得る。さらに、一部の実施形態において、方法600は、第一のアプリケーション200aに対して、また第二のアプリケーションに対しても、各アプリケーションの産出速度と消費速度とをそれぞれ用いて、実施され得る。別の実施形態において、方法600は、第一のアプリケーション200aに対しては実施され得るが、第二のアプリケーション200nに対しては実施され得ない。本発明の別の局面に従うと、クライアント側の加速プログラム120は、クライアントの接続を繰り返し開閉することによって生じるサーバ206a~206nおよび/または機器250の処理負荷を低減させる。この処理負荷は、クライアントが、各サーバとの1つ以上の接続を開き、クライアント205のアプリケーションによって、サーバ206に、繰り返してデータアクセスすることを可能にするこれらの接続を維持することによるものである。この技術は、接続プーリングpoolingと本明細書では、一般的に称される。方法700を簡単に総括すると、ステップ702で、加速プログラム120は、サーバにアクセスしたいというアプリケーションの要求を傍受し、ステップ704で、その要求と関連するサーバのアイデンティティを決定する。ステップ706で、加速プログラム120は、その加速プログラム120が、アプリケーション220によって自由に使用できるサーバ206への確立されたトランスポート層接続を有するかどうかを判断する。アプリケーション220によって自由に使用できるサーバ206へのトランスポート層接続がない場合、ステップ708で、加速プログラム220は、クライアント205によって使用するために、サーバ206へのトランスポート層接続を確立する。ステップ706で、アプリケーション220によって使用するために、利用可能なトランスポート層接続がある場合、ステップ710で、加速プログラム120は、その利用可能なトランスポート層接続を経由する送信または通信に対するアプリケーションの要求を翻訳する。さらに総括すると、ステップ712で、加速プログラム120は、サーバ206からの要求に対する応答を受信し、ステップ714で、その応答をアプリケーション220に対する応答に翻訳する。ステップ716で、加速プログラム120は、クライアント205のアプリケーション220a~220nの任意のものによって使用するために、トランスポート層接続を開いたまま、維持または保持し得る。サーバ206a~206nとのトランスポート層接続をクライアント205上で開いたまま維持することと、必要に応じて、アプリケーションとの接続を開閉することとによって、加速プログラム120は、インターネットのようなネットワーク204を介して、クライアント205にサービスすることと関連するTCP接続の負荷問題から、サーバを解放する。ステップ718で、加速プログラム120は、トランスポート層接続が、クライアント205の1つ以上のアプリケーション220によって、サーバ206にアクセスするために、もはや使用されないと判断する場合、加速プログラム120は、ある時点で、その接続を閉じる。さらなる詳細において、ステップ702で、加速プログラム120は、サーバ206にアクセスしたいというクライアント205の任意のアプリケーション220a~220nによる要求を傍受する。一部の実施形態において、トランスポート層接続を確立して、要求をその接続を経由して送信する前に、その要求は、トランスポートプロトコル層で傍受される。他の実施形態において、要求は、トランスポート層またはトランスポート層接続の上の任意のプロトコル層で傍受される。一つの実施形態において、アプリケーション220の要求は、サーバ206とのトランスポート層接続を開きたい、あるいは確立したいという要求である。一部の実施形態において、要求に応答して、加速プログラム120は、クライアント205のアプリケーション220a~220nによって使用するためのトランスポート層接続のプールの第一のトランスポート層接続を確立する。別の実施形態において、アプリケーションの要求は、クライアント205の確立されたトランスポート層接続を経由して、サーバにアクセスしたいという要求である。ステップ704で、加速プログラム120は、任意の適切な手段およびメカニズムによって、その要求からサーバ206のアイデンティティを決定する。一部の実施形態において、サーバ206のドメイン名またはインターネットプロトコルアドレスは、要求のコンテンツによって、同定されるか、さもなくば、参照される。例えば、その要求のテキストストリングは、サーバ206のドメイン名を同定し得る。一つの実施形態において、サーバ206のアイデンティティは、TCPパケットのヘッダ情報例えば、目的地のインターネットプロトコルアドレスおよびポート番号によって、決定される。別の実施形態において、サーバ206は、アプリケーション220と関連し、加速プログラム120は、データベースまたは他の構造化された情報ストレージとの関連をルックアップまたはクエリする。ステップ706で、加速プログラム120は、アプリケーション220によって使用するのに利用可能であるか、さもなくば、自由に使用できるトランスポート層接続があるかどうかを判断する。一つの実施形態において、加速プログラム120は、サーバ206とのトランスポート層接続を依然として確立し得ず、そのような場合、アプリケーション220が使用するのに利用可能なトランスポート層接続はない。別の実施形態において、加速プログラム120は、サーバ206と以前に確立されたトランスポート層接続を有し得るが、別のアプリケーションが、その接続を現在アクティブに使用していると判断する。以下でさらに詳細に議論されるように、確立された加速プログラム120は、トランスポート層接続が、別のアプリケーション220によって使用するのに利用可能であるかどうか、あるいは、アプリケーション220のために、サーバ206から受信されているメッセージ例えば、要求に対する応答の長さに基づいて、アプリケーション220s~220nによって共有され得るかどうかを、および/または、サーバ206とアプリケーション220との間の通信が、現在アイドルであるかどうかを判断する。ステップ708で、加速プログラム120は、トランスポート層接続がアプリケーション220によって使用するのに利用可能でないと判断し、加速プログラム120は、サーバ206と、トランスポート層接続を確立する。一部の実施形態において、ステップ708で確立されたトランスポート層接続は、サーバ206との第一のトランスポート層接続であり、他の実施形態において、そのトランスポート層接続は、サーバ206への複数のトランスポート層接続のうちの第二のトランスポート層接続である。さらに、別の実施形態において、加速プログラム120は、既に確立されたトランスポート層接続が、利用可能になるか、あるいはサーバ206へのアプリケーションの要求を自由に通信できるようになるのを待つ。例えば、加速プログラム120は、第一のアプリケーション220aが、確立された接続を経由するサーバ206とのトランザクションを間もなく完了し得ると判断し得る。ステップ710で、加速プログラム120は、トランスポート層接続を経由して、サーバ106へ送信されるべきアプリケーションの要求を翻訳する。一部の実施形態において、加速プログラム120は、接続を共有しているクライアント205の全てのアプリケーション220a~220nに対するトランスポート層接続通信に対して、1つのポート番号を使用する。一部の場合、加速プログラム120は、アプリケーションベースによって、アプリケーション上で、要求と、その要求に対する継続中の応答とをトラックする。そのようにして、加速プログラム120は、どのアプリケーション220が、任意の所与の時点に、サーバ206に、トランスポート層接続を経由して、ネットワークパケットを送受信しているかを認識する。一つの実施形態において、一度に一つのアプリケーション220のみが、トランスポート層接続上で、送受信され、したがって、加速プログラム220は、どのアプリケーション220が接続を使用しているのかを理解する。一部の実施形態において、加速プログラム120は、アプリケーション220の処理idを要求と関連付ける。他の実施形態において、加速プログラム120は、ポート番号を提供し、そのポート番号をアプリケーション220と関連付け、TCPネットワークパケットの中で、そのポート番号をアプリケーションに割り当てられたポート番号に送信されるように修正する。別の実施形態において、ポート番号がアプリケーション220によって提供されて、加速プログラム120が変更するか、さもなくば、ポート番号をTCPネットワークパケットに従って提供する。ステップ712で、加速プログラム120は、サーバ206からのアプリケーションの要求に対する応答を受信する。一つの実施形態において、サーバ206は、その要求に応答しない。別の実施形態において、サーバ206は、エラーメッセージまたは失敗メッセージで、応答する。一部の実施形態において、サーバ206は、複数の応答で、応答する。他の実施形態において、サーバ206は、複数のネットワークパケットまたは複数のTCPセグメントを備える応答で、応答する。別の実施形態において、サーバ206は、アプリケーション220と関連するソースポート番号またはアプリケーション220に割り当てられたソースポート番号を識別する1つ以上のネットワークパケットで応答する。一つの実施形態において、サーバ206は、トランスポート層接続のポート番号を識別し、クライアント205の複数のアプリケーションに対して使用される1つ以上のネットワークパケットで応答する。ステップ714で、加速プログラム120は、サーバ206からの応答を、アプリケーション220に応答するような方法で、翻訳するか、さもなくば、処理する。一つの実施形態において、加速プログラム120は、受信した1つまたは複数のネットワークパケットのソースポート番号を、アプリケーション220のポート番号に置換する。別の実施形態において、加速プログラム120は、トラッキングメカニズムを経由して、トランスポート層接続を現在使用しているアプリケーション220を判断し、ネットワークスタック210を経由して、アプリケーション220に応答をパスする。一つの実施形態において、応答は、接続のトランスポート層の上のネットワークスタックのプロトコル層を経由して処理するために、変更されず、パスされない。一部の実施形態において、加速プログラム120は、アプリケーション220への応答を処理して、転送する前に、受信されるべき応答の複数の部分例えば、TCPセグメントを待つ。一つの実施形態において、加速プログラム120は、アプリケーション220への応答とインタフェースし、その応答を提供する第一のプログラム222への応答をパスする。ステップ716で、加速プログラム120は、クライアント205からサーバ206への1つ以上のトランスポート層接続のプールを開いたまま、トランスポート層接続を維持または保持し得る。一つの実施形態において、加速プログラム120またはネットワークスタック210のトランスポート層ドライバは、キープアライブkeep-aliveメカニズムを含む。このメカニズムは、接続がないとすれば、アイドルであるとき例えば、送信するデータがないとき、接続の他端を定期的にプロービングする。キープアライブメカニズムは、接続がアイドルであり得るが、接続がまだアクティブであることを確認する応答を受信するために、このメッセージを送信し得る。キープアライブメッセージと、その対応する応答とは、任意のタイプおよび形式のフォーマット、コマンド、指令、または通信を含み得る。このように、一部の実施形態において、加速プログラム120は、トランスポート層ドライバを経由して、トランスポート層接続へのキープアライブメッセージを送信するか、あるいは送信させる。一部の実施形態において、加速プログラム120は、キープアライブメッセージに対して、頻度を設定し、他の実施形態において、接続を用いるアプリケーション220a~220nの挙動または活動に基づいて、キープアライブメッセージの頻度を変化させる。一部の実施形態において、加速プログラム120は、トランスポート層接続を介して受信した任意のRSTおよび/またはFINコマンドすなわち、TCP接続をリセットおよび/または終了するためのTCP/IPコマンドを傍受し得る。一つの実施形態において、加速プログラム120は、傍受されたRSTおよび/またはFINコマンドを無視するか、そのコマンドに対してアクションをとらないか、あるいは、さもなくば、そのコマンドを落とすか、削除するか、またはフラッシュする。別の実施形態において、加速プログラム120は、RSTおよび/またはFINコマンドを傍受して、受信するが、接続の他端にメッセージを送信して、その接続を開いたまま保持または維持する。他の実施形態において、加速プログラム120は、RSTおよび/またはFINコマンドを処理するために、確立したトランスポート層接続を閉じるのに応答して、新たなトランスポート層接続を確立する。他の実施形態において、加速プログラム120は、傍受されたクライアント205の通信の中に、命令、コマンド、または指令を挿入し、サーバ206が接続を開いたまま保持するように、あるいは保持しないとすれば、クライアント205が接続を閉じるようにというコマンドを送信しない限り、接続を閉じないように、保持する。例えば、一つの実施形態において、加速プログラム120は、HTTPプロトコルのGET要求の通信例えば、プロトコルバージョン1.0を傍受し、キープアライブヘッダ例えば、接続:キープアライブをサーバ206への通信の中に挿入する。別の実施形態において、GET要求または他のHTTPコマンドは、キープアライブヘッダを含み得る。これらの実施形態において、加速プログラム120は、通信を傍受し得、キープアライブヘッダに対するチェックを行い得、次いで、サーバ206に通信を転送し得る。一部の実施形態において、キープアライブメカニズムが内在するHTTPのバージョン1.1またはそれ以上のバージョンが、使用され、これによって、クライアント205が接続を閉じたいと要求するまで、サーバ206は接続を開いたまま保持するようにする。別の実施形態において、加速プログラム120は、クライアント205が再起動または再開されるまで、ネットワーク204が利用不可能になるまで、あるいはクライアント205がネットワーク204から接続を外されるまで、もしくはサーバが再起動または再開されるまで、トランスポート層接続をサーバ206に開いたまま、保持する。ステップ718で、加速プログラム120は、任意の所望の時点で、クライアント205とサーバ206との間のトランスポート層接続の任意の1つ以上を閉じ得る。一部の実施形態において、加速プログラム120は、トランスポート層接続を使用するクライアント205上の1つ以上のアプリケーション220a~220nの終了を受けて、その接続を閉じる。他の実施形態において、加速プログラム120は、トランスポート層接続を使用する任意のアプリケーション220a~220nに対するタイムアウト期間の満了を受けて、その接続を閉じる。例えば、加速プログラム120は、所定の期間を経過すると、タイマーが期間満了するように構成、設定、あるいは提供し得、接続がその期間の間、アイドルであるか、あるいはアイドルのままに留まる場合、加速プログラム120は、その接続を閉じる。一部の実施形態において、サーバ206は、再起動または再開し得るか、あるいは接続が分裂または中断され得て、加速プログラム120は、接続を閉じる。一部の実施形態において、加速プログラム120は、サーバ206に要求を送信して、サーバ206から応答のデータを全て受信するのが完了すると、RSTおよび/またはFINコマンドを送信し、あるいは送信させるようにする。他の実施形態において、トランスポート層接続またはトランスポート層接続のプールは、クライアント205の再開または再起動すると、ネットワーク204への接続が切断されると、あるいはネットワーク204が利用不可能なると、もしくはサーバ206が再開または再起動すると、閉じられる。一部の実施形態において、サーバ206への第一のトランスポート層接続は、サーバへの第二のトランスポート層接続が閉じられている間、開いたまま保持される。なぜなら、加速プログラム120は、クライアント205の1つ以上のアプリケーション220a~220nによって、サーバ206への接続を共有するために、第一のトランスポート層接続のみが必要とされると判断するからである。他の実施形態において、加速プログラム120は、任意のサーバ206a~220nへの1つのトランスポート層接続のプールを維持し、クライアント205上のアプリケーション220a~220nの要求、通信、またはトランスポート層接続の使用の増加に基づいて、所与のサーバ206への第二の接続または複数の接続を確立する。方法700の一実施形態は、クライアント205からサーバ206への1つ以上のトランスポート層接続のプールと関連して、一般的に議論されたが、加速プログラム120は、クライアントと、複数のサーバ206a~206nのそれぞれとの間に、トランスポート層接続のプールを連続的に、ほぼ同時に、あるいは同時に、確立し得る。このように、第一のアプリケーション220aおよび第二のアプリケーション220bは、サーバ206aへの1つ以上のトランスポート層接続の第一のプールを使用中であり得、第三のアプリケーション220cおよび第四のアプリケーション220dは、サーバ206bへの1つ以上のトランスポート層接続の第二のプールを使用中であり得る。さらに、方法700の実施形態のステップのそれぞれは、異なるインスタンスにおいて、異なる頻度で、実行され得る。一部の実施形態において、加速プログラム120の複数のインスタンスは、各サーバ206a~206nへの1つ以上のトランスポート層接続の各プールを操作handleするために、使用され得る。図7Bは、一つの例示的な実施形態に従う本発明のトランスポート層接続プーリング技術を示すメッセージステップの線図である。簡単に総括すると、図7Bは、クライアント205の2つのアプリケーション220aおよび220bによって使用するために、一つの実施形態において、サーバ206へのトランスポート層接続を、あるいは、別の実施形態において、機器205へのトランスポート層接続を提供する加速プログラム120の流れ図を示す。クライアント204上の加速プログラム120は、ステップ752によって示されるように、アプリケーション220によって提供されるネットワークアドレス1を用いて、クライアント205とサーバ206または機器205との間に、第一のトランスポート層接続を開く。ステップ752は、双方向ステップとして示される。なぜなら、TCP/IPプロトコルは、マルチステージのハンドシェークhandshakeを用いて、接続を開くからである。トランスポート層接続が一度確立されると、ステップ754で示されるように、加速プログラム120は、/sales/forecast.htmlの経路名を特定するアプリケーション220aからGET要求を傍受する。自由なトランスポート層接続は、加速プログラム120とサーバ206または機器205との間に開いてないので、加速プログラム120は、トランスポート層接続を開く。一つの実施形態において、ステップ756で示されるように、加速プログラム120は、サーバ260を特定するネットワークアドレス2の第二のネットワークアドレスに、アプリケーション220aの要求をマッピングする。例えば、加速プログラム120は、ネットワークアドレス翻訳を実行して、届け先IPアドレスおよび/または届け先ポートを、アプリケーション220aによって要求されたサーバ206a、あるいはその要求を操作し得るか、その要求に応答し得る別のサーバ206bに修正する。別の実施形態において、加速プログラム120は、アプリケーション220sによって受信または生成された際に、サーバ206、または機器250に要求を送信する。ステップ758で示されるように、加速プログラム120は、また、サーバ206または機器250に、GET要求をパスする。一つの実施形態において、機器250は、サーバ206に要求を転送し、さらなる実施形態において、機器250は、機器250とサーバ206との間で、プールされたトランスポート層接続、またはプールされ、多重化されたトランスポート層接続を経由して、要求を転送する。一部の実施形態において、ステップ760に示されるように、サーバ206は、要求されたウェブページで応答する。ステップ762に示されるように、加速プログラム120は、ウェブページをアプリケーション220aに転送する。一つの実施形態において、ステップ764に示されるように、加速プログラム120とサーバ206または機器250との間のトランスポート層接続は、閉じられる。他の実施形態において、加速プログラム120は、閉じたclose要求を傍受し、その要求を無視して、トランスポート層接続を開いたままにしておく。TCP/IPプロトコルに従うと、ネットワーク接続を閉じることは、マルチステージ処理を含み得る。それゆえ、ステップ764のフローラインは、双方向として示される。他の実施形態において、また本発明のプーリングの局面の技術に従うと、第一のアプリケーション220のために確立され、第一のアプリケーション220によって使用されるトランスポート層接続は、同じアプリケーション220aまたは第二のアプリケーション220bのような異なるアプリケーションから、さらなるデータステップに適合するように、開かれたままに保持されるか、さもなくば、開かれたままに維持される。ステップ766で、加速プログラム120は、第二のアプリケーション220aからサーバ206または機器250への要求を傍受する。自由なトランスポート層接続例えば、ステップ756で、第一のアプリケーション220aのために確立されたトランスポート層接続が開いているか、および/または第二のアプリケーション220bによって使用可能である場合、加速プログラム120は、この以前に確立されたトランスポート層接続を使用する。このように、ステップ766で、第二のトランスポート層接続は、開かれる必要はない。さもなくば、加速プログラム120は、サーバ206または機器250への第二のトランスポート層接続を確立する。ステップ768で、加速プログラムは、第二のアプリケーション220bからの要求例えば、ウェブページ/sales/forecast.htmlを要求するものを傍受し、ステップ770で、その要求をサーバ206または機器250に送信する。自由な接続は、加速プログラム120とサーバ120との間に、既に開かれているので、加速プログラム120が、さらなる接続を開くための処理負荷で、サーバ120に負担を掛ける必要はない。ステップ772で、加速プログラム120は、サーバ206からの応答を、例えば、トランスポート層接続から機器250経由で、傍受または受信し、第二のアプリケーションサーバ220bにその応答を転送する。ステップ776で、加速プログラム120は、第二のアプリケーション220bからの閉じる要求を傍受し、一部の実施形態において、接続を閉じ、一方、他の実施形態において、その要求を無視し、接続を保持し、第一のアプリケーション220a、第二のアプリケーション220b、あるいはクライアント205のさらに別のアプリケーション220c~220nからのさらなるデータ要求に適応する。ステップ776で、サーバ206またはアプリケーション250との加速プログラム120を閉じる結果となる幾つかのシナリオがある。例えば、クライアント205または加速プログラム120は、クライアント205がアプリケーション220aおよび220bに対して要求したデータを全て検索すると、あるいはアプリケーション220aおよび220bを終了するか、シャットダウンするか、あるいは出ると、FIN終了コマンドを開始し得る。一部の実施形態において、クライアント205または加速プログラム120は、また、同様の条件下で、RSTリセットコマンドを開始し得る。加速プログラム120とサーバ206または機器250との間の接続を閉じることに加え、RSTコマンドは、結果として、幾つかのハウスキーピング動作が実行され、サーバ側の接続を良好な状態で保つ。特に、TCPプロトコルは、サーバがセグメントを受け入れるように、RSTコマンドが、正しいSEQシーケンス番号を有することを保証する。しかしながら、RSTコマンドは、正しいACK確認応答番号を有することを保証されない。このシナリオに対処するために、加速プログラム120は、サーバ206または機器250によって送信されるデータのバイトをトラックし続け、それらのバイトは、クライアント205によって確認応答される。クライアント205が、サーバ206によるデータをまだ全て確認応答していない場合、加速プログラム120は、確認応答されていないバイトを計算し、ACKをサーバ205に送信する。さらに、図7Bに示されていないが、サーバ206または機器250はまた、それ自身とクライアント205との間の接続を閉じ得る。サーバ206または機器250は、クライアント205にFINコマンドを送信する。一部の実施形態において、それに応答して、加速プログラム120は、接続を閉じ、さらなる実施形態は、サーバ206または機器250と、別の接続を新たに確立する。さらに、図7Aの方法700の実施形態および図7Bの例示的な流れ図は、複数のアプリケーションによって使用するための1つ以上のトランスポート層接続をプーリングするものとして、全体的に議論されるが、本発明のプーリング技術は、複数のトランスポート層接続を要求するか、あるいは開始して、これらの接続を経由することを要求する単一のアプリケーション220に適用され得る。例えば、HTTPプロトコルの実施形態において、トランスポート層接続は、アプリケーションからの各HTTP要求に対して、確立され得る。本発明の技術を用いると、1つ以上のトランスポート層接続のプールは、各要求に対して、トランスポート層接続を開閉することなく、アプリケーション220によって使用され得る。別の局面において、本発明は、同じトランスポート層接続または共有されたトランスポート層接続例えば、図8A~8Bと関連して記載されるプーリング技術を介して確立されたトランスポート層接続を経由して、アプリケーション要求を多重化するための技術に関する。一部の実施形態において、本発明は、アプリケーションの要求に対し、サーバ206から応答のコンテンツが完全に受信されたかどうかをチェックして、確立されたトランスポート層接続の利用可能性を判断し、複数のアプリケーションからの要求をその接続を経由して多重化する。以下にさらに詳細に議論されるように、応答のデータの全てが受信されたかどうかをチェックするために、本発明は、一つの実施形態において、応答のコンテンツ長さのパラメータを使用し、別の実施形態において、応答のチャンク形式chunked転送エンコーディングヘッダを使用する。一つの局面において、本発明は、応答からの全てのデータが、プーリングされた接続が、アプリケーションによって現在自由に使用できるかどうかを判断するために、応答からの全てのデータが受信されたかどうかをチェックし、および/または図7Aに示された方法700のステップ706および708でのように、サーバへの接続のプールに別のトランスポート層接続を確立すべきかどうかをチェックする。別の実施形態において、応答に対するコンテンツ長さをチェックする技術が、同じトランスポート層接続を経由して、複数のアプリケーションからの要求を多重化する技術として使用される。ここで、図8Aを参照すると、クライアント205からサーバ206への単一のトランスポート層接続を経由する要求を多重化するための方法800の実施形態が示される。簡単に総括すると、ステップ805で、加速プログラム120は、クライアント205とサーバ206との間のトランスポート層接続を確立する。ステップ810で、加速プログラム120は、サーバ206への第一のアプリケーション220aの第一の要求を傍受する。ステップ815で、加速プログラム120は、トランスポート層接続が別のアプリケーションによって現在使用されているかどうか、あるいは使用されていなければ、アイドルであるかどうかを判断する。ステップ817で、トランスポート層接続は、アプリケーション220aによって使用するために利用可能である場合、ステップ820で、加速プログラム120は、要求をサーバに送信する。さもなくば、ステップ817で、トランスポート層接続がアプリケーション220aによって使用するために利用可能でない場合、ステップ819で、加速プログラム120は、ある期間待って、ステップ815に戻るか、あるいはアプリケーション220によって使用するための第二のトランスポート層接続を確立するかのいずれかである。ステップ825で、加速プログラム120は、サーバからアプリケーションの要求に対する応答を受信する。ステップ830で、加速プログラム120は、第二のアプリケーション220bによる第二の要求を傍受し、ステップ815に進み、トランスポート層接続が、第二のアプリケーション220bによって使用するのに利用可能であるかどうかを判断する。一部の実施形態において、ステップ825で、第一の要求の応答を受信する前に、あるいは応答のデータを全て受信する前に、ステップ830で、加速プログラム120は、第二のアプリケーション220bの要求を傍受する。本明細書でさらに議論されるように、一部の実施形態において、加速プログラム120は、コンテンツ長さチェッキング技術を用いて、トランスポート層接続がアイドルであるとき、あるいはアプリケーションが要求への応答に対するデータを全て受信したときを決定する。さらなる詳細において、ステップ805で、加速プログラム120は、クライアント205とサーバ206との間にトランスポート層接続を、あるいはこれらを経由するトランスポート層接続を確立する。一部の実施形態において、加速プログラム120は、機器250または仲介物とのトランスポート層接続を確立する。一つの実施形態において、加速プログラム120は、サーバ206へのトランスポート層接続のプールとして、トランスポート層接続を確立する。このように、一部の実施形態において、トランスポート層接続は、サーバ206への第二または第三のトランスポート層接続を備え得る。他の実施形態において、加速プログラム120は、本明細書で既に議論されたように、第一のプログラム222を経由するトランスポート層接続を確立し得る。一部の実施形態において、加速プログラム120は、クライアント205の第一のアプリケーション220aによる要求に応答して、トランスポート層接続を確立する。ステップ810で、加速プログラム120は、第一のアプリケーション220aによる第一の要求を傍受して、サーバ206にアクセスする。一部の実施形態において、要求は、トランスポート層接続を確立する前に、あるいはトランスポート層接続経由で要求を送信する前に、トランスポートプロトコル層で傍受される。他の実施形態において、要求は、トランスポート層より上、あるいはトランスポート層接続より上の任意のプロトコル層で傍受される。一部の実施形態において、要求は、第一のプログラム222によって傍受される。一つの実施形態において、アプリケーション220aの要求は、サーバ206とのトランスポート層接続を開きたいという要求、または確立したいという要求である。別の実施形態において、アプリケーションの要求は、確立されたトランスポート層接続を経由して、あるいは機器250を経由して、サーバにアクセスしたいという要求である。ステップ815で、加速プログラム120は、アイドルであるか、あるいは第一のアプリケーション220aによって使用するのに利用可能であるか、もしくは第一のアプリケーション220aの第一の要求を通信するためのものであるかを判断する。一部の実施形態において、加速プログラム120は、1つ以上のトランスポート層接続のプールから、そのプールの中のどのトランスポート層接続がアイドルであるか、あるいは第一のアプリケーション220aによって自由に使用できるかを判断する。一つの実施形態において、加速プログラム120は、要求に応答して、あるいは要求の直前に、加速プログラム120がトランスポート層接続を確立したことから、トランスポート層接続がアイドルであることを判断する。一部の実施形態において、加速プログラム120は、いずれのアプリケーション220からいずれの要求も今まで受信し得ず、この要求を加速プログラム120によって傍受され、処理されるべき最初の要求として認識する。別の実施形態において、加速プログラム120は、トランスポート層接続上に送信された任意の要求に対する継続中outstandingの応答の数をトラックし、継続中の応答がない場合、加速プログラム120は、そのトランスポート層接続が第一のアプリケーション220aによって使用するのに利用可能であると認識する。また別の実施形態において、加速プログラム120は、トランスポート層接続が現在アイドルであると認識する。例えば、加速プログラム120は、キープアライブ要求を開始し、サーバを接続が開いたままに保持し得る。一部の実施形態において、トランスポート層接続は、最後のトランザクションが完了したが、サーバ206および/またはクライアント205は、まだRSTコマンドおよび/またはFINコマンドを送信していないとき、アイドルである。一部の実施形態において、加速プログラム120は、応答のコンテンツ長さをチェックして、第一のアプリケーション202aの第一の要求に対するサーバ206からの応答が、完了しているかどうか、完了していない場合、加速プログラム120は、応答に対するデータを全て受信したかどうかを判断し得る。上述のように、一部の実施形態におけるこれらの技術は、本発明のプーリング技術のために、別の接続を確立することを判断するためにも使用される。本発明のこの技術に関して、図9および図10は、応答のデータの全てが受信されたかどうかを判断するために、一つの実施形態において、応答のコンテンツ長さパラメータをチェックすることを説明するために使用され、あるいは別の実施形態において、応答のヘッダのチャンク形式転送ヘッダをチェックすることを説明するために使用される。図9は、TCPセグメント900と称されるTCPパケットのTCP部分を示す。TCPセグメント900は、TCPヘッダ902、およびボディ904を含む。一実施形態において、ボディ904は、データおよび情報を備え、その中でも、とりわけ、HTTPヘッダおよびメッセージを備え、ここで、TCPパケットは、HTTPのアプリケーション層プロトコルを運搬する。一部の実施形態において、コンテンツ長さパラメータ906は、HTTPヘッダによって、またはその中に位置し、見出され、あるいは参照される。一つの実施形態において、本発明の加速プログラム120は、コンテンツ長さパラメータ906を使用し、応答に対するデータの全てが受信されるかどうかを判断する。図10は、TCPパケットのTCPセグメントの別の実施形態を示す。トランスポート層接続を経由してHTTPプロトコルを使用する一部の実施形態において、チャンク形式転送エンコーディングヘッダは、存在し得、チャンク形式転送エンコーディングが、TCPセグメントまたはパケットに適用されてきたことを示す。このように、この実施形態において、メッセージの長さは、チャンク形式エンコーディングによって規定される。チャンク形式エンコーディングは、メッセージのボディを修正する。これは、メッセージを一連のチャンクとして転送するためであり、各チャンクは、チャンクサイズフィールド内に自身の長さインディケータを有する。TCPセグメント1600は、TCPヘッダ図示せずおよびボディを含む。ボディは、情報の中でも、とりわけ、HTTPヘッダ1602A~1602C、およびメッセージを備える。HTTPヘッダ1602A~1602Cは、7つのチャンクサイズフィールド1606A~1601C、および6つのチャンクメッセージデータ1604A~1604Fを備える。図10に示されるように、チャンクサイズフィールド1606A~1606Gは、一緒にリンクされるか、あるいは、さもなくば、参照されるか、または関連付けられる。チャンクサイズフィールド1606Aは、チャンクメッセージデータ1604Aの中にメッセージの長さを表示し、チャンクサイズフィールド1606Cは、チャンクメッセージデータ1604Cの中にメッセージの長さを表示し、以下同様である。最後のチャンクサイズフィールド1606Gは、チャンクがこれ以上ないこと、あるいは後続のメッセージがこれ以上ないことを表示する長さ値0を備える。別の実施形態において、本発明の加速プログラム120は、チャンクサイズフィールドを介して、クライアント205が応答に対する全てのデータを受信したかどうかを判断する。図9および図10は、一般的に、応答に対する全てのデータを受信したかどうかをチェックするための技術を説明するが、これらの技術は、クライアント205に非同期のメッセージまたは通信を送信するサーバ206または機器250に適用可能である。さらに、これらの技術は、HTTPプロトコルに対して、図9および図10と関連して、一般的に説明されているが、これらの技術は、クライアント205によって、送信または受信されるべきデータの長さの表示に提供された任意のプロトコル層で、任意のプロトコルに対して使用され得る。このように、一部の実施形態において、加速プログラム120は、ネットワークパケット任意のプロトコル層にあるものを含むの任意の部分をアクセス、抽出、検査、解析、あるいはさもなくば、処理し、要求、応答、あるいはクライアントとサーバまたは機器との間の通信と関連する全てのデータが、受信されたかどうかを判断する。さらに別の実施形態において、加速プログラム120は、クライアント205とサーバ206との間で送信され、受信され、確認応答されたバイトの数をトラックして、任意のバイトが、アプリケーション220のために、クライアント205とサーバ206との間で継続中であるかどうかを判断する。上述のようなコンテンツ長さ技術を用いることによって、本発明の加速プログラム120は、クライアント205の任意の他のアプリケーション220a~220nによって、以前に使用されたか、あるいは使用の処理中であるサーバ206への同じトランスポート層接続を再使用し得る。ステップ817で、加速プログラム120は、トランスポート層接続が第一の要求を送信するのに利用可能であるかどうか、そして、利用可能である場合、ステップ820で、サーバ206への要求を送信する。利用可能でない場合、ステップ819で、加速プログラム120は、アプリケーションの継続中の要求に対する全てのデータが受信されるまで、待ち得る。例えば、加速プログラム120は、タイマーを、例えば、短期間に設定し得、ステップ815に進む。一部の実施形態において、加速プログラム120は、クライアント205のネットワークスタック210のパケット処理タイマーに応答する全てのデータが受信されたかどうかをチェックする。別の実施形態において、ステップ819で、加速プログラム120は、別のトランスポート層接続を確立し、第一のアプリケーション220aの第一の要求を送信する。ステップ820で、加速プログラム120は、どのアプリケーション220が、接続上で、継続中の要求または応答を現在有しているか、あるいは接続を現在使用しているかをトラックし得る。例えば、一度にただ一つのアプリケーション220のみが、接続上で、要求を送信し得、応答を受信し得る。このようにして、加速プログラム120は、どのアプリケーション220が接続を使用しているかを理解する。一部の実施形態において、加速プログラム120は、接続を共有するクライアント205の全てのアプリケーション220a~220nに対して、トランスポート層接続通信用に1つのポート番号を使用する。一部の場合において、加速プログラム120は、アプリケーションベースによって、アプリケーション上の要求と、その要求に対する継続中の応答とをトラックする。一部の実施形態において、加速プログラム120は、アプリケーション220の処理idを要求と関連付ける。さらに別の実施形態において、加速プログラム120は、第一のアプリケーション220aの要求を、同じ1つまたは複数のネットワークパケット、同じ1つまたは複数のTCPセグメントの中の第二のアプリケーション220bの要求とともに送信する。別の実施形態において、加速プログラム120は、同じトランスポート層接続を経由して、1つ以上のセグメントウィンドウの一連のTCPセグメントの一部として、アプリケーション220a~220nの複数の要求を送信する。他の実施形態において、加速プログラム120は、ポート番号付けメカニズムおよび/またはスキームを使用して、受信されたどの応答またはメッセージが、どのアプリケーション220a~220nに対するものであるかをトラックして、認識する。他の実施形態において、加速プログラム120は、ポート番号を提供し、この番号をアプリケーション220と関連付け、そのアプリケーションの割り当てられたポート番号に送信されるべきTCPネットワークパケット内のポート番号に修正する。別の実施形態において、ポート番号は、アプリケーション220によって提供され、加速プログラム120は、そのポート番号を変更し、あるいは、変更しない場合は、TCPネットワークパケットに従って、ポート番号を提供する。このようにして、一部の実施形態において、加速プログラム120は、アプリケーション220a~220nが同時にトランスポート層接続を使用し得るように、クライアント205の複数のアプリケーション220a~220nから要求をインターウェーブinterweaveし得る。ステップ825において、加速プログラム120は、第一のアプリケーション220aの第一の要求に対する応答をサーバ206から、例えば、機器205を経由して、受信し、その応答を第一のアプリケーション220aに提供する。一部の実施形態において、加速プログラム120は、第一のアプリケーション220aに応答を、ネットワークスタック210を経由して提供する。例えば、接続のトランスポート層の上のプロトコル層によって応答の処理を可能にするように、あるいは開始するようにする。別の実施形態において、第一のプログラム222は、第一のアプリケーション220aに対する応答を提供する。他の実施形態において、加速プログラム120は、第一のアプリケーション220aに対する応答を、APIのようなプロセス間通信メカニズムまたはインタフェースを経由して、提供し得る。一部の実施形態において、加速プログラム120は、図10に示されるようなマルチチャンクメッセージ内の第一のチャンクのような応答の一部分を受信するのみである。ステップ830で、加速プログラム120は、サーバ206にアクセスするための第二のアプリケーション220bの要求を傍受する。一部の実施形態において、ステップ825で、加速プログラム120は、第二のアプリケーション220bの要求を傍受する。他の実施形態において、ステップ825で、加速プログラム120は、応答を受信する間に、第二のアプリケーション220bの要求を傍受する。別の実施形態において、加速プログラム120は、クライアント205または加速プログラム120が第一のアプリケーション220aの第一の要求の応答に対する全てのデータを受信する前に、第二のアプリケーション220bの要求を傍受する。第二のアプリケーション220bの要求を傍受すると、加速プログラム120は、本発明の実施形態のステップ815に進み、トランスポート層接続を経由して、第二の要求を多重化するべきかどうか、あるいは別のトランスポート層接続例えば、接続のプール内の別の接続を確立するべきかどうかを判断する。他の実施形態において、加速プログラム120は、第一のアプリケーション220aが継続中の応答を有する間に、あるいは第一の要求の応答から全てのデータを受信していない間に、第二のアプリケーション220bの要求を、第一のアプリケーション220aと同じ接続を経由して送信する。別の実施形態において、加速プログラム120は、第一のアプリケーション220aが応答を受信した後で、任意の生成されたRSTコマンドおよび/またはFINコマンドが、第一のアプリケーション220aと接続を生成される前に、第二のアプリケーション220bの要求を送信する。加速プログラム120は、加速技術のクライアント側でのインプリメンテーションおよび実行と関連して、一般的に議論されてきたが、加速プログラム120は、機器250とともに、インタフェースし、機能し、この機器もまた、機器側の加速技術として、インプリメントして、実行する。一つの実施形態において、クライアント側の加速プログラム120および機器250は、互いに一緒になって機能して、クライアント205a~205nとサーバ206a~206nとの間の通信上で、本発明の複数の加速技術を実行し得る。一部の実施形態において、クライアント側の加速プログラム120および機器250は、双方ともTCPプーリングおよび多重化を提供し、例えば、クライアント205a~205nとサーバ206a~206nとの間で、カスケーディングまたはエンドツーエンドプーリング、および多重化のメカニズムを提供する。例えば、加速プログラム120は、機器250への第一のプールされたトランスポート層接続を提供し得、次いで、この機器250は、第二のプールされたトランスポート層接続をサーバ206a~206nに提供する。他の例において、加速プログラム120は、クライアント205a~205n上の第一のプールされたトランスポート層接続を経由して、アプリケーション要求を多重化し得る。次いで、このクライアント205a~205nは、サーバ206a~206nに、第二のプールされたトランスポート層接続を経由して、機器250によって多重化される。一部の実施形態において、機器205が、サーバ206a~206nからクライアント205a~205nに応答を送信するためのスロットリングthrottllingメカニズムを提供する間に、加速プログラム120は、クライアント205a~205nからの要求を送信するためのスロットリングメカニズムを提供する。別の実施形態において、機器250が、オブジェクト例えば、動的に生成されたオブジェクトのキャッシングを、1つのクライアント205a~205nと、同時に他の複数のクライアント205a~205nとに対して提供する間に、加速プログラム120は、クライアント205のために、クライアント側のキャッシングを実行する。一部の実施形態において、クライアント205および/または機器上で加速技術を実行することに追加して、あるいは関連して、加速プログラム120および機器は、クライアント205とネットワーク204アクセスとの間で、機器250を経由して、仮想プライベートネットワーク接続および通信を提供し得る。別の実施形態において、加速プログラム120は、アプリケーション220から通信されたデータを圧縮し得、機器250は、その圧縮されたデータを受信すると、それを解凍し得る。逆に、機器250は、私設データ通信ネットワーク204’上で、サーバ206上のアプリケーション220から通信されたデータを圧縮し得、加速プログラム120は、その圧縮されたデータを受信すると、それを解凍し得る。また、加速プログラム120および機器250は、暗号化されたデータ通信またはトンネリングセッションの終点として機能し得、ここで、加速プログラム120は、アプリケーション220から通信されたデータを暗号化し、機器250は、暗号化されたデータを受信すると、それを解読する。同様に、機器250は、仮想プライベートネットワーク上のアプリケーション220から通信されたデータを暗号化し、加速プログラム120は、そのデータを受信すると、それを解読し得る。本明細書に記載されたクライアント側の加速を展開および実行する技術の構造、機能、および動作の観点から、本発明は、クライアント上で効率的にトランスペアレントな方法で、効率的に展開され、また実行されるクライアント上の複数の加速技術を提供する。一部の実施形態において、本発明は、クライアントと公衆データ通信ネットワークとの間で、機器ベースまたはサーバベースの加速器の設置を回避する。さらに、加速プログラムは、クライアント205に動的に提供され、ネットワーク上のクライアント205上で、自動的にインストールされ、実行されるので、加速は、任意のクライアントマシン上で達成され得る。また、加速プログラムが格納され、機器250またはサーバから動的にダウンロードされるので、加速プログラム120に対するアップグレードおよび/またはメンテナンスは、一度に行われ得、クライアントがネットワークにアクセスすると、そのクライアントに動的に、自動的に展開され得る。さらに、本発明は、機器側の加速器とともに機能し、クライアントから機器またはサーバへのエンドツーエンドの加速を実行する。本発明の様々な実施形態が、以上に記載されてきたが、これらは例としてのみ提示されてきたものであること、および限定するものでないことは、理解されるべきである。したがって、添付の請求項で規定されるような本発明の精神および範囲から逸脱することなく、当業者によって、形式および詳細に様々な変更がなされ得ることは、理解されるべきである。したがって、本発明の幅および範囲は、上述の例示的な実施形態のいずれによっても制限されるべきでなく、以下の請求項およびその均等物に従ってのみ規定されるべきである。"