説明

アドホックネットワークにおける時刻同期方法および装置

【課題】複数のノードから構成されるアドホックネットワークにおいて、新規ノードが早期に既存のネットワークに属するノードと時刻同期を取る方法及び装置を提供する。
【解決手段】複数のノードから構成されるアドホックネットワークにおいて新規ノードが起動されると、その新規ノードは、時刻同期要求フレームを受信して(S106)、時刻同期応答フレームを送信する機能を有する複数のノードの一つに、そのノードの一つのアドレスを含む時刻同期要求フレームを送信し(S108)、時刻同期要求フレームを受信した複数のノードの一つから時刻同期情報を含む時刻同期応答フレームを受信すると(S118)、その時刻同期応答フレームに含まれている時刻同期情報を使用して複数のノードの一つと時刻同期を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アドホックネットワークにおける時刻同期方法およびそれを用いるネットワーク装置に関し、特にプロアクティブ型ルーティングプロトコルを用いたアドホックネットワークにおける時刻同期方法およびそれを用いるネットワーク装置に関する。
【背景技術】
【0002】
アドホックネットワークシステムでは、アドホックネットワーク通信端末(ノード装置、または単にノードとも呼ばれる)同士が自律的にネットワーク接続し、相互の通信を可能としている。「自律的に」という言葉は、使用者によって随時通信経路を設定したり、サーバやルータの通信管理を行う専用の通信端末やインフラを必要としない、ということを意味する。
【0003】
アドホックネットワークのルーティングプロトコル(アドホックプロトコル)には、IETFのMANET WGで検討されているリアクティブ型のAODV(Adhoc On Demand Distance Vector Algorithm)やプロアクティブ型のOLSR(Optimized Link State Routing)が知られている。
【0004】
また、通信要求に先立って、予め各ノードが自律的にデータ通信を行うための経路(ルート)を構築し、更に、最適な経路を随時学習し、経路変更するプロアクティブ型ルーティングプロトコルも知られている(特許文献1)。このようなアドホックネットワークでは、各ノードは、自分自身がどのように他のノードと接続されているかを知るために、隣接するノードとの間で、たとえばHelloメッセージのような、経路情報やノード間のリンクの通信品質情報といったノード情報を含むメッセージの送受信を定期的に行う。このようなメッセージの送受信を通じて、最適な経路を随時学習し、経路変更をすることができる。
【0005】
メッシュ型のアドホックネットワークの一例では、ネットワークサーバにつながるノード(たとえばゲートウェイ(GW))は起動後にネットワークサーバから時刻を取得し、そのノードの配下にある複数のノードに対して、時刻同期フレームをブロードキャスト送信することで時刻通知を行う。ノードはその時刻通知を受信すると、自装置のシステム時刻として設定するとともに、その時刻を元に暗号化/復号化を行うための共通鍵を生成する。よって、システム時刻が設定されていないノードは、他のノードから暗号化されたデータを受け取っても、復号化のための共通鍵を生成できない。上記のようなアドホックネットワークにおいては、各ノード間のデータの送受信では時刻情報を元に生成される暗号鍵が必要になるため、各ノードは時刻同期されたことを契機にデータの送受信を実施し、ネットワークの構築が可能となる。
【0006】
時刻同期が完了したメッシュ型アドホックネットワークにおいて、新規ノードが既存のネットワークに属するノードと時刻同期を取るために必要とされる時刻同期フレームの送信周期がたとえば1日に1回であることがある。この場合、新規にネットワークに参加しようとするノードは周囲のノードが周期的に送信する1日に1回の時刻同期フレームを受信するまでネットワークに参加する事が出来ず、起動しても最長1日ほど待たなければならない。一般に時刻同期フレームの送信周期は、Helloメッセージのような経路情報やノード間のリンクの通信品質情報といったノード情報を含むメッセージの送信周期より大きいことが多い。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開WO2011/013165パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0008】
時刻同期を行わないと互いにデータの遣り取りが不可能であるアドホックネットワークの場合、時刻同期を目的とし時刻同期情報を含むフレーム、たとえば時刻同期フレームを受信しないと新規ノードが既存のネットワークに属するノードと時刻同期が取れないという問題があった。よって、新規ノードが既存のネットワークに属するノードと時刻同期をとるために、最大で時刻同期フレームの送信周期の時間を要するという問題があった。
【0009】
また、アドホックネットワークにおいて、時刻同期を行わないと互いにデータの遣り取りが不可能である場合、時刻同期を目的とし時刻同期情報を含むフレームを受信しないと新たなノードがネットワークへの参加が不可能であるという問題があった。
【課題を解決するための手段】
【0010】
本発明に従う複数のノードから構成されるアドホックネットワークと時刻同期を取る装置は、前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期応答フレームを送信する機能を有する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む前記時刻同期要求フレームを送信する時刻同期要求フレーム送信手段と、前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む前記時刻同期応答フレームを受信する時刻同期応答フレーム受信手段と、前記時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段、を含むことを特徴とする。
【発明の効果】
【0011】
新規ノード装置起動後に、新規ノードから時刻同期済みのネットワークに属するノードへの時刻同期要求フレームを送信し、これに対応して時刻同期済みのネットワークに属するノードから新規ノードに送信される時刻同期応答フレームを使って新規ノードの時刻同期が可能になるため、新規ノード装置が既存のネットワークに参加するまでの時間が短くなり、ネットワークの再構築時間を早くすることが可能である。
【図面の簡単な説明】
【0012】
【図1】メッシュ状のアドホックネットワークの構成例を示す図である。
【図2】Helloメッセージの伝搬により経路を構築する例(その1)を示す図である。
【図3】Helloメッセージの伝搬により経路を構築する例(その2)を示す図である。
【図4】Helloメッセージの伝搬により経路を構築する例(その3)を示す図である。
【図5】時刻初期値によってネットワークの構築が不可になる例を示す図である。
【図6】本発明の実施形態に係るノード装置の時刻同期要求処理を示すフローチャートである。
【図7】本発明の実施形態に係るノード装置のHello受信処理を示すフローチャートである。
【図8】Helloメッセージのフレームフォーマットの例である。
【図9】本発明の実施形態に係るノード装置の時刻同期要求フレーム送信処理を示すフローチャートである。
【図10】時刻同期要求フレームのフォーマットの例である。
【図11】本発明の実施形態に係るノード装置の時刻同期応答待ち時間タイムアウト処理を示すフローチャートである。
【図12】既存のネットワークに属するノードの処理を示すフローチャートである。
【図13】本発明の実施形態に係るノード装置の時刻同期応答フレーム送信処理を示すフローチャートである。
【図14】本発明の実施形態に係るノード装置の時刻同期応答フレーム受信処理を示すフローチャートである。
【図15】時刻同期フレーム/時刻同期応答フレームのフォーマットの例である。
【図16】本発明の実施形態に係るノード装置のHello監視タイマ処理を示すフローチャートである。
【図17】本発明の実施形態に係るノード装置のブロック図である。
【図18】実施例1の処理の流れを示すタイミング図である。
【図19】実施例2の処理の流れを示すタイミング図である。
【図20】実施例3の処理の流れを示すタイミング図である。
【図21】実施例4の処理の流れを示すタイミング図である。
【図22】実施例5の処理の流れを示すタイミング図である。
【発明を実施するための形態】
【0013】
以下ではまず、図1〜5を参照して、メッシュ型アドホックネットワークを構成する処理の例について説明する。この例では、Helloメッセージの遣り取りによって、通信経路が構築される。ネットワークを構成する各ノードは、互いに時刻同期フレームを遣り取りすることによって時刻同期を取る。時刻は暗号化されたデータの復号に用いられる。逆に、図1に示されるネットワークでは、時刻が同期されていないと互いにデータの遣り取りができない。
【0014】
その次に図6〜16を参照しながら、本発明に従う時刻同期方法を説明する。本方法は、時刻同期を行わないと互いにデータの遣り取りが不可能であるネットワークにおいて、新規ノードの既存のネットワークへの参加方法を提供する。本発明に従う時刻同期方法では、ネットワークと時刻同期が取れていないノードは、時刻同期を取るための情報(時刻同期情報)を含む時刻同期フレームを受信する前に、時刻同期されているネットワークに属するノードに対して、時刻同期要求フレームを送信する。そして、その時刻同期要求フレームへの返事として時刻同期フレームと同じフォーマットの時刻同期応答フレームを受信する。そして、その内容を用いて、時刻同期要求フレームを送信したノードは、既存のネットワークと時刻同期をとることができる。図17は、本発明の時刻同期方法を用いるノード装置のブロック図である。
【0015】
さらに、図18〜22を参照しながら、実施例1〜5を説明する。
(メッシュ型アドホックネットワークの構成)
図1は、メッシュ型アドホックネットワークの一例を示す図である。図1のネットワーク10は以下の実施形態を適用することが可能である。ネットワーク10はネットワークサーバ12、およびネットワークサーバ12につながるネットワーク14、さらにネットワーク14につながるゲートウェイGWを含んでいる。ゲートウェイGWはアドホックネットワークのノード装置でもある。さらにネットワーク10は複数のノード装置a、b、c、d、e、Yを含んでいる。ノード装置は単にノードと呼ぶこともある。
【0016】
複数のノード装置は図1中では矢印で示されているリンクによって互いに接続されている。具体的には、GWはノードa、ノードb、およびノードcと接続されている。ノードaはGWの他に、ノードbおよびノードdと接続されている。ノードbは、GWとノードaの他に、ノードc、ノードd、ノードeおよびノードYに接続されている。ノードcは、GWとノードbの他に、ノードeと接続されている。ノードdは、ノードaとノードbの他に、ノードYと接続されている。ノードeは、ノードbとノードcの他に、ノードYと接続されている。ノードYは、ノードb、ノードdおよびノードeと接続されている。各ノードの例としては、センサが挙げられる。このとき、アドホックネットワーク10は、センサネットワークとも呼ばれる。リンクによるノードの接続は有線であっても無線であっても良い。
【0017】
各ノードは、それぞれ固有の識別情報(Identification、ID)を保有する。ノードIDは、MACアドレスでも良い。各ノード装置は、互いに隣接しているノード情報やネットワーク全体についての情報を必ずしも把握していない。そこで、各ノードは、自分自身がどのように他のノードと接続されているかを知るために、隣接するノードとの間で、たとえばHelloメッセージのような、経路情報やノード間のリンクの通信品質情報といったノード情報を含むメッセージの送受信を定期的に行う。Helloメッセージは、たとえば数秒間隔で各ノードから送信される。そのようなメッセージの遣り取りから、各経路の通信品質を計算し、その結果をもって最終宛先までの複数の経路の構築及び最適な経路の決定を行う。つまり、Helloメッセージには、メッセージを送信するノードと隣接するノード間の経路情報およびノード間リンクの通信品質情報等のノード情報が含まれている。たとえば、GWからノードYまで何らかのメッセージを送信するとき、ノードa、dを経由する経路を{GW、a、d、Y}と書くことがある。
【0018】
図1に示されているネットワーク10において、GWからノードYまでの経路をHelloメッセージの伝搬によって構築する方法を図2〜4を参照しながら説明する。
図2に示されているように、GWは自身のHelloメッセージ送信タイミングになると、Helloメッセージをブロードキャスト送信する。ブロードキャスト送信では、そのノードに接続されているノード全てに一律に送信される。よって、GWから送信されたHelloメッセージはノードa、ノードb、およびノードcにおいて受信される。
【0019】
GWからHelloメッセージを受信したノードa、ノードb、およびノードcは、内部に管理、保持する経路情報テーブル(ルーティングテーブルとも呼ばれる)にGWを登録する。また、GWからのHelloメッセージに含まれているノード情報、つまりGWが保有しているノード情報を使用して経路品質やノード間リンクの通信品質を計算し、結果を自身の経路情報テーブルやリンク情報テーブル(リンクテーブルとも呼ばれる)に登録する。尚、ノードa、ノードb、およびノードcはGWから受信したHelloメッセージの再ブロードキャスト送信(フラッディング)は行わない。経路情報テーブルやリンク情報テーブルは、自分自身がどのように他のノードと接続されているかの情報を与える。
【0020】
次に、たとえばノードbの場合(図3)、自身のHelloメッセージ送信タイミングになると、自身が保持するノード情報を含むHelloメッセージをブロードキャスト送信する。ノードbのHelloメッセージにはGWのノード情報が含まれる。ノードYはノードbからのHelloメッセージを受信して、ノードbを経路情報テーブルに登録する。ノードbからのHelloメッセージには、ノードbがGWに接続されていること、およびノードbとGW間の経路品質/リンク品質が含まれているので、結局、ノードYは、ノードb経由でのノードYとGW間の経路品質/リンク品質を経路情報テーブル/リンク情報テーブルに登録することができる。
【0021】
さらに、ノードbと同様に、ノードd、eもそれぞれのHelloメッセージの送信タイミングでHelloメッセージをブロードキャスト送信する。ノードYではGW宛ての経路としてそれぞれノードb、d、eを経由する複数の経路が構築される。これら複数の経路の優先順位は、各経路での経路品質/リンク品質情報により決定される。
【0022】
このように、各ノードがHelloメッセージを交換することによりノード間で経路情報と品質情報が伝搬され、各ノードでは最終宛先までの経路が複数構築される。
また、Helloメッセージをノード間でやり取りするには、時刻情報を元に生成される暗号鍵が必要である。よって、ネットワークに属するノードの間で時刻同期が取れていないと、Helloメッセージの遣り取りはできない。時刻同期を取るためには時刻同期情報を含む時刻同期フレームを受信しても良い。時刻同期フレームはたとえば、1日に1回などの頻度でたとえばGWからブロードキャスト送信される。受信したノードの時刻情報が初期値であれば、再ブロードキャストする。さもなければ、再ブロードキャストせず、個々のノードがランダムに設定された周期で時刻同期フレームを送信する。一般に、時刻同期フレームの送信周期は、Helloメッセージの送信周期より長い。
【0023】
各ノードは、構築した経路に関して、実際のデータ通信の実績と隣接ノードと遣り取りされるHelloメッセージを基に、各経路の通信品質を再計算(更新)し、その結果を基に経路の維持や最適経路の学習をし、随時変更を行う。
【0024】
上述のように、アドホックネットワークにおいては、通常、経路が複数あるため、仮にある経路が途中に存在するノードの異常等により最終宛先までの経路が不通になった場合でも別の経路に切り替えて送信することで、最終宛先までデータを届けることが可能である。このような経路の切り替えは、Helloメッセージに含まれる情報に基づいて行われる。
【0025】
先に述べたように、Helloメッセージはたとえば数秒間隔などで各ノードから送信される。よって、最適経路も数秒間隔で更新され、実際の運用上はタイムラグなしに、ネットワークは常に適切な経路を保持することができる。
【0026】
例えば、図4で、最適な経路としてルート(1){Y、b、GW}があったときに、ノードbで異常が発生し転送不可となった場合であってもルート(2){Y、d、a、GW}やルート(3){Y、e、c、GW}の経路に切り替えて送信することで最終宛先であるGWまでデータを届けることが出来る。
【0027】
更に、各ノード間では定期的にHelloメッセージを交換し、自身が持つ経路情報やノード間リンク品質情報を交換・伝搬することにより、各ノードではノード間リンクの通信品質の再計算(更新)を行い、通信経路の維持や最適経路の学習をし、随時経路情報の変更を行うことができる。
【0028】
このようなネットワークに新たにノード(新規ノード)が参加をしようとすることを考える。上記Helloメッセージをやり取りするには、時刻情報を元に生成される暗号鍵が必要となる。そのため、時刻同期されていないノードはHelloメッセージのやり取りができず、ネットワークへの参加ができない。
【0029】
図5に時刻として初期値(時刻初期値)を持つノードYが時刻同期済みのノード群とは暗号鍵が異なるために受信したデータを復号できずネットワーク構築不可となる例を示す。図5では、GW、ノードa、b、c、d、eは、時刻情報として現在値を共有している。よって、暗号鍵はxxxxであり、各ノードは受信したデータを復号することができる。しかし、ノードYは、時刻情報として初期値を有し、xxxxとは異なる暗号鍵yyyyを生成する。よって、ノードYは、ノードb、d、eからのデータを復号できない。
【0030】
新規ノードが、時刻同期が取れているネットワークに参加する方法の一つは、時刻同期フレームを受信することである。時刻同期フレームのフォーマットの例が図15に示されている。時刻同期フレームは、アドホックヘッダ、時刻、署名のほか、時刻同期情報を含んでいる。時刻同期情報は、HOP数(1バイト)、NTP完了時間(8バイト)、時刻同期フレーム送信時刻(8バイト)、装置起動経過時間(4バイト)を含んでいる。HOP数は、たとえば、GWから、時刻同期フレームを送信しようとしているノードまでのホップ数に関する情報である。NTP完了時間は、GWとネットワークサーバ(NTPサーバ)間でNTPの処理が完了した時刻である。時刻同期フレーム送信時刻は、このノードから時刻同期フレームが送信される時刻である。時刻同期情報には時刻同期フレーム送信時刻が含まれているので、ネットワークの時刻を知ることができる。よって、時刻同期フレームを受信したノードは、ネットワークに属するノードが共有している時刻を知ることが出来、時刻同期をとることができる。時刻同期フレームはGWからの時刻同期フレームを受信して時刻同期した各ノードが自律で送信周期毎に送信する。
【0031】
また、GW、ノードa、b、c、d、eから構成される時刻同期が完了したアドホックネットワークにおいて、仮に既存ネットワークに参加しているノードが一台しか隣接しておらず、時刻同期フレームの送信周期が1日に1回だった場合、新規に追加されたノードは周囲のノードが周期的に送信する1日に1回の時刻同期フレームを受信するまでネットワークに参加する事が出来ず、起動しても最長1日ほど待つ可能性もあり、結果、ネットワークへの参加に時間が掛かることがある。
【0032】
そこで、以下で説明するように、本発明に従う時刻同期方法を用いることによって、既存のネットワークと時刻同期されていない新規のノード(新規ノード)は、既存のネットワークと時刻同期を取ることができる。また、新規ノードは既存のネットワークに早期に参加することができる。
【0033】
(時刻同期方法の全体の流れ)
図6〜16を参照して、本発明に従う時刻同期方法について説明する。本発明に従う時刻同期方法では、ネットワークと時刻同期が取れていないノードは、時刻同期を取るための情報(時刻同期情報)を含む時刻同期フレームを受信する前に、時刻同期されているネットワークに属するノードに対して、時刻同期要求フレームを送信する。そして、その時刻同期要求フレームへの返事として時刻同期フレームと同じフォーマットの時刻同期応答フレームを受信する。
【0034】
<時刻同期要求処理>
まず、新規ノードが既に時刻同期がなされているネットワークに属するノードに対して、時刻同期要求フレームを送信する処理を説明する。以下では、新規ノード装置が起動された後の処理を説明する。ここで新規ノードは、既存のネットワークに接続されており、既存のネットワークに属するノードからHelloメッセージおよび時刻同期フレームの受信が可能である。上述のように、ネットワークと時刻の同期が取れていないノードでは、たとえばHelloメッセージに含まれるデータは復号できず、読むことは出来ない。Helloメッセージはアドホックヘッダを含み、アドホックヘッダにはローカル差出アドレスが含まれている。しかも、アドホックヘッダは暗号化されずに送信される。よって、Helloメッセージを監視する新規ノードは、受信したHelloメッセージヘッダから、そのHelloメッセージを送信したノードのアドレスを知ることができる。そして、このアドレスの情報を基に、時刻同期要求フレームをそのHelloメッセージを送信したノードに送信することができる。時刻同期フレームは時刻同期を取るための情報、即ち時刻同期情報を含んでいる。時刻同期フレームを受信したノードは、この時刻同期情報に基づいて、自分のノードの時刻を設定することができる。
【0035】
図6は本発明の実施形態に係るノード装置の時刻同期要求処理を示すフローチャートである。図6の処理は、新規ノードで行われる。
新規ノード装置が起動されると、新規ノード装置では、既存のネットワーク装置との時刻同期処理が始まる。この時刻同期処理の開始と同時に、図16に示されているHello監視タイマ処理も開始する。また、クロックまたはタイマによって時刻のカウントも始める。時刻のカウントを始めてからの経過時間はHello監視経過時間とも呼ばれる。
【0036】
また、あるノードから定期的に送信されるHelloメッセージを監視するか否かを示すHello監視Flgおよび図9の時刻同期要求フレーム送信処理を行うか否かを示す時刻同期要求Flgを“0”にリセットする。
【0037】
既存のネットワーク装置と時刻同期されていない新規ノードは、装置起動後、あるノードが定期的に送信するHelloメッセージの監視を開始する。もしあるノードからHelloメッセージを受信したら、新規ノードでは、そのノードから定期的に送信されるHelloメッセージを監視するか否かを示すHello監視Flgを“1”とする。すなわち、新規ノードは、あるノードIDに対して付与されるHello監視Flgが“1”である間、そのノードが定期的に送信するHelloメッセージを監視するように構成されている。ノードIDの一例はMACアドレスである。あるノードから定期的にHelloメッセージを受信できない場合は、所定の条件でそのノードから送信されるHelloメッセージの監視を中止して、別のノードからのHelloメッセージの監視に移っても良い。所定の条件の一例としては、Helloメッセージの信号強度が所定の値より小さいことや、所定の時間内に所定の回数だけHelloメッセージを受信できないことが含まれる。
【0038】
本実施形態では、まず、受信したHelloメッセージの送信元を監視対象とし、Helloメッセージ監視対象のノードから受信したHelloメッセージの受信回数をチェックする。Helloメッセージの監視対象のノードからのHelloメッセージの受信回数が所定の値以上となった場合、時刻同期要求待ち時間の経過後に時刻同期要求フレームを監視対象のノードに対して送信する。時刻同期要求待ち時間は、予め決められた時間であり、たとえば、30秒、45秒、60秒等を例示することができる。また、Helloメッセージの監視対象のノードからのHelloメッセージの受信回数は連続して受信できた回数であっても良い。また、ある時間内に監視対象のノードから連続して所定の回数以上Helloメッセージを受信できたときにはじめて、時刻同期要求フレームを監視対象のノードに対して送信しても良い。
【0039】
時刻同期要求フレームを受信した既存のネットワークに属するノードは、時刻情報を含む時刻同期応答フレームを生成し、時刻同期要求フレームの送信元(ブロードキャスト送信でも良い)に対して即座に送信する。時刻同期要求フレームはブロードキャスト送信されたものでも良い。時刻同期応答フレームを受信した時刻同期されていないノードは、時刻同期応答フレームに設定されている時刻情報を元に時刻同期を行い、既存のネットワークへの参加を行う。この時刻同期応答フレームのフォーマットは、時刻同期フレームと同一でも良い。本実施形態では、図15に示すように、両者は同一のフォーマットを有する。
【0040】
図6のS100では、新規ノードの時刻が初期値であるかどうかが判定される。S100の判定は、新規ノードの装置起動時に行われる。この判定でYesであればS102に進み、NoであればS120に進む。
【0041】
S102では、Hello監視の開始時刻を越えたかどうかを判定する。Hello監視の開始時刻は、新規ノードが起動された時刻から予め設定された時間だけ経過した時刻である。一般に、ノード装置はスイッチを入れてから定常動作に移るまでにタイムラグある。よって、Hello監視の開始時刻を越えるまで、S102の処理を繰り返すことが好ましい。Hello監視の開始時刻を越えたら、S104に進む。
【0042】
S104では、時刻同期処理が未実施であるかどうかを判定する。既に時刻同期処理がなされている場合は、S122に進む。そうでなければ、S106に進む。
S106では、Hello受信処理を行う。Hello受信処理の詳細は、図7に示されている。
【0043】
尚、図6の処理ではHelloを受信したか否かの判定は含まれていないが、先に述べたように、新規ノードはHelloメッセージを受信可能な状態にある。Helloメッセージに含まれるデータの復号は出来ないが、アドホックヘッダに含まれるローカル差出アドレスは暗号化されずに送信されるので読むことができる。
【0044】
図7を参照しながら、Hello受信処理を説明する。Hello受信処理の開始とともに、同一のノードからHelloメッセージを連続して何回受信するかを表すHello連続受信回数をリセットする。
【0045】
図8はHelloメッセージのフレームフォーマットの例を示す図である。
Helloメッセージは、アドホックヘッダ、時刻、Helloメッセージヘッダ、Helloヘッダを含んでいる。
【0046】
アドホックヘッダの一例では、図示されていないが、ローカル宛先アドレス、ローカル差出アドレス、フレームタイプ、フレームサイズ等を含む。ローカル宛先アドレスは、あるノードを主体としたとき、次にフレームを渡すべき隣接ノードを表す宛先ノード装置のIDである。ローカル差出アドレスは、ローカル宛先アドレスへフレームを送信するその直接の送信元となるノード装置のIDである。フレームとは、プロトコルが扱うデータ単位のことで、タイプとしては、ハローフレーム、データフレーム、ACKフレーム等が含まれる。ハローフレームは、ノードを構成しているまたは構成しようとしている装置が互いの存在、状態の確認のために送出するフレームである。データフレームは、ネットワークがスタートノードから宛先となるゴールノードまで伝送しようとするデータである。フレームタイプとはフレームのタイプのことである。フレームサイズは、フレームの大きさである。
【0047】
アドホックヘッダには、ローカル差出アドレスが含まれている。先に述べたように、アドホックヘッダは暗号化されずに送信されるので、Helloメッセージヘッダを監視する新規ノードは、Helloメッセージヘッダの送信元のノードのアドレスを知ることができる。このアドレスの情報を基に、時刻同期要求フレームを送信することができる。
【0048】
Helloメッセージヘッダの一例では、サービスタイプ(1バイト)、フレームページ(1バイト)、Helloヘッダの個数(1バイト)、バイアス(1バイト)、装置起動経過時間(4バイト)、アクセスキー(16バイト)が含まれている。
【0049】
通常は暗号化されて送信されるHelloヘッダの一例では、グローバル宛先アドレス、ノードタイプ/ホップ数、死活情報/GWバス情報、経路品質重みd、復路リンク重みが含まれている。グローバル宛先アドレスとは、データフレームの最終的な宛先となるノードIDである。ノードタイプ/ホップ数には、GWであるかどうか、およびGWでなければGWからのホップ数は幾つかなどの情報が含まれる。死活情報/GWバス情報には、ノードの稼動状況、GWであればバス情報が含まれる。経路品質重みdは、グローバル宛先アドレスまでの経路上での通信品質を数値化したものである。復路リンク重みは、復路で通信されるフレームに関する重みである。本実施形態ではHelloヘッダには、経路に付与される重みとして、経路品質重みおよび復路リンク重みが含まれているが、重みとしては必ずしもこれらに限定されない。往路リンク重み、双方向リンク重みなどでも良い。
【0050】
図7のS200では、現在監視中のノードから受信したHelloメッセージの受信信号強度(Recieved Signal Strength Intensity、RSSI)が所定のしきい値、RSSI閾値以上であるかを判定する。同時に、Helloメッセージの送信元のノードID、たとえばMACアドレスが、時刻同期要求済みMACアドレスのリストにないこと、および時刻同期要求Flgが“0”であることを確認する。Helloメッセージの送信元の装置のMACアドレスが、時刻同期要求済みMACアドレスのリストになく、且つ時刻同期要求Flgが“0”であり、さらに受信したHelloメッセージのRSSI値がRSSI閾値以上の場合、そのHelloメッセージを送信したノードを監視対象とする。Hello連続受信回数を“0”にセット(リセット)してS202に進む。S200の判定でNoであったらHello受信処理を終了する。
【0051】
S202では、Hello監視フラグが立っているか、即ち“Hello監視Flg=1”であるかどうかを判定する。この判定の結果がYesであればS204に進み、そうでなければS208に進む。
【0052】
S204では、監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと同じかどうかを判定する。Helloメッセージの送信元のMACアドレスは、アドホックヘッダのローカル差出アドレスである。この判定の結果がYes、すなわち、監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと同一であれば、S206に進んでHello監視タイマをリセットし、S214に進む。
【0053】
S204の判定で結果がNo、すなわち、監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと異なる場合には、Hello受信処理を終了する。
【0054】
S202の判定でHello監視フラグが立っていない、すなわち“Hello監視Flg=0”の場合には、現在監視中のノードから送信されたHelloメッセージではない。よってS208に進み、S208で監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと同じかどうかを判定する。
【0055】
S208の判定でYes、すなわち監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと同じである場合は、Hello受信処理を終了する。
【0056】
S208の判定でNo、すなわち監視中のHelloメッセージの送信元のMACアドレスが今回受信したHelloメッセージの送信元のMACアドレスと同じでない場合には、S210に進む。
【0057】
S210では、Helloメッセージの送信元のノードID、たとえばMACアドレスを保持し、“Hello監視Flg=1”とし、Hello連続受信回数をリセットする。そして、S212に進んで、Hello監視タイマをリセットし、S214に進む。この処理によって、Helloメッセージを監視するノードを変更することが可能である。
【0058】
S214では、Hello連続受信回数を1つインクリメントして、S216に進む。
S216では、Hello連続受信回数が所定の閾値、すなわちHello連続閾値以上であるかどうかを判定する。Hello連続閾値は予め設定された値である。この判定でNoの場合は、Hello受信処理を終了する。また、S216の判定でYesであれば、S218に進む。
【0059】
S218では、Hello監視Flgを“0”とすると同時に、時刻同期要求をするか否かを示す時刻同期要求Flgを“1”とする。そして、処理はS220に進む。
S220では、時刻同期要求フレーム送信処理を行う。
【0060】
時刻同期要求フレーム送信処理の詳細は、図9に示されている。
時刻同期要求フレーム送信処理が開始されると、タイマのカウントが開始される。
そして、S300では送信待ち時間を生成する。送信待ち時間経過後に時刻同期要求フレームが送信される。送信待ち時間は、近隣ノードからの同時送信による輻輳を避けるため、所定の範囲内でランダムであることが好ましい。所定の範囲の例としては、30秒、60秒、90秒などを挙げることができる。
【0061】
S302では、時刻同期要求フレーム送信処理が開始されてからの経過時間が送信待ち時間を超過したか否かを判定する。経過時間が送信待ち時間を超えていない場合は、超えるまでS302の処理を繰り返す。経過時間が送信待ち時間を超えると、S304に進む。
【0062】
S304では、時刻同期処理が実施されていないかどうかを判定する。この判定でNo、すなわち、時刻同期処理が実施済みであれば、時刻同期要求Flgを“0”として、時刻同期要求フレーム送信処理を終了する。
【0063】
S304の判定で結果がYesであれば、Helloメッセージの送信元のノードは、時刻同期処理がなされていないので、S306に進んで、時刻同期要求フレームを送信して、時刻同期フレーム送信処理を終了する。また、時刻同期要求フレームの送信と同時に、経過時間のカウントを開始する。この経過時間は時刻同期応答待ち時間と呼ばれる。また、時刻同期要求フレームの再送回数をリセットする。
【0064】
S306で送信される時刻同期要求フレームのフォーマットの例が図10に示されている。時刻同期要求フレームの例では、アドホックヘッダに加えて、時刻同期情報が含まれている。時刻同期情報には、時刻同期要求先アドレス(6バイト)が含まれている。この時刻同期要求先アドレスは、Helloメッセージを監視することによって得ることができる。
【0065】
図7のS220では、時刻同期要求フレーム送信処理が終了すると、図6のS106のHello受信処理が終了する。そして、処理は図6のS108に進む。
S108では、時刻同期要求Flgが“1”であるかどうかを判定する。時刻同期要求Flgは図6のS106のHello受信処理の中、すなわち図7の中のS216で“1”とした後、時刻同期要求フレーム送信処理を行う。よって、時刻同期要求フレーム送信処理を始める段階で時刻同期要求Flgは“1”となっている。時刻同期要求Flgは図9のS308で設定しているので、S108では時刻同期要求Flg“1”でないことがある。その場合には、処理はS106に戻る。S108の判定で時刻同期要求Flgが“1”であれば、S110に進む。
【0066】
S110では、時刻同期応答待ち時間が所定の値を超えたかどうかを判定する。S110の判定でYes、すなわち時刻同期応答待ち時間が所定の値を超えてタイムアウトとなった場合は、S112に進み、時刻同期応答待ち時間タイムアウト処理を行う。また、S110の判定でNo、すなわち時刻同期応答待ち時間が所定の値を超えずに、時刻同期応答フレームを受信し、タイムアウトとならなかった場合は、S118に進む。
【0067】
S112では、時刻同期応答待ち時間タイムアウト処理を行う。この処理の詳細は図11に示されている。図11は、ノード装置の時刻同期応答待ち時間タイムアウト処理を示すフローチャートである。
【0068】
S400では、時刻同期要求フレームの再送回数を1つインクリメントする。S400に引き続くS402では、時刻同期要求フレームの再送回数が所定の値を超過したかどうかを判定する。もし、時刻同期要求フレームの再送回数が所定の値を超過してなければ、すなわち判定がNoであれば、S406に進む。S406では、時刻同期要求フレーム送信処理を行う。この時刻同期要求フレーム送信処理は図9に示されている。時刻同期要求フレーム送信処理を終了すると、時刻同期応答待ち時間タイムアウト処理は終了する。
【0069】
S402の判定でYes、すなわち時刻同期要求フレームの再送回数が所定の値を超過したならば、S404に進む。S404では、時刻同期要求フレームの再送回数をリセットし、時刻同期要求送信済みノードのMACアドレスを記憶し、時刻同期要求先台数をインクリメントする。
【0070】
S404の次のS408では、時刻同期要求Flgを“0”とし、時刻同期応答待ち時間タイムアウト処理は終了する。
このように新規ノードは、受信したHelloメッセージの送信先であるノードに図11のS406で時刻同期要求フレームを送信する。尚、時刻同期要求フレームは図9のS306でも送信しており、図11のS406は再送処理である。
【0071】
図6のS112の時刻同期応答待ち時間タイムアウト処理が終了すると、S114に進む。S114では、時刻同期要求Flgが“0”かどうかを判定する。時刻同期応答待ち時間タイムアウト処理の中(図11のS408)で、時刻同期要求Flgは“0”とした場合は、S114の判定はYesとなる。もし時刻同期応答待ち時間タイムアウト処理の中、すなわち図11のS402がNoの場合、S114の判定はNoとなり、S110に戻る。S114の判定がYesであれば、S116に進む。
【0072】
S116では、Helloメッセージの監視をしているノードの数が所定の値であるHello監視制限数を超過したかどうかを判定する。このHelloメッセージの監視をしているノードの数は、時刻同期要求先台数と一致する。S116の判定でNoであれば、S106に戻って、別のノードからのHelloメッセージを受信する。さもなければ、つまりHelloメッセージの監視をしているノードの数がHello監視制限数を超過していれば、時刻同期要求処理を終了する。
【0073】
S110の判定でNoである、すなわち、すなわち時刻同期応答待ち時間が所定の値を超えずに、時刻同期応答フレームを受信し、タイムアウトとならなかった場合、S118に進んで、時刻同期応答フレーム受信処理を行う。
【0074】
尚、図6の時刻同期要求処理と並行して図16のHello監視タイマ処理が行われている。この処理では、新規ノードが、監視対象となったノードからHelloメッセージを所定の時間内に一度も受信しない場合、監視対象からはずし、新たなHelloメッセージを受信するのを待つ。
【0075】
Hello監視タイマ処理では、まず図16のS700で、Hello監視Flgが“1”かどうかを判定する。Hello監視Flgは、図7のS208で設定される。この判定がYesであれば、S702に進む。逆に、Hello監視Flgが“1”でなく、たとえば“0”であれば、Hello監視中でないので、Hello監視タイマ処理を終了する。
【0076】
S702では、Hello監視経過時間をカウントする。S702の次のS704では、Hello監視経過時間がHelloメッセージの送信周期と所定のHello受信待ち回数の積の値以上であるかを判定する。Hello受信待ち回数は予め設定された値で、たとえば1でも良いし、5でも良い。また、整数でなくても良い。この判定がYesであれば、Hello監視は不要となるので、S706でHello監視Flgを“0”として処理を終了する。また、S704の判定でNoであれば、S700に戻る。
【0077】
このHello監視タイマ処理は、S700でHello監視Flgが“1”でなくなるか、S704でHello監視経過時間が所定の時間を超えるまで続けられる。S704で、Helloメッセージの送信周期と所定のHello受信待ち回数の積で与えられる時間内にHelloメッセージを受信しなければ、S706でHello監視Flgを“0”とする。Hello監視Flgが“0”であれば、新規ノードは、現在監視中のノードから送信されるHelloメッセージの監視をやめる。
【0078】
このように、Hello監視Flgが“1”である間は、Helloメッセージの監視を続けるが、Hello監視Flgが“0”になると、Helloメッセージの監視をやめる。
【0079】
また、Hello監視タイマは、図7のS206、S212でリセットされる。つまり、S206、S212の後のS214およびS216は、Hello監視タイマ処理が行われている間に実行されないと、S218でHello監視Flgを“0”とする前に、図17のS796でHello監視Flgが“0”となり、時刻同期要求処理は終了する。
【0080】
<時刻同期応答フレーム送信処理>
(図6のS106中の)図7のS220において新規ノードから送信された、時刻同期要求フレームを受信するノードの処理を、図12および13を参照しながら説明する。
【0081】
図12は、既存のネットワークに属するノードのフレーム受信処理に関する処理を示すフローチャートである。時刻同期要求フレームを受信したノードがGWの場合、GW自身が時刻同期済みならば時刻同期応答フレームを送信する。時刻同期が済んでいない場合、時刻同期応答フレームは送信できない。
【0082】
また時刻同期要求を受信したノードがGWではないノードであり、時刻同期要求フレームまたは時刻同期フレームを受信することにより時刻同期済みとなっている場合のみ、時刻同期応答フレームを送信する。
【0083】
S500では、受信したフレームが自宛てまたはブロードキャストのものであるかを判定する。自宛てまたはブロードキャストの場合には、時刻同期要求フレームである可能性がある。ブロードキャストであれば、たとえばHelloメッセージである可能性がある。S500での判定で自宛てまたはブロードキャストであれば、S502に進む。S500での判定がNo、すなわち自宛てまたはブロードキャストでなければ、S504に進む。S504では、受信したフレームを廃棄して、処理を終了する。
【0084】
S502では、受信したフレームの振り分けを行う。受信したフレームが時刻同期要求フレームでなければS506に進み、S506でデータ受信処理を行う。S502の判定で受信したフレームが時刻同期要求フレームであれば、S508に進む。
【0085】
S508では、時刻同期応答送信処理を行う。
この時刻同期応答処理の詳細を、図13を参照しながら説明する。図13は時刻同期応答フレーム送信処理の流れを示すフローチャートである。
【0086】
新規ノードから時刻同期要求フレームを受信したノードは、S600で時刻同期応答フレームを生成する。
時刻同期応答フレームは、アドホックヘッダ、時刻、署名のほか、時刻同期情報を含んでいる。時刻同期情報は、HOP数(1バイト)、NTP完了時間(8バイト)、時刻同期フレーム送信時刻(8バイト)、装置起動経過時間(4バイト)を含んでいる。HOP数は、たとえば、時刻同期要求フレームを送信した新規ノードから、時刻同期応答フレームを送信しようとしているノードまでのホップ数に関する情報である。NTP完了時間は、GWとネットワークサーバ(NTPサーバ)間でNTPの処理が完了した時刻である。時刻同期フレーム送信時刻は、このノードから時刻同期フレームが送信される時刻である。時刻同期応答フレームは時刻同期フレームと同一のフォーマットである。
【0087】
S600での時刻同期応答フレームの作成の処理が終了すると、S602に進む。S602では、S600で生成された時刻同期応答フレームが、時刻同期要求フレームを送信した新規ノード(ブロードキャスト送信でも可)に対して送信される。
【0088】
<時刻同期応答フレーム受信処理>
図6のS110の判定でNoである、すなわち、すなわち時刻同期応答待ち時間が所定の値を超えずに、時刻同期応答フレームを受信し、タイムアウトとならなかった場合、S118の時刻同期応答フレーム受信処理を行う。
【0089】
新規ノードは、既存のネットワークに属するノードに対して、時刻同期要求フレームを送信する(図7)。その時刻同期要求フレームを受信したノードは、即座に時刻同期応答フレームを新規ノードに送信する。次に、既存のネットワークに属するノードから時刻同期応答フレームを受信する新規ノードは図6のS118の時刻同期応答フレーム受信処理を行う。この処理を図14を参照しながら説明する。
【0090】
S800で、時刻同期応答フレームを受信する。本実施例では、時刻同期応答フレームのフォーマットは時刻同期フレームと同一である。時刻同期応答フレームは、図15を用いて説明したように、時刻同期情報を含んでいる。本実施例では、時刻同期応答フレームのフォーマットは時刻同期フレームと同一であるが、時刻同期情報を含んでいれば、必ずしもそうでなくても良い。
【0091】
S800に引き続くS802では、新規ノードは、時刻同期応答フレームに含まれる時刻同期情報を用いて、既存のネットワークに属するノードとの間で時刻の同期を行う。そのようにして、新規ノードは既存のネットワークに属するノードと時刻同期を取ることができる。
【0092】
S802の処理が終了すると、S804で時刻同期要求Flgを“0”とし、時刻同期応答フレーム受信処理を終了する。
この時刻同期応答フレーム受信処理が終了すると、図6の時刻同期要求処理も終了する。
【0093】
このように、本発明に従う方法では、Helloメッセージから既存のネットワークに属するノードのアドレスを取得し、そのノードに時刻同期フレームと同じフォーマットを有する時刻同期応答フレームを自分宛に送信することまたはブロードキャスト送信することを要求することによって、時刻同期フレームの受信を待たずに、ネットワークと早期に時刻同期を取ることができる。
【0094】
(ノードの構成)
上記のような処理を行うノードの構成を、図17を参照しながら説明する。
図17は、上のような時刻同期処理を行うためのノード装置の構成の例である。図17に示されているように、ノード装置1000はインターフェイス部1100および時刻同期処理部1200を含んでいる。インターフェイス部は受信部1110および送信部1120を含み、他のノード装置との通信を行うための処理を行う。ノード間の通信が無線の場合は、受信部1110および送信部1120はそれぞれ、受信機および送信機として構成されていても良い。ノード間のリンクが有線である場合には、受信部1110および送信部1120は、汎用コンピュータの入出力インターフェイスの処理部であっても良い。
【0095】
インターフェイス部1100は時刻同期処理部1200と接続されている。より詳細には、時刻同期処理部1200は、フレーム受信処理部1210、Hello制御部1230、時刻初期値判定部1220、時刻同期制御部1240、およびフレーム送信制御部1250を含む。
【0096】
インターフェイス部1100の受信部1110で受信した外部からの信号は、フレーム受信処理部1210によって、自宛てのものか、ブロードキャスト送信のものかの判断(図12のS500の処理)、自宛てのものである場合には、フレーム振り分け(図12のS502の処理)の処理が行われる。さらに受信処理部1210は、フレームが時刻同期要求フレームではなければデータ受信処理(図12のS506)を、フレームが時刻同期要求フレームであれば、時刻同期応答フレーム送信処理(図12のS508)を行う。
【0097】
また、受信処理部1210はHelloメッセージを受信したら、時刻初期値判定部1220に信号を送る。時刻初期値判定部1220では、図6のS100〜S104までの処理を行う。時刻初期値判定部1220は、Hello制御部1230に接続されている。Hello制御部1230では、図6のS106〜S110、およびS112〜S116の処理を行う。
【0098】
Hello制御部1230には、起動からHello監視の開始時刻までの時間、Hello連続閾値、Hello受信待ち回数、Hello監視Flg、Hello連続受信回数、Hello監視制限数等を予め記憶するメモリを含む。メモリは、Helloメッセージに含まれる情報、たとえば、アドホックヘッダに含まれるローカル差出アドレスなどのデータを一時的に記憶しても良い。また、Hello制御部1230は、Hello監視Flgを保持する揮発性メモリを含み、“Hello監視Flg=1”である間のみ、現在監視中のノードが定期的に送信するHelloメッセージを監視し、Hello監視Flgが“0”となったら、上記のような処理を終了する。また、Hello制御部1230では、Helloメッセージの送信元のノードID、たとえばMACアドレス、およびHello連続受信回数を記憶する揮発性メモリを備えている。
【0099】
Hello制御部1230につながる時刻同期制御部1240およびフレーム送信制御部1250では、時刻同期応答フレーム受信処理(図6のS118、図14)や時刻同期応答フレーム送信処理(図13)を行う。時刻同期制御部1240は、時刻同期要求Flgを記憶するメモリを含んでいる。さらに、“時刻同期要求Flg=0”の間は、時刻同期要求フレームを送信しないように構成されている。
【0100】
また、Hello制御部1230は、Helloメッセージを受信したら、経路情報テーブル(ルーティングテーブルとも呼ばれる)に受信したHelloメッセージの送信元を経路情報テーブルに登録する。また、受信したHelloメッセージに含まれているノード情報を使用して経路品質やノード間リンクの通信品質を計算し、結果を自身の経路情報テーブルやリンク情報テーブル(リンクテーブルとも呼ばれる)に登録する。Hello制御部1230は、これらの経路情報テーブルやリンク情報テーブルを記憶するメモリを備えている。そして、経路情報テーブルやリンク情報テーブルに登録された情報を含むHelloメッセージを送信するように送信部1120を制御する。
【0101】
また、時刻同期制御部1240では、時刻同期応答フレームを受信した際に、受信した時刻同期応答フレーム内の時刻情報に自装置の時刻を設定することで時刻同期する。時刻同期応答フレームを送信したノードとの間で時刻の同期を行う。フレーム送信制御部1250では、インターフェイス部1100の送信部1120を制御して、フレームの送信を行う。
【0102】
時刻同期制御部1240は、時刻同期要求フレームの再送回数等を記憶するメモリを含んでいる。
さらにノード装置1000は、受信したノードの時刻情報が初期値であれば、再ブロードキャスト送信し、そうでない場合は、再ブロードキャスト送信はせず、個々のノードがランダムに設定された周期で時刻同期フレームを送信する。時刻同期フレームと同じフォーマットを有する時刻同期応答フレームについても同様に、受信した時刻同期応答フレームを再ブロードキャスト送信しても良い。
【0103】
受信部1110、フレーム受信処理部1210およびHello制御部1230は、ノード装置1000が新規ノードの場合、ネットワークに属するノードから、そのノードの一つのアドレスを含むメッセージを受信するメッセージ受信手段を構成する。また、Hello制御部1230、フレーム送信制御部1250および送信部1120は、アドホックネットワークに属する複数のノードの一つに、そのノードのアドレスを含む時刻同期要求フレームを送信する時刻同期要求フレーム送信手段を構成する。時刻同期要求フレーム送信手段は、Helloメッセージを所定の時間内に連続して所定の回数以上受信したときに、時刻同期要求フレームを送信するように構成されていても良い。
【0104】
ノード装置1000が新規ノードの場合、受信部1110およびフレーム受信処理部1210は、時刻同期情報を含む時刻同期応答フレームを受信する時刻同期応答フレーム受信手段を構成する。さらに、時刻同期制御部1240は、時刻同期応答フレームに含まれている時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段を構成する。
【0105】
また、受信部1110、フレーム受信処理部1210およびHello制御部1230は、Helloメッセージの信号強度によって監視するノードを選択するノード選択手段を構成する。
【0106】
また図示されていないが、ノード装置1000は計時のためのクロックまたはタイマを含む。
本システムの全体の構成は上記のようなものであるが、ノード装置1000は通常のコンピュータ機能を有している必要がある。このようなハードウェアの条件の下で、ノード装置1000の個別の構成要素の処理は、ソフトウェアプログラムが汎用コンピュータにインストールされることで実行されても良いし、または専用ハードウェアによって実行されても良い。
【0107】
上述のような処理および装置により、新規ノード装置起動後に、新規ノードから時刻同期済みのネットワークに属するノードへの時刻同期要求フレームの送信、および時刻同期済みのネットワークに属するノードから新規ノードに送信される時刻同期応答フレームを使って新規ノードの時刻同期が可能になるため、新規ノード装置が既存のネットワークに参加するまでの時間が短くなり、ネットワークの再構築時間を早くすることが可能である。
【0108】
また、上述のような処理および装置により、新規ノードとして保守を行うために保守ノードを既存のネットワークに追加させる際、ネットワークに参加するまでの時間が短くなるため、保守をスムーズに行うことが可能である。
【0109】
さらに、上述のような処理および装置により、一斉電源から同時に立ち上がった複数のノードが時刻同期済みの既存ネットワークに参加する際、そのうちの1台が時刻同期要求フレームを送信することで、時刻同期要求フレームを受信した時刻同期済みのノードからブロードキャスト送信で時刻同期応答フレームが送信されることも可能となり、複数のノードが一度に時刻同期を実施でき、既存ネットワークへの参加が可能である。そのため、過剰な時刻同期要求フレームを送信することがなく、ネットワーク内でやり取りされるパケット量を削減することが可能である。
【0110】
上の時刻同期方法では、最初に新規ノードの時刻が初期時刻であるかどうかを判定した。しかしながら、この判定を省略することによって、新たに起動された装置ではない新規ノードが既存のネットワークに属するノードと時刻同期を取るための方法を提供することも可能である。
【0111】
(実施例1)
図18を参照して、本発明に従う時刻同期方法を用いて、新規ノードが既存のネットワークに参加する例を説明する。
【0112】
図18は、新規ノード(Node2)が既存のネットワークに属しているノード(Node1)と時刻同期を取ることによって、ネットワークに参加する際のシーケンスを示している。
【0113】
本例の初期において、新規ノード(Node2)は、ネットワークとの時刻同期は取れていない。また、本例ではNode2の内部時計が所有する時刻は時刻初期値である。たとえば、以前はネットワークに属していいたが、一旦、ネットワークから外れたような場合は、必ずしもNode2の内部時計は時刻初期値を有しない。起動後の時間T1はHelloメッセージの監視を始めるまでの時間である。この時間T1は調整することができる。図18の場合は、既存のネットワークに属しているNode1がHelloメッセージをブロードキャスト送信する送信周期の2倍強の時間である。また、Node2の内部時計の時刻が時刻初期値である場合は、即座にHelloメッセージの監視を開始する。
【0114】
本例では、Node1からのHelloメッセージをT2の時間の間に連続してN回(Nは正の整数)受信したら時刻同期要求フレームを出すと判断する。Nは1回でも良い。逆に、T2の時間の間に連続してN回受信できなかったら、Node1からのHelloメッセージの受信をあきらめ、別のノードからのHelloメッセージを監視する。
【0115】
Node1からのHelloメッセージをT2の時間の間に連続してN回(Nは正の整数)受信して、時刻同期要求フレームをNode1に出すと判断してから、T3の時間の経過後に、Node2はNode1に時刻同期要求フレームを送信する。このT3も調整可能である。一例として、T3は60秒であっても良い。
【0116】
時刻同期要求フレームを受信したNode1は即座に時刻同期応答フレームを時刻同期要求フレーム送信元であるNode2に送信する。時刻同期応答フレームを受信した時刻同期未実施のNode2は、時刻同期をすることでNode1が属する既存のネットワークに参加できる。
【0117】
(実施例2)
図19を参照して実施例2を説明する。
本例では、上述の実施例1の処理に加えて、新規ノードはRSSIチェックを行い、自分から近い距離に存在すると思われるノードと時刻同期を行う。
【0118】
図19でNode1およびNode3は既存のネットワークに属し、互いに時刻同期が取れているノードである。Node2は新規ノードで、Node1、Node3が属するネットワークに参加しようとしているノードである。
【0119】
Node2は、上記実施例1と同様の処理を経てHelloメッセージの監視を開始する。ただし、本例では、受信したHelloメッセージのRSSI値がRSSI閾値未満の場合には、監視対象としない。RSSI閾値はたとえば20であっても良い。図19では、Node1からのHelloメッセージの受信信号強度(RSSI)は閾値より小さく、Node1は監視対象のノードとしては不適格であると判断される。
【0120】
Node2はNode1に変えて、Node3からHelloメッセージを受信する。Node3からのHelloメッセージのRSSIがRSSI閾値以上であれば、Node3を監視対象とする。この後のNode3とNode2の処理は実施例1と同一である。
【0121】
(実施例3)
図20を参照しながら、実施例3を説明する。本例では、実施例1と同様、新規ノード(Node2)が既存のネットワークに属しているノード(Node1)と時刻同期を取ることによって、ネットワークに参加しようとする状況に適用される。しかし、新規ノード(Node2)は時刻同期要求フレームをあるノード(Node1)に送信したが、時刻同期応答フレームが返ってこないことが実施例1とは異なる。
【0122】
本例では、Node2は時刻同期要求フレームをNode1に対して継続的に送信する。
Node2がNode1に対して時刻同期要求フレームを送信するまでの処理は実施例1と同じである。Node2が時刻同期要求フレームをNode1に送信後、時刻同期応答待ち時間T4を超過しても時刻同期応答フレームが返らない場合、時刻同期要求フレームを再送する。時刻同期要求フレームの再送は、時刻同期要求再送回数に達するまで行う。一例では、時刻同期応答待ち時間T4は60秒である。また、時刻同期要求再送回数は、一例では3回である。時刻同期要求フレームの再送の回数が時刻同期要求再送回数を超過した場合、Helloメッセージの監視対象を変更する。このとき、Node1のMACアドレスは、既に時刻同期要求フレームを送信したアドレスとして新規ノード内に記憶しておくことが好ましい。
【0123】
新たにHelloメッセージの監視対象が見つかれば、実施例1の手順に従って、時刻同期要求フレームを送信し、その後時刻同期応答フレームを受信することで時刻同期を行い、ネットワークへの参加を行うことができる。
【0124】
(実施例4)
図21を参照しながら、実施例4を説明する。本例は、実施例3のように時刻同期要求の送信を継続しても時刻同期ができず、さらにHelloメッセージの監視対象のノードを取り替えても時刻同期が出来ない場合である。
【0125】
図21で、Node1、Node3、Node4は既存のネットワークに属し、互いに時刻同期が取れているノードであるとする。Node2はそのネットワークに新たに参加したいノードである。
【0126】
Node2はNode1をHelloメッセージの監視対象とするが、両者では実施例3と同じ処理が行われる。つまり、Node2は、Node1との時刻同期は取れない。すると、Node2は、今度はNode3からHelloメッセージを受信し、Node2は時刻同期要求フレームをNode3に対して継続的に送信する。しかしながら、Node3についても実施例3と同じことが生じて、Node2はNode3とは時刻同期を取れない。
【0127】
Node2はさらに別のノードであるNode4と時刻同期を取ろうとする。しかしながら、Node4についても実施例3と同じことが生じて、Node2はNode4とは時刻同期を取れない。
【0128】
このようにHelloメッセージの監視対象の変更回数が監視制限数で、たとえば3回を超過した場合、時刻同期要求の送信を終了する。もちろん、監視制限数は3には限定されず、2回でも良いし、5回でも良い。時刻同期要求の送信を終了すると、Node2はNode1、3、4が属するネットワークへの参加は出来ない。
【0129】
この場合は、Node1、3、4が定期的に送信する時刻同期フレームを受信してNode2はネットワークに参加する。
(実施例5)
図22を参照しながら、実施例5を説明する。本例では、既存ネットワークの中で一部のネットワークが瞬断した場合、瞬断された複数のノードが一度に既存ネットワークに参加する方法が開示される。本例では、時刻同期応答フレームを受信したノードは、受信した時刻同期応答フレームをブロードキャスト送信するように構成されている。
【0130】
図22でNodeA、B、Cは、瞬断された複数のノードである。NodeDは、時刻同期されたネットワークに属するノードである。本例では、NodeA、B、CがNodeDが属するネットワークへの参加をする。
【0131】
まず、NodeA、B、Cのうちの1台、たとえばNodeAが最初に時刻同期要求待ち時間を超過し、NodeDに対して時刻同期要求フレームを送信する。装置が起動してかた時刻同期要求フレームを送信するまでの処理は、実施例1と同様である。このとき、NodeBおよびCは、まだ時刻同期要求待ち時間を超えずにいる。
【0132】
次に、時刻同期要求を受信したノード、たとえばNodeDから時刻同期応答フレームがブロードキャスト送信される。ブロードキャスト送信された時刻同期応答フレームを受信した複数のノード、たとえばNodeA、B、Cは、NodeDからの時刻同期応答フレームを用いて時刻同期を取る。つまり、NodeA、B、Cの全てがNodeDからの時刻同期応答フレームを用いて時刻同期を完了することができる。このように、NodeA、B、Cの全てが一斉に、既存のネットワークに一度に参加することが可能となる。
【0133】
また、時刻同期要求待ち時間超過待ち状態であったNodeB、Cは、時刻同期応答フレームの受信などにより時刻同期された場合、時刻同期要求フレームの送信を行わない。
【0134】
以上の実施例1〜5を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のノードから構成され時刻同期が取れているアドホックネットワークと新規のノードが時刻同期を取る方法であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む前記時刻同期要求フレームを送信し
前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む前記時刻同期応答フレームを受信し、
前期時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う、
ことを特徴とする方法。
(付記2)
複数のノードから構成され時刻同期が取れているアドホックネットワークと新規のノードが時刻同期を取る方法であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する前記複数のノードの一つから、前記複数のノードの一つのアドレスを含むメッセージを受信し、
前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む時刻同期要求フレームを送信し、
前記時刻同期要求フレームを受信した前記複数のノードの一つから前記時刻同期情報を含む時刻同期応答フレームを受信し、
前期時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う、
ことを特徴とする方法。
(付記3)
前記メッセージが送信されるノードは、前記メッセージの信号強度が予め定められたしきい値以上のとき、前記時刻同期要求フレームを前記複数のノードの一つに送信させることを特徴とする付記2の方法。
(付記4)
前記メッセージを所定の時間内に連続して所定の回数以上受信したときに、前期時刻同期要求フレームを送信することを特徴とする付記2または3の方法。
(付記5)
複数のノードから構成され時刻同期が取れているアドホックネットワークと新規のノードが時刻同期を取る装置であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む前記時刻同期要求フレームを送信する時刻同期要求フレーム送信手段と、
前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む前記時刻同期応答フレームを受信する時刻同期応答フレーム受信手段と、
前記時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段、
を含むことを特徴とする装置。
(付記6)
複数のノードから構成され時刻同期が取れているアドホックネットワークと新規のノードが時刻同期を取る装置であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する前記複数のノードの一つから、前記複数のノードの一つのアドレスを含むメッセージを受信するメッセージ受信手段と、
前記アドホックネットワークに属する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む時刻同期要求フレームを送信する時刻同期要求フレーム送信手段と、
前記時刻同期要求フレームを受信した前記複数のノードの一つから前記時刻同期情報を含む前記時刻同期応答フレームを受信する時刻同期応答フレーム受信手段と、
前記時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段、
を含むことを特徴とする装置。
(付記7)
前記メッセージの信号強度が予め定められたしきい値以上のとき、前記時刻同期要求フレームを前記複数のノードの一つに送信させるように前記時刻同期要求フレーム送信手段を制御するノード選択手段、
をさらに含むことを特徴とする付記6の装置。
(付記8)
前記時刻同期要求フレーム送信手段は、前記メッセージを所定の時間内に連続して所定の回数以上受信したときに、前記時刻同期要求フレームを送信することを特徴とする付記6または7の装置。
(付記9)
複数のノードから構成され、前記複数のノードは互いに時刻同期されているアドホックネットワークに新規のノードが参加する方法であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する前記複数のノードの一つから、前記複数のノードの一つのアドレスを含むメッセージを受信し、
前記アドホックネットワークに属する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む前記時刻同期要求フレームを送信し、
前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む前記時刻同期応答フレームを受信し、
前期時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行うことによって、前記アドホックネットワークに参加する、
ことを特徴とする方法。
(付記10)
複数のノードから構成され、前記複数のノードは互いに時刻同期されているアドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する第1のノードと、
前記第1のノードに、前記第1のノードのアドレスを含む前記時刻同期要求フレームを送信し、前記時刻同期要求フレームを受信した前記第1のノードから時刻同期情報を含む前記時刻同期応答フレームを受信し、前期時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記第1のノードと時刻同期を行う第2のノード、
を含むネットワーク。
(付記11)
複数のノードから構成され、前記複数のノードは互いに時刻同期されているアドホックネットワークに属する第1のノードであって、前記第1のノードのアドレスを含むメッセージを送信する機能および時刻同期要求フレームを受信して時刻同期情報を含む時刻同期応答フレームを送信する機能を有する第1のノードと、
前記第1のノードから前記第1のノードのアドレスを含むメッセージを受信し、前記第1のノードの前記アドレス宛に前記時刻同期要求フレームを送信し、前記時刻同期要求フレームを受信した前記第1のノードから時刻同期情報を含む前記時刻同期応答フレームを受信し、前期時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記第1のノードと時刻同期を行う第2のノード、
を含むネットワーク。
【符号の説明】
【0135】
10 メッシュ状アドホックネットワーク
12 ネットワークサーバ
14 ネットワーク
1000 ノード装置
1100 インターフェイス部
1110 受信部
1120 送信部
1200 時刻同期処理部
1210 フレーム受信処理部
1220 時刻初期値判定部
1230 Hello制御部
1240 時刻同期制御部
1250 フレーム送信制御部

