JP5152940B2 - バルクデータを効率的に転送するためのデータ転送方法 - Google Patents

バルクデータを効率的に転送するためのデータ転送方法 Download PDF

Info

Publication number
JP5152940B2
JP5152940B2 JP2011174431A JP2011174431A JP5152940B2 JP 5152940 B2 JP5152940 B2 JP 5152940B2 JP 2011174431 A JP2011174431 A JP 2011174431A JP 2011174431 A JP2011174431 A JP 2011174431A JP 5152940 B2 JP5152940 B2 JP 5152940B2
Authority
JP
Japan
Prior art keywords
data
data transfer
communication device
data communication
rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011174431A
Other languages
English (en)
Other versions
JP2013038664A (ja
Inventor
建太郎 柳澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Skeed Co. Ltd.
Original Assignee
Skeed Co. Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Skeed Co. Ltd. filed Critical Skeed Co. Ltd.
Priority to JP2011174431A priority Critical patent/JP5152940B2/ja
Priority to US14/237,615 priority patent/US9590912B2/en
Priority to PCT/JP2012/066383 priority patent/WO2013021745A1/ja
Priority to EP12821845.0A priority patent/EP2753027B1/en
Publication of JP2013038664A publication Critical patent/JP2013038664A/ja
Application granted granted Critical
Publication of JP5152940B2 publication Critical patent/JP5152940B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワークを介したバルクデータ転送技術に関する。
互いにネットワークで接続された異なるデータ通信装置間で比較的大きなデータ量の一連のデータであるバルクデータを転送するためのプロトコルとして、FTP(File Transfer Protocol)が広く利用されている。
FTPはTCP(Transmission Control Protocol)と呼ばれるデータ転送の制御プロトコルに従ったバルクデータ転送用のプロトコルであるため、FTPに従ったバルクデータ転送においては、TCPに従った帯域制御が行われる。
TCPに従う場合、送信側のデータ通信装置(以下、「送信側データ通信装置」と呼ぶ)から転送対象のデータを分割して得られるパケットの送信が行われ、そのパケットが受信側のデータ通信装置(以下、「受信側データ通信装置」と呼ぶ)により受信されると、受信側データ通信装置がそのパケットの受信に成功したことを示す受信確認応答データ(以下、「Ack」と呼ぶ)を送信側データ通信装置に送信する。
送信側データ通信装置は、自機が送信したパケットに対するAckを所定時間内に受信できなかった場合、そのパケットを損失されたパケット(以下、「ロストパケット」と呼ぶ)と判断し、所定期間内に送信したパケット数に対するロストパケットの数であるパケット損失率を算出する。なお、パケットの送信タイミングとそのパケットに関するAckの受信タイミングとの差で示される時間(データの往復に要した時間)はRTT(Round Trip Time)と呼ばれる。
送信側データ通信装置は、上記のように算出したパケット損失率が所定の閾値を上回った場合、送信側データ通信装置と受信側データ通信装置との間のネットワーク経路上に輻輳が発生していると判断して、単位時間あたりに送信するデータ量であるデータ転送レート、すなわちデータの転送速度を大きく下げる。その後、緩やかにデータ転送レートを上げていく。このようなデータ転送レートの制御、すなわち帯域制御により、ネットワークの輻輳の深刻化が回避される。
ところで、パケットの損失はネットワークの輻輳に起因するもの以外に、例えば無線ネットワーク等におけるノイズ等に起因するものや、ネットワーク上の地理的距離が遠いためにAckが送信側データ通信装置に戻ってくるまでの時間が長すぎてロストパケットと判断される地理的距離に起因するものなどがある。
これらのネットワークの輻輳に起因しないパケットの損失は、データ転送レートを下げても解消しない。従って、主として輻輳に起因しないパケットの損失によりパケット損失率が上がっている場合はデータ転送レートを下げるメリットはない。しかし、TCPに従うFTPにおいては、そのような場合であってもデータ転送レートが下げられてしまい、無駄に利用されない帯域が生じることになる。
上記のようなFTPの持つ欠点を解消するための方法がいくつか提案されている。
例えば、特許文献1には、伝送誤りに起因するパケット損失率が閾値より高いとパケット長を短くし、遅延に起因するパケット損失率が閾値より高くかつRTTが閾値より長いとデータ転送レートを下げる、という制御を行うことで、伝送誤りに起因するパケット損失率の低下に適正に対応する仕組みが提案されている。
また、例えば特許文献2には、RTTが不安定な場合、RTTが減少傾向であればデータ転送レートを上げ、RTTが増加傾向であればデータ転送レートを下げ、パケット損失率が不安定な場合、パケット損失率が閾値以下であればデータ転送レートを上げ、パケット損失率が閾値以上であればデータ転送レートを下げる、という制御を行うことで、ネットワークの状態に変化が生じた場合にデータ転送レートを望ましい方向に調整する仕組みが提案されている。
また、例えば特許文献3には、ストリーミングデータ配信において、データ転送レートを上げた結果、エンコードレートが上がった場合はデータ転送レートをさらに上げ、エンコードレートが下がった場合はデータ転送レートを下げ、データ転送レートを下げた結果、エンコードレートが上がった場合はデータ転送レートをさらに下げ、エンコードレートが下がった場合はデータ転送レートを上げる、という制御を行うことで、常にできるだけ高いエンコードレートでデータ配信を行う仕組みが提案されている。
特開2001−160824号公報 特開2004−193991号公報 特開2009−207084号公報
特許文献1に提案されている仕組みによる場合、伝送誤りに起因するパケット損失には適正に対応可能であるが、地理的距離に起因するパケット損失には適正に対応できず、従って遠距離間のデータ転送において望ましいパフォーマンスが得られない場合がある。
また、特許文献2に提案されている仕組みによる場合、RTTやパケット損失率が安定している間は、データ転送レートが変更されないため、例えば全く輻輳がない状態でデータ転送レートが低く設定された場合などにそのまま安定化してしまい、望ましいパフォーマンスが得られない場合がある。
また、特許文献3に提案されている仕組みによる場合、ネットワークの輻輳の有無にかかわらずデータ転送レートが高く維持されることで、他の装置間のデータ転送に悪影響を与える場合がある。
上記の事情に鑑み、本発明は、ネットワークを介した異なるデータ通信装置間において、ネットワークの輻輳を助長することなく、常に高いパフォーマンスのデータ転送を可能とする手段を提供することを目的とする。
上記の課題を解決するため、本発明は、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合はデータ転送レートの増加を指示する指示データを、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合はデータ転送レートの減少を指示する指示データを、前記送信側データ通信装置に対し送信するステップと、
前記送信側データ通信装置が、前記指示データを送信するステップにおいて前記受信側データ通信装置から送信されてきた指示データにより示される指示に従い、前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを変更するステップと
を備えるデータ転送方法
を第1の実施態様として提案する。
また、本発明は、上記の第1の実施態様にかかるデータ転送方式の代替的な実施態様として、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記受信側データ通信装置が、過去の所定期間に関するデータ転送レートおよびデータ損失率を取得するステップと、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送所要時間を取得するステップと、
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記受信側データ通信装置が、前記送信側データ通信装置に対し前記基準データ転送所要時間を送信するステップと、
前記送信側データ通信装置が、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法
を第2の実施態様として提案する。
また、本発明は、上記の第1または第2の実施態様にかかるデータ転送方法の望ましい一態様として、
前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第1の所定の条件および前記第2の所定の条件は、各々、過去の第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第1の所定期間よりも後の第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
という構成を第3の実施態様として提案する。
また、本発明は、上記の第1および第2の実施態様にかかるデータ転送方式の代替的な実施態様として、
データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
前記送信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
前記送信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
を備えるデータ転送方法
を第4の実施態様として提案する。
また、本発明は、上記の第4の実施態様にかかるデータ転送方法の望ましい一態様として、
前記送信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
を備え、
前記第1の所定の条件および前記第2の所定の条件は、各々、過去の第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第1の所定期間よりも後の第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
という構成を第5の実施態様として提案する。
また、本発明は、上記の第3または第5の実施態様にかかるデータ転送方法の望ましい一態様として、
前記第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第1の変化の方向とし、前記第2の所定期間に関し前記算出するステップにおいて算出された指標から前記第2の所定期間よりも後の第3の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第2の変化の方向とする場合、
前記基準データ転送所要時間を増加させる所定の規則は、前記第1の変化の方向と前記第2の変化の方向とが逆方向である場合、前記第1の変化の方向と前記第2の変化の方向が同方向である場合と比較し、より小さい増加幅で前記基準データ転送所要時間を増加させる規則であり、
前記基準データ転送所要時間を減少させる所定の規則は、前記第1の変化の方向と前記第2の変化の方向とが逆方向である場合、前記第1の変化の方向と前記第2の変化の方向が同方向である場合と比較し、より小さい減少幅で前記基準データ転送所要時間を減少させる規則である
という構成を第6の実施態様として提案する。
また、本発明は、上記の第3、第5および第6のいずれかの実施態様にかかるデータ転送方法の望ましい一態様として、
前記指標は、データ転送レートに関し単調増加関数であり、データ損失率に関し単調減少関数であり、データ損失率に関する偏微分が単調増加関数である、データ転送レートとデータ損失率を変数とする関数の関数値である
という構成を第7の実施態様として提案する。
また、本発明は、上記の第1乃至第7のいずれかの実施態様にかかるデータ転送方法の望ましい一態様として、
前記受信側データ通信装置もしくは前記送信側データ通信装置が、過去のデータ転送における通信相手である前記送信側データ通信装置もしくは前記受信側データ通信装置を識別する識別データに対応付けて、当該過去のデータ転送において用いた前記基準データ転送所要時間の代表値を記憶するステップ
を備える
という構成を第8の実施態様として提案する。
本発明の第1、第2もしくは第4の実施態様にかかるデータ転送方法によれば、データ転送レートおよびデータ損失率に基づき基準データ転送所要時間が逐次調整され、調整された基準データ転送所要時間よりも実際のデータ転送所要時間が短ければデータ転送レートが上げられ、調整された基準データ転送所要時間よりも実際のデータ転送所要時間が長ければデータ転送レートが下げられる。このように、基準データ転送所要時間に対する実際のデータ転送所要時間の長短に基づくデータ転送レートの調整の仕組みに対し、過去のデータ転送レートとデータ損失率に基づく基準データ転送所要時間の調整、という間接的な調整の仕組みを加えることにより、実態から大きく乖離する危険を伴うことなく、データ転送レートを動的に上下させることで常により望ましいデータ転送レートへの調整が行われる。その結果、全体として、ネットワークの輻輳の深刻化を招くことなく、高いデータ転送のパフォーマンスを得ることができる。
本発明の第3もしくは第5の実施態様にかかるデータ転送方法によれば、データ転送レートおよびデータ損失率に基づき算出されるデータ転送のパフォーマンスを示す指標の変化の方向に応じて、基準データ転送所要時間が調整される。その結果、例えば基準データ転送所要時間を上げることでデータ転送のパフォーマンスが高まる傾向にある場合は、さらに基準データ転送所要時間を上げることで、未使用な帯域を利用するようにデータ転送レートを上げる機会が増え、より高いデータ転送のパフォーマンスを得ることができる。一方、基準データ転送所要時間を下げることでデータ転送のパフォーマンスが高まる傾向にある場合は、さらに基準データ転送所要時間を下げることで、輻輳を解消するようにデータ転送レートを下げる機会が増え、ネットワーク資源の公平利用の観点からより望ましいデータ転送の状態を得ることができる。
本発明の第6の実施態様にかかるデータ転送方法によれば、データ転送のパフォーマンスを示す指標が不安定化した場合に、データ転送のパフォーマンスを重視して基準データ転送所要時間を上げるべきか、ネットワーク資源の公平利用を重視して基準データ転送所要時間を下げるべきか、の判定が細やかに行われる。その結果、データ転送レートの乱高下が回避される。
本発明の第7の実施態様にかかるデータ転送方法によれば、データ損失率が低い領域では、データ損失率が高い領域と比べ、よりデータ損失率の変化を反映したデータ転送のパフォーマンスに基づき基準データ転送所要時間の調整が行われる。すなわち、一般的にデータ損失率が低い近距離間のデータ転送においてはデータ損失率の変化が輻輳の発生に影響されやすいため、データ損失率により感応的に基準データ転送所要時間の調整を行い、一般的にデータ損失率が高い遠距離間のデータ転送や無線データ通信網を介したデータ転送においてはデータ損失率の変化が輻輳以外の要因に起因する確率が高いため、データ損失率にあまり感応的でない基準データ転送所要時間の調整が行われる。その結果、全体として望ましいデータ転送のパフォーマンスが得られる。
本発明の第8の実施態様にかかるデータ転送方法によれば、特定の送信側データ通信装置と受信側データ通信装置との間のデータ転送において、過去に用いられた基準データ転送所要時間を将来の同じ送信側データ通信装置と受信側データ通信装置との間のデータ転送における基準データ転送所要時間の初期値として利用することが可能となる。その結果、データ転送の開始後、より迅速に望ましいデータ転送レートでのデータ転送が実現される。
図1は、本発明の一実施例にかかるデータ転送システムの構成を示したブロック図である。 図2は、本発明の一実施例にかかる送信側データ通信装置および受信側データ通信装置の機能構成とそれらの動作を説明するための図である。 図3は、本発明の一実施例にかかるデータ転送システムにおいて帯域制御のためのデータを収集する処理を説明するための図である。 図4は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ(初期モード)を示した図である。 図5は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ(基準RTT増加モード)を示した図である。 図6は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ(基準RTT減少モード)を示した図である。 図7は、本発明の一実施例にかかるレート決定モジュールがデータ転送レートの増減を決定する処理の流れ(基準RTT増減探索モード)を示した図である。 図8は、本発明の一実施例にかかるレート決定モジュールが算出する転送スコアSの特性を示したグラフである。
[実施例]
以下に、本発明の一実施例にかかるデータ転送システム1の構成および動作を説明する。
図1は、データ転送システム1の構成を示したブロック図である。データ転送システム1は、バルクデータの送信側のデータ通信装置である送信側データ通信装置11と、バルクデータの受信側のデータ通信装置である受信側データ通信装置12とを備えている。送信側データ通信装置11と受信側データ通信装置12はインターネット20を介して互いにデータ通信可能である。
送信側データ通信装置11は、主として以下の構成部を備えている。
記憶部111:送信側データ通信装置11の処理を指示するプログラムや受信側データ通信装置12から受信するデータ等を記憶する。
送信部112:転送対象のバルクデータのパケットや、過去に送信したバルクデータのパケットを通知するためのレポートデータ、受信側データ通信装置12から送信されてくるRTTの測定用のデータであるプローブデータのAck等を受信側データ通信装置12に対し送信する。
受信部113:受信側データ通信装置12から送信されてくるプローブデータや、ロストパケットの再送要求およびデータ転送レートの増減指示などを含むレポートデータ等を受信する。
表示部114:送信側データ通信装置11のユーザに対し、データ転送の進捗状況などを示す各種情報の表示を行う。
操作部115:送信側データ通信装置11のユーザの操作に応じて所定のデータを生成することによりユーザのデータ入力を受け付ける。
制御部116:送信側データ通信装置11の他の構成部を制御するとともに、各種の演算処理や判定処理を行う。
受信側データ通信装置12は、主として以下の構成部を備えている。
記憶部121:受信側データ通信装置12の処理を指示するプログラムや送信側データ通信装置11から受信するデータ等を記憶する。
受信部122:送信側データ通信装置11から送信されてくる転送対象のバルクデータのパケット、RTTの測定用のデータであるプローブデータのAck、過去に送信したバルクデータのパケットを通知するためのレポートデータ等を受信する。
送信部123:プローブデータや、ロストパケットの再送要求およびデータ転送レートの増減指示などを含むレポートデータ等を送信する。
表示部124:受信側データ通信装置12のユーザに対し、データ転送の進捗状況などを示す各種情報の表示を行う。
操作部125:受信側データ通信装置12のユーザの操作に応じて所定のデータを生成することによりユーザのデータ入力を受け付ける。
制御部126:受信側データ通信装置12の他の構成部を制御するとともに、各種の演算処理や判定処理を行う。
図2は、送信側データ通信装置11および受信側データ通信装置12の機能構成と、データ転送システム1においてバルクデータの転送が行われる際の送信側データ通信装置11および受信側データ通信装置12の動作を説明するための図である。
なお、以下に説明する送信側データ通信装置11の各モジュールは送信側データ通信装置11の制御部116が記憶部111に記憶されているプログラムに従った処理を行うことにより実現される機能構成部である。同様に、以下に説明する受信側データ通信装置12の各モジュールは受信側データ通信装置12の制御部126が記憶部121に記憶されているプログラムに従った処理を行うことにより実現される機能構成部である。
バルクデータが転送される手順は以下のとおりである。まず、送信側データ通信装置11のブロック読み出しモジュールが記憶部111に記憶されている転送対象のバルクデータのファイルを読み出し(S001)、複数のブロックに分割してパケットマッピングモジュールに引き渡す(S002)。
パケットマッピングモジュールは受け取ったブロックをさらにフラグメントに分割し、分割したフラグメントを含むUDP(User Datagram Protocol)に従ったパケットを生成し、帯域制御モジュールに引き渡す(S003)。なお、UDPはエラー制御の仕組みを持たず、TCPよりも制約の少ないデータ転送のためのプロトコルである。
帯域制御モジュールは、受け取ったパケットを後述する仕組みにより決定されるデータ転送レートで順次暗号化モジュールに引き渡す(S004)。
暗号化モジュールは、受け取ったパケットを所定の暗号化アルゴリズムに従い暗号化した暗号化パケットを生成する。なお、データ転送システム1においては、例えばDiffie-Hellman鍵共有およびAES(Advanced Encryption Standard)暗号化アルゴリズムが暗号化のアルゴリズムとして用いられる。暗号化モジュールは生成した暗号化パケットをチェックサム生成モジュールに引き渡す(S005)。
チェックサム生成モジュールは、受け取った暗号化パケットのメッセージダイジェストをチェックサムデータとして生成し、生成したチェックサムデータを暗号化パケットに付加したチェックサム付き暗号化パケットを生成する。なお、データ転送システム1においては、例えばSHA-1(Secure Hash Algorithm 1)アルゴリズムがチェックサムデータの生成のアルゴリズムとして用いられる。チェックサム生成モジュールは生成したチェックサム付き暗号化パケットを送信部112に引き渡す(S006)。
送信部112は受け取ったチェックサム付き暗号化パケットを受信側データ通信装置12に送信する(S007)。送信されたチェックサム付き暗号化パケットは受信側データ通信装置12の受信部122により受信される。
受信部122は、受信したチェックサム付き暗号化パケットをチェックサム検査モジュールに引き渡す(S008)。
チェックサム検査モジュールは受け取ったチェックサム付き暗号化パケットに含まれる暗号化パケットのメッセージダイジェストを生成し、生成したメッセージダイジェストをチェックサム付き暗号化パケットに含まれるチェックサムデータと照合する。その照合が成功した場合、チェックサム検査モジュールはチェックサム付き暗号化パケットに含まれる暗号化パケットを復号化モジュールに引き渡す(S009)。
復号化モジュールは受け取った暗号化パケットを復号化し暗号化されていないパケットを生成し、生成したパケットをパケットリアセンブルモジュールに引き渡す(S010)。
パケットリアセンブルモジュールは受け取ったパケットに含まれるフラグメントを取り出し、パケット番号に従いそれらを結合することでブロックを生成する。パケットリアセンブルモジュールは生成したブロックを順次記憶部121に記憶していくことで、転送対象のバルクデータを記憶部121に復元する(S011)。
データ転送システム1においては、以上述べたバルクデータの転送における帯域制御、すなわちデータ転送レートを望ましい値に動的に調整するための仕組みが設けられている。
なお、本願においてデータ転送レートとは、所定期間内において、送信側データ通信装置11が受信側データ通信装置12に対し送信するデータの単位時間あたりのデータ量を意味し、例えば5Mbps(1秒間に5メガビットのデータを送信するデータ転送レート)のように表現される値である。
図3は、データ転送システム1において帯域制御のためのデータを収集する処理を説明するための図である。
まず、送信側データ通信装置11の送信部112は、バルクデータの送信に伴い、受信側データ通信装置12に対し送信したパケットの番号をレポート生成モジュールに通知する(S101)。
レポート生成モジュールは、送信部112から受けた通知に基づき、どのタイミングでどの番号のパケットが受信側データ通信装置12に対し送信されたかを示すレポートデータを生成し、コマンド送受信モジュールに引き渡す(S102)。
コマンド送受信モジュールは、受けとったレポートデータを受信側データ通信装置12に送信し、受信側データ通信装置12のコマンド送受信モジュールがそのレポートデータを受信する(S103)。なお、送信側データ通信装置11のコマンド送受信モジュールと受信側データ通信装置12のコマンド送受信モジュールは、実際には送信側データ通信装置11の送信部112および受信部113と、受信側データ通信装置12の受信部122および送信部123とを介してレポートデータの送受信を行う。
受信側データ通信装置12のコマンド送受信モジュールは、受信したレポートデータをパケットリアセンブルモジュールとレート決定モジュールに引き渡す(S104、S105)。
パケットリアセンブルモジュールは、送信側データ通信装置11から送信されたレポートデータにより、送信側データ通信装置11から送信されたはずのパケットの番号をその送信タイミングとともに取得し、復号化モジュールから受け取ったパケットの番号と照合することで、送信側データ通信装置11から送信されたパケットのうち所定時間内に受信側データ通信装置12に到達していないパケット、すなわちロストパケットを特定する。パケットリアセンブルモジュールは特定したロストパケットの番号をレポート生成モジュールに引き渡す(S106)。
レポート生成モジュールは、受け取った番号のロストパケットの再送指示を含むレポートデータを生成し、コマンド送受信モジュールに引き渡す(S107)。
受信側データ通信装置12のコマンド送受信モジュールは、ロストパケットの再送指示を含むレポートデータを送信側データ通信装置11に対し送信し、そのレポートデータは送信側データ通信装置11のコマンド送受信モジュールにより受信される(S108)。
送信側データ通信装置11のコマンド送受信モジュールは、受信したレポートデータを送信部112に引き渡す(S109)。送信部112は、受け取ったレポートデータに示されるロストパケットをキャッシュから読み出し、受信側データ通信装置12に対し再送信する。
また、パケットリアセンブルモジュールは、ロストパケットの番号をレート決定モジュールに通知する(S110)。
上記の処理と平行して、受信側データ通信装置12のプローブ生成モジュールは、RTTの測定用のデータであるプローブデータを生成し、コマンド送受信モジュールに引き渡す(S111)。なお、プローブデータは実データを含まない。
受信側データ通信装置12のコマンド送受信モジュールは、プローブデータに送信タイミングを示すタイムスタンプを付して送信側データ通信装置11に送信する(S112)。
送信側データ通信装置11のコマンド送受信モジュールは、受信側データ通信装置12から送信されてきたプローブデータを受信すると、速やかにそのプローブデータをAckとして受信側データ通信装置12に送り返す(S113)。
受信側データ通信装置12のコマンド送受信モジュールは、プローブデータのAckを受信すると、受信タイミングを示すタイムスタンプを付してレート決定モジュールに引き渡す(S114)。
上記の処理に伴い、受信側データ通信装置12のレート決定モジュールは、以下のデータを逐次取得する。
(1)送信側データ通信装置11から受信側データ通信装置12に送信されたパケットに関する送信タイミングおよび番号を示すデータ(S105においてコマンド送受信モジュールから取得)。
(2)ロストパケットの番号(S110においてパケットリアセンブルモジュールから取得)。
(3)送受信タイミングの付されたプローブデータのAck(S114においてコマンド送受しモジュールから取得)。
レート決定モジュールは、上記(1)〜(3)のデータを用いて、将来のデータ転送レートを増加させるべきか、それとも減少させるべきか、を決定するモジュールである。
そのために、レート決定モジュールはまず上記のデータを用いて、過去の所定期間の各々に関し、以下のデータを生成する。
(a)データ転送レート。上記(1)のデータから算出。
(b)データ損失率。所定期間内に送信されたはずのパケットの数に対するロストパケットの数の比率。上記(1)および(2)のデータから算出。
(c)RTT。上記(3)のデータから算出。
なお、以下の説明において、以下のデータの生成は5秒間毎に行われるものとする。すなわち、過去の所定期間とは過去の5秒毎に区切られた期間を意味するものとする。
また、以下、表記の簡略化のため、必要に応じて、データ転送レートを「R」、データ損失率を「L」で示す。RTTは後述の基準RTTと区別するために、「実測RTT」と呼ぶ。さらに、過去の異なる所定期間に関して算出されたR、Lおよび実測RTTを各々区別する必要がある場合、それらに下付番号を付す。例えば、R、Lおよび実測RTT(ただし、nは任意の整数)のように示す。その際、nが小さい程、時間的に古いデータであり、nが大きい程、時間的に新しいデータを示すものとする。
図4乃至図7は、5秒毎に生成されるR、Lおよび実測RTTに基づき、レート決定モジュールがデータ転送レートの増減を決定する処理の流れを示した図である。
レート決定モジュールの処理は、大きく以下の4つのモードに区分される。
(a)初期モード
(b)基準RTT増加モード
(c)基準RTT減少モード
(d)基準RTT増減探索モード
図4、図5、図6および図7は、各々その順で、上記の各モードに対応している。
バルクデータ転送の開始に伴い、レート決定モジュールはまず、初期モードにおいて基準RTTを設定する(S201)。基準RTTとは、実測RTTが比較の対象とする閾値としてのRTTである。
受信側データ通信装置12は過去に送信側データ通信装置11との間でバルクデータ転送を行ったことがある場合、最後に用いた基準RTTを送信側データ通信装置11の識別データ(例えば、IPアドレス、ホスト名など)に対応付けて記憶部121に記憶している。レート決定モジュールはそのように記憶している基準RTTを、S201における基準RTTとして設定する。
送信側データ通信装置11と受信側データ通信装置12が過去にバルクデータ転送を行ったことがない場合や、受信側データ通信装置12のIPアドレス、ホスト名が変更された等の理由で送信側データ通信装置11が受信側データ通信装置12に対応する過去の基準RTTを特定できないような場合は、レート決定モジュールは所定のデフォルト値(例えば、20ms)をS201における基準RTTとして設定する。
その後、送信側データ通信装置11と受信側データ通信装置12との間で5秒間のデータ転送が行われ、最初の所定期間に関するR、Lおよび実測RTTが算出される。
レート決定モジュールは、Lが予め設定されたデータ損失率である0.02(2%)以上であるか否かの判定を行う(S202)。
S202の判定においてLが0.02未満であると判定した場合(S202:No)、レート決定モジュールは基準RTT増加モードに移行する。
基準RTT増加モードは、ネットワークの輻輳が生じていないか軽度である可能性が高いという推定に基づき、基準RTT(実測RTTの許容時間)を徐々に長くするモードである。基準RTTが長くなると、データ転送レートを増加した結果、実測RTTが長くなっても、その許容範囲内に収まることになる。その結果、レート決定モジュールが送信側データ通信装置11に対し、データ転送レートの増加指示を出す確率が高まる。
基準RTT増加モードにおいて、レート決定モジュールはまず、基準RTTを10%引き上げる(S203)。
その後、直近の実測RTTを基準RTTと比較し、以下のいずれかの指示を示す増減指示データを含むレポートデータを生成し、コマンド送受信モジュールに引き渡す(S204)。
(a)実測RTT<基準RTTの場合、データ転送レートの増加を指示するデータ。
(b)実測RTT=基準RTTの場合、データ転送レートの維持を指示するデータ。
(c)実測RTT>基準RTTの場合、データ転送レートの減少を指示するデータ。
なお、増減指示データを含むレポートデータは、受信側データ通信装置12のコマンド送受信モジュールから送信側データ通信装置11に送信される。以下、直近の実測RTTを基準RTTと比較し、その比較結果に応じた増減指示データを生成してコマンド送受信モジュールに引き渡す処理を、「データ転送レートの増減指示データの生成・送信」と呼ぶ。
続いて、レート決定モジュールは順次算出しているRおよびLを用いて、以下の算出式に従い、データ転送のパフォーマンスを示す指標である転送スコアSを算出する。
S=R×(1.0−(L^0.15))
図8は、上記の転送スコアSがRおよびLの変化に伴いどのように変化するかを示したグラフである。図8(a)はLを一定とした場合のRとSとの関係を示し、図8(b)はRを一定とした場合のLとSとの関係を示している。
図8(a)に示されるように、Lが一定の場合、SはRに関し単調増加の関係を有する。すなわち、Lが一定の場合、Rが増加する程、転送スコアSは高い値を取る。
また、図8(b)に示されるように、Rが一定の場合、SはLに関し単調減少の関係を有する。従って、Rが一定の場合、Lが増加する程、転送スコアSは低い値を取る。
さらに、図8(b)に示されるように、Lに関する偏微分(Rを一定とした場合のLの一次微分)がLに関し単調増加の関係を有する。つまり、Lが小さい範囲におけるSの変化率(減少率)の絶対値が、Lが大きい範囲におけるSの変化率(減少率)の絶対値よりも大きい。従って、Lが小さい範囲においてはSがLの変化に敏感に反応し、Lが大きい範囲においてはSがLの変化に鈍感に反応する。
上記のような特性を持つ転送スコアSは、送信側データ通信装置11と受信側データ通信装置12がネットワーク上の近距離間でデータ転送を行うような場合(データ損失率が比較的低い状態)において、Rの変化よりもLの変化により大きく左右される。近距離間のデータ転送においては、データ損失の発生はネットワークの輻輳を反映している可能性が高いため、データ損失の増減に敏感に反応する、というSの特性はネットワークの輻輳の発生の可能性を示す指標の特性として適している。
また、転送スコアSは、送信側データ通信装置11と受信側データ通信装置12がネットワーク上の遠距離間でデータ転送を行うような場合や無線データ通信網が介在しているような場合(データ損失率が比較的高い状態)において、Rの変化に比べLの変化はさほど影響を受けない。遠距離間のデータ転送や無線データ通信網を介したデータ転送においては、データ損失の発生はネットワークの輻輳以外の要因の可能性を多く含むので、データ損失の増減にあまり敏感に反応しない、というSの特性はやはり、ネットワークの輻輳の発生の可能性を示す指標の特性として適している。
以上が、転送スコアSの説明である。図4に戻り、レート決定モジュールの処理フローの説明を続ける。
レート決定モジュールは、順次算出しているRおよびLのうち、直近の5秒間に関するRおよびLと、その1つ前の5秒間に関するRn−1およびLn−1を用いて、SおよびSn−1を算出し、SがSn−1以上(すなわち、Sが改善もしくは現状維持)であるか否かを判定する(S205)。
S205の判定において、SがSn−1以上であると判定した場合(S205:Yes)、レート決定モジュールはS203に処理を戻し、上述した基準RTT増加モードにおける処理(S203〜S205)を繰り返す。
一方、S205の判定において、SがSn−1未満であると判定した場合(S205:No)、レート決定モジュールは直近のS203において引き上げた基準RTTを概ね元に戻すように、基準RTTを10%引き下げた後(S206)、データ転送レートの増減指示データの生成・送信を行う(S207)。
その後、レート決定モジュールは基準RTTを連続して引き下げた回数をカウントするためのカウンタであるカウンタDに1を代入すると同時に、基準RTTを連続して引き上げた回数をカウントするためのカウンタであるカウンタUに0を代入した後(S208)、基準RTT増減探索モードに移行する。
以上が基準RTT増加モードにおけるレート決定モジュールの処理フローである。なお、基準RTT増減探索モードにおけるレート決定モジュールの処理フローは、以下に述べる基準RTT減少モードの説明の後に行う。
S202の判定においてLが0.02以上であると判定した場合(S202:Yes)、レート決定モジュールは基準RTT減少モードに移行する。
基準RTT減少モードは、ネットワークの輻輳が生じている可能性が高いという推定に基づき、基準RTT(実測RTTの許容時間)を徐々に短くするモードである。基準RTTが短くなると、データ転送レートを減少しなければ実測RTTが容易にその許容範囲を超えてしまうことになる。その結果、レート決定モジュールが送信側データ通信装置11に対し、データ転送レートの減少指示を出す確率が高まる。
基準RTT減少モードにおいて、レート決定モジュールはまず、基準RTTを10%引き下げる(S209)。
その後、データ転送レートの増減指示データの生成・送信を行う(S210)。
続いて、レート決定モジュールはSおよびSn−1を算出し、SがSn−1以下(すなわち、Sが悪化もしくは現状維持)であるか否かを判定する(S211)。
S211の判定において、SがSn−1以下であると判定した場合(S211:Yes)、レート決定モジュールはS209に処理を戻し、上述した基準RTT減少モードにおける処理(S209〜S211)を繰り返す。
一方、S211の判定において、SがSn−1より大きいと判定した場合(S211:No)、レート決定モジュールは直近のS209において引き下げた基準RTTを概ね元に戻すように、基準RTTを10%引き上げた後(S212)、レート決定モジュールはデータ転送レートの増減指示データの生成・送信を行う(S213)。
その後、レート決定モジュールはカウンタUに1を代入すると同時に、カウンタDに0を代入した後(S214)、基準RTT増減探索モードに移行する。
以上が基準RTT減少モードにおけるレート決定モジュールの処理フローである。なお、続いて、基準RTT増減探索モードにおけるレート決定モジュールの処理フローを説明する。
基準RTT増減探索モードにおいて、レート決定モジュールは、まずSがSn−1より大きい(すなわち、Sが改善)か否かを判定する(S215)。
S215の判定において、SがSn−1より大きいと判定した場合(S215:Yes)、レート決定モジュールはカウンタUが2であるか否かを判定する(S216)。この判定は、Sの改善が、基準RTTが2度続けて引き上げられた後の改善であるか否かを判定するための処理である。
S216の判定において、カウンタUが2でないと判定した場合(S216:No)、つまり基準RTTが連続して引き上げられてはいない場合、レート決定モジュールは基準RTTを5%引き上げた後(S217)、データ転送レートの増減指示データの生成・送信を行う(S218)。
ここで注目すべき点は、基準RTT増減探索モードにおいては、ネットワークの輻輳が生じている可能性と生じていない可能性が概ね均衡している状態であるため、基準RTTの引き上げおよび引き下げの幅を基準RTT増加モードおよび基準RTT減少モードと比べ小さくしている、という点である。その結果、基準RTTが乱高下する不都合が軽減される。
S218の後、レート決定モジュールはカウンタUに1を加算するとともに、カウンタDに0を代入した後(S219)、その処理をS215に戻して基準RTT増減探索モードにとどまる。
一方、S216の判定において、カウンタUが2であると判定した場合(S216:Yes)、つまり基準RTTが連続して引き上げられた後にSが改善した場合、レート決定モジュールは基準RTT増加モードに移行する。ネットワークに輻輳が生じていない可能性が高いと推定されるためである。
図4(d)の先頭に戻り、S215の判定において、SがSn−1以下であると判定した場合(S215:No)、レート決定モジュールはカウンタDが2であるか否かを判定する(S220)。この判定は、Sが改善しなかったことが、基準RTTが2度続けて引き下げられた後になお改善しなかったのか否かを判定するための処理である。
S220の判定において、カウンタDが2でないと判定した場合(S220:No)、つまり基準RTTが連続して引き下げられてはいない場合、レート決定モジュールは基準RTTを5%引き下げた後(S221)、データ転送レートの増減指示データの生成・送信を行う(S222)。
なお、S222における基準RTTの引き下げの幅が基準RTT減少モードと比べ小さい点は既に述べたとおりである。
S222の後、レート決定モジュールはカウンタDに1を加算するとともに、カウンタUに0を代入した後(S223)、その処理をS215に戻して基準RTT増減探索モードにとどまる。
一方、S220の判定において、カウンタDが2であると判定した場合(S220:Yes)、つまり基準RTTが連続して引き下げられた後になおSが改善しなかった場合、レート決定モジュールは基準RTT減少モードに移行する。ネットワークに輻輳が生じている可能性が高いと推定されるためである。
以上が、レート決定モジュールにより行われる、データ転送レートの増減の決定を行うための処理の説明である。
レート決定モジュールにより決定されたデータ転送レートの増減の指示は、上述したように、順次、増減指示データを含むレポートデータとして受信側データ通信装置12から送信側データ通信装置11に送信される。
送信側データ通信装置11は受信したレポートデータに含まれる増減指示データに従い、所定の規則(例えば、現在のデータ転送レートの10%)で算出される増減幅でデータ転送レートを増減させる。その結果、全体として、ネットワークに輻輳が生じている可能性が高い状態において高い可能性でデータ転送レートが下げられ、ネットワークに輻輳が生じていない可能性が高い状態において高い可能性データ転送レートが上げられるように、データ転送における帯域制御が行われることになる。
以上述べたように、データ転送システム1によれば、ネットワーク内の2ノード間でデータ転送が行われる際、それら2ノード間の地理的な距離や無線データ通信網の介在など輻輳に起因しないデータ損失率には鈍感に反応し、輻輳に起因するデータ損失率については敏感に反応する帯域制御が行われる。
また、データ転送システム1における帯域制御においては、現時点のデータ転送レートも考慮されるため、例えばデータ損失率が多少上がっても、それ以上にデータ転送レートを高める効果が高いと思われる場合には、データ転送レートが上げられる。その結果、データ損失率のみに反応する帯域制御と比べ、より高いデータ転送のパフォーマンスが得られる。
さらに、データ転送システム1においては、データ損失率およびデータ転送レートを直接、帯域制御の基準として用いるのではなく、基準RTTの増減を介して帯域制御を行う。そのため、実測RTTに間接的に反映されるネットワークの輻輳の状態が確率的に帯域制御におけるデータ転送レートの増減に反映されることになる。その結果、様々なネットワークの状態において実態と大きく乖離した帯域制御が行われる危険性が少ない。
さらに、データ転送システム1においては、基準RTTの増減幅を基準RTT増加モードおよび基準RTT減少モードにおける場合よりも小さくした基準RTT増減探索モードといった緩衝モードを設けることで、基準RTT増加モードと基準RTT減少モードとの間を頻繁に行き来する結果、データ転送レートが乱高下する、という不都合が生じにくい。
[変形例]
上述した実施例は本発明の技術的思想の範囲内で様々に変形可能である。以下にそのような変形の例を示す。
上述したデータ転送システム1においては、データ損失率Lおよびデータ転送レートRに基づく基準RTTの変更および基準RTTと実測RTTとの比較によるデータ転送レートの増減の判定が全て受信側データ通信装置12において実行されるものとしたが、例えばそれらの処理の全てもしくは一部が送信側データ通信装置11において実行される構成が採用されてもよい。
例えば、送信側データ通信装置11がプローブデータを受信側データ通信装置12に送信しそのAckを受信するように構成すれば、送信側データ通信装置11が実測RTTの測定を行うことができる。また、現在のデータ転送レートRはそもそも送信側データ通信装置11において使用されているため、送信側データ通信装置11にとって既知のデータである。さらに、受信側データ通信装置12が算出したデータ損失率Lを送信側データ通信装置11に送信するように構成すれば、送信側データ通信装置11がデータ損失率Lを取得することができる。そのように構成した後、送信側データ通信装置11に上述したレート決定モジュールを設ければ、送信側データ通信装置11においてデータ転送レートの増減の判定を行うことができる。送信側データ通信装置11はその判定結果に従い、データ転送レートの変更を行えばよい。
また、受信側データ通信装置12において基準RTTの決定までを行い、受信側データ通信装置12が決定した基準RTTを順次、送信側データ通信装置11に送信する構成が採用されてもよい。その場合、送信側データ通信装置11はプローブデータを受信側データ通信装置12に送信しそのAckを受信することで実測RTTを取得し、実測RTTと基準RTTとを比較することで、データ転送レートの増減を判定することができる。その場合も、送信側データ通信装置11はその判定結果に従い、データ転送レートの変更を行うことになる。
また、受信側データ通信装置12が過去に使用した基準RTTを通信相手の送信側データ通信装置11のホスト名等とともに記憶する代わりに、送信側データ通信装置11がそれを記憶する構成が採用されてもよい。受信側データ通信装置12において基準RTTの増減処理が行われる場合、受信側データ通信装置12は送信側データ通信装置11に記憶されている過去の基準RTTを送信側データ通信装置11から受信するようにすればよい。
また、上述したデータ転送システム1においては、送信側データ通信装置11と受信側データ通信装置12との間のデータ転送に要する時間を示すデータとして、それらの装置間の往復に要する時間であるRTTが用いられるものとした。これに代えて、送信側データ通信装置11から受信側データ通信装置12、もしくは受信側データ通信装置12から送信側データ通信装置11への片道に要する時間であるOWD(One Way Delay)が用いられてもよい。なお、OWDの取得のためには、送信側データ通信装置11と受信側データ通信装置12が各々備える計時手段により計測される時刻を同期する仕組みが必要となるが、そのための既知のいずれの技術が本発明において採用されてもよい。
上述した数値や処理フローの詳細は本発明を説明するための一具体例であって、本発明の技術的思想を限定することを意図するものではない。例えば、転送スコアSの算出式に用いられている数値やその数式の構造は上述したものに限られない。また、基準RTTの増減幅やデータ転送レートの増減幅なども設計事項であり、実施に際してチューニングされるべきパラメータである。
また、上述したデータ転送システム1においては、バルクデータ転送が行われるものとしたが、データ転送の対象となるデータのフォーマットやサイズなどは特に限定されない。従って、小サイズのデータやストリーミングデータなどを本発明にかかるデータ転送の方法に従って2ノード間で転送されてもよい。
本発明にかかるデータ転送システムおよびその方法は、広くデータ通信を行うサービス業等において利用可能である。
1…データ転送システム、11…送信側データ通信装置、12…受信側データ通信装置、20…インターネット、111…記憶部、112…送信部、113…受信部、114…表示部、115…操作部、116…制御部、121…記憶部、122…受信部、123…送信部、124…表示部、125…操作部、126…制御部

Claims (8)

  1. データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
    所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
    前記受信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
    前記受信側データ通信装置が、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
    前記受信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合はデータ転送レートの増加を指示する指示データを、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合はデータ転送レートの減少を指示する指示データを、前記送信側データ通信装置に対し送信するステップと、
    前記送信側データ通信装置が、前記指示データを送信するステップにおいて前記受信側データ通信装置から送信されてきた指示データにより示される指示に従い、前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを変更するステップと
    を備えるデータ転送方法。
  2. データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
    所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
    前記受信側データ通信装置が、過去の所定期間に関するデータ転送レートおよびデータ損失率を取得するステップと、
    前記送信側データ通信装置が、過去の所定期間に関するデータ転送所要時間を取得するステップと、
    前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
    前記受信側データ通信装置が、前記送信側データ通信装置に対し前記基準データ転送所要時間を送信するステップと、
    前記送信側データ通信装置が、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記データ転送所要時間を取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間を送信するステップにおいて前記受信側データ通信装置から送信されてきた前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
    を備えるデータ転送方法。
  3. 前記受信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
    を備え、
    前記第1の所定の条件および前記第2の所定の条件は、各々、過去の第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第1の所定期間よりも後の第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
    請求項1または2に記載のデータ転送方法。
  4. データの送信側のデータ通信装置である送信側データ通信装置からデータの受信側のデータ通信装置である受信側データ通信装置に対しデータを転送するデータ転送システムにおいて、
    所定期間内において、単位時間あたりに前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータ量をデータ転送レートとし、前記送信側データ通信装置から前記受信側データ通信装置に対し送信されたデータのデータ量に対する当該送信されたデータのうち前記受信側データ通信装置が受信に失敗したデータのデータ量の比率をデータ損失率とし、前記送信側データ通信装置と前記受信側データ通信装置との間の片道もしくは往復のデータの送受信に要する時間の代表値をデータ転送所要時間とする場合、
    前記送信側データ通信装置が、過去の所定期間に関するデータ転送レート、データ損失率、およびデータ転送所要時間を取得するステップと、
    前記送信側データ通信装置が、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第1の所定の条件を満たす場合はデータ転送所要時間の閾値である基準データ転送所要時間を所定の規則に従い増加させ、前記取得するステップにおいて過去の1以上の所定期間の各々に関し取得したデータ転送レートおよびデータ損失率が第2の所定の条件を満たす場合は前記基準データ転送所要時間を所定の規則に従い減少させるステップと、
    前記送信側データ通信装置が、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より短い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを増加し、前記取得するステップにおいて過去の所定期間に関し取得した前記データ転送所要時間が前記基準データ転送所要時間より長い場合は前記受信側データ通信装置に対するデータの送信におけるデータ転送レートを減少するステップと
    を備えるデータ転送方法。
  5. 前記送信側データ通信装置が、前記データ転送レートおよびデータ損失率を取得するステップにおいて過去の所定期間に関し取得したデータ転送レートおよびデータ損失率に基づき所定の算出式に従いデータ転送のパフォーマンスを示す指標を算出するステップ
    を備え、
    前記第1の所定の条件および前記第2の所定の条件は、各々、過去の第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第1の所定期間よりも後の第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向が所定の方向であると満たされる条件である
    請求項4に記載のデータ転送方法。
  6. 前記第1の所定期間に関し前記算出するステップにおいて算出された指標から前記第2の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第1の変化の方向とし、前記第2の所定期間に関し前記算出するステップにおいて算出された指標から前記第2の所定期間よりも後の第3の所定期間に関し前記算出するステップにおいて算出された指標への変化の方向を第2の変化の方向とする場合、
    前記基準データ転送所要時間を増加させる所定の規則は、前記第1の変化の方向と前記第2の変化の方向とが逆方向である場合、前記第1の変化の方向と前記第2の変化の方向が同方向である場合と比較し、より小さい増加幅で前記基準データ転送所要時間を増加させる規則であり、
    前記基準データ転送所要時間を減少させる所定の規則は、前記第1の変化の方向と前記第2の変化の方向とが逆方向である場合、前記第1の変化の方向と前記第2の変化の方向が同方向である場合と比較し、より小さい減少幅で前記基準データ転送所要時間を減少させる規則である
    請求項3または5に記載のデータ転送方法。
  7. 前記指標は、データ転送レートに関し単調増加関数であり、データ損失率に関し単調減少関数であり、データ損失率に関する偏微分が単調増加関数である、データ転送レートとデータ損失率を変数とする関数の関数値である
    請求項3、5および6のいずれかに記載のデータ転送方法。
  8. 前記受信側データ通信装置もしくは前記送信側データ通信装置が、過去のデータ転送における通信相手である前記送信側データ通信装置もしくは前記受信側データ通信装置を識別する識別データに対応付けて、当該過去のデータ転送において用いた前記基準データ転送所要時間の代表値を記憶するステップ
    を備える請求項1乃至7のいずれかに記載のデータ転送方法。
JP2011174431A 2011-08-10 2011-08-10 バルクデータを効率的に転送するためのデータ転送方法 Active JP5152940B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011174431A JP5152940B2 (ja) 2011-08-10 2011-08-10 バルクデータを効率的に転送するためのデータ転送方法
US14/237,615 US9590912B2 (en) 2011-08-10 2012-06-27 Data transfer method for efficiently transferring bulk data
PCT/JP2012/066383 WO2013021745A1 (ja) 2011-08-10 2012-06-27 バルクデータを効率的に転送するためのデータ転送方法
EP12821845.0A EP2753027B1 (en) 2011-08-10 2012-06-27 Data transfer method for efficiently transferring bulk data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011174431A JP5152940B2 (ja) 2011-08-10 2011-08-10 バルクデータを効率的に転送するためのデータ転送方法

Publications (2)

Publication Number Publication Date
JP2013038664A JP2013038664A (ja) 2013-02-21
JP5152940B2 true JP5152940B2 (ja) 2013-02-27

Family

ID=47668266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011174431A Active JP5152940B2 (ja) 2011-08-10 2011-08-10 バルクデータを効率的に転送するためのデータ転送方法

Country Status (4)

Country Link
US (1) US9590912B2 (ja)
EP (1) EP2753027B1 (ja)
JP (1) JP5152940B2 (ja)
WO (1) WO2013021745A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6398674B2 (ja) * 2014-12-08 2018-10-03 富士通株式会社 データ送信方法、データ送信プログラム、及び情報処理装置
US20160197837A1 (en) * 2015-01-05 2016-07-07 L&M Ip Method for Conveying Media to a Cloud Computing Environment
JP5996691B2 (ja) 2015-02-19 2016-09-21 株式会社シミュラティオ ファイル転送方法及びファイル転送プログラム
US10582508B2 (en) * 2015-03-31 2020-03-03 At&T Intellectual Property I, L.P. Facilitation of network resources
KR20210050752A (ko) * 2019-10-29 2021-05-10 삼성전자주식회사 전자장치 및 그 제어방법
US11811877B2 (en) * 2021-05-13 2023-11-07 Agora Lab, Inc. Universal transport framework for heterogeneous data streams

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4101993B2 (ja) * 1999-12-03 2008-06-18 三菱電機株式会社 有線無線混在網データ配信装置及び有線無線混在網データ配信方法
US6839321B1 (en) * 2000-07-18 2005-01-04 Alcatel Domain based congestion management
JP3699910B2 (ja) 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
JP4061643B2 (ja) 2002-12-11 2008-03-19 ソニー株式会社 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US7796517B2 (en) 2004-06-28 2010-09-14 Minghua Chen Optimization of streaming data throughput in unreliable networks
JP4697525B2 (ja) * 2005-04-20 2011-06-08 ソニー株式会社 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
JP2008099261A (ja) * 2006-09-12 2008-04-24 Yamaha Corp 通信装置およびプログラム
JP4834013B2 (ja) 2008-02-29 2011-12-07 日本放送協会 送信装置、送信プログラム、受信装置及び受信プログラム
US8775658B2 (en) * 2009-03-27 2014-07-08 Wyse Technology L.L.C. Apparatus and method for transparent communication architecture in remote communication

Also Published As

Publication number Publication date
US20140254365A1 (en) 2014-09-11
US9590912B2 (en) 2017-03-07
JP2013038664A (ja) 2013-02-21
WO2013021745A1 (ja) 2013-02-14
EP2753027A4 (en) 2015-05-06
EP2753027A1 (en) 2014-07-09
EP2753027B1 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
JP5152940B2 (ja) バルクデータを効率的に転送するためのデータ転送方法
US11558302B2 (en) Data transmission method and apparatus
US8214707B2 (en) Method and system for reliable data transfer
US8085781B2 (en) Bulk data transfer
EP2522109B1 (en) Method of estimating congestion
EP2693707B1 (en) Packet handling method, forwarding device and system
JP2006217234A (ja) 通信装置および通信方法
KR20100005721A (ko) 네트워크 장치를 위한 버퍼 제어 방법
KR100922472B1 (ko) 통신 단말, 통신 제어 방법 및 통신 제어 프로그램
JPWO2015174069A1 (ja) 通信システム、受信側装置、送信側装置、および、通信方法
KR20180010531A (ko) 통신 시스템에서 전송 제어 프로토콜의 전송 버퍼 제어 방법 및 장치
JP5308364B2 (ja) 送信装置、送信方法及びプログラム
US9876805B2 (en) Apparatus and method for transmitting and receiving messages
JP4447028B2 (ja) 通信制御方法、送信装置、およびコンピュータプログラム
JP6418169B2 (ja) 遅延最小値算出装置、情報送信装置、遅延最小値算出方法およびコンピュータプログラム
JP4372814B2 (ja) データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム
AU2011203511B2 (en) Bulk data transfer
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
WO2020246069A1 (ja) 通信システム、端末、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP6897769B2 (ja) データ送信装置、方法およびプログラム
JP5520139B2 (ja) 送信装置、受信装置及びプログラム
JP2010233192A (ja) パケット送受信システム
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
Mahmoodi et al. Optimal design of forward error correction for fairness maximisation among transmission control protocol flavours over wireless networks
JP4774411B2 (ja) エッジノードおよび帯域制御方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121130

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20171214

Year of fee payment: 5

R150 Certificate of patent or registration of utility model

Ref document number: 5152940

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250