(57)【特許請求の範囲】
【請求項１】
互いにデータの送受信を行う第１の通信装置及び第２の通信装置と、
前記第１の通信装置と第２の通信装置を接続する複数の通信経路と、該複数の通信経路のうち、データが伝送される経路を切り替える複数の中継ノードとを有する通信網と、
前記複数の中継ノードのうちの何れかの中継ノードにおけるパケット送受信数に占めるエラーパケットの割合を含むノード品質情報を取得する通信経路評価部と、
前記複数の中継ノードのうちの前記割合が所定の閾値より高い中継ノードへデータを送信する中継ノードを含まない、少なくとも一つの通信経路を前記複数の通信経路から選択する経路管理部とを有し、
前記第１の通信装置は、前記選択された少なくとも一つの通信経路を経由して前記第２の通信装置へデータを送信する通信システム。
【請求項２】
複数の通信経路と、該複数の通信経路のうち、データが伝送される経路を切り替える複数の中継ノードとを有する通信網を経由して他の通信装置とデータの送受信を行う通信装置であって、
前記複数の中継ノードのうちの何れかの中継ノードにおけるパケット送受信数に占めるエラーパケットの割合を含むノード品質情報を取得する通信経路評価部と、
前記複数の中継ノードのうちの前記割合が所定の閾値より高い中継ノードへデータを送信する中継ノードを含まない、少なくとも一つの通信経路を前記複数の通信経路から選択する経路管理部と、
前記選択された少なくとも一つの通信経路を経由して前記他の通信装置へデータを送信するデータ送信部と、
を有する通信装置。
【請求項３】
互いにデータの送受信を行う第１の通信装置と第２の通信装置を接続する、複数の通信経路と、該複数の通信経路のうち、データが伝送される経路を切り替える複数の中継ノードとを有する通信網を経由してデータを送信する通信方法であって、
前記複数の中継ノードのうちの何れかの中継ノードにおけるパケット送受信数に占めるエラーパケットの割合を含むノード品質情報を取得し、
前記複数の中継ノードのうちの前記割合が所定の閾値より高い中継ノードへデータを送信する中継ノードを含まない、少なくとも一つの通信経路を前記複数の通信経路から選択し、
前記第１の通信装置により、前記選択された少なくとも一つの通信経路を経由して前記第２の通信装置へデータを送信することを含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、通信装置、通信システム及び通信方法に関し、特に複数の通信経路を有する通信ネットワークを通じてデータを送受信する通信装置、通信システム及び通信方法に関する。
【背景技術】
【０００２】
近年、様々な通信サービスを提供するために、データを複数のパケットに分割して送信するための通信ネットワークが利用されている。また、そのような通信サービスには、音声通話のような、リアルタイムでデータを継続的に通信することが要求されるリアルタイム通信サービスも含まれる。このような通信ネットワークでは、互いにデータの送受信を行う通信装置間で、通信中のデータが消失しないようにデータを伝送することが重要である。そこで、データの消失を避けるために、様々な通信品質を確保する方法が採用されている。例えば、そのような方法の一つとして、再送制御が知られている。再送制御は、一方の通信装置で受信できなかったと考えられるパケットが存在する場合、再度他方の通信装置からそのパケットを送信するものである。再送制御を用いることにより、通信中にパケットの消失が発生した場合でも、消失したパケットと同一の内容を含むパケットが再度送信されるので、通信中のデータの消失の可能性を低減できる。しかし、再送制御では、パケットの到達順序が送信順序と逆転したり、伝送遅延時間が大きく変動することがある。一方、リアルタイム通信サービスでは、パケットの送信順序と到達順序が逆転したり、伝送遅延時間が変動すると、通信装置が正確にデータを再現できないおそれがある。そのため、リアルタイム通信サービスに対して、再送制御を通信品質を確保するために使用することは困難である。
【０００３】
また、他の方法として、優先制御が知られている。優先制御は、個々のパケットに対する優先度を規定し、通信ネットワークにおいてパケットを転送する中継ノードが、優先度の高いパケットほど優先的に転送処理を行うものである。しかし、パケットが輻輳したり、中継ノードに障害が発生した場合、パケットの消失または伝送遅延時間の変動を完全に防止することは困難であった。
【０００４】
そこで、一方の通信装置が、同じ内容を含む複数のパケットを、それぞれ複数の物理的に分離した通信網を通じて送信し、他方の通信装置において受信したパケットから、正常と考えられるデータのみを抽出する方法が開発されている（例えば、特許文献１を参照）。
【０００５】
【特許文献１】特開平５−１６０８１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された方法を使用するためには、物理的に独立した複数の通信ネットワークを構築しなければならない。独立した複数の通信ネットワークを構築するためには、それぞれの通信ネットワークごとに伝送線、中継器などを準備しなければならず、ネットワークの構築及びメンテナンスに要する費用が非常に高くなる。また、構築された通信ネットワークの一部において障害が発生した場合には、伝送遅延時間の変動及び送信順序と到達順序の逆転を十分に防止できなくなるおそれがあった。
【０００７】
そこで、本願は、通信中における伝送遅延時間の変動及びデータの送信順序と到達順序の逆転が生じ難い通信システム及び通信方法を提供することを課題とする。
【課題を解決するための手段】
【０００８】
一つの実施形態によれば、通信システムが提供される。係る通信システムは、互いにデータの送受信を行う第１の通信装置及び第２の通信装置と、第１の通信装置と第２の通信装置を接続する複数の通信経路を有する通信網と、複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部と、通信経路評価部による通信品質の評価結果に基づいて、複数の通信経路から少なくとも一つの通信経路を選択する経路管理部とを有する。そして係る通信システムにおいて、第１の通信装置は、選択された少なくとも一つの通信経路を経由して第２の通信装置へデータを送信する。
【０００９】
また、他の実施形態によれば、複数の通信経路を有する通信網を経由して他の通信装置とデータの送受信を行う通信装置が提供される。係る通信装置は、複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部と、通信経路評価部による通信品質の評価結果に基づいて、複数の通信経路から少なくとも一つの通信経路を選択する経路管理部と、選択された少なくとも一つの通信経路を経由して他の通信装置へデータを送信するデータ送信部とを有する。
【００１０】
さらに他の実施形態によれば、通信経路管理装置が提供される。係る通信経路管理装置は、互いにデータの送受信を行う第１の通信装置と第２の通信装置を接続する通信網に含まれる複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部と、通信経路評価部による通信品質の評価結果に基づいて、複数の通信経路から第１の通信装置と第２の通信装置を接続する少なくとも一つの通信経路を選択する経路管理部とを有する。
【００１１】
さらに他の実施形態によれば、互いにデータの送受信を行う第１の通信装置と第２の通信装置を接続する複数の通信経路を有する通信網を経由してデータを送信する通信方法が提供される。係る通信方法は、複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価し、通信品質の評価結果に基づいて、複数の通信経路から少なくとも一つの通信経路を選択し、第１の通信装置により、選択された少なくとも一つの通信経路を経由して第２の通信装置へデータを送信することを含む。
【発明の効果】
【００１２】
本願に開示された通信システム及び通信方法は、通信中における伝送遅延時間の変動及びデータの送信順序と到達順序の逆転が生じ難いという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下、図を参照しつつ、一つの実施形態による通信システムについて説明する。
一つの実施形態による通信システムでは、互いにデータの送受信を行う複数の通信装置が、複数の通信経路を有する通信ネットワークで接続される。そして、通信システムは、それら複数の通信経路のうちの少なくとも一つの通信経路について通信品質を評価し、その評価結果に基づいて、少なくとも一つの通信経路を選択する。そして一方の通信装置は、選択された各通信経路に対して、同一のデータを含むパケットを送信する。他方の通信装置は、同一のデータを含むパケットを複数受信すると、そのうちの最初に受信したパケットを選択してそのパケットからデータを取得し、残りのパケットを廃棄する。
【００１４】
図１は、一つの実施形態による通信システム１の概略構成図である。図１に示すように、通信システム１は、サーバ２とクライアントホスト３とを有する。そして、サーバ２とクライアントホスト３は、通信ネットワーク４を介して接続され、互いに通信可能となっている。また、通信ネットワーク４は、複数の中継ノード５−１、５−２、・・・、５−８を含む。各中継ノードは、他の中継ノードの何れか、あるいはサーバ２若しくはクライアントホスト３と伝送線にて接続され、接続された機器との間でデータを送受信可能となっている。例えば、中継ノード５−１は、サーバ２、中継ノード５−３及び５−５とデータを送受信できる。なお、伝送線は、有線のものに限られず、無線によりデータを伝送するものであってもよい。
【００１５】
通信ネットワーク４は、例えば、ＴＣＰ／ＩＰなどの通信プロトコルにしたがって通信するために使用されるＩＰネットワークである。各中継ノードは、ルーティング機能を有する装置であり、例えば、ルータあるいはスイッチングハブで構成される。また各中継ノード５−１〜５−８には、それぞれＩＰアドレスａ〜ｈが付与されている。そして各中継ノードは、サーバ２またはクライアントホスト３から送信されたパケットを受信すると、そのパケットに含まれる宛先情報と、中継ノード自身が有するルーティングテーブルを参照して、パケットを送り出すルートを決定する。
【００１６】
サーバ２及びクライアントホスト３は、ＣＰＵなどの制御回路と、ＲＯＭ、ＲＡＭ、磁気ディスクなどのメモリと、ＴＣＰ／ＩＰなど所定の通信規格にしたがって他の機器と通信するための通信インターフェースと、その周辺回路を有する。さらに、サーバ２及びクライアントホスト３は、ビデオカメラあるいはマイクロフォンと接続され、それらの機器から動画像データあるいは音声データを取得するように構成されていてもよい。そして、サーバ２は、例えば、サービスプロバイダあるいはコンテンツプロバイダによって設置され、動画像データ、音声データなどのリアルタイムデータをクライアントホスト３からの要求にしたがって配信する。あるいは、サーバ２は、ウェブサーバ、ftpサーバなど、データを他の機器へ送信するサーバであってもよい。一方、クライアントホスト３は、例えば、家庭内に設置されたＰＣまたは回線終端装置であり、サーバ２に対して所定のデータ取得要求を送信する。またクライアントホスト３も、サーバ２に対して、動画像データまたは音声データなどのリアルタイムデータを送信してもよい。
【００１７】
図２は、サーバ２及びクライアントホスト３の概略構成を示す図である。サーバ２及びクライアントホスト３は、それぞれ互いに対してデータを送受信する通信装置である。そして、サーバ２及びクライアントホスト３は、それぞれ、通信経路評価部１１と、経路管理部１２と、アプリケーション処理部１３と、パケット複製／選択部１４と、ＩＰレイヤ処理部１５とを有する。これらの各部は、サーバ２のＣＰＵ及びＣＰＵ上で実行されるプログラムによって実装される機能モジュールである。あるいは、上記の各部を、ファームウェアとして実装してもよい。またサーバ２は、通信インターフェース及びその周辺回路で構成されるパケットデータ送受信部１６と、ＲＯＭ、ＲＡＭあるいは磁気記録媒体及びそのアクセス装置などで構成される記憶部１７を有する。
【００１８】
上記のように、サーバ２及びクライアントホスト３は、データの送受信に関して同一の機能及び構成を有する。そこで、以下では、サーバ２についてのみ詳細に説明する。
【００１９】
通信経路評価部１１は、一方の通信装置（例えば、サーバ２）から他方の通信装置（例えば、クライアントホスト３）までの通信経路の通信品質を評価する。そのために、通信経路評価部１１は、記憶部１７に記憶された経路情報テーブルに予め登録された通信経路から、評価を行う通信経路を選択する。そして、通信経路評価部１１は、例えば、インターネット制御通知プロトコル（以下、ＩＣＭＰという）にしたがって、選択された各通信経路についてtracerouteコマンドを実行する。そして通信経路評価部１１は、各通信経路について、パケットが一方の通信装置から送信されてから他方の通信装置で受信されるまでの伝送遅延時間、伝送遅延時間の変動幅、パケット消失率、パケット転送数などの経路品質情報を得る。また通信経路評価部１１は、他の通信プロトコルまたは他の方法に基づいて、経路品質情報を得てもよい。そして通信経路評価部１１は、得られた情報を各通信経路ごとに関連付けて、経路情報テーブルに記録する。
【００２０】
また通信経路評価部１１は、シンプルネットワークマネージメントプロトコル（以下、ＳＮＭＰという）にしたがって、各通信経路上に存在する中継ノードから、その中継ノードにおける障害発生状況、パケットの送受信数、パケット破棄数、エラーパケット受信数などのノード品質情報を得てもよい。さらに、通信経路評価部１１は、ＳＮＭＰ以外の通信プロトコルまたは他の方法に基づいて、各中継ノードにおけるノード品質情報を得てもよい。通信経路評価部１１は、得られた情報を各中継ノードごとに関連付けて、ノード情報テーブルとして記憶部１７に保存する。
【００２１】
通信経路評価部１１は、定期的に（例えば、６時間ごと、１日ごと、あるいは１週間ごと）、またはネットワーク構成の変更時もしくはネットワークのメンテナンス時に、各通信経路の品質を測定し、経路情報テーブル及びノード情報テーブルを更新する。なお、通信経路評価部１１は、一度に全ての通信経路の通信品質を評価してもよく、あるいは、一部の通信経路ごとに順番に通信品質を評価してもよい。
【００２２】
図３に、経路情報テーブルの例を示す。経路情報テーブル３００は、各通信経路ごとに一つのデータセットを有する。図３において、このデータセットは、一つの行として表示される。そして、各データセットには、通信経路を識別するための経路識別子（以下、経路ＩＤという）３０１、通信経路に含まれる中継ノードのＩＰアドレスを通過順に示した経路情報３０２、その通信経路について測定された伝送遅延時間３０３、伝送遅延時間の変動幅３０４、パケット消失率３０５、及び経路使用状況識別フラグ３０６が含まれる。なお、伝送遅延時間の変動幅３０４は、経路品質評価時に、評価対象とする通信経路に複数のパケットを送信して、各パケットについて伝送遅延時間を測定し、その伝送遅延時間の最短値と最長値の差として測定される。また、最新の経路品質評価時と、前回の経路品質評価時との伝送遅延時間の差として、その変動幅３０４を測定してもよい。さらに、その変動幅３０４を、過去数回の経路品質評価時における伝送遅延時間の標準偏差としてもよい。パケット消失率３０５は、送信したパケット数に対する未受信パケット数の比である。経路使用状況識別フラグ３０６は、対応する通信経路を使用するか否かを表し、例えば、その値が'１'のとき、対応する通信経路は使用されることを示し、その値が'０'のとき、対応する通信経路は使用されないことを表す。
例えば、経路情報テーブル３００を参照すると、経路ＩＤが#0の通信経路では、サーバ２→中継ノード５−１（ＩＰアドレスａ）→中継ノード５−３（ＩＰアドレスｃ）→中継ノード５−６（ＩＰアドレスｆ）→中継ノード５−８（ＩＰアドレスｈ）→クライアントホスト３の順にパケットが転送されることが示されている。また、その通信経路の伝送遅延時間、伝送遅延時間変動幅、パケット消失率は、それぞれ３０msec、１０msec、１％であり、その通信経路は未使用（経路使用状況識別フラグ＝０）であることが分かる。
【００２３】
また図４に、ノード情報テーブルの例を示す。ノード情報テーブル４００は、各中継ノードごとに一つのデータセットを有する。図４において、このデータセットは、一つの行として表示される。そして、各データセットには、中継ノードのＩＰアドレス４０１、障害発生の有無を表す障害発生情報４０２、所定期間内のパケット送受信数４０３、所定期間内のパケット破棄数４０４、所定期間内のエラーパケット受信数４０５が含まれる。なお、障害発生情報は、例えばその値が'１'のとき、対応する中継ノードに障害が発生していることを示し、その値が'０'のとき、対応する中継ノードに障害が発生していないことを表す。また、上記の所定期間は、例えば、対象となる中継ノードについて、品質評価がされた時点における最新の１分間、１時間、あるいは１日間とすることができる。
【００２４】
なお、通信装置間の通信経路は、例えば、初期設定時、ネットワーク構成の変更時もしくはネットワークのメンテナンス時に、手動で設定され、経路情報テーブルに書き込まれる。あるいは、通信経路評価部１１が、既知のルーティングプロトコルを用いて通信装置間の通信経路を自動的に探索し、新たな通信経路を発見する度に、経路情報テーブルに追加してもよい。
【００２５】
経路管理部１２は、通信経路評価部１１による各通信経路の通信品質の評価結果に基づいて、使用する通信経路を選択する。そのために、経路管理部１２は、記憶部１７から経路情報テーブル及びノード情報テーブルを読み込む。そして、経路管理部１２は、経路情報テーブル又はノード情報テーブルを参照して、伝送遅延時間が短く、かつ伝送遅延時間の変動が少ない通信経路を使用する通信経路として選択する。あるいは、経路管理部１２は、パケットが消失する確率が小さい通信経路を使用する通信経路として選択してもよい。
【００２６】
図５及び図６のフローチャートを参照しつつ、経路選択手順の一例を示す。以下の例では、データの送信元をサーバ２とし、データの送信先をクライアントホスト３として説明する。まず、図５に示すように、通信経路評価部１１は、経路情報テーブルを参照して、サーバ２とクライアントホスト３とを結ぶ全ての通信経路を抽出する（ステップＳ１０１）。次に、通信経路評価部１１は、抽出された各通信経路の品質を評価し、その評価結果を示す伝送遅延時間、パケット消失率などの経路品質情報を経路情報テーブルに書き込む（ステップＳ１０２）。また、通信経路評価部１１は、何れかの通信経路に含まれる全ての中継ノードから、障害発生状況などのノード品質情報を取得し、ノード情報テーブルに書き込む（ステップＳ１０３）。なお、通信経路の経路品質情報及び中継ノードのノード品質情報の取得については上述したとおりである。
次に、経路管理部１２は、ノード情報テーブルを参照し、障害の発生している中継ノードを抽出する（ステップＳ１０４）。そして、経路管理部１２は、障害の発生している中継ノードがあれば、抽出された通信経路から、障害の発生している中継ノードを含む通信経路を除外する（ステップＳ１０５）。
【００２７】
ステップＳ１０４において、障害の発生している中継ノードが存在しない場合、あるいはステップＳ１０５の後、経路管理部１２は、ノード情報テーブルを参照し、パケット送受信数に占めるエラーパケットの受信数の割合を示すエラーパケット受信率が所定の閾値Th1を超えている中継ノードを抽出する（ステップＳ１０６）。なお、この所定の閾値Th1は、要求されるサービスによって決定され、例えば、５％などの値に設定される。エラーパケット受信率の高い中継ノードが存在する場合、その中継ノードに対してパケットを直接送信している他の中継ノードが不正なパケットを多く送信していると考えられる。あるいは、エラーパケット受信率の高い中継ノードを含む何れかの通信経路において、パケットエラー（若しくはビットエラー）が多く発生していると考えられる。そこで経路管理部１２は、エラーパケット受信率が所定数を超えている中継ノードがあれば、その中継ノードに対してパケットを直接送信している中継ノードを特定する（ステップＳ１０７）。経路管理部１２は、ＳＮＭＰを利用して、エラーパケット受信率が所定数を超えている中継ノードから、その中継ノードのルーティングテーブルを取得することにより、その特定を行うことができる。そして経路管理部１２は、抽出された通信経路から、特定された中継ノードを含む通信経路を除外する（ステップＳ１０８）。
【００２８】
図６に示すように、ステップＳ１０６において、エラーパケット受信率が所定の閾値Th1を超えている中継ノードが存在しない場合、あるいはステップＳ１０８の後、経路管理部１２は、ノード情報テーブルを参照し、正常パケット送受信数に占める破棄パケット数の割合を示す破棄パケット率が所定の閾値Th2を超えている中継ノードを抽出する（ステップＳ１０９）。なお、正常パケット送受信数は、所定期間内におけるパケット送受信数から、その期間内におけるエラーパケット受信数を除いた数である。また所定の閾値Th2は、要求されるサービスによって決定され、例えば、５％などの値に設定される。破棄パケット率が高い中継ノードでは、その中継ノードの処理負荷が高くなっていると考えられる。そのため、そのような中継ノードを経由しない通信経路を選択する方が好ましい。そこで、経路管理部１２は、抽出された通信経路から、破棄パケット率が閾値Th2を超える中継ノードを含む通信経路を除外する（ステップＳ１１０）。
【００２９】
ステップＳ１０９において、破棄パケット率が所定の閾値Th2を超えている中継ノードが存在しない場合、あるいはステップＳ１１０の後、経路管理部１２は、経路情報テーブルを参照して、伝送遅延時間の変動幅が所定時間Th3よりも大きい通信経路を除外する（ステップＳ１１１）。このような通信経路を除外することにより、パケットの送信順と到達順が逆転する可能性を低くすることができる。なお、所定時間Th3は、パケットの送信順と到着順が逆転しないことが推定される時間、例えば、その通信経路の伝送遅延時間の５０％に相当する時間とすることができる。
【００３０】
そして、経路管理部１２は、除外されずに残った通信経路のうち、伝送遅延時間が短い方から順に、所定数の通信経路を、使用する通信経路として選択する（ステップＳ１１２）。なお、上記の所定数、すなわち、使用する通信経路の数は、通信サービスに応じて適宜設定され、最小数は１である。また、要求される通信品質が高くなるほど、上記の所定数は大きくなる。最後に経路管理部１２は、選択された通信経路に対応する経路情報テーブルの経路使用状況識別フラグの値を、その通信経路が使用されることを示す値に書き換える（ステップＳ１１３）。
【００３１】
また、上記のステップＳ１０４〜１１１において、ステップＳ１０１で抽出された全ての通信経路が除外された場合、経路管理部１２は、上記の閾値Th1又はTh2の少なくとも一方を高くするか、所定時間Th3を大きくして再度ステップＳ１０４〜Ｓ１１１の処理を実行してもよい。あるいは、通信経路評価部１１は、例えば既知の様々なルーティングプロトコルを用いて、経路情報テーブルに挙げられていない新規な通信経路を検索し、上記のステップＳ１０２〜Ｓ１１３の処理を実行してもよい。さらに、経路管理部１２は、必ず経由しなければならない中継ノード（例えば、図１の例における中継ノード５−８）については、上記のステップＳ１０７及びＳ１０９の処理の対象から外してもよい。
【００３２】
さらに、経路管理部１２は、経路情報テーブルまたはノード情報テーブルに記載された何れか一部の情報のみを用いて、使用する通信経路を選択してもよい。例えば、経路管理部１２は、上記のステップＳ１０１で抽出された通信経路のうち、障害の発生している中継ノードを含まない全ての通信経路を使用する通信経路として選択してもよい。あるいは、経路管理部１２は、上記のステップＳ１０１で抽出された通信経路のうち、単純に伝送遅延時間が短い方から順に所定数の通信経路を、使用する通信経路として選択してもよい。さらにまた、経路管理部１２は、通信経路の選択基準として、上述したものに加え、あるいは上述したものの代わりに、別の選択基準を用いてもよい。例えば、経路管理部１２は、上記のステップＳ１０１で抽出された通信経路のうち、パケット消失率が低い方から順に所定数の通信経路を、使用する通信経路として選択してもよい。
【００３３】
さらに、各通信経路の品質情報について、過去の評価結果を表す履歴情報も記録されている場合、経路管理部１２は、その履歴情報も参照して使用する通信経路を選択してもよい。例えば、経路管理部１２は、パケット消失率が前回の品質評価時よりも高い通信経路を、使用する通信経路から除外するようにしてもよい。また、経路管理部１２は、過去数回の品質評価時におけるパケット消失率が、安定して低い（例えば、0.01％未満）通信経路を、優先的に使用する通信経路として選択してもよい。あるいは、経路管理部１２は、過去数回の品質評価時の伝送遅延時間の平均値が低い方から順に、優先的に使用する通信経路として選択してもよい。
【００３４】
アプリケーション処理部１３は、サーバ２に実装されているアプリケーションからデータ送信要求があったとき、そのデータをパケット複製／選択部１４へ送る。また逆に、サーバ２がクライアントホスト３からデータを受信した場合、アプリケーション処理部１３は、パケット複製／選択部１４において選択されたパケットに含まれるデータを、パケット複製／選択部１４から受け取る。そして、サーバ２に実装されているアプリケーションへそのデータを通知する。
【００３５】
パケット複製／選択部１４は、複製部１４１と選択部１４２を有する。このうち、複製部１４１は、サーバ２がデータを送信する際、アプリケーション処理部１３から受け取ったデータを、記憶部１７に記憶されている経路情報テーブルの経路使用状況識別フラグを参照して、使用状態となっている通信経路の数だけ複製する。そして複製部１４１は、複製された各データに、データの内容を識別するためのシーケンス番号を付与する。複製部１４１は、複製された各データに対して同一のシーケンス番号を付与する。すなわち、同一内容を持つデータに対して、同一のシーケンス番号が付与される。一方内容の異なるデータには、異なるシーケンス番号が付与される。また複製部１４１は、使用状態となっている各通信経路の経路ＩＤを、それぞれ複製されたデータに関連付ける。
そして複製部１４１は、各複製データ及び関連情報（シーケンス番号、経路識別子）をＩＰレイヤ処理部１５へ送る。
【００３６】
一方、パケット複製／選択部１４の選択部１４２は、サーバ２が通信ネットワーク４を通じてパケットを受信した際に、重複して受信したパケットから一つのパケットを選択する。そして選択部１４２は、選択したパケットに含まれるデータをアプリケーション処理部１３に渡す。例えば、選択部１４２は、同一内容のデータを含む複数のパケットのうち、最も早く受信したパケットのみを選択する。そのために、選択部１４２は、パケットを受信すると、パケット内に含まれるシーケンス番号を参照し、そのシーケンス番号を、選択部１４２に記憶されているシーケンス番号と比較する。受信したパケットに含まれたシーケンス番号が、選択部１４２に記憶されているシーケンス番号の何れとも一致しない場合、選択部１４２は、そのパケットに含まれるデータをアプリケーション処理部１３へ渡す。そして選択部１４２は、受信したパケットに含まれたシーケンス番号を、既にそのパケットを受信したことを示すために記憶する。
【００３７】
一方、受信したパケットに含まれたシーケンス番号が、選択部１４２に記憶されているシーケンス番号の何れかと一致する場合、選択部１４２は、そのパケットを廃棄する。なお、選択部１４２は、受信したパケットに含まれたシーケンス番号の照合を短時間で行うために、記憶している各シーケンス番号について、所定の条件を満たしたシーケンス番号を消去する。例えば、選択部１４２は、同一のシーケンス番号を有するパケットを、使用された通信経路の数と同数受信すると、そのシーケンス番号を消去する。また、同一の内容を含むデータを有するパケットのうち、最初のパケットを受信してから一定期間経過すると、選択部１４２は、そのパケットに対応するシーケンス番号を消去する。その一定期間は、例えば、使用された各通信経路について測定された伝送遅延時間のうち、最も長いものと等しい期間か、その最も長い伝送遅延時間に所定のマージンを加えた値（例えば、１０ｍｓｅｃなどの固定値を加えた値、あるいは上記の最も長い伝送遅延時間に1.1などの係数を乗じた値）とすることができる。このようにシーケンス番号を消去する条件を決定するために、サーバ２は、データの送信に使用された通信経路の伝送遅延時間などの情報を、データの送信元であるクライアントホスト３から予め取得する。
【００３８】
また、選択部１４２は、別の選択基準に基づいて、重複して受信したパケットから一つのパケットを選択してもよい。例えば、選択部１４２は、後続のデータを含むパケットが到達するまでに、同一のデータを含むパケットを複数受信した場合、それらのパケットの中からエラービットの発生率が最も低いパケットを選択して、そのパケットからデータを取得するようにしてもよい。
【００３９】
ＩＰレイヤ処理部１５は、サーバ２がデータを送信する場合、パケット複製／選択部１４より送信すべきデータを受け取ると、ＩＰプロトコルにしたがってデータを送信できるように、そのデータをパケット化する。そして、ＩＰレイヤ処理部１５は、パケットに所定のヘッダ情報を書き込む。ＩＰレイヤ処理部１５は、ＩＰｖ４にしたがってデータを送信する場合、そのデータを含む各パケットのソース・ルーティング・オプションの領域に、そのデータと関連付けられた経路ＩＤに対応する経路情報を書き込む。また、ＩＰｖ６にしたがってデータを送信する場合、ＩＰレイヤ処理部１５は、そのデータを含む各パケットのルーティング・ヘッダの領域に、そのデータと関連付けられた経路ＩＤに対応する経路情報を書き込む。このように、パケットのヘッダ情報の所定の領域に経路情報を書き込むことにより、サーバ２は、その経路情報に示される通信経路に沿ってパケットを送信することができる。さらに、ＩＰレイヤ処理部１５は、例えばパケットのデータ領域の先頭あるいは終端に、送信するデータに関連付けられたシーケンス番号を書き込む。ＩＰレイヤ処理部１５は、作成したパケットをパケットデータ送受信部１６を介して通信ネットワーク３へ送出する。
【００４０】
一方、サーバ２が通信ネットワーク３からパケットデータ送受信部１６を介してパケットを受信した場合、ＩＰレイヤ処理部１５は、ＩＰプロトコルにしたがってパケットからヘッダ情報を取り除き、そのパケットをパケット複製／選択部１４へ送る。
【００４１】
以下、データ送信手順を、図７に示したフローチャートを参照しつつ説明する。なお、以下の手順は、サーバ２からクライアントホスト３へデータを送信するものとして説明する。しかし、以下の手順は、クライアントホスト３からサーバ２へデータを送信する場合にも同様に適用される。
まず、アプリケーション処理部１３にデータ送信要求が通知されると、アプリケーション処理部１３は、送信すべきデータをパケット複製／選択部１４へ送る（ステップＳ２０１）。パケット複製／選択部１４の複製部１４１は、アプリケーション処理部１３からデータを受け取ると、経路情報テーブルを参照して、経路管理部１２で決定された使用通信経路の数だけデータを複製する（ステップＳ２０２）。なお、使用する通信経路は、例えば、図５及び図６に示した手順にしたがって予め決定される。そして複製部１４１は、複製されたデータのそれぞれに、それらのデータが通るべき通信経路に対応する経路ＩＤ及びデータの同一性を示すシーケンス番号を付す（ステップＳ２０３）。各複製データは、ＩＰレイヤ処理部１５に渡される。
【００４２】
次に、ＩＰレイヤ処理部１５は、複製データごとに、付された経路ＩＤに対応する経路情報を経路情報テーブルから取得する（ステップＳ２０４）。そして、ＩＰレイヤ処理部１５は、ＩＰプロトコルにしたがって、複製データごとにそれぞれパケットを作成し、パケットのヘッダ情報の所定領域に経路情報を書き込み、パケットのデータ領域の所定位置にシーケンス番号を書き込む（ステップＳ２０５）。そして、ＩＰレイヤ処理部１５は、パケットデータ送受信部１６を介して、クライアントホスト３へ各パケットを送信する（ステップＳ２０６）。
【００４３】
また、データ受信手順を、図８に示したフローチャートを参照しつつ説明する。なお、以下の手順は、クライアントホスト３がサーバ２からデータを受信するものとして説明する。しかし、以下の手順は、サーバ２がクライアントホスト３からデータを受信する場合にも同様に適用される。
まず、クライアントホスト３は、サーバ２から通信ネットワーク４を介してパケットを受信すると、ＩＰレイヤ処理部１５において、受け取ったパケットからヘッダ情報を除去し、パケット複製／選択部１４へそのパケットを渡す（ステップＳ３０１）。パケット複製／選択部１４の選択部１４２は、受け取ったパケットに含まれるシーケンス番号を、自身が記憶しているシーケンス番号の何れかと一致するか否か照合する（ステップＳ３０２）。そして、受け取ったパケットに含まれるシーケンス番号が、選択部１４２が記憶しているシーケンス番号の何れとも一致しない場合、選択部１４２は、そのパケットに含まれるデータをアプリケーション処理部１３に送る（ステップＳ３０３）。そして選択部１４２は、そのパケットに含まれるシーケンス番号を記憶する（ステップＳ３０４）。
【００４４】
一方、ステップＳ３０２において、受け取ったパケットに含まれるシーケンス番号が、選択部１４２が記憶しているシーケンス番号の何れかと一致する場合、選択部１４２は、そのパケットを廃棄する（ステップＳ３０５）。
【００４５】
以上説明してきたように、一つの実施形態に係る通信システムは、データを送信する前に、複数の通信経路を含む通信ネットワークのうちの少なくとも一つの通信経路の通信品質を評価し、その評価結果に基づいて、最適な通信経路を一つ以上選択する。そして、一方の通信装置は、選択された各通信経路に同一内容のデータを含むパケットをそれぞれ送信する。また、他方の通信装置は、同一内容のデータを含むパケットを複数受信すると、そのうちの最も早く受信したパケットを選択してデータを取得し、他のパケットを廃棄する。そのため、通信途中におけるパケットの消失、伝送遅延時間の変動、及びパケットの送信順序と到着順序の逆転などの可能性を低減できる。したがって、係る通信システムは、音声通話サービス、ライブ映像配信サービスなどのリアルタイム通信サービスに好適に用いることができる。
【００４６】
以上、一つの実施形態に係る通信システムについて説明してきたが、本発明は上記の実施形態に限定されるものではない。例えば、上記の通信システムに含まれるサーバ及びクライアントホストの数は、それぞれ１台に限られない。そして、サーバ同士、あるいはクライアントホスト同士で通信する場合にも、上記と同様に、通信経路の経路品質が評価され、その結果に基づいて選択された通信経路を介して、データの送受信が行われる。また、データの送受信を行う一組の通信装置のうちの一方、例えば、サーバだけが上記の構成及び機能を有し、他方の通信装置は公知のものであってもよい。さらに、中継ノードの数及び通信ネットワークの構成も、上記の実施形態に限られない。
【００４７】
また、上記の実施形態においてサーバ及びクライアントホストに含まれる通信経路評価部及び経路管理部は、サーバ及びクライアントホストと独立して設置され、通信ネットワークに接続される通信経路管理装置が有していてもよい。
図９に、サーバとクライアントホストから独立して通信経路管理装置を設置した場合の通信システム１０の構成図を示す。なお、図９において、上記の実施形態と同一の機能を有するものには、上記の実施形態において使用した参照番号と同一の参照番号を付した。図９に示す通信システム１０において、通信経路管理装置９は、例えば、ＣＰＵなどの制御回路と、ＲＯＭ、ＲＡＭ、磁気ディスクなどのメモリと、ＴＣＰ／ＩＰなど所定の通信規格にしたがって他の機器と通信するための通信インターフェースと、その周辺回路を有する。そして、上述した手順に従い、サーバ２とクライアントホスト３間の通信経路を通信経路評価部１１で評価し、経路管理部１２で最適な通信経路を選択する。なお、通信ネットワーク４に接続されたサーバ２とクライアントホスト３が複数存在する場合、それらのうちの何れか二つを互いにデータの送受信を行う通信装置として、それぞれ最適な通信経路が選択される。そして通信経路管理装置９は、複数のサーバ２及びクライアントホスト３から選択された二つの通信装置の組み合わせごとに、それらの通信装置のアドレスと関連付けて、選択された経路情報を記憶しておく。一方、サーバ２及びクライアントホスト３は、予め通信経路管理装置９のアドレスを記憶しておく。そして、データを送信しようとするサーバ２又はクライアントホスト３は、自身のアドレス及び通信の相手となる通信装置のアドレスを通信経路管理装置９に通知して、最適な通信経路を問い合わせる。そして、通信経路管理装置９は、通知された通信装置の組み合わせに該当する経路情報を、問い合わせを行ったサーバ２又はクライアントホスト３へ返信する（さらに、通信経路管理装置９は、通信の相手となる通信装置にもその経路情報を通知してもよい）。そして、サーバ２又はクライアントホスト３は、通信経路管理装置９から通知された経路情報に基づいて、データを送信する。なお、通信経路管理装置９とサーバ２又はクライアントホスト３を、通信ネットワーク４とは独立に設置された通信線により接続してもよい。さらに、通信経路管理装置９の機能を、通信ネットワークに含まれる何れかの中継ノードが有していてもよい。
【００４８】
さらに、別の実施形態として、上記の通信経路管理装置９が通信経路評価部１１を有し、サーバ２及びクライアントホスト３が経路管理部１２を有していてもよい。この場合には、通信経路管理装置９は、サーバ２とクライアントホスト３間の通信経路を通信経路評価部１１で評価し、その評価結果である経路品質情報及びノード品質情報を記憶する。一方、サーバ２及びクライアントホスト３は、通信に使用する通信経路を選択するために、通信の相手となる通信装置までの通信経路に関する経路品質情報及びノード品質情報を、通信経路管理装置９から取得する。
【００４９】
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
【００５０】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
互いにデータの送受信を行う第１の通信装置（２）及び第２の通信装置（３）と、
前記第１の通信装置（２）と第２の通信装置（３）を接続する複数の通信経路を有する通信網（４）と、
前記複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部（１１）と、
前記通信経路評価部による通信品質の評価結果に基づいて、前記複数の通信経路から少なくとも一つの通信経路を選択する経路管理部（１２）とを有し、
前記第１の通信装置（２）は、前記選択された少なくとも一つの通信経路を経由して前記第２の通信装置（３）へデータを送信する通信システム。
（付記２）
前記経路管理部（１２）は、前記複数の通信経路のうち、少なくとも二つの通信経路を選択し、前記第１の通信装置（２）は送信しようとするデータを該選択された通信経路の数だけ複製するデータ複製部（１４）を有し、かつ、前記第１の通信装置（２）は該選択された全ての通信経路に対して前記複製されたデータを送信する、付記１に記載の通信システム。
（付記３）
前記第２の通信装置（３）は、前記選択された通信経路のうちの少なくとも二つから別個に前記複製されたデータを受信した場合、該受信した複製されたデータのうち、最初に受信したデータを選択し、他のデータを廃棄する、付記２に記載の通信システム。
（付記４）
前記通信品質の評価結果は、前記第１の通信装置（２）から前記第２の通信装置（３）へのデータ転送に要する伝送遅延時間を含み、前記経路管理部（１２）は、該伝送遅延時間が短い方から順に少なくとも一つの通信経路を選択する、付記１に記載の通信システム。
（付記５）
前記通信網（４）は、前記複数の通信経路のうち、データが伝送される経路を切り替える中継ノード（５−１、．．、５−８）を複数有し、前記通信経路評価部（１１）は、該複数の中継ノード（５−１、．．、５−８）のうちの少なくとも一つに関する通信状態を評価して、該通信状態を表すノード品質情報を前記通信品質の評価結果として取得し、前記経路管理部（１２）は、該ノード品質情報に基づいて前記複数の通信経路から少なくとも一つの通信経路を選択する、付記１に記載の通信システム。
（付記６）
前記ノード品質情報は、前記複数の中継ノード（５−１、．．、５−８）のうちの何れかの中継ノードにおいて通信障害が発生しているか否かを示す障害情報を含み、前記経路管理部（１２）は、該障害情報を参照して、前記複数の通信経路から通信障害が発生している中継ノードを含まない少なくとも一つの通信経路を選択する、付記１に記載の通信システム。
（付記７）
前記ノード品質情報は、前記複数の中継ノード（５−１、．．、５−８）のうちの何れかの中継ノードにおける不正なデータの受信数を含み、前記経路管理部（１２）は、該受信数が所定数より多い場合、前記複数の中継ノードのうち、該受信数が所定数より多い中継ノードへデータを送信する中継ノードを含まない少なくとも一つの通信経路を前記複数の通信経路から選択する、付記１に記載の通信システム。
（付記８）
前記通信品質の評価結果は、伝送遅延時間の変動幅を含み、前記経路管理部（１２）は、前記複数の通信経路から、該伝送遅延時間の変動幅が所定時間以下の通信経路を少なくとも一つ選択する、付記１に記載の通信システム。
（付記９）
複数の通信経路を有する通信網を経由して他の通信装置（３）とデータの送受信を行う通信装置（２）であって、
前記複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部（１１）と、
前記通信経路評価部（１１）による通信品質の評価結果に基づいて、前記複数の通信経路から少なくとも一つの通信経路を選択する経路管理部（１２）と、
前記選択された少なくとも一つの通信経路を経由して前記他の通信装置（３）へデータを送信するデータ送信部（１６）と、
を有する通信装置。
（付記１０）
互いにデータの送受信を行う第１の通信装置（２）と第２の通信装置（３）を接続する通信網（４）に含まれる複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価する通信経路評価部（１１）と、
前記通信経路評価部（１１）による通信品質の評価結果に基づいて、前記複数の通信経路から前記第１の通信装置（２）と第２の通信装置（３）を接続する少なくとも一つの通信経路を選択する経路管理部（１２）と、
を有する通信経路管理装置（９）。
（付記１１）
互いにデータの送受信を行う第１の通信装置（２）と第２の通信装置（３）を接続する複数の通信経路を有する通信網（４）を経由してデータを送信する通信方法であって、
前記複数の通信経路のうち、少なくとも一つの通信経路について通信品質を評価し、
前記通信品質の評価結果に基づいて、前記複数の通信経路から少なくとも一つの通信経路を選択し、
前記第１の通信装置（２）により、前記選択された少なくとも一つの通信経路を経由して前記第２の通信装置（３）へデータを送信することを含む通信方法。
（付記１２）
前記通信経路の選択は、前記複数の通信経路のうち少なくとも二つの通信経路を選択し、かつ、前記データの送信は、送信しようとするデータを該選択された通信経路の数だけ複製し、該選択された全ての通信経路に対して前記複製されたデータを送信する、付記１１に記載の通信方法。
（付記１３）
前記第２の通信装置（３）が前記選択された通信経路のうちの少なくとも二つから別個に前記複製されたデータを受信した場合、該受信した複製されたデータのうち、最初に受信したデータを選択し、他のデータを廃棄することをさらに含む、付記１２に記載の通信方法。
（付記１４）
前記通信品質の評価結果は、前記第１の通信装置（２）から前記第２の通信装置（３）へのデータ転送に要する伝送遅延時間を含み、前記通信経路の選択は、該伝送遅延時間が短い方から順に少なくとも一つの通信経路を選択する、付記１１に記載の通信方法。
（付記１５）
前記通信網（４）は、前記複数の通信経路のうち、データが伝送される経路を切り替える中継ノード（５−１、．．、５−８）を複数有し、
前記通信品質の評価は、前記複数の中継ノード（５−１、．．、５−８）のうちの少なくとも一つに関する通信状態を評価して、該通信状態を表すノード品質情報を前記通信品質の評価結果として取得し、
前記通信経路の選択は、該ノード品質情報に基づいて前記複数の通信経路から少なくとも一つの通信経路を選択する、付記１１に記載の通信方法。
（付記１６）
前記ノード品質情報は、前記複数の中継ノード（５−１、．．、５−８）のうちの何れかの中継ノードにおいて通信障害が発生しているか否かを示す障害情報を含み、前記通信経路の選択は、該障害情報を参照して、前記複数の通信経路から通信障害が発生している中継ノードを含まない少なくとも一つの通信経路を選択する、付記１１に記載の通信方法。
（付記１７）
前記ノード品質情報は、前記複数の中継ノード（５−１、．．、５−８）のうちの何れかの中継ノードにおける不正なデータの受信数を含み、前記通信経路の選択は、該受信数が所定数より多い場合、前記複数の中継ノードのうち、該受信数が所定数より多い中継ノードへデータを送信する中継ノードを含まない少なくとも一つの通信経路を前記複数の通信経路から選択する、付記１１に記載の通信方法。
（付記１８）
前記通信品質の評価結果は、伝送遅延時間の変動幅を含み、前記通信経路の選択は、前記複数の通信経路から、該伝送遅延時間の変動幅が所定時間以下の通信経路を少なくとも一つ選択する、付記１１に記載の通信方法。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態による通信システムの概略構成図である。
【図２】本発明の一実施形態で使用されるサーバの概略構成図である。
【図３】経路情報テーブルの一例を示す図である。
【図４】ノード情報テーブルの一例を示す図である。
【図５】経路選択手順の一例を示すフローチャートである。
【図６】経路選択手順の一例を示すフローチャートである。
【図７】データを送信する手順の一例を示すフローチャートである。
【図８】データを受信する手順の一例を示すフローチャートである。
【図９】本発明の他の実施形態による通信システムの概略構成図である。
【符号の説明】
【００５２】
１、１０    通信システム
２    サーバ
３    クライアントホスト
４    通信ネットワーク
５−１、５−２、・・・、５−８    中継ノード
９    通信経路管理装置
１１    通信経路評価部
１２    経路管理部
１３    アプリケーション処理部
１４    パケット複製／選択部
１４１    複製部
１４２    選択部
１５    ＩＰレイヤ処理部
１６    パケットデータ送受信部
１７    記憶部
【図１】
0005233295.tif 000002
【図２】
0005233295.tif 000003
【図３】
0005233295.tif 000004
【図４】
0005233295.tif 000005
【図５】
0005233295.tif 000006
【図６】
0005233295.tif 000007
【図７】
0005233295.tif 000008
【図８】
0005233295.tif 000009
【図９】
0005233295.tif 000010