(57)【特許請求の範囲】
【請求項１】
ノードを動作させる方法であって、
前記ノードのクロック上の同期タイムアウト期間の時間を計ることと、
前記同期タイムアウト期間の間に、ビーコンを聴くことであって、前記聴くことは、メッシュネットワークに画定された制御チャンネル上の無線周波数（ＲＦ）信号の受信を含む、聴くことと、
前記タイムアウト期間の終了時に、そして、ビーコンが受信されなかった場合に、ビーコンリクエストを送信することであって、前記送信することは、前記ノードの親に送られたパケットの前記制御チャンネル上でのＲＦ伝送を含む、送信することと、
前記ビーコンリクエストに応答して、前記親からビーコンを受信することであって、前記ビーコンは、時間インジケータを提供する、受信することと、
前記時間インジケータに従って前記ノードの前記クロックを更新することと、
前記タイムアウト期間を再始動することと、
前記ノードが前記クロックによって測定されたリーフ表示期間においてビーコンリクエストを受信しなかった場合にリーフノードとして前記ノードを分類することと
を包含する、方法。
【請求項２】
第２のノードからビーコンリクエストを受信することと、
前記ノードの前記クロックに基づいて、第２の時間インジケータを有する第２のビーコンを構成することと、
前記第２のノードに前記第２のビーコンを送信することと
をさらに包含する、請求項１に記載の方法。
【請求項３】
前記ビーコンリクエストを送信することは、
より多くのビーコンが取得されたノードを決定することと、
前記決定されたノードに前記ビーコンリクエストを送信することと
を包含する、請求項１に記載の方法。
【請求項４】
前記ノードの前記同期タイムアウト期間の持続時間は、前記メッシュネットワーク内の前記ノードの位置に基づいて調節される、請求項１に記載の方法。
【請求項５】
前記ノードの前記同期タイムアウト期間の持続時間は、部分的には無作為化に基づく、請求項１に記載の方法。
【請求項６】
前記ノードの前記同期タイムアウト期間の持続時間は、前記メッシュネットワーク内の前記ノードの位置に部分的に基づいて、そして、無作為化に部分的に基づいて調節される、請求項１に記載の方法。
【請求項７】
前記同期タイムアウト期間の持続時間は、
ある期間にわたって受信されたビーコンリクエストの数と、
前記期間にわたって送信されたビーコンリクエストの数と
の関数として部分的に設定される、請求項１に記載の方法。
【請求項８】
前記リーフ表示期間の間に、前記ノードの子からのビーコンリクエストを聴くこと
をさらに包含する、請求項１に記載の方法。
【請求項９】
前記リーフ表示期間の間に、ビーコンリクエストを聴くことであって、前記聴くことは、前記メッシュネットワークに画定された前記制御チャンネル上でのＲＦ信号の受信を含む、聴くこと
をさらに包含する、請求項１に記載の方法。
【請求項１０】
プロセッサと、
前記プロセッサと通信するメモリと、
前記プロセッサと通信するクロックと、
前記メモリに定義され、前記プロセッサによって実行可能な同期機能であって、前記同期機能は、前記クロックを使用して同期タイムアウト期間を測定するように構成される、同期機能と、
前記メモリに定義され、前記プロセッサによって実行可能なビーコンリクエスト機能であって、前記ビーコンリクエスト機能は、ビーコンの受信を伴わない、前記同期タイムアウト期間の終了に応答してビーコンリクエストを生成するように構成される、ビーコンリクエスト機能と、
前記ビーコンリクエストに応答して受信されたビーコン内の時間インジケータに従って更新されるように構成されたクロックと、
前記メモリに定義され、前記プロセッサによって実行可能なリーフ分類機能と
を備えるノードであって、前記リーフ分類機能は、
前記クロックを使用してリーフ表示期間を測定するように、
ビーコンリクエストが前記リーフ表示期間の間に前記ノードに到着したか否かを決定するように、そして、
前記決定に基づいて親ノードまたはリーフノードとして前記ノードを分類するように
構成される、ノード。
【請求項１１】
前記ノードの前記同期タイムアウト期間の持続時間は、部分的には無作為化に基づく、請求項１０に記載のノード。
【請求項１２】
前記プロセッサと通信する無線
をさらに備え、前記無線は、
前記ビーコンリクエスト機能に応答してビーコンリクエストを送信するように、
前記ビーコンリクエストに応答してビーコンを受信するように、そして、
周波数ホッピング機能を行うように
構成される、請求項１０に記載のノード。
【請求項１３】
前記ビーコンリクエスト機能はさらに、
前記ノードによって受信されたビーコンリクエストの数が、同じ期間において、前記ノードによって送信されたビーコンリクエストの数よりも多いことに応答して、前記同期タイムアウト期間をより短く設定するように、または
前記ノードによって受信されたビーコンリクエストの数が、前記ノードによって送信されたビーコンリクエストの数よりも少ないことに応答して、前記同期タイムアウト期間をより長く設定するように
構成される、請求項１０に記載のノード。
【請求項１４】
ノードを動作させる方法であって、
クロック上のリーフ表示期間の時間を合わせることと、
前記リーフ表示期間の間、ビーコンリクエストを聴くことであって、前記聴くことは、メッシュネットワークに画定された制御チャンネル上の無線周波数（ＲＦ）信号の受信を含む、聴くことと、
前記リーフ表示期間の間に、ビーコンリクエストが前記ノードの子ノードから受信されたか否かを決定することと、
前記ノードがリーフ表示期間内にビーコンリクエストを受信しなかった場合にリーフノードとして前記ノードを分類することと
を包含する、方法。
【請求項１５】
前記クロック上の同期タイムアウト期間の時間を合わせることと、
ビーコンが前記同期タイムアウト期間の終了前に受信された場合には、前記同期タイムアウト期間をリセットすることと、
ビーコンが前記同期タイムアウト期間の終了前に受信されない場合には、
ビーコンリクエストを送信することと、
前記ビーコンリクエストに応答してビーコンを受信することと、
前記同期タイムアウト期間をリセットすることと、
前記受信されたビーコン内の時間インジケータに従って前記クロックを更新することと
をさらに包含する、請求項１４に記載の方法。
【請求項１６】
第２のノードから第２のビーコンリクエストを受信することと、
前記クロックに基づいた時間インジケータを有する第２のビーコンを構成することと、
前記第２のノードに前記第２のビーコンを送信することと
をさらに包含する、請求項１５に記載の方法。
【請求項１７】
前記ノードよりも前記セルラールータから遠いノードの同期タイムアウト期間よりも短くなるように前記ノードの前記同期タイムアウト期間の持続期間を設定すること
をさらに包含する、請求項１５に記載の方法。
【請求項１８】
前記セルラールータからのホップが前記ノードよりも少ないノードの同期タイムアウト期間よりも長くなるように前記ノードの前記同期タイムアウト期間の持続時間を設定すること
をさらに包含する、請求項１５に記載の方法。
【請求項１９】
前記セルラールータからのホップの数に部分的に基づいて前記ノードの前記同期タイムアウト期間の持続時間を設定すること
をさらに包含する、請求項１５に記載の方法。
【請求項２０】
前記ノードの前記同期タイムアウト期間の持続時間は、ネットワークトラフィックを減少させるように調節される、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）  
本出願は、２０１１年１０月３１日出願の「Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｏｆ  Ｎｏｄｅｓ  ｉｎ  ａ  Ｎｅｔｗｏｒｋ」と題される欧州特許出願第１１１８７３４１．０号に対する優先権を主張し、その出願は、本明細書に参照により組み込まれる。
【０００２】
本発明は、ネットワーク内のノードの同期に関する。
【背景技術】
【０００３】
メッシュネットワークは、多数のノードを含んでもよく、各ノードは、ネットワーク内の１つ以上の他のノードと通信する。各ノードは、典型的には伝送および受信が可能な無線を含む。一部の例示的なネットワークにおいて、通信は複数の「チャンネル」にわたって広がる無線周波数（ＲＦ）信号を利用してもよく、各チャンネルは、特定の周波数範囲にわたって画定される。
【０００４】
あるチャンネルが、他のチャンネルよりもよい受信状態を提供することも可能である。従って、ネットワーク内のノードが、次々と連続してチャンネルの周波数を合わせることが有利であり得る。これは、「チャンネルホッピング」と呼ぶことが出来、タイムスケジュールに従って行ってもよい。タイムスケジュールがあるので、ノード間の同期は非常に重要である。
【０００５】
同期に関する従来の解決策は、タイムスタンプを含むビーコンフレームのブロードキャストを含む。ビーコンを聞いているノードは、クロックを同期する。しかしながら、従来の解決策は、多量のネットワークリソースを利用する。なぜならば、例えば、リーフノードが子ノードを有していないという事実にも関わらず、リーフノードがビーコンを伝播（すなわち、リブロードキャスト）するからである。
【図面の簡単な説明】
【０００６】
詳細な説明は、添付の図面を参照して記載される。図面においては、参照番号の最も左側の桁は、その参照番号が最初に現れた図面を識別する。同じ数字は、同様な特徴や同様な構成要素を言及するために、図面全体を通して使用される。さらに、図面は、上位概念を例示することを意図し、要求される要素および／または必要な要素を例示することを意図していない。
【図１】図１は、複数のノード、セルラールータ、およびクロックサーバを含む、ネットワークの一部分の例を示す図である。
【図２】図２は、無線および処理ユニットを含むノードの例を示す図である。
【図３】図３は、ノードのクロックがネットワーク内で同期され得る例示的な方法を説明する流れ図である。
【図４】図４は、親ノードが子ノードにビーコンを提供し得る例示的な方法を説明する流れ図である。
【図５】図５は、ノードがリーフノードであることを決定し得る例示的な方法を説明する流れ図である。
【図６】図６は、同期タイムアウト期間が調節され得る例示的な方法を説明する流れ図である。
【発明を実施するための形態】
【０００７】
本開示は、ネットワーク内のノードのクロックの同期のための技術を記載する。一例において、ノードは、同期タイムアウト期間を定義し、それから、同期タイムアウト期間の時間を計るか、または測定する。同期タイムアウト期間の間、ノードは、制御チャンネル上で送信され得るビーコンを聞き得る。そのイベントにおいて、ノードは、ビーコン内で見つけられた時間インジケータを使用してクロックをリセットしてもよい。しかしながら、ノードが、制御チャンネル以外のチャンネル上でデータを送信することで忙しい場合には、ノードは、制御チャンネル上で送信されるビーコンを受信しなくてもよい。同期タイムアウト期間の終了前にノードがビーコンを聞かない場合には、ノードは、１つ以上の親にビーコンリクエストを送信してもよい。応答して、親ノードと、親ノード付近にある他のノードとによって聞かれ得るビーコンを、親ノードがブロードキャストする。受信の際、そのノードと、ビーコンを受信する全ての他のノードとが、ビーコンから時間インジケータを取得し、それらのクロックを更新する。クロックが更新されると、次に、他の同期タイムアウト期間が開始し、サイクルが繰り返される。従って、ノードのクロックが他のノードのクロックと同期されることにより、複数のノードが一斉にチャンネルホップすることを可能にする。
【０００８】
さらなる例において、ノードがリーフノードであるか否かを決定してもよい。ノードがリーフノードである場合には、この情報は、１つ以上のネットワークプロトコル層で使用されてもよい。一例において、リーフ分類機能が、リーフ表示期間のタイマを設定する。ビーコンリクエストがその期間内にノードによって受信されない場合には、そのノードは子ノードを有してないので、そのノードがリーフノードであることを決定し得る。
【０００９】
さらなる例示的な実装において、同期タイムアウト期間は、１つ以上のノードに対して調節されてもよい。例えば、リーフノードの同期タイムアウト期間は、リーフノードの親ノードの同期タイムアウト時間よりも少し長くなるように設定してもよい。親の同期タイムアウト期間がより短いことによって、親がビーコンリクエストを伝送する結果となり、親へのビーコンのブロードキャストという結果となり得る。リーフノードは、同期タイムアウト期間が終了する前に、親と同じビーコンを受信し得るので、ビーコンリクエストを送信する必要性がない。これが、一部のネットワーク構成下でネットワークトラフィックを減少させる。
【００１０】
本明細書での考察は、いくつかの節を含む。各節は限定することを意図していない。さらに詳細には、この全記載は、ネットワーク内のノードのクロックを同期することに利用され得る構成要素を例示することを意図するが、必ず必要とされる構成要素を例示することを意図していない。本記載は、本明細書で記載される技術を実装し得る１つの環境を記載する「例示的なネットワーク」と題される節で始まる。この節は、例示的なネットワークを高レベルアーキテクチャと描いたり記載したりする。次に、「例示的なノード」と題される節は、ノードに含まれてもよい、構成要素、機能、および／または技術の例を説明したり記載したりする。「例示的なプロセス」と題されるさらなる節は、ネットワークおよび／またはノードの動作の際に使用され得る技術を説明したり記載したりする。「例示的な同期プロセス」、「例示的なリーフ識別プロセス」、および「例示的な同期タイムアウト期間調節プロセス」を述べる節は、考えられるいくつかのノードおよびネットワークの動作に関する例を提供する。最後に、考察は簡単な結論で終了する。
【００１１】
節のタイトルと対応する要約とを含むこの簡単な序論は、読者の利便性のために提供され、特許請求の範囲の領域も本開示のどの節も記載および／または限定することを意図していない。従って、本明細書で考察される「技術」は、上の文脈や本文書全体を通して認められるように、デバイス、システム、方法、および／またはコンピュータ可読命令を指してもよい。
【００１２】
例示的なネットワーク  
図１は、ネットワーク１００の高レベル図を示す図であり、ネットワーク内のノードのクロックの同期が行われ得る例示的な環境として提供される。ネットワーク１００は、本来ワイヤレスであってもよく、無線周波数（ＲＦ）通信信号を含んでもよい。ネットワーク１００は、特定の実装を提供することと、上位概念を例示することとを意図しているが、必要とされる要素および／または必要な要素を表示することを意図していない。一例において、ネットワーク１００は、複数のノードを含む。ノードは、電力、天然ガス、および／または水の消費を測定するメータなどの需給メータを含んでもよい。ノードは、追加的または代替的に、セルラールータ、変圧器、エンドポイント、インターネットへの接続部、サーバ、および他のネットワーク要素を含んでもよい。さらに、開示の題材は、スマートグリッドや先端メータリングインフラ（ＡＭＩ）ネットワークでの用途を有するが、その概念は、さらに一般的な通信ネットワークでも適用可能である。
【００１３】
一例において、ネットワーク１００は、ネットワーク上のデバイスにクロック信号を提供するためにクロックサーバ１０２を含んでもよい。クロックサーバ１０２は、全地球測位システム（ＧＰＳ）などの任意の所望の供給源、または６０ｋＨｚ（米国または英国）、７７．５ｋＨｚ（ドイツ／欧州）、４０ｋＨｚもしくは６０ｋＨｚ（日本）、および／または６８．５ｋＨｚ（中国）の無線ブロードキャストから時間情報を取得してもよい。クロックサーバ１０２は、ワイド・エリア・ネットワーク（ＷＡＮ）１０４、または有線もしくはワイヤレスのネットワーク接続を提供する代替構造によってネットワーク上のデバイスと通信してもよい。１つ以上のセルラールータ１０６、１０８が、遠隔サーバ（図示せず）にワイヤレス接続を提供するために使用されてもよい。遠隔サーバは、企業のオフィス、コンピュータ計算施設、または他の場所に位置決めされてもよい。各セルラールータ１０６、１０８は、（範囲を限定する境界線で示された）セル１１０、１１２と関連付けられる。各セルにおいて、多数のノードが「メッシュ」ネットワークを画定し得る。メッシュネットワーク内のノードが、（例えば、需給メータまたは他のネットワーク通信デバイスとして）データを取得および伝送し、そして他のノードに対するルータとしても働く。特に、各領域１１０、１１２におけるメッシュネットワークは、ネットワークを通ってデータを伝播するために協働する複数のノードを含む。図１の例において、セル１１０、１１２内のメッシュネットワークはそれぞれ、ヘッドエンドまたは本社などの遠隔サーバへ送信するために、セルラールータ１０６、１０８にデータをまとめて伝播する複数のノードを含んでもよい。
【００１４】
１つ以上のノード１１４が、各メッシュネットワークに位置決めされてもよい。ノードは、任意の種類のネットワークデバイスであってもよく、それらのうちの一部は、他の機能を有してもよい。例えば、ノード１１４は、電力計、ガスメータ、および／または水道メータなどのユーティリティ消費測定メータを含んでもよい。追加的または代替的に、１つ以上のノードはまた、スマート電気グリッドに存在する、変圧器、変電所、盗難防止デバイス、またはその他任意のデバイスとして機能してもよい。
【００１５】
各ノード１１４は、１つ以上の他のノードと双方向通信するように構成されてもよい。図１の例において、通信は、１つ以上のワイヤレス無線周波数（ＲＦ）リンク１１６によるものである。ＲＦリンク１１６は、各ノードがメッシュネットワーク内の少なくとも１つの他のノードと通信することを可能にする。
【００１６】
各セル１１０、１１２のメッシュネットワークのノードの多くが、親ノードと子ノードとの両方であり得る。例えば、ノード１１８は、ノード１２０に対して子であるが、ノード１２２に対しては親である。概して、親ノードは、セルラールータ１０６、１０８の近くにあるが、子ノードは、セルラールータから遠くにある。需給メータからの消費データなどの情報は、セルラールータにノードから伝播され、セルラールータは、ホームオフィス、コンピュータ計算施設、および／またはサーバに情報を送ることを留意されたい。
【００１７】
リーフノード１２４は、親ノードではない子ノードである。従って、リーフノード１２４は、親ノード１２６を有するが、子ノードを有さない。リーフノードの識別は、ある動作において、そして異なるネットワークプロトコル層において重要である。一例において、リーフノード１２４は、クロックの更新のための時間インジケータを含むビーコンを提供する必要はない。なぜならば、そのようなビーコンを必要とする下流ノード（セルラールータからさらに遠いノード、またはセルラールータからのさらなるホップ）が存在しないからである。従って、リーフノードとしてのノードの識別が、そのようなビーコンを妨げることによって、ネットワークトラフィックを減少させる。
【００１８】
ビーコンが伝送された時に、ノード、例えば、図１のノード１２８が、受信の妨害を経験するか、または制御チャンネル以外のチャンネル上が忙しい場合には、ビーコンを聞くことが出来ず、ビーコン内の時間インジケータを取得することが出来ないことがあり得る。従って、同期タイムアウト期間の終了時に、ノード１２８は、親ノード１３２にビーコンリクエスト１３０を送信してもよい。応答して、親ノード１３２は、ビーコン１３４で応答してもよい。ビーコンは、親ノード１３２のクロックからの入力を含む情報から生成されてもよい。
【００１９】
例示的なノード  
図２は、ノード２００の例を示す図である。一例において、ノード２００は、様々な従来のコンピュータ計算デバイス、例えばスマート需給メータ（例えば、双方向通信のために配備された、電力計、ガスメータ、および／または水道メータ）などの様々な先端メータリングインフラ（ＡＭＩ）デバイス、様々なセンサ（例えば、温度センサ、測候所、電波センサなど）、様々な制御デバイス、様々な調整器、様々なルータ、様々なサーバ、様々なリレー、様々なスイッチ、様々なバルブ、またはそれらの組み合わせなどのうちの任意のものとして実装されてもよい。１つの特定の例において、ノードは、セルラー・ルータ・ステーション（例えば、電柱の上）に配置された「スマート・グリッド・ルータ」と時には呼ばれるネットワークルータを備えてもよい。
【００２０】
図２の例において、ノード２００は、バス２０６を通じて通信する、無線２０２と処理ユニット２０４とを含んでもよい。一例において、無線２０２は、無線周波数（ＲＦ）フロントエンド２１０に入力を提供するアンテナ２０８を含む。ＲＦフロントエンド２１０は、伝送機能および受信機能を提供してもよい。ＲＦフロントエンド２１０は、アンテナ２０８によって提供されると共にネットワーク内のノードから取得される信号の調整および減衰などの機能を提供する高周波数アナログ構成要素および／または高周波数ハードウェア構成要素を含んでもよい。出力として、ＲＦフロントエンド２１０は、概して、ベースバンドプロセッサ２１２に送信されるアナログベースバンド信号またはデジタルベースバンド信号の形態であるデータを提供してもよい。典型的な事例および／または限定する事例として解釈されない特定の事例において、ＲＦフロントエンド２１０の出力は、１の表示データおよび／またはパケット、ならびに０の表示データおよび／またはパケットのストリームを含んでもよい。
【００２１】
ベースバンド２１２の全部または一部が、ソフトウェア（ＳＷ）無線として構成されてもよい。一例において、ベースバンドプロセッサ２１２は、周波数選択機能および／またはチャンネル選択機能を無線２０２に提供する。ソフトウェア無線は、アナログ構成要素を使用して代替的に実装され得る構成要素を含んでもよい。例えば、ＳＷ無線は、プロセッサもしくは特定用途向け集積回路（ＡＳＩＣ）または他の内蔵コンピュータ計算デバイスによって実行されるソフトウェアに実装される、ミキサ、フィルタ、アンプ、変調器および／または復調器、検知器などを含んでもよい。ソフトウェア無線は、プロセッサ２１４と、メモリ２１６に定義または格納されたソフトウェアとを利用してもよい。従って、ＲＦフロントエンド２１０によって行われる機能と、ソフトウェア無線を含んでもよいベースバンドプロセッサ２１２によって行われる機能との間でバランスが取られてもよい。
【００２２】
処理ユニット２０４は、１つ以上のメモリデバイス２１６と通信する１つ以上のプロセッサ２１４を含んでもよい。クロック２１８は、時刻を維持するように構成されてもよい。クロックはまた、カウントアップタイマまたはカウントダウンタイマを１つ以上提供するように構成されてもよい。そのようなタイマは、同期タイムアウト期間、リーフ表示期間、周波数ホッピングで使用される期間などの時間を計るために使用されてもよい。
【００２３】
周波数ホッピング機能２２０は、ベースバンドプロセッサ２１２およびクロック２１８と通信するように構成されてもよい。一例において、周波数ホッピング機能２２０は、時間情報を取得するように、および／またはクロックにおける周波数ホッピングタイマを設定するように構成される。そのような時間情報および／またはそのようなタイマが、異なるチャンネルまたは異なる周波数を「ホップ」または調整する時を周波数ホッピング機能２２０に示す。さらに、周波数ホッピング機能２２０は、ＳＷ無線、またはベースバンドプロセッサ２１２内の他の構築物に実周波数の変更を行わせるように構成されてもよい。従って、周波数ホッピング機能２２０は、取り決められた周波数間で、取り決められた回数で、繰り返シフトし、取り決められた期間の間、取り決められたプロトコルで別のノードと通信することが出来る。
【００２４】
同期機能２２２は、少なくとも１つの他のクロックとクロック２１８を同期するように構成される。一例において、同期機能２２２は、クロックサーバまたは時間サーバ１０２（図１を参照）にノード２００のクロック２１８を同期する。同期は、例えば、一連のノードを通して、直接的または間接的に行われてもよい。ネットワーク１００（図１を参照）内の他のノードもまた、クロックサーバ１０２に同期するので、ネットワーク内の複数のノードのクロックが同期される。このことは、少なくとも周波数ホッピング機能２２０が正しい時間情報を取得し、そして所望の周波数を適時にホップまたは調整することが出来るので有利である。
【００２５】
動作の際、同期機能２２２は、クロックがカウントアップまたはカウントダウンすることによって時間を合わせられ得る同期タイムアウト期間を設定または定義してもよい。同期タイムアウト期間の間、ビーコンを受信した場合には、ビーコンからの時間インジケータが、クロックによって示される時間をリセットおよび／または補正するために使用されてもよい。従って、クロックの不正確さに寄与するクリスタルドリフトおよび／または他の要因が補正されてもよい。しかしながら、同期タイムアウト期間が、ビーコンを受信することなく終了した場合には、同期機能２２２は、ビーコンリクエスト機能２２４を作動させてもよく、ビーコンリクエスト機能２２４は、ノード２００の親ノードがノード２００にビーコンを送信することをリクエストする。そのビーコンを受信すると、クロックは同様に補正される。
【００２６】
ノード２００が親ノードである（すなわち、「リーフ」ノードではない）場合には、ノード２００は、１つ以上の子ノードからビーコンリクエストを受信し得る。従って、ビーコン送信機能２２６は、クロック２１８を読み取り、適切な時間インジケータ情報を有するビーコンを構築するように構成される。ビーコンは、時間インジケータ情報を有するパケットとして構成されてもよく、次に、そのパケットは、ビーコンをリクエストした子ノードにブロードキャストされる。さらに、そのブロードキャストは、ノード２００付近の他のノードによって受信され得る。
【００２７】
リーフ分類機能２２８は、ノード２００がリーフであるか否かを決定するように構成される。リーフは、関連する子ノードを有さないノードである。様々なプロトコル層によって行われる様々な機能が、ノードがリーフであるか否かを知ることを必要とし、および／またはそのことから利益を得る。一例において、ノードがリーフノードであるという決定は、そのノードが時間インジケータを有するビーコンを送信することを避けることを可能にする。なぜならば、他のノードは、親ノードからビーコンを得るようにさらに良く役立てられるからである。
【００２８】
動作の際、リーフ分類機能２２８が、リーフ表示期間の時間を合わせるようにクロックを使用してもよい。この期間は、その期間の終了時にノードがビーコンリクエストを受信しなかった場合には、ノードが実際にリーフである可能性が高いように選択されてもよい。すなわち、そのノードはビーコンリクエストを受信することが出来ず、そのようなリクエストは親ノードに導かれるので、そのノードは親ではなく、リーフである可能性が高い。
【００２９】
一例示的な実施形態において、同期タイムアウト期間調節機能２３０は、処理ユニット２０４に含まれてもよい。一部の実施形態において、ネットワークトラフィックは、異なるノードが異なる長さの同期タイムアウト期間を有する場合には、やや減らすことが出来る。同期タイムアウト期間は、ビーコンが受信されなかった場合にビーコンリクエストがその後に送信されなければならない期間である。同期タイムアウト期間調節機能２３０は、ノードの同期タイムアウト期間を変更してもよい。例えば、ノードがリーフノードであると分かっている場合には、同期タイムアウト期間をわずかに延長することが望ましいことがあり得る。わずかに延長することによって、リーフノードの親ノードは、同期タイムアウト期間の終了に到達し、そのリーフの同期タイムアウト期間の終了前にビーコンリクエストを送信してもよい。親ノードとリーフノードとの両方に聞かれ得る、結果として生じるビーコンは、そのリーフの同期タイムアウト期間の終了前に到着してもよい。従って、リーフの同期タイムアウト期間をわずかに延ばすことが、ビーコンリクエストをより少なくし、ビーコンをより少なくし、そして、ネットワークトラフィックを概ねより少なくし得る。
【００３０】
例示的なプロセス  
図３〜図６の例示的なプロセスは、図１〜図２の構成を参照することによって部分的に理解することが出来る。しかしながら、図３〜図６は、一般的適用性を含み、そして、他の図面および／または上記の考察によって限定されない。
【００３１】
本明細書に記載される各プロセスは、ハードウェア、ソフトウェア、またはそれらの組み合わせに実装され得る一連の動作を表すロジカル・フロー・グラフにおける、行為、ブロック、または動作の集合体として説明される。プロセスは、ネットワーク内のノードのクロックを同期する方法などの方法を行うためのコンピュータ実行可能な命令を、プロセッサに通信するように結合されたメモリに格納し、次に、プロセッサ上でその命令を実行することを含んでもよい。
【００３２】
ソフトウェアに関して、１つ以上のプロセッサによって実行された時に、列挙された動作を行う、１つ以上のコンピュータ読取可能な媒体または１つ以上のコンピュータ読取可能な格納媒体に格納されたコンピュータ実行可能な命令を、動作は表す。そのようなコンピュータ読取可能な媒体、そのようなプロセッサ、およびそのようなコンピュータ読取可能な命令は、所望の設計または所望の実装に従って、システム（例えば、図２のノード２００）に位置決めされることが出来る。図２に見られるメモリ２１６は、概ね、取り外し可能なものと取り外し不可能なものとの両方の、任意の技術のコンピュータ読取可能な媒体を表す。このように、列挙された動作は、図３〜図６に記載された行為などの行為を表し、意図した行為を行うための実行可能な命令で構成された１つ以上のプロセッサの制御下で行われる。概して、コンピュータ実行可能な命令は、特定の機能を行うか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が記載される順序は、限定として解釈されることを意図しておらず、任意の数の記載された動作が、プロセスを実装するために、任意の順序および／または並列で組み合わされることが出来る。上記の考察は、本明細書に記載される他のプロセスに適用してもよい。
【００３３】
コンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納のために任意の方法または技術で実装される、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピュータ読取可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、またはコンピュータ計算デバイスによるアクセスのために情報を格納するために使用されることが出来るその他任意の非伝送媒体を含むが、それらには限定されない。そのような任意のコンピュータ読取可能な媒体は、システム２００の一部であってもよい。さらに、コンピュータ読取可能な媒体は、プロセッサ２１４によって実行された時に、本明細書に記載された様々な機能および／または動作を行うコンピュータ読取可能な命令を含んでもよい。
【００３４】
さらに、本明細書の目的のために、コンピュータ読取可能な媒体は、特定用途向け集積回路（ＡＳＩＣ）または他のハードウェアデバイスの全部または一部を含んでもよい。そのようなハードウェアデバイスは、ネットワーク内のノードを同期する際に行われる機能を含む他の機能を含むように構成されてもよい。従って、そのような集積回路において、１つ以上のプロセッサは、ロジック、トランジスタ、もしくは他の構成要素、またはオンボードメモリによって定義され得る実行可能な命令で構成される。
【００３５】
対照的に、通信媒体は、変調されたデータ信号、または他の一時的な媒体もしくは信号を含んでもよい。本明細書において定義されるように、コンピュータストレージ媒体は、通信媒体、および／または搬送波、またはデータ信号を含まない。
【００３６】
例示的な同期プロセス  
図３は、ネットワーク内のノードのクロックが同期され得る例示的なプロセス３００を説明する流れ図である。一例において、プロセス３００は、ネットワーク上の、またはネットワーク環境における、ノードまたは他のデバイスによって行ってもよい。プロセスは、ビーコンリクエストの送信と、時間インジケータを含み得るビーコンの受信とを含んでもよい。そのようなビーコンは、親ノード、セルラールータ、または時間サーバによってブロードキャストしてもよい。
【００３７】
プロセスは、ネットワーク内のノードのクロックを更新して同期するために使用されるビーコンが、同期タイムアウト期間の間に受信されたか否かを決定してもよい。一部の例において、ノードは、無線妨害により、および／または制御チャンネル以外のチャンネルで通信することに費やされた時間によりビーコンを受信しない。ビーコンが受信されない場合には、ビーコンリクエストが、ノードの親に送信されてもよく、そして、ビーコンが応答してブロードキャストされる。ビーコンリクエストによって指示されたものであっても、ビーコンリクエストによって指示されたものでなくても、ビーコンの受信の際、ビーコンからの時間インジケータは、ノード内のクロックを調節して同期するために利用される。従って、ノードのクロックは、他のノードのクロックに対して同期される。これは、ノードが、特定の回数、特定の一連の周波数またはチャンネルを合わせる、周波数ホッピングなどのネットワーク動作に有利である。
【００３８】
図３は、動作３０２において、同期タイムアウト期間が時間を計られることを示す。一例において、ノードのクロックは、同期タイムアウト期間をカウントアップまたはカウントダウンすることにより同期タイムアウト期間を計るか、または測定するために使用される。同期タイムアウト期間は、１時間または２時間の範囲の期間であってもよい。しかしながら、この範囲からかなり逸脱した期間が、同期タイムアウト期間として利用されてもよい。
【００３９】
動作３０４において、ビーコンが同期タイムアウト期間の終了前に受信されたか否かを決定される。ＲＦネットワーク環境において、ノードが、概ね付近にある別のノードによってブロードキャストされたビーコンを「漏れ聞く」ことは一般的である。そのようなビーコンは、またさらなるノードのビーコンリクエストに応答して送信されたものであってもよい。このように、リクエストするノードによってリクエストされ、送信するノードによってブロードキャストされたビーコンは、送信するノードの付近の複数のノードによって聞かれてもよい。従って、ビーコンが同期タイムアウト期間の終了前に受信されたか否かの決定は、そのノードの付近のノードが、同期タイムアウト期間の間に、恐らくは別のノードによってリクエストされたビーコンを送信したか否かに関連付けられ得る。図２の例示的な実装において、同期機能２２２は動作３０４を行うためにクロック２１８を利用してもよい。このように、同期機能２２２は、入来ビーコンを監視し、ビーコンが同期タイムアウト期間の終了前に到着したか否かの決定を行うためにクロックと協調させてもよい。
【００４０】
動作３０６において、ビーコンが、同期タイムアウト期間の間に受信された場合には、同期タイムアウト期間は、受信したビーコンの受信の際、またはビーコンからの情報を使用してクロックを補正する際に、再始動されてもよい。すなわち、前回の同期タイムアウト期間が完了していないが、同期タイムアウト期間の時間計測が再開される。このように、同期タイムアウト期間は、ビーコンが受信されてから経過した時間の基準であってもよい。同様に、同期タイムアウト期間は、規定の期間が、最後のビーコンが受信されてから経過した時を表示するように設定されたアラームであってもよい。図２の例において、同期機能２２２は、ビーコンの受信の際に同期タイムアウト期間を再始動してもよい。同期タイムアウト期間は、クロック２１８と関連付けられるタイマの動作によって測定されてもよい。
【００４１】
動作３０８において、ビーコンの受信の際、ノードのクロックは、ビーコン内の時間インジケータに従って更新される。このように、ビーコン内の時間インジケータは、クリスタルドリフトまたは他の要因により実際の時間からのわずかな相違を経験したかもしれないクロックに補正を提供し得る。図２の例において、同期機能２２２は、クロック２１８の時間を調節するためにビーコン内の時間インジケータを使用してもよい。
【００４２】
動作３１０において、ビーコンが同期タイムアウト期間の終了前に受信されなかった場合には、ビーコンリクエストが送信されなければならない。ビーコンリクエストを送信するステップとして、どの親ノードから、さらなるビーコンがそのノードによって取得されたかを決定してもよい。このように、ノードが２つ以上の親ノードを有する場合には、ビーコンが典型的に受信されるノードにビーコンリクエストを送信することが、役立つことがあり得る。これは、応じる可能性が低いノード、またはビーコンが受信される可能性が低いノードに命令するビーコンリクエストの伝送を回避することによってネットワークトラフィックを減少させ得る。図２の例において、ビーコンリクエスト機能２２４は、恐らくは、どの親ノードが最も多くのビーコンを提供したかという履歴を考慮に入れて、ビーコンリクエストを送信する適切な親ノードを決定するように構成されてもよい。例えば、親ノードが、同期タイムアウト期間の終了前に漏れ聞いたビーコンを、頻繁に、または典型的に提供する場合には、ビーコンリクエストは、その親ノードに送られてもよい。
【００４３】
動作３１２において、同期タイムアウト期間の間にビーコンを聞くことが出来なかったことによって、ビーコンリクエストの送信がもたらされる。一例において、ビーコンリクエストは、ノードの既知の親に送信されてもよい。代替例において、ビーコンリクエストは、さらに一般的な方法で、例えば、利用可能なあらゆるノードにブロードキャストされてもよい。動作３１４において、一例において、ＲＦネットワークは、ビーコンリクエストを送信するために使用される。代替ネットワーク環境において、ビーコンリクエストは、有線ネットワークまたは他のネットワークを通って代替的に送信することが出来る。動作３１６において、さらなる例において、制御チャンネル（すなわち、制御チャンネルとして指定された周波数範囲）が、ビーコンリクエストを送信するために、および／またはビーコンを受信するために使用されることが出来る。
【００４４】
動作３１８において、ビーコンは、ビーコンリクエストに応答して受信される。ビーコンは、クロックによって表示される時間を更新するために使用されてもよい時間インジケータを含んでもよい。従って、クロックは、ネットワークの他のノードの他のクロックに同期される。図２の例において、同期機能２２２または代替機能は、ビーコンの受信に応答してクロック２１８を更新してもよい。
【００４５】
動作３２０において、同期タイムアウト期間は、ビーコンの受信の際、および／またはクロックを更新する際に再始動される。図２の例において、同期機能２２２は、ビーコンの受信および／またはクロック２１８の更新に応答して同期タイムアウト期間を再始動してもよい。
【００４６】
動作３０８において、ビーコンの受信の際に、クロックが更新されてもよい。クロックの更新は、同期機能２２２などによって行われてもよい。クロックの更新が、ビーコンの受信によって先に再始動されていない場合には、同期タイムアウト期間を再始動させてもよい。
【００４７】
動作３２２において、ノードは、チャンネルホッピングなどの、時間の正確な知識を必要とする機能を行い続けてもよい。チャンネルホッピング（例えば、時間を合わせるように調整された周波数の連続変化）が、更新されたクロックに従って行われてもよい。従って、更新されたクロックおよび／または同期されたクロックを有するノードは、同期されるように周波数を調整することが出来る。
【００４８】
図４は、ビーコンリクエストが使用可能にされ得る例示的なプロセス４００を説明する流れ図である。従って、図３は、子ノードがビーコンを取得することが出来る例を記載したが、図４は、親ノードがそのようなビーコンを提供し得る例を記載する。
【００４９】
図４は、動作４０２において、ビーコンリクエストが親ノードで受信されることを示す。ビーコンリクエストは、親の子ノードによって送信されたものであってもよい。図１の例において、ノード１１８は、子ノード１２２からビーコンリクエストを受信してもよい。
【００５０】
動作４０４において、ビーコンは、現在の時間を表示する時間インジケータまたはデータ構造を典型的に含む子ノードに伝送するように構成される。時間インジケータは、ビーコンリクエストを受信するノードのクロックに基づいてもよい。
【００５１】
動作４０６において、親ノードが子ノードにビーコンを送信する。ビーコンの伝送はＲＦによって行われてもよいので、親ノード付近の全ノードが便宜主義的にビーコンを受信してもよい。
【００５２】
例示的なリーフ識別プロセス  
図５は、ノードがリーフであるか否かを決定し得る例示的なプロセス５００を説明する流れ図である。リーフは、親ノードではないノードである。ノードがリーフであるという知識は、リーフノードが、ビーコンをブロードキャストすることを避けることにより、ネットワークトラフィックを減少させるように構成されてもよいという点で、ネットワークの同期の際に役立つ。また、ノードがリーフであるという知識は、ネットワークプロトコルの様々な層の動作の際に有利であり得る。一例において、ノードが充分な期間にわたってビーコンリクエストを受信しない場合には、そのノードがリーフであることを、ノードは決定してもよい。親ノードはビーコンリクエストを受信するものであり、リーフノードは子を有していないので、ビーコンリクエストを受信出来ないことが、リーフの特徴である。時の経過と共にビーコンリクエストを受信しないことにより、そのノードがリーフであることがますます確実なものになり得る。
【００５３】
図５は、動作５０２において、タイマが、リーフ表示期間に関して設定またはリセットされることを示す。リーフ表示期間は、ノードが実際にリーフであることの所望の確実性を提供するように選択されてもよい。期間がより長いことにより、より確実性を提供するが、期間がより短いことにより、リーフの状態に関する知識をより早く提供するという恩恵があり得る。競合する要素のバランスが、用途や時間設定に合うように調節されてもよい。図２の例において、リーフ分類機能２２８は、ノードがリーフであるか否かを決定するためにノードによって使用されてもよい。
【００５４】
動作５０４において、ビーコンリクエストがリーフ表示期間の間に受信されたか否かが決定される。動作５０６において、ノードは、ビーコンリクエストがリーフ表示期間の間に受信されたか否かに従って、リーフであるとして、もしくはリーフではないとして、自分自身を分類してもよく、および／またはリーフであるとして、もしくはリーフではないとして分類されてもよい。ビーコンリクエストを受信することが出来ないことは、そのノードがリーフである可能性があることを示す。動作５０８において、ノードがリーフであると分かった場合には、そのノードはビーコンが伝送されるのを妨げられる。従って、ネットワーク帯域幅が維持される。
【００５５】
例示的な同期タイムアウト期間調節プロセス  
図６は、同期タイムアウト期間がネットワーク内の１つ以上のノードで調節され得るプロセス６００の例を説明する流れ図である。同期タイムアウト期間は、ノードがビーコンを聞くのを待つ期間である。同期タイム期間の経過後、ノードがビーコンを聞いていない場合には、ノードは、親ノードにビーコンリクエストを送信する。例示的な実装において、同期タイムアウト期間は、ノード毎に異なってもよい。同期期間の長さは、メッシュネットワーク内のノード位置に基づいてもよい。代替的または追加的に、同期タイムアウト期間は、異なるノードが異なる同期タイムアウト期間を有するように、少なくとも部分的には無作為化に基づいてもよい。動作において、リーフノードに対するわずかに長い同期タイムアウト期間は、リーフノードの同期タイムアウト期間の終了前にリーフノードの親に対して意図されたビーコンを聞く可能性がさらに高いことを意味し得る。そのような状況において、リーフノードは、ビーコンリクエストを伝送することがほとんどないので、ネットワークトラフィックを減少させる。従って、図６は、ノードの同期タイムアウト期間を調節し、有利なことにネットワークトラフィックを減少させるために、単一で、そして組み合わせて使用されることが出来る要因を示す。図２の例において、同期タイムアウト期間調節機能２３０は、ノードの同期タイムアウト期間を調節するために使用されてもよい。
【００５６】
図６は、動作６０２において、同期タイムアウト期間は、時の経過と共に受信および／または送信される多数のビーコンリクエストの関数として部分的に調節されることを示す。この例示的な動作において、多数のビーコンリクエストは、そのノードが多数の他のノードに対する親であることを表示してもよい。ノードが子ノードから受信するビーコンリクエストは、ネットワーク帯域幅を使用する。この帯域幅は、ノードの同期タイムアウト期間を短くすることによって、一部の場合において減少させられ得る。これは、ノードが別の方法でビーコンをリクエストする前に、ノードにビーコンをリクエストさせてもよい。結果として生じるビーコンは、子ノードのうちの１つ以上によって聞かれることにより、それらがビーコンリクエストを送信するのを妨げてもよい。
【００５７】
動作６０４において、ノードの同期タイムアウト期間は、そのノードの子の同期タイムアウト期間よりも短くなるように調節されてもよい。上記の方法と同様な方法で、より短い同期タイムアウト期間を有する親ノードは、ビーコンリクエストを行って、親ノードと子ノードとの両方によって聞かれるビーコンをもたらしてもよい。このように、子はビーコンリクエストを送信せず、ネットワーク帯域幅が保存される。
【００５８】
動作６０６において、ノードは、送信されたビーコンリクエストよりも多くのビーコンリクエストが受信された場合には短くなるように、または受信されたビーコンリクエストよりも多くのビーコンリクエストが送信された場合には長くなるように、同期タイムアウト期間を設定してもよい。このように、親ノードと子ノードとの両方が、ビーコンリクエストの数とネットワークトラフィックの量とを減少させるために、同期タイムアウト期間を調節することを試みてもよい。
【００５９】
動作６０８において、上流ノード（セルラールータに近いノード、またはセルラールータからのホップが少ないノード）に対する同期タイムアウト期間は、下流ノード（セルラールータから遠いノード、またはセルラールータからのホップが多いノード）よりも短く設定される。特に、リーフノードなどの下流ノードは、わずかに長い同期タイムアウト期間で構成されてもよい。これが、親に向けられたビーコンなどのビーコンを聞くために、わずかに長い期間をそのようなリーフに与える。下流ノードはビーコンを聞くので、ビーコンリクエストを送信せず、それによりネットワークトラフィックを減少させる。
【００６０】
動作６１０において、ノードの同期タイムアウト期間は、少なくとも部分的には無作為化に基づいて設定されてもよい。
【００６１】
結論  
本発明は、構造的な特徴および／または方法論的な行為に関して固有の言葉で記載されてきたが、添付の特許請求の範囲に定義される本発明は、記載された固有の特徴や行為には必ずしも限定されないことが理解される。むしろ、固有の特徴や行為は、特許請求の範囲を実装する例示的な形態として開示される。
【図１】
0005438248.tif 000002
【図２】
0005438248.tif 000003
【図３】
0005438248.tif 000004
【図４】
0005438248.tif 000005
【図５】
0005438248.tif 000006
【図６】
0005438248.tif 000007