(57)【要約】【課題】インターネットを介して通信している装置のＩＰアドレスが変更された場合に、ＩＰ以外のプロトコルを用いずに、その通信を続行できる仕組みを提供する。【解決手段】通信中にサーバ５０４のＩＰアドレスが変更された場合（Ｓ６０５）、サーバ５０４は、ヘッダ部３０２の送信元ＩＰアドレスにサーバ５０４の変更前のＩＰアドレスを設定し、データ部３１２に変更後のＩＰアドレスを保持した変更通知パケット３００ａを送信する（Ｓ６０６）。このパケット３００ａは、ルータ５０８の既存のＮＡＴエントリ６５０に合致し、ＮＡＰＴ処理の後端末５０２まで転送される。端末５０２は、その変更通知パケットのデータ部に含まれるＩＰアドレスを、サーバ５０４の変更後のＩＰアドレスと認識し、その後サーバ５０４と通信する場合は宛先をその変更後のＩＰアドレスとする。【選択図】図６
2010074353.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、
通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段と、
を備える情報処理装置。
【請求項２】
前記情報処理装置及び前記通信相手には、それぞれ、少なくとも前記情報処理装置と前記通信相手との間での通信中は固定の仮想ＩＰアドレスが割り当てられ、
前記変更通知送信手段は、前記情報処理装置の仮想ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み、データ部に前記変更後のＩＰアドレスを含んだパケットを、前記変更前の実ＩＰアドレスを送信元ＩＰアドレスとして含むヘッダ部によりカプセル化することで、前記変更通知パケットを生成する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
コンピュータを、
当該コンピュータ自身の実ＩＰアドレスの変更を検出する検出手段、
通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段、
として機能させるためのプログラム。
【請求項４】
通信相手の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記通信相手から受信する変更通知受信手段と、
前記変更通知受信手段が前記変更通知パケットを受信した後、前記通信相手宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段と、
を備える情報処理装置。
【請求項５】
前記情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、
通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更後の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第２の変更通知パケットを生成し、生成した第２の変更通知パケットを前記通信相手宛に送信する変更通知送信手段、
を更に備える請求項４記載の情報処理装置。
【請求項６】
前記通信相手からの応答が途絶えたと判定した場合に、前記情報処理装置の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第３の変更通知パケットを生成し、生成した第３の変更通知パケットを前記通信相手宛に送信する第２の変更通知送信手段、
を更に備える請求項５記載の情報処理装置。
【請求項７】
コンピュータを、
通信相手の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記通信相手から受信する変更通知受信手段、
前記変更通知受信手段が前記変更通知パケットを受信した後、前記通信相手宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段、
として機能させるためのプログラム。
【請求項８】
第１の情報処理装置と第２の情報処理装置とを備え、
前記第１の情報処理装置は、
前記第１の情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、
前記第２の情報処理装置と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記第２の情報処理装置宛に送信する変更通知送信手段と、
を備え、
前記第２の情報処理装置は、
前記第１の情報処理装置の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記第１の情報処理装置から受信する変更通知受信手段と、
前記第１の情報処理装置と通信中に前記変更通知受信手段が前記変更通知パケットを受信した後、前記第１の情報処理装置宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段と、
を備える、ことを特徴とする情報処理システム。
【請求項９】
情報処理装置自身の種別情報として、ネットワークから到来するパケットのうち宛先ＩＰアドレス及び送信元ＩＰアドレスの組が過去に当該情報処理装置から送信したパケットの送信元ＩＰアドレス及び宛先ＩＰアドレスの組に合致しないものは当該情報処理装置へと転送しない検査装置、により保護されているか否かを示す種別情報、を記憶する種別記憶手段と、
当該情報処理装置の実ＩＰアドレスの変更を検出する検出手段と、
通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、前記種別情報が前記検査装置により保護されていない種別を示していれば、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段と、
を備える情報処理装置。
【請求項１０】
前記変更通知送信手段は、前記種別情報が前記検査装置により保護されている種別を示していれば、変更後の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する、
ことを特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記通信相手からの応答が途絶えたと判定した場合に、前記情報処理装置の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第２の変更通知パケットを生成し、生成した第２の変更通知パケットを前記通信相手宛に送信する第２の変更通知送信手段、
を更に備える請求項１０記載の情報処理装置。
【請求項１２】
コンピュータを、
当該コンピュータ自身の種別情報として、ネットワークから到来するパケットのうち宛先ＩＰアドレス及び送信元ＩＰアドレスの組が過去に当該コンピュータから送信したパケットの送信元ＩＰアドレス及び宛先ＩＰアドレスの組に合致しないものは当該コンピュータへと転送しない検査装置、により保護されているか否かを示す種別情報、を記憶する種別記憶手段、
当該コンピュータの実ＩＰアドレスの変更を検出する検出手段、
通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、前記種別情報が前記検査装置により保護されていない種別を示していれば、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
通信中にＩＰ(Internet Protocol)アドレスが変更されても通信セッションを継続可能とするために、従来、例えば、あるノードのＩＰアドレスが変更されると、その変更されたＩＰアドレスを通信相手のノードに通知する仕組みを備えたシステムが知られている。
【０００３】
例えば、このようなシステムの例としては、特許文献１及び特許文献２に開示されたシステムがある。
【０００４】
また特許文献３には、端末とサーバで使用するポート番号を重複しないよう設定することによって、通信セッション継続中にＩＰアドレスが変更されても通信セッションを継続可能な通信方法が開示されている。この方法は、ＴＣＰプロトコルで用いられるポート番号を利用することで、ＩＰアドレスが変更されても通信続行を可能とするものである。
【０００５】
【特許文献１】特開２００３−０１８１８４号公報
【特許文献２】特開２００５−２１８１１１号公報
【特許文献３】特開２００７−１６６１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、インターネットを介して通信している装置のＩＰアドレスが変更された場合に、ＩＰ以外のプロトコル（ＴＣＰなど）を用いずに、その通信を続行できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段と、を備える情報処理装置である。
【０００８】
請求項２に係る発明は、請求項１に係る発明において、前記情報処理装置及び前記通信相手には、それぞれ、少なくとも前記情報処理装置と前記通信相手との間での通信中は固定の仮想ＩＰアドレスが割り当てられ、前記変更通知送信手段は、前記情報処理装置の仮想ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み、データ部に前記変更後のＩＰアドレスを含んだパケットを、前記変更前の実ＩＰアドレスを送信元ＩＰアドレスとして含むヘッダ部によりカプセル化することで、前記変更通知パケットを生成する、ことを特徴とする。
【０００９】
請求項３に係る発明は、コンピュータを、当該コンピュータ自身の実ＩＰアドレスの変更を検出する検出手段、通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段、として機能させるためのプログラムである。
【００１０】
請求項４に係る発明は、通信相手の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記通信相手から受信する変更通知受信手段と、前記変更通知受信手段が前記変更通知パケットを受信した後、前記通信相手宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段と、を備える情報処理装置である。
【００１１】
請求項５に係る発明は、請求項４に係る発明において、前記情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更後の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第２の変更通知パケットを生成し、生成した第２の変更通知パケットを前記通信相手宛に送信する変更通知送信手段、を更に備える。
【００１２】
請求項６に係る発明は、請求項５に係る発明において、前記通信相手からの応答が途絶えたと判定した場合に、前記情報処理装置の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第３の変更通知パケットを生成し、生成した第３の変更通知パケットを前記通信相手宛に送信する第２の変更通知送信手段、を更に備える。
【００１３】
請求項７に係る発明は、コンピュータを、通信相手の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記通信相手から受信する変更通知受信手段、前記変更通知受信手段が前記変更通知パケットを受信した後、前記通信相手宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段、として機能させるためのプログラムである。
【００１４】
請求項８に係る発明は、第１の情報処理装置と第２の情報処理装置とを備え、前記第１の情報処理装置は、前記第１の情報処理装置自身の実ＩＰアドレスの変更を検出する検出手段と、前記第２の情報処理装置と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記第２の情報処理装置宛に送信する変更通知送信手段と、を備え、前記第２の情報処理装置は、前記第１の情報処理装置の変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを、前記第１の情報処理装置から受信する変更通知受信手段と、前記第１の情報処理装置と通信中に前記変更通知受信手段が前記変更通知パケットを受信した後、前記第１の情報処理装置宛にパケットを送信する場合に、当該パケットのヘッダ部における宛先ＩＰアドレスに、前記変更通知パケットのデータ部に含まれる前記通信相手の前記変更後の実ＩＰアドレスを設定する宛先設定手段と、を備える、ことを特徴とする情報処理システムである。
【００１５】
請求項９に係る発明は、情報処理装置自身の種別情報として、ネットワークから到来するパケットのうち宛先ＩＰアドレス及び送信元ＩＰアドレスの組が過去に当該情報処理装置から送信したパケットの送信元ＩＰアドレス及び宛先ＩＰアドレスの組に合致しないものは当該情報処理装置へと転送しない検査装置、により保護されているか否かを示す種別情報、を記憶する種別記憶手段と、当該情報処理装置の実ＩＰアドレスの変更を検出する検出手段と、通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、前記種別情報が前記検査装置により保護されていない種別を示していれば、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段と、を備える情報処理装置である。
【００１６】
請求項１０に係る発明は、請求項９に係る発明において、前記変更通知送信手段は、前記種別情報が前記検査装置により保護されている種別を示していれば、変更後の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する、ことを特徴とする。
【００１７】
請求項１１に係る発明は、請求項１０に係る発明において、前記通信相手からの応答が途絶えたと判定した場合に、前記情報処理装置の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含む第２の変更通知パケットを生成し、生成した第２の変更通知パケットを前記通信相手宛に送信する第２の変更通知送信手段、を更に備える。
【００１８】
請求項１２に係る発明は、コンピュータを、当該コンピュータ自身の種別情報として、ネットワークから到来するパケットのうち宛先ＩＰアドレス及び送信元ＩＰアドレスの組が過去に当該コンピュータから送信したパケットの送信元ＩＰアドレス及び宛先ＩＰアドレスの組に合致しないものは当該コンピュータへと転送しない検査装置、により保護されているか否かを示す種別情報、を記憶する種別記憶手段、当該コンピュータの実ＩＰアドレスの変更を検出する検出手段、通信相手と通信中に前記検出手段が実ＩＰアドレスの変更を検出した場合に、前記種別情報が前記検査装置により保護されていない種別を示していれば、変更前の実ＩＰアドレスをヘッダ部の送信元ＩＰアドレスとして含み変更後の実ＩＰアドレスをデータ部に含む変更通知パケットを生成し、生成した変更通知パケットを前記通信相手宛に送信する変更通知送信手段、として機能させるためのプログラムである。
【発明の効果】
【００１９】
請求項１又は３又は８に係る発明によれば、インターネットを介して通信している装置のＩＰアドレスが変更された場合に、ＩＰ以外のプロトコル（ＴＣＰなど）を用いずに、その通信を続行することができる。
【００２０】
請求項２に係る発明によれば、変更通知パケットを受け取った通信相手が変更通知パケットの送信元を知ることができる。
【００２１】
請求項４又は７に係る発明によれば、情報処理装置は通信相手から受け取った変更通知パケットに基づき、通信相手の変更後の実ＩＰアドレスを知り、通信を続行することができる。
【００２２】
請求項５に係る発明によれば、情報処理装置の実ＩＰアドレスの変更を、ＩＰプロトコルにて通信相手に通知し、通信を続行することができる。
【００２３】
請求項６に係る発明によれば、情報処理装置とネットワークとの間に介在するルータ等の装置の実ＩＰアドレスが変更された場合でも、その変更を通信相手に伝達し、通信を続行することができる。
【００２４】
請求項９又は１２に係る発明によれば、情報処理装置の実ＩＰアドレスの変更を、ＩＰプロトコルにて、通信相手を保護する検査装置を越えて通信相手に通知し、通信を続行することができる。
【００２５】
請求項１０に係る発明によれば、当該情報処理装置が検査装置により保護されている場合に、保護されていない通信相手に対して自分の実ＩＰアドレスの変更を、ＩＰプロトコルにて通知し、通信を続行することができる。
【００２６】
請求項１１に係る発明によれば、当該情報処理装置を保護する検査装置の実ＩＰアドレスが変更された場合でも、その変更を通信相手に伝達し、通信を続行することができる。
【発明を実施するための最良の形態】
【００２７】
図１に示すようなネットワーク構成を例にとって、本発明の実施形態を説明する。図１の例では、端末１０２とサーバ１０４とがネットワーク１０６を介して接続されている。ネットワーク１０６は、インターネット等のＩＰプロトコル・ベースのデータ通信ネットワークである。端末１０２は、ユーザが利用するパーソナルコンピュータなどのコンピュータ装置である。サーバ１０４は、端末１０２に対してサービスを提供するコンピュータ装置である。
【００２８】
端末１０２及びサーバ１０４は、ＩＰプロトコルを用いた通信のための実ＩＰアドレスを有している。サーバ１０４は、インターネットを介して端末１０２に対してサービスを提供するために、実ＩＰアドレスとして例えばグローバルＩＰアドレスを有する。これに対し、端末１０２には、企業内のＬＡＮ（ローカルエリアネットワーク）に接続されている場合などには、実ＩＰアドレスとして、例えばそのＬＡＮ内でのプライベートＩＰアドレスが割り当てられる。なお、端末１０２がグローバルＩＰアドレスを持っていてもよい。
【００２９】
また、端末１０２及びサーバ１０４には、それぞれ一意な仮想ＩＰアドレスが割り当てられる。端末１０２及びサーバ１０４内のアプリケーションは、仮想ＩＰアドレスを用いて通信を行う。すなわち、アプリケーションは、宛先及び送信元を仮想ＩＰアドレスで表したパケット（オリジナルパケットと呼ぶ）を生成し、端末１０２及びサーバ１０４内のＩＰパケット処理部（後述）がそのオリジナルパケットに対し、宛先及び送信元をそれぞれ実ＩＰアドレスで表したヘッダを付加することで、オリジナルパケットをカプセル化し、外部のネットワーク１０６へと送出する。
【００３０】
仮想ＩＰアドレスは、例えば仮想プライベートネットワーク接続を実現するＶＰＮ（Virtual Private Network）サーバなどのサーバにより、ノードで一意になるよう管理され、クライアント１０２及びサーバ１０４に割り当てられる。なお、サーバ１０４がＶＰＮサーバである場合は、サーバ１０４がクライアント１０２に仮想ＩＰアドレスを割り当てる。
【００３１】
仮想ＩＰアドレスは、割り当てを受けた通信ノード（例えば端末１０２又はサーバ１０４内のアプリケーション）がその仮想ＩＰアドレスの使用をやめるまでは変更されない。例えば、端末１０２内のアプリケーションとサーバ１０４内のアプリケーションとが通信セッションを続けている間は、両者が用いる仮想ＩＰアドレスは変更されない。これに対し、端末１０２及びサーバ１０４が持つ実ＩＰアドレスは、それらアプリケーションの関知しないところで変更される可能性がある。例えば、実ＩＰアドレスの変更は、例えば管理者がＩＰアドレスの変更操作を行った場合、移動端末である端末１０２が別のＬＡＮに移動した場合などに生じる。
【００３２】
図２に、端末１０２とサーバ１０４との間でやりとりされるデータパケット２００のデータ構造の一例を示す。パケットとは通信データのひとまとまりであり、その構造はヘッダ部とデータ部から構成される。ヘッダ部とは、通信を実現するために必要な制御情報であり、データ部の先頭に付加される。またデータ部とは、通信を行いたい内容そのものの情報である。この例では、データパケット２００のヘッダ部２０２内の宛先ＩＰアドレス及び送信元ＩＰアドレスには、それぞれ端末１０２又はサーバ１０４の実ＩＰアドレスが設定される。一方、データパケット２００のデータ部（「ペイロード」とも呼ばれる）２０４には、付加情報２０６と、端末１０２又はサーバ１０４内のアプリケーションが作成したオリジナルパケット２０８とが含まれる。すなわち、データパケット２００は、オリジナルパケット２０８をカプセル化したものである。
【００３３】
付加情報２０６は、認証キー（鍵）とタイプ情報とを含んでいる。認証キーは、端末１０２とサーバ１０４との間で共有される秘密キーである。この認証キーにより、端末１０２はデータパケット２００がサーバ１０４からのものであることを確認（認証）し、サーバ１０４はデータパケット２００が端末１０２からのものであることを確認する。認証キーは、例えば端末１０２とサーバ１０４との間で通信を開始する際に、鍵交換プロトコルを用いて共有される。タイプ情報は、端末１０２とサーバ１０４との間でやりとりされるパケットのタイプ（種類）を表す情報である。
【００３４】
この実施形態では、パケットのタイプには、例えば、データパケットと変更通知パケットがある。データパケットは、端末１０２のアプリケーションとサーバ１０４のアプリケーションとがやりとりするデータを収容するパケットである。データパケットのタイプ情報の値は例えば“ＤＡＴＡ”である。図２のデータパケット２００のタイプ情報の値も“ＤＡＴＡ”となっている。これに対し、変更通知パケット（図３参照）は、実ＩＰアドレスの変更を通信相手に通知する際に用いられるパケットである。変更通知パケットを表すタイプ情報の値は例えば“ＡＤＤＲ”である。
【００３５】
オリジナルパケット２０８のヘッダ部２１０には、宛先ＩＰアドレス及び送信元ＩＰアドレスとして、それぞれ端末１０２又はサーバ１０４の仮想ＩＰアドレスが設定される。そして、オリジナルパケット２０８のデータ部２１２には、アプリケーションが利用するデータが収容される。
【００３６】
図３に、変更通知パケット３００のデータ構造の一例を示す。変更通知パケットは、基本的には、自分の実ＩＰアドレスが変更された通信ノードが、その変更を通信相手のノードに通知するために送信する。なお、変形例として、通信ノードとネットワーク１０６とを繋ぐルータのＩＰアドレスが変更された場合に、その通信ノードが変更通知パケットを送信する場合もある（詳細は後述）。変更通知パケット３００のヘッダ部３０２内の宛先ＩＰアドレス及び送信元ＩＰアドレスには、それぞれ端末１０２又はサーバ１０４の実ＩＰアドレスが設定される。
【００３７】
ここで、変更通知パケット３００は実ＩＰアドレスの変更後に送信されるのであるから、通常であれば、ヘッダ部３０２の送信元ＩＰアドレスは、変更後の実ＩＰアドレスとなる。しかし、この実施形態では、サーバ１０４が発する変更通知パケット３００のヘッダ部３０２の送信元ＩＰアドレスは、サーバ１０４の変更前の実ＩＰアドレスとする。なお、端末１０２が発する変更通知パケット３００のヘッダ部３０２の送信元ＩＰアドレスは、変更後の実ＩＰアドレスである。このように、この実施形態では、通信ノードの種別が端末１０２及びサーバ１０４のいずれであるかに応じて、ヘッダ部３０２の送信元ＩＰアドレスとして変更前及び変更後のいずれの実ＩＰアドレスを用いるかを切り換えている。
【００３８】
なお、ここで言う通信ノードの種別は、当該通信ノードがネットワーク１０６からパケットを受け取る場合に、ＮＡＴ（Network Address Translation:ネットワークアドレス変換）又はＮＡＰＴ（Network Address Port Translation:ネットワークアドレスポート変換）機能を備えるルータのように到来するパケットの宛先及び送信元のＩＰアドレスを検査（チェック）する装置によってパケットが保護され、外部ネットワークからそのノードに対して通信セッションを開始できるか、あるいは開始できないかの違いによる。到来するパケットの宛先及び送信元のＩＰアドレスを検査する装置としては、他にもファイアウォールなどさまざまなものがある。この種の検査装置は、自分自身が守る内部ネットワーク（これに対してネットワーク１０６は外部ネットワークである）から発せられたパケットの宛先及び送信元のＩＰアドレスを記憶（キャッシュ）しており、その宛先から送信元へと戻ってきたパケットは内部ネットワークに通すが、それ以外のパケットは通さない。すなわち、ここで想定している例では、端末１０２はそのような検査装置を介してパケットを受け取るノードであり、サーバ１０４はそのような検査装置を介さずにパケットを受け取るノードである。
【００３９】
変更通知パケット３００のデータ部３０４には、付加情報３０６とオリジナルパケット３０８とが含まれる。付加情報３０６は、認証キーとタイプ情報とを含んでいる。この例は変更通知パケットなのでタイプ情報の値は“ＡＤＤＲ”である。
【００４０】
オリジナルパケット３０８のヘッダ部３１０には、宛先ＩＰアドレス及び送信元ＩＰアドレスとして、それぞれ端末１０２又はサーバ１０４の仮想ＩＰアドレスが設定される。オリジナルパケット３０８のデータ部３１２には、図３の例では、通知すべき変更後の実ＩＰアドレスが収容されている。
【００４１】
なお、このデータ部３１２が収容するデータ内容は、変更通知パケット３００を生成した通信ノードの種別により異なる。この通信ノードの種別は、前述のものと同様である。種別がサーバ１０４である場合、データ部３１２には変更後のＩＰアドレスが収容される。これに対し、種別が端末１０２である場合、データ部３１２は空となる。
【００４２】
次に、通信ノード（端末１０２及びサーバ１０４）の内部の機能構成の一例を、図４を用いて説明する。図４に示すように、通信ノード４００は、接続情報記憶部４０２、ＩＰパケット処理部４０４、ＩＰアドレス変更検出部４０６及びアプリケーション４０８を有している。サーバ１０４のアプリケーション４０８は、端末１０２のアプリケーション４０８に対してサービスを提供するための処理を実行する。例えば、サーバ１０４がＷｅｂサーバである場合、サーバ１０４のアプリケーション４０８はＷｅｂサーバ機能を提供する。この場合、端末１０２のアプリケーション４０８は、例えばＷｅｂブラウザである。アプリケーション４０８は、自分及び通信相手のアプリケーションに割り当てられた仮想ＩＰアドレスを記憶しており、通信相手に対してデータを送信する場合は、それら仮想ＩＰアドレスを用いてオリジナルパケット２０８を生成する。なお、アプリケーション４０８は、自分及び通信相手の仮想ＩＰアドレスを持たず、後述する接続情報記憶部４０２に記憶されたそれらの情報を参照するようにしてもよい。
【００４３】
接続情報記憶部４０２は、通信相手の通信ノードとの通信接続のために用いる各種情報を記憶している。図示例では、接続情報記憶部４０２には、認証キー、宛先実ＩＰアドレス、送信元実ＩＰアドレス、前の送信元実ＩＰアドレス、宛先仮想ＩＰアドレス、送信元仮想ＩＰアドレス、ノード種別の情報が記憶されている。このうち、前の送信元実ＩＰアドレスは、送信元の実ＩＰアドレスが変更された場合における、変更前の送信元実ＩＰアドレスである。また、ノード種別は、当該通信ノードの種別である。すなわち、ノード種別の値は、当該通信ノードが前述したサーバ又は端末のいずれの種別に該当するかを示す。ノード種別の値は、サーバの場合は例えば“ＳＥＲＶＥＲ”、端末の場合は例えば“ＣＬＩＥＮＴ”である。接続情報記憶部４０２に記憶される情報項目のうち、前の送信元実ＩＰアドレス及びノード種別以外の項目は、既に説明した。
【００４４】
これら各項目のうち、前の送信元実ＩＰアドレスを除く各項目の値は、通信ノード（端末１０２とサーバ１０４）のアプリケーション間で通信を開始する前に公知の手法で設定されている。
【００４５】
なお、当該通信ノードが複数の通信相手と通信を行う場合、認証キー、宛先実ＩＰアドレス、宛先仮想ＩＰアドレスの情報は通信相手ごとに記憶される。
【００４６】
ＩＰアドレス変更検出部４０６は、当該通信ノードの実ＩＰアドレスの変更を検出する。ＩＰアドレス変更検出部４０６は、例えば、通信ノードのオペレーティングシステム等、当該通信ノードの実ＩＰアドレスを記憶・管理しているシステムに対し例えば定期的に問合せを行うことで、この問合せの時点での実ＩＰアドレスの値を求める。そして、その値の前回との値との比較から実ＩＰアドレスの変更を検出する。すなわち、例えば、今回求めた実ＩＰアドレスが前回求めた実ＩＰアドレスと異なっていれば、実ＩＰアドレスが変更されたと判断する。実ＩＰアドレスが変更されたことを検出した場合、ＩＰアドレス変更検出部４０６は、接続情報記憶部４０２に記憶された項目「送信元実ＩＰアドレス」の値を項目「前の送信元実ＩＰアドレス」にコピーし、変更後の実ＩＰアドレスを項目「送信元実ＩＰアドレス」に上書きする。
【００４７】
ＩＰパケット処理部４０４は、アプリケーション４０８とネットワークとの間に位置し、アプリケーション４０８とネットワーク上の通信相手との間の通信のために、ＩＰパケットについての処理を実行する。例えば、ＩＰパケット処理部４０４は、アプリケーション４０８が生成したオリジナルパケットをカプセル化してネットワーク上に送出したり、通信相手から送られてきたパケットをカプセル解除してオリジナルパケットを取り出し、アプリケーション４０８に提供したりする。また、ＩＰパケット処理部４０４は、自ノードの実ＩＰアドレスの変更が検出された場合などに、変更通知パケットを生成して通信相手に送る処理を行う。また、通信相手から変更通知パケットを受け取った場合に、その変更通知パケットに含まれる情報に基づき、接続情報記憶部４０２に記憶された宛先の情報を更新する等の処理も行う。
【００４８】
ＩＰパケット処理部４０４は、カプセル化部４１２，送信部４１４，変更通知パケット生成部４１６，受信部４１８，カプセル解除部４２０，接続情報更新部４２２を備える。カプセル化部４１２は、アプリケーション４０８から受け取ったオリジナルパケット２０８をカプセル化して外部ネットワーク（ネットワーク１０６）へ送出可能なパケットを生成する。すなわちカプセル化部４１２は、オリジナルパケット２０８に対し、接続情報記憶部４０２に記憶された情報を用いてヘッダ２０２及び付加情報２０６を付加することで、カプセル化されたパケット（カプセル化パケットと呼ぶ）を生成する。すなわち、ヘッダ部２０２の宛先ＩＰアドレス及び送信元ＩＰアドレスに接続情報記憶部４０２内の宛先実ＩＰアドレス及び送信元実ＩＰアドレスを設定し、更に認証キーとパケットのタイプ“ＤＡＴＡ”を付加情報２０６に設定し、これらヘッダ部２０２及び付加情報２０６をオリジナルパケット２０８に付加することで、カプセル化パケットを生成する。カプセル化部４１２が生成したカプセル化パケットは、送信部４１４を介してネットワークへと送出される。
【００４９】
変更通知パケット生成部４１６は、ＩＰアドレス変更検出部４０６から当該通信ノードの実ＩＰアドレスの変更を検出した旨の通知を受けた場合に、変更通知パケット３００（図３参照）を生成する。このとき、変更通知パケット生成部４１６は、項目「ノード種別」の値に応じた変更通知パケット３００を生成する。すなわち、ノード種別が“ＳＥＲＶＥＲ”であれば、項目「前の送信元実ＩＰアドレス」（すなわち変更前）の値をヘッダ３０２の送信元実ＩＰアドレスとし、項目「送信元実ＩＰアドレス」（すなわち変更後）の値をデータ部３１２に含んだ変更通知パケット３００を生成する。また、ノード種別が“ＣＬＩＥＮＴ”であれば、項目「送信元実ＩＰアドレス」の値をヘッダ３０２の送信元実ＩＰアドレスとし、データ部３１２が空の変更通知パケット３００を生成する。この場合、変更通知パケット３００のタイプは“ＡＤＤＲ”であり、オリジナルパケット３０８のヘッダ部３１０の宛先ＩＰアドレス及び送信元ＩＰアドレスは、接続情報記憶部４０２から読み出された宛先仮想ＩＰアドレス及び送信元仮想ＩＰアドレスとなる。生成された変更通知パケット３００は、送信部４１４によりネットワークへと送出される。
【００５０】
また、ＩＰパケット処理部４０４が通信相手との通信セッションのタイムアウトを監視し、タイムアウトが生じた場合に、変更通知パケット生成部４１６に変更通知パケット３００を生成させるようにしてもよい。これは、例えば、当該通信ノードが接続されている内部ネットワークと外部ネットワーク（ネットワーク１０６）とを接続するＮＡＴルータの実ＩＰアドレス（ネットワーク１０６向けのグローバルＩＰアドレス）が変更された場合に対応するために行う（詳細な例は後述する）。
【００５１】
例えば、送信したパケットに対する通信相手からの応答が、あらかじめ設定された時間（タイムアウト値という）以内に戻って来ない場合に、通信セッションのタイムアウトが起こったと判定すればよい。ここで用いるタイムアウト値は、アプリケーション４０８が管理しているタイムアウト値よりも十分小さい値としておく。すなわち、アプリケーション４０８は、オリジナルパケット２０８を生成して他の通信ノードのアプリケーションと通信を行うが、その通信についてのタイムアウト値がアプリケーション４０８に対して設定されている。ＩＰパケット処理部４０４のタイムアウト値を、そのアプリケーション４０８のタイムアウト値よりも十分小さい値とすることで、ＮＡＴルータの実ＩＰアドレスが変更された場合でも、アプリケーション４０８と通信相手のアプリケーションとの通信が途絶える前に、その変更が通信相手に通知される。この結果、通信が続行される。
【００５２】
受信部４１８は、ネットワークから到来する当該通信ノード宛のパケットを受信する。受信されたパケットはカプセル解除部４２０に渡される。
【００５３】
カプセル解除部４２０は、そのパケット（カプセル化パケット）のカプセル化を解除する。すなわち、受信したカプセル化パケットからヘッダ部２０２又は３０２と付加情報２０６又は３０６を除いたオリジナルパケット２０８又は３０８を取り出す。
【００５４】
ここで、カプセル解除部４２０は、オリジナルパケット２０８又は３０８のヘッダ部２１０又は３１０に設定されている宛先ＩＰアドレス及び送信元ＩＰアドレス、及び付加情報２０６又は３０６の認証キーが、それぞれ、接続情報記憶部４０２に記憶されている送信元仮想ＩＰアドレス及び宛先仮想ＩＰアドレス及び認証キーと一致するかどうかを調べる。ここで、それら三者のうちいずれか一つでも一致しなければ、カプセル解除部４２０はそのオリジナルパケットを破棄する。
【００５５】
また、三者全てが接続情報記憶部４０２に登録された値と一致した場合、カプセル解除部４２０は更に付加情報２０６又は３０６のタイプ情報を調べる。そして、タイプ情報が“ＤＡＴＡ”であれば、当該データパケット２００からオリジナルパケット２０８を取り出し、アプリケーション４０８に渡す。アプリケーション４０８は、受け取ったオリジナルパケット２０８からデータ部２１２を取り出し、そのデータ部２１２のデータ内容を用いて当該アプリケーション４０８自身の処理を行う。
【００５６】
一方、タイプ情報が“ＡＤＤＲ”であれば、当該パケットは変更通知パケット３００であり、カプセル解除部４２０はその変更通知パケット３００を接続情報更新部４２２に渡す。
【００５７】
接続情報更新部４２２は、受け取った変更通知パケット３００を用いて、接続情報記憶部４０２に記憶された項目「宛先実ＩＰアドレス」の値を更新する。すなわち、その変更通知パケット３００内のオリジナルパケット３０８のデータ部３１２が空であれば、当該変更通知パケット３００のヘッダ部３０２の送信元実ＩＰアドレスを接続情報記憶部４０２内の項目「宛先実ＩＰアドレス」に上書きする。また、その変更通知パケット３００内のオリジナルパケット３０８のデータ部３１２にＩＰアドレスが収容されていれば、そのＩＰアドレスを接続情報記憶部４０２内の項目「宛先実ＩＰアドレス」に上書きする。
【００５８】
次に、図５〜図１２を参照して、具体的な状況において本実施形態のシステムがどのように動作するかの例を説明する。まず、図５及び図６を参照して、第１のケースを説明する。
【００５９】
第１のケースでは、図５に示すように、端末５０２はサーバ５０６と、インターネット等のネットワーク５０６経由で通信を行う。端末５０２には、プライベートな実ＩＰアドレスＡＡＡと、仮想ＩＰアドレスＸＸＸが割り当てられている。サーバ５０４には、実ＩＰアドレスＢＢＢおよび仮想ＩＰアドレスＹＹＹが割り当てられている。この第１のケースでは、端末５０２との通信中に、サーバ５０４の実ＩＰアドレスがＢＢＢからＢ’Ｂ’Ｂ’に変更される場合を想定する。
【００６０】
ここで、「通信中」とは、端末５０２とサーバ５０４との間で開始された通信セッションが、明示的な終了指示又はタイムアウトなどにより終了するまでの状態をいう。この例では、ルータ５０８により、外部のネットワーク５０６から通信セッションを開始するパケットは遮断される。
【００６１】
端末５０２は、内部ネットワークに接続されており、内部ネットワークと外部のネットワーク５０６との境界には、ＮＡＴ（ＮＡＰＴ）機能を持つルータ５０８が設けられている。ルータ５０８には、インターネット５０６側のインターフェイスに実ＩＰアドレスＣＣＣが割り当てられている。ルータ５０８は、端末５０２からのパケットに対しＮＡＰＴ処理を行い、処理後のパケットをインターネット５０６に送信する。つまり、ルータ５０８から送信されるパケットの送信元ＩＰアドレスは、実ＩＰアドレスＣＣＣに、送信元ポートはｐＣ（またはｐＣ’（実ＩＰアドレス変更後の場合））に変換される。
【００６２】
端末５０２とサーバ５０４のＩＰパケット処理部４０４が使用するポートはＩＰアドレス変更に依らず固定であり、それぞれｐＡおよびｐＢとする。また、端末５０２とサーバ５０４のアプリケーション４０８が使用するポートも、端末５０２又はサーバ５０４の実ＩＰアドレスの変更に依らず固定であるとする。
【００６３】
図６は、第１のケースにおける処理の流れを示したものである。この流れにおける最初のステップＳ６０１が実行される前に、端末５０２の接続情報記憶部４０２には以下の値が設定されている。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：ＢＢＢ
送信元実ＩＰアドレス：ＡＡＡ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＣＬＩＥＮＴ
【００６４】
また、サーバ５０４の接続情報記憶部４０２には以下の値が設定されている。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：設定なし
送信元実ＩＰアドレス：ＢＢＢ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＸＸＸ
送信元仮想ＩＰアドレス：ＹＹＹ
ノード種別：ＳＥＲＶＥＲ
【００６５】
Ｓ６０１〜Ｓ６０４は、端末５０２とサーバ５０４のルータ５０８を介してのデータパケット２０８の送受信を示したものである。ここで送受信されるデータパケット２００は図２に示したデータ構造のものである。端末５０２およびサーバ５０４のＩＰパケット処理部４０４は、到来するデータパケット２００の宛先及び送信元の仮想ＩＰアドレス、及び認証キーが接続情報記憶部４０２に記憶されたものと一致することを確認した場合に、オリジナルパケット２０８をアプリケーション４０８に送る。
【００６６】
すなわち、Ｓ６０１で端末５０２から発せられたデータパケット２００ａは、ＮＡＰＴ機能を備えるルータ５０８に受け取られる。ルータ５０８は、Ｓ６０２にてそのデータパケット２００ａのヘッダ部２０２の送信元ＩＰアドレス及びポート番号“ＡＡＡ：ｐＡ”を、ルータ５０８自身の外向けの送信元ＩＰアドレス及びポート番号“ＣＣＣ：ｐＣ”に変換し、変換後のパケット２００ｂを外部のネットワーク５０６に送出する。このとき、ルータ５０８は、宛先を“ＢＢＢ：ｐＢ”（内向き）と“ＢＢＢ：ｐＢ”（外向き）の間で変換（ただしこの変換では値は変化しない）し、送信元を“ＡＡＡ：ｐＡ”（内向き）と“ＣＣＣ：ｐＣ”（外向き）との間で変換するというＮＡＴ（ＮＡＰＴ）エントリ６５０を生成して記憶（キャッシュ）する。なお、同内容のＮＡＴエントリが既に存在する場合は、生成はしなくて良い。
【００６７】
このデータパケット２００ｂを受け取ったサーバ５０４は、その内部のアプリケーションがそのデータパケット内のデータ２１２を処理し、その処理結果を含んだ応答パケット２００ｃをＳ６０３にてネットワーク５０６に送出する。
【００６８】
この応答パケット２００ｃを受け取ったルータ５０８は、ヘッダ部２０２の宛先及び送信元ＩＰアドレスの組が、既存のＮＡＴエントリ６５０の外向きの送信元及び宛先ＩＰアドレスの組に一致するので、その応答パケット２００ｃを内部ネットワークへと通す。このとき、ルータ５０８は、応答パケット２００ｃのヘッダ部２０２の宛先ＩＰアドレスを、ＮＡＴエントリ６５０に従い“ＡＡＡ：ｐＡ”に変更し、変更後のパケット２００ｄをＳ６０４で内部ネットワークに送出する。このパケット２００ｄは端末５０２により受信される。
【００６９】
さて、Ｓ６０４の後、サーバ５０４の実ＩＰアドレスがＢＢＢからＢ’Ｂ’Ｂ’に変更されたとする（Ｓ６０５）。この場合、サーバ５０４のＩＰアドレス変更検出部４０６がＩＰアドレスの変更を検出し、サーバ５０４の接続情報記憶部４０２の送信元実ＩＰアドレスおよび前の送信元実ＩＰアドレスの値を更新する。この更新により、サーバ５０４の接続情報記憶部４０２内の情報は以下のようになる。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：ＣＣＣ
送信元実ＩＰアドレス：Ｂ’Ｂ’Ｂ’
前の送信元実ＩＰアドレス：ＢＢＢ
宛先仮想ＩＰアドレス：ＸＸＸ
送信元仮想ＩＰアドレス：ＹＹＹ
ノード種別：ＳＥＲＶＥＲ
【００７０】
また、サーバ５０４のＩＰパケット処理部４０４は、変更通知パケット３００ａを生成し、ネットワーク５０６経由でルータ５０８に送信する（Ｓ６０６）。この変更通知パケット３００ａのヘッダ部３０２の送信元ＩＰアドレスには変更前の実ＩＰアドレスＢＢＢが設定され、データ部３１２には変更後の実ＩＰアドレスＢ’Ｂ’Ｂ’が収容される。
【００７１】
この変更通知パケット３００ａは、ルータ５０８に受信される。ルータ５０８は、ヘッダ部３０２の宛先及び送信元ＩＰアドレスの組が、既存のＮＡＴエントリ６５０の外向きの送信元及び宛先ＩＰアドレスの組に一致するので、その応答パケット３００ａを内部ネットワークへと通す。このとき、ルータ５０８は、変更通知パケット３００ａのヘッダ部３０２の宛先ＩＰアドレスを、ＮＡＴエントリ６５０に従い“ＡＡＡ：ｐＡ”に変更し、変更後のパケット３００ｂをＳ６０７で内部ネットワークに送出する。
【００７２】
ここで、仮にサーバ５０４が、変更通知パケットを生成する際に、有効な実ＩＰアドレス（すなわち変更後の実ＩＰアドレス）をヘッダ部３０２の送信元ＩＰアドレスに設定したとする。この場合、その変更後の実ＩＰアドレスを含むＮＡＴエントリがないので、ルータ５０８はその変更通知パケットを内部ネットワークへと通さない。このため、サーバ５０４の実ＩＰアドレスの変更が端末５０２に伝わらない。
【００７３】
これに対し、この実施形態では、ヘッダ部３０２の送信元ＩＰアドレスに変更前の実ＩＰアドレスを設定しているので、変更通知パケット３００ａはルータ５０８内の既存のＮＡＴエントリ６５０に適合し、内部ネットワークを介して端末５０２へと伝達される。
【００７４】
変更通知パケット３００ｂを受け取った端末５０２のＩＰパケット処理部４０４は、このパケット３００ｂの宛先及び送信元の仮想ＩＰアドレス、及び認証キーが接続情報記憶部４０２に記憶されたものと一致することを確認する。そして、一致を確認した場合、そのパケット３００ｂのデータ部３１２内に含まれる変更後のＩＰアドレスの値により、端末５０２の接続情報記憶部４０２内の項目「宛先実ＩＰアドレス」の値を更新する。この更新により、端末５０２の内の情報は以下のようになる。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：Ｂ’Ｂ’Ｂ’
送信元実ＩＰアドレス：ＡＡＡ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＣＬＩＥＮＴ
【００７５】
この更新の後、端末５０２のアプリケーション４０８がサーバ５０４のアプリケーション４０８宛にデータを送信した場合、端末５０２のＩＰパケット処理部４０４は、接続情報記憶部４０２内の更新後の情報を用いてカプセル化を行う。したがって、ＩＰパケット処理部４０４はヘッダ部２０２の宛先ＩＰアドレスをサーバ５０４の変更後の実ＩＰアドレスＢ’Ｂ’Ｂ’としたデータパケット２００ｅを送出する（Ｓ６０８）。このデータパケット２００ｅは、ルータ５０８でのアドレス変換によりデータパケット２００ｆとなってネットワーク５０６経由でサーバ５０４に送信される（Ｓ６０９）。なお、このアドレス変換の際に、ルータ５０８は、宛先を“Ｂ’Ｂ’Ｂ’：ｐＢ”（内向き）と“Ｂ’Ｂ’Ｂ’：ｐＢ”（外向き）の間で変換（ただしこの変換では値は変化しない）し、送信元を“ＡＡＡ：ｐＡ”（内向き）と“ＣＣＣ：ｐＣ’”（外向き）との間で変換するという新規のＮＡＴエントリ６６０を生成して記憶（キャッシュ）する。ここでは、ルータ５０８は、サーバ５０４の変更後のＩＰアドレスを用いた通信のために、新たなポート番号ｐＣ’を割り当てているが、これは必須ではない。
【００７６】
図示は省略したが、データパケット２００ｆを受け取ったサーバ５０４がそれに対する応答のデータパケットを生成する場合、ヘッダ部２０２の送信元ＩＰアドレスには、接続情報記憶部４０２内の送信元実ＩＰアドレスの値Ｂ’Ｂ’Ｂ’を設定する。この応答パケットのヘッダ部２０２の宛先及び送信元のＩＰアドレスは、ＮＡＴエントリ６６０に合致するので、その応答パケットはルータ５０８を通って端末５０２まで届く。
【００７７】
以上のようにして、通信セッションの継続中にサーバ５０４の実ＩＰアドレスが変更されても、通信セッションが継続されることとなる。
【００７８】
次に図７及び図８を参照して、第２のケースを説明する。この第２のケースでは、図７に示すように、端末７０２はサーバ７０４と、インターネット等のネットワーク７０６経由で通信を行う。端末７０２には、プライベートな実ＩＰアドレスＡＡＡと、仮想ＩＰアドレスＸＸＸが割り当てられている。サーバ７０４には、実ＩＰアドレスＢＢＢおよび仮想ＩＰアドレスＹＹＹが割り当てられている。
【００７９】
端末７０２は、最初、ある内部ネットワークに接続されており、その内部ネットワークと外部のネットワーク７０６との境界には、ＮＡＴ機能を持つルータ７０８が設けられている。ルータ７０８には、ネットワーク７０６側のインターフェイスに実ＩＰアドレスＣＣＣが割り当てられている。ルータ７０８は、端末７０２からのパケットに対しＮＡＰＴ処理を行い、処理後のパケットをネットワーク７０６に送信する。
【００８０】
この第２のケースでは、端末７０２が、例えばモバイル端末であり、ＮＡＴ（ＮＡＰＴ）機能を持つ別のルータ７１０の配下の内部ネットワークへと移動した場合を想定する。
【００８１】
この移動により、端末７０２には、プライベートの実ＩＰアドレスＡ’Ａ’Ａ’が（例えば後者の内部ネットワーク内にあるＤＨＣＰ(Dynamic Host Configuration Protocol)サーバから）割り当てられる。ただし、端末７０２の仮想ＩＰアドレスは、移動しても変化せず、ＸＸＸのままである。
【００８２】
ルータ７１０には、ネットワーク７０６側のインターフェイスに実ＩＰアドレスＣ’Ｃ’Ｃ’が割り当てられており、端末７０２からのパケットに対しＮＡＰＴ処理を行い、処理結果のパケットをネットワーク７０６に送信する。
【００８３】
端末７０２とサーバ７０４のＩＰパケット処理部４０４が使用するポートはＩＰアドレス変更に依らず固定であり、それぞれｐＡおよびｐＢとする。また、端末７０２とサーバ７０４のアプリケーション４０８が使用するポートも、端末７０２又はサーバ７０４の実ＩＰアドレスの変更に依らず固定であるとする。
【００８４】
図８は、第２のケースにおける処理の流れを示したものである。この流れにおける最初のステップＳ８０１が実行される前に、端末７０２の接続情報記憶部４０２に記憶されている値の組は、第１のケースにおけるステップＳ６０１の実行前に端末５０２及びサーバ５０４に記憶されている値の組と同じである。
【００８５】
さて、図８におけるＳ８０１〜Ｓ８０４までのステップは、端末７０２がルータ７０８配下の第１の内部ネットワークに居るときに、端末７０２からサーバ７０４にデータパケットが発せられ、これに対する応答パケットがサーバ７０４から端末７０２に返される流れを示す。この流れは、図６におけるＳ６０１〜Ｓ６０４の流れと同じである。この中で、ルータ７０８は、ＮＡＴエントリ８５０を用いてアドレス変換を行っている。
【００８６】
さて、Ｓ８０４の後、端末７０２がルータ７０８の配下からルータ７１０の配下に移動し、この移動に伴い端末７０２の実ＩＰアドレスがＡ’Ａ’Ａ’に変更されたとする（Ｓ８０５）。この場合、端末７０２のＩＰアドレス変更検出部４０６がそのＩＰアドレスの変更を検出し、端末７０２の接続情報記憶部４０２の送信元実ＩＰアドレスおよび前の送信元実ＩＰアドレスの値を更新する。この更新により、サーバ７０２の接続情報記憶部４０２内の情報は以下のようになる。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：ＢＢＢ
送信元実ＩＰアドレス：Ａ’Ａ’Ａ’
前の送信元実ＩＰアドレス：ＡＡＡ
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＣＬＩＥＮＴ
【００８７】
この変更を受けて、端末７０２のＩＰパケット処理部４０４は、変更通知パケット３００ｃを生成する（Ｓ８０６）。ここで、ＩＰパケット処理部４０４は、接続情報記憶部４０２内のノード種別がＣＬＩＥＮＴであるので、この変更通知パケット３００ｃのヘッダ部３０２の送信元ＩＰアドレスには変更後の実ＩＰアドレスＡ’Ａ’Ａ’を設定し、データ部３１２には空とする。
【００８８】
この変更通知パケット３００ｃは、ルータ７１０によりＮＡＰＴ処理され、その処理結果の変更通知パケット３００ｄがサーバ７０４へと送られる（Ｓ８０７）。このとき、ルータ７１０は、変更通知パケット３００ｃのヘッダ部３０２の宛先及び送信元のＩＰアドレスと、自分の外向けの実ＩＰアドレスとから、ＮＡＴエントリ８６０を生成し、記憶する。
【００８９】
変更通知パケット３００ｄを受け取ったサーバ７０４のＩＰパケット処理部４０４は、そのパケット３００ｄの宛先及び送信元の仮想ＩＰアドレス、及び認証キーがサーバ７０４の接続情報記憶部４０２内のものと一致することを確認する。そして、一致が確認されれば、そのパケット３００ｄのヘッダ部３０２の送信元ＩＰアドレスにより、接続情報記憶部４０２内の値を次のように更新する。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：Ｃ’Ｃ’Ｃ’
送信元実ＩＰアドレス：ＢＢＢ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＳＥＲＶＥＲ
【００９０】
この更新の後、サーバ７０４のアプリケーション４０８が端末７０２のアプリケーション４０８宛にデータを送信した場合、サーバ７０４のＩＰパケット処理部４０４は、接続情報記憶部４０２内の更新後の情報を用いてカプセル化を行う。したがって、ＩＰパケット処理部４０４はヘッダ部２０２の宛先ＩＰアドレスを、ルータ７１０の実ＩＰアドレスＣ’Ｃ’Ｃ’としたデータパケット２００ｇを送出する（Ｓ８０８）。このデータパケット２００ｇは、ルータ７１０により受信される。ルータ７１０は、パケット２００ｇのヘッダ部２０２の宛先及び送信元ＩＰアドレスの組が、ＮＡＴエントリ８６０の外向きの送信元及び宛先ＩＰアドレスの組に一致するので、そのパケット２００ｇを内部ネットワークへと通す。ここで、ルータ７１０は、ＮＡＴエントリ８６０に従い、パケット２００ｇの宛先ＩＰアドレスを“Ａ’Ａ’Ａ’：ｐＡ”に変更し、その変更結果のパケット２００ｈを内部ネットワーク経由で端末７０２へ送信する（Ｓ８０９）。
【００９１】
以上のように、この実施形態では、通信セッションの継続中に端末７０２がルータ７０８配下の内部ネットワークからルータ７１０配下の内部ネットワークへ移動し、端末７０２の実ＩＰアドレスが変更されても、通信セッションが継続される。
【００９２】
端末がネットワークから別のネットワークに移動しても通信を継続させるための技術としてＭｏｂｉｌｅ  ＩＰｖ４  （ＲＦＣ  ３３４４），Ｍｏｂｉｌｅ  ＩＰｖ６  （ＲＦＣ  ３７７５）が知られている。これらはいずれもホームエージェントと呼ばれる、いわば留守番として機能する仲介サーバをネットワーク上に設けておく必要がある。これに対し、この実施形態の方式では、そのような仲介サーバが必要ない。
【００９３】
次に図９及び図１０を参照して、第３のケースを説明する。この第３のケースでは、図９に示すように、端末９０２はサーバ９０４と、インターネット等のネットワーク９０６経由で通信を行う。端末９０２には、プライベートな実ＩＰアドレスＡＡＡと、仮想ＩＰアドレスＸＸＸが割り当てられている。サーバ９０４には、実ＩＰアドレスＢＢＢおよび仮想ＩＰアドレスＹＹＹが割り当てられている。
【００９４】
端末９０２は、ある内部ネットワークに接続されており、その内部ネットワークと外部のネットワーク９０６との境界には、ＮＡＴ機能を持つルータ９０８が設けられている。ルータ９０８には、ネットワーク９０６側のインターフェイスに実ＩＰアドレスＣＣＣが割り当てられている。ルータ９０８は、端末９０２からのパケットに対しＮＡＰＴ処理を行い、処理後のパケットをインターネット９０６に送信する。ルータ９０８から送信されるパケットの送信元ＩＰアドレスは、ルータ９０８の実ＩＰアドレスＣＣＣに、送信元ポート番号はｐＣに変換される。
【００９５】
この第３のケースでは、端末９０２とサーバ９０４との通信中にルータ９０８の実ＩＰアドレスがＣＣＣからＣ’Ｃ’Ｃ’に変更される場合を想定する。
【００９６】
端末９０２とサーバ９０４のＩＰパケット処理部４０４が使用するポートはＩＰアドレス変更に依らず固定であり、それぞれｐＡおよびｐＢとする。また、端末９０２とサーバ９０４のアプリケーション４０８が使用するポートも、端末９０２又はサーバ９０４の実ＩＰアドレスの変更に依らず固定であるとする。
【００９７】
図１０は、第３のケースにおける処理の流れを示したものである。この流れにおける最初のステップＳ１００１が実行される前に、端末９０２及びサーバ９０４の接続情報記憶部４０２に記憶されている値の組は、第１のケースにおけるステップＳ６０１の実行前に端末５０２及びサーバ５０４に記憶されている値の組と同じである。
【００９８】
さて、図１０におけるＳ１００１〜Ｓ１００４までのステップは、端末９０２からサーバ９０４にデータパケットが発せられ、これに対する応答パケットがサーバ９０４から端末９０２に返される流れを示す。この流れは、図６におけるＳ６０１〜Ｓ６０４の流れと同じである。この中で、ルータ９０８は、ＮＡＴエントリ１０５０を用いてアドレス変換を行っている。
【００９９】
さて、Ｓ１００４の後、ルータ９０８の実ＩＰアドレスがＣＣＣよりＣ’Ｃ’Ｃ’に変更されたとする（Ｓ１００５）。
【０１００】
この変更の前に、端末９０２からサーバ９０４へとデータパケットが送られており、そのデータパケットに対するサーバ９０４からの応答パケットが発せられる前にルータ９０８の実ＩＰアドレスが上述のように変更されたとする。この場合、端末９０２のＩＰパケット処理部４０４は、端末９０２内のアプリケーション４０８でそのデータパケットに対する応答待ちのタイムアウトが生じる前に、端末９０２のＩＰパケット処理部４０４にて応答待ちのタイムアウトが生じる（Ｓ１００６）。すると、ＩＰパケット処理部４０４は、そのタイムアウトを契機として、変更通知パケット３００ｅを生成し、送信する（Ｓ１００７）。この時点では、端末９０２自身の実ＩＰアドレスは変更されていないので、生成される変更通知パケット３００ｅは、ヘッダ部３０２の送信元ＩＰアドレスとして当該端末９０２の実ＩＰアドレスを持ち、データ部３１２が空のパケットである。
【０１０１】
この変更通知パケット３００ｅを受け取ったルータ９０８は、パケットの送信元ＩＰアドレスを自分の変更後のＩＰアドレスへと変換するＮＡＴエントリ１０６０を生成し、このＮＡＴエントリ１０６０に従い、アドレス変換を行う。このアドレス変換後の変更通知パケット３００ｆがネットワーク９０６を介してサーバ９０４に送られる（Ｓ１００８）。
【０１０２】
変更通知パケット３００ｆを受け取ったサーバ９０４のＩＰパケット処理部４０４は、そのパケット３００ｆの宛先及び送信元の仮想ＩＰアドレス、及び認証キーがサーバ９０４の接続情報記憶部４０２内のものと一致することを確認する。そして、一致が確認されれば、そのパケット３００ｆのヘッダ部３０２の送信元ＩＰアドレスにより、接続情報記憶部４０２内の値を次のように更新する。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：Ｃ’Ｃ’Ｃ’
送信元実ＩＰアドレス：ＢＢＢ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＳＥＲＶＥＲ
【０１０３】
この更新の後、サーバ９０４は、その接続情報記憶部４０２内の値を用いてデータパケット２００ｉを生成し、ルータ９０８経由で端末９０２へ送信する（Ｓ１００９，Ｓ１０１０）。
【０１０４】
以上のように、この実施形態では、通信セッションの継続中にルータ９０８のＩＰアドレスが変更されても、通信セッションが継続される。
【０１０５】
次に図１１及び図１２を参照して、第４のケースを説明する。この第４のケースでは、図１に示すように、端末１１０２はサーバ１１０４と、インターネット等のネットワーク１１０６経由で通信を行う。端末１１０２には、プライベートな実ＩＰアドレスＡＡＡと、仮想ＩＰアドレスＸＸＸが割り当てられている。サーバ１１０４には、実ＩＰアドレスＢＢＢおよび仮想ＩＰアドレスＹＹＹが割り当てられている。
【０１０６】
端末１１０２は、ある内部ネットワークに接続されており、その内部ネットワークと外部のネットワーク１１０６との境界には、ファイアウォール１１０８が設けられている。ファイアウォール１１０８には、外部のネットワーク１１０６側からのセッションを開始するパケットは全て遮断する設定がされているとする。
【０１０７】
この第４のケースでは、端末１１０２がサーバ１１０４と通信セッションを行っている間に、サーバ１１０４の実ＩＰアドレスがＢＢＢからＢ’Ｂ’Ｂ’に変更されることを想定する。
【０１０８】
図１２は、第４のケースにおける処理の流れを示したものである。この流れにおける最初のステップＳ１２０１が実行される前に、端末１１０２及びサーバ１１０４の接続情報記憶部４０２に記憶されている値の組は、第１のケースにおけるステップＳ６０１の実行前に端末５０２及びサーバ５０４に記憶されている値の組と同じである。
【０１０９】
さて、図１２におけるＳ１００１〜Ｓ１００４までのステップは、端末１１０２からサーバ１１０４にデータパケットが発せられ、これに対する応答パケットがサーバ１１０４から端末１１０２に返される流れを示す。この流れは、ファイアウォール１１０８がＮＡＰＴ処理を行わない点を除けば、図６におけるＳ６０１〜Ｓ６０４の流れと同じである。
【０１１０】
この中で、ファイアウォール１１０８は、例えばＳ１２０１で端末１１０２からサーバ１１０４宛のデータパケット２００ｊを受け取った際に、ファイアウォール制御用の通信エントリ１２５０を生成してキャッシュする。この通信エントリ１２５０は、パケット２００ｊのヘッダ部２０２に基づき生成され、宛先が“ＢＢＢ：ｐＢ”で送信元が“ＡＡＡ：ｐＡ”となっている。サーバ１１０４からの応答パケット２００ｋ（Ｓ１２０３）の宛先ＩＰアドレス“ＡＡＡ：ｐＡ”及び送信元ＩＰアドレス“ＢＢＢ：ｐＢ”は、ファイアウォール１１０８が持つ通信エントリ１２５０に適合するので、ファイアウォール１１０８を通って端末１１０２まで転送される。
【０１１１】
さて、Ｓ１２０４の後、サーバ１１０４の実ＩＰアドレスがＢＢＢよりＢ’Ｂ’Ｂ’に変更されたとする（Ｓ１２０５）。
【０１１２】
すると、サーバ１１０４のＩＰアドレス変更検出部４０６がＩＰアドレスの変更を検出し、サーバ１１０４の接続情報記憶部４０２の送信元実ＩＰアドレスおよび前の送信元実ＩＰアドレスの値を更新する。この更新により、サーバ１１０４の接続情報記憶部４０２内の情報は以下のようになる。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：ＣＣＣ
送信元実ＩＰアドレス：Ｂ’Ｂ’Ｂ’
前の送信元実ＩＰアドレス：ＢＢＢ
宛先仮想ＩＰアドレス：ＸＸＸ
送信元仮想ＩＰアドレス：ＹＹＹ
ノード種別：ＳＥＲＶＥＲ
【０１１３】
また、サーバ１１０４のＩＰパケット処理部４０４は、変更通知パケット３００ｇを生成し、ネットワーク１１０６へと送信する（Ｓ１２０６）。この変更通知パケット３００ｇのヘッダ部３０２の送信元ＩＰアドレスには変更前の実ＩＰアドレスＢＢＢが設定され、宛先ＩＰアドレスには端末１１０２の実ＩＰアドレスＡＡＡが設定され、データ部３１２には変更後の実ＩＰアドレスＢ’Ｂ’Ｂ’が収容されている。
【０１１４】
変更通知パケット３００ｇを受け取ったファイアウォール１１０８は、そのパケット３００ｇの送信元ＩＰアドレス及び宛先ＩＰアドレスが、既存の通信エントリ１２５０の宛先及び送信元の組に合致することを検知し、そのパケット３００ａを内部ネットワークへと通す（Ｓ１２０７）。これにより、端末１１０２は変更通知パケット３００ｇを受信する。
【０１１５】
変更通知パケット３００ｇを受け取った端末１１０２のＩＰパケット処理部４０４は、このパケット３００ｇの宛先及び送信元の仮想ＩＰアドレス、及び認証キーが接続情報記憶部４０２に記憶されたものと一致することを確認する。そして、一致を確認した場合、そのパケット３００ｇのデータ部３１２内に含まれる変更後のＩＰアドレスの値により、端末１１０２の接続情報記憶部４０２内の項目「宛先実ＩＰアドレス」の値を更新する。この更新により、端末１１０２の内の情報は以下のようになる。
認証キー：ＳＫＥＹ
宛先実ＩＰアドレス：Ｂ’Ｂ’Ｂ’
送信元実ＩＰアドレス：ＡＡＡ
前の送信元実ＩＰアドレス：設定なし
宛先仮想ＩＰアドレス：ＹＹＹ
送信元仮想ＩＰアドレス：ＸＸＸ
ノード種別：ＣＬＩＥＮＴ
【０１１６】
この更新の後、端末１１０２のアプリケーション４０８がサーバ１１０４のアプリケーション４０８宛にデータを送信した場合、端末１１０２のＩＰパケット処理部４０４は、接続情報記憶部４０２内の更新後の情報を用いてカプセル化を行う。したがって、ＩＰパケット処理部４０４はヘッダ部２０２の宛先ＩＰアドレスをサーバ１１０４の変更後の実ＩＰアドレスＢ’Ｂ’Ｂ’としたデータパケット２００ｌを送出する（Ｓ１２０８）。ファイアウォール１１０８は、このデータパケット２００ｌを通過させる際に、宛先を“Ｂ’Ｂ’Ｂ’：ｐＢ”とし送信元を“ＡＡＡ：ｐＡ”とした新規の通信エントリ１２６０を生成してキャッシュする。ファイアウォール１１０８からネットワーク１２０６へと送出されたデータパケット２００ｌは、サーバ１１０４に受信される。
【０１１７】
図示は省略したが、データパケット２００ｌを受け取ったサーバ１１０４がそれに対する応答のデータパケットを生成する場合、ヘッダ部２０２の送信元ＩＰアドレスには、接続情報記憶部４０２内の送信元実ＩＰアドレスの値Ｂ’Ｂ’Ｂ’を設定する。この応答パケットのヘッダ部２０２の宛先及び送信元のＩＰアドレスは、通信エントリ１２６０に合致するので、その応答パケットはファイアウォール１１０８を通って端末１１０２まで届く。
【０１１８】
以上のようにして、通信セッションの継続中にサーバ１１０４の実ＩＰアドレスが変更されても、通信セッションが継続されることとなる。
【０１１９】
以上に説明した各例の端末１０２，５０２，７０２，９０２，１１０２及びサーバ１０４，５０４，７０４，９０４，１１０４は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図１３に示すように、ＣＰＵ１３００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）１３０２およびリードオンリメモリ（ＲＯＭ）１３０４等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）１３０６を制御するＨＤＤコントローラ１３０８、各種Ｉ／Ｏ（入出力）インターフェイス１３１０、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース１３１２等が、たとえばバス１３１４を介して接続された回路構成を有する。また、そのバス１３１４に対し、例えばＩ／Ｏインターフェイス１３１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ１３１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ１３１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ１３０２に読み出されＣＰＵ１３００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【０１２０】
【図１】実施形態の仕組みが適用されるネットワークの例を示す図である。
【図２】実施形態のシステムにおいて、端末・サーバ間でやりとりされるカプセル化されたデータパケットのデータ構造の一例を示す図である。
【図３】実施形態のシステムにおいて、端末・サーバ間でやりとりされる変更通知パケットのデータ構造の一例を示す図である。
【図４】通信ノード（端末又はサーバ）の機能的構造の一例を示す図である。
【図５】第１のケースを説明するための図である。
【図６】第１のケースにおけるパケットのやりとりの流れを説明するための図である。
【図７】第２のケースを説明するための図である。
【図８】第２のケースにおけるパケットのやりとりの流れを説明するための図である。
【図９】第３のケースを説明するための図である。
【図１０】第３のケースにおけるパケットのやりとりの流れを説明するための図である。
【図１１】第４のケースを説明するための図である。
【図１２】第４のケースにおけるパケットのやりとりの流れを説明するための図である。
【図１３】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【０１２１】
１０２，５０２，７０２，９０２，１１０２  端末、１０４，５０４，７０４，９０４，１１０４  サーバ、１０６，５０６，７０６，９０６，１１０６  ネットワーク、５０８，７０８，７１０，９０８  ルータ、１１０８  ファイアウォール。
【図１】
2010074353.tif 000003
【図２】
2010074353.tif 000004
【図３】
2010074353.tif 000005
【図４】
2010074353.tif 000006
【図５】
2010074353.tif 000007
【図６】
2010074353.tif 000008
【図７】
2010074353.tif 000009
【図８】
2010074353.tif 000010
【図９】
2010074353.tif 000011
【図１０】
2010074353.tif 000012
【図１１】
2010074353.tif 000013
【図１２】
2010074353.tif 000014
【図１３】
2010074353.tif 000015