(57)【要約】【課題】端末が、移動によって、ＮＡＰＴルータを介して接続されたネットワークに接続された場合であっても、ＮＡＰＴルータが当該端末へのパケットを破棄しないような端末のハンドオフ方法、転送エージェント、端末及びプログラムを提供する。【解決手段】端末が、移動によって第３のネットワークに接続し、新たな移動後アドレスが端末に付与された際に、最初に、端末が、送信元アドレス及びポート番号と、相手方端末のアドレス及びポート番号とをデータ部に含むTA_REG_PORTを、移動後の第３のルータを介して、転送エージェントへ送信する。次に、転送エージェントが、端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含むL4_PEER_UPDを、第２の端末へ送信する。そして、端末が、端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含むL4_PEER_UPDを、第２の端末へ送信する。【選択図】図３
2008166874.tif 000002
【特許請求の範囲】
【請求項１】
複数のローカルネットワークがＮＡＰＴ(Network Address Port Translation)機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び前記基幹ネットワークを介して、第２の端末と通信している際に実行される端末のハンドオフ方法であって、
第１のローカルネットワークに、第１の転送エージェントが接続されており、
前記端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが前記端末に付与された際に、
前記端末が、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、第３のルータを介して、第１の転送エージェントへ送信する第１のステップと、
第１の転送エージェントが、前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する第２のステップと、
前記端末が、前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する第３のステップとを有することを特徴とする端末のハンドオフ方法。
【請求項２】
第３のステップは、第１のステップと同時に実行されることを特徴とする請求項１に記載の端末のハンドオフ方法。
【請求項３】
前記移動更新メッセージを受信した第２の端末が、移動後の第３のルータのアドレスを宛先アドレスとする移動更新応答メッセージを送信する第４のステップを更に有することを特徴とする請求項１又は２に記載の端末のハンドオフ方法。
【請求項４】
複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び前記基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに接続された転送エージェントであって、
前記端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが前記端末に付与された際に、
前記端末から、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とデータ部に含むポート登録メッセージを受信するポート登録メッセージ受信手段と、
前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
を有することを特徴とする転送エージェント。
【請求項５】
複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び前記基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに転送エージェントが接続されたシステムにおける前記端末であって、
前記端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが前記端末に付与された際に、
送信元ポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、前記転送エージェントへ送信するポート登録メッセージ送信手段と、
前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
を有することを特徴とする端末。
【請求項６】
前記移動更新メッセージを受信した際に、移動後の第３のルータのアドレスを宛先アドレスとする移動更新応答メッセージを送信する移動更新応答メッセージ送信手段を更に有することを特徴とする請求項５に記載の端末。
【請求項７】
複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び前記基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに接続された転送エージェントに搭載されたコンピュータを機能させるプログラムであって、
前記端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが前記端末に付与された際に、
前記端末から、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とデータ部に含むポート登録メッセージを受信するポート登録メッセージ受信手段と、
前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
してコンピュータを機能させることを特徴とする転送エージェント用プログラム。
【請求項８】
複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び前記基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに転送エージェントが接続されたシステムにおける前記端末に搭載されたコンピュータを機能させるプログラムであって、
前記端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが前記端末に付与された際に、
送信元ポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、前記転送エージェントへ送信するポート登録メッセージ送信手段と、
前記端末の前記移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
してコンピュータを機能させることを特徴とする端末用プログラム。
【請求項９】
前記移動更新メッセージを受信した際に、移動後の第３のルータのアドレスを宛先アドレスとする更新応答メッセージを送信する移動更新応答メッセージ送信手段を更に有することを特徴とする請求項８に記載の端末用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＰＴルータ(Network Address Port Translation)（以下、ＮＡＴ(Network Address Translation)ルータも含む）を介して接続された端末のハンドオフ方法、転送エージェント、端末及びプログラムに関する。
【背景技術】
【０００２】
宅内ＬＡＮ(Local Area Network)及び企業内ネットワークは、ＮＡＰＴルータを介して、インターネットのようなグローバルネットワークに接続される場合が多い。ＮＡＰＴルータは、ローカルで用いるプライベートＩＰアドレスと、インターネットで用いるグローバルＩＰアドレスとを相互に変換する。これにより、少ないグローバルＩＰアドレスに対して、多くのプライベートＩＰアドレスを付与することができる。即ち、グローバルＩＰアドレスの数以上の数の端末が、透過的にインターネットに同時にアクセスをすることができる。
【０００３】
ＮＡＰＴルータの特徴として、ポートフォワーディングの設定が無い限り、ＮＡＰＴルータ内側のネットワークから送信開始されたパケットにおけるコネクションしか、通過を許可しない。
【０００４】
具体的には、ＮＡＰＴルータ内側の端末Ａ（ＩＰａ、ポートａ）が、ＮＡＰＴルータ外側の端末Ｂ（ＩＰｂ、ポートＢ）へ、以下のパケットを送信開始したとする。
宛先アドレス：ＩＰｂ、ポート番号：ポートｂ
送信元アドレス：ＩＰａ、ポート番号：ポートａ
このとき、以下の通過可能コネクションが、ＮＡＰＴルータに設定される。
［ＩＰａ：ポートａ］＜−＞［ＩＰｂ：ポートｂ］
この通過可能コネクションが設定された場合、端末Ｂから端末Ａへ送信されるパケットも、通過が許可される。
【０００５】
【非特許文献１】ＲＦＣ２６６３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、無線ネットワークの整備に伴って、端末が、一方のネットワークから他方のネットワークへ移動する場合も多い。新たに接続された他のネットワークが、ＮＡＰＴルータ内側である場合もある。この場合、端末には、新たにプライベートＩＰアドレスが付与される。一方、相手方端末は、その端末へパケットを送信するには、移動後の新しいＮＡＰＴルータのグローバルＩＰアドレスを知る必要がある。もし、相手方端末が、移動後のＮＡＰＴルータにおけるグローバルＩＰアドレスを知ることができたとする。このとき、相手方端末が、そのグローバルＩＰアドレスを宛先アドレスとするパケットを送信したとしても、そのＮＡＰＴルータは、通過可能コネクションテーブルに登録されていないコネクションとして、それらパケットを破棄する。
【０００７】
従って、本発明は、端末が、移動によって、ＮＡＰＴルータを介して接続されたネットワークに接続された場合であっても、ＮＡＰＴルータが当該端末へのパケットを破棄しないような端末のハンドオフ方法、転送エージェント、端末及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によれば、複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び基幹ネットワークを介して、第２の端末と通信している際に実行される端末のハンドオフ方法であって、
第１のローカルネットワークに、第１の転送エージェントが接続されており、
端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが端末に付与された際に、
端末が、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、第３のルータを介して、第１の転送エージェントへ送信する第１のステップと、
第１の転送エージェントが、端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する第２のステップと、
端末が、端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する第３のステップとを有することを特徴とする。
【０００９】
本発明のハンドオフ方法における他の実施形態によれば、第３のステップは、第１のステップと同時に実行されることも好ましい。
【００１０】
本発明のハンドオフ方法における他の実施形態によれば、移動更新メッセージを受信した第２の端末が、移動後の第３のルータのアドレスを宛先アドレスとする移動更新応答メッセージを送信する第４のステップを更に有することも好ましい。
【００１１】
本発明の転送エージェントによれば、複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに接続された転送エージェントであって、
端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが端末に付与された際に、
端末から、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とデータ部に含むポート登録メッセージを受信するポート登録メッセージ受信手段と、
端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
を有することを特徴とする。
【００１２】
本発明によれば、複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに転送エージェントが接続されたシステムにおける端末であって、
端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが端末に付与された際に、
送信元ポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、転送エージェントへ送信するポート登録メッセージ送信手段と、
端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
を有することを特徴とする。
【００１３】
本発明の端末における他の実施形態によれば、移動更新メッセージを受信した際に、移動後の第３のルータのアドレスを宛先アドレスとする移動更新応答メッセージを送信する移動更新応答メッセージ送信手段を更に有することも好ましい。
【００１４】
本発明によれば、複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに接続された転送エージェントに搭載されたコンピュータを機能させるプログラムであって、
端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが端末に付与された際に、
端末から、送信元アドレス及びポート番号と、第２の端末のアドレス及びポート番号とデータ部に含むポート登録メッセージを受信するポート登録メッセージ受信手段と、
端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
してコンピュータを機能させることを特徴とする。
【００１５】
本発明によれば、複数のローカルネットワークがＮＡＰＴ機能付きルータを介して基幹ネットワークに接続されており、第１のローカルネットワークに接続された第１の端末が、第１のルータ及び基幹ネットワークを介して、第２の端末と通信するシステムについて、第１のローカルネットワークに転送エージェントが接続されたシステムにおける端末に搭載されたコンピュータを機能させるプログラムであって、
端末が、移動によって第３のローカルネットワークに接続し、新たな移動後アドレスが端末に付与された際に、
送信元ポート番号と、第２の端末のアドレス及びポート番号とをデータ部に含むポート登録メッセージを、転送エージェントへ送信するポート登録メッセージ送信手段と、
端末の移動後アドレスと、第３のルータのアドレス及びポート番号とをデータ部に含む移動更新メッセージを、第２の端末へ送信する移動更新メッセージ送信手段と
してコンピュータを機能させることを特徴とする。
【００１６】
本発明の端末用プログラムにおける他の実施形態によれば、移動更新メッセージを受信した際に、移動後の第３のルータのアドレスを宛先アドレスとする移動更新応答メッセージを送信する移動更新応答メッセージ送信手段を更に有することも好ましい。
【発明の効果】
【００１７】
本発明の端末のハンドオフ方法、転送エージェント、端末及びプログラムによれば、端末が、移動によって、ＮＡＰＴルータを介して接続されたネットワークに接続された場合であっても、ＮＡＰＴルータが当該端末へのパケットを破棄しないようにすることができる。また、本発明によれば、対向して通信している２つの端末が同時に移動した場合であっても、その移動後のネットワークがＮＡＰＴルータ内側であっても、通信を回復することができる。
【発明を実施するための最良の形態】
【００１８】
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
【００１９】
図１は、端末の移動前に確立されている通信のシーケンス図である。
【００２０】
図１によれば、複数のローカルネットワークＡ〜Ｃが、ＮＡＰＴ機能付きルータＡ〜Ｃを介してバックボーン（基幹）ネットワークに接続されている。また、端末は、移動可能であって、一方のネットワークから他方のネットワークへ接続することができる。端末には、新たに接続したネットワークから、そのネットワーク内で利用できる新たなアドレスが自動的に付与される。尚、ポート番号は、自側又は相手側の端末によって任意に決定されたものであって、ネットワークから付与されるものではない。
【００２１】
端末Ａは、ネットワークＡに接続され、端末Ｂは、ネットワークＢに接続されている。端末Ａ及び端末Ｂは、以下のアドレス及びポート番号を有する。
端末Ａ：アドレス：ポート番号  ［１．１．１．１：１０００］
端末Ｂ：アドレス：ポート番号  ［２．２．２．２：２０００］
【００２２】
ネットワークＡは、ルータＡを介してバックボーンネットワークに接続され、ネットワークＢは、ルータＢを介してバックボーンネットワークに接続されている。ルータＡ及びルータＢは、バックボーンネットワークに対して、以下のアドレス及びポート番号を有する。
ルータＡ：アドレス：ポート番号  ［１０．０．０．１：１１１１］
ルータＢ：アドレス：ポート番号  ［１０．０．０．２：２２２２］
【００２３】
（Ｓ１０１）端末Ａは、ＩＰパケットを端末Ｂへ送信する。このＩＰパケットは、以下のアドレス及びポート番号を有し、ルータＡによって受信される。
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［１．１．１．１：１０００］（端末Ａ）
【００２４】
（Ｓ１０２）ルータＡは、端末Ａから受信したＩＰパケットについて、送信元アドレスをルータＡのアドレスに変換する。
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［１０．０．０．１：１１１１］（ルータＡ）
このとき、ルータＡは、ＮＡＰＴの内側から外側へ送信されるＩＰパケットについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを有する。
ルータＡの通過可能コネクション
［１．１．１．１：１０００＜−＞１０．０．０．２：２２２２］
（端末Ａ）      ＜−＞      （ルータＢ）
そして、ルータＡは、バックボーンネットワークを介してそのＩＰパケットをルータＢへ送信する。
【００２５】
（Ｓ１０３）ルータＢは、ルータＡから受信したＩＰパケットについて、宛先アドレスを端末Ｂのアドレスに変換する。
宛先アドレス：ポート番号    ［２．２．２．２：２０００］
送信元アドレス：ポート番号  ［１０．０．０．１：１１１１］
そして、ルータＢは、ネットワークＢを介してそのＩＰパケットを、端末Ｂへ送信する。
【００２６】
（Ｓ１０４）端末Ｂは、ＩＰパケットを端末Ａへ送信する。このＩＰパケットは、以下のアドレス及びポート番号を有し、ルータＢによって受信される。
宛先アドレス：ポート番号    ［１０．０．０．１：１１１１］（ルータＡ）
送信元アドレス：ポート番号  ［１．１．１．１：１０００］（端末Ｂ）
【００２７】
（Ｓ１０５）ルータＢは、端末Ｂから受信したＩＰパケットについて、送信元アドレスをルータＡのアドレスに変換する。
宛先アドレス：ポート番号    ［１０．０．０．１：１１１１］（ルータＡ）
送信元アドレス：ポート番号  ［１０．０．０．２：２２２２］（ルータＢ）
このとき、ルータＢは、ＮＡＰＴの内側から外側へ送信されるＩＰパケットについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを有する。
ルータＢの通過可能コネクション
［１０．０．０．１：１１１１＜−＞２．２．２．２：２０００］
（ルータＡ）      ＜−＞      （端末Ｂ）
そして、ルータＢは、バックボーンネットワークを介してそのＩＰパケットをルータＡへ送信する。
【００２８】
（Ｓ１０６）ルータＡは、ルータＢから受信したＩＰパケットについて、宛先アドレスを端末Ａのアドレスに変換する。
宛先アドレス：ポート番号    ［１．１．１．１：１０００］（端末Ａ）
送信元アドレス：ポート番号  ［１０．０．０．２：２２２２］（ルータＢ）
そして、ルータＡは、ネットワークＡを介してそのＩＰパケットを、端末Ａへ送信する。
【００２９】
図２は、本発明によって用いられるメッセージフォーマットである。
【００３０】
図２によれば、ＴＡ＿ＲＥＧ＿ＰＯＲＴ(Transfer Agent_REGistration_PORT、ポート登録メッセージ)と、Ｌ４＿ＰＥＥＲ＿ＵＰＤ(Layer 4 PEER UPDate、移動更新メッセージ)とが表されている。
【００３１】
ＴＡ＿ＲＥＧ＿ＰＯＲＴは、移動後の端末が、移動前のネットワークに接続された転送エージェントへ、ポートを登録するためのメッセージである。ＴＡ＿ＲＥＧ＿ＰＯＲＴの役割は、移動後の端末に接続されるＮＡＰＴルータにおけるアドレス及びポート番号の変換状態を、移動前のネットワークに接続された転送エージェントへ通知することにある。
【００３２】
図２のＴＡ＿ＲＥＧ＿ＰＯＲＴは、ＩＰヘッダ、Ｌ４ヘッダ及び拡張ヘッダをから構成される。ＩＰヘッダは、宛先アドレス及び送信元アドレスを含む。宛先アドレスは、移動前の転送エージェントのアドレスである。また、送信元アドレスは、移動後の端末のアドレスである。Ｌ４ヘッダは、宛先ポート番号と送信元ポート番号を含む。宛先ポート番号は、移動前の転送エージェントの「待ち受けポート番号」である。また、送信元ポート番号は、移動前の端末が「送信元ポートとして使用していたポート番号」である。ここで、移動前の端末のポート番号と、移動後の端末のポート番号とは同一のものである。
【００３３】
拡張ヘッダは、データ部に含まれ、送信元ポート番号と、相手方端末のアドレス及びポート番号とを含む。送信元ポート番号は、Ｌ４ヘッダに含まれる送信元ポート番号と同じである。Ｌ４ヘッダの送信元ポート番号は、ＮＡＰＴルータによって書き換えられるからである。相手方端末のアドレス及びポート番号は、移動前に当該端末が通信していた相手方端末のアドレス及びポート番号である。
【００３４】
Ｌ４＿ＰＥＥＲ＿ＵＰＤは、そのＩＰアドレスの変化を、明示的に相手方端末へ通知するパケットである。Ｌ４＿ＰＥＥＲ＿ＵＰＤは、（１）ＴＡ＿ＲＥＧ＿ＰＯＲＴを受信した転送エージェントが、相手方端末へ送信する場合と、（２）移動後の端末自身が、相手方端末へ送信する場合とがある。
【００３５】
図２のＬ４＿ＰＥＥＲ＿ＵＰＤは、ＩＰヘッダ、Ｌ４ヘッダ及び拡張ヘッダから構成される。ＩＰヘッダ及びＬ４ヘッダは、前述したＴＡ＿ＲＥＧ＿ＰＯＲＴと同様である。拡張ヘッダは、端末のアドレスと、ルータのアドレス及びポート番号とを含む。端末のアドレスは、Ｌ４ヘッダに含まれる送信元アドレスと同じである。ＩＰヘッダの送信元アドレスは、ＮＡＰＴルータによって書き換えられるからである。相手方端末のアドレス及びポート番号は、移動前に当該端末が通信していた相手方端末のアドレス及びポート番号である。
【００３６】
Ｌ４＿ＰＥＥＲ＿ＵＰＤは、ソケット情報の全てに対して送信しなければならない。例えば、移動した端末が、１０個のソケットを保持している（１０個のコネクションを維持している）場合、１０個のＬ４＿ＰＥＥＲ＿ＵＰＤが送信されなければならない。ソケット情報とは、端末内でコネクションを識別するための情報であって、「送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号、プロトコル種別（ＵＤＰ／ＴＣＰ）」組である。勿論、本発明におけるＬ４＿ＰＥＥＲ＿ＵＰＤ及びＴＡ＿ＲＥＧ＿ＰＯＲＴのメッセージも、ソケット情報によって規定されるプロトコル種別（ＵＤＰ／ＴＣＰ）」に依存する。
【００３７】
尚、Ｌ４＿ＰＥＥＲ＿ＵＰＤは、図２に表された構成を有するが、単にデータを含んでいないＩＰパケットであってもよいし、データを含んでいてもよい。データを含まないＬ４＿ＰＥＥＲ＿ＵＰＤを受信した相手方端末は、単にソケット情報の更新のみを行い、これをデータパケットとしてアプリケーションに渡すことはしない。
【００３８】
図１の基本シーケンスに基づいて、図３〜図６は、一方の端末のみが他のネットワークへ移動した場合を表し、図７〜図１１は、両方の端末が同時に他のネットワークへ移動した場合を表す。
【００３９】
図３は、端末ＡがネットワークＣへ移動した場合の第１のシーケンス図である。
【００４０】
図３によれば、ネットワークＡに、本発明の特徴ある転送エージェント(Transfer Agent)Ａが接続されている。転送エージェントは、移動後の端末に代わって、移動前の端末に対するコネクションを用いて、相手方端末に対する一時的なホームエージェントとして機能する。これにより、移動後の端末と相手方端末との間で、直接的な通信の回復を実現する。
【００４１】
転送エージェントＡは、以下のアドレス及びポート番号を有し、ポート番号５００で待ち受ける。
転送エージェントＡ：アドレス：ポート番号  ［１．１．１．９：５００］
【００４２】
（Ｓ３０１）端末Ａは、ネットワークＡに接続された転送エージェントＡを発見し、そのＩＰアドレスを取得する。そして、端末Ａは、転送エージェントＡへ、移動前情報を登録する。これにより、転送エージェントＡは、端末Ａにおける一時的なホームエージェントとして機能する。つまり、移動前に登録をした端末Ａに対して、後述のＴＡ＿ＲＥＱ＿ＰＯＲＴを受信した際を契機に、端末Ａ宛のパケットの転送を開始する。
【００４３】
転送エージェントＡは、自らの存在を知らせる広告メッセージを、ネットワーク内に定期的に同報送信する。広告メッセージは、ＩＣＭＰ(Internet Control and Management Protocol)によって実現される。広告メッセージは、例えば以下の情報を含む。
（１）転送エージェントのアドレス及びポート番号
（２）ネットワークのドメイン名（移動後に転送エージェントを区別するため）
（３）そのネットワークがＮＡＰＴルータの内側／外側を表すフラグ
【００４４】
広告メッセージを受信した端末は、転送エージェントの存在を知ると共に、そのネットワークがＮＡＰＴルータの内側か又は外側かを知ることができる。
【００４５】
（Ｓ３０２）端末Ａは、ネットワークＡからネットワークＣへ移動したとする。端末Ａは、ネットワークＣに接続すると、自動的にネットワークＣ内で使用可能なＩＰアドレスが新たに付与される。このとき、ポート番号は変更されない。本発明によれば、ポート番号は、複数の通信の中で唯一のものである。
端末Ａ：アドレス：ポート番号  ［３．３．３．３：１０００］
【００４６】
図３に表されていないが、新しいネットワークＣに接続した端末Ａは、移動前のネットワークＡに接続された転送エージェントＡへ、ルータＡを介して、移動登録メッセージ、例えばＴＡ＿ＲＥＧ(Transfer Agent - REGistration)メッセージを送信する。ＴＡ＿ＲＥＧには、例えば、移動前のＩＰアドレスと、移動後のＩＰアドレスと、ソケット情報（ポート番号対、各種フラグ、セッション鍵）とを含む。複数のコネクションを有する場合、全てのソケット情報を含む。ＴＡ＿ＲＥＧ（移動登録メッセージ）によって、転送エージェントＡは、先に接続していた端末Ａが、新しいネットワークＣに接続されたことを知る。
【００４７】
移動後の端末Ａが、ＮＡＰＴルータ内側のネットワークに移動した場合、その端末は、更に、ＴＡ＿ＲＥＧ＿ＰＯＲＴを送信する。ＮＡＰＴルータの内側に移動したか否かは、移動後のネットワークＣに接続された転送エージェントから受信する広告メッセージによって判断できる。ＴＡ＿ＲＥＧ＿ＰＯＲＴは、全てのソケットに対して送信される。
【００４８】
（Ｓ３０３）次に、端末Ａは、ＴＡ＿ＲＥＧ＿ＰＯＲＴを、転送エージェントＡへ送信する。以下の情報を含むＴＡ＿ＲＥＧ＿ＰＯＲＴは、ルータＣによって受信される。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．１：５００］（ルータＡ）
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
拡張ヘッダ＞
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
相手方アドレス：ポート番号  ［１０．０．０．２．２２２２］（端末Ｂ）
送信元アドレスは、ネットワークＣに接続することによって新しく割り当てられたＩＰアドレスである。一方、送信元ポート番号は、端末Ａの移動前と移動後で同じである。
【００４９】
（Ｓ３０４）ルータＣは、端末Ａから受信したＴＡ＿ＲＥＧ＿ＰＯＲＴについて、送信元アドレスをルータＣのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．１：５００］（ルータＡ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
拡張ヘッダ＞
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
相手方アドレス：ポート番号  ［１０．０．０．２．２２２２］（端末Ｂ）
【００５０】
このとき、ルータＣは、ＮＡＰＴの内側から外側へ送信されるＴＡ＿ＲＥＧ＿ＰＯＲＴについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを設定する。
ルータＣの通過可能コネクション
［３．３．３．３：１０００＜−＞１０．０．０．１：１１１１］
（端末Ａ）      ＜−＞      （ルータＡ）
そして、ルータＣは、バックボーンネットワークを介してそのＴＡ＿ＲＥＧ＿ＰＯＲＴをルータＡへ送信する。
【００５１】
（Ｓ３０５）ルータＡは、ルータＣからＴＡ＿ＲＥＧ＿ＰＯＲＴを受信する。ＴＡ＿ＲＥＧ＿ＰＯＲＴのポート番号は［５００］を表す。ルータＡは、ポート番号［５００］でＩＰパケットを待ち受け、強制的に転送エージェントＡへ転送されるように設定されている（静的なアドレス−ポート変換、ポートフォワーディング機能）。従って、ルータＡは、バックボーンネットワークから受信した、宛先アドレス：ポート番号［１０．０．０．１：５００］のＩＰパケットの全てを、転送エージェントＡへ強制的に送信する。
【００５２】
ルータＡは、ルータＣから受信したＴＡ＿ＲＥＧ＿ＰＯＲＴについて、宛先アドレスを転送エージェントＡのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１．１．１．９：５００］（エージェントＡ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
拡張ヘッダ＞
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
相手方アドレス：ポート番号  ［１０．０．０．２．２２２２］（端末Ｂ）
そして、ルータＡは、ネットワークＡを介してそのＴＡ＿ＲＥＧ＿ＰＯＲＴを、転送エージェントＡへ送信する。
【００５３】
移動前の転送エージェントＡは、受信したＴＡ＿ＲＥＧ＿ＰＯＲＴのヘッダ（ＩＰ、Ｌ４、拡張）を見ることによって、ＮＡＰＴルータよってなされたアドレス−ポート変換を知ることができる。転送エージェントＡは、ＮＡＰＴの変換規則（即ち、ＮＡＰＴルータの外側ＩＰアドレスと外側送信元ポート番号との対）を記録することができる。
【００５４】
図４は、端末ＡがネットワークＣへ移動した場合の第２のシーケンス図である。
【００５５】
図１、図３及び図４に表されているように、相手方端末もＮＡＰＴルータ内側のネットワークに接続されている場合、移動後の端末Ａが、端末Ｂの宛先アドレス及びポート番号を含むＩＰパケットを送信したとしても、そのＩＰパケットは、ルータＢによって破棄される。端末Ａから端末Ｂへ送信されるＩＰパケットについて、送信元アドレスが異なるために、その移動後の送信元アドレスが、ルータＢの通過可能コネクションに設定されていないからである。
【００５６】
ここで、本発明によれば、ルータＢに既に設定されている通過可能コネクションを用いて、端末Ａの移動を端末Ｂへ通知する。そのために、転送エージェントＡが、ルータＡ及びルータＢを介して、端末ＢへＬ４＿ＰＥＥＲ＿ＵＰＤを送信する。
【００５７】
（Ｓ４０１）ＴＡ＿ＲＥＧ＿ＰＯＲＴを受信した転送エージェントＡは、直ぐに、Ｌ４＿ＰＥＥＲ＿ＵＰＤをルータＡへ送信する。このＬ４＿ＰＥＥＲ＿ＵＰＤは、以下の情報を有し、ルータＡによって受信される。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［１．１．１．１：１０００］（端末Ａ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
【００５８】
（Ｓ４０２）ルータＡは、転送エージェントＡから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、送信元アドレスをルータＡのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［１０．０．０．１：１１１１］（ルータＡ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＡは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤをルータＢへ送信する。
【００５９】
（Ｓ４０３）ルータＢは、ルータＡからＬ４＿ＰＥＥＲ＿ＵＰＤを受信する。ルータＢは、既に以下の通過可能コネクションを設定している。
ルータＢの通過可能コネクション
［１０．０．０．１：１１１１＜−＞２．２．２．２：２０００］
（ルータＡ）      ＜−＞      （端末Ｂ）
従って、ルータＢは、ルータＡから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、宛先アドレスを端末Ｂのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号  ［２．２．２．２：２０００］（端末Ｂ）
送信元アドレス：ポート番号［１０．０．０．１：１１１１］（ルータＡ）
拡張ヘッダ＞
移動後端末アドレス        ［３．３．３．３］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＢは、ネットワークＢを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤを、端末Ｂへ送信する。
【００６０】
Ｓ３０１〜Ｓ４０３のシーケンスによって、端末Ｂは、以下のようにソケット情報を更新する。
端末Ａ：宛先アドレス：ポート番号        ［１．１．１．１：１０００］
↓
端末Ａ：宛先アドレス：ポート番号        ［３．３．３．３：１０００］
移動先ルータ：宛先アドレス：ポート番号  ［１０．０．０．３：１１１１］
【００６１】
図５は、端末ＡがネットワークＣへ移動した場合の第３のシーケンス図である。
【００６２】
（Ｓ５０１）端末Ｂは、Ｌ４＿ＰＥＥＲ＿ＡＣＫ（移動更新応答メッセージ）を、端末Ａへ送信しようとする。これは、端末Ｂが、ＮＡＰＴルータ内側のネットワークに接続している際に必要となる。これによって、ルータＢの通過可能コネクションに、ルータＣとの間のコネクションの許可を設定することができる。
【００６３】
端末Ｂは、Ｌ４＿ＰＥＥＲ＿ＡＣＫをルータＢへ送信する。端末Ｂは、端末Ａが移動し、ルータＣ内側のネットワークに移動したことを知っている。このＬ４＿ＰＥＥＲ＿ＡＣＫは、以下の情報を有し、ルータＢによって受信される。
宛先アドレス：ポート番号    ［１０．０．０．３：１１１１］（ルータＣ）
送信元アドレス：ポート番号  ［２．２．２．２：２０００］（端末Ｂ）
【００６４】
（Ｓ５０２）ルータＢは、端末Ｂから受信したＬ４＿ＰＥＥＲ＿ＡＣＫについて、送信元アドレスをルータＢのアドレスに変換する。
宛先アドレス：ポート番号    ［１０．０．０．３：１１１１］（ルータＣ）
送信元アドレス：ポート番号  ［１０．０．０．２：２２２２］（ルータＢ）
このとき、ルータＢは、ＮＡＰＴの内側から外側へ送信されるＬ４＿ＰＥＥＲ＿ＡＣＫについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを更に設定する。
ルータＢの通過可能コネクション
［１０．０．０．１：１１１１＜−＞２．２．２．２：２０００］
（ルータＡ）      ＜−＞      （端末Ｂ）
［１０．０．０．３：１１１１＜−＞２．２．２．２：２０００］
（ルータＣ）      ＜−＞      （端末Ｂ）
そして、ルータＢは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＡＣＫをルータＣへ送信する。
【００６５】
しかしながら、ルータＣは、通過可能コネクションに、ルータＢのアドレス［１０．０．０．２：２２２２］を設定していない。従って、ルータＣは、ルータＢから受信したＬ４＿ＰＥＥＲ＿ＡＣＫを破棄する。ここで、端末Ｂから端末Ａへ向けて送信されたＬ４＿ＰＥＥＲ＿ＡＣＫは、ルータＢに通過可能コネクションを設定する役割のみを果たす。
【００６６】
図６は、端末ＡがネットワークＣへ移動した場合の第４のシーケンス図である。
【００６７】
図６に表されたシーケンスは、図３と共に実行されるものであってもよい。即ち、端末Ａが、転送エージェントＡへＴＡ＿ＲＥＧ＿ＰＯＲＴを送信すると共に、端末ＢへＬ４＿ＰＥＥＲ＿ＵＰＤを送信する。このとき、図５のような状態が発生しないけれども、逆に、ルータＢによってＬ４＿ＰＥＥＲ＿ＵＰＤが破棄される場合もある。
【００６８】
（Ｓ６０１）ネットワークＣに接続した端末Ａは、Ｌ４＿ＰＥＥＲ＿ＵＰＤを、端末Ｂへ送信する。このＬ４＿ＰＥＥＲ＿ＵＰＤは、以下の情報を有し、ルータＡによって受信される。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［０］
【００６９】
拡張ヘッダに含まれる移動後端末アドレスは、ＩＰヘッダに含まれる送信元アドレスと同じである。このＩＰパケットが、ＮＡＰＴルータを経由することによって、送信元アドレスが書き換わってしまうために、拡張ヘッダにも送信元アドレスを含めることによって、相手方端末に通知する役割をする。
【００７０】
尚、移動後ルータアドレス：ポート番号は、端末Ａにとって不明であり、［０］が設定されている。端末Ｂは、図４のＳ４０３によって、移動後ルータのアドレス：ポート番号を知ることができる。
【００７１】
（Ｓ６０２）ルータＣは、端末Ａから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、送信元アドレスをルータＣのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［１０．０．０．２：２２２２］（ルータＢ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［０］
このとき、ルータＡは、ＮＡＰＴの内側から外側へ送信されるＬ４＿ＰＥＥＲ＿ＵＰＤについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを更に設定する。
ルータＣの通過可能コネクション
［３．３．３．３：１０００＜−＞１０．０．０．１：１１１１］
（端末Ａ）      ＜−＞      （ルータＡ）
［３．３．３．３：１０００＜−＞１０．０．０．２：２２２２］
（端末Ａ）      ＜−＞      （ルータＢ）
そして、ルータＣは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤをルータＢへ送信する。
【００７２】
（Ｓ６０３）ルータＢは、ルータＡからＬ４＿ＰＥＥＲ＿ＵＰＤを受信する。ルータＢは、既に以下の通過可能コネクションを設定している。
ルータＢの通過可能コネクション
［１０．０．０．１：１１１１＜−＞２．２．２．２：２０００］
（ルータＡ）      ＜−＞      （端末Ｂ）
［１０．０．０．３：１１１１＜−＞２．２．２．２：２０００］
（ルータＣ）      ＜−＞      （端末Ｂ）
従って、ルータＢは、ルータＡから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、宛先アドレスを端末Ｂのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［２．２．２．２：２０００］（端末Ｂ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＢは、ネットワークＢを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤを、端末Ｂへ送信する。
【００７３】
図７は、端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第１のシーケンス図である。
【００７４】
（Ｓ７０１〜Ｓ７０５）端末Ａの移動について、図３のＳ３０１〜Ｓ３０５と全く同様である。
（Ｓ７１１〜Ｓ７１５）端末Ｂの移動について、図３のＳ３０１〜Ｓ３０５と全く同様である。
【００７５】
図８は、端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第２のシーケンス図である。
【００７６】
（Ｓ８０１〜Ｓ８０２）端末Ａの移動について、図４のＳ４０１〜Ｓ４０２と全く同様である。尚、図示しないが、端末Ｂの移動についても、端末Ｂは、ルータＢ及びルータＡを介して転送エージェントＡへ、Ｌ４＿ＰＥＥＲ＿ＵＰＤを送信する。
【００７７】
（Ｓ８０３）ルータＢは、ルータＡからＬ４＿ＰＥＥＲ＿ＵＰＤを受信する。ルータＢは、既に以下の通過可能コネクションを設定している。
ルータＢの通過可能コネクション
［１０．０．０．１：１１１１＜−＞２．２．２．２：２０００］
（ルータＡ）      ＜−＞（転送エージェントＢ）
従って、ルータＢは、ルータＡから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、宛先アドレスを端末Ｂのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号    ［２．２．２．２：２０００］（エージェントＢ）
送信元アドレス：ポート番号  ［１０．０．０．１：１１１１］（ルータＡ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
ここで、移動後の端末Ｂのアドレスを宛先アドレスとするＩＰパケットは、転送エージェントＢへ送信される。このとき、転送エージェントＢは、直ぐに、次のシーケンスＳ９０１の動作をする。
【００７８】
図９は、端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第３のシーケンス図である。
【００７９】
（Ｓ９０１）Ｌ４＿ＰＥＥＲ＿ＵＰＤを受信した転送エージェントＢは、直ぐに、Ｌ４＿ＰＥＥＲ＿ＵＰＤをルータＤへ送信する。このＬ４＿ＰＥＥＲ＿ＵＰＤは、以下の情報を有し、ルータＢによって受信される。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号        ［１０．０．０．４：４４４４］（ルータＤ）
送信元アドレス：ポート番号      ［２．２．２．２：２０００］（端末Ｂ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
【００８０】
（Ｓ９０２）ルータＢは、転送エージェントＢから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、送信元アドレスをルータＡのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号        ［１０．０．０．４：４４４４］（ルータＤ）
送信元アドレス：ポート番号      ［１０．０．０．２：２２２２］（ルータＢ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＢは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤをルータＤへ送信する。
【００８１】
（Ｓ９０３）ルータＤは、ルータＢからＬ４＿ＰＥＥＲ＿ＵＰＤを受信する。ルータＤは、既に以下の通過可能コネクションを設定している。
ルータＢの通過可能コネクション
［１０．０．０．２：２２２２＜−＞４．４．４．４：２０００］
（ルータＢ）      ＜−＞      （端末Ｂ）
従って、ルータＤは、ルータＢから受信したＬ４＿ＰＥＥＲ＿ＵＰＤについて、宛先アドレスを端末Ｂのアドレスに変換する。
ＩＰ／Ｌ４ヘッダ＞
宛先アドレス：ポート番号        ［４．４．４．４：２０００］（端末Ｂ）
送信元アドレス：ポート番号      ［１０．０．０．２：２２２２］（ルータＢ）
拡張ヘッダ＞
移動後端末アドレス：ポート番号［３．３．３．３：１０００］（端末Ａ）
移動後ルータアドレス：ポート番号［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＤは、ネットワークＢを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤを、端末Ｂへ送信する。
【００８２】
図１０は、端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第４のシーケンス図である。
【００８３】
（Ｓ１００１）端末Ｂは、Ｌ４＿ＰＥＥＲ＿ＡＣＫを、端末Ａへ送信しようとする。これは、端末Ｂが、ＮＡＰＴルータ内側のネットワークに接続している際に必要となる。これによって、ルータＤの通過可能コネクションに、ルータＣとの間のコネクションの許可を設定することができる。
【００８４】
端末Ｂは、Ｌ４＿ＰＥＥＲ＿ＡＣＫをルータＤへ送信する。端末Ｂは、端末ＡがルータＣ内側のネットワークに移動したことを知っている。このＬ４＿ＰＥＥＲ＿ＡＣＫは、以下の情報を有し、ルータＤによって受信される。
宛先アドレス：ポート番号    ［１０．０．０．３：１１１１］（ルータＣ）
送信元アドレス：ポート番号  ［４．４．４．４：２０００］（端末Ｂ）
【００８５】
（Ｓ１００２）ルータＤは、端末Ｂから受信したＬ４＿ＰＥＥＲ＿ＡＣＫについて、送信元アドレスをルータＤのアドレスに変換する。
宛先アドレス：ポート番号    ［１０．０．０．３：１１１１］（ルータＣ）
送信元アドレス：ポート番号  ［１０．０．０．４：２０００］（ルータＤ）
このとき、ルータＤは、ＮＡＰＴの内側から外側へ送信されるＬ４＿ＰＥＥＲ＿ＡＣＫについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを更に設定する。
ルータＤの通過可能コネクション
［１０．０．０．２：２２２２＜−＞４．４．４．４：２０００］
（ルータＢ）      ＜−＞      （端末Ｂ）
［１０．０．０．３：１１１１＜−＞４．４．４．４：２０００］
（ルータＣ）      ＜−＞      （端末Ｂ）
そして、ルータＤは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＡＣＫをルータＣへ送信する。
【００８６】
しかしながら、ルータＣは、通過可能コネクションに、ルータＤのアドレス［１０．０．０．４：４４４４］を設定していない。従って、ルータＣは、ルータＤから受信したＬ４＿ＰＥＥＲ＿ＡＣＫを破棄する。ここで、端末Ｂから端末Ａへ向けて送信されたＬ４＿ＰＥＥＲ＿ＡＣＫは、ルータＤに通過可能コネクションを設定する役割のみを果たす。
【００８７】
図１１は、端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第５のシーケンス図である。
【００８８】
図８及び図９におけるＳ８０１〜Ｓ９０３までのシーケンスは、端末Ｂから見ても全く同様に動作する。従って、図１０のＳ１００１について、端末Ｂが端末ＡへＬ４＿ＰＥＥＲ＿ＡＣＫを送信するのと同様に、端末Ａも端末ＢへＬ４＿ＰＥＥＲ＿ＡＣＫを送信する。以下では、端末ＢからＬ４＿ＰＥＥＲ＿ＡＣＫが先に送信され、その後、端末ＡからＬ４＿ＰＥＥＲ＿ＡＣＫが送信されたものとする。
【００８９】
（Ｓ１１０１）ネットワークＣに接続した端末Ａは、Ｌ４＿ＰＥＥＲ＿ＡＣＫを、端末Ｂへ送信する。このＬ４＿ＰＥＥＲ＿ＡＣＫは、以下の情報を有し、ルータＡによって受信される。
宛先アドレス：ポート番号    ［１０．０．０．４：４４４４］（ルータＤ）
送信元アドレス：ポート番号  ［３．３．３．３：１０００］（端末Ａ）
【００９０】
（Ｓ１１０２）ルータＣは、端末Ａから受信したＬ４＿ＰＥＥＲ＿ＡＣＫについて、送信元アドレスをルータＣのアドレスに変換する。
宛先アドレス：ポート番号    ［１０．０．０．４：４４４４］（ルータＤ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
このとき、ルータＡは、ＮＡＰＴの内側から外側へ送信されるＬ４＿ＰＥＥＲ＿ＵＰＤについて、逆方向に転送されるＩＰパケットを通過可能とするために、以下の通過可能コネクションを更に設定する。
ルータＣの通過可能コネクション
［３．３．３．３：１０００＜−＞１０．０．０．１：１１１１］
（端末Ａ）      ＜−＞      （ルータＡ）
［３．３．３．３：１０００＜−＞１０．０．０．４：４４４４］
（端末Ａ）      ＜−＞      （ルータＤ）
そして、ルータＣは、バックボーンネットワークを介してそのＬ４＿ＰＥＥＲ＿ＵＰＤをルータＤへ送信する。
【００９１】
（Ｓ１１０３）ルータＤは、ルータＡからＬ４＿ＰＥＥＲ＿ＡＣＫを受信する。ルータＤは、既に以下の通過可能コネクションを設定している。
ルータＤの通過可能コネクション
［１０．０．０．２：２２２２＜−＞４．４．４．４：２０００］
（ルータＢ）      ＜−＞      （端末Ｂ）
［１０．０．０．３：１１１１＜−＞４．４．４．４：２０００］
（ルータＣ）      ＜−＞      （端末Ｂ）
従って、ルータＤは、ルータＣから受信したＬ４＿ＰＥＥＲ＿ＡＣＫについて、宛先アドレスを端末Ｂのアドレスに変換する。
宛先アドレス：ポート番号    ［４．４．４．４：２０００］（端末Ｂ）
送信元アドレス：ポート番号  ［１０．０．０．３：１１１１］（ルータＣ）
そして、ルータＤは、ネットワークＤを介してそのＬ４＿ＰＥＥＲ＿ＡＣＫを、端末Ｂへ送信する。
【００９２】
前述したように、図１及び図３〜図１１については、移動後の端末が、ＮＡＰＴルータ内側のネットワークに接続されるとして説明した。ここで、移動後の端末が、ＮＡＰＴルータが無いネットワーク、例えばバックボーンネットワークに直接的に接続されたとしても、前述したシーケンス動作と全く同じである。
【００９３】
この場合、移動後の端末から送信されるＬ４＿ＰＥＥＲ＿ＵＰＤのＩＰヘッダ及びＬ４ヘッダの送信元アドレス及びポート番号は書き換えられることなく、相手方ＮＡＰＴルータ（又は相手方端末）へ届く。移動後の端末のポート番号は０のままである。同様に、ＴＡ＿ＲＥＧ＿ＰＯＲＴのＩＰヘッダ及びＬ４ヘッダも書き換えられない。結局、ＩＰヘッダ及びＬ４ヘッダの内容と、拡張ヘッダの内容とに違いが無いというだけである。例えば、図１０について、ルータＣがＮＡＰＴルータでなかったとすれば、Ｌ４＿ＰＥＥＲ＿ＡＣＫは、ルータＣを単に通過して端末Ａへ到達することとなる。
【００９４】
図１２は、本発明における端末及び転送エージェントの機能構成図である。
【００９５】
転送エージェント１は、ポート登録メッセージ受信部１１と、移動更新メッセージ送信部１２と、移動登録メッセージ受信部１３と、パケット転送部１４と、広告メッセージ送信部１５とを有する。これら機能部は、転送エージェントに搭載されたコンピュータを機能させるプログラムを実行することによっても実現できる。
【００９６】
ポート登録メッセージ受信部１１は、端末から、送信元アドレス及びポート番号と、相手方端末のアドレス及びポート番号とをデータ部に含むＴＡ＿ＲＥＧ＿ＰＯＲＴを受信する。送信元アドレス及びポート番号によって、端末Ａであることを特定する。また、相手方端末のアドレス及びポート番号によって、その端末Ａが端末Ｂとのコネクションを更新したいとすることを認識する。
【００９７】
移動更新メッセージ送信部１２は、端末の移動後アドレスと、移動後のルータのアドレス及びポート番号とをデータ部に含むＬ４＿ＰＥＥＲ＿ＵＰＤを、相手方端末へ送信する。Ｌ４＿ＰＥＥＲ＿ＵＰＤは、移動前の端末のコネクションを通して、相手方ルータを通過することができる。これにより、相手方端末は、移動後の端末のアドレスを認識し、その端末へ送信すべきパケットはその移動後のルータのアドレス及びポート番号へ送信すればよいと認識する。
【００９８】
移動登録メッセージ受信部１３は、端末から、移動後のアドレスを含む移動登録メッセージ（ＴＡ＿ＲＥＧ）を受信する。更新された移動後のアドレスは、パケット転送部１４の転送テーブルに登録される。
【００９９】
パケット転送部１４は、転送テーブルを用いて、移動前の端末へ送信すべきパケットを、移動後の端末へ転送する。転送テーブルは、移動登録メッセージに対応する。
【０１００】
広告メッセージ送信部１５は、自らの存在を知らせる広告メッセージを、ネットワーク内に定期的に同報送信する。
【０１０１】
端末２は、ポート登録メッセージ送信部２１と、移動更新メッセージ送信部２２と、移動更新メッセージ受信部２３と、移動更新応答メッセージ送信部２４と、移動登録メッセージ送信部２５と、パケット送受信部２６と、広告メッセージ受信部２７とを有する。これら機能部は、端末に搭載されたコンピュータを機能させるプログラムを実行することによっても実現できる。
【０１０２】
ポート登録メッセージ送信部２１は、送信元アドレス及びポート番号と、相手方端末のアドレス及びポート番号とをデータ部に含むＴＡ＿ＲＥＧ＿ＰＯＲＴを、転送エージェント１へ送信する。これにより、転送エージェントは、送信元アドレス及びポート番号によって、移動後端末を特定し、相手方端末のアドレス及びポート番号によって、その端末Ａが端末Ｂとのコネクションを更新したいとすることを認識する。
【０１０３】
移動更新メッセージ送信部２２は、端末の移動後アドレスと、移動後のルータのアドレス及びポート番号とをデータ部に含むＬ４＿ＰＥＥＲ＿ＵＰＤを、相手方端末へ送信する。これにより、移動後のルータに、相手方端末との間の通過可能コネクションを設定することができる。
【０１０４】
移動更新メッセージ受信部２３は、転送エージェント１又は相手方端末から、Ｌ４＿ＰＥＥＲ＿ＵＰＤを受信する。また、移動更新メッセージ受信部２３は、Ｌ４＿ＰＥＥＲ＿ＵＰＤを受信した旨を、移動更新応答メッセージ送信部２４へ通知する。
【０１０５】
移動更新応答メッセージ送信部２４は、移動更新メッセージ受信部２３によってＬ４＿ＰＥＥＲ＿ＵＰＤが受信された際に、Ｌ４＿ＰＥＥＲ＿ＡＣＫを相手方端末へ送信する。これにより、ルータに、相手方端末との間の通過可能コネクションを設定することができる。
【０１０６】
移動登録メッセージ送信部２５は、１つ以上のソケット情報を含むＴＡ＿ＲＥＧを、転送エージェント１へ送信する。
【０１０７】
パケット送受信部２６は、相手方端末、相手方ルータ又は転送エージェントとの間で、パケットを送受信する。
【０１０８】
広告メッセージ受信部２７は、広告メッセージを受信し、転送エージェント１の存在を知る。
【０１０９】
最後に、本発明の適用状態について説明する。
【０１１０】
同一出願人による先の出願発明（特願２００５−３５８８３７）よれば、唯一のポート番号を付与することによって、移動後の端末のアドレスが変更された場合であっても、ポート番号の対応付けから、アドレスを自動的に更新する。これにより、端末が移動しても、ソケットを有効にすることができ、コネクションが切断されない。
【０１１１】
しかしながら、端末やエージェント装置が、ＮＡＰＴルータ内側のネットワークに接続されている場合、移動後の端末との間のシグナリング及びデータパケットの全てが、ＮＡＰＴルータを通過することができない。従って、本発明によって、ＮＡＰＴルータ内側のネットワークに端末が移動した場合であっても、対向する端末がコネクションを切断することなく、通信を回復させることができる。
【０１１２】
先の発明について、具体的に説明する。端末Ａ（ＩＰａ、ポートａ）と端末Ｂ（ＩＰａ、ポートａ）とが通信していたときに、端末Ａが移動して新たにＩＰｎａを取得したとする。また、ポート番号は、唯一の番号が付与されており、送信元ポート番号−宛先ポート番号の対のユニーク性が保証されている。このために、宛先アドレス：ポート番号［ＩＰｎａ：ポートａ］のパケットを受信した際に、ポートａについて、宛先アドレスがＩＰａからＩＰｎａへ変更されたと認識することができる。これに基づいて、ソケット情報の中の端末ＡのアドレスをＩＰｎａへ変更する。
【０１１３】
以上、詳細に説明したように、本発明の端末のハンドオフ方法、転送エージェント、端末及びプログラムによれば、端末が、移動によって、ＮＡＰＴルータを介して接続されたネットワークに接続された場合であっても、ＮＡＰＴルータが当該端末へのパケットを破棄しないようにすることができる。また、本発明によれば、対向して通信している２つの端末が同時に移動した場合であっても、一時的に転送エージェントを用いるだけで、その移動後のネットワークがＮＡＰＴルータの内側／外側に関係なく、通信を回復することができる。
【０１１４】
前述した本発明における種々の実施形態によれば、当業者は、本発明の技術思想及び見地の範囲における種々の変更、修正及び省略を容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【図面の簡単な説明】
【０１１５】
【図１】端末の移動前に確立されている通信のシーケンス図である。
【図２】本発明によって用いられるメッセージフォーマットである。
【図３】端末ＡがネットワークＣへ移動した場合の第１のシーケンス図である。
【図４】端末ＡがネットワークＣへ移動した場合の第２のシーケンス図である。
【図５】端末ＡがネットワークＣへ移動した場合の第３のシーケンス図である。
【図６】端末ＡがネットワークＣへ移動した場合の第４のシーケンス図である。
【図７】端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第１のシーケンス図である。
【図８】端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第２のシーケンス図である。
【図９】端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第３のシーケンス図である。
【図１０】端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第４のシーケンス図である。
【図１１】端末Ａ及び端末Ｂが同時にネットワークを移動した場合の第５のシーケンス図である。
【図１２】本発明における端末及び転送エージェントの機能構成図である。
【符号の説明】
【０１１６】
１  転送エージェント
１１  ポート登録メッセージ受信部
１２  移動更新メッセージ送信部
１３  移動登録メッセージ受信部
１４  パケット転送部
１５  広告メッセージ送信部
２  端末
２１  ポート登録メッセージ送信部
２２  移動更新メッセージ送信部
２３  移動更新メッセージ受信部
２４  移動更新応答メッセージ送信部
２５  移動登録メッセージ送信部
２６  パケット送受信部
２７  広告メッセージ受信部
【図１】
2008166874.tif 000003
【図２】
2008166874.tif 000004
【図３】
2008166874.tif 000005
【図４】
2008166874.tif 000006
【図５】
2008166874.tif 000007
【図６】
2008166874.tif 000008
【図７】
2008166874.tif 000009
【図８】
2008166874.tif 000010
【図９】
2008166874.tif 000011
【図１０】
2008166874.tif 000012
【図１１】
2008166874.tif 000013
【図１２】
2008166874.tif 000014