JP2010258631A - サーバおよびack返信方法 - Google Patents

サーバおよびack返信方法 Download PDF

Info

Publication number
JP2010258631A
JP2010258631A JP2009104596A JP2009104596A JP2010258631A JP 2010258631 A JP2010258631 A JP 2010258631A JP 2009104596 A JP2009104596 A JP 2009104596A JP 2009104596 A JP2009104596 A JP 2009104596A JP 2010258631 A JP2010258631 A JP 2010258631A
Authority
JP
Japan
Prior art keywords
data
ack
server
unit
transmission
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
JP2009104596A
Other languages
English (en)
Other versions
JP5246015B2 (ja
Inventor
和久 ▲高▼山
Kazuhisa Takayama
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009104596A priority Critical patent/JP5246015B2/ja
Publication of JP2010258631A publication Critical patent/JP2010258631A/ja
Application granted granted Critical
Publication of JP5246015B2 publication Critical patent/JP5246015B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

【課題】ACK経路の帯域の影響を抑え、データ送信経路におけるデータ送信のスループットを向上する。
【解決手段】サーバ1の受信部1aは、送信サーバ2からデータを受信する。判断部1bは、受信部1aによって受信されたデータに含まれるシーケンス番号に基づいて、データの再送が行われたか否かを判断する。測定部1cは、受信部1aによって受信されたデータの受信レートを測定する。返信部1dは、判断部1bによってデータの再送が行われたと判断された場合、測定部1cによって測定される受信レートが飽和するまで、データの受信に応じて行う送信サーバ2へのACKの返信を、複数のデータを受信してから行い、ACKの返信を徐々に減少させる。
【選択図】図1

Description

本件はデータ通信を行うサーバおよびそのサーバのACK返信方法に関する。
TCP(Transmission Control Protocol)のデータ通信において、データ送信経路とデータ受信確認の応答情報(ACK:ACKnowledgment)経路とが異なる場合がある。例えば、データ送信を衛星回線で行い、ACKの応答を地上回線で行う場合、データ送信経路とACK経路とが異なる。また、ADSL(Asymmetric Digital Subscriber Line)などのネットワークでも、データ送信経路とACK経路とが異なる。
なお、従来、広帯域、高遅延無線ネットワークにおけるTCP通信の問題を解決し、高速なTCP通信を可能にするTCP輻輳制御方式が提案されている(例えば、特許文献1参照)。
特開2006−173961号公報
しかし、ACK経路とデータ送信経路とが異なり、ACK経路の帯域がデータ送信経路の帯域より小さい場合、データ送信経路の帯域が最大に達する前にACK経路の帯域が最大に達する場合がある。この場合、ACKは、ACK経路にて輻輳し、データを送信する側の送信サーバは、ACKを適切に受信できない場合が生じる。その結果、送信サーバは、送信したデータの受信確認ができないためにデータ再送を行い、データ経路の帯域に余裕があってもデータ送信のスループットを向上することができないという問題点があった。
本件はこのような点に鑑みてなされたものであり、ACK経路の帯域の影響を抑え、データ送信経路におけるデータ送信のスループットを向上することができるサーバおよびACK返信方法を提供することを目的とする。
上記課題を解決するために、データ通信を行うサーバが提供される。このサーバは、送信サーバからデータを受信する受信部と、前記受信部によって受信された前記データの再送が行われたか否かを判断する判断部と、前記受信部によって受信された前記データの受信レートを測定する測定部と、前記判断部によって前記データの再送が行われたと判断された場合、前記測定部によって測定される前記受信レートが飽和するまで、前記データの受信に応じて行う前記送信サーバへのACKの返信を複数の前記データを受信してから行い前記ACKの返信を徐々に減少させる返信部と、を有する。
また、上記課題を解決するために、データ通信を行うサーバが提供される。このサーバは、送信サーバからデータを受信する受信部と、前記受信部によって受信された前記データのヘッダに含まれる前記送信サーバが前記データを送信してからACKが返ってくるまでの時間を計測するためのタイムスタンプ値を減算するためのタイムスタンプ減算値を算出する算出部と、前記算出部によって算出された前記タイムスタンプ減算値を減算した前記タイムスタンプ値を前記ACKに含めて前記送信サーバに返信する返信部と、を有する。
上記サーバによれば、ACK経路の帯域の影響を抑え、データ送信経路におけるデータ送信のスループットを向上することができる。
サーバを示した図である。 サーバを適用したネットワーク構成例を示した図である。 データを受信するサーバのハードウェアブロック図である。 データを受信するサーバの機能ブロック図である。 受信データ記憶部のデータ構成例を示した図である。 ACK経路最大帯域記憶部のデータ構成例を示した図である。 再送タイマ推定値記憶部のデータ構成例を示した図である。 データを受信するサーバの動作を示したフローチャートである。
図1は、サーバを示した図である。図1に示すように、サーバ1は、受信部1a、判断部1b、測定部1c、および返信部1dを有している。図1には、サーバ1にデータを送信する送信サーバ2も示している。送信サーバ2がサーバ1にデータを送信するデータ送信経路3aと、サーバ1が送信サーバ2にACKを返信するACK経路3bは異なり、ACK経路3bの帯域は、データ送信経路3aの帯域より小さいとする。
受信部1aは、送信サーバ2からデータを受信する。
判断部1bは、受信部1aによって受信されたデータの再送が行われたか否かを判断する。例えば、判断部1bは、受信部1aによって同じシーケンス番号のデータが受信された場合、データの再送が行われたと判断する。
測定部1cは、受信部1aによって受信されたデータの受信レートを測定する。すなわち、測定部1cは、送信サーバ2の送信するデータの送信レートを測定する。
返信部1dは、判断部1bによってデータの再送が行われたと判断された場合、測定部1cによって測定される受信レートが飽和するまで、データの受信に応じて行う送信サーバ2へのACKの返信を複数のデータを受信してから行い、ACKの返信を徐々に減少させる。
例えば、返信部1dは、判断部1bによって、送信サーバ2のデータの再送が発生したと判断されるまで、1つのデータを受信して、1つのACKを送信サーバ2に返す。返信部1dは、判断部1bによって送信サーバ2のデータの再送が発生したと判断された場合は、送信サーバ2から2つのデータを受信して、1つのACKを送信サーバ2に返信する。次いで、返信部1dは、3つのデータを受信して、1つのACKを送信サーバ2に返信する。以下同様に、返信部1dは、送信サーバ2の送信するデータの送信レートが飽和するまで、データの受信数を増加させてACKを送信サーバ2に返信する。このように、返信部1dは、データの受信に応じて行う送信サーバ2へのACKの返信を、複数のデータを受信してから行って、ACKの返信を徐々に減少させる。
このように、返信部1dは、送信サーバ2のデータの再送が発生した後、送信サーバ2の送信レートが飽和するまで、データの受信数を増加させてACKを送信サーバ2に返信する。これにより、データを送信する送信サーバのデータ送信のスループットを向上することができる。
図2は、サーバを適用したネットワーク構成例を示した図である。図2には、サーバ11,12およびサーバ11,12を結ぶネットワーク13が示してある。ネットワーク13は、例えば、インターネットである。
サーバ11,12は、例えば、TCPのデータ通信を行う。サーバ12は、データを送信する側であり、サーバ11は、データを受信する側とする。サーバ11は、サーバ12からデータを受信すると、ACKをサーバ12に返す。
サーバ12がサーバ11にデータを送信するデータ送信経路は、サーバ11がサーバ12にACKを返すACK経路とは異なる。データ送信経路は、例えば、広帯域の衛星回線であり、ACK経路は、衛星回線よりも帯域の狭い狭帯域の地上回線である。このようなネットワーク構成例は、例えば、地上回線のインフラが整っていない遠隔地域へデータ送信する場合などに適用される。すなわち、広帯域の衛星回線を用いて大量のデータをサーバ11に送信し、ACKを狭帯域の地上回線でサーバ12に返信する場合などに適用される。
ACK回線は、狭帯域のため、データ送信経路に帯域の余裕があっても、ACKの輻輳が発生する場合があり、データ送信経路のスループットを向上することができない場合がある。そこで、データを受信するサーバ11は、次の3つのフェーズで動作し、サーバ12の送信するデータのスループットの向上を図るようにする。
フェーズ1.データを送信するサーバ12は、スロースタートアルゴリズムにより、送信データの送信レートを徐々に増加させていく。サーバ11は、サーバ12から送信レートの増加するデータを受信し、ACKをサーバ12に送信する。ACK経路は、狭帯域のため、サーバ12の送信するデータの送信レートがある値まで増加すると、ACKの輻輳が生じる。ACKの輻輳によってACKが消失すると、サーバ12は、ACKを適切に受信できなくなるため、データの再送処理を行う。サーバ11は、サーバ12からのデータ再送を検出して、ACKの輻輳の発生を認識し、ACKの輻輳が生じたときのACK経路の帯域(ACK経路最大帯域)を検出して記憶装置に記憶する。
フェーズ2.サーバ11は、受信したデータに対するACKを遅延させる。例えば、サーバ11は、最初、1セグメントのデータを受信して、ACKを返す。次いで、サーバ11は、2セグメントのデータを受信して、ACKを返す。次いで、サーバ11は、3セグメントのデータを受信して、ACKを返す。以下、サーバ11は、サーバ12の送信するデータの送信レートを監視し、送信レートが飽和するまで、ACKの遅延を行う。
なお、以下では、ACKを返すまでの、受信したデータ数をACK限度数と呼ぶ。例えば、サーバ11がn個の受信データを受信してACKを返した場合、ACK限度数は、nとなる。
フェーズ3.サーバ11がACK限度数を増加すると、サーバ12に送信されるACKの間隔が長くなる。そして、最終的に、ACKの送信間隔が、送信側のサーバ12の再送タイマ値(RTO:Retransmission Time Out)を超えると、サーバ12は、データの再送を行い、これにより送信レートが飽和する。そこで、サーバ11は、TCPヘッダのオプションのタイムスタンプから所定の値を減算することで、サーバ12のデータ再送を抑制する。
例えば、サーバ11は、サーバ12が送信したデータのタイムスタンプ値‘x’(x:例えば、時刻を示すカウント値)から、タイムスタンプ減算値‘d’を減算してACKをサーバ12に返す。タイムスタンプ減算値は、フェーズ1で記憶装置に記憶したACK経路最大帯域と、以下で説明するサーバ12の再送タイマ推定値(サーバ12のデータを再送する間隔時間)とを用いて算出され、正・負どちらの値もとり得る。
サーバ12は、本来、ACKに含まれるタイムスタンプ‘x’と、現在時刻とを比較して、送信データを送信してACKが返ってくるまでの往復時間を認識する。サーバ12は、往復時間をもとにRTOを設定する。そして、サーバ12は、RTOを経過するまでサーバ11からのACKを受信していないと、データが適切にサーバ11に送信されていないと判断し、データの再送を行う。しかし、ACKに含まれるタイムスタンプ‘x’に‘d’が減算されているので、サーバ12は、本来の往復時間より長い往復時間をもとにRTOを設定する。これにより、データの再送が抑制され、スループットを向上できる。
サーバ11は、上記のフェーズ1〜3の処理を繰り返す。これにより、サーバ12は、データ送信経路の全帯域を使用してデータ送信することができるようになり、スループットを向上することができる。
図3は、データを受信するサーバのハードウェアブロック図である。図3に示すサーバ11は、CPU(Central Processing Unit)11aによって装置全体が制御されている。CPU11aには、バス11gを介してRAM(Random Access Memory)11b、ハードディスクドライブ(HDD:Hard Disk Drive)11c、グラフィック処理装置11d、入力インタフェース11e、および通信インタフェース11fが接続されている。
RAM11bには、CPU11aに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM11bには、CPU11aによる処理に必要な各種データが保存される。HDD11cには、OSやサーバ12の送信するデータのスループットを向上させるためのプログラムなどが格納される。
グラフィック処理装置11dには、モニタ11hが接続されている。グラフィック処理装置11dは、CPU11aからの命令に従って、画像をモニタ11hの表示画面に表示させる。入力インタフェース11eには、キーボード11iおよびマウス11jが接続されている。入力インタフェース11eは、キーボード11iやマウス11jから送られてくる信号を、バス11gを介してCPU11aに送信する。
記録媒体11lは、例えば、CD−ROM(Compact Disc Read Only Memory)などの記録媒体である。読み取り装置11kは、記録媒体11lに記録されたデータを読み取り、バス11gを介してCPU11aに送信する。記録媒体11lには、サーバ12の送信するデータのスループットを向上させるためのプログラムなどを格納することができ、読み取り装置11kを介して、HDD11cに格納することもできる。
通信インタフェース11fは、ネットワーク13に接続され、サーバ12と通信することができる。
図4は、データを受信するサーバの機能ブロック図である。図4に示すように、サーバ11は、受信データ記憶部21、ACK経路最大帯域記憶部22、再送タイマ推定値記憶部23、再送判断部24、データ受信レート測定部25、ACK測定部26、対向ホスト再送タイマ推定部27、タイムスタンプ算出部28、タイムスタンプ変更部29、ACK限度数制御部30、通信部31、時間単位推定部32、および遅延ACK制御部33を有している。図1で示した受信部1aは、例えば、通信部31に対応し、判断部1bは、再送判断部24に対応し、測定部1cは、データ受信レート測定部25に対応し、返信部1dは、ACK限度数制御部30、通信部31、および遅延ACK制御部33に対応する。
まず、受信データ記憶部21、ACK経路最大帯域記憶部22、および再送タイマ推定値記憶部23について図を用いて説明する。
受信データ記憶部21には、サーバ11が受信したデータの情報が記憶される。
図5は、受信データ記憶部のデータ構成例を示した図である。図5に示すように、受信データ記憶部21は、受信時刻、宛先IP(Internet Protocol)アドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、シーケンス番号、およびタイムスタンプの欄を有している。
受信時刻の欄には、データを受信した時刻が格納される。宛先IPアドレスの欄には、受信したデータの宛先IPアドレスが格納される。すなわち、サーバ11のIPアドレスが格納される。送信元IPアドレスの欄には、受信したデータを送信したサーバのIPアドレスが格納される。宛先ポート番号の欄には、受信したデータの宛先ポート番号が格納される。すなわち、サーバ11のデータを受信したポート番号が格納される。送信元ポート番号の欄には、受信したデータを送信したサーバのポート番号が格納される。シーケンス番号の欄には、サーバ11が受信したデータのTCPのシーケンス番号が格納される。タイムスタンプの欄には、受信したデータのTCPヘッダに含まれるタイムスタンプが格納される。
例えば、サーバ11は、図5の受信データ記憶部21を参照することによって、再送されたデータを認識することができる。例えば、サーバ12が同じシーケンス番号のデータを送ってきた場合、サーバ11は、サーバ12がデータを再送してきたことを認識することができる。
ACK経路最大帯域記憶部22には、ACK経路が輻輳したときのACK経路の帯域に関する情報が記憶される。
図6は、ACK経路最大帯域記憶部のデータ構成例を示した図である。図6に示すように、ACK経路最大帯域記憶部22は、ACK経路最大帯域、平均ACKサイズ、宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、および算出時刻の欄を有している。
ACK経路最大帯域の欄には、ACK経路に輻輳が生じたときのACKの送信レートが格納される。単位は、例えば、Mbit/sである。平均ACKサイズの欄には、ACK経路に輻輳が生じたときのACK1個あたりの平均データサイズが格納される。単位は、例えば、byteである。宛先IPアドレスの欄には、受信したデータの宛先IPアドレスが格納される。すなわち、サーバ11のIPアドレスが格納される。送信元IPアドレスの欄には、データを送信したサーバのIPアドレスが格納される。宛先ポート番号の欄には、受信したデータの宛先ポート番号が格納される。すなわち、サーバ11のデータを受信したポート番号が格納される。送信元ポート番号の欄には、受信したデータを送信したサーバのポート番号が格納される。算出時刻の欄には、ACKが輻輳し、ACK経路最大帯域が算出されたときの時刻が格納される。
例えば、サーバ11は、図6のACK経路最大帯域記憶部22を参照することによって、2008年10月29日18時15分53.123秒に、ACK経路が輻輳したことが分かる。また、そのときのACKの帯域(ACK経路最大帯域)は、1.234Mbit/sであることが分かる。ACKの輻輳原因となったデータを送信したサーバの送信元IPアドレスは、192.168.1.98であることが分かる。平均ACKサイズは、40byteであることが分かる。
再送タイマ推定値記憶部23には、データを送信するサーバのデータを再送するタイマの推定値(再送タイマ推定値)が格納される。
図7は、再送タイマ推定値記憶部のデータ構成例を示した図である。図7に示すように、再送タイマ推定値記憶部23は、再送タイマ推定値、宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、および算出時刻の欄を有している。
再送タイマ推定値には、データを送信するサーバのデータを再送するタイマ(RTO)の推定値が格納される。単位は、例えば、秒である。後で詳述するが、サーバ11は、データを送信するサーバのデータを再送するタイマ値を推定し、再送タイマ推定値の欄に格納する。宛先IPアドレスの欄には、受信したデータの宛先IPアドレスが格納される。すなわち、サーバ11のIPアドレスが格納される。送信元IPアドレスの欄には、再送データのタイマ値を推定したサーバのIPアドレスが格納される。宛先ポート番号の欄には、受信したデータの宛先ポート番号が格納される。すなわち、サーバ11のデータを受信したポート番号が格納される。送信元ポート番号の欄には、受信したデータを送信したサーバのポート番号が格納される。算出時刻の欄には、再送タイマ推定値を算出した時刻が格納される。
例えば、サーバ11は、図7の再送タイマ推定値記憶部23を参照することによって、データを送信する各サーバの再送タイマ推定値を認識することができる。
図4の説明に戻る。再送判断部24は、受信データ記憶部21に記憶されたシーケンス番号を参照して、再送データを検出する。例えば、再送判断部24は、受信データ記憶部21に記憶されたサーバ12のIPアドレス(送信元IPアドレス)において、同じシーケンス番号が記憶されている場合、サーバ12がデータを再送していることを検出する。また、再送判断部24は、再送データの再送レートを算出する。再送レートの単位は、例えば、%(100×再送データ受信数(パケット)/受信データ数(パケット))である。
データ受信レート測定部25は、受信するデータの受信レートと受信データの平均データサイズを測定する。
ACK測定部26は、データを送信したサーバに送信するACKの送信レートと、送信したACKの平均ACKサイズを測定する。ACK測定部26は、ACKが輻輳したときのACKの送信レートをACK経路最大帯域としてACK経路最大帯域記憶部22に記憶する。また、ACK測定部26は、そのときの平均ACKサイズもACK経路最大帯域記憶部22に記憶する。
対向ホスト再送タイマ推定部27は、受信データ記憶部21を参照し、再送データの受信時刻から、前回送信されたデータの時刻を減算することにより、データを送信するサーバの再送タイマ値(RTO)を推定する。例えば、対向ホスト再送タイマ推定部27は、受信データ記憶部21の同じシーケンス番号に基づき、再送データを認識する。対向ホスト再送タイマ推定部27は、認識した再送データの受信時刻から、前回送信された同じシーケンス番号のデータの受信時刻を減算し、データを送信するサーバの再送タイマ値を推定する。対向ホスト再送タイマ推定部27は、推定したタイマ値の情報を再送タイマ推定値記憶部23に記憶する。
タイムスタンプ算出部28は、ACK経路最大帯域記憶部22に記憶されたACK経路最大帯域と、平均ACKサイズと、再送タイマ推定値記憶部23に記憶された再送タイマ推定値とに基づいて、ACKのタイムスタンプ値を変更するためのタイムスタンプ減算値を算出する。タイムスタンプ算出部28は、以下の式(1)に基づいて、タイムスタンプ減算値‘d’を算出する。
d=1/2{(LA/SA)−RTO} …(1)
dは、タイムスタンプ減算値である。SAは、ACK経路最大帯域である。LAは、ACKが輻輳したときの平均ACKサイズである。RTOは、再送タイマ値(推定値)である。LA,SAは、ACK経路最大帯域記憶部22から取得でき、RTOは、再送タイマ推定値記憶部23から取得できる。
式(1)は、以下の式(2)〜(5)から導出することができる。まず、RTOは、次の式(2)の関係を有する。
RTO=2RTT …(2)
RTT(Round trip time)は、データを送信してからACKが返ってくるまでの往復時間を示す。
RTTは、タイムスタンプ減算値‘d’により、RTT’に変わる。従って、次の式(3)が成り立つ。
RTO’=2RTT’ …(3)
また、次の式(4)が成り立つ。
RTT’=RTT+d …(4)
データを再送しないように、RTO’に期待される値は、ACKの送信間隔(LA/SA)以上となる値である。従って、以下の式(5)が成り立つ。
RTO’≦LA/SA …(5)
式(4)に式(2)、式(3)を代入すると、式(6)が得られる。
(1/2)・RTO’=(1/2)・RTO+d …(6)
式(6)に式(5)を代入すると(不等号を等号にした式(5)に代入すると)、式(1)が得られる。
タイムスタンプ変更部29は、ACKに含まれるタイムスタンプから、タイムスタンプ変更部29によって算出されたタイムスタンプ減算値を減算するように通信部31を制御する。
ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートを監視しながら、ACK限度数を‘1’ずつ増加させる。ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートが飽和すると、ACK限度数の増加を停止する。
通信部31は、他のサーバとデータ通信を行う。例えば、通信部31は、サーバ12から送信されるデータを受信し、ACKをサーバ12に返す。通信部31は、タイムスタンプ減算値を減算したタイムスタンプをACKに含める。通信部31は、受信したデータの情報を受信データ記憶部21に記憶する。
時間単位推定部32は、データを送信するサーバのタイムスタンプの時間単位を推定する。タイムスタンプの時間単位は、データを送信するサーバによって異なるからである。
例えば、タイムスタンプは、カウント値で示され、時間単位推定部32は、その1カウントあたりの時間を推定する。時間単位推定部32は、受信データ記憶部21を参照して、2以上の受信データについての受信時刻の差と、タイムスタンプの差を比較し、タイムスタンプの単位時間を推定する。
遅延ACK制御部33は、ACK限度数制御部30から出力されるACK限度数でACKを返すように通信部31を制御する。例えば、ACK限度数制御部30から出力されるACK限度数が‘n’であるとする。この場合、遅延ACK制御部33は、受信データを‘n’個受信して、1個のACKをサーバに返すように通信部31を制御する。
図4の動作について説明する。サーバ12は、スロースタートアルゴリズムにより、送信データの送信レートを増加させていく。通信部31は、サーバ12から1つのデータを受信し、1つのACKをサーバ12に返す。
サーバ12から受信したデータの情報は、受信データ記憶部21に記憶される。ACK測定部26は、サーバ12に返すACKの送信レートと、送信したACKの平均ACKサイズを測定する。
ACK経路は、狭帯域のため、サーバ12の送信するデータの送信レートがある値まで増加すると、ACKの輻輳が生じる。ACKの輻輳が生じると、例えば、ACKが消失し、サーバ12は、ACKを適切に受信できなくなる。このため、サーバ12は、データの再送処理を行う。
再送判断部24は、受信データ記憶部21に記憶されるシーケンス番号に基づき、データの再送を検出する。例えば、再送判断部24は、サーバ12から同じシーケンス番号のデータを受信した場合、サーバ12は、データの再送処理を行っていると検出する。
ACK測定部26は、再送判断部24によって、データの再送が検出されると、そのときに測定していたACKの送信レートと、平均ACKサイズとをACK経路最大帯域記憶部22に記憶する。すなわち、ACK測定部26は、ACKが輻輳したときのACKの送信レートをACK経路最大帯域としてACK経路最大帯域記憶部22に記憶する。また、ACK測定部26は、そのときの平均ACKサイズをACK経路最大帯域記憶部22に記憶する。
対向ホスト再送タイマ推定部27は、受信データ記憶部21を参照し、送信側のサーバ12の再送タイマ値を推定する。例えば、対向ホスト再送タイマ推定部27は、受信データ記憶部21を参照し、再送データの受信時刻から、前回送信された同じシーケンス番号のデータの時刻を減算することにより、サーバ12の再送タイマ値を推定する。対向ホスト再送タイマ推定部27は、推定した再送タイマ値を再送タイマ推定値記憶部23に記憶する。
ACK限度数制御部30は、再送判断部24によって、データの再送が検出されると、データ受信レート測定部25の測定する受信レートを監視しながら、ACK限度数を‘1’から増加させる。遅延ACK制御部33は、ACK限度数制御部30から出力されるACK限度数でACKを返すように通信部31を制御する。
ACK限度数制御部30がACK限度数を増加すると、サーバ12に送信されるACKの間隔が長くなる。そして、最終的に、ACKの送信間隔が、送信側のサーバ12の再送タイマ値を超えると、サーバ12は、データの再送を行う。これにより、ACK経路の帯域は減少するが、データ受信レート測定部25の測定する受信レートは、飽和する。
ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートが飽和すると、ACK限度数の増加を停止する。すなわち、ACK限度数制御部30と遅延ACK制御部33は、サーバ12の送信レートが飽和するまで、ACKの遅延処理を行う。
タイムスタンプ算出部28は、ACK経路最大帯域記憶部22に記憶されたACK経路最大帯域と、平均ACKサイズと、再送タイマ推定値記憶部23に記憶された再送タイマ推定値とに基づいて、ACKのタイムスタンプ値を変更するためのタイムスタンプ減算値を算出する。タイムスタンプ算出部28は、式(1)に基づいて、タイムスタンプ減算値を算出する。タイムスタンプ変更部29は、ACKに含まれるタイムスタンプから、タイムスタンプ算出部28によって算出されたタイムスタンプ減算値を減算するように通信部31を制御する。これにより、サーバ12のデータの再送が抑制される。
サーバ11は、上記の動作を繰り返す。すなわち、ACK経路が輻輳すると、ACK経路の輻輳を低減するために、ACK限度数を増加させる。そして、ACK限度数の増加によって、データ送信経路の帯域が飽和すると、TCPのタイムスタンプ値からタイムスタンプ減算値を減算して、データ送信経路の飽和を解消する。そして、さらに、送信データの帯域を上げ、ACK経路が輻輳すると、ACK経路の輻輳を低減するために、ACK限度数を増加させる。以下、データ送信経路の帯域とACK経路の帯域とが限度になるまで上記動作を繰り返す。これにより、サーバ12は、ACK経路が狭帯域でも、データ送信経路の帯域をフルに使用してデータ送信することができ、スループットを向上することができる。
図8は、データを受信するサーバの動作を示したフローチャートである。サーバ11は、以下のステップの処理を繰り返す。
[ステップS1]通信部31は、送信側のサーバ12とTCP接続を確立し、TCPのデータ受信を開始する。なお、サーバ12は、スロースタートアルゴリズムにより、送信データの送信レートを増加させていく。通信部31は、サーバ12からのデータを受信し、ACKをサーバ12に返す。通信部31は、1つのデータを受信して、1つのACKをサーバ12に返す。通信部31は、受信したデータの情報を受信データ記憶部21に記憶する。
[ステップS2]再送判断部24は、受信データ記憶部21に記憶されるシーケンス番号に基づき、データが再送されたか否か判断する。再送判断部24は、データが再送されたと判断した場合、ステップS3へ進む。
[ステップS3]ACK測定部26は、再送判断部24によって、データの再送が判断されると、そのときに測定していたACKの送信レートと、平均ACKサイズとをACK経路最大帯域記憶部22に記憶する。すなわち、ACK測定部26は、ACKが輻輳したときのACKの送信レートをACK経路最大帯域としてACK経路最大帯域記憶部22に記憶する。また、ACK測定部26は、ACKが輻輳したときの平均ACKサイズをACK経路最大帯域記憶部22に記憶する。
[ステップS4]対向ホスト再送タイマ推定部27は、受信データ記憶部21を参照し、データ送信側のサーバ12の再送タイマ値を推定する。対向ホスト再送タイマ推定部27は、推定した再送タイマ値を再送タイマ推定値記憶部23に記憶する。
[ステップS5]ACK限度数制御部30は、ACK限度数を‘1’から増加させる。遅延ACK制御部33は、ACK限度数制御部30から出力されるACK限度数でACKを返すように通信部31を制御する。
[ステップS6]ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートを監視しながら、ACK限度数を‘1’から増加させる。ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートが飽和した場合、ステップS7へ進む。ACK限度数制御部30は、データ受信レート測定部25の測定する受信レートが飽和しない場合、ステップS5へ進む。
[ステップS7]ACK限度数制御部30は、ACK限度数の増加を停止する。
[ステップS8]タイムスタンプ算出部28は、ACK経路最大帯域記憶部22に記憶されたACK経路最大帯域と、平均ACKサイズと、再送タイマ推定値記憶部23に記憶された再送タイマ推定値とに基づいて、ACKのタイムスタンプ値を変更するためのタイムスタンプ減算値を算出する。タイムスタンプ変更部29は、ACKに含まれるタイムスタンプ値から、タイムスタンプ算出部28によって算出されたタイムスタンプ減算値を減算するように通信部31を制御する。
[ステップS9]通信部31は、送信側のサーバ12とのTCP接続が切断されたか否か判断する。通信部31は、TCP接続が切断された場合、処理を終了する。通信部31は、TCP接続が切断されていない場合、ステップS2へ進む。
このように、サーバ11は、データの再送が発生した後、受信レートが飽和するまでACK限度数を増加させる。そして、サーバ11は、受信レートが飽和すると、ACK限度数の増加を停止し、タイムスタンプを書き換えてACKをサーバ12に送信する。これにより、データの送信側であるサーバ12は、データ送信経路の全帯域を使用してデータ送信することができるようになり、スループットを向上することができる。
なお、上記では、ACK限度数の増加処理とタイムスタンプの変更処理の両方を行っているが、一方の処理のみを行ってもよい。例えば、サーバ11は、データの再送が発生すると、ACK限度数を増加させ、受信レートが飽和すると、ACK限度数の増加を停止するようにしてもよい。また、サーバ11は、データの再送が発生すると、タイムスタンプの変更処理を行うようにしてもよい。これらの場合でも、スループットを向上することができる。
1 サーバ
1a 受信部
1b 判断部
1c 測定部
1d 返信部
2 送信サーバ
3a データ送信経路
3b ACK経路

Claims (6)

  1. データ通信を行うサーバにおいて、
    送信サーバからデータを受信する受信部と、
    前記受信部によって受信された前記データの再送が行われたか否かを判断する判断部と、
    前記受信部によって受信された前記データの受信レートを測定する測定部と、
    前記判断部によって前記データの再送が行われたと判断された場合、前記測定部によって測定される前記受信レートが飽和するまで、前記データの受信に応じて行う前記送信サーバへのACKの返信を複数の前記データを受信してから行い前記ACKの返信を徐々に減少させる返信部と、
    を有することを特徴とするサーバ。
  2. 前記データのヘッダに含まれる前記送信サーバが前記データを送信してから前記ACKが返ってくるまでの時間を計測するためのタイムスタンプ値を減算するためのタイムスタンプ減算値を算出する算出部と、をさらに有し、
    前記返信部は、前記算出部によって算出された前記タイムスタンプ減算値を減算した前記タイムスタンプ値を前記ACKに含めて前記送信サーバに返信することを特徴とする請求項1記載のサーバ。
  3. 前記送信サーバの前記データを再送する再送タイマ値を推定する推定部と、をさらに有し、
    前記算出部は、前記推定部によって推定された前記再送タイマ値と前記送信サーバへ返信される前記ACKの送信間隔とに基づいて前記タイムスタンプ減算値を算出することを特徴とする請求項2記載のサーバ。
  4. 前記送信サーバに返信する前記ACKの送信レートと前記ACKの平均データサイズとを測定するACK測定部と、をさらに有し、
    前記算出部は、前記判断部によって前記送信サーバの前記データの再送が行われたと判断されたときの前記ACK測定部によって測定された前記ACKの前記送信レートと前記平均データサイズとに基づいて前記ACKの送信間隔を算出することを特徴とする請求項3記載のサーバ。
  5. データ通信を行うサーバにおいて、
    送信サーバからデータを受信する受信部と、
    前記受信部によって受信された前記データのヘッダに含まれる前記送信サーバが前記データを送信してからACKが返ってくるまでの時間を計測するためのタイムスタンプ値を減算するためのタイムスタンプ減算値を算出する算出部と、
    前記算出部によって算出された前記タイムスタンプ減算値を減算した前記タイムスタンプ値を前記ACKに含めて前記送信サーバに返信する返信部と、
    を有することを特徴とするサーバ。
  6. データ通信を行うサーバのACK返信方法において、
    送信サーバからデータを受信し、
    受信された前記データの再送が行われたか否かを判断し、
    受信された前記データの受信レートを測定し、
    前記データの再送が行われたと判断された場合、前記受信レートが飽和するまで、前記データの受信に応じて行う前記送信サーバへのACKの返信を複数の前記データを受信してから行い前記ACKの返信を徐々に減少させる、
    ことを特徴とするACK返信方法。
JP2009104596A 2009-04-23 2009-04-23 サーバおよびack返信方法 Expired - Fee Related JP5246015B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009104596A JP5246015B2 (ja) 2009-04-23 2009-04-23 サーバおよびack返信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009104596A JP5246015B2 (ja) 2009-04-23 2009-04-23 サーバおよびack返信方法

Publications (2)

Publication Number Publication Date
JP2010258631A true JP2010258631A (ja) 2010-11-11
JP5246015B2 JP5246015B2 (ja) 2013-07-24

Family

ID=43319075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009104596A Expired - Fee Related JP5246015B2 (ja) 2009-04-23 2009-04-23 サーバおよびack返信方法

Country Status (1)

Country Link
JP (1) JP5246015B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013125175A1 (ja) * 2012-02-21 2013-08-29 日本電気株式会社 通信システム、通信方法及びデータ受信端末

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09186739A (ja) * 1995-12-28 1997-07-15 Toshiba Corp パケット通信システムおよびパケット通信制御方法
JPH10126446A (ja) * 1996-08-30 1998-05-15 Lucent Technol Inc Tcpネットワーク内のデータ端末
JP2000022744A (ja) * 1998-06-30 2000-01-21 Toshiba Corp パケット通信システム、パケット通信装置及びパケット通信方法
JP2005086375A (ja) * 2003-09-05 2005-03-31 Ntt Docomo Inc パケット送信量制御方法、通信システム、通信装置及びプログラム
JP2006101339A (ja) * 2004-09-30 2006-04-13 Kyocera Corp データ通信装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09186739A (ja) * 1995-12-28 1997-07-15 Toshiba Corp パケット通信システムおよびパケット通信制御方法
JPH10126446A (ja) * 1996-08-30 1998-05-15 Lucent Technol Inc Tcpネットワーク内のデータ端末
JP2000022744A (ja) * 1998-06-30 2000-01-21 Toshiba Corp パケット通信システム、パケット通信装置及びパケット通信方法
JP2005086375A (ja) * 2003-09-05 2005-03-31 Ntt Docomo Inc パケット送信量制御方法、通信システム、通信装置及びプログラム
JP2006101339A (ja) * 2004-09-30 2006-04-13 Kyocera Corp データ通信装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013125175A1 (ja) * 2012-02-21 2013-08-29 日本電気株式会社 通信システム、通信方法及びデータ受信端末
JPWO2013125175A1 (ja) * 2012-02-21 2015-07-30 日本電気株式会社 通信システム、通信方法及びデータ受信端末
US9444604B2 (en) 2012-02-21 2016-09-13 Nec Corporation Communication system, communication method and data receiving terminal

Also Published As

Publication number Publication date
JP5246015B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
US11611498B2 (en) Round-trip time evaluation system, method, and apparatus
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
US7505412B2 (en) Transmission control method and system
JP4147534B2 (ja) 通信装置および通信方法
JP5258938B2 (ja) 通信装置
EP3780542B1 (en) Data transmission method and device
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US20060209838A1 (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
JP5941853B2 (ja) パケット通信方法及び装置
US7764616B2 (en) Transmitter device for controlling data transmission
EP2922241B1 (en) Methods and apparatus to determine network delay with location independence from retransmission delay and application response time
US8279756B2 (en) Communication terminal, communication control method, and communication control program
JP4435817B2 (ja) 通信端末、通信制御方法および通信制御プログラム
US7168022B2 (en) Transmission control method and system
JP6101046B2 (ja) パケット送信装置およびそのプログラム
JP5246015B2 (ja) サーバおよびack返信方法
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
JP6897769B2 (ja) データ送信装置、方法およびプログラム
JP6145190B1 (ja) 中継装置、中継方法及び中継プログラム
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
JP2016201579A (ja) 通信装置及び送信帯域制御方法
KR20190048943A (ko) 네트워크 연결 제어 장치 및 그 방법
JP2005244517A (ja) データ転送制御装置、データ転送制御方法及びデータ転送制御プログラム
CN118435576A (zh) 借助由中间节点确定的中间性能参数的值、来检查与旨在在由包括至少一个中间节点的路径链接的第一通信设备项和第二通信设备项之间建立的连接相关的流控制参数的第一值的可靠性的方法
Hurtig et al. Rfc 7765: Tcp and stream control transmission protocol (sctp) rto restart

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130214

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: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5246015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees