(57)【特許請求の範囲】
【請求項１】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段と、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信手段と、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段と、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段と、
抽出したルータアドレスに基づいてルータにアクセスし、ルータに対する設定処理及び／又はルータからの情報取得処理の処理依頼先情報を取得する処理依頼先取得手段と、
前記ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段と、
を含み、
前記処理依頼先取得手段は、前記ルータアドレスがグローバルアドレスである場合、ルータにアクセスしないことを特徴とする、
通信装置。
【請求項２】
前記処理依頼先取得手段が取得した依頼先情報に基づいてアクセスし、前記多段に接続されたルータを介して接続される他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段を備えることを特徴とする、
請求項１記載の通信装置
【請求項３】
前記ルータアドレスは、ホームネットワーク側アドレス（以下、内側アドレスという）であり、
前記処理依頼先情報に基づいてルータにアクセスし、そのルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段をさらに含み、
前記ルータアドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返し、取得した内側アドレスを前記処理依頼先取得手段に出力することを特徴とする、
請求項１に記載の通信装置。
【請求項４】
前記ルータアドレスは、内側アドレスであり、
前記内側アドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段をさらに含み、
前記内側アドレスがグローバルアドレスである場合、前記中継情報設定手段は前記ルータへの中継情報の設定を中止することを特徴とする、
請求項１に記載の通信装置。
【請求項５】
前記ルータアドレスは、内側アドレスであり、
前記ルータディスカバリ用パケット作成手段は、前記内側アドレスがグローバルアドレスである場合、グローバルアドレスを有するルータに対して設定した許容するルータ通過回数よりも大きい許容するルータ通過回数についてルータディスカバリ用パケットの作成を中止することを特徴とする、
請求項１に記載の通信装置。
【請求項６】
前記通信装置は、多段に接続された複数のルータを含む第１ホームネットワーク内の通信装置であって、
前記多段に接続された複数のルータの一部であって、通信装置自身が接続されたルータを含む一部のルータのルータ構成情報を、前記第１ホームネットワーク内の他の通信装置又は、前記第１ホームネットワークとは広域ネットワークで接続された第２ホームネットワーク内の他の通信装置に送信するルータ構成情報送信部と、
前記他の通信装置から前記複数のルータのうち別の一部のルータのルータ構成情報を受信し、自身の通信装置のルータ構成情報と受信したルータ構成情報とに基づいて、前記他の通信装置との通信の可否を判断する通信判断部とをさらに含み、
前記ルータ構成情報は、前記ルータアドレス取得手段が取得したルータアドレスに基づいていることを特徴とする、
請求項１に記載の通信装置。
【請求項７】
前記ルータ構成情報に基づいて、各ルータに対して他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段をさらに含むことを特徴とする、
請求項６に記載の通信装置。
【請求項８】
前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスから構成されており、
前記通信判断部は、
広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段を備え、
抽出された分岐アドレスを用いて、前記他の通信装置との通信の可否を判断することを特徴とする、
請求項７に記載の通信装置。
【請求項９】
前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスから構成されており、
前記通信判断部は、
広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段と、
抽出された分岐アドレスを前記中継情報設定手段に送信する分岐アドレス送信手段とを有し、
前記中継情報設定手段は、自身の通信装置のルータ構成情報に基づいて、前記分岐アドレスに対応するルータ及びそのルータと自身の通信装置間に位置するルータにアクセスして中継情報を設定し、
前記分岐アドレス送信手段は、前記分岐アドレスに対応するルータの中継情報と前記分岐アドレスとを対応付けて、通信を行う他の通信装置に送信することを特徴とする、
請求項７に記載の通信装置。
【請求項１０】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段と、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段と、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段と、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段と、
任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成手段と、
前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信手段と、
前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信手段と、
前記機器応答パケットから機器アドレスを抽出する機器アドレス取得手段と、
前記ルータアドレスが、グローバルアドレスか否かを判断する第１判断手段と、
を含み、
前記ルータアドレスがグローバルアドレスである場合、前記機器ディスカバリ用パケット作成手段による機器ディスカバリ用パケットの作成、前記機器応答パケット受信手段による機器応答パケットの受信、前記機器アドレス取得手段による機器アドレスの抽出及び前記通信設定手段による前記通信機器との通信のための設定を中止することを特徴とする、
通信装置。
【請求項１１】
抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器との通信のための設定を前記通信機器及び自身の通信装置のいずれかに行う通信設定手段をさらに含むことを特徴とする、
請求項１０に記載の通信装置。
【請求項１２】
前記ルータアドレスは、内側アドレスである、
請求項１０に記載の通信装置。
【請求項１３】
前記機器ディスカバリ用パケット作成手段は、抽出したルータアドレスの一部を変化させた試験アドレスを機器アドレスとして含む複数の機器ディスカバリパケットを作成し、
前記機器アドレス取得手段は、前記試験アドレスに基づいて作成された複数の機器ディスカバリパケットに対応する複数の機器応答パケットから前記機器アドレスを抽出することを特徴とする、
請求項１０に記載の通信装置。
【請求項１４】
抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器のプロパティ情報を把握する機器把握部をさらに含むことを特徴とする、
請求項１０に記載の通信装置。
【請求項１５】
前記機器アドレス取得手段が取得した通信機器のアドレスや、前記機器把握部により取得した通信機器のプロパティ情報を表示する表示部をさらに含む、
請求項１４に記載の通信装置。
【請求項１６】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置における通信方法であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信ステップと、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、
抽出したルータアドレスに基づいてルータにアクセスし、ルータに対する設定処理及び／又はルータからの情報取得処理の処理依頼先情報を取得する処理依頼先取得ステップと、
前記ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断ステップと、
を含み、
前記処理依頼先取得ステップでは、前記ルータアドレスがグローバルアドレスである場合、ルータにアクセスしないことを特徴とする、
通信方法。
【請求項１７】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムであって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信手段、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段と、
抽出したルータアドレスに基づいてルータにアクセスし、ルータに対する設定処理及び／又はルータからの情報取得処理の処理依頼先情報を取得する処理依頼先取得手段、及び
前記ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段、
として通信装置を機能させることを特徴とする通信プログラムであって、
前記処理依頼先取得手段は、前記ルータアドレスがグローバルアドレスである場合、ルータにアクセスしないことを特徴とする、
通信プログラム。
【請求項１８】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信ステップと、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、
抽出したルータアドレスに基づいてルータにアクセスし、ルータに対する設定処理及び／又はルータからの情報取得処理の処理依頼先情報を取得する処理依頼先取得ステップと、
前記ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断ステップと、
を含み、
前記処理依頼先取得ステップでは、前記ルータアドレスがグローバルアドレスである場合、ルータにアクセスしないことを特徴とする、
通信プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信方法であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信ステップと、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、
任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成ステップと、
前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信ステップと、
前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信ステップと、
前記機器応答パケットから機器アドレスを抽出する機器アドレス取得ステップと、
前記ルータアドレスが、グローバルアドレスか否かを判断する第１判断ステップと、
を含み、
前記ルータアドレスがグローバルアドレスである場合、前記機器ディスカバリ用パケット作成ステップによる機器ディスカバリ用パケットの作成、前記機器応答パケット受信ステップによる機器応答パケットの受信、前記機器アドレス取得ステップによる機器アドレスの抽出及び前記通信設定ステップによる前記通信機器との通信のための設定を中止することを特徴とする、
通信方法。
【請求項２０】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムであって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段、
任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成手段、
前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信手段、
前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信手段、
前記機器応答パケットから機器アドレスを抽出する機器アドレス取得手段、及び
前記ルータアドレスが、グローバルアドレスか否かを判断する第１判断手段、
として、通信装置を機能させることを特徴とする通信プログラムであって、
前記ルータアドレスがグローバルアドレスである場合、前記機器ディスカバリ用パケット作成手段による機器ディスカバリ用パケットの作成、前記機器応答パケット受信手段による機器応答パケットの受信、前記機器アドレス取得手段による機器アドレスの抽出及び前記通信設定手段による前記通信機器との通信のための設定を中止することを特徴とする
通信プログラム。
【請求項２１】
広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、
前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信ステップと、
前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、
前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、
任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成ステップと、
前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信ステップと、
前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信ステップと、
前記機器応答パケットから機器アドレスを抽出する機器アドレス取得ステップと、
前記ルータアドレスが、グローバルアドレスか否かを判断する第１判断ステップと、
を実行させるための通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
前記ルータアドレスがグローバルアドレスである場合、前記機器ディスカバリ用パケット作成ステップによる機器ディスカバリ用パケットの作成、前記機器応答パケット受信ステップによる機器応答パケットの受信、前記機器アドレス取得ステップによる機器アドレスの抽出及び前記通信設定ステップによる前記通信機器との通信のための設定を中止することを特徴とする、
通信プログラムを記録した、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、家庭内や会社内などのローカルエリアネットワーク（以下、ホームネットワークと称す）において、各機器のルータ設定を行う通信装置、通信設定方法、通信設定プログラム及び通信設定プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年、急速に情報化社会が進展し、家庭内や会社内におけるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の構成にも、有線ＬＡＮ、無線ＬＡＮを含む複数のネットワークが存在する場合がある。このような複数のネットワークを接続するためには、２つのネットワーク間に接続されて経路選択を行うルータが複数台必要となる場合がある。
このようなホームネットワークに、通信機器を無線で接続する場合やインターネットからのアクセスを可能とする場合には、通信機器の設定やホームネットワークを構成するルータの設定等（ネットワーク設定ともいう）が必要になる。このルータ設定を実行するためには、専門知識が必要であり、一般ユーザが行うのが困難であるという問題がある。
このような問題を解決する方法として、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に対応したブロードバンドルータなどのＩＧＤ（Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）を利用する方法が知られている。
【０００３】
また、複数ルータで構成されたネットワークで経路上のルータのアドレスを入手する方法として、特許文献１（特開２００２−１１１６６５）が知られている。
さらに、複数ルータで構成されたネットワーク上のルータに通信可能な状態で接続されている通信機器のアドレスを取得する技術が特許文献２に開示されている。ここで、ネットワーク上の各ルータは経路情報を有している。ルータを介して通信機器に接続されている通信装置は、この経路情報をルータから取得することにより、自端末に直接接続されていない通信機器のアドレスを取得することができる。
【特許文献１】特開２００２−１１１６６５号公報
【特許文献２】特開２００２−１１１６６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前述したようなUPnPを利用する方法は、ホームネットワーク内において１段のルータを介して通信装置が接続されていることを前提とするものである。そのため、UPnPを利用する方法では、多段のルータで構成されたホームネットワークの設定には適用することができない。
また、特許文献１に開示されている方法では、ルータのIPアドレスを知ることはできるが、ルータ設定を行うためのルータへの設定依頼先（たとえば、ポート、URL等）の情報を知ることはできず、ホームネットワークの設定に適用することができない。
上述の通り多段のルータで構成されたホームネットワークの設定は困難である。たとえ特許文献２に開示されている方法であっても、通信装置と通信機器とが多段のルータを介して接続されているホームネットワークの場合には、そこで用いられる家庭用ルータ間で基本的にＲＩＰ（Routing  Information  Protocol）のような経路情報の交換が有効に動作しない。そのため、通信装置はホームネットワーク内のルータから通信機器の経路情報を取得することが難しい。
【０００５】
そこで、本発明は、上記問題点を鑑み、多段のルータで構成されたホームネットワークにおいて、通信装置がルータ設定を行うことを可能とする通信装置、通信設定方法、通信設定プログラム及び通信設定プログラムを記録した記録媒体を提供することを目的とする。
また、本発明は、多段のルータで構成されたホームネットワークにおいて、各ルータに接続される通信機器の構成を把握することが可能な通信装置、通信設定方法、通信設定プログラム及び通信設定プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本願第１発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置を提供する。この通信装置は、以下の構成要素を含むことを特徴とする。
◎各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得手段
◎各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段
ここで、前記外側アドレス取得手段は、前記内側アドレス取得手段が取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、
前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返す。
【０００７】
上記の構成により、ルータの外側アドレスに基づいて、そのルータより広域ネットワーク側のルータの内側アドレスを取得することでルータ構成を把握している。よって、許容するルータ通過回数を変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワーク内への送信を行うことなくルータの構成を取得することができる。
また、許容するルータ通過回数を変化したルータディスカバリ用パケットを転送する処理がないため、ルータディスカバリ用パケットを転送する際に許容するルータ通過回数を減少する処理を行わないようなルータがホームネットワーク内に含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータディスカバリ用パケットに対するルータ応答パケットを受信する処理がないため、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
【０００８】
具体的に、通信装置に直接接続される第１ルータに対しては、許容するルータ通過回数＝１に設定したルータディスカバリパケットを送信する。これに対して第１ルータから第１ルータの内側アドレスを含むルータ応答パケットが送信される。通信装置は、ルータ応答パケットから第１ルータの内側アドレスを取得する。さらに、通信装置は、第１ルータに対してＧｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰＡｄｄｒｅｓｓを実行することで、第１ルータの外側アドレスを取得する。次に、通信装置は、第１ルータの外側アドレスに基づいてより広域ネットワーク側に位置する第２ルータの内側アドレスを取得する。そして、取得した内側アドレスにより第２ルータにアクセスして外側アドレスを取得する。これを繰り返すことでホームネットワーク内のルータの構成を把握することができる。
本願第２発明は、第１発明において、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段と、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信手段と、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段と、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段とをさらに含むことを特徴とする通信装置を提供する。
【０００９】
ルータは、ルータディスカバリ用パケットを上記通信装置から受信する。ここで、ルータディスカバリ用パケットには、許容するルータ通過回数が変数として設定されている。ルータディスカバリ用パケットを受信したルータは、より広域ネットワーク側に位置するルータに向かってルータディスカバリ用パケットを送信する。このとき、ルータは、設定された許容するルータ通過回数を１だけ引いて次に接続されるルータに送信する。ルータは、許容するルータ通過回数が"０"になると広域ネットワーク側へのルータディスカバリ用パケットの送信を停止し、ルータ応答パケットをルータディスカバリ用パケットの送信元である通信装置に送信する。このルータ応答パケットの受信により、通信装置は、ホームネットワーク内のルータの構成を容易に把握することができる。このように、通信装置は、内側アドレス取得手段及び外側アドレス取得手段によってのみならず、許容するルータ通過回数を変数とするルータディスカバリ用パケットを送信することによってもルータの構成を容易に把握することができる。
【００１０】
このような許容するルータ通過回数を変数してルータの構成を把握する方法を用いると、ルータ通過回数を減らす処理を行わないようなルータやルータ応答パケットをフィルタリングするようなルータが含まれている場合には正確にルータ構成が把握できない場合がある。しかし、ルータ通過回数を変数として用いてルータの構成を把握する方法と内側アドレス取得手段及び外側アドレス取得手段によってルータの構成を把握する方法とを併用することでその問題を解消することができる。例えば、次のような方法によっても前記問題を解決することができる。
第１に、前記ルータ応答パケット受信手段は、さらに、前記ルータディスカバリ用パケット作成手段が設定した許容するルータ通過回数に対応するルータ応答パケットを受信しているかを判定し、前記ルータアドレス取得手段は、前記ルータ応答パケット受信手段がルータ応答パケットを受信できていないと判定した場合、受信できたルータ応答パケットのうち最大の許容するルータ通過回数に対応するルータ応答パケットから、そのルータの内側アドレスを抽出し、抽出した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得する外側アドレス取得手段をさらに含み、前記ルータアドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返し、取得した内側アドレスを前記中継情報設定手段に出力すると好ましい。
【００１１】
通信装置は、許容するルータ通過回数を変数として設定して次々とルータディスカバリパケットを送信することで、ルータから次々とルータ応答パケットを受信し、高速にルータアドレスを取得することができる。一方、通信装置は、ルータ応答パケットを受信できなくなった場合は、上記のように受信できたルータ応答パケットから内側アドレスを抽出する。そして、抽出した内側アドレスに基づいてそのルータの外側アドレスを取得する。さらに、取得した外側アドレスに基づいてより広域ネットワーク側のルータの内側アドレスを取得していくことを繰り返す。これにより、許容するルータ通過回数を減らさないで無視して次のルータにルータディスカバリパケットを転送したり、ルータからのルータ応答パケットをフィルタリングしたりするルータを含むホームネットワークにおいても、ホームネットワーク内のルータ構成を把握して中継情報の設定を行うことができる。
【００１２】
第２に、前記内側アドレス及び前記外側アドレスの比較を行う比較手段をさらに含み、前記ルータディスカバリ用パケット作成手段は、第１ルータに応答を送信させるために前記許容するルータ通過回数を第１の値に設定した第１ルータディスカバリ用パケットと、前記第１ルータよりも前記広域ネットワーク側に位置する第２ルータに応答を送信させるために前記許容するルータ通過回数を前記第１の値に１を加えた第２の値に設定した第２ルータディスカバリ用パケットとを作成し、前記ルータ応答パケット受信手段は、前記第１ルータディスカバリ用パケットに対応する第１ルータ応答パケットと前記第２ルータディスカバリ用パケットに対応する第２ルータ応答パケットとを受信し、前記ルータアドレス取得手段は、前記第１ルータ応答パケットから第１内側アドレスを抽出し、前記第２ルータ応答パケットから第２内側アドレスを抽出し、前記外側アドレス取得手段は、前記第１内側アドレスに基づいてルータにアクセスし、そのルータの第１外側アドレスを取得し、前記比較手段は、前記第２内側アドレスと前記第１外側アドレスとを比較し、前記比較手段が両者のアドレス空間に矛盾があると判断した場合は、前記ルータアドレス取得手段は、前記許容するルータ通過回数が第１の値に対応して得られた前記第１外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの第３内側アドレスを取得し、前記外側アドレス取得手段は、前記第３内側アドレスに基づいてルータにアクセスし、そのルータの第３外側アドレスを取得し、前記比較手段は、前記第２内側アドレスと前記第３外側アドレスとを比較し、両者のアドレス空間に矛盾がないかを判断することを繰り返すことで、前記第１ルータと第２ルータとの間に存在するルータの内側アドレスを取得し、取得した各内側アドレスを前記処理依頼先取得手段に出力すると好ましい。
【００１３】
以上のように、ルータ応答パケットから抽出した内側アドレスと、前段のルータの内側アドレスに基づいて取得した外側アドレスとの一致・不一致を判断することで、ルータ応答パケットから抽出した内側アドレスの正当性を判定することができる。一致した場合は、ルータ応答パケットから抽出した内側アドレスが、通信装置からルータにアクセスするための正しいアドレスであることを確認することができる。よって、許容するルータ通過回数を減らさずに次のルータに転送するようなルータがホームネットワーク内に含まれている場合であっても、通信装置は、ホームネットワーク内のルータの構成を把握し、中継情報の設定を行うことができる。
本願第３発明は、第１発明において、取得した内側アドレスに基づいてルータにアクセスし、前記多段に接続されたルータを介して接続される他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段をさらに含むことを特徴とする通信装置を提供する。
【００１４】
通信装置は、ルータ応答パケットからルータの内側アドレスを取得し、その内側アドレスに基づいてルータにアクセスして中継情報の設定を行うとともに外側アドレスを取得する。これにより、ホームネットワーク内の各ルータに中継情報の設定を行うことができる。
本願第４発明は、第１発明において、前記外側アドレス取得手段が新たに取得した外側アドレスが、ホームネットワークと広域ネットワークとを接続するゲートウェイの外側アドレスであるグローバルアドレスか否かを判断する第２判断手段をさらに含み、
前記外側アドレスがグローバルアドレスである場合、前記内側アドレス取得手段による新たな内側アドレスの取得及び前記外側アドレス取得手段による新たな外側アドレスの取得を中止することを特徴とする、通信装置を提供する。
【００１５】
この場合、宅内ホームネットワーク内に存在するルータのみの設定を行うことが可能となる。
本願第５発明は、第１発明において、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスの一部を変化させた試験アドレスをルータの内側アドレスとして作成し、
前記外側アドレス取得手段は、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータに前記試験アドレスに基づいてアクセスし、そのルータの外側アドレスを取得することを特徴とする、通信装置を提供する。
通信装置は、取得したルータの外側アドレスを変化させることで、より広域ネットワーク側に位置するルータの内側アドレスを効率よく取得することができる。
【００１６】
なお、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスの最下位８ビットを特定の値に置換することにより前記試験アドレスを作成すると好ましい。
一般に市販ルータの内側アドレスの最下位８ビットは、デフォルト設定の場合"1"または"254"に設定されていることが多い。また、ユーザが設定を変更する場合でも64や128等の特定の値に設定することが多いため、このような特定の値の試験アドレスからアクセスを試みることにより、ルータのアドレスを高速に取得することが可能となる。
本願第６発明は、第１発明において、任意のルータに接続されている通信機器を検出するための機器ディスカバリパケットを、取得した外側アドレスに基づいて作成する機器ディスカバリ用パケット作成手段と、前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信手段と、前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信手段と、前記機器応答パケットから機器アドレスを抽出する機器アドレス取得手段とをさらに含むことを特徴とする、通信装置を提供する。
【００１７】
なお、通信装置は、許容するルータ通過回数を変化させたルータディスカバリ用パケットの作成やホームネットワークへの送信を行うことなく、ホームネットワーク内のルータの構成を容易に把握することができる。さらに、通信装置は、ルータに接続される通信機器のアドレスを取得することができる。よって、通信装置は、多段のルータで構成されるホームネットワーク内においても、ルータに接続される通信機器の構成を把握することができる。
本願第７発明は、第６発明において、抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器との通信のための設定を前記通信機器及び自身の通信装置のいずれかに行う通信設定手段をさらに含むことを特徴とする、通信装置を提供する。
通信装置は、多段のルータで構成されるホームネットワーク内においても、その通信機器にアクセスして通信機器の通信を中継するための各種設定を行うことができる。
【００１８】
本願第８発明は、第６発明において、抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器のアドレスやプロパティ情報を把握する機器把握部をさらに含むことを特徴とする、通信装置を提供する。
この場合、通信機器のアドレスやプロパティからこの通信機器がどのような機器であるか、あるいはどのような状態であるかを認識することが可能となる。
本願第９発明は、第８発明において、前記機器把握部により取得した通信機器のアドレスやプロパティ情報を表示する表示部をさらに含む、通信装置を提供する。
この場合、取得したルータおよび通信機器の情報を表示部に表示することにより、ユーザによる確認が容易となる。
本願第１０発明は、第１発明において、前記通信装置は、多段に接続された複数のルータを含む第１ホームネットワーク内の通信装置であって、前記多段に接続された複数のルータの一部であって、通信装置自身が接続されたルータを含む一部のルータのルータ構成情報を、前記第１ホームネットワーク内の他の通信装置又は、前記第１ホームネットワークと広域ネットワークで接続された第２ホームネットワーク内の他の通信装置に送信するルータ構成情報送信部と、前記他の通信装置から前記複数のルータのうち別の一部のルータのルータ構成情報を受信し、自身の通信装置のルータ構成情報と受信したルータ構成情報とに基づいて、前記他の通信装置との通信の可否を判断する通信判断部とをさらに含み、前記ルータ構成情報は、各通信装置の内側アドレス取得手段が取得した内側アドレス及び／または外側アドレス取得手段が取得した外側アドレスに基づいていることを特徴とする、通信装置を提供する。
【００１９】
この通信装置では、多段のルータから構成されるネットワークでもルータ構成を把握することで、ＮＡＴ設定及びファイアウォール設定などの通信路設定を行うことができる。このように通信路が設定されることで、一方または両方の通信装置がホームネットワーク内において多段のルータを介して接続されている場合でも、通信装置間でのＰ２Ｐ通信が可能となる。
なお、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段と、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段と、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段と、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段とをさらに含み、前記ルータ構成情報取得部は、前記複数のルータのルータアドレスに基づいて、前記一部のルータのルータ構成情報を取得すると好ましい。
【００２０】
許容するルータ通過回数を変数とするルータディスカバリ用パケットを上記通信装置から受信したルータは、広域ネットワーク側に向かってルータディスカバリ用パケットを送信する。このとき、ルータは設定された許容するルータ通過回数を１だけ引いて次に接続されるルータに送信する。ルータは、許容するルータ通過回数が"０"になると広域ネットワーク側へのルータディスカバリ用パケットの送信を停止し、ルータ応答パケットをルータディスカバリ用パケットの送信元である通信装置に送信する。これにより、通信装置は、ホームネットワーク内のルータの構成を容易に把握することができる。よって、通信装置は、把握したルータにアクセスし、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となるようにルータを設定することができる。
さらに、各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得手段と、各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段と、取得した内側アドレスに基づいてルータにアクセスし、前記多段に接続されたルータを介して接続される他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段とを含み、前記外側アドレス取得手段は、前記内側アドレス取得手段が取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返し、前記ルータ構成情報取得部は、取得した内側アドレス及び／または外側アドレスに基づいて、前記一部のルータのルータ構成情報を取得すること好ましい。
【００２１】
上記の構成により、通信装置側のルータの外側アドレスに基づいて、よりホームネットワーク外側のルータの内側アドレスを取得することでルータ構成を把握している。よって、許容するルータ通過回数を変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワークへの送信を行うことなくルータの構成を取得することができる。
また、許容するルータ通過回数を変化したルータディスカバリ用パケットを転送する処理がないため、ホームネットワーク内に、ルータディスカバリ用パケットを転送する際に許容するルータ通過回数を減少する処理を行わないようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータディスカバリ用パケットに対するルータ応答パケットを受信する処理がないため、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
【００２２】
本願第１１発明は、第１０発明において、前記ルータ構成情報に基づいて、各ルータに対して他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段をさらに含むことを特徴とする、通信装置を提供する。
中継情報設定手段が、把握したルータにアクセスして中継情報の設定を行うことで、通信装置は、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第１２発明は、第１１発明において、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータの内側アドレス及び／または外側アドレスであるルータアドレスから構成されており、前記通信判断部は、広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段を備え、抽出された分岐アドレスを用いて、前記他の通信装置との通信の可否を判断することを特徴とする通信装置を提供する。
【００２３】
分岐以下のルータに対して、通信路設定が実行されているかを判断することとで、通信の可否が判断することができる。よって、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第１３発明は、第１１発明において、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータの内側アドレス及び／または外側アドレスであるルータアドレスから構成されており、前記通信判断部は、広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段と、抽出された分岐アドレスを前記中継情報設定手段に送信する分岐アドレス送信手段とを有し、前記中継情報設定手段は、自身の通信装置のルータ構成情報に基づいて、前記分岐アドレスに対応するルータ及びそのルータと自身の通信装置間に位置するルータにアクセスして中継情報を設定し、前記分岐アドレス送信手段は、前記分岐アドレスに対応するルータの中継情報と前記分岐アドレスとを対応付けて、通信を行う他の通信装置に送信することを特徴とする、通信装置を提供する。
【００２４】
なお、前記中継情報設定手段が、前記ルータ構成情報取得手段が取得したルータ構成情報に基づいて、各ルータに対して他の通信装置との通信を中継するための中継情報の設定を行い、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスと中継情報として設定されたポート番号から構成されている。ここで、前記通信判断部は、広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、他の通信装置のルータ構成情報に含まれる最初に不一致と判断された通信経路の分岐点のアドレスとそのアドレスに対応するルータに設定された中継情報のポート番号を抽出する分岐アドレス抽出手段を備え、前記分岐アドレス抽出手段が抽出した前記分岐点のアドレスとポート番号を用いて、前記他の通信端末と通信を行うと好ましい。
【００２５】
上記の構成により、ルータ設定を行った後、分岐点を探すことができる。よって、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第１４発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置を提供する。通信装置は、以下の構成要素を含む。
◎許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、
◎前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信手段、
◎前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、
◎前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段、
◎抽出したルータアドレスに基づいてルータにアクセスし、中継情報設定処理の依頼先情報を取得する処理依頼先取得手段、
◎ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段。
【００２６】
そして、通信装置において、処理依頼先取得手段は、ルータアドレスがグローバルアドレスである場合、ルータにアクセスしない。
ルータは、許容するルータ通過回数を変数として設定されたルータディスカバリ用パケットを上記通信装置から受信する。ルータディスカバリ用パケットを受信したルータは、より広域ネットワーク側に位置するルータに向かってルータディスカバリ用パケットを送信する。このとき、ルータは設定された許容するルータ通過回数を１だけ引いて次に接続されるルータに送信する。ルータは、許容するルータ通過回数が"０"になると広域ネットワーク側へのルータディスカバリ用パケットの送信を停止し、ルータ応答パケットをルータディスカバリ用パケットの送信元である通信装置に送信する。このルータ応答パケットの受信により、通信装置は、ホームネットワーク内のルータの構成を容易に把握することができる。そして、把握したアドレスのルータにアクセスし、ルータの中継情報を設定するための依頼先情報（ポート番号、ＵＲＬなど）を取得することができる。そして、例えば取得した依頼先情報に基づいてルータにアクセスし、多段に接続されたルータを介して接続される他の通信装置との通信が可能となるようにルータを設定することもできる。
【００２７】
具体的に、例えば許容するルータ通過回数＝１、２と設定した場合について説明する。通信装置が許容するルータ通過回数＝１に設定したルータディスカバリ用パケットをルータに対して送信すると、通信装置と直接的に接続された第１ルータから第１ルータの内側アドレスを含むルータ応答パケットが通信装置に送信される。ここで、内側アドレスとはルータのホームネットワーク側アドレスであり、通信装置は内側アドレスに基づいて各ルータにアクセス可能である。ここで、通信装置は、このルータ応答パケットから第１ルータの内側アドレスを抽出して、この内側アドレスに基づいて第１ルータにアクセスしＮＡＴ設定を行うこともできる。例えば、アクセス時の通信装置自身のポート番号、通信装置のＩＰアドレス、第１ルータのポート番号を指定してＮＡＴ設定を行う。
さらに、通信装置は、許容するルータ通過回数＝２に設定したルータディスカバリ用パケットのルータに対して送信することで、第１ルータを介して通信装置から２段目に接続された第２ルータの内側アドレスを取得する。そして、通信装置は、第２ルータにアクセスしてＮＡＴ設定を行うこともできる。例えば、第１ルータの外側アドレス、第１ルータのポート番号、第２ルータのポート番号等を指定してＮＡＴ設定を行う。ここで、第１ルータの外側アドレスは、第１ルータに対してＧｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰＡｄｄｒｅｓｓを実行することで取得可能である。以上の処理により、多段のルータで構成されるホームネットワーク内のルータ構成を把握することができる。また、その把握したルータ構成に基づいて、多段のルータを介して接続される相手先の通信装置との通信を確立することも可能となる。
【００２８】
本願第１５発明は、第１４発明において、前記処理依頼先取得手段が取得した依頼先情報に基づいてアクセスし、前記多段に接続されたルータを介して接続される他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段を備えることを特徴とする通信装置を提供する。
通信装置は、依頼先情報に基づいてルータにアクセスし、ホームネットワーク内の各ルータに中継情報の設定を行うことができる。
本願第１６発明は、第１５発明において、前記ルータアドレスは、ホームネットワーク側アドレス（以下、内側アドレスという）であり、
前記内側アドレスに基づいてルータにアクセスし、そのルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段をさらに含み、
前記ルータアドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返し、取得した内側アドレスを前記処理依頼先取得手段に出力することを特徴とする、通信装置を提供する。
【００２９】
通信装置は、ルータディスカバリ用パケットを用いてルータの内側アドレスを取得するか、またはホームネットワーク側に位置するルータの内側アドレスからそのルータの外側アドレスを取得し、さらにその外側アドレスからより広域ネットワーク側に位置するルータの内側アドレスを取得することができる。これによりホームネットワーク内のルータ構成を把握するとともに中継情報の設定を行うことが可能である。
また、外側アドレス及び内側アドレスを順に取得していく場合には、許容するルータ通過回数を減らさないで無視して次のルータにルータディスカバリパケットを転送したり、ルータからのルータ応答パケットをフィルタリングしたりするルータを含むホームネットワークにおいても、ホームネットワーク内のルータ構成を把握して中継情報の設定を行うことができる。例えば、次のような方法によっても前記問題を解決することができる。
【００３０】
第１に、通信装置は、ルータ応答パケットを受信できなくなった場合は、受信できたルータ応答パケットから内側アドレスを抽出するようにすると好ましい。そして、抽出した内側アドレスに基づいてそのルータの外側アドレスを取得する。さらに、取得した外側アドレスに基づいてより広域ネットワーク側のルータの内側アドレスを取得していくことを繰り返す。これにより、許容するルータ通過回数を減らさないで無視して次のルータにルータディスカバリパケットを転送したり、ルータからのルータ応答パケットをフィルタリングしたりするルータを含むホームネットワークにおいても、ホームネットワーク内のルータ構成を把握して中継情報の設定を行うことができる。
第２に、ルータ応答パケットから抽出した内側アドレスと、前段のルータの内側アドレスに基づいて取得した外側アドレスとの一致・不一致を判断するようにすると好ましい。これにより、ルータ応答パケットから抽出した内側アドレスの正当性を判定することができる。一致した場合は、ルータ応答パケットから抽出した内側アドレスが、通信装置からルータにアクセスするための正しいアドレスであることを確認することができる。よって、許容するルータ通過回数を減らさずに次のルータに転送するようなルータがホームネットワーク内に含まれている場合であっても、通信装置は、ホームネットワーク内のルータの構成を把握し、中継情報の設定を行うことができる。
【００３１】
本願第１７発明は、第１４発明において、前記ルータアドレスは、内側アドレスであり、
前記内側アドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段をさらに含み、
前記内側アドレスがグローバルアドレスである場合、前記中継情報設定手段は前記ルータへの中継情報の設定を中止することを特徴とする、通信装置を提供する。
取得した内側アドレスがグローバルアドレスである場合は、ホームネットワーク内のルータの検出が終了している。よって、ホームネットワーク内のルータのみに中継情報の設定を行うことができる。
本願第１８発明は、第１４発明において、前記ルータアドレスは、内側アドレスである。
【００３２】
前記ルータディスカバリ用パケット作成手段は、前記内側アドレスがグローバルアドレスである場合、グローバルアドレスを有するルータに対して設定した許容するルータ通過回数よりも大きい許容するルータ通過回数についてルータディスカバリ用パケットの作成を中止することを特徴とする、通信装置を提供する。
取得した内側アドレスがグローバルアドレスである場合は、ホームネットワーク内のルータの検出が終了している。これにより、ホームネットワーク外のルータに対して、許容するルータ通過回数を変化させたパケットを無用に送信することをさけることが可能となる。
なお、前記許容するルータ通過回数と前記許容するルータ通過回数を識別するための通過回数識別子とが対応付けられた対応表を記憶する記憶手段をさらに含み、前記ルータディスカバリ用パケット作成手段は、前記許容するルータ通過回数に対応付けられた通過回数識別子を含むルータディスカバリ用パケットを作成し、前記ルータ応答パケット受信手段は、前記複数のルータディスカバリ用パケットに応答して、前記複数のルータの各ルータアドレス及び前記通過回数識別子を含む複数のルータ応答パケットを受信し、前記ルータアドレス取得手段は、受信したルータ応答パケットの通過回数識別子に基づいて前記対応表から許容するルータ通過回数を特定すると好ましい。
【００３３】
従来のルータ応答パケットには許容するルータ通過回数に関する情報が含まれていない。そのため、どのルータからのルータ応答パケットであるかを把握するためには、ルータディスカバリ用パケットに対するルータ応答パケットが返ってくるか、タイムアウトを検出するまで応答を待つ必要がある。よって、経路上のルータのアドレスを把握するのに非常に時間がかかる。しかし、上記構成により、通信装置は、ルータ応答パケット内の通過回数識別子によりどのルータからのルータ応答パケットであるかを把握することができる。よって、複数のルータ応答パケットを受信した場合でも、どのルータからの応答であるかが分かる。そのため、通信装置は、許容するルータ通過回数を変化させたルータディスカバリ用パケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。
【００３４】
また、ＵＰｎＰ  ＩＧＤ仕様を利用する場合における各ルータの中継情報の設定では、通信装置で特定のアプリケーションが起動した段階で中継情報の設定を行う等の動的な設定に対応させる必要がある。前述のように、通信装置がホームネットワーク内のルータのアドレスやルータ構成を高速に取得することで、各ルータへの動的な中継情報の設定に対応することができる。
さらに、前記ルータディスカバリ用パケット作成手段は、前記許容するルータ通過回数としてTTL（Time  To  Live）を用い、さらに前記TTLに対応して変化させた送信元ポート番号または送信先ポート番号を含むUDPパケットを前記ルータディスカバリ用パケットとして作成し、前記ルータディスカバリ用パケット送信手段は、複数の前記UDPパケットを複数送信し、前記ルータ応答パケット受信手段は、前記UDPパケットに応答して、前記複数のルータの各ルータアドレスと前記送信元ポート番号または送信先ポート番号のいずれかとを含むICMP  Time  Exceeded  Messageパケットを前記ルータ応答パケットとして受信し、前記ルータアドレス取得手段は、受信したICMP  Time  Exceeded  Messageパケットの前記送信元ポート番号または送信先ポート番号に基づいてTTLを特定すると好ましい。
【００３５】
通信装置は、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ  Ｍｅｓｓａｇｅ内の送信元ポート番号または送信先ポート番号によりどのルータからのルータ応答パケットであるかを把握することができる。よって、複数の、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ  Ｍｅｓｓａｇｅを受信した場合でも、どのルータからの応答であるかが分かる。そのため、通信装置は、ＴＴＬを変化させたＵＤＰパケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。また、通信装置がルータ構成などを高速に取得することで、各ルータへの動的な中継情報の設定に対応することができる。
また、前記ルータディスカバリ用パケット作成手段は、前記許容するルータ通過回数としてTTL（Time  To  Live）を用い、さらに前記TTLに対応して変化させた識別子情報またはシーケンス番号を含むICMPエコー要求パケットをルータディスカバリ用パケットとして作成し、前記ルータディスカバリ用パケット送信手段は、複数の前記ICMPエコー要求パケットを複数送信し、前記ルータ応答パケット受信手段は、前記ICMPエコー要求パケットに応答して、前記複数のルータの各ルータアドレスと識別子情報またはシーケンス番号のいずれかとを含むICMP  Time  Exceeded  Messageパケットを前記ルータ応答パケットとして受信し、前記ルータアドレス取得手段は、受信したICMP  Time  Exceeded  Messageパケットの前記識別子情報またはシーケンス番号に基づいてTTLを特定することを特徴とすると好ましい。
【００３６】
通信装置は、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ  Ｍｅｓｓａｇｅ内の識別子情報またはシーケンス番号によりどのルータからのルータ応答パケットであるかを把握することができる。よって、複数のＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ  Ｍｅｓｓａｇｅを受信した場合でも、どのルータからの応答であるかが分かる。そのため、通信装置は、ＴＴＬを変化させたＩＣＭＰエコー要求パケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。
また、前記中継情報設定手段は、ルータの広域ネットワーク側のポート番号とそのルータよりホームネットワーク側に位置するルータまたは自身の通信装置のＩＰアドレス及び／またはポート番号とを変換可能とするアドレス変換設定を行うことと好ましい。
この場合、多段のルータで構成された宅内ホームネットワークでも各ルータのアドレス変換設定を可能とし、広域ネットワーク側からホームネットワーク側の通信装置にアクセスするための設定を通信装置から行うことを可能とする。
【００３７】
また、前記中継情報設定手段は、前記ルータに対して前記広域ネットワーク側からのパケットの受信及び廃棄を決定するパケットフィルタの設定を行うと好ましい。
この場合、複数のルータで構成されたホームネットワークでも各ルータに対してパケットフィルタ設定を行うことを可能とし、広域ネットワーク側から通信端末に対してアクセスするための設定を通信装置から行うことを可能とする。よって、通信装置のセキュリティを高めることができる。
本願第１９発明は、第１４発明において、前記通信装置は、多段に接続された複数のルータを含む第１ホームネットワーク内の通信装置であって、
前記多段に接続された複数のルータの一部であって、通信装置自身が接続されたルータを含む一部のルータのルータ構成情報を、前記第１ホームネットワーク内の他の通信装置又は、前記第１ホームネットワークとは広域ネットワークで接続された第２ホームネットワーク内の他の通信装置に送信するルータ構成情報送信部と、
前記他の通信装置から前記複数のルータのうち別の一部のルータのルータ構成情報を受信し、自身の通信装置のルータ構成情報と受信したルータ構成情報とに基づいて、前記他の通信装置との通信の可否を判断する通信判断部とをさらに含み、
前記ルータ構成情報は、前記ルータアドレス取得手段が取得したルータアドレスに基づいていることを特徴とする通信装置を提供する。
【００３８】
この通信装置では、多段のルータから構成されるネットワークでもルータ構成を把握することで、ＮＡＴ設定及びファイアウォール設定などの通信路設定を行うことができる。このように通信路が設定されることで、一方または両方の通信装置がホームネットワーク内において多段のルータを介して接続されている場合でも、通信装置間でのＰ２Ｐ通信が可能となる。
なお、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段と、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段と、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段と、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段とをさらに含み、前記ルータ構成情報取得部は、前記複数のルータのルータアドレスに基づいて、前記一部のルータのルータ構成情報を取得すると好ましい。
【００３９】
許容するルータ通過回数を変数とするルータディスカバリ用パケットを上記通信装置から受信したルータは、広域ネットワーク側に向かってルータディスカバリ用パケットを送信する。このとき、ルータは設定された許容するルータ通過回数を１だけ引いて次に接続されるルータに送信する。ルータは、許容するルータ通過回数が"０"になると広域ネットワーク側へのルータディスカバリ用パケットの送信を停止し、ルータ応答パケットをルータディスカバリ用パケットの送信元である通信装置に送信する。これにより、通信装置は、ホームネットワーク内のルータの構成を容易に把握することができる。よって、通信装置は、把握したルータにアクセスし、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となるようにルータを設定することができる。
さらに、各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得手段と、各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段と、取得した内側アドレスに基づいてルータにアクセスし、前記多段に接続されたルータを介して接続される他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段とを含み、前記外側アドレス取得手段は、前記内側アドレス取得手段が取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返し、前記ルータ構成情報取得部は、取得した内側アドレス及び／または外側アドレスに基づいて、前記一部のルータのルータ構成情報を取得すること好ましい。
【００４０】
上記の構成により、通信装置側のルータの外側アドレスに基づいて、よりホームネットワーク外側のルータの内側アドレスを取得することでルータ構成を把握している。よって、許容するルータ通過回数を変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワークへの送信を行うことなくルータの構成を取得することができる。
また、許容するルータ通過回数を変化したルータディスカバリ用パケットを転送する処理がないため、ホームネットワーク内に、ルータディスカバリ用パケットを転送する際に許容するルータ通過回数を減少する処理を行わないようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータディスカバリ用パケットに対するルータ応答パケットを受信する処理がないため、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
【００４１】
本願第２０発明は、第１９発明において、前記ルータ構成情報に基づいて、各ルータに対して他の通信装置との通信を中継するための中継情報の設定を行う中継情報設定手段をさらに含むことを特徴とする通信装置を提供する。
中継情報設定手段が、把握したルータにアクセスして中継情報の設定を行うことで、通信装置は、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第２１発明は、第２０発明において、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスから構成されており、
前記通信判断部は、
広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段を備え、
抽出された分岐アドレスを用いて、前記他の通信装置との通信の可否を判断することを特徴とする通信装置を提供する。
【００４２】
分岐以下のルータに対して、通信路設定が実行されているかを判断することとで、通信の可否が判断することができる。よって、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第２２発明は、第２０発明において、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスから構成されており、
前記通信判断部は、
広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、最初に不一致と判断された通信経路の分岐点のアドレスを抽出する分岐アドレス抽出手段と、
抽出された分岐アドレスを前記中継情報設定手段に送信する分岐アドレス送信手段とを有し、
前記中継情報設定手段は、自身の通信装置のルータ構成情報に基づいて、前記分岐アドレスに対応するルータ及びそのルータと自身の通信装置間に位置するルータにアクセスして中継情報を設定し、
前記分岐アドレス送信手段は、前記分岐アドレスに対応するルータの中継情報と前記分岐アドレスとを対応付けて、通信を行う他の通信装置に送信することを特徴とする通信装置を提供する。
【００４３】
なお、前記中継情報設定手段が、前記ルータ構成情報取得手段が取得したルータ構成情報に基づいて、各ルータに対して他の通信装置との通信を中継するための中継情報の設定を行い、前記ルータ構成情報は、前記通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスと中継情報として設定されたポート番号から構成されている。ここで、前記通信判断部は、広域ネットワーク側のルータアドレスから順に、自身の通信装置のルータ構成情報に含まれるルータアドレスと他の通信装置のルータ構成情報に含まれるルータアドレスとの一致または不一致を判断し、他の通信装置のルータ構成情報に含まれる最初に不一致と判断された通信経路の分岐点のアドレスとそのアドレスに対応するルータに設定された中継情報のポート番号を抽出する分岐アドレス抽出手段を備え、前記分岐アドレス抽出手段が抽出した前記分岐点のアドレスとポート番号を用いて、前記他の通信端末と通信を行うと好ましい。
【００４４】
上記の構成により、ルータ設定を行った後、分岐点を探すことができる。よって、多段に接続されたルータを介して接続される相手方の通信装置との通信が可能となる。
本願第２３発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置を提供する。ここで、通信装置は以下の構成要素を含む。
◎許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、
◎前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段、
◎前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、
◎前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段、
◎任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成手段、
◎前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信手段、
◎前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信手段、
◎前記機器応答パケットから機器アドレスを抽出する機器アドレス取得手段、
◎ルータアドレスが、グローバルアドレスか否かを判断する第１判断手段。
【００４５】
そして、通信装置において、ルータアドレスがグローバルアドレスである場合、機器ディスカバリ用パケット作成手段による機器ディスカバリ用パケットの作成、前記機器応答パケット受信手段による機器応答パケットの受信、機器アドレス取得手段による機器アドレスの抽出及び前記通信設定手段による通信機器との通信のための設定を中止する。
通信装置は、許容するルータ通過回数を変数とするルータディスカバリ用パケットを送信することでホームネットワーク内のルータのルータアドレスを取得することができる。さらに、通信装置は、このルータアドレスに基づいて機器ディスカバリ用パケットを送信することで、ルータに接続される通信機器のアドレスを取得することができる。よって、例えば通信装置は、多段のルータで構成されるホームネットワーク内においても、その通信機器にアクセスして通信機器の通信を中継するための各種設定を行うことも可能である。
【００４６】
本願第２４発明は、第２３発明において、抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器との通信のための設定を前記通信機器及び自身の通信装置のいずれかに行う通信設定手段をさらに含むことを特徴とする通信装置を提供する。
これにより、通信装置は、多段のルータで構成されるホー  ムネットワーク内においても、その通信機器にアクセスして通信機器の通信を中継するための各種設定を行うことができる。
本願第２５発明は、第２３発明において、前記ルータアドレスは、内側アドレスである。
これにより、ホームネットワーク内の通信機器にだけアクセスすることになり、安定した中継情報の設定を行うことが可能となる。
【００４７】
本願第２６発明は、第２３発明において、前記機器ディスカバリ用パケット作成手段は、抽出したルータアドレスの一部を変化させた試験アドレスを機器アドレスとして含む複数の機器ディスカバリパケットを作成し、
前記機器アドレス取得手段は、前記試験アドレスに基づいて作成された複数の機器ディスカバリパケットに対応する複数の機器応答パケットから前記機器アドレスを抽出することを特徴とする通信装置を提供する。
ルータに接続される通信機器の機器アドレスをルータアドレスに基づいて決定することで、無作為に機器アドレスを決定するよりも容易に機器アドレスの推測を行うことができる。
なお、前記通信設定手段は、前記通信機器に対して、通信に使用する無線チャネル、暗号情報、及び認証情報の少なくとも１つを含む無線通信の設定を行うと好ましい。
【００４８】
この場合、複数のルータで構成された宅内ホームネットワークでも、無線アクセスするための設定を行うことを可能とする。
また、前記通信設定手段は、前記通信機器から通信に使用する無線チャネル、暗号情報、及び認証情報の少なくとも１つを含む無線通信を行うための情報を抽出し、自身の通信装置の無線通信機能の設定を行うと好ましい。
この場合、複数のルータで構成された宅内ホームネットワークでも、無線アクセスするための設定を行うことを可能とする。
本願第２７発明は、第２３発明において、抽出した機器アドレスに基づいて通信機器にアクセスし、前記通信機器のアドレスやプロパティ情報を把握する機器把握部をさらに含むことを特徴とする通信装置を提供する。
【００４９】
この場合、通信機器のアドレスやプロパティからこの通信機器がどのような機器であるか、あるいはどのような状態であるかを認識することが可能となる。
本願第２８発明は、第２７発明において、前記機器把握部により取得した通信機器のアドレスやプロパティ情報を表示する表示部をさらに含む通信装置を提供する。
この場合、取得したルータおよび通信機器の情報を表示部に表示することにより、ユーザによる確認が容易となる。
本願第２９発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置における通信方法であって、各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得ステップと、
各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得ステップとを含み、前記外側アドレス取得ステップでは、前記内側アドレス取得ステップで取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、前記内側アドレス取得ステップでは、前記外側アドレス取得ステップで取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返すことを特徴とする通信方法を提供する。
【００５０】
本願発明は、本願第１発明と同様の作用効果を奏する。
本願第３０発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムであって、
各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得手段、及び各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得手段としてとして通信装置を機能させ、前記外側アドレス取得手段は、前記内側アドレス取得手段が取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返すことを特徴とする通信プログラムを提供する。
【００５１】
本願発明は、本願第１発明と同様の作用効果を奏する。
本願第３１発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、各ルータのホームネットワーク側アドレス（以下、内側アドレスという）を取得する内側アドレス取得ステップと、各ルータの広域ネットワーク側アドレス（以下、外側アドレスという）を取得する外側アドレス取得ステップとを実行させ、前記外側アドレス取得手段は、前記内側アドレス取得手段が取得した内側アドレスに基づいてルータにアクセスし、そのルータの外側アドレスを取得することを繰りかえし、前記内側アドレス取得手段は、前記外側アドレス取得手段が取得した外側アドレスに基づいて、前記外側アドレスを有するルータよりも広域ネットワーク側に位置するルータの内側アドレスを取得することを繰り返すことを特徴とする通信プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供する。
【００５２】
本願発明は、本願第１発明と同様の作用効果を奏する。
本願第３２発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置における通信方法であって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信ステップと、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、抽出したルータアドレスに基づいてルータにアクセスし、中継情報設定処理の依頼先情報を取得する処理依頼先取得ステップと、ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断ステップと、を含むことを特徴とする通信方法を提供する。
【００５３】
そして、この通信方法において、処理依頼先取得ステップでは、ルータアドレスがグローバルアドレスである場合、ルータにアクセスしない。
本願発明は、本願第１４発明と同様の作用効果を奏する。
本願第３３発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムであって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信手段、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、及び前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段と、抽出したルータアドレスに基づいてルータにアクセスし、中継情報設定処理の依頼先情報を取得する処理依頼先取得手段と、ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断手段として通信装置を機能させることを特徴とする通信プログラムを提供する。
【００５４】
そして、この通信プログラムにおいて、処理依頼先取得手段は、ルータアドレスがグローバルアドレスである場合、ルータにアクセスしない。  本願発明は、本願第１４発明と同様の作用効果を奏する。
本願第３４発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータを通過するように送信するルータディスカバリ用パケット送信ステップと、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、抽出したルータアドレスに基づいてルータにアクセスし、中継情報設定処理の依頼先情報を取得する処理依頼先取得ステップと、ルータアドレスが、広域ネットワークで用いられるグローバルアドレスか否かを判断する第１判断ステップとを含むことを特徴とする通信プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供する。
【００５５】
そして、この通信プログラムにおいて、処理依頼先取得ステップでは、ルータアドレスがグローバルアドレスである場合、ルータにアクセスしない。  本願発明は、本願第１４発明と同様の作用効果を奏する。
本願第３５発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信方法であって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信ステップと、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成ステップと、前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信ステップと、前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信ステップと、前記機器応答パケットから機器アドレスを抽出する機器アドレス取得ステップと、ルータアドレスが、グローバルアドレスか否かを判断する第１判断ステップを含むことを特徴とする通信方法を提供する。
【００５６】
そして、この通信方法において、ルータアドレスがグローバルアドレスである場合、機器ディスカバリ用パケット作成ステップによる機器ディスカバリ用パケットの作成、機器応答パケット受信ステップによる機器応答パケットの受信、機器アドレス取得ステップによる機器アドレスの抽出及び通信設定ステップによる通信機器との通信のための設定を中止する。  本願発明は、本願第２３発明と同様の作用効果を奏する。
本願第３６発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムであって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成手段、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信手段、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信手段、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得手段、任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成手段、前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信手段、前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信手段、前記機器応答パケットから機器アドレスを抽出する機器アドレス取得手段、及びルータアドレスが、グローバルアドレスか否かを判断する第１判断手段として、通信装置を機能させることを特徴とする通信プログラムを提供する。
【００５７】
そして、この通信プログラムにおいて、ルータアドレスがグローバルアドレスである場合、機器ディスカバリ用パケット作成手段による機器ディスカバリ用パケットの作成、機器応答パケット受信手段による機器応答パケットの受信、機器アドレス取得手段による機器アドレスの抽出及び通信設定手段による通信機器との通信のための設定を中止する。
本願発明は、本願第２３発明と同様の作用効果を奏する。
本願第３７発明は、広域ネットワークに接続され、多段に接続された複数のルータを含むホームネットワーク内の通信装置が実行する通信プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、許容するルータ通過回数を変数として含むルータディスカバリ用パケットを作成するルータディスカバリ用パケット作成ステップと、前記ルータディスカバリ用パケットを前記ホームネットワーク内の複数のルータに送信するルータディスカバリ用パケット送信ステップと、前記ルータディスカバリ用パケットに応答して、前記複数のルータから各ルータアドレスを含む複数のルータ応答パケットを受信するルータ応答パケット受信ステップと、前記ルータ応答パケットから各ルータアドレスを抽出するルータアドレス取得ステップと、任意のルータに接続される通信機器を検出するための機器ディスカバリパケットを、抽出したルータアドレスに基づいて作成する機器ディスカバリ用パケット作成ステップと、前記機器ディスカバリ用パケットを少なくとも１の通信機器に送信する機器ディスカバリ用パケット送信ステップと、前記機器ディスカバリパケットに応答して、少なくとも１の通信機器からその通信機器の機器アドレスを含む機器応答パケットを受信する機器応答パケット受信ステップと、前記機器応答パケットから機器アドレスを抽出する機器アドレス取得ステップと、ルータアドレスが、グローバルアドレスか否かを判断する第１判断ステップとを実行させるための通信プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供する。
【００５８】
そして、この通信プログラムにおいて、ルータアドレスがグローバルアドレスである場合、機器ディスカバリ用パケット作成ステップによる機器ディスカバリ用パケットの作成、機器応答パケット受信ステップによる機器応答パケットの受信、機器アドレス取得ステップによる機器アドレスの抽出及び通信設定ステップによる通信機器との通信のための設定を中止する
本願発明は、本願第２３発明と同様の作用効果を奏する。
本発明を用いれば、多段のルータで構成されたホームネットワークにおいても、通信装置がルータ設定を行うことができる。
【発明を実施するための最良の形態】
【００５９】
＜発明の概要＞
本発明の通信装置は、ホームネットワーク内において多段のルータの配下に通信装置が接続されている場合に、その各ルータを発見することができる。通信装置は、まず各ルータにルータディスカバリ用パケットを送信する。このとき、ルータディスカバリ用パケットは、パケットがルータからルータへ転送される度に減算される変数を含んでいる。そして、ルータディスカバリ用パケットを受信したルータは、変数が０になると送信元の通信装置にルータ応答パケットを返す。これにより、通信装置は、ホームネットワーク内においてルータが多段に接続されている場合であっても、ルータ構成（ルータのアドレスと接続順序）を把握することができる。そして、通信装置が得られたルータのアドレスを基にしてルータにアクセスし、ルータ設定の依頼先情報を取得する。
【００６０】
そして、前記依頼先情報にアクセスすることで、ホームネットワーク内の多段に接続されている各ルータに対してルータ設定の指示を行うことができる。よって、通信装置は、ルータ設定が行われたルータを介してホームネットワーク内の他の通信装置との通信や、ホームネットワークに接続されている広域ネットワーク内の他の通信装置との通信を行うことができる。
また、ホームネットワーク内において多段に接続されているルータを把握する別の方法としては、まず通信装置からルータディスカバリ用パケットを送信することで、通信装置に直接接続されるルータのホームネットワーク側アドレスを取得する。そして、ホームネットワーク側アドレスに基づいてルータにアクセスし、そのルータの広域ネットワーク側アドレスを取得する。ここで、ホームネットワーク側アドレスとは、通信装置からルータにアクセスするためのルータのアドレスである。また、広域ネットワーク側アドレスとは、広域ネットワーク側から通信装置への通信をルータにより中継する際における、広域ネットワーク側からみたルータのアドレスである。そして、前述のように取得した広域ネットワーク側アドレスに基づいて、新たなホームネットワーク側アドレスを推測する。さらに、推測したホームネットワーク側アドレスに基づいてルータにアクセスして、そのルータの広域ネットワーク側アドレスを取得することを繰りかえすことで、ルータ構成を把握することができる。  以下の実施形態においては、一例として、ホームネットワークに接続される広域ネットワークをインターネットとし、ホームネットワーク側アドレスをＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側アドレスとし、広域ネットワーク側アドレスをＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側アドレスとして説明する。
【００６１】
〈第１実施形態：ｔｒａｃｅｒｏｕｔｅを用いた場合〉
以下に、本発明の第１実施形態について、図面を参照しながら説明する。
（全体構成）
図１は、本発明の第１実施形態におけるホームネットワークの構成を示している。図１において、インターネット１とホームネットワーク２とが接続されている。インターネット１にはルータ１０Ｄが設けられている。ホームネットワーク２は、ルータ２０Ｃ、ルータ３０Ｂ及びルータ４０Ａを含む多段のルータから構成されている。ルータ２０Ｃはインターネットとの境界に配置されており、さらにルータ３０Ｂ及びルータ４０Ａが順に配置されている。ルータ４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置５０が接続されている。通信装置１５０は、通信Ｉ／Ｆ５０１を有している。
【００６２】
ルータ２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ２０２とＷＡＮ側通信Ｉ／Ｆ２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ３０２とＷＡＮ側通信Ｉ／Ｆ３０１とを有し、ルータ４０Ａは、ＬＡＮ側通信Ｉ／Ｆ４０２とＷＡＮ側通信Ｉ／Ｆ４０１とを有する。ここでルータ２０Ｃが、グローバルアドレスを用いて通信を行うインターネット１内のルータ１０Ｄとの間で接続を行うことにより、ホームネットワーク２とインターネット１との接続が確立される。
（通信装置の構成）
図２は、本発明の実施の形態において、ホームネットワークのルータ設定を実行する通信装置５０の構成を示している。
【００６３】
この通信装置５０は、制御部５１、ディスカバリ用パケット作成部５２、受信パケット解析部５３、パケット送受信部５４、通信部５５及びルータ設定部５６を備えている。制御部５１は、各機能部に処理の指示を行う。ディスカバリ用パケット作成部５２は、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部５４は、通信部５５に対してパケットの送信処理を指示し、通信部５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。ルータ設定部５６は、ホームネットワークのルータの設定を実行する。また、ルータ設定部５６は、取得したアドレスに基づいて当該ルータにアクセスし、ルータに対するＮＡＴ設定等の依頼先を取得する処理依頼先取得部５６ａを備えている。
【００６４】
ルータディスカバリ用パケット作成部５２は、例えば次のようなパケットを作成する。図３はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いる場合のルータディスカバリパケットである。ディスカバリ用パケット作成部５２は、図３中のＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）フィールドを１から順に変化させ、それと同時に、ＵＤＰヘッダのあて先ポート番号を１０００１からＴＴＬと同様にインクリメントしながらパケットを作成する。このようなパケットを作成することで、あて先ポート番号を確認することができれば、送信時に指定したＴＴＬが特定することが可能となる。
図４にルータディスカバリ用パケットのＴＴＬとあて先ポート番号の一例を示す。本図のあて先ポート番号は一例であり、宛先ポート番号はこの値に限らない。単に宛先ポート番号からＴＴＬを特定できさえすればよい。なお、ディスカバリ用パケット作成部５２は、図４に示す対応表を記憶する記憶部（図示しない）を有しており、この記憶部に基づいてＴＴＬの特定を行う。
【００６５】
（ルータ設定の動作）
以上のように構成されたホームネットワーク２に接続され、ルータ設定を実行する通信装置５０の動作について以下に説明する。
（１）ルータディスカバリ用パケットの送信処理
まず、ルータディスカバリ用パケットの送信処理について説明する。図５は、通信装置５０が実行するルータディスカバリ用パケットの送信処理シーケンスを示している。ルータディスカバリ用パケットの送信処理は以下のように実行される。
制御部５１によりディスカバリ用パケット作成の指示があった場合、通信装置５０はこのルータディスカバリ用パケットの送信処理シーケンスを開始する。
ステップＳ１０１：通信装置５０のディスカバリ用パケット作成部５２は、制御部５１からパケット作成の指示が継続しているか否かを判別する。
【００６６】
ディスカバリ用パケット作成部５２は、制御部５１からパケット作成指示がされていないと判断した場合、このシーケンスを終了する。ここで、制御部５１がパケット作成指示後に停止指示を行うのは、次に説明するルータからのパケット受信処理で特定の条件を満たしたときである。
ステップＳ１０２：ディスカバリ用パケット作成部５２は、パケット作成指示が継続していると判断した場合、ＴＴＬを１から順にインクリメントしたルータディスカバリ用パケットを作成する。
ステップＳ１０３：ディスカバリ用パケット作成部５２は、ルータディスカバリ用パケットを作成すると、パケット送受信部５４にパケット送信を指示する。パケット送受信部５４は、通信部５５を通じて、ルータディスカバリ用パケットを送信する。
【００６７】
ここで、ディスカバリ用パケット作成部５２は、送信したルータディスカバリ用パケットに対するルータからの応答を待つことなく、異なるルータディスカバリ用パケットを送信するように構成できる。従来のルータディスカバリ用パケットに対する応答パケットにはＴＴＬを識別するための情報が含まれていない。そのため、どのルータからのルータ応答パケットであるかを把握するためには、ルータディスカバリ用パケットに対するルータ応答パケットが返ってくるか、タイムアウトを検出するまで応答を待つ必要がある。よって、経路上のルータのアドレスを把握するのに非常に時間がかかる。しかし、上記構成により、通信装置は、ルータ応答パケット内のあて先ポート番号などの情報によりどのルータからのルータ応答パケットであるかを把握することができる。よって、複数のルータ応答パケットを受信した場合でも、どのルータからの応答であるかが分かる。そのため、通信装置は、ＴＴＬを変化させたルータディスカバリ用パケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。また、ＵＰｎＰ  ＩＧＤ仕様を利用する場合における各ルータへのルータ設定では、通信装置で特定のアプリケーションが起動した段階でルータ設定を行う等の動的な設定に対応させる必要がある。前述のように、通信装置がホームネットワーク内のルータのアドレスやルータ構成を高速に取得することで、各ルータへの動的なルータ設定に対応することができる。
【００６８】
なお、ルータディスカバリ用パケットは、インターネット上の特定のグローバルアドレス宛てに向けて送信するように構成できる。
以上が、通信装置５０が実行するルータディスカバリ用パケットの送信処理シーケンスである。
（２）ＩＣＭＰ時間超過（Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ）パケットの受信処理
次に、ルータディスカバリ用パケットに対して、ルータから送信されるＩＣＭＰ時間超過（Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ）パケットの受信処理について説明する。
（２−１）ＩＣＭＰ時間超過パケットの受信処理の概要
図６は、ルータディスカバリ用パケットと、それに対応してルータから送信されるＩＣＭＰ時間超過パケットの関係を示している。各ルータは、通信装置５０側（以下、ＬＡＮ側という）から受信したルータディスカバリ用パケットをホームネットワーク外側方向（以下、ＷＡＮ側という）のネットワークに送信するときに、ＴＴＬの値を１だけ引いた値にして送信する。各ルータは、このＴＴＬの引き算をすることでＴＴＬが０になるとパケットをＷＡＮ側に送信せずに廃棄し、ＩＣＭＰ時間超過をパケットの送信元である通信装置に向けて応答パケットとして送信する。
【００６９】
図７にＩＣＭＰ時間超過パケットを示す。ＩＣＭＰ時間超過パケット中のデータには、廃棄したパケットのＩＰヘッダとそれに続く６４ビットのデータが付加される。したがって、ＴＴＬ＝１に設定されたルータディスカバリ用パケットは、インターネット上のアドレスに向けて送信されると、ルータ４０ＡにおいてＷＡＮ側に送信しようとした時にＴＴＬ＝０となる。よって、このルータディスカバリ用パケットが廃棄された上、ルータ４０ＡからＩＣＭＰ時間超過パケットが通信装置５０に送信される。このＩＣＭＰ時間超過パケットの送信元アドレスは、ルータ４０ＡのＬＡＮ側アドレスとなる。よって、通信装置５０は、このＩＣＭＰ時間超過パケットの送信元アドレスを確認することで、ルータ４０ＡのＬＡＮ側アドレスを取得することが可能となる。
同様に、通信装置５０がＴＴＬ＝２に設定したルータディスカバリ用パケットを送信すると、ルータ３０ＢのＬＡＮ側アドレスを取得することができる。つまり、通信装置５０は、ＴＴＬ＝３、ＴＴＬ＝４のルータディスカバリ用パケットを送信することで、それぞれルータ２０Ｃ、ルータ１０ＤのＬＡＮ側アドレスを取得することが可能となる。
【００７０】
（２−２）ＩＣＭＰ時間超過パケットの受信処理の詳細
図８は、ＩＣＭＰ時間超過パケットの受信処理を示している。
ステップＳ１０４：通信部５５が、ルータディスカバリ用パケットに対応するＩＣＭＰ時間超過パケットを受信すると、パケット送受信処理部５４が受信パケット解析部５３に受信したＩＣＭＰ時間超過パケットを送信する。
受信パケット解析部５３はＩＣＭＰ時間超過パケットのデータ部に含まれた送信先ポート番号を取り出し、その情報を元にルータディスカバリ用パケット送信時に指定したＴＴＬを特定する。同時に、受信パケット解析部５３は、受信したＩＣＭＰ時間超過パケットの送信元アドレスを参照することで、ＩＣＭＰ時間超過パケットを送信してきたルータのＬＡＮ側アドレスを取得する。
【００７１】
たとえば、ディスカバリ用パケット作成部５２が図３に示すようなＵＤＰによるルータディスカバリ用パケットを作成して送信したとする。このとき、ＩＣＭＰ時間超過パケットのデータ部に含まれた送信先ポート番号が１０００１であるとき、図４からＴＴＬ＝１のルータディスカバリ用パケットに対するＩＣＭＰであることがわかるので、受信パケット解析部５３は、ルータ４０ＡのＬＡＮ側アドレスを取得したことを認識できる。同様に、送信先ポート番号が１０００２であれば、受信パケット解析部５３は、ＴＴＬ＝２のルータディスカバリ用パケットに対するＩＣＭＰであると判断することができるので、ルータ３０ＢのＬＡＮ側アドレスを取得したことを認識できる。
ステップＳ１０５：次に、通信装置５０の制御部５１は、取得したアドレスがローカルアドレスであるか否かを判断する。
【００７２】
ステップＳ１０６：通信装置５０の制御部５１は、受信したＩＣＭＰ時間超過パケットに含まれる送信元アドレスがローカルアドレスであると判断した場合、ルータ設定部５６にルータ設定を指示する。指示を受けたルータ設定部５６の処理依頼先取得部５６ａは、取得したアドレスに基づいて当該ルータにアクセスし、後述のＵＰｎＰ  ＩＧＤ仕様を利用したＮＡＴ設定で示すように、まず、ルータに対するＮＡＴ設定等の依頼先を取得する。そして、ルータ設定部５６が当該ルータの前記依頼先（アクション要求の送信先ＵＲＬ）にアクセスしＮＡＴ設定とファイアウォール設定を実行する。
ステップＳ１０７：通信装置５０の制御部５１は、受信したＩＣＭＰ時間超過パケットに含まれる送信元アドレスがグローバルアドレスであると判断した場合、ディスカバリ用パケット作成部５２にディスカバリ用パケット作成の中止を指示し、処理を終了する。このように送信元アドレスがグローバルアドレスである場合は、ホームネットワーク内のルータの検出が終了している。これにより、ホームネットワーク外のルータに対して、通信装置５０がＴＴＬを変化させたパケットを無用に送信することをさけることが可能となる。また、ホームネットワーク内のルータに対してのみＮＡＴ設定やファイアウォール設定を行うことが可能となる。
【００７３】
前述のように、ルータ設定部５６がＮＡＴ設定とファイアウォール設定などのルータ設定を行う理由は次の通りである。
インターネット上ではグローバルアドレスで通信を実行しており、一方、ホームネットワーク内ではローカルアドレスで通信を実行する。このため、ホームネットワーク２内の通信装置５０は、直接、インターネット１上の通信装置と通信することができない。これを解決するのがＮＡＴ設定である。ＮＡＴ設定は、アドレス変換の設定であり、たとえば、ルータ２０Ｃ、ルータ３０Ｂ、ルータ４０Ａのすべてのルータの設定を実行することにより、ホームネットワーク２外部のインターネット１上の通信装置からホームネットワーク２内の通信装置５０へのアクセスが可能となる。ただし、各ルータにはファイアウォールが設定されている場合があり、正しくアドレス変換の設定がなされていても、このファイアウォールにより、途中でパケットが廃棄される場合がある。
【００７４】
ファイアウォールの設定として典型的な例はパケットフィルタの設定であり、アドレス変換の設定と同様に通信装置５０に到達するまでのホームネットワークのルータを設定、つまりＷＡＮ側からの接続の許可の設定をすることによりパケット廃棄を防ぐことができる。
通常、ルータはＷｅｂベースでのユーザインターフェイスを持っており、ルータのＬＡＮ側アドレスに適切なｈｔｔｐメッセージを送信することで、ＮＡＴ設定やパケットフィルタの設定を行うことが可能である。また、ＮＡＴ設定については、ＵＰｎＰ  ＩＧＤ仕様を用いて行うことも可能である。
（ＵＰｎＰ  ＩＧＤ仕様を利用したＮＡＴ設定）
以下に、一例として、ＵＰｎＰ  ＩＧＤ仕様を利用してＮＡＴ設定を行う場合の処理について記述する。なお、ＵＰｎＰ  ＩＧＤ仕様については、ＵＰｎＰ  ＦＯＲＵＭ資料  Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ  （ＩＧＤ）  Ｖ１．０（入手先：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｉｇｄ．ａｓｐ）及び、ＵＰｎＰ  （ＴＭ）  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ（入手先：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｄｏｗｎｌｏａｄ  ／ＵＰｎＰＤＡ１０＿２００００６１３．ｈｔｍ）に詳細が記載されている。
【００７５】
ＴＴＬ＝１に設定したルータディスカバリ用パケットの送信に対応して、受信パケット解析部５３がルータ４０ＡのＬＡＮ側アドレスを取得した場合、この取得したＬＡＮ側アドレスは制御部５１を介してルータ設定部５６に送られる。
そして、通信装置５０のルータ設定部５６の処理依頼先取得部５６ａは、通信装置５０に直接接続されるルータ４０ＡのＬＡＮ側アドレスに対して、ユニキャストでＭ−Ｓｅａｒｃｈ要求を送信する。送信したＭ−Ｓｅａｒｃｈ要求に対する応答パケットには、デバイスの詳細情報（デバイスディスクリプション）の取得先を示すＵＲＬが示されている。通信装置５０の通信部５５及びパケット送受信部５４を介して応答パケットを受信した処理依頼先取得部５６ａは、このデバイスディスクリプションの取得先から、デバイスの種別、デバイスが提供するサービス・機能の起動方法、デバイスの状態取得情報などを含むデバイスディスクリプションを取得し、これからアクション要求の送信先ＵＲＬの情報を入手する。
【００７６】
ルータ設定部５６は、入手したアクション要求の送信先ＵＲＬにＡｄｄＰｏｒｔＭａｐｐｉｎｇアクションを送信することで、ルータ４０ＡにＮＡＴ設定を行う。このアクション実行時に指定する引数として、インターネット上の通信装置からのアクセス時に使用する通信装置５０自身のポート番号（Ｐｘ）、通信装置のＩＰアドレス、ルータ４０Ａのポート番号を指定する。
通信装置５０自身のポート番号（Ｐｘ）に対するＮＡＴ設定を行う場合、典型的な例としては、ルータ４０Ａのポート番号Ｐｘを指定してＮＡＴ設定を実行することが考えられる。
次に受信パケット解析部５３がＴＴＬ＝２に対応するルータ３０ＢのＬＡＮ側アドレスを取得した時、ルータ設定部５６は、ルータ４０ＡのＷＡＮ側アドレスとポート番号Ｐｘとルータ３０Ｂのポート番号Ｐｘを指定してＡｄｄＰｏｒｔＭａｐｐｉｎｇを実行することで、ルータ３０Ｂに対するＮＡＴ設定を行うことが可能である。ここで、ルータ４０ＡのＷＡＮ側アドレスは、ルータ４０Ａに対してＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションを送信することで得ることができる。
【００７７】
同様に、受信パケット解析部５３がＴＴＬ＝３に対応するルータ２０ＣのＬＡＮ側アドレスを取得した時、ルータ設定部５６は、ルータ３０ＢのＷＡＮ側アドレスとポート番号Ｐｘとルータ２０Ｃのポート番号Ｐｘとを指定してＡｄｄＰｏｒｔＭａｐｐｉｎｇを実行することにより、ルータ２０Ｃに対するＮＡＴ設定を行うことが可能となる。
なお、ＴＴＬ＝１に対応する応答パケットより先に、ＴＴＬ＝２や３に対応するルータの応答パケットを受信した場合、ＮＡＴ設定を行うための変換先アドレスが未取得である。よって、ルータ設定部５６は、受信したＴＴＬに対応するルータのＬＡＮ側に接続されたルータのアドレスを取得したときにＮＡＴ設定を実行する。たとえば、ＴＴＬ＝１に対応するルータ４０Ａの応答パケットより、ＴＴＬ＝２に対応するルータ３０Ｂの応答パケットを先に受信したとする。このとき、ＴＴＬ＝１に対応するルータ４０Ａからの応答パケットを受信してルータ４０ＡのＷＡＮ側アドレスを取得後にルータ３０ＢのＮＡＴ設定を実行するように構成する。
【００７８】
（作用効果）
以上のように、本発明の通信装置は、ＴＴＬを変数とするルータディスカバリ用パケットを上記通信装置から受信したルータは、ＬＡＮ側つまり通信装置側から、ＷＡＮ側つまり通信装置に対してホームネットワークの外側に向かってルータディスカバリ用パケットを送信する。このとき、ルータは設定された中継ルータ数を１だけ引いて次に接続されるルータに送信する。ルータは、中継ルータ数が“０”になるとＷＡＮ側へのルータディスカバリ用パケットの送信を停止し、ルータ応答パケットをルータディスカバリ用パケットの送信元である通信装置に送信する。これにより、通信装置は、ホームネットワーク内のルータの構成を容易に把握することができる。そして、通信装置は、把握したルータにアクセスし、多段に接続されたルータを介して接続される他の通信装置との通信が可能となるようにルータを設定する。
【００７９】
また、この第１実施形態においては、ルータのＬＡＮ側アドレスとしてグローバルアドレスが取得できたときにルータディスカバリ用パケットの送信を終了することとしているが、ルータディスカバリ用パケットのＴＴＬに上限値を設けて、上限値に達したときにルータディスカバリ用パケットの送信を終了させることも可能である。
また、この第１実施形態では、ルータが３台接続されたホームネットワークを例に説明を行っているが、これは一例に過ぎず、本発明は１台のルータからＮ台のルータで構成されるホームネットワークに対して同様に適用することが可能である。
また、この第１実施形態では、ルータディスカバリ用パケットをＴＴＬとあて先ポート番号を変化させるとしたが、ＴＴＬとあて先ＩＰアドレス又は送信元ポート番号を変化させても同様に処理が可能である。さらに、ルータディスカバリ用パケットを図９のようなＩＣＭＰエコー要求で作成することも可能である。ＩＣＭＰエコー要求を使用する場合でも、同様にＴＴＬを変化させることで、通信装置は、各ルータから前述の図７のようなＩＣＭＰ時間超過パケットを得ることが可能である。ＩＣＭＰエコー要求を用いる場合、ＴＴＬとともにシーケンス番号又はあて先ＩＰアドレス又は識別子を変化させることで、ＵＤＰを用いたルータディスカバリ用パケットと同様な制御が可能となる。図１０にルータディスカバリ用パケットのＴＴＬとシーケンス番号とを対応させる場合の一例を示す。ここで、シーケンス番号の値は一例であり、この値に限らず、単にシーケンス番号からＴＴＬが特定できれば良い。
【００８０】
また、この第１実施形態では、ルータ設定部５６の処理依頼先取得部５６ａが、ユニキャストでＭ−Ｓｅａｒｃｈ要求を送信する。そして、その応答からデバイスの詳細情報（デバイスディスクリプション）の取得先を示すＵＲＬを入手し、本ＵＲＬを元にルータに対する中継情報の設定依頼先の情報を入手する例を記述した。しかし、UPnPを用いる例は本発明の一実施の形態であり、処理依頼先取得部５６ａは他の方法でルータLAN側アドレスを基に処理依頼先の情報を知っても良い。たとえば、処理依頼先取得部５６ａは、既知の情報（たとえば、well-knownポート番号やwell-known  URL情報）とルータのLAN側アドレスを組み合わせて処理依頼先の情報を作り出しても良い。
〈第２実施形態：無線ネットワークの設定を行う場合〉
以下に本発明の第２実施形態について、図面を参照しながら説明する。
【００８１】
（全体構成）
図１１は、本発明の第２実施形態におけるホームネットワークの構成を示している。図１１において、インターネット１００１とホームネットワーク１００２とが接続されている。インターネット１００１にはルータ１１０Ｄが設けられている。ホームネットワーク１００２は、ルータ１２０Ｃ、ルータ１３０Ｂ及びルータ１４０Ａを含む多段のルータから構成されている。ルータ１２０Ｃはインターネットとの境界に配置されており、さらにルータ１３０Ｂ及びルータ１４０Ａが順に配置されている。ここで、ルータ１２０Ｃは無線ＡＰ（アクセスポイント）機能を有した無線ルータである。また、ルータ１３０Ｂには無線ＡＰ１６０が接続されており、ルータ１４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置１５０が接続されている。さらに、通信装置１５０は、有線の通信Ｉ／Ｆ１５０１と無線通信のＩ／Ｆ１５０２を有しており、後述の通り自装置の無線通信機能の設定及び無線ＡＰ１６０の設定を行う。
【００８２】
ルータ１２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ１２０２とＷＡＮ側通信Ｉ／Ｆ１２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ１３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ１３０２とＷＡＮ側通信Ｉ／Ｆ１３０１とを有し、ルータ１４０Ａは、ＬＡＮ側通信Ｉ／Ｆ１４０２とＷＡＮ側通信Ｉ／Ｆ１４０１とを有する。ここでルータ１２０Ｃが、グローバルアドレスを用いて通信を行うインターネット１００１内のルータ１１０Ｄとの間で接続を行うことにより、ホームネットワーク１００２とインターネット１００１との接続が確立される。さらに、無線ＡＰ１６０は、通信Ｉ／Ｆ１６０１を有している。
（通信装置の構成）
図１２は、通信装置１５０の構成を示す機能ブロック図である。この通信装置１５０は、制御部１５１、ディスカバリ用パケット作成部１５２、受信パケット解析部１５３、パケット送受信部１５４、通信部１５５、無線ＡＰ設定部１５６、無線通信設定部１５７、無線通信部１５８を備えている。制御部１５１は各機能部に処理の指示を行う。ディスカバリ用パケット作成部１５２は、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。また、ディスカバリ用パケット作成部１５２は、ルータに接続される通信機器を発見するためのパケット（以下、機器ディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部１５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部１５４は、通信部１５５に対してパケットの送信処理を指示し、通信部１５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部１５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。無線ＡＰ設定部１５６は、無線ＡＰ１６０に対して暗号キー、ＳＳＩＤ等の識別情報、無線チャネル及び認証情報等を設定する。無線通信設定部１５７は、自装置の無線通信部１５８に暗号キー、ＳＳＩＤ等の識別情報、無線チャネル及び認証情報等を設定する。無線通信部１５８は、無線による通信を可能とする。
【００８３】
（無線ネットワーク設定の動作）
以上のように構成されたホームネットワーク１００２に接続され、無線ネットワーク設定を実行する通信装置１５０の動作について以下に説明する。
（１）処理の概要
まず、各ルータのルータアドレスを発見し、その発見したルータアドレスを用いて、無線ＡＰ１６０を発見する過程の概要について説明する。
図１３は、ルータのアドレスを発見し、その発見したアドレスを用いて、無線ＡＰ１６０を発見する過程を図示する。まず、通信装置１５０は、ＴＴＬを１から変化させたルータディスカバリ用パケットを送信する。通信装置１５０は、ルータディスカバリ用パケットの応答としてＴＴＬ＝１に対応するＩＣＭＰ  時間超過パケットを受信する。また、通信装置は、ＴＴＬ＝２としたルータディスカバリ用パケットの応答として、ルータ１３０ＢからＩＣＭＰ時間超過パケットを受信することができる。通信装置１５０は、受信したＩＣＭＰ時間超過パケットの送信元アドレスにより、ルータ１３０ＢのＬＡＮ側アドレスを知ることができる。通信装置１５０は、入手したルータ１３０ＢのＬＡＮ側アドレスを拠り所として、同一ネットワークグループに属する無線ＡＰ１６０の機器アドレスを検出する。さらに、通信装置１５０は、その無線ＡＰ１６０の通信設定、無線ＡＰ１６０の設定情報を取得して通信装置１５０自身の無線機能の設定、またはその両者を実行する。
【００８４】
（２）ルータディスカバリ用パケットの送信処理シーケンス
まず、ルータディスカバリ用パケットの送信処理シーケンスについて説明する。図１４は、ディスカバリ用パケット作成部１５２により実行される、ＴＴＬを変化させたルータディスカバリ用パケットの送信処理シーケンスである。
制御部１５１によりルータディスカバリ用パケット作成の指示があった場合、通信装置１５０はこのルータディスカバリ用パケットの送信処理シーケンスを開始する。
ステップＳ２０１：通信装置１５０のディスカバリ用パケット作成部１５２は、制御部１５１からパケット作成の指示が継続しているか否かを判別する。
ディスカバリ用パケット作成部１５２は、パケット作成指示がされていないと判断した場合、このシーケンスを終了する。ここで、制御部１５１がパケット作成指示後に停止指示を行うのは、次に説明するルータからのパケット受信処理で特定の条件を満たしたときである。
【００８５】
ステップＳ２０２：ディスカバリ用パケット作成部１５２は、パケット作成指示が継続していると判断した場合、ＴＴＬを１から順にインクリメントしたルータディスカバリ用パケットを作成する。
ステップＳ２０３：ディスカバリ用パケット作成部１５２は、ルータディスカバリ用パケットを作成すると、パケット送受信部１５４にパケット送信を指示する。パケット送受信部１５４は、通信部１５５を通じて、ルータディスカバリ用パケットを送信する。
なお、このルータディスカバリ用パケットの送信処理シーケンスは、第１実施形態例の図５に示すシーケンスと同様である。
（３）無線ＡＰディスカバリ用パケットの送信処理
図１５は、ディスカバリ用パケット作成部１５２により実行される、送信したルータディスカバリ用パケットに対応して得られたルータのＩＰアドレスを用いて、無線ＡＰを検出するための無線ＡＰディスカバリ用パケットを送信するシーケンスである。以下にその動作を説明する。
【００８６】
ステップＳ２０４：まず、通信装置１５０のディスカバリ用パケット作成部１５２は、制御部１５１が無線ＡＰディスカバリ用パケットの作成を指示しているか否かを判別する。
ディスカバリ用パケット作成部１５２は、無線ＡＰディスカバリ用パケットの作成指示が継続していないと判断した場合、無線ＡＰディスカバリ用パケットの作成を中止し、処理を終了する。
ステップＳ２０５：制御部１５１が無線ＡＰディスカバリ用パケットの作成を指示していると判断した場合、通信装置１５０のディスカバリ用パケット作成部１５２は、制御部１５１より指示されたルータのＩＰアドレスを基に、無線ＡＰのアドレスを推測して、無線ＡＰディスカバリ用パケットを作成する。
【００８７】
なお、制御部１５１が無線ＡＰディスカバリ用パケットの作成を中止する旨の指示を行うタイミングについては、後述のルータ及び無線ＡＰディスカバリ用パケットの受信処理シーケンスで述べる。
ステップＳ２０６：次に、ディスカバリ用パケット作成部１５２が無線ＡＰ１６０のアドレスを推測し、無線ＡＰディスカバリ用パケットの作成を完了すると、パケット送受信部１５４及び有線通信部１５５は、無線ＡＰディスカバリパケットをホームネットワーク１００２に内に送信する。
上記ステップＳ２０５における、ディスカバリ用パケット作成部１５２による無線ＡＰディスカバリ用パケットの送信先アドレスの推測は例えば次の方法により行う、アドレスの種別（クラスＡ、クラスＢ、クラスＣ）をまず判別した上で、同一ネットワーク上で変化する可能性があるアドレス内のビットに着目し、その値を順に変化させる方法を用いる。図１６は、無線ＡＰディスカバリ用パケットの宛先アドレスであり、通信装置は、このアドレスに対するパケットの作成指示を行うことで、クラスＣのアドレスのルータ配下に接続された無線ＡＰを発見することができる。
【００８８】
ここで、ＬＡＮ側アドレスが判明しているルータに無線ＡＰ機能が実装されている場合を考慮して、通信装置は、まずこのルータのアドレスに対して無線ＡＰディスカバリ用パケットを送信する。
無線ＡＰは通常、Ｗｅｂベースのユーザインターフェイスを実装しているため、無線ＡＰ１６０のＩＰアドレスに、無線ＡＰディスカバリ用パケットの内容として適切なｈｔｔｐメッセージを送信し、その応答パケットを受信することで、無線ＡＰ１６０が存在していることを検出することが可能になる。
また、ＵＰｎＰ  ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅ  Ｖ  １．０（詳細ドキュメント入手先：ｈｔｔｐ：／／ｕｐｎｐ．ｏｒｇ／  ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｗｌａｎａｐ．ａｓｐ）の仕様を用いて、無線ＡＰ１６０を検出することも可能である。
【００８９】
具体的には、推測した無線ＡＰ１６０のアドレスに対して、Ｍ−Ｓｅａｒｃｈ要求をユニキャストで送信し、ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅを発見する（ＵＰｎＰではマルチキャストでＭ−Ｓｅａｒｃｈ要求を送信するのが正式な仕様であるが、機器の大半がユニキャストのＭ−Ｓｅａｒｃｈも受信するようにしている）。
以上が、ディスカバリ用パケット作成部１５２が実行する、無線ＡＰディスカバリ用パケットを送信するシーケンスである。ここで、ディスカバリ用パケット作成部１５２は、無線ＡＰディスカバリ用パケットに対する無線ＡＰからの応答を待つことなく、次の無線ＡＰディスカバリ用パケットを送信することも可能であり、複数のディスカバリ用パケットを同時に送信することにより、高速に無線ＡＰを検出することが可能となる。
なお、ＡＰディスカバリ用パケットを送信するシーケンスでは、通信装置は、複数のルータのＩＰアドレス（たとえば、ルータ１４０Ａ、ルータ１３０Ｂ、ルータ１２０Ｃ）を用いて、並列的に無線ＡＰディスカバリ用パケットを作成し、多段のルータ配下の無線ＡＰを同時に検出する処理を行ってもよい。
【００９０】
（４）各パケットに対する応答パケットの受信処理
次に、ルータディスカバリ用パケット及び無線ＡＰディスカバリ用パケットに対する応答の受信処理について説明する。
図１７は、ルータディスカバリ用パケットと無線ＡＰディスカバリ用パケットに対する応答の受信処理シーケンスを示している。以下、図１７を参照しながらこの受信処理シーケンスについて説明する。
ステップＳ２０７：まず、有線通信部１５５は、ホームネットワーク１００２からルータディスカバリ用パケットまたは無線ＡＰディスカバリ用パケットに対応する応答パケットを受信すると、受信した応答パケットをパケット送受信部１５４に引き渡す。パケット送受信部１５４は、応答パケットの内容を判断し、ルータディスカバリ用パケットまたは無線ＡＰディスカバリ用パケットの応答パケットであると判断すると、応答パケットのパケット情報を受信パケット解析部１５３に引き渡す。
【００９１】
受信パケット解析部１５３は、応答パケットのパケット情報を受信すると、その応答パケットがルータディスカバリ用パケットに対する応答であるか、無線ＡＰディスカバリ用パケットに対する応答であるかを判断する。
次に、通信装置１５０は、応答パケットがルータディスカバリ用パケットに対する応答であるか、無線ＡＰディスカバリ用パケットに対する応答であるかに応じて処理を行う。
（４−１）ルータディスカバリ用パケットに対する応答パケットの受信処理
まず、ルータディスカバリ用パケットに対する応答パケットの受信処理について説明する。通信装置１５０は、受信パケットがルータディスカバリ用パケットに対する応答パケットであると判断した場合、第１実施形態例で説明した図８のＳ１０４〜Ｓ１０７と同様の処理（Ｓ２０８、Ｓ２０９、Ｓ２１１）を実行する。そして、通信装置１５０は、ルータのＬＡＮ側アドレスを検出すると、制御部１５１を通じてディスカバリ用パケット作成部１５２に無線ＡＰディスカバリ用パケットの作成処理を依頼する（Ｓ２１０）。具体的に次に説明する。
【００９２】
ステップＳ２０８：受信パケット解析部１５３は、ＩＣＭＰ時間超過パケットのデータ部に含まれた送信先ポート番号を取り出し、その情報を元にルータディスカバリ用パケットの送信時に指定したＴＴＬを特定する。受信パケット解析部１５３は、さらにＩＣＭＰ時間超過パケットから送信元アドレスを取り出すことで、ルータのＬＡＮ側アドレスを取得する。
ステップＳ２０９：次に、通信装置１５０の制御部１５１は、取得したルータのＬＡＮ側アドレスがローカルアドレスであるか否かを判断する。
ステップＳ２１０：通信装置１５０の制御部１５１は、取得したルータのＬＡＮ側アドレスがローカルアドレスであると判断した場合、ディスカバリ用パケット作成部１５２に無線ＡＰディスカバリ用パケットの作成を指示する。このとき、制御部１５１は、ディスカバリ用パケット作成部１５２にルータのＬＡＮ側のＩＰアドレスを送信する。
【００９３】
ステップＳ２１１：通信装置１５０の制御部１５１は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであると判断した場合、ディスカバリ用パケット作成部１５２にルータディスカバリ用パケット作成の中止を指示し、処理を終了する。ＬＡＮ側アドレスがグローバルアドレスである場合は、ホームネットワーク内のルータの検出が終了している。よって、取得したＬＡＮ側アドレスがグローバルアドレスであるかに応じて制御することで、ホームネットワーク内のルータのアドレスだけを検出することが可能となる。
（４−２）無線ＡＰディスカバリ用パケットに対する応答パケットの受信処理
次に、受信した応答パケットが無線ＡＰディスカバリ用パケットの応答である場合の処理について記述する。
ステップＳ２１２：まず、通信装置１５０の受信パケット解析部１５３は、無線ＡＰディスカバリ用パケットに対する応答パケットの内容を解析する。ここで、受信パケット解析部１５３は、無線ＡＰディスカバリ用パケットに対する応答パケットから無線ＡＰ１６０の機器アドレス及び無線通信を確立するための各種情報を取得する。受信パケット解析部１５３は、制御部１５１を介して無線ＡＰ１６０の機器アドレス及び各種情報を無線ＡＰ設定部１５６及び無線通信設定部１５７に出力する。そして、無線ＡＰ設定部１５６は、応答パケットから得られた情報を用いて、無線ＡＰ１６０の設定を実行する。すなわち、無線ＡＰ設定部１５６は、機器アドレスに基づいて無線ＡＰ１６０にアクセスし、無線ＡＰ１６０に対して無線通信時の暗号キー、通信チャネル、ＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  ＩＤ）、ＭＡＣフィルタリング（自身の無線通信部１５８のＭＡＣに対する許可の追加）等の無線通信用の情報を設定し、無線ＡＰにより無線通信が可能な状態に設定する。
【００９４】
ステップＳ２１３：次に、無線通信設定部１５７が、必要に応じて無線ＡＰ１６０から無線通信用の情報を入手して、自身の無線通信部１５８に対して、無線通信時の暗号キー、通信チャネル、ＳＳＩＤ等の無線通信用の設定を実行する。
ステップＳ２１４：設定が終了すると、制御部１５１がディスカバリ用パケット作成部１５２に無線ＡＰディスカバリ用パケットの作成中止とルータディスカバリ用パケットの作成中止を指示する。
ここで、無線ＡＰを設定する方法及び無線ＡＰから情報を取得する方法であるが、無線ＡＰは通常、有線通信機能も有しており、また、Ｗｅｂベースのユーザインターフェイスが実装されているので、無線ＡＰの有線通信部が持つＩＰアドレスに適切なｈｔｔｐメッセージを送信することで、無線ＡＰの無線通信用情報を設定したり、予め設定されている情報を取得したりすることが可能である。
【００９５】
また、ＵＰｎＰ  ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅ  Ｖ  １．０（詳細ドキュメント入手先：ｈｔｔｐ：／／ｕｐｎｐ．ｏｒｇ／  ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｗｌａｎａｐ．ａｓｐ）の仕様を用いて、無線ＡＰを設定することも可能である。具体的には、無線ＡＰディスカバリ用パケットとして、Ｍ−Ｓｅａｒｃｈ要求をユニキャストで送信する。そして、応答パケットからＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅを発見し、デバイスディスクリプション、サービスディスクリプションを取得する。取得した情報より、アクション要求の発行先を認識し、無線ＡＰに対してアクション要求を送信する。これにより、無線ＡＰの無線通信用情報を設定したり、予め設定されている情報を取得したりすることが可能である。
（作用効果）
上記の通り、通信装置は、ＴＴＬを変数とするルータディスカバリ用パケットを送信することでホームネットワーク内のルータのルータアドレスを取得することができる。さらに、通信装置は、このルータアドレスに基づいて機器ディスカバリ用パケットを送信することで、ルータに接続される通信機器のアドレスを取得することができる。よって、通信装置は、多段のルータで構成されるホームネットワーク内においても、その通信機器にアクセスして通信機器の通信を確立するための各種設定を行うことができる。
【００９６】
なお、この第２実施形態では、無線ＡＰを発見後、無線ＡＰ１６０の設定と無線通信部１５８の設定を行うこととしているが、無線通信部１５８が予め無線ＡＰ１６０に設定されている無線に関する情報（暗号キー、チャネル情報、ＳＳＩＤ等）を読み出し、読み出した情報を元に無線通信部１５８の設定を行う処理だけを行うようにしても良い。また、無線ＡＰ設定部１５６が無線ＡＰの設定だけを行うようにしても良い。
また、この第２実施形態では、ホームネットワーク内で最初に発見された無線ＡＰに関して、設定を完了すると全体の処理が終了する例で説明したが、ホームネットワークに接続された無線ＡＰ１６０をすべて発見し、その後、ユーザに設定を行う無線ＡＰを選択させ、無線ＡＰ１６０に対する設定を実行しても良い。または、選択した無線ＡＰから設定情報を取得し無線通信部１５８の設定を実行しても良い。あるいは、その両者を実行することもできる。
【００９７】
また、第２実施形態では、ホームネットワーク内で最初に発見された無線ＡＰに関して、設定を完了すると全体の処理が終了する例で説明したが、最初の無線ＡＰの設定を完了した後も処理を終了せず、考えうるすべての無線ＡＰのアドレスに無線ＡＰ発見用のパケットを送信し、ホームネットワーク内のすべての無線ＡＰの設定を行うとしても良い。
〈第３実施形態：ＵＰｎＰを用いた場合〉
以下に本発明の第３実施形態について説明する。前述の第１実施形態では、ルータディスカバリ用パケットのＴＴＬを変化させてルータのＬＡＮ側アドレスを取得し、そのアドレスを拠り所にして、ルータに対してＮＡＴ設定及びファイアウォールの設定を行う実施の形態を示している。一方、本３実施形態では、まずＵＰｎＰ  （Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）  ＩＧＤ  （Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）仕様等を使用して、ルータのＬＡＮ側アドレスを取得する。その後、当該ルータのＬＡＮ側アドレスに基づいてＷＡＮ側アドレスの取得を行い、取得したＷＡＮ側アドレスを拠り所として、より上位のルータのアドレスを取得する。第３実施形態例ではこのようにしていきながらルータ設定を行う。ここで、ＵＰｎＰ  ＩＧＤ仕様に関しては、ＵＰｎＰ  ＦＯＲＵＭの公知文献Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｖｅｒｓｉｏｎ  １．０．１  （ドキュメント所在位置：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／  ｒｅｓｏｕｒｃｅｓ／ｄｏｃｕｍｅｎｔｓ．ａｓｐ）及びＩｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ  （ＩＧＤ）  Ｖ１．０（ドキュメント所在位置：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｉｇｄ．ａｓｐ）に詳しく記載されている。  （全体構成）
図１８は、本発明の第３実施形態におけるホームネットワークの構成図である。インターネット２００１とホームネットワーク２００２とが接続されている。インターネット２００１にはルータ２１０Ｄが設けられている。ホームネットワーク２００２は、ルータ２２０Ｃ、ルータ２３０Ｂ及びルータ２４０Ａを含む多段のルータから構成されている。ルータ２２０Ｃはインターネット２００１との境界に配置されており、さらにルータ２３０Ｂ及びルータ２４０Ａが順に配置されている。ルータ２４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置２５０が接続されている。通信装置２５０は、通信Ｉ／Ｆ２５０１を有している。
【００９８】
ルータ２２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ２２０２とＷＡＮ側通信Ｉ／Ｆ２２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ２３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ２３０２とＷＡＮ側通信Ｉ／Ｆ２３０１とを有し、ルータ２４０Ａは、ＬＡＮ側通信Ｉ／Ｆ２４０２とＷＡＮ側通信Ｉ／Ｆ２４０１とを有する。ここでルータ２２０Ｃが、グローバルアドレスを用いて通信を行うインターネット２００１内のルータ２１０Ｄとの間で接続との間で接続を行うことにより、ホームネットワーク２００２とインターネット２００１との接続が確立される。
（通信装置の構成）
図１９は、第３実施形態の通信装置２５０の構成図である。この通信装置２５０は、制御部２５１、ディスカバリ用パケット作成部２５２、受信パケット解析部２５３、パケット送受信部２５４、通信部２５５、ルータ設定部２５６、ＷＡＮ側アドレス取得部２５９を備えている。制御部２５１は各機能部に処理の指示を行う。ディスカバリ用パケット作成部２５２は、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部２５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部２５４は、通信部２５５に対してパケットの送信処理を指示し、通信部２５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部２５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。ルータ設定部２５６、ホームネットワークのルータの設定を実行する。また、ルータ設定部２５６は、取得したアドレスに基づいて当該ルータにアクセスし、ルータに対するＮＡＴ設定等の依頼先を取得する処理依頼先取得部２５６ａを備えている。ＷＡＮ側アドレス取得部２５９は、ＵＰｎＰ  ＩＧＤ仕様を用いてルータのＷＡＮ側アドレスを取得する。
【００９９】
（ルータ設定の動作）
以上のように構成されたホームネットワーク２００２に接続され、ルータ設定を実行する通信装置２５０の動作について以下に説明する。
（１）ルータディスカバリ用パケットに対する応答パケットの受信処理
図２０はルータディスカバリ用パケットに対するルータの応答パケットを受信する処理シーケンスである。以下、図２０を用いて、ルータディスカバリ用パケットに対する応答パケット受信処理シーケンスを説明する。
ステップＳ３０１：まず、通信装置２５０の制御部２５１は、ディスカバリ用パケット作成部２５２に通信装置２５０が接続されているネットワーク内のルータを検出するように指示を行う。指示を受けたディスカバリ用パケット作成部２５２は、ＵＰｎＰのディスカバリメッセージＭ−Ｓｅａｒｃｈをマルチキャスト送信する。
【０１００】
ステップＳ３０２：次に、通信装置２５０の制御部２５１は、通信部２５５及びパケット送受信部２５４が送信したルータディスカバリ用パケットに対するルータからの応答パケットを受信したか否かを判別し、応答パケットを受信するまで待機する。
ステップＳ３０３：通信装置２５０の受信パケット解析部２５３は、ルータからの応答パケットを受信すると、受信パケットを解析して当該ルータのＬＡＮ側アドレスを取得する。ＵＰｎＰを利用する場合、ルータ設定部２５６の処理依頼先取得部２５６ａは、応答パケット中に含まれる情報を利用して、デバイスディスクリプション、サービスディスクリプションを取得し、アクション送信のための情報も合わせて取得する。アクション送信のための情報としては、例えばアクションの送信先などである。
ステップＳ３０４：次に、通信装置２５０の制御部２５１は、今回受信した応答パケットが、ディスカバリ用パケット作成部２５２が作成して送信したルータディスカバリ用パケットに対する応答パケットである場合、ディスカバリ用パケット作成部２５２にルータディスカバリ用パケットの中止を指示する。
【０１０１】
ステップＳ３０５：そして、通信装置２５０のルータ設定部２５６は、応答パケットから取得したルータのＬＡＮ側アドレス又は処理依頼先取得部２５６ａが取得した情報に基づいて当該ルータにアクセスし、第１実施形態と同様にＮＡＴの設定またはファイアウォールの設定、またはその両方を実行する。
ステップＳ３０６：通信装置２５０の制御部２５１は、受信パケット解析部２５３が取得したＬＡＮ側アドレスをＷＡＮ側アドレス取得部２５９に送信し、検出されたルータのＷＡＮ側アドレスを取得するように指示を行う。ＷＡＮ側アドレス取得部２５９は、ルータのＷＡＮ側アドレスを取得する。
ルータのＷＡＮ側アドレスを取得する方法の一例として、ＵＰｎＰ  ＩＧＤ仕様を使用する場合を説明する。ＵＰｎＰ  ＩＧＤ仕様を使用する場合、ステップＳ３０３において得たアクションの送信先に対して、ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションを送信する。これに対するルータからの応答により、ルータのＷＡＮ側アドレスを得ることが可能である。
【０１０２】
なお、通常のルータにはＷｅｂベースのユーザーインターフェイスが実装されており、このユーザインターフェイスを用いてルータのＷＡＮ側アドレスを確認することも可能である。また、適切なｈｔｔｐメッセージをルータに送信して、その応答パケットを受信することでルータのＷＡＮ側アドレスを取得することも可能である。
ステップＳ３０７：次に、通信装置２５０の制御部２５１は、取得したルータのＷＡＮ側アドレスがローカルアドレスであるかを確認する。通信装置２５０制御部２５１は、取得したルータのＷＡＮ側アドレスがグローバルアドレスであると判断した場合、このルータの上位ルータをインターネット上のルータであると特定し、処理を終了する。すなわち、ホームネットワーク２００２内のすべてのルータに対して、ルータ設定が完了したと推測して処理を終了する。
【０１０３】
ステップＳ３０８：通信装置２５０の制御部２５１は、ルータのＷＡＮ側アドレスがローカルアドレスであると判断した場合、発見したルータの上位にホームネットワークに属するルータがまだあると認識する。そして、制御部２５１は、ディスカバリ用パケット作成部２５２に発見したルータのＷＡＮ側アドレスを引き渡し、ルータディスカバリ用パケットの作成を指示する。その後、再度、通信装置２５０の制御部２５１は、送信ルータディスカバリ用パケットに対する応答パケットの受信を待機する。
ここでは、一例としてＵＰｎＰのディスカバリメッセージ  Ｍ−Ｓｅａｒｃｈのマルチキャスト及びユニキャスト送信により、ルータを検出するとしているが、第２実施形態と同様に適切なｈｔｔｐメッセージを送信し、その応答を受信することで、ルータであることを確認することもできる。また、通信装置２５０が接続されたルータのアドレスは、通常、通信装置２５０のデフォルトＧＷアドレスに一致し、ルータが接続している上段ルータのアドレスは、通常、ルータのＷＡＮ側Ｉ／ＦのデフォルトＧＷ（Ｇａｔｅｗａｙ）アドレスと一致する。そのため、検出したルータに対して適切なｈｔｔｐメッセージを送信し、ルータのＷＡＮ側Ｉ．／ＦのデフォルトＧＷアドレスを取得し、取得したデフォルトＧＷアドレスを上位ルータのアドレスとして（ステップＳ３０１〜Ｓ３０４のステップを省略し）、Ｓ３０５から処理を実行しても良い。
【０１０４】
以上がルータディスカバリパケットの応答受信処理シーケンスである。
（２）ルータディスカバリ用パケットの送信処理
次に、図２１を用いて、ディスカバリ用パケット作成部２５２が実行するルータディスカバリ用パケットの送信処理について説明する。
ステップＳ３１０：まず、通信装置２５０は、制御部２５１によりルータディスカバリ用パケットの作成指示を継続しているか否かを判別する。通信装置２５０は、この判別処理を実行することにより、ルータディスカバリ用パケットの作成とルータディスカバリ用パケットに対する応答受信処理が独立に動作している状況でルータを検出し、ルータディスカバリ用パケットを送信する必要がなくなったときに、この処理を停止させることが可能となる。
【０１０５】
ルータディスカバリ用パケットの作成指示がされている場合、通信装置２５０の制御部２５１は、ルータのＬＡＮ側アドレスの作成の拠り所となるアドレス、つまりルータのＷＡＮ側アドレスをディスカバリ用パケット作成部２５２に送信する。ディスカバリ用パケット作成部２５２は、制御部２５１からルータのＷＡＮ側アドレスを取得する。
ステップＳ３１１：次に、通信装置２５０のディスカバリ用パケット作成部２５２は、制御部２５１から受け取ったＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測して、推測したＬＡＮ側アドレスに基づいてルータディスカバリ用パケットを生成する。
ステップＳ３１２：そして、通信装置２５０のディスカバリ用パケット作成部２５２は、生成したルータディスカバリ用パケットをパケット送受信部２５４及び通信部２５５を通じてホームネットワーク内に送信する。
【０１０６】
ＵＰｎＰを用いたルータディスカバリ用パケット送信処理の場合には、推測したアドレスに対して、ユニキャストでＭ−Ｓｅａｒｃｈ要求を送信するように構成できる（ＵＰｎＰ  ＦＯＲＵＭの規格上ではＭ−Ｓｅａｒｃｈはマルチキャストのみであるが、ほとんどのルータがユニキャストのＭ−Ｓｅａｒｃｈも受信可能としている）。
なお、通常のルータには、Ｗｅｂベースのユーザーインターフェイスが実装されているため、第２実施形態等と同様に適切なｈｔｔｐメッセージを推測したアドレスに送信し、その応答パケットを受信することでルータを検出することも可能である。
図２２に、ディスカバリ用パケット作成部２５２が推測する上位ルータのアドレスを示す。ルータのＬＡＮ側アドレスは、工場出荷時の状態で使用すると、クラスＣのローカルアドレスが使用されており、しかもその下位８ビットは１または２５４である。そのため、ディスカバリ用パケット作成部２５２は、上位ルータのアドレスを推測する場合、制御部２５１から得たルータのＷＡＮ側アドレスの下位８ビットを１または２５４に置き換えたアドレスを優先的に扱う。そして、ディスカバリ用パケット作成部２５２は、この置き換えたアドレスに対するルータディスカバリ用パケットを作成して送信する。この処理を行うことで、通信装置２５０は、無作為にアドレスを推測するよりも高速に上位ルータを検出することが可能となる。また、ユーザがルータのＬＡＮ側アドレスを変更する場合でも、６４、１２８等の特定の値に設定する場合が多いため、アドレスの下位８ビットをユーザが設定する頻度が高い特定のアドレスに設定したアドレスに対しても優先的にルータディスカバリパケットを送信する。
【０１０７】
また、ディスカバリ用パケット作成部２５２は、ディスカバリパケットの受信処理とは独立に動作し、送信しているルータディスカバリ用パケットの応答結果の判定を待たずに、次のルータディスカバリ用パケットを送信するようにしても良い。このような送信処理を実行することにより、高速に上位ルータを発見することが可能となる。
（作用効果）
この第３実施形態では、上記の構成により、ルータのＷＡＮ側アドレスに基づいて、そのルータよりインターネット側のルータのＬＡＮ側アドレスを取得することでルータ構成を把握している。よって、ＴＴＬを変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワーク内への送信を行うことなくルータの構成を取得することができる。
【０１０８】
また、ＴＴＬを変化したルータディスカバリ用パケットを転送する処理がないため、ホームネットワーク内に、ルータディスカバリ用パケットを転送する際にＴＴＬを減少する処理を行わないようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータディスカバリ用パケットに対するルータ応答パケットを受信する処理がないため、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
なお、本実施の形態では、ルータディスカバリパケットに対する応答を受信した場合、ルータディスカバリパケットの作成中止の指示を行う例で説明したが、ルータディスカバリパケットの作成中止は考えうるすべてのルータアドレスにルータディスカバリパケットを送信した時に行うようにするようにしてもよい。これにより、あるルータが多段のルータに接続されている場合等（マルチホーミング等）でも、ＮＡＴ設定、ＦＷ（ファイアウォール）設定が正しく実行できる。
【０１０９】
〈第４実施形態：ＵＰｎＰを用いた無線の設定の場合〉
本発明の第４実施形態について、図に基づいて説明する。前述の第２実施形態では、ルータディスカバリ用パケットのＴＴＬを変化させてルータのＬＡＮ側アドレスを取得し、そのアドレスを拠り所にして無線ＡＰを検出し、通信装置３５０が自身の無線通信機能の設定及び無線ＡＰの設定を行うことについてしている。一方、この第４実施形態では、第３実施形態と同様な方法でホームネットワークの各ルータのＷＡＮ側アドレスを取得し、そのアドレスを拠り所にして無線ＡＰを発見し、通信装置３５０が自身の無線通信機能の設定及び無線ＡＰの設定を行うことを説明する。
（全体構成）
図２３は、本発明の実施の形態におけるホームネットワークの構成図である。図２３において、インターネット３００１とホームネットワーク３００２とが接続されている。インターネット３００１にはルータ３１０Ｄが設けられている。ホームネットワーク３００２は、ルータ３２０Ｃ、ルータ３３０Ｂ及びルータ３４０Ａを含む多段のルータから構成されている。ルータ３２０Ｃはインターネットとの境界に配置されており、さらにルータ３３０Ｂ及びルータ３４０Ａが順に配置されている。ここで、ルータ３２０Ｃは無線ＡＰ（アクセスポイント）機能を有した無線ルータである。また、ルータ３３０Ｂには無線ＡＰ３６０が接続されており、ルータ３４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置３５０が接続されている。さらに、通信装置３５０は、有線の通信Ｉ／Ｆ３５０１と無線通信のＩ／Ｆ３５０２を有しており、後述の通り自装置の無線通信機能の設定及び無線ＡＰ３６０の設定を行う。
【０１１０】
ルータ３２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ３２０２とＷＡＮ側通信Ｉ／Ｆ３２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ３３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ３３０２とＷＡＮ側通信Ｉ／Ｆ３３０１とを有し、ルータ３４０Ａは、ＬＡＮ側通信Ｉ／Ｆ３４０２とＷＡＮ側通信Ｉ／Ｆ３４０１とを有する。ここでルータ３２０Ｃが、グローバルアドレスを用いて通信を行うインターネット３００１内のルータ３１０Ｄとの間で接続を行うことにより、ホームネットワーク３００２とインターネット３００１との接続が確立される。さらに、無線ＡＰ３６０は、通信Ｉ／Ｆ３６０１を有している。
（通信装置の構成）
図２４は、第４実施形態の通信装置３５０の構成図である。この通信装置３５０は、制御部３５１、ディスカバリ用パケット作成部３５２、受信パケット解析部３５３、パケット送受信部３５４、通信部３５５、無線ＡＰ設定部３５６、無線通信設定部３５７、無線通信部３５８、ＷＡＮ側アドレス取得部３５９を備えている。
【０１１１】
制御部３５１は、各機能部に処理の指示を行う。ディスカバリ用パケット作成部３５２は、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。また、ディスカバリ用パケット作成部３５２は、ルータに接続される通信機器を発見するためのパケット（以下、機器ディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部３５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部３５４は、通信部３５５に対してパケットの送信処理を指示し、通信部３５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部３５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。無線ＡＰ設定部３５６は、無線ＡＰ３６０に対して暗号キー、ＳＳＩＤ等の識別情報、無線チャネル及び認証情報等を設定する。無線通信設定部３５７は、自装置の無線通信部３５８に暗号キー、ＳＳＩＤ等の識別情報、無線チャネル及び認証情報等を設定する。無線通信部３５８は、無線による通信を可能とする。ＷＡＮ側アドレス取得部３５９はＵＰｎＰ  ＩＧＤ仕様を用いて、ルータのＷＡＮ側アドレスを取得する。
【０１１２】
（ルータ設定及び無線ネットワーク設定の動作）
以上のように構成された通信装置３５０の動作を説明する。図２５はルータ／無線ＡＰディスカバリ用パケットに対する応答受信時の処理シーケンスである。図中において、Ｓ４０１〜Ｓ４０８のルータ検出とルータに対するＮＡＴ及びファイアウォール設定に関する処理は第３実施形態と同様である。
（１）応答パケットの受信処理
ステップＳ４０１：まず、通信装置３５０の制御部３５１は、ディスカバリ用パケット作成部３５２に対して通信装置３５０が接続されているルータ及び無線ＡＰの検出を指示する。指示を受けたディスカバリ用パケット作成部３５２は、ルータ（ＩＧＤ：Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）と無線ＡＰ（ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅ  ）を検出するためのＵＰｎＰのディスカバリメッセージＭ−Ｓｅａｒｃｈをマルチキャスト送信する。
【０１１３】
ここでは、通信装置３５０がＵＰｎＰのディスカバリメッセージ  Ｍ−Ｓｅａｒｃｈをマルチキャスト送信することによりルータを検出することを一例として示している。しかし、第３実施形態等と同様に、まず通信装置３５０がルータ及び無線ＡＰのアドレスを推測する。そして、通信装置３５０が、適切なｈｔｔｐメッセージをユニキャストで送信する。通信装置３５０が、そのｈｔｔｐメッセージに対する応答パケットを受信することで、ルータ及び無線ＡＰを検出することも可能である。
ステップＳ４０２：通信装置３５０の制御部３５１は、ディスカバリ用パケット作成部３５２によって作成されたルータ／無線ＡＰディスカバリ用パケットに対する応答パケットを通信部３５５及びパケット送受信部３５４を通じて受信したか否かを判別する。ここで、応答パケットを受信した場合、制御部３５１は、それがルータディスカバリ用パケットに対する応答パケットであるかまたは無線ＡＰディスカバリ用パケットに対する応答パケットであるかを判別する。
【０１１４】
次に、通信装置３５０は、応答パケットがルータディスカバリ用パケットに対する応答であるか、無線ＡＰディスカバリ用パケットに対する応答であるかに応じて処理を行う。
（１−１）ルータディスカバリ用パケットに対する応答パケットの受信処理
まず、ルータディスカバリ用パケットに対する受信パケットの受信処理について説明する。通信装置３５０は、ルータディスカバリ用パケットに対するルータからの応答パケットを受信した場合、以下に示すような第３実施形態と同様の処理（Ｓ４０３〜Ｓ４０８）を実行する。
ステップＳ４０３：通信装置３５０の受信パケット解析部３５３は、受信パケットを解析し、ルータのアドレス情報を取得する。ＵＰｎＰを利用する場合、応答パケットに記載される情報を利用して、デバイスディスクリプション、サービスディスクリプションを取得し、アクション送信のための情報も合わせて取得する。アクション送信のための情報としては、例えばアクションの送信先アドレスなどがある。
【０１１５】
ステップＳ４０４：次に、通信装置３５０の制御部３５１は、今回受信したパケットがディスカバリ用パケット作成部３５２が作成し送信したルータディスカバリ用パケットに対する応答パケットであると判断した場合、ディスカバリ用パケット作成部３５２にルータディスカバリ用パケットの作成中止を指示する。
ステップＳ４０５：そして、通信装置３５０の無線ＡＰ設定部３５６は、取得したルータのＬＡＮ側アドレスに基づいて当該ルータにアクセスし、第１実施形態と同様にして、ＮＡＴ設定またはファイアウォール設定、またはその両方を実行する。
ステップＳ４０６：通信装置３５０の制御部３５１は、検出されたルータのＷＡＮ側アドレスの取得をＷＡＮ側アドレス取得部３５９に指示する。ＷＡＮ側アドレス取得部３５９は、ルータのＷＡＮ側アドレスの取得処理を実行する。
【０１１６】
ルータのＷＡＮ側アドレスを取得する方法の一例として、ＵＰｎＰ  ＩＧＤ仕様を使用する場合を説明する。ＵＰｎＰ  ＩＧＤ仕様を使用する場合、ステップＳ４０３のステップで得たアクションの送信先に対して、ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションを送信する。これに対するルータからの応答パケットにより、ルータのＷＡＮ側アドレスを得ることが可能である。
なお、通常のルータでは、Ｗｅｂベースのユーザーインターフェイスが実装されており、このユーザーインターフェイスによりルータのＷＡＮ側アドレスを確認することが可能である。そのため、適切なｈｔｔｐメッセージをルータに送信して、その応答パケットを受信することでルータのＷＡＮ側アドレスを取得することも可能である。
ステップＳ４０７：次に、通信装置３５０の制御部３５１は、取得したルータのＷＡＮ側アドレスがローカルアドレスであるかグローバルアドレスであるかを判別する。通信装置３５０の制御部３５１は、取得したルータのＷＡＮ側アドレスがグローバルアドレスであると判断した場合、このルータの上位ルータはインターネット上のルータであると推定し、この処理を終了する。つまり、ホームネットワーク３００２内のすべてのルータに対して、ルータ設定が完了したと推測して処理を終了する。
【０１１７】
ステップＳ４０８：通信装置３５０の制御部３５１は、取得したルータのＷＡＮ側アドレスがローカルアドレスであると判断した場合、検出されたルータの上位にホームネットワークに属するルータがまだあると認識する。そして、制御部３５１は、ディスカバリ用パケット作成部３５２に検出したルータのＷＡＮ側アドレスを引き渡し、ルータディスカバリ用パケットの作成と無線ＡＰディスカバリ用パケットの作成を指示する。そして、通信装置３５０の制御部３５１は、再度、ルータディスカバリ用パケットまたは無線ＡＰディスカバリ用パケットに対する応答パケットの受信を待機する。
（１−２）無線ＡＰディスカバリ用パケットに対する応答パケットの受信処理
次に、無線ＡＰからの応答パケットを受信する場合の処理について説明する。通信装置３５０は、無線ＡＰからの応答パケットを受信すると、第２実施形態のＳ２１２〜Ｓ２１４に相当する処理（Ｓ４０９〜Ｓ４１１）を実行する。
【０１１８】
ステップＳ４０９：まず、通信装置３５０の受信パケット解析部３５３は、受信した応答パケットの内容を解析する。ここで、受信パケット解析部３５３は、無線ＡＰディスカバリ用パケットに対する応答パケットから無線ＡＰ３６０の機器アドレス及び無線通信を確立するための各種情報を取得する。受信パケット解析部３５３は、制御部３５１を介して無線ＡＰ３６０の機器アドレス及び各種情報を無線ＡＰ設定部３５６及び無線通信設定部３５７に出力する。そして、無線ＡＰ設定部３５６は、応答パケットから得られた情報を用いて、無線ＡＰ３６０の設定を実行する。すなわち、無線ＡＰ設定部３５６は、機器アドレスに基づいて無線ＡＰ３６０にアクセスし、無線ＡＰ３６０に対して無線通信時の暗号キー、通信チャネル、ＳＳＩＤ、ＭＡＣフィルタリング（自身の無線通信部３５８のＭＡＣに対する許可の追加）等の無線通信用の情報を設定し、無線ＡＰにより無線通信が可能な状態に設定する。
【０１１９】
ステップＳ４１０：次に、通信装置３５０の無線通信設定部３５７は、必要に応じて無線ＡＰ３６０から無線通信用の情報を取得する。そして、無線通信設定部３５７は、通信装置３５０自身の無線通信部３５８に対して、無線通信時の暗号キー、通信チャネル、ＳＳＩＤ等の無線通信用の設定を実行する。
ステップＳ４１１：設定が終了すると、通信装置３５０の制御部３５１がディスカバリ用パケット作成部３５２に無線ＡＰディスカバリ用パケットの作成中止とルータディスカバリ用パケットの作成中止を指示する。
ここで、無線ＡＰを設定する方法及び無線ＡＰから情報を取得する方法であるが、通常の無線ＡＰは有線通信機能も有しており、また、Ｗｅｂベースのユーザーインターフェイスを実装していることから、無線ＡＰの有線通信部が持つＩＰアドレスに適切なｈｔｔｐメッセージを送信することで、無線ＡＰの無線通信用情報を設定したり、予め設定されている情報を取得することが可能である。
【０１２０】
また、ＵＰｎＰ  ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅ  Ｖ  １．０（詳細ドキュメント入手先：ｈｔｔｐ：／／ｕｐｎｐ．ｏｒｇ／  ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｗｌａｎａｐ．ａｓｐ）の仕様を用いて、無線ＡＰを設定することも可能である。具体的には、通信装置３５０から無線ＡＰディスカバリ用パケットとしてＭ−Ｓｅａｒｃｈ要求をユニキャストで送信し、ＷＬＡＮ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ  Ｄｅｖｉｃｅを検出し、デバイスディスクリプション、サービスディスクリプションを取得する。通信装置３５０は、取得した情報よりアクション要求の発行先を認識することができ、無線ＡＰに対してアクション要求を送信することで、無線ＡＰの無線通信用情報を設定したり、予め設定されている情報を取得したりすることが可能となる。
（２）ルータディスカバリ用パケット及び無線ＡＰディスカバリ用パケットの送信処理  次に、ルータディスカバリ用パケット及び無線ＡＰディスカバリ用パケットの送信処理について説明する。
【０１２１】
（２−１）ルータディスカバリ用パケットの送信処理
まず、ディスカバリ用パケット作成部３５２が実行するルータディスカバリ用パケット及び無線ＡＰディスカバリ用パケットの送信処理について説明する。図２６は、ルータディスカバリ用パケットの送信処理の一例である。図２６に示すルータディスカバリ用パケットの送信処理は、第３実施形態と同様であり、その処理シーケンスは図２１のＳ３１０〜Ｓ３１２の処理と同様である。
ステップＳ４２０：まず、通信装置３５０は、制御部３５１によりルータディスカバリ用パケットの作成指示を継続しているか否かを判別する。通信装置３５０は、この判別処理を実行することにより、ルータディスカバリ用パケットの作成とルータディスカバリ用パケットに対する応答受信処理が独立に動作している状況でルータを検出し、ルータディスカバリ用パケットを送信する必要がなくなったときに、この処理を停止させることが可能となる。
【０１２２】
ルータディスカバリ用パケットの作成指示がされている場合、通信装置３５０の制御部３５１は、ルータのＬＡＮ側アドレスの作成の拠り所となるアドレス、つまりルータのＷＡＮ側アドレスとして、ルータディスカバリ用パケットの送信先アドレスをディスカバリ用パケット作成部３５２に送信する。ディスカバリ用パケット作成部３５２は、制御部３５１からルータのＷＡＮ側アドレスを取得する。
ステップＳ４２１：次に、通信装置３５０のディスカバリ用パケット作成部３５２は、制御部３５１から受け取ったアドレスから上位ルータのＬＡＮ側アドレスを推測して、そのＬＡＮ側アドレスに基づいてルータディスカバリ用パケットを生成する。
ステップＳ４２２：そして、ディスカバリ用パケット作成部３５２は、生成したルータディスカバリ用パケットをパケット送受信部３５４及び通信部３５５を通じて送信する。
【０１２３】
（２−２）無線ＡＰディスカバリ用パケットの送信処理
次に、ディスカバリ用パケット作成部３５２が実行する無線ＡＰディスカバリ用パケットの送信処理について説明する。図２７は、無線ＡＰディスカバリ用パケットの送信処理の一例である。無線ＡＰディスカバリ用パケットの送信処理は、第２実施形態と同様であり、その処理シーケンスは図１５のＳ２０４〜Ｓ２０６の処理と同様である。
ステップＳ４３４：まず、通信装置３５０は、制御部３５１が無線ＡＰディスカバリ用パケットの作成を指示しているか否かを判別する。
通信装置３５０は、無線ＡＰディスカバリ用パケットの作成指示が継続していないと判断した場合、無線ＡＰディスカバリ用パケットの作成を中止し、処理を終了する。
ステップＳ４３５：通信装置３５０のディスカバリ用パケット作成部３５２は、制御部３５１が無線ＡＰディスカバリ用パケットの作成を指示していると判断した場合、制御部３５１より指示されたルータのＩＰアドレスを基に、無線ＡＰのアドレスを推測して、無線ＡＰディスカバリ用パケットを作成する。
【０１２４】
なお、制御部３５１が無線ＡＰディスカバリ用パケットの作成を中止する旨の指示を行うタイミングについては、前述のルータ及び無線ＡＰディスカバリ用パケットの受信処理シーケンスで記載した。
ステップＳ４３６：次に、ディスカバリ用パケット作成部３５２が無線ＡＰ３６０のアドレスを推測し、無線ＡＰディスカバリ用パケットの作成を完了すると、パケット送受信部３５４及び有線通信部３５５は、無線ＡＰディスカバリパケットをホームネットワーク３００２に送信する。
上記ステップＳ４３５における、ディスカバリ用パケット作成部３５２による無線ＡＰディスカバリ用パケットの送信先アドレスの推測方法は、例えばアドレスの種別（クラスＡ、クラスＢ、クラスＣ）をまず判別した上で、同一ネットワーク上で変化する可能性があるアドレス内のビットに着目し、その値を順に変化させる方法を用いることができる。
【０１２５】
（作用効果）
この第４実施形態の通信装置は、ルータのＬＡＮ側アドレスを取得した後、ルータのＷＡＮ側アドレスの取得を行う。そして、通信装置は、取得したＷＡＮ側アドレスを拠り所として、無線ＡＰのアドレスとより上位のルータのアドレスを取得していく。さらに、通信装置は、取得した無線ＡＰのアドレス及びルータのアドレスに基づいて、無線に関するネットワーク設定及びルータ設定を含めたネットワーク設定を行う。よって、ＴＴＬを変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワーク内への送信を行うことなくルータの構成を取得することができる。
また、ＴＴＬを変化したルータディスカバリ用パケットを転送する処理がないため、ホームネットワーク内に、ルータディスカバリ用パケットを転送する際にＴＴＬを減少する処理を行わないようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータディスカバリ用パケットに対するルータ応答パケットを受信する処理がないため、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
【０１２６】
また、この第４実施形態では、ホームネットワーク内で最初に検出された無線ＡＰ３６０に関して、設定を完了すると全体の処理が終了する例で説明している。しかし、ホームネットワークに接続された無線ＡＰをすべて検出し、その後、設定を行う無線ＡＰをユーザに選択させ、無線ＡＰ３６０への設定を実行することも可能である。また、選択された無線ＡＰ３６０から情報を取得し、取得した情報に基づいて通信装置３５０の無線通信部３５８の設定を実行することも可能である。さらに、無線ＡＰ３６０への設定及び通信装置３５０の無線通信部３５８の設定の両者を実行することも可能である。
なお、この第４実施形態では、無線ＡＰ３６０を検出した後、無線ＡＰ３６０の設定と通信装置３５０の無線通信部３５８の設定を行うことについて開示している。しかし、まず無線通信設定部３５７が、予め無線ＡＰ３６０に設定されている無線に関する情報（暗号キー、チャネル情報、ＳＳＩＤ等）を読み出す。そして、無線通信設定部３５７が読み出した情報を元に無線通信部３５８を設定する処理だけを行うようにしても良い。また、無線ＡＰ設定部３５６が無線ＡＰの設定だけを行うようにしても良い。
【０１２７】
また、この第４実施形態では、ホームネットワーク内で無線ＡＰ３６０を検出するたびに各無線ＡＰに対する無線設定を行う例で説明している。しかし、ホームネットワークに接続された無線ＡＰ３６０をすべて検出し、その後、設定を行う無線ＡＰをユーザに選択させ、選択された無線ＡＰ３６０への設定を実行することも可能である。または、選択した無線ＡＰから情報を取得し通信装置３５０の無線通信部３５８の設定を実行することも可能である。さらに、無線ＡＰ３６０への設定及び通信装置３５０の無線通信部３５８の設定の両者を実行しても良い。
また、第４実施形態では、ホームネットワーク内で最初に発見された無線ＡＰに関して設定を完了すると、無線ＡＰのディスカバリ処理を終了する例で説明している。しかし、最初の無線ＡＰの設定を完了した後も処理を終了せず、考えうるすべての無線ＡＰのアドレスに無線ＡＰ発見用のパケットを送信し、ホームネットワーク内の全無線ＡＰの設定を行うとしても良い。
【０１２８】
また、第４実施形態では、ルータディスカバリパケットに対する応答を受信した場合、ルータディスカバリパケットの作成中止の指示を行う例で説明している。しかし、ルータディスカバリパケットの作成中止は、考えうるすべてのルータアドレスにルータディスカバリパケットを送信した時に行うようにしても良い。このようにすることで、あるルータが多段のルータに接続されている場合等（マルチホーミング等）でも、ＮＡＴ設定、ＦＷ設定が正しく実行できる。
〈第５実施形態：ＩＣＭＰとＵＰｎＰを用いたルータ検出〉
以下に本発明の第５実施形態について、図に基づいて説明する。図２８は、第５実施形態の概要を説明するためのホームネットワークの構成を示している。
第１実施形態では、ルータディスカバリ用パケットのＴＴＬを変化させてルータのＬＡＮ側アドレスを取得し、ルータに対してルータ設定を行う方法について説明している。このような方式では、ＴＴＬを変化させたルータディスカバリ用パケットの送信を応答待ちすることなく実行している。よって、非常に効率よく通信装置５０が接続されたホームネットワーク上のルータのアドレスを知ることができ、ルータ設定を実行することが可能となる。
【０１２９】
しかし、実際の市販ルータではＩＣＭＰ時間超過パケットをフィルタリングするものがある。そのため、このようなルータを含むホームネットワークに前述の方式を適用した場合、上位ルータのＩＣＭＰ時間超過パケットが途中のルータで廃棄される場合がある。よって、ホームネットワーク内のルータを正確に検出できない場合が発生する。そして結果として、完全なルータ設定ができないという問題が生じる。
例えば、図２８は、ルータ４３０ＢがＩＣＭＰ時間超過パケットを廃棄するタイプのルータである例を示している。この場合、ルータ４２０Ｃ、ルータ４１０Ｄが、ＴＴＬ＝３及びＴＴＬ＝４に設定されたルータディスカバリ用パケットを受信し、それに対応するＩＣＭＰ時間超過パケットを通信装置４５０に送信したとする。しかし、このルータ４２０Ｃ、ルータ４１０ＤからのＩＣＭＰ時間超過パケットは、ルータ４３０Ｂで廃棄されてしまう。よって、通信装置４５０はホームネットワーク内のルータであるルータ４２０Ｃを検出することができない。
【０１３０】
一方、第３実施形態では、ルータのＷＡＮ側アドレスを取得し、そのアドレスを拠り所として、より上位のルータを検出しルータ設定を行う方法を説明した。この方式では、ＩＣＭＰを使用しないため、ＩＣＭＰ時間超過パケットをフィルタリングするルータを含むホームネットワークに適用が可能である。しかし、ルータディスカバリ用パケットの送信時に、ルータのアドレスを推測してパケットを送信する必要があり、処理効率面では第１実施形態の方法より劣る面がある。
第５実施形態では、ＩＣＭＰ時間超過パケットをフィルタリングするルータを含むホームネットワークにも適用できると共に、処理効率を高めたホームルータ設定方法を説明する。この第５実施形態では、これを実現するために、第１実施形態で説明したＴＴＬを変化させたルータディスカバリ用パケットを用いる手法と、第３実施形態で説明したルータのＷＡＮ側アドレスを取得し、そのアドレスを拠り所として、より上位のルータを発見する手法の両方を使用する。
【０１３１】
（全体構成）
本発明の第５実施形態におけるホームネットワークの構成について、再び図２８を用いて説明する。
図２８において、インターネット４００１とホームネットワーク４００２とが接続されている。インターネット４００１にはルータ４１０Ｄが設けられている。ホームネットワーク４００２は、ルータ４２０Ｃ、ルータ４３０Ｂ及びルータ４４０Ａを含む多段のルータから構成されている。ルータ４２０Ｃはインターネットとの境界に配置されており、さらにルータ４３０Ｂ及びルータ４４０Ａが順に配置されている。ルータ４４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置４５０が接続されている。通信装置４５０は、通信Ｉ／Ｆ４５０１を有している。
【０１３２】
ルータ４２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ４２０２とＷＡＮ側通信Ｉ／Ｆ４２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ４３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ４３０２とＷＡＮ側通信Ｉ／Ｆ４３０１とを有し、ルータ４４０Ａは、ＬＡＮ側通信Ｉ／Ｆ４４０２とＷＡＮ側通信Ｉ／Ｆ４４０１とを有する。ここでルータ４２０Ｃが、グローバルアドレスを用いて通信を行うインターネット４００１内のルータ４１０Ｄとの間で接続を行うことにより、ホームネットワーク４００２とインターネット４００１との接続が確立される。
（通信装置の構成）
図２９は、第５実施形態における通信装置４５０の構成を示している。この通信装置４５０は、制御部４５１、ディスカバリ用パケット作成部４５２、受信パケット解析部４５３、パケット送受信部４５４、通信部４５５、ルータ設定部４５６、ＷＡＮ側アドレス取得部４５９、タイムアウト検出部４６０を備えている。制御部４５１は各機能部に処理の指示を行う。ディスカバリ用パケット作成部４５２、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部４５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部４５４は、通信部４５５に対してパケットの送信処理を指示し、通信部４５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部４５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。ルータ設定部４５６は、ホームネットワークのルータの設定を実行する。また、ルータ設定部４５６は、取得したアドレスに基づいて当該ルータにアクセスし、ルータに対するＮＡＴ設定等の依頼先を取得する処理依頼先取得部４５６ａを備えている。ＷＡＮ側アドレス取得部４５９は、ＵＰｎＰ  ＩＧＤ仕様を用いて、ルータのＷＡＮ側アドレスを取得する。タイムアウト検出部４６０は、ＴＴＬの値を変化させたルータディスカバリ用パケットの応答パケットの受信に対するタイムアウトを検出する。
【０１３３】
（ルータ設定の動作）
以上のように構成されたホームネットワーク４００２に接続され、ルータ設定を実行する通信装置４５０の動作について以下に説明する。
（１）ルータディスカバリ用パケットの送信処理
まず、通常のルータディスカバリ用パケットの送信処理について説明する。図３０は、ディスカバリ用パケット作成部４５２が実行するルータディスカバリ用パケットの送信処理シーケンスを示している。
通信装置４５０の制御部４５１がルータ設定を実行する場合、まず、ＴＴＬを変化させたルータディスカバリ用パケットの送信処理の開始を指示する。
ステップＳ５０１：通信装置４５０のディスカバリ用パケット作成部４５２は、制御部４５１からパケット作成の指示が継続しているか否かを判別する。
【０１３４】
ディスカバリ用パケット作成部４５２は、制御部４５１においてパケット作成指示がされていないと判断した場合、このシーケンスを終了する。ここで、制御部４５１がパケット作成指示後に停止指示を行うのは、次に説明するルータからのパケット受信処理で特定の条件を満たしたときである。
ステップＳ５０２：ディスカバリ用パケット作成部４５２は、パケット作成指示が継続していると判断した場合、ディスカバリ用パケット作成部４５２によりＴＴＬを１から順にインクリメントしたルータディスカバリ用パケットを作成する。
ステップＳ５０３：タイムアウト検出部４６０は、ルータディスカバリ用パケットを送信する際に、そのルータディスカバリ用パケットに対する応答パケットの受信のタイムアウト時刻を登録する。例えば、タイムアウト検出部４６０は、そのルータディスカバリ用パケットのＴＴＬと対応付けてタイムアウト時刻を登録する。そして、タイムアウト検出部４６０は、ルータディスカバリ用パケットの送信時刻からタイムアウト時刻をカウントし、タイムアウトした場合には制御部４５１に通知する。このようにタイムアウト検出部４６０がタイムアウト時刻を管理することで、応答パケットが受信できたか否かを判定することができる。
【０１３５】
ステップＳ５０４：ディスカバリ用パケット作成部４５２は、ルータディスカバリ用パケットを作成すると、パケット送受信部４５４にパケット送信を指示する。パケット送受信部４５４は、通信部４５５を通じて、ルータディスカバリ用パケットを送信する。
ここで、ディスカバリ用パケット作成部４５２は、送信したルータディスカバリ用パケットに対するルータからの応答パケットを待つことなく、異なるルータディスカバリ用パケットを送信するように構成できる。このように、複数のルータディスカバリ用パケットを同時に送信することにより、高速にルータをディスカバリすることが可能となる。例えば、応答パケット内にルータディスカバリ用パケット内のＴＴＬに対応する情報が含まれている場合には、通信装置は、その情報に基づいてどのルータからの応答パケットであるかを把握することができる。そのため、通信装置は、ＴＴＬを変化させたルータディスカバリ用パケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。また、ＵＰｎＰ  ＩＧＤ仕様を利用する場合における各ルータへのルータ設定では、通信装置で特定のアプリケーションが起動した段階でルータ設定を行う等の動的な設定に対応させる必要がある。前述のように、通信装置がホームネットワーク内のルータのアドレスやルータ構成を高速に取得することで、各ルータへの動的なルータ設定に対応することができる。
【０１３６】
なお、ルータディスカバリ用パケットは、インターネット上の特定のグローバルアドレス宛てに向けて送信するように構成できる。
（２）タイムアウトを検出した場合の処理
次に、図３１を用いて、タイムアウト検出部４６０がルータディスカバリ用パケットに対する応答パケット受信のタイムアウトを検出した場合の処理を説明する。
ステップＳ５０５：まず、通信装置４５０のタイムアウト検出部４６０は、タイムアウトを検出すると制御部４５１にその旨を通知する。タイムアウトの通知を受けた制御部４５１は、既にタイムアウト処理時のルータディスカバリ用パケット送信処理が起動中であるか否かを判別する。通信装置４５０の制御部４５１は、タイムアウト処理時のルータディスカバリ用パケット送信処理が起動中であると判断した場合、この処理を終了する。
【０１３７】
次に、通信装置４５０は、タイムアウト処理時のルータディスカバリ用パケット送信処理が起動中でないと判断した場合、以下の処理（Ｓ５０６〜Ｓ５０８）を実行する。
ステップＳ５０６：通信装置４５０の受信パケット解析部４５３は、通信部４５５及びパケット送受信部４５４を介して、応答パケットを受信する。そして、受信パケット解析部４５３は、現在受信している応答パケットのうち、ＴＴＬの値が最大のものを用いて取得したルータのＬＡＮ側アドレスを取り出す。
ここで、ＴＴＬを変化させるルータディスカバリ用パケットの送信は、ＴＴＬ＝１から順にインクリメントしながら送信するため、タイムアウト発生はＴＴＬが小さいものから順に発生する。例えば、図２８の例では、ルータ４３０ＢがＩＣＭＰをフィルタリングするルータである。よって、ルータ４３０Ｂの上位ルータであるルータ４２０Ｃ、ルータ４１０ＤからのＴＴＬ＝３、ＴＴＬ＝４に設定したルータディスカバリ用パケットに対する応答パケットは、いずれもタイムアウトとなる。ここで、最初にタイムアウトするのはＴＴＬ＝３に設定されたルータディスカバリ用パケットに対する応答である。よって、最初にタイムアウトした応答パケットのＴＴＬ値より１小さいＴＴＬ値に対応して検出されたルータが、ＩＣＭＰをフィルタリングしているルータと考えることができる。この場合、最初にタイムアウトした応答パケットのＴＴＬ＝３より１小さいＴＴＬ＝２に対応して検出されたルータ３０Ｂが、フィルタリングを行っていることが分かる。
【０１３８】
ただし、タイムアウトしたパケットのＴＴＬ値を取得することが困難な場合には、その時点で受信している応答パケットのうち最大のＴＴＬ値を有するパケットを用いて、検出されたルータをＩＣＭＰをフィルタリングしているルータとみなすことも可能である。
以上より、受信パケット解析部４５３は、フィルタリングを行っているルータ３０Ｂからの応答パケットに基づいて、ルータ４３０ＢのＬＡＮ側アドレスを取得する。
ステップＳ５０７：次に、制御部４５１は、受信パケット解析部４５３が取得したルータのＬＡＮ側アドレスをＷＡＮ側アドレス取得部４５９に送信し、ルータのＷＡＮ側アドレスを取得するように指示する。ＷＡＮ側アドレス取得部４５９は、第３実施形態と同様にＵＰｎＰ  ＩＧＤ仕様等を用いて、ＵＰｎＰアクションの依頼先情報を取得する。そして、ルータのアクション依頼先に対してＵＰｎＰアクションを送信し、その応答パケットを受信しルータのＷＡＮ側アドレスを取得する。そして、ＷＡＮ側アドレス取得部４５９は、取得したＷＡＮ側アドレスを制御部４５１に引き渡す。
【０１３９】
ステップＳ５０８：そして、制御部４５１は、ディスカバリ用パケット作成部４５２に対し、ＴＴＬを変化させたルータディスカバリ用パケットの送信処理（図３０の処理）の停止を指示する。さらに、制御部４５１は、ディスカバリ用パケット作成部４５２に、取得したＷＡＮ側アドレスを引き渡し、このＷＡＮ側アドレスを拠り所として、上位ルータのアドレスを推測してルータディスカバリ用パケットを送信する処理（第３実施形態の図２１と同様の処理）を開始するように指示する。
タイムアウト検出部４６０がルータディスカバリ用パケットの応答受信のタイムアウトを検出した場合の処理は以上の通りである。
（３）上位ルータのアドレスを推測したルータディスカバリ用パケットの送信処理
次に、図３２を用いて、ディスカバリ用パケット作成部４５２が実行する上位ルータのアドレスを推測したルータディスカバリ用パケットの送信処理について説明する。
【０１４０】
ステップＳ５３０：ディスカバリ用パケット作成部４５２は、制御部４５１からルータディスカバリ用パケットの作成を指示され、ＷＡＮ側アドレスを取得している場合は、ルータディスカバリ用パケットの作成を続行する。
ステップＳ５３１：次に、通信装置４５０のディスカバリ用パケット作成部４５２は、制御部４５１から受け取ったＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測する。そして、そのＬＡＮ側アドレスに基づいてルータディスカバリ用パケットを生成する。
例えば、ＬＡＮ側アドレスは、工場出荷時の状態で使用すると、クラスＣのローカルアドレスが使用されており、しかもその下位８ビットは１または２５４である。そのため、ディスカバリ用パケット作成部４５２は、上位ルータのアドレスを推測する場合、制御部４５１から得たルータのＷＡＮ側アドレスの下位８ビットを１または２５４に置き換えたアドレスを優先的に用いてＬＡＮ側アドレスを推測する。この処理を行うことで、通信装置４５０は、無作為にアドレスを推測するよりも高速に上位ルータを検出することが可能となる。
【０１４１】
ステップＳ５３２：そして、ディスカバリ用パケット作成部４５２は、生成したルータディスカバリ用パケットをパケット送受信部４５４及び通信部４５５を通じて送信する。
（４）応答パケットの受信処理
次に、図３３を用いてルータディスカバリ用パケットに対する応答パケットの受信処理について説明する。
ステップＳ５１０：制御部４５１は、ルータディスカバリ用パケットの送信をディスカバリ用パケット作成部４５２に指示した後、その応答パケットの受信を受信パケット解析部４５３に指示する。そして、通信装置４５０の受信パケット解析部４５３により応答パケットの受信を待機する。
ステップＳ５１１：制御部４５１は、応答パケットを受信した場合、その応答パケットがＴＴＬを変化させたルータディスカバリ用パケットに対する応答であるか、または、ＷＡＮ側アドレスを拠り所として、上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答であるかを判断する。
【０１４２】
（４−１）ルータディスカバリ用パケットに対する応答パケットの受信処理
通信装置４５０は、受信した応答パケットがＴＴＬを変化させたルータディスカバリ用パケットに対するものであると判断した場合、以下の処理（Ｓ５１８〜Ｓ５２１）を実行する。
ステップＳ５１８：この図３３におけるＳ５１８〜Ｓ５２１の処理は、第１実施形態の図４の受信処理（Ｓ１０４〜Ｓ１０７）と同様の処理である。すなわち、ルータディスカバリ用パケットに対応する応答であるＩＣＭＰ時間超過パケットを通信部４５５で受信すると、パケット送受信部４５４により受信パケット解析部４５３に受信したパケットを引き渡す。
受信パケット解析部４５３は、ＩＣＭＰ時間超過パケットのデータ部に含まれた送信先ポート番号を取り出し、その情報を元にルータディスカバリ用パケット送信時に指定したＴＴＬを特定する。同時に、受信パケット解析部４５３は、送信元アドレスを取り出すことで、ルータのＬＡＮ側アドレスを取得する。
【０１４３】
ステップＳ５１９：次に、通信装置４５０の制御部４５１は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判断する。
ステップＳ５２０：通信装置４５０は、取得したルータのＬＡＮ側アドレスがローカルアドレスであると判断した場合、制御部４５１を通じてルータ設定部４５６にルータ設定を指示する。指示を受けたルータ設定部４５６は、ＮＡＴ設定とファイアウォール設定を実行する。
ステップＳ５２１：通信装置４５０は、取得したルータのＬＡＮ側アドエスがグローバルアドレスであると判断した場合、制御部４５１を通じてディスカバリ用パケット作成部４５２にディスカバリ用パケット作成中止の指示を行い、この処理を終了する。このように制御することで、ホームネットワーク内のルータに対してのみＮＡＴ設定やファイアウォール設定を行うことが可能となる。
【０１４４】
以上が受信した応答がＴＴＬを変化させたルータディスカバリ用パケットに対するものであった場合の処理である。
（４−２）上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答パケットの受信処理
次にＷＡＮ側アドレスを拠り所として、上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答を受信した場合の処理（Ｓ５１２〜Ｓ５１７）について説明する。このＳ５１２〜Ｓ５１７の処理は、第３実施形態の図２０のＳ３０３〜Ｓ３０８の処理と同様の処理である。
ステップＳ５１２：通信装置４５０の受信パケット解析部４５３は、応答パケットを受信すると受信パケットを解析し、ルータのアドレスを取得する。ＵＰｎＰを利用する場合、応答に記載される情報を利用して、デバイスディスクリプション、サービスディスクリプションを取得し、アクション送信のための情報も合わせて取得する。
【０１４５】
ステップＳ５１３：次に、通信装置４５０の制御部４５１は、今回受信した応答パケットが、ディスカバリ用パケット作成部４５２が作成し送信したルータディスカバリ用パケットに対する応答であると判断した場合、ディスカバリ用パケット作成部４５２に対してルータディスカバリ用パケットの送信処理の中止を指示する。
ステップＳ５１４：通信装置４５０のルータ設定部４５６は、取得したルータのＬＡＮ側アドレスを用いて当該ルータにアクセスする。そして、ルータ設定部４５６は、第１実施形態と同様にＮＡＴ設定またはファイアウォールの設定、またはその両方を実行する。
ステップＳ５１５：さらに、制御部４５１は、受信パケット解析部４５３が取得したＬＡＮ側アドレスをＷＡＮ側アドレス取得部４５９に送信し、検出したルータのＷＡＮ側アドレスの取得を指示する。ＷＡＮ側アドレス取得部４５９は、例えばＵＰｎＰ  ＩＧＤ仕様を利用してルータのＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。
【０１４６】
ステップＳ５１６：次に、通信装置４５０の制御部４５１は、取得したルータのＷＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判別する。通信装置４５０の制御部４５１は、取得したルータのＷＡＮ側アドレスがグローバルアドレスであると判断した場合、このルータの上位ルータはインターネット上のルータであると推定できるのでこの処理を終了する。すなわち、ホームネットワークのすべてのルータに対して、ルータ設定が完了したと推定できるので処理を終了する。
ステップＳ５１７：通信装置４５０の制御部４５１は、ルータのＷＡＮ側アドレスがローカルアドレスであると判断した場合、検出したルータの上位にホームネットワークに属するルータがまだあると推定する。そのため、制御部４５１は、ディスカバリ用パケット作成部４５２に対して検出したルータのＷＡＮ側アドレスを引き渡し、ルータディスカバリ用パケットの作成を指示する。
【０１４７】
そして、通信装置４５０の制御部４５１は、再度、ステップＳ５１０に戻り、ルータディスカバリ用パケットに対する応答パケットを受信するのを待機する。
（処理の例）
図３４は、第５実施形態に記載した方式でホームネットワークを設定する場合の動作の一例である。
通信装置４５０のディスカバリ用パケット作成部４５２は、ＴＴＬを１から順に設定したルータディスカバリ用パケットを送信する。通信装置４５０の受信パケット解析部４５３は、送信したルータディスカバリ用パケットの応答として、ルータ４４０Ａ、ルータ４３０ＢからＩＣＭＰ時間超過パケットを受信する。そして、受信パケット解析部４５３は、ＴＴＬ＝１に設定されたルータディスカバリ用パケットの応答パケットからルータ４４０ＡのＬＡＮ側アドレスを取得し、ＴＴＬ＝２に設定されたルータディスカバリ用パケットの応答パケットからルータ４３０ＢのＬＡＮ側アドレスを取得する。ルータ設定部４５６は、取得したＬＡＮ側アドレスに基づいてルータ４４０Ａ及びルータ４３０ＢにアクセスしてＮＡＴ設定及びファイアウォール設定を実行する。
【０１４８】
しかし、ルータ４３０ＢにおいてＩＣＭＰがフィルタリングされるため、通信装置４５０の通信部４５５は、ルータ４３０Ｂより上位に位置するルータ４２０Ｃ、ルータ４１０Ｄからの応答パケットを受信することができない。そのため、タイムアウト検出部４６０は、ＴＴＬ＝３のルータディスカバリ用パケット（ルータ４２０Ｃを検出するためのルータディスカバリ用パケット）のタイムアウトを検出する。これにともなって、通信装置４５０のディスカバリ用パケット作成部４５２は、ＴＴＬを変化させたルータディスカバリ用パケットの送信処理を中止する。そして、ディスカバリ用パケット作成部４５２は、ルータのＷＡＮ側アドレスを拠り所として上位ルータのアドレスを推測しルータディスカバリ用パケットを送信する処理を起動する。このとき、ディスカバリ用パケット作成部４５２は、ＴＴＬ＝２（ルータ４３０Ｂに対応）で得られたルータのＷＡＮ側アドレスから処理を開始することができる。
【０１４９】
次に通信装置４５０の受信パケット解析部４５３は、送信したルータディスカバリ用パケットに対応する応答パケットからルータ４２０ＣのＬＡＮ側アドレスを取得する。そして、ルータ設定部４５６は、取得したＬＡＮ側アドレスに基づいてルータ４２０ＣにアクセスしてＮＡＴ設定及びファイアウォール設定を実行する。さらに通信装置４５０のＷＡＮ側アドレス取得部４５９は、ルータ４２０ＣのＷＡＮ側アドレスを取得する。そして、取得したＷＡＮ側アドレスがグローバルアドレスであることを検出した場合に処理を完了する。
（作用効果）
第５実施形態例の通信装置は、応答パケットを受信している場合は、ＴＴＬを変化して設定したルータディスカバリパケットを送信する。これにより、通信装置は、ルータからの応答パケットに基づいてルータアドレスを取得し、高速にルータ設定を行うことができる。また、通信装置は、応答パケットを受信できなくなった場合は、上記のように受信できた応答パケットから取得したＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。そして、通信装置は、取得したＷＡＮ側アドレスに基づいてよりＷＡＮ側のルータのＬＡＮ側アドレスを取得していくことを繰り返す。これにより、応答パケットをフィルタリングしたりするルータを含むホームネットワークでも、ネットワーク内のルータ構成を把握し、ルータ設定を行うことができる。
【０１５０】
なお、この第５実施形態では、ルータのＮＡＴ設定、ファイアウォール設定について記述したが、第２実施形態及び第４実施形態に本手法を適用することで、ＩＣＭＰをフィルタリングするようなホームネットワークに存在するような環境でも、無線ＡＰ６０の設定、または通信装置４５０の無線通信部５８の設定、またはその両方を高速にしかも確実に実行することが可能となる。
〈第６実施形態：ＩＣＭＰとＵＰｎＰを用いたルータ検出〉
前述の第５実施形態では、ホームネットワークにＩＣＭＰをフィルタリングするルータが含まれている場合にも適用できる効率的なルータ設定方法を記述している。これに対して、第６実施形態では、ＴＴＬを処理しないルータがホームネットワークに含まれている場合でも適用可能な効率的なルータ設定方法について記載する。
【０１５１】
以下に本発明の第６実施形態について、図に基づいて説明する。図３５は、本発明の第６実施形態におけるホームネットワークの構成の一例である。なお、以下では、図３５のルータ５３０ＢがＴＴＬを処理しないルータと仮定する。
図３５において、第１実施形態等で述べたように、通信装置５５０からＴＴＬを変化させたルータディスカバリ用パケットをＴＴＬ＝１から順に設定して送信する。この時、ＴＴＬ＝２としたルータディスカバリ用パケットは本来、ルータ５３０ＢでＴＴＬ＝０となり、ルータ５３０ＢからＩＣＭＰ時間超過パケットが送信されるべきである。しかし、ルータ５３０ＢがＴＴＬ処理を行わないため、ＴＴＬ＝２に設定されたルータディスカバリ用パケットは、ルータ５４０ＡでディクリメントされてＴＴＬ＝１となった状態でルータ５２０Ｃに送信される。そして、ルータ５２０Ｃにおいて、このルータディスカバリ用パケットのＴＴＬ＝０となるため、ルータ５２０ＣからＴＴＬ＝２と指定したルータディスカバリ用パケットに対する応答がＩＣＭＰ時間超過パケットとして送信されることとなる。
【０１５２】
この結果、このようなホームネットワークに第１実施形態のルータ設定を適用すると、通信装置５５０において、ルータ５４０Ａとルータ５２０Ｃの間にルータ５３０Ｂが存在していることを認識することができず、ルータ設定を終了してしまう。
また、第３実施形態では、ルータのＷＡＮ側アドレスを取得し、そのアドレスを拠り所にして、より上位のルータを発見し、ルータ設定を行う方法を説明した。この方式では、ＴＴＬを変化させるルータディスカバリ用パケットを使用しないため、ＴＴＬ処理を実行しないルータが含まれたホームネットワークに適用が可能である。しかしながら、ルータディスカバリ用パケットを送信する際に、ルータのアドレスを推測してパケット送信する必要があるなど、処理効率面では第１実施形態の方法より劣る面がある。
第６実施形態では、ＴＴＬ処理を実行しないルータが含まれたホームネットワークにも適用できると共に、処理効率を高めたホームルータ設定方法を説明する。
【０１５３】
この第６実施形態ではこれを実現するために、第１実施形態で説明したＴＴＬを変化させたルータディスカバリ用パケットを用いる手法と、第３実施形態で説明したルータのＷＡＮ側アドレスを取得し、そのアドレスを拠り所として、より上位のルータを発見する手法の両方を使用する。
（全体構成）
本発明の第６実施形態におけるホームネットワークの構成について、再び図３５を用いて説明する。
図３５において、インターネット５００１とホームネットワーク５００２とが接続されている。インターネット５００１にはルータ５１０Ｄが設けられている。ホームネットワーク５００２は、ルータ５２０Ｃ、ルータ５３０Ｂ及びルータ５４０Ａを含む多段のルータから構成されている。ルータ５２０Ｃはインターネットとの境界に配置されており、さらにルータ５３０Ｂ及びルータ５４０Ａが順に配置されている。ルータ５４０Ａには、ユーザが操作可能なＰＣなどで構成される通信装置５５０が接続されている。通信装置５５０は、通信Ｉ／Ｆ５５０１を有している。
【０１５４】
ルータ５２０Ｃは、ＬＡＮ側通信Ｉ／Ｆ５２０２とＷＡＮ側通信Ｉ／Ｆ５２０１とを有しており、ＬＡＮ側通信Ｉ／Ｆにはローカルアドレスが割り当てられ、ＷＡＮ側通信Ｉ／Ｆにはグローバルアドレスが割り当てられている。ルータ５３０Ｂは、ＬＡＮ側通信Ｉ／Ｆ５３０２とＷＡＮ側通信Ｉ／Ｆ５３０１とを有し、ルータ５４０Ａは、ＬＡＮ側通信Ｉ／Ｆ５４０２とＷＡＮ側通信Ｉ／Ｆ５４０１とを有する。ここでルータ５２０Ｃが、グローバルアドレスを用いて通信を行うインターネット５００１内のルータ５１０Ｄとの間で接続を行うことにより、ホームネットワーク５００２とインターネット５００１との接続が確立される。
（通信装置の構成）
図３６は、第６実施形態における通信装置５５０の構成を示している。この通信装置５５０は、制御部５５１、ディスカバリ用パケット作成部５５２、受信パケット解析部５５３、パケット送受信部５５４、通信部５５５、ルータ設定部５５６、ＷＡＮ側アドレス取得部５５９、ルータアドレス検証部５７０を備えている。制御部５５１は各機能部に処理の指示を行う。ディスカバリ用パケット作成部５５２は、ルータを発見するためのパケット（以下、ルータディスカバリ用パケットという）を作成して送信指示を行う。受信パケット解析部５５３は、ルータディスカバリ用パケットに対してルータから送信されたパケットを解析し、各ルータのアドレスを取得してルータ構成を把握する。パケット送受信部５５４は、通信部５５５に対してパケットの送信処理を指示し、通信部５５５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡す。通信部５５５は、通信Ｉ／Ｆ機能を内蔵しネットワークへのパケット送受信を可能とする。ルータ設定部５５６は、ホームネットワークのルータの設定を実行する。また、ルータ設定部５５６は、取得したアドレスに基づいて当該ルータにアクセスし、ルータに対するＮＡＴ設定等の依頼先を取得する処理依頼先取得部５５６ａを備えている。ＷＡＮ側アドレス取得部５５９は、ＵＰｎＰ  ＩＧＤ仕様を用いて、ルータのＷＡＮ側アドレスを取得する。ルータアドレス検証部５７０は、ＴＴＬを変化させたルータディスカバリ用パケットの応答パケットから取得したルータアドレスの正当性を検証する。つまりアドレスを取得できていないルータが存在していないか否かを検証する。
【０１５５】
（ルータ設定の動作）
以上のように構成されたホームネットワーク５００２に接続され、ルータ設定を実行する通信装置５５０の動作について以下に説明する。
（１）送信処理
（１−１）ルータディスカバリ用パケットの送信処理
まず、通常のルータディスカバリ用パケットの送信処理について説明する。図３７は、ディスカバリ用パケット作成部５５２により実行される、ＴＴＬの値を変化させて作成するルータディスカバリ用パケットの送信処理シーケンスを示している。このシーケンスは第１実施形態の図５と同様の処理である。
制御部５５１によりディスカバリ用パケット作成の指示があった場合、通信装置５５０はこのルータディスカバリ用パケットの送信処理シーケンスを開始する。
【０１５６】
ステップＳ６０１：通信装置５５０のディスカバリ用パケット作成部５５２は、制御部５５１からパケット作成の指示が継続しているか否かを判別する。
ディスカバリ用パケット作成部５５２は、制御部５５１からパケット作成指示がされていないと判断した場合、このシーケンスを終了する。ここで、制御部５５１がパケット作成指示後に停止指示を行うのは、次に説明するルータからのパケット受信処理で特定の条件を満たしたときである。
ステップＳ６０２：ディスカバリ用パケット作成部５５２は、パケット作成指示が継続していると判断した場合、によりＴＴＬを１から順にインクリメントしたルータディスカバリ用パケットを作成する。
ステップＳ６０３：ディスカバリ用パケット作成部５５２は、ルータディスカバリ用パケットを作成すると、パケット送受信部５５４にパケット送信を指示する。パケット送受信部５５４は、通信部５５５を通じて、ルータディスカバリ用パケットを送信する。
【０１５７】
ここで、ディスカバリ用パケット作成部５５２は、送信したルータディスカバリ用パケットに対するルータからの応答パケットを待つことなく、異なるルータディスカバリ用パケットを送信するように構成できる。このように、複数のルータディスカバリ用パケットを同時に送信することにより、高速にルータをディスカバリすることが可能となる。例えば、応答パケット内にルータディスカバリ用パケット内のＴＴＬに対応する情報が含まれている場合には、通信装置は、その情報に基づいてどのルータからの応答パケットであるかを把握することができる。そのため、通信装置は、ＴＴＬを変化させたルータディスカバリ用パケットを次々と送信し、ホームネットワーク内のルータのアドレスやルータ構成を高速に取得することが可能となる。また、ＵＰｎＰ  ＩＧＤ仕様を利用する場合における各ルータへのルータ設定では、通信装置で特定のアプリケーションが起動した段階でルータ設定を行う等の動的な設定に対応させる必要がある。前述のように、通信装置がホームネットワーク内のルータのアドレスやルータ構成を高速に取得することで、各ルータへの動的なルータ設定に対応することができる。
【０１５８】
なお、ルータディスカバリ用パケットは、インターネット上の特定のグローバルアドレス宛てに向けて送信するように構成できる。
（１−２）上位ルータのアドレスを推測したルータディスカバリ用パケットの送信処理
次に、図３８を用いて、ディスカバリ用パケット作成部５５２が実行する上位ルータのアドレスを推測したルータディスカバリ用パケットの送信処理について説明する。
ステップＳ６３０：ディスカバリ用パケット作成部５５２は、制御部５５１からルータディスカバリ用パケットの作成を指示され、ＷＡＮ側アドレスを取得している場合は、ルータディスカバリ用パケットの作成を続行する。
ステップＳ６３１：次に、通信装置５５０のディスカバリ用パケット作成部５５２は、制御部５５１から受け取ったＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測する。そして、そのＬＡＮ側アドレスに基づいてルータディスカバリ用パケットを生成する。
【０１５９】
例えば、ＬＡＮ側アドレスは、工場出荷時の状態で使用すると、クラスＣのローカルアドレスが使用されており、しかもその下位８ビットは１または２５４である。そのため、ディスカバリ用パケット作成部５５２は、上位ルータのアドレスを推測する場合、制御部５５１から得たルータのＷＡＮ側アドレスの下位８ビットを１または２５４に置き換えたアドレスを優先的に用いてＬＡＮ側アドレスを推測する。
ステップＳ６３２：そして、ディスカバリ用パケット作成部５５２は、生成したルータディスカバリ用パケットをパケット送受信部５５４及び通信部５５５を通じて送信する。
（２）応答パケットの受信処理
次に、図３９を用いてルータディスカバリ用パケットに対する応答受信処理について説明する。
【０１６０】
ステップＳ６０５：制御部５５１は、ルータディスカバリ用パケットの送信をディスカバリ用パケット作成部５５２に指示した後、その応答パケットの受信を受信パケット解析部５５３に指示する。そして、通信装置５５０の受信パケット解析部５５３は、応答パケットの受信を待機する。
ステップＳ６０６：制御部５５１は、応答パケットを受信した場合、その応答パケットがＴＴＬを変化させたルータディスカバリ用パケットに対する応答であるか、または、ＷＡＮ側アドレスを拠り所として上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答であるかを判別する。
（２−１）ＴＴＬを変化させたルータディスカバリ用パケットに対する応答パケットの受信処理
通信装置５５０は、受信した応答パケットがＴＴＬを変化させたルータディスカバリ用パケットに対するものであると判断した場合、以下の処理（Ｓ６１２〜Ｓ６１７）を実行する。
【０１６１】
ステップＳ６１２：まず、通信部５５５がルータディスカバリ用パケットに対応する応答パケットであるＩＣＭＰ時間超過パケットを受信する。そして、受信パケット解析部５５３は、通信部５５５及びパケット送受信部５５４を介してＩＣＭＰ時間超過パケットを受信する。
受信パケット解析部５５３は、ＩＣＭＰ時間超過パケットのデータ部に含まれた送信先ポート番号を取り出し、その情報を元にルータディスカバリ用パケットを送信した際に設定したＴＴＬの値を特定する。ここで、特定したＴＴＬの値がＮであったとして説明する。同時に、受信パケット解析部５５３は、送信元アドレスを取り出すことで、ルータのＬＡＮ側アドレスを取得する。
ステップＳ６１３：次に、通信装置５５０の制御部５５１は、ＴＴＬ＝Ｎ−１に設定したルータディスカバリ用パケットにより検出されたルータについてＷＡＮ側アドレスを取得するようにＷＡＮ側アドレス取得部５５９に指示する。ここで、制御部５５１は、受信パケット解析部５５３が取得したルータのＬＡＮ側アドレスをＷＡＮ側アドレス取得部５５９に送信する。ＷＡＮ側アドレス取得部５５９は、ＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。
【０１６２】
さらに、通信装置５５０の制御部５５１は、取得したルータのＷＡＮ側アドレスをルータアドレス検証部５７０に送信し、このＷＡＮ側アドレスの検証をルータアドレス検証部５７０に指示する。
ルータアドレス検証部５７０は、ＴＴＬ＝Ｎに設定したルータディスカバリ用パケットにより取得したルータのＬＡＮ側アドレスと、ＴＴＬ＝Ｎ−１に設定したルータディスカバリ用パケットにより検出したルータのＷＡＮ側アドレスのアドレス空間とが一致しているかをチェックする。つまり、隣接するルータのＬＡＮ側アドレスとＷＡＮ側アドレスとを比較して、取得したＷＡＮ側アドレスが正当なアドレスかをチェックする。ここで、ルータアドレス検証部５７０は、ＴＴＬ＝Ｎに設定したルータディスカバリ用パケットに対するＩＣＭＰ時間超過パケットより取得したルータのＬＡＮ側アドレスと、ＴＴＬ＝Ｎ−１に設定したルータディスカバリ用パケットにより検出したルータのＷＡＮ側アドレスのアドレス空間が一致していないと判断した場合、ＴＴＬ＝Ｎに対応するＩＣＭＰ時間超過パケットを応答したルータとＴＴＬ＝Ｎ−１に対応するＩＣＭＰ時間超過パケットを応答したルータとの間に別のルータが存在すると認識する。
【０１６３】
ステップＳ６１４：ルータアドレス検証部５７０がアドレス空間の不一致を検出すると、制御部５５１は、ルータのＷＡＮ側アドレスを拠り所としてアドレスを類推し、第２のルータディスカバリ用パケットの送信処理を行うようにディスカバリ用パケット作成部５５２に指示する。このとき、制御部５５１は、ＴＴＬ＝Ｎ−１で指定したルータディスカバリ用パケットで検出したルータのＷＡＮ側アドレスをディスカバリ用パケット作成部５５２に送信する。
なお、Ｎ＝１の場合には、ルータアドレス検証部５７０は、得られたルータのアドレスと通信装置５５０のアドレスのアドレス空間が一致するかをチェックする。一致しない場合、制御部５５１は、通信装置５５０のアドレスを拠り所として、第２のルータディスカバリパケットの送信を行うようにディスカバリ用パケット作成部５５２に指示する。
【０１６４】
通信装置５５０の制御部５５１は、ＴＴＬ＝Ｎに設定したルータディスカバリ用パケットにより取得したルータのＬＡＮ側アドレスと、ＴＴＬ＝Ｎ−１に設定したルータディスカバリ用パケットにより検出したルータのＷＡＮ側アドレスのアドレス空間が一致していると判断した場合、次のＳ６１５の処理を実行する。
ステップＳ６１５：通信装置５５０の制御部５５１は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判断する。
ステップＳ６１６：通信装置５５０の制御部５５１は、ステップＳ６１５において取得したＬＡＮ側アドレスがローカルアドレスであると判断した場合、ルータ設定部５５６にルータ設定を指示する。指示を受けたルータ設定部５５６は、取得したＬＡＮ側アドレスにアクセスして当該ルータにＮＡＴ設定とファイアウォール設定を実行する。
【０１６５】
ステップＳ６１７：通信装置５５０の制御部５５１は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであると判断した場合、ディスカバリ用パケット作成部５５２にＴＴＬを変化させたルータディスカバリ用パケットの作成中止を指示する。
ステップＳ６１８：そして、通信装置５５０の制御部５５１は、ルータのＷＡＮ側アドレスを拠り所としてアドレスを類推し送信する第２のルータディスカバリ用パケットの応答や、今回受信したＴＴＬより小さい値のＴＴＬを有するルータディスカバリ用パケットの応答等、他にルータディスカバリ用パケットの応答を受信する必要がないかを判断し、必要がない場合処理を終了する。
一方、通信装置５５０の制御部５５１は、他の応答を受信する必要があると判断した場合、再度ステップＳ６０５に戻り応答パケットの受信を待機する。
【０１６６】
このように制御することで、ホームネットワーク内のルータに対してのみＮＡＴ設定やファイアウォール設定を行うことが可能となる。
以上が受信した応答がＴＴＬを変化させるルータディスカバリ用パケットに対するものであった場合の処理である。
（２−２）上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答パケットの受信処理
次に、受信したパケットがＷＡＮ側アドレスを拠り所にして上位ルータのアドレスを推測して送信したルータディスカバリ用パケットに対する応答だった場合の処理（Ｓ６０７〜Ｓ６１１）について説明する。
ステップＳ６０７：まず、通信装置５５０の受信パケット解析部５５３は、応答パケットを受信すると受信パケットを解析し、ルータのＬＡＮ側アドレスを取得する。ＵＰｎＰを利用する場合、応答に記載される情報を利用して、デバイスディスクリプション、サービスディスクリプションを取得し、アクション送信のための情報も合わせて取得する。
【０１６７】
ステップＳ６０８：通信装置５５０の制御部５５１は、今回受信したパケットが、ディスカバリ用パケット作成部５５２が作成し送信したルータディスカバリ用パケットに対する応答パケットであると判断した場合、ディスカバリ用パケット作成部５５２に第２のルータディスカバリ用パケットの送信処理の中止を指示する。
ステップＳ６０９：そして、通信装置５５０の制御部５５１は、取得したルータのＬＡＮ側アドレスとＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのＬＡＮ側アドレスと値との比較をルータアドレス検証部５７０に指示する。ルータアドレス検証部５７０が、取得したルータのＬＡＮ側アドレスとＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのＬＡＮ側アドレスとが一致すると判断した場合には、制御部５５１はＳ６１８の終了判定処理を実行する。
【０１６８】
ルータアドレス検証部５７０が、取得したルータアドレスとＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのアドレスとが一致しないと判断した場合、以下の処理（Ｓ６１０、Ｓ６１１）を実行する。
ステップＳ６１０：取得したルータアドレスがＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのアドレスと一致しないため、検出したルータは、ＮＡＴ設定及びファイアウォール設定を行っていないルータである。よって、通信装置５５０の制御部５５１は、得られたルータのＬＡＮ側アドレスをルータ設定部５５６に送信する。ルータ設定部５５６は、そのＬＡＮ側アドレスに基づいて当該ルータにアクセスし、第１実施形態と同様にＮＡＴ設定またはファイアウォール設定、またはその両方を実行する。
ステップＳ６１１：取得したルータアドレスがＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのアドレスと一致しないため、ＴＴＬ＝Ｎに設定したルータディスカバリ用パケットで検出されたルータまでに、他のルータが存在している可能性がある。そのため、通信装置５５０の制御部５５１は、得られたルータのＬＡＮ側アドレスをＷＡＮ側アドレス取得部５５９に送信する。ＷＡＮ側アドレス取得部５５９は、ＬＡＮ側アドレスに基づいて当該ルータのＷＡＮ側アドレスを取得する。制御部５５１は、さらにＷＡＮ側アドレスをディスカバリ用パケット作成部５５２に送信する。ディスカバリ用パケット作成部５５２は、その検出したルータのＷＡＮ側アドレスを取得し、ルータのＷＡＮ側アドレスを拠り所に上位ルータのアドレスを推測してルータディスカバリ用パケットを作成する第２のディスカバリ用パケットの送信処理を行う。これらの処理が終了すると、制御部５５１はルータディスカバリ用パケットに対する応答パケットの受信待機を行う。
【０１６９】
以上がルータディスカバリ用パケットに対する応答受信処理である。
（処理の例）
図４０に、第６実施形態に記載した方式でホームネットワークを設定する場合の動作を示す。ここで、ルータ５３０ＢはＴＴＬ処理を行わないルータであると仮定する。
通信装置５５０のディスカバリ用パケット作成部５５２は、ＴＴＬを１から順に設定したルータディスカバリ用パケットを送信する。そして、受信パケット解析部５５３は、その応答として、ＴＴＬ＝１のルータディスカバリ用パケットに対応してルータ５４０ＡのＬＡＮ側アドレスを取得する。また、ルータ５３０ＢがＴＴＬ処理を行わないルータであるので、ルータ５３０Ｂに到達したＴＴＬ＝２のルータディスカバリ用パケットはＴＴＬ処理が行われないままルータ５２０Ｃへ送信される。よって、受信パケット解析部５５３はＴＴＬ＝２のルータディスカバリ用パケットに対応してルータ５２０Ｃのアドレスを取得する。そして、ルータ設定部５５６は、取得したＬＡＮ側アドレスに基づいてルータ５４０Ａ及びルータ５２０Ｃにアクセスして、それぞれＮＡＴ設定及びファイアウォール設定を実行する。
【０１７０】
このとき、ＴＴＬ＝１のルータディスカバリ用パケットに対応して取得したルータ５４０ＡのＷＡＮ側アドレスが“１９２．１６８．１０．３”であるとする。ＷＡＮ側アドレス取得部５５９は、ＴＴＬ＝１のルータディスカバリ用パケットに対応する応答パケットから取得したルータ５４０ＡのＬＡＮ側アドレスに基づいて、このルータ５４０ＡのＷＡＮ側アドレスを取得する。一方、ＴＴＬ＝２のルータディスカバリ用パケットに対応して取得したルータ５２０ＣのＬＡＮ側アドレスが“１９２．１６８．２．１”であるとする。よって、ルータアドレス検証部５７０は、両者のネットワークアドレスが一致していないことを検出する。
このネットワークアドレスの不一致により、通信装置は、ルータ５２０Ｃとルータ５４０Ａの間に、他のルータが存在していることを認識できる。よって、通信装置５５０のディスカバリ用パケット作成部５５２は、ルータ５４０ＡのＷＡＮ側アドレス“１９２．１６８．１０．３”を拠り所として、その上位ルータであるルータ５３０Ｂのアドレスを推測し、ルータディスカバリ用パケットを送信する。その結果として、通信装置５５０の受信パケット解析部５５３は、ルータディスカバリ用パケットに対する応答パケットからルータ５３０ＢのＬＡＮ側アドレス１９２．１６８．１０．１を取得する。ルータ設定部５５６は、このＬＡＮ側アドレスに基づいてルータ５３０ＢのＮＡＴ設定及びファイアウォール設定を実行する。
【０１７１】
さらに、ルータ５３０ＢのＬＡＮ側アドレスを取得することにより、ＷＡＮ側アドレス取得部５５９がルータ５３０ＢのＷＡＮ側アドレスを取得することができる。そして、ディスカバリ用パケット作成部５５２は、そのＷＡＮ側アドレスの値を拠り所としてルータディスカバリ用パケットを作成して送信し、上位のルータであるルータ５２０ＣのＬＡＮ側アドレスを取得する。
ルータアドレス検証部５７０が、取得したルータ５２０ＣのＬＡＮ側アドレスと、ＴＴＬ＝２に設定したルータディスカバリ用パケットに対応して取得したルータのアドレス値とが一致すると判定した場合、制御部５５１は、未発見のルータをすべて発見し終えたと判断する。
（作用効果）
第６実施形態の通信装置は、ルータ応答パケットから抽出したＬＡＮ側アドレスのアドレス空間と、前段のルータのＬＡＮ側アドレスに基づいて取得したＷＡＮ側アドレスのアドレス空間との一致・不一致を判断する。これにより、ルータ応答パケットから抽出したＬＡＮ側アドレスの正当性を判定することができる。一致した場合は、ルータ応答パケットから抽出したＬＡＮ側アドレスが、通信装置からルータにアクセスするための正しいアドレスであることを確認することができる。よって、ＴＴＬを減らさずに次のルータに転送するようなルータがホームネットワーク内に含まれている場合であっても、通信装置は、ホームネットワーク内のルータの構成を把握し、ルータ設定を行うことができる。
【０１７２】
なお、この第６実施形態では、ルータのＮＡＴ設定、ファイアウォール設定について記述したが、第２実施形態及び第４実施形態にこの第６実施形態の手法を適用することで、ＴＴＬを処理しないルータがホームネットワークに存在するような環境でも、無線ＡＰ６０の設定、または通信装置５５０の無線通信部５８の設定、またはその両方を高速にしかも確実に実行することが可能となる。
さらに、第５実施形態、第６実施形態において、第１実施形態で述べたＴＴＬを変化させたルータディスカバリ用パケットをＴＴＬ＝１から順に設定して送信する方法を用いて、ルータのアドレス情報を検出する過程で問題を検出した時に、第２実施形態で述べたルータのＬＡＮ側アドレスを推測してルータディスカバリ用パケットを送信する方法を用いてルータのアドレス情報を取得する方法について記述したが、これは一例であり、最初から第１実施形態で述べたＴＴＬを変化させたルータディスカバリ用パケットをＴＴＬ＝１から順に設定して送信する方法と、第２実施形態で述べたルータのＬＡＮ側アドレスを推測してルータディスカバリ用パケットを送信する方法とを同時に実行するように構成し、得られた両者の方法による結果をマージするように制御することで第５実施形態、第６実施形態と同様の効果を得ることが可能である。
【０１７３】
また、第１実施形態から第６実施形態において、ルータの発見、ＷＡＮ側アドレスの取得、ＮＡＴ設定、ファイアウォール設定に、ｈｔｔｐやＵＰｎＰを用いるとしたが、これは一例であり、プロトコルはＳＬＰ、ＳＮＭＰ等の他のプロトコルを用いても良い。
〈第７実施形態：Ｐ２Ｐ通信への適用〉
前述の第１実施形態から第６実施形態では、ＴＴＬを変化させたルータディスカバリ用パケットやＵＰｎＰのディスカバリ用パケット等を利用してルータを発見し、ファイアウォールやＮＡＴの設定を行うことを説明した。一方、この第７実施形態では、第１実施形態から第６実施形態と同様な方法でホームネットワークの各ルータのファイアウォールやＮＡＴの設定を行い、このファイアウォールやＮＡＴの設定実行により設定された通信路を用いて、端末間で直接通信（以下、Ｐ２Ｐ通信と記載）することを開示する。つまり、本第７実施形態は、前述の第１実施形態から第６実施形態のホームネットワーク内のルータ設定をＰ２Ｐ通信へ適用したものである。
【０１７４】
一般にＰ２Ｐ通信路が作成されいない状態では、ユーザ端末間で通信を行うことができない。そのため、他のユーザ端末がＰ２Ｐ通信を行いたいとしても通信相手のユーザ端末に通知することができない。Ｐ２Ｐサーバは、これを解決する機能を備えるものであり、各ユーザ端末は予めＰ２Ｐサーバとの間に通信路を形成しておく。そして、Ｐ２Ｐサーバがユーザ端末間の通信メッセージの中継を行うことにより、Ｐ２Ｐ通信路の形成前にユーザ端末間での通信が可能となる。
ユーザ端末がＰ２Ｐサーバとの間に確立する通信路について説明する。ルータでは一般にＬＡＮ側からＷＡＮ側に向けて通信する場合には、ＮＡＴの設定やファイアウォールの設定が自動的になされる。そのため、ユーザ端末自身が送信したパケットに対する送信先からの応答がルータのＷＡＮ側から入った場合、特別な設定をせずともＬＡＮ側に接続されたユーザ端末で受信することが可能である。このルータが持つＮＡＴの設定やファイアウォールの自動設定機能を以下、動的ＮＡＰＴと呼ぶことにする。
【０１７５】
ゆえに、Ｐ２Ｐサーバと各ユーザ端末との通信路は、ルータの動的ＮＡＰＴにより、各ユーザ端末からＰ２Ｐサーバに対して通信を開始すれば簡単に確立することが可能である。たとえば、ＴＣＰセッションを各ユーザ端末からＰ２Ｐサーバに確立する方法や、一定時間毎に各ユーザ端末からＰ２ＰサーバにＵＤＰパケットを送信する方法等が考えられる。また、各ユーザ端末がＰ２Ｐサーバに通信路を確立するとき、自身の識別情報を同時にＰ２Ｐサーバに登録し、Ｐ２Ｐサーバが前記識別情報とユーザ端末のアドレス情報とを対応付けて管理するようにしても良い。このようにすることで、ユーザ端末は通信相手の識別情報をメッセージの宛先に指定すると、Ｐ２Ｐサーバは識別情報に基づいて相手先のユーザ端末との通信を中継する。つまり、各Ｐ２Ｐ通信を行うユーザ端末は、通信相手の識別情報さえ事前に知っていれば通信可能とすることができる。
【０１７６】
上記で説明したようにＬＡＮ側からＷＡＮ側への通信は動的ＮＡＰＴにより簡単に行うことができる。しかし、後述の図４１のユーザ端末ａとユーザ端末ｅのように、ユーザ端末間の通信においては、一般的には通信相手のルータにおいてＷＡＮ側からＬＡＮ側への通信路が必要になる。そのため、ルータの動的ＮＡＰＴだけでは通信できない場合が多い。本実施形態では、このＷＡＮ側からＬＡＮ側への通信路の設定を行い、Ｐ２Ｐ通信を可能とするものである。
本発明の第７実施形態について、図に基づき説明する。図４１は、本発明の第７実施形態におけるネットワーク構成である。
（全体構成）
図４１では、ホームネットワーク７００２及びホームネットワーク７００３がインターネット７００１を介して接続されている。また、インターネット７００１にはＰ２Ｐサーバ７０３が接続されており、端末間のＰ２Ｐ通信用の通信路作成を補助する。ホームネットワーク７００２にはＰ２Ｐ通信を行うユーザ端末ａ〜ｄが存在し、多段に接続されたルータ７０２Ａ〜７０２Ｅが配置されている。また、ホームネットワーク７００３にはＰ２Ｐ通信を行うユーザ端末ｅ及び多段に接続されたルータ７０２Ｆ、７０２Ｇが配置されている。本第７実施形態のＰ２Ｐ用のユーザ端末は、これら７０１ａから７０１ｅのいずれのユーザ端末の組合せでもＰ２Ｐ通信が可能である。
【０１７７】
（通信装置の構成）
図４２は第７実施形態のユーザ端末７０１（ユーザ端末７０１ａ〜ユーザ端末７０１ｅ）の構成図である。このユーザ端末７０１は、制御部７１１、ホームネットワーク解析部７１２、Ｐ２Ｐ通信判断部７１３、通信路設定部７１４、通信部７１５を備えている。
制御部７１１は各機能部に処理の指示を行う。ホームネットワーク解析部７１２は、ホームネットワークの各ルータを検出し、検出されたルータの接続関係と、ルータのＬＡＮ側アドレスとＷＡＮ側アドレスを取得してネットワーク構成情報記憶に保存する。Ｐ２Ｐ通信判断部７１３は、ホームネットワーク解析部７１２が取得したホームネットワークの構成情報と通信部７１５を通じて入手した通信相手のホームネットワーク構成情報とを用いてＰ２Ｐ通信が可能かどうかを判断する。さらに、Ｐ２Ｐ通信判断部７１３は、Ｐ２Ｐ通信を行うための通信路を判断する。通信路設定部７１４は、Ｐ２Ｐ通信判断部７１３の判断結果に基づき、各ルータに対して通信路の設定を行う。通信路設定部７１４は、取得したアドレスに基づいて当該ルータにアクセスし、ルータに対するＮＡＴ設定等の依頼先を取得する処理依頼先取得部７１４ａを備えている。通信部７１５は、各ルータ７０２やＰ２Ｐサーバ７０３やＰ２Ｐ通信の相手先のユーザ端末等とのデータ送受信処理を実行する。
【０１７８】
以上のように構成されたユーザ端末７０１についてその動作を説明する。図４３はユーザ端末７０１が実行するＰ２Ｐ通信の接続時のシーケンスを示している。
まず、Ｐ２Ｐ通信を行うことを希望するユーザ端末（以下ユーザ端末１という）は、Ｐ２Ｐサーバ７０３を通じて、Ｐ２Ｐ通信を希望する相手先のユーザ端末（以下ユーザ端末２という）に対して、Ｐ２Ｐ通信を行いたい旨を通知する。通知を受けたユーザ端末２は受諾の応答をユーザ端末１に応答する。
＜ＳＴＥＰ１：ネットワーク構成情報の把握＞
そして、ユーザ端末１及びユーザ端末２は互いのホームネットワークの構成情報を調査する。なお、ホームネットワークの構成情報を取得済みの場合は、実行する必要はない。
構成情報の調査は、ユーザ端末１及びユーザ端末２において、制御部７１１から指示を受けたホームネットワーク解析部７１２が、ホームネットワーク内のルータを発見し、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する。ここで、接続関係とは、各ルータがどのような順番で接続されているかという情報である。これらの情報は、例えば以下の（１）〜（４）の方法により取得する。また、各ユーザ端末は、自身のユーザ端末が属するホームネットワーク内の一部のルータに関するルータ構成であり、例えば自身のユーザ端末からグローバルアドレスに対応するルータまでのルータ構成を把握すれば良い。
【０１７９】
（１）情報取得方法１
ルータを発見し、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する方法は、第１実施形態で記載したＴＴＬを変化させたルータディスカバリ用パケットを用いる方法と同様な方法を用いることができる（図４３中、（１）Ｔｒａｃｅｒｏｕｔｅによるネットワーク構成把握を参照）。
具体的には、ユーザ端末１及びユーザ端末２それぞれにおいて以下のように各ルータのＷＡＮ側アドレス情報と各ルータの接続関係を取得する。まず各ユーザ端末は、ルータディスカバリ用パケットのＴＴＬを変化させたルータディスカバリ用パケットをホームネットワーク内のルータに対して送信する。そして、各ユーザ端末は、ルータディスカバリ用パケットに対するルータからの応答パケットを受信し、この応答パケット内から各ルータのＬＡＮ側アドレスを取得する。そして、各ユーザ端末は、ＬＡＮ側アドレスに基づいて各ルータにアクセスすることでルータのＷＡＮ側アドレスを取得することができる。各ユーザ端末のホームネットワーク解析部７１２は、これらの取得したアドレスにより、ホームネットワーク内のルータの接続関係を把握することができる。
【０１８０】
（２）情報取得方法２
また、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する方法は、第３実施形態で記載したＵＰｎＰ  ＩＧＤ仕様を用いたディスカバリ用パケットを用いる方法と同様な方法を用いることができる（図４３中、（２）ＵＰｎＰによるネットワーク構成把握を参照）。
具体的には、まず各ユーザ端末は、ルータディスカバリ用パケットのＴＴＬを変化させたルータディスカバリ用パケットをホームネットワーク内のルータに対して送信する。そして、各ユーザ端末は、ルータディスカバリ用パケットに対するルータからの応答パケットを受信し、この応答パケット内から各ルータのＬＡＮ側アドレスを取得する。そして、各ユーザ端末は、ＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。次に、各ユーザ端末は、取得したＷＡＮ側アドレスを拠り所として、より上位のルータのＬＡＮ側アドレスを取得し、同様にＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得することを繰り返す。各ユーザ端末のホームネットワーク解析部７１２は、これらの取得したアドレスにより、ホームネットワーク内のルータの接続関係を把握することができる。
【０１８１】
（３）情報取得方法３
また、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する方法は、ＩＣＭＰ時間超過パケットをフィルタリングするルータを含むホームネットワークにも適用できるとともに、処理効率の高い第５実施形態で記載した方法と同様な方法を用いることができる。
具体的には、まず各ユーザ端末は、ルータディスカバリ用パケットのＴＴＬを変化させたルータディスカバリ用パケットをホームネットワーク内のルータに対して送信する。そして、各ユーザ端末は、各ルータディスカバリパケットに設定されたタイムアウトをカウントし、各ルータディスカバリパケットに対する応答パケットを受信できたかどうかを検出する。応答パケットを受信できなかった場合は、各ユーザ端末は、最初にタイムアウトした応答パケットのＴＴＬ値より１小さいＴＴＬ値に対応して検出されたルータが、ＩＣＭＰをフィルタリングしているルータと考えることができる。そして、各ユーザ端末は、フィルタリングしているルータからの応答パケットから取得したＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。さらに、各ユーザ端末は、取得したＷＡＮ側アドレスを拠り所として、より上位のルータのＬＡＮ側アドレスを取得し、同様にＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得することを繰り返す。各ユーザ端末のホームネットワーク解析部７１２は、これらの取得したアドレスにより、ホームネットワーク内のルータの接続関係を把握することができる。
【０１８２】
（４）情報取得方法４
さらに、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する方法は、ＴＴＬ処理を実行しないルータが含まれたホームネットワークにも適用できると共に、処理効率の高い第６実施形態で記載した方法と同様な方法を用いることができる。
具体的には、まず各ユーザ端末は、ルータディスカバリ用パケットのＴＴＬを変化させたルータディスカバリ用パケットをホームネットワーク内のルータに対して送信する。そして、各ユーザ端末は、ルータディスカバリ用パケットに対するルータからの応答パケットを受信し、この応答パケット内から各ルータのＬＡＮ側アドレスを取得する。そして、各ユーザ端末は、ＬＡＮ側アドレスに基づいてＷＡＮ側アドレスを取得する。
ここで、各ユーザ端末は、ＴＴＬ＝Ｎに設定したルータディスカバリ用パケットにより取得したルータのＬＡＮ側アドレスと、ＴＴＬ＝Ｎ−１に設定したルータディスカバリ用パケットにより検出したルータのＷＡＮ側アドレスのアドレス空間とが一致しているかをチェックする。各ユーザ端末は、一致していないと判断した場合、ＴＴＬ＝Ｎ−１のルータディスカバリ用パケットに対する応答パケットから取得したルータのＷＡＮ側アドレスを拠り所としてアドレスを類推し、ルータディスカバリ用パケットの送信を行いそれに対する応答を受信する。そして、各ユーザ端末は、この応答パケットからＴＴＬ＝ＮのルータのＬＡＮ側アドレスを取得し、このＬＡＮ側アドレスからルータのＷＡＮ側アドレスを取得する。各ユーザ端末のホームネットワーク解析部７１２は、これらの取得したアドレスにより、ホームネットワーク内のルータの接続関係を把握することができる。
【０１８３】
図４４にＵＰｎＰ  ＩＧＤ仕様を用いたディスカバリ用パケットを用いて、ホームネットワークの各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する一例を図示する。なお、このルータを発見し、各ルータのＷＡＮ側アドレス情報と各ルータの接続関係の情報を取得する手順は、第１実施形態から第６実施形態で述べた方法と同様である。簡単に説明すると、各ユーザ端末は、デフォルトのＧＷ（Ｇａｔｅ  Ｗａｙ）、つまりデフォルトのルータに対するＭ−Ｓｅｒａｃｈ要求及び応答、デバイスディスクリプション取得要求及び応答によりルータに対するアクションの依頼先情報を取得する。そして、自身が接続しているルータのＬＡＮ側アドレスを取得する。そして、各ユーザ端末は、そのＬＡＮ側アドレスを有するルータに対するＧｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰＡｄｄｒｅｓｓ要求及び応答により、そのルータのＷＡＮ側アドレスを取得する。そして、各ユーザ端末は、取得したＷＡＮ側アドレスに基づいて、ホームネットワークを構成する各ルータのＬＡＮ側アドレスを推測して、ユニキャストによるＭ−Ｓｅｒａｃｈ要求を行う。そして、各ユーザ端末は、そのＭ−Ｓｅｒａｃｈ要求に対する応答、デバイスディスクリプション取得要求及び応答によりルータに対するアクションの依頼先情報を取得する。そして、各ルータのＬＡＮ側アドレスを取得する。さらに、各ユーザ端末は、同様にＧｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰＡｄｄｒｅｓｓ要求及び応答により、そのルータのＷＡＮ側アドレスを取得する。各ユーザ端末のホームネットワーク解析部７１２は、これらの取得したアドレスにより、ホームネットワーク内のルータの接続関係を把握することができる。
【０１８４】
＜ＳＴＥＰ２：アドレス情報の送信＞
自身の上流（ユーザ端末から離れる方向、すなわち、インターネットに近い方向）に接続されるホームネットワークの各ルータのＷＡＮ側アドレス情報と接続関係の情報（ホームネットワークの構成情報）を取得したユーザ端末１は、Ｐ２Ｐ通信判断部７１３に構成情報の交換を指示する。
図４３中（３）アドレス情報交換に示すように、指示を受けたＰ２Ｐ通信判断部７１３は、ネットワーク構成情報記憶部７２１に格納された情報を用いてアドレス交換メッセージを作成し、通信部７１５を通じてＰ２Ｐサーバ７０３に送信する。前記アドレス交換メッセージを受信したＰ２Ｐサーバ７０３は、本メッセージに格納された送信先情報を参照し、このアドレス交換メッセージを通信相手のユーザ端末２に送信する。
【０１８５】
ユーザ端末２のＰ２Ｐ通信判断部７１３は、前記アドレス交換メッセージを通信部７１５を介して受信する。そして、ユーザ端末２のＰ２Ｐ通信判断部７１３は、受信した情報を相手先ネットワーク構成情報記憶部７２２に情報を記憶する。さらに、Ｐ２Ｐ通信判断部７１３は、ユーザ端末１と同様にアドレス交換メッセージを作成し、通信部７１５を通じてＰ２Ｐサーバ７０３に送信する。本メッセージは同様にＰ２Ｐサーバ７０３により中継され、通信装置１に受信される。
ユーザ端末２からのアドレス交換メッセージを受信したユーザ端末１のＰ２Ｐ通信判断部７１３は、同様に受信した情報を相手先ネットワーク構成情報記憶部７２２に情報を記憶する。
図４５にユーザ端末１のアドレス交換メッセージの一例を示す。ユーザ端末１が作成して送信するアドレス交換メッセージには、Ｐ２Ｐサーバが送信先の識別に用いる送信先情報とホームネットワークの各ルータのＷＡＮ側アドレス情報とユーザ端末１自身のアドレス情報とが含まれている。
【０１８６】
アドレス交換メッセージについて、具体例を示す。前述の図４１におけるユーザ端末ａであれば、インターネット７００１からのルータ数は３である。よって、ルータ７０２Ｅとルータ７０２Ｃとルータ７０２ＡのＷＡＮ側アドレスとユーザ端末ａ自身のアドレスがアドレス交換メッセージに含まれて送信される。また、ユーザ端末ｃであれば、インターネット７００１からのルータ数は２であり、ルータ７０２Ｅとルータ７０２ＣのＷＡＮ側アドレスとユーザ端末ｃ自身のアドレスがアドレス交換メッセージに含まれて送信される。
＜ＳＴＥＰ３：通信路の確保とアクセス先情報の送信＞
ＳＴＥＰ３では、図４３中（４）ＵＰｎｐによるＮＡＴ設定、（５）アクセス先情報交換が行われる。これにより、ユーザ端末１とユーザ端末２のＰ２Ｐ通信判断部７１３が、それぞれ相手先のユーザ端末との通信経路を判断する。なお、ＮＡＴ設定済みの場合は、ＮＡＴ設定を行う必要はない。
【０１８７】
この通信経路の判断は、ネットワーク構成情報記憶部７２１に格納された自身のホームネットワーク構成情報と、相手先ネットワーク構成情報記憶部７２２に格納された通信相手のユーザ端末のホームネットワーク構成情報とを用いて実行される。この通信経路の判断方法の詳細については後述する。
Ｐ２Ｐ通信判断部７１３の通信経路判断が終了すると、通信路設定部７１４がＰ２Ｐ通信判断部７１３が判断した通信経路を確保するための設定を行う。この設定方法は、第１実施形態から第６実施形態と同様に、ホームネットワーク構成把握時に取得した各ルータのＬＡＮ側アドレスを用いて、ＮＡＴの設定またはファイアウォールの設定、またはその両方を実行する。例えば、ユーザ端末ａとユーザ端末ｄとのＰ２Ｐ通信では、ユーザ端末ａのＰ２Ｐ通信判断部７１３は、ルータ７０２Ｃとルータ７０２Ａに通信経路を確保が必要と判定する。ユーザ端末ａの通信路設定部７１４はこの判定に従い、ルータ７０２Ｃとルータ７０２ＡにＮＡＴの設定またはファイアウォールの設定、またはその両方を実行する。一方、ユーザ端末ｄのＰ２Ｐ通信判断部７１３は、ルータ７０２Ｄとルータ７０２Ｂに通信経路を確保が必要と判定する。ユーザ端末ｄの通信路設定部７１４はこの判定に従い、ルータ７０２Ｄとルータ７０２ＢにＮＡＴの設定またはファイアウォールの設定、またはその両方を実行する。
【０１８８】
図４６にＵＰｎＰ  ＩＧＤ仕様を用いて、通信路の設定を行うシーケンスの一例を示す。また、図４７にユーザ端末ａが実行するＮＡＴの設定とファイアウォール設定の一例を示す。図４７を用いて設定の一例を説明する。
今、ユーザ端末ａはポート番号ＰｏＴａでＰ２Ｐ通信を行うとする。ユーザ端末ａは、自身のＩＰアドレスＡｄＴａ、ポート番号ＰｏＴａに通信相手のユーザ端末ｄからパケットが到着できるようにルータＣとルータＡを設定する。ここで、ルータＣのＷＡＮ側アドレスをＡｄＲＣｗ、ルータＡのＷＡＮ側アドレスをＡｄＲＡｗとする。ユーザ端末ａは、ルータＣのＷＡＮ側から到着したパケットがユーザ端末ａのＰｏＴａに到達するようにＮＡＴの設定とファイアウォールの設定を実行する。このために、ユーザ端末ａは、ルータＣに対して、ルータＣの特定ポートＰｏＲＣｗ１に到着したパケットがルータＡのＷＡＮ側アドレス及び特定ポート（ＡｄＲＡｗ，ＰｏＲＡｗ１）に変換されるように設定を行う。さらに、ユーザ端末ａは、ルータＡのＷＡＮ側アドレスのポートＰｏＲＡｗ１に到着したパケットがユーザ端末ａのポート番号ＰｏＴａ宛て（ＡｄＴａ，ＰｏＴａ）に変換されるようにルータＡの設定を実行する。この設定の結果、ユーザ端末ｄがＩＰアドレス：ＡｄＲＣｗ、ポート番号：ＰｏＲＡｗ１宛てにパケットを送信すると、そのパケットはユーザ端末ａのポート番号ＰｏＴａに到達することになる。
【０１８９】
このように通信路の確保が完了すると、通信路設定部７１４は、Ｐ２Ｐ通信のために相手先のユーザ端末がパケットを送信すべきアドレスとポート番号の情報（アクセス先情報）を、Ｐ２Ｐサーバ７０３を経由して相手先のユーザ端末に送信する。図４７の例では、ユーザ端末ａはアクセス先情報としてルータＣのＷＡＮ側アドレスとＮＡＴの設定をしたポート番号（ＡｄＲＣｗ．ＰｏＲｃｗ１）を通知する。
なお、経路設定が必要と判断されたルータに対する経路設定（ＮＡＴの設定やファイアウォール設定）が１台のルータでも失敗した場合、設定した残りのルータの経路設定を取り消し、アクセス先情報の交換で“アクセス先なし”を示す情報を送信する。
＜ＳＴＥＰ４：接続方向の判断と接続確認＞
次のＳＴＥＰ４には、図４３中の（６）接続要求、（７）接続応答、（８）接続完了、（９）ＵＰｎｐによるＮＡＴ削除、（１０）接続完了／接続失敗の各ステップが含まれる。なお、予め設定された通信経路を利用した場合には、（９）ＮＡＴ設定設定の削除は不要である。
【０１９０】
アクセス情報の交換が完了すると、各ユーザ端末の制御部７１１が、接続方向の判断を行う。接続方向の判断は、アクセス先情報交換の結果を用いて行われる。アクセス先情報の交換の結果は、以下のような４つの場合が存在する。以下、それぞれの場合について説明する。
（ａ）両方のユーザ端末が“アクセス先なし”ではない場合
（ｂ）ユーザ端末１が“アクセス先なし”の場合
（ｃ）ユーザ端末２が“アクセス先なし”の場合
（ｄ）両方のユーザ端末とも“アクセス先なし”の場合
上記４つの場合についてそれぞれ以下に説明する。
（ａ）の場合
両方のユーザ端末が“アクセス先なし”ではない場合には、ユーザ端末１及びユーザ端末２のどちらのユーザ端末から通信を開始してもＰ２Ｐ通信を行うことが可能である。ここでは、ユーザ端末１から通信を開始するとして説明する。
【０１９１】
ユーザ端末１は、接続要求メッセージをユーザ端末２に送信する。このとき、接続要求メッセージには、ユーザ端末２から予め受信したアクセス先情報メッセージに基づいて、ユーザ端末２の指定されたＩＰアドレスとポート番号に送信する。なお、この接続要求メッセージはＰ２Ｐサーバを経由しないでユーザ端末２に送信される。この接続要求メッセージは、前述の通信路の確保時に設定されたＮＡＴの設定により、送信先情報がアドレス変換されながらユーザ端末２に到着する。
接続要求メッセージを受信したユーザ端末２は、接続要求メッセージのヘッダ情報からその送信元アドレスとポート番号を取り出し記憶する。そして、この取り出した送信元アドレスとポート番号に対して接続応答メッセージを送信する。
一般にルータは、ＷＡＮからＬＡＮへの送信先アドレス変換を実行した後は、定められた一定期間の間、通信経路が確立される。つまり、通信経路確立後、ＬＡＮ側からＷＡＮ側へ送信されるパケットの送信元情報は、ＷＡＮからＬＡＮの通信を行うために設定したＮＡＴの設定により変換される。そして、ユーザ端末がパケットを受信するときには、パケットの送信元情報は、パケットを受信したユーザ端末のアドレス・ポート番号と一致するように変換される性質を有する。
【０１９２】
例えば、図４７を用いて変換の例を説明する。まず、ユーザ端末ａが、ユーザ端末ｄからの接続要求メッセージのパケットを、ルータＣのポートＰｏＲＣｗ１とルータＡのポート番号ＰｏＲＡｗ１を経由して、ユーザ端末ａのＰｏＴａにおいて受信したとする。次に、ユーザ端末ａが、ポート番号ＰｏＴａからメッセージの送信元であるユーザ端末ｄに接続応答を送信する。このとき、ポート番号ＰｏＴａである送信元情報が、ルータＡで（ＡｄＲＡｗ，ＰｏＲＡｗ１）に変換され、さらに、ルータＣで（ＡｄＲＣｗ，ＰｏＲＣｗ１）に変換される。この結果、ユーザ端末ｄでパケットを受信すると、ユーザ端末ａの送信元情報は、ユーザ端末ｄ自身が送信した宛先情報（アドレス、ポート番号）と一致することになる。
次に、ユーザ端末１は、ユーザ端末２から接続応答メッセージを受信すると接続完了メッセージを送信する。そして、以下、Ｐ２Ｐ通信でのデータ送受信を実行する。
【０１９３】
図４８は、両方のユーザ端末が“アクセス先なし”ではない場合、つまり両端末側から接続可能である場合のシーケンスを示す。なお、ＵＤＰでＰ２Ｐ通信を実行する場合、この接続要求等のメッセージもＵＤＰを用いて行う。また、パケットが廃棄される可能性を考慮し、各メッセージを複数回送信するようにしても良い。例えば、図４８に示すように、イニシエータであるユーザ端末１が通信を開始する場合、まずユーザ端末１はユーザ端末２に対して接続要求を行う。そして、一定時間内にユーザ端末２からの接続応答を受信できない場合には、ユーザ端末１はユーザ端末２に対して接続要求を再送する。同様に、アクセプタであるユーザ端末２は、接続要求をユーザ端末１に送信してから一定時間内に、ユーザ端末１から接続完了を受信できない場合は、接続応答を再送する。前述では、イニシエータであるユーザ端末１から通信を開始している。しかし、（ａ）の場合には、ユーザ端末１及びユーザ端末２ともに、ホームネットワークの構成情報を取得できており両ユーザ端末から接続可能である。よって、ユーザ端末２がイニシエータである場合は、ユーザ端末２から通信を開始することもできる。
【０１９４】
また、ＴＣＰの場合は、ＴＣＰの接続手順自体がここで説明した接続要求メッセージ等と同等の役目を果たす。
なお、ファイアウォール等の設定が不完全であった等の理由により、ユーザ端末１からのユーザ端末２への接続が失敗した場合、ユーザ端末２からユーザ端末１への接続を実行しても良い。また、ユーザ端末１からのユーザ端末２への接続と、ユーザ端末２からユーザ端末１への接続の両方を一度に試みても良い。
（ｂ）の場合
ユーザ端末１が“アクセス先なし”の場合、すなわち、ユーザ端末１がホームネットワークの構成情報を取得できておらず、ユーザ端末１がユーザ端末２に送信したアクセス先情報が“アクセス先なし”である場合である。つまり、ユーザ端末１が、ユーザ端末２から受信したアクセス先情報にはアクセス先のアドレスとポート番号が記載されていた場合である。よって、ユーザ端末１からユーザ端末２への接続のみが可能であることを意味する。図４９は、ユーザ端末１が“アクセス先なし”場合のシーケンスを示す。（ｂ）の場合には、ユーザ端末１からユーザ端末２に対して最初のアクセスを実行する。そして、ユーザ端末１が接続完了メッセージを送信し、ユーザ端末２が接続完了メッセージを受信後、両端末間でＰ２Ｐでのデータの送受信が実行される。なお、ユーザ端末２は、ユーザ端末１からのアクセスがなければユーザ端末１にアクセスすることができない。
【０１９５】
（ｃ）の場合
ユーザ端末２が“アクセス先なし”の場合、すなわち、ユーザ端末２がホームネットワークの構成情報を取得できておらず、ユーザ端末２ユーザ端末１に送信したアクセス先情報が“アクセス先なし”である場合である。つまり、ユーザ端末２が、ユーザ端末１から受信したアクセス先情報にはアクセス先のアドレスとポート番号が記載されていた場合である。よって、ユーザ端末２からユーザ端末１への接続のみが可能であることを意味する。この場合、図５０は、ユーザ端末２が“アクセス先なし”場合のシーケンスを示す。（ｃ）の場合には、ユーザ端末２からユーザ端末１に対して最初のアクセスを実行する。そして、ユーザ端末２が接続完了メッセージを送信し、ユーザ端末１が本メッセージを受信後、両端末間でＰ２Ｐでのデータの送受信が実行される。なお、ユーザ端末１は、ユーザ端末２からのアクセスがなければユーザ端末２にアクセスすることができない。
【０１９６】
（ｄ）の場合
両方のユーザ端末とも“アクセス先なし”であり、両方のユーザ端末ともアクセス先情報交換で“アクセス先なし”を送信した場合である。つまり、両ユーザ端末ともホームネットワークの構成情報を取得できていない場合である。この場合、制御部７１１は、Ｐ２Ｐ通信が不可能であると判断しＰ２Ｐ通信の通信処理は中止される。なお、この場合、Ｐ２Ｐサーバ７０３を経由したユーザ端末間の通信に切り替えることにより、ユーザ端末間でデータの送受信を実行しても良い。
以上が、ユーザ端末７０１が実行するＰ２Ｐ通信の接続時のシーケンスである。なお、本実施形態では、前述の図４３を用いた説明において、Ｐ２Ｐ通信を行うときに、ＴＴＬを変化させたルータディスカバリ用パケットやＵＰｎＰ  ＩＧＤ仕様を用いたディスカバリ用パケットを用いてホームネットワークの構成情報を把握するとしている。しかし、ユーザ端末の電源ＯＮ時等に予めホームネットワークの構成情報を取得しておき、その情報を利用するようにしても良い。
【０１９７】
また、図４３を用いた説明において、アドレス情報交換後にＰ２Ｐ通信判断部７１３の判断結果に基づき、通信路の設定を行うとしている。しかし、ユーザ端末の電源ＯＮ時等に予め最上位ルータまでの通信路設定を行っておく。そして、Ｐ２Ｐ通信判断部７１３の判断の結果、通信路設定が必要と判断された最上位ルータにおいて、予めＮＡＴの設定が行ってあるポート番号とＩＰアドレスとをアクセス先情報としてユーザ端末２に通知するようにしても良い。この場合、Ｐ２Ｐ通信が失敗した場合及び通信が完了した場合でも通信路の設定は削除しないようにする。
＜通信経路判断の方法＞
次に、Ｐ２Ｐ通信判定部７１３が行う通信経路判断のシーケンスについて説明する。Ｐ２Ｐ通信判断部７１３は、前述のアドレス情報交換が実行された後、ネットワーク構成情報記憶部７２１に格納されている自身のホームネットワークの構成情報と相手先のユーザ端末から受信したアドレス情報交換メッセージ内の情報とを比較することで通信経路を判断する。
【０１９８】
以下に、具体的に説明する。図５１は、Ｐ２Ｐ通信判定部７１３が行う通信経路判断のシーケンスの一例である。以下、ユーザ端末１とユーザ端末２との間で、ホームネットワークの構成情報の交換が行われているものとする。よって、ユーザ端末１はユーザ端末１自身のホームネットワークの構成情報及びユーザ端末２のホームネットワークの構成情報を有している。以下、ユーザ端末１での通信経路判断の方法に着目して説明する。
ステップＳ４６０１：まず、ユーザ端末１のＰ２Ｐ通信判定部７１３は、自身のホームネットワークの構成情報の最上位（すなわち、一番Ｉｎｔｅｒｎｅｔに近いルータ）のルータのＷＡＮ側アドレスを取り出す。同様に、ユーザ端末１のＰ２Ｐ通信判定部７１３は、通信相手であるユーザ端末２の構成情報の最上位ルータのＷＡＮ側アドレスを取り出す。そして、自身のＷＡＮ側アドレスと相手のＷＡＮ側アドレスとを比較する。つまり、Ｐ２Ｐ通信判定部７１３は、まず、自身の最上位のルータのＷＡＮ側アドレスと通信相手の最上位のルータのＷＡＮ側アドレスを比較する。
【０１９９】
なお、再びステップＳ４６０１に戻った場合は、ユーザ端末１及びユーザ端末２それぞれの２番目のルータのＷＡＮ側アドレス同士を比較する。このように、ユーザ端末１自身のホームネットワークの構成情報の最上位のルータのＷＡＮ側アドレスから順番に、アドレス情報交換メッセージで取得した通信相手であるユーザ端末２の構成情報のＷＡＮ側アドレスを比較する。
ステップＳ４６０２：次に、ユーザ端末１のＰ２Ｐ通信判定部７１３は、ユーザ端末１又はユーザ端末２のいずれかについて、比較すべきＷＡＮ側アドレスの情報がなくなっていないかを判定する。
ステップＳ４６０３：ユーザ端末１のＰ２Ｐ通信判定部７１３は、ユーザ端末１又はユーザ端末２のいずれかについて、比較すべきＷＡＮ側アドレスの情報がなくなっていると判定した場合は、次にユーザ端末１自身の構成情報において比較対象とするＷＡＮ側アドレスがなくなったかどうかを判断する。ユーザ端末１の構成情報において比較対象とするＷＡＮ側アドレスがなくなった場合はステップＳ４６０５に進む。逆に、ユーザ端末２の構成情報において比較対象とするＷＡＮ側アドレスがなくなった場合はステップＳ４６０７に進む。
【０２００】
ステップＳ４６０４：ユーザ端末１の構成情報において比較対象とするＷＡＮ側アドレスがなくなった場合、ユーザ端末１のＰ２Ｐ通信判定部７１３は、通信路の設定が必要ないと判断する。
ステップＳ４６０５：そして、ユーザ端末１の通信路設定部７１４は、ステップＳ４６０４において通信路の設定が必要ないと判断すると、通信路の設定を一切行わない。そして、ユーザ端末１の通信路設定部７１４は、アクセス先情報としてユーザ端末自身のＩＰアドレスとＰ２Ｐ通信に用いるポート番号をユーザ端末２に通知する。
ステップＳ４６０６：ユーザ端末１のＰ２Ｐ通信判定部７１３は、ステップＳ４６０２において、ユーザ端末１又はユーザ端末２のいずれについても、比較すべきＷＡＮ側アドレスの情報がなくなっていないと判断した場合は、次のような処理を行う。Ｐ２Ｐ通信判定部７１３は、ユーザ端末１自身のホームネットワークの構成情報内のＷＡＮ側アドレスが、通信相手であるユーザ端末２のホームネットワークの構成情報内のＷＡＮ側アドレスと一致するかを判断する。この結果、ユーザ端末１のＰ２Ｐ通信判定部７１３が一致すると判断した場合、ステップＳ４６０１に戻る。
【０２０１】
ステップＳ４６０７：ステップＳ４６０６においてアドレスが一致しない場合、ユーザ端末１のＰ２Ｐ通信判定部７１３は、互いのＷＡＮ側アドレスが異なったルータより下に位置するルータに対して、通信路の設定が必要と判断する。
または、ステップＳ４６０３においてユーザ端末２の構成情報において比較対象とするＷＡＮ側アドレスがなくなった場合は、通信相手のユーザ端末２が、ユーザ端末２自身のホームネットワーク内における上流のルータに直接接続されていると判断する。つまり、通信相手のユーザ端末２は、あるルータに直接接続されている。一方、ユーザ端末１は別の１以上のルータを介して、ユーザ端末２が直接接続されているルータに接続されている。よって、ユーザ端末１のＰ２Ｐ通信判定部７１３は、ホームネットワークの構成情報で現在比較対象としているルータからユーザ端末１までの間に存在する各ルータの通信路設定が必要と判断する。
【０２０２】
ステップＳ４６０８：そして、ユーザ端末１の通信路設定部７１４は、ステップＳ４６０７での判断結果に基づき、ＮＡＴの設定とファイアウォールの設定を実行する。つまり、ユーザ端末１のＰ２Ｐ通信判定部７１３は、ステップＳ４６０６においてアドレスが一致しないと判断した場合、互いのＷＡＮ側アドレスが異なったルータより下に位置するルータに対してＮＡＴ設定とファイアウォール設定の実行をするように通信路設定部７１４に指示する。
一方、ユーザ端末１のＰ２Ｐ通信判定部７１３は、ステップＳ４６０３においてユーザ端末２の構成情報において比較対象とするＷＡＮ側アドレスがなくなったと判断したとする。この場合、通信路設定部７１４は、現在比較対象としているルータからユーザ端末１までの間に存在する各ルータについてＮＡＴの設定とファイアウォールの設定を実行する。なお、前述のように通信相手のユーザ端末２自身が、上流のルータに直接接続されているため、本来、ユーザ端末１自身から通信相手に接続すれば、動的ＮＡＰＴによりユーザ端末が通信路設定を行うことなく接続可能と考えられる。しかし、ＩＣＭＰを処理しないルータ等の影響により取得した構成情報に誤りがあった時等を考慮して、相手先のユーザ端末からの接続も可能なように通信路設定を行うことでＰ２Ｐ接続の確実性を高める。
【０２０３】
その後、ユーザ端末１は、通信相手のユーザ端末２にアクセス先情報として、通信相手にアドレスが異なったルータ、あるいは通信相手のユーザ端末２が直接接続されているルータ配下に直接接続されているルータについて、そのＷＡＮ側アドレスと、ＮＡＴ設定を行ったポート番号とを通知する。つまり、ユーザ端末１自身が取得したルータのＷＡＮ側アドレスのうち、相手先のユーザ端末２が取得したＷＡＮ側アドレスと最初に異なる値となるＷＡＮ側アドレスと、そのＷＡＮ側アドレスのルータにＮＡＴ設定により設定されたポート番号とが、ユーザ端末２に通知される。例えば、Ｐ２Ｐ通信判定部７１３は、自身の構成情報と通信相手の構成情報とにおいて互いに異なったときのＷＡＮ側アドレスを、通信相手の通信装置に送信する。また、通信路設定部７１４は、互いに異なったときのＷＡＮ側アドレスを有するルータへのＮＡＴ設定により設定されたポート番号を通信相手の通信装置に送信する。
【０２０４】
以上がＰ２Ｐ通信判定部７１３が行う通信経路判断のシーケンスである。
なお、Ｐ２Ｐ通信を設定する方法としては、種々考えられる。例えばまず、通信装置から、ホームネットワーク内及び広域ネットワークとの境界で両者のネットワーク間を接続する境界ルータに至るまでの各ルータのルータアドレスを取得する。相手先の通信装置も同様に境界ルータに至るまでのルータアドレスを取得する。そして、相手先の通信装置との間で互いにルータアドレスの交換を行う。次に、ルータアドレスの一致または不一致を判断することで、通信経路の分岐点を探す。その後、分岐点までの通信路設定を行い、通信路の設定が完了後に分岐点のアドレス情報を通信相手に通知する方法も可能であるし、次の方法でもＰ２Ｐ通信を設定可能である。まず、予め通信装置から広域ネットワークに至るまでの通信路設定を行っておく。次に、境界ルータに至るまでの各ルータのルータアドレスを取得して、相手先の通信装置との間で互いにルータアドレスの交換を行って分岐点を探す。そして、分岐点のアドレス情報を通信相手に通知することで、Ｐ２Ｐ通信を行うことができる。
【０２０５】
＜通信経路判断のシーケンスの具体例＞
次に、このＰ２Ｐ通信判定部７１３が行う通信経路判断のシーケンスについて具体例を用いて説明する。以下では、（１）ユーザ端末間の通信がインターネットを介して行われる場合と、（２）同一のホームネットワークに属するユーザ端末間の通信の場合とについて説明する。
（１）インターネットを介した通信の場合
図５２及び図５３は、ユーザ端末１（Ｔ１）とユーザ端末２（Ｔ２）とがインターネットを介して通信する場合の例である。
（１−１）構成例１
図５２の構成例１では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）を取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）を取得する。そして、ユーザ端末１は、アドレス情報交換メッセージでルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレスＡＴ１とを通知する。同様に、ユーザ端末２は、ルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とユーザ端末２のアドレスＡＴ２とを通知する。
【０２０６】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、このアドレス情報を比較し、ＡＲ１ＷとＡＲ２Ｗが異なることから、ルータＲ１に対する通信路設定が必要と判断する。そして、ユーザ端末１の通信路設定部７１４がルータＲ１のＮＡＴの設定と必要に応じてファイアウォール設定を実行した後に、ＮＡＴの設定したルータＲ１のＩＰアドレスとポート番号をアクセス先情報としてユーザ端末２に通知する。同様に、ユーザ端末２のＰ２Ｐ通信判断部７１３は、ルータＲ２の通信路設定が必要と判断する。そして、通信路設定部７１４がルータＲ２の通信路設定を行った後、ＮＡＴの設定したルータＲ２のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末１に通知される。
（１−２）構成例２
次に、図５３の構成例２について説明する。構成例２はホームネットワークが多段のルータで構成されている場合である。この場合、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とを取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とを取得する。そして、ユーザ端末１はアドレス情報交換メッセージでルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレス（ＡＴ１）とを通知する。また、ユーザ端末２は、アドレス情報交換メッセージでルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とユーザ端末自身のアドレスＡＴ２とが通知する。
【０２０７】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（Ｒ２）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（Ｒ５）のＷＡＮ側アドレスを比較し、ＡＲ２ＷとＡＲ５Ｗが異なることから、ルータＲ２より下流にあるルータ、すなわち、ルータＲ２及びルータＲ１の通信路設定が必要であると判断する。この判断結果に基づき、ユーザ端末１の通信路設定部７１４がルータＲ２とルータＲ１の通信路の設定を実行した後、ＮＡＴの設定したルータＲ２のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末２に通知される。また、ユーザ端末２でも同様にして、ルータＲ５、ルータＲ４、ルータＲ３の通路設定が必要と判断される。そして、ルータＲ５、ルータＲ４、ルータＲ３の通路設定が実行され、ＮＡＴの設定したルータＲ５のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末１に通知される。
【０２０８】
（２）同一ルータ配下の通信の場合
図５４〜図５８は、同一のホームネットワークに属するユーザ端末間で通信する場合の例である。
（２−１）構成例１
図５４の構成例１では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）を取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）を取得する。そして、ユーザ端末１（Ｔ１）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とユーザ端末自身のアドレスＡＴ１を通知する。ユーザ端末２（Ｔ２）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とユーザ端末自身のアドレスＡＴ２を通知する。
【０２０９】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のアドレスを比較しようとする。しかし、自身の構成情報の次ルータが存在しないため、通信路設定が必要ないと判断される。この判断に基づき、通信路設定部７１４がユーザ端末１のＩＰアドレスとＰ２Ｐ通信用のポート番号をアクセス先情報としてユーザ端末２に通知する。なお、通信路設定が必要ないと判断した時、ユーザ端末２の次ルータの情報ないことを検出した時、同一ルータ（この場合はＧＲ）に接続していると判断して、各ユーザ端末のアドレスが同一アドレス空間であるかを検証して、もし同一アドレス空間にない場合には接続不能と判断するようにしても良い。
【０２１０】
また、ユーザ端末２でも同様の手順で通信路設定が必要ないと判断され、通信路設定部７１４がユーザ端末２のＩＰアドレスとＰ２Ｐ通信用のポート番号をアクセス先情報としてユーザ１に通知する。
（２−２）構成例２
図５５の構成例２では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）を取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とを取得する。そして、ユーザ端末１（Ｔ１）は、構成例１と同様にアドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とユーザ端末自身のアドレスＡＴ１を通知する。また、ユーザ端末２（Ｔ２）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレスＡＴ２を通知する。
【０２１１】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のアドレスを比較しようとする。しかし、自身の構成情報の次ルータが存在しないため、通信路設定が必要ないと判断される。この判断に基づき、通信路設定部７１４がユーザ端末１のＩＰアドレスとＰ２Ｐ通信用のポート番号をアクセス先情報としてユーザ端末２に通知する。ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のアドレスを比較しようとする。しかし、自身の構成情報の次ルータが存在しないため、通信路設定が必要ないと判断される。この判断に基づき、通信路設定部７１４がユーザ端末１のＩＰアドレスとＰ２Ｐ通信用のポート番号をアクセス先情報としてユーザ端末２に通知する。
【０２１２】
また、ユーザ端末２のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末１から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のアドレスを比較しようとする。しかし、自身の構成情報の次ルータ（Ｒ１）が存在するが、ユーザ端末１から通知されたアドレス情報に次ルータの情報が存在しないため、ルータＲ１の通信路設定が必要と判断される。この判断に基づき、通信路設定部７１４がルータＲ１の通路設定が実行され、ＮＡＴの設定したルータＲ１のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末１に通知される。
（２−３）構成例３
図５６の構成例３では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とを取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）ルータＲ５（Ｒ５）のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とを取得する。そして、ユーザ端末１（Ｔ１）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレスＡＴ１を通知する。また、ユーザ端末２（Ｔ２）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）ルータＲ５（Ｒ５）のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とユーザ端末自身のアドレスＡＴ２を通知する。
【０２１３】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のルータの情報を比較する。次ルータの比較では、自身の構成情報ではルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とユーザ端末２から通知されたアドレス情報のルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）が比較され、両者が一致しないことが検出される。結果として、Ｐ２Ｐ通信判断部７１３はルータＲ２以下の各ルータであるルータＲ２とルータＲ１の通信路設定が必要であると判断する。
ユーザ端末２のＰ２Ｐ通信判断部７１３は、同様にルータＧＲのＷＡＮ側アドレス同士の比較を実行した後に、ルータＲ５とルータＲ２のＷＡＮ側アドレスの比較を実行し、両者が一致しないことを検出し、ルータＲ５以下の各ルータであるルータＲ５とルータＲ４とルータＲ３の通信路設定が必要であると判断する。
【０２１４】
（２−４）構成例４
図５７の構成例４では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とを取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）ルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とを取得する。そして、ユーザ端末１（Ｔ１）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレスＡＴ１を通知する。また、ユーザ端末２（Ｔ２）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）ルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とユーザ端末自身のアドレスＡＴ２を通知する。
【０２１５】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のルータであるルータＲ２のＷＡＮ側アドレスを比較する。この情報も一致するため、次のルータであるルータＲ１のＷＡＮ側アドレスを比較する。そして、これが一致するため、次のルータを比較しようとし、自身の構成情報の次ルータが存在しないため、通信路設定が必要ないと判断される。この判断に基づき、通信路設定部７１４がユーザ端末自身のＩＰアドレスとＰ２Ｐ用のポート番号をアクセス先情報としてユーザ端末１に通知する。
ユーザ端末２のＰ２Ｐ通信判断部７１３は、同様にルータＧＲのＷＡＮ側アドレスが一致するため、ルータＲ２のＷＡＮ側アドレス、ルータＲ１のＷＡＮ側アドレスの順に比較を実行する。そして、次のルータのＷＡＮ側アドレスを比較しようとする。しかし、自身の構成情報の次ルータ（Ｒ３）が存在するが、ユーザ端末１から通知されたアドレス情報に次ルータの情報が存在しないため、ルータＲ３の通信路設定が必要と判断される。この判断に基づき、通信路設定部７１４がルータＲ３の通路設定が実行され、ＮＡＴの設定したルータＲ３のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末１に通知される。
【０２１６】
（２−５）構成例５
図５８の構成例５では、ユーザ端末１は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とを取得する。一方、ユーザ端末２は、ホームネットワーク構成としてインターネットと自端末との間に位置するルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とを取得する。そして、ユーザ端末１（Ｔ１）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とユーザ端末自身のアドレスＡＴ１を通知する。また、ユーザ端末２（Ｔ２）は、アドレス情報交換メッセージでルータＧＲ（ＧＲ）のＷＡＮ側アドレス（ＡＧＲＷ）とルータＲ３のＷＡＮ側アドレス（ＡＲ３Ｗ）とルータＲ２のＷＡＮ側アドレス（ＡＲ２Ｗ）とルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ４のＷＡＮ側アドレス（ＡＲ４Ｗ）とユーザ端末自身のアドレスＡＴ２を通知する。
【０２１７】
ユーザ端末１のＰ２Ｐ通信判断部７１３は、自身の構成情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスとユーザ端末２から通知されたアドレス情報の最上位ルータ（ＧＲ）のＷＡＮ側アドレスを比較し両者が一致するため、次のルータであるルータＲ３のＷＡＮ側アドレスを比較する。この情報も一致するため、次のルータであるルータＲ２のＷＡＮ側アドレスを比較する。そして、これが一致するため、次ルータの情報を比較により、ルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）とルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）が比較され不一致であることが検出される。この結果、ユーザ端末１のＰ２Ｐ通信判断部７１３は、ルータＲ１に対して通信経路の設定が必要と判断する。この判断に基づき、通信路設定部７１４がルータＲ１の通路設定が実行され、ＮＡＴの設定したルータＲ１のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末２に通知される。
【０２１８】
また、ユーザ端末２のＰ２Ｐ通信判断部７１３は、同様に最上位ルータ（ＧＲ）のＷＡＮ側アドレス、ルータＲ３のＷＡＮ側アドレス、ルータＲ２のＷＡＮ側アドレスを順次比較し、ルータＲ５のＷＡＮ側アドレス（ＡＲ５Ｗ）とルータＲ１のＷＡＮ側アドレス（ＡＲ１Ｗ）が比較され、不一致であることが検出される。その結果、ユーザ端末２のＰ２Ｐ通信判断部７１３は、ルータＲ５以下の各ルータであるルータＲ５とルータＲ４に対して通信経路の設定が必要と判断する。この判断に基づき、通信路設定部７１４によりルータＲ５とルータＲ４の通路設定が実行され、ＮＡＴの設定したルータＲ５のＩＰアドレスとポート番号がアクセス先情報としてユーザ端末１に通知される。
＜アドレス情報交換で送信されるアドレス情報＞
次に、アドレス情報交換で送信されるアドレス情報の別の例を説明する。アドレス情報交換で送信されるアドレス情報として、図４５に示すように、ユーザ端末自身のアドレスを入れるようにしている。しかし、ユーザ端末自身のアドレスを入れず、同一ルータ配下時にアドレス空間が一致しているかの確認は、アクセス先情報メッセージ取得時に行うようにしても良い。
【０２１９】
また、図５９（ａ）ように、アドレス情報メッセージにルータのＬＡＮ側アドレスも同時に送信するようにし、ＷＡＮ側アドレスが取得できなかったルータについては、ＬＡＮ側アドレスの比較で代用するようにしても良い。だだし、この場合にはアドレスが一致しても同一ルータとは明確にはいえなくなる。
また、アドレス情報交換ではルータのＷＡＮ側アドレス情報を送信するようにしているが、このルータのＷＡＮ側アドレス情報はルータを識別するための情報であり、他のプロトコルで取得できるルータの識別番号等（たとえば、ＵＰｎＰでのＵＵＩＤ等）の情報でも良い。
また、アドレス情報メッセージに、図５９（ｂ）のようにＰ２Ｐサーバを利用してユーザ端末に割り当てられているグローバルアドレスを取得し、そのアドレスもアドレス情報で通知するようにしても良い。このようにすることで、Ｐ２Ｐ通信判断部７１３がルータのＷＡＮ側アドレスを順に比較する前に、まずこのグローバルアドレスを比較するようにすることで、真の最上位ルータのＷＡＮ側アドレスが取得できていないために、Ｐ２Ｐ通信判断部７１３が誤った判定を行うことを避けることが可能となる。
【０２２０】
ここで、Ｐ２Ｐサーバを利用してユーザ端末に割り当てられているグローバルアドレスを取得する方法は、たとえば、ユーザ端末からグローバルアドレス取得を要求するメッセージをＰ２Ｐサーバに送信し、このメッセージを受信したＰ２Ｐサーバが本メッセージの送信元情報（ＩＰアドレス、ポート番号）をペイロードにセットした応答メッセージを送信することで実行可能である。
また、図５９（ｃ）のように、ユーザ端末の電源ＯＮ時等に予め最上位ルータまでの通信路設定を行っておき、アドレス情報交換時に各ルータに設定している通信路の情報（ＮＡＴの設定を行っているポート番号）を合わせて送信するようにしても良い。このようにすることで、Ｐ２Ｐ通信判断部７１３が通信路設定が必要なルータを判断すると同時に、アクセス先もわかるため、アクセス先情報の交換フェーズが必要なくなり高速な動作が可能となる。
【０２２１】
（作用効果）
この通信装置では、多段のルータから構成されるネットワークでもルータ構成を把握することで、ＮＡＴ設定及びファイアウォール設定などの通信路設定を行うことができる。このように通信路が設定されることで、一方または両方の通信装置がホームネットワーク内において多段のルータを介して接続されている場合でも、通信装置間でのＰ２Ｐ通信が可能となる。
〈第８実施形態：通信機器の設定を行う場合〉
以下に、本発明の第８実施形態について図に基づいて説明する。
（全体構成）
図６０は、本発明の第８実施形態に係るホームネットワークの構成を示している。ホームネットワーク７００２では複数のルータが多段に接続されている。通信装置７５０は、ホームネットワークの状態を検出するためのネットワーク構成検出装置として機能している。
【０２２２】
図６０において、インターネット７００１とホームネットワーク７００２とが接続されている。ホームネットワーク７００２では、第１ルータ７２０、第２ルータ７３０、第３ルータ７４０が多段に接続されており、第３ルータ７４０の配下にネットワーク構成検出装置として機能する通信装置７５０が接続されている。また、第１ルータ７２０は、ＷＡＮ側通信Ｉ／Ｆ７２０１を介してインターネット７００１に接続されており、ＬＡＮ側通信Ｉ／Ｆ７２０２を介して第２ルータ７３０及び通信機能を有する第１通信機器７６０に接続されている。第１ルータ７２０のＬＡＮ側通信Ｉ／Ｆ７２０２は、第２ルータ７３０のＷＡＮ側通信Ｉ／Ｆ７３０１及び第１通信機器７６０のＷＡＮ側通信Ｉ／Ｆ７６０１とともに同一階層のネットワークを構成している。
第２ルータ７３０は、ＷＡＮ側通信Ｉ／Ｆ７３０１を介して第１ルータ７２０に接続されるとともに、ＬＡＮ側通信Ｉ／Ｆ７３０２を介して第３ルータ７４０、第２通信機器７６５に接続されている。第２ルータ７３０のＬＡＮ側通信Ｉ／Ｆ７３０２、第３ルータ７４０のＷＡＮ側通信Ｉ／Ｆ７４０１、第２通信機器７６５のＷＡＮ側通信Ｉ／Ｆ７６０５が同一階層のネットワークを構成している。
【０２２３】
第３ルータ７４０は、ＷＡＮ側通信Ｉ／Ｆ７４０１を介して第２ルータ７３０に接続されるとともに、ＬＡＮ側通信Ｉ／Ｆ７４０２を介して、通信装置７５０、通信機能を有する第３通信機器７７０に接続されている。第３ルータ７４０のＬＡＮ側通信Ｉ／Ｆ７４０２、通信装置７５０のＷＡＮ側通信Ｉ／Ｆ７５０１、第３通信機器７７０のＷＡＮ側通信Ｉ／Ｆ７６１０が同一階層のネットワークを構成している。
ここで、無線ＬＡＮによるネットワークを含む構成とすることが可能であり、たとえば、第２ルータ７３０のＬＡＮ側通信Ｉ／Ｆ７３０２として無線ＬＡＮインターフェイスを備える構成とした場合、第２通信機器７６５と第２ルータ７３０との接続を無線ＬＡＮによるネットワーク構成とすることができる。
（通信装置の構成）
図６１は、通信装置７５０の構成を示す機能ブロック図である。通信装置７５０は、ＴＴＬ調節部７８１、パケット送信部７８２、アドレス生成部７８３、ルータ把握部７８４、アドレス把握部７８５、パケット受信部７８６、機器把握部７８７、表示部７８８、ＩＰ処理部７８９を備えている。
【０２２４】
まず、ＴＴＬ調節部７８１は、ネットワークに存在するルータを検出するために、ＴＴＬの値を調節しながらＩＣＭＰの探索パケットを作成する。ここでは、ホームネットワーク内に存在するルータを検出するために、ＴＴＬの値を１〜３程度の値で調節して探索パケットを生成する。パケット送信部７８２は、生成された探索パケットを、適当に設定されたアドレス先（たとえば、インターネット上のアドレス）へＩＰ処理部７８９を介して送信する。ここで、探索パケットとしては、ルータを発見するためのルータディスカバリ用パケット及びルータに接続される通信機器を発見するための機器ディスカバリ用パケットが含まれる。
パケット受信部７８６は、パケット送信部７８２から送信した探索パケットに対する応答パケットを、ＩＰ処理部７８９を介して受信する。
【０２２５】
アドレス把握部７８５は、パケット受信部７８６が受信した応答パケットを受信する。そして、アドレス把握部７８５は、その応答パケットに基づいて、ホームネットワーク内のルータや通信機器のアドレスを抽出する。アドレス把握部７８５は、ルータのアドレスをルータ把握部７８４に送出し、各通信機器のアドレスを機器把握部７８７に送出する。
アドレス生成部７８３は、アドレス把握部７８５で抽出したルータや通信機器のアドレスに基づいて、パケットの送信先となるアドレスを生成する。
ルータ把握部７８４は、取得したルータアドレスに基づいてそのルータに関する情報を把握する。同様に、機器把握部７８７は、取得した通信機器アドレスに基づいてその通信機器に関するプロパティ情報を把握する。ここで、機器把握部７８７は、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）などより、ＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）情報を参照して通信機器を判別する。
【０２２６】
表示部７８８は、ルータ把握部７８４で検出されたルータの情報および機器把握部７８７で検出された通信機器の情報を表示する。
（処理の流れ）
以上のように構成されたホームネットワーク７００２に接続される通信装置７５０の動作について以下に説明する。図６２は、通信装置７５０の動作を示すフローチャートの一例である。
（１）ルータの把握及び表示
まず、ルータの把握及び表示の処理について説明する。
ステップＳ７００、Ｓ７０１：この処理を開始すると、通信装置７５０のＴＴＬ調節部７８１は、ＴＴＬ調節部７８１によりＴＴＬの値を初期化し（Ｓ７００）、さらにＴＴＬの値をインクリメントする（Ｓ７０１）。ＴＴＬは、送信パケットが設定誤りにより無限ループとなることを防止するために設定されるものである。ＴＴＬを設定することで、パケットの有効期間を表すようにしている。
【０２２７】
ステップＳ７０２：ＴＴＬ調節部７８１は、ＴＴＬの値が所定値を超えているか否かを判別する。ＴＴＬ調節部７８１がＴＴＬの値が予め設定された所定値以下であると判断した場合は、ステップＳ７０３の処理に進む。一方、ＴＴＬ調節部７８１が所定値を超えていると判断した場合には、ルータ検出の処理を終了してステップＳ７０９の処理に進む。
ステップＳ７０３：ステップＳ７０２においてＴＴＬの値が予め設定された所定値を超えていない場合は、パケット送信部７８２はＩＰ処理部７８９を介してルータを検出するための探索パケットを送出する。探索パケットを受信したルータは、探索パケットを通過させる際にＴＴＬの値をデクリメントしてその値が“０”になった場合には、Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄメッセージパケットを送信元に返信する。
ステップＳ７０４、Ｓ７０５：通信装置７５０のパケット受信部７８６は、ルータが返信した応答パケットを受信する（Ｓ７０４）。アドレス把握部７８５は、パケット受信部７８６が受信した応答パケットを解析し、応答パケットを送信してきたルータのＬＡＮ側アドレスを取得する。
【０２２８】
ステップＳ７０６：アドレス把握部７８５は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判別する。
ステップＳ７０７、Ｓ７０８：アドレス把握部７８５は、ルータのＬＡＮ側アドレスがローカルアドレスであると判断した場合、それがネットワーク上に存在するルータであると認識する。そして、ルータ把握部７８４は、そのルータにアクセスしてルータの情報を取得する（Ｓ７０７）。ルータ把握部７８４は、ネットワーク内のルータに関する情報を表示部７８８に出力し、表示部７８８はそのルータを画面上に表示する（Ｓ７０８）。ここで、アドレス把握部７８５は、取得したルータのＬＡＮ側アドレスに基づいて、このルータのＷＡＮ側アドレスを取得するための取得要求パケットを該当するルータ宛に送信する。そして、アドレス把握部７８５は、このルータから応答パケットを受信してＷＡＮ側アドレスを取得して、このルータを把握する。ここで、ルータ把握部７８４は、ＳＮＭＰなどより、ＭＩＢ情報を参照して機器を判別することができる。
【０２２９】
この後、再度ステップＳ７０１に戻り、ＴＴＬ調節部７８１によりＴＴＬの値をインクリメントする。そして、探索パケットの送信および応答パケットの受信を行って、ネットワーク上のルータを把握することを繰り返す。
（２）通信機器の把握及び表示
次に、通信機器の把握及び表示の処理について説明する。
ステップＳ７０９：アドレス把握部７８５は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであると判断した場合、このルータがホームネットワーク外のインターネット上のルータであると認識する。そして、アドレス把握部７８５は、アドレス生成部７８２にルータ探索用のアドレスの生成中止を指示し、ルータの検索処理を中止させる。一方、アドレス把握部７８５は、アドレス生成部７８２にルータに接続される通信機器を探索するためのアドレス生成を指示する。
【０２３０】
アドレス生成部７８２は、アドレス把握部７８５が取得したルータのＬＡＮ側のアドレスから検索対象となる通信機器のアドレスを生成する。ホームのネットワークで使われるアドレスは様々なクラス（クラスＡ、クラスＢ，クラスＣ）があるが、例としてクラスＣを用いることとすると、取得したルータのＬＡＮ側のアドレスの下位８ビット長を１〜２５４の間で変化させることにより、ルータに接続された通信機器のアドレスを推測することができる。したがって、アドレス生成部７８３は、取得したルータのＬＡＮ側アドレスに基づいて通信機器のアドレスを推測して生成する。
なお、ネットワークがクラスＣ以外のクラスＡ、クラスＢなどのアドレスクラスであるような場合には、これらのクラスに応じて通信機器のアドレスを推測するように構成できる。
【０２３１】
ステップＳ７１０：パケット送信部７８２は、アドレス生成部７８３で生成したアドレスを宛先として通信機器を検出するための探索パケットを生成して送信する。
パケット送信部７８２が送信した探索パケットに対応する通信機器がホームネットワーク７００２上に存在する場合、対応する通信機器は探索パケットに対する応答パケットを送信する。したがって、パケット受信部７８６は通信機器からの応答パケットを受信し、アドレス把握部７８５は応答パケットから通信機器のアドレスを取得する。なお、通信機器を検索するパケットとして、ＩＣＭＰパケット以外に、ＩＰアドレスから物理層のネットワークアドレスを要求するためのＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを用いることもできる。
ステップＳ７１１、Ｓ７１２：パケット受信部７８６は、送信した探索パケットに対して通信機器からの応答パケットを受信する（Ｓ７１１）。次に、アドレス把握部７８５は、応答パケットから通信機器のアドレスを取得したか否かを判別する（Ｓ７１２）。機器アドレス取得している場合はステップＳ７１３に進行し、取得していない場合はステップＳ７１５に進行する。
【０２３２】
ステップＳ７１３：機器把握部７８７は、取得した通信機器のアドレスに基づいて通信機器に関する通信機器情報を取得する。
ステップＳ７１４：機器把握部７８７は取得した通信機器の情報を表示部７８８に出力し、表示部７８８はその通信機器の情報を表示する。
ステップＳ７１５、Ｓ７１６：アドレス把握部７８５は、次の探索パケットのためのアドレスを生成するか否かを判別する（Ｓ７１５）。ここでは、ルータの配下に接続されている通信機器のアドレスと推測されるアドレスについて全て検索を終了したと判断した場合、検索終了処理（Ｓ７１６）を実行する。一方、アドレス把握部７８５は、さらにアドレスを生成して検索を行う場合には次のアドレス生成の指示をアドレス生成部７８３に指示する。この指示により、アドレス生成部７８３はアドレスの生成を行う（Ｓ７０９）。これにより通信機器の検索が続行される。
【０２３３】
以上のような構成により、通信装置７５０は、ルータへのＴＴＬの値を変化させた探索パケットの送信により、図６０の第３ルータ７４０のＬＡＮ側通信Ｉ／Ｆ７４０２、第２ルータ７３０のＬＡＮ側通信Ｉ／Ｆ７３０２、第１ルータ７２０のＬＡＮ側通信Ｉ／Ｆ７２０２のアドレスをそれぞれ取得することができる。
（ルータのアドレスの取得）
このようなネットワーク内のルータ構成を取得する方法について、図６３に基づいて説明する。図６３は、ルータの検出方法を説明するための説明図である。
例えば、ＴＴＬを１に設定したＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲ１を通信装置７５０から送信すると、第３ルータ７４０を通過しようとする時点でＴＴＬが０になる。そして、第３ルータ７４０は、送信元である通信装置７５０に対して、ＩＣＭＰのＴｉｍｅ  ＥｘｃｅｅｄｅｄメッセージパケットＴＥ１を返信する。
【０２３４】
次に、ＴＴＬを２及び３に設定したＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲ２及びＥＲ３を通信装置７５０から送信すると、このメッセージパケットＥＲ２は及びＥＲ３それぞれ第２ルータ７３０及び第１ルータ７２０まで届く。そして、第２ルータ７３０及び第１ルータ７２０は、それぞれＩＣＭＰのＴｉｍｅ  ＥｘｃｅｅｄｅｄメッセージパケットＴＥ２及びＴＥ３を通信装置７５０に対して返信する。
また、通信装置７５０からＴＴＬの値が異なる複数のＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットを同時に並列して送信することも可能である。たとえば、ＴＴＬの値が１〜３であるような３つのＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲ１〜ＥＲ３を通信装置７５０から同時に並列に送信する。この場合、ＴＴＬ＝１に設定したパケットＥＲ１は第３ルータ７４０まで届き、ＴＴＬ＝２に設定したパケットＥＲ２は第２ルータ７３０まで届き、ＴＴＬ＝３に設定したパケットＥＲ３は第１ルータ７２０まで届く。そして、それぞれのルータからＩＣＭＰのＴｉｍｅ  ＥｘｃｅｅｄｅｄメッセージパケットＴＥ１〜ＴＥ３が通信装置７５０に対して返信されることとなる。
【０２３５】
通信装置７５０から送信されたＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲに対して、ルータから返信されてくる応答パケットＴＥの送信元アドレスが、各ルータのＬＡＮ側アドレスを示す。
ここでは、ＴＴＬ＝１に設定して通信装置７５０から送信されたＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲ１に対する応答パケットＴＥ１の送信元アドレスが、第３ルータ７４０のＬＡＮ側アドレスになる。同様に、応答パケットＴＥ２及びＴＥ３の送信元アドレスが、第２ルータ７３０及び第１ルータ７２０のＬＡＮ側アドレスとなる。これにより、ネットワーク上にある各ルータのＬＡＮ側アドレスを把握することが可能となる。
ここで、通信装置７５０は、複数のＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットを同時に送信する際に、ＴＴＬの値をインクリメントするのと同時に、シーケンス番号をインクリメントしてパケットを作成し、作成したＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔを送信する。通信装置７５０は、ルータから送信されるＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ  Ｍｅｓｓａｇｅパケットを受信して、この受信したパケットに含まれるＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージのシーケンス番号を用いて、送信時に指定したＴＴＬの値を特定することが可能となる。
【０２３６】
（通信機器のアドレスの取得）
ネットワーク内の通信機器の構成を取得する方法について、図６０及び図６４に基づいて説明する。図６４は、ルータに接続される通信機器の検出方法を説明するための説明図である。なお、図６４では、第１通信機器の検出方法のみを示している。
ホームのネットワークでは、様々なアドレス（クラスＡ，クラスＢ，クラスＣ）が用いられている。たとえば、クラスＣのアドレスを用いている場合を例として、各ルータのＬＡＮ側アドレスからそのルータに接続されている通信機器のアドレスを検出する方法を図６４に基づいて説明する。
通信装置７５０のアドレス生成部７８３は、前述の図６３に示したような方法でルータのＬＡＮ側アドレスから、そのルータに接続されている通信機器のアドレスを推測する。たとえば、取得したルータのＬＡＮ側アドレスがクラスＣであるとすると、アドレス生成部７８３は、ＬＡＮ側アドレスの下位の８ビットを１〜２５４の間で変化させることにより、ルータに接続されていると考えられる通信機器のアドレスを推測して生成する。例えば、次のようにアドレスを推測する。
【０２３７】
なお、図６０及び図６４に示すように、第１ルータ７２０とインターネット７００１との接続関係を第１ネットワーク７１１、第１ルータ７２０のＬＡＮ側ネットワークを第２ネットワーク７１２、第２ルータ７３０のＬＡＮ側ネットワークを第３ネットワーク７１３、第３ルータ７４０のＬＡＮ側ネットワークを第４ネットワーク７１４とする。
第２ネットワーク７１２に接続されている第１通信機器７６０のアドレスは、第１ルータ７２０のＬＡＮ側アドレスと同一クラスである。また、その通信機器のアドレスは、そのアドレスクラスに設定されたネットマスクを除く下位ビットを変化させた値に設定されているはずである。第１ルータ７２０のＬＡＮ側アドレスをクラスＣとした場合、下位の８ビット長を１〜２５４の間で変化させたアドレスを生成する。これにより、第２ネットワーク７１２上に存在する第１通信機器７６０のアドレスを網羅することができる。ここで生成したアドレスに対して、通信装置７５０からＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔのメッセージパケットを送信する。また、生成したアドレスが第２ネットワーク７１２上に存在する第１通信機器７６０のアドレスであれば、第１通信機器７６０は応答パケットであるＩＣＭＰのＥｃｈｏ  Ｒｅｐｌｙメッセージパケットを正常に返信する。このようにすることで、このアドレスを第１通信機器７６０のアドレスに特定することができる。なお、通信機器のアドレスを生成するとき、クラスＣ以外のクラスＡやクラスＢでもよい。
【０２３８】
通信機器のアドレスを特定することができた場合、通信装置７５０からアドレスを特定できた通信機器に対して、ＳＮＭＰなどを用いてアクセスを行い、各通信機器のプロパティ情報を取得することができる。ここで、プロパティ情報としては、機器のＬｏｃａｔｉｏｎ、ユーザフレンドリーネーム、機器の状態、アイコン状態、型番など機器に関連づけられた情報を指す。
なお、各通信機器のプロパティ情報を取得する際にＳＮＭＰを用いたが、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）を用いて、デバイスのディスクリプションや、アクション要求によりプロパティ情報を取得しても良い。
通信装置７５０から送信したＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔのメッセージパケットに対して、ＩＣＭＰのＥｃｈｏ  Ｒｅｐｌｙメッセージの応答がない場合、アドレスを変更し、同様にしてＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットを送信する。
【０２３９】
また、通信装置７５０からＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔのメッセージパケットを送信する際に、アドレス解決に失敗し正常にメッセージパケットが送信できない場合も、アドレスを変更し、ＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットを送信する。
また、アドレス生成部７８３はアドレス把握部７８５の指示に基づき、逐次アドレスを生成し、パケット送信部７８２が逐次送信するものとして説明したが、アドレス生成部７８３が複数のアドレス生成を一度に行い、パケット送信部７８２が生成された複数のアドレス宛に探索パケットを同時に送信しても良い。たとえば、第１ルータ７２０のＬＡＮ側アドレスがクラスＣの場合、アドレス生成部７８３が下位の８ビット長を１〜２５４の間で変化させたアドレスを１度に生成し、パケット送信部７８２が生成されたアドレス宛に探索パケットを一度に送信するようにしても良い。
【０２４０】
（具体例）
図６５は、ホームネットワークの具体的構成例を示す説明図である。ホームネットワーク内において、第１、第２及び第３ルータ７２０、７３０、７４０が多段に接続されている。また、第２ルータ７３０には通信機能を有するＤＶＤ及びカメラが接続されており、第３ルータ７４０には通信機能を有するテレビが接続されている。
通信装置７５０は、第３ルータ７４０のＬＡＮ側アドレス“１９２．１６８．０．１”を取得すると、この第３ルータ７４０に接続されている通信機器のアドレスを推測して探索パケットを送信する。そして、通信装置７５０は、テレビから送信されてくる応答パケットから通信機器のアドレス“１９２．１６８．０．５”を取得することができる。通信装置７５０は、この通信機器のアドレスに対して機器情報を要求するパケットを送信して、応答パケットを受信する。これにより、この通信機器がテレビであるという機器情報を取得することができる。
【０２４１】
また、通信装置７５０は、第２ルータ７３０のＬＡＮ側アドレス“１９２．１６８．５．２”を取得すると、この第２ルータ７３０に接続されている通信機器のアドレスを推測して探索パケットを送信する。そして、通信装置７５０は、通信機器からの応答パケットを受信することによりそれぞれのアドレスである“１９２．１６８．５．１０”、“１９２．１６８．５．１３”を取得することができる。また、通信装置７５０は、通信機器のアドレスに対して通信装置７５０から要求パケットを送信して、それぞれの機器情報を取得することができる。この結果、通信装置７５０は、第２ルータ７３０に接続されている通信機器がＤＶＤレコーダ及びカメラであるという機器情報を得ることが可能となる。同様にして、通信装置７５０は、第１ルータ７２０の配下に接続された通信機器のアドレスおよび機器情報を取得することが可能となる。
【０２４２】
また、通信装置７５０は、第１ルータ７２０がインターネットと接続されているインターフェース７０１１のグローバルアドレスを検出すると、ルータの検索処理を中止する。このことにより、通信装置７５０は、ホームネットワークのみのネットワーク構成を検出するように構成することができる。
通信装置７５０が以上のように取得した各ルータ及び通信機器の情報を画面に表示することで、ユーザは、ルータが多段に存在するネットワークでもネットワーク構成を把握することができる。図６６は、通信装置の表示部により表示されるネットワーク構成の一例である。図６６に示すように、表示画面には各ルータ及び各通信機器の接続構成が示される。また、各ルータについて、設置場所、電源のＯＮ／ＯＦＦ状態、及びＬＡＮ側ＩＰアドレスが示されている。また、各通信機器について、設置場所、電源のＯＮ／ＯＦＦ状態、及びＩＰアドレスが示されている。
【０２４３】
なお、この実施形態において、図６２ではＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットの処理に関して、複数のＩＣＭＰのＥｃｈｏ  Ｒｅｑｕｅｓｔメッセージパケットを同時に送信し、ルータのＬＡＮ側アドレスを把握しても良い。
なお、本実施形態では、機器検索パケットでも１つのパケットを処理していたが、複数の機器検索パケットを同時に送信した後、機器からの応答を待つようにしても良いのは自明である。
さらに、ルータを検出するために、ＩＣＭＰパケットを用いたが、ＵＤＰでも可能である。ＵＤＰを用いた場合、ＴＴＬを変化させるとともに、宛先アドレス又はポート番号を変化させることでＩＣＭＰと同様な制御が可能になる。
（作用効果）
上記の通り、通信装置は、ＴＴＬを変数とするルータディスカバリ用パケットを送信することでホームネットワーク内のルータのルータアドレスを取得することができる。さらに、通信装置は、このルータアドレスに基づいて通信機器を探索するパケットを送信することで、ルータに接続される通信機器のアドレスを取得することができる。またこれらのルータ及び通信機器にアクセスして取得した情報を表示することにより、ユーザは、多段のルータで構成されるホームネットワーク内においてもネットワーク構成を把握することができる。
【０２４４】
〈第９実施形態〉
以下に本発明の第９実施形態について、図を参照しながら説明する。
（全体構成）
図６７は、本発明の第９実施形態における装置全体の構成を示しており、ホームのネットワークにおいて、多段にルータで接続されているネットワークの構成図を示す。
図６７において、インターネット８００１とホームネットワーク８００２とが接続されている。ホームネットワーク８００２では、第１ルータ８２０、第２ルータ８３０、第３ルータ８４０が多段に接続されており、第３ルータ８４０の配下にネットワーク構成検出装置として機能する通信装置８５０が接続されている。また、第１ルータ８２０には第１通信機器８６０が接続されており、第２ルータ８２０には第２通信機器８６５が接続されている。ここで、各ルータ及び通信機器は、ＬＡＮ側ＩＦ通信及びＷＡＮ側ＩＦ通信８２０１、８２０２、８３０１、８３０２、８４０１、８４０２、８５０１、８６０１、８６０５を介して互いに接続されている。
【０２４５】
（通信装置の構成）
図６８は、通信装置の構成を示す機能ブロック図である。通信装置７５０は、通常のコンピュータで構成されており、例えばネットワーク構成検出方法のプログラムがＲＡＭ上に展開されることにより、ネットワーク構成検出装置を構成する。
通信装置７５０は、アドレス生成部８８１、パケット送信部８８２、パケット受信部８８６、アドレス把握部８８５、ルータ把握部８８４、表示部８８８、機器把握部８８７、ＩＰ処理部８８９を備えている。
（処理の流れ）
以上のように構成されたホームネットワーク８００２に接続される通信装置８５０の動作について以下に説明する。図６９は、通信装置７５０の動作を示すフローチャートの一例である。
【０２４６】
（１）ルータの把握及び表示
まず、ルータの把握及び表示の処理について説明する。
ステップＳ８００〜Ｓ８０２：通信装置８５０のパケット送信部８８２は、直接接続されているルータのＬＡＮ側アドレスを把握するために、ルータを検索するためのパケットを送信する（Ｓ８００）。パケット受信部８８６は、送信したパケットに対する応答パケットを受信する（Ｓ８０１）。アドレス把握部８８５は、応答パケットからルータのＬＡＮ側アドレスを取得する（Ｓ８０２）。
ステップＳ８０３：アドレス把握部８８５は、ＬＡＮ側アドレスを取得し、そのＬＡＮ側アドレスからルータのＷＡＮ側アドレスを取得する。
ステップＳ８０４：アドレス把握部８８５は、ネットワーク上に存在するルータを探索するか、ルータ配下に接続された通信機器を探索するかを判断する。
【０２４７】
ステップＳ８０５：ルータの探索を行う場合には、アドレス生成部８８１は、ルータのＷＡＮ側アドレスを拠り所にして、よりＷＡＮ側に位置する上位ルータのＬＡＮ側アドレスを推測してアドレスを生成する。ここで、ホームのネットワークで使われるアドレスのクラスは、クラスＡ、クラスＢ、クラスＣなどがある。クラスＣのアドレスを使用している場合には、ルータのＷＡＮ側アドレスの下位８ビットを１〜２５４の間で変化させることで、上位ルータのＬＡＮ側アドレスを推測して生成することができる。
ステップＳ８０６：パケット送信部８８２は、上位ルータのＬＡＮ側アドレスを把握するために、アドレス生成部８８１が作成したアドレス宛へルータ検索のための探索パケットを送信する。ここで、ルータを検索するための探索パケットに関しては、作成したアドレス宛にＵＰｎＰの機器検索パケットとしてＭ−ＳＥＡＲＣＨをユニキャストで送信することができる。
【０２４８】
ステップＳ８０７：パケット受信部８８６は、探索パケットを送信してから一定の時間が経ってもルータからの応答がなければ、作成されたアドレス宛にルータが存在しないと判断する。このとき、アドレス生成部８８１は再びアドレスを生成し（Ｓ８０５）、パケット送信部８８２は生成されたアドレス先へ探索パケットを送信する（Ｓ８０６）。
ステップＳ８０８：パケット受信部８８６は、応答パケットを受信すると、受信した応答パケットをアドレス把握部８８５に渡す。アドレス把握部８８５は、応答パケットからルータのＬＡＮ側アドレスを取得する。
アドレス生成部８８１、パケット送信部８８２、アドレス把握部８８５等は、検索対象としているルータを検出するまで繰り返し処理を実行する。
ステップＳ８０９：アドレス把握部８８５は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判別する。アドレス把握部８８５は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであると判断した場合、この検索処理を終了させる。
【０２４９】
ステップＳ８１０：アドレス把握部８８５が取得したルータのＬＡＮ側アドレスがローカルアドレスであると判断した場合、ルータ把握部８８４はこのＬＡＮ側のアドレスに基づいてルータの情報を取得してルータを把握する。
ステップＳ８１１：ルータ把握部８８４は、取得したルータの情報を表示部８８８に送信し、表示部８８８はルータの情報を表示する。
この後、取得したルータのＬＡＮ側アドレスからルータのアドレス要求パケットを送信してルータのＷＡＮ側アドレスを取得し（Ｓ８０３）、以下の処理を繰り返す。
（２）通信機器の把握及び表示
次に、通信機器の把握及び表示の処理について説明する。
ステップＳ８１２：通信装置７５０が通信機器の検索を行う場合（Ｓ８０４）、アドレス生成部８８１は、アドレス把握部８８５が取得したルータのＷＡＮ側アドレスに基づいて、通信機器のアドレスを予測するためのアドレスを発生する。アドレス生成部８８１は、ルータの探索と同様に、ルータのＷＡＮ側アドレスを拠り所にして、よりＷＡＮ側に位置する上位ルータと同一階層のネットワークに接続された通信機器のアドレスを推測してアドレスを生成する。前述と同様に、クラスＣのアドレスを使用している場合には、ルータのＷＡＮ側アドレスの下位８ビットを１〜２５４の間で変化させることで、上位ルータ配下に接続された通信機器のアドレスを推測して生成することができる。
【０２５０】
ステップＳ８１３：パケット送信部８８２は、アドレス生成部８８１が生成したアドレスに対して、通信機器を探索するための機器探索パケットを送信する。
ステップＳ８１４：パケット受信部８８６は、送信した機器探索パケットに対する応答パケットを受信したか否かを判別する。パケット受信部８８６が所定時間を経過しても応答パケットを受信しない場合には、アドレス生成部８８１は次の機器探索パケットのためのアドレスを生成する。なお、複数の機器探索パケットを同時に送信することが可能である。
ステップＳ８１５：パケット受信部８８６は、送信した機器探索パケットに対する応答パケットを受信したと判断した場合、アドレス把握部８８５は応答パケットから通信機器のアドレスを取得する。
【０２５１】
ステップＳ８１６：機器把握部８８７は、取得した通信機器のアドレスに基づいてその通信機器のプロパティ情報を取得して記憶する。
ステップＳ８１７：表示部８８８は、取得した通信機器の情報を表示する。
ステップＳ８１８、Ｓ８１９：アドレス把握部８８５は、通信機器のアドレスを予測するために発生可能なアドレスが終了したか否かを判断し（Ｓ８１８）、アドレスが終了したと判断した場合には検索処理を終了させる（Ｓ８１９）。
（ルータ及び通信機器のアドレスの取得）
このようなネットワーク内のルータ構成及び通信機器の構成を取得する方法について、図７０に基づいて説明する。図７０は、ルータの検出方法を説明するための説明図である。
【０２５２】
通信装置８５０は、検索対象としているデバイスとしてルータを指定し、ＵＰｎＰによるＭ−ＳＥＡＲＣＨ要求をマルチキャスト送信する。通信経路上にルータが存在すると、通信装置８５０から送信したパケットに対してルータが応答する。通信装置８５０は、その応答情報から通信装置８５０が直接接続されているルータのＬＡＮ側アドレスを取得することができる。この場合、通信装置８５０では、第３ルータ８４０のＬＡＮ側通信Ｉ／Ｆ８４０２のアドレスを取得することとなる。
次に、通信装置８５０は、第３ルータ８４０のＬＡＮ側アドレスに対して、第３ルータ８４０のＷＡＮ側アドレスを取得するための要求パケットを送信する。通信装置８５０は、第３ルータ８４０からの応答パケットを受信し、第３ルータ８４０のＷＡＮ側アドレスを取得する。ここでは、通信装置８５０から第３ルータ８４０に対して、ＵＰｎＰ  ＩＧＤで規定されているＧｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰ  Ａｄｄｒｅｓｓ要求を行う。そして、第３ルータ８４０から通信装置８５０に対して、Ｇｅｔ  Ｅｘｔｅｒｎａｌ  ＩＰ  Ａｄｄｒｅｓｓ応答パケットが送信されてくると、通信装置８５０はこの応答パケットから第３ルータ８４０のＷＡＮ側アドレスを取得することができる。
【０２５３】
通信装置８５０は、第２ルータ８３０のＬＡＮ側アドレスを推測するために、第３ルータ８４０のＷＡＮ側アドレスの一部を変更したアドレスを生成する。ここで、第２ルータ８３０のＬＡＮ側アドレスは、第３ルータ８４０のＷＡＮ側通信Ｉ／Ｆ８４０１と同じネットワークである第３ネットワーク８０３に存在している。通信装置８５０は、生成したアドレスに対してルータを探索するための探索パケットを送信する。ここで、通信装置８５０は、第２ルータ８３０からの応答パケットを受信することで、検索対象としている第２ルータ８３０をネットワーク上で発見することができる。さらに、通信装置８５０は、応答パケットの受信により、通信装置８５０が作成したアドレスから第２ルータ８３０のＬＡＮ側アドレスであることを把握する。
ここで、通信装置８５０は、生成したアドレスに対してＵＰｎＰのＭ−ＳＥＡＲＣＨ要求のユニキャスト送信を行い、検索対象となるデバイスとしてルータを検索する。通信装置８５０は、ルータを発見するまで、ＬＡＮ側アドレスを生成し、生成されたアドレス宛へＭ−ＳＥＡＲＣＨ要求を送信する。通信装置８５０は、Ｍ−ＳＥＡＲＣＨ応答を受信することによりネットワーク上に存在するルータを発見することができる。
【０２５４】
なお、ルータのＬＡＮ側アドレスを把握する場合と同様に、通信機器に関しても推測したアドレスを生成し、通信機器を検索するための探索パケットを送信する。通信装置８５０は、探索パケットに対する応答パケットを受信することで、生成したアドレス宛先に通信機器が存在することを認識できる。
また、アドレス生成部８８１はアドレス把握部８８５の指示に基づき、逐次アドレスを生成し、パケット送信部８８２が逐次送信するものとして説明したが、アドレス生成部８８１が複数のアドレス生成を一度に行い、パケット送信部８８２が生成された複数のアドレス宛に探索パケットを同時に送信しても良い。たとえば、第１ルータ８２０のＬＡＮ側アドレスがクラスＣの場合、アドレス生成部８８１が下位の８ビット長を１〜２５４の間で変化させたアドレスを１度に生成し、パケット送信部８８２が生成されたアドレス宛に探索パケットを一度に送信するようにしても良い。
【０２５５】
（具体例）
図７１は、ホームネットワークの具体的構成例を示す説明図である。図７１に示すように、通信装置８５０は、直接接続されている第３ルータ８４０のＬＡＮ側アドレス“１９２．１６８．０．１”を認識しているとする。ここで、通信装置８５０は、第３ルータ８４０に接続されている通信機能を有する通信機器のアドレスを推測して探索パケットを送信し、通信機器から送信されてくる応答パケットよりアドレス“１９２．１６８．０．５”を取得することができる。通信装置８５０は、このアドレスに対して機器情報を要求するパケットを送信して、応答パケットを受信する。これにより、たとえば、この通信機器がテレビであるというプロパティ情報を取得することができる。
また、通信装置８５０は、第３ルータ８４０に対してＷＡＮ側アドレスを要求するパケットを送信し、第３ルータ８４０のＷＡＮ側アドレス“１９２．１６８．５．１２”を取得する。通信装置８５０は、この第３ルータ８４０のＷＡＮ側アドレスに基づいて、第２ルータ８３０のＬＡＮ側アドレスおよび通信機器２１０，２２０のアドレスを推測して探索パケットを送信する。そして、通信装置８５０は、通信機器からの応答パケットを受信することにより、“１９２．１６８．５．２”、“１９２．１６８．５．１０”、“１９２．１６８．５．１３”を取得する。また、通信装置８５０は、これらの通信機器のアドレスに対して要求パケットを送信して、それぞれのプロパティ情報を取得することができる。ここで、プロパティ情報は、機器のＬｏｃａｔｉｏｎ、ユーザフレンドリーネーム、機器の状態、アイコン状態、型番である。この結果、通信装置８５０は、通信機器がＤＶＤレコーダ及びカメラであるというプロパティ情報を得ることが可能となる。
【０２５６】
さらに、通信装置８５０は、第２ルータ８３０に対してアドレス要求パケットを送信し、第２ルータ８３０のＷＡＮ側アドレスである“１９２．１６８．１０．１”を取得する。
通信装置８５０は、第２ルータ８３０のＷＡＮ側アドレスに基づいて第１ルータ８２０のＬＡＮ側アドレスを推測し、ルータ探索パケットを送信する。通信装置８５０は、このルータ探索パケットに対する応答パケットを受信することにより、第１ルータ８２０のＬＡＮ側アドレスである“１９２．１６８．１０．５”を取得することができる。
さらに、通信装置８５０は、第１ルータ８２０に対してアドレス要求パケットを送信し、第１ルータ８２０のＷＡＮ側アドレスである“ｘｘｘ．１３１．１３２．１３２”を取得することとなる。この第１ルータ８２０のＷＡＮ側アドレスは、グローバルアドレスである。よって、通信装置８５０は、この第１ルータ８２０がインターネットに接続されていることを検出することができ、この時点でホームネットワークの構成を把握できたことを認識できる。
【０２５７】
なお、本実施形態では、ルータの検索をする探索パケットや機器の検索する探索パケットの送受信のシーケンスに関して、一つのパケットの送信を行い受信の処理を行っているが、複数の探索パケットを同時に送信し、受信することが可能である。
通信装置８５０が以上のように取得した各ルータ及び通信機器の情報を画面に表示することで、ユーザは、ルータが多段に存在するネットワークでもネットワーク構成を把握することができる。図７２は、通信装置の表示部により表示されるネットワーク構成の一例である。図７２に示すように、表示画面には各ルータ及び各通信機器の接続構成が示される。
（作用効果）
この実施形態の通信装置は、ＴＴＬを変化させたルータディスカバリ用パケットの作成や作成したパケットのホームネットワーク内への送信を行うことなくルータの構成を取得することができる。また、ルータディスカバリ用パケットを転送する際にＴＴＬを減少する処理を行わないようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。さらに、ルータ応答パケットをフィルタリングするようなルータが含まれている場合であっても、ホームネットワーク内のルータの構成を把握することができる。
【０２５８】
〈第１０実施形態：ＩＣＭＰとＵＰｎＰを用いたルータ検出〉
以下に本発明の第１０実施形態について、図を参照しながら説明する。
（全体構成）
図７３は、本発明の第１０実施形態に係るホームネットワークの構成図である。図７３において、インターネット９００１とホームネットワーク９００２とが接続されている。ホームネットワーク９００２では、第１ルータ９２０、第２ルータ９３０、第３ルータ９４０が多段に接続されており、第３ルータ９４０の配下にネットワーク構成検出装置として機能する通信装置９５０が接続されている。また、第１ルータ９２０には第１通信機器９６０が接続されている。ここで、各ルータ及び通信機器は、ＬＡＮ側ＩＦ通信及びＷＡＮ側ＩＦ通信９２０１、９２０２、９３０１、９３０２、９４０１、９４０２、９５０１、９６０１を介して互いに接続されている。
【０２５９】
（通信装置の構成）
図７４は、通信装置の構成を示す機能ブロック図である。
通信装置９５０は、ＴＴＬ調節部９８１、パケット送信部９８２、アドレス生成部９８３、ルータ把握部９８４、アドレス把握部９８５、パケット受信部９８６、機器把握部９８７、表示部９８８、ＩＰ処理部９８９を備えている。
（処理の流れ）
図７５は、通信装置９５０の動作を示すフローチャートの一例である。
ステップＳ９００、Ｓ９０１：ＴＴＬ調節部９８１は、ＴＴＬの値を初期化し（Ｓ９００）、さらにＴＴＬの値をインクリメントする（Ｓ９０１）。
ステップＳ９０２：ＴＴＬ調節部９８１は、ＴＴＬの値が所定値を超えているか否かを判別する。ＴＴＬの値が予め設定された所定値を超えている場合には、ルータ検出の処理を終了して、ステップＳ９１４に進行する。
【０２６０】
ステップＳ９０３：ＴＴＬの値が所定値を超えていない場合には、パケット送信部９８２は、ルータを検出するための探索パケットを送出する。
ステップＳ９０４：パケット受信部７８６は、ルータから返信されてきた応答パケットを受信する。応答パケットを受信した場合はステップＳ９１０に進行し、応答パケットを受信していない場合はステップＳ９０５に進行する。
ステップＳ９０５：パケット受信部９８６がＴｉｍｅ  Ｅｘｃｅｅｄメッセージパケットが一定の時間経っても返信がないと判断した場合、アドレス把握部９８５はＴｉｍｅ  Ｅｘｃｅｅｄメッセージパケットの応答がないルータの下位側ルータのＷＡＮ側アドレスを取得する。
ステップＳ９０７、Ｓ９０８：アドレス生成部９８３は、アドレス把握部９８５が取得したルータのＷＡＮ側アドレスからその上位に位置するルータのＬＡＮ側アドレスを推測するためのアドレスを生成し（Ｓ９０７）、パケット送信部９８２は探索パケットを送信する（Ｓ９０８）。
【０２６１】
ステップＳ９０９、Ｓ９１０：パケット受信部９８６は、送信した探索パケットに対する応答パケットを受信し（Ｓ９０９）、アドレス把握部９８５はルータのＬＡＮ側アドレスを取得する（Ｓ９１０）。
ステップＳ９１１：アドレス把握部９８５は、取得したルータのＬＡＮ側アドレスがグローバルアドレスであるか、ローカルアドレスであるかを判別する。
ステップＳ９１２、Ｓ９１３：ルータ把握部９８４は、取得したルータのＬＡＮ側アドレスに基づいて、ルータの情報を取得し、このルータを把握する（Ｓ９１２）。表示部９８８は、取得したルータの情報を表示する（Ｓ９１３）。
ステップＳ９１４：アドレス把握部９８５がルータのＬＡＮ側アドレスがグローバルアドレスであると判断した場合、このルータがホームネットワーク外のインターネット上のルータであると認識して、ルータの検索処理を中止させる。そして、アドレス生成部９８３は、取得したルータのＬＡＮ側のアドレスから検索対象となる通信機器のアドレスを推測して生成する。
【０２６２】
ステップＳ９１５：パケット送信部９８２は、アドレス生成部９８３が生成したアドレスをアドレス先として通信機器を検出するための探索パケットを送信する。パケット受信部９８６はネットワーク内に存在する通信機器からの応答パケットを受信し、アドレス把握部９８５はその通信機器のアドレスを取得する。
ステップＳ９１６〜Ｓ９１８：パケット受信部９８６は、送信した探索パケットに対して通信機器からの応答パケットを受信し（Ｓ９１６）、通信機器のアドレスを取得したか否かを判別する（Ｓ９１７）。アドレス把握部９８５は通信機器のアドレスを取得する。次に、機器把握部９８７は通信機器に関する通信機器情報を取得する（Ｓ９１８）。
ステップＳ９１９、Ｓ９２０：アドレス生成部９８３は、次の探索パケットのためのアドレスを生成するか否かを判別する（Ｓ９１９）。アドレス生成が終了すると、表示部９８８は把握した通信機器の情報を表示部９８８に表示する（Ｓ９２０）。
【０２６３】
なお、通信機器を検索するパケットとして、ＩＣＭＰパケット以外に、ＩＰアドレスから物理層のネットワークアドレスを要求するためのＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを用いることもできる。
なお、本実施形態では、ＴＴＬを０にして応答を返さないルータが存在するネットワーク上でＩＣＭＰとＵＰｎＰを同時に用いて、効率的にネットワーク構成を把握することを示した。しかし、ＴＴＬ処理を行わないルータやＩＣＭＰパケットをフィルタリングするルータでも、ＩＣＭＰとＵＰｎＰを同時に用いることにより、効率的にネットワーク構成を把握することが可能である。
（具体例）
図７６は、パケットフィルタリングを行うルータを含むネットワーク構成図である。図７６のようにＩＣＭＰパケットをフィルタリングする第１ルータ９２０が存在すると、ＩＣＭＰパケットを送信してもルータからの応答がない。そこで、ＩＣＭＰパケットを送信して応答するルータ（ここでは、第２ルータ９３０）まで、ＩＣＭＰ処理を行う。そして、ＩＣＭＰ処理により把握した第２ルータ９３０のＬＡＮ側アドレスを用いて、Ｕｐｎｐ処理より第２ルータ９３０のＷＡＮ側アドレス、第１ルータ９２０のＬＡＮ側アドレスを把握する。以上より、ＩＣＭＰ処理及びＵｐｎｐ処理を用いることで、ＩＣＭＰフィルタリングするルータが存在してもルータの把握を効率的に把握できる。このようにして把握したルータのアドレスに基づいて、通信機器の検索を行う。
【０２６４】
図７７は、ＴＴＬを処理しないルータを含むネットワーク構成図である。図７７のように第２ルータ９３０がＴＴＬを処理しないルータであると、ＴＴＬ＝２のＩＣＭＰのＥｃｈｏ  ＲｅｑｕｅｓｔメッセージパケットＥＲ２を送信すると、そのパケットが到達するのは、第１ルータ９２０である。このままでは、通信装置９５０は第２のルータ９３０の存在が把握できない。そこで、Ｕｐｎｐ処理を用いてルータアドレスの正当性を検証する。それにより、通信装置９５０は第２ルータ９３０の存在を把握する。
通信装置９５０は、Ｕｐｎｐ処理により第３ルータ９４０のＷＡＮ側アドレスを把握する。そして、通信装置９５０は、ＩＣＭＰ処理により取得した第１ルータ９２０のＬＡＮ側アドレスとそのＷＡＮ側アドレスと比較する。第３ルータ９４０と第１ルータ９２０の間に第２ルータ９３０が存在しない場合は、第３ルータ９４０のＷＡＮ側アドレスと第１ルータ９２０のＬＡＮ側アドレスのアドレス空間が同じである。しかし、第２ルータ９３０が存在するためにアドレス空間が異なる。それにより、通信装置９５０は、第１ルータ９２０と第３ルータ９４０との間には、別のルータが存在することを把握できる。そこで、通信装置９５０は、第２ルータ９３０のＬＡＮ側アドレスをＵｐｎｐ処理より取得するとともに、第２ルータ９３０のＷＡＮ側アドレスを把握する。次に通信装置９５０は、第２ルータ９３０のＷＡＮ側アドレスと第３ルータ９４０のＬＡＮ側アドレスとを比較する。同じアドレス空間ならば、ルータが存在しないことが把握できる。以上より、Ｕｐｎｐ処理及びＩＣＭＰ処理を用いて、ルータのアドレスの検証を行い、ＴＴＬを処理しないルータが存在してもルータの存在を効率的に把握することができる。このようにして把握したルータのアドレスに基づいて、通信機器の検索を行う。
【０２６５】
（作用効果）
ＴＴＬを減らさずに次のルータに転送するようなルータがホームネットワーク内に含まれている場合であっても、通信装置は、ホームネットワーク内のルータの構成及び通信機器の構成を把握することができる。
〈その他の実施形態例〉
上記の実施形態例では、多段のルータを含むホームネットワーク内に接続される通信装置が、多段のルータの構成情報を把握することができる構成を開示している。しかし、ホームネットワーク内のルータの数は限定されず、例えば１のルータのホームネットワークにおいても本発明を適用可能である。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０２６６】
前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【産業上の利用可能性】
【０２６７】
本発明によれば、多段のルータで構成されるホームネットワークにおいて、ルータ設定を行うことができる。また、多段のルータで構成されるホームネットワークに接続されるユーザ端末間のＰ２Ｐ通信が可能となる。
【図面の簡単な説明】
【０２６８】
【図１】本発明の第１実施形態におけるホームネットワーク構成図。
【図２】本発明の第１実施形態における通信装置の構成図。
【図３】ＵＤＰを用いたディスカバリパケットフォーマットの説明図。
【図４】ＴＴＬとＵＤＰを用いたディスカバリパケットの関係を示す説明図。
【図５】本発明の第１実施形態におけるディスカバリパケット送信処理シーケンスを示すフローチャート。
【図６】本発明の第１実施形態におけるルータアドレス取得と設定の流れを示す説明図。
【図７】ＩＣＭＰ時間超過パケットのパケットフォーマットを示す説明図。
【図８】本発明の第１実施形態におけるディスカバリパケットの応答受信シーケンスを示すフローチャート。
【図９】ＩＣＭＰエコー要求を用いたディスカバリパケットフォーマットの説明図。
【図１０】ＴＴＬとＩＣＭＰエコーを用いたディスカバリパケットの関係を示す説明図。
【図１１】本発明の第２実施形態におけるホームネットワーク構成図。
【図１２】本発明の第２実施形態における通信装置の構成図。
【図１３】本発明の第２実施形態における無線ＡＰアドレスの把握と無線設定。
【図１４】本発明の第２実施形態におけるディスカバリパケット送信処理シーケンスを示すフローチャート。
【図１５】本発明の第２実施形態における無線ＡＰディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図１６】ルータアドレスと無線ＡＰディスカバリ用パケットの送信先アドレスの関係を示す説明図。
【図１７】本発明の第２実施形態におけるルータディスカバリ用パケットの応答受信シーケンスを示すフローチャート。
【図１８】本発明の第３実施形態におけるディスカバリパケットを用いたルータアドレス把握と設定を示す説明図。
【図１９】本発明の第３実施形態における通信装置の構成図。
【図２０】本発明の第３実施形態におけるルータディスカバリ用パケットの応答受信シーケンスを示すフローチャート。
【図２１】本発明の第３実施形態におけるルータディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図２２】ルータのＷＡＮ側アドレスと上位ルータディスカバリ用パケットの送信先アドレスの関係を示す説明図。
【図２３】本発明の第４実施形態における  無線ＡＰアドレスの把握と無線設定を示す説明図。
【図２４】本発明の第４実施形態における通信装置の構成図。
【図２５】本発明の第４実施形態におけるルータディスカバリ用パケットの応答受信シーケンスを示すフローチャート。
【図２６】本発明の第４実施形態におけるルータディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図２７】本発明の第４実施形態における無線ＡＰディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図２８】ＩＣＭＰをフィルタリングするルータを含むホームネットワークの説明図。
【図２９】本発明の第５実施形態における通信装置の構成図。
【図３０】本発明の第５実施形態における第１のディスカバリパケットの送信処理シーケンスを示すフローチャート。
【図３１】本発明の第５実施形態におけるタイムアウト検出時の処理シーケンスを示すフローチャート。
【図３２】本発明の第５実施形態におけるルータディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図３３】本発明の第５実施形態におけるディスカバリパケットの応答受信シーケンスを示すフローチャート。
【図３４】本発明の第５実施形態におけるルータアドレスの把握とルータ設定を示す説明図。
【図３５】ＴＴＬ処理を行わないルータを含むホームネットワークを示す説明図。
【図３６】本発明の第６実施形態における通信装置の構成図。
【図３７】本発明の第６実施形態における第１のディスカバリパケットの送信処理シーケンスを示すフローチャート。
【図３８】本発明の第６実施形態におけるルータディスカバリ用パケットの送信処理シーケンスを示すフローチャート。
【図３９】本発明の第６実施形態におけるディスカバリパケットの応答受信シーケンスを示すフローチャート。
【図４０】本発明の第６実施形態におけるルータアドレスの把握とルータ設定を示す説明図。
【図４１】本発明の第７実施形態におけるネットワーク構成を示す説明図。
【図４２】本発明の第７実施形態におけるユーザ端末の構成図。
【図４３】本発明の第７実施形態におけるＰ２Ｐ接続のメッセージ送信処理シーケンスを示す説明図。
【図４４】本発明の第７実施形態におけるホームネットワークの構成情報を取得の処理シーケンスを示す説明図。
【図４５】本発明の第７実施形態におけるアドレス情報交換で送信されるアドレス情報メッセージの説明図。
【図４６】本発明の第７実施形態における通信路設定（ＮＡＴの設定）シーケンスの説明図。
【図４７】本発明の第７実施形態におけるユーザ端末が実行する通信路設定の説明図。
【図４８】本発明の第７実施形態におけるＰ２Ｐ通信路の接続確認処理シーケンスの説明図（両ユーザ端末から接続可能である場合）。
【図４９】本発明の第７実施形態におけるＰ２Ｐ通信路の接続確認処理シーケンスの説明図（ユーザ端末１からのみ接続可能である場合）。
【図５０】本発明の第７実施形態におけるＰ２Ｐ通信路の接続確認処理シーケンスの説明図（ユーザ端末２からのみ接続可能である場合）。
【図５１】本発明の第７実施形態における通信経路の判定処理シーケンスを示すフローチャート。
【図５２】本発明の第７実施形態におけるインターネットを介してＰ２Ｐ接続する場合のネットワーク構成例１を示す説明図。
【図５３】本発明の第７実施形態におけるインターネットを介してＰ２Ｐ接続する場合のネットワーク構成例２を示す説明図。
【図５４】本発明の第７実施形態における同一ルータ配下でＰ２Ｐ接続する場合のネットワーク構成例１を示す説明図。
【図５５】本発明の第７実施形態における同一ルータ配下でＰ２Ｐ接続する場合のネットワーク構成例２を示す説明図。
【図５６】本発明の第７実施形態における同一ルータ配下でＰ２Ｐ接続する場合のネットワーク構成例３を示す説明図。
【図５７】本発明の第７実施形態における同一ルータ配下でＰ２Ｐ接続する場合のネットワーク構成例４を示す説明図。
【図５８】本発明の第７実施形態における同一ルータ配下でＰ２Ｐ接続する場合のネットワーク構成例５を示す説明図。
【図５９】本発明の第７実施形態におけるアドレス交換メッセージの拡張の説明図。
【図６０】本発明の第８実施形態に係るホームネットワークの構成図。
【図６１】通信装置の構成を示す機能ブロック図。
【図６２】通信装置の動作を示すフローチャートの一例。
【図６３】ルータの検出方法を説明するための説明図。
【図６４】ルータに接続される通信機器の検出方法を説明するための説明図。
【図６５】ホームネットワークの具体的構成例を示す説明図。
【図６６】通信装置の表示部により表示されるネットワーク構成の一例。
【図６７】本発明の第９実施形態における装置全体の構成図。
【図６８】通信装置の構成を示す機能ブロック図。
【図６９】通信装置の動作を示すフローチャートの一例。
【図７０】ルータの検出方法を説明するための説明図。
【図７１】ホームネットワークの具体的構成例を示す説明図。
【図７２】通信装置の表示部により表示されるネットワーク構成の一例。
【図７３】本発明の第１０実施形態に係るホームネットワークの構成図。
【図７４】通信装置の構成を示す機能ブロック図。
【図７５】通信装置の動作を示すフローチャートの一例。
【図７６】パケットフィルタリングを行うルータを含むネットワーク構成図。
【図７７】ＴＴＬを処理しないルータを含むネットワーク構成図。
【符号の説明】
【０２６９】
１  インターネット
２  ホームネットワーク
５０、１５０、２５０、４５０、５５０  通信装置
５１、１５１、３５１、４５１、５５１  制御部
５２、１５２、３５２、４５２、５５２  ディスカバリ用パケット作成部
５３、１５３、３５３、４５３、５５３  受信パケット解析部
５４、１５４、３５４、４５４、５５４  パケット送受信部
５５、３５５、４５５、５５５  通信部
５６、４５６、５５６  ルータ設定部
【図１】
0004642122.tif 000002
【図２】
0004642122.tif 000003
【図３】
0004642122.tif 000004
【図４】
0004642122.tif 000005
【図５】
0004642122.tif 000006
【図６】
0004642122.tif 000007
【図７】
0004642122.tif 000008
【図８】
0004642122.tif 000009
【図９】
0004642122.tif 000010
【図１０】
0004642122.tif 000011
【図１１】
0004642122.tif 000012
【図１２】
0004642122.tif 000013
【図１３】
0004642122.tif 000014
【図１４】
0004642122.tif 000015
【図１５】
0004642122.tif 000016
【図１６】
0004642122.tif 000017
【図１７】
0004642122.tif 000018
【図１８】
0004642122.tif 000019
【図１９】
0004642122.tif 000020
【図２０】
0004642122.tif 000021
【図２１】
0004642122.tif 000022
【図２２】
0004642122.tif 000023
【図２３】
0004642122.tif 000024
【図２４】
0004642122.tif 000025
【図２５】
0004642122.tif 000026
【図２６】
0004642122.tif 000027
【図２７】
0004642122.tif 000028
【図２８】
0004642122.tif 000029
【図２９】
0004642122.tif 000030
【図３０】
0004642122.tif 000031
【図３１】
0004642122.tif 000032
【図３２】
0004642122.tif 000033
【図３３】
0004642122.tif 000034
【図３４】
0004642122.tif 000035
【図３５】
0004642122.tif 000036
【図３６】
0004642122.tif 000037
【図３７】
0004642122.tif 000038
【図３８】
0004642122.tif 000039
【図３９】
0004642122.tif 000040
【図４０】
0004642122.tif 000041
【図４１】
0004642122.tif 000042
【図４２】
0004642122.tif 000043
【図４３】
0004642122.tif 000044
【図４４】
0004642122.tif 000045
【図４５】
0004642122.tif 000046
【図４６】
0004642122.tif 000047
【図４７】
0004642122.tif 000048
【図４８】
0004642122.tif 000049
【図４９】
0004642122.tif 000050
【図５０】
0004642122.tif 000051
【図５１】
0004642122.tif 000052
【図５２】
0004642122.tif 000053
【図５３】
0004642122.tif 000054
【図５４】
0004642122.tif 000055
【図５５】
0004642122.tif 000056
【図５６】
0004642122.tif 000057
【図５７】
0004642122.tif 000058
【図５８】
0004642122.tif 000059
【図５９】
0004642122.tif 000060
【図６０】
0004642122.tif 000061
【図６１】
0004642122.tif 000062
【図６２】
0004642122.tif 000063
【図６３】
0004642122.tif 000064
【図６４】
0004642122.tif 000065
【図６５】
0004642122.tif 000066
【図６６】
0004642122.tif 000067
【図６７】
0004642122.tif 000068
【図６８】
0004642122.tif 000069
【図６９】
0004642122.tif 000070
【図７０】
0004642122.tif 000071
【図７１】
0004642122.tif 000072
【図７２】
0004642122.tif 000073
【図７３】
0004642122.tif 000074
【図７４】
0004642122.tif 000075
【図７５】
0004642122.tif 000076
【図７６】
0004642122.tif 000077
【図７７】
0004642122.tif 000078