(57)【特許請求の範囲】
【請求項１】
データノード及び少なくとも１つのシンクノードを含むノードのマルチホップ異種無線ネットワークを形成するバッテリー駆動式ノード（ＢＰＮ）を管理するための、コンピューターにより実施される方法であって、
前記データノードは、バッテリー駆動式ノード（ＢＰＮ）及び商用電源式ノード（ＭＰＮ）を含み、
該方法は、
前記ＢＰＮのスリープスケジュールを、前記マルチホップ異種無線ネットワーク内の他のデータノードの前記スリープスケジュールと独立して、且つ、前記シンクノードによって送信されるコマンドと独立して決定して、前記ＢＰＮの送受信機がオンに切り替えられるとき、ＢＰＮのアクティブ期間を形成し、前記送受信機がオフに切り替えられるとき、ＢＰＮのスリープ期間を形成することと、
前記ＢＰＮのキューがオーバーフローする場合、前記キューに格納された少なくとも幾つかのデータパケットを送信することと、
前記アクティブ期間の少なくとも一部分を受信（ＲＸ）期間及び送信（ＴＸ）期間に分割することと、
前記アクティブ期間の前記一部分の前記分割を指定するウェイクアップ信号を送信することと、
前記ＲＸ期間の満了後、前記ＴＸ期間中に前記データパケットを送信することと
を含む、方法。
【請求項２】
前記ＢＰＮによって新たなデータパケットを生成する自己生成率を求めることと、
該ＢＰＮのホップカウント及び該ＢＰＮの子ノードの数のうちの１つ又はそれらの組合せに基づいて、前記ＢＰＮによって新たなデータパケットを受信する到来率を求めることと、
前記キュー内の前記データパケットの数、前記自己生成率、前記到来率及びキュー容量に基づいて前記アクティブ期間の長さを決定することと
を更に含む、
請求項１に記載の方法。
【請求項３】
前記ＢＰＮによって新たなデータパケットを生成する自己生成率を求めることと、
前記ＢＰＮによって新たなデータパケットを受信する到来率を求めることと、
前記キュー内の前記データパケットの数、前記キューの容量及び前記自己生成率に基づいて、前記スリープ期間の長さを決定することと
を更に含む、請求項１に記載の方法。
【請求項４】
前記ＢＰＮの親ノードから、該親ノードのＲＸの期間及びＴＸの期間を示すウェイクアップ信号を受信することと、
前記ＢＰＮの前記キューがオーバーフローするまで、前記親ノードの前記ＲＸ期間中にのみ前記データパケットを前記親ノードに送信することと
を更に含む、請求項１に記載の方法。
【請求項５】
前記キュー内の前記データパケットの数と、前記アクティブ期間中に自己生成されるデータパケットの数と、ＲＸ期間中に到来するパケットの数との和が、前記キュー内の容量よりも大きいときに、前記キューがオーバーフローすると判定することを更に含む、
請求項１に記載の方法。
【請求項６】
前記データパケットを、エネルギー浪費を最小限にするルーティングパスを介して送信することを更に含む、
請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、無線ネットワークの管理に関し、特に、マルチホップ異種無線ネットワークを形成するバッテリー駆動式ノードのスリープ管理に関する。
【背景技術】
【０００２】
データパケットのルーティング等のエネルギーの効率の良い管理は、制約された電源を有するノードを含むネットワークのための重大な問題である。ノードの電源に従って、ノードは２つのカテゴリー、すなわち、バッテリー駆動式ノード（ＢＰＮ：battery-powered node）等の制約された電源を有するノード、及び商用電源式ノード（ＭＰＮ：mains-powered node）等の制約されていない電源を有するノードに分類することができる。幾つかの用途では、バッテリー交換は実現困難であるか又は不可能である。したがって、ＢＰＮを含む無線ネットワークにおいて、ネットワーク寿命を延ばすことが重要である。ネットワーク寿命は、通常、最初に電池残量が切れるバッテリー駆動式ノードの作動時間によって定義される。
【０００３】
ノードのリソース及び能力に基づいて、無線ネットワークは、同種及び異種に分類することができる。同種無線ネットワークでは、全てのノードは同一のリソース及び能力を有する。全てのノードはバッテリー駆動式又は商用電源式である。無線センサーネットワークは、全てのノードが通常バッテリー駆動式である同種無線ネットワークの例である。電気スマートメーターネットワークは、全てのノードが商用電源式である同種無線ネットワークの別の例である。他方で、異種無線ネットワークでは、ノードは異なるリソース及び能力を有し、例えば、幾つかのノードはバッテリー駆動式とすることができ、小さなメモリ及び限られた計算能力を有し、他のノードは商用電源式とすることができ、より大きなメモリ及びより高い計算能力を有する。
【０００４】
バッテリー駆動式ノードを有する無線ネットワークにおいて、ルーティング等のネットワーク管理の主要な目的は、ネットワーク寿命を最大にすることである。ノードは、データ送信、データ受信、制御メッセージ送信及び制御メッセージ受信のために自身のエネルギーを消費する。このカテゴリーのエネルギー消費は、必要なエネルギー使用とみなされる。ノードは、アイドルリスニング、オーバーヒアリング、衝突及び再送信時にも自身のエネルギーを消費する。このカテゴリーのエネルギー消費は、エネルギーの浪費とみなされる。エネルギー節減管理のための主な目標のうちの１つは、エネルギー浪費を最小限にすることである。
【０００５】
一方、同種無線ネットワークのために設計されたエネルギー関連管理方法は、異種無線ネットワークの場合に良好に機能しない。例えば、同種ネットワークのために設計されたルーティング方法は、異種性を考慮及び活用しない。さらに、幾つかの方法は、ネットワークのノードの動作を同期させることによって、同種ネットワークのエネルギー消費を低減する。例えば、ノードが予め指定された期間中にのみスリープすることができる集中型スリープ制御メカニズムを用いる方法を記載している特許文献１及び特許文献２を参照されたい。一方、ネットワークの同期は、データパケットの衝突を低減することができるが、アイドル時間も増大させ、結果として更なるエネルギー浪費が生じる可能性がある。さらに、同期パケットの送信及び受信によっても、結果として追加のエネルギー浪費が生じる。
【０００６】
したがって、バッテリー駆動式ノード及び商用電源式ノードを含むマルチホップ異種無線ネットワークのエネルギーの効率の良い管理のためのシステム及び方法を提供する必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第７，２９８，７１６号明細書
【特許文献２】米国特許第７，３５６，５６１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の様々な実施形態の目的は、バッテリー駆動式ノード（ＢＰＮ）及び商用電源式ノード（ＭＰＮ）を含む少なくとも１つのシンクノード及びデータノードを有するマルチホップ異種無線ネットワークのスリープ管理のためのシステム及び方法を提供することである。幾つかの実施形態の別の目的は、マルチホップ異種無線ネットワークのための分散型スリープ制御方法を提供し、それによってデータノードが同期動作を必要としないようにすることである。さらに、本発明の幾つかの実施形態の目的は、マルチホップ方式でパケットを送信するためのエネルギーの効率の良いルーティングメトリックを提供することであり、マルチホップ方式では、少なくとも１つのデータノードが、データノードとシンクノードとの間でパケットを中継する少なくとも１つの中間データノードを通じてシンクノードとパケットを交換する。
【課題を解決するための手段】
【０００９】
本発明の幾つかの実施形態は、集中型のスリープ管理が、マルチホップネットワークではなくシングルホップネットワークについて、より有利であるという認識に基づく。この理由は、マルチホップネットワークの同期の結果、より多くのパケット中継が生じ、これによって、同期パケットをリスン（listen）し、同期パケットを受信し、同期パケットを再送信するためのより多くのアイドル時間が増大し、結果としてより多くのエネルギー浪費が生じる。さらに、マルチホップ無線ネットワークでは、集中型制御ノードは、複数ホップ離れたデータノードがデータをいつ送信するか及びどれだけの量のデータを有しているかがわからない。したがって、集中型制御ノードが、これらのノードのためのスリープスケジュールをスケジューリングすることは実際的でない。また、本発明の幾つかの実施形態は、集中型スリープ管理が、異種ネットワークではなく同種ネットワークについて、より有利であるという認識に基づく。この理由は、異種ネットワークでは、商用電源式ノードはスリープせず、常にアクティブであるためである。したがって、商用電源式ノードを用いたデータ中継が好ましい。
【００１０】
したがって、本発明の幾つかの実施形態は、異種ネットワークのデータノードのスリープスケジュールを管理するための分散型スリープ管理方法を提供する。例えば、１つの実施形態では、商用電源式ノードはアクティブ期間のみを有し、すなわち、ノードはスリープ期間を有しない。対照的に、バッテリー駆動式ノードは、アクティブ期間及びスリープ期間の双方を有するが、ネットワーク内の他のデータノードのアクティブ期間及びスリープ期間、又はシンクノードによって送信されるコマンドと独立して、アクティブ期間及びスリープ期間のスケジュールを決定する。
【００１１】
様々な実施形態では、ＢＰＮは、ＢＰＮのアクティブ期間及びスリープ期間のスケジュールを、ネットワーク内の他のデータノードのアクティブ期間及びスリープ期間と独立して、かつシンクノードによって送信されるコマンドと独立して決定する。そのような方式において、非集中型スリープ管理が達成される。例えば、ＢＰＮは、ＢＰＮによって検知されたネットワークのアクティビティを用いてＢＰＮの内部の情報に基づいてスケジュールを決定することができる。例えば、ＢＰＮは、ＢＰＮのキュー内にバッファリングされたデータパケットの数に基づいてスケジュールを決定することができる。
【００１２】
本発明の幾つかの実施形態は、幾つかの状況において、非集中型スリープ管理の結果として、送信データパケットの衝突率が増大し得るという更なる認識に基づく。さらに、衝突率の増大は、データパケットの再送信につながり、エネルギー浪費を増大させる。
【００１３】
幾つかの実施形態は、衝突率の増大の原因が、少なくとも部分的に、スリープ管理の分散性にあるという理解に基づく。この分散性は、集中型管理と対照的に、ノードが自身の送信のための時点を決定することを可能にするものである。例えば、ウェイクアップ時に、ＢＰＮは、スリープ期間中にＢＰＮによって記憶又は生成されたデータパケットの送信を開始することができる。ＢＰＮによってＢＰＮのスリープ期間中に自己生成されたデータパケットは、キュー内に蓄積し、ＢＰＮのメモリをオーバーフローさせ得るので、これはＢＰＮにとって理にかなった動作である。同様に、近傍ノードがＢＰＮからウェイクアップ信号を受信すると、ノードは自身のデータパケットをＢＰＮに送信し始めることができる。近傍ノードは、スリープ期間に進み、エネルギーを節減するために、自身のデータパケットを送信する必要があるので、これも近傍ノードにとって理にかなった動作である。結果として、送信のバーストが生じる可能性があり、これはパケット衝突につながり得る。
【００１４】
本発明の幾つかの実施形態は、ＢＰＮのアクティブ期間の少なくとも一部を受信（ＲＸ）期間及び送信（ＴＸ）期間に分割し、ＴＸ期間中に、例えば、ＲＸ期間の満了後にデータパケットを送信することによって、この問題に対処した。そのような方式において、ＲＸ期間は、到来する伝送（incoming transmission）のために予約され、これによって近傍ノードが早くスリープする。そのような予約によって、ＢＰＮの受信モードと送信モードとが分離され、衝突の可能性が低減される。
【００１５】
したがって、本発明の１つの実施形態は、データノード及び少なくとも１つのシンクノードを含むノードのネットワークを開示する。ネットワークは、シンクノードとデータノードとの間でパケットがマルチホップ方式で交換されるマルチホップ異種無線ネットワークであり、データノードとシンクノードとの間でパケットを中継する少なくとも１つの中間データノードを通じてシンクノードとパケットを交換する少なくとも１つのデータノードが存在するようになっている。データノードは、バッテリー駆動式ノード（ＢＰＮ）及び商用電源式ノード（ＭＰＮ）を含む。
【００１６】
ＢＰＮは、データパケットを送受信する送受信機と、データパケットをキュー内にバッファリングするメモリと、ＢＰＮのコンポーネントにエネルギーを提供するバッテリーと、ＢＰＮのスリープスケジュールを、ネットワーク内の他のデータノードのスリープスケジュールと独立して、かつシンクノードによって送信されるコマンドと独立して決定するプロセッサとを備える。ＢＰＮのプロセッサは、スリープスケジュールに従って送受信機をオン及びオフに切り替え、スイッチがオンに切り替えられるとき、ＢＰＮのアクティブ期間を形成し、スイッチがオフに切り替えられるとき、ＢＰＮのスリープ期間を形成する。プロセッサは、アクティブ期間の少なくとも一部を、受信（ＲＸ）期間及び送信（ＴＸ）期間に分割し、送受信機に、ＴＸ期間中にのみデータパケットを送信させる。
【００１７】
別の実施形態は、データノード及び少なくとも１つのシンクノードを含むノードのマルチホップ異種無線ネットワークを形成するバッテリー駆動式ノード（ＢＰＮ）を管理するための、コンピューターにより実施される方法を開示する。データノードは、バッテリー駆動式ノード（ＢＰＮ）及び商用電源式ノード（ＭＰＮ）を含む。本方法は、ＢＰＮのメモリに記憶された命令を実行するＢＰＮのプロセッサを用いて実施される。
【００１８】
本方法は、ＢＰＮのスリープスケジュールを、ネットワーク内の他のデータノードのスリープスケジュールと独立して、かつシンクノードによって送信されるコマンドと独立して決定し、ＢＰＮの送受信機がオンに切り替えられるとき、ＢＰＮのアクティブ期間を形成し、送受信機がオフに切り替えられるとき、ＢＰＮのスリープ期間を形成することと、キューがオーバーフローする場合、ＢＰＮのキューに格納された少なくとも幾つかのデータパケットを送信することと、アクティブ期間の少なくとも一部を受信（ＲＸ）期間及び送信（ＴＸ）期間に分割することと、アクティブ期間の部分の分割を指定するウェイクアップ信号を送信することと、ＲＸ期間の満了後、ＴＸ期間中にデータパケットを送信することとを含む。
【図面の簡単な説明】
【００１９】
【図１Ａ】本発明の幾つかの実施形態によるマルチホップ異種無線ネットワークの概略図である。
【図１Ｂ】図１Ａのネットワークにおける、バッテリー駆動式ノード（ＢＰＮ）及び／又は商用電源式ノード（ＭＰＮ）等のデータノードの構造のブロック図である。
【図２Ａ】本発明の幾つかの実施形態による、スリープ間隔構成の概略図である。
【図２Ｂ】本発明の幾つかの実施形態による、バッテリー駆動式ノードによって用いられる分散型スリープ制御モデルの概略図である。
【図２Ｃ】本発明の幾つかの実施形態による、分散型スリープ制御モデルに基づくバッテリー駆動式ノードのためのアクティブ期間構成の概略図である。
【図２Ｄ】本発明の幾つかの実施形態による、分散型スリープ制御モデルに基づくアクティブ期間の初期アクティブ期間構成の概略図である。
【図３Ａ】本発明の幾つかの実施形態による、バッテリー駆動式ノードによって用いられる、アクティブ期間の構成をアナウンスするためのウェイクアップメッセージの構造である。
【図３Ｂ】本発明の幾つかの実施形態による、バッテリー駆動式ノードによって用いられる、アクティブ期間の拡張をアナウンスするためのアクティブ期間拡張通知メッセージの構造である。
【図３Ｃ】本発明の１つの実施形態による、バッテリー駆動式ノードを管理するためのコンピューター実施方法のブロック図である。
【図４Ａ】図１Ａのネットワーク内のデータノードのデータトラフィックモデルの概略図である。
【図４Ｂ】本発明の１つの実施形態による、バッテリー駆動式ノードのアクティブ期間の長さを決定する方法のブロック図である。
【図４Ｃ】本発明の１つの実施形態による、バッテリー駆動式ノードのスリープ期間の長さを決定する方法のブロック図である。
【図４Ｄ】本発明の別の実施形態による、バッテリー駆動式ノードのスリープ期間の長さを決定する方法のブロック図である。
【図５Ａ】本発明の幾つかの実施形態による、データノードによって維持される親のアクティブ期間テーブルのフォーマットの概略図である。
【図５Ｂ】本発明の幾つかの実施形態による、データノードによって実行される、最も近時の親の受信終了時点（ＬＰＲＥＴ：latest parent receiving ending time）及び最も近時の親の送信終了時点（ＬＰＴＥＴ：latest parent transmission ending time）を求める方法の概略図である。
【図６Ａ】本発明の幾つかの実施形態による、バッテリー駆動式ノードによってウェイクアップ時に実行される方法のブロック図である。
【図６Ｂ】本発明の幾つかの実施形態による、バッテリー駆動式ノードによってスリープする前に実行される方法のブロック図である。
【図６Ｃ】本発明の幾つかの実施形態による、データ送信を開始するためにバッテリー駆動式ノードによって実行される方法のブロック図である。
【図７Ａ】本発明の幾つかの実施形態による、データノードの受信方法のブロック図である。
【図７Ｂ】本発明の幾つかの実施形態による、データノードが最も近時の親の受信終了時点において実行する方法のブロック図である。
【図７Ｃ】本発明の幾つかの実施形態による、データノードが最も近時の親の送信終了時点において実行する方法のブロック図である。
【図８】本発明の幾つかの実施形態による、データノードの送信方法のブロック図である。
【発明を実施するための形態】
【００２０】
図１Ａは、本発明の実施形態を用いるマルチホップ異種無線ネットワークの例の概略図を示す。ネットワークは、バッテリー駆動式ノード（ＢＰＮ）１００及び商用電源式ノード（ＭＰＮ）１１０等のデータノードを含む。ネットワークはシンクノード（Ｓ）１２０も含む。データノード及びシンクノードは、有向無線リンク１３０を用いて無線メッシュネットワークを形成し、ここで、データパケットの概略フローは、データノード（バッテリー駆動式ノード又は商用電源式ノード）からシンクノードへ、及び／又はシンクノードからデータノードへのものであるが、制御メッセージはいずれの方向にも送信することができる。
【００２１】
ネットワークは、パケットがシンクノードとデータノードとの間で、マルチホップ方式で交換されるマルチホップ無線ネットワークであり、データノードとシンクノードとの間でパケットを中継する少なくとも１つの中間データノードを通じてシンクノードとパケットを交換する少なくとも１つのデータノードが存在するようになっている。例えば、幾つかのデータノード、例えば１４０は、データパケットをシンクノードに直接送信することができる。データノードのうちの幾つか、例えば１００及び１１０は、データパケットをいずれのシンクノードにも直接送信することができない。代わりに、データパケットは、まず中間ノード又は中継ノードに送信され、次に、中間ノード又は中継ノードはパケットをシンクノードに中継する。換言すれば、データ配信はマルチホップ方式で行われる。
【００２２】
マルチホップ無線ネットワークにおいて、データノードの親は、宛先ノードに向かうパス上のノードの直後の後継者（immediate successor）として定義される。例えば、ノード１５０はノード１１０及びノード１００の親である。さらに、データノードの子は、宛先ノードに向かうパス上のノードの直前の前任者（immediate predecessor）として定義される。例えば、ノード１００及びノード１１０は、ノード１５０の子である。ポイントツーポイント（Ｐ２Ｐ：point-to-point）データトラフィックパターンの場合、各データノードは、宛先データノード、データソースノード及び中継ノードとすることができる。図１Ａに示すマルチポイントツーポイント（ＭＰ２Ｐ：multipoint-to-point）データトラフィックパターンの場合、シンクノードは宛先ノードであり、データノードはデータソースノード及び中継ノードとすることができる。ポイントツーマルチポイント（Ｐ２ＭＰ：point-to-multipoint）データトラフィックパターンの場合、ノードＳはデータソースノードであり、他のノードは宛先ノード及び中継ノードとすることができる。
【００２３】
本発明の実施形態は、ＭＰ２Ｐデータトラフィックパターンを用いて説明されているが、提供される方法は、Ｐ２Ｐデータトラフィックパターン及びＰ２ＭＰデータトラフィックパターンに適用することができる。
【００２４】
図１Ｂは、図１Ａのネットワークを形成するデータノード１０１の構造を概略的に示す。データノードは、データパケットを送信及び受信するための送受信機を含み、この送受信機は、受信機１５５及び送信機１６０のうちの１つ又はこれらの組合せを含む。データノードは、電力を供給するための電源１８０も含む。電源１８０のタイプに従って、ノードは２つのカテゴリーに分類することができ、すなわち、バッテリー駆動式ノードは、バッテリー等の限られた電源を有し、商用電源式ノードは、電力網等の無制限の電源を有する。幾つかの実施形態では、シンクノードの電源に対する制約がなく、シンクノードは商用電源式又はバッテリー駆動式のいずれであってもよい。
【００２５】
データノード１０１は、ノードの動作を実行するための、及び／又は、ノードのアクティブ期間及びスリープ期間のスケジュールを決定するためのプロセッサ１７０を備える。各データノードは、対応するアクティブ期間中にのみパケットを送信及び受信する。
【００２６】
幾つかの実施形態によれば、バッテリー駆動式ノードは、アクティブ期間及びスリープ期間を有し、商用電源式ノードはアクティブ期間のみを有する。データノード１０１がバッテリー駆動式ノードである場合、例えば、電源１８０がバッテリーである場合、プロセッサは、バッテリー駆動式ノードのアクティブ期間及びスリープ期間のスケジュールを決定し、このスケジュールに従って送受信機をオン及びオフに切り換える。
【００２７】
データノード１０１は、プロセッサ１７０によって用いられる、必要な情報を記憶するためのメモリ１９０も備える。メモリの一部分１９５が、データノードのデータパケットをバッファリングするのに用いられる。このメモリセクションはキューと呼ばれる。
【００２８】
分散型スリープ管理
本発明の幾つかの実施形態は、集中型スリープ管理が、マルチホップ異種ネットワークではなくシングルホップ同種ネットワークの場合に、より有利であるという認識に基づく。
【００２９】
本発明の幾つかの実施形態は、集中型管理が、異種ネットワークではなく同種ネットワークの場合に、より有利であるという認識に基づく。これは、ネットワークの同期の結果として、エネルギーの浪費が生じることに起因する。例えば、集中型スリープ制御方法は、データパケット送信の衝突を低減することができるが、特に、商用電源式ノードを通じたデータ送信が好ましいときの状況において、ノードのアイドル時間を増大させる可能性もある。
【００３０】
本発明の様々な実施形態において、ＢＰＮのプロセッサは、ネットワーク内の他のデータノードのアクティブ期間及びスリープ期間と独立して、かつ、シンクノードによって送信される任意のコマンドと独立して、スケジュールを決定する。例えば、ＢＰＮのプロセッサは、ＢＰＮによって観測されるネットワークのアクティビティを用いて、ＢＰＮの内部の情報に基づいてスケジュールを決定する。例えば、データノード１０１は、シンクノードに送信されるデータパケットをバッファリングするためのメモリ１９０を備える。１つの実施形態において、プロセッサはメモリ内のデータパケットの数に基づいてスケジュールを決定し、例えば、アクティブ期間又はスリープ期間は、メモリ内のデータパケットの数に比例する。
【００３１】
図２Ａは、本発明の幾つかの実施形態による分散型スリープ管理モデルの概略図を示す。これらの実施形態において、ＢＰＮ２００は、アクティブ間隔及びスリープ間隔の独自のスケジュールを管理する。時間は、異なる長さを有するスリープ間隔に分割される。スリープ間隔２０５は、アクティブ期間２１０と、それに続くスリープ期間２１５とを含む。アクティブ期間及びスリープ期間の順序は、実施形態が異なると変動する。ＢＰＮ２００がスリープするとき、ＢＰＮ２００の送受信機はオフにされる。ＢＰＮ２００がスリープからウェイクアップするとき、ＢＰＮ２００の送受信機はオンにされ、ＢＰＮはウェイクアップメッセージ２２０を送信して、近傍データノードに、ＢＰＮ２００がアクティブであることを通知する。近傍ノードがＢＰＮ２００に送信されるデータパケットを有する場合、近傍ノードはその送信を開始することができる。ノードはアクティブ期間２１０及びスリープ期間２１５の長さを動的に決定し、すなわち、アクティブ期間及びスリープ期間のスケジュールは周期的である必要がない。例えば、スリープ期間２１８はスリープ期間２１５よりも短い。
【００３２】
図２Ｂは、本発明の幾つかの実施形態による分散型スリープ管理モデルの概略図を示す。異なるノードはアクティブ期間及びスリープ期間の異なる長さを有することができ、ここで、バッテリー駆動式ノードＢ１２２５、Ｂ２２３０及びＢ３２３５はそれぞれ異なる長さのスリープ期間２４０、２４５及び２５０を有する。
【００３３】
分散型スリープ管理モデルでは、バッテリー駆動式ノードが送信するデータを有しない場合、ノードは周期的スリープ間隔をスケジューリングする。例えば、ノードＢ２２３０及びＢ３２３５は送信するデータを有せず、したがって、周期的スリープスケジューリングを実行する。一方、１つの実施形態におけるように、バッテリー駆動式ノードが別のバッテリー駆動式ノードに送信するデータを有する場合、送信側ノードは、受信側バッテリー駆動式ノードからのウェイクアップメッセージ２２０を待つ。この場合、送信側ノードは、自身のアクティブ期間を延ばす。例えば、ノードＢ１は、バッテリー駆動式ノードＢ２に送信するデータを有する。ノードＢ１は、自身のアクティブ期間２５５を拡張し、ノードＢ２からのウェイクアップメッセージを待つ。ノードＢ２からウェイクアップメッセージ２２０を受信すると、ノードＢ１はそのパケット２６０をノードＢ２に送信する。ノードＢ１は、データを送信した後、スリープスケジューリングを実行する。
【００３４】
１つの実施形態では、ＢＰＮは２つのタイマー、すなわち、スリープタイマー及びウェイクアップタイマーを用いて、自身のスリープスケジュールを管理する。スリープタイマーは、スリープ間隔においてノードがどれだけ長くスリープするかをスケジューリングするのに用いられ、ウェイクアップタイマーは、スリープ間隔においてノードがどれだけ長くウェイクするかをスケジューリングするのに用いられる。バッテリー駆動式ノードは、自身のアクティブ期間の長さ及びスリープ期間の長さを動的に決定する。スリープタイマーが満了すると、バッテリー駆動式ノードは、アクティブ時間値を計算し、アクティブタイマーを開始する。アクティブタイマーが満了すると、バッテリー駆動式ノードはスリープ時間値を計算し、スリープタイマーを開始する。
【００３５】
幾つかの実施形態では、ＢＰＮのためのスリープ期間の長さは限定され、ネットワークについて定義される。バッテリー駆動式ノードは、自身のスリープ期間の長さを、ネットワークについて定義された最大の長さ以下に設定する。同様に、ネットワークのためにアクティブ期間の最小の長さも定義することができる。バッテリー駆動式ノードは、自身のアクティブ期間の長さを、最小の長さ以上に設定しなくてはならない。
【００３６】
分散型スリープ管理モデルでは、商用電源式ノードは常にアクティブである。例えば、ＭＰＮ２６５は、無限のアクティブ期間２７０を有する。ノードは、データパケットを任意の時点において商用電源式ノードに送信することができる。幾つかの実施形態では、ＭＰＮはウェイクアップメッセージを送信しない。したがって、幾つかの実施形態では、ルーティングアルゴリズムはデータノードのタイプを決定する。
【００３７】
本発明の幾つかの実施形態は、幾つかの状況において、非集中型スリープ管理により、送信されるデータパケットの衝突率が増大する可能性があるという更なる認識に基づく。そして、増大した衝突率により、データパケットの再送信につながり、これによってエネルギーの浪費が増大する。
【００３８】
対照的に、集中型スリープ管理によって、データパケット送信の衝突を低減することができるが、以下の理由により、これはマルチホップ異種ネットワークに適していない可能性がある。その理由は、（ａ）ネットワークの同期には、バッテリー駆動式ノードが同期パケットをリスン（listen）するための追加のアイドル時間が必要であること、（ｂ）マルチホップネットワークの同期には、同期パケットを受信及び中継するための追加のエネルギーが必要であること、並びに（ｃ）集中型制御ノードが、マルチホップネットワークにおいてデータノードのための適切なスリープスケジュールを作成するための十分な情報を有しないこと、である。したがって、マルチホップ異種無線ネットワークには分散型スリープ制御モデルが好ましく、パケット衝突の可能性（likelihood）を低減する非集中型スリープ管理を提供する必要がある。
【００３９】
幾つかの実施形態は、衝突率の増大の原因が、少なくとも部分的に、スリープ管理の分散性にあるという理解に基づく。この分散性は、集中型管理と対照的に、ノードが自身の送信のための時点を決定することを可能にするものである。例えば、ウェイクアップ時に、ＢＰＮは、スリープ期間中にＢＰＮによって記憶又は生成されたデータパケットの送信を開始することができる。ＢＰＮによってＢＰＮのスリープ期間中に自己生成されたデータパケットは、キュー内に蓄積し、ＢＰＮのメモリをオーバーフローさせ得るので、これはＢＰＮにとって理にかなった動作（logical operation）である。同様に、近傍ノードは、ＢＰＮからウェイクアップ信号を受信すると、自身のデータパケットをＢＰＮに送信し始めることができる。近傍ノードは、スリープ期間に進み、エネルギーを節減するために、自身のデータパケットを送信する必要があるので、これも近傍ノードにとって理にかなった動作である。結果として、送信のバーストが生じる可能性があり、これはパケット衝突につながり得る。
【００４０】
本発明の幾つかの実施形態は、ＢＰＮのアクティブ期間の少なくとも一部を受信（ＲＸ）期間及び送信（ＴＸ）期間に分割し、ＴＸ期間中に、例えば、ＲＸ期間の満了後にデータパケットを送信することによって、この問題に対処した。そのような方式において、ＲＸ期間は、到来する伝送のために予約される。そのような予約によって、ＢＰＮの受信モードと送信モードとが分離され、衝突の可能性が低減される。
【００４１】
アクティブ期間の分割及びアナウンス
本発明の幾つかの実施形態は、受信（ＲＸ）期間及び送信（ＴＸ）期間へのアクティブ期間の分割によって、より多くのエネルギーを節減することができるという認識に基づいている。例えば、ＢＰＮ  Ｂ２００がウェイクアップすると、ノードはウェイクアップメッセージを送信する。ノードＢの子は、ウェイクアップメッセージを受信すると、自身のデータパケットをＢＰＮ２００に送信し始める。この事例では、ＢＰＮ２００も自身のパケットを送信する場合、衝突が生じる可能性がある。パケット再送信は余分なエネルギーを消費する。
【００４２】
図２Ｃは、バッテリー駆動式ノードＢ２００のためのアクティブ期間２１０の少なくとも一部分の分割の概略図を示す。アクティブ期間２１０の分割された部分は、本明細書において、初期アクティブ期間２１１と呼ばれる。ここでは、アクティブ期間２１０は、初期アクティブ期間（ＡＰ）２１１及び０個以上の拡張アクティブ期間（ＡＰ）２１４を含む。
【００４３】
図２Ｄは、受信（ＲＸ）期間２１２及び送信（ＴＸ）期間２１３に分割された、初期アクティブ期間（ＡＰ）２１１の部分の概略図を示す。ＲＸ期間２１２において、ノードＢ２００は、自身のバッファリングされたデータパケットを送信しない。代わりに、ノードＢは、到来するデータパケットを中継のためにリスンする。ノードＢは、自身のバッファリングされたデータパケットを、ＴＸ期間２１３において送信する。この分割は、パケット衝突を回避することによって、より多くのエネルギーを節減することができる。
【００４４】
バッテリー駆動式ノードＢ２００は、ウェイクアップメッセージ２２０及びＡＰ拡張通知メッセージ２８０を用いて、自身のアクティブ期間設定を近傍にアナウンスする。ノードＢがスリープからウェイクアップすると、ノードはウェイクアップメッセージ２２０を送信する。ノードＢは、自身のアクティブ期間を拡張するとき、ＡＰ拡張通知メッセージ２８０を送信する場合もしない場合もある。ノードＢがＡＰ拡張通知メッセージ２８０を送信する場合、拡張ＡＰ２１４はＲＸ期間として用いられる。そうでない場合、拡張ＡＰ２１４はＴＸ期間として用いられる。
【００４５】
図３Ａは、ウェイクアップメッセージ２２０の概略図を示す。ウェイクアップメッセージ２２０は、メッセージのタイプを示すメッセージタイプフィールド３００と、ウェイクアップメッセージを送信するバッテリー駆動式ノードのＩＤを示すノードＩＤフィールド３１０と、ノードが受信を行うことになる期間の長さをアナウンスするＲＸ期間長フィールド３２０と、ノードがバッファリングされたデータパケットを送信することになる期間の長さを示すＴＸ期間長フィールド３３０と、任意の他の情報のためのオプションフィールド３４０とを含むことができる。ＲＸ期間は、ノードがウェイクアップメッセージを送信する時点において開始し、ＴＸ期間は、ＲＸ期間の終了時に開始する。ＲＸ期間長３２０がゼロに等しい場合、ＴＸ期間は、ノードがウェイクアップメッセージを送信する時点で開始する。アクティブ期間長は、ＲＸ期間長（｜ＲＸＰ｜）＋ＴＸ期間長（｜ＴＸＰ｜）に等しい。キューがオーバーフローする場合、ＲＸ期間長は０であり、ノードＢがまずＴＸ期間からアクティブ期間を開始することを意味する。そうではなく、ＲＸ期間が０よりも大きい場合、これは、ノードＢがまずＲＸ期間からアクティブ期間を開始することを意味する。
【００４６】
図３Ｂは、アクティブ期間拡張通知メッセージ２８０の概略図を示す。アクティブ期間拡張通知メッセージ２８０は、メッセージのタイプを示すメッセージタイプフィールド３００と、拡張通知メッセージを送信するバッテリー駆動式ノードのＩＤを示すノードＩＤフィールド３１０と、アクティブ期間がどれだけの長さ拡張されるかを示す拡張期間長フィールド３５０とを含む。拡張アクティブ期間は、ノードが拡張通知メッセージを送信する時点で開始する。
【００４７】
図３Ｃは、本発明の１つの実施形態に従ってバッテリー駆動式ノード（ＢＰＮ）を管理するための、コンピューターにより実施される方法のブロック図を示す。ステップの順序及び存在は、実施形態の様々な実施について変動する可能性がある。ＢＰＮは、データノード及び少なくとも１つのシンクノードを含むノードのマルチホップ異種無線ネットワークを形成している。データノードは、バッテリー駆動式ノード（ＢＰＮ）及び商用電源式ノード（ＭＰＮ）を含む。本方法は、ＢＰＮのメモリに記憶される命令を実行するＢＰＮのプロセッサを用いて実施される。例えば、プロセッサは、方法の必要な計算を実行し、及び／又は送受信機等のＢＰＮの他のコンポーネントに、必要な動作を実行させることができる。
【００４８】
本方法は、ＢＰＮのスリープスケジュールを、ネットワーク内の他のデータノードのスリープスケジュールと独立して、かつ、シンクノードによって送信されるコマンドと独立して決定し（３６０）、ＢＰＮの送受信機がオンに切り替えられたときにＢＰＮのアクティブ期間を形成し、送受信機がオフに切り替えられたときにＢＰＮのスリープ期間を形成する。本方法はまた、各アクティブ期間の開始時にキュー内の複数のデータパケットを試験してキューがオーバーフローするか否かを判断し（３６５）、キューがオーバーフローする場合、送信（ＴＸ）期間のみを指定するウェイクアップ信号を送信し（３６６）、ＢＰＮのキューに格納された少なくとも幾つかのデータパケットを送信する（３６７）。例えば、本方法は、キューから１つ又は幾つかのデータパケットのみを送信し、到来するパケットのための幾らかの空間を解放することができる。更に又は代替的に、本方法は、キューからの全てのデータパケットを送信することができる。
【００４９】
キューがオーバーフローしていない場合、本方法は、アクティブ期間の少なくとも一部分、例えば、初期ＡＰを、受信（ＲＸ）期間及び送信（ＴＸ）期間に分割し（３７０）、アクティブ期間の当該一部分の分割を指定するウェイクアップ信号をネットワーク内の他のノードに送信する（３８０）。ＲＸ期間中、ＢＰＮは、データパケットを送信せず、到来するパケットをリスンするのみである。例えば、ＲＸ期間の後にＴＸ期間が続くとき、本方法は、ＲＸ期間の満了後に、ＴＸ期間中にデータパケットを送信する。
【００５０】
アクティブ期間長及びスリープ期間長の計算
幾つかの実施形態では、バッテリー駆動式ノードのためのスリープ期間の長さは制限されており、最大スリープ期間長｜ＳＰ｜ｍａｘがネットワークについて定義されている。バッテリー駆動式ノードは、自身のスリープ期間の長さを、｜ＳＰ｜ｍａｘ以下に設定する。これによって、バッテリー駆動式ノードが永続的にスリープすることが防がれる。同様に、最小アクティブ期間長｜ＡＰ｜ｍｉｎもネットワークについて定義することができる。バッテリー駆動式ノードは、自身のアクティブ期間の長さを、｜ＡＰ｜ｍｉｎ以上に設定する。これによって、同様に、バッテリー駆動式ノードが永続的にスリープすることが防がれる。
【００５１】
分散型スリープ管理では、商用電源式ノードは常にアクティブである。したがって、商用電源式ノードは、無限の長さを有するアクティブ期間を有する。例えば、商用電源式ノード２６５は、無限のアクティブ期間２７０を有する。ノードは、データパケットを商用電源式ノードに任意の時点で送信することができる。
【００５２】
本発明の様々な実施形態において、バッテリー駆動式ノードのプロセッサは、スリープスケジュールを、ネットワーク内の他のノードのスリープスケジュールと独立して、かつシンクノードによって送信される任意のコマンドと独立して決定する。例えば、バッテリー駆動式ノードのプロセッサは、バッテリー駆動式ノードによって観測されるネットワークのアクティビティを用いて、バッテリー駆動式ノードの内部の情報に基づいてスリープスケジュールを決定する。
【００５３】
本発明の１つの実施形態において、バッテリー駆動式ノードＢ２００が送信するデータを有しない場合、ノードは自身のアクティブ期間長（｜ＡＰ｜）を｜ＡＰ｜ｍｉｎ、すなわち、｜ＡＰ｜＝｜ＡＰ｜ｍｉｎに設定し、自身のスリープ期間長（｜ＳＰ｜）を｜ＳＰ｜ｍａｘに設定し、したがって、周期的なスリープ間隔をスケジューリングする。例えば、ノードＢ２２３０及びＢ３２３５は、送信するデータを有せず、したがって、周期的スリープスケジューリングを行う。一方、バッテリー駆動式ノードが送信するデータパケットを有する場合、このバッテリー駆動式ノードのアクティブ期間長｜ＡＰ｜及びスリープ期間長｜ＳＰ｜は変動することができる。
【００５４】
バッテリー駆動式ノードＢ２００は、アクティブ期間２１０及びスリープ期間２１５の長さを動的に決定し、すなわち、アクティブ期間及びスリープ期間のスケジュールは周期的である必要がない。例えば、スリープ期間２１８はスリープ期間２１５よりも短い。ノードＢは、データトラフィックの量に基づいてアクティブ期間長（｜ＡＰ｜）及びスリープ期間長（｜ＳＰ｜）を決定する。
【００５５】
図４Ａは、データノードのデータトラフィックモデルの概略図を示す。データノード１０１は、キュー１９５内にバッファリングされたパケット４００を有する。データノードはまた、自身のデータパケット４１０を生成する。データノードはまた、自身の子からデータパケット４３０を受信する。到来するパケット４３０は、プロセッサ１７０によって処理される（４４０）。プロセッサ１７０は、到来するパケット４３０を、ノード１０１に宛てられたパケット４５０と中継パケット４２０とに分割する。自己生成されたパケット４１０及び中継パケット４２０がキュー１９５内にプッシュされ、その後、送信される。プロセッサ１７０は、キュー１９５からパケット４６０をポップして送信する。
【００５６】
図４Ｂは、本発明の１つの実施形態による、ＢＰＮのアクティブ期間の長さを決定するための方法のブロック図を示す。本方法は、ＢＰＮによって新たなデータパケットを生成する自己生成率４７１を決定し（４７０）、ＢＰＮによって新たなデータパケットを受信する到来率４７３を決定する（４７２）。次に、本方法は、キュー内のデータパケットの数４００、自己生成率、到来率及びキューの容量１９５に基づいて、アクティブ期間の長さを決定する（４７４）。
【００５７】
図４Ｃは、本発明の１つの実施形態による、ＢＰＮのスリープ期間の長さを決定する方法のブロック図を示す。図４Ｂの手法と同様に、この方法は、自己生成率４７１を決定し、キュー内のデータパケットの数４００、キューの容量１９５及び自己生成率４７１に基づいて、スリープ期間の長さを決定する（４７５）。
【００５８】
図４Ｄは、本発明の別の実施形態による、ＢＰＮのスリープ期間の長さを決定する方法のブロック図を示す。この実施形態は、ＢＰＮがスリープし、到来するデータパケットを受信することができないにもかかわらず、依然として、スリープ期間の決定時に到来率４７３を考慮する必要があるという認識に基づく。これは、スリープ中、到来するデータパケットが近傍ノードによって蓄積され、ＢＰＮがウェイクアップするとすぐに、ＢＰＮがこれらの蓄積された全てのデータパケットを受信し始めることに起因する。ここでは、本発明の１つの実施形態は、到来するデータパケットのバーストに適応するようにスリープ期間を低減する。
【００５９】
ＢＰＮのプロセッサは、キュー内の複数のデータパケットにアクセスすることができ、自身のデータパケット生成率ＲＳも知る。したがって、ＢＰＮは、所与の期間にわたって、自己生成パケット数（ＮｏＳＰ）を計算することができる。一方、アクティブ期間の長さは、到来データパケット数（ＮｏＩＰ）を考慮に入れる必要がある。ここでは、１つの実施形態において、ＢＰＮは、ＢＰＮのホップカウント及びＢＰＮの子ノードの数のうちの１つ又はこれらの組合せに基づいて、到来するパケットの到達率ＲＩを求める。
【００６０】
到来するデータパケットの到達率Ｒｉの計算
本発明の１つの実施形態は、ＲＩを測定するために、Ｈ個のホップを有する無線ネットワークを検討する。すなわち、ネットワークにおける最大ホップカウントはＨである。ホップカウントｈ（ｈ＝１，２，．．．，Ｈ−１）を有するノードがＣｈ個の子、Ｐｈ個の親を有し、ｈ−１個のホップノードを親として選択すると仮定する。
【００６１】
１つの実施形態では、到来するパケットの到達率ＲＩは、親がアクティブである確率（ＰｏＡ）、キューオーバーフローの確率（ＰｏＱ）及びリンク品質のうちの１つ又はこれらの組合せに基づいて求められる。これらの３つのメトリックは、任意の組み合わせで、又は個々に用いることができる。商用電源式ノードの場合、ＰｏＡは１に等しい。バッテリー駆動式ノードの場合、ＰｏＡは｜ＡＰ｜／（｜ＡＰ｜＋｜ＳＰ｜）に等しい。ＰｏＱは、キューがフルであることに起因して削除されたパケット数を、キュー内にプッシュされたパケットの数で除算したものに等しい。予測送信数（ＥＴＸ）は、リンク品質測定として用いることができる。
【００６２】
例えば、１つの実施形態では、ＲＩの計算はＰｏＡ、ＰｏＱ及びＥＴＸに基づく。ＲＩを計算するために、ノードがデータパケットをバッテリー駆動式の親に送信する確率、及びノードがデータパケットを商用電源式の親に送信する確率がまず計算される。
【００６３】
パケットは、キューオーバーフローに起因して子Ｃによってパケットが削除されず、かつ子Ｃから親Ｐへのリンク品質に起因して配信中にパケットがドロップされない場合にのみ、ＣからＰへの配信に成功することができる。ＰｏＱ及びＥＴＸを用いて、子Ｃから親Ｐへのパケット配信の成功確率は、以下によって与えられる。
【数１】
0006593801.tif 000002
【００６４】
Ｐｉｈ−１（ｉ＝１，２，．．．，Ｐｈ）を、ホップカウントｈを有する子Ｃの親（商用電源式ノード又はバッテリー駆動式ノード）とし、ＰｏＡ（Ｐｉｈ−１）を、親Ｐｉｈ−１がアクティブである確率とする。子ＣがＢＰｈ個のバッテリー駆動式の親及びＰｈ−ＢＰｈ個の商用電源式の親を有すると仮定する。子Ｃは、親がアクティブである場合にのみ、データパケットをバッテリー駆動式の親に送信することができる。したがって、子Ｃがデータパケットをバッテリー駆動式の親ＢＰｈ−１に送信する確率は、
【数２】
0006593801.tif 000003
である。
【００６５】
商用電源式の親が常にアクティブであるが、子Ｃは、データパケットを任意のアクティブな親に送信することができる。したがって、子Ｃがデータパケットを商用電源式の親ＭＰｈ−１に送信する確率は、
【数３】
0006593801.tif 000004
である。
【００６６】
ＲＩは、式（２）及び式（３）を用いることによって計算される。
【００６７】
最大ホップカウントＨを有するネットワークにおいて、ホップカウントＨを有するノードＣＨは葉ノードであり、到来するパケットを有しない。すなわち、ＲＩ（ＣＨ）＝０である。
【００６８】
ホップカウントＨ−１を有するノードは、ＣＨ−１個の子ＣｉＨ（ｉ＝１，２，．．．，ＣＨ−１）を有する。ＲＳ（ＣｉＨ）を子ＣｉＨのデータパケット生成率とする。ホップカウントＨ−１を有するバッテリー駆動式ノードＢＰＨ−１について、到来するパケットの到達率は、
【数４】
0006593801.tif 000005
であり、ホップカウントＨ−１を有する商用電源式ノードＭＰＨ−１について、到来するパケットの到達率は、
【数５】
0006593801.tif 000006
である。
【００６９】
ホップカウントｈ（ｈ＝１，２，．．．，Ｈ−２）を有するバッテリー駆動式ノードＢＰｈについて、ＲＩは、式（４）及び式（５）を用いることによって反復的手法により以下のように計算することができる。
【数６】
0006593801.tif 000007
ここで、ＬＣｈ＋１はノードＢＰｈの葉である子の数であり、ＢＲＣｈ＋１は、ノードＢＰｈのバッテリー駆動式ルーターである子の数である。
【００７０】
１つの実施形態は、ＰｏＡに基づいて到来率ＲＩを求める。最大ホップカウントＨを有するネットワークでは、ホップカウントＨを有するノードＣＨは、葉ノードであり、到来するパケットを有しない。すなわち、ＲＩ（ＣＨ）＝０である。同じホップカウントを有するバッテリー駆動式ノードが同じアクティブ確率を有し、全てのデータノードが同じデータパケット生成率ＲＳを有すると仮定すると、ホップカウントｈ（ｈ＝１，２，．．．，Ｈ−１）を有するバッテリー駆動式ノードＢＰｈの到来するデータパケットの到達率は、以下によって与えられる。
【数７】
0006593801.tif 000008
ここで、
【数８】
0006593801.tif 000009
及び
【数９】
0006593801.tif 000010
であり、ＰｏＡｊは、ｊホップバッテリー駆動式ノードがアクティブである確率である。
【００７１】
初期アクティブ期間（ＡＰ）長の計算
図２Ｃに示すように、アクティブ期間は、初期ＡＰ２１１及び拡張ＡＰ２１４を含む。デフォルトの方法は、初期ＡＰ長を、｜ＡＰ｜＝｜ＡＰ｜ｍｉｎとして設定することである。一方、この設定は、データトラフィックの量を検討せず、したがって、幾つかのノードがより多くの中継データパケットを有し、他のノードがより少ない中継データパケットを有するマルチホップ異種無線ネットワークにとって実用性がない可能性がある。例えば、図１Ａにおいて、シンクノードにより近いノードは、より多くのデータパケットを中継し、シンクノードから離れたノードは、より少ないデータパケットを中継する。
【００７２】
図４Ａに示すように、バッテリー駆動式ノードは、ウェイクアップするときに送信するための３つのデータパケットソース、すなわち、バッファリングされた複数のデータパケット４００、自己生成した複数のデータパケット４１０、及び、到来する複数の中継データパケット４２０を有する。１つの実施形態では、プロセッサ１７０は、バッファリングされるパケットの数（ＮｏＢＰ）、自己生成されるパケットの数（ＢｏＳＰ）及び中継のための到来するパケットの数（ＮｏＩＰ）に基づいて初期ＡＰ長を決定する。
【００７３】
ＱＣを、バッテリー駆動式ノードのキュー容量、すなわち、バッファリングすることができるパケットの最大数とする。ＲＳを、データパケット自己生成率とし、ＲＩをデータパケット到来率とし、ＲＴをネットワークレイヤにおけるデータパケット送信率とする。ＲＳ≧ＲＴの場合、バッテリー駆動式ノードはパケットドロップを防ぐためにスリープすることができない。これは、アプリケーションが、パケットドロップを防ぐためにスリープを許可するか又は許可しないかを判断しなくてはならない事例である。アクティブ期間長計算のための以下の方法が、ＲＳ＜ＲＴの事例について提供される。
【００７４】
初期ＡＰ長を計算するために、履歴測定及び予測の組合せが用いられる。
予測ＲＸ期間長｜ＲＸＰ｜Ｐ：
・キューがフルの場合、すなわち、ＮｏＢＰ＝ＱＣの場合、｜ＲＸＰ｜Ｐ＝０である。
・そうでない場合、キューはフルでなく、すなわちＮｏＢＰ＜ＱＣである。ＲＸ期間において、キュー内にプッシュされる２つのパケットソース、すなわち、自己生成されたパケット及び到来するパケットが存在する。したがって、｜ＲＸＰ｜Ｐは、キューがフルになる時点、すなわち、｜ＲＸＰ｜Ｐ＝（ＱＣ−ＮｏＢＰ）／（ＲＳ＋ＲＩ）に設定される。一方、｜ＲＸＰ｜Ｐ＞｜ＲＸＰ｜ＴＨの場合、｜ＲＸＰ｜Ｐ＝｜ＲＸＰ｜ＴＨを設定する。ここで、｜ＲＸＰ｜ＴＨは、バッテリー駆動式ノードが、キューがフルになるまで長時間待機することを防ぐための閾値である。この事例は、データパケット自己生成率ＲＳ及びデータパケット到来率ＲＩが小さい場合に生じる。
予測ＴＸ期間長｜ＴＸＰ｜Ｐ：
・ＴＸ期間において、自己生成されたデータパケットのみがキュー内にプッシュされる。このため、｜ＴＸＰ｜Ｐは、キューが空になる時点、すなわち、｜ＴＸＰ｜Ｐ＝ＮｏＢＰ／（ＲＴ−ＲＳ）に設定される。一方、｜ＴＸＰ｜Ｐ＞｜ＴＸＰ｜ＴＨの場合、｜ＴＸＰ｜Ｐ＝｜ＴＸＰ｜ＴＨを設定する。ここで、｜ＴＸＰ｜ＴＨは、バッテリー駆動式ノードが自身のキューを空にするのに長時間を要することを防ぐための閾値である。この事例は、バッテリー駆動式ノードがパケットを受信するためのアクティブな親を有しない場合に生じる。
【００７５】
予測される｜ＲＸＰ｜Ｐ及び｜ＴＸＰ｜Ｐを用いて、予測初期ＡＰ長｜ＡＰ｜Ｐが｜ＡＰ｜Ｐ＝｜ＲＸＰ｜Ｐ＋｜ＴＸＰ｜Ｐによって与えられる。
【００７６】
｜ＡＰ｜Ｈを、前回のスリープ間隔の初期ＡＰ長、すなわち、｜ＡＰ｜Ｈ＝｜ＲＸＰ｜Ｈ＋｜ＴＸＰ｜Ｈとする。現在のスリープ間隔のための初期ＡＰ長は、以下のように計算される。
【数１０】
0006593801.tif 000011
ここで、０≦α≦１は、｜ＡＰ｜Ｈがより正確である場合、すなわち、より少ないＡＰ拡張である場合、αがより大きな値に設定されるように｜ＡＰ｜Ｈ及び｜ＡＰ｜Ｐを重み付けするパラメーターである。そうでない場合、αがより小さな値に設定される。例えば、α＝１の場合、｜ＡＰ｜＝｜ＡＰ｜Ｈであり、すなわち、履歴初期ＡＰ長が用いられ、α＝０の場合、｜ＡＰ｜＝｜ＡＰ｜Ｐであり、すなわち、予測初期ＡＰ長が用いられる。
【００７７】
拡張アクティブ期間長の計算
キューがどの程度フルであるかを示すためにキュー閾値ＱＴＨが定義される。キューの残りの空間がＱＴＨよりも大きい場合、すなわち、ＱＣ−ＮｏＢＰ＞ＱＴＨの場合、キューはフルに近くないとみなされる。そうでない場合、キューはフルに近いとみなされる。
【００７８】
アクティブ期間の終了時に、バッテリー駆動式ノードは、自身のキューがフルに近い場合、アクティブ期間を拡張することができる。ノードは、自身のアクティブ期間を拡張するために、アクティブ期間拡張長｜ＡＰＥ｜を決定する必要がある。例えば、１つの実施形態は、決定論的方法を用いて、拡張長｜ＡＰＥ｜を計算する。
【００７９】
図５Ａは、本発明の１つの実施形態に従って維持される親のアクティブ期間テーブルの概略図を示す。分散型スリープ管理により、各データノード（バッテリー駆動式又は商用電源式）は、親のアクティブ期間テーブル（ＰＡＰＴ）５００を維持する。ＰＡＰＴ５００におけるエントリは、親のＩＤ（ＰＩＤ）と、親の電源タイプ（ＰＳＴ）と、親のＲＸ期間終了時点（ＲＸＥＴ）と、親のＴＸ期間終了時点（ＴＸＥＴ）とを含む。例えば、商用電源式の親１０の場合、ＲＸＥＴ及びＴＸＥＴは無限に設定される。バッテリー駆動式の親２０及び３０の場合、ＲＸＥＴ及びＴＸＥＴは、ウェイクアップメッセージ２２０又はアクティブ期間拡張通知メッセージ２８０において取得される値に設定される。ＰＡＰＴテーブル５００は、データノードによって、所与の時点においてデータパケットを送信するのに最も良好な親を選択するのに用いられる。
【００８０】
ＰＡＰＴ５００を用いて、バッテリー駆動式データノードは、最も近時の親のＲＸ終了時点（ＬＰＲＥＴ）及び最も近時の親ＴＸ終了時点（ＬＰＴＥＴ）を求めて｜ＡＰＥ｜を計算することができる。
【００８１】
図５Ｂは、バッテリー駆動式データノードＢ２００によるＬＰＲＥＴ及びＬＰＴＥＴの決定の例を示す。バッテリー駆動式データノードＢ２００は、２つのバッテリー駆動式の親Ｂ１  ５０１及びＢ２  ５０２を有する。ノードＢ２００は、時点５１０においてウェイクアップし、ノードＢ２００の初期ＡＰは時点５４０において終了する。時点５２０において、ノードＢは、ＲＸ期間２１２が時点５５０において終了し、ＴＸ期間２１３が時点５８０において終了することを示す、親Ｂ２のウェイクアップメッセージを受信する。時点５３０において、ノードＢは、ＲＸ期間が時点５６０において終了し、ＴＸ期間が時点５７０において終了することを示す、親Ｂ１のウェイクアップメッセージを受信する。したがって、ノードＢは、ＬＰＲＥＴが時点５６０であり、ＬＰＴＥＴが時点５８０であると判断する。初期ＡＰ終了時点５４０において、ノードＢは、双方の親がそれらの親のＲＸ期間にあることに起因して、キューがフルに近い場合、自身のＡＰを拡張することができる。
【００８２】
１つの実施態様では、｜ＡＰＥ｜の計算は、３つの事例に分割される。第１の事例では、バッテリー駆動式ノードＢ２００は、ＲＸ期間２１２にある少なくとも１つの親を有する。この事例では、ノードＢは、親のＲＸ期間において可能な限り多くのパケットを送信しようとする。したがって、ノードＢは、全てのバッファリングされたパケットが送信されるか、又はいずれの親もＲＸ期間にないかのいずれかとなるように、ＡＰを拡張する。
【数１１】
0006593801.tif 000012
ここで、ＬＰはデータパケット長であり、ＲＤは物理レイヤーデータレートであり、ＮＯＷはノードＢが｜ＡＰＥ｜を計算する時間である。
【００８３】
第２の事例では、バッテリー駆動式ノードＢは、送信期間にある少なくとも１つの親を有する。この事例では、ノードＢは、親のＴＸ期間において許可されるパケットの最大数（ＭＮｏＡＰ）のパケット送信と同じだけ多くのパケットを送信しようとする。したがって、ノードＢは、許可されるパケットの最大数が送信されるか、又はいずれの親もアクティブでないかのいずれかとなるようにＡＰを拡張する。
【数１２】
0006593801.tif 000013
【００８４】
第３の事例では、バッテリー駆動式ノードＢはアクティブな親を有しない。この事例では、｜ＡＰＥ｜は、バッファリングされたパケットの数（ＮｏＢＰ）と、商用電源式ノードのパーセント（ＰｏＭＮ）と、ノードＢのホップカウント（ｈ）と、ノードＢのアクティブ期間内にウェイクアップしている親の数（ＮｏＰＷ）と、親の数（ＮｏＰ）とに基づいて計算される。例えば、以下に従って｜ＡＰＥ｜を求めることができる。
【数１３】
0006593801.tif 000014
【００８５】
スリープ期間長計算
アクティブ期間の終了時に、バッテリー駆動式ノードは、自身のキューがフルに近くない場合、スリープする。本発明の幾つかの実施形態では、ノードがスリープする前に、ノードは、スリープ期間長の長さ｜ＳＰ｜を求める。
【００８６】
スリープモードにおいて、バッテリー駆動式ノードはパケットを一切受信せず、パケットを一切送信しない。自己生成されたデータパケットのみがキュー内にプッシュされる。このため、バッテリー駆動式ノードは、自身のキューがフルになるまでスリープすることができる。したがって、スリープ期間長｜ＳＰ｜は、
【数１４】
0006593801.tif 000015
に設定される。｜ＳＰ｜＞｜ＳＰ｜ｍａｘの場合、｜ＳＰ｜＝｜ＳＰ｜ｍａｘを設定する。
【００８７】
１つの実施形態では、バッテリー駆動式ノードは、送信されるデータパケットの総数に比例するアクティブ期間（ＡＰ）長を計算する。送信されるデータパケットは、バッファリングされた複数のパケット４００と、自己生成された複数のパケット４１０と、複数の中継パケット４２０とを含む。スリープ期間（ＳＰ）の長さは、データパケット自己生成率と反比例する。到来する中継パケットの数は、ホップカウント、親の数、子の数、親がアクティブである確率、リンク品質に依拠するので、ＡＰ長計算は観測されるネットワーク状態に基づくこともできる。
【００８８】
スリープ間隔制御
１つの実施形態では、バッテリー駆動式ノードＢ２００は３つのタイマーを用いて、自身のスリープ及びウェイクアップスケジュール並びに送信スケジュール、すなわちウェイクアップタイマー、スリープタイマー及びＴＸタイマーを管理する。スリープする前に、ノードＢは、ウェイクアップタイマーを設定する。ウェイクアップタイマーが満了すると、ノードＢはウェイクアップする。ウェイクアップ時に、ノードＢはスリープタイマーを設定する。スリープタイマーが満了すると、ノードＢはスリープする。ノードＢがウェイクアップすると、ノードはＴＸタイマーも設定する。ＴＸタイマーが満了すると、ノードＢは自身のＴＸ期間を開始し、バッファリングされたデータパケットを送信する。
【００８９】
図６Ａは、１つの実施形態による、ノードＢのウェイクアップタイマープロセスの概略図を示す。ウェイクアップタイマーが満了すると（６００）、ノードＢはまず、自身の初期アクティブ期間（ＡＰ）を構成し（６０２）、すなわち、ＲＸ期間長及びＴＸ期間長を計算し、次に、タイマー値を初期ＡＰ長、すなわち、｜ＲＸＰ｜＋｜ＴＸＰ｜に設定することによってスリープタイマー６０４を始動する。次に、ノードＢは無線通信をオンにし、自身のアクティブ期間設定をアナウンスするためのウェイクアップメッセージ２２０を送信する（６０６）。ノードＢは、ウェイクアップメッセージを送信した後、ＲＸプロセスを開始する（６０８）。｜ＲＸＰ｜＝０の場合（６２０）、すなわち、ＲＸ期間がスケジューリングされていない場合、ノードＢはＴＸプロセスを開始し（６２２）、ウェイクアップタイマープロセスを終了する（６３０）。そうでない場合、ノードＢは、タイマー値を｜ＲＸＰ｜に設定することによってＴＸタイマーを開始し（６２４）、ウェイクアップタイマープロセスを終了する（６３０）。
【００９０】
図６Ｂは、１つの実施形態による、ノードＢのスリープタイマープロセスの概略図を示す。スリープタイマーが満了すると（６４０）、ノードＢは、自身のキューがフルに近いか否かを判断する（６４２）。キューがフルに近くない場合、ノードＢはＴＸプロセス及びＲＸプロセスを停止し（６４４）、親のアクティブ期間テーブル（ＰＡＰＴ）をクリアし（６４６）、スリープ期間長（｜ＳＰ｜）を計算し（６４８）、タイマー値を｜ＳＰ｜に設定することによってウェイクアップタイマーを開始し（６５０）、無線通信をオフにしてスリープする（６５２）。ノードＢはスリーププロセスを終了する（６３０）。キューがフルに近い場合、ノードＢはスリープせず、代わりに自身のアクティブ期間を拡張する（６５４）。アクティブ期間を拡張するために、ノードＢはアクティブ期間拡張（ＡＰＥ）長を計算し（６５６）、タイマー値｜ＡＰＥ｜を用いてスリープタイマーをリセットする（６５８）。次に、ノードＢは、アクティブ期間拡張を近傍にアナウンスするか否かを判断する（６６０）。ノードＢがアクティブな親を有せず（すなわち、ノードＢがアイドル待機に進む）、かつキューが完全にフルではない場合、ノードＢはアクティブ期間拡張通知メッセージ２８０を送信し（６６２）、それによってノードＢの子がノードＢにパケットを送信することができるようにする。そうでない場合、ノードＢはアクティブな親を有し、この事例では、ノードＢはアクティブ期間拡張をアナウンスせず、自身のバッファリングされたデータパケットの送信を継続する。
【００９１】
図６Ｃは、１つの実施形態によるＴＸタイマープロセスの概略図を示す。ＴＸタイマーが満了すると（６６４）、ノードＢはＴＸプロセスを開始する（６６６）。
【００９２】
１つの実施形態では、バッテリー駆動式ノードは３つのタイマー、すなわち、ウェイクアップタイマー、スリープタイマー及びＴＸタイマーを用いて、自身のスリープスケジュール及びアクティブスケジュール並びに送信スケジュールを管理する。ウェイクアップタイマーは、スリープ間隔においてノードがどれだけ長くウェイクするかをスケジューリングするのに用いられ、スリープタイマーは、スリープ間隔においてノードがどれだけ長くスリープするかをスケジューリングするのに用いられ、ＴＸタイマーは、ノードがスリープ間隔においていつデータパケット送信を開始するかをスケジューリングするのに用いられる。バッテリー駆動式ノードは、自身のアクティブ期間の長さ及びスリープ期間の長さを動的に決定する。スリープタイマーが満了すると、バッテリー駆動式ノードは、アクティブ時間値を計算し、アクティブタイマーを開始する。アクティブタイマーが満了すると、バッテリー駆動式ノードはスリープ時間値を計算し、スリープタイマーを開始する。
【００９３】
１つの実施形態では、初期ＡＰ又は拡張ＡＰの終了時に、バッテリー駆動式ノードＢが、自身のＡＰを拡張することが必要であるか否かを動的に判断する。ＡＰ拡張プロセスは、ノードＢが更なる拡張が必要ないか又は拡張最大数に達したと判断するまで継続する。本発明の１つの実施形態では、商用電源式ノードは、電源が入るとＲＸプロセス及びＴＸプロセスを開始する。
【００９４】
アクティブ期間における受信（ＲＸ）及び送信（ＴＸ）制御
バッテリー駆動式ノードは、自身のアクティブ期間をＲＸ期間２１２及びＴＸ期間２１３に分割する。実施形態の幾つかの原理によれば、バッテリー駆動式の親の子が、親のＴＸ期間中に親にパケットを送信しないことが望ましい。したがって、ＲＸ及びＴＸの制御は、親及び子の双方からの協調動作を必要とする。換言すれば、子（商用電源式又はバッテリー駆動式）は、親のアクティブ期間（ＡＰ）構成に従う必要がある。
【００９５】
データノード（商用電源式又はバッテリー駆動式）は、４つのフラグを用いてＲＸ及びＴＸのアクティビティを制御する。
・親のＲＸフラグ（ＰＲＦ）：このフラグがオンのとき、少なくとも１つの親がＲＸ期間にある。商用電源式の親は、常にＲＸ期間にあるとみなされる。
・親のＴＸフラグ（ＰＴＦ）：このフラグがオンのとき、少なくとも１つの親がＴＸ期間にある。商用電源式の親は、常にＴＸ期間にあるとみなされる。このフラグは、ＰＲＦフラグがオフの場合にのみオンにすることができる。
・近傍データフラグ（ＮＤＦ）：このフラグがオンのとき、データノードは、任意の親がアクティブであるか否か確実でないが、少なくとも１つの近傍が、データノードのバッテリー駆動式の親のうちの少なくとも１つにデータパケットを送信していることをオーバーヒア（overhear）する。この事例では、受信側の親はほとんどＲＸ期間にある。このフラグは、ＰＲＦ及びＰＴＦの双方がオフであるときにのみオンにすることができる。
・親データフラグ（ＰＤＦ）：このフラグがオンのとき、データノードは、任意の親がアクティブであるか否か確実でないが、少なくとも１つのバッテリー駆動式の親がデータパケットを送信していることをオーバーヒアする。この事例では、送信側の親はＴＸ期間にある。このフラグは、ＰＲＦ、ＰＴＦ及びＮＤＦがオフである場合にのみオンにすることができる。
【００９６】
データノード（商用電源式又はバッテリー駆動式）は、ＲＸ及びＴＸ制御プロセスにおいて２つのタイマーを用いることもできる。
・親ＲＸ終了（ＰＲＥ）タイマー：このタイマーが満了すると、全ての親のＲＸ期間が終了する。親はＴＸ期間又はスリープ期間のいずれかにある。
・親ＴＸ終了（ＰＴＥ）タイマー：このタイマーが満了すると、全ての親のＴＸ期間が終了する。親はスリープしている。
【００９７】
図７Ａは、本発明の１つの実施形態による、データノード（商用電源式又はバッテリー駆動式）のＲＸプロセス７００のブロック図を示す。データノードは、まず、フラグを設定する（７０５）。データノードが商用電源式の親を有する場合、データノードは、ＰＲＦ＝１、ＰＴＦ＝０、ＮＤＦ＝０及びＰＤＦ＝０を設定する。また、データノードは、ＬＰＲＥＴを無限に設定し、ＬＰＴＥＴを無限に設定する。そうでない場合、データノードは、ＰＲＦ＝０、ＰＴＦ＝０、ＮＤＦ＝０及びＰＤＦ＝０を設定する。また、データノードは、ＬＰＲＥＴをＮＯＷに設定し、ＬＰＴＥＴをＮＯＷに設定する。データノードは、パケットを受信すると（７１０）、パケットのタイプをチェックする。
【００９８】
パケットが親ウェイクアップ（ＰＷ）メッセージ７１５である場合、データノードは、このバッテリー駆動式の親のために、エントリを追加するか又は既存のエントリを更新することによって、ＰＡＰＴテーブルを更新する（７２０）。ＲＸＥＴは｜ＲＸＰ｜に設定され、ＴＸＥＴは｜ＲＸＰ｜＋｜ＴＸＰ｜に設定される。ＰＡＰＴテーブルを更新した後、データノードはＰＲＦ情報を更新する（７２５）。｜ＲＸＰ｜＞０かつＰＲＦ＝０の場合、データノードはＰＲＦ＝１を設定し、ＬＰＲＥＴ＝｜ＲＸＰ｜及びＬＰＴＥＴ＝｜ＲＸＰ｜＋｜ＴＸＰ｜を設定し、タイマー値を｜ＲＸＰ｜に設定することによりＰＲＥタイマーを開始する。そうではなく、｜ＲＸＰ｜＞０かつＰＲＦ＝１である場合において、ＬＰＲＥＴ＜｜ＲＸＰ｜であるとき、データノードはＬＰＲＥＴ＝｜ＲＸＰ｜を設定し、タイマー値｜ＲＸＰ｜を用いてＰＲＥタイマーをリセットし、ＬＰＴＥＴ＜｜ＲＸＰ｜＋｜ＴＸＰ｜であるとき、データノードはＬＰＴＥＴ＝｜ＲＸＰ｜＋｜ＴＸＰ｜を設定する。次に、データノードは、以下の３つの事例を用いてＰＴＦ情報を更新する（７３０）。（１）ＰＲＦ＝１かつ｜ＴＸＰ｜＞０かつＬＰＴＥＴ＜｜ＲＸＰ｜＋｜ＴＸＰ｜、この事例では、データノードはＬＰＴＥＴ＝｜ＲＸＰ｜＋｜ＴＸＰ｜を設定する。（２）ＰＲＦ＝０かつ｜ＴＸＰ｜＞０かつＰＴＦ＝０、この事例では、｜ＲＸＰ｜は０でなくてはならず、データノードはＰＴＦ＝１を設定し、ＬＰＴＥＴ≧｜ＴＸＰ｜である場合、タイマー値ＬＰＴＥＴ−ＮＯＷを用いてＰＴＥタイマーを開始するか、又はＬＰＴＥＴ＜｜ＴＸＰ｜である場合、タイマー値｜ＴＸＰ｜を用いてＰＴＥタイマーを開始し、ＬＰＴＥＴ＝｜ＴＸＰ｜を設定する。（３）ＰＲＦ＝０かつ｜ＴＸＰ｜＞０かつＰＴＦ＝１、この事例でも、｜ＲＸＰ｜は０でなくてはならず、ＬＰＴＥＴ＜｜ＴＸＰ｜である場合、データノードは、タイマー値｜ＴＸＰ｜を用いてＰＴＥタイマーをリセットし、ＬＰＴＥＴ＝｜ＴＸＰ｜を設定する。
【００９９】
パケットが親のアクティブ期間拡張通知（ＰＡＰＥＮ）メッセージ７３５である場合、バッテリー駆動式ノードは、アイドル待機モードにおいてのみＡＰ拡張をアナウンスし、すなわち、ＰＡＰＥＮメッセージにおいて、｜ＲＸＰ｜＞０及び｜ＴＸＰ｜＝０であるので、データノードはＰＡＰＴテーブル及びＰＲＦフラグ情報のみを更新する。データノードは、このバッテリー駆動式の親のために、エントリを追加するか又は既存のエントリを更新することによってＰＡＰＴテーブルを更新する（７２０）。ＲＸＥＴは｜ＲＸＰ｜に設定され、ＴＸＥＴも｜ＲＸＰ｜に設定される。ＰＡＰＴテーブルを更新した後、データノードはＰＲＦ情報７２５を更新する。ＰＲＦ＝０である場合、データノードはＰＲＦ＝１、ＬＰＲＥＴ＝｜ＲＸＰ｜を設定し、タイマー値を｜ＲＸＰ｜に設定することによりＰＲＥタイマーを開始する。そうではなく、ＰＲＦ＝１かつＬＰＲＥＴ＜｜ＲＸＰ｜である場合、データノードはＬＰＲＥＴ＝｜ＲＸＰ｜を設定し、タイマー値｜ＲＸＰ｜を用いてＰＲＥタイマーをリセットする。
【０１００】
パケットが、近傍によってデータノードの親に送信されるデータパケット、すなわち近傍データパケット（ＮＤＰ）７４０である場合、データノードは、ＰＲＦ及びＰＴＦの双方がオフである場合にＮＤＦフラグ情報を更新する（７４５）。この事例では、データノードはＮＤＦ＝１を設定し、オーバーヒアされたデータのＲＸの親（ＯＤＲＰ）を、近傍によって送信されたデータパケットの宛先である親のＩＤに設定し、オーバーヒアされた近傍ＴＸ時点（ＯＮＴＸＴ）をＮＯＷに設定する。
【０１０１】
パケットが、親によって送信されるデータパケット、すなわち、親データパケット（ＰＤＰ）７５０である場合、データノードは、ＰＲＦ、ＰＴＦ及びＮＤＰがオフである場合にＰＤＦフラグ情報を更新する（７４５）。この事例では、データノードは、ＰＤＦ＝１を設定し、オーバーヒアされたデータのＴＸの親（ＯＤＴＰ）を、データパケットを送信した親のＩＤに設定し、オーバーヒアされた親のＴＸ時点（ＯＰＴＸＴ）をＮＯＷに設定する。
【０１０２】
パケットが任意の他のパケット７６０である場合、データノードは、通常のパケット処理７６５を実行する。パケット処理が完了すると、ＲＸプロセスは、パケット受信状態７１０に戻る。
【０１０３】
図７Ｂは、本発明の１つの実施形態による、ＰＲＥタイマープロセスのブロック図を示す。ＰＲＥタイマーが満了すると（７７０）、データノードはＰＲＦ＝０を設定する（７７５）。ＬＰＴＥＴ＞ＮＯＷである場合（７８０）、データノードはＰＴＦ＝１を設定し（７８５）、タイマー値ＬＰＴＥＴ−ＮＯＷを用いてＰＴＥタイマーを開始する（７８８）。
【０１０４】
図７Ｃは、ＰＴＥタイマープロセスのブロック図を示す。ＰＴＥタイマーが満了すると（７９５）、データノードはＰＴＦ＝０を設定する。
【０１０５】
図８は、本発明の１つの実施形態による、データノードのＴＸプロセスのブロック図を示す。ＴＸプロセスが開始すると（８００）、データノードは、まず、自身のキュー内に任意のバッファリングされたデータパケットが存在するか否かをチェックする（８０５）。存在しない場合、ＴＸプロセスはスタンバイモードに進む。存在する場合、データノードは、親ＲＸフラグ（ＰＲＦ）がオンであるか否かをチェックする（８１０）。オンである場合、データノードは、最良の親を選択し（８１５）、データパケットを最良の親に送信する（８２０）。パケット送信後、ＴＸプロセスは開始８００にループバックする。ＰＲＦがオフである場合、データノードは、親ＴＸフラグ（ＰＴＦ）がオンであるか否かをチェックする（８２５）。オンである場合、データノードは、キューオーバーフローが生じることになるか否かをチェックする（８３０）。生じない場合、ＴＸプロセスは開始８００にループバックする。生じる場合、データノードは最良の親を選択し（８１５）、データパケットを最良の親に送信する（８２０）。ＰＲＦ及びＰＴＦの双方がオフである場合、データノードは、近傍データフラグ（ＮＤＦ）がオンであるか否かをチェックする（８３５）。オンである場合、データは、キューオーバーフローが生じることになるか否かをチェックする（８３０）。生じない場合、ＴＸプロセスは開始８００にループバックする。キューがオーバーフローする場合（８３０）、データノードは、近傍データパケットが非常に近時にオーバーヒアされたか否かをチェックする（８４０）。オーバーヒアされていない場合、ＴＸプロセスは開始８００にループバックする。オーバーヒアされた場合、データノードは、近傍がデータパケットを送信した親、すなわち、ＩＤ＝ＯＤＲＰを有する親にデータパケットを送信する（８４５）。次に、データノードは、ＮＤＦ＝０を設定し（８５０）、ＴＸプロセスは開始８００にループバックする。ＰＲＦ、ＰＴＦ及びＮＤＦがオフである場合、データノードは、親データフラグ（ＰＤＦ）がオンであるか否かをチェックする（８５５）。オンである場合、データは、キューオーバーフローが生じることになるか否かをチェックする（８３０）。生じない場合、ＴＸプロセスは開始８００にループバックする。キューがオーバーフローする場合（８３０）、データノードは、親データパケットが非常に近時にオーバーヒアされたか否かをチェックする（８４０）。オーバーヒアされていない場合、ＴＸプロセスは開始８００にループバックする。オーバーヒアされた場合、データノードは、データパケットを送信した親、すなわち、ＩＤ＝ＯＤＴＰを有する親にデータパケットを送信する（８４５）。次に、データノードは、ＰＤＦ＝０を設定し（８５０）、ＴＸプロセスは開始８００にループバックする。
【０１０６】
データノードは、バッファリングされたパケットの数（ＮｏＢＰ）、予測パケット数（ＮｏＥＰ）及びキュー容量（ＱＣ）を用いて、キューがオーバーフローするか否かを判断する。ＴＸ期間において、データノードは、中継データパケットを受信することを一切予測していない。唯一キュー内にプッシュされることが予測されるデータパケットは自己生成されたデータパケットである。ＲＡＰを残りのアクティブ期間とすると、ＮｏＥＰ＝｜ＲＡＰ｜＊ＲＳである。ＮｏＢＰ＋ＮｏＥＰ＞ＱＣである場合、キューは現在のアクティブ期間においてオーバーフローする。そうでない場合、キューはオーバーフローしない。
【０１０７】
データノードは、オーバーヒアリング閾値ＯＨＴＨを用いることによって、オーバーヒアリングが非常に近時であるか否かを判断する。オーバーヒアされた親データパケットについて、ＮＯＷ−ＯＰＴＸＴ＜ＯＨＴＨである場合、オーバーヒアリングは非常に近時であるとみなされ、すなわち、送信側の親が依然としてアクティブであるとみなされる。そうでない場合、オーバーヒアリングが古いとみなされ、すなわち、送信側の親がもはやアクティブでないとみなされる。オーバーヒアされる近傍データパケットについて、ＮＯＷ−ＯＮＴＸＴ＜ＯＨＴＨである場合、オーバーヒアリングは非常に近時であるとみなされ、すなわち、受信側の親は依然としてアクティブであるとみなされる。そうでない場合、オーバーヒアリングが古いとみなされ、すなわち、受信側の親がもはやアクティブでないとみなされる。オーバーヒアリング閾値ＯＨＴＨは、連続データパケット送信間の平均ギャップに設定することができる。
【０１０８】
データパケットを送信するために、データノードは最良の親を選択する必要がある。親ＲＸフラグ（ＰＲＦ）がオンである場合、ＲＸ期間に１つの親しか存在せず、データノードはその親を選択する。そうではなく、ＰＲＦフラグがオンであり、ＲＸ期間に複数の親が存在する場合、データノードは、最良のリンク品質、すなわち最小のＥＴＸを有する親を選択する。親ＴＸフラグ（ＰＴＦ）がオンであり、ＴＸ期間に１つの親しか存在しない場合、データノードはその親を選択する。そうではなく、ＰＴＦフラグがオンであり、ＴＸ期間に複数の親が存在する場合、データノードは最良のリンク品質を有する親を選択する。最良のリンクは、最小の再送信を必要とし、したがって、エネルギーを節減する。
【０１０９】
本発明の１つの実施形態では、データノードは、ＲＸ期間においてデータパケットを親に送信する。データノードは、キューがオーバーフローする場合、すなわち、データパケットがキューから削除されなくてはならない場合にのみ、親のＴＸ期間においてデータパケットを親に送信する。データノードは、キューがオーバーフローする場合、かつオーバーヒアリングが非常に近時である、すなわち親が依然としてアクティブである場合にのみ、データパケット送信がオーバーヒアされた親にパケットを送信する。データノードは、キューがオーバーフローする場合、かつオーバーヒアリングが非常に近時である、すなわち親が依然としてアクティブである場合にのみ、近傍がデータパケットを送信した親にパケットを送信する。
【０１１０】
本発明の１つの実施形態では、データノードは、バッファリングされたデータパケット、予測データパケット及びキュー容量を用いることによってキューオーバーフローを決定する。予測データパケットは、データパケット自己生成率及び残りのアクティブ期間の長さに基づいて計算される。
【０１１１】
バッテリーエネルギーの効率の良いルーティング
幾つかの実施形態は、特定のソースデータノードから宛先ノードへのデータパケットのバッテリーエネルギーの効率の良いルーティングが、最もエネルギー消費が少ないルーティングパスを選好するという認識に基づく。例えば、幾つかの実施形態は、ルーティングパスに沿ってデータパケットを送信し、バッテリー駆動式ノードのエネルギー消費を低減する。
【０１１２】
無線ネットワークについて、従来のルーティングメトリックは、２つのカテゴリー、すなわち、非エネルギー関連メトリック、例えば、予測送信カウント（ＥＴＸ）及びエネルギー関連メトリック、例えば、残余エネルギーに分類することができる。非エネルギー関連メトリックは、スループット、レイテンシー等に焦点を当て、したがって、エネルギーの節減を対象としない。エネルギー関連のルーティングメトリックは、どれだけのエネルギーが消費されたか、又はどれだけのエネルギーが依然として残っているかを測定するのみである。従来のエネルギー関連メトリックは、どのようにエネルギーが消費されたか、すなわち、浪費されたか又はパケット送信のために用いられたかを考慮しない。加えて、従来のエネルギー関連メトリックは、同種ネットワークのために設計されている。
【０１１３】
エネルギー消費は、２つのカテゴリー、すなわち、エネルギー浪費及び必要なエネルギー使用に分けることができる。エネルギー浪費は、アイドルリスニング、オーバーヒアリング、衝突及び再送信等において消費されるエネルギーを含む。必要なエネルギー使用は、制御パケットの受信及び送信、データパケットの受信及び送信等において消費されるエネルギーを含む。
【０１１４】
したがって、１つの実施形態は、詳細なエネルギー使用を考慮するエネルギー節減メトリックを提供する。
【０１１５】
エネルギー浪費（ＥＷ）メトリック
ＥＷメトリックは、エネルギー浪費を最小限にする。アイドルリスニングは、エネルギー浪費の主原因であるため、ＥＷメトリックは、バッテリー駆動式ノードのアイドル時間を最小限にする。
【０１１６】
異種ネットワークでは、ＥＷメトリックは以下のように定義される。
ＭＰＮの場合、ＥＷ＝０、
ＢＰＮの場合、ＥＷ＝（総消費エネルギー）−（パケットの送信及び受信において消費されるエネルギー）
（１０）
【０１１７】
ＥＷは加法性メトリックであり、異なる目的関数を用いて異なるパスコストを定義するのに用いることができる。例えば、パスコスト「パス上の最大ＥＷ」及び目的関数「最小の｛パス上の最大ＥＷ｝を有するパスを選択」を用いて、ノードは、最小ピークエネルギー浪費を有するパスを発見する。アイドルリスニングは、エネルギー浪費の主原因であるため、発見されるパスは、最小ピークアイドル時間を有する。結果として、より大きなピークアイドル時間を有するパス上のバッテリー駆動式ノードが、より多くスリープすることができる。したがって、バッテリー駆動式ノードのアイドル時間の平衡がとられる傾向にある。
【０１１８】
ＥＷメトリックは他のパスコスト及び目的関数を定義するのに用いることもできる。例えば、パスコスト「パス上のＥＷの総和」及び目的関数「エネルギー浪費の最小の総和を有するパスを選択」を用いて、総エネルギー浪費が最小限にされる。
【０１１９】
中継エネルギー（ＲＥ）メトリック
ＲＥメトリックは、ルーター機能の実行において消費されるエネルギーを最小限にするためのものであり、したがって、バッテリー駆動式ノードがより多くスリープすることを可能にする。
【０１２０】
異種ネットワークにおいて、ＲＥメトリックは以下のように定義される。
ＭＰＮの場合、ＲＥ＝０
ＢＰＮの場合、ＲＥ＝（中継パケットの送信及び受信において消費されるエネルギー）
（１１）
【０１２１】
ＲＥは加法性メトリックであり、異なる目的関数を用いて異なるパスコストを定義するために用いることができる。例えば、パスコスト「パス上の最大ＲＥ」及び目的関数「最小の｛パス上の最大ＲＥ｝を有するパスを選択」を用いて、ノードは、最小ピーク中継を有するパスを発見する。これによって、より高いピーク中継エネルギーを有するパス上のバッテリー駆動式ノードがより多くスリープすることが可能になる。したがって、バッテリー駆動式ノードの作業負荷の平衡がとられる傾向にある。
【０１２２】
ＲＥメトリックは他のパスコスト及び目的関数を定義するのに用いることもできる。例えば、パスコスト「パス上のＲＥの総和」及び目的関数「最小総中継エネルギーを有するパスを選択」を用いて、パス間で中継エネルギーの平衡がとられる。
【０１２３】
本発明の上記の実施形態は数多くの方法のいずれかにおいて実現することができる。例えば、それらの実施形態は、ハードウェア、ソフトウェア又はその組み合わせを用いて実現することができる。ソフトウェアにおいて実現されるとき、そのソフトウェアコードは、単一のコンピューター内に設けられるにしても、複数のコンピューター間に分散されるにしても、任意の適切なプロセッサ、又はプロセッサの集合体において実行することができる。そのようなプロセッサは集積回路として実現することができ、集積回路コンポーネント内に１つ又は複数のプロセッサが含まれる。しかしながら、プロセッサは、任意の適切な構成の回路を用いて実現することができる。そのプロセッサは、当該技術分野において既知であるように、メモリ、送受信機及び入出力インターフェースに接続することができる。
【図１Ａ】
0006593801.tif 000016
【図１Ｂ】
0006593801.tif 000017
【図２Ａ】
0006593801.tif 000018
【図２Ｂ】
0006593801.tif 000019
【図２Ｃ】
0006593801.tif 000020
【図２Ｄ】
0006593801.tif 000021
【図３Ａ】
0006593801.tif 000022
【図３Ｂ】
0006593801.tif 000023
【図３Ｃ】
0006593801.tif 000024
【図４Ａ】
0006593801.tif 000025
【図４Ｂ】
0006593801.tif 000026
【図４Ｃ】
0006593801.tif 000027
【図４Ｄ】
0006593801.tif 000028
【図５Ａ】
0006593801.tif 000029
【図５Ｂ】
0006593801.tif 000030
【図６Ａ】
0006593801.tif 000031
【図６Ｂ】
0006593801.tif 000032
【図６Ｃ】
0006593801.tif 000033
【図７Ａ】
0006593801.tif 000034
【図７Ｂ】
0006593801.tif 000035
【図７Ｃ】
0006593801.tif 000036
【図８】
0006593801.tif 000037