本発明は、異なるルータ配下のローカルネットワークに接続された通信端末間を接続し、データ通信を可能とする通信端末および、ソフトウェアに関する。
近年、ネットワークに接続された通信端末間を接続し、情報の共有や、映像、音声等を用いたコミュニケーションを行う、「ピアツーピア(Peer to Peer=P2P)」接続と呼ばれる接続方式が注目されている。
しかし、一般の家庭では、多くの場合、ルータのアドレス変換(NAT:Network Address Translator)機能を利用して通信端末を接続している。
ここで、NAT機能とは、ローカルネットワーク(LAN)内のプライベートアドレスを、インターネット等のグローバルネットワーク内の通信で使用されるグローバルアドレスに変換する機能である。NAT機能としては、プライベートアドレスとグローバルアドレスとを1対1の対応で変換する狭義のNAT機能が知られている。また、それに加えて、NAPT(Network Address Port Translation)機能と呼ばれる、プライベートアドレスとポート番号の組を、グローバルアドレスとポート番号の組に変換することで、1つのグローバルアドレスを使って、ルータ配下に接続された複数の通信端末で、その1つのグローバルアドレスを共用可能とする機能も知られている。本明細書では、狭義のNAT機能とNAPT機能とをまとめて、NAT機能と呼ぶことにする。
異なるルータに接続された通信端末間を接続可能するためには、通信端末が接続された両ルータのNAT機能が正しく設定されている必要がある。
NAT機能を設定する方法としては、ローカルネットワークに接続された通信端末がグローバルネットワークのサーバ宛にパケットを送信した場合等に、ルータのNAT機能で自動的に設定される動的NAT設定が知られている。動的NAT設定は、ルータのNAT機能が自動で、変換後のグローバルアドレスとポート番号を割り当て、通信端末のローカルアドレスとポート番号の組と、変換後のグローバルアドレスとポート番号の組を含む変換ルールを自動的に設定する。
この動的NAT設定により、ローカルネットワークに接続された通信端末からグローバルネットワーク上のWebサーバに接続する場合等には、ユーザが特別なNAT機能への設定を行う必要なしに通信が可能である。
このため、グローバルネットワーク上に中継サーバを設け、異なるルータに接続された通信端末が、それぞれ、動的NAT設定を利用して中継サーバに接続し、その中継サーバを経由して、通信端末間を接続することで、ユーザが特別な設定を行うことなく、通信できることが知られている。
しかし、このような中継サーバを用いて接続する方法では、中継サーバにトラヒックが集中し、中継サーバの処理能力、処理帯域がボトルネックになる場合がある。このため、グローバルネットワークに、ルータを介さずに直接接続された通信端末や、グローバルネットワークから常に接続可能となるように、ルータのNAT機能の設定を実行している通信端末に中継機能を持たせ、中継サーバとして動作させることで、中継サーバ数を増やし、処理能力、処理帯域を分散させる方法が知られている。
Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN) draft-ietf-behave-turn-09
しかしながら、通信端末に中継機能を持たせ、中継サーバとして動作させる方法では、中継機能を提供する通信端末に、通信端末自身用の処理に加えて、中継用の処理を実行する能力が必要になる。この中継処理を行う場合、受信したデータを、別の端末に送信する必要があるため、送受信で2倍の帯域のデータを処理する必要が生じる。これらを処理可能とするためには、通信端末のコストが高くなるという問題がある。
加えて、通信端末とインターネットを接続しているアクセス回線は、ADSL:Asymmetric Digital Subscriber Line等の限られた帯域しか持たない回線が使用されることも多いと考えられる。このため、中継機能で中継される通信帯域が大きくなると、輻輳等が発生し、中継機能を提供した通信端末が接続しているローカルネットワーク全体に悪影響が発生するという問題がある。
本発明は、上記問題点を鑑み、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式の提供を目的とする。
また、通信端末(例えば、一般の家庭のユーザのコンピュータ)の間における通信データの通信が高速になり、かつ、その通信の品質を安定させることを目的とする。
上記課題を解決するため、本発明の通信端末は、グローバルネットワーク(例えば、図1のインターネット1)のアドレスが割り当てられた中継装置(図1の中継サーバ4a〜4N、図8の通信端末6p、通信端末6qなど)を介して、相手先通信端末(通信端末6b、通信端末6tなど)と通信を行う、ローカルネットワーク(ローカルネットワーク2a、2s)に接続された通信端末(通信端末6a、6s、6Lなど)であって、複数の前記中継装置のアドレス宛にパケットを送信することにより、それぞれの前記中継装置が、前記通信端末(通信端末6a等)へパケットを送信する際に、その中継装置が前記通信端末から受信した前記パケットの送信元アドレス宛に、その中継装置が(、その中継装置が送信する前記パケットの)送信を行う通信路を設定する中継通信設定部(中継通信設定部621)と、通信データが分割された複数の分割データを、複数の前記中継装置を介して通信する通信部(通信処理部624a、通信処理部624aが有するデータ送信部624及びデータ受信部625のうちの一方、又は、通信処理部624aが含まれる全体(通信部62p等))と、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、複数の前記分割データの通信が介する複数の前記中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視部(通信状況監視部622)とを備える通信端末である。
この構成により、通信データをより高速に通信できる。
なお、上記の通信部は、図9の通信処理部624aに対応すると理解されてもよい。また上記の通信部は、通信処理部624aを含んだ全体、具体的には、図2の通信部62pなどに対応すると理解されてもよい。上記の中継通信設定部は、通信部(図2の通信部62p)の一部として本通信端末に設けられてもよい。上記の通信状況監視部は、例えば、監視する各通信状況を評価して、その評価の評価結果に基づいて、上記の変更を行わせてもよい。
また、通信部は、複数の分割データのうちの少なくとも一部の分割データを、2以上の中継装置をシーケンシャルに利用して、通信してもよい。また、通信部は、複数の分割データのうちの少なくとも一部を、その少なくとも一部に含まれる分割データの個数と同じ個数の中継装置をパラレルに利用して、互いに異なる分割データは互いに異なる中継装置を介して通信してもよい。
なお、通信部は、具体的には、例えば、監視される各通信状況の全体を評価した評価結果に基づいて、上記変更を行う。また、通信状況監視部は、具体的には、例えば、前記複数の分割データの通信が介する前記複数の中継装置(以下、使用中の複数の中継装置)を変更する制御を当該通信端末および前記相手先通信端末のうちの少なくとも一方に行う。なお、ここで、通信端末等に制御を行うとは、通信端末等の全体を制御することと、通信端末等に含まれる予め定められた部分のみを制御することとの両者が含まれる。ここで、通信端末は、「端末」であるので、例えば、一般の家庭のユーザのパーソナルコンピュータなどが含まれる。なお、通信部は、例えば、上記複数の中継装置を介して、上記複数の分割データを送信することにより、上記通信データを並列に相手先通信端末と通信してもよい。なお、上記分割データは、例えば、いわゆるパケットであってもよい。通信部は、例えば、通信データを複数のパケットへと分割する。
また、通信状況監視部は、具体的には、例えば、評価結果に基づいて、評価結果が予め定められた結果より良い結果であれば、上記変更を行わず、使用中の複数の中継装置を、現在の複数の中継装置に維持する。そして、例えば、具体的には、通信状況監視部は、評価結果が、予め定められた結果以下の結果であれば、上記変更をすることにより、変更前の結果よりも良い評価結果が得られるように、使用する複数の中継装置を変更する。これにより、通信状況が、予め定められた結果より良い結果になるように、通信データの通信の評価(品質)を維持できる。
本発明によれば、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する機器に大きな処理負荷をかけることなく、かつ、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式が実現できる。
また、通信端末と相手先通信端末との間における通信データの通信が高速になり、かつ、その通信の品質が安定するようにできる。
図1は、本実施の形態における通信端末を接続するネットワークの構成の一例を示す図である。
図2は、本実施の形態における通信端末の機能構成の一例を示したブロック図である。
図3は、本実施の形態における通信端末の接続手順の一例を示すシーケンス図である。
図4は、本実施の形態における通信端末の再送手順の一例を示すシーケンス図である。
図5は、本実施の形態における通信端末の中継通信路の入替手順の一例を示すシーケンス図である。
図6は、本実施の形態における通信端末の切断手順の一例を示すシーケンス図である。
図7は、本実施の形態における中継通信サーバ機能を持つ通信端末の機能構成の一例を示したブロック図である。
図8は、本実施の形態における中継通信サーバ機能を持つ通信端末を接続するネットワークの構成の一例を示す図である。
図9は、通信端末を示す図である。
本発明の実施の形態について図に基づいて説明する。
図1は、この実施形態における通信端末のネットワーク構成を示したブロック図である。
システムXは、センターサーバ3と、ローカルネットワーク2aと、ローカルネットワーク2bと、N台の中継サーバ(中継サーバ4a〜中継サーバ4N)とを備える。ここで、Nは、2以上の整数である。
ローカルネットワーク2aは、ルータ5aと、通信端末6aとを含む。
ローカルネットワーク2bは、ルータ5bと、通信端末6bとを含む。
以下では、システムXに含まれる1台の通信端末が開始させる、その通信端末と、その通信端末以外の他の通信端末との通信のうちで、通信端末6aが開始させる、通信端末6aと通信端末6bとの通信が、一例として詳しく説明される。以下では、説明の便宜上、通信端末6aは、発呼側通信端末6aと呼ばれる。通信端末6bは、着呼側通信端末6bと呼ばれる。
システムXにおいては、センターサーバ3と中継サーバ4a〜4Nとルータ5a、5bが、グローバルネットワークであるインターネット1を介して互いに接続されている。また、ルータ5a、5bはNAT機能を有し、そのルータにより構成されるローカルネットワーク(ローカルネットワーク2aおよびローカルネットワーク2b)に、通信端末6a、6bがそれぞれ接続されている。
本実施の形態では、ルータ5a、5bに各々接続された通信端末6a、6bが、中継サーバ4a〜4Nにそれぞれ部分通信路を接続し、それら複数の中継サーバ経由で通信を行う。なお、発呼側通信端末6aが中継サーバに接続する部分通信路は、発呼側部分通信路と呼ばれる。また、着呼側通信端末6bが中継サーバに接続する部分通信路は、着呼側部分通信路と呼ばれる。1つの中継サーバに発呼側通信端末6aから接続された発呼側部分通信路と、着呼側通信端末6bから接続された着呼側部分通信路との両者により、その中継サーバを介した1つの中継通信路が構成される。発呼側部分通信路は、その発呼側部分通信路を含む中継通信路のうちで、発呼側通信端末6aと中継サーバとの間の部分である。着呼側部分通信路は、その着呼側部分通信路を含む中継通信路のうちで、着呼側通信端末6bと中継サーバとの間の部分である。そして、発呼側通信端末6aは、より具体的には、以下で詳しく説明される中継サーバ情報に基づいて特定されるk個の選択中継サーバ(2≦k≦N)にそれぞれ、発呼側部分通信路を接続し、着呼側通信端末6bは、それらk個の選択中継サーバにそれぞれ着呼側部分通信路を接続する。そして、通信端末6a、6bは、それらk個の選択中継サーバによる中継通信路によって、互いの間の通信を行う。これにより、通信端末6a、6bは、例えば、1つの中継サーバのみにより通信を行う場合と比べて、例えば約k倍高速である通信など、比較的高速な通信を行う。
ここで、センターサーバ3は、通信端末6a、6bと常に通信可能な状態で接続されており、各通信端末の間での接続、切断の制御メッセージの送受信を行うシグナリング機能を持つ。また、センターサーバ3は、各中継サーバ4a〜4Nのアドレス情報を含む中継サーバ情報を管理し、通信端末6a、6bに対して、中継サーバ情報を提供する中継サーバ情報管理機能を持つ。
ここで、アドレスとは、IPアドレス又は、IPアドレスとポート番号のセット等の、ネットワークにおいて通信先を特定する情報を意味するものとする。アドレス情報とは、アドレスを含む情報を意味するものとする。
なお、中継サーバ情報は、中継サーバ4a〜4N(図1)のうちから、一部又は全部の中継サーバを特定する。なお、中継サーバ情報は、具体的には、例えば、発呼側通信端末6aが有する予め定められた対応関係の値を特定してもよい。ここで、この対応関係は、中継サーバ情報により特定される値と、2以上の中継サーバ情報とを対応付ける。そして、中継サーバ情報は、値を特定することにより、その値に、その対応関係が対応させる各選択中継サーバを特定する。通信端末は、例えば、その値に基づいて、その値に対応する各中継サーバを特定する機能を有する。
中継サーバ4a〜4Nのそれぞれは、通信端末6aと通信端末6bとの間でデータを送受信するときに一時的に各通信端末6a、6bと接続し、通信端末間で送受信されるデータを中継する中継機能を提供する。
ルータ5aは、NAT機能を有するルータである。ルータ5aは、ローカルネットワーク2aとインターネット1を接続可能にする。通信端末6aは、ローカルネットワーク2aにおいてルータ5aを介してセンターサーバ3および中継サーバ4a〜4Nと通信して、他の通信端末とデータの送受信をする。同様に、ルータ5bは、NAT機能を有するルータである。ルータ5bは、ローカルネットワーク2bとインターネット1を接続可能にする。通信端末6bは、ローカルネットワーク2bにおいてルータ5bを介してセンターサーバ3および中継サーバ4a〜4Nと通信して、他の通信端末とデータの送受信をする。
なお、上述のように、ルータ5a、5bのそれぞれは、NAT機能を有する。これにより、通信端末6a、6bのそれぞれは、その通信端末が含まれるローカルネットワーク(ローカルネットワーク2a又はローカルネットワーク2b)における動的NAT設定機能を用いて、その通信端末から、そのローカルネットワークの外部にある外部装置(センターサーバ3、中継サーバ4a〜中継サーバ4N)へと通信路を接続できる。他方で、外部装置は、その外部装置から、各ローカルネットワークに含まれる通信端末(通信端末6a、通信端末6b)へと通信路を接続できない。
図2は、通信端末6の基本的な構成の一例を示している。
システムXに含まれる各通信端末(通信端末6a、通信端末6b等)は、互いに共通する共通機能を有する。通信端末6は、システムXに含まれる各通信端末(通信端末6a、通信端末6b等)のうちの一例である。通信端末6は、例えば、通信端末6aである。そして、図2において、通信端末6は、上位アプリケーション機能部61、中継クライアント部(中継通信クライアント部)62、通信I/F部63を備える。
なお、通信端末6は、例えば、CPU、RAM、ROMなどを備えるコンピュータであってもよい。そして、中継クライアント部62等のそれぞれは、このコンピュータにより、プログラムが実行されることにより実現される機能の機能ブロックであってもよい。
上位アプリケーション機能部61は、通信端末6のアプリケーション機能を提供し、中継クライアント部62、通信I/F部63を通じて、通信端末6が通信する相手の通信端末たる相手通信端末と通信データの送受信を行い、送受信データを利用しながら、ユーザに対するI/Fを提供する。
発呼側通信端末6aが有する中継クライアント部62は、中継サーバ情報(先述)によって特定される複数の中継サーバ(選択中継サーバ)を用いて、相手通信端末(着呼側通信端末6b)との間に、中継通信路を設定し、それらの複数の中継通信路を用いて、中継通信を実現する。そして、より具体的には、中継クライアント部62は、それら各選択中継サーバと発呼側通信端末6aとの間の部分通信路(先述)をそれぞれ設定する。つまり、中継クライアント部62は、それら各選択中継サーバに対して、発呼側部分通信路(先述)をそれぞれ接続する。また、中継クライアント部62は、着呼側通信端末6bに対して、着呼側通信端末6bがそれら各選択中継サーバに対して着呼側部分通信路を各々接続するよう、後で詳しく説明される接続要求(図3のステップS33)を行う。なお、後で詳しく説明されるよう、この接続要求は、センターサーバ3を介して行われる。発呼側通信端末6aの中継クライアント部62は、こうしてk個の中継通信路をそれぞれ設定する。
通信I/F部63は、通信端末6をネットワークに接続するためのインタフェース機能を提供する。中継クライアント部62は、通信I/F部63を通じて、ネットワークに接続される。
また、中継クライアント部62は、より詳細には、中継通信設定部621、通信状況監視部622、中継通信路情報記憶部623、データ送信部624、データ受信部625を備える。
中継通信設定部621は、センターサーバ3から中継サーバ情報を取得し、取得した中継サーバ情報を用いて、中継通信を行うための各中継通信路を、それぞれ、複数の中継サーバと発呼側通信端末6aとの間に設定する。
また、中継通信設定部621は、後で詳しく説明される通信状況監視部622から指示を取得する。具体的には、第1に、中継通信設定部621は、中継通信設定部621が過去に設定した既存の既存中継通信路を削除することを指示する削除指示を取得する。また、第2に、中継通信設定部621は、新規中継通信路の設定を指示する新規設定指示を取得する。また、第3に、中継通信設定部621は、既存の既存中継通信路の削除と代替の新規中継通信路の設定の両方を指示する両方指示を取得する。そして、中継通信設定部621は、削除指示が取得されれば、取得された削除指示によって指定される中継通信路を削除する。また、中継通信設定部621は、新規設定指示を取得すれば、取得される新規設定指示によって指定される中継サーバによる新規中継通信路を新たに設定する。また、中継通信設定部621は、両方指示を取得すれば、両方指示によって指定された削除中継通信路を削除すると共に、同じく両方指示によって指定された新規中継通信路を新たに設定する。
通信状況監視部622は、中継サーバを介した、相手通信端末6bと発呼側通信端末6aとの間の中継通信路の通信状況(通信帯域、伝送遅延、パケットロス率等)を監視、評価し、評価結果に基づき、中継通信路の削除、又は新規中継通信路の設定、又は既存中継通信路の削除と代替の新規中継通信路設定の両方を、中継通信設定部621に指示する。すなわち、通信状況監視部622は、上記評価結果に基づいて、先述した削除指示、新規設定指示、両方指示を、中継通信設定部621に対して送信し、送信する各指示を中継通信設定部621に取得させる。通信状況監視部622は、これにより、それぞれ、その指示に対応する上記の処理を中継通信設定部621に行わせる。なお、このような、通信状況監視部622による各指示については、後で、より詳しく説明される。
中継通信路情報記憶部623は、センターサーバ3から中継通信設定部621が取得した中継サーバ情報と、中継通信設定部621が設定した、中継サーバを介した複数の中継通信路のそれぞれの中継通信路情報を各々記憶し、管理する。ここで、後者の情報すなわち中継通信路情報は、中継通信路を一意に識別するためのIDと、その中継通信路の中継をする中継サーバのアドレス情報(IPアドレス、ポート番号)を含む情報である。
データ送信部624は、上位アプリケーション機能部61からの送信データを、所定のサイズのパケットに分割し、中継通信設定部621が設定した複数の中継通信路を用いて前記パケットを送信する。より具体的には、データ送信部624は、例えば、各パケットを、k個の中継通信路にそれぞれ対応する複数のパケット群へと振り分け、各パケット群のパケットを、それぞれ、そのパケットが振り分けられたパケット群に対応する中継通信路によって送信する。これにより、データ送信部624は、各パケット群のパケットを、それら複数の中継通信路を介して、例えば並列に送信する。これにより、データ送信部624は、送信データの各パケットを、例えば、1つの中継通信路のみで通信をする場合と比べて、例えば約k倍など(kは、中継通信路の個数)、比較的高速に通信する。
なお、請求の範囲の記載における「分割データ」は、この実施の形態において、例えば「パケット」である。
なお、このとき、データ送信部624は、相手先通信端末6bが、それら複数の中継通信路から受信したパケットを正しい順番で処理し、元のデータを復元できるようにするために、必要に応じて、各パケットに、それぞれ、順序を示す番号たる順序番号を設定する。
データ受信部625は、複数の中継通信路を介して受信した前記各パケットを、それぞれ、そのパケットに含まれる順序番号等を利用して組み立て、送信元の上位アプリケーション機能部が送信した送信データを再現し、自身の上位アプリケーション機能部に引き渡す。
以上のように構成された通信端末について、以下、図3から図6を用いてその動作をより詳しく説明する。
(接続シーケンス)
図3は、通信端末間の接続シーケンスの一例を示す図である。
S31で、まず、発呼側通信端末6aは、センターサーバ3から最新の中継サーバ情報を中継通信設定部621により取得する。
なお、ここで、通信端末6a、6bは、その通信端末の起動直後に、センターサーバ3との間に予め通信路を接続し、センターサーバ3からの中継サーバ情報を常に受信可能となっている。なお、ここで、前述したように、ローカルネットワークに接続された通信端末6a、6bから、インターネット1に接続されたセンターサーバ3に通信路を接続すれば、ルータの動的NAT設定により、特別な設定は必要なく、通信路をその通信端末は設定することが可能である。
なお、このS31のとき、センターサーバ3は、各中継サーバ4a〜4Nの現状の負荷状況を考慮して、通信端末6aに引き渡す中継サーバ情報を選択することで、各中継サーバの負荷の平滑化を図ることが可能になる。
S32では、発呼側通信端末6aの中継クライアント部62が、センターサーバ3から取得した中継サーバ情報を用いて、中継通信に用いる中継サーバ(選択中継サーバ)を選択し、中継依頼を、選択した各選択中継サーバ(中継サーバ4a〜4c:選択中継サーバ)にそれぞれ送信する。ここで、中継サーバのアドレス情報は、中継サーバ情報から入手する。なお、中継サーバ情報は、その中継サーバ情報が特定する各中継サーバのアドレス情報を含む。
そして、このS32のとき、中継依頼を受信した各選択中継サーバ(中継サーバ4a〜4c)は、それぞれ、中継通信のための設定を、その選択中継サーバに行い、その選択中継サーバを介した中継通信路を一意に識別するためのIDと、その中継通信に利用する選択中継サーバのアドレス情報(IPアドレス、ポート番号)を含む中継通信路情報を応答する。
なお、中継サーバ4a〜中継サーバ4Nうちの少なくとも1つは、より詳細には、制御装置と、データ通信装置との2つの装置を備えてもよい。そして、データ通信装置は、その中継サーバの中継通信路を介して通信されるデータ(ユーザデータ)の通信を中継してもよい。他方、制御装置は、データ通信装置によるユーザデータの通信を制御してもよい。そして、中継サーバ情報(先述)に含まれるアドレス情報は、上記制御装置のアドレスを特定してもよい。そして、S32で、中継クライアント部62は、選択中継サーバの制御装置に中継依頼(上述)を受信させてもよい。そして、S32のときに、制御装置は、中継依頼を受信すると、その制御装置と共に中継サーバを構成するデータ通信装置を特定するアドレス情報を含んだ中継通信路情報を、通信端末6aに対して応答してもよい。なお、中継通信路情報は、データ通信装置のアドレス情報と共に、そのデータ通信装置と共に中継サーバを構成する制御装置のアドレス情報を含んでもよい。
そして、このS32のときに、複数の選択中継サーバからそれぞれ中継通信路情報(上述)を受信した中継クライアント部62は、受信した各中継通信路情報をそれぞれ中継通信路情報記憶部623に記憶し、応答された各中継通信路情報のアドレス情報により、それぞれ、例えば、そのアドレス情報の示すデータ通信装置(先述)にアクセスするなどして、中継通信路(中継通信路の発呼側部分通信路(先述))を接続する。なお、本通信路接続は、ローカルネットワーク2aに接続された通信端末6aから中継サーバへの接続となるため、ルータの動的NAT設定により、特別な設定は必要なく通信路を通信端末6aは設定することが可能である。
S33で、次に、中継クライアント部62は、センターサーバ3に対して、相手先通信端末(着呼側通信端末6b)にセンターサーバ3が接続要求送信を行うように依頼する。本接続要求送信による接続要求には、先にS32で発呼側通信端末6aが設定した複数の中継通信路の中継通信路情報をそれぞれ含む。本接続要求は、例えば、各選択中継サーバのアドレス情報と、そのアドレス情報による中継通信路のIDとを含む。より具体的には、例えば、本接続要求は、各選択中継サーバのデータ通信装置のアドレス情報と、制御装置のアドレス情報とを含んでもよい。ただし、本接続要求は、データ通信装置のアドレス情報を含まなくてもよい。
S34では、センターサーバ3から接続要求を受信した着呼側の着呼側通信端末6bは、受信された接続要求から中継通信路情報を取り出し、発呼側通信端末6aが中継通信路(中継通信路の発呼側部分通信路)を接続している各選択中継サーバ(中継サーバ4a〜4c、各中継サーバの制御装置)に、それぞれ、中継通信路を一意に識別するためのIDを含む中継依頼メッセージを送信する。ここで、送信されるIDは、取り出された中継通信路情報に含まれるIDである。このIDは、そのIDの中継通信路を中継する中継サーバが中継する各中継通信路のうちから、そのIDの中継通信路を一意に識別する。
要求を受信した各中継サーバ(中継サーバの制御装置)は、それぞれ、先にS34で送信された中継依頼メッセージに含まれたIDにより、中継通信路を識別し、中継通信に利用する中継サーバ(中継サーバのデータ通信装置)のアドレス情報(IPアドレス、ポート番号)を、着呼側通信端末6bに応答する。
そして、S34では、次に、各選択中継サーバからの応答を各々受信した着呼側の着呼側通信端末6bの中継クライアント部62は、受信した各応答に含まれる中継通信路情報をそれぞれ記憶し、応答された各中継通信路情報のアドレス情報により示される中継サーバ(中継サーバのデータ通信装置)に、着呼側部分通信路(先述)を接続する。
そして、S34で、着呼側通信端末6bは、全ての中継サーバとの通信路(着呼側部分通信路)の接続が完了後、接続応答メッセージをセンターサーバ3を通じて、発呼側通信端末6aに送信する。
ここで、発呼側通信端末6aの発呼側部分通信路と同様に、着呼側通信端末6bの着呼側部分通信路は、ルータ5bの動的NAT設定により、特別な設定を必要なく、着呼側通信端末6bが各選択中継サーバに対して接続することができる。
(パケットロス時の再送シーケンス)
図4は、パケットロスが発生した場合の再送シーケンスの一例を示している。
S41において、発呼側通信端末6aの中継クライアント部62は、上位アプリケーション機能部61から送信を依頼された送信データを分割したパケットデータを、複数の中継通信路を用いて送信する。図4の例では、送信に用いられる中継通信路は、中継サーバaの中継通信路と、中継サーバbの中継通信路と、中継サーバcの中継通信路とである。
そして、このS41の処理に応じて、パケットデータを受信した通信相手の通信端末(着呼側通信端末6b)の中継クライアント部62は、データを受信した中継通信路(例えば、中継サーバaの中継通信路)を用いて、受信確認メッセージをデータ送信元の通信端末(発呼側通信端末6a)に送信する。図4では、中継サーバaの中継通信路による受信確認メッセージの送信が図示される。
S42では、データ送信元(発呼側通信端末6a)の中継クライアント部62は、通信状況監視部622によって、S41でのパケット送信から、S41でのパケット送信に応じた受信確認メッセージが応答されてくるまでの時間を計測し、各中継通信路の伝送遅延の情報を取得する。
また、このS42で、中継クライアント部62は、パケット送信から所定の時間(所定時間T1:図4)経過しても、そのパケットの送信に応じた受信確認メッセージを受信しないことで、パケットロスPL(図4参照)を検出する。図4では、パケットロスPLの一例として、中継サーバbの中継通信路でのパケット送信におけるパケットロスが図示される。
S42aでは、S42でパケットロスを検出した、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、パケットロス率が低く、伝送遅延の小さい中継通信路を選択する。
なお、中継クライアント部62は、より具体的には、例えば、発呼側通信端末6aが設定した各中継通信路(例えば、中継サーバaの中継通信路、中継サーバbの中継通信路、中継サーバcの中継通信路)のうちで、パケットロスが発生した中継通信路(中継サーバbの中継通信路)を除いた他の各中継通信路(中継サーバaの中継通信路、中継サーバcの中継通信路)のうちから、中継通信路を選択する。そして、例えば、中継クライアント部62は、それら他の各中継通信路のうちで、パケットロス率が最も低い中継通信路(中継サーバaの中継通信路)を選択する。
また、例えば、発呼側通信端末6aは、品質が、予め定められた閾値よりも高い中継通信路を選択する。ここで、上記品質は、具体的には、例えば、上記パケットロス率であってもよいし、また、伝送遅延であってもよい。パケットトス率は値が小さいほど品質が高い。伝送遅延は遅延時間が短いほど品質が高い。また、ここで、上記閾値は、例えば、上記他の各中継通信路のうちの予め定められた中継通信路の品質であってもよい。そして、例えば、予め定められた中継通信路は、上記他の各中継通信路のうちで、品質が、最も高い値の次に高い値、すなわち2番目に高い値である中継通信路である。この場合、中継クライアント部62は、上記他の各中継通信路のうちで、上記品質が最も高い値の中継通信路を選択する。
そして、S43で、発呼側通信端末6aの中継クライアント部62は、ロスしたパケットを再度送信する。
ここで、パケットロスが少ない中継通信路を中継クライアント部62がS42で選択することで、再度パケットがロスする確率を小さくすることができる。また、伝送遅延が小さい中継通信路を選択することで、ロスしたパケットを早く相手先に送信することが可能となり、再送に要する時間を短くすることが可能となる。
なお、S41で、発呼側通信端末6aによって送信がされた後に、この送信の結果のパケットロスに応じて、S43で、S42aで選択された中継サーバによる送信がされる。このようにして、送信が行われる中継サーバが、1回目の送信の中継サーバ(中継サーバb)から、2回目の送信の中継サーバ(中継サーバa)に変更される。図4において、破線の矢印線は、単なる、この中継サーバの変更を示すだけの図示物であり、システムXにおけるデータの流れなどを示す図示物ではない。
(中継通信路の入替シーケンス)
図5は、中継通信路の入替シーケンスの一例である。
中継サーバを介した複数の中継通信路を用いてデータを送信する処理(S51)は、S41(図4)の処理と同一であるので詳しい説明は省略する。ここでの相違点は、図5の例では、パケットロスは発生せず、パケットロスが発生しない代わりに、中継サーバbを介した中継通信路での伝送遅延が、他の各中継通信路での伝送遅延に比べて非常に大きくなっている点である。なお、ここで、非常に大きい伝送遅延というのは、通常の伝送遅延と比べて非常に大きい伝送遅延の意味と、通常の伝送遅延よりも小さい伝送遅延と比べれば非常に大きい伝送遅延の意味との両方の意味が含まれる。
パケット送信元(発呼側通信端末6a)の中継クライアント部62は、各中継通信路の伝送遅延の情報を常に取得して、評価しており、前記中継サーバbを介した中継通信路の伝送遅延の平均や揺らぎ等の統計情報や、最大伝送遅延等の値(評価対象の値)が、所定の基準を満たさないことを検出する。
S52においては、この検出の結果、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、前記中継サーバbを介した中継通信路を不適と判定する。なお、この説明において、中継サーバbは、中継クライアント部62が不適と判定した中継サーバの一例である。
次に、S53においては、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、以下の、中継通信路の入替処理を実行する。すなわち、発呼側通信端末6aの中継クライアント部62は、予めセンターサーバ3から取得済みの中継サーバ情報を用いて、新規の中継サーバ(中継サーバd)を選出する。そして、中継クライアント部62は、選出した新規中継サーバに対して、中継依頼メッセージを送信する。
なお、S52において、中継クライアント部62は、例えば、中継通信路の不適の判定をした場合に、中継サーバを特定する中継サーバ情報をセンターサーバ3から取得してもよい。そして、S53では、中継クライアント部62は、S52で取得された中継サーバ情報により特定される中継サーバを選出してもよい。また、図3のS31で取得される中継サーバ情報は、図5のS53で選出すべき新規の中継サーバを特定する新規中継サーバ情報を含んでもよい。そして、図5のS53では、中継クライアント部62は、S31で取得された中継サーバ情報に含まれる新規中継サーバ情報により特定される中継サーバを選出してもよい。
なお、図5の例では、S52で取得されるなどした中継サーバ情報が、新規の中継サーバのアドレス情報として、中継サーバdのアドレス情報を含み、S53では、中継サーバdが選出される。このため、図5の例では、S53で、中継サーバdに中継依頼メッセージが送信されて、利用される中継サーバが、中継サーバbから中継サーバdに入れ替えられる。図5では、この入れ替えが、破線の矢印線によって図示される。なお、図5の破線の矢印線は、単なるこの入れ替えを示すだけの図示物であり、システムXにおけるデータの流れなどを示す図示物ではない。
そして、S53のときに、中継依頼メッセージを受信した中継サーバd(新規の中継サーバ)は、中継サーバdの中継通信路情報を含む応答メッセージを、発呼側通信端末6aの中継クライアント部62に送信する。
そして、このS53では、中継サーバdから中継通信路情報を受信した中継クライアント部62は、受信した中継通信路情報を、例えば中継通信路情報記憶部623などにより記憶し、応答された中継通信路情報のアドレスに中継通信路を接続する。
そして、S53では、先にS52で不適と判断した中継通信路(中継サーバbの中継通信路)の中継通信路情報と、新規に接続した中継通信路(中継サーバdの中継通信路)の中継通信路情報を含む中継サーバ入替要求メッセージを、不適と判断した中継通信路以外の他の中継通信路(例えば中継サーバaの中継通信路)を通じて、相手先通信端末6bに、中継クライアント部62が送信する。すなわち、S53で、発呼側通信端末6aの中継クライアント部62は、設定した各中継通信路(例えば、中継サーバaの中継通信路、中継サーバbの中継通信路、中継サーバcの中継通信路)のうちで、不適と判定された中継通信路(中継サーバbの中継通信路)以外の他の各通信路(中継サーバaの中継通信路、中継サーバcの中継通信路)のうちの1つの中継通信路(中継サーバaの中継通信路)により、中継サーバ入替要求メッセージを着呼側通信端末6bに送信する。
そして、このS53のときに、中継サーバ入替要求メッセージを、上記1つの中継通信路(中継サーバaの中継通信路)を介して受信した通信端末6bの中継クライアント部62は、新規接続する中継通信路(中継サーバdの中継通信路)の中継通信路情報を用いて、中継サーバd(中継サーバdの制御装置)に中継依頼を送信する。そして、着呼側通信端末6bの中継クライアント部62は、中継サーバdから応答で受信する中継通信路情報を用いて、中継通信路(中継通信路のうちの着呼側部分通信路)を新規の中継サーバ(中継サーバd)と接続した後、中継サーバ入替応答メッセージを、送信元通信端末6aに送信する。このとき、着呼側通信端末6bの中継クライアント部62は、例えば図5に示されるよう、上記1つの中継通信路(中継サーバaの中継通信路)により、この中継サーバ入替応答メッセージを送信する。なお、例えば、この送信は、上記1つの中継通信路よりも品質が高い他の通信路により行われてもよい。
同時に、S53のときに、不適と判断された中継通信路を提供する中継サーバbに、中継解放メッセージを、着呼側通信端末6bは送信し、この中継通信路(中継通信路の着呼側部分通信路)を解放する。
また、S53で、中継サーバ入替応答メッセージを受信した通信端末6aの中継クライアント部62も同様に、不適と判定された中継サーバbに中継解放メッセージを送信し、中継通信路(中継通信路の発呼側部分通信路)を解放する。
(切断シーケンス)
図6は、切断シーケンスの一例である。
S61で、発呼側通信端末6aの中継クライアント部62は、上位アプリケーション機能部61から切断が指示されると、センターサーバ3を通じて切断要求メッセージを相手先通信端末6bに送信する。
S62で、切断要求メッセージを受信した着呼側通信端末6bの中継クライアント部62は、接続中の全ての中継通信路の中継サーバに対して、それぞれ、中継解放メッセージを送信し、各中継通信路を各々解放し、切断応答メッセージを送信元通信端末6aに送信する。
S63では、切断応答メッセージを受信した通信端末6aの中継クライアント部62は、同様に、発呼側通信端末6aが接続中の全ての中継通信路の中継サーバに対して、中継解放メッセージをそれぞれ送信し、各中継通信路を各々解放し、通信端末間の通信を終了する。
(通信端末に中継サーバ機能を持たせる構成)
ここまででは、図1のように、インターネット1に中継専用の中継サーバ4a〜4Nがある場合について説明したが、以下、図7、図8を用いて、通信端末に中継サーバ機能を持たせる構成について説明する。
図7は、中継サーバ機能を持たせた通信端末6Lの基本的な構成の一例を示している。
図7において、図2と同様の機能部については、同一の符号を記述し、説明を省略する。
通信端末6Lは、中継通信サーバ機能部(中継通信サーバ機能)64を備える。
中継通信サーバ機能部64は、図1における中継サーバ4a〜4Nと同等の機能を提供する機能部である。すなわち、図1〜図6の説明においては、中継サーバ4a〜4Nのうちの何れにも設けられた共通機能について説明された。中継通信サーバ機能部64は、その共通機能と同等の機能を有する。例えば、中継通信サーバ機能部64は、その共通機能と同一の機能を有する。中継サーバ4a〜4Nと、中継通信サーバ機能部64との相違点は、通信端末6Lは、中継サーバ4a〜4Nと違い、ルータ配下のローカルネットワークに接続される場合があるため、ルータのNAT機能を設定し、インターネットから通信端末6L(図7)に接続できるようにするための機能(NAT設定部641)を持つ点である。
中継通信サーバ機能部64は、以下の機能部で構成される。すなわち、中継通信サーバ機能部64は、NAT設定部641と、中継通信サーバ部642とを備える。
NAT設定部641は、ルータのNAT機能を設定し、インターネットから中継通信サーバ部642への接続(すなわち、通信端末6Lへの接続および中継通信サーバ機能部64への接続)をできるようにする。ここで、NAT設定部641は、ルータが提供するUPnP(Universal Plug and Play)のIGD(Internet Gateway Device)仕様やNAT設定用のCGI(Common Gateway Interface)等を用いて、特定のコマンドをルータに送信することで、NAT設定を行うことが可能である。
中継通信サーバ部642は、前述した中継サーバ4a〜4Nと同等の機能(例えば、同一の機能)を提供し、NAT設定部641によって設定されたNAT設定によって、通信端末6Lがルータ配下のローカルネットワークに接続されていても、インターネット側から中継通信サーバ部642へアクセスすることが可能となる。そして、中継通信サーバ部642は、インターネット側から中継通信サーバ部642にアクセスするためのアドレス情報(IPアドレス、ポート番号)を、センターサーバ3に、中継サーバ情報の一部として登録する。インターネット側からアクセスするアクセス装置は、登録されたアドレス情報が含まれる中継サーバ情報を取得して、取得された中継サーバ情報に含まれるアドレス情報によって、中継通信サーバ部642にアクセスする。
図8は、以上のように構成された通信端末6Lを用いたネットワーク構成の一例を示す。
システムXLは、センターサーバ3と、ローカルネットワーク2p〜ローカルネットワーク2tとを備える。これらセンターサーバ3等は、インターネット1を介して互いに接続される。
通信端末6p〜通信端末6tのうちの少なくとも1つは、先述した通信端末6L(図7)である。例えば、通信端末6Lは、図7の通信端末6pである。なお、通信端末6Lが通信端末6pである場合において、通信端末6L以外の他の通信端末のうちの少なくとも1つは、例えば中継通信サーバ機能部64を有さないなどして、通信端末6Lの機能とは少なくとも一部が異なる機能を有してもよい。
中継通信サーバ機能部64(図7)を持つ通信端末6Lは、ルータ配下のローカルネットワーク2p等に接続される場合と、インターネット1に直接接続される場合とがある。なお、上述された、通信端末6Lが通信端末6pである場合は、通信端末6Lが、ルータ5p配下のローカルネットワーク2pに接続される場合である。また、通信端末6Lが、通信端末6qである場合は、通信端末6Lがインターネット1に直接接続される場合である。
何れの場合においても、インターネット1から中継通信サーバ機能部64にアクセスが可能な場合、中継通信サーバ機能部64は、そのアドレス情報を用いることにより、通信端末6Lに対して、インターネット1を介したアクセスが可能なアドレス情報(IPアドレス、ポート番号)をセンターサーバ3に、中継サーバ情報の一部として登録する。
端末間で通信を行う通信端末(例えば通信端末6s)は、前記のようにセンターサーバ3から中継サーバ情報を取得する(図3のS31参照)。これにより、中継通信サーバ機能部64を持つ通信端末6L(通信端末6p)を、中継サーバ4a〜4N(図1等)を利用するのと同様に利用することが通信端末6s等は可能となる。
このように、中継通信サーバ機能部64を持つ通信端末6Lで、中継専用の中継サーバ4a〜4N(図1)がなくとも、中継通信が可能となり、かつ、システムXLに通信端末6Lが増えると、中継通信サーバ機能部64を持つ通信端末6Lも増えることが期待できるため、システムコスト削減や、システムのスケラビリティの向上が実現できる。
なお、本実施の形態では、接続シーケンスの図(図3参照)において、最初に複数の中継通信路を接続するとしたが(図3のステップS31、ステップS32参照)、最初は1つの中継通信路を接続し、発呼側通信端末6aのデータ送信部624や、着呼側通信端末6bのデータ送信部の送信するデータパケットを、通信状況監視部622が監視し、データ量、データ送信帯域に応じて、中継通信路を随時追加、削除するようにしてもよい。
また、最初に複数の中継通信路を接続しておき、データ送信部624の送信するデータパケットを通信状況監視部622が監視し、データ量、データ送信帯域に応じて、中継通信路の削除、追加をするようにしてもよい。
このように、データ送信部624の送信するデータパケットのデータ量、データ送信帯域に応じて、中継通信路の追加、削除を行うことで、不必要な中継サーバを解放することができ、効率的に中継サーバを使用することが可能となる。
なお、本実施の形態では、中継通信路の伝送遅延の平均や揺らぎ等の統計情報や、最大伝送遅延等の値が、所定の基準を満たさないことを検出した場合に、該当する中継通信路を不適と判定するとしたが、中継クライアント部62は、パケットロス率が所定の基準を満たさない場合、該当する中継通信路を不適と判断してもよい。
このように判定することで、パケットロス率の高い中継通信路を排除することが可能となり、通信端末間の通信が安定する。
さらに、本実施の形態では、上位アプリケーション機能部61からのデータ送受信時に中継通信路の通信状況を監視し評価して、中継通信路の不適を判定するとしたが、中継通信路接続後、上位アプリケーション機能部61からのデータ送受信前に、テストデータの送受信を実行し、中継通信路が不適でないことを確認するようにしてもよい。この場合、不適であると判定された場合には、別の中継通信路を設定し、再度テストデータにより確認を実施する。
このようにテストデータによる確認を実施することで、不適な中継通信路を上位アプリケーション機能部61からのデータ送受信前に取り除くことが可能となるため、通信端末間の通信が安定する。
なお、本実施の形態では、データ送信部624は、上位アプリケーション機能部61からの送信データを所定のサイズのパケットに分割し、中継通信路を用いて送信するとしたが、データ送信部624は、所定の数nに対するn個の前記分割したパケットを用いて、演算により冗長パケットを作成し、作成した冗長パケットを含めて、送信処理を実行してもよい。
このように、冗長パケットを送信することにより、ある中継通信路でパケットロスが発生しても、データ受信部625で冗長パケットを用いて、ロスしたパケットを再現できるため、再送回数を減らすことが可能となる。
さらに、データ送信部624は、上位アプリケーション機能部61からの送信データを暗号化して送信し、通信相手のデータ受信部625が暗号を解読し、元のデータに戻すようにしてもよい。このようにすることで、通信端末6Lの中継通信サーバ機能部64を用いて中継通信を行った場合等のセキュリティの向上を要する各種の場合において、セキュリティを向上させることが可能となる。
また、センターサーバ3は、中継サーバ情報の一部として、中継サーバのカテゴリを示す情報を管理し、通信端末6は中継サーバを選択するときに本中継サーバのカテゴリを参照し、所定のカテゴリの中継サーバを所定台数以上選択するように制御するようにしてもよい。例えば、中継サーバのカテゴリとしては、中継専用の中継サーバと、通信端末6Lが提供する中継通信サーバ機能とを区別可能とすることが考えられる。通信端末6は、信頼できる中継専用の中継サーバを所定台数(例えば、1台)以上選択することにより、悪意を持った中継通信サーバ機能部64に、送信データを全て盗まれる等の攻撃を回避することが可能となる。また、カテゴリは、互いに異なるカテゴリに属する中継サーバは、予め定められた品質が互いに異なるカテゴリであってもよい。例えば、具体的には、カテゴリは、互いに異なるカテゴリに属する中継サーバは、その中継サーバによる中継通信路の安全性が互いに異なるカテゴリであってもよい。また、具体的には、カテゴリは、互いに異なるカテゴリに属する中継サーバは、その中継サーバによる中継通信路のセキュリティが互いに異なるカテゴリであってもよい。
本発明によれば、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する機器に大きな処理負荷をかけることなく、かつ、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式が実現できる。
すなわち、ネットワーク上の中継機能部(中継サーバ4a〜中継サーバ4N、中継通信サーバ機能部64)を介して通信端末間で通信を行う通信端末(通信端末6)において、中継通信設定部(中継通信設定部621)は、ネットワーク上で複数の中継機能部を選択し、前記中継機能部を介した相手先通信端末へ通信路(中継通信路)を、選択した前記中継機能部それぞれについて設定し、通信状況監視部(通信状況監視部622)は、前記中継機能部を介した相手先通信端末との通信路(中継通信路)の通信状況を評価し、評価結果に基づき、前記通信路の削除、又は、新規中継機能部を介した相手先通信端末への通信路(新規中継通信路)の設定、又は、その両方を中継通信設定部に指示し、前記通信状況監視部より指示を受けた中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信する。
これにより、NAT配下のローカルネットワークに接続された通信端末間の通信を可能とする狙いが達成される。
また、こうして、ネットワーク上の中継装置(中継サーバ4a等、通信端末6L)を介して相手先通信端末装置(着呼側通信端末6b)と通信を行う通信端末装置(発呼側通信端末6a、通信端末6、通信端末6L)であって、通信に利用するネットワーク上の複数の中継装置を選択し、前記選択した複数の中継装置(選択中継サーバ)を介した相手先通信端末装置との間の中継用通信路をそれぞれ設定する中継通信設定部(中継通信設定部621)と、前記選択された中継装置を介した通信路毎に、相手先通信端末装置との通信状況を監視する通信状況監視部(通信状況監視部622)と、前記相手先通信端末装置から前記選択された中継装置を介して分割された受信データを受信して、前記分割された受信データを統合して受信データを組み立てるデータ受信部(データ受信部625)と、前記相手先通信端末装置への送信データを分割して、分割された送信データを前記選択された複数の中継装置それぞれを介して送信するデータ送信部(データ送信部624)とを備え、前記通信状況監視部は、前記中継用通信路の通信状況を評価し、評価結果に基づき、前記中継用通信路の削除、又は、中継用通信路の追加、又は、その両方を中継通信設定部に指示し、前記中継通信設定部は、中継用通信路を追加する場合、新規中継装置のアドレス情報を含む接続要求メッセージを前記相手先通信端末へ送信する通信端末が構成される。
なお、このようなシステムX、システムXLにおいては、発呼側通信端末6aから着呼側通信端末6bへの送信データも、着呼側通信端末6bから発呼側通信端末6aへの受信データも、両方とも、互いに異なる中継通信路を介して通信される複数の並列通信データ(パケット群)へと分割されて分割伝送(高速伝送)されてもよいし、送信データの分割伝送のみが行われてもよいし(受信データの分割伝送は必須ではない)、また、受信データの分割伝送のみが行われてもよい(送信データの分割伝送は必須ではない)。また、通信端末6により、通信状況監視部622によって通信品質を監視する監視装置が構成される。また、通信端末6により、中継通信設定部621によって中継装置を選択する選択装置が構成される。そして、この監視装置は、自分で中継装置を選択するが、自分では中継装置を選択しない監視装置が構成されてもよい。すなわち、例えば、上記の着呼側通信端末装置6b(又は着呼側通信端末装置6bに当たる装置)によって監視装置が構成されてもよい。すなわち、例えば、上記の着呼側通信端末装置6b(着呼側通信端末装置6bに当たる装置)であって、中継用通信路の品質を監視(評価)し、監視結果(評価結果)を通信相手(発呼側通信端末6a)に通知して、通信相手に中継用通信路の再設定を要求する装置が構成されてもよい。
また、こうして、通信相手先端末(着呼側通信端末6b)と、中継装置(中継サーバ4a等、通信端末6L)を介して当該相手先通信端末と通信を行う通信端末(発呼側通信端末6a、通信端末6、通信端末6L)とを含む通信システム(システムX、システムXL)が構成される。
なお、ここで、この通信システムにおいては、互いに通信を行う各通信端末(通信端末6a、通信端末6b、通信端末6pなど)が、NAT配下のローカルネットワークに接続された通信端末である。例えば、この通信システムは、具体的には、各通信端末が、互いにピアツーピア(Peer to Peer=P2P)接続される通信システムである。
そして、通信端末は、中継装置を介して相手先通信端末と通信を行う通信端末であって、通信データ(送信データ)が分割された複数の分割データ(パケット)を複数の中継装置を介して通信する通信部(通信部62p)と、前記複数の中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況(例えば伝送遅延)を監視し、監視する前記各通信状況を評価した評価結果に基づいて、前記複数の分割データの通信が介する前記複数の中継装置を、現在の複数の中継装置(例えば図5の中継サーバa、中継サーバb、中継サーバc)から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置(例えば図5の中継サーバa、中継サーバd、中継サーバc)に変更させる通信状況監視部(通信状況監視部622)とを備える。
これにより、通信データが、複数の中継サーバを介して、例えば並列に通信されるなどして、高速に通信される。
しかも、仮に、高速に通信がされるだけに止まるなら、通信データの通信の品質(評価)の安定性が、実用になる程度より悪くなってしまう。なぜならば、通信に用いられる中継装置が複数であり、例えばk倍(kは、利用される中継装置の台数:k≧2)だけ通信データの通信が中断し易くなってしまうなどして、品質(評価)の安定性が例えば2倍(k倍)低下してしまうためである。しかしながら、この通信システムにおいては、各中継通信路の通信状況(例えば伝送遅延)が監視されて、各通信状況の全体が評価された評価結果(例えば伝送遅延の平均値など)に基づいて、利用される各中継装置が、現在の複数の中継装置から、新しい複数の中継装置に変更される。これにより、通信データの通信の品質(評価)が安定するようにできる。
なお、通信部は、複数の分割データのうちの少なくとも一部(一部又は全部)の分割データを、2以上の中継装置をシーケンシャルに利用して、通信してもよい。また、通信部は、複数の分割データのうちの少なくとも一部(一部又は全部)を、その一部に含まれる分割データの個数と同じ個数の中継装置をパラレルに利用して、互いに異なる分割データは互いに異なる中継装置を介して通信してもよい。複数の中継装置は、それら複数の中継装置のうちの何れの中継装置も、それら複数の分割データのうちの少なくとも1つの分割データを中継する。
そして、この通信端末(通信端末6、発呼側通信端末6a)は、予め定められたN個の前記中継装置(N≧2)から複数の中継装置を選択し、前記選択した複数の中継装置(選択中継サーバ)を介した、当該通信端末と前記相手先通信端末との間の中継通信路をそれぞれ設定する中継通信設定部(中継通信設定部621)を備え、前記通信状況監視部は、前記各通信状況の評価結果に基づいて、前記現在の複数の中継装置の各中継通信路からの中継通信路の削除、又は、当該各中継通信路に対する中継通信路の追加、又は、前記削除および追加の両方を、前記中継通信設定部に指示し、前記中継通信設定部は、前記通信状況監視部により指示されると、当該指示により示される処理を行う。
ここで、中継通信路は、その中継通信路によりデータが中継される中継元から中継先までの間の通信路である。
なお、中継通信設定部は、より具体的には、例えば、中継通信路の設定や、削除などをするための公知のライブラリやパッケージなどの、公開等された汎用ソフトウェアによる機能を含み、この機能を用いて、上記の機能を果たすものであってもよい。
なお、中継通信設定部は、通信部62pの外部に設けられてもよいし、通信部62pの一部分であってもよい。
なお、例えば、通信状況監視部は、より具体的には、中継通信設定部に、上記追加をさせる第1制御、又は、上記削除をさせる第2制御、又は、上記両方をさせる第3制御を行ってもよい。すなわち、例えば、通信状況監視部は、具体的には、これら第1制御〜第3制御のうちから1つの制御を選択し、選択される制御を中継通信設定部に対して行ってもよい。
そして、この通信端末は、前記通信部は、前記通信データを前記複数の分割データへと分割して、分割された前記複数の分割データを、それぞれ、前記中継通信設定部によって選択された前記複数の中継装置(複数の選択中継サーバ)を介して送信するデータ送信部(データ送信部624)と、前記相手先通信端末によって通信データが分割された複数の分割データを、それぞれ、前記中継通信設定部によって選択された前記複数の中継装置を介して、前記相手先通信端末から受信して、受信された当該複数の分割データから、当該複数の分割データへと分割された前記通信データを組み立てるデータ受信部(データ受信部625)とを備え、前記中継通信設定部は、前記通信状況監視部が新規中継通信路の追加を当該中継通信設定部に指示する場合、追加する新規中継通信路の中継装置のアドレス情報を含む接続要求メッセージ(中継サーバ入替要求メッセージ:図5のステップS53)を前記相手先通信端末に送信する。
すなわち、データ送信部は、例えば、前記複数の中継装置のうちの何れの中継装置も、前記複数の分割データのうちの少なくとも1つの中継を行う通信により、それら複数の分割データを、それら複数の中継装置を介して送信先へ送信する。具体的には、データ送信部は、例えば、前記複数の分割データを、前記複数の分割データに含まれる分割データの個数と同じ個数の中継装置を介して、互いに異なる分割データは、互いに異なる中継装置を介して送信先へと送信する。
また、データ受信部は、前記複数の中継装置のうちの何れの中継装置も、前記複数の分割データのうちの少なくとも1つの中継を行う通信により、それら複数の分割データを、それら複数の中継装置を介して受信元から受信する。具体的には、データ受信部は、例えば、それら複数の分割データを、それら複数の分割データに含まれる分割データの個数と同じ個数の中継装置を介して、互いに異なる分割データは、互いに異なる中継装置を介して受信する。
そして、例えば、前記通信状況監視部は、前記相手先通信端末への前記複数の中継通信路の伝送遅延をそれぞれ監視し、伝送遅延が予め定められた許容条件(例えば、通信データが適切に通信されるための最小の条件)を満たさない中継通信路を検出して、当該検出がされた場合、検出がされた該当中継通信路の削除又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定又は、前記削除および前記新規中継通信路の設定の両方を、前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、前記相手先通信端末への前記複数の中継通信路でのパケットロスをそれぞれ監視し、パケットロスが予め定められた許容条件を満たさない中継通信路を検出して、当該検出がされた場合、検出がされた該当中継通信路の削除又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定又は、前記削除および前記新規中継通信路の設定の両方を、前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、前記通信データのトラヒック量に応じて、前記中継通信設定部が設定済みの前記中継通信路の削除、又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定を前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定が前記中継通信設定部によってされた場合に、設定された当該新規中継通信路を評価するための予め定められた評価用のデータ(テストデータ)を、当該新規中継通信路に送信することにより、前記新規中継通信路の通信状況を評価し、その評価の結果が予め定められた条件を満たす場合に、当該通信端末の上位アプリケーションからの通信データの送信に前記新規中継通信路を前記通信部に利用させる。
そして、前記通信状況監視部は、具体的には、前記中継装置を介して前記通信部が前記相手先通信端末に送信する前記複数の分割データのうちの一部の分割データが、前記相手先通信端末に受信されなかったこと(図4のパケットロスPL)を検出し、前記通信部は、前記通信状況監視部によって当該検出がされた場合に、当該検出がされた前記一部の分割データの前記送信に前記通信部が利用した中継装置(中継サーバb)とは異なる、他の中継装置(中継サーバa)を介する中継通信路を用いて、当該一部の分割データを再度前記相手先通信端末に送信する(図4のステップS43)。
そして、前記通信部は、前記再度の送信をするに際して、前記相手先通信端末への当該中継装置を介した通信での伝送遅延が、他の予め定められた前記中継装置(例えば中継サーバc)よりも小さい中継装置(中継サーバa)を選択し、選択される当該中継装置による中継通信路により前記再度の送信を行う。
そして、前記通信部は、当該通信端末の上位アプリケーション(上位アプリケーション機能部61等)の複数の通信データについて、それぞれ、その通信データと、当該通信データが分割された複数の分割データが通信される複数の中継通信路との対応関係を記憶し、上位アプリケーションから通信完了が当該通信部に通知された場合、又は、前記相手先通信端末から通信終了が当該通信部に通知された場合、通知がされた通信データに前記対応関係が対応付ける前記複数の中継通信路を全て解放する(図6参照)。
そして、前記中継通信設定部は、N個の前記中継装置のカテゴリをそれぞれ示すカテゴリ情報を記憶し、前記N個の中継装置のうちから、記憶される前記カテゴリ情報により、予め規定されたカテゴリ(例えば、中継通信路のセキュリティが高いカテゴリ)が示される中継装置が少なくとも1つ含まれる複数の中継装置を選択し、前記通信部は、前記カテゴリ情報により前記予め規定されたカテゴリが示されない前記中継装置(中継通信路のセキュリティが低い中継サーバ)を介して通信する分割データを暗号化して、暗号化された当該分割データを当該中継装置を介して送信し、暗号化された前記分割データを解読するために必要となる情報を、前記カテゴリ情報によって前記予め規定されたカテゴリが示される前記中継装置(中継通信路のセキュリティが高いカテゴリ中継サーバ)を介して送信する。
そして、前記通信部は、前記中継装置を介して送信する分割データを用いて、当該分割データの一部と当該冗長データとから、又は、当該冗長データのみから当該分割データが再現される冗長データを作成して、作成された前記冗長データを、当該分割データを送信した前記中継通信路と異なる他の前記中継通信路を介して前記相手先通信端末に送信する。
なお、冗長データは、例えば、RAID(Redundant Arrays of Inexpensive Disks)の冗長データによって、滅失したデータが再現されるのと同様に、その冗長データにより、その冗長データの基となった分割データが再現されるデータである。ここで、滅失とは、全部の滅失と、一部の滅失との両者が含まれる。なお、冗長データは、分割データの少なくとも一部(すなわち、一部又は全部)がなくとも、その冗長データからその分割データが再現されるデータである。
そして、前記中継通信設定部は、前記通信状況監視部が新規中継通信路の追加を当該中継通信設定部に指示する場合(例えば、中継サーバdの中継通信路が追加される図5の場合)、当該新規中継通信路の中継装置(中継サーバd)以外の他の中継装置のうちで、中継通信路を設定済みの中継装置(中継サーバa)を介して、前記接続要求メッセージを前記相手先通信端末に送信する。
そして、通信端末6Lは、当該通信端末が含まれるローカルネットワーク(例えば、ローカルネットワーク2p)のルータ(ルータ5p)に対して、NAT(Network Address Translation)設定を実行するNAT設定部(NAT設定部641)と、2台以上の他の通信端末(例えば通信端末6s、通信端末6t)から接続され、当該各他の通信端末の間における分割データの通信を中継する中継通信サーバ部(中継通信サーバ機能部64)とを備える。
なお、ここで、例えば、この通信システムは、次の態様を有する。すなわち、この通信システムは、着呼側通信端末6bの通信データの通信の相手先である相手先通信端末(発呼側通信端末6a)は、予め定められたN個の前記中継装置(N≧2)から複数の中継装置を選択し、前記選択した複数の中継装置を介した、当該通信端末と前記相手先通信端末との間の中継通信路をそれぞれ設定する中継通信設定部(発呼側通信端末6aの中継通信設定部621)を備え、着呼側通信端末6bの通信状況監視部622は、それらの複数の中継装置に含まれる各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果を算出して、算出された評価結果に基づいて、現在利用中の複数の中継通信路からの中継通信路の削除、又は、当該複数の中継通信路に対する中継通信路の追加、又は、前記削除および追加の両方を発呼側通信端末6aの中継通信設定部621に対して指示し、発呼側通信端末6aの中継通信設定部621は、着呼側通信端末6bの通信状況監視部622により指示されると、当該指示により示される処理を行う。
なお、上記の説明により、中継装置を介して相手先通信端末と通信を行う通信方法であって、通信データが分割された複数の分割データを、複数の中継装置を介して通信する通信ステップと、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、前記複数の分割データの通信が介する前記複数の中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視ステップとを備える通信方法が示される。また、上記の説明により、上記の通信ステップ等の各ステップをコンピュータ(通信端末)に実行させるためのコンピュータプログラムが示される。また、上記の説明により、上記の通信ステップ等の各ステップを実行する機能をそれぞれコンピュータ(通信端末)に実現させるためのコンピュータプログラムが示される。
ここで、「発明が解決しようとする課題」に記載された問題を解決し、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えるためには、通信端末が接続する中継機能を複数にし、各中継機能にかける中継負荷を分散させる方法が考えられる。しかし、通信端末が接続する中継機能を複数にすると、利用する中継機能毎に相手通信端末までの通信経路が異なることになり、通信遅延の揺らぎが大きくなる問題が発生する。さらに、通信中に利用している中継機能やその通信路に障害が発生して、通信端末間の通信が失敗する確率が高くなるという問題が発生する。
このため、これらの問題を解決するために、本実施の形態の通信端末(通信端末6、通信端末6L)は、上記の構成がとられる。
本実施の形態の通信端末は、ネットワーク上の中継機能部(中継サーバ4a〜4N等)を介して通信端末間で通信を行う通信端末であって、ネットワークからのデータを受信するデータ受信部(データ受信部625)と、通信に利用するネットワーク上の中継機能部(中継サーバ等)を選択し、中継用通信路を設定する中継通信設定部(中継通信設定部621)と、各中継機能部を通じた通信路毎に、相手先通信端末との通信状況を監視する通信状況監視部(通信状況監視部622)と、ネットワークに対してデータを送信するデータ送信部(データ送信部624)とを備え、中継通信設定部は、ネットワーク上で複数の中継機能部を選択し、前記中継機能部を介した相手先通信端末へ通信路を、選択した前記中継機能部それぞれについて設定し、データ送信部は、上位アプリケーション(上位アプリケーション機能部61)からの送信データを、中継通信設定部が設定した複数の通信路(中継通信路)を用いて送信し、データ受信部は、複数の通信路を介して受信したデータを組み立て、送信元の上位アプリケーションからの送信データを再現し、通信状況監視部は、前記中継機能部を介した相手先通信端末との通信路の通信状況を評価し、評価結果に基づき、前記通信路の削除、又は、新規中継機能部を介した相手先通信端末への通信路の設定、又は、その両方を中継通信設定部に指示し、前記通信状況監視部より指示を受けた中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路(中継通信路)の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信することを特徴とする。
この中継通信設定部が複数の中継通信路を設定し、データ送信部が複数の通信路を用いて、データを送信することにより、一本の中継通信路を流れるトラヒックを小さくすることが可能となり、中継機能で中継される通信帯域を狭く抑えることができる。
加えて、前記通信状況監視部が前記中継機能部を介した相手先通信端末との通信路の通信状況を評価し、評価結果に基づき、前記通信路の削除、新規中継機能部の追加を実行することにより、伝送遅延が大きい中継通信路やパケット廃棄率の高い中継通信路を削除し、代わりの中継通信路を設定する等の処理が可能となり、通信端末間の通信が安定する。
そして、中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信する。これにより、相手先通信端末は、ローカルネットワークからインターネットに向けて中継用通信路を接続することができる。そのため、ルータに対して動的NAT設定により、ユーザによる特別な設定が必要なく中継通信路を接続することが可能となる。
図9は、通信端末6(通信端末6a、通信端末6sなど)を示す図である。
すなわち、本通信端末(通信端末6a、6s、6Lなど)は、グローバルネットワーク(例えば、インターネット1)のアドレスが割り当てられた中継装置(図1の中継サーバ4a〜4N、図8の通信端末6p、通信端末6qなど)を介して、相手先通信端末(通信端末6b、通信端末6tなど)と通信を行う、ローカルネットワーク(ローカルネットワーク2a、2s)に接続された通信端末であって、複数の前記中継装置のアドレス宛にパケットを送信することにより、それぞれの前記中継装置が、前記通信端末(通信端末6a等)へパケットを送信する際に、その中継装置が前記通信端末から受信した前記パケットの送信元アドレス宛に、その中継装置が送信を行う通信路を設定する中継通信設定部(中継通信設定部621)と、通信データが分割された複数の分割データを、複数の前記中継装置を介して通信する通信部(通信処理部624aが有するデータ送信部624及び受信部625のうちの一方、通信処理部624a、又は、通信処理部624aが含まれる全体(通信部62p等))と、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、複数の前記分割データの通信が介する複数の前記中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視部(通信状況監視部622)とを備える通信端末である。
なお、通信処理部624aは、先述のデータ送信部624およびデータ受信部625を含んだ全体によってなる機能ブロックを示す。なお、図2および図7では、通信処理部624aの図示は省略される。
すなわち、本通信端末は、ローカルネットワーク(ローカルネットワーク2a、2s)に接続される。つまり、具体的には、例えば、本通信端末(通信端末6a、6s、6Lなど)および相手先通信端末(通信端末6b、6など)のそれぞれは、互いにP2P接続される複数のコンピュータ(図1の通信端末6a〜6b、中継サーバ4a〜4Nなど、図8の通信端末6p〜6t)のうちの1つである。
このため、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信する際には、動的NAT(Network Address Translation)設定が必要である。動的NAT設定では、本通信端末により、サーバ等にパケットが送信され、送信されたパケットがNAT機能により検出されて、検出したNAT機能が、アドレスの変換ルールを当該NAT機能に設定する。設定される変換ルールは、ローカルネットワークのプライベートアドレスと、グローバルネットワークのグローバルアドレスとの間の変換の変換ルールであり、つまり、本通信端末のプライベートアドレス、および、グローバルアドレスの間の変換ルールである。この変換ルールが設定されることにより、本通信端末とサーバとの間の通信路が設定される。つまり、動的NAT設定により、前記の変換ルールがNAT機能に自動設定されることにより、本通信端末とサーバ等との通信が可能となる。つまり、NAT機能による変換ルールの設定がされた後には、グローバルネットワークの前記サーバ等は、本通信端末から受信した前記パケットの送信元アドレス(送信元IPアドレス、ポート番号)宛にパケットを送信することで、前記サーバ等からローカルネットワークに接続された通信端末への通信が可能となる。
このような、NAT機能は、例えば、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)に実装される。また、ルータには、先に述べたNAT機能とは別に、ファイアウォール機能が実装される場合がある。
ここで、ファイアウォール機能とは、ルータを流れるパケットを監視し、許可されていないパケットを廃棄する機能である。ファイアウォール機能は、グローバルネットワーク(インターネット1)からローカルネットワーク(ローカルネットワーク2a、2s)への不正な侵入を防ぐ機能を提供する。
このファイアウォール機能においても、ローカルネットワークに接続された通信端末(通信端末6a、6sなど)が、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)宛にパケットを送信した場合等には、ルータのNAT機能と同様に、自動的にファイアウォール通過の許可条件が、そのファイアウォール機能に設定されることが知られている。このため、ローカルネットワークの通信端末(通信端末6a、6s)からグローバルネットワークのサーバ等(例えば中継装置)宛に通信を開始した場合、この設定がされて、サーバ等は、前記サーバが受信したパケットの受信元アドレス宛にパケットを送信することで、ファイアウォールを越えて、互いに通信することが可能となる。
そこで、中継通信設定部は、パケットを中継装置に送信して、送信されたパケットを、予め定められた通信制御部(NAT機能およびファイアウォール機能の一方又は両方)に検出させることにより、検出した通信制御部に通信路を設定させて、当該通信端末と、その中継装置との間の通信路を設定する。
なお、前記の例では、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)にNAT機能が実装されており、動的NAT設定により、アドレス変換が実行されることによって、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信可能となるネットワーク構成を例に説明した。しかし、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)に、NAT機能が実装されておらず、ファイアウォール機能のみが実装されているネットワーク構成も考えられる。この場合、ローカルネットワークに接続された通信端末(通信端末6a、6sなど)が、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)宛にパケットを送信を行うことにより、自動的にファイアウォール通過の許可条件が、そのファイアウォール機能に設定され、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信可能となる。
なお、ここで、通信路を設定するとは、換言すれば、例えば、通信路を成立させることである。
なお、中継通信設定部は、例えば、具体的には、非特許文献1に挙げられた、TURN(Traversal Using Relay NAT)における、通信路の設定の処理と同様の処理により、中継装置との間の通信路を設定してもよい。
そして、本通信端末においては、中継通信設定部により、複数の中継装置(中継サーバ4a〜4N、通信端末6L(通信端末6p、通信端末6q)のうちの2つ以上)のそれぞれと、本通信端末との間の通信路(発呼側部分通信路)が設定されることにより、それぞれの中継装置を介した、本通信端末と、相手先通信端末(通信端末6b、通信端末6p〜6r、通信端末6t)との間の通信路(中継通信路)が設定される。
そして、通信部により、通信データが分割された複数の分割データが、設定されたそれぞれの通信路により通信されることにより、通信データが通信される。
そして、ここで、ルータ等による通信の中継(中継路の切換を含む)では、通常、予め通信路(ルーティングテーブル)が決められている運営になる。このため、特定の通信端末の通信開始・終了に1対1に対応させて、動的に、利用する通信路を選択、決定して、決定された通信路を設定することは行われない。
これに対して、本通信端末においては、一般端末(例えば通信端末6p、通信端末6q)を中継サーバにするため、利用する中継装置を、動的に決定することが必須要件になる。
そこで、本通信端末においては、本通信端末−中継サーバ群−相手先通信端末の通信路は、通信開始時および、通信中などに動的に決定、設定される。
すなわち、通信状況監視部により、通信の開始時、又は、通信中などにおいて、利用される複数の中継装置が、新しい複数の中継装置に変更される。これにより、利用されるそれぞれの中継装置が一般端末であるにも関わらず、複数の中継装置による、複数の通信路として、適切な複数の通信路が維持できて、適切に通信ができる。
このように、本通信端末においては、中継通信設定部と、通信部と、通信状況監視部とが組み合わせられ、組み合わせによる相乗効果が生じる。これに対して、従来例では、これら中継通信設定部等のうちの一部又は全部が欠けており、この相乗効果が得られない。本通信端末は、この相乗効果が得られる点で、従来例とは相違する。
中継サーバの中継処理により通信端末間を接続し、通信可能とするとき、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式を提供できる。
また、通信端末と相手先通信端末との間における通信データの通信が高速になり、かつ、その通信の品質が安定するようにできる。
1 インターネット
2 ローカルネットワーク
3 センターサーバ
4a〜4N 中継サーバ
5、5a、5b ルータ
6、6a、6b 通信端末
61 上位アプリケーション機能部
62 中継クライアント部
63 通信I/F部
64 中継通信サーバ機能部
621 中継通信設定部
622 通信状況監視部
623 中継通信路情報記憶部
624 データ送信部
624a 通信処理部
625 データ受信部
641 NAT設定部
642 中継通信サーバ部
本発明は、異なるルータ配下のローカルネットワークに接続された通信端末間を接続し、データ通信を可能とする通信端末および、ソフトウェアに関する。
近年、ネットワークに接続された通信端末間を接続し、情報の共有や、映像、音声等を用いたコミュニケーションを行う、「ピアツーピア(Peer to Peer=P2P)」接続と呼ばれる接続方式が注目されている。
しかし、一般の家庭では、多くの場合、ルータのアドレス変換(NAT:Network Address Translator)機能を利用して通信端末を接続している。
ここで、NAT機能とは、ローカルネットワーク(LAN)内のプライベートアドレスを、インターネット等のグローバルネットワーク内の通信で使用されるグローバルアドレスに変換する機能である。NAT機能としては、プライベートアドレスとグローバルアドレスとを1対1の対応で変換する狭義のNAT機能が知られている。また、それに加えて、NAPT(Network Address Port Translation)機能と呼ばれる、プライベートアドレスとポート番号の組を、グローバルアドレスとポート番号の組に変換することで、1つのグローバルアドレスを使って、ルータ配下に接続された複数の通信端末で、その1つのグローバルアドレスを共用可能とする機能も知られている。本明細書では、狭義のNAT機能とNAPT機能とをまとめて、NAT機能と呼ぶことにする。
異なるルータに接続された通信端末間を接続可能するためには、通信端末が接続された両ルータのNAT機能が正しく設定されている必要がある。
NAT機能を設定する方法としては、ローカルネットワークに接続された通信端末がグローバルネットワークのサーバ宛にパケットを送信した場合等に、ルータのNAT機能で自動的に設定される動的NAT設定が知られている。動的NAT設定は、ルータのNAT機能が自動で、変換後のグローバルアドレスとポート番号を割り当て、通信端末のローカルアドレスとポート番号の組と、変換後のグローバルアドレスとポート番号の組を含む変換ルールを自動的に設定する。
この動的NAT設定により、ローカルネットワークに接続された通信端末からグローバルネットワーク上のWebサーバに接続する場合等には、ユーザが特別なNAT機能への設定を行う必要なしに通信が可能である。
このため、グローバルネットワーク上に中継サーバを設け、異なるルータに接続された通信端末が、それぞれ、動的NAT設定を利用して中継サーバに接続し、その中継サーバを経由して、通信端末間を接続することで、ユーザが特別な設定を行うことなく、通信できることが知られている。
しかし、このような中継サーバを用いて接続する方法では、中継サーバにトラヒックが集中し、中継サーバの処理能力、処理帯域がボトルネックになる場合がある。このため、グローバルネットワークに、ルータを介さずに直接接続された通信端末や、グローバルネットワークから常に接続可能となるように、ルータのNAT機能の設定を実行している通信端末に中継機能を持たせ、中継サーバとして動作させることで、中継サーバ数を増やし、処理能力、処理帯域を分散させる方法が知られている。
Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN) draft-ietf-behave-turn-09
しかしながら、通信端末に中継機能を持たせ、中継サーバとして動作させる方法では、中継機能を提供する通信端末に、通信端末自身用の処理に加えて、中継用の処理を実行する能力が必要になる。この中継処理を行う場合、受信したデータを、別の端末に送信する必要があるため、送受信で2倍の帯域のデータを処理する必要が生じる。これらを処理可能とするためには、通信端末のコストが高くなるという問題がある。
加えて、通信端末とインターネットを接続しているアクセス回線は、ADSL:Asymmetric Digital Subscriber Line等の限られた帯域しか持たない回線が使用されることも多いと考えられる。このため、中継機能で中継される通信帯域が大きくなると、輻輳等が発生し、中継機能を提供した通信端末が接続しているローカルネットワーク全体に悪影響が発生するという問題がある。
本発明は、上記問題点を鑑み、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式の提供を目的とする。
また、通信端末(例えば、一般の家庭のユーザのコンピュータ)の間における通信データの通信が高速になり、かつ、その通信の品質を安定させることを目的とする。
上記課題を解決するため、本発明の通信端末は、グローバルネットワーク(例えば、図1のインターネット1)のアドレスが割り当てられた中継装置(図1の中継サーバ4a〜4N、図8の通信端末6p、通信端末6qなど)を介して、相手先通信端末(通信端末6b、通信端末6tなど)と通信を行う、ローカルネットワーク(ローカルネットワーク2a、2s)に接続された通信端末(通信端末6a、6s、6Lなど)であって、複数の前記中継装置のアドレス宛にパケットを送信することにより、それぞれの前記中継装置が、前記通信端末(通信端末6a等)へパケットを送信する際に、その中継装置が前記通信端末から受信した前記パケットの送信元アドレス宛に、その中継装置が(、その中継装置が送信する前記パケットの)送信を行う通信路を設定する中継通信設定部(中継通信設定部621)と、通信データが分割された複数の分割データを、複数の前記中継装置を介して通信する通信部(通信処理部624a、通信処理部624aが有するデータ送信部624及びデータ受信部625のうちの一方、又は、通信処理部624aが含まれる全体(通信部62p等))と、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、複数の前記分割データの通信が介する複数の前記中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視部(通信状況監視部622)とを備える通信端末である。
この構成により、通信データをより高速に通信できる。
なお、上記の通信部は、図9の通信処理部624aに対応すると理解されてもよい。また上記の通信部は、通信処理部624aを含んだ全体、具体的には、図2の通信部62pなどに対応すると理解されてもよい。上記の中継通信設定部は、通信部(図2の通信部62p)の一部として本通信端末に設けられてもよい。上記の通信状況監視部は、例えば、監視する各通信状況を評価して、その評価の評価結果に基づいて、上記の変更を行わせてもよい。
また、通信部は、複数の分割データのうちの少なくとも一部の分割データを、2以上の中継装置をシーケンシャルに利用して、通信してもよい。また、通信部は、複数の分割データのうちの少なくとも一部を、その少なくとも一部に含まれる分割データの個数と同じ個数の中継装置をパラレルに利用して、互いに異なる分割データは互いに異なる中継装置を介して通信してもよい。
なお、通信部は、具体的には、例えば、監視される各通信状況の全体を評価した評価結果に基づいて、上記変更を行う。また、通信状況監視部は、具体的には、例えば、前記複数の分割データの通信が介する前記複数の中継装置(以下、使用中の複数の中継装置)を変更する制御を当該通信端末および前記相手先通信端末のうちの少なくとも一方に行う。なお、ここで、通信端末等に制御を行うとは、通信端末等の全体を制御することと、通信端末等に含まれる予め定められた部分のみを制御することとの両者が含まれる。ここで、通信端末は、「端末」であるので、例えば、一般の家庭のユーザのパーソナルコンピュータなどが含まれる。なお、通信部は、例えば、上記複数の中継装置を介して、上記複数の分割データを送信することにより、上記通信データを並列に相手先通信端末と通信してもよい。なお、上記分割データは、例えば、いわゆるパケットであってもよい。通信部は、例えば、通信データを複数のパケットへと分割する。
また、通信状況監視部は、具体的には、例えば、評価結果に基づいて、評価結果が予め定められた結果より良い結果であれば、上記変更を行わず、使用中の複数の中継装置を、現在の複数の中継装置に維持する。そして、例えば、具体的には、通信状況監視部は、評価結果が、予め定められた結果以下の結果であれば、上記変更をすることにより、変更前の結果よりも良い評価結果が得られるように、使用する複数の中継装置を変更する。これにより、通信状況が、予め定められた結果より良い結果になるように、通信データの通信の評価(品質)を維持できる。
本発明によれば、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する機器に大きな処理負荷をかけることなく、かつ、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式が実現できる。
また、通信端末と相手先通信端末との間における通信データの通信が高速になり、かつ、その通信の品質が安定するようにできる。
図1は、本実施の形態における通信端末を接続するネットワークの構成の一例を示す図である。
図2は、本実施の形態における通信端末の機能構成の一例を示したブロック図である。
図3は、本実施の形態における通信端末の接続手順の一例を示すシーケンス図である。
図4は、本実施の形態における通信端末の再送手順の一例を示すシーケンス図である。
図5は、本実施の形態における通信端末の中継通信路の入替手順の一例を示すシーケンス図である。
図6は、本実施の形態における通信端末の切断手順の一例を示すシーケンス図である。
図7は、本実施の形態における中継通信サーバ機能を持つ通信端末の機能構成の一例を示したブロック図である。
図8は、本実施の形態における中継通信サーバ機能を持つ通信端末を接続するネットワークの構成の一例を示す図である。
図9は、通信端末を示す図である。
本発明の実施の形態について図に基づいて説明する。
図1は、この実施形態における通信端末のネットワーク構成を示したブロック図である。
システムXは、センターサーバ3と、ローカルネットワーク2aと、ローカルネットワーク2bと、N台の中継サーバ(中継サーバ4a〜中継サーバ4N)とを備える。ここで、Nは、2以上の整数である。
ローカルネットワーク2aは、ルータ5aと、通信端末6aとを含む。
ローカルネットワーク2bは、ルータ5bと、通信端末6bとを含む。
以下では、システムXに含まれる1台の通信端末が開始させる、その通信端末と、その通信端末以外の他の通信端末との通信のうちで、通信端末6aが開始させる、通信端末6aと通信端末6bとの通信が、一例として詳しく説明される。以下では、説明の便宜上、通信端末6aは、発呼側通信端末6aと呼ばれる。通信端末6bは、着呼側通信端末6bと呼ばれる。
システムXにおいては、センターサーバ3と中継サーバ4a〜4Nとルータ5a、5bが、グローバルネットワークであるインターネット1を介して互いに接続されている。また、ルータ5a、5bはNAT機能を有し、そのルータにより構成されるローカルネットワーク(ローカルネットワーク2aおよびローカルネットワーク2b)に、通信端末6a、6bがそれぞれ接続されている。
本実施の形態では、ルータ5a、5bに各々接続された通信端末6a、6bが、中継サーバ4a〜4Nにそれぞれ部分通信路を接続し、それら複数の中継サーバ経由で通信を行う。なお、発呼側通信端末6aが中継サーバに接続する部分通信路は、発呼側部分通信路と呼ばれる。また、着呼側通信端末6bが中継サーバに接続する部分通信路は、着呼側部分通信路と呼ばれる。1つの中継サーバに発呼側通信端末6aから接続された発呼側部分通信路と、着呼側通信端末6bから接続された着呼側部分通信路との両者により、その中継サーバを介した1つの中継通信路が構成される。発呼側部分通信路は、その発呼側部分通信路を含む中継通信路のうちで、発呼側通信端末6aと中継サーバとの間の部分である。着呼側部分通信路は、その着呼側部分通信路を含む中継通信路のうちで、着呼側通信端末6bと中継サーバとの間の部分である。そして、発呼側通信端末6aは、より具体的には、以下で詳しく説明される中継サーバ情報に基づいて特定されるk個の選択中継サーバ(2≦k≦N)にそれぞれ、発呼側部分通信路を接続し、着呼側通信端末6bは、それらk個の選択中継サーバにそれぞれ着呼側部分通信路を接続する。そして、通信端末6a、6bは、それらk個の選択中継サーバによる中継通信路によって、互いの間の通信を行う。これにより、通信端末6a、6bは、例えば、1つの中継サーバのみにより通信を行う場合と比べて、例えば約k倍高速である通信など、比較的高速な通信を行う。
ここで、センターサーバ3は、通信端末6a、6bと常に通信可能な状態で接続されており、各通信端末の間での接続、切断の制御メッセージの送受信を行うシグナリング機能を持つ。また、センターサーバ3は、各中継サーバ4a〜4Nのアドレス情報を含む中継サーバ情報を管理し、通信端末6a、6bに対して、中継サーバ情報を提供する中継サーバ情報管理機能を持つ。
ここで、アドレスとは、IPアドレス又は、IPアドレスとポート番号のセット等の、ネットワークにおいて通信先を特定する情報を意味するものとする。アドレス情報とは、アドレスを含む情報を意味するものとする。
なお、中継サーバ情報は、中継サーバ4a〜4N(図1)のうちから、一部又は全部の中継サーバを特定する。なお、中継サーバ情報は、具体的には、例えば、発呼側通信端末6aが有する予め定められた対応関係の値を特定してもよい。ここで、この対応関係は、中継サーバ情報により特定される値と、2以上の中継サーバ情報とを対応付ける。そして、中継サーバ情報は、値を特定することにより、その値に、その対応関係が対応させる各選択中継サーバを特定する。通信端末は、例えば、その値に基づいて、その値に対応する各中継サーバを特定する機能を有する。
中継サーバ4a〜4Nのそれぞれは、通信端末6aと通信端末6bとの間でデータを送受信するときに一時的に各通信端末6a、6bと接続し、通信端末間で送受信されるデータを中継する中継機能を提供する。
ルータ5aは、NAT機能を有するルータである。ルータ5aは、ローカルネットワーク2aとインターネット1を接続可能にする。通信端末6aは、ローカルネットワーク2aにおいてルータ5aを介してセンターサーバ3および中継サーバ4a〜4Nと通信して、他の通信端末とデータの送受信をする。同様に、ルータ5bは、NAT機能を有するルータである。ルータ5bは、ローカルネットワーク2bとインターネット1を接続可能にする。通信端末6bは、ローカルネットワーク2bにおいてルータ5bを介してセンターサーバ3および中継サーバ4a〜4Nと通信して、他の通信端末とデータの送受信をする。
なお、上述のように、ルータ5a、5bのそれぞれは、NAT機能を有する。これにより、通信端末6a、6bのそれぞれは、その通信端末が含まれるローカルネットワーク(ローカルネットワーク2a又はローカルネットワーク2b)における動的NAT設定機能を用いて、その通信端末から、そのローカルネットワークの外部にある外部装置(センターサーバ3、中継サーバ4a〜中継サーバ4N)へと通信路を接続できる。他方で、外部装置は、その外部装置から、各ローカルネットワークに含まれる通信端末(通信端末6a、通信端末6b)へと通信路を接続できない。
図2は、通信端末6の基本的な構成の一例を示している。
システムXに含まれる各通信端末(通信端末6a、通信端末6b等)は、互いに共通する共通機能を有する。通信端末6は、システムXに含まれる各通信端末(通信端末6a、通信端末6b等)のうちの一例である。通信端末6は、例えば、通信端末6aである。そして、図2において、通信端末6は、上位アプリケーション機能部61、中継クライアント部(中継通信クライアント部)62、通信I/F部63を備える。
なお、通信端末6は、例えば、CPU、RAM、ROMなどを備えるコンピュータであってもよい。そして、中継クライアント部62等のそれぞれは、このコンピュータにより、プログラムが実行されることにより実現される機能の機能ブロックであってもよい。
上位アプリケーション機能部61は、通信端末6のアプリケーション機能を提供し、中継クライアント部62、通信I/F部63を通じて、通信端末6が通信する相手の通信端末たる相手通信端末と通信データの送受信を行い、送受信データを利用しながら、ユーザに対するI/Fを提供する。
発呼側通信端末6aが有する中継クライアント部62は、中継サーバ情報(先述)によって特定される複数の中継サーバ(選択中継サーバ)を用いて、相手通信端末(着呼側通信端末6b)との間に、中継通信路を設定し、それらの複数の中継通信路を用いて、中継通信を実現する。そして、より具体的には、中継クライアント部62は、それら各選択中継サーバと発呼側通信端末6aとの間の部分通信路(先述)をそれぞれ設定する。つまり、中継クライアント部62は、それら各選択中継サーバに対して、発呼側部分通信路(先述)をそれぞれ接続する。また、中継クライアント部62は、着呼側通信端末6bに対して、着呼側通信端末6bがそれら各選択中継サーバに対して着呼側部分通信路を各々接続するよう、後で詳しく説明される接続要求(図3のステップS33)を行う。なお、後で詳しく説明されるよう、この接続要求は、センターサーバ3を介して行われる。発呼側通信端末6aの中継クライアント部62は、こうしてk個の中継通信路をそれぞれ設定する。
通信I/F部63は、通信端末6をネットワークに接続するためのインタフェース機能を提供する。中継クライアント部62は、通信I/F部63を通じて、ネットワークに接続される。
また、中継クライアント部62は、より詳細には、中継通信設定部621、通信状況監視部622、中継通信路情報記憶部623、データ送信部624、データ受信部625を備える。
中継通信設定部621は、センターサーバ3から中継サーバ情報を取得し、取得した中継サーバ情報を用いて、中継通信を行うための各中継通信路を、それぞれ、複数の中継サーバと発呼側通信端末6aとの間に設定する。
また、中継通信設定部621は、後で詳しく説明される通信状況監視部622から指示を取得する。具体的には、第1に、中継通信設定部621は、中継通信設定部621が過去に設定した既存の既存中継通信路を削除することを指示する削除指示を取得する。また、第2に、中継通信設定部621は、新規中継通信路の設定を指示する新規設定指示を取得する。また、第3に、中継通信設定部621は、既存の既存中継通信路の削除と代替の新規中継通信路の設定の両方を指示する両方指示を取得する。そして、中継通信設定部621は、削除指示が取得されれば、取得された削除指示によって指定される中継通信路を削除する。また、中継通信設定部621は、新規設定指示を取得すれば、取得される新規設定指示によって指定される中継サーバによる新規中継通信路を新たに設定する。また、中継通信設定部621は、両方指示を取得すれば、両方指示によって指定された削除中継通信路を削除すると共に、同じく両方指示によって指定された新規中継通信路を新たに設定する。
通信状況監視部622は、中継サーバを介した、相手通信端末6bと発呼側通信端末6aとの間の中継通信路の通信状況(通信帯域、伝送遅延、パケットロス率等)を監視、評価し、評価結果に基づき、中継通信路の削除、又は新規中継通信路の設定、又は既存中継通信路の削除と代替の新規中継通信路設定の両方を、中継通信設定部621に指示する。すなわち、通信状況監視部622は、上記評価結果に基づいて、先述した削除指示、新規設定指示、両方指示を、中継通信設定部621に対して送信し、送信する各指示を中継通信設定部621に取得させる。通信状況監視部622は、これにより、それぞれ、その指示に対応する上記の処理を中継通信設定部621に行わせる。なお、このような、通信状況監視部622による各指示については、後で、より詳しく説明される。
中継通信路情報記憶部623は、センターサーバ3から中継通信設定部621が取得した中継サーバ情報と、中継通信設定部621が設定した、中継サーバを介した複数の中継通信路のそれぞれの中継通信路情報を各々記憶し、管理する。ここで、後者の情報すなわち中継通信路情報は、中継通信路を一意に識別するためのIDと、その中継通信路の中継をする中継サーバのアドレス情報(IPアドレス、ポート番号)を含む情報である。
データ送信部624は、上位アプリケーション機能部61からの送信データを、所定のサイズのパケットに分割し、中継通信設定部621が設定した複数の中継通信路を用いて前記パケットを送信する。より具体的には、データ送信部624は、例えば、各パケットを、k個の中継通信路にそれぞれ対応する複数のパケット群へと振り分け、各パケット群のパケットを、それぞれ、そのパケットが振り分けられたパケット群に対応する中継通信路によって送信する。これにより、データ送信部624は、各パケット群のパケットを、それら複数の中継通信路を介して、例えば並列に送信する。これにより、データ送信部624は、送信データの各パケットを、例えば、1つの中継通信路のみで通信をする場合と比べて、例えば約k倍など(kは、中継通信路の個数)、比較的高速に通信する。
なお、請求の範囲の記載における「分割データ」は、この実施の形態において、例えば「パケット」である。
なお、このとき、データ送信部624は、相手先通信端末6bが、それら複数の中継通信路から受信したパケットを正しい順番で処理し、元のデータを復元できるようにするために、必要に応じて、各パケットに、それぞれ、順序を示す番号たる順序番号を設定する。
データ受信部625は、複数の中継通信路を介して受信した前記各パケットを、それぞれ、そのパケットに含まれる順序番号等を利用して組み立て、送信元の上位アプリケーション機能部が送信した送信データを再現し、自身の上位アプリケーション機能部に引き渡す。
以上のように構成された通信端末について、以下、図3から図6を用いてその動作をより詳しく説明する。
(接続シーケンス)
図3は、通信端末間の接続シーケンスの一例を示す図である。
S31で、まず、発呼側通信端末6aは、センターサーバ3から最新の中継サーバ情報を中継通信設定部621により取得する。
なお、ここで、通信端末6a、6bは、その通信端末の起動直後に、センターサーバ3との間に予め通信路を接続し、センターサーバ3からの中継サーバ情報を常に受信可能となっている。なお、ここで、前述したように、ローカルネットワークに接続された通信端末6a、6bから、インターネット1に接続されたセンターサーバ3に通信路を接続すれば、ルータの動的NAT設定により、特別な設定は必要なく、通信路をその通信端末は設定することが可能である。
なお、このS31のとき、センターサーバ3は、各中継サーバ4a〜4Nの現状の負荷状況を考慮して、通信端末6aに引き渡す中継サーバ情報を選択することで、各中継サーバの負荷の平滑化を図ることが可能になる。
S32では、発呼側通信端末6aの中継クライアント部62が、センターサーバ3から取得した中継サーバ情報を用いて、中継通信に用いる中継サーバ(選択中継サーバ)を選択し、中継依頼を、選択した各選択中継サーバ(中継サーバ4a〜4c:選択中継サーバ)にそれぞれ送信する。ここで、中継サーバのアドレス情報は、中継サーバ情報から入手する。なお、中継サーバ情報は、その中継サーバ情報が特定する各中継サーバのアドレス情報を含む。
そして、このS32のとき、中継依頼を受信した各選択中継サーバ(中継サーバ4a〜4c)は、それぞれ、中継通信のための設定を、その選択中継サーバに行い、その選択中継サーバを介した中継通信路を一意に識別するためのIDと、その中継通信に利用する選択中継サーバのアドレス情報(IPアドレス、ポート番号)を含む中継通信路情報を応答する。
なお、中継サーバ4a〜中継サーバ4Nうちの少なくとも1つは、より詳細には、制御装置と、データ通信装置との2つの装置を備えてもよい。そして、データ通信装置は、その中継サーバの中継通信路を介して通信されるデータ(ユーザデータ)の通信を中継してもよい。他方、制御装置は、データ通信装置によるユーザデータの通信を制御してもよい。そして、中継サーバ情報(先述)に含まれるアドレス情報は、上記制御装置のアドレスを特定してもよい。そして、S32で、中継クライアント部62は、選択中継サーバの制御装置に中継依頼(上述)を受信させてもよい。そして、S32のときに、制御装置は、中継依頼を受信すると、その制御装置と共に中継サーバを構成するデータ通信装置を特定するアドレス情報を含んだ中継通信路情報を、通信端末6aに対して応答してもよい。なお、中継通信路情報は、データ通信装置のアドレス情報と共に、そのデータ通信装置と共に中継サーバを構成する制御装置のアドレス情報を含んでもよい。
そして、このS32のときに、複数の選択中継サーバからそれぞれ中継通信路情報(上述)を受信した中継クライアント部62は、受信した各中継通信路情報をそれぞれ中継通信路情報記憶部623に記憶し、応答された各中継通信路情報のアドレス情報により、それぞれ、例えば、そのアドレス情報の示すデータ通信装置(先述)にアクセスするなどして、中継通信路(中継通信路の発呼側部分通信路(先述))を接続する。なお、本通信路接続は、ローカルネットワーク2aに接続された通信端末6aから中継サーバへの接続となるため、ルータの動的NAT設定により、特別な設定は必要なく通信路を通信端末6aは設定することが可能である。
S33で、次に、中継クライアント部62は、センターサーバ3に対して、相手先通信端末(着呼側通信端末6b)にセンターサーバ3が接続要求送信を行うように依頼する。本接続要求送信による接続要求には、先にS32で発呼側通信端末6aが設定した複数の中継通信路の中継通信路情報をそれぞれ含む。本接続要求は、例えば、各選択中継サーバのアドレス情報と、そのアドレス情報による中継通信路のIDとを含む。より具体的には、例えば、本接続要求は、各選択中継サーバのデータ通信装置のアドレス情報と、制御装置のアドレス情報とを含んでもよい。ただし、本接続要求は、データ通信装置のアドレス情報を含まなくてもよい。
S34では、センターサーバ3から接続要求を受信した着呼側の着呼側通信端末6bは、受信された接続要求から中継通信路情報を取り出し、発呼側通信端末6aが中継通信路(中継通信路の発呼側部分通信路)を接続している各選択中継サーバ(中継サーバ4a〜4c、各中継サーバの制御装置)に、それぞれ、中継通信路を一意に識別するためのIDを含む中継依頼メッセージを送信する。ここで、送信されるIDは、取り出された中継通信路情報に含まれるIDである。このIDは、そのIDの中継通信路を中継する中継サーバが中継する各中継通信路のうちから、そのIDの中継通信路を一意に識別する。
要求を受信した各中継サーバ(中継サーバの制御装置)は、それぞれ、先にS34で送信された中継依頼メッセージに含まれたIDにより、中継通信路を識別し、中継通信に利用する中継サーバ(中継サーバのデータ通信装置)のアドレス情報(IPアドレス、ポート番号)を、着呼側通信端末6bに応答する。
そして、S34では、次に、各選択中継サーバからの応答を各々受信した着呼側の着呼側通信端末6bの中継クライアント部62は、受信した各応答に含まれる中継通信路情報をそれぞれ記憶し、応答された各中継通信路情報のアドレス情報により示される中継サーバ(中継サーバのデータ通信装置)に、着呼側部分通信路(先述)を接続する。
そして、S34で、着呼側通信端末6bは、全ての中継サーバとの通信路(着呼側部分通信路)の接続が完了後、接続応答メッセージをセンターサーバ3を通じて、発呼側通信端末6aに送信する。
ここで、発呼側通信端末6aの発呼側部分通信路と同様に、着呼側通信端末6bの着呼側部分通信路は、ルータ5bの動的NAT設定により、特別な設定を必要なく、着呼側通信端末6bが各選択中継サーバに対して接続することができる。
(パケットロス時の再送シーケンス)
図4は、パケットロスが発生した場合の再送シーケンスの一例を示している。
S41において、発呼側通信端末6aの中継クライアント部62は、上位アプリケーション機能部61から送信を依頼された送信データを分割したパケットデータを、複数の中継通信路を用いて送信する。図4の例では、送信に用いられる中継通信路は、中継サーバaの中継通信路と、中継サーバbの中継通信路と、中継サーバcの中継通信路とである。
そして、このS41の処理に応じて、パケットデータを受信した通信相手の通信端末(着呼側通信端末6b)の中継クライアント部62は、データを受信した中継通信路(例えば、中継サーバaの中継通信路)を用いて、受信確認メッセージをデータ送信元の通信端末(発呼側通信端末6a)に送信する。図4では、中継サーバaの中継通信路による受信確認メッセージの送信が図示される。
S42では、データ送信元(発呼側通信端末6a)の中継クライアント部62は、通信状況監視部622によって、S41でのパケット送信から、S41でのパケット送信に応じた受信確認メッセージが応答されてくるまでの時間を計測し、各中継通信路の伝送遅延の情報を取得する。
また、このS42で、中継クライアント部62は、パケット送信から所定の時間(所定時間T1:図4)経過しても、そのパケットの送信に応じた受信確認メッセージを受信しないことで、パケットロスPL(図4参照)を検出する。図4では、パケットロスPLの一例として、中継サーバbの中継通信路でのパケット送信におけるパケットロスが図示される。
S42aでは、S42でパケットロスを検出した、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、パケットロス率が低く、伝送遅延の小さい中継通信路を選択する。
なお、中継クライアント部62は、より具体的には、例えば、発呼側通信端末6aが設定した各中継通信路(例えば、中継サーバaの中継通信路、中継サーバbの中継通信路、中継サーバcの中継通信路)のうちで、パケットロスが発生した中継通信路(中継サーバbの中継通信路)を除いた他の各中継通信路(中継サーバaの中継通信路、中継サーバcの中継通信路)のうちから、中継通信路を選択する。そして、例えば、中継クライアント部62は、それら他の各中継通信路のうちで、パケットロス率が最も低い中継通信路(中継サーバaの中継通信路)を選択する。
また、例えば、発呼側通信端末6aは、品質が、予め定められた閾値よりも高い中継通信路を選択する。ここで、上記品質は、具体的には、例えば、上記パケットロス率であってもよいし、また、伝送遅延であってもよい。パケットトス率は値が小さいほど品質が高い。伝送遅延は遅延時間が短いほど品質が高い。また、ここで、上記閾値は、例えば、上記他の各中継通信路のうちの予め定められた中継通信路の品質であってもよい。そして、例えば、予め定められた中継通信路は、上記他の各中継通信路のうちで、品質が、最も高い値の次に高い値、すなわち2番目に高い値である中継通信路である。この場合、中継クライアント部62は、上記他の各中継通信路のうちで、上記品質が最も高い値の中継通信路を選択する。
そして、S43で、発呼側通信端末6aの中継クライアント部62は、ロスしたパケットを再度送信する。
ここで、パケットロスが少ない中継通信路を中継クライアント部62がS42で選択することで、再度パケットがロスする確率を小さくすることができる。また、伝送遅延が小さい中継通信路を選択することで、ロスしたパケットを早く相手先に送信することが可能となり、再送に要する時間を短くすることが可能となる。
なお、S41で、発呼側通信端末6aによって送信がされた後に、この送信の結果のパケットロスに応じて、S43で、S42aで選択された中継サーバによる送信がされる。このようにして、送信が行われる中継サーバが、1回目の送信の中継サーバ(中継サーバb)から、2回目の送信の中継サーバ(中継サーバa)に変更される。図4において、破線の矢印線は、単なる、この中継サーバの変更を示すだけの図示物であり、システムXにおけるデータの流れなどを示す図示物ではない。
(中継通信路の入替シーケンス)
図5は、中継通信路の入替シーケンスの一例である。
中継サーバを介した複数の中継通信路を用いてデータを送信する処理(S51)は、S41(図4)の処理と同一であるので詳しい説明は省略する。ここでの相違点は、図5の例では、パケットロスは発生せず、パケットロスが発生しない代わりに、中継サーバbを介した中継通信路での伝送遅延が、他の各中継通信路での伝送遅延に比べて非常に大きくなっている点である。なお、ここで、非常に大きい伝送遅延というのは、通常の伝送遅延と比べて非常に大きい伝送遅延の意味と、通常の伝送遅延よりも小さい伝送遅延と比べれば非常に大きい伝送遅延の意味との両方の意味が含まれる。
パケット送信元(発呼側通信端末6a)の中継クライアント部62は、各中継通信路の伝送遅延の情報を常に取得して、評価しており、前記中継サーバbを介した中継通信路の伝送遅延の平均や揺らぎ等の統計情報や、最大伝送遅延等の値(評価対象の値)が、所定の基準を満たさないことを検出する。
S52においては、この検出の結果、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、前記中継サーバbを介した中継通信路を不適と判定する。なお、この説明において、中継サーバbは、中継クライアント部62が不適と判定した中継サーバの一例である。
次に、S53においては、パケット送信元(発呼側通信端末6a)の中継クライアント部62は、以下の、中継通信路の入替処理を実行する。すなわち、発呼側通信端末6aの中継クライアント部62は、予めセンターサーバ3から取得済みの中継サーバ情報を用いて、新規の中継サーバ(中継サーバd)を選出する。そして、中継クライアント部62は、選出した新規中継サーバに対して、中継依頼メッセージを送信する。
なお、S52において、中継クライアント部62は、例えば、中継通信路の不適の判定をした場合に、中継サーバを特定する中継サーバ情報をセンターサーバ3から取得してもよい。そして、S53では、中継クライアント部62は、S52で取得された中継サーバ情報により特定される中継サーバを選出してもよい。また、図3のS31で取得される中継サーバ情報は、図5のS53で選出すべき新規の中継サーバを特定する新規中継サーバ情報を含んでもよい。そして、図5のS53では、中継クライアント部62は、S31で取得された中継サーバ情報に含まれる新規中継サーバ情報により特定される中継サーバを選出してもよい。
なお、図5の例では、S52で取得されるなどした中継サーバ情報が、新規の中継サーバのアドレス情報として、中継サーバdのアドレス情報を含み、S53では、中継サーバdが選出される。このため、図5の例では、S53で、中継サーバdに中継依頼メッセージが送信されて、利用される中継サーバが、中継サーバbから中継サーバdに入れ替えられる。図5では、この入れ替えが、破線の矢印線によって図示される。なお、図5の破線の矢印線は、単なるこの入れ替えを示すだけの図示物であり、システムXにおけるデータの流れなどを示す図示物ではない。
そして、S53のときに、中継依頼メッセージを受信した中継サーバd(新規の中継サーバ)は、中継サーバdの中継通信路情報を含む応答メッセージを、発呼側通信端末6aの中継クライアント部62に送信する。
そして、このS53では、中継サーバdから中継通信路情報を受信した中継クライアント部62は、受信した中継通信路情報を、例えば中継通信路情報記憶部623などにより記憶し、応答された中継通信路情報のアドレスに中継通信路を接続する。
そして、S53では、先にS52で不適と判断した中継通信路(中継サーバbの中継通信路)の中継通信路情報と、新規に接続した中継通信路(中継サーバdの中継通信路)の中継通信路情報を含む中継サーバ入替要求メッセージを、不適と判断した中継通信路以外の他の中継通信路(例えば中継サーバaの中継通信路)を通じて、相手先通信端末6bに、中継クライアント部62が送信する。すなわち、S53で、発呼側通信端末6aの中継クライアント部62は、設定した各中継通信路(例えば、中継サーバaの中継通信路、中継サーバbの中継通信路、中継サーバcの中継通信路)のうちで、不適と判定された中継通信路(中継サーバbの中継通信路)以外の他の各通信路(中継サーバaの中継通信路、中継サーバcの中継通信路)のうちの1つの中継通信路(中継サーバaの中継通信路)により、中継サーバ入替要求メッセージを着呼側通信端末6bに送信する。
そして、このS53のときに、中継サーバ入替要求メッセージを、上記1つの中継通信路(中継サーバaの中継通信路)を介して受信した通信端末6bの中継クライアント部62は、新規接続する中継通信路(中継サーバdの中継通信路)の中継通信路情報を用いて、中継サーバd(中継サーバdの制御装置)に中継依頼を送信する。そして、着呼側通信端末6bの中継クライアント部62は、中継サーバdから応答で受信する中継通信路情報を用いて、中継通信路(中継通信路のうちの着呼側部分通信路)を新規の中継サーバ(中継サーバd)と接続した後、中継サーバ入替応答メッセージを、送信元通信端末6aに送信する。このとき、着呼側通信端末6bの中継クライアント部62は、例えば図5に示されるよう、上記1つの中継通信路(中継サーバaの中継通信路)により、この中継サーバ入替応答メッセージを送信する。なお、例えば、この送信は、上記1つの中継通信路よりも品質が高い他の通信路により行われてもよい。
同時に、S53のときに、不適と判断された中継通信路を提供する中継サーバbに、中継解放メッセージを、着呼側通信端末6bは送信し、この中継通信路(中継通信路の着呼側部分通信路)を解放する。
また、S53で、中継サーバ入替応答メッセージを受信した通信端末6aの中継クライアント部62も同様に、不適と判定された中継サーバbに中継解放メッセージを送信し、中継通信路(中継通信路の発呼側部分通信路)を解放する。
(切断シーケンス)
図6は、切断シーケンスの一例である。
S61で、発呼側通信端末6aの中継クライアント部62は、上位アプリケーション機能部61から切断が指示されると、センターサーバ3を通じて切断要求メッセージを相手先通信端末6bに送信する。
S62で、切断要求メッセージを受信した着呼側通信端末6bの中継クライアント部62は、接続中の全ての中継通信路の中継サーバに対して、それぞれ、中継解放メッセージを送信し、各中継通信路を各々解放し、切断応答メッセージを送信元通信端末6aに送信する。
S63では、切断応答メッセージを受信した通信端末6aの中継クライアント部62は、同様に、発呼側通信端末6aが接続中の全ての中継通信路の中継サーバに対して、中継解放メッセージをそれぞれ送信し、各中継通信路を各々解放し、通信端末間の通信を終了する。
(通信端末に中継サーバ機能を持たせる構成)
ここまででは、図1のように、インターネット1に中継専用の中継サーバ4a〜4Nがある場合について説明したが、以下、図7、図8を用いて、通信端末に中継サーバ機能を持たせる構成について説明する。
図7は、中継サーバ機能を持たせた通信端末6Lの基本的な構成の一例を示している。
図7において、図2と同様の機能部については、同一の符号を記述し、説明を省略する。
通信端末6Lは、中継通信サーバ機能部(中継通信サーバ機能)64を備える。
中継通信サーバ機能部64は、図1における中継サーバ4a〜4Nと同等の機能を提供する機能部である。すなわち、図1〜図6の説明においては、中継サーバ4a〜4Nのうちの何れにも設けられた共通機能について説明された。中継通信サーバ機能部64は、その共通機能と同等の機能を有する。例えば、中継通信サーバ機能部64は、その共通機能と同一の機能を有する。中継サーバ4a〜4Nと、中継通信サーバ機能部64との相違点は、通信端末6Lは、中継サーバ4a〜4Nと違い、ルータ配下のローカルネットワークに接続される場合があるため、ルータのNAT機能を設定し、インターネットから通信端末6L(図7)に接続できるようにするための機能(NAT設定部641)を持つ点である。
中継通信サーバ機能部64は、以下の機能部で構成される。すなわち、中継通信サーバ機能部64は、NAT設定部641と、中継通信サーバ部642とを備える。
NAT設定部641は、ルータのNAT機能を設定し、インターネットから中継通信サーバ部642への接続(すなわち、通信端末6Lへの接続および中継通信サーバ機能部64への接続)をできるようにする。ここで、NAT設定部641は、ルータが提供するUPnP(Universal Plug and Play)のIGD(Internet Gateway Device)仕様やNAT設定用のCGI(Common Gateway Interface)等を用いて、特定のコマンドをルータに送信することで、NAT設定を行うことが可能である。
中継通信サーバ部642は、前述した中継サーバ4a〜4Nと同等の機能(例えば、同一の機能)を提供し、NAT設定部641によって設定されたNAT設定によって、通信端末6Lがルータ配下のローカルネットワークに接続されていても、インターネット側から中継通信サーバ部642へアクセスすることが可能となる。そして、中継通信サーバ部642は、インターネット側から中継通信サーバ部642にアクセスするためのアドレス情報(IPアドレス、ポート番号)を、センターサーバ3に、中継サーバ情報の一部として登録する。インターネット側からアクセスするアクセス装置は、登録されたアドレス情報が含まれる中継サーバ情報を取得して、取得された中継サーバ情報に含まれるアドレス情報によって、中継通信サーバ部642にアクセスする。
図8は、以上のように構成された通信端末6Lを用いたネットワーク構成の一例を示す。
システムXLは、センターサーバ3と、ローカルネットワーク2p〜ローカルネットワーク2tとを備える。これらセンターサーバ3等は、インターネット1を介して互いに接続される。
通信端末6p〜通信端末6tのうちの少なくとも1つは、先述した通信端末6L(図7)である。例えば、通信端末6Lは、図7の通信端末6pである。なお、通信端末6Lが通信端末6pである場合において、通信端末6L以外の他の通信端末のうちの少なくとも1つは、例えば中継通信サーバ機能部64を有さないなどして、通信端末6Lの機能とは少なくとも一部が異なる機能を有してもよい。
中継通信サーバ機能部64(図7)を持つ通信端末6Lは、ルータ配下のローカルネットワーク2p等に接続される場合と、インターネット1に直接接続される場合とがある。なお、上述された、通信端末6Lが通信端末6pである場合は、通信端末6Lが、ルータ5p配下のローカルネットワーク2pに接続される場合である。また、通信端末6Lが、通信端末6qである場合は、通信端末6Lがインターネット1に直接接続される場合である。
何れの場合においても、インターネット1から中継通信サーバ機能部64にアクセスが可能な場合、中継通信サーバ機能部64は、そのアドレス情報を用いることにより、通信端末6Lに対して、インターネット1を介したアクセスが可能なアドレス情報(IPアドレス、ポート番号)をセンターサーバ3に、中継サーバ情報の一部として登録する。
端末間で通信を行う通信端末(例えば通信端末6s)は、前記のようにセンターサーバ3から中継サーバ情報を取得する(図3のS31参照)。これにより、中継通信サーバ機能部64を持つ通信端末6L(通信端末6p)を、中継サーバ4a〜4N(図1等)を利用するのと同様に利用することが通信端末6s等は可能となる。
このように、中継通信サーバ機能部64を持つ通信端末6Lで、中継専用の中継サーバ4a〜4N(図1)がなくとも、中継通信が可能となり、かつ、システムXLに通信端末6Lが増えると、中継通信サーバ機能部64を持つ通信端末6Lも増えることが期待できるため、システムコスト削減や、システムのスケラビリティの向上が実現できる。
なお、本実施の形態では、接続シーケンスの図(図3参照)において、最初に複数の中継通信路を接続するとしたが(図3のステップS31、ステップS32参照)、最初は1つの中継通信路を接続し、発呼側通信端末6aのデータ送信部624や、着呼側通信端末6bのデータ送信部の送信するデータパケットを、通信状況監視部622が監視し、データ量、データ送信帯域に応じて、中継通信路を随時追加、削除するようにしてもよい。
また、最初に複数の中継通信路を接続しておき、データ送信部624の送信するデータパケットを通信状況監視部622が監視し、データ量、データ送信帯域に応じて、中継通信路の削除、追加をするようにしてもよい。
このように、データ送信部624の送信するデータパケットのデータ量、データ送信帯域に応じて、中継通信路の追加、削除を行うことで、不必要な中継サーバを解放することができ、効率的に中継サーバを使用することが可能となる。
なお、本実施の形態では、中継通信路の伝送遅延の平均や揺らぎ等の統計情報や、最大伝送遅延等の値が、所定の基準を満たさないことを検出した場合に、該当する中継通信路を不適と判定するとしたが、中継クライアント部62は、パケットロス率が所定の基準を満たさない場合、該当する中継通信路を不適と判断してもよい。
このように判定することで、パケットロス率の高い中継通信路を排除することが可能となり、通信端末間の通信が安定する。
さらに、本実施の形態では、上位アプリケーション機能部61からのデータ送受信時に中継通信路の通信状況を監視し評価して、中継通信路の不適を判定するとしたが、中継通信路接続後、上位アプリケーション機能部61からのデータ送受信前に、テストデータの送受信を実行し、中継通信路が不適でないことを確認するようにしてもよい。この場合、不適であると判定された場合には、別の中継通信路を設定し、再度テストデータにより確認を実施する。
このようにテストデータによる確認を実施することで、不適な中継通信路を上位アプリケーション機能部61からのデータ送受信前に取り除くことが可能となるため、通信端末間の通信が安定する。
なお、本実施の形態では、データ送信部624は、上位アプリケーション機能部61からの送信データを所定のサイズのパケットに分割し、中継通信路を用いて送信するとしたが、データ送信部624は、所定の数nに対するn個の前記分割したパケットを用いて、演算により冗長パケットを作成し、作成した冗長パケットを含めて、送信処理を実行してもよい。
このように、冗長パケットを送信することにより、ある中継通信路でパケットロスが発生しても、データ受信部625で冗長パケットを用いて、ロスしたパケットを再現できるため、再送回数を減らすことが可能となる。
さらに、データ送信部624は、上位アプリケーション機能部61からの送信データを暗号化して送信し、通信相手のデータ受信部625が暗号を解読し、元のデータに戻すようにしてもよい。このようにすることで、通信端末6Lの中継通信サーバ機能部64を用いて中継通信を行った場合等のセキュリティの向上を要する各種の場合において、セキュリティを向上させることが可能となる。
また、センターサーバ3は、中継サーバ情報の一部として、中継サーバのカテゴリを示す情報を管理し、通信端末6は中継サーバを選択するときに本中継サーバのカテゴリを参照し、所定のカテゴリの中継サーバを所定台数以上選択するように制御するようにしてもよい。例えば、中継サーバのカテゴリとしては、中継専用の中継サーバと、通信端末6Lが提供する中継通信サーバ機能とを区別可能とすることが考えられる。通信端末6は、信頼できる中継専用の中継サーバを所定台数(例えば、1台)以上選択することにより、悪意を持った中継通信サーバ機能部64に、送信データを全て盗まれる等の攻撃を回避することが可能となる。また、カテゴリは、互いに異なるカテゴリに属する中継サーバは、予め定められた品質が互いに異なるカテゴリであってもよい。例えば、具体的には、カテゴリは、互いに異なるカテゴリに属する中継サーバは、その中継サーバによる中継通信路の安全性が互いに異なるカテゴリであってもよい。また、具体的には、カテゴリは、互いに異なるカテゴリに属する中継サーバは、その中継サーバによる中継通信路のセキュリティが互いに異なるカテゴリであってもよい。
本発明によれば、中継サーバの中継処理により通信端末間を接続し通信可能とするとき、中継機能を提供する機器に大きな処理負荷をかけることなく、かつ、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式が実現できる。
すなわち、ネットワーク上の中継機能部(中継サーバ4a〜中継サーバ4N、中継通信サーバ機能部64)を介して通信端末間で通信を行う通信端末(通信端末6)において、中継通信設定部(中継通信設定部621)は、ネットワーク上で複数の中継機能部を選択し、前記中継機能部を介した相手先通信端末へ通信路(中継通信路)を、選択した前記中継機能部それぞれについて設定し、通信状況監視部(通信状況監視部622)は、前記中継機能部を介した相手先通信端末との通信路(中継通信路)の通信状況を評価し、評価結果に基づき、前記通信路の削除、又は、新規中継機能部を介した相手先通信端末への通信路(新規中継通信路)の設定、又は、その両方を中継通信設定部に指示し、前記通信状況監視部より指示を受けた中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信する。
これにより、NAT配下のローカルネットワークに接続された通信端末間の通信を可能とする狙いが達成される。
また、こうして、ネットワーク上の中継装置(中継サーバ4a等、通信端末6L)を介して相手先通信端末装置(着呼側通信端末6b)と通信を行う通信端末装置(発呼側通信端末6a、通信端末6、通信端末6L)であって、通信に利用するネットワーク上の複数の中継装置を選択し、前記選択した複数の中継装置(選択中継サーバ)を介した相手先通信端末装置との間の中継用通信路をそれぞれ設定する中継通信設定部(中継通信設定部621)と、前記選択された中継装置を介した通信路毎に、相手先通信端末装置との通信状況を監視する通信状況監視部(通信状況監視部622)と、前記相手先通信端末装置から前記選択された中継装置を介して分割された受信データを受信して、前記分割された受信データを統合して受信データを組み立てるデータ受信部(データ受信部625)と、前記相手先通信端末装置への送信データを分割して、分割された送信データを前記選択された複数の中継装置それぞれを介して送信するデータ送信部(データ送信部624)とを備え、前記通信状況監視部は、前記中継用通信路の通信状況を評価し、評価結果に基づき、前記中継用通信路の削除、又は、中継用通信路の追加、又は、その両方を中継通信設定部に指示し、前記中継通信設定部は、中継用通信路を追加する場合、新規中継装置のアドレス情報を含む接続要求メッセージを前記相手先通信端末へ送信する通信端末が構成される。
なお、このようなシステムX、システムXLにおいては、発呼側通信端末6aから着呼側通信端末6bへの送信データも、着呼側通信端末6bから発呼側通信端末6aへの受信データも、両方とも、互いに異なる中継通信路を介して通信される複数の並列通信データ(パケット群)へと分割されて分割伝送(高速伝送)されてもよいし、送信データの分割伝送のみが行われてもよいし(受信データの分割伝送は必須ではない)、また、受信データの分割伝送のみが行われてもよい(送信データの分割伝送は必須ではない)。また、通信端末6により、通信状況監視部622によって通信品質を監視する監視装置が構成される。また、通信端末6により、中継通信設定部621によって中継装置を選択する選択装置が構成される。そして、この監視装置は、自分で中継装置を選択するが、自分では中継装置を選択しない監視装置が構成されてもよい。すなわち、例えば、上記の着呼側通信端末装置6b(又は着呼側通信端末装置6bに当たる装置)によって監視装置が構成されてもよい。すなわち、例えば、上記の着呼側通信端末装置6b(着呼側通信端末装置6bに当たる装置)であって、中継用通信路の品質を監視(評価)し、監視結果(評価結果)を通信相手(発呼側通信端末6a)に通知して、通信相手に中継用通信路の再設定を要求する装置が構成されてもよい。
また、こうして、通信相手先端末(着呼側通信端末6b)と、中継装置(中継サーバ4a等、通信端末6L)を介して当該相手先通信端末と通信を行う通信端末(発呼側通信端末6a、通信端末6、通信端末6L)とを含む通信システム(システムX、システムXL)が構成される。
なお、ここで、この通信システムにおいては、互いに通信を行う各通信端末(通信端末6a、通信端末6b、通信端末6pなど)が、NAT配下のローカルネットワークに接続された通信端末である。例えば、この通信システムは、具体的には、各通信端末が、互いにピアツーピア(Peer to Peer=P2P)接続される通信システムである。
そして、通信端末は、中継装置を介して相手先通信端末と通信を行う通信端末であって、通信データ(送信データ)が分割された複数の分割データ(パケット)を複数の中継装置を介して通信する通信部(通信部62p)と、前記複数の中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況(例えば伝送遅延)を監視し、監視する前記各通信状況を評価した評価結果に基づいて、前記複数の分割データの通信が介する前記複数の中継装置を、現在の複数の中継装置(例えば図5の中継サーバa、中継サーバb、中継サーバc)から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置(例えば図5の中継サーバa、中継サーバd、中継サーバc)に変更させる通信状況監視部(通信状況監視部622)とを備える。
これにより、通信データが、複数の中継サーバを介して、例えば並列に通信されるなどして、高速に通信される。
しかも、仮に、高速に通信がされるだけに止まるなら、通信データの通信の品質(評価)の安定性が、実用になる程度より悪くなってしまう。なぜならば、通信に用いられる中継装置が複数であり、例えばk倍(kは、利用される中継装置の台数:k≧2)だけ通信データの通信が中断し易くなってしまうなどして、品質(評価)の安定性が例えば2倍(k倍)低下してしまうためである。しかしながら、この通信システムにおいては、各中継通信路の通信状況(例えば伝送遅延)が監視されて、各通信状況の全体が評価された評価結果(例えば伝送遅延の平均値など)に基づいて、利用される各中継装置が、現在の複数の中継装置から、新しい複数の中継装置に変更される。これにより、通信データの通信の品質(評価)が安定するようにできる。
なお、通信部は、複数の分割データのうちの少なくとも一部(一部又は全部)の分割データを、2以上の中継装置をシーケンシャルに利用して、通信してもよい。また、通信部は、複数の分割データのうちの少なくとも一部(一部又は全部)を、その一部に含まれる分割データの個数と同じ個数の中継装置をパラレルに利用して、互いに異なる分割データは互いに異なる中継装置を介して通信してもよい。複数の中継装置は、それら複数の中継装置のうちの何れの中継装置も、それら複数の分割データのうちの少なくとも1つの分割データを中継する。
そして、この通信端末(通信端末6、発呼側通信端末6a)は、予め定められたN個の前記中継装置(N≧2)から複数の中継装置を選択し、前記選択した複数の中継装置(選択中継サーバ)を介した、当該通信端末と前記相手先通信端末との間の中継通信路をそれぞれ設定する中継通信設定部(中継通信設定部621)を備え、前記通信状況監視部は、前記各通信状況の評価結果に基づいて、前記現在の複数の中継装置の各中継通信路からの中継通信路の削除、又は、当該各中継通信路に対する中継通信路の追加、又は、前記削除および追加の両方を、前記中継通信設定部に指示し、前記中継通信設定部は、前記通信状況監視部により指示されると、当該指示により示される処理を行う。
ここで、中継通信路は、その中継通信路によりデータが中継される中継元から中継先までの間の通信路である。
なお、中継通信設定部は、より具体的には、例えば、中継通信路の設定や、削除などをするための公知のライブラリやパッケージなどの、公開等された汎用ソフトウェアによる機能を含み、この機能を用いて、上記の機能を果たすものであってもよい。
なお、中継通信設定部は、通信部62pの外部に設けられてもよいし、通信部62pの一部分であってもよい。
なお、例えば、通信状況監視部は、より具体的には、中継通信設定部に、上記追加をさせる第1制御、又は、上記削除をさせる第2制御、又は、上記両方をさせる第3制御を行ってもよい。すなわち、例えば、通信状況監視部は、具体的には、これら第1制御〜第3制御のうちから1つの制御を選択し、選択される制御を中継通信設定部に対して行ってもよい。
そして、この通信端末は、前記通信部は、前記通信データを前記複数の分割データへと分割して、分割された前記複数の分割データを、それぞれ、前記中継通信設定部によって選択された前記複数の中継装置(複数の選択中継サーバ)を介して送信するデータ送信部(データ送信部624)と、前記相手先通信端末によって通信データが分割された複数の分割データを、それぞれ、前記中継通信設定部によって選択された前記複数の中継装置を介して、前記相手先通信端末から受信して、受信された当該複数の分割データから、当該複数の分割データへと分割された前記通信データを組み立てるデータ受信部(データ受信部625)とを備え、前記中継通信設定部は、前記通信状況監視部が新規中継通信路の追加を当該中継通信設定部に指示する場合、追加する新規中継通信路の中継装置のアドレス情報を含む接続要求メッセージ(中継サーバ入替要求メッセージ:図5のステップS53)を前記相手先通信端末に送信する。
すなわち、データ送信部は、例えば、前記複数の中継装置のうちの何れの中継装置も、前記複数の分割データのうちの少なくとも1つの中継を行う通信により、それら複数の分割データを、それら複数の中継装置を介して送信先へ送信する。具体的には、データ送信部は、例えば、前記複数の分割データを、前記複数の分割データに含まれる分割データの個数と同じ個数の中継装置を介して、互いに異なる分割データは、互いに異なる中継装置を介して送信先へと送信する。
また、データ受信部は、前記複数の中継装置のうちの何れの中継装置も、前記複数の分割データのうちの少なくとも1つの中継を行う通信により、それら複数の分割データを、それら複数の中継装置を介して受信元から受信する。具体的には、データ受信部は、例えば、それら複数の分割データを、それら複数の分割データに含まれる分割データの個数と同じ個数の中継装置を介して、互いに異なる分割データは、互いに異なる中継装置を介して受信する。
そして、例えば、前記通信状況監視部は、前記相手先通信端末への前記複数の中継通信路の伝送遅延をそれぞれ監視し、伝送遅延が予め定められた許容条件(例えば、通信データが適切に通信されるための最小の条件)を満たさない中継通信路を検出して、当該検出がされた場合、検出がされた該当中継通信路の削除又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定又は、前記削除および前記新規中継通信路の設定の両方を、前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、前記相手先通信端末への前記複数の中継通信路でのパケットロスをそれぞれ監視し、パケットロスが予め定められた許容条件を満たさない中継通信路を検出して、当該検出がされた場合、検出がされた該当中継通信路の削除又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定又は、前記削除および前記新規中継通信路の設定の両方を、前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、前記通信データのトラヒック量に応じて、前記中継通信設定部が設定済みの前記中継通信路の削除、又は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定を前記中継通信設定部に指示する。
そして、例えば、前記通信状況監視部は、新規中継装置を介した前記相手先通信端末への新規中継通信路の設定が前記中継通信設定部によってされた場合に、設定された当該新規中継通信路を評価するための予め定められた評価用のデータ(テストデータ)を、当該新規中継通信路に送信することにより、前記新規中継通信路の通信状況を評価し、その評価の結果が予め定められた条件を満たす場合に、当該通信端末の上位アプリケーションからの通信データの送信に前記新規中継通信路を前記通信部に利用させる。
そして、前記通信状況監視部は、具体的には、前記中継装置を介して前記通信部が前記相手先通信端末に送信する前記複数の分割データのうちの一部の分割データが、前記相手先通信端末に受信されなかったこと(図4のパケットロスPL)を検出し、前記通信部は、前記通信状況監視部によって当該検出がされた場合に、当該検出がされた前記一部の分割データの前記送信に前記通信部が利用した中継装置(中継サーバb)とは異なる、他の中継装置(中継サーバa)を介する中継通信路を用いて、当該一部の分割データを再度前記相手先通信端末に送信する(図4のステップS43)。
そして、前記通信部は、前記再度の送信をするに際して、前記相手先通信端末への当該中継装置を介した通信での伝送遅延が、他の予め定められた前記中継装置(例えば中継サーバc)よりも小さい中継装置(中継サーバa)を選択し、選択される当該中継装置による中継通信路により前記再度の送信を行う。
そして、前記通信部は、当該通信端末の上位アプリケーション(上位アプリケーション機能部61等)の複数の通信データについて、それぞれ、その通信データと、当該通信データが分割された複数の分割データが通信される複数の中継通信路との対応関係を記憶し、上位アプリケーションから通信完了が当該通信部に通知された場合、又は、前記相手先通信端末から通信終了が当該通信部に通知された場合、通知がされた通信データに前記対応関係が対応付ける前記複数の中継通信路を全て解放する(図6参照)。
そして、前記中継通信設定部は、N個の前記中継装置のカテゴリをそれぞれ示すカテゴリ情報を記憶し、前記N個の中継装置のうちから、記憶される前記カテゴリ情報により、予め規定されたカテゴリ(例えば、中継通信路のセキュリティが高いカテゴリ)が示される中継装置が少なくとも1つ含まれる複数の中継装置を選択し、前記通信部は、前記カテゴリ情報により前記予め規定されたカテゴリが示されない前記中継装置(中継通信路のセキュリティが低い中継サーバ)を介して通信する分割データを暗号化して、暗号化された当該分割データを当該中継装置を介して送信し、暗号化された前記分割データを解読するために必要となる情報を、前記カテゴリ情報によって前記予め規定されたカテゴリが示される前記中継装置(中継通信路のセキュリティが高いカテゴリ中継サーバ)を介して送信する。
そして、前記通信部は、前記中継装置を介して送信する分割データを用いて、当該分割データの一部と当該冗長データとから、又は、当該冗長データのみから当該分割データが再現される冗長データを作成して、作成された前記冗長データを、当該分割データを送信した前記中継通信路と異なる他の前記中継通信路を介して前記相手先通信端末に送信する。
なお、冗長データは、例えば、RAID(Redundant Arrays of Inexpensive Disks)の冗長データによって、滅失したデータが再現されるのと同様に、その冗長データにより、その冗長データの基となった分割データが再現されるデータである。ここで、滅失とは、全部の滅失と、一部の滅失との両者が含まれる。なお、冗長データは、分割データの少なくとも一部(すなわち、一部又は全部)がなくとも、その冗長データからその分割データが再現されるデータである。
そして、前記中継通信設定部は、前記通信状況監視部が新規中継通信路の追加を当該中継通信設定部に指示する場合(例えば、中継サーバdの中継通信路が追加される図5の場合)、当該新規中継通信路の中継装置(中継サーバd)以外の他の中継装置のうちで、中継通信路を設定済みの中継装置(中継サーバa)を介して、前記接続要求メッセージを前記相手先通信端末に送信する。
そして、通信端末6Lは、当該通信端末が含まれるローカルネットワーク(例えば、ローカルネットワーク2p)のルータ(ルータ5p)に対して、NAT(Network Address Translation)設定を実行するNAT設定部(NAT設定部641)と、2台以上の他の通信端末(例えば通信端末6s、通信端末6t)から接続され、当該各他の通信端末の間における分割データの通信を中継する中継通信サーバ部(中継通信サーバ機能部64)とを備える。
なお、ここで、例えば、この通信システムは、次の態様を有する。すなわち、この通信システムは、着呼側通信端末6bの通信データの通信の相手先である相手先通信端末(発呼側通信端末6a)は、予め定められたN個の前記中継装置(N≧2)から複数の中継装置を選択し、前記選択した複数の中継装置を介した、当該通信端末と前記相手先通信端末との間の中継通信路をそれぞれ設定する中継通信設定部(発呼側通信端末6aの中継通信設定部621)を備え、着呼側通信端末6bの通信状況監視部622は、それらの複数の中継装置に含まれる各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果を算出して、算出された評価結果に基づいて、現在利用中の複数の中継通信路からの中継通信路の削除、又は、当該複数の中継通信路に対する中継通信路の追加、又は、前記削除および追加の両方を発呼側通信端末6aの中継通信設定部621に対して指示し、発呼側通信端末6aの中継通信設定部621は、着呼側通信端末6bの通信状況監視部622により指示されると、当該指示により示される処理を行う。
なお、上記の説明により、中継装置を介して相手先通信端末と通信を行う通信方法であって、通信データが分割された複数の分割データを、複数の中継装置を介して通信する通信ステップと、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、前記複数の分割データの通信が介する前記複数の中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視ステップとを備える通信方法が示される。また、上記の説明により、上記の通信ステップ等の各ステップをコンピュータ(通信端末)に実行させるためのコンピュータプログラムが示される。また、上記の説明により、上記の通信ステップ等の各ステップを実行する機能をそれぞれコンピュータ(通信端末)に実現させるためのコンピュータプログラムが示される。
ここで、「発明が解決しようとする課題」に記載された問題を解決し、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えるためには、通信端末が接続する中継機能を複数にし、各中継機能にかける中継負荷を分散させる方法が考えられる。しかし、通信端末が接続する中継機能を複数にすると、利用する中継機能毎に相手通信端末までの通信経路が異なることになり、通信遅延の揺らぎが大きくなる問題が発生する。さらに、通信中に利用している中継機能やその通信路に障害が発生して、通信端末間の通信が失敗する確率が高くなるという問題が発生する。
このため、これらの問題を解決するために、本実施の形態の通信端末(通信端末6、通信端末6L)は、上記の構成がとられる。
本実施の形態の通信端末は、ネットワーク上の中継機能部(中継サーバ4a〜4N等)を介して通信端末間で通信を行う通信端末であって、ネットワークからのデータを受信するデータ受信部(データ受信部625)と、通信に利用するネットワーク上の中継機能部(中継サーバ等)を選択し、中継用通信路を設定する中継通信設定部(中継通信設定部621)と、各中継機能部を通じた通信路毎に、相手先通信端末との通信状況を監視する通信状況監視部(通信状況監視部622)と、ネットワークに対してデータを送信するデータ送信部(データ送信部624)とを備え、中継通信設定部は、ネットワーク上で複数の中継機能部を選択し、前記中継機能部を介した相手先通信端末へ通信路を、選択した前記中継機能部それぞれについて設定し、データ送信部は、上位アプリケーション(上位アプリケーション機能部61)からの送信データを、中継通信設定部が設定した複数の通信路(中継通信路)を用いて送信し、データ受信部は、複数の通信路を介して受信したデータを組み立て、送信元の上位アプリケーションからの送信データを再現し、通信状況監視部は、前記中継機能部を介した相手先通信端末との通信路の通信状況を評価し、評価結果に基づき、前記通信路の削除、又は、新規中継機能部を介した相手先通信端末への通信路の設定、又は、その両方を中継通信設定部に指示し、前記通信状況監視部より指示を受けた中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路(中継通信路)の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信することを特徴とする。
この中継通信設定部が複数の中継通信路を設定し、データ送信部が複数の通信路を用いて、データを送信することにより、一本の中継通信路を流れるトラヒックを小さくすることが可能となり、中継機能で中継される通信帯域を狭く抑えることができる。
加えて、前記通信状況監視部が前記中継機能部を介した相手先通信端末との通信路の通信状況を評価し、評価結果に基づき、前記通信路の削除、新規中継機能部の追加を実行することにより、伝送遅延が大きい中継通信路やパケット廃棄率の高い中継通信路を削除し、代わりの中継通信路を設定する等の処理が可能となり、通信端末間の通信が安定する。
そして、中継通信設定部は、新規中継機能部を介した相手先通信端末への通信路の設定を実施する場合、前記新規中継機能部のアドレス情報を含む接続要求メッセージを相手先通信端末へ送信する。これにより、相手先通信端末は、ローカルネットワークからインターネットに向けて中継用通信路を接続することができる。そのため、ルータに対して動的NAT設定により、ユーザによる特別な設定が必要なく中継通信路を接続することが可能となる。
図9は、通信端末6(通信端末6a、通信端末6sなど)を示す図である。
すなわち、本通信端末(通信端末6a、6s、6Lなど)は、グローバルネットワーク(例えば、インターネット1)のアドレスが割り当てられた中継装置(図1の中継サーバ4a〜4N、図8の通信端末6p、通信端末6qなど)を介して、相手先通信端末(通信端末6b、通信端末6tなど)と通信を行う、ローカルネットワーク(ローカルネットワーク2a、2s)に接続された通信端末であって、複数の前記中継装置のアドレス宛にパケットを送信することにより、それぞれの前記中継装置が、前記通信端末(通信端末6a等)へパケットを送信する際に、その中継装置が前記通信端末から受信した前記パケットの送信元アドレス宛に、その中継装置が送信を行う通信路を設定する中継通信設定部(中継通信設定部621)と、通信データが分割された複数の分割データを、複数の前記中継装置を介して通信する通信部(通信処理部624aが有するデータ送信部624及び受信部625のうちの一方、通信処理部624a、又は、通信処理部624aが含まれる全体(通信部62p等))と、前記各中継装置毎に、それぞれ、その中継装置を介した前記分割データの通信の通信状況を監視し、監視する前記各通信状況を評価した評価結果に基づいて、複数の前記分割データの通信が介する複数の前記中継装置を、現在の複数の中継装置から、当該現在の複数の中継装置とは少なくとも一部が異なる新しい複数の中継装置に変更させる通信状況監視部(通信状況監視部622)とを備える通信端末である。
なお、通信処理部624aは、先述のデータ送信部624およびデータ受信部625を含んだ全体によってなる機能ブロックを示す。なお、図2および図7では、通信処理部624aの図示は省略される。
すなわち、本通信端末は、ローカルネットワーク(ローカルネットワーク2a、2s)に接続される。つまり、具体的には、例えば、本通信端末(通信端末6a、6s、6Lなど)および相手先通信端末(通信端末6b、6など)のそれぞれは、互いにP2P接続される複数のコンピュータ(図1の通信端末6a〜6b、中継サーバ4a〜4Nなど、図8の通信端末6p〜6t)のうちの1つである。
このため、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信する際には、動的NAT(Network Address Translation)設定が必要である。動的NAT設定では、本通信端末により、サーバ等にパケットが送信され、送信されたパケットがNAT機能により検出されて、検出したNAT機能が、アドレスの変換ルールを当該NAT機能に設定する。設定される変換ルールは、ローカルネットワークのプライベートアドレスと、グローバルネットワークのグローバルアドレスとの間の変換の変換ルールであり、つまり、本通信端末のプライベートアドレス、および、グローバルアドレスの間の変換ルールである。この変換ルールが設定されることにより、本通信端末とサーバとの間の通信路が設定される。つまり、動的NAT設定により、前記の変換ルールがNAT機能に自動設定されることにより、本通信端末とサーバ等との通信が可能となる。つまり、NAT機能による変換ルールの設定がされた後には、グローバルネットワークの前記サーバ等は、本通信端末から受信した前記パケットの送信元アドレス(送信元IPアドレス、ポート番号)宛にパケットを送信することで、前記サーバ等からローカルネットワークに接続された通信端末への通信が可能となる。
このような、NAT機能は、例えば、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)に実装される。また、ルータには、先に述べたNAT機能とは別に、ファイアウォール機能が実装される場合がある。
ここで、ファイアウォール機能とは、ルータを流れるパケットを監視し、許可されていないパケットを廃棄する機能である。ファイアウォール機能は、グローバルネットワーク(インターネット1)からローカルネットワーク(ローカルネットワーク2a、2s)への不正な侵入を防ぐ機能を提供する。
このファイアウォール機能においても、ローカルネットワークに接続された通信端末(通信端末6a、6sなど)が、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)宛にパケットを送信した場合等には、ルータのNAT機能と同様に、自動的にファイアウォール通過の許可条件が、そのファイアウォール機能に設定されることが知られている。このため、ローカルネットワークの通信端末(通信端末6a、6s)からグローバルネットワークのサーバ等(例えば中継装置)宛に通信を開始した場合、この設定がされて、サーバ等は、前記サーバが受信したパケットの受信元アドレス宛にパケットを送信することで、ファイアウォールを越えて、互いに通信することが可能となる。
そこで、中継通信設定部は、パケットを中継装置に送信して、送信されたパケットを、予め定められた通信制御部(NAT機能およびファイアウォール機能の一方又は両方)に検出させることにより、検出した通信制御部に通信路を設定させて、当該通信端末と、その中継装置との間の通信路を設定する。
なお、前記の例では、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)にNAT機能が実装されており、動的NAT設定により、アドレス変換が実行されることによって、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信可能となるネットワーク構成を例に説明した。しかし、ローカルネットワークとグローバルネットワークの境界に設置されるルータ(ルータ5a、ルータ5s)に、NAT機能が実装されておらず、ファイアウォール機能のみが実装されているネットワーク構成も考えられる。この場合、ローカルネットワークに接続された通信端末(通信端末6a、6sなど)が、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)宛にパケットを送信を行うことにより、自動的にファイアウォール通過の許可条件が、そのファイアウォール機能に設定され、本通信端末と、グローバルネットワーク(インターネット1)のサーバ等(例えば中継装置)とが通信可能となる。
なお、ここで、通信路を設定するとは、換言すれば、例えば、通信路を成立させることである。
なお、中継通信設定部は、例えば、具体的には、非特許文献1に挙げられた、TURN(Traversal Using Relay NAT)における、通信路の設定の処理と同様の処理により、中継装置との間の通信路を設定してもよい。
そして、本通信端末においては、中継通信設定部により、複数の中継装置(中継サーバ4a〜4N、通信端末6L(通信端末6p、通信端末6q)のうちの2つ以上)のそれぞれと、本通信端末との間の通信路(発呼側部分通信路)が設定されることにより、それぞれの中継装置を介した、本通信端末と、相手先通信端末(通信端末6b、通信端末6p〜6r、通信端末6t)との間の通信路(中継通信路)が設定される。
そして、通信部により、通信データが分割された複数の分割データが、設定されたそれぞれの通信路により通信されることにより、通信データが通信される。
そして、ここで、ルータ等による通信の中継(中継路の切換を含む)では、通常、予め通信路(ルーティングテーブル)が決められている運営になる。このため、特定の通信端末の通信開始・終了に1対1に対応させて、動的に、利用する通信路を選択、決定して、決定された通信路を設定することは行われない。
これに対して、本通信端末においては、一般端末(例えば通信端末6p、通信端末6q)を中継サーバにするため、利用する中継装置を、動的に決定することが必須要件になる。
そこで、本通信端末においては、本通信端末−中継サーバ群−相手先通信端末の通信路は、通信開始時および、通信中などに動的に決定、設定される。
すなわち、通信状況監視部により、通信の開始時、又は、通信中などにおいて、利用される複数の中継装置が、新しい複数の中継装置に変更される。これにより、利用されるそれぞれの中継装置が一般端末であるにも関わらず、複数の中継装置による、複数の通信路として、適切な複数の通信路が維持できて、適切に通信ができる。
このように、本通信端末においては、中継通信設定部と、通信部と、通信状況監視部とが組み合わせられ、組み合わせによる相乗効果が生じる。これに対して、従来例では、これら中継通信設定部等のうちの一部又は全部が欠けており、この相乗効果が得られない。本通信端末は、この相乗効果が得られる点で、従来例とは相違する。
中継サーバの中継処理により通信端末間を接続し、通信可能とするとき、中継機能を提供する通信端末に大きな処理負荷をかけることなく、各中継機能で中継される通信帯域を低く抑えることが可能な通信端末および、通信方式を提供できる。
また、通信端末と相手先通信端末との間における通信データの通信が高速になり、かつ、その通信の品質が安定するようにできる。
1 インターネット
2 ローカルネットワーク
3 センターサーバ
4a〜4N 中継サーバ
5、5a、5b ルータ
6、6a、6b 通信端末
61 上位アプリケーション機能部
62 中継クライアント部
63 通信I/F部
64 中継通信サーバ機能部
621 中継通信設定部
622 通信状況監視部
623 中継通信路情報記憶部
624 データ送信部
624a 通信処理部
625 データ受信部
641 NAT設定部
642 中継通信サーバ部