(57)【要約】【課題】本発明は、通信路上における過度な冗長データの送信を防止することによって、転送速度の低下を防止することを目的とする。【解決手段】本発明に係るデータ転送システムは、複数のデータパケットをまとめて送信し、その後に複数の誤り訂正パケットの送信を開始する送信機と、送信機からのデータパケットを受信すると、受信できた誤り訂正パケットを用いて順次誤り訂正復号を行い、再送の必要なデータパケットを再送してもらい、受信の不要になった誤り訂正パケットの送信を送信機に停止させる受信機２０と、を備える。【選択図】図１
2016001773.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ通信システムであって、
前記送信機は、
前記複数のデータパケットを蓄積するデータパケットバッファと、
前記データパケットバッファに蓄積されている前記複数のデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、
前記データパケットバッファに蓄積されている前記複数のデータパケットのうちの送信予定のデータパケットを優先キューに蓄積し、前記誤り訂正符号部の生成した誤り訂正パケットを非優先キューに蓄積する送信キューと、
前記優先キューにデータパケットが蓄積されている場合にはデータパケットを送信し、前記優先キューが空の場合には前記非優先キューに蓄積されている誤り訂正パケットを送信する送信部と、
復号が不可能であるデータパケットの再送信要求信号を受信する送信側メッセージ交換部と、
前記送信側メッセージ交換部が前記再送信要求信号を受信すると、前記データパケットバッファに蓄積されているデータパケットのなかから再送信要求信号のあったデータパケットを前記優先キューに入力する制御部と、
を備え、
前記受信機は、
前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、
前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と、
前記誤り訂正復号部においての復号が不可能であるデータパケットについて、データパケットの再送信要求信号を前記送信機に送信する受信側メッセージ交換部と、
を備える、
データ転送システム。
【請求項２】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ通信システムであって、
前記送信機は、
データパケットを蓄積するデータパケットバッファと、
前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、
前記データパケットバッファに蓄積されているデータパケット及び前記誤り訂正符号部の生成した誤り訂正パケットを蓄積する送信キューと、
前記送信キューに蓄積されているデータパケットを送信した後に、前記送信キューに蓄積されている誤り訂正パケットの送信を開始する送信部と、
前記受信機からの誤り訂正パケット送信停止通知を受信する送信側メッセージ交換部と、
前記送信側メッセージ交換部が誤り訂正パケット送信停止通知を受信すると、前記送信部に誤り訂正パケットの送信を停止させる制御部と、
を備え、
前記受信機は、
前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、
前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と、
前記誤り訂正復号部において更なる誤り訂正パケットが必要か否かを判断し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する受信側メッセージ交換部と、
を備える、
データ転送システム。
【請求項３】
前記送信機の前記制御部は、伝送速度の異なる複数の計測用パケットを前記送信部に送信させ、
前記受信部は、
前記送信機から受信した複数の計測用パケットの損失率を計測する計測部と、
前記計測部の計測した損失率を比較し、前記受信部の受信した計測用パケットの伝送速度のうちの損失率の低い伝送速度を選択する伝送速度決定部と、
を備え、
前記受信側メッセージ交換部は、前記伝送速度決定部の選択した伝送速度を前記送信側メッセージ交換部へ通知し、
前記送信側メッセージ交換部は、前記受信側メッセージ交換部から通知された伝送速度を受信し、
前記送信部は、前記送信側メッセージ交換部の受信した伝送速度を用いて、データパケット及び誤り訂正パケットを送信する、
請求項１又は２に記載のデータ転送システム。
【請求項４】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機に転送するデータ転送システムの前記送信機であって、
データパケットを蓄積するデータパケットバッファと、
前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、
前記データパケットバッファに蓄積されているデータパケットのうちの送信予定のデータパケットを優先キューに蓄積し、前記誤り訂正符号部の生成した誤り訂正パケットを非優先キューに蓄積する送信キューと、
前記優先キューにデータパケットが蓄積されている場合にはデータパケットを送信し、前記優先キューが空の場合に前記非優先キューに蓄積されている誤り訂正パケットを送信する送信部と、
復号が不可能であるデータパケットの再送信要求信号を受信する送信側メッセージ交換部と、
前記送信側メッセージ交換部が前記再送信要求信号を受信すると、前記データパケットバッファに蓄積されているデータパケットの中から再送信要求信号のあったデータパケットを前記優先キューに入力する制御部と、
を備える送信機。
【請求項５】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムの前記送信機であって、
データパケットを蓄積するデータパケットバッファと、
前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、
前記データパケットバッファに蓄積されているデータパケット及び前記誤り訂正符号部の生成した誤り訂正パケットを蓄積する送信キューと、
前記受信機から通知された伝送速度を用いて、前記送信キューに蓄積されているデータパケットを送信した後に、前記送信キューに蓄積されている誤り訂正パケットの送信を開始する送信部と、
前記受信機からの誤り訂正パケット送信停止通知を受信する送信側メッセージ交換部と、
前記送信側メッセージ交換部が前記誤り訂正パケット送信停止通知を受信すると、前記送信部に誤り訂正パケットの送信を停止させる制御部と、
を備える送信機。
【請求項６】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機に転送するデータ転送システムの前記受信機であって、
前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、
前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と、
前記送信機に伝送速度を通知するとともに、前記誤り訂正復号部において更なる誤り訂正パケットが必要か否かを判定し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する受信側メッセージ交換部と、
を備える受信機。
【請求項７】
コンピュータに、請求項４又は５に記載の誤り訂正符号部、送信部、送信側メッセージ交換部及び制御部として機能させるための送信プログラム。
【請求項８】
コンピュータに、請求項６に記載の受信部、誤り訂正復号部及び受信側メッセージ交換部として機能させるための受信プログラム。
【請求項９】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムのデータ転送方法であって、
送信機が、データパケットをデータパケットバッファに蓄積し、前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成し、データパケットを優先キューに蓄積し、誤り訂正パケットを非優先キューに蓄積するパケット生成手順と、
送信機が、前記優先キューに蓄積されたデータパケットを前記受信機に送信し、前記優先キューが空になった後で前記非優先キューに蓄積されている誤り訂正パケットの前記受信機への送信を開始するデータ転送手順と、
前記受信機が、複数の誤り訂正パケットの受信完了前に、前記送信機から受信したデータパケットを誤り訂正パケットを用いて誤り訂正を行って復号し、復号が不可能であるデータパケットについての再送信要求を前記送信機に送信し、前記再送信要求信号を受信した前記送信機が、前記データパケットバッファに蓄積されているデータパケットのうちの再送信要求信号のあったデータパケットを前記優先キューに入力し、前記非優先キューに蓄積されている誤り訂正パケットよりも先に前記優先キューに蓄積されたデータパケットを受信機に送信するデータ再送手順と、
を順に有するデータ転送方法。
【請求項１０】
複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムのデータ転送方法であって、
前記送信機が、データパケット及び誤り訂正パケットを生成して送信キューに蓄積するパケット生成手順と、
送信機が、前記送信キューに蓄積されたデータパケットを前記受信機から通知された伝送速度を用いて前記受信機に送信し、当該データパケットの送信後に誤り訂正パケットの送信を開始するデータ転送手順と、
前記受信機が、複数の誤り訂正パケットの受信完了前に、前記送信機から受信したデータパケットを誤り訂正パケットを用いて誤り訂正を行って復号し、更なる誤り訂正パケットが必要か否かを判定し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する訂正パケット送信停止手順と、
を順に有するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットプロトコルをはじめとする消失通信路上でファイルデータ等のディジタル情報を高速に転送する技術に関する。
【背景技術】
【０００２】
本発明に関連するデータ転送方式では、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のような適応ウィンドウサイズ調整と再送制御を組み合わせた転送方式がとられる。ただし、この方式では、パケットロスが発生した場合に極端な転送速度低下が発生する。また、送受信機間の転送遅延が大きい場合に、パケットロスが発生しない場合でも転送速度が低下する。
【０００３】
こうした問題に対して、ＴＣＰのウィンドウサイズを実質的に伝送するファイルサイズに一致させることで転送速度を向上させる手段［特許文献１］が提案されているが、パケットロスに対しては選択的なパケットの再送制御にとどまっており、送信機が再送制御パケットを受信するまで送信が滞るため、転送速度の低下が発生する。
【０００４】
一方で、誤り訂正符号とＡＲＱ（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ―ｒｅｑｕｅｓｔ）を組み合わせた手段［特許文献２］が提案されており、ここでは（１）「データ本体に冗長データを付加する前方誤り訂正符号化機能」および（２）「観測されたネットワーク状態情報に基づいて、不達パケットの再送のみで達成される受信端末側の誤り訂正後ロス率が許容誤り訂正後ロス率を満たすように、データ本体に付加する冗長データの冗長度を動的に決定する冗長度決定機能」の方法によって冗長データであるパリティパケットの送信の抑制を行っている。ただし、ここでは通信路の状況によってパリティパケットの量を送信時以前に決定し処理を行う必要があり、ダイナミックに変化する通信路で用いる場合には、誤り訂正符号で回復できない状況や、逆に過度な冗長度のパリティパケットを送信してしまう状況が生じる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２４９８５７号公報
【特許文献２】特開２０１０−１１９１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、通信路上における過度な冗長データの送信を防止することによって、転送速度の低下を防止することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本願発明は、データパケットと誤り訂正パケットを完全に分離して扱うことで、通信路上でのパケットロスが変化した場合においても過度な誤り訂正パケットの送信を抑制する。
【０００８】
具体的には、本願発明のデータ転送システムは、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ通信システムであって、前記送信機は、前記複数のデータパケットを蓄積するデータパケットバッファと、前記データパケットバッファに蓄積されている前記複数のデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、前記データパケットバッファに蓄積されている前記複数のデータパケットのうちの送信予定のデータパケットを優先キューに蓄積し、前記誤り訂正符号部の生成した誤り訂正パケットを非優先キューに蓄積する送信キューと、前記優先キューにデータパケットが蓄積されている場合にはデータパケットを送信し、前記優先キューが空の場合には前記非優先キューに蓄積されている誤り訂正パケットを送信する送信部と、復号が不可能であるデータパケットの再送信要求信号を受信する送信側メッセージ交換部と、前記送信側メッセージ交換部が前記再送信要求信号を受信すると、前記データパケットバッファに蓄積されているデータパケットのなかから再送信要求信号のあったデータパケットを前記優先キューに入力する制御部と、を備え、前記受信機は、前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と前記誤り訂正復号部においての復号が不可能であるデータパケットについて、データパケットの再送信要求信号を前記送信機に送信する受信側メッセージ交換部と、を備える。
【０００９】
本願発明のデータ転送システムは、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ通信システムであって、前記送信機は、データパケットを蓄積するデータパケットバッファと、前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、前記データパケットバッファに蓄積されているデータパケット及び前記誤り訂正符号部の生成した誤り訂正パケットを蓄積する送信キューと、前記送信キューに蓄積されているデータパケットを送信した後に、前記送信キューに蓄積されている誤り訂正パケットの送信を開始する送信部と、前記受信機からの誤り訂正パケット送信停止通知を受信する送信側メッセージ交換部と、前記送信側メッセージ交換部が前記再送信要求信号を受信すると、前記送信部に誤り訂正パケットの送信を停止させる制御部と、を備え、前記受信機は、前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と、前記誤り訂正復号部において更なる誤り訂正パケットが必要か否かを判断し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する受信側メッセージ交換部と、を備える。
【００１０】
本願発明のデータ転送システムは、前記送信機の前記制御部は、伝送速度の異なる複数の計測用パケットを前記送信部に送信させ、前記受信部は、前記送信機から受信した複数の計測用パケットの損失率を計測する計測部と、前記計測部の計測した損失率を比較し、前記受信部の受信した計測用パケットの伝送速度のうちの損失率の低い伝送速度を選択する伝送速度決定部と、を備え、前記受信側メッセージ交換部は、前記伝送速度決定部の選択した伝送速度を前記送信部へ通知し、前記送信側メッセージ交換部は、前記受信側メッセージ交換部から通知された伝送速度を受信し、前記送信部は、前記送信側メッセージ交換部の受信した伝送速度を用いて、データパケット及び誤り訂正パケットを送信する。
【００１１】
本願発明の送信機は、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機に転送するデータ転送システムの前記送信機であって、データパケットを蓄積するデータパケットバッファと、前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、前記データパケットバッファに蓄積されているデータパケットのうちの送信予定のデータパケットを優先キューに蓄積し、前記誤り訂正符号部の生成した誤り訂正パケットを非優先キューに蓄積する送信キューと、前記優先キューにデータパケットが蓄積されている場合にはデータパケットを送信し、前記優先キューが空の場合に前記非優先キューに蓄積されている誤り訂正パケットを送信する送信部と、復号が不可能であるデータパケットの再送信要求信号を受信する送信側メッセージ交換部と、前記送信側メッセージ交換部が前記再送信要求信号を受信すると、前記データパケットバッファに蓄積されているデータパケットの中から再送信要求信号のあったデータパケットを前記優先キューに入力する制御部と、を備える。
【００１２】
本願発明の送信機は、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムの前記送信機であって、データパケットを蓄積するデータパケットバッファと、前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成する誤り訂正符号部と、前記データパケットバッファに蓄積されているデータパケット及び前記誤り訂正符号部の生成した誤り訂正パケットを蓄積する送信キューと、前記受信機から通知された伝送速度を用いて、前記送信キューに蓄積されているデータパケットを送信した後に、前記送信キューに蓄積されている誤り訂正パケットの送信を開始する送信部と、前記受信機からの誤り訂正パケット送信停止通知を受信する送信側メッセージ交換部と、前記送信側メッセージ交換部が前記誤り訂正パケット送信停止通知を受信すると、前記送信部に誤り訂正パケットの送信を停止させる制御部と、を備える。
【００１３】
本願発明の受信機は、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機に転送するデータ転送システムの前記受信機であって、前記送信機から送信されたデータパケット及び誤り訂正パケットを受信する受信部と、前記受信部の受信した誤り訂正パケットを用いて、前記受信部の受信したデータパケットの誤り訂正復号を行う誤り訂正復号部と、前記送信機に伝送速度を通知するとともに、前記誤り訂正復号部において更なる誤り訂正パケットが必要か否かを判定し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する受信側メッセージ交換部と、を備える。
【００１４】
本願発明の送信プログラムは、コンピュータに、誤り訂正符号部、送信部、送信側メッセージ交換部及び制御部として機能させるためのプログラムである。
【００１５】
本願発明の受信プログラムは、コンピュータに、受信部、誤り訂正復号部及び受信側メッセージ交換部として機能させるためのプログラムである。
【００１６】
本願発明のデータ転送方法は、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムのデータ転送方法であって、送信機が、データパケットをデータパケットバッファに蓄積し、前記データパケットバッファに蓄積されているデータパケットの誤り訂正パケットを生成し、データパケットを優先キューに蓄積し、誤り訂正パケットを非優先キューに蓄積するパケット生成手順と、送信機が、前記優先キューに蓄積されたデータパケットを前記受信機に送信し、前記優先キューが空になった後で前記非優先キューに蓄積されている誤り訂正パケットの前記受信機への送信を開始するデータ転送手順と、前記受信機が、複数の誤り訂正パケットの受信完了前に、前記送信機から受信したデータパケットを誤り訂正パケットを用いて誤り訂正を行って復号し、復号が不可能であるデータパケットについての再送信要求を前記送信機に送信し、前記再送信要求信号を受信した前記送信機が、前記データパケットバッファに蓄積されているデータパケットのうちの再送信要求信号のあったデータパケットを前記優先キューに入力し、前記非優先キューに蓄積されている誤り訂正パケットよりも先に前記優先キューに蓄積されたデータパケットを受信機に送信するデータ再送手順と、を順に有する。
【００１７】
本願発明のデータ転送方法は、複数のデータパケット及び当該複数のデータパケットの誤り訂正を行うための複数の誤り訂正パケットを送信機から受信機へ転送するデータ転送システムのデータ転送方法であって、前記送信機が、データパケット及び誤り訂正パケットを生成して送信キューに蓄積するパケット生成手順と、送信機が、前記送信キュー蓄積されたデータパケットを前記受信機から通知された伝送速度を用いて前記受信機に送信し、当該データパケットの送信後に誤り訂正パケットの送信を開始するデータ転送手順と、前記受信機が、複数の誤り訂正パケットの受信完了前に、前記送信機から受信したデータパケットを誤り訂正パケットを用いて誤り訂正を行って復号し、更なる誤り訂正パケットが必要か否かを判定し、更なる誤り訂正パケットが不要になった時に誤り訂正パケット送信停止を前記送信機に通知する訂正パケット送信停止手順と、を順に有する。
【００１８】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００１９】
本発明によれば、通信路上における過度な冗長データの送信を防止することによって、転送速度の低下を防止することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態１に係るデータ転送システムの一例の構成図を示す。
【図２】本発明の実施形態１に係る送信部１０のうち、誤り訂正及び符号部１２と送信部１１の内部構成の一例を示す。
【図３】本発明の実施形態１に係るデータ転送方法の一例の構成図を示す。
【図４】本発明の実施形態２に係るデータ転送システムの一例の構成図を示す。
【図５】本発明の実施形態２での送信機１０と受信機２０のデータの交換の処理過程の一例を示す。
【図６】本発明の実施形態３に係るデータ転送システムの一例の構成図を示す。
【図７】本発明の実施形態３での送信機１０と受信機２０のデータの交換の処理過程の一例を示す。
【図８】本発明の実施形態３での可用帯域推定の一例を示す。
【図９】本発明の実施形態３での可用帯域推定のうち、初期化処理の一例を示す。
【図１０】本発明の実施形態３での可用帯域推定のうち、ノンリニアモードでの処理の一例を示す。
【図１１】本発明の実施形態３での可用帯域推定のうち、リニアモードでの処理の一例を示す。
【図１２】本発明の実施形態３の可用帯域推定を行った結果の一例を示す。
【図１３】本発明の実施形態４に係るデータ転送システムの一例の構成図を示す。
【図１４】本発明の実施形態５に係るデータ転送システムの一例の構成図を示す。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２２】
（実施形態１）
本実施形態に係るデータ転送システムは、ソースデータＳＤからソースパケットＳＰ及びパリティパケットＰＰを生成し、ソースパケットＳＰを優先的に送信し、パリティパケットＰＰは非優先的に送信する。ここで、ソースデータＳＤはデータパケットとして機能し、パリティパケットＰＰは誤り訂正パケットとして機能する。
【００２３】
図１に実施形態１に係るデータ転送システムの模式図を示す。本実施形態に係るデータ転送システムは、送信機１０と、受信機２０と、データストレージ３０と、データストレージ４０とを備える。データストレージ３０は、送信の対象なるソースデータＳＤを格納する。
【００２４】
送信機１０は、データストレージ３０から読み出したデータを変換して、受信機２０へと送信する。具体的には、送信機１０は、誤り訂正符号部として機能する誤り訂正及び符号部１２と、送信側メッセージ交換部として機能するメッセージ交換部１３と、制御部１４と、データ読込部１５と、送信部１１とを備える。制御部１４は、送信機１０が有する全てのブロックを制御する。
【００２５】
送信機１０は、コンピュータを、誤り訂正及び符号部１２、メッセージ交換部１３、制御部１４、データ読込部１５及び送信部１１として機能させることで実現してもよい。この場合、送信機１０内のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、記憶部（不図示）に記憶されたコンピュータプログラムを実行することで、各構成を実現する。
【００２６】
受信機２０は、送信機１０から送信されたデータを受信して復号し、データストレージ４０に格納する。具体的には、受信機２０は、受信部２１と、誤り訂正復号部として機能する逐次誤り訂正復号部２２と、受信側メッセージ交換部として機能するメッセージ交換部２３と、制御部２４と、データ書出部２５とを備える。制御部２４は、受信機２０が有する全てのブロックを制御する。
【００２７】
受信機２０は、コンピュータを、受信部２１、逐次誤り訂正復号部２２、メッセージ交換部２３、制御部２４及びデータ書出部２５として機能させることで実現してもよい。この場合、受信機２０内のＣＰＵが、記憶部（不図示）に記憶されたコンピュータプログラムを実行することで、各構成を実現する。
【００２８】
図２に、誤り訂正及び符号部１２及び送信部１１の内部構成を示す。本実施形態では、誤り訂正及び符号部１２は、データパケットバッファとして機能するソースパケットバッファ１２１と、誤り訂正符号器１２２と、パリティパケットバッファ１２３と、インタリーバ１２４とを備える。送信部１１は、送信回路１６１と、送信キュー１６４とを備える。送信キュー１６４は、優先キュー１６２と、非優先キュー１６３とを備える。
【００２９】
図３を用いて、本実施形態に係るデータ送信方法について説明する。本実施形態に係るデータ送信方法は、パケット生成手順と、データ転送手順と、データ再送手順と、を順に有する。
【００３０】
パケット生成手順では、送信機１０が、ソースパケットＳＰをソースパケットバッファ１２１に蓄積し、ソースパケットバッファ１２１に蓄積されているソースパケットＳＰのパリティパケットＰＰを生成し、ソースパケットＳＰを優先キュー１６２に蓄積し、パリティパケットＰＰを非優先キュー１６３に蓄積する。例えば、データ読込部１５は、データストレージ３０からソースデータＳＤを読み出し、ソースデータＳＤをインターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）とＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて伝送可能であるようなサイズにパケット化して、ソースパケットＳＰを生成する（Ｓ１０１）。生成したソースパケットＳＰは、ソースパケットバッファ１２１に格納する。
【００３１】
ソースパケットバッファ１２１は、ソースパケットＳＰを格納し、誤り訂正及び符号部１２が備える誤り訂正符号器１２２と、送信部１１とにソースパケットＳＰを送る。送信部１１へ送信されたソースパケットＳＰは、ランダム置換されずに、送信キュー１６４である優先キュー１６２に追加される（Ｓ１０３）。
【００３２】
誤り訂正符号器１２２は、ソースパケットバッファ１２１に格納されているソースパケットＳＰに対して誤り訂正符号を施し、パリティパケットＰＰを生成する（Ｓ１０２）。ここで、本実施形態における誤り訂正符号は、例えば、ＬＤＰＣ−ＩＲＡ（ｌｏｗ  ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｃｏｄｅｓ−ｉｒｒｅｇｕｌａｒ  ｒｅｐｅａｔ  ａｎｄ  ａｃｃｕｍｕｌａｔｅ）符号又はＬＤＧＭ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｇｅｎｅｒａｔｏｒ  Ｍａｔｒｉｘ）符号などの組織符号である。パリティパケットバッファ１２３は、誤り訂正符号器１２２で生成したパリティパケットＰＰを格納し、インタリーバ１２４へパリティパケットＰＰを送信する。インタリーバ１２４は、パリティパケットバッファ１２３から受信したパリティパケットＰＰを、時間領域でランダムに順序置換して送信キュー１６４である非優先キュー１６３に追加する（Ｓ１０４）。
【００３３】
データ転送手順では、送信回路１６１が、優先キュー１６２に蓄積されたソースパケットＳＰを受信機２０に送信し、優先キュー１６２が空になった後で非優先キュー１６３に蓄積されているパリティパケットＰＰの受信機２０への送信を開始する。
【００３４】
ここで、送信回路１６１は、優先キュー１６２が空でない場合に、優先キュー１６２の先頭に登録されているソースパケットＰＰを送信する。送信回路１６１は、優先キュー１６２が空である場合に、非優先キュー１６３の先頭に登録されているパリティパケットＰＰを送信する。これにより、ソースパケットＳＰと再送要求のあったソースパケットＳＰが優先的に送信され、そうでない場合はパリティパケットＰＰが送信される。
【００３５】
このように、送信機１０は、優先キュー１６２と非優先キュー１６３を備える。優先キュー１６２には、ソースパケットＳＰをパケットの順序に従って先頭から順に格納しておき、その後に、受信機２０から選択的再送要求があったソースパケットＳＰを格納し、非優先キュー１６３には、パリティパケットＰＰをランダムな順序で格納しておく。送信部１１は、優先キュー１６２を優先的に選択し、優先キュー１６２が空になった場合は非優先キュー１６３を選択し、選択された送信キュー１６４に格納されているパケットを先頭から順に送信する。
【００３６】
受信部２１は、送信機１０から送信されたソースデータＳＤ及び誤り訂正パケットＰＰを受信する。逐次誤り訂正復号部２２は、受信部２１の受信したソースパケットＳＰ及びパリティパケットＰＰを取得し、送信機１０から送信され受信部２１で受信されたソースパケットＳＰの逐次誤り訂正及び復号を、受信部２１の受信したパリティパケットＰＰを用いて行う。ソースパケットＳＰの逐次誤り訂正及び復号では、パリティパケットＰＰを用いる。ここで、逐次誤り訂正復号部２２で受信したソースパケットＳＰの誤り訂正及び復号が出来ない場合、逐次誤り訂正復号部２２は、メッセージ交換部２３に、誤り訂正及び復号が出来なかったソースパケットＳＰの番号を通知する。その後、データ再送手順を行う。
【００３７】
一方、ソースパケットＳＰの誤り訂正及び復号ができた場合には、逐次誤り訂正復号部２２は、逐次誤り訂正及び復号したソースデータＳＤを、受信部２１を介してデータ書出部２５に渡す。データ書出部２５は、逐次誤り訂正復号部２２で誤り訂正及び復号がされたソースデータをデータ書出部２５を介してストレージ４０に書きだす。これにより、ソースデータＳＤの転送が完了する。
【００３８】
データ再送手順では、受信機２０が、複数のパリティパケットＰＰの受信完了前に、送信機１０から受信したソースパケットＳＰをパリティパケットＰＰを用いて誤り訂正を行って復号し、復号が不可能であるソースパケットＳＰについての再送信要求を送信機１０に送信する。例えば、メッセージ交換部２３は、逐次誤り訂正復号部２２から通知されたソースパケットＳＰの番号を用いて、送信機１０のメッセージ交換部１３との間で制御メッセージを用いた通信を行いソースパケットＳＰの選択的再送要求を行う。
【００３９】
メッセージ交換部１３は、選択的再送要求が含まれる制御メッセージを受信する。選択的再送要求には、選択的再送要求の対象となるパケット番号が含まれる。制御部１４は、メッセージ交換部１３が再送信要求信号を受信すると、後述するソースパケットバッファ１２１に蓄積されているソースデータＳＤのなかから再送信要求信号のあったソースパケットＳＰの出力指示をソースパケットバッファ１２１に出力する。ソースパケットバッファ１２１は、再送要求の対象となるパケット番号のソースパケットＳＰを優先キュー１６２に出力する。送信回路１６１は、非優先キュー１６３に蓄積されているパリティパケットＰＰよりも先に優先キュー１６２に蓄積されたソースパケットＳＰを受信機２０に送信する。
【００４０】
このように、データ再送手順では、ソースパケットＳＰの送信開始後に受信機２０から選択的再送要求があった場合には、該当ソースパケットＳＰを優先キュー１６２に追加する。そして、送信回路１６１は、優先キュー１６２にソースパケットＳＰが蓄積されると、非優先キュー１６３にパリティパケットＰＰが残っている場合であっても、優先キュー１６２に蓄積されている再送要求のあったソースパケットＳＰを優先的に送信する。
【００４１】
以上説明したように、本実施形態に係る発明は、受信機２０から選択的再送要求があったパケットをパリティパケットより優先的に伝送する。送信機１０から受信機２０までの通信路において伝送遅延が大きい場合には、送信機１０において受信機２０から送信される選択的再送要求のパケットの到着が遅れ、その分アイドル状態が生じる。本実施形態に係るデータ転送システムは、そのアイドル状態のときにパリティパケットＰＰを送信することで、受信機２０側でのソースパケットＳＰの回復成功率を高め、結果として転送速度を高めることが可能である。したがって、本実施形態に係る発明は、通信路の伝送遅延が大きい場合であっても、再送パケットの到着の遅延を最小限に抑えることができる。
【００４２】
（実施形態２）
本実施形態に係るデータ転送システムは、図１に示すように、送信機１０と、受信機２０と、データストレージ３０と、データストレージ４０とを備える。本実施形態に係るデータ転送システムは、誤り訂正符号と逐次復号による適応冗長化可能なデータ転送方式を用いる。
【００４３】
図４に、本実施形態に係る誤り訂正及び符号部１２及び送信部１１の内部構成を示す。メッセージ交換部１３は、受信機２０からの誤り訂正パケット送信停止通知を受信する。制御部１４は、メッセージ交換部１３が誤り訂正パケット送信停止通知を受信すると、送信部１１にパリティパケットＰＰ送信を停止させる。
【００４４】
転送の対象なる元のファイルをソースデータＳＤと呼ぶ。データ読込部１５で、ソースデータはインターネットプロトコル（ＩＰ）とＵＤＰを用いて伝送可能であるようなサイズにパケット化され、ソースパケットＳＰが生成される。このソースパケットＳＰに対して誤り訂正符号器１２２で誤り訂正符号を施し、パリティパケットＰＰが生成される。続いて、ソースパケットＳＰは置換されずに送信キュー１６４に追加されて、先頭パケットから送信回路１６１によって順次送信される。ソースパケットＳＰがすべて送信された後にパリティパケットＰＰはランダムに順序置換されて送信キュー１６４に追加され、送信回路１６１によって送信される。
【００４５】
本実施形態に係るデータ転送方法について説明する。本実施形態に係るデータ転送方法は、パケット生成手順と、データ転送手順と、訂正パケット送信停止手順と、を順に有する。
【００４６】
パケット生成手順では、実施形態１と同様に、ソースパケットＳＰ及びパリティパケットＰＰを生成する。このとき、すべてのソースパケットＳＰが送信キュー１６４の先頭に蓄積された後に、パリティパケットＰＰが送信キュー１６４に蓄積される。また、本実施形態では、誤り訂正符号器１２２の用いる誤り訂正は、実施形態１と同様であり、例えば、組織符号である。
【００４７】
図５に、本実施形態における送信機１０および受信機２０のデータの交換の処理過程を示す。データ転送手順ではステップＳ１１１〜Ｓ１１４を行い、訂正パケット送信停止手順ではステップＳ１１６、Ｓ１１７、Ｓ１１５を順に行う。
【００４８】
データ転送手順では、実施形態１と同様に、送信回路１６１が、受信機２０にソースパケットＳＰ及びパリティパケットＰＰを送信する。このとき、送信回路１６１は、受信機２０から通知された伝送速度を用いて、ソースパケットＳＰ及びパリティパケットＰＰを送信する。例えば、送信機１０のメッセージ交換部１３は受信機２０のメッセージ交換部２３に対して転送可否の問い合わせ（ＨＥＬＬＯ）を行い（Ｓ１１１）、それに対して受信機２０のメッセージ交換部２３が転送許可のメッセージ（ＴＲＹ  ＳＥＮＤ）を発信する（Ｓ１１２）。送信機１０のメッセージ交換部１３が転送許可のメッセージを受信すると、送信機１０の送信部１１は、ソースパケットＳＰからＵＤＰで送信を開始する（Ｓ１１３）。そして、送信部１１は、ソースパケットＳＰの送信が終了した後、パリティパケットＰＰの送信を開始する（Ｓ１１４）。受信部２１は、送信部１１から送信されたソースパケットＳＰ及びパリティパケットＰＰを受信する。
【００４９】
訂正パケット送信停止手順では、受信機２０が、複数のパリティパケットＰＰの受信完了前に、送信機１０から受信したソースパケットＳＰをパリティパケットＰＰを用いたた誤り訂正を行って復号し、更なるパリティパケットＰＰが必要か否かを判定し、更なるパリティパケットＰＰが不要になった時に誤り訂正パケット送信停止である送信停止リクエスト（ＳＴＯＰ  ＳＥＮＤ）を送信機１０に通知する。
【００５０】
例えば、受信機２０の受信部２１はソースパケットＳＰを受信した後、パリティパケットＰＰを受信開始する。逐次誤り訂正復号部２２は、逐次復号器を用いて受信した全パケットで誤り訂正による復号が可能か否かを検査する（Ｓ１１６）。逐次誤り訂正復号部２２が、全てのソースパケットＳＰを復号可能な状態になった時点（Ｓ１１７）で、受信機２０のメッセージ交換部２３は、送信機１０側に送信停止リクエスト（ＳＴＯＰ  ＳＥＮＤ）を発信する（Ｓ１１５）。
【００５１】
送信機１０のメッセージ交換部１３が、受信機２０のメッセージ交換部２３からの送信停止リクエスト（ＳＴＯＰ  ＳＥＮＤ）を受信した時点で、送信機１０の送信回路１６１はパリティパケットＰＰの送信を停止する。これによりソースデータＳＤの転送が完了する。
【００５２】
本実施形態では、送信機１０は、ソースパケットＳＰの後にパリティパケットＰＰを送信し、全てのソースパケットＳＰを復号可能な状態になった時点でパリティパケットＰＰの送信を停止する。そのため、送信機１０側で符号化時点でパリティパケットＰＰを多く生成した場合でも、実際に送信されるパリティパケットＰＰの数は受信機２０側で、ソースパケットＰＰが復号可能になる量だけ送信される。よって、無駄なパリティパケットＰＰの送信を抑えることが可能になり、送信機１０から受信機２０までの通信路でのパケットロス率を考慮せずに実質的に最適な冗長率（符号化率）の設定がなされる。
【００５３】
（実施形態３）
図６に、本実施形態に係るデータ転送システムを示す。本実施形態に係るデータ転送システムは、送信機１０と、受信機２０とを備える。本実施形態に係るデータ転送システムは、可用帯域推定方式を用いて送信機１０から受信機２０への伝送速度を決定する。
【００５４】
送信機１０は、送信部１１と、メッセージ交換部１３と、制御部１４とを備える。受信機２０は、受信部２１と、メッセージ交換部２３と、制御部２４と、伝送速度決定部として機能する帯域推定部２６と、パケットロス計測部２７とを備える。本実施形態に係るデータ転送システムは、図１に示すように、データストレージ３０と、データストレージ４０とを備えていてもよい。
【００５５】
制御部１４は、伝送速度の異なる複数のパイロットパケットを送信部１１に送信させる。パイロットパケットは、計測用パケットとして機能する。パケットロス計測部２７は、送信機１０から受信した複数のパイロットパケットの損失率を計測する。パケットロス計測部２７は計測部として機能する。帯域推定部２６は、パケットロス計測部２７の計測した損失率を比較し、受信部２０の受信したパイロットパケットの伝送速度のうちの損失率の低い伝送速度を選択する。
【００５６】
メッセージ交換部２３は、帯域推定部２６の選択した伝送速度をメッセージ交換部１３へ通知し、メッセージ交換部１３は、メッセージ交換部２３から通知された伝送速度を受信し、送信部１１は、メッセージ交換部１３の受信した伝送速度を用いて、ソースパケットＳＰ及びパリティパケットＰＰを送信する。
【００５７】
図７に、本実施形態における送信機１０と受信機２０のデータの交換の流れを示す。本実施形態では、送信機１０と受信機２０間でパイロットパケットを一定の速度で転送し、パケットロス率から可用帯域を推定する。可用帯域の推定は、実施形態２において、受信装置２０から送信装置１０に通知する伝送速度を決定するために行う。先ず、送信機１０のメッセージ交換部１３から受信機２０のメッセージ交換部２３に対して受付可否の問い合わせ（ＨＥＬＬＯ）（Ｓ１２１）を行い、それに対して受信機２０のメッセージ交換部２３が受付許可のメッセージを試験転送速度とともに発信する（ＴＲＹ  ＳＰＥＥＤ１）（Ｓ１２２）。
【００５８】
送信器１０の送信部１１は、受付許可のメッセージ（Ｓ１２２）に基づいて、指定された転送速度（ＳＰＥＥＤ１）で受信機２０に向けてパイロットパケットの送信を開始する（Ｓ１２３）。パイロットパケットの送信数は送信機１０と受信機２０であらかじめ共有されている。受信機２０のパケットロス計測部２７は、受信部２１が受信したパイロットパケットの消失率（パケットロス率）を計測する。受信機２０のメッセージ交換部２３は、送信機１０から転送速度ＳＰＥＥＤ１で届いたパイロットパケットのパケットロス率に基づいて、次期の試験転送速度（ＳＰＥＥＤ２）を決定し送信器１０側に通知する（Ｓ１２４）。以上の、試験転送の単位をＴＲＹ＿ＳＰＥＥＤと呼ぶ。試験転送速度ＳＰＥＥＤ２でのＴＲＹ＿ＳＰＥＥＤが終了した後、受信機２０のメッセージ交換部２３は、次期の試験転送速度（ＳＰＥＥＤ３）を決定し送信器１０側に通知してもよい（Ｓ１２６）。
【００５９】
受信機２０において、受信されたパイロットパケットのパケットロス率に基づいて次期の試験転送速度を決定するアルゴリズムを図８に示す。初期値の試験転送速度（ｓｐｅｅｄ）等を設定する初期化処理を行った後(Ｓ１３０、Ｓ１３１)、初めはノンリニアモードで粗い帯域推定を行ったあと（Ｓ１３２、Ｓ１３３）、リニアモードに移行して正確な帯域推定を行う（Ｓ１３４、Ｓ１３５）。
【００６０】
図９に可用帯域推定方法の初期化処理（Ｓ１３１）の詳細を示す。処理開始（Ｓ１４０）後、試験転送速度ｓｐｅｅｄを初期値に設定する（Ｓ１４１）。次に、試験転送速度（ｓｐｅｅｄ）動作モード（ｍｏｄｅ）をノンリニアモードに設定する（Ｓ１４２）。次に、実施回数（ｃｎｔ）を０にする（Ｓ１４３）。次に、試験転送速度変化値（ｓｐｅｅｄ＿ｓｔｅｐ）、実施回数の上限（ＭＡＸ＿ＴＲＹ）、リニアモードにおける次ステップまでの実施回数（ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ）、ノンリニアモードでの試験転送速度変化増加率（ｕｐ＿ｒａｔｅ１）、リニアモード内での試験転送速度変化増加率（ｕｐ＿ｒａｔｅ２）、および、パケットロス許容値（ＰＫＴＬＯＳＳ＿ＭＡＸ）の初期値を与える（Ｓ１４４）。
【００６１】
図１０に可用帯域推定のノンリニアモードでの処理過程（Ｓ１３３）の詳細を示す。処理開始（Ｓ１５０）後、試験転送の単位であるＴＲＹ＿ＳＰＥＥＤを転送速度ｓｐｅｅｄで行う（Ｓ１５１）。次に、ノンリニアモードでは、試験転送実施毎にパケットロスを算出し（Ｓ１５２）、それをパケットロス許容値と比較する（Ｓ１５３）。パケットロス許容値よりも低い場合は次期の試験転送速度ｓｐｅｅｄに対して試験転送速度変化値ｓｐｅｅｄ＿ｓｔｅｐを加算し、その後、試験転送速度変化値ｓｐｅｅｄ＿ｓｔｅｐ自体もｕｐ＿ｒａｔｅ１によって増加させる（Ｓ１５４）。試験転送速度変化値ｓｐｅｅｄ＿ｓｔｅｐ自身も増加するため、試験転送速度ｓｐｅｅｄ自体も非線形的に増加し、可用帯域推定の範囲を広く調べることが可能である。一方、パケットロスがパケットロス許容値よりも大きい場合、ｓｐｅｅｄをパケットロスに応じて減少させ、動作モードをリニアモードに設定する（Ｓ１５５）。以上で、可用帯域推定方法の初期化処理（Ｓ１３１）は終了する（Ｓ１５６）。
【００６２】
図１１に可用帯域推定のリニアモードでの処理過程（Ｓ１３５）での詳細を示す。処理開始（Ｓ１６０）後、リニアモードでの実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔを０とし、試験転送速度変化値（ｓｐｅｅｄ＿ｓｔｅｐ）を初期値とする（Ｓ１６１）。次に、試験転送の単位であるＴＲＹ＿ＳＰＥＥＤを転送速度ｓｐｅｅｄで行う（Ｓ１６２）。次に、パケットロスｐｋｔｌｏｓｓをＴＲＹ＿ＳＰＥＥＤ中の平均パケットロス率とする（Ｓ１６３）。次に、パケットロスｐｋｔｌｏｓｓがパケットロス許容値（ＰＫＴＬＯＳＳ＿ＭＡＸ）以内であるかを判定する（Ｓ１６４）。
【００６３】
パケットロスｐｋｔｌｏｓｓがパケットロス許容値（ＰＫＴＬＯＳＳ＿ＭＡＸ）以内である場合には、実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔがリニアモードにおける次ステップまでの実施回数（ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ）以下であるかを判定する（Ｓ１６５）。実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔがリニアモードにおける次ステップまでの実施回数（ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ）以下である場合には、転送速度ｓｐｅｅｄにｓｐｅｅｄ＿ｓｔｅｐを加算し、実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔに１を加える（Ｓ１６６）。
【００６４】
Ｓ１６５の判定で、実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔがリニアモードにおける次ステップまでの実施回数ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ以上である場合には、ｓｐｅｅｄ＿ｓｔｅｐをｓｐｅｅｄ＿ｓｔｅｐとｕｐ＿ｒａｔｅ２の積とし、転送速度ｓｐｅｅｄをｓｐｅｅｄとｓｐｅｅｄ＿ｓｔｅｐの和とし、実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔを０とする（Ｓ１６７）。リニアモードでは、正確な帯域推定をするために、ノンリニアモードとは異なり、ｓｐｅｅｄを線型的に変化させていく。そのため、リニアモードにおける次ステップまでの実施回数（ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ）の値分の試験を行い、すべて成功（パケットロスなし）の場合にはｓｐｅｅｄ＿ｓｔｅｐをｕｐ＿ｒａｔｅ２分増加させる。つまり、リニアモードにおける次ステップまでの実施回数ＮＥＸＴ＿ＳＴＥＰ＿ＣＮＴ回数内は線型にｓｐｅｅｄが推移することになる。
【００６５】
Ｓ１６４の判定で、パケットロスｐｋｔｌｏｓｓがパケットロス許容値（ＰＫＴＬＯＳＳ＿ＭＡＸ）を超えている場合には、転送速度ｓｐｅｅｄをパケットロスｐｋｔｌｏｓｓの割合だけ低下させ、実施回数ｌｉｎｅａｒ＿ｔｒｙｃｎｔを０とする（Ｓ１６８）。次に、ｓｐｅｅｄ＿ｓｔｅｐをｓｐｅｅｄ＿ｓｔｅｐの初期値とする（Ｓ１６９）。Ｓ１６６、Ｓ１６７、Ｓ１６９が終了するとｃｎｔに１を加え（Ｓ１７０）、処理を終了させる（Ｓ１７１）。つまり、リニアモードでは試験転送実施回数に上限（ＭＡＸ＿ＴＲＹ）を設けて、それによって可用帯域推定を終了する。
【００６６】
本実施形態に係る可用帯域推定方式を用いて帯域推定を行った結果を図１２に示す。図１２にある通り、変動する実際の可用帯域に対して、適応的に帯域推定がなされている。図１２において、１３１が実際のスピード、１３２が実際の可用帯域、１３３が試験転送速度変化値ｓｐｅｅｄ＿ｓｔｅｐ、１３４がパケットロス率である。また、推定に関わるパケットロス特性もノンリニアモードとリニアモードで分けられる。リニアモードでのパケットロス率は低く抑えられており、誤り訂正符号で回復可能な範囲にとどまっている。
【００６７】
（実施形態４）
図１３に、本実施形態に係るデータ転送システムを示す。本実施形態に係るデータ転送システムは、実施形態３の可用帯域推定においてパリティパケットを用いる。
【００６８】
本実施形態に係るデータ転送システムは、送信機１０と、受信機２０と、データストレージ３０と、データストレージ４０とを備える。送信機１０は、送信部１１と、誤り訂正及び符号部１２と、メッセージ交換部１３と、制御部１４と、データ読込部１５とを備える。受信機２０は、受信部２１と、逐次誤り訂正復号部２２と、メッセージ交換部２３と、制御部２４と、帯域推定部２６と、パケットロス計測部２７とを備える。
【００６９】
本実施形態では、可用帯域推定機能を付加させた、誤り訂正符号と逐次復号による適応冗長化可能なデータ転送において、ファイル転送対象のソースパケットＳＰとパリティパケットＰＰを可用帯域推定のパイロットパケットとして用いる。可用帯域の推定は、受信装置２０から送信装置１０に通知する伝送速度を決定するために行う。また、送信機において、ノンリニアモードの動作中はではパリティパケットＰＰを送信し、リニアモードに移行した時点でパリティパケットＰＰの送信を中断し、ソースパケットＳＰを送信し、ソースパケットＳＰの送信が終了した時点で、残りのパリティパケットＰＰの送信を再開する。
【００７０】
可用帯域推定機能を付加させた、誤り訂正符号と逐次復号による適応冗長化可能なデータ転送において、可用帯域推定の過程は遅延を伴い、無駄なパケット送信が生じてしまう。そのため、ファイル転送対象のソースパケットＳＰとパリティパケットＰＰを可用帯域推定のパイロットパケットとして用いることで、ファイル転送の過程で帯域推定を行うことが可能である。ただし、可用帯域推定においは、ノンリニアモードにおけるパケットロスが大きく、リニアモードではパケットロスが小さい特徴を持つ。一方で、誤り訂正符号として組織ＬＤＰＣ符号を用いる場合、パリティパケットＰＰよりもソースパケットＳＰの転送おけるパケットロスを最小する方が符号特性がよくなり、結果として転送される総パケット数も小さくなる。
【００７１】
（実施形態５）
図１４に、本実施形態に係るデータ転送システムを示す。本実施形態に係るデータ転送システムは、実施形態１で説明したシステムに、実施形態４で説明した可用帯域推定を用いる。
【００７２】
本実施形態に係るデータ転送システムは、送信機１０と、受信機２０と、データストレージ３０と、データストレージ４０とを備える。送信機１０は、誤り訂正及び符号部１２と、メッセージ交換部１３と、制御部１４と、データ読込部１５と、送信部１１とを備える。受信機２０は、受信部２１と、逐次誤り訂正復号部２２と、メッセージ交換部２３と、制御部２４と、帯域推定部２６と、パケットロス計測部２７とを備える。
【００７３】
送信機１０は、受信機２０から現在の動作モード（ノンリニアモードまたはリニアモード）を取得し、ノンリニアモード動作中は非優先キュー１６３にあるパリティパケットを送信する。リニアモードに移行した時点で、優先キュー１６２を優先的に送信し、優先キュー１６２が空である場合は非優先キュー１６３からのパケットを送信する。
【００７４】
本実施形態では、可用帯域推定を行い、パケットロスを小さく保ちながら最高の速度でファイル転送を行い、再送制御を組み合わせることで、最小のパケット転送量でファイル転送が実現される。可用帯域の推定は、受信機２０から送信機１０に通知する伝送速度を決定するために行う。
【００７５】
なお、本発明の装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【産業上の利用可能性】
【００７６】
本発明のデータ転送システム、送信機、受信機、プログラム、データ転送方法は、通信産業に適用することができる。
【符号の説明】
【００７７】
１０：送信機
１１：送信部
１２：誤り訂正及び符号部
１３：メッセージ交換部
１４：制御部
１５：データ読み込み部
２０：受信機
２１：受信部
２２：逐次誤り訂正復号部
２３：メッセージ交換部
２４：制御部
２５：データ書出部
２６：帯域推定部
２７：パケットロス計測部
３０：データストレージ
４０：データストレージ
１２１：ソースパケットバッファ
１２２：誤り訂正符号器
１２３：パリティパケットバッファ
１２４：インタリーバ
１３１：実際のスピード
１３２：実際の可用帯域
１３３：試験転送速度変化値
１３４：パケットロス率
１６１：送信回路
１６２：優先キュー
１６３：非優先キュー
１６４：送信キュー
【図１】
2016001773.tif 000003
【図２】
2016001773.tif 000004
【図３】
2016001773.tif 000005
【図４】
2016001773.tif 000006
【図５】
2016001773.tif 000007
【図６】
2016001773.tif 000008
【図７】
2016001773.tif 000009
【図８】
2016001773.tif 000010
【図９】
2016001773.tif 000011
【図１０】
2016001773.tif 000012
【図１１】
2016001773.tif 000013
【図１２】
2016001773.tif 000014
【図１３】
2016001773.tif 000015
【図１４】
2016001773.tif 000016