(57)【特許請求の範囲】
【請求項１】
ネットワークの同一サブネット上にある目的ノードを探索する制御装置であって、
前記制御装置は、
サブネット上のパケットを送受信する通信部と、
前記通信部を介して探索要求パケットを送信し、探索応答パケットを受信することによって目的ノードを探索する探索部と、
前記通信部を介してパケットを受信する毎に、サブネット上にある起動ノードの存在を受動的に検出して、ノード情報として管理するノード情報管理部と、
を備え、
前記探索部は、前記探索要求パケットを送信する際に、前記ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信するが、
その際、前記ノード情報のＩＰアドレスとして、前記制御装置の属するサブネットのサブネット体系に基づくＩＰアドレスとは異なるＩＰアドレスが誤って設定されていると判断すれば、前記ノード情報管理部にあるノード情報のＭＡＣアドレスを宛先ＭＡＣアドレスとし、当該誤って設定されているＩＰアドレスと同じサブネット体系であると推定されるアドレスであって、前記ノード情報管理部にあるどのノード情報のＩＰアドレスとも異なる、ダミーアドレスを生成して、当該ダミーアドレスを送信元ＩＰアドレスにして前記探索要求パケットを送信する、制御装置。
【請求項２】
前記探索部は、さらに、
前記探索要求パケットを送信した後に、前記ダミーアドレスを探索ＩＰアドレスとするＡＲＰリクエストを受信したとき、前記ダミーアドレスを送信者ＩＰアドレスとする当該ＡＲＰリクエストに対するＡＲＰリプライを送信する、請求項１に記載の制御装置。
【請求項３】
前記探索部により、当該ダミーアドレスを宛先ＩＰアドレスとする前記探索応答パケットを受信したとき、
前記制御装置は、
ＩＰアドレスが誤って設定されている目的ノードが探索されたことを示す情報を出力する、請求項１または２に記載の制御装置。
【請求項４】
前記探索部は、探索要求パケットを送信する際に、マルチキャストで送信するとともに、前記ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信する、請求項１から３のいずれかに記載の制御装置。
【請求項５】
前記探索部は、探索要求パケットを送信する際に、ブロードキャストで送信するとともに、前記ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信する、請求項１から３のいずれかに記載の制御装置。
【請求項６】
ネットワークの同一サブネット上にある複数のノードと、前記複数のノードから目的ノードを探索する制御装置とを備えるシステムであって、
前記制御装置は、
サブネット上のパケットを送受信する通信部と、
前記通信部を介して探索要求パケットを送信し、探索応答パケットを受信することによって目的ノードを探索する探索部と、
前記通信部を介してパケットを受信する毎に、サブネット上にある起動ノードの存在を受動的に検出して、ノード情報として管理するノード情報管理部と、
を備え、
前記探索部は、探索要求パケットを送信する際に、前記ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信するが、
その際、前記ノード情報のＩＰアドレスとして、前記制御装置の属するサブネットのサブネット体系に基づくＩＰアドレスとは異なるＩＰアドレスが誤って設定されていると判断すれば、前記ノード情報管理部にあるノード情報のＭＡＣアドレスを宛先ＭＡＣアドレスとし、当該誤って設定されているＩＰアドレスと同じサブネット体系であると推定されるアドレスであって、前記ノード情報管理部にあるどのノード情報のＩＰアドレスとも異なる、ダミーアドレスを生成して、当該ダミーアドレスを送信元ＩＰアドレスにして前記探索要求パケットを送信する、システム。
【請求項７】
前記システムは、ユーザ端末をさらに備え、
前記ユーザ端末は、ＩＰアドレスが誤って設定されている目的ノードが探索されたことを示す情報を画面上に表示する、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置およびシステムに関し、ネットワーク上の目的機器を探索するための制御装置およびシステムに関する。
【背景技術】
【０００２】
従来、探索機器が、ネットワーク上の目的機器（以下、被探索機器ともいう）を探索するプロトコルは、ＩＰ（Internet Protocol）レベルのパケットを用いるのが一般的である。具体的には、探索機器は、予め定められたマルチキャスト・アドレスを宛先アドレスに、予め定められたポートを宛先ポートにした、特定の形式の「探索要求パケット」を送信し、それに対応する「探索応答パケット」を受信することによって、目的機器を見つける。「探索要求パケット」の宛先アドレスには、マルチキャスト・アドレスの代わりに、ブロードキャスト・アドレスが用いられることもある。他方、被探索機器は、「探索応答パケット」を返信する際には、探索機器を宛先アドレスとする、ユニキャスト・アドレスで返信することが一般的である。探索機器が被探索機器を見つけるためには、行きの「探索要求パケット」が被探索機器に届き、かつ、帰りの「探索応答パケット」が探索機器に届くことが必要である。
しかし、ネットワーク環境によっては、マルチキャスト・パケットやブロードキャスト・パケットが転送されない場合がある。ＩＰレベルのパケットを転送するのはルーターの役割であるが、マルチキャスト転送機能を備えていない場合には、マルチキャスト・パケットは転送されない。また、ルーターがマルチキャスト転送機能を備えていたとしても、マルチキャストSnooping機能が正しく動作しないがために、しばしばマルチキャスト・パケットが転送されないことがある。また、ブロードキャスト・パケットもまれに転送されないことがある。特に無線ＬＡＮ（Local Area Network）環境においては、転送されないことがある。このようなネットワーク環境においては、被探索機器に「探索要求パケット」が届かないので、探索機器は被探索機器を見つけることができない。
【０００３】
そこで、マルチキャストまたはブロードキャストによる送信に加えて、宛先アドレスを特定のＩＰアドレスにした「探索要求パケット」をユニキャストで送信する方法が考えられる。
【０００４】
しかし、ユニキャストで送信するにしても、目的機器のＩＰアドレスが誤って設定されている場合には、ルーターは、目的機器にパケットを転送することができない。ここで、ＩＰアドレスが誤って設定されているというのは、正確に言うと、ルーターの定めるネットワーク・セグメントの範囲にないという意味である。ルーターの定めるネットワーク・セグメントについては、ルーターの設定画面等で確認できる。例えば、ＬＡＮ側のＩＰアドレスが１９２．１６８．１１．１、サブネットマスクが２５５．２５５．２５５．０となっていれば、ネットワーク・セグメントの範囲内にあるＩＰアドレスとしては１９２．１６８．１１．２〜１９２．１６８．１１．２５４までとなる。ルーターは、自身が管轄しているネットワーク・セグメントの範囲外にあるＩＰアドレスに対しては、より上位のルーターへ転送しようとする。従って、ＬＡＮ側に転送されないために、目的機器にパケットが到達することはない。
【０００５】
ＩＰアドレスが誤って設定される場合として、例えば、ＤＨＣＰ（Dynamic Host Configuration Protocol）が無効に設定されているケースと、ルーターが交換されるケースが想定される。ネットワークに接続される機器は、通常、初期状態でＤＨＣＰが有効になっており、ネットワークに接続するとルーターから動的にＩＰアドレスが割り振られる。しかし、ＤＨＣＰが無効に設定されているケースでは、機器のＩＰアドレスは静的なＩＰアドレスとなってしまい、ＩＰアドレスの設定が誤っている可能性がある。また、ルーターが交換されるケースでは、各機器に、交換後のルーターによってＩＰアドレスが再設定されないときは、各機器のＩＰアドレスの設定は誤っている可能性がある。
【０００６】
探索機器は、ＩＰアドレスの設定が誤っている目的機器であっても、同じルーターの下に接続されているならば当該機器を発見できることが望まれる。
【０００７】
探索機器が、目的機器を探索する技術として、例えば、特許文献１（特開２００９−４９８９４号公報）は、「複数の機器がネットワークを介して通信するシステムであって、当該システムに属する他の機器から発見されるために、所定時間おきに近隣のルーターに対して小規模な通信を行う機能を有する被発見側機器と、上記システムに属する他の機器を発見するために、自身の近隣のルーターから接続装置情報を取得し、当該接続装置情報に記載された機器と通信することで所望の機器であることを確認する機能を有する発見側機器とを備えるネットワーク通信システム」を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−４９８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１では、同じルーターに接続された端末装置（またはノード）でありながら、ＩＰアドレスの設定が誤っている端末装置（またはノード）を発見するための構成は示されていない。したがって、特許文献１では、上記の要望に応えることはできない。
【００１０】
本開示は、かかる実情に鑑み考え出されたものであり、ある局面における目的は、同じサブネットに接続されたノードのうち、アドレスの設定が誤っているノードを探索する制御装置およびシステムを提供することである。
【課題を解決するための手段】
【００１１】
一実施の形態に従うと、ネットワークの同一サブネット上にある目的ノードを探索する制御装置は、サブネット上のパケットを送受信する通信部と、通信部を介して探索要求パケットを送信し、探索応答パケットを受信することによって目的ノードを探索する探索部と、通信部を介してパケットを受信する毎に、サブネット上にある起動ノードの存在を受動的に検出して、ノード情報として管理するノード情報管理部と、を備える。
【００１２】
探索部は、探索要求パケットを送信する際に、ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信するが、その際、ノード情報のＩＰアドレスが誤って設定されていると判断すれば、ノード情報管理部にあるノード情報のＭＡＣアドレスを宛先ＭＡＣアドレスとし、当該誤って設定されているＩＰアドレスに近いダミーアドレスを生成して、当該ダミーアドレスを送信元ＩＰアドレスにして探索要求パケットを送信する。
【００１３】
好ましくは、探索部は、さらに、探索要求パケットを送信した後に、ダミーアドレスを探索ＩＰアドレスとするＡＲＰリクエストを受信したとき、ダミーアドレスを送信者ＩＰアドレスとする当該ＡＲＰリクエストに対するＡＲＰリプライを送信する。
【００１４】
好ましくは、探索部により、当該ダミーアドレスを宛先ＩＰアドレスとする探索応答パケットを受信したとき、制御装置は、ＩＰアドレスが誤って設定されている目的ノードが探索されたことを示す情報を出力する。
【００１５】
好ましくは、探索部は、探索要求パケットを送信する際に、マルチキャストで送信するとともに、ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信する。
【００１６】
好ましくは、探索部は、探索要求パケットを送信する際に、ブロードキャストで送信するとともに、ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信する。
【００１７】
他の実施の形態によれば、ネットワークの同一サブネット上にある複数のノードと、複数のノードから目的ノードを探索する制御装置とを備えるシステムが提供される。
【００１８】
制御装置は、サブネット上のパケットを送受信する通信部と、通信部を介して探索要求パケットを送信し、探索応答パケットを受信することによって目的ノードを探索する探索部と、通信部を介してパケットを受信する毎に、サブネット上にある起動ノードの存在を受動的に検出して、ノード情報として管理するノード情報管理部と、を備える。
【００１９】
探索部は、探索要求パケットを送信する際に、ノード情報管理部にあるノード情報のＩＰアドレスを宛先ＩＰアドレスにしてユニキャストで送信するが、その際、ノード情報のＩＰアドレスが誤って設定されていると判断すれば、ノード情報管理部にあるノード情報のＭＡＣアドレスを宛先ＭＡＣアドレスとし、当該誤って設定されているＩＰアドレスに近いダミーアドレスを生成して、当該ダミーアドレスを送信元ＩＰアドレスにして探索要求パケットを送信する。
【発明の効果】
【００２０】
本開示のある局面によれば、制御装置は、ダミーアドレスを送信元にした探索要求パケットに対する探索応答パケットを受信することにより、サブネット体系のアドレスとは異なるアドレスが設定されているノードを探索（発見）することができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１に係る通信ネットワーク１の概略構成を説明するための図である。
【図２】図１のＨＥＭＳ（Home Energy Management System）コントローラ１００のブロック図である。
【図３】図１のＨＥＭＳコントローラ１００のソフトウェア構成を説明するための図である。
【図４】実施の形態１に係るノードリスト１２３の構成の一例を示す図である。
【図５】実施の形態１に係るノード情報の構成の一例を示す図である。
【図６】ＡＲＰパケットの構成を示す図である。
【図７】任意のＩＰパケットの構成を示す図である。
【図８】実施の形態１に係るＨＥＭＳコントローラ１００の機能的構成を説明するための機能ブロック図である。
【図９】実施の形態１に係るノード情報の削除処理を示すフローチャートである。
【図１０】実施の形態１に係るＡＲＰリクエストまたはＡＲＰリプライを受信した時のノードリストの情報更新の処理を示すフローチャートである。
【図１１】実施の形態１に係るＩＰパケットを受信した時のノードリスト１２３の情報更新の処理を示すフローチャートである。
【図１２】本実施の形態１に係る目的ノードを探索する処理を示すフローチャートである。
【図１３】本実施の形態２に係る目的ノードを探索する処理を示すフローチャートである。
【図１４】実施の形態１に係るサブネットマスク表の一例を示す図である。
【図１５】実施の形態１に係るダミーのＩＰアドレスを用いた探索シーケンスを模式的に示す図である。
【図１６】図１５の探索シーケンスの探索要求パケットの構成の一例を示す図である。
【図１７】図１５の探索シーケンスのＡＲＰリクエストの構成の一例を示す図である。
【図１８】図１５の探索シーケンスのＡＲＰリプライの構成の一例を示す図である。
【図１９】図１５の探索シーケンスの探索応答パケットの構成の一例を示す図である。
【図２０】実施の形態３に係る情報の出力例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２３】
［実施の形態１］
本実施の形態では、サブネットにおいて探索機器により目的ノードの探索処理（図１〜図１９参照）が実施される。また、この探索処理では、ＩＰアドレスの設定が誤っている被探索機器を目的ノードとして探索（発見）するために、ダミーのＩＰアドレスを用いた探索処理（図１４〜図１９参照）が実施される。
【００２４】
＜通信ネットワーク１の概略構成＞
図１は、実施の形態１に係る通信ネットワーク１の概略構成を説明するための図である。図１を参照して、通信ネットワーク１は、無線ＬＡＮルーター３０２およびサブネット１０を備える。無線ＬＡＮルーター３０２は、インターネット等の外部のネットワーク９００と接続する。ネットワーク９００には、クラウドサーバ等のサーバ装置９０１が接続される。サーバ装置９０１は、ブラウザを有した端末９０２と通信する。端末９０２は、スマートフォン、タブレット端末、パーソナルコンピュータ等のブラウザを有した端末であれば何であってもよい。
【００２５】
サブネット１０は、ＨＥＭＳコントローラ１００、複数のノード２０１，２０２，２０３…、およびスイッチングハブ３００を備える。「ノード」とは、ＩＰアドレスを持つ通信機器（ＩＰ対応機器）である。一般的に、ノードは、パーソナルコンピュータ、プリンタ、ＮＡＳ（Network Attached Storage、ネットワークストレージともいう）、タブレット端末、ＡＶ（Audio Visual）機器、および白物家電等を含む。図１では、無線ＬＡＮルーター３０２は、有線ＬＡＮ８０３を介してＨＥＭＳコントローラ１００、ノード２０２、およびスイッチングハブ３００に接続され、また、無線ＬＡＮ８０２を介してノード２０３に接続される。ノード２０１は、スイッチングハブ３００に接続され、さらに、スイッチングハブ３００を経由して無線ＬＡＮルーター３０２に接続される。
【００２６】
無線ＬＡＮルーター３０２に接続される複数のノード２０１，２０２，２０３，…のうちいくつかが、ＥＣＨＯＮＥＴ Ｌｉｔｅ機器に相当する「ＥＣＨＯＮＥＴ Ｌｉｔｅノード」である。本実施の形態では、例えば、ノード２０２と２０３がＥＣＨＯＮＥＴ Ｌｉｔｅノードである。ノード２０１は電力モニタである。
【００２７】
ＨＥＭＳコントローラ１００は、通信ネットワーク１において制御装置として機能する。具体的には、ＨＥＭＳコントローラ１００は、複数のノード２０１，２０２，２０３，…と通信することにより、複数のノード２０１，２０２，２０３，…を制御する。
【００２８】
本実施の形態では、新規ノード２０９がサブネット１０に参加し、またサブネット１０に参加しているノード（以下、「既存ノード」とも称する）がサブネット１０から離脱することがある。なお、新規ノード２０９がネットワークに参加した場合には、新規ノード２０９は既存ノードとして扱われる。
【００２９】
図１を参照して、無線ＬＡＮルーター３０２、ＨＥＭＳコントローラ１００、および各ノードに関連して示される括弧内の数字（たとえば、192.168.11.1）は、当該機器またはノードのＩＰアドレスを表している。無線ＬＡＮルーター３０２は、ＤＨＣＰ機能を有する。無線ＬＡＮルーター３０２は、ＤＨＣＰ機能により、ＨＥＭＳコントローラ１００、および複数のノード２０２，２０３，…に対して、図示されるようなＩＰアドレスを自動的に付与する。付与されたＩＰアドレスは、各ノードが有する記憶部に格納されるとともに、ＨＥＭＳコントローラ１００では、後述する記憶部１６０に格納される。また、ＨＥＭＳコントローラ１００および各ノードは、固有の番号を示すＭＡＣ（Media Access Control）アドレスが予め設定（記憶）されたＬＡＮカード等のネットワークアダプタ（図示せず）を有する。ここでは、ＭＡＣアドレスは、ノードまたはＨＥＭＳコントローラ１００に「固有の識別情報」の一実施例であり、また、ＩＰアドレスはノードまたはＨＥＭＳコントローラ１００に割当てられる「可変の識別情報」の一実施例である。
【００３０】
図１を参照して、無線ＬＡＮルーター３０２のサブネットマスクが255.255.255.0に設定されていたとする。無線ＬＡＮルーター３０２によって付与されたＩＰアドレスから分かるように、ＩＰアドレスのうちのネットワークアドレスとして使用される部分（たとえば“192.168.11.5”であれば“192.168.11”の部分）が共通であるノードの集合が１つのサブネット１０（分割されたネットワーク）を構成している。
【００３１】
ノード２０１には、本来ならＩＰアドレスは“192.168.11.Ｘ”が割当てられるはずである。しかし、図１では、ノード２０１には、ＤＨＣＰが無効に設定されており、静的なＩＰアドレス、例えば、 “192.168.100.100”が設定されているものとする。このＩＰアドレスは、無線ＬＡＮルーター３０２が管理するサブネット１０の範囲内ではない。従って、ＨＥＭＳコントローラ１００（探索機器）は、ノード２０１（被探索機器）との間で、通常の方法では、ＩＰレベルのパケットを送受信することができない。
【００３２】
しかしながら、ＨＥＭＳコントローラ１００（探索機器）は、ノード２０１（被探索機器）から送信されるＡＲＰ（Address Resolution Protocol）リクエストを受信できる。ＡＲＰリクエストは、ＭＡＣレベルで送受信されるからである。したがって、ＨＥＭＳコントローラ１００は、ノード２０１を、起動ノードとして検出することができる。
【００３３】
本実施の形態では、ノード２０１にＩＰアドレスが誤って設定されている場合でも、ＨＥＭＳコントローラ１００は、ダミーのＩＰアドレスを用いて、ＩＰレベルで、ノード２０１を探索することができる。
【００３４】
なお、本実施の形態では、ＨＥＭＳコントローラ１００は、サブネット１０に存在する目的ノードを探索する主体である探索機器の一例であり、ノード２０１，２０２，２０３，…それぞれは、探索の対象となり得る被探索機器の一例である。また、本実施の形態においては、「起動ノード」とは、電源が入り起動中のノードをいう。また、本実施の形態では、“ＩＰアドレスの誤った設定”とは、被探索機器に、サブネット１０のサブネット体系に基づくＩＰアドレスとは異なるＩＰアドレスが設定されていることを示す。探索機器による探索処理および上述のダミーのＩＰアドレスを用いた探索処理の詳細については、後述する。
【００３５】
＜ＨＥＭＳコントローラの構成＞
図２は、図１のＨＥＭＳコントローラ１００のブロック図である。図２を参照して、ＨＥＭＳコントローラ１００は、ＣＰＵ（Central Processing Unit）１１０１を備える。ＨＥＭＳコントローラ１００は、さらに、ＣＰＵ１１０１に接続されたＲＯＭ（Read Only Memory）１１０７、発光素子１１０３、高速通信インターフェイス１１０４、電源１１０５、時間（時刻）を測定するタイマ１１０６、ＲＡＭ（Random Access Memory）１１０２、プッシュボタン１１０８、スライドスイッチ１１０９、およびリセットスイッチ（図示しない）を備える。
【００３６】
ＣＰＵ１１０１は、ＨＥＭＳコントローラ１００の全体的な動作を制御する。ＣＰＵ１１０１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を受け付ける。また、ＣＰＵ１１０１は、発光素子１１０３に発光指示を出力する。
【００３７】
ＲＯＭ１１０７はプログラムや変更不可なデータ等が格納される不揮発性のメモリデバイスである。ＲＡＭ１１０２はプログラムがロードされ、プログラムのワークエリアやファイルシステム、変更可能なデータ等が格納される揮発性のメモリデバイスである。高速通信インターフェイス１１０４は、無線ＬＡＮルーター３０２との間でＥｔｈｅｒｎｅｔ（登録商標）を用いた通信を行なうインターフェイスである。電源１１０５は、ＨＥＭＳコントローラ１００の各部に電力を供給する。
【００３８】
＜ＨＥＭＳコントローラ１００のソフトウェア構成＞
図３は、図１のＨＥＭＳコントローラ１００のソフトウェア構成を説明するための図である。図３を参照して、ＨＥＭＳコントローラ１００は、デバイス側アプリケーション１１０、ホスト側アプリケーション１２０、および上位層１３０を少なくとも備える。デバイス側アプリケーション１１０はＵＤＰ（User Datagram Protocol）ソケット１１１を含む。ＵＤＰソケット１１１は送信用と受信用に使用される。また、ホスト側アプリケーション１２０は、送信用のＵＤＰソケット１２１、および送受信用のＲＡＷソケット１２２を含む。また、ホスト側アプリケーション１２０は、ＲＡＭ１１０２にノードリスト１２３（後述する）を記憶する。
【００３９】
デバイス側アプリケーション１１０は、ＨＥＭＳコントローラ１００自身が、ＥＣＨＯＮＥＴ Ｌｉｔｅにおけるコントローラクラスとして振る舞うためのアプリケーションである。デバイス側アプリケーション１１０は、ノード２０１，２０２，２０３，…から要求があれば、それらを受信して、当該要求に対して応答または通知を送信する。デバイス側アプリケーション１１０は、本実施の形態にとって必要ではない。
【００４０】
ホスト側アプリケーション１２０は、ＲＡＷソケット１２２を通じて、サブネット１０に接続された起動ノードからパケットを受信する。ホスト側アプリケーション１２０は、ノードリスト１２３の情報を最新の状態に維持する。
【００４１】
ホスト側アプリケーション１２０は、さらに、上位層１３０（家電制御アプリケーション等）にＡＰＩ（Application Programming Interface）を提供する。ホスト側アプリケーション１２０は、上位層１３０からの指示を受けて、最新のＥＣＨＯＮＥＴ Ｌｉｔｅ機器のリストなどを上位層１３０に返す。また、ホスト側アプリケーション１２０は、上位層１３０からの指示を受けて、ノードへ要求を送信する。また、ホスト側アプリケーション１２０は、通知または当該要求に対する応答を当該ノードから受信し、上位層１３０へ返す。
【００４２】
なお、上位層１３０としては、家電制御アプリケーション、家電制御ＣＧＩ（Common Gateway Interface）などがある。これらは互いに独立である。各々が独立して、ホスト側アプリケーション１２０と通信する。家電制御アプリケーションは、サーバ装置９０１と通信することによって、端末９０２からのユーザ指示を間接的に受信することができる。
【００４３】
デバイス側アプリケーション１１０およびホスト側アプリケーション１２０の各々は、パケットを送信するときは送信先ＵＤＰポート番号を３６１０にする。送信元ＵＤＰポート番号は任意で良い。デバイス側アプリケーション１１０およびホスト側アプリケーション１２０の各々は、パケットを受信するときは、送信先ＵＤＰポート番号が３６１０であるパケットを処理する。
【００４４】
ホスト側アプリケーション１２０は、送信用にＵＤＰソケット１２１を開く。なお、上述したように、ホスト側アプリケーション１２０は、ＵＤＰソケット１２１の送信元ポート番号を任意に設定する。
【００４５】
ホスト側アプリケーション１２０は、送受信用にＲＡＷソケット１２２を開く。ＲＡＷソケット１２２を開くのは、パケットを受信すると同時に送信元ＭＡＣアドレスも得るためである。ＲＡＷソケット１２２は、サブネット１０上を伝送されるデータのうち、ネットワークインターフェイス“eth0”で受信できるデータをすべて受信する。ホスト側アプリケーション１２０は、受信した全てのデータの中から、ＵＤＰ／ＩＰかつ宛先ＵＤＰポート番号が３６１０であるデータを利用する。あるいは、後述するＡＲＰパケットまたは任意のＩＰパケットなどを利用する。
【００４６】
上記の構成を有したＨＥＭＳコントローラ１００は、サブネット１０上の目的ノードを制御するために、目的ノードを探索する。より詳しくは、ＨＥＭＳコントローラ１００は、探索要求パケットをマルチキャストあるいはブロードキャストでサブネット１０に送信する。それに加えて、ＨＥＭＳコントローラ１００は、探索要求パケットをユニキャストでも送信する。ここで目的ノードとは、被探索機器のことである。図１の例で言えば、電力モニタ２０１、ＥＣＨＯＮＥＴ Ｌｉｔｅノード２０２、２０３が相当する。
【００４７】
本実施の形態では、ＨＥＭＳコントローラ１００は、サブネット１０における起動ノードの最新の情報（後述するノード情報）を、ノードリスト１２３（詳細は後述する）によって管理する。ＨＥＭＳコントローラ１００は、探索要求パケットを送信する場合は、マルチキャストあるいはブロードキャストで送信するとともに、サブネット１０上に起動しているノードのノード情報に基づき、当該ノード情報のＩＰアドレスを宛先アドレスとする探索要求パケットをユニキャストで送信する。これにより、マルチキャストあるいはブロードキャストが転送されないようなネットワーク環境であっても、ＨＥＭＳコントローラ１００は、目的ノードを見つけることができる。
【００４８】
（ノードリストの構成）
ＨＥＭＳコントローラ１００が有するノードリスト１２３には、サブネット１０における「起動ノード」の情報を管理するためのノード情報が登録される。図４は、ノードリスト１２３の構成を説明するための図である。ノードリスト１２３は複数のノード情報を含むコンテナである。サブネット１０で見つかった１つのノードにつき１つのノード情報がある。ノードリスト１２３の構成方法は、いろいろ考えられるが、目的とするノード情報を高速に検索できるようにハッシュテーブルの構成とするのが良い。可変長の配列（図４の例では、[0]から[22]まで23個の配列要素がある）と、配列要素のそれぞれはリンクリストで構成される。配列の長さは、ノード情報の個数が増えるに従って動的に拡張される。図４の構成は、ハッシュテーブルの構成としては一般的なものである。ノード情報は、当該ノードのＭＡＣアドレスとＩＰアドレスを少なくとも含む。
【００４９】
ノードリスト１２３からノード情報を読み出す時には、パケットを受信した送信元ＭＡＣアドレスに基づき検索される。具体的には、当該ＭＡＣアドレスから所定ハッシュ演算により算出されたハッシュ値が、ノードリスト１２３の配列の長さ（図４の例では、値２３）で除算される。そして、ノードリスト１２３において、当該余りを示す値に対応した要素のリンクリストをたどっていき、当該ＭＡＣアドレスに一致するＭＡＣアドレスを有したノード情報が読み出される。
【００５０】
ノード情報の書き込み時には、先ほどと同様に、パケットを受信した送信元のＭＡＣアドレスから算出されたハッシュ値が、ノードリスト１２３の配列の長さ（図４の例では、値２３）で除算される。そして、ノードリスト１２３において、当該余りを示す値に対応した要素のリンクリストの先頭または最後に、当該ノード情報が登録される。
【００５１】
図５は、本実施の形態１に係るノード情報の構成の一例を示す図である。図５を参照して、ノード情報は、当該ノードのＭＡＣアドレス、ＩＰアドレス、当該ノード情報をノードリスト１２３から削除すべき時刻、削除前ＡＲＰ（Address Resolution Protocol）リクエスト送信済みフラグ、および探索要求パケット送信カウンタを少なくとも含む。
【００５２】
サブネット１０においては、上述したようにノードが参加または離脱する可能性がある等、サブネット１０の状態は変化する。この変化に追従するために、ノードリスト１２３からは起動が確認されないノード情報は削除されなければならない。ノード情報には、削除すべき時刻が含まれており、削除すべき時刻に到達すれば削除される。例えば、削除すべき時刻は、ＨＥＭＳコントローラ１００が、当該ノード情報のパケットを最後に（最近に）受信したときから、所定時間後（例えば１５分経過後の）時刻とする。ＨＥＭＳコントローラ１００は、削除すべき時刻を、当該ノードからパケットを受信する毎に更新する。削除すべき時刻の設定方法の詳細は後述する。
【００５３】
削除前ＡＲＰリクエスト送信済みフラグは、ＨＥＭＳコントローラ１００がノード情報を削除する直前にＡＲＰリクエスト送信済みであるか否かを判断するために使われる。削除前ＡＲＰリクエスト送信済みフラグが０であれば、当該ノードのＩＰアドレスを探索ＩＰアドレスにしてＡＲＰリクエストを送信する。その応答があれば、ノード情報は削除されない。削除前ＡＲＰリクエスト送信済みフラグの初期値は０とする。
【００５４】
探索要求パケット送信カウンタは、ＨＥＭＳコントローラ１００が、当該ノードが目的とするノードであるかどうかを調べるために探索要求パケットを送信した回数をカウントしたものである。探索要求パケットが届かない可能性もあるので、同一ノードに対して探索要求パケットを何度も送信することとする。探索要求パケット送信カウンタの初期値は０である。
【００５５】
＜パケットの構成＞
サブネット１０上を伝送されるデータを説明する。本実施の形態では、伝送データはパケットの構成を有する。
【００５６】
図６は、ＡＲＰパケットの構成を示す図である。ＡＲＰリクエストまたはＡＲＰリプライは、図６のＡＲＰパケットの構成を有する。
【００５７】
図６を参照して、ＡＲＰパケットは、Ethernetヘッダ部と、ＡＲＰプロトコル部を含む。Ethernetヘッダ部は、宛先ノードのＭＡＣアドレス、送信元ノードのＭＡＣアドレス、および上位層プロトコルのタイプを含む。上位層がＡＲＰパケットである場合は、このプロトコルのタイプは“ＡＲＰ”を示す。
【００５８】
ＡＲＰプロトコル部は、ネットワークの物理的な媒体（本実施の形態ではEthernet）の種類、ＡＲＰプロトコルで取り扱う上位のプロトコルの種類（本実施の形態ではＩＰ）、物理層で利用されるアドレスの長さを示すハードウェアサイズ、および上位プロトコルで利用されるアドレスの長さを示すプロトコルサイズを含む。さらに、ＡＲＰの動作の種類を表すためのＯＰコード、送信者ＭＡＣアドレス、送信者ＩＰアドレス、探索ＭＡＣアドレス、および探索ＩＰアドレスを含む。ＯＰコードには、ＡＲＰ要求を表す“request”およびＡＲＰ要求に対する応答を表す“reply”のいずれかがセットされる。
【００５９】
送信者ＭＡＣアドレスおよび送信者ＩＰアドレスは、ＡＲＰリクエストまたはＡＲＰリプライを送信したノード自身のＭＡＣアドレスおよびＩＰアドレスをそれぞれ示す。
【００６０】
ＡＲＰパケットがＡＲＰリクエストを示す場合には、探索ＭＡＣアドレスには０にセットされ、探索ＩＰアドレスには探索したいＩＰアドレスがセットされる。ＡＲＰパケットがＡＲＰリプライを示す場合には、探索ＭＡＣアドレスおよび探索ＩＰアドレスには、対応するＡＲＰリクエストの送信ノードのＭＡＣアドレスおよびＩＰアドレスがそれぞれセットされる。
【００６１】
図７は、任意のＩＰパケットの構成を示す図である。図７を参照して、任意のＩＰパケットは、Ethernetヘッダ部と、ＩＰヘッダ部とペイロード部を含む。Ethernetヘッダ部は、宛先ノードのＭＡＣアドレス、送信元ノードのＭＡＣアドレス、および上位層プロトコルのタイプを含む。上位層がＩＰパケットである場合は、このプロトコルのタイプは“ＩＰ”を示す。
【００６２】
ＩＰヘッダ部は、ＩＰプロトコルのバージョンとＩＰヘッダ部分のサイズとを示すヘッダ長、サービスタイプ、パケット長、ＩＰパケットに識別子、フラグとフラグメントオフセット、ＴＴＬ（time to live）、上位層のプロトコル番号、および整合性検査のためのヘッダチェックサムを含む。上位層のプロトコル番号には、例えば、上位層がＵＤＰパケットまたはＤＨＣＰパケットならば“１７”が入る。ＩＧＭＰパケットならば“２”が入る。
【００６３】
さらに、ＩＰヘッダ部は、当該ＩＰパケットの送信元ノードのＩＰアドレスを示す送信元ＩＰアドレス、および当該ＩＰパケットの宛先ノードのＩＰアドレスを含む。さらにペイロード部には、上位層の具体的なデータが含まれる。例えば、上位層がＵＤＰパケットの場合ならばＵＤＰヘッダ部が続く。
【００６４】
本実施の形態では、ＨＥＭＳコントローラ１００および各ノードは、パケットを受信した場合には、当該パケットのタイプに基づき、当該パケットはＡＲＰパケットであるかＩＰパケットであるかを判断することができる。
【００６５】
＜ＭＡＣアドレスとＩＰアドレスとの組が正しくない場合＞
ＨＥＭＳコントローラ１００が、任意のＩＰパケットを受信したとき、その送信元ＭＡＣアドレスと送信元ＩＰアドレスとの組が正しくない可能性がある。
【００６６】
例えば、任意のＩＰパケットが、無線ＬＡＮルーター３０２を超えたネットワーク（すなわち、サブネット１０とは異なるネットワーク）から送信されたものである場合には、当該ＩＰパケットの送信元ＩＰアドレスには真の送信者のＩＰアドレスがセットされているが、送信元ＭＡＣアドレスには、無線ＬＡＮルーター３０２のＭＡＣアドレスがセットされている。
【００６７】
また、ＩＰパケットがＤＨＣＰパケットである場合は、送信元ＩＰアドレスは、一律に０．０．０．０にセットされている。このような場合は、送信元ＭＡＣアドレスと送信元ＩＰアドレスとの組が正しくないと言える。
【００６８】
＜ノードリスト１２３の管理＞
次に、ＨＥＭＳコントローラ１００によるノードリスト１２３の管理について説明する。ノードリスト１２３は初期状態で空であるが、ノードリスト１２３の管理処理によって、サブネット１０における「起動ノード」の情報の追加または削除が行われる。
【００６９】
図９は、実施の形態１に係るノードリスト１２３からノード情報を削除するための処理を示すフローチャートである。
【００７０】
図１０は、本実施の形態１に係るＡＲＰリクエストまたはＡＲＰリプライを受信した時のノードリスト１２３の情報更新の処理を示すフローチャートである。
【００７１】
図１１は、本実施の形態１に係る任意のＩＰパケットを受信した時のノードリスト１２３の情報更新の処理を示すフローチャートである。
【００７２】
（ノード情報の削除処理）
図９を参照して、ノードリスト１２３からノード情報を削除する処理を説明する。図９の処理は定期的に（例えば２５０ｍｓ毎に）実行される。
【００７３】
まず、ＨＥＭＳコントローラ１００は、ノードリスト１２３から次のノード情報を取り出す（ステップＳ３）。次のノード情報がなければ（ステップＳ５でＮＯ）、処理を終了する。次のノード情報があれば（ステップＳ５でＹＥＳ）、ＨＥＭＳコントローラ１００は、当該ノードがタイムアウトされたか（削除すべき時刻になったか）否かを判断する（ステップＳ７）。
【００７４】
当該ノードがタイムアウトされていなければ（ステップＳ７でＮＯ）、ステップＳ３に戻る。ノードリスト１２３から次のノード情報を取り出して、ステップＳ５以降の処理が同様に実行される。
【００７５】
当該ノードがタイムアウトされていれば（ステップＳ７でＹＥＳ）、ＨＥＭＳコントローラ１００は、当該ノードの削除前ＡＲＰリクエスト送信済みフラグが“０”であるか否かを判断する（ステップＳ９）。
【００７６】
削除前ＡＲＰリクエスト送信済みフラグが“０”であるならば（ステップＳ９でＹＥＳ）、ＨＥＭＳコントローラ１００は、当該ノードのＩＰアドレスを探索ＩＰアドレスとするＡＲＰリクエストを送信する。ただし、当該ノードのＩＰアドレスが０．０．０．０のときは（一時的なＩＰアドレスなので）ＡＲＰリクエストを送信せずすぐに当該ノードのノード情報を削除する（ステップＳ１１）。
【００７７】
ＨＥＭＳコントローラ１００は、上記のＡＲＰリクエストを送信した場合に、ノード情報のリクエスト送信済みフラグを“１”にセットし（ステップＳ１３）、当該ノードの削除すべき時刻を１０秒間だけ延長する（ステップＳ１５）。その後、ステップＳ３に戻る。
【００７８】
ステップＳ９において、削除前ＡＲＰリクエスト送信済みフラグが“０”でないならば（ステップＳ９でＮＯ）、ＨＥＭＳコントローラ１００は、ノードリスト１２３から当該ノードのノード情報を削除する（ステップＳ１７）。その後、ステップＳ３に戻る。
【００７９】
このように、ＨＥＭＳコントローラ１００は、基本的には、各ノード情報の削除すべき時刻になれば当該ノード情報をノードリスト１２３から削除するが、削除する直前に当該ノードがまだ起動しているかどうかを確認するために（ＲＡＷソケット１２２を通じて）ＡＲＰリクエストを送信する。当該ノードからＡＲＰレスポンス（または任意のＩＰパケット）を１０秒以内に受信できなければ当該ノード情報は削除される。当該ノードからＡＲＰレスポンス（または任意のＩＰパケット）を受信できれば当該ノード情報は削除されない。
【００８０】
（ノード情報の登録処理）
ＨＥＭＳコントローラ１００は、ＲＡＷソケット１２２を通じてパケットを受信したときに、送信元ＭＡＣアドレスに基づきノードリスト１２３へノード情報を登録する。この対象となるパケットは、ＡＲＰリプライまたはＡＲＰリクエストのパケット、および任意のＩＰパケットである。
【００８１】
−ＡＲＰリプライ／ＡＲＰリクエスト受信時の登録処理−
まず、図１０を参照してＡＲＰリプライまたはＡＲＰリクエストのパケットを受信した場合の登録処理を説明する。図１０の処理は、ＡＲＰリクエストまたはＡＲＰリプライを受信する毎に実行される。また、ＨＥＭＳコントローラ１００により生成されたダミーのＩＰアドレスは、ＲＡＭ１１０２に格納されている。
【００８２】
ただし、送信元ＭＡＣアドレスと送信者ＭＡＣアドレスとが一致しない場合もあるが、その場合は、ＨＥＭＳコントローラ１００は図１０の処理を実施しない（重複ＩＰアドレスを検出したときに、ルーターからもＡＲＰリプライが来ることがある）。従って、図１０に記載された送信者ＭＡＣアドレスは、送信元ＭＡＣアドレスと同一の値である。
【００８３】
ＨＥＭＳコントローラ１００は、まず、受信されたパケットの内容に基づき、探索ＩＰアドレスとしてダミーのＩＰアドレスが設定されたＡＲＰリクエスト（図１７参照）を受信したかを判断する（ステップＳ１８）。
【００８４】
ＨＥＭＳコントローラ１００は、受信されたパケットは、探索ＩＰアドレスとしてダミーのＩＰアドレスが設定されたＡＲＰリクエストであると判断した場合（ステップ１８でＹＥＳ）、ＨＥＭＳコントローラ１００は、ＲＡＷソケット１２２を介して、ＡＲＰリプライ（図１８参照）を送信する（ステップＳ１９）。その後、処理は、ステップＳ２０に移る。ステップＳ１８〜Ｓ１９の処理については、後述する図１５のパスＰ３（ＡＲＰリプライ）に相当する。
【００８５】
一方、ＨＥＭＳコントローラ１００は、受信されたパケットは、探索ＩＰアドレスとしてダミーのＩＰアドレスが設定されたＡＲＰリクエストではないと判断した場合（ステップ１８でＮＯ）、処理は、ステップＳ２０に移行する。
【００８６】
ステップＳ２０では、ＨＥＭＳコントローラ１００は、受信したパケット（ＡＲＰリクエストまたはＡＲＰリプライ）の送信者ＭＡＣアドレスをキーに、ノードリスト１２３からノード情報を取り出す（ステップＳ２０）。当該送信者ＭＡＣアドレスに一致するノード情報があるか否かを判断する（ステップＳ２１）。
【００８７】
当該送信者ＭＡＣアドレスに一致するノード情報がなければ（ステップＳ２１でＮＯ）、ＨＥＭＳコントローラ１００は、ノード情報を新規作成する（ステップＳ２２）。このノード情報のＭＡＣアドレスおよびＩＰアドレスとして、受信されたパケットの送信者ＭＡＣアドレスと送信者ＩＰアドレスがそれぞれセットされる。また、当該ノード情報のパケット送信カウンタは０（初期値）にセットされる。
【００８８】
ＨＥＭＳコントローラ１００は、新規作成されたノード情報を、ノードリスト１２３に追加して登録する（ステップＳ２３）。また、ＨＥＭＳコントローラ１００は、受信した当該ノード情報の削除すべき時刻５３に、現在時間よりも１５分経過後の時刻をセットする。また、削除前ＡＲＰリクエスト送信済みフラグを０（初期値）にセットする（ステップＳ２６）。
【００８９】
ステップＳ２１において、当該送信者ＭＡＣアドレスに一致するノード情報があれば（ステップＳ２１でＹＥＳ）、ＨＥＭＳコントローラ１００は、当該ノード情報のＩＰアドレスが、受信されたパケットの送信者ＩＰアドレスと一致するか否かを判断する（ステップＳ２４）。一致すると判断すると（ステップＳ２４でＹＥＳ）、ステップＳ２６において、当該ノード情報について前述（ステップＳ２６）と同様の処理が実行される。
【００９０】
当該ノード情報のＩＰアドレスが、受信されたパケットの送信者ＩＰアドレスと一致しないならば（ステップＳ２４でＮＯ）、ＨＥＭＳコントローラ１００は、当該ノード情報のＩＰアドレスを送信者ＩＰアドレスに更新する（ステップＳ２５）。その後、ステップＳ２６の処理が上述と同様に実行される。
【００９１】
図１０の処理によって、ＨＥＭＳコントローラ１００は、ＡＲＰリクエストまたはＡＲＰリプライを受信する毎に当該ノードのノード情報の削除すべき時刻を、パケットを受信した時の時刻から１５分後を示すように更新（時間を延長）する。
【００９２】
−任意のＩＰパケット受信時の登録処理−
次に、図１１を参照して、任意のＩＰパケットを受信した場合の登録処理を説明する。ＨＥＭＳコントローラ１００は、任意のＩＰパケットを受信する毎に図１１の処理を実行する。任意のＩＰパケットには、ＩＧＭＰパケット、ＩＣＭＰ（Internet Control Message Protocolの略）パケット、ＤＨＣＰパケット、ＵＤＰパケットおよびＴＣＰ（Transmission Control Protocolの略）パケットなどが含まれる。
【００９３】
図１１を参照して、ＨＥＭＳコントローラ１００は、受信したＩＰパケットの送信元ＭＡＣアドレスをキーに、ノードリスト１２３からノード情報を取り出す（ステップＳ３０）。ＨＥＭＳコントローラ１００は、送信元ＭＡＣアドレスに一致するノード情報があるか否かを判断する（ステップＳ３１）。送信元ＭＡＣアドレスに一致するノード情報があれば（ステップＳ３１でＹＥＳ）、ＨＥＭＳコントローラ１００は、図１０のステップＳ２６の処理と同様に、当該ノード情報の削除すべき時刻に、現在時刻よりも１５分経過後の時刻をセットし、また、リクエスト送信済みフラグを０にセットする（ステップＳ３５）。
【００９４】
送信元ＭＡＣアドレスに一致するノード情報がなければ（ステップＳ３１でＮＯ）、ＨＥＭＳコントローラ１００は、ノード情報を新規に作成する（ステップＳ３２）。ＨＥＭＳコントローラ１００は、このノード情報に、受信されたパケットの送信元ＭＡＣアドレスをＭＡＣアドレスとしてセットするとともに、ＩＰアドレスには０．０．０．０をセットする。また、パケット送信カウンタには０をセットする。
【００９５】
本実施の形態では、上記の“（ＭＡＣアドレスとＩＰアドレスとの組が正しくない場合）”で説明したように、受信されたＩＰパケットの送信元ＭＡＣアドレスと送信元ＩＰアドレスとの組は常に正しいとは限らない。したがって、ＨＥＭＳコントローラ１００は、新規に作成したノード情報のＩＰアドレスに、上述のように ０．０．０．０を一時的に
セットする。
【００９６】
ＨＥＭＳコントローラ１００は、新規作成されたノード情報を、ノードリスト１２３に追加する（ステップＳ３３）。
【００９７】
また、ＨＥＭＳコントローラ１００は、受信したＩＰパケットの送信元ＩＰアドレスを、探索ＩＰアドレスにセットしたＡＲＰリクエストを送信する（ステップＳ３４）。なお、このとき、受信ＩＰパケットの送信元ＩＰアドレスが０．０．０．０を示す場合には、ＡＲＰリクエストを送信しない。その後、新規作成されたノード情報について、ステップＳ３５の処理が実行される。
【００９８】
ＨＥＭＳコントローラ１００は、上記のステップＳ３４においてＡＲＰリクエストを送信した後に、これに対するＡＲＰリプライを受信した場合には、図１０のフローに従って、ステップＳ２５の処理を実行することになる。これにより、当初０．０．０．０とセットされていたノード情報のＩＰアドレスが正しいＩＰアドレスに更新される。
【００９９】
このように、図１１の場合も、図１０と同様に、ＨＥＭＳコントローラ１００は、ノードから任意のＩＰパケットを受信する毎に、当該ノードのノード情報の削除すべき時刻を、パケットを受信した時刻の１５分後を示すように更新（時間を延長）する。
【０１００】
上述の削除処理（図９参照）は、図１０と図１１で更新される削除すべき時刻に基づき実行されるから、起動ノードについては、起動が確認される間は、ノード情報は削除されることはない。したがって、図９〜図１１の処理によって、サブネット１０上の「起動ノード」に関する情報を最新の状態に維持することができる。図９〜図１１の処理は、基本的には、パケットを受信したときに実行される処理である。「サブネット１０上にある起動ノードの存在を受動的に検出する」というのはそれゆえのことである。
【０１０１】
＜目的ノードの探索処理＞
次に、ＨＥＭＳコントローラ１００が目的ノードをサブネット１０上で探索する処理を説明する。
【０１０２】
本実施の形態では、ＨＥＭＳコントローラ１００は、サブネット１０に探索要求パケットを送信し、それに対応する探索応答パケットを受信することにより、当該目的ノードを見つける。ここでは、目的ノードを見つけることを「探索に成功する」ともいう。
【０１０３】
図１２は、本実施の形態１に係る目的ノードを探索する処理のフローチャートである。ＨＥＭＳコントローラ１００は、図１２の処理を一定間隔で（例えば、３分毎に）実行する。
【０１０４】
図１２を参照して、ＨＥＭＳコントローラ１００は、宛先ＩＰアドレスをマルチキャスト・アドレスにセットした探索要求パケットを送信する（ステップＳ４０）。マルチキャスト・アドレスとポート番号については、探索機器と被探索機器との間で予め定められている。
【０１０５】
例えば、被探索機器がＥＣＨＯＮＥＴ  Ｌｉｔｅ（登録商標）機器である場合、マルチキャスト・アドレスは２２４．０．２３．０に、また、ポート番号は３６１０とする。
【０１０６】
他の例として、被探索機器がＵＰｎＰ（Universal Plug and Play- Simple Service Discovery Protocol）デバイスである場合、マルチキャスト・アドレスは２３９．２５５．２５５．２５０に、また、ポート番号は１９００とする。
【０１０７】
本実施の形態では、サブネット１０上の目的ノードを確実に探索するために、ＨＥＭＳコントローラ１００は、ノードリスト１２３の各ノード情報に基づいて探索要求パケットを生成して、ユニキャストで送信する（ステップＳ４１とＳ４２）。
【０１０８】
具体的には、ＨＥＭＳコントローラ１００は、探索要求パケットの宛先ＩＰアドレスを、ノードリスト１２３のノード情報から１つ選択する。この選択においては、ノードリスト１２３の各ノード情報から、探索要求パケット送信カウンタの値が最小であるノード情報を選択するのがよい。そのように選択したノード情報のＭＡＣアドレスおよびＩＰアドレスを、宛先ＭＡＣアドレスおよび宛先ＩＰアドレスにそれぞれセットして探索要求パケットを生成し、ユニキャストで送信する。
【０１０９】
本実施の形態では、上述のステップＳ４１におけるノード情報選択時に、ＩＰアドレスが０．０．０．０であるノード情報を選択の対象から外す。これは、ステップＳ３２（図１１）でノード情報を新規作成した後、ＩＰアドレスが更新されていない場合があるからである。
【０１１０】
また、ＨＥＭＳコントローラ１００は、探索応答パケットを既に受信しているノードについても選択の対象から外す。これは、当該ノードについては既に探索に成功しているからであり、再度探索する必要はないからである。さらに、ＨＥＭＳコントローラ１００は、パケット送信カウンタが上限値（例えば、３０回）に達しているノード情報も選択の対象から外す。これは、当該ノードに対して探索要求パケットを何度も繰り返し送信しているにもかかわらず、探索応答パケットを受信していないということは、当該ノードは目的とするノードではないと判断できるからである。ステップＳ４１において、ノードリスト１２３で管理しているすべてのノード情報が、対象外である場合には、ステップＳ４１にてユニキャストで送信する必要はない。
【０１１１】
ノードリスト１２３の各ノード情報に基づいて探索要求パケットが生成されて、ユニキャストで送信される場合に（ステップＳ４１とＳ４２）、ＨＥＭＳコントローラ１００は、当該ノード情報の機器について、“ダミーのＩＰアドレスを用いた探索”を実施する（ステップＳ４２ａ）。“ダミーのＩＰアドレスを用いた探索”の詳細は後述する。
【０１１２】
ＨＥＭＳコントローラ１００は、選択されたノード情報のＩＰアドレスに基づいた探索要求パケットをユニキャストで送信したとき、当該ノード情報の探索要求パケット送信カウンタの値をインクリメントする（ステップＳ４３）。
【０１１３】
なお、上記の探索要求パケットの送信元ＭＡＣアドレスおよび送信元ＩＰアドレスには、ＨＥＭＳコントローラ１００が有するＭＡＣアドレスおよびＩＰアドレスがセットされる。
【０１１４】
ＨＥＭＳコントローラ１００は、探索要求パケットに対する探索応答パケットを受信するために所定期間（例えば、５秒間）経過するまで待つ（ステップＳ４４）。
【０１１５】
探索応答パケットは、ＩＰパケット（図７参照）の構成を有する。具体的には、探索応答パケットの送信元ＭＡＣアドレスおよび送信元ＩＰアドレスには、送信元ノードが有するＭＡＣアドレスおよびＩＰアドレスがそれぞれセットされている。
【０１１６】
ステップＳ４４で、ＨＥＭＳコントローラ１００は、複数個の探索応答パケットを受信する場合があり得る（探索要求パケットをマルチキャストで送信しているため）。したがって、探索要求パケットを送信してから所定期間（例えば、５秒間）は必ず待つようにする。この所定期間内に探索応答パケットを受信し、その内容が先に送信した探索要求パケットに対する応答であることを確認できれば、目的ノードを見つけることができたと判断する。この場合には、ＨＥＭＳコントローラは、目的ノードのノード情報を別途管理する。この管理方法は、本発明の範囲ではないので説明を省略する。
【０１１７】
＜ダミーのＩＰアドレスを用いた探索＞
本実施の形態では、探索機器（ＨＥＭＳコントローラ１００）は、被探索機器にＩＰアドレスが誤って設定されていると判断したときは、ダミーのＩＰアドレスを有した探索要求パケットを用いた探索を実施する（ステップＳ４２ａ）。
【０１１８】
ダミーのＩＰアドレスを用いた探索について、ＩＰアドレスとして“192.168.100.100”（以下、アドレス（A)と称する）を有した起動ノードが発見された場合を想定して説明する。
【０１１９】
ＨＥＭＳコントローラ１００は、ダミーのＩＰアドレスを用いた探索のために、アドレス（A）は、探索機器（ＨＥＭＳコントローラ１００）が属するサブネット１０のサブネット体系のアドレスであるか否かを判断する。ＨＥＭＳコントローラ１００は、アドレス（A）が当該サブネット体系のアドレスはないと判断した場合、ダミーのＩＰアドレスを生成する。ＨＥＭＳコントローラ１００は、生成されたダミーのＩＰアドレスを用いて、当該起動ノードが目的ノードであるかを判断するための探索シーケンスを実施する。ＨＥＭＳコントローラ１００は、アドレス（A）が当該サブネット体系のアドレスであると判断した場合、通常の方法で、探索シーケンスを実施する。
【０１２０】
ａ．アドレス判断処理
まず、アドレス（A）が、サブネット１０のサブネット体系のアドレスであるかの判断処理について説明する。
【０１２１】
ＨＥＭＳコントローラ１００は、探索機器（ＨＥＭＳコントローラ１００）のＩＰアドレスとサブネットマスクとから、アドレス（A）がサブネット体系のアドレスであるか否かを判断する。ＨＥＭＳコントローラ１００は、探索機器のＩＰアドレスとサブネットマスクを、プログラムにより取得することができる。
【０１２２】
具体的には、探索機器のＩＰアドレス＝192.168.11.5（以下、アドレス(B)と称する）、およびサブネットマスク＝255.255.255.0（以下、サブネットマスク(C)と称する）が取得された場合、ＨＥＭＳコントローラ１００は、以下の演算に従いネットワークアドレスを取得する。
【０１２３】
演算では、ＨＥＭＳコントローラ１００は、まず、アドレス(A)とサブネットマスク(C)との第１の論理積演算(ビットAND)を実施する。この演算により、アドレス“192.168.100.0”が算出される。また、ＨＥＭＳコントローラ１００は、アドレス（B）とサブネットマスク（C）との第２の論理積演算(ビットAND)を実施する。この演算により、アドレス“192.168.11.0”が算出される。ＨＥＭＳコントローラ１００は、第１および第２の論理積演算の各算出値を比較し、比較結果に基づき、第１の論理積演算の算出値が、第２の論理積演算の算出値とは異なっていると判断すれば、ＨＥＭＳコントローラ１００は、アドレス（A）は、探索機器（当該起動ノード）が属するサブネット体系のアドレスではないと判断する。
【０１２４】
ｂ．ダミーのＩＰアドレス生成処理
上記に述べたように、起動ノードのアドレス（A）（“192.168.100.100”）はサブネット体系のアドレスではないと判断された場合には、ＨＥＭＳコントローラ１００は、ダミーのＩＰアドレスを生成する。
【０１２５】
ＨＥＭＳコントローラ１００は、アドレス（A）と同じサブネット体系であって、当該アドレス（A）とは異なるＩＰアドレスを生成する。ただし、生成されるべきＩＰアドレスは、他の起動ノードのＩＰアドレスと重複してはならない。
【０１２６】
ダミーのＩＰアドレスの生成処理において、ＨＥＭＳコントローラ１００は、アドレス（A）と同じサブネット体系に対応したサブネットマスクを求めるために、まず、サブネットマスクにより示され得るアドレスの範囲が一番狭いサブネットマスクを仮定する。具体的には、ＨＥＭＳコントローラ１００は、図１４のＩＰアドレスのサブネットマスク表の中から、アドレスの範囲が一番狭いサブネットマスク（クラスＣ、プレフィックス/３０）、すなわちサブネットマスク“255.255.255.252”を取得する（サブネットマスクはプログラムにより取得される）。
【０１２７】
ＨＥＭＳコントローラ１００は、サブネットマスク“255.255.255.252”を用いて、ダミーＩＰアドレスの候補を求める。ダミーＩＰアドレスの候補は、アドレス（A）の“192.168.100.100”とサブネットマスク“255.255.255.252”とを用いた以下の第３の論理積演算(ビットAND)を実施することにより算出される。第３の論理積演算は、２進数を用いて以下の式で示される。
11000000.10101000.01100100.01100100 (192.168.100.100)
11111111.11111111.11111111.11111100 (255.255.255.252)
-----------------------------------
11000000.10101000.01100100.01100100 (192.168.100.100)
上記の式の各値の下位２ビットはホスト部のビットを示す。したがって、ＨＥＭＳコントローラ１００が、生成可能なＩＰアドレスは、以下の４個（=2^2）ある。
11000000.10101000.01100100.01100100 (192.168.100.100)
11000000.10101000.01100100.01100101 (192.168.100.101)
11000000.10101000.01100100.01100110 (192.168.100.102)
11000000.10101000.01100100.01100111 (192.168.100.103)
ＨＥＭＳコントローラ１００は、第３の論理積演算により算出された複数のＩＰアドレス（上記の４個のＩＰアドレス）のうちから、予め定められた選択基準に従い、ダミーのＩＰアドレスを選択する。
【０１２８】
この選択基準によれば、上記の複数のＩＰアドレスのうち、ホスト部のビットがすべて“１”であるＩＰアドレスおよびホスト部のビットがすべて“０”であるＩＰアドレスは、ダミーのＩＰアドレスとして選択されない。また、上記の複数のＩＰアドレスのうち、起動ノードの情報を管理するノードリスト１２３（後述する）に登録されたＩＰアドレスと一致するものも、ダミーのＩＰアドレスとして選択されない。例えば、上記の４個のＩＰアドレスのうち“192.168.100.101”がノードリスト１２３に既に登録されている場合には、“192.168.100.101”はダミーのＩＰアドレスとして選択されない。
【０１２９】
したがって、ＨＥＭＳコントローラ１００は、上記の第３の論理積演算により算出された４個のＩＰアドレスのうち、選択基準に従い、“192.168.100.102”をダミーのＩＰアドレスとして選択する。
【０１３０】
上記のサブネットマスク“255.255.255.252”により算出されたＩＰアドレスの範囲（上記の４個のＩＰアドレス）から、選択基準に従うＩＰアドレスが選択された場合には、当該ＩＰアドレスはダミーのＩＰアドレスとして決定される。
【０１３１】
一方、サブネットマスク“255.255.255.252”を用いて、選択基準に従うＩＰアドレスが、すなわちダミーのＩＰアドレスが決定されなかった場合には、ＨＥＭＳコントローラ１００は、新たなサブネットマスクを用いてダミーのＩＰアドレスを生成する。つまり、ＨＥＭＳコントローラ１００は、サブネットマスクにより示されるアドレスの範囲が２番目に狭いサブネットマスク（図１４の表の（クラスＣ、プレフィックス/２９）の“255.255.255.248”）を用いて、上述したダミーのＩＰアドレス生成の処理によって、ダミーのＩＰアドレスを生成する。
【０１３２】
このように、ＨＥＭＳコントローラ１００は、サブネットマスクにより示されるアドレスの範囲が小さいものから順にサブネットマスクを切替えながら、上述の選択基準に従うＩＰアドレス（ダミーのＩＰアドレス）が取得されるまで、上記に述べたダミーのＩＰアドレス生成の処理を繰返す。これにより、ＩＰアドレスが誤って設定されている被探索機器に対しては、当該被探索機器の誤って設定されたＩＰアドレスに近いダミーのＩＰアドレス（すなわち、誤って設定されたＩＰアドレスの値との差が小さい値のＩＰアドレス）が生成される。
【０１３３】
ｃ．探索シーケンス
図１５は、本実施の形態におけるダミーのＩＰアドレスを用いた探索シーケンスを模式的に示す図である。図１６〜図１９は、図１５の探索シーケンスで転送されるパケットの構成を説明する図である。図１５に示された探索シーケンスの前提は、以下の通りである。
【０１３４】
探索機器（ＨＥＭＳコントローラ１００）には、ＭＡＣアドレスとして“ＭＡ１”が設定され、およびＩＰアドレスとして“ＩＡ１”（192.168.11.5）が設定されている。また、被探索機器（ノード２０１）には、ＭＡＣアドレスとして“ＭＡ２”が設定され、ＩＰアドレスとして“ＩＡ２”（192.168.100.100）が設定されている。探索機器は、起動ノードと判断された被探索機器のＩＰアドレス（192.168.100.100）は、探索機器が属するサブネット体系のアドレスではない（すなわち、誤って設定されたＩＰアドレスである）と判断する。探索機器は、当該判断結果に基づき、ダミーのＩＰアドレスとして“ＩＡ３”（192.168.100.102）を生成する。
【０１３５】
探索機器は、あらかじめ、ＡＲＰパケットまたは任意のＩＰパケットを監視することによって、ノード２０１の存在を認識しているものとする。すなわち、探索機器は、ノード２０１を起動ノードとして検出できており、そのＭＡＣアドレス“ＭＡ２”とそのＩＰアドレス“ＩＡ２”を把握している。ただし、ノード２０１が本当に目的機器であるかどうかはまだ分からない。
【０１３６】
探索機器は、起動ノード（被探索機器）が目的ノードであるかどうかを、探索要求パケット（図１６参照）を送信し（図１５のパスＰ１を参照）、被探索機器から探索応答パケット（図１９参照）を受信する（図１５のパスＰ４を参照）ことより判断する。
【０１３７】
図１５の探索シーケンスにより、探索機器が被探索機器を目的機器として検出に成功するには、被探索機器が、探索要求パケットを受信することができ、および探索機器が探索応答パケットを受信できることの両方が必要である。
【０１３８】
−探索要求パケットの送信−
図１５の探索要求パケットの送信を説明する。探索機器は、ＩＰパケットである探索要求パケットを生成し、生成された探索要求パケットを送信する。探索要求パケットは、ノードリスト１２３のノード情報に基づき生成される。
【０１３９】
探索機器は、探索要求パケットを、通常ＩＰレベルのパケットとして送信する。このとき、探索機器は、宛先ＩＰアドレスを、探索機器が属するサブネット体系のアドレスとは異なるアドレスであると判断すると、通常、デフォルト・ゲートウェイに探索要求パケットを転送しようとする。デフォルト・ゲートウェイは通常ルーターに設定されるので、この場合、探索機器は、探索要求パケットをルーターに転送しようとする。探索要求パケットがルーターに転送されてしまうと、ルーターにとって、当該探索要求パケットの宛先ＩＰアドレスは管轄外であるため、探索要求パケットをＬＡＮ側に転送しない。従って、探索要求パケットは被探索機器へ届かない。
【０１４０】
しかし、実施の形態１では、探索機器は、通常のＩＰレベルで探索要求パケットを送信せずに、ＲＡＷソケット１２２に、図１６の探索要求パケットを生成させて、生成された探索要求パケットを送信させる。パケットが相手先に届くというのは、結局のところ、Ｅｔｈｅｒｎｅｔ（登録商標）のレベルでは、宛先ＭＡＣアドレスが正しく設定されていれば良いのである。ＲＡＷソケットを使えば、直接、宛先ＭＡＣアドレスを“ＭＡ２”に設定することで、デフォルト・ゲートウェイに転送されることなく、被探索機器（ノード２０１）にパケットを届けることができる。
【０１４１】
図１６を参照して、探索要求パケットの宛先ＭＡＣアドレスには、ノードリスト１２３のノード情報から読出されたＭＡＣアドレス“ＭＡ２”が設定される。また、探索要求パケットの送信元ＩＰアドレスには、ダミーのＩＰアドレス“ＩＡ３”が設定される。ダミーのＩＰアドレス“ＩＡ３”は、被探索機器と同じサブネット体系のアドレスを示す。本実施の形態では、探索要求パケットに、送信元ＩＰアドレスとして、ダミーのＩＰアドレスが設定されることを、“偽装する”という。
【０１４２】
上記の送信元ＩＰアドレスを偽装する理由について説明する。本来なら、探索要求パケットの送信元ＩＰドレスには“ＩＡ１”が設定されるべきである。しかし、送信元ＩＰアドレスとして“ＩＡ１”が設定された場合には、被探索機器は、探索要求パケットを受信できるが、探索機器は、被探索機器から探索応答パケットを受信することができない。なぜなら、被探索機器は、探索要求パケットの送信元ＩＰアドレスは、当該被探索機器が属するサブネットは異なるサブネット体系のアドレスであると判断し、判断結果に基づき、当該探索応答パケットをデフォルト・ゲートウェイに転送しようとする。しかし、サブネット１０において、当該デフォルト・ゲートウェイは存在しないため、被探索機器は、探索応答パケットを送信することができない。
【０１４３】
したがって、実施の形態１では、探索機器は、探索要求パケットの送信元ＩＰアドレスを、被探索機器と同じサブネット体系のアドレス（ダミーのＩＰアドレス）に偽装する。これにより、被探索機器は探索応答パケットを送信することが可能となる。
【０１４４】
−ＡＲＰリクエストの送信−
被探索機器は、図１６の探索要求パケットを受信したとき、応答（図１９の探索応答パケット）を探索機器に送信するために、まず、探索機器のＭＡＣアドレスを取得する必要がある。つまり、被探索機器は、受信した探索要求パケットの送信元ＩＰアドレス“ＩＡ３”に対応したＭＡＣアドレスを取得していないので、被探索機器は、当該ＭＡＣアドレスを取得するために、ＡＲＰリクエスト（図１７参照）を用いてＩＰアドレス“ＩＡ３”の問い合わせを行なう。ＡＲＰリクエストは、通常、ＯＳ（オペレーティングシステム）レベルで送信されるＡＲＰパケットである。
【０１４５】
-ＡＲＰリプライの送信-
探索機器は、ＲＡＷソケット１２２を介して、被探索機器からＡＲＰリクエストを受信すると、ＡＲＰリプライ（図１８参照）を送信する。図１０のステップＳ１８〜Ｓ１９に相当する。
【０１４６】
具体的には、探索機器は、受信されたパケットが、当該パケットの内容に基づき、探索ＩＰアドレスとしてＩＰアドレス“ＩＡ３”が設定されたＡＲＰリクエストであると判断したときは、ＡＲＰリプライ（図１８参照）を返信する。
【０１４７】
ＡＲＰリプライは、通常、ＯＳレベルで送信されるものであるが、本実施の形態１で、ＡＲＰリプライはダミーのＩＰアドレスについての機器を探索するためのものであるから、探索機器においては、ＯＳレベルはなく、専用のプログラムによってＡＲＰリプライが生成されて送信される。探索機器は、探索ＩＰアドレス“ＩＡ３”のＡＲＰリクエストに対応してＡＲＰリプライを応答する。
【０１４８】
−探索応答パケットの送信−
被探索機器は、探索機器からＡＲＰリプライを受信したとき、ＩＰパケットである探索応答パケット（図１９参照）を送信する。その探索応答パケットは、探索機器に届く。
【０１４９】
探索機器は、被探索機器からの探索応答パケットが上述の探索要求パケットに対応したものであるかを判断する。
【０１５０】
探索機器は、受信した探索応答パケットが、上述の探索要求パケットに対応したものであると判断すれば、当該被探索機器は目的ノードであると判断する。
【０１５１】
ｄ．探索シーケンスの具体例
図１５の探索シーケンスを、具体例を挙げて説明する。この例では、サブネット１０の無線ＬＡＮルーター３０２のＩＰアドレスは“192.168.11.1”であり、探索機器（ＨＥＭＳコントローラ１００）のＩＰアドレスは“192.168.11.93”であり、および被探索機器（ノード２０１の電力モニタ）のＩＰアドレスは、誤って設定されたＩＰアドレス“192.168.100.100”である。
【０１５２】
（ステップ１）まず、探索機器は、被探索機器に対して、探索要求パケット（図１６参照）を送信する。図１６を参照して、探索要求パケットは、宛先ノードのＭＡＣアドレス、送信元ノードのＭＡＣアドレス、および上位層プロトコルのタイプを含む。探索要求パケットはさらに、送信元ノードのＩＰアドレスを示す送信元ＩＰアドレス、および宛先ノードのＩＰアドレスを含む。探索要求パケットはさらに具体的なデータであるペイロードを含む。
【０１５３】
当該探索要求パケットの送信元ＩＰアドレスは、本来ならば探索機器の本来のＩＰアドレス“192.168.11.93”が設定されるべきである。しかし、本来のＩＰアドレスが設定された場合には、当該探索要求パケットは被探索機器には届くが、探索機器は、被探索機器から対応の探索応答パケットを受信することができない。
【０１５４】
探索機器は、探索応答パケットを受信できるようにするために、相手（被探索機器）と同じサブネットのアドレス体系となるダミーのＩＰアドレス（例えば、“192.168.100.101”）を生成する。探索機器は、生成されたダミーのＩＰアドレスを、送信元ＩＰアドレスとして設定された探索要求パケットを、ＲＡＷソケット１２２を介して送信する。被探索機器は、上記のダミーのＩＰアドレスを有した探索要求パケットを受信する。
【０１５５】
（ステップ２）被探索機器は、探索要求パケットを受信したとき、送信元ＩＰアドレス(“192.168.100.101”)宛に、探索応答パケットを返信しようとする。探索応答パケットは、宛先のＩＰアドレスとハードウェアアドレス（ＭＡＣアドレス）を必要とする。
【０１５６】
被探索機器は、送信元ＩＰアドレス(“192.168.100.101”)のハードウェアアドレスが分からないので、探索応答パケット送信の前に、ハードウェアアドレスを取得するために、ＡＲＰリクエスト（図１７参照）を送信する。ＡＲＰリクエストは、探索要求パケットの送信元を問合わせるパケットである。
【０１５７】
図１７を参照して、ＡＲＰリクエストは、宛先ノードのＭＡＣアドレス、送信元ノードのＭＡＣアドレス、および上位層プロトコルのタイプを含む。さらに、ＡＲＰリクエストは、ＡＲＰの動作の種類を表すためのＯＰコード、送信者ＭＡＣアドレス、送信者ＩＰアドレス、探索ＭＡＣアドレス、および探索ＩＰアドレスを含む。
【０１５８】
（ステップ３）探索機器は、被探索機器からのＡＲＰリクエストを受信する。探索機器は、受信されたＡＲＰリクエストの探索ＩＰアドレスが、上記のダミーのＩＰアドレス（“192.168.100.101”）と一致していると判断したとき、ＡＲＰリプライ（図１８参照）を送信する。ＡＲＰリプライは、探索機器が、ＡＲＰリクエストを受信したときに、ダミーのＩＰアドレスを送信元にした当該問合わせに対する応答を示す。ＡＲＰリプライのパケットの構造は、ＡＲＰリクエストの構造と同様であるので、説明は繰返さない。
【０１５９】
被探索機器は、探索機器からのＡＲＰリプライを受信する。被探索機器は、受信されたＡＲＰリプライから、探索機器のハードウェアアドレスを取得する。探索機器は、上記のダミーのＩＰアドレスおよび取得されたハードウェアアドレスが設定された探索応答パケット（図１９参照）を送信する。探索応答パケットの構造は、探索要求パケットの構造と同様であるので、説明は繰返さない。
【０１６０】
（ステップ４）探索機器は、被探索機器から送信された探索応答パケットを受信する。これにより、探索機器は、当該探索機器が接続されたサブネット１０において、ＩＰアドレスが誤って設定された被探索機器（ノード２０１の電力センサ）が接続されていることを発見する。
【０１６１】
図１２のステップＳ４２ａでは、上記に述べた“ダミーのＩＰアドレスを用いた探索”が実施される。具体的には、ＨＥＭＳコントローラ１００は、まず、起動ノードのノード情報のＩＰアドレスについて、上述した“アドレス判断処理”を実施する。“アドレス判断処理”において、当該ＩＰアドレスは、探索機器（ＨＥＭＳコントローラ１００）が属するサブネット１０のサブネット体系のアドレスではないと判断された場合には、ＨＥＭＳコントローラ１００は、上述の“ダミーのＩＰアドレス生成処理”を実施する。
【０１６２】
生成されたダミーのＩＰアドレスを用いた“探索シーケンス”（図１５参照）が実施される。ＨＥＭＳコントローラ１００は、“探索シーケンス”により、当該起動ノードを、ＩＰアドレスの設定が誤っている目的ノードとして発見する。
【０１６３】
なお、ステップＳ４２ａの“探索シーケンス”で転送される探索要求パケット（図１６参照）は、ステップＳ４３でカウントされる。また、“探索シーケンス”で転送される探索応答パケット（図１９参照）も、ステップＳ４４におけるタイムアウトの測定対象として処理される。
【０１６４】
[実施の形態２］
実施の形態２は、実施の形態１の変形例である。実施の形態１では、ＨＥＭＳコントローラ１００は、目的ノードの探索時に、マルチキャストで探索要求パケットを送信する（図１２のステップＳ４０参照）。これに対して、実施の形態２では、ＨＥＭＳコントローラ１００は、ブロードキャストで探索要求パケットを送信する。図１３のステップＳ４２においても、“ダミーのＩＰアドレスを用いた探索”（ステップＳ４２ａ）が実施される。ステップＳ４２ａの処理は、図１２に示されたものと同じであるから、説明は繰返さない。
【０１６５】
なお、ＨＥＭＳコントローラ１００は、探索要求パケットをマルチキャストで送信するか、ブロードキャストで送信するかは、被探索機器によって使い分ける。探索機器と被探索機器との間で発見プロトコルが予め定められている。
【０１６６】
なお、実施の形態２でも、探索要求パケットがブロードキャストで送信される点を除いた構成および機能については、実施の形態１と同様の構成および機能が実現されるので、それらの詳細説明は繰返さない。
【０１６７】
図１３は、本実施の形態２に係る目的ノードを探索する処理を示すフローチャートである。ＨＥＭＳコントローラ１００は、図１３の処理を一定間隔（例えば、３分毎）で実行する。
【０１６８】
図１３を参照して、ＨＥＭＳコントローラ１００は、宛先ＩＰアドレスがブロードキャスト・アドレスにセットされた探索要求パケットを送信する（ステップＳ４０ａ）。
【０１６９】
ブロードキャスト・アドレスについてはマルチキャスト・アドレスとは異なり特に取り決めはなくてもよいが、ポート番号については、探索機器と被探索機器との間で予め定められている。
【０１７０】
例えば、被探索機器がシャープ株式会社製の電力モニタのノードである場合、ＨＥＭＳコントローラ１００は、宛先ＩＰアドレスをブロードキャスト・アドレスに、宛先ポート番号を１２１３２にセットした探索要求パケットをブロードキャストで送信する。
【０１７１】
なお、ブロードキャスト・アドレスについては、ＩＰアドレスの全ビットを１にした、リミテッド・ブロードキャスト・アドレス（２５５．２５５．２５５．２５５）と、ＩＰアドレスのホスト部だけをすべて１にしたディレクティッド・ブロードキャスト・アドレスとがある。例えば、サブネット１０の各ノードのＩＰアドレスが１９２．１６８．１１．Ｘで、サブネットマスクが２５５．２５５．２５５．０であるとき、１９２．１６８．１１．２５５となる。いずれにせよサブネット１０の各ノードに届くことが期待できるので、どちらを使ってもよい。
【０１７２】
実施の形態２でも、サブネット１０上の目的ノードを確実に探索するために、ＨＥＭＳコントローラ１００は、ノードリスト１２３の各ノード情報のＩＰアドレスに基づいて探索要求パケットを生成して、ユニキャストで送信する（ステップＳ４１とＳ４２）。このユニキャスト送信においても、上述した“ダミーのＩＰアドレスを用いた探索”（ステップＳ４２ａ）が実施される。
【０１７３】
なお、図１３のステップＳ４１以降の処理は、図１２で説明した処理と同様であるから、詳細説明は繰返さない。
【０１７４】
[実施の形態３]
実施の形態３では、実施の形態１と２の変形例が示される。変形例では、ＨＥＭＳコントローラ１００は、サブネット１０のサブネット体系のアドレスとは異なるアドレスが設定されている目的ノードが探索されたことを示す情報（図２０参照）を出力する機能を有する。図２０には、ダミーのＩＰアドレスを用いた探索シーケンス（図１５参照）に基づく情報の出力例が示される。
【０１７５】
ＨＥＭＳコントローラ１００は、上記の情報を、無線ＬＡＮルーター３０２を介してサーバ装置９０１に送信する。サーバ装置９０１は、ＨＥＭＳコントローラ１００からの情報を記憶する。ユーザの端末９０２は、サーバ装置９０１と通信したとき、端末９０２のブラウジング機能により、サーバ装置９０１に記憶された情報を端末９０２の表示部などに表示する（図２０参照）。
【０１７６】
図２０の情報では、“ＸＹ”は、ＨＥＭＳコントローラ１００とは異なるサブネット体系のＩＰアドレスを有した目的ノードの名称（例えば、電力モニタ、またはＥＣＨＯＮＥＴ Ｌｉｔｅノードであればそのクラス名など）を示す。また、図２０の情報は、機器“ＸＹ”のＭＡＣアドレス“ＸＸ”を示しながら、当該機器“ＸＹ”のＩＰアドレス“ＺＺ”を、サブネット１０のサブネット体系のＩＰアドレスに変更することを促すメッセージを含む。ユーザは、当該メッセージに従い、機器のＩＰアドレスを変更することができる。機器のＩＰアドレスが、サブネット１０のサブネット体系のＩＰアドレスに変更された後は、ＨＥＭＳコントローラ１００は、当該機器（目的ノード）と、通常のＩＰレベルで通信することができる。なお、ＨＥＭＳコントローラ１００は、目的ノード（被探索機器）から受信したパケットの内容から、上記の“ＸＹ”、“ＸＸ”および“ＺＺ”の情報を取得することができる。
【０１７７】
＜ＨＥＭＳコントローラの機能構成＞
図８は、各実施の形態に係るＨＥＭＳコントローラ１００の機能的構成を表す機能ブロック図である。図８を参照して、ＨＥＭＳコントローラ１００は、サブネット１０上のパケットを送受信する通信部１４０、ノード情報管理部１５０、記憶部１６０、および探索部１７０を含む。通信部１４０は、高速通信インターフェイス１１０４を介して通信するＲＡＷソケット１２２およびＵＤＰソケット１２１の機能を含む。
【０１７８】
ノード情報管理部１５０は、サブネット１０上にある起動ノードの存在を受動的に検出する。具体的には、通信部１４０を介してパケットを受信する毎に、図１０と図１１に示すように、パケット送信元のノードに関する情報をノード情報としてノードリスト１２３により管理する。
【０１７９】
探索部１７０は、通信部１４０を介して探索要求パケットを送信し、探索応答パケットを受信することによって目的ノードを探索する。探索部１７０は、図１２に示すように、探索要求パケットを送信する際に、マルチキャストで送信するとともに、ノード情報管理部１５０により管理されるノード情報のアドレスを宛先にして、当該探索要求パケットをユニキャストで送信する。
【０１８０】
探索部１７０は、探索要求パケットを送信する際に、上記のマルチキャストでの送信に代えて、図１３に示すように、ブロードキャストで送信してもよい。
【０１８１】
また、探索部１７０は、ダミー利用探索部１７１を有する。ダミー利用探索部１７１は、上述のステップＳ４２ａで示された“ダミーのＩＰアドレスを用いた探索”を実施する。
【０１８２】
ノード情報管理部１５０は、図９に示すように、ノード情報が所定の時間更新されなければ、当該ノードが起動されているかどうかを確認するパケットを、通信部１４０を介して送信し、確認するパケットに呼応する応答の受信がなければノード情報を削除する。
【０１８３】
＜実施の形態の効果＞
このように各実施の形態では、探索機器は、当該探索機器と同じサブネットに接続されながら、ＩＰアドレスが誤って設定されている目的機器（被探索機器）を発見することができる。また、探索機器は、発見された目的機器のＩＰアドレスを正しいアドレスに変更するのを支援するための情報（図２０参照）を、ユーザに提示することができる。
【０１８４】
また、通信部１４０にてパケットを受信する毎に、パケット送信元のノードに関する情報をノード情報としてノードリスト１２３により管理する。これにより、無駄なトラフィックを発生させずに、サブネット１０上に起動しているノードを受動的に検出できる。
【０１８５】
また、ＨＥＭＳコントローラ１００がサブネット１０上の目的ノードを探索する場合には、マルチキャストまたはブロードキャストの送信に加え、ノードリスト１２３のノード情報に基づく探索要求パケットをユニキャストで送信する。その結果、マルチキャスト・パケットまたはブロードキャスト・パケットが目的ノードに届かないようなネットワーク環境であっても、ＨＥＭＳコントローラ１００は、目的ノードを確実に見つけ出すことができる。
【０１８６】
また、探索要求パケットは、ノードリスト１２３のノード情報に基づき生成されてサブネット１０に送信されるから、ＨＥＭＳコントローラ１００は、当該探索要求パケットを起動しているノードに限定して送信することができる。従って、ＨＥＭＳコントローラ１００が目的ノード探索のために無駄なトラフィックを発生させることはない。
【０１８７】
今回開示された実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８８】
１  通信ネットワーク、３０２  無線ＬＡＮルーター、１０  サブネット、１００  ＨＥＭＳコントローラ、１１０  デバイス側アプリケーション、１２０  ホスト側アプリケーション、１４０  通信部、１５０  ノード情報管理部、１６０  記憶部、１７０  探索部、１７１  ダミー利用探索部。
【図１】
0006411262.tif 000002
【図２】
0006411262.tif 000003
【図３】
0006411262.tif 000004
【図４】
0006411262.tif 000005
【図５】
0006411262.tif 000006
【図６】
0006411262.tif 000007
【図７】
0006411262.tif 000008
【図８】
0006411262.tif 000009
【図９】
0006411262.tif 000010
【図１０】
0006411262.tif 000011
【図１１】
0006411262.tif 000012
【図１２】
0006411262.tif 000013
【図１３】
0006411262.tif 000014
【図１４】
0006411262.tif 000015
【図１５】
0006411262.tif 000016
【図１６】
0006411262.tif 000017
【図１７】
0006411262.tif 000018
【図１８】
0006411262.tif 000019
【図１９】
0006411262.tif 000020
【図２０】
0006411262.tif 000021