"伝送制御プロトコルTCP通信のコンピュータ実装された方法であって、第1のサーバ上の第1のアプリケーションから送信され、第2のサーバ上の第2のアプリケーションに指定されたデータパケットを受信することと、前記第2のサーバに関連付けられた宛先アドレスを判断するために前記データパケットを解析することと、前記宛先アドレスに基づいて、前記第1のサーバ上の第1の通信プロキシと前記第2のサーバ上の第2の通信プロキシとの間に位置し、前記第2のアプリケーションに対応するキュー内に、前記データパケットを配置することと、前記第1の通信プロキシと前記第2の通信プロキシとの間の事前に確立されたデータ接続を経由して前記データパケットを前記第2の通信プロキシに伝送することと、を含む、コンピュータ実装された方法。前記データパケットは、ソースフィールド、宛先フィールドおよびデータパケット優先度を含み、前記キュー内に前記データパケットを配置することは、前記データパケット優先度に基づいて前記キュー内に前記データパケットを配置することを含む、請求項1に記載のコンピュータ実装された方法。前記データパケットは、1つのデータパケットを送信するアプリケーションを示す2個組を含むソースフィールドと、前記1つのデータパケットを受信する別のアプリケーションを示す別の2個組を含む宛先フィールドとを含む、請求項1に記載のコンピュータ実装された方法。前記データパケットは、ソースフィールドと宛先フィールドとを含み、前記ソースフィールドは、インターネットプロトコルIPアドレスと1つのデータパケットを送信するアプリケーションに関連付けられた固有のアプリケーションIDとを含む2個組を含み、前記宛先フィールドは、別のIPアドレスと前記1つのデータパケットを受信する別のアプリケーションに関連付けられた別の固有のアプリケーションIDとを含む別の2個組を含む、請求項1に記載のコンピュータ実装された方法。前記データパケットを受信することは、前記第1の通信プロキシと前記第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して前記データパケットを受信することを含む、請求項1に記載のコンピュータ実装された方法。前記事前に確立されたデータ接続が帯域幅要件を満たすことを判断することと、先入れ先出し技術に基づいて前記キューから前記データパケットを取り出すことと、を更に含む、請求項1に記載のコンピュータ実装された方法。前記キューから取り出されたデータパケットの量が、第1の事前に設定された閾値を超えることを判断することと、その後、前記データパケットの前記伝送を終了するために、第1の制御信号を前記第1のアプリケーションに送信することと、を更に含む、請求項1に記載のコンピュータ実装された方法。前記キューから取り出された前記データパケットの前記量が、前記第1の事前に設定された閾値よりも少ない第2の事前に設定された閾値内にあることを判断することと、その後、前記データパケットの前記伝送を再開するために、第2の制御信号を前記第1のアプリケーションに送信することと、を更に含む、請求項7に記載のコンピュータ実装された方法。前記第1の通信プロキシが、前記第1の通信プロキシと前記第2の通信プロキシとの間の前記事前に確立された制御接続を経由して、データパケットの伝送の終了を示す第1の制御信号を受信することを判断することと、その後、前記キュー内のデータパケットの伝送を終了することと、を更に含む、請求項1に記載のコンピュータ実装された方法。前記第1の通信プロキシが、前記第1の通信プロキシと前記第2の通信プロキシとの間の前記事前に確立された制御接続を経由して、前記データパケットの前記伝送の再開を示す第2の制御信号を受信することを判断することと、その後、前記キュー内の前記データパケットの前記伝送を再開することと、を更に含む、請求項9に記載のコンピュータ実装された方法。前記第1のアプリケーションが終了したことを判断することと、前記第1のアプリケーションが終了したことを示すブロードキャストメッセージを前記第1の通信プロキシに接続された1つ以上の通信プロキシに送信することと、を更に含む、請求項1に記載のコンピュータ実装された方法。伝送制御プロトコルTCP通信のコンピュータ実装された方法であって、第1のサーバ上の第1の通信プロキシによって、前記第1の通信プロキシと第2のサーバ上の第2の通信プロキシとの間の事前に確立されたデータ接続を経由して、前記第1のサーバ上の第1のアプリケーションに関連付けられた宛先アドレスを含むデータパケットを前記第2のサーバ上の第2のアプリケーションから受信することと、前記第1の通信プロキシによって、前記宛先アドレスを判断することと、前記第1の通信プロキシによって、前記宛先アドレスに基づいて前記第1の通信プロキシと前記第1のアプリケーションとの間のキュー内に前記データパケットを配置することと、前記第1の通信プロキシによって、前記第1の通信プロキシと前記第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して、前記データパケットを前記第1のアプリケーションに伝送することと、を含む、コンピュータ実装された方法。前記事前に確立されたデータ接続が帯域幅要件を満たすことを判断することと、先入れ先出し技術に基づいて前記キューから前記データパケットを取り出すことと、を更に含む、請求項12に記載のコンピュータ実装された方法。前記第1の通信プロキシによって、前記キューから取り出されたデータパケットの量が第1の事前に設定された閾値を超えることを判断することと、その後、前記データパケットの前記伝送を終了するために、前記事前に確立されたデータ接続を経由して第1の制御信号を前記第2の通信プロキシに送信することと、を更に含む、請求項12に記載のコンピュータ実装された方法。前記キューから取り出された前記データパケットの前記量が、前記第1の事前に設定された閾値よりも少ない第2の事前に設定された閾値内にあることを判断することと、その後、前記データパケットの前記伝送を再開するために、第2の制御信号を第2の通信プロキシに送信することと、を更に含む、請求項14に記載のコンピュータ実装された方法。前記第1の通信プロキシが、前記事前に確立されたプロセス間通信接続を経由して、データパケットの伝送の終了を示す第1の制御信号を受信することを判断することと、その後、前記キュー内の前記データパケットの前記伝送を一時的に終了することと、を更に含む、請求項12に記載のコンピュータ実装された方法。前記第1の通信プロキシが、前記事前に確立されたプロセス間通信接続を経由して、前記データパケットの前記伝送の再開を示す第2の制御信号を受信することを判断することと、その後、前記キュー内の前記データパケットの前記伝送を一時的に再開することと、を更に含む、請求項16に記載のコンピュータ実装された方法。前記第1の通信プロキシによって、前記第2のアプリケーションが終了したことを判断することと、前記第1の通信プロキシによって、前記第2のアプリケーションが終了したことを示すブロードキャストメッセージを、前記第1の通信プロキシに接続され、かつ前記第1のサーバ上にあるアプリケーションに送信することと、を更に含む、請求項12に記載のコンピュータ実装された方法。伝送制御プロトコルTCP通信のためのシステムであって、メモリと、1つ以上のプロセッサと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、第1のサーバ上の第1のアプリケーションからデータパケットを受信するための受信ユニットであって、前記データパケットが、前記データパケットが指定される第2のアプリケーションを含む第2のサーバに関連付けられた宛先アドレスを含む、受信ユニットと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、前記宛先アドレスを判断するためのアドレス解析ユニットと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、伝送ユニットであって、前記宛先アドレスに基づいて、前記第1のサーバ上の第1の通信プロキシと、前記第2のサーバ上にある第2の通信プロキシとの間に位置し、前記第2のアプリケーションに対応するキュー内の前記データパケットを配置し、かつ前記第1の通信プロキシと前記第2の通信プロキシとの間の事前に確立されたデータ接続を経由して前記データパケットを前記第2の通信プロキシに伝送する、伝送ユニットと、を備える、伝送制御プロトコル通信のためのシステム。伝送制御プロトコルTCP通信のためのシステムであって、メモリと、1つ以上のプロセッサと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、第1のサーバ上の第1の通信プロキシと第2のサーバ上の第2の通信プロキシとの間の事前に確立されたデータ接続を経由して前記第2のサーバ上の第2のアプリケーションからデータパケットを受信するための受信ユニットであって、前記データパケットが前記第1のサーバ上の第1のアプリケーションに指定される、受信ユニットと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、前記第1のアプリケーションに関連付けられた宛先アドレスを判断するように前記データパケットを解析するためのアドレス解析ユニットと、前記メモリ内に記憶され、かつ前記1つ以上のプロセッサ上で実行可能な、伝送ユニットであって、前記宛先アドレスに基づいて、前記第1の通信プロキシと前記第1のサーバ上の前記第1のアプリケーションとの間のキュー内に前記データパケットを配置し、かつ前記第1の通信プロキシと前記第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して前記データパケットを前記第1のアプリケーションに伝送する、伝送ユニットと、を備える、伝送制御プロトコル通信のためのシステム。この発明の概要は、発明を実施するための形態において以下に更に記載される概念の選択を簡易化された形式で紹介するために提供される。この発明の概要は、特許請求された対象の重要な特徴または不可欠な特徴を明らかにすることを意図するものではなく、また、特許請求された対象の範囲を限定するために使用されることを意図するものでもない。本開示は、例えば伝送制御プロトコルTCP接続を経由してデータパケットを伝送するための方法およびサーバを提供する。いくつかの態様では、データパケットを伝送することは、データパケットを第1のサーバ上の第1のアプリケーションから受信することを含む。データパケットは、次いで、データパケットを受信するための第2のアプリケーションを含む第2のサーバに関連付けられた宛先アドレスを判断するために、第1のサーバ上の第1の通信プロキシによって解析される。アドレスの判断の後、データパケットは、第1の通信プロキシと第2のサーバ上の第2の通信プロキシとの間のキュー内に配置され、第2の通信プロキシに送信される。いくつかの態様では、データパケットを伝送することは、データパケットを第2のサーバ上の第2のアプリケーションから受信することを含む。データパケットは、次いで、データパケットを受信し、かつ第1のサーバ上に位置する第1のアプリケーションに関連付けられた宛先アドレスを判断するために、第1のサーバ上の第1の通信によって解析される。アドレスの判断の後、データパケットは、第1の通信プロキシと第1のアプリケーションとの間のキュー内に配置され、第1のアプリケーションに送信される。いくつかの態様では、データパケットを伝送することは、データ伝送を制御するためのフロー制御機構を含む。TCPの方法およびTCPのためのサーバの発明を実施するための形態は、添付の図面を参照にして説明される。図1は、サーバ間の例示的なTCP接続を示す概略図である。2つのサーバ上のアプリケーション例えば、クライアントアプリケーションとサーバアプリケーション間でTCP通信を行うために、TCP接続は、通常、2つのサーバ上のアプリケーション間に確立される。図1に示されるように、サーバ1内のアプリケーションA~Dのそれぞれは、サーバ2内のアプリケーションE~HのそれぞれとTCP接続を確立する。アプリケーションA~DがアプリケーションE~Hと通信する限り、TCP接続は、2つのサーバ間に確立される必要がある。2つのサーバがあり、各サーバが100個のアプリケーションを実行することを仮定する。TCP接続は2つのサーバの2つの個々のアプリケーション間に確立される必要があるので、2つのサーバ間で合計10,000個のTCP接続があることになる。オペレーティングシステムとプロトコルスタックの観点からすれば、これほど多くのTCP接続を維持することは、大量のシステムリソースを消費することになる。この状況を避けるために、提案された1つの解決法は、アプリケーションがTCP接続の使用を終了した後にTCP接続を直ちに終了させて、アプリケーションが接続を再度必要とする場合にTCP接続を再度確立することである。接続を再度確立するプロセスは、少なくとも3回のハンドシェイクを必要とし、したがって、アプリケーションの実行に遅延を生じさせることがある。このことは、大規模のサーバクラスタに対してより大きな問題を生じさせる可能性さえある。クラスタが5000個のサーバを有し、各サーバが、平均して、100個のアプリケーションを実行することを仮定する。結果として、クラスタは合計で500,000個のTCP接続を確立するかもしれない。これほど多くのTCP接続を維持することは、大量のシステムリソースを消費することになる。更に、たとえこれらのTCP接続の全てが同時に維持されるわけではないとしても、これらのアプリケーションの実行は、これらのTCP接続の終了および/または開始のプロセスによって遅延されることになる。上記のように、従来の技術は、異なるサーバ間で別のアプリケーションと通信するアプリケーションごとにTCP接続を確立し、これらのアプリケーションの実行に遅延を生じさせる場合がある。本開示は、TCP通信を改善し、かつ上記の問題を避ける様々な例示的方法を記載する。図2は、サーバ間の例示的なTCP接続を示す概略図である。図示されるように、第1の通信プロキシおよび第2の通信プロキシは、2つの通信相手すなわち、第1のアプリケーションA~Dおよび第2のアプリケーションE~Hが位置する第1のサーバおよび第2のサーバにそれぞれインストールされる。第1の通信プロキシおよび第2の通信プロキシは、特定の機能を実行するソフトウェアモジュールである。第1のサーバ上の第1のアプリケーションA~Dは、プロセス間通信接続を経由して第1の通信プロキシと接続する。同様に、第2のサーバ上の第2のアプリケーションE~Hは、プロセス間通信接続を経由して第2の通信プロキシと接続する。これらのプロセス間通信接続は、サーバのオペレーティングシステムによって提供されるいくつかのプロセス間通信方法のうちの1つを使用してもよい。限定ではない一例として、その通信方法は、ユニックスドメインソケットUnix登録商標DomainSocket、ローカルTCP、共用メモリおよびメッセージキュー、ならびにパイプPipeを含んでもよい。第1のサーバ内の第1の通信プロキシおよび第2のサーバ内の第2の通信プロキシは、2つのアプリケーション間にTCP接続を確立する従来のTCP技術とは異なり事前に確立されたデータ接続を使用する。本開示によって提供されるデータ接続は、固定した、かつ非常に安定した接続である。その接続を通じて、第1のサーバ内の全てのアプリケーションは、第1の通信プロキシと第2の通信プロキシとの間に確立されたTCP接続を経由して第2のサーバ内のアプリケーションに接続してもよい。そしてまた、第2のサーバ内の全てのアプリケーションは、そのTCPを経由して第1のサーバ内のアプリケーションに接続してもよい。図2に示されるように、第1の通信プロキシと第2の通信プロキシとの間のデータ接続は、第1のサーバ内の第1のアプリケーションと第2のサーバ内の第2のアプリケーションとの間にデータ通信チャネルを提供する。データ接続は、従来の技術に従って多数のTCP通信相手間に確立されることになるいくつかのTCP接続に実際に取って代わる。いくつかの実施形態では、確立された単一のデータ接続は、第1のサーバ内の第1のアプリケーションと第2のサーバ内の第2のアプリケーションとの間のデータ転送を実施してもよい。第1のアプリケーションと第2のアプリケーションとの間に直接的な接続がないので、実際の接続量は、従来の技術に従う接続量よりもはるかに少なく、したがって、システムリソースを大幅に節約することができる。いくつかの実施形態では、大規模のクラスタ化アプリケーションのために、図2に示される第1のサーバおよび第2のサーバに類似した多くのサーバがある場合がある。サーバクラスタの各サーバ内の通信プロキシは、データ接続を経由してサーバクラスタの別のサーバ内の通信プロキシと個別に接続してもよい。いくつかの実施形態では、第1のサーバ内のアプリケーション以下、第1のアプリケーションは、データパケットを第1のサーバ内の第1の通信プロキシに送信する。この第1の通信プロキシは、データパケットを第2のサーバ内の第2の通信プロキシに送信する。その後、第2の通信プロキシは、データパケットを第2のサーバ内の別のアプリケーション以下、第2のアプリケーションに送信する。いくつかの実施形態では、第2のアプリケーションは、データパケットを第2のサーバ内の第2の通信プロキシに送信する。この第2の通信プロキシは、データパケットを第1のサーバ内の第1の通信プロキシに送信する。その後、第1の通信プロキシは、データパケットを第1のアプリケーションに送信する。いくつかの実施形態では、第1のサーバ内の第1の通信プロキシと第2のサーバ内の第2の通信プロキシは、TCP接続における反対端oppositeendであり、したがって、これらのネットワーク状況は対称的である。第1のアプリケーションは、データパケットを第1の通信プロキシに送信し、次いで、第1の通信プロキシは、データパケットを第2の通信プロキシに送信する。このプロセスは、第2のアプリケーションがデータパケットを第2の通信プロキシに送信し、次いで、第2の通信プロキシがデータパケットを第1の通信プロキシに送信するプロセスに類似する。同様に、第2の通信プロキシは、受信したデータパケットを第2のアプリケーションに送信する。このプロセスもまた、第1の通信プロキシが受信したデータパケットを第1のアプリケーションに送信するプロセスに類似する。いくつかの実施形態では、第1の通信プロキシは、第1のアプリケーションから受信したデータパケットを第2の通信プロキシに伝送する。第1の通信プロキシは、第2のアプリケーションによって送信されたデータパケットを第2の通信プロキシから受信する。次いで、第1の通信プロキシは、そのデータパケットを第1のアプリケーションに送信する。双方向的なTCP通信を本開示に基づいて実施することができることが理解される。双方向的なTCP通信は、第1の通信プロキシから第2の通信プロキシにあるいは第2の通信プロキシから第1の通信プロキシに確立されてもよい。図3は、第1のサーバ上の第1のアプリケーションから第2のサーバ内の第2の通信プロキシにデータパケットを伝送する例示的なプロセスを示すフローチャートである。ブロック301では、第1のサーバの第1の通信プロキシは、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して、第1のサーバ上の第1のアプリケーションによって送信されたデータパケットを受信する。ブロック302では、第1の通信プロキシは、データパケットを受信する第2のアプリケーションが位置する第2のサーバの宛先アドレスを判断するためにデータパケットを解析する。ブロック303では、第1の通信プロキシは、第1のサーバのキュー内にデータパケットを配置する。キューは、第2のサーバ上の第2のアプリケーションに対応する。ブロック304では、第1の通信プロキシは、キューからデータパケットを取り出し、次いで、第1の通信プロキシと第2の通信プロキシとの間の事前に確立されたデータ接続を経由してデータパケットを第2の通信プロキシに送信する。図4は、説明的なデータパケット形式の概略図である。第1のサーバのアプリケーションは、データパケットを第1のサーバ内で送信するために第1のサーバのアプリケーションのプロセス間通信接続を使用する一方で、それらは、データ接続を経由してデータパケットを第2のサーバ上の第2の通信プロキシに送信する。また、第2の通信プロキシは、各データパケットに対応するプロセス間通信接続をそのデータパケットの宛先アドレスに基づいて区別し、したがって、データパケットを第2のサーバ上の対応する第2のアプリケーションに正確に伝送することができる。いくつかの実施形態では、サーバ内の様々なアプリケーションは、対応する固有のアプリケーションID以下、AppID例えば、16ビットの整数に基づいて区別されてもよい。例えば、第1のサーバ上および第2のサーバ上の各アプリケーションは、AppIDを割り当てられる。いくつかの実施形態では、IPアドレスとAppIDを組み合わせることを、アプリケーションを位置させるために使用することができる。すなわち、2個組two-tupleすなわち、IP、AppIDは、サーバ上のアプリケーションのアドレスを表わすことができる。図4に図示されるように、いくつかの実施形態では、データパケットは、SRCフィールドすなわち、ソースアドレス、DSTフィールドすなわち、宛先アドレス、およびペイロードフィールドを含んでもよい。これらの実施形態では、SRCフィールドは、データパケットを送信する第1のアプリケーションのIP、AppIDを含むソースアドレスを表わす。DSTフィールドは、データパケットを受信する第2のアプリケーションのIP、AppIDを含む宛先アドレスを表わす。データパケットは、例えば、データパケット番号フィールドおよびデータパケットフラグフィールドを含んでもよい。データパケットフラグフィールドは、例えば、データパケット優先度およびデータパケットの種類例えば、データニュースを含んでもよい。したがって、第1の通信プロキシはデータパケット内の宛先アドレスを解析すると、この通信プロキシは、データパケットを受信する第2のアプリケーションの対応する第2の通信プロキシを判断することができる。第1の通信プロキシは、次いで、データパケットを第2の通信プロキシに送信する。第2の通信プロキシはデータパケットを一旦受信すると、第2の通信プロキシは、データパケット内に含まれる宛先アドレスに基づいて、対応する第2のアプリケーションにデータパケットを送信することができる。図5は、第1のサーバの第1の通信プロキシから第2のサーバの第2の通信プロキシにデータパケットを送信する例示的なプロセス例えば、図3のブロック303および304を示す概略図である。図5に図示されるように、第1の通信プロキシは、第1のサーバの第1のアプリケーションによって送信されたデータパケットを一旦受信すると、第1の通信プロキシは、キューが第1の通信プロキシと第2の通信プロキシとの間に確立されているかどうかを判断する場合がある。キューは、データパケットを受信する第2のアプリケーションに対応しており、データパケットを第2の通信プロキシに送信するために使用される。いくつかの実施形態では、第1の通信プロキシは、キューが確立されていないことを判断する。次いで、キューは確立されて、データパケットがキュー内に配置される。限定ではない一例として、データパケットは、キュー内の配置のタイムスタンプ順またはデータパケットの優先度に基づいてキュー内に配置されてもよい。キューは、データパケットを受信する第2のアプリケーションに対応するので、第1の通信プロキシは、データパケット内に含まれる宛先アドレスを用いて第2のアプリケーションを判断し、データパケットが配置されるべきキューを判断してもよい。いくつかの実施形態では、第1の通信プロキシは、データ接続が帯域幅要件内に入る場合、データパケットをキューから取り出してもよい。限定ではない一例として、データパケットは、先入れ先出し技術またはデータパケットの優先度に基づいて取り出されてもよい。取り出されたデータパケットは、第1の通信プロキシと第2の通信プロキシとの間のデータ接続を経由して第2の通信プロキシに伝送されてもよい。いくつかの実施形態では、データパケットの一定の受信側例えば、第2の通信プロキシおよび第2のアプリケーションが、その受信側の受信するデータ速度を落とす一方で、他方側は他方側の受信するデータ速度を落とさないので、データ接続は、全体として、速度を落とされない。第1のサーバ内の第1のアプリケーションが大量のデータパケットを生成する場合、そのことは、キューが完全に埋められ、その結果、データパケットがオーバーフローするという状況を作るかもしれない。そのような状況が生じる場合、キュー内の後続のデータパケットを、正常に伝送することができない。同様の状況を避けるために、フロー制御機構が、本開示に提供される。いくつかの実施形態では、フロー制御機構は、第1のサーバ内の第1の通信プロキシと第2のサーバ内の第2の通信プロキシとの間に確立された制御接続を含んでもよい。この制御接続は、固定し、かつ安定した接続である上記データ接続に類似する。この状況において、データ接続がデータ伝送を制御する一方で、制御接続はフロー制御信号を制御する。この制御接続は、従来のTCP技術に従って両者間に確立されるTCP接続とは異なる。本開示によって提供されるこのデータ接続は、フロー制御に関して2つのデータ接続と比較して少々効果が低い一方で、TCP接続の数を更に減らす。図5に図示されるように、データパケットを第2の通信プロキシに伝送するとき、第1の通信プロキシは、キュー内のデータパケットの量を監視する。いくつかの実施形態では、キュー内のデータのオーバーフローを避けるために、第1の通信プロキシが、キュー内のデータパケットの量が事前に設定された閾値よりも多いことを判断した後に、制御信号すなわち、第1の制御信号が、データパケットの伝送を停止するために第1のアプリケーションに送信される。いくつかの実施形態では、第1のアプリケーションが第1の制御信号を受信した後に、第1のアプリケーションは、データパケットを第1の通信プロキシに伝送することを停止する。第1の通信プロキシは、キュー内にあるデータパケットを伝送し続けて、その後、キュー内のデータパケットの量は徐々に減少する。第1の制御信号を第1のアプリケーションに送信した後、第1の通信プロキシは、キュー内のデータパケットの量を監視する。第1の通信が、キュー内のデータパケットの量が事前に設定された閾値の範囲内にあることを判断した後に、第2の制御信号すなわち、第2の制御信号が、データパケットの伝送を再開するために第1のアプリケーションに送信される。例えば、第1の通信プロキシが、キュー内のデータパケットがキューの長さすなわち、受信することができるデータパケットの合計数の2/3以上であることを監視すると、第1の通信プロキシは、データパケットの伝送を停止する信号メッセージXOFFすなわち、第1の制御信号を送信する。第1の通信プロキシが、キュー内のデータパケットの量がキューの長さの1/3以下であることを監視すると、第1の通信プロキシは、データパケットの伝送を再開する信号メッセージXONすなわち、第2の制御信号を送信する。いくつかの実施形態では、第1の通信プロキシがデータパケットを第2の通信プロキシに伝送すると、第1の通信プロキシは、第3の制御信号が、データパケットの伝送を停止するために第2の通信プロキシから、第1の通信プロキシと第2の通信プロキシとの間の事前に確立された制御接続を経由して受信されたかどうかを判断する。第3の制御信号を受信すると、第1の通信プロキシは、例えばキュー内の全てのデータパケットを、伝送することを一時的に停止する。第1の通信プロキシは、キュー内の全てのデータパケットを伝送することを一時的に停止した後に、第2の通信プロキシからの第4の制御信号が、データパケットの伝送を再開するかどうかの判断を、事前に確立された制御接続で受信することによって、継続する。第4の制御信号を受信すると、第1の通信プロキシは、例えばキュー内の全てのデータパケットを、伝送することを再開する。限定ではない一例として、第1の、第2の、第3の、および第4の制御信号は、データを伝送する際に使用されるデータパケットの形式に類似のデータ形式または他の形式を使用してもよい。例えば、制御信号は、データパケットが制御信号であることを示すデータパケットの種類フィールドを含んでもよい。いくつかの実施形態では、2つの接続が確立されるとき、制御信号キュー方法が、制御接続で制御信号を伝送するために使用されてもよい。制御信号キューは、制御信号がデータ伝送よりも高い伝送優先度を有することを確実にするように制御信号を伝送するためだけに使用される。第1の通信プロキシまたは第2の通信プロキシは、制御信号キュー内に制御信号を配置することができる。伝送基準例えば、帯域幅要件が満たされる場合、第1の通信プロキシまたは第2の通信プロキシは、制御キューが制御信号を含むかどうかを判断する。制御キューが制御信号を含む場合、制御キューは、伝送されるための優先権を与えられる。この制御信号キューは、制御信号がそれらの宛先に時間通りに届くことが可能であることを確実にする。図6は、キューのいくつかのデータパケットを送信すること、および制御信号キューの制御信号を送信することの例示的なプロセスを示す概略図である。図6に図示されるように、キューおよび第2のキュー内の量は、受信側の第2のアプリケーション内の量に基づいて判断される。第2の通信プロキシが3つの第2のアプリケーションすなわち、図6におけるApp1、App2およびApp3に接続することを仮定する。更に、第1の通信プロキシが2つの第1のアプリケーションすなわち、クライアントApp1およびクライアントApp1に接続することを仮定する。結果として、第1の通信プロキシは、クライアントApp1およびクライアントApp2によって送信されたデータパケットを受信する。第1の通信プロキシは、データパケットの宛先アドレスに基づいて、App1、App2およびApp3にそれぞれ対応する3つの第1のキューすなわち、図6におけるApp1_Q、App2_QおよびApp3_Q内にこれらのデータパケットを個別に配置する。次いで、第1の通信プロキシは、3つの第1のキュー内のデータパケットを第2の通信プロキシに伝送する。第2の通信プロキシがデータパケットを一旦受信すると、第2の通信プロキシは、App1、App2およびApp3にそれぞれ対応する3つの第2のキューApp1_Q、App2_QおよびApp3_Q内にそれらのデータパケットを配置する。これらの3つの第2のアプリケーションは、それら自体のデータパケットを3つの第2のキューからそれぞれ取り出す。いくつかの実施形態では、上記ブロック301から304までを実行する際に、第1の通信プロキシが、第1のサーバ内の第1のアプリケーションが判断されたことを検出する場合、第1の通信プロキシは、第1のアプリケーションが決定されたことを示すブロードキャストメッセージを第1の通信プロキシとの確立されたデータ接続を有する第2の通信プロキシの全てに送信してもよい。それに対応して、ブロードキャストメッセージを受信する第2の通信プロキシのそれぞれは、メッセージを第2のアプリケーションの全てに伝送する。したがって、第1の通信プロキシは、第1のアプリケーションのそれぞれの状態を記録する必要はない。いくつかの実施形態では、ブロードキャストメッセージのデータ量を減らすために、第1の通信は、ブロードキャストメッセージを定期的に例えば、毎週送信してもよい。それに対応して、第1のアプリケーションが判断されるとき、第1のアプリケーションの対応するキューによってデータ接続内に占められたスペースもまた、リソースの無駄使いを避けるように開放されることができる。図7は、第1のサーバ内で第1の通信プロキシから第1のアプリケーションにデータパケットを伝送する例示的なプロセスを示すフローチャートである。ブロック701では、第1のサーバ内の第1の通信プロキシは、第2のサーバ内の第2のアプリケーションによって送信された第2の通信プロキシの伝送したデータパケットを、第1の通信プロキシと第2のサーバ内の第2の通信プロキシとの間の事前に確立されたデータ接続を経由して受信する。ブロック702では、第1の通信プロキシは、データパケットの宛先アドレスを解析する。その宛先アドレスに基づいて、第1の通信プロキシは、データパケットを受信する第1のサーバ上の第1のアプリケーションを判断する。いくつかの実施形態では、データパケットは、図4に上記したように2個組すなわち、IP、AppIDを含んでもよい。例えば、第1の通信プロキシは、データパケットに含まれる第1のアプリケーションのAppIDに基づいて第1のアプリケーションのアドレスを判断してもよい。ブロック703では、第1の通信プロキシは、受信したデータパケットを第1の通信プロキシと第1のアプリケーションとの間の第2のキュー内に配置する。ブロック704では、第1の通信プロキシは、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由してデータパケットを第1のアプリケーションに送信する。いくつかの実施形態では、第1の通信プロキシは、第1のアプリケーションに送信されたデータパケットを第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して伝送してもよい。図8は、データパケットを第1のサーバ上の第1の通信プロキシから第2のサーバ上の第1のアプリケーションに送信する例示的なプロセス例えば、図7のブロック703および704を示す概略図である。図8に図示されるように、第1の通信プロキシがデータパケットを一旦受信すると、第1の通信プロキシは、プロセス間通信接続が、データパケットを受信する第1のアプリケーションと第1の通信プロキシとの間に確立されたかどうかを判断してもよい。いくつかの実施形態では、第1の通信プロキシは接続が確立したことを判断する。次いで、第1の通信プロキシは、第1の通信プロキシと第1のアプリケーションとの間の第2のキュー内にデータパケットを配置してもよい。いくつかの実施形態では、第1の通信は、接続が確立していないことを判断する。次いで、第2のキューが、データパケットを受信する第1のアプリケーションと第1の通信プロキシとの間にまず確立される。第1の通信プロキシは、その後、第2のキュー内にデータパケットを配置する。限定ではない一例として、データパケットは、キュー内の配置のタイムスタンプ順またはデータパケットの優先度に基づいてキュー内に配置されてもよい。いくつかの実施形態では、第2のキューは、データパケットを受信する実際の第1のアプリケーションのみに対応してもよい。いくつかの実施形態では、第1の通信プロキシは、データ接続の帯域幅要件内に入る場合、データパケットをキューから取り出してもよい。限定ではない一例として、データパケットは、先入れ先出し技術またはデータパケットの優先度に基づいて取り出されてもよい。取り出されたデータパケットは、第1の通信プロキシと第1のアプリケーションとの間のプロセス間通信接続を経由して第1のアプリケーションに伝送されてもよい。図8に図示されるように、データパケットを第1のアプリケーションに伝送する際例えば、図7のブロック703および704、第1の通信プロキシは、第2のキュー内のデータパケットの量を監視する。いくつかの実施形態では、第1の通信プロキシが、第2のキュー内のデータパケットの量が事前に設定された閾値よりも多いことを判断した後に、フロー信号すなわち、図8の第1の制御信号が、データパケットの伝送を停止するために第2の通信プロキシに送信される。いくつかの実施形態では、第2の通信プロキシが第1の制御信号を受信した後に、第2の通信プロキシは、データパケットを第1の通信プロキシに伝送することを停止する。第1の通信プロキシは、第1のキュー内にあるデータパケットを伝送し続けて、その後、第2のキュー内のデータパケットの量は徐々に減少する。第1の制御信号を第2の通信プロキシに送信した後、第1の通信プロキシは、第2のキュー内のデータパケットの量を監視する。第1の通信が、第2のキュー内のデータパケットの量が事前に設定された閾値内にあることを判断した後に、第2の制御信号すなわち、図8の第2の制御信号は、データパケットの伝送を再開するために第2の通信プロキシに送信される。いくつかの実施形態では、第1のサーバ内の第1のアプリケーションは、データ受信速度を落とすために、対応するフロー制御信号を第1の通信プロキシに送信してもよい。第2のキュー内のデータパケットの量を先を見越して監視することに加えて、第1の通信プロキシは、フロー制御信号が、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して第1のアプリケーションによって送信されたかどうかを判断してもよい。第1の通信プロキシが、データパケットの伝送を停止することを示すフロー制御を一旦判断すると、第1の通信プロキシは、例えば第2のキュー内の全てのデータパケットを、伝送することを一時的に停止する。いくつかの実施形態では、第1の通信プロキシが第2のキュー内のデータパケットの伝送を停止した後に、第1の通信プロキシは、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して、データパケットを伝送することを再開するフロー制御信号を受信する。フロー制御信号を受信すると、第1の通信プロキシは、例えば第2のキュー内の全てのデータパケットを、伝送することを再開する。いくつかの実施形態では、ブロック701~704を実行するプロセスにおいて、第1の通信プロキシは、第2の通信プロキシが位置する第2のサーバからブロードキャストメッセージを受信してもよい。ブロードキャストメッセージは、第2のサーバ内の第2のアプリケーションが終了したことを示す。第1の通信プロキシは、受信したブロードキャストメッセージを第1のサーバ内のアプリケーションに送信してもよい。したがって、第2のアプリケーションが判断された場合、第2のアプリケーションの対応する第2のキューによってデータ接続内に占められたスペースもまた、リソースの無駄使いを避けるように開放することができる。図9および図10は、TCP通信のための例示的なサーバを示すブロック図である。説明のために、サーバは、図3、図5および図6~図8に示されたプロセス、図4におけるデータパケット形式、ならびに図2におけるTCP接続を参照して記載される。しかしながら、サーバは、異なるデータパケット形式および接続を含む異なるプロセスを実行してもよい。いくつかの実施形態では、サーバは、組み込み型の双方向通信機能を有する。結果として、データパケットは、第1のサーバ内の第1のアプリケーションによって第2の通信プロキシに伝送されてもよいし、データパケットはまた、第2の通信プロキシによって第1のサーバ内の第1のアプリケーションにも伝送されてもよい。また説明のために、以下の段落では、第1のアプリケーションから第2の通信プロキシにデータパケットを伝送する機能モジュール、および第2の通信から第1のアプリケーションにデータパケットを伝送する機能モジュールを有するサーバをまず記載する。図9は、例示的なTCP通信サーバ900の詳細を示す概略的なブロック図である。通信サーバ900は、任意の適切なシステムとして構成されてもよい。1つの例示的な構成において、通信サーバ900は、1つ以上のプロセッサ901、ネットワークインタフェース902、入出力インタフェース904、およびメモリ903を含む。メモリ903は、ランダムアクセスメモリRAMなどの揮発性メモリおよび/または読み出し専用メモリROMもしくはフラッシュRAMなどの不揮発性メモリの形式のコンピュータ可読媒体を含んでもよい。メモリ903は、コンピュータ可読媒体の一例である。コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータなどの情報の記憶のために任意の方法または技術で実装された、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体の例としては、相変化メモリPRAM、スタティックランダムアクセスメモリSRAM、ダイナミックランダムアクセスメモリDRAM、他の種類のランダムアクセスメモリRAM、読み出し専用メモリROM、電気的消去可能でプログラム可能な読み出し専用メモリEEPROM、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリCD-ROM、デジタル多用途ディスクDVDもしくは他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、またはコンピューティングデバイスによるアクセスのための情報を記憶するために使用することができる任意の他の非伝送媒体が挙げられるが、これらに限定されない。本明細書中で定義されるように、コンピュータ可読媒体は、変調されたデータ信号および搬送波などの一時的な媒体を含まない。メモリ903は、プログラムユニット905およびプログラムデータ911を含んでもよい。いくつかの実施形態では、プログラムユニット905は、受信ユニット906、アドレス解析ユニット907、伝送ユニット908、監視ユニット909および評価ユニット910を含んでもよい。いくつかの実施形態では、受信ユニット901は、データパケットを第1のサーバ内の第1のアプリケーションから受信する。例えば、受信ユニット901は、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由して第1のアプリケーションによって伝送されたデータパケットを受信する。アドレス解析ユニット902は、データパケット内の宛先アドレスを解析し、データパケットを受信する第2のアプリケーションが位置する第2のサーバのアドレスを判断してもよい。伝送ユニット903は、第1の通信プロキシと第2の通信プロキシとの間の対応するキュー内にデータパケットを配置し、第1の通信プロキシと第2の通信プロキシとの間の事前に確立されたデータ接続を経由してデータパケットを第2の通信プロキシに伝送してもよい。例えば、データ接続が帯域幅要件内に入る場合、データパケットは、先入れ先出し技術を用いてキューから取り出されてもよい。次いで、データパケットはデータ接続を経由して第2の通信プロキシに伝送される。いくつかの実施形態では、伝送ユニット903がデータパケットを伝送するとき、監視ユニット904はキュー内のデータパケットの量を監視してもよい。その量が、事前に規定された第1の閾値以上の場合、監視ユニット904は、データパケットの伝送を停止するために第1の制御信号を第1のアプリケーションに送信する。監視ユニット904が、データパケットの量が事前に規定された第2の閾値内にあることを判断すると、データパケットを伝送することを再開するために第2の制御信号を第1のアプリケーションに送信する。いくつかの実施形態では、評価ユニット905は、第1の通信プロキシと第2の通信プロキシとの間の事前に確立された制御接続を経由してデータパケットを伝送することを停止するために、第3の制御信号が第2の通信プロキシから送信されたかどうかを判断してもよい。評価ユニット905が、そのような第3の制御信号が出ることを判断する場合、例えばデータパケットの全てをキューから伝送することを一時的に停止する。データパケットの伝送を再開することを示す第4の制御信号を第1の通信プロキシと第2の通信プロキシとの間の制御接続から受信すると、評価ユニット905は、例えばデータパケットの全てを、伝送することを再開する。いくつかの実施形態では、第1のアプリケーションが終了したことを判断すると、伝送ユニット903は、第1の通信プロキシとの確立されたデータ接続を有する第2の通信プロキシを示すブロードキャストメッセージを送信してもよい。図10は、TCP通信サーバの例示的なプログラムユニット1000の詳細を示す概略的なブロック図である。プログラムユニット1000は、受信ユニット1001、アドレス解析ユニット1002、伝送ユニット1003、監視ユニット1004および評価ユニット1005を含んでもよい。受信ユニット1001は、第2のサーバ内の第2のアプリケーションからの、第2の通信プロキシの伝送したデータパケットを第1の通信プロキシと第2の通信プロキシとの間の事前に確立されたデータ接続を経由して受信する。アドレス解析ユニット1002は、受信ユニット901から受信されたデータパケット内の宛先アドレスを解析し、第1のアプリケーションのそのアドレスを判断してもよい。伝送ユニット1003は、受信されたデータパケットを第1の通信プロキシと第1のアプリケーションとの間の第2のキュー内に配置し、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由してデータパケットを第1のアプリケーションに送信してもよい。いくつかの実施形態では、伝送ユニット1003は、第1の通信プロキシと第1のアプリケーションとの間のプロセス間通信接続が帯域幅要件を満たす場合、先入れ先出し技術を用いてデータパケットを第2のキューから取り出してもよい。伝送ユニット1003は、第1の通信プロキシと第1のアプリケーションとの間のプロセス間通信接続を用いてデータパケットを第1のアプリケーションに送信してもよい。いくつかの実施形態では、伝送ユニット1003が、第1の通信プロキシと第1のアプリケーションとの間のプロセス間通信接続を経由してデータパケットを第1のアプリケーションに伝送する場合、監視ユニット1004は、第2の値value内のデータパケットの量を監視する。データパケットの量が第1の規定された閾値以上の場合、監視ユニット1004は、第1の通信プロキシと第2の通信プロキシとの間の事前に確立された制御接続を経由してデータパケットを伝送することを停止するために、第1の制御信号を第2の通信プロキシに送信する。データパケットの量が第2の事前に規定された閾値内にある場合、監視ユニット1004は、第1の通信プロキシと第2の通信プロキシとの間の事前に確立された制御接続を経由してデータパケットを伝送することを再開するために、第2の制御信号を第2の通信プロキシに送信する。いくつかの実施形態では、伝送ユニット1003が、第1の通信プロキシと第1のアプリケーションとの間の事前に確立されたプロセス間通信接続を経由してデータパケットを第1のアプリケーションに送信する場合、評価ユニット1005は、事前に確立されたプロセス間通信接続を経由するデータパケットの伝送を停止することを示す第3の制御信号を判断する。評価ユニット1005が、第3の制御信号が受信されたことを判断する場合、伝送ユニット1003は、例えば第2のキューからのデータパケットの全てを、伝送することを一時的に停止する。いくつかの実施形態では、評価ユニット1005は、事前に確立されたプロセス間通信プロセスを経由する全てのデータパケットの伝送の再開を示す第4の制御信号を判断する。第8の制御信号が受信された後、伝送ユニット103は、例えば第2のキュー内の全てのデータパケットを、伝送することを再開する。いくつかの実施形態では、受信ユニット1001は、第2のアプリケーションが終了したというブロードキャストメッセージを第2のサーバから受信してもよい。受信ユニット1001によって、ブロードキャストメッセージを受信すると、伝送ユニット1003は、受信されたブロードキャストメッセージをサーバ内の第1のアプリケーション例えば、図2内のA~Dに送信してもよい。説明のために、図9および図10において記載されたブロックの任意の番号は、上記プロセスを実施するために任意の順で、および/または並行して組み合わされることができる。例えば、機能モジュールは、901および1001を含む受信ユニット、902および1002を含むアドレス解析ユニット、903および1003を含む伝送ユニット、904および1004を含む監視ユニットならびに905および1005を含む評価ユニットを含むことができる。本開示は、第1のサーバ内の全てのアプリケーションおよび第2のサーバ内の全てのアプリケーションが、第1の通信プロキシと第2の通信プロキシとの間のデータ接続を経由してデータを交換することが可能な、伝送制御プロトコルおよびサーバを提供する。本開示はまた、第1の通信プロキシと第2の通信との間の確立されたデータ接続を経由する、第1のサーバ内の第1のアプリケーションと第2のサーバ内の第2のアプリケーションとの間のデータ通信チャネルも提供する。多くのTCP接続がTCP通信相手間に確立されることが必要である従来の技術と比較して、本開示によって提供されたTCP通信プロトコルおよびサーバは、第1のアプリケーションと第2のアプリケーションとの間の接続の実際の数を大幅に減らして、TCP接続を維持するシステムリソースを効果的に節約する。更に、データ接続が安定しているので、従来の技術の下で生じる2つのアプリケーション間の頻繁な接続および切断によってもたらされる遅延を阻止する。したがって、本開示によって提供されたTCP通信プロトコルおよびサーバは、通信効率も高める。更に、本開示によって提供されたTCP通信プロトコルおよびサーバは、第1の通信プロキシと第2の通信プロキシとの間の制御接続を同時に確立することを可能にする。制御接続において、フロー制御信号は、データ伝送フローが許容範囲を超えないこと、および、データパケットの伝送が第1のアプリケーションと第2のアプリケーションとの間で信頼性の高いことを確実にするために伝送される。当業者は、本開示に提供された実施形態に変更および改変を行うことが可能であろう。当業者が理解するであろういかなる変更および改変も、本開示の範囲内にある。"