【文献】
佐々木 貴之 他,適応型帯域推定とSACKを組み合わせた無線ネットワーク向けTCP,電子情報通信学会論文誌,2004年10月 1日,第J87-B巻,第10号,p.1657〜1667,「2.3」,「4.1」,「4.2」
(58)【調査した分野】(Int.Cl.,DB名)
前記サーバから配信されたパケット集合が受信された場合に、受信されたパケット集合中のパケット数が、前記サーバから前回受信されたパケット集合中のパケット数の二倍であるか否かを判定する手段をさらに含み、
前記判定手段は、前記受信されたパケット集合中のパケット数が前記サーバから前回受信されたパケット集合中のパケット数の二倍であるか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定すること、
を特徴とする請求項1に記載の帯域測定装置。
輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信する帯域測定装置であって、
前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段と、
前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段と、
前記サーバから配信されたパケット集合を受信する受信手段と、
前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段と、
前記サーバから配信されたパケット集合が受信された場合に、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かを判定する手段と、
再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段と、
を含み、
前記判定手段は、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、
前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、
を特徴とする帯域測定装置。
輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信するコンピュータを、
前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段、
前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段、
前記サーバから配信されたパケット集合を受信する受信手段、
前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段、
前記サーバから配信されたパケット集合が受信された場合に、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かを判定する手段、
再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段、
前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段、
として機能させるためのプログラムであって、
前記判定手段は、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、
前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、
を特徴とするプログラム。
輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信する帯域測定装置であって、
前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段と、
前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段と、
前記サーバから配信されたパケット集合を受信する受信手段と、
前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段と、
前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段と、
再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段と、
を含み、
前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、
前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、
を特徴とする帯域測定装置。
輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信するコンピュータを、
前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段、
前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段、
前記サーバから配信されたパケット集合を受信する受信手段、
前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段、
前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段、
再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段、
前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段、
として機能させるためのプログラムであって、
前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、
前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、
を特徴とするプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、再送タイムアウトの発生を考慮して、通信チャネルの帯域幅を推定することである。
【課題を解決するための手段】
【0005】
上記課題を解決するための請求項1の発明は、輻輳ウィンドウのウィンドウサイズをTCP Reno方式で変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信する帯域測定装置であって、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段と、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段と、前記サーバから配信されたパケット集合を受信する受信手段と、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段と、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段と、を含み、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、第1の数式に従って、前記帯域幅の推定値を算出し、前記第1の数式は、前記帯域幅の推定値をBWと表し、前記RTT取得手段により取得された測定値をRTTと表し、前記ロス率取得手段により取得された測定値をpと表し、所与の再送タイムアウト時間をTと表し、パケット一つあたりのデータサイズをMSSと表した場合、下記数式(1)であること、を特徴とする帯域測定装置である。
【0006】
【数1】
【0007】
また、請求項2の発明は、前記サーバから配信されたパケット集合が受信された場合に、受信されたパケット集合中のパケット数が、前記サーバから前回受信されたパケット集合中のパケット数の二倍であるか否かを判定する手段をさらに含み、前記判定手段は、前記受信されたパケット集合中のパケット数が前記サーバから前回受信されたパケット集合中のパケット数の二倍であるか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定すること、を特徴とする請求項1に記載の帯域測定装置である。
また、請求項3の発明は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段をさらに含み、前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かと、前記受信されたパケット集合中のパケット数が前記サーバから前回受信されたパケット集合中のパケット数の二倍であるか否かと、に基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定すること、を特徴とする請求項2に記載の帯域測定装置である。
また、請求項4の発明は、前記算出手段は、前記再送タイムアウト発生条件が満足されない場合、前記再送タイムアウト時間を含まない第2の数式に従って、前記帯域幅の推定値を算出すること、を特徴とする請求項1乃至3のいずれかに記載の帯域測定装置である。
また、請求項5の発明は、輻輳ウィンドウのウィンドウサイズをTCP Reno方式で変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信するコンピュータを、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段、前記サーバから配信されたパケット集合を受信する受信手段、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段、として機能させるためのプログラムであって、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、第1の数式に従って、前記帯域幅の推定値を算出し、前記第1の数式は、前記帯域幅の推定値をBWと表し、前記RTT取得手段により取得された測定値をRTTと表し、前記ロス率取得手段により取得された測定値をpと表し、所与の再送タイムアウト時間をTと表し、パケット一つあたりのデータサイズをMSSと表した場合、上記数式(1)であること、を特徴とするプログラムである。
【0008】
また、請求項6の発明は、輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信する帯域測定装置であって、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段と、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段と、前記サーバから配信されたパケット集合を受信する受信手段と、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段と、前記サーバから配信されたパケット集合が受信された場合に、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かを判定する手段と、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段と、を含み、前記判定手段は、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、を特徴とする帯域測定装置である。
また、請求項7の発明は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段をさらに含み、前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かと、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かと、に基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定すること、を特徴とする請求項6記載の帯域測定装置である。
また、請求項8の発明は、輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信するコンピュータを、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段、前記サーバから配信されたパケット集合を受信する受信手段、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段、前記サーバから配信されたパケット集合が受信された場合に、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かを判定する手段、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段、として機能させるためのプログラムであって、前記判定手段は、前記サーバから前回配信されたパケット集合が受信されてから基準時間以上経過しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、を特徴とするプログラムである。
【0009】
また、請求項9の発明は、輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信する帯域測定装置であって、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段と、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段と、前記サーバから配信されたパケット集合を受信する受信手段と、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段と、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段と、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段と、を含み、前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、を特徴とする帯域測定装置である。
また、請求項10の発明は、輻輳ウィンドウのウィンドウサイズを変化させながらウィンドウサイズ分の数のパケットからなるパケット集合を配信するサーバと、パブリックネットワークを介して通信するコンピュータを、前記帯域測定装置と前記サーバとの通信に用いられる通信チャネルにおけるラウンドトリップタイムの測定値を取得するRTT取得手段、前記通信チャネルにおけるパケットロス率の測定値を取得するロス率取得手段、前記サーバから配信されたパケット集合を受信する受信手段、前記サーバから配信されたパケット集合が受信された場合に、該パケット集合中のパケットそれぞれに対応する確認応答パケットを前記サーバに返信する返信手段、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かを判定する手段、再送タイムアウトが発生しているか否かの再送タイムアウト発生条件が満足されるか否かを判定する判定手段、前記判定手段の判定結果に基づいて、前記通信チャネルにおける帯域幅の推定値を算出する算出手段、として機能させるためのプログラムであって、前記判定手段は、前記帯域測定装置が高速移動条件を満足する移動速度で移動しているか否かに基づいて、前記再送タイムアウト発生条件が満足されるか否かを判定し、前記算出手段は、前記再送タイムアウト発生条件が満足される場合、前記RTT取得手段により取得された測定値、前記ロス率取得手段により取得された測定値、所与の再送タイムアウト時間、及びパケット一つあたりのデータサイズを含む第1の数式に従って、前記帯域幅の推定値を算出すること、を特徴とするプログラムである。
【発明の効果】
【0015】
請求項1乃至10に記載の発明によれば、再送タイムアウトの発生を考慮して通信チャネルの帯域幅を推定できる。
【0016】
特に請求項1、5の発明によれば、サーバがTCP Reno方式で輻輳ウィンドウのサイズを変化させる場合に、通信チャネルの帯域幅を正確に推定できる。
【0017】
また、特に請求項2乃至4、6乃至10の発明によれば、本構成を有しない場合に比較してより高い精度で再送タイムアウトの発生を検知することができ、当該再送タイムアウトの発生を考慮して通信チャネルの帯域幅を推定できる。
【発明を実施するための形態】
【0019】
図1は、サービスシステム1の構成の一例を示す図である。サービスシステム1は、サービスサーバ4と、複数の基地局アンテナ6と、携帯端末2と、を含む。サービスサーバ4は、通信事業者から或る通信チャネルXを借り受けている仮想移動体通信事業者(以下、MVNO(Mobile Virtual Network Operator)と表記する)が所有しているサーバであり、パブリックネットワークたるWAN(Wide Area Network)に接続されている。WANは、インターネットとも呼ばれる。サービスサーバ4と、MVNOの顧客の携帯端末2と、は通信チャネルXを介して通信している。
【0020】
サービスサーバ4は、MVNOの顧客の携帯端末2に対して各種情報処理サービス(例えば、動画のストリーミング配信サービス)を提供する。具体的には、サービスサーバ4には、ネットワークインタフェースに対応するIP通信ポート(1)がオペレーティングシステムによりソフトウェア的に実装されている。IP通信ポート(1)には、サービスサーバ4のIPアドレスが割り当てられており、情報処理サービスに関するデータが、IP通信ポート(1)から携帯端末2へと送信される。
【0021】
また、本実施形態の場合、サービスサーバ4には、VPN(Virtual Private Network)サーバソフトウェアがインストールされており、VPNサーバソフトウェアによりVPN通信ポート(1)がソフトウェア的に実装されている。VPN通信ポート(1)には、バーチャルプライベートネットワーク(以下、VPNと表記する)におけるIPアドレスが割り当てられる。
【0022】
VPN通信ポート(1)の意義については後述する。
【0023】
また、基地局アンテナ6は、携帯端末2をWANに無線接続するためのアンテナである。
【0024】
また、携帯端末2は、MVNOの顧客が情報処理サービスを利用するために用いられるコンピュータであり、マイクロプロセッサ、主記憶、ディスプレイ、スピーカ、無線通信インタフェース、及びGPS(Global Positioning System)情報を随時受信するGPS受信機などを備える。GPS情報は、携帯端末2の位置を示す。ここでは、携帯端末2は、いわゆるAndroid(登録商標)オペレーティングシステムがインストールされた携帯電話である。主記憶には、オペレーティングシステム及びMVNOによってネットワーク配信された通信測定プログラムが格納され、マイクロプロセッサはこれらに従って各種情報を実行する。なお、通信測定プログラムは、DVD(登録商標)―ROM等のコンピュータ読み取り可能な情報記憶媒体から読み出されて主記憶に格納されてもよい。
【0025】
携帯端末2は、無線通信インタフェースによりいずれかの基地局アンテナ6(例えば、近くの基地局アンテナ6)に無線接続されることにより、WANに無線接続される。なお、携帯端末2の接続先の基地局アンテナ6は、携帯端末2の移動に応じて切り替わる。携帯端末2が高速で移動している場合、接続先の基地局アンテナ6が頻繁に切り替わる。ちなみに、
図1では、携帯端末2を一台しか示していないが、MVNOの顧客は複数おり、実際には、通信チャネルXを介してサービスサーバ4と通信する携帯端末2が複数存在している。
【0026】
図2は、携帯端末2にソフトウェア的に実装される通信ポートを示す図である。本実施形態の場合、同図に示すように、携帯端末2では、オペレーティングシステムにより、IP通信ポート(2)とVPN通信ポート(2)とが実装される。まず、IP通信ポート(2)について説明する。
【0027】
IP通信ポート(2)は、
図1に示すIP通信ポート(1)と通信を行うための通信ポートであり、携帯端末2のIPアドレスが割り当てられている。サービスサーバ4は、IP通信ポート(1)から、輻輳ウィンドウ(Congestion Window)のウィンドウサイズ「Ws」分の数のパケット(DATA[N+1]、DATA[N+2]、・・・、DATA[N+Ws])からなるパケット集合を配信しており、携帯端末2は、IP通信ポート(2)により、サービスサーバ4から配信されたパケット集合を受信する。また、携帯端末2は、パケット集合を受信すると、受信したパケット集合中のパケットそれぞれに対応する確認応答パケット(ACK[N+1]、ACK[N+2]、・・・、ACK[N+Ws])をIP通信ポート(2)から返信する。なお、ウィンドウサイズ「Ws」は、パケット数として表現される。また、ここでは、パケット一つ当たりのデータサイズMSSは1500バイトである。
【0028】
ウィンドウサイズ「Ws」は一定ではない。すなわち、サービスサーバ4は、輻輳(Congestion)の発生を避けるために、ウィンドウサイズ「Ws」を適宜変化させている。
図3及び
図4は、ウィンドウサイズ「Ws」の制御について説明するための図である。上述のように、サービスサーバ4が、「Ws」個のパケットからなるパケット集合を送信すると(S101)、それを受信した携帯端末2は、受信したパケット集合中のパケットそれぞれに対応する確認応答パケットをIP通信ポート(2)から返信する(S201)。
【0029】
そして、サービスサーバ4が、携帯端末2から送信された確認応答パケットすべてを受信すると、
図3に示すように、サービスサーバ4は、ウィンドウサイズ「Ws」を更新し(S102)、S101以降のステップを再度実行する。
【0030】
本実施形態では、サービスサーバ4は、TCP Reno方式でウィンドウサイズを制御している。TCP Reno方式のウィンドウ制御については、RFC(Request for Comment)に記載されている(http://tools.ietf.org/html/rfc2001)。簡単に説明すると、いわゆるスロースタートが実行中である場合、すなわち、ウィンドウサイズ「Ws」が閾値「Wth」未満である場合、S102でサービスサーバ4は、ウィンドウサイズ「Ws」を二倍する。また、スロースタートではなくいわゆる輻輳回避が実行中である場合、すなわち、ウィンドウサイズ「Ws」が閾値「Wth」以上である場合、S102でサービスサーバ4は、ウインドウサイズ「Ws」を「1」だけインクリメントする。従って、ウィンドウサイズ「Ws」は、スロースタート実行中、指数関数的に増加し、スロースタート実行後の輻輳回避中、線形的に増加することとなる。
【0031】
但し、いわゆる重複ACKが発生した場合、すなわち、一つのパケットについてそのパケットに対応する確認応答パケットACKを重複して受信した場合、S102でサービスサーバ4は、早期回復アルゴリズムに従い、ウィンドウサイズ「Ws」を半減する。
【0032】
また、再送タイムアウト(以下、RTO(retransmission timeout)と表記する)が発生した場合、すなわち、パケット集合の送信からタイムアウト時間Tout経過しても、当該パケット集合中のパケットそれぞれに対応する確認応答パケットACK全部が受信されない場合、サービスサーバ4は、
図4に示すように、
図3のS102の代わりに、S102Aのステップを実行する。すなわち、S102Aでサービスサーバ4は、ウィンドウサイズ「Ws」を「1」に更新する。そして、サービスサーバ4は、S101以降のステップを再度実行する。なお、閾値「Wth」は、RTOが発生したときに更新される。すなわち、閾値「Wth」は、RTOが発生したとき、そのときのウィンドウサイズ「Ws」の四分の一に更新される。また、閾値「Wth」は、そのほかのタイミングにも更新される。すなわち、更新前の閾値「Wth」が記憶されるようになっており、RTOの発生後、ウィンドウサイズ「Ws」が更新前の閾値「Wth」に達したときに、閾値「Wth」が更新前の値に戻される。
【0033】
なお、Toutが特許請求の範囲に記載の「T」に相当する。
【0034】
ちなみに、重複ACKやRTOは輻輳の発生時に発生する。そのため、輻輳発生時のウィンドウサイズ「Ws」を「W」と表した場合、サービスサーバ4から送信されるパケット集合中のパケット数の時間推移は
図5のようになる傾向がある。横軸が時間を示し、縦軸がパケット数を示す。細い実線がパケット数の時間推移を示す。なお、太い実線は、閾値「Wth」の値の推移を示す。また、T1は、RTO発生時の時刻を示す。また、T2は、T1からタイムアウト時間Tout経過後の時刻、すなわちスロースタートの実行が開始される時刻、を示す。また、T3は、スロースタートの実行が終了される時刻、すなわち、ウィンドウサイズ「Ws」が閾値「Wth」に達した時刻を示す。また、T4は、スロースタート終了後、ウィンドウサイズ「Ws」が、輻輳発生時のウィンドウサイズ「W」の半分である「W/2」に達した時刻を示す。上述のように、重複ACKが発生したときに、ウィンドウサイズ「Ws」が半減されている。また、RTOが発生したときに、ウィンドウサイズ「Ws」が「1」に更新されている。それだけでなく、閾値「Wth」が、時刻T1でRTOが発生したときのウィンドウサイズ「W」の四分の一に更新されている。またその後、時刻T2から時刻T3の間スロースタートが実行され、ウィンドウサイズ「Ws」が、閾値「Wth」に達するまで指数関数的に増加している。また、時刻T3の後輻輳回避が実行され、ウィンドウサイズ「Ws」が線形的に増加している。また、時刻T4でウィンドウサイズ「Ws」が、更新前の閾値「Wth」、すなわち、輻輳が発生したときのウィンドウサイズ「W」の二分の一に達したとき、閾値「Wth」が更新前の値に更新されている。
【0035】
なお、以下、T2からT3までの期間をスロースタート期間と呼び、T3からT4までの期間をリカバリ期間と呼ぶ。
【0036】
このようにパケット数が推移する傾向があるので、スロースタート期間の長さ「T3−T2」をT
slowと表した場合、以下の数式が成立する。
【0038】
よって、ウィンドウサイズ「Ws」のおおよその更新間隔RTT
refを時間の単位として用いた場合、T
slowは、以下のように近似される。
【0040】
また、スロースタート期間に送信されるパケット数の総和をP
slowと表した場合、P
slowは、以下の数式であらわされる。
【0042】
よって、P
slowは、以下のように表される。
【0044】
一方、リカバリ期間の長さ「T4−T3」をT
recoveryと表した場合、T
recoveryは、RTT
refを用いて以下のように近似される。
【0046】
また、スロースタート期間に送信されるパケット数の総和をP
recoveryと表した場合、P
recoveryは、台形の面積を求める公式から以下のようになる。
【0048】
従って、T4からT1までの期間(以下、RTO期間と表記する)の長さT
total及びRTO期間中に送信された総データ量P
totalは、以下のように近似される。
【0050】
なお、
図5によれば、ウィンドウサイズ「Ws」が「W/2」であるときから「W」に達するまでの期間に、一回パケットロスが発生したと考えられる。従って、パケットロス率pは以下のように近似される。
【0052】
よって、輻輳発生時のウィンドウサイズ「W」は、以下のように近似される。
【0054】
従って、T
total及びP
totalは、パケットロス率pを用いて以下のように表される。
【0056】
次に、VPN通信ポート(2)について説明する。VPN通信ポート(2)は、VPN通信ポート(1)とVPNを介して通信するための通信ポートであり、VPNにおけるIPアドレスが割り当てられる。VPN通信ポート(2)は、情報処理サービスを受けるために利用されるのではなく、通信チャネルXにおけるラウンドトリップタイムを得るために用いられる。すなわち、携帯端末2は、VPN通信ポート(2)からダミーパケットDUMMYを繰り返し送信している。
【0057】
図6は、VPN通信ポート(2)とVPN通信ポート(1)との間の通信を説明するための図である。まず、携帯端末2(正確には、携帯端末2のマイクロプロセッサ)は、VPN通信ポート(2)からダミーパケットDUMMYを送信し(S301)、パラメータt1の値を、現在時刻Tcに設定する(S302)。ダミーパケットDUMMYの送信後、ダミーパケットDUMMYを受信したサービスサーバ4から確認応答パケットDUMMY−ACKが返信される(S401)。確認応答パケットDUMMY−ACKを受信すると、携帯端末2のマイクロプロセッサは、パラメータt2の値を現在時刻Tcに設定し(S303)、パラメータt1が示す時刻からパラメータt2が示す時刻までの時間を、ラウンドトリップタイムrttとして算出する(S304)。
【0058】
そして、携帯端末2のマイクロプロセッサは、S304で算出したrttを、ラウンドトリップタイムrttのデータ列(以下、rtt列と表記する)の最後の要素として主記憶に保存し(S305)、S301以降のステップを再度実行する。例えば、rtt列に「L(Lは0又は正の整数)」個のラウンドトリップタイムrttが含まれている場合、S304で算出されたrttが、S305において、rtt列の「L+1」番目の要素として主記憶に保存されることになる。
図7に、rtt列の一例を示す。なお、本実施形態では、重複ACKが発生した場合(DUMMY−ACKが重複して受信された場合)、S304で得られたrttに所定のフラグ値が関連づけられる。
【0059】
この携帯端末2では、このrtt列に基づいて、通信チャネルXの帯域幅(単位時間当たりに流れるデータ量)の推定値BWが定期的に算出され、サービスサーバ4に届けられる。サービスサーバ4では、携帯端末2から受け取った推定値BWに基づいて例えばパケットシェイピングが行われ、通信チャネルXへと送信される単位時間当たりのデータ量が随時調整されることとなる。
【0060】
図8及び
図9は、推定値BWの算出のため、携帯端末2のマイクロプロセッサが定期的に行う処理を示すフロー図である。まず、マイクロプロセッサ(RTT取得手段)は、主記憶に記憶されるrtt列を読み出す(S501)。そして、マイクロプロセッサ(RTT取得手段)は、rtt列に基づいて、通信チャネルXにおけるラウンドトリップタイムの測定値RTT
measureを算出する(S502)。本実施形態の場合、S502でマイクロプロセッサは、rtt列中の全rttの平均をRTT
measureとして算出する。RTT
measureが特許請求の範囲に記載の「RTT」に相当する。
【0061】
また、マイクロプロセッサ(ロス率取得手段)は、通信チャネルXにおけるパケットロス率の測定値pを取得する(S503)。測定値pの取得方法は、多々あるが、本実施形態の場合、マイクロプロセッサは、rtt列に基づいて測定値pを算出する。具体的に、S503でマイクロプロセッサは、rtt列中のrttの総数に対する、上記所定のフラグ値が関連づけられたrttの数の割合いを、測定値pとして算出する。
【0062】
そして、マイクロプロセッサは、S504以降のステップを実行することにより、推定値BWを算出する。
【0063】
ところで、よく知られた下記スループット方程式により、推定値BWを算出してもよいように思われる。
【0065】
なお、「C」及び「k」は、所定の定数である。
【0066】
しかしRTOが発生している状況下では、スループット方程式が成り立たなくなる。なぜなら、RTOが発生している最中は、パケットの送信が行われない。そのため、RTOが発生しているときに測定されるラウンドトリップタイムは、RTT
measureとかけ離れた値になるからである。従って、RTOが発生している状況下で上記スループット方程式を用いた場合、実際の帯域幅より相当小さい推定値BWが得られることになる。
【0067】
図10は、スループット方程式の問題点を説明するための図であり、RTOが発生している状況下での、「BW×(RTT
measure/MSS)」とpとの関係を示す図である。縦軸は、「BW×(RTT
measure/MSS)」の値を対数目盛りで示し、横軸は、pの値を対数目盛で示している。中抜きされた正方形が、RTO発生時の双方の関係を示し、点線が、スループット方程式における双方の関係を示している。同図に示すように、RTO発生時では、「BW×(RTT
measure/MSS)」の値が点線を大きく下回っている。
【0068】
そこで、この携帯端末2では、RTOが発生しているか否か、すなわちRTO発生条件が満足されるか否かによって、推定値BWの算出に用いる数式を変化させる。すなわち、この携帯端末2では、RTO発生条件が満足されない場合、上記スループット方程式により推定値BWを算出し、RTO発生条件が満足される場合、タイムアウト時間Toutを含む下記特別スループット方程式により推定値BWを算出する。
【0070】
ここで、RTO発生条件は、以下の条件(1)〜条件(3)のいずれか一つが成立する場合に、満足される。すなわち、条件(1)〜条件(3)のいずれか一つが成立する場合、RTOが発生していると目される。
【0071】
条件(1):携帯端末2が高速で移動している(接続先の基地局アンテナ6が切り替わりやすい)。
条件(2):パケット集合を受信してから基準時間T
th(例えばT
thは3秒)以上経過した後に、次のパケット集合を受信した。
条件(3):受信したパケット集合中のパケット数が、前回受信したパケット集合中のパケット数の2倍である(スロースタート期間中である)。
【0072】
具体的には、マイクロプロセッサは、S504以降、以下の処理を実行する。すなわち、S504でマイクロプロセッサ(判定手段)は、携帯端末2が高速で移動しているか否かを判定する。すなわち、S504でマイクロプロセッサは、GPS受信機が随時受信しているGPS情報に基づいて携帯端末2の移動速度vを算出し、移動速度vが閾値v
th以上であるか否かを判定する(S504)。なお、S504では、条件(1)の成否が判定されている。
【0073】
携帯端末2では、パケット集合が受信されるたびに、そのパケット集合が受信されてからの経過時間が計測されるようになっている。マイクロプロセッサ(判定手段)は、携帯端末2が高速で移動していない場合(S504のN)、IP通信ポート(2)を監視する。そして、IP通信ポート(2)がパケット集合を受信した場合、前回パケット集合が受信されてからの経過時間が基準時間T
th以上であるか否かを判定する(S505)。なお、S505では、条件(2)の成否が判定されている。
【0074】
前回パケット集合が受信されてからの経過時間が基準時間T
th未満である場合(S505のN)、マイクロプロセッサは、受信したパケット集合中のパケット数を主記憶に記録し、IP通信ポート(2)を監視する。そして、マイクロプロセッサ(判定手段)は、IP通信ポート(2)がパケット集合を受信した場合、受信したパケット集合中のパケット数が主記憶に記録したパケット数の2倍であるか否かを判定する(S506)。なお、S506では、条件(3)の成否が判定されている。
【0075】
そして、S504で肯定的な判定結果が得られた場合(S504のY)、又は、S505で肯定的な判定結果が得られた場合(S505のY)、又は、S506で肯定的な判定結果が得られた場合(S506のY)、マイクロプロセッサ(算出手段)は、上記特別スループット方程式に従って推定値BWを算出し(S507)、算出した推定値BWをサービスサーバ4に送信する。
【0076】
一方、S504、S505、及びS506のいずれにおいても肯定的な判定結果が得られなかった場合(S506のN)、RTOが発生していないと考えられる。そこで、この場合、マイクロプロセッサ(算出手段)は、上記スループット方程式で推定値BWを算出し、算出した推定値BWをサービスサーバ4に送信する。但し、本実施形態の場合、マイクロプロセッサは、上記スループット方程式で推定値BWを算出する際に、RTT
measureの代わりに、以下で説明するRTT
pureを用いる。
【0077】
すなわち、マイクロプロセッサは、rtt列が表すrttの変化のパターン(以下、オリジナルパターンと表記する)に対してフーリエ変換を実行し(S508)、周波数スペクトルを取得する。そして、マイクロプロセッサは、フィルタリングを実行し、周波数スペクトルから高周波成分を除去する(S509)。すなわち、マイクロプロセッサは、周波数スペクトルから、予め定められた基準周波数f
ref以上の周波成分を除去する。
【0078】
そして、マイクロプロセッサは、フィルタリングされた後の周波数スペクトルに対して逆フーリエ変換を実行し(S510)、オリジナルパターンから高周波成分を除去したパターンを算出する。そして、マイクロプロセッサは、S510の結果得られたパターンに基づいて上記RTT
pureを算出する(S511)。ここでは、S511でマイクロプロセッサは、S510の結果得られたパターンの時間平均をRTT
pureとして算出する。
【0079】
そして、マイクロプロセッサは、上記スループット方程式に従って推定値BWを算出し(S512)、算出した推定値BWをサービスサーバ4に送信する。なお、ここでは、RTT
measureの代わりにRTT
pureが用いられているが、勿論、RTT
measureが用いられてもよい。
【0080】
なお、本発明の実施形態は、上記実施形態だけに限らない。
【0081】
例えば、基地局アンテナ6は、無線アクセスポイントであってもよい。
【0082】
また、S507でマイクロプロセッサ(算出手段)は、上記特別スループット方程式で推定値BWを算出する際に、上記RTT
measureの代わりに上記RTT
pureを用いてもよい。この場合、RTT
pureが特許請求の範囲に記載の測定値「RTT」に相当することとなる。
【0083】
また、マイクロプロセッサ(算出手段)は、S504、S505、及びS506のいずれにおいても肯定的な判定結果が得られた場合にのみ、S507のステップを実行してもよい。すなわち、上記条件(1)〜条件(3)のすべてが成立する場合に、RTO発生条件が満足されることとしてもよい。
【0084】
また、S504、S505、及びS506の全部ではなく、一部だけが実行されてもよい。例えば、これら3つのステップのうちの2つだけが実行されてもよいし、1つだけが実行されてもよい。例えば、S504とS505とだけが実行される場合、「上記条件(1)乃至上記条件(3)」のうちのいずれか一つの成立ではなく、「条件(1)及び条件(2)」のうちのいずれか一つの成立が、RTO発生条件が満足されることの条件となる。また例えば、S505だけが実行される場合、条件(1)乃至条件(3)うちのいずれか一つの成立ではなく、条件(2)の成立が、RTO発生条件が満足されることの条件となる。
【0085】
また、S505でマイクロプロセッサ(判定手段)は、前回パケット集合が受信されてからの経過時間が基準時間T
th以上であるか否かを判定する代わりに、今回受信したパケット集合中のパケット数が「1」であるか否かを判定してもよい。すなわち、「パケットを一つのみ含むパケット集合の受信」を条件(2)としてもよい。RTOが発生するとウィンドウサイズ「Ws」が「1」に設定されるからである。