(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】無線メッシュネットワークの運用管理方法および無線メッシュネットワークの運用管理装置
(51)【国際特許分類】
H04W 24/08 20090101AFI20221227BHJP
H04W 84/18 20090101ALI20221227BHJP
H04W 4/38 20180101ALI20221227BHJP
H04L 45/02 20220101ALI20221227BHJP
H04W 40/34 20090101ALI20221227BHJP
【FI】
H04W24/08
H04W84/18 110
H04W4/38
H04L45/02
H04W40/34
(21)【出願番号】P 2019064906
(22)【出願日】2019-03-28
【審査請求日】2021-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】岩川 明則
【審査官】桑原 聡一
(56)【参考文献】
【文献】特開2009-005231(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24-7/26
H04W 4/00-99/00
H04L 45/02
(57)【特許請求の範囲】
【請求項1】
送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する運用管理方法において、
前記親ノードが受信する複数の前記メッセージを一定の評価期間の間、取得する第1処理と、
前記経路情報に基づき、前記無線メッシュネットワークを前記リンク毎に分解する第2処理と、
複数の前記メッセージの経路情報に含まれる前記リンク毎の
情報に基づき、前記親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する第3処理と、
を含み、
前記第3処理は、前記評価期間の間における前記リンク毎の前記メッセージ数を集計し、各ノードを行列とし隣接する各ノード間で送受信したメッセージ数を一覧化した隣接ノード行列を生成した後、
前記ノードを既知ノードと未知ノードに分け、
複数の前記メッセージの経路情報に含まれる前記リンク毎のメッセージ数に基づき、
前記親ノードを既知ノードとして、既知ノードと未知ノードの間のリンクのうちメッセージ数が最大となるリンクのノードを既知ノードの子ノードとし、
既知ノードとした前記子ノードに対し、既知ノードと未知ノードの間の前記リンクのうちメッセージ数が最大となるリンクのノードを前記子ノードの子ノードとする処理を、前記未知ノードがなくなるまで繰り返すことで前記トポロジを算出し、
さらに、前記第3処理で算出した前記トポロジに対応し、各ノードを行列とし前記親ノードに接続される複数の前記子ノードの情報を前記各ノード間のメッセージ数として一覧化した構造ノード行列を作成する第4処理、
をコンピュータが実行することを特徴とする無線メッシュネットワークの運用管理方法。
【請求項2】
前記第4処理は、前記構造ノード行列に基づき、前記親ノードに対する複数の前記ノードの接続状態のツリー構造の生成を含む、
ことを特徴とする請求項1に記載の無線メッシュネットワークの運用管理方法。
【請求項3】
前記第4処理は、前記構造ノード行列に含まれなかったノードを一覧化した剰余ノード行列の生成を含む、
ことを特徴とする請求項2に記載の無線メッシュネットワークの運用管理方法。
【請求項4】
前記第3処理は、
前記リンク毎の情報として、送信元の一つのノードから出力するメッセージを当該一つのノードから出力する全メッセージ数で割る正規化を行い、前記正規化した値を用い、前記トポロジを算出する、
ことを特徴とする請求項1~3のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【請求項5】
前記第1処理の後、送信先のノードからさらに別のノードを経由して送信元ノードに戻るループルート、および送信元のノードから送信したリンクを逆にたどって送信元に戻るポーズルートを検出し、検出した前記ループルート、および前記ポーズルートに含まれるリンクを前記トポロジから除外する、
ことを特徴とする請求項1~4のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【請求項6】
検出した前記ループルートと、前記ポーズルートの情報をそれぞれ保存し、通知する、
ことを特徴とする請求項5に記載の無線メッシュネットワークの運用管理方法。
【請求項7】
前記第3処理は、
前記リンク毎の情報として、前記リンク毎の電波強度を取得し、前記メッセージ数に前記電波強度に基づく補正係数を掛けた値を用い、前記トポロジを算出する、
ことを特徴とする請求項1~6のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【請求項8】
前記第3処理は、
前記リンク毎の情報として、送信元の前記ノードから前記親ノードまでの前記リンク毎の情報を取得し、前記メッセージ数に前記リンク毎の情報に基づく補正係数を掛けた値を用い、前記トポロジを算出する、
ことを特徴とする請求項1~6のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【請求項9】
送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する運用管理装置において、
前記親ノードが受信する複数の前記メッセージを一定の評価期間の間、取得する第1処理と、
前記経路情報に基づき、前記無線メッシュネットワークを前記リンク毎に分解する第2処理と、
複数の前記メッセージの経路情報に含まれる前記リンク毎の情報に基づき、前記親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する第3処理と、を含み、
前記第3処理は、前記評価期間の間における前記リンク毎の前記メッセージ数を集計し、各ノードを行列とし隣接する各ノード間で送受信したメッセージ数を一覧化した隣接ノード行列を生成した後、
前記ノードを既知ノードと未知ノードに分け、
複数の前記メッセージの経路情報に含まれる前記リンク毎のメッセージ数に基づき、
前記親ノードを既知ノードとして、既知ノードと未知ノードの間のリンクのうちメッセージ数が最大となるリンクのノードを既知ノードの子ノードとし、
既知ノードとした前記子ノードに対し、既知ノードと未知ノードの間の前記リンクのうちメッセージ数が最大となるリンクのノードを前記子ノードの子ノードとする処理を、前記未知ノードがなくなるまで繰り返すことで前記トポロジを算出し、
さらに、前記第3処理で算出した前記トポロジに対応し、各ノードを行列とし前記親ノードに接続される複数の前記子ノードの情報を前記各ノード間のメッセージ数として一覧化した構造ノード行列を作成する第4処理を行う制御部、
を備えたことを特徴とする無線メッシュネットワークの運用管理装置。
【請求項10】
前記制御部は、
前記構造ノード行列に基づき、前記親ノードに対する複数の前記ノードの接続状態のツリー構造の生成を含む、
ことを特徴とする請求項9に記載の無線メッシュネットワークの運用管理装置。
【請求項11】
前記制御部は、
前記構造ノード行列に含まれなかったノードを一覧化した剰余ノード行列の生成を含む、
ことを特徴とする請求項9または10に記載の無線メッシュネットワークの運用管理装置。
【請求項12】
前記制御部は、
前記親ノードから前記メッセージを受信するサーバに備えたことを特徴とする請求項9~11のいずれか一つに記載の無線メッシュネットワークの運用管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチホップ通信を行う無線メッシュネットワークの運用管理方法および無線メッシュネットワークの運用管理装置に関する。
【背景技術】
【0002】
近年、ネットワーク接続されたセンサが検出した大量のデータを機械学習で処理し、状況に応じたサービスを提供するIoT(Internet of Things)ソリューションが適用されている。
【0003】
例えば、IoT技術によりトンネルや工事現場などの所定エリアに配置されたセンサの情報を無線通信により取得する際、この所定エリアではLTEなどの広域無線で直接センサ情報を送信することができない場合がある。この場合、例えば、マルチホップ通信の技術を用いることで、ノードに配置されたセンサ等の無線機を多段に中継しながら、最終的にクラウド上のサーバまでセンサが検出した情報を送信することができる。
【0004】
マルチホップ通信では、無線メッシュネットワーク上で電波状況の良好なノードを選択経由して通信が行われるため障害が起こりにくい。その反面、個々のノードにおける送信失敗など内部の障害が外部に現れにくいため、無線メッシュネットワーク内の運用稼働状態の運用監視が不可欠である。例えば、実際のメッセージが設置時に想定した経路を通って通信しているか、想定しない経路の通信がないか等、ノード間の接続関係(トポロジ)を把握する必要がある。
【0005】
従来技術として、GPS等の位置測定機能を持つノードの情報を利用して、位置測定機能を持たないノードの位置を推定し、アドホックのトポロジを描画する技術が開示されている(例えば、下記特許文献1参照。)。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
マルチホップ無線ネットワークでは電波状況の良好なリンクを選択して通信が行われるため、メッセージの通過する経路は時間により異なる。このため、マルチホップ無線ネットワークのトポロジは時間的に変動し、代表的なトポロジを得ることが難しいという課題があった。例えば、特許文献1では、ある瞬間におけるトポロジが得られるだけであり、時間経過毎にトポロジの情報が異なってしまい、ネットワーク網の全体構造を容易に把握できない。
【0008】
一つの側面では、本発明は、時間的な変動の影響を受けないトポロジを算出できることを目的とする。
【課題を解決するための手段】
【0009】
本発明の一側面によれば、送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する運用管理方法において、前記親ノードが受信する複数の前記メッセージを一定の評価期間の間、取得する第1処理と、前記経路情報に基づき、前記無線メッシュネットワークを前記リンク毎に分解する第2処理と、複数の前記メッセージの経路情報に含まれる前記リンク毎の情報に基づき、前記親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する第3処理と、を含み、前記第3処理は、前記評価期間の間における前記リンク毎の前記メッセージ数を集計し、各ノードを行列とし隣接する各ノード間で送受信したメッセージ数を一覧化した隣接ノード行列を生成した後、前記ノードを既知ノードと未知ノードに分け、複数の前記メッセージの経路情報に含まれる前記リンク毎のメッセージ数に基づき、前記親ノードを既知ノードとして、既知ノードと未知ノードの間のリンクのうちメッセージ数が最大となるリンクのノードを既知ノードの子ノードとし、既知ノードとした前記子ノードに対し、既知ノードと未知ノードの間の前記リンクのうちメッセージ数が最大となるリンクのノードを前記子ノードの子ノードとする処理を、前記未知ノードがなくなるまで繰り返すことで前記トポロジを算出し、さらに、前記第3処理で算出した前記トポロジに対応し、各ノードを行列とし前記親ノードに接続される複数の前記子ノードの情報を前記各ノード間のメッセージ数として一覧化した構造ノード行列を作成する第4処理、をコンピュータが実行することを要件とする。
【発明の効果】
【0010】
本発明の一態様によれば、時間的な変動の影響を受けないトポロジを算出できるという効果を奏する。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施の形態1にかかる無線メッシュネットワークの説明図である。
【
図2】
図2は、無線メッシュネットワークのトポロジの変化を説明する図である。
【
図3】
図3は、実施の形態1にかかる運用管理装置のハードウェア構成例を示す図である。
【
図4】
図4は、実施の形態1にかかるノードのハードウェア構成例を示す図である。
【
図5】
図5は、実施の形態1にかかる運用管理装置の機能を示すブロック図である。
【
図6】
図6は、実施の形態1にかかる運用管理装置によるトポロジ算出を説明する図である。
【
図7】
図7は、実施の形態1にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
【
図8A】
図8Aは、実施の形態1にかかるトポロジ算出の具体例を説明する図である。(その1)
【
図8B】
図8Bは、実施の形態1にかかるトポロジ算出の具体例を説明する図である。(その2)
【
図9A】
図9Aは、実施の形態1にかかるトポロジ算出の具体例を説明する図である。(その3)
【
図9B】
図9Bは、実施の形態1にかかるトポロジ算出の具体例を説明する図である。(その4)
【
図10】
図10は、実施の形態2にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
【
図11A】
図11Aは、実施の形態2にかかるトポロジ算出の具体例を説明する図である。(その1)
【
図11B】
図11Bは、実施の形態2にかかるトポロジ算出の具体例を説明する図である。(その2)
【
図12】
図12は、実施の形態3にかかる運用管理装置による異常ルートの検出状態を説明する図である。
【
図13】
図13は、実施の形態3にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
【
図14】
図14は、実施の形態3にかかる運用管理装置による異常ルートの検出の処理例を示すフローチャートである。(その1)
【
図15】
図15は、実施の形態3にかかる運用管理装置による異常ルートの検出の処理例を示すフローチャートである。(その2)
【
図16】
図16は、実施の形態4にかかるノード間の距離を電波強度を用いトポロジを算出する具体例を説明する図である。
【
図17】
図17は、実施の形態4にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
【
図18】
図18は、実施の形態5にかかるノード間の距離をホップ数を用いトポロジを算出する具体例を説明する図である。
【
図19】
図19は、実施の形態5にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に図面を参照して、開示の無線メッシュネットワークの運用管理方法および無線メッシュネットワークの運用管理装置の実施の形態を詳細に説明する。
【0013】
(実施の形態1)
図1は、実施の形態1にかかる無線メッシュネットワークの説明図である。無線メッシュネットワーク100は、アドホックによる無線通信を行う複数のアドホックノード(ノード)101(101a,101b,…)と、運用管理装置130とを含む。
【0014】
ノード101は、所定エリアに複数配置することで、他のノード101との間で相互に通信を行う。これにより、所定エリアがLTEなどの広域無線通信ができない場所であっても、複数のノード101は、それぞれ他のノード101と無線通信が可能なメッシュ状の無線メッシュネットワーク100による通信が可能である。無線通信を行う一対のノード101,101間の経路をノードという。
【0015】
図1の例では、作業員が腕に装着した無線機(無線センサ)110が備えるセンサが所定の変位を検知し、無線センサ110は、検知した変位量をメッセージ(センサ情報)として近接するノード101dにBluetooth(登録商標)等の無線通信で送信する。ノード101は、他のノード101を介したマルチホップ通信により、親ノード101Aまでメッセージを転送する。
【0016】
親ノード101Aは、無線メッシュネットワーク100の端部に位置する固定のノード101であり、親ノード101Aを介して無線メッシュネットワーク100の外部のネットワークにメッセージを送信する。なお、親ノード101A以外のノード101を子ノードともいう。
【0017】
無線センサ110は、例えば、作業員に装着され、周囲の温湿度や、作業員の心拍等の変位量を検知し、定期的もしくはイベント発生時に変位量のメッセージをノード101に送信する。ここで、ノード101は、他のノードから受信したメッセージを転送する毎に、メッセージが示す変位量の情報に加えて、どのノード101を経由したかを示す経路情報、例えば、メッセージ数、送信元ノード、宛先(親ノード101A)、ホップ数、等の情報をメッセージに付加する。
【0018】
ノード101は、前段のノード101から受信したホップ数(ノード間の転送数)を自ノード分、インクリメント(+1)して後段のノード101に送信する処理を行う。なお、以下に説明する他の実施の形態では、ノード101は、経路情報に電波強度等の情報を付加する場合がある。また、以下の説明で用いる経路と、ルートは同じ意味である。
【0019】
無線メッシュネットワーク100において、あるノード101aが送信するメッセージの通信経路(ノード101a~ノード101x間)の通信が障害物等で通信できない場合が生じたとする。この場合、ノード101aは、迂回した通信経路(ノード101b~101c~親ノード101A)でメッセージを送信する。
【0020】
親ノード101Aは、ゲートウェイ120を介して外部のネットワークのクラウドCにメッセージを送信する。クラウドC(例えば、運用管理装置130としてのサーバ)は、メッセージに含まれる変位量に対する情報処理を行う。
【0021】
実施の形態では、運用管理装置130は、メッセージに含まれる経路情報に基づいて、所定エリアの無線メッシュネットワーク100の運用状態を管理する運用管理機能を有する。この運用管理機能は、親ノード101Aが行ってもよい。
【0022】
運用管理装置130は、無線メッシュネットワーク100の運用管理機能として、ネットワークが正常に機能しているか否かに関する情報を生成し、ユーザに提示する。例えば、一定周期の評価期間におけるノード101間の接続関係(トポロジ)を求めて表示する。すなわち、複数の瞬間(時期)のトポロジを集約した代表的なトポロジを求める。
【0023】
図2は、無線メッシュネットワークのトポロジの変化を説明する図である。無線メッシュネットワーク100のトポロジについて、従来技術のように、ある時期(瞬間)のトポロジを求める場合、例えば、
図2(a)の時刻「10:00」のときの各ノードA~E(101)の接続関係(リンク)を求め線分で示す。子ノードB~Eは、いずれも親ノードAに接続されている。
【0024】
しかし、時間経過により、
図2(b)に示すように時刻「10:10」のときには、各ノードA~E(101)のトポロジが変動して示されることになる。ここでは、子ノードC,Eが親ノードAではなく他の子ノードBを介して親ノードAに接続されている。このように、時間経過毎に表示されるトポロジが変動することで、実際のトポロジと乖離が生じ、ユーザがネットワークに生じている状態を把握しにくい。
【0025】
これに対し、実施の形態1では、運用管理装置130は、一定周期の評価期間におけるノード101間のトポロジを求める。そして、求めたトポロジを無線メッシュネットワーク100の各ノード101間でメッセージが通っているノード101や、望ましくないノード101を通っている状態等として表示する。これにより、無線メッシュネットワーク100の実際のトポロジとの乖離が小さく、変動しないトポロジをユーザに提示でき、ユーザはネットワークの実際のトポロジを容易に把握できるようになる。
【0026】
図3は、実施の形態1にかかる運用管理装置のハードウェア構成例を示す図である。運用管理装置130は、例えば、
図3に示すハードウェアからなる汎用のサーバで構成することができる。
【0027】
運用管理装置130は、CPU(Central Processing Unit)301、メモリ302、ネットワークインタフェース(I/F)303、記録媒体I/F304、記録媒体305、を含む。300は各部を接続するバスである。
【0028】
CPU301は、運用管理装置130の全体の制御を司る制御部として機能する演算処理装置である。メモリ302は、不揮発性メモリおよび揮発性メモリを含む。不揮発性メモリは、例えば、CPU301のプログラムを格納するROM(Read Only Memory)である。揮発性メモリは、例えば、CPU301のワークエリアとして使用されるDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等である。
【0029】
ネットワークI/F303は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク310に対する通信インタフェースである。運用管理装置130は、ネットワークI/F303を介してネットワーク310上のゲートウェイ120に通信接続する。運用管理装置130は、ゲートウェイ120を介して、無線メッシュネットワーク100の親ノード101Aに通信接続される。
【0030】
記録媒体I/F304は、CPU301が処理した情報を記録媒体305との間で読み書きするためのインタフェースである。記録媒体305は、メモリ302を補助する記録装置であり、HDD(Hard Disk Drive)や、SSD(Solid State Drive)、USB(Universal Serial Bus)フラッシュドライブ等を用いることができる。
【0031】
メモリ302または記録媒体305に記録された運用管理プログラムをCPU301が実行することにより、運用管理装置130の各機能を実現する。また、メモリ302や記録媒体305は、運用管理装置130が扱う情報を記録保持する。
【0032】
図4は、実施の形態1にかかるノードのハードウェア構成例を示す図である。親ノード101Aを含むノード101は、例えば、
図4に示すハードウェアで構成することができる。
【0033】
ノード101は、CPU401、メモリ402、通信I/F403を含む。400は各部を接続するバスである。
【0034】
CPU401は、ノード101の全体の制御を司る制御部として機能する演算処理装置である。メモリ402は、不揮発性メモリおよび揮発性メモリを含む。通信I/F403は、Bluetooth、RFIDなどの通信を行うためのインタフェースである。ノード101は、通信I/F403を介して無線メッシュネットワーク100上の他のノード101に通信接続する。また、親ノード101Aは、ノード101に加えてゲートウェイ120と通信接続するネットワークI/F(不図示)を有する。
【0035】
メモリ402に記録された制御プログラムをCPU401が実行することにより、ノード101の各機能を実現する。また、メモリ402は、ノード101が扱う情報を記録保持する。ノード101は、作業員が保持する無線センサ110のセンサ情報を受信し、他のノード101に転送する。これに限らず、無線センサ110を用いずにノード101がセンサ404を有し、ノード101がセンサ情報を他のノード101に送信する構成とすることもできる。
【0036】
図5は、実施の形態1にかかる運用管理装置の機能を示すブロック図である。無線メッシュネットワーク100の各ノード101が送信するメッセージは、親ノードA(101A)を介して運用管理装置130が収集する。
【0037】
運用管理装置130は、経路情報受信部501、リンクトラヒック分解部502、トポロジ計算部503、トポロジ生成部504、を含む。経路情報受信部501は、評価期間における無線メッシュネットワーク100の各ノード101が送信するメッセージを受信する。リンクトラヒック分解部502は、各ノード101から受信した複数のメッセージに含まれる経路情報に基づき、各リンク毎に通過したメッセージの数(トラヒックの頻度)を求める。そして、全てのノード101を通過したメッセージの数を経路別に集計した経路ヒストグラムを求める。
【0038】
トポロジ計算部503は、リンクトラヒック分解部502が作成した経路ヒストグラムの情報に基づき、評価期間における無線メッシュネットワーク100のトポロジを計算する。トポロジ生成部504は、トポロジ計算部503が計算したトポロジを例えば、ノード間接続の木構造(ツリー)として表示出力するデータを生成する。生成したトポロジ(ツリー)は、運用管理装置130に接続された端末のディスプレイに表示出力することができる。
【0039】
(トポロジ算出例)
図6は、実施の形態1にかかる運用管理装置によるトポロジ算出を説明する図である。
図5に示した運用管理装置130の各機能が実施する無線メッシュネットワーク100のトポロジ算出例について説明する。以下の説明では、無線メッシュネットワーク100上のメッセージの経路の終端に位置する親ノード101Aを「A」、親ノード以外のノード101を「B,C,D,…」と表記している。
【0040】
運用管理装置130は、トポロジ算出の際、一般的な深さ優先探索と、幅優先探索を組み合わせた木探索と枝刈りを実行し、下記処理1.~処理4.を順に実行処理する。深さ優先探索は、ツリーの深さ方向(親ノード方向)へ向かう探索であり、幅優先探索は、幅方向(自ノードと同じ階層)への探索である。
【0041】
処理1.評価期間における無線メッシュネットワークのノードを通過したメッセージ数をリンク毎に集計し、隣接ノード行列を生成する。
処理2.親ノードを既知ノード、その他ノードを未知ノードに設定する。
処理3.既知ノードへの送信数が最大の未知ノードを抽出し、既知ノードの子として登録して既知ノードとし、構造ノード行列に登録する。この手順を未知ノードがなくなるまで続ける。
処理4.構造ノード行列に登録されなかったリンクを剰余ノード行列として出力する。
【0042】
図6(a)は、運用管理装置130が算出する経路ヒストグラム600の図表であり、無線メッシュネットワーク100の全てのノード101を通過したメッセージの頻度を経路別に集計したものである。上記処理1.のうち「ノードを通過したメッセージ数をリンク毎に集計」する処理に相当する。ここで、ノードAは親ノード(101A)であるとする。
【0043】
例えば、経路「D,E,B,A」は、メッセージがノードD→ノードE→ノードB→親ノードAの順の経路で転送されたメッセージ数が「1」であることを示す。経路の欄の左端のノード101は、メッセージの送信元であり右端のノードは全てのメッセージを受信する終端の親ノードA(101A)である。すなわち、無線メッシュネットワーク100内において全ての経路の終端は親ノードA(101A)である。
【0044】
図6(b)は、運用管理装置130が算出する隣接ノード行列610をツリー構造で表す図である。隣接ノード行列610は、各ノードを縦横軸上で「行列」で表記した図表に相当し(後述する
図8A(b)参照)、縦軸および横軸は、隣接するノード間で送受信したメッセージ数を一覧化したものである。
【0045】
上記処理1.のうち「隣接ノード行列を生成」する処理に相当する。例えば、
図6(a)の経路「D,E,B,A」については、ノードDがノードEに送信する頻度(メッセージ数)「1」をノードD,E間のリンクde部分に示している。なお、ノードE,B間のリンクeb部分には、ノードEがノードBに送信するメッセージを含めたメッセージ数「6」を示している。
【0046】
また、
図6(a)の経路「D,A」については、ノードD(101)がノードAに送信するメッセージ数「7」をノードD,A間のリンクdaに示している。このように、運用管理装置130は、無線メッシュネットワーク100の全てのノード101の全てのノード101を通過したメッセージの頻度を経路別に一覧化する。
【0047】
図6(c)は、運用管理装置130が算出する構造ノード行列620をツリー構造で表した図である。運用管理装置130は、
図6(b)に示した隣接ノード行列610に基づいて、上記処理2.~4.の処理を実行することで、構造ノード行列620と、剰余ノード行列630を算出する。
【0048】
構造ノード行列620は、算出したトポロジに対応し、各ノードを縦横軸上で「行列」で表記した図表に相当し(後述する
図9B(b)参照)、縦軸および横軸には、ノード間で送受信したメッセージ数を示す。剰余ノード行列630は、算出したトポロジに含まれなかったルートの各ノードを縦横軸上で「行列」で表記した図表に相当し(後述する
図9B(c)参照)、縦軸および横軸には、ノード間で送受信したメッセージ数を示す。
【0049】
そして、
図6(c)に示す構造ノード行列620として、リンク(例えば、リンクda)を表示する。また、運用管理装置130は、構造ノード行列620に登録されなかったリンク(例えば、リンクce)を剰余ノード行列630として抽出する。
【0050】
図7は、実施の形態1にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
図7の処理は、運用管理装置130のCPU301が実行し、以下、処理順に説明する。例えば、運用管理装置130は、所定周期(例えば数時間)毎に、あるいは一日の午前と午後にそれぞれ
図7の処理を実行開始する。
【0051】
はじめに、運用管理装置130(経路情報受信部501)は、受信したメッセージに含まれる経路情報を取得する(ステップS701)。この際、運用管理装置130は、設定した評価期間の間、無線メッシュネットワーク100のトポロジ算出のために十分な所定数の経路情報を収集する(ステップS702:Noのループ)。運用管理装置130は、無線メッシュネットワーク100のトポロジ算出のために十分な数の経路情報(例えば、
図6(a)の経路ヒストグラムに相当する情報)を収集できれば(ステップS702:Yes)、ステップS703の処理に移行する。
【0052】
次に、運用管理装置130(リンクトラヒック分解部502)は、経路情報をリンク毎に分解し(ステップS703)、メッセージ数をリンク毎に計算し、隣接ノード行列610を生成する(ステップS704)。
【0053】
次に、運用管理装置130(トポロジ計算部503)は、構造ノード行列620の作成の処理として、はじめに、親ノードA(101A)を既知ノードとし、その他のノード101を未知ノードに設定する(ステップS705)。そして、運用管理装置130は、未知ノードと既知ノード間のメッセージ数が最大となるペアを抽出する(ステップS706)。
【0054】
ここで、メッセージ数が同値となるペアが複数となった場合は、親ノードA(101A)までのホップ数が最も少ないものを選択する。さらには、メッセージ数が同値となるペアが複数で、かつ、親ノードA(101A)までのホップ数が同じ場合には、ノードの昇順(A,B,C,…)にしたがってペアを選択する。例えば、ノードA,Cと、ノードA,Dの場合ノードA,C、すなわちノードCを選択する。
【0055】
次に、運用管理装置130(トポロジ計算部503)は、ステップS706で抽出したペアについて、該当する既知ノードの子として未知ノードを登録する(ステップS707)。そして、運用管理装置130(トポロジ生成部504)は、ステップS706で登録した未知ノードを含む構造ノード行列620を生成する(ステップS708)。
【0056】
次に、運用管理装置130(トポロジ生成部504)は、未知ノード集合が空であるか判断する(ステップS709)。ここでは、構造ノード行列620に登録する未知ノードがなくなったかを判断する。未知ノード集合が空でなければ(ステップS709:No)、運用管理装置130は、ステップS706の処理に戻る。一方、未知ノード集合が空になれば(ステップS709:Yes)、運用管理装置130は、構造ノード行列620に登録されなかったリンクを剰余ノード行列630として抽出し(ステップS710)、以上の処理を終了する。
【0057】
運用管理装置130は、構造ノード行列620を生成するステップS708、および剰余ノード行列630を抽出するステップS710のそれぞれの処理で、ツリーとして表示出力するデータを生成する。生成したトポロジ(ツリー)は、運用管理装置130に接続された端末のディスプレイに表示出力される。
【0058】
図8A,
図8B,
図9A,
図9Bは、実施の形態1にかかるトポロジ算出の具体例を説明する図である。以下の説明では、評価期間におけるノード101の接続状態が
図6(b)に示す状態であったとする。
【0059】
例えば、無線メッシュネットワーク100として、工事現場に無線センサ110および移動自在なノード101を配置し、運用管理装置130は作業員が装着した無線センサ110で作業員の情報を取得するシステムを想定する。工事現場には、1個の親ノードA(101A)と、5個の子ノードB~E(101)を配置し、子ノードB~Eはそれぞれ無線センサ110が送信したセンサの検出値をメッセージとして親ノードAに送信する。
【0060】
親ノード101Aではメッセージと、各ノードが付与した経路情報を運用管理装置130に送信する。運用管理装置130は、メッセージを受信するとリンク毎に分解し、隣接ノード行列の該当するリンクのエントリをインクリメントしていく。ここで一定数(例えば46個)メッセージが受信されると、トポロジ計算部503がトポロジ計算を開始する。
【0061】
この場合、運用管理装置130は、はじめに、
図8A(a)に示す経路ヒストグラム600(
図6(a)と同じ)を
図8A(b)に示す隣接ノード行列610に展開する。運用管理装置130は、隣接ノード行列610を参照して、親ノードAを起点にしたツリーの深さと、幅に対する探索を組み合わせて、子ノードの接続関係を探索する。
【0062】
はじめに、親ノードAの子として登録する候補のノードB,C,D,Eをそれぞれ評価する。ここで、運用管理装置130は、経路ヒストグラム600の経路毎の頻度(メッセージ数)に基づき、親ノードAにメッセージを転送するノードB,C,Dをそれぞれ評価する。
【0063】
ここで、例えば、ノードBからAに向かうメッセージ数を[A,B]「値」と表記する。[A,B]はリンクbaに相当する。この場合、[A,B]は「23」、[A,C]は「7」、[A,D]は「7」である。運用管理装置130は、運用管理装置130は、頻度(メッセージ数)が最も大きい「23」のノードBを親ノードAの子ノードとして登録する。
【0064】
そして、
図8B(a)に示すように、構造ノード行列620で[A,B]のリンクbaを新たに登録する(実線)。また、他の[A,C]、[A,D]に対応するリンクca、daを登録候補リンク(点線)として設定する。
【0065】
次に、運用管理装置130は、既に登録された[A,B]の子として登録する候補のノードC,D,Eをそれぞれ評価する。この場合、[A,C]は「7」、[A,D]は「7」、[B,D]は「6」、[B,E]は「12」である。運用管理装置130は、頻度(メッセージ数)が最も大きい「12」のノードEをノードBの子ノードとして登録し、未知ノードから取り除く。
【0066】
そして、
図8B(b)に示すように、構造ノード行列620で[B,E]のリンクebを新たに登録する(実線)。また、他の[A,C]、[A,D]、[B,D]に対応するリンクca、da、dbを登録候補リンク(点線)として設定する。
【0067】
次に、運用管理装置130は、既に登録された[A,B,E]の子として登録する候補のノードC,Dをそれぞれ評価する。この場合、[A,C]は「7」、[A,D]は「7」、[B,D]は「6」、[E,C]は「6」、[E,D]は「1」である。運用管理装置130は、頻度(メッセージ数)が最も大きい「7」のノードCをノードAの子ノードとして登録し、既知ノードにCを加え、未知ノードから取り除く。ここでは、[A,C]および[A,D]がいずれも「7」であるが、ノードのアルファベット昇順(A,B,C,…)にしたがい、ノードCの[A,C]を選択している。
【0068】
そして、
図9A(a)に示すように、構造ノード行列620で[A,C]のリンクcaを新たに登録する(実線)。また、他の[A,D]、[B,D]、[E,C]、[E,D]に対応するリンクda、db、ce、deを登録候補リンク(点線)として設定する。
【0069】
次に、運用管理装置130は、既に登録された[A,B,E,C]の子として登録する候補のノードDをそれぞれ評価する。この場合、[A,D]は「7」、[C,D]は「1」、[B,D]は「6」、[E,D]は「1」である。運用管理装置130は、頻度(メッセージ数)が最も大きい「7」のノードDをノードAの子ノードとして登録する。これにより、既知ノードはA,B,C,D,E、未知ノードは「なし(空集合)」となる。
【0070】
そして、
図9A(b)に示すように、構造ノード行列620で[A,D]のリンクdaを新たに登録する(実線)。以上の処理で評価していない未知の子ノードがなくなったため、[B,D]、[E,C]、[E,D]、[C、D]に対応するリンクdb、ce、de、dcについては、剰余ノード行列630として抽出する。
【0071】
そして、運用管理装置130は、
図9A(b)に示した構造ノード行列620のツリー構造を無線メッシュネットワーク100のトポロジとして、表示画面を生成し、運用管理装置130に接続された端末のディスプレイに表示出力することができる。この際、表示画面に剰余ノード行列630のリンクは任意の選択により表示することとしてもよい。この際、表示画面上において、構造ノード行列620が示す各リンクを強調表示、例えば太線で示しメッセージ数と共に表示してもよい。
【0072】
また、剰余ノード行列630が示す各リンクは、ツリーの枝として採用されなかったリンクであるが、少なくとも頻度(メッセージ数)は1以上であり、通信を行ったリンクである。このため、剰余ノード行列630が示す各リンクを細線や点線で示しメッセージ数と共に表示してもよい。
【0073】
図9Bには、運用管理装置130が作成した(a)隣接ノード行列610と、(b)構造ノード行列620と、(c)剰余ノード行列630を示す。ところで、これらの行列は、縦軸および横軸の各ノード間で送受信したメッセージ数を一覧化したものである。
【0074】
上記処理により、隣接ノード行列610から構造ノード行列620が作成され、構造ノード行列620として採用されなかったリンクが剰余ノード行列630として抽出される。運用管理装置130は、
図9Bの隣接ノード行列610、構造ノード行列620、剰余ノード行列630、さらには、
図8A(a)に示した経路ヒストグラム600の図表の表示画面を生成し、端末のディスプレイに表示出力してもよい。
【0075】
上述した説明では、便宜上、ノード間接続毎にツリー構造を表示処理する例とした。これに限らず、未知ノード集合が空集合となることでトポロジ計算処理を終了し、得られたトポロジにしたがって無線メッシュネットワーク100全体のトポロジを表示処理してもよい。このツリー構造の表示では、隣接ノード行列に記録されたメッセージ数が「0」より大きく、かつトポロジに組み入れられていないノード101同士を結合表示する。
【0076】
以上説明した実施の形態1によれば、所定の評価期間における無線メッシュネットワーク100のノード101を通過したメッセージ数に基づいて、メッセージを送受信した子ノードを順に探索して、通信を行ったリンクを評価していく。この際、メッセージ毎の経路の頻度(メッセージ数)の経路ヒストグラムからリンク毎のメッセージ数を表す隣接ノード行列を算出し、この隣接ノード行列から構造ノード行列を求めている。
【0077】
構造ノード行列は、親ノードを起点としたツリーの深さ方向と幅方向のそれぞれで探索を行って求め、メッセージ数が大きいリンクを優先して枝(既知ノード)として採用し、未知のノードがなくなるまで探索する。そして、既知ノードとして採用されなかったリンクは剰余ノードとして抽出する。これにより、評価期間においてメッセージを送受信した実際のノードの接続状態(トポロジ)を得ることができるようになり、短時間で変動しないトポロジを提示できるようになる。
【0078】
(実施の形態2)
実施の形態2では、無線メッシュネットワーク100のトポロジの算出において、リンクに重みを付け、ノード間の結びつきに基づき評価を行う。例えば上述した実施の形態1で説明したノード101は、無線機(無線センサ)110のセンサが検知したセンサ情報を受信して他のノード101に転送する。ここで、センサはその種類によってメッセージの送信頻度が異なることがある。この場合、実施の形態1で説明したメッセージの頻度(メッセージ数)に基づく評価では、メッセージ数が多いリンクが優先して主な木構造として採用される傾向となる。しかし、センサの重要性は送信頻度とは必ずしも比例しないため、求める木構造とは異なる構造が得られる可能性がある。
【0079】
実施の形態2では、そのような状況を回避するため、評価するリンクの重みを、出力ノードから出力する全メッセージ数で除する値で評価することにより、リンクをメッセージの絶対数ではなく、ノード間の結びつきの強さで評価する。
【0080】
図10は、実施の形態2にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
図10の処理は、実施の形態1同様の構成の運用管理装置130(CPU301)により実行することができる。
【0081】
以下の説明では、評価期間におけるノード101の接続状態が実施の形態1同様の状態であったとする。また、
図11A,
図11Bは、実施の形態2にかかるトポロジ算出の具体例を説明する図である。
【0082】
はじめに、運用管理装置130(経路情報受信部501)は、受信したメッセージに含まれる経路情報を取得する(ステップS1001)。この際、運用管理装置130は、設定した評価期間の間、無線メッシュネットワーク100のトポロジ算出のために十分な所定数の経路情報を収集する(ステップS1002:Noのループ)。運用管理装置130は、無線メッシュネットワーク100のトポロジ算出のための経路情報(
図11A(a)の経路ヒストグラム600相当)を収集する。そして、十分な数の経路情報を取得できれば(ステップS1002:Yes)、ステップS1003の処理に移行する。
【0083】
次に、運用管理装置130(リンクトラヒック分解部502)は、経路情報をリンク毎に分解する(ステップS1003)。そして、運用管理装置130は、リンク毎のメッセージ数を対応するノード毎に分解して隣接ノード行列610(
図11A(b)、
図11B(a))を生成する。
【0084】
さらに、運用管理装置130は、隣接ノード行列610を、ノードから送信される全メッセージ数で正規化した隣接ノード行列610(
図11A(c)、
図11B(b))を生成する(ステップS1004)。例えば、正規化は、一つのノードから出力するメッセージをこの一つのノードから出力する全メッセージ数で割って求める。
【0085】
図11A(c)、
図11B(b)に示す正規化した隣接ノード行列1110の値は、例えば、ノードBが送信するメッセージは、ノードAへのメッセージ数「23」だけであるため、「1」となる。また、ノードCが送信するメッセージは、ノードAへのメッセージ数「7」と、ノードEへのメッセージ数「7」とを含むため、[C,A](リンクca)が「0.5」、[C,E](リンクce)が「0.5」といずれも同値となる。
【0086】
以下の処理は、実施の形態(
図7参照)と同様である。運用管理装置130(トポロジ計算部503)は、構造ノード行列620の作成の処理として、はじめに、親ノードA(101A)を既知ノードとし、その他のノード101を未知ノードに設定する(ステップS1005)。
【0087】
そして、運用管理装置130は、未知ノードと既知ノード間のメッセージ数が最大となるペアを抽出する(ステップS1006)。ここで、同値となるペアが複数となった場合は、親ノードA(101A)までのホップ数が最も少ないものを選択する。
【0088】
次に、運用管理装置130(トポロジ計算部503)は、ステップS1006で抽出したペアについて、該当する既知ノードの子として未知ノードを登録する(ステップS1007)。そして、運用管理装置130(トポロジ生成部504)は、ステップS1006で登録した未知ノードを含む構造ノード行列620を生成する(ステップS1008)。
【0089】
次に、運用管理装置130(トポロジ生成部504)は、未知ノード集合が空であるか判断する(ステップS1009)。ここでは、構造ノード行列620に登録する未知ノードがなくなったかを判断する。未知ノード集合が空でなければ(ステップS1009:No)、運用管理装置130は、ステップS1006の処理に戻る。一方、未知ノード集合が空になれば(ステップS1009:Yes)、運用管理装置130は、構造ノード行列620に登録されなかったリンクを剰余ノード行列630として抽出し(ステップS1010)、以上の処理を終了する。
【0090】
運用管理装置130は、構造ノード行列620を生成するステップS1008、および剰余ノード行列630を抽出するステップS1010のそれぞれの処理で、ツリーとして表示出力するデータを生成する。生成したトポロジ(ツリー)は、運用管理装置130に接続された端末のディスプレイに表示出力される。
【0091】
以上説明した実施の形態2によれば、実施の形態1同様に、評価期間においてメッセージを送受信した実際のノードの接続状態(トポロジ)を得ることができるようになり、短時間で変動しないトポロジを提示できるようになる。加えて、実施の形態2では、評価するリンクの重みを、ノードから出力するメッセージを全メッセージ数で割り正規化した値で評価する。これにより、リンクをメッセージの絶対数ではなく、ノード間の結びつきの強さで評価することができる。例えば、ノード毎の特性、例えば、ノードに送信する無線センサのセンサ種別によるメッセージ送信数の違いを補正してアドホックの無線メッシュネットワークの代表的なトポロジを算出できるようになる。
【0092】
(実施の形態3)
実施の形態3は、上述した実施の形態1,2による無線メッシュネットワーク100のトポロジの算出に加えて、無線メッシュネットワーク100内での異常ルートを検出し、排除するものである。
【0093】
図12は、実施の形態3にかかる運用管理装置による異常ルートの検出状態を説明する図である。複数のノード間でメッセージを転送するマルチホップ無線では、無線環境が良好なリンクを選択して送信するが、状況によっては、
図12(a)に示すように、送信先のノードからさらに別のノードを経由して送信元ノードに戻ってしまうことがある(ループ)。
図12(a)の例では、例えば、ノードDが送信しノードBが受信したメッセージは正常であればノードBがノードAに転送する。ループでは、ノードBが受信したメッセージが点線で示すように、ノードC→ノードE→ノードEで1周する状態が生じている。
【0094】
また、
図12(b)に示すように、一旦送信したリンクを逆にたどって送信元に戻ってしまうことがある(ポーズ)。
図12(b)の例では、ノードBがノードEに送信したメッセージは正常であればノードEからノードAに転送する。ポーズでは、ノードBがノードEに送信したメッセージが点線で示すように、ノードBに戻る状態が生じている。
【0095】
これらポーズおよびループはいずれも異常ルートであり、本来必要のないリンクやノードを通過しているため、トポロジの算出にノイズとして影響を与える可能性がある。
【0096】
実施の形態3では、運用管理装置130は、受信した経路情報に基づき、ループやポーズの異常ルートの発生を検出し、異常ルート発生の検出時にはリンク毎のメッセージ数の集計対象としない処理を追加する。
【0097】
図13は、実施の形態3にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
図13には、実施の形態1(
図7参照)同様のトポロジ算出の処理を示し、同じ処理内容には
図7同様の符号を付し説明を省略する。運用管理装置130は、ステップS702の実行後、異常ルートの検出(除去)を行う(ステップS1300)。
【0098】
異常ルートとしてのループは、あるノードが送信したメッセージが別のノードを経由して戻る状態を検出する。ポーズは、あるノードが送信したメッセージのリンクから同じメッセージを逆に受信した状態を検出する。運用管理装置130は、親ノード101Aを介して受信した経路情報として、メッセージ毎の送信元ノード、送信先ノード、ホップ数を取得しており、ループやポーズ等の異常ルートの発生を検出できる。ステップS1300の実行後、運用管理装置130は、ステップS703(
図7参照)以下の処理を実行する。
【0099】
図14,
図15は、実施の形態3にかかる運用管理装置による異常ルートの検出の処理例を示すフローチャートである。
図14,
図15のいずれも
図13のステップS1300の詳細な処理例を示す。運用管理装置130は、無線メッシュネットワーク100から取得した経路情報に基づき、全てのノードに対して異常ルート(ループおよびポーズ)の発生を検出する。
【0100】
図14の処理例では、異常ルートを削除する。はじめに、運用管理装置130(トポロジ計算部503)は、異常ルート発生検出のための探索用の一つの開始ノードを設定する(ステップS1401)。次に、経路情報(経路ヒストグラム600相当)に基づき、開始ノードに接続された次ノードを取得する(ステップS1402)。
【0101】
そして、運用管理装置130は、この次ノードがメッセージの宛先(親ノード101A)であるか判断する(ステップS1403)。次ノードがメッセージの宛先であれば(ステップS1403:Yes)、運用管理装置130は、スタック情報を出力し(ステップS1408)、以上の処理を終了する(
図13のステップS703に戻る)。
【0102】
スタック情報は、例えば、経路ヒストグラム600(
図6参照)に示した経路に相当する。そして、一つのリンクに相当するメッセージ送信元のノード「D」と受信したノード「E」を、宛先(親ノード101A)に到達するまで「D,E,B,A」として積み重ねた(スタック)ものを示す。
【0103】
ステップS1403において、次ノードがメッセージの宛先でなければ(ステップS1403:No)、運用管理装置130は、次ノードの出現は2回目であるか判断する(ステップS1404)。次ノードの出現が2回目であれば(ステップS1404:Yes)、運用管理装置130は、ループあるいはポーズの発生と判断し、ループ・ポーズ出現フラグの値を「1」に設定する(ステップS1405)。この後、運用管理装置130は、ノードの初回出現以降のルートをスタックから除去し(ステップS1406)、ステップS1402の処理に戻る。
【0104】
ステップS1406では、例えば、スタックが「D,B,C,E,B,A」となった場合、ノードBが2回出現しているため、異常ルートに相当する「C,E,B」を除去し、スタックを「D,B,A」に修正する。
【0105】
一方、次ノードの出現が2回目でなければ(ステップS1404:No)、運用管理装置130は、次ノードのスタックへの追加(通常のスタック処理)を行い(ステップS1407)、ステップS1402の処理に戻る。
【0106】
上記のように、ループあるいはポーズの異常ルートを検出した場合、運用管理装置130は、これらループあるいはポーズの経路(
図12(a),(b)に示す点線)の情報をツリー構造から削除する。この後、運用管理装置130は、ステップS703の処理に移行する。
【0107】
図14に示した処理では、運用管理装置130は、異常ルートをスタックから削除することとした。
図15の処理例では、検出したループやポーズの異常ルートを削除するとともに、異常ルートの情報をそれぞれ集計して保持する。
【0108】
図15の処理では、はじめに、運用管理装置130(トポロジ計算部503)は、異常ルート発生検出のための探索用の一つの開始ノードを設定する(ステップS1501)。次に、経路情報(経路ヒストグラム600相当)に基づき、開始ノードに接続された次ノードを取得する(ステップS1502)。
【0109】
そして、運用管理装置130は、この次ノードがメッセージの宛先(親ノード101A)であるか判断する(ステップS1503)。次ノードがメッセージの宛先であれば(ステップS1503:Yes)、スタック情報を経路として出力し(ステップS1510)、以上の処理を終了する(
図13のステップS703に戻る)。
【0110】
ステップS1503において、次ノードがメッセージの宛先でなければ(ステップS1503:No)、運用管理装置130は、次ノードの出現は2回目であるか判断する(ステップS1504)。次ノードの出現が2回目であれば(ステップS1504:Yes)、ステップS1505の処理に移行し、次ノードの出現が2回目でなければ(ステップS1504:No)、ステップS1509の処理に移行する。
【0111】
ステップS1505では、運用管理装置130は、初回と2回目の間にあるノード数は1であるか判断する(ステップS1505)。初回と2回目の間にあるノード数が1であれば(ステップS1505:Yes)、運用管理装置130は、ポーズの発生と判断し、ノードの初回出現以降のルートをポーズルートテーブルに追加する(ステップS1506)。初回と2回目の間にあるノード数が1でなければ(ステップS1505:No)、運用管理装置130は、ループの発生と判断し、ノードの初回出現以降のルートをループルートテーブルに追加する(ステップS1507)。
【0112】
図12(a)の例では、二回出現しているノードBの間にあるノードはノードC,Eの2つなので、上記処理にしたがいループルートと判定され、この情報はループルートテーブルに保持される。その際、ノードB→C→E→Bと、最後に最初のノードBを付加してループであることがユーザに対しより明確に把握可能な表示を行ってからループルートテーブルに保存してもよい。また、同一のループルートが複数検出された場合は、そのルート毎に出現数を保持するようにしてもよい。
【0113】
同様に、
図12(b)に示したように、ノードD→B→E→B→A間にポーズルートが検出された場合は、二回出現しているノードBの間にあるノードはノードEの一つであるため、ポーズルートとして判定され、情報はポーズルートテーブルに保持される。
【0114】
ステップS1506,ステップS1507の処理後、運用管理装置130は、ノードの初回出現以降のルートをスタックから除去し(ステップS1508)、ステップS1502の処理に戻る。
【0115】
ステップS1509の処理では、運用管理装置130は、次ノードのスタックへの追加(通常のスタック処理)を行い(ステップS1509)、ステップS1502の処理に戻る。
【0116】
上記のように、ループあるいはポーズの異常ルートを検出した場合、運用管理装置130は、これらループおよびポーズの経路(
図12(a),(b)に示す点線)の情報をツリー構造から削除する。また、ポーズルートテーブルおよびループルートテーブルは、運用管理装置130のメモリ302や記録媒体305を用いて保持でき、これらポーズおよびループの発生をそれぞれ区別して保持できる。そして運用管理装置130は、保持した異常ルートの情報であるポーズおよびルートの一覧として端末のディスプレイに表示出力することができる。
【0117】
上記説明では、異常ルートの検出処理(ステップS1300)を実施の形態1(
図7の処理)に適用した例を示したが、同様に実施の形態2(
図10の処理)に適用することもできる。
【0118】
以上説明した実施の形態3によれば、実施の形態1,2同様に、評価期間においてメッセージを送受信した実際のノードの接続状態(トポロジ)を得ることができるようになり、短時間で変動しないトポロジを提示できるようになる。加えて、実施の形態3によれば、本来必要のないリンクの通過を検出し削除することで、ノイズとなる経路を削除したトポロジを算出できるようになる。また、ポーズおよびルートの発生したルートの情報をそれぞれ保持し、異常ルートとして表示出力することもできる。
【0119】
(実施の形態4)
実施の形態4では、無線メッシュネットワーク100内のノード101の物理的な距離を考慮したトポロジを算出する。一般に無線メッシュネットワーク100内の無線通信ではメッセージを送受信するノード101間の距離に比例して電波強度が弱くなるという性質を有する。無線センサ110を持った作業員が現場内を移動し、移動位置のノード101と通信するような状況では、作業員の代表的な物理的位置をツリー構造に反映させることが望ましい。
【0120】
ノード間の距離は電波強度として表れる。実施の形態4では、ノード101は、受信したメッセージの電波強度(RSSI:Received Signal Strength Indication)を経路情報に含ませる。電波強度は、通常-90dBmから-30dBmの負の値をとることが多い。実施の形態4では、この電波強度の値をリンクのメッセージ数の補正係数として用いる。そして、運用管理装置130は、経路情報に含まれるリンクの電波強度を取得し、リンク毎のメッセージ数を集計する際に、リンクの平均電波強度を加えてトポロジを算出する。
【0121】
図16は、実施の形態4にかかるノード間の距離を電波強度を用いトポロジを算出する具体例を説明する図である。
図16(a)に示す所定のトポロジが得られたとする。このトポロジは、例えば、実施の形態1(
図6(c))の構造ノード行列620(ツリー)であるとする。この
図16(a)に示したトポロジでは、ノード101の物理的な距離を考慮していない。
【0122】
図16(b)は、
図16(a)に示した各ノード101間の電波強度を示す。例えば、リンクca間(ノードA受信)の電波強度が「-70dBm」、リンクce(ノードE受信)の電波強度が「-30dBm」(リンクca間より電波強度が強い)であったとする。この場合、運用管理装置130は、電波強度を無線メッシュネットワーク100全体で正規化した電波強度指数に変換する。例えば、電波強度指数は、下記式(1)のように、リンクの電波強度から最小電波強度を減じて10を加えた値を10で除することにより得られる。
【0123】
電波強度=(リンク電波強度-最小電波強度+10)/10 …(1)
(最小電波強度は全リンク内の最小の電波強度)
【0124】
図16(b)では、正規化により、リンクca間の電波強度指数が「1」、リンクceの電波強度指数は「5」と算出される。電波強度指数はメッセージ数に対する補正係数(重み)に相当する。
【0125】
そして、運用管理装置130は、
図16(a)に示すように、メッセージ数と電波強度指数の積を求める。例えば、リンクca間は、メッセージ数「7」に電波強度指数「1」を乗算した値「7」が得られる。リンクceは、メッセージ数「6」に電波強度指数「5」を乗算した値「30」が得られる。
【0126】
図16(c)は、電波強度を考慮しない場合のトポロジ算出状態である。電波強度を考慮せず、
図16(a)のメッセージ数だけでトポロジ算出した場合、実施の形態1(
図8B(b))の構造ノード行列620となる。
【0127】
図16(d)は、実施の形態4による電波強度を考慮した場合のトポロジ算出状態である。上述したように、メッセージと電波強度指数の積で得たトポロジでは、実際のノード間の電波強度(距離に相当)を考慮することで、ノードCは、ノードEに接続される形に変更されている。
【0128】
図17は、実施の形態4にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
図17には、実施の形態1(
図7参照)同様のトポロジ算出の処理を示し、同じ処理内容には
図7同様の符号を付し説明を省略する。
【0129】
運用管理装置130は、ステップS704の実行後、上記式(1)に基づき、受信した経路情報に含まれる該当するリンクのノード101が受信した平均電波強度を求める(ステップS1701)。そして、運用管理装置130は、リンク毎の平均電波強度から電波強度の最小電波強度を減じた値を隣接ノード行列610の各要素に乗算する(ステップS1702)。ステップS1702の実行後、運用管理装置130は、ステップS705(
図7参照)以下の処理を実行する。
【0130】
以上説明した実施の形態4によれば、実施の形態1,2同様に、評価期間においてメッセージを送受信した実際のノードの接続状態(トポロジ)を得ることができるようになり、短時間で変動しないトポロジを提示できるようになる。加えて、実施の形態4によれば、経路情報とともにリンク毎の電波強度に基づき、物理的な距離相当を考慮したトポロジを算出することができる。この際、ノードが送信するメッセージ数は同一であっても電波強度の低いリンクは小さく評価されることになり、トポロジに物理的な距離を反映することができ、より実際の運用状態に沿ったトポロジを算出できるようになる。なお、実施の形態4の処理に加えて、実施の形態3で説明した異常ルートの検出処理を加えることもできる。
【0131】
(実施の形態5)
実施の形態5では、無線メッシュネットワーク100の電波強度の情報を用いずにホップ数に基づきトポロジを算出する。上述した実施の形態4では、電波強度の測定結果を用いることによって、現場のノード101の物理的な位置を考慮したツリー構造を得ているが、電波強度が取得できない場合もある。
【0132】
マルチホップ無線では、ノード101間の通信状況に応じて転送経路が変動し、あるノード101がツリー構造上で移動した場合、親ノード101Aに近いノード101に接続される場合もあれば、逆に遠いノード101に接続される場合も生じる。ツリー構造の深さは状況によって変化する。
【0133】
実施の形態5では、ネットワーク管理者の設計や現場の状況から深いツリー構造をとることが既知の場合、未知ノードをいずれかの既知ノードの子として登録するとき、既知ノードの親までのホップ数が深いノード101を優先して評価する。
【0134】
実施の形態5では、補正係数として実施の形態4で用いた電波強度指数に代えて各ノード101から親ノード101Aまでのホップ数を用いる。ツリー構造の探索では、通常、ツリーは下(枝)から上(親ノード)に向かう深さ優先探索を優先して行う。実施の形態5では、子ノードとして登録する対象のノード101について、親ノード101Aまでのホップ数を、深さ優先探索の重み(補正係数)として用いる。
【0135】
図18は、実施の形態5にかかるノード間の距離をホップ数を用いトポロジを算出する具体例を説明する図である。
図18(a)に示すように、ノードCからノードA,Eに向かうリンクca,ceを評価するとき、登録される側のノードA,Eのそれぞれの親ノード101Aまでのホップ数はそれぞれ「0」(自身が親ノードのため),「2」(ノードE→B→A)である。運用管理装置130は、これらの値に「1」を加えた値「1」,「3」を補正係数とする。そして、それぞれのメッセージ数「7」,「6」に補正係数「1」,「3」を乗じ、それぞれの値「7」(7×1),「18」(6×3)を得る。
【0136】
図18(b)は、親までのホップ数を考慮せず、メッセージ数のみに基づいて算出した場合のツリー構造である。ホップ数を考慮せず、メッセージ数だけでトポロジ算出した場合、図示の構造ノード行列620となる。これに対し、実施の形態5の上記処理によれば、
図18(c)に示すように、構造が深くなることを既知の条件として与えた場合、ノード間のホップ数を考慮することで、ノードCは、ノードEに接続される形に変更されている。例えば、トンネルのようなあらかじめツリー構造が深くなることが既知の現場において、実際のノード配置に近いツリー構造を得ることができるようになる。
【0137】
図19は、実施の形態5にかかる運用管理装置によるトポロジ算出の処理例を示すフローチャートである。
図19には、実施の形態1(
図7参照)同様のトポロジ算出の処理を示し、同じ処理内容には
図7同様の符号を付し説明を省略する。
【0138】
運用管理装置130は、ステップS705の実行後、未知ノードと既知ノード間の重みを抽出し、既知ノードと親ノードまでのホップ数に「1」を加えた値をメッセージ数に乗じた算出を行う(ステップS1901)。ステップS1901の実行後、運用管理装置130は、ステップS706(
図7参照)以下の処理を実行する。
【0139】
実施の形態5によれば、実施の形態1,2同様に、評価期間においてメッセージを送受信した実際のノードの接続状態(トポロジ)を得ることができるようになり、短時間で変動しないトポロジを提示できるようになる。加えて、実施の形態5によれば、ノードから電波強度を取得できない場合でもホップ数に基づき実際のノードの配置に沿ったツリー構造のトポロジを算出できるようになる。なお、実施の形態5の処理に加えて、実施の形態3で説明した異常ルートの検出処理を加えることもできる。
【0140】
以上説明した実施の形態によれば、送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する。この際、親ノードが受信する複数のメッセージを一定の評価期間の間、取得する。そして、取得した経路情報に基づき、無線メッシュネットワークをリンク毎に分解した後、複数のメッセージの経路情報に含まれるリンク毎のメッセージの受信状態に基づき、親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する。これにより、時間的な変動の影響を受けないトポロジを算出できるようになる。
【0141】
例えば、マルチホップの無線メッシュネットワークでは電波状況の良好なリンクを選択して通信が行われるため、メッセージの通過する経路は時間により異なり、トポロジが時間的に変動し、代表的なトポロジを得ることが難しい。しかし、実施の形態によれば、一定の評価期間の間における無線メッシュネットワークの代表的な全体構造を容易に把握できるようになる。
【0142】
そして、無線メッシュネットワークを構成する複数のノードの結合関係を提示でき、ユーザがネットワークの全体構造を容易に把握できるようになる。これにより、ネットワーク設計時や、ノードの配置時に想定した経路に対して、実際に運用した際の経路の違いを容易に把握できるようになる。また、ノードの物理的な配置にできるだけ近づけたトポロジを提示できるようになり、ユーザ側でのノードの位置把握などの運用管理にかかる工数を削減できるようになる。
【0143】
また、リンク毎の前記メッセージの受信状態として、リンク毎のメッセージ数を用い、トポロジを算出することができる。これにより、メッセージ数が多いリンクを優先してトポロジを算出できるようになる。
【0144】
また、トポロジ算出は、より具体的には、ノードを既知ノードと未知ノードに分ける。そして、複数のメッセージの経路情報に含まれるリンク毎のメッセージ数に基づき、親ノードを既知ノードとして、未知ノードからなるリンクのうちメッセージ数が最大となるリンクのノードを既知ノードの子ノードとする。この後、既知ノードとした子ノードに対し、未知ノードからなるリンクのうちメッセージ数が最大となるリンクのノードを子ノードの子ノードとする処理を、未知ノードがなくなるまで繰り返して行う。これにより、複数のノードを有する無線メッシュネットワーク全体のトポロジを効率的に算出できるようになる。
【0145】
また、算出したトポロジに対応し、親ノードに接続される複数の子ノードの情報を各ノード間のメッセージ数として一覧化した構造ノード行列を作成してもよい。これにより、構造ノード行列に基づき、各ノード間のメッセージの送信状態を容易に把握できるようになる。
【0146】
また、構造ノード行列に基づき、親ノードに対する複数の前記ノードの接続状態のツリー構造を生成してもよい。これにより、ツリー構造に基づき、各ノード間の接続状態を容易に把握できるようになる。
【0147】
また、前記構造ノード行列に含まれなかったノードを一覧化した剰余ノード行列を作成してもよい。剰余ノード行列は、算出したトポロジのツリー構造の枝として採用されなかったリンクに相当するが、メッセージ送信を行っているリンクであり、剰余ノード行列として提示されたノードおよびリンクの存在を確認できるようになる。
【0148】
また、リンク毎のメッセージの受信状態として、送信元のノード毎に当該ノードが送信するメッセージ数を正規化し、正規化した値を用い、トポロジを算出してもよい。これにより、単にメッセージ数が多いリンクのみがトポロジとして算出されることがなく、ノード間の結びつきの強さを考慮して算出できる。例えば、ノード毎の特性、例えば、ノードに送信する無線センサのセンサ種別によるメッセージ送信数が違っても、重要なメッセージである場合に対応した補正を行って無線メッシュネットワークの代表的なトポロジを算出できるようになる。
【0149】
また、同一のリンクを複数回通過するループルート、および同一ノードを複数回通過するポーズルートを検出し、前記トポロジから除外する処理を行ってもよい。これら異常ルートを検出することで、本来必要のないリンクやノードを除外することで、ノイズとなる経路を削除したトポロジを算出できるようになる。
【0150】
また、検出したループルートと、ポーズルートの情報をそれぞれ保存し、通知してもよい。これにより、ユーザにループルートと、ポーズルートの発生を提示でき、ユーザ側での確認および対策を促すことができる。
【0151】
また、リンク毎のメッセージの受信状態として、リンク毎の電波強度を取得し、メッセージ数に電波強度に基づく補正係数を掛けた値を用い、トポロジを算出することとしてもよい。これにより、経路情報とともにリンク毎の電波強度に基づき、物理的な距離相当を考慮したトポロジを算出することができる。そして、ノードが送信するメッセージ数は同一であっても電波強度の低いリンクは小さく評価されることになり、トポロジに物理的な距離を反映することができ、より実際の運用状態に沿ったトポロジを算出できるようになる。例えば、無線センサを持った作業員が現場内を移動し、移動位置のノードと通信するような状況において、作業員の代表的な物理的位置をトポロジに反映できるようになる。
【0152】
また、リンク毎のメッセージの受信状態として、送信元のノードから親ノードまでのホップ数を取得し、メッセージ数にホップ数に基づく補正係数を掛けた値を用い、トポロジを算出することとしてもよい。これにより、ノードから電波強度を取得できない場合でもホップ数に基づき実際のノードの配置に沿ったツリー構造のトポロジを算出できるようになる。
【0153】
なお、本発明の実施の形態で説明した無線メッシュネットワークのトポロジ算出にかかる方法は、あらかじめ用意されたプログラムをサーバ等のプロセッサに実行させることにより実現することができる。本方法は、ハードディスク、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本方法は、インターネット等のネットワークを介して配布してもよい。
【0154】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0155】
(付記1)送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する運用管理方法において、
前記親ノードが受信する複数の前記メッセージを一定の評価期間の間、取得する第1処理と、
前記経路情報に基づき、前記無線メッシュネットワークを前記リンク毎に分解する第2処理と、
複数の前記メッセージの経路情報に含まれる前記リンク毎の前記メッセージの受信状態に基づき、前記親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する第3処理と、
をコンピュータが実行することを特徴とする無線メッシュネットワークの運用管理方法。
【0156】
(付記2)前記第3処理は、
前記リンク毎の前記メッセージの受信状態として、前記リンク毎のメッセージ数を用い、前記トポロジを算出する、
ことを特徴とする付記1に記載の無線メッシュネットワークの運用管理方法。
【0157】
(付記3)前記第3処理は、
前記ノードを既知ノードと未知ノードに分け、
複数の前記メッセージの経路情報に含まれる前記リンク毎のメッセージ数に基づき、
前記親ノードを既知ノードとして、未知ノードからなる前記リンクのうちメッセージ数が最大となるリンクのノードを既知ノードの子ノードとし、
既知ノードとした前記子ノードに対し、未知ノードからなる前記リンクのうちメッセージ数が最大となるリンクのノードを前記子ノードの子ノードとする処理を、前記未知ノードがなくなるまで繰り返す、
ことを特徴とする付記2に記載の無線メッシュネットワークの運用管理方法。
【0158】
(付記4)前記第3処理で算出した前記トポロジに対応し、前記親ノードに接続される複数の前記子ノードの情報を前記各ノード間のメッセージ数として一覧化した構造ノード行列を作成する第4処理を含む、
ことを特徴とする付記3に記載の無線メッシュネットワークの運用管理方法。
【0159】
(付記5)前記第4処理は、前記構造ノード行列に基づき、前記親ノードに対する複数の前記ノードの接続状態のツリー構造を生成する、
ことを特徴とする付記4に記載の無線メッシュネットワークの運用管理方法。
【0160】
(付記6)前記第4処理は、前記構造ノード行列に含まれなかったノードを一覧化した剰余ノード行列を作成する、
ことを特徴とする付記4または5に記載の無線メッシュネットワークの運用管理方法。
【0161】
(付記7)前記第3処理は、
前記リンク毎の前記メッセージの受信状態として、送信元の前記ノード毎に当該ノードが送信するメッセージ数を正規化し、前記正規化した値を用い、前記トポロジを算出する、
ことを特徴とする付記1,4~6のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【0162】
(付記8)前記第1処理の後、同一のリンクを複数回通過するループルート、および同一ノードを複数回通過するポーズルートを検出し、前記トポロジから除外する、
ことを特徴とする付記1~7のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【0163】
(付記9)検出した前記ループルートと、前記ポーズルートの情報をそれぞれ保存し、通知する、
ことを特徴とする付記8に記載の無線メッシュネットワークの運用管理方法。
【0164】
(付記10)前記第3処理は、
前記リンク毎の前記メッセージの受信状態として、前記リンク毎の電波強度を取得し、前記メッセージ数に前記電波強度に基づく補正係数を掛けた値を用い、前記トポロジを算出する、
ことを特徴とする付記1,4~9のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【0165】
(付記11)前記第3処理は、
前記リンク毎の前記メッセージの受信状態として、送信元の前記ノードから前記親ノードまでのホップ数を取得し、前記メッセージ数に前記ホップ数に基づく補正係数を掛けた値を用い、前記トポロジを算出する、
ことを特徴とする付記1,4~9のいずれか一つに記載の無線メッシュネットワークの運用管理方法。
【0166】
(付記12)送信元のノードが他のノードのリンクを介して経路情報を含むメッセージを親ノードにマルチホップで転送する無線メッシュネットワークのトポロジを算出する運用管理装置において、
前記親ノードが受信する複数の前記メッセージを一定の評価期間の間、取得し、
前記経路情報に基づき、前記無線メッシュネットワークを前記リンク毎に分解し、
複数の前記メッセージの経路情報に含まれる前記リンク毎の前記メッセージの受信状態に基づき、前記親ノードを起点として送信元のノードまでの経路を探索し、トポロジを算出する制御部、
を備えたことを特徴とする無線メッシュネットワークの運用管理装置。
【0167】
(付記13)前記制御部は、
前記算出した前記トポロジに対応し、前記親ノードに接続される複数の前記ノードの情報を前記各ノード間のメッセージ数として一覧化した構造ノード行列を作成する、
ことを特徴とする付記12に記載の無線メッシュネットワークの運用管理装置。
【0168】
(付記14)前記制御部は、
前記構造ノード行列に基づき、前記親ノードに対する複数の前記ノードの接続状態のツリー構造を生成する、
ことを特徴とする付記13に記載の無線メッシュネットワークの運用管理装置。
【0169】
(付記15)前記制御部は、
前記構造ノード行列に含まれなかったノードを一覧化した剰余ノード行列を作成する、
ことを特徴とする付記13または14に記載の無線メッシュネットワークの運用管理装置。
【0170】
(付記16)前記制御部は、
前記親ノードから前記メッセージを受信するサーバに備えたことを特徴とする付記12~15のいずれか一つに記載の無線メッシュネットワークの運用管理装置。
【0171】
(付記17)前記制御部は、
前記親ノードに備えたことを特徴とする付記12~15のいずれか一つに記載の無線メッシュネットワークの運用管理装置。
【0172】
(付記18)前記制御部は、
算出した前記トポロジを含む情報を外部の表示装置に表示出力することを特徴とする付記12~17のいずれか一つに記載の無線メッシュネットワークの運用管理装置。
【符号の説明】
【0173】
100 無線メッシュネットワーク
101A 親ノード
101 ノード(子ノード)
110 無線センサ
120 ゲートウェイ
130 運用管理装置
301,401 CPU
302,402 メモリ
303 ネットワークI/F
305 記録媒体
310 ネットワーク
403 通信I/F
404 センサ
501 経路情報受信部
502 リンクトラヒック分解部
503 トポロジ計算部
504 トポロジ生成部
600 経路ヒストグラム
610,1110 隣接ノード行列
620 構造ノード行列
630 剰余ノード行列