(57)【特許請求の範囲】
【請求項１】
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合はデータ転送レートの増加を指示する指示データを、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合はデータ転送レートの減少を指示する指示データを、前記送信側データ通信装置に対し送信するステップと、
前記送信側データ通信装置が、前記指示データを送信するステップにおいて前記受信側データ通信装置から送信されてきた指示データにより示される指示に従い、前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを変更するステップと
を備えるデータ転送方法。
【請求項２】
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レートおよびデータ損失率を取得するステップと、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記送信側データ通信装置に対し前記基準データ転送所要時間を送信するステップと、
前記送信側データ通信装置が、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法。
【請求項３】
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第１の所定の条件および前記第２の所定の条件は、各々、過去の第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第１の所定期間よりも後の第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
請求項１または２に記載のデータ転送方法。
【請求項４】
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法。
【請求項５】
前記送信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第１の所定の条件および前記第２の所定の条件は、各々、過去の第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第１の所定期間よりも後の第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
請求項４に記載のデータ転送方法。
【請求項６】
前記第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第１の変化の方向とし、前記第２の所定期間に関し前記算出するステップにおいて算出された指標から前記第２の所定期間よりも後の第３の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第２の変化の方向とする場合、
前記基準データ転送所要時間を増加させる所定の規則は、前記第１の変化の方向と前記第２の変化の方向とが逆方向である場合、前記第１の変化の方向と前記第２の変化の方向が同方向である場合と比較し、より小さい増加幅で前記基準データ転送所要時間を増加させる規則であり、
前記基準データ転送所要時間を減少させる所定の規則は、前記第１の変化の方向と前記第２の変化の方向とが逆方向である場合、前記第１の変化の方向と前記第２の変化の方向が同方向である場合と比較し、より小さい減少幅で前記基準データ転送所要時間を減少させる規則である
請求項３または５に記載のデータ転送方法。
【請求項７】
前記指標は、データ転送レートに関し単調増加関数であり、データ損失率に関し単調減少関数であり、データ損失率に関する偏微分が単調増加関数である、データ転送レートとデータ損失率を変数とする関数の関数値である
請求項３、５および６のいずれかに記載のデータ転送方法。
【請求項８】
前記受信側データ通信装置もしくは前記送信側データ通信装置が、過去のデータ転送における通信相手である前記送信側データ通信装置もしくは前記受信側データ通信装置を識別する識別データに対応付けて、当該過去のデータ転送において用いた前記基準データ転送所要時間の代表値を記憶するステップ
を備える請求項１乃至７のいずれかに記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介したバルクデータ転送技術に関する。
【背景技術】
【０００２】
互いにネットワークで接続された異なるデータ通信装置間で比較的大きなデータ量の一連のデータであるバルクデータを転送するためのプロトコルとして、ＦＴＰ（File Transfer Protocol）が広く利用されている。
【０００３】
ＦＴＰはＴＣＰ（Transmission Control Protocol）と呼ばれるデータ転送の制御プロトコルに従ったバルクデータ転送用のプロトコルであるため、ＦＴＰに従ったバルクデータ転送においては、ＴＣＰに従った帯域制御が行われる。
【０００４】
ＴＣＰに従う場合、送信側のデータ通信装置（以下、「送信側データ通信装置」と呼ぶ）から転送対象のデータを分割して得られるパケットの送信が行われ、そのパケットが受信側のデータ通信装置（以下、「受信側データ通信装置」と呼ぶ）により受信されると、受信側データ通信装置がそのパケットの受信に成功したことを示す受信確認応答データ（以下、「Ａｃｋ」と呼ぶ）を送信側データ通信装置に送信する。
【０００５】
送信側データ通信装置は、自機が送信したパケットに対するＡｃｋを所定時間内に受信できなかった場合、そのパケットを損失されたパケット（以下、「ロストパケット」と呼ぶ）と判断し、所定期間内に送信したパケット数に対するロストパケットの数であるパケット損失率を算出する。なお、パケットの送信タイミングとそのパケットに関するＡｃｋの受信タイミングとの差で示される時間（データの往復に要した時間）はＲＴＴ（Round Trip Time）と呼ばれる。
【０００６】
送信側データ通信装置は、上記のように算出したパケット損失率が所定の閾値を上回った場合、送信側データ通信装置と受信側データ通信装置との間のネットワーク経路上に輻輳が発生していると判断して、単位時間あたりに送信するデータ量であるデータ転送レート、すなわちデータの転送速度を大きく下げる。その後、緩やかにデータ転送レートを上げていく。このようなデータ転送レートの制御、すなわち帯域制御により、ネットワークの輻輳の深刻化が回避される。
【０００７】
ところで、パケットの損失はネットワークの輻輳に起因するもの以外に、例えば無線ネットワーク等におけるノイズ等に起因するものや、ネットワーク上の地理的距離が遠いためにＡｃｋが送信側データ通信装置に戻ってくるまでの時間が長すぎてロストパケットと判断される地理的距離に起因するものなどがある。
【０００８】
これらのネットワークの輻輳に起因しないパケットの損失は、データ転送レートを下げても解消しない。従って、主として輻輳に起因しないパケットの損失によりパケット損失率が上がっている場合はデータ転送レートを下げるメリットはない。しかし、ＴＣＰに従うＦＴＰにおいては、そのような場合であってもデータ転送レートが下げられてしまい、無駄に利用されない帯域が生じることになる。
【０００９】
上記のようなＦＴＰの持つ欠点を解消するための方法がいくつか提案されている。
【００１０】
例えば、特許文献１には、伝送誤りに起因するパケット損失率が閾値より高いとパケット長を短くし、遅延に起因するパケット損失率が閾値より高くかつＲＴＴが閾値より長いとデータ転送レートを下げる、という制御を行うことで、伝送誤りに起因するパケット損失率の低下に適正に対応する仕組みが提案されている。
【００１１】
また、例えば特許文献２には、ＲＴＴが不安定な場合、ＲＴＴが減少傾向であればデータ転送レートを上げ、ＲＴＴが増加傾向であればデータ転送レートを下げ、パケット損失率が不安定な場合、パケット損失率が閾値以下であればデータ転送レートを上げ、パケット損失率が閾値以上であればデータ転送レートを下げる、という制御を行うことで、ネットワークの状態に変化が生じた場合にデータ転送レートを望ましい方向に調整する仕組みが提案されている。
【００１２】
また、例えば特許文献３には、ストリーミングデータ配信において、データ転送レートを上げた結果、エンコードレートが上がった場合はデータ転送レートをさらに上げ、エンコードレートが下がった場合はデータ転送レートを下げ、データ転送レートを下げた結果、エンコードレートが上がった場合はデータ転送レートをさらに下げ、エンコードレートが下がった場合はデータ転送レートを上げる、という制御を行うことで、常にできるだけ高いエンコードレートでデータ配信を行う仕組みが提案されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００１−１６０８２４号公報
【特許文献２】特開２００４−１９３９９１号公報
【特許文献３】特開２００９−２０７０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に提案されている仕組みによる場合、伝送誤りに起因するパケット損失には適正に対応可能であるが、地理的距離に起因するパケット損失には適正に対応できず、従って遠距離間のデータ転送において望ましいパフォーマンスが得られない場合がある。
【００１５】
また、特許文献２に提案されている仕組みによる場合、ＲＴＴやパケット損失率が安定している間は、データ転送レートが変更されないため、例えば全く輻輳がない状態でデータ転送レートが低く設定された場合などにそのまま安定化してしまい、望ましいパフォーマンスが得られない場合がある。
【００１６】
また、特許文献３に提案されている仕組みによる場合、ネットワークの輻輳の有無にかかわらずデータ転送レートが高く維持されることで、他の装置間のデータ転送に悪影響を与える場合がある。
【００１７】
上記の事情に鑑み、本発明は、ネットワークを介した異なるデータ通信装置間において、ネットワークの輻輳を助長することなく、常に高いパフォーマンスのデータ転送を可能とする手段を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の課題を解決するため、本発明は、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合はデータ転送レートの増加を指示する指示データを、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合はデータ転送レートの減少を指示する指示データを、前記送信側データ通信装置に対し送信するステップと、
前記送信側データ通信装置が、前記指示データを送信するステップにおいて前記受信側データ通信装置から送信されてきた指示データにより示される指示に従い、前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを変更するステップと
を備えるデータ転送方法
を第１の実施態様として提案する。
【００１９】
また、本発明は、上記の第１の実施態様にかかるデータ転送方式の代替的な実施態様として、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レートおよびデータ損失率を取得するステップと、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記送信側データ通信装置に対し前記基準データ転送所要時間を送信するステップと、
前記送信側データ通信装置が、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法
を第２の実施態様として提案する。
【００２０】
また、本発明は、上記の第１または第２の実施態様にかかるデータ転送方法の望ましい一態様として、
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第１の所定の条件および前記第２の所定の条件は、各々、過去の第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第１の所定期間よりも後の第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
という構成を第３の実施態様として提案する。
【００２１】
また、本発明は、上記の第１および第２の実施態様にかかるデータ転送方式の代替的な実施態様として、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第１の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の１以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第２の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法
を第４の実施態様として提案する。
【００２２】
また、本発明は、上記の第４の実施態様にかかるデータ転送方法の望ましい一態様として、
前記送信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第１の所定の条件および前記第２の所定の条件は、各々、過去の第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第１の所定期間よりも後の第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
という構成を第５の実施態様として提案する。
【００２３】
また、本発明は、上記の第３または第５の実施態様にかかるデータ転送方法の望ましい一態様として、
前記第１の所定期間に関し前記算出するステップにおいて算出された指標から前記第２の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第１の変化の方向とし、前記第２の所定期間に関し前記算出するステップにおいて算出された指標から前記第２の所定期間よりも後の第３の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第２の変化の方向とする場合、
前記基準データ転送所要時間を増加させる所定の規則は、前記第１の変化の方向と前記第２の変化の方向とが逆方向である場合、前記第１の変化の方向と前記第２の変化の方向が同方向である場合と比較し、より小さい増加幅で前記基準データ転送所要時間を増加させる規則であり、
前記基準データ転送所要時間を減少させる所定の規則は、前記第１の変化の方向と前記第２の変化の方向とが逆方向である場合、前記第１の変化の方向と前記第２の変化の方向が同方向である場合と比較し、より小さい減少幅で前記基準データ転送所要時間を減少させる規則である
という構成を第６の実施態様として提案する。
【００２４】
また、本発明は、上記の第３、第５および第６のいずれかの実施態様にかかるデータ転送方法の望ましい一態様として、
前記指標は、データ転送レートに関し単調増加関数であり、データ損失率に関し単調減少関数であり、データ損失率に関する偏微分が単調増加関数である、データ転送レートとデータ損失率を変数とする関数の関数値である
という構成を第７の実施態様として提案する。
【００２５】
また、本発明は、上記の第１乃至第７のいずれかの実施態様にかかるデータ転送方法の望ましい一態様として、
前記受信側データ通信装置もしくは前記送信側データ通信装置が、過去のデータ転送における通信相手である前記送信側データ通信装置もしくは前記受信側データ通信装置を識別する識別データに対応付けて、当該過去のデータ転送において用いた前記基準データ転送所要時間の代表値を記憶するステップ
を備える
という構成を第８の実施態様として提案する。
【発明の効果】
【００２６】
本発明の第１、第２もしくは第４の実施態様にかかるデータ転送方法によれば、データ転送レートおよびデータ損失率に基づき基準データ転送所要時間が逐次調整され、調整された基準データ転送所要時間よりも実際のデータ転送所要時間が短ければデータ転送レートが上げられ、調整された基準データ転送所要時間よりも実際のデータ転送所要時間が長ければデータ転送レートが下げられる。このように、基準データ転送所要時間に対する実際のデータ転送所要時間の長短に基づくデータ転送レートの調整の仕組みに対し、過去のデータ転送レートとデータ損失率に基づく基準データ転送所要時間の調整、という間接的な調整の仕組みを加えることにより、実態から大きく乖離する危険を伴うことなく、データ転送レートを動的に上下させることで常により望ましいデータ転送レートへの調整が行われる。その結果、全体として、ネットワークの輻輳の深刻化を招くことなく、高いデータ転送のパフォーマンスを得ることができる。
【００２７】
本発明の第３もしくは第５の実施態様にかかるデータ転送方法によれば、データ転送レートおよびデータ損失率に基づき算出されるデータ転送のパフォーマンスを示す指標の変化の方向に応じて、基準データ転送所要時間が調整される。その結果、例えば基準データ転送所要時間を上げることでデータ転送のパフォーマンスが高まる傾向にある場合は、さらに基準データ転送所要時間を上げることで、未使用な帯域を利用するようにデータ転送レートを上げる機会が増え、より高いデータ転送のパフォーマンスを得ることができる。一方、基準データ転送所要時間を下げることでデータ転送のパフォーマンスが高まる傾向にある場合は、さらに基準データ転送所要時間を下げることで、輻輳を解消するようにデータ転送レートを下げる機会が増え、ネットワーク資源の公平利用の観点からより望ましいデータ転送の状態を得ることができる。
【００２８】
本発明の第６の実施態様にかかるデータ転送方法によれば、データ転送のパフォーマンスを示す指標が不安定化した場合に、データ転送のパフォーマンスを重視して基準データ転送所要時間を上げるべきか、ネットワーク資源の公平利用を重視して基準データ転送所要時間を下げるべきか、の判定が細やかに行われる。その結果、データ転送レートの乱高下が回避される。
【００２９】
本発明の第７の実施態様にかかるデータ転送方法によれば、データ損失率が低い領域では、データ損失率が高い領域と比べ、よりデータ損失率の変化を反映したデータ転送のパフォーマンスに基づき基準データ転送所要時間の調整が行われる。すなわち、一般的にデータ損失率が低い近距離間のデータ転送においてはデータ損失率の変化が輻輳の発生に影響されやすいため、データ損失率により感応的に基準データ転送所要時間の調整を行い、一般的にデータ損失率が高い遠距離間のデータ転送や無線データ通信網を介したデータ転送においてはデータ損失率の変化が輻輳以外の要因に起因する確率が高いため、データ損失率にあまり感応的でない基準データ転送所要時間の調整が行われる。その結果、全体として望ましいデータ転送のパフォーマンスが得られる。
【００３０】
本発明の第８の実施態様にかかるデータ転送方法によれば、特定の送信側データ通信装置と受信側データ通信装置との間のデータ転送において、過去に用いられた基準データ転送所要時間を将来の同じ送信側データ通信装置と受信側データ通信装置との間のデータ転送における基準データ転送所要時間の初期値として利用することが可能となる。その結果、データ転送の開始後、より迅速に望ましいデータ転送レートでのデータ転送が実現される。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の一実施例にかかるデータ転送システムの構成を示したブロック図である。
【図２】図２は、本発明の一実施例にかかる送信側データ通信装置および受信側データ通信装置の機能構成とそれらの動作を説明するための図である。
【図３】図３は、本発明の一実施例にかかるデータ転送システムにおいて帯域制御のためのデータを収集する処理を説明するための図である。
【図４】図４は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ（初期モード）を示した図である。
【図５】図５は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ（基準ＲＴＴ増加モード）を示した図である。
【図６】図６は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ（基準ＲＴＴ減少モード）を示した図である。
【図７】図７は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ（基準ＲＴＴ増減探索モード）を示した図である。
【図８】図８は、本発明の一実施例にかかるレート決定モジュールが算出する転送スコアＳの特性を示したグラフである。
【発明を実施するための形態】
【００３２】
［実施例］
以下に、本発明の一実施例にかかるデータ転送システム１の構成および動作を説明する。
【００３３】
図１は、データ転送システム１の構成を示したブロック図である。データ転送システム１は、バルクデータの送信側のデータ通信装置である送信側データ通信装置１１と、バルクデータの受信側のデータ通信装置である受信側データ通信装置１２とを備えている。送信側データ通信装置１１と受信側データ通信装置１２はインターネット２０を介して互いにデータ通信可能である。
【００３４】
送信側データ通信装置１１は、主として以下の構成部を備えている。
記憶部１１１：送信側データ通信装置１１の処理を指示するプログラムや受信側データ通信装置１２から受信するデータ等を記憶する。
送信部１１２：転送対象のバルクデータのパケットや、過去に送信したバルクデータのパケットを通知するためのレポートデータ、受信側データ通信装置１２から送信されてくるＲＴＴの測定用のデータであるプローブデータのＡｃｋ等を受信側データ通信装置１２に対し送信する。
受信部１１３：受信側データ通信装置１２から送信されてくるプローブデータや、ロストパケットの再送要求およびデータ転送レートの増減指示などを含むレポートデータ等を受信する。
表示部１１４：送信側データ通信装置１１のユーザに対し、データ転送の進捗状況などを示す各種情報の表示を行う。
操作部１１５：送信側データ通信装置１１のユーザの操作に応じて所定のデータを生成することによりユーザのデータ入力を受け付ける。
制御部１１６：送信側データ通信装置１１の他の構成部を制御するとともに、各種の演算処理や判定処理を行う。
【００３５】
受信側データ通信装置１２は、主として以下の構成部を備えている。
記憶部１２１：受信側データ通信装置１２の処理を指示するプログラムや送信側データ通信装置１１から受信するデータ等を記憶する。
受信部１２２：送信側データ通信装置１１から送信されてくる転送対象のバルクデータのパケット、ＲＴＴの測定用のデータであるプローブデータのＡｃｋ、過去に送信したバルクデータのパケットを通知するためのレポートデータ等を受信する。
送信部１２３：プローブデータや、ロストパケットの再送要求およびデータ転送レートの増減指示などを含むレポートデータ等を送信する。
表示部１２４：受信側データ通信装置１２のユーザに対し、データ転送の進捗状況などを示す各種情報の表示を行う。
操作部１２５：受信側データ通信装置１２のユーザの操作に応じて所定のデータを生成することによりユーザのデータ入力を受け付ける。
制御部１２６：受信側データ通信装置１２の他の構成部を制御するとともに、各種の演算処理や判定処理を行う。
【００３６】
図２は、送信側データ通信装置１１および受信側データ通信装置１２の機能構成と、データ転送システム１においてバルクデータの転送が行われる際の送信側データ通信装置１１および受信側データ通信装置１２の動作を説明するための図である。
【００３７】
なお、以下に説明する送信側データ通信装置１１の各モジュールは送信側データ通信装置１１の制御部１１６が記憶部１１１に記憶されているプログラムに従った処理を行うことにより実現される機能構成部である。同様に、以下に説明する受信側データ通信装置１２の各モジュールは受信側データ通信装置１２の制御部１２６が記憶部１２１に記憶されているプログラムに従った処理を行うことにより実現される機能構成部である。
【００３８】
バルクデータが転送される手順は以下のとおりである。まず、送信側データ通信装置１１のブロック読み出しモジュールが記憶部１１１に記憶されている転送対象のバルクデータのファイルを読み出し（Ｓ００１）、複数のブロックに分割してパケットマッピングモジュールに引き渡す（Ｓ００２）。
【００３９】
パケットマッピングモジュールは受け取ったブロックをさらにフラグメントに分割し、分割したフラグメントを含むＵＤＰ（User Datagram Protocol）に従ったパケットを生成し、帯域制御モジュールに引き渡す（Ｓ００３）。なお、ＵＤＰはエラー制御の仕組みを持たず、ＴＣＰよりも制約の少ないデータ転送のためのプロトコルである。
【００４０】
帯域制御モジュールは、受け取ったパケットを後述する仕組みにより決定されるデータ転送レートで順次暗号化モジュールに引き渡す（Ｓ００４）。
【００４１】
暗号化モジュールは、受け取ったパケットを所定の暗号化アルゴリズムに従い暗号化した暗号化パケットを生成する。なお、データ転送システム１においては、例えばDiffie-Hellman鍵共有およびAES（Advanced Encryption Standard）暗号化アルゴリズムが暗号化のアルゴリズムとして用いられる。暗号化モジュールは生成した暗号化パケットをチェックサム生成モジュールに引き渡す（Ｓ００５）。
【００４２】
チェックサム生成モジュールは、受け取った暗号化パケットのメッセージダイジェストをチェックサムデータとして生成し、生成したチェックサムデータを暗号化パケットに付加したチェックサム付き暗号化パケットを生成する。なお、データ転送システム１においては、例えばSHA-1（Secure Hash Algorithm 1）アルゴリズムがチェックサムデータの生成のアルゴリズムとして用いられる。チェックサム生成モジュールは生成したチェックサム付き暗号化パケットを送信部１１２に引き渡す（Ｓ００６)。
【００４３】
送信部１１２は受け取ったチェックサム付き暗号化パケットを受信側データ通信装置１２に送信する（Ｓ００７）。送信されたチェックサム付き暗号化パケットは受信側データ通信装置１２の受信部１２２により受信される。
【００４４】
受信部１２２は、受信したチェックサム付き暗号化パケットをチェックサム検査モジュールに引き渡す（Ｓ００８）。
【００４５】
チェックサム検査モジュールは受け取ったチェックサム付き暗号化パケットに含まれる暗号化パケットのメッセージダイジェストを生成し、生成したメッセージダイジェストをチェックサム付き暗号化パケットに含まれるチェックサムデータと照合する。その照合が成功した場合、チェックサム検査モジュールはチェックサム付き暗号化パケットに含まれる暗号化パケットを復号化モジュールに引き渡す（Ｓ００９）。
【００４６】
復号化モジュールは受け取った暗号化パケットを復号化し暗号化されていないパケットを生成し、生成したパケットをパケットリアセンブルモジュールに引き渡す（Ｓ０１０）。
【００４７】
パケットリアセンブルモジュールは受け取ったパケットに含まれるフラグメントを取り出し、パケット番号に従いそれらを結合することでブロックを生成する。パケットリアセンブルモジュールは生成したブロックを順次記憶部１２１に記憶していくことで、転送対象のバルクデータを記憶部１２１に復元する（Ｓ０１１）。
【００４８】
データ転送システム１においては、以上述べたバルクデータの転送における帯域制御、すなわちデータ転送レートを望ましい値に動的に調整するための仕組みが設けられている。
【００４９】
なお、本願においてデータ転送レートとは、所定期間内において、送信側データ通信装置１１が受信側データ通信装置１２に対し送信するデータの単位時間あたりのデータ量を意味し、例えば５Ｍｂｐｓ（１秒間に５メガビットのデータを送信するデータ転送レート）のように表現される値である。
【００５０】
図３は、データ転送システム１において帯域制御のためのデータを収集する処理を説明するための図である。
【００５１】
まず、送信側データ通信装置１１の送信部１１２は、バルクデータの送信に伴い、受信側データ通信装置１２に対し送信したパケットの番号をレポート生成モジュールに通知する（Ｓ１０１）。
【００５２】
レポート生成モジュールは、送信部１１２から受けた通知に基づき、どのタイミングでどの番号のパケットが受信側データ通信装置１２に対し送信されたかを示すレポートデータを生成し、コマンド送受信モジュールに引き渡す（Ｓ１０２）。
【００５３】
コマンド送受信モジュールは、受けとったレポートデータを受信側データ通信装置１２に送信し、受信側データ通信装置１２のコマンド送受信モジュールがそのレポートデータを受信する（Ｓ１０３）。なお、送信側データ通信装置１１のコマンド送受信モジュールと受信側データ通信装置１２のコマンド送受信モジュールは、実際には送信側データ通信装置１１の送信部１１２および受信部１１３と、受信側データ通信装置１２の受信部１２２および送信部１２３とを介してレポートデータの送受信を行う。
【００５４】
受信側データ通信装置１２のコマンド送受信モジュールは、受信したレポートデータをパケットリアセンブルモジュールとレート決定モジュールに引き渡す（Ｓ１０４、Ｓ１０５）。
【００５５】
パケットリアセンブルモジュールは、送信側データ通信装置１１から送信されたレポートデータにより、送信側データ通信装置１１から送信されたはずのパケットの番号をその送信タイミングとともに取得し、復号化モジュールから受け取ったパケットの番号と照合することで、送信側データ通信装置１１から送信されたパケットのうち所定時間内に受信側データ通信装置１２に到達していないパケット、すなわちロストパケットを特定する。パケットリアセンブルモジュールは特定したロストパケットの番号をレポート生成モジュールに引き渡す（Ｓ１０６）。
【００５６】
レポート生成モジュールは、受け取った番号のロストパケットの再送指示を含むレポートデータを生成し、コマンド送受信モジュールに引き渡す（Ｓ１０７）。
【００５７】
受信側データ通信装置１２のコマンド送受信モジュールは、ロストパケットの再送指示を含むレポートデータを送信側データ通信装置１１に対し送信し、そのレポートデータは送信側データ通信装置１１のコマンド送受信モジュールにより受信される（Ｓ１０８）。
【００５８】
送信側データ通信装置１１のコマンド送受信モジュールは、受信したレポートデータを送信部１１２に引き渡す（Ｓ１０９）。送信部１１２は、受け取ったレポートデータに示されるロストパケットをキャッシュから読み出し、受信側データ通信装置１２に対し再送信する。
【００５９】
また、パケットリアセンブルモジュールは、ロストパケットの番号をレート決定モジュールに通知する（Ｓ１１０）。
【００６０】
上記の処理と平行して、受信側データ通信装置１２のプローブ生成モジュールは、ＲＴＴの測定用のデータであるプローブデータを生成し、コマンド送受信モジュールに引き渡す（Ｓ１１１）。なお、プローブデータは実データを含まない。
【００６１】
受信側データ通信装置１２のコマンド送受信モジュールは、プローブデータに送信タイミングを示すタイムスタンプを付して送信側データ通信装置１１に送信する（Ｓ１１２）。
【００６２】
送信側データ通信装置１１のコマンド送受信モジュールは、受信側データ通信装置１２から送信されてきたプローブデータを受信すると、速やかにそのプローブデータをＡｃｋとして受信側データ通信装置１２に送り返す（Ｓ１１３）。
【００６３】
受信側データ通信装置１２のコマンド送受信モジュールは、プローブデータのＡｃｋを受信すると、受信タイミングを示すタイムスタンプを付してレート決定モジュールに引き渡す（Ｓ１１４）。
【００６４】
上記の処理に伴い、受信側データ通信装置１２のレート決定モジュールは、以下のデータを逐次取得する。
（１）送信側データ通信装置１１から受信側データ通信装置１２に送信されたパケットに関する送信タイミングおよび番号を示すデータ（Ｓ１０５においてコマンド送受信モジュールから取得）。
（２）ロストパケットの番号（Ｓ１１０においてパケットリアセンブルモジュールから取得）。
（３）送受信タイミングの付されたプローブデータのＡｃｋ（Ｓ１１４においてコマンド送受しモジュールから取得）。
【００６５】
レート決定モジュールは、上記（１）〜（３）のデータを用いて、将来のデータ転送レートを増加させるべきか、それとも減少させるべきか、を決定するモジュールである。
【００６６】
そのために、レート決定モジュールはまず上記のデータを用いて、過去の所定期間の各々に関し、以下のデータを生成する。
（ａ）データ転送レート。上記（１）のデータから算出。
（ｂ）データ損失率。所定期間内に送信されたはずのパケットの数に対するロストパケットの数の比率。上記（１）および（２）のデータから算出。
（ｃ）ＲＴＴ。上記（３）のデータから算出。
【００６７】
なお、以下の説明において、以下のデータの生成は５秒間毎に行われるものとする。すなわち、過去の所定期間とは過去の５秒毎に区切られた期間を意味するものとする。
【００６８】
また、以下、表記の簡略化のため、必要に応じて、データ転送レートを「Ｒ」、データ損失率を「Ｌ」で示す。ＲＴＴは後述の基準ＲＴＴと区別するために、「実測ＲＴＴ」と呼ぶ。さらに、過去の異なる所定期間に関して算出されたＲ、Ｌおよび実測ＲＴＴを各々区別する必要がある場合、それらに下付番号を付す。例えば、Ｒｎ、Ｌｎおよび実測ＲＴＴｎ（ただし、ｎは任意の整数）のように示す。その際、ｎが小さい程、時間的に古いデータであり、ｎが大きい程、時間的に新しいデータを示すものとする。
【００６９】
図４乃至図７は、５秒毎に生成されるＲ、Ｌおよび実測ＲＴＴに基づき、レート決定モジュールがデータ転送レートの増減を決定する処理の流れを示した図である。
【００７０】
レート決定モジュールの処理は、大きく以下の４つのモードに区分される。
（ａ）初期モード
（ｂ）基準ＲＴＴ増加モード
（ｃ）基準ＲＴＴ減少モード
（ｄ）基準ＲＴＴ増減探索モード
【００７１】
図４、図５、図６および図７は、各々その順で、上記の各モードに対応している。
【００７２】
バルクデータ転送の開始に伴い、レート決定モジュールはまず、初期モードにおいて基準ＲＴＴを設定する（Ｓ２０１）。基準ＲＴＴとは、実測ＲＴＴが比較の対象とする閾値としてのＲＴＴである。
【００７３】
受信側データ通信装置１２は過去に送信側データ通信装置１１との間でバルクデータ転送を行ったことがある場合、最後に用いた基準ＲＴＴを送信側データ通信装置１１の識別データ（例えば、ＩＰアドレス、ホスト名など）に対応付けて記憶部１２１に記憶している。レート決定モジュールはそのように記憶している基準ＲＴＴを、Ｓ２０１における基準ＲＴＴとして設定する。
【００７４】
送信側データ通信装置１１と受信側データ通信装置１２が過去にバルクデータ転送を行ったことがない場合や、受信側データ通信装置１２のＩＰアドレス、ホスト名が変更された等の理由で送信側データ通信装置１１が受信側データ通信装置１２に対応する過去の基準ＲＴＴを特定できないような場合は、レート決定モジュールは所定のデフォルト値（例えば、２０ｍｓ）をＳ２０１における基準ＲＴＴとして設定する。
【００７５】
その後、送信側データ通信装置１１と受信側データ通信装置１２との間で５秒間のデータ転送が行われ、最初の所定期間に関するＲ１、Ｌ１および実測ＲＴＴ１が算出される。
【００７６】
レート決定モジュールは、Ｌ１が予め設定されたデータ損失率である０．０２（２％）以上であるか否かの判定を行う（Ｓ２０２）。
【００７７】
Ｓ２０２の判定においてＬ１が０．０２未満であると判定した場合（Ｓ２０２：Ｎｏ）、レート決定モジュールは基準ＲＴＴ増加モードに移行する。
【００７８】
基準ＲＴＴ増加モードは、ネットワークの輻輳が生じていないか軽度である可能性が高いという推定に基づき、基準ＲＴＴ（実測ＲＴＴの許容時間）を徐々に長くするモードである。基準ＲＴＴが長くなると、データ転送レートを増加した結果、実測ＲＴＴが長くなっても、その許容範囲内に収まることになる。その結果、レート決定モジュールが送信側データ通信装置１１に対し、データ転送レートの増加指示を出す確率が高まる。
【００７９】
基準ＲＴＴ増加モードにおいて、レート決定モジュールはまず、基準ＲＴＴを１０％引き上げる（Ｓ２０３）。
【００８０】
その後、直近の実測ＲＴＴを基準ＲＴＴと比較し、以下のいずれかの指示を示す増減指示データを含むレポートデータを生成し、コマンド送受信モジュールに引き渡す（Ｓ２０４）。
（ａ）実測ＲＴＴ＜基準ＲＴＴの場合、データ転送レートの増加を指示するデータ。
（ｂ）実測ＲＴＴ＝基準ＲＴＴの場合、データ転送レートの維持を指示するデータ。
（ｃ）実測ＲＴＴ＞基準ＲＴＴの場合、データ転送レートの減少を指示するデータ。
【００８１】
なお、増減指示データを含むレポートデータは、受信側データ通信装置１２のコマンド送受信モジュールから送信側データ通信装置１１に送信される。以下、直近の実測ＲＴＴを基準ＲＴＴと比較し、その比較結果に応じた増減指示データを生成してコマンド送受信モジュールに引き渡す処理を、「データ転送レートの増減指示データの生成・送信」と呼ぶ。
【００８２】
続いて、レート決定モジュールは順次算出しているＲおよびＬを用いて、以下の算出式に従い、データ転送のパフォーマンスを示す指標である転送スコアＳを算出する。
Ｓ＝Ｒ×（１．０−（Ｌ＾０．１５））
【００８３】
図８は、上記の転送スコアＳがＲおよびＬの変化に伴いどのように変化するかを示したグラフである。図８（ａ）はＬを一定とした場合のＲとＳとの関係を示し、図８（ｂ）はＲを一定とした場合のＬとＳとの関係を示している。
【００８４】
図８（ａ）に示されるように、Ｌが一定の場合、ＳはＲに関し単調増加の関係を有する。すなわち、Ｌが一定の場合、Ｒが増加する程、転送スコアＳは高い値を取る。
【００８５】
また、図８（ｂ）に示されるように、Ｒが一定の場合、ＳはＬに関し単調減少の関係を有する。従って、Ｒが一定の場合、Ｌが増加する程、転送スコアＳは低い値を取る。
【００８６】
さらに、図８（ｂ）に示されるように、Ｌに関する偏微分（Ｒを一定とした場合のＬの一次微分）がＬに関し単調増加の関係を有する。つまり、Ｌが小さい範囲におけるＳの変化率（減少率）の絶対値が、Ｌが大きい範囲におけるＳの変化率（減少率）の絶対値よりも大きい。従って、Ｌが小さい範囲においてはＳがＬの変化に敏感に反応し、Ｌが大きい範囲においてはＳがＬの変化に鈍感に反応する。
【００８７】
上記のような特性を持つ転送スコアＳは、送信側データ通信装置１１と受信側データ通信装置１２がネットワーク上の近距離間でデータ転送を行うような場合（データ損失率が比較的低い状態）において、Ｒの変化よりもＬの変化により大きく左右される。近距離間のデータ転送においては、データ損失の発生はネットワークの輻輳を反映している可能性が高いため、データ損失の増減に敏感に反応する、というＳの特性はネットワークの輻輳の発生の可能性を示す指標の特性として適している。
【００８８】
また、転送スコアＳは、送信側データ通信装置１１と受信側データ通信装置１２がネットワーク上の遠距離間でデータ転送を行うような場合や無線データ通信網が介在しているような場合（データ損失率が比較的高い状態）において、Ｒの変化に比べＬの変化はさほど影響を受けない。遠距離間のデータ転送や無線データ通信網を介したデータ転送においては、データ損失の発生はネットワークの輻輳以外の要因の可能性を多く含むので、データ損失の増減にあまり敏感に反応しない、というＳの特性はやはり、ネットワークの輻輳の発生の可能性を示す指標の特性として適している。
【００８９】
以上が、転送スコアＳの説明である。図４に戻り、レート決定モジュールの処理フローの説明を続ける。
【００９０】
レート決定モジュールは、順次算出しているＲおよびＬのうち、直近の５秒間に関するＲｎおよびＬｎと、その１つ前の５秒間に関するＲｎ−１およびＬｎ−１を用いて、ＳｎおよびＳｎ−１を算出し、ＳｎがＳｎ−１以上（すなわち、Ｓが改善もしくは現状維持）であるか否かを判定する（Ｓ２０５）。
【００９１】
Ｓ２０５の判定において、ＳｎがＳｎ−１以上であると判定した場合（Ｓ２０５：Ｙｅｓ）、レート決定モジュールはＳ２０３に処理を戻し、上述した基準ＲＴＴ増加モードにおける処理（Ｓ２０３〜Ｓ２０５）を繰り返す。
【００９２】
一方、Ｓ２０５の判定において、ＳｎがＳｎ−１未満であると判定した場合（Ｓ２０５：Ｎｏ）、レート決定モジュールは直近のＳ２０３において引き上げた基準ＲＴＴを概ね元に戻すように、基準ＲＴＴを１０％引き下げた後（Ｓ２０６）、データ転送レートの増減指示データの生成・送信を行う（Ｓ２０７）。
【００９３】
その後、レート決定モジュールは基準ＲＴＴを連続して引き下げた回数をカウントするためのカウンタであるカウンタＤに１を代入すると同時に、基準ＲＴＴを連続して引き上げた回数をカウントするためのカウンタであるカウンタＵに０を代入した後（Ｓ２０８）、基準ＲＴＴ増減探索モードに移行する。
【００９４】
以上が基準ＲＴＴ増加モードにおけるレート決定モジュールの処理フローである。なお、基準ＲＴＴ増減探索モードにおけるレート決定モジュールの処理フローは、以下に述べる基準ＲＴＴ減少モードの説明の後に行う。
【００９５】
Ｓ２０２の判定においてＬ１が０．０２以上であると判定した場合（Ｓ２０２：Ｙｅｓ）、レート決定モジュールは基準ＲＴＴ減少モードに移行する。
【００９６】
基準ＲＴＴ減少モードは、ネットワークの輻輳が生じている可能性が高いという推定に基づき、基準ＲＴＴ（実測ＲＴＴの許容時間）を徐々に短くするモードである。基準ＲＴＴが短くなると、データ転送レートを減少しなければ実測ＲＴＴが容易にその許容範囲を超えてしまうことになる。その結果、レート決定モジュールが送信側データ通信装置１１に対し、データ転送レートの減少指示を出す確率が高まる。
【００９７】
基準ＲＴＴ減少モードにおいて、レート決定モジュールはまず、基準ＲＴＴを１０％引き下げる（Ｓ２０９）。
【００９８】
その後、データ転送レートの増減指示データの生成・送信を行う（Ｓ２１０）。
【００９９】
続いて、レート決定モジュールはＳｎおよびＳｎ−１を算出し、ＳｎがＳｎ−１以下（すなわち、Ｓが悪化もしくは現状維持）であるか否かを判定する（Ｓ２１１）。
【０１００】
Ｓ２１１の判定において、ＳｎがＳｎ−１以下であると判定した場合（Ｓ２１１：Ｙｅｓ）、レート決定モジュールはＳ２０９に処理を戻し、上述した基準ＲＴＴ減少モードにおける処理（Ｓ２０９〜Ｓ２１１）を繰り返す。
【０１０１】
一方、Ｓ２１１の判定において、ＳｎがＳｎ−１より大きいと判定した場合（Ｓ２１１：Ｎｏ）、レート決定モジュールは直近のＳ２０９において引き下げた基準ＲＴＴを概ね元に戻すように、基準ＲＴＴを１０％引き上げた後（Ｓ２１２）、レート決定モジュールはデータ転送レートの増減指示データの生成・送信を行う（Ｓ２１３）。
【０１０２】
その後、レート決定モジュールはカウンタＵに１を代入すると同時に、カウンタＤに０を代入した後（Ｓ２１４）、基準ＲＴＴ増減探索モードに移行する。
【０１０３】
以上が基準ＲＴＴ減少モードにおけるレート決定モジュールの処理フローである。なお、続いて、基準ＲＴＴ増減探索モードにおけるレート決定モジュールの処理フローを説明する。
【０１０４】
基準ＲＴＴ増減探索モードにおいて、レート決定モジュールは、まずＳｎがＳｎ−１より大きい（すなわち、Ｓが改善）か否かを判定する（Ｓ２１５）。
【０１０５】
Ｓ２１５の判定において、ＳｎがＳｎ−１より大きいと判定した場合（Ｓ２１５：Ｙｅｓ）、レート決定モジュールはカウンタＵが２であるか否かを判定する（Ｓ２１６）。この判定は、Ｓの改善が、基準ＲＴＴが２度続けて引き上げられた後の改善であるか否かを判定するための処理である。
【０１０６】
Ｓ２１６の判定において、カウンタＵが２でないと判定した場合（Ｓ２１６：Ｎｏ）、つまり基準ＲＴＴが連続して引き上げられてはいない場合、レート決定モジュールは基準ＲＴＴを５％引き上げた後（Ｓ２１７）、データ転送レートの増減指示データの生成・送信を行う（Ｓ２１８）。
【０１０７】
ここで注目すべき点は、基準ＲＴＴ増減探索モードにおいては、ネットワークの輻輳が生じている可能性と生じていない可能性が概ね均衡している状態であるため、基準ＲＴＴの引き上げおよび引き下げの幅を基準ＲＴＴ増加モードおよび基準ＲＴＴ減少モードと比べ小さくしている、という点である。その結果、基準ＲＴＴが乱高下する不都合が軽減される。
【０１０８】
Ｓ２１８の後、レート決定モジュールはカウンタＵに１を加算するとともに、カウンタＤに０を代入した後（Ｓ２１９）、その処理をＳ２１５に戻して基準ＲＴＴ増減探索モードにとどまる。
【０１０９】
一方、Ｓ２１６の判定において、カウンタＵが２であると判定した場合（Ｓ２１６：Ｙｅｓ）、つまり基準ＲＴＴが連続して引き上げられた後にＳが改善した場合、レート決定モジュールは基準ＲＴＴ増加モードに移行する。ネットワークに輻輳が生じていない可能性が高いと推定されるためである。
【０１１０】
図４（ｄ）の先頭に戻り、Ｓ２１５の判定において、ＳｎがＳｎ−１以下であると判定した場合（Ｓ２１５：Ｎｏ）、レート決定モジュールはカウンタＤが２であるか否かを判定する（Ｓ２２０）。この判定は、Ｓが改善しなかったことが、基準ＲＴＴが２度続けて引き下げられた後になお改善しなかったのか否かを判定するための処理である。
【０１１１】
Ｓ２２０の判定において、カウンタＤが２でないと判定した場合（Ｓ２２０：Ｎｏ）、つまり基準ＲＴＴが連続して引き下げられてはいない場合、レート決定モジュールは基準ＲＴＴを５％引き下げた後（Ｓ２２１）、データ転送レートの増減指示データの生成・送信を行う（Ｓ２２２）。
【０１１２】
なお、Ｓ２２２における基準ＲＴＴの引き下げの幅が基準ＲＴＴ減少モードと比べ小さい点は既に述べたとおりである。
【０１１３】
Ｓ２２２の後、レート決定モジュールはカウンタＤに１を加算するとともに、カウンタＵに０を代入した後（Ｓ２２３）、その処理をＳ２１５に戻して基準ＲＴＴ増減探索モードにとどまる。
【０１１４】
一方、Ｓ２２０の判定において、カウンタＤが２であると判定した場合（Ｓ２２０：Ｙｅｓ）、つまり基準ＲＴＴが連続して引き下げられた後になおＳが改善しなかった場合、レート決定モジュールは基準ＲＴＴ減少モードに移行する。ネットワークに輻輳が生じている可能性が高いと推定されるためである。
【０１１５】
以上が、レート決定モジュールにより行われる、データ転送レートの増減の決定を行うための処理の説明である。
【０１１６】
レート決定モジュールにより決定されたデータ転送レートの増減の指示は、上述したように、順次、増減指示データを含むレポートデータとして受信側データ通信装置１２から送信側データ通信装置１１に送信される。
【０１１７】
送信側データ通信装置１１は受信したレポートデータに含まれる増減指示データに従い、所定の規則（例えば、現在のデータ転送レートの１０％）で算出される増減幅でデータ転送レートを増減させる。その結果、全体として、ネットワークに輻輳が生じている可能性が高い状態において高い可能性でデータ転送レートが下げられ、ネットワークに輻輳が生じていない可能性が高い状態において高い可能性データ転送レートが上げられるように、データ転送における帯域制御が行われることになる。
【０１１８】
以上述べたように、データ転送システム１によれば、ネットワーク内の２ノード間でデータ転送が行われる際、それら２ノード間の地理的な距離や無線データ通信網の介在など輻輳に起因しないデータ損失率には鈍感に反応し、輻輳に起因するデータ損失率については敏感に反応する帯域制御が行われる。
【０１１９】
また、データ転送システム１における帯域制御においては、現時点のデータ転送レートも考慮されるため、例えばデータ損失率が多少上がっても、それ以上にデータ転送レートを高める効果が高いと思われる場合には、データ転送レートが上げられる。その結果、データ損失率のみに反応する帯域制御と比べ、より高いデータ転送のパフォーマンスが得られる。
【０１２０】
さらに、データ転送システム１においては、データ損失率およびデータ転送レートを直接、帯域制御の基準として用いるのではなく、基準ＲＴＴの増減を介して帯域制御を行う。そのため、実測ＲＴＴに間接的に反映されるネットワークの輻輳の状態が確率的に帯域制御におけるデータ転送レートの増減に反映されることになる。その結果、様々なネットワークの状態において実態と大きく乖離した帯域制御が行われる危険性が少ない。
【０１２１】
さらに、データ転送システム１においては、基準ＲＴＴの増減幅を基準ＲＴＴ増加モードおよび基準ＲＴＴ減少モードにおける場合よりも小さくした基準ＲＴＴ増減探索モードといった緩衝モードを設けることで、基準ＲＴＴ増加モードと基準ＲＴＴ減少モードとの間を頻繁に行き来する結果、データ転送レートが乱高下する、という不都合が生じにくい。
【０１２２】
［変形例］
上述した実施例は本発明の技術的思想の範囲内で様々に変形可能である。以下にそのような変形の例を示す。
【０１２３】
上述したデータ転送システム１においては、データ損失率Ｌおよびデータ転送レートＲに基づく基準ＲＴＴの変更および基準ＲＴＴと実測ＲＴＴとの比較によるデータ転送レートの増減の判定が全て受信側データ通信装置１２において実行されるものとしたが、例えばそれらの処理の全てもしくは一部が送信側データ通信装置１１において実行される構成が採用されてもよい。
【０１２４】
例えば、送信側データ通信装置１１がプローブデータを受信側データ通信装置１２に送信しそのＡｃｋを受信するように構成すれば、送信側データ通信装置１１が実測ＲＴＴの測定を行うことができる。また、現在のデータ転送レートＲはそもそも送信側データ通信装置１１において使用されているため、送信側データ通信装置１１にとって既知のデータである。さらに、受信側データ通信装置１２が算出したデータ損失率Ｌを送信側データ通信装置１１に送信するように構成すれば、送信側データ通信装置１１がデータ損失率Ｌを取得することができる。そのように構成した後、送信側データ通信装置１１に上述したレート決定モジュールを設ければ、送信側データ通信装置１１においてデータ転送レートの増減の判定を行うことができる。送信側データ通信装置１１はその判定結果に従い、データ転送レートの変更を行えばよい。
【０１２５】
また、受信側データ通信装置１２において基準ＲＴＴの決定までを行い、受信側データ通信装置１２が決定した基準ＲＴＴを順次、送信側データ通信装置１１に送信する構成が採用されてもよい。その場合、送信側データ通信装置１１はプローブデータを受信側データ通信装置１２に送信しそのＡｃｋを受信することで実測ＲＴＴを取得し、実測ＲＴＴと基準ＲＴＴとを比較することで、データ転送レートの増減を判定することができる。その場合も、送信側データ通信装置１１はその判定結果に従い、データ転送レートの変更を行うことになる。
【０１２６】
また、受信側データ通信装置１２が過去に使用した基準ＲＴＴを通信相手の送信側データ通信装置１１のホスト名等とともに記憶する代わりに、送信側データ通信装置１１がそれを記憶する構成が採用されてもよい。受信側データ通信装置１２において基準ＲＴＴの増減処理が行われる場合、受信側データ通信装置１２は送信側データ通信装置１１に記憶されている過去の基準ＲＴＴを送信側データ通信装置１１から受信するようにすればよい。
【０１２７】
また、上述したデータ転送システム１においては、送信側データ通信装置１１と受信側データ通信装置１２との間のデータ転送に要する時間を示すデータとして、それらの装置間の往復に要する時間であるＲＴＴが用いられるものとした。これに代えて、送信側データ通信装置１１から受信側データ通信装置１２、もしくは受信側データ通信装置１２から送信側データ通信装置１１への片道に要する時間であるＯＷＤ（One Way Delay）が用いられてもよい。なお、ＯＷＤの取得のためには、送信側データ通信装置１１と受信側データ通信装置１２が各々備える計時手段により計測される時刻を同期する仕組みが必要となるが、そのための既知のいずれの技術が本発明において採用されてもよい。
【０１２８】
上述した数値や処理フローの詳細は本発明を説明するための一具体例であって、本発明の技術的思想を限定することを意図するものではない。例えば、転送スコアＳの算出式に用いられている数値やその数式の構造は上述したものに限られない。また、基準ＲＴＴの増減幅やデータ転送レートの増減幅なども設計事項であり、実施に際してチューニングされるべきパラメータである。
【０１２９】
また、上述したデータ転送システム１においては、バルクデータ転送が行われるものとしたが、データ転送の対象となるデータのフォーマットやサイズなどは特に限定されない。従って、小サイズのデータやストリーミングデータなどを本発明にかかるデータ転送の方法に従って２ノード間で転送されてもよい。
【産業上の利用可能性】
【０１３０】
本発明にかかるデータ転送システムおよびその方法は、広くデータ通信を行うサービス業等において利用可能である。
【符号の説明】
【０１３１】
１…データ転送システム、１１…送信側データ通信装置、１２…受信側データ通信装置、２０…インターネット、１１１…記憶部、１１２…送信部、１１３…受信部、１１４…表示部、１１５…操作部、１１６…制御部、１２１…記憶部、１２２…受信部、１２３…送信部、１２４…表示部、１２５…操作部、１２６…制御部
【図１】
0005152940.tif 000002
【図２】
0005152940.tif 000003
【図３】
0005152940.tif 000004
【図４】
0005152940.tif 000005
【図５】
0005152940.tif 000006
【図６】
0005152940.tif 000007
【図７】
0005152940.tif 000008
【図８】
0005152940.tif 000009