【特許請求の範囲】
【請求項1】
複数のノードから構成されるアドホックネットワークと時刻同期を取る装置であって、
前記アドホックネットワークに属し、時刻同期要求フレームを受信して時刻同期応答フレームを送信する機能を有する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む前記時刻同期要求フレームを送信する時刻同期要求フレーム送信手段と、
前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む前記時刻同期応答フレームを受信する時刻同期応答フレーム受信手段と、
前記時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段、
を含むことを特徴とする装置。
【請求項2】
複数のノードから構成されるアドホックネットワークと時刻同期を取る装置であって、
前記アドホックネットワークに属する前記複数のノードの一つから、前記複数のノードの一つのアドレスを含むメッセージを受信するメッセージ受信手段と、
前記アドホックネットワークに属する前記複数のノードの一つに、前記複数のノードの一つのアドレスを含む時刻同期要求フレームを送信する時刻同期要求フレーム送信手段と、
前記時刻同期要求フレームを受信した前記複数のノードの一つから時刻同期情報を含む時刻同期応答フレームを受信する時刻同期応答フレーム受信手段と、
前記時刻同期応答フレームに含まれている前記時刻同期情報を使用して前記複数のノードの一つと時刻同期を行う時刻同期手段、
を含むことを特徴とする装置。
【請求項3】
前記メッセージの信号強度が予め定められたしきい値以上のとき、前記時刻同期要求フレームを前記複数のノードの一つに送信させるように前記時刻同期要求フレーム送信手段を制御するノード選択手段、
をさらに含むことを特徴とする請求項2の装置。
【請求項4】
前記時刻同期要求フレーム送信手段は、前記メッセージを所定の時間内に連続して所定の回数以上受信したときに、前記時刻同期要求フレームを送信することを特徴とする請求項1乃至3のいずれか一項の装置。

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−209739(P2012−209739A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−73467(P2011−73467)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】