(57)【特許請求の範囲】
【請求項１】
各無線通信装置が自身の無線通信範囲内で他の無線通信装置と相互にメッセージをブロードキャストしあう複数の無線通信装置で構成される無線通信システムにおける無線通信装置であって、
前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための情報であって、少なくとも自無線通信装置が正常動作していることを示す第１確認情報を管理する管理部と、
他の無線通信装置から、前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための第２確認情報を含むメッセージを受信する受信部と、
前記第２確認情報を用いて、前記第１確認情報及び前記第２確認情報の少なくともいずれかにおいて正常動作していると示される無線通信装置を示すように、前記第１確認情報を更新する更新部と、
更新された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストする送信部と、を備え、
前記管理部は、前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第１制御方法情報を更に管理し、
前記メッセージは、前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第２制御方法情報を更に含み、
前記第１確認情報、前記第２確認情報、前記第１制御方法情報、及び前記第２制御方法情報に基づいて、前記第１確認情報の更新の要否を判定する判定部を更に備え、
前記更新部は、前記第１確認情報の更新が必要と判定された場合、前記第２確認情報を用いて前記第１確認情報を更新する、
無線通信装置。
【請求項２】
前記判定部は、前記第１制御方法情報と前記第２制御方法情報とが所定関係にあるか否かを判定し、
前記更新部は、前記第１制御方法情報と前記第２制御方法情報とが所定関係にあると判定された場合、前記第２制御方法情報で前記第１制御方法情報を更新するとともに、更新された第１制御方法情報が示す第１更新方法で前記第１確認情報を第１初期値に更新し、前記第２確認情報を用いて当該第１制御方法情報が示す第２更新方法で第１初期値に更新された第１確認情報を更新する請求項１に記載の無線通信装置。
【請求項３】
前記判定部は、前記第１確認情報と前記第２確認情報とが一致せず、かつ前記第１制御方法情報と前記第２制御方法情報とが一致するか否かを判定し、
前記更新部は、前記第１確認情報と前記第２確認情報とが一致せず、かつ前記第１制御方法情報と前記第２制御方法情報とが一致すると判定された場合、前記第２確認情報を用いて前記第１制御方法情報が示す第２更新方法で前記第１確認情報を更新する請求項１に記載の無線通信装置。
【請求項４】
前記判定部は、前記第１確認情報と前記第２確認情報とが一致し、かつ前記第１制御方法情報と前記第２制御方法情報とが一致するか否かを判定し、
前記更新部は、前記第１確認情報と前記第２確認情報とが一致し、かつ前記第１制御方法情報と前記第２制御方法情報とが一致すると判定された場合、前記第１確認情報を更新しない請求項１に記載の無線通信装置。
【請求項５】
前記第１確認情報及び前記第２確認情報は、前記無線通信装置毎に、正常動作しているか否かをビット値で示し、
前記第１制御方法情報及び前記第２制御方法情報は、２ビット以上の情報であって、最上位ビット以外のビットのビット値で前記第１更新方法及び前記第２更新方法を示す請求項１に記載の無線通信装置。
【請求項６】
前記第１確認情報及び前記第２確認情報は、前記無線通信装置毎に、正常動作しているか否かをビット値で示し、
前記第１制御方法情報及び前記第２制御方法情報は、２ビット以上の情報であって、最上位ビット以外のビットのビット値で前記第１更新方法及び前記第２更新方法を示し、
前記第２制御方法情報が示すビット値は、予め定められた順序で更新され、
前記所定関係は、前記第１制御方法情報が示すビット値が、前記第２制御方法情報が示すビット値の１つ前の順序のビット値である関係である請求項２に記載の無線通信装置。
【請求項７】
請求項１に記載の無線通信装置は、制御元の無線通信装置であり、
前記第１確認情報を初期値に初期化する初期化部を更に備え、
前記送信部は、初期化された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストし、
前記管理部は、更新された前記第１確認情報を用いて、前記複数の無線通信装置それぞれが正常動作しているか否かを確認する請求項１に記載の無線通信装置。
【請求項８】
請求項６に記載の無線通信装置は、制御元の無線通信装置であり、
前記第１制御方法情報は、前記第１確認情報を第２初期値に初期化する初期化方法、及び前記第１確認情報を用いた確認方法を更に示し、
前記第１制御方法情報のビット値を予め定められた順序で更新するとともに、更新後の前記第１制御方法情報が示す初期化方法で前記第１確認情報を初期化する初期化部を更に備え、
前記送信部は、初期化された前記第１確認情報を第２確認情報、更新された前記第１制御方法情報を第２制御方法情報として含むメッセージをブロードキャストし、
前記管理部は、更新された前記第１確認情報を用いて前記第１制御方法情報が示す確認方法で前記複数の無線通信装置それぞれが正常動作しているか否かを確認する請求項６に記載の無線通信装置。
【請求項９】
各無線通信装置が自身の無線通信範囲内で他の無線通信装置と相互にメッセージをブロードキャストしあう複数の無線通信装置で構成される無線通信システムであって、
前記複数の無線通信装置それぞれは、
前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための情報であって、少なくとも自無線通信装置が正常動作していることを示す第１確認情報を管理する管理部と、
他の無線通信装置から、前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための第２確認情報を含むメッセージを受信する受信部と、
前記第２確認情報を用いて、前記第１確認情報及び前記第２確認情報の少なくともいずれかにおいて正常動作していると示される無線通信装置を示すように、前記第１確認情報を更新する更新部と、
更新された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストする送信部と、を備え、
前記管理部は、前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第１制御方法情報を更に管理し、
前記メッセージは、前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第２制御方法情報を更に含み、
前記第１確認情報、前記第２確認情報、前記第１制御方法情報、及び前記第２制御方法情報に基づいて、前記第１確認情報の更新の要否を判定する判定部を更に備え、
前記更新部は、前記第１確認情報の更新が必要と判定された場合、前記第２確認情報を用いて前記第１確認情報を更新し、
前記複数の無線通信装置のうち制御元の無線通信装置は、
前記第１確認情報を初期値に初期化する初期化部を更に備え、
前記送信部は、初期化された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストし、
前記管理部は、更新された前記第１確認情報を用いて、前記複数の無線通信装置それぞれが正常動作しているか否かを確認する無線通信システム。
【請求項１０】
各無線通信装置が自身の無線通信範囲内で他の無線通信装置と相互にメッセージをブロードキャストしあう複数の無線通信装置で構成される無線通信システムにおける無線通信装置で実行される無線通信方法であって、
前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための情報であって、少なくとも自無線通信装置が正常動作していることを示す第１確認情報を管理する第１管理ステップと、
他の無線通信装置から、前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための第２確認情報を含むメッセージを受信する受信ステップと、
前記第２確認情報を用いて、前記第１確認情報及び前記第２確認情報の少なくともいずれかにおいて正常動作していると示される無線通信装置を示すように、前記第１確認情報を更新する第１更新ステップと、
更新された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストする送信ステップと、
前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第１制御方法情報を管理する第２管理ステップと、を含み、
前記メッセージは、前記第１確認情報を第１初期値に更新する第１更新方法、及び前記第２確認情報を用いた前記第１確認情報の第２更新方法を示す第２制御方法情報を更に含み、
前記第１確認情報、前記第２確認情報、前記第１制御方法情報、及び前記第２制御方法情報に基づいて、前記第１確認情報の更新の要否を判定する判定ステップと、
前記第１確認情報の更新が必要と判定された場合、前記第２確認情報を用いて前記第１確認情報を更新する第２更新ステップと、をさらに含む、
無線通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、無線通信装置、システム及び方法に関する。
【背景技術】
【０００２】
複数のノード（無線通信装置）で構成される無線メッシュネットワーク上での無線通信方式として、ＲＦＣ６２０６において、Ｔｒｉｃｋｌｅ  Ａｌｇｏｒｉｔｈｍが提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｐ．  Ｌｅｖｉｓ，  Ｔ．  Ｃｌａｕｓｅｎ，  Ｏ．  Ｇｎａｗａｌｉ，Ｊ．  Ｋｏ，“Ｔｈｅ  Ｔｒｉｃｋｌｅ  Ａｌｇｏｒｉｔｈｍ”，ＩＥＴＦ，ＲＦＣ６２０６，Ｍａｒｃｈ  ２０１１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術の無線通信方式は、ある無線通信装置がメッセージを無線でブロードキャストし、当該メッセージを受信した他の無線通信装置が当該メッセージを再度無線でブロードキャストするバケツリレー式のブロードキャスト方式である。
【０００５】
このため、上述したような従来技術の無線通信方式では、ルーティング機能が存在せず、個別の無線通信装置に対する宛先通信を行うことができないため、個々の無線通信装置に対する死活監視を行うことが困難である。
【０００６】
本発明が解決しようとする課題は、個別の無線通信装置に対する宛先通信を行うことができない環境下においても、個々の無線通信装置に対する死活監視を行うことが可能な無線通信装置、システム及び方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態の無線通信装置は、各無線通信装置が自身の無線通信範囲内で他の無線通信装置と相互にメッセージをブロードキャストしあう複数の無線通信装置で構成される無線通信システムにおける無線通信装置であって、管理部と、受信部と、更新部と、送信部と、を備える。管理部は、前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための情報であって、少なくとも自無線通信装置が正常動作していることを示す第１確認情報を管理する。受信部は、他の無線通信装置から、前記複数の無線通信装置それぞれが正常動作しているか否かを確認させるための第２確認情報を含むメッセージを受信する。更新部は、前記第２確認情報を用いて、前記第１確認情報及び前記第２確認情報の少なくともいずれかにおいて正常動作していると示される無線通信装置を示すように、前記第１確認情報を更新する。送信部は、更新された前記第１確認情報を第２確認情報として含むメッセージをブロードキャストする。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の無線通信システムの例を示す構成図。
【図２】本実施形態のノードの例を示す構成図。
【図３】本実施形態のメッセージのペイロードのフォーマットの例を示す図。
【図４】本実施形態の第１、第２制御方法情報の更新順序の例を示す図。
【図５】本実施形態のノードの例を示す構成図。
【図６】本実施形態の更新処理の例を示すフローチャート。
【図７】本実施形態の送信処理の例を示すフローチャート。
【図８】本実施形態の確認処理及び初期化処理の例を示すフローチャート。
【図９】実施形態のノードのハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、実施形態を詳細に説明する。
【００１０】
図１は、本実施形態の無線通信システム１０の一例を示す構成図である。図１に示すように、無線通信システム１０は、ノード１１０と、ノード１２０−１〜１２０−ｎ（ｎは２以上の自然数）と、を備えており、ノード１１０及びノード１２０−１〜１２０−ｎで構成されている。
【００１１】
なお、以下の説明では、ノード１１０、及びノード１２０−１〜１２０−ｎを各々区別する必要がない場合は、単にノード１００と称する場合があり、ノード１２０−１〜１２０−ｎを各々区別する必要がない場合は、単にノード１２０と称する場合がある。
【００１２】
ノード１００は、近距離無線通信を行う無線通信装置であり、自身の無線通信範囲内で他のノード１００と相互にメッセージをブロードキャストしあう。詳細には、ノード１００は、自身の無線通信範囲内に位置する他のノード１００からブロードキャストされたメッセージを受信し、受信したメッセージに含まれる情報で自身が保持している情報を更新し、更新後の情報を含むメッセージを自身の無線通信範囲内にブロードキャストする。
【００１３】
これにより、あるノード１００からブロードキャストされたメッセージは他のノード１００にバケツリレー式に伝搬し、最終的には、全てのノード１００において、共通の情報が保持されることになる。なお本実施形態では、各ノード１００の無線通信範囲内には、少なくとも１台以上の他のノード１００が配置されているものとする。なお、ノード１００としては、例えば、無線通信機能を有する照明装置などが挙げられるが、これに限定されるものではない。
【００１４】
ノード１１０は、無線通信システム１０（ノード１２０−１〜１２０−ｎ）の制御元の無線通信装置であり、アクセスポイントとしての役割を果たす。本実施形態では、ノード１１０は、メッセージの送信元となる。ノード１２０は、ノード１１０以外の無線通信装置である。なお本実施形態では、ノード１２０−１〜１２０−ｎの少なくとも一部は、ノード１１０の無線通信範囲外に配置されているものとする。つまり本実施形態では、ノード１２０−１〜１２０−ｎの少なくとも一部は、ノード１１０と直接無線通信できない位置に配置され、他のノード１２０を介してノード１１０と無線通信（詳細には、メッセージの送受信）を行うものとする。
【００１５】
このように本実施形態では、無線通信システム１０を構成する複数のノード１００によって無線メッシュネットワークが構築されている。但し、本実施形態の無線通信システム１０の無線通信方式は、上述したようなブロードキャスト方式であるため、ルーティング機能が存在せず、個別の無線通信装置に対する宛先通信を行うことができない。このため本実施形態では、以降に説明するような手法を採用して、各ノード１２０の死活監視を行う。
【００１６】
なお、図１に示す例では、ノード１００が１次元で配列されて無線メッシュネットワークを構成している場合を例示しているが、ノード１００の配置はこれに限定されず、２次元で配列されて無線メッシュネットワークを構成してもよいし、３次元で配列されて無線メッシュネットワークを構成してもよい。また、均等な配置であってもよいし、ランダムな配置であってもよい。
【００１７】
図２は、本実施形態のノード１２０の一例を示す構成図である。図２に示すように、ノード１２０は、管理部１２１と、受信部１２２と、判定部１２３と、更新部１２４と、タイマ部１２５と、送信部１２６と、記憶部１２７と、を備える。
【００１８】
管理部１２１、受信部１２２、判定部１２３、更新部１２４、タイマ部１２５、及び送信部１２６は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。記憶部１２７は、例えば、メモリ、ＳＳＤ（Solid  State  Drive）、ＨＤＤ（Hard  Disk  Drive）、光ディスク、ＲＯＭ（Read  Only  Memory）、及びＲＡＭ（Random  Access  Memory）などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
【００１９】
管理部１２１は、ノード１２０−１〜１２０−ｎそれぞれが正常動作しているか否かを確認させるための情報であって、少なくとも自ノード１２０が正常動作していることを示す第１確認情報を管理する。また管理部１２１は、第１確認情報を第１初期値に更新する第１更新方法、及び後述の第２確認情報を用いた第１確認情報の第２更新方法を示す第１制御方法情報を更に管理する。具体的には、管理部１２１は、記憶部１２７を用いて（記憶部１２７上で）第１確認情報及び第１制御方法情報を管理する。
【００２０】
本実施形態では、第１確認情報が、ノード１２０毎に、当該ノード１２０が正常動作しているか否かをビット値で示すビットマップ形式の情報であるものとする。本実施形態では、第１確認情報が、２５６ビットのビットマップ形式の情報であり、各ビットが、該当するノード１２０が正常動作しているか否かをビット値で示す場合を例に取り説明するが、これに限定されるものではない。この場合、ノード１２０には、０から始まる正の整数がノードＩＤとして付されており、ノードＩＤに対応するビットのビット値が、当該ノードＩＤが示すノード１２０が正常動作しているか否かを示す。例えば、ノードＩＤが０の場合、０ビット目のビット値が、ノードＩＤとして０が付されたノード１２０が正常動作しているか否かを示す（詳細には、最終的に示すことになる）。なお、当然であるが、第１確認情報が、２５６ビットのビットマップ形式の情報である場合、ノード１２０の台数は、２５６台以下であるものとする。
【００２１】
また本実施形態では、第１制御方法情報が、２ビット以上の情報であって、最上位ビット以外のビットのビット値で、第１更新方法及び第２更新方法を示すものとする。本実施形態では、第１制御方法情報が、２ビットの情報であり、最下位ビットのビット値（０ビット目のビット値）で、第１更新方法及び第２更新方法を示す場合を例に取り説明するが、これに限定されるものではない。
【００２２】
受信部１２２は、他のノード１００から、ノード１２０−１〜１２０−ｎそれぞれが正常動作しているか否かを確認させるための第２確認情報を含むメッセージを受信する。なお、メッセージは、第１確認情報を第１初期値に更新する第１更新方法、及び第２確認情報を用いた第１確認情報の第２更新方法を示す第２制御方法情報を更に含む。
【００２３】
本実施形態では、第２確認情報、第２制御方法情報が、それぞれ、上述した第１確認情報、第１制御方法情報と同一フォーマットの情報であるものとする。但し、第２確認情報と第１確認情報との値が一致するとは限らず、第２制御方法情報と第１制御方法情報との値が一致するとは限らない。
【００２４】
図３は、本実施形態のメッセージのペイロードのフォーマットの一例を示す図である。図３に示すように、メッセージのペイロードは、ｒｆ、ａｃｋｃｍｄ、ａｕｘ＿ｗｏｐｓ＿ｌｅｎ、ｗｏｐｓ＿ｌｅｎ、ｍｅｍ＿ｓｅｒｉａｌ、ｗｏｐ［］、ａｕｘ＿ｗｏｐ［］、及びａｃｋｆｌｇ［］を含む。
【００２５】
ｒｆは、１ビットの情報であり、メッセージがノード１２０の死活監視を要求しているか否かを示す。本実施形態では、ｒｆ＝０の場合、メッセージがノード１２０の死活監視を要求していることを示し、ｒｆ＝１の場合、メッセージがノード１２０の死活監視を要求していないことを示すものとするが、これに限定されるものではない。
【００２６】
なお本実施形態では、ノード１２０の死活監視手法について説明するため、以下では、メッセージに含まれるｒｆの値は０であることを前提に説明する。また、ａｕｘ＿ｗｏｐｓ＿ｌｅｎ、ｗｏｐｓ＿ｌｅｎ、ｍｅｍ＿ｓｅｒｉａｌ、ｗｏｐ［］、及びａｕｘ＿ｗｏｐ［］については、ｒｆ＝０の場合に使用する情報であるため、本実施形態では、説明を省略する。
【００２７】
ａｃｋｃｍｄは、上述の第２制御方法情報に該当し、２ビットの情報であるものとするが、ビット数はこれに限定されるものではない。ａｃｋｆｌｇ［］は、上述の第２確認情報に該当し、２５６ビットの情報であるものとするが、ビット数はこれに限定されるものではない。
【００２８】
判定部１２３は、管理部１２１により管理されている第１確認情報、及び第１制御方法情報、並びに受信部１２２により受信されたメッセージに含まれる第２確認情報、及び第２制御方法情報に基づいて、当該第１確認情報及び当該第１制御方法情報の更新の要否を判定する。
【００２９】
更新部１２４は、受信部１２２により受信されたメッセージに含まれる第２確認情報を用いて、管理部１２１により管理されている第１確認情報及び当該第２確認情報の少なくともいずれかにおいて正常動作していると示されるノード１２０の集合を示すように、当該第１確認情報を更新する。具体的には、更新部１２４は、判定部１２３により第１確認情報の更新が必要と判定された場合、第１確認情報及び第２確認情報の少なくともいずれかにおいて正常動作していると示されるノード１２０の集合を示すように、当該第１確認情報を更新する。
【００３０】
以下、判定部１２３及び更新部１２４について、詳細に説明する。
【００３１】
まず、判定部１２３は、受信部１２２によりメッセージが受信されると、当該メッセージに含まれる第２確認情報、及び第２制御方法情報を取得するとともに、管理部１２１により管理されている第１確認情報、及び第１制御方法情報を取得する。
【００３２】
そして判定部１２３は、第１確認情報と第２確認情報とが一致し、かつ第１制御方法情報と第２制御方法情報とが一致するか否かを判定する。判定部１２３は、第１確認情報と第２確認情報とが一致し、かつ第１制御方法情報と第２制御方法情報とが一致すると判定した場合、受信部１２２により受信されたメッセージがコンシステントであると判定し、更新部１２４は、管理部１２１により管理されている第１確認情報、及び第１制御方法情報を更新しない。
【００３３】
これは、自ノード１２０が管理している第１確認情報、第１制御方法情報が、それぞれ、受信部１２２により受信されたメッセージに含まれる第２確認情報、第２制御方法情報、即ち、当該メッセージを送信した他ノード１００が管理している第１確認情報、第１制御方法情報と一致し、自ノード１２０及び他ノード１００間で第１確認情報及び第１制御方法情報が同一の情報として共有されているためである。
【００３４】
一方、判定部１２３は、第１確認情報と第２確認情報とが一致しない、又は第１制御方法情報と第２制御方法情報とが一致しないと判定した場合、受信部１２２により受信されたメッセージがインコンシステントであると判定し、更新部１２４は、管理部１２１により管理されている第１確認情報及び第１制御方法情報の少なくともいずれかを更新する。
【００３５】
具体的には、判定部１２３は、インコンシステントであると判定した場合、第１制御方法情報と第２制御方法情報とが所定関係にあるか否かを判定する。
【００３６】
ここで、メッセージに含まれるａｃｋｃｍｄ（第２制御方法情報）が示すビット値は、予め定められた順序で更新されるため、判定部１２３は、第１制御方法情報が示すビット値が、第２制御方法情報が示すビット値の１つ前の順序のビット値である場合、第１制御方法情報と第２制御方法情報とが所定関係にあると判定する。
【００３７】
本実施形態では、メッセージの送信元となるノード１１０が、今までの死活監視を終了し、新たな死活監視を開始する場合、メッセージに含めるａｃｋｃｍｄが示すビット値を図４に示す順序で更新（１ビット加算）するため、ノード１２０が受信するメッセージに含まれるａｃｋｃｍｄが示すビット値も、図４に示す順序で更新される。このため判定部１２３は、第１制御方法情報が示すビット値＝第２制御方法情報が示すビット値−１ビットである場合、第１制御方法情報と第２制御方法情報とが所定関係にあると判定する。
【００３８】
更新部１２４は、判定部１２３により、第１制御方法情報と第２制御方法情報とが所定関係にあると判定された場合、第２制御方法情報で第１制御方法情報を更新するとともに、更新された第１制御方法情報が示す第１更新方法で第１確認情報を第１初期値に更新し、第２確認情報を用いて当該第１制御方法情報が示す第２更新方法で第１初期値に更新された第１確認情報を更新する。但し、更新部１２４は、第２制御方法情報が示す第１更新方法で第１確認情報を第１初期値に更新し、第２確認情報を用いて当該第２制御方法情報が示す第２更新方法で第１初期値に更新された第１確認情報を更新してもよい。
【００３９】
ここで、第２制御方法情報で第１制御方法情報を更新するとは、第１制御方法情報が示すビット値を第２制御方法情報が示すビット値に更新することを示す。
【００４０】
また、第１制御方法情報が示す第１更新方法は、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報を構成する全ビットのビット値を１に更新し、第１確認情報を構成するビットのうち自ノード１２０を示すビットのビット値を０に更新することを示し、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報を構成する全ビットのビット値を０に更新し、第１確認情報を構成するビットのうち自ノード１２０を示すビットのビット値を１に更新することを示す。なお、第２制御方法情報が示す第１更新方法も同様である。
【００４１】
また、第１制御方法情報が示す第２更新方法は、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報を、第１確認情報と第２確認情報との論理積で更新し、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報を、第１確認情報と第２確認情報との論理和で更新することを示す。なお、第２制御方法情報が示す第２更新方法も同様である。
【００４２】
つまり本実施形態では、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報を構成するビットのビット値が０であれば、該当するノード１２０が正常動作していることを示し、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報を構成するビットのビット値が１であれば、該当するノード１２０が正常動作していることを示す。なお、第２制御方法情報を用いる場合も同様である。
【００４３】
例えば、第１確認情報が「１１１１１１１１．．．１」、第１制御方法情報が「００」、第２確認情報が「０００００００１．．．０」、第２制御方法情報が「０１」であるとする。この場合、第１制御方法情報が示すビット値「００」＝第２制御方法情報が示すビット値「０１」−１ビットであるため、所定関係が成立する。このため、第１制御方法情報は、第２制御方法情報の「０１」に更新される。そして、第１制御方法情報の最下位ビットのビット値が１であるため、第１確認情報は第１初期値である「０００１００００．．．０」に更新される。なお、ここでは、３ビット目のビットが自ノード１２０を示すビットであるため、ビット値が１に更新されている。更に、第１制御方法情報の最下位ビットのビット値が１であるため、第１確認情報は、第１確認情報と第２確認情報との論理和である「０００１０００１．．．０」に更新される。
【００４４】
このケースは、自ノード１２０が管理している第１制御方法情報が、受信部１２２により受信されたメッセージに含まれる第２制御方法情報、即ち、当該メッセージを送信した他ノード１００が管理している第１制御方法情報よりも、１ビット分遅れており、他ノード１００は、新たな死活監視における第１確認情報を管理しているが、自ノード１２０は、今までの死活監視（終了した死活監視）における第１確認情報を管理していることになる。このため、第１確認情報を第１初期値に更新し、第２確認情報を用いて更に更新することで、自ノード１２０が管理している第１確認情報を、新たな死活監視における状態を示す情報に更新しつつ、自ノード１２０が管理している第１確認情報に他ノード１００が管理している第１確認情報の内容を反映している。
【００４５】
また判定部１２３は、インコンシステントであると判定した場合、第１確認情報と第２確認情報とが一致せず、かつ第１制御方法情報と第２制御方法情報とが一致するか否かを判定する。
【００４６】
更新部１２４は、判定部１２３により、第１確認情報と第２確認情報とが一致せず、かつ第１制御方法情報と第２制御方法情報とが一致すると判定された場合、第２確認情報を用いて第１制御方法情報が示す第２更新方法で第１確認情報を更新する。
【００４７】
例えば、第１確認情報が「１１１０１１１１．．．１」、第１制御方法情報が「１０」、第２確認情報が「１１１１１１１０．．．１」、第２制御方法情報が「１０」であるとする。この場合、第１制御方法情報の最下位ビットのビット値が０であるため、第１確認情報は、第１確認情報と第２確認情報との論理積である「１１１０１１１０．．．１」に更新される。
【００４８】
このケースは、自ノード１２０が管理している第１確認情報が、受信部１２２により受信されたメッセージに含まれる第２確認情報、即ち、当該メッセージを送信した他ノード１００が管理している第１確認情報と一致しておらず、自ノード１２０が管理している第１確認情報に、他ノード１００が管理している第１確認情報の内容が反映されていないことになる。このため、第２確認情報を用いて第１確認情報を更新することで、自ノード１２０が管理している第１確認情報に他ノード１００が管理している第１確認情報の内容を反映している。
【００４９】
タイマ部１２５は、ＲＦＣ６２０６に記載されたＴｒｉｃｋｌｅ  Ｔｉｍｅｒ処理を行う。具体的には、タイマ部１２５は、受信部１２２によりメッセージが受信されると、インターバルｔを設定し、インターバルｔの期間内の待ち時間ｓまでに、記憶部１２７に記憶されている情報とコンシステントなメッセージをｋ（ｋ≧１）回以上受信した場合、受信したメッセージの送信（転送）を送信部１２６に指示しない（キャンセルさせる）。一方、タイマ部１２５は、インターバルｔの期間内の待ち時間ｓまでに、記憶部１２７に記憶されている情報とインコンシステントなメッセージの受信回数がｋ回未満であれば、受信したメッセージの送信（転送）を送信部１２６に指示する（送信させる）。記憶部１２７に記憶されている情報とインコンシステントなメッセージを受信した際は、記憶部１２７に記憶されている情報を更新した上で更新された情報をタイマにより送信する。なお、タイマ部１２５は、待ち時間ｓを、所定の時間ｔ／２〜ｔの期間内でランダムに決定する。
【００５０】
送信部１２６は、更新部１２４により更新された第１確認情報を第２確認情報として含むメッセージをブロードキャストする。具体的には、送信部１２６は、タイマ部１２５によりメッセージの送信が指示されると、管理部１２１から第１確認情報及び第１制御方法情報を取得し、取得した第１制御方法情報を第２制御方法情報（ａｃｋｃｍｄ）、取得した第１確認情報を第２確認情報（ａｃｋｆｌｇ［］）として含むメッセージを作成し、作成したメッセージを自身の無線通信範囲内でブロードキャストする。
【００５１】
ノード１２０の上述した動作により、管理部１２１が記憶部１２７上で管理している第１制御方法情報の最下位ビットのビット値が０である場合、ノード１２０−１〜１２０−ｎが全て正常に動作していれば、管理部１２１が記憶部１２７上で管理している第１確認情報は、最終的に「００００００００．．．０」に更新される。また、管理部１２１が記憶部１２７上で管理している第１制御方法情報の最下位ビットのビット値が１である場合、ノード１２０−１〜１２０−ｎが全て正常に動作していれば、管理部１２１が記憶部１２７上で管理している第１確認情報は、最終的に「１１１１１１１１．．．１」に更新される。
【００５２】
図５は、本実施形態のノード１１０の一例を示す構成図である。図５に示すように、ノード１１０は、管理部１１１と、受信部１１２と、判定部１１３と、更新部１１４と、タイマ部１１５と、送信部１１６と、記憶部１１７と、初期化部１１８と、を備える。
【００５３】
管理部１１１、受信部１１２、判定部１１３、更新部１１４、タイマ部１１５、送信部１１６、及び初期化部１１８は、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。記憶部１１７は、例えば、メモリ、ＳＳＤ、ＨＤＤ、光ディスク、ＲＯＭ、及びＲＡＭなどの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
【００５４】
なお、管理部１１１、受信部１１２、判定部１１３、更新部１１４、タイマ部１１５、送信部１１６は、それぞれ、上述した管理部１２１、受信部１２２、判定部１２３、更新部１２４、タイマ部１２５、送信部１２６と同様の処理を行う。このため、以下では、管理部１１１、受信部１１２、判定部１１３、更新部１１４、タイマ部１１５、送信部１１６、及び初期化部１１８の処理のうち、ノード１１０に固有の処理について説明する。
【００５５】
ノード１１０では、管理部１１１が記憶部１１７上で管理する第１制御方法情報は、第１確認情報を第２初期値に初期化する初期化方法、及び第１確認情報を用いた確認方法を更に示す。本実施形態では、第１制御方法情報が、前述の通り、２ビットの情報であり、最下位ビットのビット値（０ビット目のビット値）で、初期化方法及び確認方法を更に示す場合を例に取り説明するが、これに限定されるものではない。
【００５６】
管理部１１１は、更新部１１４により更新された第１確認情報を用いて、ノード１２０−１〜１２０−ｎそれぞれが正常動作しているか否かを確認する。具体的には、管理部１１１は、更新部１１４により更新された第１確認情報を用いて第１制御方法情報が示す確認方法でノード１２０−１〜１２０−ｎそれぞれが正常動作しているか否かを確認する。
【００５７】
ここで、第１制御方法情報が示す確認方法は、ある時点において、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報において、ビット値が０であるビットに該当するノード１２０が正常動作していると確認できたことを示し、ビット値が１であるビットに該当するノード１２０が正常動作していると確認できていないことを示す。また、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報において、ビット値が１であるビットに該当するノード１２０が正常動作していると確認できたことを示し、ビット値が０であるビットに該当するノード１２０が正常動作していると確認できていないことを示す。
【００５８】
例えば、第１確認情報が「００００００００．．．０」、第１制御方法情報が「００」であるとする。この場合、第１制御方法情報の最下位ビットのビット値が０であり、第１確認情報が「００００００００．．．０」であるため、ノード１２０−１〜１２０−ｎが全て正常動作していることを確認する。
【００５９】
また例えば、第１確認情報が「０１１１１１１１．．．１」、第１制御方法情報が「０１」であるとする。この場合、第１制御方法情報の最下位ビットのビット値が１であり、第１確認情報が「０１１１１１１１．．．１」であるため、ノード１２０−１〜１２０−ｎのうち０ビット目に対応するノード１２０が正常動作しておらず、残りのノード１２０が正常動作していることを確認する。
【００６０】
なお、上述のように、ノード１１０もノード１２０と同様の動作を行うため、管理部１１１が記憶部１１７上で管理している第１制御方法情報の最下位ビットのビット値が０である場合、ノード１２０−１〜１２０−ｎが全て正常に動作していれば、管理部１１１が記憶部１１７上で管理している第１確認情報は、最終的に「００００００００．．．０」に更新される。また、管理部１１１が記憶部１１７上で管理している第１制御方法情報の最下位ビットのビット値が１である場合、ノード１２０−１〜１２０−ｎが全て正常に動作していれば、管理部１１１が記憶部１１７上で管理している第１確認情報は、最終的に「１１１１１１１１．．．１」に更新される。
【００６１】
このため、管理部１１１は、ノード１２０−１〜１２０−ｎが正常動作しているか否かを正しく確認するため、第１確認情報の各ビット値が収束された段階（詳細には、後述の初期化部１１８による初期化が行われてからある程度時間が経過した段階）で確認を行うことが好ましい。なお管理部１１１は、例えば、ノード１１０がネットワークに接続されており、ルーティング機能を有する通信が可能であれば、所定の通信先に確認結果を出力してもよい。
【００６２】
初期化部１１８は、管理部１１１が記憶部１１７上で管理する第１確認情報を初期値に初期化する。具体的には、初期化部１１８は、管理部１１１が記憶部１１７上で管理する第１制御方法情報のビット値を予め定められた順序で更新するとともに、更新後の第１制御方法情報が示す初期化方法で第１確認情報を初期化する。
【００６３】
例えば、初期化部１１８は、今までの死活監視を終了し、新たな死活監視を開始する場合、第１制御方法情報が示すビット値を図４に示す順序で更新（１ビット加算）する。なお、初期化部１１８は、第１制御方法情報が示すビット値を定期的に更新するようにしてもよいし、管理者の指示に基づいて更新するようにしてもよい。例えば、初期化部１１８は、ノード１１０がネットワークに接続されており、ルーティング機能を有する通信が可能であれば、所定の通信先から管理者の指示を受信して、第１制御方法情報が示すビット値を更新すればよい。
【００６４】
また、第１制御方法情報が示す初期化方法は、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報を構成するビットのうち使用する必要のないビットのビット値を０に更新し、第１確認情報を構成するビットのうちそれ以外の全ビットを１に更新することを示し、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報を構成するビットのうち使用する必要のないビットのビット値を１に更新し、第１確認情報を構成するビットのうちそれ以外の全ビットのビット値を０に更新することを示す。
【００６５】
なお、使用する必要のないビットとは、ノードＩＤが割り振られていないビットや、予め正常動作していないことが分かっているノード１２０のノードＩＤが割り振られたビットなどが挙げられるが、これらに限定されるものではない。
【００６６】
タイマ部１１５は、初期化部１１８による第１確認情報の初期化が行われた場合、Ｔｒｉｃｋｌｅ  Ｔｉｍｅｒ処理をＲＦＣ６２０６に従った形でリセットする。
【００６７】
送信部１１６は、初期化部１１８により初期化された第１確認情報を第２確認情報として含むメッセージをブロードキャストする。具体的には、送信部１１６は、タイマ部１１５によりメッセージの送信が指示されると、管理部１１１から第１確認情報及び第１制御方法情報を取得し、取得した第１制御方法情報を第２制御方法情報（ａｃｋｃｍｄ）、取得した第１確認情報を第２確認情報（ａｃｋｆｌｇ［］）として含むメッセージを作成し、作成したメッセージを自身の無線通信範囲内でブロードキャストする。
【００６８】
図６は、本実施形態の更新処理の流れの一例を示すフローチャートである。
【００６９】
まず、受信部１２２は、他のノード１００から、第２確認情報及び第２制御方法情報を含むメッセージを受信する（ステップＳ１０１）。
【００７０】
続いて、判定部１２３は、第１確認情報と第２確認情報とが一致し、かつ第１制御方法情報と第２制御方法情報とが一致するか否かを判定する（ステップＳ１０３）。
【００７１】
第１確認情報と第２確認情報とが一致し、かつ第１制御方法情報と第２制御方法情報とが一致する場合（ステップＳ１０３でＹｅｓ）、受信部１２２により受信されたメッセージがコンシステントであるため、更新部１２４は、第１確認情報、及び第１制御方法情報を更新せず、処理は終了となる。
【００７２】
一方、第１確認情報と第２確認情報とが一致しない、又は第１制御方法情報と第２制御方法情報とが一致しない場合（ステップＳ１０３でＮｏ）、受信部１２２により受信されたメッセージがインコンシステントであるため、判定部１２３は、第１制御方法情報が示すビット値が、第２制御方法情報が示すビット値の１つ前の順序のビット値であるか否かを判定する（ステップＳ１０５）。
【００７３】
第１制御方法情報が示すビット値が、第２制御方法情報が示すビット値の１つ前の順序のビット値である場合（ステップＳ１０５でＹｅｓ）、更新部１２４は、第２制御方法情報で第１制御方法情報を更新するとともに、更新された第１制御方法情報が示す第１更新方法で第１確認情報を第１初期値に更新し、第２確認情報を用いて当該第１制御方法情報が示す第２更新方法で第１初期値に更新された第１確認情報を更新する（ステップＳ１０７）。
【００７４】
一方、第２制御方法情報が示すビット値の１つ前の順序のビット値でない場合（ステップＳ１０５でＮｏ）、第１確認情報と第２確認情報とが一致せず、かつ第１制御方法情報と第２制御方法情報とが一致するか否かを判定する（ステップＳ１０９）。
【００７５】
第１確認情報と第２確認情報とが一致せず、かつ第１制御方法情報と第２制御方法情報とが一致する場合（ステップＳ１０９でＹｅｓ）、更新部１２４は、第２確認情報を用いて第１制御方法情報が示す第２更新方法で第１確認情報を更新する（ステップＳ１１１）。
【００７６】
なお、ステップＳ１０９でＮｏの場合、更新部１２４は、第１確認情報、及び第１制御方法情報を更新せず、処理は終了となる。なお、コンシステント・インコンシステントに対するタイマ部１２５の動作については、ＲＦＣ６２０６のＳｅｃｔｉｏｎ  ４．２に準ずるため詳細には説明しない。
【００７７】
図７は、本実施形態の送信処理の流れの一例を示すフローチャートである。
【００７８】
送信部１２６は、タイマ部１２５によりメッセージの送信が指示されると（ステップＳ２０１でＹｅｓ）、管理部１２１から第１確認情報及び第１制御方法情報を取得し、取得した第１制御方法情報を第２制御方法情報（ａｃｋｃｍｄ）、取得した第１確認情報を第２確認情報（ａｃｋｆｌｇ［］）として含むメッセージを作成し、作成したメッセージを自身の無線通信範囲内でブロードキャストする（ステップＳ２０３）。
【００７９】
なお、タイマ部１２５によりメッセージの送信が指示されない場合（ステップＳ２０１でＮｏ）、送信部１２６は、メッセージをブロードキャストしない。
【００８０】
図８は、本実施形態の確認処理及び初期化処理の流れの一例を示すフローチャートである。
【００８１】
まず、管理部１１１は、第１確認情報を用いて第１制御方法情報が示す確認方法でノード１２０−１〜１２０−ｎそれぞれが正常動作しているか否かを確認する（ステップＳ３０１）。
【００８２】
続いて、初期化部１１８は、第１制御方法情報のビット値を予め定められた順序で更新するとともに、更新後の第１制御方法情報が示す初期化方法で第１確認情報を初期化する（ステップＳ３０３）。
【００８３】
以上のように本実施形態では、各ノード１００が管理する第１確認情報が、他のノード１００から受信する第２確認情報を用いて更新され、更新後の第１確認情報をブロードキャストするため、各ノード１００の第１確認情報の内容が、最終的にノード１２０−１〜１２０−ｎそれぞれが正常に動作しているか否かを示すようになり、各ノード１００間で共有される。このため本実施形態によれば、個別のノードに対する宛先通信を行うことができない環境下においても、個々のノードに対する死活監視を行うことが可能となる。
【００８４】
また本実施形態では、第１確認情報を第１初期値に更新する第１更新方法、及び第２確認情報を用いた第１確認情報の第２更新方法を示す第１制御方法情報や第２制御方法情報を２ビット以上の情報とし、最上位ビット以外のビットのビット値で、第１更新方法及び第２更新方法を示すようにしたため、今までの死活監視を終了し、新たな死活監視を開始した場合に、第１確認情報を新しい情報に更新するのではなく、古い情報に更新してしまうなどの不具合が生じてしまうことを防止できる。
【００８５】
例えば、第１制御方法情報や第２制御方法情報を１ビットの情報とした場合、第１制御方法情報のビットのビット値と第２制御方法情報のビットのビット値とを比較しても、現在行われている死活監視が１つ前の死活監視であるか１つ先の死活監視であるかを判断することはできない。このため、第１確認情報を新しい情報に更新するのではなく、古い情報に更新してしまうなどの不具合が生じてしまうおそれがある。
【００８６】
これに対し、本実施形態では、第１制御方法情報や第２制御方法情報を２ビット以上の情報としたため、第１制御方法情報のビットのビット値と第２制御方法情報のビットのビット値とを比較すれば、現在行われている死活監視が１つ先の死活監視であることを確実に判断することができ、第１確認情報を新しい情報に更新するのではなく、古い情報に更新してしまうなどの不具合が生じてしまうことを防止できる。
【００８７】
（変形例）
上記実施形態では、ノード１１０が１台である場合を例に取り説明したが、ノード１１０の台数を２台以上としてもよい。この場合、マスターとなるノード１１０と、スレーブとなるノード１１０とを用意し、両ノード１１０を有線等でネットワーク経由で接続し、相互を宛先とする通信を可能とし、マスターとなるノード１１０で生成したメッセージ（初期化部１１８による初期化後のメッセージ）をネットワーク経由でスレーブとなるノード１１０に転送し、両ノード１１０から当該メッセージをブロードキャストするようにすればよい。このようにすれば、無線通信システム１０を構成するノード１００の数が多く、無線通信システム１０が大規模なシステムであっても、死活監視に要する時間を短縮することができる。
【００８８】
また上記実施形態では、ノード１１０で、ノード１２０の死活監視を行う例について説明したが、任意のノード１２０でノード１２０の死活監視を行うようにしてもよい。
【００８９】
また上記実施形態では、死活監視の対象にノード１１０を含めない例について説明したが、ノード１１０も死活監視の対象に含めるようにしてもよい。
【００９０】
また上記実施形態では、第１確認情報や第２確認情報の０ビット目もノード１２０が正常動作しているか否かを示すビット値として使用する例について説明したが、全ビットを代表するビットとして使用するようにしてもよい。
【００９１】
この場合、更新部１１４、１２４は、第１制御方法情報の最下位ビットのビット値が０の場合、第１確認情報の１ビット目以降の全てのビットのビット値が０になると、０ビット目のビット値を１から０に更新し、第１制御方法情報の最下位ビットのビット値が１の場合、第１確認情報の１ビット目以降の全てのビットのビット値が１になると、０ビット目のビット値を０から１に更新する。
【００９２】
また、送信部１１６、１２６は、第１確認情報の０ビット目のビット値と、第１制御方法情報の最下位ビットのビット値と、が一致する場合、メッセージに第２確認情報として含める第１確認情報（ａｃｋｆｌｇ［］）を最初の１バイト分に省略するようにしてもよい。このようにすれば、メッセージのペイロードサイズを削減することができる。
【００９３】
（ハードウェア構成）
図９は、上記実施形態のノード１００のハードウェア構成の一例を示すブロック図である。図９に示すように、上記実施形態のノード１００は、ＣＰＵなどの制御装置９０２と、ＲＯＭやＲＡＭなどの記憶装置９０４と、メモリやＳＳＤなどの外部記憶装置９０６と、無線通信チップなどの無線通信装置９１２と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００９４】
上記実施形態のノード１００で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【００９５】
また、上記実施形態のノード１００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態のノード１００で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態のノード１００で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【００９６】
上記実施形態のノード１００で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、ＣＰＵがＲＯＭからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【００９７】
以上説明したとおり、上記実施形態によれば、個別の無線通信装置に対する宛先通信を行うことができない環境下においても、個々の無線通信装置に対する死活監視を行うことが可能である。
【００９８】
なお本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００９９】
例えば、上記実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【符号の説明】
【０１００】
１０  無線通信システム
１１０（１００）  ノード
１２０−１〜１２０−ｎ（１００、１２０）  ノード
１２１  管理部
１２２  受信部
１２３  判定部
１２４  更新部
１２５  タイマ部
１２６  送信部
１２７  記憶部
１１１  管理部
１１２  受信部
１１３  判定部
１１４  更新部
１１５  タイマ部
１１６  送信部
１１７  記憶部
１１８  初期化部
【図１】
0006502808.tif 000002
【図２】
0006502808.tif 000003
【図３】
0006502808.tif 000004
【図４】
0006502808.tif 000005
【図５】
0006502808.tif 000006
【図６】
0006502808.tif 000007
【図７】
0006502808.tif 000008
【図８】
0006502808.tif 000009
【図９】
0006502808.tif 000010