(57)【要約】【課題】ハンドオーバ前に使用していたトンネルを経由して移動端末から送信された全てのパケットを受信し終える時点を検知し、このトンネルの設定を速やかに削除する。【解決手段】第１のネットワークから第２のネットワークへのハンドオーバを行う際に、ホームエージェント２００が前記第２のネットワーク経由のパケット送受信のためのトンネルの新規設定後に端末１００へ第１のネットワークを介して応答要求メッセージを送信し、前記第１のネットワークを介して前記応答要求メッセージに対応する応答メッセージを受信したら、前記第１のネットワーク経由のパケット送受信のためのトンネルの設定が削除可能になったことを検知し、このトンネルの設定を削除する。【選択図】図３
2010050900.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した第１の応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のネットワークを介して送信される応答要求メッセージを作成して前記ネットワークインタフェースへ与え、前記ネットワークインタフェースから前記応答要求メッセージに対応する第２の応答メッセージを取得し、前記第２の応答メッセージの取得に伴い前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、
を備えるホームエージェント。
【請求項２】
前記モビリティプロトコルモジュールは、前記応答要求メッセージとしてＩＣＭＰ Ｅｃｈｏ Ｒｅｑｕｅｓｔメッセージを作成することを特徴とする請求項１に記載のホームエージェント。
【請求項３】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースからパケット情報が記されたメッセージを取得し、前記ネットワークインタフェースによる前記パケット情報に適合するパケットの受信に伴い前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、
を備えるホームエージェント。
【請求項４】
前記ネットワークインタフェースは前記パケット情報が記された前記メッセージを前記第２のネットワークを介して受信することを特徴とする請求項３に記載のホームエージェント。
【請求項５】
前記ネットワークインタフェースにより受信されるパケットが前記パケット情報に適合するか否か監視し、受信パケットが前記パケット情報に適合する場合に前記モビリティプロトコルモジュールへ通知するパケット監視モジュールをさらに備え、
前記モビリティプロトコルモジュールは前記通知に基づいて前記第１のネットワークの使用を停止させることを特徴とする請求項３又は４に記載のホームエージェント。
【請求項６】
前記パケット情報は、前記ネットワークインタフェースが前記第１のネットワークを介して受信する最後のパケットのＩＰヘッダ中のチェックサムフィールドの値であることを特徴とする請求項３乃至５のいずれかに記載のホームエージェント。
【請求項７】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのシーケンス番号の記されたパケットの受信を行うネットワークインタフェースと、
前記ネットワークインタフェースが受信したパケットに記された前記シーケンス番号と最終シーケンス番号とを比較し、比較結果が一致した場合に通知を行うパケット監視モジュールと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースが前記第２のネットワークを介して最初に受信したパケットに記されたシーケンス番号から１を減じた値を前記最終シーケンス番号として前記パケット監視モジュールに与え、前記パケット監視モジュールからの前記通知に基づいて前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、
を備えるホームエージェント。
【請求項８】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、
前記移動端末は、
前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行う第１のインタフェースと、
前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行う第２のインタフェースと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、
前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する第１の応答メッセージを取得し、前記第１の応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のインタフェースから応答要求メッセージを取得し、前記応答要求メッセージの取得に伴い第２の応答メッセージを作成して前記第１のインタフェースに与える第１のモビリティプロトコルモジュールと、
を有し、
前記ホームエージェントは、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、
前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第１の応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のネットワークを介して送信される前記応答要求メッセージを作成して前記ネットワークインタフェースへ与え、前記ネットワークインタフェースから前記第２の応答メッセージを取得し、前記第２の応答メッセージの取得に伴い前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、
を有することを特徴とする通信システム。
【請求項９】
前記第２のモビリティプロトコルモジュールは、前記応答要求メッセージとしてＩＣＭＰ Ｅｃｈｏ Ｒｅｑｕｅｓｔメッセージを作成し、
前記第１のモビリティプロトコルモジュールは、前記第２の応答メッセージとしてＩＣＭＰ  Ｅｃｈｏ  Ｒｅｐｌｙメッセージを作成することを特徴とする請求項８に記載の通信システム。
【請求項１０】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、
前記移動端末は、
前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行う第１のインタフェースと、
前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行う第２のインタフェースと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、
前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する応答メッセージを取得し、前記応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させ、パケット情報を記した通知メッセージを作成して前記第１のインタフェースへ与える第１のモビリティプロトコルモジュールと、
を有し、
前記ホームエージェントは、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、
前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースから前記通知メッセージを取得し、前記ネットワークインタフェースによる前記パケット情報に適合するパケットの受信に伴い前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、
を有することを特徴とする通信システム。
【請求項１１】
前記ホームエージェントは、前記ネットワークインタフェースにより受信されるパケットが前記パケット情報に適合するか否か監視し、受信パケットが前記パケット情報に適合する場合に前記第２のモビリティプロトコルモジュールへ通知するパケット監視モジュールをさらに有し、
前記第２のモビリティプロトコルモジュールは前記通知に基づいて前記第１のネットワークの使用を停止させることを特徴とする請求項１０に記載の通信システム。
【請求項１２】
前記第１のモビリティプロトコルモジュールは、前記第１のインタフェースが送信する最後のパケットのＩＰヘッダ中のチェックサムフィールドの値を前記パケット情報として記した前記通知メッセージを作成することを特徴とする請求項１０又は１１に記載の通信システム。
【請求項１３】
第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、
前記移動端末は、
前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行い、前記ホームエージェントへ送信順にシーケンス番号が記されたパケットを送信する第１のインタフェースと、
前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行い、前記ホームエージェントへ送信順にシーケンス番号が記されたパケットを送信する第２のインタフェースと、
前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、
前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する応答メッセージを取得し、前記応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させる第１のモビリティプロトコルモジュールと、
を有し、
前記ホームエージェントは、
前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、
前記ネットワークインタフェースが受信したパケットに記された前記シーケンス番号と最終シーケンス番号とを比較し、比較結果が一致した場合に通知を行うパケット監視モジュールと、
前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースが前記第２のネットワークを介して最初に受信したパケットに記されたシーケンス番号から１を減じた値を前記最終シーケンス番号として前記パケット監視モジュールに与え、前記パケット監視モジュールからの前記通知に基づいて前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、
を有することを特徴とする通信システム。
【請求項１４】
第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、
前記移動端末及び前記ホームエージェントが前記第１のネットワークを使用してパケット送受信を行い、
前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、
前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて第１の応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記第１の応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、前記第１のネットワークを使用して前記移動端末へ応答要求メッセージを送信し、
前記移動端末が、前記第１の応答メッセージに基づいて前記第２のネットワークを使用したパケット送受信を開始し、前記応答要求メッセージに基づいて第２の応答メッセージを作成し、前記第１のネットワークを使用して前記ホームエージェントへ前記第２の応答メッセージを送信し、
前記ホームエージェントが、前記第２の応答メッセージの受信に伴い、前記第１のネットワークの使用を停止することを特徴とする通信方法。
【請求項１５】
第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、
前記移動端末及び前記ホームエージェントが前記第１のネットワークを使用してパケット送受信を行い、
前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、
前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、
前記移動端末が、前記応答メッセージに基づいて前記第２のネットワークを使用したパケット送受信を開始し、前記第１のネットワークを使用して前記ホームエージェントへ送信した最後のパケットのパケット情報が記された通知メッセージを前記第２のネットワークを使用して前記ホームエージェントへ送信し、
前記ホームエージェントが、前記通知メッセージを受信し、前記第１のネットワークを介した前記パケット情報に適合するパケットの受信に伴い、前記第１のネットワークの使用を停止することを特徴とする通信方法。
【請求項１６】
第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、
前記移動端末が、送信順に連続するシーケンス番号をパケットに付加して、前記パケットを前記第１のネットワークを使用して前記ホームエージェントへ送信し、
前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、
前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、
前記移動端末が、前記応答メッセージの受信に伴い、前記第２のネットワークを使用した前記パケットの送信を開始し、
前記ホームエージェントが、前記第２のネットワークを介して最初に受信したパケットに付加されたシーケンス番号から１を減じた番号と、前記第１のネットワークを介して受信したパケットに付加されたシーケンス番号とを比較し、比較結果の一致に伴い、前記第１のネットワークの使用を停止することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホームエージェント、通信システム、及び通信方法に関するものである。
【背景技術】
【０００２】
移動端末が、PHS、GPRS、CDMA、HSDPAなどのセルラー系アクセスネットワークや、802.11、802.16などのアクセスネットワークなどの、複数の異なるネットワークを必要に応じて切替えて使用するハンドオーバ技術が知られている（例えば特許文献１参照）。このハンドオーバ技術は一般にバーティカルハンドオーバ(vertical handover)と呼ばれている。
【０００３】
バーティカルハンドオーバは、Mobile IPv4、Mobile IPv6、MOBIKE(IKEv2 Mobility and Multihoming) Protocolなどのプロトコルを利用して実現される。また、端末がこれらのプロトコルを用いて、使用するネットワークを切替える際のパケットロスを低減するための技術として、ソフトハンドオーバと呼ばれる技術がある。
【０００４】
バーティカルハンドオーバ時におけるソフトハンドオーバ処理では、端末は切替え後のネットワークに接続した後も、しばらくは切替え前のネットワークとの接続を維持する。これにより端末は、ネットワークの切替え処理中に切替え前のネットワークを通過中であったパケット全てを確実に受信できる。
【０００５】
また、ソフトハンドオーバ処理では、端末にモビリティを提供する中継機器（ホームエージェント）も、ネットワークを切り替えた後しばらくは切り替え元のネットワークとの接続を維持する。これにより、ネットワークの切替え処理中に切替え前のネットワークを通過中であったパケット全てを、中継機器が受信し、転送可能となる。
【０００６】
従来のMobile IPv4を用いたバーティカルハンドオーバ時のソフトハンドオーバ方法を説明する。なお、以降では特に断らない限り、バーティカルハンドオーバ時のソフトハンドオーバを単にハンドオーバと称する。ここでは一例として移動端末が、使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替える場合について説明する。
【０００７】
ハンドオーバ前は、移動端末とホームエージェントとの間にセルラーネットワークを経由したトンネルが確立されている。ホームエージェントは、移動端末のセルラーネットワーク用インタフェースから送信されたパケットを受信し、通信相手機器へ転送する。
【０００８】
移動端末は、例えば無線ＬＡＮ基地局から送信される電波の受信強度が十分強くなった場合などに、使用するネットワークを無線ＬＡＮに切り替えることを決定する。そして、移動端末の無線ＬＡＮ用インタフェースからホームエージェントへRegistration Requestメッセージが送信される。
【０００９】
ホームエージェントはRegistration Requestメッセージを受信することで、移動端末がネットワークの切り替えを要求していることを検知する。そして、ホームエージェントは移動端末の無線ＬＡＮ用インタフェースへネットワークの切替えを許可する旨が記されたRegistration Replyメッセージを送信する。
【００１０】
ホームエージェントはRegistration Requestメッセージの受信、又はRegistration Replyメッセージの送信に伴い、移動端末の無線ＬＡＮ用インタフェースから送信されたパケットを受信できるようにトンネルを新規に設定する。
【００１１】
また、移動端末はRegistration Replyメッセージの受信に伴い、無線ＬＡＮ用インタフェースからホームエージェントへパケットを送信できるように、新規にトンネルを設定する。これにより移動端末は、セルラーネットワーク用インタフェースだけでなく、無線ＬＡＮ用インタフェースでも、ホームエージェントへパケットを送信できるようになる。
【００１２】
一般にパケット通信では、セルラーネットワークを経由した場合の通信遅延は、無線ＬＡＮを経由した場合の通信遅延よりも大きい。そのため、ホームエージェントは、無線ＬＡＮ経由で最初にパケットを受信した時点では、移動端末のセルラーネットワーク用インタフェースから送信されたパケットを受信し終えていない。
【００１３】
ホームエージェントは、無線ＬＡＮを経由したトンネルを新規に設定した後も、セルラーネットワークを経由したトンネルの設定を保持しておき、十分な時間が経過した後に削除する。これにより、ホームエージェントは、移動端末のセルラーネットワーク用インタフェースから送信されたパケットを、ハンドオーバ時のパケットロスを起こさず、全て受信することができる。
【００１４】
しかし、上記のような従来のハンドオーバ方法では、ホームエージェントが、移動端末のセルラーネットワーク（ハンドオーバ前のネットワーク）用インタフェースから送信された全てのパケットを受信し終える時点を検知できないため、全てのパケットを受信した後もしばらくはトンネルの設定が削除されず、メモリリソースが無駄に使用されていた。  ホームエージェントは多くの端末との間にトンネルを確立するため、無駄なメモリリソースを早期に開放し、メモリリソースを効率的に使用することが求められる。
【特許文献１】特開２００５−２４４５９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明はハンドオーバ前に使用していたトンネルを経由して端末から送信された全てのパケットを受信し終える時点を検知し、このトンネルの設定を速やかに削除できるホームエージェント、通信システム、及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の一態様によるホームエージェントは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した第１の応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のネットワークを介して送信される応答要求メッセージを作成して前記ネットワークインタフェースへ与え、前記ネットワークインタフェースから前記応答要求メッセージに対応する第２の応答メッセージを取得し、前記第２の応答メッセージの取得に伴い前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、を備えるものである。
【００１７】
本発明の一態様によるホームエージェントは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースからパケット情報が記されたメッセージを取得し、前記ネットワークインタフェースによる前記パケット情報に適合するパケットの受信に伴い前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、を備えるものである。
【００１８】
本発明の一態様によるホームエージェントは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末とデータの送受信を行うホームエージェントであって、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのシーケンス番号の記されたパケットの受信を行うネットワークインタフェースと、前記ネットワークインタフェースが受信したパケットに記された前記シーケンス番号と最終シーケンス番号とを比較し、比較結果が一致した場合に通知を行うパケット監視モジュールと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを要求するハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記切り替えを受け入れることを記した応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースが前記第２のネットワークを介して最初に受信したパケットに記されたシーケンス番号から１を減じた値を前記最終シーケンス番号として前記パケット監視モジュールに与え、前記パケット監視モジュールからの前記通知に基づいて前記第１のネットワークの使用を停止させるモビリティプロトコルモジュールと、を備えるものである。
【００１９】
本発明の一態様による通信システムは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、前記移動端末は、前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行う第１のインタフェースと、前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行う第２のインタフェースと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する第１の応答メッセージを取得し、前記第１の応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のインタフェースから応答要求メッセージを取得し、前記応答要求メッセージの取得に伴い第２の応答メッセージを作成して前記第１のインタフェースに与える第１のモビリティプロトコルモジュールと、を有し、前記ホームエージェントは、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第１の応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記第１のネットワークを介して送信される前記応答要求メッセージを作成して前記ネットワークインタフェースへ与え、前記ネットワークインタフェースから前記第２の応答メッセージを取得し、前記第２の応答メッセージの取得に伴い前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、を有することを特徴とするものである。
【００２０】
本発明の一態様による通信システムは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、前記移動端末は、前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行う第１のインタフェースと、前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行う第２のインタフェースと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する応答メッセージを取得し、前記応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させ、パケット情報を記した通知メッセージを作成して前記第１のインタフェースへ与える第１のモビリティプロトコルモジュールと、を有し、前記ホームエージェントは、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースから前記通知メッセージを取得し、前記ネットワークインタフェースによる前記パケット情報に適合するパケットの受信に伴い前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、を有することを特徴とするものである。
【００２１】
本発明の一態様による通信システムは、第１のネットワークと第２のネットワークとの間でハンドオーバを行う移動端末及び前記移動端末とのデータ送受信を行うホームエージェントを備える通信システムであって、前記移動端末は、前記第１のネットワークを介して前記ホームエージェントとデータの送受信を行い、前記ホームエージェントへ送信順にシーケンス番号が記されたパケットを送信する第１のインタフェースと、前記第２のネットワークを介して前記ホームエージェントとデータの送受信を行い、前記ホームエージェントへ送信順にシーケンス番号が記されたパケットを送信する第２のインタフェースと、前記第１のネットワークから前記第２のネットワークへの使用ネットワークの切り替えを決定するハンドオーバトリガモジュールと、前記決定に基づいて前記第２のネットワークを介して送信されるハンドオーバ要求メッセージを作成して前記第２のインタフェースへ与え、前記第２のインタフェースから前記ハンドオーバ要求メッセージに対応する応答メッセージを取得し、前記応答メッセージの取得に伴い前記第２のネットワークを使用したパケット送受信を開始させる第１のモビリティプロトコルモジュールと、を有し、前記ホームエージェントは、前記第１のネットワーク又は前記第２のネットワークを介して、前記移動端末へのデータ送信及び前記移動端末からのデータ受信を行うネットワークインタフェースと、前記ネットワークインタフェースが受信したパケットに記された前記シーケンス番号と最終シーケンス番号とを比較し、比較結果が一致した場合に通知を行うパケット監視モジュールと、前記ハンドオーバ要求メッセージを前記ネットワークインタフェースから取得し、前記ハンドオーバ要求メッセージの取得に伴い、前記第２のネットワークを介して送信される前記応答メッセージを作成して前記ネットワークインタフェースへ与え、前記第２のネットワークを使用したパケット送受信を開始させ、前記ネットワークインタフェースが前記第２のネットワークを介して最初に受信したパケットに記されたシーケンス番号から１を減じた値を前記最終シーケンス番号として前記パケット監視モジュールに与え、前記パケット監視モジュールからの前記通知に基づいて前記第１のネットワークの使用を停止させる第２のモビリティプロトコルモジュールと、を有することを特徴とするものである。
【００２２】
本発明の一態様による通信方法は、第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、前記移動端末及び前記ホームエージェントが前記第１のネットワークを使用してパケット送受信を行い、前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて第１の応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記第１の応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、前記第１のネットワークを使用して前記移動端末へ応答要求メッセージを送信し、前記移動端末が、前記第１の応答メッセージに基づいて前記第２のネットワークを使用したパケット送受信を開始し、前記応答要求メッセージに基づいて第２の応答メッセージを作成し、前記第１のネットワークを使用して前記ホームエージェントへ前記第２の応答メッセージを送信し、前記ホームエージェントが、前記第２の応答メッセージの受信に伴い、前記第１のネットワークの使用を停止することを特徴とするものである。
【００２３】
本発明の一態様による通信方法は、第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、前記移動端末及び前記ホームエージェントが前記第１のネットワークを使用してパケット送受信を行い、前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、前記移動端末が、前記応答メッセージに基づいて前記第２のネットワークを使用したパケット送受信を開始し、前記第１のネットワークを使用して前記ホームエージェントへ送信した最後のパケットのパケット情報が記された通知メッセージを前記第２のネットワークを使用して前記ホームエージェントへ送信し、前記ホームエージェントが、前記通知メッセージを受信し、前記第１のネットワークを介した前記パケット情報に適合するパケットの受信に伴い、前記第１のネットワークの使用を停止することを特徴とするものである。
【００２４】
本発明の一態様による通信方法は、第１のネットワーク及び／又は第２のネットワークを使用して移動端末とホームエージェントハンドとの間でパケット送受信を行う通信方法であって、前記移動端末が、送信順に連続するシーケンス番号をパケットに付加して、前記パケットを前記第１のネットワークを使用して前記ホームエージェントへ送信し、前記移動端末が、使用ネットワークを前記第１のネットワークから前記第２のネットワークへ切り替えることを決定し、前記第２のネットワークを使用して前記ホームエージェントへハンドオーバ要求メッセージを送信し、前記ホームエージェントが、前記ハンドオーバ要求メッセージに基づいて応答メッセージを作成し、前記第２のネットワークを使用して前記移動端末へ前記応答メッセージを送信し、前記第２のネットワークを使用したパケット送受信を開始し、前記移動端末が、前記応答メッセージの受信に伴い、前記第２のネットワークを使用した前記パケットの送信を開始し、前記第１のネットワークの使用を停止し、前記ホームエージェントが、前記第２のネットワークを介して最初に受信したパケットに付加されたシーケンス番号から１を減じた番号と、前記第１のネットワークを介して受信したパケットに付加されたシーケンス番号とを比較し、比較結果の一致に伴い、前記第１のネットワークの使用を停止することを特徴とするものである。
【発明の効果】
【００２５】
本発明によれば、ハンドオーバ前に使用していたトンネルを経由して端末から送信された全てのパケットを受信し終える時点を検知し、このトンネルの設定を速やかに削除できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２７】
（第１の実施形態）図１に本発明の第１の実施形態に係る通信システムの概略構成を示す。端末１００はインターネット上の通信相手機器３００と通信を行う。端末１００はセルラーネットワーク用インタフェース１１０を備え、セルラー基地局１０を介してセルラーネットワークに接続できる。また、端末１００は無線ＬＡＮ用インタフェース１２０を備え、無線ＬＡＮ基地局２０を介して無線ＬＡＮに接続できる。
【００２８】
ホームエージェント２００は端末１００に移動機能を提供する機器である。ホームエージェント２００は、IP-in-IPトンネリングプロトコルを利用して端末１００との間にセルラーネットワーク及び／又は無線ＬＡＮ経由のトンネルを確立し、そのトンネルを利用して通信相手機器３００と端末１００間の通信パケットを中継する。
【００２９】
ここで、端末１００のセルラーネットワーク用インタフェース１１０、無線ＬＡＮ用インタフェース１２０、ホームエージェント２００、通信相手機器３００に割り当てられるＩＰアドレスは、それぞれＣｏＡ１、ＣｏＡ２、ＨＡ、ＣＮとする。さらに、端末１００にはＩＰアドレスＨｏＡが割り当てられるとする。ただし、インターネット上のルータがパケットを転送するために解釈するＩＰヘッダ中の宛先アドレスがＨｏＡであるパケットは全てホームエージェント２００に受信されるように、ＩＰアドレスＨｏＡは選ばれる。
【００３０】
図２にホームエージェント２００の概略構成を示す。ホームエージェント２００はネットワークスタック２０１、モビリティプロトコルモジュール２０２、トンネルデバイスモジュール２０３、記憶部２０４、及びネットワークインタフェース２１０を有する。
【００３１】
ネットワークスタック２０１は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポートプロトコルやIPv4、IPv6などのネットワークプロトコル処理を行う。ネットワークスタック２０１はまた、ネットワークインタフェース２１０から受信したパケットのうちトンネリングされたパケットをトンネルデバイスモジュール２０３へ出力する。
【００３２】
ネットワークスタック２０１はまた、トンネリングされ、トンネルデバイスモジュール２０３により外側ＩＰヘッダを削除されたパケットを、ネットワークインタフェース２１０へ出力する。
【００３３】
ネットワークスタック２０１はまた、ネットワークインタフェース２１０から受け取ったRegistration Requestメッセージの内容をモビリティプロトコルモジュール２０２へ出力する。ネットワークスタック２０１はまた、モビリティプロトコルモジュール２０２から出力されたRegistration ReplyメッセージにＵＤＰヘッダ及びＩＰヘッダを付与して、ネットワークインタフェース２１０へ出力する。
【００３４】
Registration Requestメッセージ及びRegistration Replyメッセージについては後述する。
【００３５】
ネットワークスタック２０１はまた、モビリティプロトコルモジュール２０２から出力されたICMP Echo RequestメッセージにＩＣＭＰヘッダとＩＰヘッダを付与し、ネットワークインタフェース２１０へ出力する。
【００３６】
ネットワークスタック２０１はまた、ネットワークインタフェース２１０から受け取ったICMP Echo Replyメッセージの内容をモビリティプロトコルモジュール２０２へ出力する。
【００３７】
ICMP Echo Requestメッセージ及びICMP Echo Replyメッセージについては後述する。
【００３８】
モビリティプロトコルモジュール２０２は、Mobile IPv4のメッセージの作成又は処理を行う。モビリティプロトコルモジュール２０２は、ネットワークスタック２０１からRegistration Requestメッセージの内容を受信して処理する。また、モビリティプロトコルモジュール２０２は、Registration Replyメッセージを生成してネットワークスタック２０１へ出力する。
【００３９】
モビリティプロトコルモジュール２０２はまた、トンネルデバイスモジュール２０３へトンネルの設定やトンネルの削除を通知する。
【００４０】
モビリティプロトコルモジュール２０２はまた、ネットワークスタック２０１へのICMP Echo Requestメッセージの内容の出力、ネットワークスタック２０１からのICMP Echo Replyメッセージの内容の取得を行う。
【００４１】
トンネルデバイスモジュール２０３は、モビリティプロトコルモジュール２０２から出力されたトンネルの設定を記憶部２０４に格納する。
【００４２】
トンネルデバイスモジュール２０３はまた、モビリティプロトコルモジュール２０２からトンネルの設定を削除する通知を受けた場合に、記憶部２０４から該当するトンネルの
設定を削除する。
【００４３】
トンネルデバイスモジュール２０３はまた、ネットワークスタック２０１から受け取った、トンネリングされたパケットが、記憶部２０４に格納されたトンネルの設定に従っているか否かを検査し、従っている場合は外側ＩＰヘッダを削除してネットワークスタック２０１へ出力し、従っていない場合は破棄する。
【００４４】
記憶部２０４は、トンネルの設定を記憶する。
【００４５】
ネットワークインタフェース２１０は、例えばEthernet（登録商標）等の通信プロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック２０１へ出力する。
【００４６】
ネットワークインタフェース２１０はまた、ネットワークスタック２０１から出力されたパケットを、通信相手機器３００や移動端末１００へ送信する。
【００４７】
このような通信システムにおけるハンドオーバ時の処理フローを図３を用いて説明する。本実施形態では使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替える場合について説明する。
【００４８】
（ステップＳ１００）端末１００が、端末１００とホームエージェント２００との間に確立されたセルラーネットワーク経由のトンネルを用いて、ホームエージェント２００へパケットを送信している。ホームエージェント２００は端末１００から受信したパケットを通信相手機器３００へ転送している。
【００４９】
このとき、ホームエージェント２００の記憶部２０４には、端末１００のセルラーネットワーク用インタフェース１１０のＩＰアドレスＣｏＡ１と、端末１００のＩＰアドレスＨｏＡと、ホームエージェント２００のＩＰアドレスＨＡとの組が、１つのトンネル設定として記憶されている。
【００５０】
端末１００のセルラーネットワーク用インタフェース１１０からホームエージェント２００へ送信されるパケットの構成例を図４に示す。このパケットは、外側ＩＰヘッダの送信元ＩＰアドレスがセルラーネットワーク用インタフェース１１０のＩＰアドレスＣｏＡ１、送信先ＩＰアドレスがホームエージェント２００のＩＰアドレスＨＡである、ＩＰ−ｉｎ−ＩＰトンネリングプロトコルでトンネリングされたパケットである。
【００５１】
ホームエージェント２００のネットワークインタフェース２１０は、図４に示すようなパケットを受信すると、このパケットをネットワークスタック２０１へ出力する。
【００５２】
ネットワークスタック２０１は、受け取ったパケットがＩＰ−ｉｎ−ＩＰトンネリングプロトコルでトンネリングされたパケットであることから、このパケットをトンネルデバイスモジュール２０３へ出力する。
【００５３】
トンネルデバイスモジュール２０３は記憶部２０４から、ＩＰアドレスＣｏＡ１を含むトンネル設定を取得する。上述の通り、記憶部２０４にはＩＰアドレスＣｏＡ１、ＨｏＡ、及びＨＡからなる組がトンネルの設定として記憶されており、トンネルデバイスモジュール２０３はこの組を取得する。
【００５４】
次に、トンネルデバイスモジュール２０３は、取得したＩＰアドレスＨｏＡとパケットの内側のＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、外側ＩＰヘッダを削除し、図５に示すようなパケットを作成する。そして、トンネルデバイスモジュール２０３は、作成したパケットをネットワークスタック２０１へ出力する。
【００５５】
なお、前記の比較でＩＰアドレスが一致しない場合、トンネルデバイスモジュール２０３はパケットを破棄する。
【００５６】
次に、トンネルデバイスモジュール２０３から図５に示すような外側ＩＰヘッダが削除されたパケットを受信したネットワークスタック２０１は、受信したパケットの送信先ＩＰアドレスがホームエージェント２００に割り当てられたＩＰアドレスＨＡではないことから他の機器（通信相手機器３００）へ転送すべきパケットであることを検知し、ネットワークインタフェース２１０へ出力する。
【００５７】
ネットワークインタフェース２１０は、ネットワークスタック２０１から受け取ったパケットを通信相手機器３００へ転送する。
【００５８】
（ステップＳ１０１）端末１００が使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替えることを決定する。例えば端末１００は無線ＬＡＮ基地局２０から送信される電波の受信強度が十分強くなったこと検知するなどして、無線ＬＡＮへの切替えを決定する。
【００５９】
（ステップＳ１０２）端末１００の無線ＬＡＮ用インタフェース１２０からホームエージェント２００へRegistration Requestメッセージが送信される。
【００６０】
Registration Requestメッセージの具体的な構成例を図６に示す。Registration RequestメッセージはＩＰヘッダ、ＵＤＰヘッダ、及びデータ部分で構成される。
【００６１】
ＩＰヘッダの送信元ＩＰアドレスは端末１００の無線ＬＡＮ用インタフェース１２０に割り当てられたＩＰアドレスＣｏＡ２であり、送信先ＩＰアドレスはホームエージェントのＩＰアドレスＨＡである。
【００６２】
また、ＵＤＰヘッダの送信先ポート番号は４３４である。また、Registration Requestメッセージのデータ部分には、Ｓｂｉｔに０、Home Addressフィールドに端末１００のＩＰアドレスＨｏＡ、Home Agentフィールドにホームエージェント２００のＩＰアドレスＨＡ、Care-of Addressフィールドに端末１００の無線ＬＡＮ用インタフェース１２０に割り当てられたＩＰアドレスＣｏＡ２が指定される。
【００６３】
なお、Registration Requestメッセージの送信元ＵＤＰポート番号はＵＰとする。
【００６４】
ホームエージェント２００のネットワークインタフェース２１０はRegistration Requestメッセージを受信すると、ネットワークスタック２０１へ出力する。
【００６５】
ネットワークスタック２０１は、Registration RequestメッセージのトランスポートプロトコルヘッダがＵＤＰであり、かつ送信先ポート番号が４３４であることから、Registration Requestメッセージがモビリティプロトコルモジュール２０２宛であることを検知し、このRegistration Requestメッセージをモビリティプロトコルモジュール２０２へ出力する。
【００６６】
モビリティプロトコルモジュール２０２は、ネットワークスタック２０１から受け取ったRegistration Requestメッセージの内容を検査する。
【００６７】
（ステップＳ１０３）ホームエージェント２００は、ステップＳ１０２で受信したRegistration Requestメッセージの内容を受け入れる場合、Registration Replyメッセージを端末１００の無線ＬＡＮ用インタフェース１２０へ送信する。
【００６８】
モビリティプロトコルモジュール２０２は、Registration Replyメッセージのデータ部分を生成し、ネットワークスタック２０１へ出力する。ここで、モビリティプロトコルモジュール２０２は、Registration ReplyメッセージのCodeフィールドに０、Home Addressフィールドに端末１００のＩＰアドレスＨｏＡ、Home Agentフィールドにホームエージェント２００のＩＰアドレスＨＡを指定する。
【００６９】
ネットワークスタック２０１は、モビリティプロトコルモジュール２０２から受け取ったRegistration Replyメッセージのデータ部分に、送信元ポート番号が４３４であり、送信先ポート番号がＵＰであるＵＤＰヘッダと、送信先ＩＰアドレスが端末１００の無線ＬＡＮ用インタフェース１２０のＩＰアドレスＣｏＡ２、送信元ＩＰアドレスがホームエージェント２００のＩＰアドレスＨＡであるＩＰヘッダとを付与し、図７に示すようなRegistration Replyメッセージを作成する。
【００７０】
ネットワークスタック２０１は作成したRegistration Replyメッセージをネットワークインタフェース２１０へ出力する。ネットワークインタフェース２１０は、ネットワークスタック２０１から受け取ったRegistration Replyメッセージを端末１００の無線ＬＡＮ用インタフェース１２０へ送信する。
【００７１】
（ステップＳ１０４）ホームエージェント２００が端末１００の無線ＬＡＮ用インタフェース１２０から送信されたパケットを受信するためのトンネルを新規に設定する。
【００７２】
ホームエージェント２００のモビリティプロトコルモジュール２０２は、Registration RequestメッセージのCare-of Addressフィールドに指定された端末１００の無線ＬＡＮ用インタフェース１２０のＩＰアドレスＣｏＡ２と、Home Addressフィールドに指定されたＩＰアドレスＨｏＡと、Home Agentフィールドに指定されたＩＰアドレスＨＡの組を、新たなトンネルの設定としてトンネルデバイスモジュール２０３へ出力する。
【００７３】
トンネルデバイスモジュール２０３は、モビリティプロトコルモジュール２０２から受け取った新たなトンネルの設定を記憶部２０４に格納する。
【００７４】
なお、ホームエージェント２００は、この新規トンネルの設定をステップＳ１０３の前に実行してもよい。
【００７５】
ホームエージェント２００は、新規トンネルの設定前から使用していた、端末１００のセルラーネットワーク用インタフェース１１０から送信されたパケットを受信するためのトンネルの設定を削除せずに保持する。
【００７６】
（ステップＳ１０５）端末１００は、ホームエージェント２００から送信されたRegistration Replyメッセージを無線ＬＡＮ用インタフェース１２０で受信すると、無線ＬＡＮ用インタフェース１２０からホームエージェント２００へパケットを送信するためのトンネルを新規に設定する。
【００７７】
なお、端末１００は、ステップＳ１０５以前に使用していた、セルラーネットワーク用インタフェース１１０からホームエージェント２００へパケットを送信するためのトンネルの設定を削除せずに保持する。
【００７８】
（ステップＳ１０６）端末１００は、無線ＬＡＮ用インタフェース１２０からパケットを送信し、セルラーネットワーク用インタフェース１１０からはパケットを送信しない。
【００７９】
無線ＬＡＮ用インタフェース１２０から送信されるパケットの構成例を図８に示す。
【００８０】
送信パケットの外側ＩＰヘッダの送信元ＩＰアドレスは無線ＬＡＮ用インタフェース１２０のＩＰアドレスＣｏＡ２である。
【００８１】
無線ＬＡＮ用インタフェース１２０からパケットを受信したホームエージェント２００は、パケットの外側ＩＰヘッダを削除して通信相手機器３００へ転送する。具体的には以下のような処理が行われる。
【００８２】
まず、無線ＬＡＮ用インタフェース１２０から送信されたパケットをネットワークインタフェース２１０が受信する。ネットワークインタフェース２１０は受信したパケットをネットワークスタック２０１へ出力する。
【００８３】
ネットワークスタック２０１は、受け取ったパケットがIP-in-IPトンネリングプロトコルでトンネリングされたパケットであることから、このパケットをトンネルデバイスモジュール２０３へ出力する。
【００８４】
トンネルデバイスモジュール２０３は、パケットの外側ＩＰヘッダの送信元ＩＰアドレスＣｏＡ２を含むトンネルの設定を記憶部２０４から取得する。
【００８５】
前述のとおり、記憶部２０４にはステップＳ１０４においてＩＰアドレスＣｏＡ２、ＨｏＡ、及びＨＡの組がトンネルの設定として記憶されており、トンネルデバイスモジュール２０３はこの組を取得する。
【００８６】
そして、トンネルデバイスモジュール２０３は、取得したＩＰアドレスＨｏＡとパケットの内側ＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、外側ＩＰヘッダを削除し、ネットワークスタック２０１へ出力する。一方、前記の比較でＩＰアドレスが一致しない場合、トンネルデバイスモジュール２０３はパケットを破棄する。
【００８７】
次に、ネットワークスタック２０１は、トンネルデバイスモジュール２０３から受け取ったパケットの送信先ＩＰアドレスがホームエージェント２００に割り当てられたＩＰアドレスＨＡではないことから、他の機器へ転送すべきパケットであることを検知し、ネットワークインタフェース２１０へパケットを出力する。
【００８８】
ネットワークインタフェース２１０はネットワークスタック２０１から受け取ったパケットを通信相手機器３００へ転送する。
【００８９】
（ステップＳ１０７）ホームエージェント２００が端末１００のセルラーネットワーク用インタフェース１１０へICMP Echo Requestメッセージ（応答要求メッセージ）を送信する。具体的にはホームエージェント２００は以下のような処理を行う。
【００９０】
まず、モビリティプロトコルモジュール２０２が、ICMP Echo Requestメッセージのデータを作成し、ネットワークスタック２０１へ出力する。
【００９１】
次に、ネットワークスタック２０１は、受け取ったデータにＩＣＭＰヘッダ及びＩＰヘッダを付与し、図９に示すようなICMP Echo Requestメッセージを作成する。ネットワークスタック２０１は、ＩＣＭＰヘッダのICMP typeに８、ICMP codeに０を指定する。
【００９２】
また、ネットワークスタック２０１は、ＩＰヘッダの送信元ＩＰアドレスにホームエージェント２００のＩＰアドレスＨＡ、送信先ＩＰアドレスに端末１００のセルラーネットワーク用インタフェース１１０のＩＰアドレスＣｏＡ１を指定する。
【００９３】
ネットワークスタック２０１は作成したICMP Echo Requestメッセージをネットワークインタフェース２１０へ出力する。ネットワークインタフェース２１０はこのICMP Echo Requestメッセージを端末１００のセルラーネットワーク用インタフェース１１０へ送信する。
【００９４】
なお、この処理はステップＳ１０４の処理の直後に行われる。
【００９５】
（ステップＳ１０８）端末１００は、ICMP Echo Requestメッセージを受信すると、図１０に示すようなICMP Echo Replyメッセージを作成し、セルラーネットワーク用インタフェース１１０からホームエージェント２００へ送信する。
【００９６】
ICMP Echo Replyメッセージは、ステップＳ１０５以降にセルラーネットワーク用インタフェース１１０からホームエージェント２００へ送信される。つまり、ICMP Echo Replyメッセージは、ステップＳ１０５以前にセルラーネットワーク用インタフェース１１０からホームエージェント２００へ送信された最後のパケットよりも後に、セルラーネットワーク用インタフェース１１０からホームエージェント２００へ送信されることになる。
【００９７】
従って、ホームエージェント２００はICMP Echo Replyメッセージの受信後は、端末１００のセルラーネットワーク用インタフェース１１０から送信されたパケットを受信することがないことを検知できる。
【００９８】
（ステップＳ１０９）ホームエージェントは、ICMP Echo Replyメッセージの受信に伴い、端末１００のセルラーネットワーク用インタフェース１１０から送信されるパケットを受信するためのトンネルの設定を削除する。具体的には以下のような処理が行われる。
【００９９】
ネットワークインタフェース２１０は、ICMP Echo Replyメッセージを受信すると、このICMP Echo Replyメッセージをネットワークスタック２０１へ出力する。
【０１００】
次に、ネットワークスタックは、ICMP Echo Replyメッセージの内容をモビリティプロトコルモジュール２０２へ出力する。
【０１０１】
モビリティプロトコルモジュール２０２は、ICMP Echo Replyメッセージのデータ部分がICMP Echo Requestメッセージのデータ部分と一致するか否かを検査し、一致しない場合はICMP Echo Replyメッセージを破棄する。
【０１０２】
一致する場合、モビリティプロトコルモジュール２０２は、ICMP Echo Replyメッセージの送信元ＩＰアドレスＣｏＡ１が含まれるトンネルの設定を削除するよう、トンネルデバイスモジュール２０３に通知する。
【０１０３】
トンネルデバイスモジュール２０３は、通知されたＩＰアドレスＣｏＡ１を含むトンネルの設定を記憶部２０４から削除する。記憶部２０４には、ＩＰアドレスＣｏＡ１、ＨｏＡ、ＨＡの組がトンネルの設定として記憶されており、この組が記憶部２０４から削除される。
【０１０４】
これにより、ホームエージェント２００が端末１００以外の機器から、外側ＩＰヘッダの送信元ＩＰアドレスがＣｏＡ１で、かつ内側ＩＰヘッダの送信元ＩＰアドレスがＨｏＡである、詐称されたパケットを受信しても、ホームエージェント２００はこの詐称されたパケットを破棄できるようになる。
【０１０５】
（ステップＳ１１０）端末１００が、ハンドオーバ前に使用していた、セルラーネットワーク用インタフェース１１０からホームエージェント２００へパケットを送信するためのトンネルの設定を削除する。この処理はステップＳ１０８のICMP Echo Replyメッセージの送信後に行われる。
【０１０６】
ホームエージェント２００は、ハンドオーバ処理直後に、端末１００が返信可能なメッセージをハンドオーバ前に使用していたネットワークを介して端末１００へ送信し、前記メッセージに対する返信のメッセージを端末から受信した時点を、ハンドオーバ前に使用していたトンネルを削除可能となる時点として検知している。
【０１０７】
そのため、端末１００が特別なメッセージをホームエージェント２００へ送信する機能を搭載していなくても、ホームエージェント２００はハンドオーバ前に使用していたトンネルを経由した端末１００からの全てのパケットを受信し終えて、前記トンネルが削除可能となる時点を検知することができる。
【０１０８】
これにより、ハンドオーバ前に使用していたトンネルを速やかに削除できるため、メモリリソースを効率的に使用することができる。
【０１０９】
なお、本実施形態におけるホームエージェント２００は、ICMP Echo Requestメッセージの代わりとして、端末１００がセルラーネットワーク用インタフェース１１０から返信可能なメッセージであればどの様なメッセージを送信してもよい。
【０１１０】
本実施形態では、端末１００およびホームエージェント２００はモビリティプロトコルとしてMobile IPv4を搭載しているが、Mobile IPv4の代わりにMobile IPv6を搭載していてもよい。端末１００およびホームエージェント２００がMobile IPv6を利用する場合、ホームエージェント２００はICMP Echo Requestメッセージの代わりに、ICMPv6 Echo Requestメッセージを端末１００のセルラーネットワーク用インタフェース１１０へ送信する。
【０１１１】
また、端末１００およびホームエージェント２００は、IP-in-IPトンネリングプロトコルの代わりにGREトンネルやその他のトンネリングプロトコルを利用してもよい。
【０１１２】
（第２の実施形態）図１１に本発明の第２の実施形態に係る通信システムの概略構成を示す。端末４００はインターネット上の通信相手機器６００と通信を行う。端末４００はセルラーネットワーク用インタフェース４１０を備え、セルラー基地局１０を介してセルラーネットワークに接続できる。また、端末４００は無線ＬＡＮ用インタフェース４２０を備え、無線ＬＡＮ基地局２０を介して無線ＬＡＮに接続できる。
【０１１３】
ホームエージェント５００は端末４００に移動機能を提供する機器である。ホームエージェント５００は、IP-in-IPトンネリングプロトコルを利用して端末４００との間にセルラーネットワークまたは無線ＬＡＮ経由のトンネルを確立し、そのトンネルを利用して通信相手機器６００と端末４００間の通信パケットを中継する。
【０１１４】
上記第１の実施形態と同様に、端末４００のセルラーネットワーク用インタフェース４１０、無線ＬＡＮ用インタフェース４２０、ホームエージェント５００、通信相手機器６００に割り当てられるＩＰアドレスは、それぞれＣｏＡ１、ＣｏＡ２、ＨＡ、ＣＮとする。また、端末４００にはＩＰアドレスＨｏＡが割り当てられるとする。
【０１１５】
図１２に端末４００の概略構成を示す。端末４００はネットワークスタック４０１、モビリティプロトコルモジュール４０２、アプリケーションモジュール４０３、トンネルデバイスモジュール４０４、ハンドオーバトリガモジュール４０５、記憶部４０６、セルラーネットワーク用インタフェース４１０、及び無線ＬＡＮ用インタフェース４２０を有する。
【０１１６】
セルラーネットワーク用インタフェース４１０は、例えばCDMAや、HSDPA、PHSといったセルラー系の通信プロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック４０１へ出力する。セルラーネットワーク用インタフェース４１０はまた、ネットワークスタック４０１から受け取ったパケットを送信する。
【０１１７】
無線ＬＡＮ用インタフェース４２０は、例えば802.11bや、802.11g, 802.11a, 802.11nといった802.11系のプロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタックへ出力する。無線ＬＡＮ用インタフェース４２０はまた、ネットワークスタック４０１から受け取ったパケットを送信する。
【０１１８】
ネットワークスタック４０１は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポートプロトコルやIPv4、IPv6などのネットワークプロトコル処理を行うものであり、アプリケーションモジュール４０３から受け取ったアプリケーションデータにトランスポートヘッダとＩＰヘッダを付与し、トンネルデバイスモジュール４０４へ出力する。
【０１１９】
ネットワークスタック４０１はまた、トンネルデバイスモジュール４０４から受信したIP-in-IPトンネリングプロトコルでトンネリングされたパケットを、セルラーネットワーク用インタフェース４１０または無線ＬＡＮ用インタフェース４２０へ出力する。
【０１２０】
ネットワークスタック４０１はまた、セルラーネットワーク用インタフェース４１０又は無線ＬＡＮ用インタフェース４２０で受信したRegistration Replyメッセージの内容をモビリティプロトコルモジュール４０２へ出力する。
【０１２１】
ネットワークスタック４０１はまた、モビリティプロトコルモジュール４０２から出力されたRegistration RequestメッセージにＵＤＰヘッダとＩＰヘッダを付与し、セルラーネットワーク用インタフェース４１０又は無線ＬＡＮインタフェース４２０へ出力する。
【０１２２】
モビリティプロトコルモジュール４０２は、Mobile IPv4のメッセージを作成または処理するモジュールであり、Registration Requestメッセージを生成してネットワークスタック４０１へ出力する。また、モビリティプロトコルモジュール４０２はネットワークスタック４０１からRegistration Replyメッセージを受信して処理する。
【０１２３】
モビリティプロトコルモジュール４０２はまた、ハンドオーバ前に使用していたトンネルの設定を用いてトンネルデバイスモジュール４０４が作成した最後のパケットの内容を、トンネルデバイスモジュール４０４から取得する。
【０１２４】
モビリティプロトコルモジュール４０２はまた、前記パケットの特徴を示す通知メッセージを生成し、ネットワークスタック４０１へ出力する。
【０１２５】
モビリティプロトコルモジュール４０２はまた、トンネルデバイスモジュール４０４にトンネルの設定又は削除を通知する。
【０１２６】
アプリケーションモジュール４０３は、アプリケーションデータを生成し、ネットワークスタック４０１にアプリケーションデータを出力する。
【０１２７】
トンネルデバイスモジュール４０４は、ネットワークスタック４０１から受け取ったパケットにＩＰヘッダを付与してネットワークスタック４０１へ出力する。また、トンネルデバイスモジュール４０３は、最後にＩＰヘッダを付与してネットワークスタック４０１へ出力したパケットの内容を記憶部４０６に格納する。
【０１２８】
トンネルデバイスモジュール４０４は、以前記憶部４０６に格納していたパケットのうち送信元ＩＰアドレスと送信先ＩＰアドレスが一致するパケットの内容を削除する。
【０１２９】
トンネルデバイスモジュール４０４はまた、記憶部４０６に格納したパケットの内容をモビリティプロトコルモジュール４０２へ出力する。
【０１３０】
トンネルデバイスモジュール４０４はまた、モビリティプロトコルモジュール４０２から通知されたトンネルの設定を記憶部４０６に格納し、モビリティプロトコルモジュール４０２から通知されたトンネルの設定を記憶部４０６から削除する。
【０１３１】
ハンドオーバトリガモジュール４０５は、ハンドオーバを開始する契機を決定するモジュールであり、セルラーネットワーク用インタフェース４１０または無線ＬＡＮ用インタフェース４２０からセルラーネットワークや無線ＬＡＮにおける通信品質に関する情報を取得し、前記情報やその他の情報からハンドオーバを開始する契機を決定し、モビリティモジュール４０２へ通知する。
【０１３２】
記憶部４０６は、トンネルの設定を記憶する。記憶部４０６はまた、トンネルデバイスモジュール４０４が作成した最後のパケットの内容を記憶する。
【０１３３】
図１３にホームエージェント５００の概略構成を示す。ホームエージェント５００は、ネットワークスタック５０１、モビリティプロトコルモジュール５０２、トンネルデバイスモジュール５０３、パケット監視モジュール５０４、記憶部５０５、及びネットワークインタフェース５１０を有する。
【０１３４】
ネットワークインタフェース５１０は、例えばEthernet等の通信プロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック５０１へ出力する。ネットワークインタフェース５１０はまた、ネットワークスタック５０１から受け取ったパケットを端末４００又は通信相手機器６００へ送信する。
【０１３５】
ネットワークスタック５０１は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポートプロトコルやIPv4、IPv6などのネットワークプロトコル処理を行う。
【０１３６】
ネットワークスタック５０１はまた、ネットワークインタフェース５１０から受信したパケットをパケット監視モジュール５０４へ出力する。
【０１３７】
ネットワークスタック５０１はまた、パケット監視モジュール５０４から受け取ったパケットのうち、トンネリングされたパケットをトンネルデバイスモジュール５０３へ出力する。
【０１３８】
ネットワークスタック５０１はまた、外側ＩＰヘッダが削除されたパケットをネットワークインタフェース５１０へ出力する。
【０１３９】
ネットワークスタック５０１はまた、ネットワークインタフェース５１０から受け取ったRegistration Requestメッセージの内容をモビリティプロトコルモジュール５０２へ出力する。
【０１４０】
ネットワークスタック５０１はまた、モビリティプロトコルモジュール５０２から出力されたRegistration ReplyメッセージにＵＤＰヘッダ及びＩＰヘッダを付与し、ネットワークインタフェース５１０へ出力する。
【０１４１】
ネットワークスタック５０１はまた、ネットワークインタフェース５１０から受け取った通知メッセージの内容をモビリティプロトコルモジュール５０２へ出力する。
【０１４２】
モビリティプロトコルモジュール５０２は、Mobile IPv4のメッセージを作成または処理するモジュールであり、ネットワークスタック５０１からRegistration Requestメッセージを受信して処理し、Registration Replyメッセージを作成してネットワークスタック５０１へ出力する。
【０１４３】
モビリティプロトコルモジュール５０２はまた、トンネルデバイスモジュール５０３にトンネルの設定や削除を通知するものである。
【０１４４】
モビリティプロトコルモジュール５０２はまた、通知メッセージをネットワークスタック５０１から受け取り、前記通知メッセージに記されたパケットの特徴をパケット監視モジュール５０４へ通知し、パケット監視モジュールから前記特徴に該当するパケットを検知したことを示す通知を受信する。
【０１４５】
トンネルデバイスモジュール５０３は、モビリティプロトコルモジュール５０２から受け取ったトンネルの設定を記憶部５０５に格納する。
【０１４６】
トンネルデバイスモジュール５０３はまた、モビリティプロトコルモジュール５０２からトンネルの設定を削除する通知を受けた場合に記憶部５０５から該当するトンネルの設定を削除する。
【０１４７】
トンネルデバイスモジュール５０３はまた、ネットワークスタック５０１から受け取ったトンネリングされたパケットが、記憶部５０５に格納されたトンネルの設定に従っているかを検査し、外側ＩＰヘッダを削除してネットワークスタック５０１へ出力する。
【０１４８】
パケット監視モジュール５０４は、モビリティプロトコルモジュール５０２から受け取ったパケットの特徴を示すデータを記憶部５０５に格納する。
【０１４９】
パケット監視モジュール５０４はまた、ネットワークスタック５０１から受け取ったパケットが、記憶部５０５に格納されたパケットの特徴に該当するか否かを判定し、該当した場合はモビリティプロトコルモジュール５０２に通知し、前記判定後に前記パケットをネットワークスタック５０１へ出力する。
【０１５０】
パケット監視モジュール５０４は、トンネルデバイスモジュール５０３と同一のモジュールに実装されてもよい。
【０１５１】
記憶部５０５は、トンネルの設定を記憶する。記憶部５０５はまた、パケット監視モジュール５０４から出力された、パケットの特徴を示すデータを記憶する。
【０１５２】
このような通信システムにおけるハンドオーバ時の処理フローを図１４を用いて説明する。本実施形態では使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替える場合について説明する。
【０１５３】
（ステップＳ１４００）端末４００及びホームエージェント５００は、セルラーネットワークを経由したトンネルを確立しており、端末４００はホームエージェント５００を介してパケットを通信相手機器６００へ送信している。
【０１５４】
端末４００では具体的には以下のような処理が行われている。ここで、端末４００の記憶部４０６には、セルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１と、ホームエージェント５００のＩＰアドレスＨＡの組が、一つのトンネルの設定として記憶されている。
【０１５５】
アプリケーションモジュール４０３は、送信データを作成し、ネットワークスタック４０１へ出力する。
【０１５６】
ネットワークスタック４０１はアプリケーションモジュール４０３から受け取った送信データにトランスポートヘッダとＩＰヘッダを付与し、トンネルデバイスモジュール４０４へ出力する。
【０１５７】
トンネルデバイスモジュール４０４はネットワークスタック４０１から受け取ったパケットに外側ＩＰヘッダを付与し、図４に示すようなパケットを生成する。トンネルデバイスモジュール４０４は、この生成したパケットの内容を記憶部４０６に格納する。
【０１５８】
そして、トンネルデバイスモジュール４０４は、パケットの外側ＩＰヘッダの送信元ＩＰアドレスと送信先ＩＰアドレスの組が同一である、ステップＳ１４００以前に記憶部４０６に格納されたパケットの内容を削除する。
【０１５９】
続いて、トンネルデバイスモジュール４０４は、生成したパケットをネットワークスタック４０１へ出力する。
【０１６０】
ネットワークスタック４０１はトンネルデバイスモジュール４０４から受け取ったトンネリングされたパケットをセルラーネットワーク用インタフェース４１０へ出力する。セルラーネットワーク用インタフェース４１０は、ネットワークスタック４０１から受け取ったパケットをホームエージェント５００へ送信する。
【０１６１】
ホームエージェント５００では具体的に以下のような処理が行われる。ここで、ホームエージェント５００の記憶部５０５には、端末４００のセルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１と、端末４００のＩＰアドレスＨｏＡと、ホームエージェント５００のＩＰアドレスＨＡとの組が、一つのトンネルの設定として記憶されている。
【０１６２】
ネットワークインタフェース５１０は、端末４００から、図４に示すような、IP-in-IPトンネリングプロトコルでトンネリングされたパケットを受信すると、この受信したパケットをネットワークスタック５０１へ出力する。
【０１６３】
ネットワークスタック５０１は、ネットワークインタフェース５１０から受け取ったパケットをパケット監視モジュール５０４へ出力する。
【０１６４】
パケット監視モジュール５０４は、記憶部５０５からパケットの特徴を示すデータを取得し、そのデータに、ネットワークスタック５０１から受け取ったパケットが該当するか否かを判定する。ステップＳ１４００では、記憶部５０５にパケットの特徴を示すデータは何も格納されていないため、該当しないと判定される。
【０１６５】
該当しないと判定した場合、パケット監視モジュール５０４はパケットをネットワークスタック５０１へ出力する。なお、該当すると判定した場合の処理についてはステップＳ１５０８にて説明する。
【０１６６】
ネットワークスタック５０１は、パケット監視モジュール５０４から受け取ったパケットがIP-in-IPトンネリングでトンネリングされたパケットであることから、このパケットをトンネルデバイスモジュール５０３へ出力する。
【０１６７】
トンネルデバイスモジュール５０３は、外側ＩＰヘッダの送信元ＩＰアドレスであるＩＰアドレスＣｏＡ１を含むトンネルの設定を記憶部５０５から取得する。前述のとおり、記憶部にはＩＰアドレスＣｏＡ１、ＨｏＡ、及びＨＡの組がトンネルの設定として記憶されているため、トンネルデバイスモジュール５０３はこの組を取得する。
【０１６８】
トンネルデバイスモジュール５０３は、取得したＩＰアドレスＨｏＡとパケットの内側ＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、パケットの外側ＩＰヘッダを削除して図５に示すようなパケットを生成し、ネットワークスタック５０１へ出力する。一方、前記の比較でＩＰアドレスが一致しない場合、トンネルデバイスモジュール５０３はパケットを破棄する。
【０１６９】
トンネルデバイスモジュール５０３からパケットを受け取ったネットワークスタック５０１は、パケットの送信先ＩＰアドレスがホームエージェント５００に割り当てられたＩＰアドレスＨＡではないことから、他の機器へ転送すべきパケットであることを検知し、このパケットをネットワークインタフェース５１０へ出力する。
【０１７０】
ネットワークインタフェース５１０は、ネットワークスタック５０１から受け取ったパケットを通信相手機器６００へ送信する。
【０１７１】
（ステップＳ１４０１）端末４００が使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替えることを決定する。
【０１７２】
端末４００のハンドオーバトリガモジュール４０５は、常時セルラーネットワーク用インタフェース４１０または無線ＬＡＮ用インタフェース４２０からセルラーネットワークや無線ＬＡＮにおける通信品質に関する情報を取得している。
【０１７３】
そして、ハンドオーバトリガモジュール４０５は、前記情報やその他の情報が一定の条件を満たすと、ハンドオーバを開始することを決定し、モビリティプロトコルモジュール４０２に通知する。
【０１７４】
なお、ハンドオーバトリガモジュール４０５がハンドオーバの開始を決定するアルゴリズムはどのようなものであってもよい。一例として、無線ＬＡＮ基地局２０から受信できる電波の強度が十分強くなったことをハンドオーバの契機とする方法がある。
【０１７５】
（ステップＳ１４０２）端末４００がホームエージェント５００へRegistration Requestメッセージを送信する。
【０１７６】
端末４００は具体的には以下のような処理を行う。端末４００のモビリティプロトコルモジュール４０２は、Registration Requestメッセージのデータ部分を生成する。
【０１７７】
モビリティプロトコルモジュール４０２は、生成したRegistration Requestメッセージのデータ部分をネットワークスタック４０１へ出力する。
【０１７８】
ネットワークスタック４０１は、モビリティプロトコルモジュール４０２から受け取ったRegistration Requestメッセージのデータ部分に、宛先ポート番号が４３４であるＵＤＰヘッダと、送信先ＩＰアドレスがホームエージェント５００のＩＰアドレスＨＡであり、かつ送信元ＩＰアドレスが端末４００の無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣＯＡ２であるＩＰIPヘッダを付与する。なお、ネットワークスタックがＵＤＰヘッダの送信元ポート番号に指定した値をＵＰとする。
【０１７９】
これにより、図６に示すような上記第１の実施形態と同様のRegistration Requestメッセージが作成される。
【０１８０】
ネットワークスタック４０１はRegistration Requestメッセージを無線ＬＡＮ用インタフェース４２０へ出力する。無線ＬＡＮ用インタフェース４２０は、ネットワークスタック４０１から受け取ったRegistration Requestメッセージをホームエージェント５００へ送信する。
【０１８１】
端末４００から送信されたRegistration Requestメッセージをホームエージェント５００が受信すると、ホームエージェント５００は以下のような処理を行う。
【０１８２】
ホームエージェント５００のネットワークインタフェース５１０が、Registration Requestメッセージを受信し、ネットワークスタック５０１へ出力する。
【０１８３】
ネットワークスタック５０１は、Registration RequestメッセージのトランスポートプロトコルヘッダがＵＤＰであり、かつ送信先ポート番号が４３４であることから、Registration Requestメッセージがモビリティプロトコルモジュール５０２宛であることを検知し、Registration Requestメッセージをモビリティプロトコルモジュール５０２へ出力する。
【０１８４】
モビリティプロトコルモジュール５０２は、ネットワークスタック５０１から受け取ったRegistration Requestメッセージの内容を検査する。
【０１８５】
（ステップＳ１４０３）ホームエージェント５００は、ステップＳ１４０２で受信したRegistration Requestメッセージの内容を受け入れる場合、Registration Replyメッセージを無線ＬＡＮ用インタフェース４２０へ送信する。
【０１８６】
ホームエージェント５００は具体的には以下のような処理を行う。まず、ホームエージェント５００のモビリティプロトコルモジュール５０２は、Registration Replyメッセージのデータ部分を生成し、ネットワークスタック５０１へ出力する。
【０１８７】
ネットワークスタック５０１は、Registration Replyメッセージのデータ部分に、送信元ポート番号が４３４であり、送信先ポート番号がＵＰであるＵＤＰヘッダと、送信先ＩＰアドレスが端末の無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣｏＡ２、送信元ＩＰアドレスがホームエージェント５００のＩＰアドレスＨＡであるＩＰヘッダとを付与し、図７に示すようなRegistration Replyメッセージを作成する。
【０１８８】
ネットワークスタック５０１は、生成したRegistration Replyメッセージをネットワークインタフェース５１０へ出力する。ネットワークインタフェース５１０は、ネットワークスタック５０１から受け取ったRegistration Replyメッセージを無線ＬＡＮ用インタフェース４２０へ送信する。
【０１８９】
（ステップＳ１４０４）ホームエージェント５００は、Registration Requestメッセージの内容を受け入れる場合、無線ＬＡＮを介したトンネルを新規に設定する。
【０１９０】
すなわち、ホームエージェント５００のモビリティプロトコルモジュール５０２は、Registration RequestメッセージのCare-of Addressフィールドに指定された端末４００の無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣｏＡ２と、Home Agentフィールドに指定されたホームエージェントのＩＰアドレスＨＡと、Home Addressフィールドに指定されたＩＰアドレスＨｏＡとの組を、新たなトンネルの設定としてトンネルデバイスモジュール５０３へ出力する。
【０１９１】
トンネルデバイスモジュール５０３は、モビリティプロトコルモジュール５０２から受け取ったトンネルの設定を記憶部５０５に格納する。
【０１９２】
なお、ホームエージェント５００は、このトンネルの新規設定をRegistration Replyメッセージの送信（ステップＳ１４０３）前に実行してもよい。
【０１９３】
ホームエージェント５００は、ステップＳ１４０４以前に使用していた、端末４００のセルラーネットワーク用インタフェース４１０からパケットを受信するためのトンネルの設定を削除せずに保持する。
【０１９４】
（ステップＳ１４０５）端末４００はRegistration Replyメッセージの受信に伴い、無線ＬＡＮを介したトンネルを新規に設定する。
【０１９５】
端末４００は具体的に以下のような処理を行う。まず、無線ＬＡＮ用インタフェース４２０は、受信したRegistration Replyメッセージをネットワークスタック４０１へ出力する。
【０１９６】
ネットワークスタック４０１は、Registration ReplyメッセージのトランスポートプロトコルヘッダがＵＤＰであり、かつ送信先ポート番号がＵＰであることから、Registration Replyメッセージがモビリティプロトコルモジュール４０２宛であることを検知し、Registration Replyメッセージをモビリティプロトコルモジュール４０２へ出力する。
【０１９７】
モビリティプロトコルモジュール４０２は、Registration ReplyメッセージのCodeフィールドが０であることから、ホームエージェント５００がRegistration Requestメッセージの内容を受け入れたことを検知する。
【０１９８】
そして、モビリティプロトコルモジュール４０２は、無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣｏＡ２及びホームエージェント５００のＩＰアドレスＨＡの組を新たなトンネルの設定としてトンネルデバイスモジュール４０４へ出力する。
【０１９９】
トンネルデバイスモジュール４０４は、モビリティプロトコルモジュールから受け取ったトンネルの設定を記憶部４０６に格納する。
【０２００】
なお、端末４００はステップＳ１４０５以前に使用していた、セルラーネットワーク用インタフェース４１０からパケットを送受信するためのトンネルの設定を削除せずに、保持する。
【０２０１】
（ステップＳ１４０６）端末４００の無線ＬＡＮ用インタフェース４２０から無線ＬＡＮを介してホームエージェント５００へ通知メッセージが送信される。
【０２０２】
まず、端末４００のモビリティプロトコルモジュール４０２が、トンネルデバイスモジュール４０４に、セルラーネットワーク用インタフェース４１０のＩＰアドレスＣｏＡ１およびホームエージェント５００のＩＰアドレスＨＡを通知する。
【０２０３】
トンネルデバイスモジュール４０４は、送信元ＩＰアドレスがＣｏＡ１であり、かつ送信先ＩＰアドレスがホームエージェント５００のＩＰアドレスＨＡであるパケットを記憶部４０６から取得する。
【０２０４】
ステップＳ１４００で述べた通り、トンネルデバイスモジュール４０４は、外側ＩＰヘッダを付与したパケットをネットワークスタック４０１へ出力するたびに、前記パケットの内容を記憶部４０６に格納し、以前格納していた、送信元ＩＰアドレス及び送信先ＩＰアドレスが同じであるパケットを削除する。
【０２０５】
つまり、常に最新のトンネリングされた送信パケットが記憶４０６部に格納されている。
【０２０６】
また、ステップＳ１４０５以降、端末４００は通信相手機器６００へホームエージェント５００を介してパケットを送信する場合、セルラーネットワーク用インタフェース４１０を使用せず、無線ＬＡＮ用インタフェース４２０を使用する。
【０２０７】
つまり、ステップＳ１４０６において記憶部４０６に格納された、送信元ＩＰアドレスがＣｏＡ１であるパケットは、端末４００がセルラーネットワーク用インタフェース４１０から送信した、最後のトンネリングされたパケットである。
【０２０８】
トンネルデバイスモジュール４０４は、セルラーネットワーク用インタフェース４１０から送信された最後のトンネリングされたパケットを記憶部４０６から取得し、モビリティプロトコルモジュールへ出力する。
【０２０９】
モビリティプロトコルモジュール４０２は、トンネルデバイスモジュール４０４から受け取ったパケットの特徴を表すデータを生成し、ネットワークスタック４０１へ出力する。
【０２１０】
前記データの具体的な構成は、例えば図１５に示す通知メッセージのデータ部分である。図１５に示す例では、データ部分のｃｓｕｍフィールドにパケットのＩＰヘッダ中のチェックサムフィールドと同じ値が指定される。
【０２１１】
なお、チェックサムに加え、セルラーネットワーク用インタフェース４１０に付与されたＩＰアドレスＣｏＡ１や、端末４００のＩＰアドレスＨｏＡをデータ部分に指定してもよい。また、チェックサムの代わりにパケット自体を通知メッセージのデータ部分に指定してもよいし、その他パケットを特定もしくはほぼ特定可能なデータを指定してもよい。
【０２１２】
次に、ネットワークスタック４０１は、モビリティプロトコルモジュール４０２から受け取ったデータに、送信元ポート番号がＵＰであり、送信先ポート番号が４３４であるＵＤＰヘッダを付与する。
【０２１３】
また、ネットワークスタック４０１は、送信元ＩＰアドレスが無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣｏＡ２であり、かつ送信先ＩＰアドレスがホームエージェント５００のＩＰアドレスＨＡであるＩＰヘッダを付与することで、図１５に示すような通知メッセージを作成する。 
ネットワークスタック４０１は、通知メッセージを無線ＬＡＮ用インタフェース４２０へ出力する。無線ＬＡＮ用インタフェース４２０は受け取った通知メッセージをホームエージェント５００へ送信する。
【０２１４】
通知メッセージは、無線ＬＡＮを経由してホームエージェント５００に受信される。
【０２１５】
なお、一般に、無線ＬＡＮにおけるネットワーク遅延は、セルラーネットワークにおけるネットワーク遅延よりも小さい。そのため、通知メッセージは、セルラーネットワークを介して送信された最後のトンネリングされたパケットよりも先にホームエージェント５００に到着する。
【０２１６】
ホームエージェント５００のネットワークインタフェース５１０は、通知メッセージを受信すると、ネットワークスタック５０１へ出力する。
【０２１７】
ネットワークスタック５０１は、受け取った通知メッセージの送信先ポート番号が４３４であることから、通知メッセージがモビリティプロトコルモジュール５０２宛であることを検知し、通知メッセージの内容をモビリティプロトコルモジュール５０２へ出力する。
【０２１８】
モビリティプロトコルモジュール５０２は、通知メッセージに記されたデータ部分を、検知対象のパケットの特徴を表すデータとしてパケット監視モジュール５０４へ出力する。例えば、前記データが端末４００からセルラーネットワークを介して送信された最後のトンネリングされたパケットのＩＰヘッダの中のチェックサムフィールドの値の場合は、前記チェックサムの値をパケット監視モジュール５０４へ出力する。
【０２１９】
パケット監視モジュール５０４は前記チェックサムの値を記憶部５０５に格納する。
【０２２０】
（ステップＳ１４０７）ホームエージェント５００は、端末４００の無線ＬＡＮ用インタフェース４２０から無線ＬＡＮを介してトンネリングされたパケットを受信するか、または端末４００のセルラーネットワーク用インタフェース４１０からセルラーネットワークを介してトンネリングされたパケットを受信すると、受信したパケットの外側ＩＰヘッダを削除したパケットを通信相手機器６００へ転送する。
【０２２１】
また、ホームエージェントのパケット監視モジュール５０４が、記憶部５０５から検知対象のパケットの特徴を示すデータを取得し、セルラーネットワークを介して受信したパケットがこのデータに該当するか否か判定する。
【０２２２】
（ステップＳ１４０８）パケット監視モジュール５０４は、セルラーネットワークを介して受信したパケットが、記憶部５０５から取得した検知対象のパケットの特徴を示すデータに該当すると判定した場合、該当するパケットを受信したことをモビリティプロトコルモジュール５０２に通知する。
【０２２３】
これにより、モビリティプロトコルモジュール５０２は、ハンドオーバ前に使用していたセルラーネットワーク経由で最後のトンネリングされたパケットを受信したことを検知することができる。
【０２２４】
（ステップＳ１４０９）端末４００がハンドオーバ前に使用していたトンネルの設定を削除する。
【０２２５】
端末４００のモビリティプロトコルモジュール４０２は、セルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１とホームエージェント５００のＩＰアドレスＨＡとの組をトンネルデバイスモジュール４０４に通知する。
【０２２６】
そして、トンネルデバイスモジュール４０４は、記憶部４０６からＩＰアドレスＣｏＡ１及びＨＡの組で表されるトンネルの設定を削除する。
【０２２７】
この処理は、端末４００が無線ＬＡＮを介したトンネルを新規に設定（ステップＳ１４０５）した後の任意のタイミングで行われる。
【０２２８】
（ステップＳ１４１０）ホームエージェント５００は、ハンドオーバ前のトンネルの設定を削除する。
【０２２９】
すなわち、ホームエージェント５００のモビリティプロトコルモジュール５０２は、端末４００のセルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１と、端末４００のＩＰアドレスＨｏＡと、ホームエージェント５００のＩＰアドレスＨＡの組をトンネルデバイスモジュール５０３に通知する。
【０２３０】
そして、トンネルデバイスモジュール５０３が、記憶部５０５からＩＰアドレスＣｏＡ１、ＨｏＡ、及びＨＡの組で表されるトンネルの設定を削除する。
【０２３１】
ホームエージェント５００はステップＳ１４１０を実行することにより、図４に示すようなパケットを受信した場合、ホームエージェント５００のトンネルデバイスモジュール５０３は、前記パケットの外側ＩＰヘッダの送信元ＩＰアドレスと送信先ＩＰアドレスに一致するトンネルの設定が、記憶部５０５に存在しないことから、前記パケットが不正なパケットであると判断し、破棄できるようになる。
【０２３２】
このように、本実施形態に係る通信システムによれば、ハンドオーバ前に使用していたネットワークを介して端末がホームエージェントへ送信した最後のトンネリングされたパケットの内容を示す通知メッセージを、ハンドオーバ後に使用するネットワークを介して、端末がホームエージェントへ送信し、前記通知メッセージを受信したホームエージェントが、前記通知メッセージの示すパケットの内容に該当するパケットを受信した時点を、ハンドオーバ前に使用していたトンネルを削除可能となる時点として検知可能となる。
【０２３３】
また、端末は前記通知メッセージをハンドオーバ後に使用するネットワーク経由で送信するため、ハンドオーバ前に使用していたネットワーク上でパケットロスが発生しても、ホームエージェントはハンドオーバ前に使用していたトンネルを削除可能となる時点を検知可能となる。
【０２３４】
このように、ハンドオーバ前に使用していたトンネルを速やかに削除できるため、メモリリソースを効率的に使用することができる。
【０２３５】
上記第２の実施形態の一例においては、ホームエージェント５００は、ステップＳ１４００、ステップＳ１４０７、ステップＳ１４０８において送信先ＩＰアドレスがＨｏＡであるパケットを受信し、前記パケットをトンネリングしたパケットを端末４００に転送してもよい。
【０２３６】
また、上記第２の実施形態の一例においては、端末４００およびホームエージェント５００はIP-in-IPトンネリングプロトコルの代わりにGREトンネルやESP、AHといったシーケンスナンバーフィールドをプロトコルヘッダにもつプロトコルを利用し、かつIPヘッダのチェックサムフィールドの値の代わりに前記シーケンスナンバーフィールドの値を利用してもよい。
【０２３７】
また、ホームエージェント５００は前記シーケンスナンバーフィールドの値よりも小さい値のシーケンスナンバーフィールド値をもつパケットを全て受信した時点をハンドオーバ前に使用していたトンネルを削除可能となる時点として検知してもよい。
【０２３８】
この場合、端末４００は、ハンドオーバ前に使用していたネットワーク上で、パケットの転送順が入れ替わっても、ホームエージェント５００がハンドオーバ前に使用していたトンネルを経由して端末からの全てのパケットを受信し終えて前記トンネルを削除可能となる時点を検知可能となる。
【０２３９】
また、上記第２の実施形態の一例においては、Mobile IPv4をモビリティプロトコルとした場合の例を説明したが、モビリティプロトコルがMobile IPv6 であっても、MOBIKEであっても、その他のプロトコルであってもよい。
【０２４０】
（第３の実施形態）本発明の第３の実施形態に係る通信システムは図１１に示す上記第２の実施形態に係る通信システムと同様であるため、説明を省略する。
【０２４１】
また、本実施形態に係る端末４００は図１２に示す上記第２の実施形態に係る端末と同様の構成であるため、説明を省略する。但し、モビリティプロトコルモジュール４０２及びトンネルデバイスモジュール４０４に搭載される機能は上記第２の実施形態と異なる。
【０２４２】
モビリティプロトコルモジュール４０２は、Mobile IPv4のメッセージを作成または処理するモジュールであり、Registration Requestメッセージを生成してネットワークスタック４０１へ出力し、また、ネットワークスタック４０１からRegistration Replyメッセージを受信して処理する。
【０２４３】
モビリティプロトコルモジュール４０２はまた、トンネルデバイスモジュール４０４にトンネルの設定や削除を通知する。
【０２４４】
モビリティプロトコルモジュール４０２は、ハンドオーバ前に使用していたトンネルの設定を用いてトンネルデバイスモジュール４０４が作成した最後のパケットの内容を、トンネルデバイスモジュール４０４から取得し、前記パケットの特徴を示す通知メッセージを生成し、ネットワークスタック４０１へ出力するという機能を搭載する必要がない。
【０２４５】
トンネルデバイスモジュール４０４は、ネットワークスタック４０１から受け取ったパケットに記憶部４０６に格納されたトンネルの設定に従った外側ＩＰヘッダを付与してネットワークスタック４０１へ出力する。
【０２４６】
トンネルデバイスモジュール４０４はまた、モビリティプロトコルモジュール４０２から通知されたトンネルの設定を記憶部４０６に格納し、モビリティプロトコルモジュール４０２から通知されたトンネルの設定を記憶部４０６から削除する。
【０２４７】
トンネルデバイスモジュール４０４は、最後に外側ＩＰヘッダを付与しネットワークスタック４０１へ出力したパケットの内容を記憶部４０６に格納し、以前記憶部４０６に格納していたパケットのうち送信元ＩＰアドレスと送信先ＩＰアドレスが一致するパケットの内容を削除し、記憶部４０６に格納したパケットの内容をモビリティプロトコルモジュール４０２へ出力する機能を搭載しなくてもよい。
【０２４８】
本実施形態に係るホームエージェント５００は図１３に示す上記第２の実施形態に係るホームエージェントと同様の構成であるため、説明を省略する。但し、モビリティプロトコルモジュール５０２、トンネルデバイスモジュール５０３、及びパケット監視モジュール５０４に搭載される機能は上記第２の実施形態と異なる。
【０２４９】
モビリティプロトコルモジュール５０２は、Mobile IPv4のメッセージを作成または処理するモジュールであり、ネットワークスタック５０１からRegistration Requestメッセージを受信して処理し、またRegistration Replyメッセージを生成してネットワークスタック５０１へ出力する。
【０２５０】
モビリティプロトコルモジュール５０２はまた、トンネルデバイスモジュール５０３にトンネルの設定や削除を通知する。
【０２５１】
モビリティプロトコルモジュール５０２はまた、ハンドオーバ後に使用するネットワーク経由で端末４００から受信した最初のパケットのトンネリングプロトコルヘッダに指定されたシーケンスナンバーをパケット監視モジュール５０４から受信する。
【０２５２】
モビリティプロトコルモジュール５０２はまた、前記シーケンスナンバーから１を引いた値、および端末４００がハンドオーバ前に使用していたネットワークインタフェースのＩＰアドレスをパケット監視モジュール５０４へ出力する。
【０２５３】
モビリティプロトコルモジュール５０２は、通知メッセージをネットワークスタック５０１から受信し、前記通知メッセージに記されたパケットの特徴をパケット監視モジュール５０４に通知する機能を搭載しなくてもよい。
【０２５４】
トンネルデバイスモジュール５０３は、モビリティプロトコルモジュール５０２から受け取ったトンネルの設定を記憶部５０５に格納する。
【０２５５】
トンネルデバイスモジュール５０３はまた、モビリティプロトコルモジュール５０２からトンネルの設定を削除する通知を受けた場合に記憶部５０５から該当するトンネルの設定を削除する。
【０２５６】
トンネルデバイスモジュール５０３はまた、ネットワークスタック５０１から渡された、トンネリングされたパケットが、記憶部に格納されたトンネルの設定に従っているか否かを検査し、外側ＩＰヘッダおよびトンネリングプロトコルヘッダを削除してネットワークスタック５０１へ出力する。
【０２５７】
パケット監視モジュール５０４は、モビリティプロトコルモジュール５０２から渡されたプロトコル番号とＩＰアドレスの組を記憶部５０５に格納する。
【０２５８】
パケット監視モジュール５０４はまた、モビリティプロトコルモジュール５０２から前記の組を削除するよう通知を受けたときに、前記の組を記憶部５０５から削除する。
【０２５９】
パケット監視モジュール５０４はまた、前記の組のプロトコル番号に該当するトランスポートプロトコルヘッダを含み、かつ前記の組のＩＰアドレスが送信元ＩＰアドレスと一致するパケットを検知したときに、モビリティプロトコルモジュール５０２へ通知する。
【０２６０】
パケット監視モジュール５０４はまた、ハンドオーバ後にホームエージェント５００が使用するネットワークを介して端末４００から最初に受信したパケットのトンネリングプロトコルヘッダに含まれるシーケンスナンバーを、モビリティプロトコルモジュール５０２へ出力する。
【０２６１】
パケット監視モジュール５０４はまた、モビリティプロトコルモジュール５０２から受け取ったシーケンスナンバーを記憶部５０５に格納する。
【０２６２】
パケット監視モジュール５０４はまた、ネットワークスタック５０１から受け取ったパケットのトンネリングプロトコルヘッダに含まれるシーケンスナンバーが、記憶部５０５に格納されたシーケンスナンバーに一致するか否かを判定し、一致した場合はモビリティプロトコルモジュール５０２に通知し、前記の判定後前記パケットをネットワークスタック５０１へ出力する。
【０２６３】
このような通信システムにおけるハンドオーバ時の処理フローを図１６を用いて説明する。本実施形態では使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替える場合について説明する。また、端末４００とホームエージェント５００はトンネリングプロトコルとしてGRE（Generic Routing Encapsulation）を使用するものとする。
【０２６４】
（ステップＳ１６００）端末４００とホームエージェント５００はセルラーネットワークを介してトンネルを確立済みであり、端末４００はホームエージェント５００を介してパケットを通信相手機器６００へ送信している。
【０２６５】
端末４００は以下のような処理を行っている。ここで、端末４００の記憶部４０６には、セルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１及びホームエージェント５００のＩＰアドレスＨＡの組が、１つのトンネルの設定として記憶されている。
【０２６６】
端末４００のアプリケーションモジュール４０３は、送信データを生成し、ネットワークスタック４０１へ出力する。
【０２６７】
ネットワークスタック４０１はアプリケーションモジュール４０３から受け取った送信データにトランスポートヘッダとＩＰヘッダを付与してパケットを作成し、トンネルデバイスモジュール４０４へ出力する。
【０２６８】
トンネルデバイスモジュール４０４は、記憶部４０６からＩＰアドレスＣｏＡ１およびＩＰアドレスＨＡの組をトンネルの設定として取得し、取得したトンネルの設定に従って
Protocol typeフィールドが０８００であるＧＲＥヘッダおよび外側ＩＰヘッダを付与し、図１７に示すようなパケットを作成する。
【０２６９】
但し、ＧＲＥヘッダのシーケンスナンバーフィールド（図示せず）には、直前にトンネリングして送信した、ホームエージェント５００宛のパケットのＧＲＥヘッダ中のシーケンスナンバーフィールドの値に１を足した値を指定する。
【０２７０】
直前に送信したパケット中のシーケンスナンバーフィールドの値が１６進数で0xffffffffの場合は、GREヘッダのシーケンスナンバーフィールドに１を指定する。
【０２７１】
そして、トンネルデバイスモジュール４０４は、パケットをネットワークスタック４０１へ出力する。
【０２７２】
ネットワークスタック４０１はトンネルデバイスモジュール４０４から受け取ったトンネリングされたパケットをセルラーネットワーク用インタフェース４１０へ出力する。セルラーネットワーク用インタフェース４１０は、ネットワークスタック４０１から受け取ったパケットをホームエージェント５００へ送信する。
【０２７３】
端末４００から送信されたパケットを受信したホームエージェント５００は以下のような処理を行う。ここで、ホームエージェント５００の記憶部５０５には、端末４００のセルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１、端末４００のＩＰアドレスＨｏＡ、及びホームエージェント５００のＩＰアドレスＨＡの組が、１つのトンネルの設定として記憶されている。
【０２７４】
ホームエージェント５００のネットワークインタフェース５１０は、端末４００から図１７に示すようなパケットを受信すると、受信したパケットをネットワークスタック５０１へ出力する。
【０２７５】
ネットワークスタック５０１は、パケットをパケット監視モジュール５０４へ出力する。
【０２７６】
パケット監視モジュール５０４は、記憶部５０５からパケットの特徴を示すデータを
取得し、そのデータにパケットが該当するか否かを判定する。ステップＳ１６００では、記憶部５０５にパケットの特徴を示すデータは何も格納されていないため、該当しないという判定結果になる。
【０２７７】
該当しない場合、パケット監視モジュール５０４はパケットをネットワークスタック５０１へ出力する。該当するという判定結果の場合の処理は、ステップＳ１６０６及びＳ１６０７で説明する。
【０２７８】
ネットワークスタック５０１は、パケット監視モジュール５０４から受け取ったパケットがGREでトンネリングされたパケットであることから、パケットをトンネルデバイスモジュール５０３へ出力する。
【０２７９】
トンネルデバイスモジュール５０３は、記憶部５０５からＩＰアドレスＣｏＡ１を含むトンネルの設定を取得する。前述のとおり、記憶部５０５にはＩＰアドレスＣｏＡ１及びＩＰアドレスＨｏＡの組がトンネルの設定として記憶されているため、トンネルデバイスモジュール５０３はＩＰアドレスＨｏＡを取得する。
【０２８０】
トンネルデバイスモジュールは、取得したＩＰアドレスＨｏＡとパケットの内側ＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、パケットの外側ＩＰヘッダおよびGREヘッダを削除し、図５に示すようなパケットを作成し、ネットワークスタック５０１へ出力する。
【０２８１】
前記の比較でアドレスが一致しない場合、トンネルデバイスモジュール５０３はパケットを破棄する。
【０２８２】
トンネルデバイスモジュール５０３からパケットを受信したネットワークスタック５０１は、パケットの送信先ＩＰアドレスがホームエージェント５００に割り当てられたＩＰアドレスＨＡではないことから他の機器へ転送すべきパケットであることを検知し、パケットをネットワークインタフェース５１０へ出力する。
【０２８３】
ネットワークインタフェース５１０は、受け取ったパケットを通信相手機器６００へ送信する。
【０２８４】
（ステップＳ１６０１）端末４００が使用するネットワークをセルラーネットワークから無線ＬＡＮへ切り替えることを決定する。
【０２８５】
ハンドオーバトリガモジュール４０５は、常時セルラーネットワーク用インタフェース４１０または無線ＬＡＮ用インタフェース４２０からセルラーネットワークや無線ＬＡＮにおける通信品質に関する情報を取得している。
【０２８６】
そして、ハンドオーバトリガモジュール４０５は、前記情報やその他の情報が一定の条件を満たすと、ハンドオーバを開始することを決定し、モビリティプロトコルモジュール４０２に通知する。
【０２８７】
（ステップＳ１６０２）端末４００の無線ＬＡＮ用インタフェース４２０からホームエージェントへRegistration Requestメッセージが送信される。端末４００及びホームエージェント５００で行われる処理は、上記第２の実施形態におけるステップＳ１４０２と同様である。
【０２８８】
（ステップＳ１６０３）ホームエージェント５００から端末４００の無線ＬＡＮ用インタフェース４２０へRegistration Replyメッセージが送信される。端末４００及びホームエージェント５００で行われる処理は、上記第２の実施形態におけるステップＳ１４０３と同様である。
【０２８９】
（ステップＳ１６０４）ホームエージェント５００がRegistration Requestメッセージの内容を受け入れる場合、ホームエージェントは上記第２の実施形態におけるステップＳ１４０４と同様の処理を行うことで、新規のトンネルを設定する。
【０２９０】
また、ホームエージェント５００のモビリティプロトコルモジュール５０２は、GREのプロトコル番号４７および送信元ＩＰアドレスＣｏＡ２の組を、検知対象のパケットの特徴を示すデータとしてパケット監視モジュール５０４へ出力する。
【０２９１】
パケット監視モジュール５０４は、GREプロトコルのプロトコル番号４７及びＩＰアドレスＣｏＡ２を記憶部５０５に格納する。
【０２９２】
（ステップＳ１６０５）端末４００は、上記第２の実施形態におけるステップＳ１４０５と同様の処理を行うことで、新たなトンネルを設定する。
【０２９３】
（ステップＳ１６０６）端末４００は、無線ＬＡＮとホームエージェント５００を介してパケットを通信相手機器６００へ送信する。
【０２９４】
端末４００のアプリケーションモジュール４０３は、送信データを生成し、ネットワークスタック４０１へ出力する。
【０２９５】
ネットワークスタック４０１はアプリケーションモジュール４０３から受け取った送信データにトランスポートヘッダとＩＰヘッダを付与し、トンネルデバイスモジュール４０４へ出力する。
【０２９６】
トンネルデバイスモジュール４０４は、記憶部４０６から無線ＬＡＮ用インタフェース４２０のＩＰアドレスＣｏＡ２およびホームエージェント５００のＩＰアドレスＨＡの組をトンネルの設定として取得する。
【０２９７】
そして、トンネルデバイスモジュール４０４は、取得したトンネルの設定に従い、ネットワークスタック４０１から受け取ったパケットに、Protocol typeフィールドが０８００であるGREヘッダおよび外側ＩＰヘッダを付与し、図１８に示すようなパケットを作成する。
【０２９８】
但し、GREヘッダのシーケンスナンバーフィールドには、直前にトンネリングしてホームエージェント５００へ送信したパケットのGREヘッダ中のシーケンスナンバーフィールドの値に１を足した値を指定する。
【０２９９】
直前に送信したパケット中のシーケンスナンバーフィールドの値が１６進数で0xffffffffである場合は、GREヘッダのシーケンスナンバーフィールドに１を指定する。
【０３００】
トンネルデバイスモジュール４０４は、生成したパケットをネットワークスタック４０１へ出力する。
【０３０１】
ネットワークスタック４０１は、トンネルデバイスモジュール４０４から受け取った、
トンネリングされたパケットを無線ＬＡＮ用インタフェース４２０へ出力する。無線ＬＡＮ用インタフェース４２０は、ネットワークスタック４０１から受け取ったパケットをホームエージェント５００へ送信する。
【０３０２】
ホームエージェント５００は、端末４００から無線ＬＡＮ又はセルラーネットワークを介してトンネリングされたパケットを受信すると、以下のような処理を行う。
【０３０３】
ホームエージェント５００のネットワークインタフェース５１０は、受信したパケットをネットワークスタック５０１へ出力する。
【０３０４】
ネットワークスタック５０１は、前記パケットをパケット監視モジュール５０４へ出力する。
【０３０５】
パケット監視モジュール５０４は、記憶部５０５に検知対象のパケットの特徴を示すデータがあれば取得する。ステップＳ１６０４において、記憶部５０５にはGREのプロトコル番号４７、及び送信元ＩＰアドレスＣｏＡ２の組が前記データとして格納されているため、パケット監視モジュール５０４は前記の組を取得することになる。
【０３０６】
パケット監視モジュール５０４は、前記パケットが取得したデータに該当するか否かを判定する。
【０３０７】
前記パケットがセルラーネットワークを介して端末４００から受信したパケットである場合、トランスポートヘッダはGREであるが、送信元ＩＰアドレスがＣｏＡ１であるため、取得したデータに該当しない。該当しない場合、パケット監視モジュール５０４は前記パケットをネットワークスタック５０１へ出力する。
【０３０８】
一方、前記パケットが端末４００の無線ＬＡＮ用インタフェース４２０から無線ＬＡＮを介して初めて受信した、トンネリングされたパケットである場合、前記パケットは取得したデータに該当する。該当する場合、パケット監視モジュール５０４は該当するパケットのGREプロトコルヘッダに含まれるシーケンスナンバーをモビリティプロトコルモジュール５０２に通知し、ネットワークスタック５０１へ前記パケットを出力する。
【０３０９】
ネットワークスタック５０１は、パケット監視モジュール５０３から受け取った前記パケットがGREでトンネリングされたパケットであることから、前記パケットをトンネルデバイスモジュール５０３へ出力する。
【０３１０】
トンネルデバイスモジュール５０３は、記憶部５０５から前記パケットの送信元ＩＰアドレスを含むトンネルの設定を取得する。前述のとおり、記憶部５０５にはＩＰアドレスＣｏＡ１及びＩＰアドレスＨｏＡの組と、ＩＰアドレスＣｏＡ２及びＩＰアドレスＨｏＡの組が、トンネルの設定として記憶されているため、トンネルデバイスモジュール５０３はＩＰアドレスＨｏＡを取得する。
【０３１１】
トンネルデバイスモジュールは、取得したＩＰアドレスＨｏＡと前記パケットの内側ＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、外側ＩＰヘッダおよびGREヘッダを削除して、図５に示すようなパケットを作成し、ネットワークスタック５０１へ出力する。
【０３１２】
一方、前記の比較でＩＰアドレスが一致しない場合、トンネルデバイスモジュール５０３は前記パケットを破棄する。
【０３１３】
トンネルデバイスモジュール５０３からパケットを受信したネットワークスタック５０１は、パケットの送信先ＩＰアドレスがホームエージェント５００に割り当てられたＩＰアドレスＨＡではないことから他の機器へ転送すべきパケットであることを検知し、パケットをネットワークインタフェース５１０へ出力する。
【０３１４】
ネットワークスタック５０１からパケットを受け取ったネットワークインタフェース５１０は、パケットを通信相手機器６００へ送信する。
【０３１５】
なお、一般に、無線ＬＡＮにおけるネットワーク遅延は、セルラーネットワークにおけるネットワーク遅延よりも小さい。従って、無線ＬＡＮを介して端末４００から受信する最初のトンネリングされたパケットは、セルラーネットワークを介して端末４００から受信する最後のトンネリングされたパケットよりも先にホームエージェント５００に到着する。
【０３１６】
（ステップＳ１６０７）ホームエージェント５００のモビリティプロトコル５０２がステップＳ１６０６においてシーケンスナンバーを受信すると、ホームエージェント５００は以下の処理を行うことで、端末４００からセルラーネットワークを介して最後に送信されたパケットの検知を開始する。
【０３１７】
ホームエージェント５００のモビリティプロトコルモジュール５０２は、パケット監視モジュール５０４に、GREプロトコル番号４７および送信元ＩＰアドレスＣｏＡ２の組を出力することで、ステップＳ１６０４において記憶部５０５に格納したパケットの特徴を表すデータを削除するよう、通知する。
【０３１８】
パケット監視モジュール５０４は、GREプロトコル番号４７および送信元ＩＰアドレスＣｏＡ２の組を記憶部５０５から削除する。
【０３１９】
モビリティプロトコルモジュール５０２は、ステップＳ１６０６でパケット監視モジュール５０４から受け取ったシーケンスナンバーから１を引いた値と、GREのプロトコル番号４７をパケット監視モジュール５０４に通知する。
【０３２０】
なお、前記シーケンスナンバーの値が１である場合は１６進数0xffffffffとGREのプロトコル番号４７を通知する。
【０３２１】
そして、パケット監視モジュール５０４は、通知されたシーケンスナンバーとGREのプロトコル番号４７の組を検知対象のパケットの特徴として記憶部５０５に格納する。なお、以降の説明において、パケット監視モジュール５０４が記憶部５０５に格納したシーケンスナンバーをＳとする。このシーケンスナンバーＳはセルラーネットワークを介して端末４００からトンネリングされた最後のパケットのシーケンスナンバー（最終シーケンス番号）を示す。
【０３２２】
（ステップＳ１６０８）セルラーネットワークを介して端末４００からトンネリングされた最後のパケットを受信すると、ホームエージェント５００は以下の処理を行う。
【０３２３】
ホームエージェント５００のネットワークインタフェース５１０は、受信パケットをネットワークスタック５０１へ出力する。
【０３２４】
次に、ネットワークスタック５０１は、前記パケットをパケット監視モジュール５０４へ出力する。
【０３２５】
次に、パケット監視モジュール５０４は、記憶部５０５に検知対象のパケットの特徴を示すデータがあれば取得する。ステップＳ１６０７において、記憶部５０５にはGREのプロトコル番号４７と、シーケンスナンバーＳが前記データとして格納されている。従って、パケット監視モジュール５０４は前記の組を取得することになる。
【０３２６】
パケット監視モジュール５０４は、ネットワークスタック５０１から受け取ったパケットが前記の組に該当するか否かを判定する。このパケットはセルラーネットワークを介して端末４００からトンネリングされた最後のパケットであるため、前記の組に該当し、パケット監視モジュール５０４は該当パケットを検知したことをモビリティプロトコルモジュール５０２に通知する。
【０３２７】
そして、パケット監視モジュール５０４はこのパケットをネットワークスタック５０１へ出力する。
【０３２８】
ネットワークスタック５０１は、パケット監視モジュール５０４から受け取ったパケットがGREでトンネリングされたパケットであることから、パケットをトンネルデバイスモジュール５０３へ出力する。
【０３２９】
トンネルデバイスモジュール５０３は、記憶部５０５からパケットの送信元ＩＰアドレスＣｏＡ１を含むトンネルの設定を取得する。前述のとおり、記憶部にはＩＰアドレスCＣｏＡ１とＩＰアドレスＨｏＡの組が、トンネルの設定として記憶されているため、トンネルデバイスモジュール５０３はＩＰアドレスＨｏＡを取得する。
【０３３０】
トンネルデバイスモジュール５０３は、取得したＩＰアドレスＨｏＡと前記パケットの内側ＩＰヘッダの送信元ＩＰアドレスを比較し、一致した場合、前記パケットの外側ＩＰヘッダおよびGREヘッダを削除し、図５に示すようなパケットを作成し、ネットワークスタック５０１へ出力する。
【０３３１】
一方、前記の比較でＩＰアドレスが一致しない場合、トンネルデバイスモジュール５０３は前記パケットを破棄する。
【０３３２】
トンネルデバイスモジュール５０３からパケットを受け取ったネットワークスタック５０１は、パケットの送信先ＩＰアドレスがホームエージェント５００に割り当てられたＩＰアドレスではないことから他の機器へ転送すべきパケットであることを検知し、このパケットをネットワークインタフェース５０１へ出力する。
【０３３３】
ネットワークインタフェース５１０は、ネットワークスタック５０１から受け取ったパケットを通信相手機器６００へ送信する。
【０３３４】
ステップＳ１６０８においてホームエージェント５００が無線ＬＡＮを介してトンネリングされたパケットを受信した場合は、記憶部５０５に格納されたシーケンスナンバーＳが前記パケットのGREプロトコルヘッダに含まれるシーケンスナンバーに一致しない。
【０３３５】
従って、パケット監視モジュール５０４がモビリティプロトコルモジュール５０２に通知しないこと以外は、上述した処理と同様の処理が行われる。
【０３３６】
このような処理により、ホームエージェント５００は、ハンドオーバ前に使用していたネットワークを介して受信した最後のトンネリングされたパケットを検知することが可能となる。
【０３３７】
（ステップＳ１６０９）端末４００が、ハンドオーバ前に使用していたトンネルの設定を削除する。
【０３３８】
まず、端末４００のモビリティプロトコルモジュール４０２が、セルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１及びホームエージェント５００のＩＰアドレスＨＡの組をトンネルデバイスモジュール４０４に通知する。
【０３３９】
そして、トンネルデバイスモジュール４０４が、記憶部４０６からＩＰアドレスＣｏＡ１及びＨＡの組で表されるトンネルの設定を削除する。
【０３４０】
この処理は新規トンネルの設定（ステップＳ１６０５）後の任意のタイミングで行われる。
【０３４１】
（ステップＳ１６１０）ホームエージェント５００のモビリティプロトコルモジュール５０２がパケット監視モジュール５０４から通知を受けると、ホームエージェント５００は以下のような処理を行うことでハンドオーバ前に使用していたトンネルの設定を削除する。
【０３４２】
ホームエージェント５００のモビリティプロトコルモジュール５０２は、パケット監視モジュール５０４に、シーケンスナンバーＳ及びプロトコル番号４７の組を出力することで、ステップＳ１６０７において記憶部５０５に格納したパケットの特徴を表すデータを削除するよう、通知する。
【０３４３】
パケット監視モジュール５０４は、GREプロトコル番号47および送信元IPアドレスCoA2の組を記憶部５０５から削除する。
【０３４４】
そして、モビリティプロトコルモジュール５０２は、端末４００のセルラーネットワーク用インタフェース４１０に割り当てられたＩＰアドレスＣｏＡ１、端末４００のＩＰアドレスＨｏＡ、及びホームエージェント５００のＩＰアドレスＨＡの組をトンネルデバイスモジュール５０４に通知する。
【０３４５】
次に、トンネルデバイスモジュール５０４は、記憶部５０５からＣｏＡ１、ＨｏＡ、及びＨＡの組で表されるトンネルの設定を削除する。
【０３４６】
このような処理を行うことで、ホームエージェント５００が図１７に示すようなパケットを受信した場合、トンネルデバイスモジュール５０３は、前記パケットの外側ＩＰヘッダの送信元ＩＰアドレスと送信先ＩＰアドレスに一致するトンネルの設定が、記憶部５０５に存在しないことから、前記パケットが不正なパケットであると判断し、前記パケットを破棄できるようになる。
【０３４７】
このように、本実施形態では、端末４００は、シーケンスナンバーをトンネル用のヘッダに記すトンネリングプロトコルでホームエージェント５００を介して通信相手機器６００にパケットを送信する。また、ホームエージェント５００は、ハンドオーバ後に使用するネットワーク経由で端末４００から受信した最初のパケットの内容から、ハンドオーバ前に使用していたネットワーク経由で受信する最後のパケットの特徴を予測し、ハンドオーバ前に利用していたネットワーク経由で端末から受信したパケットが予測した特徴に一致した時点を、ハンドオーバ前に使用していたトンネルを削除可能となる時点として検知する。
【０３４８】
従って、ホームエージェント５００は、ハンドオーバ前に使用していたトンネルを介して端末から全てのパケットを受信し終えた時点で即時に前記トンネルを削除可能となり、メモリリソースを効率的に使用することができる。
【０３４９】
また、本実施形態に係る端末４００およびホームエージェント５００は、Mobile IPv4の仕様に適合しない特殊なメッセージを送受信する機能を保持する必要がなく、ホームエージェント５００が端末４００に対し相互接続性を担保できる。
【０３５０】
また、上記第３の実施形態において、端末４００およびホームエージェント５００のトンネルデバイスモジュール４０４、５０３は、GREプロトコルの代わりにシーケンスナンバーをプロトコルヘッダに記載可能な例えばESPやAHといったトンネリングプロトコルを利用してもよい。
【０３５１】
また、上記第３の実施形態においては、記憶部５０５に格納されたシーケンスナンバーＳから決められた範囲内のシーケンスナンバーを含むパケット全てをホームエージェント５００が受信し終えた時点を、ハンドオーバ前に使用していたトンネルを削除可能となる時点として検知してもよい。
【０３５２】
この場合、ハンドオーバ前に使用していたネットワーク上で、パケットの転送順が入れ替わっても、ホームエージェント５００は、ハンドオーバ前に使用していたトンネルを削除可能となる時点を検知可能となる。なお、前記範囲は一定である必要はなく、ハンドオーバのたびに変化させてもよい。
【０３５３】
また、上記第３の実施形態においては、Mobile IPv4をモビリティプロトコルとした場合の例を説明したが、モビリティプロトコルがMobile IPv6 であっても、MOBIKEであっても、その他のプロトコルであってもよい。モビリティプロトコルがMobile IPv4でない場合は、Mobile IPv4のRegistration RequestおよびRegistration Replyの代わりにMobile IPv6やMOBIKEの仕様、その他のモビリティプロトコルの仕様に規定されている、ハンドオーバに必要なメッセージを端末とホームエージェントが送受信する。
【０３５４】
なお、本発明の第１〜第３の実施形態においては、セルラーネットワーク用インタフェース１１０、４１０および無線ＬＡＮ用インタフェース１２０、４２０は、例えば有線のEthernetに対応したインタフェースでも、802.16、802.16eに対応したインタフェースでも、Bluetoothや赤外線通信に対応したインタフェースであってもよい。
【０３５５】
また、本発明の第１の実施形態においては、セルラーネットワーク用インタフェース１１０および無線ＬＡＮ用インタフェース１２０の代わりに、異なるアクセスネットワークに接続される、同一プロトコルに対応した複数のネットワークインタフェースを搭載している端末であってもよい。
【０３５６】
さらに、本発明の第１〜第３の実施形態においては、端末１００、４００は、２つ以上のネットワークインタフェースを搭載していてもよく、端末に搭載されたネットワークインタフェースのうち、２つのネットワークインタフェースを用いて、通信相手機器との通信に使用するネットワークを切替えるために本発明を適用可能である。
【０３５７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０３５８】
【図１】本発明の第１の実施形態に係る通信システムの概略構成図である。
【図２】同第１の実施形態に係るホームエージェントの概略構成図である。
【図３】同第１の実施形態に係る通信システムにおけるハンドオーバ時の処理フローである。
【図４】端末から送信されるパケットの構成例である。
【図５】ホームエージェントから通信相手機器へ送信されるパケットの構成例である。
【図６】Registration Requestメッセージの一例を示す図である。
【図７】Registration Replyメッセージの一例を示す図である。
【図８】端末から送信されるパケットの構成例である。
【図９】ICMP Echo Requestメッセージの一例を示す図である。
【図１０】ICMP Echo Replyメッセージの一例を示す図である。
【図１１】本発明の第２の実施形態に係る通信システムの概略構成図である。
【図１２】同第２の実施形態に係る端末の概略構成図である。
【図１３】同第２の実施形態に係るホームエージェントの概略構成図である。
【図１４】同第２の実施形態に係る通信システムにおけるハンドオーバ時の処理フローである。
【図１５】通知メッセージの一例を示す図である。
【図１６】本発明の第３の実施形態に係る通信システムにおけるハンドオーバ時の処理フローである。
【図１７】端末から送信されるパケットの構成例である。
【図１８】端末から送信されるパケットの構成例である。
【符号の説明】
【０３５９】
１０  セルラー基地局
２０  無線ＬＡＮ基地局
１００  端末
１１０  セルラーネットワーク用インタフェース
１２０  無線ＬＡＮ用インタフェース
２００  ホームエージェント
３００  通信相手機器
【図１】
2010050900.tif 000003
【図２】
2010050900.tif 000004
【図３】
2010050900.tif 000005
【図４】
2010050900.tif 000006
【図５】
2010050900.tif 000007
【図６】
2010050900.tif 000008
【図７】
2010050900.tif 000009
【図８】
2010050900.tif 000010
【図９】
2010050900.tif 000011
【図１０】
2010050900.tif 000012
【図１１】
2010050900.tif 000013
【図１２】
2010050900.tif 000014
【図１３】
2010050900.tif 000015
【図１４】
2010050900.tif 000016
【図１５】
2010050900.tif 000017
【図１６】
2010050900.tif 000018
【図１７】
2010050900.tif 000019
【図１８】
2010050900.tif 000020