(57)【特許請求の範囲】
【請求項１】
データを送信するデータ送信端末、前記データを受信するデータ受信端末、および前記データ送信端末と前記データ受信端末との間で前記データの転送を行うネットワーク、から構成される通信システムであって、
前記データ受信端末は、データ受信量、前回の通知メッセージを送信してからその応答である応答メッセージを受信するまでの経過時間、および今回の通知メッセージの送信時刻の情報を含む通知メッセージを定期的に前記データ送信端末へ送信し、
前記データ送信端末は、前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報に基づいて、自端末が送信したデータをネットワークがロスなく転送できていたかどうかを判定し、判定の結果に基づいてつぎに通知メッセージを受信するまでの間の最大送信レート推定値を決定し、決定した最大送信レート推定値に従って前記データ受信端末に送信するデータの送信レートを制御する、また、前記通知メッセージに対する応答メッセージを前記データ受信端末へ送信する、
ことを特徴とする通信システム。
【請求項２】
前記データ送信端末は、
前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報を用いて、前記データ受信端末が前回の通知メッセージを送信する時点において前記ネットワーク内のバッファに滞留している滞留データ量推定値、および前記データ受信端末が前回の送信メッセージを送信してから応答メッセージを受信するまでの期間に受信した受信データ量推定値を算出し、算出したこれらの値を用いて判定を行う、
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記データ送信端末は、
前回および今回受信した通知メッセージに含まれるデータ受信量の差分と、前記滞留データ量推定値、前記受信データ量推定値、および前記データ受信端末が応答メッセージを受信してから今回の通知メッセージを送信するまでの間に受信したデータ量の合計値と、を比較した結果、前記差分の方が小さいときは、自端末が送信したデータをネットワークがロスなく転送できていないと判定し、その他のときは、自端末が送信したデータをネットワークがロスなく転送できていると判定する、
ことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記データ送信端末は、
前記判定の結果、自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、現在の最大送信レート推定値に前記データ送信端末が管理する増加値を加算した値をつぎの最大送信レート推定値とし、自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、これまでに受信した通知メッセージの情報に基づいて算出したネットワークの最大送信レートをつぎの最大送信レート推定値とする、
ことを特徴とする請求項１、２または３に記載の通信システム。
【請求項５】
前記データ送信端末は、
連続して自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、前回加算した増加値よりも大きな値の増加値を用いて加算を行い、
その後、自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、前記増加値を初期値の値に戻す、
ことを特徴とする請求項４に記載の通信システム。
【請求項６】
データ受信端末およびデータの転送を行うネットワークとともに通信システムを構成するデータ送信端末であって、
前記データ受信端末から、データ受信量、前回の通知メッセージを送信してからその応答である応答メッセージを受信するまでの経過時間、および今回の通知メッセージの送信時刻の情報を含む通知メッセージを定期的に受信する場合に、
前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報に基づいて、自端末が送信したデータをネットワークがロスなく転送できていたかどうかを判定し、判定の結果に基づいてつぎに通知メッセージを受信するまでの間の最大送信レート推定値を決定し、決定した最大送信レート推定値に従って前記データ受信端末に送信するデータの送信レートを制御する、また、前記通知メッセージに対する応答メッセージを前記データ受信端末へ送信する、
ことを特徴とするデータ送信端末。
【請求項７】
前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報を用いて、前記データ受信端末が前回の通知メッセージを送信する時点において前記ネットワーク内のバッファに滞留している滞留データ量推定値、および前記データ受信端末が前回の送信メッセージを送信してから応答メッセージを受信するまでの期間に受信した受信データ量推定値を算出し、算出したこれらの値を用いて判定を行う、
ことを特徴とする請求項６に記載のデータ送信端末。
【請求項８】
前回および今回受信した通知メッセージに含まれるデータ受信量の差分と、前記滞留データ量推定値、前記受信データ量推定値、および前記データ受信端末が応答メッセージを受信してから今回の通知メッセージを送信するまでの間に受信したデータ量の合計値と、を比較した結果、前記差分の方が小さいときは、自端末が送信したデータをネットワークがロスなく転送できていないと判定し、その他のときは、自端末が送信したデータをネットワークがロスなく転送できていると判定する、
ことを特徴とする請求項７に記載のデータ送信端末。
【請求項９】
前記判定の結果、自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、現在の最大送信レート推定値に前記データ送信端末が管理する増加値を加算した値をつぎの最大送信レート推定値とし、自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、これまでに受信した通知メッセージの情報に基づいて算出したネットワークの最大送信レートをつぎの最大送信レート推定値とする、
ことを特徴とする請求項６、７または８に記載のデータ送信端末。
【請求項１０】
連続して自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、前回加算した増加値よりも大きな値の増加値を用いて加算を行い、
その後、自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、前記増加値を初期値の値に戻す、
ことを特徴とする請求項９に記載のデータ送信端末。
【請求項１１】
データ送信端末およびデータの転送を行うネットワークとともに通信システムを構成するデータ受信端末であって、
データ受信量、前回の通知メッセージを送信してからその応答である応答メッセージを受信するまでの経過時間、および今回の通知メッセージの送信時刻の情報を含む通知メッセージを定期的に前記データ送信端末へ送信する、
ことを特徴とするデータ受信端末。
【請求項１２】
データ送信端末がネットワークを経由してデータ受信端末へデータを送信するときの最大送信レート推定値を制御する送信レート制御方法であって、
前記データ受信端末が、データ受信量、前回の通知メッセージを送信してからその応答である応答メッセージを受信するまでの経過時間、および今回の通知メッセージの送信時刻の情報を含む通知メッセージを定期的に前記データ送信端末へ送信する通知メッセージ送信ステップと、
前記データ送信端末が、前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報に基づいて、自端末が送信したデータをネットワークがロスなく転送できていたかどうかを判定するネットワーク判定ステップと、
前記データ送信端末が、前記ネットワーク判定ステップにおける判定の結果に基づいてつぎに通知メッセージを受信するまでの間の最大送信レート推定値を決定する最大送信レート推定値決定ステップと、
前記データ送信端末が、前記最大送信レート推定値決定ステップで決定した最大送信レート推定値に従って前記データ受信端末に送信するデータの送信レートを制御する最大送信レート制御ステップと、
前記データ送信端末が、前記通知メッセージに対する応答メッセージを送信する応答メッセージ送信ステップと、
を含むことを特徴とする送信レート制御方法。
【請求項１３】
前記ネットワーク判定ステップでは、
前記データ送信端末が、前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報を用いて、前回の前記データ受信端末が通知メッセージを送信する時点において前記ネットワーク内のバッファに滞留している滞留データ量推定値、および前記データ受信端末が前回の送信メッセージを送信してから応答メッセージを受信するまでの期間に受信した受信データ量推定値を算出し、算出したこれらの値を用いて判定を行う、
ことを特徴とする請求項１２に記載の送信レート制御方法。
【請求項１４】
前記ネットワーク判定ステップでは、
前記データ送信端末が、前回および今回受信した通知メッセージに含まれるデータ受信量の差分と、前記滞留データ量推定値、前記受信データ量推定値、および前記データ受信端末が応答メッセージを受信してから今回の通知メッセージを送信するまでの間に受信したデータ量の合計値と、を比較した結果、前記差分の方が小さいときは、自端末が送信したデータをネットワークがロスなく転送できていないと判定し、その他のときは、自端末が送信したデータをネットワークがロスなく転送できていると判定する、
ことを特徴とする請求項１３に記載の送信レート制御方法。
【請求項１５】
前記最大送信レート推定値決定ステップでは、
前記データ送信端末が、前記ネットワーク判定ステップにおける判定の結果、自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、現在の最大送信レート推定値に前記データ送信端末が管理する増加値を加算した値をつぎの最大送信レート推定値とし、自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、これまでに受信した通知メッセージの情報に基づいて算出したネットワークの最大送信レートをつぎの最大送信レート推定値とする、
ことを特徴とする請求項１２、１３または１４に記載の送信レート制御方法。
【請求項１６】
前記最大送信レート推定値決定ステップでは、
前記ネットワーク判定ステップにおいて連続して自端末が送信したデータをネットワークがロスなく転送できていると判定した場合、前記データ送信端末が、前回加算した増加値よりも大きな値の増加値を用いて加算を行い、
その後、前記ネットワーク判定ステップにおいて自端末が送信したデータをネットワークがロスなく転送できていないと判定した場合、前記データ送信端末が、前記増加値を初期値の値に戻す、
ことを特徴とする請求項１５に記載の送信レート制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信端末からデータ受信端末へデータを送信するときの送信レートを制御する通信システムに関する。
【背景技術】
【０００２】
従来、車や列車等の移動体が携帯電話網やＷｉＭＡＸといった公衆サービスの無線アクセス回線上でデータ通信を行う場合、移動による無線環境変化や同じ基地局に接続する他ユーザの通信量変化により、無線アクセス回線で利用可能な送信レートは、上り（移動体から基地局方向）／下り（基地局から移動体方向）のいずれの方向も動的に変化する。
【０００３】
移動体通信において無線アクセス回線の送信レートが低い時にＶｏＩＰの電話音声データ伝送等の高優先度の通信を優先的に行うためには、無線アクセス回線で利用可能な送信レートを推定し、推定した送信レート以下で送信するように送信レートを制御し、複数通信に対する優先制御を行う必要がある。送信レートの推定が必要な理由は、無線アクセス回線を構成する基地局や無線移動局が内部で管理する送信レートの情報に装置外からアクセスできず、移動体上の送信端末は現在の送信レートを知ることができないためである。
【０００４】
ネットワークが有線回線のみから構成される場合も、公衆サービスのネットワークではネットワーク構成が一般ユーザには公開されていないこと、他ユーザの通信量変化により利用可能な送信レートが変化することから、同様に送信レートの推定が必要となる。
【０００５】
送信レート推定に適用可能な技術として、例えば、下記非特許文献１では、ｐａｃｋｅｔ  ｐａｉｒやｐａｃｋｅｔ  ｔｒａｉｎと呼ばれるプローブパケットを用いて送信レートを推定する技術が開示されている。プローブパケット方式では、正確な送信データレート推定を行うために多数のプローブパケット送信が必要となる（１００Ｍｂｐｓ程度の送信レート推定の場合、１回の推定のために１３０ＫＢから２．５ＭＢのプローブパケット送信が必要）。送信データレートが絶えず変化するネットワークの場合、１秒毎等頻繁に送信データレート推定を行う必要がある。
【０００６】
また、下記非特許文献２では、ＩＰネットワークのレイヤ４プロトコルとして使用されるＴＣＰ（Transmission  Control  Protocol）の輻輳制御技術が複数種類開示されている。ＴＣＰの輻輳制御処理は、輻輳が発生したか否か、即ち、送信端末が現在使用している送信レートがネットワークの最大送信レートを超過したか否かの判定と、判定結果に基づく次に使用する送信レートの決定の２つの要素から構成される。ＴＣＰの輻輳判定処理では、高信頼通信機能実現の目的で使われるパケットに付与するシーケンス番号と、受信済みシーケンス番号を示す送達確認メッセージから推測されるパケットロス発生、ラウンドトリップ時間（ＲＴＴ）増加等の情報を用いて輻輳発生を判定する。そして、輻輳発生時に送信側が送信可能なデータ量（輻輳制御ウィンドウ）を減らし、輻輳無しで通信している間は輻輳制御ウィンドウを増やすという形で、次の送信レート決定を行う。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J.Strauss他  ”A  Measurement  Study  of  Available  Bandwidth  Estimation  Tools”  in  proceedings  of  IMC  '03
【非特許文献２】A.Afanasyev他  ”Host-to-Host  Congestion  Control  for  TCP”  in  IEEE  Communication  Surveys  and  Tutorials  VOL.12  No.3
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来の技術（非特許文献１）によれば、頻繁に送信データレート推定を行う場合、プローブパケット送信に使用するネットワーク帯域がネットワーク自体の送信データレート（例えば、ＷｉＭＡＸの場合で数百ｋｂｐｓ〜２０Ｍｂｐｓ程度）に対して無視できない。そのため、本来の送信対象のデータ送信の妨げとなる、という問題があった。
【０００９】
また、上記従来の技術（非特許文献２）によれば、ＴＣＰの輻輳制御技術を適用する場合、送信パケットにシーケンス番号を含むヘッダを付与する必要がある。また、送信パケットに対する送達確認メッセージを送信パケットに対して一定以上（例えば、２パケットに１回）の割合で送信する必要がある。そのため、本来のデータ送信に利用可能な帯域が減少する、という問題があった。
【００１０】
本発明は、上記に鑑みてなされたものであって、送信レートを推定する際に使用するネットワークの帯域を低減可能な通信システムを得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、データを送信するデータ送信端末、前記データを受信するデータ受信端末、および前記データ送信端末と前記データ受信端末との間で前記データの転送を行うネットワーク、から構成される通信システムであって、前記データ受信端末は、データ受信量、前回の通知メッセージを送信してからその応答である応答メッセージを受信するまでの経過時間、および今回の通知メッセージの送信時刻の情報を含む通知メッセージを定期的に前記データ送信端末へ送信し、前記データ送信端末は、前記通知メッセージの情報および前回の最大送信レート推定値の決定処理までに取得した情報に基づいて、自端末が送信したデータをネットワークがロスなく転送できていたかどうかを判定し、判定の結果に基づいてつぎに通知メッセージを受信するまでの間の最大送信レート推定値を決定し、決定した最大送信レート推定値に従って前記データ受信端末に送信するデータの送信レートを制御する、また、前記通知メッセージに対する応答メッセージを前記データ受信端末へ送信する、ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、送信レートを推定する際に使用するネットワークの帯域を低減することができる、という効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、データ送信端末の構成例を示す図である。
【図２】図２は、データ受信端末の構成例を示す図である。
【図３】図３は、各端末間で送受信されるメッセージおよびデータの送受信状態を示すシーケンス図である。
【図４】図４は、送信レートを制御する処理を示すフローチャートである。
【図５】図５は、ネットワークがロスなく転送できていたかどうかを判定する処理を示すフローチャートである。
【図６】図６は、最大送信レート推定値を決定する処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる通信システムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
本実施の形態の送信レート制御方法を実現する通信システムは、データを送信するデータ送信端末と、データ送信端末から送信されたデータを受信するデータ受信端末と、データ送信端末とデータ受信端末との間でデータ転送を行うネットワークと、から構成される。まず、それぞれの構成について説明する。
【００１６】
図１は、本実施の形態のデータ送信端末１０の構成例を示す図である。データ送信端末１０は、データ送信アプリケーション部１１と、シェーパ部１２と、ネットワークインタフェース部１３と、通知メッセージ受信処理部１４と、最大送信レート推定値管理部１５と、時計部１６と、を備える。
【００１７】
データ送信アプリケーション部１１は、一般的なデータ送信を行うアプリケーションである。従来からある構成と同等の機能を備えるものであり、後述する送信レート制御機能を利用する。
【００１８】
シェーパ部１２は、データ送信アプリケーション部１１が送信する通信データと、通知メッセージ受信処理部１４が送信する応答メッセージを合わせたトラヒックに対して、最大送信レート推定値でのシェーピングを行い、ネットワークインタフェース部１３に対してネットワークへの送信を要求する。
【００１９】
ネットワークインタフェース部１３は、ネットワークと自端末との間の通信データの送受信に関わる通信プロトコル処理を行う。また、送信データ量の累積値を管理し、最大送信レート推定値管理部１５の読み出し要求に対して送信データ量の累積値を返す。
【００２０】
通知メッセージ受信処理部１４は、データ受信端末からの通知メッセージを受信し、応答メッセージを返すと共に、通知メッセージに含まれる情報を最大送信レート推定値管理部１５へ通知する。
【００２１】
最大送信レート推定値管理部１５は、通知メッセージの情報と、ネットワークインタフェース部１３から得られる送信データ量の情報と、時計部１６から得られる自端末内ローカル時刻情報と、に基づいて最大送信レート推定値の更新を行う。そして、最大送信レート推定値をシェーパ部１２に設定する。
【００２２】
時計部１６は、自端末内部のローカル時刻を計測する。後述するデータ受信端末の時計部との絶対時刻の同期は不要だが、経過時間の測定精度は一定程度あるものとする。
【００２３】
図２は、本実施の形態のデータ受信端末２０の構成例を示す図である。データ受信端末２０は、ネットワークインタフェース部２１と、データ受信アプリケーション部２２と、通知メッセージ送信処理部２３と、時計部２４と、を備える。
【００２４】
ネットワークインタフェース部２１は、ネットワークと自端末との間の通信データの送受信に関わる通信プロトコル処理を行う。また、受信データ量の累積値を管理し、通知メッセージ送信処理部２３の読み出し要求に対して受信データ量の累積値を返す。
【００２５】
データ受信アプリケーション部２２は、一般的なデータ受信を行うアプリケーションである。従来からある構成と同等の機能を備えるものであり、後述する送信レート制御機能を利用する。
【００２６】
通知メッセージ送信処理部２３は、ネットワークインタフェース部２１から受信データ量の累積値を読み出し、時計部２４から自端末内部のローカル時刻を読み出し、通知メッセージを定期的にデータ送信端末１０へ送信する。また、応答メッセージを受信し通知メッセージ送信からの経過時間を時計部２４から読み出すローカル時刻に基づき記録し、データ送信端末１０が送信するデータの受信処理を行う。
【００２７】
時計部２４は、自端末内部のローカル時刻を計測する。データ送信端末１０の時計部１６との絶対時刻の同期は不要だが、経過時間の測定精度は一定程度あるものとする。
【００２８】
ネットワークは、データ送信端末１０とデータ受信端末２０との間でデータやメッセージの転送を行う。ネットワークは、データ送信端末１０から送信されたデータを滞留するバッファを内部に備える。
【００２９】
つづいて、本実施の形態における送信レート制御方法による送信レートを制御する方法について説明する。図３は、各端末間で送受信されるメッセージおよびデータの送受信状態を示すシーケンス図である。また、図４は、送信レートを制御する処理を示すフローチャートである。一例として、データ受信端末２０から通知メッセージＭＳiを送信する処理およびその前後の処理を中心に説明するが、他の通知メッセージＭＳi-1や通知メッセージＭＳi+1を送信する場合にも適用可能である。なお、通知メッセージＭＳiはｉ番目の通知メッセージを示すものとする。
【００３０】
まず、データ受信端末２０では、通知メッセージ送信処理部２３が、ネットワークインタフェース部２１から受信データ量の累積値を読み出し、また、時計部２４から時刻情報を取得し、ネットワークインタフェース部２１を介して、データ送信端末１０に対して定期的に通知メッセージＭＳiを送信する（ステップＳ１）。通知メッセージＭＳiには、（１）通知メッセージＭＳiの送信時刻ｔiにおけるデータ受信量、（２）時計部２４で計測した前回通知メッセージＭＳi-1を送信してデータ送信端末１０からその応答である応答メッセージＲＳi-1を受信するまでの経過時間（ｄi-1,1＋ｄi-1,2）、（３）時計部２４で計測した今回の通知メッセージの送信時刻ｔi、の情報を含む。
【００３１】
つぎに、データ送信端末１０では、通知メッセージ受信処理部１４が、ネットワークインタフェース部１３を介してデータ受信端末２０から受信した通知メッセージＭＳiに含まれる情報を最大送信レート推定値管理部１５へ転送する。最大送信レート推定値管理部１５は、通知メッセージＭＳiに含まれる情報、前回の最大送信レート推定値Ｒi-1の更新処理までに取得した情報、ネットワークインタフェース部１３から得られる送信データ量の情報、および時計部１６からの時刻情報を用いて、自端末が送信したデータをネットワークがロスなく転送できていたかどうかを判定する（ステップＳ２）。
【００３２】
ここで、データ受信端末２０が通知メッセージＭＳiで通知する受信データ量は、最大送信レート推定値Ｒi-1、Ｒi-2だけでなく、通知メッセージＭＳi-1送信から応答メッセージＲＳi-1受信までの経過時間（ｄi-1,1＋ｄi-1,2）の影響も受ける。したがって、データ送信端末１０では、最大送信レート推定値管理部１５が、各最大送信レート推定値で送信されたデータ等の合計値と、前回の通知メッセージＭＳi-1に示される受信データ量と今回の通知メッセージＭＳiに示される受信データ量の差分（＝２つの通知メッセージを送信する間にデータ受信端末２０が受信した受信データ量）とを、通知メッセージＭＳi-1送信から応答メッセージＲＳi-1受信までの経過時間（ｄi-1,1＋ｄi-1,2）の情報を考慮した形で比較することで、データ送信端末１０が送信したデータをネットワークがロスなく転送できたか否かを判定することが可能となる。
【００３３】
データ送信端末１０では、最大送信レート推定値管理部１５が、送信したデータをネットワークがロスなく転送できたと判定した場合は現在（更新前）の最大送信レート推定値Ｒi-1でネットワークがデータを転送できていたと判断し、その他の場合は現在（更新前）の最大送信レート推定値Ｒi-1でネットワークがデータを転送できていないと判断することができる。
【００３４】
データ送信端末１０では、最大送信レート推定値管理部１５が、前記判定の結果に基づいて、データ受信端末２０からつぎの通知メッセージＭＳi+1を受信するまで用いるつぎの最大送信レート推定値Ｒiを決定する（ステップＳ３）。
【００３５】
そして、データ送信端末１０では、最大送信レート推定値管理部１５が、時刻Ｔiのタイミングで最大送信レート推定値をＲi-1からＲiへ更新し、データ受信端末２０からつぎの通知メッセージＭＳi+1を受信するまで、データ送信アプリケーション部１１からのデータをシェーパ部１２およびネットワークインタフェース部１３を介して、最大送信レート推定値Ｒiに従ってデータを送信する制御を行う（ステップＳ４）。具体的には、最大送信レート推定値Ｒiを超えないように送信レートを制御する。
【００３６】
また、データ送信端末１０では、通知メッセージ受信処理部１４が、シェーパ部１２およびネットワークインタフェース部１３を介してデータ受信端末２０へ通知メッセージＭＳiに対する応答メッセージＲＳiを送信する（ステップＳ５）。
【００３７】
データ受信端末２０では、応答メッセージＲＳiを受信後、データ受信アプリケーション部２２が、ネットワークインタフェース部２１を介して最大送信レート推定値Ｒiで送信されたデータを受信する（ステップＳ６）。
【００３８】
このように、データ受信端末２０が通知メッセージを定期的（例えば、１秒周期）に１度送信することで、大量のプローブパケット等を送信することなく、また送信データへのシーケンス番号付与や送達確認等を行うことなく、データ送信端末１０では、最大送信レートの推定値を定期的に更新することができる。
【００３９】
つづいて、データ送信端末１０の最大送信レート推定値管理部１５において、ネットワークがロスなく転送できていたかどうかを判定する処理（ステップＳ２）について詳細に説明する。図５は、ネットワークがロスなく転送できていたかどうかを判定する処理を示すフローチャートである。
【００４０】
まず、データ受信端末２０が、連続する通知メッセージＭＳi-1、ＭＳiを送信する間に受信する受信データ量について、図３を用いて説明する。データ受信端末２０が連続する通知メッセージＭＳi-1、ＭＳiの間に受信するデータは、（ｘ）通知メッセージＭＳi-1の送信時点ｔi-1においてネットワーク内部のバッファに滞留しているデータ（図３に示す滞留データ量推定値ｂ０i-1）、（ｙ）通知メッセージＭＳi-1に対する応答メッセージＲＳi-1を受信するまでの間にデータ送信端末１０が前回の最大送信レート推定値Ｒi-2で送信したデータの一部（図３に示す受信データ量推定値ｂ１i-1）、（ｚ）通知メッセージＭＳi送信時点ｔiまでの間にデータ送信端末１０が現在（更新前）の最大送信レート推定値Ｒi-1で送信したデータの一部、として表すことができる。（ｘ）〜（ｚ）のデータの中で、ネットワークでロスなくデータ受信端末２０へ転送されたものが受信データ量に含まれる。
【００４１】
ここで、つぎの周期（通知メッセージＭＳi、ＭＳi+1を用いたとき）の（ｙ）に相当する受信データ量推定値ｂ１iと（ｚ）の値の間には、「受信データ量推定値ｂ１i＝最大送信レート推定値Ｒi-1でデータ送信端末１０が送信したデータ量−（ｚ）の値」の関係が成り立つ。通知メッセージＭＳi-1、ＭＳiを用いてつぎの周期の（ｙ）に相当する受信データ量推定値ｂ１iを求めることができるということは、前回の周期で通知メッセージＭＳi-2、ＭＳi-1を用いて今回の周期の（ｙ）である受信データ量推定値ｂ１i-1を求めることができることを意味する。また、データ送信端末１０による送信開始時の受信データ量推定値の初期値（＝受信データ量推定値ｂ１0）は、今までデータ送信が行われていないので０と置くことが妥当である。すなわち、１回目の通知メッセージＭＳ1を受信したときも、必要な受信データ量推定値ｂ１0が既知である。以上のことから、データ送信端末１０は、通知メッセージＭＳiを受信した時点で、受信データ量推定値ｂ１i-1が既知であるとみなすことができる。
【００４２】
また、最大送信レート推定値Ｒi-1でデータ送信端末１０が送信したデータ量は、データ送信端末１０が自ら測定することが可能である。（ｚ）の値は、データ送信端末１０が最大送信レート推定値をＲi-1に更新後、データ受信端末２０が応答メッセージＲＳi-1を受信してから通知メッセージＭＳiを送信するまでの経過時間と同じ長さの時間の間に送信したデータ量で近似推定することが可能である。そのため、データ送信端末１０では、最大送信レート推定値管理部１５が、データ受信端末２０において応答メッセージＲＳi-1を受信してから通知メッセージＭＳiを送信するまでの経過時間を、通知メッセージＭＳi-1で通知される送信時刻ｔi-1と通知メッセージＭＳiで通知される送信時刻ｔiおよび経過時間（ｄi-1,1＋ｄi-1,2）とを用いて、「（ｔi−ｔi-1）−（ｄi-1,1＋ｄi-1,2）」として算出する。これにより、データ送信端末１０では、最大送信レート推定値管理部１５が、通知メッセージＭＳi受信時点で、最大送信レート推定値をＲi-1および算出した経過時間を用いて（ｚ）の値を算出する（ステップＳ１１）。
【００４３】
また、データ送信端末１０では、最大送信レート推定値管理部１５が、つぎの周期（通知メッセージＭＳi、ＭＳi+1を用いたとき）のために、最大送信レート推定値Ｒi-1でデータ送信端末１０が送信したデータ量と（ｚ）の値とを用いて、受信データ量推定値ｂ１iを算出する（ステップＳ１２）。
【００４４】
ここで、データ送信端末１０の最大送信レート推定値管理部１５は、通知メッセージＭＳi受信時、受信データ量推定値ｂ１i-1が既知であることから、滞留データ量推定値ｂ０i-1が既知であれば、データ受信端末２０が通知メッセージＭＳi-1送信から通知メッセージＭＳi送信までの間にネットワークでのロスがなければ受信するデータ量を「ｂ０i-1＋ｂ１i-1＋（ｚ）の値」として算出することができる。後述するように、通知メッセージＭＳi受信時、滞留データ量推定値ｂ０i-1も既知であるので、最大送信レート推定値管理部１５は、これらの値を用いて「データ受信端末２０が通知メッセージＭＳi-1送信から通知メッセージＭＳi送信までの間にネットワークでのロスがなければ受信するデータ量」を算出する（ステップＳ１３）。
【００４５】
データ送信端末１０では、最大送信レート推定値管理部１５が、上記「データ受信端末２０が通知メッセージＭＳi-1送信から通知メッセージＭＳi送信までの間にネットワークでのロスがなければ受信するデータ量」と、通知メッセージＭＳi-1、ＭＳiに示される受信データ量の累積値の差分から得られるこの期間における受信データ量とを比較し、ネットワークが最大送信レート推定値で転送できているかどうかを判定する（ステップＳ１４）。最大送信レート推定値管理部１５は、比較した結果、前者が後者より大きい場合はネットワークが最大送信レート推定値で転送できていないと判定し、その他の場合はネットワークが最大送信レート推定値で転送できていると判定する。
【００４６】
また、データ送信端末１０では、最大送信レート推定値管理部１５が、上記判定の結果に基づいて、つぎの周期（通知メッセージＭＳi、ＭＳi+1を用いたとき）のために、ネットワーク内部のバッファに滞留している滞留データ量推定値ｂ０iを算出する（ステップＳ１５）。最大送信レート推定値管理部１５は、ネットワークが最大送信レート推定値で転送できていると判断した場合、滞留データは無いとみなし滞留データ量推定値ｂ０i＝０とし、ネットワークが最大送信レート推定値で転送できていないと判断した場合、上記「データ受信端末２０が通知メッセージＭＳi-1送信から通知メッセージＭＳi送信までの間にネットワークでのロスがなければ受信するデータ量」からこの期間におけるデータ受信端末２０の受信データ量を引いた値と、ネットワーク内部のバッファ量推定値（バッファに滞留できるデータの最大値）の小さい方を滞留データ量推定値ｂ０iとする。
【００４７】
受信データ量推定値ｂ１i-1のときと同様、通知メッセージＭＳi-1、ＭＳiを用いてつぎの周期の（ｘ）に相当する受信データ量推定値ｂ０iを求めることができるということは、前回の周期で通知メッセージＭＳi-2、ＭＳi-1を用いて滞留データ量推定値ｂ０i-1を求めることができることを意味する。また、データ送信端末１０による送信開始時の滞留データ量推定値の初期値（＝滞留データ量推定値ｂ０0）は、今までデータ送信が行われていないので０と置くことが妥当である。すなわち、１回目の通知メッセージＭＳ1を受信したときも、必要な滞留データ量推定値ｂ０0が既知である。以上のことから、データ送信端末１０は、通知メッセージＭＳiを受信した時点で、滞留データ量推定値ｂ０i-1が既知であるとみなすことができる。
【００４８】
このように、データ送信端末１０では、通知メッセージＭＳi受信時点において、滞留データ量推定値ｂ０i-1、受信データ量推定値ｂ１i-1が既知であることから、（ｚ）の値を算出し、「データ受信端末２０が通知メッセージＭＳi-1送信から通知メッセージＭＳi送信までの間にネットワークでのロスがなければ受信するデータ量」と、通知メッセージＭＳ1、ＭＳ2に示される受信データ量の累積値の差分から得られるこの期間における受信データ量とを比較し、ネットワークが最大送信レート推定値で転送できているかどうかを判定することができる。
【００４９】
以上説明したように、本実施の形態では、データ送信端末１０は、通知メッセージＭＳi受信時に、ネットワーク内部のバッファに滞留するデータ量である滞留データ量推定値ｂ０i-1と、データ受信端末２０が通知メッセージＭＳi-1を送信してから応答メッセージＲＳi-1を受信するまでの間にデータ送信端末１０が送信した受信データ量推定値ｂ１i-1を更新管理し、これらの値を用いて現在の最大送信レート推定値Ｒi-1でデータ送信がロスなく行われているかどうかを判定することとした。これにより、プローブパケットやシーケンス番号付与／送達確認メッセージを用いることなくネットワークの送信レートを推定できることから、送信レートの制御に使用する帯域を低減し、ネットワークの帯域を本来の送信対象のデータ送信に使用することが可能となる、という効果が得られる。
【００５０】
実施の形態２．
本実施の形態では、実施の形態１における最大送信レート推定値Ｒiを決定する処理（ステップＳ３）において、具体的にどのような推定値に更新するかについて詳細に説明する。実施の形態１と異なる部分について説明する。
【００５１】
図６は、最大送信レート推定値Ｒiを決定する処理を示すフローチャートである。データ送信端末１０の最大送信レート推定値管理部１５は、現在の最大送信レート推定値Ｒi-1でネットワークがロスなくデータを転送できていると判定した場合（ステップＳ２１：Ｙｅｓ）、ネットワークの最大送信レートは現在の最大送信レート推定値Ｒi-1より大きい可能性があるとして、つぎの最大送信レート推定値Ｒiを現在の最大送信レート推定値Ｒi-1より増加させる（ステップＳ２２）。これにより、最大送信レート推定値管理部１５は、最大送信レート推定値Ｒiをネットワークの最大送信レートにより近い値とすることができる。
【００５２】
また、最大送信レート推定値管理部１５は、現在の最大送信レート推定値Ｒi-1でネットワークがデータを転送できていないと判定した場合（ステップＳ２１：Ｎｏ）、つぎの最大送信レート推定値Ｒiをネットワークの最大送信レートに合わせることとする（ステップＳ２３）。このときに使用するネットワークの最大送信レートの推定値は、例えば、受信した通知メッセージＭＳiに示される受信データ累積値と送信時刻ｔi、１つ前に受信した通知メッセージＭＳi-1に示される受信データ累積値と送信時刻ｔi-1とを用いて平均受信レートを求めることができる。なお、ネットワークの最大送信レートの推定値を求める方法はこれに限定するものではなく、他の方法を用いてもよい。
【００５３】
以上説明したように、本実施の形態では、データ送信端末１０において、現在の最大送信レート推定値Ｒi-1でネットワークがデータを転送できていたと判定した場合は、つぎの最大送信レート推定値Ｒiを現在よりも増加し、現在の最大送信レート推定値Ｒi-1でネットワークがデータを転送できていないと判定した場合は、つぎの最大送信レート推定値Ｒiをネットワークの最大送信レートに合わせることとした。これにより、ネットワークの最大送信レートの増加減少に対して、最大送信レート推定値を追従する形で増加減少させることが可能となる、効果が得られる。
【００５４】
実施の形態３．
実施の形態２において、つぎの最大送信レート推定値を現在の最大送信レート推定値より増加させるときの増加値について詳細に説明する。実施の形態２と異なる部分について説明する。
【００５５】
最大送信レート推定値を更新する場合において、つぎの２つのことが考えられる。
【００５６】
（ａ）ネットワークの最大送信レートが現在の最大送信レート推定値よりもかなり大きい場合、増加値が小さいと、最大送信レート推定値がネットワークの最大送信レートに至るまでに時間がかかる。そのため、短時間で最大送信レート推定値をネットワークの最大送信レートに近づける方法が必要となる。
【００５７】
（ｂ）ネットワークの最大送信レートが安定しており、最大送信レート推定値がネットワークの最大送信レートに一致する場合でも、最大送信レート推定値を増加させる処理をとる。そのため、最大送信レート推定値を増加すると、つぎの判定時に現在の最大送信レート推定値でネットワークがデータを転送できていないと判定し、最大送信レート推定値をネットワークの最大送信レートに合わせる、というサイクルを繰り返し実行することとなる。最大送信レート推定値を増加させた時に生じるデータロス量を抑制するため、このときの最大送信レート推定値の増加分を小さくすることが必要である。
【００５８】
上記（ａ）に対して、データ送信端末１０では、最大送信レート推定値管理部１５は、通知メッセージ受信時に連続して現在の最大送信レート推定値でネットワークがデータを転送できていたと判定する場合、最大送信レート推定値の増加値を指数関数的に大きくする。ネットワークの最大送信レートと現在の最大送信レート推定値の差が大きいほど、連続して現在の最大送信レート推定値でネットワークがデータを転送できていると判定する回数が増える。このとき、最初のネットワークの最大送信レートと現在の最大送信レート推定値の差分値の対数オーダーの回数の最大送信レート推定値更新で、最大送信レート推定値をネットワークの最大送信レート以上の値にすることが可能となる。なお、増加値を指数関数的に大きくする方法としては、例えば、現在の増加値に対してあらかじめ定める定数（１以上の値）を乗算する方法があるが、これに限定するものではなく、他の方法を用いてもよい。
【００５９】
また、上記（ｂ）に対して、データ送信端末１０では、最大送信レート推定値管理部１５は、現在の最大送信レート推定値でネットワークがデータを転送できていないと判定した場合、つぎに現在の最大送信レート推定値でネットワークがデータを転送できていたと判定したときのために、最大送信レート推定値の増加値を初期値で指定する小さな値に初期化する。これにより、上記（ｂ）のケースの様に現在の最大送信レート推定値でネットワークがデータを転送できている状態と現在の最大送信レート推定値でネットワークがデータを転送できていない状態を繰り返す場合において、不必要な最大送信レート推定値の増加によるパケットロス発生量を抑制する。
【００６０】
以上説明したように、本実施の形態では、ネットワークの最大送信レートとの関係に応じて、最大送信レート推定値を増加させるときに増加値の大きさを適宜変更することとした。これにより、ネットワークの最大送信レート増加に対する追従性向上と、ネットワークの最大送信レート安定時の最大送信レート推定値の安定性、という２つを可能とする効果が得られる。
【産業上の利用可能性】
【００６１】
以上のように、本発明にかかる通信システムは、データの送信に有用であり、特に、送信レートを変更する場合に適している。
【符号の説明】
【００６２】
１０  データ送信端末
１１  データ送信アプリケーション部
１２  シェーパ部
１３  ネットワークインタフェース部
１４  通知メッセージ受信処理部
１５  最大送信レート推定値管理部
１６  時計部
２０  データ受信端末
２１  ネットワークインタフェース部
２２  データ受信アプリケーション部
２３  通知メッセージ送信処理部
２４  時計部
【図１】
0005787707.tif 000002
【図２】
0005787707.tif 000003
【図３】
0005787707.tif 000004
【図４】
0005787707.tif 000005
【図５】
0005787707.tif 000006
【図６】
0005787707.tif 000007