JP2018508151A - 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム - Google Patents

伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム Download PDF

Info

Publication number
JP2018508151A
JP2018508151A JP2017546188A JP2017546188A JP2018508151A JP 2018508151 A JP2018508151 A JP 2018508151A JP 2017546188 A JP2017546188 A JP 2017546188A JP 2017546188 A JP2017546188 A JP 2017546188A JP 2018508151 A JP2018508151 A JP 2018508151A
Authority
JP
Japan
Prior art keywords
congestion window
data packet
trip time
round trip
tcp data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017546188A
Other languages
English (en)
Other versions
JP6526825B2 (ja
Inventor
夏 朱
夏 朱
峰 李
峰 李
▲剣▼ 程
▲剣▼ 程
▲維▼▲慶▼ 孔
▲維▼▲慶▼ 孔
▲剛▼ ▲陳▼
▲剛▼ ▲陳▼
▲躍▼▲棟▼ 郭
▲躍▼▲棟▼ 郭
▲廣▼涛 任
▲廣▼涛 任
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018508151A publication Critical patent/JP2018508151A/ja
Application granted granted Critical
Publication of JP6526825B2 publication Critical patent/JP6526825B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本発明の実施形態は、伝送制御プロトコルTCPデータパケット送信する方法及び装置、並びにシステムを開示する。送信方法は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得るステップと、第2往復時間を決定するステップと、第1往復時間が第2往復時間より長い場合、第1アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして用いるステップ、又は、第1往復時間が第2往復時間より短い又は等しい場合、第2アルゴリズムに従い決定される輻輳ウインドウを第1輻輳ウインドウとして用いるステップと、第1輻輳ウインドウを用いることによりTCPデータパケットを送信するステップと、を含む。本発明で開示される技術的ソリューションでは、第1往復時間が得られるときに存在する現在輻輳ウインドウは、一度で第1輻輳ウインドウまで増え、スループットに対するサービスの要件が良好に満たされ、ネットワーク帯域幅がより効率的に利用できるようにする。

Description

本願は、参照によりその全体がここに組み込まれる中国特許出願番号201510093011.3、2015年3月2日出願、名称「METHOD AND APPARATUS FOR SENDING TRANSMISSION CONTROL PROTOCOLTCP DATA PACKET AND SYSTEM」の優先権を主張する。
[技術分野]
本発明の実施形態は、ネットワーク技術の分野、及び特に伝送制御プロトコルTCPデータパケット送信する方法及び装置、並びにシステムに関する。
ネットワーク輻輳(congestion)は、過度に大量のパケットがネットワーク内で転送されるが、ネットワーク内の転送ノードを格納するために限られたリソースしか存在せず、ネットワーク伝送性能の低下を生じることを意味する。ネットワーク輻輳が生じると、データ損失、遅延の増大、又はスループットの低下のような減少が通常生じる。ネットワーク輻輳が深刻なとき、輻輳崩壊(congestion collapse)が引き起こされる。高スループット率アプリケーション(例えば、オンラインオーディオ及びビデオ再生アプリケーション)のトラフィック量が急増するにつれ、ネットワークを用いることにより伝送される必要のあるデータ量も急激に増える。したがって、ネットワークは高スループットを維持することを要求される。ネットワークリソースを調整するために使用される輻輳制御手段が不適切な場合、ネットワーク帯域幅が十分であっても、高スループット率アプリケーションは効率的に利用されることができない。
伝送制御プロトコル(Transmission Control Protocol、略してTCP)は、信頼できるコネクション型の、バイトストリームに基づくトランスポート層通信プロトコルであり、IETFのRFC793で定められている。TCPが出現して以来、負荷がネットワークの最大容量を超えないことを保証するために、多くの研究者が、自己調整及び回復メカニズムを設定する目的で、TCP輻輳制御メカニズムのシリーズを提案してきた。TCP輻輳制御は、輻輳回避及び輻輳回復を含む。輻輳回避は、ネットワークが輻輳状態に入ることを可能な限り防ぎ並びにネットワークが高スループット且つ低遅延状態で動作し続けることを可能にする保護メカニズムである。輻輳回復は、輻輳が既に生じている場合にもネットワークを輻輳状態から回復させ並びに高スループット且つ低遅延状態に再びはいることを可能にする回復メカニズムである。
これまで、TCP輻輳制御の成熟した実装方法では、輻輳ウインドウ(congestion window、略してCWND)のサイズは、TCPパケットのスループットを制御するために調整される。輻輳ウインドウのサイズは、1往復時間(Round Trip Time、RTT)以内で送信できるTCPデータパケットの最大量を表す。より大きなサイズの輻輳ウインドウは、より高いデータ送信レート及びより高いスループットだが、ネットワーク輻輳が生じるより高い可能性を示す。これに対し、より小さなサイズの輻輳ウインドウは、より低いデータ送信レート及びより低いスループットだが、ネットワーク輻輳が生じるより低い可能性を示す。例えば、輻輳ウインドウが1最大セグメントサイズ(Maximum Segment Size、略してMSS)であるとき、1個のパケットが送信される度に、受信機は肯定応答を送信する必要があり、次に第2パケットが送信できる。これは、ネットワーク輻輳を確実に防ぐが、スループットが極めて低い。TCP輻輳制御は、調整を通じて最適輻輳ウインドウ値を得て、輻輳を引き起こすことなくスループットを最大化することである。現在のところ、スループットに対する要件の増大に伴い、Renoアルゴリズム、CUBICアルゴリズム、等を含む、既に複数の成熟したウインドウ調整アルゴリズムが存在する。
例えば、Renoアルゴリズムは、最も広く使用され、TCP輻輳制御アルゴリズムを成熟させている。このアルゴリズムに含まれる、スロースタートメカニズム、輻輳回避メカニズム、高速再送メカニズム、及び高速回復メカニズムは、多くの既存のアルゴリズムの基礎である。Renoアルゴリズムの作動メカニズムでは、動的バランスを保つために、特定量のTCPデータパケットの損失が周期的に保証される必要があり、AIMD(正式名:Additive Increase Multiplicative Decrease)メカニズム(つまり、加法的増加、乗法的減少)も提供される。1個のTCPデータパケットの損失により引き起こされる輻輳ウインドウの減少は、比較的長時間の間、回復される必要があり、帯域幅利用率は高くない。特に、大きな輻輳ウインドウの場合には、このような欠点が一層明らかである。Renoアルゴリズムでは、1個のTCPデータパケットの損失が検出されると、輻輳ウインドウは、直ちに半分のサイズに減少される。輻輳回復段階では、各輻輳ウインドウのデータ伝送のRTTの後、輻輳ウインドウは1MSSだけ増加され(つまり、増分は1MSSである)、TCPデータパケットが損失されるときに存在する輻輳ウインドウのサイズの半分から回復を実行することは、比較的長時間を要する。例えば、ネットワークが100Mbit/sの帯域幅及び100ミリ秒の遅延を有する場合、スループットはネットワーク帯域幅に近づき、輻輳ウインドウ値は約863MMSであり、Renoアルゴリズムを用いることにより431往復のRTTが必要とされる。したがって、TCPデータパケットが損失するときに存在する輻輳ウインドウは、半分のサイズから回復でき、約43.1秒を要する。Renoアルゴリズムと比べて、CUBICアルゴリズムは、輻輳ウインドウの増大の側面において改良を行っている。CUBICアルゴリズムでは、TCPデータパケットが損失するときに存在する輻輳ウインドウは記録される。記録した輻輳ウインドウに到達しないとき、ウインドウは、スロースタートにおけるのと同様に指数関数的に増大する。記録した輻輳ウインドウに到達しそうなとき、輻輳ウインドウの増加ステップサイズは大幅に減少される。減少の後に得られる、輻輳ウインドウの増加ステップサイズが時間期間の間、保たれた後、輻輳ウインドウの増加ステップサイズは、概ね指数関数的な速い増加に再調整される。時間期間が時折保たれるだけである場合、CUBICアルゴリズムでは、輻輳ウインドウが時間期間の後に依然として速く増大するとき、ネットワーク輻輳が再び生じるので、必然的により多くのTCPデータパケットが損失され、さらに、ネットワーク状態の劣化を引き起こす。
したがって、TCP輻輳制御のための(Renoアルゴリズム及びCUBICアルゴリズムを含む)2つのアルゴリズムは、以下のような同じ欠点を有する。輻輳ウインドウは、事前設定された固定値に従い増加し、現在望ましいネットワーク帯域幅が効率的に利用され得ず、又は、実際のネットワーク状態に矛盾する調整ポリシでさえ輻輳ウインドウの調整中に使用される場合があり、それにより、スループットの適用の要求に影響を与える。
以上に鑑み、本発明の実施形態は、サービスのために得られることが期待されるスループット及びTCPデータパケットを送信する往復時間に従い輻輳ウインドウを調整し、調整した輻輳ウインドウを用いることによりTCPデータパケットの送信を制御し、それによりサービスのスループットを可能な限り満たすために、伝送制御プロトコルTCPデータパケットを送信する方法及び装置、並びにシステムを提供する。
第1の態様によると、本発明の一実施形態は、伝送制御プロトコルTCPデータパケットを送信する方法であって、前記方法は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得るステップと、第2往復時間を決定するステップであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、ステップと、前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いるステップ、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いるステップと、前記第1輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するステップと、を含む方法を提供する。
第1の態様を参照して、第1の可能な実装方法では、前記第2アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し且つ前記第1往復時間に負に相関し、前記第1アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第1往復時間に負に相関する。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第2の可能な実装方法では、前記目標スループットは、前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される。
第1の態様の第2の可能な実装方法を参照して、第3の可能な実装方法では、前記TCPデータパケットの中の前記パケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は1より大きい、である。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第4の可能な実装方法では、前記方法は、前記TCPデータパケットを送信する処理の中でパケット損失が生じる場合、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整するステップであって、前記第2輻輳ウインドウは、前記パケット損失が前記TCPデータパケットで生じるときに存在する第3往復時間に従い決定され、前記TCPデータパケットを伝送する前記輻輳ウインドウを前記第2輻輳ウインドウに調整する減少ステップサイズは、前記第3往復時間に負に相関し、ステップと、前記第2輻輳ウインドウを用いることにより、前記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輻輳ウインドウを得るステップ、を含む。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第7の可能な実装方法では、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いる前記ステップは、具体的に、前記目標スループット及び前記第1往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記TCPの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第1輻輳ウインドウを決定するステップ、を含む。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第8の可能な実装方法では、前記方法は、前記ネットワーク内の前記TCPデータパケットを送信する実際スループットを検出するステップと、前記実際スループットの前記目標スループットに対する比が第1閾より大きく、前記ネットワーク内の前記TCPデータパケットを送信する第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、前記目標スループットを増大するステップ、又は、前記実際スループットの前記目標スループットに対する比が第3閾より小さく、第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、前記目標スループットを減少するステップ、を更に含む。
第1の態様又は第1の態様の任意の前述の可能な実装方法を参照して、第9の可能な実装方法では、前記目標スループットは、目標スループットパラメータを用いることによりTCPプロトコルスタックへ転送される。
第2の態様によると、本発明の一実施形態は、伝送制御プロトコルTCPデータパケットを送信する装置であって、前記装置は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得て、第2往復時間を決定するよう構成される遅延決定ユニットであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、遅延決定ユニットと、前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用い、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いる、よう構成されるウインドウ調整ユニットと、前記第1輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するよう構成されるデータパケット送信ユニットと、を含む装置を提供する。
第2の態様を参照して、第1の可能な実装方法では、前記第2アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し且つ前記第1往復時間に負に相関し、前記第1アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第1往復時間に負に相関する。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第2の可能な実装方法では、前記目標スループットは、前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される。
第2の態様の第2の可能な実装方法を参照して、第3の可能な実装方法では、前記TCPデータパケットの中の前記パケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は1より大きい、である。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第4の可能な実装方法では、前記ウインドウ調整ユニットは、前記TCPデータパケットを送信する処理の中でパケット損失が生じる場合、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整し、前記第2輻輳ウインドウは、前記パケット損失が前記TCPデータパケットで生じるときに存在する第3往復時間に従い決定され、前記TCPデータパケットを伝送する前記輻輳ウインドウを前記第2輻輳ウインドウに調整する減少ステップサイズは、前記第3往復時間に負に相関し、よう更に構成され、前記データパケット送信ユニットは、前記第2輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するよう更に構成される。
第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輻輳ウインドウを得るよう構成されること、を含む。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第7の可能な実装方法では、前記ウインドウ調整ユニットが、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いることは、具体的に、前記ウインドウ調整ユニットが、前記目標スループット及び前記第1往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記TCPの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズとして用いて、前記第1輻輳ウインドウを決定するよう構成されることである。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第8の可能な実装方法では、前記装置は、前記ネットワーク内の前記TCPデータパケットを送信する実際スループットを検出するよう構成されるスループット検出ユニットと、前記実際スループットの前記目標スループットに対する比が第1閾より大きく、前記ネットワーク内の前記TCPデータパケットを送信する第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、前記目標スループットを増大し、又は、前記実際スループットの前記目標スループットに対する比が第3閾より小さく、第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、前記目標スループットを減少するよう構成される目標スループット調整ユニットと、を更に含む。
第2の態様又は第2の態様の任意の前述の可能な実装方法を参照して、第9の可能な実装方法では、前記目標スループットは、目標スループットパラメータを用いることによりTCPプロトコルスタックへ転送される。
第3の態様によると、本発明の一実施形態は、伝送制御プロトコルTCPデータパケット送信装置であって、前記送信装置は、プロセッサと、メモリと、ネットワークインタフェースと、を含み、前記プロセッサは、バスを用いることにより前記メモリ及び前記ネットワークインタフェースの両方に接続され、前記メモリは、コンピュータ実行命令を格納するよう構成され、前記送信装置が実行すると、前記プロセッサは、前記メモリに格納された前記コンピュータ実行命令をリードして、第1の態様又は第1の態様に基づく任意の前述の可能な実装方法に従う伝送制御プロトコルTCPデータパケットを送信する方法を実行する、送信装置を提供する。
第4の態様によると、本発明の一実施形態は、システムであって、前記システムはサーバと端末とを含み、前記サーバは、ネットワークを用いることにより前記端末と通信接続し、前記サーバは、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコルTCPデータパケット送信装置であり、前記ネットワークを用いることにより、前記端末へTCPデータパケットを送信する、システムを提供する。
第5の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第1エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記端末の両方と通信接続し、前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、前記第1エージェント装置は、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコルTCPデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記端末へ送信するよう構成される、システムを提供する。
第5の態様を参照して、第1の可能な実装方法では、前記端末は、目標スループットパラメータを用いることにより、前記端末のTCPプロトコルスタックから前記第1エージェント装置のTCPプロトコルスタックへ目標スループットを転送するよう構成される。
第6の態様によると、本発明の一実施形態は、システムであって、前記システムは、サーバと、第1エージェント装置と、第2エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記第2エージェント装置の両方と通信接続し、前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、前記第1エージェント装置は、第2の態様又は第2の態様に基づく任意の前述の可能な実装方法又は第3の態様で提供される伝送制御プロトコルTCPデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記第2エージェント装置へ送信するよう構成され、前記第2エージェント装置は、前記TCPデータパケットを受信し、前記TCPデータパケットを前記端末へ転送するよう構成される、システムを提供する。
第6の態様を参照して、第1の可能な実装方法では、前記端末は、目標スループットパラメータを用いることにより、前記端末のTCPプロトコルスタックから前記第2エージェント装置のTCPプロトコルスタックへ目標スループットを転送するよう構成され、前記第2エージェント装置は、前記目標スループットパラメータを用いることにより、前記第2エージェント装置の前記TCPプロトコルスタックから前記第1エージェント装置のTCPプロトコルスタックへ前記目標スループットを転送するよう更に構成される。
前述のソリューションにより、第1輻輳ウインドウは、目標スループットと、現在ネットワーク状態を反映する第1往復時間とに従い決定され、第1輻輳ウインドウは、現在輻輳ウインドウを更新するために使用され、第1輻輳ウインドウは、現在ネットワーク状態においてTCPデータパケットの送信を制御するために使用され、サービスのために得られることが期待されるスループットが可能な限り満たされ得るようにする。目標スループット及びネットワーク状態に従い、現在輻輳ウインドウは、第1輻輳ウインドウまで一気に直接に増加し、スループットに対するサービスの要件がより良好に満たされ、ネットワーク帯域幅がより効率的に利用できる。
伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオのシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法のフローチャートである。 データパケットが損失した後にTCPデータパケットを送信する方法に基づく動作フローチャートである。 図2に示した伝送制御プロトコルTCPデータパケットを送信する方法に基づく任意的最適化フローチャートである。 伝送制御プロトコルTCPデータパケットを送信する方法における目標スループットを更新するフローチャートである。 伝送制御プロトコルTCPデータパケットを送信する装置600の論理構造の概略図である。 図6に示した伝送制御プロトコルTCPデータパケットを送信する装置600に基づく最適論理構造の概略図である。 本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する装置800のハードウェア構造の概略図である。
以下に、本発明の実施形態の添付の図面を参照して、本発明の実施形態における技術的解決策を明確且つ十分に説明する。明らかに、記載される実施形態は、本発明の実施形態の一部であり、全てではない。本発明の実施形態に基づき創造的労力を有しないで当業者により得られる全ての他の実施形態は、本発明の保護範囲に包含される。
図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データパケットの送信を制御し、それによりサービスのスループットを可能な限り満たすために、伝送制御プロトコル(TCPデータパケットを送信する方法及び装置、並びにシステムを提供する。
第1の態様によると、本発明の一実施形態は、伝送制御プロトコル(TCPデータパケットを送信する方法であって、前記方法は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得るステップと、第2往復時間を決定するステップであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、ステップと、前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いるステップ、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いるステップと、前記第1輻輳ウインドウを用いることにより、前記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の態様によると、本発明の一実施形態は、伝送制御プロトコルTCPデータパケットを送信する装置であって、前記装置は、ネットワーク内でTCPデータパケットを送信する第1往復時間を得て、第2往復時間を決定するよう構成される遅延決定ユニットであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、遅延決定ユニットと、前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用い、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いる、よう構成されるウインドウ調整ユニットと、前記第1輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するよう構成されるデータパケット送信ユニットと、を含む装置を提供する。
第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輻輳ウインドウを得るよう構成されること、を含む。
第3の態様によると、本発明の一実施形態は、伝送制御プロトコルTCPデータパケット送信装置であって、前記送信装置は、プロセッサと、メモリと、ネットワークインタフェースと、を含み、前記プロセッサは、バスを用いることにより前記メモリ及び前記ネットワークインタフェースの両方に接続され、前記メモリは、コンピュータ実行命令を格納するよう構成され、前記送信装置が実行すると、前記プロセッサは、前記メモリに格納された前記コンピュータ実行命令をリードして、第1の態様又は第1の態様に基づく任意の前述の可能な実装方法に従う伝送制御プロトコルTCPデータパケットを送信する方法を実行する、送信装置を提供する。
第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データパケットを前記端末へ転送するよう構成される、システムを提供する。
伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオのシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法の適用シナリオの別のシステム論理構造の概略図である。 伝送制御プロトコルTCPデータパケットを送信する方法のフローチャートである。 データパケットが損失した後にTCPデータパケットを送信する方法に基づく動作フローチャートである。 図2に示した伝送制御プロトコルTCPデータパケットを送信する方法に基づく任意的最適化フローチャートである。 伝送制御プロトコルTCPデータパケットを送信する方法における目標スループットを更新するフローチャートである。 伝送制御プロトコルTCPデータパケットを送信する装置600の論理構造の概略図である。 図6に示した伝送制御プロトコルTCPデータパケットを送信する装置600に基づく最適論理構造の概略図である。 本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する装置800のハードウェア構造の概略図である。
図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プロトコル)に基づき確立され、伝送制御プロトコル/インターネットプロトコルもネットワーク通信プロトコルとして参照される。
図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は、ルータにあるサービスカードであり、前述の機能は、サービスカードにあるロジックプログラミングを実行することにより実施される。
具体的に、ネットワークが軽い負荷を有しないが、特定負荷を有するとき、第1往復時間は、反映される現在ネットワーク状態(例えば、ネットワーク内でTCPデータパケットを転送するネットワーク経路長)に強く相関する。より良好なネットワーク状態は、より短い第1往復時間を示す。極端な場合には、ネットワークが深刻な過負荷であるとき、第1往復時間は、ネットワークの再送タイムアウ(Retransmission TimeOut、略してRTO)メカニズムに等しく、ネットワークは深刻な輻輳を有する。
本発明の一実施形態では、前述の実施形態及び本発明の実施形態に基づき、第2アルゴリズムの任意的詳細を更に提供するために、第アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、目標スループットに正に相関し、第1往復時間に負に相関し、第1アルゴリズムで決定された輻輳ウインドウの増加ステップサイズは、第1往復時間に負に相関する。
ネットワーク状態を反映する第1往復時間が第2往復時間より長い場合、これは、TCPデータパケットが損失するときに存在するネットワーク帯域幅が、もはや目標スループットを満たさないこと、及びネットワーク輻輳がネットワーク内で生じることを示す。この場合、第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輻輳ウインドウを得るステップ。
検出された第1往復時間が、ネットワークが軽負荷を有するときに存在する往復時間とネットワーク内のTCPの再送タイムアウトRTOとの間の間隔の範囲内にある場合、第1アルゴリズムでは、相応して、輻輳ウインドウの増加ステップサイズの値は、1MSSと高速回復値との間になるよう設定される。しかしながら、第1アルゴリズムに従い決定される増加ステップサイズは、第1往復時間に負に相関する。このような場合、ラウンドの輻輳ウインドウのTCPデータパケットが送信に成功した場合でも、増加ステップサイズは、現在輻輳ウインドウに対して増加されて、第1輻輳ウインドウを得る。
この場合、図1Cで、方法が図1Aのサーバ101に適用される一例に基づき記載される前述の実施形態及び本発明の実施形態は、もはや図1のサーバ101に適用されないが、代わりに、図1Cの第1エージェント装置304に適用される。方法が図1Aのサーバ101に適用される一例を用いることにより記載される前述の実施形態及び本発明の実施形態が、図1Cの第1エージェント装置304に適用されるとき、端末302が目標スループットを計算するという相違点がある。他のステップでサーバが第1エージェント装置304により置き換えられた後、前述の実施形態及び本発明の実施形態は、第1エージェント装置304に適用できる。相違点は、以下のように詳細に具体的に記載される。
本発明の一実施形態で、図6は、本発明の一実施形態による伝送制御プロトコルTCPデータパケットを送信する装置600の論理構造の概略図である。図6に示すように、装置600は、少なくとも、遅延決定ユニット601と、ウインドウ調整ユニット602と、データパケット送信ユニット603と、を含む。
任意的に、ウインドウ調整ユニット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輻輳ウインドウを得る、よう構成される。
任意的に、装置は、ネットワーク状態に従い目標スループットを更新する観点か最適化される。図7を参照すると、装置は、スループット検出ユニット604、及び目標スループット調整ユニット605を更に含む。
本発明の一実施形態で、図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により実行される。
本発明の一実施形態では、システム100が提供される。図1Aを参照すると、システム100は、サーバ101及び端末102を含む。サーバ101は、ネットワーク103を用いることにより、端末102と通信接続される。サーバ101は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、ネットワーク103を用いることによりTCPデータパケットを端末102へ送信する。
第1エージェント装置204は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、サーバ201により端末202へ送信されたTCPデータパケットを受信し、TCPデータパケットを端末202へ送信するためにサーバ201のエージェントとして動作するよう構成される。
第1エージェント装置304は、伝送制御プロトコルTCPデータパケットを送信する前述の装置800であり、サーバ301により端末302へ送信されたTCPデータパケットを受信し、TCPデータパケットを第2エージェント装置305へ送信するためにサーバ301のエージェントとして動作するよう構成される。

Claims (26)

  1. 伝送制御プロトコルTCPデータパケットを送信する方法であって、前記方法は、
    ネットワーク内でTCPデータパケットを送信する第1往復時間を得るステップと、
    第2往復時間を決定するステップであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、ステップと、
    前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いるステップ、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いるステップと、
    前記第1輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するステップと、
    を含む方法。
  2. 前記第2アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し、前記第1往復時間に負に相関し、前記第1アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第1往復時間に負に相関する、請求項1に記載の方法。
  3. 前記目標スループットは、前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される、請求項1又は2に記載の方法。
  4. 前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は1より大きい、である、請求項3に記載の方法。
  5. 前記方法は、
    前記TCPデータパケットを送信する処理の中でパケット損失が生じる場合、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整するステップであって、前記第2輻輳ウインドウは、前記パケット損失が前記TCPデータパケットで生じるときに存在する第3往復時間に従い決定され、前記TCPデータパケットを伝送する前記輻輳ウインドウを前記第2輻輳ウインドウに調整する減少ステップサイズは、前記第3往復時間に負に相関する、ステップと、
    前記第2輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するステップと、
    を更に含む請求項1乃至4のいずれか一項に記載の方法。
  6. 前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整する前記ステップは、具体的に、
    前記第3往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記TCPデータパケットで生じるときに存在する輻輳ウインドウを前記第2輻輳ウインドウとして用いるステップ、又は、前記第3往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第2輻輳ウインドウとして用いるステップ、であって、前記遅延間隔の前記上限は、前記ネットワーク内の前記TCPの再送タイムアウトRTOであり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、ステップ、
    を含む、請求項5に記載の方法。
  7. 前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いる前記ステップは、具体的に、
    前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得るステップであって、前記高速回復値はスロースタートと同程度の大きさを有する、ステップ、
    前記第1往復時間が、前記ネットワーク内の前記TCPの再送タイムアウトRTOに等しい場合、1最大セグメントサイズMSSを前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得るステップ、又は
    前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記TCPの再送タイムアウトRTOとの間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、1MSSと前記高速回復値との間であり且つ前記第1往復時間に負に相関するよう設定して、前記第1輻輳ウインドウを得るステップ、
    を含む、請求項1乃至6のいずれか一項に記載の方法。
  8. 前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いる前記ステップは、具体的に、
    前記目標スループット及び前記第1往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記TCPの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズの前記値として用いて、前記第1輻輳ウインドウを決定するステップ、
    を含む、請求項1乃至7のいずれか一項に記載の方法。
  9. 前記方法は、
    前記ネットワーク内の前記TCPデータパケットを送信する実際スループットを検出するステップと、
    前記実際スループットの前記目標スループットに対する比が第1閾より大きく、前記ネットワーク内の前記TCPデータパケットを送信する第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、前記目標スループットを増大するステップ、又は、前記実際スループットの前記目標スループットに対する比が第3閾より小さく、第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、前記目標スループットを減少するステップ、
    を更に含む請求項1乃至8のいずれか一項に記載の方法。
  10. 前記目標スループットは、目標スループットパラメータを用いることにより、TCPプロトコルスタックに転送される、請求項1乃至9のいずれか一項に記載の方法。
  11. 伝送制御プロトコルTCPデータパケットを送信する装置であって、前記装置は、
    ネットワーク内でTCPデータパケットを送信する第1往復時間を得て、第2往復時間を決定するよう構成される遅延決定ユニットであって、前記第2往復時間は、第1アルゴリズムに従い決定される輻輳ウインドウと第2アルゴリズムに従い決定される輻輳ウインドウとが等しい大きさを有するときに存在する往復時間であり、前記第1アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間に従い決定され、前記第2アルゴリズムでは、前記輻輳ウインドウの増加ステップサイズは前記第1往復時間及び目標スループットに従い決定され、前記目標スループットは、前記TCPデータパケットに対応するサービスのために得られると期待されるスループットである、遅延決定ユニットと、
    前記第1往復時間が前記第2往復時間より長い場合、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用い、又は、前記第1往復時間が前記第2往復時間より短い又は等しい場合、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いる、よう構成されるウインドウ調整ユニットと、
    前記第1輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するよう構成されるデータパケット送信ユニットと、
    を含む装置。
  12. 前記第2アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記目標スループットに正に相関し、前記第1往復時間に負に相関し、前記第1アルゴリズムにおいて決定される前記輻輳ウインドウの前記増加ステップサイズは、前記第1往復時間に負に相関する、請求項11に記載の装置。
  13. 前記目標スループットは、前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスのビットレートに従い決定される、請求項11又は12に記載の装置。
  14. 前記TCPデータパケットの中のパケットをパースすることにより得られる、前記サービスの前記ビットレートに従い前記目標スループットを決定するアルゴリズムは、前記目標スループットが、前記サービスの前記ビットレートと拡張係数との積に等しく、前記拡張係数は1より大きい、である、請求項13に記載の装置。
  15. 前記ウインドウ調整ユニットは、前記TCPデータパケットを送信する処理の中でパケット損失が生じる場合、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整し、前記第2輻輳ウインドウは、前記パケット損失が前記TCPデータパケットで生じるときに存在する第3往復時間に従い決定され、前記TCPデータパケットを伝送する前記輻輳ウインドウを前記第2輻輳ウインドウに調整する減少ステップサイズは、前記第3往復時間に負に相関する、よう更に構成され、
    前記データパケット送信ユニットは、前記第2輻輳ウインドウを用いることにより、前記TCPデータパケットを送信するよう更に構成される、
    請求項11乃至14のいずれか一項に記載の装置。
  16. 前記ウインドウ調整ユニットが、前記TCPデータパケットを伝送する輻輳ウインドウを、第3アルゴリズムに従う第2輻輳ウインドウに調整するよう更に構成されることは、具体的に、
    前記ウインドウ調整ユニットが、前記第3往復時間が遅延間隔の下限に等しい場合、前記パケット損失が前記TCPデータパケットで生じるときに存在する輻輳ウインドウを前記第2輻輳ウインドウとして用い、又は、前記第3往復時間が前記遅延間隔の上限に等しい場合、事前設定輻輳ウインドウを前記第2輻輳ウインドウとして用いるよう構成され、前記遅延間隔の前記上限は、前記ネットワーク内の前記TCPの再送タイムアウトRTOであり、前記遅延間隔の前記下限は、前記ネットワークが軽い負荷を有するときに存在する往復時間である、
    ことである、請求項15に記載の装置。
  17. 前記ウインドウ調整ユニットが、前記第1アルゴリズムに従い決定された前記輻輳ウインドウを第1輻輳ウインドウとして用いることは、具体的に、
    前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間に等しい場合、高速回復値を前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得て、前記高速回復値はスロースタートと同程度の大きさを有する、よう構成されること、
    前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワーク内の前記TCPの再送タイムアウトRTOに等しい場合、1最大セグメントサイズMSSを前記輻輳ウインドウの前記増加ステップサイズの値として用いて、前記第1輻輳ウインドウを得るよう構成されること、又は
    前記ウインドウ調整ユニットが、前記第1往復時間が、前記ネットワークが軽い負荷を有するときに存在する前記往復時間と前記ネットワーク内の前記TCPの再送タイムアウトRTOとの間の間隔の範囲内で変化する場合、前記輻輳ウインドウの前記増加ステップサイズの値を、1MSSと前記高速回復値との間であり且つ前記第1往復時間に負に相関するよう設定して、前記第1輻輳ウインドウを得るよう構成されること、
    を含む、請求項11乃至16のいずれか一項に記載の装置。
  18. 前記ウインドウ調整ユニットが、前記第2アルゴリズムに従い決定された前記輻輳ウインドウを前記第1輻輳ウインドウとして用いるよう構成されることは、具体的に、
    前記ウインドウ調整ユニットが、前記目標スループット及び前記第1往復時間に従い目標ウインドウを計算し、前記目標ウインドウと前記ネットワーク内の前記TCPの現在輻輳ウインドウとの間の差を前記輻輳ウインドウの前記増加ステップサイズの前記値として用いて、前記第1輻輳ウインドウを決定するよう構成されること、
    を含む、請求項11乃至17のいずれか一項に記載の装置。
  19. 前記装置は、
    前記ネットワーク内の前記TCPデータパケットを送信する実際スループットを検出するよう構成されるスループット検出ユニットと、
    前記実際スループットの前記目標スループットに対する比が第1閾より大きく、前記ネットワーク内の前記TCPデータパケットを送信する第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第2閾より小さい場合、前記目標スループットを増大し、又は、前記実際スループットの前記目標スループットに対する比が第3閾より小さく、第4往復時間と前記ネットワークが軽い負荷を有するときに検出される往復時間との間の差が第4閾より大きい場合、前記目標スループットを減少するよう構成される目標スループット調整ユニットと、
    を更に含む請求項11乃至18のいずれか一項に記載の装置。
  20. 前記目標スループットは、目標スループットパラメータを用いることにより、TCPプロトコルスタックに転送される、請求項11乃至19のいずれか一項に記載の装置。
  21. 伝送制御プロトコルTCPデータパケット送信装置であって、前記送信装置は、プロセッサと、メモリと、ネットワークインタフェースと、を含み、前記プロセッサは、バスを用いることにより前記メモリ及び前記ネットワークインタフェースの両方に接続され、
    前記メモリは、コンピュータ実行命令を格納するよう構成され、前記送信装置が実行すると、前記プロセッサは、前記メモリに格納された前記コンピュータ実行命令をリードして、請求項1乃至10のいずれか一項に記載の伝送制御プロトコルTCPデータパケットを送信する方法を実行する、
    送信装置。
  22. システムであって、前記システムはサーバと端末とを含み、前記サーバは、ネットワークを用いることにより前記端末と通信接続し、
    前記サーバは、請求項11乃至21のいずれか一項に記載の伝送制御プロトコルTCPデータパケット送信装置であり、前記ネットワークを用いることにより、前記端末へTCPデータパケットを送信する、
    システム。
  23. システムであって、前記システムは、サーバと、第1エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記端末の両方と通信接続し、
    前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、
    前記第1エージェント装置は、請求項11乃至21のいずれか一項に記載の伝送制御プロトコルTCPデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記端末へ送信するよう構成される、
    システム。
  24. 前記端末は、目標スループットパラメータを用いることにより、前記端末のTCPプロトコルスタックから前記第1エージェント装置のTCPプロトコルスタックへ目標スループットを転送するよう構成される、請求項23に記載のシステム。
  25. システムであって、前記システムは、サーバと、第1エージェント装置と、第2エージェント装置と、端末と、を含み、前記第1エージェント装置は、前記サーバ及び前記第2エージェント装置の両方と通信接続し、
    前記サーバは、エージェントとして動作する前記第1エージェント装置を用いることにより、前記端末へTCPデータパケットを送信するよう構成され、
    前記第1エージェント装置は、請求項11乃至21のいずれか一項に記載の伝送制御プロトコルTCPデータパケット送信装置であり、前記サーバにより前記端末へ送信された前記TCPデータパケットを受信し、前記サーバのエージェントとして動作して、前記TCPデータパケットを前記第2エージェント装置へ送信するよう構成され、
    前記第2エージェント装置は、前記TCPデータパケットを受信し、前記TCPデータパケットを前記端末へ転送するよう構成される、
    システム。
  26. 前記端末は、目標スループットパラメータを用いることにより、前記端末のTCPプロトコルスタックから前記第2エージェント装置のTCPプロトコルスタックへ目標スループットを転送するよう構成され、
    前記第2エージェント装置は、前記目標スループットパラメータを用いることにより、前記第2エージェント装置の前記TCPプロトコルスタックから前記第1エージェント装置のTCPプロトコルスタックへ前記目標スループットを転送するよう更に構成される、
    請求項23に記載のシステム。
JP2017546188A 2015-03-02 2015-12-28 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム Active JP6526825B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510093011.3 2015-03-02
CN201510093011.3A CN105991462B (zh) 2015-03-02 2015-03-02 传输控制协议tcp数据包的发送方法、发送装置和系统
PCT/CN2015/099278 WO2016138786A1 (zh) 2015-03-02 2015-12-28 传输控制协议tcp数据包的发送方法、发送装置和系统

Publications (2)

Publication Number Publication Date
JP2018508151A true JP2018508151A (ja) 2018-03-22
JP6526825B2 JP6526825B2 (ja) 2019-06-05

Family

ID=56849185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017546188A Active JP6526825B2 (ja) 2015-03-02 2015-12-28 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム

Country Status (6)

Country Link
US (1) US10367922B2 (ja)
EP (1) EP3255847B1 (ja)
JP (1) JP6526825B2 (ja)
KR (1) KR102030574B1 (ja)
CN (1) CN105991462B (ja)
WO (1) WO2016138786A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102363534B1 (ko) * 2015-06-08 2022-02-17 삼성전자주식회사 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
CN105827537B (zh) * 2016-06-01 2018-12-07 四川大学 一种基于quic协议的拥塞改进方法
WO2018041366A1 (en) * 2016-09-02 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Tcp proxy using a communication distance indicator
CN108023686B (zh) * 2016-11-02 2022-03-25 中兴通讯股份有限公司 一种tcp延时处理方法、装置及系统
CN106713432B (zh) * 2016-12-13 2019-11-05 深信服科技股份有限公司 数据缓存方法及网络代理设备
CN109274704B (zh) * 2017-07-17 2021-06-29 中国电信股份有限公司 Tcp加速方法和装置、加速效果判断控制器和网关
CN109510801B (zh) * 2017-09-15 2021-08-31 北京华耀科技有限公司 显式正向代理与ssl侦听集成系统及其运行方法
CN108075988A (zh) * 2017-11-16 2018-05-25 华为技术有限公司 数据传输方法和装置
CN111010261A (zh) * 2018-10-08 2020-04-14 西安旌旗电子股份有限公司 智能远控水表系统及其方法
US11082883B2 (en) * 2018-12-20 2021-08-03 Verizon Patent And Licensing Inc. Providing passive bandwidth estimation of a wireless link in a transmission control protocol (TCP) slow start state
CN110138608B (zh) * 2019-05-09 2022-08-30 网宿科技股份有限公司 网络业务服务质量管理的方法及服务器
CN110120921B (zh) * 2019-05-13 2022-07-01 深圳市赛为智能股份有限公司 拥塞避免方法、装置、计算机设备及存储介质
US10999206B2 (en) 2019-06-27 2021-05-04 Google Llc Congestion control for low latency datacenter networks
US11438272B2 (en) * 2019-12-31 2022-09-06 Opanga Networks, Inc. System and method for mobility tracking
CN111314961A (zh) * 2020-02-19 2020-06-19 航天恒星科技有限公司 Tcp传输方法、装置和系统
CN111404783B (zh) * 2020-03-20 2021-11-16 南京大学 一种网络状态数据采集方法及其系统
CN113556213B (zh) * 2020-04-23 2022-12-06 华为技术有限公司 超时重传时间rto确定方法及相关装置
EP3907943B1 (en) * 2020-05-05 2022-04-27 Axis AB Round-trip estimation
US11483249B2 (en) * 2020-09-29 2022-10-25 Edgecast Inc. Systems and methods for dynamic optimization of network congestion control
CN112511451B (zh) * 2020-11-24 2022-11-08 南京邮电大学 控制bbr收敛周期长度的方法及服务器
CN112702362B (zh) * 2021-03-24 2021-06-08 北京翼辉信息技术有限公司 Tcp/ip协议栈的增强方法、装置、电子设备及存储介质
CN113271316B (zh) * 2021-06-09 2022-09-13 腾讯科技(深圳)有限公司 多媒体数据的传输控制方法和装置、存储介质及电子设备
CN114268988B (zh) * 2021-12-30 2022-10-21 广州爱浦路网络技术有限公司 基于5g的低轨卫星拥塞控制方法、系统、装置及介质
CN114401224B (zh) * 2022-01-19 2023-07-11 平安科技(深圳)有限公司 一种数据限流方法、装置、电子设备以及存储介质
CN115022247B (zh) * 2022-06-02 2023-10-20 成都卫士通信息产业股份有限公司 流控制传输方法、装置、设备及介质
CN115766519A (zh) * 2022-10-24 2023-03-07 株洲华通科技有限责任公司 便携通信设备的数据传输方法及系统
CN115514710B (zh) * 2022-11-08 2023-03-10 中国电子科技集团公司第二十八研究所 一种基于自适应滑动窗的弱连接流量管控方法
CN116055402A (zh) * 2023-01-05 2023-05-02 果子(青岛)数字技术有限公司 用于大数据和边缘计算的高速通信网络优化方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7385923B2 (en) 2003-08-14 2008-06-10 International Business Machines Corporation Method, system and article for improved TCP performance during packet reordering
US7423977B1 (en) * 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US7760633B2 (en) * 2005-11-30 2010-07-20 Cisco Technology, Inc. Transmission control protocol (TCP) congestion control using transmission delay components
JP5146725B2 (ja) * 2007-09-19 2013-02-20 日本電気株式会社 通信装置および通信方法
WO2009146726A1 (en) * 2008-06-06 2009-12-10 Telefonaktiebolaget Lm Ericsson (Publ) Technique for improving congestion control
CA2737107C (en) * 2010-04-13 2019-08-27 Jingyuan Wang Tcp congestion control for heterogeneous networks
US8877880B2 (en) * 2010-11-17 2014-11-04 Exxonmobil Chemical Patents Inc. Method for controlling polyolefin properties
JP5976277B2 (ja) * 2011-02-23 2016-08-23 富士通株式会社 伝送制御方法
WO2013101942A1 (en) * 2011-12-28 2013-07-04 Jingyuan Wang Tcp congestion control for large latency networks
JP5867160B2 (ja) * 2012-02-28 2016-02-24 富士通株式会社 通信制御装置、通信制御方法および通信制御プログラム
US8711690B2 (en) * 2012-10-03 2014-04-29 LiveQoS Inc. System and method for a TCP mapper
JP6173826B2 (ja) 2013-08-07 2017-08-02 日本放送協会 パケット送信装置およびそのプログラム
CN104158760B (zh) 2014-08-29 2018-08-03 中国科学技术大学 一种广域网tcp单边加速的方法及系统

Also Published As

Publication number Publication date
KR102030574B1 (ko) 2019-10-10
EP3255847A4 (en) 2018-02-28
US20170366650A1 (en) 2017-12-21
EP3255847B1 (en) 2020-08-05
EP3255847A1 (en) 2017-12-13
CN105991462A (zh) 2016-10-05
WO2016138786A1 (zh) 2016-09-09
KR20170121269A (ko) 2017-11-01
CN105991462B (zh) 2019-05-28
US10367922B2 (en) 2019-07-30
JP6526825B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
JP6526825B2 (ja) 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム
US11477130B2 (en) Transmission control method and apparatus
JP4248550B2 (ja) マルチtcp確認応答を用いたtcp輻輳制御システム及びその方法
US10560382B2 (en) Data transmission method and apparatus
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US9325628B2 (en) Packet handling method, forwarding device and system
EP2659623B1 (en) Methods and systems for transmission of data over computer networks
EP3726788A1 (en) Method for controlling network congestion, access device, and computer readable storage medium
JP2019520745A (ja) 同時接続の総スループットを改善するためのシステム及び方法
US10439950B2 (en) Dynamic discovery of network packet size
US11677675B2 (en) Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel
US20190253364A1 (en) Method For Determining TCP Congestion Window, And Apparatus
US11937123B2 (en) Systems and methods for congestion control on mobile edge networks
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN104683259A (zh) Tcp拥塞控制方法及装置
US10868839B2 (en) Method and system for upload optimization
KR20160071832A (ko) 무선 통신 시스템에서 자원 분배 방법 및 장치
US20170070433A1 (en) 5-way tcp optimization
JP2008118281A (ja) 通信装置
CN117278654A (zh) 基于tcp-bpf的动态网络自适应修改方法
KR101396785B1 (ko) 네트워크 장치에서 tcp 기능을 수행하는 방법
Tanaka et al. Pulsed ACK: Improving robustness of TCP for asymmetric bandwidth

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170921

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526825

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250