(57)【特許請求の範囲】
【請求項１】
伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法であって、前記方法は、
ネットワーク内でＴＣＰデータパケットを送信する第１往復時間を得るステップと、
第２往復時間を決定するステップであって、前記第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウと第２アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第１アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは往復時間に従い決定され、前記第２アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは往復時間及び目標スループットに従い決定され、前記目標スループットは、前記ＴＣＰデータパケットに対応するサービスのために得られると期待されるスループットである、ステップと、
前記第１往復時間が前記第２往復時間より長い場合、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いるステップ、又は、前記第１往復時間が前記第２往復時間より短い又は等しい場合、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いるステップと、
前記第１輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するステップと、
を含む方法。
【請求項２】
前記第２アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し、前記往復時間に負に相関し、前記第１アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記往復時間に負に相関する、請求項１に記載の方法。
【請求項３】
前記目標スループットは、前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される、請求項１又は２に記載の方法。
【請求項４】
前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は１より大きい、である、請求項３に記載の方法。
【請求項５】
前記方法は、
前記ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整するステップであって、前記第２輻輳ウインドウは、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、前記ＴＣＰデータパケットを伝送する前記輻輳ウインドウを前記第２輻輳ウインドウに調整する減少ステップサイズは、前記第３往復時間に負に相関する、ステップと、
前記第２輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するステップと、
を更に含む請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整する前記ステップは、
前記第３往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを前記第２輻輳ウインドウとして用いるステップ、又は、前記第３往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第２輻輳ウインドウとして用いるステップ、であって、前記遅延間隔の前記上限は、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ステップ、
を含む、請求項５に記載の方法。
【請求項７】
前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いる前記ステップは、
前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを得るステップであって、前記高速回復値はスロースタートと同程度の大きさを有する、ステップ、
前記第１往復時間が、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、１最大セグメントサイズ（ＭＳＳ）を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを得るステップ、又は
前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する往復時間と前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズを、１ＭＳＳと前記高速回復値との間であり且つ前記第１往復時間に負に相関するよう設定して、前記第１輻輳ウインドウを得るステップ、
を含む、請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記第２アルゴリズムに従い決定された前記輻輳ウインドウを前記第１輻輳ウインドウとして用いる前記ステップは、
前記目標スループット及び前記第１往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記ＴＣＰの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを決定するステップ、
を含む、請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記方法は、
前記ネットワーク内の前記ＴＣＰデータパケットを送信する実際スループットを検出するステップと、
前記実際スループットの前記目標スループットに対する比が第１閾より大きく、前記ネットワーク内の前記ＴＣＰデータパケットを送信する第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、前記目標スループットを増大するステップ、又は、前記実際スループットの前記目標スループットに対する比が第３閾より小さく、第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、前記目標スループットを減少するステップ、
を更に含む請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記目標スループットは、目標スループットパラメータを用いることにより、ＴＣＰプロトコルスタックに転送される、請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置であって、前記装置は、
ネットワーク内でＴＣＰデータパケットを送信する第１往復時間を得て、第２往復時間を決定するよう構成される遅延決定ユニットであって、前記第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウと第２アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第１アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは往復時間に従い決定され、前記第２アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは往復時間及び目標スループットに従い決定され、前記目標スループットは、前記ＴＣＰデータパケットに対応するサービスのために得られると期待されるスループットである、遅延決定ユニットと、
前記第１往復時間が前記第２往復時間より長い場合、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用い、又は、前記第１往復時間が前記第２往復時間より短い又は等しい場合、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを前記第１輻輳ウインドウとして用いる、よう構成されるウインドウ調整ユニットと、
前記第１輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するよう構成されるデータパケット送信ユニットと、
を含む装置。
【請求項１２】
前記第２アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し、前記往復時間に負に相関し、前記第１アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記往復時間に負に相関する、請求項１１に記載の装置。
【請求項１３】
前記目標スループットは、前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される、請求項１１又は１２に記載の装置。
【請求項１４】
前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は１より大きい、である、請求項１３に記載の装置。
【請求項１５】
前記ウインドウ調整ユニットは、前記ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整し、前記第２輻輳ウインドウは、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、前記ＴＣＰデータパケットを伝送する前記輻輳ウインドウを前記第２輻輳ウインドウに調整する減少ステップサイズは、前記第３往復時間に負に相関する、よう更に構成され、
前記データパケット送信ユニットは、前記第２輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するよう更に構成される、
請求項１１乃至１４のいずれか一項に記載の装置。
【請求項１６】
前記ウインドウ調整ユニットが、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整するよう更に構成されることは、
前記ウインドウ調整ユニットが、前記第３往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを前記第２輻輳ウインドウとして用い、又は、前記第３往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第２輻輳ウインドウとして用いるよう構成され、前記遅延間隔の前記上限は、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、
ことである、請求項１５に記載の装置。
【請求項１７】
前記ウインドウ調整ユニットが、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いることは、
前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを得て、前記高速回復値はスロースタートと同程度の大きさを有する、よう構成されること、
前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、１最大セグメントサイズ（ＭＳＳ）を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを得るよう構成されること、又は
前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する往復時間と前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズを、１ＭＳＳと前記高速回復値との間であり且つ前記第１往復時間に負に相関するよう設定して、前記第１輻輳ウインドウを得るよう構成されること、
を含む、請求項１１乃至１６のいずれか一項に記載の装置。
【請求項１８】
前記ウインドウ調整ユニットが、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを前記第１輻輳ウインドウとして用いるよう構成されることは、
前記ウインドウ調整ユニットが、前記目標スループット及び前記第１往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記ＴＣＰの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを決定するよう構成されること、
を含む、請求項１１乃至１７のいずれか一項に記載の装置。
【請求項１９】
前記装置は、
前記ネットワーク内の前記ＴＣＰデータパケットを送信する実際スループットを検出するよう構成されるスループット検出ユニットと、
前記実際スループットの前記目標スループットに対する比が第１閾より大きく、前記ネットワーク内の前記ＴＣＰデータパケットを送信する第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、前記目標スループットを増大し、又は、前記実際スループットの前記目標スループットに対する比が第３閾より小さく、第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、前記目標スループットを減少するよう構成される目標スループット調整ユニットと、
を更に含む請求項１１乃至１８のいずれか一項に記載の装置。
【請求項２０】
前記目標スループットは、目標スループットパラメータを用いることにより、ＴＣＰプロトコルスタックに転送される、請求項１１乃至１９のいずれか一項に記載の装置。
【請求項２１】
プログラムが記録されたコンピュータ可読媒体であって、前記プログラムは、実行されると、コンピュータに請求項１乃至１０のいずれか一項に記載の伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法を実行できるようにする、コンピュータ可読媒体。
【請求項２２】
システムであって、前記システムはサーバと端末とを含み、前記サーバは、ネットワークを用いることにより前記端末と通信接続し、
前記サーバは、請求項１１乃至２０のいずれか一項に記載の伝送制御プロトコル（ＴＣＰ）データパケット送信装置であり、前記サーバは、前記ネットワークを用いることにより、前記端末へＴＣＰデータパケットを送信するよう構成される、
システム。
【請求項２３】
システムであって、前記システムは、サーバと、第１エージェント装置と、端末と、を含み、前記第１エージェント装置は、前記サーバ及び前記端末の両方と通信接続し、
前記サーバは、エージェントとして動作する前記第１エージェント装置を用いることにより、前記端末へ伝送制御プロトコル（ＴＣＰ）データパケットを送信するよう構成され、
前記第１エージェント装置は、請求項１１乃至２０のいずれか一項に記載のＴＣＰデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記ＴＣＰデータパケットを受信し、前記サーバのエージェントとして動作して、前記ＴＣＰデータパケットを前記端末へ送信するよう構成される、
システム。
【請求項２４】
前記端末は、目標スループットパラメータを用いることにより、前記端末のＴＣＰプロトコルスタックから前記第１エージェント装置のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成される、請求項２３に記載のシステム。
【請求項２５】
システムであって、前記システムは、サーバと、第１エージェント装置と、第２エージェント装置と、端末と、を含み、前記第１エージェント装置は、前記サーバ及び前記第２エージェント装置の両方と通信接続し、
前記サーバは、エージェントとして動作する前記第１エージェント装置を用いることにより、前記端末へ伝送制御プロトコル（ＴＣＰ）データパケットを送信するよう構成され、
前記第１エージェント装置は、請求項１１乃至２０のいずれか一項に記載のＴＣＰデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記ＴＣＰデータパケットを受信し、前記サーバのエージェントとして動作して、前記ＴＣＰデータパケットを前記第２エージェント装置へ送信するよう構成され、
前記第２エージェント装置は、前記ＴＣＰデータパケットを受信し、前記ＴＣＰデータパケットを前記端末へ転送するよう構成される、
システム。
【請求項２６】
前記端末は、目標スループットパラメータを用いることにより、前記端末のＴＣＰプロトコルスタックから前記第２エージェント装置のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成され、
前記第２エージェント装置は、前記目標スループットパラメータを用いることにより、前記第２エージェント装置の前記ＴＣＰプロトコルスタックから前記第１エージェント装置のＴＣＰプロトコルスタックへ前記目標スループットを転送するよう更に構成される、
請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照によりその全体がここに組み込まれる中国特許出願番号２０１５１００９３０１１.３、２０１５年３月２日出願、名称「METHOD  AND  APPARATUS  FOR  SENDING  TRANSMISSION  CONTROL  PROTOCOLTCP  DATA  PACKET  AND  SYSTEM」の優先権を主張する。
【０００２】
［技術分野］
本発明の実施形態は、ネットワーク技術の分野、及び特に伝送制御プロトコル（ＴＣＰ）データパケット送信する方法及び装置、並びにシステムに関する。
【背景技術】
【０００３】
ネットワーク輻輳（congestion）は、過度に大量のパケットがネットワーク内で転送されるが、ネットワーク内の転送ノードを格納するために限られたリソースしか存在せず、ネットワーク伝送性能の低下を生じることを意味する。ネットワーク輻輳が生じると、データ損失、遅延の増大、又はスループットの低下のような減少が通常生じる。ネットワーク輻輳が深刻なとき、輻輳崩壊（congestion  collapse）が引き起こされる。高スループット率アプリケーション（例えば、オンラインオーディオ及びビデオ再生アプリケーション）のトラフィック量が急増するにつれ、ネットワークを用いることにより伝送される必要のあるデータ量も急激に増える。したがって、ネットワークは高スループットを維持することを要求される。ネットワークリソースを調整するために使用される輻輳制御手段が不適切な場合、ネットワーク帯域幅が十分であっても、高スループット率アプリケーションは効率的に利用されることができない。
【０００４】
伝送制御プロトコル（Transmission  Control  Protocol、略してＴＣＰ）は、信頼できるコネクション型の、バイトストリームに基づくトランスポート層通信プロトコルであり、ＩＥＴＦのＲＦＣ７９３で定められている。ＴＣＰが出現して以来、負荷がネットワークの最大容量を超えないことを保証するために、多くの研究者が、自己調整及び回復メカニズムを設定する目的で、ＴＣＰ輻輳制御メカニズムのシリーズを提案してきた。ＴＣＰ輻輳制御は、輻輳回避及び輻輳回復を含む。輻輳回避は、ネットワークが輻輳状態に入ることを可能な限り防ぎ並びにネットワークが高スループット且つ低遅延状態で動作し続けることを可能にする保護メカニズムである。輻輳回復は、輻輳が既に生じている場合にもネットワークを輻輳状態から回復させ並びに高スループット且つ低遅延状態に再びはいることを可能にする回復メカニズムである。
【０００５】
これまで、ＴＣＰ輻輳制御の成熟した実装方法では、輻輳ウインドウ（congestion  window、略してＣＷＮＤ）のサイズは、ＴＣＰパケットのスループットを制御するために調整される。輻輳ウインドウのサイズは、１往復時間（Round  Trip  Time、ＲＴＴ）以内で送信できるＴＣＰデータパケットの最大量を表す。より大きなサイズの輻輳ウインドウは、より高いデータ送信レート及びより高いスループットだが、ネットワーク輻輳が生じるより高い可能性を示す。これに対し、より小さなサイズの輻輳ウインドウは、より低いデータ送信レート及びより低いスループットだが、ネットワーク輻輳が生じるより低い可能性を示す。例えば、輻輳ウインドウが１最大セグメントサイズ（Maximum  Segment  Size、略してＭＳＳ）であるとき、１個のパケットが送信される度に、受信機は肯定応答を送信する必要があり、次に第２パケットが送信できる。これは、ネットワーク輻輳を確実に防ぐが、スループットが極めて低い。ＴＣＰ輻輳制御は、調整を通じて最適輻輳ウインドウ値を得て、輻輳を引き起こすことなくスループットを最大化することである。現在のところ、スループットに対する要件の増大に伴い、Ｒｅｎｏアルゴリズム、ＣＵＢＩＣアルゴリズム、等を含む、既に複数の成熟したウインドウ調整アルゴリズムが存在する。
【０００６】
例えば、Ｒｅｎｏアルゴリズムは、最も広く使用され、ＴＣＰ輻輳制御アルゴリズムを成熟させている。このアルゴリズムに含まれる、スロースタートメカニズム、輻輳回避メカニズム、高速再送メカニズム、及び高速回復メカニズムは、多くの既存のアルゴリズムの基礎である。Ｒｅｎｏアルゴリズムの作動メカニズムでは、動的バランスを保つために、特定量のＴＣＰデータパケットの損失が周期的に保証される必要があり、ＡＩＭＤ（正式名：Additive  Increase  Multiplicative  Decrease）メカニズム（つまり、加法的増加、乗法的減少）も提供される。１個のＴＣＰデータパケットの損失により引き起こされる輻輳ウインドウの減少は、比較的長時間の間、回復される必要があり、帯域幅利用率は高くない。特に、大きな輻輳ウインドウの場合には、このような欠点が一層明らかである。Ｒｅｎｏアルゴリズムでは、１個のＴＣＰデータパケットの損失が検出されると、輻輳ウインドウは、直ちに半分のサイズに減少される。輻輳回復段階では、各輻輳ウインドウのデータ伝送のＲＴＴの後、輻輳ウインドウは１ＭＳＳだけ増加され（つまり、増分は１ＭＳＳである）、ＴＣＰデータパケットが損失されるときに存在する輻輳ウインドウのサイズの半分から回復を実行することは、比較的長時間を要する。例えば、ネットワークが１００Ｍｂｉｔ／ｓの帯域幅及び１００ミリ秒の遅延を有する場合、スループットはネットワーク帯域幅に近づき、輻輳ウインドウ値は約８６３ＭＭＳであり、Ｒｅｎｏアルゴリズムを用いることにより４３１往復のＲＴＴが必要とされる。したがって、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウは、半分のサイズから回復でき、約４３．１秒を要する。Ｒｅｎｏアルゴリズムと比べて、ＣＵＢＩＣアルゴリズムは、輻輳ウインドウの増大の側面において改良を行っている。ＣＵＢＩＣアルゴリズムでは、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウは記録される。記録した輻輳ウインドウに到達しないとき、ウインドウは、スロースタートにおけるのと同様に指数関数的に増大する。記録した輻輳ウインドウに到達しそうなとき、輻輳ウインドウの増加ステップサイズは大幅に減少される。減少の後に得られる、輻輳ウインドウの増加ステップサイズが時間期間の間、保たれた後、輻輳ウインドウの増加ステップサイズは、概ね指数関数的な速い増加に再調整される。時間期間が時折保たれるだけである場合、ＣＵＢＩＣアルゴリズムでは、輻輳ウインドウが時間期間の後に依然として速く増大するとき、ネットワーク輻輳が再び生じるので、必然的により多くのＴＣＰデータパケットが損失され、さらに、ネットワーク状態の劣化を引き起こす。
【０００７】
したがって、ＴＣＰ輻輳制御のための（Ｒｅｎｏアルゴリズム及びＣＵＢＩＣアルゴリズムを含む）２つのアルゴリズムは、以下のような同じ欠点を有する。輻輳ウインドウは、事前設定された固定値に従い増加し、現在望ましいネットワーク帯域幅が効率的に利用され得ず、又は、実際のネットワーク状態に矛盾する調整ポリシでさえ輻輳ウインドウの調整中に使用される場合があり、それにより、スループットの適用の要求に影響を与える。
【発明の概要】
【０００８】
以上に鑑み、本発明の実施形態は、サービスのために得られることが期待されるスループット及びＴＣＰデータパケットを送信する往復時間に従い輻輳ウインドウを調整し、調整した輻輳ウインドウを用いることによりＴＣＰデータパケットの送信を制御し、それによりサービスのスループットを可能な限り満たすために、伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法及び装置、並びにシステムを提供する。
【０００９】
第１の態様によると、本発明の一実施形態は、伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法であって、前記方法は、ネットワーク内でＴＣＰデータパケットを送信する第１往復時間を得るステップと、第２往復時間を決定するステップであって、前記第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウと第２アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第１アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第１往復時間に従い決定され、前記第２アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第１往復時間及び目標スループットに従い決定され、前記目標スループットは、前記ＴＣＰデータパケットに対応するサービスのために得られると期待されるスループットである、ステップと、前記第１往復時間が前記第２往復時間より長い場合、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いるステップ、又は、前記第１往復時間が前記第２往復時間より短い又は等しい場合、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いるステップと、前記第１輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するステップと、を含む方法を提供する。
【００１０】
第１の態様を参照して、第１の可能な実装方法では、前記第２アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し且つ前記第１往復時間に負に相関し、前記第１アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第１往復時間に負に相関する。
【００１１】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第２の可能な実装方法では、前記目標スループットは、前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される。
【００１２】
第１の態様の第２の可能な実装方法を参照して、第３の可能な実装方法では、前記ＴＣＰデータパケットの中の前記パケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は１より大きい、である。
【００１３】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第４の可能な実装方法では、前記方法は、前記ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整するステップであって、前記第２輻輳ウインドウは、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、前記ＴＣＰデータパケットを伝送する前記輻輳ウインドウを前記第２輻輳ウインドウに調整する減少ステップサイズは、前記第３往復時間に負に相関し、ステップと、前記第２輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するステップと、を更に含む。
【００１４】
第１の態様の第４の可能な実装方法を参照して、第５の可能な実装方法では、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整する前記ステップは、具体的に、前記第３往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを前記第２輻輳ウインドウとして用いるステップ、又は、前記第３往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第２輻輳ウインドウとして用いるステップ、であって、前記遅延間隔の前記上限は、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ステップ、を含む。
【００１５】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第６の可能な実装方法では、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いる前記ステップは、具体的に、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第１輻輳ウインドウを得るステップであって、前記高速回復値はスロースタートと同程度の大きさを有する、ステップ、前記第１往復時間が、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、１最大セグメントサイズ（ＭＳＳ）を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを得るステップ、又は、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、１ＭＳＳと前記高速回復値との間であり且つ前記第１往復時間に負に相関するよう設定して、前記第１輻輳ウインドウを得るステップ、を含む。
【００１６】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第７の可能な実装方法では、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを前記第１輻輳ウインドウとして用いる前記ステップは、具体的に、前記目標スループット及び前記第１往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記ＴＣＰの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを決定するステップ、を含む。
【００１７】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第８の可能な実装方法では、前記方法は、前記ネットワーク内の前記ＴＣＰデータパケットを送信する実際スループットを検出するステップと、前記実際スループットの前記目標スループットに対する比が第１閾より大きく、前記ネットワーク内の前記ＴＣＰデータパケットを送信する第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、前記目標スループットを増大するステップ、又は、前記実際スループットの前記目標スループットに対する比が第３閾より小さく、第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、前記目標スループットを減少するステップ、を更に含む。
【００１８】
第１の態様又は第１の態様の任意の前述の可能な実装方法を参照して、第９の可能な実装方法では、前記目標スループットは、目標スループットパラメータを用いることによりＴＣＰプロトコルスタックへ転送される。
【００１９】
第２の態様によると、本発明の一実施形態は、伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置であって、前記装置は、ネットワーク内でＴＣＰデータパケットを送信する第１往復時間を得て、第２往復時間を決定するよう構成される遅延決定ユニットであって、前記第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウと第２アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第１アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第１往復時間に従い決定され、前記第２アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第１往復時間及び目標スループットに従い決定され、前記目標スループットは、前記ＴＣＰデータパケットに対応するサービスのために得られると期待されるスループットである、遅延決定ユニットと、前記第１往復時間が前記第２往復時間より長い場合、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用い、又は、前記第１往復時間が前記第２往復時間より短い又は等しい場合、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いる、よう構成されるウインドウ調整ユニットと、前記第１輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するよう構成されるデータパケット送信ユニットと、を含む装置を提供する。
【００２０】
第２の態様を参照して、第１の可能な実装方法では、前記第２アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し且つ前記第１往復時間に負に相関し、前記第１アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第１往復時間に負に相関する。
【００２１】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第２の可能な実装方法では、前記目標スループットは、前記ＴＣＰデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される。
【００２２】
第２の態様の第２の可能な実装方法を参照して、第３の可能な実装方法では、前記ＴＣＰデータパケットの中の前記パケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は１より大きい、である。
【００２３】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第４の可能な実装方法では、前記ウインドウ調整ユニットは、前記ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整し、前記第２輻輳ウインドウは、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、前記ＴＣＰデータパケットを伝送する前記輻輳ウインドウを前記第２輻輳ウインドウに調整する減少ステップサイズは、前記第３往復時間に負に相関し、よう更に構成され、前記データパケット送信ユニットは、前記第２輻輳ウインドウを用いることにより、前記ＴＣＰデータパケットを送信するよう更に構成される。
【００２４】
第２の態様の第４の可能な実装方法を参照して、第５の可能な実装方法では、前記ウインドウ調整ユニットが、前記ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整するよう更に構成されることは、具体的に、前記ウインドウ調整ユニットが、前記第３往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記ＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを前記第２輻輳ウインドウとして用い、又は、前記第３往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第２輻輳ウインドウとして用いるよう構成され、前記遅延間隔の前記上限は、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ことである。
【００２５】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第６の可能な実装方法では、前記ウインドウ調整ユニットが、前記第１アルゴリズムに従い決定された前記輻輳ウインドウを第１輻輳ウインドウとして用いることは、具体的に、前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第１輻輳ウインドウを得て、前記高速回復値はスロースタートと同程度の大きさを有する、よう構成されること、前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、１最大セグメントサイズ（ＭＳＳ）を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第１輻輳ウインドウを得るよう構成されること、又は、前記ウインドウ調整ユニットが、前記第１往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記ＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、１ＭＳＳと前記高速回復値との間であり且つ前記第１往復時間に負に相関するよう設定して、前記第１輻輳ウインドウを得るよう構成されること、を含む。
【００２６】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第７の可能な実装方法では、前記ウインドウ調整ユニットが、前記第２アルゴリズムに従い決定された前記輻輳ウインドウを前記第１輻輳ウインドウとして用いることは、具体的に、前記ウインドウ調整ユニットが、前記目標スループット及び前記第１往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記ＴＣＰの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第１輻輳ウインドウを決定するよう構成されることである。
【００２７】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第８の可能な実装方法では、前記装置は、前記ネットワーク内の前記ＴＣＰデータパケットを送信する実際スループットを検出するよう構成されるスループット検出ユニットと、前記実際スループットの前記目標スループットに対する比が第１閾より大きく、前記ネットワーク内の前記ＴＣＰデータパケットを送信する第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、前記目標スループットを増大し、又は、前記実際スループットの前記目標スループットに対する比が第３閾より小さく、第４往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、前記目標スループットを減少するよう構成される目標スループット調整ユニットと、を更に含む。
【００２８】
第２の態様又は第２の態様の任意の前述の可能な実装方法を参照して、第９の可能な実装方法では、前記目標スループットは、目標スループットパラメータを用いることによりＴＣＰプロトコルスタックへ転送される。
【００２９】
第３の態様によると、本発明の一実施形態は、伝送制御プロトコル（ＴＣＰ）データパケット送信装置であって、前記送信装置は、プロセッサと、メモリと、ネットワークインタフェースと、を含み、前記プロセッサは、バスを用いることにより前記メモリ及び前記ネットワークインタフェースの両方に接続され、前記メモリは、コンピュータ実行命令を格納するよう構成され、前記送信装置が実行すると、前記プロセッサは、前記メモリに格納された前記コンピュータ実行命令をリードして、第１の態様又は第１の態様に基づく任意の前述の可能な実装方法に従う伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法を実行する、送信装置を提供する。
【００３０】
第４の態様によると、本発明の一実施形態は、システムであって、前記システムはサーバと端末とを含み、前記サーバは、ネットワークを用いることにより前記端末と通信接続し、前記サーバは、第２の態様又は第２の態様に基づく任意の前述の可能な実装方法又は第３の態様で提供される伝送制御プロトコル（ＴＣＰ）データパケット送信装置であり、前記ネットワークを用いることにより、前記端末へＴＣＰデータパケットを送信する、システムを提供する。
【００３１】
第５の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第１エージェント装置と、端末と、を含み、前記第１エージェント装置は、前記サーバ及び前記端末の両方と通信接続し、前記サーバは、エージェントとして動作する前記第１エージェント装置を用いることにより、前記端末へＴＣＰデータパケットを送信するよう構成され、前記第１エージェント装置は、第２の態様又は第２の態様に基づく任意の前述の可能な実装方法又は第３の態様で提供される伝送制御プロトコル（ＴＣＰ）データパケット送信装置であり、前記サーバにより前記端末へ送信された前記ＴＣＰデータパケットを受信し、前記サーバのエージェントとして動作して、前記ＴＣＰデータパケットを前記端末へ送信するよう構成される、システムを提供する。
【００３２】
第５の態様を参照して、第１の可能な実装方法では、前記端末は、目標スループットパラメータを用いることにより、前記端末のＴＣＰプロトコルスタックから前記第１エージェント装置のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成される。
【００３３】
第６の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第１エージェント装置と、第２エージェント装置と、端末と、を含み、前記第１エージェント装置は、前記サーバ及び前記第２エージェント装置の両方と通信接続し、前記サーバは、エージェントとして動作する前記第１エージェント装置を用いることにより、前記端末へＴＣＰデータパケットを送信するよう構成され、前記第１エージェント装置は、第２の態様又は第２の態様に基づく任意の前述の可能な実装方法又は第３の態様で提供される伝送制御プロトコル（ＴＣＰ）データパケット送信装置であり、前記サーバにより前記端末へ送信された前記ＴＣＰデータパケットを受信し、前記サーバのエージェントとして動作して、前記ＴＣＰデータパケットを前記第２エージェント装置へ送信するよう構成され、前記第２エージェント装置は、前記ＴＣＰデータパケットを受信し、前記ＴＣＰデータパケットを前記端末へ転送するよう構成される、システムを提供する。
【００３４】
第６の態様を参照して、第１の可能な実装方法では、前記端末は、目標スループットパラメータを用いることにより、前記端末のＴＣＰプロトコルスタックから前記第２エージェント装置のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成され、前記第２エージェント装置は、前記目標スループットパラメータを用いることにより、前記第２エージェント装置の前記ＴＣＰプロトコルスタックから前記第１エージェント装置のＴＣＰプロトコルスタックへ前記目標スループットを転送するよう更に構成される。
【００３５】
前述のソリューションにより、第１輻輳ウインドウは、目標スループットと、現在ネットワーク状態を反映する第１往復時間とに従い決定され、第１輻輳ウインドウは、現在輻輳ウインドウを更新するために使用され、第１輻輳ウインドウは、現在ネットワーク状態においてＴＣＰデータパケットの送信を制御するために使用され、サービスのために得られることが期待されるスループットが可能な限り満たされ得るようにする。目標スループット及びネットワーク状態に従い、現在輻輳ウインドウは、第１輻輳ウインドウまで一気に直接に増加し、スループットに対するサービスの要件がより良好に満たされ、ネットワーク帯域幅がより効率的に利用できる。
【図面の簡単な説明】
【００３６】
【図１Ａ】伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオのシステム論理構造の概略図である。
【図１Ｂ】伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。
【図１Ｃ】伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。
【図２】伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法のフローチャートである。
【図３】データパケットが損失した後にＴＣＰデータパケットを送信する方法に基づく動作フローチャートである。
【図４】図２に示した伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法に基づく任意的最適化フローチャートである。
【図５】伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法における目標スループットを更新するフローチャートである。
【図６】伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置６００の論理構造の概略図である。
【図７】図６に示した伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置６００に基づく最適論理構造の概略図である。
【図８】本発明の一実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置８００のハードウェア構造の概略図である。
【発明を実施するための形態】
【００３７】
以下に、本発明の実施形態の添付の図面を参照して、本発明の実施形態における技術的解決策を明確且つ十分に説明する。明らかに、記載される実施形態は、本発明の実施形態の一部であり、全てではない。本発明の実施形態に基づき創造的労力を有しないで当業者により得られる全ての他の実施形態は、本発明の保護範囲に包含される。
【００３８】
図１Ａは、本発明の一実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオのシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図１Ａに示すように、図１Ａにおいて提供されるシステム１００を参照すると、システム１００は、サーバ１０１、端末１０２、及びネットワーク１０３を含む。サーバ１０１及び端末１０２は、ネットワーク１０３を用いることにより接続され、データは、サーバ１０１と端末１０２との間でネットワーク１０３を用いることにより交換される。サーバ１０１は、ネットワーク１０３を用いることにより、端末１０２へＴＣＰデータパケットを送信して良く、端末１０２も、ネットワーク１０３を用いることにより、サーバ１０１へＴＣＰデータパケットを送信して良い。ネットワーク１０３は、伝送制御プロトコル／インターネットプロトコル（Transmission  Control  Protocol/Internet  Protocol、略してＴＣＰ／ＩＰプロトコル）に基づき確立され、伝送制御プロトコル／インターネットプロトコルもネットワーク通信プロトコルとして参照される。
【００３９】
任意的に、ネットワーク１０３は、スイッチ又はルータのような、ＴＣＰデータパケットを転送する転送装置を含んで良い。サーバ１０１と端末１０２との間で交換されるＴＣＰデータパケットは、転送装置を用いることにより転送される。
【００４０】
任意的に、本発明の本実施形態で記載されるサーバは、電子コンポーネントを含み及びデータ処理機能を有する電子装置である。電子装置は、集積回路、トランジスタ、及び電子管のような電子素子で構成される。プログラム命令で構成されるソフトウェアは、データ処理及び別の装置の制御のような機能を実施するために、電子装置上で実行できる。例えば、オペレーティングシステムが電子装置にインストールされた後、ネットワークインタフェースカードが電子装置に搭載され、ネットワーク構成が完了した場合、電子装置は、ＴＣＰ／ＩＰプロトコルに基づき構築されたネットワークにアクセスし、データを交換するために、別の電子装置（例えば、端末）とＴＣＰデータパケットを交換して良い。
【００４１】
任意的に、サーバと同様に、本発明の本実施形態で記載される端末は、電子コンポーネントを含み及びデータ処理機能を有する電子装置である。端末は、ＴＣＰ／ＩＰプロトコルに基づき構築されるネットワークにアクセスし、データを交換するために、別の電子装置（例えば、サーバ）とＴＣＰデータパケットを交換して良い。
【００４２】
任意的に、サーバ１０１は、端末１０２と直接に通信接続される。ネットワーク１０３内の転送装置（例えば、ルータ）によるＴＣＰデータパケットの転送は、ネットワーク１０３を用いることによりサーバ１０１と端末１０２との間で交換されるＴＣＰデータパケットに対して実行される必要はない。
【００４３】
任意的に、サーバ１０１は、端末１０２とのＴＣＰデータパケットのピア相互作用を実行して良い。サーバ１０１は、端末１０２へＴＣＰデータパケットを送信して良く、相応して、端末１０２も、サーバ１０１へＴＣＰデータパケットを送信して良い。
【００４４】
任意的に、図１Ａで提供されるシステム１００について、システム１００では、サーバ１０１は、ネットワーク１０３を用いることにより、端末１０２とＴＣＰデータパケットのサーバ−クライアント相互作用を実行する。サーバ１０１はサービング端として動作し、端末１０２は、サーバ−クライアント通信において、サービング端に対応するクライアントとして動作する。サーバ１０１は、端末１０２へＴＣＰデータパケットを送信して良い。例えば、端末１０２がサーバ１０１からオーディオファイル及びビデオファイルをダウンロードするとき、サーバ１０１は、端末１０２へ、オーディオファイル及びビデオファイルを運ぶＴＣＰデータパケットを送信する。したがって、端末１０２も、サーバ１０１へＴＣＰデータパケットを送信して良い。例えば、端末１０２は、サーバ１０１へテキストファイルをアップロードし、端末１０２は、サーバ１０１へテキストファイルを運ぶＴＣＰデータパケットを送信する。
【００４５】
図１Ｂは、本発明の一実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図１Ｂに提供されるシステム２００を参照すると、システム２００は、サーバ２０１、端末２０２、ネットワーク２０３、及び第１エージェント装置２０４を含む。サーバ２０１がネットワーク２０３を用いることにより端末２０２とＴＣＰデータパケットを交換する処理において、サーバ２０１のＴＣＰプロトコルスタックの変更がサポートされない場合、第１エージェント装置２０４が追加される。第１エージェント装置２０４は、第１エージェント装置２０４のＴＣＰプロトコルスタックの変更をサポートする。第１エージェント装置２０４は、端末２０２とＴＣＰデータパケットを交換するために、サーバ２０１のエージェントとして動作する。図１Ｂにおける第１エージェント装置２０４と端末２０２との間のＴＣＰデータパケットの相互作用は、図１Ａにおけるサーバ１０１と端末１０２との間のＴＣＰデータパケットの相互作用と同様である。もちろん、第１エージェント装置２０４は、別の要因のためにも追加されて良い。例えば、第１エージェント装置２０４は、サーバ２０１によりＴＣＰデータパケットを送信することにより引き起こされる負荷を減少するために追加される。望ましくは、第１エージェント装置２０４は、プロキシサーバを用いることにより実装される。望ましくは、第１エージェント装置２０４は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。
【００４６】
図１Ｃは、本発明の一実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図１Ｃに提供されるシステム３００を参照すると、システム３００は、サーバ３０１、端末３０２、ネットワーク３０３、及び第１エージェント装置３０４を含む。サーバ３０１がネットワーク３０３を用いることにより端末３０２とＴＣＰデータパケットを交換する処理において、サーバ３０１のＴＣＰプロトコルスタックの変更がサポートされない場合、第１エージェント装置３０４が追加される。第１エージェント装置３０４は、第１エージェント装置３０４のＴＣＰプロトコルスタックの変更をサポートする。第１エージェント装置３０４は、ＴＣＰデータパケットを交換するために、サーバ３０１のエージェントとして動作する。さらに、第２エージェント装置３０５が更に追加されて良い。第２エージェント装置３０５は、ＴＣＰデータパケットを交換するために端末３０２のエージェントとして動作し、ＴＣＰデータパケットが第１エージェント装置３０４と第２エージェント装置３０５との間で交換できるようにする。図１Ｃにおける第１エージェント装置３０４と第２エージェント装置３０５との間のＴＣＰデータパケットの相互作用は、図１Ａにおけるサーバ１０１と端末１０２との間のＴＣＰデータパケットの相互作用と同様である。もちろん、第１エージェント装置３０４及び第２エージェント装置３０５の両方は、別の要因のためにも追加されて良い。前述が参照され、詳細事項はここで再び記載されない。第２エージェント装置３０５を追加する理由は、端末３０２のＴＣＰプロトコルスタックの変更がサポートされず、第２エージェント装置３０５が第２エージェント装置３０５のＴＣＰプロトコルスタックの変更をサポートするからである。第２エージェント装置３０５は、ＴＣＰデータパケットを交換するために端末３０２のエージェントとして動作し、ＴＣＰデータパケットが第１エージェント装置３０４と第２エージェント装置３０５との間で交換できるようにする。望ましくは、第１エージェント装置３０４は、プロキシサーバを用いることにより実装される。望ましくは、第１エージェント装置３０４は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。望ましくは、第２エージェント装置３０５は、プロキシサーバを用いることにより実装される。望ましくは、第２エージェント装置３０５は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。
【００４７】
本発明の本実施形態では、サーバがネットワーク内の端末へＴＣＰデータパケットを送信する処理において、サービスのために得られることが期待される可能な限り多くのスループットを満たすために、ＴＣＰのＴＣＰデータパケットを送信する方法が設計される。留意すべきことに、図１Ａにおいて、本発明の本実施形態で提供される方法は、サーバ１０１に適用される。図１Ｂでは、本発明の本実施形態で提供される方法は、第１エージェント装置２０４に適用される。図１Ｃでは、本発明の本実施形態で提供される方法は、第２エージェント装置３０４に適用されて良い。
【００４８】
以下は、本発明の本実施形態において提供される方法がサーバ１０１に適用される一例を用いることにより、本発明の本実施形態において提供されるＴＣＰのＴＣＰデータパケットを送信する方法を詳述する。図２は、方法の基本実施手順を示す。しかしながら、説明を容易にするために、図２は、本発明の本実施形態に関連する部分のみを示す。
【００４９】
図２に示すＴＣＰのＴＣＰデータパケットを送信する方法は、ステップＡ２０１、ステップＡ２０２、ステップＡ２０３、ステップＡ２０４、及びステップＡ２０５を含む。
【００５０】
ステップＡ２０１：ネットワーク内のＴＣＰデータパケットを送信する第１往復時間（Round  Trip  Time、ＲＴＴ）を得る。
【００５１】
本発明の本実施形態において提供される方法が図１Ａのサーバ１０１に適用される一例は、ステップＡ２０１を詳細に説明するために使用される。
【００５２】
サーバが端末にサービスを提供するとき、提供されるサービス毎に別個にＴＣＰフローが確立される。対応するサービスを運ぶＴＣＰデータパケットは、各ＴＣＰフローで送信される。ＴＣＰデータパケットを送信する目的で、ステップＡ２０１で、ＴＣＰデータパケットの１つの肯定応答（ＡＣＫ）が受信される度に、ＴＣＰデータパケットを送信するために必要なＲＴＴが計算される。計算したＲＴＴは、第１往復時間として使用される。任意的に、ＲＦＣ６２８９で提供されるアルゴリズム（Ｊａｃｏｂｓｏｎ／Ｋａｒｅｌｓアルゴリズム）は、ＴＣＰデータパケットのＲＴＴを計算するために使用される。
【００５３】
ステップＡ２０２：第２往復時間を決定する。ここで、第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウ及び第２アルゴリズムに従い決定される輻輳ウインドウが等しいサイズを有するときに存在する往復時間であり、第１アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第１往復時間に従い決定され、第２アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第１往復時間及び目標スループットに従い決定され、目標スループットは、ＴＣＰデータパケットに対応するサービスのために得られることが期待されるスループットである。
【００５４】
留意すべきことに、サービスの特定形式は本発明の本実施形態に限定されず、サービスは、オーディオサービス、ビデオサービス、オーディオ及びビデオサービス、オンラインでウイルスをスキャンし及び除去するサービス、インスタントメッセージサービス、及びオンラインアプリケーションサービスのような、種々のアプリケーションサービスを含む。
【００５５】
サーバが端末にサービスを提供する処理において、サービスを正常に提供することが期待される場合、サーバがサービスを運ぶＴＣＰデータパケットを送信するとき、特定スループットが必要である。本発明の本実施形態では、スループットは、目標スループットとして定められる。サーバが端末にサービスを提供する処理において、ＴＣＰフローがサービスについて確立され、輻輳ウインドウがＴＣＰフローについて確立される。サービスを運ぶＴＣＰデータパケットは、輻輳ウインドウの制御下でＴＣＰフローを用いることにより送信され、サーバが提供できるスループットは、輻輳ウインドウを用いることにより決定される。したがって、ネットワークの現在ネットワーク状態においてサービスにより必要とされるスループットを可能な限り達成するために、輻輳ウインドウが調整される必要がある。同様に、サーバが端末に同時に複数のサービスを提供する場合、サーバにより端末に提供される各サービスにより別個に必要とされる目標スループットは、別個に決定される。ＴＣＰフローはサービス毎に別個に確立され、ＴＣＰフロー毎に１つの輻輳ウインドウが別個に設定され、さらに、対応する輻輳ウインドウは、サービスのために得られることが期待されるスループットを提供するために、サービス毎に別個に調整される。
【００５６】
第１アルゴリズム及び第２アルゴリズムは、本発明の本実施形態において提供される。輻輳ウインドウのサイズは、第１アルゴリズム又は第２アルゴリズムを用いることにより、及びネットワークのネットワーク状態及びサービスにより必要とされる目標スループットに従い、調整される。調整手段により得られた輻輳ウインドウは、端末が期待スループットを得ることができるよう、ＴＣＰデータパケットの送信を制御するために使用される。具体的に、ステップＡ２０２で、輻輳ウインドウの増加ステップサイズは、第１アルゴリズム又は第２アルゴリズムに従い決定され、輻輳ウインドウのサイズが調整されるようにする。
【００５７】
さらに、具体的に、輻輳ウインドウを調整するために第１アルゴリズム又は第２アルゴリズムが使用されるかは、ネットワーク状態を反映するＲＴＴに従い決定される。ステップＡ２０２で、第２往復時間が決定される。ネットワーク状態を反映するＲＴＴが第２往復時間より短い又は等しい、つまり、ネットワーク状態を反映するＲＴＴが比較的短い場合、現在ネットワーク状態が望ましく、第２アルゴリズムは、輻輳ウインドウの増加ステップサイズを決定するために使用される。第２アルゴリズムが輻輳ウインドウの増加ステップサイズを決定するために使用されるとき、増加ステップサイズは、ネットワーク状態を反映するＲＴＴ及び目標スループットの両方に従い決定される必要がある。つまり、ネットワーク状態及び目標スループットの両方が、第２アルゴリズムにおいて考慮される。通常、第２アルゴリズムに従い決定された輻輳ウインドウがＴＣＰデータパケットの送信を制御するために使用されるとき、サーバは、サーバにより必要とされる目標スループットを提供できる。ネットワーク状態を反映するＲＴＴが第２往復時間より長い、つまり、ネットワーク状態を反映するＲＴＴが比較的長い場合、現在ネットワーク状態にある程度輻輳が存在し、第１アルゴリズムは、輻輳ウインドウの増加ステップサイズを決定するために使用される。第１アルゴリズムが輻輳ウインドウの増加ステップサイズを決定するために使用されるとき、増加ステップサイズは、ネットワーク状態を反映するＲＴＴに従い決定される。つまり、ネットワーク状態は、第１アルゴリズムにおいて、より多く考慮される。通常、第２アルゴリズムに従い決定された輻輳ウインドウがＴＣＰデータパケットの送信を制御するために使用されるとき、サーバにより提供されるスループットは、サーバにより必要とされる目標スループットに達しない。
【００５８】
ステップＡ２０３：第１往復時間が第２往復時間より長い場合、第１アルゴリズムに従い決定された輻輳ウインドウを第１輻輳ウインドウとして用いる。
【００５９】
ステップＡ２０４：第１往復時間が第２往復時間より短い場合、第２アルゴリズムに従い決定された輻輳ウインドウを第１輻輳ウインドウとして用いる。
【００６０】
ステップＡ２０５：第１輻輳ウインドウを用いることにより、ＴＣＰデータパケットを送信する。
【００６１】
具体的に、ネットワークにおいて、サービスを運ぶＴＣＰデータパケットを送信する処理において、サーバがサービスを可能な限り満たすスループットを提供できるよう、輻輳ウインドウが目標スループット及び現在ネットワーク状態を反映するＲＴＴに従い現在調整される必要のある場合、ステップＡ２０１は、現在ネットワーク状態を反映するＲＴＴを計算するために、先ず実行され、計算したＲＴＴは第１往復時間として使用される。
【００６２】
現在ネットワーク状態を反映する第１往復時間が比較的長く、第１往復時間が第２往復時間より長い場合、現在ネットワーク状態にある程度の輻輳が存在することを示し、ステップＡ２０３は、第１アルゴリズムを用いることにより及び第１往復時間に従い輻輳ウインドウの増加ステップサイズを決定するために実行される。第１往復時間の検出中に、対応する輻輳ウインドウに基づき、第１アルゴリズムに従い決定された増加ステップサイズは、第１輻輳ウインドウを得るために増大される。
【００６３】
現在ネットワーク状態を反映する第１往復時間が比較的短く、第１往復時間が第２往復時間より短い又は等しい場合、現在ネットワーク状態が望ましいことを示し、ステップＡ２０４は、第２アルゴリズムを用いることにより及び第１往復時間及び目標スループットの両方に従い輻輳ウインドウの増加ステップサイズを決定するために実行される。第１往復時間の検出中に、対応する輻輳ウインドウに基づき、第２アルゴリズムに従い決定された増加ステップサイズは、第１輻輳ウインドウを得るために増大される。
【００６４】
サービスのＴＣＰフローでは、サービスのＴＣＰデータパケットの送信を制御する輻輳ウインドウの間、ステップＡ２０４又はステップＡ２０５が実行される度に、第１輻輳ウインドウがもう一度決定され、サービスに対応する輻輳ウインドウを１回更新するために第１輻輳ウインドウが使用されるようにし、第１輻輳ウインドウは、更新前の輻輳ウインドウを置き換えるために使用される。サービスのＴＣＰフローでは、第１輻輳ウインドウが送信されるべきＴＣＰデータパケットの量を制御するために使用されるように更新される。
【００６５】
留意すべきことに、サービスのＴＣＰフローでは、サービスのＴＣＰデータパケットの送信を制御するために使用される輻輳ウインドウについて、第１往復時間及び目標スループットに従い第１輻輳ウインドウの決定をトリガする、及び第１輻輳ウインドウを用いることにより現在輻輳ウインドウを更新する、時点又は条件は、本発明の本実施形態に限定されない。例えば、第１輻輳ウインドウは、第１往復時間及び目標スループットに従いリアルタイムに決定されて良く、第１輻輳ウインドウは、サービスのＴＣＰフローの現在輻輳ウインドウを更新するために使用される。別の例では、第１輻輳ウインドウは、第１往復時間及び目標スループットに従い特定時間の間隔で決定されて良く、第１輻輳ウインドウは、現在輻輳ウインドウを更新するために使用される。別の例では、ＴＣＰデータパケットでパケット損失が生じ、輻輳ウインドウが第２輻輳ウインドウに減少された後、第１往復における第２輻輳ウインドウを用いることによりＴＣＰデータパケットの送信を制御する肯定応答（ＡＣＫ）が正常に受信された場合、第１輻輳ウインドウは、第１往復時間及び目標スループットに従い決定され、第１輻輳ウインドウは、現在輻輳ウインドウを更新するために使用される。
【００６６】
したがって、本発明の本実施形態において、第１往復時間により反映される現在ネットワーク状態では、可能な限り目標スループットを満たす第１輻輳ウインドウは、サービスのために得られることが期待される目標スループットに従う調整により得られ、第１輻輳ウインドウは、ＴＣＰデータパケットの送信を制御するために使用され、サービスのために得られることが期待される目標スループットが可能な限り提供され得るようにする。
【００６７】
以下は、本発明の本実施形態で提供される方法を、図１Ａのサーバ１０１に基づき、及び鯖により端末に提供されるサービスのＴＣＰフローの中でパケット損失が生じた後に、本発明の本実施形態で提供される方法を用いることにより輻輳ウインドウが調整される一例を用いることにより、詳述する。
【００６８】
先ず、ネットワーク内でサービスのＴＣＰデータパケットを送信するために要求される目標スループットが得られ、目標スループットはＴＣＰプロトコルスタックに追加される。
【００６９】
具体的に、サーバが端末にサービスを正常に提供する場合、サーバによりサービスを運ぶＴＣＰデータパケットを送信するために、特定スループットが必要とされる。サービスにより必要とされるスループットは、目標スループットとして定められる。
【００７０】
サーバが端末にサービスを提供するとき、サービスのためにＴＣＰフローが確立され、サーバは、ＴＣＰフローの中で、サービスを運ぶＴＣＰデータパケットを送信する。さらに、サーバは端末にサービスを提供する処理において、１つの輻輳ウインドウが、ＴＣＰフローを更に確立する。輻輳ウインドウは、ＴＣＰフローの中でサービスを運ぶＴＣＰデータパケットの送信を制御するために使用される。送信可能なＴＣＰデータパケットの最大量は、輻輳ウインドウにより決定される。したがって、サービスのためにサーバにより提供されるスループットは、輻輳ウインドウのサイズを調整することにより調整されて良い。
【００７１】
パラメータ、つまり目標スループットは、既存のＴＣＰプロトコルスタックでは設けられない。したがって、目標スループットに従い輻輳ウインドウを調整するために、サーバのＴＣＰプロトコルスタックは、パラメータ、つまり目標スループットを追加することにより変更される必要がある。図１Ａのサーバ１０１は、サーバ１０１のＴＣＰプロトコルスタックの変更をサポートする。さらに、サーバが端末にサービスを提供する処理において、図１Ｂに示すように、サーバは、端末へサービスを運ぶＴＣＰデータパケットを送信するためにサーバのエージェントとして第１エージェント装置を用いる代わりに、サービスを運ぶＴＣＰデータパケットを端末へ直接送信する。このように、サーバが端末にのみサービスを提供するとき、サーバは、ＴＣＰプロトコルスタックの中の目標スループット及び現在ネットワーク状態を反映する第１往復時間に従い、輻輳ウインドウを調整する。
【００７２】
任意で、図１Ａのサーバ１０１のＴＣＰプロトコルスタックに目標スループットを追加する任意的実装方法では、パラメータ、つまり目標スループットパラメータを追加することにより、ソケットが変更される。サーバが、端末のために、サーバにより必要とされる目標スループットを提供した後に、決定された目標スループットが、目標スループットパラメータの値を割り当てるために使用され、目標スループットパラメータ及び目標スループットパラメータに対応する割り当てられた値（つまり、サービスのために得られることが期待される目標スループット）は、ソケットを用いることにより、サーバのＴＣＰプロトコルスタックへ送信され、目標スループットパラメータ及び目標スループットパラメータに対応する割り当てられた値は、次に、ＴＣＰプロトコルスタックに追加される。
【００７３】
例えば、目標スループットパラメータ「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」が、ソケット関数「ｓｅｔｓｏｃｋｏｐｔ（）」に追加される。サービスを得るために期待される目標スループットが、端末にサービスを提供するために、サーバにより必要とされるスループットに従い決定された後決定された目標スループットは、「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の値を割り当てるために使用される。「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」及び「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の割り当てられた値は、「ｓｅｔｓｏｃｋｏｐｔ（）」を使用することにより、サーバのＴＣＰプロトコルスタックへ送信され、次に、目標スループットパラメータ「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」及び目標スループットパラメータ「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の割り当てられた値は、ＴＣＰプロトコルスタックに追加される。
【００７４】
続いて、ネットワーク内でＴＣＰデータパケットを送信する処理において、ＴＣＰデータパケットの損失が生じた場合、図３に示すように、ステップＢ３０１、ステップＢ３０２、ステップＢ３０３、及びステップＢ３０４が続けて実行される。
【００７５】
ステップＢ３０１：ネットワーク内でＴＣＰデータパケットを送信する処理において、ＴＣＰデータパケットが損失した場合、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウを、第２輻輳ウインドウに調整し、ネットワーク内でＴＣＰデータパケットが第２輻輳ウインドウを用いることにより送信されるよう制御する。
【００７６】
具体的に、送信の処理において、サーバにより端末に提供されるサービスのＴＣＰフローでは、サービスを運ぶＴＣＰデータパケットは、端末が正常に連続してＴＣＰデータパケットを受信すると、端末は、サーバに、ＴＣＰデータパケットに対応する肯定応答（Acknowledgement、ＡＣＫ）をフィードバックする。ＴＣＰデータパケットの肯定応答を受信した後に、サーバは、次に、ＴＣＰデータパケットをキャッシュから削除し、キャッシュに、別の送信されるべきＴＣＰデータパケットを追加する。本発明の本実施形態では、輻輳ウインドウは、キャッシュに基づき更に設定され、輻輳ウインドウは、輻輳制御を実行するために使用される。送信する処理において、サービスのＴＣＰフロー、輻輳ウインドウの中のＴＣＰデータパケットで、輻輳ウインドウの中のＴＣＰデータパケットが損失した場合、ＴＣＰフローの輻輳ウインドウは減少され、輻輳ウインドウは第２輻輳ウインドウに調整される。第２輻輳ウインドウは、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウより小さい。第２輻輳ウインドウを設定するために使用される特定アルゴリズムは、限定されず、例えば、既存のＲｅｎｏアルゴリズム又はＣＵＢＩＣアルゴリズムである。さらに、サーバが、輻輳ウインドウの中のＴＣＰデータパケットが損失したことをどのように決定するかは限定されず、ＴＣＰデータパケットの損失がトリガされるシナリオも限定されない。例えば、ＴＣＰデータパケットを送信した後に、サーバは、依然として、事前設定時間の後に端末からのＴＣＰデータパケットの肯定応答を受信しない。別の例では、サーバがＴＣＰデータパケットを送信した後に、ＴＣＰデータパケットは、ネットワーク内でＴＣＰデータパケットの送信中に損失される。ここで、ＴＣＰデータパケットは、例えば、無線ネットワークにおけるＴＣＰデータパケットの送信中にランダムに損失されるＴＣＰデータパケットである。別の例では、サーバがＴＣＰデータパケットを送信した後に、端末は、ＴＣＰデータパケットの肯定応答を時間内にフィードバックしない。別の例では、サーバは、複数のＴＣＰデータパケットを端末へ連続的に送信し、ＴＣＰデータパケットはランダムな時間順で端末に到達し、端末は、最後に配列される３複数のＴＣＰデータパケット（例えば、最後に配列される３個のＴＣＰデータパケット）を受信しているが、一番前に配列されるＴＣＰデータパケットを依然として受信しない。この場合、最後に配列される各ＴＣＰデータパケットを受信する度に、端末は、サーバへ、一番前に配列されるＴＣＰデータパケットを要求する肯定応答（ＡＣＫ）を送信する。サーバが複数回（例えば、３回）肯定応答を続けて受信した後、サーバは、一番前に配列されるＴＣＰデータパケットが損失したことを決定する。
【００７７】
ＴＣＰデータパケットの損失が生じた後に、ステップＢ３０１で、ＴＣＰデータパケットが損失したときに存在する輻輳ウインドウは、第２輻輳ウインドウに調整され、第２輻輳ウインドウは、ＴＣＰデータパケットの送信を制御するために使用される。ネットワーク内でサーバにより送信可能なＴＣＰデータパケットの最大量は、第２輻輳ウインドウにより決定される。
【００７８】
留意すべきことに、ネットワーク状態が連続的に劣化する（例えば、ネットワーク帯域幅が連続的に減少する）、又はＴＣＰデータパケットの連続損失を引き起こす問題が端末内に生じる場合、ステップＢ３０１は、複数回続けて実行されて良い。もちろん、ネットワーク状態が変化しない又は最適であり（例えば、ネットワーク帯域幅が不変のままである又は増大し）、端末内に問題が生じない場合、ステップＢ３０２が実行される。
【００７９】
ステップＢ３０２：第２輻輳ウインドウを用いることにより送信されるＴＣＰデータパケットの肯定応答が受信される場合、第２輻輳ウインドウに対応する第１往復時間を決定する。
【００８０】
留意すべきことに、「第１輻輳ウインドウ」の「第１」、及び「第２輻輳ウインドウ」の「第２」は、両方とも、互いの間を区別するためにのみ使用される指示子である。
【００８１】
具体的に、ステップＢ３０１で、ＴＣＰデータパケットが損失するときに存在するＴＣＰの輻輳ウインドウが、第２輻輳ウインドウに調整された後、サーバは、第２輻輳ウインドウを用いることによりサービスのＴＣＰフローにおいて、サービスのＴＣＰデータパケットの端末への送信を制御する。サーバが、第２輻輳ウインドウでの端末へのＴＣＰデータパケットの送信を、第１ラウンドで完了し、第１ラウンドで送信された全てのＴＣＰデータパケットの肯定応答を受信した場合、サーバは、第１ラウンドの第２輻輳ウインドウの中の最後のＴＣＰデータパケットのＲＴＴを計算し、計算したＲＴＴを第１往復時間として定める。
【００８２】
例えば、サーバが、第１ラウンドで端末へ第２輻輳ウインドウ内のＴＣＰデータパケットの送信を完了し、第１ラウンドで送信した全部のＴＣＰデータパケットの肯定応答を受信した後、ＲＦＣ６２８９で提供されるアルゴリズム（Ｊａｃｏｂｓｏｎ／Ｋａｒｅｌアルゴリズム）は、最後に受信された肯定応答（第１ラウンドで送信した全部のＴＣＰデータパケットの肯定応答のうち、最後に受信した肯定応答）のＲＴＴを計算するために使用され、計算されたＲＴＴは第１往復時間として使用される。
【００８３】
ステップＢ３０３：目標スループット及び第１往復時間に基づき、及び第１アルゴリズム又は第２アルゴリズムに従い、第１輻輳ウインドウを決定する。
【００８４】
具体的に、ネットワークが軽い負荷を有しないが、特定負荷を有するとき、第１往復時間は、反映される現在ネットワーク状態（例えば、ネットワーク内でＴＣＰデータパケットを転送するネットワーク経路長）に強く相関する。より良好なネットワーク状態は、より短い第１往復時間を示す。極端な場合には、ネットワークが深刻な過負荷であるとき、第１往復時間は、ネットワークの再送タイムアウト（Retransmission  TimeOut、略してＲＴＯ）メカニズムに等しく、ネットワークは深刻な輻輳を有する。
【００８５】
ステップＢ３０２において、第１ラウンドで第２輻輳ウインドウ内でＴＣＰデータパケットの肯定応答が受信される場合、これは、ネットワークがより多くのＴＣＰデータパケットの送信を許容できることを示す。この場合、第２輻輳ウインドウは、適正に増加されて良く、第２輻輳ウインドウは、第１輻輳ウインドウまで増加される。
【００８６】
本発明の本実施形態では、第１アルゴリズム又は第２アルゴリズムは、第１輻輳ウインドウを決定するために使用される。特に、第２アルゴリズムでは、パラメータ、つまり目標スループットが導入され、並びに、パラメータ、つまり第１往復時間が同時に導入される。第１往復時間に従い決定される現在ネットワーク状態は、比較的望ましい。したがって、第２アルゴリズムに従い決定される第１輻輳ウインドウについて、第１輻輳ウインドウは、ＴＣＰデータパケットの送信を制御するために使用されて、サーバがサービスを運ぶＴＣＰデータパケットを送信するとき、端末が期待目標スループットを得られるようにする。さらに、第１アルゴリズムに従い決定された第１輻輳ウインドウがＴＣＰデータパケットの送信を制御するために使用されるとき、サーバがサービスを提供するときに存在するスループットも、現在ネットワーク状態において可能な限り向上され得、端末が現在ネットワーク状態において最大スループットを得られるようにする。
【００８７】
ステップＢ３０４：第２輻輳ウインドウを第１輻輳ウインドウに調整し、ＴＣＰデータパケットが第１輻輳ウインドウを用いることによりネットワーク内で送信されるよう制御する。
【００８８】
具体的に、ステップＢ３０３において第１輻輳ウインドウが第２輻輳ウインドウを置き換えるために使用された後、ステップＢ３０４で、サーバは、第１輻輳ウインドウを用いることにより、サービスを運び及び端末へ送信されるＴＣＰデータパケットを制御する。つまり、ある時点で、サーバは、端末へ、第１輻輳ウインドウに含まれる全部のＴＣＰデータパケット（サービスを運ぶＴＣＰデータパケット）を殆ど送信する。
【００８９】
本実施形態では、サービスを運ぶＴＣＰデータパケットを送信するためにサーバにより必要とされる目標スループットが決定され、目標スループットは、ＴＣＰプロトコルスタックに追加される。さらに、サーバが端末へＴＣＰデータパケットを送信するＴＣＰフローで、ＴＣＰデータパケットの損失が生じる場合、ＴＣＰの輻輳ウインドウは、第２輻輳ウインドウに調整される。第１ラウンドで第２輻輳ウインドウ内のＴＣＰデータパケットが端末への送信に成功した場合（つまり、第１ラウンドで第２輻輳ウインドウ内のＴＣＰデータパケットの肯定応答が端末から受信される）、第１ラウンドにおける第２輻輳ウインドウに対応する第１往復時間が決定される。したがって、ステップＢ３０３で、ネットワーク状態（第１ラウンドにおける第２輻輳ウインドウ内のＴＣＰデータパケットを送信するネットワーク状態）は、第１往復時間に従い決定でき、目標スループットに可能な限り適合する第１輻輳ウインドウが、ネットワーク状態において決定される。したがって、ネットワーク状態が第１往復時間に従い決定された後、ステップＢ３０４で、第２輻輳ウインドウは、第２輻輳ウインドウが第１輻輳ウインドウまで増加されるまで既存のアルゴリズム（例えば、Ｒｅｎｏアルゴリズム及びＣＵＢＩＣアルゴリズム）に従い第２輻輳ウインドウを徐々に増加する代わりに、目標スループットに可能な限り適合する第１輻輳ウインドウに一気に調整され得る。
【００９０】
留意すべきことに、本方法は、特に、大きなネットワーク帯域幅の場合に適切である。ネットワーク帯域幅が増大するにつれ、既存のアルゴリズムと比べて、本方法は、サービスにより良好に適合でき、ネットワーク帯域幅利用は更に向上される。詳細な比較は次の通りである。
【００９１】
Ｒｅｎｏアルゴリズム及びＣＵＢＩＣアルゴリズムのような既存のウインドウ調整アルゴリズムでは、ＴＣＰデータパケットの損失が生じると、ＴＣＰの輻輳ウインドウは大幅に減少される。例えば、Ｒｅｎｏアルゴリズムでは、１個のＴＣＰデータパケットが損失すると、輻輳ウインドウは、半分に減少される。別の例では、ＣＵＢＩＣアルゴリズムでは、１個のＴＣＰデータパケットが損失すると、輻輳ウインドウは、７１７／１０２４に減少される（約３分の１に減少される）。しかしながら、輻輳ウインドウが減少された後、サーバが既存のウインドウ調整アルゴリズムを用いることにより輻輳ウインドウを調整するとき、ＴＣＰデータパケットは、ラウンド毎に試行により送信される必要がある。各ラウンドのＴＣＰデータパケットが送信された後、該ラウンドで送信されたＴＣＰデータパケットも損失した場合、輻輳ウインドウはもう一度、大幅に減少される。端末によりフィードバックされた肯定応答が成功裏に受信される場合、輻輳ウインドウは１回増加される。しかしながら、端末によりフィードバックされた肯定応答が各ラウンドで成功裏に受信された後、サービスのために得られることが期待される目標スループットは既存のアルゴリズムでは考慮されず、代わりに、輻輳ウインドウが、アルゴリズムに従いラウンド毎に徐々に増加され、現在ネットワーク状態においてサービスのために提供され得る最大輻輳ウインドウ（第１輻輳ウインドウ）が、次第に到達される。
【００９２】
相応して、サービスのために得られることが期待される目標スループットは、予め決定される。ＴＣＰデータパケットの損失が、サーバがＴＣＰデータパケットを端末へ送信する処理の中で生じ且つＴＣＰの輻輳ウインドウが第２輻輳ウインドウに調整された場合でも、第１ラウンドで第２輻輳ウインドウ内のＴＣＰデータパケットが端末への送信に成功すれば、第１ラウンドで第２輻輳ウインドウに対応する第１往復時間が決定され、ネットワーク状態が第１往復時間に従い決定され、そして、目標スループットに可能な限り適合する第１輻輳ウインドウがネットワーク状態において決定される。輻輳ウインドウは、第２輻輳ウインドウから、サービスに対応する目標スループットを可能な限り満たす第１輻輳ウインドウへ一気に増加される。第１ラウンドにおける第２輻輳ウインドウ内のＴＣＰデータパケットを送信するネットワーク状態が望ましい場合、ネットワーク帯域幅が目標スループットを満たすとき、第１輻輳ウインドウを用いることによるＴＣＰデータパケットの送信は、目標スループットを満たすことができる。ネットワーク状態が望ましくない場合でも、第１往復時間及び目標スループットに従い決定される第１輻輳ウインドウは、ネットワーク状態において最大までサービスのビットレートを満たす輻輳ウインドウでもある。
【００９３】
任意的に、本方法は、特に、大きなネットワーク帯域幅を有する無線ネットワークに適する。有線ネットワークと比べて、無線ネットワークにおいてランダムなパケット損失が生じる可能性は比較的大きい。ランダムなパケット損失が生じる度に、輻輳ウインドウは、既存のアルゴリズムにおいて減少される。しかしながら、輻輳ウインドウが減少された後に、その都度、輻輳ウインドウはゆっくりと且つ徐々に第１輻輳ウインドウまで増加され得るだけである。したがって、端末にサービスを正常に提供できる輻輳ウインドウまで回復するための時間遅延は比較的長く、サーバにより端末に正常に提供されるサービスは悪影響を受ける。これに対して、無線ネットワークにおいてランダムなパケット損失が生じる場合でも、ランダムなパケット損失が生じた後に、その都度、本発明の本実施形態ではサービスをサポートするために、パケット損失が生じるときに存在する輻輳ウインドウは、２つのステップを用いることによって第１輻輳ウインドウに調整されるだけである。２つのステップは、ランダムなパケット損失が生じるときに存在する輻輳ウインドウを第２輻輳ウインドウに調整するステップ、及び第２輻輳ウインドウを第１輻輳ウインドウに調整するステップ、であり、ネットワーク帯域幅が効率的に利用され得るようにし、及びサービスが可能な限り直ぐにサポートされるようにする。
【００９４】
図４は、図２に示したＴＣＰデータパケットを送信するＴＣＰに基づく方法に基づく任意的動作手順を示す。しかしながら、説明を容易にするために、図４は、本実施形態に関連する部分のみを示す。
【００９５】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、ネットワーク内でＴＣＰデータパケットを送信する処理においてパケット損失が生じるとき、輻輳ウインドウの調整のために、任意的詳細が提供される。方法は、ステップＣ４０１及びステップＣ４０２を更に含む。
【００９６】
ステップＣ４０１：ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整する。第２輻輳ウインドウは、パケット損失がＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、ＴＣＰデータパケットを伝送する輻輳ウインドウを第２輻輳ウインドウに調整する減少ステップサイズは、第３往復時間に負に相関する。
【００９７】
具体的に、ＴＣＰデータパケットの損失を認識する方法については、前述のステップＢ３０１の対応する記載を参照する。例えば、サーバは、複数のＴＣＰデータパケットを端末へ連続的に送信し、ＴＣＰデータパケットはランダムな時間順で端末に到達し、端末は、最後にき配列される複数のＴＣＰデータパケット（例えば、最後に配列される３個のＴＣＰデータパケット）を受信しているが、最初に配列されるＴＣＰデータパケットを依然として受信しない。この場合、最後に配列される各ＴＣＰデータパケットを受信する度に、端末は、サーバへ、一番前に配列されるＴＣＰデータパケットを要求する肯定応答（ＡＣＫ）を送信する。サーバが複数回（例えば、３回）肯定応答を続けて受信した後、サーバは、一番前に配列されるＴＣＰデータパケットが損失したことを決定する。留意すべきことに、本実施形態では、サーバがＴＣＰデータパケットを送信した後、（前述の事前設定時間に属する）ＲＴＯの後にＴＣＰデータパケットの肯定応答が依然として端末から受信されない場合、ＴＣＰデータパケットは損失したことが決定される。
【００９８】
本実施形態では、ＴＣＰデータパケットの損失が生じた後、ＴＣＰデータパケットが損失したときに存在するＲＴＴが検出され、ＴＣＰデータパケットが損失したときに検出されたＲＴＴが第３往復時間として使用される。したがって、第３往復時間は、ＴＣＰデータパケットが損失したときに存在するネットワーク状態を反映する。留意すべきことに、ＴＣＰデータパケットがランダムに損失する場合、検出される第３往復時間は、ネットワークが軽い負荷を有するときに存在するＲＴＴに等しい。
【００９９】
ステップＣ４０１で、送信したデータパケットが損失すると、第２輻輳ウインドウは、第３往復時間に基づき及び第３アルゴリズムに従い決定される。留意すべきことに、第３アルゴリズムで決定される第２輻輳ウインドウは、第３往復時間に負に相関する。具体的に、第３往復時間は、第３アルゴリズムの入力として使用される。第３往復時間が増加するにつれ、第３アルゴリズムに従い決定される第２輻輳ウインドウは減少する。第３アルゴリズムが前述の機能を有することに基づき、特定の実装形式又は第３アルゴリズムのステップのいずれも、本実施形態において限定されない。例えば、ＴＣＰデータパケットの損失が生じるときに輻輳ウインドウが減少される必要のある大きさは、第３アルゴリズムを設計するために、サービスの要件に従い決定されて良い。別の例では、既存のアルゴリズム（例えば、Ｒｅｎｏアルゴリズム又はＣＵＢＩＣアルゴリズム）が第３アルゴリズムとして使用されて良い。
【０１００】
任意的に、ステップＣ４０１で、第３アルゴリズムに従う第２輻輳ウインドウに、ＴＣＰデータパケットを送信する輻輳ウインドウを調整するステップは、具体的に以下を含む：
第３往復時間が遅延間隔の下限に等しい場合、パケット損失がＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを第２輻輳ウインドウとして用いるステップ、又は、第３往復時間が遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを第２輻輳ウインドウとして用いるステップ、であって、遅延間隔の上限は、ネットワーク内のＴＣＰの再送タイムアウト（Retransmission  Time  Out、略してＲＴＯ）であり、遅延間隔の下限は、ネットワークが軽い負荷を有するときに存在する往復時間である。
【０１０１】
具体的に、サービスを運ぶＴＣＰフローでは、１ＲＴＯがＴＣＰプロトコルのＴＣＰフローについて定められる。任意的に、ＲＴＯは手動で変更されて良く、又は、ＲＴＯは現在ネットワークの実験データに従い設定される。本実施形態では、ＲＴＯは、遅延間隔の上側境界として決定される。サーバが端末へサービスを運ぶＴＣＰデータパケットを送信した後、サーバが特定時間の後に端末からＴＣＰデータパケットの肯定応答を未だ受信しない場合も、パケット損失が生じたことが決定される。
【０１０２】
さらに、ネットワークが軽負荷を有するときに存在する往復時間は、ネットワークがネットワーク輻輳を有しない（つまり、軽いネットワーク負荷である）場合に、サーバがＴＣＰデータパケットを端末へ送信した後にＴＣＰデータパケットの肯定応答が端末から受信されるときに計算される、サービスを運ぶＴＣＰデータパケットのＲＴＴを表す。任意的に、特定の実装では、ネットワークが軽いネットワーク負荷であるとき、サーバは、端末へ、サービスを運ぶＴＣＰデータパケットを送信し、各ＴＣＰデータパケットのＲＴＴを検出し、検出したＲＴＴの最小ＲＴＴを選択する。本実施形態では、遅延間隔の下限は、検出したＲＴＴの選択された最小ＲＴＴとして決定される。
【０１０３】
ＴＣＰデータパケットの損失は、ＴＣＰの輻輳ウインドウを用いることによりサーバがサービスを運ぶＴＣＰデータパケットの端末への送信を制御する処理の中で生じる。ＴＣＰデータパケットの損失が生じるときに存在する第３往復時間が遅延間隔の下限に等しい場合、これは、ネットワーク状態が望ましいこと、及びＴＣＰデータパケットの損失が時折のみ（例えば、ランダムなパケット損失）であることを示す。この場合、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウは減少されない。つまり、ＴＣＰデータパケットが損失するときに存在する輻輳ウインドウは第２輻輳ウインドウとして使用され、損失したＴＣＰデータパケットが再び送信される必要があるだけである。このように、ネットワーク状態が望ましいとき、パケット損失が時折生じるだけである場合（例えば、ランダムなパケット損失）、輻輳ウインドウは減少される必要がない。ＴＣＰデータパケットの損失が検出されると輻輳ウインドウが大幅に減少される従来技術と比べて、本実施形態では、ネットワーク帯域幅はより効率的に利用でき、サービスは可能な限りサポートされる。
【０１０４】
ＴＣＰデータパケットの損失は、ＴＣＰの輻輳ウインドウを用いることによりサーバがサービスを運ぶＴＣＰデータパケットの端末への送信を制御する処理の中で生じる。ＴＣＰデータパケットの損失が生じるときに存在する第３往復時間が遅延間隔の上限に等しいこと、つまり、第３往復時間がＲＴＯに等しいことが検出された場合、これは、ネットワークが深刻な輻輳を有することを示す。この場合、輻輳ウインドウは減少される必要がある。ＴＣＰデータパケットが損失したときに存在する輻輳ウインドウは、事前設定ウインドウまで減少される。留意すべきことに、第３往復時間がＲＴＯに達すると、ＴＣＰデータパケットが損失したことが決定され、ＴＣＰデータパケットの第３往復時間の検出が終了する。したがって、第３往復時間は、最大でＲＴＯになり得る。
【０１０５】
任意的に、第３往復時間が遅延間隔の下限と上限との間にある場合、第３アルゴリズムに従い、第２輻輳ウインドウが事前設定輻輳ウインドウより大きいく、ＴＣＰデータパケットが損失したときに存在する輻輳ウインドウより小さいことが決定される。第３往復時間が増加するにつれ、第３アルゴリズムに従い決定される第２輻輳ウインドウは減少する。
【０１０６】
ステップＣ４０２：第２輻輳ウインドウを用いることにより、ＴＣＰデータパケットを送信する。
【０１０７】
具体的に、サービスのＴＣＰフローにおいて、ＴＣＰデータパケットの損失が生じた場合、第２輻輳ウインドウがステップＣ４０１で決定され、ステップＣ４０２で、第２輻輳ウインドウは、ＴＣＰデータパケットが損失したときに存在する輻輳ウインドウを置き換えるために使用されて、輻輳ウインドウの更新及び置換が実行され、次に第２輻輳ウインドウがサービスのＴＣＰデータパケットの送信を制御するために使用されるようにする。
【０１０８】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第２アルゴリズムの任意的詳細を更に提供するために、第２アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、目標スループットに正に相関し、第１往復時間に負に相関し、第１アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、第１往復時間に負に相関する。
【０１０９】
具体的に、ネットワーク状態を反映する第１往復時間が第２往復時間より短い又は等しい場合、これは、ネットワーク輻輳がネットワーク内で生じないこと、及びＴＣＰデータパケットが損失されるときに存在するネットワーク帯域幅が目標スループットを満たすことができること、並びに、輻輳ウインドウが第２アルゴリズムに従い増加されて良いことを示す。具体的に、第１輻輳ウインドウが第２アルゴリズムに従い決定されるとき、目標スループットが増大するにつれ、第２アルゴリズムに従い決定される第１輻輳ウインドウも増大する。第１往復時間が増加するにつれ、第２アルゴリズムに従い決定される第１輻輳ウインドウは減少する。任意的に、第１往復時間が第２往復時間より短い又は等しい場合、これは、ネットワーク輻輳が生じないこと、第１輻輳ウインドウが第２アルゴリズムに従い決定されるときに存在する目標スループットが第１往復時間より大きな重みを有することを示す。サーバが、決定した第１輻輳ウインドウを用いることにより、サービスを運ぶＴＣＰデータパケットを端末へ送信するとき、目標スループットが達成され得る。したがって、サービスのＴＣＰデータパケットをパースすることにより端末により得られるビットレートは、サービスにより必要とされるビットレートを満たし、サーバは、端末に正常にサービスを提供できる。
【０１１０】
ネットワーク状態を反映する第１往復時間が第２往復時間より長い場合、これは、ＴＣＰデータパケットが損失するときに存在するネットワーク帯域幅が、もはや目標スループットを満たさないこと、及びネットワーク輻輳がネットワーク内で生じることを示す。この場合、第１輻輳ウインドウは、第１アルゴリズムを用いることにより決定される。第１輻輳ウインドウが第１アルゴリズムの第１往復時間に従い決定されるとき、第１往復時間が増大するにつれ、第１アルゴリズムに従い決定される第１輻輳ウインドウは減少する。サーバが、第１アルゴリズムに従い決定される第１輻輳ウインドウを用いることにより、端末へ送信されるＴＣＰデータパケットを制御するとき、第１アルゴリズムに従い決定される第１輻輳ウインドウにより提供されるスループットは、目標スループットに到達できず、目標スループットからの差分が最小化できるだけである。したがって、ＴＣＰデータパケットをパースすることにより端末により得られる、サービスのビットレートは、サーバにより必要とされるビットレートを満たすことができない。しかしながら、サービスは、現在ネットワーク状態における最大までサポートでき、目標スループットからの差分は縮小され、サーバは、端末にサービスを提供するために可能な限りサポートされる。
【０１１１】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第２アルゴリズムの任意的詳細を更に提供するために、第１アルゴリズムに従い決定される輻輳ウインドウを第１輻輳ウインドウとして使用するステップは、具体的に以下を含む：
第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、高速回復値を輻輳ウインドウの増加ステップサイズとして用いるて、第１輻輳ウインドウを得るステップであって、高速回復値はスロースタートのものと同じ大きさの程度を有する、ステップと、
第１往復時間がネットワークにおけるＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、最大セグメントサイズ（Maximum  Segment  Size、略してＭＳＳ）を、輻輳ウインドウの増加ステップサイズとして用いて、第１輻輳ウインドウを得るステップと、
第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、輻輳ウインドウの増加ステップサイズの値を、１ＭＳＳと高速回復値との間であり且つ第１往復時間と負に相関するよう設定して、第１輻輳ウインドウを得るステップ。
【０１１２】
具体的に、スロースタート閾（slow  start  threshold、略してｓｓｔｈｒｅｓｈ）は、輻輳ウインドウについて事前設定される。第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、これは、ネットワーク状態が望ましいことを示す。この場合、第１往復時間の輻輳ウインドウがスロースタート閾より短いことが検出された場合、輻輳ウインドウの増加ステップサイズが第１アルゴリズムに従い決定されるとき、第１アルゴリズムに従い決定される高速回復値（第１アルゴリズムに従い決定される増加ステップサイズ）、及びスロースタートアルゴリズムに従い決定される増加ステップサイズは、同程度の大きさに属し、第１往復時間の検出された輻輳ウインドウは、第１輻輳ウインドウを得るために高速回復値を増大するために使用される。留意すべきことに、本実施形態では、スロースタート又は対応するスロースタートアルゴリズムのいずれも限定されず、既存のスロースタート及び対応するスロースタートアルゴリズムが実装のために使用できる。
【０１１３】
検出された１往復時間がＲＴＯに達した場合、これは、第１往復時間により反映される現在ネットワーク状態において、深刻な輻輳が生じていることを示す。この場合、第１アルゴリズムでは、輻輳ウインドウの増加ステップサイズの値は、１ＭＳＳである。このような場合には、ラウンドの輻輳ウインドウのＴＣＰデータパケットが送信に成功した場合でも、現在輻輳ウインドウは、１ＭＳＳだけ増大されて、第１輻輳ウインドウを得、及び第１輻輳ウインドウは、現在輻輳ウインドウを更新し及び置換するために使用される。
【０１１４】
検出された第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内にある場合、第１アルゴリズムでは、相応して、輻輳ウインドウの増加ステップサイズの値は、１ＭＳＳと高速回復値との間になるよう設定される。しかしながら、第１アルゴリズムに従い決定される増加ステップサイズは、第１往復時間に負に相関する。このような場合、ラウンドの輻輳ウインドウのＴＣＰデータパケットが送信に成功した場合でも、増加ステップサイズは、現在輻輳ウインドウに対して増加されて、第１輻輳ウインドウを得る。
【０１１５】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第２アルゴリズムの任意的詳細を更に提供するために、第２アルゴリズムに従い決定される輻輳ウインドウを第１輻輳ウインドウとして使用するステップは、具体的に以下を含む：
目標スループット及び第１往復時間に従い目標ウインドウを計算し、目標ウインドウとネットワーク内のＴＣＰの現在輻輳ウインドウとの間の差分を、輻輳ウインドウの増加ステップサイズの値として用いて、第１輻輳ウインドウを決定するステップ。
【０１１６】
具体的に、第１往復時間が第２往復時間より短い又は等しい場合、これは、第１往復時間により反映されるネットワーク状態が望ましいこと、ネットワーク帯域幅は目標スループットより大きい又は等しいこと、並びに、輻輳ウインドウは、サービスのために提供されるスループットを向上するために増大されて良いことを示す。現在輻輳ウインドウを現在ネットワーク状態において目標スループットを提供できる目標ウインドウまで一気に増大するために、輻輳ウインドウの増加ステップサイズの値は、目標ウインドウとネットワーク内のＴＣＰの現在輻輳ウインドウとの間の差分に設定される。このように、第１往復時間の検出中に存在する輻輳ウインドウを増加ステップサイズだけ増加することにより得られる第１輻輳ウインドウは、目標ウインドウにまさに等しい。したがって、サービスの目標スループットを可能な限り満たす目標ウインドウは、ＴＣＰデータパケットの送信を制御するために現在ネットワーク状態において直接に使用でき、それにより、サービスを可能な限り提供する。
【０１１７】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的詳細を更に提供するために、目標スループットは、ＴＣＰデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い決定される。
【０１１８】
具体的に、図１Ｂが一例として用いられる。サーバが端末にサービスを提供する処理において、サーバは、パースすることにより、端末に各サービスを提供するためにサーバにより別個に必要とされるビットレートを得ることができ、及び、端末に各サービスを提供するためにサーバにより別個に必要とされる目標スループットは、パースすることにより得られるビットレートに従い計算される。パージングの具体的実装方法は、本発明の本実施形態に限定されない。例えば、各サービスは、通常、対応する標準ビットレートを有し、サービスを運ぶＴＣＰデータパケットを送信するために要求される目標スループットは、ビットレートに従い相応して決定され、サービスに対応する目標スループットは、サービスのビットレート値より大きい。このように、サーバが目標スループットを用いることにより端末にサービスを提供するとき、ＴＣＰデータパケットをパースすることにより端末により得られるビットレートは、サービスにより必要とされるビットレートを満たす。つまり、パースすることにより端末により得られる、サービスのビットレートは、サービスに対応する標準ビットレートより大きい又は等しい。
【０１１９】
任意的に、ＴＣＰデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い目標スループットを決定するアルゴリズムは、目標スループットが、サービスのビットレートと拡張係数との積に等しく、拡張係数は１より大きい。
【０１２０】
図５は、目標スループットを更新する動作手順を示す。しかしながら、説明を容易にするために、図５は、本実施形態に関連する部分のみを示す。
【０１２１】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的詳細は、現在ネットワーク状態に従い目標スループットを更新する観点から更に提供される。図５を参照すると、方法は、ステップＤ５０１、ステップＤ５０２、及びステップＤ５０３を更に含む。
【０１２２】
ステップＤ５０１：ネットワーク内でＴＣＰデータパケットを送信する実際スループットを検出する。
【０１２３】
ステップＤ５０２：実際スループットの目標スループットに対する比が第１閾より大きく、且つネットワーク内でＴＣＰデータパケットを送信する第４往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、目標スループットを増大する。
【０１２４】
ステップＤ５０３：実際スループットの目標スループットに対する比が第３閾より小さく、且つ第４往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、目標スループットを減少する。
【０１２５】
留意すべきことに、第３閾は第１閾より小さく、第２閾は第４閾より小さい。
【０１２６】
具体的には、ネットワーク内でサービスのＴＣＰデータパケットを送信する処理において、サービスに対応するＴＣＰフローの輻輳ウインドウは、目標スループットに従い調整されて良く、調整された輻輳ウインドウがサービスのＴＣＰデータパケットを送信するために使用されるようにし、サービスにより必要とされる目標スループットが可能な限り満たされるようにする。しかしながら、前述の実施形態では、サービスのビットレートは、目標スループットを決定する間に導入される単なるパラメータであり、ネットワーク状態の因子は考慮されない。本実施形態では、目標スループットの決定中に、サービスのビットレート及び現在ネットワーク状態の両方が考慮される。
【０１２７】
具体的に、ネットワーク内でＴＣＰデータパケットを送信する処理において、ＴＣＰデータパケットを送信する現在ＲＴＴが検出され、検出された現在ＲＴＴは第４往復時間として使用される。ネットワーク内でＴＣＰデータパケットを送信する実際スループットが検出される。検出された現在スループットは、実際スループットである。実際スループットを決定する因子は、ネットワーク状態、送信端のスループット、及び受信端のスループットを含む。図１Ａに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク１０３のネットワーク状態、サーバ１０１のスループット、及び端末１０２のスループットを含む。図１Ｂに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク２０３のネットワーク状態、第１エージェント装置２０４のスループット、及び端末２０２のスループットを含む。図１Ｃに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク３０３のネットワーク状態、第１エージェント装置３０４のスループット、及び第２エージェント装置３０５のスループットを含む。更に留意すべきことに、本実施形態では、第４往復時間と実際スループットを同時に検出する頻度及び回数は制限されない。例えば、第４往復時間及び実際スループットは、特定時間間隔に一度、同時に検出されて良い。
【０１２８】
実際スループットの目標スループットに対する比が計算され、第４往復時間と基準往復時間（つまり、ネットワークが軽いネットワーク負荷のネットワーク状態にある場合にＴＣＰデータパケットが送信されるときに検出されるＲＴＴ）との間の差が計算される。
【０１２９】
比が第１閾より大きく、且つ差が第２閾より小さい場合、これは、ネットワーク状態が望ましいこと、及びネットワークの物理帯域幅が目標スループットより大きいことを示す。ステップＤ５０２は、目標スループットを増大するために実行されて良く、目標スループットの割り当て値は、ＴＣＰプロトコルスタックの中で更新される。任意的に、第１閾は、約１の値である。例えば、第１閾は９０％である。任意的に、第２閾は、約０の値である。任意的に、ステップＤ５０２の後に増大された目標スループットがネットワーク帯域幅より小さいことが保証されるとき、ステップＤ５０２で目標スループットを増大するステップ長サイズは、制限されない。
【０１３０】
比が第３閾より小さく、且つ差が第４閾より大きい場合、これは、ネットワーク状態が粗悪であること、及びネットワークの物理帯域幅が目標スループットより小さいことを示す。ステップＤ５０３は、目標スループットを減少するために実行されて良く、目標スループットの割り当て値は、ＴＣＰプロトコルスタックの中で更新される。任意的に、第３閾は５０％より小さく又は等しい。例えば、第１閾は２０％である。任意的に、第２閾は、比較的大きな遅延値である。任意的に、ステップＤ５０２の後に減少された目標スループットがネットワーク帯域幅より小さいことが保証されるとき、ステップＤ５０３で目標スループットを減少するステップ長サイズは、制限されない。
【０１３１】
本実施形態では、サービスにより必要とされるビットレートに従い、サービスのＴＣＰデータパケットを送信するために要求される目標スループットを決定することに基づき、現在ネットワーク状態が更に考慮される。プロトコルスタックの中の目標スループットの値は、現在ネットワーク状態に従いリアルタイムに調整される。したがって、過度に大きな目標スループットに従い決定される輻輳ウインドウが回避でき、輻輳ウインドウが非常に小さな目標スループットを増大することにより増大できるので、ＴＣＰデータパケットが損失される確率は増大され、それにより、ネットワークの物理帯域幅を効率的に利用する。
【０１３２】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的実装方法では、目標スループットは、目標スループットパラメータを用いることにより、ＴＣＰプロトコルスタックへ転送される。具体的に、図１Ａに基づき提供されるシステムでは、目標スループットパラメータが、図１ＡのサーバのＴＣＰプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。図１Ｂで提供されるシステムでは、目標スループットパラメータが、第１プロキシサーバ２０４のＴＣＰプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。図１Ｃで提供されるシステムでは、目標スループットパラメータが、第１プロキシサーバ３０４のＴＣＰプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。
【０１３３】
留意すべきことに、前述の実施形態及び本発明の実施形態は、全て、図１Ａに基づき提供されるシステムを一例として用いることにより記載され、前述の実施形態及び本発明の実施形態は、図１Ａのサーバ１０１に適する。留意すべきことに、図１Ｂで提供されるシステムでは、前述の実施形態及び本発明の実施形態は、第１プロキシサーバ２０４に適する。留意すべきことに、図１Ｃで提供されるシステムでは、前述の実施形態及び本発明の実施形態は、第１プロキシサーバ３０４に適する。
【０１３４】
本発明の一実施形態では、本実施形態は、図１Ａのサーバ１０１への方法の適用に基づき、前述の実施形態及び本発明の実施形態についての任意的詳細を更に提供する。方法は、以下を含む。
【０１３５】
サーバは、ＴＣＰデータパケットの中のパケットをパースすることによりサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得る。
【０１３６】
具体的に、サーバが端末にサービスを提供する処理において、サービスを運び及びサーバにより端末へ送信されるＴＣＰデータパケットについて、サーバは、ＴＣＰデータパケットに含まれるパケットの中のフィールドを決定し、該フィールドの中に、サービスにより必要とされるビットレートを記録する。ＴＣＰデータパケットをパースすることにより端末により得られるサービスが、サービスにより必要とされるビットレートを満たす場合、これは、サーバが正常に且つ成功裏に端末にサービスを提供することを示す。
【０１３７】
留意すべきことに、サービスは、ＴＣＰデータパケットに含まれるパケットに追加され、具体的に、サービスに関連するデータがパケットに追加される。したがって、数値の観点では、第３アルゴリズムに従い計算される目標スループットの値は、サービスにより必要とされるビットレートの値より大きい。
【０１３８】
本発明の一実施形態では、図１Ａのサーバがサーバ１０１のＴＣＰプロトコルスタックの変更をサポートしない場合（サーバ１０１がＴＣＰプロトコルスタックへの目標スループットの追加をサポートしないことが含まれる）、図１Ｂにおいて、第１エージェント装置２０４は、サーバ２０１のエージェントとして使用され、第１エージェント装置２０４は、第１エージェント装置２０４のＴＣＰプロトコルスタックの変更をサポートする（第１エージェント装置２０４がＴＣＰプロトコルスタックへの目標スループットの追加をサポートすることが含まれる）。図１Ｂに示すように、第１エージェント装置２０４はネットワークに追加され、第１エージェント装置２０４は、サービスを運ぶＴＣＰデータパケットを端末２０２へ送信する、サーバ２０１のエージェントとして動作する。この場合、図１Ｂで、方法が図１Ａのサーバ１０１に適用される一例に基づき記載される前述の実施形態及び本発明の実施形態は、もはや図１Ｂのサーバ２０１に適用されないが、代わりに、図１Ｂの第１エージェント装置２０４に適用される。
【０１３９】
方法が図１Ａのサーバ１０１に適用される一例を用いることにより記載される前述の実施形態及び本発明の実施形態が、図１Ｂの第１エージェント装置２０４に適用されるとき、端末２０２が目標スループットを計算するという相違点がある。他のステップでサーバが第１エージェント装置２０４により置き換えられた後、前述の実施形態及び本発明の実施形態は、第１エージェント装置２０４に適用できる。相違点は、以下のように詳細に具体的に記載される。
【０１４０】
前述の実施形態及び本発明の実施形態で提供されるＴＣＰデータパケットを送信する方法は、第１エージェント装置に適用される。第１エージェント装置は、ＴＣＰデータパケットを端末へ送信するために、サーバのエージェントとして動作する。目標スループットは、端末により決定される。決定方法は、ＴＣＰデータパケットの中のパケットをパースすることによりサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得るステップを含む。第１エージェント装置は、端末から目標スループットを得る。
【０１４１】
具体的に、サーバは、変更されることをサポートしないＴＣＰプロトコルスタックを有し、第１エージェント装置は、変更されることをサポートするＴＣＰプロトコルスタックを有し、端末はＴＣＰプロトコルスタックを有する。サーバは、サーバのＴＣＰプロトコルスタックに従い、サービスを運ぶＴＣＰデータパケットを生成し、ＴＣＰデータパケットは、サーバと第１エージェント装置との間でＴＣＰ／ＩＰプロトコルに基づき交換される。サービスを運び且つ第１エージェント装置によりサーバから受信されるＴＣＰデータパケットについて、第１エージェント装置は、第１エージェント装置のＴＣＰプロトコルスタックに基づきＴＣＰデータパケットを変更し（ＴＣＰデータパケットに含まれるパケットの中で運ばれるサービスは変更されなくて良い）、変更したＴＣＰデータパケットを端末へ送信する。端末は、端末のＴＣＰプロトコルスタックに基づきＴＣＰデータパケットをパースし、サービスを運ぶパケットをパースして取り出し、パケットをパースすることによりサービスに関連するデータを得る。
【０１４２】
パケットは、更に、サービスにより必要とされるビットレートを記録する。ＴＣＰデータパケットをパースすることによりパケットを得た後に、端末は、パケットをパースして、サービスにより必要とされるビットレートを得て、該ビットレートを拡張係数により乗算して、目標スループットを得て良い。
【０１４３】
その後、端末は、ＴＣＰのソケットを変更し、パラメータ、つまり目標スループットパラメータを追加し、目標スループットを用いることにより目標スループットパラメータの値を割り当て、ソケットを用いることにより端末のＴＣＰプロトコルスタックへ、目標スループットパラメータ及び目標スループットパラメータの割り当て値（目標スループット）を送信する。例えば、目標スループットパラメータ「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」が、ソケット関数「ｓｅｔｓｏｃｋｏｐｔ（）」に追加される。目標スループットがビットレート及び拡張係数に従い計算された後、計算された目標スループットは、「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の値を割り当てるために使用される。「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」及び「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の割り当てられた値は、「ｓｅｔｓｏｃｋｏｐｔ（）」を用いることにより、端末のＴＣＰプロトコルスタックへ送信される。
【０１４４】
端末は、パケットを生成し、パケットのＴＣＰオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値（ソケットを用いることによりＴＣＰプロトコルスタックへ送信された目標スループットパラメータ及び目標スループットパラメータの割り当て値）をＴＣＰオプションに追加する。端末は、ＴＣＰデータパケット（ＴＣＰデータパケットは、（目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する）ＴＣＰオプションを有するパケットを含む）を第１エージェント装置へ送信する。第１エージェント装置は、ＴＣＰデータパケットをパースして、パケットのＴＣＰオプションに含まれる、目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て良い。さらに、第１プロキシサーバは、目標スループットパラメータ及び目標スループットパラメータの割り当て値を、第１プロキシサーバのＴＣＰプロトコルスタックに追加して良い。
【０１４５】
任意的に、端末のＴＣＰプロトコルスタックが変更されることをサポートする場合、本実施形態では、目標スループットパラメータ及び目標スループットパラメータの割り当て値がソケットを用いることにより受信された後、「目標スループットパラメータ及び目標スループットパラメータの割り当て値」は、端末のＴＣＰプロトコルスタックに追加される。もちろん、目標スループットパラメータ及び目標スループットパラメータの割り当て値がソケットを用いることにより受信された場合でも、本実施形態では、目標スループットパラメータ及び目標スループットパラメータの割り当て値は、端末のＴＣＰプロトコルスタックに追加されなくても良いが、代わりに、パケット（目標スループットパラメータ及び目標スループットパラメータの割り当て値が該パケットのＴＣＰオプションに追加される）が直接生成される。端末は、第１エージェント装置へ、パケットを運ぶＴＣＰデータパケットを送信して、第１エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１エージェント装置のＴＣＰプロトコルスタックに追加できるようにする。
【０１４６】
本発明の一実施形態では、方法が図１Ａのサーバ１０１に適用される一例に基づき記載される、前述の実施形態及び本発明の実施形態は、任意的に最適化される。図１Ａのサーバ１０１がサーバ１０１のＴＣＰプロトコルスタックの変更をサポートしない場合（サーバ１０１がＴＣＰプロトコルスタックへの目標スループットの追加をサポートしないことが含まれる）、図１Ｃにおいて、第１エージェント装置３０４は、サーバ１０１のエージェントとして動作する。第１エージェント装置３０４は、第１エージェント装置３０４のＴＣＰプロトコルスタックの変更をサポートする（第１エージェント装置３０４が目標スループットのＴＣＰプロトコルスタックへの追加をサポートすることが含まれる）。さらに、第２エージェント装置３０５がネットワークに更に追加されて良い。図１Ｃに示すように、第２エージェント装置３０５は、第１エージェント装置３０４とＴＣＰデータパケットを交換するために、端末３０２のエージェントとして動作する。第２エージェント装置３０５を追加する１つの理由は、ＴＣＰプロトコルスタックが第１エージェント装置３０４と第２エージェント装置３０５との間で共有されることであり、第２エージェント装置３０５が、ＴＣＰデータパケットを用いることにより、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１エージェント装置３０４へ送信することを含む。第２エージェント装置３０５を追加する別の理由は、同じ第２エージェント装置３０５が複数の端末３０２のエージェントとして動作することであり、第２エージェント装置３０５は、ＴＣＰデータパケットを第１エージェント装置３０４と交換するために、各端末３０２のエージェントとして動作する。
【０１４７】
この場合、図１Ｃで、方法が図１Ａのサーバ１０１に適用される一例に基づき記載される前述の実施形態及び本発明の実施形態は、もはや図１Ａのサーバ１０１に適用されないが、代わりに、図１Ｃの第１エージェント装置３０４に適用される。方法が図１Ａのサーバ１０１に適用される一例を用いることにより記載される前述の実施形態及び本発明の実施形態が、図１Ｃの第１エージェント装置３０４に適用されるとき、端末３０２が目標スループットを計算するという相違点がある。他のステップでサーバが第１エージェント装置３０４により置き換えられた後、前述の実施形態及び本発明の実施形態は、第１エージェント装置３０４に適用できる。相違点は、以下のように詳細に具体的に記載される。
【０１４８】
前述の実施形態及び本発明の実施形態で提供されるＴＣＰデータパケットを送信する方法は、第１エージェント装置に適用される。第１エージェント装置は、ＴＣＰデータパケットを第２エージェント装置へ送信するためにサーバのエージェントとして動作し、第２エージェント装置がＴＣＰデータパケットを端末へ転送するようにする。その後、端末は、目標スループットを決定し、目標スループットを第２エージェント装置へ送信する。目標スループットを決定する方法は、ＴＣＰデータパケットの中のパケットをパースしてサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得るステップを含む。さらに、第１エージェント装置は、第２エージェント装置から目標スループットを得る。
【０１４９】
具体的に、サーバは、変更されることをサポートしないＴＣＰプロトコルスタックを有し、第１エージェント装置は、変更されることをサポートするＴＣＰプロトコルスタックを有し、第２エージェント装置はＴＣＰプロトコルスタックを有し、端末はＴＣＰプロトコルスタックを有する。サーバは、サーバのＴＣＰプロトコルスタックに従い、サービスを運ぶＴＣＰデータパケットを生成し、ＴＣＰデータパケットは、サーバと第１エージェント装置との間でＴＣＰ／ＩＰプロトコルに基づき交換される。サービスを運び且つ第１エージェント装置によりサーバから受信されるＴＣＰデータパケットについて、第１エージェント装置は、第１エージェント装置のＴＣＰプロトコルスタックに基づきＴＣＰデータパケットを変更し（ＴＣＰデータパケットに含まれるパケットの中で運ばれるサービスは変更されなくて良い）、変更したＴＣＰデータパケットを第２エージェント装置へ送信する。第２エージェント装置は、第２エージェント装置のＴＣＰプロトコルスタックに基づきＴＣＰデータパケットを再び変更し、再び変更されたＴＣＰデータパケットを端末へ送信する。端末は、再び変更されたＴＣＰデータパケットをパースし、サービスを運ぶパケットをパースして取り出し、次に、パケットをパースすることによりサービスに関連するデータを得る。
【０１５０】
パケットは、更に、サービスにより必要とされるビットレートを記録する。ＴＣＰデータパケットをパースすることによりパケットを得た後に、端末は、パケットをパースして、サービスにより必要とされるビットレートを得て、該ビットレートを拡張係数により乗算して、目標スループットを得て良い。
【０１５１】
その後、端末は、ＴＣＰのソケットを変更し、パラメータ、つまり目標スループットパラメータを追加し、サービスにより必要とされるビットレートに従い計算された目標スループットを用いることにより目標スループットパラメータの値を割り当て、ソケットを用いることにより端末のＴＣＰプロトコルスタックへ、目標スループットパラメータ及び目標スループットパラメータの割り当て値（目標スループット）を送信する。例えば、目標スループットパラメータ「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」が、ソケット関数「ｓｅｔｓｏｃｋｏｐｔ（）」に追加される。端末がサービスにより必要とされるスループットに従い目標スループットを計算した後に、計算された目標スループットは、「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の値を割り当てるために使用される。「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」及び「ｔａｒｇｅｔ＿ｔｈｒｏｕｇｈｐｕｔ」の割り当てられた値は、「ｓｅｔｓｏｃｋｏｐｔ（）」を用いることにより、端末のＴＣＰプロトコルスタックへ送信される。
【０１５２】
端末は、第１パケットを生成し、第１パケットのＴＣＰオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値（ソケットを用いることによりＴＣＰプロトコルスタックへ送信された目標スループットパラメータ及び目標スループットパラメータの割り当て値）をＴＣＰオプションに追加する。端末は、ＴＣＰデータパケット（ＴＣＰデータパケットは、（目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する）ＴＣＰオプションを有する第１パケットを含む）を第２エージェント装置へ送信する。
【０１５３】
第２エージェント装置は、ＴＣＰデータパケットをパースして、第１パケットのＴＣＰオプションに含まれる、目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て良い。第２エージェント装置は、第２パケットを生成し、第２パケットのＴＣＰオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値（第１パケットの中の、目標スループットパラメータ及び目標スループットパラメータの割り当て値）をＴＣＰオプションに追加する。第２エージェント装置は、ＴＣＰデータパケット（ＴＣＰデータパケットは、（目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する）ＴＣＰオプションを有する第２パケットを含む）を第１エージェント装置へ送信する。
【０１５４】
第１エージェント装置は、第２エージェント装置から受信したＴＣＰデータパケットをパースし、第２パケットをパースして取り出し、第２パケットから目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１エージェント装置のＴＣＰプロトコルスタックに追加する。
【０１５５】
任意的に、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１パケットから得た後に、第２エージェント装置は、目標スループットパラメータ及び目標スループットパラメータの割り当て値を、第２エージェント装置のＴＣＰプロトコルスタックに追加して良い。もちろん、第２エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１パケットから得た後に、本実施形態では、第２エージェント装置のＴＣＰプロトコルスタックは、変更されなくて良いが（つまり、目標スループットパラメータ及び目標スループットパラメータの割り当て値は、第２エージェント装置のＴＣＰプロトコルスタックに追加される）、代わりに、第２パケット（目標スループットパラメータ及び目標スループットパラメータの割り当て値は、第２パケットのＴＣＰオプションに追加される）が直接に生成される。第２エージェント装置は、第１エージェント装置へ、パケットを運ぶＴＣＰデータパケットを送信して、第１エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第１エージェント装置のＴＣＰプロトコルスタックに追加できるようにする。
【０１５６】
留意すべきことに、第２エージェント装置が追加される。第１エージェント装置及び第２エージェント装置は、固定ルーティング経路を有するので、ネットワークが軽負荷を有するとき、第１エージェント装置から第２エージェント装置へのＴＣＰデータパケットのＲＴＴは、基本的に不変である。したがって、第２エージェント装置が１又は複数の端末のエージェントとして動作するとき、第２エージェント装置と第１エージェント装置との間の既存ＴＣＰフローのＲＴＴがネットワークが軽負荷を有するときに既に決定された後、既存ＴＣＰフローに対応する遅延間隔の下限（ネットワークが軽負荷を有するときに存在する既存ＴＣＰフローのＲＴＴ）が決定される。サービスのＴＣＰフローが第２エージェント装置と第１エージェント装置との間に新たに追加される場合、ラウンドの輻輳ウインドウのＲＴＴの中から、該ラウンドの輻輳ウインドウのＲＴＴのうちの最小ＲＴＴを、新たに追加されるＴＣＰフローに対応する遅延間隔の下限として選択することは要求されないが、代わりに、既存ＴＣＰフローに対応する遅延間隔の下限は、サービスの新たに追加されるＴＣＰフローに対応する遅延間隔の下限として直接に使用される。つまり、ネットワークが軽負荷を有するときに存在する既存ＴＣＰフローのＲＴＴは、ネットワークが軽負荷を有するときに存在するサービスの新たに追加されるＴＣＰフローのＲＴＴとして直接に使用される。
【０１５７】
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、方法が図１Ａのサーバ１０１、図１Ｂの第１エージェント装置２０４、又は図１Ｃの第１エージェント装置３０４に適用されるかに関わらず、目標スループットは、サービスのビットレートに基づき計算され（ビットレートは、目標スループットを得るために拡張係数により乗算される）、本実施形態では、サービスは以下のように詳述される：
サービスがオーディオサービスである場合、サービスのビットレートは、オーディオサービスのオーディオビットレートである；
サービスがビデオサービスである場合、サービスのビットレートは、ビデオサービスのビデオビットレートである；又は
サービスがオーディオ及びビデオサービスである場合、サービスのビットレートは、オーディオ及びビデオサービスのオーディオ及びビデオビットレートである。
【０１５８】
具体的に、端末にサービスを提供するとき、サーバはサービスを運ぶパケットを生成する。同時に、パケットの中でフィールドが決定され、サービスにより必要とされるビットレートが該フィールドに記録される。サービスがオーディオサービスである場合、オーディオサービスにより必要とされるオーディオビットレートは、パケットの該フィールドに記録される。サービスがビデオサービスである場合、ビデオサービスにより必要とされるビデオビットレートは、パケットの該フィールドに記録される。サービスがオーディオ及びビデオサービスである場合、オーディオ及びビデオサービスにより必要とされるオーディオ及びビデオビットレートは、パケットの該フィールドに記録される。
【０１５９】
本発明の一実施形態で、図６は、本発明の一実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置６００の論理構造の概略図である。図６に示すように、装置６００は、少なくとも、遅延決定ユニット６０１と、ウインドウ調整ユニット６０２と、データパケット送信ユニット６０３と、を含む。
【０１６０】
遅延決定ユニット６０１は、ネットワーク内でＴＣＰデータパケットを送信する第１往復時間を得て、第２往復時間を決定するよう構成される。ここで、第２往復時間は、第１アルゴリズムに従い決定される輻輳ウインドウ及び第２アルゴリズムに従い決定される輻輳ウインドウが等しいサイズを有するときに存在する往復時間であり、第１アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第１往復時間に従い決定され、第２アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第１往復時間及び目標スループットに従い決定され、目標スループットは、ＴＣＰデータパケットに対応するサービスのために得られることが期待されるスループットである。
【０１６１】
調整ユニット６０２は、第１往復時間が第２往復時間より長い場合、第１アルゴリズムに従い決定される輻輳ウインドウを第１輻輳ウインドウとして使用し、又は、第１往復時間が第２往復時間より短い又は等しい場合、第２アルゴリズムに従い決定される輻輳ウインドウを第１輻輳ウインドウとして使用するよう構成される。
【０１６２】
データパケット送信ユニット６０３は、第１輻輳ウインドウを用いることによりＴＣＰデータパケットを送信するよう構成される。
【０１６３】
任意的に、第２アルゴリズムにおいて決定される輻輳ウインドウの増加ステップサイズは、目標スループットに正に相関し、第１往復時間に負に相関し、第１アルゴリズムにおいて決定される輻輳ウインドウの増加ステップサイズは、第１往復時間に負に相関する。
【０１６４】
任意的に、目標スループットは、ＴＣＰデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い決定される。
【０１６５】
任意的に、ＴＣＰデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い目標スループットを決定するアルゴリズムは、目標スループットが、サービスのビットレートと拡張係数との積に等しく、拡張係数は１より大きい。
【０１６６】
任意的に、ウインドウ調整ユニット６０２は、ＴＣＰデータパケットを送信する処理の中でパケット損失が生じる場合、ＴＣＰデータパケットを伝送する輻輳ウインドウを、第３アルゴリズムに従う第２輻輳ウインドウに調整するよう更に構成され、第２輻輳ウインドウは、パケット損失がＴＣＰデータパケットで生じるときに存在する第３往復時間に従い決定され、ＴＣＰデータパケットを伝送する輻輳ウインドウを第２輻輳ウインドウに調整する減少ステップサイズは、第３往復時間に負に相関し；及び
データパケット送信ユニット６０３は、第２輻輳ウインドウを用いることによりＴＣＰデータパケットを送信するよう更に構成される。
【０１６７】
任意的に、ウインドウ調整ユニット６０２が、第３アルゴリズムに従う第２輻輳ウインドウに、ＴＣＰデータパケットを送信する輻輳ウインドウを調整することは、具体的には：
ウインドウ調整ユニット６０２が、第３往復時間が遅延間隔の下限に等しい場合、パケット損失がＴＣＰデータパケットで生じるときに存在する輻輳ウインドウを第２輻輳ウインドウとして用い、又は、第３往復時間が遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを第２輻輳ウインドウとして用い、遅延間隔の上限は、ネットワーク内のＴＣＰの再送タイムアウト（ＲＴＯ）であり、遅延間隔の下限は、ネットワークが軽負荷を有するときに存在する往復時間である、よう構成される。
【０１６８】
任意的に、ウインドウ調整ユニット６０２が、第１アルゴリズムに従い決定される輻輳ウインドウを、第１輻輳ウインドウとして使用することは、具体的に以下を含む：
ウインドウ調整ユニット６０２は、第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、高速回復値を輻輳ウインドウの増加ステップサイズとして用いて、第１輻輳ウインドウを得て、高速回復値はスロースタートのものと同じ大きさの程度を有する、よう構成される；
ウインドウ調整ユニット６０２は、第１往復時間がネットワークにおけるＴＣＰの再送タイムアウト（ＲＴＯ）に等しい場合、最大セグメントサイズ（ＭＳＳ）を、輻輳ウインドウの増加ステップサイズの値として用いて、第１輻輳ウインドウを得るよう構成される；又は
ウインドウ調整ユニット６０２は、第１往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のＴＣＰの再送タイムアウト（ＲＴＯ）との間の間隔の範囲内で変化する場合、輻輳ウインドウの増加ステップサイズの値を、１ＭＳＳと高速回復値との間であり且つ第１往復時間と負に相関するよう設定して、第１輻輳ウインドウを得る、よう構成される。
【０１６９】
任意的に、ウインドウ調整ユニット６０２が、第２アルゴリズムに従い決定される輻輳ウインドウを、第１輻輳ウインドウとして使用することは、具体的に以下である：
ウインドウ調整ユニット６０２は、目標スループット及び第１往復時間に従い目標ウインドウを計算し、目標ウインドウとネットワーク内のＴＣＰの現在輻輳ウインドウとの間の差分を、輻輳ウインドウの増加ステップサイズの値として用いて、第１輻輳ウインドウを決定する。
【０１７０】
任意的に、装置は、ネットワーク状態に従い目標スループットを更新する観点から最適化される。図７を参照すると、装置は、スループット検出ユニット６０４、及び目標スループット調整ユニット６０５を更に含む。
【０１７１】
スループット検出ユニット６０４は、ネットワーク内でＴＣＰデータパケットを送信する実際スループットを検出するよう構成される。
【０１７２】
目標スループット調整ユニット６０５は、実際スループットの目標スループットに対する比が第１閾より大きく、ネットワーク内でＴＣＰデータパケットを送信する第４往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第２閾より小さい場合、目標スループットを増大し、又は、実際スループットの目標スループットに対する比が第３閾より小さく、第４往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第４閾より大きい場合、目標スループットを減少する、よう構成される。
【０１７３】
任意的に、目標スループットは、目標スループットパラメータを用いることによりＴＣＰプロトコルスタックへ転送される。
【０１７４】
本発明の一実施形態で、図８は、本実施形態による伝送制御プロトコル（ＴＣＰ）データパケットを送信する装置８００のハードウェア構造の概略図であり、送信装置８００のハードウェア構造を示す。図８に示すように、送信装置８００は、プロセッサ８０１、メモリ８０２、及びネットワークインタフェース８０４を含む。プロセッサ８０１は、メモリ８０２及びネットワークインタフェース８０４の両方にバス８０３を用いることにより接続される。送信装置８００は、ＴＣＰデータパケットを送信し／受信するために、ネットワークインタフェース８０４を用いることによりネットワーク１０３に接続される。
【０１７５】
メモリ８０２は、コンピュータ実行命令を格納するよう構成される。送信装置８００が実行するとき、プロセッサ８０１は、メモリ８０２に格納されたコンピュータ実行命令をリードして、送信装置に適用され前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法を実行する。
【０１７６】
プロセッサ８０１は、汎用中央処理ユニット（Central  Processing  Unit、ＣＰＵ）、マイクロプロセッサ、特定用途向け集積回路（Application  Specific  Integrated  Circuit、ＡＳＩＣ）、又は１又は複数の集積回路であって良く、本発明の実施形態で提供される技術的ソリューションを実施するために関連プログラムを実行するよう構成される。技術的ソリューションは、前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法を含む。
【０１７７】
メモリ８０２は、読み出し専用メモリ（Read  Only  Memory、ＲＯＭ）、静的記憶装置、動的記憶装置、又はランダムアクセスメモリ（random  access  memory、ＲＡＭ）であって良い。メモリ８０２は、オペレーティングシステム及び別のアプリケーションプログラムを格納して良い。本発明の実施形態で提供される技術的ソリューションがソフトウェア又はファームウェアを用いて実行されるとき、送信装置８００に適用され及び前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル（ＴＣＰ）データパケットを送信する方法のプログラムコードを含む、本発明の実施形態で提供される技術的ソリューションを実施するために使用されるプログラムコードは、メモリ８０２に保存され、プロセッサ８０１により実行される。
【０１７８】
ネットワークインタフェース８０４は、送信装置８００と別の装置又は通信ネットワークとの間のネットワーク通信を実施するために、例えば通信機であるがこれに限定されない通信機器で使用される。任意的に、ネットワークインタフェース８０４は、ネットワーク、例えばＥｔｈｅｒｎｅｔに接続するよう構成されるＥｔｈｅｒｎｅｔインタフェースに接続するよう構成される。Ｅｔｈｅｒｎｅｔインタフェースは、限定ではないが、ＲＪ−４５インタフェース、ＲＪ−１１インタフェース、ＳＣファイバインタフェース、ＦＤＤＩインタフェース、ＡＵＩインタフェース、ＢＮＣインタフェース、及びＣｏｎｓｏｌｅインタフェースを含む。
【０１７９】
バス８０３は、送信装置８００の構成要素（例えば、プロセッサ８０１、メモリ８０２、及びネットワークインタフェース８０４）の間で情報を転送するために使用される経路を有して良い。
【０１８０】
任意的に、送信装置８００は、入力／出力インタフェース８０５を更に含む。入力／出力インタフェース８０５は、入力されるデータ及び情報を受信し、及び演算結果のようなデータを出力するよう構成される。
【０１８１】
留意すべきことに、プロセッサ８０１、メモリ８０２、ネットワークインタフェース８０４、及びバス８０３のみが図８の送信装置８００の中に示されるが、特定の実装過程において、当業者は、送信装置８００が通常動作のために必要な別の装置を更に含むことを理解すべきである。一方で、特定の要件により、当業者は、送信装置８００が別の追加機能を実装するハードウェア装置を更に含んで良いことを理解すべきである。さらに、当業者は、送信装置８００が、代替で本発明の本実施形態を実施するために必要な装置のみを含んで良く、必ずしも図８に示す全部の装置を含む必要がないことを理解すべきである。
【０１８２】
本発明の一実施形態では、システム１００が提供される。図１Ａを参照すると、システム１００は、サーバ１０１及び端末１０２を含む。サーバ１０１は、ネットワーク１０３を用いることにより、端末１０２と通信接続される。サーバ１０１は、伝送制御プロトコル（ＴＣＰ）データパケットを送信する前述の装置８００であり、ネットワーク１０３を用いることによりＴＣＰデータパケットを端末１０２へ送信する。
【０１８３】
本発明の一実施形態では、システム２００が提供される。図１Ｂを参照すると、システム２００は、サーバ２０１第１エージェント装置２０４、及び端末２０２を含む。第１エージェント装置２０４は、サーバ２０１及び端末２０２の両方と通信接続される。サーバ２０１は、第１エージェント装置２０４をエージェントとして使用することにより、ＴＣＰデータパケットを端末２０２へ送信するよう構成される。
【０１８４】
第１エージェント装置２０４は、伝送制御プロトコル（ＴＣＰ）データパケットを送信する前述の装置８００であり、サーバ２０１により端末２０２へ送信されたＴＣＰデータパケットを受信し、ＴＣＰデータパケットを端末２０２へ送信するためにサーバ２０１のエージェントとして動作するよう構成される。
【０１８５】
任意的に、端末２０２は、目標スループットパラメータを用いることにより、端末２０２のＴＣＰプロトコルスタックから第１エージェント装置２０４のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成される。
【０１８６】
本発明の一実施形態では、システム３００が提供される。図１Ｃを参照すると、システム３００は、サーバ３０１第１エージェント装置３０４、第２エージェント装置３０５、及び端末３０２を含む。第１エージェント装置３０４は、サーバ３０１及び第２エージェント装置３０５の両方と通信接続される。サーバ３０１は、第１エージェント装置３０４をエージェントとして使用することにより、ＴＣＰデータパケットを端末３０２へ送信するよう構成される。
【０１８７】
第１エージェント装置３０４は、伝送制御プロトコル（ＴＣＰ）データパケットを送信する前述の装置８００であり、サーバ３０１により端末３０２へ送信されたＴＣＰデータパケットを受信し、ＴＣＰデータパケットを第２エージェント装置３０５へ送信するためにサーバ３０１のエージェントとして動作するよう構成される。
【０１８８】
第２エージェント装置３０５は、ＴＣＰデータパケットを受信し、端末３０２へＴＣＰデータパケットを転送するよう構成される。
【０１８９】
任意的に、端末３０２は、目標スループットパラメータを用いることにより、端末３０２のＴＣＰプロトコルスタックから第２エージェント装置３０５のＴＣＰプロトコルスタックへ目標スループットを転送するよう構成される。
【０１９０】
第２エージェント装置３０５は、目標スループットパラメータを用いることにより、第２エージェント装置３０５のＴＣＰプロトコルスタックから第１エージェント装置３０４のＴＣＰプロトコルスタックへ目標スループットを転送するよう更に構成される。
【０１９１】
本願により提供される幾つかの実施形態では、開示のシステム、装置、機器、及び方法は他の方法で実装されても良いことが理解されるべきである。例えば、記載した装置の実施形態は単に一例として使用される。例えば、モジュール及びユニット分割は、単なる論理的機能の区分であり、他の実装中の区分であって良い。例えば、複数のモジュール、ユニット又はコンポーネントは、別のシステムに結合又は統合されて良く、或いは、幾つかの機能は無視されるか又は実行されなくて良い。さらに、表示した又は議論した相互結合又は直接結合又は通信接続は、幾つかのインタフェースを使用することにより実装されて良い。装置又はモジュール間の間接結合又は通信接続は、電子的、機械的又は他の形式で実装されて良い。
【０１９２】
別個の部分として記載されたモジュールは、物理的に別個であって良く又はそうでなくて良い。また、モジュールのような部分は、物理的なモジュールであって良く又はそうでなくて良く、１カ所に置かれて良く或いは複数のネットワークモジュールに分散されて良い。一部又は全部のモジュールは、実施形態のソリューションの目的を達成するために実際の必要に応じて選択されて良い。
【０１９３】
さらに、本発明の実施形態における機能モジュールは、１つの処理モジュールに統合されて良く、或いは各モジュールが物理的に単独で存在して良く、或いは２以上のモジュールが１つのモジュールに統合されて良い。統合モジュールは、ハードウェアの形式で実装されて良く、ソフトウェア機能モジュールに加えてハードウェアの形式で実装されて良い。
【０１９４】
ソフトウェア機能モジュールの形式で実装された前述の統合モジュールは、コンピュータ可読記憶媒体に格納されて良い。ソフトウェア機能モジュールは、記憶媒体に格納され、コンピュータ装置（パーソナルコンピュータ、サーバ、又はネットワーク装置であって良い）に、本願の実施形態で記載された方法の幾つかのステップを実行するよう指示する複数の命令を含む。前述の記憶媒体は、取り外し可能ハードディスク、読み出し専用メモリ（英語名：Read−Only  Memory、略してROM）、ランダムアクセスメモリ（英語名：Random  Access  Memory、略してRAM）、磁気ディスク又は光ディスクのような、プログラムコードを格納可能な任意の媒体を含む。
【０１９５】
最後に、留意すべきことに、前述の実施形態は、単に本発明の技術的ソリューションを説明することを意図しており、本発明を限定しない。本発明は、前述の実施形態を参照して詳細に説明されたが、当業者は、本発明の実施形態の技術的ソリューションの保護範囲から逸脱することなく、彼らが前述の実施形態で説明した技術的ソリューションに変更を行い、又はそれら実施形態の幾つかの技術的特徴を等価に置換できることを理解する。
【図１Ａ】
0006526825.tif 000002
【図１Ｂ】
0006526825.tif 000003
【図１Ｃ】
0006526825.tif 000004
【図２】
0006526825.tif 000005
【図３】
0006526825.tif 000006
【図４】
0006526825.tif 000007
【図５】
0006526825.tif 000008
【図６】
0006526825.tif 000009
【図７】
0006526825.tif 000010
【図８】
0006526825.tif 000011