(57)【要約】  経路決定のための専用パケットを用いることなく、通信可能な無線ネットワークに対応する通信インタフェースを選択することができる通信端末を提供する。パケット生成手段９３は、宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成する。制御手段９４は、複数の通信インタフェース９１の中から１つの通信インタフェース９１を選択し、パケット生成手段９３によって生成されたパケットをその通信インタフェース９１に送ることをパケット処理手段９５に指示し、パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、その通信インタフェース９１とは異なる通信インタフェース９１を選択し、そのパケットのコピーをその通信インタフェース９１に送ることをパケット処理手段９５に指示する。
2015083320.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェースと、
宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成手段と、
指示された通信インタフェースに対してパケットを送るパケット処理手段と、
前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることを前記パケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示する制御手段とを備える
ことを特徴とする通信端末。
【請求項２】
パケット生成手段は、
パケット処理手段のアドレスを送信元とするパケットを生成し、
制御手段は、
前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示する
請求項１に記載の通信端末。
【請求項３】
複数の名前解決サーバの中から１つの名前解決サーバを選択し、選択した名前解決サーバをパケット生成手段に対して指定する名前解決サーバ選択手段と、
名前解決サーバのアドレスと通信インタフェースとの対応関係を記憶する対応関係記憶手段とを備え、
パケット生成手段は、前記名前解決サーバ選択手段によって指定された名前解決サーバのアドレスを送信先アドレスとするパケットを、名前解決の対象となる装置名に基づいて生成し、
制御手段は、
前記パケット生成手段によって生成されたパケットの送信先アドレスと、選択した通信インタフェースに対応する名前解決サーバのアドレスとが一致していない場合、前記パケットの送信先アドレスを、選択した通信インタフェースに対応する名前解決サーバのアドレスに書き換えることをパケット処理手段に指示する
請求項１または請求項２に記載の通信端末。
【請求項４】
制御手段は、
選択した通信インタフェースから出力されたパケットに対する応答となる応答パケットが名前解決サーバから伝達された場合、当該応答パケットに含まれている名前解決の対象となる装置のアドレスを抽出し、当該アドレスを送信先アドレスとするパケットが生成されたときに、前記応答パケットを受信した通信インタフェースを選択する
請求項３に記載の通信端末。
【請求項５】
各通信インタフェースの状態を示す状態情報を記憶する状態記憶手段と、
前記状態情報を前記状態記憶手段に記憶させる状態管理手段とを備え、
制御手段は、
通信インタフェースを選択したときに、当該通信インタフェースの状態に基づいてタイムアウトの判定基準時刻を決定する
請求項１から請求項４のうちのいずれか１項に記載の通信端末。
【請求項６】
制御手段は、
規則に従って通信インタフェースを選択し、パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力された場合、前記規則を更新する
請求項１から請求項５のうちのいずれか１項に記載の通信端末。
【請求項７】
それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェースを備える通信端末に適用される通信方法であって、
パケット生成手段が、
宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成し、
制御手段が、
前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示し、
前記パケット処理手段が、
前記制御手段の指示に従ってパケットを、前記制御手段によって選択された通信インタフェースに送る
ことを特徴とする通信方法。
【請求項８】
パケット生成手段が、
パケット処理手段のアドレスを送信元とするパケットを生成し、
制御手段が、
前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示する
請求項７に記載の通信方法。
【請求項９】
それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する通信インタフェースと、指示された通信インタフェースに対してパケットを送るパケット処理手段を備えるコンピュータに搭載される通信プログラムであって、
前記コンピュータに、
宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成処理、および、
前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成処理で生成されたパケットを当該通信インタフェースに送ることを前記パケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示する制御処理
を実行させるための通信プログラム。
【請求項１０】
コンピュータに、
パケット生成処理で、
パケット処理手段のアドレスを送信元とするパケットを生成させ、
制御処理で、
前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示させる
請求項９に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末、通信方法および通信プログラムに関し、特に、複数の無線ネットワークに接続可能な通信端末、およびその通信端末に適用される通信方法および通信プログラムに関する。
【背景技術】
【０００２】
携帯電話機やスマートフォン等に代表される通信端末には、複数の異なる無線通信方式の通信インタフェースが搭載される。例えば、無線ＬＡＮ（Local Area Network）に対応する通信インタフェース、および、ＬＴＥ（Long Term Evolution ）に対応する通信インタフェースが通信端末に搭載される場合等がある。【０００３】
また、特許文献１には、送信元となる装置が送信先に通じる複数の経路に経路調査フレームを送信し、送信先で先に経路調査フレームが受信された経路、リトライ回数の少ない経路あるいは回線負荷の少ない経路を判断し、使用する経路を決定する経路制御方法が記載されている。【０００４】
また、特許文献２には、ベース側の装置と、リモート側の装置とを備え、ベース側の装置が、リモート側が属するグループＩＤおよびリモート側の固有ＩＤを送信し、リモート側からの応答信号の有無を検出することによって、通信路をサーチする構成が記載されている。なお、リモート側が属するグループＩＤおよびリモート側の固有ＩＤは、例えば、ベース側の装置のオペレータによって入力される。【０００５】
また、特許文献３には、ネゴシエーション用パケットを送信し、そのネゴシエーション用パケットへの応答を規定時間内に受信しない場合に、通信条件を変更する通信装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１３６１７８号公報（要約等）
【特許文献２】特開平５−２６８１９４号公報（段落００２５−００２７等）
【特許文献３】特開２００７−１８４８３６号公報（段落００３３−００３６等）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特に無線ＬＡＮの場合等に、通信路が確立されていても、実際には通信端末が通信を行えないことがある。この原因は、多くの場合、無線ＬＡＮアクセスポイントと通信端末との間の無線区間で電波チャネルが混雑したり、電波干渉の影響を受けたりして、通信が阻害されるためである。すなわち、無線通信路の通信伝送品質が悪いことが原因で、パケットが導通しない現象が発生する。このとき、通信端末のユーザが、無線ネットワークを介してサービスの提供を受ける場合、良好にサービスを受けられなくなる。【０００８】
特許文献１に記載の技術では、送信元となる装置が送信先に通じる複数の経路に経路調査フレームを送信し、無線通信路の通信伝送品質を測定し、使用する経路を決定する。このように、経路調査フレームを用いて通信伝送品質を測定し続けることで、ほぼ確実に宛先にパケットを伝送することができる。しかし、特許文献１に記載の技術では、通信端末がサービス等を受けるために宛先に送信すべきデータを含むパケットとは別に、経路決定のための専用パケット（経路調査フレーム）を送受信する必要がある。そのため、経路決定のための専用パケットの送受信により、通信効率や電力効率が悪化するという問題があった。【０００９】
特許文献２に記載の技術における「リモート側が属するグループＩＤおよびリモート側の固有ＩＤ」の送受信も、経路決定のための専用データの送受信に該当し、上記と同様の問題が生じる。特許文献３のネゴシエーション用パケットの送受信に関しても同様である。【００１０】
そこで、本発明は、経路決定のための専用パケットを用いることなく、通信可能な無線ネットワークに対応する通信インタフェースを選択することができる通信端末、通信方法および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明による通信端末は、それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェースと、宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成手段と、指示された通信インタフェースに対してパケットを送るパケット処理手段と、複数の通信インタフェースの中から１つの通信インタフェースを選択し、パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、そのパケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、その通信インタフェースとは異なる通信インタフェースを選択し、そのパケットのコピーを当該通信インタフェースに送ることをパケット処理手段に指示する制御手段とを備えることを特徴とする。【００１２】
また、本発明による通信方法は、それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェースを備える通信端末に適用される通信方法であって、パケット生成手段が、宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成し、制御手段が、複数の通信インタフェースの中から１つの通信インタフェースを選択し、パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、そのパケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、その通信インタフェースとは異なる通信インタフェースを選択し、そのパケットのコピーを当該通信インタフェースに送ることをパケット処理手段に指示し、パケット処理手段が、制御手段の指示に従ってパケットを、制御手段によって選択された通信インタフェースに送ることを特徴とする。【００１３】
また、本発明による通信プログラムは、それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する通信インタフェースと、指示された通信インタフェースに対してパケットを送るパケット処理手段を備えるコンピュータに搭載される通信プログラムであって、コンピュータに、宛先となる装置からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成処理、および、複数の通信インタフェースの中から１つの通信インタフェースを選択し、パケット生成処理で生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、そのパケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力されない場合、その通信インタフェースとは異なる通信インタフェースを選択し、そのパケットのコピーを当該通信インタフェースに送ることをパケット処理手段に指示する制御処理を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、経路決定のための専用パケットを用いることなく、通信可能な無線ネットワークに対応する通信インタフェースを選択することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態の通信端末を含む通信システムを示す模式図である。
【図２】本発明の第１の実施形態の通信端末の構成例を示すブロック図である。
【図３】無線ネットワーク２ａをパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【図４】ステップＳ１０４の処理経過の例を示すフローチャートである。
【図５】ステップＳ１１３の処理経過の例を示すフローチャートである。
【図６】無線ネットワーク２ａをパケットが導通不可能であり、無線ネットワーク２ｂをパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【図７】ステップＳ１５１の処理経過の例を示すフローチャートである。
【図８】本発明の第２の実施形態の通信端末を含む通信システムを示す模式図である。
【図９】本発明の第２の実施形態の通信端末の構成例を示すブロック図である。
【図１０】無線ネットワーク２ａをパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【図１１】ステップＳ２０４の処理経過の例を示すフローチャートである。
【図１２】ステップＳ２０４の処理経過の例を示すフローチャートである。
【図１３】ステップＳ２１３の処理経過の例を示すフローチャートである。
【図１４】無線ネットワーク２ａをパケットが導通不可能であり、無線ネットワーク２ｂをパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【図１５】ステップＳ２５１の処理経過の例を示すフローチャートである。
【図１６】本発明の第３の実施形態の通信端末の構成例を示すブロック図である。
【図１７】第３の実施形態の処理経過の例を示すフローチャートである。
【図１８】ステップＳ３０４の処理経過の例を示すフローチャートである。
【図１９】本発明の通信端末の主要部を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面を参照して説明する。
【００１７】
実施形態１．
図１は、本発明の第１の実施形態の通信端末を含む通信システムを示す模式図である。図１に示すサーバ４は、本発明の通信端末１との間でパケットを送受信することで、予め定められたサービスを提供する。このサービスの内容は特に限定されない。サーバ４は、複数存在していてもよい。
【００１８】
通信端末１は、複数の無線ネットワーク２と無線によって接続される。図１では、通信端末１が２つの無線ネットワーク２ａ，２ｂに接続される場合を例示しているが、通信端末１に接続される無線ネットワーク２の数は、特に限定されない。なお、無線ネットワーク２ａ，２ｂを特に区別する必要がない場合には、「無線ネットワーク２」と記す。無線ネットワーク２は、有線ネットワーク３と直接的または間接的に接続される。サーバ４は、有線ネットワーク３と直接的または間接的に接続される。
【００１９】
通信端末１は、例えば、携帯電話機、スマートフォン、タブレット端末およびパーソナルコンピュータ等である。ただし、通信端末１は、これらの例に限定されない。
【００２０】
無線ネットワーク２は、例えば、無線ＬＡＮ、ＵＴＲＡＮ（Universal Terrestrial Radio Access Network）、Ｅ−ＵＴＲＡＮ（Evolved Universal Terrestrial Radio Access Network）等であるが、上記以外の無線ネットワークであってもよい。
【００２１】
有線ネットワーク３は、例えば、インターネットであるが、インターネットに限定されない。
【００２２】
サーバ４は、例えば、Ｗｅｂサーバであるが、Ｗｅｂサーバに限定されない。
【００２３】
図２は、本発明の第１の実施形態の通信端末の構成例を示すブロック図である。通信端末１は、複数の通信インタフェース１１と、データ授受部１２と、通信ソフトウェア基本部１３と、通信処理部１５と、制御部１４とを備える。通信インタフェース１１は、通信処理部１５に接続される。通信ソフトウェア基本部１３は、データ授受部１２、通信処理部１５および制御部１４に接続される。制御部１４は、通信処理部１５に接続される。なお、制御部１４と通信処理部１５は直接接続されていなくてもよい。例えば、通信ソフトウェア基本部１３を介して制御部１４と通信処理部１５とが接続されていてもよい。本実施形態では、制御部１４と通信処理部１５が直接接続される場合を例にして説明する。
【００２４】
通信インタフェース１１は、無線ネットワーク２を介して外部と通信を行う。１つの通信インタフェース１１は、少なくとも１つの無線ネットワーク２に対応する。通信インタフェース１１は、通信処理部１５から入力されたパケットを無線ネットワーク２に出力する。また、通信インタフェース１１は、無線ネットワーク２から入力されたパケットを通信処理部１５に送る。なお、本実施形態では、通信端末１が２つの通信インタフェース１１ａ，１１ｂを備え、通信インタフェース１１ａが無線ネットワーク２ａに対応し、通信インタフェース１１ｂが無線ネットワーク２ｂに対応するものとして説明する。通信インタフェース１１ａ，１１ｂを特に区別する必要がない場合には、「通信インタフェース１１」と記す。通信端末１は、３つ以上の通信インタフェース１１を備えていてもよい。
【００２５】
通信インタフェース１１は、例えば、無線ＬＡＮモジュールや無線モデムモジュールであるが、これらの例に限定されない。
【００２６】
データ授受部１２は、通信ソフトウェア基本部１３に通信プロトコルおよび宛先を指定し、通信ソフトウェア基本部１３との間でデータを授受する。このデータに基づいて通信ソフトウェア基本部１３がパケットを生成し、通信端末１はサーバ４とパケットを送受信することによって、サーバ４との間でデータをやり取りする。また、データ授受部１２は、通信プロトコルの種別によっては、通信ソフトウェア基本部１３に対し、サーバ４との間でパケットを送受信するための接続処理を指示する。
【００２７】
データ授受部１２は、例えば、Ｗｅｂブラウザ等のプログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、通信端末は、プログラムを記憶するプログラム記憶装置（図示略）を備え、ＣＰＵは、プログラム記憶装置からプログラムを読み込んで、そのプログラムに従って、データ授受部１２として動作すればよい。ＣＰＵにデータ授受部１２としての機能を実現させるプログラムはＷｅｂブラウザに限定されず、他のプログラムであってもよい。
【００２８】
通信ソフトウェア基本部１３は、データ授受部１２から入力されたデータに基づいて、パケットを生成する。また、サーバ４から受信したパケットが通信ソフトウェア基本部１３に入力された場合、通信ソフトウェア基本部１３はそのパケットからデータを抽出して、データ授受部１２に送る。
【００２９】
ここで、データ授受部１２が通信ソフトウェア基本部１３に送るデータは、宛先となる装置（本実施形態ではサーバ４）からサービスの提供を受けるためのデータ（すなわち、サーバ４が提供するサービスを受けるためのデータ）である。以下、宛先となる装置からサービスを受けるためのデータを実データと記す場合がある。そして、通信ソフトウェア基本部１３は、実データを含むパケットを生成する。従って、通信ソフトウェア基本部１３が生成するパケットは、特許文献１に記載されている経路調査フレーム（経路決定用の専用パケット）とは異なる。本発明の通信端末１は、宛先となる装置からサービスの提供を受けるための実データを含むパケットを用いて、パケットが導通可能な無線ネットワーク２（より具体的には、パケットが導通可能な無線ネットワーク２に対応する通信インタフェース１１）を特定する。
【００３０】
通信ソフトウェア基本部１３は、データ授受部１２からデータ（実データ）を入力されると、通信ソフトウェア基本部１３に予め設定されている通信転送ルールに従って送信元アドレスを決定する。そして、通信ソフトウェア基本部１３は、データ授受部１２から入力されたデータに基づいて、その送信元アドレスと、データ授受部１２によって指定された送信先アドレスとをヘッダ内に含むパケットを生成する。通信ソフトウェア基本部１３は、生成したパケットを、通信転送ルールに従って通信処理部１５に送る。本実施形態では、通信転送ルールのデフォルト設定において、通信ソフトウェア基本部１３は生成したパケットを通信処理部１５に送ることが定められているものとする。
【００３１】
また、通信ソフトウェア基本部１３は、サーバ４との間でパケットを送受信するための接続処理をデータ授受部１２によって指示された場合、前述の送信元アドレスおよび送信先アドレスをヘッダ内に含むパケットを、通信処理部１５を介して、サーバ４に送信する。このパケット送信によって、サーバ４との接続のための手続を実現する。
【００３２】
通信ソフトウェア基本部１３は、例えば、オペレーティングシステムのカーネルに実装されているＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）スタックに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵは、プログラム記憶装置（図示略）からプログラム（上記の例ではＴＣＰ／ＩＰスタック）を読み込んで、そのプログラムに従って、通信ソフトウェア基本部１３として動作すればよい。また、通信ソフトウェア基本部１３に設定される通信転送ルールは、例えば、ＩＰルーティング設定である。また、宛先との接続処理が必要とされるプロトコルとして、例えばＴＣＰが挙げられるが、ＴＣＰ以外のプロトコルが用いられてもよい。
【００３３】
制御部１４は、通信ソフトウェア基本部１３に生成されたパケット、およびそのパケットに対する応答としてサーバ４から送信されるパケットを利用して、無線ネットワーク２の導通性を確認する。そして、制御部１４は、通信ソフトウェア基本部１３に生成されたパケットを導通させる制御を行う。制御部１４は、通信処理部１５に対して通信処理ルールを設定する。通信処理ルールは、条件に合致するパケットに対する処理内容を規定したルールである。
【００３４】
制御部１４は、パケットに対する通信処理を決定する。「通信処理を決定する」とは、具体的には、パケットの送り先となる通信端末１内の機能ブロックと、書き換えるべきパケットヘッダのフィールドと、パケットヘッダの値を決定することを意味する。
【００３５】
通信ソフトウェア基本部１３によって生成されサーバ４宛に送信するパケットに対する通信処理を決定する場合、制御部１４は、以下の処理を行う。制御部１４は、通信ソフトウェア基本部１３を参照し、通信インタフェース１１のアドレスを取得する。制御部１４は、通信ソフトウェア基本部１３から通信処理部１５に入力されたパケット（Ｐとする。）が制御部１４に入力されたことを判別して、そのパケットＰが送信パケット（通信端末１が外部に送信するパケット）であることを判別する。そして、制御部１４は、そのパケットの送信に用いる通信インタフェース１１を決定する。本例では、通信処理部１５からのパケットの送り先として、通信インタフェース１１ａを決定する場合を例にして説明する。さらに、制御部１４は、パケットＰのコピーであるパケット（Ｐ’とする。）を保存するとともに、現在時刻に所定の時間ｔを加算した時刻（Ｔとする。）の情報を保存する。時刻Ｔは、タイムアウトの判定基準となる時刻である。そして、制御部１４は、通信処理部１５に対して、パケットＰの通信処理の実行を指示する。制御部１４は、通信インタフェース１１ａを使用することを決定したので、パケットＰのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送ることを通信処理部１５に指示する。
【００３６】
制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を、例えば、所定の規則に従って決定してもよい。
【００３７】
制御部１４は、通信処理部１５に対して、個別に通信処理の実行を指示してもよい。あるいは、制御部１４は、通信処理部１５に対して通信処理ルールを設定することにより、通信処理の実行を指示してもよい。
【００３８】
サーバ４は、パケットＰを受信すると、パケットＰに対応するパケット（Ｑとする。）を通信端末１に送信する。パケットＱは、保存されているパケットＰ’に対応するパケットであると言うこともできる。
【００３９】
時刻ＴまでにパケットＱが通信処理部１５から制御部１４に入力されると、制御部１４は、パケットＰ’と同じヘッダを持つパケット（すなわち、書き換え前のパケットＰと同じヘッダを持つパケット）に対する通信処理ルールと、パケットＱと同じヘッダを持つパケットに対する通信処理ルールを、それぞれ通信処理部１５に設定する。以下、「パケットＰ’と同じヘッダを持つパケット」を、「パケットＰと同じヘッダを持つパケット」と記す。
【００４０】
制御部１４は、パケットＰと同じヘッダを持つパケットに対する通信処理として、例えば、ヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、通信インタフェース１１ａに送ることを規定した通信処理ルールを通信処理部１５に設定する。
【００４１】
また、制御部１４は、パケットＱと同じヘッダを持つパケットに対する通信処理として、例えば、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送ることを規定した通信処理ルールを通信処理部１５に設定する。
【００４２】
パケットＰと同じヘッダを持つパケットに対する通信処理ルール、および、パケットＱと同じヘッダを持つパケットに対する通信処理ルールを通信処理部１５に設定する場合、制御部１４は、保存しているパケットＰ’を破棄してもよい。
【００４３】
また、制御部１４は、通信処理部１５に対して、個別に通信処理の実行を指示してもよい。この場合、パケットＱと同じヘッダを持つパケットが制御部１４に入力される毎に、制御部１４は、上記の通信処理ルールで示した内容と同内容の通信処理の実行を、通信処理部１５に対して個別に指示すればよい。
【００４４】
制御部１４は、入力されたパケットが、パケットＰ’に対応するパケットＱであるか否かを、以下のように判別すればよい。すなわち、制御部１４は、入力されたパケットが、パケットＰを送信した通信インタフェース１１ａで受信されたパケットであり、かつ、そのパケットのヘッダの一部が、保存しているパケットＰ’のヘッダの一部と一致するという条件を満たしていれば、制御部１４は、入力されたパケットが、パケットＰ’に対応するパケットＱであると判別する。この条件を満たしていなければ、制御部１４は、入力されたパケットは、パケットＰ’に対応していないと判別する。
【００４５】
また、パケットＱが通信インタフェース１１ａで受信された場合、制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定するための規則を変更してもよい。例えば、通信処理部１５からのパケットの送り先として決定した通信インタフェース１１からパケットＰを送信し、パケットＰに対応するパケットＱがその通信インタフェース１１で受信された場合、制御部１４は、規則において、その通信インタフェース１１を選択する優先度を上昇させてもよい。本実施形態では、このような規則の変更を行う場合を例にして説明する。ただし、制御部１４は、他の基準で規則を更新してもよい。例えば、制御部１４は、パケットＰの送信後、時間ｔ以内にパケットＱを受信したことに関する過去の履歴や、パケットＰの送信からパケットＱの受信までにかかった時間の過去の履歴に基づいて、規則を変更してもよい。このような規則変更の例として、例えば、パケットＰの送信からパケットＱの受信までにかかった時間が段々長くなっていることを履歴が示している場合、通信インタフェース１１を選択する優先度を下降させてもよい。
【００４６】
また、パケットＰに対応するパケットＱが時刻Ｔまでに制御部１４に入力されなかった場合、制御部１４は、通信処理部１５からのパケットの送り先として決定した通信インタフェース１１ａに対応する無線ネットワーク２ａが導通不可能であると判別する。そして、制御部１４は、保存したパケットＰ’のヘッダ内の送信元アドレスをもう一方の通信インタフェース１１ｂのアドレスに書き換え、パケットＰ’を通信インタフェース１１ｂに送ることを通信処理部１５に指示する。このとき、制御部１４は、保存している時刻Ｔを更新する。
【００４７】
無線ネットワーク２ａ，２ｂがともに導通不可能であると判別した場合、制御部１４は、保存しているパケットＰ’を破棄してもよい。あるいは、制御部１４は、再び、無線ネットワーク２ａの導通性を確認してもよい。
【００４８】
制御部１４は、例えば、オープンフローコントローラ（OpenFlow Controller ）であるが、この例に限定されない。制御部１４は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵは、プログラム記憶装置（図示略）からプログラムを読み込んで、そのプログラムに従って、制御部１４として動作すればよい。
【００４９】
通信処理部１５は、制御部１４に設定された０個以上の通信処理ルール、および、制御部１４からの通信処理の実行指示に基づいて、入力されたパケットに対する処理を実行する。例えば、通信処理部１５は、パケットのヘッダを書き換えたり、パケットを通信端末１内の他の機能ブロックに転送したりする。通信ソフトウェア基本部１３から入力されたパケットに関しては、通信処理部１５は、制御部１４による制御に従って、例えば、ヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送る。また、通信インタフェース１１で受信されたパケットＱに関しては、通信処理部１５は、制御部１４による制御に従って、例えば、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送る。また、通信処理部１５に設定されたいずれの通信処理ルールにも合致しないパケットや、制御部１４へのパケット転送を規定した通信処理ルールに合致するパケットに関しては、通信処理部１５は、制御部１４に転送する。
【００５０】
通信処理部１５は、例えば、オープンフロースイッチ（OpenFlow Switch ）である。通信処理部１５がオープンフロースイッチである場合、通信処理部１５自身のアドレスは、オープンフロースイッチのローカルポート（Local Port）に付けられるか、オープンフロースイッチと通信ソフトウェア基本部１３に接続される仮想イーサネット（登録商標）デバイスに付けられる。通信処理部１５は、オープンフロースイッチに限定されない。また、通信処理部１５は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現されてもよい。例えば、ＣＰＵは、プログラム記憶装置（図示略）からプログラムを読み込んで、そのプログラムに従って、通信処理部１５として動作すればよい。
【００５１】
次に、第１の実施形態の処理経過について説明する。
図３は、無線ネットワーク２ａ（図１参照）をパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【００５２】
データ授受部１２は、サーバ４に対して送るべきデータ（宛先となるサーバ４からサービスを受けるための実データ）を、通信ソフトウェア基本部１３に送る（ステップＳ１０１）。このとき、データ授受部１２は、送信先アドレスとしてサーバ４のアドレスを指定する。
【００５３】
通信ソフトウェア基本部１３は、通信転送ルールを検索する。そして、通信ソフトウェア基本部１３は、通信転送ルールに従って、通信処理部１５のアドレスをパケットの送信元アドレスとして決定する。通信ソフトウェア基本部１３は、その送信元アドレスと、データ授受部１２に指定された送信先アドレス（サーバ４のアドレス）とをヘッダ内に含むパケットＰを、データ授受部１２から入力されたデータに基づいて生成する。通信ソフトウェア基本部１３は、そのパケットＰを通信処理部１５に送る（ステップＳ１０２）。
【００５４】
通信処理部１５は、通信ソフトウェア基本部１３から入力されたパケットＰと通信処理ルールとを照合し、パケットＰに合致する通信処理ルールが存在しないか、あるいは、制御部１４へのパケット転送を規定した通信処理ルールにパケットＰが合致している場合に、パケットＰを制御部１４に送る（ステップＳ１０３）。本例では、パケットＰに合致する通信処理ルールが存在しない場合を例にして説明する。
【００５５】
パケットＰが送信パケットである場合、制御部１４は、パケットＰの通信処理の実行を通信処理部１５に指示する（ステップＳ１０４）。図４は、ステップＳ１０４の処理経過の例を示すフローチャートである。
【００５６】
制御部１４には、通信処理部１５からパケットＰが入力される（ステップＳ１０４０）。制御部１４は、そのパケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別して、そのパケットＰが送信パケット（通信端末１が外部に送信するパケット）であるか否かを判別する（ステップＳ１０４１）。
【００５７】
制御部１４は、パケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを、ヘッダの送信元アドレスおよび送信先アドレスの組み合わせに基づいて判別してもよい。また、通信処理部１５がパケットを制御部１４に送る時に、そのパケットがどの機能ブロックから通信処理部１５に通知されたものであるかを、制御部１４に通知し、制御部１４は、その通知に基づいて、パケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別してもよい。また、制御部１４がオープンフローコントローラであり、通信処理部１５がオープンフロースイッチである場合、制御部１４は、パケットが入力された通信処理部１５のスイッチポートの情報に基づいて、パケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別してもよい。
【００５８】
パケットＰが送信パケットでない場合（ステップＳ１０４１のＮｏ）、処理を終了する。
【００５９】
パケットＰが送信パケットである場合（ステップＳ１０４１のＹｅｓ）、制御部１４は、どの通信インタフェースにパケットＰを送るかを、予め定められた所定の規則に従って決定する（ステップＳ１０４２）。本例では、パケットＰを通信インタフェース１１ａに送ると決定する場合を例にして説明する。
【００６０】
また、制御部１４は、パケットのＰのコピーであるパケットＰ’を保存するとともに、現在時刻に所定の時間ｔを加算した時刻Ｔの情報を保存する（ステップＳ１０４３）。
【００６１】
次に、制御部１４は、パケットＰのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送ることを通信処理部１５に指示する（ステップＳ１０４４）。
【００６２】
通信処理部１５は、制御部１４からの指示に従い、パケットＰのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送る（ステップＳ１０５）。
【００６３】
通信インタフェース１１ａは、通信処理部１５から入力されたパケットＰを無線ネットワーク２ａに出力する（ステップＳ１０６）。
【００６４】
無線ネットワーク２ａは、パケットが導通可能な状態であり、パケットＰはサーバ４に伝達される。すると、サーバ４は、パケットＰに対応するパケットＱを、パケットＰの送信元宛に送信する。この結果、パケットＱは、無線ネットワーク２ａを介して通信端末１に伝達され、通信インタフェース１１ａで受信される。
【００６５】
通信インタフェース１１ａは、無線ネットワーク２ａから受信したパケットＱを、通信処理部１５に送る（ステップＳ１１１）。
【００６６】
通信処理部１５は、通信インタフェース１１ａから入力されたパケットＱと通信処理ルールとを照合し、パケットＱに合致する通信処理ルールが存在しないか、あるいは、制御部１４へのパケット転送を規定した通信処理ルールにパケットＱが合致している場合に、パケットＱを制御部１４に送る（ステップＳ１１２）。この動作は、ステップＳ１０３と同様である。本例では、パケットＱに合致する通信処理ルールが存在しない場合を例にして説明する。
【００６７】
制御部１４は、パケットＱに対する処理の実行を通信処理部１５に指示する（ステップＳ１１３）。図５は、ステップＳ１１３の処理経過の例を示すフローチャートである。
【００６８】
制御部１４には、通信処理部１５からパケットＱが入力される（ステップＳ１１３０）。制御部１４は、そのパケットＱが、パケットＰ’に対応するパケットであるか否かを判別する（ステップＳ１１３１）。既に説明したように、制御部１４は、入力されたパケットが、パケットＰを送信した通信インタフェース１１ａで受信されたパケットであり、かつ、そのパケットのヘッダの一部が、保存しているパケットＰ’のヘッダの一部と一致するという条件を満たしていれば、制御部１４は、入力されたパケットが、パケットＰ’に対応するパケットＱであると判別する。この条件を満たしていなければ、制御部１４は、入力されたパケットは、パケットＰ’に対応していないと判別する。
【００６９】
入力されたパケットがパケットＰ’に対応していない場合（ステップＳ１１３１のＮｏ）、処理を終了する。
【００７０】
入力されたパケットがパケットＰ’に対応するパケットＱである場合（ステップＳ１１３１のＹｅｓ）、制御部１４は、現在時刻が時刻Ｔ以前であるか否かを判定する（ステップＳ１１３２）。
【００７１】
現在時刻が時刻Ｔより後の時刻であれば（ステップＳ１１３２のＮｏ）、処理を終了する。
【００７２】
現在時刻が時刻Ｔ以前であれば（ステップＳ１１３２のＹｅｓ）、制御部１４は、通信インタフェース１１ａに対応する無線ネットワーク２ａをパケットが導通可能であると判別する（ステップＳ１１３３）。
【００７３】
次に、制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定するための規則を更新する（ステップＳ１１３４）。例えば、制御部１４は、ステップＳ１１３３でパケットが導通可能であると判別した無線ネットワーク２ａに対応する通信インタフェース１１ａを選択する優先度を上昇させる。ただし、前述のように、制御部１４は、他の基準で規則を変更してもよい。
【００７４】
次に、制御部１４は、パケットＰ（書き換え前のパケットＰ）と同じヘッダを持つパケットに対する通信処理ルールと、パケットＱと同じヘッダを持つパケットに対する通信処理ルールとをそれぞれ、通信処理部１５に設定する（ステップＳ１１３５）。
【００７５】
制御部１４は、パケットＰと同じヘッダを持つパケットに対して、ヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、通信インタフェース１１ａに送ることを規定した通信処理ルールを通信処理部１５に設定する。
【００７６】
また、制御部１４は、パケットＱと同じヘッダを持つパケットに対して、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送ることを規定した通信処理ルールを通信処理部１５に設定する。
【００７７】
次に、制御部１４は、ステップＳ１０４３で保存したパケットＰ’を破棄する（ステップＳ１１３６）。
【００７８】
次に、通信処理部１５は、ステップＳ１１３５で設定された通信処理ルールに従い、パケットＱに対して、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送る処理を実行する（ステップＳ１１４）。
【００７９】
通信ソフトウェア基本部１３は、通信処理部１５から入力されたパケットからデータを抽出し、そのデータをデータ授受部１２に送る（ステップＳ１１５）。この結果、データ授受部１２は、サーバ４から送信されたデータを取得する（ステップＳ１１６）。
【００８０】
その後、通信ソフトウェア基本部１３が、データ授受部１２から入力されたデータに基づいて、パケットＰと同じヘッダを持つパケットを生成した場合、そのパケットは、ステップＳ１１３５で設定された通信処理ルールに基づいてパケットＰと同様に処理され、パケットが導通可能な無線ネットワーク２ａを介してサーバ４に伝達される。また、サーバ４がそのパケットに応じて、パケットＱと同じヘッダを持つパケットを送信した場合にも、そのパケットは、ステップＳ１１３５で設定された通信処理ルールに基づいてパケットＱと同様に処理され、データ授受部１２に送られる。
【００８１】
図６は、無線ネットワーク２ａ（図１参照）をパケットが導通不可能であり、無線ネットワーク２ｂ（図１参照）をパケットが導通可能である場合における処理経過の例を示すフローチャートである。ステップＳ１０１〜Ｓ１０６は、図３に示すステップＳ１０１〜Ｓ１０６と同様であり、説明を省略する。なお、図６では、ステップＳ１０１〜Ｓ１０３についての図示を省略している。
【００８２】
ステップＳ１０６で通信インタフェース１１ａがパケットＰを無線ネットワーク２ａに出力した場合、無線ネットワーク２ａは導通不可能な状態であるので、そのパケットＰはサーバ４に到達しない。そのため、サーバ４はパケットＱを送信しない。
【００８３】
制御部１４は、ステップＳ１０４の後、時刻Ｔを過ぎてもパケットが入力されない場合に、他の通信インタフェースからパケットＰ’を送信することを通信処理部１５に指示する（ステップＳ１５１）。図７は、ステップＳ１５１の処理経過の例を示すフローチャートである。
【００８４】
制御部１４は、パケットＰ’に対応するパケットＱの入力がないまま時刻Ｔになったことを判別する（ステップＳ１５１１）。
【００８５】
続いて、制御部１４は、ステップＳ１０４（より具体的には、図４に示すステップＳ１０４２）で決定した通信インタフェース１１ａとは別の通信インタフェース１１ｂにパケットＰ’を送ることを決定する（ステップＳ１５１２）。
【００８６】
次に、制御部１４は、ステップＳ１０４３（図４参照）で定めた時刻Ｔを更新する（ステップＳ１５１３）。具体的には、制御部１４は、時刻Ｔに所定の時間ｔを加算することで、時刻Ｔを更新し、更新後の時刻Ｔの情報を保存する。
【００８７】
次に、制御部１４は、パケットＰ’のヘッダ内の送信元アドレスを通信インタフェース１１ｂのアドレスに書き換え、パケットＰ’を通信インタフェース１１ｂに送ることを通信処理部１５に指示する（ステップＳ１５１４）。
【００８８】
通信処理部１５は、制御部１４からの指示に従い、パケットＰ’のヘッダ内の送信元アドレスを通信インタフェース１１ｂのアドレスに書き換え、パケットＰ’を通信インタフェース１１ｂに送る（ステップＳ１５２）。
【００８９】
通信インタフェース１１ｂは、パケットＰ’を無線ネットワーク２ｂに出力する（ステップＳ１０６）。
【００９０】
無線ネットワーク２ｂは、パケットが導通可能な状態であり、パケットＰ’はサーバ４に伝達される。すると、サーバ４は、パケットＰ’に対応するパケットＱを、パケットＰの送信元宛に送信する。この結果、パケットＱは、無線ネットワーク２ｂを介して通信端末１に伝達され、通信インタフェース１１ｂで受信される。以降の動作は、ステップＳ１１１〜Ｓ１１６（図３参照）と同様であり、説明を省略する。
【００９１】
本実施形態によれば、データ授受部１２とサーバ４との間で実データを送受信するためのパケットうちの最初のパケットと、その応答パケットとを用いて、パケットが導通可能な無線ネットワーク２を判別することができる。従って、経路決定のための専用パケットを用いずに、パケットが導通可能な無線ネットワーク２を判別できる。その結果、通信効率や電力効率の悪化を防止することができる。
【００９２】
また、実施形態では、通信ソフトウェア基本部１３が、通信処理部１５のアドレスを送信元アドレスとして、実データを含むパケットＰを生成し、通信処理部１５が、通信処理ルールに従って、送信元アドレスを通信インタフェース１１のアドレスに書き換える。また、その通信インタフェース１１に対応する無線ネットワーク２が導通不可能な状態であるために、パケットＰ’（パケットＰのコピー）を送信する場合には、通信処理部１５が、通信処理ルールに従って、送信元アドレスを他の通信インタフェース１１のアドレスに書き換える。従って、無線ネットワーク２が導通不可能な状態であるために通信インタフェースを切り替える場合であっても、通信ソフトウェア基本部１３およびサーバ４の通信手続に影響を生じさせないようにすることができる。
【００９３】
実施形態２．
図８は、本発明の第２の実施形態の通信端末を含む通信システムを示す模式図である。図８に示すサーバ４、無線ネットワーク２ａ，２ｂおよび有線ネットワーク３はそれぞれ、第１の実施形態におけるサーバ４、無線ネットワーク２ａ，２ｂおよび有線ネットワーク３と同様である。図８に示す通信システムでは、図１に示す通信システムに対して、名前解決サーバ５が追加されている。図８では、通信システムが２台の名前解決サーバ５ａ，５ｂを含む場合を例示しているが、名前解決サーバ５の台数は特に限定されない。なお、名前解決サーバ５ａ，５ｂを特に区別する必要がない場合には、「名前解決サーバ５」と記す。名前解決サーバ５は、有線ネットワーク３に接続されていてもよいが、本実施形態では、名前解決サーバ５が無線ネットワーク２に接続される場合を例にして説明する。図８では、名前解決サーバ５ａが無線ネットワーク２ａに接続され、名前解決サーバ５ｂが無線ネットワーク２ｂに接続される場合を示している。
【００９４】
名前解決サーバ５は、通信端末１から名前解決要求パケットを受信すると、その名前解決要求パケットを解釈し、名前解決要求パケットに含まれている装置の名前に対応するアドレスを検索し、その名前とそのアドレスとを含む名前解決応答パケットを通信端末１に送信する。名前解決要求パケットは、名前解決サーバ５が提供する「名前解決」というサービスを受けるためのデータとして、装置の名前を含んでいる。従って、名前解決要求パケットは、実データを含むパケットである。
【００９５】
名前解決サーバ５は、例えば、ドメインネームサービス（Domain Name Service: DNS）サーバである。ただし、名前解決サーバ５は、ドメインネームサービスサーバに限定されない。
【００９６】
図９は、本発明の第２の実施形態の通信端末の構成例を示すブロック図である。第２の実施形態の通信端末１では、第１の実施形態の通信端末１（図２参照）に対して、名前解決サーバアドレス記憶部１６と、名前解決部１７とが追加されている。名前解決サーバアドレス記憶部１６は、制御部１４および名前解決部１７に接続されている。名前解決部１７は、名前解決サーバアドレス記憶部１６の他に、データ授受部１２および通信ソフトウェア基本部１３に接続されている。
【００９７】
名前解決サーバアドレス記憶部１６は、通信インタフェース１１と、名前解決サーバ５のアドレスとの対応関係を記憶する記憶装置である。例えば、名前解決サーバ５ａは、通信インタフェース１１ａに対応する無線ネットワーク２ａに接続されている。従って、名前解決サーバアドレス記憶部１６は、通信インタフェース１１ａと、名前解決サーバ５ａのアドレスとを対応付けて記憶する。同様に、名前解決サーバアドレス記憶部１６は、通信インタフェース１１ｂと、名前解決サーバ５ｂのアドレスとを対応付けて記憶する。名前解決サーバアドレス記憶部１６は、通信インタフェース１１と、名前解決サーバ５のアドレスとの対応関係を、例えば、ファイルあるいはデータベースとして記憶してもよく、あるいは、他の態様で記憶してもよい。
【００９８】
名前解決部１７は、データ授受部１２からサーバ４の名前を含む名前解決要求データが入力されると、名前解決サーバアドレス記憶部１６を参照して名前解決サーバ５のアドレスを選択する。そして、名前解決部１７は、選択した名前解決サーバ５のアドレスを指定して、名前解決要求データを通信ソフトウェア基本部１３に送る。サーバ４の名前を含む名前解決要求データは、名前解決サーバ５から名前解決サービスの提供を受けるためのデータ（実データ）である。名前解決部１７が、名前解決サーバアドレス記憶部１６から名前解決サーバ５のアドレスを選択する基準は、例えば、選択の優先順位として予め定められている。本例では、名前解決サーバ５ａのアドレスが選択される場合を例にして説明する。
【００９９】
通信端末１が名前解決応答パケットを受信し、その名前解決応答パケットに含まれる名前解決応答データが通信ソフトウェア基本部１３から名前解決部１７に入力されると、名前解決部１７は、その名前解決応答データをデータ授受部１２に送る。名前解決応答データには、装置（本例ではサーバ４）の名前およびその装置のアドレスが含まれている。
【０１００】
名前解決部１７は、例えば、ＤＮＳリゾルバ等のプログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵは、プログラム記憶装置からプログラムを読み込んで、そのプログラムに従って、名前解決部１７として動作すればよい。ＣＰＵに名前解決部１７としての機能を実現させるプログラムは、ＤＮＳリゾルバに限定されず、他のプログラムであってもよい。
【０１０１】
通信ソフトウェア基本部１３は、名前解決部１７から、名前解決サーバ５のアドレスおよび名前解決要求データを入力される。そして、通信ソフトウェア基本部１３は、その名前解決要求データから、名前解決要求パケット（Ｎとする。）を生成する。通信ソフトウェア基本部１３は、通信処理部１５のアドレスを、名前解決要求パケットＮの送信元アドレスとし、名前解決部１７によって指定された名前解決サーバ５のアドレスを、名前解決要求パケットＮの送信先アドレスとする。通信ソフトウェア基本部１３は、名前解決要求パケットＮを通信処理部１５に送る。
【０１０２】
また、通信端末１が名前解決応答パケットを受信し、その名前解決応答パケットが通信処理部１５から通信ソフトウェア基本部１３に入力されると、通信ソフトウェア基本部１３は、名前解決応答パケットから名前解決応答データを抽出する。そして、通信ソフトウェア基本部１３は、その名前解決応答データを名前解決部１７に送る。
【０１０３】
以下、名前解決サーバ５が、名前解決要求パケットＮに対する応答として送信した名前解決応答パケットをＭで表す。
【０１０４】
本実施形態において、制御部１４は、名前解決要求パケットＮおよび名前解決応答パケットＭを利用して、無線ネットワーク２の導通性を確認する。そして、制御部１４は、名前解決要求パケットＮを導通させる制御を行う。
【０１０５】
制御部１４は、名前解決要求パケットＮが通信処理部１５から制御部１４に入力されると、その名前解決要求パケットＮの送信に用いる通信インタフェース１１（換言すれば、通信処理部１５からの名前解決要求パケットＮの送り先となる通信インタフェース１１）を決定する。このとき、制御部１４は、例えば、第１の実施形態と同様に、所定の規則に従って、パケット送信に用いる通信インタフェース１１を決定してもよい。本例では、通信処理部１５からの名前解決要求パケットＮの送り先として、通信インタフェース１１ａを決定する場合を例にして説明する。さらに、制御部１４は、名前解決要求パケットＮのコピーであるパケット（Ｎ’とする。）を保存するとともに、現在時刻に所定の時間ｔを加算した時刻Ｔの情報を保存する。そして、制御部１４は、通信処理部１５に対して、名前解決要求パケットＮの通信処理の実行を指示する。具体的には、制御部１４は、通信インタフェース１１ａを使用することを決定したので、名前解決要求パケットＮのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、名前解決要求パケットＮを通信インタフェース１１ａに送ることを通信処理部１５に指示する。
【０１０６】
また、制御部１４は、パケット送信に用いる通信インタフェース１１を決定した後、名前解決サーバアドレス記憶部１６を参照して、決定した通信インタフェース１１に対応する名前解決サーバ５のアドレスを検索する。本例では、通信インタフェース１１ａに対応する名前解決サーバ５ａのアドレスが検索される。制御部１４は、検索した名前解決サーバ５ａのアドレスと、名前解決要求パケットＮの送信先アドレスとを照合し、その２つのアドレスが一致していない場合、名前解決要求パケットＮの送信先アドレスを、決定した通信インタフェース１１に対応する名前解決サーバ５のアドレスに書き換えることを通信処理部１５に指示する。一方、その２つのアドレスが一致している場合、制御部１４は、名前解決要求パケットＮの送信先アドレスの書き換え指示を行わない。
【０１０７】
例えば、名前解決要求パケットＮの送信先アドレスが名前解決サーバ５ｂのアドレスであったと仮定する。そして、制御部１４は、名前解決要求パケットＮの送信に通信インタフェース１１ａを用いると決定し、通信インタフェース１１ａに対応する名前解決サーバ５ａのアドレスを検索したとする。この場合、制御部１４は、名前解決要求パケットＮの送信先アドレスを名前解決サーバ５ａのアドレスに書き換えることを通信処理部１５に指示する。
【０１０８】
名前解決サーバ５は、名前解決要求パケットＮを受信すると、名前解決要求パケットＮに対応する名前解決応答パケットＭを通信端末１に送信する。
【０１０９】
時刻Ｔまでに名前解決応答パケットＭが通信処理部１５から制御部１４に入力されると、制御部１４は、名前解決応答パケットＭを受信した通信インタフェース１１が接続される無線ネットワーク２が導通可能であると判別する。そして、制御部１４は、名前解決要求パケットＮ（書き換え前の名前解決要求パケットＮ）と同じヘッダを持つパケットに対する通信処理ルールと、名前解決応答パケットＭと同じヘッダを持つパケットに対する通信処理ルールを、それぞれ通信処理部１５に設定する。
【０１１０】
制御部１４は、名前解決要求パケットＮと同じヘッダを持つパケットに対する通信処理ルールとして、例えば、ヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、ヘッダ内の送信先アドレスを名前解決サーバ５ａのアドレスに書き換え、通信インタフェース１１ａに送ることを規定した通信処理ルールを通信処理部１５に設定する。
【０１１１】
また、制御部１４は、名前解決応答パケットＭと同じヘッダを持つパケットに対する通信処理ルールとして、例えば、ヘッダ内の送信元アドレスを、名前解決要求パケットＮ’の送信先アドレスに書き換え、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送ることを規定した通信処理ルールを設定する。
【０１１２】
また、名前解決応答パケットＭのペイロードに格納された名前解決応答データには、装置（本例ではサーバ４）の名前およびその装置のアドレスが含まれている。制御部１４は、この装置（サーバ４）のアドレスを送信先アドレスとして含むパケットが通信処理部１５から入力された場合、任意の期間、そのパケットの送り先として、最初に名前解決応答パケットＭを受信した通信インタフェース１１（通信インタフェース１１ａであるとする。）を選択することを規定してもよい。この場合、通信ソフトウェア基本部１３が、データ授受部１２から入力されたデータに基づいて、サーバ４のアドレスを送信先アドレスとするパケットを生成し、そのパケットが通信処理部１５から制御部１４に入力されると、制御部１４は、通信インタフェース１１ａを選択し、通信インタフェース１１ａに対してそのパケットを送ることを通信処理部１５に指示する。この結果、そのパケットは、導通可能な無線ネットワーク２ａを介してサーバ４に伝達される。
【０１１３】
また、名前解決応答パケットＭが時刻Ｔまでに制御部１４に入力されなかった場合、制御部１４は、通信処理部１５からの名前解決要求パケットＮの送り先とした通信インタフェース１１ａに接続される無線ネットワーク２ａは導通不可能であると判断する。そして、制御部１４は、保存した名前解決要求パケットＮ’内の送信元アドレスを他の通信インタフェース１１ｂのアドレスに書き換え、名前解決要求パケットＮ’を通信インタフェース１１ｂに送ることを通信処理部１５に指示する。
【０１１４】
次に、第２の実施形態の処理経過について説明する。
図１０は、無線ネットワーク２ａ（図８参照）をパケットが導通可能である場合における処理経過の例を示すフローチャートである。
【０１１５】
データ授受部１２（図１０において図示略）が名前解決部１７に対して、サーバ４の名前を含む名前解決要求データを入力すると、名前解決部１７は、名前解決サーバアドレス記憶部１６を参照して名前解決サーバ５のアドレスを選択する。本例では、予め定められた優先順位に従って、名前解決部１７が名前解決サーバ５ａのアドレスを選択する場合を例にして説明する。名前解決部１７は、選択した名前解決サーバ５ａのアドレスを指定して、名前解決要求データを通信ソフトウェア基本部１３に送る（ステップＳ２０１）。
【０１１６】
通信ソフトウェア基本部１３は、通信転送ルールに従って、通信処理部１５のアドレスを名前解決要求パケットの送信元アドレスとして決定する。この動作は、第１の実施形態と同様である。通信ソフトウェア基本部１３は、その送信元アドレスを含み、さらに、名前解決部１７に指定された名前解決サーバ５ａのアドレスを送信先アドレスとして含むヘッダを有する名前解決要求パケットＮを、名前解決要求データに基づいて生成する。通信ソフトウェア基本部１３は、その名前解決要求パケットＮを通信処理部１５に送る（ステップＳ２０２）。
【０１１７】
通信処理部１５は、通信ソフトウェア基本部１３から入力された名前解決要求パケットＮと通信処理ルールとを照合し、名前解決要求パケットＮに合致する通信処理ルールが存在しないか、あるいは、制御部１４へのパケット転送を規定した通信処理ルールに名前解決要求パケットＮが合致している場合に、名前解決要求パケットＮを制御部１４に送る（ステップＳ２０３）。本例では、名前解決要求パケットＮに合致する通信処理ルールが存在しない場合を例にして説明する。
【０１１８】
名前解決要求パケットＮが送信パケットである場合、制御部１４は、名前解決要求パケットＮの通信処理の実行を通信処理部１５に指示する（ステップＳ２０４）。図１１および図１２は、ステップＳ２０４の処理経過の例を示すフローチャートである。
【０１１９】
制御部１４には、通信処理部１５から名前解決要求パケットＮが入力される（ステップＳ２０４０）。制御部１４は、その名前解決要求パケットＮが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別して、名前解決要求パケットＮが送信パケットであるか否かを判別する（ステップＳ２０４１）。
【０１２０】
名前解決要求パケットＮが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別する方法は、第１の実施形態で、パケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別する方法と同様である。
【０１２１】
名前解決要求パケットＮが送信パケットでない場合（ステップＳ２０４１のＮｏ）、処理を終了する。
【０１２２】
名前解決要求パケットＮが送信パケットである場合（ステップＳ２０４１のＹｅｓ）、制御部１４は、どの通信インタフェースに名前解決要求パケットＮを送るかを、所定の規則に従って決定する（ステップＳ２０４２）。本例では、名前解決要求パケットＮを通信インタフェース１１ａに送ると決定する場合を例にして説明する。
【０１２３】
次に、制御部１４は、名前解決サーバアドレス記憶部１６を参照して、ステップＳ２０４２で決定した通信インタフェース１１ａに対応する名前解決サーバ５のアドレスを検索する。制御部１４は、そのアドレスと、名前解決要求パケットＮの送信先アドレスとが一致するか否かを判別する（ステップＳ２０４３）。
【０１２４】
その２つのアドレスが一致している場合（ステップＳ２０４３のＹｅｓ）、ステップＳ２０４５に移行する。
【０１２５】
また、その２つのアドレスが一致していない場合（ステップＳ２０４３のＮｏ）、制御部１４は、名前解決要求パケットＮの送信先アドレスを、ステップＳ２０４２で決定した通信インタフェース１１ａに対応する名前解決サーバ５ａのアドレスに書き換えることを、通信処理部１５に指示する（ステップＳ２０４４）。ステップＳ２０４４の後、ステップＳ２０４５に移行する。
【０１２６】
ステップＳ２０４４に移行するのは、例えば、ステップＳ２０１で名前解決部１７が通信ソフトウェア基本部１３に対して指定する名前解決サーバ５のアドレスと、ステップＳ２０４２で制御部１４が決定する通信インタフェースとが対応していない場合である。
【０１２７】
ステップＳ２０４５において、制御部１４は、名前解決要求パケットＮのコピーである名前解決要求パケットＮ’を保存するとともに、現在時刻に所定の時間ｔを加算した時刻Ｔの情報を保存する（ステップＳ２０４５）。
【０１２８】
次に、制御部１４は、名前解決要求パケットＮのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、名前解決要求パケットＮを通信インタフェース１１ａに送ることを通信処理部１５に指示する（ステップＳ２０４６）。
【０１２９】
通信処理部１５は、制御部１４からの指示に従い、名前解決要求パケットＮのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、名前解決要求パケットＮを通信インタフェース１１ａに送る（ステップＳ２０５）。また、ステップＳ２０４４で、名前解決要求パケットＮの送信先アドレスを名前解決サーバ５ａのアドレスに書き換える旨の指示を受けている場合には、通信処理部１５は、その指示にも従い、名前解決要求パケットＮの送信先アドレスを名前解決サーバ５ａのアドレスに書き換えてから、通信インタフェース１１ａに送る。
【０１３０】
通信インタフェース１１ａは、通信処理部１５から入力された名前解決要求パケットＮを無線ネットワーク２ａに出力する（ステップＳ２０６）。
【０１３１】
無線ネットワーク２ａは、パケットが導通可能な状態であり、名前解決要求パケットＮは名前解決サーバ５ａに伝達される。すると、名前解決サーバ５ａは、名前解決要求パケットＮに対応する名前解決応答パケットＭを、名前解決要求パケットＮの送信元に送信する。この結果、名前解決応答パケットＭは、無線ネットワーク２ａを介して通信端末１に伝達され、通信インタフェース１１ａで受信される。
【０１３２】
通信インタフェース１１ａは、名前解決サーバ５ａから送信され、無線ネットワーク２ａを介して受信した名前解決応答パケットＭを、通信処理部１５に送る（ステップＳ２１１）。
【０１３３】
通信処理部１５は、通信インタフェース１１ａから入力された名前解決応答パケットＭと通信処理ルールとを照合し、名前解決応答パケットＭに合致する通信処理ルールが存在しないか、あるいは、制御部１４へのパケット転送を規定した通信処理ルールに名前解決応答パケットＭが合致している場合、名前解決応答パケットＭを制御部１４に送る（ステップＳ２１２）。本例では、名前解決応答パケットＭに合致する通信処理ルールが存在しない場合を例にして説明する。
【０１３４】
制御部１４は、名前解決応答パケットＭに対する処理の実行を通信処理部１５に指示する（ステップＳ２１３）。図１３は、ステップＳ２１３の処理経過の例を示すフローチャートである。
【０１３５】
制御部１４には、通信処理部１５から名前解決応答パケットＭが入力される（ステップＳ２１３０）。制御部１４は、その名前解決応答パケットＭが、名前解決要求パケットＮ’に対応するパケットであるか否かを判別する（ステップＳ２１３１）。制御部１４は、入力されたパケットが、名前解決要求パケットＮを送信した通信インタフェース１１ａで受信されたパケットであり、かつ、そのパケットのヘッダの一部が、保存している名前解決要求パケットＮ’のヘッダの一部と一致するという条件を満たしていれば、制御部１４は、入力されたパケットが、名前解決要求パケットＮ’に対応する名前解決応答パケットＭであると判別する。この条件を満たしていなければ、制御部１４は、入力されたパケットは、名前解決要求パケットＮ’に対応していないと判別する。
【０１３６】
入力されたパケットが名前解決要求パケットＮ’に対応していない場合（ステップＳ２１３１のＮｏ）、処理を終了する。
【０１３７】
入力されたパケットが名前解決要求パケットＮ’に対応する名前解決応答パケットＭである場合（ステップＳ２１３１のＹｅｓ）、制御部１４は、現在時刻が時刻Ｔ以前であるか否かを判別する（ステップＳ２１３２）。
【０１３８】
現在時刻が時刻Ｔより後の時刻であれば（ステップＳ２１３２のＮｏ）、処理を終了する。
【０１３９】
現在時刻が時刻Ｔ以前であれば（ステップＳ２１３２のＹｅｓ）、制御部１４は、通信インタフェース１１ａに対応する無線ネットワーク２ａをパケットが導通可能であると判別する（ステップＳ２１３３）。
【０１４０】
次に、制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定するための規則を更新する（ステップＳ２１３４）。この動作は、第１の実施形態におけるステップＳ１１３４と同様である。
【０１４１】
次に、制御部１４は、名前解決要求パケットＮ（書き換え前の名前解決要求パケットＮ）と同じヘッダを持つパケットに対する通信処理ルールと、名前解決応答パケットＭと同じヘッダを持つパケットに対する通信処理ルールとをそれぞれ、通信処理部１５に設定する（ステップＳ２１３５）。
【０１４２】
制御部１４は、名前解決要求パケットＮと同じヘッダを持つパケットに対して、例えば、ヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、ヘッダ内の送信先アドレスを名前解決サーバ５ａのアドレスに書き換え、通信インタフェース１１ａに送ることを規定した通信処理ルールを通信処理部１５に設定する。
【０１４３】
また、制御部１４は、名前解決応答パケットＭと同じヘッダを持つパケットに対して、例えば、ヘッダ内の送信元アドレスを、名前解決要求パケットＮ’の送信先アドレスに書き換え、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送ることを規定した通信処理ルールを設定する。
【０１４４】
また、名前解決応答パケットＭのペイロードに格納された名前解決応答データには、サーバ４の名前およびサーバ４のアドレスが含まれている。制御部１４は、名前解決応答データ内に含まれているサーバ４のアドレスを抽出する。そして、制御部１４は、そのアドレスを送信先アドレスとして含むパケットが通信処理部１５から入力された場合、任意の期間、そのパケットの送り先として、最初に名前解決応答パケットＭを受信した通信インタフェース１１を選択する規則を規定する（ステップＳ２１３６）。
【０１４５】
次に、制御部１４は、ステップＳ２０４５で保存した名前解決要求パケットＮ’を破棄する（ステップＳ２１３７）。
【０１４６】
次に、通信処理部１５は、ステップＳ２１３５で設定された通信処理ルールに従い、名前解決応答パケットＭに対して、ヘッダ内の送信元アドレスを、名前解決要求パケットＮ’の送信先アドレスに書き換え、ヘッダ内の送信先アドレスを通信処理部１５のアドレスに書き換え、通信ソフトウェア基本部１３に送る処理を実行する（ステップＳ２１４）。
【０１４７】
通信ソフトウェア基本部１３は、通信処理部１５から入力された名前解決応答パケットＭから名前解決応答データを抽出し、名前解決部１７に送る（ステップＳ２１５）。この結果、名前解決部１７は、名前解決サーバ５ａから送信された名前解決応答データを取得し、その名前解決応答データをデータ授受部１２に送る（ステップＳ２１６）。
【０１４８】
データ授受部１２は、名前解決応答データが入力されることにより、通信ソフトウェア基本部１３に対して、データを送るとともに、サーバ４のアドレスを指定することができる。そして、通信ソフトウェア基本部１３は、サーバ４のアドレスを送信先とするパケットを生成し、通信処理部１５に送る。このパケットが通信処理部１５から制御部１４に入力されると、制御部１４は、ステップＳ２１３６で規定した規則に従って、通信インタフェース１１ａを選択する。そして、制御部１４は、通信インタフェース１１ａに対してそのパケットを送ることを通信処理部１５に指示する。従って、そのパケットは、導通可能な無線ネットワーク２ａを介してサーバ４に伝達される。
【０１４９】
図１４は、無線ネットワーク２ａをパケットが導通不可能であり、無線ネットワーク２ｂをパケットが導通可能である場合における処理経過の例を示すフローチャートである。ステップＳ２０１〜Ｓ２０６は、図１０に示すステップＳ２０１〜Ｓ２０６と同様であり、説明を省略する。なお、図１４では、ステップＳ２０１〜Ｓ２０３についての図示を省略している。
【０１５０】
ステップＳ２０６で通信インタフェース１１ａが名前解決要求パケットＮを無線ネットワーク２ａに出力した場合、無線ネットワーク２ａは導通不可能な状態であるので、名前解決要求パケットＮは名前解決サーバ５ａに到達しない。そのため、名前解決サーバ５ａは、名前解決応答パケットＭを送信しない。
【０１５１】
制御部１４は、ステップＳ２０４の後、時刻Ｔを過ぎても名前解決応答パケットＭが入力されない場合に、他の通信インタフェースから名前解決要求パケットＮ’を送信することを通信処理部１５に指示する（ステップＳ２５１）。図１５は、ステップＳ２５１の処理経過の例を示すフローチャートである。
【０１５２】
制御部１４は、名前解決要求パケットＮ’に対応する名前解決応答パケットＭの入力がないまま時刻Ｔになったことを判別する（ステップＳ２５１１）。
【０１５３】
続いて、制御部１４は、ステップＳ２０４（より具体的には、図１１に示すステップＳ２０４２）で決定した通信インタフェース１１ａとは別の通信インタフェース１１ｂに名前解決要求パケットＮ’を送ることを決定する（ステップＳ２５１２）。
【０１５４】
次に、制御部１４は、名前解決サーバアドレス記憶部１６を参照して、ステップＳ２５１２で決定した通信インタフェース１１ｂに対応する名前解決サーバ５ｂのアドレスを検索する。制御部１４は、その名前解決サーバ５ｂのアドレスと、名前解決要求パケットＮ’の送信先アドレスとが一致するか否かを判別する（ステップＳ２５１３）。
【０１５５】
その２つのアドレスが一致している場合（ステップＳ２５１３のＹｅｓ）、ステップＳ２５１５に移行する。
【０１５６】
また、その２つのアドレスが一致していない場合（ステップＳ２５１３のＮｏ）、制御部１４は、名前解決要求パケットＮ’の送信先アドレスを、ステップＳ２５１２で決定した通信インタフェース１１ｂに対応する名前解決サーバ５ｂのアドレスに書き換えることを、通信処理部１５に指示する（ステップＳ２５１４）。ステップＳ２５１４の後、ステップＳ２５１５に移行する。
【０１５７】
ステップＳ２５１５において、制御部１４は、ステップＳ２０４５（図１２参照）で定めた時刻Ｔを更新する（ステップＳ２５１５）。ステップＳ２５１５の処理は、第１の実施形態におけるステップＳ１５１３と同様の処理である。
【０１５８】
次に、制御部１４は、名前解決要求パケットＮ’のヘッダ内の送信元アドレスを、ステップＳ２５１２で決定した通信インタフェース１１ｂのアドレスに書き換え、名前解決要求パケットＮ’を通信インタフェース１１ｂに送ることを通信処理部１５に指示する（ステップＳ２５１６）。
【０１５９】
通信処理部１５は、制御部１４からの指示に従い、名前解決要求パケットＮ’のヘッダ内の送信元アドレスを通信インタフェース１１ｂのアドレスに書き換え、名前解決要求パケットＮ’を通信インタフェース１１ｂに送る（ステップＳ２５２）。また、ステップＳ２５１４で、名前解決要求パケットＮ’の送信先アドレスを名前解決サーバ５ｂのアドレスに書き換える旨の指示を受けている場合には、通信処理部１５は、その指示にも従い、名前解決要求パケットＮ’の送信先アドレスを名前解決サーバ５ｂのアドレスに書き換えてから、通信インタフェース１１ｂに送る。
【０１６０】
通信インタフェース１１ｂは、通信処理部１５から入力された名前解決要求パケットＮ’を無線ネットワーク２ｂに出力する（ステップＳ２５３）。
【０１６１】
無線ネットワーク２ｂは、パケットが導通可能な状態であり、名前解決要求パケットＮ’は名前解決サーバ５ｂに伝達される。すると、名前解決サーバ５ｂは、名前解決要求パケットＮ’に対応する名前解決応答パケットＭを、名前解決要求パケットＮ’の送信元に送信する。この結果、名前解決応答パケットＭは、無線ネットワーク２ｂを介して通信端末１に伝達され、通信インタフェース１１ｂで受信される。
【０１６２】
通信インタフェース１１ｂが名前解決応答パケットＭを受信した時の動作は、ステップＳ２１１〜Ｓ２１６の動作と同様であり、説明を省略する。
【０１６３】
本実施形態では、実データ（名前解決要求データ）を含む名前解決要求パケットと、その応答パケット（名前解決応答パケット）とを用いて、パケットが導通可能な無線ネットワークを判別することができる。従って、第１の実施形態と同様に、経路決定のための専用パケットを用いずに、パケットが導通可能な無線ネットワーク２を判別でき、通信効率や電力効率の悪化を防止することができる。
【０１６４】
また、本実施形態では、データ授受部１２とサーバ４とがデータを授受する前の前処理の段階で、パケットが導通可能な無線ネットワークを判別できる。
【０１６５】
実施形態３．
図１６は、本発明の第３の実施形態の通信端末の構成例を示すブロック図である。第３の実施形態の通信端末１では、第１の実施形態の通信端末１（図２参照）に対して、状態記憶部１８と、状態管理部１９とが追加されている。状態記憶部１８は、制御部１４および状態管理部１９に接続されている。状態管理部１９は、状態記憶部１８の他に、各通信インタフェース１１に接続されている。
【０１６６】
状態記憶部１８は、各通信インタフェース１１の状態情報を記憶する記憶装置である。具体的には、状態記憶部１８は、通信インタフェース１１の状態情報として、通信インタフェースが有効状態であるか無効状態であるかを示す情報や、スリープ状態の真偽値等を記憶する。
【０１６７】
状態管理部１９は、各通信インタフェース１１の状態を把握し、各通信インタフェース１１の状態情報を状態記憶部１８に記憶させる。
【０１６８】
状態管理部１９は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵは、プログラム記憶装置（図示略）からプログラムを読み込んで、そのプログラムに従って、状態管理部１９として動作すればよい。
【０１６９】
本実施形態では、各通信インタフェース１１は、自身の状態が変化したときに、間接的にまたは直接的に、自身の状態情報を状態管理部１８に通知する。
【０１７０】
本実施形態の制御部１４は、第１の実施形態における動作に加えて、さらに、以下に示す動作も行う。制御部１４は、状態記憶部１８から通信インタフェース１１の状態情報を読み込む。そして、制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定するときに、その状態情報を利用する。例えば、制御部１４は、通信インタフェース１１ａが有効である場合には通信インタフェース１１ａを選択してもよいが、通信インタフェース１１ａが無効である場合には通信インタフェース１１ａを選択しない。また、制御部１４は、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定するときに、通信インタフェース１１の状態情報以外の情報を利用してもよい。本実施形態では、通信インタフェース１１ａが有効状態である場合を例にして説明する。
【０１７１】
また、制御部１４は、タイムアウトの判定基準となる時刻Ｔを決定する際に用いる時間ｔ（換言すれば、現在時刻から時刻Ｔまでの経過時間に該当する時間ｔ）を決定する。このとき、制御部１４は、通信インタフェース１１の状態情報を利用する。例えば、通信インタフェース１１がスリープ状態である場合、制御部１４は、その通信インタフェース１１のウェイクアップにかかる時間と、時間ｔのデフォルト値との加算結果を、時間ｔとして決定する。通信インタフェース１１のウェイクアップにかかる時間は、例えば、通信インタフェース１１の種別や対応する無線ネットワークの種別に応じて規定されていてもよい。あるいは、制御部１４が、通信インタフェース１１のウェイクアップにかかる時間を過去の履歴から算出してもよい。あるいは、制御部１４が、通信インタフェース１１の種別や対応する無線ネットワークの種別、通信端末１の位置、時刻等を用いたアルゴリズムによって、ウェイクアップにかかる時間を算出してもよい。
【０１７２】
次に、第３の実施形態の処理経過について説明する。
図１７は、第３の実施形態の処理経過の例を示すフローチャートである。ステップＳ３０１〜Ｓ３０３は、第１の実施形態におけるステップＳ１０１〜Ｓ１０３と同様であり、説明を省略する。
【０１７３】
通信処理部１５から制御部１４にパケットＰが入力されると、制御部１４は、パケットＰの通信処理の実行を通信処理部１５に指示する（ステップＳ３０４）。図１８は、ステップＳ３０４の処理経過の例を示すフローチャートである。
【０１７４】
制御部１４には、通信処理部１５からパケットＰが入力される（ステップＳ３０４０）。制御部１４は、そのパケットＰが通信ソフトウェア基本部１３から通信処理部１５に入力されたものであるか否かを判別して、そのパケットＰが送信パケットであるか否かを判別する（ステップＳ３０４１）。ステップＳ３０４１は、第１の実施形態におけるステップＳ１０４１と同様の処理である。
【０１７５】
パケットＰが送信パケットでない場合（ステップＳ３０４１のＮｏ）、処理を終了する。
【０１７６】
パケットＰが送信パケットである場合（ステップＳ３０４１のＹｅｓ）、制御部１４は、状態記憶部１８に記憶されている状態情報を参照して、有効状態である通信インタフェースを検索する（ステップ３０４２）。
【０１７７】
次に、制御部１４は、有効状態の通信インタフェース１１の中から、通信処理部１５からのパケットの送り先となる通信インタフェース１１を決定する（ステップＳ３０４３）。例えば、制御部１４は、有効状態の通信インタフェース１１のうち、予め定められた所定の規則において選択の優先順位が最も高く定められている通信インタフェース１１をパケットの送り先として決定する。本例では、ステップＳ３０４３で、通信インタフェース１１ａをパケットの送り先として決定する場合を例にする。
【０１７８】
次に、制御部１４は、通信処理部１５からのパケットの送り先として決定した通信インタフェース１１ａがスリープ状態であるか否かを判別した上で、時刻Ｔを決定する際に用いる時間ｔを決定する（ステップＳ３０４４）。制御部１４は、状態記憶部１８に記憶されている状態情報を参照して、通信インタフェース１１ａがスリープ状態であるか否かを判別する。通信インタフェース１１ａがスリープ状態である場合、制御部１４は、通信インタフェース１１ａのウェイクアップにかかる時間と、時間ｔのデフォルト値との加算結果を、時間ｔとして決定する。また、通信インタフェース１１ａがスリープ状態でない場合、制御部１４は、時間ｔとして、時間ｔのデフォルト値を用いる。
【０１７９】
続いて、制御部１４は、パケットのＰのコピーであるパケットＰ’を保存する。さらに、制御部１４は、現在時刻に、ステップＳ３０４４で決定した時間ｔを加算した時刻Ｔの情報も保存する（ステップＳ３０４５）。
【０１８０】
次に、制御部１４は、パケットＰのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送ることを通信処理部１５に指示する（ステップＳ３０４６）。ステップＳ３０４６は、第１の実施形態におけるステップＳ１０４４と同様の処理である。
【０１８１】
通信処理部１５は、制御部１４からの指示に従い、パケットＰのヘッダ内の送信元アドレスを通信インタフェース１１ａのアドレスに書き換え、パケットＰを通信インタフェース１１ａに送る（ステップＳ３０５）。ステップＳ３０５は、第１の実施形態におけるステップＳ１０５と同様の処理である。
【０１８２】
次に、通信インタフェース１１ａは、ウェイクアップ動作によりスリープ状態を解除し、その後、パケットＰを無線ネットワーク２ａに出力する（ステップＳ３０６）。
【０１８３】
その後の動作（ステップＳ３１１〜Ｓ３１６）は、第１の実施形態におけるステップＳ１１１〜Ｓ１１６（図３参照）と同様であり、説明を省略する。
【０１８４】
本実施形態においても、第１の実施形態と同様の効果が得られる。
【０１８５】
また、第２の実施形態に、第３の実施形態を適用してもよい。
【０１８６】
次に、本発明の主要部を説明する。図１９は、本発明の通信端末の主要部を示すブロック図である。本発明の通信端末は、それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェース９１（例えば、通信インタフェース１１）を備える。さらに、通信端末は、パケット生成手段９３と、パケット処理手段９５と、制御手段９４とを備える。
【０１８７】
パケット生成手段９３（例えば、通信ソフトウェア基本部１３）は、宛先となる装置（例えば、サーバ４、名前解決サーバ５）からサービスの提供を受けるためのデータに基づいてパケットを生成する。
【０１８８】
パケット処理手段９５（例えば、通信処理部１５）は、指示された通信インタフェースに対してパケットを送る。
【０１８９】
制御手段９４（例えば、制御部１４）は、複数の通信インタフェース９１の中から１つの通信インタフェース９１を選択し、パケット生成手段９３によって生成されたパケットを当該通信インタフェース９１に送ることをパケット処理手段９５に指示し、パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻（例えば、時刻Ｔ）までに入力されない場合、その通信インタフェース９１とは異なる通信インタフェース９１を選択し、そのパケットのコピーを当該通信インタフェース９１に送ることをパケット処理手段９５に指示する。
【０１９０】
そのような構成により、経路決定のための専用パケットを用いることなく、通信可能な無線ネットワークに対応する通信インタフェースを選択することができる。
【０１９１】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０１９２】
（付記１）それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェース（例えば、通信インタフェース１１）と、宛先となる装置（例えば、サーバ４、名前解決サーバ５）からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成手段（例えば、通信ソフトウェア基本部１３）と、指示された通信インタフェースに対してパケットを送るパケット処理手段（例えば、通信処理部１５）と、前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることを前記パケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻（例えば、時刻Ｔ）までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示する制御手段（例えば、制御部１４）とを備えることを特徴とする通信端末。
【０１９３】
（付記２）パケット生成手段は、パケット処理手段のアドレスを送信元とするパケットを生成し、制御手段は、前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示する付記１に記載の通信端末。
【０１９４】
（付記３）複数の名前解決サーバの中から１つの名前解決サーバを選択し、選択した名前解決サーバをパケット生成手段に対して指定する名前解決サーバ選択手段（例えば、名前解決部１７）と、名前解決サーバのアドレスと通信インタフェースとの対応関係を記憶する対応関係記憶手段（例えば、名前解決サーバアドレス記憶部１６）とを備え、パケット生成手段は、前記名前解決サーバ選択手段によって指定された名前解決サーバのアドレスを送信先アドレスとするパケット（例えば、名前解決要求パケット）を、名前解決の対象となる装置名（例えば、サーバ４の名前）に基づいて生成し、制御手段は、前記パケット生成手段によって生成されたパケットの送信先アドレスと、選択した通信インタフェースに対応する名前解決サーバのアドレスとが一致していない場合、前記パケットの送信先アドレスを、選択した通信インタフェースに対応する名前解決サーバのアドレスに書き換えることをパケット処理手段に指示する付記１または付記２に記載の通信端末。
【０１９５】
（付記４）制御手段は、選択した通信インタフェースから出力されたパケットに対する応答となる応答パケット（例えば、名前解決応答パケット）が名前解決サーバから伝達された場合、当該応答パケットに含まれている名前解決の対象となる装置のアドレス（例えば、サーバ４のアドレス）を抽出し、当該アドレスを送信先アドレスとするパケットが生成されたときに、前記応答パケットを受信した通信インタフェースを選択する付記３に記載の通信端末。
【０１９６】
（付記５）各通信インタフェースの状態を示す状態情報を記憶する状態記憶手段（例えば、状態記憶部１８）と、前記状態情報を前記状態記憶手段に記憶させる状態管理手段（例えば、状態管理部１９）とを備え、制御手段は、通信インタフェースを選択したときに、当該通信インタフェースの状態に基づいてタイムアウトの判定基準時刻を決定する付記１から付記４のうちのいずれかに記載の通信端末。
【０１９７】
（付記６）制御手段は、規則に従って通信インタフェースを選択し、パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力された場合、前記規則を更新する付記１から付記５のうちのいずれかに記載の通信端末。
【０１９８】
（付記７）それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する複数の通信インタフェース（例えば、通信インタフェース１１）を備える通信端末に適用される通信方法であって、パケット生成手段（例えば、通信ソフトウェア基本部１３）が、宛先となる装置（例えば、サーバ４、名前解決サーバ５）からサービスの提供を受けるためのデータに基づいてパケットを生成し、制御手段（例えば、制御部１４）が、前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻（例えば、時刻Ｔ）までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示し、前記パケット処理手段（例えば、通信処理部１５）が、前記制御手段の指示に従ってパケットを、前記制御手段によって選択された通信インタフェースに送ることを特徴とする通信方法。
【０１９９】
（付記８）パケット生成手段が、パケット処理手段のアドレスを送信元とするパケットを生成し、制御手段が、前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示する付記７に記載の通信方法。
【０２００】
（付記９）対応関係記憶手段（例えば、名前解決サーバアドレス記憶部１６）が、名前解決サーバのアドレスと通信インタフェースとの対応関係を記憶し、名前解決サーバ選択手段（例えば、名前解決部１７）が、複数の名前解決サーバの中から１つの名前解決サーバを選択し、選択した名前解決サーバをパケット生成手段に対して指定し、前記パケット生成手段が、前記名前解決サーバ選択手段によって指定された名前解決サーバのアドレスを送信先アドレスとするパケット（例えば、名前解決要求パケット）を、名前解決の対象となる装置名（例えば、サーバ４の名前）に基づいて生成し、制御手段が、前記パケット生成手段によって生成されたパケットの送信先アドレスと、選択した通信インタフェースに対応する名前解決サーバのアドレスとが一致していない場合、前記パケットの送信先アドレスを、選択した通信インタフェースに対応する名前解決サーバのアドレスに書き換えることをパケット処理手段に指示する付記７または付記８に記載の通信方法。
【０２０１】
（付記１０）制御手段が、選択した通信インタフェースから出力されたパケットに対する応答となる応答パケット（例えば、名前解決応答パケット）が名前解決サーバから伝達された場合、当該応答パケットに含まれている名前解決の対象となる装置のアドレス（例えば、サーバ４のアドレス）を抽出し、当該アドレスを送信先アドレスとするパケットが生成されたときに、前記応答パケットを受信した通信インタフェースを選択する付記９に記載の通信方法。
【０２０２】
（付記１１）状態管理手段（例えば、状態管理部１９）が、各通信インタフェースの状態を示す状態情報を状態記憶手段（例えば、状態記憶部１８）に記憶させ、制御手段が、通信インタフェースを選択したときに、当該通信インタフェースの状態に基づいてタイムアウトの判定基準時刻を決定する付記７から付記１０のうちのいずれかに記載の通信方法。
【０２０３】
（付記１２）制御手段が、規則に従って通信インタフェースを選択し、パケット生成手段によって生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力された場合、前記規則を更新する付記７から付記１１のうちのいずれかに記載の通信方法。
【０２０４】
（付記１３）それぞれが複数の無線ネットワークのうちの少なくとも１つの無線ネットワークに対応する通信インタフェース（例えば、通信インタフェース１１）と、指示された通信インタフェースに対してパケットを送るパケット処理手段（例えば、通信処理部１５）を備えるコンピュータに搭載される通信プログラムであって、前記コンピュータに、宛先となる装置（例えば、サーバ４、名前解決サーバ５）からサービスの提供を受けるためのデータに基づいてパケットを生成するパケット生成処理、および、前記複数の通信インタフェースの中から１つの通信インタフェースを選択し、前記パケット生成処理で生成されたパケットを当該通信インタフェースに送ることを前記パケット処理手段に指示し、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻（例えば、時刻Ｔ）までに入力されない場合、前記通信インタフェースとは異なる通信インタフェースを選択し、前記パケットのコピーを当該通信インタフェースに送ることを前記パケット処理手段に指示する制御処理を実行させるための通信プログラム。
【０２０５】
（付記１４）コンピュータに、パケット生成処理で、パケット処理手段のアドレスを送信元とするパケットを生成させ、制御処理で、前記パケットの送信元アドレスを、選択した通信インタフェースのアドレスに書き換えることを前記パケット処理手段に指示させる付記１３に記載の通信プログラム。
【０２０６】
（付記１５）名前解決サーバのアドレスと通信インタフェースとの対応関係を記憶する対応関係記憶手段（例えば、名前解決サーバアドレス記憶部１６）を備えるコンピュータに、複数の名前解決サーバの中から１つの名前解決サーバを選択する名前解決サーバ選択処理を実行させ、パケット生成処理で、前記名前解決サーバ選択処理で選択された名前解決サーバのアドレスを送信先アドレスとするパケット（例えば、名前解決要求パケット）を、名前解決の対象となる装置名（例えば、サーバ４の名前）に基づいて生成し、制御処理で、前記パケット生成処理で生成されたパケットの送信先アドレスと、選択した通信インタフェースに対応する名前解決サーバのアドレスとが一致していない場合、前記パケットの送信先アドレスを、選択した通信インタフェースに対応する名前解決サーバのアドレスに書き換えることをパケット処理手段に指示させる付記１３または付記１４に記載の通信プログラム。
【０２０７】
（付記１６）コンピュータに、制御処理で、選択した通信インタフェースから出力されたパケットに対する応答となる応答パケット（例えば、名前解決応答パケット）が名前解決サーバから伝達された場合、当該応答パケットに含まれている名前解決の対象となる装置のアドレス（例えば、サーバ４のアドレス）を抽出させ、当該アドレスを送信先アドレスとするパケットが生成されたときに、前記応答パケットを受信した通信インタフェースを選択させる付記１５に記載の通信プログラム。
【０２０８】
（付記１７）各通信インタフェースの状態を示す状態情報を記憶する状態記憶手段（例えば、状態記憶部１８）を備えるコンピュータに、各通信インタフェースの状態を示す状態情報を前記状態記憶手段に記憶させる状態管理処理を実行させ、制御処理で、通信インタフェースを選択したときに、当該通信インタフェースの状態に基づいてタイムアウトの判定基準時刻を決定させる付記１３から付記１６のうちのいずれかに記載の通信プログラム。
【０２０９】
（付記１８）コンピュータに、制御処理で、規則に従って通信インタフェースを選択させ、パケット生成処理で生成されたパケットを当該通信インタフェースに送ることをパケット処理手段に指示させ、前記パケットに対する応答となる応答パケットがタイムアウトの判定基準時刻までに入力された場合、前記規則を更新させる付記１３から付記１７のうちのいずれかに記載の通信プログラム。
【０２１０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２１１】
この出願は、２０１３年１２月６日に出願された日本特許出願２０１３−２５２６６３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０２１２】
本発明は、複数の無線ネットワークに接続可能な通信端末に好適に適用される。
【符号の説明】
【０２１３】
１  通信端末
１１ａ，１１ｂ  通信インタフェース
１２  データ授受部
１３  通信ソフトウェア基本部
１４  制御部
１５  通信処理部
１６  名前解決サーバアドレス記憶部
１７  名前解決部
１８  状態記憶部
１９  状態管理部
【図１】
2015083320.tif 000003
【図２】
2015083320.tif 000004
【図３】
2015083320.tif 000005
【図４】
2015083320.tif 000006
【図５】
2015083320.tif 000007
【図６】
2015083320.tif 000008
【図７】
2015083320.tif 000009
【図８】
2015083320.tif 000010
【図９】
2015083320.tif 000011
【図１０】
2015083320.tif 000012
【図１１】
2015083320.tif 000013
【図１２】
2015083320.tif 000014
【図１３】
2015083320.tif 000015
【図１４】
2015083320.tif 000016
【図１５】
2015083320.tif 000017
【図１６】
2015083320.tif 000018
【図１７】
2015083320.tif 000019
【図１８】
2015083320.tif 000020
【図１９】
2015083320.tif 000021
【国際調査報告】
2015083320.tif 000022
2015083320.tif 000023
2015083320.tif 000024
2015083320.tif 000025