以下、本発明の実施の形態を図面に基づいて説明する。
(第1の実施形態)図1に本発明の第1の実施形態に係る通信システムの概略構成を示す。端末100はインターネット上の通信相手機器300と通信を行う。端末100はセルラーネットワーク用インタフェース110を備え、セルラー基地局10を介してセルラーネットワークに接続できる。また、端末100は無線LAN用インタフェース120を備え、無線LAN基地局20を介して無線LANに接続できる。
ホームエージェント200は端末100に移動機能を提供する機器である。ホームエージェント200は、IP-in-IPトンネリングプロトコルを利用して端末100との間にセルラーネットワーク及び/又は無線LAN経由のトンネルを確立し、そのトンネルを利用して通信相手機器300と端末100間の通信パケットを中継する。
ここで、端末100のセルラーネットワーク用インタフェース110、無線LAN用インタフェース120、ホームエージェント200、通信相手機器300に割り当てられるIPアドレスは、それぞれCoA1、CoA2、HA、CNとする。さらに、端末100にはIPアドレスHoAが割り当てられるとする。ただし、インターネット上のルータがパケットを転送するために解釈するIPヘッダ中の宛先アドレスがHoAであるパケットは全てホームエージェント200に受信されるように、IPアドレスHoAは選ばれる。
図2に端末100の概略構成を示す。端末100は、ネットワークスタック101、モビリティプロトコルモジュール102、アプリケーションモジュール103、トンネルデバイスモジュール104、ハンドオーバトリガモジュール105、記憶部106、セルラーネットワーク用インタフェース110、及び無線LAN用インタフェース120を有する。
ネットワークスタック101は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポート
プロトコルやIPv4、IPv6などのネットワークプロトコル処理を行う。ネットワークスタック101は、セルラーネットワーク用インタフェース110と無線LAN用インタフェース120から受信した、IP-in-IPプロトコルによりトンネリングされたパケットを、トンネルデバイスモジュール104へ出力する。
ネットワークスタック101はまた、トンネルデバイスモジュール104から受信したパケットのアプリケーションデータをアプリケーションモジュール103へ出力する。ネットワークスタック101はまた、セルラーネットワーク用インタフェース110と無線LAN用インタフェース120から受信した、Registration ReplyメッセージのIPヘッダ、UDPヘッダ以外のデータ部分を、モビリティプロトコルモジュール102へ出力する。
ネットワークスタック101はまた、モビリティプロトコルモジュール102から受信したRegistration RequestメッセージにUDPヘッダとIPヘッダを付与し、セルラーネットワーク用インタフェース110または無線LAN用インタフェース120へ出力する。
モビリティプロトコルモジュール102は、Mobile IPv4のメッセージを作成または処理するモジュールであり、Registration Requestメッセージを生成してネットワークスタック101へ出力する。また、モビリティプロトコルモジュール102は、ネットワークスタック101からRegistration Replyメッセージを受信して処理する。
Registration Requestメッセージはネットワークの切り替え(ハンドオーバ)を要求する旨が記されたメッセージ、Registration Replyメッセージはネットワーク切り替えの可否が記されたメッセージであり、詳しくは後述する。
モビリティプロトコルモジュール102はまた、ICMP Echo Requestメッセージを生成してネットワークスタック101へ出力する。モビリティプロトコルモジュール102はまた、ネットワークスタック101からICMP Echo Replyメッセージを受信して処理する。ICMP Echo Requestメッセージ、ICMP Echo Replyメッセージについては後述する。
アプリケーションモジュール103は、ネットワークスタック101から受信したアプリケーションデータを加工または解析する。また、アプリケーションモジュール103は、アプリケーションデータをネットワークスタック101へ送信する。
トンネルデバイスモジュール104は、ネットワークスタック101から受け取ったパケットにIPヘッダを付与して、ネットワークスタック101を介してセルラーネットワーク用インタフェース110又は無線LAN用インタフェース120に渡し、前記パケットのトンネリングを行う。
ハンドオーバトリガモジュール105は、ハンドオーバを開始する契機を決定する。例えば、ハンドオーバトリガモジュール105は、セルラーネットワーク用インタフェース110または無線LAN用インタフェース120から、セルラーネットワークや無線LANにおける通信品質に関する情報(電波の受信強度等)を取得し、前記情報等に基づいてハンドオーバを開始する契機を決定し、モビリティプロトコルモジュール102に通知する。
記憶部106は、トンネルの設定を記憶する。
セルラーネットワーク用インタフェース110は、例えばCDMAや、HSDPA、PHSといった
セルラー系の通信プロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック101に出力する。また、セルラーネットワーク用インタフェース110は、ネットワークスタック101から出力されたデータを、セルラーネットワークを介してホームエージェント200へ送信する。
無線LAN用インタフェース120は、例えば802.11bや、802.11g, 802.11a, 802.11nといった802.11系のプロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック101に出力する。また、無線LAN用インタフェース120は、ネットワークスタック101から出力されたデータを、無線LANを介してホームエージェント200へ送信する。
このような通信システムにおけるハンドオーバ時の処理フローを図3〜図5を用いて説明する。本実施形態では使用するネットワークをセルラーネットワークから無線LANへ切り替える場合について説明する。
(ステップS100)端末100が、端末100とホームエージェント200との間に確立されたセルラーネットワーク経由のトンネルを用いて、通信相手機器300から送信されたパケットを受信している。このとき、端末100の記憶部106には、セルラーネットワーク用インタフェース110のIPアドレスCoA1と、ホームエージェント200のIPアドレスHAとの組が、1つのトンネル設定として記憶されている。
ホームエージェント200がIP-in-IPトンネリングプロトコルを用いて、通信相手機器300から送信されたパケットを端末100へ転送している。
通信相手機器300から送信されるパケットの構成例を図6に示す。通信相手機器300は、端末100から直接、もしくは通信前になんらかの方法で端末100のIPアドレスHoAを取得しておき、IPヘッダH1に含まれる送信先IPアドレスをHoAに指定して、パケットを送信する。
ホームエージェント200が転送するパケットの構成例を図7に示す。ホームエージェント200は、予めMobile IPv4の仕様に従って端末100のセルラーネットワーク用インタフェース100に割り当てられたIPアドレスCoA1を取得しておく。そして、ホームエージェント200は、外側IPヘッダH2中の送信先IPアドレスをCoA1に指定し、この外側IPヘッダH2をIPヘッダH1の前に付与してパケットを端末100へ転送する。
端末100のセルラーネットワーク用インタフェース110がホームエージェント200から図7に示すようなパケットを受信すると、セルラーネットワーク用インタフェース110は受信パケットをネットワークスタック101へ出力する。
ネットワークスタック101は、パケットの外側IPヘッダH2の上位のヘッダがIPヘッダであることを検知し、このパケットをトンネルデバイスモジュール104へ出力する。
トンネルデバイスモジュール104は、記憶部106からトンネルの設定を取得し、トンネルの設定に含まれる2つのIPアドレスの組と、外側IPヘッダH2に指定された送信先IPアドレス及び送信元IPアドレスの組とを比較する。比較結果が一致すると、トンネルデバイスモジュール104はパケット正常なパケットであると判断し、外側IPヘッダH2を削除して、ネットワークスタック101へ出力する。
ネットワークスタック101は、IPヘッダH1の上位のヘッダがトランスポートプロトコルヘッダであることを検知し、トランスポートプロトコルの仕様に沿った受信処理を行った後、アプリケーションモジュール103へパケットの中のアプリケーションデータを出力する。
アプリケーションモジュール103は、ネットワークスタック101から受け取ったアプリケーションデータを用いて、所定の処理を行う。
(ステップS101)端末100のハンドオーバトリガモジュール105がハンドオーバ(セルラーネットワークから無線LANへの切り替え)を開始することを決定する。
ハンドオーバトリガモジュール105は、常時セルラーネットワーク用インタフェース110や無線LAN用インタフェース120からセルラーネットワークや無線LANにおける通信品質に関する情報を取得している。
そして、ハンドオーバトリガモジュール105は前記情報やその他の情報が一定の条件を満たすと、ハンドオーバを開始することを決定し、モビリティプロトコルモジュール102へ通知する。
なお、ハンドオーバトリガモジュール105がハンドオーバの開始を決定するアルゴリズムはどのようなものであってもよい。一例として、無線LAN基地局20からの受信電波の強度が十分強くなったことをハンドオーバの契機とする方法がある。
(ステップS102)Registration Requestメッセージが無線LANを経由して端末100からホームエージェント200へ送信される。
端末100のモビリティプロトコルモジュール102はハンドオーバトリガモジュール105から、ハンドオーバを開始する旨の通知を受けると、Registration Requestメッセージを生成する。
モビリティプロトコルモジュール102は、Registration RequestメッセージのSbitに1、Lifetimeフィールドに0以外の値、Home Addressフィールドに端末100に割り当てられたIPアドレスHoA、Home AgentフィールドにホームエージェントのIPアドレスHA、Care-of Addressフィールドに無線LAN用インタフェース120のIPアドレスCoA2を指定する。
モビリティプロトコルモジュール102により生成されたRegistration Requestメッセージがネットワークスタック101へ出力される。ネットワークスタック101は、例えば宛先ポート番号が434であるUDPヘッダをRegistration Requestメッセージに付与する。なお、このときネットワークスタック101がUDPヘッダの送信元ポート番号に指定する値をUPとする。
また、ネットワークスタック101は、送信先IPアドレスがホームエージェント200のIPアドレスHAであり、かつ送信元IPアドレスが端末100の無線LAN用インタフェースのIPアドレスCoA2であるIPヘッダをRegistration Requestメッセージに付与する。これにより、Registration Requestメッセージは図8に示すような構成となる。
ネットワークスタック101はこのようなRegistration Requestメッセージを無線LAN用インタフェース120へ出力する。無線LAN用インタフェース120は、受け取ったRegistration Requestメッセージを、無線LANを介してホームエージェント200へ送信する。
ステップS102以降のシーケンスはホームエージェント200がSimultaneous registrationに対応しているか否かにより異なる。まず、ホームエージェント200がSimultaneous registrationに対応している場合について図4を用いて説明する。
(ステップS103)Simultaneous registrationに対応しているホームエージェント200は、端末100からの要求を受け入れることを決定すると、図9に示すようなRegistration Replyメッセージを端末100の無線LAN用インタフェース120へ送信する。
Registration ReplyメッセージのCodeフィールドが0であり、Home Addressフィールドは端末100のIPアドレスHoA、Home Agentフィールドはホームエージェント200のIPアドレスHAである。
また、Registration Replyメッセージには、送信元ポート番号が434、送信先ポート番号がUPのUDPヘッダ、及び送信元IPアドレスがホームエージェント200のIPアドレスHA、送信先IPアドレスが端末100の無線LAN用インタフェース120のIPアドレスCoA2であるIPヘッダが付与されている。
(ステップS104)ホームエージェント200が、端末100のセルラーネットワーク用インタフェース110へパケットを転送するために設定していたトンネルを保持したまま、新たに無線LAN用インタフェース120へパケットを転送するためのトンネルを設定する。
(ステップS105)端末100が、無線LANを介してホームエージェント200から転送されたパケットを無線LAN用インタフェース120で受信するためのトンネルの設定を新たに記憶部106に保存する。
端末100の無線LAN用インタフェース120は、受信したRegistration Replyメッセージをネットワークスタック101へ出力する。
ネットワークスタック101は、Registration ReplyメッセージのトランスポートプロトコルヘッダがUDPであり、かつ送信先ポート番号がUPであることから、Registration Replyメッセージがモビリティプロトコルモジュール102宛であることを検知し、Registration Replyメッセージをモビリティプロトコルモジュール102へ出力する。
モビリティプロトコルモジュール102は、Registration ReplyメッセージのCodeフィールドが0であることから、ホームエージェント200がRegistration Requestメッセージの内容を受け入れ、かつSimultaneous registrationに対応していることを検知する。また、モビリティプロトコルモジュール102は無線LAN用インタフェース120のIPアドレスCoA2とホームエージェント200のIPアドレスHAの組を新たなトンネルの設定として記憶部106に格納する。
この時、セルラーネットワークを介してホームエージェント200から転送されたパケットをセルラーネットワーク用インタフェース110で受信するためのトンネルの設定は削除されず、保持されたままとなる。
(ステップS106)通信相手機器300から送信されたパケットが、セルラーネットワーク用インタフェース110及び無線LAN用インタフェース120に転送される。
ホームエージェント200は、通信相手機器300から送信された送信先IPアドレスがHoAであるパケットを受信すると、このパケットをコピーする。そして、一方のパケットに、送信先IPアドレスが端末100のセルラーネットワーク用インタフェース110のIPアドレスCoA1である外側IPヘッダを付与し(図7参照)、セルラーネットワーク用インタフェース110へ転送する。
また、ホームエージェント200は、コピーした他方のパケットに、図10に示すような、送信先IPアドレスが端末100の無線LAN用インタフェース120に割り当てられたIPアドレスCoA2である外側IPヘッダを付与し、無線LAN用インタフェース120へ転送する。
(ステップS107)端末100がRegistration Requestメッセージを生成し、ホームエージェント200へ送信する。
モビリティプロトコルモジュール102は、ステップS105でホームエージェント200がSimultaneous registrationに対応していることを検知した結果、Sbitに0、Lifetimeフィールドに0、Home Addressフィールドに端末100のIPアドレスHoA、Home Agentフィールドにホームエージェント200のIPアドレスHA、Care-of Addressフィールドに端末100のセルラーネットワーク用インタフェース110のIPアドレスCoA1を指定したRegistration Requestメッセージを生成する。
Lifetimeフィールドが0であり、Home AgentフィールドとCare-of Addressフィールドの値が異なるため、Registration Requestメッセージはハンドオーバ前のトンネルの設定を削除するよう要請することを表すものとなる。
モビリティプロトコルモジュール102は、生成したRegistration Requestメッセージをネットワークスタック101へ出力する。ネットワークスタック101は、図11に示すように、Registration Requestメッセージに宛先ポート番号が434、送信元ポート番号がUPであるUDPヘッダを付与する。
また、ネットワークスタック101は、Registration Requestメッセージに、送信先IPアドレスがホームエージェント200のIPアドレスHA、送信元IPアドレスが端末100のセルラーネットワーク用インタフェース110のIPアドレスCoA1であるIPヘッダを付与する。
そして、ネットワークスタック101はRegistration Requestメッセージをセルラーネットワーク用インタフェース110へ出力する。セルラーネットワーク用インタフェース110は、受け取ったRegistration Requestメッセージをホームエージェント200へ送信する。
端末100は、このRegistration Requestメッセージの生成・送信を、トンネルを新たに設定(ステップS105)した直後、ホームエージェント200から転送されてきたパケットの受信処理(ステップS106)と並行して行う。
(ステップS108)ホームエージェント200はハンドオーバ前のトンネルの設定を削除することを受け入れると、Registration Replyメッセージを端末100のセルラーネットワーク用インタフェース110へ送信する。このRegistration Replyメッセージは図9と同様の構成になっている。但し、IPヘッダの送信先IPアドレスはCoA1である。
(ステップS109)ホームエージェント200は、ハンドオーバ前のトンネルの設定を削除する。これ以後、通信相手機器300から送信先IPアドレスがHoAであるパケットを受信したホームエージェント200は、送信先IPアドレスが端末100の無線LAN用インタフェース120のIPアドレスCoA2である外側IPヘッダを前記パケットに付与し、端末100の無線LAN用インタフェース120のみに転送する。
(ステップS110)端末100がステップS108でホームエージェント200から送信されたRegistration Replyメッセージに基づいて、ハンドオーバ前のトンネルの設定を削除する。
端末100のセルラーネットワーク用インタフェース110は、受信したRegistration Replyメッセージをネットワークスタック101へ出力する。Registration Replyメッセージは、ホームエージェント200がステップS104以前に端末100のセルラーネットワーク用インタフェース110に最後に転送したパケットよりも後にホームエージェント200から送信されている。従って、セルラーネットワークにおいてパケットの転送順序が変わらない限り、セルラーネットワーク用インタフェース110は前記パケットよりも後にRegistration Replyメッセージを受信する。
ネットワークスタック101は、Registration ReplyメッセージのトランスポートプロトコルヘッダがUDPであり、かつ送信先ポート番号がRegistration Requestメッセージで指定された送信元ポート番号と同じであることから、Registration Replyメッセージがモビリティプロトコルモジュール102宛であることを検知し、Registration Replyメッセージをモビリティプロトコルモジュール102へ出力する。
モビリティプロトコルモジュールは、Registration ReplyメッセージのCodeフィールドが0であることから、ホームエージェント200がRegistration Requestメッセージの内容を受け入れたことを検知する。
そして、モビリティプロトコルモジュール102は、記憶部106から、セルラーネットワーク用インタフェース110のIPアドレスCoA1とホームエージェント200のIPアドレスHAの組に一致するトンネルの設定を削除する。
これにより、端末100のセルラーネットワーク用インタフェース110が図7に示すようなパケットと同等のパケットを受信した場合、端末100のトンネルデバイスモジュール104は、前記パケットの外側IPヘッダの送信元IPアドレスと送信先IPアドレスに一致するトンネルの設定が、記憶部106に存在しないことから、前記パケットが不正なパケットであると判断し、前記パケットを破棄できるようになる。
次に、ホームエージェント200がSimultaneous registrationに対応していない場合について図5を用いて説明する。ステップS113が図3に示すステップS102に続くステップとなる。
(ステップS113)Simultaneous registrationに対応していないホームエージェント200が端末100からのトンネルを設定する要求を受け入れることを決定すると、図12に示すようなRegistration Replyメッセージを端末100の無線LAN用インタフェース120へ送信する。
Registration Replyメッセージは、Codeフィールドが1であり、ホームエージェント200がSimultaneous registrationに対応していないことが示されている。Home Addressフィールドは端末100のIPアドレスHoA、Home Agentフィールドはホームエージェント200のIPアドレスHAである。また、送信元ポート番号が434、送信先ポート番号がUPであるUDPヘッダが付与される。
さらに、送信元IPアドレスがホームエージェント200のIPアドレスHA、送信先IPアドレスが端末100の無線LAN用インタフェース120に割り当てられたIPアドレスCoA2であるIPヘッダが付与される。
(ステップS114)ホームエージェント200が、無線LAN用インタフェース120へパケットを転送するように、トンネルの設定を変更する。
(ステップS115)端末100がRegistration Replyメッセージに基づいて、無線LANを介してホームエージェント200から転送されたパケットを無線LAN用インタフェース120で受信するためのトンネルの設定を新たに行う。
端末100の無線LAN用インタフェース120は、受信したRegistration Replyメッセージをネットワークスタック101へ出力する。
ネットワークスタック101は、Registration ReplyメッセージのトランスポートプロトコルヘッダがUDPでありかつ送信先ポート番号がUPであることから、Registration Replyメッセージがモビリティプロトコルモジュール102宛であることを検知し、Registration Replyメッセージをモビリティプロトコルモジュール102へ出力する。
モビリティプロトコルモジュール102は、Registration ReplyメッセージのCodeフィールドが1であることから、ホームエージェント200がRegistration Requestメッセージによりトンネルの変更を受け入れたが、Simultaneous registrationに対応しないため、ステップS114以前に設定されていたトンネルの設定が削除されることを検知する。 また、記憶部106に、無線LAN用インタフェース120のIPアドレスCoA2とホームエージェント200のIPアドレスHAとの組が新たなトンネルの設定として格納される。
(ステップS116)ホームエージェント200は、通信相手機器300から送信先IPアドレスがHoAであるパケットを受信すると、前記パケットに送信先IPアドレスが端末100の無線LAN用インタフェース120に割り当てられたIPアドレスCoA2であるIPヘッダを付与して、無線LAN用インタフェース120のみに転送する。
なお、ホームエージェント200がSimultaneous registrationに対応している場合と異なり、ホームエージェント200は、セルラーネットワーク用インタフェース110へはパケットを転送しない。
端末100は、ホームエージェント200から転送されたパケットをセルラーネットワーク用インタフェース110又は無線LAN用インタフェース120で受信すると、パケット受信処理を行う。ただし、端末100は、ホームエージェント200がSimultaneous registrationに対応している場合と異なり、重複したパケットを受信しないため、端末100のアプリケーションモジュール103とトンネルデバイスモジュール104は重複したパケットの破棄処理を行わない。
(ステップS117)端末100がホームエージェント200へICMP Echo Requestメッセージを送信する。
端末100のモビリティプロトコルモジュール102は、Registration Replyメッセージからホームエージェント200がSimultaneous registrationに対応していないことを検知しており、任意のデータからなるICMP bodyを含むICMP Echo Requestメッセージを生成する。モビリティプロトコルモジュール102は、生成したICMP Echo Requestメッセージをネットワークスタック101へ出力する。
ネットワークスタック101は、受け取ったICMP Echo Requestメッセージに、図13に示すように、送信先IPアドレスがホームエージェント200のIPアドレスHA、送信元IPアドレスが端末のセルラーネットワーク用インタフェース110のIPアドレスCoA1であるIPヘッダを付与する。そして、ネットワークスタックはICMP Echo Requestメッセージをセルラーネットワーク用インタフェース110へ出力する。
セルラーネットワーク用インタフェース110は、受け取ったICMP Echo Requestメッセージをホームエージェント200へ送信する。
端末100は、このICMP Echo Requestメッセージの生成・送信を、トンネルを新たに設定(ステップS115)した直後、ホームエージェント200から転送されてきたパケットの受信処理(ステップS116)と並行して行う。
(ステップS118)ホームエージェント200は、ICMP Echo Requestメッセージを受信すると、図14に示すようなICMP Echo Replyメッセージを端末100のセルラーネットワーク用インタフェース110へ送信する。
(ステップS119)端末100がホームエージェント200から送信されたICMP Echo Replyメッセージの受信後、ハンドオーバ前のトンネルの設定を削除する。
セルラーネットワーク用インタフェース110は受信したICMP Echo Replyメッセージをネットワークスタック101へ出力する。ICMP Echo Replyメッセージは、ホームエージェント200がステップS114以前に端末100のセルラーネットワーク用インタフェース110へ最後に転送したパケットよりも後にホームエージェント200から送信されている。従って、セルラーネットワークにおいてパケットの転送順序が変わらない限り、端末100は前記パケットよりも後にICMP Echo Replyメッセージを受信する。
ネットワークスタック101は、ICMP Echo Replyメッセージをモビリティプロトコルモジュール102へ出力する。
モビリティプロトコルモジュール102は、記憶部106から、セルラーネットワーク用インタフェース110のIPアドレスCoA1とホームエージェント200のIPアドレスHAとの組に一致するトンネルの設定を削除する。
これにより、端末100のセルラーネットワーク用インタフェース110が図7に示すようなパケットと同等のパケットを受信した場合、トンネルデバイスモジュール104は、前記パケットの外側IPヘッダの送信元IPアドレスと送信先IPアドレスに一致するトンネルの設定が、記憶部106に存在しないことから、前記パケットが不正なパケットであると判断し、破棄できるようになる。
本実施形態に係る端末100は、Sbitを1に指定したRegistration Requestメッセージをホームエージェント200に送信し、ホームエージェント200から受信したRegistration Replyメッセージ中のCodeフィールドを検査することでホームエージェント200がSimultaneous registrationに対応しているか否かを検知する。
そして、ホームエージェント200がSimultaneous registrationに対応している場合は、Registration Requestメッセージをホームエージェント200に送信した後、ハンドオーバ前に使用していたネットワーク経由でRegistration Replyメッセージを受信した時点をハンドオーバ前に使用していたトンネルが削除可能となる時点として検知する。
一方、ホームエージェント200がSimultaneous registrationに対応していない場合は、ICMP Echo Requestメッセージをホームエージェント200へ送信した後、ハンドオーバ前に使用していたネットワーク経由でICMP Echo Replyメッセージを受信した時点をハンドオーバ前に使用していたトンネルが削除可能となる時点として検知する。
このように、ホームエージェント200がSimultaneous registrationに対応しているか否かによらず、端末100は、ハンドオーバ前に使用していたトンネルを経由してホームエージェント200から転送された全てのパケットを受信し終えて前記トンネルが削除可能となる時点を検知することができる。
トンネルが削除可能となる時点を検知して、トンネルを削除することで、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースに供給される電源を速やかに切ることができるため、消費電力を低減できる。
また、ホームエージェントから転送されたパケットを、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースで受信する設定を保持するためのメモリリソースを速やかに解放することができるため、メモリリソースを有効利用できる。
上記第1の実施形態におけるICMP Echo Requestメッセージの代わりとして、Sbitに0、Lifetimeフィールドに0以外の値、Home Addressフィールドに端末100のIPアドレスHoA、Home Agentフィールドにホームエージェント200のIPアドレスHA、Care-of Addressフィールドに端末100のセルラーネットワーク用インタフェース110に割り当てられたIPアドレスCoA1、UDPヘッダの送信先ポート番号に434、送信元ポート番号にUP、送信元IPアドレスに端末100の無線LAN用インタフェース120に割り当てられたIPアドレスCoA2、送信先IPアドレスにホームエージェント200のIPアドレスHAを指定したRegistration Requestメッセージを端末100が送信してもよい。
この場合、端末100は、前記Registration Requestメッセージに対するRegistration Replyメッセージを受信した後、ハンドオーバ前のトンネルの設定を削除する。
また、ICMP Echo Requestメッセージの代わりに、ホームエージェント200が返信メッセージを送信できるようなメッセージを使用してもよい。
上記の第1の実施形態では、端末100およびホームエージェント200はモビリティプロトコルとしてMobile IPv4を搭載しているが、Mobile IPv4の代わりにMobile IPv6を搭載していてもよい。
端末100およびホームエージェント200がMobile IPv6を利用する場合、端末およびホームエージェントが標準化中のMultiple Care-of Address Registration機能に対応し、Registration Requestメッセージの代わりにMobile IPv6のBinding Updateメッセージを利用し、Registration Replyメッセージの代わりにBinding Acknowledgementメッセージを利用してもよい。
Binding Updateメッセージを端末が利用する場合、Binding Updateメッセージ中のBinding Identifier Mobility Option内のC flagフィールドを1に指定し、Binding Acknowledgmentメッセージ中のStatusフィールドを検査することで、ホームエージェントがMultiple Care-of Address Registration機能に対応していない場合にICMP Echo Requestメッセージなどのメッセージを送信してもよい。
上記の第1の実施形態では、端末100はステップS100、ステップS106、ステップS116においてトンネリングしたパケットをホームエージェント200に送信することで、通信相手機器300にパケットを送信してもよい。
また、上記第1の実施形態では、少なくともステップS102以前に、ホームエージェント200がSimultaneous registrationに対応していないことを端末100が検知するか、もしくは端末100に設定された場合は、ステップS102においてSbitを0に指定したRegistration requestメッセージをホームエージェント200に送信するようにしてもよい。
このRegistration requestメッセージに対して端末100がホームエージェント200から受信したRegistration replyメッセージ中のCodeフィールドが0である場合に、端末100はICMP Echo requestメッセージなどをステップS117において送信し、ICMP Echo replyメッセージなどをステップS118において受信した直後、ステップS119においてハンドオーバ前のトンネルの設定を削除するようにしてもよい。
また、上記第1の実施形態では、端末100はハンドオーバ前のトンネルの設定を削除後、もしくは削除する直前にハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第1の実施形態では、端末はハンドオーバ前のトンネルの設定を削除する代わりに、ハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第1の実施形態では、端末100のトンネルデバイスモジュール104は、IP-in-IPトンネリングプロトコルの代わりにGREトンネルやその他のトンネリングプロトコルを利用してもよい。
(第2の実施形態)図15に本発明の第2の実施形態に係る通信システムの概略構成を示す。端末400はインターネット上の通信相手機器600と通信を行う。端末400はセルラーネットワーク用インタフェース410を備え、セルラー基地局10を介してセルラーネットワークに接続できる。また、端末400は無線LAN用インタフェース420を備え、無線LAN基地局20を介して無線LANに接続できる。
ホームエージェント500は端末400に移動機能を提供する機器である。ホームエージェント500は、IP-in-IPトンネリングプロトコルを利用して端末400との間にセルラーネットワークまたは無線LAN経由のトンネルを確立し、そのトンネルを利用して通信相手機器600と端末400間の通信パケットを中継する。
上記第1の実施形態と同様に、端末400のセルラーネットワーク用インタフェース410、無線LAN用インタフェース420、ホームエージェント500、通信相手機器600に割り当てられるIPアドレスは、それぞれCoA1、CoA2、HA、CNとする。さらに、端末400にはIPアドレスHoAが割り当てられるとする。
図16に端末400の概略構成を示す。端末400は、ネットワークスタック401、モビリティプロトコルモジュール402、アプリケーションモジュール403、トンネルデバイスモジュール404、ハンドオーバトリガモジュール405、記憶部406、パケット監視モジュール407、セルラーネットワーク用インタフェース410、及び無線LAN用インタフェース420を有する。
ネットワークスタック401は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポート
プロトコルやIPv4、IPv6などのネットワークプロトコル処理を行うものであり、セルラーネットワーク用インタフェース410と無線LAN用インタフェース420から受信した、IP-in-IPプロトコルによりトンネリングされたパケットをパケット監視モジュール407へ出力する。
また、ネットワークスタック401はパケット監視モジュール407から受信したパケットをトンネルデバイスモジュール404へ出力する。
また、ネットワークスタック401は、トンネルデバイスモジュール404から受信したパケットのアプリケーションデータをアプリケーションモジュール403へ出力する。 また、ネットワークスタック401は、セルラーネットワーク用インタフェース410と無線LAN用インタフェースから受信したRegistration ReplyメッセージのIPヘッダ、UDPヘッダ以外のデータ部分をモビリティプロトコルモジュール402へ出力する。
また、ネットワークスタック401は、モビリティプロトコルモジュール402から受信したRegistration RequestメッセージにUDPヘッダとIPヘッダを付与し、セルラーネットワーク用インタフェース410または無線LAN用インタフェース420へ出力する。
モビリティプロトコルモジュール402は、Mobile IPv4のメッセージを作成または処理するモジュールであり、Registration Requestメッセージを生成してネットワークスタック401へ出力する。また、モビリティプロトコルモジュール402は、ネットワークスタック401からRegistration Replyメッセージを受信して、処理する。
また、モビリティプロトコルモジュール402は、ネットワークスタック401から通知メッセージを受信し、前記通知メッセージに記されたパケットの特徴をパケット監視モジュール407に通知する。
また、モビリティプロトコルモジュール402は、パケット監視モジュール407から前記特徴に該当するパケットを検知したことを示す通知を受信した場合、記憶部406に格納されたハンドオーバ前に使用していたトンネルの設定を削除する。
アプリケーションモジュール403は、ネットワークスタック401から受信したアプリケーションデータを加工または解析する。また、アプリケーションモジュール403はネットワークスタック401へアプリケーションデータを送信する。
トンネルデバイスモジュール404は、ネットワークスタック401からトンネリングされたパケットを受信し、このパケットのIPヘッダを取り除いて、ネットワークスタック401へ出力する。
ハンドオーバトリガモジュール405は、ハンドオーバを開始する契機を決定するモジュールであり、セルラーネットワーク用インタフェース410または無線LAN用インタフェース420からセルラーネットワークや無線LANにおける通信品質に関する情報を取得し、前記情報やその他の情報からハンドオーバを開始する契機を決定し、モビリティモジュール402に通知する。
記憶部406は、トンネルの設定を記憶するものである。記憶部406はまた、パケット監視モジュール407から出力されたパケットの特徴を示すデータを記憶する。
パケット監視モジュール407は、モビリティプロトコルモジュール402から出力されたパケットの特徴を示すデータを記憶部406に格納する。また、パケット監視モジュール407は、ネットワークスタック401から出力されたパケットが、記憶部406に格納されたパケットの特徴に該当するか否かを判定し、該当する場合はモビリティプロトコルモジュール402に通知し、前記パケットをネットワークスタック401へ出力する。
セルラーネットワーク用インタフェース410及び無線LAN用インタフェース420は、上記第1の実施形態におけるセルラーネットワーク用インタフェース410及び無線LAN用インタフェース420と同様であり、説明を省略する。
図17にホームエージェント500の概略構成を示す。ホームエージェント500は、ネットワークスタック501、モビリティプロトコルモジュール502、トンネルデバイスモジュール503、記憶部504、及びネットワークインタフェース510を有する。
ネットワークスタック501は、TCP、UDP、SCTP、DCCP、ICMPなどのトランスポートプロトコルやIPv4、IPv6などのネットワークプロトコル処理を行うものであり、ネットワークインタフェース510から受信したパケットをトンネルデバイスモジュール503へ出力する。
また、ネットワークスタック501は、トンネルデバイスモジュール503がIP-in-IPプロトコルでトンネリングしたパケットをネットワークインタフェース510へ出力する。
また、ネットワークスタック501は、ネットワークインタフェース510から出力されたRegistration RequestメッセージのIPヘッダ、UDPヘッダ以外のデータ部分をモビリティプロトコルモジュール502へ出力する。
また、ネットワークスタック501は、モビリティプロトコルモジュール502から出力されたRegistration Replyメッセージ及び通知メッセージに、UDPヘッダ及びIPヘッダを付与して、ネットワークインタフェース510へ出力する。
モビリティプロトコルモジュール502は、Mobile IPv4のメッセージを作成または処理するモジュールであり、ネットワークスタック501からRegistration Requestメッセージを受信して処理する。
モビリティプロトコルモジュール502は、Registration Replyメッセージを生成してネットワークスタック501へ出力し、前記Registration Requestメッセージの内容に従ったトンネルの設定を記憶部504に格納する。
また、モビリティプロトコルモジュール502は、トンネルデバイスモジュール503がネットワークスタック501へ出力したパケットにIPヘッダを付与したパケットの内容を、トンネルデバイスモジュール503から取得する。
トンネルデバイスモジュール503は、ネットワークスタック501から出力されたパケットに、記憶部504に格納されたトンネルの設定に従ったIPヘッダを付与してネットワークスタック501へ出力する。
また、トンネルデバイスモジュール503は、ハンドオーバの前に使用していたネットワーク経由で端末400へ転送する最後のパケットの内容をモビリティプロトコルモジュール502へ出力する。
記憶部504は、トンネルの設定を記憶する。
ネットワークインタフェース510は、例えばEthernet(登録商標)等の通信プロトコルに対応したネットワークインタフェースであり、受信したパケットをネットワークスタック501へ出力する。また、ネットワークインタフェース510は、ネットワークスタック501から出力されたパケットを送信する。
このような通信システムにおけるハンドオーバ時の処理フローを図18を用いて説明する。本実施形態では、使用するネットワークをセルラーネットワークから無線LANへ切り替える場合について説明する。
(ステップS1800)端末400が、端末400とホームエージェント500との間に確立されたセルラーネットワーク経由のトンネルを用いて、通信相手機器600から送信されたパケットを受信している。このとき、端末400の記憶部406には、セルラーネットワーク用インタフェース410のIPアドレスCoA1と、ホームエージェント500のIPアドレスHAとの組が、1つのトンネル設定として記憶されている。
ホームエージェント500がIP-in-IPトンネリングプロトコルを用いて、通信相手機器600から送信されたパケットを端末400へ転送している。
端末400のセルラーネットワーク用インタフェース410がホームエージェント500から転送された、例えば図7に示すようなパケットを受信すると、セルラーネットワーク用インタフェース410はネットワークスタック401へパケットを出力する。
ネットワークスタック401は、パケットの外側IPヘッダの上位ヘッダがIPヘッダであることを検知し、パケットをトンネルデバイスモジュール404へ出力する
トンネルデバイスモジュール404は記憶部406からトンネルの設定を取得し、トンネルの設定に含まれる2つのIPアドレスの組と、外側IPヘッダで指定された送信先IPアドレス及び送信元IPアドレスの組とを比較する。比較結果が一致すると、トンネルデバイスモジュール404はパケットが正常であると判断し、パケットの外側IPヘッダを削除し、ネットワークスタック401へパケットを出力する
端末400のネットワークスタック401はIPヘッダの上位ヘッダがトランスポートプロトコルヘッダであることを検知し、トランスポートプロトコルの仕様に沿った受信処理を行ったあと、アプリケーションモジュール403へパケットの中のアプリケーションデータを出力する。
アプリケーションモジュール403は、受信したアプリケーションデータを用いて所定の処理を行う。
また、ホームエージェント500は、通信相手機器600から受信した、送信先IPアドレスがHoAであるパケットをトンネリングしたパケットを、端末400のセルラーネットワーク用インタフェース410へ転送している。
この時、ホームエージェント500の記憶部504には、端末400のIPアドレスHoA、ホームエージェント500のIPアドレスHA、端末400のセルラーネットワーク用インタフェース410のIPアドレスCoA1の3つのIPアドレスの組が、トンネルの設定として格納されている。
ホームエージェント500のネットワークインタフェース510が、通信相手機器600から、図6に示すような送信先IPアドレスがHoAであるパケットを受信すると、ネットワークインタフェース510はこのパケットをネットワークスタック501へ出力する。
ネットワークスタック501は、パケットの送信先IPアドレスがHoAであることから、このパケットがトンネルデバイスモジュール503へ出力すべきパケットであることを検知し、トンネルデバイスモジュール503へ出力する。
トンネルデバイスモジュール503は、記憶部504からIPアドレスHoAを含むトンネルの設定を取得する。そして、トンネルデバイスモジュール503は、前記トンネルの設定に含まれる端末400のセルラーネットワーク用インタフェース410のIPアドレスCoA1を送信先IPアドレスに指定し、前記トンネルの設定に含まれるホームエージェント500のIPアドレスHAを送信元IPアドレスとして指定した外側IPヘッダをパケットに付与することで、図7に示すようなパケットを生成する。
そして、トンネルデバイスモジュール503はこのようなパケットをネットワークスタック501へ出力する。
ネットワークスタック501は、トンネルデバイスモジュール503から受け取ったパケットをネットワークインタフェース510へ出力する。ネットワークインタフェース510は、ネットワークスタック501から受け取ったパケットを外部へ送信する。
(ステップS1801)端末400のハンドオーバトリガモジュール405がハンドオーバ(セルラーネットワークから無線LANへの切り替え)を開始することを決定する。
ハンドオーバトリガモジュール405は、常時セルラーネットワーク用インタフェース410または無線LAN用インタフェース420からセルラーネットワークや無線LANにおける通信品質に関する情報を取得している。
そして、ハンドオーバトリガモジュール405は前記情報やその他の情報が一定の条件を満たすと、ハンドオーバを開始することを決定し、モビリティモジュール402に通知する。
なお、ハンドオーバトリガモジュール405がハンドオーバの開始を決定するアルゴリズムはどのようなものであってもよい。一例として、無線LAN基地局20から受信できる電波の強度が十分強くなったことをハンドオーバの契機とする方法がある。
(ステップS1802)Registration Requestメッセージが無線LANを経由して端末400からホームエージェント500へ送信される。
端末400のモビリティモジュール402は、ハンドオーバトリガモジュール405から、ハンドオーバを開始する旨の通知を受けると、Registration Requestメッセージを生成する。
但し、モビリティプロトコルモジュール402は、図19に示すように、Registration RequestメッセージのSbitに0、Lifetimeフィールドに0以外の値、Home Addressフィールドに端末400に割り当てられたIPアドレスHoA、Home Agentフィールドにホームエージェント500のIPアドレスHA、Care-of Addressフィールドに端末400の無線LAN用インタフェース420のIPアドレスCoA2を指定する。
モビリティプロトコルモジュール402は、生成したRegistration Requestメッセージをネットワークスタック401へ出力する。
ネットワークスタック401は、Registration Requestメッセージに送信先ポート番号が434であるUDPヘッダを付与する。なお、ネットワークスタック401がUDPヘッダの送信元ポート番号に指定した値をUPとする。
ネットワークスタック401はまた、Registration Requestメッセージに、送信先IPアドレスがホームエージェント500のIPアドレスHAであり、かつ送信元IPアドレスが端末400の無線LAN用インタフェース420のIPアドレスCoA2であるIPヘッダを付与し、図19に示すようなRegistration Requestメッセージを生成する。
ネットワークスタック401はRegistration Requestメッセージを無線LAN用インタフェース420へ出力する。無線LAN用インタフェース420は、受け取ったRegistration Requestメッセージをホームエージェント500へ送信する。
端末400から送信されたRegistration Requestメッセージは、無線LANを経由してホームエージェント500のネットワークインタフェース510に受信される。ネットワークインタフェース510は、受信したRegistration Requestメッセージをネットワークスタック501へ出力する。
ネットワークスタック501は、Registration RequestメッセージのトランスポートプロトコルヘッダがUDPであり、かつ送信先ポート番号が434であることから、Registration Requestメッセージがモビリティプロトコルモジュール502宛であることを検知し、モビリティプロトコルモジュールへ出力する。
モビリティプロトコルモジュールは、Registration Requestメッセージの内容を検査する。
(ステップS1803)ホームエージェント500がRegistration Requestメッセージの内容を受け入れる場合、ホームエージェント500はRegistration Replyメッセージを端末400の無線LAN用インタフェース420へ送信する。
ホームエージェント500のモビリティプロトコルモジュール502は、Registration Replyメッセージを生成する。但し、モビリティプロトコルモジュール502は、図20に示すように、Registration ReplyメッセージのCodeフィールドに0、Home Addressフィールドに端末400に割り当てられたIPアドレスHoA、Home Agentフィールドにホームエージェント500のIPアドレスHAを指定する。
そして、ホームエージェント500のモビリティプロトコルモジュール502は、生成したRegistration Replyメッセージをネットワークスタック501へ出力する。
ネットワークスタック501は、Registration Replyメッセージに、送信元ポート番号が434、送信先ポート番号がUPであるUDPヘッダを付与する。
また、ネットワークスタック501は、Registration Replyメッセージに、送信先IPアドレスが端末400の無線LAN用インタフェース420のIPアドレスCoA2であり、かつ送信元IPアドレスがホームエージェントのIPアドレスHAであるIPヘッダを付与する。
そして、ネットワークスタック501はRegistration Replyメッセージをネットワークインタフェース510へ出力する。ネットワークインタフェース510は、受け取ったRegistration Replyメッセージを端末400の無線LAN用インタフェース420へ送信する。
(ステップS1804)ホームエージェント500がトンネルの設定を変更する。
ホームエージェント500のモビリティプロトコルモジュール502は、Registration RequestメッセージのCare-of Addressフィールドに指定された端末400の無線LAN用インタフェース420のIPアドレスCoA2と、Home Agentフィールドに指定されたホームエージェント500のIPアドレスHAと、Home Addressフィールドに指定された端末400のIPアドレスHoAとの組を、新たなトンネルの設定として記憶部504に格納する。
そして、モビリティプロトコルモジュール502は、記憶部504に格納された、端末400のIPアドレスHoAと、ホームエージェント500のIPアドレスHAと、端末400のセルラーネットワーク用インタフェース410のIPアドレスCoA1の3つのIPアドレスの組で構成されたトンネルの設定を削除する。
(ステップS1805)端末400が、無線LANを介してホームエージェント500から転送されたパケットを無線LAN用インタフェース420で受信するためのトンネルの設定を新たに行う。
端末400の無線LAN用インタフェース420は、受信したRegistration Replyメッセージをネットワークスタック401へ出力する。
ネットワークスタック401は、Registration ReplyメッセージのトランスポートプロトコルヘッダがUDPであり、かつ送信先ポート番号がUPであることから、Registration Replyメッセージがモビリティプロトコルモジュール402宛であることを検知し、Registration Replyメッセージをモビリティプロトコルモジュール402へ出力する。
モビリティプロトコルモジュール402は、Registration ReplyメッセージのCodeフィールドが0であることから、ホームエージェント500がRegistration Requestメッセージの内容を受け入れたことを検知する。また、モビリティプロトコルモジュール402は無線LAN用インタフェース420のIPアドレスCoA2とホームエージェント500のIPアドレスHAの組を新たなトンネルの設定として記憶部406に格納する。
(ステップS1806)ホームエージェント500が、無線LANを経由して端末400の無線LAN用インタフェース420へ通知メッセージを送信する。
ホームエージェント500のモビリティプロトコルモジュール502は、ステップS1804以前にホームエージェント500が端末400のセルラーネットワーク用インタフェース410に送信した最後のパケットをトンネルデバイスモジュール503から取得する。そして、モビリティプロトコルモジュール502は通知メッセージを生成する。
通知メッセージには、ステップS1804以前にホームエージェント500が端末400のセルラーネットワーク用インタフェース410に送信した最後のパケットに関するデータが含まれる。
前記データは、例えばパケットのIPヘッダ中のチェックサムフィールドの値であってもよいし、パケット自体であってもよい。
次に、モビリティプロトコルモジュール502は、通知メッセージをネットワークスタック501へ出力する。
ネットワークスタック501は、受け取った通知メッセージに、図21に示すように、送信元ポート番号が434であり、送信先ポート番号がUPであるUDPヘッダを付与する。また、ネットワークスタック501は、送信元IPアドレスがホームエージェント500のIPアドレスHAであり、送信先IPアドレスが端末400の無線LAN用インタフェース420のIPアドレスCoA2であるIPヘッダを付与する。
ネットワークスタック501はこの通知メッセージをネットワークインタフェース510へ出力する。ネットワークインタフェースは受け取った通知メッセージを無線LAN用インタフェース420へ送信する。
なお、図21は、ステップS1804以前にホームエージェント500が端末400のセルラーネットワーク用インタフェース410に送信した最後のパケットに関するデータが、チェックサムフィールドの値である場合の通知メッセージの例を示している。
端末400の無線LAN用インタフェース420は、受信した通知メッセージをネットワークスタック401へ出力する。
ネットワークスタック401は、受け取った通知メッセージの送信先ポート番号がUPであることから、通知メッセージがモビリティプロトコルモジュール402宛であることを検知し、通知メッセージのIPヘッダとUDPヘッダを除くデータをモビリティプロトコルモジュール402へ出力する。
モビリティプロトコルモジュール402は、受け取った前記データに記された、ステップS1804以前にホームエージェント500が端末400のセルラーネットワーク用インタフェース410に送信した最後のパケットの特徴を表すデータを、パケット監視モジュール407へ出力する。例えば、前記データがパケットのIPヘッダの中のチェックサムフィールドの値の場合は、前記チェックサムの値をパケット監視モジュール407へ出力する。
パケット監視モジュール407は、受け取ったデータを記憶部406に格納する。パケット監視モジュール407は、ネットワークスタック401に、これ以降受信する全てのパケットをパケット監視モジュール407へ出力するよう通知する。
(ステップS1807)ホームエージェント500は、通信相手機器600から送信された送信先IPアドレスがHoAであるパケットを受信すると、端末400の無線LAN用インタフェース420へ転送する。
ホームエージェント500のネットワークインタフェース510が、通信相手機器600から、図6に示すような送信先IPアドレスがHoAであるパケットを受信すると、ネットワークインタフェース510はこのパケットをネットワークスタック501へ出力する。
ネットワークスタック501は、パケットの送信先IPアドレスがHoAであることから、パケットがトンネルデバイスモジュール503に渡すべきパケットであることを検知し、このパケットをトンネルデバイスモジュール503へ出力する。
トンネルデバイスモジュール503は記憶部504からIPアドレスHoAを含むトンネルの設定を取得する。記憶部504に記憶されている、IPアドレスHoAを含むトンネルの設定は、IPアドレスHoAと、端末400の無線LAN用インタフェース420のIPアドレスCoA2と、ホームエージェント500のIPアドレスHAで構成される設定である。
従って、トンネルデバイスモジュール503は、送信先IPアドレスをCoA2に指定し、送信元IPアドレスをHAに指定した外側IPヘッダをパケットに付与し、図10に示すようなパケットを生成する。
トンネルデバイスモジュール503はこのようなパケットをネットワークスタック501へ出力し、ネットワークスタック501は受け取ったパケットをネットワークインタフェース510へ出力する。ネットワークインタフェース510は、受け取ったパケットを無線LAN用インタフェース420へ送信する。
端末400は、ホームエージェント500が無線LAN用インタフェース420へ転送したパケット、及び、ホームエージェント500がステップS1804以前にセルラーネットワーク用インタフェース410へ転送したパケットを受信する。
端末400のセルラーネットワーク用インタフェース410がホームエージェント500から転送されたパケットを受信すると、セルラーネットワーク用インタフェース410はネットワークスタック401へこのパケットを出力する。
ネットワークスタック401は、受け取ったパケットをパケット監視モジュール407へ出力する。
そして、パケット監視モジュール407は、記憶部406に格納された、ホームエージェント500がステップS1804以前にセルラーネットワーク用インタフェース410へ最後に転送したパケットの特徴(例えばIPヘッダ内のチェックサムフィールドの値)と、ネットワークスタック401から受け取ったパケットの特徴とを比較する。
比較後、パケット監視モジュール407はこのパケットをネットワークスタック401へ出力する。
ネットワークスタック401は、パケットの外側IPヘッダの上位ヘッダがIPヘッダであることを検知し、パケットをトンネルデバイスモジュール404へ出力する。
トンネルデバイスモジュール404は記憶部406からトンネルの設定を取得し、トンネルの設定に含まれる2つのIPアドレスの組と、IPヘッダで指定された送信先IPアドレス及び送信元IPアドレスの組とを比較する。
IPアドレスの組の比較結果が一致すると、トンネルデバイスモジュール404はパケットが正常なパケットであると判断し、パケットの外側IPヘッダを削除し、ネットワークスタック401へパケットを出力する。
端末400のネットワークスタック401は、IPヘッダの上位ヘッダがトランスポートプロトコルヘッダであることを検知し、トランスポートプロトコルの仕様に沿った受信処理を行ったあと、アプリケーションモジュール403にパケットの中のアプリケーションデータを出力する。
アプリケーションモジュール403は、受け取ったアプリケーションデータを用いて、所定の処理を行う。
(ステップS1808)記憶部406に格納された、ホームエージェント500がステップS1804以前にセルラーネットワーク用インタフェース410へ最後に転送したパケットの特徴と、パケット監視モジュール407がネットワークスタック401から受け取ったパケットの特徴とが一致する場合、パケット監視モジュール407はモビリティプロトコルモジュール402へ一致したことを通知する。
(ステップS1809)モビリティプロトコルモジュール402が、パケット監視モジュール407から受け取った通知に基づいて、記憶部406から、セルラーネットワーク用インタフェース410のIPアドレスCoA1とホームエージェント500のIPアドレスHAの組に一致するトンネルの設定(ハンドオーバ前のトンネル設定)を削除する。
これにより、端末400のセルラーネットワーク用インタフェース410が図7に示すようなパケットを受信した場合、端末400のトンネルデバイスモジュール404は、前記パケットの外側IPヘッダの送信元IPアドレスと送信先IPアドレスに一致するトンネルの設定が、記憶部406に存在しないことから、前記パケットが不正なパケットであると判断し、前記パケットを破棄できるようになる。
このように、本実施形態では、ホームエージェントが、ハンドオーバ処理前に端末へ転送した最後のトンネリングされたパケットの内容を示す通知メッセージを、ハンドオーバ後に使用するネットワーク経由で、ハンドオーバ直後に送信している。また、端末は、前記通知メッセージを受信し、前記通知メッセージが示すパケットの内容に該当するパケットを、ハンドオーバ前に使用していたネットワーク経由で受信した時点をハンドオーバ前に使用していたトンネルを削除可能となる時点として検知する。
そのため、ハンドオーバ前に端末が使用していたネットワーク上でパケットロスが発生する可能性があっても、端末が、ハンドオーバ前に使用していたトンネルを経由してホームエージェントから転送された全てのパケットを受信し終えて前記トンネルを削除可能となる時点を検知可能となる。
トンネルを削除可能となる時点を検知して、トンネルを削除することで、パケットロスを起こさずに、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースに供給される電源を速やかに切ることができるため、消費電力を低減できる。
また、ホームエージェントから転送されたパケットを、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースで受信する設定を保持するためのメモリリソースを速やかに解放することができるため、メモリリソースを有効利用できる。
上記第2の実施形態では、端末およびホームエージェントはモビリティプロトコルとしてMobile IPv4を搭載しているが、Mobile IPv4の代わりにMobile IPv6を搭載していてもよい。
端末およびホームエージェントがMobile IPv6を利用する場合、端末およびホームエージェントが標準化中のMultiple Care-of Address Registration機能に対応し、Registration Requestの代わりにMobile IPv6のBinding Updateメッセージを利用し、Registration Replyの代わりにBinding Acknowledgementメッセージを利用してもよい。
Binding Updateメッセージを端末が利用する場合、Binding Updateメッセージ中のBinding Identifier Mobility Option内のC flagフィールドを1に指定し、Binding Acknowledgmentメッセージ中のStatusフィールドを検査することで、ホームエージェントがMultiple Care-of Address Registration機能に対応していない場合にICMP Echo Requestメッセージなどのメッセージを送信してもよい。
上記第2の実施形態では、端末はステップS1800、ステップS1807、ステップS1808においてトンネリングしたパケットをホームエージェント500に送信することで、通信相手機器300にパケットを送信してもよい。
また、上記第2の実施形態では、端末はハンドオーバ前のトンネルの設定を削除後、もしくは削除する直前にハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第2の実施形態では、端末はハンドオーバ前のトンネルの設定を削除する代わりに、ハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第2の実施形態では、端末のトンネルデバイスモジュール404は、IP-in-IPトンネリングプロトコルの代わりにGREトンネルやその他のトンネリングプロトコルを利用してもよい。
また、上記第2の実施形態では、端末およびホームエージェントはIP-in-IPトンネリングプロトコルの代わりにGREトンネルやESP、AHといったシーケンスナンバーフィールドをプロトコルヘッダにもつプロトコルを利用し、かつIPヘッダのチェックサムフィールドの値の代わりに前記シーケンスナンバーフィールドの値を利用してもよく、さらに端末は前記シーケンスナンバーフィールドの値よりも小さい値のシーケンスナンバーフィールド値をもつパケットを全て受信した時点をハンドオーバ前に使用していたトンネルを削除可能となる時点として検知してもよい。
この場合、端末は、ハンドオーバ前に使用していたネットワーク上で、パケットの転送順が入れ替わっても、端末がハンドオーバ前に使用していたトンネルを経由してホームエージェントから転送された全てのパケットを受信し終えて前記トンネルを削除可能となる時点を検知可能となる。
また、上記第2の実施形態においては、Mobile IPv4をモビリティプロトコルとした場合の例を説明したが、モビリティプロトコルがMobile IPv6 であっても、MOBIKEであっても、その他のプロトコルであってもよい。モビリティプロトコルがMobile IPv4でない場合は、Mobile IPv4のRegistration RequestおよびRegistration Replyの代わりにMobile IPv6やMOBIKEの仕様、その他のモビリティプロトコルの仕様に規定されている、ハンドオーバに必要なメッセージを端末とホームエージェントが送受信する。
(第3の実施形態)本発明の第3の実施形態に係る通信システムは図15に示す上記第2の実施形態に係る通信システムと同様であるため、説明を省略する。
また、本実施形態に係る端末は図16に示す上記第2の実施形態に係る端末と同様の構成であるため、説明を省略する。但し、モビリティプロトコルモジュール402、トンネルデバイスモジュール404、パケット監視モジュール407に搭載される機能は上記第2の実施形態と異なる。
本実施形態に係る端末400のモビリティプロトコルモジュール402は、Mobile IPv4のメッセージを作成または処理するモジュールであり、Registration Requestメッセージを生成してネットワークスタック401へ出力する。
また、モビリティプロトコルモジュール402は、ネットワークスタック401からRegistration Replyメッセージを受信して処理する。
また、モビリティプロトコルモジュール402は、ハンドオーバ直後に使用するネットワーク経由でホームエージェント500から転送された最初のパケットのヘッダに指定されたシーケンスナンバーを監視モジュール407から受信する。
モビリティプロトコルモジュール402はまた、前記シーケンスナンバーから1を引いた値、およびハンドオーバ前に使用していたネットワークに対応するインタフェースのIPアドレスをパケット監視モジュール407へ出力する。
モビリティプロトコルモジュール402はまた、パケット監視モジュール407から通知を受けたときに記憶部406に格納されたハンドオーバ前に使用していたトンネルの設定を削除する。
トンネルデバイスモジュール404は、GREなどの、シーケンスナンバーをプロトコルヘッダに指定可能なトンネリングプロトコルを用いて、ネットワークスタック401から受け取ったトンネリングされたパケットのトンネリングプロトコルのヘッダとIPヘッダを取り除いてネットワークスタック401へ出力する。
パケット監視モジュール407は、モビリティプロトコルモジュール402から受け取ったシーケンスナンバーを記憶部406に格納する。また、パケット監視モジュール407は、ネットワークスタック401から受け取った、トンネリングされたパケットが記憶部406に格納されたシーケンスナンバーに一致するか否かを判定し、一致する場合はモビリティプロトコルモジュール402に通知する。
また、パケット監視モジュール407は、前記判定の後、前記パケットをネットワークスタック401へ出力する。
本実施形態に係るホームエージェントは図17に示す上記第2の実施形態に係るホームエージェントと同様の構成であるため、説明を省略する。但し、モビリティプロトコルモジュール502およびトンネルデバイスモジュール503に搭載される機能は上記第2の実施形態と異なる。
モビリティプロトコルモジュール502は、Mobile IPv4のメッセージを作成または処理するモジュールであり、ネットワークスタック501からRegistration Requestメッセージを受信して処理する。
モビリティプロトコルモジュール502は、Registration Replyメッセージを生成して、ネットワークスタック501へ出力する。またモビリティプロトコルモジュール502は、前記Registration Requestメッセージの内容に従ったトンネルの設定を記憶部504に格納する。
モビリティプロトコルモジュール502は、トンネルデバイスモジュール503がネットワークスタック501から受け取ってIPヘッダを付与したパケットの内容を、トンネルデバイスモジュール503から取得する機能を搭載しなくてもよい。
トンネルデバイスモジュール503は、ネットワークスタック501から受け取ったパケットに、記憶部504に格納されたトンネルの設定に従ったIPヘッダを付与し、ネットワークスタック501へ出力する。
トンネルデバイスモジュール503は、ハンドオーバの前に使用していたネットワーク経由で端末400へ転送する最後のパケットの内容をモビリティプロトコルモジュール502へ出力する機能を搭載しなくてもよい。
このような通信システムにおけるハンドオーバ時の処理フローを図22を用いて説明する。本実施形態では、使用するネットワークをセルラーネットワークから無線LANへ切り替える場合について説明する。
(ステップS2200)端末400が、端末400とホームエージェント500との間に確立されたセルラーネットワーク経由のトンネルを用いて、通信相手機器600から送信されたパケットを受信している。
このとき、端末400の記憶部406には、セルラーネットワーク用インタフェース410のIPアドレスCoA1と、ホームエージェント500のIPアドレスHAとの組が、1つのトンネル設定として記憶されている。
ホームエージェント500は、通信相手機器600から受信した、送信先IPアドレスがHoAであるパケットをトンネリングしたパケットを、端末400のセルラーネットワーク用インタフェース410へ転送している。
つまり、ホームエージェント500のネットワークインタフェース510が、通信相手機器600から、図6に示すような送信先IPアドレスがHoAであるパケットを受信すると、ネットワークインタフェース510はこのパケットをネットワークスタック501へ出力する。
ネットワークスタック501は受け取ったパケットの送信先IPアドレスがHoAであることから、パケットがトンネルデバイスモジュール503宛であることを検知し、このパケットをトンネルデバイスモジュール503へ出力する。
トンネルデバイスモジュール503は記憶部504からIPアドレスHoAを含むトンネルの設定を取得する。そして、トンネルデバイスモジュール503は、Protocol typeフィールドが0800であるGREヘッダをパケットに付与する。
但し、GREヘッダのシーケンスナンバーフィールドには、直前にトンネリングし転送した、端末400宛のパケットのGREヘッダ中のシーケンスナンバーフィールドの値に1を足した値を指定する。
前記直前に転送したパケット中のシーケンスナンバーフィールドの値が16進数で0xffffffffである場合は、GREヘッダのシーケンスナンバーフィールドを1に指定する。
前記トンネルの設定に含まれる端末のセルラーネットワーク用インタフェース410のIPアドレスCoA1を送信先IPアドレスに指定し、前記トンネルの設定に含まれるホームエージェント500のIPアドレスHAを送信元IPアドレスとして指定した外側IPヘッダをパケットに付与することで、例えば図23に示すようなパケットを生成する。
トンネルデバイスモジュール503はこのパケットをネットワークスタック501へ出力し、ネットワークスタック501は、受け取ったパケットをネットワークインタフェース501へ出力する。
ネットワークインタフェース510は、受け取ったパケットをセルラーネットワーク用インタフェース410へ送信する。
端末400のセルラーネットワーク用インタフェース410がホームエージェント500から転送された、図23に示すようなパケットを受信すると、セルラーネットワーク用インタフェース410はネットワークスタック401へパケットを出力する。
ネットワークスタック401は、パケットの外側IPヘッダの上位ヘッダがGREヘッダであることを検知し、パケットをトンネルデバイスモジュール404へ出力する。
トンネルデバイスモジュール404は記憶部406からトンネルの設定を取得し、トンネルの設定に含まれる2つのIPアドレスの組と、外側IPヘッダに指定された送信先IPアドレス及び送信元IPアドレスの組とを比較する。
前記比較の結果が一致すると、トンネルデバイスモジュール404はパケットが正常なパケットであると判断し、パケットの外側IPヘッダ及びGREヘッダを削除し、ネットワークスタック401へ出力する。
端末400のネットワークスタック401はIPヘッダの上位ヘッダがトランスポートプロトコルヘッダであることを検知し、トランスポートプロトコルの仕様に沿った受信処理を行ったあと、アプリケーションモジュール403へパケットの中のアプリケーションデータを出力する。
アプリケーションモジュール403は受け取ったアプリケーションデータを用いて、所定の処理を行う。
ステップS2201〜ステップS2204は、上記第2の実施形態におけるステップS1801〜ステップS1804と同様であるため、説明を省略する。但し、モビリティプロトコルモジュール402がRegistration RequestメッセージのSbitに1を指定する点が異なる。
(ステップS2205)端末400は、上記第2の実施形態におけるステップS1805と同様の処理を行うことで、新たなトンネルの設定を記憶部406に格納する。
さらに、端末400のモビリティプロトコルモジュール402は、パケット監視モジュール407に対し、GREプロトコルによりトンネリングされ、かつ外側IPヘッダの送信先IPアドレスが無線LAN用インタフェース420のIPアドレスCoA2である最初のパケットを検知したときにモビリティプロトコルモジュール402へ通知するよう、通知する。
(ステップS2206)ホームエージェント500は、通信相手機器600から送信先IPアドレスがHoAであるパケットを受信すると、以下の処理でトンネリングし端末400の無線LAN用インタフェース420へ転送する。
ホームエージェント500のネットワークインタフェース510が、通信相手機器600から、図6に示すような送信先IPアドレスがHoAであるパケットを受信すると、ネットワークインタフェース510はこのパケットをネットワークスタック501へ出力する。
ネットワークスタック501はパケットの送信先IPアドレスがHoAであることから、トンネルデバイスモジュール503へ出力すべきパケットであることを検知し、このパケットをトンネルデバイスモジュール503へ出力する。
トンネルデバイスモジュール503は、記憶部504からIPアドレスHoAを含むトンネルの設定を取得する。記憶部504には、IPアドレスHoAを含むトンネルの設定は、IPアドレスHoAと、端末400の無線LAN用インタフェースのIPアドレスCoA2と、ホームエージェント500のIPアドレスHAで構成される設定である。
トンネルデバイスモジュール503は、Protocol typeが0800であるGREヘッダを付与する。但し、GREヘッダのシーケンスナンバーフィールドには、直前にトンネリングして転送した、端末400宛のパケットのGREヘッダ中のシーケンスナンバーフィールドの値に1を足した値を指定する。
前記直前に転送したパケット中のシーケンスナンバーフィールドの値が16進数で0xffffffffである場合は、GREヘッダのシーケンスナンバーフィールドを1に指定する。
そしてトンネルデバイスモジュール503は、記憶部504から取得したトンネルの設定に従い、送信先IPアドレスにCoA2、送信元IPアドレスにHAを指定したIPヘッダをパケットに付与することで、図24に示すようなパケットを生成する。
トンネルデバイスモジュール503はこのパケットをネットワークスタック501へ出力し、ネットワークスタック501は、受け取ったパケットをネットワークインタフェース510へ出力する。
ネットワークインタフェース510は、受け取ったパケットを端末400の無線LAN用インタフェース420へ送信する。
端末400の無線LAN用インタフェース420がホームエージェント500から転送された初めてのパケットを受信すると、無線LAN用インタフェース420はネットワークスタック410へパケットを出力する。
次に、ネットワークスタック401は、パケットをパケット監視モジュール407へ出力する。
パケット監視モジュール407は、パケットがGREでトンネリングされており、かつ外側IPヘッダの送信先IPアドレスがステップS2205においてモビリティプロトコルモジュール402から通知されたIPアドレスCoA2であるか否かを判定する。
パケットの外側IPヘッダの送信元IPアドレスはCoA2であるため、前記判定の結果は真になる。そのためパケット監視モジュール407は、パケットのGREヘッダに指定されたシーケンスナンバーの値をモビリティプロトコルモジュール402に通知し、パケットをネットワークスタック401へ出力する。
次に、ネットワークスタック401はパケットの外側IPヘッダの上位ヘッダがGREヘッダであることを検知し、パケットをトンネルデバイスモジュール404へ出力する。
トンネルデバイスモジュール404は記憶部406からトンネルの設定を取得し、トンネルの設定に含まれる2つのIPアドレスの組と、IPヘッダに指定された送信先IPアドレス、送信元IPアドレスの組とを比較する。
前記比較の結果が一致することから、トンネルデバイスモジュール404はパケットが正常なパケットであると判断し、パケットの外側IPヘッダおよびGREヘッダを削除したパケットをネットワークスタック401へ出力する。
次に、ネットワークスタック401は前記パケットのIPヘッダの上位ヘッダがトランスポートプロトコルヘッダであることを検知し、トランスポートプロトコルの仕様に沿った受信処理を行った後、アプリケーションモジュール403へパケットの中のアプリケーションデータを出力する。
アプリケーションモジュール403は受け取ったアプリケーションデータを用いて所定の処理を行う。
また、端末400のセルラーネットワーク用インタフェース410がホームエージェント500から転送された、例えば図23に示すようなパケットを受信すると、セルラーネットワーク用インタフェース410はネットワークスタック401へパケットを出力する。
ネットワークスタック401は、このパケットをパケット監視モジュール407へ出力する。
パケット監視モジュールは、パケットがGREでトンネリングされており、かつ外側IPヘッダの送信先IPアドレスがステップS2205においてモビリティプロトコルモジュール402から通知されたIPアドレスCoA2であるか否かを判定する。
パケットの外側IPヘッダの送信元IPアドレスはCoA1であるため、前記判定の結果は偽になる。そのためパケット監視モジュール407はパケットをネットワークスタック401へ出力する。
以降の動作は、上述した無線LAN用インタフェース420がホームエージェント500から転送されたパケットを受信した場合と同様であるので、説明を省略する。
(ステップS2207)ステップS2206において、端末400のモビリティプロトコルモジュール402がパケット監視モジュール407からシーケンスナンバーを通知されると、端末400は以下の処理を行う。
モビリティプロトコルモジュール402は、無線LAN用インタフェース420で受信したパケットの監視を停止するよう、パケット監視モジュール407に通知する。
次に、モビリティプロトコルモジュール402は、パケット監視モジュール407から通知されたシーケンスナンバーから1を引いた値と、セルラーネットワーク用インタフェース410のIPアドレスをパケット監視モジュール407に与える。
但し、パケット監視モジュール407から通知されたシーケンスナンバーが1である場合は、16進数で0xffffffffをシーケンスナンバーとしてパケット監視モジュール407に与える。
これにより、パケット監視モジュール407は、セルラーネットワーク用インタフェース410で受信した全てのパケットを監視する。
(ステップS2208)ステップS2204以前にホームエージェント500から端末400のセルラーネットワーク用インタフェース410へ送信された最後のパケットが受信される。
端末400のセルラーネットワーク用インタフェース410は受信したパケットをネットワークスタック401へ出力する。
ネットワークスタック401は、このパケットをパケット監視モジュール407へ出力する。
次に、パケット監視モジュール407は、モビリティプロトコルモジュール402から通知されたシーケンスナンバーの値をGREヘッダ内のシーケンスナンバーと比較する。このパケットは、ステップS2204以前にホームエージェント500から端末400のセルラーネットワーク用インタフェース410へ送信された最後のパケットであるため、前記比較の結果は真になる。
そして、パケット監視モジュール407は、前記比較の結果は真になったことをモビリティプロトコルモジュール402に通知する。
次に、パケット監視モジュール407はパケットをネットワークスタック401へ出力する。ネットワークスタック401はパケットの外側IPヘッダの上位ヘッダがGREヘッダであることを検知し、このパケットをトンネルデバイスモジュール404へ出力する。 以降の処理は、ステップS2206におけるトンネルモジュールデバイス404、ネットワークスタック401、アプリケーションモジュール403の処理と同じであるため、説明を省略する。
なお、ステップS2207からステップS2208までの間に、パケット監視モジュール407が保持するシーケンスナンバーと一致しないシーケンスナンバーがGREヘッダ内に指定されたパケットをセルラーネットワーク用インタフェース410が受信した場合の処理は、パケット監視モジュール407がモビリティプロトコルモジュール402への通知を行わないこと以外は、ステップS2208において端末400が行う処理と同じである。
(ステップS2209)端末400のモビリティプロトコルモジュール402がパケット監視モジュール407から通知を受けると、モビリティプロトコルモジュール402は記憶部406から、セルラーネットワーク用インタフェース410のIPアドレスCoA1とホームエージェント500のIPアドレスHAの組に一致するトンネルの設定を削除する。
これにより、端末400のセルラーネットワーク用インタフェース410が図23に示すようなパケットを受信した場合、端末400のトンネルデバイスモジュール404は、前記パケットの外側IPヘッダの送信元IPアドレスと送信先IPアドレスに一致するトンネルの設定が、記憶部406に存在しないことから、前記パケットが不正なパケットであると判断し、前記パケットを破棄できるようになる。
このように、本実施形態では、ホームエージェントは、トンネリングプロトコルとしてシーケンスナンバーをトンネルのヘッダに記すプロトコルを使用して通信相手機器から受信したパケットを端末に転送する。
また、端末は、ハンドオーバ後に端末が利用するネットワーク経由でホームエージェントから受信した最初のパケットの内容から、このパケットの直前に、端末がハンドオーバ前に利用していたネットワーク経由でホームエージェントが転送したパケットの特徴を予測し、記憶する。
そして、端末がハンドオーバ前に利用していたネットワーク経由でホームエージェントから受信したパケットが前記記憶しておいたパケットの特徴に一致した時点を、ハンドオーバ前に使用していたトンネルを削除可能となる時点として検知する。
従って、特別なメッセージを端末とホームエージェントが送受信しなくても、端末が、ハンドオーバ前に使用していたトンネルを経由してホームエージェントから転送された全てのパケットを受信し終えた時点で、即時に前記トンネルを削除可能となる。
トンネルを削除可能となる時点を検知して、トンネルを削除することで、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースに供給される電源を速やかに切ることができるため、消費電力を低減できる。
また、ホームエージェントから転送されたパケットを、ハンドオーバ前に使用していたネットワークに対応する端末のインタフェースで受信する設定を保持するためのメモリリソースを速やかに解放することができるため、メモリリソースを有効利用できる。
端末400はステップS2200、ステップS2206、ステップS2208においてトンネリングしたパケットをホームエージェント500に送信することで、通信相手機器600にパケットを送信してもよい。
また、上記第3の実施形態では、端末はハンドオーバ前のトンネルの設定を削除後、もしくは削除する直前にハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第3の実施形態では、端末はハンドオーバ前のトンネルの設定を削除する代わりに、ハンドオーバ前に使用していたネットワークインタフェースの動作を停止させるか電源供給を止めてもよい。
また、上記第3の実施形態では、端末のトンネルデバイスモジュールは、GREプロトコルの代わりにシーケンスナンバーをプロトコルヘッダに記載可能な例えばESPやAHといったトンネリングプロトコルを利用してもよい。
また、上記第3の実施形態では、Mobile IPv4をモビリティプロトコルとした場合の例を説明したが、モビリティプロトコルがMobile IPv6 であっても、MOBIKEであっても、その他のプロトコルであってもよい。
モビリティプロトコルがMobile IPv4でない場合は、Mobile IPv4のRegistration RequestおよびRegistration Replyの代わりにMobile IPv6やMOBIKEの仕様、その他のモビリティプロトコルの仕様に規定されている、ハンドオーバに必要なメッセージを端末とホームエージェントが送受信する。
なお、上記第1〜第3の全ての実施形態においては、セルラーネットワーク用インタフェースおよび無線LAN用インタフェースは、例えば有線のEthernetに対応したインタフェースでも、802.16、802.16eに対応したインタフェースでも、Bluetoothや赤外線通信に対応したインタフェースであってもよい。
また、上記第1の実施形態においては、セルラーネットワーク用インタフェースおよび無線LAN用インタフェースの代わりに、異なるアクセスネットワークに接続される、同一プロトコルに対応した複数のネットワークインタフェースを搭載している端末であってもよい。
さらに、上記第1〜第3の全ての実施形態においては、端末は、2つ以上のネットワークインタフェースを搭載していてもよく、端末に搭載されたネットワークインタフェースのうち、2つのネットワークインタフェースを用いて、通信相手機器との通信に使用するネットワークを切替えるために本発明を適用可能である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。