IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ランディス・ギア イノベーションズ インコーポレイテッドの特許一覧

特表2024-500161メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート
<>
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図1
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図2A
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図2B
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図3
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図4
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図5
  • 特表-メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-04
(54)【発明の名称】メッシュネットワークにおけるタイムクリティカルトラフィックのための最適化されたルート
(51)【国際特許分類】
   H04L 45/121 20220101AFI20231222BHJP
【FI】
H04L45/121
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023538036
(86)(22)【出願日】2021-12-10
(85)【翻訳文提出日】2023-08-18
(86)【国際出願番号】 US2021062741
(87)【国際公開番号】W WO2022140076
(87)【国際公開日】2022-06-30
(31)【優先権主張番号】17/129,215
(32)【優先日】2020-12-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】513113895
【氏名又は名称】ランディス・ギア イノベーションズ インコーポレイテッド
【氏名又は名称原語表記】LANDIS+GYR INNOVATIONS, INC.
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【弁理士】
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】シン,ショビット クマール
(72)【発明者】
【氏名】ジャイン,サウラブ
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA02
5K030HD03
5K030JA11
5K030KA05
5K030MA04
5K030MB06
(57)【要約】
メッシュネットワークにおけるタイムクリティカルメッセージのための経路を最適化するシステムを提供する。例えば、メッシュネットワークにおける子ノードは、その親ノードのうちのいずれかを介してルートノードと通信できる。子ノードは、その一次親に関連付けられた一次経路を介して、ルートノードに通常データを送信するように構成される。ルートノードにタイムクリティカルメッセージを送信すべきである場合、子ノードは、子ノード及びルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定する。子ノードは、その親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択し、選択された親ノードを介してルートノードにタイムクリティカルメッセージを送信する。タイムクリティカルメッセージを送信した後、子ノードは、一次経路に戻すように切り換えることで、ルートノードに追加の通常データを送信する。
【特許請求の範囲】
【請求項1】
ルートノードと、子ノードと、上記子ノードの複数の親ノードとを備えるメッシュネットワークであって、
上記子ノードは、上記メッシュネットワークにおける他のノードを介してルートノードと通信し、
上記複数の親ノードのうちの各親ノードは、上記親ノードを通過する、上記子ノードと上記ルートノードとの間の経路に関連付けられ、
上記複数の親ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含み、
上記子ノードは、
上記一次親ノードに関連付けられた一次経路を介して、上記ルートノードに通常データを送信し、
上記ルートノードにタイムクリティカルメッセージを送信すべきであると決定し、
上記子ノードと上記複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、上記複数の親ノードのうちの1つに関連付けられた、上記子ノード及び上記ルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定し、
上記複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択し、
上記選択された親ノードを介して上記ルートノードに上記タイムクリティカルメッセージを送信し、
上記選択された親ノードを介して上記ルートノードに上記タイムクリティカルメッセージを送信した後、上記一次経路を介して上記ルートノードに追加の通常データを送信するように構成される、
メッシュネットワーク。
【請求項2】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記子ノード及び上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードを介して上記ルートノードにユニキャストメッセージを送信することと、
上記ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記ルートノードから上記ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答メッセージを受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記1つの親ノードに関連付けられた、上記子ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項1記載のメッシュネットワーク。
【請求項3】
上記1つの親ノードは、
上記子ノードから上記ユニキャストメッセージを受信し、
上記1つの親ノード及び上記ルートノードの間の経路を介して、上記ルートノードに上記ユニキャストメッセージを転送し、
上記1つの親ノードによって上記ユニキャストメッセージを転送することに関連付けられた第3のタイムスタンプを記録し、
上記ルートノードから上記ユニキャストメッセージの肯定応答メッセージを受信し、
上記1つの親ノードにおいて上記肯定応答メッセージを受信することに関連付けられた第4のタイムスタンプを記録し、
上記ユニキャストメッセージの肯定応答メッセージを上記子ノードに転送し、
上記第4のタイムスタンプによって示される第4の時点と、上記第3のタイムスタンプによって示される第3の時点との間の差として、上記1つの親ノード及び上記ルートノードの間の経路に関するRTTを計算するように構成される、
請求項2記載のメッシュネットワーク。
【請求項4】
上記メッシュネットワークは、損失のある媒体のルーティングプロトコル(RPL)を実装し、
上記ユニキャストメッセージは、宛先広告オブジェクト(DAO)メッセージである、
請求項3記載のメッシュネットワーク。
【請求項5】
上記DAOメッセージはシーケンス番号を含み、
上記DAOメッセージの肯定応答メッセージは上記シーケンス番号を含み、
上記1つの親ノードは、上記DAOメッセージに含まれるシーケンス番号と、上記肯定応答メッセージに含まれるシーケンス番号とに基づいて、上記第3のタイムスタンプ及び上記第4のタイムスタンプをそれぞれ識別するように構成される、
請求項4記載のメッシュネットワーク。
【請求項6】
上記シーケンス番号は、新たなIPv6拡張ヘッダに含まれるか、又は、既存のIPv6ヘッダのホップバイホップ(HBH)オプションに含まれる、
請求項5記載のメッシュネットワーク。
【請求項7】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記子ノードから上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードに近傍ユニキャストメッセージを送信することと、
上記近傍ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記1つの親ノードから上記近傍ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答を受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記子ノード及び上記1つの親ノードの間のローカル経路に関するローカルRTTを計算することと、
上記1つの親ノードから、上記1つの親ノード及び上記ルートノードの間の経路のRTTを指定する制御メッセージを受信することと、
上記ローカルRTTと、上記1つの親ノード及び上記ルートノードの間の経路のRTTとの和として、上記1つの親ノードに関連付けられた、上記子ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項1記載のメッシュネットワーク。
【請求項8】
上記メッシュネットワークは、損失のある媒体のルーティングプロトコル(RPL)を実装し、
上記制御メッセージは、DODAG情報オブジェクト(DIO)メッセージであり、
上記制御メッセージは、上記DIOメッセージのオプションにおいて、上記1つの親ノード及び上記ルートノードの間の経路のRTTを指定する、
請求項7記載のメッシュネットワーク。
【請求項9】
上記1つの親ノード及び上記ルートノードの間の経路のRTTは、上記1つの親ノードの一次親ノードに関連付けられた、上記1つの親ノード及び上記ルートノードの間の経路のRTTである、
請求項7記載のメッシュネットワーク。
【請求項10】
上記制御メッセージにおいて指定される、上記1つの親ノード及び上記ルートノードの間の経路のRTTは、上記1つの親ノードによって計算された最新のRTT又は平均のRTTである、
請求項7記載のメッシュネットワーク。
【請求項11】
上記子ノード及び上記複数の親ノードの各々は、対応するノードから上記ルートノードまでの経路に関するRTTを維持するために構成される、
請求項1記載のメッシュネットワーク。
【請求項12】
上記子ノードは、1つ又は複数の選択基準に基づいて、上記子ノードの近傍ノードのうちで上記複数の親ノードを選択するようにさらに構成される、
請求項1記載のメッシュネットワーク。
【請求項13】
ネットワークのノードであって、上記ノードは、
コンピュータ可読命令を実行するように構成されたプロセッサと、
上記プロセッサによって実行されたとき、上記プロセッサに以下のステップを含む動作を実行させる上記コンピュータ可読命令を格納するように構成されたメモリとを備え、
上記動作は、上記ノードの一次親ノードに関連付けられた一次経路を介して、上記ネットワークのルートノードに通常データを送信することを含み、
上記ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含む、上記ネットワークにおける複数の親ノードを有し、
上記複数の親ノードのそれぞれは、上記ノードと上記ネットワークのルートノードとの間の経路に関連付けられ、
上記動作は、
上記ルートノードにタイムクリティカルメッセージを送信すべきであると決定することと、
上記ノードと上記複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、上記複数の親ノードのうちの1つに関連付けられた、上記ノード及び上記ルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定することと、
上記複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択することと、
上記選択された親ノードを介して上記ルートノードに上記タイムクリティカルメッセージを送信することと、
上記一次経路に戻るように切り換えることで、上記ルートノードに追加の通常データを送信することとを含む、
ノード。
【請求項14】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードを介して上記ルートノードにユニキャストメッセージを送信することと、
上記ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記ルートノードから上記ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答メッセージを受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項13記載のノード。
【請求項15】
上記1つの親ノードは、
ノードからユニキャストメッセージの受信;
上記1つの親ノード及び上記ルートノードの間の経路を介して、上記ルートノードに上記ユニキャストメッセージを転送し、
上記1つの親ノードによって上記ユニキャストメッセージを転送することに関連付けられた第3のタイムスタンプを記録し、
上記ルートノードから上記ユニキャストメッセージの肯定応答メッセージを受信し、
上記1つの親ノードにおいて上記肯定応答メッセージを受信することに関連付けられた第4のタイムスタンプを記録することと、
上記ユニキャストメッセージの肯定応答メッセージを上記ノードに転送し、
上記第4のタイムスタンプによって示される第4の時点と、上記第3のタイムスタンプによって示される第3の時点との間の差として、上記1つの親ノード及び上記ルートノードの間の経路に関するRTTを計算するように構成される、
請求項14記載のノード。
【請求項16】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記ノードから上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードに近傍ユニキャストメッセージを送信することと、
上記近傍ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記1つの親ノードから上記近傍ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答を受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記ノード及び上記1つの親ノードの間のローカル経路に関するローカルRTTを計算することと、
上記1つの親ノードから、上記1つの親ノード及び上記ルートノードの間の経路のRTTを指定する制御メッセージを受信することと、
上記ローカルRTTと、上記1つの親ノード及び上記ルートノードの間の経路のRTTとの和として、上記1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項13記載のノード。
【請求項17】
メッシュネットワークにおいてタイムクリティカルメッセージを送信するための方法であって、
上記方法は、上記メッシュネットワークにおけるノードによって、上記ノードの一次親ノードに関連付けられた一次経路を介して、上記メッシュネットワークのルートノードに通常データを送信することを含み、
上記ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含む、上記メッシュネットワークにおける複数の親ノードを有し、
上記複数の親ノードのそれぞれは、上記ノードと上記メッシュネットワークのルートノードとの間の経路に関連付けられ、
上記方法は、
上記ノードによって、上記ルートノードにタイムクリティカルメッセージを送信すべきであると決定することと、
上記ノードによって、上記ノードと上記複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、上記複数の親ノードのうちの1つに関連付けられた、上記ノード及び上記ルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定することと、
上記ノードによって、上記複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択することと、
上記ノードによって、上記選択された親ノードを介して上記ルートノードに上記タイムクリティカルメッセージを送信することと、
上記ノードによって、上記一次経路に戻るように切り換えることで、上記ルートノードに追加の通常データを送信することとを含む、
方法。
【請求項18】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードを介して上記ルートノードにユニキャストメッセージを送信することと、
上記ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記ルートノードから上記ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答メッセージを受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項17記載の方法。
【請求項19】
上記メッシュネットワークは、損失のある媒体のルーティングプロトコル(RPL)を実装し、
上記ユニキャストメッセージは、宛先広告オブジェクト(DAO)メッセージである、
請求項18記載の方法。
【請求項20】
上記複数の親ノードのうちの1つの親ノードに関連付けられた、上記ノードから上記ルートノードの間の経路に関するRTTを推定することは、
上記1つの親ノードに近傍ユニキャストメッセージを送信することと、
上記近傍ユニキャストメッセージを送信することに関連付けられた第1のタイムスタンプを記録することと、
上記1つの親ノードから上記近傍ユニキャストメッセージの肯定応答メッセージを受信することと、
上記肯定応答を受信することに関連付けられた第2のタイムスタンプを記録することと、
上記第2のタイムスタンプによって示される第2の時点と、上記第1のタイムスタンプによって示される第1の時点との間の差として、上記ノード及び上記1つの親ノードの間のローカル経路に関するローカルRTTを計算することと、
上記1つの親ノードから、上記1つの親ノード及び上記ルートノードの間の経路のRTTを指定する制御メッセージを受信することと、
上記ローカルRTTと、上記1つの親ノード及び上記ルートノードの間の経路のRTTとの和として、上記1つの親ノードに関連付けられた、上記ノード及び上記ルートノードの間の経路に関するRTTを計算することとを含む、
請求項17記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してメッシュネットワークに関し、より詳しくは、メッシュネットワークにおけるタイムクリティカルメッセージのための経路を最適化することに関する。
【背景技術】
【0002】
損失のある媒体のためのルーティングプロトコル(routing protocol of lossy medium:RPL)に基づくメッシュネットワークのようなメッシュネットワークにおいて、上方へのルーティングは好ましい親を介して実行され、下方へのルーティングはソースルーティングを介してルートノードによって実行される。メッシュネットワークにおけるノードは、良好なリンク品質、低いルーティングコスト、などのような、メッシュネットワークの目的に基づいて、ルーティングのための親を選択することができる。リンク品質指数(link quality index:LQI)及び予想送信回数(expected transmission count:ETX)は、ほとんどの場合、損失のあるメッシュネットワークにおけるルーティングのための親を選択する際における共通の属性である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
メッシュネットワークに関連付けられたスマートグリッド又は他のリソース分配ネットワークは、是正措置を装置に送信できるように、データが最短時間でヘッドエンドシステムに到達することをしばしば必要とする。例えば、分配自動化(distribution automation:DA)データは非常にクリティカルであり、これらのデータのラウンドトリップ時間(RTT)はできるだけ短い必要がある。同様に、供給停止データは、ヘッドエンドシステムに確実かつ迅速に到達する必要がある。しかしながら、LQI又はETXに基づく目的関数を用いる既存のルーティングメカニズムは、信頼性を提供するものの、メッセージのRTTが小さいことを保証しない。従って、これらの既存のルーティングメカニズムは、タイムクリティカルメッセージに関するルーティング要件を取り扱うには不十分である。
【課題を解決するための手段】
【0004】
メッシュネットワークにおけるタイムクリティカルメッセージのための経路を最適化するための装置及び処理の態様及び実施例を開示する。一実施例では、メッシュネットワークはと、ルートノードと、メッシュネットワークにおける他のノードを介してルートノードと通信する子ノードと、子ノードの複数の親ノードとを含む。複数の親ノードのうちの各親ノードは、親ノードを通過する、子ノードとルートノードとの間の経路に関連付けられる。複数の親ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含む。子ノードは、一次親ノードに関連付けられた一次経路を介して、ルートノードに通常データを送信し、ルートノードにタイムクリティカルメッセージを送信すべきであると決定し、子ノードと複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、複数の親ノードのうちの1つに関連付けられた、子ノード及びルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定するように構成される。子ノードはさらに、複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択し、選択された親ノードを介してルートノードにタイムクリティカルメッセージを送信し、選択された親ノードを介してルートノードにタイムクリティカルメッセージを送信した後、一次経路を介してルートノードに追加の通常データを送信するように構成される。
【0005】
もう1つの実施例では、ネットワークのノードは、コンピュータ可読命令を実行するように構成されたプロセッサと、コンピュータ可読命令を格納するように構成されたメモリとを備え、コンピュータ可読命令は、プロセッサによって実行された場合、プロセッサに下記の動作を実行させる。本動作は、ノードの一次親ノードに関連付けられた一次経路を介して、ネットワークのルートノードに通常データを送信することを含む。ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含む、ネットワークにおける複数の親ノードを有する。複数の親ノードのそれぞれは、ノードとネットワークのルートノードとの間の経路に関連付けられる。本動作はさらに、ルートノードにタイムクリティカルメッセージを送信すべきであると決定することと、ノードと複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、複数の親ノードのうちの1つに関連付けられた、ノード及びルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定することとを含む。本動作はまた、複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択し、選択された親ノードを介してルートノードにタイムクリティカルメッセージを送信し、一次経路に戻るように切り換えることで、ルートノードに追加の通常データを送信することとを含む。
【0006】
さらにもう1つの実施例では、メッシュネットワークにおいてタイムクリティカルメッセージを送信するための方法は、メッシュネットワークにおけるノードによって、ノードの一次親ノードに関連付けられた一次経路を介して、メッシュネットワークのルートノードに通常データを送信することを含む。ノードは、一次親ノードと、1つ又は複数のバックアップ親ノードとを含む、メッシュネットワークにおける複数の親ノードを有する。複数の親ノードのそれぞれは、ノードとメッシュネットワークのルートノードとの間の経路に関連付けられる。本方法はさらに、ノードによって、ルートノードにタイムクリティカルメッセージを送信すべきであると決定することと、ノードによって、ノードと複数の親ノードのそれぞれと間で送信されたメッセージに基づいて、複数の親ノードのうちの1つに関連付けられた、ノード及びルートノードの間の各経路に関するラウンドトリップ時間(RTT)を推定することとを含む。本方法はまた、ノードによって、複数の親ノードのうちで、最短のRTTを有する関連付けられた経路を有する親ノードを選択することと、ノードによって、選択された親ノードを介してルートノードにタイムクリティカルメッセージを送信することと、ノードによって、一次経路に戻るように切り換えることで、ルートノードに追加の通常データを送信することとを含む。
【0007】
これらの例示的な態様及び特徴は、ここで説明する主題を限定又は定義するためではなく、本願において説明する概念についての理解を支援する実施例を提供するために言及される。ここに説明する主題の他の態様、利点、及び特徴は、本願全体に目を通すことにより明らかになるであろう。
【0008】
本開示のこれら及び他の特徴、態様、及び利点は、以下の詳細な説明が添付の図面を参照して読まれるとき、さらに理解される。
【図面の簡単な説明】
【0009】
図1】本開示の所定の態様に係る、メッシュネットワークにおけるタイムクリティカルメッセージの経路を最適化するための例示的な動作環境を示すブロック図である。
図2A】本開示の所定の態様に係る、子ノード及びルートノードの間の経路のRTTを推定するための、メッシュネットワークにおけるノードの例示的な階層と、これらのノード間の相互作用とを示す。
図2B】本開示の所定の態様に係る、子ノード及びルートノードの間の経路のRTTを推定するための、メッシュネットワークにおけるノード間の相互作用の他の実施例を示す。
図3】本開示の所定の態様に係る、メッシュネットワークにおけるタイムクリティカルメッセージの経路を最適化する処理の例を示す。
図4】本開示の所定の態様に係る、メッシュネットワークにおける子ノードからルートノードまでの経路に沿ったノードによってRTTを計算する処理の例を示す。
図5】本開示の所定の態様に係る、メッシュネットワークにおける子ノードからルートノードまでの経路に関するRTTを計算する処理の例を示す。
図6】本願で提示される技術の態様を実装するのに適したノードの例を示すブロック図である。
【発明を実施するための形態】
【0010】
メッシュネットワークにおけるタイムクリティカルメッセージの経路を最適化するためのシステム及び方法が提供される。いくつかの実施例では、メッシュネットワークにおける子ノードは一組の親ノードを有し、親ノードの各々は、子ノードとネットワークのルートノードとの間の経路に関連付けられる。一組の親ノードは、一次親ノードと、1つ又は複数のバックアップ親とを含む。いくつかの実施例では、ある親ノードを介する経路がLQI又はETXに基づく目的関数を満たすことのような所定の基準に基づいて、子ノードによって、その近傍ノードから一組の親ノードが選択される。子ノードは、一次親に関連付けられた一次経路を介して、ルートノードに、通常データ(例えば、配電網における電力消費データ)を送信するように構成される。DAデータ又は供給停止データのようなタイムクリティカルメッセージ(「クリティカルメッセージ」とも呼ぶ)がルートノードに送信されるべきであると子ノードが決定した場合、子ノードは、一組の親ノードのうちの1つの親ノードに関連付けられた各経路に関する子ノードによって維持されたラウンドトリップ時間(RTT)に基づいて、経路を選択してもよい。
【0011】
子ノードはまた、時々、各経路に関するRTTを推定及び更新する。例えば、子ノードは、ユニキャストメッセージ(例えば、宛先広告オブジェクトメッセージ、又は、その肯定応答が期待される上方への任意のユニキャストメッセージ)をルートノードに送信し、ルートノードから肯定応答を受信することなどによって、ルートノードと通信する場合、RTTを推定することができる。子ノードは、各親ノードを介してルートノードにメッセージを送信する時間と、各親ノードを介して肯定応答メッセージを受信する時間とを記録することができる。所与の親ノードを介する送信時間及び受信時間の間の差は、親ノードに関連付けられた経路に関するRTTとして決定することができる。子ノードは、定期的、例えば1時間ごとに、ユニキャストメッセージを送信することができる。子ノードからルートノードまでの経路における中間ノードもまた、ユニキャストメッセージの転送時間と、肯定応答メッセージの受信時間との間の差を用いて、各中間ノード及びルートノードの間の経路に関するRTTを推定することができる。
【0012】
もう1つの実施例では、子ノードは、子ノードと、その親ノードの各々との間の通信を介して、RTTを推定することができる。例えば、所与の親ノードに関して、子ノードは、これらの2つのノード間のメッセージ交換を介して、子ノード及び親ノードの間のRTTを決定することができる。子ノードはさらに、親ノードから受信された制御メッセージを介して、この親ノード及びルートノードの間の経路に関するRTTを取得することができる。制御メッセージにおいて、親ノードは、親ノードからルートノードまでの経路のRTTを挿入することができる。このように、子ノードは、子ノード及び親ノードの間の経路のRTTと、親ノード及びルートノードの間の経路のRTTとを合計することで、子ノードからルートノードへのRTTを計算することができる。
【0013】
異なる親ノードを介する子ノード及びルートノードの間の計算されたRTTに基づいて、子ノードは、最短のRTTを有する関連付けられた経路を有する親ノード(一次親ノード又は代替の親ノード)を選択するか、又は、親選択ファクターとしてRTTを用いる。子ノードは、選択された親ノードにクリティカルメッセージを送信し、選択された親ノードはさらに、その関連付けられた経路を介してルートノードにクリティカルメッセージを転送する。次いで、子ノードは、一次経路へ戻すように切り換え、一次経路を介してルートノードに通常データを送信し続ける。
【0014】
本開示において説明する技術は、タイムクリティカルメッセージをルートノードに送信する待ち時間を短縮する。このことは、メッシュネットワーク又は関連付けられたリソース分配ネットワークの喫緊の課題に対して迅速に対処することを可能にする。さらに、最短のRTTを有する経路を選択することによって、タイムクリティカルメッセージを送信するための電力消費量は低減される。例えば、短いRTTに起因して、子ノードは、より短い時間期間のうちにタイムクリティカルメッセージの肯定応答を受信することができ、したがって、子ノードは、より早期にスリープモードに移行することができ、子ノードの短縮された起動時間をもたらす。また、最短のRTTを有する経路は、典型的には、より小さいホップ数を有する。その結果、より少数のノードがタイムクリティカルメッセージの送信に関与し、クリティカルメッセージを送信するためのネットワークの全体電力消費量が低減される。
【0015】
例示的な動作環境
図1は、メッシュネットワークにおけるタイムクリティカルメッセージの経路を最適化するための例示的な動作環境100を示す。動作環境100はメッシュネットワーク140を含み、ここにおいて、ノードは、タイムクリティカルメッセージを送信する場合に最適化された経路を選択するように構成される。図1に示すメッシュネットワーク140は、複数のノード160A~160N(これらは、本願では、個別に又は集合的に、ノード160と呼ばれることがある)を含む。ノード160は、配備されたノードの各場所からデータを収集するための測定ノード、ノードにより利用可能なデータを処理するための処理ノード、ネットワーク104においてあるノードから受信されたデータを他のノードに転送するためのルータノード、又は、これらの機能の組み合わせを実行するように構成されたノードを含んでもよい。ノード160はさらに、メッセージ又は他のデータを含むデータパケット112をノード160間で交換できるように、互いに通信するように構成される。
【0016】
一実施例では、メッシュネットワーク104は、ユーティリティネットワークのようなリソース分配ネットワークに関連付けられ、リソース分配ネットワークにおいて取得された測定データを配送してもよい。この実施例では、ノード160は、電気メーター、ガスメーター、水道メーター、蒸気メーター、及び他の任意のタイプのIoT(Internet of things)装置のようなメーターを含んでもよく、リソース消費量の特性のような、リソース分配ネットワークの様々な動作特性を測定するように実装されてもよい。配電網において、例示的な特性は、平均又は合計の電力消費量、電気信号のピーク電圧、電力サージ、及び負荷変動を含むが、これらに限定されない。ノード160は、収集されたデータを、メッシュネットワーク104を介して、例えばルートノード114に送信する。
【0017】
ネットワーク140のルートノード114は、ノード160と通信して所定の動作、例えば、ノード160を管理すること、ノード160からデータを収集すること、また、ヘッドエンドシステム104にデータを転送することを行うように構成されてもよい。ルートノード114もまた、それ自体でデータを測定及び処理するノードとして機能するように構成されてもよい。ルートノード114は、ヘッドエンドシステム104と通信することができるパーソナルエリアネットワーク(personal area network:PAN)コーディネータ、ゲートウェイ、又は他の任意の装置であってもよい。ルートノード114は、生成及び収集されたデータを、インターネット、イントラネット、又は他の任意のデータ通信ネットワークのような他のネットワーク170を介して、最終的にヘッドエンドシステム104に送信する。ヘッドエンドシステム104は、ルートノード114からデータストリーム又はメッセージを受信する中央処理システムとして機能してもよい。ヘッドエンドシステム104、又は、公益事業会社に関連付けられた他のシステムは、請求書発行、性能分析、又はトラブルシューティングのような様々な目的で、収集されたデータを処理又は分析してもよい。
【0018】
図1は特定のネットワークトポロジー(例えば、宛先指向有向非循環グラフ(destination oriented directed acyclic graph:DODAG)ツリー)を示すが、他のネットワークトポロジーもまた可能である(例えば、リングトポロジー、メッシュトポロジー、スタートポロジーなど)ことが理解されるべきである。図1のトポロジーが、データパケット112を送信するために各ノードによって使用される一次経路を示すことがさらに理解されるべきである。下記で詳述するように、各ノード160は、異なる経路に各々関連付けられた親ノードのリストを維持してもよい。タイムクリティカルメッセージを送信する場合、ノード160は、これらの異なる経路を、それらの関連付けられたRTTに関して検査し、送信のために、最短のRTTを有する経路を選択してもよい。選択された経路は、図1に示す一次経路と同じであってもよく、又は、異なってもよい。
【0019】
図2Aは、本開示の所定の態様に係る、各ノード160及びルートノード114の間のRTTを推定するための、メッシュネットワーク140におけるノード160のメッシュネットワーク階層と、ノード160間の相互作用との例を示す。下記では、子ノードは、少なくとも1つの親ノードを有する、メッシュネットワーク140における任意のノード160を示す。図2Aに示す実施例において、子ノードEは、その親ノードA、D、又はCを介して、ルートノード114にデータを送信してもよい。ノードAはルートノード114と直接的に通信し、ノードD及びCは、それらの親ノードBを介して、ルートノード114と通信してもよい。子ノードEは、(例えば、LQI又はETXを用いて定義された目的関数に基づいて)ノードDがその一次親であると以前に決定した。このように、一次ノードDに関連付けられた経路(すなわち、ノードEからノードD及びBを介してルートノード114に至る経路)は、子ノードEにおいて取得された測定データ、又は、タイムクリティカルではない他のデータのような、通常データ202を送信するための一次経路である。ノードA及びCは、子ノードEのバックアップ親ノードである。
【0020】
子ノードEが、ルートノード114に送信すべきタイムクリティカルメッセージ222が存在すると決定した場合、子ノードEは、その親ノード、すなわち、この実施例ではノードA、C、及びDの各々に関連付けられた経路のRTTを評価することで、最短のRTTを有する毛色を発見してもよい。タイムクリティカルメッセージ222は、できるだけ早くルートノード114に送信されるべきであると子ノードEによって決定された任意のメッセージであってもよい。言いかえると、タイムクリティカルメッセージ222に関して、短い待ち時間は、ルーティングコスト又はリンク品質のような他の目的よりも高い優先度を有する。タイムクリティカルメッセージ222は、リソース分配ネットワーク又はメッシュネットワークに関連付けられた問題を示すメッセージであってもよい。例えば、問題は、スマートグリッドにおける電力供給停止のような、リソース分配ネットワークの所定のエリアにおける供給停止であってもよい。タイムクリティカルメッセージ222はまた、リソース分配ネットワーク又はメッシュネットワークにおける装置に関連付けられた問題又は機能不全を示すメッセージを含んでもよい。例えば、配電装置の重要な装置が機能を停止した場合、タイムクリティカルメッセージ222は子ノードEによって生成されてルートノード114に送信されてもよい。タイムクリティカルメッセージ222がルートノード114に短い待ち時間で送信可能である場合、ルートノード114は、タイムクリティカルメッセージ222に示された問題に対処することに責務を有するエンティティ(例えばユーティリティ)に関連付けられたシステムにそれを転送し、問題を迅速に解消させてもよい。
【0021】
最短のRTTを有する経路を決定するために、子ノードEは、各親ノードに関連付けられた経路に関するRTTのリストを含む親情報206を維持してもよい。子ノードEは、時々、これらのRTTを計算及び更新してもよい。例えば、子ノードEは、子ノードEによって親ノードを介してルートノード114に送信されたユニキャストメッセージ212を用いて、親ノードに関連付けられた経路に関するRTTを計算してもよい。子ノードEは、ユニキャストメッセージ212を送信したときのタイムスタンプと、ユニキャストメッセージ212の肯定応答メッセージ214を受信したときのタイムスタンプとを記録してもよい。この経路に関するRTTは、これらの2つのタイムスタンプ間の差として決定されてもよい。このように、異なる親ノードに関連付けられた異なる経路のRTTを計算してもよい。さらに、各経路に沿った中間ノードの各々もまた、ユニキャストメッセージ212を転送するタイムスタンプと、対応する肯定応答メッセージ214を受信するタイムスタンプとを記録し、中間ノードにおいて観察される対応する経路のRTTを計算してもよい。
【0022】
ユニキャストメッセージ212は、選択された親を介して子ノードEからルートノード114に送信され、ルートノード114による応答を必要とする、任意のユニキャストメッセージであってもよい。例えば、ユニキャストメッセージ212は、ルートノード114に対するpingメッセージであってもよい。メッシュネットワーク140が、損失のある媒体のルーティングプロトコル(RPL)を実装するように構成される場合、ユニキャストメッセージ212は、宛先広告オブジェクト(destination advertisement object:DAO)メッセージを含んでもよい。DAOメッセージは、メッシュネットワーク140に沿って上方に宛先情報を伝搬させるために使用される。非格納モードでは、DAOメッセージはルートノード114にユニキャストされる。DAOメッセージは、DAOの送信者に宛先広告肯定応答(DAO-ACK)メッセージを返信するように、その宛先によって肯定応答されてもよい。
【0023】
各経路に関するRTTを計算するために、ノードEは、メッシュネットワーク140におけるDAO頻度に基づいて決定される一定の間隔で、すべての親を介してDAOメッセージに212を送信してもよい。DAOメッセージの各々について、ルートノード114は、DAOメッセージ212を送信するために用いた同じ経路に沿って、DAO-ACKメッセージ214をノードEに返送する。DAO-ACKメッセージを受信した後、ノードEは、前述したように、送信時間及び受信時間の間の差として各経路のRTTを計算する。このRTTは、DAOメッセージが送信されてDAO-ACKメッセージが受信されるごとに更新されてもよい。
【0024】
いくつかの実施例では、発信ノード、この実施例ではノードEは、ネットワークにおいて一意的に識別できるように、DAOメッセージのIPv6拡張ヘッダ又はホップバイホップ(hop-by-hop:HBH)オプションにおいて、シーケンス番号を追加してもよい。例えば、シーケンス番号を含むために、新たなIPv6拡張ヘッダが追加されてもよい。新たなIPv6拡張ヘッダは、下記のように、オプションデータを送信するために使用されるタイプ・長さ・値(type-length-value:TLV)フォーマットで定義されてもよい。
【0025】
・拡張ヘッダタイプ(1バイト)-新たな値はインターネット番号割当機関(Internet Assigned Numbers Authority:IANA)により定義及び登録されてもよい。
・ヘッダ拡張長さ-1バイト
・シーケンス番号-2バイト
【0026】
代替又は追加として、シーケンス番号は、IPv6ヘッダのHBHオプションに追加されてもよい。HBHオプションのフォーマットは下記に列挙される。
【0027】
・オプションタイプ
*ビット7及び6=0x00 ノードが認識しない場合には、このオプションをスキップすることを示す
*ビット5~0=新たなオプションタイプ。
・オプションデータ長-1バイト
・オプションデータ-2バイトのシーケンス番号
【0028】
ノードEは、シーケンス番号の開始番号として乱数を生成してもよく、後のDAOメッセージについては、シーケンス番号はシリアル順序でインクリメントする。
【0029】
シーケンス番号を用いることによって、ルートノード114への経路上における中間ノードは、拡張ヘッダ(新たなIPv6拡張ヘッダ、又は、既存のIPv6拡張ヘッダのHBHオプション)を検査して、タイミング情報とともに、拡張ヘッダに情報を格納してもよいいくつかの実施例では、中間ノードは、DAOメッセージのシーケンス番号と、ソースノード(この実施例ではノードE)のIPアドレスとを格納し、それらの組み合わせは、ネットワークにおけるDAOメッセージを一意的に識別することができる。
【0030】
DAO-ACKメッセージを返送する場合、ルートノード114は、同じシーケンス番号がDAO-ACKメッセージの拡張ヘッダに挿入されるように、パケットにソースルーティングヘッダを添付してもよい。DAO-ACKメッセージを受信する各中間ノード(例えば、ノードA、ノードB、ノードC、又はノードD)は、メッセージを受信したときのタイムスタンプを記録してもよい。中間ノードはさらに、DAO-ACKメッセージに含まれたシーケンス番号及びソースノードのIPアドレスが、中間ノードが以前に記録したものに対して一致するか否かを判断することで、DAOメッセージを送信するための対応するタイムスタンプを発見してもよい。したがって、中間ノードは、DAO-ACKメッセージを受信したときのタイムスタンプによって示される時間と、DAOメッセージを送信したときのタイムスタンプによって示される時間との間の差として、対応する経路に関するRTTを計算してもよい。
【0031】
ソースノードのメッセージを用いてルートノードに対する経路のRTTを計算するように中間ノードを構成することによって、中間ノードはRTT推定のためのそのユニキャストメッセージの個数を低減できるので、メッシュネットワーク140において送信されるメッセージの個数を低減することができる。このことは、ネットワーク帯域幅消費量を低減し、また、中間ノードにおける計算リソース消費量も低減する。さらに、上述の技術は後方互換性を有する。上で提案した新たなIPv6拡張ヘッダ又はHBHオプションを理解しないメッシュネットワーク140におけるノード160は、それらのフィールドにおける情報を無視し、通常どおりに機能してもよい。上述したものに加えて、パケットにシーケンス番号を追加するために他のメカニズムも使用可能であることに注意する。さらに、パケットは、DAOメッセージ以外のパケットであってもよい。
【0032】
再び図2Aを参照すると、異なる親ノードに関連付けられた経路に関する維持されたRTTに基づいて、子ノードEは、最短のRTTを有する経路を選択してタイムクリティカルメッセージ222を送信する。図2Aに示す実施例では、親ノードAに関連付けられた経路は最短のRTTを有し、したがって、子ノードEは、親ノードAを介してタイムクリティカルメッセージ222を送信する。ルートノード114からタイムクリティカルメッセージ222の肯定応答を受信した後、送信すべき他のデータが存在しない場合、ノードEはスリープモードに移行してもよい。送信される追加の通常データ202が存在する場合、子ノードEは、通常データ202を送信するために、その一次経路(図2Aでは、一次親ノードDに関連付けられた経路)へ戻すように切り換えてもよい。
【0033】
図2Bは、本開示の所定の態様に係る、子ノードの異なる経路に関するRTTを計算する他の例を示す。図2Bに示すノードのメッシュネットワーク階層は、図2Aにおけるものと同じであり、ここで、子ノードEは、3つの親ノード、ノードA、D、及びCを有する。ノードDは一次親であり、通常データ202をルーティングするために使用される。ノードA及びノードCは、バックアップ親ノードである。ノードEからルートノード114への様々な経路のRTTを計算するために、ノードEは、ノードEと、親ノードA、C、及びDの各々との間の経路のRTTを計算してもよい。子ノードからその親ノードiまでのRTTは、
【数1】
として示されてもよい。ここで、i=1,…,Nであり、Nは親ノードの合計個数である。ノードEはさらに、親ノードの各々からルートノード114までの経路のRTTを取得する。親ノードiからルートノード114までのRTTは、
【数2】
として示されてもよい。同じ親ノードiに関連する2つのRTTの和は、親ノードiを介するノードEからルートノード114へのRTTを提供しうる。すなわち、次式が得られる。
【0034】
【数3】
【0035】
【数4】
i=1,…,Nを計算するために、ノードEは、その親ノード、図2Bに示す実施例ではノードA、C、及びDの各々に近傍ユニキャストメッセージ232を送信し、メッセージを送信したときのタイムスタンプを記録してもよい。対応する親ノードからの応答を受信した場合、ノードEは、そのような応答を受信したときのタイムスタンプを記録する。ノードEはさらに、第2のタイムスタンプ及び第1のタイムスタンプにおいて指定された時間の間の差として、ノードE及び対応する親ノードの間のRTT、
【数5】
を計算してもよい。近傍ユニキャストメッセージ232は、近傍到達不能検出(neighbor unreachability detection :NUD)メッセージのような近傍発見メッセージであってもよい。近傍ユニキャストメッセージ232は、MAC層パケット又はIP層パケットであってもよい。
【数6】
を計算するためにMAC層肯定応答パケットが使用される場合、RTTは、送信された第1のMACパケットから測定される必要があり、すべての再試行を含む。
【数7】
を計算するためにIP返信が使用される場合、ノードEは、送信時間及びパケット詳細事項のような詳細事項を格納し、いったんIP返信が受信されると、RTTを計算する。
【0036】
親ノードiからルートノード114までのRTT、
【数8】
は、親ノードiから制御メッセージ252を介して取得されてもよい。例えば、親ノードiは、ルートノード114に対するそのRTTを計算した後、
【数9】
を、その子ノードに送信される制御メッセージ252に挿入してもよい。いくつかの実施例では、制御メッセージ252に挿入される
【数10】
は、親ノードiの一次親ノードを介する親ノードiからルートノード114までの経路(すなわち、親ノードiの一次経路)に関するRTTである。
【数11】
は、親ノードiによって計算される最新のRTT、又は、予め決められた時間期間にわたって親ノードiによって計算されるRTTの平均値であってもよい。メッシュネットワーク140がRPLプロトコルを実装するように構成される場合、制御メッセージは、例えば、DODAG情報オブジェクト(DODAG information object:DIO)メッセージであってもよい。親ノードiは、その子ノードにDIOメッセージをブロードキャストし、これにより、子ノードは親ノードiの情報を維持できるようになる。このように、DIOメッセージに
【数12】
を追加することによって、親ノードiの子ノードは、
【数13】
を受信することができ、これにより、子ノードは、次式により、親ノードiをするルートノード114へのそのRTTを計算できるようになる。
【0037】
【数14】
【0038】
RTT情報をDIOメッセージに追加するために、DIOメッセージに新たなオプションを追加してもよい。RPLによれば、DIOメッセージは有効なオプションを伝送してもよい。RPL仕様は、DIOメッセージが下記のオプションを伝送することを可能にする。
【0039】
0x00 Pad1
0x01 PadN
0x02 DAG計量コンテナ
0x03 ルーティング情報
0x04 DODAG構成
0x08 プレフィックス情報
【0040】
下記のように、新たなオプション、RTTオプションが追加され、他のオプションのようにTLVフォーマットで定義されてもよい。
【0041】
・オプションタイプ
*ビット7及び6=0x00 ノードが認識しない場合には、このオプションをスキップすることを示す
*ビット5~0=新たなオプションタイプ。
・オプションデータ長-1バイト
・オプションデータ-4バイト時間値
【0042】
いくつかの実施例では、RTTの値はミリ秒で表されてもよい。メッシュネットワーク140におけるノードは、RTT情報を取得するために、この新たなオプションを理解する必要があることに注意する。
【0043】
図2Bに示す実施例では、ノードAは、前述したように、ルートノード114へのMAC層又はIP層パケットを介して、RTTA_rootとして示される、ルートノード114へのそのRTTを計算してもよい。MAC層肯定応答又はIP層返信を受信したとき、ノードAは、応答を受信したときと、近傍ユニキャストメッセージを送信したときとの間の時間差を計算することで、RTTA_rootを計算してもよい。ノードBは、同様の方法で、ルートノード114へのRTT、RTTB_rootを計算してもよい。次いで、ノードA及びノードBは、上述したように、DIOメッセージ又は他の制御メッセージ252を介して、それらの各子ノードに対して、RTTA_root及びRTTB_rootを送信してもよい。
【0044】
ノードD及びノードCは、ノードAの場合と同様の方法で、各近傍ユニキャストメッセージ232をノードBに送信することで、ノードBに対するそれらの各RTT、RTTD_B及びRTTC_Bを計算してもよい。次いで、ノードDは、ルートノード114に対するそのRTTを、RTTD_B_root=RTTD_B+RTTB_rootとして計算してもよい。同様に、ノードCは、ルートノード114に対するそのRTTを、RTTC_B_root=RTTC_B+RTTC_rootとして計算してもよい。ノードD及びノードCは、計算されたRTTを、前述したように、制御メッセージ252を介してそれらの各子ノードに送信してもよい。
【0045】
異なる親ノードからの受信された制御メッセージ252を介して、ノードEは、親ノードAに係るRTTA_root、親ノードDに係るRTTD_B_root、及び親ノードCに係るRTTC_B_rootを含む、その親ノードの各々からルートノード114へのRTTを取得してもよい。ノードEは、親ノードの各々への近傍ユニキャストメッセージ232を介して、それ自体からこれらの親ノードの各々へのRTTを取得してもよい。これらの近傍ユニキャストメッセージ232に対する受信された応答に基づいて、ノードEは、それ自体から親ノードの各々へのRTT、RTTE_A、RTTE_D、及びRTTE_Cを計算してもよい。ノードEはさらに、次式のように、その親ノードの各々を介するルートノード114へのRTTを計算してもよい。
【0046】
RTTE_D_root=RTTE_D+RTTD_root
RTTE_C_root=RTTE_C+RTTC_root
RTTE_A_root=RTTE_A+RTTA_root
【0047】
上述の実施例は子ノードEに焦点を合わせているが、上述した動作は、メッシュネットワーク140におけるノード160であって、その親ノードのうちの1つを介してルートノード114にデータを送信するように構成された任意のノード160(例えば、ノードD又はノードC)によって実行されてもよいことが理解されるべきである。これらのノード160の各々は、同様に、各親ノードを介する各経路に関連付けられたRTTを含む、それらの各親ノードに関する親情報206を維持してもよい。
【0048】
さらに、上述の開示は、タイムクリティカルメッセージ222のために最短のRTTを有する経路が選択されることを説明しているが、短いRTTが信頼できる経路を保証するわけではない。このように、いくつかの実施例では、タイムクリティカルメッセージ222のために最良の経路を選択する場合、経路の信頼性も考慮される。そのように実施する際、タイムクリティカルメッセージ222を送信するノードは、タイムクリティカルメッセージ222を送信するための信頼できる経路に関連付けられた一組の候補親ノードを決定するために利用可能な任意の方法を使用可能である。信頼できる経路を選択する方法は、例えば、MRHOF(Minimum Rank with Hysteresis Objective Function)関数、LQI/ETXに基づく目的関数、又は無線ルーティングのために定義された他の任意のメカニズムに基づいてもよい。いったん信頼性基準に基づいて一組の候補親が選択されると、一組の候補親に対してRTT基準が適用されてもよい。短い応答時間を必要とするタイムクリティカルメッセージ222は、ノードから最短のRTTを有する親を介して送信されてもよい。
【0049】
図3は、本開示の所定の態様に係る、メッシュネットワーク140におけるタイムクリティカルメッセージ22の経路を最適化する処理300の例を示す。メッシュネットワーク140におけるノード160であって、その親ノードのうちの1つ(例えば、図2A及び2BのノードE、ノードD、又はノードC)を介してルートノード114にデータを送信するように構成された任意のノード160は、適切なプログラムコードを実行することによって、図3に示す動作を実施してもよい。例示の目的で、処理300について、図面に示す所定の実施例を参照して説明する。しかしながら、他の実施例も可能である。
【0050】
ブロック302において、処理300は、ノード160が、ノード160の一次親ノードを介して通常データ202を送信することを含む。一次親ノードは、LQI又はETXのような目的に基づいて、ノード160によって以前に選択されている。通常データ202は、例えば、ノード160において取得された測定データ、又は、タイムクリティカルではない他のデータを含んでもよい。
【0051】
ブロック304において、処理300は、タイムクリティカルメッセージ222が送信されるべきであるとノード160が決定することを含む。タイムクリティカルメッセージ222は、できるだけ早くルートノード114に送信されるべきであるとノード160によって決定された任意のメッセージであってもよい。例えば、タイムクリティカルメッセージ222は、メッシュネットワーク140、又は、メッシュネットワーク140に関連付けられたリソース分配ネットワークにおける問題を示すメッセージであってもよい。例えば、問題は、スマートグリッドにおける電力供給停止のような、リソース分配ネットワークの所定のエリアにおける供給停止であってもよい。タイムクリティカルメッセージ222はまた、リソース分配ネットワーク又はメッシュネットワークにおける装置に関連付けられた問題又は機能不全を示すメッセージを含んでもよい。例えば、配電装置のクリティカル装置が機能を停止する場合、タイムクリティカルメッセージ222が生成されてもよく、それは、問題に迅速に対処できるように、ノード160によってルートノード114にできるだけ早く送信される必要がある。
【0052】
送信すべきタイムクリティカルメッセージ222が存在しないとノード160が決定した場合、ノード160は、その一次親ノードを介して通常データ202を送信し続ける。送信すべきタイムクリティカルメッセージ222が存在するとノード160が決定した場合、処理300は、ブロック306において、タイムクリティカルメッセージ222を送信するための一組の候補親ノードを決定し、これらの候補親ノードに関連付けられた各経路のRTTを計算することを含む。いくつかの実施例では、ノード160は、MRHOF(Minimum Rank with Hysteresis Objective Function)関数、LQI/ETXに基づく目的関数、又は無線ルーティングのために定義された他の任意のメカニズムに基づく方法のような、信頼できる経路を決定するために利用可能な任意の方法をも用いて、一組の候補ノードを決定してもよい。例えば、一組の候補親ノードは、信頼性、予め決められたしきい値より高いこと、又は利用可能な経路のうちで最も高いランクを有すること、のような、目的測定値を有する関連付けられた経路を有するものとして選択されてもよい。一組の候補親ノードにおける各親ノードに関して、ノード160は、ノード160から親ノードを介してルートノード114までの経路のRTTを決定又は計算する。ノード106の親ノードに関連付けられた経路のRTTの計算に関する詳細事項を、図4及び図5に関連して下記に提供する。
【0053】
ブロック308において、ノード106は、タイムクリティカルメッセージ222を送信するために、一組の候補親ノードから親ノードを選択する。実施例では、ノード106は、タイムクリティカルメッセージ222を転送するために、親ノードとして最短のRTTを有する経路に関連付けられた親ノードを選択する。ブロック310において、処理300は、ノード106が、選択された親ノードを介してタイムクリティカルメッセージ222を送信することを含む。いくつかの実施例では、ノード106は、次の動作に進む前に、ルートノード114からタイムクリティカルメッセージ222の肯定応答を待機する。肯定応答が受信された後、ノード106は、送信する他のメッセージが存在しない場合にはスリープモードに移行してもよく、一次経路へ戻るように切り換えて、一次経路を介して通常データ202を送信し続ける。
【0054】
ここで図4を参照すると、図4は、本開示の所定の態様に係る、メッシュネットワーク104における様々なノード106によってRTTを計算するためのいくつかの処理400A、400B、及び400Cを示すいくつかのフロー図を含む。特に、処理400Aは、親ノードを介してルートノード114にメッセージを送信するように構成されたノード160の態様を示す。処理400Bは、ノード160からルートノード114までの経路における中間ノードの態様を示す。処理400Cは、ルートノード114の態様を示す。ノード160、中間ノード、及びルートノード114は、適切なプログラムコードを実行することで、処理400A、400B、及び400Cの動作をそれぞれ実施してもよい。処理400A、400B、及び400Cをまとめて下記に説明する。例示の目的で、処理400A、400B、及び400Cについて、図面に示す所定の実施例を参照して説明する。しかしながら、他の実施例も可能である。
【0055】
ブロック402において、処理400Aは、ノード160が、その親ノードのうちの1つを介してルートノード114にユニキャストメッセージ212を送信することを含む。ユニキャストメッセージは、子ノードEからルートノード114に送信され、ルートノードによる応答を必要とする、任意のメッセージであってもよい。例えば、ユニキャストメッセージは、ルートノード114に対するpingメッセージであってもよい。メッシュネットワーク140がRPLプロトコルを実装するように構成される場合、ユニキャストメッセージは、メッシュネットワーク140に沿って上方に宛先情報を伝搬するために使用されるDAOメッセージを含んでもよい。いくつかの実施例では、ノード160は、シーケンス番号を生成して、ユニキャストメッセージに、例えば、上で説明したようにユニキャストメッセージのヘッダに挿入する。シーケンス番号は、ノード160によって送信されたユニキャストメッセージを一意的に識別しうる。ノード160はさらに、ユニキャストメッセージを送信したときのタイムスタンプを記録する。
【0056】
ブロック412において、処理400Bは、親ノード、又は、ノード160からルートノード114までの経路における他の任意のノードのような中間ノードが、ノード160から送信されたユニキャストメッセージ212を受信することを含む。中間ノードは、ノード160の識別子、例えば識別子のIPアドレスとともに、ユニキャストメッセージのシーケンス番号を記録してもよい。ノード160の識別子と、ユニキャストメッセージのシーケンス番号との組み合わせは、メッシュネットワーク140におけるユニキャストメッセージを一意的に識別しうる。ブロック414において、処理400Bは、中間ノードが、受信されたユニキャストメッセージを経路上の次のノードに転送することを含む。中間ノードはまた、ユニキャストメッセージを転送したときのタイムスタンプを記録し、タイムスタンプをシーケンス番号及びノード識別子とともに格納する。
【0057】
ブロック422において、処理400Cは、ルートノード114がユニキャストメッセージを受信することを含む。ブロック424において、処理400Cは、ルートノード114が、同じ経路に沿ったノード160に肯定応答メッセージ214を返信することを含む。いくつかの実施例では、ルートノード114は、ユニキャストメッセージのシーケンス番号と、ノード160の識別子とを含むソースルーティングヘッダを用いて、肯定応答メッセージを送信する。
【0058】
ブロック416において、処理400Bは、中間ノードが、ルートノード114から送信された肯定応答メッセージを受信し、肯定応答メッセージを受信したときのタイムスタンプを記録することを含む。中間ノードはさらに、肯定応答メッセージからシーケンス番号とノード160の識別子とを抽出してもよい。ブロック418において、処理400Bは、同じ経路に沿ってノード160に肯定応答メッセージを転送することを含む。
【0059】
ブロック420において、中間ノードは、中間ノードからルートノード114までの経路の一部に関するRTTを計算する。そうするために、中間ノードは、肯定応答メッセージから抽出されたシーケンス番号及びノード識別子を、以前に記録されたシーケンス番号及びノード識別子に対して比較してもよい。一致する場合、中間ノードは、シーケンス番号及びノード識別子に関連付けられた転送タイムスタンプを検索する。中間ノードは、転送タイムスタンプによって指定された時間と、肯定応答メッセージを受信したときのタイムスタンプとの間の差を計算する。この差は、中間ノードからルートノード114までの経路のRTTを示す。
【0060】
中間ノードは、計算されたRTTを用いて、この経路に関するRTT情報を更新してもよい。例えば、中間ノードは、新たに計算されたRTTを用いて、この経路に関して格納された古いRTTを置き換えてもよい。代替として、中間ノードは、この経路に関するRTTとして、過去の時間期間にわたって取得された平均のRTTを計算してもよい。RTT情報を更新するために、経路に関するRTTを計算する他の方法を使用してもよい。
【0061】
ブロック404において、処理400Aは、ノード160が、その親ノードを含む中間ノードによって転送された肯定応答メッセージを受信することを含む。ノード160はさらに、肯定応答メッセージを受信したときのタイムスタンプを記録し、肯定応答メッセージからユニキャストメッセージのシーケンス番号を抽出する。ブロック406において、ノード160は、記録されたタイムスタンプに基づいて、ユニキャストメッセージをルートノード114に送信するために使用される経路に関するRTTを計算する。例えば、ノード160は、肯定応答メッセージから抽出されたシーケンス番号を、それが以前に記録したシーケンス番号に対して比較してもよい。一致する場合、ノード160は、シーケンス番号を含むユニキャストメッセージを送信したときのタイムスタンプを検索する。ノード160は、送信タイムスタンプによって指定された時間と、肯定応答メッセージを受信したときのタイムスタンプとの間の差を計算してもよい。この差は、ノード160から親ノードを介してルートノード114までの経路のRTTを示す。
【0062】
ノード160は、計算されたRTTを用いて、この経路に関するRTT情報を更新してもよい。例えば、ノード160は、新たに計算されたRTTを用いて、この経路に関して格納された古いRTTを置き換えてもよい。代替として、ノード160は、この経路に関するRTTとして、過去の時間期間にわたって取得された平均のRTTを計算してもよい。最近に計算されたRTTに基づいてRTTを更新するための他の方法が利用されてもよい。ブロック408において、ノード160は、他のユニキャストメッセージがルートノード114に送信されるべきか否かを決定する。例えば、ノード160は、RTT情報を更新するために、ユニキャストメッセージをルートノード114に送信するためのスケジュールをセットアップしてもよい。ノード160は、スケジューリングされた時間が満了する場合、他のユニキャストメッセージがルートノード114に送信されるべきであると決定してもよい。ユニキャストメッセージがDAOメッセージを含む実施例において、ノード160は、RPLプロトコルに従って他のDAOメッセージが送信される必要があると決定してもよい。他のユニキャストメッセージがルートノード114に送信されるべきであるとノード160が決定した場合、ノード160は、新たなユニキャストメッセージのために、処理400Aをブロック402から再び開始してもよい。
【0063】
図4に示す処理は、ノード160の1つの親ノードに関連付けられた1つの経路に関するRTTを計算するために使用される。各経路のRTTを取得するために、ノード160の各親ノードに関して同様の処理が実行されてもよい。それらの経路に沿った中間ノードは、処理400Bに類似した下記の処理によってユニキャストメッセージを転送して肯定応答メッセージを受信することに基づいて、ルートノード114に対するそれらの各RTTを計算してもよい。
【0064】
図5は、本開示の所定の態様に係る、メッシュネットワーク140におけるノード160からルートノード114までの経路に関するRTTを計算するためのいくつかの処理500A及び500Bを示すいくつかのフロー図を含む。特に、処理500Aは、親ノードを介してルートノード114にメッセージを送信するように構成されたノード160の態様を示す。処理500Bは、親ノードの態様を示す。ノード160及び親ノードは、適切なプログラムコードを実行することによって、処理500A及び500Bの動作をそれぞれ実施してもよい。処理500A及び500Bをまとめて下記に説明する。例示の目的で、処理500A及び500Bについて、図面に示す所定の実施例を参照して説明する。しかしながら、他の実施例も可能である。
【0065】
ブロック502において、処理500Aは、図2Bに関して先に詳述したように、ノード160が、その親ノードに近傍ユニキャストメッセージ232を送信することを含む。ノード160はさらに、近傍ユニキャストメッセージ232を送信したときのタイムスタンプを記録する。ブロック512において、処理500Bは、親ノードが、ノード160から近傍ユニキャストメッセージ232を受信することを含む。ブロック514において、親ノードは、近傍ユニキャストメッセージ232に対する肯定応答メッセージをノード160に返信する。ブロック504において、処理500Aは、ノード160が、肯定応答メッセージを受信し、肯定応答メッセージを受信したときのタイムスタンプを記録することを含む。図2Bに関連して上で説明したように、肯定応答メッセージを受信したときのタイムスタンプは、近傍ユニキャストメッセージ232がMAC層メッセージである場合には、すべてのMAC層再試行を含むように記録され、又は、近傍ユニキャストメッセージ232がIPメッセージである場合には、IP返信を受信する時間を含むように記録される。
【0066】
ブロック506において、ノード160は、近傍ユニキャストメッセージ232を送信するときに記録されたタイムスタンプと、肯定応答メッセージを受信するときに記録されたタイムスタンプにと基づいて、ノード160から親ノードまでのローカル経路に関するRTTを計算する。ノード160は、ローカル経路に関するRTTを、2つのタイムスタンプにおいて指定された時間の間の差として計算してもよい。
【0067】
ブロック516において、処理500Bは、親ノードが、制御メッセージ252をノードに送信することを含む。図2Bに関して上で詳述したように、制御メッセージ252は、親ノードの一次親ノードを介する親ノードからルートノード114までの経路(すなわち、親ノードの一次経路)に関するRTTを含んでもよい。ブロック508において、ノード160は、制御メッセージ252を受信し、制御メッセージ252から、ルートノード114に対する親ノードの一次経路のRTTを抽出する。ノード160はさらに、ブロック506において計算されたローカル経路のRTTと、制御メッセージ252から抽出されたRTTとの和として、親ノードを介するルートノード114に対する経路に関するRTTを計算する。
【0068】
図5に示す処理は、ノード160の1つの親ノードに関連付けられた1つの経路に関するRTTを計算するために使用される。各経路のRTTを取得するために、ノード160の他の親ノードに関して同様の処理が実行されてもよい。さらに、図5に示すノードの動作は所定の順序で説明しているが、これらの動作は、上述したものとは異なる順序で実行されてもよく、より少数又はより多数の動作が含まれてもよい。例えば、親ノードは、子ノード160から近傍ユニキャストメッセージ232を受信する前に、子ノード160に制御メッセージに252を送信してもよい。従って、近傍ユニキャストメッセージ232を送信する前に、制御メッセージ252に含まれるRTTの抽出が、子ノード160によって実行されてもよい。別の実施例では、親ノードは、子ノード160が近傍ユニキャストメッセージ232を介してローカルRTT推定を開始することよりも頻繁に、そのRTT情報を制御メッセージ252を介して子ノード160に送信してもよく、又はその逆に動作してもよい。
【0069】
上述の説明は図4及び図5の処理を別々に説明しているが、メッシュネットワークにおけるノードは、異なる経路のRTTを推定するために両方の処理を実施してもよい。同じ経路に関してこれらの2つ処理によって推定されたRTTは、任意の手段を介して組み合わされてもよい。例えば、ノードは、ある経路に関するRTTを決定するために、これらの2つ処理を介して取得されたRTTを平均してもよい。ノードはまた、2つの処理から得られたRTTの重み付けられた合計を使用してもよい。もう1つの実施例では、ノードは、これらの処理のうちの一方を介して取得されたRTTが他方の処理よりも新しい、より正確である、又は他の理由により、そのRTTを選択してもよい。
【0070】
例示的なノード
図6は、本願において説明したタイムクリティカルメッセージのための経路最適化を実装するために使用可能である、ノード160のような、例示的なノード600を示す。ノード600は、バス610を介して通信可能にそれぞれ接続された、プロセッサ602、メモリ604、及び送受信装置620を含んでもよい。ノード600の構成要素は、A/C電源によって、又は、バッテリー(図示せず)のような小エネルギー源によって、電力供給を受けてもよい。送受信装置620は、他のノードと通信するためのアンテナ608を含んでもよい(又は通信可能に接続されてもよい)。いくつかの実施例では、送受信装置は、信号を無線で送信及び受信する無線周波数(radio-frequency:「RF」)送受信機である。
【0071】
プロセッサは、マイクロプロセッサ、特定用途向け集積回路(application-specific integrated circuit:「ASIC」)、状態機械、フィールドプログラマブルゲートアレイ(field programmable gate array:「FPGA」)、又は他の適切な計算装置を含んでもよい。プロセッサは、任意個数の計算装置を含んでもよく、メモリ604のようなコンピュータ可読媒体に通信可能に接続されてもよい。プロセッサ602は、図3図5において説明した動作のような動作を実行するために、コンピュータ実行可能なプログラム命令を実行するか、又は、メモリに格納された情報にアクセスすることができる。命令は、任意の適切なコンピュータプログラミング言語で書かれたコードからコンパイラ及び/又はインタプリタによって生成されたプロセッサ固有の命令を含んでもよい。命令が実行される場合、それらは、本願において説明した動作のいずれかを実行するようにノード600を構成してもよい。メモリ604もまた、異なる親ノードに関連付けられた経路に関する計算されたRTTを含む親情報206のような情報を格納するように構成されてもよい。図6において、プロセッサ、メモリ、バス、及び送受信装置は、互いに通信する別個の構成要素として示すが、他の実装もまた可能である。ここに議論されたシステム及び構成要素は、任意の特定のハードウェアアーキテクチャ又は構成に限定されない。
【0072】
全体考察
特許請求の範囲に記載された主題についての詳細な理解を提供するために、本明細書において多数の特定の詳細事項を述べている。しかしながら、当業者は、特許請求の範囲に記載された主題がこれらの特定の詳細事項なしで実施されてもよいことを理解するであろう。他の例では、特許請求の範囲に記載された主題を不明瞭にしないように、通常の技術を有する者によって知られるであろう方法、装置、又はシステムについては詳述していない。
【0073】
本願において説明した特徴は、任意の特定のハードウェアアーキテクチャ又は構成に限定されない。計算装置は、1つ又は複数の入力を条件とした結果を提供する構成要素からなる任意の適切な装置を含んでもよい。適切な計算装置は、格納されたソフトウェア(すなわち、コンピュータシステムのメモリ上に格納されたコンピュータ可読命令)にアクセスする多目的のマイクロプロセッサに基づくコンピュータシステムを含み、このソフトウェアは、汎用の計算装置から本願の主題の1つ又は複数の態様を実装する特別な計算装置になるように計算システムをプログラミング又は構成する。計算装置のプログラミング又は構成に使用されるソフトウェアにおいて、本願に含まれる開示内容を実装するために、任意の適切なプログラミング、スクリプティング、他のタイプの言語、又は言語の組み合わせが使用されてもよい。
【0074】
本願において開示した方法の態様は、そのような計算装置の動作において実行されてもよい。上述の実施例において提示したブロックの順序は変更されてもよく、例えば、ブロックが並べかえられてもよく、組み合わされてもよく、及び/又はサブブロックに分割されてもよい。所定の複数のブロック又は複数の処理を並列に実行してもよい。
【0075】
本願における「~ように適応化される」又は「~ように構成される」の使用は、追加のタスク又はステップを実行するように適応化又は構成された装置を除外しない、オープンかつ包括的な用語を意図している。さらに、「~に基づく」の使用は、記載された1つ又は複数の条件又は値「に基づく」処理、ステップ、計算、又は他の動作が、実際に、記載したものを越える追加の条件又は値に基づいてもよいという点で、オープンかつ包括的であることを意図している。本願に含まれた見出し、リスト、及び番号は、説明の簡単化のみを目的とし、限定を意図していない。
【0076】
本願の主題をその特定の態様に関して詳述したが、当業者は、上述したことを理解することにより、そのような態様の変更、変形、及び等価物を容易に作成しうることが認識されるであろう。従って、本開示が限定ではなく例示の目的で提示され、当業者に容易に明らかになるように、本願の主題に係るそのような変更、変形、及び/又は追加を含むことを除外しないことは理解されるべきである。
図1
図2A
図2B
図3
図4
図5
図6
【国際調査報告】