(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022022277
(43)【公開日】2022-02-03
(54)【発明の名称】階層ベースRPLネットワークのためのネットワークアドレスの割り当て及び再利用
(51)【国際特許分類】
H04L 61/5084 20220101AFI20220127BHJP
H04W 84/18 20090101ALI20220127BHJP
H04W 76/14 20180101ALI20220127BHJP
H04W 76/11 20180101ALI20220127BHJP
【FI】
H04L61/5084
H04W84/18
H04W76/14
H04W76/11
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021191020
(22)【出願日】2021-11-25
(62)【分割の表示】P 2018530650の分割
【原出願日】2016-08-29
(31)【優先権主張番号】62/211,512
(32)【優先日】2015-08-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【弁護士】
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】ラマヌジャ ヴェダンハム
(72)【発明者】
【氏名】クマラン ヴィジャヤサンカール
(72)【発明者】
【氏名】アーヴィンド ケイ ラグー
(72)【発明者】
【氏名】アリトン イー シャーファ
(57)【要約】
【解決手段】 本発明は、階層Do_DagベースのRPL(Hierarchical Do-Dag based RPL:H-DOC)ネットワーク構成の改良であり、この構成において、各ノードのネットワークアドレスが、H-DOCネットワーク内のロケーションに対応する。ネットワークアドレスは階層的に初期化される(600)。候補の親ノードは、可用性をシグナリングする(602)。候補の子ノードは、候補の親ノードを選択し(603)、一時的アドレスを用いて応答する(604)。選択された候補の親ノードは、選択に肯定応答し、子ノードについての階層アドレスを伝送において一時的アドレスに通信する(605)。子ノードは、アドレスを親ノードからの階層アドレスに変更する(606)。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ルートノードを含む複数のノードを含む有向非巡回グラフ(DODAG)ネットワーク構成のネットワークアドレス初期化の方法であって、前記ネットワークアドレスが、前記複数のノードの複数の階層レベルに対応する所定のレベルのサブセットを有し、前記方法が、
前記ルートノードが、DODAG情報オブジェクト要求(DIO)信号を、親ノードとしての可用性を示す少なくとも一つの候補子ノードにブロードキャストすること、及び、所定のルートノードのビットのセットを有する第1のレベルのアドレスサブセットと、各々が所定のヌルビットのセットを有する少なくとも一つの追加レベルのアドレスサブセットとを含むルートノードアドレスをブロードキャストすること、
前記DIO信号を候補子ノードにおいて受信すること、
前記ルートノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記候補子ノードから前記ルートノードアドレスの前記ルートノードに伝送すること、
前記DAO信号を前記ルートノードにおいて受信すること、
前記ルートノードにおいて、前記候補子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記第1のレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第2のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記階層アドレスのインジケーションを含むDAO_ACK信号を、前記ルートノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記DAO_ACK信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記DAO_ACK信号に含まれる前記階層アドレスに変更すること、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
応答する前記アドレスを変更することによって、子ノードとして確認する際に、
各ノードが、DODAG情報オブジェクト要求(DIO)信号を、親ノードとしての可用性を示す少なくとも一つの候補子ノードにブロードキャストすること、並びに、そのアドレスに等しいノードアドレスレベルのアドレスサブセットと、各々が所定のヌルビットのセットを有する少なくとも一つの追加レベルのアドレスサブセットとをブロードキャストすること、
前記DIO信号を候補子ノードにおいて受信すること、
前記ノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記候補子ノードから前記ノードアドレスの前記ノードに伝送すること、
前記DAO信号を前記ノードにおいて受信すること、
前記候補子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記第1のレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第2のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記階層アドレスのインジケーションを含むDAO_ACK信号を、前記ノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記DAO_ACK信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記DA
O_ACK信号に含まれる前記階層アドレスに変更すること、
を更に含む、方法。
【請求項3】
親ノード及び子ノードとして編成される複数のノードを含む有向非巡回グラフ(DODAG)ネットワーク構成で階層ネットワークアドレスを変更する方法であって、
子ノードにおいて、ネットワークアドレスを変更するように決定すること、
前記子ノードにおいて、好ましい新しい親ノードを決定すること、
もはや前記古い親ノードの子ノードではない旨の決定を示す、DAO_NO_PATH信号を、前記子ノードから前記古い親ノードに伝送すること、
前記DAO_NO_PATH信号を前記古い親ノードにおいて受信すること、
前記古い親ノードにおいて、前記DAO_NO_PATH信号を伝送するノードの子状況を割り当て解除すること、
前記ノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを、前記子ノードから、選択された候補親ノードに伝送すること、
前記DAO信号を前記候補親ノードにおいて受信すること、
前記候補親ノードにおいて、前記子ノードについて階層アドレスを選択することであって、前記階層アドレスが、前記候補親ノードのネットワークアドレスに対応する少なくとも一つのレベルのアドレスサブセットと、前記候補子ノードに固有であるように選択される第2のレベルのアドレスサブセットと、前記所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される、前記階層アドレスを選択すること、
前記選択された階層アドレスのインジケーションを含むDAO_ACK信号を、前記候補親ノードから前記一時的アドレスの前記子ノードに伝送すること、
前記子ノードにおいて前記DAO_ACK信号を受信すること、及び、
前記子ノードにおいて、応答する前記アドレスを、前記一時的アドレスから、前記DAO_ACK信号に含まれる前記階層アドレスに変更すること、
を含む、方法。
【請求項4】
請求項3に記載の方法であって、
前記子ノードの前記一時的アドレスが、前記子ノードの以前のアドレスである、方法。
【請求項5】
請求項3に記載の方法であって、
前記子ノードの前記一時的アドレスが、一時的アドレスのために設定されるアドレスセットから選択されたアドレスである、方法。
【請求項6】
ルートノードを含む複数の階層的に配置されるノードを含む有向非巡回グラフ(DODAG)ネットワーク構成のネットワーク通信の方法であって、前記ネットワークアドレスが、前記ノードの複数の階層レベルに対応する所定のレベルのサブセットを有し、前記方法が、
ノードにおいて受信される通信の宛先アドレスを、前記ノードの前記ネットワークアドレスと比較すること、
前記ノードの前記ネットワークアドレスの前記階層レベルに対応する前記宛先アドレスの前記サブセットが、前記ノードの前記ネットワークアドレスのその階層レベルのサブセットと一致しない場合、前記通信を親ノードにルーティングすること、
前記宛先アドレスが前記ノードの前記ネットワークアドレスに一致する場合、前記ノードでのサービスのために前記通信を受信すること、及び、
前記ノードの前記階層レベル及びすべての一層高い階層レベルの前記宛先ノードアドレスが、前記ノードの前記ネットワークアドレスのサブセットに一致し、前記宛先ノードアドレスが、著しく低いレベルのアドレスフィールドを更に含む場合、前記通信を子ノードにルーティングすることであって、前記通信がルーティングされる前記子ノードが、前記
宛先アドレスに一致する現在のノードのレベルよりも1階層レベル下のサブセットネットワークアドレスを有する、前記通信を子ノードにルーティングすること、
を含む、方法。
【請求項7】
複数のノードを含む有向非巡回グラフ(DODAG)ネットワーク構成で用いるためのノードであって、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するために前記通信トランシーバに接続されるノードコントローラ、
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードコントローラに、
候補親ノードからDODAG情報オブジェクト要求(DIO)を受信させ、
子ノードとして前記候補親ノードに接続するかどうかを判定させ、
前記候補親ノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記ノードが応答することになる一時的ネットワークアドレスとを、前記候補親ノードに伝送させ、
選択される階層ネットワークアドレスを含む前記候補親ノードからDAO_ACK信号を受信させ、
前記メモリに記憶された前記ネットワークアドレスを、前記一時的アドレスから、前記DAO_ACK信号に含まれる前記階層アドレスに変更させる、
ように動作可能である、ノード。
【請求項8】
請求項7に記載のノードであって、
前記メモリに記憶される前記制御プログラムが更に、前記ノードコントローラに、
現在の親ノードを新しい親ノードに変更するかどうかを判定させ、及び、
前記現在の親ノードを新しい親ノードに変更するように判定する際、もはや前記現在の親ノードの子ノードでないという判定を示すDAO_NO_PATH信号を、前記現在の親ノードに伝送させる、
ように動作可能である、ノード。
【請求項9】
請求項8に記載のノードであって、
前記メモリに記憶される前記制御プログラムが更に、DAO_NO_PATH信号の伝送に続いて、前記ノードコントローラに、
前記現在のノードの親ノードとなる前記有向非巡回グラフ(DODAG)ネットワーク構成の別のノードを選択させ、及び、
前記選択された親ノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記ノードが応答することになる一時的ネットワークアドレスとを、前記選択された親ノードへ伝送させる、
ように動作可能である、ノード。
【請求項10】
複数のノードを含む有向非巡回グラフ(DODAG)ネットワーク構成において用いるためのノードであって、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するために前記通信トランシーバに接続されるノードコントローラ、及び
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードの子ノードになるという要望を示すDAO(Destination Advertisement Object)信号と、前記子ノードが応答することになる一時的ネットワークアドレスとを受信する際に、前記ノードコントローラに、
第1のレベルのアドレスサブセットと、候補の子ノードに固有であるように選択される第2のレベルのアドレスサブセットと、所定のヌルビットのセットを有する前記追加レベルのアドレスサブセットの各々とで構成される前記子ノードについて、階層アドレスを選択させ、及び、
前記選択された階層アドレスのインジケーションを含むDAO_ACK信号を、前記一時的アドレスの前記子ノードに伝送させる、
ように動作可能である、ノード。
【請求項11】
請求項10に記載のノードであって、
前記メモリに記憶される前記制御プログラムが更に、DAO_NO_PATH信号の受信に続いて、前記ノードコントローラに、前記DAO_NO_PATH信号を伝送するノードの子の状況を割り当て解除させるように動作可能である、ノード。
【請求項12】
複数のノードを含む有向非巡回グラフ(DODAG)ネットワーク構成において用いるためのノードであって、ルートノードを除く各ノードが親ノードを含み、前記ノードが、
少なくとも親ノード及び少なくとも一つの子ノードと通信するように動作可能な通信トランシーバ、
前記ノードの機能を制御するため前記通信トランシーバに接続されるノードコントローラ、及び
前記ノードコントローラのための制御プログラム及びネットワークアドレスを記憶する、前記ノードコントローラに接続されるメモリ、
を含み、
前記制御プログラムが、前記ノードコントローラに、
前記ノードにおいて受信される通信の宛先アドレスを、前記ノードの前記ネットワークアドレスと比較させ、
前記ノードの前記ネットワークアドレスの前記階層レベルに対応する前記宛先アドレスの前記サブセットが、前記ノードの前記ネットワークアドレスのその階層レベルの前記サブセットと一致しない場合、前記通信を親ノードにルーティングさせ、
前記宛先アドレスが前記ノードの前記ネットワークアドレスに一致する場合、前記ノードでのサービスのために前記通信を受信させ、及び、
前記ノードの前記階層レベル及びすべての一層高い階層レベルの前記宛先ノードアドレスが、前記ノードの前記ネットワークアドレスのサブセットに一致し、及び更に、著しく低レベルのアドレスフィールドを含む場合、前記通信を子ノードにルーティングさせる、
ように動作可能であり、
前記通信がルーティングされる前記子ノードが、前記宛先アドレスに一致する前記現在のノードのレベルよりも1階層レベル下のサブセットネットワークアドレスを有する、ノード。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、可変アドレスを有するノードを含むネットワーク通信に関する。
【背景技術】
【0002】
アドホックワイヤレス通信ネットワークは、ノードが、既存のネットワークリソースのレンジ内に入るにつれて動的に形成される。これらのネットワークは、センサなどのネットワーク上の下位デバイスと、これらのセンサと通信する上層デバイスとの間の通信を提供するために、多くの適用例において利用され得る。これらのセンサは、典型的に、制限された処理及びメモリで動作し、しばしば様々な技術的制限によって制約される。こうした制限は、それぞれのネットワークを形成するために用いられる、電力消費、スモールフォームファクタ、及び通信の課題(低速、高エラーレートなど)に関する問題を含み得る。これらの課題は、こうした課題間に相互依存関係が存在し得る場合、更に複雑化する。例えば、ネットワーク内の通信のレベルは、ネットワークデバイスにおける電力消費に影響を与える。
【0003】
本開示は、こうしたアドホック通信ネットワークのためのアドレス生成に関する。或るネットワークが、そのネットワークにわたって通信するためにルーティングプロトコルを用いる、少なくとも2つのノードを含む。ルーティングプロトコルは、例えば、RPL(Routing for Low Power)ネットワークプロトコルであり得る。ノードのうちの一つは親ノードであり、他のノードは親ノードの子ノードである。いくつかの場合において、親ノードは、階層ネットワークの頂部にあるルートノードであり得る。他の場合において、親ノードはまた、ルートノードよりダウンストリームにある中間ノードであり得、リーフノードと呼ぶこともある、中間ノードと通信する他の子ノードを有し得る。
【発明の概要】
【0004】
アドレスジェネレータが、子ノードに固有ネットワークアドレスを作成するために、いくつかのビットのアドレス値を親ノードの親アドレスに付加することによって、各ノードに固有ネットワークアドレスを割り当てる。このようにして、ネットワークにおける各ノードは、本明細書で開示される様々な割り当てプロトコルを介して固有ネットワークアドレスを作成する一方で、そのそれぞれの親から部分的にその識別を仮定し得る。各ノードは、その導出された親アドレス割り当てに基づいて、メッセージをアップストリーム又はダウンストリームのいずれにルーティングするかを決定することができるため、アドレス割り当てプロトコルは、メッセージルーティングのために、各ノードが、アドホックネットワークにおいて次のホップがどれであるかが分かるようにし得る。これにより、従来のシステムのようなルーティングテーブルの必要性が緩和され、それによって、システムのそれぞれのノードにおけるメモリが節約される。更に、入ってくるノードがすでに親のノードアドレスの一部であるので、新しい子ノードに遭遇する各中間ノードは、ネットワークに対して追加のアドレス告知を通信する必要がないため、ネットワークにおけるハンドシェーキングが低減される。ハンドシェーキング通信の低減により、システムにおいて消費される電力が低減される。
【図面の簡単な説明】
【0005】
【
図1】例示のノードのブロック図である(従来技術)。
【0006】
【
図2】ノードの階層ネットワークを図示する(従来技術)。
【0007】
【
図3】階層ネットワークアドレス技法におけるアドレスセグメントの図である(従来技術)。
【0008】
【
図4】
図3の階層ネットワークアドレス技法を用いるときの、メッセージルーティングを図示するフローチャートである。
【0009】
【
図5】本発明に従った、ネットワークアドレス初期化における潜在的親ノードのアクションを図示するフローチャートである。
【0010】
【
図6】本発明に従った、ネットワークアドレス初期化における潜在的子ノードのアクションを図示するフローチャートである。
【0011】
【
図7】本発明に従った、ネットワークアドレス初期化における選択された親ノードのアクションを図示するフローチャートである。
【0012】
【
図8】本発明に従った、親ノードを変更するときの子ノードのアクションを図示するフローチャートである。
【0013】
【
図9】本発明に従った、親ノードを変更するときの古い親ノードのアクションを図示するフローチャートである。
【0014】
【
図10】本発明に従った、親ノードを変更するときの新しい親ノードのアクションを図示するフローチャートである。
【発明を実施するための形態】
【0015】
図1(従来技術)は、例示のノード100のフローチャートである。ノード100は、典型的に用いられる複数のノードのうちの1つである。ノード100は、通信トランシーバ101を含む。通信トランシーバ101は、他のノードとの双方向通信を可能にする。既知の技術によれば、各ノードには通信アドレスが提供される。ノード100は、宛先ノードとしてメッセージヘッダ識別ノード100を有する通信にのみ応答する。この識別は、典型的に、宛先ノードの通信アドレスによって成される。ノード通信アドレスは、以降でより詳細に説明する。
図1に示されるノード100は、特定の通信媒体に限定されない。典型的に、低電力無線周波信号を介してノード間にワイヤレス通信を提供ためことである。
【0016】
ノード100はノードコントローラ102を含む。ノードコントローラ102は典型的にプログラマブルマイクロプロセッサを含む。ノードコントローラ102のこのマイクロプロセッサは、ノード100の動作特徴を提供する。ノードコントローラ102は、通信トランシーバ101への双方向接続を介して他のノードとメッセージを交換し得る。当分野で知られているように、ノードコントローラ102のマイクロプロセッサは、メモリ103に記憶された命令によってプログラミングされる。メモリ103は、典型的に、読み取り専用メモリ(ROM)又はFLASHメモリなど、コンテンツが継続的な電力に依存しない不揮発性メモリと、一般にランダムアクセスメモリ(RAM)として知られる、電力が中断するとコンテンツが失われる揮発性メモリとの両方を含む。典型的に、プログラム命令が不揮発性メモリに記憶され、より一時的なデータが揮発性メモリに記憶される。ノードコントローラ102は、センサ105及びアクチュエータ106(後述)と、及び、通信トランシーバ101を介して他のノードと通信する。
図1に示されるように、メモリ103は、ノード100に割り当てられるネットワークアドレスの記憶専用の少なくとも一部分104を含む。後述するように、ノード100は、メモリ103に記憶されるネットワークアドレスに一致する宛先アドレスを有するメッセージにのみ応答する。
【0017】
ノード100は、オプションで、一つ又は複数のセンサ105又はアクチュエータ106を含む。典型的に、ノード100などの複数のノードが共に用いられる。センサ105は、ノードのネットワークによる使用のための環境条件を検出する。これらの環境条件は、周囲温度、風速、圧力などであり得る。アクチュエータ106は、ノードのネットワークから受信されるコマンドに従って環境を制御するために用いられ得る。アクチュエータが、ノード100の電気スイッチ、流体バルブ、又は動的部分のコントロールを含み得る。ノードの任意の特定の例には、一つ又は複数のセンサ及び一つ又は複数のアクチュエータ、一つのみのセンサ又は一つのみのアクチュエータが含まれ得る。
【0018】
ノード100は電源107を含む。典型的な適用例において、ノード100は非常に小さい電力を用いるように設計される。電源107は小型バッテリとし得る。他の適用例において、電源107は環境から電力を回収するように設計される。電源107は、バックアップキャパシタ又は夜間用の他の電力ストレージを備える、太陽電池であり得る。代替として電源107は、環境的な運きから電力を生成する、ある種のモーションキャプチャデバイスであり得る。波の動きから電力を生成する海洋気象ブイが、一例である。
【0019】
図2は、こうしたノードのネットワークにおけるノード間の従来技術の好ましい通信を示す。好ましい実施形態において、ノードは階層ネットワーク状に配置される。ネットワーク200は、ルートノードとしても知られる単一のLevel 0のノードN1を示す。Level 0のノードN1は、Level 1のノードN2及びN3と直接通信する。Level 1のノードN2は、Level 2のノードN4及びN5と直接通信する。Level 1のノードN3は、Level 2のノードN6及びN7と直接通信する。Level NのノードN16~N63は、Level N-1ノード(図示せず)と直接通信する。このようにTop LevelのノードN1は、子ノードN2及びN3のみと直接通信する。Level 1のノードN2は、親ノードN1並びに子ノードN4及びN5と通信する。Level 1のノードN3は、親ノードN1並びに子ノードN6及びN7と直接通信する。Bottom Level(Level N)において、各ノードN16~N64は、それぞれの親ノード(図示せず)と直接通信する。
【0020】
前述のように、本発明に従ったノードのネットワークは、典型的に、ローパワー無線周波信号を介したノード間のワイヤレス通信を用いる。したがって親ノードは、その子ノードとは配線接続されない。すべてのワイヤレス通信は、一つ又はわずかな無線周波数のみを共有し得る。この環境は、ノードが、通信がそのノード向けであるかどうかを判定するための何らかの様式を必要とする。こうしたネットワークは、典型的に、通信を区別するためにネットワークアドレスを用いる。ネットワークにおける各ノードに、ネットワークアドレスが割り当てられる。ネットワークにおける各通信は、宛先ノードのネットワークアドレスへの参照を含む。この宛先ノードネットワークアドレスは、典型的に、メッセージヘッダにおいて特定される。通信を受信すると、各ノードはメッセージから宛先ノードネットワークアドレスを抽出する。ノードは、この宛先ノードネットワークアドレスをそれ自体のネットワークアドレスと比較する。ノードは、宛先ノードネットワークアドレスがそれ自体のネットワークアドレスに一致する場合、メッセージに応答する。ノードは、宛先ノードネットワークアドレスがそれ自体のネットワークアドレスに一致しない場合、この通信を無視する。ノードは、宛先ノードに到達するための試みにおいて、その親ノードに又はその子ノードのうちの一つにメッセージをルーティングすることもできる。ノードは、典型的に、その親ノードから又はその子ノードのうちの一つからのメッセージのみを処理する(サービス又はルーティングする)。
【0021】
宛先ノードに対するネットワークアドレスを提供することで、所望のノードを識別する。宛先ネットワークアドレスは、ルーティングに関する情報を自動的に提供しない。好ましい実施形態において、通信にローパワー無線周波信号を用いることで、すべてのノードがすべての他のノードのレンジ内に入るとは限らないことになる。好ましい実施形態において、親ノード及びその子ノードのみが通信状態にあることが保証される。したがって、別のノードに向けられる通信は、親ノードへと階層を上方に、又は適切な子ノードへと階層を下方に、送信されなければならない。
【0022】
親ノードと子ノードの間の通信は、ネットワークルーティングプロトコルに従って生じる。ルーティングプロトコルは、例えばRPL(Routing for Low Power Networks)プロトコルであり得る。親ノードはルートノード又は中間ノードであり得、子ノードは、宛先指向有向非巡回グラフ(DODAG)構成において、ルートノード又は中間ノードに対するリーフノードであり得る。DODAGは、少なくとも一つのルートノード、及び少なくとも一つのリーフノードで構成される。
【0023】
別のノードに向けられる通信を適切にルーティングするために、各ノードは宛先ノードについてのルーティング情報にアクセスしなければならない。RPLルーティングプロトコルは2つの動作モードを有する。第1のモードは記憶モードである。第2のモードは非記憶モードである。RPLプロトコル記憶モードにおいて、各ノードはすべての他のノードへのルーティングについての情報をメモリ103に記憶する。通信を受信すると、ノードコントローラ102が宛先ノードアドレスを抽出する。このアドレスがノードアドレスと一致する場合、ノードはこの通信に応答する。この宛先ノードアドレスがノードアドレスと一致しない場合、ノードはこの通信を別のノードにルーティングしなければならない。ノードコントローラ102は、記憶されたルーティング情報を調べて、通信のルーティングを決定する。ルーチンテーブルは、その通信が階層ネットワークを上方に、又は、そのノードの子ノードの一つへと階層ネットワークを下方に、ルーティングされるべきかのみを示す必要がある。この技法は、各ノードでルーティングテーブルを記憶する必要があるため、不利である。これは、ルーティングテーブルを記憶するために各ノードでメモリ及び電力を必要とするので、ハードウェアにとって負担となる。ルーティングテーブルのサイズは、そのノードに対する子ノードの数に、その親に対する一つの付加的なエントリを加えたものに線形に比例する。これは、低コストでローパワーのノードにとって不利である。RPLプロトコル非記憶モードでは、ルートノードのみがルーティングについての情報を記憶する。ノードのいずれのペア間のすべての通信が、まずルートノードへと上方にルーティングされなければならない。ルートノードは、そのルーティングテーブルに基づいて、通信を適切な子ノード及び孫ノードへとルーティングする。この技法により、各ノードでルーティングテーブルを記憶するための要件が不要になる。しかしながらこの技法は、すべての通信がルートノードを通過しなければならないため、通信トラフィックの犠牲を増加させる。
【0024】
図2に図示されるネットワーク構成は、有向非巡回グラフ(DODAG)構成として知られる。
図2に示されるように、DODAGは、少なくとも一つのルートノード及び少なくとも一つのリーフノードで構成される。候補親ノードは、親ノードとしてのそれらの可用性を示すDODAG情報オブジェクト要求(DIO)を伝送する。候補子ノードは、DIOに応答して、それらの好ましい親ノードに対してDAO(Destination Advertisement Object)信号を用いて応答する。
【0025】
図3は、
図2に図示される階層ネットワークと共に有利に用いられる、従来技術の階層Do_DagベースのRPLネットワーク(H-DOC)アドレッシング技法の特徴を示す。各ノードについて、ネットワークアドレス300は、プレフィクスビット301、レベル1ビット302、レベル2ビット303、・・・、レベルNビット309を含む。プレフィクスビット301は、ネットワークにおけるすべてのノードに共通のビット、及びルートノードに関連付けられるビットを含む。階層ネットワーク内のすべてのノードは、プレフィクスビット301におけるビットを含む。ネットワークのルートノードについて、すべての他のビットフィールド(302、303、・・・、309)は、すべて0などの所定のヌル値を有する。レベル1の各ノードは、ルートノードと同じ値を有するプレフィクスビット301と、すべての他のレベル1ノードからのレベル1ビット302内の固有値とを含む。レベル1ノードについて、すべての他のビットフィールド(303、・・・、309)は所定のヌル値を有する。レベル2の各ノードは、ルートノードと同じ値を有するプレフィクスビット301、その親ノードと同じ値を有するレベル1ビット302、及び、同じ親レベル1ノードを有するすべての他のレベル2ノードの中からのレベル2ビット303内の固有値を含む。レベル2ノードについて、すべての他のビットフィールド(・・・309)は所定のヌル値を有する。各レベルフィールドに割り当てられるアドレスビットの数は、所望の親子ファンアウトに依存する設計選択肢である。ネットワークアドレス内のレベルフィールドの順は任意選択であることに留意されたい。すなわち、レベルフィールドは、
図3に示される高ビットから低ビットへの順序のみではなく、任意の順序であり得る。ネットワーク内のすべてのノードが同じレベルフィールド順を用いることのみが要求される。
【0026】
この階層ネットワークアドレス技法の特徴の一つは、各ノードのネットワークアドレスが階層ネットワーク内のそのロケーションに対応することである。各ノードは、その親ノードに、及びルートノードまでの階層の上方へのすべての中間ノードに依存するネットワークアドレスを有する。これにより、各ノードでのルーティング決定が簡略化される。
【0027】
図4は、階層アドレスを用いるときの、メッセージルーティングを処理するためのプロセス400のフローチャートを示す。好ましい実施形態において、各ノードでメモリ103は、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。ルーティングには3つの可能性がある。メッセージは、現在のノードの親ノードへと階層を上方にルーティングされる必要があり得る。メッセージは現在のノード向けであり得る。メッセージは、現在のノードの子ノードへと階層を下方にルーティングされる必要があり得る。現在のノードの親ノードから受信するメッセージが、現在のノードに向けられ得、或いは、下方の階層ノードへとルーティングされる必要があり得る。子ノードからのメッセージが、親ノードへと階層を上方にルーティングされる必要があり得、又は、現在のノードに向けられ得、或いは、別の子ノードへと下方の階層にルーティングされる必要があり得る。
【0028】
プロセス400は、別のノードからのメッセージの受信の際に開始する(ブロック401)。ノードは、メッセージヘッダから宛先アドレスを抽出する(ブロック402)。メッセージのルーティングは、現在のノードのノードアドレスに対する宛先アドレスの関係に依存する。
【0029】
テストブロック403は、宛先アドレスが現在のノードアドレスの高レベルアドレススロットに一致し、現在のノードアドレスの現在のレベルアドレスには一致しないかどうかを判定する。当てはまる(テストブロック403で「はい」である)場合、メッセージは階層を上方へルーティングされるべきである。ブロック404は、メッセージを現在のノードの親ノードへとルーティングする。ブロック404におけるメッセージのこのルーティングに続き、プロセス400は終了ブロック405で終了する。当てはまらない(テストブロック403で「いいえ」である)場合、フローはテストブロック406に渡される。
【0030】
テストブロック406は、宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致するかどうかを判定する。宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致する(ブロック406で「はい」である)場合、現在のノードは意図される宛先である。したがって、ブロック407は、このメッセージをサービスする。メッセージをサービスする厳密な様式は、ネットワークの意図される用途に依存する。メッセージは、現在のノードのセンサ104からのデータについての要求であり得る。メッセージは、アクチュエータ106を介して現在のノードに何らかのアクションを行うためのコマンドであり得る。このメッセージをサービスする厳密な性質は、本発明の範囲を超えている。ブロック407におけるメッセージのサービスに続き、プロセス400は終了ブロック408で終了する。
【0031】
宛先アドレスが、現在のノードレベルより下のレベルフィールドについての所定のヌル値を含む現在のノードのアドレスに一致しない(ブロック406で「いいえ」である)場合、現在のノードは意図される宛先ではない。テストブロック409は、宛先ノードアドレスが現在のノードアドレスのフィールドに一致し、著しく低レベルのアドレスフィールドを更に含むかどうかを判定する。これが真である(テストブロック409で「はい」である)場合、メッセージは現在のノードの子ノードにルーティングされる。ブロック410は、メッセージを適切な子ノードへと階層を下方にルーティングする。適切な子ノードは、現在のノードのレベルより一つ下のレベルのレベルアドレスフィールドによって決定される。ブロック410におけるメッセージのこのルーティングに続き、プロセス400は終了ブロック411で終了する。
【0032】
これらの条件のいずれにも一致しない(テストブロック403で「いいえ」であり、テストブロック406で「いいえ」であり、テストブロック409で「いいえ」である)場合、宛先アドレスにエラーが存在する。エラー処理ブロック412はこのエラーを処理する。これは本発明の範囲を超えている。
【0033】
H-DOC技法の実際の実装において、重大な制限が存在する。ネットワークにおいてノードアドレスを割り当てるためのクリーンな方法は存在しない。ノードアドレスを再割り当てするための対策は存在しない。ノードがその親ノードを変更することは複雑又は不可能である。そのような変更は、ノードが移動体である場合に必要であり得る。本発明は、メッシュネットワークについてのアドレス割り当て及び再割り当てのためのH-DOC技法の制限に対処する。本発明は、H-DOC技法を用いるRPLネットワークにおいて用いられる2つのメッセージをわずかに改変する。従来技術において、ノードが、DODAG情報オブジェクト要求(DIO)メッセージをその潜在的子ノードに送信する。そのノードに接続することを望む子ノードが、DAO(Destination Advertisement Object)メッセージを用いて応答する。一般に、各ノードは、子ノードとの接続を試みる前にその親ノードと接続する。本発明は、階層ネットワークにおけるネットワークアドレスのより良い割り当てを提供する。
【0034】
図5~
図7は共に、本発明に従った階層アドレス初期化を図示する。
図5は、候補親ノード上で行なわれるプロセス500を図示する。
図6は、候補子ノード上で行なわれるプロセス600を図示する。
図7は、選択された親ノード上で行なわれるプロセス700を図示する。
【0035】
図5は、開始ブロック501で始まる候補親ノードでのプロセス500を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。ブロック502で、候補親ノードはDIO信号をブロードキャストする。DIO信号は従来技術と同様である。DIO信号は、親ノード及びそのネットワークアドレスとしての伝送ノードの可用性をアナウンスする。このDIO信号は、典型的に、伝送ノードのすべての候補子ノードにブロードキャストされる。こうしたブロードキャストは、ワイヤレス通信を用いる典型的なネットワークにおいて可能である。初期化プロセスは、好ましくはルートノードで開始し、階層を下方に進行する。ルートノードは、それがルートノードであり初期化を開始することをわかっているものと想定される。ノードは、親ノードに接続されるまで、子ノードに接続するためにDIO信号を伝送することはできない。DIO信号の伝送は、現在のノードが少なくとも一つのノードを子ノードとして受け入れることが可能であることを示す。したがってこれにより、現在のノードが、
図3において次のレベルフィールドのサイズによって制限されるように割り当てられる最大数より少ない子ノードを有することが保証される。プロセス500は終了ブロック503で終了する。
【0036】
図6は、候補子ノードのプロセス600を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。プロセス600は開始ブロック601で始まる。ブロック602で、候補子ノードは、候補親ノードから少なくとも一つのDIO信号を受信する。候補子ノードは、受信されたDIO信号の中から親ノードを選択する。この選択の方式は本発明にとって重要ではない。この選択には、受信されたDIO信号から、選択された親ノードのネットワークアドレスを識別することが含まれる。ブロック604において、ノードは選択された親ノードにDAO信号を伝送する。このDAO信号は、DIO信号から抽出される選択された親ノードのネットワークアドレスに一致する宛先ネットワークアドレスを介して、選択された親ノードに向けられる。本発明によれば、このDAO信号は、伝送ノードが応答することになる一時的ネットワークアドレスに関する情報を含む。この一時的ノードアドレスは、この目的のために設定されたノードアドレスのセットから選択されるアドレスであり得る。
【0037】
図7は、選択された親ノードによって行われるプロセス700を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。プロセス700は開始ブロック701で始まる。ブロック702で、選択された親ノードはDAO信号を受信する。前述のように、このDAO信号は、宛先アドレスによって現在のノードに向けられ、子ノードの一時的アドレスのインジケーションを含む。ブロック703において、プロセス700は、要求元ノードに割り当てるために利用可能なネットワークアドレスを選択する。前述のように、このノードは、親ノードとしての可用性を示すDIO信号を伝送した(ブロック502)。これにより、現在のノードが別の子ノードを受け入れ得ることが保証される。このノードは、現在割り当てられている子ノードのネットワークアドレスのインジケーションを記憶する。次いでプロセス700は、DAO_ACK信号を要求元ノードに返送する(ブロック704)。このDAO_ACK信号は、受信されたDAO信号の一時的アドレスに伝送される(ブロック702)。このDAO_ACK信号は、ブロック703においてこの子ノードに割り当てられたネットワークアドレスを示すペイロードを含む。
図3に関連して示されるように、階層アドレス技法によれば、この割り当てられたアドレスは、親ノードのネットワークアドレスと同一の親ノードのレベルまで下がる高レベルフィールドを含む。親ノードのレベルより1レベル下のフィールドは、現在割り当てられている子ノードの中から未使用のアドレスがあれば、このアドレスに設定される。プロセス700は終了ブロック705で終了する。
【0038】
プロセス600(
図6)は、ブロック604で続行される。ノードは、選択された親ノードからDAO_ACK信号を受信する(ブロック605)。前述のように、このDAO_ACK信号は、選択された親ノードによって割り当てられる子ネットワークアドレスを含む。次いで子ノードは、そのネットワークアドレスを、DAO_ACK伝送のペイロードに含まれる割り当てられたアドレスに変更する(ブロック606)。次いで現在のノードは、上記した様式でこの新しく割り当てられた子アドレスに応答する。前述のように、このネットワークアドレスの割り当ての際、この子ノードは、それが他のノードに対する親ノードであり得ることを示すDIO信号を伝送し得る。
【0039】
従来技術の階層アドレス技法は、一旦初期化されると、ネットワークを再配置する様式を提供していない。ネットワークが移動体ノードを含む場合、ノードは、その現在の親ノードがよりアクセスしやすいロケーションに移動し得る。アドレスの階層的性質に起因して、これには子ノードのアドレスの再割り当てが必要となる。
図8から
図10はこのプロセスを示す。
図8は、移動する子ノード上で行なわれるプロセス800を示す。
図9は、古い親ノード上で行なわれるプロセスを示す。
図10は、新しい親ノード上で行なわれるプロセス1000を示す。
【0040】
図8は、移動する子ノード上で行なわれるプロセス800を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。プロセス800は開始ブロック801で始まる。子ノードが、親ノードを変更するように決定したこと、及び、新しい親ノードの識別(及びそのため、ネットワークアドレス)を選択したことが想定される。プロセス800は、新しい信号DAO_NO_PATHを古い親ノードに伝送する。子ノードは、この伝送を古い親ノードのネットワークアドレスに向ける。このDAO_NO_PATH信号はまた、好ましくは、古いネットワークアドレスによって伝送元ノードを識別する。
【0041】
図9は、古い親ノード上で行なわれるプロセス900を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。プロセス900は開始ブロック901で始まる。ブロック902で、古い親ノードは、DAO_NO_PATH信号を受信する。DAO_NO_PATH信号に応答して、古い親ノードは、伝送元ノードに割り当てられたアドレスを割り当て解除する(ブロック903)。したがって古い親ノードは、もはや伝送元ノードの親ではない。プロセス900は終了ブロック904で終了する。
【0042】
図8に戻ると、DAO_NO_PATH信号の伝送に続き、移動する子ノードは、DAO信号を選択された新しい親ノードに伝送する(ブロック803)。このプロセスは、前述のブロック604と同様である。DAO信号は、選択された新しい親ノードを示す宛先ノードを含む。DAO信号は、応答のための一時的ノードアドレスも含む。この一時的ノードアドレスは、以前のアドレスであり得る。古い親ノードはこのノードアドレスを再割り当てしており、このアドレスを介して移動する子ノードと通信するように試みないことに留意されたい。この一時的ノードアドレスは、この目的のために取っておいたノードアドレスのセットから選択されるアドレスであり得る。
【0043】
図10は、新しい親ノード上で行なわれるプロセス1000を示す。好ましい実施形態において、メモリ103は各ノードで、ノードコントローラ102にこのプロセスを実行させる命令を記憶する。プロセス1000は開始ブロック1001で始まる。ブロック1002で、新しい親ノードは、子ノードの一時的アドレスのインジケーションを含むDAO信号を受信する。テストブロック1003において、プロセス1000は、新しい子ノードにとってネットワークアドレスが利用可能であるかどうかを判定する。これは、
図7に示されるプロセス700とはわずかに異なる。プロセス700では、ノードは、新しい子ノードを受け入れるための可用性を示すDIO信号を伝送していた。プロセス1000では、選択された親ノードは、別の子ノードに割り当てるために利用可能なネットワークアドレスを有さない場合がある。新しい親ノードが新しい子ノードへの割り当てに利用可能なネットワークを有する場合(テストブロック1003で「はい」)、ブロック1004において、プロセス1000は、要求元ノードへの割り当てに対して利用可能なネットワークアドレスを選択する。次いでプロセス1000は、DAO_ACK信号を要求元ノードに返送する(ブロック1005)。このDAO_ACK信号は、受信されたDAO信号の一時的アドレスに伝送される(ブロック1002)。このDAO_ACK信号は、ブロック1004でこの子ノードについて選択されたネットワークアドレスを示すペイロードを含む。プロセス1000は終了ブロック1006で終了する。
【0044】
新しい親ノードが新しい子ノードへの割り当てに対して利用可能なネットワークを有さない場合(テストブロック1003で「いいえ」)、プロセス1000はブロック1007においてエラー処理を開始する。このエラー処理は、DAO信号に応答できない可能性がある。これは、要求元子ノードが、応答の欠如を(例えばタイムアウトを介して)通知すること、及び別の新しい親ノードを選択することに依拠する。これは、非肯定(NAK)信号を要求元ノードに送信することによるものであり得る。要求元ノードは、別の新しい親ノードを選択すること、及び新しいDAO信号を伝送することによって、NAK信号に応答する。プロセス1000は、エラー処理に続いて、終了ブロック1006で終了する。
【0045】
図8に戻ると、DAO信号の伝送(ブロック803)に続き、プロセス800は、ブロック804で、新しい親ノードからDAO_ACK信号を受信することによって続行される。前述のように、このDAO_ACK信号は、新しい親ノードによって割り当てられるネットワークアドレスを含む。次いで子ノードは、そのネットワークアドレスを、DAO_ACK伝送に含まれる割り当てられたアドレスに変更する(ブロック805)。次いで現在のノードは、上記した様式でこの新しく割り当てられた子アドレスに応答する。プロセス800は終了ブロック806で終了する。
【0046】
本発明は、DAO_ACK信号ではなくMAC_ACK信号を用いて実施されてもよい。このMAC_ACK信号は、同様に、要求元子ノードの一時的アドレスに向けられ、ペイロードの一部として、新しく割り当てられたネットワークアドレスを含む。
【0047】
本発明は、ネットワークアドレスの割り当て及び再利用において、下記の利点を有する。本発明は、ネットワークアドレスの割り当て、再利用、及び再割り当てのための、シンプル且つ洗練されたソリューションである。本発明は、アドレス管理の3つの態様すべてについて同一の基本的原理を用いる。本発明は、ペイロードネットワークアドレス情報を用いることによって、既存の規格に完全に準拠している。本発明は、如何なる付加的な実装オーバーヘッドをも被らない。本発明は、階層Do_DagベースのRPLネットワーク(H-DOC)が(ノードネットワークアドレスに対応する)サイズ1のルーティングテーブルを用いて動作することを保証する。
【手続補正書】
【提出日】2021-12-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ノードであって、
ネットワークにおいて1つ又はそれ以上の他のノードと通信するためのトランシーバと、
前記トランシーバに結合されるノードコントローラと、
前記ノードコントローラに結合され、制御プログラムのためにネットワークアドレスと命令とを格納するメモリであって、前記制御プログラムが、前記ノードコントローラによって実行されるときに、前記ネットワークにおける別のノードから他のノードの前のアドレスである一時的アドレスと前記他のノードが前記ノードの子ノードになることを要求することを示す第1の信号とを受信することに応答して、前記ノードコントローラに、
前記ネットワークアドレスに対応する第1のレベルのアドレスサブセットと前記他のノードに対して特異であるように選択される第2のレベルのアドレスサブセットと所定のヌルビットを含む少なくとも1つの付加的なレベルのアドレスサブセットとを含む、前記他のノードのための階層アドレスを選択させ、
前記トランシーバに前記選択された階層アドレスの指示を示す第2の信号を送信させ、
前記他のノードにおいて前記一時的アドレスを前記第2の信号のペイロードに含まれる前記選択された階層アドレスに変更させる、
ように構成される、前記メモリと、
を含む、ノード。
【請求項2】
請求項1に記載のノードであって、
前記ネットワークが、宛先指向の有向非巡回グラフ(DODAG)ネットワークである、ノード。
【請求項3】
請求項2に記載のノードであって、
前記第1の信号が、DAO(Destination Advertisement Object)信号である、ノード。
【請求項4】
請求項3に記載のノードであって、
前記第2の信号が、DAO確認(DAO_ACK)信号である、ノード。
【請求項5】
請求項2に記載のノードであって、
前記第2の信号が、MAC確認(MAC_ACK)信号である、ノード。
【請求項6】
請求項2に記載のノードであって、
前記制御プログラムが、前記ノードコントローラによって実行されるときに、前記第2の信号を送信することに応答して、前記ノードコントローラに、前記他のノードに子状況を割り当てさせるように更に構成される、ノード。
【請求項7】
請求項6に記載のノードであって、
前記制御プログラムが、前記ノードコントローラによって実行されるときに、前記第2の信号を送信することの後に前記他のノードから第3の信号を受信することに応答して、前記ノードコントローラに、前記他のノードの子状況を割り当て解除させるように更に構成される、ノード。
【請求項8】
ネットワークにおいてネットワークアドレスを初期化する方法であって、
第1のノード装置において第1の信号と第2のノード装置に対応する一時的アドレスとを含む通信を受信することであって、前記第1の信号が、前記第2のノード装置が前記第1のノード装置と子関係を確立することを要求することを示し、前記一時的アドレスが、前記第2のノード装置の前のアドレスである、前記受信することと、
前記第2のノード装置のための階層アドレスを選択することであって、前記階層アドレスが、前記ネットワークアドレスに対応する第1のレベルのアドレスサブセットと、前記第2のノード装置を特異に識別するために選択される第2のレベルのアドレスサブセットと、所定のヌルビットを含む少なくとも1つの付加的なレベルのアドレスサブセットとを含む、前記選択することと、
前記選択された階層アドレスを示す第2の信号を送信することと、
前記第2の信号のペイロードに含まれる前記選択された階層アドレスに変更することと、
を含む、方法。
【請求項9】
請求項8に記載の方法であって、
前記ネットワークが、宛先指向の有向非巡回グラフ(DODAG)ネットワークである、方法。
【請求項10】
請求項9に記載の方法であって、
前記第1の信号が、DAO(Destination Advertisement Object)信号である、方法。
【請求項11】
請求項10に記載の方法であって、
前記第2の信号が、DAO確認(DAO_ACK)信号である、方法。