JP2014027444A - Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program - Google Patents
Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program Download PDFInfo
- Publication number
- JP2014027444A JP2014027444A JP2012165484A JP2012165484A JP2014027444A JP 2014027444 A JP2014027444 A JP 2014027444A JP 2012165484 A JP2012165484 A JP 2012165484A JP 2012165484 A JP2012165484 A JP 2012165484A JP 2014027444 A JP2014027444 A JP 2014027444A
- Authority
- JP
- Japan
- Prior art keywords
- buffer size
- transmission
- data
- transmission buffer
- reception
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 title claims description 23
- 230000004044 response Effects 0.000 claims abstract description 41
- 238000012790 confirmation Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 abstract description 30
- 238000004891 communication Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
本発明は、データ送信装置の送信バッファサイズを推定する技術に関する。 The present invention relates to a technique for estimating a transmission buffer size of a data transmission apparatus.
インターネット等の通信ネットワーク上に配備されたコンピュータは、クライアント側からの要求に応じてデータを送信する送信装置と、その要求を行いサーバ側から返信されたデータを受信する受信装置とに大きく分類される。 Computers deployed on a communication network such as the Internet are roughly classified into a transmission device that transmits data in response to a request from the client side and a reception device that receives the data returned from the server side that makes the request. The
それら各装置は通信によってデータ転送を実現するが、データ転送時に通信速度が遅くなる事象が発生する場合がある。その事象の原因は様々であるが、その1つとして送信装置の送信バッファ容量が不足することにより、装置間のデータ転送効率が低下することが考えられる。 Each of these devices realizes data transfer by communication, but an event that the communication speed becomes slow may occur during data transfer. There are various causes of the event. One of the causes is that the transmission buffer capacity of the transmission device is insufficient, and the data transfer efficiency between the devices may be reduced.
しかし、送信バッファサイズは送信装置で独自に決定される通常未開示の値であるため、それを知るには通信先である送信装置の機器仕様や割当容量を調査する必要があることから、受信装置でその実値を取得することは困難である。 However, since the transmission buffer size is a value that is normally undisclosed that is uniquely determined by the transmission device, it is necessary to investigate the device specifications and allocated capacity of the transmission device that is the communication destination in order to know it. It is difficult to obtain the actual value with the device.
これについて特許文献1の従来技術によれば、送信装置からのデータに対して受信応答を積極的に行わないことにより、再送信されるデータに基づき送信装置の再送バッファの最大容量を推定する技術を開示している。
In this regard, according to the prior art of
つまり、送信装置から送信されたデータに対してACK応答を返信しないこととし、そのデータを送信装置の再送バッファにあえて蓄積させる。その後、再送タイマーが満了すると、その再送バッファに蓄積されたデータが再送されることから、その再送数を測定することにより再送バッファサイズを推定している。 That is, an ACK response is not returned for the data transmitted from the transmission apparatus, and the data is stored in the retransmission buffer of the transmission apparatus. Thereafter, when the retransmission timer expires, the data stored in the retransmission buffer is retransmitted, and the retransmission buffer size is estimated by measuring the number of retransmissions.
しかしながら、送信装置の送信処理において、時間の経過に伴い送信データ量を徐々に増加させるアルゴリズムが適用されている場合には、特許文献1の従来技術を利用したとしても、その送信装置の送信バッファサイズを正確に推定することはできない。
However, when an algorithm for gradually increasing the amount of transmission data with the passage of time is applied in the transmission processing of the transmission apparatus, even if the conventional technique of
すなわち、例えばスロースタートアルゴリズムによれば、送信するセグメント数が徐々に増加してその後再送タイマーが満了した場合には、通信ネットワークで輻輳が発生したと判断して送信データ量を減少させてしまうため(図6参照)、これにより再送バッファに格納されるデータ量が抑制されることから、その時点で使用している再送バッファサイズの推定は可能であるが、実際に割り当てられている又は機器仕様上の再送バッファサイズを推定することは困難である。 That is, for example, according to the slow start algorithm, if the number of segments to be transmitted gradually increases and then the retransmission timer expires, it is determined that congestion has occurred in the communication network and the amount of transmission data is reduced. (Refer to FIG. 6) Since this suppresses the amount of data stored in the retransmission buffer, it is possible to estimate the size of the retransmission buffer used at that time, but the actual allocation or device specification is possible. It is difficult to estimate the upper retransmission buffer size.
本発明は、上記のような問題点を鑑みてなされたものであり、送信装置の送信処理性能に依ることなく送信装置の送信バッファサイズの最大値を推定することを課題とする。 The present invention has been made in view of the above problems, and an object of the present invention is to estimate the maximum value of the transmission buffer size of the transmission device without depending on the transmission processing performance of the transmission device.
請求項1記載の送信バッファサイズ推定装置は、送信装置から送信されたデータパケットを受信して、その受信データを受信バッファに格納するデータ受信手段と、前記受信データが処理され前記受信バッファが空になった後に、前記受信データに対する確認応答を前記送信装置に送信するデータ送信手段と、前記受信データに関する制御データ又は前記受信バッファの使用状況に基づいて前記送信装置の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を前記送信装置の送信バッファサイズとするバッファサイズ推定手段と、を有することを特徴とする。
The transmission buffer size estimation device according to
本発明によれば、送信装置から送信されたデータパケットを受信して、その受信データを受信バッファに格納し、受信データが処理され受信バッファが空になった後に、受信データに対する確認応答を送信装置に送信し、受信データに関する制御データ又は受信バッファの使用状況に基づいて送信装置の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を送信装置の送信バッファサイズとするため、送信装置から送信されるデータサイズを常に最大にさせることから、送信装置の送信処理性能に依ることなく送信装置の送信バッファサイズの最大値を推定することができる。 According to the present invention, a data packet transmitted from a transmitting apparatus is received, the received data is stored in a reception buffer, and an acknowledgment for the received data is transmitted after the received data is processed and the reception buffer becomes empty. The transmission buffer size of the transmission device is calculated based on the control data related to the received data or the usage status of the reception buffer, and compared with the previously calculated estimation value. Since the data size transmitted from the transmission device is always maximized because of the size, the maximum value of the transmission buffer size of the transmission device can be estimated without depending on the transmission processing performance of the transmission device.
請求項2記載の送信バッファサイズ推定装置は、請求項1記載の送信バッファサイズ推定装置において、前記バッファサイズ推定手段は、前記受信データのシーケンス番号と前記確認応答の確認応答番号との差から前記送信バッファサイズの推定値を計算することを特徴とする。
The transmission buffer size estimation device according to claim 2 is the transmission buffer size estimation device according to
請求項3記載の送信バッファサイズ推定装置は、請求項1記載の送信バッファサイズ推定装置において、前記バッファサイズ推定手段は、前記受信バッファに格納された前記受信データのバッファ使用量から前記送信バッファサイズの推定値を計算することを特徴とする。 4. The transmission buffer size estimation device according to claim 3, wherein the buffer size estimation means is configured to calculate the transmission buffer size from a buffer usage amount of the reception data stored in the reception buffer. It is characterized by calculating an estimated value of.
請求項4記載の送信バッファサイズ推定装置は、請求項1乃至3のいずれかに記載の送信バッファサイズ推定装置において、前記データパケットは、前記確認応答を送信してから次の確認応答を送信するまでの間に受信した1つ以上のセグメントであることを特徴とする。
The transmission buffer size estimation device according to claim 4 is the transmission buffer size estimation device according to any one of
請求項5記載の送信バッファサイズ推定方法は、コンピュータにより、送信装置から送信されたデータパケットを受信して、その受信データを受信バッファに格納するデータ受信ステップと、前記受信データが処理され前記受信バッファが空になった後に、前記受信データに対する確認応答を前記送信装置に送信するデータ送信ステップと、前記受信データに関する制御データ又は前記受信バッファの使用状況に基づいて前記送信装置の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を前記送信装置の送信バッファサイズとするバッファサイズ推定ステップと、を有することを特徴とする。 The transmission buffer size estimation method according to claim 5, wherein a computer receives a data packet transmitted from a transmission device and stores the received data in a reception buffer; and the reception data is processed and the reception is performed. After the buffer is emptied, a data transmission step of transmitting an acknowledgment for the received data to the transmitting device, and the transmission buffer size of the transmitting device based on the control data related to the received data or the usage status of the receiving buffer A buffer size estimating step of calculating an estimated value and comparing the estimated value with a previously calculated estimated value and setting a maximum value as a transmission buffer size of the transmitting apparatus.
請求項6記載の送信バッファサイズ推定プログラムは、請求項5記載の送信バッファサイズ推定方法をコンピュータに実行させることを特徴とする。 A transmission buffer size estimation program according to claim 6 causes a computer to execute the transmission buffer size estimation method according to claim 5.
本発明によれば、送信装置の送信処理性能に依ることなく送信装置の送信バッファサイズの最大値を推定することができる。 According to the present invention, it is possible to estimate the maximum value of the transmission buffer size of the transmission device without depending on the transmission processing performance of the transmission device.
以下、本発明を実施する一実施の形態について図面を用いて説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。 Hereinafter, an embodiment for carrying out the present invention will be described with reference to the drawings. However, the present invention can be implemented in many different modes and should not be construed as being limited to the description of the present embodiment.
第1の実施の形態では、送信装置と受信装置との間で通信されるデータパケットのTCPヘッダ情報(制御データ)を利用し、第2の実施の形態では、受信装置の受信バッファの使用状況を用いて、送信装置の送信バッファサイズを推定する方法について説明する。 In the first embodiment, the TCP header information (control data) of the data packet communicated between the transmission device and the reception device is used. In the second embodiment, the use status of the reception buffer of the reception device. A method for estimating the transmission buffer size of the transmission apparatus will be described using FIG.
〔第1の実施の形態〕
第1の実施の形態では、例として、シーケンス番号と確認応答番号の差から送信バッファサイズを推定する方法について説明する。
[First Embodiment]
In the first embodiment, as an example, a method for estimating a transmission buffer size from the difference between a sequence number and an acknowledgment number will be described.
最初に、コンピュータ間の一般的な通信フロー制御技術について説明する。通信ネットワークに接続された2つのコンピュータ間でデータ通信を行う場合、クライアント側の受信装置からサーバ側の送信装置へデータ転送要求が行われ、それを契機に送信装置から受信装置へデータ転送処理が開始される。 First, a general communication flow control technique between computers will be described. When performing data communication between two computers connected to a communication network, a data transfer request is made from a client-side receiving device to a server-side transmitting device, and the data transfer processing from the transmitting device to the receiving device is triggered by this request. Be started.
受信装置は、転送対象データのセグメントを受信すると直ちにACK応答を返信し、送信装置は、そのACK応答を受信した後、受信装置の受信バッファサイズに応じて次セグメントを送信する。 When the receiving device receives the segment of the transfer target data, it immediately returns an ACK response. After receiving the ACK response, the transmitting device transmits the next segment according to the reception buffer size of the receiving device.
ここでいう受信バッファサイズとは受信バッファの使用量や使用率であり、送信装置は、その使用状況に応じて送信予定のセグメント数を変更する。例えば、受信バッファサイズの最大値が5000バイトであっても、1000バイトを使用中であれば4000バイト分を最大値として次セグメントを送信する。 The reception buffer size referred to here is the usage amount or usage rate of the reception buffer, and the transmission apparatus changes the number of segments scheduled to be transmitted according to the usage status. For example, even if the maximum value of the reception buffer size is 5000 bytes, if 1000 bytes are being used, the next segment is transmitted with a maximum value of 4000 bytes.
そして、送信装置において、送信予定のセグメントを示すウィンドウを後位置のセグメントに順次シフトさせながら上記送信処理を繰り返し行うことにより、コンピュータ間のデータ通信を実現する。 In the transmission apparatus, data transmission between computers is realized by repeatedly performing the transmission process while sequentially shifting the window indicating the segment to be transmitted to the segment at the subsequent position.
このようなフロー制御はスライディングウィンドウ方式と一般に称され、TCP(Transmission Control Protocol)等のコネクション型プロトコルで通常用いられている。以下用いる送信装置は、そのようなTCPを実装しているものとする。 Such flow control is generally called a sliding window method, and is usually used in a connection type protocol such as TCP (Transmission Control Protocol). It is assumed that the transmission apparatus to be used below is mounted with such TCP.
また、その送信装置は、データ送信処理時にスロースタートアルゴリズムを用いるものとする。スロースタートアルゴリズムとは、送信するデータ量を徐々に増加させて送信処理を行うアルゴリズムである。ACK応答を受信するうちは一度に送信するセグメント数を次第に増加させていくことにより、コンピュータ間のデータ通信を実現する。 In addition, the transmission device uses a slow start algorithm during data transmission processing. The slow start algorithm is an algorithm that performs transmission processing by gradually increasing the amount of data to be transmitted. While receiving the ACK response, data communication between computers is realized by gradually increasing the number of segments transmitted at a time.
従って、本実施の形態に係る送信装置は、スライディングウィンドウ方式及びスロースタートアルゴリズムを用いて送信処理を行うことから、例えば、最初にセグメントを1つ送信し、ACK応答を受信した場合に次セグメントを2つ送信する。ここで、1つのセグメントサイズを1000バイトとすると、現時点で受信バッファサイズの最大値である5000バイトのうち3000バイトが使用されているため、残りの2000バイトを最大値として次の送信処理を実行することになる。 Therefore, since the transmission apparatus according to the present embodiment performs transmission processing using the sliding window method and the slow start algorithm, for example, when one segment is first transmitted and an ACK response is received, the next segment is selected. Send two. Here, assuming that one segment size is 1000 bytes, 3000 bytes are used out of 5000 bytes, which is the maximum value of the reception buffer size at the present time, so the next transmission process is executed with the remaining 2000 bytes as the maximum value. Will do.
一方、そのような送信装置に対し、その送信装置からのデータを受信する受信装置は、送信装置の送信バッファサイズを推定する送信バッファサイズ推定機能を有し、図1に示すような複数の機能部を備えている。図1は、受信装置(送信バッファサイズ推定装置)の機能ブロック構成を示す図である。 On the other hand, for such a transmission apparatus, a reception apparatus that receives data from the transmission apparatus has a transmission buffer size estimation function for estimating the transmission buffer size of the transmission apparatus, and has a plurality of functions as shown in FIG. Department. FIG. 1 is a diagram illustrating a functional block configuration of a receiving apparatus (transmission buffer size estimating apparatus).
この受信装置100は、インターネットや社内LAN(Local Area Network)等の通信ネットワーク500を介して送信装置300に通信可能に接続されており、データ受信部11と、受信バッファ12と、データ情報取得部13と、メモリ14と、データ送信部15と、バッファサイズ推定部16とを主に備えている。以下、各機能部について説明する。
The receiving
データ受信部11は、通信ネットワーク500を通じて送信装置300から送信されたデータパケットを受信し、その受信データを受信バッファ12に格納する機能を有している。
The
データ情報取得部13は、受信データのシーケンス番号を取得し、更にその受信に対して行ったACK応答の確認応答番号を取得して、メモリ14に記憶させる機能を有している。
The data
データ送信部15は、送信装置300から送信されるデータサイズを常に最大にするため、受信バッファ12の使用量又は使用率がゼロになった後、すなわち、受信バッファ12が空になった後に、受信データに対してACK応答(確認応答)を行う機能を有している。
The
バッファサイズ推定部16は、メモリ14内のシーケンス番号と確認応答番号の差から送信装置300の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を送信装置300の送信バッファサイズとする機能を有している。
The buffer
このような受信装置100は、メモリ等の記憶手段、CPU等の計算・制御手段、モニタ等の表示手段を備えたコンピュータで実現可能である。また、受信装置100で行う処理はプログラムによって実行可能である。
Such a receiving
尚、図1には本発明の説明上必要と考えられる特徴的な機能部を主に明記しているが、受信装置がコンピュータとして本来具備する既存機能、例えば受信バッファ12のデータを処理して削除する機能等も当然に備えている。
Note that FIG. 1 mainly shows characteristic function units considered necessary for the description of the present invention. However, existing functions that the receiving apparatus originally has as a computer, for example, data in the receiving
次に、図2及び図3を参照しながら、受信装置100の動作について説明する。図2は、受信装置の処理フローを示す図である。図3は、その処理フローの参考図である。尚、送信バッファサイズを確実に推定するため、受信バッファ12の容量(受信バッファサイズ)は、送信バッファサイズに比べて十分に大きいものとする。
Next, the operation of the receiving
最初に、受信装置100から送信装置300へのデータ転送要求を契機に、受信装置100と送信装置300との間で3ウェイハンドシェイクが行われ、セグメントサイズの最大値(MSS:Maximum Segment Size)が決定された後に、セッションが確立する。例えば、MSSは1000バイトと決定される。
First, in response to a data transfer request from the receiving
次に、受信装置100のデータ受信部11は、通信ネットワーク500を通じて送信装置300から送信されたパケットを受信し(ステップS101)、そのパケットの種別がfinパケットであるか(Yes)否か(No)を判定する(ステップS102)。
Next, the
ステップS102の判定結果がNoの場合、セッション確立後にはデータ転送処理を終了しない場合主にsynパケットを受信することから、データ受信部11は、そのsynパケット内のセグメントを受信バッファ12に格納する(ステップS103)。
If the determination result in step S102 is No, if the data transfer process is not terminated after the session is established, the
続いて、データ受信部11は、synパケットの受信が継続しているか(Yes)否か(No)を判定し(ステップS104)、Yesの場合にはステップS103に戻って受信中の次セグメントを受信バッファ12に格納する。
Subsequently, the
一方、ステップS104の判定結果がNoの場合、データ情報取得部13は、受信したセグメントのシーケンス番号SEQ#(Sequence Number)を取得してメモリ14に記憶させる(ステップS105)。
On the other hand, if the determination result in step S104 is No, the data
シーケンス番号とは、データ転送が最初の場合には送信装置300により任意に、受信装置100からACK応答を受信した場合にはそれに応じて付与される番号であり、パケットのTCPヘッダから取得することができる。
The sequence number is a number that is arbitrarily given by the transmitting
スロースタートアルゴリズムにより、例えば、シーケンス番号SEQ#=1のセグメントのみを当初受信した場合には、そのSEQ#=1のみをメモリ14に記憶させる。
For example, when only the segment having the sequence number SEQ # = 1 is initially received by the slow start algorithm, only the SEQ # = 1 is stored in the
次に、受信バッファ12内のセグメントに対して受信装置100によるデータ処理が終了した後に(ステップS106)、データ情報取得部13は、その受信バッファ12の使用量又は使用率がゼロ、すなわち、受信バッファ12が空であるか(Yes)否か(No)を判定する(ステップS107)。
Next, after the data processing by the receiving
尚、ここでいうデータ処理とは、受信バッファ内のセグメントを任意処理するとともに受信バッファ12から削除する処理であり、受信バッファに空き容量を作るためにコンピュータとしての受信装置100によって一般的に実行される処理である。
The data processing here is processing for arbitrarily processing a segment in the receiving buffer and deleting it from the receiving
次に、ステップS107の判定結果がYesの場合、データ情報取得部13は、メモリ14に記憶された全シーケンス番号SEQ#を取得して比較することにより最小の番号mを算出する(ステップS108)。
Next, when the determination result in step S107 is Yes, the data
上記例によれば、SEQ#=1のみがメモリ14に記憶されているので、その場合には比較を行うことなく、m=1とする。尚、ステップS107の判定結果がNoの場合には、ステップS105に戻り、受信した次セグメントのシーケンス番号SEQ#を取得してメモリ14に記憶させる。
According to the above example, since only SEQ # = 1 is stored in the
次に、データ情報取得部13は、送信装置300から送信されたセグメントのデータ転送が正常に終了した旨を送信装置300に応答するため、ACK応答を返信するようにデータ送信部15に命令し、データ送信部15は、確認応答番号ACK#(Acknowledgement Number)を付与してACK応答を送信装置300に送信する(ステップS109)。
Next, the data
上記例によれば、シーケンス番号SEQ#=1のセグメントのみを受信し、MSS=1000であるため、次に1001番からのデータを必要とすることから、確認応答番号ACK#=1001を付与したACK応答を送信する。 According to the above example, only the segment with the sequence number SEQ # = 1 is received, and since MSS = 1000, the data from the 1001st is required next, so the acknowledgment number ACK # = 1001 is given. Send an ACK response.
ここで、従来であればセグメント受信後直ちにACK応答を送信している。また、特許文献1の従来技術であれば、ACK応答を行うことなく再送タイマーを利用してバッファサイズを推定している。
Here, in the conventional case, an ACK response is transmitted immediately after the segment is received. In the case of the prior art disclosed in
これに対し本実施の形態では、ACK応答の送信をあえて遅らせ、受信バッファ12が空になった後にACK応答を行うようにしている。前述したように、送信装置300は受信装置100の受信バッファサイズ(受信バッファ12の使用量や使用率)に応じてセグメント数を調整して送信することから、受信バッファ12を空にした後にACK応答を行うことにより、送信装置300から送信されるセグメント数を常に最大にすることができる。
On the other hand, in this embodiment, transmission of the ACK response is intentionally delayed, and the ACK response is performed after the
仮に、受信バッファサイズの最大値が10000バイトであれば、送信装置300は、常にその10000バイトを最大値として全ての送信処理を行うことができる。それゆえ、後段のバッファサイズ推定部16において、送信装置300の送信バッファサイズの最大値を正確に計算することが可能となる。
If the maximum value of the reception buffer size is 10000 bytes, the
次に、データ情報取得部13は、ステップS109で送信装置300に送信されたACK応答の確認応答番号ACK#を取得してメモリ14に記憶させる(ステップS110)。上記例によれば、確認応答番号ACK#=1001であることから、そのACK#=1001をメモリ14に記憶させる。
Next, the data
次に、データ情報取得部13は、メモリ14に記憶された全ての確認応答番号ACK#を取得して比較することにより最大の番号Mを算出する(ステップS111)。上記例によれば、確認応答番号としてACK#=1001のみがメモリ14に記憶されているので、その場合には比較を行うことなく、M=1001とする。
Next, the data
次に、バッファサイズ推定部16が、最小の番号mと最大の番号Mとの差を計算し、送信バッファサイズの現在値Buffer1(=M−m)とする(ステップS112)。上記例によれば、m=1,M=1001と計算されているので、Buffer1=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、送信バッファサイズの現在値Buffer1と以前に求めた送信バッファサイズの前回計算値Buffer2とを比較し、送信バッファサイズの最大値Buffer3(=Max{Buffer1、Buffer2})を計算する(ステップS113)。Buffer2の初期値が0と設定されている場合、上記例によれば、Buffer3=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、送信バッファサイズの最大値Buffer3を前回計算値Buffer2とする(ステップS114)。上記例によれば、Buffer2=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、メモリ14からシーケンス番号及び確認応答番号を削除するとともに、送信バッファサイズの現在値Buffer1と最大値Buffer3をクリアする(ステップS115)。
Next, the buffer
以降、ステップS102の判定結果がYesになるまで、上記ステップS101〜ステップS115の推定処理を繰り返し実行する。 Thereafter, the estimation processing in steps S101 to S115 is repeatedly executed until the determination result in step S102 becomes Yes.
例えば、その推定処理が2回目において、シーケンス番号SEQ#=1001,2001のセグメント(確認応答番号ACK#=1001のACK応答を送信して次の確認応答番号ACK#=2001,3001の各ACK応答を送信するまでの間に受信した2つのセグメント)を受信した場合には、m=1001と計算され、確認応答番号ACK#=2001,3001となることからM=3001と計算され、Buffer1=3001−1001=2000、Buffer3=Max{2000,1000}=2000=Buffer2と計算される。 For example, when the estimation process is performed for the second time, the segment of sequence number SEQ # = 1001, 2001 (ACK response of acknowledgment number ACK # = 1001 is transmitted and each ACK response of next acknowledgment number ACK # = 2001, 3001 is transmitted. 2 segments received until the time of transmission is received, m = 1001 is calculated, and since acknowledgment numbers ACK # = 2001 and 3001, M = 3001 is calculated, and Buffer1 = 3001 -1001 = 2000, Buffer3 = Max {2000,1000} = 2000 = Buffer2
更に、その推定処理が3回目において、シーケンス番号SEQ#=3001,4001,5001,6001のセグメント(確認応答番号ACK#=2001,3001の各ACK応答を送信して次の確認応答番号ACK#=4001,5001,6001,7001の各ACK応答を送信するまでの間に受信した4つのセグメント)を受信した場合には、m=3001と計算され、確認応答番号ACK#=4001,5001,6001,7001となることからM=7001と計算され、Buffer1=7001−3001=4000、Buffer3=Max{4000,2000}=4000=Buffer2と計算される。 Further, in the third estimation process, segments of sequence numbers SEQ # = 3001, 4001, 5001, 6001 (acknowledgment number ACK # = 2001, 3001 ACK responses are transmitted and the next acknowledgment number ACK # = 4 segments received before transmitting each ACK response of 4001, 5001, 6001, 7001), m = 3001 is calculated, and the acknowledgment number ACK # = 4001,5001,6001, Since 7001, M = 7001 is calculated, and Buffer1 = 7001-3001 = 4000, Buffer3 = Max {4000,2000} = 4000 = Buffer2 is calculated.
その後、全セグメントの転送処理が終了し、finパケットを受信した場合には、前回計算値Buffer2を送信装置300の送信バッファサイズの推定結果とし、送信装置300とのセッションを切断する(ステップS116)。
Thereafter, when the transfer processing for all segments is completed and a fin packet is received, the previous calculation value Buffer2 is set as the estimation result of the transmission buffer size of the
本実施の形態によれば、送信装置300から送信されたデータパケットを受信して、その受信データを受信バッファ12に格納し、受信データが処理され受信バッファ12が空になった後に、受信データに対するACK応答を送信装置300に送信し、受信データのシーケンス番号とACK応答の確認応答番号との差から送信装置300の送信バッファサイズを計算し、以前に計算した送信バッファサイズと比較して最大値を送信装置300の送信バッファサイズとするので、送信装置300から送信されるセグメント数を常に最大にさせることから、送信装置300の送信処理性能に依ることなく、たとえ送信処理時にスロースタートアルゴリズムを用いる送信装置300であっても、その送信装置300の送信バッファサイズの最大値を推定することができる。
According to the present embodiment, the data packet transmitted from transmitting
これにより、送信装置300の送信バッファの容量不足による通信速度低下を遠隔地で把握できることから、例えば、送信装置300の管理者により、その推定結果に応じて送信装置300の送信バッファサイズを適正値に修正・拡張等調整することや、特定相手との通信時にのみ送信バッファの制限容量を解放して通信の高速化を図ることが可能となる。後述する第2の実施の形態についても同様である。
As a result, a decrease in communication speed due to insufficient transmission buffer capacity of the
また、特許文献1の従来技術の場合、送信バッファサイズの推定時間は送信装置300の再送タイマーに左右されてしまう。一方、本実施の形態の場合には、その推定時間に大きく影響するACK応答の遅延は送信装置300ではなく受信装置100に依るため、他装置の影響を受けることのない推定時間を提供できる。後述する第2の実施の形態についても同様である。
Further, in the case of the conventional technique of
尚、本実施の形態では、送信バッファサイズを計算する際にシーケンス番号と確認応答番号の差を利用したが、TCPヘッダ情報内のデータ欄に含まれるデータのサイズをそのまま送信バッファサイズとして利用してもよい。 In this embodiment, the difference between the sequence number and the acknowledgment number is used when calculating the transmission buffer size. However, the data size included in the data column in the TCP header information is used as it is as the transmission buffer size. May be.
また、本実施の形態では、スロースタートアルゴリズムを用いて送信処理を行う場合を例としたが、過去に計算した送信バッファサイズと比較して最大値を計算すれば送信装置300の送信バッファサイズを推定できることから、そのようなアルゴリズムに限定されることなく、任意のアルゴリズムを持つ送信装置300を推定対象とすることが可能である。後述する第2の実施の形態についても同様である。
In this embodiment, the case where transmission processing is performed using the slow start algorithm is taken as an example. However, if the maximum value is calculated compared to the transmission buffer size calculated in the past, the transmission buffer size of the
〔第2の実施の形態〕
第2の実施の形態では、例として、受信バッファのバッファ使用量から送信バッファサイズを推定する方法について説明する。本実施の形態に係る受信装置100は、第1の実施の形態と同様の機能部により構成される(図1参照)。以下、各機能部について説明する。
[Second Embodiment]
In the second embodiment, as an example, a method for estimating the transmission buffer size from the buffer usage of the reception buffer will be described. The receiving
データ受信部11は、通信ネットワーク500を通じて送信装置300から送信されたデータパケットを受信し、その受信データを受信バッファ12に格納する機能を有している。
The
データ情報取得部13は、受信データに使用された受信バッファ12のバッファ使用量を取得して、メモリ14に記憶させる機能を有している。
The data
データ送信部15は、送信装置300から送信されるデータサイズを常に最大にするため、受信バッファ12の使用量又は使用率がゼロになった後、すなわち、受信バッファ12が空になった後に、受信データに対してACK応答を行う機能を有している。
The
バッファサイズ推定部16は、メモリ14内のバッファ使用量から送信装置300の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を送信装置300の送信バッファサイズとする機能を有している。
The buffer
次に、図4及び図5を参照しながら、受信装置100の動作について説明する。図4は、受信装置の処理フローを示す図である。図5は、その処理フローの関連参考図である。
Next, the operation of the receiving
最初に、受信装置100から送信装置300へのデータ転送要求を契機に、受信装置100と送信装置300との間で3ウェイハンドシェイクが行われ、セッションが確立する。例えば、MSSは1000バイトと決定される。
First, triggered by a data transfer request from the receiving
次に、受信装置100のデータ受信部11は、通信ネットワーク500を通じて送信装置300から送信されたパケットを受信し(ステップS201)、そのパケットの種別がfinパケットであるか(Yes)否か(No)を判定する(ステップS202)。
Next, the
ステップS202の判定結果がNoの場合、セッション確立後にはデータ転送処理を終了しない場合主にsynパケットを受信することから、データ受信部11は、そのsynパケット内のセグメントを受信バッファ12に格納する(ステップS203)。
When the determination result in step S202 is No, when the data transfer process is not terminated after the session is established, the syn packet is mainly received. Therefore, the
続いて、データ受信部11は、synパケットの受信が継続しているか(Yes)否か(No)を判定し(ステップS204)、Yesの場合にはステップS203に戻って受信中の次セグメントを受信バッファ12に格納する。
Subsequently, the
一方、ステップS204の判定結果がNoの場合、データ情報取得部13は、受信バッファ12に格納されたセグメントのバッファ使用量UBS(Used Buffer Size)を取得してメモリ14に記憶させる(ステップS205)。
On the other hand, if the determination result in step S204 is No, the data
スロースタートアルゴリズムにより、例えば、1つのセグメントのみを当初受信して受信バッファ12に格納している場合には、MSSが1000バイトであることより受信バッファ12のバッファ使用量は1000バイトと計算し、UBS=1000のみをメモリ14に記憶させる。
For example, when only one segment is initially received and stored in the
次に、受信バッファ12内のセグメントに対して受信装置100によるデータ処理が終了した後に(ステップS206)、データ情報取得部13は、その受信バッファ12の使用量又は使用率がゼロ、すなわち、受信バッファ12が空であるか(Yes)否か(No)を判定する(ステップS207)。
Next, after the data processing by the receiving
次に、ステップS207の判定結果がYesの場合、データ情報取得部13は、送信装置300から送信されたセグメントのデータ転送が正常に終了した旨を送信装置300に応答するため、ACK応答を返信するようにデータ送信部15に命令し、データ送信部15は、確認応答番号ACK#を付与してACK応答を送信装置300に送信する(ステップS208)。尚、受信バッファ12が空になった後にACK応答することの作用効果については、第1の実施の形態を参照されたい。
Next, when the determination result in step S207 is Yes, the data
次に、バッファサイズ推定部16が、メモリ14からバッファ使用量を取得して送信バッファサイズの現在値Buffer1とする(ステップS209)。上記例によれば、UBS=1000なので、Buffer1=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、送信バッファサイズの現在値Buffer1と以前に求めた送信バッファサイズの前回計算値Buffer2とを比較し、送信バッファサイズの最大値Buffer3(=Max{Buffer1、Buffer2})を計算する(ステップS210)。Buffer2の初期値が0と設定されている場合、上記例によれば、Buffer3=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、送信バッファサイズの最大値Buffer3を前回計算値Buffer2とする(ステップS211)。上記例によれば、Buffer2=1000と計算される。
Next, the buffer
次に、バッファサイズ推定部16は、メモリ14からバッファ使用量を削除するとともに、送信バッファサイズの現在値Buffer1と最大値Buffer3をクリアする(ステップS212)。
Next, the buffer
以降、ステップS202の判定結果がYesになるまで、上記ステップS201〜ステップS212の推定処理を繰り返し実行する。 Thereafter, the estimation processing in steps S201 to S212 is repeatedly executed until the determination result in step S202 becomes Yes.
例えば、その推定処理が2回目において、2つのセグメントを受信した場合には、UBS=2000と計算され、Buffer1=2000、Buffer3=Max{2000,1000}=2000=Buffer2と計算される。 For example, when the estimation process is performed for the second time and two segments are received, UBS = 2000 is calculated, and Buffer1 = 2000, Buffer3 = Max {2000,1000} = 2000 = Buffer2.
例えば、その推定処理が3回目において、4つのセグメントを受信した場合には、UBS=4000と計算され、Buffer1=4000、Buffer3=Max{4000,2000}=4000=Buffer2と計算される。 For example, when four segments are received in the third estimation process, UBS = 4000 is calculated, Buffer1 = 4000, Buffer3 = Max {4000,2000} = 4000 = Buffer2.
その後、全セグメントの転送処理が終了し、finパケットを受信した場合には、前回計算値Buffer2を送信装置300の送信バッファサイズの推定結果とし、送信装置300とのセッションを切断する(ステップS213)。
Thereafter, when the transfer processing for all segments is completed and the fin packet is received, the previous calculation value Buffer2 is set as the estimation result of the transmission buffer size of the
本実施の形態によれば、送信装置300から送信されたデータパケットを受信して、その受信データを受信バッファ12に格納し、受信データが処理され受信バッファ12が空になった後に、受信データに対するACK応答を送信装置300に送信し、受信バッファ12に格納されたセグメントのバッファ使用量から送信装置300の送信バッファサイズを計算し、以前に計算した送信バッファサイズと比較して最大値を送信装置300の送信バッファサイズとするので、送信装置300から送信されるセグメント数を常に最大にさせることから、送信装置300の送信処理性能に依ることなく、たとえ送信処理時にスロースタートアルゴリズムを用いる送信装置300であっても、その送信装置300の送信バッファサイズの最大値を推定することができる。
According to the present embodiment, the data packet transmitted from transmitting
尚、本実施の形態では、受信バッファ12のバッファ使用量から送信バッファサイズを推定したが、受信装置100は自機内の受信バッファ12の最大サイズを把握していることから、バッファ使用率を用いてその使用量を計算するようにしてもよい。
In the present embodiment, the transmission buffer size is estimated from the buffer usage of the
100…受信装置
11…データ受信部
12…受信バッファ
13…データ情報取得部
14…メモリ
15…データ送信部
16…バッファサイズ推定部
300…送信装置
500…通信ネットワーク
S101〜S116、S201〜S213…ステップ
DESCRIPTION OF
Claims (6)
前記受信データが処理され前記受信バッファが空になった後に、前記受信データに対する確認応答を前記送信装置に送信するデータ送信手段と、
前記受信データに関する制御データ又は前記受信バッファの使用状況に基づいて前記送信装置の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を前記送信装置の送信バッファサイズとするバッファサイズ推定手段と、
を有することを特徴とする送信バッファサイズ推定装置。 Data receiving means for receiving a data packet transmitted from a transmitting device and storing the received data in a reception buffer;
Data transmitting means for transmitting an acknowledgment for the received data to the transmitting device after the received data is processed and the receive buffer is emptied;
Calculate an estimated value of the transmission buffer size of the transmission device based on the control data related to the received data or the usage status of the reception buffer, and compare the estimated value calculated previously with the maximum value to the transmission buffer size of the transmission device Buffer size estimation means
A transmission buffer size estimation apparatus comprising:
前記受信データのシーケンス番号と前記確認応答の確認応答番号との差から前記送信バッファサイズの推定値を計算することを特徴とする請求項1記載の送信バッファサイズ推定装置。 The buffer size estimation means includes:
2. The transmission buffer size estimation apparatus according to claim 1, wherein an estimated value of the transmission buffer size is calculated from a difference between a sequence number of the received data and an acknowledgment number of the acknowledgment.
前記受信バッファに格納された前記受信データのバッファ使用量から前記送信バッファサイズの推定値を計算することを特徴とする請求項1記載の送信バッファサイズ推定装置。 The buffer size estimation means includes:
2. The transmission buffer size estimation device according to claim 1, wherein an estimated value of the transmission buffer size is calculated from a buffer usage amount of the reception data stored in the reception buffer.
前記確認応答を送信してから次の確認応答を送信するまでの間に受信した1つ以上のセグメントであることを特徴とする請求項1乃至3のいずれかに記載の送信バッファサイズ推定装置。 The data packet is
4. The transmission buffer size estimation apparatus according to claim 1, wherein the transmission buffer size estimation apparatus is one or more segments received between the transmission of the confirmation response and the transmission of the next confirmation response.
送信装置から送信されたデータパケットを受信して、その受信データを受信バッファに格納するデータ受信ステップと、
前記受信データが処理され前記受信バッファが空になった後に、前記受信データに対する確認応答を前記送信装置に送信するデータ送信ステップと、
前記受信データに関する制御データ又は前記受信バッファの使用状況に基づいて前記送信装置の送信バッファサイズの推定値を計算し、以前に計算した推定値と比較して最大値を前記送信装置の送信バッファサイズとするバッファサイズ推定ステップと、
を有することを特徴とする送信バッファサイズ推定方法。 By computer
A data reception step of receiving a data packet transmitted from the transmission device and storing the received data in a reception buffer;
A data transmission step of transmitting an acknowledgment to the reception data to the transmission device after the reception data is processed and the reception buffer is empty;
Calculate an estimated value of the transmission buffer size of the transmission device based on the control data related to the received data or the usage status of the reception buffer, and compare the estimated value calculated previously with the maximum value to the transmission buffer size of the transmission device A buffer size estimation step, and
A transmission buffer size estimation method characterized by comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012165484A JP2014027444A (en) | 2012-07-26 | 2012-07-26 | Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012165484A JP2014027444A (en) | 2012-07-26 | 2012-07-26 | Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2014027444A true JP2014027444A (en) | 2014-02-06 |
Family
ID=50200721
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012165484A Pending JP2014027444A (en) | 2012-07-26 | 2012-07-26 | Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2014027444A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111309462A (en) * | 2020-01-21 | 2020-06-19 | 腾讯科技(深圳)有限公司 | Task processing method and device and computer readable storage medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05110627A (en) * | 1991-10-15 | 1993-04-30 | Nec Corp | Timing calculation system for sending reply corresponding to transmission buffer of communication opposite party |
| US6038606A (en) * | 1997-11-25 | 2000-03-14 | International Business Machines Corp. | Method and apparatus for scheduling packet acknowledgements |
| JP2003234796A (en) * | 2002-02-12 | 2003-08-22 | Seiko Epson Corp | Data flow control device and method |
| JP2011061536A (en) * | 2009-09-10 | 2011-03-24 | Ricoh Co Ltd | Communication system and apparatus for measuring capacitance of retransmission buffer |
-
2012
- 2012-07-26 JP JP2012165484A patent/JP2014027444A/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05110627A (en) * | 1991-10-15 | 1993-04-30 | Nec Corp | Timing calculation system for sending reply corresponding to transmission buffer of communication opposite party |
| US6038606A (en) * | 1997-11-25 | 2000-03-14 | International Business Machines Corp. | Method and apparatus for scheduling packet acknowledgements |
| JP2003234796A (en) * | 2002-02-12 | 2003-08-22 | Seiko Epson Corp | Data flow control device and method |
| JP2011061536A (en) * | 2009-09-10 | 2011-03-24 | Ricoh Co Ltd | Communication system and apparatus for measuring capacitance of retransmission buffer |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111309462A (en) * | 2020-01-21 | 2020-06-19 | 腾讯科技(深圳)有限公司 | Task processing method and device and computer readable storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6705003B2 (en) | Data transmission method and related device | |
| US9641650B2 (en) | TCP proxy server | |
| CN105141542A (en) | TCP communication protocol-based congestion window control algorithm and system | |
| US8565249B2 (en) | Queue management system and methods | |
| CN108322401A (en) | The control method and device of network transmission congestion | |
| EP2922241B1 (en) | Methods and apparatus to determine network delay with location independence from retransmission delay and application response time | |
| CN104683259A (en) | TCP congestion control method and device | |
| JP6335430B2 (en) | COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, PROGRAM | |
| EP2523393B1 (en) | Method and apparatus to estimate the sender's congestion window throughout the life of a TCP flow (socket connection) | |
| JP5725615B2 (en) | Communication quality measuring method and apparatus | |
| US8588064B2 (en) | Transport layer that warns application of potential bottleneck and methods thereof | |
| US11153220B2 (en) | Methods and apparatus to determine network delay with location independence | |
| JP2008053888A (en) | COMMUNICATION DEVICE, PROGRAM, INFORMATION STORAGE MEDIUM, AND COMMUNICATION CONTROL METHOD | |
| JP2014027444A (en) | Transmission buffer size estimation device, transmission buffer size estimation method, and transmission buffer size estimation program | |
| US9172654B2 (en) | Transfer device and transfer method | |
| US20150222570A1 (en) | Apparatus and method for aligning order of received packets | |
| US11425040B2 (en) | Network switching device and method for performing marking using the same | |
| US9882751B2 (en) | Communication system, communication controller, communication control method, and medium | |
| CN117834544A (en) | Method and device for determining data transmission state, storage medium and electronic equipment | |
| JP6010502B2 (en) | Packet processing method and packet processing apparatus | |
| JP2016019198A (en) | Communication apparatus, control method for communication apparatus, and program | |
| JP2016019156A (en) | Communication apparatus and control method therefor | |
| WO2018202282A1 (en) | Device and method for monitoring a tcp connection | |
| WO2024150298A1 (en) | Device and method for predicting release of communication path in advance and performing same | |
| WO2017061075A1 (en) | Control system, available bandwidth estimating system, device, method, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150304 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160222 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160308 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160426 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161101 |