(57)【要約】【課題】フローの分割／復元を伴う通信を効率よく実現する。【解決手段】通信装置１は、送信データを複数のブロックに分割するデータ分割／復元処理部１−２と、分割されたブロックが自装置から最終的な受信端末またはデータの合流地点の装置に到達するまでの到達時間を複数のコネクションの各々についてブロック毎に推定し、推定の結果に基づいて複数のコネクションの中から到達時間が最も短いコネクションをブロック毎に選択する到達時間計算部７−４と、選択されたコネクションを用いて各ブロックをネットワークに出力するネットワーク処理部１−３とを有する。【選択図】  図１
2006060674.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の装置と接続され、複数のコネクションにデータを分散させて通信を行う通信装置において、
送信データの分割によって生成されたブロックが自装置から最終的な受信端末またはデータの合流地点の装置に到達するまでの到達時間を複数のコネクションの各々についてブロック毎に推定する到達時間推定手段と、
前記推定の結果に基づいて前記複数のコネクションの中から前記到達時間が最も短いコネクションをブロック毎に選択するコネクション選択手段と、
前記選択されたコネクションを用いて各ブロックをネットワークに出力するネットワーク処理手段とを有することを特徴とする通信装置。
【請求項２】
請求項１記載の通信装置において、
前記到達時間推定手段は、
前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手段と、
前記ブロックが前記ネットワークに出力されてから前記受信端末または合流地点の装置に到達するまでの第２の時間を計測する第２の計測手段とを備え、
自装置が送信端末である場合に、前記第１の時間と前記第２の時間とを加算して前記到達時間を推定することを特徴とする通信装置。
【請求項３】
請求項１記載の通信装置において、
前記到達時間推定手段は、
前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手段と、
前記ブロックが前記ネットワークに出力されてから前記選択されたコネクションの受信側の中継装置に到達するまでの第２の時間を計測する第２の計測手段と、
前記ブロックが前記中継装置から前記受信端末または合流地点の装置に到達するまでの第３の時間を計測する第３の計測手段とを備え、
自装置と前記受信端末または合流地点の装置との間に前記中継装置が存在する場合に、前記第１の時間と前記第２の時間と前記第３の時間とを加算して前記到達時間を推定することを特徴とする通信装置。
【請求項４】
請求項３記載の通信装置において、
さらに、前記到達時間推定手段が推定した到達時間を前記選択されたコネクションの送信側にある装置に通知する通知手段を備え、
前記中継装置の通知手段がこの中継装置から前記受信端末または合流地点の装置に到達するまでの到達時間を前記選択されたコネクションの送信側の装置に通知し、
この送信側の装置の前記第３の計測手段は、前記通知された到達時間を前記第３の時間とすることを特徴とする通信装置。
【請求項５】
請求項１乃至４のいずれか１項に記載の通信装置において、
さらに、前記コネクションの選択の前に、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に応じて、コネクションの設定先を決定するコネクション設定先決定手段と、
このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有することを特徴とする通信装置。
【請求項６】
請求項５記載の通信装置において、
前記コネクション設定先決定手段は、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に対応する複数の候補の中から、各候補の優先度とそれぞれの候補への経路の通信品質によりコネクションの設定先を決定することを特徴とする通信装置。
【請求項７】
請求項１乃至４のいずれか１項に記載の通信装置において、
さらに、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、
前記コネクションの選択の前に、前記記憶手段に記憶された内容を用いて、データの送信先に対応するコネクションの設定先を決定し、前記記憶手段に記憶された内容からコネクションの設定先を特定できない場合には、データの送信先をコネクションの設定先として決定するコネクション設定先決定手段と、
このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有することを特徴とする通信装置。
【請求項８】
請求項７記載の通信装置において、
コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手段から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置のアドレスをコネクション設定先のアドレスとして前記コネクション設定要求元へ送信する手段を有することを特徴とする通信装置。
【請求項９】
請求項７記載の通信装置において、
コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手段から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置がコネクション設定要求元となって前記コネクション設定先に向けてコネクション設定要求パケットを送信する手段を有することを特徴とする通信装置。
【請求項１０】
請求項１乃至４のいずれか１項に記載の通信装置において、
さらに、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、
前記コネクションの選択の前に、前記記憶手段に記憶された内容を用いて、データの送信先に対応する複数のコネクションの設定先を決定するコネクション設定先決定手段と、
このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有することを特徴とする通信装置。
【請求項１１】
請求項１乃至４のいずれか１項に記載の通信装置において、
コネクション設定要求元とコネクションの設定先との間に存在する装置である場合に、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、
前記コネクション設定要求元から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、前記記憶手段に記憶された内容に基づいて、前記コネクション設定要求パケットが示すコネクション設定先と同じ組に属する他の設定先へのコネクション設定を行う手段とを有することを特徴とする通信装置。
【請求項１２】
請求項２または３記載の通信装置において、
前記第１の計測手段は、各コネクションの送信キュー長あるいは送信待ち時間と、各コネクション上での通信プロトコルの実効スループットとに基づいて、前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を前記複数のコネクションの各々についてブロック毎に計測することを特徴とすることを特徴とする通信装置。
【請求項１３】
請求項１記載の通信装置において、
さらに、経路毎に障害を検出する経路障害検出手段と、
経路毎に通信品質を測定する通信品質測定手段とを有し、
前記コネクション選択手段は、あるコネクションが利用する経路において障害が発生した場合、若しくはあるコネクションの通信性能が低下した場合に、このコネクションで送信待ち状態にあるブロックを他のコネクションを利用して送信するように選択することを特徴とする通信装置。
【請求項１４】
請求項１３記載の通信装置において、
前記経路障害検出手段は、いずれかのコネクションが一定回数以上再送タイムアウト状態に陥った場合に、このコネクションが利用する経路において障害が発生したと判定することを特徴とする通信装置。
【請求項１５】
請求項１３記載の通信装置において、
前記通信品質測定手段は、コネクションのパケット往復遅延時間、パケット往復遅延時間の変化率、通信プロトコルの実効スループット、パケットロス率、経路上のリンク帯域、経路上の空き帯域、あるいは経路上の使用可能帯域のいずれかがそれぞれの閾値と比較して劣っている場合に、コネクションの通信性能が低下したと判定することを特徴とする通信装置。
【請求項１６】
請求項１３記載の通信装置において、
前記通信品質測定手段は、全てのコネクションの平均的な通信品質を計測する平均的通信品質計測手段と、計測した平均的通信品質とそれぞれのコネクションの通信品質とを比較する比較手段とを有し、複数のコネクションの中に通信品質が前記平均的通信品質の一定割合を越えて劣っているコネクションが存在する場合に、このコネクションの通信性能が低下したと判定することを特徴とする通信装置。
【請求項１７】
請求項１記載の通信装置において、
さらに、通信で使用中のコネクションの数が一定数以上となった場合に、最も通信品質の低いコネクションの使用を中止する中止手段を有することを特徴とする通信装置。
【請求項１８】
請求項１記載の通信装置において、
通信開始からの継続時間に応じて使用するコネクション数を変化させるコネクション数変化手段を有することを特徴とする通信装置。
【請求項１９】
請求項１記載の通信装置において、
前記コネクション選択手段は、パケット毎、予め定められたデータ量毎、もしくは上位層で一塊となるデータ量毎に、出力するコネクションを選択することを特徴とする通信装置。
【請求項２０】
ネットワークを介して他の装置と接続された通信装置において、複数のコネクションにデータを分散させて通信を行うデータ通信方法であって、
送信データの分割によって生成されたブロックが自装置から最終的な受信端末またはデータの合流地点の装置に到達するまでの到達時間を複数のコネクションの各々についてブロック毎に推定する到達時間推定手順と、
前記推定の結果に基づいて前記複数のコネクションの中から前記到達時間が最も短いコネクションをブロック毎に選択するコネクション選択手順と、
前記選択されたコネクションを用いて各ブロックをネットワークに出力するネットワーク処理手順とを備えることを特徴とするデータ通信方法。
【請求項２１】
請求項２０記載のデータ通信方法において、
前記到達時間推定手順は、
前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手順と、
前記ブロックが前記ネットワークに出力されてから前記受信端末または合流地点の装置に到達するまでの第２の時間を計測する第２の計測手順とを備え、
自装置が送信端末である場合に、前記第１の時間と前記第２の時間とを加算して前記到達時間を推定することを特徴とするデータ通信方法。
【請求項２２】
請求項２０記載のデータ通信方法において、
前記到達時間推定手順は、
前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手順と、
前記ブロックが前記ネットワークに出力されてから前記選択されたコネクションの受信側の中継装置に到達するまでの第２の時間を計測する第２の計測手順と、
前記ブロックが前記中継装置から前記受信端末または合流地点の装置に到達するまでの第３の時間を計測する第３の計測手順とを備え、
自装置と前記受信端末または合流地点の装置との間に前記中継装置が存在する場合に、前記第１の時間と前記第２の時間と前記第３の時間とを加算して前記到達時間を推定することを特徴とするデータ通信方法。
【請求項２３】
請求項２２記載のデータ通信方法において、
さらに、前記到達時間推定手順が推定した到達時間を前記選択されたコネクションの送信側にある装置に通知する通知手順を備え、
前記中継装置で行われる通知手順がこの中継装置から前記受信端末または合流地点の装置に到達するまでの到達時間を前記選択されたコネクションの送信側の装置に通知し、
この送信側の装置で行われる前記第３の計測手順は、前記通知された到達時間を前記第３の時間とすることを特徴とするデータ通信方法。
【請求項２４】
請求項２０乃至２３のいずれか１項に記載のデータ通信方法において、
さらに、前記コネクションの選択の前に、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に応じて、コネクションの設定先を決定するコネクション設定先決定手順と、
このコネクション設定先決定手順の決定に応じてコネクションを開設するコネクション開設手順とを備えることを特徴とするデータ通信方法。
【請求項２５】
請求項２４記載のデータ通信方法において、
前記コネクション設定先決定手順は、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に対応する複数の候補の中から、各候補の優先度とそれぞれの候補への経路の通信品質によりコネクションの設定先を決定することを特徴とするデータ通信方法。
【請求項２６】
請求項２０乃至２３のいずれか１項に記載のデータ通信方法において、
さらに、前記コネクションの選択の前に、データの送信先に対応して予め登録されたコネクションの複数の設定先の情報を用いて、データの送信先に対応するコネクションの設定先を決定し、予め登録された内容からコネクションの設定先を特定できない場合には、データの送信先をコネクションの設定先として決定するコネクション設定先決定手順と、
このコネクション設定先決定手順の決定に応じてコネクションを開設するコネクション開設手順とを備えることを特徴とするデータ通信方法。
【請求項２７】
請求項２６記載のデータ通信方法において、
コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手順から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置のアドレスをコネクション設定先のアドレスとして前記コネクション設定要求元へ送信する手順を備えることを特徴とするデータ通信方法。
【請求項２８】
請求項２６記載のデータ通信方法において、
コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手順から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置がコネクション設定要求元となって前記コネクション設定先に向けてコネクション設定要求パケットを送信する手順を備えることを特徴とするデータ通信方法。
【請求項２９】
請求項２０乃至２３のいずれか１項に記載のデータ通信方法において、
さらに、前記コネクションの選択の前に、データの送信先に対応して予め登録されたコネクションの複数の設定先の情報を用いて、データの送信先に対応する複数のコネクションの設定先を決定するコネクション設定先決定手順と、
このコネクション設定先決定手順の決定に応じてコネクションを開設するコネクション開設手順とを備えることを特徴とするデータ通信方法。
【請求項３０】
請求項２０乃至２３のいずれか１項に記載のデータ通信方法において、
コネクション設定要求元とコネクションの設定先との間に存在する装置である場合に、前記コネクション設定要求元から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、データの送信先に対応して予め登録されたコネクションの複数の設定先の情報を用いて、前記コネクション設定要求パケットが示すコネクション設定先と同じ組に属する他の設定先へのコネクション設定を行う手順とを備えることを特徴とするデータ通信方法。
【請求項３１】
請求項２１または２２記載のデータ通信方法において、
前記第１の計測手順は、各コネクションの送信キュー長あるいは送信待ち時間と、各コネクション上での通信プロトコルの実効スループットとに基づいて、前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を前記複数のコネクションの各々についてブロック毎に計測することを特徴とすることを特徴とするデータ通信方法。
【請求項３２】
請求項２０記載のデータ通信方法において、
さらに、経路毎に障害を検出する経路障害検出手順と、
経路毎に通信品質を測定する通信品質測定手順とを備え、
前記コネクション選択手順は、あるコネクションが利用する経路において障害が発生した場合、若しくはあるコネクションの通信性能が低下した場合に、このコネクションで送信待ち状態にあるブロックを他のコネクションを利用して送信するように選択することを特徴とするデータ通信方法。
【請求項３３】
請求項３２記載のデータ通信方法において、
前記経路障害検出手順は、いずれかのコネクションが一定回数以上再送タイムアウト状態に陥った場合に、このコネクションが利用する経路において障害が発生したと判定することを特徴とするデータ通信方法。
【請求項３４】
請求項３２記載のデータ通信方法において、
前記通信品質測定手順は、コネクションのパケット往復遅延時間、パケット往復遅延時間の変化率、通信プロトコルの実効スループット、パケットロス率、経路上のリンク帯域、経路上の空き帯域、あるいは経路上の使用可能帯域のいずれかがそれぞれの閾値と比較して劣っている場合に、コネクションの通信性能が低下したと判定することを特徴とするデータ通信方法。
【請求項３５】
請求項３２記載のデータ通信方法において、
前記通信品質測定手順は、全てのコネクションの平均的な通信品質を計測する平均的通信品質計測手順と、計測した平均的通信品質とそれぞれのコネクションの通信品質とを比較する比較手順とを有し、複数のコネクションの中に通信品質が前記平均的通信品質の一定割合を越えて劣っているコネクションが存在する場合に、このコネクションの通信性能が低下したと判定することを特徴とするデータ通信方法。
【請求項３６】
請求項２０記載のデータ通信方法において、
さらに、通信で使用中のコネクションの数が一定数以上となった場合に、最も通信品質の低いコネクションの使用を中止する中止手順を備えることを特徴とするデータ通信方法。
【請求項３７】
請求項２０記載のデータ通信方法において、
通信開始からの継続時間に応じて使用するコネクション数を変化させるコネクション数変化手順を備えることを特徴とするデータ通信方法。
【請求項３８】
請求項２０記載のデータ通信方法において、
前記コネクション選択手順は、パケット毎、予め定められたデータ量毎、もしくは上位層で一塊となるデータ量毎に、出力するコネクションを選択することを特徴とするデータ通信方法。
【請求項３９】
請求項２０乃至３８のいずれか１項に記載の手順をコンピュータに実行させることを特徴とするデータ通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して他の装置と接続された通信装置に係り、特に複数のコネクションにデータを分散させて通信を行う通信装置、データ通信方法およびプログラムに関するものである。
【背景技術】
【０００２】
従来、送信端末と受信端末間の通信で用いられる１つの通信フローのデータを複数のフローに分岐させて、最後に復元する通信方法がある。このような通信方法として、例えば送信端末が属する第１のＬＡＮ（Local Area Network）と受信端末が属する第２のＬＡＮにそれぞれゲートウェイを設置して、送信端末から送出されたＴＣＰ（Transmission Control Protocol ）コネクションのデータを第１のＬＡＮのゲートウェイにおいてパケット単位でそれぞれの通信経路に振り分け、第２のＬＡＮのゲートウェイでは複数の通信経路から受信したパケットの順序逆転をＴＣＰのシーケンス番号に従って補正してデータを復元する方法が提案されている（例えば、特許文献１参照）。ただし、この通信方法では、端末のＴＣＰが１つの通信経路で使用されることを前提としているため、通信経路の性能を十分に発揮することができないという問題がある。
【０００３】
複数の通信回線を効率的に利用し、回線利用率を向上させる方法としては、以下の３つの方法が存在する。第１の方法は、端末のＴＣＰに機能を追加して、従来１本のＴＣＰコネクションを用いていた通信を複数のＴＣＰコネクションを利用するように変更する方法である（例えば、特許文献２参照）。この第１の方法では、送信端末と受信端末間の通信で１つの通信フローで行われていたデータの通信を複数の通信フローに分割して並列的に送る。送信端末から受信端末へとデータを送信する場合、送信端末の通信プロトコルは、１つの通信フローの通信データを分割して複数の通信フローに振り分け、分割した複数の通信フローを元のデータに復元するための復元情報として新たなヘッダをＴＣＰ／ＩＰパケットのパケットデータに付加して、それぞれの通信フローにてデータを送信する。受信端末の通信プロトコルでは、複数の通信フローから受信したデータの復元情報を参照して１つの通信フローを復元し、元のデータを復元する。
【０００４】
第２の方法は、複数の経路を利用する通信において、受信端末からそれぞれの経路の品質情報を送信端末へと伝達させ、この品質情報に基づき送信端末がそれぞれの経路にどれだけのデータを送信するかを決定する方法である（例えば、特許文献３参照）。
第３の方法は、複数の経路を利用する通信において、転送開始時にいくつかのデータを送信する際に送信端末が各経路で利用可能なスループットを計測して、この計測結果に基づき送信端末が各経路に振り分けるデータの大きさを決定する方法である（例えば、特許文献４参照）。
【０００５】
なお、出願人は、本明細書に記載した先行技術文献情報で特定される先行技術文献以外には、本発明に関連する先行技術文献を出願時までに発見するには至らなかった。
【特許文献１】特開２０００−２６１４７８号公報
【特許文献２】特開２００３−１１０６０４号公報
【特許文献３】特開２００４−７３６１号公報
【特許文献４】特開２００３−１５２７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の第１の問題点として、特許文献２に開示された第１の方法および特許文献４に開示された第３の方法では、送信側で複数の経路に振り分けたデータを受信側で復元する際に、複数の経路から受信したデータの順序を整列させるために要する時間が大きく、結果として受信端末が得られる通信速度が低下してしまうという問題点があった。
また、従来の第２の問題点として、特許文献２に開示された第１の方法および特許文献４に開示された第３の方法では、送信側で複数の経路に振り分けたデータを受信側で復元する際に、複数の経路から受信したデータの順序を整列させるために必要なバッファが大きくなり、コストが高くなってしまうという問題点があった。
【０００７】
また、従来の第３の問題点として、特許文献２に開示された第１の方法、特許文献３に開示された第２の方法および特許文献４に開示された第３の方法では、送信端末での送信キュー長が考慮されていないため、到達時間の算出の誤差が大きくなるという問題点があった。
また、従来の第４の問題点として、特許文献３に開示された第２の方法では、通信プロトコルの実効スループットが考慮されていないという問題点があった。例えば、最も広く利用されているプロトコルであるＴＣＰの実効スループットは、パケットロス率と経路の遅延と、ＴＣＰの広告ウインドゥサイズ、輻輳ウインドゥサイズなどから決定される。ＴＣＰでは、パケットの再送を行うため、パケットレベルのスループットとＴＣＰの実効スループットは一致しない。また、ＴＣＰは、パケットロスや広告ウインドゥサイズにより送出レートを調整し、この送出レートは時々刻々と変化するため、受信端末から到達時間のフィードバックを得るだけでは、到達時間の算出の誤差が大きくなる。
【０００８】
さらに、従来の第５の問題点として、特許文献４に開示された第３の方法では、各経路の利用可能な帯域が変化した場合と各経路のＴＣＰコネクションの通信レートが変化した場合に、遅い経路での通信が完了するまで全体の通信が完了せず、通信性能が低下してしまうという問題点があった。特に、ＴＣＰでは、転送開始時に通信スループットを徐々に上昇させ、その後も経路の輻輳状況（混雑状況）によって通信スループットを調整するため、通信開始時に計測した結果に基づいてデータを各経路に振り分けた場合、各経路にデータが適切に振り分けられず、結果として通信終了までの時間が長くなり、通信性能が低下する。
【０００９】
本発明は、以上の問題点に鑑み発案されたものであり、フローの分割／復元を伴う通信を効率よく実現することができる通信装置、データ通信方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の通信装置は、送信データの分割によって生成されたブロックが自装置から最終的な受信端末またはデータの合流地点の装置に到達するまでの到達時間を複数のコネクションの各々についてブロック毎に推定する到達時間推定手段と、前記推定の結果に基づいて前記複数のコネクションの中から前記到達時間が最も短いコネクションをブロック毎に選択するコネクション選択手段と、前記選択されたコネクションを用いて各ブロックをネットワークに出力するネットワーク処理手段とを有する。
前述の第１の問題点を解決するため、本発明による通信装置では、送信端末において各経路を利用して受信端末に到達するまでの遅延を考慮し、送信端末のＴＣＰ送信キューへデータを格納してからデータが実際に送出されるまでの時間と送信端末から受信端末に至る経路をデータが転送されるのに要する遅延時間をそれぞれの経路について計算し、最も速く受信端末へとデータが転送される経路を利用してデータを送る。これにより、受信端末では、送信端末が送出した順番通りにデータが到着するようになり、各経路から到着したデータを整列するために要する時間が短いため、高い通信速度を得ることができる。また、受信端末では、各経路から到着したデータを整列させるために必要なバッファ量を削減することができる。また、本発明では、第３の問題点を解決するため、送信端末の送信キュー長を到達時間の算出において考慮する。また、本発明では、第４の問題点を解決するため、通信プロトコルの実効スループットを考慮し、到達時間を算出する。送信端末の送信キューに格納されてから、実際に送出されるまでの時間を、ＴＣＰの実効スループットから計算することにより、より正確に到達時間を計算することができる。さらに、本発明では、第５の問題点を解決するため、データを分割したブロックを複数の経路を利用して送出する際に、それぞれのブロックが受信端末に到達するまでの時間を計算し、いずれの経路を利用するかを決定する。これにより、それぞれのブロックは最も速く受信端末に到達し、より高い通信性能を得ることができる。
【００１１】
また、本発明の通信装置の１構成例において、前記到達時間推定手段は、前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手段と、前記ブロックが前記ネットワークに出力されてから前記受信端末または合流地点の装置に到達するまでの第２の時間を計測する第２の計測手段とを備え、自装置が送信端末である場合に、前記第１の時間と前記第２の時間とを加算して前記到達時間を推定するものである。
また、本発明の通信装置の１構成例において、前記到達時間推定手段は、前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を計測する第１の計測手段と、前記ブロックが前記ネットワークに出力されてから前記選択されたコネクションの受信側の中継装置に到達するまでの第２の時間を計測する第２の計測手段と、前記ブロックが前記中継装置から前記受信端末または合流地点の装置に到達するまでの第３の時間を計測する第３の計測手段とを備え、自装置と前記受信端末または合流地点の装置との間に前記中継装置が存在する場合に、前記第１の時間と前記第２の時間と前記第３の時間とを加算して前記到達時間を推定するものである。
また、本発明の通信装置の１構成例は、さらに、前記到達時間推定手段が推定した到達時間を前記選択されたコネクションの送信側にある装置に通知する通知手段を備え、前記中継装置の通知手段がこの中継装置から前記受信端末または合流地点の装置に到達するまでの到達時間を前記選択されたコネクションの送信側の装置に通知し、この送信側の装置の前記第３の計測手段は、前記通知された到達時間を前記第３の時間とするものである。
【００１２】
また、本発明の通信装置の１構成例は、さらに、前記コネクションの選択の前に、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に応じて、コネクションの設定先を決定するコネクション設定先決定手段と、このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有するものである。
また、本発明の通信装置の１構成例において、前記コネクション設定先決定手段は、受信端末のアドレス、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に対応する複数の候補の中から、各候補の優先度とそれぞれの候補への経路の通信品質によりコネクションの設定先を決定するものである。
また、本発明の通信装置の１構成例は、さらに、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、前記コネクションの選択の前に、前記記憶手段に記憶された内容を用いて、データの送信先に対応するコネクションの設定先を決定し、前記記憶手段に記憶された内容からコネクションの設定先を特定できない場合には、データの送信先をコネクションの設定先として決定するコネクション設定先決定手段と、このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有するものである。
【００１３】
また、本発明の通信装置の１構成例は、コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手段から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置のアドレスをコネクション設定先のアドレスとして前記コネクション設定要求元へ送信する手段を有するものである。
また、本発明の通信装置の１構成例は、コネクション設定要求元と前記コネクション設定先との間に存在する装置である場合に、前記コネクション設定要求元の前記コネクション開設手段から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、自装置がコネクション設定要求元となって前記コネクション設定先に向けてコネクション設定要求パケットを送信する手段を有するものである。
また、本発明の通信装置の１構成例は、さらに、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、前記コネクションの選択の前に、前記記憶手段に記憶された内容を用いて、データの送信先に対応する複数のコネクションの設定先を決定するコネクション設定先決定手段と、このコネクション設定先決定手段の決定に応じてコネクションを開設するコネクション開設手段とを有するものである。
また、本発明の通信装置の１構成例は、コネクション設定要求元とコネクションの設定先との間に存在する装置である場合に、データの送信先に対応するコネクションの設定先を複数記憶する記憶手段と、前記コネクション設定要求元から送信されたコネクション設定要求パケットを前記コネクション設定先に代わって受信したとき、前記記憶手段に記憶された内容に基づいて、前記コネクション設定要求パケットが示すコネクション設定先と同じ組に属する他の設定先へのコネクション設定を行う手段とを有するものである。
【００１４】
また、本発明の通信装置の１構成例において、前記第１の計測手段は、各コネクションの送信キュー長あるいは送信待ち時間と、各コネクション上での通信プロトコルの実効スループットとに基づいて、前記ブロックが前記選択されたコネクションに振り分けられてから前記ネットワークに出力されるまでの第１の時間を前記複数のコネクションの各々についてブロック毎に計測するものである。
また、本発明の通信装置の１構成例は、さらに、経路毎に障害を検出する経路障害検出手段と、経路毎に通信品質を測定する通信品質測定手段とを有し、前記コネクション選択手段は、あるコネクションが利用する経路において障害が発生した場合、若しくはあるコネクションの通信性能が低下した場合に、このコネクションで送信待ち状態にあるブロックを他のコネクションを利用して送信するように選択するものである。
また、本発明の通信装置の１構成例において、前記経路障害検出手段は、いずれかのコネクションが一定回数以上再送タイムアウト状態に陥った場合に、このコネクションが利用する経路において障害が発生したと判定するものである。
また、本発明の通信装置の１構成例において、前記通信品質測定手段は、コネクションのパケット往復遅延時間、パケット往復遅延時間の変化率、通信プロトコルの実効スループット、パケットロス率、経路上のリンク帯域、経路上の空き帯域、あるいは経路上の使用可能帯域のいずれかがそれぞれの閾値と比較して劣っている場合に、コネクションの通信性能が低下したと判定するものである。
また、本発明の通信装置の１構成例において、前記通信品質測定手段は、全てのコネクションの平均的な通信品質を計測する平均的通信品質計測手段と、計測した平均的通信品質とそれぞれのコネクションの通信品質とを比較する比較手段とを有し、複数のコネクションの中に通信品質が前記平均的通信品質の一定割合を越えて劣っているコネクションが存在する場合に、このコネクションの通信性能が低下したと判定するものである。
【００１５】
また、本発明の通信装置の１構成例は、さらに、通信で使用中のコネクションの数が一定数以上となった場合に、最も通信品質の低いコネクションの使用を中止する中止手段を有するものである。
また、本発明の通信装置の１構成例は、通信開始からの継続時間に応じて使用するコネクション数を変化させるコネクション数変化手段を有するものである。
また、本発明の通信装置の１構成例において、前記コネクション選択手段は、パケット毎、予め定められたデータ量毎、もしくは上位層で一塊となるデータ量毎に、出力するコネクションを選択するものである。
【発明の効果】
【００１６】
到達時間推定手段とコネクション選択手段とネットワーク処理手段とを設けることによる本発明の第１の効果は、受信端末においてデータを整列させる時間を短縮することができ、高い通信速度が得られることである。特に、短いデータを送信する場合に遅い経路を利用してデータを送信してしまった場合には、受信端末でのデータ整列に要する時間が問題となり、大きな性能低下を引き起こすが、本発明による通信装置では、高い性能を得ることができる。本発明の第２の効果は、受信端末においてデータを整列させるために必要なバッファ量を削減することができ、コストを低減できることである。特に、多数のコネクションを扱う場合にコスト低減効果が高い。本発明の第３の効果は、送信端末から受信端末に至る各経路のそれぞれの到達時間を、より正確に計算することができ、第１の効果と第２の効果をさらに向上できることである。そして、本発明の第４の効果は、通信プロトコルの実効スループットを考慮することにより、送信端末から受信端末に至る各経路の到達時間をより正確に計算でき、第１の効果と第２の効果をさらに向上できることである。特に、一般的に広く用いられているＴＣＰなどのオーバヘッドが大きいプロトコルでより効果的となる。
【発明を実施するための最良の形態】
【００１７】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態に係る通信装置の構成を示すブロック図である。本実施の形態において、通信装置１は、アプリケーション処理部１−１と、データ分割／復元処理部１−２と、ネットワーク処理部１−３と、到達時間計算部１−４とから構成される。データ分割／復元処理部１−２は、データ分割手段とコネクション選択手段とを構成し、到達時間計算部１−４は、到達時間推定手段とコネクション選択手段とを構成している。
【００１８】
アプリケーション処理部１−１は、任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割／復元処理部１−２にデータを送り、データを受信する場合にはデータ分割／復元処理部１−２からデータを受け取る。
【００１９】
データ分割／復元処理部１−２は、データを送信する場合にはアプリケーション処理部１−１からデータを受け取り、受け取ったデータを任意の数のブロックに分割して、このブロックを元のデータに復元するための情報（以降、復元情報と呼ぶ）を分割した各ブロックの先頭に付加し、複数のＴＣＰコネクションのうち受信端末へのデータの到達時間が最も短いＴＣＰコネクションを到達時間計算部１−４に問い合わせ、到達時間計算部１−４が選択したＴＣＰコネクションを利用してブロックを送信するようネットワーク処理部１−３に指示する。また、データ分割／復元処理部１−２は、データを受信する場合にはネットワーク処理部１−３から受け取った複数のＴＣＰコネクションのデータについてデータの先頭に格納された復元情報を参照して、分割されたブロックを識別し、複数のブロックを合わせることにより分割前のデータを復元し、復元したデータをアプリケーション処理部１−１に送る。
【００２０】
ネットワーク処理部１−３は、コネクションの開設処理を行うと共に、データを送信する場合にはデータ分割／復元処理部１−２から受け取ったデータをデータ分割／復元処理部１−２から通知されたＴＣＰコネクションを用いてネットワークへ出力し、データを受信する場合にはネットワークから受信したＴＣＰコネクションのデータをデータ分割／復元処理部１−２へ送る。
【００２１】
到達時間計算部１−４は、ネットワーク処理部１−３が開設した各ＴＣＰコネクションについてそれぞれの送信キュー長（ブロックを蓄積する送信キューの長さ）とそれぞれの経路遅延とから受信端末へのデータの到達時間をブロック毎に算出し、複数のＴＣＰコネクションの中から到達時間が最も短いＴＣＰコネクションを選択してデータ分割／復元処理部１−２に通知する。
【００２２】
図２は、本実施の形態において送信端末２−１から受信端末２−２へのデータの流れを示す図である。送信端末２−１と受信端末２−２は、それぞれ図１に示した通信装置１から構成される。送信端末２−１から受信端末２−２へとデータを送る場合、送信端末２−１は、図３に示すように送信データ３−１を複数のブロックＢ−１〜Ｂ−４に分割し、復元情報を各ブロックＢ−１〜Ｂ−４の先頭に付加して、各ブロックＢ−１〜Ｂ−４を複数のＴＣＰコネクションを利用して受信端末２−２へ送る。
【００２３】
それぞれのブロックサイズは、ＴＣＰ層のセグメントサイズから復元情報のサイズを引いたサイズとする。図２、図３では、データ３−１を４つのブロックＢ−１〜Ｂ−４に分割し、２つのＴＣＰコネクションＣＮ−１，ＣＮ−２を利用し、ＴＣＰコネクションＣＮ−１を用いてブロックＢ−１，Ｂ−３を送信し、ＴＣＰコネクションＣＮ−２を用いてブロックＢ−２，Ｂ−４を送信する例を示している。
【００２４】
送信端末２−１からのブロックを受け取った受信端末２−２は、各ブロックの先頭に付加されている復元情報を参照して、分割されたブロックを識別し、各ブロックを順番に整列させることにより、複数のブロックから元のデータを復元する。図２では、受信端末２−２は、ＴＣＰコネクションＣＮ−１，ＣＮ−２から受け取ったブロックＢ−１〜Ｂ−４を順番に整列させ、元のデータを復元する。
【００２５】
図４は、本実施の形態のデータ分割／復元処理部１−２においてブロックの先頭に復元情報を付加する例を示す図である。図４は分割した各ブロックを基にＴＣＰ／ＩＰパケットを作成した様子を示し、４−１はＩＰヘッダ、４−２はＴＣＰヘッダ、４−３はＴＣＰ／ＩＰパケットのペイロードに搭載されたブロック、４−４はブロックの先頭に付加された復元情報である。復元情報４−４は、ブロックの順序を表すブロック番号４−５と、ブロック長４−６とからなる。送信端末２−１は、送信データを分割して複数のブロックを生成した後、各ブロックの先頭にそれぞれブロック番号４−５とブロック長４−６とからなる復元情報４−４を付加する。なお、本実施の形態では、復元情報４−４の格納位置をブロックの先頭としているが、ブロック中の任意の位置に復元情報４−４を格納するようにしてもよい。
【００２６】
次に、図５、図６を参照して本実施の形態における送信端末２−１、受信端末２−２における処理について説明する。図５は、送信端末２−１における複数の経路を使用した通信処理を示すフローチャートである。送信端末２−１のアプリケーション処理部１−１が任意の処理を実施して、受信端末２−２に送信すべきデータが発生すると、アプリケーション処理部１−１からデータ分割／復元処理部１−２にデータの送信を指示することにより、図５の処理が開始される。
【００２７】
送信端末２−１のデータ分割／復元処理部１−２は、アプリケーション処理部１−１から受け取ったデータを任意のサイズのブロックに分割して、各ブロックにブロック番号を割り当てる（図５ステップ５−１）。続いて、データ分割／復元処理部１−２は、ネットワーク処理部１−３が開設した複数のＴＣＰコネクションのうち受信端末へのデータの到達時間が最も短いＴＣＰコネクションを到達時間計算部１−４に問い合わせる（ステップ５−２）。
【００２８】
送信端末２−１の到達時間計算部１−４は、データ分割／復元処理部１−２からの問い合わせに応じて以下の式（１）に基づき、それぞれのＴＣＰコネクションでデータを送信した場合の到達時間Ｔをブロック毎に計算し、複数のＴＣＰコネクションの中から到達時間Ｔが最も短いＴＣＰコネクションをブロック毎に選択してデータ分割／復元処理部１−２に通知する（ステップ５−３）。
【００２９】
【数１】
2006060674.tif 000003
【００３０】
式（１）において、Ｑは送信端末２−１のデータ分割／復元処理部１−２の送信キュー（不図示）に溜まっているデータサイズ、ＴｈｒはＴＣＰの実効スループット（ＴＣＰから隣接プロトコルへと出力されたスループットで、単位時間内に処理できるデータサイズ）、ｓＲＴＴは平滑ＲＴＴ（Round Trip Time ：送信端末と受信端末間のパケット往復遅延）である。ｍｉｎ［］は最小値を求めることを意味する。式（１）の右辺のうち、Ｑ／Ｔｈｒを求めることは、計測値Ｑと計測値Ｔｈｒに基づいて、ブロックがＴＣＰコネクションに振り分けられてからネットワークに出力されるまでの第１の時間を求めることを意味し、ｓＲＴＴ／２を求めることは、計測値ｓＲＴＴに基づいて、ブロックがネットワークに出力されてから受信端末に到達するまでの第２の時間を求めることを意味する。
【００３１】
送信端末２−１のデータ分割／復元処理部１−２は、分割したブロックの先頭に復元情報を付加して、このブロックを到達時間が最も短いＴＣＰコネクションに振り分ける（ステップ５−４）。すなわち、データ分割／復元処理部１−２は、復元情報を付加したブロックを到達時間計算部１−４から通知されたＴＣＰコネクションを利用して送信するようネットワーク処理部１−３に指示する。
【００３２】
ネットワーク処理部１−３は、データ分割／復元処理部１−２から受け取ったブロックをデータ分割／復元処理部１−２から通知されたＴＣＰコネクションを用いてネットワークへ出力する（ステップ５−５）。
到達時間計算部１−４、データ分割／復元処理部１−２およびネットワーク処理部１−３は、ステップ５−３〜５−５の処理をブロック毎に行う。ブロックをすべて送信し、アプリケーション処理部１−１の処理が終了したら、図５の処理を終了する。
【００３３】
なお、経路毎に障害を検出する経路障害検出手段と、経路毎に通信品質を測定する通信品質測定手段とをネットワーク処理部１−３に設け、データ分割／復元処理部１−２は、通信性能が著しく低下したＴＣＰコネクション、若しくは障害が発生して通信不能となったＴＣＰコネクションがあった場合に、該ＴＣＰコネクションで送信待ち状態になって送信キューに蓄積されているブロックを、他のＴＣＰコネクションを利用して送信するように選択し直してもよい。
【００３４】
ネットワーク処理部１−３の通信品質測定手段は、ＴＣＰの実効スループットが予め定められたスループット閾値より低下した場合、ｓＲＴＴが予め定められたｓＲＴＴ閾値より増大した場合、パケットロス率が予め定められたパケットロス閾値より増大した場合、パケット往復遅延時間が予め定められた遅延閾値より増大した場合、パケット往復遅延時間の変化率が予め定められた変化率閾値より増大した場合、経路上のリンク帯域が予め定められた帯域閾値より減少した場合、経路上の空き帯域が予め定められた帯域閾値より減少した場合、あるいは経路上の使用可能帯域が予め定められた帯域閾値より減少した場合に、ＴＣＰコネクションの通信性能が低下したと判定する。
【００３５】
また、ネットワーク処理部１−３の通信品質測定手段は、全てのＴＣＰコネクションの平均的な通信品質を計測する平均的通信品質計測手段と、計測した平均的通信品質とそれぞれのＴＣＰコネクションの通信品質とを比較する比較手段とを有し、複数のＴＣＰコネクションの中に通信品質が前記平均的通信品質の一定割合を越えて劣っているコネクションが存在する場合に、このＴＣＰコネクションの通信性能が低下したと判定するようにしてもよい。
【００３６】
ネットワーク処理部１−３の経路障害検出手段は、いずれかのＴＣＰコネクションで再送タイムアウト状態（データを再送してから所定時間が経過するまでに送信先の装置からの受信応答がない状態）が一定回数以上連続して生じた場合には、コネクションが利用する経路において障害が発生したと判定する。
【００３７】
図６は、受信端末２−２における通信処理を示すフローチャートである。送信端末２−１から送信されたブロックを受信端末２−２がネットワークから受信することにより、図６の処理が開始される。受信端末２−２のネットワーク処理部１−３は、ネットワークから受信したブロックをデータ分割／復元処理部１−２に渡し、データ分割／復元処理部１−２は、ブロックの先頭に付加されている復元情報を参照して、このブロックのブロック番号を認識し、ブロック番号に基づいて各ブロックを順番に整列させることにより、複数のブロックから元のデータを復元する（図６ステップ６−１）。
【００３８】
続いて、データ分割／復元処理部１−２は、復元したデータをアプリケーション処理部１−１に渡し、アプリケーション処理部１−１は、任意の処理を実行する。すべてのブロックがアプリケーション処理部１−１に渡され、アプリケーション処理部１−１の任意の処理が終了したら、図６の処理を終了する。
【００３９】
以上が、本発明の第１の実施の形態における通信装置の処理の内容である。従来の技術においては、送信端末で複数の経路に振り分けたデータを受信側で復元する際に、データの順序を整列させるために要する時間が大きく、結果として受信端末が得られる通信速度が低下してしまう問題があった。これに対して、本実施の形態による通信方法では、送信端末から受信端末への到達時間をより正確に算出することができ、これにより送信端末が送信したデータの順番通りに受信側へデータが到着するため、受信端末においてデータの整列に要する時間を短縮することができ、スループットの低下が少なくなる。
【００４０】
また、受信端末でデータの順序を整列させるために必要なバッファが少なくて済むため、通信装置のコストを低減することができる。さらに、本実施の形態では、送信端末の送信キュー長を到達時間の算出に加えた上に、ＴＣＰの実効スループットに基づいて、送信キューからデータが送出される時刻を計算することにより、より正確に到達時間を計算することが可能となる。
【００４１】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。図７は、本発明の第２の実施の形態に係る通信装置の構成を示すブロック図である。本実施の形態において、通信装置７は、アプリケーション処理部７−１と、データ分割／復元処理部７−２と、ネットワーク処理部７−３と、到達時間計算部７−４と、到達時間通知部７−５とから構成される。データ分割／復元処理部７−２は、データ分割手段とコネクション選択手段とを構成し、到達時間計算部７−４は、到達時間推定手段とコネクション選択手段とを構成し、到達時間通知部７−５は、通知手段を構成している。
【００４２】
アプリケーション処理部７−１は、任意のアプリケーションプログラムを処理し、データを送信する場合にはデータ分割／復元処理部７−２にデータを送り、データを受信する場合にはデータ分割／復元処理部７−２からデータを受け取る。
【００４３】
データ分割／復元処理部７−２は、データを送信する場合にはアプリケーション処理部７−１からデータを受け取り、受け取ったデータを任意の数のブロックに分割して、各ブロックの先頭に復元情報を付加し、複数のＴＣＰコネクションのうち送信先の装置へのデータの到達時間が最も短いＴＣＰコネクションを到達時間計算部７−４に問い合わせ、到達時間計算部７−４が選択したＴＣＰコネクションを利用してブロックを送信するようネットワーク処理部７−３に指示する。また、データ分割／復元処理部７−２は、データを受信する場合にはネットワーク処理部７−３から受け取った複数のＴＣＰコネクションのデータについてデータの先頭に格納された復元情報を参照して、分割されたブロックを識別し、複数のブロックを合わせることにより分割前のデータを復元し、復元したデータをアプリケーション処理部７−１に送る。
【００４４】
ネットワーク処理部７−３は、コネクションの開設処理を行うと共に、データを送信する場合にはデータ分割／復元処理部７−２から受け取ったデータをデータ分割／復元処理部７−２から通知されたＴＣＰコネクションを用いてネットワークへ出力し、データを受信する場合にはネットワークから受信したＴＣＰコネクションのデータをデータ分割／復元処理部７−２へ送る。
【００４５】
到達時間計算部７−４は、ネットワーク上の送信端末から受信端末までの複数の通信装置のうち自装置の後段に位置する通信装置から通知された、後段の通信装置から受信端末までのデータの到達時間と、ネットワーク処理部７−３が開設した各ＴＣＰコネクションのそれぞれの送信キュー長とそれぞれの経路遅延とに基づき、自装置から受信端末までのデータの到達時間を各ＴＣＰコネクションについてブロック毎に算出し、複数のＴＣＰコネクションの中から到達時間が最も短いＴＣＰコネクションを選択して、選択したＴＣＰコネクションを利用した場合の到達時間を到達時間通知部７−５に通知すると共に、選択したＴＣＰコネクションをデータ分割／復元処理部７−２に通知する。
【００４６】
到達時間通知部７−５は、到達時間計算部７−４から通知された到達時間を、ネットワーク上の送信端末から受信端末までの複数の通信装置のうち自装置の前段に位置する通信装置に通知する。
【００４７】
次に、複数のＴＣＰコネクションのうちいずれのＴＣＰコネクションを利用するかを決定する例を示す。送信端末から受信端末へとデータを送信する際、送信端末から受信端末までの経路上にある各通信装置の到達時間計算部７−４は、自装置と後段の通信装置との間に開設されたＴＣＰコネクションでデータを送信した場合の自装置から受信端末までのデータの到達時間Ｔ（ｉ）を各ＴＣＰコネクションについてブロック毎に算出し、この到達時間Ｔ（ｉ）が最も短い、つまり最も速く受信端末に到達できると判定されたＴＣＰコネクションを利用してデータを送信すると決定する。
【００４８】
【数２】
2006060674.tif 000004
【００４９】
式（２）において、Ｑは自装置のデータ分割／復元処理部７−２の送信キュー（不図示）に溜まっているデータサイズ、ＴｈｒはＴＣＰの実効スループット（ＴＣＰから隣接プロトコルへと出力されたスループットで、単位時間内に処理できるデータサイズ）、ｓＲＴＴは平滑ＲＴＴ（自装置と後段の通信装置間のパケット往復遅延）、Ｔ（ｉ−１）は後段の通信装置から通知された、後段の通信装置から受信端末までのデータの到達時間である。式（２）の右辺のうち、Ｑ／Ｔｈｒを求めることは、計測値Ｑと計測値Ｔｈｒに基づいて、ブロックがＴＣＰコネクションに振り分けられてからネットワークに出力されるまでの第１の時間を求めることを意味し、ｓＲＴＴ／２を求めることは、計測値ｓＲＴＴに基づいて、ブロックがネットワークに出力されてから後段の通信装置に到達するまでの第２の時間を求めることを意味する。また、到達時間計算部７−４は、後段の通信装置から通知された到達時間Ｔ（ｉ−１）を第３の時間とする。
【００５０】
図８は、本実施の形態において送信端末２１−１から受信端末２１−２へのデータの流れを示す図である。送信端末２１−１、受信端末２１−２およびプロキシサーバ（中継装置）２１−３，２１−４は、それぞれ図７に示した通信装置７から構成される。本実施の形態では、図８に示すように、プロキシサーバ２１−３とプロキシサーバ２１−４を介した送信端末２１−１と受信端末２１−２の通信を説明する。プロキシサーバ２１−３、プロキシサーバ２１−４でのアプリケーション処理部７−１では、送信端末２１−１と受信端末２１−２の通信を実現するためのプロキシサーバが動作しており、送信端末２１−１が送出したデータは、ＴＣＰコネクションＣＮ−０〜ＣＮ−４を経由して受信端末２１−２へと送られる。各通信装置での処理は第１の実施の形態と同様であるが、異なる点について以下に説明する。
【００５１】
まず、受信端末２１−２の到達時間計算部７−４で計算される到達時間は０であるから、受信端末２１−２の到達時間通知部７−５は、前段の通信装置であるプロキシサーバ２１−４と送信端末２１−１に到達時間Ｔ（０）＝０を通知する。
【００５２】
続いて、プロキシサーバ２１−４の到達時間計算部７−４は、後段の受信端末２１−２から通知された到達時間Ｔ（０）＝０と、自装置と受信端末２１−２との間に開設されたＴＣＰコネクションＣＮ−４の送信キュー長ＱとＴＣＰの実効スループットＴｈｒと、自装置と受信端末２１−２間のｓＲＴＴに基づき、自装置から受信端末までのデータの到達時間Ｔ（１）をＴＣＰコネクションＣＮ−４について計算する。このときの計算は式（２）より次式のようになる。
【００５３】
【数３】
2006060674.tif 000005
【００５４】
プロキシサーバ２１−４の到達時間通知部７−５は、到達時間計算部７−４で計算された到達時間Ｔ（１）を前段の通信装置であるプロキシサーバ２１−３に通知する。また、このときのＴＣＰコネクションはＣＮ−４のみであるから、プロキシサーバ２１−４の到達時間計算部７−４は、選択したコネクションとしてＴＣＰコネクションＣＮ−４を自装置のデータ分割／復元処理部７−２に通知する。
【００５５】
次に、プロキシサーバ２１−３の到達時間計算部７−４は、後段のプロキシサーバ２１−４から通知された到達時間Ｔ（１）と、自装置とプロキシサーバ２１−４との間に開設されたＴＣＰコネクションＣＮ−２，ＣＮ−３のそれぞれ送信キュー長ＱとＴＣＰの実効スループットＴｈｒと、自装置とプロキシサーバ２１−４間のｓＲＴＴに基づき、自装置から受信端末までのデータの到達時間をＴＣＰコネクションＣＮ−２，ＣＮ−３のそれぞれについて計算する。ＴＣＰコネクションＣＮ−２についての到達時間をＴconn2（２） 、ＴＣＰコネクションＣＮ−３についての到達時間をＴconn3（２） としたとき、Ｔconn2（２）とＴconn3（２）のうち小さい方を到達時間Ｔ（２）として、プロキシサーバ２１−３の到達時間通知部７−５から送信端末２１−１に通知する。また、プロキシサーバ２１−３の到達時間計算部７−４は、到達時間が短い方のＴＣＰコネクションを選択して自装置のデータ分割／復元処理部７−２に通知する。
【００５６】
最後に、送信端末２１−１の到達時間計算部７−４は、受信端末２１−２から通知された到達時間Ｔ（０）＝０と、自装置と受信端末２１−２との間に開設されたＴＣＰコネクションＣＮ−０の送信キュー長ＱとＴＣＰの実効スループットＴｈｒと、自装置と受信端末２１−２間のｓＲＴＴに基づき、自装置から受信端末までのデータの到達時間をＴＣＰコネクションＣＮ−０について計算すると共に、プロキシサーバ２１−３から通知された到達時間Ｔ（２）と、自装置とプロキシサーバ２１−３との間に開設されたＴＣＰコネクションＣＮ−１の送信キュー長ＱとＴＣＰの実効スループットＴｈｒと、自装置とプロキシサーバ２１−３間のｓＲＴＴに基づき、自装置から受信端末までのデータの到達時間をＴＣＰコネクションＣＮ−１について計算する。そして、送信端末２１−１の到達時間計算部７−４は、到達時間が短い方のＴＣＰコネクションを選択して自装置のデータ分割／復元処理部７−２に通知する。
【００５７】
送信端末２１−１とプロキシサーバ２１−３，２１−４のデータ分割／復元処理部７−２は、それぞれ自装置の到達時間計算部７−４から通知されたＴＣＰコネクションを利用してデータを送信するよう自装置のネットワーク処理部１−３に指示する。
以上の手順により、送信端末２１−１とプロキシサーバ２１−３，２１−４では、それぞれ到達時間が最も短いＴＣＰコネクションを選択してデータを転送することができる。
【００５８】
以上のように、本実施の形態による通信方法では、通信に関係するそれぞれの端末とプロキシサーバ間で、後段の経路遅延を前段にフィードバックさせることにより、それぞれ最も速くデータを送信できるようになる。
なお、送信データは送信端末２１−１でブロックに分割されているため、プロキシサーバ２１−３，２１−４のデータ分割／復元処理部７−２ではデータの分割／復元処理は実施しないことは言うまでもない。
【００５９】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。図９は、本発明の第３の実施の形態に係る通信装置の構成を示すブロック図である。本実施の形態の通信装置８は、第２の実施の形態と同様のアプリケーション処理部８−１、データ分割／復元処理部８−２、ネットワーク処理部８−３、到達時間計算部８−４および到達時間通知部８−５に加えて、受信端末のアドレス毎にコネクションの設定先のアドレスと優先度とを記憶するコネクション設定先テーブル８−６と、コネクション設定先毎にそれぞれのコネクション設定先への経路の品質を記憶する経路品質テーブル８−７と、コネクション設定先テーブル８−６及び経路品質テーブル８−７を用いてコネクションの設定先を決定するコネクション設定先決定部８−８とを有する。
【００６０】
データ分割／復元処理部８−２は、データ分割手段とコネクション選択手段とを構成し、到達時間計算部８−４は、到達時間推定手段とコネクション選択手段とを構成し、到達時間通知部８−５は、通知手段を構成し、コネクション設定先決定部８−８は、コネクション設定先決定手段を構成し、ネットワーク処理部８−３は、コネクション開設手段を構成している。
【００６１】
第２の実施の形態においては、各通信装置間の経路は一意に定められていたため、各通信装置のネットワーク処理部にはそれぞれの宛先が予め設定されていた。一方、本実施の形態では、前記経路が受信端末毎に異なるため、各通信装置８のネットワーク処理部８−３に設定されるコネクションの設定先は送信端末と受信端末間の通信開始時に設定される。送信開始後の動作は第２の実施の形態と同様であるため、以下では送信開始時のコネクションの宛先設定処理について説明する。
【００６２】
まず、送信端末を構成する通信装置８のアプリケーション処理部８−１が新たな通信の開始をデータ分割／復元処理部８−２に指示すると、送信端末のデータ分割／復元処理部８−２は、コネクション設定先決定部８−８に対して受信端末のアドレスを通知して、コネクションの設定先を問い合わせる。
コネクション設定先決定部８−８は、データ分割／復元処理部８−２からの問い合わせに応じてコネクション設定先テーブル（記憶手段）８−６を参照し、通知された受信端末のアドレスに対応するコネクションの設定先のアドレスと優先度を１組または複数組取得する。図１０に、コネクション設定先テーブル８−６の構成の１例を示す。
【００６３】
なお、本実施の形態では、受信端末のアドレス毎にコネクションの設定先のアドレスと優先度とをコネクション設定先テーブル８−６に登録しているが、これに限るものではなく、受信端末が属するサブネット、送信端末のアドレス、送信端末が属するサブネット、アプリケーションの種類、送信するデータの種類あるいはアプリケーションが使用するポート番号に対応して、コネクションの設定先のアドレスと優先度とをコネクション設定先テーブル８−６に登録するようにしてもよい。このようなコネクション設定先テーブル８−６の設定によれば、例えば、送信端末毎に異なるコネクションを用いて負荷分散を行ったり、異なる品質を要求するアプリケーションに対して異なるコネクションを用いるように通信を振り分けたりすることが可能となる。
【００６４】
また、コネクション設定先決定部８−８は、コネクション設定先テーブル８−６からコネクションの設定先のアドレスと優先度とを複数組取得する場合、これらをコネクション設定先の候補とし、取得した複数の候補のアドレスに基づいて経路品質テーブル８−７を参照し、それぞれの候補への経路の通信品質を取得する。図１１に、経路品質テーブル８−７の構成の１例を示す。
【００６５】
そして、コネクション設定先決定部８−８は、複数の候補の優先度と経路品質情報を元に、複数の候補の中からコネクションの設定先を決定し、データ分割／復元処理部８−２に通知する。この通知に基づいて、データ分割／復元処理部８−２は、ネットワーク処理部８−３に対してコネクションの新規開設の要求を行う。ネットワーク処理部８−３は、コネクションの設定先に対してコネクション開設要求のパケットを送信し、コネクションを開設する。コネクションが開設されると、送信端末は通信を開始する。
【００６６】
本実施の形態においては、送信端末は、例えば以下のように動的にコネクションの開設を行うことができる。まず、送信端末は、コネクション設定先テーブル８−６内に記述されているコネクション設定先のうち、優先度の最も高い１つのコネクション設定先、あるいは複数のコネクション設定先に対してそれぞれコネクションを設定し、これらのコネクションを用いて通信を行う。この際、経路品質が予め定められた品質の閾値よりも高いコネクション設定先のみ選択して１つあるいは複数のコネクションを設定してもよく、また経路品質が最も高いコネクション設定先のみを１つ選択してコネクションを設定してもよい。
【００６７】
次に、送信開始後、通信が一定時間経過した後、さらにコネクションを追加して、より多くのコネクションを同時に用いて通信を行ってもよい。この場合、コネクション設定先決定部８−８は、選択済みのコネクション設定先の次に優先度が高い１つあるいは複数のコネクション設定先を選択して、これらのコネクション設定先との間にコネクションを開設させ、これらのコネクションも用いて通信を行う。この際、経路品質が予め定められた品質の閾値よりも高いコネクション設定先のみ選択して１つあるいは複数のコネクションを追加設定してもよく、また経路品質が最も高いコネクション設定先のみを１つ選択してコネクションを追加設定してもよい。
【００６８】
さらに、コネクション設定先決定部８−８は、通信が一定時間以上継続するごとに、より低い優先度のコネクション設定先を用いて通信を行ってもよい。また、コネクション設定先決定部８−８は、通信中、特定のコネクションの経路品質が低下した場合、もしくは使用中のコネクションの数が一定数以上となった場合に、最も経路品質の低いコネクションを切断し、残りのコネクションで通信を継続するようにしてもよい。
【００６９】
各コネクションを用いて通信を行っている最中には、それぞれのコネクションの通信品質をネットワーク処理部８−３の通信品質測定手段で計測して、経路品質テーブル８−６を適宜最新の状態に更新する。経路品質テーブル８−６は、複数の通信でおなじ経路品質情報を共有することが可能であり、新しい通信が開始される際、もしくは既存の通信が新しいコネクションを追加設定する際、あらかじめコネクション設定先決定部８−８が経路品質テーブル８−６を参照することにより、通信開始前でも該経路の品質を確認することができる。
【００７０】
各コネクションの通信品質は、第１の実施の形態で説明したように、コネクションの往復伝播遅延時間、パケット往復遅延時間（ＲＴＴ）、パケット往復遅延時間の変化率、ＴＣＰの実効スループット、パケットロス率、経路上のリンク帯域、経路上の空き帯域あるいは経路上の使用可能帯域によって決定される。また、これらの組み合わせによって通信品質を測定してもよい。また、到達時間通知部８−５によって後段の経路の状態を前段の通信装置に通知することにより、コネクション設定先までの通信品質ではなく、受信端末までの経路の総合的な通信品質を用いることができる。
【００７１】
［第４の実施の形態］
次に、本発明の第４の実施の形態について説明する。図１２は、本発明の第４の実施の形態に係る通信装置の構成を示すブロック図である。本実施の形態の通信装置９は、第２の実施の形態と同様のアプリケーション処理部９−１、データ分割／復元処理部９−２、ネットワーク処理部９−３、到達時間計算部９−４および到達時間通知部９−５に加えて、受信端末のアドレス毎もしくは中継に用いるプロキシサーバのアドレス毎にコネクションの設定先のアドレスと優先度とを記憶するコネクション経由先テーブル９−６と、コネクション設定先毎にそれぞれのコネクション設定先への経路の品質を記憶する経路品質テーブル９−７と、コネクション経由先テーブル９−６及び経路品質テーブル９−７を用いてコネクションの設定先を決定するコネクション設定先決定部９−８とを有する。
【００７２】
データ分割／復元処理部９−２は、データ分割手段とコネクション選択手段とを構成し、到達時間計算部９−４は、到達時間推定手段とコネクション選択手段とを構成し、到達時間通知部９−５は、通知手段を構成し、コネクション設定先決定部９−８は、コネクション設定先決定手段を構成し、ネットワーク処理部９−３は、コネクション開設手段を構成している。
【００７３】
本実施の形態においても、第３の実施の形態と同様に各通信装置間の経路が受信端末毎に異なるため、各通信装置９のネットワーク処理部９−３に設定されるコネクションの設定先は送信端末と受信端末間の通信開始時に設定される。ただし、第３の実施の形態と異なり、本実施の形態においては、全ての受信端末ではなく、送信端末からプロキシサーバを経由せずに直接通信できる受信端末に対してのみ、コネクション設定先が設定される。また、本実施の形態では、送信端末から他のプロキシを経由せずに直接通信できるプロキシサーバに対して、コネクション設定先が設定される。そのため、本実施の形態では、大量の受信端末のアドレスを管理しなくてもよいという利点がある。送信開始後の動作は第２の実施の形態と同様であるため、以下では送信開始時のコネクションの宛先設定処理について説明する。
【００７４】
まず、送信端末を構成する通信装置９のアプリケーション処理部９−１が新たな通信の開始をデータ分割／復元処理部９−２に指示すると、送信端末のデータ分割／復元処理部９−２は、プロキシサーバを経由せずに直接通信できる受信端末のアドレスまたは直接通信できるプロキシサーバのアドレスをコネクション設定先決定部９−８に通知して、コネクションの設定先を問い合わせる。
【００７５】
コネクション設定先決定部９−８は、データ分割／復元処理部９−２からの問い合わせに応じてコネクション経由先テーブル（記憶手段）９−６を参照し、通知された受信端末のアドレスまたはプロキシサーバのアドレスに対応するコネクションの設定先のアドレスと優先度を１組または複数組取得する。図１３に、コネクション経由先テーブル９−６の構成の１例を示す。
【００７６】
コネクションの設定先がコネクション経由先テーブル９−６に登録されている場合には、以降のコネクション設定先決定部９−８や経路品質テーブル９−７、データ分割／復元処理部９−２およびネットワーク処理部９−３の動作は第３の実施の形態と同様であり、コネクション開設処理を行った後に、通信を開始する。
【００７７】
一方、コネクション設定先がコネクション経由先テーブル９−６に登録されていない場合、コネクション設定先決定部９−８は、とりあえず受信端末をコネクション設定先としてデータ分割／復元処理部９−２に通知し、データ分割／復元処理部９−２は、コネクション設定先決定部９−８からの通知に基づいてネットワーク処理部９−３に対してコネクションの新規開設の要求を行う。
【００７８】
したがって、ネットワーク処理部９−３は、受信端末に向けてコネクション開設要求のパケットを送信することになる。この場合、送信端末と受信端末の間に必ずプロキシサーバが存在しているはずであり、このプロキシサーバのネットワーク処理部がコネクション開設要求のパケットを受信端末に代わって受信する。そして、このプロキシサーバのネットワーク処理部は、コネクション開設要求に対する応答パケットを受信端末に代わって送信端末に送信するが、この際、応答パケットの中に自装置のアドレスを記述しておく。
【００７９】
送信端末のネットワーク処理部９−３は、プロキシサーバからの応答パケットを受信すると、設定中のコネクションの宛先を受信端末ではなく、応答パケット内に記述されているプロキシサーバに変更してコネクション開設処理を完了する。
【００８０】
また、送信端末のコネクション設定先決定部９−８は、通知されたプロキシサーバのアドレスを用いてコネクション経由先テーブル９−６を検索し、コネクション経由先テーブル９−６にプロキシサーバのアドレスに対応するコネクション設定先が登録されている場合には、通知されたプロキシに対して、第３の実施の形態と同様の処理によって、複数のコネクションを設定して通信することが可能である。
【００８１】
以上のように、本実施の形態では、送信端末と受信端末との間にプロキシサーバが存在する場合、送信端末とプロキシサーバ間に１または複数のコネクションが設定できる。そして、このプロキシサーバは、送信端末と同様の処理を行って受信端末、あるいは受信端末との間に存在する別のプロキシサーバと１または複数のコネクションを設定する。このような動作を受信端末に到達するまで繰り返すことで、送信端末と受信端末間にプロキシサーバを経由した複数のコネクションを設定することができ、これらのコネクションを用いた通信を開始することができる。
【００８２】
なお、第１の実施の形態〜第４の実施の形態において、データ分割／復元処理部１−２，７−２，８−２，９−２は、パケット毎、予め定められたデータ量毎、もしくは上位層（アプリケーション層）で一塊となるデータ量毎に、出力するコネクションを選択するようにしてもよい。
【００８３】
また、第１の実施の形態〜第４の実施の形態において、各通信装置１，７，８，９は、例えばＣＰＵ、記憶装置およびインタフェースを備えたコンピュータとこれらのハードウェア資源を制御するプログラムによって実現することができる。このようなコンピュータにおいて、本発明のデータ通信方法を実現させるためのデータ通信プログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカードなどの記録媒体に記録された状態で提供される。ＣＰＵは、読み込んだプログラムを記憶装置に書き込み、第１の実施の形態〜第４の実施の形態で説明した処理を実行する。
【産業上の利用可能性】
【００８４】
本発明は、複数のコネクションにデータを分散させて通信を行う通信装置に適用することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施の形態に係る通信装置の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態における送信端末と受信端末の間のデータの流れを示す図である。
【図３】本発明の第１の実施の形態におけるデータの分割方法と分割されたブロックを示す図である。
【図４】本発明の第１の実施の形態におけるデータの復元情報を示す図である。
【図５】本発明の第１の実施の形態における送信端末の処理を示すフローチャートである。
【図６】本発明の第１の実施の形態における受信端末の処理を示すフローチャートである。
【図７】本発明の第２の実施の形態に係る通信装置の構成例を示すブロック図である。
【図８】本発明の第２の実施の形態における送信端末と受信端末の間のデータの流れを示す図である。
【図９】本発明の第３の実施の形態に係る通信装置の構成例を示すブロック図である。
【図１０】本発明の第３の実施の形態におけるコネクション設定先テーブルの構成を１例を示す図である。
【図１１】本発明の第３の実施の形態における経路品質テーブルの構成の１例を示す図である。
【図１２】本発明の第４の実施の形態に係る通信装置の構成例を示すブロック図である。
【図１３】本発明の第４の実施の形態におけるコネクション経由先テーブルの構成の１例を示す図である。
【符号の説明】
【００８６】
１、７…通信装置、１−１、７−１、８−１、９−１…アプリケーション処理部、１−２、７−２、８−２、９−２…データ分割／復元処理部、１−３、７−３、８−３、９−３…ネットワーク処理部、１−４、７−４、８−４、９−４…到達時間計算部、７−５、８−５、９−５…到達時間通知部、８−６…コネクション設定先テーブル、８−７、９−７…経路品質テーブル、８−８、９−８…コネクション設定先決定部、９−６…コネクション経由先テーブル、２−１、２１−２…送信端末、２−２、２１−２…受信端末、２１−３、２１−４…プロキシサーバ。
【図１】
2006060674.tif 000006
【図２】
2006060674.tif 000007
【図３】
2006060674.tif 000008
【図４】
2006060674.tif 000009
【図５】
2006060674.tif 000010
【図６】
2006060674.tif 000011
【図７】
2006060674.tif 000012
【図８】
2006060674.tif 000013
【図９】
2006060674.tif 000014
【図１０】
2006060674.tif 000015
【図１１】
2006060674.tif 000016
【図１２】
2006060674.tif 000017
【図１３】
2006060674.tif 000018