本発明は、通信システム、通信端末及び通信プログラムに関し、特に、送受信端末間の経路および通信状況に応じて送信レートの制御を可能とする通信システム、通信端末及び通信プログラムに関する。
トランスポート層の代表的なプロトコルとしてTCP(Transmission Control Protocol)が挙げられる。TCPは、ウィンドウサイズというパラメータを調節することにより送信レートを制御している。ウィンドウサイズは、1RTT(Round Trip Time:往復遅延時間)間に送信されるパケットの量を表している。また、RTT(Round Trip Time)は、パケットを送信して、そのパケットに対する確認応答として受信側から返信されるACKパケットを受信するまでの時間である。
ウィンドウサイズの調節は、ACKパケットの受信状況を利用している。ACKパケットには、どの送信パケットに対応しているか識別するために番号が付与されている。そのACKパケットに付与された番号が重複なく、送信側からパケットが送信されて、一定時間内にそのパケットに対するACKパケットを送信側で番号順に受信している場合は、ウィンドウサイズを増加させる。一方、送信側で、同じ番号のACKパケット受信や、パケットを送信してから、一定時間内にそのパケットに対するACKパケットを受信しなければ、送信側は、そのパケットが廃棄されたと判断、つまり、ネットワーク中で輻輳が発生したと判断してウィンドウサイズを減少させる。
TCPでは、上記のような送信レート制御において、同一のネットワーク環境で、同一のボトルネックリンクを経由する複数のTCPコネクションは、ボトルネックリンク帯域を均等に配分した帯域を獲得することが報告されている(D.Chiu, R.Jain, “Analysis of the Increase Ad Decrease Algorithms for Congestion Avoidance in Computer Networks,” Journal of Networks Ad ISDN, Vol17, No.1, June 1989, pp.1-14:(非特許文献1))。また、現在、広く普及しているTCPとしてRenoバージョン(W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms,” RFC2001,Jan 1997:(非特許文献2))が挙げられる。TCPを利用したアプリケーションによっては、高帯域を必要とするものや、そうでないものがあるため、TCPコネクションに応じてスループットの優先度を制御することでリンクの利用率を向上させることができるが、上記RenoバージョンのTCPコネクションに対してスループットの優先度を与える制御は実現されていない。このような課題に対する解決策として、次のような従来技術が存在する。
RenoバージョンのTCPコネクションに対してスループットの低優先を実現するTCP-Nice(A.VenkataramAi et al. “TCP Nice: A MechAism for Background Transfers,”http://www.cs.utexas.edu/users/arun/pubs/nice.pdf:(非特許文献3))やTCP-LP(D.Niclescu, B.R. Badrinath, “TCP-LP: A Distributed Algorithm for Low Priority Data Transfer,” Proceeding of IEEE INFOCOM2003, April:(非特許文献4))等が提案されている。
通常のTCPコネクションよりも、輻輳の程度が軽い状態で輻輳とみなし送信レートを制御している。具体的には、パケットロスではなく、観測しているRTTが、ある値(閾値)を越えるまではウィンドウサイズを増加させ、観測しているRTTがある値を越えるとウィンドウサイズを半分に減少させる。
D.Chiu, R.Jain, "Analysis of the Increase Ad Decrease Algorithms for Congestion Avoidance in Computer Networks," Journal of Networks Ad ISDN, Vol17, No.1, June 1989, pp.1-14
W. Stevens, "TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms," RFC2001,Jan 1997
A.VenkataramAi et al. "TCP Nice: A MechAism for Background Transfers," http://www.cs.utexas.edu/users/arun/pubs/nice.pdf
D.Niclescu, B.R. Badrinath, "TCP-LP: A Distributed Algorithm for Low Priority Data Transfer," Proceeding of IEEE INFOCOM2003, April
S. keshav, B. Landfeldt, A. Seneviratne, B. Melander, P. Gunningberg, "Packet-Pair Flow Control," IEEE/ACM Transactions on Networking, Feb 1995
従来方式の第1の問題点は、送受信端末間で、自分以外のトラヒックが存在しなければ、送信レートをボトルネックリンクの物理帯域に維持するのが望ましいが、従来技術であるTCP-LP、TCP-Niceでは、観測しているRTTがある値を超えるまではウィンドウサイズを単調(線形的に)に増加させる制御であるので、リンクの有効利用ができないということである。
従来方式の第2の問題点は、上記のように、送受信端末間で、自分以外のトラヒックが存在しなければ、送信レートをボトルネックリンクの物理帯域に維持するのが望ましいが、従来技術であるTCP-LPでは、観測しているRTTがある値を超えるまで単調に増加させ、ある値を超えるとウィンドウサイズを減少させるため、送受信端末間に他のトラヒックが存在していない場合においても、自分のトラヒックの影響で観測しているRTTがある値を超え、ウィンドウサイズを半分に減少させてしまい、リンクの利用率が低下することである。
従来方式の第3の問題点は、ボトルネックリンクを他のトラヒックと共有する場合、自分が送信するデータ特性に応じて、割り当て帯域を指定したいが、従来技術であるTCP-LP、TCP-Niceでは、他のトラヒックとボトルネックリンクを共有し観測しているRTTが閾値を超えるような状態が続く場合は、ウィンドウサイズを1パケットに維持するため自分のトラヒックに対して、データ特性に応じた帯域を割り当てることができないことである。
本発明の第1の目的は、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、ボトルネックリンクの物理帯域上限値でパケットを送信するように制御することができる通信システム、通信端末及び通信プログラムを提供することにある。
本発明の第2の目的は、送受信端末間のボトルネックリンクに他のトラヒックが存在する場合の送信レートを、データ特性に応じて決定できる通信システム、通信端末及び通信プログラムを提供することにある。
本発明の第3の目的は、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることができる通信システム、通信端末及び通信プログラムを提供することにある。
本発明の第4の目的は、ボトルネックリンクの物理帯域上限値と最小RTTの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する通信システム、通信端末及び通信プログラムを提供することにある。
本発明の第5の目的は、他のトラヒックに影響を与えないように、送信レートの割り当て制御を行い、データ通信を行うことができる通信システム、通信端末及び通信プログラムを提供することにある。
本発明の第6の目的は、各端末は、データ特性に応じて経路、中継先の選択をすることが可能となる通信システム、通信端末及び通信プログラムを提供することにある。
上記目的を達成する本発明は、ネットワークを介し複数の端末間でデータの送受信を行う通信システムであって、送信側の端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定することを特徴とする。
請求項2の本発明の通信システムは、前記送信側の端末は、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて上限と下限の2種類の前記目標送信レートを設定することを特徴とする。
請求項3の本発明の通信システムは、前記上限の目標送信レートは、前記送受信端末間のボトルネックリンクの物理帯域上限値とすることを特徴とする。
請求項4の本発明の通信システムは、前記下限の目標送信レートは、受信側の端末との間のリンクとデータの特性に基づいて決定されることを特徴とする。
請求項5の本発明の通信システムは、データ通信におけるウィンドウサイズと当該ウィンドウサイズに対して得られるRTTを組とする複数の組情報から、最小のRTTが一定に保たれている状態から増加に遷移する境界でのウィンドウサイズを、前記最小のRTTで除算した送信レートを、前記上限の目標送信レートとすることを特徴とする。
請求項6の本発明の通信システムは、観測しているRTTと前記最小のRTTの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別することを特徴とする。
請求項7の本発明の通信システムは、前記最小のRTTを下回るRTTを観測している場合、送信レートを前記上限の目標送信レートとなるように制御し、前記最小のRTTを上回るRTTを観測している場合は、送信レートを前記下限の目標送信レートとなるように制御することを特徴とする。
請求項8の本発明の通信システムは、データ送信中に送信レートと当該送信レートに対して観測されるRTTに基づいて前記上限の目標送信レートと前記最小のRTTを決定することを特徴とする。
請求項9の本発明の通信システムは、前記受信側の端末に対して試験パケットを送信することにより、前記上限の目標送信レートと前記最小のRTTを取得することを特徴とする。
請求項10の本発明の通信システムは、前記受信側の端末に対する試験パケットの送信による計測とデータ送信中に送信レートと当該送信レートに対して観測されるRTTに基づいて、前記上限の目標送信レートと前記最小のRTTを決定することを特徴とする。
請求項11の本発明の通信システムは、前記送信側の端末は、前期受信端末に対して前記上限の目標送信レート、前記最小のRTT、受信バッファサイズを通知することを特徴とする。
請求項12の本発明の通信システムは、送受信端末と送受信端末間の経路状態を管理する管理端末を設け、前記管理端末が、送受信端末間の経路の帯域、RTTを含む経路状態情報の計測を前記端末に依頼して前記経路状態情報を取得し、前記送信側の端末が前記管理端末からの経路状態情報に基づいて、送信レートを前記上限の目標送信レート又は下限の目標送信レートに制御してデータ通信を行うことを特徴とする。
請求項13の本発明の通信システムは、前記送信側の端末は、コネクション開設後、前記管理端末に前記経路状態情報を要求し、前記管理端末から得られた前記経路状態情報に基づいて前記目標送信レートと最小のRTTを決定し、送信レートの制御を行うことを特徴とする。
請求項14の本発明の通信システムは、前記管理端末は、特定の前記端末間の経路状態情報を定期的に更新し、前記特定の端末に対して通知し、送信側の前記特定の端末は、前記経路状態情報に基づいて前記目標送信レートと最小のRTTを決定し、送信レートの制御を行うことを特徴とする。
請求項15の本発明の通信システムは、前記管理端末からの経路状態情報に基づいて決定される前記上限の目標送信レートは、受信側の端末までの通信経路において、他のトラヒックが存在しない場合の最大の送信レートとすることを特徴とする。
請求項16の本発明は、ネットワークを介してデータの送受信を行う通信端末であって、送信側の通信端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定する手段を備えることを特徴とする。
本発明の通信システム、通信端末及び通信プログラムによれば、以下に述べるような効果が達成される。
第1に、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、ボトルネックリンクの物理帯域上限値でパケットを送信するように制御するためリンクの利用率が向上する。
第2に、他のトラヒックとボトルネックリンクを共有している場合でも、送受信端末間のボトルネックリンクに他のトラヒックが存在する場合の送信レートを、データ特性に応じて決定できる。このため、例えば、最低限必要とされる帯域を指定することが可能となる。
第3に、データ送受信の制御部とは別に、送受信端末間のボトルネックリンクの物理帯域上限値と最小RTTの推定を行う手段を設けることにより、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
第4に、パケット送信開始時及びパケット送信中においても、送受信端末間のボトルネックリンクの物理帯域上限値と最小RTTの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
第5に、データ通信を行う端末間の経路状態を管理する管理端末を配置することにより、各端末は管理端末から得られる経路状態情報を取得することで、他のトラヒックに影響を与えないように、送信レートの割り当て制御を行い、データ通信を行うことができるようになる。
第6に、データ転送によって得られたボトルネックリンクの物理帯域上限値、最小RTTと受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択をすることが可能となる。
本発明の第1の実施例について図面を参照して詳細に説明する。図1では、ネットワーク上に端末S1〜Snが配置されている。また端末S1〜Sn同士でデータ通信が行われる。
端末S1〜Snは、何れも同じ内部構成となっているため、以下では端末S1を取り上げて説明する。
図2は端末S1のデータ送受信制御部L100の内部構成を示すブロック図である。データ送受信制御部L100は、目標送信レート推定部L101、目標送信レート決定記憶部L102、RTT閾値決定記憶部L103、目標送信レート選択部L104、送信レート制御部L105、パケット送信部L106、パケット受信部L107、RTT計測部L108、RTT判定部L109を備えている。以下で各構成要素について説明する。
目標送信レート推定部L101は、送信レート制御部L105から通知される送信レート値とRTT計測部L108から通知されるRTTに基づいて、データの送受信を行う端末間のボトルネックリンクの物理帯域の推定を行う。この場合の推定方法について、図19を用いて以下で詳細に述べる。
(インライン計測による目標送信レートAの推定方法)
送信レートAの決定法について述べる。送受信端末間で、通信が行われている最中に、あるウィンドウサイズと他のウィンドウサイズに対して得られるRTTを組とする情報を取得する。この組情報を多数集めて、横軸をウィンドウサイズ、縦軸をRTTとして、プロットすると図19に示すように大きさの異なる複数のウィンドウサイズ毎に複数のRTTが得られる。
ウィンドウサイズがある値を超えない場合、最小RTT(RTT_min)を観測するウィンドウサイズで通信を行っているとき、送受信端末間のボトルネックリンクに流れるトラヒック量がボトルネックリンクの物理帯域の上限値に達していないため、ウィンドウサイズに対する最小RTT(RTT_min)がほぼ等しくなる。
ウィンドウサイズがある値を超えると、送受信端末間のボトルネックリンクにおいて他のトラヒック(クロストラヒック)が存在していない場合でも、ボトルネックリンクのルータのバッファにパケットが蓄積され、最小RTT(RTT_min)が増加する。また、ボトルネックリンクのルータのバッファがいっぱいになるまで、最小RTT(RTT_min)は増加する。ここで、ボトルネックリンクとは、例えば、図20に示すように、端末S1〜S6からなるネットワークにおいて、端末S1が送信側端末、端末S4が受信側端末である場合、端末S2と端末S3間のリンクに相当する。
この場合の送信レートは、図19で最小RTT(RTT_min)が一定に保たれている状態から、増加傾向に遷移していく境界でのウィンドウサイズ(WA)を最小RTT(RTT_min)で除算した値となり、この値がボトルネックリンクの物理帯域の上限値と推定できる。この値を目標送信レートAとする。目標送信レート推定部L101は、上記のようにして目標送信レートAを推定する。
目標送信レート決定記憶部L102は、目標送信レートAとBを決定し、記憶する。目標送信レートAについては、上述した目標送信レート推定部L101から通知されるレート値であり、目標送信レートBについては、目標送信レートAよりも小さい値として決定される。例えば、パケットサイズを観測されるRTTで除算した値や、データ特性に応じて決定される値であって、目標送信レートAより小さい値が用いられる。
RTT閾値決定記憶部L103は、上記推定方法で得られるウィンドウサイズとRTTの組情報を目標送信レート推定部L101から取得し、図19の最小RTT(RTT_min)をRTT閾値として決定し、記憶する。本発明においては、ウィンドウサイズについて、図19のウィンドウサイズWA以下の値で送信レートの制御を行うため、送信側で観測するRTTがRTT_minを越えると他のトラヒックが存在していると判断する。
RTT判定部L109は、RTT計測部L108から得られるRTTとRTT閾値決定記憶部L103から得られるRTT閾値を利用して送受信端末間に他のトラヒックが存在するかどうかを判定する。
本実施例では、ウィンドウサイズ(1RTT間に送信するパケット量)の最大値を図19のウィンドウサイズWAとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、例えば図20の送信側の端末S1のRTT計測部L108では、最小RTT(RTT_min)を越えたRTTを観測する。従って、RTT判定部L109は、計測したRTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部L104に通知する。
目標送信レート選択部L104は、RTT判定部L109からの情報として値「0」が通知された場合(送受信端末間のボトルネックリンクに他のトラヒックが存在している)、目標送信レートとして目標送信レートBを選択し、「1」を通知された場合には(送受信端末間のボトルネックリンクに他のトラヒックが存在していない)、目標送信レートとして目標送信レートAを選択する。選択した結果は、送信レート制御部L105に通知する。
送信レート制御部L105は、目標送信レート選択部L104から通知される目標レートと現在の送信レートを比較することにより送信レートを決定し、パケット送信部L106と目標送信レート推定部L101に通知する。ここでは、目標送信レートがBの場合には、現在の送信レートに関わらず送信レートをBに、目標送信レートがAの場合には、現在の送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部L106は、送信レート制御部L105から通知された送信レートでパケットを送信する。
パケット受信部L107は、他の端末から送信されたパケットや、送信パケットに対するACK(確認応答)パケットを受信する。
RTT計測部L108は、データパケットの送信時刻とACK(確認応答)パケットの受信時刻を利用してRTT(往復遅延時間)を計測する。計測したRTTは、RTT判定部L109とRTT閾値決定記憶部L103に通知される。
(動作の説明)
次に、図2、図3および図19を参照して、本発明の第1の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合、端末S1〜Snの端末は同じ動作をするので、端末S1が送信側の端末としてデータ通信を行う場合を考える。
図3において、コネクションが開設されると(ステップP1)、まず、目標送信レート推定部L101が、目標送信レート決定記憶部L102とRTT閾値決定記憶部L103に問い合せ、過去の通信において得られた履歴情報(目標送信レートA、BとRTT閾値)が記憶されているか確認を行う(ステップP2)。履歴情報が記憶されている場合はそれぞれの記憶されている値によって目標送信レートA、BとRTT閾値を決定する(ステップP3)。履歴情報が記憶されていない場合には、パケット送信中のあるウィンドウサイズと他のウィンドウサイズに対するRTTを組とする組情報を取得して、目標送信レートA、B、RTT閾値を推測する(ステップP4)。この目標送信レートA、B、RTT閾値の推定処理については、後述する。
以下では、上記の履歴情報(目標送信レートA、BとRTT閾値)がコネクション開設時に記憶されている場合とそうでない場合で分けて記述する。
ステップP2で履歴情報が記憶されている場合、パケット送信開始にあたって、送信レート制御部L105において、送信レートの初期化を行う(ステップP5)。この初期化では、例えば、パケットサイズをRTT閾値決定記憶部L103に記憶されていたRTT閾値(RTT_min)で除算した値や、目標送信レートBを送信レートとする。
パケット送信部L106は、送信レート制御部L105から通知される送信レートでパケットを送信する(ステップP6)。送信パケットに対する確認応答としてACKパケットが受信側から返信されると、パケット受信部L107で受信を行う(ステップP7)。
ACKパケットの受信を行うと、RTT計測部L108で、パケットを送信した時刻と、前述の送信パケットに対するACKパケットを受信した時刻を利用してRTTを計測する(ステップP8)。
RTT判定部L109は、RTT計測部L108から通知されるRTTとRTT閾値決定記憶部L103から通知されるRTT閾値を比較して、送受信端末間のボトルネックリンクに他のトラヒックが存在するかどうか判定を行う(ステップP9)。
本実施例では、ウィンドウサイズ(1RTT間で送信するパケットの量)をウィンドウサイズWA以下の範囲で送信レートの制御を行うため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、送信端末は図19のRTT_minのRTTを観測する。送受信端末間のボトルネックリンクに他のトラヒックが存在する場合はRTT_minよりも大きいRTTを観測する。そこで、RTTがRTT閾値よりも大きい場合は、ボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値と等しい場合は、ボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部L104に通知する。目標送信レート選択部L104は、RTT判定部L109から値「0」の通知を受けると目標送信レートBを選択し、値「1」の通知を受けると目標送信レートAを選択する。その結果を送信レート制御部L105に通知する(ステップP10、P11)。
送信レート制御部L105は、目標送信レートBの通知を受け取ると、送信レートをBとする。目標送信レートAの通知を受け取ると、現在の送信レートとAを比較して、現在の送信レートが目標送信レートAよりも小さい場合、送信レートを目標送信レートAまで増加させる。現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する(ステップP12)。
送信レート制御部L105は決定した送信レートをパケット送信部L106に通知する(ステップP13)。パケット送信が終了していなければ(ステップP14)、上記決定した送信レートでパケット送信を行い(ステップP6)、パケット送信が終了している場合、コネクションを終了させる(ステップP15)。
ステップP2で履歴情報が記憶されていない場合の目標送信レートA、B、RTT閾値の推定処理の流れについて以下に説明する。
送信レート制御部L105で送信レートを初期化する。この場合の初期化では、RTTは記憶されていた既知値ではないので、送信レートとしてウィンドウサイズを1パケットとする。また、その送信レートを目標送信レート推定部L101に通知すると共に、パケット送信部L106に通知し当該送信レートでパケットの送信を行う。
送信パケットに対する確認応答としてACKパケットが受信側から返信されるとパケット受信部L107で受信を行う。受信を行うと、RTT計測部L108でパケットを送信した時刻と、前述の送信パケットに対するACKパケットを受信した時刻を利用してRTTを計測し、目標送信レート推定部L101に通知する。
目標送信レート推定部L101は、ウィンドウサイズ(1RTT間で送信されるパケットの量)とウィンドウサイズ(1RTT間で送信されるパケットの量)に対するRTTを組とする組情報を記憶しておく。送信レート制御部L105は、従来のTCPの送信レート制御方式を用いて送信レートの制御を行う。目標送信レート推定部L101は、上述したようにして組情報を収集し、上述した推定手法により、目標送信レートA、BとRTT閾値を推定する(ステップP4)。
目標送信レートA、BとRTT閾値を決定すると、それ以降の動作(ステップP5以降の動作)は、コネクション開設時に履歴情報を記憶している場合と同じである。
以上のような送信レートの制御を行うことにより、図21に示すように、他のトラヒックが存在する場合には、目標送信レートBに設定され、他のトラヒックが存在しない場合には、目標送信レートA(物理帯域の上限値)に設定されるようになる。
(実施例1の効果)
第1の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レートの制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
また、従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在すると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在すると判断すると、送信レートを目標送信レートBまで減少させる。この目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
本発明の第2の実施例について図面を参照して詳細に説明する。ネットワーク構成は図1と同じであり、ネットワーク上に端末S1〜Snが配置されており、端末S1〜Sn同士でデータ通信を行う。
ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。図4を参照すると、第2の実施例による端末S1は、経路状態推定部M10とデータ送受信制御部M100を備えている。
経路状態推定部M10は、送受信端末間の帯域、RTTの計測を行い、計測した結果から送受信端末間のボトルネックリンクの物理帯域上限値と最小RTTの推定を行うものであり、試験パケット送受信部M11、経路状態計測部M12、そして経路状態情報記憶部M13を備えている。
データ送受信制御部M100は、経路状態推定部M10で推定されたボトルネックリンクの物理帯域上限値と最小RTTに基づいて送信レート制御を行う。このデータ送受信制御部M100は、目標送信レート決定記憶部M101、目標送信レート選択部M102、送信レート制御部M104、パケット送信部M105、パケット受信部M106、RTT計測部M107、RTT判定部M108、RTT閾値決定記憶部M103を備えている。各構成要素について、以下に説明する。
経路状態推定部M10は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能を備えている。
ここで、経路状態情報とは、ボトルネックリンクの物理帯域上限値と最小RTTとを含む情報である。
ボトルネックリンクの物理帯域上限値の推定は、例えば、本発明の第1の実施例で述べた推定手法や、Packet-Pair手法(S. keshav, B. Landfeldt, A. Seneviratne, B. Melander, P. Gunningberg, “Packet-Pair Flow Control,” IEEE/ACM Transactions on Networking, Feb 1995:(非特許文献5))に記載される手法を用いて行う。
このPacket-Pair手法においては、同じパケットサイズの測定パケットを連続して(時間間隔を開けずに)受信側に向けて送信する。測定パケットがボトルネックリンクを通過すると、受信側で、測定パケットの到着時間間隔を観測する。(受信側は、測定パケットを受信すると測定パケットよりも小さいサイズの応答パケットを送信側に返し、送信側で測定パケットの到着時間間隔を計測してもよい)。ボトルネックリンクの物理帯域上限値は、測定パケットサイズを到着時間間隔で除算した値に等しくなる。
最小RTTは、第1の実施例で述べた推定手法や、Packet-Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してRTTを算出し、それから推定した結果とする。推定した結果は、経路状態情報記憶部M13に記憶される。また、記憶された結果はデータ送受信制御部M100に通知され、送信レートの決定に利用される。
データ送受信制御部M100は、OSI参照モデルのトランスポート層プロトコルの1つであるTCP(Transmission Control Protocol)と同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
目標送信レート決定記憶部M101は、2つの目標送信レートA、Bを決定し記憶する。目標送信レートAは、経路状態情報記憶部M13から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートBは、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTTで除算した値や、データ特性に応じた値で決定される値であって、目標送信レートAより小さい値が用いられる。
RTT閾値決定記憶部M103は、経路状態情報記憶部M13から通知される値を、RTT閾値として記憶する。このとき経路状態情報記憶部M13から通知される値は、図19の最小RTT(RTT_min)と等しい値である。
RTT判定部M108は、RTT計測部M107から得られるRTTとRTT閾値決定記憶部M103から得られるRTT閾値とを用いて送受信端末間に他のトラヒックが存在するかどうか判定する。
本実施例では、送信レートの最大値を目標送信レートAとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、例えば図20の送信側の端末S1のRTT計測部M107では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部M102に通知する。
目標送信レート選択部M102は、RTT判定部M108から通知される情報に基づいて目標送信レート決定記憶部M101にある2つの目標送信レートA、Bのうちどちらか一方を選択する。
RTTがRTT閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートAを選択し、逆にRTTがRTT閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると判断して目標送信レートとして目標送信レートBを選択する。選択した結果を送信レート制御部M104に通知する。
送信レート制御部M104は、目標送信レート選択部M102から通知された目標送信レートと現在の送信レートを比較することにより、送信レートを決定する。目標送信レートがBの場合、現在の送信レートに関わらず送信レートをBに、目標送信レートがAの場合、現在の送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部M105は、送信レート制御部M104から通知された送信レートに従って、パケットを送信する。
パケット受信部M106は、他の端末から送信されたパケットや、送信されたパケットに対するフィードバックとしてACKパケットを受信する部分である。
RTT計測部M107は、送信パケットの送信時刻と送信パケットに対して返信されたACKパケットの受信時刻を用いてRTTを計測し、RTT判定部M108する。
(動作の説明)
次に、図4、図5を参照して、本発明の第2の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合の動作は同じであるので、ここでは端末S1が送信端末としてデータ通信を行う場合を考える。
図5において、端末S1の経路状態推定部M10は、送受信端末間のボトルネックリンクと最小RTTの推定を行う。この推定処理においては、まず、測定パケット送受信部M11から測定パケットを送信する(ステップQ1)。そして、受信側の端末からのフィードバックとしてACKパケットを受信する(ステップQ2)。
経路状態計測部M12は、計測値からボトルネックリンクの物理帯域上限値と最小RTTを推定し、経路状態情報記憶部M13に通知する(ステップQ3、Q4)。経路状態情報記憶部M13は、経路状態計測部M12から通知された物理帯域上限値と最小RTTを記憶する(ステップQ5)。
コネクションが開設されると(ステップQ6)、経路状態情報記憶部M13から、目標送信レート決定記憶部M101とRTT閾値決定記憶部M103に対して、それぞれボトルネックの物理帯域上限値と最小RTTが通知される。
RTT閾値決定記憶部M103は、通知された最小RTTに基づいてRTT閾値を決定し記憶する。また、目標送信レート決定記憶部M101は、通知された物理帯域上限値を目標送信レート値Aとし、目標送信レート値Bは、Aより小さい値で与える(ステップQ7)。例えば、目標送信レート値Bとしては、パケットサイズをRTT閾値決定記憶部M103に記憶されているRTT閾値で除算した値や、データ特性に依存した送信レート値が考えられる。
目標送信レート値A、BとRTT閾値が決定すると、送信レート制御部M104は、送信レートの初期化を行う(ステップQ8)。この初期化では、例えば、パケットサイズをRTTで除算した値や、目標送信レートBを送信レートとする。
送信レート制御部M104から送信レートがパケット送信部M105に通知され、パケット送信部M105はその通知された送信レートでパケットを送信する(ステップQ9)。
送信パケットに対するACK(確認応答)パケットが受信端末から返信されると、パケット受信部M106でACKパケットを受信する(ステップQ10)。
その後、RTT計測部M107で、送信パケットの送信時刻と送信したパケットに対して返信されたACKパケットを受信した受信時刻を利用してRTTを算出する(ステップQ11)。
RTT判定部M108は、RTT計測部M107から通知されるRTTとRTT閾値決定記憶部M103から通知されるRTT閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する(ステップQ12)。送受信端末間に他のトラヒックが存在しない場合、送信端末S1は、図19のRTT_minを観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケット蓄積されはじめ、RTT閾値を越えたRTTを観測する。従ってRTTがRTT閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部M102に通知する(ステップQ13、Q14)。
また、目標送信レート選択部M102は、目標送信レート決定記憶部M101から目標送信レートA、Bを通知され、RTT判定部M108から値「0」を通知された場合、目標送信レートBを、値「1」を通知された場合は、目標送信レートAを選択し、送信レート制御部M104に通知する。
送信レート制御部M104は、目標送信レート選択部M102から目標送信レートBの通知を受け取ると、送信レートをBとする。目標送信レートAの通知を受け取ると、通知された目標送信レートと現在の送信レートの比較を行い、目標送信レートが目標送信レートAの時、現在の送信レートがAよりも小さい場合は送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する(ステップQ15)。
送信レート制御部M104は決定した送信レートをパケット送信部M105に通知する(ステップQ16)。パケット送信が終了していなければ(ステップQ17)、上記決定した送信レートでパケット送信を行い(ステップQ9)、パケット送信が終了している場合、コネクションを終了させる(ステップQ18)。
(第2の実施例の効果)
第2の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートBまで減少させる。この目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
第1の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小RTTの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小RTTが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
本発明の第3の実施例について図面を参照して詳細に説明する。ネットワーク構成は図1と同じであり、ネットワーク上に端末S1〜Snが配置されており、端末S1〜Sn同士でデータ通信を行う。
ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。図6を参照すると、第3の実施例による端末S1は、経路状態推定部N10とデータ送受信制御部N100を備えている。
経路状態推定部N10は、送受信端末間の帯域、RTTの計測を行い、計測した結果から送受信端末間のボトルネックリンクの物理帯域上限値と最小RTTの推定を行うものであり、試験パケット送受信部N11、経路状態計測部N12、そして経路状態情報記憶部N13を備えている。
データ送受信制御部N100は、経路状態推定部N10で推定されたボトルネックリンクの物理帯域上限値と最小RTTに基づいて送信レート制御を行う。このデータ送受信制御部N100は、目標送信レート決定記憶部N101、目標送信レート選択部N102、送信レート制御部N104、パケット送信部N105、パケット受信部N106、RTT計測部N107、RTT判定部N108、RTT閾値決定記憶部N103を備えている。各構成要素について、以下に説明する。
経路状態推定部N10は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能と備えている。
経路状態情報は、ボトルネックリンクの物理帯域と最小RTTとを含む情報である。なお、ボトルネックリンクの物理帯域の推定方法については、第2の実施例で述べたように、第1の実施例で述べた推定手法や、Packet-Pair手法(非特許文献5に記載される手法)による推定方法が用いられる。ここでは、その詳細を省略する。
最小RTTは、第1の実施例で述べた推定手法や、Packet-Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してRTTを算出し、それから推定した結果とする。推定した結果は、経路状態情報記憶部N13に記憶される。また、記憶された結果はデータ送受信制御部N100に通知され、送信レートの決定に利用される。
データ送受信制御部N100は、OSI参照モデルのトランスポート層プロトコルの1つであるTCP(Transmission Control Protocol)と同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
目標送信レート決定記憶部N101は、経路状態情報推定部N10から通知される経路状態情報に基づいて、受信側の端末ごとに2つの目標送信レートA、Bを決定する。目標送信レートAは、受信端末までの経路に他のトラヒックがいない時に出せる最大の送信レート値とし、目標送信レートBは、Aよりも小さい値である。目標送信レートBとしては、パケットサイズをRTTで除算した値や、データ特性に応じてアプリケーションから指示された送信レート値であって、目標送信レートAより小さい値が用いられる。
また、目標送信レート決定記憶部N101は、送信レート制御部N104から通知される送信レート値とRTT計測部N107で計測されるRTTを用いた経路状態の推定も行う。データ送信中における推定については、第1の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部N101は、この推定方法により、目標送信レートAを推定する。
目標送信レート決定記憶部N101は、2つの目標送信レートA,Bを決定し、記憶する。目標送信レートAについては、経路状態情報記憶部N13から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートBについては、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTTで除算した値や、データ特性に応じた値で決定される。また、パケット送信中においても、送信レート制御部N104から送信レート値とRTT計測部N107からRTT値を取得して、ボトルネックリンクの物理帯域上限値の推定を行う。
RTT閾値決定記憶部N103は、上記推定方法でで得られるウィンドウサイズとRTTの組情報を目標送信レート決定記憶部N101から取得し、図19の最小RTT(RTT_min)をRTT閾値として決定し、記憶する。本発明においては、ウィンドウサイズについて、図19のウィンドウサイズWA以下の値で送信レートの制御を行うため、送信側で観測するRTTがRTT_minを越えると他のトラヒックが存在していると判断する。
RTT判定部N108は、RTT計測部N107から得られるRTTとRTT閾値決定記憶部N103から得られるRTT閾値を利用して送受信端末間に他のトラヒックが存在するかどうかを判定する。
本実施例では、送信レートの最大値を目標送信レートAとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、例えば図20の送信側の端末S1のRTT計測部N107では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTT判定部N108は、計測したRTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部N104に通知する。
目標送信レート選択部N102は、RTT判定部N108から通知される情報に基づいて目標送信レート決定記憶部N101にある2つの目標送信レートA,Bのうちどちらか一方を選択する。RTTがRTT閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートAを選択し、逆にRTTがRTT閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートBを選択する。選択した結果を送信レート制御部N104に通知する。
送信レート制御部N104は、目標送信レート選択部N102から通知された目標送信レートと現在の送信レートを比較することにより送信レートを決定する。目標送信レートがBの場合、現在の送信レートに関わらず送信レートをBに、目標送信レートがAの場合、現在の送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部N105は、送信レート制御部N104から通知された送信レートに従って、パケットを送信する。
パケット受信部N106は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてACKパケットを受信する部分である。
RTT計測部N107は、送信パケットの送信時刻と送信パケットに対して返信されたACKパケットの受信時刻を用いてRTTを計測する。
(動作の説明)
次に、図1、図6および図7を参照して、本発明の第3の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合の動作は同じであるので、ここでは端末S1が送信端末としてデータ通信を行う場合を考える。
図7において、端末S1は図6の経路状態推定部N10で特定端末S2〜Snに対して試験パケット送受信部N11から試験パケットを送信し(ステップR1)、受信側の端末からのフィードバックとしてACKパケットを受信し(ステップR2)、物理帯域上限値とRTTの計測を行う(ステップR3)。測定結果は、経路状態計測部N12に受け渡され、測定結果から最小RTTと物理帯域上限値を推定し、経路状態情報記憶部N13に通知する(ステップR4)。経路状態情報記憶部N13は、通知された物理帯域上限値と最小RTTを記憶する(ステップR5)。
コネクションが開設されると(ステップR6)、経路状態情報記憶部N13から、目標送信レート決定記憶部N101とRTT閾値決定記憶部N103に対して、それぞれボトルネックの物理帯域上限値と最小RTTが通知される。
RTT閾値決定記憶部N103は、通知された最小RTTに基づいてRTT閾値を決定し記憶する。一方、目標送信レート決定記憶部N101は、通知された物理帯域上限値を目標送信レート値Aとし、目標送信レート値Bは、Aより小さい値で与える(ステップR7)。例えば、目標送信レート値Bとしては、パケットサイズをRTTで除算した値や、データ特性に依存した送信レート値が考えられる。
目標送信レート値A,BとRTT閾値が決定すると、送信レート制御部N104は、送信レートの処理化を行う(ステップR8)。この初期化では、例えば、パケットサイズをRTT閾値決定記憶部N103に記憶されているRTT閾値で除算した値や、目標送信レートBを送信レートとする。
送信レート制御部N104から送信レートがパケット送信部N105に通知され、パケット送信部N105はその通知された送信レートでパケットを送信する(ステップR9)。
送信パケットに対するACK(確認応答)パケットが受信端末から返信されると、パケット受信部N106でACKパケットを受信する(ステップR10)。
その後、RTT計測部N107で、送信パケットの送信時刻と送信したパケットに対して返信されたACKパケットを受信した受信時刻を利用してRTTを算出する(ステップR11)。
算出されたRTTは、目標送信レート決定記憶部N101とRTT判定部N108に通知される。
RTT判定部N108は、RTT計測部N107から通知されるRTTとRTT閾値決定記憶部N103から通知されるRTT閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する(ステップR12)。送受信端末間に他のトラヒックが存在しない場合、送信端末S1は、図19の最小RTT(RTT_min)を観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、RTT閾値を越えたRTTを観測する。従ってRTTがRTT閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部N102に通知する(ステップR13、R14)。
また、目標送信レート選択部N102は、目標送信レート決定記憶部N101から目標送信レートA,Bを通知され、RTT判定部N108から値「0」を通知された場合、目標送信レートBを、値「1」を通知された場合は、目標送信レートAを選択し、送信レート制御部N104に通知する。
送信レート制御部N104は、目標送信レート選択部N102から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートAの時、現在の送信レートが目標送信レートAよりも小さい場合は送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する。また、目標送信レートがBの時、どんな場合でも送信レートをBとする(ステップR15)。
決定した送信レートは目標送信レート決定記憶部N101とパケット送信部N105に通知される(ステップR16)。
パケット送信が終了していなければ(ステップR20)、上記決定した送信レートでパケット送信を行い(ステップR9)、パケット送信が終了している場合、コネクションを終了させる(ステップR21)。
なお、目標送信レート決定記憶部N101は、経路状態情報記憶部N13からボトルネックリンクの物理帯域上限値を通知され、目標送信レートAとして記憶しておくだけでなく、送信レート制御部N104から通知される送信レートとRTT計測部N107から通知されるRTTを組とする組情報を取得し、上述した推定手法を用いることにより、コネクション開設後にもボトルネックリンクの物理帯域上限値と最小RTTの推定を行う(ステップR17)。推定結果が記憶されている内容と異なる場合は、目標送信レート、RTT閾値を更新する(ステップR7)。そうでない場合は、推定結果を無視する(ステップR19)。
(第3の実施例の効果)
第3の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートBまで減少させる。目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
第1の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小RTTの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小RTTが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
さらに、パケット送信中においても、ボトルネックリンクの物理帯域上限値、最小RTTの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
本発明の第4の実施例について図面を参照して詳細に説明する。この第4の実施例では、図8に示すように、端末S1〜Snからなるネットワークに、それらの経路状態を管理する管理端末K10を配置している。
図9は第4の実施例による端末の内部構成を示している。ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。
端末S1は、経路状態情報推定部W10とデータ送受信制御部W100を備えている。
経路状態推定部W10は、測定パケット送受信部W11、経路状態計測部W12と経路状態情報取得・通知部W13を備えている。
データ送受信制御部W100は、内部に目標送信レート決定記憶部W101、目標送信レート選択部W102、RTT閾値決定記憶部W103、送信レート制御部W104、パケット送信部W105、パケット受信部W106、RTT計測部W107、RTT判定部W108を備えている。
図10は管理端末K10の内部構成を示すブロック図でり、管理端末K10には、経路状態推定依頼部K11、通信状態管理部K12、経路状態情報取得・通知部K13、経路状態情報記憶部K14が備えられている。各構成要素について、以下に説明する。
経路状態推定部W10は、管理端末K10からある受信端末との間の経路状態を推定するように依頼されると、測定パケット送受信部W11からある受信端末に対して測定パケットを送信して、経路状態計測部W12で送受信端末間のボトルネックリンクの物理帯域上限値と最小RTT(経路状態情報:ボトルネックリンクの物理帯域上限値、最小RTT)を推定する。
なお、ボトルネックリンクの物理帯域の推定方法については、第2の実施例で述べたように、第1の実施例で述べた推定手法や、Packet-Pair手法(非特許文献5に記載される手法)による推定方法が用いられる。ここでは、その詳細を省略する。
最小RTTは、第1の実施例で述べた推定手法や、Packet−Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してRTTを算出し、最小の値を推定結果とする。
推定された結果は、経路状態情報取得・通知部W13に通知され、経路状態情報と端末情報として受信バッファサイズを管理端末K10に通知する。受信バッファサイズの通知は、端末S2〜Snに中継を依頼する場合、受信バッファサイズが送信レート制御に大きく影響を与える。受信バッファが小さいと送信レートは低く抑えられ、受信バッファが大きいと高い送信レートを得ることが可能となるためである。また、コネクション開設後に、管理端末K10からボトルネックリンクの物理帯域上限値と最小RTTを取得して、目標送信レート決定記憶部W101とRTT閾値決定記憶部W103にそれぞれ通知する。
データ送受信制御部W100は、OSI参照モデルのトランスポート層プロトコルの1つであるTCP(Transmission Control Protocol)と同等の機能を有している。具体的には、コネクションの開設、中断、終了、確認応答機能、および再送制御機能である。
目標送信レート決定記憶部W101は、2つの目標送信レートA,Bを決定し記憶する。目標送信レートAは、コネクション開設後に、経路状態情報取得・通知部W13が管理端末K10から取得するボトルネックリンクの物理帯域上限値とする。目標送信レートBは、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTTで除算した値や、データ特性に応じた値値であって、目標送信レートAより小さい値が用いられる。
RTT閾値決定記憶部W103は、経路状態情取得・通知部W13が経路状態情報管理端末K10から取得する最小RTTに依存してRTT閾値を決定し記憶する。このとき経路状態情報取得・通知部W13から通知される値は、図19の最小RTT(RTT_min)と等しい値である。
RTT判定部W108は、RTT計測部W107から得られるRTTとRTT閾値決定記憶部W103から得られるRTT閾値とを用いて送受信端末間に他のトラヒックが存在するかどうか判定する。
本実施例では、送信レートの最大値を目標送信レートAとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、送信側の端末S1のRTT計測部W107では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部W102に通知する。
目標送信レート選択部W102は、RTT判定部W108から通知される情報に基づいて目標送信レート決定記憶部W101にある2つの目標送信レートA,Bのうちどちらか一方を選択する。
RTTがRTT閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートAを選択、逆にRTTがRTT閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると判断して目標送信レートとして目標送信レートBを選択する。選択した結果を送信レート制御部W104に通知する。
送信レート制御部W104は、目標送信レート選択部W102から通知された目標送信レートと、現在の送信レートを比較することにより、送信レートを決定する。目標送信レートがBの場合、現在の送信レートに関わらず送信レートをBに、目標送信レートがAの場合、現在の送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートがAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部W105は、送信レート制御部W104から通知された送信レートに従って、パケットを送信する。
パケット受信部W106は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてACKパケットを受信する部分である。
RTT計測部W107は、送信パケットの送信時刻と送信パケットに対して返信されたACKパケットの受信時刻を用いてRTTを計測する。
経路状態情報の管理端末K10は、経路状態推定依頼部K11、通信状態管理部K12、経路状態情報取得・通知部K13、経路状態情報記憶部K14を備えている。
経路状態情報取得・通知部K13は、端末が経路状態情報を推定した結果を取得し、経路状態情報記憶部K14に通知することと、コネクション開設後、送信側の端末からの経路状態情報の要求に対して、経路状態情報記憶部K14から経路状態情報を取得して、その端末に対して通知する。また、送信側の端末が、経路状態情報を要求してきた場合は、通信状態管理部K12に対して、通信が行われる端末を通知する。
経路状態情報記憶部K14は、管理下におかれている端末が行った経路状態の推定結果を記憶しておく。
通信状態管理部K12は、経路状態情報取得・通知部K13からどの端末が通信を行っているのか通知を受け、その端末を記憶しておく。端末に経路状態の推定を行わせるに当たって、通信を行っている経路上に測定パケットが流れ、通信に影響を与えないように、通信を行っていない端末の情報を経路情報推定依頼部K11に通知する。
経路状態推定依頼部K11は、通信状態管理部K12から通知を受けた通信を行っていない端末に対して経路状態推定依頼を行う。
(動作の説明)
次に、図9、図10、図11および図12を参照して、本発明の第4の実施例の動作について詳細に説明する。
図8でS1〜Snがデータを送信する場合の動作は同じであるが、ここでは、端末S1が送信側の端末、端末S2が受信側の端末としてデータ通信を行う場合を考える。
図11において、経路状態情報管理端末K10は、経路状態推定依頼部K11から端末S1〜Snに対して、経路状態推定依頼の通知を行う(ステップD1)。各端末の経路状態推定部W10は、推定依頼の通知を受け取ると推定を行う。測定を行った結果と受信バッファサイズは、経路状態情報取得・通知部K13で取得し、経路状態情報記憶部K14に通知され記憶される(ステップD2)。
図12で、コネクションが開設されると(ステップD7)、端末S1の経路状態情報取得・通知部W13は管理端末K10に対して経路状態情報を要求する(ステップD8)。
コネクション開設の通知と送信端末S1からの経路状態情報の要求は、経路状態情報管理端末K10の経路状態情報取得・通知部K13で受信される(ステップD3)。経路状態情報取得・通知部K13は、端末S1と端末S2で通信が行われることを通信状態管理部K12に通知し、通信状態管理部K12にその情報を記憶しておく(ステップD4)。
また、経路状態情報記憶部K14から経路状態情報、受信バッファサイズを取得して、送信端末S1に対して通知する(ステップD6)。
経路状態情報取得・通知部W13は、経路状態を取得して、ボトルネックリンクの物理帯域上限値を目標送信レートW101に通知し、最小RTTをRTT閾値決定記憶部W103に通知する。
目標送信レート決定記憶部W101は、通知された帯域を目標送信レート値Aとし、目標送信レート値Bは、Aより小さい値で与える。目標送信レート値Bとしては、例えば、パケットサイズを現在観測しているRTTで除算したものや、データ特性に依存した送信レート値が考えられる。一方、RTT閾値決定記憶部W103は、通知された最小RTTに基づいてRTT閾値を決定する(ステップD9)。
管理端末K10は、通信状態管理部K12から通信を行っていない端末(この場合、端末S1と端末S2)を経路状態推定依頼部K11に対して通知し、端末S1〜Snで行われている通信に影響を与えないように、通知を受けた端末に対して経路状態の推定を依頼し、推定結果、受信バッファサイズを取得する(ステップD1、D2)。
目標送信レート値とRTT閾値が決定すると、送信レート制御部W104は、送信レートの初期化を行い(ステップD10)、送信レートをパケット送信部W105に通知し、パケット送信部W105はその通知された送信レートでパケットを送信する(ステップD11)。
送信パケットに対するACK(確認応答)パケットが受信端末から返信されるとパケット受信部W106でACKパケットを受信する(ステップD12)。
その後、RTT計測部W107で、送信パケットの送信時刻と送信したパケットに対して返信されたACKパケットを受信した受信時刻を利用してRTTを算出する(ステップD13)。
算出されたRTTは、RTT判定部W108に通知され、RTT判定部W108は、算出されたRTTとRTT閾値決定記憶部W103から通知されるRTT閾値と比較して、RTTがRTT閾値より大きい場合は、値「0」を、RTTがRTT閾値以下の場合は、値「1」を目標送信レート選択部に通知する(ステップD14)。
また、目標送信レート選択部W102は、目標送信レート決定記憶部W101から目標送信レートA,Bを通知され、RTT判定部W108から値「0」を通知された場合、目標送信レートBを、値「1」を通知された場合は目標送信レートAを選択し、送信レート制御部W104に通知する(ステップD15、D16)。
送信レート制御部W104は、目標送信レート選択部W102から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートAの時、現在の送信レートがAよりも小さい場合は送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する。また、目標送信レートがBの時、どんな場合でも送信レートをBとする(ステップD17)。
決定した送信レートは送信レート送信部W105に通知される(ステップD18)。
パケット送信が終了していなければ(ステップD19)、上記決定した送信レートでパケット送信を行い(ステップD11)、パケット送信が終了している場合、コネクションを終了させ(ステップD20)、コネクション終了を経路状態情報管理端末K10の通信状態管理部K12に通知する(ステップD21)。
(第4の実施例の効果)
第3の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートBまで減少させる。目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
管理端末K10は、どの端末間で通信が行われているか把握しているため、他の通信に影響を与えないように、各端末にボトルネックリンクの物理帯域上限値、最小RTTの推定を行わせることが可能となる。
本発明の第5の実施例について図面を参照して詳細に説明する。ネットワーク構成は図1と同じであり、ネットワーク上に端末S1〜Snが配置されており、端末S1〜Sn同士でデータ通信を行う。
ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。
図13は第5の実施例による端末S1の内部構成をあらわしている。端末S1には、情報通知取得部X10、データ送受信制御部X100が備えられている。
情報通知取得部X10は、経路状態・端末情報通知取得部X11と経路状態・端末情報記憶部X12を備えている。
データ送受信制御部X100には、目標送信レート推定部X101、目標送信レート決定記憶部X102、RTT閾値決定記憶部X103、目標送信レート選択部X104、送信レート制御部X105、パケット送信部X106、パケット受信部X107、RTT計測部X108、RTT判定部X109が備えられている。各構成要素について、以下に説明する。
経路状態・端末情報通知取得部X11は、目標送信レート決定記憶部X101とRTT閾値決定記憶部X103から経路状態情報(ボトルネックリンクの物理帯域と送受信端末間の最小RTT)を取得し、端末S2〜Snに対して経路状態情報と自端末の受信バッファのサイズを通知する。
通知された経路状態情報と受信バッファサイズは、経路状態・端末情報記憶部X12に記憶する。経路状態情報とは、端末間のボトルネックリンクの物理帯域と最小RTTであり、端末情報は、受信バッファサイズである。
経路状態情報(ボトルネックリンクの物理帯域、最小RTT)を各端末に通知することにより、データ特性(例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる)に応じて経路を選択することが可能となる。また、端末S2〜Snに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
目標送信レート推定部X101は、送信レート制御部X105から通知される送信レートと、RTT計測部X108から通知されるRTTによって、送受信端末間のボトルネックリンクの物理帯域上限値(目標送信レートA)の推定を行う。推定方法については、第1の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部N101は、この推定方法により、目標送信レートAを推定する。
目標送信レート決定記憶部X102は、目標送信レートA,B決定し、記憶する。目標送信レートAについては、目標送信レート推定部X101から通知されるレート値で、目標送信レートBは、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTT閾値決定記憶部X103に記憶されているRTT閾値で除算した値や、データ特性に応じて決定される。
RTT閾値決定記憶部X103は、第1の実施例で示した推定方法で得られるウィンドウサイズとRTTの組情報を目標送信レート推定部X101から取得し、図19の最小RTT(RTT_min)をRTT閾値として決定し、記憶させる。本発明においては、ウィンドウサイズについて、図19のウィンドウサイズWA以下の値で送信レートの制御を行うため、送信側で観測するRTTが最小RTT(RTT_min)を越えると他のトラヒックが存在していると判断することが可能である。
RTT判定部X109は、RTT計測部X108から得られるRTTとRTT閾値決定記憶部X103から得られるRTT閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
本実施例では、ウィンドウサイズ(1RTT間に送信するパケット量)の最大値を図19のウィンドウサイズWAとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、送信側の端末S1のRTT計測部X108では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTT計測部X108は、測定したRTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部X104に通知する。
目標送信レート選択部X104は、RTT判定部X109からの情報として値「0」を通知された場合(送受信端末間のボトルネックリンクに他のトラヒックが存在している)、目標送信レートBを選択し、値「1」を通知された場合には(送受信端末間のボトルネックリンクに他のトラヒックが存在していない)、目標送信レートAを選択する。選択した結果は、送信レート制御部X105に通知する。
送信レート制御部X105は、目標送信レート選択部X104から通知される目標レートと現在の送信レートを比較することにより送信レートを決定し、パケット送信部X106と目標送信レート推定部X101に通知する。目標送信レートがBの場合、送信レートをBに、目標送信レートがAの場合、現在の送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部X106は、送信レート制御部X105から通知された送信レートでパケットを送信する。
パケット受信部X107は、他の端末から送信されたパケットや、送信パケットに対するACK(確認応答)パケットを受信する。また、受信バッファサイズを
RTT計測部X108は、データパケットの送信時刻とACK(確認応答)パケットの受信時刻を利用してRTT(往復遅延時間)を計測する。計測したRTTは、RTT判定部X109に通知される。
(動作の説明)
次に、図13、図14および図19を参照して、本発明の第5の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合、端末S1〜Snの端末は同じ動作をするので、端末S1が送信側の端末としてデータ通信を行う場合を考える。
図14において、コネクションが開設されると(ステップE1)、まず、目標送信レート推定部X101が、目標送信レート決定記憶部X102とRTT閾値決定記憶部X103に問い合せ、過去の通信において得られた履歴情報(目標送信レートA,BとRTT閾値)が記憶されているか確認を行う(ステップE2)。記憶されている場合はそれぞれの記憶されている値によって目標送信レートA、BとRTT閾値を決定する(ステップE3)。履歴情報が記憶されていない場合には、パケット送信中にあるウィンドウサイズとあるウィンドウサイズに対するRTTを組とする組情報を取得して、目標送信レートA,B、RTT閾値を推測し(ステップE4)、決定する。
以下では、上記の履歴情報(目標送信レートA、BとRTT閾値)がコネクション開設時に記憶されている場合とそうでない場合で分けて記述する。
ステップE2で履歴情報が記憶されている場合、パケット送信開始にあたって、送信レート制御部X105において、送信レートの初期化を行う(ステップE5)。この初期化では、例えば、パケットサイズをRTT閾値決定記憶部X103に記憶されているRTT閾値(RTT_min)で除算した値や、目標送信レートBを送信レートとする。
パケット送信部X106は送信レート制御部X105から通知される送信レートでパケットを送信する(ステップE6)。送信パケットに対する確認応答としてACKパケットが受信側から返信されるとパケット受信部X107で受信を行う(ステップE7)。
ACKパケットの受信を行うと、RTT計測部X108でパケットを送信した時刻と、前述の送信パケットに対するACKパケットを受信した時刻を利用してRTTを計測する(ステップE8)。
RTT判定部X109は、RTT計測部X108から通知されるRTTとRTT閾値決定記憶部X103から通知されるRTT閾値を比較して、送受信端末間のボトルネックリンクに他のトラヒックが存在するかどうか判定を行う(ステップE9)。
本実施例では、ウィンドウサイズ(1RTT間で送信するパケットの量)をウィンドウサイズWA以下の範囲で制御を行うため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、送信端末は図19のRTT閾値(RTT_min)のRTTを観測する。送受信端末間のボトルネックリンクに他のトラヒックが存在する場合はRTT閾値(RTT_min)よりも大きいRTTを観測する。そこで、RTTがRTT閾値よりも大きい場合は、ボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値と等しい場合は、ボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部X104に通知する。目標送信レート選択部X104は、RTT判定部X109から値「0」の通知を受けると目標送信レートBを選択し、値「1」の通知を受けると目標送信レートAを選択する。その結果を送信レート制御部X105に通知する(ステップE10、E11)。
送信レート制御部X105は、目標送信レートBの通知を受け取ると、送信レートをBとする。目標送信レートAの通知を受け取ると、現在の送信レートとAを比較して、現在の送信レートが目標送信レートAよりも小さい場合、送信レートを目標送信レートAまで増加させる。現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、を維持しあるいは目標送信レートAに設定する(ステップE12)。送信レート制御部X105は決定した送信レートをパケット送信部X106に通知する(ステップE13)。
パケット送信が終了していなければ(ステップE14)、上記決定した送信レートでパケット送信を行い(ステップE6)、パケット送信が終了している場合、コネクションを終了させる(ステップE15)。
経路状態・端末情報通知取得部X11は、経路状態・端末情報記憶部X12から経路状態情報を取得し、経路状態情報と受信バッファのサイズを端末S2〜Snへ通知する(ステップE16)。
履歴情報が記憶されていない場合、送信レート制御部X105で送信レートを初期化する。この場合の初期化では、RTTは記憶されていた既知値ではないので、送信レートとしてウィンドウサイズを1パケットとする。また、送信レートを目標送信レート推定部X101に通知すると共に、パケット送信部L106に通知し当該送信レートでパケットの送信を行う。
送信パケットに対する確認応答としてACKパケットが受信側から返信されるとパケット受信部X107で受信を行う。受信を行うと、RTT計測部X108でパケットを送信した時刻と、前述の送信パケットに対するACKパケットを受信した時刻を利用してRTTを計測し、目標送信レート推定部X101に通知する。
目標送信レート推定部X101は、ウィンドウサイズ(1RTT間で送信されるパケットの量)とウィンドウサイズ(1RTT間で送信されるパケットの量)に対するRTTを組とする組情報を記憶しておく。送信レート制御部X105は、従来のTCPの送信レート制御方式を用いて送信レートの制御を行う。目標送信レート推定部L101は、複数の組情報を収集し、第1の実施例で示した推定手法により、目標送信レートA,BとRTT閾値を決定する。また、目標送信レートAとRTT閾値はそれぞれ目標送信レート決定記憶部X102とRTT閾値決定記憶部X103から経路状態・端末情報通知取得部X12に通知される。
目標送信レートA,BとRTT閾値を決定すると、それ以降の動作(ステップE5以降の動作)は、コネクション開設時に履歴情報を記憶している場合と同じである。
(第5の実施例の効果)
第1の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レートの制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
また、従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在すると推測してウィンドウサイズを半分、もしくは”1”まで減少させるが、本実施例では、他のトラヒックが存在すると判断すると、送信レートを目標送信レートBまで減少させる。この目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
データ転送によって得られたボトルネックリンクの物理帯域上限値、最小RTTと受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
本発明の第6の実施例について図面を参照して詳細に説明する。ネットワーク構成は図1と同じであり、ネットワーク上に端末S1〜Snが配置されており、端末S1〜Sn同士でデータ通信を行う。
ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。
図15を参照すると、第6の実施例による端末S1は、経路状態推定部Y10とデータ送受信制御部Y100を備えている。
経路状態推定部Y10は、端末間の帯域、RTTの計測を行い。計測した結果から経路状態の推定を行う機能を有し、試験パケット送受信部Y11、経路状態計測部Y12、そして経路状態・端末情報記憶部Y13、経路状態・端末情報通知取得部Y14を備えている。
データ送受信制御部Y100は、経路状態推定部Y10で推定された経路状態情報に依存して送信レート制御を行う機能を有し、目標送信レート決定記憶部Y101、目標送信レート選択部Y102、送信レート制御部Y104、パケット送信部Y105、パケット受信部Y106、RTT計測部Y107、RTT判定部Y108、RTT閾値決定記憶部Y103を備えている。各構成要素について、以下に説明する。
経路状態推定部Y10は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶させる機能とを備えている。経路状態情報とは、ボトルネックリンクの物理帯域と最小RTTである。ボトルネックリンクの物理帯域の推定は、なお、ボトルネックリンクの物理帯域の推定方法については、第2の実施例で述べたように、第1の実施例で述べた推定手法や、Packet-Pair手法(非特許文献5に記載される手法)による推定方法が用いられる。ここでは、その詳細を省略する。
最小RTTは、第1の実施例で述べた推定手法や、Packet−Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してRTTを算出し、最小の値を推定結果とする。推定された結果は、経路状態情報記憶部Y12に記憶される。記憶された結果はデータ送受信制御部Y100に通知され、送信レートの決定に利用される。
また、経路状態・端末情報通知取得部Y14は、経路状態・端末情報記憶部Y13から得られる経路状態情報(ボトルネックリンクの物理帯域、最小RTT)と受信バッファサイズを端末S2〜Snに通知する。これにより、データ特性(例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる)に応じて経路を選択することが可能となる。また、端末S2〜Snに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
データ送受信制御部Y100は、OSI参照モデルのトランスポート層プロトコルの1つであるTCP(Transmission Control Protocolと同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
目標送信レート決定記憶部Y101は、2つの目標送信レートA,Bを決定し、記憶する。目標送信レートAについては、経路状態情報記憶部Y13から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートBは、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTTで除算した値や、データ特性に応じた値で決定される。
RTT閾値決定記憶部Y103は、経路状態・端末情報記憶部Y13から通知される値を、RTT閾値として記憶する。このとき経路状態・端末情報記憶部Y13から通知される値は、図19の最小RTT(RTT_min)と等しい値である。
RTT判定部Y108は、RTT計測部Y107から得られるRTTとRTT閾値決定記憶部Y103から得られるRTT閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
本実施例では、送信レートの最大値を目標送信レートAとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、送信側の端末S1のRTT計測部Y107では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTT計測部Y107は、測定したRTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部Y104に通知する。
目標送信レート選択部Y102は、RTT判定部Y108から通知される情報に基づいて目標送信レート記憶部にある2つの目標送信レートA,Bのうちどちらか一方を選択する。RTTがRTT閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートAを選択、逆にRTTがRTT閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートBを選択する。選択した結果を送信レート制御部Y104に通知する。
送信レート制御部Y104は、目標送信レート選択部Y102から通知された目標送信レートと、現在の送信レートを比較することにより送信レートを決定する。目標送信レートがBの場合、送信レートをBに、目標送信レートがAの場合、送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部Y105は、送信レート制御部Y104から通知された送信レートに従って、パケットを送信する。
パケット受信部Y106は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてACKパケットを受信する部分である。
RTT計測部Y107は、送信パケットの送信時刻と送信パケットに対して返信されたACKパケットの受信時刻を用いてRTTを計測する。
(動作の説明)
次に、図1、図15および図16を参照して、本発明の第6の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合、端末S1〜Snの端末は同じ動作をするので、端末S1が送信側の端末としてデータ通信を行う場合を考える。
図16において、端末S1の経路状態推定部Y10は、送受信端末間のボトルネックリンクと最小RTTの推定を行う。この推定処理においては、まず、測定パケット送受信部Y11から測定パケットを送信する(ステップF1)。そして、受信側の端末からのACKパケットを受信する(ステップF2)。
経路状態計測部Y12は、計測した値からボトルネックリンクの物理帯域と最小RTTの推定を行い、経路状態・端末情報記憶部Y13に通知する(ステップF3、F4)。経路状態・端末情報記憶部Y13は、経路状態計測部Y12から通知された物理帯域上限値と最小RTTを記憶し、経路状態・端末情報通知取得部Y14は経路状態情報記憶部Y13から経路状態情報を取得し、端末S2〜Snに対して通知する(ステップF5)。
コネクションが開設されると(ステップF6)、経路状態・端末情報記憶部Y13から、目標送信レート記憶部Y101とRTT閾値決定記憶部Y103に対して、それぞれボトルネックの物理帯域と最小RTTが通知される。
RTT閾値決定記憶部Y103は、通知された最小RTTに依存してRTT閾値を決定し記憶する。目標送信レート決定記憶部Y101は、通知された物理帯域上限値を目標送信レート値Aとし、目標送信レート値Bは、Aより小さい値で与える(ステップF7)。例えば、目標送信レート値Bとしては、パケットサイズをRTTで除算した値や、データ特性に依存した送信レート値が考えられる。
目標送信レート値A、BとRTT閾値が決定すると、送信レート制御部Y104は、送信レートの初期化を行う(ステップE8)。この初期化では、例えば、パケットサイズをRTTで除算した値や、目標送信レートBを送信レートとする。
送信レート制御部Y104から送信レートがパケット送信部Y105に通知され、パケット送信部Y105はその通知された送信レートでパケットを送信する(ステップE9)。
送信パケットに対するACK(確認応答)パケットが受信端末から返信されるとパケット受信部Y106でACKパケットを受信する(ステップE10)。
その後、RTT計測部Y107で、送信パケットの送信時刻と送信したパケットに対して返信されたACKパケットを受信した受信時刻を利用してRTTを算出する(ステップE11)。
RTT判定部Y108は、RTT計測部Y107から通知されるRTTとRTT閾値決定記憶部Y103から通知されるRTT閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する(ステップE12)。送受信端末間に他のトラヒックが存在しない場合、送信端末S1は、図19のRTT_minを観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、RTT閾値を越えたRTTを観測する。従ってRTTがRTT閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部Y102に通知する(ステップE13、E14)。
また、目標送信レート選択部Y102は、目標送信レート決定記憶部Y101から目標送信レートA,Bを通知され、RTT判定部Y108から値「0」を通知された場合、目標送信レートBを、値「1」を通知された場合は、目標送信レートAを選択し、送信レート制御部Y104に通知する。
送信レート制御部Y104は、目標送信レート選択部Y102から目標送信レートBの通知を受け取ると、送信レートをBとする。目標送信レートAの通知を受け取ると、通知された目標送信レートと現在の送信レートの比較を行い、目標送信レートが目標送信レートAの時、現在の送信レートがAよりも小さい場合は送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する(ステップE15)。
送信レート制御部Y104は決定した送信レートをパケット送信部Y105に通知する(ステップE16)。パケット送信が終了していなければ(ステップE17)、上記決定した送信レートでパケット送信を行い(ステップE9)、パケット送信が終了している場合、コネクションを終了させる(ステップE18)。
(第6の実施例の効果)
第6の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域上限値)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートBまで減少させる。目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点をを解消できる。
第1の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小RTTの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小RTTが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
得られたボトルネックリンクの物理帯域、最小RTT、受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
本発明の第7の実施例について図面を参照して詳細に説明する。ネットワーク構成は図1と同じであり、ネットワーク上に端末S1〜Snが配置されており、端末S1〜Sn同士でデータ通信を行う。
ここでも、端末S1〜Snは、同じ内部構成であるため、端末S1について説明する。
図17を参照すると、第7の実施例による端末S1は、経路状態推定部Z10とデータ送受信制御部Z100を備えている。
経路状態推定部Z10は、端末間の帯域、RTTの計測を行い。計測した結果から経路状態の推定を行う機能を有し、試験パケット送受信部Z11、経路状態計測部Z12、そして経路状態・端末情報記憶部Z13、経路状態・端末情報通知取得部Z14を備えている。
データ送受信制御部Z100は、経路状態推定部Z10で推定された経路状態情報に依存して送信レート制御を行う機能を有し、目標送信レート決定記憶部Z101、目標送信レート選択部Z102、送信レート制御部Z104、パケット送信部Z105、パケット受信部Z106、RTT計測部Z107、RTT判定部Z108、RTT閾値決定記憶部Z103を備えている。各構成要素について、以下に説明する。
経路状態推定部Z10は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能を備えている。経路状態情報とは、ボトルネックリンクの物理帯域と最小RTTを含む情報である。ボトルネックリンクの物理帯域の推定は、第2の実施例で述べたように、第1の実施例で述べた推定手法や、Packet-Pair手法(非特許文献5に記載される手法)による推定方法が用いられる。ここでは、その詳細を省略する。
最小RTTは、第1の実施例で述べた推定手法や、Packet−Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してRTTを算出し、最小の値を推定結果とする。推定した結果は、経路状態情報記憶部Z12に記憶される。記憶された結果はデータ送受信制御部Z100に通知され、送信レートの決定に利用される。
また、経路状態・端末情報通知取得部Z14は、経路状態・端末情報記憶部Z13から得られる経路状態情報(ボトルネックリンクの物理帯域、最小RTT)と受信バッファサイズを端末S2〜Snに通知する。これにより、データ特性(例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる)に応じて経路を選択することが可能となる。また、端末S2〜Snに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
データ送受信制御部Z100は、(OSI参照モデルのトランスポート層プロトコルの1つであるTCP(Transmission Control Protocol)と同等の機能を有している。具体的には、)コネクションの開設、中断、終了、確認応答機能、再送制御機能、および輻輳制御機能である。
目標送信レート決定記憶部Z101は、経路状態情報推定部から通知される経路状態情報に基づいて受信側の端末ごとに2つの目標送信レートA,Bを決定する。目標送信レートAについては、受信側の端末までの経路に他のトラヒックがいない時に出せる最大の送信レート値とし、目標送信レートBは、Aよりも小さい値である。目標送信レートBとしては、パケットサイズをRTTで除算した値や、データ特性に応じてアプリケーションから指示された送信レート値であって、目標送信レートAより小さい値が用いられる。
また、目標送信レート決定記憶部Z101は、送信レート制御部Z104から通知される送信レート値とRTT計測部Z107で計測されるRTTを用いた経路状態の推定も行う。データ送信中における推定については、第1の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部Z101は、この推定方法により、目標送信レートAを推定する。
目標送信レート決定記憶部Z101は、2つの目標送信レートA,Bを決定し、記憶する。目標送信レートAについては、経路状態情報記憶部Z13から通知されるボトルネックリンクの物理帯域値上限値とする。目標送信レートBについては、目標送信レートAよりも小さい値で決定される。目標送信レートBとしては、例えば、パケットサイズをRTTで除算した値や、データ特性に応じた値で決定される。また、パケット送信中においても、送信レート制御部Z104から送信レート値とRTT計測部Z107からRTT値を取得して、ボトルネックリンクの物理帯域値上限値の推定を行う。
RTT閾値決定記憶部Z103は、経路状態情報記憶部Z13から通知される値を、RTT閾値として記憶する。このとき経路状態・端末情報記憶部Z13から通知される値は、図19の最小RTT(RTT_min)と等しい値である。
RTT判定部Z108は、RTT計測部Z107から得られるRTTとRTT閾値決定記憶部Z103から得られるRTT閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
本実施例では、送信レートの最大値を目標送信レートAとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるRTTは、図19の最小RTT(RTT_min)となる。
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、送信側の端末S1のRTT計測部Z107では、最小RTT(RTT_min)を越えたRTT値を観測する。従って、RTT計測部Z107は、計測したRTTがRTT閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「0」を、RTTがRTT閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「1」を目標送信レート選択部Z104に通知する。
目標送信レート選択部Z102は、RTT判定部Z108から通知される情報に基づいて目標送信レート決定記憶部Z101にある2つの目標送信レートA,Bのうちどちらか一方を選択する。RTTがRTT閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートAを選択、逆にRTTがRTT閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートBを選択する。選択した結果を送信レート制御部Z104に通知する。
送信レート制御部Z104は、目標送信レート選択部Z102から通知された目標送信レートと、現在の送信レートを比較することにより送信レートを決定する。目標送信レートがBの場合、現在の送信レートに関わらず送信レートをBに、目標送信レートがAの場合、送信レートがAよりも小さい場合は、送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートをAにする。
パケット送信部Z105は、送信レート制御部Z104から通知された送信レートに従って、パケットを送信する。
パケット受信部Z106は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてACKパケットを受信する部分である。
RTT計測部Z107は、送信パケットの送信時刻と送信パケットに対して返信されたACKパケットの受信時刻を用いてRTTを計測する。
(動作の説明)
次に、図1、図17および図18を参照して、本発明の第7の実施例の動作について詳細に説明する。
図1でS1〜Snがデータを送信する場合の動作は同じであるので、ここでは端末S1が送信端末としてデータ通信を行う場合を考える。
図18において、端末S1の経路状態推定部Z10は、送受信端末間のボトルネックリンクと最小RTTの推定を行う。この推定処理においては、まず、測定パケット送受信部Z11から測定パケットを送信する(ステップG1)。そして、受信側の端末からのフィードバックとしてACKパケットを受信する(ステップG2)。
経路状態計測部Z12は、計測した値からボトルネックリンクの物理帯域上限値と最小RTTの推定を行い、経路状態・端末情報記憶部Z13に通知する(ステップG3、G4)。経路状態・端末情報記憶部Z13は、経路状態計測部Z12から通知された物理帯域上限値と最小RTTを記憶する。また、経路状態・端末情報通知取得部Z14は経路状態情報記憶部Z13から経路状態情報を取得し、端末S2〜Snに対して通知する(ステップG5)。
コネクションが開設されると(ステップG6)、経路状態・端末情報記憶部Z13から、目標送信レート記憶部Z101とRTT閾値決定記憶部Z103に対して、それぞれボトルネックの物理帯域上限値と最小RTTが通知される。
RTT閾値決定記憶部Z103は、通知された最小RTTに基づいてRTT閾値を決定し記憶する。一方、目標送信レート決定記憶部Z101は、通知された物理帯域上限値を目標送信レート値Aとし、目標送信レート値Bは、Aより小さい値で与える(ステップG7)。例えば、目標送信レート値Bとしては、パケットサイズをRTTで除算した値や、データ特性に依存した送信レート値が考えられる。
目標送信レート値A,BとRTT閾値が決定すると、送信レート制御部Z104は、送信レートの処理化を行う(ステップG8)。この初期化では、例えば、パケットサイズをRTT閾値で除算した値や、目標送信レートBを送信レートとする。
送信レート制御部Z104から送信レートがパケット送信部Z105に通知され、パケット送信部Z105はその通知された送信レートでパケットを送信する(ステップG9)。
送信パケットに対するACK(確認応答)パケットが受信側の端末から返信されるとパケット受信部Z106でACKパケットを受信する(ステップG10)。
その後、RTT計測部Z107で、送信パケットの送信時刻と送信したパケットに対して返信されたACKパケットを受信した受信時刻を利用してRTTを算出する(ステップG11)。
算出されたRTTは、目標送信レート決定記憶部Z101とRTT判定部Z108に通知される。
RTT判定部Z108は、RTT計測部Z107から通知されるRTTとRTT閾値決定記憶部Z103から通知されるRTT閾値を比較することにより、送受信端末間の経路に他のトラヒックが存在するかどうか判定する(ステップG12)。送受信端末間に他のトラヒックが存在しない場合、送信端末S1は、図19の最小RTT(RTT_min)を観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、RTT閾値を越えたRTTを観測する。従ってRTTがRTT閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「0」を、RTTがRTT閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「1」を目標送信レート選択部Z102に通知する(ステップG13、G14)。
また、目標送信レート選択部Z102は、目標送信レート決定記憶部Z101から目標送信レートA,Bを通知され、RTT判定部Z108から値「0」を通知された場合、目標送信レートBを、値「1」を通知された場合は、目標送信レートAを選択し、送信レート制御部Z104に通知する。
送信レート制御部Z104は、目標送信レート選択部Z102から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートAの時、現在の送信レートが目標送信レートAよりも小さい場合は送信レートを目標送信レートAまで増加させ、現在の送信レートが目標送信レートAと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートAに設定する。また、目標送信レートがBの時、どんな場合でも送信レートをBとする。また、目標送信レートがBの時、どんな場合でも送信レートをBとする(ステップG15)。
決定した送信レートは目標送信レート決定記憶部Z101とパケット送信部Z105に通知される(ステップG16)。
パケット送信が終了していなければ(ステップG20)、上記決定した送信レートでパケット送信を行い(ステップG9)、パケット送信が終了している場合、コネクションを終了させる(ステップG21)。
なお、目標送信レート決定記憶部Z101は、経路状態情報記憶部Z13からボトルネックリンクの物理帯域上限値を通知され、目標送信レートAとして記憶しておくだけでなく、送信レート制御部Z104から通知される送信レートとRTT計測部Z107から通知されるRTTを組とする組情報を取得し、上述した推定手法を用いることにより、コネクション開設後にもボトルネックリンクの物理帯域上限値と最小RTTの推定を行う(ステップG17)。推定結果が記憶されている内容と異なる場合は、目標送信レート、RTT閾値を更新する(ステップG7)。そうでない場合は、推定結果を無視する(ステップG19)。
(第7の実施例の効果)
第7の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているRTTがある値を超えるまでは送信レートを増加させ、観測しているRTTがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているRTTとRTT閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートA(ボトルネックリンクの物理帯域)でパケットを送信するためリンクの利用率が向上し、従来方式の第1及び第2の問題点を解消している。
従来方式では、観測しているRTTがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは1パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートBまで減少させる。目標送信レートBは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第3の問題点を解消できる。
第1の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小RTTの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小RTTが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
パケット送信中においても、ボトルネックリンクの物理帯域上限値、最小RTTの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
得られたボトルネックリンクの物理帯域上限値、最小RTT、受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
なお、上述した各実施例における端末及び管理端末の各機能は、例えばコンピュータ装置に上述した各手段の機能を持たせることによって実現することができる。具体的には、CPUでそれぞれの機能をソフトウェア的に達成するプログラムを実行することで実現してもよい。上記各端末及び管理端末の機能をソフトウェア的に実現する場合には、プログラム制御可能なコンピュータ処理装置(CPU)上で、各機能を実現する通信プログラムをロードして実行する。この通信プログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、CPUの動作を制御することにより、各装置としての固有の機能を達成する。
以上、好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではない。本発明の要旨を逸脱しない範囲内において種々の変形が可能であることは言うまでもない。
本発明を適用するネットワーク構成を示す図である。
本発明の第1の実施例による端末のデータ送受信制御部の内部構成を示すブロック図である。
本発明の第1の実施例の動作の流れを示すフローチャートである。
本発明の第2の実施例による端末の内部構成を示すブロック図である。
本発明の第2の実施例の動作の流れを示すフローチャートである。
本発明の第3の実施例による端末の経路状態推定部とデータ送受信制御部の内部構成を示すブロック図である。
本発明の第3の実施例の動作の流れを示すフローチャートである。
本発明を適用する経路状態を管理する管理端末を配置したネットワーク構成を示す図である。
本発明の第4の実施例による端末の内部構成を示すブロック図である。
本発明の第4の実施例による管理端末の内部構成を示すブロック図である。
本発明の第4の実施例による管理端末の動作の流れを示すフローチャートである。
本発明の第4の実施例による送信端末の動作の流れを示すフローチャートである。
本発明の第5の実施例による端末の内部構成を示すブロック図である。
本発明の第5の実施例による送信端末の動作の流れを示すフローチャートである。
本発明の第6の実施例による端末の内部構成を示すブロック図である。
本発明の第6の実施例による送信端末の動作の流れを示すフローチャートである。
本発明の第7の実施例による端末の内部構成を示すブロック図である。
本発明の第7の実施例による送信端末の動作の流れを示すフローチャートである。
目標送信レート推定部による送受信端末間のボトルネックリンクの物理帯域の推定を行う場合の推定方法を説明する図である。
複数の端末からなるネットワーク構成例であって、ボトルネックリンクを説明するための図である。
本発明による送信レートの制御例を示す図である。
符号の説明
S1〜Sn: 送信端末
L100、M100、N100、W100、X100、Y100、Z100:データ送受信制御部
M10、N10、W10、Y10、Z10:経路状態推定部
X10:情報通知取得部
M13、N13、K14:経路状態情報記憶部
W13、K13:経路状態情報取得・通知部
L103、M103、N103、W103、X103、Y103、Z103:RTT閾値決定記憶部
L109、M108、N108、W108、X109、Y108、Z108:RTT判定部
L108、M107、N107、W107、X108、Y107、Z107:RTT計測部
L101、X101:目標送信レート推定部
L102、M101、N101、W101、X102、Y101、Z101:目標送信レート決定記憶部
L104、M102、N102、W102、X104、Y102、Z102:目標送信レート選択部
L105、M104、N104、W104、X105、Y104、Z104:送信レート制御部
L107、M106、N106、W106、X107、Y106、Z106:パケット受信部
L106、M105、N105、W105、X106、Y105、Z105:パケット送信部
M11:試験パケット送受信部
M12、N12、W12、Y12、Z12:経路状態計測部
N11、W11、Y11、Z11:測定パケット送受信部
X11、Y14、Z14:経路状態・端末情報通知取得部
X12、Y13、Z13:経路状態・端末情報記憶部
K11:経路状態推定依頼部
K12:通信状態管理部