JP5375313B2 - 通信装置、擬似応答装置、送信レート制御方法およびプログラム - Google Patents

通信装置、擬似応答装置、送信レート制御方法およびプログラム Download PDF

Info

Publication number
JP5375313B2
JP5375313B2 JP2009111831A JP2009111831A JP5375313B2 JP 5375313 B2 JP5375313 B2 JP 5375313B2 JP 2009111831 A JP2009111831 A JP 2009111831A JP 2009111831 A JP2009111831 A JP 2009111831A JP 5375313 B2 JP5375313 B2 JP 5375313B2
Authority
JP
Japan
Prior art keywords
data
data packet
response
transmission rate
pseudo
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
Application number
JP2009111831A
Other languages
English (en)
Other versions
JP2010263350A (ja
Inventor
一郎 山口
範人 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009111831A priority Critical patent/JP5375313B2/ja
Publication of JP2010263350A publication Critical patent/JP2010263350A/ja
Application granted granted Critical
Publication of JP5375313B2 publication Critical patent/JP5375313B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、通信装置、擬似応答装置、送信レート制御方法およびプログラムに関する。
送信元と宛先との間で送受信されるデータパケットの送達確認を行いながら送信レートを制御して通信を行うためのプロトコルの一例として、TCP(Transmission Control Protocol)が挙げられる(例えば、特許文献1参照。)。
TCPを用いて通信する場合の送信レートを制御する方法は、データパケットを送信した通信装置がそのデータパケットを受信した他の通信装置から送信されてきた確認応答(いわゆる、ACK(Acknowledgement)パケット)を受信して、確認応答の受信状況や受信した確認応答が示す他の通信装置におけるデータパケットの受信状況に基づいて、送出可能なデータパケットの量を制御する。送信したデータパケットを宛先である他の通信装置が受信した場合、データパケットの送信レートを増加させ、送信したデータパケットの受信ロスが発生した場合、送信レートを減少させる。
この送信レートを制御する場合、例えば、以下に示す方法を用いることが可能である。この制御方法では、図15に示す通信装置800が有するデータ送信部810は、送信データ記憶部840から読み出したデータパケットを、送信レート決定部830から通知される送信レートで他の通信装置900へ送信する。
その後、応答受信部820は、他の通信装置900から送信されてきた図16に示すような確認応答(ACKパケット)に基づいて、送信したデータパケットのロスを検出した場合、データ送信部810へロスが検出されたデータパケットの再送を要求する。また、応答受信部820は、送信したデータパケットを他の通信装置900が受信したかどうかを送信レート決定部830へ通知する。
送信レート決定部830は、他の通信装置900がデータパケットを受信した旨が応答受信部820から通知された場合、他の通信装置900に対するデータパケットの送信レートを増加させる。送信レート決定部830は、例えば、図17に示すように現在の送信レートが所定の基準送信レートssthreshよりも小さな場合、確認応答を1個受信するごとにデータパケットの送信レートを2倍にする。また、現在の送信レートが基準送信レートssthreshよりも大きな場合、確認応答を1個受信するごとに、送信レート決定部830は、他の通信装置900に対するデータパケットの送信レートを「1/(現在の送信レート)」だけ増加させる。
また、応答受信部820は、同じ応答番号(例えば、ACK番号)をそれぞれ含む複数の確認応答を重複して受信した場合、データパケットがロスしたと判定する。そして、応答受信部820は、その旨を送信レート決定部830へ通知する。すると、送信レート決定部830は、送信レートを半減させる。また、非特許文献1の3.1 Slow Start and Congestion Avoidanceに開示されているように、所定の再送タイムアウト時間を経過しても他の通信装置900から確認応答が送信されてきていない場合、送信レート決定部830は、送信レートを、他の通信装置900から確認応答を受信してからその確認応答の次に送信されてくる確認応答を受信するまでの間にデータ送信部810が1データパケットを送信するときの送信レートに減少させてもよい。
また、図15に示した通信装置900のデータ受信部910は、通信装置800から送信されてきたデータパケットを受信データ記憶部940へ書き込む。また、データ受信部910は、受信したデータパケットに含まれているデータパケットに固有に付与されたデータ識別番号(例えば、シーケンス番号)を応答送信部920へ通知する。
応答送信部920は、応答頻度決定部930から通知される頻度で、データ受信部910から通知されたデータ識別番号に基づいて次に受信を期待するデータ識別番号である応答番号として決定し、その応答番号を含む確認応答を生成して通信装置800へ送信する。
なお、応答頻度決定部930は、通信装置800から送信されてきたデータパケットを所定の個数X個だけ受信するごとに1つの確認応答を送信するよう応答送信部920へ指示する。なお、非特許文献1の4.2 Generating Acknowledgmentsにおいては、TCPを用いた通信にて設定するデータパケットの個数Xとして、X=2が推奨されている。また、応答頻度決定部930は、一定時間Tが経過した場合にも、確認応答を送信するよう応答送信部920へ指示する。
特開2005−198111号公報
M. Allman, V. Paxson, W. Stevens, "RFC2581 TCP congestion Control,",[online], April 1999., IETF, [平成 21年 4月 14日検索]、インターネット〈URL:http://www.ietf.org/rfc/rfc2581.txt?number=2581〉
しかし、上述した方法においては、Xが大きな値に設定されていくに従って、または一定時間Tが長く設定されていくに従って、他の通信装置900が確認応答を送信する頻度がより減少していく。また、確認応答を送信する頻度が減少するに伴って、データパケットを送信した通信装置800が送信レートを制御する時間間隔が長くなっていく。この場合、通信装置800が、ネットワーク上のトラヒックの時間的変化に応じたデータパケットの送信レートの正確な制御を行うことが困難となってしまうという問題点がある。
この問題点について、図18を参照してより具体的に説明する。図18は、他の通信装置900が互いに異なる2つの頻度で確認応答をそれぞれ送信する場合における、通信装置800が変更した送信レートの経過時間に対する特性である。丸印のプロットは、他の通信装置900がデータパケットを1個だけ受信するごとに確認応答を送信した場合の送信レートの時間的変化を表している。また、四角印のプロットは、他の通信装置900がデータパケットを3個だけ受信するごとに確認応答を送信した場合の送信レートの時間的変化を表している。
図18に示した例では、他の通信装置900が、通信装置800から送信されてきたデータパケットを3個受信するごとに確認応答を1個送信した場合、通信装置800が、ネットワークの輻輳に応じて送信レートを減少させるタイミングが遅れてしまう。また、通信装置800は、1つの確認応答を受信するごとに送信レートを所定のレート増加量だけ増大させるため、データパケットに対して確認応答を受信する頻度が少なくなるに伴って送信レートの増加が鈍化している。
本発明は、上述した課題を解決する通信装置、擬似応答装置、送信レート制御方法およびプログラムを提供することを目的とする。
上記課題を解決するために、本発明の通信装置は、データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置であって、前記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを記憶する送信レート決定部と、前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定部と、前記確認応答を受信した際に前記送信レート決定部が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力部とを有し、前記送信レート決定部は、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力部が決定したレート増加量だけ増大させる。
上記課題を解決するために、本発明の擬似応答装置は、データパケットを送信する通信装置と接続され、該データパケットに対する応答として送信されてきた確認応答を受信する擬似応答装置であって、前記通信装置から送信されてきたデータパケットの送信レートを測定して記憶するとともに、該データパケットをその宛先へ転送するデータ捕捉部と、前記通信装置から送信されてきたデータパケットを前記宛先へ転送してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定部と、前記確認応答を受信した際に前記データ捕捉部が記憶している前記送信レートと、前記目標レートとに基づいて、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数を決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を前記通信装置へ送信する擬似応答出力部とを有する。
上記課題を解決するために、本発明の送信レート制御方法は、データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置における送信レート制御方法であって、前記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを当該通信装置に記憶する送信レート決定処理と、前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定処理と、前記確認応答を受信した際に当該通信装置が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力処理とを有し、前記送信レート決定処理では、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力処理にて決定したレート増加量だけ増大させる。
また、コンピュータに実行させるプログラムであって、データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置に、前記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを当該通信装置に記憶する送信レート決定手順と、前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定手順と、前記確認応答を受信した際に当該通信装置が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力手順とを実行させ、前記送信レート決定手順では、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力手順にて決定したレート増加量だけ増大させる。
本発明によれば、データパケットに対する確認応答の送信頻度が少ない場合でも、データパケットを送信する通信装置にて、ネットワーク上のトラヒックの時間的変化に応じたデータパケットの送信レートの正確な制御を行うことができる。
本発明の実施形態1に従った通信システムの構成を示す図である。 データパケットを送信する通信装置の構成を示す図である。 図2に示したデータ管理情報のデータ構造の一例を示した図である。 実施形態1にて、通信装置間で送受信されるデータの流れを示す図である。 経過時間に対して、データパケットを送信する通信装置により変更される送信レートを示す図である。 (a)確認応答のデータ構造の一例を示す図である。(b)擬似応答番号が書き込まれた確認応答のデータ構造の一例を示す図である。 軽度の輻輳が発生した場合の送信レート変化を示した図である。 重度の輻輳が発生した場合の送信レート変化を示した図である。 ロスが発生していない場合の送信レート変化を示した図である。 確認応答を送信する通信装置の構成を示す図である。 データパケットを送信する通信装置が送信レートを制御する動作を示すフローチャートである。 実施形態2の通信システムの構成を示す図である。 データ管理情報のデータ構造の一例を示した図である。 擬似応答装置が擬似応答を送信する動作を示すフローチャートである。 TCPを用いて通信を行う通信システムの構成の一例を示す図である。 確認応答のデータ構造の一例を示す図である。 TCPを用いた通信にて一般的な制御方法により制御される送信レートの変化を示した図である。 1つのデータパケットを受信するごとに1つの確認応答が送信される場合の送信レートの変化と、3つのデータパケットを受信するごとに確認応答が送信される場合の送信レートの変化とを示した図である。
以下、本発明の実施形態に従った通信システム(通信装置、擬似応答装置、送信レート制御方法およびプログラムを含む)を説明する。
まず、本実施形態の通信システムの構成を説明する。図1に示すように、この通信システムは、ネットワーク3を介して互いに通信可能に接続された通信装置1と通信装置2とから構成されている。
通信装置1、2は、ネットワーク3を介してデータパケットを互いに送受信する「通信装置」である。以下では、通信装置1が送信したデータパケットを通信装置2が受信する場合の動作を例に挙げて説明する。
通信装置1は、データパケットを送信する際、データパケットそれぞれの送信順序を示した「データ識別番号」であるシーケンス番号を当該データパケットそれぞれに付与して送信する。
なお、データパケットのサイズは任意でよいが、以下では、そのサイズが100bytesである場合を例に挙げて説明する。また、データパケットに付与されるデータ識別番号が、データパケットのサイズと同じ値(=「100」)ずつ増加する場合を例に挙げて説明する。
通信装置2は、通信装置1から送信されてきたデータパケットを受信した場合、そのデータパケットを受信した旨を示す「確認応答」を生成する。この確認応答の例としては、ACKパケットが挙げられる。
なお、通信装置2は、この確認応答に、送信されてきたデータパケットに付与されているデータ識別番号を書き込む。また、通信装置2は、この確認応答に、次に受信を期待するデータ識別番号を「応答番号」として書き込む。例えば、送信されてきたデータパケットに付与されたデータ識別番号が「1100」である場合、応答番号は「1200」となる。そして、通信装置2は、生成した確認応答を通信装置1へ送信する。また、通信装置2が、次に受信を期待するシーケンス番号をACK番号として確認応答に書き込む場合、TCP SACK(Selective Acknowledgement;選択確認応答)オプションを用いてもよい。
通信装置1は、確認応答に基づいてデータパケットが受信ロスしているかどうかを判別し、判別結果に応じて「目標レートRtarget」を決定する。ここで、目標レートRtargetとは、通信装置2に対するデータパケットの送信レートの目標値である。
そして、通信装置1は、データパケットの送信レートを、送信レートと目標レートRtargetとを同じ値とするための「擬似応答」を用いて制御する。
ここで、「擬似応答」とは、確認応答のデータ構造と同じデータ構造を有し、応答番号に代えて、送信したデータパケットに付与されたデータ識別番号に基づいて通信装置1が決定した擬似応答番号が書き込まれたデータである。
つぎに、図1に示した通信装置1の構成について、図2を参照して詳細に説明する。
図2に示すように、通信装置1は、データ送信部11と、削除部12と、送信レート決定部13と、送信データ記憶部14と、捕捉部15と、目標レート決定部16と、擬似応答出力部17と、再送制御部18と、未応答データ記憶部19とを有する。
送信データ記憶部14は、データパケットと、そのデータパケットに付与されたデータ識別番号との対応付を記憶している。
データ送信部11は、送信データ記憶部14内のデータパケットを読み出す。そして、データ送信部11は、読み出したデータパケットを、送信レート決定部13から通知された送信レートに従って通信装置2へ送信するとともに、そのデータパケットを再送制御部18へ出力する。
また、データ送信部11は、データパケットを通信装置2へ送信した送信時刻とそのデータパケットのデータ識別番号との対応付を、削除部12と捕捉部15とへ出力する。
また、データ送信部11は、通信装置2へ送信したデータパケットに付与されているデータ識別番号と、そのデータパケットの送信レートとの対応付を、送信レート決定部13へ出力する。
また、データ送信部11は、ロスしたデータパケットのデータ識別番号と、そのデータパケットの再送を指示する再送指示とが削除部12から出力されてきた場合、そのデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを送信データ記憶部14から読み出して、送信レート決定部13から通知された送信レートに従って通信装置2へ送信する。
また、データ送信部11は、再送制御部18から出力されてきたデータパケットを通信装置2へ送信する。
削除部12は、捕捉部15から確認応答が出力されてきた際、当該確認応答内のデータ識別番号と同じデータ識別番号とデータパケットとの対応付を送信データ記憶部14から削除する。
また、削除部12は、擬似応答出力部17から擬似応答が出力されてきた際、当該擬似応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを送信データ記憶部14から削除する。
つまり、確認応答のデータ構造と擬似応答のデータ構造とを同じものとしておけば、確認応答(ACKパケット)に対して上述した動作を行う回路やプログラムを、削除部12として流用することが可能である。
また、削除部12は、データパケットを送信データ記憶部14から削除した旨を送信レート決定部13へ通知する。
さらに、削除部12は、削除したデータパケットのデータ識別番号と対応付けて擬似応答出力部17内のデータ管理情報171に記憶されている送信データ削除フラグを、そのデータパケットが送信データ記憶部14から削除されていないことを示す情報から、そのデータパケットが送信データ記憶部14から削除されたことを示す情報へ書き換える。
図3に示すように、このデータ管理情報171は、擬似応答番号と、データ識別番号と、送信データ削除フラグと、未応答データ削除フラグと、確認応答受信フラグとを対応付ける情報である。この例では、データ識別番号「1100」〜「2000」のデータパケットをデータ送信部11が通信装置2へ送信し、これらのうちデータ識別番号「1100」、「1300」、「1500」、「1700」を用いて擬似応答出力部17が4つの擬似応答を生成した際のデータ管理情報171を示している。
なお、「送信データ削除フラグ」とは、その送信データ削除フラグと対応付けられているデータ識別番号が付与されたデータパケットが、削除部12により送信データ記憶部14から削除されたかどうかを示す情報である。
送信データ削除フラグとして設定する情報は、削除部12によるデータパケットの送信データ記憶部14からの削除の有無をそれぞれ識別可能な情報であれば、任意の情報でよい。
本実施形態では、送信データ削除フラグは、その値が「0」である場合、データパケットが削除部12により送信データ記憶部14から削除されていないことを示し、その値が「1」である場合、データパケットが削除部12により送信データ記憶部14から削除されたことを示す。
つまり、本実施形態では、削除部12は、データパケットを送信データ記憶部14から削除した場合、そのデータパケットのデータ識別番号と対応付けてデータ管理情報171に記憶されている送信データ削除フラグを、「0」から「1」へ書き換える。
また、「未応答データ削除フラグ」とは、その未応答データ削除フラグと対応付けられているデータ識別番号が付与されたデータパケットが、再送制御部18により未応答データ記憶部19から削除されたかどうかを示す情報である。
未応答データ削除フラグとして設定する情報は、再送制御部18によるデータパケットの未応答データ記憶部19からの削除の有無をそれぞれ識別可能な情報であれば、任意の情報でよい。
本実施形態では、未応答データ削除フラグは、その値が「0」である場合、データパケットが再送制御部18により未応答データ記憶部19から削除されていないことを示し、その値が「1」である場合、データパケットが再送制御部18により未応答データ記憶部19から削除されたことを示す。
また、「確認応答受信フラグ」とは、その確認応答受信フラグと対応付けられているデータ識別番号を含む確認応答を捕捉部15が通信装置2から受信したかどうかを示す情報である。
確認応答受信フラグとして設定する情報は、捕捉部15による確認応答の受信の有無をそれぞれ識別可能な情報であれば、任意の情報でよい。
本実施形態では、確認応答受信フラグは、その値が「0」である場合、確認応答を捕捉部15が通信装置2から受信していないことを示し、その値が「1」である場合、確認応答を捕捉部15が通信装置2から受信したことを示す。
また、削除部12は、捕捉部15から出力されてきた確認応答の数と、その確認応答内の応答番号と同じ番号を擬似応答番号として含む擬似応答出力部17から出力されてきた擬似応答の数との合計が「所定の重複数」以上となった場合、データパケットの送信レートを、送信レート決定部13が記憶している現在の送信レートRnowの「1/2」倍に変更するよう指示するレート変更指示を送信レート決定部13へ出力する。
なお、ここでいう「所定の重複数」とは、通信装置1が送信したデータパケットがロスした場合に、再送タイムアウト時間内に通信装置2から送信される確認応答の数である。なお、削除部12が変更を指示する送信レートの値は、送信レート決定部13が記憶している現在の送信レートRnowよりも小さな値であれば任意でよい。
また、削除部12は、データ送信部11から出力されてきた送信時刻とその送信時刻に送信されたデータパケットのデータ識別番号との対応付を記憶する。また、送信時刻とデータ識別番号との対応付がデータ送信部11から出力されてきた場合、その送信時刻からあらかじめ設定された再送タイムアウト時間が経過したかどうかを判別する。そして、削除部12は、送信時刻から再送タイムアウト時間が経過したと判別した後に、その送信時刻に送信されたデータパケットのデータ識別番号を含む擬似応答が擬似応答出力部17から出力されてきた場合、データパケットの送信レートを、現在の送信レートRnowから「最小送信レートRmin」に変更するよう指示するレート変更指示を送信レート決定部13へ出力する。
ここでいう「最小送信レートRmin」とは、通信装置2から送信されてくる確認応答を通信装置1が受信する「受信間隔」と同じ間隔で通信装置1がデータパケットを1つずつ通信装置2へ送信するときの送信レートである。
また、削除部12は、ロスしたデータパケットのデータ識別番号と、そのデータパケットの再送を指示する再送指示とが捕捉部15から出力されてきた場合、データ送信部11に対して、そのデータ識別番号と再送指示とを出力する。
送信レート決定部13は、データ送信部11から出力されてきたデータ識別番号とそのデータ識別番号が付与されたデータパケットの送信レートとの対応付を記憶する。
また、送信レート決定部13は、データパケットを送信データ記憶部14から削除した旨が削除部12から通知された場合、送信レートを、記憶している現在の送信レートRnowと所定のレート増加量fとを加算した値に変更する。また、送信レート決定部13は、変更した送信レートを現在の送信レートRnowとして新たに記憶する。また、送信レート決定部13は、変更した送信レートをデータ送信部11へ通知する。
本実施形態では、送信レート決定部13は、レート増加量fを記憶している。
ここで、「レート増加量f」とは、削除部12がデータパケットを送信データ記憶部14から削除した場合に、現在の送信レートRnowに加算される値である。
なお、レート増加量fの値については特に限定しない。
本実施形態では、送信レート決定部13は、データパケットを送信データ記憶部14から削除した旨が削除部12から通知された際に記憶している現在の送信レートRnowと、所定の基準送信レートssthreshとを比較する。なお、基準送信レートssthreshの値は任意でよい。本実施形態では、基準送信レートssthreshの値が現在の送信レートRnowの「1/2」倍である場合を例に挙げて説明する。
そして、送信レート決定部13は、比較の結果、記憶している現在の送信レートRnowが所定の基準送信レートssthresh以下である場合、レート増加量fを現在の送信レートRnowと同じ値に決定する。つまり、この場合、送信レート決定部13は、送信レートを現在の送信レートRnowの2倍に変更する。
また、本実施形態では、送信レート決定部13は、比較の結果、現在の送信レートRnowが基準送信レートssthreshよりも大きな場合、レート増加量fを、「1/(現在の送信レートRnow)」倍とする。
なお、送信レート決定部13は、データパケットがロスしたと捕捉部15が判別した場合、送信レートを「所定値」まで一旦減少させてから、目標レートまで送信レートを増加させる。本実施形態では、「所定値」は、現在の送信レートRnowの「1/2」倍の値、または、最小送信レートRminである。
より具体的には、送信レート決定部13は、送信レートを現在の送信レートRnowの「1/2」倍に変更するよう指示するレート変更指示が削除部12から出力されてきた場合、送信レートを現在の送信レートRnowの「1/2」倍の値に変更するとともに、その旨を擬似応答出力部17へ通知する。
また、本実施形態では、送信レート決定部13は、送信レートを最小送信レートRminに変更するよう指示するレート変更指示が削除部12から出力されてきた場合、送信レートを現在の送信レートRnowから最小送信レートRminへ変更するとともに、その旨を擬似応答出力部17へ通知する。
捕捉部15は、通信装置2から送信されてきた確認応答を受信した場合、その確認応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータ管理情報171内の確認応答受信フラグを、「0」から「1」へ書き換える。
また、捕捉部15は、データ送信部11から出力されてきたデータパケットのデータ識別番号とそのデータパケットの送信時刻との対応付を記憶する。
また、捕捉部15は、通信装置2から送信されてきた確認応答内のデータ識別番号に基づいて、データパケットがネットワーク3にてロスしたかどうかを判別する。
より具体的には、捕捉部15は、データ送信部11から送信時刻が出力されてきた場合、その送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を受信したかどうかを判別する。
そして、捕捉部15は、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を受信したと判別した場合、その間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数と、「所定の重複数」とを比較する。
そして、捕捉部15は、比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数未満である場合、その送信時刻と対応付けて記憶しているデータ識別番号のデータパケットがロスしていないと判別する。この場合、捕捉部15は、データパケットがロスしていない旨を目標レート決定部16と擬似応答出力部17とへ通知する。
さらに、ロスしていないと判別した際、捕捉部15は、その確認応答の受信時に書き換えた確認応答受信フラグと対応付けて記憶されている送信データ削除フラグの値が「0」である場合、その確認応答を削除部12へ出力する。
また、捕捉部15は、比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数以上である場合、データパケットがロスしたと判別する。
また、捕捉部15は、データ送信部11から出力されてきた送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答が送信されてきていないと判別した場合、そのデータ識別番号が付与されたデータパケットがロスしたと判別する。
なお、送信時刻から再送タイムアウト時間が経過する間に確認応答が送信されてこなかったためにロスしたと判別されたデータパケットは、そのデータ識別番号を含む擬似応答を入力した削除部12によって送信データ記憶部14から削除される。しかし、捕捉部15は、そのデータパケットのデータ識別番号を含む確認応答が、再送タイムアウト時間が経過した後に通信装置2から送信されてきた場合、その確認応答内の応答番号をデータ管理情報171内の擬似応答番号の最大値へ書き換えて、その擬似応答番号を含む確認応答を削除部12へ出力する。
さらに、捕捉部15は、データパケットがロスしたと判別した場合、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部16へ通知する。
また、捕捉部15は、データパケットがロスしたと判別した場合、そのデータパケットのデータ識別番号と対応付けて記憶されている送信データ削除フラグの値が「1」であり、かつそのデータ識別番号と対応付けて記憶されている確認応答受信フラグの値が「0」であるかどうかを判別する。これにより、捕捉部15は、送信したデータパケットのロスによって通信装置2が受信していないにも関わらず、擬似応答によって削除部12が送信データ記憶部14から削除したデータパケットの有無を確認する。
そして、ロスしたと判別されたデータ識別番号と対応付けて記憶されている送信データ削除フラグの値が「1」であり、かつそのデータ識別番号と対応付けて記憶されている確認応答受信フラグの値が「0」である場合、捕捉部15は、データ管理情報171に記憶されている擬似応答番号の最大値と、ロスしたデータパケットのデータ識別番号とを比較する。
比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも小さな場合、捕捉部15は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを再送制御部18へ出力する。
また、捕捉部15は、通信装置2から送信されてきた確認応答に含まれている応答番号を、データ管理情報171に記憶されている擬似応答番号の最大値へ書き換える。また、捕捉部15は、確認応答に含まれる通信装置2が受信したデータパケットのデータ識別番号のうち擬似応答番号の最大値よりも小さなデータ識別番号を削除する。そして、捕捉部15は、その確認応答を、削除部12へ出力する。
また、比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも大きな場合、捕捉部15は、通信装置2から送信されてきた確認応答内の応答番号を、データ管理情報171に記憶されている擬似応答番号の最大値へ書き換える。そして、捕捉部15は、この擬似応答番号を含む確認応答を削除部12へ出力する。
なお、擬似応答番号の最大値よりも大きなデータ識別番号が付与されたデータパケットがロスした場合、このデータパケットは、削除部12により送信データ記憶部14から削除されておらず送信データ記憶部14に記憶されている状態にある。そのため、捕捉部15は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを削除部12へ出力する。
さらに、捕捉部15は、データパケットがロスしたと判別した場合、連続してロスしたデータパケットの個数(以下、「連続ロス数」という)をカウントする。そして、捕捉部15は、連続ロス数と、所定の閾値とを比較する。
当該比較の結果、連続ロス数が所定の閾値以下である場合、捕捉部15は、軽度の輻輳が発生した旨を擬似応答出力部17へ通知する。
また、比較の結果、連続ロス数が所定の閾値よりも大きな場合、捕捉部15は、重度の輻輳が発生した旨を擬似応答出力部17へ通知する。
ここで、軽度の輻輳とは、連続してロスしたデータパケットの数が所定の閾値以下であるような輻輳のことを指す。また、重度の輻輳とは、連続してロスしたデータパケットの数が所定の閾値よりも大きな輻輳のことを指す。
図4は、通信装置1から送信されたデータパケットと、通信装置2から送信された確認応答とのシーケンスを示す図である。通信装置1は、所定数(この例では、データパケットのサイズと同じ値「100」)ずつ増加するデータ識別番号「1100」〜「3200」のデータパケットを送信している。
また、図5は、図4に示したデータ識別番号「1100」〜「3200」がそれぞれ付与されたデータパケットを送信したときの送信レートの経過時間に対する変化を示している。なお、擬似応答により、擬似応答番号は「3300」まで進んでいる。
上述したように、捕捉部15は、図6(a)に示すような通信装置2から送信されてきた確認応答に含まれていた応答番号(ACK番号)「3000」を、図6(b)に示すように擬似応答番号と同じ番号「3300」に書き換えている。また、図6(b)に示すように、書換後の確認応答に含まれている通信装置2が受信したデータパケットのデータ識別番号(シーケンス番号)のうち擬似応答番号「3300」よりも小さなデータ識別番号は削除している。
また、捕捉部15は、通信装置2から送信されてきた確認応答を受信した際、確認応答を受信した時刻を記憶しておく。そして、捕捉部15は、通信装置2から送信されてきた確認応答を受信した場合、その確認応答を受信した時刻からその確認応答の直前に確認応答を受信した時刻を減算した値を、確認応答の受信間隔として算出する。そして、捕捉部15は、算出した受信間隔を擬似応答出力部17へ通知する。
また、捕捉部15は、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答が送信されてきたと判別した場合、その確認応答が出力されてきた時刻から送信時刻を減算した値をRTT(Round Trip Time)として算出する。そして、削除部12は、このRTTを擬似応答出力部17へ出力する。ここでいうRTTは、通信装置1が、1つのパケットデータを通信装置2へ送信してから、そのパケットデータに対して通信装置2が送信した確認応答を受信するまでの時間である。
目標レート決定部16は、データパケットがロスした旨が捕捉部15から通知されたかどうかに応じて、送信レートの目標値である目標レートRtargetを決定する。
目標レート決定部16は、データパケットがロスした旨とそのデータパケットのデータ識別番号とが捕捉部15から通知された場合、そのデータ識別番号と連続し、かつそのデータ識別番号よりも小さなデータ識別番号と対応付けて送信レート決定部13が記憶している送信レートを、目標レートRtargetとして決定する。
図4に示した例では、目標レート決定部16は、ロスしたデータパケットのデータ識別番号「3000」、「3100」と連続し、かつこれらのデータ識別番号よりも小さなデータ識別番号である「2900」と対応付けて記憶されている送信レートを、目標レートRtargetとして決定する。
また、目標レート決定部16は、データパケットがロスしていない旨が捕捉部15から通知された場合、通信装置2がデータパケットを1つ受信するごとに1つの確認応答を送信してきた際に受信間隔において到達する送信レートの最大値を、目標レートRtargetとして決定する。つまり、この場合、目標レート決定部16は、捕捉部15から通知された際に送信レート決定部13が記憶しているレート増加量fと受信間隔をデータパケットの送信間隔で除算した値との乗算値を算出する。そして、この乗算値と現在の送信レートRnowとを加算した値を、目標レートRtargetとして決定する。
なお、目標レート決定部16は、目標レートRtargetを決定した場合、現在の送信レートRnowを送信レート決定部13から読み出す。そして、目標レート決定部16は、決定した目標レートRtargetと、現在の送信レートRnowとを擬似応答出力部17へ通知する。
擬似応答出力部17は、図3に示したデータ管理情報171を記憶している。
また、擬似応答出力部17は、応答番号よりも大きな擬似応答番号を含む擬似応答と、通信装置2からの確認応答内の応答番号と同じ値の擬似応答番号を含む擬似応答との2種類の擬似応答を生成する。そして、擬似応答出力部17は、生成した擬似応答を削除部12へ出力する。
なお、応答番号よりも大きな擬似応答番号を含む擬似応答は、送信レート決定部13に送信レートを増大させるために用いられる。
また、応答番号と同じ値の擬似応答番号を含む擬似応答は、送信レート決定部13に送信レートを減少させるために用いられる。
まず、擬似応答出力部17が、応答番号よりも大きな擬似応答番号を含む擬似応答を生成するときの動作について説明する。
なお、擬似応答出力部17は、データパケットがロスしていない旨が捕捉部15から通知された場合、または送信レートを現在の送信レートRnowの「1/2」倍の値に変更した旨が送信レート決定部13から通知された場合、または送信レートを最小送信レートRminへ変更した旨が送信レート決定部13から通知された場合、応答番号よりも大きな擬似応答番号を含む擬似応答を生成する。
この場合、擬似応答出力部17は、目標レート決定部16から通知されてきた目標レートRtargetおよび現在の送信レートRnowと、再送制御部18がデータ管理情報171に書き込んだデータ識別番号とを用いて、擬似応答を生成する。
より具体的には、擬似応答出力部17は、データ管理情報171内のデータ識別番号を、擬似応答に書き込む。
また、擬似応答出力部17は、擬似応答へ書き込む擬似応答番号を決定する。本実施形態では、擬似応答出力部17は、擬似応答に書き込んだデータ識別番号と互いに連続するデータ識別番号同士の差分である「所定数」とを加算した値を、擬似応答番号として決定する。そして、擬似応答出力部17は、決定した擬似応答番号を擬似応答へ書き込むとともに、擬似応答に書き込んだデータ識別番号とその擬似応答に書き込んだ擬似応答番号との対応付をデータ管理情報171に書き込む。
なお、擬似応答出力部17は、データパケットがロスしていない旨が捕捉部15から通知された場合、次の確認応答が通信装置2から送信されてくるまでの間、データ送信部11がデータパケットを送信するごとに、その送信時刻から捕捉部15から出力されてきたRTTが経過した後に、擬似応答を生成して削除部12へ出力する。
つぎに、擬似応答出力部17が、通信装置2から送信されてきた確認応答内の応答番号と同じ値の擬似応答番号を含む擬似応答を生成するときの動作について説明する。
なお、擬似応答出力部17は、軽度の輻輳が発生した旨が捕捉部15から通知された場合、または重度の輻輳が発生した旨が捕捉部15から通知された場合、応答番号と同じ値の擬似応答番号を含む擬似応答を生成する。
この場合、擬似応答出力部17は、捕捉部15から出力されてきた確認応答に含まれている応答番号と同じ値を、擬似応答番号として擬似応答に書き込む。
なお、擬似応答出力部17は、所定の重複数(本実施形態では「3」)から通信装置2が送信してきた確認応答の数を減算した数と同数の擬似応答を生成する。つまり、擬似応答の数と確認応答の数との合計が所定の重複数となるように擬似応答を生成する。そして、擬似応答出力部17は、その擬似応答を削除部12へ出力する。
なお、擬似応答出力部17は、目標レート決定部16から通知されてきた目標レートRtargetおよび現在の送信レートRnowを用いて、擬似応答を出力するごとに送信レート決定部13が現在の送信レートRnowに加算するレート増加量fと、確認応答の受信間隔にて出力する擬似応答の数とを決定する。
本実施形態では、まず、擬似応答出力部17は、目標レートRtargetから、現在の送信レートRnowに「1/2」を乗じた値を減算した差分を算出する。そして、擬似応答出力部17は、この差分を、現在の送信レートRnowに「1/2」を乗じた値に基づいて定まる1つの確認応答を受信するごとに増加するレート増加量fで除算した値を、生成する擬似応答の数として決定する。なお、擬似応答出力部17は、除算して得られた値が整数でない場合、除算した値よりも小さな整数の最大値を擬似応答の数として決定する。
また、擬似応答出力部17は、捕捉部15から通知された確認応答の受信間隔を用いて、擬似応答を出力する「出力間隔」を決定する。本実施形態では、擬似応答出力部17は、確認応答の受信間隔を生成する擬似応答の数で除算した値を、擬似応答の出力間隔として決定する。
例えば、確認応答の受信間隔が「10秒」であり、擬似応答出力部17が生成する擬似応答の数が「10個」である場合、擬似応答の出力間隔は「1秒」である。
なお、軽度の輻輳が発生した旨が捕捉部15から通知された場合、擬似応答出力部17が応答番号と同じ値の擬似応答番号を含む擬似応答を削除部12へ出力するタイミングは、その通知がされた直後である。
また、擬似応答出力部17は、重度の輻輳が発生した旨が捕捉部15から通知された場合、捕捉部15が確認応答を書き換えて削除部12へ出力してから再送タイムアウト時間が経過した後に、擬似応答を削除部12へ出力する。
再送制御部18は、データ送信部11から出力されてきたデータパケットと、データパケット内のそのデータパケットに付与されたデータ識別番号との対応付を、未応答データ記憶部19へ書込む。これは、通信装置2が受信していないにも関わらず削除部12が擬似応答に応じて送信データ記憶部14から削除したデータパケットを再送できないことを回避するためである。
また、再送制御部18は、データ送信部11から出力されてきたデータパケットに含まれるデータ識別番号をデータ管理情報171へ書き込むとともに、そのデータ識別番号と対応付けて記憶されている送信データ削除フラグの値と未応答データ削除フラグの値と確認応答受信フラグの値とを「0」に設定する。例えば、データ送信部11がデータ識別番号「1000」〜「2000」が付与されたデータパケットを通信装置2へ送信した場合、再送制御部18は、各データ識別番号「1000」〜「2000」をデータ管理情報171へ書き込むとともに、各データ識別番号とそれぞれ対応付けて記憶されている各送信データ削除フラグの値と各未応答データ削除フラグの値と各確認応答受信フラグの値とを「0」に設定する。
また、再送制御部18は、捕捉部15から再送指示とデータ識別番号とが出力されてきた場合、そのデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを未応答データ記憶部19から読み出してデータ送信部11へ出力する。
また、再送制御部18は、未応答データ記憶部19が記憶しているデータパケットのうちから受信したと判別したデータパケットを削除する。
また、再送制御部18は、削除したデータパケットのデータ識別番号と対応付けて擬似応答出力部17内のデータ管理情報171に記憶されている未応答データ削除フラグの値を、「0」から「1」へ書き換える。
未応答データ記憶部19は、再送制御部18が書き込んだデータパケットと当該データパケットに付与されたデータ識別番号との対応付を記憶する。
つぎに、目標レート決定部16が目標レートRtargetを決定する方法について、詳細に説明する。なお、本発明では、目標レート決定部16は、この目標レートRtargetを、ネットワーク3の帯域の利用効率の向上や輻輳の回避を考慮して決定する。
図3に示した例では、通信装置1から送信されたデータ識別番号「1100」〜「3200」のデータパケットのうちデータ識別番号「3000」、「3100」のデータパケットが、ネットワーク3にてロスしている。そして、通信装置2は、データ識別番号「3200」のデータパケットを受信した後、確認応答を通信装置1へ送信している。
また、通信装置1は、通信装置2へ送信したデータパケットのロスが発生したかどうかに関わらず、ある確認応答を受信してからその確認応答の次に送信されてくる確認応答を受信するまでの間、擬似応答を用いて図4に示したように送信レートを変更している。なお、図4の例では、通信装置1から送信されたデータ識別番号「3000」、「3100」のデータパケットがネットワーク3においてロスしている。
そこで、本実施形態では、目標レート決定部16は、ロスしたこれらのデータパケットを送信した直前にデータパケットを送信したときの送信レート(すなわち、データ識別番号「2900」が付与されたデータパケットの送信レート)を、目標レートRtargetとして決定する。
これは、データパケットのロスが発生する直前に設定されていた送信レートが、通信装置2へデータパケットを送信した場合にネットワーク3を輻輳させない上限の送信レートと考えられるためである。
なお、目標レートRtargetとして用いる値については、特に限定しない。目標レートRtargetは、例えば、ロス直前の送信レートと定数α(0<α<1)とを乗算した値でもよい。また、目標レートRtargetは、過去のロス直前の送信レートの平均値でもよい。
また、目標レート決定部16は、データパケットがロスしていない旨が捕捉部15から通知された場合、次の確認応答が到着するまでに、通信装置2がデータパケットを1つ受信するごとに1つの確認応答を送信してきた場合にすべてのデータパケットが送信成功した場合に到達する送信レートを、目標レートRtargetとして決定する。
なお、通信装置2が、通信装置1から送信されてきたデータパケットを所定の個数X(X>1)だけ受信するごとに確認応答を送信する場合、または一定時間ごとに確認応答を送信する場合、通信装置2がデータパケットを1個だけ受信するごとに確認応答を通信装置1へ送信する場合よりも、ネットワーク3上のトラヒックの時間的変化に応じたデータパケットの送信レートの正確な制御を行うことが難しくなる。そこで、本発明では、削除部12が、ネットワーク3の状況に応じて擬似応答出力部17が生成した擬似応答を用いて、通信装置2へ送信されたデータパケットを処理する。これにより、通信装置1は、通信装置2から送信されてくる確認応答のみに基づいて送信レートを制御する場合よりも、送信レートを変更する頻度が多くなるように送信レートを制御する。
つぎに、通信装置1が、擬似応答を出力することにより送信レートを制御する動作について、図7〜9を参照して説明する。
図7〜9のそれぞれは、通信装置1が、ある確認応答を受信してから次の確認応答を受信するまで間の送信レートの変化の様子を示している。なお、図7は、確認応答に基づいてデータパケットがロスしたと判別した場合において、軽度の輻輳が発生したときの送信レートの変化を表している。また、図8は、確認応答に基づいてデータパケットがロスしたと判別した場合において、重度の輻輳が発生したときの送信レートの変化を表している。また、図9は、データパケットがロスしていないと判別した場合の送信レートの変化を表している。
まず、データパケットがロスしたと判別した場合において、軽度の輻輳が発生したと判別した際の動作について説明する。
この場合、通信装置1は、図7に示すように送信レートを、現在の送信レートRnowからその送信レートの「1/2」倍の値(=Rnow/2)へと減少させる。
そのために、通信装置1の擬似応答出力部17は、通信装置2から送信されてくる確認応答の数と、その確認応答内の応答番号と同じ番号の擬似応答番号を含む擬似応答の数との合計が所定の重複数(この例では「3」)となるような数だけ、擬似応答を生成して削除部12へ出力する。なお、擬似応答出力部17は、この擬似応答を、データパケットがロスしたと判別した直後のタイミングで削除部12へ出力する。
また、削除部12は、捕捉部15からの確認応答の数と、その確認応答内の応答番号と同じ値の擬似応答番号を含む擬似応答の数との合計が所定の重複数(この例では、「3」)以上となった場合、送信レートを現在の送信レートRnowの「1/2」倍に変更するよう指示するレート変更指示を送信レート決定部13へ出力する。
すると、送信レート決定部13は、送信レートを、現在の送信レートRnowの「1/2」倍の値に変更するとともに、その旨を擬似応答出力部17へ通知する。
続いて、通信装置1は、送信レートと目標レートRtargetとが同じ値とするように送信レートを制御する。
そのため、擬似応答出力部17は、再送制御部18から通知されたデータ識別番号を用いて、そのデータ識別番号よりも値が大きな擬似応答番号を含む確認応答を生成して削除部12へ出力する。
なお、擬似応答出力部17は、目標レートRtargetから現在の送信レートの「1/2」倍の値を減算した差分を求め、現在の送信レートの「1/2」倍の値から定める1つの確認応答を受信した場合に増加させるレート増加量fで除算した値を、生成する擬似応答の数として決定する。
また、擬似応答出力部17は、確認応答の受信間隔を擬似応答の数で除算した値を、擬似応答の出力間隔として決定する。図7に示した例では、擬似応答を削除部12で処理させて送信レート決定部13へデータパケットの成功を通知した時刻において、送信レートが更新されている。
つぎに、データパケットがロスしたと判別した場合において、重度の輻輳が発生したと判別した際の動作について説明する。
まず、通信装置1は、図8に示すように送信レートを最小送信レートRminへ変更する。
この場合、通信装置1は、再送タイムアウトを発生させる。より具体的には、擬似応答出力部17は、重度の輻輳が発生した旨が捕捉部15から通知された場合(つまり、連続してロスしたデータパケットの数が閾値よりも大きな場合)、捕捉部15が確認応答を書き換えて削除部12へ出力してから再送タイムアウト時間が経過した後に、擬似応答を削除部12へ出力する。
続いて、擬似応答出力部17は、目標レートRtargetと同じ値となるように送信レートを制御する。
そのため、擬似応答出力部17は、応答番号よりも大きな値を有する擬似応答番号を含む確認応答を生成する。
ただし、擬似応答出力部17は、再送タイムアウトの場合、現在の送信レートの「1/2」倍を閾値とする。そして、送信レートが閾値以下である場合、ACK受信毎に送信レートを2倍にする。また、送信レートが閾値よりも大きな場合、現在の送信レートに基づいて決定される増加量であることを考慮して、擬似応答の数と、擬似応答の出力間隔とを決定する。
また、データパケットがロスしていない場合、通信装置1は、図9に示すように送信レートを変化させる。
擬似応答出力部17は、次の確認応答が通信装置2から送信されてくるまでの間、データ送信部11がデータパケットを送信するごとに、その送信時刻からRTTが経過した後に、擬似応答を生成して削除部12へ出力する。
上述した例では、通信装置1が、データパケットの送信の成功時に送信レートを増加させ、失敗時に送信レートを減少させる制御方法を例に挙げて説明した。しかしながら、擬似応答を用いて送信レートを制御する方法は、上述した制御方法以外の制御方法(例えば、確認応答をトリガとして送信レートを制御している方法など)にも適用することが可能である。
つぎに、通信装置2の構成について、図10を参照して詳細に説明する。図10に示すように、通信装置2は、データ受信部21と、応答送信部22と、応答頻度決定部23と、受信データ記憶部24とを有する。
データ受信部21は、通信装置1から送信されてきたデータパケットを、受信データ記憶部24へ書き込む。また、データ受信部21は、そのデータパケット内の情報を応答送信部22へ通知する。
応答送信部22は、データ受信部21が受信したデータパケットに付与されたデータ識別番号を含む図6(a)に示したような確認応答を生成する。そして、応答送信部22は、確認応答を、応答頻度決定部23から通知される頻度に従って通信装置1へ送信する。
応答頻度決定部23は、通信装置2が通信装置1に確認応答を送信する頻度を決定して応答送信部22へ通知する。なお、通信装置2が確認応答を送信する頻度は、RFC(Request For Comment)1122に記載されている一般的な方法と同様に、データパケットをX個だけ受信するごとに確認応答を送信してもよく、一定周期ごとに確認応答を送信してもよい。応答頻度決定部23は、Xの値と、確認応答を送信する周期とを決定して応答送信部22へ通知する。
つぎに、上記構成を有する通信装置1がデータパケットの送信レートを制御する動作を、図11を参照して説明する。
まず、図11に示すステップ701にて、データ送信部11は、送信レート決定部13から通知された送信レートに従って、送信データ記憶部14から読み出したデータパケットを通信装置2へ送信する。なお、通信装置2は、通信装置1から送信されてきたデータパケットを所定の個数だけ受信した場合、または、一定時間が経過した場合、1つの確認応答を通信装置1へ送信する。
また、データ送信部11は、送信したデータパケットを再送制御部18へ出力する。また、データ送信部11は、データパケットを通信装置2へ送信した送信時刻とそのデータパケットのデータ識別番号との対応付を、削除部12と捕捉部15とへ出力する。なお、削除部12および捕捉部15のそれぞれは、データ送信部11から出力されてきた送信時刻とその送信時刻に送信されたデータパケットのデータ識別番号との対応付を記憶する。
さらに、データ送信部11は、通信装置2へ送信したデータパケットに付与されたデータ識別番号とそのデータパケットの送信レートとの対応付を、送信レート決定部13へ出力する。すると、送信レート決定部13は、データ送信部11から出力されてきたデータ識別番号と送信レートとの対応付を記憶する。
続いて、ステップ702にて、再送制御部18は、そのデータパケットとそのデータパケットに付与されたデータ識別番号との対応付を、未応答データ記憶部19へ書き込む。
また、再送制御部18は、データ送信部11から出力されてきたデータパケットに含まれるデータ識別番号をデータ管理情報171へ書き込むとともに、そのデータ識別番号と対応付けて記憶されている送信データ削除フラグの値と未応答データ削除フラグの値と確認応答受信フラグの値とを「0」に設定する。
その後、ステップ703にて、捕捉部15は、データ送信部11から出力されてきた送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を通信装置2から受信したかどうかを判別している。
そして、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を受信したと判別した場合、捕捉部15は、その確認応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータ管理情報171内の確認応答受信フラグを、「0」から「1」に書き換える。また、捕捉部15は、通信装置2から送信されてきた確認応答を受信した場合、その確認応答を受信した時刻からその確認応答の直前に確認応答を受信した時刻を減算した値を、確認応答の受信間隔として算出して擬似応答出力部17へ通知する。
さらに、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を通信装置2から受信した場合、ステップ704にて、捕捉部15は、その間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数と、「所定の重複数」とを比較する。
そして、捕捉部15は、比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数未満である場合、その送信時刻と対応付けて記憶しているデータ識別番号のデータパケットがロスしていないと判別する。この場合、捕捉部15は、データパケットがロスしていない旨を目標レート決定部16と擬似応答出力部17とへ通知する。
さらに、ロスしていないと判別した際、捕捉部15は、その確認応答の受信時に書き換えた確認応答受信フラグと対応付けて記憶されている送信データ削除フラグの値が「0」である場合、その確認応答を削除部12へ出力する。
その後、ステップ705にて、目標レート決定部16は、データパケットがロスしていない旨が捕捉部15から通知された場合、次の確認応答が到着するまでに通信装置2がデータパケットを1つ受信するごとに1つの確認応答を送信してきた場合にすべてのデータパケットの送信に成功した場合に到達する送信レートを、目標レートRtargetとして決定する。続いて、目標レート決定部16は、現在の送信レートRnowを送信レート決定部13から読み出す。そして、目標レート決定部16は、決定した目標レートRtargetと、現在の送信レートRnowとを擬似応答出力部17へ通知する。
すると、ステップ706にて、擬似応答出力部17は、目標レート決定部16から通知された現在の送信レートRnowおよび目標レートRtargetと、捕捉部15から出力されてきた受信間隔とに基づいて、擬似応答の出力間隔を決定する。
そして、擬似応答出力部17は、擬似応答を生成する。続いて、ステップ707にて、擬似応答出力部17は、決定した出力間隔ごとに、生成した擬似応答を削除部12へ出力する。
すると、削除部12は、この擬似応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを送信データ記憶部14から削除する。また、この場合、削除部12は、データパケットを送信データ記憶部14から削除した旨を送信レート決定部13へ通知する。さらに、削除部12は、削除したデータパケットのデータ識別番号と対応付けて記憶されているデータ管理情報171内の送信データ削除フラグを、「0」から「1」へ書き換える。
すると、ステップ708にて、送信レート決定部13は、データパケットの送信レートを、記憶している現在の送信レートRnowと所定のレート増加量fとを加算した値に変更する。なお、本実施形態では、送信レート決定部13は、データパケットを削除した旨が削除部12から通知された際に記憶している現在の送信レートRnowが所定の基準送信レート以下である場合、レート増加量fを現在の送信レートRnowと同じ値とする。また、送信レート決定部13は、現在の送信レートRnowが基準送信レートよりも大きな場合、レート増加量fを、「1/(現在の送信レートRnow)」倍とする。
一方、ステップ703にて送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を通信装置2から受信していないと判別した場合、捕捉部15は、データパケットがロスしたと判別する。そして、捕捉部15は、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部16へ通知する。
なお、送信時刻から再送タイムアウト時間が経過する間に確認応答が送信されてこなかったためにロスしたと判別されたデータパケットのデータ識別番号を含む確認応答が再送タイムアウト時間の経過後に送信されてきた場合、捕捉部15は、その確認応答に含まれている応答番号を擬似応答番号の最大値へ書き換えて、擬似応答番号を含む確認応答を削除部12へ出力する。
また、ステップ704における比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数以上である場合にも、捕捉部15は、データパケットがロスしたと判別する。そして、捕捉部15は、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部16へ通知する。
なお、データパケットがロスしたと判別した場合、通信装置1は、ステップ709〜711の処理を実行し、データパケットの再送制御を行う。
この場合、捕捉部15は、ロスしたと判別したデータパケットのデータ識別番号と対応付けて記憶されているデータ管理情報171内の送信データ削除フラグの値が「1」であり、かつそのデータ識別番号と対応付けて記憶されているデータ管理情報171内の確認応答受信フラグの値が「0」であるかどうかを判別する。
そして、ロスしたと判別されたデータパケットのデータ識別番号と対応付けて記憶されている送信データ削除フラグの値が「1」であり、かつそのデータ識別番号と対応付けて記憶されている確認応答受信フラグの値が「0」である場合、ステップ709にて、捕捉部15は、データ管理情報171に記憶されている擬似応答番号の最大値と、ロスしたデータパケットのデータ識別番号とを比較する。
比較の結果、そのデータ識別番号が擬似応答番号の最大値よりも大きな場合、捕捉部15は、確認応答内の応答番号をデータ管理情報171に記憶されている擬似応答番号の最大値へ書き換え、この擬似応答番号を含む確認応答を削除部12へ出力する。
また、この場合、捕捉部15は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを削除部12へ出力する。すると、削除部12は、データ送信部11に対して、そのデータ識別番号と再送指示とを出力する。
そして、ステップ710にて、データ送信部11は、削除部12から出力されてきたデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを送信データ記憶部14から読み出して、送信レート決定部13から通知された送信レートに従って通信装置2へ送信する。
一方、ステップ709における比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値以下である場合、捕捉部15は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを再送制御部18へ出力する。
すると、再送制御部18は、このデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを未応答データ記憶部19から読み出してデータ送信部11へ出力する。そして、ステップ711にて、データ送信部11は、再送制御部18から出力されてきたデータパケットを通信装置2へ送信する。
また、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値以下である場合、捕捉部15は、通信装置2から送信されてきた確認応答に含まれている応答番号を、データ管理情報171に記憶されている擬似応答番号の最大値へ書き換える。また、捕捉部15は、確認応答内のデータ識別番号のうち擬似応答番号の最大値よりも小さなデータ識別番号を削除する。そして、捕捉部15は、その確認応答を、削除部12へ出力する。
その後、ステップ712にて、目標レート決定部16は、データパケットがロスした旨とそのデータパケットのデータ識別番号とが捕捉部15から通知された場合、そのデータ識別番号と互いに連続し、かつそのデータ識別番号よりも小さなデータ識別番号と対応付けて送信レート決定部13が記憶している送信レートを、目標レートRtargetとして決定する。また、目標レート決定部16は、現在の送信レートRnowを送信レート決定部13から読み出す。そして、目標レート決定部16は、決定した目標レートRtargetと、送信レート決定部13から読み出した現在の送信レートRnowとを擬似応答出力部17へ通知する。
続いて、捕捉部15は、連続してロスしたデータパケットの個数である連続ロス数をカウントする。そして、ステップ713にて、捕捉部15は、カウントした連続ロス数と、所定の閾値とを比較する。
この比較の結果、カウントした連続ロス数が所定の閾値以下である場合、捕捉部15は、軽度の輻輳が発生した旨を擬似応答出力部17へ通知する。
また、カウントした連続ロス数が所定の閾値よりも大きな場合、捕捉部15は、重度の輻輳が発生した旨を擬似応答出力部17へ通知する。
すると、ステップ714にて、擬似応答出力部17は、目標レート決定部16から通知された現在の送信レートRnowおよび目標レートRtargetと、捕捉部15から重度の輻輳が発生した旨が通知されたかどうかと、捕捉部15から出力されてきた確認応答の受信間隔とに基づいて、擬似応答の出力間隔を決定する。
そして、擬似応答出力部17は、擬似応答を生成する。続いて、ステップ715にて、擬似応答出力部17は、決定した出力間隔ごとに、生成した擬似応答を削除部12へ出力する。
なお、ステップ713の比較結果に応じて軽度の輻輳が発生した旨が捕捉部15から通知された場合、ステップ715にて擬似応答出力部17が応答番号と同じ番号の擬似応答番号を含む擬似応答を削除部12へ出力するタイミングは、その通知がされた直後である。
この場合、削除部12は、捕捉部15から出力されてきた確認応答の数と、その確認応答内の応答番号と同じ値の擬似応答番号を含む擬似応答の数との合計が所定の重複数以上となった際、送信レートを、現在の送信レートRnowの「1/2」倍に変更するよう指示するレート変更指示を送信レート決定部13へ出力する。
すると、ステップ708にて、送信レート決定部13は、送信レートを現在の送信レートRnowの「1/2」倍の値に変更するとともに、その旨を擬似応答出力部17へ通知する。
一方、ステップ713の比較結果に応じて重度の輻輳が発生した旨が捕捉部15から通知された場合、ステップ715にて、擬似応答出力部17は、捕捉部15が確認応答を書き換えて削除部12へ出力してから再送タイムアウト時間が経過した後に、擬似応答を削除部12へ出力する。
すると、削除部12は、送信レートを、現在の送信レートRnowから最小送信レートRminに変更するよう指示するレート変更指示を送信レート決定部13へ出力する。
そして、ステップ708にて、送信レート決定部13は、送信レートを、現在の送信レートRnowから最小送信レートRminへ変更するとともに、その旨を擬似応答出力部17へ通知する。以上で、通信装置1がデータパケットの送信レートを制御する一連の動作が終了する。
以上説明したように、本発明の実施形態1によれば、通信装置2が確認応答を送信する頻度が少ない場合でも、ネットワーク3上のトラヒックの時間的変化に応じたデータパケットの送信レートの正確な制御を行うことができ、ひいてはネットワーク3の輻輳への対応の遅れを抑制することやネットワーク3の利用効率の低下を回避することが可能となる。
(実施形態2)
つぎに、実施形態2の通信システムについて説明する。
図12に示すように、実施形態2の通信システムは、通信装置4と、通信装置5と、擬似応答装置6とから構成されている。
本実施形態では、通信装置4は、パケットを一意に識別するためのシーケンス番号を含んだデータパケットを送信する。
また、通信装置5は、TCP SACKオプションと同様、次に受信を期待するシーケンス番号であるACK番号と、受信したデータパケットのシーケンス番号とを含む確認応答を通信装置4へ送信する。なお、通信装置5は、所定の個数(例えば、100個)のデータパケットを受信した場合、および、一定時間が経過した場合、1つの確認応答を擬似応答装置6を介して通信装置4へ送信する。
擬似応答装置6は、通信装置4から送信されてきたデータパケットを、そのデータパケットに対する確認応答(ACK)が通信装置5から送信されてくるまで記憶しておく。また、擬似応答装置6は、その確認応答に含まれるデータパケットの受信が成功したかどうかを示す情報に基づいて、輻輳を回避しつつ帯域を有効に活用することが可能な帯域を目標レートRtargetとして設定する。そして、擬似応答装置6は、送信レートを目標レートRtargetと同じとするための擬似応答を生成して通信装置4へ送信する。すると、通信装置4は、通信装置5に対するデータパケットの送信レートを変更する。
通信装置4の構成は、図14に示した通信装置800と同じ構成である。また、通信装置5の構成は、図14に示した通信装置900と同じ構成である。
また、図12に示すように、擬似応答装置6は、データ捕捉部61と、捕捉部62と、再送制御部63と、未応答データ記憶部64と、目標レート決定部65と、擬似応答出力部66とを有する。
データ捕捉部61は、通信装置4から送信されてきたデータパケットをその「宛先」である通信装置5へ転送するとともに、そのデータパケットを再送制御部63へ出力する。
また、データ捕捉部61は、データパケットを通信装置5へ転送した送信時刻とそのデータパケットのデータ識別番号との対応付を、捕捉部62へ出力する。
また、データ捕捉部61は、データパケットの送信レートを測定する測定周期ごとに、当該測定周期において通信装置4から送信されてきたデータパケットのデータ量に基づいて、データパケットの送信レートを測定する。そして、データ捕捉部61は、測定した送信レートと、データパケットに含まれているデータ識別番号とを対応付けて記憶する。
また、データ捕捉部61は、測定したうちで最新の送信レートを、現在の送信レートRnowとして記憶する。
また、データ捕捉部61は、軽度の輻輳が発生した旨が捕捉部62から通知された場合、その通知後に測定した送信レートが、その通知の際に記憶していた現在の送信レートRnowの「1/2」倍の値であるかどうかを判別する。そして、測定した送信レートが現在の送信レートRnowの「1/2」倍の値であると判別した場合、データ捕捉部61は、その旨を擬似応答出力部66へ通知する。
また、データ捕捉部61は、確認応答の受信間隔と同じ間隔で1つずつデータパケットを送信するときの送信レートである最小送信レートRminを記憶している。
そして、データ捕捉部61は、重度の輻輳が発生した旨が捕捉部62から通知された場合、その通知後に測定した送信レートが最小送信レートRminであるかどうかを判別する。測定した送信レートが最小送信レートRminと同じであると判別した場合、データ捕捉部61は、その旨を擬似応答出力部66へ通知する。
捕捉部62は、データ捕捉部61から出力されてきたデータパケットのデータ識別番号とそのデータパケットの送信時刻との対応付を記憶する。
また、捕捉部62は、通信装置5から送信されてきた確認応答を受信した場合、その確認応答内のデータ識別番号と同じデータ識別番号と対応付けて擬似応答出力部66に記憶されている図13に示すデータ管理情報661内の確認応答受信フラグを、「0」から「1」に書き換える。
なお、本実施形態では、データ管理情報661内の確認応答受信フラグは、その値が「0」である場合、確認応答を捕捉部62が通信装置5から受信していないことを示し、その値が「1」である場合、確認応答を捕捉部62が通信装置5から受信したことを示す。
また、本実施形態では、データ管理情報661内の未応答データ削除フラグは、その値が「0」である場合、データパケットが再送制御部63により未応答データ記憶部64から削除されていないことを示し、その値が「1」である場合、データパケットが再送制御部63により未応答データ記憶部64から削除されたことを示す。
また、捕捉部62は、通信装置5から送信されてきた確認応答内のデータ識別番号に基づいて、通信装置5へ送信したデータパケットがロスしたかどうかを判別する。
より具体的には、捕捉部62は、データ捕捉部61から送信時刻が出力されてきた場合、その送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶されているデータ識別番号を含む確認応答を通信装置5から受信したかどうかを判別する。
そして、捕捉部62は、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を受信したと判別した場合、その間に通信装置5から送信されてきた同じ応答番号をそれぞれ含む確認応答の数と、「所定の重複数」とを比較する。
そして、捕捉部62は、比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数未満である場合、データパケットがロスしていないと判別し、その旨を目標レート決定部65と擬似応答出力部66とへ通知する。また、この場合、捕捉部15は、その確認応答を通信装置4へ送信する。
また、捕捉部62は、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数以上である場合、データパケットがロスしたと判別する。
また、捕捉部62は、データ捕捉部61から出力されてきた送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶されているデータ管理情報661内のデータ識別番号を含む確認応答が送信されてきていないと判別した場合、そのデータ識別番号が付与されたデータパケットがロスしたと判別する。
なお、捕捉部62は、ロスしたと判別されたデータパケットのデータ識別番号を含む確認応答が、再送タイムアウト時間が経過した後に送信されてきた場合、その確認応答に含まれている応答番号を擬似応答番号の最大値へ書き換えて、擬似応答番号を含む確認応答を通信装置4の応答受信部42へ送信する。
なお、捕捉部62は、データパケットがロスしたと判別した場合、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部65へ通知する。
また、捕捉部62は、データパケットがロスしたと判別した場合、そのデータパケットのデータ識別番号と対応付けて記憶されている管理情報661内の確認応答受信フラグの値が「0」であるかどうかを判別する。
そして、ロスしたと判別されたデータ識別番号と対応付けて記憶されている確認応答受信フラグの値が「0」であると判別した場合、捕捉部62は、データ管理情報661に記憶されている擬似応答番号の最大値と、ロスしたデータパケットのデータ識別番号とを比較する。
比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも小さな場合、捕捉部62は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを再送制御部63へ出力する。
また、捕捉部62は、通信装置5から送信されてきた確認応答に含まれている応答番号を擬似応答番号の最大値へ書き換える。さらに、捕捉部62は、確認応答内のデータ識別番号のうち擬似応答番号の最大値よりも小さなデータ識別番号を削除する。そして、捕捉部62は、その確認応答を通信装置4へ送信する。
また、比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも大きな場合、捕捉部62は、通信装置5から送信されてきた確認応答内の応答番号を擬似応答番号の最大値へ書き換える。そして、捕捉部62は、この擬似応答番号を含む確認応答を通信装置4へ送信する。
さらに、捕捉部62は、データパケットがロスしたと判別した場合、連続してロスしたデータパケットの個数である連続ロス数をカウントし、連続ロス数と所定の閾値とを比較する。比較の結果、連続ロス数が所定の閾値以下である場合、捕捉部62は、軽度の輻輳が発生した旨をデータ捕捉部61と擬似応答出力部66とへ通知する。また、連続ロス数が所定の閾値よりも大きな場合、捕捉部62は、重度の輻輳が発生した旨をデータ捕捉部61と擬似応答出力部66とへ通知する。
また、捕捉部62は、通信装置5から送信されてきた確認応答を受信した時刻を記憶しておく。そして、捕捉部62は、確認応答の受信間隔を算出して擬似応答出力部66へ通知する。
再送制御部63は、データ捕捉部61から出力されてきたデータパケットと、データパケット内のそのデータパケットに付与されたデータ識別番号との対応付を、未応答データ記憶部64へ書込む。
また、再送制御部63は、データ捕捉部61から出力されてきたデータパケットのデータ識別番号をデータ管理情報661へ書き込むとともに、そのデータ識別番号と対応付けて記憶されている未応答データ削除フラグの値と確認応答受信フラグの値とを「0」に設定する。
また、再送制御部63は、捕捉部62から再送指示とデータ識別番号とが出力されてきた場合、そのデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを未応答データ記憶部64から読み出して通信装置5へ送信する。
また、再送制御部63は、未応答データ記憶部64が記憶しているデータパケットのうちから受信したと判別したデータパケットを削除する。また、再送制御部63は、削除したデータパケットのデータ識別番号と対応付けてデータ管理情報661に記憶されている未応答データ削除フラグを、「0」から「1」へ書き換える。
未応答データ記憶部64は、再送制御部63が書き込んだデータパケットと当該データパケットに付与されたデータ識別番号との対応付を記憶する。
目標レート決定部65は、データパケットがロスした旨とそのデータパケットのデータ識別番号とが捕捉部62から通知された場合、そのデータ識別番号と連続し、かつそのデータ識別番号よりも小さなデータ識別番号と対応付けてデータ捕捉部61が記憶している送信レートを、目標レートRtargetとして決定する。
また、目標レート決定部65は、データパケットがロスしていない旨が捕捉部62から通知された場合、次の確認応答が到着するまでに通信装置5がデータパケットを1つ受信するごとに1つの確認応答を送信してきた場合にすべてのデータパケットの送信に成功したときに到達する送信レートを、目標レートRtargetとして決定する。
なお、目標レート決定部65は、目標レートRtargetを決定した場合、現在の送信レートRnowをデータ捕捉部61から読み出す。そして、目標レート決定部65は、決定した目標レートRtargetと、現在の送信レートRnowとを擬似応答出力部66へ通知する。
擬似応答出力部66は、図13に示したデータ管理情報661を記憶している。
また、擬似応答出力部66は、応答番号よりも大きな擬似応答番号を含む擬似応答と、応答番号と同じ値の擬似応答番号を含む擬似応答との2種類の擬似応答を生成する。そして、擬似応答出力部66は、生成した擬似応答を通信装置4の応答受信部42へ送信する。
擬似応答出力部66は、データパケットがロスしていない旨が捕捉部62から通知された場合、または測定した送信レートが現在の送信レートRnowの「1/2」倍の値である旨がデータ捕捉部61から通知された場合、または測定した送信レートが最小送信レートRminである旨がデータ捕捉部61から通知された場合、応答番号よりも大きな擬似応答番号を含む擬似応答を生成する。
この場合、擬似応答出力部66は、目標レート決定部65から通知された目標レートRtargetおよび現在の送信レートRnowと、再送制御部63がデータ管理情報661に書き込んだデータ識別番号とを用いて、擬似応答を生成する。
より具体的には、擬似応答出力部66は、再送制御部63が書き込んだデータ管理情報661内のデータ識別番号を、擬似応答に書き込む。また、擬似応答出力部66は、擬似応答に書き込んだデータ識別番号と所定数とを加算した値を、擬似応答番号として擬似応答に書き込む。さらに、擬似応答出力部66は、擬似応答に書き込んだデータ識別番号とその擬似応答に書き込んだ擬似応答番号との対応付をデータ管理情報661に書き込む。
なお、擬似応答出力部66は、データパケットがロスしていない旨が捕捉部62から通知された場合、次の確認応答が通信装置2から送信されてくるまでの間、データ捕捉部61が通信装置5へデータパケットを送信するごとに、その送信時刻から捕捉部62から出力されてきたRTTが経過した後に、擬似応答を生成して通信装置4へ送信する。
また、擬似応答出力部66は、軽度の輻輳が発生した旨が捕捉部62から通知された場合、または重度の輻輳が発生した旨が捕捉部62から通知された場合、通信装置5から送信されてきた確認応答内の応答番号と同じ値の擬似応答番号を含む擬似応答を生成する。
この場合、擬似応答出力部66は、捕捉部62から出力されてきた確認応答に含まれている応答番号と同じ値を、擬似応答番号として擬似応答に書き込む。なお、擬似応答出力部66は、所定の重複数(本実施形態では「3」)から通信装置5が送信してきた確認応答の数を減算した数の擬似応答を生成して通信装置4へ送信する。
なお、擬似応答出力部66は、目標レート決定部65から通知されてきた目標レートRtargetおよび現在の送信レートRnowを用いて、確認応答の受信間隔において生成する擬似応答の数を決定する。
本実施形態では、まず、擬似応答出力部66は、目標レートRtargetから、現在の送信レートRnowに「1/2」を乗じた値を減算した差分を算出する。そして、擬似応答出力部66は、この差分を、現在の送信レートRnowに「1/2」を乗じた値に基づいて定まる1つの確認応答を受信するごとに増加するレート増加量fで除算した値を、生成する擬似応答の数として決定する。
また、擬似応答出力部66は、捕捉部62から通知された確認応答の受信間隔を用いて、擬似応答を通信装置4へ送信する「出力間隔」を決定する。本実施形態では、擬似応答出力部66は、確認応答の受信間隔を生成する擬似応答の数で除算した値を、この出力間隔として決定する。
なお、軽度の輻輳が発生した旨が捕捉部62から通知された場合、擬似応答出力部66が応答番号と同じ値の擬似応答番号を含む擬似応答を通信装置4へ送信するタイミングは、その通知がされた直後である。
また、擬似応答出力部66は、重度の輻輳が発生した旨が捕捉部62から通知された場合、捕捉部62が確認応答を書き換えて通信装置4へ送信してから再送タイムアウト時間が経過した後に、擬似応答を通信装置4へ送信する。
つぎに、擬似応答装置6が擬似応答を出力する動作を、図14を参照して説明する。
図14に示すステップ751にて、まず、データ捕捉部61は、通信装置4から送信されてきたデータパケットをその宛先である通信装置5へ転送するとともに、そのデータパケットを再送制御部63へ出力する。
また、データ捕捉部61は、データパケットを通信装置5へ転送した送信時刻とそのデータパケットのデータ識別番号との対応付を、捕捉部62へ出力する。
また、データ捕捉部61は、所定の測定周期ごとに、測定周期にて通信装置4から送信されてきたデータパケットのデータ量に基づいて、データパケットの送信レートを測定する。そして、データ捕捉部61は、測定した送信レートと、データパケットに含まれているデータ識別番号とを対応付けて記憶する。
また、データ捕捉部61は、測定したうちで最新の送信レートを、現在の送信レートRnowとして記憶する。
その後、ステップ752にて、再送制御部63は、データ捕捉部61から出力されてきたデータパケットと、データパケットに含まれるそのデータパケットに付与されたデータ識別番号との対応付を、未応答データ記憶部64へ書込む。
また、再送制御部63は、データ捕捉部61から出力されてきたデータパケットのデータ識別番号をデータ管理情報661へ書き込むとともに、そのデータ識別番号と対応付けて記憶されている未応答データ削除フラグの値と確認応答受信フラグの値とを「0」に設定する。
続いて、ステップ753にて、捕捉部62は、データ捕捉部61から出力されてきた送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を通信装置5から受信したかどうかを判別している。
そして、送信時刻から再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答を通信装置5から受信したと判別した場合、ステップ754にて、捕捉部62は、その間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数と、所定の重複数とを比較する。
そして、捕捉部62は、比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数未満である場合、その送信時刻と対応付けて記憶されているデータ管理情報661内のデータ識別番号のデータパケットがロスしていないと判別する。この場合、捕捉部62は、データパケットがロスしていない旨を目標レート決定部65と擬似応答出力部66とへ通知する。さらに、この場合、捕捉部62は、その確認応答を通信装置4へ送信する。
なお、捕捉部62は、通信装置2から送信されてきた確認応答を受信した場合、その確認応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータ管理情報661内の確認応答受信フラグを、「0」から「1」へ書き換える。また、捕捉部62は、通信装置5から送信されてきた確認応答を受信した時刻を記憶しておく。そして、捕捉部62は、確認応答の受信間隔を算出して擬似応答出力部66へ通知する。
その後、ステップ755にて、目標レート決定部65は、データパケットがロスしていない旨が捕捉部62から通知された場合、次の確認応答が到着するまでに通信装置5がデータパケットを1つ受信するごとに確認応答を送信してきた場合にすべてのデータパケットの送信に成功したときに到達する送信レートを、目標レートRtargetとして決定する。続いて、目標レート決定部65は、現在の送信レートRnowをデータ捕捉部61から読み出す。そして、目標レート決定部65は、決定した目標レートRtargetと、現在の送信レートRnowとを擬似応答出力部66へ通知する。
すると、ステップ756にて、擬似応答出力部66は、目標レート決定部65から通知された現在の送信レートRnowおよび目標レートRtargetと、捕捉部62から出力されてきた受信間隔とに基づいて、擬似応答を通信装置4へ送信する出力間隔を決定する。
そして、擬似応答出力部66は、擬似応答を生成する。続いて、ステップ757にて、擬似応答出力部66は、決定した出力間隔ごとに、生成した擬似応答を通信装置4の応答受信部42へ送信する。なお、通信装置4は、この擬似応答内のデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを送信データ記憶部44から削除する。また、この場合、通信装置4の送信レート決定部43は、データパケットの送信レートを変更する。
一方、ステップ753にて送信時刻から所定の再送タイムアウト時間が経過する間に、その送信時刻と対応付けて記憶しているデータ識別番号を含む確認応答が通信装置5から受信しなかったと判別した場合、捕捉部62は、パケットロスが発生したと判別する。そして、捕捉部62は、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部65へ通知する。
なお、送信時刻から再送タイムアウト時間が経過する間に確認応答が送信されてこなかったためにロスしたと判別されたデータパケットのデータ識別番号を含む確認応答が再送タイムアウト時間の経過後に送信されてきた場合、捕捉部62は、その確認応答に含まれている応答番号を擬似応答番号の最大値へ書き換えて、擬似応答番号を含む確認応答を通信装置4へ転送する。
また、ステップ754における比較の結果、送信時刻から再送タイムアウト時間が経過する間に送信されてきた同じ応答番号をそれぞれ含む確認応答の数が所定の重複数以上である場合にも、捕捉部62は、パケットロスが発生したと判別する。そして、捕捉部62は、その旨と、そのデータパケットのデータ識別番号とを目標レート決定部65へ通知する。
なお、データパケットがロスしたと判別した場合、擬似応答装置6は、ステップ758〜759の処理を実行し、データパケットの再送を行う。
この場合、捕捉部62は、ロスしたと判別したデータパケットのデータ識別番号と同じデータ識別番号と対応付けて記憶されている管理情報661内の確認応答受信フラグの値が「0」であるかどうかを判別する。この確認応答受信フラグの値が「0」であると判別した場合、ステップ758にて、捕捉部62は、データ管理情報661に記憶されている擬似応答番号の最大値と、ロスしたデータパケットのデータ識別番号とを比較する。
比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも大きな場合、捕捉部62は、通信装置5から送信されてきた確認応答内の応答番号を擬似応答番号の最大値へ書き換えて、この擬似応答番号を含む確認応答を通信装置4へ送信する。
一方、ステップ758における比較の結果、ロスしたデータパケットのデータ識別番号が擬似応答番号の最大値よりも小さな場合、捕捉部62は、そのデータ識別番号と、当該データ識別番号が付与されたデータパケットの再送を指示する再送指示とを再送制御部63へ出力する。
すると、再送制御部63は、このデータ識別番号と同じデータ識別番号と対応付けて記憶されているデータパケットを未応答データ記憶部64から読み出す。そして、ステップ759にて、再送制御部63は、読み出したデータパケットを通信装置5へ送信する。
さらに、この場合、捕捉部62は、通信装置2から送信されてきた確認応答に含まれている応答番号を擬似応答番号の最大値へ書き換える。また、捕捉部15は、確認応答内のデータ識別番号のうち擬似応答番号の最大値よりも小さなデータ識別番号を削除する。そして、捕捉部62は、その確認応答を通信装置4へ送信する。
その後、ステップ760にて、目標レート決定部65は、データパケットがロスした旨とそのデータパケットのデータ識別番号とが捕捉部62から通知された場合、そのデータ識別番号と連続し、かつそのデータ識別番号よりも小さなデータ識別番号と対応付けてデータ捕捉部61が記憶している送信レートを、目標レートRtargetとして決定する。また、目標レート決定部65は、現在の送信レートRnowをデータ捕捉部61から読み出し、決定した目標レートRtargetと現在の送信レートRnowとを擬似応答出力部66へ通知する。
続いて、捕捉部62は、連続してロスしたデータパケットの個数である連続ロス数をカウントする。そして、ステップ761にて、捕捉部62は、連続ロス数と所定の閾値とを比較する。この比較の結果、連続ロス数が所定の閾値以下である場合、捕捉部15は、軽度の輻輳が発生した旨をデータ捕捉部61と擬似応答出力部66とへ通知する。また、連続ロス数が所定の閾値よりも大きな場合、捕捉部15は、重度の輻輳が発生した旨をデータ捕捉部61と擬似応答出力部66とへ通知する。
すると、ステップ762にて、擬似応答出力部66は、目標レート決定部16から通知された現在の送信レートRnowおよび目標レートRtargetと、捕捉部15から重度の輻輳が発生した旨が通知されたかどうかと、捕捉部62から出力されてきた確認応答の受信間隔とに基づいて、擬似応答の出力間隔を決定する。
そして、擬似応答出力部66は、擬似応答を生成する。続いて、ステップ763にて、擬似応答出力部66は、決定した出力間隔ごとに、生成した擬似応答を通信装置4へ送信する。
なお、ステップ761の比較結果に応じて軽度の輻輳が発生した旨が捕捉部62から通知された場合、ステップ763にて擬似応答出力部66が応答番号と同じ値の擬似応答番号を含む擬似応答を通信装置4へ送信するタイミングは、その通知がされた直後である。
一方、ステップ761の比較結果に応じて重度の輻輳が発生した旨が捕捉部62から通知された場合、ステップ763にて、擬似応答出力部66は、捕捉部62が確認応答を書き換えて通信装置4へ送信してから再送タイムアウト時間が経過した後に、擬似応答を通信装置4へ送信する。以上で、擬似応答装置6が擬似応答を出力する一連の動作が終了する。
以上説明したように、実施形態2によれば、通信装置5が確認応答を送信する頻度が少ない場合でも、通信装置4がトラヒックの時間的変化に応じたデータパケットの送信レートの正確な制御を行うことができる。
また、実施形態2によれば、一般的な構成を有する通信装置4と通信装置5とに接続された擬似応答装置6が、擬似応答を生成して通信装置4へ送信する。そして、通信装置4が、この擬似応答を用いて、データパケットを送信する送信レートを制御する。これにより、通信装置4が有する構成の変更を伴うことなく、本発明を一般的な通信システムに容易に適用することが可能である。
なお、本発明においては、通信装置1内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、通信装置1として動作させるコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをそのコンピュータに読み込ませ、実行するものであってもよい。通信装置1として動作させるコンピュータにて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、そのコンピュータに内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、通信装置1として動作させるコンピュータが有する擬似応答出力部17として動作するプロセッサにて読み込まれ、そのプロセッサの制御によって、上述したものと同様の処理が行われる。
ここで、擬似応答出力部17として動作するプロセッサは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するものである。なお、上述のプログラムは、擬似応答装置6についても同様に適用可能である。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。
1、2、4、5 通信装置
3 ネットワーク
6 擬似応答装置
11 データ送信部
12 削除部
13 送信レート決定部
14 送信データ記憶部
15 捕捉部
16 目標レート決定部
17 擬似応答出力部
171 データ管理情報
18 再送制御部
19 未応答データ記憶部
61 データ捕捉部
62 捕捉部
63 再送制御部
64 未応答データ記憶部
65 目標レート決定部
66 擬似応答出力部
661 データ管理情報

Claims (33)

  1. データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置であって
    記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを記憶する送信レート決定部と、
    前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定部と、
    前記確認応答を受信した際に前記送信レート決定部が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力部とを有し、
    前記送信レート決定部は、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力部が決定したレート増加量だけ増大させる通信装置。
  2. 請求項1記載の通信装置において、
    前記データパケットと、該データパケットに付与された前記データ識別番号とを対応付けて記憶する送信データ記憶部と、
    前記送信データ記憶部から読み出したデータパケットを送信するデータ送信部と、
    前記データ送信部が送信した前記データパケットと、該データパケットに付与された前記データ識別番号とを対応付けて記憶する未応答データ記憶部と、
    前記データ送信部が送信した前記データパケットに付与された前記データ識別番号が含まれた前記確認応答を受信した場合、または、該データ識別番号を含む前記擬似応答が前記擬似応答出力部から出力されてきた場合、該データ識別番号と対応付けて記憶されている前記データパケットを前記送信データ記憶部から削除する削除部と、
    前記データ送信部が送信したデータ識別番号を含む前記確認応答を受信する前に前記擬似応答により前記送信データ記憶部から削除された前記データパケットと同じデータパケットを前記未応答データ記憶部から読み出して送信する再送制御部とを有することを特徴とする通信装置。
  3. 請求項1または2記載の通信装置において、
    前記確認応答に基づいて、前記送信したデータパケットが受信ロスしたかどうかを判別し、該ロスしたデータパケットのデータ識別番号を識別する捕捉部を有し、
    前記目標レート決定部は、前記ロスしたデータパケットを送信する前に前記データパケットを送信した際の前記送信レートに基づいて、前記目標レートを決定することを特徴とする通信装置。
  4. 請求項3記載の通信装置において、
    前記目標レート決定部は、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートを、前記目標レートとして決定することを特徴とする通信装置。
  5. 請求項3記載の通信装置において、
    前記目標レート決定部は、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートの過去の平均値を、前記目標レートとして決定することを特徴とする通信装置。
  6. 請求項3乃至5のいずれか1項に記載の通信装置において、
    前記目標レート決定部は、前記送信したデータパケットがロスしていないと前記捕捉部が判別した場合、前記送信レート決定部が記憶している送信レートと前記レート増加量との乗算値と、該記憶している送信レートとを加算した値を、前記目標レートとして決定することを特徴とする通信装置。
  7. 請求項3乃至5のいずれか1項に記載の通信装置において、
    前記送信レート決定部は、前記データパケットがロスしたと前記捕捉部が判別した場合、前記送信レートを所定値まで減少させてから前記目標レートまで送信レートを増加させることを特徴とする通信装置。
  8. 請求項7に記載の通信装置において、
    前記捕捉部は、連続してロスした前記データパケットの数と閾値とを比較し、
    前記送信レート決定部は、前記比較の結果、前記連続してロスした前記データパケットの数が前記閾値以下である場合、前記送信レートを、前記送信レート決定部が記憶している前記送信レートの半分の値にした後に前記目標レートまで増加させることを特徴とする通信装置。
  9. 請求項8に記載の通信装置において、
    前記送信レート決定部は、前記捕捉部による比較の結果、前記連続してロスした前記データパケットの数が前記閾値よりも大きな場合、前記送信レートを、前記受信間隔と同じ間隔で1つずつ前記データパケットを送信するときの送信レートまで減少させた後に前記目標レートまで増加させることを特徴とする通信装置。
  10. データパケットを送信する通信装置と接続され、該データパケットに対する応答として送信されてきた確認応答を受信する擬似応答装置であって、
    前記通信装置から送信されてきたデータパケットの送信レートを測定して記憶するとともに、該データパケットをその宛先へ転送するデータ捕捉部と、
    前記通信装置から送信されてきたデータパケットを前記宛先へ転送してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定部と、
    前記確認応答を受信した際に前記データ捕捉部が記憶している前記送信レートと、前記目標レートとに基づいて、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数を決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を前記通信装置へ送信する擬似応答出力部とを有する擬似応答装置。
  11. 請求項10記載の擬似応答装置において、
    前記データ捕捉部が転送した前記データパケットと、該データパケットに付与された前記データ識別番号とを対応付けて記憶する未応答データ記憶部と、
    前記確認応答に基づいて、前記データ捕捉部が転送したデータパケットが受信ロスしたかどうかを判別し、該ロスしたデータパケットのデータ識別番号を識別する捕捉部と、
    前記前記捕捉部が前記データパケットがロスしたと判別して該ロスしたデータパケットのデータ識別番号を識別した際、該データ識別番号を含む前記確認応答を受信していない場合、該データ識別番号と対応付けて記憶されているデータパケットを前記未応答データ記憶部から読み出して前記宛先へ送信する再送制御部とを有することを特徴とする擬似応答装置。
  12. 請求項11記載の擬似応答装置において、
    前記目標レート決定部は、前記ロスしたデータパケットを送信する前に前記データパケットを送信した際の前記データ捕捉部が測定した送信レートに基づいて、前記目標レートを決定することを特徴とする擬似応答装置。
  13. 請求項12記載の擬似応答装置において、
    前記目標レート決定部は、前記ロスしたデータパケットを転送する直前に前記データ捕捉部が測定した送信レートを、前記目標レートとして決定することを特徴とする擬似応答装置。
  14. 請求項12記載の擬似応答装置において、
    前記目標レート決定部は、前記ロスしたデータパケットを転送する直前に前記データ捕捉部が測定した送信レートの過去の平均値を、前記目標レートとして決定することを特徴とする擬似応答装置。
  15. 請求項12乃至14のいずれか1項に記載の擬似応答装置において、
    前記目標レート決定部は、前記送信したデータパケットがロスしていないと前記捕捉部が判別した場合、前記データ捕捉部が記憶している送信レートとレート増加量との乗算値と該記憶している送信レートとを加算した値を、前記目標レートとして決定することを特徴とする擬似応答装置。
  16. データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置における送信レート制御方法であって
    記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを当該通信装置に記憶する送信レート決定処理と、
    前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定処理と、
    前記確認応答を受信した際に当該通信装置が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力処理とを有し、
    前記送信レート決定処理では、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力処理にて決定したレート増加量だけ増大させる送信レート制御方法。
  17. 請求項16記載の送信レート制御方法において、
    当該通信装置の送信データ記憶部に前記データパケットに付与された前記データ識別番号と対応付けて記憶されている該データパケットを送信するデータ送信処理と、
    前記データ送信処理にて送信した前記データパケットと、該データパケットに付与された前記データ識別番号とを対応付けて当該通信装置に記憶する再送制御処理と、
    前記データ送信処理にて送信した前記データパケットに付与された前記データ識別番号が含まれた前記確認応答を受信した場合、または、該データ識別番号を含む前記擬似応答が前記擬似応答出力処理により出力されてきた場合、該データ識別番号と対応付けて記憶されている前記データパケットを前記送信データ記憶部から削除する削除処理とを有し、
    前記再送制御処理では、前記データ送信処理にて送信したデータ識別番号を含む前記確認応答を受信する前に前記擬似応答により前記送信データ記憶部から削除された前記データパケットと同じデータパケットを読み出して送信することを特徴とする送信レート制御方法。
  18. 請求項16または17記載の送信レート制御方法において、
    前記確認応答に基づいて、前記送信したデータパケットが受信ロスしたかどうかを判別し、該ロスしたデータパケットのデータ識別番号を識別する捕捉処理を有し、
    前記目標レート決定処理では、前記ロスしたデータパケットを送信する前に前記データパケットを送信した際の前記送信レートに基づいて、前記目標レートを決定することを特徴とする送信レート制御方法。
  19. 請求項18記載の送信レート制御方法において、
    前記目標レート決定処理では、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートを、前記目標レートとして決定することを特徴とする送信レート制御方法。
  20. 請求項18記載の送信レート制御方法において、
    前記目標レート決定処理では、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートの過去の平均値を、前記目標レートとして決定することを特徴とする送信レート制御方法。
  21. 請求項18乃至20のいずれか1項に記載の送信レート制御方法において、
    前記目標レート決定処理では、前記送信したデータパケットがロスしていないと前記捕捉処理にて判別した場合、当該通信装置が記憶している送信レートと前記レート増加量との乗算値と、該記憶している送信レートとを加算した値を、前記目標レートとして決定することを特徴とする送信レート制御方法。
  22. 請求項18乃至20のいずれか1項に記載の送信レート制御方法において、
    前記送信レート決定処理では、前記データパケットがロスしたと前記捕捉処理にて判別した場合、前記送信レートを所定値まで減少させてから前記目標レートまで送信レートを増加させることを特徴とする送信レート制御方法。
  23. 請求項22に記載の送信レート制御方法において、
    前記捕捉処理では、連続してロスした前記データパケットの数と閾値とを比較し、
    前記送信レート決定処理では、前記比較の結果、前記連続してロスした前記データパケットの数が前記閾値以下である場合、前記送信レートを、当該通信装置が記憶している前記送信レートの半分の値にした後に前記目標レートまで増加させることを特徴とする送信レート制御方法。
  24. 請求項23に記載の送信レート制御方法において、
    前記送信レート決定処理では、前記捕捉処理による比較の結果、前記連続してロスした前記データパケットの数が前記閾値よりも大きな場合、前記送信レートを、前記受信間隔と同じ間隔で1つずつ前記データパケットを送信するときの送信レートまで減少させた後に前記目標レートまで増加させることを特徴とする送信レート制御方法。
  25. データパケットを送信し、該データパケットに対する応答として送信されてきた確認応答を受信する通信装置に
    記データパケットの送信レートをレート増加量だけ増大させ、該増大させた送信レートを当該通信装置に記憶する送信レート決定手順と、
    前記データパケットを送信してから所定の再送タイムアウト時間が経過するまでの間に該データパケットに付与されたデータ識別番号が含まれた前記確認応答を受信したかどうかに基づいて、前記送信レートの目標値である目標レートを決定する目標レート決定手順と、
    前記確認応答を受信した際に当該通信装置が記憶している前記送信レートと、前記目標レートとに基づいて、前記レート増加量と、前記送信したデータパケットに付与された前記データ識別番号を含む擬似的な確認応答である擬似応答を出力する個数とを決定し、該決定した前記擬似応答を出力する個数と、前記確認応答を受信する受信間隔とに基づいて、前記擬似応答の出力間隔を決定し、該出力間隔ごとに前記擬似応答を出力する擬似応答出力手順とを実行させ、
    前記送信レート決定手順では、前記擬似応答が出力された場合または前記確認応答を受信した場合、前記送信レートを前記擬似応答出力手順にて決定したレート増加量だけ増大させるプログラム。
  26. 請求項25記載のプログラムにおいて、
    当該通信装置の送信データ記憶部に前記データパケットに付与された前記データ識別番号と対応付けて記憶されている該データパケットを送信するデータ送信手順と、
    前記データ送信手順にて送信した前記データパケットと、該データパケットに付与された前記データ識別番号とを対応付けて当該通信装置に記憶する再送制御手順と、
    前記データ送信手順にて送信した前記データパケットに付与された前記データ識別番号が含まれた前記確認応答を受信した場合、または、該データ識別番号を含む前記擬似応答が前記擬似応答出力手順により出力されてきた場合、該データ識別番号と対応付けて記憶されている前記データパケットを前記送信データ記憶部から削除する削除手順とを前記通信装置にさらに実行させ、
    前記再送制御手順では、前記データ送信手順にて送信したデータ識別番号を含む前記確認応答を受信する前に前記擬似応答により前記送信データ記憶部から削除された前記データパケットと同じデータパケットを読み出して送信することを特徴とするプログラム。
  27. 請求項25または26記載のプログラムにおいて、
    前記確認応答に基づいて、前記送信したデータパケットが受信ロスしたかどうかを判別し、該ロスしたデータパケットのデータ識別番号を識別する捕捉手順を前記通信装置にさらに実行させ、
    前記目標レート決定手順では、前記ロスしたデータパケットを送信する前に前記データパケットを送信した際の前記送信レートに基づいて、前記目標レートを決定することを特徴とするプログラム。
  28. 請求項27記載のプログラムにおいて、
    前記目標レート決定手順では、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートを、前記目標レートとして決定することを特徴とするプログラム。
  29. 請求項27記載のプログラムにおいて、
    前記目標レート決定手順では、前記ロスしたデータパケットを送信する直前に前記データパケットを送信した送信レートの過去の平均値を、前記目標レートとして決定することを特徴とするプログラム。
  30. 請求項27乃至29のいずれか1項に記載のプログラムにおいて、
    前記目標レート決定手順では、前記送信したデータパケットがロスしていないと前記捕捉手順にて判別した場合、当該通信装置が記憶している送信レートと前記レート増加量との乗算値と、該記憶している送信レートとを加算した値を、前記目標レートとして決定することを特徴とするプログラム。
  31. 請求項27乃至29のいずれか1項に記載のプログラムにおいて、
    前記送信レート決定手順では、前記データパケットがロスしたと前記捕捉手順にて判別した場合、前記送信レートを所定値まで減少させてから前記目標レートまで送信レートを増加させることを特徴とするプログラム。
  32. 請求項31に記載のプログラムにおいて、
    前記捕捉手順では、連続してロスした前記データパケットの数と閾値とを比較し、
    前記送信レート決定手順では、前記比較の結果、前記連続してロスした前記データパケットの数が前記閾値以下である場合、前記送信レートを、当該通信装置が記憶している前記送信レートの半分の値にした後に前記目標レートまで増加させることを特徴とするプログラム。
  33. 請求項32に記載のプログラムにおいて、
    前記送信レート決定手順では、前記捕捉手順による比較の結果、前記連続してロスした前記データパケットの数が前記閾値よりも大きな場合、前記送信レートを、前記受信間隔と同じ間隔で1つずつ前記データパケットを送信するときの送信レートまで減少させた後に前記目標レートまで増加させることを特徴とするプログラム。
JP2009111831A 2009-05-01 2009-05-01 通信装置、擬似応答装置、送信レート制御方法およびプログラム Expired - Fee Related JP5375313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009111831A JP5375313B2 (ja) 2009-05-01 2009-05-01 通信装置、擬似応答装置、送信レート制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009111831A JP5375313B2 (ja) 2009-05-01 2009-05-01 通信装置、擬似応答装置、送信レート制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010263350A JP2010263350A (ja) 2010-11-18
JP5375313B2 true JP5375313B2 (ja) 2013-12-25

Family

ID=43361098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009111831A Expired - Fee Related JP5375313B2 (ja) 2009-05-01 2009-05-01 通信装置、擬似応答装置、送信レート制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5375313B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6613742B2 (ja) * 2015-09-11 2019-12-04 国立研究開発法人情報通信研究機構 負荷変動およびパケット伝送損失があるlfn伝送路で高信頼通信を行うためのデータ通信制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2249152C (en) * 1998-09-30 2003-07-08 Northern Telecom Limited Apparatus for and method of managing bandwidth for a packet-based connection
JP3893247B2 (ja) * 2001-01-12 2007-03-14 三菱電機株式会社 データ配信管理装置
JP2004080070A (ja) * 2002-08-09 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> データ転送方法及びデータ転送システム並びにコンテンツ配信システム
JP4042696B2 (ja) * 2004-01-08 2008-02-06 日本電気株式会社 通信システム、通信端末及び通信プログラム
JP4382610B2 (ja) * 2004-08-25 2009-12-16 株式会社エヌ・ティ・ティ・ドコモ 通信端末および通信システム並びに輻輳制御方法
JP2006191368A (ja) * 2005-01-06 2006-07-20 Mitsubishi Electric Corp ネットワーク伝送装置
JP2007097144A (ja) * 2005-08-31 2007-04-12 Nec Corp 通信システム、通信端末、中継ノード及びそれに用いる通信方法並びにそのプログラム
JP2007288725A (ja) * 2006-04-20 2007-11-01 Sanden Corp 通信機器用の接続装置
JP4730427B2 (ja) * 2008-11-21 2011-07-20 ソニー株式会社 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP2010263350A (ja) 2010-11-18

Similar Documents

Publication Publication Date Title
US10798199B2 (en) Network traffic accelerator
US7058723B2 (en) Congestion control for internet protocol storage
JP4283589B2 (ja) 通信装置、通信制御方法及びプログラム
EP2978171B1 (en) Communication method, communication device, and communication program
JP5786853B2 (ja) パケット再送制御装置、パケット再送制御方法、パケット再送制御プログラム
JP5625748B2 (ja) 通信装置、通信システム、プログラム及び通信方法
JP2004537218A (ja) Nackベースのプロトコルにおける輻輳制御の信頼性のある効率的な対応方法
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US20090316579A1 (en) Immediate Ready Implementation of Virtually Congestion Free Guaranteed Service Capable Network: External Internet Nextgentcp Nextgenftp Nextgenudps
CN104683259A (zh) Tcp拥塞控制方法及装置
JP2004343552A (ja) 受信装置、送信装置およびプログラム
JP5375313B2 (ja) 通信装置、擬似応答装置、送信レート制御方法およびプログラム
JP2008053888A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
JP2007110680A (ja) 通信装置、通信プログラム、通信制御方法および記録媒体
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
JP6280680B2 (ja) パケット通信におけるパケット送信装置、通信端末及びスロースタート制御方法
JP2009284433A (ja) P2p端末検知及び制御システム、並びにその方法
JP2016019198A (ja) 通信装置、通信装置の制御方法、プログラム
JP3784801B2 (ja) 伝送制御方法、通信装置、通信システム及びプログラム
WO2019004013A1 (ja) データ送信装置、方法および記録媒体
KR20110078564A (ko) 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치
JP2018050128A (ja) 処理決定装置、処理決定方法、及び、処理決定プログラム
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
JP2003209574A (ja) Tcpスループット算出方法及びその装置、tcpスループット算出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees