JP4627290B2 - Rate control method, server, and program using TCP - Google Patents
Rate control method, server, and program using TCP Download PDFInfo
- Publication number
- JP4627290B2 JP4627290B2 JP2006266684A JP2006266684A JP4627290B2 JP 4627290 B2 JP4627290 B2 JP 4627290B2 JP 2006266684 A JP2006266684 A JP 2006266684A JP 2006266684 A JP2006266684 A JP 2006266684A JP 4627290 B2 JP4627290 B2 JP 4627290B2
- Authority
- JP
- Japan
- Prior art keywords
- window size
- server
- terminal
- rate
- buffsz
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、TCP(Transmission Control Protocol)を用いたレート制御方法、サーバ及びプログラムに関する。 The present invention relates to a rate control method, server, and program using TCP (Transmission Control Protocol).
通信回線としてはインターネットが一般化し、ユーザは、パーソナルコンピュータ又は携帯電話機のような端末を用いて、インターネットに接続することができる。インターネットには、WWWサーバのようなサーバが接続されており、端末は、サーバとの間でデータを送受信することができる。 The Internet is generalized as a communication line, and a user can connect to the Internet using a terminal such as a personal computer or a mobile phone. A server such as a WWW server is connected to the Internet, and the terminal can send and receive data to and from the server.
サーバと端末との間でファイルデータを転送する場合、通常、TCP/IP(Transmission Control Protocol / Internet Protocol)のコネクションが設定される。TCPは、フロー制御機能、再送制御機能、コネクション管理機能、セッション多重化機能等を有する。 When file data is transferred between a server and a terminal, a TCP / IP (Transmission Control Protocol / Internet Protocol) connection is usually set. TCP has a flow control function, a retransmission control function, a connection management function, a session multiplexing function, and the like.
フロー制御については、TCPヘッダに含まれる受信ウィンドウサイズrwndを用いて、相手方装置の受信バッファサイズに応じて、データの送信が制御される。これにより、コネクション間のスループットのバラつきを抑えると共に、不要なフロー制御を回避する。例えば、適応的にTCPのウィンドウサイズを変更する技術(例えば特許文献1及び2参照)や、ルータによって輻輳制御をする技術(例えば特許文献3参照)がある。
With regard to flow control, data transmission is controlled according to the reception buffer size of the counterpart apparatus using the reception window size rwnd included in the TCP header. This suppresses variations in throughput between connections and avoids unnecessary flow control. For example, there is a technique for adaptively changing the TCP window size (for example, see
しかしながら、前述した特許文献に記載された技術は、コネクション毎のレート制御にすぎず、複数の端末と1つのサーバとの間のレート制御を対象としたものではない。 However, the technique described in the above-described patent document is only rate control for each connection, and is not intended for rate control between a plurality of terminals and one server.
一方で、膨大な数の端末と1つのサーバとの間のレート制御については、端末側でレート制御を有効に動作させなければ、サーバは大量のトラヒックを処理することが困難となる。また、サーバに対して、特定の端末からの多くのトラヒックに処理負荷がかかることも回避する必要がある。 On the other hand, for rate control between a huge number of terminals and one server, it is difficult for the server to process a large amount of traffic unless rate control is operated effectively on the terminal side. In addition, it is necessary to avoid a processing load on a lot of traffic from a specific terminal on the server.
そこで、本発明は、膨大な数の端末と通信するサーバに、大量のトラヒックが集中することによる輻輳負荷状態をできる限り低減し、端末間のリソース利用の公平性を確保することができる、レート制御方法、サーバ及びプログラムを提供することを目的とする。 Therefore, the present invention reduces the congestion load state due to the concentration of a large amount of traffic on a server that communicates with a large number of terminals as much as possible, and can ensure the fairness of resource usage between terminals. It is an object to provide a control method, a server, and a program.
本発明によれば、複数の端末が1つのサーバに対してTCPのコネクションを確立している際に、端末からのデータの送信レートを制御するサーバのレート制御方法において、
サーバが、各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
サーバが、回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する第1のステップと、
サーバが、回線帯域幅BandWidthを、接続中のコネクション数NumConncetionsで除算したレートRateを算出し、レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出する第2のステップと、
サーバが、端末からデータを受信することによって最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、算出ウィンドウサイズkwndが空き受信バッファサイズbuffszよりも小さい場合に、算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する第3のステップと
サーバが、受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACK(Acknowledge)を、端末へ送信する第4のステップと
を有し、
端末が、確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とする。
According to the present invention, when a plurality of terminals has established a TCP connection for one server, the rate control method of a server for controlling a rate of data from the terminal,
When the server establishes a connection from each terminal, it sets the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
A first step in which the server measures the line bandwidth BandWidth and the number of connected connections NumConncetions;
The server calculates the rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions, and calculates the calculation window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate 2nd And the steps
The server measures the free receive buffer size buffsz that is less than or equal to the maximum receive buffer size max-buffsz by receiving data from the terminal, and the calculated window size kwnd when the calculated window size kwnd is smaller than the free receive buffer size buffsz a third step of determining a receive window size rwnd the
Server, a receive window size rwnd TC P f header to include acknowledgment ACK to (Acknowledge), a fourth step of transmitting to the terminal
Have
The terminal is characterized by ensuring fair use of resources of the server in each terminal by controlling the data transmission rate according to the reception window size included in the acknowledgment ACK .
本発明によれば、複数の端末が1つのサーバに対してTCPのコネクションを確立している際に、端末からのデータの送信レートを制御するサーバにおいて、
各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する負荷状態測定手段と、
回線帯域幅BandWidthを、接続中のコネクション数NumConncetionsで除算したレートRateを算出し、レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出するウィンドウサイズ算出手段と、
端末からデータを受信することによって最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、算出ウィンドウサイズkwndが空き受信バッファサイズbuffszよりも小さい場合に、算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する受信ウィンドウサイズ決定手段と、
受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACKを生成し、端末へ送信する確認応答生成手段と
を有し、
端末が、確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とする。
According to the present invention, when a plurality of terminals has established a TCP connection for one server, the server that controls the transmission rate of data from the terminal,
When establishing a connection from each terminal, set the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
Load state measuring means for measuring the line bandwidth BandWidth and the number of connected connections NumConncetions ;
A window size calculation means for calculating a rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions, and calculating a calculation window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate ; ,
Measure the free receive buffer size buffsz that is less than the maximum receive buffer size max-buffsz by receiving data from the terminal, and if the calculated window size kwnd is smaller than the free receive buffer size buffsz, calculate the calculated window size kwnd A receiving window size determining means for determining the size as rwnd ;
The receive window size rwnd generates an acknowledge ACK, including the TC P f header, the acknowledgment generating means to be transmitted to the terminal
Have
The terminal is characterized by ensuring fair use of resources of the server in each terminal by controlling the data transmission rate according to the reception window size included in the acknowledgment ACK .
本発明によれば、複数の端末が1つのサーバに対してTCPのコネクションを確立している際に、端末からのデータの送信レートを制御するサーバに搭載されたコンピュータを機能させるプログラムにおいて、
各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する負荷状態測定手段と、
回線帯域幅BandWidthを、接続中のコネクション数NumConncetionsで除算したレートRateを算出し、レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出するウィンドウサイズ算出手段と、
端末からデータを受信することによって最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、算出ウィンドウサイズkwndが空き受信バッファサイズbuffszよりも小さい場合に、算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する受信ウィンドウサイズ決定手段と、
受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACKを生成し、端末へ送信する確認応答生成手段と
してコンピュータを機能させ、
端末が、確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とする。
According to the present invention, when a plurality of terminals has established a TCP connection for a single server, in a program that causes a onboard computer to a server for controlling a rate of data from the terminal,
When establishing a connection from each terminal, set the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
Load state measuring means for measuring the line bandwidth BandWidth and the number of connected connections NumConncetions ;
A window size calculation means for calculating a rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions, and calculating a calculation window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate ; ,
Measure the free receive buffer size buffsz that is less than the maximum receive buffer size max-buffsz by receiving data from the terminal, and if the calculated window size kwnd is smaller than the free receive buffer size buffsz, calculate the calculated window size kwnd A receiving window size determining means for determining the size as rwnd ;
The receive window size rwnd generates an acknowledge ACK, including the TC P f header, the acknowledgment generating means to be transmitted to the terminal
Make your computer work,
The terminal is characterized by ensuring fairness of resource usage of the server in each terminal by controlling the data transmission rate according to the reception window size included in the acknowledgment ACK .
本発明におけるレート制御方法、サーバ及びプログラムによれば、膨大な数の端末と通信するサーバに、大量のトラヒックが集中することによる輻輳負荷状態をできる限り低減し、端末間のリソース利用の公平性を確保することができる。 According to the rate control method, server, and program of the present invention, the congestion load state due to the concentration of a large amount of traffic is reduced as much as possible on a server that communicates with a large number of terminals, and the fairness of resource utilization between terminals Can be secured.
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。 Hereinafter, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
最初に、ウィンドウ制御を用いた、TCPのフロー制御について簡単に説明する。ウィンドウ制御によれば、ウィンドウサイズ(バイト数)だけのデータを、受信装置からの確認応答ACKを受信することなく連続的に送信することができる。送信装置は、受信装置から確認応答ACKを受信することにより、受信が確認された分だけ、ウィンドウをスライドさせる(スライディングウィンドウサイズ)。 First, TCP flow control using window control will be briefly described. According to the window control, data having a window size (number of bytes) can be continuously transmitted without receiving an acknowledgment ACK from the receiving device. By receiving the acknowledgment ACK from the receiving device, the transmitting device slides the window by the amount that the reception is confirmed (sliding window size).
TCPにおけるデータ送信には、「受信ウィンドウサイズrwnd(Receive Windows Size)」と「輻輳ウィンドウサイズcwnd(Congestion Windows Size)」との2つのウィンドウを用いる。 For data transmission in TCP, two windows of “reception window size rwnd (Receive Windows Size)” and “congestion window size cwnd (Congestion Windows Size)” are used.
「受信ウィンドウサイズ」rwndは、受信装置が、確認応答ACKによって送信装置へ送信するものであり、受信装置の空き受信バッファサイズbuffszを表す。受信装置の空き受信バッファサイズbuffszが少なくなると、受信装置は、送信装置へ送信する受信ウィンドウサイズrwndを小さくする。本発明によれば、確認応答ACKに含まれる受信ウィンドウサイズrwndは、空き受信バッファサイズbuffszに対して更に輻輳負荷状態を反映したものとなる。 The “reception window size” rwnd is transmitted from the reception device to the transmission device by an acknowledgment ACK, and represents an empty reception buffer size buffsz of the reception device. When the free reception buffer size buffsz of the reception device decreases, the reception device decreases the reception window size rwnd transmitted to the transmission device. According to the present invention, the reception window size rwnd included in the confirmation response ACK further reflects the congestion load state with respect to the empty reception buffer size buffsz.
「輻輳ウィンドウサイズ」cwndは、送信装置によって決定されるものであり、受信装置へ送信するものではない。輻輳ウィンドウサイズは、確認応答ACKの受信状況に基づいて制御されるものであり、TCPのバージョンによって様々な計算方法で算出される。 The “congestion window size” cwnd is determined by the transmission device, and is not transmitted to the reception device. The congestion window size is controlled based on the reception status of the acknowledgment ACK, and is calculated by various calculation methods depending on the TCP version.
実際に確認応答なしに送信できるデータサイズは、確認応答ACKによって受信した「受信ウィンドウサイズ」と、算出された「輻輳ウィンドウサイズ」とを比較して、小さい方のデータサイズとなる。 The data size that can be actually transmitted without the confirmation response is the smaller data size by comparing the “reception window size” received by the confirmation response ACK with the calculated “congestion window size”.
また、TCPにおけるデータ受信には、コネクション確立時には、コネクション当たりの最大受信バッファサイズmax-buffszが設定される。最大受信バッファサイズmax-buffszは、サーバが使用可能なメモリ量などに応じて、事前に設定される固定値である。また、最大受信バッファサイズmax-buffszは、コネクション確立後、コネクションが確立している間に変更されることはない。従って、空き受信バッファサイズbuffszは、最大受信バッファサイズmax-buffszを越えることはない。即ち、確認応答ACKのヘッダに含まれる受信ウィンドウサイズrwndは、最大受信バッファサイズbuffszを越えることはない。 For data reception in TCP, a maximum reception buffer size max-buffsz per connection is set when a connection is established. The maximum reception buffer size max-buffsz is a fixed value set in advance according to the amount of memory available to the server. Further, the maximum reception buffer size max-buffsz is not changed after the connection is established. Therefore, the empty reception buffer size buffsz does not exceed the maximum reception buffer size max-buffsz. That is, the reception window size rwnd included in the header of the acknowledgment ACK does not exceed the maximum reception buffer size buffsz.
図1は、本発明におけるシステム構成図である。 FIG. 1 is a system configuration diagram according to the present invention.
サーバ1は、インターネット3を介して確立されたTCPコネクションを用いて、複数の端末2とデータを送受信する。
The
最初に、サーバ1の機能構成について説明する。サーバ1は、コンテンツ蓄積部100と、レート制御可能なデータ送信部111と、データ受信部121と、輻輳負荷状態測定部101と、ウィンドウサイズ算出部102と、輻輳ウィンドウサイズ導出部112と、第1送信ウィンドウサイズ決定部113と、第2送信ウィンドウサイズ決定部114と、確認応答生成部122と、受信ウィンドウサイズ決定部123とを有する。これら機能部は、サーバに搭載されたコンピュータを機能させるプログラムを実行することによっても実現できる。
First, the functional configuration of the
コンテンツ蓄積部100は、コンテンツデータを蓄積する。データ受信部121から通知された要求に応じて、コンテンツデータをデータ送信部111へ通知する。
The
データ送信部111は、端末2へデータを送信し、それに対して確認応答ACKを受信する。尚、データ送信部111は、確認応答ACKを受信すると、その中から受信ウィンドウサイズrwndを取得する。受信ウィンドウサイズrwndは、第2送信ウィンドウサイズ決定部114へ通知される。
The
データ受信部121は、端末2からデータを受信し、それに対して確認応答ACKを返信する。また、データ受信部121は、受信したデータをコンテンツ蓄積部100へ通知すると共に、現在の空き受信バッファサイズbuffszを受信ウィンドウサイズ決定部123へ通知する。
The
輻輳負荷状態測定部101は、データ送信部111及びデータ受信部121を監視し、複数の端末2からのアクセスによる輻輳負荷状態を測定する。輻輳負荷状態は、回線帯域幅BandWidth[bit/s]を、接続中のコネクション数NumConncetionsで除算したレートRateである。
The congestion load
ウィンドウサイズ算出部102は、輻輳負荷状態に基づいて、以下の式によって算出ウィンドウサイズkwndを算出する。算出ウィンドウサイズkwndは、1本のコネクション当たりで使用可能なウィンドウサイズを表し、端末間のリソース利用の公平性を確保する。
kwnd[byte]=Rate[bit/s]×RTT[s]/8
Rate[bit/s]=BandWidth[bit/s]/NumConncetions
RTT:コネクション確立時又は確立後に観測した転送遅延値[second]
算出ウィンドウサイズkwndは、データ送信については第1送信ウィンドウサイズ決定部113へ通知され、データ受信については受信ウィンドウサイズ決定部123へ通知される。
The window
kwnd [byte] = Rate [bit / s] × RTT [s] / 8
Rate [bit / s] = BandWidth [bit / s] / NumConncetions
RTT: Transfer delay value [second] observed at connection establishment or after establishment
The calculated window size kwnd is notified to the first transmission window
受信ウィンドウサイズ決定部123は、ウィンドウサイズ算出部102から算出ウィンドウサイズkwndを受け取り、データ受信部121から空き受信バッファサイズbuffszを受け取る。そして、受信ウィンドウサイズ決定部123は、算出ウィンドウサイズkwndと空き受信バッファサイズbuffszとを比較し、小さい方のサイズを受信ウィンドウサイズrwndとして決定する。決定された受信ウィンドウサイズrwndは、確認応答生成部122へ通知される。
The reception window
空き受信バッファサイズbuffszは、コネクション確立時に設定された最大受信バッファサイズmax-buffszを越えることはない。従って、受信ウィンドウサイズrwndも、最大受信バッファサイズmax-buffszを越えることはない。更に、本発明によれば、受信ウィンドウサイズrwndは、空き受信バッファサイズbuffszを越えることもない。即ち、本発明の特徴的機能は、算出ウィンドウサイズkwndが、空き受信バッファサイズbuffszよりも小さい場合にのみ有効となる。この場合にのみ、通常のTCPにおける受信ウィンドウサイズrwndと、本発明における受信ウィンドウサイズrwnd(=算出ウィンドウサイズkwnd)とが異なる。 The empty reception buffer size buffsz does not exceed the maximum reception buffer size max-buffsz set when the connection is established. Accordingly, the reception window size rwnd also does not exceed the maximum reception buffer size max-buffsz. Furthermore, according to the present invention, the reception window size rwnd does not exceed the empty reception buffer size buffsz. That is, the characteristic function of the present invention is effective only when the calculation window size kwnd is smaller than the empty reception buffer size buffsz. Only in this case, the reception window size rwnd in normal TCP is different from the reception window size rwnd (= calculation window size kwnd) in the present invention.
確認応答生成部122は、確認応答ACKのTCPヘッダに、受信ウィンドウサイズrwndを含める。生成された確認応答ACKは、データ受信部121へ通知され、端末2へ送信される。これにより、端末2は、受信した確認応答ACKにおけるTCPヘッダの受信ウィンドウサイズrwndに応じて、サーバ1へのデータの送信レートが制御される。
The confirmation
図2は、TCPヘッダのフォーマットである。確認応答ACKのビットと、受信ウィンドウサイズrwndとが表されている。 FIG. 2 shows a TCP header format. The bits of the acknowledgment ACK and the reception window size rwnd are shown.
輻輳ウィンドウサイズ導出部112は、TCPの輻輳ウィンドウサイズcwndを算出する。輻輳ウィンドウサイズcwndは、TCPのバージョンによって様々な計算方法で算出される。
The congestion window
第1送信ウィンドウサイズ決定部113は、ウィンドウサイズ算出部102から出力された算出ウィンドウサイズkwndと、輻輳ウィンドウサイズ導出部112から出力された輻輳ウィンドウサイズcwndとを比較する。そして、小さい方のサイズを第1送信ウィンドウサイズwnd1とする。決定された第1送信ウィンドウサイズwnd1は、第2送信ウィンドウサイズ決定部114へ通知される。
The first transmission window
第2送信ウィンドウサイズ決定部114は、データ送信部111から通知された受信ウィンドウサイズrwndと、第1送信ウィンドウサイズwnd1とを比較する。そして、小さい方のサイズを第2送信ウィンドウサイズwnd2とする。決定された第2送信ウィンドウサイズwnd2は、データ送信部111へ通知される。データ送信部111は、第2送信ウィンドウサイズwnd2に応じて、データの送信レートを制御する。
The second transmission window
次に、端末2の機能構成について説明する。端末2は、レート制御可能なデータ送信部21と、データ受信部22とを有する。これら機能部は、端末に搭載されたコンピュータを機能させるプログラムを実行することによっても実現できる。
Next, the functional configuration of the
データ送信部21は、サーバ1へデータを送信し、それに対して確認応答ACKを受信する。尚、データ送信部21は、確認応答ACKを受信すると、その中から受信ウィンドウサイズrwndを取得する。受信ウィンドウサイズrwndに応じて、データの送信レートが制御される。
The
データ受信部22は、端末2からデータを受信し、それに対して確認応答ACKを返信する。尚、データ受信部22は、輻輳負荷状態と空きバッファサイズに応じて算出した受信ウィンドウサイズrwndを、確認応答ACKのTCPヘッダに含め、その確認応答ACKを送信する。
The
図3は、本発明におけるシーケンス図である。 FIG. 3 is a sequence diagram in the present invention.
最初に、端末2からサーバ1へ送信されるデータのレート制御について説明する。
First, rate control of data transmitted from the
(S301)端末2とサーバ1との間で、コネクションが確立される。TCPコネクションを確立する場合には、SYNの交換による3ウェイハンドシェイクがなされる。サーバ1は、このコネクション確立時及びその後、データの送受信に対して転送遅延値RTTを測定する。コネクション確立時の受信バッファは空であるために、空き受信バッファサイズbuffszは、必然的に最大受信バッファサイズmax-buffszとして決定される。図3によれば、例えば、サーバ1の最大受信ウィンドウサイズmax-buffszが500Byteに決定されている。
(S301) A connection is established between the terminal 2 and the
(S302)端末2は、受信ウィンドウサイズ500Byte以下となる400Byteのデータを、シーケンス番号6001を用いてサーバ1へ送信する。
(S303)サーバ1は、受信ウィンドウサイズ500Byteのうち400Byteを受信したので、残りの受信バッファサイズは100Byteである。サーバ1は、シーケンス番号6401で且つ受信ウィンドウサイズrwnd=100Byteとなる確認応答ACKを端末2へ返信する。
(S304)端末2は、受信ウィンドウサイズ100Byteのうち100Byteのデータを、シーケンス番号6401を用いてサーバ1へ送信する。
(S305)サーバ1は、受信ウィンドウサイズ100Byteのうち100Byteを受信したので、残りの受信バッファサイズは0Byteである。サーバ1は、確認シーケンス番号6501で且つ受信ウィンドウサイズrwnd=0Byteとなる確認応答ACKを端末2へ返信する。
(S302) The
(S303) Since the
(S304) The
(S305) Since the
ここで、サーバ1は、コネクション確立時よりも輻輳負荷状態が増加したとする。輻輳負荷状態の増加としては、例えば、サーバ1へ接続する端末数が増えた場合がある。
Here, it is assumed that the congestion load state of the
サーバ1は、輻輳負荷状態(回線帯域幅BandWidth[bit/s]、接続中のコネクション数NumConncetions)から、端末2に対する算出ウィンドウサイズkwndを算出する。例えば、算出ウィンドウサイズkwnd=300Byteとなったとする。また、サーバ1は、先に受信したデータに対する受信処理が全て終了しているとする。そうすると、ここで、算出ウィンドウサイズkwnd=300Byteと、最大受信バッファサイズmax-buffsz=500Byteとを比較し、小さい方の300Byteが、受信ウィンドウサイズrwndとして更新される。
The
(S306)サーバ1は、確認シーケンス番号6501で且つ受信ウィンドウサイズrwnd=300Byteとなる確認応答ACKを端末2へ送信する。これにより、端末2は、再び、サーバ1に対してデータを送信する。
(S306) The
次に、サーバ1から端末2へ送信されるデータのレート制御について説明する。
Next, rate control of data transmitted from the
(S311)サーバ1は、データを端末2へ送信する。このとき、サーバ1は、輻輳負荷状態(回線帯域幅BandWidth[bit/s]、接続中のコネクション数NumConncetions)から、端末2に対する算出ウィンドウサイズkwndを算出する。一方で、サーバ1は、輻輳ウィンドウサイズcwndを導出する。
(S311) The
図4は、輻輳ウィンドウサイズcwndの一般的な決定方法のグラフである。 FIG. 4 is a graph of a general method for determining the congestion window size cwnd.
輻輳ウィンドウサイズは、初期値1Byteからスロースタートさせ、閾値(輻輳a)以下のときは指数関数的に、輻輳ウィンドウサイズcwndを増加させる。ここで、確認応答ACKを受信しなくても送信できる最大の輻輳ウィンドウサイズcwndは、輻輳aである。輻輳aに達し、その後、再送制御によって受信が確認され、輻輳が回避されると、再びスロースタートさせ、輻輳ウィンドウサイズcwndを指数関数的に増加させていく。そして、輻輳a/2に達すると、輻輳ウィンドウサイズcwndは、線形的に増加させていく。線形増加における最大の輻輳ウィンドウサイズcwndは、輻輳b(<輻輳a)となる。このとき、輻輳回避しても、輻輳ウィンドウサイズcwndは、輻輳b/2までにしか減少しない。その後、再び、線形増加によって増加する。
The congestion window size is slow-started from the
図3のS311に戻って、算出ウィンドウサイズkwndと、輻輳ウィンドウサイズcwndとを比較し小さい方のサイズを、第1送信ウィンドウサイズwnd1とする。 Returning to S311 of FIG. 3, the calculated window size kwnd and the congestion window size cwnd are compared, and the smaller one is set as the first transmission window size wnd1.
(S312)サーバ1は、端末2から、シーケンス番号6401及び受信ウィンドウサイズrwnd=100となる確認応答ACKを受信する。ここで、サーバ1は、受信ウィンドウサイズrwndと、第1送信ウィンドウサイズwnd1とを比較し、小さい方のサイズを、第2送信ウィンドウサイズwnd2とする。
(S312) The
(S313)サーバ1は、第2送信ウィンドウサイズwnd2に応じて、送信レートを制御する。
(S313) The
以上、詳細に説明したように、本発明におけるレート制御方法、サーバ及びプログラムによれば、膨大な数の端末と通信するサーバに、大量のトラヒックが集中することによる輻輳負荷状態をできる限り低減し、端末間のリソース利用の公平性を確保することができる。 As described above in detail, according to the rate control method, server, and program of the present invention, it is possible to reduce the congestion load state caused by a large amount of traffic concentrated on a server that communicates with a large number of terminals as much as possible. Therefore, it is possible to ensure the fairness of resource usage between terminals.
本発明のシステムは、特に、視聴者参加型放送番組が放送されるような通信放送連携システムに有効に作用する。放送番組の内容によっては、視聴者が操作する端末から、ある時間帯に、特定のサーバへ集中してアクセスされる場合がある。このような場合に、本発明を適用することによって、端末側のレート制御が有効に働き、サーバの輻輳負荷状態が回避される。 The system of the present invention works particularly effectively on a communication / broadcasting cooperation system in which a viewer participation broadcast program is broadcast. Depending on the content of the broadcast program, there is a case where the terminal operated by the viewer is concentratedly accessed to a specific server in a certain time zone. In such a case, by applying the present invention, the rate control on the terminal side works effectively, and the congestion load state of the server is avoided.
前述した本発明における種々の実施形態によれば、当業者は、本発明の技術思想及び見地の範囲における種々の変更、修正及び省略を容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。 According to the various embodiments of the present invention described above, those skilled in the art can easily make various changes, modifications and omissions within the scope of the technical idea and the viewpoint of the present invention. The above description is merely an example, and is not intended to be restrictive. The invention is limited only as defined in the following claims and the equivalents thereto.
1 サーバ
100 コンテンツ蓄積部
101 輻輳負荷状態測定部
102 ウィンドウサイズ算出部
111 データ送信部
112 輻輳ウィンドウサイズ導出部
113 第1送信ウィンドウサイズ決定部
114 第2送信ウィンドウサイズ決定部
121 データ受信部
122 確認応答生成部
123 受信ウィンドウサイズ決定部
2 端末
21 データ送信部
22 データ受信部
3 インターネット
DESCRIPTION OF
Claims (3)
前記サーバが、各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
前記サーバが、回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する第1のステップと、
前記サーバが、前記回線帯域幅BandWidthを、前記接続中のコネクション数NumConncetionsで除算したレートRateを算出し、前記レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出する第2のステップと、
前記サーバが、前記端末からデータを受信することによって前記最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、前記算出ウィンドウサイズkwndが前記空き受信バッファサイズbuffszよりも小さい場合に、前記算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する第3のステップと
前記サーバが、前記受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACK(Acknowledge)を、前記端末へ送信する第4のステップと
を有し、
前記端末が、前記確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とするレート制御方法。 When a plurality of terminals has established a connection of TCP (Transmission Control Protocol) for the one server, the rate control method of a server for controlling a rate of data from the terminal,
When the server establishes a connection from each terminal, it sets the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
A first step in which the server measures a line bandwidth BandWidth and the number of connected connections NumConncetions;
The server calculates a rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions, and calculates a calculation window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate. A second step of calculating;
When the server measures the free reception buffer size buffsz that is equal to or less than the maximum reception buffer size max-buffsz by receiving data from the terminal, and the calculation window size kwnd is smaller than the free reception buffer size buffsz A third step of determining the calculated window size kwnd as the reception window size rwnd ;
The server, a fourth step of transmitting the reception window size rwnd a TC P f header to include acknowledgment ACK (Acknowledge), to the terminal
Have
A rate control method characterized in that the terminal ensures fairness of resource use of the server in each terminal by controlling a data transmission rate according to a reception window size included in the acknowledgment ACK. .
各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する負荷状態測定手段と、
前記回線帯域幅BandWidthを、前記接続中のコネクション数NumConncetionsで除算したレートRateを算出し、前記レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出するウィンドウサイズ算出手段と、
前記端末からデータを受信することによって前記最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、前記算出ウィンドウサイズkwndが前記空き受信バッファサイズbuffszよりも小さい場合に、前記算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する受信ウィンドウサイズ決定手段と、
前記受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACKを生成し、前記端末へ送信する確認応答生成手段と
を有し、
前記端末が、前記確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とするサーバ。 When a plurality of terminals has established a TCP connection for one server, the server that controls the transmission rate of the data from said terminal,
When establishing a connection from each terminal, set the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
Load state measuring means for measuring the line bandwidth BandWidth and the number of connected connections NumConncetions ;
The window size for calculating the rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions and calculating the calculated window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate A calculation means;
By measuring the free reception buffer size buffsz that is equal to or less than the maximum reception buffer size max-buffsz by receiving data from the terminal, and the calculation window size kwnd is smaller than the free reception buffer size buffsz, the calculation window a receive window size determination means for determining a size kwnd as receive window size rwnd,
Generates an acknowledge ACK, including the reception window size rwnd the TC P f header, the acknowledgment generating means to be transmitted to the terminal
Have
The server, wherein the terminal ensures fair use of resources of the server in each terminal by controlling a data transmission rate according to a reception window size included in the confirmation response ACK .
各端末からのコネクション確立時に、当該サーバの使用可能なメモリ量に応じて、コネクション当たりの最大受信バッファサイズmax-buffszを設定し、
回線帯域幅BandWidthと、接続中のコネクション数NumConncetionsとを測定する負荷状態測定手段と、
前記回線帯域幅BandWidthを、前記接続中のコネクション数NumConncetionsで除算したレートRateを算出し、前記レートRateに基づいて算出ウィンドウサイズkwnd(=Rate×RTT、RTT:転送遅延時間)を算出するウィンドウサイズ算出手段と、
前記端末からデータを受信することによって前記最大受信バッファサイズmax-buffsz以下となる空き受信バッファサイズbuffszを計測し、前記算出ウィンドウサイズkwndが前記空き受信バッファサイズbuffszよりも小さい場合に、前記算出ウィンドウサイズkwndを受信ウィンドウサイズrwndとして決定する受信ウィンドウサイズ決定手段と、
前記受信ウィンドウサイズrwndをTCPヘッダに含めた確認応答ACKを生成し、前記端末へ送信する確認応答生成手段と
してコンピュータを機能させ、
前記端末が、前記確認応答ACKに含まれる受信ウィンドウサイズに応じて、データの送信レートを制御することによって、各端末における当該サーバのリソース利用の公平性を確保することを特徴とするサーバ用のプログラム。 When a plurality of terminals has established a TCP connection for a single server, in a program that causes a computer mounted in a server for controlling a rate of data from the terminal,
When establishing a connection from each terminal, set the maximum receive buffer size max-buffsz per connection according to the amount of memory available for the server,
Load state measuring means for measuring the line bandwidth BandWidth and the number of connected connections NumConncetions ;
The window size for calculating the rate Rate obtained by dividing the line bandwidth BandWidth by the number of connected connections NumConncetions and calculating the calculated window size kwnd (= Rate × RTT, RTT: transfer delay time) based on the rate Rate A calculation means;
By measuring the free reception buffer size buffsz that is equal to or less than the maximum reception buffer size max-buffsz by receiving data from the terminal, and the calculation window size kwnd is smaller than the free reception buffer size buffsz, the calculation window a receive window size determination means for determining a size kwnd as receive window size rwnd,
Generates an acknowledge ACK, including the reception window size rwnd the TC P f header, the acknowledgment generating means to be transmitted to the terminal
Make your computer work,
For the server, the terminal ensures fairness of resource usage of the server in each terminal by controlling a data transmission rate according to a reception window size included in the acknowledgment ACK . program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006266684A JP4627290B2 (en) | 2006-09-29 | 2006-09-29 | Rate control method, server, and program using TCP |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006266684A JP4627290B2 (en) | 2006-09-29 | 2006-09-29 | Rate control method, server, and program using TCP |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008085950A JP2008085950A (en) | 2008-04-10 |
JP4627290B2 true JP4627290B2 (en) | 2011-02-09 |
Family
ID=39356279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006266684A Expired - Fee Related JP4627290B2 (en) | 2006-09-29 | 2006-09-29 | Rate control method, server, and program using TCP |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4627290B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5223444B2 (en) * | 2008-05-01 | 2013-06-26 | 富士通株式会社 | Communication system and call control device |
JP5387058B2 (en) * | 2009-03-04 | 2014-01-15 | 日本電気株式会社 | Transmission device, transmission rate calculation method, and transmission rate calculation program |
US8699339B2 (en) * | 2012-02-17 | 2014-04-15 | Apple Inc. | Reducing interarrival delays in network traffic |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000134279A (en) * | 1998-10-22 | 2000-05-12 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | Flow control method |
JP2003078560A (en) * | 2001-09-05 | 2003-03-14 | Oki Electric Ind Co Ltd | Flow control system in transport layer protocol |
JP2003124984A (en) * | 2001-10-18 | 2003-04-25 | Mitsubishi Electric Corp | Data distribution managing apparatus, system and method therefor |
-
2006
- 2006-09-29 JP JP2006266684A patent/JP4627290B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000134279A (en) * | 1998-10-22 | 2000-05-12 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | Flow control method |
JP2003078560A (en) * | 2001-09-05 | 2003-03-14 | Oki Electric Ind Co Ltd | Flow control system in transport layer protocol |
JP2003124984A (en) * | 2001-10-18 | 2003-04-25 | Mitsubishi Electric Corp | Data distribution managing apparatus, system and method therefor |
Also Published As
Publication number | Publication date |
---|---|
JP2008085950A (en) | 2008-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6646987B1 (en) | Method and system for transmission control protocol (TCP) packet loss recovery over a wireless link | |
US9641650B2 (en) | TCP proxy server | |
EP1892887B1 (en) | Communication method between communication devices and communication apparatus | |
EP1568180B1 (en) | A method for enhancing transmission quality of streaming media | |
US20060031518A1 (en) | Method and apparatus for transparent negotiations | |
JP2019523582A (en) | System and method for improving total throughput of simultaneous connections | |
US20080101290A1 (en) | Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof | |
CN105493510B (en) | Data communication system and method | |
US9906581B2 (en) | Information processing apparatus, control method, and storage medium | |
US9413797B2 (en) | Data communication system and method | |
CN112436924B (en) | Data transmission method and electronic equipment | |
WO2019144802A1 (en) | Data transmission method and related device | |
CN104683259A (en) | TCP congestion control method and device | |
JP4627290B2 (en) | Rate control method, server, and program using TCP | |
JP2007013449A (en) | Shaper control method, data communication system, network interface device and network repeating device | |
CN115396372B (en) | Data stream rate control method, intelligent network card, cloud device and storage medium | |
WO2017101875A1 (en) | Transmission rate control method and device based on iscsi protocol | |
US10015288B2 (en) | Communication apparatus and control method of communication apparatus | |
JP2004187099A (en) | Communication control method, communication system and communication equipment | |
JP2017038297A (en) | Communication device, communication method and communication system | |
JP4636510B2 (en) | Terminal rate control method, terminal, system and program in communication / broadcasting cooperation system | |
JP2008199431A (en) | Communication device | |
CN114172977B (en) | Transmission Control Protocol (TCP) proxy method, device and base station | |
JP2006087010A (en) | Communication path control apparatus and network system employing the same | |
Maxwell | Multipath TCP, and New Packet Scheduling Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101013 |
|
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: 20101104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101104 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4627290 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |