以下に、本発明の実施形態の添付の図面を参照して、本発明の実施形態における技術的解決策を明確且つ十分に説明する。明らかに、記載される実施形態は、本発明の実施形態の一部であり、全てではない。本発明の実施形態に基づき創造的労力を有しないで当業者により得られる全ての他の実施形態は、本発明の保護範囲に包含される。
図1Aは、本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオのシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図1Aに示すように、図1Aにおいて提供されるシステム100を参照すると、システム100は、サーバ101、端末102、及びネットワーク103を含む。サーバ101及び端末102は、ネットワーク103を用いることにより接続され、データは、サーバ101と端末102との間でネットワーク103を用いることにより交換される。サーバ101は、ネットワーク103を用いることにより、端末102へTCPデータパケットを送信して良く、端末102も、ネットワーク103を用いることにより、サーバ101へTCPデータパケットを送信して良い。ネットワーク103は、伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol、略してTCP/IPプロトコル)に基づき確立され、伝送制御プロトコル/インターネットプロトコルもネットワーク通信プロトコルとして参照される。
任意的に、ネットワーク103は、スイッチ又はルータのような、TCPデータパケットを転送する転送装置を含んで良い。サーバ101と端末102との間で交換されるTCPデータパケットは、転送装置を用いることにより転送される。
任意的に、本発明の本実施形態で記載されるサーバは、電子コンポーネントを含み及びデータ処理機能を有する電子装置である。電子装置は、集積回路、トランジスタ、及び電子管のような電子素子で構成される。プログラム命令で構成されるソフトウェアは、データ処理及び別の装置の制御のような機能を実施するために、電子装置上で実行できる。例えば、オペレーティングシステムが電子装置にインストールされた後、ネットワークインタフェースカードが電子装置に搭載され、ネットワーク構成が完了した場合、電子装置は、TCP/IPプロトコルに基づき構築されたネットワークにアクセスし、データを交換するために、別の電子装置(例えば、端末)とTCPデータパケットを交換して良い。
任意的に、サーバと同様に、本発明の本実施形態で記載される端末は、電子コンポーネントを含み及びデータ処理機能を有する電子装置である。端末は、TCP/IPプロトコルに基づき構築されるネットワークにアクセスし、データを交換するために、別の電子装置(例えば、サーバ)とTCPデータパケットを交換して良い。
任意的に、サーバ101は、端末102と直接に通信接続される。ネットワーク103内の転送装置(例えば、ルータ)によるTCPデータパケットの転送は、ネットワーク103を用いることによりサーバ101と端末102との間で交換されるTCPデータパケットに対して実行される必要はない。
任意的に、サーバ101は、端末102とのTCPデータパケットのピア相互作用を実行して良い。サーバ101は、端末102へTCPデータパケットを送信して良く、相応して、端末102も、サーバ101へTCPデータパケットを送信して良い。
任意的に、図1Aで提供されるシステム100について、システム100では、サーバ101は、ネットワーク103を用いることにより、端末102とTCPデータパケットのサーバ−クライアント相互作用を実行する。サーバ101はサービング端として動作し、端末102は、サーバ−クライアント通信において、サービング端に対応するクライアントとして動作する。サーバ101は、端末102へTCPデータパケットを送信して良い。例えば、端末102がサーバ101からオーディオファイル及びビデオファイルをダウンロードするとき、サーバ101は、端末102へ、オーディオファイル及びビデオファイルを運ぶTCPデータパケットを送信する。したがって、端末102も、サーバ101へTCPデータパケットを送信して良い。例えば、端末102は、サーバ101へテキストファイルをアップロードし、端末102は、サーバ101へテキストファイルを運ぶTCPデータパケットを送信する。
図1Bは、本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図1Bに提供されるシステム200を参照すると、システム200は、サーバ201、端末202、ネットワーク203、及び第1エージェント装置204を含む。サーバ201がネットワーク203を用いることにより端末202とTCPデータパケットを交換する処理において、サーバ201のTCPプロトコルスタックの変更がサポートされない場合、第1エージェント装置204が追加される。第1エージェント装置204は、第1エージェント装置204のTCPプロトコルスタックの変更をサポートする。第1エージェント装置204は、端末202とTCPデータパケットを交換するために、サーバ201のエージェントとして動作する。図1Bにおける第1エージェント装置204と端末202との間のTCPデータパケットの相互作用は、図1Aにおけるサーバ101と端末102との間のTCPデータパケットの相互作用と同様である。もちろん、第1エージェント装置204は、別の要因のためにも追加されて良い。例えば、第1エージェント装置204は、サーバ201によりTCPデータパケットを送信することにより引き起こされる負荷を減少するために追加される。望ましくは、第1エージェント装置204は、プロキシサーバを用いることにより実装される。望ましくは、第1エージェント装置204は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。
図1Cは、本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。説明を容易にするために、本発明の本実施形態に関連する部分のみが提供される。図1Cに提供されるシステム300を参照すると、システム300は、サーバ301、端末302、ネットワーク303、及び第1エージェント装置304を含む。サーバ301がネットワーク303を用いることにより端末302とTCPデータパケットを交換する処理において、サーバ301のTCPプロトコルスタックの変更がサポートされない場合、第1エージェント装置304が追加される。第1エージェント装置304は、第1エージェント装置304のTCPプロトコルスタックの変更をサポートする。第1エージェント装置304は、TCPデータパケットを交換するために、サーバ301のエージェントとして動作する。さらに、第2エージェント装置305が更に追加されて良い。第2エージェント装置305は、TCPデータパケットを交換するために端末302のエージェントとして動作し、TCPデータパケットが第1エージェント装置304と第2エージェント装置305との間で交換できるようにする。図1Cにおける第1エージェント装置304と第2エージェント装置305との間のTCPデータパケットの相互作用は、図1Aにおけるサーバ101と端末102との間のTCPデータパケットの相互作用と同様である。もちろん、第1エージェント装置304及び第2エージェント装置305の両方は、別の要因のためにも追加されて良い。前述が参照され、詳細事項はここで再び記載されない。第2エージェント装置305を追加する理由は、端末302のTCPプロトコルスタックの変更がサポートされず、第2エージェント装置305が第2エージェント装置305のTCPプロトコルスタックの変更をサポートするからである。第2エージェント装置305は、TCPデータパケットを交換するために端末302のエージェントとして動作し、TCPデータパケットが第1エージェント装置304と第2エージェント装置305との間で交換できるようにする。望ましくは、第1エージェント装置304は、プロキシサーバを用いることにより実装される。望ましくは、第1エージェント装置304は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。望ましくは、第2エージェント装置305は、プロキシサーバを用いることにより実装される。望ましくは、第2エージェント装置305は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。
本発明の本実施形態では、サーバがネットワーク内の端末へTCPデータパケットを送信する処理において、サービスのために得られることが期待される可能な限り多くのスループットを満たすために、TCPのTCPデータパケットを送信する方法が設計される。留意すべきことに、図1Aにおいて、本発明の本実施形態で提供される方法は、サーバ101に適用される。図1Bでは、本発明の本実施形態で提供される方法は、第1エージェント装置204に適用される。図1Cでは、本発明の本実施形態で提供される方法は、第2エージェント装置304に適用されて良い。
以下は、本発明の本実施形態において提供される方法がサーバ101に適用される一例を用いることにより、本発明の本実施形態において提供されるTCPのTCPデータパケットを送信する方法を詳述する。図2は、方法の基本実施手順を示す。しかしながら、説明を容易にするために、図2は、本発明の本実施形態に関連する部分のみを示す。
図2に示すTCPのTCPデータパケットを送信する方法は、ステップA201、ステップA202、ステップA203、ステップA204、及びステップA205を含む。
ステップA201:ネットワーク内のTCPデータパケットを送信する第1往復時間(Round Trip Time、RTT)を得る。
本発明の本実施形態において提供される方法が図1Aのサーバ101に適用される一例は、ステップA201を詳細に説明するために使用される。
サーバが端末にサービスを提供するとき、提供されるサービス毎に別個にTCPフローが確立される。対応するサービスを運ぶTCPデータパケットは、各TCPフローで送信される。TCPデータパケットを送信する目的で、ステップA201で、TCPデータパケットの1つの肯定応答(ACK)が受信される度に、TCPデータパケットを送信するために必要なRTTが計算される。計算したRTTは、第1往復時間として使用される。任意的に、RFC6289で提供されるアルゴリズム(Jacobson/Karelsアルゴリズム)は、TCPデータパケットのRTTを計算するために使用される。
ステップA202:第2往復時間を決定する。ここで、第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウ及び第2アルゴリズムに従い決定される輻輳ウインドウが等しいサイズを有するときに存在する往復時間であり、第1アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第1往復時間に従い決定され、第2アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第1往復時間及び目標スループットに従い決定され、目標スループットは、TCPデータパケットに対応するサービスのために得られることが期待されるスループットである。
留意すべきことに、サービスの特定形式は本発明の本実施形態に限定されず、サービスは、オーディオサービス、ビデオサービス、オーディオ及びビデオサービス、オンラインでウイルスをスキャンし及び除去するサービス、インスタントメッセージサービス、及びオンラインアプリケーションサービスのような、種々のアプリケーションサービスを含む。
サーバが端末にサービスを提供する処理において、サービスを正常に提供することが期待される場合、サーバがサービスを運ぶTCPデータパケットを送信するとき、特定スループットが必要である。本発明の本実施形態では、スループットは、目標スループットとして定められる。サーバが端末にサービスを提供する処理において、TCPフローがサービスについて確立され、輻輳ウインドウがTCPフローについて確立される。サービスを運ぶTCPデータパケットは、輻輳ウインドウの制御下でTCPフローを用いることにより送信され、サーバが提供できるスループットは、輻輳ウインドウを用いることにより決定される。したがって、ネットワークの現在ネットワーク状態においてサービスにより必要とされるスループットを可能な限り達成するために、輻輳ウインドウが調整される必要がある。同様に、サーバが端末に同時に複数のサービスを提供する場合、サーバにより端末に提供される各サービスにより別個に必要とされる目標スループットは、別個に決定される。TCPフローはサービス毎に別個に確立され、TCPフロー毎に1つの輻輳ウインドウが別個に設定され、さらに、対応する輻輳ウインドウは、サービスのために得られることが期待されるスループットを提供するために、サービス毎に別個に調整される。
第1アルゴリズム及び第2アルゴリズムは、本発明の本実施形態において提供される。輻輳ウインドウのサイズは、第1アルゴリズム又は第2アルゴリズムを用いることにより、及びネットワークのネットワーク状態及びサービスにより必要とされる目標スループットに従い、調整される。調整手段により得られた輻輳ウインドウは、端末が期待スループットを得ることができるよう、TCPデータパケットの送信を制御するために使用される。具体的に、ステップA202で、輻輳ウインドウの増加ステップサイズは、第1アルゴリズム又は第2アルゴリズムに従い決定され、輻輳ウインドウのサイズが調整されるようにする。
さらに、具体的に、輻輳ウインドウを調整するために第1アルゴリズム又は第2アルゴリズムが使用されるかは、ネットワーク状態を反映するRTTに従い決定される。ステップA202で、第2往復時間が決定される。ネットワーク状態を反映するRTTが第2往復時間より短い又は等しい、つまり、ネットワーク状態を反映するRTTが比較的短い場合、現在ネットワーク状態が望ましく、第2アルゴリズムは、輻輳ウインドウの増加ステップサイズを決定するために使用される。第2アルゴリズムが輻輳ウインドウの増加ステップサイズを決定するために使用されるとき、増加ステップサイズは、ネットワーク状態を反映するRTT及び目標スループットの両方に従い決定される必要がある。つまり、ネットワーク状態及び目標スループットの両方が、第2アルゴリズムにおいて考慮される。通常、第2アルゴリズムに従い決定された輻輳ウインドウがTCPデータパケットの送信を制御するために使用されるとき、サーバは、サーバにより必要とされる目標スループットを提供できる。ネットワーク状態を反映するRTTが第2往復時間より長い、つまり、ネットワーク状態を反映するRTTが比較的長い場合、現在ネットワーク状態にある程度輻輳が存在し、第1アルゴリズムは、輻輳ウインドウの増加ステップサイズを決定するために使用される。第1アルゴリズムが輻輳ウインドウの増加ステップサイズを決定するために使用されるとき、増加ステップサイズは、ネットワーク状態を反映するRTTに従い決定される。つまり、ネットワーク状態は、第1アルゴリズムにおいて、より多く考慮される。通常、第2アルゴリズムに従い決定された輻輳ウインドウがTCPデータパケットの送信を制御するために使用されるとき、サーバにより提供されるスループットは、サーバにより必要とされる目標スループットに達しない。
ステップA203:第1往復時間が第2往復時間より長い場合、第1アルゴリズムに従い決定された輻輳ウインドウを第1輻輳ウインドウとして用いる。
ステップA204:第1往復時間が第2往復時間より短い場合、第2アルゴリズムに従い決定された輻輳ウインドウを第1輻輳ウインドウとして用いる。
ステップA205:第1輻輳ウインドウを用いることにより、TCPデータパケットを送信する。
具体的に、ネットワークにおいて、サービスを運ぶTCPデータパケットを送信する処理において、サーバがサービスを可能な限り満たすスループットを提供できるよう、輻輳ウインドウが目標スループット及び現在ネットワーク状態を反映するRTTに従い現在調整される必要のある場合、ステップA201は、現在ネットワーク状態を反映するRTTを計算するために、先ず実行され、計算したRTTは第1往復時間として使用される。
現在ネットワーク状態を反映する第1往復時間が比較的長く、第1往復時間が第2往復時間より長い場合、現在ネットワーク状態にある程度の輻輳が存在することを示し、ステップA203は、第1アルゴリズムを用いることにより及び第1往復時間に従い輻輳ウインドウの増加ステップサイズを決定するために実行される。第1往復時間の検出中に、対応する輻輳ウインドウに基づき、第1アルゴリズムに従い決定された増加ステップサイズは、第1輻輳ウインドウを得るために増大される。
現在ネットワーク状態を反映する第1往復時間が比較的短く、第1往復時間が第2往復時間より短い又は等しい場合、現在ネットワーク状態が望ましいことを示し、ステップA204は、第2アルゴリズムを用いることにより及び第1往復時間及び目標スループットの両方に従い輻輳ウインドウの増加ステップサイズを決定するために実行される。第1往復時間の検出中に、対応する輻輳ウインドウに基づき、第2アルゴリズムに従い決定された増加ステップサイズは、第1輻輳ウインドウを得るために増大される。
サービスのTCPフローでは、サービスのTCPデータパケットの送信を制御する輻輳ウインドウの間、ステップA204又はステップA205が実行される度に、第1輻輳ウインドウがもう一度決定され、サービスに対応する輻輳ウインドウを1回更新するために第1輻輳ウインドウが使用されるようにし、第1輻輳ウインドウは、更新前の輻輳ウインドウを置き換えるために使用される。サービスのTCPフローでは、第1輻輳ウインドウが送信されるべきTCPデータパケットの量を制御するために使用されるように更新される。
留意すべきことに、サービスのTCPフローでは、サービスのTCPデータパケットの送信を制御するために使用される輻輳ウインドウについて、第1往復時間及び目標スループットに従い第1輻輳ウインドウの決定をトリガする、及び第1輻輳ウインドウを用いることにより現在輻輳ウインドウを更新する、時点又は条件は、本発明の本実施形態に限定されない。例えば、第1輻輳ウインドウは、第1往復時間及び目標スループットに従いリアルタイムに決定されて良く、第1輻輳ウインドウは、サービスのTCPフローの現在輻輳ウインドウを更新するために使用される。別の例では、第1輻輳ウインドウは、第1往復時間及び目標スループットに従い特定時間の間隔で決定されて良く、第1輻輳ウインドウは、現在輻輳ウインドウを更新するために使用される。別の例では、TCPデータパケットでパケット損失が生じ、輻輳ウインドウが第2輻輳ウインドウに減少された後、第1往復における第2輻輳ウインドウを用いることによりTCPデータパケットの送信を制御する肯定応答(ACK)が正常に受信された場合、第1輻輳ウインドウは、第1往復時間及び目標スループットに従い決定され、第1輻輳ウインドウは、現在輻輳ウインドウを更新するために使用される。
したがって、本発明の本実施形態において、第1往復時間により反映される現在ネットワーク状態では、可能な限り目標スループットを満たす第1輻輳ウインドウは、サービスのために得られることが期待される目標スループットに従う調整により得られ、第1輻輳ウインドウは、TCPデータパケットの送信を制御するために使用され、サービスのために得られることが期待される目標スループットが可能な限り提供され得るようにする。
以下は、本発明の本実施形態で提供される方法を、図1Aのサーバ101に基づき、及び鯖により端末に提供されるサービスのTCPフローの中でパケット損失が生じた後に、本発明の本実施形態で提供される方法を用いることにより輻輳ウインドウが調整される一例を用いることにより、詳述する。
先ず、ネットワーク内でサービスのTCPデータパケットを送信するために要求される目標スループットが得られ、目標スループットはTCPプロトコルスタックに追加される。
具体的に、サーバが端末にサービスを正常に提供する場合、サーバによりサービスを運ぶTCPデータパケットを送信するために、特定スループットが必要とされる。サービスにより必要とされるスループットは、目標スループットとして定められる。
サーバが端末にサービスを提供するとき、サービスのためにTCPフローが確立され、サーバは、TCPフローの中で、サービスを運ぶTCPデータパケットを送信する。さらに、サーバは端末にサービスを提供する処理において、1つの輻輳ウインドウが、TCPフローを更に確立する。輻輳ウインドウは、TCPフローの中でサービスを運ぶTCPデータパケットの送信を制御するために使用される。送信可能なTCPデータパケットの最大量は、輻輳ウインドウにより決定される。したがって、サービスのためにサーバにより提供されるスループットは、輻輳ウインドウのサイズを調整することにより調整されて良い。
パラメータ、つまり目標スループットは、既存のTCPプロトコルスタックでは設けられない。したがって、目標スループットに従い輻輳ウインドウを調整するために、サーバのTCPプロトコルスタックは、パラメータ、つまり目標スループットを追加することにより変更される必要がある。図1Aのサーバ101は、サーバ101のTCPプロトコルスタックの変更をサポートする。さらに、サーバが端末にサービスを提供する処理において、図1Bに示すように、サーバは、端末へサービスを運ぶTCPデータパケットを送信するためにサーバのエージェントとして第1エージェント装置を用いる代わりに、サービスを運ぶTCPデータパケットを端末へ直接送信する。このように、サーバが端末にのみサービスを提供するとき、サーバは、TCPプロトコルスタックの中の目標スループット及び現在ネットワーク状態を反映する第1往復時間に従い、輻輳ウインドウを調整する。
任意で、図1Aのサーバ101のTCPプロトコルスタックに目標スループットを追加する任意的実装方法では、パラメータ、つまり目標スループットパラメータを追加することにより、ソケットが変更される。サーバが、端末のために、サーバにより必要とされる目標スループットを提供した後に、決定された目標スループットが、目標スループットパラメータの値を割り当てるために使用され、目標スループットパラメータ及び目標スループットパラメータに対応する割り当てられた値(つまり、サービスのために得られることが期待される目標スループット)は、ソケットを用いることにより、サーバのTCPプロトコルスタックへ送信され、目標スループットパラメータ及び目標スループットパラメータに対応する割り当てられた値は、次に、TCPプロトコルスタックに追加される。
例えば、目標スループットパラメータ「target_throughput」が、ソケット関数「setsockopt()」に追加される。サービスを得るために期待される目標スループットが、端末にサービスを提供するために、サーバにより必要とされるスループットに従い決定された後決定された目標スループットは、「target_throughput」の値を割り当てるために使用される。「target_throughput」及び「target_throughput」の割り当てられた値は、「setsockopt()」を使用することにより、サーバのTCPプロトコルスタックへ送信され、次に、目標スループットパラメータ「target_throughput」及び目標スループットパラメータ「target_throughput」の割り当てられた値は、TCPプロトコルスタックに追加される。
続いて、ネットワーク内でTCPデータパケットを送信する処理において、TCPデータパケットの損失が生じた場合、図3に示すように、ステップB301、ステップB302、ステップB303、及びステップB304が続けて実行される。
ステップB301:ネットワーク内でTCPデータパケットを送信する処理において、TCPデータパケットが損失した場合、TCPデータパケットが損失するときに存在する輻輳ウインドウを、第2輻輳ウインドウに調整し、ネットワーク内でTCPデータパケットが第2輻輳ウインドウを用いることにより送信されるよう制御する。
具体的に、送信の処理において、サーバにより端末に提供されるサービスのTCPフローでは、サービスを運ぶTCPデータパケットは、端末が正常に連続してTCPデータパケットを受信すると、端末は、サーバに、TCPデータパケットに対応する肯定応答(Acknowledgement、ACK)をフィードバックする。TCPデータパケットの肯定応答を受信した後に、サーバは、次に、TCPデータパケットをキャッシュから削除し、キャッシュに、別の送信されるべきTCPデータパケットを追加する。本発明の本実施形態では、輻輳ウインドウは、キャッシュに基づき更に設定され、輻輳ウインドウは、輻輳制御を実行するために使用される。送信する処理において、サービスのTCPフロー、輻輳ウインドウの中のTCPデータパケットで、輻輳ウインドウの中のTCPデータパケットが損失した場合、TCPフローの輻輳ウインドウは減少され、輻輳ウインドウは第2輻輳ウインドウに調整される。第2輻輳ウインドウは、TCPデータパケットが損失するときに存在する輻輳ウインドウより小さい。第2輻輳ウインドウを設定するために使用される特定アルゴリズムは、限定されず、例えば、既存のRenoアルゴリズム又はCUBICアルゴリズムである。さらに、サーバが、輻輳ウインドウの中のTCPデータパケットが損失したことをどのように決定するかは限定されず、TCPデータパケットの損失がトリガされるシナリオも限定されない。例えば、TCPデータパケットを送信した後に、サーバは、依然として、事前設定時間の後に端末からのTCPデータパケットの肯定応答を受信しない。別の例では、サーバがTCPデータパケットを送信した後に、TCPデータパケットは、ネットワーク内でTCPデータパケットの送信中に損失される。ここで、TCPデータパケットは、例えば、無線ネットワークにおけるTCPデータパケットの送信中にランダムに損失されるTCPデータパケットである。別の例では、サーバがTCPデータパケットを送信した後に、端末は、TCPデータパケットの肯定応答を時間内にフィードバックしない。別の例では、サーバは、複数のTCPデータパケットを端末へ連続的に送信し、TCPデータパケットはランダムな時間順で端末に到達し、端末は、最後に配列される3複数のTCPデータパケット(例えば、最後に配列される3個のTCPデータパケット)を受信しているが、一番前に配列されるTCPデータパケットを依然として受信しない。この場合、最後に配列される各TCPデータパケットを受信する度に、端末は、サーバへ、一番前に配列されるTCPデータパケットを要求する肯定応答(ACK)を送信する。サーバが複数回(例えば、3回)肯定応答を続けて受信した後、サーバは、一番前に配列されるTCPデータパケットが損失したことを決定する。
TCPデータパケットの損失が生じた後に、ステップB301で、TCPデータパケットが損失したときに存在する輻輳ウインドウは、第2輻輳ウインドウに調整され、第2輻輳ウインドウは、TCPデータパケットの送信を制御するために使用される。ネットワーク内でサーバにより送信可能なTCPデータパケットの最大量は、第2輻輳ウインドウにより決定される。
留意すべきことに、ネットワーク状態が連続的に劣化する(例えば、ネットワーク帯域幅が連続的に減少する)、又はTCPデータパケットの連続損失を引き起こす問題が端末内に生じる場合、ステップB301は、複数回続けて実行されて良い。もちろん、ネットワーク状態が変化しない又は最適であり(例えば、ネットワーク帯域幅が不変のままである又は増大し)、端末内に問題が生じない場合、ステップB302が実行される。
ステップB302:第2輻輳ウインドウを用いることにより送信されるTCPデータパケットの肯定応答が受信される場合、第2輻輳ウインドウに対応する第1往復時間を決定する。
留意すべきことに、「第1輻輳ウインドウ」の「第1」、及び「第2輻輳ウインドウ」の「第2」は、両方とも、互いの間を区別するためにのみ使用される指示子である。
具体的に、ステップB301で、TCPデータパケットが損失するときに存在するTCPの輻輳ウインドウが、第2輻輳ウインドウに調整された後、サーバは、第2輻輳ウインドウを用いることによりサービスのTCPフローにおいて、サービスのTCPデータパケットの端末への送信を制御する。サーバが、第2輻輳ウインドウでの端末へのTCPデータパケットの送信を、第1ラウンドで完了し、第1ラウンドで送信された全てのTCPデータパケットの肯定応答を受信した場合、サーバは、第1ラウンドの第2輻輳ウインドウの中の最後のTCPデータパケットのRTTを計算し、計算したRTTを第1往復時間として定める。
例えば、サーバが、第1ラウンドで端末へ第2輻輳ウインドウ内のTCPデータパケットの送信を完了し、第1ラウンドで送信した全部のTCPデータパケットの肯定応答を受信した後、RFC6289で提供されるアルゴリズム(Jacobson/Karelアルゴリズム)は、最後に受信された肯定応答(第1ラウンドで送信した全部のTCPデータパケットの肯定応答のうち、最後に受信した肯定応答)のRTTを計算するために使用され、計算されたRTTは第1往復時間として使用される。
ステップB303:目標スループット及び第1往復時間に基づき、及び第1アルゴリズム又は第2アルゴリズムに従い、第1輻輳ウインドウを決定する。
具体的に、ネットワークが軽い負荷を有しないが、特定負荷を有するとき、第1往復時間は、反映される現在ネットワーク状態(例えば、ネットワーク内でTCPデータパケットを転送するネットワーク経路長)に強く相関する。より良好なネットワーク状態は、より短い第1往復時間を示す。極端な場合には、ネットワークが深刻な過負荷であるとき、第1往復時間は、ネットワークの再送タイムアウトメカニズム(Retransmission TimeOut、略してRTO)に等しく、ネットワークは深刻な輻輳を有する。
ステップB302において、第1ラウンドで第2輻輳ウインドウ内でTCPデータパケットの肯定応答が受信される場合、これは、ネットワークがより多くのTCPデータパケットの送信を許容できることを示す。この場合、第2輻輳ウインドウは、適正に増加されて良く、第2輻輳ウインドウは、第1輻輳ウインドウまで増加される。
本発明の本実施形態では、第1アルゴリズム又は第2アルゴリズムは、第1輻輳ウインドウを決定するために使用される。特に、第2アルゴリズムでは、パラメータ、つまり目標スループットが導入され、並びに、パラメータ、つまり第1往復時間が同時に導入される。第1往復時間に従い決定される現在ネットワーク状態は、比較的望ましい。したがって、第2アルゴリズムに従い決定される第1輻輳ウインドウについて、第1輻輳ウインドウは、TCPデータパケットの送信を制御するために使用されて、サーバがサービスを運ぶTCPデータパケットを送信するとき、端末が期待目標スループットを得られるようにする。さらに、第1アルゴリズムに従い決定された第1輻輳ウインドウがTCPデータパケットの送信を制御するために使用されるとき、サーバがサービスを提供するときに存在するスループットも、現在ネットワーク状態において可能な限り向上され得、端末が現在ネットワーク状態において最大スループットを得られるようにする。
ステップB304:第2輻輳ウインドウを第1輻輳ウインドウに調整し、TCPデータパケットが第1輻輳ウインドウを用いることによりネットワーク内で送信されるよう制御する。
具体的に、ステップB303において第1輻輳ウインドウが第2輻輳ウインドウを置き換えるために使用された後、ステップB304で、サーバは、第1輻輳ウインドウを用いることにより、サービスを運び及び端末へ送信されるTCPデータパケットを制御する。つまり、ある時点で、サーバは、端末へ、第1輻輳ウインドウに含まれる全部のTCPデータパケット(サービスを運ぶTCPデータパケット)を殆ど送信する。
本実施形態では、サービスを運ぶTCPデータパケットを送信するためにサーバにより必要とされる目標スループットが決定され、目標スループットは、TCPプロトコルスタックに追加される。さらに、サーバが端末へTCPデータパケットを送信するTCPフローで、TCPデータパケットの損失が生じる場合、TCPの輻輳ウインドウは、第2輻輳ウインドウに調整される。第1ラウンドで第2輻輳ウインドウ内のTCPデータパケットが端末への送信に成功した場合(つまり、第1ラウンドで第2輻輳ウインドウ内のTCPデータパケットの肯定応答が端末から受信される)、第1ラウンドにおける第2輻輳ウインドウに対応する第1往復時間が決定される。したがって、ステップB303で、ネットワーク状態(第1ラウンドにおける第2輻輳ウインドウ内のTCPデータパケットを送信するネットワーク状態)は、第1往復時間に従い決定でき、目標スループットに可能な限り適合する第1輻輳ウインドウが、ネットワーク状態において決定される。したがって、ネットワーク状態が第1往復時間に従い決定された後、ステップB304で、第2輻輳ウインドウは、第2輻輳ウインドウが第1輻輳ウインドウまで増加されるまで既存のアルゴリズム(例えば、Renoアルゴリズム及びCUBICアルゴリズム)に従い第2輻輳ウインドウを徐々に増加する代わりに、目標スループットに可能な限り適合する第1輻輳ウインドウに一気に調整され得る。
留意すべきことに、本方法は、特に、大きなネットワーク帯域幅の場合に適切である。ネットワーク帯域幅が増大するにつれ、既存のアルゴリズムと比べて、本方法は、サービスにより良好に適合でき、ネットワーク帯域幅利用は更に向上される。詳細な比較は次の通りである。
Renoアルゴリズム及びCUBICアルゴリズムのような既存のウインドウ調整アルゴリズムでは、TCPデータパケットの損失が生じると、TCPの輻輳ウインドウは大幅に減少される。例えば、Renoアルゴリズムでは、1個のTCPデータパケットが損失すると、輻輳ウインドウは、半分に減少される。別の例では、CUBICアルゴリズムでは、1個のTCPデータパケットが損失すると、輻輳ウインドウは、717/1024に減少される(約3分の1に減少される)。しかしながら、輻輳ウインドウが減少された後、サーバが既存のウインドウ調整アルゴリズムを用いることにより輻輳ウインドウを調整するとき、TCPデータパケットは、ラウンド毎に試行により送信される必要がある。各ラウンドのTCPデータパケットが送信された後、該ラウンドで送信されたTCPデータパケットも損失した場合、輻輳ウインドウはもう一度、大幅に減少される。端末によりフィードバックされた肯定応答が成功裏に受信される場合、輻輳ウインドウは1回増加される。しかしながら、端末によりフィードバックされた肯定応答が各ラウンドで成功裏に受信された後、サービスのために得られることが期待される目標スループットは既存のアルゴリズムでは考慮されず、代わりに、輻輳ウインドウが、アルゴリズムに従いラウンド毎に徐々に増加され、現在ネットワーク状態においてサービスのために提供され得る最大輻輳ウインドウ(第1輻輳ウインドウ)が、次第に到達される。
相応して、サービスのために得られることが期待される目標スループットは、予め決定される。TCPデータパケットの損失が、サーバがTCPデータパケットを端末へ送信する処理の中で生じ且つTCPの輻輳ウインドウが第2輻輳ウインドウに調整された場合でも、第1ラウンドで第2輻輳ウインドウ内のTCPデータパケットが端末への送信に成功すれば、第1ラウンドで第2輻輳ウインドウに対応する第1往復時間が決定され、ネットワーク状態が第1往復時間に従い決定され、そして、目標スループットに可能な限り適合する第1輻輳ウインドウがネットワーク状態において決定される。輻輳ウインドウは、第2輻輳ウインドウから、サービスに対応する目標スループットを可能な限り満たす第1輻輳ウインドウへ一気に増加される。第1ラウンドにおける第2輻輳ウインドウ内のTCPデータパケットを送信するネットワーク状態が望ましい場合、ネットワーク帯域幅が目標スループットを満たすとき、第1輻輳ウインドウを用いることによるTCPデータパケットの送信は、目標スループットを満たすことができる。ネットワーク状態が望ましくない場合でも、第1往復時間及び目標スループットに従い決定される第1輻輳ウインドウは、ネットワーク状態において最大までサービスのビットレートを満たす輻輳ウインドウでもある。
任意的に、本方法は、特に、大きなネットワーク帯域幅を有する無線ネットワークに適する。有線ネットワークと比べて、無線ネットワークにおいてランダムなパケット損失が生じる可能性は比較的大きい。ランダムなパケット損失が生じる度に、輻輳ウインドウは、既存のアルゴリズムにおいて減少される。しかしながら、輻輳ウインドウが減少された後に、その都度、輻輳ウインドウはゆっくりと且つ徐々に第1輻輳ウインドウまで増加され得るだけである。したがって、端末にサービスを正常に提供できる輻輳ウインドウまで回復するための時間遅延は比較的長く、サーバにより端末に正常に提供されるサービスは悪影響を受ける。これに対して、無線ネットワークにおいてランダムなパケット損失が生じる場合でも、ランダムなパケット損失が生じた後に、その都度、本発明の本実施形態ではサービスをサポートするために、パケット損失が生じるときに存在する輻輳ウインドウは、2つのステップを用いることによって第1輻輳ウインドウに調整されるだけである。2つのステップは、ランダムなパケット損失が生じるときに存在する輻輳ウインドウを第2輻輳ウインドウに調整するステップ、及び第2輻輳ウインドウを第1輻輳ウインドウに調整するステップ、であり、ネットワーク帯域幅が効率的に利用され得るようにし、及びサービスが可能な限り直ぐにサポートされるようにする。
図4は、図2に示したTCPデータパケットを送信するTCPに基づく方法に基づく任意的動作手順を示す。しかしながら、説明を容易にするために、図4は、本実施形態に関連する部分のみを示す。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、ネットワーク内でTCPデータパケットを送信する処理においてパケット損失が生じるとき、輻輳ウインドウの調整のために、任意的詳細が提供される。方法は、ステップC401及びステップC402を更に含む。
ステップC401:TCPデータパケットを送信する処理の中でパケット損失が生じる場合、TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整する。第2輻輳ウインドウは、パケット損失がTCPデータパケットで生じるときに存在する第3往復時間に従い決定され、TCPデータパケットを伝送する輻輳ウインドウを第2輻輳ウインドウに調整する減少ステップサイズは、第3往復時間に負に相関する。
具体的に、TCPデータパケットの損失を認識する方法については、前述のステップB301の対応する記載を参照する。例えば、サーバは、複数のTCPデータパケットを端末へ連続的に送信し、TCPデータパケットはランダムな時間順で端末に到達し、端末は、最後にき配列される複数のTCPデータパケット(例えば、最後に配列される3個のTCPデータパケット)を受信しているが、最初に配列されるTCPデータパケットを依然として受信しない。この場合、最後に配列される各TCPデータパケットを受信する度に、端末は、サーバへ、一番前に配列されるTCPデータパケットを要求する肯定応答(ACK)を送信する。サーバが複数回(例えば、3回)肯定応答を続けて受信した後、サーバは、一番前に配列されるTCPデータパケットが損失したことを決定する。留意すべきことに、本実施形態では、サーバがTCPデータパケットを送信した後、(前述の事前設定時間に属する)RTOの後にTCPデータパケットの肯定応答が依然として端末から受信されない場合、TCPデータパケットは損失したことが決定される。
本実施形態では、TCPデータパケットの損失が生じた後、TCPデータパケットが損失したときに存在するRTTが検出され、TCPデータパケットが損失したときに検出されたRTTが第3往復時間として使用される。したがって、第3往復時間は、TCPデータパケットが損失したときに存在するネットワーク状態を反映する。留意すべきことに、TCPデータパケットがランダムに損失する場合、検出される第3往復時間は、ネットワークが軽い負荷を有するときに存在するRTTに等しい。
ステップC401で、送信したデータパケットが損失すると、第2輻輳ウインドウは、第3往復時間に基づき及び第3アルゴリズムに従い決定される。留意すべきことに、第3アルゴリズムで決定される第2輻輳ウインドウは、第3往復時間に負に相関する。具体的に、第3往復時間は、第3アルゴリズムの入力として使用される。第3往復時間が増加するにつれ、第3アルゴリズムに従い決定される第2輻輳ウインドウは減少する。第3アルゴリズムが前述の機能を有することに基づき、特定の実装形式又は第3アルゴリズムのステップのいずれも、本実施形態において限定されない。例えば、TCPデータパケットの損失が生じるときに輻輳ウインドウが減少される必要のある大きさは、第3アルゴリズムを設計するために、サービスの要件に従い決定されて良い。別の例では、既存のアルゴリズム(例えば、Renoアルゴリズム又はCUBICアルゴリズム)が第3アルゴリズムとして使用されて良い。
任意的に、ステップC401で、第3アルゴリズムに従う第2輻輳ウインドウに、TCPデータパケットを送信する輻輳ウインドウを調整するステップは、具体的に以下を含む:
第3往復時間が遅延間隔の下限に等しい場合、パケット損失がTCPデータパケットで生じるときに存在する輻輳ウインドウを第2輻輳ウインドウとして用いるステップ、又は、第3往復時間が遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを第2輻輳ウインドウとして用いるステップ、であって、遅延間隔の上限は、ネットワーク内のTCPの再送タイムアウト(Retransmission Time Out、略してRTO)であり、遅延間隔の下限は、ネットワークが軽い負荷を有するときに存在する往復時間である。
具体的に、サービスを運ぶTCPフローでは、1RTOがTCPプロトコルのTCPフローについて定められる。任意的に、RTOは手動で変更されて良く、又は、RTOは現在ネットワークの実験データに従い設定される。本実施形態では、RTOは、遅延間隔の上側境界として決定される。サーバが端末へサービスを運ぶTCPデータパケットを送信した後、サーバが特定時間の後に端末からTCPデータパケットの肯定応答を未だ受信しない場合も、パケット損失が生じたことが決定される。
さらに、ネットワークが軽負荷を有するときに存在する往復時間は、ネットワークがネットワーク輻輳を有しない(つまり、軽いネットワーク負荷である)場合に、サーバがTCPデータパケットを端末へ送信した後にTCPデータパケットの肯定応答が端末から受信されるときに計算される、サービスを運ぶTCPデータパケットのRTTを表す。任意的に、特定の実装では、ネットワークが軽いネットワーク負荷であるとき、サーバは、端末へ、サービスを運ぶTCPデータパケットを送信し、各TCPデータパケットのRTTを検出し、検出したRTTの最小RTTを選択する。本実施形態では、遅延間隔の下限は、検出したRTTの選択された最小RTTとして決定される。
TCPデータパケットの損失は、TCPの輻輳ウインドウを用いることによりサーバがサービスを運ぶTCPデータパケットの端末への送信を制御する処理の中で生じる。TCPデータパケットの損失が生じるときに存在する第3往復時間が遅延間隔の下限に等しい場合、これは、ネットワーク状態が望ましいこと、及びTCPデータパケットの損失が時折のみ(例えば、ランダムなパケット損失)であることを示す。この場合、TCPデータパケットが損失するときに存在する輻輳ウインドウは減少されない。つまり、TCPデータパケットが損失するときに存在する輻輳ウインドウは第2輻輳ウインドウとして使用され、損失したTCPデータパケットが再び送信される必要があるだけである。このように、ネットワーク状態が望ましいとき、パケット損失が時折生じるだけである場合(例えば、ランダムなパケット損失)、輻輳ウインドウは減少される必要がない。TCPデータパケットの損失が検出されると輻輳ウインドウが大幅に減少される従来技術と比べて、本実施形態では、ネットワーク帯域幅はより効率的に利用でき、サービスは可能な限りサポートされる。
TCPデータパケットの損失は、TCPの輻輳ウインドウを用いることによりサーバがサービスを運ぶTCPデータパケットの端末への送信を制御する処理の中で生じる。TCPデータパケットの損失が生じるときに存在する第3往復時間が遅延間隔の上限に等しいこと、つまり、第3往復時間がRTOに等しいことが検出された場合、これは、ネットワークが深刻な輻輳を有することを示す。この場合、輻輳ウインドウは減少される必要がある。TCPデータパケットが損失したときに存在する輻輳ウインドウは、事前設定ウインドウまで減少される。留意すべきことに、第3往復時間がRTOに達すると、TCPデータパケットが損失したことが決定され、TCPデータパケットの第3往復時間の検出が終了する。したがって、第3往復時間は、最大でRTOになり得る。
任意的に、第3往復時間が遅延間隔の下限と上限との間にある場合、第3アルゴリズムに従い、第2輻輳ウインドウが事前設定輻輳ウインドウより大きいく、TCPデータパケットが損失したときに存在する輻輳ウインドウより小さいことが決定される。第3往復時間が増加するにつれ、第3アルゴリズムに従い決定される第2輻輳ウインドウは減少する。
ステップC402:第2輻輳ウインドウを用いることにより、TCPデータパケットを送信する。
具体的に、サービスのTCPフローにおいて、TCPデータパケットの損失が生じた場合、第2輻輳ウインドウがステップC401で決定され、ステップC402で、第2輻輳ウインドウは、TCPデータパケットが損失したときに存在する輻輳ウインドウを置き換えるために使用されて、輻輳ウインドウの更新及び置換が実行され、次に第2輻輳ウインドウがサービスのTCPデータパケットの送信を制御するために使用されるようにする。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第2アルゴリズムの任意的詳細を更に提供するために、第1アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、目標スループットに正に相関し、第1往復時間に負に相関し、第1アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、第1往復時間に負に相関する。
具体的に、ネットワーク状態を反映する第1往復時間が第2往復時間より短い又は等しい場合、これは、ネットワーク輻輳がネットワーク内で生じないこと、及びTCPデータパケットが損失されるときに存在するネットワーク帯域幅が目標スループットを満たすことができること、並びに、輻輳ウインドウが第2アルゴリズムに従い増加されて良いことを示す。具体的に、第1輻輳ウインドウが第2アルゴリズムに従い決定されるとき、目標スループットが増大するにつれ、第2アルゴリズムに従い決定される第1輻輳ウインドウも増大する。第1往復時間が増加するにつれ、第2アルゴリズムに従い決定される第1輻輳ウインドウは減少する。任意的に、第1往復時間が第2往復時間より短い又は等しい場合、これは、ネットワーク輻輳が生じないこと、第1輻輳ウインドウが第2アルゴリズムに従い決定されるときに存在する目標スループットが第1往復時間より大きな重みを有することを示す。サーバが、決定した第1輻輳ウインドウを用いることにより、サービスを運ぶTCPデータパケットを端末へ送信するとき、目標スループットが達成され得る。したがって、サービスのTCPデータパケットをパースすることにより端末により得られるビットレートは、サービスにより必要とされるビットレートを満たし、サーバは、端末に正常にサービスを提供できる。
ネットワーク状態を反映する第1往復時間が第2往復時間より長い場合、これは、TCPデータパケットが損失するときに存在するネットワーク帯域幅が、もはや目標スループットを満たさないこと、及びネットワーク輻輳がネットワーク内で生じることを示す。この場合、第1輻輳ウインドウは、第1アルゴリズムを用いることにより決定される。第1輻輳ウインドウが第1アルゴリズム第1輻輳ウインドウの第1往復時間に従い決定されるとき、第1往復時間が増大するにつれ、第2アルゴリズムに従い決定される第1輻輳ウインドウは減少する。サーバが、第1アルゴリズムに従い決定される第1輻輳ウインドウを用いることにより、端末へ送信されるTCPデータパケットを制御するとき、第1アルゴリズムに従い決定される第1輻輳ウインドウにより提供されるスループットは、目標スループットに到達できず、目標スループットからの差分が最小化できるだけである。したがって、TCPデータパケットをパースすることにより端末により得られる、サービスのビットレートは、サーバにより必要とされるビットレートを満たすことができない。しかしながら、サービスは、現在ネットワーク状態における最大までサポートでき、目標スループットからの差分は縮小され、サーバは、端末にサービスを提供するために可能な限りサポートされる。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第2アルゴリズムの任意的詳細を更に提供するために、第1アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして使用するステップは、具体的に以下を含む:
第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、高速回復値を輻輳ウインドウの増加ステップサイズとして用いるて、第1輻輳ウインドウを得るステップであって、高速回復値はスロースタートのものと同じ大きさの程度を有する、ステップと、
第1往復時間がネットワークにおけるTCPの再送タイムアウトRTOに等しい場合、最大セグメントサイズ(Maximum Segment Size、略してMSS)を、輻輳ウインドウの増加ステップサイズとして用いて、第1輻輳ウインドウを得るステップと、
第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のTCPの再送タイムアウトRTOとの間の間隔の範囲内で変化する場合、輻輳ウインドウの増加ステップサイズの値を、1MSSと高速回復値との間であり且つ第1往復時間と負に相関するよう設定して、第1輻輳ウインドウを得るステップ。
具体的に、スロースタート閾(slow start threshold、略してssthresh)は、輻輳ウインドウについて事前設定される。第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、これは、ネットワーク状態が望ましいことを示す。この場合、第1往復時間の輻輳ウインドウがスロースタート閾より短いことが検出された場合、輻輳ウインドウの増加ステップサイズが第1アルゴリズムに従い決定されるとき、第1アルゴリズムに従い決定される高速回復値(第1アルゴリズムに従い決定される増加ステップサイズ)、及びスロースタートアルゴリズムに従い決定される増加ステップサイズは、同程度の大きさに属し、第1往復時間の検出された輻輳ウインドウは、第1輻輳ウインドウを得るために高速回復値を増大するために使用される。留意すべきことに、本実施形態では、スロースタート又は対応するスロースタートアルゴリズムのいずれも限定されず、既存のスロースタート及び対応するスロースタートアルゴリズムが実装のために使用できる。
検出された1往復時間がRTOに達した場合、これは、第1往復時間により反映される現在ネットワーク状態において、深刻な輻輳が生じていることを示す。この場合、第1アルゴリズムでは、輻輳ウインドウの増加ステップサイズの値は、1MSSである。このような場合には、ラウンドの輻輳ウインドウのTCPデータパケットが送信に成功した場合でも、現在輻輳ウインドウは、1MSSだけ増大されて、第1輻輳ウインドウを得、及び第1輻輳ウインドウは、現在輻輳ウインドウを更新し及び置換するために使用される。
検出された第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のTCPの再送タイムアウトRTOとの間の間隔の範囲内にある場合、第1アルゴリズムでは、相応して、輻輳ウインドウの増加ステップサイズの値は、1MSSと高速回復値との間になるよう設定される。しかしながら、第1アルゴリズムに従い決定される増加ステップサイズは、第1往復時間に負に相関する。このような場合、ラウンドの輻輳ウインドウのTCPデータパケットが送信に成功した場合でも、増加ステップサイズは、現在輻輳ウインドウに対して増加されて、第1輻輳ウインドウを得る。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第2アルゴリズムの任意的詳細を更に提供するために、第2アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして使用するステップは、具体的に以下を含む:
目標スループット及び第1往復時間に従い目標ウインドウを計算し、目標ウインドウとネットワーク内のTCPの現在輻輳ウインドウとの間の差分を、輻輳ウインドウの増加ステップサイズの値として用いて、第1輻輳ウインドウを決定するステップ。
具体的に、第1往復時間が第2往復時間より短い又は等しい場合、これは、第1往復時間により反映されるネットワーク状態が望ましいこと、ネットワーク帯域幅は目標スループットより大きい又は等しいこと、並びに、輻輳ウインドウは、サービスのために提供されるスループットを向上するために増大されて良いことを示す。現在輻輳ウインドウを現在ネットワーク状態において目標スループットを提供できる目標ウインドウまで一気に増大するために、輻輳ウインドウの増加ステップサイズの値は、目標ウインドウとネットワーク内のTCPの現在輻輳ウインドウとの間の差分に設定される。このように、第1往復時間の検出中に存在する輻輳ウインドウを増加ステップサイズだけ増加することにより得られる第1輻輳ウインドウは、目標ウインドウにまさに等しい。したがって、サービスの目標スループットを可能な限り満たす目標ウインドウは、TCPデータパケットの送信を制御するために現在ネットワーク状態において直接に使用でき、それにより、サービスを可能な限り提供する。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的詳細を更に提供するために、目標スループットは、TCPデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い決定される。
具体的に、図1Bが一例として用いられる。サーバが端末にサービスを提供する処理において、サーバは、パースすることにより、端末に各サービスを提供するためにサーバにより別個に必要とされるビットレートを得ることができ、及び、端末に各サービスを提供するためにサーバにより別個に必要とされる目標スループットは、パースすることにより得られるビットレートに従い計算される。パージングの具体的実装方法は、本発明の本実施形態に限定されない。例えば、各サービスは、通常、対応する標準ビットレートを有し、サービスを運ぶTCPデータパケットを送信するために要求される目標スループットは、ビットレートに従い相応して決定され、サービスに対応する目標スループットは、サービスのビットレート値より大きい。このように、サーバが目標スループットを用いることにより端末にサービスを提供するとき、TCPデータパケットをパースすることにより端末により得られるビットレートは、サービスにより必要とされるビットレートを満たす。つまり、パースすることにより端末により得られる、サービスのビットレートは、サービスに対応する標準ビットレートより大きい又は等しい。
任意的に、TCPデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い目標スループットを決定するアルゴリズムは、目標スループットが、サービスのビットレートと拡張係数との積に等しく、拡張係数は1より大きい。
図5は、目標スループットを更新する動作手順を示す。しかしながら、説明を容易にするために、図5は、本実施形態に関連する部分のみを示す。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的詳細は、現在ネットワーク状態に従い目標スループットを更新する観点から更に提供される。図5を参照すると、方法は、ステップD501、ステップD502、及びステップD503を更に含む。
ステップD501:ネットワーク内でTCPデータパケットを送信する実際スループットを検出する。
ステップD502:実際スループットの目標スループットに対する比が第1閾より大きく、且つネットワーク内でTCPデータパケットを送信する第4往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、目標スループットを増大する。
ステップD503:実際スループットの目標スループットに対する比が第3閾より小さく、且つ第4往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、目標スループットを減少する。
留意すべきことに、第3閾は第1閾より小さく、第2閾は第4閾より小さい。
具体的には、ネットワーク内でサービスのTCPデータパケットを送信する処理において、サービスに対応するTCPフローの輻輳ウインドウは、目標スループットに従い調整されて良く、調整された輻輳ウインドウがサービスのTCPデータパケットを送信するために使用されるようにし、サービスにより必要とされる目標スループットが可能な限り満たされるようにする。しかしながら、前述の実施形態では、サービスのビットレートは、目標スループットを決定する間に導入される単なるパラメータであり、ネットワーク状態の因子は考慮されない。本実施形態では、目標スループットの決定中に、サービスのビットレート及び現在ネットワーク状態の両方が考慮される。
具体的に、ネットワーク内でTCPデータパケットを送信する処理において、TCPデータパケットを送信する現在RTTが検出され、検出された現在RTTは第4往復時間として使用される。ネットワーク内でTCPデータパケットを送信する実際スループットが検出される。検出された現在スループットは、実際スループットである。実際スループットを決定する因子は、ネットワーク状態、送信端のスループット、及び受信端のスループットを含む。図1Aに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク103のネットワーク状態、サーバ101のスループット、及び端末102のスループットを含む。図1Bに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク203のネットワーク状態、第1エージェント装置204のスループット、及び端末202のスループットを含む。図1Cに示すシステムを一例として用いると、実際スループットを決定する因子は、ネットワーク303のネットワーク状態、第1エージェント装置304のスループット、及び第2エージェント装置305のスループットを含む。更に留意すべきことに、本実施形態では、第4往復時間と実際スループットを同時に検出する頻度及び回数は制限されない。例えば、第4往復時間及び実際スループットは、特定時間間隔に一度、同時に検出されて良い。
実際スループットの目標スループットに対する比が計算され、第4往復時間と基準往復時間(つまり、ネットワークが軽いネットワーク負荷のネットワーク状態にある場合にTCPデータパケットが送信されるときに検出されるRTT)との間の差が計算される。
比が第1閾より大きく、且つ差が第2閾より小さい場合、これは、ネットワーク状態が望ましいこと、及びネットワークの物理帯域幅が目標スループットより大きいことを示す。ステップD502は、目標スループットを増大するために実行されて良く、目標スループットの割り当て値は、TCPプロトコルスタックの中で更新される。任意的に、第1閾は、約1の値である。例えば、第1閾は90%である。任意的に、第2閾は、約0の値である。任意的に、ステップD502の後に増大された目標スループットがネットワーク帯域幅より小さいことが保証されるとき、ステップD502で目標スループットを増大するステップ長サイズは、制限されない。
比が第3閾より小さく、且つ差が第4閾より大きい場合、これは、ネットワーク状態が粗悪であること、及びネットワークの物理帯域幅が目標スループットより小さいことを示す。ステップD503は、目標スループットを減少するために実行されて良く、目標スループットの割り当て値は、TCPプロトコルスタックの中で更新される。任意的に、第3閾は50%より小さく又は等しい。例えば、第1閾は20%である。任意的に、第2閾は、比較的大きな遅延値である。任意的に、ステップD502の後に減少された目標スループットがネットワーク帯域幅より小さいことが保証されるとき、ステップD503で目標スループットを減少するステップ長サイズは、制限されない。
本実施形態では、サービスにより必要とされるビットレートに従い、サービスのTCPデータパケットを送信するために要求される目標スループットを決定することに基づき、現在ネットワーク状態が更に考慮される。プロトコルスタックの中の目標スループットの値は、現在ネットワーク状態に従いリアルタイムに調整される。したがって、過度に大きな目標スループットに従い決定される輻輳ウインドウが回避でき、輻輳ウインドウが非常に小さな目標スループットを増大することにより増大できるので、TCPデータパケットが損失される確率は増大され、それにより、ネットワークの物理帯域幅を効率的に利用する。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、任意的実装方法では、目標スループットは、目標スループットパラメータを用いることにより、TCPプロトコルスタックへ転送される。具体的に、図1Aに基づき提供されるシステムでは、目標スループットパラメータが、図1AのサーバのTCPプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。図1Bで提供されるシステムでは、目標スループットパラメータが、第1プロキシサーバ204のTCPプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。図1Cで提供されるシステムでは、目標スループットパラメータが、第1プロキシサーバ304のTCPプロトコルスタックに追加され、目標スループットは、目標スループットパラメータの値を割り当てるために使用される。
留意すべきことに、前述の実施形態及び本発明の実施形態は、全て、図1Aに基づき提供されるシステムを一例として用いることにより記載され、前述の実施形態及び本発明の実施形態は、図1Aのサーバ101に適する。留意すべきことに、図1Bで提供されるシステムでは、前述の実施形態及び本発明の実施形態は、第1プロキシサーバ204に適する。留意すべきことに、図1Cで提供されるシステムでは、前述の実施形態及び本発明の実施形態は、第1プロキシサーバ304に適する。
本発明の一実施形態では、本実施形態は、図1Aのサーバ101への方法の適用に基づき、前述の実施形態及び本発明の実施形態についての任意的詳細を更に提供する。方法は、以下を含む。
サーバは、TCPデータパケットの中のパケットをパースすることによりサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得る。
具体的に、サーバが端末にサービスを提供する処理において、サービスを運び及びサーバにより端末へ送信されるTCPデータパケットについて、サーバは、TCPデータパケットに含まれるパケットの中のフィールドを決定し、該フィールドの中に、サービスにより必要とされるビットレートを記録する。TCPデータパケットをパースすることにより端末により得られるサービスが、サービスにより必要とされるビットレートを満たす場合、これは、サーバが正常に且つ成功裏に端末にサービスを提供することを示す。
留意すべきことに、サービスは、TCPデータパケットに含まれるパケットに追加され、具体的に、サービスに関連するデータがパケットに追加される。したがって、数値の観点では、第3アルゴリズムに従い計算される目標スループットの値は、サービスにより必要とされるビットレートの値より大きい。
本発明の一実施形態では、図1Aのサーバがサーバ101のTCPプロトコルスタックの変更をサポートしない場合(サーバ101がTCPプロトコルスタックへの目標スループットの追加をサポートしないことが含まれる)、図1Bにおいて、第1エージェント装置204は、サーバ201のエージェントとして使用され、第1エージェント装置204は、第1エージェント装置204のTCPプロトコルスタックの変更をサポートする(第1エージェント装置204がTCPプロトコルスタックへの目標スループットの追加をサポートすることが含まれる)。図1Bに示すように、第1エージェント装置204はネットワークに追加され、第1エージェント装置204は、サービスを運ぶTCPデータパケットを端末202へ送信する、サーバ201のエージェントとして動作する。この場合、図1Bで、方法が図1Aのサーバ101に適用される一例に基づき記載される前述の実施形態及び本発明の実施形態は、もはや図1Bのサーバ201に適用されないが、代わりに、図1Bの第1エージェント装置204に適用される。
方法が図1Aのサーバ101に適用される一例を用いることにより記載される前述の実施形態及び本発明の実施形態が、図1Bの第1エージェント装置204に適用されるとき、端末202が目標スループットを計算するという相違点がある。他のステップでサーバが第1エージェント装置204により置き換えられた後、前述の実施形態及び本発明の実施形態は、第1エージェント装置204に適用できる。相違点は、以下のように詳細に具体的に記載される。
前述の実施形態及び本発明の実施形態で提供されるTCPデータパケットを送信する方法は、第1エージェント装置に適用される。第1エージェント装置は、TCPデータパケットを端末へ送信するために、サーバのエージェントとして動作する。目標スループットは、端末により決定される。決定方法は、TCPデータパケットの中のパケットをパースすることによりサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得るステップを含む。第1エージェント装置は、端末から目標スループットを得る。
具体的に、サーバは、変更されることをサポートしないTCPプロトコルスタックを有し、第1エージェント装置は、変更されることをサポートするTCPプロトコルスタックを有し、端末はTCPプロトコルスタックを有する。サーバは、サーバのTCPプロトコルスタックに従い、サービスを運ぶTCPデータパケットを生成し、TCPデータパケットは、サーバと第1エージェント装置との間でTCP/IPプロトコルに基づき交換される。サービスを運び且つ第1エージェント装置によりサーバから受信されるTCPデータパケットについて、第1エージェント装置は、第1エージェント装置のTCPプロトコルスタックに基づきTCPデータパケットを変更し(TCPデータパケットに含まれるパケットの中で運ばれるサービスは変更されなくて良い)、変更したTCPデータパケットを端末へ送信する。端末は、端末のTCPプロトコルスタックに基づきTCPデータパケットをパースし、サービスを運ぶパケットをパースして取り出し、パケットをパースすることによりサービスに関連するデータを得る。
パケットは、更に、サービスにより必要とされるビットレートを記録する。TCPデータパケットをパースすることによりパケットを得た後に、端末は、パケットをパースして、サービスにより必要とされるビットレートを得て、該ビットレートを拡張係数により乗算して、目標スループットを得て良い。
その後、端末は、TCPのソケットを変更し、パラメータ、つまり目標スループットパラメータを追加し、目標スループットを用いることにより目標スループットパラメータの値を割り当て、ソケットを用いることにより端末のTCPプロトコルスタックへ、目標スループットパラメータ及び目標スループットパラメータの割り当て値(目標スループット)を送信する。例えば、目標スループットパラメータ「target_throughput」が、ソケット関数「setsockopt()」に追加される。目標スループットがビットレート及び拡張係数に従い計算された後、計算された目標スループットは、「target_throughput」の値を割り当てるために使用される。「target_throughput」及び「target_throughput」の割り当てられた値は、「setsockopt()」を用いることにより、端末のTCPプロトコルスタックへ送信される。
端末は、パケットを生成し、パケットのTCPオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値(ソケットを用いることによりTCPプロトコルスタックへ送信された目標スループットパラメータ及び目標スループットパラメータの割り当て値)をTCPオプションに追加する。端末は、TCPデータパケット(TCPデータパケットは、(目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する)TCPオプションを有するパケットを含む)を第1エージェント装置へ送信する。第1エージェント装置は、TCPデータパケットをパースして、パケットのTCPオプションに含まれる、目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て良い。さらに、第1プロキシサーバは、目標スループットパラメータ及び目標スループットパラメータの割り当て値を、第1プロキシサーバのTCPプロトコルスタックに追加して良い。
任意的に、端末のTCPプロトコルスタックが変更されることをサポートする場合、本実施形態では、目標スループットパラメータ及び目標スループットパラメータの割り当て値がソケットを用いることにより受信された後、「目標スループットパラメータ及び目標スループットパラメータの割り当て値」は、端末のTCPプロトコルスタックに追加される。もちろん、目標スループットパラメータ及び目標スループットパラメータの割り当て値がソケットを用いることにより受信された場合でも、本実施形態では、目標スループットパラメータ及び目標スループットパラメータの割り当て値は、端末のTCPプロトコルスタックに追加されなくても良いが、代わりに、パケット(目標スループットパラメータ及び目標スループットパラメータの割り当て値が該パケットのTCPオプションに追加される)が直接生成される。端末は、第1エージェント装置へ、パケットを運ぶTCPデータパケットを送信して、第1エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1エージェント装置のTCPプロトコルスタックに追加できるようにする。
本発明の一実施形態では、方法が図1Aのサーバ101に適用される一例に基づき記載される、前述の実施形態及び本発明の実施形態は、任意的に最適化される。図1Aのサーバ101がサーバ101のTCPプロトコルスタックの変更をサポートしない場合(サーバ101がTCPプロトコルスタックへの目標スループットの追加をサポートしないことが含まれる)、図1Cにおいて、第1エージェント装置304は、サーバ101のエージェントとして動作する。第1エージェント装置304は、第1エージェント装置304のTCPプロトコルスタックの変更をサポートする(第1エージェント装置304が目標スループットのTCPプロトコルスタックへの追加をサポートすることが含まれる)。さらに、第2エージェント装置305がネットワークに更に追加されて良い。図1Cに示すように、第2エージェント装置305は、第1エージェント装置304とTCPデータパケットを交換するために、端末302のエージェントとして動作する。第2エージェント装置305を追加する1つの理由は、TCPプロトコルスタックが第1エージェント装置304と第2エージェント装置305との間で共有されることであり、第2エージェント装置305が、TCPデータパケットを用いることにより、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1エージェント装置304へ送信することを含む。第2エージェント装置305を追加する別の理由は、同じ第2エージェント装置305が複数の端末302のエージェントとして動作することであり、第2エージェント装置305は、TCPデータパケットを第1エージェント装置304と交換するために、各端末302のエージェントとして動作する。
この場合、図1Cで、方法が図1Aのサーバ101に適用される一例に基づき記載される前述の実施形態及び本発明の実施形態は、もはや図1Cのサーバ101に適用されないが、代わりに、図1Cの第1エージェント装置304に適用される。方法が図1Aのサーバ101に適用される一例を用いることにより記載される前述の実施形態及び本発明の実施形態が、図1Cの第1エージェント装置304に適用されるとき、端末302が目標スループットを計算するという相違点がある。他のステップでサーバが第1エージェント装置304により置き換えられた後、前述の実施形態及び本発明の実施形態は、第1エージェント装置304に適用できる。相違点は、以下のように詳細に具体的に記載される。
前述の実施形態及び本発明の実施形態で提供されるTCPデータパケットを送信する方法は、第1エージェント装置に適用される。第1エージェント装置は、TCPデータパケットを第2エージェント装置へ送信するためにサーバのエージェントとして動作し、第2エージェント装置がTCPデータパケットを端末へ転送するようにする。その後、端末は、目標スループットを決定し、目標スループットを第2エージェント装置へ送信する。目標スループットを決定する方法は、TCPデータパケットの中のパケットをパースしてサービスのビットレートを得て、該ビットレートを拡張係数で乗算して、目標スループットを得るステップを含む。さらに、第1エージェント装置は、第2エージェント装置から目標スループットを得る。
具体的に、サーバは、変更されることをサポートしないTCPプロトコルスタックを有し、第1エージェント装置は、変更されることをサポートするTCPプロトコルスタックを有し、第2エージェント装置はTCPプロトコルスタックを有し、端末はTCPプロトコルスタックを有する。サーバは、サーバのTCPプロトコルスタックに従い、サービスを運ぶTCPデータパケットを生成し、TCPデータパケットは、サーバと第1エージェント装置との間でTCP/IPプロトコルに基づき交換される。サービスを運び且つ第1エージェント装置によりサーバから受信されるTCPデータパケットについて、第1エージェント装置は、第1エージェント装置のTCPプロトコルスタックに基づきTCPデータパケットを変更し(TCPデータパケットに含まれるパケットの中で運ばれるサービスは変更されなくて良い)、変更したTCPデータパケットを第2エージェント装置へ送信する。第2エージェント装置は、第2エージェント装置のTCPプロトコルスタックに基づきTCPデータパケットを再び変更し、再び変更されたTCPデータパケットを端末へ送信する。端末は、再び変更されたTCPデータパケットをパースし、サービスを運ぶパケットをパースして取り出し、次に、パケットをパースすることによりサービスに関連するデータを得る。
パケットは、更に、サービスにより必要とされるビットレートを記録する。TCPデータパケットをパースすることによりパケットを得た後に、端末は、パケットをパースして、サービスにより必要とされるビットレートを得て、該ビットレートを拡張係数により乗算して、目標スループットを得て良い。
その後、端末は、TCPのソケットを変更し、パラメータ、つまり目標スループットパラメータを追加し、サービスにより必要とされるビットレートに従い計算された目標スループットを用いることにより目標スループットパラメータの値を割り当て、ソケットを用いることにより端末のTCPプロトコルスタックへ、目標スループットパラメータ及び目標スループットパラメータの割り当て値(目標スループット)を送信する。例えば、目標スループットパラメータ「target_throughput」が、ソケット関数「setsockopt()」に追加される。端末がサービスにより必要とされるスループットに従い目標スループットを計算した後に、計算された目標スループットは、「target_throughput」の値を割り当てるために使用される。「target_throughput」及び「target_throughput」の割り当てられた値は、「setsockopt()」を用いることにより、端末のTCPプロトコルスタックへ送信される。
端末は、第1パケットを生成し、第1パケットのTCPオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値(ソケットを用いることによりTCPプロトコルスタックへ送信された目標スループットパラメータ及び目標スループットパラメータの割り当て値)をTCPオプションに追加する。端末は、TCPデータパケット(TCPデータパケットは、(目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する)TCPオプションを有する第1パケットを含む)を第2エージェント装置へ送信する。
第2エージェント装置は、TCPデータパケットをパースして、第1パケットのTCPオプションに含まれる、目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て良い。第2エージェント装置は、第2パケットを生成し、第2パケットのTCPオプションを拡張し、目標スループットパラメータ及び目標スループットパラメータの割り当て値(第1パケットの中の、目標スループットパラメータ及び目標スループットパラメータの割り当て値)をTCPオプションに追加する。第2エージェント装置は、TCPデータパケット(TCPデータパケットは、(目標スループットパラメータ及び目標スループットパラメータの割り当て値を有する)TCPオプションを有する第2パケットを含む)を第1エージェント装置へ送信する。
第1エージェント装置は、第2エージェント装置から受信したTCPデータパケットをパースし、第2パケットをパースして取り出し、第2パケットから目標スループットパラメータ及び目標スループットパラメータの割り当て値を得て、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1エージェント装置のTCPプロトコルスタックに追加する。
任意的に、目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1パケットから得た後に、第2エージェント装置は、目標スループットパラメータ及び目標スループットパラメータの割り当て値を、第2エージェント装置のTCPプロトコルスタックに追加して良い。もちろん、第2エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1パケットから得た後に、本実施形態では、第2エージェント装置のTCPプロトコルスタックは、変更されなくて良いが(つまり、目標スループットパラメータ及び目標スループットパラメータの割り当て値は、第2エージェント装置のTCPプロトコルスタックに追加される)、代わりに、第2パケット(目標スループットパラメータ及び目標スループットパラメータの割り当て値は、第2パケットのTCPオプションに追加される)が直接に生成される。第2エージェント装置は、第1エージェント装置へ、パケットを運ぶTCPデータパケットを送信して、第1エージェント装置が目標スループットパラメータ及び目標スループットパラメータの割り当て値を第1エージェント装置のTCPプロトコルスタックに追加できるようにする。
留意すべきことに、第2エージェント装置が追加される。第1エージェント装置及び第2エージェント装置は、固定ルーティング経路を有するので、ネットワークが軽負荷を有するとき、第1エージェント装置から第2エージェント装置へのTCPデータパケットのRTTは、基本的に不変である。したがって、第2エージェント装置が1又は複数の端末のエージェントとして動作するとき、第2エージェント装置と第1エージェント装置との間の既存TCPフローのRTTがネットワークが軽負荷を有するときに既に決定された後、既存TCPフローに対応する遅延間隔の下限(ネットワークが軽負荷を有するときに存在する既存TCPフローのRTT)が決定される。サービスのTCPフローが第2エージェント装置と第1エージェント装置との間に新たに追加される場合、ラウンドの輻輳ウインドウのRTTの中から、該ラウンドの輻輳ウインドウのRTTのうちの最小RTTを、新たに追加されるTCPフローに対応する遅延間隔の下限として選択することは要求されないが、代わりに、既存TCPフローに対応する遅延間隔の下限は、サービスの新たに追加されるTCPフローに対応する遅延間隔の下限として直接に使用される。つまり、ネットワークが軽負荷を有するときに存在する既存TCPフローのRTTは、ネットワークが軽負荷を有するときに存在するサービスの新たに追加されるTCPフローのRTTとして直接に使用される。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、方法が図1Aのサーバ101、図1Bの第1エージェント装置204、又は図1Cの第1エージェント装置304に適用されるかに関わらず、目標スループットは、サービスのビットレートに基づき計算され(ビットレートは、目標スループットを得るために拡張係数により乗算される)、本実施形態では、サービスは以下のように詳述される:
サービスがオーディオサービスである場合、サービスのビットレートは、オーディオサービスのオーディオビットレートである;
サービスがビデオサービスである場合、サービスのビットレートは、ビデオサービスのビデオビットレートである;又は
サービスがオーディオ及びビデオサービスである場合、サービスのビットレートは、オーディオ及びビデオサービスのオーディオ及びビデオビットレートである。
具体的に、端末にサービスを提供するとき、サーバはサービスを運ぶパケットを生成する。同時に、パケットの中でフィールドが決定され、サービスにより必要とされるビットレートが該フィールドに記録される。サービスがオーディオサービスである場合、オーディオサービスにより必要とされるオーディオビットレートは、パケットの該フィールドに記録される。サービスがビデオサービスである場合、ビデオサービスにより必要とされるビデオビットレートは、パケットの該フィールドに記録される。サービスがオーディオ及びビデオサービスである場合、オーディオ及びビデオサービスにより必要とされるオーディオ及びビデオビットレートは、パケットの該フィールドに記録される。
本発明の一実施形態で、図6は、本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する装置600の論理構造の概略図である。図6に示すように、装置600は、少なくとも、遅延決定ユニット601と、ウインドウ調整ユニット602と、データパケット送信ユニット603と、を含む。
遅延決定ユニット601は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得て、第2往復時間を決定するよう構成される。ここで、第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウ及び第2アルゴリズムに従い決定される輻輳ウインドウが等しいサイズを有するときに存在する往復時間であり、第1アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第1往復時間に従い決定され、第2アルゴリズムでは、輻輳ウインドウの増加ステップサイズは第1往復時間及び目標スループットに従い決定され、目標スループットは、TCPデータパケットに対応するサービスのために得られることが期待されるスループットである。
調整ユニット602は、第1往復時間が第2往復時間より長い場合、第1アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして使用し、又は、第1往復時間が第2往復時間より短い又は等しい場合、第2アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして使用するよう構成される。
データパケット送信ユニット603は、第1輻輳ウインドウを用いることによりTCPデータパケットを送信するよう構成される。
任意的に、第2アルゴリズムにおいて決定される輻輳ウインドウの増加ステップサイズは、目標スループットに正に相関し、第1往復時間に負に相関し、第1アルゴリズムにおいて決定される輻輳ウインドウの増加ステップサイズは、第1往復時間に負に相関する。
任意的に、目標スループットは、TCPデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い決定される。
任意的に、TCPデータパケットの中のパケットをパースすることにより得られる、サービスのビットレートに従い目標スループットを決定するアルゴリズムは、目標スループットが、サービスのビットレートと拡張係数との積に等しく、拡張係数は1より大きい。
任意的に、ウインドウ調整ユニット602は、TCPデータパケットを送信する処理の中でパケット損失が生じる場合、TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整するよう更に構成され、第2輻輳ウインドウは、パケット損失がTCPデータパケットで生じるときに存在する第3往復時間に従い決定され、TCPデータパケットを伝送する輻輳ウインドウを第2輻輳ウインドウに調整する減少ステップサイズは、第3往復時間に負に相関し;及び
データパケット送信ユニット603は、第2輻輳ウインドウを用いることによりTCPデータパケットを送信するよう更に構成される。
任意的に、ウインドウ調整ユニット602が、第3アルゴリズムに従う第2輻輳ウインドウに、TCPデータパケットを送信する輻輳ウインドウを調整することは、具体的には:
ウインドウ調整ユニット602が、第3往復時間が遅延間隔の下限に等しい場合、パケット損失がTCPデータパケットで生じるときに存在する輻輳ウインドウを第2輻輳ウインドウとして用い、又は、第3往復時間が遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを第2輻輳ウインドウとして用い、遅延間隔の上限は、ネットワーク内のTCPの再送タイムアウトRTOであり、遅延間隔の下限は、ネットワークが軽負荷を有するときに存在する往復時間である、よう構成される。
任意的に、ウインドウ調整ユニット602が、第1アルゴリズムに従い決定される輻輳ウインドウを、第1輻輳ウインドウとして使用することは、具体的に以下を含む:
ウインドウ調整ユニット602は、第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、高速回復値を輻輳ウインドウの増加ステップサイズとして用いて、第1輻輳ウインドウを得て、高速回復値はスロースタートのものと同じ大きさの程度を有する、よう構成される;
ウインドウ調整ユニット602は、第1往復時間がネットワークにおけるTCPの再送タイムアウトRTOに等しい場合、最大セグメントサイズMSSを、輻輳ウインドウの増加ステップサイズの値として用いて、第1輻輳ウインドウを得るよう構成される;又は
ウインドウ調整ユニット602は、第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のTCPの再送タイムアウトRTOとの間の間隔の範囲内で変化する場合、輻輳ウインドウの増加ステップサイズの値を、1MSSと高速回復値との間であり且つ第1往復時間と負に相関するよう設定して、第1輻輳ウインドウを得る、よう構成される。
任意的に、ウインドウ調整ユニット602が、第2アルゴリズムに従い決定される輻輳ウインドウを、第1輻輳ウインドウとして使用することは、具体的に以下である:
ウインドウ調整ユニット602は、目標スループット及び第1往復時間に従い目標ウインドウを計算し、目標ウインドウとネットワーク内のTCPの現在輻輳ウインドウとの間の差分を、輻輳ウインドウの増加ステップサイズの値として用いて、第1輻輳ウインドウを決定する。
任意的に、装置は、ネットワーク状態に従い目標スループットを更新する観点から任意的に最適化される。図7を参照すると、装置は、スループット検出ユニット604、及び目標スループット調整ユニット605を更に含む。
スループット検出ユニット604は、ネットワーク内でTCPデータパケットを送信する実際スループットを検出するよう構成される。
目標スループット調整ユニット605は、実際スループットの目標スループットに対する比が第1閾より大きく、ネットワーク内でTCPデータパケットを送信する第4往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、目標スループットを増大し、又は、実際スループットの目標スループットに対する比が第3閾より小さく、第4往復時間とネットワークが軽負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、目標スループットを減少する、よう構成される。
任意的に、目標スループットは、目標スループットパラメータを用いることによりTCPプロトコルスタックへ転送される。
本発明の一実施形態で、図8は、本実施形態による伝送制御プロトコルTCPデータパケットを送信する装置800のハードウェア構造の概略図であり、送信装置800のハードウェア構造を示す。図8に示すように、送信装置800は、プロセッサ801、メモリ802、及びネットワークインタフェース804を含む。プロセッサ801は、メモリ802及びネットワークインタフェース804の両方にバス803を用いることにより接続される。送信装置800は、TCPデータパケットを送信し/受信するために、ネットワークインタフェース804を用いることによりネットワーク103に接続される。
メモリ802は、コンピュータ実行命令を格納するよう構成される。送信装置800が実行するとき、プロセッサ801は、メモリ802に格納されたコンピュータ実行命令をリードして、送信装置に適用され前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコルTCPデータパケットを送信する方法を実行する。
プロセッサ801は、汎用中央処理ユニット(Central Processing Unit、CPU)、マイクロプロセッサ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、又は1又は複数の集積回路であって良く、本発明の実施形態で提供される技術的ソリューションを実施するために関連プログラムを実行するよう構成される。技術的ソリューションは、前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコルTCPデータパケットを送信する方法を含む。
メモリ802は、読み出し専用メモリ(Read Only Memory、ROM)、静的記憶装置、動的記憶装置、又はランダムアクセスメモリ(random access memory、RAM)であって良い。メモリ802は、オペレーティングシステム及び別のアプリケーションプログラムを格納して良い。本発明の実施形態で提供される技術的ソリューションがソフトウェア又はファームウェアを用いて実行されるとき、送信装置800に適用され及び前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコルTCPデータパケットを送信する方法のプログラムコードを含む、本発明の実施形態で提供される技術的ソリューションを実施するために使用されるプログラムコードは、メモリ802に保存され、プロセッサ801により実行される。
ネットワークインタフェース804は、送信装置800と別の装置又は通信ネットワークとの間のネットワーク通信を実施するために、例えば通信機であるがこれに限定されない通信機器で使用される。任意的に、ネットワークインタフェース804は、ネットワーク、例えばEthernetに接続するよう構成されるEthernetインタフェースに接続するよう構成される。Ethernetインタフェースは、限定ではないが、RJ−45インタフェース、RJ−11インタフェース、SCファイバインタフェース、FDDIインタフェース、AUIインタフェース、BNCインタフェース、及びConsoleインタフェースを含む。
バス803は、送信装置800の構成要素(例えば、プロセッサ801、メモリ802、及びネットワークインタフェース804)の間で情報を転送するために使用される経路を有して良い。
任意的に、送信装置800は、入力/出力インタフェース805を更に含む。入力/出力インタフェース805は、入力されるデータ及び情報を受信し、及び演算結果のようなデータを出力するよう構成される。
留意すべきことに、プロセッサ801、メモリ802、ネットワークインタフェース804、及びバス803のみが図8の送信装置800の中に示されるが、特定の実装過程において、当業者は、送信装置800が通常動作のために必要な別の装置を更に含むことを理解すべきである。一方で、特定の要件により、当業者は、送信装置800が別の追加機能を実装するハードウェア装置を更に含んで良いことを理解すべきである。さらに、当業者は、送信装置800が、代替で本発明の本実施形態を実施するために必要な装置のみを含んで良く、必ずしも図8に示す全部の装置を含む必要がないことを理解すべきである。
本発明の一実施形態では、システム100が提供される。図1Aを参照すると、システム100は、サーバ101及び端末102を含む。サーバ101は、ネットワーク103を用いることにより、端末102と通信接続される。サーバ101は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、ネットワーク103を用いることによりTCPデータパケットを端末102へ送信する。
本発明の一実施形態では、システム200が提供される。図1Bを参照すると、システム200は、サーバ201第1エージェント装置204、及び端末202を含む。第1エージェント装置204は、サーバ201及び端末202の両方と通信接続される。サーバ201は、第1エージェント装置204をエージェントとして使用することにより、TCPデータパケットを端末202へ送信するよう構成される。
第1エージェント装置204は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、サーバ201により端末202へ送信されたTCPデータパケットを受信し、TCPデータパケットを端末202へ送信するためにサーバ201のエージェントとして動作するよう構成される。
任意的に、端末202は、目標スループットパラメータを用いることにより、端末202のTCPプロトコルスタックから第1エージェント装置204のTCPプロトコルスタックへ目標スループットを転送するよう構成される。
本発明の一実施形態では、システム300が提供される。図1Cを参照すると、システム300は、サーバ301第1エージェント装置304、第2エージェント装置305、及び端末302を含む。第1エージェント装置304は、サーバ301及び第2エージェント装置305の両方と通信接続される。サーバ301は、第1エージェント装置304をエージェントとして使用することにより、TCPデータパケットを端末302へ送信するよう構成される。
第1エージェント装置304は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、サーバ301により端末302へ送信されたTCPデータパケットを受信し、TCPデータパケットを第2エージェント装置305へ送信するためにサーバ301のエージェントとして動作するよう構成される。
第2エージェント装置305は、TCPデータパケットを受信し、端末302へTCPデータパケットを転送するよう構成される。
任意的に、端末302は、目標スループットパラメータを用いることにより、端末302のTCPプロトコルスタックから第2エージェント装置305のTCPプロトコルスタックへ目標スループットを転送するよう構成される。
第2エージェント装置305は、目標スループットパラメータを用いることにより、第2エージェント装置305のTCPプロトコルスタックから第1エージェント装置304のTCPプロトコルスタックへ目標スループットを転送するよう更に構成される。
本願により提供される幾つかの実施形態では、開示のシステム、装置、機器、及び方法は他の方法で実装されても良いことが理解されるべきである。例えば、記載した装置の実施形態は単に一例として使用される。例えば、モジュール及びユニット分割は、単なる論理的機能の区分であり、他の実装中の区分であって良い。例えば、複数のモジュール、ユニット又はコンポーネントは、別のシステムに結合又は統合されて良く、或いは、幾つかの機能は無視されるか又は実行されなくて良い。さらに、表示した又は議論した相互結合又は直接結合又は通信接続は、幾つかのインタフェースを使用することにより実装されて良い。装置又はモジュール間の間接結合又は通信接続は、電子的、機械的又は他の形式で実装されて良い。
別個の部分として記載されたモジュールは、物理的に別個であって良く又はそうでなくて良い。また、モジュールのような部分は、物理的なモジュールであって良く又はそうでなくて良く、1カ所に置かれて良く或いは複数のネットワークモジュールに分散されて良い。一部又は全部のモジュールは、実施形態のソリューションの目的を達成するために実際の必要に応じて選択されて良い。
さらに、本発明の実施形態における機能モジュールは、1つの処理モジュールに統合されて良く、或いは各モジュールが物理的に単独で存在して良く、或いは2以上のモジュールが1つのモジュールに統合されて良い。統合モジュールは、ハードウェアの形式で実装されて良く、ソフトウェア機能モジュールに加えてハードウェアの形式で実装されて良い。
ソフトウェア機能モジュールの形式で実装された前述の統合モジュールは、コンピュータ可読記憶媒体に格納されて良い。ソフトウェア機能モジュールは、記憶媒体に格納され、コンピュータ装置(パーソナルコンピュータ、サーバ、又はネットワーク装置であって良い)に、本願の実施形態で記載された方法の幾つかのステップを実行するよう指示する複数の命令を含む。前述の記憶媒体は、取り外し可能ハードディスク、読み出し専用メモリ(英語名:Read−Only Memory、略してROM)、ランダムアクセスメモリ(英語名:Random Access Memory、略してRAM)、磁気ディスク又は光ディスクのような、プログラムコードを格納可能な任意の媒体を含む。
最後に、留意すべきことに、前述の実施形態は、単に本発明の技術的ソリューションを説明することを意図しており、本発明を限定しない。本発明は、前述の実施形態を参照して詳細に説明されたが、当業者は、本発明の実施形態の技術的ソリューションの保護範囲から逸脱することなく、彼らが前述の実施形態で説明した技術的ソリューションに変更を行い、又はそれら実施形態の幾つかの技術的特徴を等価に置換できることを理解する。
以上に鑑み、本発明の実施形態は、サービスのために得られることが期待されるスループット及びTCPデータパケットを送信する往復時間に従い輻輳ウインドウを調整し、調整した輻輳ウインドウを用いることによりTCPデータパケットの送信を制御し、それによりサービスのスループットを可能な限り満たすために、伝送制御プロトコル(TCP)データパケットを送信する方法及び装置、並びにシステムを提供する。
第1の態様の第4の可能な実装方法を参照して、第5の可能な実装方法では、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整する前記ステップは、具体的に、前記第3往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記TCPデータパケットで生じるときに存在する輻輳ウインドウを前記第2輻輳ウインドウとして用いるステップ、又は、前記第3往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第2輻輳ウインドウとして用いるステップ、であって、前記遅延間隔の前記上限は、前記ネットワーク内の前記TCPの再送タイムアウト(RTO)であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ステップ、を含む。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第6の可能な実装方法では、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いる前記ステップは、具体的に、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得るステップであって、前記高速回復値はスロースタートと同程度の大きさを有する、ステップ、前記第1往復時間が、前記ネットワーク内の前記TCPの再送タイムアウト(RTO)に等しい場合、1最大セグメントサイズ(MSS)を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第1輻輳ウインドウを得るステップ、又は、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記TCPの再送タイムアウト(RTO)との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、1MSSと前記高速回復値との間であり且つ前記第1往復時間に負に相関するよう設定して、前記第1輻輳ウインドウを得るステップ、を含む。
第2の態様の第4の可能な実装方法を参照して、第5の可能な実装方法では、前記ウインドウ調整ユニットが、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整するよう更に構成されることは、具体的に、前記ウインドウ調整ユニットが、前記第3往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記TCPデータパケットで生じるときに存在する輻輳ウインドウを前記第2輻輳ウインドウとして用い、又は、前記第3往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第2輻輳ウインドウとして用いるよう構成され、前記遅延間隔の前記上限は、前記ネットワーク内の前記TCPの再送タイムアウト(RTO)であり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ことである。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第6の可能な実装方法では、前記ウインドウ調整ユニットが、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いることは、具体的に、前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得て、前記高速回復値はスロースタートと同程度の大きさを有する、よう構成されること、前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワーク内の前記TCPの再送タイムアウト(RTO)に等しい場合、1最大セグメントサイズ(MSS)を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得るよう構成されること、又は、前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記TCPの再送タイムアウト(RTO)との間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、1MSSと前記高速回復値との間であり且つ前記第1往復時間に負に相関するよう設定して、前記第1輻輳ウインドウを得るよう構成されること、を含む。
第4の態様によると、本発明の一実施形態は、システムであって、前記システムはサーバと端末とを含み、前記サーバは、ネットワークを用いることにより前記端末と通信接続し、前記サーバは、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコル(TCP)データパケット送信装置であり、前記ネットワークを用いることにより、前記端末へTCPデータパケットを送信する、システムを提供する。
第5の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第1エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記端末の両方と通信接続し、前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、前記第1エージェント装置は、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコル(TCP)データパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記端末へ送信するよう構成される、システムを提供する。
第6の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第1エージェント装置と、第2エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記第2エージェント装置の両方と通信接続し、前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、前記第1エージェント装置は、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコル(TCP)データパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記第2エージェント装置へ送信するよう構成され、前記第2エージェント装置は、前記TCPデータパケットを受信し、前記TCPデータパケットを前記端末へ転送するよう構成される、システムを提供する。
具体的に、ネットワークが軽い負荷を有しないが、特定負荷を有するとき、第1往復時間は、反映される現在ネットワーク状態(例えば、ネットワーク内でTCPデータパケットを転送するネットワーク経路長)に強く相関する。より良好なネットワーク状態は、より短い第1往復時間を示す。極端な場合には、ネットワークが深刻な過負荷であるとき、第1往復時間は、ネットワークの再送タイムアウト(Retransmission TimeOut、略してRTO)メカニズムに等しく、ネットワークは深刻な輻輳を有する。
ネットワーク状態を反映する第1往復時間が第2往復時間より長い場合、これは、TCPデータパケットが損失するときに存在するネットワーク帯域幅が、もはや目標スループットを満たさないこと、及びネットワーク輻輳がネットワーク内で生じることを示す。この場合、第1輻輳ウインドウは、第1アルゴリズムを用いることにより決定される。第1輻輳ウインドウが第1アルゴリズムの第1往復時間に従い決定されるとき、第1往復時間が増大するにつれ、第1アルゴリズムに従い決定される第1輻輳ウインドウは減少する。サーバが、第1アルゴリズムに従い決定される第1輻輳ウインドウを用いることにより、端末へ送信されるTCPデータパケットを制御するとき、第1アルゴリズムに従い決定される第1輻輳ウインドウにより提供されるスループットは、目標スループットに到達できず、目標スループットからの差分が最小化できるだけである。したがって、TCPデータパケットをパースすることにより端末により得られる、サービスのビットレートは、サーバにより必要とされるビットレートを満たすことができない。しかしながら、サービスは、現在ネットワーク状態における最大までサポートでき、目標スループットからの差分は縮小され、サーバは、端末にサービスを提供するために可能な限りサポートされる。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第2アルゴリズムの任意的詳細を更に提供するために、第1アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして使用するステップは、具体的に以下を含む:
第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間に等しい場合、高速回復値を輻輳ウインドウの増加ステップサイズとして用いるて、第1輻輳ウインドウを得るステップであって、高速回復値はスロースタートのものと同じ大きさの程度を有する、ステップと、
第1往復時間がネットワークにおけるTCPの再送タイムアウト(RTO)に等しい場合、最大セグメントサイズ(Maximum Segment Size、略してMSS)を、輻輳ウインドウの増加ステップサイズとして用いて、第1輻輳ウインドウを得るステップと、
第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のTCPの再送タイムアウト(RTO)との間の間隔の範囲内で変化する場合、輻輳ウインドウの増加ステップサイズの値を、1MSSと高速回復値との間であり且つ第1往復時間と負に相関するよう設定して、第1輻輳ウインドウを得るステップ。
任意的に、ウインドウ調整ユニット602が、第3アルゴリズムに従う第2輻輳ウインドウに、TCPデータパケットを送信する輻輳ウインドウを調整することは、具体的には:
ウインドウ調整ユニット602が、第3往復時間が遅延間隔の下限に等しい場合、パケット損失がTCPデータパケットで生じるときに存在する輻輳ウインドウを第2輻輳ウインドウとして用い、又は、第3往復時間が遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを第2輻輳ウインドウとして用い、遅延間隔の上限は、ネットワーク内のTCPの再送タイムアウト(RTO)であり、遅延間隔の下限は、ネットワークが軽負荷を有するときに存在する往復時間である、よう構成される。
メモリ802は、コンピュータ実行命令を格納するよう構成される。送信装置800が実行するとき、プロセッサ801は、メモリ802に格納されたコンピュータ実行命令をリードして、送信装置に適用され前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル(TCP)データパケットを送信する方法を実行する。
プロセッサ801は、汎用中央処理ユニット(Central Processing Unit、CPU)、マイクロプロセッサ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、又は1又は複数の集積回路であって良く、本発明の実施形態で提供される技術的ソリューションを実施するために関連プログラムを実行するよう構成される。技術的ソリューションは、前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル(TCP)データパケットを送信する方法を含む。
メモリ802は、読み出し専用メモリ(Read Only Memory、ROM)、静的記憶装置、動的記憶装置、又はランダムアクセスメモリ(random access memory、RAM)であって良い。メモリ802は、オペレーティングシステム及び別のアプリケーションプログラムを格納して良い。本発明の実施形態で提供される技術的ソリューションがソフトウェア又はファームウェアを用いて実行されるとき、送信装置800に適用され及び前述の実施形態及び本発明の実施形態で提供される伝送制御プロトコル(TCP)データパケットを送信する方法のプログラムコードを含む、本発明の実施形態で提供される技術的ソリューションを実施するために使用されるプログラムコードは、メモリ802に保存され、プロセッサ801により実行される。
本発明の一実施形態では、システム100が提供される。図1Aを参照すると、システム100は、サーバ101及び端末102を含む。サーバ101は、ネットワーク103を用いることにより、端末102と通信接続される。サーバ101は、伝送制御プロトコル(TCP)データパケットを送信する前述の装置800であり、ネットワーク103を用いることによりTCPデータパケットを端末102へ送信する。