(57)【要約】【課題】  送受信端末間の経路状態に基づいて効率的な送信レートの割り当て制御を可能にする通信システム、通信端末及び通信プログラムを提供する。【解決手段】    ネットワークを介し複数の端末間でデータの送受信を行う通信システムの送信側の端末Ｓ１が、受信側の端末Ｓ２との間のリンクにおける他のトラヒックの有無に応じて上限の目標送信レートＡと下限の目標送信レートＢを設定し、観測しているＲＴＴと最小のＲＴＴの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別して、他のトラヒックがある場合に、送信レートを下限の目標送信レートＢとし、他のトラヒックが無い場合に、送信レートを下限の目標送信レートＡとする。【選択図】      図２
2005198111.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介し複数の端末間でデータの送受信を行う通信システムであって、
送信側の端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定することを特徴とする通信システム。
【請求項２】
前記送信側の端末は、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて上限と下限の２種類の前記目標送信レートを設定することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記上限の目標送信レートは、前記送受信端末間のボトルネックリンクの物理帯域上限値とすることを特徴とする請求項２に記載の通信システム。
【請求項４】
前記下限の目標送信レートは、受信側の端末との間のリンクとデータの特性に基づいて決定されることを特徴とする請求項２に記載の通信システム。
【請求項５】
データ通信におけるウィンドウサイズと当該ウィンドウサイズに対して得られるＲＴＴを組とする複数の組情報から、最小のＲＴＴが一定に保たれている状態から増加に遷移する境界でのウィンドウサイズを、前記最小のＲＴＴで除算した送信レートを、前記上限の目標送信レートとすることを特徴とする請求項２から請求項４の何れか１項に記載の通信システム。
【請求項６】
観測しているＲＴＴと前記最小のＲＴＴの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別することを特徴とする請求項５に記載の通信システム。
【請求項７】
前記最小のＲＴＴを下回るＲＴＴを観測している場合、送信レートを前記上限の目標送信レートとなるように制御し、前記最小のＲＴＴを上回るＲＴＴを観測している場合は、送信レートを前記下限の目標送信レートとなるように制御することを特徴とする請求項５又は請求項６に記載の通信システム。
【請求項８】
データ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする請求項５から請求項７の何れか１項に記載の通信システム。
【請求項９】
前記受信側の端末に対して試験パケットを送信することにより、前記上限の目標送信レートと前記最小のＲＴＴを取得することを特徴とする請求項５から請求項８の何れか１項に記載の通信システム。
【請求項１０】
前記受信側の端末に対する試験パケットの送信による計測とデータ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて、前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする請求項５から請求項９の何れか１項に記載の通信システム。
【請求項１１】
前記送信側の端末は、前期受信端末に対して前記上限の目標送信レート、前記最小のＲＴＴ、受信バッファサイズを通知することを特徴とする請求項５から請求項１０の何れか１項に記載の通信システム。
【請求項１２】
送受信端末と送受信端末間の経路状態を管理する管理端末を設け、前記管理端末が、送受信端末間の経路の帯域、ＲＴＴを含む経路状態情報の計測を前記端末に依頼して前記経路状態情報を取得し、前記送信側の端末が前記管理端末からの経路状態情報に基づいて、送信レートを前記上限の目標送信レート又は下限の目標送信レートに制御してデータ通信を行うことを特徴とする請求項５から請求項１１の何れか１項に記載の通信システム。
【請求項１３】
前記送信側の端末は、コネクション開設後、前記管理端末に前記経路状態情報を要求し、前記管理端末から得られた前記経路状態情報に基づいて前記目標送信レートと最小のＲＴＴを決定し、送信レートの制御を行うことを特徴とする請求項１２に記載の通信システム。
【請求項１４】
前記管理端末は、特定の前記端末間の経路状態情報を定期的に更新し、前記特定の端末に対して通知し、送信側の前記特定の端末は、前記経路状態情報に基づいて前記目標送信レートと最小のＲＴＴを決定し、送信レートの制御を行うことを特徴とする請求項１２に記載の通信システム。
【請求項１５】
前記管理端末からの経路状態情報に基づいて決定される前記上限の目標送信レートは、受信側の端末までの通信経路において、他のトラヒックが存在しない場合の最大の送信レートとすることを特徴とする請求項１２に記載の通信システム。
【請求項１６】
ネットワークを介してデータの送受信を行う通信端末であって、
送信側の通信端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定する手段を備えることを特徴とする通信端末。
【請求項１７】
前記送信側の通信端末は、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて上限と下限の２種類の前記目標送信レートを設定することを特徴とする請求項１６に記載の通信端末。
【請求項１８】
前記上限の目標送信レートは、前記送受信端末間のボトルネックリンクの物理帯域上限値とすることを特徴とする請求項１７に記載の通信端末。
【請求項１９】
前記下限の目標送信レートは、受信側の端末との間のリンクとデータの特性に基づいて決定されることを特徴とする請求項１７に記載の通信端末。
【請求項２０】
データ通信におけるウィンドウサイズと当該ウィンドウサイズに対して得られるＲＴＴを組とする複数の組情報から、最小のＲＴＴが一定に保たれている状態から増加に遷移する境界でのウィンドウサイズを、前記最小のＲＴＴで除算した送信レートを、前記上限の目標送信レートとすることを特徴とする請求項１７から請求項１９の何れか１項に記載の通信端末。
【請求項２１】
観測しているＲＴＴと前記最小のＲＴＴの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別することを特徴とする請求項２０に記載の通信端末。
【請求項２２】
前記最小のＲＴＴを下回るＲＴＴを観測している場合、送信レートを前記上限の目標送信レートとなるように制御し、前記最小のＲＴＴを上回るＲＴＴを観測している場合は、送信レートを前記下限の目標送信レートとなるように制御することを特徴とする請求項２０又は請求項２１に記載の通信端末。
【請求項２３】
データ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする請求項２０から請求項２２の何れか１項に記載の通信端末。
【請求項２４】
前記受信側の端末に対して試験パケットを送信することにより、前記上限の目標送信レートと前記最小のＲＴＴを取得する手段を備えることを特徴とする請求項２０から請求項２３の何れか１項に記載の通信端末。
【請求項２５】
前記受信側の端末に対する試験パケットの送信による計測とデータ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて、前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする請求項２０から請求項２４の何れか１項に記載の通信端末。
【請求項２６】
前記送信側の端末は、前期受信端末に対して前記上限の目標送信レート、前記最小のＲＴＴ、受信バッファサイズを通知することを特徴とする請求項２０から請求項２５の何れか１項に記載の通信端末。
【請求項２７】
ネットワークを介してデータの送受信を行う通信端末上で動作し、送信レートの制御を行う通信プログラムであって、
送信側の通信端末上で、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定する機能を実行することを特徴とする通信プログラム。
【請求項２８】
前記送信側の通信端末上で、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて上限と下限の２種類の前記目標送信レートを設定する機能を実行することを特徴とする請求項２７に記載の通信プログラム。
【請求項２９】
前記上限の目標送信レートを、前記送受信端末間のボトルネックリンクの物理帯域上限値に設定する機能を有することを特徴とする請求項２８に記載の通信プログラム。
【請求項３０】
前記下限の目標送信レートを、受信側の端末との間のリンクとデータの特性に基づいて決定する機能を有することを特徴とする請求項２８に記載の通信プログラム。
【請求項３１】
データ通信におけるウィンドウサイズと当該ウィンドウサイズに対して得られるＲＴＴを組とする複数の組情報から、最小のＲＴＴが一定に保たれている状態から増加に遷移する境界でのウィンドウサイズを、前記最小のＲＴＴで除算した送信レートを、前記上限の目標送信レートとする機能を有することを特徴とする請求項２８から請求項３０の何れか１項に記載の通信プログラム。
【請求項３２】
観測しているＲＴＴと前記最小のＲＴＴの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別する機能を有することを特徴とする請求項３１に記載の通信プログラム。
【請求項３３】
前記最小のＲＴＴを下回るＲＴＴを観測している場合、送信レートを前記上限の目標送信レートとなるように制御し、前記最小のＲＴＴを上回るＲＴＴを観測している場合は、送信レートを前記下限の目標送信レートとなるように制御する機能を有することを特徴とする請求項３１又は請求項３２に記載の通信プログラム。
【請求項３４】
データ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて前記上限の目標送信レートと前記最小のＲＴＴを決定する機能を有することを特徴とする請求項３１から請求項３３の何れか１項に記載の通信プログラム。
【請求項３５】
前記受信側の端末に対して試験パケットを送信することにより、前記上限の目標送信レートと前記最小のＲＴＴを取得する機能を有することを特徴とする請求項３１から請求項３４の何れか１項に記載の通信プログラム。
【請求項３６】
前記受信側の端末に対する試験パケットの送信による計測とデータ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて、前記上限の目標送信レートと前記最小のＲＴＴを決定する機能を有することを特徴とする請求項３１から請求項３５の何れか１項に記載の通信プログラム。
【請求項３７】
前記送信側の端末は、前期受信端末に対して前記上限の目標送信レート、前記最小のＲＴＴ、受信バッファサイズを通知する機能を有することを特徴とする請求項３１から請求項３６の何れか１項に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信端末及び通信プログラムに関し、特に、送受信端末間の経路および通信状況に応じて送信レートの制御を可能とする通信システム、通信端末及び通信プログラムに関する。
【背景技術】
【０００２】
トランスポート層の代表的なプロトコルとしてＴＣＰ(Transmission Control Protocol)が挙げられる。ＴＣＰは、ウィンドウサイズというパラメータを調節することにより送信レートを制御している。ウィンドウサイズは、１ＲＴＴ(Round Trip Time：往復遅延時間)間に送信されるパケットの量を表している。また、ＲＴＴ（Round Trip Time）は、パケットを送信して、そのパケットに対する確認応答として受信側から返信されるＡＣＫパケットを受信するまでの時間である。
【０００３】
ウィンドウサイズの調節は、ＡＣＫパケットの受信状況を利用している。ＡＣＫパケットには、どの送信パケットに対応しているか識別するために番号が付与されている。そのＡＣＫパケットに付与された番号が重複なく、送信側からパケットが送信されて、一定時間内にそのパケットに対するＡＣＫパケットを送信側で番号順に受信している場合は、ウィンドウサイズを増加させる。一方、送信側で、同じ番号のＡＣＫパケット受信や、パケットを送信してから、一定時間内にそのパケットに対するＡＣＫパケットを受信しなければ、送信側は、そのパケットが廃棄されたと判断、つまり、ネットワーク中で輻輳が発生したと判断してウィンドウサイズを減少させる。
【０００４】
ＴＣＰでは、上記のような送信レート制御において、同一のネットワーク環境で、同一のボトルネックリンクを経由する複数のＴＣＰコネクションは、ボトルネックリンク帯域を均等に配分した帯域を獲得することが報告されている(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：（非特許文献１）)。また、現在、広く普及しているTCPとしてRenoバージョン(W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms,” RFC2001,Jan 1997：（非特許文献２）)が挙げられる。ＴＣＰを利用したアプリケーションによっては、高帯域を必要とするものや、そうでないものがあるため、ＴＣＰコネクションに応じてスループットの優先度を制御することでリンクの利用率を向上させることができるが、上記ＲｅｎｏバージョンのＴＣＰコネクションに対してスループットの優先度を与える制御は実現されていない。このような課題に対する解決策として、次のような従来技術が存在する。
【０００５】
ＲｅｎｏバージョンのＴＣＰコネクションに対してスループットの低優先を実現するTCP-Nice(A.VenkataramAi et al. “TCP Nice: A MechAism for Background Transfers,”http://www.cs.utexas.edu/users/arun/pubs/nice.pdf：（非特許文献３）)やTCP-LP(D.Niclescu, B.R. Badrinath, “TCP-LP: A Distributed Algorithm for Low Priority Data Transfer,” Proceeding of IEEE INFOCOM2003, April：（非特許文献４）)等が提案されている。
【０００６】
通常の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がある値を超えるまではウィンドウサイズを単調（線形的に）に増加させる制御であるので、リンクの有効利用ができないということである。
【０００９】
従来方式の第２の問題点は、上記のように、送受信端末間で、自分以外のトラヒックが存在しなければ、送信レートをボトルネックリンクの物理帯域に維持するのが望ましいが、従来技術であるTCP-LPでは、観測しているRTTがある値を超えるまで単調に増加させ、ある値を超えるとウィンドウサイズを減少させるため、送受信端末間に他のトラヒックが存在していない場合においても、自分のトラヒックの影響で観測しているRTTがある値を超え、ウィンドウサイズを半分に減少させてしまい、リンクの利用率が低下することである。
【００１０】
従来方式の第３の問題点は、ボトルネックリンクを他のトラヒックと共有する場合、自分が送信するデータ特性に応じて、割り当て帯域を指定したいが、従来技術であるTCP-LP、TCP-Niceでは、他のトラヒックとボトルネックリンクを共有し観測しているRTTが閾値を超えるような状態が続く場合は、ウィンドウサイズを１パケットに維持するため自分のトラヒックに対して、データ特性に応じた帯域を割り当てることができないことである。
【００１１】
本発明の第１の目的は、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、ボトルネックリンクの物理帯域上限値でパケットを送信するように制御することができる通信システム、通信端末及び通信プログラムを提供することにある。
【００１２】
本発明の第２の目的は、送受信端末間のボトルネックリンクに他のトラヒックが存在する場合の送信レートを、データ特性に応じて決定できる通信システム、通信端末及び通信プログラムを提供することにある。
【００１３】
本発明の第３の目的は、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることができる通信システム、通信端末及び通信プログラムを提供することにある。
【００１４】
本発明の第４の目的は、ボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する通信システム、通信端末及び通信プログラムを提供することにある。
【００１５】
本発明の第５の目的は、他のトラヒックに影響を与えないように、送信レートの割り当て制御を行い、データ通信を行うことができる通信システム、通信端末及び通信プログラムを提供することにある。
【００１６】
本発明の第６の目的は、各端末は、データ特性に応じて経路、中継先の選択をすることが可能となる通信システム、通信端末及び通信プログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成する本発明は、ネットワークを介し複数の端末間でデータの送受信を行う通信システムであって、送信側の端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定することを特徴とする。
【００１８】
請求項２の本発明の通信システムは、前記送信側の端末は、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて上限と下限の２種類の前記目標送信レートを設定することを特徴とする。
【００１９】
請求項３の本発明の通信システムは、前記上限の目標送信レートは、前記送受信端末間のボトルネックリンクの物理帯域上限値とすることを特徴とする。
【００２０】
請求項４の本発明の通信システムは、前記下限の目標送信レートは、受信側の端末との間のリンクとデータの特性に基づいて決定されることを特徴とする。
【００２１】
請求項５の本発明の通信システムは、データ通信におけるウィンドウサイズと当該ウィンドウサイズに対して得られるＲＴＴを組とする複数の組情報から、最小のＲＴＴが一定に保たれている状態から増加に遷移する境界でのウィンドウサイズを、前記最小のＲＴＴで除算した送信レートを、前記上限の目標送信レートとすることを特徴とする。
【００２２】
請求項６の本発明の通信システムは、観測しているＲＴＴと前記最小のＲＴＴの大小関係から、受信側の端末との間のリンクにおける他のトラヒックの有無を判別することを特徴とする。
【００２３】
請求項７の本発明の通信システムは、前記最小のＲＴＴを下回るＲＴＴを観測している場合、送信レートを前記上限の目標送信レートとなるように制御し、前記最小のＲＴＴを上回るＲＴＴを観測している場合は、送信レートを前記下限の目標送信レートとなるように制御することを特徴とする。
【００２４】
請求項８の本発明の通信システムは、データ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする。
【００２５】
請求項９の本発明の通信システムは、前記受信側の端末に対して試験パケットを送信することにより、前記上限の目標送信レートと前記最小のＲＴＴを取得することを特徴とする。
【００２６】
請求項１０の本発明の通信システムは、前記受信側の端末に対する試験パケットの送信による計測とデータ送信中に送信レートと当該送信レートに対して観測されるＲＴＴに基づいて、前記上限の目標送信レートと前記最小のＲＴＴを決定することを特徴とする。
【００２７】
請求項１１の本発明の通信システムは、前記送信側の端末は、前期受信端末に対して前記上限の目標送信レート、前記最小のＲＴＴ、受信バッファサイズを通知することを特徴とする。
【００２８】
請求項１２の本発明の通信システムは、送受信端末と送受信端末間の経路状態を管理する管理端末を設け、前記管理端末が、送受信端末間の経路の帯域、ＲＴＴを含む経路状態情報の計測を前記端末に依頼して前記経路状態情報を取得し、前記送信側の端末が前記管理端末からの経路状態情報に基づいて、送信レートを前記上限の目標送信レート又は下限の目標送信レートに制御してデータ通信を行うことを特徴とする。
【００２９】
請求項１３の本発明の通信システムは、前記送信側の端末は、コネクション開設後、前記管理端末に前記経路状態情報を要求し、前記管理端末から得られた前記経路状態情報に基づいて前記目標送信レートと最小のＲＴＴを決定し、送信レートの制御を行うことを特徴とする。
【００３０】
請求項１４の本発明の通信システムは、前記管理端末は、特定の前記端末間の経路状態情報を定期的に更新し、前記特定の端末に対して通知し、送信側の前記特定の端末は、前記経路状態情報に基づいて前記目標送信レートと最小のＲＴＴを決定し、送信レートの制御を行うことを特徴とする。
【００３１】
請求項１５の本発明の通信システムは、前記管理端末からの経路状態情報に基づいて決定される前記上限の目標送信レートは、受信側の端末までの通信経路において、他のトラヒックが存在しない場合の最大の送信レートとすることを特徴とする。
【００３２】
請求項１６の本発明は、ネットワークを介してデータの送受信を行う通信端末であって、送信側の通信端末が、受信側の端末との間のリンクにおける他のトラヒックの有無に応じて目標送信レートを設定し、前記他のトラヒックの有無を判別して、データの送信レートを前記目標送信レートに設定する手段を備えることを特徴とする。
【発明の効果】
【００３３】
本発明の通信システム、通信端末及び通信プログラムによれば、以下に述べるような効果が達成される。
【００３４】
第１に、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、ボトルネックリンクの物理帯域上限値でパケットを送信するように制御するためリンクの利用率が向上する。
【００３５】
第２に、他のトラヒックとボトルネックリンクを共有している場合でも、送受信端末間のボトルネックリンクに他のトラヒックが存在する場合の送信レートを、データ特性に応じて決定できる。このため、例えば、最低限必要とされる帯域を指定することが可能となる。
【００３６】
第３に、データ送受信の制御部とは別に、送受信端末間のボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行う手段を設けることにより、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
【００３７】
第４に、パケット送信開始時及びパケット送信中においても、送受信端末間のボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
【００３８】
第５に、データ通信を行う端末間の経路状態を管理する管理端末を配置することにより、各端末は管理端末から得られる経路状態情報を取得することで、他のトラヒックに影響を与えないように、送信レートの割り当て制御を行い、データ通信を行うことができるようになる。
【００３９】
第６に、データ転送によって得られたボトルネックリンクの物理帯域上限値、最小ＲＴＴと受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択をすることが可能となる。
【実施例１】
【００４０】
本発明の第１の実施例について図面を参照して詳細に説明する。図１では、ネットワーク上に端末Ｓ１〜Ｓｎが配置されている。また端末Ｓ１〜Ｓｎ同士でデータ通信が行われる。
【００４１】
端末Ｓ１〜Ｓｎは、何れも同じ内部構成となっているため、以下では端末Ｓ１を取り上げて説明する。
【００４２】
図２は端末Ｓ１のデータ送受信制御部Ｌ１００の内部構成を示すブロック図である。データ送受信制御部Ｌ１００は、目標送信レート推定部Ｌ１０１、目標送信レート決定記憶部Ｌ１０２、ＲＴＴ閾値決定記憶部Ｌ１０３、目標送信レート選択部Ｌ１０４、送信レート制御部Ｌ１０５、パケット送信部Ｌ１０６、パケット受信部Ｌ１０７、ＲＴＴ計測部Ｌ１０８、ＲＴＴ判定部Ｌ１０９を備えている。以下で各構成要素について説明する。
【００４３】
目標送信レート推定部Ｌ１０１は、送信レート制御部Ｌ１０５から通知される送信レート値とＲＴＴ計測部Ｌ１０８から通知されるＲＴＴに基づいて、データの送受信を行う端末間のボトルネックリンクの物理帯域の推定を行う。この場合の推定方法について、図１９を用いて以下で詳細に述べる。
【００４４】
（インライン計測による目標送信レートＡの推定方法）
送信レートＡの決定法について述べる。送受信端末間で、通信が行われている最中に、あるウィンドウサイズと他のウィンドウサイズに対して得られるＲＴＴを組とする情報を取得する。この組情報を多数集めて、横軸をウィンドウサイズ、縦軸をＲＴＴとして、プロットすると図１９に示すように大きさの異なる複数のウィンドウサイズ毎に複数のＲＴＴが得られる。
【００４５】
ウィンドウサイズがある値を超えない場合、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を観測するウィンドウサイズで通信を行っているとき、送受信端末間のボトルネックリンクに流れるトラヒック量がボトルネックリンクの物理帯域の上限値に達していないため、ウィンドウサイズに対する最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）がほぼ等しくなる。
【００４６】
ウィンドウサイズがある値を超えると、送受信端末間のボトルネックリンクにおいて他のトラヒック（クロストラヒック）が存在していない場合でも、ボトルネックリンクのルータのバッファにパケットが蓄積され、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）が増加する。また、ボトルネックリンクのルータのバッファがいっぱいになるまで、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）は増加する。ここで、ボトルネックリンクとは、例えば、図２０に示すように、端末Ｓ１〜Ｓ６からなるネットワークにおいて、端末Ｓ１が送信側端末、端末Ｓ４が受信側端末である場合、端末Ｓ２と端末Ｓ３間のリンクに相当する。
【００４７】
この場合の送信レートは、図１９で最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）が一定に保たれている状態から、増加傾向に遷移していく境界でのウィンドウサイズ（ＷＡ）を最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）で除算した値となり、この値がボトルネックリンクの物理帯域の上限値と推定できる。この値を目標送信レートＡとする。目標送信レート推定部Ｌ１０１は、上記のようにして目標送信レートＡを推定する。
【００４８】
目標送信レート決定記憶部Ｌ１０２は、目標送信レートＡとＢを決定し、記憶する。目標送信レートＡについては、上述した目標送信レート推定部Ｌ１０１から通知されるレート値であり、目標送信レートＢについては、目標送信レートＡよりも小さい値として決定される。例えば、パケットサイズを観測されるＲＴＴで除算した値や、データ特性に応じて決定される値であって、目標送信レートＡより小さい値が用いられる。
【００４９】
ＲＴＴ閾値決定記憶部Ｌ１０３は、上記推定方法で得られるウィンドウサイズとＲＴＴの組情報を目標送信レート推定部Ｌ１０１から取得し、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）をＲＴＴ閾値として決定し、記憶する。本発明においては、ウィンドウサイズについて、図１９のウィンドウサイズＷＡ以下の値で送信レートの制御を行うため、送信側で観測するＲＴＴがＲＴＴ＿ｍｉｎを越えると他のトラヒックが存在していると判断する。
【００５０】
ＲＴＴ判定部Ｌ１０９は、ＲＴＴ計測部Ｌ１０８から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｌ１０３から得られるＲＴＴ閾値を利用して送受信端末間に他のトラヒックが存在するかどうかを判定する。
【００５１】
本実施例では、ウィンドウサイズ（１ＲＴＴ間に送信するパケット量）の最大値を図１９のウィンドウサイズＷＡとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【００５２】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、例えば図２０の送信側の端末Ｓ１のＲＴＴ計測部Ｌ１０８では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴを観測する。従って、ＲＴＴ判定部Ｌ１０９は、計測したＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｌ１０４に通知する。
【００５３】
目標送信レート選択部Ｌ１０４は、ＲＴＴ判定部Ｌ１０９からの情報として値「０」が通知された場合（送受信端末間のボトルネックリンクに他のトラヒックが存在している）、目標送信レートとして目標送信レートＢを選択し、「１」を通知された場合には（送受信端末間のボトルネックリンクに他のトラヒックが存在していない）、目標送信レートとして目標送信レートＡを選択する。選択した結果は、送信レート制御部Ｌ１０５に通知する。
【００５４】
送信レート制御部Ｌ１０５は、目標送信レート選択部Ｌ１０４から通知される目標レートと現在の送信レートを比較することにより送信レートを決定し、パケット送信部Ｌ１０６と目標送信レート推定部Ｌ１０１に通知する。ここでは、目標送信レートがＢの場合には、現在の送信レートに関わらず送信レートをＢに、目標送信レートがＡの場合には、現在の送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【００５５】
パケット送信部Ｌ１０６は、送信レート制御部Ｌ１０５から通知された送信レートでパケットを送信する。
【００５６】
パケット受信部Ｌ１０７は、他の端末から送信されたパケットや、送信パケットに対するＡＣＫ（確認応答）パケットを受信する。
【００５７】
ＲＴＴ計測部Ｌ１０８は、データパケットの送信時刻とＡＣＫ（確認応答）パケットの受信時刻を利用してＲＴＴ（往復遅延時間）を計測する。計測したＲＴＴは、ＲＴＴ判定部Ｌ１０９とＲＴＴ閾値決定記憶部Ｌ１０３に通知される。
【００５８】
（動作の説明）
次に、図２、図３および図１９を参照して、本発明の第１の実施例の動作について詳細に説明する。
【００５９】
図１でＳ１〜Ｓｎがデータを送信する場合、端末Ｓ１〜Ｓｎの端末は同じ動作をするので、端末Ｓ１が送信側の端末としてデータ通信を行う場合を考える。
【００６０】
図３において、コネクションが開設されると（ステップＰ１）、まず、目標送信レート推定部Ｌ１０１が、目標送信レート決定記憶部Ｌ１０２とＲＴＴ閾値決定記憶部Ｌ１０３に問い合せ、過去の通信において得られた履歴情報（目標送信レートＡ、ＢとＲＴＴ閾値）が記憶されているか確認を行う（ステップＰ２）。履歴情報が記憶されている場合はそれぞれの記憶されている値によって目標送信レートＡ、ＢとＲＴＴ閾値を決定する（ステップＰ３）。履歴情報が記憶されていない場合には、パケット送信中のあるウィンドウサイズと他のウィンドウサイズに対するＲＴＴを組とする組情報を取得して、目標送信レートＡ、Ｂ、ＲＴＴ閾値を推測する（ステップＰ４）。この目標送信レートＡ、Ｂ、ＲＴＴ閾値の推定処理については、後述する。
【００６１】
以下では、上記の履歴情報（目標送信レートＡ、ＢとＲＴＴ閾値）がコネクション開設時に記憶されている場合とそうでない場合で分けて記述する。
【００６２】
ステップＰ２で履歴情報が記憶されている場合、パケット送信開始にあたって、送信レート制御部Ｌ１０５において、送信レートの初期化を行う（ステップＰ５）。この初期化では、例えば、パケットサイズをＲＴＴ閾値決定記憶部Ｌ１０３に記憶されていたＲＴＴ閾値（ＲＴＴ＿ｍｉｎ）で除算した値や、目標送信レートＢを送信レートとする。
【００６３】
パケット送信部Ｌ１０６は、送信レート制御部Ｌ１０５から通知される送信レートでパケットを送信する（ステップＰ６）。送信パケットに対する確認応答としてＡＣＫパケットが受信側から返信されると、パケット受信部Ｌ１０７で受信を行う（ステップＰ７）。
【００６４】
ＡＣＫパケットの受信を行うと、ＲＴＴ計測部Ｌ１０８で、パケットを送信した時刻と、前述の送信パケットに対するＡＣＫパケットを受信した時刻を利用してＲＴＴを計測する（ステップＰ８）。
【００６５】
ＲＴＴ判定部Ｌ１０９は、ＲＴＴ計測部Ｌ１０８から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｌ１０３から通知されるＲＴＴ閾値を比較して、送受信端末間のボトルネックリンクに他のトラヒックが存在するかどうか判定を行う（ステップＰ９）。
【００６６】
本実施例では、ウィンドウサイズ（１ＲＴＴ間で送信するパケットの量）をウィンドウサイズＷＡ以下の範囲で送信レートの制御を行うため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、送信端末は図１９のＲＴＴ＿ｍｉｎのＲＴＴを観測する。送受信端末間のボトルネックリンクに他のトラヒックが存在する場合はＲＴＴ＿ｍｉｎよりも大きいＲＴＴを観測する。そこで、ＲＴＴがＲＴＴ閾値よりも大きい場合は、ボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値と等しい場合は、ボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｌ１０４に通知する。目標送信レート選択部Ｌ１０４は、ＲＴＴ判定部Ｌ１０９から値「０」の通知を受けると目標送信レートＢを選択し、値「１」の通知を受けると目標送信レートＡを選択する。その結果を送信レート制御部Ｌ１０５に通知する（ステップＰ１０、Ｐ１１）。
【００６７】
送信レート制御部Ｌ１０５は、目標送信レートＢの通知を受け取ると、送信レートをＢとする。目標送信レートＡの通知を受け取ると、現在の送信レートとＡを比較して、現在の送信レートが目標送信レートＡよりも小さい場合、送信レートを目標送信レートＡまで増加させる。現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する（ステップＰ１２）。
【００６８】
送信レート制御部Ｌ１０５は決定した送信レートをパケット送信部Ｌ１０６に通知する（ステップＰ１３）。パケット送信が終了していなければ（ステップＰ１４）、上記決定した送信レートでパケット送信を行い（ステップＰ６）、パケット送信が終了している場合、コネクションを終了させる（ステップＰ１５）。
【００６９】
ステップＰ２で履歴情報が記憶されていない場合の目標送信レートＡ、Ｂ、ＲＴＴ閾値の推定処理の流れについて以下に説明する。
【００７０】
送信レート制御部Ｌ１０５で送信レートを初期化する。この場合の初期化では、ＲＴＴは記憶されていた既知値ではないので、送信レートとしてウィンドウサイズを１パケットとする。また、その送信レートを目標送信レート推定部Ｌ１０１に通知すると共に、パケット送信部Ｌ１０６に通知し当該送信レートでパケットの送信を行う。
【００７１】
送信パケットに対する確認応答としてＡＣＫパケットが受信側から返信されるとパケット受信部Ｌ１０７で受信を行う。受信を行うと、ＲＴＴ計測部Ｌ１０８でパケットを送信した時刻と、前述の送信パケットに対するＡＣＫパケットを受信した時刻を利用してＲＴＴを計測し、目標送信レート推定部Ｌ１０１に通知する。
【００７２】
目標送信レート推定部Ｌ１０１は、ウィンドウサイズ（１ＲＴＴ間で送信されるパケットの量）とウィンドウサイズ（１ＲＴＴ間で送信されるパケットの量）に対するＲＴＴを組とする組情報を記憶しておく。送信レート制御部Ｌ１０５は、従来のＴＣＰの送信レート制御方式を用いて送信レートの制御を行う。目標送信レート推定部Ｌ１０１は、上述したようにして組情報を収集し、上述した推定手法により、目標送信レートＡ、ＢとＲＴＴ閾値を推定する（ステップＰ４）。
【００７３】
目標送信レートＡ、ＢとＲＴＴ閾値を決定すると、それ以降の動作（ステップＰ５以降の動作）は、コネクション開設時に履歴情報を記憶している場合と同じである。
【００７４】
以上のような送信レートの制御を行うことにより、図２１に示すように、他のトラヒックが存在する場合には、目標送信レートＢに設定され、他のトラヒックが存在しない場合には、目標送信レートＡ（物理帯域の上限値）に設定されるようになる。
【００７５】
（実施例１の効果）
第１の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レートの制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【００７６】
また、従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在すると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在すると判断すると、送信レートを目標送信レートＢまで減少させる。この目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【実施例２】
【００７７】
本発明の第２の実施例について図面を参照して詳細に説明する。ネットワーク構成は図１と同じであり、ネットワーク上に端末Ｓ１〜Ｓｎが配置されており、端末Ｓ１〜Ｓｎ同士でデータ通信を行う。
【００７８】
ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。図４を参照すると、第２の実施例による端末Ｓ１は、経路状態推定部Ｍ１０とデータ送受信制御部Ｍ１００を備えている。
【００７９】
経路状態推定部Ｍ１０は、送受信端末間の帯域、ＲＴＴの計測を行い、計測した結果から送受信端末間のボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行うものであり、試験パケット送受信部Ｍ１１、経路状態計測部Ｍ１２、そして経路状態情報記憶部Ｍ１３を備えている。
【００８０】
データ送受信制御部Ｍ１００は、経路状態推定部Ｍ１０で推定されたボトルネックリンクの物理帯域上限値と最小ＲＴＴに基づいて送信レート制御を行う。このデータ送受信制御部Ｍ１００は、目標送信レート決定記憶部Ｍ１０１、目標送信レート選択部Ｍ１０２、送信レート制御部Ｍ１０４、パケット送信部Ｍ１０５、パケット受信部Ｍ１０６、ＲＴＴ計測部Ｍ１０７、ＲＴＴ判定部Ｍ１０８、ＲＴＴ閾値決定記憶部Ｍ１０３を備えている。各構成要素について、以下に説明する。
【００８１】
経路状態推定部Ｍ１０は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能を備えている。
【００８２】
ここで、経路状態情報とは、ボトルネックリンクの物理帯域上限値と最小ＲＴＴとを含む情報である。
【００８３】
ボトルネックリンクの物理帯域上限値の推定は、例えば、本発明の第１の実施例で述べた推定手法や、Packet-Pair手法(S. keshav, B. Landfeldt, A. Seneviratne, B. Melander, P. Gunningberg, “Packet-Pair Flow Control,” IEEE/ACM Transactions on Networking, Feb 1995：（非特許文献５）)に記載される手法を用いて行う。
【００８４】
このPacket-Pair手法においては、同じパケットサイズの測定パケットを連続して（時間間隔を開けずに）受信側に向けて送信する。測定パケットがボトルネックリンクを通過すると、受信側で、測定パケットの到着時間間隔を観測する。（受信側は、測定パケットを受信すると測定パケットよりも小さいサイズの応答パケットを送信側に返し、送信側で測定パケットの到着時間間隔を計測してもよい）。ボトルネックリンクの物理帯域上限値は、測定パケットサイズを到着時間間隔で除算した値に等しくなる。
【００８５】
最小ＲＴＴは、第１の実施例で述べた推定手法や、Packet-Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してＲＴＴを算出し、それから推定した結果とする。推定した結果は、経路状態情報記憶部Ｍ１３に記憶される。また、記憶された結果はデータ送受信制御部Ｍ１００に通知され、送信レートの決定に利用される。
【００８６】
データ送受信制御部Ｍ１００は、ＯＳＩ参照モデルのトランスポート層プロトコルの１つであるＴＣＰ(Transmission Control Protocol)と同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
【００８７】
目標送信レート決定記憶部Ｍ１０１は、２つの目標送信レートＡ、Ｂを決定し記憶する。目標送信レートＡは、経路状態情報記憶部Ｍ１３から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートＢは、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴで除算した値や、データ特性に応じた値で決定される値であって、目標送信レートＡより小さい値が用いられる。
【００８８】
ＲＴＴ閾値決定記憶部Ｍ１０３は、経路状態情報記憶部Ｍ１３から通知される値を、ＲＴＴ閾値として記憶する。このとき経路状態情報記憶部Ｍ１３から通知される値は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）と等しい値である。
【００８９】
ＲＴＴ判定部Ｍ１０８は、ＲＴＴ計測部Ｍ１０７から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｍ１０３から得られるＲＴＴ閾値とを用いて送受信端末間に他のトラヒックが存在するかどうか判定する。
【００９０】
本実施例では、送信レートの最大値を目標送信レートＡとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【００９１】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、例えば図２０の送信側の端末Ｓ１のＲＴＴ計測部Ｍ１０７では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｍ１０２に通知する。
【００９２】
目標送信レート選択部Ｍ１０２は、ＲＴＴ判定部Ｍ１０８から通知される情報に基づいて目標送信レート決定記憶部Ｍ１０１にある２つの目標送信レートＡ、Ｂのうちどちらか一方を選択する。
【００９３】
ＲＴＴがＲＴＴ閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートＡを選択し、逆にＲＴＴがＲＴＴ閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると判断して目標送信レートとして目標送信レートＢを選択する。選択した結果を送信レート制御部Ｍ１０４に通知する。
【００９４】
送信レート制御部Ｍ１０４は、目標送信レート選択部Ｍ１０２から通知された目標送信レートと現在の送信レートを比較することにより、送信レートを決定する。目標送信レートがＢの場合、現在の送信レートに関わらず送信レートをＢに、目標送信レートがＡの場合、現在の送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【００９５】
パケット送信部Ｍ１０５は、送信レート制御部Ｍ１０４から通知された送信レートに従って、パケットを送信する。
【００９６】
パケット受信部Ｍ１０６は、他の端末から送信されたパケットや、送信されたパケットに対するフィードバックとしてＡＣＫパケットを受信する部分である。
【００９７】
ＲＴＴ計測部Ｍ１０７は、送信パケットの送信時刻と送信パケットに対して返信されたＡＣＫパケットの受信時刻を用いてＲＴＴを計測し、ＲＴＴ判定部Ｍ１０８する。
【００９８】
（動作の説明）
次に、図４、図５を参照して、本発明の第２の実施例の動作について詳細に説明する。
【００９９】
図１でＳ１〜Ｓｎがデータを送信する場合の動作は同じであるので、ここでは端末Ｓ１が送信端末としてデータ通信を行う場合を考える。
【０１００】
図５において、端末Ｓ１の経路状態推定部Ｍ１０は、送受信端末間のボトルネックリンクと最小ＲＴＴの推定を行う。この推定処理においては、まず、測定パケット送受信部Ｍ１１から測定パケットを送信する（ステップＱ１）。そして、受信側の端末からのフィードバックとしてＡＣＫパケットを受信する（ステップＱ２）。
【０１０１】
経路状態計測部Ｍ１２は、計測値からボトルネックリンクの物理帯域上限値と最小ＲＴＴを推定し、経路状態情報記憶部Ｍ１３に通知する（ステップＱ３、Ｑ４）。経路状態情報記憶部Ｍ１３は、経路状態計測部Ｍ１２から通知された物理帯域上限値と最小ＲＴＴを記憶する（ステップＱ５）。
【０１０２】
コネクションが開設されると（ステップＱ６）、経路状態情報記憶部Ｍ１３から、目標送信レート決定記憶部Ｍ１０１とＲＴＴ閾値決定記憶部Ｍ１０３に対して、それぞれボトルネックの物理帯域上限値と最小ＲＴＴが通知される。
【０１０３】
ＲＴＴ閾値決定記憶部Ｍ１０３は、通知された最小ＲＴＴに基づいてＲＴＴ閾値を決定し記憶する。また、目標送信レート決定記憶部Ｍ１０１は、通知された物理帯域上限値を目標送信レート値Ａとし、目標送信レート値Ｂは、Ａより小さい値で与える（ステップＱ７）。例えば、目標送信レート値Ｂとしては、パケットサイズをＲＴＴ閾値決定記憶部Ｍ１０３に記憶されているＲＴＴ閾値で除算した値や、データ特性に依存した送信レート値が考えられる。
【０１０４】
目標送信レート値Ａ、ＢとＲＴＴ閾値が決定すると、送信レート制御部Ｍ１０４は、送信レートの初期化を行う（ステップＱ８）。この初期化では、例えば、パケットサイズをＲＴＴで除算した値や、目標送信レートＢを送信レートとする。
【０１０５】
送信レート制御部Ｍ１０４から送信レートがパケット送信部Ｍ１０５に通知され、パケット送信部Ｍ１０５はその通知された送信レートでパケットを送信する（ステップＱ９）。
【０１０６】
送信パケットに対するＡＣＫ（確認応答）パケットが受信端末から返信されると、パケット受信部Ｍ１０６でＡＣＫパケットを受信する（ステップＱ１０）。
【０１０７】
その後、ＲＴＴ計測部Ｍ１０７で、送信パケットの送信時刻と送信したパケットに対して返信されたＡＣＫパケットを受信した受信時刻を利用してＲＴＴを算出する（ステップＱ１１）。
【０１０８】
ＲＴＴ判定部Ｍ１０８は、ＲＴＴ計測部Ｍ１０７から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｍ１０３から通知されるＲＴＴ閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する（ステップＱ１２）。送受信端末間に他のトラヒックが存在しない場合、送信端末Ｓ１は、図１９のＲＴＴ＿ｍｉｎを観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケット蓄積されはじめ、ＲＴＴ閾値を越えたＲＴＴを観測する。従ってＲＴＴがＲＴＴ閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｍ１０２に通知する（ステップＱ１３、Ｑ１４）。
【０１０９】
また、目標送信レート選択部Ｍ１０２は、目標送信レート決定記憶部Ｍ１０１から目標送信レートＡ、Ｂを通知され、ＲＴＴ判定部Ｍ１０８から値「０」を通知された場合、目標送信レートＢを、値「１」を通知された場合は、目標送信レートＡを選択し、送信レート制御部Ｍ１０４に通知する。
【０１１０】
送信レート制御部Ｍ１０４は、目標送信レート選択部Ｍ１０２から目標送信レートＢの通知を受け取ると、送信レートをＢとする。目標送信レートＡの通知を受け取ると、通知された目標送信レートと現在の送信レートの比較を行い、目標送信レートが目標送信レートＡの時、現在の送信レートがＡよりも小さい場合は送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する（ステップＱ１５）。
【０１１１】
送信レート制御部Ｍ１０４は決定した送信レートをパケット送信部Ｍ１０５に通知する（ステップＱ１６）。パケット送信が終了していなければ（ステップＱ１７）、上記決定した送信レートでパケット送信を行い（ステップＱ９）、パケット送信が終了している場合、コネクションを終了させる（ステップＱ１８）。
【０１１２】
（第２の実施例の効果）
第２の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０１１３】
従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートＢまで減少させる。この目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【０１１４】
第１の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小ＲＴＴが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
【実施例３】
【０１１５】
本発明の第３の実施例について図面を参照して詳細に説明する。ネットワーク構成は図１と同じであり、ネットワーク上に端末Ｓ１〜Ｓｎが配置されており、端末Ｓ１〜Ｓｎ同士でデータ通信を行う。
【０１１６】
ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。図６を参照すると、第３の実施例による端末Ｓ１は、経路状態推定部Ｎ１０とデータ送受信制御部Ｎ１００を備えている。
【０１１７】
経路状態推定部Ｎ１０は、送受信端末間の帯域、ＲＴＴの計測を行い、計測した結果から送受信端末間のボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行うものであり、試験パケット送受信部Ｎ１１、経路状態計測部Ｎ１２、そして経路状態情報記憶部Ｎ１３を備えている。
【０１１８】
データ送受信制御部Ｎ１００は、経路状態推定部Ｎ１０で推定されたボトルネックリンクの物理帯域上限値と最小ＲＴＴに基づいて送信レート制御を行う。このデータ送受信制御部Ｎ１００は、目標送信レート決定記憶部Ｎ１０１、目標送信レート選択部Ｎ１０２、送信レート制御部Ｎ１０４、パケット送信部Ｎ１０５、パケット受信部Ｎ１０６、ＲＴＴ計測部Ｎ１０７、ＲＴＴ判定部Ｎ１０８、ＲＴＴ閾値決定記憶部Ｎ１０３を備えている。各構成要素について、以下に説明する。
【０１１９】
経路状態推定部Ｎ１０は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能と備えている。
【０１２０】
経路状態情報は、ボトルネックリンクの物理帯域と最小ＲＴＴとを含む情報である。なお、ボトルネックリンクの物理帯域の推定方法については、第２の実施例で述べたように、第１の実施例で述べた推定手法や、Packet-Pair手法（非特許文献５に記載される手法）による推定方法が用いられる。ここでは、その詳細を省略する。
【０１２１】
最小ＲＴＴは、第１の実施例で述べた推定手法や、Packet-Pair手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してＲＴＴを算出し、それから推定した結果とする。推定した結果は、経路状態情報記憶部Ｎ１３に記憶される。また、記憶された結果はデータ送受信制御部Ｎ１００に通知され、送信レートの決定に利用される。
【０１２２】
データ送受信制御部Ｎ１００は、ＯＳＩ参照モデルのトランスポート層プロトコルの１つであるＴＣＰ(Transmission Control Protocol)と同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
【０１２３】
目標送信レート決定記憶部Ｎ１０１は、経路状態情報推定部Ｎ１０から通知される経路状態情報に基づいて、受信側の端末ごとに２つの目標送信レートＡ、Ｂを決定する。目標送信レートＡは、受信端末までの経路に他のトラヒックがいない時に出せる最大の送信レート値とし、目標送信レートＢは、Ａよりも小さい値である。目標送信レートＢとしては、パケットサイズをＲＴＴで除算した値や、データ特性に応じてアプリケーションから指示された送信レート値であって、目標送信レートＡより小さい値が用いられる。
【０１２４】
また、目標送信レート決定記憶部Ｎ１０１は、送信レート制御部Ｎ１０４から通知される送信レート値とＲＴＴ計測部Ｎ１０７で計測されるＲＴＴを用いた経路状態の推定も行う。データ送信中における推定については、第１の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部Ｎ１０１は、この推定方法により、目標送信レートＡを推定する。
【０１２５】
目標送信レート決定記憶部Ｎ１０１は、２つの目標送信レートＡ，Ｂを決定し、記憶する。目標送信レートＡについては、経路状態情報記憶部Ｎ１３から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートＢについては、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴで除算した値や、データ特性に応じた値で決定される。また、パケット送信中においても、送信レート制御部Ｎ１０４から送信レート値とＲＴＴ計測部Ｎ１０７からＲＴＴ値を取得して、ボトルネックリンクの物理帯域上限値の推定を行う。
【０１２６】
ＲＴＴ閾値決定記憶部Ｎ１０３は、上記推定方法でで得られるウィンドウサイズとＲＴＴの組情報を目標送信レート決定記憶部Ｎ１０１から取得し、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）をＲＴＴ閾値として決定し、記憶する。本発明においては、ウィンドウサイズについて、図１９のウィンドウサイズＷＡ以下の値で送信レートの制御を行うため、送信側で観測するＲＴＴがＲＴＴ＿ｍｉｎを越えると他のトラヒックが存在していると判断する。
【０１２７】
ＲＴＴ判定部Ｎ１０８は、ＲＴＴ計測部Ｎ１０７から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｎ１０３から得られるＲＴＴ閾値を利用して送受信端末間に他のトラヒックが存在するかどうかを判定する。
【０１２８】
本実施例では、送信レートの最大値を目標送信レートＡとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【０１２９】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、例えば図２０の送信側の端末Ｓ１のＲＴＴ計測部Ｎ１０７では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴ判定部Ｎ１０８は、計測したＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｎ１０４に通知する。
【０１３０】
目標送信レート選択部Ｎ１０２は、ＲＴＴ判定部Ｎ１０８から通知される情報に基づいて目標送信レート決定記憶部Ｎ１０１にある２つの目標送信レートＡ，Ｂのうちどちらか一方を選択する。ＲＴＴがＲＴＴ閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートＡを選択し、逆にＲＴＴがＲＴＴ閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートＢを選択する。選択した結果を送信レート制御部Ｎ１０４に通知する。
【０１３１】
送信レート制御部Ｎ１０４は、目標送信レート選択部Ｎ１０２から通知された目標送信レートと現在の送信レートを比較することにより送信レートを決定する。目標送信レートがＢの場合、現在の送信レートに関わらず送信レートをＢに、目標送信レートがＡの場合、現在の送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【０１３２】
パケット送信部Ｎ１０５は、送信レート制御部Ｎ１０４から通知された送信レートに従って、パケットを送信する。
【０１３３】
パケット受信部Ｎ１０６は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてＡＣＫパケットを受信する部分である。
【０１３４】
ＲＴＴ計測部Ｎ１０７は、送信パケットの送信時刻と送信パケットに対して返信されたＡＣＫパケットの受信時刻を用いてＲＴＴを計測する。
【０１３５】
（動作の説明）
次に、図１、図６および図７を参照して、本発明の第３の実施例の動作について詳細に説明する。
【０１３６】
図１でＳ１〜Ｓｎがデータを送信する場合の動作は同じであるので、ここでは端末Ｓ１が送信端末としてデータ通信を行う場合を考える。
【０１３７】
図７において、端末Ｓ１は図６の経路状態推定部Ｎ１０で特定端末Ｓ２〜Ｓｎに対して試験パケット送受信部Ｎ１１から試験パケットを送信し（ステップＲ１）、受信側の端末からのフィードバックとしてＡＣＫパケットを受信し（ステップＲ２）、物理帯域上限値とＲＴＴの計測を行う（ステップＲ３）。測定結果は、経路状態計測部Ｎ１２に受け渡され、測定結果から最小ＲＴＴと物理帯域上限値を推定し、経路状態情報記憶部Ｎ１３に通知する（ステップＲ４）。経路状態情報記憶部Ｎ１３は、通知された物理帯域上限値と最小ＲＴＴを記憶する（ステップＲ５）。
【０１３８】
コネクションが開設されると（ステップＲ６）、経路状態情報記憶部Ｎ１３から、目標送信レート決定記憶部Ｎ１０１とＲＴＴ閾値決定記憶部Ｎ１０３に対して、それぞれボトルネックの物理帯域上限値と最小ＲＴＴが通知される。
【０１３９】
ＲＴＴ閾値決定記憶部Ｎ１０３は、通知された最小ＲＴＴに基づいてＲＴＴ閾値を決定し記憶する。一方、目標送信レート決定記憶部Ｎ１０１は、通知された物理帯域上限値を目標送信レート値Ａとし、目標送信レート値Ｂは、Ａより小さい値で与える（ステップＲ７）。例えば、目標送信レート値Ｂとしては、パケットサイズをＲＴＴで除算した値や、データ特性に依存した送信レート値が考えられる。
【０１４０】
目標送信レート値Ａ，ＢとＲＴＴ閾値が決定すると、送信レート制御部Ｎ１０４は、送信レートの処理化を行う（ステップＲ８）。この初期化では、例えば、パケットサイズをＲＴＴ閾値決定記憶部Ｎ１０３に記憶されているＲＴＴ閾値で除算した値や、目標送信レートＢを送信レートとする。
【０１４１】
送信レート制御部Ｎ１０４から送信レートがパケット送信部Ｎ１０５に通知され、パケット送信部Ｎ１０５はその通知された送信レートでパケットを送信する（ステップＲ９）。
【０１４２】
送信パケットに対するＡＣＫ（確認応答）パケットが受信端末から返信されると、パケット受信部Ｎ１０６でＡＣＫパケットを受信する（ステップＲ１０）。
【０１４３】
その後、ＲＴＴ計測部Ｎ１０７で、送信パケットの送信時刻と送信したパケットに対して返信されたＡＣＫパケットを受信した受信時刻を利用してＲＴＴを算出する（ステップＲ１１）。
【０１４４】
算出されたＲＴＴは、目標送信レート決定記憶部Ｎ１０１とＲＴＴ判定部Ｎ１０８に通知される。
【０１４５】
ＲＴＴ判定部Ｎ１０８は、ＲＴＴ計測部Ｎ１０７から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｎ１０３から通知されるＲＴＴ閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する（ステップＲ１２）。送受信端末間に他のトラヒックが存在しない場合、送信端末Ｓ１は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、ＲＴＴ閾値を越えたＲＴＴを観測する。従ってＲＴＴがＲＴＴ閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｎ１０２に通知する（ステップＲ１３、Ｒ１４）。
【０１４６】
また、目標送信レート選択部Ｎ１０２は、目標送信レート決定記憶部Ｎ１０１から目標送信レートＡ，Ｂを通知され、ＲＴＴ判定部Ｎ１０８から値「０」を通知された場合、目標送信レートＢを、値「１」を通知された場合は、目標送信レートＡを選択し、送信レート制御部Ｎ１０４に通知する。
【０１４７】
送信レート制御部Ｎ１０４は、目標送信レート選択部Ｎ１０２から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートＡの時、現在の送信レートが目標送信レートＡよりも小さい場合は送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する。また、目標送信レートがＢの時、どんな場合でも送信レートをＢとする（ステップＲ１５）。
【０１４８】
決定した送信レートは目標送信レート決定記憶部Ｎ１０１とパケット送信部Ｎ１０５に通知される（ステップＲ１６）。
【０１４９】
パケット送信が終了していなければ（ステップＲ２０）、上記決定した送信レートでパケット送信を行い（ステップＲ９）、パケット送信が終了している場合、コネクションを終了させる（ステップＲ２１）。
【０１５０】
なお、目標送信レート決定記憶部Ｎ１０１は、経路状態情報記憶部Ｎ１３からボトルネックリンクの物理帯域上限値を通知され、目標送信レートＡとして記憶しておくだけでなく、送信レート制御部Ｎ１０４から通知される送信レートとＲＴＴ計測部Ｎ１０７から通知されるＲＴＴを組とする組情報を取得し、上述した推定手法を用いることにより、コネクション開設後にもボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行う（ステップＲ１７）。推定結果が記憶されている内容と異なる場合は、目標送信レート、ＲＴＴ閾値を更新する（ステップＲ７）。そうでない場合は、推定結果を無視する（ステップＲ１９）。
【０１５１】
（第３の実施例の効果）
第３の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０１５２】
従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートＢまで減少させる。目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【０１５３】
第１の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小ＲＴＴが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
【０１５４】
さらに、パケット送信中においても、ボトルネックリンクの物理帯域上限値、最小ＲＴＴの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
【実施例４】
【０１５５】
本発明の第４の実施例について図面を参照して詳細に説明する。この第４の実施例では、図８に示すように、端末Ｓ１〜Ｓｎからなるネットワークに、それらの経路状態を管理する管理端末Ｋ１０を配置している。
【０１５６】
図９は第４の実施例による端末の内部構成を示している。ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。
【０１５７】
端末Ｓ１は、経路状態情報推定部Ｗ１０とデータ送受信制御部Ｗ１００を備えている。
【０１５８】
経路状態推定部Ｗ１０は、測定パケット送受信部Ｗ１１、経路状態計測部Ｗ１２と経路状態情報取得・通知部Ｗ１３を備えている。
【０１５９】
データ送受信制御部Ｗ１００は、内部に目標送信レート決定記憶部Ｗ１０１、目標送信レート選択部Ｗ１０２、ＲＴＴ閾値決定記憶部Ｗ１０３、送信レート制御部Ｗ１０４、パケット送信部Ｗ１０５、パケット受信部Ｗ１０６、ＲＴＴ計測部Ｗ１０７、ＲＴＴ判定部Ｗ１０８を備えている。
【０１６０】
図１０は管理端末Ｋ１０の内部構成を示すブロック図でり、管理端末Ｋ１０には、経路状態推定依頼部Ｋ１１、通信状態管理部Ｋ１２、経路状態情報取得・通知部Ｋ１３、経路状態情報記憶部Ｋ１４が備えられている。各構成要素について、以下に説明する。
【０１６１】
経路状態推定部Ｗ１０は、管理端末Ｋ１０からある受信端末との間の経路状態を推定するように依頼されると、測定パケット送受信部Ｗ１１からある受信端末に対して測定パケットを送信して、経路状態計測部Ｗ１２で送受信端末間のボトルネックリンクの物理帯域上限値と最小ＲＴＴ（経路状態情報：ボトルネックリンクの物理帯域上限値、最小ＲＴＴ）を推定する。
【０１６２】
なお、ボトルネックリンクの物理帯域の推定方法については、第２の実施例で述べたように、第１の実施例で述べた推定手法や、Packet-Pair手法（非特許文献５に記載される手法）による推定方法が用いられる。ここでは、その詳細を省略する。
【０１６３】
最小ＲＴＴは、第１の実施例で述べた推定手法や、Ｐａｃｋｅｔ−Ｐａｉｒ手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してＲＴＴを算出し、最小の値を推定結果とする。
【０１６４】
推定された結果は、経路状態情報取得・通知部Ｗ１３に通知され、経路状態情報と端末情報として受信バッファサイズを管理端末Ｋ１０に通知する。受信バッファサイズの通知は、端末Ｓ２〜Ｓｎに中継を依頼する場合、受信バッファサイズが送信レート制御に大きく影響を与える。受信バッファが小さいと送信レートは低く抑えられ、受信バッファが大きいと高い送信レートを得ることが可能となるためである。また、コネクション開設後に、管理端末Ｋ１０からボトルネックリンクの物理帯域上限値と最小ＲＴＴを取得して、目標送信レート決定記憶部Ｗ１０１とＲＴＴ閾値決定記憶部Ｗ１０３にそれぞれ通知する。
【０１６５】
データ送受信制御部Ｗ１００は、ＯＳＩ参照モデルのトランスポート層プロトコルの１つであるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）と同等の機能を有している。具体的には、コネクションの開設、中断、終了、確認応答機能、および再送制御機能である。
【０１６６】
目標送信レート決定記憶部Ｗ１０１は、２つの目標送信レートＡ，Ｂを決定し記憶する。目標送信レートＡは、コネクション開設後に、経路状態情報取得・通知部Ｗ１３が管理端末Ｋ１０から取得するボトルネックリンクの物理帯域上限値とする。目標送信レートＢは、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴで除算した値や、データ特性に応じた値値であって、目標送信レートＡより小さい値が用いられる。
【０１６７】
ＲＴＴ閾値決定記憶部Ｗ１０３は、経路状態情取得・通知部Ｗ１３が経路状態情報管理端末Ｋ１０から取得する最小ＲＴＴに依存してＲＴＴ閾値を決定し記憶する。このとき経路状態情報取得・通知部Ｗ１３から通知される値は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）と等しい値である。
【０１６８】
ＲＴＴ判定部Ｗ１０８は、ＲＴＴ計測部Ｗ１０７から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｗ１０３から得られるＲＴＴ閾値とを用いて送受信端末間に他のトラヒックが存在するかどうか判定する。
【０１６９】
本実施例では、送信レートの最大値を目標送信レートＡとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【０１７０】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、送信側の端末Ｓ１のＲＴＴ計測部Ｗ１０７では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｗ１０２に通知する。
【０１７１】
目標送信レート選択部Ｗ１０２は、ＲＴＴ判定部Ｗ１０８から通知される情報に基づいて目標送信レート決定記憶部Ｗ１０１にある２つの目標送信レートＡ，Ｂのうちどちらか一方を選択する。
【０１７２】
ＲＴＴがＲＴＴ閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートＡを選択、逆にＲＴＴがＲＴＴ閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると判断して目標送信レートとして目標送信レートＢを選択する。選択した結果を送信レート制御部Ｗ１０４に通知する。
【０１７３】
送信レート制御部Ｗ１０４は、目標送信レート選択部Ｗ１０２から通知された目標送信レートと、現在の送信レートを比較することにより、送信レートを決定する。目標送信レートがＢの場合、現在の送信レートに関わらず送信レートをＢに、目標送信レートがＡの場合、現在の送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートがＡと等しいかそれ以上の場合は、送信レートをＡにする。
【０１７４】
パケット送信部Ｗ１０５は、送信レート制御部Ｗ１０４から通知された送信レートに従って、パケットを送信する。
【０１７５】
パケット受信部Ｗ１０６は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてＡＣＫパケットを受信する部分である。
【０１７６】
ＲＴＴ計測部Ｗ１０７は、送信パケットの送信時刻と送信パケットに対して返信されたＡＣＫパケットの受信時刻を用いてＲＴＴを計測する。
【０１７７】
経路状態情報の管理端末Ｋ１０は、経路状態推定依頼部Ｋ１１、通信状態管理部Ｋ１２、経路状態情報取得・通知部Ｋ１３、経路状態情報記憶部Ｋ１４を備えている。
【０１７８】
経路状態情報取得・通知部Ｋ１３は、端末が経路状態情報を推定した結果を取得し、経路状態情報記憶部Ｋ１４に通知することと、コネクション開設後、送信側の端末からの経路状態情報の要求に対して、経路状態情報記憶部Ｋ１４から経路状態情報を取得して、その端末に対して通知する。また、送信側の端末が、経路状態情報を要求してきた場合は、通信状態管理部Ｋ１２に対して、通信が行われる端末を通知する。
【０１７９】
経路状態情報記憶部Ｋ１４は、管理下におかれている端末が行った経路状態の推定結果を記憶しておく。
【０１８０】
通信状態管理部Ｋ１２は、経路状態情報取得・通知部Ｋ１３からどの端末が通信を行っているのか通知を受け、その端末を記憶しておく。端末に経路状態の推定を行わせるに当たって、通信を行っている経路上に測定パケットが流れ、通信に影響を与えないように、通信を行っていない端末の情報を経路情報推定依頼部Ｋ１１に通知する。
【０１８１】
経路状態推定依頼部Ｋ１１は、通信状態管理部Ｋ１２から通知を受けた通信を行っていない端末に対して経路状態推定依頼を行う。
【０１８２】
（動作の説明）
次に、図９、図１０、図１１および図１２を参照して、本発明の第４の実施例の動作について詳細に説明する。
【０１８３】
図８でＳ１〜Ｓｎがデータを送信する場合の動作は同じであるが、ここでは、端末Ｓ１が送信側の端末、端末Ｓ２が受信側の端末としてデータ通信を行う場合を考える。
【０１８４】
図１１において、経路状態情報管理端末Ｋ１０は、経路状態推定依頼部Ｋ１１から端末Ｓ１〜Ｓｎに対して、経路状態推定依頼の通知を行う（ステップＤ１）。各端末の経路状態推定部Ｗ１０は、推定依頼の通知を受け取ると推定を行う。測定を行った結果と受信バッファサイズは、経路状態情報取得・通知部Ｋ１３で取得し、経路状態情報記憶部Ｋ１４に通知され記憶される（ステップＤ２）。
【０１８５】
図１２で、コネクションが開設されると（ステップＤ７）、端末Ｓ１の経路状態情報取得・通知部Ｗ１３は管理端末Ｋ１０に対して経路状態情報を要求する（ステップＤ８）。
【０１８６】
コネクション開設の通知と送信端末Ｓ１からの経路状態情報の要求は、経路状態情報管理端末Ｋ１０の経路状態情報取得・通知部Ｋ１３で受信される（ステップＤ３）。経路状態情報取得・通知部Ｋ１３は、端末Ｓ１と端末Ｓ２で通信が行われることを通信状態管理部Ｋ１２に通知し、通信状態管理部Ｋ１２にその情報を記憶しておく（ステップＤ４）。
【０１８７】
また、経路状態情報記憶部Ｋ１４から経路状態情報、受信バッファサイズを取得して、送信端末Ｓ１に対して通知する（ステップＤ６）。
【０１８８】
経路状態情報取得・通知部Ｗ１３は、経路状態を取得して、ボトルネックリンクの物理帯域上限値を目標送信レートＷ１０１に通知し、最小ＲＴＴをＲＴＴ閾値決定記憶部Ｗ１０３に通知する。
【０１８９】
目標送信レート決定記憶部Ｗ１０１は、通知された帯域を目標送信レート値Ａとし、目標送信レート値Ｂは、Ａより小さい値で与える。目標送信レート値Ｂとしては、例えば、パケットサイズを現在観測しているＲＴＴで除算したものや、データ特性に依存した送信レート値が考えられる。一方、ＲＴＴ閾値決定記憶部Ｗ１０３は、通知された最小ＲＴＴに基づいてＲＴＴ閾値を決定する（ステップＤ９）。
【０１９０】
管理端末Ｋ１０は、通信状態管理部Ｋ１２から通信を行っていない端末（この場合、端末Ｓ１と端末Ｓ２）を経路状態推定依頼部Ｋ１１に対して通知し、端末Ｓ１〜Ｓｎで行われている通信に影響を与えないように、通知を受けた端末に対して経路状態の推定を依頼し、推定結果、受信バッファサイズを取得する（ステップＤ１、Ｄ２）。
【０１９１】
目標送信レート値とＲＴＴ閾値が決定すると、送信レート制御部Ｗ１０４は、送信レートの初期化を行い（ステップＤ１０）、送信レートをパケット送信部Ｗ１０５に通知し、パケット送信部Ｗ１０５はその通知された送信レートでパケットを送信する（ステップＤ１１）。
【０１９２】
送信パケットに対するＡＣＫ（確認応答）パケットが受信端末から返信されるとパケット受信部Ｗ１０６でＡＣＫパケットを受信する（ステップＤ１２）。
【０１９３】
その後、ＲＴＴ計測部Ｗ１０７で、送信パケットの送信時刻と送信したパケットに対して返信されたＡＣＫパケットを受信した受信時刻を利用してＲＴＴを算出する（ステップＤ１３）。
【０１９４】
算出されたＲＴＴは、ＲＴＴ判定部Ｗ１０８に通知され、ＲＴＴ判定部Ｗ１０８は、算出されたＲＴＴとＲＴＴ閾値決定記憶部Ｗ１０３から通知されるＲＴＴ閾値と比較して、ＲＴＴがＲＴＴ閾値より大きい場合は、値「０」を、ＲＴＴがＲＴＴ閾値以下の場合は、値「１」を目標送信レート選択部に通知する（ステップＤ１４）。
【０１９５】
また、目標送信レート選択部Ｗ１０２は、目標送信レート決定記憶部Ｗ１０１から目標送信レートＡ，Ｂを通知され、ＲＴＴ判定部Ｗ１０８から値「０」を通知された場合、目標送信レートＢを、値「１」を通知された場合は目標送信レートＡを選択し、送信レート制御部Ｗ１０４に通知する（ステップＤ１５、Ｄ１６）。
【０１９６】
送信レート制御部Ｗ１０４は、目標送信レート選択部Ｗ１０２から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートＡの時、現在の送信レートがＡよりも小さい場合は送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する。また、目標送信レートがＢの時、どんな場合でも送信レートをＢとする（ステップＤ１７）。
【０１９７】
決定した送信レートは送信レート送信部Ｗ１０５に通知される（ステップＤ１８）。
【０１９８】
パケット送信が終了していなければ（ステップＤ１９）、上記決定した送信レートでパケット送信を行い（ステップＤ１１）、パケット送信が終了している場合、コネクションを終了させ（ステップＤ２０）、コネクション終了を経路状態情報管理端末Ｋ１０の通信状態管理部Ｋ１２に通知する（ステップＤ２１）。
【０１９９】
（第４の実施例の効果）
第３の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０２００】
従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートＢまで減少させる。目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【０２０１】
管理端末Ｋ１０は、どの端末間で通信が行われているか把握しているため、他の通信に影響を与えないように、各端末にボトルネックリンクの物理帯域上限値、最小ＲＴＴの推定を行わせることが可能となる。
【実施例５】
【０２０２】
本発明の第５の実施例について図面を参照して詳細に説明する。ネットワーク構成は図１と同じであり、ネットワーク上に端末Ｓ１〜Ｓｎが配置されており、端末Ｓ１〜Ｓｎ同士でデータ通信を行う。
【０２０３】
ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。
【０２０４】
図１３は第５の実施例による端末Ｓ１の内部構成をあらわしている。端末Ｓ１には、情報通知取得部Ｘ１０、データ送受信制御部Ｘ１００が備えられている。
【０２０５】
情報通知取得部Ｘ１０は、経路状態・端末情報通知取得部Ｘ１１と経路状態・端末情報記憶部Ｘ１２を備えている。
【０２０６】
データ送受信制御部Ｘ１００には、目標送信レート推定部Ｘ１０１、目標送信レート決定記憶部Ｘ１０２、ＲＴＴ閾値決定記憶部Ｘ１０３、目標送信レート選択部Ｘ１０４、送信レート制御部Ｘ１０５、パケット送信部Ｘ１０６、パケット受信部Ｘ１０７、ＲＴＴ計測部Ｘ１０８、ＲＴＴ判定部Ｘ１０９が備えられている。各構成要素について、以下に説明する。
【０２０７】
経路状態・端末情報通知取得部Ｘ１１は、目標送信レート決定記憶部Ｘ１０１とＲＴＴ閾値決定記憶部Ｘ１０３から経路状態情報（ボトルネックリンクの物理帯域と送受信端末間の最小ＲＴＴ）を取得し、端末Ｓ２〜Ｓｎに対して経路状態情報と自端末の受信バッファのサイズを通知する。
【０２０８】
通知された経路状態情報と受信バッファサイズは、経路状態・端末情報記憶部Ｘ１２に記憶する。経路状態情報とは、端末間のボトルネックリンクの物理帯域と最小ＲＴＴであり、端末情報は、受信バッファサイズである。
【０２０９】
経路状態情報（ボトルネックリンクの物理帯域、最小ＲＴＴ）を各端末に通知することにより、データ特性（例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる）に応じて経路を選択することが可能となる。また、端末Ｓ２〜Ｓｎに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
【０２１０】
目標送信レート推定部Ｘ１０１は、送信レート制御部Ｘ１０５から通知される送信レートと、ＲＴＴ計測部Ｘ１０８から通知されるＲＴＴによって、送受信端末間のボトルネックリンクの物理帯域上限値（目標送信レートＡ）の推定を行う。推定方法については、第１の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部Ｎ１０１は、この推定方法により、目標送信レートＡを推定する。
【０２１１】
目標送信レート決定記憶部Ｘ１０２は、目標送信レートＡ，Ｂ決定し、記憶する。目標送信レートＡについては、目標送信レート推定部Ｘ１０１から通知されるレート値で、目標送信レートＢは、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴ閾値決定記憶部Ｘ１０３に記憶されているＲＴＴ閾値で除算した値や、データ特性に応じて決定される。
【０２１２】
ＲＴＴ閾値決定記憶部Ｘ１０３は、第１の実施例で示した推定方法で得られるウィンドウサイズとＲＴＴの組情報を目標送信レート推定部Ｘ１０１から取得し、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）をＲＴＴ閾値として決定し、記憶させる。本発明においては、ウィンドウサイズについて、図１９のウィンドウサイズＷＡ以下の値で送信レートの制御を行うため、送信側で観測するＲＴＴが最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えると他のトラヒックが存在していると判断することが可能である。
【０２１３】
ＲＴＴ判定部Ｘ１０９は、ＲＴＴ計測部Ｘ１０８から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｘ１０３から得られるＲＴＴ閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
【０２１４】
本実施例では、ウィンドウサイズ（１ＲＴＴ間に送信するパケット量）の最大値を図１９のウィンドウサイズＷＡとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【０２１５】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、送信側の端末Ｓ１のＲＴＴ計測部Ｘ１０８では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴ計測部Ｘ１０８は、測定したＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｘ１０４に通知する。
【０２１６】
目標送信レート選択部Ｘ１０４は、ＲＴＴ判定部Ｘ１０９からの情報として値「０」を通知された場合（送受信端末間のボトルネックリンクに他のトラヒックが存在している）、目標送信レートＢを選択し、値「１」を通知された場合には（送受信端末間のボトルネックリンクに他のトラヒックが存在していない）、目標送信レートＡを選択する。選択した結果は、送信レート制御部Ｘ１０５に通知する。
【０２１７】
送信レート制御部Ｘ１０５は、目標送信レート選択部Ｘ１０４から通知される目標レートと現在の送信レートを比較することにより送信レートを決定し、パケット送信部Ｘ１０６と目標送信レート推定部Ｘ１０１に通知する。目標送信レートがＢの場合、送信レートをＢに、目標送信レートがＡの場合、現在の送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【０２１８】
パケット送信部Ｘ１０６は、送信レート制御部Ｘ１０５から通知された送信レートでパケットを送信する。
【０２１９】
パケット受信部Ｘ１０７は、他の端末から送信されたパケットや、送信パケットに対するＡＣＫ（確認応答）パケットを受信する。また、受信バッファサイズを
ＲＴＴ計測部Ｘ１０８は、データパケットの送信時刻とＡＣＫ（確認応答）パケットの受信時刻を利用してＲＴＴ（往復遅延時間）を計測する。計測したＲＴＴは、ＲＴＴ判定部Ｘ１０９に通知される。
【０２２０】
（動作の説明）
次に、図１３、図１４および図１９を参照して、本発明の第５の実施例の動作について詳細に説明する。
【０２２１】
図１でＳ１〜Ｓｎがデータを送信する場合、端末Ｓ１〜Ｓｎの端末は同じ動作をするので、端末Ｓ１が送信側の端末としてデータ通信を行う場合を考える。
【０２２２】
図１４において、コネクションが開設されると（ステップＥ１）、まず、目標送信レート推定部Ｘ１０１が、目標送信レート決定記憶部Ｘ１０２とＲＴＴ閾値決定記憶部Ｘ１０３に問い合せ、過去の通信において得られた履歴情報（目標送信レートＡ，ＢとＲＴＴ閾値）が記憶されているか確認を行う（ステップＥ２）。記憶されている場合はそれぞれの記憶されている値によって目標送信レートＡ、ＢとＲＴＴ閾値を決定する（ステップＥ３）。履歴情報が記憶されていない場合には、パケット送信中にあるウィンドウサイズとあるウィンドウサイズに対するＲＴＴを組とする組情報を取得して、目標送信レートＡ，Ｂ、ＲＴＴ閾値を推測し（ステップＥ４）、決定する。
【０２２３】
以下では、上記の履歴情報（目標送信レートＡ、ＢとＲＴＴ閾値）がコネクション開設時に記憶されている場合とそうでない場合で分けて記述する。
【０２２４】
ステップＥ２で履歴情報が記憶されている場合、パケット送信開始にあたって、送信レート制御部Ｘ１０５において、送信レートの初期化を行う（ステップＥ５）。この初期化では、例えば、パケットサイズをＲＴＴ閾値決定記憶部Ｘ１０３に記憶されているＲＴＴ閾値（ＲＴＴ＿ｍｉｎ）で除算した値や、目標送信レートＢを送信レートとする。
【０２２５】
パケット送信部Ｘ１０６は送信レート制御部Ｘ１０５から通知される送信レートでパケットを送信する（ステップＥ６）。送信パケットに対する確認応答としてＡＣＫパケットが受信側から返信されるとパケット受信部Ｘ１０７で受信を行う（ステップＥ７）。
【０２２６】
ＡＣＫパケットの受信を行うと、ＲＴＴ計測部Ｘ１０８でパケットを送信した時刻と、前述の送信パケットに対するＡＣＫパケットを受信した時刻を利用してＲＴＴを計測する（ステップＥ８）。
【０２２７】
ＲＴＴ判定部Ｘ１０９は、ＲＴＴ計測部Ｘ１０８から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｘ１０３から通知されるＲＴＴ閾値を比較して、送受信端末間のボトルネックリンクに他のトラヒックが存在するかどうか判定を行う（ステップＥ９）。
【０２２８】
本実施例では、ウィンドウサイズ（１ＲＴＴ間で送信するパケットの量）をウィンドウサイズＷＡ以下の範囲で制御を行うため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、送信端末は図１９のＲＴＴ閾値（ＲＴＴ＿ｍｉｎ）のＲＴＴを観測する。送受信端末間のボトルネックリンクに他のトラヒックが存在する場合はＲＴＴ閾値（ＲＴＴ＿ｍｉｎ）よりも大きいＲＴＴを観測する。そこで、ＲＴＴがＲＴＴ閾値よりも大きい場合は、ボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値と等しい場合は、ボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｘ１０４に通知する。目標送信レート選択部Ｘ１０４は、ＲＴＴ判定部Ｘ１０９から値「０」の通知を受けると目標送信レートＢを選択し、値「１」の通知を受けると目標送信レートＡを選択する。その結果を送信レート制御部Ｘ１０５に通知する（ステップＥ１０、Ｅ１１）。
【０２２９】
送信レート制御部Ｘ１０５は、目標送信レートＢの通知を受け取ると、送信レートをＢとする。目標送信レートＡの通知を受け取ると、現在の送信レートとＡを比較して、現在の送信レートが目標送信レートＡよりも小さい場合、送信レートを目標送信レートＡまで増加させる。現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、を維持しあるいは目標送信レートＡに設定する（ステップＥ１２）。送信レート制御部Ｘ１０５は決定した送信レートをパケット送信部Ｘ１０６に通知する（ステップＥ１３）。
【０２３０】
パケット送信が終了していなければ（ステップＥ１４）、上記決定した送信レートでパケット送信を行い（ステップＥ６）、パケット送信が終了している場合、コネクションを終了させる（ステップＥ１５）。
【０２３１】
経路状態・端末情報通知取得部Ｘ１１は、経路状態・端末情報記憶部Ｘ１２から経路状態情報を取得し、経路状態情報と受信バッファのサイズを端末Ｓ２〜Ｓｎへ通知する（ステップＥ１６）。
【０２３２】
履歴情報が記憶されていない場合、送信レート制御部Ｘ１０５で送信レートを初期化する。この場合の初期化では、ＲＴＴは記憶されていた既知値ではないので、送信レートとしてウィンドウサイズを１パケットとする。また、送信レートを目標送信レート推定部Ｘ１０１に通知すると共に、パケット送信部Ｌ１０６に通知し当該送信レートでパケットの送信を行う。
【０２３３】
送信パケットに対する確認応答としてＡＣＫパケットが受信側から返信されるとパケット受信部Ｘ１０７で受信を行う。受信を行うと、ＲＴＴ計測部Ｘ１０８でパケットを送信した時刻と、前述の送信パケットに対するＡＣＫパケットを受信した時刻を利用してＲＴＴを計測し、目標送信レート推定部Ｘ１０１に通知する。
【０２３４】
目標送信レート推定部Ｘ１０１は、ウィンドウサイズ（１ＲＴＴ間で送信されるパケットの量）とウィンドウサイズ（１ＲＴＴ間で送信されるパケットの量）に対するＲＴＴを組とする組情報を記憶しておく。送信レート制御部Ｘ１０５は、従来のＴＣＰの送信レート制御方式を用いて送信レートの制御を行う。目標送信レート推定部Ｌ１０１は、複数の組情報を収集し、第１の実施例で示した推定手法により、目標送信レートＡ，ＢとＲＴＴ閾値を決定する。また、目標送信レートＡとＲＴＴ閾値はそれぞれ目標送信レート決定記憶部Ｘ１０２とＲＴＴ閾値決定記憶部Ｘ１０３から経路状態・端末情報通知取得部Ｘ１２に通知される。
【０２３５】
目標送信レートＡ，ＢとＲＴＴ閾値を決定すると、それ以降の動作（ステップＥ５以降の動作）は、コネクション開設時に履歴情報を記憶している場合と同じである。
【０２３６】
（第５の実施例の効果）
第１の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レートの制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０２３７】
また、従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在すると推測してウィンドウサイズを半分、もしくは”１”まで減少させるが、本実施例では、他のトラヒックが存在すると判断すると、送信レートを目標送信レートＢまで減少させる。この目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【０２３８】
データ転送によって得られたボトルネックリンクの物理帯域上限値、最小ＲＴＴと受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
【実施例６】
【０２３９】
本発明の第６の実施例について図面を参照して詳細に説明する。ネットワーク構成は図１と同じであり、ネットワーク上に端末Ｓ１〜Ｓｎが配置されており、端末Ｓ１〜Ｓｎ同士でデータ通信を行う。
【０２４０】
ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。
【０２４１】
図１５を参照すると、第６の実施例による端末Ｓ１は、経路状態推定部Ｙ１０とデータ送受信制御部Ｙ１００を備えている。
【０２４２】
経路状態推定部Ｙ１０は、端末間の帯域、ＲＴＴの計測を行い。計測した結果から経路状態の推定を行う機能を有し、試験パケット送受信部Ｙ１１、経路状態計測部Ｙ１２、そして経路状態・端末情報記憶部Ｙ１３、経路状態・端末情報通知取得部Ｙ１４を備えている。
【０２４３】
データ送受信制御部Ｙ１００は、経路状態推定部Ｙ１０で推定された経路状態情報に依存して送信レート制御を行う機能を有し、目標送信レート決定記憶部Ｙ１０１、目標送信レート選択部Ｙ１０２、送信レート制御部Ｙ１０４、パケット送信部Ｙ１０５、パケット受信部Ｙ１０６、ＲＴＴ計測部Ｙ１０７、ＲＴＴ判定部Ｙ１０８、ＲＴＴ閾値決定記憶部Ｙ１０３を備えている。各構成要素について、以下に説明する。
【０２４４】
経路状態推定部Ｙ１０は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶させる機能とを備えている。経路状態情報とは、ボトルネックリンクの物理帯域と最小ＲＴＴである。ボトルネックリンクの物理帯域の推定は、なお、ボトルネックリンクの物理帯域の推定方法については、第２の実施例で述べたように、第１の実施例で述べた推定手法や、Packet-Pair手法（非特許文献５に記載される手法）による推定方法が用いられる。ここでは、その詳細を省略する。
【０２４５】
最小ＲＴＴは、第１の実施例で述べた推定手法や、Ｐａｃｋｅｔ−Ｐａｉｒ手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してＲＴＴを算出し、最小の値を推定結果とする。推定された結果は、経路状態情報記憶部Ｙ１２に記憶される。記憶された結果はデータ送受信制御部Ｙ１００に通知され、送信レートの決定に利用される。
【０２４６】
また、経路状態・端末情報通知取得部Ｙ１４は、経路状態・端末情報記憶部Ｙ１３から得られる経路状態情報（ボトルネックリンクの物理帯域、最小ＲＴＴ）と受信バッファサイズを端末Ｓ２〜Ｓｎに通知する。これにより、データ特性（例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる）に応じて経路を選択することが可能となる。また、端末Ｓ２〜Ｓｎに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
【０２４７】
データ送受信制御部Ｙ１００は、ＯＳＩ参照モデルのトランスポート層プロトコルの１つであるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌと同等の機能を有している。コネクションの開設、中断、終了、確認応答機能、再送制御機能である。
【０２４８】
目標送信レート決定記憶部Ｙ１０１は、２つの目標送信レートＡ，Ｂを決定し、記憶する。目標送信レートＡについては、経路状態情報記憶部Ｙ１３から通知されるボトルネックリンクの物理帯域上限値とする。目標送信レートＢは、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴで除算した値や、データ特性に応じた値で決定される。
【０２４９】
ＲＴＴ閾値決定記憶部Ｙ１０３は、経路状態・端末情報記憶部Ｙ１３から通知される値を、ＲＴＴ閾値として記憶する。このとき経路状態・端末情報記憶部Ｙ１３から通知される値は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）と等しい値である。
【０２５０】
ＲＴＴ判定部Ｙ１０８は、ＲＴＴ計測部Ｙ１０７から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｙ１０３から得られるＲＴＴ閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
【０２５１】
本実施例では、送信レートの最大値を目標送信レートＡとして送信レート制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【０２５２】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクルータのバッファにパケットが蓄積されはじめ、送信側の端末Ｓ１のＲＴＴ計測部Ｙ１０７では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴ計測部Ｙ１０７は、測定したＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｙ１０４に通知する。
【０２５３】
目標送信レート選択部Ｙ１０２は、ＲＴＴ判定部Ｙ１０８から通知される情報に基づいて目標送信レート記憶部にある２つの目標送信レートＡ，Ｂのうちどちらか一方を選択する。ＲＴＴがＲＴＴ閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートＡを選択、逆にＲＴＴがＲＴＴ閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートＢを選択する。選択した結果を送信レート制御部Ｙ１０４に通知する。
【０２５４】
送信レート制御部Ｙ１０４は、目標送信レート選択部Ｙ１０２から通知された目標送信レートと、現在の送信レートを比較することにより送信レートを決定する。目標送信レートがＢの場合、送信レートをＢに、目標送信レートがＡの場合、送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【０２５５】
パケット送信部Ｙ１０５は、送信レート制御部Ｙ１０４から通知された送信レートに従って、パケットを送信する。
【０２５６】
パケット受信部Ｙ１０６は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてＡＣＫパケットを受信する部分である。
【０２５７】
ＲＴＴ計測部Ｙ１０７は、送信パケットの送信時刻と送信パケットに対して返信されたＡＣＫパケットの受信時刻を用いてＲＴＴを計測する。
【０２５８】
（動作の説明）
次に、図１、図１５および図１６を参照して、本発明の第６の実施例の動作について詳細に説明する。
【０２５９】
図１でＳ１〜Ｓｎがデータを送信する場合、端末Ｓ１〜Ｓｎの端末は同じ動作をするので、端末Ｓ１が送信側の端末としてデータ通信を行う場合を考える。
【０２６０】
図１６において、端末Ｓ１の経路状態推定部Ｙ１０は、送受信端末間のボトルネックリンクと最小ＲＴＴの推定を行う。この推定処理においては、まず、測定パケット送受信部Ｙ１１から測定パケットを送信する（ステップＦ１）。そして、受信側の端末からのＡＣＫパケットを受信する（ステップＦ２）。
【０２６１】
経路状態計測部Ｙ１２は、計測した値からボトルネックリンクの物理帯域と最小ＲＴＴの推定を行い、経路状態・端末情報記憶部Ｙ１３に通知する（ステップＦ３、Ｆ４）。経路状態・端末情報記憶部Ｙ１３は、経路状態計測部Ｙ１２から通知された物理帯域上限値と最小ＲＴＴを記憶し、経路状態・端末情報通知取得部Ｙ１４は経路状態情報記憶部Ｙ１３から経路状態情報を取得し、端末Ｓ２〜Ｓｎに対して通知する（ステップＦ５）。
【０２６２】
コネクションが開設されると（ステップＦ６）、経路状態・端末情報記憶部Ｙ１３から、目標送信レート記憶部Ｙ１０１とＲＴＴ閾値決定記憶部Ｙ１０３に対して、それぞれボトルネックの物理帯域と最小ＲＴＴが通知される。
【０２６３】
ＲＴＴ閾値決定記憶部Ｙ１０３は、通知された最小ＲＴＴに依存してＲＴＴ閾値を決定し記憶する。目標送信レート決定記憶部Ｙ１０１は、通知された物理帯域上限値を目標送信レート値Ａとし、目標送信レート値Ｂは、Ａより小さい値で与える（ステップＦ７）。例えば、目標送信レート値Ｂとしては、パケットサイズをＲＴＴで除算した値や、データ特性に依存した送信レート値が考えられる。
【０２６４】
目標送信レート値Ａ、ＢとＲＴＴ閾値が決定すると、送信レート制御部Ｙ１０４は、送信レートの初期化を行う（ステップＥ８）。この初期化では、例えば、パケットサイズをＲＴＴで除算した値や、目標送信レートＢを送信レートとする。
【０２６５】
送信レート制御部Ｙ１０４から送信レートがパケット送信部Ｙ１０５に通知され、パケット送信部Ｙ１０５はその通知された送信レートでパケットを送信する（ステップＥ９）。
【０２６６】
送信パケットに対するＡＣＫ（確認応答）パケットが受信端末から返信されるとパケット受信部Ｙ１０６でＡＣＫパケットを受信する（ステップＥ１０）。
【０２６７】
その後、ＲＴＴ計測部Ｙ１０７で、送信パケットの送信時刻と送信したパケットに対して返信されたＡＣＫパケットを受信した受信時刻を利用してＲＴＴを算出する（ステップＥ１１）。
【０２６８】
ＲＴＴ判定部Ｙ１０８は、ＲＴＴ計測部Ｙ１０７から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｙ１０３から通知されるＲＴＴ閾値を比較して、送受信端末間のリンクに他のトラヒックが存在するかどうか判定する（ステップＥ１２）。送受信端末間に他のトラヒックが存在しない場合、送信端末Ｓ１は、図１９のＲＴＴ＿ｍｉｎを観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、ＲＴＴ閾値を越えたＲＴＴを観測する。従ってＲＴＴがＲＴＴ閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｙ１０２に通知する（ステップＥ１３、Ｅ１４）。
【０２６９】
また、目標送信レート選択部Ｙ１０２は、目標送信レート決定記憶部Ｙ１０１から目標送信レートＡ，Ｂを通知され、ＲＴＴ判定部Ｙ１０８から値「０」を通知された場合、目標送信レートＢを、値「１」を通知された場合は、目標送信レートＡを選択し、送信レート制御部Ｙ１０４に通知する。
【０２７０】
送信レート制御部Ｙ１０４は、目標送信レート選択部Ｙ１０２から目標送信レートＢの通知を受け取ると、送信レートをＢとする。目標送信レートＡの通知を受け取ると、通知された目標送信レートと現在の送信レートの比較を行い、目標送信レートが目標送信レートＡの時、現在の送信レートがＡよりも小さい場合は送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する（ステップＥ１５）。
【０２７１】
送信レート制御部Ｙ１０４は決定した送信レートをパケット送信部Ｙ１０５に通知する（ステップＥ１６）。パケット送信が終了していなければ（ステップＥ１７）、上記決定した送信レートでパケット送信を行い（ステップＥ９）、パケット送信が終了している場合、コネクションを終了させる（ステップＥ１８）。
【０２７２】
（第６の実施例の効果）
第６の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域上限値）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０２７３】
従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートＢまで減少させる。目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点をを解消できる。
【０２７４】
第１の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小ＲＴＴが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
【０２７５】
得られたボトルネックリンクの物理帯域、最小ＲＴＴ、受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
【実施例７】
【０２７６】
本発明の第７の実施例について図面を参照して詳細に説明する。ネットワーク構成は図１と同じであり、ネットワーク上に端末Ｓ１〜Ｓｎが配置されており、端末Ｓ１〜Ｓｎ同士でデータ通信を行う。
【０２７７】
ここでも、端末Ｓ１〜Ｓｎは、同じ内部構成であるため、端末Ｓ１について説明する。
【０２７８】
図１７を参照すると、第７の実施例による端末Ｓ１は、経路状態推定部Ｚ１０とデータ送受信制御部Ｚ１００を備えている。
【０２７９】
経路状態推定部Ｚ１０は、端末間の帯域、ＲＴＴの計測を行い。計測した結果から経路状態の推定を行う機能を有し、試験パケット送受信部Ｚ１１、経路状態計測部Ｚ１２、そして経路状態・端末情報記憶部Ｚ１３、経路状態・端末情報通知取得部Ｚ１４を備えている。
【０２８０】
データ送受信制御部Ｚ１００は、経路状態推定部Ｚ１０で推定された経路状態情報に依存して送信レート制御を行う機能を有し、目標送信レート決定記憶部Ｚ１０１、目標送信レート選択部Ｚ１０２、送信レート制御部Ｚ１０４、パケット送信部Ｚ１０５、パケット受信部Ｚ１０６、ＲＴＴ計測部Ｚ１０７、ＲＴＴ判定部Ｚ１０８、ＲＴＴ閾値決定記憶部Ｚ１０３を備えている。各構成要素について、以下に説明する。
【０２８１】
経路状態推定部Ｚ１０は、送受信端末間の経路状態を推定する機能と経路状態情報を記憶する機能を備えている。経路状態情報とは、ボトルネックリンクの物理帯域と最小ＲＴＴを含む情報である。ボトルネックリンクの物理帯域の推定は、第２の実施例で述べたように、第１の実施例で述べた推定手法や、Packet-Pair手法（非特許文献５に記載される手法）による推定方法が用いられる。ここでは、その詳細を省略する。
【０２８２】
最小ＲＴＴは、第１の実施例で述べた推定手法や、Ｐａｃｋｅｔ−Ｐａｉｒ手法を用いて、測定パケットを送信した時間と、受信側の応答として返信されるパケットの到着時間を利用してＲＴＴを算出し、最小の値を推定結果とする。推定した結果は、経路状態情報記憶部Ｚ１２に記憶される。記憶された結果はデータ送受信制御部Ｚ１００に通知され、送信レートの決定に利用される。
【０２８３】
また、経路状態・端末情報通知取得部Ｚ１４は、経路状態・端末情報記憶部Ｚ１３から得られる経路状態情報（ボトルネックリンクの物理帯域、最小ＲＴＴ）と受信バッファサイズを端末Ｓ２〜Ｓｎに通知する。これにより、データ特性（例えば、高帯域を必要とする場合、リアルタイム性を要求する場合などが挙げられる）に応じて経路を選択することが可能となる。また、端末Ｓ２〜Ｓｎに中継を依頼する場合、端末の受信能力を示す受信バッファサイズを通知することで、データ特性に応じて中継先を選択することも可能になる。
【０２８４】
データ送受信制御部Ｚ１００は、（ＯＳＩ参照モデルのトランスポート層プロトコルの１つであるＴＣＰ(Transmission Control Protocol)と同等の機能を有している。具体的には、）コネクションの開設、中断、終了、確認応答機能、再送制御機能、および輻輳制御機能である。
【０２８５】
目標送信レート決定記憶部Ｚ１０１は、経路状態情報推定部から通知される経路状態情報に基づいて受信側の端末ごとに２つの目標送信レートＡ，Ｂを決定する。目標送信レートＡについては、受信側の端末までの経路に他のトラヒックがいない時に出せる最大の送信レート値とし、目標送信レートＢは、Ａよりも小さい値である。目標送信レートＢとしては、パケットサイズをＲＴＴで除算した値や、データ特性に応じてアプリケーションから指示された送信レート値であって、目標送信レートＡより小さい値が用いられる。
【０２８６】
また、目標送信レート決定記憶部Ｚ１０１は、送信レート制御部Ｚ１０４から通知される送信レート値とＲＴＴ計測部Ｚ１０７で計測されるＲＴＴを用いた経路状態の推定も行う。データ送信中における推定については、第１の実施例で既に述べたインライン計測による推定方法が用いられる。目標送信レート決定記憶部Ｚ１０１は、この推定方法により、目標送信レートＡを推定する。
【０２８７】
目標送信レート決定記憶部Ｚ１０１は、２つの目標送信レートＡ，Ｂを決定し、記憶する。目標送信レートＡについては、経路状態情報記憶部Ｚ１３から通知されるボトルネックリンクの物理帯域値上限値とする。目標送信レートＢについては、目標送信レートＡよりも小さい値で決定される。目標送信レートＢとしては、例えば、パケットサイズをＲＴＴで除算した値や、データ特性に応じた値で決定される。また、パケット送信中においても、送信レート制御部Ｚ１０４から送信レート値とＲＴＴ計測部Ｚ１０７からＲＴＴ値を取得して、ボトルネックリンクの物理帯域値上限値の推定を行う。
【０２８８】
ＲＴＴ閾値決定記憶部Ｚ１０３は、経路状態情報記憶部Ｚ１３から通知される値を、ＲＴＴ閾値として記憶する。このとき経路状態・端末情報記憶部Ｚ１３から通知される値は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）と等しい値である。
【０２８９】
ＲＴＴ判定部Ｚ１０８は、ＲＴＴ計測部Ｚ１０７から得られるＲＴＴとＲＴＴ閾値決定記憶部Ｚ１０３から得られるＲＴＴ閾値を利用して送受信端末間に他のトラヒックが存在するかどうか判定する。
【０２９０】
本実施例では、送信レートの最大値を目標送信レートＡとして送信レートの制御を行っており、送受信端末間において他のトラヒックが存在しないときに観測されるＲＴＴは、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）となる。
【０２９１】
ボトルネックリンクに他のトラヒックが流入するとボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、送信側の端末Ｓ１のＲＴＴ計測部Ｚ１０７では、最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を越えたＲＴＴ値を観測する。従って、ＲＴＴ計測部Ｚ１０７は、計測したＲＴＴがＲＴＴ閾値を越えている場合は、送受信端末間に他のトラヒックが存在すると判断して値「０」を、ＲＴＴがＲＴＴ閾値の場合は、送受信端末間に他のトラヒックが存在していないと判断して値「１」を目標送信レート選択部Ｚ１０４に通知する。
【０２９２】
目標送信レート選択部Ｚ１０２は、ＲＴＴ判定部Ｚ１０８から通知される情報に基づいて目標送信レート決定記憶部Ｚ１０１にある２つの目標送信レートＡ，Ｂのうちどちらか一方を選択する。ＲＴＴがＲＴＴ閾値以下の場合は、送受信端末間の経路上に他のトラヒックが存在していないと判断して目標送信レートとして目標送信レートＡを選択、逆にＲＴＴがＲＴＴ閾値よりも大きい場合は、送受信端末間に他のトラヒックが存在していると認識して目標送信レートとして目標送信レートＢを選択する。選択した結果を送信レート制御部Ｚ１０４に通知する。
【０２９３】
送信レート制御部Ｚ１０４は、目標送信レート選択部Ｚ１０２から通知された目標送信レートと、現在の送信レートを比較することにより送信レートを決定する。目標送信レートがＢの場合、現在の送信レートに関わらず送信レートをＢに、目標送信レートがＡの場合、送信レートがＡよりも小さい場合は、送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートをＡにする。
【０２９４】
パケット送信部Ｚ１０５は、送信レート制御部Ｚ１０４から通知された送信レートに従って、パケットを送信する。
【０２９５】
パケット受信部Ｚ１０６は、他の端末から送信されたパケットや、送信パケットに対するフィードバックとしてＡＣＫパケットを受信する部分である。
【０２９６】
ＲＴＴ計測部Ｚ１０７は、送信パケットの送信時刻と送信パケットに対して返信されたＡＣＫパケットの受信時刻を用いてＲＴＴを計測する。
【０２９７】
（動作の説明）
次に、図１、図１７および図１８を参照して、本発明の第７の実施例の動作について詳細に説明する。
【０２９８】
図１でＳ１〜Ｓｎがデータを送信する場合の動作は同じであるので、ここでは端末Ｓ１が送信端末としてデータ通信を行う場合を考える。
【０２９９】
図１８において、端末Ｓ１の経路状態推定部Ｚ１０は、送受信端末間のボトルネックリンクと最小ＲＴＴの推定を行う。この推定処理においては、まず、測定パケット送受信部Ｚ１１から測定パケットを送信する（ステップＧ１）。そして、受信側の端末からのフィードバックとしてＡＣＫパケットを受信する（ステップＧ２）。
【０３００】
経路状態計測部Ｚ１２は、計測した値からボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行い、経路状態・端末情報記憶部Ｚ１３に通知する（ステップＧ３、Ｇ４）。経路状態・端末情報記憶部Ｚ１３は、経路状態計測部Ｚ１２から通知された物理帯域上限値と最小ＲＴＴを記憶する。また、経路状態・端末情報通知取得部Ｚ１４は経路状態情報記憶部Ｚ１３から経路状態情報を取得し、端末Ｓ２〜Ｓｎに対して通知する（ステップＧ５）。
【０３０１】
コネクションが開設されると（ステップＧ６）、経路状態・端末情報記憶部Ｚ１３から、目標送信レート記憶部Ｚ１０１とＲＴＴ閾値決定記憶部Ｚ１０３に対して、それぞれボトルネックの物理帯域上限値と最小ＲＴＴが通知される。
【０３０２】
ＲＴＴ閾値決定記憶部Ｚ１０３は、通知された最小ＲＴＴに基づいてＲＴＴ閾値を決定し記憶する。一方、目標送信レート決定記憶部Ｚ１０１は、通知された物理帯域上限値を目標送信レート値Ａとし、目標送信レート値Ｂは、Ａより小さい値で与える（ステップＧ７）。例えば、目標送信レート値Ｂとしては、パケットサイズをＲＴＴで除算した値や、データ特性に依存した送信レート値が考えられる。
【０３０３】
目標送信レート値Ａ，ＢとＲＴＴ閾値が決定すると、送信レート制御部Ｚ１０４は、送信レートの処理化を行う（ステップＧ８）。この初期化では、例えば、パケットサイズをＲＴＴ閾値で除算した値や、目標送信レートＢを送信レートとする。
【０３０４】
送信レート制御部Ｚ１０４から送信レートがパケット送信部Ｚ１０５に通知され、パケット送信部Ｚ１０５はその通知された送信レートでパケットを送信する（ステップＧ９）。
【０３０５】
送信パケットに対するＡＣＫ（確認応答）パケットが受信側の端末から返信されるとパケット受信部Ｚ１０６でＡＣＫパケットを受信する（ステップＧ１０）。
【０３０６】
その後、ＲＴＴ計測部Ｚ１０７で、送信パケットの送信時刻と送信したパケットに対して返信されたＡＣＫパケットを受信した受信時刻を利用してＲＴＴを算出する（ステップＧ１１）。
【０３０７】
算出されたＲＴＴは、目標送信レート決定記憶部Ｚ１０１とＲＴＴ判定部Ｚ１０８に通知される。
【０３０８】
ＲＴＴ判定部Ｚ１０８は、ＲＴＴ計測部Ｚ１０７から通知されるＲＴＴとＲＴＴ閾値決定記憶部Ｚ１０３から通知されるＲＴＴ閾値を比較することにより、送受信端末間の経路に他のトラヒックが存在するかどうか判定する（ステップＧ１２）。送受信端末間に他のトラヒックが存在しない場合、送信端末Ｓ１は、図１９の最小ＲＴＴ（ＲＴＴ＿ｍｉｎ）を観測する。送受信端末間に他のトラヒックが存在する場合は、ボトルネックリンクのルータのバッファにパケットが蓄積されはじめ、ＲＴＴ閾値を越えたＲＴＴを観測する。従ってＲＴＴがＲＴＴ閾値より大きい場合は送受信端末間のボトルネックリンクに他のトラヒックが存在すると判断して、値「０」を、ＲＴＴがＲＴＴ閾値以下の場合は送受信端末間のボトルネックリンクに他のトラヒックが存在しないと判断して、値「１」を目標送信レート選択部Ｚ１０２に通知する（ステップＧ１３、Ｇ１４）。
【０３０９】
また、目標送信レート選択部Ｚ１０２は、目標送信レート決定記憶部Ｚ１０１から目標送信レートＡ，Ｂを通知され、ＲＴＴ判定部Ｚ１０８から値「０」を通知された場合、目標送信レートＢを、値「１」を通知された場合は、目標送信レートＡを選択し、送信レート制御部Ｚ１０４に通知する。
【０３１０】
送信レート制御部Ｚ１０４は、目標送信レート選択部Ｚ１０２から通知された目標送信レートと現在の送信レートの比較を行う。目標送信レートが目標送信レートＡの時、現在の送信レートが目標送信レートＡよりも小さい場合は送信レートを目標送信レートＡまで増加させ、現在の送信レートが目標送信レートＡと等しいかそれ以上の場合は、送信レートを維持しあるいは目標送信レートＡに設定する。また、目標送信レートがＢの時、どんな場合でも送信レートをＢとする。また、目標送信レートがＢの時、どんな場合でも送信レートをＢとする（ステップＧ１５）。
【０３１１】
決定した送信レートは目標送信レート決定記憶部Ｚ１０１とパケット送信部Ｚ１０５に通知される（ステップＧ１６）。
【０３１２】
パケット送信が終了していなければ（ステップＧ２０）、上記決定した送信レートでパケット送信を行い（ステップＧ９）、パケット送信が終了している場合、コネクションを終了させる（ステップＧ２１）。
【０３１３】
なお、目標送信レート決定記憶部Ｚ１０１は、経路状態情報記憶部Ｚ１３からボトルネックリンクの物理帯域上限値を通知され、目標送信レートＡとして記憶しておくだけでなく、送信レート制御部Ｚ１０４から通知される送信レートとＲＴＴ計測部Ｚ１０７から通知されるＲＴＴを組とする組情報を取得し、上述した推定手法を用いることにより、コネクション開設後にもボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定を行う（ステップＧ１７）。推定結果が記憶されている内容と異なる場合は、目標送信レート、ＲＴＴ閾値を更新する（ステップＧ７）。そうでない場合は、推定結果を無視する（ステップＧ１９）。
【０３１４】
（第７の実施例の効果）
第７の実施例による効果を説明する。送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合、従来方式では、観測しているＲＴＴがある値を超えるまでは送信レートを増加させ、観測しているＲＴＴがある値を超えると、送信レート減少させるため、リンクの利用率が低下する。しかし、本実施例では、観測しているＲＴＴとＲＴＴ閾値の大小関係から、ボトルネックリンクに他のトラヒックが存在しているかどうか判断して送信レート制御を行っているため、送受信端末間のボトルネックリンクに他のトラヒックが存在しない場合は、目標送信レートＡ（ボトルネックリンクの物理帯域）でパケットを送信するためリンクの利用率が向上し、従来方式の第１及び第２の問題点を解消している。
【０３１５】
従来方式では、観測しているＲＴＴがある値を超えると、他のトラヒックが存在していると推測してウィンドウサイズを半分、もしくは１パケットまで減少させるが、本実施例では、他のトラヒックが存在していると判断すると、送信レートを目標送信レートＢまで減少させる。目標送信レートＢは、データ特性に応じて決定できるため、例えば、最低限必要とされる帯域を指定することが可能となり、従来方式の第３の問題点を解消できる。
【０３１６】
第１の実施例では、過去の通信履歴が残っていない場合、ボトルネックリンクの物理帯域上限値と最小ＲＴＴの推定処理を行うまでは、送受信端末間のボトルネックリンクを共有する他のトラヒックに対してスループットの優先制御が行えなかったのに対して、パケット送信開始時において、ボトルネックリンクの物理帯域上限値と最小ＲＴＴが与えられているので、パケット送信開始時からスループットの優先制御が可能となり、他のトラヒックに対する影響を最小限に抑えることが可能となる。
【０３１７】
パケット送信中においても、ボトルネックリンクの物理帯域上限値、最小ＲＴＴの推定を行うことにより、推定の精度を向上させることが可能となり、スループットの優先制御の精度も向上する。
【０３１８】
得られたボトルネックリンクの物理帯域上限値、最小ＲＴＴ、受信バッファサイズを通信相手となる端末に通知することで、各端末は、データ特性に応じて経路、中継先の選択が可能となる。
【０３１９】
なお、上述した各実施例における端末及び管理端末の各機能は、例えばコンピュータ装置に上述した各手段の機能を持たせることによって実現することができる。具体的には、ＣＰＵでそれぞれの機能をソフトウェア的に達成するプログラムを実行することで実現してもよい。上記各端末及び管理端末の機能をソフトウェア的に実現する場合には、プログラム制御可能なコンピュータ処理装置（ＣＰＵ）上で、各機能を実現する通信プログラムをロードして実行する。この通信プログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、ＣＰＵの動作を制御することにより、各装置としての固有の機能を達成する。
【０３２０】
以上、好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではない。本発明の要旨を逸脱しない範囲内において種々の変形が可能であることは言うまでもない。
【図面の簡単な説明】
【０３２１】
【図１】本発明を適用するネットワーク構成を示す図である。
【図２】本発明の第１の実施例による端末のデータ送受信制御部の内部構成を示すブロック図である。
【図３】本発明の第１の実施例の動作の流れを示すフローチャートである。
【図４】本発明の第２の実施例による端末の内部構成を示すブロック図である。
【図５】本発明の第２の実施例の動作の流れを示すフローチャートである。
【図６】本発明の第３の実施例による端末の経路状態推定部とデータ送受信制御部の内部構成を示すブロック図である。
【図７】本発明の第３の実施例の動作の流れを示すフローチャートである。
【図８】本発明を適用する経路状態を管理する管理端末を配置したネットワーク構成を示す図である。
【図９】本発明の第４の実施例による端末の内部構成を示すブロック図である。
【図１０】本発明の第４の実施例による管理端末の内部構成を示すブロック図である。
【図１１】本発明の第４の実施例による管理端末の動作の流れを示すフローチャートである。
【図１２】本発明の第４の実施例による送信端末の動作の流れを示すフローチャートである。
【図１３】本発明の第５の実施例による端末の内部構成を示すブロック図である。
【図１４】本発明の第５の実施例による送信端末の動作の流れを示すフローチャートである。
【図１５】本発明の第６の実施例による端末の内部構成を示すブロック図である。
【図１６】本発明の第６の実施例による送信端末の動作の流れを示すフローチャートである。
【図１７】本発明の第７の実施例による端末の内部構成を示すブロック図である。
【図１８】本発明の第７の実施例による送信端末の動作の流れを示すフローチャートである。
【図１９】目標送信レート推定部による送受信端末間のボトルネックリンクの物理帯域の推定を行う場合の推定方法を説明する図である。
【図２０】複数の端末からなるネットワーク構成例であって、ボトルネックリンクを説明するための図である。
【図２１】本発明による送信レートの制御例を示す図である。
【符号の説明】
【０３２２】
Ｓ１〜Ｓｎ：  送信端末
Ｌ１００、Ｍ１００、Ｎ１００、Ｗ１００、Ｘ１００、Ｙ１００、Ｚ１００：データ送受信制御部
Ｍ１０、Ｎ１０、Ｗ１０、Ｙ１０、Ｚ１０：経路状態推定部
Ｘ１０：情報通知取得部
Ｍ１３、Ｎ１３、Ｋ１４：経路状態情報記憶部
Ｗ１３、Ｋ１３：経路状態情報取得・通知部
Ｌ１０３、Ｍ１０３、Ｎ１０３、Ｗ１０３、Ｘ１０３、Ｙ１０３、Ｚ１０３：ＲＴＴ閾値決定記憶部
Ｌ１０９、Ｍ１０８、Ｎ１０８、Ｗ１０８、Ｘ１０９、Ｙ１０８、Ｚ１０８：ＲＴＴ判定部
Ｌ１０８、Ｍ１０７、Ｎ１０７、Ｗ１０７、Ｘ１０８、Ｙ１０７、Ｚ１０７：ＲＴＴ計測部
Ｌ１０１、Ｘ１０１：目標送信レート推定部
Ｌ１０２、Ｍ１０１、Ｎ１０１、Ｗ１０１、Ｘ１０２、Ｙ１０１、Ｚ１０１：目標送信レート決定記憶部
Ｌ１０４、Ｍ１０２、Ｎ１０２、Ｗ１０２、Ｘ１０４、Ｙ１０２、Ｚ１０２：目標送信レート選択部
Ｌ１０５、Ｍ１０４、Ｎ１０４、Ｗ１０４、Ｘ１０５、Ｙ１０４、Ｚ１０４：送信レート制御部
Ｌ１０７、Ｍ１０６、Ｎ１０６、Ｗ１０６、Ｘ１０７、Ｙ１０６、Ｚ１０６：パケット受信部
Ｌ１０６、Ｍ１０５、Ｎ１０５、Ｗ１０５、Ｘ１０６、Ｙ１０５、Ｚ１０５：パケット送信部
Ｍ１１：試験パケット送受信部
Ｍ１２、Ｎ１２、Ｗ１２、Ｙ１２、Ｚ１２：経路状態計測部
Ｎ１１、Ｗ１１、Ｙ１１、Ｚ１１：測定パケット送受信部
Ｘ１１、Ｙ１４、Ｚ１４：経路状態・端末情報通知取得部
Ｘ１２、Ｙ１３、Ｚ１３：経路状態・端末情報記憶部
Ｋ１１：経路状態推定依頼部
Ｋ１２：通信状態管理部
【図１】
2005198111.tif 000003
【図２】
2005198111.tif 000004
【図３】
2005198111.tif 000005
【図４】
2005198111.tif 000006
【図５】
2005198111.tif 000007
【図６】
2005198111.tif 000008
【図７】
2005198111.tif 000009
【図８】
2005198111.tif 000010
【図９】
2005198111.tif 000011
【図１０】
2005198111.tif 000012
【図１１】
2005198111.tif 000013
【図１２】
2005198111.tif 000014
【図１３】
2005198111.tif 000015
【図１４】
2005198111.tif 000016
【図１５】
2005198111.tif 000017
【図１６】
2005198111.tif 000018
【図１７】
2005198111.tif 000019
【図１８】
2005198111.tif 000020
【図１９】
2005198111.tif 000021
【図２０】
2005198111.tif 000022
【図２１】
2005198111.tif 000023