(57)【要約】【課題】特定のファイルを他のファイルに優先して転送するよう転送速度を制御することができる受信装置、送信装置及び中継装置を提供すること。【解決手段】ノード１は、ファイルの送受信に係る制御を行うファイル送受信手段１０を備え、ファイル送受信手段１０は、送信するファイルの転送速度の管理及び制御を行う送信管理部１１と、受信するファイルの転送速度の管理及び制御を行う受信管理部１２とを備え、通常ファイル及び優先ファイルを受信する際に、受信管理部１２は、通常ファイルを受信する受信状態と通常ファイルの受信を所定時間待機する受信待機状態とを設定し、受信状態及び受信待機状態の切替制御を行うことによって、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御するようにした。【選択図】図１
2008160557.tif 000002
【特許請求の範囲】
【請求項１】
転送速度が予め定められた優先ファイル及び前記優先ファイルよりも転送の優先度が低い通常ファイルの少なくとも一方を受信する受信装置であって、
前記優先ファイル及び前記通常ファイルの少なくとも一方を受信するファイル受信手段と、前記優先ファイルの転送速度を示す転送速度情報を受信する転送速度情報受信手段と、前記ファイル受信手段が前記優先ファイル及び前記通常ファイルを受信する際に、前記転送速度情報に基づいて、前記通常ファイルの転送速度を抑制し、前記優先ファイルの転送を優先するよう前記優先ファイル及び前記通常ファイルの転送速度を制御する受信側転送速度制御手段とを備えたことを特徴とする受信装置。
【請求項２】
前記受信側転送速度制御手段は、前記通常ファイルを受信する受信状態と前記通常ファイルの受信を所定時間待機する受信待機状態とを設定することによって前記通常ファイルの転送速度を制御することを特徴とする請求項１に記載の受信装置。
【請求項３】
前記受信側転送速度制御手段は、前記優先ファイル及び前記通常ファイルのデータを記憶する所定数のバッファと、前記優先ファイルのデータが記憶されるバッファ数と前記通常ファイルのデータが記憶されるバッファ数との比率を設定するバッファ数比率設定部とを備えたことを特徴とする請求項１に記載の受信装置。
【請求項４】
前記優先ファイルの受信期限を示す受信期限時刻情報を取得する受信期限時刻情報取得手段と、前記優先ファイルのファイルサイズ情報を取得するファイルサイズ情報取得手段と、現在時刻情報を取得する現在時刻情報取得手段と、前記受信期限時刻情報と前記ファイルサイズ情報と前記現在時刻情報とに基づいて前記優先ファイルの転送速度を計算するファイル転送速度計算手段とを備えたことを特徴とする請求項１から請求項３までのいずれか１項に記載の受信装置。
【請求項５】
請求項１から請求項４までのいずれか１項に記載の少なくとも１つの受信装置に前記優先ファイル及び前記通常ファイルの少なくとも一方を送信する送信装置であって、
前記優先ファイル及び前記通常ファイルの少なくとも一方を送信するファイル送信手段と、前記優先ファイルの転送速度を示す転送速度情報を受信する転送速度情報受信手段と、前記転送速度情報を前記受信装置に通知する転送速度情報通知手段と、前記優先ファイル及び前記通常ファイルを送信する際に、前記転送速度情報に基づいて、前記通常ファイルの転送速度を抑制し、前記優先ファイルの転送を優先するよう前記優先ファイル及び前記通常ファイルの転送速度を制御する送信側転送速度制御手段とを備えたことを特徴とする送信装置。
【請求項６】
前記送信側転送速度制御手段は、前記通常ファイルを送信する送信状態と前記通常ファイルの送信を所定時間待機する送信待機状態とを設定することによって前記通常ファイルの転送速度を制御することを特徴とする請求項５に記載の送信装置。
【請求項７】
前記優先ファイルの送信期限を示す送信期限時刻情報を取得する送信期限時刻情報取得手段と、前記優先ファイルのファイルサイズ情報を取得するファイルサイズ情報取得手段と、現在時刻情報を取得する現在時刻情報取得手段と、前記送信期限時刻情報と前記ファイルサイズ情報と前記現在時刻情報とに基づいて前記優先ファイルの転送速度を算出するファイル転送速度算出手段とを備えたことを特徴とする請求項５又は請求項６に記載の送信装置。
【請求項８】
請求項１から請求項４までのいずれか１項に記載の受信装置と、請求項５から請求項７までのいずれか１項に記載の送信装置とを備え、前記優先ファイル及び前記通常ファイルを中継する中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して授受されるデータの転送速度の制御を行う受信装置、送信装置及び中継装置に関する。
【背景技術】
【０００２】
従来、ネットワークに接続されたノード間において、送信元ノードや送信先ノードの異なる複数のファイルを同時に転送する技術は既に提案されており、この技術は例えばインターネットでは既に実現されている。しかしながら、ネットワーク全体を管理するノードが存在せず、それぞれのノードが独立して動作しているので、特定のファイルを他のファイルに優先して転送することはできない。
【０００３】
従来のネットワークでは、転送時間の制約がないファイル転送（以下「通常のファイル転送」という。）や、映像や音声等のデータをリアルタイムで転送するストリーミング転送が行われている。通常のファイル転送では、転送時間の制約がないものの、可能な限り高速で転送されるのが望ましい。一方、ストリーミング転送では、伝送帯域がある一定値以上確保される必要がある。したがって、通常のファイル転送とストリーミング転送とが混在するネットワークでは、ストリーミング転送を通常のファイル転送よりも優先させる必要がある。
【０００４】
前述のように、ネットワークに接続されたノード間において、特定のファイルを他のファイルに優先して転送することが要求される場合があり、この要求に対して例えば特許文献１に示すような通信中継システムが提案されている。
【０００５】
特許文献１に示されたものは、無線通信を行う無線端末と、無線端末の通信を中継する無線中継局と、無線端末が行う通信を管理するストリームサーバとを備え、無線中継局は、ストリームサーバが管理する通信のうち優先的に中継する通信の識別子を登録した優先テーブルと、この優先テーブルに登録された優先通信の優先順位を管理する優先順位管理部とを有し、優先テーブルに登録された通信識別子で特定される通信を他の通信よりも優先的に中継するようになっている。
【特許文献１】特開２００５−８０１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に示された従来のものでは、優先順位管理部が、通常は到着順に優先順位を決定し、同時に複数の優先通信が発生したときにはどちらを他方よりも優先するかを決定する構成となっているので、ユーザが特定した特定のファイルを他のファイルに優先して転送するよう転送速度を制御することができないという課題があった。
【０００７】
したがって、従来のものは、特定のファイル転送を優先させながら他のファイル転送を可能な限り高速で転送することができないという課題や、優先した特定のファイル転送に関してユーザの指定した転送速度を維持させることやユーザの指定した時刻までに転送を完了させることができないという課題があった。
【０００８】
本発明は、従来の課題を解決するためになされたものであり、特定のファイルを他のファイルに優先して転送するよう転送速度を制御することができる受信装置、送信装置及び中継装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の受信装置は、転送速度が予め定められた優先ファイル及び前記優先ファイルよりも転送の優先度が低い通常ファイルの少なくとも一方を受信する受信装置であって、前記優先ファイル及び前記通常ファイルの少なくとも一方を受信するファイル受信手段と、前記優先ファイルの転送速度を示す転送速度情報を受信する転送速度情報受信手段と、前記ファイル受信手段が前記優先ファイル及び前記通常ファイルを受信する際に、前記転送速度情報に基づいて、前記通常ファイルの転送速度を抑制し、前記優先ファイルの転送を優先するよう前記優先ファイル及び前記通常ファイルの転送速度を制御する受信側転送速度制御手段とを備えた構成を有している。
【００１０】
この構成により、本発明の受信装置は、優先ファイル及び通常ファイルを受信する際に、転送速度情報に基づいて、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができる。その結果、本発明の受信装置は、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【００１１】
また、本発明の受信装置は、前記受信側転送速度制御手段は、前記通常ファイルを受信する受信状態と前記通常ファイルの受信を所定時間待機する受信待機状態とを設定することによって前記通常ファイルの転送速度を制御する構成を有している。
【００１２】
この構成により、本発明の受信装置は、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができるので、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【００１３】
さらに、本発明の受信装置は、前記受信側転送速度制御手段は、前記優先ファイル及び前記通常ファイルのデータを記憶する所定数のバッファと、前記優先ファイルのデータが記憶されるバッファ数と前記通常ファイルのデータが記憶されるバッファ数との比率を設定するバッファ数比率設定部とを備えた構成を有している。
【００１４】
この構成により、本発明の受信装置は、優先ファイルのデータが記憶されるバッファ数と通常ファイルのデータが記憶されるバッファ数との比率を設定することにより、優先ファイル及び通常ファイルを受信する際に、転送速度情報に基づいて、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができる。その結果、本発明の受信装置は、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【００１５】
さらに、本発明の受信装置は、前記優先ファイルの受信期限を示す受信期限時刻情報を取得する受信期限時刻情報取得手段と、前記優先ファイルのファイルサイズ情報を取得するファイルサイズ情報取得手段と、現在時刻情報を取得する現在時刻情報取得手段と、前記受信期限時刻情報と前記ファイルサイズ情報と前記現在時刻情報とに基づいて前記優先ファイルの転送速度を計算するファイル転送速度計算手段とを備えた構成を有している。
【００１６】
この構成により、本発明の受信装置は、受信期限時刻までに優先ファイルの受信が完了するよう優先ファイルの転送速度を計算するので、優先ファイル及び通常ファイルを受信する状況においても、優先ファイルを受信期限時刻までに受信することができる。
【００１７】
本発明の送信装置は、前記優先ファイル及び前記通常ファイルの少なくとも一方を送信するファイル送信手段と、前記優先ファイルの転送速度を示す転送速度情報を受信する転送速度情報受信手段と、前記転送速度情報を前記受信装置に通知する転送速度情報通知手段と、前記優先ファイル及び前記通常ファイルを送信する際に、前記転送速度情報に基づいて、前記通常ファイルの転送速度を抑制し、前記優先ファイルの転送を優先するよう前記優先ファイル及び前記通常ファイルの転送速度を制御する送信側転送速度制御手段とを備えた構成を有している。
【００１８】
この構成により、本発明の送信装置は、優先ファイル及び通常ファイルを送信する際に、転送速度情報に基づいて、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができる。その結果、本発明の送信装置は、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【００１９】
また、本発明の送信装置は、前記送信側転送速度制御手段は、前記通常ファイルを送信する送信状態と前記通常ファイルの送信を所定時間待機する送信待機状態とを設定することによって前記通常ファイルの転送速度を制御する構成を有している。
【００２０】
この構成により、本発明の送信装置は、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができるので、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【００２１】
さらに、本発明の送信装置は、前記優先ファイルの送信期限を示す送信期限時刻情報を取得する送信期限時刻情報取得手段と、前記優先ファイルのファイルサイズ情報を取得するファイルサイズ情報取得手段と、現在時刻情報を取得する現在時刻情報取得手段と、前記送信期限時刻情報と前記ファイルサイズ情報と前記現在時刻情報とに基づいて前記優先ファイルの転送速度を算出するファイル転送速度算出手段とを備えた構成を有している。
【００２２】
この構成により、本発明の送信装置は、送信期限時刻までに優先ファイルの送信が完了するよう優先ファイルの転送速度を計算するので、優先ファイル及び通常ファイルを送信する状況においても、優先ファイルを送信期限時刻までに送信することができる。
【００２３】
本発明の中継装置は、受信装置と、送信装置とを備え、前記優先ファイル及び前記通常ファイルを中継する構成を有している。
【００２４】
この構成により、本発明の中継装置は、優先ファイル及び通常ファイルを中継する際に、転送速度情報に基づいて、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御することができる。その結果、本発明の中継装置は、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイルを可能な限り高速で転送することができる。
【発明の効果】
【００２５】
本発明は、特定のファイルを他のファイルに優先して転送するよう転送速度を制御することができるという効果を有する受信装置、送信装置及び中継装置を提供することができるものである。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図面を用いて説明する。なお、本発明の受信装置、送信装置及び中継装置を、ネットワーク上でファイルの転送を行うノードに適用した例を挙げて説明する。ここで、各ノードは、全二重のギガビットイーサネット（登録商標）（ＩＥＥＥ８０２．３ｚ準拠、通信速度は送受信とも最大１０００Ｍｂｐｓ）を使用し、ノード間のネットワークの通信プロトコルはＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を使用するものとする。
【００２７】
（第１の実施の形態）
まず、本発明に係るノードの第１の実施の形態における構成について説明する。
【００２８】
図１に示すように、本実施の形態におけるノード１は、ファイルの送受信に係る制御を行うファイル送受信手段１０と、ノード２及び３と通信する通信部１６と、ファイルを蓄積する蓄積装置１７とを備えている。
【００２９】
なお、ノード１が送受信するファイルには、転送速度が特に定められていないファイル（以下「通常ファイル」という。）と、転送速度が予め定められたファイル（以下「優先ファイル」という。）とがある。また、図示を省略したが、ノード１は、時刻情報を出力する時計（以下「内部時計」という。）を有している。
【００３０】
また、本実施の形態におけるノード１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、ネットワークを介してノード２及び３に接続されているものとする。また、図１に示すように、ノード２及び３の構成は、ノード１と同様であり、ノード１に対応した符号をそれぞれ付して示しているが、ノード１の蓄積装置制御部１４及び蓄積装置１７に対応する構成の図示は省略している。
【００３１】
通信部１６は、通信に必要な機能、例えば送信側であればデータをＴＣＰ／ＩＰのパケットに分割し受信側であればＴＣＰ／ＩＰのパケットを再構成し、ＴＣＰ／ＩＰのプロトコルで通信する機能を有しており、１つ以上のノードと通信することができるようになっている。また、送信側にはＴＣＰ／ＩＰ化された送信待ちのパケットを一時的に記憶するバッファを備えており、受信側には送信されたパケットが再構成されるまでの間一時的に記憶するバッファを備えている。
【００３２】
蓄積装置１７は、例えば半導体メモリ、ＨＤＤ（ハードディスクドライブ）単体又はＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構成された複数のＨＤＤ等で構成され、ネットワークの転送速度よりも十分に高速に読み書きが可能で、かつ高速ランダムアクセスが可能な装置である。
【００３３】
ファイル送受信手段１０は、送信するファイルの転送速度の管理及び制御を行う送信管理部１１と、受信するファイルの転送速度の管理及び制御を行う受信管理部１２と、ファイルの送受信に係る制御を行うファイル送受信部１３と、蓄積装置１７の動作を制御する蓄積装置制御部１４と、ユーザからの制御情報を伝達するユーザインターフェース部（以下「ユーザＩＦ部」という。）１５とを備えている。なお、ファイル送受信手段１０は、本発明のファイル受信手段及びファイル送信手段に対応している。
【００３４】
ファイル送受信手段１０は、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのアプリケーション層で動作するアプリケーションソフトウェアによって、ファイルの送受信に係る制御を行うようになっており、１つのネットワーク接続に対して１つのスレッドが起動するようになっている。また、ファイル送受信手段１０は、通信部１６及び蓄積装置１７の動作を制御するようになっている。以上の構成により、ファイル送受信手段１０は、ノード２及び３の少なくとも一方から転送されたファイルを蓄積装置１７に蓄積することができ、また蓄積装置１７に蓄積されているファイルをノード２及び３の少なくとも一方に転送することができるようになっている。
【００３５】
送信管理部１１は、送信できる最大の転送速度をノード２及び３に対して個々に設定することができ、設定した最大の転送速度を上限として、ファイルを送信することができるようになっている。なお、図示を省略したが、送信管理部１１は、設定した転送速度のデータを記憶するメモリ（以下「転送速度メモリ」という。）を備えている。転送速度メモリは、ファイル送受信手段１０が複数スレッド起動されても、どのスレッドからでも参照できるようになっている。また、送信管理部１１は、通信部１６を介して、ユーザＩＦ部１５が取得した転送速度情報をノード２又は３に通知することができるようになっている。また、送信管理部１１は、内部時計から時刻情報を取得することができるようになっている。また、送信管理部１１は、本発明の送信側転送速度制御手段及び転送速度情報通知手段に対応している。
【００３６】
受信管理部１２は、受信できる最大の転送速度をノード２及び３に対して個々に設定することができ、設定した最大の転送速度を上限として、ファイルを受信することができるようになっている。なお、図示を省略したが、受信管理部１２は、設定した転送速度のデータを記憶する転送速度メモリを備えている。転送速度メモリは、ファイル送受信手段１０が複数スレッド起動されても、どのスレッドからでも参照できるようになっている。また、受信管理部１２は、通信部１６を介して、ノード２又は３から転送速度情報を受信することができるようになっている。また、受信管理部１２は、内部時計から時刻情報を取得することができるようになっている。また、受信管理部１２は、本発明の受信側転送速度制御手段及び転送速度情報受信手段に対応している。
【００３７】
なお、送信管理部１１及び受信管理部１２は、ユーザＩＦ部１５、ノード２又は３からの制御信号により、送受信時の最大の転送速度を逐次変更することができるようになっている。
【００３８】
次に、送信管理部１１、２１、３１、及び受信管理部１２、２２、３２についてさらに詳細に説明する。
【００３９】
ノード１が有する送信管理部１１及び受信管理部１２は、ノード１がファイルの送信側であるとき、及び受信側であるときのそれぞれについて転送速度の上限値を管理し、さらに１つの接続ごとに送信側及び受信側のそれぞれについて転送速度の希望値及び実施値の２つのパラメータを管理する。送信管理部１１及び受信管理部１２は、それぞれ、転送速度の上限値を別個に設定でき、その上限値以内に転送速度を抑えることが可能である。ノード２が有する送信管理部２１及び受信管理部２２、ノード３が有する送信管理部３１及び受信管理部３２についても同様である。
【００４０】
したがって、例えば、ノード１からノード２にファイルを転送する場合、ノード１の送信管理部１１又はノード２の受信管理部２２が転送速度を設定すれば、当該転送速度でファイルをノード１からノード２に転送することができる。また、例えば、ノード２及び３からノード１にファイルを同時に転送する場合でも、各ノードの送信管理部又は受信管理部が転送速度を設定すればよい。以下、具体例を２つ挙げて、送信管理部１１及びノード２の受信管理部２２の機能を説明する。
【００４１】
第１の具体例は、ノード１からノード２に転送速度５００Ｍｂｐｓでファイルを転送する場合であり、図２に示すような態様となる。なお、図２に示された表において、「送信側」及び「受信側」の各列に記載された数値は、ノード１及び２がそれぞれ有する送信管理部及び受信管理部の各転送速度メモリに記憶される転送速度のデータを示すものである。
【００４２】
まず、本実施の形態においては通信規格としてＩＥＥＥ８０２．３ｚを用いているので、転送速度の上限値は、送信側及び受信側とも転送速度１０００Ｍｂｐｓとしてファイルの転送前（例えばアプリケーション起動時）に予め設定される。
【００４３】
次いで、ノード１の送信管理部１１は、例えばユーザＩＦ部１５からの制御信号に基づき、ファイルの送信時の転送速度希望値を５００Ｍｂｐｓに設定する。
【００４４】
さらに、送信管理部１１は、転送速度希望値が上限値を超えていないため、ノード２に対して５００Ｍｂｐｓでファイルを送信することを要求する。ノード２は、この要求を受け取り、受信管理部２２の転送速度メモリに希望値として５００Ｍｂｐｓの値を格納したうえで、この希望値が受信時の転送速度の上限値を超えていないことを確認し、この要求を承諾する（図２（ａ））。
【００４５】
その後、ノード２は、受信管理部２２の転送速度メモリに実施値として５００Ｍｂｐｓの値を格納し、ノード１に対し５００Ｍｂｐｓでファイルを転送することを指示する。ノード１はこの指示に対し、送信時の転送速度の実施値として５００Ｍｂｐｓの値を送信管理部１１の転送速度メモリに格納する（図２（ｂ））。そして、ノード１はノード２に対しファイルを５００Ｍｂｐｓで転送する（図２（ｃ））。
【００４６】
なお、ファイルの転送速度の制御は、ノード１の送信管理部１１が行う方法と、ノード２の受信管理部２２が行う方法の２つがある。受信管理部２２が転送速度を制御する場合は、送信側のノードが転送速度を知る必要がなければ、図２（ｂ）に示すような送信指示の動作は必須ではなく、また送信側の希望値や実施値を管理することは必須ではない。
【００４７】
第２の具体例は、ノード２からノード１に通常ファイルを転送し、同時に、ノード３からノード１に転送速度８００Ｍｂｐｓで優先ファイルを転送する場合であり、図３（ａ）に示すような態様となる。なお、図３（ａ）に示された表において、「送信側」及び「受信側」の各列に記載された数値は、ノード１〜３がそれぞれ有する送信管理部及び受信管理部の各転送速度メモリに記憶される転送速度のデータを示すものである。
【００４８】
図３（ａ）に示すように、ノード２においては転送速度の希望値は「自動」となっており、ノード３においては転送速度の希望値として８００Ｍｂｐｓが設定されている。この場合、ノード１は、ノード３からのファイルは転送速度が指定されているので当該ファイルを優先ファイルと判断し、ノード２からのファイルは転送速度が指定されていないので当該ファイルを通常ファイルとして扱う。その結果、ノード３からのファイルの転送速度実施値として８００Ｍｂｐｓが設定され、ノード２からのファイルの転送速度実施値として、上限値である１０００Ｍｂｐｓから８００Ｍｂｐｓを差し引いた２００Ｍｂｐｓが設定される。
【００４９】
本実施の形態における通信部１６は、例えばファイルを送信するノードのポート番号を識別し、入力されたファイルを優先ファイル又は通常ファイルは別々のファイル送受信手段１０のスレッドがそれぞれ断続的に受信し蓄積装置１１に出力されるようになっている。通常ファイルを受信しているファイル送受信手段１０のスレッドはノード２から時間５ｔのうちｔだけ受信し、優先ファイルを受信しているファイル送受信手段１０のスレッドはノード３から時間５ｔのうち４ｔだけ受信する。２つのスレッドの受信のタイミングが異なっても、ＴＣＰ／ＩＰのフロー制御により、ノード１の受信はおおよそ図３（ｂ）の概念図に示すようになる。その結果、ノード２及び３からの各ファイルの転送速度は、それぞれ２００Ｍｂｐｓ及び８００Ｍｂｐｓとなる。
【００５０】
すなわち、ノード１の受信管理部１２は、通常ファイルを受信する受信状態と通常ファイルの受信を所定時間待機する受信待機状態とを設定し、受信状態及び受信待機状態の切替制御を行うことによって、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御するものである。
【００５１】
なお、前述の説明では、ファイルの転送速度の制御をノード１の受信管理部１２、すなわち優先ファイルの受信側で行うものとしたが、優先ファイルの送信側で行うこともできる。例えば、ノード３が、優先ファイルをノード１に送信し、同時に通常ファイルをノード２に送信する場合では、ノード３の送信管理部３１は、通常ファイルを送信する送信状態と通常ファイルの送信を所定時間待機する送信待機状態とを設定し、送信状態及び送信待機状態の切替制御を行うことによって、通常ファイルの転送速度を抑制し、優先ファイルの転送を優先するよう優先ファイル及び通常ファイルの転送速度を制御する。
【００５２】
図１に戻り、ノード１の構成の説明を続ける。
ファイル送受信部１３は、送受信するファイルのデータを一時保存するリングバッファを備えており、このリングバッファの状態を把握するようになっている。また、このリングバッファの状態は、送信管理部１１及び受信管理部１２によっても把握できるようになっている。
【００５３】
また、ファイル送受信部１３は、予め設定された通信プロトコルに従ってファイルを送信又は受信するようになっている。この通信プロトコルには、少なくとも、コマンド及びコマンドに付随する引数を送信して当該コマンドに対するステータスを返すコマンド転送フェーズと、データを送受信するデータ転送フェーズとが含まれるものが好ましい。
【００５４】
例えば、コマンド転送フェーズの中で、送受信元ノードの希望送受信データ転送速度をコマンドの引数として送ることができ、希望に対する送受信先ノードの送受信可能データ転送速度をステータスの一部として返すことができるような仕組みにしておく。転送するファイルのサイズが比較的大きい場合は、データの送受信単位を小さく設定しておき、このデータの送受信単位ごとに、コマンド転送フェーズ及びデータ転送フェーズを行う。なお、データの送受信単位は、小さくしすぎるとファイルの転送速度が遅くなり、逆に大きくしすぎるとデータ転送速度の変更指示やデータ転送停止コマンドなどに対する応答が遅くなるため、ファイルの転送速度が遅くならない範囲でデータの送受信単位を小さくするのが好ましい。
【００５５】
ここで、前述の通信プロトコルの一例を図４に示す。図４は、蓄積装置１７に蓄積されているファイルをノード１がノード２に転送するときのＴＣＰ上での通信プロトコルの一例を示すものである。なお、図４ではＴＣＰよりも下のレイヤの処理、例えばＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）パケットや再送パケットの送信等の処理は省略している。
【００５６】
図４に示すように、まず、コマンド転送フェーズにおいて、ノード１からノード２に対して、コマンド及びコマンドの引数を送信し、ノード２からノード１に対してそのコマンド応答を返す。次に、ノード１は、コマンド応答が返ってきたら、データ転送フェーズにおいて、所定サイズに分割されたファイルを１ブロック分ずつ順次送信する。なお、ノード１は、転送を中断するときは中断するためのコマンドをノード２に送信する。また、ノード１は、送信速度を変更したいときはコマンドの引数として送信希望速度の情報をノード２に送信し、ノード２は受信可能速度の情報をコマンド応答の中でノード１に返す。
【００５７】
以上のように、ファイル送受信部１３は、ファイル転送中であっても、例えばユーザの指示によりファイルの転送の中断や転送レートの変更を行うことができる。
【００５８】
再び図１に戻り、ノード１の構成の説明を続ける。
【００５９】
蓄積装置制御部１４は、ファイル送受信部１３からの制御信号に基づいて動作し、蓄積装置１７からファイルを読み出す動作、及び蓄積装置１７にファイルを書き込む動作を制御するようになっている。
【００６０】
ユーザＩＦ部１５は、例えばキーボードやディスプレイ等の入出力デバイスに接続され、ユーザが入力した転送速度情報を含む制御情報を送信管理部１１、受信管理部１２及びファイル送受信部１３に伝達するようになっている。
【００６１】
次に、本実施の形態におけるノード１〜３の動作について図１を用いて説明する。
【００６２】
最初に、ノード２の指示で、ノード２から転送されたファイルをノード１が蓄積装置１７に蓄積する場合の動作例について説明する。この場合、ノード１及び２は、それぞれ、本発明の受信装置及び送信装置に対応する。
【００６３】
まず、ノード２のファイル送受信部２３は、ノード１に転送する所定ファイルの送信を要求するためのｐｕｔコマンドを発行する。このｐｕｔコマンドを含む信号は、ノード２の送信管理部２１及び通信部２６、ノード１の通信部１６及び受信管理部１２を順次経由してノード１のファイル送受信部１３に入力される。
【００６４】
次いで、送信コマンドを受信したファイル送受信部１３は、ファイルの送り先として蓄積装置制御部１４を指定する。また、ファイル送受信部１３は、送信コマンドを正しく受け取ったことをノード２に知らせるためにステータス信号を生成して送信する。このステータス信号は、ノード１の送信管理部１１及び通信部１６、ノード２の通信部２６及び受信管理部２２を順次経由して、ノード２のファイル送受信部２３に入力される。
【００６５】
続いて、ノード２の通信部２６から転送されたファイルのデータは、ノード１の通信部１６で受信された後、受信管理部１２に送られる。受信管理部１２には、受信できる最大転送速度が例えばユーザＩＦ部１５によって予め設定されており、受信管理部１２は、この最大転送速度を超えないようにファイル送受信部１３にファイルのデータを渡す。ファイル送受信部１３に入るファイルのデータはそのまま蓄積装置制御部１４に渡され、蓄積装置制御部１４の制御のもと蓄積装置１７に蓄積される。
【００６６】
次に、ノード２の指示で、ノード１の蓄積装置１７に蓄積されているファイルをノード１からノード２に転送する場合の動作例について説明する。この場合、ノード１及び２は、それぞれ、本発明の送信装置及び受信装置に対応する。
【００６７】
まず、ノード２のファイル送受信部２３は、ノード１から転送される所定ファイルの受信を要求するためのｇｅｔコマンドを発行する。このｇｅｔコマンドを含む信号は、ノード２の送信管理部２１及び通信部２６、ノード１の通信部１６及び受信管理部１２を順次経由してノード１のファイル送受信部１３に入力される。
【００６８】
次いで、受信コマンドを受信したファイル送受信部１３は、ファイル取り出し先として蓄積装置制御部１４を指定する。また、ファイル送受信部１３は、受信コマンドを正しく受け取ったことをノード２に知らせるためにステータス信号を生成して送信する。このステータス信号は、ノード１の送信管理部１１及び通信部１６、ノード２の通信部２６及び受信管理部２２を順次経由して、ノード２のファイル送受信部２３に入力される。
【００６９】
続いて、ファイル送受信部１３は、蓄積装置制御部１４に対して所定ファイルを取り出すよう指示する。蓄積装置制御部１４は、蓄積装置１７から所定ファイルを取り出し、ファイル送受信部１３が受け取る。所定ファイルのデータはそのままノード１の送信管理部１１に送られる。送信管理部１１には、送信できる最大転送速度が例えばユーザＩＦ部１５により予め設定されており、所定ファイルのデータは、この最大転送速度を超えないようにノード１の通信部１６に渡され、そのままノード２の通信部２６に転送される。
【００７０】
次に、ノード２の指示で、ノード１が、ノード２から転送されたファイルを中継してノード３に転送する場合の動作例について説明する。この場合、ノード２及び３は、それぞれ、本発明の送信装置及び受信装置に対応し、ノード１は、本発明の中継装置に対応する。
【００７１】
まず、ノード２のファイル送受信部２３は、ノード１経由でノード３に転送する所定ファイルの送信を要求するためのｐｕｔコマンドを発行する。このｐｕｔコマンドを含む信号は、ノード２の送信管理部２１及び通信部２６、ノード１の通信部１６及び受信管理部１２を順次経由してノード１のファイル送受信部１３に入力される。
【００７２】
ｐｕｔコマンドを受信したファイル送受信部１３は、ファイル送り先としてノード３を指定する。ｐｕｔコマンドは、さらに、ノード２からノード１に送られた手順と同様な手順でノード１からノード３に送られる。ファイル送受信部１３はコマンドを正しく受け取ったことをノード２に知らせるために、ノード３から返ってくるステータス信号を受け取り、そのままノード１にステータス信号を返す。ステータス信号は、ノード３のファイル送受信部３３から、ノード３の送信管理部３１及び通信部３６、ノード１の通信部１６、受信管理部１２、ファイル送受信部１３、送信管理部１１及び通信部１６、ノード２の通信部２６及び受信管理部２２を順次経由して、ノード２のファイル送受信部２３に伝えられる。
【００７３】
続いて、ノード２の通信部２６から転送された所定ファイルのデータは、ノード１の通信部１６で受け取られ、所定ファイルのデータはそのままノード１の受信管理部１２に送られる。受信管理部１２には、受信できる最大転送速度が例えばユーザＩＦ部１５により予め設定されており、所定ファイルのデータは、この最大転送速度を超えないようにファイル送受信部１３に渡される。
【００７４】
ファイル送受信部１３に届いた所定ファイルのデータは、さらに、ノード１の送信管理部１１及び通信部１６、ノード３の通信部３６及び受信管理部３２を順次経由して、ノード３のファイル送受信部３３に送られる。ここで、送信管理部１１には、送信できる最大転送速度が例えばユーザＩＦ部１５により予め設定されており、送信管理部１１は、この最大転送速度を超えないように通信部１６に所定ファイルのデータを渡す。
【００７５】
前述の動作の説明から明らかなように、本発明の係るノードは、複数のノードから転送されたファイルを受信して蓄積する受信装置や、蓄積されているファイルを複数ノードに送信する送信装置、あるノードから転送されたファイルを蓄積しながら別のノードに当該ファイルを送信する中継装置を兼ねた受信装置等に適用することができる。
【００７６】
次に、送信管理部１１が転送速度を制御する場合の動作の詳細について図１及び図５を用いて説明する。なお、ファイル送信時の転送速度をｒとする。
【００７７】
図５は、ファイル送受信部１３及び送信管理部１１の動作例を示すフロー図である。図５に示すように、ファイル送受信部１３及び送信管理部１１は、別々のスレッドで並列に動作する。前述したように、ファイル送受信部１３はリングバッファを備えており、このリングバッファの状態をファイル送受信部１３が把握するとともに送信管理部１１も参照できる。リングバッファへの読み書きはブロック単位で行うものとする。ブロックサイズは任意であるが、ノード１内のメインメモリの空き容量や転送のパフォーマンスを考慮すると、通常、数キロバイトから数メガバイトのオーダーが好ましい。なお、図５において、開始時点ではリングバッファの初期化や他のノードとの通信は既に確立しているものとし、終了時点ではノードとの通信は切断されるものとする。
【００７８】
ユーザからのファイル転送要求は、図１に示されたユーザＩＦ部１５を介してファイル送受信手段１０で処理されるアプリケーション内に用意された変数であるコマンド値に逐次記録されるものとする。例えば、ノード１に蓄積されているファイルをノード１がノード２に転送する場合は、ｐｕｔコマンドを示す値がコマンド値に記録される。ｐｕｔコマンドを中断するときは、ｓｔｏｐコマンドを示す値がコマンド値に記録される。また、図５において、開始時点では既にｐｕｔコマンドが発行されており、コマンド値には既にｐｕｔコマンドを示す値が記録されているものとする。
【００７９】
まず、ファイル送受信部１３では、コマンド確認処理（Ｓ１１）において、コマンド値がｐｕｔコマンドかｓｔｏｐコマンドかを確認し、ｐｕｔコマンドであればリングバッファ空き領域確認処理（Ｓ１２）に進み、ｓｔｏｐコマンドであれば終了フラグセット処理（Ｓ１６）に進む。
【００８０】
次いで、リングバッファ空き領域確認処理（Ｓ１２）において、リングバッファの空き領域を確認し、空き領域がある場合はファイル読出処理（Ｓ１３）に進み、空き領域がない場合はスリープ処理（Ｓ１５）を経てコマンド確認処理（Ｓ１１）に戻る。ここで、スリープ処理（Ｓ１５）は、数マイクロ秒から数ミリ秒程度一定時間休止する処理である。
【００８１】
さらに、ファイル読出処理（Ｓ１３）において、蓄積装置１７からファイルのデータを１ブロック分だけ読み出し、ファイル送受信部１３のリングバッファに書き込む。
【００８２】
続いて、データ読出確認処理（Ｓ１４）において、ファイルデータの読み出しが完了したか否かを確認し、読み出しが完了した場合は終了フラグセット処理（Ｓ１６）に進み、読み出しが完了していない場合はコマンド確認処理（Ｓ１１）に戻る。
【００８３】
一方、送信管理部１１では、開始直後に現在時刻取得処理（Ｓ２１）において内部時計から現在時刻情報をマイクロ秒からミリ秒の精度で取得し、アプリケーション内に用意された変数ｔに代入する。ここで、初期値が０である積算時間ｔｓを定義し、ｔｓ：＝ｔｓ＋（ｔ−ｔ０）によりｔｓの値を更新する。なお、ｔ０は前回に現在時刻取得処理（Ｓ２１）が実行された後に得られたｔの値であり、初めて現在時刻取得処理（Ｓ２１）が実行された後にはｔ０の値はないため、ｔ−ｔ０＝０とする。また、ｔｓの値を更新後、ｔ０：＝ｔにより、ｔ０の値も更新する。
【００８４】
次いで、リングバッファデータ有無確認処理（Ｓ２２）において、リングバッファにデータがあるか否かを確認し、データがある場合はデータ量を変数ｂに代入した後に送信判定処理（Ｓ２３）に進み、データがない場合はスリープ処理（Ｓ２６）を経て現在時刻取得処理（Ｓ２１）に戻る。ここで、スリープ処理（Ｓ２６）は、数マイクロ秒から数秒程度一定時間休止する処理である。この休止時間をｔｐとする。休止時間ｔｐは、上記ｔ−ｔ０と同じ値ではなく、現在時刻取得処理（Ｓ２１）、リングバッファデータ有無確認処理（Ｓ２２）等の処理に要した時間だけ小さな値となる。
【００８５】
なお、現在時刻取得処理（Ｓ２１）において取得される時刻の精度が粗い場合は、休止時間ｔｐとｔ−ｔ０とが同じ値になることもある。また、休止時間ｔｐを小さな値にするほどデータ転送速度を細かな時間単位で制御できるがＣＰＵの負荷は大きくなる。
【００８６】
ここで、初期値が０である積算データ量ｂｓを定義し、ｂｓ：＝ｂｓ＋（ｂ−ｂ０）によりｂｓの値を更新する。ｂ０は前回にリングバッファデータ有無確認処理（Ｓ２２）が実行された後に得られたｂの値であり、初めてリングバッファデータ有無確認処理（Ｓ２２）が実行された後にはｂ０＝０となっている。積算データ量ｂｓの値を更新後、ｂ０：＝ｂにより、ｂ０の値も更新する。ファイルのデータをブロック単位で扱うため、ｂ、ｂ０及びｂｓの値は１ブロックのデータ量ｂｕの倍数となる。送信判定処理（Ｓ２３）では、ｔｓ×ｒ＞ｂｕを満たすときはファイル送信処理（Ｓ２４）に進み、上記条件を満たさないときはスリープ処理（Ｓ２６）を経由して現在時刻取得処理（Ｓ２１）に戻る。
【００８７】
ファイル送信処理（Ｓ２４）では、例えば前述の図４に示すファイル転送プロトコルに従って１ブロック分のデータをファイル送信先のノードに送信し、ｂｓ：＝ｂｓ−ｂｕ、ｔｓ：＝ｔｓ−ｂｕ／ｒに従って変数ｂｓ、ｔｓの値を更新する。終了フラグ確認処理（Ｓ２５）では、ファイル送受信部１３における終了フラグセット処理（Ｓ１６）において終了フラグがセットされているか否かを確認し、終了フラグがセットされていればｓｔｏｐコマンド送信処理（Ｓ２７）に進み、終了フラグがセットされていなければ現在時刻取得処理（Ｓ２１）に戻る。ｓｔｏｐコマンド送信処理（Ｓ２７）では、ｓｔｏｐコマンドをファイル送信先であるノードに送信する。
【００８８】
以上のように、送信管理部１１が転送速度を制御する場合は、送信判定処理（Ｓ２３）及びスリープ処理（Ｓ２６）を設けたことにより、ファイルの送信を断続的に行うことができる。したがって、図５に示された処理工程を送信管理部１１に複数並行して同時に実行させることにより、本実施の形態に係るノード１は、優先ファイル及び通常ファイルを例えば図３（ｂ）に示すように断続的に送信することができ、優先ファイルを指定された転送速度で、また通常ファイルをできる限り高速な転送速度で所定のノードに送信することができる。
【００８９】
次に、受信管理部１２が転送速度を制御する場合の動作の詳細について図１及び図６を用いて説明する。なお、ファイル受信時の転送速度をｒとする。
【００９０】
図６は、ファイル送受信部１３及び受信管理部１２の動作例を示すフロー図である。図６に示すように、ファイル送受信部１３及び受信管理部１２は、別々のスレッドで並列に動作する。前述したように、ファイル送受信部１３はリングバッファを備えており、このリングバッファの状態をファイル送受信部１３が把握するとともに受信管理部１２も参照できる。リングバッファに対する読み書きはブロック単位で行うものとする。ブロックサイズは任意であるが、ノード１内のメインメモリの空き容量や転送のパフォーマンスを考慮すると、通常、数キロバイトから数メガバイトのオーダーのブロックサイズが好ましい。なお、図６において、開始時点ではリングバッファの初期化や他のノードとの通信は既に確立しているものとし、終了時点では他のノードとの通信は切断されるものとする。
【００９１】
ユーザからのファイル転送要求は、図１に示されたユーザＩＦ部１５を介してファイル送受信手段１０で処理されるアプリケーション内の変数であるコマンド値に逐次記録される。例えば、ノード１に蓄積されているファイルをノード１がノード２に転送する場合は、ｐｕｔコマンドを示す値がコマンド値に記録される。ｐｕｔコマンドを中断するときは、ｓｔｏｐコマンドを示す値がコマンド値に記録される。また、図６において、開始時点では既にｐｕｔコマンドが発行されており、コマンド値は既にｐｕｔコマンドを示す値が記録されているものとする。
【００９２】
まず、ファイル送受信部１３では、コマンド確認処理（Ｓ３１）において、コマンド値がｐｕｔコマンドかｓｔｏｐコマンドかを確認し、ｐｕｔコマンドであればリングバッファデータ有無確認処理（Ｓ３２）に進み、ｓｔｏｐコマンドであれば終了フラグセット処理（Ｓ３６）に進む。
【００９３】
次いで、リングバッファデータ有無確認処理（Ｓ３２）において、リングバッファのデータの有無を確認し、データが有る場合は蓄積装置残量確認処理（Ｓ３３）に進み、データが無い場合はスリープ処理（Ｓ３５）を経てコマンド確認処理（Ｓ３１）に戻る。ここで、スリープ処理（Ｓ３５）は、数マイクロ秒から数ミリ秒程度一定時間休止する処理である。
【００９４】
蓄積装置残量確認処理（Ｓ３３）では、蓄積装置１７に残量があるか否かを確認し、残量がない場合は終了フラグセット処理（Ｓ３６）に進み、残量がある場合はファイル書込処理（Ｓ３４）を経てコマンド確認処理（Ｓ３１）に戻る。ファイル書込処理（Ｓ３４）では、リングバッファのデータを１ブロック分読み出し、ノード１の蓄積装置１７に書き込む。
【００９５】
一方、受信管理部１２では、開始直後に現在時刻取得処理（Ｓ４１）において内部時計より現在時刻をマイクロ秒からミリ秒の精度で取得し、アプリケーション内に用意された変数ｔに代入する。ここで初期値が０である積算時間ｔｓを定義し、ｔｓ：＝ｔｓ＋（ｔ−ｔ０）によりｔｓの値を更新する。なお、ｔ０は前回に現在時刻取得処理（Ｓ２１）が実行された後に得られたｔの値であり、初めて現在時刻取得処理（Ｓ２１）が実行された後にはｔ０の値はないため、ｔ−ｔ０＝０とする。またｔｓの値を更新後、ｔ０：＝ｔにより、ｔ０の値も更新する。
【００９６】
次いで、リングバッファ空き領域確認処理（Ｓ４２）において、リングバッファに空き領域があるか否かを確認し、空き領域がある場合は、アプリケーション内に用意された変数ｂにデータ量を代入してから受信判定処理（Ｓ４３）に進み、空き領域がない場合はスリープ処理（Ｓ４６）を経て現在時刻取得処理（Ｓ４１）に戻る。ここで、スリープ処理（Ｓ４６）は数マイクロ秒から数秒程度一定時間休止する処理である。この休止時間をｔｐとする。休止時間ｔｐは上記ｔ−ｔ０と同じ値ではなく、現在時刻取得処理（Ｓ４１）、リングバッファ空き領域確認処理（Ｓ４２）等の処理に要した時間だけ小さな値となる。
【００９７】
なお、現在時刻取得処理（Ｓ４１）の時刻の精度が粗い場合は、休止時間ｔｐとｔ−ｔ０が同じ値になることもある。また、休止時間を小さな値にするほどデータ転送速度を細かな時間単位で制御できるがＣＰＵの負荷は大きくなる。
【００９８】
ここで、初期値が０である積算データ量ｂｓを定義し、ｂｓ：＝ｂｓ＋（ｂ−ｂ０）によりｂｓの値を更新する。ｂ０は前回にリングバッファ空き領域確認処理（Ｓ４２）が実行された後に得られたｂの値であり、初めてリングバッファ空き領域確認処理（Ｓ４２）が実行された後にはｂ０＝０となっている。積算データ量ｂｓの値を更新後、ｂ０：＝ｂにより、ｂ０の値も更新する。ファイルのデータをブロック単位で扱うため、ｂ、ｂ０及びｂｓの値は１ブロックのデータ量ｂｕの倍数となる。受信判定処理（Ｓ４３）では、ｔｓ×ｒ＞ｂｕを満たすときはファイル受信処理（Ｓ４４）に進み、上記条件を満たさないときはスリープ処理（Ｓ４６）を経由して現在時刻取得処理（Ｓ４１）に戻る。
【００９９】
ファイル受信処理（Ｓ４４）では、例えば前述の図４に示すファイル転送プロトコルに従って１ブロック分のデータをファイル送信元のノードから受信し、ｂｓ：＝ｂｓ−ｂｕ、ｔｓ：＝ｔｓ−ｂｕ／ｒに従って変数ｂｓ，ｔｓの値を更新する。終了フラグ確認処理（Ｓ４５）では、ファイル送受信部１３における終了フラグセット処理（Ｓ３６）において終了フラグがセットされているか否かを確認し、終了フラグがセットされていればｓｔｏｐコマンド送信処理（Ｓ４７）に進み、終了フラグがセットされていなければ現在時刻取得処理（Ｓ４１）に戻る。ｓｔｏｐコマンド送信処理（Ｓ４７）では、ｓｔｏｐコマンドをファイル送信元であるノードに送信する。
【０１００】
以上のように、受信管理部１２が転送速度を制御する場合は、受信判定処理（Ｓ４３）及びスリープ処理（Ｓ４６）を設けたことにより、ファイルの送信を断続的に行うことができる。したがって、図６に示された処理工程を受信管理部１２に複数並行して同時に実行させることにより、本実施の形態に係るノード１は、優先ファイル及び通常ファイルを例えば図３（ｂ）に示すように断続的に送信することができ、優先ファイルを指定された転送速度で、また通常ファイルをできる限り高速な転送速度で所定のノードに送信することができる。
【０１０１】
次に、２つのノードから同時に１つのノードにファイルを転送する場合であって、ファイル転送中に転送速度を変更する際の制御例について図７〜１０を用いて説明する。以下の説明では、図７に示すように、２台のクライアント４１及び４２と、１台のサーバ４３の合計３台のノードがあり、これらが１つのネットワークスイッチ４４を介して接続されているものとする。ここで、図７に示されたクライアント４１、４２及びサーバ４３は、それぞれ、図１に示されたノード２、３及び１に対応するものである。なお、図８〜１０に示された表において、「送信側」及び「受信側」の各列に記載された数値は、クライアント４１、４２及びサーバ４３がそれぞれ有する送信管理部及び受信管理部の各転送速度メモリに記憶される転送速度のデータを示すものである。
【０１０２】
以下、次の３つステップにおける制御を順に行うときの３つのノード間のファイル転送について説明する。
（１）第１ステップ：クライアント４１の指示でクライアント４１に蓄積されているファイルをクライアント４１からサーバ４３に転送する。
（２）第２ステップ：続いて、クライアント４１の指示でクライアント４２に蓄積されているファイルをクライアント４２からサーバ４３に転送する。
（３）第３ステップ：さらに、クライアント４１の指示でクライアント４２からのファイルの転送速度を所望の転送速度に変更し、当該ファイルを優先ファイルとして転送する。
【０１０３】
以下の説明において、ネットワークの帯域を最大限に利用するため、ノードから転送速度の指定がない場合は最高速度で転送するものとする。また、転送速度の指定がある場合は、当該転送速度で転送されるファイルを優先ファイルとする。なお、ＩＥＥＥ８０２．３ｚを用いているので、転送速度の上限値は送信側、受信側とも１０００Ｍｂｐｓがファイルの転送前（例えばアプリケーション起動時）に予め設定されるものとする。
【０１０４】
最初に、クライアント４１に蓄積されているファイルをクライアント４１からサーバ４３に転送するときの手順を図８に示す。
【０１０５】
まず、クライアント４１の送信側の転送速度希望値を「自動」に設定する。クライアント４１の送信側は、サーバ４３に対して「自動」で送信することを要求する。サーバ４３は、この要求を受け取り、受信側の希望値に「自動」を示すデータを格納する（図８（ａ））。その後、サーバ４３は、サーバ４３の受信側の実施値にサーバ４３の受信上限値である１０００Ｍｂｐｓの値を格納し、クライアント４１に対し１０００Ｍｂｐｓで転送することを指示する。クライアント４１はこの指示に対し、送信側の実施値に１０００Ｍｂｐｓの値を格納する（図８（ｂ））。クライアント４１はサーバ４３に対しファイルを１０００Ｍｂｐｓで転送する（図８（ｃ））。
【０１０６】
次に、図８（ｃ）に示す状態で、クライアント４２に蓄積されているファイルをクライアント４２からサーバ４３に転送するときの手順を図９に示す。
【０１０７】
まず、クライアント４２の送信側の転送速度希望値を「自動」に設定する。クライアント４２の送信側は、サーバ４３に対して「自動」で送信することを要求する。サーバ４３は、この要求を受け取り、受信側の希望値に「自動」を示すデータを格納する（図９（ａ））。その後、サーバ４３は、サーバ４３の受信上限値である１０００Ｍｂｐｓの値を、受信側の希望値が「自動」となっている個数である２で割り、その値となる５００Ｍｂｐｓの値をサーバ４３の受信側の両方の実施値に格納し、クライアント４１及び４２に対しそれぞれ５００Ｍｂｐｓで転送することを指示する。クライアント４１及び４２は、この指示に対し、それぞれ送信側の実施値に５００Ｍｂｐｓの値を格納する（図９（ｂ））。クライアント４１とクライアント４２は、それぞれサーバ４３に対しファイルを５００Ｍｂｐｓで転送する（図９（ｃ））。
【０１０８】
次に、図９（ｃ）に示す状態で、クライアント４２からのファイルの転送速度を５００Ｍｂｐｓから８００Ｍｂｐｓに変更するときの手順を図１０に示す。
【０１０９】
まず、クライアント４２の送信側の転送速度希望値を８００Ｍｂｐｓに設定する。クライアント４２の送信側は、サーバ４３に対して８００Ｍｂｐｓで送信することを要求する。サーバ４３は、この要求を受け取り、受信側の希望値に８００Ｍｂｐｓの値を格納する（図１０（ａ））。その後、サーバ４３は、この希望値が受信側の上限値を超えていないことを確認し、サーバ４３の受信側のクライアント４２に対する実施値に８００Ｍｂｐｓの値を格納し、サーバ４３の受信上限値である１０００Ｍｂｐｓから８００Ｍｂｐｓを差し引いた２００Ｍｂｐｓの値をサーバ４３の受信側のクライアント４２に対する実施値に格納し、クライアント４１及び４２に対しそれぞれ２００Ｍｂｐｓ、８００Ｍｂｐｓの転送速度でファイルを転送することを指示する。クライアント４１及び４２は、この指示に対し、送信側の実施値にそれぞれ２００Ｍｂｐｓ及び８００Ｍｂｐｓの値を格納する（図１０（ｂ））。クライアント４１及び４２は、それぞれ、サーバ４３に対しファイルを２００Ｍｂｐｓ及び８００Ｍｂｐｓで転送する（図１０（ｃ））。
【０１１０】
なお、転送が終了するときには、終了するノードが転送速度希望値を０に設定することで、他の転送にネットワークリソースを譲ることができる。例えば、仮にクライアント４２からサーバ４３への転送が先に完了すると、クライアント４１からのファイルの転送速度は２００Ｍｂｐｓから１０００Ｍｂｐｓに戻る。また、前述の説明において、受信管理部で転送速度を制御する場合は、送信指示は必須ではなく、ノード１の送信側の希望値や実施値を管理することは必須ではない。
【０１１１】
以上のように、本実施の形態におけるノード１によれば、優先ファイル及び通常ファイルの受信又は送信を行う際に、優先ファイルの転送速度を所定の転送速度に設定し、通常ファイルの転送速度を優先ファイルの転送速度に応じた転送速度に設定する構成としたので、優先ファイルを通常ファイルに優先して転送するよう転送速度を制御することができる。
【０１１２】
したがって、本実施の形態におけるノード１は、ネットワーク接続されている複数のノード間でファイルの転送が行われている状況においても、優先ファイルの転送を通常ファイルの転送よりも優先させながら通常ファイル転送を可能な限り高速で転送することができる。
【０１１３】
また、本実施の形態におけるノード１は、前述の構成により、例えばユーザが指定した転送速度を維持しながら優先ファイルを転送することができる。
【０１１４】
また、本実施の形態におけるノード１は、前述の構成により、優先ファイルをストリーミング転送のファイルとして転送することもできる。
【０１１５】
また、本実施の形態におけるノード１によれば、優先ファイル及び通常ファイルの受信又は送信を行う際に、優先ファイル及び通常ファイルのデータを断続的に受信し、又は送信する構成としたので、処理負荷を増大させることなくファイルの送信又は受信を行うことができる。
【０１１６】
なお、前述の実施の形態において、ノード１が１つの通信部１６を備え、通信部１６が２つのノード２及び３と通信する構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、例えばノード１に接続されるノードの個数だけ通信部を設け、各通信部が各ノードとそれぞれ別個に通信する構成としてもよい。この場合、各通信部には送信管理部及び受信管理部がそれぞれ設けられる構成となる。
【０１１７】
（第２の実施の形態）
本発明に係るノードの第２の実施の形態における主要部は、図１１に示すように構成されている。すなわち、本実施の形態におけるノードは、第１の実施の形態におけるノード１の受信管理部１２（図１参照）及び通信部１６の構成を変更したものである。なお、第１の実施の形態におけるノード１と同じ符号を用いて説明する。また、図１１に示す主要部の構成以外は、第１の実施の形態におけるノード１と同じ構成であるので、説明を省略する。
【０１１８】
図１１に示すように、本実施の形態におけるノードの受信管理部１２は、通信部１６から優先ファイル及び通常ファイルを受信するようになっており、優先ファイルを一時的に記憶するリングバッファを有する優先ファイルリングバッファ１２ａと、通常ファイルを一時的に記憶するリングバッファを有する通常ファイルリングバッファ１２ｂと、優先ファイルリングバッファ１２ａ及び通常ファイルリングバッファ１２ｂのバッファ数を設定するバッファ数設定部１２ｃとを備えている。
【０１１９】
本実施の形態における通信部１６は、例えばファイルを送信するノードのポート番号を識別し、入力されたファイルを優先ファイル又は通常ファイルに分別して受信管理部１２に出力するようになっている。
【０１２０】
優先ファイルリングバッファ１２ａは、例えばＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）型のメモリで構成され、複数に区分された記憶領域を備えている。優先ファイルリングバッファ１２ａは、通信部１６から優先ファイルのみを入力して記憶し、入力した順序でファイル送受信部１３に出力するようになっている。
【０１２１】
通常ファイルリングバッファ１２ｂは、例えばＦＩＦＯ型のメモリで構成され、複数に区分された記憶領域を備えている。通常ファイルリングバッファ１２ｂは、通信部１６から通常ファイルのみを入力して記憶し、入力した順序でファイル送受信部１３に出力するようになっている。
【０１２２】
バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａ及び通常ファイルリングバッファ１２ｂがそれぞれ有する記憶領域の区分数（以下「バッファ数」という。）を設定するようになっている。
【０１２３】
具体的には、バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａが有するバッファ数をｎ、通常ファイルリングバッファ１２ｂが有するバッファ数をｍとし、ファイル受信時の転送速度をｒ、転送速度の上限値をｒｍａｘとすると、ｎ：ｍ＝ｒ：ｒｍａｘ−ｒとなるようｎ及びｍを設定するようになっている。
【０１２４】
なお、優先ファイルリングバッファ１２ａ及び通常ファイルリングバッファ１２ｂは、本発明のバッファに対応している。また、バッファ数設定部１２ｃは、本発明のバッファ数比率設定部に対応している。
【０１２５】
本実施の形態におけるノードは、前述のように構成されているので、ノードに入力されたファイルが、優先ファイルであれば優先ファイルリングバッファ１２ａに、通常ファイルであれば通常ファイルリングバッファ１２ｂに入力される。
【０１２６】
優先ファイルリングバッファ１２ａには優先ファイルしか入ることができないため、通常ファイルは、通常ファイルリングバッファ１２ｂに空き領域がなく、かつ優先ファイルリングバッファ１２ａに空き領域があっても、優先ファイルリングバッファ１２ａには入力されない。この場合、通常ファイルリングバッファ１２ｂに空き領域ができるまでは、ＴＣＰのフロー制御により通常ファイルの転送は中断され、通信部１６のリングバッファに留まることとなる。通常ファイルの転送が中断している間は、優先ファイルのみが転送される。なお、優先ファイルリングバッファ１２ａに既に記憶された優先ファイルと、通常ファイルリングバッファ１２ｂに既に記憶された通常ファイルは、平等にファイル送受信部１３に送られる。
【０１２７】
以上のように、バッファ数設定部１２ｃが、優先ファイルリングバッファ１２ａ及び通常ファイルリングバッファ１２ｂの各バッファ数を逐次制御することにより、優先ファイルは指定された受信転送速度を維持して転送される。一方、通常ファイルは、ＴＣＰのフロー制御に従って自動的に残りの帯域が割り当てられ、優先ファイルの転送に影響を及ぼすことなく可能な限り高速に転送される。
【０１２８】
次に、第１の実施の形態において図７〜１０を用いて説明した第１〜３ステップにおける動作について説明する。
【０１２９】
第１ステップでは、転送速度が特に指定されていないので、バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａのバッファ数を０に設定し、クライアント４１からのファイルは通常ファイルリングバッファ１２ｂにのみに記憶される。このときの転送速度は最大転送速度である１０００Ｍｂｐｓとなる。
【０１３０】
第２ステップでは、第１ステップと同様に、転送速度が特に指定されていないので、バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａのバッファ数を０に設定し、クライアント４２からのファイルは通常ファイルリングバッファ１２ｂにのみに記憶される。ここで、クライアント４１及び４２からのファイルは、ＴＣＰのフロー制御に従ってほぼ平等に入力されるため、転送速度は、共に約５００Ｍｂｐｓとなる。
【０１３１】
第３ステップでは、５００Ｍｂｐｓから８００Ｍｂｐｓに転送速度を変更する要求があるため、バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａのバッファ数と、通常ファイルリングバッファ１２ｂのバッファ数との比率を４：１に設定し、クライアント４２からのファイルは優先ファイルリングバッファ１２ａに、クライアント４１からのファイルは通常ファイルリングバッファ１２ｂに、それぞれ入力される。この結果、クライアント４１からのファイルの転送速度は２００Ｍｂｐｓ、クライアント４２からのファイルの転送速度は８００Ｍｂｐｓとなる。
【０１３２】
以上のように、本実施の形態におけるノードによれば、バッファ数設定部１２ｃは、優先ファイルリングバッファ１２ａ及び通常ファイルリングバッファ１２ｂの各バッファ数を逐次制御する構成としたので、指定された受信転送速度を維持して優先ファイルを転送することができ、通常ファイルをＴＣＰのフロー制御に従って自動的に残りの帯域に割り当てて優先ファイルの転送に影響を及ぼすことなく可能な限り高速に転送することができる。
【０１３３】
（第３の実施の形態）
本発明に係るノードの第３の実施の形態における主要部は、図１２に示すように構成されている。すなわち、本実施の形態におけるノードは、第１の実施の形態におけるノード１の受信管理部１２（図１参照）の構成及び受信管理部１２に係る構成を変更したものである。なお、第１の実施の形態におけるノード１と同じ符号を用いて説明する。また、図１２に示す主要部の構成以外は、第１の実施の形態におけるノード１と同じ構成であるので、説明を省略する。
【０１３４】
図１２に示すように、本実施の形態におけるノードは、受信するファイルのファイルサイズ情報を取得する受信管理部１２と、現在時刻情報を取得する現在時刻取得部５１と、受信期限時刻情報を出力するユーザＩＦ部５２と、転送速度を計算する転送速度計算部５３とを備えている。
【０１３５】
本実施の形態における受信管理部１２は、受信するファイルのファイルサイズ情報を取得し、転送速度計算部５３に出力するようになっている。例えば、受信管理部１２は、ファイルの送信元のファイル送受信部から通信部１６を経由してファイルサイズ情報を取得することができる。なお、本実施の形態における受信管理部１２は、本発明のファイルサイズ情報取得手段に対応している。
【０１３６】
現在時刻取得部５１は、内部時計から現在時刻情報を取得して転送速度計算部５３に出力するようになっている。なお、現在時刻取得部５１は、本発明の現在時刻情報取得手段に対応している。
【０１３７】
ユーザＩＦ部５２は、ユーザが設定した受信期限時刻情報を転送速度計算部５３に出力するようになっており、本発明の受信期限情報取得手段に対応する。ここで、受信期限時刻情報とは、ファイル送受信部１３が受信するファイルの受信の期限時刻を示す情報をいう。なお、ノード２又は３（図１参照）から受信期限時刻情報を送信させ、当該受信期限時刻情報を受信管理部１２が受信する構成としてもよい。この場合、本実施の形態における受信管理部１２は、本発明の受信期限情報取得手段に対応する。
【０１３８】
転送速度計算部５３は、受信管理部１２から受信したファイルサイズ情報と、現在時刻取得部５１から受信した現在時刻情報と、ユーザＩＦ部５２から受信した受信期限時刻情報とに基づいて、受信管理部１２がファイルを受信する際の転送速度を計算し、転送速度情報として受信管理部１２に出力するようになっている。なお、転送速度計算部５３は、本発明のファイル転送速度計算手段に対応している。
【０１３９】
また、転送速度計算部５３は、受信期限時刻が設定されている場合、ファイル受信速度を計算し、その値を受信管理部１２に設定するようになっている。この構成により、本実施の形態におけるノードは、受信時刻が設定されたファイルを当該受信期限時刻までに受信することができる。なお、本実施の形態におけるノードは、受信期限時刻が設定されていない場合、転送速度計算部５３を用いず、指定された転送速度でファイルを転送することができる。
【０１４０】
次に、本実施の形態におけるノードの動作について説明する。
【０１４１】
現在時刻をｔ０秒、受信期限時刻をｔ１秒、転送するファイルのファイルサイズをｓビットとする。このとき、転送速度は最低でもｓ／（ｔ−ｔ０）ビット／秒は必要であるので、転送速度の初期値ｒは、適当な正の値△ｒを用いて、ｒ０＝Ｓ／（ｔ１−ｔ０）＋△ｒとする。ここで、△ｒの値はｓ／（ｔ１−ｔ０）の値の１０分の１から１００分の１程度が望ましい。
【０１４２】
ファイルの転送中、例えばユーザからの指定により、受信期限時刻ｔ１の値が変更された場合は、その時点での現在時刻ｔ０と転送中のファイルの残りのサイズｓを用いて、再度上記の式によりｒ０を計算し直す。
【０１４３】
以上のように、本実施の形態におけるノードによれば、転送速度計算部５３は、受信期限時刻までに優先ファイルの受信が完了するよう優先ファイルの転送速度を計算するので、優先ファイル及び通常ファイルを受信する状況においても、優先ファイルを受信期限時刻までに受信することができる。
【０１４４】
なお、前述の実施の形態において、転送中に何らかの理由により、設定した転送速度が維持できず、最初に設定した転送速度ｒ０では受信期限時刻ｔ１に間に合わなくなる恐れがある場合に備えて、転送中であるファイルの未転送のファイルサイズと現在時刻とを一定時間間隔で確認し、上記の式により受信時の転送速度を求め、この値がｒ０を超えた場合は、受信時の転送速度を上記の式により再設定するルーチンを含む構成としてもよい。
【０１４５】
また、前述の実施の形態では、受信時の転送速度を受信管理部１２が制御する例を挙げて説明したが、送信管理部１１が送信時の転送速度を制御する構成とすることもできる。この場合、送信管理部３１に転送速度計算部５３が接続され、この転送速度計算部５３には、現在時刻取得部５１及びユーザＩＦ部５２が接続される構成となる。この場合、前述の受信期限時刻を送信期限時刻と読み替えればよい。
【０１４６】
以上の構成では、送信管理部１１は、転送するファイルのファイルサイズ情報をファイル送受信部１３より取得することができるので、転送速度計算部５３は、ファイルサイズ情報、現在時刻情報及び送信期限時刻情報を受信し、送信時の転送速度情報を送信管理部１１に送信する。その結果、送信管理部１１は、転送するファイルの送信期限時刻を設定することができる。なお、この構成において、ユーザＩＦ部５２又は受信管理部１２は、本発明の送信期限情報取得手段に対応する。
【産業上の利用可能性】
【０１４７】
以上のように、本発明に係る受信装置、送信装置及び中継装置は、特定のファイルを他のファイルに優先して転送するよう転送速度を制御することができるという効果を有し、ネットワークを介して授受されるデータの転送速度の制御を行う受信装置、送信装置及び中継装置等として有用である。
【図面の簡単な説明】
【０１４８】
【図１】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードの構成を示すブロック図
【図２】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードが、ファイルを転送する際の説明図
【図３】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードが、ファイルを転送する際の説明図
【図４】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードが用いる通信プロトコルの一例を示す図
【図５】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードのファイル送受信部及び送信管理部の動作例を示すフロー図
【図６】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態におけるノードのファイル送受信部及び送信管理部の動作例を示すフロー図
【図７】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態における２つのノードから同時に１つのノードにファイルを転送する場合の構成例を示す図
【図８】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態において、クライアントに蓄積されているファイルをサーバに転送する際の説明図
【図９】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態において、２つのクライアントに蓄積されているファイルをサーバに転送速度を設定しないで転送する際の説明図
【図１０】本発明に係る受信装置、送信装置及び中継装置の第１の実施の形態において、２つのクライアントに蓄積されているファイルをサーバに一方のクライアントのファイルのみ指定して転送する際の説明図
【図１１】本発明に係る受信装置、送信装置及び中継装置の第２の実施の形態におけるノードの主要部の構成を示すブロック図
【図１２】本発明に係る受信装置、送信装置及び中継装置の第３の実施の形態におけるノードの主要部の構成を示すブロック図
【符号の説明】
【０１４９】
１、２、３  ノード
１０  ファイル送受信手段
１１、２１、３１  送信管理部
１２、２２、３２  受信管理部
１２ａ  優先ファイルリングバッファ
１２ｂ  通常ファイルリングバッファ
１２ｃ  バッファ数設定部
１３、２３、３３  ファイル送受信部
１４  蓄積装置制御部
１５  ユーザＩＦ部
１６、２６、３６  通信部
１７  蓄積装置
４１、４２  クライアント
４３  サーバ
４４  ネットワークスイッチ
５１  現在時刻取得部
５２  ユーザＩＦ部
５３  転送速度計算部
【図１】
2008160557.tif 000003
【図２】
2008160557.tif 000004
【図３】
2008160557.tif 000005
【図４】
2008160557.tif 000006
【図５】
2008160557.tif 000007
【図６】
2008160557.tif 000008
【図７】
2008160557.tif 000009
【図８】
2008160557.tif 000010
【図９】
2008160557.tif 000011
【図１０】
2008160557.tif 000012
【図１１】
2008160557.tif 000013
【図１２】
2008160557.tif 000014