(57)【特許請求の範囲】
【請求項１】
所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、
前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース手段と、
前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、
前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、
前記所定の制御プロトコルで使用すべき所定のアドレスを決定するにあたり、前記所定のネットワークレイヤプロトコルのネットワークに接続された、前記所定の制御プロトコルが稼動する他の通信装置に対して問い合わせパケットを送信するための送信手段とを備え、
前記問い合わせパケットは、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補として、自装置が以前に使用していた前記所定のアドレスが存在する場合には、その値を、存在しない場合には、自装置が持つリンクレイヤアドレスの所定のビット列の値を選択し、該所定のビット列の値について、前記他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせる機能と、前記他の通信装置が使用しているリンクレイヤアドレス、ネットワークレイヤアドレス又は前記所定のアドレスの少なくとも１つを、自装置に対して通知するように要請する機能と、前記所定のネットワークレイヤプロトコルのネットワークにおいて前記所定のアドレスの割り当てを行なうアドレスサーバが存在するか否かについて問い合わせる機能とを併せ持つものであることを特徴とする通信装置。
【請求項２】
前記他の通信装置から前記問い合わせるパケットに対する応答として返信される返信には、該他の通信装置がその時点で認識している、現在使用中の前記所定のアドレスの一覧を示す情報が含まれることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記問い合わせパケットに対する応答から、前記所定のアドレスと同一でないと判断された場合には、前記値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスとして決定する決定手段を更に備えたことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記決定手段は、前記所定のビット列の値が、前記他の通信装置が使用している前記所定のアドレスと同一であると判断された場合には、前記他の通信装置から前記問い合わせるパケットに対する応答として返信された前記パケットに含まれる前記アドレスに基づいて、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記決定手段は、前記問い合わせパケットに対する前記アドレスサーバからの応答によって、前記アドレスサーバの存在が確認された場合には、他の通信装置からの応答に関わらず、前記アドレスサーバから割当てられたアドレスを、自装置が前記所定の制御プロトコルで使用すべき前記所定のアドレスとして決定することを特徴とする請求項３または４に記載の通信装置。
【請求項６】
前記送受信手段は、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を、イーサフレーム上で行うことを特徴とする請求項１に記載の通信装置。
【請求項７】
前記インタフェース手段は、前記所定のネットワークレイヤプロトコルのパケットの転送物理媒体としてＢｌｕｅｔｏｏｔｈインタフェースを持つことを特徴とする請求項１に記載の通信装置。
【請求項８】
前記所定のネットワークレイヤプロトコルは、インターネット・プロトコルであり、前記ネットワークレイヤアドレスは、ＩＰアドレスであることを特徴とする請求項１に記載の通信装置。
【請求項９】
前記所定の制御プロトコルは、エコーネットプロトコルであることを特徴とする請求項１に記載の通信装置。
【請求項１０】
前記所定の制御プロトコルで使用すべき所定のアドレスは、エコーネットアドレスのノード識別子であることを特徴とする請求項１に記載の通信装置。
【請求項１１】
所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置としてコンピュータを機能させるためのプログラムにおいて、
前記プログラムは、
前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース機能と、
前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理機能と、
前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信機能と、
前記所定の制御プロトコルで使用すべき所定のアドレスを決定するにあたり、前記所定のネットワークレイヤプロトコルのネットワークに接続された、前記所定の制御プロトコルが稼動する他の通信装置に対して問い合わせパケットを送信するための送信機能とをコンピュータに実行させるとともに、
前記送信機能において、前記問い合わせパケットは、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補として、自装置が以前に使用していた前記所定のアドレスが存在する場合には、その値を、存在しない場合には、自装置が持つリンクレイヤアドレスの所定のビット列の値を選択し、該所定のビット列の値について、前記他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせる機能と、前記他の通信装置が使用しているリンクレイヤアドレス、ネットワークレイヤアドレス又は前記所定のアドレスの少なくとも１つを、自装置に対して通知するように要請する機能と、前記所定のネットワークレイヤプロトコルのネットワークにおいて前記所定のアドレスの割り当てを行なうアドレスサーバが存在するか否かについて問い合わせる機能とを併せ持つものであることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰ等のネットワークレイヤプロトコルのネットワーク上でのエコーネット等の制御プロトコルによる通信を行う通信装置及びプログラムに関する。
【０００２】
【従来の技術】
近年、情報家電の発展が急である。本分野は、白物家電、ＡＶ家電、パソコン等の情報機器、モバイル機器等の多岐にわたり、それぞれにおいてデジタル技術を応用した様々な応用が考えられている。
【０００３】
その１つのアプリケーションがホームネットワークの利用である。ホームネットワークは、家庭内におけるネットワーク技術であり、上記様々な情報家電同士を相互に接続する。
【０００４】
このホームネットワーク技術として、特に最近注目を集めているのがインターネット技術である。例えば、音楽配信やホームページ閲覧、電子メール等、次々とホームネットワークユーザにとって魅力的なアプリケーションが開発され、そのユーザ数は増加の一途である。
【０００５】
一方、ホームネットワークの１つの応用例が設備系ネットワーク、あるいはホームオートメーションとしての利用である。これらのネットワークには、エアコンや照明、白物家電等が接続され、機器の状態監視や遠隔制御等がアプリケーションとして考えられる。この設備系ネットワークの日本におけるデファクトスタンダードになると期待されているのがエコーネットである。エコーネットは、電灯線、ツイストペア線等の様々な物理媒体上で、設備系機器（白物家電等）を制御するためのコマンド、プロトコル、オブジェクト、ＡＰＩ等を規定している（例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｃｈｏｎｅｔ．ｏｒ．ｊｐにて取得可能に開示されている文書に説明が詳しい）。このエコーネットは、日本国内の複数の電機メーカを中心に設立されたコンソーシアムがその標準化を担っており、既にバージョン１のスペック等が発行され、商品化も始まろうとしている。
【０００６】
【発明が解決しようとする課題】
エコーネットは、それ自体がアドレス体系を持ち、「インターネット」のアドレス体系の上に「エコーネット」のアドレス体系を乗せる、といった工夫を行なう必要がある。そのため、「エコーネットアドレス」と「インターネットアドレス」との間の対応関係の決定等、これまでに無い考慮が必要となってくる。これを行なうのが「エコーネットアドレス初期化」手続きである。
【０００７】
エコーネットアドレスを決定する場合には、該アドレスを決定する「エコーネットアドレスサーバ」なるサーバが必ずしも存在しないことが想定されるため、自立的にエコーネットアドレスを定める機構を用意することが必要である。この機構として、例えば、「エコーネットアドレスとなる値の候補を選択し、これをローカル網上にブロードキャストすることで、アドレスの重複を調査する」というものがある。この機構では、「アドレスの仮の値の選択→調査→重複の発見→最初に戻る」のループにしばらくはまってしまう可能性が考えられる。このため、立ち上げからしばらくの間、自分のエコーネットアドレスが決定できない、という事態が考えられる。
【０００８】
特に、本機構がＢｌｕｅｔｏｏｔｈ等の無線方式に搭載された場合、Ｂｌｕｅｔｏｏｔｈでは同時にアクティブに通信できるノード数（スレーブ数）が７以下という制約があるため、上記のループがブロードキャスト処理を伴うだけに、多くの時間を費やす必要に迫られる可能性がある。
【０００９】
本発明は、上記事情を考慮してなされたもので、自装置のエコーネットアドレスを効率的に決定できるようにした通信装置及びプログラムを提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース手段と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、前記所定の制御プロトコルで使用すべき所定のアドレスを決定するにあたり、前記所定のネットワークレイヤプロトコルのネットワークに接続された、前記所定の制御プロトコルが稼動する他の通信装置に対して問い合わせパケットを送信するための送信手段とを備え、前記問い合わせパケットは、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補として、自装置が以前に使用していた前記所定のアドレスが存在する場合には、その値を、存在しない場合には、自装置が持つリンクレイヤアドレスの所定のビット列の値を選択し、該所定のビット列の値について、前記他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせる機能と、前記他の通信装置が使用しているリンクレイヤアドレス、ネットワークレイヤアドレス又は前記所定のアドレスの少なくとも１つを、自装置に対して通知するように要請する機能と、前記所定のネットワークレイヤプロトコルのネットワークにおいて前記所定のアドレスの割り当てを行なうアドレスサーバが存在するか否かについて問い合わせる機能とを併せ持つものであることを特徴とする。
好ましくは、前記他の通信装置から前記問い合わせるパケットに対する応答として返信される返信には、該他の通信装置がその時点で認識している、現在使用中の前記所定のアドレスの一覧を示す情報が含まれるようにしてもよい。
好ましくは、前記問い合わせパケットに対する応答から、前記所定のアドレスと同一でないと判断された場合には、前記値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスとして決定する決定手段を更に備えるようにしてもよい。
好ましくは、前記決定手段は、前記所定のビット列の値が、前記他の通信装置が使用している前記所定のアドレスと同一であると判断された場合には、前記他の通信装置から前記問い合わせるパケットに対する応答として返信された前記パケットに含まれる前記アドレスに基づいて、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定するようにしてもよい。
好ましくは、前記決定手段は、前記問い合わせパケットに対する前記アドレスサーバからの応答によって、前記アドレスサーバの存在が確認された場合には、他の通信装置からの応答に関わらず、前記アドレスサーバから割当てられたアドレスを、自装置が前記所定の制御プロトコルで使用すべき前記所定のアドレスとして決定するようにしてもよい。
好ましくは、前記送受信手段は、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を、イーサフレーム上で行うようにしてもよい。
好ましくは、前記インタフェース手段は、前記所定のネットワークレイヤプロトコルのパケットの転送物理媒体としてＢｌｕｅｔｏｏｔｈインタフェースを持つようにしてもよい。
好ましくは、前記所定のネットワークレイヤプロトコルは、インターネット・プロトコルであり、前記ネットワークレイヤアドレスは、ＩＰアドレスであるようにしてもよい。
好ましくは、前記所定の制御プロトコルは、エコーネットプロトコルであるようにしてもよい。
好ましくは、前記所定の制御プロトコルで使用すべき所定のアドレスは、エコーネットアドレスのノード識別子であるようにしてもよい。
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置としてコンピュータを機能させるためのプログラムにおいて、前記プログラムは、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース機能と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理機能と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信機能と、前記所定の制御プロトコルで使用すべき所定のアドレスを決定するにあたり、前記所定のネットワークレイヤプロトコルのネットワークに接続された、前記所定の制御プロトコルが稼動する他の通信装置に対して問い合わせパケットを送信するための送信機能とをコンピュータに実行させるとともに、前記送信機能において、前記問い合わせパケットは、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補として、自装置が以前に使用していた前記所定のアドレスが存在する場合には、その値を、存在しない場合には、自装置が持つリンクレイヤアドレスの所定のビット列の値を選択し、該所定のビット列の値について、前記他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせる機能と、前記他の通信装置が使用しているリンクレイヤアドレス、ネットワークレイヤアドレス又は前記所定のアドレスの少なくとも１つを、自装置に対して通知するように要請する機能と、前記所定のネットワークレイヤプロトコルのネットワークにおいて前記所定のアドレスの割り当てを行なうアドレスサーバが存在するか否かについて問い合わせる機能とを併せ持つものであることを特徴とする。
【００１２】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース手段と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレス及び当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスを対応付けて記憶するための記憶手段と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスを問い合わせるパケットを送信し、その後、所定の待時間待つ間に、該他の通信装置から返送されてきた前記所定のアドレスを含むパケットを受信し、受信されたパケットに含まれる該所定のアドレスに基づいて、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定するための決定手段とを備え、前記他の通信装置は、前記パケットを受信した場合、該他の通信装置の使用している前記所定のアドレスに応じて決まる待機時間だけ待機した後に、前記パケットを返送するものであり、前記所定の待時間は、該待機時間の決定方法に基づいて決定されたものであることを特徴とする。
【００１３】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース手段と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレス及び当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスを対応付けて記憶するための記憶手段と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、自装置が持つネットワークレイヤプロトコルアドレスの所定のビット列の値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補とし、該所定のビット列の値について、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせるパケットを送信し、同一でないと判断された場合には、前記値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスとして決定する決定手段とを備えたことを特徴とする。
【００１４】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、前記所定のネットワークレイヤプロトコルが稼動するデータリンクレイヤネットワークに接続するためのインタフェース手段と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置の持つデータリンクレイヤプロトコルアドレスと、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレスと、当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスとを対応付けて記憶するための記憶手段と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、自装置が持つデータリンクレイヤプロトコルアドレスの所定のビット列の値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補とし、該所定のビット列の値について、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせるパケットを送信し、同一でないと判断された場合には、前記値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスとして決定する決定手段とを備えたことを特徴とする。
【００１５】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置であって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース手段と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理手段と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレス及びリンクレイヤアドレス並びに当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスを対応付けて記憶するための記憶手段と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信手段と、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスの候補として、自装置が以前に使用していた前記所定のアドレスが存在する場合には、その値を、存在しない場合には、自装置が持つネットワークレイヤプロトコルアドレス又はリンクレイヤアドレスの所定のビット列の値を選択し、該所定のビット列の値について、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスと同一であるかを問い合わせるパケットを送信し、同一でないと判断された場合には、前記値を、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスとして決定する決定手段とを備えたことを特徴とする。
【００１６】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行うための通信制御方法であって、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置から、自装置が使用している前記所定のアドレスに関係する所定の応答を求めるパケットを受信し、受信された前記パケットに応答する場合、自装置の使用している前記所定のアドレスに応じて決まる待機時間だけ待機し、受信した前記パケットに応答するパケットを返送することを特徴とする。
【００１７】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行うための通信制御方法であって、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置に対して、該他の通信装置が使用している前記所定のアドレスを問い合わせるパケットを送信するステップと、所定の待時間待つ間に、該他の通信装置から返送されてきた前記所定のアドレスを含むパケットを受信ステップと、受信されたパケットに含まれる該所定のアドレスに基づいて、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定するステップとを有し、前記他の通信装置は、前記パケットを受信した場合、該他の通信装置の使用している前記所定のアドレスに応じて決まる待機時間だけ待機した後に、前記パケットを返送するものであり、前記所定の待時間は、該待機時間の決定方法に基づいて決定されたものであることを特徴とする。
【００１８】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置としてコンピュータを機能させるためのプログラムであって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース機能と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理機能と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレス及び当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスを対応付けて記憶するための記憶機能と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信機能と、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定するための決定機能と、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置から、自装置が使用している前記所定のアドレスに関係する所定の応答を求めるパケットを受信し、これに応答する場合、自装置の使用している前記所定のアドレスに応じて決まる待機時間だけ待機した後に、受信したパケットに応答するパケットを返送する応答機能とをコンピュータに実現させるためのプログラムである。
【００１９】
また、本発明は、所定のネットワークレイヤプロトコルのネットワーク上での所定の制御プロトコルによる通信を行う通信装置としてコンピュータを機能させるためのプログラムであって、前記所定のネットワークレイヤプロトコルのネットワークに接続するためのインタフェース機能と、前記所定のネットワークレイヤプロトコルのネットワークを介して送受信される前記所定の制御プロトコルのデータに関する処理を行うための制御プロトコル処理機能と、前記所定のネットワークレイヤプロトコルのネットワークに接続された自装置及び他の通信装置について、当該通信装置が前記所定のネットワークレイヤプロトコルのネットワークで使用すべきネットワークレイヤ・アドレス及び当該通信装置が前記所定の制御プロトコルで使用すべき所定のアドレスを対応付けて記憶するための記憶機能と、前記所定の制御プロトコルのパケットをカプセル化した、前記所定のネットワークレイヤプロトコルのパケットの送受信を行うための送受信機能と、前記所定のネットワークレイヤプロトコルのネットワークに接続された他の通信装置であってパケットの受信からこれに応答するパケットの返送まで該他の通信装置の使用している前記所定のアドレスに応じて決まる待機時間だけ待機するものに対して、該他の通信装置が使用している前記所定のアドレスを問い合わせるパケットを送信し、その後、該待機時間の決定方法に基づいて決定されたものである所定の待時間待つ間に、該他の通信装置から返送されてきた前記所定のアドレスを含むパケットを受信し、受信されたパケットに含まれる該所定のアドレスに基づいて、自装置が前記所定の制御プロトコルで使用すべき所定のアドレスを決定するための決定機能とをコンピュータに実現させるためのプログラムである。
【００２０】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００２１】
本発明によれば、自通信装置のエコーネットアドレスを効率的に決定できるようになる。
【００２２】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２３】
（第１の実施形態）
本実施形態では、エコーネットプロトコルをＩＰ（例えば、ＩＰｖ４でも良いし、ＩＰｖ６でも良い）上にマッピングして、エコーネットプロトコルをＩＰネットワーク上にて稼動する場合を例にとって説明する。
【００２４】
また、本実施形態では、Ｂｌｕｅｔｏｏｔｈと呼ばれるローカル無線ネットワーク技術により、各ノード（例えば、各種のいわゆる白物家電等や、そのコントローラ等）を接続する構成を例にとる。ここで、Ｂｌｕｅｔｏｏｔｈとは、低コスト、低消費電力を特徴とするローカル無線ネットワークであり、例えば、ｈｔｔｐ：／／ｗｗｗ．ｂｌｕｅｔｏｏｔｈ．ｃｏｍにて取得可能に開示されている文書に説明が詳しい。なお、以下で、ＢＴは、Ｂｌｕｅｔｏｏｔｈの略である。
【００２５】
また、Ｂｌｕｅｔｏｏｔｈ上では、ＰＡＮ（パーソナルエリアネットワーク）のプロファイルにて、「ＩＰ  ｏｖｅｒ  Ｂｌｕｅｔｏｏｔｈ」の方式が規定されているが、本実施形態では、この方式を用いる場合を例にとって説明する。ここで、ＰＡＮとは、Ｂｌｕｅｔｏｏｔｈ上で定義されるイーサネットエミュレーションの規格であり、この仕組みを用いることにより、イーサネットフレームのやり取りをＢｌｕｅｔｏｏｔｈ上でできるようになる。
【００２６】
図１に、本実施形態のホームネットワークシステムの構成例を示す。
【００２７】
図１に示されるように、Ｂｌｕｅｔｏｏｔｈの基地局（ＰＡＮ基地局ともいう）１と、複数のエコーネット機器３（図１の例では、Ａ，Ｂ，Ｃの３つ）が、Ｂｌｕｅｔｏｏｔｈにより相互接続されている。
【００２８】
Ｂｌｕｅｔｏｏｔｈの基地局（ＰＡＮ基地局ともいう）１は、Ｂｌｕｅｔｏｏｔｈピコネットのマスターにあたる。本実施形態では、このＢｌｕｅｔｏｏｔｈ基地局１は、エコーネットノードではないものとして説明している（ただし、Ｂｌｕｅｔｏｏｔｈ基地局１がエコーネットノードであっても構わない）。
【００２９】
エコーネット機器３は、エコーネットをサポートするものであれば、家電機器、ＡＶ機器、パソコンその他の情報機器など、どのような機器でもよい。
【００３０】
なお、Ｂｌｕｅｔｏｏｔｈ基地局１は、Ｂｌｕｅｔｏｏｔｈを通して、エコーネット機器３の制御（あるいは監視等）を行う機能を持っていてもよい。また、図示しない他のノードがＢｌｕｅｔｏｏｔｈを通して、エコーネット機器３の制御（あるいは監視等）を行う機能を持っていてもよい。
【００３１】
これら全ての機器（図１では、基地局１、機器Ａ，Ｂ，Ｃ）は、それぞれ、ＩＰアドレスを持つ。ＩＰアドレスは、ＩＰｖ４アドレスでも良いし、ＩＰｖ６アドレスでも良い。なお、ここでは、ＩＰアドレスは、リンクローカルアドレスであるものとして説明する。リンクローカルアドレスとは、そのリンク（本例ではＢｌｕｅｔｏｏｔｈ）上でのみ使うことのできる、特殊なＩＰアドレスである。グローバルユニークなＩＰアドレスを与える必要が無い一方、ローカルなネットワーク（リンクネットワーク）上で、ＩＰの特定のアプリケーションを動作させる場合に用いられる方式である。エコーネットプロトコルは、ローカルネットワークを前提、対象に開発されたプロトコルであるため、ＩＰ上でもリンクローカルアドレスの使用が望ましいと共に、未然に自宅外からの家電製品、エコーネット稼動範囲への悪意のあるアクセスや間違いアクセスを未然に防ぐことが可能となる。
【００３２】
図２に、エコーネット機器３の内部構造例を示す。
【００３３】
図２に示されるように、エコーネット機器３は、Ｂｌｕｅｔｏｏｔｈにより無線通信するためのＢｌｕｅｔｏｏｔｈインタフェース３１、エコーネットの処理を行うエコーネット処理部３２、所定のプロトコルの処理を行う他プロトコル処理部３３を含む。
【００３４】
エコーネット処理部３２は、Ｂｌｕｅｔｏｏｔｈインタフェース１１とイーサフレームの送受信のやり取りを行うイーサフレーム送受信部３２１、インターネットパケットの送受信のやり取りを行なうインターネット処理部３２７、エコーネット  ｏｎ  Ｂｌｕｅｔｏｏｔｈの初期化処理を行う初期化処理部３２６、エコーネットアドレスとＩＰアドレスとの間のアドレス解決を行うアドレス解決部３２５、ＩＰアドレスとエコーネットアドレスとを対応付けて記憶するアドレステーブル３２３、エコーネットのコマンド処理やミドルウエア処理一般を行うエコーネット制御処理部３２２、液晶画面やタッチパネルやキーボード等からなるユーザインタフェース３２４を含む。
【００３５】
次に、図３に、本実施形態のアドレステーブルの内部構造例を示す。
【００３６】
図３（ａ）に示されるように、本実施形態のアドレステーブル３２３は、そのＩＰサブネット（具体的には、そのリンクローカルの空間）内にあるエコーネットノードのＩＰアドレス（本例の場合、リンクローカルアドレス）と、そのノードのエコーネットアドレス（のノードＩＤ（ノード識別子））とを対応付けて記憶する。
【００３７】
また、エコーネット機器３は、図３（ｂ）に示されるように、ある時点で他のエコーネット機器３が既に使用しているエコーネットアドレス群を保持するためのテーブルを持つ。
【００３８】
ここで、エコーネットアドレスは、８ビット長の論理的な識別子であり、エコーネット仕様書にてその仕様が定められる（エコーネット仕様書では、ネットＩＤなるネットワーク識別子も定義されているが、本実施形態では、ネットＩＤは固定と考えて、ノード別に割り当てられるノードＩＤに着目して説明する）。この値も、場合によって異なる値が割り当てられる可能性がある。
【００３９】
なお、図３（ａ）の例において、添え字の０は、図１のＢｌｕｅｔｏｏｔｈ基地局１に対応するものを示し、添え字のａ，ｂは、図１のエコーネット機器Ａ，Ｂに対応するものをそれぞれ示している。
【００４０】
なお、本実施形態において、Ｂｌｕｅｔｏｏｔｈ基地局（ＰＡＮ基地局）１がエコーネットノードである場合のその内部構造例は、基本的には、図１のエコーネット機器３のそれと同様である。ただし、イーサフレーム送受信部内に、イーサフレームのルーチングを行う機能（イーサフレームルーチング部）を含む。このイーサフレームルーチング部は、例えば、以下のような処理を行う。すなわち、受信したイーサフレームが自ノード宛のものであるかどうかを調べ、自ノード宛のものでない場合には宛先へ向けて送信し、自ノード宛のものである場合には、イーサタイプのフィールドを参照するなどして、内部の該当する処理部へ転送する。なお、この場合、エコーネットノードである基地局１のエコーネットアドレスの値を、例えば０や１等の固定値としてもよい。本実施形態のＢｌｕｅｔｏｏｔｈのように、Ｂｌｕｅｔｏｏｔｈマスターの位置に立つノードは、エコーネットノードとして特別な役割（イーサフレームのルーチングやアドレス解決、初期化処理等）を行うことから、特別なエコーネットアドレスを固定的に割り当てることで処理の簡便化をはかることができる。
【００４１】
以下では、エコーネットアドレス初期化手続きについて説明する。
【００４２】
図４に、エコーネットアドレス初期化シーケンスの例を示す。
【００４３】
また、図５に、エコーネット機器３における、エコーネットアドレス決定の処理手順の一例を示す。また、図６に、エコーネット機器３における、他のエコーネット機器３からの問い合わせに回答する際の処理手順の一例を示す。
【００４４】
ここでは、ＰＡＮ基地局１がマスターとなっているピコネットに、当初、エコーネット機器Ａとエコーネット機器Ｂとが所属しているとする。つまり、このピコネットには、機器Ａと機器Ｂの２つのエコーネットノードがこの時点では存在しているものとする。そして、エコーネット機器Ｃが本ローカルネットに加わろうとする場合を例にとる。
【００４５】
この例では、まず、エコーネット機器Ｃが周囲にＩｎｑｕｉｒｙをかけ（Ｓ１）、これにＢＴマスターとなっているＰＡＮ基地局１が答える（Ｓ２）。Ｉｎｑｕｉｒｙを受けたＢＴマスター（ＰＡＮ基地局１）は、必要に応じてマスター／スレーブ変換等を行って、該エコーネット機器Ｃを配下に収める。
【００４６】
次に、ＢＴマスター（ＰＡＮ基地局１）とエコーネット機器Ｃとの間でサービス発見手続きが行われる（Ｓ３）。この結果、エコーネット機器Ｃは、ＢＴマスター（ＰＡＮ基地局１）がＰＡＮ（ＴＣＰ／ＩＰ）をサポートしているノードであることを発見、認識する（Ｓ４）。この時点では、まだエコーネット機器Ｃのエコーネットアドレスは決定していない。
【００４７】
次に、ＢＴマスター（ＰＡＮ基地局１）とエコーネット機器Ｃとの間で、ＰＡＮの初期化手続きが行われる（Ｓ５）。この結果、両機器間で、Ｂｌｕｅｔｏｏｔｈ上のＰＡＮを使ったＴＣＰ／ＩＰ通信が実現される。このＩＰ通信は、ＩＰｖ４でも良いし、ＩＰｖ６でも良い。
【００４８】
次に、エコーネット機器Ｃは、自分のエコーネットアドレスを決定するための手順に移る。
【００４９】
まず、エコーネット機器Ｃは、そのローカルネット（サブネット）内のエコーネットノードが持っているアドレスを知るために、エコーネットアドレス問合せパケットを、全てのエコーネットノードが受信するように予め割当てられたＩＰマルチキャストアドレスに対して送信する（Ｓ６，Ｓ２１）。このようにすることで、該パケットがエコーネットノード以外のノードに送信されることを未然に防ぐことができる。なお、（ローカル網上などの所定の範囲に）ブロードキャストを行うことも可能である。
【００５０】
このエコーネットアドレス問合せパケットを受信したエコーネット機器３（図１の例では、機器Ａと機器Ｂ）は、このパケットを送信したノード（本例のエコーネット機器Ｃ）に対して、自分のエコーネットアドレスの値（特にノードＩＤの値）を通知してやらなくてはならない。ただし、そのサブネット内に複数のエコーネットノードが同時に存在する場合には、このリプライが同時に行なわれてしまうと、アドレスを通知するためのパケットが一気にエコーネット機器Ｃに集中し、エコーネット機器Ｃが輻輳の状態になってしまう。よって、これを未然に防ぐため、エコーネットアドレス問合せパケットを受信（Ｓ３１）したエコーネットノードは、ある単位時間Ｔに、自分のエコーネットアドレス（のノードＩＤの部分）の値を乗じた値に相当する待機時間だけ待ち（Ｓ７，Ｓ９，Ｓ３２，Ｓ３３）、その後、自エコーネットアドレスを含む応答パケットを返送する（Ｓ８，Ｓ１０，Ｓ３４）。このようにすることで、該アドレス問合せパケットを送ったノードへのリプライの瞬間的な集中を未然に防ぐことが可能になる。
【００５１】
一方、アドレス問合せを送ったエコーネット機器Ｃの側も、そのローカルネットに存在し得る最大ノード数（エコーネットの場合、２５５）の数に上記単位時間を乗じた値Ｔ’（に相当する待時間）だけ待てば（Ｓ２２）、存在し得る全て（あるいはほとんど）のノードからのリプライが返ってくるものと期待できる。これは、エコーネットサブネット内のノード数が２５６と限定された数であり、これに上記単位時間を乗じた数もリーズナブルな時間に収まることから、このような受信待ちが可能となる。捕捉したエコーネットアドレスは、図３（ｂ）の既利用エコーネットアドレスの一覧に記入する。
【００５２】
なお、上記の手順は、エコーネットアドレス問合せパケットや次のエコーノード確認パケットだけでなく、マルチキャストあるいはブロードキャストされた他のパケットを受信し、これに対する応答パケットを返送する場合にも適用可能である。
【００５３】
ここで、上記エコーネットアドレス問合せパケットが何らかの都合（例えば劣悪な無線環境）により到着しない場合も考えられ、応答できないノードが存在する可能性を考慮する必要がある。このため、下記に説明するように、上記エコーネットアドレス問合せに対する応答パケットで収集したエコーネットアドレスと重複しないアドレスを選択するだけでなく、選択したアドレス（ノードＩＤ）が本当にそのＩＰサブネット内で使われていないかどうかを、再度確認する作業が行なわれる。
【００５４】
このようにして、該ローカルネット上の全て（あるいはほとんど）のエコーネットノードのエコーネットアドレスを収集したエコーネット機器Ｃは、続いて、自分のエコーネットアドレスの候補を決める（Ｓ１１，Ｓ２３）。この場合、エコーネット機器Ｃは、存在する全ての（または所定の一部の）エコーネットアドレスのうちから、それまでに通知されたエコーネットアドレス（該ローカルネット上に既に存在すると考えられるエコーネットアドレス）の値以外の値を選択し、これを仮の自分のエコーネットアドレスとする。つまり、存在する全ての（または所定の一部の）エコーネットアドレスのうちから、図３（ｂ）の既利用エコーネットアドレスの一覧に書いてある値以外の値を、所定の方法で（例えば、ランダムに、最も値の小さいものを、最も値の大きいものを、など種々の方法がある）、１つ選択する。
【００５５】
エコーネット機器Ｃは、自分でエコーネットアドレスの候補を決定し、この値を含むエコーノード確認パケットを、ローカルリンクにブロードキャスト（エコーネットノードに割当てられたＩＰマルチキャストアドレスでもよい）して、該エコーネットアドレスの値の重複を調査する（Ｓ１２）。このようなパケットを、送信し、上記のように確認先のエコーネット機器の待機時間を考慮して、所定の待時間（例えば、上記のＴ’）だけ待ち（Ｓ１３）、その時間の間、リプライが無ければ、該サブネットには同様のエコーネットアドレスを持ったノードは他にはいないと判断して、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定する（Ｓ１４，Ｓ２４，Ｓ２５）。なお、確認パケットの送信と、所定の待時間だけ待つことを、所定回数（複数数回）繰り返してもなおリプライが無ければ、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定するようにしてもよい。
【００５６】
他に、同じエコーネットアドレスがいる（つまり「そのアドレスは使用中」という意味のパケットが返ってきた場合）場合には、それ以外の新しい値を選択して、同様にアドレスの重複を検査する（Ｓ１１〜Ｓ１４，Ｓ２５〜Ｓ２８）。
【００５７】
本実施形態では、上記「既に自分がそのエコーネットアドレスの値は使っている」という意味のメッセージは、エコーネットアドレス重複メッセージとして通知される。
【００５８】
なお、存在し得る最大ノード数（エコーネットの場合、２５５）の数に上記単位時間を乗じた値Ｔ’に相当する待時間だけ待つ代わりに、例えば、図３（ａ）のアドレステーブル３２３に登録されたエコーネットアドレス（のノードＩＤ）の最大値に上記単位時間を乗じた値Ｔ”に相当する待時間だけ待つ方法なども可能である。
【００５９】
このようにしてエコーネットアドレス（Ｅｃ）が決定すると、その後は、エコーネットパケットをＩＰパケットにカプセル化する形で、エコーネットパケットのやり取りが、エコーネットノード間にて行われる。本実施形態では、エコーネットパケットは、ＵＤＰパケットにカプセル化される。
【００６０】
図７に、ＩＰパケットにカプセル化されるパケット（エコーネットパケットやエコーネットＡＲＰパケット）のフォーマットの一例を示す。図７に示されるように、一般のエコーネットパケットがＩＰパケットにカプセル化される他、その他のエコーネットアドレス決定や通知の場合の制御パケットや、アドレス解決のためのパケットなども、このパケットフォーマットに含まれる。エコーネットパケットも、エコーネットに関連する制御パケットも、共に同一のポート番号（本例では、ＵＤＰポート）にマッピングされ、パケット種別のフィールドを参照することにより、それがエコーネットパケットなのか、それともエコーネットの初期化用の制御パケットなのかの区別を行うようになっていても良い。また、例えば、エコーネットパケットやエコーＡＲＰパケットなどで異なるポート番号にマッピングされるようにしてもよい。
【００６１】
ところで、上記では、マルチキャストあるいはブロードキャストされた他のパケットを受信した（問い合わせ先あるいは確認先などとなる）エコーネット機器（受信側エコーネット機器と呼ぶ）は、これに対する応答パケットを返送する際の待機時間として、ある単位時間Ｔに、自分のエコーネットアドレスのノードＩＤの部分の値を乗じた値を使用したが、待機時間の決定方法は、これに限定されず、種々のバリエーションが可能である。また、マルチキャストあるいはブロードキャストされた他のパケットを送信した（問い合わせ元あるいは確認元などとなる）エコーネット機器（送信側エコーネット機器と呼ぶ）における所定の待時間の決定方法のついても、待機時間の決定方法に応じて、種々のバリエーションが可能である。以下、幾つかのバリエーションを例示する。
【００６２】
（１）受信側エコーネット機器では、自装置のエコーネットアドレスのノードＩＤの部分の値をそのまま用いる代わりに、例えば、自装置のエコーネットアドレスのノードＩＤの部分の値に１対１に対応して予め定められている値（例えばエコーネットアドレスのノードＩＤの取り得る値のうちのいずれかの値）を用いるようにしてもよい。
送信側エコーネット機器では、該ノードＩＤのＭＡＸ値に単位時間を乗じた値を待時間とするのではなく、例えば、図３（ａ）のアドレステーブル３２３に登録されたエコーネットアドレスのノードＩＤに上記の対応を適用した場合の対応値の最大値に単位時間を乗じた値を待時間としてもよい。
【００６３】
（２）受信側エコーネット機器では、自装置のエコーネットアドレスのノードＩＤの部分の値をそのまま用いる代わりに、例えば、自装置のエコーネットアドレスのノードＩＤの部分の値を次のような関数に入力して得られる値を用いるようにしてもよい。この関数は、エコーネットアドレスのノードＩＤの部分の値を、エコーネットアドレスのノードＩＤのＭＡＸ値より小さい値の範囲に写像するものである。例えば、該ノードＩＤを定数ｎで除して得られる商を出力するものである。また、例えば、ノードＩＤを定数ｎで除して得られる剰余を出力するものである。また、この写像は、出力を均等に分布させるものでなくてもよい。  送信側エコーネット機器では、該ノードＩＤのＭＡＸ値に単位時間を乗じた値を待時間とするのではなく、例えば、写像範囲のＭＡＸ値に単位時間を乗じた値を待時間としてもよい。あるいは、例えば、図３（ａ）のアドレステーブル３２３に登録されたエコーネットアドレスのノードＩＤに上記関数を適用した場合の写像値の最大値に単位時間を乗じた値を待時間としてもよい。
【００６４】
（３）受信側エコーネット機器では、自装置のエコーネットアドレスのノードＩＤの部分の値をそのまま用いる代わりに、例えば、自装置のエコーネットアドレスのノードＩＤの部分の値をピークとする分布関数を持つ乱数によって発生した乱数値を用いるようにしてもよい。
送信側エコーネット機器では、該ノードＩＤのＭＡＸ値に単位時間を乗じた値を待時間とするのではなく、例えば、図３（ａ）のアドレステーブル３２３に登録されたエコーネットアドレスのノードＩＤに上記の乱数を適用した場合の乱数値の最大値に単位時間を乗じた値を待時間としてもよい。
【００６５】
（４）受信側エコーネット機器では、自装置のエコーネットアドレスのノードＩＤの部分の値（あるいは上記のような方法で得られる値）に、単位時間を乗じて、待機時間を求める代わりに、例えば、自装置のエコーネットアドレスのノードＩＤの部分の値（あるいは上記のような方法で得られる値）を、所定の関数（単位時間を乗じる関数を除く）に入力して得られる値を、待機時間としてもよい。
送信側エコーネット機器では、例えば、該ノードＩＤのＭＡＸ値を上記所定の関数に入力した値を待時間としてもよい。また、例えば、図３（ａ）のアドレステーブル３２３に登録されたエコーネットアドレスのノードＩＤを上記所定の関数に入力した値を待時間としてもよい。
【００６６】
ところで、上記では、受信側エコーネット機器における待機時間や送信側エコーネット機器における待時間を予め１種類決定しておくものとしたが、その代わりに、待機時間の決定方法と待時間の決定方法との組を複数を搭載しておき（あるいは、例えば、上記の（２）のｎをパラメータとした方法を搭載しておき）、送信側エコーネット機器が問い合わせパケットや確認パケットなどを受信側エコーネット機器にブロードキャストあるいはマルチキャストする際に、いずれの方法を使用するか（あるいは、例えば、上記の（２）のｎとしてどのような値を使用するか）を指定する情報を該パケットに記述し、受信側エコーネット機器は指定された方法で待機時間を決定し、送信側エコーネット機器も同じ方法で待時間を決定するようにしてよい。
【００６７】
例えば、待機時間の決定方法と待時間の決定方法との組が、互いに、受信側エコーネット機器における待機時間の分散の仕方（その結果として、送信側エコーネット機器におけるリプライの集中の程度）が異なるものである場合に、送信側エコーネット機器は、自装置のメモリ容量の大小等に応じて、複数の受信側エコーネット機器における待機時間が短期間により集中するような方法や、より長期間にわたって分散する方法などを、適宜選択するようにしてもよい。
【００６８】
なお、上記の受信側エコーネット機器のエコーネットアドレスのノードＩＤの部分の値に単位時間を乗じて得られる値を待機時間とするような方法において、該単位時間をパラメータとして、送信側エコーネット機器が指定する方法も可能である。
【００６９】
なお、以上では、エコーネットアドレスのＩＰアドレスとして、リンクローカルアドレスを用いるものとして説明したが、グローバルユニークＩＰアドレスや、プライベートＩＰアドレスなどを用いてもよい（ＩＰｖ４アドレスでもＩＰｖ６アドレスでも良い）。
【００７０】
（第２の実施形態）
以下では、第１の実施形態と相違する点を中心に説明する（本実施形態のホームネットワークシステムの構成例については図１を、エコーネット機器３の内部構造例については図２を、アドレステーブルの内部構造例については図３を、ＩＰパケットにカプセル化されるパケットのフォーマット例については図７を参照）。
【００７１】
エコーネットアドレス（ノードＩＤ）を、ＩＰアドレスの一部、例えば下８ビットの値を用いることを基本とし、もし同一サブネット内に同じノードＩＤを持つノードが存在する場合に、該値を用いるとエコーネットアドレス（ノードＩＤ）の値の重複がサブネット内で発生することから、本実施形態では、そのような場合において、これまで説明してきた方法を利用して、自分のエコーネットアドレス（ノードＩＤ）を決定する。
【００７２】
図８及び図９に、この場合のエコーネットアドレス初期化シーケンスの例を示す（図８及び図９は、１つのシーケンスを分図したものである）。
【００７３】
ここでも、図４〜図６の場合の具体例と同様とする。すなわち、ＰＡＮ基地局１がＢＴマスターとなっているピコネットに、当初、エコーネット機器Ａとエコーネット機器Ｂとが所属しているとする。つまり、このピコネットには、機器Ａと機器Ｂの２つのエコーネットノードがこの時点では存在しているものとする。そして、エコーネット機器Ｃが本ローカルネットに加わろうとする場合を例にとる。
【００７４】
さて、エコーネット機器Ｃは、自分に割当てられたＩＰアドレスの下８ビットの値を、エコーネットアドレス（ノードＩＤ）の候補とする（Ｓ４１）。
【００７５】
なお、ＩＰｖ４アドレスのクラスＣアドレスであれば、この時点で重複はないことになる。それ以外のＩＰアドレスである場合には、同一サブネットの他のノードに割当てられているＩＰアドレスの下８ビットが同一である場合が考えられるため、ノードＩＤの重複が発生する可能性が考えられる。このため、これを確認するために図４のＳ１２と同様のエコーネットノード確認パケット等を用いて、図５の手順を開始する。
【００７６】
すなわち、エコーネット機器Ｃは、上記のＩＰアドレスの下８ビットの値を含むエコーノード確認パケットを、ローカルリンクにブロードキャスト（エコーネットノードに割当てられたＩＰマルチキャストアドレスでもよい）して、該エコーネットアドレスの値の重複を調査する（Ｓ４２）。
【００７７】
ここで、問い合わされた値と同一のエコーネットアドレス（ノードＩＤ）を使用している旨を示す応答パケットが返送されなければ、重複がないと判断して、該値（ＩＰアドレスの下８ビットの値）を、自装置が使用するエコーネットアドレス（ノードＩＤ）と決定する。
【００７８】
一方、該パケットを受信したエコーネット機器は、問い合わされた値と同一のエコーネットアドレス（ノードＩＤ）を使用しているならば、エコーネット機器Ｃへ、その旨を示す応答パケットを送信する（Ｓ４３）。
【００７９】
例えば、上記のＩＰアドレスの下８ビットの値が、エコーネット機器Ａが使用しているエコーネットアドレス（ノードＩＤ）＝Ｅａと同一であったような場合には、該パケットを受信したエコーネット機器Ａが、問い合わされた値と同一のエコーネットアドレス（ノードＩＤ）を使用している旨を示す応答パケットを送信する。
【００８０】
エコーネット機器Ｃは、この応答パケットにより、問い合わせたエコーネットアドレス（ノードＩＤ）の候補が、他のエコーネット機器により使用されていると判断されると、サブネット内の全ノードＩＤの調査に移る（Ｓ４４）。
【００８１】
以降の処理は、図４〜図６の場合と、基本的には同様である。
【００８２】
すなわち、エコーネット機器Ｃは、そのローカルネット（サブネット）内のエコーネットノードが持っているアドレスを知るために、エコーネットアドレス問合せパケットを、マルチキャストあるいはブロードキャストする（Ｓ４５）。
【００８３】
このエコーネットアドレス問合せパケットを受信したエコーネット機器Ａ，Ｂは、このパケットを送信したエコーネット機器Ｃに対して、前述のような所定の待機時間だけ待った（Ｓ４６，Ｓ４８）後に、自分のエコーネットアドレス（ノードＩＤ）を通知する（Ｓ４７，Ｓ４９）。
【００８４】
エコーネット機器Ｃは、前述のような所定の待時間の間に、応答パケットの受信を行う。
【００８５】
エコーネット機器Ｃは、サブネットで利用中のエコーネットアドレスをすべて（あるいは大まかに）把握する（Ｓ５０）。
【００８６】
次いで、前述と同様に（エコーネットアドレス問合せパケットに応答できないノードが存在する可能性を考慮し）、エコーネットアドレス問合せに対する応答パケットで収集したエコーネットアドレスと重複しないアドレスを選択するだけでなく、選択したアドレス（ノードＩＤ）が本当にそのＩＰサブネット内で使われていないかどうかを、再度確認する作業が行なわれる。
【００８７】
すなわち、まず、他のエコーネット機器との重複がないように、自分のエコーネットアドレスの候補を決める（Ｓ５１）。
【００８８】
エコーネット機器Ｃは、自分でエコーネットアドレスの候補の値を含むエコーノード確認パケットを、マルチキャストあるいはブロードキャストして、該エコーネットアドレスの候補の値の重複を調査する（Ｓ５２）。
【００８９】
このエコーノード確認パケットを受信したエコーネット機器Ａ，Ｂは、このパケットを送信したエコーネット機器Ｃに対して同一のエコーネットアドレス（ノードＩＤ）を使用している旨を示す応答パケットを返送する場合には、前述のような所定の待機時間だけ待った後に、該返送を行う。
【００９０】
エコーネット機器Ｃは、前述のような所定の待時間だけ待ち（Ｓ５３）、その時間の間、リプライが無ければ、該サブネットには同様のエコーネットアドレスを持ったノードは他にはいないと判断して、該エコーネットアドレスの候補を、その自分のエコーネットアドレスとして用いることに決定する（Ｓ５４）。なお、確認パケットの送信と、所定の待時間だけ待つことを、所定回数（複数数回）繰り返してもなおリプライが無ければ、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定するようにしてもよい。
【００９１】
他に、同じエコーネットアドレスがいる（つまり「そのアドレスは使用中」という意味のパケットが返ってきた場合）場合には、それ以外の新しい値を選択して、同様にアドレスの重複を検査する（Ｓ５２〜Ｓ５４）。
【００９２】
（第３の実施形態）
以下では、第１、第２の実施形態と相違する点を中心に説明する（本実施形態のホームネットワークシステムの構成例については図１を、エコーネット機器３の内部構造例については図２を参照）。
【００９３】
第２の実施形態では、ＩＰアドレスの一部（例えば下８ビットの値）を利用して、自ノードのエコーネットアドレス（ノードＩＤ）を決定する例について説明したが、本実施形態では、Ｂｌｕｅｔｏｏｔｈアドレスの一部（例えば下８ビットの値）を利用して、自ノードのエコーネットアドレス（ノードＩＤ）を決定する例について説明する。Ｂｌｕｅｔｏｏｔｈアドレスは不変のアドレスであるため、この方法は、例えば、なるべく同じノードに対して同じエコーネットアドレスを割当てたいエコーネットの要求により合致する。
【００９４】
なお、ここでは、まず前回利用したノードＩＤの値を自ノードＩＤの候補として利用するようにしている。また、自ノードでアドレスを決定する前に、ネットワーク上にエコーネットアドレスの割り当てを行なってくれるアドレスサーバ（エコーネット版のＤＨＣＰサーバ）が存在するかどうかを確かめるようにしている。
【００９５】
本実施形態のホームネットワークシステムのＢｌｕｅｔｏｏｔｈ基地局（ＰＡＮ基地局）及びエコーネット機器（図１では、基地局１、機器Ａ，Ｂ，Ｃ）は、それぞれ、ＢｌｕｅｔｏｏｔｈアドレスとＩＰアドレスを持つ。
【００９６】
Ｂｌｕｅｔｏｏｔｈアドレスは、あらかじめＢｌｕｅｔｏｏｔｈインタフェースに付与された変更不可能なハードウエアアドレスであり、通常４８ビットのＩＥＥＥ８０２アドレスが割り当てられている。
【００９７】
ＩＰアドレスは、ＩＰｖ４アドレスでも良いし、ＩＰｖ６アドレスでも良い。なお、本実施形態では、ＩＰｖ４の場合、ＩＰアドレスは、クラスＣのアドレスであるものとして説明するが、クラスＡ、クラスＢのＩＰｖ４アドレスであっても良い。また、ＩＰｖ６の場合は、ＩＰアドレスは例えばＩＰｖ６のリンクローカルアドレスであるものとしてもよい。リンクローカルアドレスは、前述したように、そのリンク（本例ではＢｌｕｅｔｏｏｔｈ）上でのみ使うことのできる、特殊なＩＰアドレスである。グローバルユニークなＩＰアドレスを与える必要が無い一方、ローカルなネットワーク（リンクネットワーク）上で、ＩＰの特定のアプリケーションを動作させる場合に用いられる方式である。エコーネットプロトコルは、ローカルネットワークを前提、対象に開発されたプロトコルであるため、ＩＰ上でもリンクローカルアドレスの使用が望ましいと共に、未然に自宅外からの家電製品、エコーネット稼動範囲への悪意のあるアクセスや間違いアクセスを未然に防ぐことが可能となる。
【００９８】
図１０に、本実施形態のアドレステーブルの内部構造例を示す。
【００９９】
図１０（ａ）に示されるように、本実施形態のアドレステーブル３２３は、そのＩＰサブネット（具体的には、そのリンクローカルの空間）内にあるエコーネットノードのＩＰアドレスと、そのノードのハードウエアアドレス（具体的にはＢｌｕｅｔｏｏｔｈアドレス）と、そのノードのエコーネットアドレス（のノードＩＤ（ノード識別子））とを対応付けて記憶する。
【０１００】
また、エコーネット機器３は、図１０（ｂ）に示されるように、ある時点で他のエコーネット機器３が既に使用しているエコーネットアドレス群を保持するためのテーブルを持つ。
【０１０１】
なお、図１０（ａ）のテーブルを使用する代わりに、例えば、ハードウエアアドレスとＩＰアドレスとの対応テーブルと、ＩＰアドレスとエコーネットアドレスとの対応テーブルの２つのテーブルを使用するようにしてもよい（なお、ハードウエアアドレスとエコーネットアドレスとの対応テーブルと、エコーネットアドレスとＩＰアドレスとの対応テーブルの２つのテーブルに分割する方法や、エコーネットアドレスとハードウエアアドレスとの対応テーブルと、ハードウエアアドレスとＩＰアドレスとの対応テーブルの２つのテーブルに分割する方法も可能である）。
【０１０２】
以下では、エコーネットアドレス初期化手続きについて説明する。
【０１０３】
図１１及び図１２に、エコーネットアドレス初期化シーケンスの例を示す（図１１及び図１２は、１つのシーケンスを分図したものである）。
【０１０４】
ここでも、ＰＡＮ基地局１がマスターとなっているピコネットに、当初、エコーネット機器Ａとエコーネット機器Ｂとが所属しているとする。つまり、このピコネットには、機器Ａと機器Ｂの２つのエコーネットノードがこの時点では存在しているものとする。そして、エコーネット機器Ｃが本ローカルネットに加わろうとする場合を例にとる。
【０１０５】
なお、図１１及び図１２のシーケンス例でも、Ｂｌｕｅｔｏｏｔｈ通信の初期化に必要な手順（インクワイアリやサービス発見プロトコル等）や、ＴＣＰ／ＩＰ通信の初期化に必要な手順（ＩＰアドレスの取得等）については既に終了しているものとしその後に必要な手順についてのみ説明している（図４のＳ１〜Ｓ５参照）。
【０１０６】
さて、エコーネット機器Ｃは、自分のエコーネットアドレスを決定するための手順に移る。
【０１０７】
まず、エコーネット機器Ｃは、そのＩＰサブネット内にネットアドレスサーバ確認パケットをブロードキャスト（あるいは、エコーネットノードに対してのみマルチキャスト）して、エコーネットアドレス（ノードＩＤ）の割り当てを行なってくれるエコーネットアドレスサーバ（図示せず）の存在を確認する（Ｓ６１）。
【０１０８】
ここで、エコーネットアドレスサーバは、内部に例えば図１０で説明したようなアドレステーブルを持ち、要求に応じてエコーネットアドレス（ノードＩＤ）の値を割り振るためのサーバである。
【０１０９】
エコーネットアドレスサーバが、そのＩＰサブネット内に存在する場合は、このサーバにエコーネットアドレスを割当ててもらえばよいため、以降の手順は不要となる。この場合、エコーネットアドレスサーバを用いたエコーネットアドレスの割当て手順は、エコーネット規格の種々の物理媒体（例えば電灯線やＬＯＮ等）にて定められた方法や、ＴＣＰ／ＩＰ規格にて定められた方法（例えばＤＨＣＰサーバによる方法）に順ずるものとする。
【０１１０】
ここで、アドレスサーバが存在する場合について説明する。一部のエコーネット機器（例えば、電灯線や赤外線、ツイストペア線上に定義されたエコーネット等）は、エコーネットアドレスの値（ノードＩＤの値）が、どのような場合であっても（あるいは、ほとんどの場合に）変わらない様な前提で作られてきた。これは、それぞれのネットワーク上（電灯線ネットワーク、赤外線ネットワーク、ツイストペア線ネットワーク等）において、必ずアドレスサーバが存在し、このアドレスサーバが常時稼動し、どのノードに対してどのノードＩＤの値を与えたかどうかを記憶しておく仕組みを持っている。このため、同一のノードが同一のネットワーク上で立ち上がった場合、それが始めての稼動ではなく、複数回目の稼動であったとしても、アドレスサーバは、そのノードの識別子（例えばハードウエアアドレス、またはデータリンクレイヤアドレス、又は固有の識別子）と、エコーネットアドレス（ノードＩＤ）との組み合わせを予め記憶しておき、必ず同一のノードＩＤの値を与えるようにして、これを達成する。このようなネットワークに接続しているノードは、「エコーネット機器のエコーネットアドレス（ノードＩＤ）の値は変わらない」という解釈をしている可能性がある。
【０１１１】
これに対して、本実施例で説明するアドレス割当て方式は、「ノードＩＤの値が変わる可能性のある」方式である。これは、前記既存のネットワークに接続された機器が対応できない可能性が出てきてしまう。例えば、前記既存のネットワークに接続された機器が、本ＩＰネットワーク上のエコーネット機器のノードＩＤの値が、長期にわたって不変であると解釈する場合である。
【０１１２】
このため、既存のネットワークに接続された機器が接続される場合、つまり、本実施例の「ＩＰネットワーク」と既存ネットワークが接続されて、エコーネットが構成される場合には，必ず、「ＩＰネットワークと既存ネットワークを接続するノード」であるエコーネットルータにアドレスサーバを配置することにすれば，アドレスサーバは配布するノードＩＤの値が基本的に不変であるため，本ＩＰネットワーク上に配置されるエコーネット機器のエコーネットアドレス（ノードＩＤ）の値も不変であることを保証できる。ただし、このエコーネットルータ上に配置されるアドレスサーバも、データリンクレイヤアドレス（本実施例の場合Ｂｌｕｅｔｏｏｔｈアドレス）とノードＩＤの間でテーブルを作成して、アドレスの対応関係を記憶しておくものとする。
【０１１３】
以上が、アドレスサーバが存在する場合の説明であった。
【０１１４】
一方、そのＩＰサブネット内にエコーネットアドレスサーバが存在しない場合について続けて説明する。
【０１１５】
さて、エコーネットアドレスサーバ確認パケットを送信したエコーネット機器Ｃは、一定の時間の間にエコーネットアドレスサーバからの返信が無い場合には（Ｓ６２）、エコーネットアドレスサーバが存在しないものと判断する（Ｓ６３）。
【０１１６】
エコーネットアドレスサーバが存在しないと判断された場合、エコーネットアドレスは、エコーネット機器Ｃが自律的に決定することになる。その際、既にそのＩＰサブネット（エコーネットサブネット）内に、同じ値のエコーネットアドレスの機器が存在する場合には、その値を使わないようにする必要がある。これは、アドレスの重複が発生してしまうと、エコーネットアドレスを用いたノードの識別が不可能になってしまうからである。
【０１１７】
まず、エコーネット機器Ｃが自ノードのエコーネットアドレスの候補として使用する値を、以前自ノードがエコーネット機器としてネットワーク上で稼動した際に利用したノードＩＤの値とする（Ｓ６４）。ここで、この値がＥｂであったものとする。
【０１１８】
なお、この場合に、エコーネット機器の移動が考えられるため、サブネットＩＤの値が一致した場合にのみ、この値の確認（Ｓ６５，Ｓ６６）を行なっても良い。これは、サブネットＩＤの値が、以前の値と異なる場合には、その機器がサブネットを移動したと考えられ、「以前使用していたノードＩＤの値」に意味がないからである（この場合には、Ｓ６５，Ｓ６６をスキップして、Ｓ６７に進んでも良い）。
【０１１９】
エコーネット機器Ｃは、エコーノード確認パケットにより、この値をサブネット全体に通知して、既にこの値を使っているノードが存在するかどうかについての調査を行なう（あるいは、サブネットＩＤの値が一致した場合に、この値をサブネット全体に通知して、既にこの値を使っているノードが存在するかどうかについての調査を行なう）。このため、「エコーネットノード確認」という種別のパケットを、サブネット内にブロードキャスト（あるいは、エコーネットノードに対してのみマルチキャスト）する（Ｓ６５）。
【０１２０】
エコーネットノード確認パケットを送信したエコーネット機器Ｃは、一定の時間の間にアドレスの重複を通知するリプライパケットが届かない場合には、該ノードＩＤを使っているノードは、そのサブネット内には存在しないものと判断して、該ノードＩＤを、正式なエコーネットアドレス（のノードＩＤ）として使用するものと決定する。その場合には、そのためのトリガとして、該アドレスの利用開始や、自装置の属性を他ノードに通知するためのパケットをサブネット内に送出しても良い。
【０１２１】
なお、確認パケットの送信と一定の時間待つことを、所定回数（複数数回）繰り返してもなおリプライが無かった場合に、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定するようにしてもよい。
【０１２２】
本例では、エコーネット機器Ｂが既に同一の値（Ｅｂ）を使用中であることから、これを通知するパケット（エコーネットノード確認応答）が転送され（Ｓ６６）、該値は使用できないことがわかる。
【０１２３】
前回利用したノードＩＤの値が既に使用中である場合、エコーネット機器Ｃは、次に自ノードのハードウエアアドレス（本実施形態の場合Ｂｌｕｅｔｏｏｔｈアドレス）の一部、例えば下８ビットの値を、自ノードのノードＩＤの値の候補とする（Ｓ６７）。自ノードのハードウエアアドレスの一部を用いることにより、ノードＩＤの値の変動の可能性を低く押さえることが可能となる。
【０１２４】
ここでも同様に、エコーネット機器Ｃは、エコーノード確認パケットにより、この値をサブネット全体に通知して、既にこの値を使っているノードが存在するかどうかについての調査を行なう（Ｓ６８）。もし、一定の時間の間にアドレスの重複を通知するリプライパケットが届かない場合には、該ノードＩＤを使っているノードは、そのサブネット内には存在しないものと判断して、該ノードＩＤを、正式なエコーネットアドレス（のノードＩＤ）として使用する。
【０１２５】
なお、確認パケットの送信と一定の時間待つことを、所定回数（複数数回）繰り返してもなおリプライが無かった場合に、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定するようにしてもよい。
【０１２６】
本例では、エコーネット機器Ａが既に同一の値（Ｅａ）を使用中であることから、これを通知するパケット（エコーネットノード確認応答）が転送され（Ｓ６９）、該値は使用できないことがわかる。
【０１２７】
「自ノードが以前使用していたノードＩＤの値」と「自ノードのハードウエアアドレスの一部（例えば下８ビット）の値」のいずれも使用できないことが分かった場合には、エコーネット機器Ｃは、サブネット内の全ノードＩＤの調査に移る（Ｓ７０）。
【０１２８】
以降の処理は、図４〜図６の場合（あるいは図８及び図９のＳ４５〜Ｓ５４）と、基本的には同様である。
【０１２９】
すなわち、エコーネット機器Ｃは、そのローカルネット（サブネット）内のエコーネットノードが持っているアドレスを知るために、エコーネットアドレス問合せパケットを、全てのエコーネットノードが受信するように予め割当てられたＩＰマルチキャストアドレス、又はブロードキャストアドレスに対して送信する（Ｓ７１）。
【０１３０】
このエコーネットアドレス問合せパケットを受信（Ｓ７１）したエコーネット機器Ａ，Ｂは、このパケットを送信したエコーネット機器Ｃに対して、前述のような所定の待機時間だけ待った（Ｓ７２，Ｓ７４）後に、自ノードのエコーネットアドレス（ノードＩＤ）を通知する（Ｓ７３，Ｓ７５）。
【０１３１】
アドレス問合せを送ったエコーネット機器Ｃは、前述のような所定の待時間の間に、応答パケットの受信を行って、サブネットで利用中のエコーネットアドレスをすべて（あるいは大まかに）把握する（Ｓ７６）。捕捉したエコーネットアドレスは、図１０（ｂ）の既利用エコーネットアドレスの一覧に記入する。
【０１３２】
ただし、上記エコーネットアドレス問合せパケットが何らかの都合（例えば劣悪な無線環境）により到着しない場合も考えられ、応答できないノードが存在する可能性を考慮する必要がある。このため、下記に説明するように、上記エコーネットアドレス問合せに対する応答パケットで収集したエコーネットアドレスと重複しないアドレスを選択するだけでなく、選択したアドレス（ノードＩＤ）が本当にそのＩＰサブネット内で使われていないかどうかを、再度確認する作業が行なわれる。
【０１３３】
このようにして、該ローカルネット上の全て（あるいはほとんど）のエコーネットノードのエコーネットアドレスを収集したエコーネット機器Ｃは、続いて、自ノードのエコーネットアドレスの候補を決める。この場合、エコーネット機器Ｃは、存在する全ての（または所定の一部の）エコーネットアドレスのうちから、それまでに通知されたエコーネットアドレス（該ローカルネット上に既に存在すると考えられるエコーネットアドレス）の値以外の値を選択し、これを仮の自ノードのエコーネットアドレスとする（Ｓ７７）。つまり、存在する全ての（または所定の一部の）エコーネットアドレスのうちから、図１０（ｂ）の既利用エコーネットアドレスの一覧に書いてある値以外の値を、所定の方法で（例えば、ランダムに、最も値の小さいものを、最も値の大きいものを、など種々の方法がある）、１つ選択する。
【０１３４】
エコーネット機器Ｃは、自ノードでエコーネットアドレスの候補を決定し、この値を含むエコーノード確認パケットを、ローカルリンクにブロードキャスト（エコーネットノードに割当てられたＩＰマルチキャストアドレスでもよい）して、該エコーネットアドレスの値の重複を調査する（Ｓ７８）。
【０１３５】
このエコーノード確認パケットを受信したエコーネット機器Ａ，Ｂは、このパケットを送信したエコーネット機器Ｃに対して同一のエコーネットアドレス（ノードＩＤ）を使用している旨を示す応答パケットを返送する場合には、前述のような所定の待機時間だけ待った後に、該返送を行う。
【０１３６】
エコーネット機器Ｃは、前述のような所定の待時間だけ待ち（Ｓ７９）、その時間の間、リプライが無ければ、該サブネットには同様のエコーネットアドレスを持ったノードは他にはいないと判断して、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定する（Ｓ８０）。なお、確認パケットの送信と、所定の待時間だけ待つことを、所定回数（複数数回）繰り返してもなおリプライが無ければ、該アドレスを、そのノードのエコーネットアドレスとして用いることに決定するようにしてもよい。
【０１３７】
他に、同じエコーネットアドレスがいる（つまり「そのアドレスは使用中」という意味のパケットが返ってきた場合）場合には、それ以外の新しい値を選択して、同様にアドレスの重複を検査する（Ｓ７７〜Ｓ７９）。
【０１３８】
本実施形態でも、上記「既に自ノードがそのエコーネットアドレスの値は使っている」という意味のメッセージは、エコーネットアドレス重複メッセージとして通知される。
【０１３９】
なお、上記において、「アドレスサーバが存在するかどうか確認し、存在する場合には、該アドレスサーバに要求して、アドレスの割当てを受ける」手順（Ｓ６１〜Ｓ６３参照）と、「前回利用したノードＩＤの値を自ノードＩＤの候補として利用する」手順（Ｓ６４〜Ｓ６６）と、「自ノードのハードウェアアドレスの一部の値を自ノードＩＤの候補として利用する」手順（Ｓ６７〜Ｓ６９）の３種類の手順のうちの、いずれか１つ又は２つを省いた構成も可能である。
【０１４０】
このようにしてエコーネットアドレス（Ｅｃ）が決定すると、その後は、エコーネットパケットをＩＰパケットにカプセル化する形で、エコーネットパケットのやり取りが、エコーネットノード間にて行われる。
【０１４１】
図１３に、ＩＰパケットにカプセル化されるパケット（エコーネットパケットやエコーネットＡＲＰパケット）のフォーマットの一例を示す。図１３に示されるように、一般のエコーネットパケットがＩＰパケットにカプセル化される他、その他のエコーネットアドレス決定や通知の場合の制御パケットや、アドレス解決のためのパケットなども、このパケットフォーマットに含まれる。エコーネットパケットも、エコーネットに関連する制御パケットも、共に同一のポート番号（本例では、ＵＤＰポート）にマッピングされ、パケット種別のフィールドを参照することにより、それがエコーネットパケットなのか、それともエコーネットの初期化用の制御パケットなのかの区別を行うようになっていても良い。また、例えば、エコーネットパケットやエコーＡＲＰパケットなどで異なるポート番号にマッピングされるようにしてもよい。
【０１４２】
（第４の実施形態）
以下、第４の実施形態について、第１、第２、第３の実施形態と相違する点を中心に説明する。本実施形態のホームネットワークシステムの構成例については図１、エコーネット機器３の内部構造例については図２と同様とする。アドレステーブルの内部構造例については図１０と同様とする。ＩＰパケットにカプセル化されるパケットのフォーマット例については図１３と同様とする（ただし、パケット種別の内容が異なり、エコーネットアドレス初期化、エコーネットアドレスサーバ応答、エコーネットアドレス応答、ネットＩＤ取得要求、ネットＩＤ応答、エコーネットアドレス通知等となる）。なお、これまで説明した相手からの応答の返送を伴うパケットを送信したエコーネット機器の待時間や、そのようなパケットを受信してこれに対する応答を返送するエコーネット機器の待機時間などについても、これまでと同様である。
【０１４３】
ここでは、エコーネットアドレスサーバたるエコーネット機器Ｓ（図示せず）が存在する（し得る）ことを仮定する。エコーネットアドレスの取得を欲するノード（本例ではエコーネット機器Ｃとする）は、「エコーネットアドレスサーバを探すためのブロードキャストパケット」、「自分が仮に決めたノードＩＤの値（エコーネットアドレスの値）を、そのまま使っても良いか（他に、同じノードＩＤ（エコーネットアドレス）の値を使っているノードが、サブネット内にいないかどうかを確かめるためのブロードキャストパケット」、「サブネット内に存在する別のノードに対して、そのノードに関する情報（エコーネットアドレスやノードＩＤ、ＩＰアドレス、Ｂｌｕｅｔｏｏｔｈアドレス（８０２アドレス、ＥＵＩ６４アドレス等のリンクレイヤアドレス）の送信を促すために送信するブロードキャストパケット」の３つの意味を含んだパケットを、サブネット内の全エコーネットノードに対してブロードキャストする。このブロードキャストは、エコーネットノードにのみ届けば良いため、エコーネットノードのみが加入してるＩＰマルチキャストアドレス、またはＩＰブロードキャストアドレス宛てに送信される。このパケットを「エコーネットアドレス初期化パケット」と呼ぶことにする。
【０１４４】
以下、エコーネットアドレス初期化手続きについて説明する。
【０１４５】
図１４に、集中制御の形で、サブネット内のエコーネットアドレス（ノードＩＤ）の値を管理し、エコーネットノードＩＤの値を要求された場合に、この値の付与を行なう機能を持つエコーネットアドレスサーバが存在する場合についてのシーケンス例を示す。
【０１４６】
ここでは、エコーネット機器Ｓが、エコーネットアドレスサーバの機能を有するものとする。エコーネットアドレスサーバたるエコーネット機器ＳのＢｌｕｅｔｏｏｔｈアドレス、ＩＰアドレス、エコーネットアドレス（ノードＩＤ）は、それぞれ、「Ｌｓ」、「ＩＰｓ」、「Ｅｓ」とする。
【０１４７】
また、ＰＡＮ基地局１がマスターとなっているピコネットにおいて、既に、エコーネットアドレスサーバたるエコーネット機器Ｓと、エコーネット機器Ｂとが存在しており（もちろん、エコーネット機器Ａなど他のエコーネット機器が存在していてもよいが、ここでは、エコーネット機器Ｂで代表させて説明する）、エコーネット機器Ｃが本ローカルネットに加わろうとする場合を例にとる。
【０１４８】
また、図１４のシーケンス例でも、Ｂｌｕｅｔｏｏｔｈ通信の初期化に必要な手順（インクワイアリやサービス発見プロトコル等）などについては既に終了しているものとしその後に必要な手順についてのみ説明している（図４のＳ１〜Ｓ５参照）。
【０１４９】
さて、エコーネット機器Ｃは、自分のエコーネットアドレスを決定するための手順に移る。
【０１５０】
まず、エコーネットアドレスを決定したいエコーネット機器Ｃは、自分のノードＩＤの候補である仮ノードＩＤを最初に決める（ＳＡ１）。
【０１５１】
図１５に、その際の手順例を示す。図１５のように、そのノードが、前回用いたノードＩＤの値を保持している場合には、その前回用いたノードＩＤの値を用いるものとする（Ｓ１０１，Ｓ１０２）。このようにすることにより、そのサブネットにおける、そのノードが同じエコーネットアドレス（ノードＩＤ）の値を持ち続けることが可能になるため、サブネット内の他のノードが、そのノードの昔のノードＩＤの値を用いた何らかのテーブルを持っている場合等、アドレスの値の変化にロバストでない機器にとって、アドレス変更のリスクを少なくすることができるようになる。また、「１の値から数字の順にエコーネットノードＩＤの値を決めていく」といった単純な方法と比べて、他のノードとのアドレス重複の可能性を低くすることも可能である。
【０１５２】
一方、前回のノードＩＤの値を保持していない場合（例えば、そのサブネットで初めてネットワークに加入する場合や、購入最初の立ち上げの場合等）には、これまでの実施形態と同様に、自分のＢｌｕｅｔｏｏｔｈアドレス等のリンクレイヤアドレス（ハードウエアアドレス）の下８ビットの値を初期値とする（Ｓ１０１，Ｓ１０３）。このようにすることによっても、他のノードとのアドレス重複の可能性を低くすることが可能となる。これは、ハードウエアアドレスの下８ビットの値は、適当に散らばっていることが期待できるためである。
【０１５３】
ここでは、一例として、図１５の手順にしたがって、仮ノードＩＤの値として「Ｅｂ」の値が選択されたものとする。
【０１５４】
さて、このエコーネットアドレス初期化のパケット（ＳＡ２）を受け取ったエコーネットアドレスサーバ（すなわちエコーネット機器Ｓ）は、このパケットに対して「自分がエコーネットアドレスサーバであること」、「そのアドレスの使用の許可（あるいは不許可）を、そのノード（エコーネット機器Ｃ）に対して通知すること」を目的として、エコーネットアドレスサーバ応答パケットを送信する（ＳＡ３）。このパケットには、エコーネット機器Ｃが使用すべきエコーネットアドレス（ノードＩＤ）の値（図１４の例では、「Ｅｃ」）が含まれている。
【０１５５】
本実施形態では、サブネット内にエコーネットアドレスの重複が無い（つまり、「Ｅｃ」の値を用いている他のノードが存在しない）ものとしているため、エコーネットアドレスサーバ（エコーネット機器Ｓ）は、内部のアドレステーブルを参照して、エコーネットアドレス（ノードＩＤ）の重複が、そのサブネット内に確かに無いことを確認した上で、その値の使用の許可を与える意味で、このパケットをエコーネット機器Ｃに送信する。
【０１５６】
そのサブネット内に、同じエコーネットアドレス（ノードＩＤ）＝「Ｅｃ」の値を使っているノードが存在している場合（エコーネットアドレスサーバ内のアドレステーブルに、既に「Ｅｂ」の値が登録されている場合）には、エコーネットアドレスサーバ（エコーネット機器Ｓ）は、エコーネットアドレスサーバ応答のパケットを使用して、エコーネット機器Ｃが使用すべきエコーネットアドレス（ノードＩＤ）として、そのサブネットにて未使用のノードＩＤの値を選択した上で、この値を「使用すべきエコーネットノードＩＤ」の値に入れた上で、エコーネット機器Ｃに対して送信する。
【０１５７】
図１４は、エコーネット機器Ｃが選択した「Ｅｂ」が既に登録されているので、未使用の値として「Ｅｃ」が選択された例を示している。
【０１５８】
他方、サブネット内の他のエコーネット機器（図１４の例では、エコーネット機器Ｂ）も、「自分のノードに関する情報を、エコーネット機器Ｃに対して通知する」ことを目的としたパケットである「エコーネットアドレス応答」を、前記エコーネットアドレス初期化パケットの応答として送信する（ＳＡ４）。このパケットの応答は、これまで説明しているように、エコーネットアドレス初期化のパケットを受信してから、一定の待機時間（例えば、自分のエコーネットノードＩＤの値と、定数Ｔの値の積の値）を待った後に、送信するものとしても良い。このようにすることにより、エコーネット機器Ｃに、一斉に同返送が集中することを未然に防ぐことが可能となる。
【０１５９】
このパケットは、サブネット内の全てのノードが返送するため、エコーネット機器Ｃは、サブネット内の全てのエコーネット機器のＢｌｕｅｔｏｏｔｈアドレス、ＩＰアドレス、エコーネットアドレスについての情報を入手することが可能である。このことにより、エコーネット機器Ｃは、内部に持つアドレステーブルを、立ち上げ時には、常に最新の値にアップデートすることが可能になる。これは、本実施形態のように、エコーネットアドレスの値（やＩＰアドレスの値）が変更される可能性のあるネットワークにとって、非常に有効である。
【０１６０】
また、これまで説明しているように、このような「エコーネットアドレス応答」のパケットが、サブネット内の全てのエコーネットノードから返送されてくることを期待するため、エコーネット機器Ｃは、一定の待時間（例えば時間Ｔ’）の間、待つようにしてもよい。この場合、一定の待時間Ｔ’の間、待った時点で、「全てのノードは、エコーネットアドレス応答（またはエコーネットアドレスサーバ応答）を返送してくれた」と判断する（ＳＡ５）。
【０１６１】
なお、この「エコーネットアドレス初期化」パケットは、１回のみブロードキャストするのではなく、２回以上ブロードキャストしても良い。また、その場合、続けてブロードキャストをしても良いし、例えば、上記の一定の待時間Ｔ’の間、待ってからブロードキャストを行なっても良い。また、これら数回の「エコーネットアドレス初期化パケット」に対して、応答するノードについても、一度応答したのであれば、２回目以降（応答してから、一定の時間）は、応答をせずに、このパケットを無視しても良い。
【０１６２】
さて、このようにして、エコーネットアドレスサーバ（エコーネット機器Ｓ）よりエコーネットノードＩＤの値「Ｅｃ」の使用を許可されたエコーネット機器Ｃは（ＳＡ６）、次に、ネットＩＤの取得要求パケットをブロードキャストする（ＳＡ７）。何らかのノード（例えばエコーネットルータ）から、ネットＩＤの値の通知を受けた（ＳＡ８）エコーネット機器Ｃは、それらのアドレスを組み合わせることで、自分の全体のエコーネットアドレス（ＮＩＤ＋Ｅｃ）を決定する（ＳＡ９）。
【０１６３】
なお、ＳＡ３あるいはＳＡ４のような他のエコーネット機器からの応答からネットＩＤの値を取得することによって、ＳＡ７およびＳＡ８を省略してもよい。
【０１６４】
最後に、エコーネット機器Ｃは、このエコーネットアドレス（ＮＩＤ＋Ｅｃ）の値を、サブネット、あるいはエコーネット全体に対してブロードキャストして、自分がエコーネットに加入したことを通知する（ＳＡ１０）。
【０１６５】
次に、エコーネットアドレス初期化の他の例として、エコーネットアドレスサーバが存在しない分散方式の例について説明する。
【０１６６】
図１６及び図１７に、この場合のシーケンス例を示す。なお、図１６は、アドレスの重複が発生した場合であり、図１７は、アドレスの重複が発生しない場合である。なお、ここでは、図１４の場合と相違する点を中心に説明する。
【０１６７】
最初に、図１６のシーケンスを参照しながら、アドレスの重複が発生した場合を例にとって説明する。
【０１６８】
さて、エコーネット機器Ｃは、自分のエコーネットアドレスを決定するための手順に移る。
【０１６９】
まず、エコーネットアドレスを決定したいエコーネット機器Ｃは、図１４のＳＡ１と同様に、自分のノードＩＤの候補である仮ノードＩＤを最初に決める（ＳＢ１）。ここでは、一例として、図１５の手順にしたがって、仮ノードＩＤの値として「Ｅａ」の値が選択されたものとする。
【０１７０】
次いで、ここでも、エコーネットアドレスの取得を欲するノードであるエコーネット機器Ｃは、図１４のＳＡ２と同様のエコーネットアドレス初期化パケット（エコーネットアドレスサーバ検索、ノードＩＤの重複の確認、アドレス情報の通知の要求の３つの意味を含んだパケット）を、サブネットに対してブロードキャストする（ＳＢ２）。
【０１７１】
今回は、サブネット内にエコーネットアドレスサーバは存在しないため、エコーネットアドレスサーバ応答を送信するノードは存在しない。なお、予めエコーネットアドレスサーバは存在していたが、現在は、何らかの事情（例えば故障）により、そのサーバ機能が停止している場合や、サーバ機能を持ったノードがサブネット内に存在しない場合にも、このシーケンス例（図１６、図１７）が適用される。
【０１７２】
サブネット内の他のエコーネット機器（本例の場合、エコーネット機器Ａ，Ｂ）は、「自分のノードに関する情報を、エコーネット機器Ｃに対して通知する」ことを目的としたパケットである「エコーネットアドレス応答」を、前記エコーネットアドレス初期化パケットの応答として送信する（ＳＢ３，ＳＢ４）。このパケットの応答も、これまで説明しているように、エコーネットアドレス初期化パケットの受信後、所定の待機時間（例えば、自分のエコーネットノードＩＤの値と、定数Ｔの値の積の値）を待った後に、送信するものとしても良い。
【０１７３】
なお、この場合、エコーネット機器Ｃが当初に定めた仮ノードＩＤの値（＝「Ｅａ」）は、エコーネット機器ＡのエコーネットノードＩＤの値と一致しているため、エコーネット機器Ａが返答するエコーネットアドレス応答パケット（ＳＢ３）には、「ノードＩＤ＝Ｅａの値は、私が使っていますよ」という意味を含むことになる。
【０１７４】
なお、このエコーネットアドレス応答には、おのおののエコーネットノードが認識している、「現在、そのサブネット内で使われているエコーネットノードのノードＩＤの値全て」が含まれているようにしてもよい。例えば、ノードＩＤの値が０〜２５５まで存在しうるのであれば、それぞれに相当する２５６ビット長のビット列を用意し、「現在、サブネット内に存在すると思われるノードのノードＩＤに相当するビット列の順番のビットを１とし、存在しないと思われるノードに相当するビットを０とする」形で、返答すれば、２５６ビット長の情報ですむことになる。
【０１７５】
このパケットは、サブネット内の全てのノードが返送するため、エコーネット機器Ｃは、サブネット内の全てのエコーネット機器のＢｌｕｅｔｏｏｔｈアドレス、ＩＰアドレス、エコーネットアドレスについての情報を入手することが可能である。このことにより、エコーネット機器Ｃは、内部に持つアドレステーブルを、立ち上げ時には、常に最新の値にアップデートすることが可能になる。
【０１７６】
また、これまで説明しているように、このような「エコーネットアドレス応答」のパケットが、サブネット内の全てのエコーネットノードから返送されてくることを期待するため、エコーネット機器Ｃは、一定の待時間（例えば時間Ｔ’）の間、待つようにしてもよい。この場合、一定の待時間Ｔ’の間、待った時点で、「全てのノードは、エコーネットアドレス応答（またはエコーネットアドレスサーバ応答）を返送してくれた」と判断する（ＳＢ５）。
【０１７７】
ここで、自分の仮ノードＩＤ（＝「Ｅａ」）の値を、他のノードが使っていることが判明した場合には、これまでに受信したエコーネットアドレス応答のパケットから、現在そのサブネット内で使われていないエコーネットアドレス（ノードＩＤ）の値を算出する。これを、新しい仮ノードＩＤとする。ここでは、新しい仮ノードＩＤを「Ｅｃ」としたとする（ＳＢ６）。
【０１７８】
エコーネット機器Ｃは、この「Ｅｃ」の値の重複を調査するため、「サブネット内に重複するエコーネットノードＩＤの値を持ったノードが存在しないかどうかを確認するため」のパケットである「エコーネットノード確認」パケットを、サブネット内にブロードキャストする（ＳＢ７）。重複するノードが存在する場合には、この手順（ＳＢ６〜ＳＢ９の手順）を、エコーネットノードＩＤの値が決定するまで繰り返す。本例においては、サブネット内に重複するノードＩＤを持ったノードが存在しないため、例えば一定時間Ｔ’待った後（ＳＢ８）に、そのノードＩＤ（＝「Ｅｃ」）を、自分のエコーネットノードＩＤとして、正式に決定する（ＳＢ９）。
【０１７９】
その後は、図１４のシーケンス例の場合と同様に、ネットＩＤの取得を行い（ＳＢ１０，ＳＢ１１）、エコーネットアドレス全体を決定した後（ＳＢ１２）、そのアドレスをエコーネット全体に通知するためのブロードキャスト（ドメイン内ブロードキャスト）を行なう（ＳＢ１３）。
【０１８０】
なお、ＳＢ３あるいはＳＢ４のような他のエコーネット機器からの応答からネットＩＤの値を取得することによって、ＳＢ１０およびＳＢ１１を省略してもよい。
【０１８１】
一方、そのサブネット内に重複したエコーネットノードＩＤ（＝「Ｅｃ」）を持つノードが存在しなかった場合のシーケンスは、図１７のようになる。
【０１８２】
この場合には、エコーネットアドレス初期化パケット（ＳＣ２）に対する応答を全て収集し（ＳＣ３〜５）、サブネット内に、同ノードＩＤの値を使っているノードが存在しない（同ノードＩＤを持ったノードからの応答も無ければ、各ノードから通知されてくる使用中ノードＩＤ一覧の中にも無い場合）ことが確認できたため、この時点で、ノードＩＤ＝Ｅｃを、自分のエコーネットノードＩＤとして決定している（ＳＣ６）。
【０１８３】
以降の手順は、図１６の場合と同様である。なお、この場合も、ＳＣ３あるいはＳＣ４のような他のエコーネット機器からの応答からネットＩＤの値を取得することによって、ＳＣ７およびＳＣ８を省略してもよい。
【０１８４】
また、以上では、ネットワークに接続された機器の制御のためのプロトコルとして、エコーネットプロトコルを用いたが、これに限定されるものではなく、本発明は、他の種々の制御プロトコルについて適用可能である。
また、以上では、ローカルエリアネットワークとしてＢｌｕｅｔｏｏｔｈあるいはＩＰ（ＩＰ  ｏｖｅｒ  Ｂｌｕｅｔｏｏｔｈ）を例にとったが、他の方式のネットワークであっても本発明は適用可能である。
また、以上では、ローカルエリアネットワークとしてホームネットワークを例にとって説明したが、もちろん、企業内網など他のローカルネットワークであっても本発明は同様に適用可能である。
【０１８５】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【０１８６】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ２以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【０１８７】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１８８】
【発明の効果】
本発明によれば、自通信装置のエコーネットアドレスを効率的に決定できるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るホームネットワークシステムの構成例を示す図
【図２】同実施形態に係るエコーネット機器の構成例を示す図
【図３】同実施形態に係るエコーネット機器のアドレステーブルの構成例を示す図
【図４】同実施形態に係るホームネットワークシステムの全体のシーケンスの一例を示す図
【図５】同実施形態に係るエコーネット機器のエコーネットアドレス決定の処理手順の一例を示すフローチャート
【図６】同実施形態に係るエコーネット機器のマルチキャスト又はブロードキャストパケット受信時の処理手順の一例を示すフローチャート
【図７】同実施形態に係るカプセル化されたエコーネットパケットのフォーマットの一例を示す図
【図８】同実施形態に係るホームネットワークシステムの全体のシーケンスの他の例を示す図
【図９】同実施形態に係るホームネットワークシステムの全体のシーケンスの他の例を示す図
【図１０】同実施形態に係るエコーネット機器のアドレステーブルの構成例を示す図
【図１１】同実施形態に係るホームネットワークシステムの全体のシーケンスのさらに他の例を示す図
【図１２】同実施形態に係るホームネットワークシステムの全体のシーケンスのさらに他の例を示す図
【図１３】同実施形態に係るカプセル化されたエコーネットパケットのフォーマットの一例を示す図
【図１４】同実施形態に係るホームネットワークシステムの全体のシーケンスのさらに他の例を示す図
【図１５】同実施形態に係るエコーネット機器の仮ノードＩＤの初期値を決定する処理手順の一例を示すフローチャート
【図１６】同実施形態に係るホームネットワークシステムの全体のシーケンスのさらに他の例を示す図
【図１７】同実施形態に係るホームネットワークシステムの全体のシーケンスのさらに他の例を示す図
【符号の説明】
１…ＰＡＮ基地局
３…エコーネット機器
３１…Ｂｌｕｅｔｏｏｔｈインタフェース
３２…エコーネット処理部
３３…他プロトコル処理部
３２１…イーサフレーム送受信部
３２２…エコーネット制御処理部
３２３…アドレステーブル
３２４…ユーザインタフェース
３２５…アドレス解決部
３２６…初期化処理部
３２７…インターネット処理部
【図１】
0003590387.tif 000002
【図２】
0003590387.tif 000003
【図３】
0003590387.tif 000004
【図４】
0003590387.tif 000005
【図５】
0003590387.tif 000006
【図６】
0003590387.tif 000007
【図７】
0003590387.tif 000008
【図８】
0003590387.tif 000009
【図９】
0003590387.tif 000010
【図１０】
0003590387.tif 000011
【図１１】
0003590387.tif 000012
【図１２】
0003590387.tif 000013
【図１３】
0003590387.tif 000014
【図１４】
0003590387.tif 000015
【図１５】
0003590387.tif 000016
【図１６】
0003590387.tif 000017
【図１７】
0003590387.tif 000018