(57)【要約】      （修正有）【課題】本発明の課題は、ひとつの通信装置が同一ポートを使用して同時に複数の通信相手とゲートウェイを利用したＳＣＴＰ通信を行う場合でも、これらの通信相手が使用するポート番号を気にすることなく自由に通信することを可能にする通信システムを提供することである。【解決手段】上記課題は、第１の通信装置が、中継装置で保有する第１のＩＰアドレスに対応する第１の通信経路と、自身が保有する第２のＩＰアドレスに対応する第２の通信経路とを選択的に利用して、第２の通信装置との間で通信を行う通信システムにおいて、前記第１の通信装置は、利用する通信経路に応じてポート番号を設定するポート番号設定手段を備え、前記中継装置は、パケット転送する際に、前記ポート番号を変換して、該当の通信装置にパケットを転送するポート番号変換手段を備えることを特徴とする通信システムにて達成される。【選択図】図１
2005142846.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の通信装置と、該第１及び第２の通信装置間の通信を中継する中継装置とを備える通信システムであって、
前記第１の通信装置が、前記中継装置で保有する第１のＩＰアドレスに対応する第１の通信経路と、自身が保有する第２のＩＰアドレスに対応する第２の通信経路とを選択的に利用して、第２の通信装置との間で通信を行う通信システムにおいて、
前記第１の通信装置は、利用する通信経路に応じてポート番号を設定するポート番号設定手段を備え、
前記中継装置は、パケット転送する際に、前記ポート番号を変換して、該当の通信装置にパケットを転送するポート番号変換手段を備えることを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記ポート番号設定手段は、第1の通信経路を利用する場合、第1のポート番号を通信相手のポート番号として設定してパケットを送受信し、第２の通信経路を利用する場合、第２のポート番号を通信相手のポート番号として設定してパケットを送受信するポート番号選択手段を備えることを特徴とする通信システム。
【請求項３】
請求項１又は２に記載の通信システムにおいて、
前記ポート番号変換手段は、前記第１の通信装置からパケットを受信した場合、パケットの宛先ポート番号を第１のポート番号から第２のポート番号に変換して第２の通信装置にパケットを転送し、前記第２の通信装置からパケットを受信した場合、パケットの送信元ポート番号を第２のポート番号から第１のポート番号に変換して第１の通信装置にパケットを転送することを特徴とする通信システム。
【請求項４】
請求項1乃至３いずれかに記載の通信システムにおいて、
前記第１の通信装置が複数の通信装置と通信を行う場合、当該第１の通信装置が、通信相手のポート番号とする番号を、該当のポート番号と重複しないよう選択する通信装置通信相手ポート選択手段を備えることを特徴とする通信システム。
【請求項５】
請求項1乃至３いずれかに記載の通信システムにおいて、
前記第１の通信装置は、前記第２の通信装置のＩＰアドレスと前記第２のポート番号とを前記中継装置に登録する登録手段を備え、
前記中継装置は、前記第２の通信装置が他のトランスポートレイヤの通信において前記中継装置が保有するＩＰアドレスに対応する通信経路を使用するときの通信相手のポート番号とする番号と重複しない番号を、前記第１及び第２の通信装置が行うトランスポートレイヤの通信において前記中継装置が保有するＩＰアドレスに対応する通信経路を使用するときの、第２の通信装置の通信相手のポート番号として選択する中継装置通信相手ポート選択手段を備えることを特徴とする通信システム。
【請求項６】
請求項５に記載の通信システムにおいて、
前記第１の通信装置が、前記第１の通信経路でトランスポートレイヤの通信の開始メッセージを前記第２の通信装置に送信する場合は、前記第１の通信装置が使用する自身の前記第２のＩＰアドレスとポート番号とを前記開始メッセージ内部に設定する設定手段を備え、
前記第２の通信装置は、前記開始メッセージを受信し、メッセージの送信元アドレスとして示されている前記中継装置の前記第１のＩＰアドレスとポート番号の組と、メッセージ内部に設定された前記第２のＩＰアドレスとポート番号の組とが、共に１のトランスポートレイヤの通信を行う際の通信相手と認識されたときに、前記第１の通信装置との間でパケット送受信を行う通信相手認識手段を備えることを特徴とする通信システム。
【請求項７】
第１及び第２の通信装置と、該第１及び第２の通信装置間の通信を中継する中継装置とを備える通信システムであって、
前記第１の通信装置が、前記中継装置で保有する第１のＩＰアドレスに対応する第１の通信経路と、自身が保有する第２のＩＰアドレスに対応する第２の通信経路とを選択的に利用して、第２の通信装置との間で通信を行う通信システムにおける通信方法において、
前記第１の通信装置は、第１の通信経路を利用する場合、第１のポート番号を通信相手のポート番号として設定してパケットを送受信し、
第２の通信経路を利用する場合、第２のポート番号を通信相手のポート番号として設定してパケットを送受信し、
前記中継装置は、前記第１の通信装置からパケットを受信した場合、パケットの宛先ポート番号を第１のポート番号から第２のポート番号に変換して第２の通信装置にパケットを転送し、
前記第２の通信装置からパケットを受信した場合、パケットの送信元ポート番号を第２のポート番号から第１のポート番号に変換して第１の通信装置にパケットを転送することを特徴とする通信方法。
【請求項８】
第１及び第２の通信装置間における通信の成立を支援するゲートウェイ装置であって、
前記第１又は第２の通信装置にパケットを転送する際に、パケットのポート番号を変換するポート番号変換手段を備えることを特徴とするゲートウェイ装置。
【請求項９】
所定の通信プロトコルにしたがって通信処理を実行する通信装置であって、
送受信パケットに設定されるトランスポートアドレスとゲートウェイポートを組にして管理する管理手段を備えることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信経路を用いるマルチパス通信における通信システム、通信装置、ゲートウェイ装置及び通信方法に関する。
【背景技術】
【０００２】
ＳＣＴＰ(Stream Control Transmission Protocol)は、電話呼制御信号をサーバ間で送受信するために開発されたコネクション型トランスポートプロトコルである。このＳＣＴＰは、代替経路をもち障害発生時には転送を切り替えることが可能なマルチホームを実現可能にする技術として注目されている。例えば、通信ネットワークに接続した２つの通信装置が、複数の通信経路を用いて通信を行う技術が提案されている（例えば、非特許文献１参照）。この文献によれば、ＩＰアドレスを１つしか保有しないクライアントが、ゲートウェイ（中継装置）のＩＰアドレスをも自身が保有するかのようにサーバに通知することで、サーバはクライアントのＩＰアドレスを宛先とする経路と、ゲートウェイのＩＰアドレスを宛先とする経路の両方を１つのＳＣＴＰ通信に利用し、かつゲートウェイが自身のＩＰアドレス宛パケットを、送信元及び宛先アドレスを変更しクライアントあるいはサーバに転送することで、クライアント−サーバ問の複数経路通信を可能にしている。
【非特許文献１】松本謙尚ほか，“シングルホームホスト向けＳＣＴＰマルチパスアクセス方式の検討”，電子情報通信学会技術研究報告ＮＳ２００３−２６（ネットワークシステム），２００３年
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来の方法では、ゲートウェイがクライアントに転送するパケットの送信元ポート番号は、サーバがゲートウェイに送信したパケットの送信元ポート番号と一致する。したがって、あるひとつのクライアントが共通のポート番号を使用して同時に複数のＳＣＴＰ通信を行う場合、サーバ自体が異なっていてもこれらサーバの使用するポート番号が一致すると、クライアントがゲートウェイ経由で受信したパケットは宛先ＩＰアドレス（＝クライアントのＩＰアドレス）、宛先ポート（＝クライアントのポート）、送信元ＩＰアドレス（＝ゲートウェイのＩＰアドレス）、送信元ポート（＝サーバのポート）それぞれが一致してしまい、どのＳＣＴＰ通信に属するパケットか識別できないという問題が生じる。
【０００４】
本発明は、上記のような問題点に鑑みてなされたもので、その課題とするところは、ひとつの通信装置が同一ポートを使用して同時に複数の通信相手とゲートウェイを利用したＳＣＴＰ通信を行う場合でも、これらの通信相手が使用するポート番号を気にすることなく自由に通信することを可能にする通信システム、通信装置、ゲートウェイ装置及び通信方法を提供することである。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、請求項１に記載されるように、第１及び第２の通信装置と、該第１及び第２の通信装置間の通信を中継する中継装置とを備える通信システムであって、前記第１の通信装置が、前記中継装置で保有する第１のＩＰアドレスに対応する第１の通信経路と、自身が保有する第２のＩＰアドレスに対応する第２の通信経路とを選択的に利用して、第２の通信装置との間で通信を行う通信システムにおいて、前記第１の通信装置は、利用する通信経路に応じてポート番号を設定するポート番号設定手段を備え、前記中継装置は、パケット転送する際に、前記ポート番号を変換して、該当の通信装置にパケットを転送するポート番号変換手段を備えることを特徴としている。
【０００６】
また、本発明の請求項２によれば、前記通信システムにおいて、前記ポート番号設定手段は、第１の通信経路を利用する場合、第1のポート番号を通信相手のポート番号として設定してパケットを送受信し、第２の通信経路を利用する場合、第２のポート番号を通信相手のポート番号として設定してパケットを送受信するポート番号選択手段を備えることを特徴としている。
【０００７】
また、本発明の請求項３によれば、前記通信システムにおいて、前記ポート番号変換手段は、前記第１の通信装置からパケットを受信した場合、パケットの宛先ポート番号を第１のポート番号から第２のポート番号に変換して第２の通信装置にパケットを転送し、前記第２の通信装置からパケットを受信した場合、パケットの送信元ポート番号を第２のポート番号から第１のポート番号に変換して第１の通信装置にパケットを転送することを特徴としている。
【０００８】
また、本発明の請求項４によれば、前記通信システムにおいて、前記第１の通信装置が複数の通信装置と通信を行う場合、当該第１の通信装置が、通信相手のポート番号とする番号を、該当のポート番号と重複しないよう選択する通信装置通信相手ポート選択手段を備えることを特徴としている。
【０００９】
また、本発明の請求項５によれば、前記通信システムにおいて、前記第１の通信装置は、前記第２の通信装置のＩＰアドレスと前記第２のポート番号とを前記中継装置に登録する登録手段を備え、前記中継装置は、前記第２の通信装置が他のトランスポートレイヤの通信において前記中継装置が保有するＩＰアドレスに対応する通信経路を使用するときの通信相手のポート番号とする番号と重複しない番号を、前記第１及び第２の通信装置が行うトランスポートレイヤの通信において前記中継装置が保有するＩＰアドレスに対応する通信経路を使用するときの、第２の通信装置の通信相手のポート番号として選択する中継装置通信相手ポート選択手段を備えることを特徴としている。
【００１０】
また、本発明の請求項６によれば、前記通信システムにおいて、前記第１の通信装置が、前記第１の通信経路でトランスポートレイヤの通信の開始メッセージを前記第２の通信装置に送信する場合は、前記第１の通信装置が使用する自身の前記第２のＩＰアドレスとポート番号とを前記開始メッセージ内部に設定する設定手段を備え、前記第２の通信装置は、前記開始メッセージを受信し、メッセージの送信元アドレスとして示されている前記中継装置の前記第１のＩＰアドレスとポート番号の組と、メッセージ内部に設定された前記第２のＩＰアドレスとポート番号の組とが、共に１のトランスポートレイヤの通信を行う際の通信相手と認識されたときに、前記第１の通信装置との間でパケット送受信を行う通信相手認識手段を備えることを特徴としている。
【発明の効果】
【００１１】
上述の如く、本発明によれば、ひとつの通信装置が同一ポートを使用して同時に複数の通信相手とＳＣＴＰ通信を行う場合でも、これらの通信相手が使用するポート番号が重なる場合でも自由に中継装置経由の通信が可能になる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１３】
まず、本発明の実施形態を説明する前に、本発明を実現可能にする通信システムついて図１を参照して説明をする。図１は、本実施形態におけるマルチパスアクセス方式を適用する通信ネットワークシステムの構成図である。
【００１４】
同図に示すように、この通信ネットワークシステムは、通信ネットワーク１００と、クライアント（Ｃ）１０１と、ゲートウェイ（Ｇ）１０２と、サーバ（Ｓ）１０３と、から構成される。なお、符号１０４〜１０６は通信経路を表している。
【００１５】
以下、上記通信ネットワークシステムの動作を説明する。
【００１６】
図１において、クライアント（Ｃ）１０１は、アプリケーションプログラムの要求に基づき、通信ネットワーク１００を介してサーバ（Ｓ）１０３にＳＣＴＰで接続し、アプリケーションデータの送受信を行う。通信ネットワーク１００は、ＩＰネットワークであればよく、下位レイヤは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＴＭである。ＳＣＴＰでは、コネクションを識別するための識別子として、ＩＰアドレスと、ＳＣＴＰポート番号を使用する。ＳＣＴＰポート番号は、ＴＣＰ又はＵＤＰポート番号と同様、独立した番号空間を有し、エンドホスト（サーバまたはクライアント）上でのアプリケーションを識別するのに使用する。したがって、エンドホストのＳＣＴＰモジュールでは、コネクションの自側端点であるＩＰアドレス、ＳＣＴＰポート番号、相手側端点のＩＰアドレス、ＳＣＴＰポート番号の組をコネクション毎に管理し、クライアント−サーバ間で送受信する全てのパケットにこれらの情報を送信元識別子及び宛先識別子として設定する。
【００１７】
すなわち、この４つの情報を用いることで、パケットが属するコネクションが一意に識別できる。なお、ＳＣＴＰでは、エンドツーエンド通信を実現するコネクションのことを、アソシエーションと呼び、上記のクライアント１０１がサーバ１０３に接続することを、「アソシエーションを確立する」という。
【００１８】
アプリケーションデータの送受信に先立ってアソシエーションを確立し、アプリケーションデータの送受信が完了したときにアソシエーションを解放する概念は、コネクションオリエンテッドなプロトコルであるＴＣＰにおいてコネクション確立、解放を実施するのと同じである。
【００１９】
図２は、ＳＣＴＰパケットを含むＩＰパケットのフォーマットを示す図である。同図に示すように、このＩＰパケット８００は、ＩＰヘッダ８０１、ＳＣＴＰ共通ヘッダ（以下、ＳＣＴＰヘッダと称す）８０２、ＳＣＴＰチャンク（ＳＣＴＰのメッセージストリーム構成単位）８０３からなる。
【００２０】
例えば、図1に示す通信経路１０４において、クライアント１０１からサーバ１０３に送信するパケットの場合、ＩＰヘッダ８０１内の送信元アドレス８０５にはクライアント１０１のＩＰアドレスＡｃを、宛先アドレス８０６にはサーバ１０３のＩＰアドレスＡｓを、ＳＣＴＰヘッダ８０２内の送信元ポート８０７にはクライアント１０１でアプリケーションに割り当てたＳＣＴＰポート番号Ｐｃを、宛先ポート８０８にはサーバ１０３でアプリケーションに割り当てたＳＣＴＰポート番号Ｐｓを、クライアント１０１で設定する。
【００２１】
なお、ＳＣＴＰチャンク８０３は、アソシエーションの確立、解放を行うための制御情報や、アプリケーションデータを格納する領域であり、これらの塊（チャンク）を、ＩＰパケットの最大許容長以下に収まるよう複数個のせることができる。
【００２２】
また、ＩＰヘッダ８０１内のプロトコル識別子８０９に設定するＳＣＴＰのコードは０ｘ８４である。チェックサム８０４には、ＩＰヘッダ８０１内の情報に対して計算された値が設定される。
ところで、ＳＣＴＰでは、ホストが複数のＩＰアドレスを有する場合、すなわちマルチホーム（上流サイトを複数持つこと）の場合、アソシエーション確立時にあらかじめ通信相手にそれらのアドレスを通知することで、アソシエーション確立後に送受信するいかなるパケットも、それらのアドレスを自由に選んで宛先または送信元として利用することができる。つまり、ＴＣＰでは、不可能であった、アプリケーションデータ通信中のＩＰアドレスの切り替えが可能である。ただし、ＳＣＴＰポートは不変である必要がある。
【００２３】
例えば、マルチホームホスト同士のアソシエーションでは、クライアントのアドレス(Ａｃ、Ａｃ’、…)、クライアントのポートＰｃ、サーバのアドレス(Ａｓ、Ａｓ’、…)、サーバのポートＰｓの組を２つのエンドホストがそれぞれ管理する。パケットの宛先アドレスを動的に切り替えることで、マルチホームホストは特定の通信経路障害に強いデータ通信が可能となる。
【００２４】
一方、図１に示すクライアント１０１、サーバ１０３はＩＰアドレスをそれぞれひとつしか持たない（ＡｃあるいはＡｓ）ホストであり、ＲＦＣ２９６０標準のＳＣＴＰ通信では、通信経路１０４でしか通信が行えない。そこで、ゲートウェイ（Ｇ）１０２を用いた通信の冗長化方法が提案されている。以下にそれを説明する。
【００２５】
クライアント１０１は、サーバ１０３へのアソシエーション確立時にゲートウェイ１０２のＩＰアドレスＡｇをあたかもクライアント１０１の有する第２のアドレスのようにサーバ１０３に通知する。これにより、サーバ１０３はアソシエーション管理情報にクライアントのアドレスとしてＡｃとＡｇを登録し、状況に応じてアドレスＡｇ、すなわちゲートウェイ１０２宛にパケットを送信する。本パケットの送信元アドレス、送信元ポート、宛先アドレス、宛先ポートはそれぞれＡｓ、Ｐｓ、Ａｇ、Ｐｃである。
【００２６】
ゲートウェイ１０２は、サーバ１０３から受信したパケットの送信元アドレス、宛先アドレスを更新し、アドレスＡｃ、すなわちクライアント１０１にパケットを転送する。本パケットの送信元アドレス、送信元ポート、宛先アドレス、宛先ポートはそれぞれＡｇ、Ｐｓ、Ａｃ、Ｐｃである。
【００２７】
同様にして、クライアント１０１がアドレスＡｇ、すなわちゲートウェイ１０２宛にパケットを送信すると、ゲートウェイ１０２は送信元アドレス、宛先アドレスを更新し、アドレスＡｓ、すなわちサーバ１０３に転送する。
【００２８】
このようにクライアント１０１及びゲートウェイ１０２の機能により、クライアント１０１とサーバ１０３は通信経路１０４と通信経路１０５、１０６の２つの経路を使用してマルチホームホストと同様のＳＣＴＰ通信を行うことができる。
【００２９】
上記のように、ゲートウェイ１０２はパケットを転送する際、送信元及び宛先ＩＰアドレスの変更は行うが、ポート番号については変更しない。したがって、クライアント１０１が自身の使用中ポート番号Ｐｃを用いて他のアソシエーション、例えば、ＩＰアドレスＡｓ１、ポート番号Ｐｓのサーバへ同時にアクセスする場合は、どちらのアソシエーションでもクライアント１０１とゲートウェイ１０２間のパケットの送信元及び宛先識別子がクライアント１０１についてはＩＰアドレスＡｃ、ポート番号Ｐｃ、ゲートウェイ１０２についてはＩＰアドレスＡｇ、ポート番号Ｐｓとなってしまい、パケットが属するアソシエーションの識別ができなくなってしまう。
【００３０】
本発明はこれを識別可能にするものである。すなわち、クライアント１０１がひとつのポート番号Ｐｃを使用して、複数のサーバと通信を行う際、それらサーバのポート番号が一致する場合でもゲートウェイ１０２を用いた複数経路通信を実現するものである。
【００３１】
以下、その実現方法について説明する。
【００３２】
図３、図４は、本実施形態における通信ネットワークシステムにおいて、ＳＣＴＰ通信を行う場合の、クライアント、ゲートウェイ、サーバそれぞれのトランスポートアドレス（ＩＰアドレス及びポート番号の組）の関係を示す図である。
【００３３】
なお、これ以降、ＩＰアドレスがＸ、ポート番号がＹのトランスポートアドレスを（Ｘ：Ｙ）のように表記する。
【００３４】
図３は、クライアント（Ｃ１）２０１がトランスポートアドレス（Ａｃ１：Ｐｃ１）を使用してサーバ（Ｓ１）２０２及びサーバ（Ｓ２）２０３のそれぞれのポートＰｓ１に同時に接続する場合を示している。
【００３５】
まず、クライアント２０１とサーバ２０２との通信について説明する。クライアント２０１とサーバ２０２が直接パケットを送受信する経路２０４では、（Ａｃ１：Ｐｃ１）−（Ａｓ１：Ｐｓ１）間の通信として識別される。ゲートウェイ１０２を経由する経路、すなわち経路２０５では、（Ａｃ１：Ｐｃ１）−（Ａｇ：Ｐｓ１）間の通信として、また経路２０６では、（Ａｇ：Ｐｃ１）−（Ａｓ１：Ｐｓ１）間の通信として識別される。
【００３６】
次にクライアント２０１とサーバ２０３との通信について説明する。
【００３７】
クライアント２０１とサーバ２０３が直接パケットを送受信する経路２０７では、（Ａｃ１：Ｐｃ１）−（Ａｓ２：Ｐｓ１）間の通信として識別される。
【００３８】
ゲートウェイ（Ｇ）１０２を経由する経路では、経路２０８は（Ａｃ１：Ｐｃ１）−（Ａｇ：Ｐｇ１）間の通信として、また経路２０９では、（Ａｇ：Ｐｃ１）−（Ａｓ２：Ｐｓ１）間の通信として識別される。
【００３９】
ここで、経路２０５と経路２０８を比較すると、ゲートウェイ１０２が使用するポートがそれぞれＰｓ１、Ｐｇ１となっており、一致していないことから、これに基づきクライアント２０１及びゲートウェイ１０２は受信パケットがサーバ２０２とのアソシエーションに属するものかサーバ２０３とのアソシエーションに属するものかが区別できる。
【００４０】
なお、ゲートウェイ１０２が経路２０５、２０６の間でパケットを転送する際には、ＩＰアドレスを変更するだけ（経路２０５から２０６への転送は、送信元をＡｃ１からＡｇに、宛先をＡｇからＡｓ１に、経路２０６から２０５への転送は、送信元をＡｓ１からＡｇに、宛先をＡｇからＡｃ１に変更する）でよかったが、経路２０８、２０９の間では、IPアドレスの変更に加え、ポート番号の変更も必要となる（経路２０８から２０９への転送は、宛先ポートをＰｇ１からＰｓ１に、経路２０９から２０８への転送は、送信元ポートをＰｓ１からＰｇ１に変更する）。
【００４１】
図４は、クライアント２０１とサーバ２０３が通信している状態で、新たに別のクライアント（Ｃ２）３０１が、クライアント２０１のポート番号と同じポート番号Ｐｃ１を偶然使用し、同じサーバ２０３のポートＰｓ１に接続した場合を示す図である。
【００４２】
クライアント２０１とサーバ２０３との通信については、図３と同じであるので、その説明は省略する。したがって、ここでは、図３に示す実施形態との差異、すなわち、クライアント３０１とサーバ２０３の通信について説明する。
【００４３】
クライアント３０１とサーバ２０３が直接パケットを送受信する経路３０２では、（Ａｃ２：Ｐｃ１）−（Ａｓ２：Ｐｓ１）間の通信として識別される。ゲートウェイ１０２を経由する経路、すなわち経路３０３では、（Ａｃ２：Ｐｃ１）−（Ａｇ：Ｐｓ１）間の通信として、また経路３０４では、（Ａｇ：Ｐｇ２）−（Ａｓ２：Ｐｓ１）間の通信として識別される。
【００４４】
ここで、経路２０９と経路３０４を比較すると、ゲートウェイ１０２が使用するポートがそれぞれＰｃ１、Ｐｇ２となっており、一致していないことから、これに基づきゲートウェイ１０２及びサーバ２０３は、受信パケットがクライアント２０１とのアソシエーションに属するものかクライアント３０１とのアソシエーションに属するものかが区別できる。
【００４５】
なお、ゲートウェイ１０２が経路３０３、３０４の間でパケットを転送する際に必要なポート番号の変更は、経路３０３から３０４への転送では、送信元ポートをＰｃ１からＰｇ２に、経路３０４から３０３への転送では、宛先ポートをＰｇ２からＰｃ１にすればよい。
【００４６】
次に、本実施形態における通信ネットワークシステムで用いられるクライアント、サーバ、及びゲートウェイの構成例について説明する。
【００４７】
図５は、図１に示すクライアント１０１の構成例を示す図である。
【００４８】
同図において、このクライアント１０１は、ネットワークインタフェースカード（ＮＩＣ）４０６、ＯＳ（オペレーティングシステム）４１１、アプリケーションプログラム（ＡＰＬ）４０１から構成される。ＯＳ４１１は、様々なＡＰＬ４０１の実行環境を装置上に実現するための基本プログラムであり、装置初期化モジュール（ＩＮＩＴ）４１０、ファイルシステム（ＦＳ）４０９、ネットワークモジュール（ＮＥＴ）４０８から構成される。ＮＩＣ４０６はＥｔｈｅｒｎｅｔ（登録商標）等の電気通信回線４０７を介して通信ネットワーク１００に接続する。
【００４９】
ＮＥＴ４０８は、クライアント１０１が通信ネットワーク１００の他ホストと通信するためのプロトコル処理を司り、レイヤ２処理部（Ｌ２）４０５、ＩＰ処理部（ＩＰ）４０４、ＴＣＰ処理部（ＴＣＰ）４０２、ＳＣＴＰ処理部（ＳＣＴＰ）４０３から構成される。
【００５０】
上記クライアント１０１において、ＡＰＬ４０１がＳＣＴＰによるアプリケーションデータ通信を行う場合、対象データをＳＣＴＰ４０３に渡して、ＳＣＴＰパケットを生成し、ＩＰ４０４にてルーティング等のＩＰ処理を行い、Ｌ２（４０５）にてレイヤ２ヘッダを付加した後、ＮＩＣ４０６から電気通信回線４０７に送出する。
【００５１】
また、電気通信回線４０７から受信したパケットは、ＮＩＣ４０６、Ｌ２（４０５）、ＩＰ（４０４）を経由して、ＳＣＴＰ４０３に到達し、アプリケーションデータが含まれていた場合には、それをＡＰＬ４０１に渡す。なお、サーバ１０３も同様の構成である。
【００５２】
図６は、クライアント１０１がＳＣＴＰ４０３内で管理するアソシエーション情報テーブルの一例を示す図である。このアソシエーション情報テーブル５００は、アソシエーション確立時に生成され、アソシエーションの数だけ存在する。
【００５３】
本例では、図３におけるクライアント２０１とサーバ２０３との通信を例に取りあげ、その場合の各項目に格納される格納値を例示している。
【００５４】
図３において、ローカルアドレス５０１は、クライアント２０１がＳＣＴＰ通信に使用するアドレスを格納する。受信プライマリアドレス５０２はローカルアドレス５０１が複数存在する場合に、どちらのアドレスを主にパケット受信に使用するかを示す。本例では、ローカルアドレス５０１に２つのアドレスが格納されている場合を例示しているが、このうちＡｇはゲートウェイ１０２のアドレスであり、クライアント２０１が実際にこのアドレスを宛先としたパケットを直接受信することはない。
【００５５】
しかし、通信相手のサーバ２０３が認識する２つの経路はクライアント自身のアドレスＡｃ１宛とゲートウェイ１０２のアドレスＡｇ宛であり、クライアント２０１がサーバ２０３に対しどちらの経路を使用するか指示した内容を管理するため、ローカルアドレス５０１としてＡｇも登録し、受信プライマリアドレス５０２を状況に応じて設定する。
【００５６】
ローカルポート５０３は、ＯＳ４１１がこのアソシエーションを使用するアプリケーション４０１に割り当てたＳＣＴＰポート番号である。ただし、アプリケーションが特定のポート番号を指定する場合もある。すなわち、ローカルアドレスが例え複数あったとしても、１アソシエーションで使用するローカルポートは１つだけである。
【００５７】
対向アドレス５０４及び対向ポート５０６は、送受信パケットに設定される通信相手のトランスポートアドレスである。ここで、（Ａｓ２：Ｐｓ１）はクライアント２０１にとって経路２０７を使用するときの通信相手のトランスポートアドレスであり、（Ａｇ：Ｐｇ１）は経路２０８を使用するときの通信相手のトランスポートアドレスである。
【００５８】
なお、どちらの経路を使用する場合も、クライアント２０１が直接送受信するパケットに設定するクライアント２０１のトランスポートアドレスは（Ａｃ１：Ｐｃ１）であり、アドレスＡｇはローカルアドレス５０１に登録していても使用しない。
【００５９】
送信プライマリアドレス５０５は対向アドレスが複数存在する場合に、どちらのアドレス宛に主にパケットを送信するかを示す。なお、サーバ１０３がＳＣＴＰ４０３内で管理するアソシエーション情報テーブルも同様の構成である。
【００６０】
次に、ゲートウェイ１０２の構成について説明する。図７は、ゲートウェイ１０２の構成例を示す図である。なお、ゲートウェイ１０２はアプリケーションプログラムを含まない以外はクライアント１０１と基本的に同一構成をとる。
【００６１】
同図において、ＯＳ６０１、ＮＥＴ６０２、ＩＰ６０３、Ｌ２（６０４）はクライアント１０１のＯＳ４１１、ＮＥＴ４０８、ＩＰ４０４、Ｌ２（４０５）と同じである。ただし、ＩＰ６０３において、クライアント１０１、サーバ１０３から受信したＳＣＴＰパケットの送信元ＩＰアドレス／ＳＣＴＰポート、宛先ＩＰアドレス／ＳＣＴＰポートを変更してサーバ１０３、クライアント１０１に転送するためのＳＣＴＰ制御モジュールＳＣＴＰＣＴＬ６０７が存在する。ＮＩＣ６０５は電気通信回線６０６を介して通信ネットワーク１００に接続している。
【００６２】
図８は、ゲートウェイ１０２のＳＣＴＰＣＴＬ６０７にて管理するアソシエーション管理テーブルの一例を示す図である。このアソシエーション管理テーブル７００はゲートウェイ１０２が関与する全てのアソシエーションを一括して管理するテーブルであり、図中テーブル内の各１段がひとつのアソシエーションに対応する。これらの情報は、クライアント１０１がゲートウェイ１０２経由の経路を使用開始するのに先立ってゲートウェイ１０２に登録する。
【００６３】
同図において、アソシエーション番号７０１はテーブル内の各アソシエーション情報にユニークに割り当てる参照値である。クライアントアドレス７０２、クライアントポート７０３はそれぞれクライアントのＩＰアドレス、ＳＣＴＰポートを格納する。ゲートウェイポート７０４は、そのアソシエーションに属するパケットをクライアント１０１がゲートウェイ１０２に送信するときに宛先とするポート番号である。サーバアドレス７０５、サーバポート７０６はそれぞれサーバのＩＰアドレス、ＳＣＴＰポートを格納する。
【００６４】
ゲートウェイポート７０７は、そのアソシエーションに属するパケットをサーバ１０３がゲートウェイ１０２に送信するときに宛先とするポート番号である。フラグ７０８はアソシエーション情報の登録状態を示すものであり、種別として登録情報(“−”)、仮登録情報（“仮”）、仮登録ただし再登録情報あり(“再有”)、再登録情報(“再”)がある。リンク７０９は、同一アソシエーションに関し再登録情報を持つ仮登録情報(“再有”)と、その再登録情報(“再”)を関連づける。
【００６５】
次に、図８に示すアソシエーション管理テーブルに格納される格納データを用いて、アソシエーション情報の詳細について説明をする。なお、この説明に際して、図３の通信ネットワークシステムを参照する。
【００６６】
アソシエーション番号７０１が１の情報(本例１段目の情報)は、クライアント２０１が（Ａｃ１：Ｐｃ１）のトランスポートアドレスを使用してサーバ２０２のトランスポートアドレス（Ａｓ１：Ｐｓ１）に接続していることを示し、クライアント２０１とサーバ２０２がゲートウェイ１０２を経由せず互いに直接相手のアドレスを指定してパケットを送受信する場合、これら２つのトランスポートアドレスが使用されている。
【００６７】
一方、ゲートウェイ１０２経由のパケットについては、クライアント２０１が送信する場合は、送信元が（Ａｃ１：Ｐｃ１）、宛先が（Ａｇ：Ｐｓ１）となる。なお、Ａｇはゲートウェイ１０２のＩＰアドレスであり、本テーブルには示されない。
【００６８】
ゲートウェイ１０２がクライアント２０１に送信するパケットは、送信元が（Ａｇ：Ｐｓ１）、宛先が（Ａｃ１：Ｐｃ１）である。
【００６９】
同様にして、サーバ２０２がゲートウェイ１０２に送信する場合は、送信元が（Ａｓ１：Ｐｓ１）、宛先が（Ａｇ：Ｐｃ１）であり、ゲートウェイ１０２がサーバ２０２に送信する場合は、送信元が（Ａｇ：Ｐｃ１）、宛先が（Ａｓ１：Ｐｓ１）である。この１段目の情報が登録されている状態で、ゲートウェイ１０２が送信元（Ａｃ１：Ｐｃ１）、宛先（Ａｇ：Ｐｓ１）のパケットを受信すると、パケットの送信元トランスポートアドレスと宛先ポート番号の組（Ａｃ１：Ｐｃ１）−Ｐｓ１を、テーブル７００内の(クライアントアドレス７０２：クライアントポート７０３)−ゲートウェイポート７０４の組、または（サーバアドレス７０５：サーバポート７０６）−ゲートウェイポート７０７の組で一致するものがあるか検索する。本例では、アソシエーション番号７０１が１のアソシエーションのクライアント送信パケットに一致するので、本パケットの送信元を(Ａｇ，Ｐｃ１)、宛先を（Ａｓ１：Ｐｓ１）に変更してサーバ２０２に送信する。また、サーバ２０２から送信元（Ａｓ１：Ｐｓ１）、宛先（Ａｇ，Ｐｃ１）のパケットを受信した場合も同様にテーブル７００を検索し、１段目の情報に基づいて、パケットの送信元及び宛先を変更してクライアント２０１に送信する。
【００７０】
なお、パケット転送の際のテーブル検索時には、フラグ７０８が‘再有’となっている段は対象外とする。
【００７１】
以上からもわかるように、ゲートウェイ１０２が受信するパケットの（送信元ＩＰアドレス：送信元ポート番号）−宛先ポート番号の組に一致するエントリは、（クライアントアドレス７０２：クライアントポート７０３）−ゲートウェイポート７０４の組及び（サーバアドレス７０５：サーバポート７０６）−ゲートウェイポート７０７の組の中で唯一である必要があるそのため、アソシエーション情報を新規に本テーブルに登録する際は、それ以前に登録済みのアソシエーションと情報が重複しないようにする。以下に、その方法について説明する。
【００７２】
まず、新規アソシエーションのクライアント２０１−ゲートウェイ１０２間で送受信するパケットが、登録済みアソシエーションで送受信するパケットと重複しないようにするには、クライアント２０１自身が適当なゲートウェイポート７０４を指定することで実現することが可能である。
【００７３】
例えば、図８においてアソシエーション番号７０１において１のアソシエーションが登録済みの状態で、アソシエーション番号７０１において２のアソシエーションを新規登録する場合、クライアントのトランスポートアドレスが共に（Ａｃ１：Ｐｃ１）であるためゲートウェイポート７０４のとりかたによっては、クライアント２０１のトランスポートアドレスとゲートウェイポートの組が完全に一致してしまうことになる。
【００７４】
しかし、クライアント２０１のトランスポートアドレスが共通であるということは、同一のクライアント２０１上で２つのアソシエーションを管理していると想定されるので、そのクライアント２０１が、アソシエーション情報テーブル５００（図６参照）のローカルポート５０３がＰｃ１となっているクライアント内全てのアソシエーション情報テーブル５００について、対向アドレス５０４のアドレスＡｇに対応する対向ポート５０６を調査した上で、それらと重ならない未使用番号を新規アソシエーションにおけるゲートウェイポート７０４とすればよい（図中の点線枠ａ参照）。
【００７５】
一方、トランスポートアドレスが一致しない場合は、ゲートウェイポートが一致しても問題ない。なお、アソシエーション情報テーブル５００は、他のクライアントからのアソシエーションを受け付けた場合（すなわち、そのアソシエーションについては、サーバとして動作する場合）でも同様に作成される。したがって、上記ゲートウェイポートの選択方法は、ゲートウェイ１０２のアソシエーション情報テーブル７００でいえば、登録済みアソシエーションの（クライアントアドレス７０２：クライアントポート７０３）−ゲートウェイポート７０４の組及び（サーバアドレス７０５：サーバポート７０６）−ゲートウェイポート７０７の組のどれとも重複しないことを保証する。
【００７６】
図８の４段目のアソシエーションは、クライアント（ＩＰアドレスはＡｓ２）がゲートウェイポートＰｇ３を選択するにあたり、トランスポートアドレス（Ａｓ２：Ｐｓ１）を使用している登録済みアソシエーション（２段目と３段目）の、ゲートウェイ１０２と本クライアントがパケットを送受信する際、使用するゲートウェイポートＰｃ１、Ｐｇ２を避ける（図中の点線枠ｂ参照）。すなわち、クライアント２０１のトランスポートアドレスとゲートウェイポートの組でみたときに重複が発生しない限り、ゲートウェイポート７０４はサーバポート７０６と同じ値を優先的に選択し、ゲートウェイポート７０７はクライアントポート７０３を選択する。このようにすれば、ゲートウェイ１０２では、パケット転送の際ＩＰアドレスのみ変更すればよく、転送に必要な処理を減らすことができる。
【００７７】
次に、新規アソシエーションのサーバ−ゲートウェイ１０２間で送受信するパケットが、登録済みアソシエーションのパケットと重複しないようにする方法について、図９〜図１１に示すフローチャートを用いて説明する。
【００７８】
図９は、ゲートウェイ１０２がクライアント２０１からアソシエーション登録要求を受信したときの処理手順を示すフローチャートである。
【００７９】
同図において、クライアント２０１が自身のトランスポートアドレス（Ａｃ：Ｐｃ）、接続するサーバのトランスポートアドレス（Ａｓ：Ｐｓ）、選択したゲートウェイポートＰｇをゲートウェイ１０２に通知すると、ゲートウェイ１０２はアソシエーション管理テーブル７００に登録済みのアソシエーションに関し、クライアントアドレス７０２、クライアントポート７０３、サーバアドレス７０５、サーバポート７０６がそれぞれＡｃ、Ｐｃ、Ａｓ、Ｐｓであるものが存在するかどうかをチェックする（ステップＳ１２０１）。
【００８０】
ステップＳ１２０１で存在すると判定（ステップＳ１２０１でＹｅｓ）された場合は、同一アソシエーションの２重登録を避けるため、登録拒否応答をクライアントに送信する（ステップＳ１２１０）。
【００８１】
一方、ステップＳ１２０１で存在しないと判定（ステップＳ１２０１でＮｏ）された場合は、クライアント２０１−ゲートウェイ１０２間で使用するアドレス情報の（Ａｃ：Ｐｃ）及びＰｇの組に関し、クライアントアドレス７０２、クライアントポート７０３、ゲートウェイポート７０４の組、またはサーバアドレス７０５、サーバポート７０６、ゲートウェイポート７０７の組に一致する登録済みアソシエーションが存在するかどうかをチェックする（ステップＳ１２０２）。
【００８２】
ステップＳ１２０２の判定で存在するとの判定がなされた場合（ステップＳ１２０２で登録済み）、すなわち登録済みの場合は、クライアントが正しくゲートウェイポートを選択していないことになるので、登録拒否応答をクライアントに送信する（ステップＳ１２１０）。
【００８３】
一方、ステップＳ１２０２の判定で存在しないとの判定がなされた場合（ステップＳ１２０２で未登録）、すなわち未登録の場合は、サーバ−ゲートウェイ１０２間で使用するアドレス情報として（Ａｓ：Ｐｓ）及びＰｃについて、同様のチェックを行う（ステップＳ１２０３）。
【００８４】
ステップＳ１２０３で未登録であると判定（ステップＳ１２０３で未登録）された場合は、（Ａｃ：Ｐｃ）−Ｐｇの組及び（Ａｓ：Ｐｓ）−Ｐｃの組がアソシエーション情報テーブル７００内においてユニークであることになるので、そのままテーブルに登録（ステップＳ１２１１）し、登録応答をクライアントに送信する（ステップＳ１２１２）。
【００８５】
一方、ステップＳ１２０３の判定で（Ａｓ：Ｐｓ）−Ｐｃの組が登録済みであると判定（ステップＳ１２０３で登録済み）された場合、これを新規アソシエーションのものとして登録することができない。そこで、ゲートウェイポートとしてＰｃの代わりに別のものＰｇｃを選択する（ステップＳ１２０４）。Ｐｇｃの条件としては（Ａｓ：Ｐｓ）−Ｐｇｃの組がテーブルに未登録であり、かつトランスポートアドレス（Ａｃ：Ｐｇｃ）を使用しているアソシエーションが存在しないものとする。後者の条件は、ここで処理している新規アソシエーションを、のちにクライアント自身の判断でとりやめ、クライアントポートを変更して改めてアソシエーションを確立しなおす（再登録）場合に、クライアントポートとしてＰｇｃを使用すれば再登録情報の重複が発生しないことをあらかじめ保証するためのものである。
【００８６】
ステップＳ１２０４において上記のようなポートＰｇｃが選択できた場合（ステップＳ１２０５でＹｅｓ）は、新規アソシエーション情報としてＡｃ、Ｐｃ、Ｐｇ、Ａｓ、Ｐｓ、Ｐｇｃをそれぞれクライアントアドレス７０２、クライアントポート７０３、ゲートウェイポート７０４、サーバアドレス７０５、サーバポート７０６、ゲートウェイポート７０７として登録し、さらにフラグ７０８に本情報が仮登録であることを示す“仮”フラグを設定する（ステップＳ１２０８）。ここで、仮登録とは、ゲートウェイ１０２−サーバ間でパケットを送受信する場合に、ゲートウェイポートとしてクライアントポートと同一のＰｃ以外のポート（すなわちＰｇｃ）を使用することがサーバにまだ通知されておらず、現段階ではサーバが新規アソシエーションとしてゲートウェイ１０２とパケット送受信を行えない、ということを意味している。
【００８７】
ステップＳ１２０８の後、ステップＳ１２０９において仮登録応答をクライアントに送信するが、このとき、ゲートウェイ１０２が選択したサーバ通信用のゲートウェイポートのＰｇｃをクライアントに通知する（ステップＳ１２０９）。
【００８８】
一方、ステップＳ１２０５の判定で、Ｐｇｃが選択できないと判定（ステップＳ１２０５でＮｏ）された場合は、選択条件をゆるめて再度選択する（ステップＳ１２０６）。ここでは、クライアントがクライアントポートを変更してアソシエーションを確立しなおすことは考慮しない。それでもＰｇｃが選択できなければ、サーバのトランスポートアドレス（Ａｓ：Ｐｓ）とゲートウェイ１０２が通信するためのゲートウェイポートがひとつも空いておらず、このアソシエーションに関しゲートウェイ１０２を使用することはできない。よって、登録拒否応答をクライアントに送信する（ステップＳ１２１０）。
【００８９】
ステップ１２０７でＰｇｃが選択できた場合（ステップＳ１２０７でＹｅｓ）は、ステップＳ１２０８、ステップＳ１２０９に移行し、上記同様の処理がなされる。このとき、図８に示す６段目のアソシエーション情報は、上述した一連の処理に基づき、サーバのトランスポートアドレス（Ａｓ１：Ｐｓ１）とクライアントポートＰｃ１の組が、既に1段目で登録済みであるため、それと重複しないゲートウェイポート７０７としてＰｇ６をゲートウェイ１０２が割り当て、仮登録としている。
【００９０】
図１０は、図９のフローチャートにより仮登録したアソシエーションについて、クライアントがポートを変更して再登録する場合のゲートウェイ１０２での処理手順を示すフローチャートである。ここで、クライアントがポートを変更する意図は、サーバ−ゲートウェイ１０２間のパケット送受信で使用するゲートウェイポートを、クライアントポートと一致させることで、ゲートウェイ１０２のパケット転送処理においてパケットのポート変更を不要にし、処理遅延を小さくすることである。
【００９１】
図１０において、クライアントが、仮登録済みのアソシエーション（Ａｃ：Ｐｃ）−（Ａｓ：Ｐｓ）に関しクライアントポートをＰｃ’に変更すること、クライアント−ゲートウエイ１０２間のパケット送受信用のゲートウェイポートとしてＰｇ’を使用することをゲートウェイ１０２に通知すると、まず、ステップＳ１３０１にて、対応する仮登録済みアソシエーションが存在するかどうかがチェックされる。
【００９２】
ステップＳ１３０１の判定において、存在しないと判定（ステップＳ１３０１でＮｏ）された場合は、再登録拒否応答をクライアントに送信する（ステップＳ１３０９）。
【００９３】
一方、ステップＳ１３０１の判定で、存在したと判定（ステップＳ１３０１でＹｅｓ）された場合は、ステップＳ１２０２（図９参照）と同様（Ａｃ：Ｐｃ’）−Ｐｇ’が未登録かどうかチェックする(ステップＳ１３０２)。
【００９４】
ステップＳ１３０２の判定で、登録済みと判定（ステップＳ１３０２で登録済み）された場合は、クライアントが正しくＰｇ’を選択していないので、ステップＳ１３０９に進み、再登録拒否応答がクライアントに送信される。一方、未登録と判定（ステップＳ１３０２で未登録）された場合は、ステップＳ１２０３と同様、（Ａｓ：Ｐｓ）−Ｐｃ’が未登録かどうかをチェックする（ステップＳ１３  ０３）。
【００９５】
ステップＳ１３０３の判定で、未登録と判定（ステップＳ１３０３で未登録）された場合は、仮登録情報のフラグ７０８を“仮”から再登録情報ありを意味する“再有”に変更し、それとは別に新規に再登録情報としてＡｃ、Ｐｃ’、Ｐｇ’、Ａｓ、Ｐｓ、Ｐｃ’をクライアントアドレス７０２、クライアントポート７０３、ゲートウェイポート７０４、サーバアドレス７０５、サーバポート７０６、ゲートウェイポート７０７、として登録する。
【００９６】
フラグ７０８は再登録情報を意味する“再”に設定し、リンク７０９は“再有”フラグを立てた仮登録情報のアソシエーション番号７０１のインデックス値を格納する。
【００９７】
また、“再有”フラグを立てた仮登録情報のリンク７０９には、再登録情報のアソシエーション番号７０１のインデックス値を格納する（ステップＳ１３１０）。
その後、再登録応答をクライアントに送信する（ステップＳ１３１１）。
【００９８】
一方、ステップＳ１３０３の判定で、（Ａｓ：Ｐｓ）−Ｐｃ’が登録済みであると判定（ステップＳ１３０３で登録済み）された場合は、ゲートウェイ１０２−サーバ間のパケット送受信におけるゲートウェイポートとしてはＰｃ’が使えないので、代わりのポートＰｇｃを選択する（ステップＳ１３０４）。ここで、Ｐｇｃの条件はステップＳ１２０４と同じである。これ以降、ステップＳ１３０５、ステップＳ１３０６、ステップＳ１３０７はそれぞれステップＳ１２０５、ステップＳ１２０６、ステップＳ１２０７と同様の処理がなされるが、ステップＳ１３０５及びステップＳ１３０７でＰｇｃの選択が成功した場合は、仮登録情報のゲートウェイポート７０７をＰｇｃに更新（ステップＳ１３１２）し、クライアントに対し再登録拒否応答と共にＰｇｃを通知（ステップＳ１３１３）する。
【００９９】
ステップＳ１３０７において、Ｐｇｃの選択に失敗（ステップＳ１３０７でＮｏ）した場合は、ステップＳ１３０９で再登録拒否応答をクライアントに送信する。
【０１００】
本実施形態では、図８の７段目及び８段目のアソシエーションは、７段目が仮登録されていた状態でクライアントがクライアントポート７０３をＰｃ１からＰｃ７に変更する再登録要求をゲートウェイ１０２に行い、８段目が再登録された例である。
【０１０１】
図１１は、図９のフローチャートによって仮登録したアソシエーションについて、サーバが、ゲートウェイ１０２とのパケット送受信に使用するゲートウェイポートの変更する際の、ゲートウェイ１０２でなされる処理手順を示すフローチャートである。
【０１０２】
同図において、サーバがポート更新要求として仮登録済みのアソシエーション
（Ａｃ：Ｐｃ）−（Ａｓ：Ｐｓ）に関し、ゲートウェイ１０２とのパケット送受信に使用するゲートウェイポートとしてＰｇｃ’を使用することをゲートウェイ１０２に通知すると、ゲートウェイ１０２はアソシエーション管理テーブル７００のクライアントアドレス７０２、クライアントポート７０３、サーバアドレス７０５、サーバアドレス７０６がそれぞれＡｃ、Ｐｃ、Ａｓ、Ｐｓであり、フラグ７０８が“仮”または“再有”のアソシエーションが存在するかどうかを検索する（ステップＳ１４０１）、
ステップＳ１４０１の判定で、存在しないと判定（ステップＳ１４０１でＮｏ）された場合は、ポート更新拒否応答をサーバに送信（ステップＳ１４０６）し、存在すると判定（ステップＳ１４０１でＹｅｓ）された場合は、ステップＳ１２０２、ステップＳ１３０２と同様、（Ａｓ：Ｐｓ）−Ｐｇｃ’が未登録かチェックされる（ステップＳ１４０２）。
【０１０３】
ステップＳ１４０２の判定で、登録済みと判定（ステップＳ１４０２で登録済み）された場合は、サーバが正しくＰｇｃ’を選択していないので、ステップＳ１４０６に移行し、ポート更新拒否応答がサーバに送信される。
【０１０４】
一方、ステップＳ１４０２の判定で、未登録と判定（ステップＳ１４０２で未登録）された場合は、ステップＳ１４０１で発見したアソシエーション情報のゲートウェイポート７０７をＰｇｃ’'に更新、フラグ７０８をクリア（“―”）する（ステップＳ１４０３）。さらに、再登録情報へのリンクが存在する場合は、リン
ク７０９及びリンク先の再登録情報を削除（ステップＳ１４０４）し、その後にサーバにポート更新応答が送信（ステップＳ１４０５）される。
【０１０５】
本実施形態では、図８において２段目のアソシエーション情報が存在する状態で新規登録された３段目のアソシエーション、また、３段目のアソシエーション情報が存在する状態で新規登録された５段目のアソシエーション情報は、図１１に示す一連の処理により、仮登録情報のゲートウェイポート７０７がサーバにより更新され、登録済み情報となる。
【０１０６】
図１２は、図１０のフローチャートで再登録済みのアソシエーションについて、仮登録情報を削除する場合の処理手順を示すフローチャートである。
【０１０７】
同図において、クライアントから仮登録情報削除要求としてアソシエーション
（Ａｃ：Ｐｃ）−（Ａｓ：Ｐｓ）を指定されると、ゲートウェイ１０２はクライアントアドレス７０２、クライアントポート７０３、サーバアドレス７０５、サ
ーバポート７０６がそれぞれＡｃ、Ｐｃ、Ａｓ、Ｐｓであり、フラグ７０８が“再有”のアソシエーションが存在するかどうかチェックする（ステップＳ１７０１）。
【０１０８】
ステップＳ１７０１の判定で、存在しないと判定（ステップＳ１７０１でＮｏ）された場合は、仮登録削除拒否応答がクライアントに送信（ステップＳ１７０５）される。
【０１０９】
一方、ステップＳ１７０１の判定で、存在すると判定（ステップＳ１７０１でＹｅｓ）された場合は、対象アソシエーション情報のリンク７０９に示されたアソシエーション情報、すなわち再登録情報のフラグ７０８、リンク７０９をクリアする（ステップＳ１７０２）。そして仮登録情報を削除（ステップＳ１７０３）し、クライアントに仮登録削除応答を送信（ステップＳ１７０４）する。
【０１１０】
次に、クライアント、ゲートウェイ、サーバ間の信号シーケンスを用いて本実施形態における通信ネットワークシステム全体の動作について説明する。
【０１１１】
図１３は、クライアント１０１がトランスポートアドレス（Ａｃ：Ｐｃ）からサーバ１０３のトランスポートアドレス（Ａｓ：Ｐｓ）にアソシエーションを確立する際、ゲートウェイ１０２にアソシエーション登録要求を行い、ゲートウェイ１０２ではゲートウェイポートの重複が発生することなく登録に成功し、クライアント１０１−サーバ１０３間のＳＣＴＰ通信においてゲートウェイ１０２経由の経路が使用可能になるまでの一連の流れを示すシーケンスである。
【０１１２】
同図において、まず、クライアント１０１はＳＣＴＰアソシエーションを確立するためのＩＮＩＴメッセージ（ＳＣＴＰ  ＩＮＩＴ（Ａｃ））９０１をサーバ１０３に送信する。このＩＮＩＴメッセージには、クライアントが通信に使用するＩＰアドレスを列記する必要があるが、この段階ではクライアントが実際に保有
するアドレスＡｃのみを設定する。
【０１１３】
クライアント１０１は、サーバ１０３からの応答を待つのと並行して、（Ａｃ：Ｐｃ）を使用する他のアソシエーションでかつゲートウェイ１０２を使用しているものがあるかどうかをチェックし、ある場合は、それらのゲートウェイポートと重複しないようなポートＰｇを選択（９０２）する。ここで、もし可能ならば、ＰｇとしてＰｓを選択するとよい。
【０１１４】
クライアント１０１はアソシエーション登録要求９０３をゲートウェイ１０２に送信する。図１４は、アソシエーション登録要求メッセージのフォーマット例を示す図である。
【０１１５】
同図において、アソシエーション登録要求メッセージ２１００のアソシエーション登録要求２１０１は本メッセージの識別子である。クライアントＩＰアドレス２１０２、クライアントポート２１０３、サーバＩＰアドレス２１０４、サーバポート２１０５は、クライアント１０１が登録したいアソシエーションのクライアント及びサーバのトランスポートアドレスを設定する。例えば、図１３のシーケンスでは、それぞれＡｃ、Ｐｃ、Ａｓ、Ｐｓを設定する。ゲートウェイポート２１０６は、クライアント１０１がゲートウェイ１０２とのパケット送受信用に選択したゲートウェイポートを設定し、例えば、図１３のシーケンスでは、Ｐｇを設定する。アソシエーション登録要求メッセージ２１００は、ＵＤＰ／ＩＰパケットに格納されサーバ１０３に送信される。図１５は、ＵＤＰ／ＩＰパケットのフォーマット例を示す図である。
【０１１６】
同図において、ＩＰパケット２０００はＩＰヘッダ２００１、ＵＤＰヘッダ２００２、及びＵＤＰペイロード２００３で構成され、ＵＤＰペイロード２００３には、アソシエーション登録要求メッセージ２１００が格納される。ＩＰヘッダ２００１内の送信元ＩＰアドレス２００４、宛先ＩＰアドレス２００５にはそれぞれクライアント１０１、ゲートウェイ１０２のＩＰアドレスを設定し、図１３の例では、それぞれＡｃ、Ａｇが設定される。
【０１１７】
ＵＤＰヘッダ２００２内の送信元ポート２００６、宛先ポート２００７には、それぞれクライアント１０１、ゲートウェイ１０２がアソシエーション登録要求メッセージ送受信のために使用するＵＤＰポート番号が設定される。本ポート番号は、クライアント１０１がゲートウェイ１０２に登録しようとしているＳＣＴＰポート番号とは無関係であり、例えば、クライアントーサーバ間であらかじめ取り決めがなされる。本ＵＤＰポートは、クライアント１０１及びサーバ１０２がゲートウェイ１０２との間で送受信するアソシエーション登録／再登録／削除などの制御メッセージをＵＤＰ／ＩＰパケットで送信する場合に共通に使用される。
【０１１８】
図１３に戻り、ゲートウェイ１０２がアソシエーション登録要求メッセージ９０３を受信すると、ゲートウェイ１０２は図９に示したアソシエーション登録要求受信処理を行う。
【０１１９】
図１３のシーケンスでは、サーバ１０３のトランスポートアドレス（Ａｓ：Ｐｓ）とゲートウェイポートとしてのＰｃを組み合わせたものが、アソシエーション管理テーブル７００内に存在せず（９０４）、Ａｃ、Ｐｃ、Ｐｇ、Ａｓ、Ｐｓ、Ｐｃがそれぞれクライアントアドレス７０２、クライアントポート７０３、ゲートウェイポート７０４、サーバアドレス７０５、サーバポート７０６、ゲートウェイポート７０７に登録でき（９０５）、アソシエーション登録応答メッセージ９０６をクライアント１０１に送信する。
【０１２０】
アソシエーション登録応答メッセージはアソシエーション登録要求メッセージ同様、ＵＤＰ／ＩＰパケット２０００で送信される。そのときのＵＤＰペイロード２００３には、アソシエーション登録応答メッセージの識別子のみが格納される。クライアント１０１が、アソシエーション登録応答メッセージ９０６を受信するのと並行して、サーバ１０３からＩＮＩＴ＿ＡＣＫメッセージ９０７を受信すると、ＣＯＯＫＩＥ＿ＥＣＨＯメッセージ９０８、ＣＯＯＫＩＥ＿ＡＣＫメッセージ９０９を送受信し、クライアント１０１−サーバ１０３間でアソシエーションを確立する。
【０１２１】
クライアント１０１、サーバ１０３はそれぞれが保有するアソシエーション情報テーブル５００に自身のトランスポートアドレスと対向ホストのトランスポー
トアドレスを設定（９１０、９１１）する。この時点では、確立したアソシエーションは、ゲートウェイ１０２経由の経路を含んでおらず、クライアント１０１及びサーバ１０３は互いに相手のＩＰアドレスを直接、パケットの宛先アドレスに指定することによってのみ通信できる。
【０１２２】
次に、クライアント１０１は、本来マルチホームホストが自身の保有する複数
のＩＰアドレスをアソシエーション内で使用可能にするため相手に通知するＳＣＴＰメッセージであるＡＳＣＯＮＦメッセージ９１２を送信する。このとき、ゲートウェイ１０２のＩＰアドレスであるＡｇを本メッセージに設定する。メッセージを受信したサーバ１０３は、通常のＳＣＴＰプロトコル処理として、トランスポートアドレス（Ａｓ：Ｐｓ）を使用している他のアソシエーションの通信相手が、今通知されたＡｇとクライアントポートＰｃの組で表現されるトランスポートアドレス（Ａｇ：Ｐｃ）を使用していないか確認し、使用していなければＡＳＣＯＮＦ＿ＡＣＫメッセージ９１４でクライアント１０１にＡｇがアソシエーション内で使用可能になったことを通知する。
【０１２３】
そして（Ａｇ：Ｐｃ）を対向トランスポートアドレスとしてアソシエーション情報テーブル５００に追加する（９１５）。ＡＳＣＯＮＦ＿ＡＣＫメッセージ９１４を受信したクライアント１０１はローカルアドレスとしてＡｇを、対向トランスポートアドレスとして（Ａｇ：Ｐｇ）をアソシエーション情報テーブル５００に追加する（９１６）。
【０１２４】
図１６は、図１３の判定９０４で、ゲートウェイ１０２−サーバ１０３間で送受信するパケットのトランスポートアドレス情報が既に他のアソシエーションで登録済みであり、かつサーバ１０３が従来のＳＣＴＰサーバである場合のシーケンスである。
【０１２５】
同図中、１００１〜１００４は図１３に示す９０１〜９０４と同じである。判定１００４において、アソシエーション管理テーブル７００に（Ａｓ：Ｐｓ）−Ｐｃが既に登録済みの場合、ゲートウェイポートとしてＰｃの代わりとなるＰｇｃを選択し（１００５）、Ａｃ、Ｐｃ、Ｐｇ、Ａｓ、Ｐｓ、Ｐｇｃをそれぞれクライアントアドレス７０２、クライアントポート７０３、ゲートウェイポート７０４、サーバアドレス７０５、サーバポート７０６、ゲートウェイポート７０７として新規アソシエーション情報を仮登録（１００６）する。
【０１２６】
その後、クライアント１０１にアソシエーション仮登録応答メッセージ１００７が送信される。図１７は、アソシエーション仮登録応答メッセージのフォーマット例を示す図である。
【０１２７】
同図において、アソシエーション仮登録応答メッセージ２２００は、メッセージ識別子であるアソシエーション仮登録応答２２０１と、ポート候補２２０２で構成される。ポート候補２２０２はＰｇｃを設定するが、Ｐｇｃ以外にも図９に示すフローチャートのステップＳ１２０４の条件を満たすポートを複数設定してもよい。
【０１２８】
図１６に戻り、アソシエーション仮登録応答メッセージ１００７を受信したクライアント１０１は、その時点でクライアントポートを変更してアソシエーション確立を再開できそうか判定する。具体的にはサーバ１０３からのＩＮＩＴ＿ＡＣＫが未受信か（１００８）、ＳＣＴＰ通信を要求したクライアント１０１上のアプリケーションはクライアントポートを特に指定していないか（１００９）を判定する。その後、Ｐｃ以外の未使用ポートＰｃ’と、ゲートウェイポートＰｇ’を選択する（１０１０）。このとき、ゲートウェイ１０２から通知されたＰｇｃがＰｃ’として条件を満たすようであれば、Ｐｇｃを使用する。
【０１２９】
なお、Ｐｇｃが条件を満たさない状況(すなわち使用中)としては、クライアント１０１がゲートウェイ１０２を利用しないＳＣＴＰアソシエーションにトランスポートアドレス（Ａｃ：Ｐｇｃ）を使用している場合がありうる。
【０１３０】
上記（１０１０）でＰｃ’を選択したクライアント１０１はアソシエーション再登録要求メッセージをゲートウェイ１０２に送信（１０１１）する。
【０１３１】
図１８は、アソシエーション再登録要求メッセージのフォーマット例を示す図である。同図に示すように、アソシエーション再登録要求メッセージ２３００は、メッセージ識別子であるアソシエーション再登録要求２３０１と、クライアントＩＰアドレス２３０２、登録済みクライアントポート２３０３、新クライアントポート２３０４、サーバＩＰアドレス２３０５、サーバポート２３０６、ゲートウェイポート２３０７からなる。
【０１３２】
クライアントＩＰアドレス２３０２、登録済みクライアントポート２３０３、サーバＩＰアドレス２３０５、サーバポート２３０６は、再登録対象の仮登録済みアソシエーションのトランスポートアドレスを設定し、図１６の例では、それぞれＡｃ、Ｐｃ、Ａｓ、Ｐｓを設定する。新クライアントポート２３０４は、再登録したいクライアントポートを設定し、図１６の例ではＰｃ’を設定する。
【０１３３】
ゲートウェイポート２３０７はＰｃ’に対応して新たに選択したゲートウェイポートを設定し、図１６の例では、Ｐｇ’を設定する。
【０１３４】
図１６に戻り、アソシエーション再登録要求メッセージ１０１１を受信したゲートウェイ１０２は、図１０に示したアソシエーション再登録要求受信処理を行う。図１６では、（Ａｓ：Ｐｓ）−Ｐｃ’の組がアソシエーション管理テーブルに重複がなかった場合を示しており、その場合は、再登録が行われ、アソシエーション再登録応答メッセージがクライアント１０１に送信（１０１４）される。
【０１３５】
アソシエーション再登録応答メッセージは、メッセージ識別子のみのメッセージであり、ＵＤＰ／ＩＰパケット２０００のＵＤＰペイロード２００３にアソシエーション再登録応答のメッセージ識別子を設定して送信する。その後、クライアント１０１がサーバ１０３からＩＮＩＴ＿ＡＣＫメッセージ１０１５を受信すると、サーバ１０３がアソシエーション確立を開始したことがわかり、クライアントポートの変更は不可能、よって再登録は無駄となってしまうが、ＩＮＩＴ＿ＡＣＫメッセージが一定時間内に受信できない場合には再登録は意味があり、それについては図１９を用いて後述する。
【０１３６】
図１６に戻り、ＩＮＩＴ＿ＡＣＫメッセージ１０１５、ＣＯＯＫＩＥ＿ＥＣＨＯメッセージ１０１６、ＣＯＯＫＩＥ＿ＡＣＫメッセージ１０１７の送受信が完了すると、サーバ１０３、クライアント１０１は確立したアソシエーションの情報をそれぞれが保有するアソシエーション情報テーブル５００に登録（１０１８、１０１９）し、クライアント１０１はゲートウェイ１０２のアドレスＡｇをアソシエーション内で使用可能にするためにＡＳＣＯＮＦメッセージをサーバ１０３に送信する。
【０１３７】
サーバ１０３では、トランスポートアドレス（Ａｓ：Ｐｓ）を使用中の他のアソシエーションが、（Ａｇ：Ｐｃ）を使用しているかどうかが判定（１０２１）される。本シーケンスでは、判定１００４で既にそのようなアソシエーションが存在するとゲートウェイ１０２は認識しているので、サーバ１０３とゲートウェイ１０２の間で異常なデータ不一致が発生していない限り、判定１０２１においても同様の判定がなされる。ここで、サーバ１０３は従来のＳＣＴＰサーバだった場合、Ａｇはアソシエーション内で使用することが許されず、追加失敗のＡＳＣＯＮＦ＿ＡＣＫメッセージがクライアント１０１に送信（１０２２）される。
【０１３８】
クライアント１０１は、ゲートウェイ１０２を経由する経路を使用できないことを知り、アソシエーション削除要求メッセージをゲートウェイ１０２に送信（１０２３）する。アソシエーション削除要求メッセージのフォーマットは、メッセージ識別子としてアソシエーション削除要求を設定する以外は図１４に示すアソシエーション登録要求メッセージ２１００と同じである。
【０１３９】
続いて、削除対象アソシエーションのトランスポートアドレスをクライアントＩＰアドレス２１０２、クライアントポート２１０３、サーバＩＰアドレス２１０４、サーバポート２１０５に設定する。
【０１４０】
アソシエーション削除要求メッセージ１０２３を受信したゲートウェイ１０２はアソシエーション管理テーブル７００から対象情報を削除（１０２４）して、アソシエーション削除応答メッセージをクライアント１０１に送信（１０２５）する。アソシエーション削除応答メッセージは、メッセージ識別子のみのメッセージであり、ＵＤＰ／ＩＰパケット２０００のＵＤＰペイロード２００３にアソシエーション削除応答のメッセージ識別子が設定されて送信される。
【０１４１】
図２０は、図１６のサーバ１０３がクライアント１０１と同様、ＳＣＴＰ通信の通信相手ポートとして、アドレス毎に異なるポート番号を扱える場合のシーケンスである。図２０のステップ１１０１からステップ１１２１までは、図１６に示すステップ１００１からステップ１０２１までと同じである。
【０１４２】
図２０に示す判定１１２１においてトランスポートアドレス（Ａｓ：Ｐｓ）を使用中の他のアソシエーションが（Ａｇ：Ｐｃ）を使用している場合、サーバ１０３はＡｇがゲートウェイ１０２のＩＰアドレスと解釈し、ゲートウェイ１０２−サーバ１０３間のパケット送受信に使用するゲートウェイポートとして、Ｐｃ以外のＰｇｃ’を選択し、Ａｇ宛にポート更新要求メッセージ１１２３を送信する。
【０１４３】
ポート更新要求メッセージのフォーマットは、メッセージ識別子としてポート更新要求を設定する以外は、図１４のアソシエーション登録要求メッセージのフォーマットと同じである。
【０１４４】
図２０のシーケンス例では、Ｐｇｃ’をゲートウェイポート２１０６に設定する。ポート更新要求メッセージを受信したゲートウェイ１０２は、図１１に示したポート更新要求受信処理を行い、アソシエーション管理テーブル７００のアソシエーション情報を更新し（１１２５）、ポート更新応答メッセージ１１２４をサーバ１０３に送信する。
【０１４５】
ポート更新応答メッセージはメッセージ識別子のみのメッセージであり、ＵＤＰ／ＩＰパケット２０００のＵＤＰペイロード２００３にポート更新応答のメッセージ識別子を設定して送信する。ポート更新応答メッセージを受信したサーバ１０３は、アソシエーションヘのＡｇの追加が成功したことを示すＡＳＣＯＮＦ＿ＡＣＫメッセージをクライアント１０１に送信（１１２６）する。
【０１４６】
サーバ１０３、クライアント１０１は、それぞれ（Ａｇ：Ｐｇｃ’）、（Ａｇ：Ｐｇ）を自身の保有するアソシエーション情報テーブル５００に追加する。
【０１４７】
ところで、図１９は、図１６、図２０において、クライアント１０１がＩＮＩＴ＿ＡＣＫメッセージ１０１５、１１１５を受信できなかった場合のシーケンス図である。クライアント１０１がサーバ１０３に送信したＩＮＩＴメッセージ１６０１がネットワーク内で失われてしまった場合は、再送する必要があるが、このとき、クライアント１０１がゲートウェイ１０２にクライアントポートの再登録を行っていたのなら、そのポートを用いてアソシエーションの確立を図る。
【０１４８】
ステップ１６０２〜１６１４までは、図１６のステップ１００２〜ステップ１０１４、図２０のステップ１１０２〜１１１４と同じである。ステップ１６１５において、ＩＮＩＴ＿ＡＣＫメッセージ受信待ちタイマがタイムアウトすると、クライアント１０１はアソシエーションに使用するトランスポートアドレスを
（Ａｃ：Ｐｃ）から（Ａｃ：Ｐｃ’）に変更して、ＩＮＩＴメッセージを（Ａｇ：Ｐｇ’）宛に送信（１６１８）する。
【０１４９】
なお、このＩＮＩＴメッセージには、クライアントＩＰアドレスとしてＡｃと共にＡｇを含んでいる。ＩＮＩＴメッセージを受信したゲートウェイ１０２は、それがＳＣＴＰパケットであるのでアソシエーション管理テーブル７００を参照し、サーバ１０３に転送する。このときＳＣＴＰパケット内のメッセージを特に分析する必要はなく、アプリケーションデータを含むＳＣＴＰパケットと同様にアドレス、ポート変換処理を行えばよい。これ以降は、ＩＮＩＴ＿ＡＣＫメッセージ（１６２０）、ＣＯＯＫＩＥ＿ＥＣＨＯメッセージ（１６２１）、ＣＯＯＫＩＥ＿ＡＣＫメッセージ（１６２２）をゲートウェイ１０２経由で送受信し、クライアント１０１、サーバ１０３間でアソシエーションを確立する。
【０１５０】
サーバ１０３、クライアント１０１は、それぞれ自身が保有するアソシエーション情報テーブル５００にアソシエーション情報を登録（１６２３、１６２４）する。サーバ１０３が通信相手のＩＰアドレスとしてＡｇ、Ａｃの両方を登録することにより、クライアント１０１と直接通信する経路の障害が解消されれば、その時点でクライアント−サーバ問の直接経路も通信に利用することが可能となる。
【０１５１】
次に、クライアント１０１は、アソシエーション登録要求１６０３で登録したポートＰｃを使用する仮登録情報は不要になったので、それを削除するための仮登録削除要求１６２５をゲートウェイ１０２に送信する。仮登録削除要求メッセージのフォーマットは、メッセージ識別子として仮登録削除要求を設定する以外は、図１４のアソシエーション登録要求メッセージのフォーマットと同じである。
【０１５２】
仮登録削除要求１６２５を受信したゲートウェイ１０２は、図１２に示した仮登録削除要求受信処理を行う。アソシエーション管理テーブル７００を更新し、仮登録削除応答１６２７をクライアント１０１に送信する。仮登録削除応答メッセージはメッセージ識別子のみのメッセージであり、ＵＤＰ／ＩＰパケット２０００のＵＤＰペイロード２００３に仮登録削除応答のメッセージ識別子を設定して送信する。
【０１５３】
図２１は、図１９では可能であったクライアントポートの変更が行えない場合のシーケンスである。本実施形態では、例えば、クライアント上のアプリケーションが特定ポートを指定してＳＣＴＰ通信の開始を要求した場合に相当する。なお、ステップ１８０１から１８０９は図１９のステップ１６０１から１６０９までと同じである。
【０１５４】
図２１に示す判定１８０９においてクライアントポートがＰｃ以外に変更できない場合、図１９の例では実施した再登録は行われない。ＩＮＩＴ＿ＡＣＫメッセージ受信待ちがタイムアウトすると（１８１０）、クライアント１０１はゲー
トウェイ１０２経由でＩＮＩＴメッセージ１８１１を送信するが、このとき、クライアント１０１のＩＰアドレスＡｃと共にポートＰｃも併せてメッセージ内に設定しておく。なぜなら、ゲートウェイ１０２−サーバ１０３間のパケット送受信において使用するゲートウェイポートはＰｃではないため、パケットのアドレス情報とは別途メッセージパラメータとして設定しておくことでしかサーバ１０３がクライアントポートＰｃを認識することができないからである。
【０１５５】
図２２は、ＩＮＩＴメッセージのフォーマット例を示す図である。ＩＮＩＴメッセージ２４００は、従来のＩＮＩＴメッセージを拡張しており、ＩＰｖ４アドレス２４０７とＳＣＴＰポート２４０８の組を設定するアドレスポートペアパラメ一夕を有する。パラメータタイプ２４０５にアドレスポートペアパラメータの識別子を設定する。この識別子は、１６ビット中、上位２ビットが“１０”である値をクライアント、サーバ間であらかじめ取り決めておく。
【０１５６】
上位２ビットが“１０”であるパラメータタイプは、受信ホストに対し、もしそのパラメータが解釈できない場合はそのパラメータをスキップし、それ以外を通常どおり処理することを指示する。パラメータ長２４０６にパラメータタイプ２４０５からＳＣＴＰポート２４０８までのバイト長を設定する。
【０１５７】
ＩＰｖ４アドレス２４０７、ＳＣＴＰポート２４０８には、本ＩＮＩＴメッセージで確立しようとしているアソシエーションにクライアントが使用するトランスポートアドレスを設定し、図２１の例では、それぞれＡｃ、Ｐｃを設定する。
【０１５８】
なお、タイプ２４０１は、ＩＮＩＴメッセージ識別子を設定し、ゲートウェイ１０２のＩＰアドレスＡｇはＩＰｖ４アドレスパラメータ２４０２〜２４０４で運ばれる。パラメータタイプ２４０２は、ＩＰｖ４アドレスパラメータの識別子を設定し、パラメータ長２４０３はパラメータタイプ２４０２からＩＰｖ４アドレス２４０４までのバイト長を設定する。
【０１５９】
ＩＰｖ４アドレス２４０４は本ＩＮＩＴメッセージで確立しようとしているアソシエーションにクライアントが使用するＩＰアドレスを設定し、ここにゲートウェイ１０２のＩＰアドレスＡｇを設定することで、サーバ１０２はＡｇにパケットを送信してもクライアント１０１にそれが到達すると認識する。
【０１６０】
図２１に戻り、ゲートウェイ１０２がクライアント１０１からのＩＮＩＴメッセージを受信すると、アソシエーション管理テーブル７００の再登録情報に基づきパケットの送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポートを、それぞれＡｇ、Ｐｇｃ、Ａｓ、Ｐｓに変更し、サーバ１０３に送信（１８１２）する。
【０１６１】
ＩＮＩＴメッセージを受信したサーバ１０３は、ＩＮＩＴメッセージ１８１２の送信元トランスポートアドレス（Ａｇ：Ｐｇｃ）と、メッセージ内のアドレスポートペアパラメータのＩＰｖ４アドレス２４０７、ＳＣＴＰポート２４０８で示されたトランスポートアドレス（Ａｃ：Ｐｃ）を同一アソシエーションの通信相手と認識する。そしてＩＮＩＴ＿ＡＣＫメッセージ１８１３を送信するが、そのとき、ＩＮＩＴメッセージ１８１２のアドレスポートペアパラメータが正しく解釈できたことを示すパラメータを設定する。
【０１６２】
図２３は、上記ＩＮＩＴ＿ＡＣＫメッセージのフォーマット例を示す図である。タイプ１５０１は、ＩＮＩＴ＿ＡＣＫメッセージのメッセージ識別子を設定する。パラメータタイプ１５０２には１つのアソシエーションで複数のポートの使用をクライアントに許可することを意味する複数ポートＯＫのパラメータタイプを設定する。パラメータ長１５０３にはパラメータタイプ１５０２とパラメータ長１５０３をあわせたバイト長を設定する。
【０１６３】
複数ポートＯＫを含むＩＮＩＴ＿ＡＣＫメッセージ１８１３は、ゲートウェイ１０２を経由してクライアント１０１に到達する。クライアント１０１は、サーバ１０３が複数ポート使用に対応していること、すなわちクライアントと直接通信するときのクライアントポートＰｃと、ゲートウェイ１０２経由で通信するときのゲートウェイポートＰｇｃを独立に管理できることを知り,引き続きＣＯＯＫＩＥ＿ＥＣＨＯメッセージ（１８１４）、ＣＯＯＫＩＥ＿ＡＣＫメッセージ（１８１５）をサーバ１０３と送受信することでアソシエーションを確立する。
【０１６４】
サーバ１０３、クライアント１０１はそれぞれが保有するアソシエーション情報テーブル５００にアソシエーション情報を登録（１８１６、１８１７）する。
【０１６５】
図２４は、図２１のサーバ１０３が従来のＳＣＴＰサーバ、すなわちクライアントとゲートウェイが使用するポートは共通でなければならない場合を示す。ステップ１９０１から１９１２は図２１のステップ１８０１からステップ１８１２と同じである。
【０１６６】
ゲートウェイ１０２が転送したＩＮＩＴメッセージ１９１２をサーバ１０３が受信すると、メッセージ内のアドレスポートペアパラメータを解釈できずにスキップし、従来のＩＮＩＴ＿ＡＣＫメッセージ１９１３をゲートウェイ１０２経由でクライアント１０１に送信する。クライアント１０１はＩＮＩＴ＿ＡＣＫメッセージ内に複数ポートＯＫのパラメータが含まれていないのでサーバ１０３が、従来サーバであることを認識する。その場合、クライアント１０１はもはやトラ
ンスポートアドレス（Ａｃ：Ｐｃ）をサーバ１０３に認識させることができず、ゲートウェイ１０２経由でしか通信できない。
【０１６７】
サーバ１０３は（Ａｇ：Ｐｇｃ）が通信相手の唯一のトランスポートアドレスと認識する。クライアント１０１とサーバ１０３はＣＯＯＫＩＥ＿ＥＣＨＯメッセージ（１９１４）、ＣＯＯＫＩＥ＿ＡＣＫメッセージ（１９１５）を送受信することでアソシエーションを確立し、それぞれ自身が保有するアソシエーション情報テーブル５００にアソシエーション情報を登録（１９１６、１９１７）する。
【０１６８】
以上説明してきたように、本発明では、エンドホスト（クライアント）が使用するポートとは別に、トランスポートアドレスとゲートウェイ間に限定してゲートウェイが使用するポートをコネクション毎に違えるようにしたので、トランスポートアドレスに接続する複数のエンドホスト間で、エンドホストが使用するポート自体を重ならないようにしていていた従来と比較して、クライアントは、ゲートウェイを利用する他のクライアントの使用ポートとの重複を気にすることなく自身のポート決定し、複数経路の通信を行うことができる。
【０１６９】
また、上記各実施形態では、クライアントとして、固定のパーソナルコンピュータ（ＰＣ）や、サーバを想定し説明してきたが、本発明はこのような態様に限定されるものでなく、移動端末（移動機やＰＤＡ等の情報端末）等であってもよい。その場合、本発明をモバイル環境で利用することが可能である。
【図面の簡単な説明】
【０１７０】
【図１】本実施形態における通信ネットワークシステムの構成図である。
【図２】ＳＣＴＰパケットのフォーマット例を示す図である。
【図３】複数サーバ接続時のトランスポートアドレスの関係を示す図である。
【図４】複数クライアント接続時のトランスポートアドレスの関係を示す図である。
【図５】クライアントの構成図である。
【図６】クライアントで管理するアソシエーション情報テーブルの一例を示す図である。
【図７】ゲートウェイの構成図である。
【図８】ゲートウェイで管理するアソシエーション管理テーブルの一例を示す図である。
【図９】ゲートウェイで行われるアソシエーション登録要求受信処理のフローチャートである。
【図１０】ゲートウェイで行われるアソシエーション再登録要求受信処理のフローチャートである。
【図１１】ゲートウェイで行われるポート更新要求受信処理のフローチャートである。
【図１２】ゲートウェイで行われる仮登録削除要求受信処理のフローチャートである。
【図１３】クライアント−サーバ間で行われるアソシエーション登録シーケンスである。
【図１４】アソシエーション登録要求メッセージフォーマット例を示す図である。
【図１５】ＵＤＰ／ＩＰパケットフォーマットの一例を示す図である。
【図１６】既存サーバ接続時のクライアント−サーバ間で行われるアソシエーション登録シーケンスである。
【図１７】アソシエーション仮登録応答メッセージフォーマットの一例を示す図である。
【図１８】アソシエーション再登録要求メッセージフォーマットの一例を示す図である。
【図１９】クライアントによるポート変更シーケンスである。
【図２０】拡張サーバによるポート更新シーケンスである。
【図２１】拡張サーバに対するゲートウェイ経由でのアソシエーション確立シーケンスである。
【図２２】拡張ＩＮＩＴメッセージのフォーマットの例を示す図である。
【図２３】拡張ＩＮＩＴ＿ＡＣＫメッセージのフォーマット例を示す図である。
【図２４】既存サーバに対するゲートウェイ経由でのアソシエーション確立シーケンスである。
【符号の説明】
【０１７１】
１０１、２０１、３０１  クライアント
１０２  ゲートウェイ
１０３、２０２、２０３  サーバ
４０１  アプリケーションプログラム（ＡＰＬ）
４０２  ＴＣＰ処理部（ＴＣＰ）
４０３  ＳＣＴＰ処理部（ＳＣＴＰ）
４０４、６０３  ＩＰ処理部（ＩＰ）
４０５、６０４  レイヤ２処理部（Ｌ２）
４０６、６０５  ネットワークインタフェースカード（ＮＩＣ）
４０７、６０６  電気通信回線
４０８、６０２  ネットワークモジュール（ＮＥＴ）
４０９  ファイルシステム（ＦＳ）
４１０  装置初期化モジュール（ＩＮＩＴ）
４１１、６０１  ＯＳ（オペレーティングシステム）
５００  アソシエーション情報テーブル
６０７  ＳＣＴＰ制御モジュール（ＳＣＴＰＣＴＬ）
７００  アソシエーション管理テーブル  
【図１】
2005142846.tif 000003
【図２】
2005142846.tif 000004
【図３】
2005142846.tif 000005
【図４】
2005142846.tif 000006
【図５】
2005142846.tif 000007
【図６】
2005142846.tif 000008
【図７】
2005142846.tif 000009
【図８】
2005142846.tif 000010
【図９】
2005142846.tif 000011
【図１０】
2005142846.tif 000012
【図１１】
2005142846.tif 000013
【図１２】
2005142846.tif 000014
【図１３】
2005142846.tif 000015
【図１４】
2005142846.tif 000016
【図１５】
2005142846.tif 000017
【図１６】
2005142846.tif 000018
【図１７】
2005142846.tif 000019
【図１８】
2005142846.tif 000020
【図１９】
2005142846.tif 000021
【図２０】
2005142846.tif 000022
【図２１】
2005142846.tif 000023
【図２２】
2005142846.tif 000024
【図２３】
2005142846.tif 000025
【図２４】
2005142846.tif 000026