(57)【特許請求の範囲】
【請求項１】
第１のノードを介して通信ネットワークに接続するクライアント装置と、第２のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法であって、
クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、前記アプリケーションの通信を中継する通信クライアント手段を備え、
サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
前記クライアント装置の通信クライアント手段が、前記第１のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
前記サーバ装置の通信サーバ手段が、前記第２のノードを介してサーバ識別子を前記アドレス管理装置に送信するステップと、
前記アドレス管理装置が、前記クライアント識別子と前記第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけるとともに、前記サーバ識別子と前記第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、
前記クライアント装置の通信クライアント手段が、前記アプリケーション実行手段から、ＴＣＰコネクトを受信すると、前記サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第２のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、
前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続が可能になるステップと、
前記クライアント装置の通信クライアント手段が、前記ＵＤＰ接続を介して、前記サーバ装置に、接続リクエストを送信する手段と、
前記サーバ装置の通信サーバ手段が、前記第２のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にＴＣＰコネクトを送信して、前記サービス提供手段からＡｃｋを受信し、前記ＵＤＰ接続を介して、前記第１のノードに、前記Ａｃｋとコネクション識別子を含む接続応答を送信するステップと、
前記クライアント装置の通信クライアント手段が、前記サーバ装置の通信サーバ手段から前記第１のノードを介して前記接続応答を受信すると、前記アプリケーション実行手段に、前記Ａｃｋと前記コネクション識別子を送信するステップと、
前記クライアント装置の通信クライアント手段および前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第１のＴＣＰ接続が確立されるとともに、前記サーバ装置の通信サーバ手段および前記サービス提供手段との間で、前記コネクション識別子で特定される第２のＴＣＰ接続が確立されるステップ
を備えることを特徴とする通信方法。
【請求項２】
前記サーバ装置の通信サーバ手段が、前記ＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、下りデータを、前記クライアント装置の通信クライアント手段に送信するステップと、
前記クライアント装置の通信クライアント手段が、前記第１のＴＣＰ接続を介して前記下りデータを前記アプリケーション実行手段に送信するとともに、前記ＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータの受領確認を、前記サーバ装置の通信サーバ手段に送信するステップと、
をさらに備えることを特徴とする請求項１に記載の通信方法。
【請求項３】
前記クライアント装置が、第３のノードに接続すると、
前記クライアント装置の通信クライアント手段が、前記第３のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
前記アドレス管理装置が、前記クライアント識別子と前記第３のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、前記記憶装置に記憶するステップと、
前記サーバ装置の通信サーバ手段が、前記下りデータを送信後、前記クライアント装置の通信クライアント手段から前記受領確認を受信しない場合、前記クライアント識別子を前記アドレス管理装置に送信し、前記クライアント識別子に対応づけられた第３のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、
前記クライアント装置の前記通信クライアント手段および前記サーバ装置の前記通信サーバ手段の間で、前記第３のノードおよび前記第２のノードを介した新たなＵＤＰ接続が可能になるステップと、
前記サーバ装置の通信サーバ手段が、前記新たなＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータを、前記クライアント装置の通信クライアント手段に送信するステップ
をさらに備えることを特徴とする請求項２に記載の通信方法。
【請求項４】
前記サーバ装置の通信サーバ手段が、前記下りデータを暗号化して、前記クライアント装置の通信クライアント手段に送信するステップと、
前記クライアント装置の通信クライアント手段が、暗号化された前記下りデータを復号して、前記アプリケーション実行手段に送信するステップ
を備えることを特徴とする請求項２に記載の通信方法。
【請求項５】
前記サーバ装置の通信サーバ手段は、前記下りデータを複数のパケットに分割して送信する場合、前記制御ヘッダにパケットの順序を特定するシーケンス番号を含めるステップと、
前記クライアント装置の通信クライアント手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号を前記サーバ装置の通信サーバ手段に送信して、再送をリクエストするステップ
をさらに備えることを特徴とする請求項２に記載の通信方法。
【請求項６】
第１のノードを介して通信ネットワークに接続するクライアント装置と、第２のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムであって、
クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、前記アプリケーションの通信を中継する通信クライアント手段を備え、
サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
前記クライアント装置の前記通信クライアント手段は、
前記第１のノードを介してクライアント識別子をアドレス管理装置に送信して、前記アドレス管理装置に、前記クライアント識別子と前記第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、
前記アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第２のノードのＩＰアドレスおよびＵＤＰポートを取得し、前記サーバ装置の通信サーバ手段との間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続を確立した後、前記ＵＤＰ接続を介して、前記サーバ装置に、接続リクエストを送信し、前記サーバ装置の通信サーバ手段から、前記第１のノードを介してＴＣＰコネクトに対するＡｃｋとコネクション識別子を含む接続応答を受信するＵＤＰ制御手段と、
前記アプリケーション実行手段に、前記Ａｃｋと前記コネクション識別子を送信して、前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第１のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備え、
前記サーバ装置の前記通信サーバ手段は、
前記第２のノードを介してサーバ識別子を前記アドレス管理装置に送信して、前記アドレス管理装置に、前記サーバ識別子と前記第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、
前記クライアント装置の通信クライアント手段との間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続が可能になった後、前記第２のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にＴＣＰコネクトを送信して、前記サービス提供手段からＡｃｋを受信し、前記ＵＤＰ接続を介して、前記第１のノードに、前記Ａｃｋと前記コネクション識別子を含む接続応答を送信するＵＤＰ制御手段と、
前記サービス提供手段との間で、前記コネクション識別子で特定される第２のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える
ことを特徴とする通信システム。
【請求項７】
前記通信サーバ手段の前記ＵＤＰ制御手段は、
前記ＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、下りデータを、前記クライアント装置の通信クライアント手段に送信し、
前記通信クライアント手段の前記ＵＤＰ制御手段は、
前記第１のＴＣＰ接続を介して前記下りデータを前記アプリケーション実行手段に送信するとともに、前記ＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータの受領確認を、前記サーバ装置の通信サーバ手段に送信する
ことを特徴とする請求項６に記載の通信システム。
【請求項８】
前記クライアント装置が、第３のノードに接続すると、
前記通信クライアント手段の接続先登録手段は、前記第３のノードを介してクライアント識別子をアドレス管理装置に送信し、前記アドレス管理装置に、前記クライアント識別子と前記第３のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせ、
前記通信サーバ手段のＵＤＰ制御手段が、前記下りデータを送信後、前記クライアント装置の通信クライアント手段から前記受領確認を受信しない場合、前記クライアント識別子を前記アドレス管理装置に送信し、前記クライアント識別子に対応づけられた第３のノードのＩＰアドレスおよびＵＤＰポートを取得し、前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第３のノードおよび前記第２のノードを介した新たなＵＤＰ接続が可能になると、前記新たなＵＤＰ接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータを、前記クライアント装置の通信クライアント手段に送信する
ことを特徴とする請求項７に記載の通信システム。
【請求項９】
前記サーバ装置のＵＤＰ制御手段が、前記下りデータを暗号化して、前記クライアント装置の通信クライアント手段に送信し、
前記通信クライアント手段のＵＤＰ制御手段が、暗号化された前記下りデータを復号して、前記アプリケーション実行手段に送信する
ことを特徴とする請求項７に記載の通信システム。
【請求項１０】
前記通信サーバ手段のＵＤＰ制御手段は、前記下りデータを複数のパケットに分割して送信する場合、前記制御ヘッダにパケットの順序を特定するシーケンス番号を含め、
前記通信クライアント手段のＵＤＰ制御手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号を前記サーバ装置の通信サーバ手段に送信して、再送をリクエストする
ことを特徴とする請求項７に記載の通信システム。
【請求項１１】
第１のノードを介して通信ネットワークに接続するクライアント装置と、前記クライアント装置に接続するアプリケーション実行装置と、第２のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法であって、
アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、
クライアント装置は、前記アプリケーションの通信を中継する通信クライアント手段を備え、
サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
前記クライアント装置の通信クライアント手段が、前記第１のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
前記サーバ装置の通信サーバ手段が、前記第２のノードを介してサーバ識別子を前記アドレス管理装置に送信するステップと、
前記アドレス管理装置が、前記クライアント識別子と前記第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけるとともに、前記サーバ識別子と前記第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、
前記クライアント装置の通信クライアント手段が、前記アプリケーション実行手段から、ＴＣＰコネクトを受信すると、前記サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第２のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、
前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続が可能になるステップと、
前記クライアント装置の通信クライアント手段が、前記ＵＤＰ接続を介して、前記サーバ装置に、接続リクエストを送信する手段と、
前記サーバ装置の通信サーバ手段が、前記第２のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にＴＣＰコネクトを送信して、前記サービス提供手段からＡｃｋを受信し、前記ＵＤＰ接続を介して、前記第１のノードに、前記Ａｃｋとコネクション識別子を含む接続応答を送信するステップと、
前記クライアント装置の通信クライアント手段が、前記サーバ装置の通信サーバ手段から前記第１のノードを介して前記接続応答を受信すると、前記アプリケーション実行手段に、前記Ａｃｋと前記コネクション識別子を送信するステップと、
前記クライアント装置の通信クライアント手段および前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第１のＴＣＰ接続が確立されるとともに、前記サーバ装置の通信サーバ手段および前記サービス提供手段との間で、前記コネクション識別子で特定される第２のＴＣＰ接続が確立されるステップ
を備えることを特徴とする通信方法。
【請求項１２】
第１のノードを介して通信ネットワークに接続するクライアント装置と、前記クライアント装置に接続するアプリケーション実行装置と、第２のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムであって、
アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、
クライアント装置は、前記アプリケーションの通信を中継する通信クライアント手段を備え、
サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
前記クライアント装置の前記通信クライアント手段は、
前記第１のノードを介してクライアント識別子をアドレス管理装置に送信して、前記アドレス管理装置に、前記クライアント識別子と前記第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、
前記アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第２のノードのＩＰアドレスおよびＵＤＰポートを取得し、前記サーバ装置の通信サーバ手段との間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続を確立した後、前記ＵＤＰ接続を介して、前記サーバ装置に、接続リクエストを送信し、前記サーバ装置の通信サーバ手段から、前記第１のノードを介してＴＣＰコネクトに対するＡｃｋとコネクション識別子を含む接続応答を受信するＵＤＰ制御手段と、
前記アプリケーション実行手段に、前記Ａｃｋと前記コネクション識別子を送信して、前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第１のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備え、
前記サーバ装置の前記通信サーバ手段は、
前記第２のノードを介してサーバ識別子を前記アドレス管理装置に送信して、前記アドレス管理装置に、前記サーバ識別子と前記第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、
前記クライアント装置の通信クライアント手段との間で、前記第１のノードおよび前記第２のノードを介したＵＤＰ接続が可能になった後、前記第２のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にＴＣＰコネクトを送信して、前記サービス提供手段からＡｃｋを受信し、前記ＵＤＰ接続を介して、前記第１のノードに、前記Ａｃｋと前記コネクション識別子を含む接続応答を送信するＵＤＰ制御手段と、
前記サービス提供手段との間で、前記コネクション識別子で特定される第２のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間のシームレスな接続を実現する通信方法および通信システムに関する。
【背景技術】
【０００２】
昨今の通信ネットワークの発達に伴い、ＩＰアドレス数の確保やセキュリティの確保などの観点から、ＮＡＴ（Network Address Translation）が普及している。ＮＡＴ機能を搭載するルータやサーバは、プライベートアドレスとグローバルアドレスとを変換して、通信を中継する。【０００３】
またモバイル端末において、異なるアドレス空間の移動や、それに伴うアドレス変換が頻繁に発生する場合もある。具体的には、モバイル端末において、通信の高速化およびモバイルキャリア通信における負荷軽減などの観点から、モバイル端末が、モバイルキャリア通信とＷｉ−Ｆｉ通信を併用する場合が増えている。モバイル端末は、Ｗｉ−Ｆｉ通信可能なエリアでは、Ｗｉ−Ｆｉ基地局に接続し、それ以外のエリアでは、モバイルキャリア通信の基地局に接続する。またモバイル端末が、Ｗｉ−Ｆｉ基地局から、他のＷｉ−Ｆｉ基地局に接続する場合もある。【０００４】
一方データ通信の確実性とデータ遅延発生を防止するために、ＴＣＰおよびＵＤＰを併用するシステムがある（例えば特許文献１参照。）。この特許文献１に記載のシステムにおいては、中継ソフトウェアがアプリケーションからＴＣＰパケットをキャプチャし、ＵＤＰに変換してデータを転送する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−４９９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＴＣＰ接続でデータ通信を実現する場合、不都合が生じる場合がある。【０００７】
例えば、ＮＡＴをサーバ装置またはクライアント装置がＮＡＴ機能を介して通信ネットワークに接続する場合、接続先の装置のＩＰアドレスが動的に変更される場合がある。従って、接続元の装置が、接続先の装置のＩＰアドレスを把握することが困難であるので、接続先の装置とＴＣＰ接続できない場合、あるいはＴＣＰ接続が切断される場合がある。【０００８】
また可搬性を有するモバイル端末が、例えばモバイルキャリア通信とＷｉ−Ｆｉ通信とを切り替える場合、その切り替えるタイミングでＴＣＰ接続が切断され、データが喪失される場合がある。このほか、ユーザの予期しない状況で、ＴＣＰ接続が切断される場合がある。【０００９】
また特許文献１に記載のシステムは、データ通信の確実性とデータ遅延の発生の防止に役立つものの、可搬性を有する端末におけるシームレスな接続を実現することはできないと考えられる。【００１０】
そこで本発明の目的は、装置間のシームレスな接続を実現する通信方法および通信システムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の特徴は、第１のノードを介して通信ネットワークに接続するクライアント装置と、第２のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法に関する。本発明の第１の特徴に係る通信方法において、クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の実施の形態に係る通信方法は、クライアント装置の通信クライアント手段が、第１のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、サーバ装置の通信サーバ手段が、第２のノードを介してサーバ識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけるとともに、サーバ識別子と第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、クライアント装置の通信クライアント手段が、アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第２のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第１のノードおよび第２のノードを介したＵＤＰ接続が可能になるステップと、クライアント装置の通信クライアント手段が、ＵＤＰ接続を介して、サーバ装置に、接続リクエストを送信する手段と、サーバ装置の通信サーバ手段が、第２のノードを介して接続リクエストを受信すると、サービス提供手段にＴＣＰコネクトを送信して、サービス提供手段からＡｃｋを受信し、ＵＤＰ接続を介して、第１のノードに、Ａｃｋとコネクション識別子を含む接続応答を送信するステップと、クライアント装置の通信クライアント手段が、サーバ装置の通信サーバ手段から第１のノードを介して接続応答を受信すると、アプリケーション実行手段に、Ａｃｋとコネクション識別子を送信するステップと、クライアント装置の通信クライアント手段およびアプリケーション実行手段との間で、コネクション識別子で特定される第１のＴＣＰ接続が確立されるとともに、サーバ装置の通信サーバ手段およびサービス提供手段との間で、コネクション識別子で特定される第２のＴＣＰ接続が確立されるステップを備える。【００１２】
ここでサーバ装置の通信サーバ手段が、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信するステップと、クライアント装置の通信クライアント手段が、第１のＴＣＰ接続を介して下りデータをアプリケーション実行手段に送信するとともに、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置の通信サーバ手段に送信するステップと、をさらに備えても良い。【００１３】
またクライアント装置が、第３のノードに接続すると、クライアント装置の通信クライアント手段が、第３のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第３のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、サーバ装置の通信サーバ手段が、下りデータを送信後、クライアント装置の通信クライアント手段から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信し、クライアント識別子に対応づけられた第３のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第３のノードおよび第２のノードを介した新たなＵＤＰ接続が可能になるステップと、サーバ装置の通信サーバ手段が、新たなＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信するステップをさらに備えても良い。【００１４】
さらにサーバ装置の通信サーバ手段が、下りデータを暗号化して、クライアント装置の通信クライアント手段に送信するステップと、クライアント装置の通信クライアント手段が、暗号化された下りデータを復号して、アプリケーション実行手段に送信するステップを備えても良い。【００１５】
さらにサーバ装置の通信サーバ手段は、下りデータを複数のパケットに分割して送信する場合、制御ヘッダにパケットの順序を特定するシーケンス番号を含めるステップと、クライアント装置の通信クライアント手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号をサーバ装置の通信サーバ手段に送信して、再送をリクエストするステップをさらに備えても良い。【００１６】
本発明の第２の特徴は、第１のノードを介して通信ネットワークに接続するクライアント装置と、第２のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに関する。即ち本発明の第２の特徴に係る通信システムにおいて、クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の第２の特徴に係る通信システムにおいて、クライアント装置の通信クライアント手段は、第１のノードを介してクライアント識別子をアドレス管理装置に送信して、アドレス管理装置に、クライアント識別子と第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第２のノードのＩＰアドレスおよびＵＤＰポートを取得し、サーバ装置の通信サーバ手段との間で、第１のノードおよび第２のノードを介したＵＤＰ接続を確立した後、ＵＤＰ接続を介して、サーバ装置に、接続リクエストを送信し、サーバ装置の通信サーバ手段から、第１のノードを介してＴＣＰコネクトに対するＡｃｋとコネクション識別子を含む接続応答を受信するＵＤＰ制御手段と、アプリケーション実行手段に、Ａｃｋとコネクション識別子を送信して、アプリケーション実行手段との間で、コネクション識別子で特定される第１のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える。サーバ装置の通信サーバ手段は、第２のノードを介してサーバ識別子をアドレス管理装置に送信して、アドレス管理装置に、サーバ識別子と第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、クライアント装置の通信クライアント手段との間で、第１のノードおよび第２のノードを介したＵＤＰ接続が可能になった後、第２のノードを介して接続リクエストを受信すると、サービス提供手段にＴＣＰコネクトを送信して、サービス提供手段からＡｃｋを受信し、ＵＤＰ接続を介して、第１のノードに、Ａｃｋとコネクション識別子を含む接続応答を送信するＵＤＰ制御手段と、サービス提供手段との間で、コネクション識別子で特定される第２のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える。【００１７】
ここで通信サーバ手段のＵＤＰ制御手段は、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信し、通信クライアント手段のＵＤＰ制御手段は、第１のＴＣＰ接続を介して下りデータをアプリケーション実行手段に送信するとともに、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置の通信サーバ手段に送信しても良い。【００１８】
またクライアント装置が、第３のノードに接続すると、通信クライアント手段の接続先登録手段は、第３のノードを介してクライアント識別子をアドレス管理装置に送信し、アドレス管理装置に、クライアント識別子と第３のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせ、通信サーバ手段のＵＤＰ制御手段が、下りデータを送信後、クライアント装置の通信クライアント手段から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信し、クライアント識別子に対応づけられた第３のノードのＩＰアドレスおよびＵＤＰポートを取得し、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第３のノードおよび第２のノードを介した新たなＵＤＰ接続が可能になると、新たなＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信しても良い。【００１９】
さらにサーバ装置のＵＤＰ制御手段が、下りデータを暗号化して、クライアント装置の通信クライアント手段に送信し、通信クライアント手段のＵＤＰ制御手段が、暗号化された下りデータを復号して、アプリケーション実行手段に送信しても良い。【００２０】
さらに通信サーバ手段のＵＤＰ制御手段は、下りデータを複数のパケットに分割して送信する場合、制御ヘッダにパケットの順序を特定するシーケンス番号を含め、通信クライアント手段のＵＤＰ制御手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号をサーバ装置の通信サーバ手段に送信して、再送をリクエストしても良い。【００２１】
本発明の第１の特徴は、第１のノードを介して通信ネットワークに接続するクライアント装置と、クライアント装置に接続するアプリケーション実行装置と、第２のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法に関する。本発明の第１の特徴に係る通信方法において、アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、クライアント装置は、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の実施の形態に係る通信方法は、クライアント装置の通信クライアント手段が、第１のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、サーバ装置の通信サーバ手段が、第２のノードを介してサーバ識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけるとともに、サーバ識別子と第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、クライアント装置の通信クライアント手段が、アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第２のノードのＩＰアドレスおよびＵＤＰポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第１のノードおよび第２のノードを介したＵＤＰ接続が可能になるステップと、クライアント装置の通信クライアント手段が、ＵＤＰ接続を介して、サーバ装置に、接続リクエストを送信する手段と、サーバ装置の通信サーバ手段が、第２のノードを介して接続リクエストを受信すると、サービス提供手段にＴＣＰコネクトを送信して、サービス提供手段からＡｃｋを受信し、ＵＤＰ接続を介して、第１のノードに、Ａｃｋとコネクション識別子を含む接続応答を送信するステップと、クライアント装置の通信クライアント手段が、サーバ装置の通信サーバ手段から第１のノードを介して接続応答を受信すると、アプリケーション実行手段に、Ａｃｋとコネクション識別子を送信するステップと、クライアント装置の通信クライアント手段およびアプリケーション実行手段との間で、コネクション識別子で特定される第１のＴＣＰ接続が確立されるとともに、サーバ装置の通信サーバ手段およびサービス提供手段との間で、コネクション識別子で特定される第２のＴＣＰ接続が確立されるステップを備える。【００２２】
本発明の第２の特徴は、第１のノードを介して通信ネットワークに接続するクライアント装置と、クライアント装置に接続するアプリケーション実行装置と、第２のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに関する。即ち本発明の第２の特徴に係る通信システムにおいて、アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、クライアント装置は、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の第２の特徴に係る通信システムにおいて、クライアント装置の通信クライアント手段は、第１のノードを介してクライアント識別子をアドレス管理装置に送信して、アドレス管理装置に、クライアント識別子と第１のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、アプリケーション実行手段から、ＴＣＰコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第２のノードのＩＰアドレスおよびＵＤＰポートを取得し、サーバ装置の通信サーバ手段との間で、第１のノードおよび第２のノードを介したＵＤＰ接続を確立した後、ＵＤＰ接続を介して、サーバ装置に、接続リクエストを送信し、サーバ装置の通信サーバ手段から、第１のノードを介してＴＣＰコネクトに対するＡｃｋとコネクション識別子を含む接続応答を受信するＵＤＰ制御手段と、アプリケーション実行手段に、Ａｃｋとコネクション識別子を送信して、アプリケーション実行手段との間で、コネクション識別子で特定される第１のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える。サーバ装置の通信サーバ手段は、第２のノードを介してサーバ識別子をアドレス管理装置に送信して、アドレス管理装置に、サーバ識別子と第２のノードのＩＰアドレスおよびＵＤＰポートを対応づけさせる接続先登録手段と、クライアント装置の通信クライアント手段との間で、第１のノードおよび第２のノードを介したＵＤＰ接続が可能になった後、第２のノードを介して接続リクエストを受信すると、サービス提供手段にＴＣＰコネクトを送信して、サービス提供手段からＡｃｋを受信し、ＵＤＰ接続を介して、第１のノードに、Ａｃｋとコネクション識別子を含む接続応答を送信するＵＤＰ制御手段と、サービス提供手段との間で、コネクション識別子で特定される第２のＴＣＰ接続を確立するＴＣＰセッション制御手段と、を備える。
【発明の効果】
【００２３】
これにより本発明は、装置間のシームレスな接続を実現する通信方法および通信システム  を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の実施の形態に係る通信システムのシステム構成を説明する図である。
【図２】図２は、本発明の実施の形態に係る通信システムにおいて、送受信されるパケットの構成を説明する図である。
【図３】図３は、本発明の実施の形態に係るクライアント装置のハードウェア構成および機能ブロックを説明する図である。
【図４】図４は、本発明の実施の形態に係るクライアント装置のポート接続対応データのデータ構造とデータの一例を説明する図である。
【図５】図５は、本発明の実施の形態に係るサーバ装置のハードウェア構成および機能ブロックを説明する図である。
【図６】図６は、本発明の実施の形態に係るアドレス管理装置のハードウェア構成および機能ブロックを説明する図である。
【図７】図７は、本発明の実施の形態に係るアドレス管理装置のアドレス変換データのデータ構造とデータの一例を説明する図である。
【図８】図８は、本発明の実施の形態に係る通信方法における登録処理を説明するシーケンス図である。
【図９】図９は、本発明の実施の形態に係る通信方法における接続処理を説明するシーケンス図である。
【図１０】図１０は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図である。
【図１１】図１１は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図であって、特に、クライアント装置の接続先が変更した場合の処理を説明する図である。
【図１２】図１２は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図であって、特に、フロー制御を説明する図である。
【図１３】図１３は、本発明の変形例に係る通信システムのシステム構成を説明する図である。
【図１４】図１４は、本発明の変形例に係るクライアント装置およびアプリケーション実行装置のハードウェア構成および機能ブロックを説明する図である。
【発明を実施するための形態】
【００２５】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００２６】
（通信システム）
図１を参照して、本発明の実施の形態に係る通信システム９を説明する。通信システム９は、クライアント装置１、サーバ装置２、アドレス管理装置３、第１のノード４ａ、第２のノード４ｂおよび第３のノード４ｃを備える。アドレス管理装置３、第１のノード４ａ、第２のノード４ｂおよび第３のノード４ｃは、通信ネットワーク５を介して相互に通信可能に接続される。クライアント装置１は、第１のノード４ａを介して通信ネットワーク５に接続し、サーバ装置２は、第２のノード４ｂを介して通信ネットワーク５に接続する。
【００２７】
通信ネットワーク５は、インターネットなどであって、装置間を相互に通信可能に接続する。本発明の実施の形態において通信ネットワーク５に接続される装置、具体的には、アドレス管理装置３、第１のノード４ａ、第２のノード４ｂおよび第３のノード４ｃは、グローバルアドレスで通信する。
【００２８】
クライアント装置１は、可搬性を有する端末であって、具体的には、ノートパソコン、携帯電話、スマートフォン、タブレット端末などである。図１に示す例においてクライアント装置１は、第１のノード４ａに接続するが、移動により、第３のノード４ｃなどに接続することが可能である。なお、本発明の実施の形態においては、クライアント装置１が可搬性を有する場合を説明するが、可搬性を有さないデスクトップパソコンなどにおいても、本発明の実施の形態に係る通信方法を適用することができる。
【００２９】
クライアント装置１は、メーラやブラウザなどのアプリケーションをインストールしている。クライアント装置１は、そのアプリケーションを実行する際に、サーバ装置２とデータを送受信する。
【００３０】
サーバ装置２は、クライアント装置１で実行されるアプリケーションとデータを送受信する。クライアント装置１のアプリケーションがメーラの場合、サーバ装置２は、メールサーバとして機能し、ブラウザの場合、ウェブサーバとして機能する。
【００３１】
なお、図１に示す例において、サーバ装置２がサーバ機能を担い、クライアント装置１がクライアント機能を担う場合を説明するが、これに限られない。例えば、通信内容によっては、可搬性を有するクライアント装置１が、サーバ装置２に対するサーバ機能を担う場合もある。
【００３２】
アドレス管理装置３は、本発明の実施の形態に係る通信方法を実現するために、各装置の識別子と、各装置が接続するノードのアドレスおよびポート番号とを対応づけて保持する。アドレス管理装置３は、各装置が接続するノードが変更されると、新しいノードのアドレスおよびポート番号を対応づけて保持する。
【００３３】
第１のノード４ａは、ＮＡＴ機能を有するネットワーク機器であって、例えば、ゲートウェイサーバ、ルータ、モバイルキャリア通信の基地局、Ｗｉ−Ｆｉ基地局などである。第２のノード４ｂおよび第３のノード４ｃも同様である。
【００３４】
第１のノード４ａは、クライアント装置１とはプライベートアドレスで通信し、通信ネットワーク５とはグローバルアドレスで通信する。従って、第１のノード４ａは、通信ネットワーク５から受信したパケットを、プライベートアドレスに変換して、クライアント装置１に送信し、クライアント装置１から受信したパケットを、グローバルアドレスに変換して、通信ネットワーク５に送信する。
【００３５】
第２のノード４ｂは、サーバ装置２とはプライベートアドレスで通信し、通信ネットワーク５とはグローバルアドレスで通信する。従って、第２のノード４ｂは、通信ネットワーク５から受信したパケットを、プライベートアドレスに変換して、サーバ装置２に送信し、サーバ装置２から受信したパケットを、グローバルアドレスに変換して、通信ネットワーク５に送信する。
【００３６】
図１に示す例において、第１のノード４ａのグローバルアドレスは“ＡＤ１”で、ＵＤＰポート番号は、“ＰＴ１”である。第２のノード４ｂのグローバルアドレスは“ＡＤ２”で、ＵＤＰポート番号は、“ＰＴ２”である。第３のノード４ｃのグローバルアドレスはＡＤ３で、ＵＤＰポート番号は、“ＰＴ３”である。またクライアント装置のクライアント識別子は、“ＩＤ＿Ｃ”で、サーバ装置２のサーバ識別子は、“ＩＤ＿Ｓ”である。
【００３７】
（パケット）
図２を参照して、クライアント装置１およびサーバ装置２間で送受信されるパケットを説明する。
【００３８】
クライアント装置１は、アプリケーションを実行するアプリケーション実行手段１６０と、アプリケーションの通信を中継する通信クライアント手段１５０を備える。サーバ装置２は、アプリケーションに対応するサービスを提供するサービス提供手段２６０と、サービスの通信を中継する通信サーバ手段２５０を備える。
【００３９】
クライアント装置１において、アプリケーション実行手段１６０から通信クライアント手段１５０に、ＴＣＰヘッダおよび上りデータを含むパケットＰ１が送信される。このＴＣＰヘッダは、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレスおよび送信先ポート番号を含み、送信元は、アプリケーション実行手段１６０であって、送信先は通信クライアント手段１５０である。
【００４０】
クライアント装置１の通信クライアント手段１５０から、サーバ装置２の通信サーバ手段２５０に、ＵＤＰヘッダ、制御ヘッダおよび上りデータを含むパケットＰ２が送信される。通信クライアント手段１５０は、パケットＰ１の上りデータに、制御ヘッダおよびＵＤＰヘッダを付して、通信サーバ手段２５０に送信する。制御ヘッダは、本発明の実施の形態に係る通信方法を実現するためのヘッダであって、ＵＤＰペイロードの一部を構成する。制御ヘッダは、コネクション識別子およびシーケンス番号を含む。コネクション識別子は、アプリケーション実行手段１６０およびサービス提供手段２６０間で確立されるＴＣＰ接続を特定する識別子である。シーケンス番号は、パケットの順序を特定する識別子である。ＵＤＰヘッダは、通信クライアント手段１５０および通信サーバ手段２５０でＵＤＰ接続するためのヘッダである。
【００４１】
サーバ装置２において、通信サーバ手段２５０からサービス提供手段２６０に、ＴＣＰヘッダおよび上りデータを含むパケットＰ３が送信される。通信サーバ手段２５０は、パケットＰ２の上りデータに、ＴＣＰヘッダを付して、サービス提供手段２６０に送信する。このＴＣＰヘッダは、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレスおよび送信先ポート番号を含み、送信元は、通信サーバ手段２５０であって、送信先はアプリケーション実行手段１６０である。
【００４２】
サービス提供手段２６０は、上りデータを処理して下りデータを生成する。サーバ装置２において、サービス提供手段２６０から通信サーバ手段２５０に、この下りデータとＴＣＰヘッダを含むパケットＰ４が送信される。通信サーバ手段２５０は、パケットＰ４の下りデータに、ＵＤＰヘッダおよび制御ヘッダを付したパケットＰ５を、通信クライアント手段１５０に送信する。通信クライアント手段１５０は、パケットＰ５の下りデータに、ＴＣＰヘッダを付したパケットＰ６を、アプリケーション実行手段１６０に送信する。
【００４３】
このように、本発明の実施の形態において、アプリケーション実行手段１６０およびサービス提供手段２６０は、ＴＣＰパケットで送受信する。また、通信クライアント手段および通信サーバ手段２５０は、ＴＣＰ接続を識別するコネクション識別子を付したＵＤＰパケットで送受信する。
【００４４】
（クライアント装置）
図３を参照して、本発明の実施の形態に係るクライアント装置１を説明する。クライアント装置１は、処理装置１１０、記憶装置１２０、通信制御装置１３０および入出力装置１４０を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図３に示す各機能を実装する。
【００４５】
記憶装置１２０は、ポート接続先対応データ１２１を記憶する。ポート接続先対応データ１２１は、図４に示すように、ポート番号と、サーバ識別子とを対応づけたデータである。サーバ識別子は、アプリケーション実行手段１６０からそのポート番号に接続があった場合に、ＵＤＰの接続先となるサーバ装置２のサーバ識別子である。
【００４６】
処理装置１１０は、通信クライアント手段１５０およびアプリケーション実行手段１６０を備える。
【００４７】
アプリケーション実行手段１６０は、第１のアプリケーション実行手段１６１、第２のアプリケーション実行手段１６２、第３のアプリケーション実行手段１６３と、それぞれの実行手段でアプリケーションを実行可能である。各アプリケーションは、通信ネットワーク５を介してサーバ装置２に接続して利用され、例えば、メーラ、ブラウザ等である。アプリケーション実行手段１６０は、アプリケーションを実行する際、通信クライアント手段１５０のＴＣＰセッション制御手段１５２に、ＩＰアドレスおよびポート番号を指定して、接続する。ここで、個々のアプリケーションによって、指定するポート番号が識別可能に設定される。ＴＣＰセッション制御手段１５２は、アプリケーション実行手段１６０から接続されたポート番号によって、ポート接続先対応データ１２１を参照して、接続先のサーバ装置２を識別することができる。
【００４８】
通信クライアント手段１５０は、接続先登録手段１５１、ＴＣＰセッション制御手段１５２およびＵＤＰ制御手段１５３を備える。
【００４９】
接続先登録手段１５１は、第１のノード４ａを介してクライアント識別子をアドレス管理装置３に送信する。これによりアドレス管理装置３は、クライアント識別子と第１のノード４ａのＩＰアドレスおよびＵＤＰポートを対応づけて記憶する。
【００５０】
接続先登録手段１５１は、クライアント装置１が接続するノードが変更する度に実行される。具体的には、クライアント装置１が、第１のノード４ａとの接続を切断し第３のノード４ｃに接続すると、接続先登録手段１５１は、第３のノード４ｃを介してクライアント識別子をアドレス管理装置３に送信する。これによりアドレス管理装置３は、クライアント識別子と第３のノード４ｃのＩＰアドレスおよびＵＤＰポートを対応づけて記憶する。
【００５１】
ＴＣＰセッション制御手段１５２は、アプリケーション実行手段１６０からＴＣＰコネクトを取得すると、ポート接続先対応データ１２１を読み出して、ＴＣＰコネクトを受信したポート番号に基づいて、接続先のサーバ装置２のサーバ識別子を取得する。ＴＣＰセッション制御手段１５２は、サーバ識別子と、ＴＣＰコネクトとをＵＤＰ制御手段１５３に送信する。ＵＤＰ制御手段１５３から、ＴＣＰコネクトに対応するＡｃｋと、このＴＣＰコネクトにより確立されるＴＣＰセッションを識別するコネクション識別子を受信すると、ＴＣＰセッション制御手段１５２は、アプリケーション実行手段１６０に、ＴＣＰパケットで、Ａｃｋとコネクション識別子を送信する。これにより、ＴＣＰセッション制御手段１５２およびアプリケーション実行手段１６０との間で、コネクション識別子で特定される第１のＴＣＰ接続が確立される。
【００５２】
ＵＤＰ制御手段１５３は、サーバ装置２の通信サーバ手段２５０との間でのＵＤＰ接続による通信を制御する。ＵＤＰ制御手段１５３は、ＴＣＰセッション制御手段１５２から受信したデータについて、ＵＤＰヘッダと制御ヘッダを付して第１のノード４ａに送信する。またＵＤＰ制御手段１５３は、第１のノード４ａから受信したデータについて、ＴＣＰヘッダを付してアプリケーション実行手段１６０に入力する。
【００５３】
具体的にはＵＤＰ制御手段１５３は、接続先のサーバ装置２の通信サーバ手段２５０に接続するアドレスおよびポート番号を特定できると、通信サーバ手段２５０との間で、パンチング処理などにより、ＵＤＰ接続を可能な状態にし、そのＵＤＰ接続に関連する処理を実行する。さらにＵＤＰ制御手段１５３は、アプリケーション実行手段１６０から、ＴＣＰコネクトを受信すると、サーバ識別子をアドレス管理装置３に送信し、サーバ識別子に対応づけられた第２のノードのＩＰアドレスおよびＵＤＰポートを取得する。ＵＤＰ制御手段１５３は、サーバ装置２の通信サーバ手段２５０との間で、第１のノード４ａおよび第２のノード４ｂを介したＵＤＰ接続が可能になった後、ＵＤＰ接続を介して、サーバ装置２に、接続リクエストを送信し、サーバ装置２の通信サーバ手段２５０から、第１のノード４ａを介してＴＣＰコネクトに対するＡｃｋとコネクション識別子を含む接続応答を受信する。ＵＤＰ制御手段１５３は、受信した接続応答を、ＴＣＰセッション制御手段１５２に入力する。
【００５４】
ＵＤＰ制御手段１５３は、サーバ装置２から下りデータを受信すると、第１のＴＣＰ接続を介して下りデータをアプリケーション実行手段１６０に送信する。さらにＵＤＰ制御手段１５３は、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置２の通信サーバ手段２５０に送信する。
【００５５】
ＵＤＰ制御手段１５３は、クライアント装置１の接続先のノードが変更になった場合、新しい接続先ノードを介して、パンチング処理などにより、サーバ装置２の通信サーバ手段２５０とのＵＤＰ接続を可能な状態にする。
【００５６】
さらにＵＤＰ制御手段１５３は、ＴＣＰが提供する同様の機能を提供するために、暗号化手段１５４、復号手段１５５および再送判定手段１５６を備える。
【００５７】
暗号化手段１５４は、アプリケーション実行手段１６０から入力される上りデータを、サーバ装置２の通信サーバ手段２５０が既知の方法で暗号化して送信する。復号手段１５５は、サーバ装置２から送信される暗号化済み下りデータを、復号してアプリケーション実行手段１６０に入力する。
【００５８】
再送判定手段１５６は、データを複数のパケットに分割して送信する場合、各パケットを順序通りにアプリケーション実行手段１６０に入力するよう制御する。さらにサーバ装置２からパケットの再送要求を受信すると、再送対象のパケットをサーバ装置２に送信する。
【００５９】
上りデータを複数のパケットに分割して送信する場合、再送判定手段１５６は、制御ヘッダにパケットの順序を特定するシーケンス番号を含めて、サーバ装置２に送信するとともに、シーケンス番号とパケットのデータとを対応づけて記憶装置１２０に記憶する。さらにサーバ装置２から未受信のシーケンス番号を受信すると、そのシーケンス番号に対応するデータを記憶装置１２０から抽出し、サーバ装置２の通信サーバ手段２５０に送信する。
【００６０】
下りデータが複数のパケットに分割されて送信する場合、再送判定手段１５６は、順次受信するパケットの制御ヘッダ中のシーケンス番号を確認し、未受信のシーケンス番号があるか否か判定する。未受信のシーケンス番号がない場合、受信したパケットをアプリケーション実行手段１６０に入力する。一方未受信のシーケンス番号がある場合、未受信のパケットのシーケンス番号をサーバ装置２の通信サーバ手段２５０に送信して、再送をリクエストする。
【００６１】
（サーバ装置）
図５を参照して、本発明の実施の形態に係るサーバ装置２を説明する。サーバ装置２は、処理装置２１０、記憶装置２２０および通信制御装置２３０を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図５に示す各機能を実装する。
【００６２】
処理装置２１０は、通信サーバ手段２５０およびサービス提供手段２６０を備える。
【００６３】
サービス提供手段２６０は、クライアント装置１のアプリケーションから接続を受け、クライアント装置１にサービスを提供し、具体的には、メールサーバ機能やウェブサーバ機能を実現する。
【００６４】
通信サーバ手段２５０は、接続先登録手段２５１、ＴＣＰセッション制御手段２５２およびＵＤＰ制御手段２５３を備える。
【００６５】
接続先登録手段２５１は、第２のノード４ｂを介してサーバ識別子をアドレス管理装置３に送信する。これによりアドレス管理装置３は、サーバ識別子と第２のノード４ｂのＩＰアドレスおよびＵＤＰポートを対応づけて記憶する。接続先登録手段２５１は、サーバ装置２が接続するノードが変更する度に実行される。
【００６６】
ＴＣＰセッション制御手段２５２は、ＵＤＰ制御手段２５３から、クライアント装置１のＴＣＰコネクトを受信すると、サービス提供手段２６０にＴＣＰコネクトをＴＣＰパケットで送信して、コネクション識別子を採番する。サービス提供手段２６０からＴＣＰコネクトに対するＡｃｋを受信すると、コネクション識別子とＡｃｋとを、ＵＤＰ制御手段２５３に入力する。これにより、ＴＣＰセッション制御手段２５２およびサービス提供手段２６０との間で、コネクション識別子で特定される第２のＴＣＰ接続が確立される。
【００６７】
ＵＤＰ制御手段２５３は、クライアント装置１の通信クライアント手段１５０との間でのＵＤＰ接続による通信を制御する。ＵＤＰ制御手段２５３は、ＴＣＰセッション制御手段２５２から受信したデータに、ＵＤＰヘッダと制御ヘッダを付して、第２のノード４ｂに送信する。またＵＤＰ制御手段２５３は、第２のノード４ｂから受信したデータについて、ＴＣＰヘッダを付してサービス提供手段２６０に入力する。
【００６８】
具体的にはＵＤＰ制御手段２５３は、接続先のクライアント装置１の通信クライアント手段１５０に接続するアドレスおよびポート番号を特定できると、通信サーバ手段２５０との間で、パンチング処理などにより、ＵＤＰ接続を可能な状態にし、そのＵＤＰ接続に関連する処理を実行する。さらにＵＤＰ制御手段２５３は、クライアント装置１の通信クライアント手段１５０との間で、第１のノード４ａおよび第２のノード４ｂを介したＵＤＰ接続が可能になった後、第２のノード４ｂを介して接続リクエストを受信すると、サービス提供手段２６０にＴＣＰコネクトを送信する。その後ＵＤＰ制御手段２５３は、コネクション識別子を採番し、サービス提供手段２６０からＡｃｋを受信すると、ＵＤＰ接続を介して、第１のノード４ａに、Ａｃｋとコネクション識別子を含む接続応答を送信する。さらにＵＤＰ制御手段２５３は、サービス提供手段２６０から下りデータを受信すると、ＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置１の通信クライアント手段１５０に送信する。
【００６９】
さらに通信サーバ手段２５０のＵＤＰ制御手段２５３は、クライアント装置１の移動などにより接続先のノードが変更になった場合に、変更先のノードのアドレスおよびポート番号を、アドレス管理装置３から取得する。具体的にはＵＤＰ制御手段２５３が、下りデータを送信後、クライアント装置１の通信クライアント手段１５０から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信する。ＵＤＰ制御手段２５３は、クライアント識別子に対応づけられた第３のノード４ｃのＩＰアドレスおよびＵＤＰポートを取得する。クライアント装置１の通信クライアント手段１５０およびサーバ装置２の通信サーバ手段２５０の間で、第３のノード４ｃおよび第２のノード４ｂを介した新たなＵＤＰ接続が可能になると、ＵＤＰ制御手段２５３は、新たなＵＤＰ接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置１の通信クライアント手段１５０に送信する。
【００７０】
さらにＵＤＰ制御手段２５３は、ＴＣＰが提供する同様の機能を提供するために、暗号化手段２５４、復号手段２５５および再送判定手段２５６を備える。
【００７１】
暗号化手段２５４は、サービス提供手段２６０から入力される下りデータを、クライアント装置１の通信クライアント手段１５０が既知の方法で暗号化して送信する。復号手段２５５は、クライアント装置１から送信される暗号化済み上りデータを、復号してサービス提供手段２６０に入力する。
【００７２】
再送判定手段２５６は、データを複数のパケットに分割して送信する場合、各パケットを順序通りにサービス提供手段２６０に入力するよう制御する。さらにクライアント装置１からパケットの再送要求を受信すると、再送対象のパケットをクライアント装置１に送信する。
【００７３】
上りデータが複数のパケットに分割されて送信する場合、再送判定手段２５６は、順次受信するパケットの制御ヘッダ中のシーケンス番号を確認し、未受信のシーケンス番号があるか否か判定する。未受信のシーケンス番号がない場合、受信したパケットをサービス提供手段２６０に入力する。一方未受信のシーケンス番号がある場合、未受信のパケットのシーケンス番号をクライアント装置１の通信クライアント手段に送信して、再送をリクエストする。
【００７４】
下りデータを複数のパケットに分割して送信する場合、再送判定手段２５６は、制御ヘッダにパケットの順序を特定するシーケンス番号を含めて、クライアント装置１に送信するとともに、シーケンス番号とパケットのデータとを対応づけて記憶装置２２０に記憶する。さらにクライアント装置１から未受信のシーケンス番号を受信すると、そのシーケンス番号に対応するデータを記憶装置２２０から抽出し、クライアント装置１の通信クライアント手段１５０に送信する。
【００７５】
（アドレス管理装置）
図６を参照して、本発明の実施の形態に係るアドレス管理装置３を説明する。アドレス管理装置３は、処理装置３１０、記憶装置３２０および通信制御装置３３０を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図６に示す各機能を実装する。
【００７６】
記憶装置３２０は、アドレス変換データ３２１を記憶する。アドレス変換データ３２１は、図７に示すように、通信ノードの識別子と、その通信ノードに接続するためのアドレスおよびＵＤＰポート番号を対応づけたデータである。本発明の実施の形態に係る通信システム９において「通信ノード」は、本発明の実施の形態に係る通信方法を実現するための通信サーバ手段または通信クライアント手段を搭載した装置である。一方「通信ノードに接続するためのアドレスおよびＵＤＰポート番号」は、通信ノードに接続する宛先となるノードであって、グローバルアドレスが付されたノードのアドレスおよびＵＤＰポート番号である。
【００７７】
処理装置３１０は、登録手段３１１および応答手段３１２を備える。
【００７８】
登録手段３１１は、通信ノードが、グローバルアドレスが付されたノードに接続した場合、通信ノードから登録リクエストを受信して、通信ノードの識別子と、グローバルアドレスが付されたノードのアドレスおよびＵＤＰポート番号を対応づけて、アドレス変換データ３２１に記憶する。
【００７９】
具体的には、クライアント装置１が第１のノード４ａに接続すると、登録手段３１１は、クライアント装置１からクライアント装置１の識別子“ＩＤ＿Ｃ”および第１のノード４ａのＩＰアドレス“ＡＤ１”およびＵＤＰポート番号“ＰＴ１”を受信する。さらに登録手段３１１は、これらを対応づけたレコードを、アドレス変換データ３２１に挿入する。ここでクライアント装置１が第１のノード４ａとの接続を切断し、第３のノード４ｃに接続すると、登録手段３１１は、クライアント装置１からクライアント装置１の識別子“ＩＤ＿Ｃ”および第３のノード４ｃのＩＰアドレス“ＡＤ３”およびＵＤＰポート番号“ＰＴ３”を受信する。さらに登録手段３１１は、これらを対応づけたレコードを、アドレス変換データ３２１に挿入する。このとき登録手段３１１は、クライアント装置１の識別子“ＩＤ＿Ｃ”に対応するレコードを削除する。
【００８０】
応答手段３１２は、通信ノードから、問い合わせ対象の通信ノードの識別子を含むアドレスの問い合わせを受信すると、問い合わせ対象の通信ノードのアドレスおよびＵＤＰポート番号を返す。
【００８１】
具体的には応答手段３１２は、クライアント装置１の通信クライアント手段１５０から、接続先のサーバ装置２に接続する際、このサーバ装置２の識別子“ＩＤ＿Ｓ”を受信する。この場合応答手段３１２は、アドレス変換データ３２１を読み出して、この識別子に対応するＩＰアドレス“ＡＤ２”およびＵＤＰポート番号“ＰＴ２”を返す。また、応答手段３１２は、クライアント装置１が移動により接続先のノードが、第１のノード４ａから第３のノード４ｃに変更になり、通信サーバ手段２５０がクライアント装置１へのデータ通信に失敗すると、通信サーバ手段２５０から、接続先のクライアント装置１の識別子“ＩＤ＿Ｃ”を受信する。この場合応答手段３１２は、アドレス変換データ３２１を読み出して、この識別子に対応する最新のＩＰアドレス“ＡＤ３”およびＵＤＰポート番号“ＰＴ３”を返す。
【００８２】
（登録処理）
図８を参照して、本発明の実施の形態に係る通信システム９において、クライアント装置１およびサーバ装置２をアドレス管理装置３に登録する処理を説明する。
【００８３】
まずクライアント装置１の通信クライアント手段１５０は、ステップＳ１０１において、第１のノード４ａに接続すると、ステップＳ１０２において、登録リクエストを第１のノード４ａに送信する。第１のノード４ａは、クライアント装置１から登録リクエストを受信すると、ステップＳ１０３においてその登録リクエストを、アドレス管理装置３に送信する。ここで登録リクエストは、クライアント装置１のクライアント識別子“ＩＤ＿Ｃ”と、第１のノード４ａのＩＰアドレス“ＡＤ１”およびポート番号“ＰＴ１”を含む。
【００８４】
第１のノード４ａから登録リクエストを受信すると、ステップＳ１０４においてアドレス管理装置３は、アドレス変換データ３２１を更新する。具体的には、ステップＳ１０３で受信した登録リクエストに含まれるクライアント装置１のクライアント識別子“ＩＤ＿Ｃ”と、第１のノード４ａのＩＰアドレス“ＡＤ１”およびポート番号“ＰＴ１”を対応づけて、アドレス変換データ３２１に登録する。
【００８５】
同様にサーバ装置２の通信サーバ手段２５０は、ステップＳ１０５において、第２のノード４ｂに接続すると、ステップＳ１０６において、登録リクエストを第１のノード４ａに送信する。第２のノード４ｂは、サーバ装置２から登録リクエストを受信すると、ステップＳ１０７においてその登録リクエストを、アドレス管理装置３に送信する。ここで登録リクエストは、サーバ装置２のサーバ識別子“ＩＤ＿Ｓ”と、第２のノード４ｂのＩＰアドレス“ＡＤ２”およびポート番号“ＰＴ２”を含む。
【００８６】
第２のノード４ｂから登録リクエストを受信すると、ステップＳ１０８においてアドレス管理装置３は、アドレス変換データ３２１を更新する。具体的には、ステップＳ１０７で受信した登録リクエストに含まれるサーバ装置２のサーバ識別子“ＩＤ＿Ｓ”と、第２のノードのＩＰアドレス“ＡＤ２”およびポート番号“ＰＴ２”を対応づけて、アドレス変換データ３２１に登録する。
【００８７】
このように、図７に示すようにアドレス管理装置３は、クライアント装置１およびサーバ装置２のサーバ識別子と、これらの装置が通信ネットワークに接続するためのアドレスおよびポート番号を、対応づけて保持する。ここで、クライアント装置１またはサーバ装置２の接続するノードが変更になると、新たなアドレスおよびポート番号に基づいて、再度アドレス管理装置３に登録リクエストが送信される。
【００８８】
（接続処理）
図９を参照して、本発明の実施の形態に係る接続処理を説明する。本発明の実施の形態においては、クライアント装置１からサーバ装置２に接続する例を説明するが、これに限られない。
【００８９】
まずステップＳ２０１においてアプリケーション実行手段１６０が、サーバ装置２に接続する際、通信クライアント手段１５０に、ＴＣＰコネクトを送信する。通信クライアント手段１５０は、アプリケーション実行手段１６０からＴＣＰコネクトを受信したポート番号に基づいて、接続先のサーバ装置２のサーバ識別子“ＩＤ＿Ｓ”を取得する。
【００９０】
ステップＳ２０２において通信クライアント手段１５０は、識別子“ＩＤ＿Ｓ”を含む接続リクエストを第１のノード４ａに送信し、ステップＳ２０３において第１のノード４ａは、その接続リクエストを、アドレス管理装置３に送信する。
【００９１】
アドレス管理装置３は、接続リクエストに含まれる識別子“ＩＤ＿Ｓ”に対応するアドレス“ＡＤ２”およびポート番号“ＰＴ２”を取得し、ステップＳ２０４において第１のノード４ａに返す。
【００９２】
さらにアドレス管理装置３はステップＳ２０５において、対応するアドレス“ＡＤ２”に向けて、接続通知を送信する。この接続通知は、識別子“ＩＤ＿Ｓ”に接続があることを通知するものであって、送信元の第１のノード４ａのアドレス“ＡＤ１”およびポート番号“ＰＴ１”を含む。この接続通知を、アドレス“ＡＤ２”およびポート番号“ＰＴ２”に対応する第２のノード４ｂが受信し、ステップＳ２０６において第２のノード４ｂは、通信サーバ手段２５０に、接続通知を送信する。その後、ステップＳ２０７において、通信クライアント手段１５０および通信サーバ手段２５０間でパンチング処理等がなされ、ＵＤＰ通信が可能となる。
【００９３】
なお、ステップＳ２０５ないしステップＳ２０７の処理は一例であって、通信クライアント手段１５０および通信サーバ手段２５０間でＵＤＰ通信が可能になれば、どのような処理がなされても良い。例えば、ステップＳ２０５においてアドレス管理装置３は第２のノード４ｂに接続通知を送信する代わりに、アドレス管理装置３がクライアント装置１に第２のノード４ｂのアドレスおよびポート番号を通知しても良い。この場合クライアント装置１が、第２のノード４ｂおよびサーバ装置２に向けて、パンチング処理等しても良い。
【００９４】
通信クライアント手段１５０および通信サーバ手段２５０間でＵＤＰ通信が可能になると、ステップＳ２０８において通信クライアント手段１５０は、通信サーバ手段２５０に、ステップＳ２０１に対応する接続リクエストを送信する。この接続リクエストには、通信サーバ手段２５０の識別子“ＩＤ＿Ｓ”を含む。
【００９５】
通信サーバ手段２５０が接続リクエストを受信すると、ステップＳ２０９においてＴＣＰコネクトをサービス提供手段２６０に送信する。さらにステップＳ２１０において通信サーバ手段２５０は、コネクションＩＤを採番する。ステップＳ２１１においてサービス提供手段２６０が、ステップＳ２０９におけるＴＣＰコネクトに対しＡｃｋを送信すると、ステップＳ２１２において通信サーバ手段２５０は、通信クライアント手段１５０に、ステップＳ２０８の接続リクエストに対応する接続応答を送信する。この接続応答は、ステップＳ２１０で採番したコネクションＩＤと、Ａｃｋを含む。
【００９６】
ステップＳ２１３において通信クライアント手段１５０は、アプリケーション実行手段１６０に、ステップＳ２０１に対応するＡｃｋを、アプリケーション実行手段１６０に送信する。このＡｃｋには、ステップＳ２１０で採番されたコネクションＩＤを含む。
【００９７】
このように、アプリケーション実行手段１６０および通信クライアント手段１５０間、および通信サーバ手段２５０およびサービス提供手段２６０間は、コネクションＩＤを共通するＴＣＰ接続がそれぞれ確立される。さらに通信クライアント手段１５０および通信サーバ手段２５０間は、ＵＤＰ接続で通信される。
【００９８】
（データ送受信処理）
図１０ないし図１２を参照して、クライアント装置１およびサーバ装置２間のデータの送受信処理を説明する。図１０は、クライアント装置１が、図８での接続処理で説明したＴＣＰセッションおよびＵＤＰ接続を介して、サーバ装置２にサービスをリクエストし、サーバ装置２からその応答を受信する処理を説明する。
【００９９】
まずステップＳ３０１においてクライアント装置１においてアプリケーション実行手段１６０は、ＴＣＰセッションを利用して、サービスリクエストに係るデータを通信クライアント手段１５０に送信する。ステップＳ３０２において通信クライアント手段１５０は、受け取ったサービスリクエストに係るデータからＵＤＰパケットを生成して、ステップＳ３０３において第１のノード４ａに送信する。ステップＳ３０４において第１のノード４ａは、ＵＤＰパケットを第２のノード４ｂに送信し、ステップＳ３０５において第２のノード４ｂは、ＵＤＰパケットをサーバ装置２の通信サーバ手段２５０に送信する。
【０１００】
ステップＳ３０６においてサーバ装置２において通信サーバ手段２５０は、受信したＵＤＰパケットからＴＣＰパケットを生成し、ステップＳ３０７において、ＴＣＰセッションを利用して、サービスリクエストに係るデータをサービス提供手段２６０に入力する。
【０１０１】
ステップＳ３０８においてサービス提供手段２６０は、サービスリクエストに基づいて処理したサービス応答に係るデータを、ＴＣＰセッションを利用して、通信サーバ手段２５０に入力する。ステップＳ３０９において通信サーバ手段２５０は、受け取ったサービス提供に係るデータからＵＤＰパケットを生成して、ステップＳ３１０において第２のノード４ｂに送信する。ステップＳ３１１において第２のノード４ｂは、ＵＤＰパケットを第１のノード４ａに送信し、ステップＳ３１２において第１のノード４ａは、ＵＤＰパケットをクライアント装置１の通信クライアント手段１５０に送信する。
【０１０２】
ステップＳ３１３においてクライアント装置１において通信クライアント手段１５０は、受信したＵＤＰパケットからＴＣＰパケットを生成し、ステップＳ３１４において、ＴＣＰセッションを利用して、サービス応答に係るデータをアプリケーション実行手段１６０に入力する。
【０１０３】
さらにステップＳ３１５において通信クライアント手段１５０は、サービス応答に係るデータを受信したことを示す受領確認のＵＤＰパケットを生成し、ステップＳ３１６において第１のノード４ａに送信する。第１のノード４ａは、ステップＳ３１７において第２のノード４ｂに受領確認を送信し、第２のノード４ｂは、ステップＳ３１８において受領確認をサーバ装置２の通信サーバ手段２５０に送信する。
【０１０４】
図１１を参照して、第１のノード４ａに接続していたクライアント装置１が、移動などにより、第１のノード４ａとの接続を切断し、第３のノード４ｃに接続する処理を説明する。
【０１０５】
クライアント装置１の通信クライアント手段１５０は、ステップＳ４０１において第１のノード４ａとの接続が切断され、ステップＳ４０２において第３のノード４ｃと接続すると、ステップＳ４０３において、第３のノード４ｃに登録リクエストを送信する。第３のノード４ｃは、クライアント装置１から登録リクエストを受信すると、ステップＳ４０４においてその登録リクエストを、アドレス管理装置３に送信する。ここで登録リクエストは、クライアント装置１のクライアント識別子“ＩＤ＿Ｃ”と、第３のノード４ｃのアドレス“ＡＤ３”およびポート番号“ＰＴ３”を含む。
【０１０６】
第３のノード４ｃから登録リクエストを受信すると、ステップＳ４０５においてアドレス管理装置３は、アドレス変換データ３２１を更新する。具体的には、ステップＳ４０４で受信した登録リクエストに含まれるクライアント装置１のクライアント識別子“ＩＤ＿Ｃ”と、第３のノード４ｃのアドレス“ＡＤ３”およびポート番号“ＰＴ３”を対応づけて、アドレス変換データ３２１に登録する。このとき、第３のノード４ｃに接続する前の第１のノード４ａに関する情報は削除される。
【０１０７】
一方、サーバ装置２のサービス提供手段２６０が、ステップＳ４０６においてサービス応答に係るデータを通信サーバ手段２５０に送信し、ステップＳ４０７およびステップＳ４０８において、通信サーバ手段２５０は、第１のノード４ａを介してクライアント装置１にサービス応答に係るデータを送信しようとする。しかしながら、第１のノード４ａおよびクライアント装置１の間の接続が切断されているので、サービス応答に係るデータは、クライアント装置１に送信されない。
【０１０８】
所定時間内に、通信クライアント手段１５０から受領確認を受信しない場合、通信サーバ手段２５０は、ステップＳ４０９およびステップＳ４１０において、再度第１のノード４ａを介してクライアント装置１にサービス応答に係るデータを送信しようとする。
【０１０９】
ステップＳ４１１において、サービス応答データの再送を繰り返したのち、タイムアウトし、または所定回数失敗したと判定されると、ステップＳ４１２において通信サーバ手段２５０は、アドレス管理装置３に、とのクライアント識別子“ＩＤ＿Ｃ”について、アドレスを問い合わせる。その後通信サーバ手段２５０は、ステップＳ４１３において、クライアント装置１のアドレスが、第３のノード４ｃのアドレス“ＡＤ３”およびポート番号“ＰＴ３”であることを取得する。その後ステップＳ４１４において、通信クライアント手段１５０および通信サーバ手段２５０間でパンチング処理等がなされ、ＵＤＰ通信が可能となる。
【０１１０】
ステップＳ４１５において通信サーバ手段２５０は、サービス応答に係るデータを第３のノード４ｃに送信し、ステップＳ４１６において第３のノード４ｃは、通信クライアント手段１５０に送信する。通信クライアント手段１５０は、ステップＳ４１７においてサービス応答に係るデータをアプリケーション実行手段１６０に送信するとともに、ステップＳ４１８において、受領確認を第３のノード４ｃに送信する。ステップＳ４１９において第３のノード４ｃは、受領確認をサーバ装置２の通信サーバ手段２５０に送信する。
【０１１１】
このように通信サーバ手段２５０は、送信したサービス応答データに関する受領確認を受信することで、ＵＤＰを介する通信であっても、送信先が受信したことを確認することができる。また受領確認を受信できない場合、サーバ装置２は、アドレス管理装置３に新たなアドレスを問い合わせて新たなアドレスに再送することで、クライアント装置１が移動し、グローバルアドレスが変更になっても、クライアント装置１は、引き続きデータを受信することができる。
【０１１２】
図１２を参照して、サーバ装置２から送信されるデータのフロー制御を説明する。図１２は、図１０のステップＳ３０８において、サービス応答に係るデータを通信サーバ手段２５０に送信する処理以降の処理を説明する。なお、図１２に示す例において、第２のノード４ｂに関する処理を割愛しているが、第１のノード４ａと、およびサーバ装置２の通信サーバ手段２５０との通信において、図１０と同様に第２のノード４ｂが中継する。
【０１１３】
ステップＳ５１０においてサーバ装置２のサービス提供手段２６０は、サービス提供に係るデータを通信サーバ手段２５０に送信する。通信サーバ手段２５０は、ステップＳ５１１において、第２のノード４ｂを介してサービス応答に係るデータを、シーケンス番号を付して第１のノード４ａに送信し、第１のノード４ａは、クライアント装置１の通信クライアント手段１５０に送信する。このとき通信サーバ手段２５０は、送信したサービス応答に係るデータと、シーケンス番号を対応づけて、記憶装置２２０に記憶する。
【０１１４】
ステップＳ５１３において通信クライアント手段１５０は、未受領のシーケンス番号があるか否かを確認する。未受領のシーケンス番号がない場合、ステップＳ５１９に進み、アプリケーション実行手段１６０にサービス応答に係るデータを送信する。
【０１１５】
一方未受領のシーケンス番号がある場合、通信クライアント手段１５０は、ステップＳ５１２で受領したサービス応答に係るデータを記憶装置１２０に記憶する。さらに通信クライアント手段１５０は、ステップＳ５１４において、未受領のシーケンス番号を含む再送要求を、第１のノード４ａに送信し、第１のノード４ａは、ステップＳ５１５において第２のノード４ｂを介して再送要求をサーバ装置２の通信サーバ手段２５０に送信する。
【０１１６】
ステップＳ５１５において通信サーバ手段２５０は、未受領シーケンス番号を含む再送要求を受信すると、そのシーケンス番号に対応するサービス応答に係るデータを、記憶装置２２０から抽出する。ステップＳ５１６において通信サーバ手段２５０は、抽出したデータを含む再送応答を、第２のノード４ｂを介して第１のノード４ａに送信し、ステップＳ５１７において第１のノード４ａは、クライアント装置１の通信クライアント手段１５０に送信する。
【０１１７】
ステップＳ５１８において通信クライアント手段１５０は、未受領のシーケンス番号があるか否かを確認する。未受領のシーケンス番号がない場合、ステップＳ５１９に進み、アプリケーション実行手段１６０にサービス応答に係るデータを送信する。未受領のシーケンス番号がある場合、ステップＳ５１４に戻り、未受領のシーケンス番号を設定して再送要求を送信する。
【０１１８】
このように本発明の実施の形態に係る通信システム９は、クライアント装置１のアプリケーション実行手段１６０および通信クライアント手段１５０間において、ＴＣＰ接続を確立するとともに、サーバ装置２のサービス提供手段２６０および通信サーバ手段２５０間においてＴＣＰ接続を確立する。さらに、通信クライアント手段１５０および通信サーバ手段２５０においてＵＤＰ通信可能な状態にする。このとき、ＵＤＰパケットに、ＴＣＰ接続を特定するためのコネクションＩＤを含む制御ヘッダを設定する。これにより本発明の実施の形態に係る通信システム９は、ＴＣＰ接続を、ＵＤＰ接続を介して中継することができる。
【０１１９】
さらに、アドレス管理装置３は、クライアント装置１およびサーバ装置２のそれぞれの識別子と、それぞれが接続するノードのグローバルアドレスとを対応づけて保持する。従って、クライアント装置１またはサーバ装置２に付与されるアドレスが変更されたとしても、クライアント装置１内のＴＣＰセッション、およびサーバ装置２内のＴＣＰセッションは切断されることなく、コネクションが維持される。さらに、アドレス管理装置３に最新のノードのアドレスを問い合わせることで、通信クライアント手段１５０および通信サーバ手段２５０間では新たなＵＤＰ接続を可能にする。
【０１２０】
従って、クライアント装置１またはサーバ装置２に付与されるアドレスが変更されたり、クライアント装置１またはサーバ装置２が接続するノードが変更されたりしても、アプリケーション実行手段１６０およびサービス提供手段２６０間で、ＴＣＰ接続を切断することなく、継続して通信することができる。
【０１２１】
さらに、通信クライアント手段１５０および通信サーバ手段２５０が、上りデータおよび下りデータの暗号化および復号、フロー制御などのＴＣＰが提供する同様の機能を提供ことにより、ＵＤＰ接続を利用して、フレキシブルかつ信頼性の高い通信を提供することができる。
【０１２２】
（変形例）
図１３を参照して、本発明の変形例に係る通信システム９ａを説明する。通信システム９ａは、図１を参照して説明した通信システム９と比べて、クライアント装置が異なる。
【０１２３】
本発明の実施の形態に係るクライアント装置１は、図２に示すように、クライアント装置１内に、通信クライアント手段１５０およびアプリケーション実行手段１６０を備える。
【０１２４】
これに対し本発明の変形例に係るクライアント装置１ａは、アプリケーション実行装置８に接続して用いられる点が異なる。図１４に示すように、クライアント装置１ａは、図２に示す通信クライアント手段１５０の各手段およびデータを備える。これに対しアプリケーション実行装置８は、図２に示すアプリケーション実行手段１６０の各手段およびデータを備える。
【０１２５】
具体的には、本発明の実施の形態に係るクライアント装置１において、通信クライアント手段１５０およびアプリケーション実行手段１６０は、一つの装置内で、ＴＣＰ接続で通信していた。これに対し変形例においては、クライアント装置１ａおよびアプリケーション実行装置８は、個別の装置に実装され、ＴＣＰ接続で通信する。
【０１２６】
このような変形例において、サーバ装置２は、クライアント装置１ａに付された識別子“ＩＤ＿Ｃ”を、クライアント装置１ａが接続するノードのアドレスおよびポート番号と対応づけて保持する。
【０１２７】
このように、アプリケーション実行装置８と、このアプリケーションに、本発明の実施の形態に係る通信方法を実現するクライアント装置１ａとを異なる筐体で実現することもできる。
【０１２８】
（その他の実施の形態）
上記のように、本発明の実施の形態とその変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【０１２９】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【０１３０】
１  クライアント装置
２  サーバ装置
３  アドレス管理装置
４  ノード
５  通信ネットワーク
８  アプリケーション実行装置
９  通信システム
１１０、２１０、３１０  処理装置
１２０、２２０、３２０  記憶装置
１２１  ポート接続先対応データ
１３０、２３０、３３０  通信制御装置
１４０  入出力装置
１５０  通信クライアント手段
１５１、２５１  接続先登録手段
１５２、２５２  ＴＣＰセッション制御手段
１５３、２５３  ＵＤＰ制御手段
１５４、２５４  暗号化手段
１５５、２５５  復号手段
１５６、２５６  再送判定手段
１６０、１６１、１６２、１６３  アプリケーション実行手段
２５０  通信サーバ手段
２６０  サービス提供手段
３１１  登録手段
３１２  応答手段
３２１  アドレス変換データ
【要約】
クライアント装置１は、第１のノード４ａを介してクライアント識別子をアドレス管理装置３に送信する接続先登録手段１５１と、アプリケーション実行手段１６０から、ＴＣＰコネクトを受信すると、ＵＤＰ接続を制御するＵＤＰ制御手段１５３と、アプリケーション実行手段１６０との間で、コネクション識別子で特定される第１のＴＣＰ接続を確立するＴＣＰセッション制御手段１５２と、を備える。サーバ装置２は、第２のノード４ｂを介してサーバ識別子をアドレス管理装置３に送信する接続先登録手段と、ＵＤＰ接続を制御するＵＤＰ制御手段２５３と、サービス提供手段２６０との間で、コネクション識別子で特定される第２のＴＣＰ接続を確立するＴＣＰセッション制御手段２５２と、を備える。通信サーバ手段２５０と通信クライアント手段１５０との間で、第１のノード４ａおよび第２のノード４ｂを介したＵＤＰ接続が可能になる。【図１】
0005676067.tif 000002
【図２】
0005676067.tif 000003
【図３】
0005676067.tif 000004
【図４】
0005676067.tif 000005
【図５】
0005676067.tif 000006
【図６】
0005676067.tif 000007
【図７】
0005676067.tif 000008
【図８】
0005676067.tif 000009
【図９】
0005676067.tif 000010
【図１０】
0005676067.tif 000011
【図１１】
0005676067.tif 000012
【図１２】
0005676067.tif 000013
【図１３】
0005676067.tif 000014
【図１４】
0005676067.tif 000015