(57)【要約】  本発明は、階層Ｄｏ＿ＤａｇベースのＲＰＬ（Hierarchical Do-Dag based RPL：Ｈ−ＤＯＣ）ネットワーク構成の改良であり、この構成において、各ノードのネットワークアドレスが、Ｈ−ＤＯＣネットワーク内のロケーションに対応する。ネットワークアドレスは階層的に初期化される（６００）。候補の親ノードは、可用性をシグナリングする（６０２）。候補の子ノードは、候補の親ノードを選択し（６０３）、一時的アドレスを用いて応答する（６０４）。選択された候補の親ノードは、選択に肯定応答し、子ノードについての階層アドレスを伝送において一時的アドレスに通信する（６０５）。子ノードは、アドレスを親ノードからの階層アドレスに変更する（６０６）。
2018526948.tif 000002
【特許請求の範囲】
【請求項１】
ルートノードを含む複数のノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成のネットワークアドレス初期化の方法であって、前記ネットワークアドレスが、前記複数のノードの複数の階層レベルに対応する所定のレベルのサブセットを有し、前記方法が、
前記ルートノードが、ＤＯＤＡＧ情報オブジェクト要求（ＤＩＯ）信号を、親ノードとしての可用性を示す少なくとも一つの候補子ノードにブロードキャストすること、及び、所定のルートノードのビットのセットを有する第１のレベルのアドレスサブセットと、各々が所定のヌルビットのセットを有する少なくとも一つの追加レベルのアドレスサブセットとを含むルートノードアドレスをブロードキャストすること、
前記ＤＩＯ信号を候補子ノードにおいて受信すること、
前記ルートノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記候補子ノードから前記ルートノードアドレスの前記ルートノードに伝送すること、
前記ＤＡＯ信号を前記ルートノードにおいて受信すること、
前記ルートノードにおいて、前記候補子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記第１のレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第２のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記階層アドレスのインジケーションを含むＤＡＯ＿ＡＣＫ信号を、前記ルートノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記ＤＡＯ＿ＡＣＫ信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記ＤＡＯ＿ＡＣＫ信号に含まれる前記階層アドレスに変更すること、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
応答する前記アドレスを変更することによって、子ノードとして確認する際に、
各ノードが、ＤＯＤＡＧ情報オブジェクト要求（ＤＩＯ）信号を、親ノードとしての可用性を示す少なくとも一つの候補子ノードにブロードキャストすること、並びに、そのアドレスに等しいノードアドレスレベルのアドレスサブセットと、各々が所定のヌルビットのセットを有する少なくとも一つの追加レベルのアドレスサブセットとをブロードキャストすること、
前記ＤＩＯ信号を候補子ノードにおいて受信すること、
前記ノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記候補子ノードから前記ノードアドレスの前記ノードに伝送すること、
前記ＤＡＯ信号を前記ノードにおいて受信すること、
前記候補子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記第１のレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第２のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記階層アドレスのインジケーションを含むＤＡＯ＿ＡＣＫ信号を、前記ノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記ＤＡＯ＿ＡＣＫ信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記ＤＡＯ＿ＡＣＫ信号に含まれる前記階層アドレスに変更すること、
を更に含む、方法。
【請求項３】
親ノード及び子ノードとして編成される複数のノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成で階層ネットワークアドレスを変更する方法であって、
子ノードにおいて、ネットワークアドレスを変更するように決定すること、
前記子ノードにおいて、好ましい新しい親ノードを決定すること、
もはや前記古い親ノードの子ノードではない旨の決定を示す、ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を、前記子ノードから前記古い親ノードに伝送すること、
前記ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を前記古い親ノードにおいて受信すること、
前記古い親ノードにおいて、前記ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を伝送するノードの子状況を割り当て解除すること、
前記ノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記子ノードから、選択された候補親ノードに伝送すること、
前記ＤＡＯ信号を前記候補親ノードにおいて受信すること、
前記候補親ノードにおいて、前記子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記候補親ノードのネットワークアドレスに対応する少なくとも一つのレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第２のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記選択された階層アドレスのインジケーションを含むＤＡＯ＿ＡＣＫ信号を、前記候補親ノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記ＤＡＯ＿ＡＣＫ信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記ＤＡＯ＿ＡＣＫ信号に含まれる前記階層アドレスに変更すること、
を含む、方法。
【請求項４】
請求項３に記載の方法であって、前記子ノードの前記一時的アドレスが、前記子ノードの以前のアドレスである、方法。
【請求項５】
請求項３に記載の方法であって、前記子ノードの前記一時的アドレスが、一時的アドレスのために設定されるアドレスセットから選択されたアドレスである、方法。
【請求項６】
ルートノードを含む複数の階層的に配置されるノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成のネットワーク通信の方法であって、前記ネットワークアドレスが、前記ノードの複数の階層レベルに対応する所定のレベルのサブセットを有し、前記方法が、
ノードにおいて受信される通信の宛先アドレスを、前記ノードの前記ネットワークアドレスと比較すること、
前記ノードの前記ネットワークアドレスの前記階層レベルに対応する前記宛先アドレスの前記サブセットが、前記ノードの前記ネットワークアドレスのその階層レベルのサブセットと一致しない場合、前記通信を親ノードにルーティングすること、
前記宛先アドレスが前記ノードの前記ネットワークアドレスに一致する場合、前記ノードでのサービスのために前記通信を受信すること、及び、
前記ノードの前記階層レベル及びすべての一層高い階層レベルの前記宛先ノードアドレスが、前記ノードの前記ネットワークアドレスのサブセットに一致し、前記宛先ノードアドレスが、著しく低いレベルのアドレスフィールドを更に含む場合、前記通信を子ノードにルーティングすることであって、前記通信がルーティングされる前記子ノードが、前記宛先アドレスに一致する現在のノードのレベルよりも１階層レベル下のサブセットネットワークアドレスを有する、前記通信を子ノードにルーティングすること、
を含む、方法。
【請求項７】
複数のノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成で用いるためのノードであって、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するために前記通信トランシーバに接続されるノードコントローラ、
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードコントローラに、
候補親ノードからＤＯＤＡＧ情報オブジェクト要求（ＤＩＯ）を受信させ、
子ノードとして前記候補親ノードに接続するかどうかを判定させ、
前記候補親ノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記ノードが応答することになる一時的ネットワークアドレスとを、前記候補親ノードに伝送させ、
選択される階層ネットワークアドレスを含む前記候補親ノードからＤＡＯ＿ＡＣＫ信号を受信させ、
前記メモリに記憶された前記ネットワークアドレスを、前記一時的アドレスから、前記ＤＡＯ＿ＡＣＫ信号に含まれる前記階層アドレスに変更させる、
ように動作可能である、
ノード。
【請求項８】
請求項７に記載のノードであって、前記メモリに記憶される前記制御プログラムが更に、前記ノードコントローラに、
現在の親ノードを新しい親ノードに変更するかどうかを判定させ、及び、
前記現在の親ノードを新しい親ノードに変更するように判定する際、もはや前記現在の親ノードの子ノードでないという判定を示すＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を、前記現在の親ノードに伝送させる、
ように動作可能である、ノード。
【請求項９】
請求項８に記載のノードであって、前記メモリに記憶される前記制御プログラムが更に、ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号の伝送に続いて、前記ノードコントローラに、
前記現在のノードの親ノードとなる前記有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成の別のノードを選択させ、及び、
前記選択された親ノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記ノードが応答することになる一時的ネットワークアドレスとを、前記選択された親ノードへ伝送させる、
ように動作可能である、ノード。
【請求項１０】
複数のノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成において用いるためのノードであって、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するために前記通信トランシーバに接続されるノードコントローラ、及び
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードの子ノードになるという要望を示すＤＡＯ（Destination Advertisement Object）信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを受信する際に、前記ノードコントローラに、
第１のレベルのアドレスサブセットと、候補の子ノードに固有であるように選択される第２のレベルのアドレスサブセットと、所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される前記子ノードについて、階層アドレスを選択させ、及び、
前記選択された階層アドレスのインジケーションを含むＤＡＯ＿ＡＣＫ信号を、前記一時的アドレスの前記子ノードに伝送させる、
ように動作可能である、
ノード。
【請求項１１】
請求項１０に記載のノードであって、前記メモリに記憶される前記制御プログラムが更に、ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号の受信に続いて、前記ノードコントローラに、前記ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を伝送するノードの子の状況を割り当て解除させるように動作可能である、ノード。
【請求項１２】
複数のノードを含む有向非巡回グラフ（ＤＯＤＡＧ）ネットワーク構成において用いるためのノードであって、ルートノードを除く各ノードが親ノードを含み、前記ノードが、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するため前記通信トランシーバに接続されるノードコントローラ、及び
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードコントローラに、
前記ノードにおいて受信される通信の宛先アドレスを、前記ノードの前記ネットワークアドレスと比較させ、
前記ノードの前記ネットワークアドレスの前記階層レベルに対応する前記宛先アドレスの前記サブセットが、前記ノードの前記ネットワークアドレスのその階層レベルの前記サブセットと一致しない場合、前記通信を親ノードにルーティングさせ、
前記宛先アドレスが前記ノードの前記ネットワークアドレスに一致する場合、前記ノードでのサービスのために前記通信を受信させ、及び、
前記ノードの前記階層レベル及びすべての一層高い階層レベルの前記宛先ノードアドレスが、前記ノードの前記ネットワークアドレスのサブセットに一致し、及び更に、著しく低レベルのアドレスフィールドを含む場合、前記通信を子ノードにルーティングさせる、
ように動作可能であり、
前記通信がルーティングされる前記子ノードが、前記宛先アドレスに一致する前記現在のノードのレベルよりも１階層レベル下のサブセットネットワークアドレスを有する、
ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、可変アドレスを有するノードを含むネットワーク通信に関する。
【背景技術】
【０００２】
アドホックワイヤレス通信ネットワークは、ノードが、既存のネットワークリソースのレンジ内に入るにつれて動的に形成される。これらのネットワークは、センサなどのネットワーク上の下位デバイスと、これらのセンサと通信する上層デバイスとの間の通信を提供するために、多くの適用例において利用され得る。これらのセンサは、典型的に、制限された処理及びメモリで動作し、しばしば様々な技術的制限によって制約される。こうした制限は、それぞれのネットワークを形成するために用いられる、電力消費、スモールフォームファクタ、及び通信の課題（低速、高エラーレートなど）に関する問題を含み得る。これらの課題は、こうした課題間に相互依存関係が存在し得る場合、更に複雑化する。例えば、ネットワーク内の通信のレベルは、ネットワークデバイスにおける電力消費に影響を与える。
【０００３】
本開示は、こうしたアドホック通信ネットワークのためのアドレス生成に関する。或るネットワークが、そのネットワークにわたって通信するためにルーティングプロトコルを用いる、少なくとも２つのノードを含む。ルーティングプロトコルは、例えば、ＲＰＬ（Routing for Low Power）ネットワークプロトコルであり得る。ノードのうちの一つは親ノードであり、他のノードは親ノードの子ノードである。いくつかの場合において、親ノードは、階層ネットワークの頂部にあるルートノードであり得る。他の場合において、親ノードはまた、ルートノードよりダウンストリームにある中間ノードであり得、リーフノードと呼ぶこともある、中間ノードと通信する他の子ノードを有し得る。
【発明の概要】
【０００４】
アドレスジェネレータが、子ノードに固有ネットワークアドレスを作成するために、いくつかのビットのアドレス値を親ノードの親アドレスに付加することによって、各ノードに固有ネットワークアドレスを割り当てる。このようにして、ネットワークにおける各ノードは、本明細書で開示される様々な割り当てプロトコルを介して固有ネットワークアドレスを作成する一方で、そのそれぞれの親から部分的にその識別を仮定し得る。各ノードは、その導出された親アドレス割り当てに基づいて、メッセージをアップストリーム又はダウンストリームのいずれにルーティングするかを決定することができるため、アドレス割り当てプロトコルは、メッセージルーティングのために、各ノードが、アドホックネットワークにおいて次のホップがどれであるかが分かるようにし得る。これにより、従来のシステムのようなルーティングテーブルの必要性が緩和され、それによって、システムのそれぞれのノードにおけるメモリが節約される。更に、入ってくるノードがすでに親のノードアドレスの一部であるので、新しい子ノードに遭遇する各中間ノードは、ネットワークに対して追加のアドレス告知を通信する必要がないため、ネットワークにおけるハンドシェーキングが低減される。ハンドシェーキング通信の低減により、システムにおいて消費される電力が低減される。
【図面の簡単な説明】
【０００５】
【図１】例示のノードのブロック図である（従来技術）。
【０００６】
【図２】ノードの階層ネットワークを図示する（従来技術）。
【０００７】
【図３】階層ネットワークアドレス技法におけるアドレスセグメントの図である（従来技術）。
【０００８】
【図４】図３の階層ネットワークアドレス技法を用いるときの、メッセージルーティングを図示するフローチャートである。
【０００９】
【図５】本発明に従った、ネットワークアドレス初期化における潜在的親ノードのアクションを図示するフローチャートである。
【００１０】
【図６】本発明に従った、ネットワークアドレス初期化における潜在的子ノードのアクションを図示するフローチャートである。
【００１１】
【図７】本発明に従った、ネットワークアドレス初期化における選択された親ノードのアクションを図示するフローチャートである。
【００１２】
【図８】本発明に従った、親ノードを変更するときの子ノードのアクションを図示するフローチャートである。
【００１３】
【図９】本発明に従った、親ノードを変更するときの古い親ノードのアクションを図示するフローチャートである。
【００１４】
【図１０】本発明に従った、親ノードを変更するときの新しい親ノードのアクションを図示するフローチャートである。
【発明を実施するための形態】
【００１５】
図１（従来技術）は、例示のノード１００のフローチャートである。ノード１００は、典型的に用いられる複数のノードのうちの１つである。ノード１００は、通信トランシーバ１０１を含む。通信トランシーバ１０１は、他のノードとの双方向通信を可能にする。既知の技術によれば、各ノードには通信アドレスが提供される。ノード１００は、宛先ノードとしてメッセージヘッダ識別ノード１００を有する通信にのみ応答する。この識別は、典型的に、宛先ノードの通信アドレスによって成される。ノード通信アドレスは、以降でより詳細に説明する。図１に示されるノード１００は、特定の通信媒体に限定されない。典型的に、低電力無線周波信号を介してノード間にワイヤレス通信を提供ためことである。
【００１６】
ノード１００はノードコントローラ１０２を含む。ノードコントローラ１０２は典型的にプログラマブルマイクロプロセッサを含む。ノードコントローラ１０２のこのマイクロプロセッサは、ノード１００の動作特徴を提供する。ノードコントローラ１０２は、通信トランシーバ１０１への双方向接続を介して他のノードとメッセージを交換し得る。当分野で知られているように、ノードコントローラ１０２のマイクロプロセッサは、メモリ１０３に記憶された命令によってプログラミングされる。メモリ１０３は、典型的に、読み取り専用メモリ（ＲＯＭ）又はＦＬＡＳＨメモリなど、コンテンツが継続的な電力に依存しない不揮発性メモリと、一般にランダムアクセスメモリ（ＲＡＭ）として知られる、電力が中断するとコンテンツが失われる揮発性メモリとの両方を含む。典型的に、プログラム命令が不揮発性メモリに記憶され、より一時的なデータが揮発性メモリに記憶される。ノードコントローラ１０２は、センサ１０５及びアクチュエータ１０６（後述）と、及び、通信トランシーバ１０１を介して他のノードと通信する。図１に示されるように、メモリ１０３は、ノード１００に割り当てられるネットワークアドレスの記憶専用の少なくとも一部分１０４を含む。後述するように、ノード１００は、メモリ１０３に記憶されるネットワークアドレスに一致する宛先アドレスを有するメッセージにのみ応答する。
【００１７】
ノード１００は、オプションで、一つ又は複数のセンサ１０５又はアクチュエータ１０６を含む。典型的に、ノード１００などの複数のノードが共に用いられる。センサ１０５は、ノードのネットワークによる使用のための環境条件を検出する。これらの環境条件は、周囲温度、風速、圧力などであり得る。アクチュエータ１０６は、ノードのネットワークから受信されるコマンドに従って環境を制御するために用いられ得る。アクチュエータが、ノード１００の電気スイッチ、流体バルブ、又は動的部分のコントロールを含み得る。ノードの任意の特定の例には、一つ又は複数のセンサ及び一つ又は複数のアクチュエータ、一つのみのセンサ又は一つのみのアクチュエータが含まれ得る。
【００１８】
ノード１００は電源１０７を含む。典型的な適用例において、ノード１００は非常に小さい電力を用いるように設計される。電源１０７は小型バッテリとし得る。他の適用例において、電源１０７は環境から電力を回収するように設計される。電源１０７は、バックアップキャパシタ又は夜間用の他の電力ストレージを備える、太陽電池であり得る。代替として電源１０７は、環境的な運きから電力を生成する、ある種のモーションキャプチャデバイスであり得る。波の動きから電力を生成する海洋気象ブイが、一例である。
【００１９】
図２は、こうしたノードのネットワークにおけるノード間の従来技術の好ましい通信を示す。好ましい実施形態において、ノードは階層ネットワーク状に配置される。ネットワーク２００は、ルートノードとしても知られる単一のＬｅｖｅｌ  ０のノードＮ１を示す。Ｌｅｖｅｌ  ０のノードＮ１は、Ｌｅｖｅｌ  １のノードＮ２及びＮ３と直接通信する。Ｌｅｖｅｌ  １のノードＮ２は、Ｌｅｖｅｌ  ２のノードＮ４及びＮ５と直接通信する。Ｌｅｖｅｌ  １のノードＮ３は、Ｌｅｖｅｌ  ２のノードＮ６及びＮ７と直接通信する。Ｌｅｖｅｌ  ＮのノードＮ１６〜Ｎ６３は、Ｌｅｖｅｌ  Ｎ−１ノード（図示せず）と直接通信する。このようにＴｏｐ  ＬｅｖｅｌのノードＮ１は、子ノードＮ２及びＮ３のみと直接通信する。Ｌｅｖｅｌ  １のノードＮ２は、親ノードＮ１並びに子ノードＮ４及びＮ５と通信する。Ｌｅｖｅｌ  １のノードＮ３は、親ノードＮ１並びに子ノードＮ６及びＮ７と直接通信する。Ｂｏｔｔｏｍ  Ｌｅｖｅｌ（Ｌｅｖｅｌ  Ｎ）において、各ノードＮ１６〜Ｎ６４は、それぞれの親ノード（図示せず）と直接通信する。
【００２０】
前述のように、本発明に従ったノードのネットワークは、典型的に、ローパワー無線周波信号を介したノード間のワイヤレス通信を用いる。したがって親ノードは、その子ノードとは配線接続されない。すべてのワイヤレス通信は、一つ又はわずかな無線周波数のみを共有し得る。この環境は、ノードが、通信がそのノード向けであるかどうかを判定するための何らかの様式を必要とする。こうしたネットワークは、典型的に、通信を区別するためにネットワークアドレスを用いる。ネットワークにおける各ノードに、ネットワークアドレスが割り当てられる。ネットワークにおける各通信は、宛先ノードのネットワークアドレスへの参照を含む。この宛先ノードネットワークアドレスは、典型的に、メッセージヘッダにおいて特定される。通信を受信すると、各ノードはメッセージから宛先ノードネットワークアドレスを抽出する。ノードは、この宛先ノードネットワークアドレスをそれ自体のネットワークアドレスと比較する。ノードは、宛先ノードネットワークアドレスがそれ自体のネットワークアドレスに一致する場合、メッセージに応答する。ノードは、宛先ノードネットワークアドレスがそれ自体のネットワークアドレスに一致しない場合、この通信を無視する。ノードは、宛先ノードに到達するための試みにおいて、その親ノードに又はその子ノードのうちの一つにメッセージをルーティングすることもできる。ノードは、典型的に、その親ノードから又はその子ノードのうちの一つからのメッセージのみを処理する（サービス又はルーティングする）。
【００２１】
宛先ノードに対するネットワークアドレスを提供することで、所望のノードを識別する。宛先ネットワークアドレスは、ルーティングに関する情報を自動的に提供しない。好ましい実施形態において、通信にローパワー無線周波信号を用いることで、すべてのノードがすべての他のノードのレンジ内に入るとは限らないことになる。好ましい実施形態において、親ノード及びその子ノードのみが通信状態にあることが保証される。したがって、別のノードに向けられる通信は、親ノードへと階層を上方に、又は適切な子ノードへと階層を下方に、送信されなければならない。
【００２２】
親ノードと子ノードの間の通信は、ネットワークルーティングプロトコルに従って生じる。ルーティングプロトコルは、例えばＲＰＬ（Routing for Low Power Networks）プロトコルであり得る。親ノードはルートノード又は中間ノードであり得、子ノードは、宛先指向有向非巡回グラフ（ＤＯＤＡＧ）構成において、ルートノード又は中間ノードに対するリーフノードであり得る。ＤＯＤＡＧは、少なくとも一つのルートノード、及び少なくとも一つのリーフノードで構成される。
【００２３】
別のノードに向けられる通信を適切にルーティングするために、各ノードは宛先ノードについてのルーティング情報にアクセスしなければならない。ＲＰＬルーティングプロトコルは２つの動作モードを有する。第１のモードは記憶モードである。第２のモードは非記憶モードである。ＲＰＬプロトコル記憶モードにおいて、各ノードはすべての他のノードへのルーティングについての情報をメモリ１０３に記憶する。通信を受信すると、ノードコントローラ１０２が宛先ノードアドレスを抽出する。このアドレスがノードアドレスと一致する場合、ノードはこの通信に応答する。この宛先ノードアドレスがノードアドレスと一致しない場合、ノードはこの通信を別のノードにルーティングしなければならない。ノードコントローラ１０２は、記憶されたルーティング情報を調べて、通信のルーティングを決定する。ルーチンテーブルは、その通信が階層ネットワークを上方に、又は、そのノードの子ノードの一つへと階層ネットワークを下方に、ルーティングされるべきかのみを示す必要がある。この技法は、各ノードでルーティングテーブルを記憶する必要があるため、不利である。これは、ルーティングテーブルを記憶するために各ノードでメモリ及び電力を必要とするので、ハードウェアにとって負担となる。ルーティングテーブルのサイズは、そのノードに対する子ノードの数に、その親に対する一つの付加的なエントリを加えたものに線形に比例する。これは、低コストでローパワーのノードにとって不利である。ＲＰＬプロトコル非記憶モードでは、ルートノードのみがルーティングについての情報を記憶する。ノードのいずれのペア間のすべての通信が、まずルートノードへと上方にルーティングされなければならない。ルートノードは、そのルーティングテーブルに基づいて、通信を適切な子ノード及び孫ノードへとルーティングする。この技法により、各ノードでルーティングテーブルを記憶するための要件が不要になる。しかしながらこの技法は、すべての通信がルートノードを通過しなければならないため、通信トラフィックの犠牲を増加させる。
【００２４】
図２に図示されるネットワーク構成は、有向非巡回グラフ（ＤＯＤＡＧ）構成として知られる。図２に示されるように、ＤＯＤＡＧは、少なくとも一つのルートノード及び少なくとも一つのリーフノードで構成される。候補親ノードは、親ノードとしてのそれらの可用性を示すＤＯＤＡＧ情報オブジェクト要求（ＤＩＯ）を伝送する。候補子ノードは、ＤＩＯに応答して、それらの好ましい親ノードに対してＤＡＯ（Destination Advertisement Object）信号を用いて応答する。
【００２５】
図３は、図２に図示される階層ネットワークと共に有利に用いられる、従来技術の階層Ｄｏ＿ＤａｇベースのＲＰＬネットワーク（Ｈ−ＤＯＣ）アドレッシング技法の特徴を示す。各ノードについて、ネットワークアドレス３００は、プレフィクスビット３０１、レベル１ビット３０２、レベル２ビット３０３、・・・、レベルＮビット３０９を含む。プレフィクスビット３０１は、ネットワークにおけるすべてのノードに共通のビット、及びルートノードに関連付けられるビットを含む。階層ネットワーク内のすべてのノードは、プレフィクスビット３０１におけるビットを含む。ネットワークのルートノードについて、すべての他のビットフィールド（３０２、３０３、・・・、３０９）は、すべて０などの所定のヌル値を有する。レベル１の各ノードは、ルートノードと同じ値を有するプレフィクスビット３０１と、すべての他のレベル１ノードからのレベル１ビット３０２内の固有値とを含む。レベル１ノードについて、すべての他のビットフィールド（３０３、・・・、３０９）は所定のヌル値を有する。レベル２の各ノードは、ルートノードと同じ値を有するプレフィクスビット３０１、その親ノードと同じ値を有するレベル１ビット３０２、及び、同じ親レベル１ノードを有するすべての他のレベル２ノードの中からのレベル２ビット３０３内の固有値を含む。レベル２ノードについて、すべての他のビットフィールド（・・・３０９）は所定のヌル値を有する。各レベルフィールドに割り当てられるアドレスビットの数は、所望の親子ファンアウトに依存する設計選択肢である。ネットワークアドレス内のレベルフィールドの順は任意選択であることに留意されたい。すなわち、レベルフィールドは、図３に示される高ビットから低ビットへの順序のみではなく、任意の順序であり得る。ネットワーク内のすべてのノードが同じレベルフィールド順を用いることのみが要求される。
【００２６】
この階層ネットワークアドレス技法の特徴の一つは、各ノードのネットワークアドレスが階層ネットワーク内のそのロケーションに対応することである。各ノードは、その親ノードに、及びルートノードまでの階層の上方へのすべての中間ノードに依存するネットワークアドレスを有する。これにより、各ノードでのルーティング決定が簡略化される。
【００２７】
図４は、階層アドレスを用いるときの、メッセージルーティングを処理するためのプロセス４００のフローチャートを示す。好ましい実施形態において、各ノードでメモリ１０３は、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。ルーティングには３つの可能性がある。メッセージは、現在のノードの親ノードへと階層を上方にルーティングされる必要があり得る。メッセージは現在のノード向けであり得る。メッセージは、現在のノードの子ノードへと階層を下方にルーティングされる必要があり得る。現在のノードの親ノードから受信するメッセージが、現在のノードに向けられ得、或いは、下方の階層ノードへとルーティングされる必要があり得る。子ノードからのメッセージが、親ノードへと階層を上方にルーティングされる必要があり得、又は、現在のノードに向けられ得、或いは、別の子ノードへと下方の階層にルーティングされる必要があり得る。
【００２８】
プロセス４００は、別のノードからのメッセージの受信の際に開始する（ブロック４０１）。ノードは、メッセージヘッダから宛先アドレスを抽出する（ブロック４０２）。メッセージのルーティングは、現在のノードのノードアドレスに対する宛先アドレスの関係に依存する。
【００２９】
テストブロック４０３は、宛先アドレスが現在のノードアドレスの高レベルアドレススロットに一致し、現在のノードアドレスの現在のレベルアドレスには一致しないかどうかを判定する。当てはまる（テストブロック４０３で「はい」である）場合、メッセージは階層を上方へルーティングされるべきである。ブロック４０４は、メッセージを現在のノードの親ノードへとルーティングする。ブロック４０４におけるメッセージのこのルーティングに続き、プロセス４００は終了ブロック４０５で終了する。当てはまらない（テストブロック４０３で「いいえ」である）場合、フローはテストブロック４０６に渡される。
【００３０】
テストブロック４０６は、宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致するかどうかを判定する。宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致する（ブロック４０６で「はい」である）場合、現在のノードは意図される宛先である。したがって、ブロック４０７は、このメッセージをサービスする。メッセージをサービスする厳密な様式は、ネットワークの意図される用途に依存する。メッセージは、現在のノードのセンサ１０４からのデータについての要求であり得る。メッセージは、アクチュエータ１０６を介して現在のノードに何らかのアクションを行うためのコマンドであり得る。このメッセ―をサービスする厳密な性質は、本発明の範囲を超えている。ブロック４０７におけるメッセージのサービスに続き、プロセス４００は終了ブロック４０８で終了する。
【００３１】
宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致しない（ブロック４０６で「いいえ」である）場合、現在のノードは意図される宛先ではない。テストブロック４０９は、宛先ノードアドレスが現在のノードアドレスのフィールドに一致し、著しく低レベルのアドレスフィールドを更に含むかどうかを判定する。これが真である（テストブロック４０９で「はい」である）場合、メッセージは現在のノードの子ノードにルーティングされる。ブロック４１０は、メッセージを適切な子ノードへと階層を下方にルーティングする。適切な子ノードは、現在のノードのレベルより一つ下のレベルのレベルアドレスフィールドによって決定される。ブロック４１０におけるメッセージのこのルーティングに続き、プロセス４００は終了ブロック４１１で終了する。
【００３２】
これらの条件のいずれにも一致しない（テストブロック４０３で「いいえ」であり、テストブロック４０６で「いいえ」であり、テストブロック４０９で「いいえ」である）場合、宛先アドレスにエラーが存在する。エラー処理ブロック４１２はこのエラーを処理する。これは本発明の範囲を超えている。
【００３３】
Ｈ−ＤＯＣ技法の実際の実装において、重大な制限が存在する。ネットワークにおいてノードアドレスを割り当てるためのクリーンな方法は存在しない。ノードアドレスを再割り当てするための対策は存在しない。ノードがその親ノードを変更することは複雑又は不可能である。そのような変更は、ノードが移動体である場合に必要であり得る。本発明は、メッシュネットワークについてのアドレス割り当て及び再割り当てのためのＨ−ＤＯＣ技法の制限に対処する。本発明は、Ｈ−ＤＯＣ技法を用いるＲＰＬネットワークにおいて用いられる２つのメッセージをわずかに改変する。従来技術において、ノードが、ＤＯＤＡＧ情報オブジェクト要求（ＤＩＯ）メッセージをその潜在的子ノードに送信する。そのノードに接続することを望む子ノードが、ＤＡＯ（Destination Advertisement Object）メッセージを用いて応答する。一般に、各ノードは、子ノードとの接続を試みる前にその親ノードと接続する。本発明は、階層ネットワークにおけるネットワークアドレスのより良い割り当てを提供する。
【００３４】
図５〜図７は共に、本発明に従った階層アドレス初期化を図示する。図５は、候補親ノード上で行なわれるプロセス５００を図示する。図６は、候補子ノード上で行なわれるプロセス６００を図示する。図７は、選択された親ノード上で行なわれるプロセス７００を図示する。
【００３５】
図５は、開始ブロック５０１で始まる候補親ノードでのプロセス５００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。ブロック５０２で、候補親ノードはＤＩＯ信号をブロードキャストする。ＤＩＯ信号は従来技術と同様である。ＤＩＯ信号は、親ノード及びそのネットワークアドレスとしての伝送ノードの可用性をアナウンスする。このＤＩＯ信号は、典型的に、伝送ノードのすべての候補子ノードにブロードキャストされる。こうしたブロードキャストは、ワイヤレス通信を用いる典型的なネットワークにおいて可能である。初期化プロセスは、好ましくはルートノードで開始し、階層を下方に進行する。ルートノードは、それがルートノードであり初期化を開始することをわかっているものと想定される。ノードは、親ノードに接続されるまで、子ノードに接続するためにＤＩＯ信号を伝送することはできない。ＤＩＯ信号の伝送は、現在のノードが少なくとも一つのノードを子ノードとして受け入れることが可能であることを示す。したがってこれにより、現在のノードが、図３において次のレベルフィールドのサイズによって制限されるように割り当てられる最大数より少ない子ノードを有することが保証される。プロセス５００は終了ブロック５０３で終了する。
【００３６】
図６は、候補子ノードのプロセス６００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。プロセス６００は開始ブロック６０１で始まる。ブロック６０２で、候補子ノードは、候補親ノードから少なくとも一つのＤＩＯ信号を受信する。候補子ノードは、受信されたＤＩＯ信号の中から親ノードを選択する。この選択の方式は本発明にとって重要ではない。この選択には、受信されたＤＩＯ信号から、選択された親ノードのネットワークアドレスを識別することが含まれる。ブロック６０４において、ノードは選択された親ノードにＤＡＯ信号を伝送する。このＤＡＯ信号は、ＤＩＯ信号から抽出される選択された親ノードのネットワークアドレスに一致する宛先ネットワークアドレスを介して、選択された親ノードに向けられる。本発明によれば、このＤＡＯ信号は、伝送ノードが応答することになる一時的ネットワークアドレスに関する情報を含む。この一時的ノードアドレスは、この目的のために設定されたノードアドレスのセットから選択されるアドレスであり得る。
【００３７】
図７は、選択された親ノードによって行われるプロセス７００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。プロセス７００は開始ブロック７０１で始まる。ブロック７０２で、選択された親ノードはＤＡＯ信号を受信する。前述のように、このＤＡＯ信号は、宛先アドレスによって現在のノードに向けられ、子ノードの一時的アドレスのインジケーションを含む。ブロック７０３において、プロセス７００は、要求元ノードに割り当てるために利用可能なネットワークアドレスを選択する。前述のように、このノードは、親ノードとしての可用性を示すＤＩＯ信号を伝送した（ブロック５０２）。これにより、現在のノードが別の子ノードを受け入れ得ることが保証される。このノードは、現在割り当てられている子ノードのネットワークアドレスのインジケーションを記憶する。次いでプロセス７００は、ＤＡＯ＿ＡＣＫ信号を要求元ノードに返送する（ブロック７０４）。このＤＡＯ＿ＡＣＫ信号は、受信されたＤＡＯ信号の一時的アドレスに伝送される（ブロック７０２）。このＤＡＯ＿ＡＣＫ信号は、ブロック７０３においてこの子ノードに割り当てられたネットワークアドレスを示すペイロードを含む。図３に関連して示されるように、階層アドレス技法によれば、この割り当てられたアドレスは、親ノードのネットワークアドレスと同一の親ノードのレベルまで下がる高レベルフィールドを含む。親ノードのレベルより１レベル下のフィールドは、現在割り当てられている子ノードの中から未使用のアドレスがあれば、このアドレスに設定される。プロセス７００は終了ブロック７０５で終了する。
【００３８】
プロセス６００（図６）は、ブロック６０４で続行される。ノードは、選択された親ノードからＤＡＯ＿ＡＣＫ信号を受信する（ブロック６０５）。前述のように、このＤＡＯ＿ＡＣＫ信号は、選択された親ノードによって割り当てられる子ネットワークアドレスを含む。次いで子ノードは、そのネットワークアドレスを、ＤＡＯ＿ＡＣＫ伝送のペイロードに含まれる割り当てられたアドレスに変更する（ブロック６０６）。次いで現在のノードは、上記した様式でこの新しく割り当てられた子アドレスに応答する。前述のように、このネットワークアドレスの割り当ての際、この子ノードは、それが他のノードに対する親ノードであり得ることを示すＤＩＯ信号を伝送し得る。
【００３９】
従来技術の階層アドレス技法は、一旦初期化されると、ネットワークを再配置する様式を提供していない。ネットワークが移動体ノードを含む場合、ノードは、その現在の親ノードがよりアクセスしやすいロケーションに移動し得る。アドレスの階層的性質に起因して、これには子ノードのアドレスの再割り当てが必要となる。図８から図１０はこのプロセスを示す。図８は、移動する子ノード上で行なわれるプロセス８００を示す。図９は、古い親ノード上で行なわれるプロセスを示す。図１０は、新しい親ノード上で行なわれるプロセス１０００を示す。
【００４０】
図８は、移動する子ノード上で行なわれるプロセス８００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。プロセス８００は開始ブロック８０１で始まる。子ノードが、親ノードを変更するように決定したこと、及び、新しい親ノードの識別（及びそのため、ネットワークアドレス）を選択したことが想定される。プロセス８００は、新しい信号ＤＡＯ＿ＮＯ＿ＰＡＴＨを古い親ノードに伝送する。子ノードは、この伝送を古い親ノードのネットワークアドレスに向ける。このＤＡＯ＿ＮＯ＿ＰＡＴＨ信号はまた、好ましくは、古いネットワークアドレスによって伝送元ノードを識別する。
【００４１】
図９は、古い親ノード上で行なわれるプロセス９００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。プロセス９００は開始ブロック９０１で始まる。ブロック９０２で、古い親ノードは、ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号を受信する。ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号に応答して、古い親ノードは、伝送元ノードに割り当てられたアドレスを割り当て解除する（ブロック９０３）。したがって古い親ノードは、もはや伝送元ノードの親ではない。プロセス９００は終了ブロック９０４で終了する。
【００４２】
図８に戻ると、ＤＡＯ＿ＮＯ＿ＰＡＴＨ信号の伝送に続き、移動する子ノードは、ＤＡＯ信号を選択された新しい親ノードに伝送する（ブロック８０３）。このプロセスは、前述のブロック６０４と同様である。ＤＡＯ信号は、選択された新しい親ノードを示す宛先ノードを含む。ＤＡＯ信号は、応答のための一時的ノードアドレスも含む。この一時的ノードアドレスは、以前のアドレスであり得る。古い親ノードはこのノードアドレスを再割り当てしており、このアドレスを介して移動する子ノードと通信するように試みないことに留意されたい。この一時的ノードアドレスは、この目的のために取っておいたノードアドレスのセットから選択されるアドレスであり得る。
【００４３】
図１０は、新しい親ノード上で行なわれるプロセス１０００を示す。好ましい実施形態において、メモリ１０３は各ノードで、ノードコントローラ１０２にこのプロセスを実行させる命令を記憶する。プロセス１０００は開始ブロック１００１で始まる。ブロック１００２で、新しい親ノードは、子ノードの一時的アドレスのインジケーションを含むＤＡＯ信号を受信する。テストブロック１００３において、プロセス１０００は、新しい子ノードにとってネットワークアドレスが利用可能であるかどうかを判定する。これは、図７に示されるプロセス７００とはわずかに異なる。プロセス７００では、ノードは、新しい子ノードを受け入れるための可用性を示すＤＩＯ信号を伝送していた。プロセス１０００では、選択された親ノードは、別の子ノードに割り当てるために利用可能なネットワークアドレスを有さない場合がある。新しい親ノードが新しい子ノードへの割り当てに利用可能なネットワークを有する場合（テストブロック１００３で「はい」）、ブロック１００４において、プロセス１０００は、要求元ノードへの割り当てに対して利用可能なネットワークアドレスを選択する。次いでプロセス１０００は、ＤＡＯ＿ＡＣＫ信号を要求元ノードに返送する（ブロック１００５）。このＤＡＯ＿ＡＣＫ信号は、受信されたＤＡＯ信号の一時的アドレスに伝送される（ブロック１００２）。このＤＡＯ＿ＡＣＫ信号は、ブロック１００４でこの子ノードについて選択されたネットワークアドレスを示すペイロードを含む。プロセス１０００は終了ブロック１００６で終了する。
【００４４】
新しい親ノードが新しい子ノードへの割り当てに対して利用可能なネットワークを有さない場合（テストブロック１００３で「いいえ」）、プロセス１０００はブロック１００７においてエラー処理を開始する。このエラー処理は、ＤＡＯ信号に応答できない可能性がある。これは、要求元子ノードが、応答の欠如を（例えばタイムアウトを介して）通知すること、及び別の新しい親ノードを選択することに依拠する。これは、非肯定（ＮＡＫ）信号を要求元ノードに送信することによるものであり得る。要求元ノードは、別の新しい親ノードを選択すること、及び新しいＤＡＯ信号を伝送することによって、ＮＡＫ信号に応答する。プロセス１０００は、エラー処理に続いて、終了ブロック１００６で終了する。
【００４５】
図８に戻ると、ＤＡＯ信号の伝送（ブロック８０３）に続き、プロセス８００は、ブロック８０４で、新しい親ノードからＤＡＯ＿ＡＣＫ信号を受信することによって続行される。前述のように、このＤＡＯ＿ＡＣＫ信号は、新しい親ノードによって割り当てられるネットワークアドレスを含む。次いで子ノードは、そのネットワークアドレスを、ＤＡＯ＿ＡＣＫ伝送に含まれる割り当てられたアドレスに変更する（ブロック８０５）。次いで現在のノードは、上記した様式でこの新しく割り当てられた子アドレスに応答する。プロセス８００は終了ブロック８０６で終了する。
【００４６】
本発明は、ＤＡＯ＿ＡＣＫ信号ではなくＭＡＣ＿ＡＣＫ信号を用いて実施されてもよい。このＭＡＣ＿ＡＣＫ信号は、同様に、要求元子ノードの一時的アドレスに向けられ、ペイロードの一部として、新しく割り当てられたネットワークアドレスを含む。
【００４７】
本発明は、ネットワークアドレスの割り当て及び再利用において、下記の利点を有する。本発明は、ネットワークアドレスの割り当て、再利用、及び再割り当てのための、シンプル且つ洗練されたソリューションである。本発明は、アドレス管理の３つの態様すべてについて同一の基本的原理を用いる。本発明は、ペイロードネットワークアドレス情報を用いることによって、既存の規格に完全に準拠している。本発明は、如何なる付加的な実装オーバーヘッドをも被らない。本発明は、階層Ｄｏ＿ＤａｇベースのＲＰＬネットワーク（Ｈ−ＤＯＣ）が（ノードネットワークアドレスに対応する）サイズ１のルーティングテーブルを用いて動作することを保証する。
【図１】
2018526948.tif 000003
【図２】
2018526948.tif 000004
【図３】
2018526948.tif 000005
【図４】
2018526948.tif 000006
【図５】
2018526948.tif 000007
【図６】
2018526948.tif 000008
【図７】
2018526948.tif 000009
【図８】
2018526948.tif 000010
【図９】
2018526948.tif 000011
【図１０】
2018526948.tif 000012
【国際調査報告】
2018526948.tif 000013