(57)【特許請求の範囲】
【請求項１】
スマートメーター及びコンセントレーターからなるネットワークにおいてスマートメーターとコンセントレーターとの間でパケットをルーティングするときに破損したリンクを回避する方法であって、前記スマートメーター及び前記コンセントレーターは、通信リンクによって接続され、該方法は、
宛先指向非循環有向グラフ(ＤＯＤＡＧ)によって前記ネットワークを表すステップであって、前記グラフ内のノードは、前記スマートメーター及び前記コンセントレーターを表し、前記コンセントレーターは、前記ＤＯＤＡＧにおけるルートノード(ルート)であり、有向エッジは前記リンクを表すものと、
前記各ノードをランクに関連付けるステップであって、該ランクは、前記ＤＯＤＡＧの前記ルートに対する他のノードとの相対的な前記各ノードの位置を規定し、前記ルートは、前記ＤＯＤＡＧにおける全ての前記ノードの最低のランクを有し、前記ノードは、各子が子の親の全ての前記ランクよりも厳密に大きなランクを有しなければならない親子関係に基づいて前記ランクを保持し、前記ルートは親を有さず、前記ランクは真分数の形式であり、前記各ノードの前記ランクは、前記破損したリンクが検出された場合であっても決して増加せず、ループフリールーティングを可能にするものと、
ノードｉの前記ランクＲ(ｉ)＝(ｍ，ｎ)をＲ(ｉ)＝ｍ／ｎとして定義することであって、ここで、０≦ｍ≦ｎであり、ｍ及びｎは整数であり、０＜ｎであるものと、
任意の２つのランクＲ(ｉ)＝(ｍ，ｎ)及びＲ(ｊ)＝(ｐ，ｑ)について、分割演算を
ｓｐ(Ｒ(ｉ)，Ｒ(ｊ))＝ｓｐ((ｍ，ｎ)、(ｐ，ｑ))＝(ｍ＋ｐ)／(ｎ＋ｑ)
として定義することであって、該分割演算ｓｐ(Ｒ(ｉ)，Ｒ(ｊ))は、ランク(ｍ，ｎ)及び(ｐ，ｑ)を分割し、新たなランク(ｍ＋ｐ)／(ｎ＋ｑ)を生成し、ｍ／ｎ＜ｐ／ｑである場合に、ｍ／ｎ＜(ｍ＋ｐ)／(ｎ＋ｑ)＜ｐ／ｑとするものと、
を含み、
前記分割演算が、親へのリンクが破損したノードとルートとの間の、破損したリンクを回避するルーティングリングの経路上の任意のノードのランクを、当該ルーティングリングに沿って単調増加するように下げるために用いられる演算であり、
前記ステップは、前記スマートメーター及び前記コンセントレーター内のプロセッサにおいて実行される、スマートメーター及びコンセントレーターからなるネットワークにおいてスマートメーターとコンセントレーターとの間でパケットをルーティングするときに破損したリンクを回避するための方法。
【請求項２】
前記ルーティングは、低消費電力高パケット損失ネットワーク用ルーティングプロトコル(ＲＰＬ)を用いる、請求項１に記載の方法。
【請求項３】
前記スマートメーターは、少なくとも１つの前記コンセントレーターへの１つ又は複数の破損していないリンクを発見する、請求項１に記載の方法。
【請求項４】
前記ルーティングは、低消費電力高パケット損失ネットワーク用ルーティングプロトコル(ＲＰＬ)を用い、前記スマートメーターは、少なくとも１つの前記コンセントレーターへの１つ又は複数の破損していないリンクを発見し、前記発見することは、前記ＲＰＬの記憶モード及び非記憶モードに適用される、請求項１に記載の方法。
【請求項５】
前記パケットは、情報オブジェクト(ＤＩＯ)パケット、ＤＯＤＡＧ修復要求(ＤＲ−ＲＥＱ)パケット、及びＤＯＤＡＧ修復返答(ＤＲ−ＲＥＰ)パケットを含み、前記ＤＩＯパケットは、パケット送信機の前記ランクと、少なくとも１つの前記コンセントレーターへの１つ又は複数のリンクに関連付けられた最小コストとを格納する、請求項１に記載の方法。
【請求項６】
ランクＲ(ｉ)とＲ(ｊ)との間の前記新たなランクを、分子及び分母の双方を最大公約数によって除算することによって約分すること、
を更に含む、請求項１に記載の方法。
【請求項７】
前記ＤＩＯパケット及び前記ランク分割演算を用いて前記ＤＯＤＡＧを構築すること、
を更に含み、前記ＤＩＯパケットは、トリクルタイマーを用いて送信される、請求項１に記載の方法。
【請求項８】
前記ノードは、次の条件、すなわち、
(１)前記ＤＩＯパケット内のＤＯＤＡＧバージョン番号が、受信ノードのＤＯＤＡＧバージョン番号よりも大きいこと、及び
(２)前記ＤＩＯパケット内の前記ＤＯＤＡＧバージョン番号が、前記受信ノードの前記ＤＯＤＡＧバージョン番号に等しく、かつ前記ＤＩＯパケット内の前記ランクが前記受信ノードの前記ランクよりも低いこと、
のうちの一方が当てはまる場合にのみ、状態を更新する、請求項７に記載の方法。
【請求項９】
前記ＤＩＯパケットの送信は、前記ネットワークにおける全ての前記スマートメーターのノードが、前記ＤＩＯパケットを受信し、前記ＤＯＤＡＧの構築が完了するまで、それぞれの状態パラメーターを更新するまで、続く、請求項７に記載の方法。
【請求項１０】
ＤＯＤＡＧ修復要求(ＤＲ−ＲＥＱ)パケット及びＤＯＤＡＧ修復返答(ＤＲ−ＲＥＰ)パケットを用いて前記ＤＯＤＡＧをローカルに修復すること、
を更に含み、前記ＤＲ−ＲＥＱパケットは、特定のノードが前記ルートへの代替のルーティングリンクを発見する必要があるときに生成及び送信され、前記ＤＲ−ＲＥＰパケットは、前記特定のノードが、受信された前記ＤＲ−ＲＥＱパケット内の前記ランクよりも低いランクを有するときに生成及び送信され、前記ＤＲ−ＲＥＱパケットを受信した前記ノードは、前記ルートへの有向なルーティングリンクを有する、請求項１に記載の方法。
【請求項１１】
前記修復することは、記憶モードで行われる、請求項１０に記載の方法。
【請求項１２】
前記修復することは、非記憶モードで行われる、請求項１０に記載の方法。
【請求項１３】
特定のノードから特定の親への上方リンクが破損すると、前記特定のノードは、親集合から前記特定の親を削除し、記憶モードでパス無し宛先広告オブジェクト(ＤＡＯ)パケット送信をスケジューリングするか、又は非記憶モードでＤＡＯパケット送信をスケジューリングし、状態パラメーターを更新し、ＤＯＤＡＧ修復要求(ＤＲ−ＲＥＱ)パケットを生成及び送信して前記ルートへの代替的なルーティングリンクを発見する、請求項１に記載の方法。
【請求項１４】
前記ルートは、前記ＤＲ−ＲＥＱパケットを受信すると、前記ＤＲ−ＲＥＰパケットを生成し、記憶モードでの逆ルーティングテーブルを用いて又は非記憶モードでの送信元ルーティングを用いて、ローカルＤＯＤＡＧ修復を開始した前記ノードに前記ＤＲ−ＲＥＰパケットを送信する、請求項５に記載の方法。
【請求項１５】
特定のノードにおいて前記ＤＲ−ＲＥＱパケットを受信すると、該特定のノードは、該特定のノードの前記ランクが前記ＤＲ−ＲＥＱパケット内の前記ランクよりも大きい場合に、前記ＤＲ−ＲＥＱパケットを好ましい親に転送する、請求項５に記載の方法。
【請求項１６】
特定のノードは、前記ＤＲ−ＲＥＱパケットを受信すると、該特定のノードの前記ランクが前記ＤＲ−ＲＥＱパケット内の前記ランクよりも低く、かつ該特定のノードが前記ルートへの有効なルーティングリンクを有する場合に前記ＤＲ−ＲＥＰパケットを生成し、該特定のノードは、記憶モードで、逆ルーティングテーブルを用いることによって、ローカルＤＯＤＡＧ修復を開始した前記ノードへ下方に前記ＤＲ−ＲＥＰパケットを送信するか、又は該特定のノードは、非記憶モードで、好ましい親へ上方に前記ＤＲ−ＲＥＰパケットを送信する、請求項５に記載の方法。
【請求項１７】
特定のノードは、非記憶モードで上方に送信された前記ＤＲ−ＲＥＰパケットを受信すると、前記ＤＲ−ＲＥＰパケットを好ましい親に転送し、前記ルートは、非記憶モードで上方に送信された前記ＤＲ−ＲＥＰパケットを受信すると、前記ＤＲ−ＲＥＰパケットの方向を変更し、送信元ルーティングを用いて、前記ＤＲ−ＲＥＰパケットを、ローカルＤＯＤＡＧ修復を開始した前記ノードへ下方に送信する、請求項５に記載の方法。
【請求項１８】
特定のノードは、下方に送信された前記ＤＲ−ＲＥＰパケットを受信すると、該ＤＲ−ＲＥＰパケットを更新し、記憶モードでは逆ルーティングテーブルを用いて又は非記憶モードでは送信元ルーティングを用いることによって、ローカルＤＯＤＡＧ修復を開始した前記ノードへ下方に転送し、前記特定のノードは、前記ランクが前記ルートから任意のノードへのルーティングリンクに沿って単調増加するように前記ランクを下げる、請求項５に記載の方法。
【請求項１９】
ローカルＤＯＤＡＧ修復を開始した前記ノードは、前記ＤＲ−ＲＥＰパケットを受信すると、前記ルートへの代替のルーティングリンクを発見し、前記ＤＯＤＡＧはローカルに修復される、請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、包括的には、無線センサーネットワークにおけるパケットのルーティングに関し、特に、破損したリンクを有するスマートメーターネットワークにおけるパケットのルーティングに関する。
【背景技術】
【０００２】
スマートメーターは、消費者による利用設備、例えば、電気、暖房、ガス、及び水道の使用を監視する。通常、スマートメーターは、ネットワーク又はグリッドを介して利用設備提供者と通信する。このネットワーク又はグリッドは、おそらく、数百万個のスマートメーターを備えることができる。スマートメーターは、利用設備のオン又はオフ、使用量情報の記録、サービス停止、無断使用の検出、利用設備消費の制御、及び支払いの管理を行うことができる。
【０００３】
スマートメーターは、利用設備提供者と確実かつ安全に通信しなければならない。有線又は無線のメッシュネットワークを用いることができる。複数のプロトコル、例えば、光通信用のＡＮＳＩ  Ｃ１２．１８、ＡＮＳＩ  Ｃ１２．１９、及びＡＮＳＩ  Ｃ１２．２１、並びにＩＥＥＥ８０２．１５．４、ＩＥＥＥ  Ｐ１９０１．２、及びＩＥＥＥ８０２．１１が知られている。欧州連合は、ＩＥＣ６１１０７及びＩＥＣ６２０５６を用いる。日本国では、省エネルギー(Energy Conservation)が、スマートメーター化、並びに公共の利用設備及び私的な利用設備の推進に関与している。
【０００４】
スマートメーターは、１つ又は複数のコンセントレーターを介して利用設備提供者に接続することができる。コンセントレーターは、スマートメーターから計測情報を受信し、この情報を、利用設備を制御又は監視するための提供者に転送する。コンセントレーターは、管理の目的で制御パケットをスマートメーターに送信することもできる。
【０００５】
スマートメーターは、ＺｉｇＢｅｅ無線等のより低消費電力高パケット損失(low power and lossy)送受信機を装備することができ、比較的大きな幾何学的領域、例えば、国全体に展開される。したがって、スマートメーター及びコンセントレーターは、大規模無線ネットワークを形成し、このネットワークでは、コンセントレーターが当該ネットワークを維持する。
【０００６】
そのような大規模無線ネットワークでは、送信元ノード(送信元)と宛先ノード(宛先)とが１ホップの近傍ノードでない場合に、データパケットを送信元ノードから宛先ノードに複数のホップ通信によって中継しなければならない。したがって、パケットの最適なルーティングが最も重要である。なぜならば、ネットワークは、計測情報の送信及び制御パケットの送信の双方に高い信頼性及び低いレイテンシーを必要とするからである。
【０００７】
移動アドホックネットワーク及び無線センサーネットワークにおける複数のルーティング方法が知られている。しかしながら、ほとんどの方法は、比較的小さなネットワークにおけるポイントツーポイント通信用に設計されており、したがって、数個の専用データコンセントレーターしかないスマートメーターネットワークには適していない。
【０００８】
１つのルーティング方法は、インターネットエンジニアリングタスクフォース(ＩＥＴＦ：Internet Engineering Task Force)によって開発中の低消費電力高パケット損失ネットワーク用ルーティングプロトコル(ＲＰＬ：Routing Protocol for Low Power and Lossy Networks)である。ＲＰＬは、スマートメーターネットワーク等の大規模な低消費電力高パケット損失ネットワーク用に設計されている。
【０００９】
ＲＰＬでは、ノードは、１つ又は複数の宛先指向非循環有向グラフ(ＤＯＤＡＧ：Destination Oriented Directed Acyclic Graphs)に編成される。ＤＯＤＡＧ内では、単一の宛先ノードがＤＯＤＡＧのルートであり、このＤＯＤＡＧルートノード(コンセントレーター)が、ネットワークにおいて生成された情報を収集し、必要なときに、ネットワークの外部に情報をルーティングする。ＲＰＬは、ＤＯＤＡＧルートにおけるポリシーから構成されるとともにこのポリシーによって制御されるような必要なパラメーターを指定するＤＯＤＡＧ情報オブジェクト(ＤＩＯ：DODAG Information Object)パケットを用いて、ＤＯＤＡＧ構造を構築及び維持する。
【００１０】
ランクは、ＤＯＤＡＧの構築及び維持のための、ＤＩＯパケット内のパラメーターのうちの１つである。ノードのランクは、ＤＯＤＡＧルートに対する他のノードとの相対的なノードの位置を規定する。各ノードは、それ自身のランクを保持する。ＤＯＤＡＧルートノードは、ＤＯＤＡＧ内の全てのノードの中で最低のランクを有する。ノードは、子がその親の全てのランクよりも厳密に大きなランクを有しなければならない親子関係に基づく自身のランクを保持する。ＤＯＤＡＧルートノードは親を有しない。
【００１１】
ノードは、同じＤＯＤＡＧ内の近傍ノードから複数のＤＩＯパケットを受信することができる。
【００１２】
ＤＯＤＡＧに加わるために、ノードは、ＤＩＯパケット送信機のサブセットを自身の親として選択し、目的(コスト)関数を用いて自身のランクを求める。ノードは、自身の全ての親の中から、１つの親を、コンセントレーターへの上方経路に沿った次のホップノードとして用いられる自身の好ましい親として選択する。
【００１３】
スマートメーターはエネルギー制約を受けないものと仮定される。その代わり、電気メーターが、第一にコストによって決まり、第二に電力消費によって決まるハードウェアの制約及び通信容量の制約を有する。その結果、展開は、メモリサイズ、計算パワー、及び通信能力の観点から大幅に変動する可能性がある。この理由から、ＲＰＬ記憶モード又はＲＰＬ非記憶モードの使用は、特定の展開向けのものとなる。
【００１４】
スマートメーターがメモリ制約を受け、ホップバイホップルーティングをサポートするのに必要な経路テーブルを十分に記憶することができないとき、ＲＰＬ非記憶モードが好ましい。ノードがそのようなルーティングテーブルを記憶することができる場合、記憶モードの使用によって、オーバーヘッド及び経路修復レイテンシーの削減がもたらされる場合がある。しかしながら、高密度環境では、経路を記憶することは困難になる可能性がある。
【００１５】
したがって、下方経路のＲＰＬサポートが、ＤＩＯパケット内の動作モード(ＭＯＰ：Mode of Operation)によって決定される。ＭＯＰは、ＤＯＤＡＧルートによって構成され、他のノードが変更することができない。
【００１６】
ＭＯＰは、ＲＰＬが、下方経路を可能にすることができないか、又は下方経路においてネットワーク内ルーティングテーブルを用いて記憶モードによって下方経路をサポートすることができないか、又は下方経路においてＤＯＤＡＧルートからの送信元ルーティングを用いて非記憶モードによって下方経路をサポートすることができないように、３つのオプションを有する。
【００１７】
非循環有向構造は、ＲＰＬにおける鍵である。非循環構造は、任意のノードのランクが、その親ノードの全てのランクよりも厳密に大きい限り保証される。ノードは、自身の新たなランクが自身の親の全てのランクよりも大きいことが維持される限り、自身のランクを減少させることが安全である。一方、ランクの増加は、ＤＯＤＡＧ内にルーティングループを引き起こす可能性がある。
【００１８】
従来のネットワークでは、破損したリンクは、ループを引き起こす可能性がある。破損したリンクが検出された後、ノードは、無限大のランクを広告することができる。この無限大ランク広告が喪失された場合、他のノードは、この広告を受信せず、パケットは、ループを無限に循環する。
【００１９】
ＲＰＬは、ループを解消するためのメカニズムを提供するが、このメカニズムは、ルーティングループそのものよりもはるかに大きな問題を引き起こす可能性があることが知られている。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
したがって、破損したリンクを有するスマートメーターネットワークにおけるループフリールーティングのランク計算方法を提供することが望ましい。また、ループを何ら作成しないローカルＤＯＤＡＧ修復方法を提供することも望ましい。
【課題を解決するための手段】
【００２１】
この発明の実施の形態は、ノードからなるスマートメーターネットワークにおけるループフリールーティングのためのランク計算方法を提供する。各ノードは、破損したリンクが検出された場合であっても、決して増加することのないランクを有する。その結果、考案されたランク計算方法は、ループが生じることを防止する。
【００２２】
考案されたランク計算方法によると、ノードは、ループが作成されないように親を選択する。
【００２３】
１つのコンセントレーターを用いたネットワークを有する実施の形態を説明する。しかしながら、これらの実施の形態は、複数のコンセントレーターを有するネットワークに適用可能である。
【００２４】
この方法は、分子が分母よりも小さい真分数としてランクを規定する。この方法は、破損したリンクが検出された場合であっても、更新中にノードのランクを決して増加させない。
【００２５】
この発明は、ループを決して引き起こさないローカル宛先指向非循環有向グラフ(ＤＯＤＡＧ)を修復する方法を提供する。この修復は、破損したリンクを本質的に回避する。
【００２６】
この修復方法は、ＲＰＬの記憶モード及び非記憶モードの双方に適用される。考案されたランク計算方法に基づくと、ノードは、ＤＯＤＡＧルートに向かう複数の破損していないルーティングリンクを発見することができる。
【図面の簡単な説明】
【００２７】
【図１】この発明の実施の形態によって回避されるスマートメーターネットワークの一部におけるルーティングループの概略図である。
【図２】この発明の実施の形態が動作するスマートメーターネットワークの概略図である。
【図３Ａ】この発明の実施の形態による変更されたＤＩＯパケットのフォーマットのブロック図である。
【図３Ｂ】この発明の実施の形態によるＤＯＤＡＧ修復要求パケットのフォーマットのブロック図である。
【図３Ｃ】この発明の実施の形態によるＤＯＤＡＧ修復返答パケットのフォーマットのブロック図である。
【図４】この発明の実施の形態によるＤＯＤＡＧ構築処理のフローチャートである。
【図５】この発明の実施の形態によるＤＯＤＡＧ構築の概略図である。
【図６Ａ】この発明の実施の形態による記憶モードにおける上方リンク破損ハンドリングプロセスのフローチャートである。
【図６Ｂ】この発明の実施の形態による非記憶モードにおける上方リンク破損ハンドリングプロセスのフローチャートである。
【図７Ａ】この発明の実施の形態による記憶モードにおけるＤＯＤＡＧ修復要求パケットを処理するフローチャートである。
【図７Ｂ】この発明の実施の形態による非記憶モードにおけるＤＯＤＡＧ修復要求パケットを処理するフローチャートである。
【図８Ａ】この発明の実施の形態による記憶モードにおけるＤＯＤＡＧ修復返答パケットを処理するフローチャートである。
【図８Ｂ】この発明の実施の形態による非記憶モードにおけるＤＯＤＡＧ修復返答パケットを処理するフローチャートである。
【図９】この発明の実施の形態によるローカルＤＯＤＡＧ修復の概略図である。
【図１０】この発明の実施の形態による破損したリンクを回避する概略図である。
【発明を実施するための形態】
【００２８】
図１は、ルーティングループを有するスマートメーターネットワークの一部分を示している。この部分は、関連付けられたランクｒがノード上にイタリック体で示されているノード１〜７と、コンセントレーターＣとを有する。ノード間のリンクは、有向エッジ(矢印)によって表される。リンク１０１は、好ましい親へのものであり、ノード１とコンセントレーターとの間のリンク１０２は破損し、リンク１０３は、破損したリンクに起因してループを引き起こす、好ましい親へのリンクである。
【００２９】
ここで、ランクは整数であることに留意されたい。この発明による方法は、これらの整数を、破損したリンクを検出したときにサイズが決して増加しない真分数になるように変更することができる。
【００３０】
破損したリンクのために、ノード１は、無限大のランクを広告することによって破損したリンクの「影響をなくす(poison)」ことができる。この無限大のランクの広告が喪失された場合、ノード２及び３は広告を受信しない。その結果、ノード２は、依然として、その好ましい親としてノード１を有する。次に、ノード３は、３の値を有する自身のランクを広告し、ノード１は、ノード３から広告を受信し、ノード３を自身の親として選択し、これによって、ノード１−３−２−１−…を無限に通るループが引き起こされる。
【００３１】
この発明の目的は、図１に示すように破損したリンクに起因したネットワーク内のループを防止することである。
【００３２】
したがって、考案されたランク計算方法によると、図１におけるノード１は、ノード２もノード３も自身の親として選択しない。その代わり、ノード１は、ノード４を自身の親として選択し、そのため、ループは引き起こされない。
【００３３】
図２は、ノードが自身のランクを決して増加させない、スマートメーターネットワークにおけるループフリールーティングにこの発明の実施の形態を用いるノードからなるスマートメーターネットワークを示している。
【００３４】
このネットワークは、スマートメーターＭ及びコンセントレーターＣを備える。これらのノードは、有線リンク又は無線リンクによって互いに接続されている。有線リンクは、電力線を介することができる。この方法は、任意の既知の無線通信標準規格に適用可能である。
【００３５】
コンセントレーターは、利用設備提供者Ｐと通信する。ノード及びリンクは、メッシュネットワークを形成する。各ノードは、関連付けられたランクｒを有する。
【００３６】
このスマートメーターネットワークでは、各スマートメーターは、消費者における情報を定期的に収集し、この情報を１つ又は複数のコンセントレーターに送信する。コンセントレーターは、この情報を受信するとともに、当該情報を、スマートメーターを制御又は監視するために提供者に転送することとを担当する。この情報は、以下でより詳細に説明するデータパケットで通信される。
【００３７】
コンセントレーターは、管理目的でスマートメーターに制御パケットを送信することもできる。スマートメーターは、通常、ＺｉｇＢｅｅ無線等の低消費電力高パケット損失送受信機を装備し、比較的大きな幾何学的領域に展開される。したがって、スマートメーター及びコンセントレーターは、当該コンセントレーターがネットワーク全体を維持する大規模メッシュ無線ネットワークを形成する。
【００３８】
そのような大規模無線ネットワークでは、送信元ノード(送信元)と宛先ノード(宛先)とが１ホップの近傍ノードでない場合に、パケットを送信元から宛先に複数のホップ通信によって中継しなければならない。このルーティングは、計測情報及び制御情報の双方に高い信頼性及び低いレイテンシーを必要とする。
【００３９】
この発明の実施の形態では、ネットワークは、宛先指向非循環有向グラフ(ＤＯＤＡＧ)によって表される。ＤＯＤＡＧでは、スマートメーターはノードによって表され、メーター間の通信リンクは有向エッジによって表される。ノード(スマートメーター)は、関連付けられたランクｒを有する。
【００４０】
コンセントレーターは、ＤＯＤＡＧにおけるルートである。ｉ、ｊ、ｋ、ｌ等のイタリック体のシンボルは、スマートメーターノードの識別子(ＩＤ)を示すのに用いられ、Ｃは、コンセントレーターの識別子を示す。ノードは、例えば、ネットワークにおいて一意である自身のＩＰｖ６アドレスによって識別することができる。
【００４１】
表１は、この発明の実施の形態によって用いられるノードｉの状態パラメーターを示している。
【００４２】
＜表１＞
Ｒ(ｉ)    ：真分数ｍ／ｎの形式の正負符号なし整数対(ｍ，ｎ)である、ノードｉ
のランク
Ｐ(ｉ)    ：ノードｉの親集合
ｐ＊(ｉ)  ：ノードｉが上方パケットを転送する親である、ノードｉの好ましい(＊)親
ｃ(ｉ)    ：      ホップカウント、遅延、予想送信時間等の、ノードｉからコンセントレ
ーターへの最小コスト
ｃ(ｉ，ｊ)：      ノードｉからノードｊへのコスト
ＶＮ(ｉ)  ：      ノードｉのＤＯＤＡＧバージョン番号
ＤＲ−ＳＮ(ｉ)：ノードｉのＤＯＤＡＧ修復連続番号
Ｔｐ      ：        親閾値であり、ノードはこの閾値未満の親をＰ(ｉ)に更に加えることが
できる                                
【００４３】
各スマートメーターノードｉは、親集合Ｐ(ｉ)に複数の親を保持することができる。各親ｐ∈Ｐ(ｉ)について、ノードｉは、ランクＲ(ｐ)も記録する。常に、ノードｉは、任意のノードｐ∈Ｐ(ｉ)についてＲ(ｉ)＞Ｒ(ｐ)であるような自身の親集合Ｐ(ｉ)を保持している。コンセントレーターノードＣについて、Ｐ(Ｃ)は、常に空、すなわち、|Ｐ(Ｃ)|＝０である。
【００４４】
パケットタイプ
低消費電力高パケット損失ネットワーク(ＲＰＬ)用のルーティングプロトコルの下では、複数のタイプのパケットが定義される。
【００４５】
この発明の実施の形態によれば、ＤＯＤＡＧ情報オブジェクト(ＤＩＯ)パケットのフォーマットが、この発明者らの真分数ランク定義に対応するように変更される。
【００４６】
図３Ａ〜図３Ｃに示すように、ＤＩＯパケットは変更され、２つの新たなパケットが、ローカルＤＯＤＡＧ修復目的のために定義される。これらの新たなパケットは、図３ＢのＤＯＤＡＧ修復要求(ＤＲ−ＲＥＱ：DODAG Repair Request)パケット及び図３ＣのＤＯＤＡＧ修復返答(ＤＲ−ＲＥＰ：DODAG Repair Reply)パケットとして定義される。
【００４７】
この明細書において定義するように、修復とは、一時的な場合もあるし恒久的な場合もある破損したリンクを実際に物理的に修復するものではない。むしろ、修復は、破損したリンクが回避されるようなＤＯＤＡＧ上の実行体(performer)である。
【００４８】
変更されたＤＩＯパケットは、図３Ａに示されている。このＤＩＯパケットでは、ランクＲは、従来技術におけるような正負符号なし整数から、正負符号なし整数対(ｍ，ｎ)、すなわち、ｍ／ｎによって定義される真分数に変更されている。この真分数では、分子は分母よりも小さい。コストｃが、ＤＩＯパケットに追加される。このコストは、ノードからＤＯＤＡＧルートへのリンク(複数の場合もある)の最小コストである。
【００４９】
図３Ｂは、ＤＲ−ＲＥＱパケットを示している。ＤＲ−ＲＥＱパケットは、ＩＤ−Ｑ、Ｒ−Ｑ、ＶＮ−Ｑ、ＳＮ−Ｑ、ＮＬ−Ｑ、及び他のオプションを含む。ＩＤ−Ｑは、ＤＲ−ＲＥＱパケット生成器の識別子であり、Ｒ−Ｑは、ＤＲ−ＲＥＱパケット生成器のランクであり、ＶＮ−Ｑは、ＤＲ−ＲＥＱパケット生成器のＤＯＤＡＧバージョン番号であり、ＳＮ−Ｑは、ＤＲ−ＲＥＱパケット生成器のＤＯＤＡＧ修復連続番号であり、ＮＬ−Ｑは、ＤＲ−ＲＥＱパケットによって移動されるノードリストであり、ＮＬ−Ｑは、非記憶モードでのみ存在する。
【００５０】
図３Ｃは、ＤＲ−ＲＥＰパケットを示している。ＤＲ−ＲＥＰパケットは、ＩＤ−Ｑ、Ｒ−Ｐ、ｃ、ＶＮ−Ｐ、ＳＮ−Ｑ、Ｄ、Ｒ−Ｑ、ＮＬ−Ｐ、及び他のオプションを含む。ＩＤ−Ｑは、ＤＲ−ＲＥＱパケット生成器の識別子又はＤＲ−ＲＥＰパケットの宛先ノード識別子であり、Ｒ−Ｐは、ＤＲ−ＲＥＰパケットが上方に進む場合には、ＤＲ−ＲＥＰパケット生成器のランクであり、ＤＲ−ＲＥＰパケットが下方に進む場合には、送信ノードのランクであり、ｃは、ＤＲ−ＲＥＰパケット送信ノードからＤＯＤＡＧルートへのリンク(複数の場合もある)の最小コストであり、ＶＮ−Ｐは、ＤＲ−ＲＥＰパケット生成器のＤＯＤＡＧバージョン番号であり、ＳＮ−Ｑは、ＤＲ−ＲＥＱパケット生成器のＤＯＤＡＧ修復連続番号であり、Ｄは、ＤＲ−ＲＥＰパケット進行方向を示し、Ｒ−Ｑは、ＤＲ−ＲＥＱパケット生成器のランクであり、ＮＬ−Ｐは、ＤＲ−ＲＥＱパケット内のＮＬ−Ｑと、上方ＤＲ−ＲＥＰパケットによって移動されるノードリストとを組み合わせたものである。Ｄ、Ｒ−Ｑ、及びＮＬ−Ｐは、非記憶モードでのみ存在する。
【００５１】
ランク定義及びランク分割演算
ノードｉについて、ランクＲ(ｉ)は、Ｒ(ｉ)＝ｍ／ｎであるような真分数として定義される。ここで、０≦ｍ≦ｎであり、ｍ及びｎは整数であり、０＜ｎである。ノードｉのランクは、Ｒ(ｉ)＝(ｍ，ｎ)として示される。
【００５２】
任意の２つのランクＲ(ｉ)＝(ｍ，ｎ)及びＲ(ｊ)＝(ｐ，ｑ)について、ランク分割演算が、ｓｐ(Ｒ(ｉ)，Ｒ(ｊ))＝ｓｐ((ｍ，ｎ)，(ｐ，ｑ))＝(ｍ＋ｐ)／(ｎ＋ｑ)として定義される。
【００５３】
この分割演算ｓｐ(Ｒ(ｉ)，Ｒ(ｊ))は、ランク(ｍ，ｎ)及び(ｐ，ｑ)を分割し、新たなランク(ｍ＋ｐ)／(ｎ＋ｑ)を生成する。
【００５４】
ｍ／ｎ＜ｐ／ｑである場合、ｍ／ｎ＜(ｍ＋ｐ)／(ｎ＋ｑ)＜ｐ／ｑである。
【００５５】
すなわち、分割演算ｓｐ(Ｒ(ｉ)，Ｒ(ｊ))は、ランクＲ(ｉ)とＲ(ｊ)との間の新たなランクを生成する。ランクは、約分可能である場合、分子及び分母の双方を最大公約数で除算することによって約分される。
【００５６】
考案されたランク定義の利点は、次の認識に基づいている。任意の２つの真分数ｍ／ｎとｐ／ｑとの間には、無限個の真分数が存在する。真分数のこの特徴を利用することによって、考案されたランク計算方法は、破損したリンクが検出されたときであっても、ノードのランクが決して増加しないことを保証する。すなわち、現在のランクが(ｍ，ｎ)＝ｍ／ｎである場合、新たなランクは(ｐ，ｑ)＝ｐ／ｑであり、ｐ／ｑはｍ／ｎよりも小さい。
【００５７】
真分数の形式のランクが増加することができない場合、ループフリー経路を保証することができる。
【００５８】
最初に、コンセントレーターノードＣについて、ｃ(Ｃ)＝０、ＶＮ(Ｃ)＝δ＞０、|Ｐ(Ｃ)|＝０であり、ランクＲ(Ｃ)は、Ｒ(Ｃ)＜(１，１)であるような任意の真分数とすることができる。例えば、Ｒ(Ｃ)＝(０，１)＝０／１が用いられる。スマートメーターノードｉについて、ｃ(ｉ)＝∞、ＶＮ(ｉ)＝０、Ｔｐ＝所定の値、ＤＲ−ＳＮ(ｉ)＝１、|Ｐ(ｉ)|＝０であり、ランクＲ(ｉ)は、Ｒ(Ｃ)＜Ｒ(ｉ)≦(１，１)であるような任意の真分数とすることができる。例えば、Ｒ(ｉ)＝(１，１)＝１／１が用いられる。
【００５９】
ＤＯＤＡＧ構築
ＤＯＤＡＧは、ＤＩＯパケットを用いることによって構築される。ＤＩＯパケットは、トリクルタイマー(trickle timer)を用いて送信される。トリクルタイミングによって、高パケット損失共有媒体(lossy shared medium)、例えば、低消費電力高パケット損失ネットワークにおけるノードは、エネルギー効率が良くスケーラブルな方法で情報を交換することが可能になる。不整合性は数ミリ秒で解消される。ノードが同意すると、ノードがパケットを非常に低い頻度で送信する、例えば、１時間当たり数パケットを送信するように、通信レートは指数関数的に減少される。ネットワークをパケットでフラッディングさせる代わりに、整合性を維持するのに十分なだけの少量のパケットが送信される。
【００６０】
最初に、スマートメーターノードは、ＤＩＯパケットを送信しない。なぜならば、ＤＩＯパケットの幾つかのフィールドは、ＤＯＤＡＧルートのみが構成することができるからである。ＤＩＯパケットは、全ＲＰＬノードへのリンクローカルマルチキャストを送信することによって送信される。コンセントレーターであるＤＯＤＡＧルートは、増加したＤＯＤＡＧバージョン番号を有するＤＩＯパケットを送信することによって新たなＤＯＤＡＧ構築プロセスを開始する。
【００６１】
ＤＩＯパケットを受信したことに応答して、ノードは、次の条件のうちの一方が当てはまる場合にのみ、自身の状態を更新することができる。
(１)ＤＩＯパケット内のＤＯＤＡＧバージョン番号が、受信ノードのＤＯＤＡＧバージョン番号よりも大きいこと、及び
(２)ＤＩＯパケット内のＤＯＤＡＧバージョン番号が、受信ノードのＤＯＤＡＧバージョン番号に等しく、かつＤＩＯパケット内のランクが、受信ノードのランクよりも低いこと。
【００６２】
ノードは、自身のランクが初期ランクであり、かつ上記条件のうちの一方が当てはまるとき、自身の状態パラメーターを更新する。
【００６３】
ノードは、自身の状態パラメーターを更新する場合、ＤＩＯパケットを構築して送信し、ＤＯＤＡＧバージョン番号、ランク、コスト等の自身の新たな状態パラメーターをコンセントレーター等に「広告する」ことができる。
【００６４】
スマートメーターノードは、自身の初期ランクを有するＤＩＯパケットを送信しない。このノードのランクは、自身の親のどのランクよりも厳密に大きい。
【００６５】
コンセントレーターが、より大きなＤＯＤＡＧバージョン番号を有するＤＩＯパケットを送信するとき、新たなＤＯＤＡＧが構築される。最初に、コンセントレーターノードＣは、全てのスマートメーターノードのバージョン番号よりも大きなＤＯＤＡＧバージョン番号を有するＤＩＯパケットを送信する。したがって、コンセントレーターノードＣは、全てのスマートメーターノードの初期ＤＯＤＡＧバージョン番号である０よりも大きなＤＯＤＡＧバージョン番号を有する自身の初期ＤＩＯパケットを送信する。
【００６６】
コンセントレーターの近傍ノード、すなわち、第１ホップの近傍ノードは、コンセントレーターによって送信されたＤＩＯパケットを受信すると、自身の状態パラメーターを更新して、自身のＤＩＯパケットを構築し、これらのＤＩＯパケットを送信する。なぜならば、受信したＤＩＯパケットは、より大きなＤＯＤＡＧバージョン番号を有するからである。
【００６７】
第２ホップの近傍ノードは、第１ホップの近傍ノードによって送信されたＤＩＯパケットを受信すると、自身の状態パラメーターを更新して、自身のＤＩＯパケットを構築し、これらのＤＩＯパケットを送信する。なぜならば、受信したＤＩＯパケットは、より大きなＤＯＤＡＧバージョン番号を有するからである。
【００６８】
このＤＩＯパケット送信プロセスは、ネットワーク内の全てのスマートメーターノードがＤＩＯパケットを受信して、自身の状態パラメーターを更新するまで続く。これは、ＤＯＤＡＧが完全に構築されるということである。
【００６９】
図４は、ＤＯＤＡＧを構築する方法を示している。この方法では、ノードｊが、Ｒ(ｊ)、ｃ(ｊ)、及びＶＮ(ｊ)を含むＤＩＯパケット送信し、ノードｉが、このＤＩＯパケットを受信する(４０１)。Ｒ(ｉ)、ＶＮ(ｉ)、Ｐ(ｉ)、及びｐ＊(ｉ)は、ノードｉによって保持された状態パラメーターである。
【００７０】
この図及び他の図において、方法のステップは、当該技術分野において知られているように、メモリ及び入力／出力インターフェースに接続されたプロセッサにおいて実行することができる。これらのプロセッサは、グラフ内のノードのうちのいずれかによって表されるコンセントレーター及びスマートメーターに位置することができる。
【００７１】
ノードｉは、ＤＩＯパケットを受信すると、受信したＤＩＯパケットが正しくないか否か又は既に受信されたものであるか否かを最初に調べる(４０２)。正しくない場合又は既に受信されたものである場合、ノードｉは、このＤＩＯパケットを廃棄する(４２０)。そうでない場合、ノードｉは、ノード識別子ｊがそれ自身の識別子ｉと等しいか否かを調べる(４０３)。等しい場合、ノードｉは、このＤＩＯパケットを廃棄する。なぜならば、このノードは、自身が送信したＤＩＯパケットを受信したからである。そうでない場合、ステップ４０４に進む。
【００７２】
ノードｉは、ＤＩＯパケット内のＤＯＤＡＧバージョン番号ＶＮ(ｊ)が、自身のＤＡＧバージョン番号ＶＮ(ｉ)よりも大きいか否かを調べる(４０４)。大きい場合、ノードｉは、自身の状態パラメーターをＶＮ(ｉ)＝ＶＮ(ｊ)、Ｐ(ｉ)＝{ｊ}、ｐ＊(ｉ)＝ｊ、Ｒ(ｉ)＝ｓｐ((１，１)，Ｒ(ｊ))、ｃ(ｉ)＝ｃ(ｊ)＋ｃ(ｉ，ｊ)として初期化し(４１０)、動作モード(ＭＯＰ)が記憶モードである場合、下方ルーティングテーブルを消去する。次に、ノードは、ＤＩＯパケットを送信するために自身のトリクルタイマーをリセットし(４１１)、ＲＰＬが下方ルーティングをサポートしているとき、宛先広告オブジェクト(ＤＡＯ)パケット送信もスケジューリングする(４１２)。大きくない場合、ステップ４０５に進む。
【００７３】
ノードｉは、ＶＮ(ｊ)＝ＶＮ(ｉ)であるか否かを調べる(４０５)。ＶＮ(ｊ)＝ＶＮ(ｉ)でない場合、ノードｉはＤＩＯパケットを廃棄する。ＶＮ(ｊ)＝ＶＮ(ｉ)であり、かつＲ(ｊ)≧Ｒ(ｉ)である場合(４０６)、ノードｉはＤＩＯパケットを廃棄する。ＶＮ(ｊ)＝ＶＮ(ｉ)であり、かつＲ(ｊ)＜Ｒ(ｉ)である場合、ノードｉは、受信したＤＩＯパケットが、自身の親集合、好ましい親、又はランクに何らかの変更を引き起こすか否かを調べる(４０７)。引き起こさない場合、ノードｉはＤＩＯパケットを廃棄する。引き起こす場合、ノードｉは、状態を更新する(４３０)。ノードｊが自身の親集合になく、かつ|Ｐ(ｉ)|＜Ｔｐである場合、ノードｉは、
【００７４】
【数１】
0005683755.tif 000002
【００７５】
となるように、ノードｊを自身の親集合に追加する。同じ最小コストを有する複数の親が存在する場合、ノードｉは、１つの好ましい親をランダムに選ぶことができ、ｃ(ｉ)＝ｃ(ｐ＊(ｉ))＋ｃ(ｉ，ｐ＊(ｉ))となる。次に、ノードｉは、新たな親ｊを反映するようにＤＡＯパケット送信をスケジューリングする(４３１)。ノードｊがＰ(ｉ)に既に存在する場合、ノードｉは、ＤＡＯパケット送信をスケジューリングすることなく必要な更新を行う。
【００７６】
図５は、一例のＤＯＤＡＧの構築を概略的に示している。コンセントレーターノードＣ及びメーターノード１〜６に加えて、図５は、ＤＩＯ伝播リンク５０１、好ましい親へのリンク５０２、及びこの親へのリンク５０３も示している。
【００７７】
最初に、ノード１〜６は、自身のランクを(１，１)に設定し、ＤＯＤＡＧバージョン番号を０に設定し、親集合は空に設定される。コンセントレーターノードＣは、自身のランクを(０，１)に設定し、ＤＡＧバージョン番号を１に設定し、自身の親集合を空に設定する。この概略図及び他の概略図において、ランク(ｍ，ｎ)は、ノードの付近に示されている。
【００７８】
コンセントレーターノードＣは、自身のＤＯＤＡＧバージョン番号１及びランク(０，１)を搬送するＤＩＯパケットを送信する。ノード１、２、及び３が、このＤＩＯパケットを受信する。このＤＩＯパケット内のＤＯＤＡＧバージョン番号は、ノード１、２、及び３のＤＯＤＡＧバージョン番号よりも大きいので、ノード１、２、及び３は、自身のＤＯＤＡＧバージョン番号を１に更新し、ランクをｓｐ((１，１)、(０，１))＝(１，２)に更新し、Ｃを好ましい親として選択する。
【００７９】
ノード１、２、及び３は、新たなＤＯＤＡＧバージョン番号及びランクを用いて、ＤＯＤＡＧバージョン番号１及びランク(１，２)を有する自身のＤＩＯパケットを送信する。ノード１、２、及び３からのＤＩＯパケットは、コンセントレーターＣによって廃棄される。なぜならば、このパケット内のＤＯＤＡＧバージョン番号は、コンセントレーターのＤＯＤＡＧバージョン番号に等しく、このＤＩＯパケット内のランクは、コンセントレーターのランクよりも大きいからである。
【００８０】
ノード１は、ノード２からのＤＩＯパケットを廃棄する。なぜならば、このＤＩＯパケット内のＤＯＤＡＧバージョン番号は、ノード１のＤＯＤＡＧバージョン番号に等しく、このＤＩＯパケット内のランクは、ノード１のランクに等しいからである。同様に、ノード２は、ノード１及び３からのＤＩＯパケットを廃棄し、ノード３は、ノード２からのＤＩＯパケットを廃棄する。ノード４は、最初に、ノード１からのＤＩＯパケットを受信する。
【００８１】
ＤＩＯパケット内のＤＯＤＡＧバージョン番号は、ノード４のものよりも大きいので、ノード４は、自身のＤＯＤＡＧバージョン番号を１に更新し、自身のランクをｓｐ((１，１)、(１，２))＝(２，３)に更新し、ノード１を好ましい親として選択する。次に、ノード４は、ノード２からのＤＩＯパケットを受信する。
【００８２】
ＤＩＯパケット内のＤＯＤＡＧバージョン番号は、ノード４のものに等しく、ＤＩＯパケット内のランクは、ノードのランクよりも小さいので、ノード４は、ノード２を自身の親集合内に追加する。同様に、ノード６は、ノード２及び３からのＤＩＯパケットを受信し、自身のＤＯＤＡＧバージョン番号を１に更新し、ランクをｓｐ((１，１)、(１，２))＝(２，３)に更新し、ノード２及び３を自身の親集合内に追加し、ノード３を好ましい親として選択する。ノード５は、ノード１、２、及び３からのＤＩＯパケットを受信する。
【００８３】
これらのＤＩＯパケット内のＤＯＤＡＧバージョン番号は、ノード５のものよりも大きいので、ノード５は、自身のＤＯＤＡＧバージョン番号を１に更新し、自身のランクをｓｐ((１，１)、(１，２))＝(２，３)に更新する。しかしながら、ノード５は、ノード２のみを自身の親及び好ましい親として選択する。ノード４、５、及び６も、自身のＤＩＯパケットを送信する。
【００８４】
これらのパケットは、それらの近傍ノードによって廃棄される。なぜならば、ＤＩＯパケット内のＤＯＤＡＧバージョン番号は、近傍ノードのＤＯＤＡＧバージョン番号に等しく、ノード４、５、及び６のランクは、近傍ノードのランクよりも低くないからである。
【００８５】
破損したリンクを回避するローカルＤＯＤＡＧ修復
上方リンクが破損したとき、この破損したリンクは、この発明の実施の形態によって回避される。ＤＯＤＡＧは、別の親に切り替えること及び／又はＤＲ−ＲＥＱパケットを送信することによって維持される。ＤＲ−ＲＥＱパケットは、ＤＲ−ＲＥＱパケット生成器によって、全ＲＰＬノードへのリンクローカルマルチキャストとして送信される。
【００８６】
リンクローカル近傍ノードは、ＤＲ−ＲＥＱパケットを受信すると、コンセントレーターへのリンクを有しない場合に、このＤＲ−ＲＥＱパケットを廃棄する。リンクローカル近傍ノードがコンセントレーターであるか、又はＤＲ−ＲＥＱパケット内のランクよりも低いランクを有するコンセントレーターへのリンクを有する場合に、この近傍ノードは、ＤＲ−ＲＥＰパケットを生成する。
【００８７】
リンクローカル近傍ノードがコンセントレーターへのリンクを有するとともに、そのランクがＤＲ−ＲＥＱパケット内のランク以上である場合、この近傍ノードは、ＤＲ−ＲＥＱパケットを自身の好ましい親に転送する。
【００８８】
この転送プロセスは、ＤＲ−ＲＥＱパケットが、コンセントレーターであるノード又はＤＲ−ＲＥＱパケット内のランクよりも低いランクを有するコンセントレーターへのリンクを有するノードに到達するまで続く。その後、ＤＲ−ＲＥＰパケットが生成される。コンセントレーターは、全てのノードの中で最低のランクを有するので、ＤＲ−ＲＥＱパケットは、少なくともコンセントレーターによって返答される。
【００８９】
記憶モードでは、ＤＲ−ＲＥＰパケット生成器は、逆ルーティングテーブルを用いることによってＤＲ−ＲＥＰパケットをＤＲ−ＲＥＱパケット生成器に送信する。非記憶モードでは、ＤＲ−ＲＥＰパケットは、コンセントレーターまで転送され、コンセントレーターは、次に、送信元ルーティングを用いることによってこのＤＲ−ＲＥＰパケットをＤＲ−ＲＥＱパケット生成器に送信する。
【００９０】
記憶モードにおける破損したリンクを回避するローカルＤＯＤＡＧ修復
図６Ａは、記憶モード用の上方リンク破損回避プロセスを示している。ノードｉとその親ノードｊとの間のリンクが破損した場合(６０１)、ノードｉは、自身の親集合Ｐ(ｉ)からノードｊを削除し(６０２)、そのため、Ｐ(ｉ)＝{ｋ|Ｒ(ｋ)＜Ｒ(ｉ)、ｋ∈Ｐ(ｉ)／{ｊ}}となる。更新された親集合Ｐ(ｉ)が空である場合(６０３)、ノードｉは、新たな親を発見するためにＤＲ−ＲＥＱパケットを送信する。
【００９１】
更新された親集合Ｐ(ｉ)が空でない場合、ノードｉは、パス無し(No-Path)ＤＡＯパケット送信をスケジューリングする(６１０)。次に、ノードｉは、ノードｊが自身の好ましい親ｐ＊(ｉ)であったか否かを調べ(６１１)、そうであった場合、ノードｉは、
【００９２】
【数２】
0005683755.tif 000003
【００９３】
であるような新たな好ましい親ｐ＊(ｉ)を選択し、ｃ(ｉ)を、ｃ(ｉ)＝ｃ(ｉ，ｐ＊(ｉ))＋ｃ(ｐ＊(ｉ))として更新する。
【００９４】
ノードｊがノードｉの好ましい親であるか否かにかかわらず、ノードｉは、|Ｐ(ｉ)|＜Ｔｐである場合に、追加の親を発見するためにＤＲ−ＲＥＱパケットを送信することができる。
【００９５】
ＤＲ−ＲＥＱパケットを記憶モードで送信するために、ノードｉは、自身のＤＲ−ＳＮ(ｉ)を１だけ増加させ、ＩＤ−Ｑ＝ｉ、Ｒ−Ｑ＝Ｒ(ｉ)、ＶＮ−Ｑ＝ＶＮ(ｉ)、及びＳＮ−Ｑ＝ＤＲ−ＳＮ(ｉ)を設定する。
【００９６】
ＤＲ−ＲＥＱパケット処理
図７Ａは、ノードｉがノードｊからＤＲ−ＲＥＱパケットを受信した(７０１)ときの処理を示している。図７Ａにおいて、ＩＤ−Ｑ、Ｒ−Ｑ、ＶＮ−Ｑ、及びＳＮ−Ｑは、ＤＲ−ＲＥＱパケット内のパラメーターであり、Ｒ(ｉ)、ＶＮ(ｉ)、及びＰ(ｉ)は、ノードｉの状態パラメーターである。
【００９７】
ＩＤ−ＱとＳＮ−Ｑとを比較することによって、ノードｉがＤＲ−ＲＥＱパケットを既に受信していると判断された場合(７０２)、ノードｉはこのパケットを廃棄する(７１１)。そうでない場合、ステップ７０３に進む。
【００９８】
ＤＲ−ＲＥＱパケット内のＶＮ−ＱがＶＮ(ｉ)に等しくない場合(７０３)、ノードｉはこのパケットを廃棄する。そうでない場合、ステップ７０４に進む。
【００９９】
ＤＲ−ＲＥＱパケットがノードｉの親のうちの１つによって、すなわちｊ∈Ｐ(ｉ)によって送信された場合、又はＤＲ−ＲＥＱパケットがその親によって、すなわちＩＤ−Ｑ∈Ｐ(ｉ)によって生成された場合、又はノードｉがＤＲ−ＲＥＱパケット生成器である、すなわちＩＤ−Ｑ＝ｉである場合(７０４)、ノードｉはこのパケットを廃棄する。そうでない場合、ステップ７０５に進む。
【０１００】
ノードｉがコンセントレーターノードである、すなわちｉ＝Ｃである場合(７０５)、ノードｉは、ＤＲ−ＲＥＱパケットを受理し、ＩＤ−Ｑ＝ＤＲ−ＲＥＱパケット内のＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(Ｃ)、ｃ＝ｃ(Ｃ)、ＶＮ−Ｐ＝ＶＮ(Ｃ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑを設定することによってＤＲ−ＲＥＰパケットを生成し(７２０)、このＤＲ−ＲＥＰパケットを、次のホップノードｊを介してノードＩＤ−Ｑに送信する。そうでない場合、ステップ７０６に進む。
【０１０１】
親集合Ｐ(ｉ)が空である場合(７０６)、ノードｉは、自身のＤＲ−ＲＥＱパケットを送信し(７１０)、受信したＤＲ−ＲＥＱパケットを廃棄する(７１１)。そうでない場合、ステップ７０７に進む。
【０１０２】
Ｒ(ｉ)＜Ｒ−Ｑである場合(７０７)、ノードｉは、ＤＲ−ＲＥＱパケットを受理し、ＩＤ−Ｑ＝ＤＲ−ＲＥＱパケット内のＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(ｉ)、ｃ＝ｃ(ｉ)、ＶＮ−Ｐ＝ＶＮ(ｉ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑを設定することによってＤＲ−ＲＥＰパケットを生成し(７２０)、このＤＲ−ＲＥＰパケットを、次のホップノードｊを介してノードＩＤ−Ｑに送信する。そうでない場合、ステップ７３０に進む。
【０１０３】
Ｒ(ｉ)≧Ｒ−Ｑである場合、ノードｉは、逆ルーティングエントリー(ＩＤ−Ｑ，ＳＮ−Ｑ，Ｒ−Ｑ，ｊ)をノードＩＤ−Ｑに対してそのＤＯＤＡＧ修復逆ルーティングテーブル内に記録し(７３０)、ＤＲ−ＲＥＱパケットをその好ましい親ｐ＊(ｉ)に送信する。
【０１０４】
上記パケット転送プロセスは、受信ノードが親を有しないとき、又はＤＲ−ＲＥＱパケットが、コンセントレーターであるノードｋ若しくは|Ｐ(ｋ)|≠０であるランクＲ(ｋ)＜Ｒ−Ｑを有するノードｋに到達したときにＤＲ−ＲＥＱパケットが廃棄される(７１１)まで続く。次に、ノードｋは、ＩＤ−Ｑ＝ＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(ｋ)、ｃ＝ｃ(ｋ)、ＶＮ−Ｐ＝ＶＮ(ｋ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑを設定することによってＤＲ−ＲＥＰパケットを生成し(７２０)、このＤＲ−ＲＥＰパケットを、ノードｋがＤＲ−ＲＥＱパケットを受信した次のホップノードを介してノードＩＤ−Ｑに送信する。
【０１０５】
ＤＯＤＡＧ修復パケット逆ルーティングテーブルは、最初、空に設定される。このテーブルは、ノードがＤＯＤＡＧに加わるときに消去される。
【０１０６】
ＤＲ−ＲＥＰパケット処理
図８Ａは、ノードｉがノードｊからＤＲ−ＲＥＰパケットを受信した(８０１)ときの処理を示している。図８Ａにおいて、ＩＤ−Ｑ、Ｒ−Ｐ、ＶＮ−Ｐ、及びＳＮ−Ｑは、ＤＲ−ＲＥＰパケット内のパラメーターであり、Ｒ(ｉ)、ＶＮ(ｉ)、Ｐ(ｉ)、ｐ＊(ｉ)、ｃ(ｉ)、及びＴｐは、ノードｉの状態パラメーターであり、Ｒ−Ｑは、ＤＲ−ＲＥＱパケット生成器のランクであり、ＤＯＤＡＧ修復逆ルーティングテーブルからのものである。
【０１０７】
ＶＮ−Ｐ≠ＶＮ(ｉ)であるか、又はＤＲ−ＲＥＰパケットが既に受信されていた場合(８０２)、ノードｉはパケットを廃棄する(８１１)。そうでない場合、ステップ８０３に進む。
【０１０８】
ＩＤ−Ｑ＝ｉ、すなわち、ノードｉがＤＲ−ＲＥＱパケット生成器であり、かつノードｊがＰ(ｉ)にない場合(８０３)、ノードｉは、|Ｐ(ｉ)|＜Ｔｐである場合に、ノードｊを、Ｐ(ｉ)＝{ｋ|Ｒ(ｋ)＜Ｒ(ｉ)、ｋ∈Ｐ(ｉ)∪{ｊ}}となるようにＰ(ｉ)に追加し(８１０)、ｐ＊(ｉ)及びｃ(ｉ)を
【０１０９】
【数３】
0005683755.tif 000004
【０１１０】
として更新する(８１１)。
【０１１１】
次に、ノードｉは、ノードｊが自身の親集合内に追加されるとき、ＤＡＯパケット送信をスケジューリングする。Ｄ−ＩＤ≠ｉである場合、ステップ８０４に進む。
【０１１２】
ノードｉが逆リンク(reverse link)上にない場合(８０４)、すなわち、エントリー(ＩＤ−Ｑ，ＳＮ−Ｑ，Ｒ−Ｑ，ｌ)がそのＤＯＤＡＧ修復パケット逆ルーティングテーブルにない場合、ノードｉはパケットを廃棄する(８１１)。そうでない場合、ステップ８０５に進む。
【０１１３】
Ｒ(ｉ)＜Ｒ−Ｑである場合(８０５)、ノードｉは、Ｒ−Ｐ＝Ｒ(ｉ)及びｃ＝ｃ(ｉ)を設定することによってＤＲ−ＲＥＰパケットを更新し、このＤＲ−ＲＥＰパケットを次のホップノードｌに転送する(８２０)。記憶モードでは、このケースは、ノードｉが、複数のノードによって生成された逆リンク上にある場合に生じる。ノードｉは、最初のＤＲ−ＲＥＰパケットを受信したとき、自身のランクを下げる。したがって、その後のＤＲ−ＲＥＰパケットは、Ｒ(ｉ)よりも大きなランクＲ−Ｑを搬送することができる。ノードｉが単一の逆リンク上にしかない場合、Ｒ(ｉ)≧Ｒ−Ｑは、ＤＲ−ＲＥＱパケットプロセス手順に基づいて真でなければならない。
【０１１４】
Ｒ(ｉ)≧Ｒ−Ｑである場合(８０５)、ノードｉは、ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)がオーバーフローするか否かを調べる(８０６)。オーバーフローしない場合、ノードｉは、自身のランクＲ(ｉ)をＲ(ｉ)＝ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)として減少させ、自身の親集合Ｐ(ｉ)をＰ(ｉ)＝{ｋ|Ｒ(ｋ)＜Ｒ(ｉ)、ｋ∈Ｐ(ｉ)}として更新する(８３０)。次に、ノードｉは、Ｒ−Ｐ＝Ｒ(ｉ)及びｃ＝ｃ(ｉ)を設定することによってＤＲ−ＲＥＰパケットを更新し(８３１)、このＤＲ−ＲＥＰパケットを次のホップノードｌに転送し、自身の親Ｐ(ｉ)が自身のランクの減少に起因した親の削除を介して変更された場合、パス無しＤＡＯパケット送信をスケジューリングする。
【０１１５】
ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)がオーバーフローする場合、ノードｉは、ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)が約分可能である場合にこれを最初に簡約する。１よりも大きな公約数がない場合、ノードｉは、インターネット制御メッセージプロトコル(ＩＣＭＰ：Internet Control Message Protocol)エラーパケットを送信する(８０７)。
【０１１６】
この発明の実施の形態によるランク分割演算の定義によって、ＤＲ−ＲＥＰパケット内のランクＲ−Ｐが、実際に、ＤＲ−ＲＥＰパケット生成器からＤＲ−ＲＥＰ送信ノードへのリンク上のノードの最大ランクであることを示すことは容易である。Ｒ−Ｐは、Ｒ−Ｑよりも常に小さい。したがって、ＤＲ−ＲＥＰパケットが、ＤＲ−ＲＥＱパケット生成器に到達したとき、ＤＲ−ＲＥＰパケット内のランクＲ−Ｐは、ＤＲ−ＲＥＱパケット生成器のランクであるＲ−Ｑよりも小さくなければならない。すなわち、ランクは、ＤＲ−ＲＥＰパケット生成器からＤＲ−ＲＥＱパケット生成器へのリンクに沿って単調増加する。その結果、これによって、ランクがコンセントレーターから任意のスマートメーターノードへのルーティングリンクに沿って単調増加することが保証される。
【０１１７】
非記憶モードにおける破損したリンクを回避するローカルＤＯＤＡＧ修復
図６Ｂに示すように、非記憶モードにおける上方リンク破損ハンドリングプロセスは、記憶モードにおけるものと類似している。
【０１１８】
１つの相違は、ノードｉが、自身の親集合Ｐ(ｉ)からノードｊを削除した後、Ｐ(ｉ)が空でない場合に、パス無しＤＡＯパケット送信の代わりにＤＡＯパケット送信をスケジューリングする(６１０’)ことである。
【０１１９】
他の相違は、非記憶モードでＤＲ−ＲＥＱパケットを送信するために、ノードｉが、自身のＤＲ−ＳＮ(ｉ)を１だけ増加させ、ＩＤ−Ｑ＝ｉ、Ｒ−Ｑ＝Ｒ(ｉ)、ＶＮ−Ｑ＝ＶＮ(ｉ)、ＳＮ−Ｑ＝ＤＲ−ＳＮ(ｉ)、及びＮＬ−Ｑ＝{ｉ}を設定することである。
【０１２０】
ＤＲ−ＲＥＱパケットの処理
図７Ｂは、ノードｉがノードｊからＤＲ−ＲＥＱパケットを受信した(７５１)ときの処理を示している。図７Ｂにおいて、ＩＤ−Ｑ、Ｒ−Ｑ、ＶＮ−Ｑ、ＳＮ−Ｑ、及びＮＬ−Ｑは、ＤＲ−ＲＥＱパケット内のパラメーターであり、Ｒ(ｉ)、ＶＮ(ｉ)、及びＰ(ｉ)は、受信ノードｉの状態パラメーターである。
【０１２１】
ＩＤ−ＱとＳＮ−Ｑとを比較することによって、ノードｉがこのＤＲ−ＲＥＱパケットを既に受信していると判断された場合(７５２)、このノードはこのパケットを廃棄する(７１１)。そうでない場合、ステップ７５３に進む。
【０１２２】
ＤＲ−ＲＥＱパケット内のＶＮ−ＱがＶＮ(ｉ)に等しくない場合(７５３)、ノードｉはこのパケットを廃棄する。そうでない場合、ステップ７５４に進む。
【０１２３】
ＤＲ−ＲＥＱパケットがノードｉの親のうちの１つによって、すなわちｊ∈Ｐ(ｉ)によって送信された場合、又はＤＲ−ＲＥＱパケットがその親によって、すなわちＩＤ−Ｑ∈Ｐ(ｉ)によって生成された場合、又はノードｉがＤＲ−ＲＥＱパケット生成器である、すなわちＩＤ−Ｑ＝ｉである場合(７５４)、ノードｉはこのパケットを廃棄する。そうでない場合、ステップ７５５に進む。
【０１２４】
ノードｉがコンセントレーターノードである、すなわちｉ＝Ｃである場合(７５５)、ノードｉは、ＤＲ−ＲＥＱパケットを受理し、ＩＤ−Ｑ＝ＤＲ−ＲＥＱパケット内のＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(Ｃ)、ｃ＝ｃ(Ｃ)、ＶＮ−Ｐ＝ＶＮ(Ｃ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑ、Ｄ＝ＤＯＷＮ、Ｒ−Ｑ＝ＤＲ−ＲＥＱパケット内のＲ−Ｑ、ＮＬ−Ｐ＝ＮＬ−Ｑ∪{Ｃ}を設定することによってＤＲ−ＲＥＰパケットを生成し(７６０)、このＤＲ−ＲＥＰパケットを、ＮＬ−Ｐを介した送信元ルーティングを用いてノードＩＤ−Ｑに送信する。そうでない場合、ステップ７５６に進む。
【０１２５】
ノードｉがコンセントレーターでなく、その親集合Ｐ(ｉ)が空である場合(７５６)、ノードｉは、ＤＲ−ＲＥＱパケットを送信し(７１０)、受信したＤＲ−ＲＥＱパケットを廃棄する。そうでない場合、ステップ７５７に進む。
【０１２６】
Ｒ(ｉ)＜Ｒ−Ｑである場合(７５７)、ノードｉは、ＤＲ−ＲＥＱパケットを受理し、ＩＤ−Ｑ＝ＤＲ−ＲＥＱパケット内のＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(ｉ)、ｃ＝ｃ(ｉ)、ＶＮ−Ｐ＝ＶＮ(ｉ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑ、Ｄ＝ＵＰ、Ｒ−Ｑ＝ＤＲ−ＲＥＱパケット内のＲ−Ｑ、ＮＬ−Ｐ＝ＮＬ−Ｑ∪{ｉ}を設定することによってＤＲ−ＲＥＰパケットを生成し(７５９)、このＤＲ−ＲＥＰパケットを自身の好ましい親ｐ＊(ｉ)に転送する。そうでない場合、ステップ７５８に進む。
【０１２７】
Ｒ(ｉ)≧Ｒ−Ｑである場合、ノードｉは、ＮＬ−Ｑ＝ＮＬ−Ｑ∪{ｉ}となるようにＮＬ−Ｑにｉを挿入する(７５８)ことによってＤＲ−ＲＥＱパケットを更新し、このＤＲ−ＲＥＱパケットを自身の好ましい親ｐ＊(ｉ)に転送する。
【０１２８】
上記転送プロセスは、受信ノードが親を有しないとき、又はＤＲ−ＲＥＱパケットが、コンセントレーターであるノードｋ若しくは|Ｐ(ｋ)|≠０であるランクＲ(ｋ)＜Ｒ−Ｑを有するノードｋに到達したときにＤＲ−ＲＥＱパケットが廃棄されるまで続く。次に、ノードｋは、ＩＤ−Ｑ＝ＤＲ−ＲＥＱパケット内のＩＤ−Ｑ、Ｒ−Ｐ＝Ｒ(ｋ)、ｃ＝ｃ(ｋ)、ＶＮ−Ｐ＝ＶＮ(ｋ)、ＳＮ−Ｑ＝ＤＲ−ＲＥＱパケット内のＳＮ−Ｑ、ｋ≠Ｃの場合にはＤ＝ＵＰ又はｋ＝Ｃの場合にはＤ＝ＤＯＷＮ、Ｒ−Ｑ＝ＤＲ−ＲＥＱパケット内のＲ−Ｑ、ＮＬ−Ｐ＝ＮＬ−Ｑ∪{ｋ}を設定することによってＤＲ−ＲＥＰパケットを生成し、ｋ≠Ｃの場合には自身の好ましい親ｐ＊(ｋ)にこのＤＲ−ＲＥＰパケットを転送し、又はｋ＝Ｃの場合にはＮＬ−Ｐを介した送信元ルーティングを用いることによってノードＩＤ−ＱにこのＤＲ−ＲＥＰパケットを送信する。
【０１２９】
ＤＲ−ＲＥＰパケット処理
ノードｉは、ノードｊからＤＲ−ＲＥＰパケットを受信する(８５１)。図８Ｂにおいて、ＩＤ−Ｑ、Ｒ−Ｐ、ＶＮ−Ｐ、ＳＮ−Ｑ、Ｄ、Ｒ−Ｑ、及びＮＬ−Ｐは、ＤＲ−ＲＥＰパケット内のパラメーターであり、Ｒ(ｉ)、ＶＮ(ｉ)、Ｐ(ｉ)、ｐ＊(ｉ)、ｃ(ｉ)、及びＴｐは、ノードｉの状態パラメーターである。
【０１３０】
ＶＮ−Ｐ≠ＶＮ(ｉ)であるか、又はＤＲ−ＲＥＰパケットが既に受信されていた場合(８５２)、ノードｉはパケットを廃棄する(８１１)。そうでない場合、ステップ８５３に進む。
【０１３１】
Ｄ＝ＵＰである、すなわち、ＤＲ−ＲＥＰパケットが上方に送信される場合(８５３)、ノードｉは、ｉ＝Ｃであるか否か、すなわち、ノードｉがコンセントレーターであるか否かを調べる(８６０)。そうである場合、ノードｉは、Ｄ＝ＤＯＷＮ、Ｒ−Ｐ＝Ｒ(Ｃ)、ｃ＝ｃ(Ｃ)、ＮＬ−Ｐ＝ＮＬ−Ｐ∪{Ｃ}に変更することによってＤＲ−ＲＥＰパケットを更新し、ＮＬ−Ｐを介した送信元ルーティングによってＤＲ−ＲＥＰパケットをノードＩＤ−Ｑに送信する(８６１)。
【０１３２】
ｉ≠Ｃであり、すなわち、ノードｉがコンセントレーターでなく、かつＰ(ｉ)が空でない場合(８７０)、ノードｉは、ＮＬ−Ｐ＝ＮＬ−Ｐ∪{ｉ}となるようにｉをＮＬ−Ｐ内に挿入する(８７２)ことによってＤＲ−ＲＥＰパケットを更新し、このＤＲ−ＲＥＰパケットを親ノードｐ＊(ｉ)に転送する。
【０１３３】
ｉ≠Ｃであり、かつＰ(ｉ)が空である場合、ノードｉは、ＤＲ−ＲＥＰパケットを廃棄し(８１１)、ＤＲ−ＲＥＱパケットを送信する(８７１)。
【０１３４】
Ｄ≠ＵＰ、すなわち、Ｄ＝ＤＯＷＮであり、かつＤＲ−ＲＥＰパケットが下方に送信される場合、ステップ８５４に進む。
【０１３５】
ＩＤ−Ｑ＝ｉであり、すなわち、ノードｉがＤＲ−ＲＥＱパケット生成器である場合において(８５４)、ノードｊがＰ(ｉ)内になく、かつ|Ｐ(ｉ)|＜Ｔｐである場合に、ノードｉは、Ｐ(ｉ)＝{ｋ|Ｒ(ｋ)＜Ｒ(ｉ)、ｋ∈Ｐ(ｉ)∪{ｊ}}となるようにノードｊをＰ(ｉ)内に追加し(８４０)、ｐ＊(ｉ)及びｃ(ｉ)を
【０１３６】
【数４】
0005683755.tif 000005
【０１３７】
として更新する。次に、ノードｉは、ノードｊが自身の親集合内に追加される場合、ＤＡＯパケット送信をスケジューリングする(８４１)。ＩＤ−Ｑ≠ｉである場合、ステップ８５５に進む。
【０１３８】
ノードｉが送信元ルーティングリンク上にない、すなわち、ノードｉがＮＬ−Ｐにない場合(８５５)、ノードｉはパケットを廃棄する(８１１)。そうでない場合、ステップ８５６に進む。
【０１３９】
Ｒ(ｉ)＜Ｒ−Ｑである場合(８５６)、ノードｉは、Ｒ−Ｐ＝Ｒ(ｉ)、ｃ＝ｃ(ｉ)を設定することによってＤＲ−ＲＥＰパケットを更新し(８８０)、このＤＲ−ＲＥＰパケットをＮＬ−Ｐを介して転送する(８８１)。そうでない場合、ステップ８５７に進む。
【０１４０】
ノードｉは、ｓｐ(Ｒ−Ｑ、Ｒ−Ｐ)がオーバーフローするか否かを調べる(８５７)。オーバーフローしない場合、ノードｉは、自身のランクＲ(ｉ)をＲ(ｉ)＝ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)として減少させ、自身の親集合Ｐ(ｉ)をＰ(ｉ)＝{ｋ|Ｒ(ｋ)＜Ｒ(ｉ)、ｋ∈Ｐ(ｉ)}として更新する(８９０)。次に、ノードｉは、Ｒ−Ｐ＝Ｒ(ｉ)及びｃ＝ｃ(ｉ)を設定することによってＤＲ−ＲＥＰパケットを更新し(８９１)、このＤＲ−ＲＥＰパケットをＮＬ−Ｐを介して転送する。さらに、ノードｉは、自身の親Ｐ(ｉ)が自身のランクの減少に起因した親の削除のために変更された場合、ＤＡＯパケット送信をスケジューリングする(８９２)。
【０１４１】
ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)がオーバーフローする場合、ノードｉは、ｓｐ(Ｒ−Ｑ，Ｒ−Ｐ)が約分可能である場合にこれを簡約する。１よりも大きな公約数がない場合、ノードｉは、ＩＣＭＰエラーパケットを送信する(８５８)。
【０１４２】
ランク分割演算の定義によって、下方ＤＲ−ＲＥＰパケット内のランクＲ−Ｐが、コンセントレーターノードからＤＲ−ＲＥＰ送信ノードへの送信元ルーティングリンク上のノードの最大ランクであることを示すことは容易である。Ｒ−Ｐは、Ｒ−Ｑよりも常に小さい。
【０１４３】
したがって、ＤＲ−ＲＥＰパケットが、ＤＲ−ＲＥＱパケット生成器に到達したとき、ＤＲ−ＲＥＰパケット内のランクＲ−Ｐは、ＤＲ−ＲＥＱパケット生成器のランクであるＲ−Ｑよりも小さくなければならない。すなわち、ランクは、コンセントレーターからＤＲ−ＲＥＱパケット生成器に単調増加する。その結果、これによって、ランクがコンセントレーターから任意のスマートメーターノードへのルーティングリンクに沿って単調増加することが保証される。
【０１４４】
破損したリンクを回避するローカルＤＯＤＡＧ修復例
図９は、破損したリンク１０２を回避するための修復処理を概略的に示している。コンセントレーターノードＣ及びメーターノード１〜６に加えて、図９は、好ましい親へのリンク５０２、ＤＲ−ＲＥＱ伝播リンク９０１、ＤＲ−ＲＥＰ伝播リンク９０２、並びに古いランク９０５及び新たなランク９０６も示している。
【０１４５】
ノード５とノード２との間のリンクが破損した(１０２)場合、ノード５がＤＲ−ＲＥＱパケットを送信する。ノード４及び６は、このパケットを受信する。これらのノードの双方は、コンセントレーターへのリンクを有するが、双方のノードのランクは、ＤＲ−ＲＥＱパケット内のランクよりも低くない。したがって、ＤＲ−ＲＥＱパケットは、それらのノードの好ましい親ノード１及び３にそれぞれ転送される。
【０１４６】
また、ノード４及びノード６は、今後のＤＲ−ＲＥＰパケットをノード５に転送することができるようにノード５への逆リンクを記録する。ノード１及び３は、コンセントレーターへのリンクを有し、これらのノードのランクは、ＤＲ−ＲＥＱパケット内のランクよりも低い。したがって、これらのノードは、ＤＲ−ＲＥＰパケットを送信する。このＤＲ−ＲＥＰパケット送信プロセスは、ＤＲ−ＲＥＱパケット生成器ノード５へのリンクに沿ったノードのランクを更新する。ノード４及び６の場合、古いランク９０５は(２，３)であり、新たなランク９０６は(３、５)である。ノード５は、ノード４及び６からＤＲ−ＲＥＰパケットを受信し、ノード６を自身の好ましい親として選択する。
【０１４７】
図１０は、真分数の形式のランクが決して増加しないので、図１における破損したリンク１０２が考案されたローカルＤＯＤＡＧ修復方法によってどのように回避されるのかを概略的に示している。差込１０１０は、修復処理中に用いられる様々な分割(ｓｐ)演算を示している。この図は、ＤＲ−ＲＥＰパケット送信１００１、ＤＲ−ＲＥＱパケット送信１００２、及びノード１の新たな好ましい親１００３へのリンクも示している。
【０１４８】
Ｒ(ｉ)(ただし、ｉ＝１，２，…，７)は、ノードｉのランクである。Ｒ(Ｃ)は、コンセントレーターノードＣのランクである。ノード１は、自身の親集合Ｐ(ｉ)からノードＣを削除し、Ｒ−Ｑ＝Ｒ(１)＝(１，２)を有するＤＲ−ＲＥＱパケットを送信する。ノード２は、このＤＲ−ＲＥＱパケットを廃棄する。なぜならば、このＤＲ−ＲＥＱパケットは、ノード２の親によって送信されているからである。ノード３は、ＤＲ−ＲＥＱパケットをノード２に転送する。なぜならば、ＤＲ−ＲＥＱパケット内のＲ−Ｑは、ノード３のランクＲ(３)よりも小さいからである。
【０１４９】
一方、ノード３によって転送されたＤＲ−ＲＥＱパケットは、ノード２によって廃棄される。なぜならば、このＤＲ−ＲＥＱパケットは、ノード２の親によって生成されているからである。ノード４は、ＤＲ−ＲＥＱパケットをノード５に転送する。なぜならば、Ｒ−ＱがＲ(４)よりも小さいからである。同様に、ノード５は、ＤＲ−ＲＥＱパケットをノード６に転送し、ノード６は、ＤＲ−ＲＥＱパケットをノード７に転送し、ノード７は、ＤＲ−ＲＥＱパケットをコンセントレーターに転送し、コンセントレーターは、Ｒ−Ｐ＝Ｒ(Ｃ)＝(０，１)を有するＤＲ−ＲＥＰパケットを生成する。
【０１５０】
ノード７は、ＤＲ−ＲＥＰパケットを受信すると、Ｒ(７)≧Ｒ−Ｑであるので、自身のランクをＲ’(７)＝(１、３)に減少させ、Ｒ−Ｐ＝Ｒ’(７)を設定し、ＤＲ−ＲＥＰパケットをノード６に転送する。同様に、ノード６は、自身のランクをＲ’(６)＝(２，５)に減少させ、Ｒ−Ｐ＝Ｒ’(６)を設定し、ＤＲ−ＲＥＰパケットをノード５に転送し、ノード５は、自身のランクをＲ’(５)＝(３、７)に減少させ、Ｒ−Ｐ＝Ｒ’(５)を設定し、ＤＲ−ＲＥＰパケットをノード４に転送し、ノード４は、自身のランクをＲ’(４)＝(４，９)に減少させ、Ｒ−Ｐ＝Ｒ’(４)を設定し、ＤＲ−ＲＥＰパケットをノード１に転送する。ノード１は、ノード４からＤＲ−ＲＥＰパケットを受信すると、ノード４を自身の好ましい親として選択する。
【０１５１】
ノード１によって開始されたローカルＤＯＤＡＧ修復プロセスは完了する。ローカルＤＯＤＡＧ修復の後、親子関係は、３→２→１→４→５→６→７→Ｃである。
【産業上の利用可能性】
【０１５２】
この発明の方法は、多種の分野に適用可能である。
【図１】
0005683755.tif 000006
【図２】
0005683755.tif 000007
【図３Ａ】
0005683755.tif 000008
【図３Ｂ】
0005683755.tif 000009
【図３Ｃ】
0005683755.tif 000010
【図４】
0005683755.tif 000011
【図５】
0005683755.tif 000012
【図６Ａ】
0005683755.tif 000013
【図６Ｂ】
0005683755.tif 000014
【図７Ａ】
0005683755.tif 000015
【図７Ｂ】
0005683755.tif 000016
【図８Ａ】
0005683755.tif 000017
【図８Ｂ】
0005683755.tif 000018
【図９】
0005683755.tif 000019
【図１０】
0005683755.tif 000020