(57)【特許請求の範囲】
【請求項１】
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置であって、
前記第２のネットワークに接続する他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが重複しているか否かを判定するためのアドレス解決であって、前記他の通信装置が実行するアドレス解決を、前記第２のネットワークにおいて検知する検知手段と、
前記検知手段により検知された前記アドレス解決により示される、前記他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認手段と、
前記確認手段により使用中でないことが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶手段と、
を有することを特徴とする通信装置。
【請求項２】
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置であって、
前記第２のネットワークにおける他の通信装置からのアドレス解決を検知する検知手段と、
前記検知手段により検知された前記アドレス解決に含まれている送信元のアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認手段と、
前記確認手段により使用中でないことが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶手段と、
前記第２のネットワークにおいて前記他の通信装置に対するアドレス解決要求を通知する通知手段と、
前記通知手段により通知したアドレス解決要求に対する応答を受信する受信手段と、
前記応答を受信できなかった場合に前記記憶手段に記憶した前記他の通信装置に関する情報を削除する削除手段と、
を有することを特徴とする通信装置。
【請求項３】
前記検知手段は、前記他の通信装置が送信したアドレス解決プロトコルのパケットを受信することにより、前記他の通信装置の前記アドレス解決を検知することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記記憶手段により記憶した情報に基づいて、前記他の通信装置のアドレスに対してデータを送信する際には、前記第２のネットワークにデータを送信する送信手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記アドレスは論理アドレスであり、
前記記憶手段は、ルーティングテーブルに前記論理アドレスのみを宛先論理アドレスとするエントリ情報を登録することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記記憶手段は、前記論理アドレスに対応したネットワークエントリが既に前記ルーティングテーブルに登録されており、且つ、当該ネットワークエントリが前記第２のネットワーク以外のインターフェースに対応する場合は、前記エントリ情報をホストエントリの形態で前記ルーティングテーブルに登録し、
他の場合には、前記エントリ情報を、前記論理アドレスに対応し、前記第２のネットワークのインターフェースに対応したネットワークエントリと、前記論理アドレスを登録したリストとにより前記ルーティングテーブルに登録することを特徴とする請求項５に記載の通信装置。
【請求項７】
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置であって、
前記第２のネットワークにおける他の通信装置のアドレスを検知する検知手段と、
前記検知手段により検知された前記他の通信装置のアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認手段と、
前記確認手段により使用中でないことが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶手段と、を有し、
前記アドレスは論理アドレスであり、
前記記憶手段は、
ルーティングテーブルに前記論理アドレスのみを宛先論理アドレスとするエントリ情報を登録し、
前記論理アドレスに対応したネットワークエントリが既に前記ルーティングテーブルに登録されており、且つ、当該ネットワークエントリが前記第２のネットワーク以外のインターフェースに対応する場合は、前記エントリ情報をホストエントリの形態で前記ルーティングテーブルに登録し、
他の場合には、前記エントリ情報を、前記論理アドレスに対応し、前記第２のネットワークのインターフェースに対応したネットワークエントリと、前記論理アドレスを登録したリストとにより前記ルーティングテーブルに登録することを特徴とする通信装置。
【請求項８】
前記確認手段により前記アドレスが使用中であることが確認された場合に、その旨を前記アドレスを要求した送信元に通知する手段を更に備えることを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記第１のネットワークは無線ＬＡＮのインフラネットワークであり、前記第２のネットワークは無線ＬＡＮのアドホックネットワークであることを特徴とする請求項１乃至８のいずれか１項に記載の通信装置。
【請求項１０】
前記アドレスはＩＰｖ４の論理アドレスであり、前記アドレス解決プロトコルはＡＲＰ（AddressResolution Protocol）であることを特徴とする請求項３に記載の通信装置。
【請求項１１】
前記アドレスはＩＰｖ６の論理アドレスであり、前記アドレス解決プロトコルはＮＤＰ（NeighborDiscovery Protocol）であることを特徴とする請求項３に記載の通信装置。
【請求項１２】
前記第１のネットワークおよび前記第２のネットワークは無線ネットワークであることを特徴とする請求項１乃至１１のいずれか１項に記載の通信装置。
【請求項１３】
前記通信装置が前記第１のネットワークで通信する場合、前記第１のネットワークを形成したアクセスポイントを介して、前記第１のネットワークに所属するステーションとしての装置と通信し、
前記通信装置が前記第２のネットワークで通信する場合、前記通信装置は、前記第２のネットワークに所属する装置と、中継装置を介することなく、直接に通信することを特徴とする請求項１２に記載の通信装置。
【請求項１４】
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置の制御方法であって、
前記第２のネットワークに接続する他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが重複しているか否かを判定するためのアドレス解決であって、前記他の通信装置が実行するアドレス解決を、前記第２のネットワークにおいて検知する検知工程と、
前記検知工程において検知された前記アドレス解決により示される、前記他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認工程と、
前記確認工程において使用中であることが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶工程と、
を有することを特徴とする制御方法。
【請求項１５】
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置の制御方法であって、
前記第２のネットワークにおける他の通信装置のアドレスを検知する検知工程と、
前記検知工程において検知された前記他の通信装置のアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認工程と、
前記確認工程において使用中であることが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶工程と、を有し、
前記アドレスは論理アドレスであり、
前記記憶工程では、
ルーティングテーブルに前記論理アドレスのみを宛先論理アドレスとするエントリ情報を登録し、
前記論理アドレスに対応したネットワークエントリが既に前記ルーティングテーブルに登録されており、且つ、当該ネットワークエントリが前記第２のネットワーク以外のインターフェースに対応する場合は、前記エントリ情報をホストエントリの形態で前記ルーティングテーブルに登録し、
他の場合には、前記エントリ情報を、前記論理アドレスに対応し、前記第２のネットワークのインターフェースに対応したネットワークエントリと、前記論理アドレスを登録したリストとにより前記ルーティングテーブルに登録することを特徴とする制御方法。
【請求項１６】
コンピュータを、請求項１乃至１３のいずれか１項に記載の通信装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信インターフェースを有する通信装置、及びその制御方法に関する。
【背景技術】
【０００２】
ＩＥＥＥ８０２．１１規格シリーズに準拠した無線ＬＡＮ（以下、ＷＬＡＮと記載する場合もある）に代表される無線通信機能を有した電子機器が数多く発売されている。このような無線ＬＡＮには、インフラストラクチャモードとアドホックモードの２つのモードが存在する。インフラストラクチャモードでは、無線ネットワークの管理を行うアクセスポイント（以下、ＡＰ）と当該無線ネットワークに接続して通信を行う通信端末（以下、ＳＴＡ）とによりインフラネットワークが構成される。インフラネットワークにおけるＳＴＡのデータ通信は常にＡＰを経由して行われる。
【０００３】
また、インフラネットワークではＡＰを介して広域通信網（以下、ＷＡＮ）との通信が可能である。そのため、データ通信にはＬＡＮ内のＤＨＣＰサーバ又はＡＰが内蔵するＤＨＣＰサーバ機能により割り当てられたルータブルアドレスを用いるのが一般的である。ここでルータブルアドレスとは、ルータに転送可能なＩＰアドレスを示している。
【０００４】
一方、アドホックモードでは、無線ネットワークを管理する装置は必要とされず、ＳＴＡのみによりアドホックネットワークが構成される。アドホックネットワークにおけるデータ通信は各ＳＴＡ間で直接行われる。また、アドホックネットワークでは、ネットワークを管理する装置が存在しないという特性上、データ通信にはリンクローカルアドレスを用いるのが一般的である。ここで、例えば、ＩＰｖ４におけるリンクローカルアドレスとしては、169.254.0.0〜169.254.255.255が利用されている。
【０００５】
近年では、インフラモードとアドホックモードの両方の機能を同時動作可能な機器が開発されている。このような機器では、内部的にインフラモードとアドホックモードを夫々別の通信インターフェースとして管理するのが一般的である。そのため、物理的に複数のインターフェースを持った機器と同様の制御が必要となる。
【０００６】
複数のインターフェースを備えた機器の場合、アプリケーションが送信しようとするデータをどのインターフェースから送信するかを選択する制御が必要となる。しかし、ほとんどの通信アプリケーションではインターフェースを選択する制御は行っていない。そのため、通信レイヤのいずれかの階層においてデータ送信に使用するインターフェースを選択する制御が必要となる。
【０００７】
このような、データ送信に使用するインターフェースを選択する制御は、ＩＰ層のルーティングテーブルを用いて行われるのが一般的である。ルーティングテーブルには宛先ＩＰアドレス、ゲートウェイＩＰアドレス、インターフェースなどを一組とするエントリが経路毎に登録されている。ＩＰ層では、上位層から送信要求があると、ルーティングテーブルから、送信データの宛先ＩＰアドレスと合致するエントリを検索する。ルーティングテーブルに合致するエントリが存在する場合は、エントリのインターフェース情報をもとにデータの送信に使用するインターフェースが決定される。
【０００８】
しかし、ルーティングテーブルを利用して複数インターフェースの制御を行うには適切な設定を行う必要があり、設定には専門的な知識を必要とするため、一般的なユーザには困難な作業となっていた。そこで、ＭＡＣ層とＩＰ層の間に送信に使用するインターフェースを選択するための階層を追加することにより、ルーティングテーブルの設定を行うことなくインターフェース選択制御を行う方法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２８９８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のルーティングテーブルを用いたインターフェース選択制御では、同一のネットワークアドレスに対するエントリが存在する場合、適切にインターフェースが選択できないという課題があった。特にインフラモードとアドホックモードとを同時動作させる場合、以下のような課題が発生する。
【００１１】
ルータブルアドレスを設定された端末が、リンクローカルアドレスを設定された他の端末と通信するために、当該端末のルーティングテーブルにリンクローカルのネットワークアドレス宛てのエントリを登録する。例えば、当該端末にインフラネットワークにおいて192.168.1.10というＩＰアドレスが設定されている場合、ルーティングテーブルにたとえば次のようなエントリが登録される。
・宛先ＩＰアドレス：          169.254.0.0/16
・ゲートウェイＩＰアドレス：  192.168.1.10
・インターフェース：          ＷＬＡＮ（Infra mode）
このエントリにより、169.254.0.0〜169.254.255.255宛てのデータ送信はＷＬＡＮ（Infra mode）のインターフェースが選択される。
【００１２】
一方、アドホックネットワークでは、リンクローカルアドレスを用いるのが一般的であるため、リンクローカルアドレスが設定された他の端末と通信するために、たとえば次のようなエントリがルーティングテーブルに登録される。
・宛先ＩＰアドレス：          169.254.0.0/16
・ゲートウェイＩＰアドレス：  169.254.11.22
・インターフェース：          ＷＬＡＮ（Adhoc mode）
このエントリにより、169.254.0.0〜169.254.255.255宛てのデータ送信はＷＬＡＮ（Adhoc mode）のインターフェースが選択される。
【００１３】
これらのルーティングテーブルの設定は、インフラモードとアドホックモードを排他的に使用する場合はどちらか片方のエントリしか登録されていないため問題とならない。しかし、両モードを同時に使用するために上記二つのエントリを登録した場合、宛先ＩＰアドレスが同一のエントリが二つ存在するため、インターフェースの選択を適切に行えなくなってしまう。
【００１４】
また、ＭＡＣ層とＩＰ層の間に送信に使用するインターフェースを選択するための階層を追加する方法は既存のネットワークスタックに大規模な修正が必要となり、開発負荷が高い。さらに、このような修正は汎用性が乏しいため、使用するネットワークスタック毎に夫々の仕様に合わせた修正を行う必要があり、開発負荷を増大させる要因となりえるといった課題があった。
【００１５】
本発明は、上記の課題に鑑みてなされたものであり、複数のネットワークで並行して通信する場合においても、アプリケーションからのデータを適切なネットワークに対して送信することが可能な通信装置及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するための本発明の一態様による通信装置は以下の構成を有する。すなわち、
第１のネットワークと、前記第１のネットワークとは異なる第２のネットワークとで並行して通信可能な通信装置であって、
前記第２のネットワークに接続する他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが重複しているか否かを判定するためのアドレス解決であって、前記他の通信装置が実行するアドレス解決を、前記第２のネットワークにおいて検知する検知手段と、
前記検知手段により検知された前記アドレス解決により示される、前記他の通信装置が前記第２のネットワークにおいて通信するためのアドレスが、前記第１のネットワークにおいて使用中か否かを確認する確認手段と、
前記確認手段により使用中でないことが確認された場合、当該アドレスに対してデータを送信する際には前記第２のネットワークにデータを送信することを記憶する記憶手段と、を有する。
【発明の効果】
【００１７】
複数のネットワークで並行して通信する場合においても、アプリケーションからのデータを適切なネットワークに対して送信することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】実施形態によるネットワーク構成例を示す図。
【図２】実施形態の通信装置の構成を示すブロック図。
【図３】通信装置内のソフトウェア機能を示すブロック図。
【図４】第一実施形態における装置の処理を示すフローチャート。
【図５】第一実施形態における装置の処理を示すフローチャート。
【図６】第一実施形態における装置間の処理シーケンスを示す図。
【図７】第一実施形態における装置間の処理シーケンスを示す図。
【図８】第一実施形態におけるルーティングテーブルの一例を示す図。
【図９】第二実施形態における装置の処理を示すフローチャート。
【図１０】第二実施形態における装置の処理を示すフローチャート。
【発明を実施するための形態】
【００１９】
以下、本実施例に係る通信装置について、図面を参照しながら詳細に説明する。以下では、ＩＥＥＥ８０２．１１シリーズに準拠した無線ＬＡＮシステムを用いた例について説明するが、本発明が採用可能な通信形態は必ずしもＩＥＥＥ８０２．１１準拠の無線ＬＡＮに限られるものではない。
【００２０】
［第一実施形態］
図１は、本実施形態に係る通信装置である第１のステーション（以下、ＳＴＡ１）、アクセスポイント（以下、ＡＰ）および、第２、第３のステーション（以下、ＳＴＡ２、ＳＴＡ３）を含むネットワークシステムの構成例を示した図である。１１はＡＰであり、ＬＡＮおよびＷＡＮでの通信が可能な第１のネットワークを構成し管理している。本実施形態では、第１のネットワークとして無線ＬＡＮのインフラネットワーク１５を用いた例を説明する。ＡＰはＷＡＮに接続しており、インフラネットワーク１５配下の端末はＡＰを介してＷＡＮでの通信が可能である。１２はインフラモードとアドホックモードの両方の機能を同時動作可能なＳＴＡ１であり、インフラモードでインフラネットワーク１５に接続している。また、ＳＴＡ１はアドホックモードでアドホックネットワーク１６を構成している。１３はＳＴＡ２であり、ＬＡＮでの通信のみが可能な第２のネットワークを構成している。本実施形態では、第２のネットワークとしてアドホックネットワーク１６を用いた例を説明する。１４はＳＴＡ３であり、インフラネットワーク１５に接続している。インフラネットワーク１５とアドホックネットワーク１６は独立して動作しており、ネットワーク識別子（以下、ＳＳＩＤ）、認証方式、暗号方式等は異なっていてもよい。図１に示されるように、第１のネットワークと第２のネットワークとは並行して動作している。
【００２１】
図２は通信装置１２（ＳＡＴ１）の構成の一例を表す機能ブロック図である。２０１は、通信装置１２の全体を示す。２０２は表示部であり、各種表示を行う。表示部２０２は、視覚での認知が可能なように情報を出力する機能を持つＬＣＤやＬＥＤ、及び／あるいは、音出力が可能な機能を有するスピーカを具備する。２０３は制御部であり、記憶部２０４に記憶される制御プログラムを実行することにより装置全体を制御する。２０４は記憶部であり、制御部２０３が実行する制御プログラムを記憶する。後述する各種動作は、記憶部２０４に記憶された制御プログラムを制御部２０３が実行することにより行われる。２０５は入力部であり、後述するネットワーク検索処理をユーザが指示することなどに用いられる。２０６は無線通信を行うための無線部である。２０７はアンテナ制御部である。また、２０８はアンテナ制御部２０７により制御されるアンテナである。また、本実施形態を適用可能な構成として、２０６乃至２０８とは別に無線部、アンテナ制御部、アンテナ部をもう一組有する構成でも良い。
【００２２】
図３は、制御部２０３が実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。無線制御部３０１は、後述する３０４乃至３０５の各機能ブロックを含み、無線部２０６を制御する。ＡＲＰ制御部３０２は、後述する３０６乃至３０９の各機能ブロックを含み、アドレス解決プロトコル（Address Resolution Protocol（以下、ＡＲＰ））を制御する。ＩＰ制御部３０３は、後述する３１０乃至３１３の各機能ブロックを含み、インターネットプロトコル（Internet Protocol（以下、ＩＰ））の通信制御を行う。
【００２３】
無線制御部３０１において、インフラモード制御部３０４は、インフラモードの無線通信を制御する。アドホックモード制御部３０５は、アドホックモードの無線通信を制御する。このような構成により、無線制御部３０１は、アクセスポイントを介して通信が行われるインフラネットワークと、アクセスポイントを介さずに通信が行われるアドホックネットワークとで同時に通信可能となっている。
【００２４】
ＡＲＰ制御部３０２において、Ｐｒｏｂｅ検知部３０６は、他の装置が送信するARPProbeを検知する。ARP Probeはリンクローカルアドレスの使用を開始する前に同じネットワーク内の論理アドレス（本実施形態ではＩＰアドレス）の重複を確認するために送信されるメッセージである。なお、ARP Probeは通常のARP Requestとは異なり、Sender Protocol Address（以下、ＳＰＡ）に0.0.0.0を示す値がセットされる。重複確認部３０７は、ＡＲＰを使ったアドレス解決が成功した否かにより、同一のＩＰアドレスを使用している端末がネットワークに存在するかを確認する。存在確認部３０８は、ＡＲＰを使ったアドレス解決が成功した否かにより、特定のＩＰアドレスを使用している端末がネットワーク内に存在していることを確認する。重複通知部３０９は、ＡＲＰパケットを用いて他の端末にＩＰアドレスの重複を通知する。
【００２５】
ＩＰ制御部３０３において、パケット受信部３１０は、通信で用いるパケットを受信する。パケット送信部３１１は、通信で用いるパケットを送信する。ルーティングエントリ登録部３１２は、ルーティングテーブルにエントリを登録する。ルーティングエントリ削除部３１３は、ルーティングテーブルからエントリを削除する。
【００２６】
図４は、本実施形態によるＳＴＡ１のルーティングテーブル設定処理を示したフローチャートである。ＳＴＡ１のＰｒｏｂｅ検知部３０６は、第２のネットワークとしてのアドホックネットワークにおいて、アドレス解決プロトコルのパケット（本実施形態では、ARP Probeとする）を受信するまで待機する（Ｓ４０１）。Ｐｒｏｂｅ検知部３０６がARPProbeの受信を検知したら、重複確認部３０７は、ARP Probeに記載されている送信元の論理アドレスが第１のネットワークとしてのインフラネットワークにおいて使用中か否かを確認する。すなわち、重複確認部３０７は、インフラネットワークでARP Probeに記載されているＩＰアドレスが重複するか否か確認を行う（Ｓ４０２、Ｓ４０３）。
【００２７】
より具体的には、重複確認部３０７は、Ｓ４０１で受信したARP ProbeのTarget Protocol Address（以下、ＴＰＡ）にセットされているＩＰアドレスと同一のＩＰアドレスが使用されているかを確認する。確認の手順の一例としては、ARP Requestを送信し、ARP Replyの返信によりアドレス解決に成功した場合は重複するＩＰアドレスが使用されているとみなすことが挙げられる。もちろん、その他の方法を用いてもよい。また、通信装置が３つ以上の通信インターフェースを備えている場合は、ARP Probeを受信した通信インターフェース以外の通信インターフェースからARPRequestを送信することで実現可能である。
【００２８】
重複通知部３０９は、Ｓ４０３における判定の結果、ＩＰアドレスの重複を確認したら、アドホックネットワークにおいてARP Probeを送信した端末（アドレスの取得を要求した端末）にＩＰアドレスの重複を通知する（Ｓ４０８）。重複の通知は、ARP Probeに対する応答としてARP Replyを送信することで実現可能であるし、その他の手順、構成を用いてもよい。また、Ｓ４０３の結果、ＩＰアドレスが重複していなかった場合（未使用であった場合）は、ARP Announcementを所定の時間待受ける（Ｓ４０４、Ｓ４０５）。所定の時間内にARP Announcementを受信できなかった場合は処理を終了する。ARPAnnouncementを受信できないケースとしては、ARP Probeを送信した端末がAutoIPの処理を中断した場合や、アドホックネットワーク内で他の端末同士のＩＰアドレスが重複した場合などが考えられる。
【００２９】
ARP Announcementを受信した場合、ルーティングエントリ登録部３１２は、Sender Protocol Address（以下、ＳＰＡ）にセットされたＩＰアドレスを宛先ＩＰアドレス（宛先論理アドレス）とするホストエントリを、ルーティングテーブルに追加する（Ｓ４０６）。ここで、ネットワークエントリは宛先ＩＰアドレスをＩＰアドレスの範囲で指定するのに対し、ホストエントリは宛先ＩＰアドレスを単一のＩＰアドレスで指定する。そのため、ホストエントリを用いることで特定の端末に対する経路情報をルーティングテーブルに登録することができる。ホストエントリの登録が完了すると、次に存在確認部３０８が存在確認処理を行う（Ｓ４０７）。存在確認処理が完了すると本処理は終了となる。以下、Ｓ５０７における存在確認処理について詳細に説明する。
【００３０】
図５は、ＳＴＡ１による存在確認処理（Ｓ４０７）を示したフローチャートである。まず、ＳＴＡ１の存在確認部３０８は所定の周期で上記ホストエントリに登録されたＩＰアドレスに対するアドレス解決要求をアドホックネットワークにおいて通知する。この処理はＳ５０１、Ｓ５０２により実現される。すなわち、存在確認部３０８は、まず、所定時間待機する（Ｓ５０１）。そして、所定時間の待機が完了すると、存在確認部３０８は、存在確認対象のＩＰアドレスに対するアドレス解決を実施するため、ARP Requestを送信する（Ｓ５０２）。次に、存在確認部３０８は、アドレス解決応答（本実施形態では、当該ARP Requestに対する応答であるARP Reply）を一定時間待受ける（Ｓ５０３、Ｓ５０４）。ARP Requestの送信から一定時間内にARP Replyを受信したと判断された場合（Ｓ５０４でＹＥＳ）、対象のＩＰアドレスを使用している端末が存在していると判断され、処理はＳ５０１に戻り、存在確認部３０８は再度所定時間だけ待機する。他方、一定時間内にARP Replyを受信できなかった場合（Ｓ５０４４でＮＯ）、対象のＩＰアドレスを使用している端末は存在しないと判断される。この場合、ルーティングエントリ削除部３１３は、存在確認対象のＩＰアドレスを宛先ＩＰアドレスとするホストエントリをルーティングテーブルから削除する（Ｓ５０５）。エントリの削除が完了したら存在確認処理は終了となる。
【００３１】
図６は、ＡＰが構築するインフラネットワークにＳＴＡ１が接続しており、ＳＴＡ１とＳＴＡ２がアドホックネットワークを構成した状態でＳＴＡ２がAutoIPでＩＰアドレスを設定する際のシーケンス図である。なお、ＡＰのＩＰアドレスには192.168.1.1が設定されている。また、ＳＴＡ１のインフラモードのＩＰアドレスには192.168.1.10が設定されており、ＳＴＡ１のアドホックモードのＩＰアドレスには169.254.11.22が設定されている。また、シーケンス開始時点でのＳＴＡ１のルーティングテーブルは図８の（Ａ）に示す通りである。
【００３２】
まず、ＳＴＡ２はリンクローカルアドレスを生成する（Ｆ６０１）。この例では、169.254.73.50というＩＰアドレスが生成されたものとする。次に、ＳＴＡ２は、AutoIPの重複アドレス検知処理として、ARP Probeをアドホックネットワーク内にブロードキャスト送信する（Ｆ６０２）。
【００３３】
ＳＴＡ１では、Ｐｒｏｂｅ検知部３０６がＳＴＡ２のARP Probeを受信すると、Ｓ４０１，Ｓ４０２で説明したように、重複確認部３０７がインフラネットワークに同一のＩＰアドレスが使用されていないかを確認する重複確認を開始する（Ｆ６０３）。ＳＴＡ１の重複確認部３０７は、ＡＰを経由してARP Requestをインフラネットワーク内にブロードキャスト送信する（Ｆ６０４）。この例では、インフラネットワーク内に169.254.73.50を使用している端末が存在しないため、ARP Replyは返信されず、重複確認部３０７は重複するＩＰアドレスは存在しないと判断する。
【００３４】
ＳＴＡ２は、ARP Probeを送信してから所定の時間が経過するまで重複通知（Ｓ４０８、ARP Reply）を受信しなかった場合は、重複アドレスが存在しないと判断し、Ｆ６０１で生成したアドレスをＩＰアドレスに確定する（Ｆ６０５）。そして、ＳＴＡ２は、ARP Announcementをアドホックネットワーク内にブロードキャスト送信する（Ｆ６０６，Ｆ６０７）。ARP AnnouncementはGratuitous ARPとも呼ばれ、通常のARP Requestとは異なり、ＴＰＡに自装置が使用するＩＰアドレスがセットされている。ＳＴＡ１のルーティングエントリ登録部３１２は、ARP Announcementを受信するとＳＴＡ２のＩＰアドレス（ARPAnnouncementにセットされているＩＰアドレス）を宛先ＩＰアドレスとするホストエントリを登録する（Ｆ６０８）。
【００３５】
Ｆ６０８で更新されたルーティングテーブルを図８（Ｂ）に示す。Ｎｏ．１のエントリにより、169.254.73.50宛のデータはＷＬＡＮ（Adhoc mode）のインターフェースが選択される。また、Ｎｏ．２のエントリにより１６９．２５４．７３．５０以外の１６９．２５４．０．０〜１６９．２５４．２５５．２５５宛のデータ送信はＷＬＡＮ（Infra mode）のインターフェースが選択される。
【００３６】
ＳＴＡ１の存在確認部３０８は、エントリの登録が完了すると、当該エントリの存在確認のために所定の時間待機し（Ｆ６０９）、ＳＴＡ２のＩＰアドレスのアドレス解決処理を開始する。すなわち、ＳＴＡ１の存在確認部３０８はARP Requestをアドホックネットワーク内にブロードキャスト送信し（Ｆ６１０）、ＳＴＡ２からARP Replyを受信する（Ｆ６１１）ことでＳＴＡ２の存在を確認する。以後、存在確認部３０８はＦ６０９乃至Ｆ６１１の処理を繰返し行い、ＳＴＡ２の存在が確認できない場合はルーティングエントリ削除部３１３がＦ６０８で登録したホストエントリを削除する。
【００３７】
次に、図７を用いて、インフラネットワークにおいて重複が検知された場合の動作例を示す。図７は、ＡＰが構築するインフラネットワークにＳＴＡ１及び第３のステーションＳＴＡ３が接続しており、ＳＴＡ１とＳＴＡ２がアドホックネットワークを構成した状態でＳＴＡ２がAutoIPでＩＰアドレスを設定する際のシーケンス図である。
【００３８】
Ｆ７０１乃至Ｆ７０４の処理は、Ｆ６０１乃至Ｆ６０４と同様である。ＳＴＡ３がARPRequestを受信する（Ｆ７０５）と、Target Protocol Address（ＴＰＡ）が自装置のＩＰアドレスと同一であると判断する。ARP RequestのＴＰＡが自装置のＩＰアドレスと同一であると判断したＳＴＡ３は、ＡＰを経由してＳＴＡ１にARP Replyを返信する（Ｆ７０６、Ｆ７０７）。このARP Replyを受信したＳＴＡ１の重複確認部３０７は、ＳＴＡ２が割り当てようとしているＩＰアドレスがインフラネットワーク内で使用中であると判断する（Ｆ７０８）。そして、重複通知部３０９は、ＩＰアドレスの重複を通知するためにARP ReplyをＳＴＡ２に送信する（Ｆ７０９）。ＳＴＡ２はARP Replyを受信すると、Ｆ７０１で生成したＩＰアドレスが重複していると判断し、同ＩＰアドレスの使用を断念する（Ｆ７１０）。ＳＴＡ２はアドレスの割り当てに失敗した場合、再度ＩＰアドレスの生成からAutoIPの処理をやり直す。
【００３９】
以上、第一実施形態では、インフラモードとアドホックモードの二つの通信インターフェースを備える通信装置を例に説明したが、他の通信インターフェースを備えた場合でも適用可能である。例えば、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））と無線ＬＡＮの２つの通信インターフェースを備えた通信装置にも適用可能である。また、三つ以上の通信インターフェースを備えた通信装置にも適用可能である。
【００４０】
また、第一実施形態では、ＩＰｖ４のルーティングテーブルを管理するために、ＡＲＰを用いた例を示したが、これに限られるものではない。例えば、ＡＲＰの代わりにＩＣＭＰｖ６のNeighbor SolicitationとNeighbor DiscoveryProtocol（ＮＤＰ）を用いることで、ＩＰｖ６においても同様の動作を実施することが可能である。
【００４１】
以上説明したように、第一実施形態によれば、通信装置はアドホックネットワーク内の他の端末に対するホストエントリを適切に管理することが可能である。そのため、インフラネットワーク内のリンクローカルアドレスが設定された端末と通信が可能な状態を維持したまま、アドホックネットワーク内のリンクローカルアドレスが設定された端末とも通信が可能となる。
なお、上述の説明では、ARP Probeを用いてアドレスの重複確認を行ったが、ARP RequestやARP Announceなどの他のＡＲＰパケットを用いてアドレスの重複確認を行うようにしてもよい。
【００４２】
［第二実施形態］
次に、図面を参照しながら本発明に係る第二実施形態を詳細に説明する。第一実施形態では、アドホックネットワークの通信装置であるＳＴＡ２が生成したＩＰアドレスがインフラネットワークで未使用のＩＰアドレスであった場合に、当該ＩＰアドレスのエントリ情報をホストエントリとしてルーティングテーブルに登録した。第二実施形態では、当該未使用のＩＰアドレスを宛先に含み、且つ、第２のネットワーク以外のインターフェースに対応するネットワークエントリが存在する場合に、上記エントリ情報をホストエントリの形態で登録する。そして、その他の場合には第２のネットワークのインターフェースに対応するネットワークエントリと当該ＩＰアドレスを登録したリストという形態で上記エントリ情報を登録する。尚、第二実施形態におけるネットワークシステムの構成、通信装置の構成は第１実施形態と同様であり、図１乃至図３を用いて説明したとおりである。第二実施形態では、第一実施形態と同様にＳＴＡ１がＳＴＡ２と通信するためのルーティングテーブル管理方法について説明する。
【００４３】
図９は第二実施形態におけるＳＴＡ１がルーティングテーブルを管理するための処理を説明するフローチャートである。ＳＴＡ１は、パケット受信部３１０によりＡＲＰパケットが受信されるまで待機する（Ｓ９０１）。なお、ＡＲＰパケットには、ARP Request、ARP Probe、ARP Announceなどが含まれ、これら全てのパケットを対象としても良いし、特定のパケットに限定しても良い。
【００４４】
ＳＴＡ１の重複確認部３０７は、ＡＲＰパケットを受信するとＳ４０２と同様に他のネットワークにおいてＩＰアドレスの重複確認を行う（Ｓ９０２、Ｓ９０３）。確認の結果、重複していると判断したら、Ｓ４０８と同様に重複通知部３０９が当該ＡＲＰパケットの送信元に対して重複を通知する（Ｓ９０５）。他方、重複していないと判断された場合は、ルーティングエントリ登録部３１２が、当該ＩＰアドレスを含むネットワークアドレスが既にルーティングテーブルに設定されているかを確認する（Ｓ９０４）。例えば、ＡＲＰから取得したＩＰアドレスが169.254.73.50の場合、169.254.0.0/16というネットワークアドレスを宛先ＩＰアドレスとするエントリが既に存在するかが確認される。
【００４５】
Ｓ９０４の結果、該当するネットワークエントリが登録されていないと判断した場合、ルーティングエントリ登録部３１２は、当該ＩＰアドレスを宛先に含むルーティングテーブルにネットワークエントリを追加する（Ｓ９０７）。たとえば、ＩＰアドレスが169.254.73.50の場合、169.254.0.0/16という宛先アドレスのネットワークエントリがルーティングテーブルに追加される。次に、ルーティングエントリ登録部３１２は、当該ネットワークエントリを管理するためにホストリストを作成する（Ｓ９１０）。ここで、ホストリストはネットワークエントリで指定されたネットワークアドレスに含まれる使用中のＩＰアドレスを列挙したものである。したがって、ネットワークエントリとホストリストに登録されたＩＰアドレスとでホストエントリに対応したエントリ情報が得られることになる。換言すれば、ネットワークエントリとホストリストによりホストエントリが構成されることになる。こうしてネットワークエントリの作成が完了すると、存在確認部３０８は、ネットワークエントリの存在確認処理を実行する（Ｓ９１２）。ネットワークエントリの存在確認処理についての説明は後述する。ネットワークエントリの存在確認処理が終了すると処理終了となる。
【００４６】
Ｓ９０４の結果、該当するネットワークが存在する場合は、該ネットワークエントリがＡＲＰパケットを受信したインターフェースと同じインターフェースであるかを判断する（Ｓ９０６）。例えば、ＡＲＰパケットを受信したインターフェースがアドホックモードで、既に存在するネットワークエントリのインターフェースがＷＬＡＮ（Adhoc mode）であった場合、同一のインターフェースである（インターフェースが一致する）と判断される。
【００４７】
Ｓ９０６の結果、インターフェースが一致しない（異なる）と判断された場合は、ルーティングエントリ登録部３１２は、第一実施形態（Ｓ４０６）と同様にホストエントリを登録する（Ｓ９０９）。ホストエントリの登録が完了すると、存在確認部３０８は当該ホストエントリについて第一実施形態（Ｓ４０７、図５）と同様の存在確認処理を行う（Ｓ９１１）。ホストエントリの存在確認処理が終了すると処理終了となる。他方、Ｓ９０６の結果、インターフェースが一致すると判断された場合は、ルーティングエントリ登録部３１２は、ホストリストにＡＲＰパケットのＴＰＡにセットされているＩＰアドレスを追加する（Ｓ９０８）。前述のように、ホストリストに関する存在確認処理はＳ９１２で実行されているので、Ｓ９０８でホストリストへのＩＰアドレスの追加が完了すると処理終了となる。
【００４８】
次に図面を用いて第二実施形態におけるネットワークエントリの存在確認処理を説明する。図１０は第二実施形態におけるＳＴＡ１のネットワークエントリの存在確認処理（Ｓ９１２）を示したフローチャートである。
【００４９】
まず、ＳＴＡ１の存在確認部３０８は所定の時間だけ待機する（Ｓ１００１）。待機が完了すると、存在確認部３０８は、存在確認対象のＩＰアドレスに対するアドレス解決を実施するため、パケット送信部３１１を介してARP Requestを送信する（Ｓ１００２）。ここで、存在確認対象はホストリスト内の単一のＩＰアドレスに対して実施する。例えば、ホストリストの先頭のＩＰアドレスを存在確認対象としても良いし、その他の方法を用いても良い。
【００５０】
次に、存在確認部３０８は、Ｓ５０３と同様にARP Replyを一定時間待受け（Ｓ１００３、Ｓ１００４）る。一定時間内にARP Replyを受信した場合、処理はＳ１００１に戻り、存在確認部３０８は再度所定時間だけ待機する。Ｓ１００４で一定時間内にARP Replyを受信できなかった場合、存在確認部３０８は、ルーティングエントリ削除部３１３に存在確認対象のＩＰアドレスをホストリストから削除させることでホストリストの更新を行う（Ｓ１００５）。次に、存在確認部３０８は、更新されたホストリストが空であるかを確認する（Ｓ１００６）。Ｓ１００６の結果、ホストリストが空ではないと判断された場合、処理はＳ１００２に戻り、存在確認部３０８は再度ARP Requestを送信する。他方、Ｓ１００６の結果、ホストリストが空と判断された場合、ルーティングエントリ削除部３１３は、ルーティングテーブルから該当するネットワークエントリを削除する（Ｓ１００７）。エントリの削除が完了すると存在確認処理は終了となる。
【００５１】
以上の様な第２実施形態によれば、装置の状態に応じてネットワークエントリとホストエントリを使い分けるため、ルーティングテーブルによるインターフェース選択を効率的に行うことが可能となる。また、ネットワークエントリの場合、同エントリの対象となるホストリスト内のＩＰアドレス一つに対してのみ存在確認を行うため、ホストエントリを複数登録する場合と比較して処理負荷が軽くなる。
【００５２】
また、上記実施形態によれば、ｓｏｃｋｅｔインターフェース及びルーティングテーブル管理といった汎用的なＡＰＩを用いることで実現可能であるため、データ送信制御が簡素化され、開発負荷を減少させることが可能となる。
【００５３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005820106.tif 000002
【図２】
0005820106.tif 000003
【図３】
0005820106.tif 000004
【図４】
0005820106.tif 000005
【図５】
0005820106.tif 000006
【図６】
0005820106.tif 000007
【図７】
0005820106.tif 000008
【図８】
0005820106.tif 000009
【図９】
0005820106.tif 000010
【図１０】
0005820106.tif 000011