(57)【特許請求の範囲】
【請求項１】
他ノードから受信したパケット、又は、自己を送信元とする送信パケットを無線送信するノードにおいて、
近傍ノードのパケットを傍受し、自ノードがリンクを張ることが可能な近傍ノードの情報を格納する近傍ノード情報格納手段と、
送信パケットの最終的な宛先ノードと自ノードが属するネットワークのツリー型トポロジとから定まる親ノード側への転送経路に対し、ショートカットパスを設定可能か否かを、上記近傍ノード情報格納手段の格納情報に基づき判定し、設定可能なときに、ショートカットパスに係る他ノードを無線リンク先に定め、設定不可能なときに、定められた転送経路上で次の他ノードを無線リンク先に定めるリンク先決定手段とを有し、
上記リンク先決定手段は、近傍ノードについて、ツリーのルートノードからの階層数を計算し、近傍ノードの階層数をショートカットパスに係る無線リンク先の決定に用いる
ことを特徴とするノード。
【請求項２】
上記リンク先決定手段は、ツリーのルートノードからの自ノードの階層数と等しい同層の近傍ノード、若しくは、同層の近傍ノードの配下にある近傍ノードが上記近傍ノード情報格納手段にある場合に、その近傍ノードをショートカットパスに係る無線リンク先に決定することを特徴とする請求項１に記載のノード。
【請求項３】
請求項１又は２のノードを複数有することを特徴とする無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード及び無線通信システムに関し、例えば、ＺｉｇＢｅｅ等のクラスタツリー型トポロジの無線パケットネットワークにおけるパケット転送に適用し得るものである。
【背景技術】
【０００２】
ＺｉｇＢｅｅでは、スター型、クラスタツリー型（以下、単にツリー型と呼ぶ）及びメッシュ型トポロジが定義されている（非特許文献１参照）。この３方式の中でもツリー型トポロジは、ルーティング計算を簡易化することができ、しかも、大規模なネットワークを構成し易い。
【０００３】
ＺｉｇＢｅｅでは、コーディネータからの最大階層数Ｌｍ、子ノードの最大数Ｃｍ、子ルータの最大数Ｒｍをネットワークで定義しておく。この３パラメータから、ツリー型トポロジネットワークに追加されたノードのネットワークアドレスを計算することができる。ネットワークアドレスは、ツリーのどの位置にあるかという形で割り当てられる。このようにすることにより、各ノードは、宛先ネットワークアドレスと、自ノードのネットワークアドレスを比較するだけで、パケットをツリーの親（親ノード）又は子（子ノード）のどちらの方向に転送すれば良いかを決定できる。
【０００４】
（１）式に示すＣｓｋｉｐ（ｄ）は、階層ｄ＋１におけるノードへのアドレス割り当てのスキップ間隔の計算式である（非特許文献２参照）。
【数１】
0004957476.tif 000002
【０００５】
図２は、ツリー型トポロジにおける各ノードへのネットワークアドレスの割当て例を示している。図２は、コーディネータ（ツリーのルートノード）ＲＴから２階層のツリー構成の例を示している。コーディネータＲＴにはネットワークアドレス「０００」が割り当てられ、コーディネータＲＴ直下の３つのノードＮ１〜Ｎ３にはそれぞれ、スキップ間隔「１００」で、ネットワークアドレスとして「１００」、「２００」、「３００」が割り当てられている。ネットワークアドレス「１００」のノードＮ１の直下の２つのノードＮ１１、Ｎ１２にはそれぞれ、スキップ間隔「１０」で、ネットワークアドレスとして「１１０」、「１２０」が割り当てられている。この第２階層以下の階層に位置しているノードもあり得る。ネットワークアドレス「１００」のノードＮ１は、宛先ネットワークアドレスが「１０１」から「１９９」までの受信パケットについては、ツリーの子側（自己に係る下位階層側）に転送する。それ以外の宛先ネットワークアドレスのパケットを受信したときには、親側（上位階層側）のノードＲＴに受信パケットを転送する。以上のように、ツリー型トポロジにおいては、各ノードが簡単にパケットの転送先を決定することができる。
【０００６】
例えば、図３に示すように、ノードＮ１１からノードＮ２１へのパケットを、ノードＮ１は、宛先ネットワークアドレス「２１０」の先頭の数字「２」に基づいて上位ノード（コーディネータ）ＲＴに転送し、上位ノードＲＴは、宛先ネットワークアドレス「２１０」の先頭の数字「２」に基づいてノードＮ２に転送し、ノードＮ２は、宛先アドレス「２１０」の先頭側の２桁数字「２１」に基づいてノードＮ２１に転送する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ツリー型トポロジでは、自ノードの上位側に位置するノードから分岐している複数の支流のうち、自ノードと異なる支流に位置するノードへのパケットは、親側のノードを経由して、他の支流の宛先ノードに転送されるため、ツリーの根に近いノードほど、多くのパケットの転送処理を実行しなければならず、負荷が大きいという課題がある。コーディネータの転送負荷が最も大きくなると考えられる。
【０００８】
メッシュ型トポロジにすることで負荷を分散することが可能であるが、各ノードにルーティングテーブルを持たせる必要があり、ツリー型トポロジに比べ、実装コストがかかるという課題がある。
【０００９】
非特許文献２は、ツリー型トポロジにおける本来の経路をショートカットする方法に言及しているが、ショートカットするか否かを決定するための評価値の演算が複雑となっている。
【００１０】
そのため、あるノードの転送負荷を簡易な処理により低減可能なノード及び無線通信システムが望まれている。
【課題を解決するための手段】
【００１１】
第１の本発明は、他ノードから受信したパケット、又は、自己を送信元とする送信パケットを無線送信するノードにおいて、（１）近傍ノードのパケットを傍受し、自ノードがリンクを張ることが可能な近傍ノードの情報を格納する近傍ノード情報格納手段と、（２）送信パケットの最終的な宛先ノードと自ノードが属するネットワークのツリー型トポロジとから定まる親ノード側への転送経路に対し、ショートカットパスを設定可能か否かを、上記近傍ノード情報格納手段の格納情報に基づき判定し、設定可能なときに、ショートカットパスに係る他ノードを無線リンク先に定め、設定不可能なときに、定められた転送経路上で次の他ノードを無線リンク先に定めるリンク先決定手段とを有し、（３）上記リンク先決定手段は、近傍ノードについて、ツリーのルートノードからの階層数を計算し、近傍ノードの階層数をショートカットパスに係る無線リンク先の決定に用いることを特徴とする。
【００１２】
第２の本発明の無線通信システムは、第１の本発明のノードを複数有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、あるノードの転送負荷を簡易な処理により低減できるノード及び無線通信システムを実現できる。
【発明を実施するための最良の形態】
【００１４】
（Ａ）第１の実施形態
以下、本発明によるノード及び無線通信システムの第１の実施形態を、図面を参照しながら詳述する。
【００１５】
（Ａ−１）第１の実施形態の構成
第１の実施形態に係る無線通信システムも、ツリー型トポロジを適用しているＺｉｇＢｅｅネットワークとする。背景技術の項で利用した図２を参照しながら、第１の実施形態が前提としているＺｉｇＢｅｅネットワークの概要を簡単に説明する。
【００１６】
ノードＲＴはコーディネータである。コーディネータＲＴ（ネットワークアドレス「０００」）の近傍に位置するノードＮ１、Ｎ２、Ｎ３、…がネットワークに加入すると、「１００」、「２００」、「３００」、…というようにネットワークアドレスをコーディネータＲＴが割り当てる。また、ノードＮ１（ネットワークアドレス「１００」）の近傍に位置するノードＮ１１、Ｎ１２、…がネットワークに加入すると、「１１０」、「１２０」、…というようにネットワークアドレスが割り当てられる。このようにして、図２に示すようなネットワークトポロジが形成される。図２において、ノード間を結ぶ線は無線リンクを表しており、各ノードは、線で結ばれたノードのいずれかに対してパケットを転送する。
【００１７】
この第１の実施形態は、宛先ノード（のネットワークアドレス）によっては、一部のノードが、線で結ばれたノード以外にもパケットを転送し得るようにしたものである。
【００１８】
図１は、第１の実施形態に係る一部ノードの機能的な詳細構成を示すブロック図である。図１に示す詳細構成を有するノードは、エンドノードでもコーディネータでもないノードである。言い換えると、パケットの中継（転送）を行うノードのうち、コーディネータを除いたノードの詳細構成を、図１は示している。なお、エンドノードも、将来的に中継可能なノードとなる場合であれば図１に示す詳細構成を有していても良い。例えば、図２がネットワークの全体構成であるとすると、ノードＮ１〜Ｎ３は、図１の詳細構成を有する。
【００１９】
図１において、ノード１００（Ｎ１〜Ｎ３）は、パケット受信部１０１、リンク情報解析部１０２、ネットワーク情報解析部１０３、アプリケーション（アプリケーションプログラム）１０４、隣接テーブル１０５、経路判定部１０６、経路変更部１０７、パケット生成部１０８及びパケット送信部１０９を有する。なお、リンク情報解析部１０２、ネットワーク情報解析部１０３、隣接テーブル１０５、経路判定部１０６、経路変更部１０７及びパケット生成部１０８を、ソフトウェアによって実現するものであっても良い。
【００２０】
パケット受信部１０１は、隣接ノードが送信した無線パケットを受信し、リンク情報解析部１０２に与えるものである。
【００２１】
リンク情報解析部１０２は、受信パケットのデータリンク層での宛先アドレス（宛先データリンクアドレス）を確認し、当該ノード１００宛であればネットワーク情報解析部１０３に与え、当該ノード１００宛でなければ受信パケットを廃棄するものである。また、リンク情報解析部１０２は、受信パケットのデータリンク層における送信元アドレスを有するノード（当初の送信元に限らず、中継元であることもある）の情報が隣接テーブル１０５に存在するか否かを確認し（受信パケットが上述のように廃棄される場合を含む）、隣接テーブル１０５に、受信パケットの送信元ノードの情報が格納されていなければ隣接テーブル１０５にそのノードの情報を追加するものである。
【００２２】
ネットワーク情報解析部１０３は、受信パケットの最終的な宛先ノードが当該ノード１００であるか否かを判別し、当該ノード１００が最終的な宛先ノードであれば、受信データをアプリケーション１０４に与え、受信パケットの最終的な宛先ノードが他ノードであって当該ノード１００が中継するパケットであれば、そのデータを経路判定部１０６に与えるものである。
【００２３】
アプリケーション１０４は、データ処理を行うソフトウェアであり（データ処理構成はＤＳＰなどを用いたハードウェアによって構成されたものであっても良い）、ネットワーク情報解析部１０３から与えられた受信データを処理したり、また、データ処理の結果、他のノードへの送信が必要となったデータを経路判定部１０６に与えたりするものである。
【００２４】
隣接テーブル１０５は、当該ノード１００の近傍ノードの情報を格納したテーブルである。この隣接テーブル１０５には、ツリー型トポロジによってリンクを張ることになっている隣接ノードだけでなく、当該ノード１００がパケットを受信可能な（当該ノードに電波が届く）近傍ノードの情報が格納される。隣接テーブル１０５は、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＰＡＮＩＤ（Ｐｒｉｖａｔｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  Ｉｄｅｎｔｉｆｉｅｒ）、ネットワークアドレス、ノードタイプ（コーディネータ、エンドノード、ルータ）、位置関係（親、子、同層）等の情報を近傍ノード単位に格納するものである（後述する図６参照）。
【００２５】
経路判定部１０６は、当該ノード１００が当初の送信元となる送信データ、及び、ネットワーク情報解析部１０３から与えられた中継送信するデータに対し、図２に示すようなツリー型トポロジ上で定まる、当該ノード１００からの無線リンクでの宛先ノード（経路）を決定するものである（なお、最終的な宛先の情報はデータに付随している）。この決定方法は、背景技術の項で説明した方法による。すなわち、経路判定部１０６は、宛先ネットワークアドレスと、当該ノード１００のネットワークアドレスとを比較し、親ノード又は子ノードに転送するかを定める。
【００２６】
経路変更部１０７は、隣接テーブル１０５の格納内容を参照しながら、経路判定部１０６が決定した無線リンクでの宛先ノード（経路）を維持するか、経路をショートカットできる無線リンクでの宛先ノードが存在するかを判断するものである。この判断方法については、動作説明で明らかにする。
【００２７】
パケット生成部１０８は、経路変更部１０７の判断結果に応じた無線リンクでの宛先ノードに宛てたパケットを生成するものである。パケット生成部１０８は、その際に必要となるＭＡＣアドレス、ＰＡＮＩＤ等については、隣接テーブル１０５から取り込む。
【００２８】
パケット送信部１０９は、パケット生成部１０８が生成したパケットを無線空間に放射するものである。
【００２９】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態に係る無線通信システムの動作を説明する。特に、エンドノードでもコーディネータでもないノードの転送動作を説明し、第１の実施形態の特徴を明らかにする。
【００３０】
以下では、図２のノードＮ１１からノードＮ２１に宛てたパケットをノードＮ１が中継する場合を例に、具体的にも説明する。因みに、従来であれば、図３を用いて説明したように、このような場合、ノードＮ１１からノードＮ２１に宛てたパケットは、Ｎ１１−Ｎ１−ＲＴ−Ｎ２−Ｎ２１の経路によってノードＮ２１に到達する。
【００３１】
図４は、図１の詳細構成を有するノード１００の動作（パケットの受信、転送先の決定、パケット送信）を示すフローチャートであり、ノードＮ１も、図４のフローチャートに従った処理を実行する。
【００３２】
ノード１００は、そのパケット受信部１０でパケットを受信すると、図４に示す一連の処理を開始する（Ｓ１）。
【００３３】
リンク情報解析部１０２は、受信パケットの送信元アドレスを解析した後、当該ノード１００宛か否かに拘わらず、リンク送信元アドレスに基づいて、隣接テーブル１０５内の情報に対する更新動作を行う（Ｓ２）。更新動作では、更新するか否かの判定動作も含まれ、更新されない場合もあり得る。すなわち、隣接テーブル１０５に、受信パケットのリンク送信元アドレスのノードの情報が格納されていなければ隣接テーブル１０５にそのノードの情報を追加するものである。隣接テーブル１０５には、情報を追加する場合には、ＭＡＣアドレス、ＰＡＮＩＤ、ネットワークアドレス、ノードタイプ（コーディネータ、エンドノード、ルータ）、位置関係（親、子、同層）等でなるレコードを追加する。
【００３４】
ノードタイプ（コーディネータ、エンドノード、ルータ）は、受信パケットの無線リンクから見た送信元のネットワークアドレスに基づいて判定する。例えば、ネットワークアドレスがオール「０」ならばコーディネータＲＴと判定する。ネットワークアドレスがオール「０」ではなくて１桁（最下位の桁）目の値が「０」ならばルータと判定し、ネットワークアドレスがオール「０」ではなくて１桁（最下位の桁）目の値が「０」以外ならばエンドノードと判定する。位置関係（親、子、同層）は、当該ノード１００のネットワークアドレスと、受信パケットの無線リンクから見た送信元のネットワークアドレスとの比較から決定する。「親」とは、コーディネータＲＴ側の、直接パケットを転送できるノードをいい、「子」とは、コーディネータＲＴと反対方向の直接パケットを転送できるノードをいい、「同層」とは、コーディネータＲＴからのホップ数が同一のノードをいう。上述したネットワークアドレスの割当て方法を採用しているため、このような位置関係の情報を、当該ノード１００のネットワークアドレスと、受信パケットの無線リンクから見た送信元のネットワークアドレスとに基づいて、得ることができる。
【００３５】
図５は、ノードＮ１について、無線リンクを張れるノード以外の電波到達範囲の一例を示しており、図６は、図５の電波到達範囲例の場合におけるノードＮ１の隣接テーブル１０５の格納内容を示している。なお、図６は、１レコード中の情報（フィールド）のうち、ＭＡＣアドレス及びＰＡＮＩＤについては記載を省略している。
【００３６】
ノードＮ１は、コーディネータＲＴ直下のノードであるので、ノードＮ１のネットワーク接続時に、コーディネータＲＴの情報が隣接テーブル１０５に記述される。ノードＮ１の子ノードとなるノードＮ１１、Ｎ１２も、ネットワークアドレスが割り当てられるネットワークに接続するときに隣接テーブル１０５に記述される。また、ノードＮ１は、当該ノードＮ１が受信するパケットや中継するパケット以外のパケットも監視し、例えば、ノードＮ２やノードＮ２１からのパケットを受信したときには、これらのノードＮ２、Ｎ２１についても隣接テーブル１０に記述する（なお、１個のパケットの受信によっては、隣接テーブル１０５に１レコードだけが追加される）。ノードＮ２については、コーディネータＲＴへのパケットを受信することにより、位置関係は「同層」と記述することになる。なお、コーディネータＲＴからノードＮ２への転送時に、同層のノードＮ２の存在を認識しておき（隣接テーブルの他に記憶しておく）、ノードＮ２からのパケットの受信時に認識しておいた情報に基づいて「同層」と隣接テーブル１０５に記述するようにしても良い。
【００３７】
以上のように、コーディネータＲＴが送信したパケットの宛先データリンクアドレスであることによって同層を判定するようにしても良く、また、ネットワークアドレスから、コーディネータＲＴからの階層数を計算することができることに基づき、計算により同層を判定するようにしても良い。ネットワークアドレスに基づいた計算によって位置関係を把握する場合であれば、ノードＮ２１について、「同層の子」と捉えることも可能であり、「同層の子」の隣接テーブル１０５に書き込むようにしても良い。
【００３８】
隣接テーブル１０５に対する更新動作が終了すると、リンク情報解析部１０２は宛先データリンクアドレスが当該ノード１００を指示しているか否かを確認する（Ｓ３）。当該ノード宛でなければ、受信パケットを廃棄し、図４に示す一連の処理を終了する。
【００３９】
宛先データリンクアドレスが当該ノード１００を指示している場合には、ネットワーク情報解析部１０３は、さらに、宛先ネットワークアドレスを確認する（Ｓ４）。宛先ネットワークアドレスが当該ノード１００を指示している場合には、ネットワーク情報解析部１０３は、受信パケット中のデータを抽出し、アプリケーション１０４に引き渡して、図４に示す一連の処理を終了する。
【００４０】
宛先ネットワークアドレスが当該ノード１００を指示していない場合には、経路判定部１０６は、宛先ネットワークアドレスが当該ノード１００からみて子ノード側にあるか否かを判定する（Ｓ５）なお、アプリケーション１０４からの送信データに対しては、経路判定部１０６が実行する当該ステップＳ５から処理が実行されることになる。このステップＳ５の判定は、カットスルーを実行しない方向への転送であるか否かの判定である。
【００４１】
経路判定部１０６がパケットの送信方向をツリーの子側に決定すれば、経路変更部１０７によって経路が変更することなく、送信しようとするパケット（中継パケット又は当該ノードが当初の送信元のパケット）がパケット生成部１０８に入力される（Ｓ６）。パケット生成部１０８においては、子ノードのデータリンクアドレスを宛先データリンクアドレスとする（中継する場合であれば宛先データリンクアドレスを書換え、送信元の場合には、その宛先データリンクアドレスに設定する）。例えば、宛先ネットワークアドレスが「１１０」であれば、パケットの宛先データリンクアドレスのフィールドに「１１０」を設定する。
【００４２】
経路判定部１０６がパケットの送信方向をツリーの親側に決定すれば、経路変更部１０７は、宛先ネットワークアドレスのノードが、隣接テーブル１０５に同層と記述されているノード若しくは同層と記述されているノード配下にあるノードかを調べる（Ｓ７）。同層と記述されている配下にあるノードか否かは、ネットワークアドレスからの計算によって把握することができる。
【００４３】
宛先ネットワークアドレスのノードが、隣接テーブル１０５に同層と記述されているノード若しくは同層と記述されているノード配下にあるノードであれば、経路変更部１０７は、そのノードのデータリンクアドレスを、宛先データリンクアドレスに決定する（Ｓ８）。例えば、図６の隣接テーブル１０５では、同層のノードとしてノードＮ２（ネットワークアドレス「２００」）が記述されている。ネットワークアドレスが「２０１」から「２９９」までのノードは、ノードＮ２の配下にあるので、宛先ネットワークアドレスがこの範囲「２０１」〜「２９９」内であれば宛先データリンクアドレスをノードＮ２のデータリンクアドレスに設定する。
【００４４】
これに対して、宛先ネットワークアドレスが、ツリーの子側、同層配下（同層を含む）のノードのネットワークアドレスでなければ、経路変更部１０７は、親側のノードの宛先データリンクアドレスを設定する（Ｓ９）。例えば、宛先ネットワークアドレスが「３００」の場合には、宛先データリンクアドレスを「０００」に設定する。また例えば、宛先ネットワークアドレスが「０００」の場合には、宛先データリンクアドレスを「０００」に設定する。
【００４５】
パケット生成部１０８が、ステップＳ６、Ｓ８、Ｓ９のいずれかで指定した宛先データリンクアドレスを有し、当該ノード１００のデータリンクアドレスを送信元データリンクアドレスとする送信パケットを生成した後、パケット送信部１０９は、ネットワークにそのパケットを送信する（Ｓ１０）。
【００４６】
以上のようにして、ノード１００は、トポロジ上、リンクを張る関係にある近傍ノードだけでなく、トポロジ上はリンクを張る関係にはないが、互いに電波到達範囲内にある同層のノードに対してもリンクを張ることができる。例えば、ノードＮ１は、ノードＲＴ、Ｎ１１、Ｎ１２だけでなく、ノードＮ２に対しても、リンクを張ることができる。図７に示すように、ノードＮ１は、ノードＮ２配下のノードへのパケットを、従来は、コーディネータＲＴ経由でノードＮ２に転送していたが、第１の実施形態においては、直接、ノードＮ２に転送できるようになる。
【００４７】
（Ａ−３）第１の実施形態の効果
第１の実施形態によれば、近傍ノードからの受信状況やルーティング情報に基づき、親ノードや子ノードに限定することなく近傍ノードを隣接テーブルに登録し、宛先ノードへの経路上に隣接テーブルに登録されている同層ノードがあれば、転送先を親ノードではなく、同層ノードを設定するようにしたので、親側のノードを経由することなく、同層ノードに直接転送できる。
【００４８】
これにより、ショートカットされるノードの負荷を低減できる。また、転送に必要なポップ数も低減でき、転送時間の短縮化を期待でき、また、ネットワークの負荷の低減も期待できる。
【００４９】
（Ａ−４）第１の実施形態の変形実施形態
上記では、ツリーの最も根に位置するコーディネータＲＴをショートカットさせる場合について説明したが、ルータノードをショートカットさせる場合にも、上記と同様な技術を適用することができる。
【００５０】
例えば、自己のネットワークアドレス及び宛先ネットワークアドレスから、経路上の全ての中継ノードを知ることができることを利用し、ステップＳ７で、隣接テーブル１０に記述されているノードのうち、最も宛先側に近いノード（宛先ノードそのものであっても良い）に転送することにより、ルータノードのショートカット等を実現させるようにしても良い。
【００５１】
図８は、経路上の全ての中継ノードを知る方法例の説明図である。ネットワークアドレスが「１００」のノードＮ１から宛先ネットワークアドレスが「２１０」のノードＮ２１に送信する場合、ノードＮ１の親は、アドレスが「０００」のノードであり、アドレスが「０００」のノードＲＴが最も親に位置する。同様にして調べ、アドレス「２１０」のノードＮ２１の親ノードはアドレスが「２００」のノードＮ２であり、さらに、アドレスが「２００」のノードＮ２の親は、アドレスが「０００」のノードであり、アドレスが「０００」のノードＲＴが最も親に位置する。これらのことから、ノードＮ１からノードＮ２１への転送では、従来（通常）であれば、Ｎ１（１００）−ＲＴ（０００）−Ｎ２（２００）−Ｎ２１（２１０）という経路が得られる。
【００５２】
次に、この経路の最後から、順に、隣接テーブル１０５にあるかを調べる。まず、アドレス「２１０」のノード情報があるかを調べる。図６の隣接テーブル１０５の例では、ネットワークアドレス「２１０」のノードが記載されているので、ノードＮ１から送信するパケットの宛先リンクアドレスをノードＮ２１のリンクアドレスにし、ノードＮ１からそのパケットを送信する。仮に、隣接テーブル１０５に、アドレス「２１０」のノード情報がない場合には、「２００」のノード、「０００」のノードと順に隣接テーブル１０５中に該当ノードがあるかを調べ、あれば、そのノードのリンクアドレスを宛先リンクアドレスにしてパケットを転送する。
【００５３】
（Ｂ）第２の実施形態
次に、本発明によるノード及び無線通信システムの第２の実施形態を、図面を参照しながら詳述する。
【００５４】
図９は、第２の実施形態に係る一部ノードの機能的な詳細構成を示すブロック図であり、第１の実施形態に係る図１との同一、対応部分には同一符号を付して示している。
【００５５】
図９において、第２の実施形態のノード１００Ａは、パケット受信部１０１、リンク情報解析部１０２、ネットワーク情報解析部１０３、アプリケーション（アプリケーションプログラム）１０４、隣接テーブル１０５、経路判定部１０６、経路変更部１０７、パケット生成部１０８及びパケット送信部１０９に加え、パケット送受信カウンタ１１０を有する。
【００５６】
パケット送受信カウンタ１１０は、ノード間のリンク単位のパケット送受信数をカウントするものであり、隣接テーブル１０５に、リンク単位の送受信数の情報も書き込むものである。隣接テーブル１０５に格納するリンク単位の送受信数の情報は、単位時間当たりの送受信数である。但し、これに限定されたものではなく、直近の所定時間における送受信数であっても良く、ネットワーク接続時からの総数等にしても良い。パケット送受信カウンタ１１０は、データパケットだけでなく、ＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットもカウントする。そのため、リンクの通信環境が良好なときには、同一リンクの送信数と受信数とは一致する。
【００５７】
パケット送受信カウンタ１１０は、当該ノード１００Ａを送信元又は宛先とするリンクのリンク単位の送受信数をカウントする。また、パケット送受信カウンタ１１０は、当該ノード１００Ａの親ノードから、当該ノード１００Ａと同層のノードへのリンクのリンク単位の送受信数をカウントする。
【００５８】
図１０は、隣接テーブル１０５中の、第２の実施形態において特有な情報だけを取り出して示している。リンク（Ａ−Ｂ）の欄は、リンクの両端ノードをネットワークアドレスの組み合わせで規定している。Ａが当該ノード１００Ａ（アドレス「１００」）の場合には、図６の近傍ノード（Ｂ）のレコードに、図１０に示すような情報を盛り込むようにしても良い。
【００５９】
例えば、「１００−０００」の行（レコード）は、アドレスが「１００」の当該ノード１００Ａとアドレスが「０００」のノード（コーディネータ）とのパケット送受信数を記述しており、当該ノード１００Ａから１００パケットを送信し、当該ノード１００Ａが８０パケットを受信したことを表している。また例えば、「０００−２００」の行は、アドレスが「０００」のコーディネータとアドレスが「２００」のノードとのパケット送受信数を記述しており、コーディネータＲＴから５０パケットを送信し、コーディネータＲＴが５０パケットを受信したことを表している。「０００−２００」の行の情報は、パケット傍受により得られた情報である。
【００６０】
第１の実施形態では、同層のノードと通信可能であれば、同層へのノードを転送先とし、ショートカットするものであったが、第２の実施形態では、ノード間のリンク品質も考慮することとした。例えば、経路変更部１０７がノード間のリンク品質も考慮する。なお、図１０に示すような情報から、リンク品質の段階（良、悪など）を得て隣接テーブル１０５に書き込んでおくようにしても良い。
【００６１】
例えば、アドレスが「１００」の当該ノード１００Ａ（Ｎ１）とアドレスが「２００」のノードＮ２との間は、２０パケット送信して２０パケット受信している。また、アドレスが「１００」の当該ノード１００Ａ（Ｎ１）とアドレスが「０００」のコーディネータＲＴとの間は、１００パケット送信し、８０パケット受信している。従って、前者のリンク品質は、後者のリンク品質より良いと言える。
【００６２】
経路変更部１０７は、第１の実施形態と同様にしてショートカットするか否かや、ショートカットする場合の経路を決定する。その後、ショートカット経路でのリンク品質を確認する。当該ノード１００Ａ（Ｎ１）からアドレスが「２００」のノードＮ２へのショートカットでは、リンク品質が良好であり、そのリンクに最終的に決定する。
【００６３】
アドレスが「１００」の当該ノード１００Ａ（Ｎ１）と、アドレスが「３００」のノードＮ３とは、当該ノード１００Ａ（Ｎ１）から１０パケットを送信して、３パケットしか受信できていない。送信数及び受信数の大きい方を分母、小さい方を分子とした値が、所定値（例えば０．７）より小さい場合には、リンク品質は悪いと判断する。従って、当該ノード１００Ａ（Ｎ１）とノードＮ３とのリンク品質は悪いと判断される。この場合には、ショートカットしない経路でのリンクの品質も確認する。ショートカットしない経路では、当該ノード１００Ａ（Ｎ１）とアドレスが「０００」のコーディネータＲＴとの間のリンクと、アドレスが「０００」のコーディネータＲＴとアドレスが「３００」のノードＮ３との間のリンクとが問題となる。２つのリンクの悪い方が、ショートカットした場合のリンク品質と比較される。アドレスが「０００」のコーディネータＲＴと、アドレスが「３００」のノードＮ３とは、コーディネータＲＴから７０パケットを送信して、２０パケットしか受信できておらず、リンク品質は悪い。ショートカットした場合と、しない場合とが共に悪い品質のときには、負荷の面を考慮し、ショートカットを実行する。
【００６４】
以上整理すると、経路変更部１０７は、ショートカットを実行する場合には、ショートカットでのリンク品質を確認する。その品質が良好であれば、ショートカットすることに最終的に決定する。
【００６５】
ショートカットでのリンク品質が悪い場合には、ショートカットしない場合のリンク品質を捉え、ショートカットでのリンク品質と比較する。ショートカットしない場合のリンク品質が良好であれば、ショートカットのリンクが存在しても、ショートカットしないことに最終的に決定する。一方、ショートカットした場合と、しない場合とが共に悪い品質のときには、負荷の面を考慮し、ショートカットを実行するように決定する。
【００６６】
以上では、品質を２段階として比較するものを示したが、３段階以上として比較するようにしても良い。この場合でも、ショートカットした場合と、しない場合との比較による見直し方法は、上述の通りである。
【００６７】
ショートカットするか否かの決定に供し、利用するものと決定されたリンクは、その詳細の比較を行うことなく、同様な宛先の場合に直ちに適用することとしても良い。
【００６８】
但し、リンク品質は、時間と共に変化することが多いので、一度転送経路を設定した後、所定時間の経過後に、再度、経路判定を行い、転送経路を変更するようにしても良い。
【００６９】
（Ｂ−３）第２の実施形態の効果
第２の実施形態によれば、リンク品質を反映させて、ショートカットパスを利用するか否かを決定するようにしたので、ショートカットパスが却ってネットワークの負荷を増大させるように働く場合に、これを未然に防止することができる。
【００７０】
ＺｉｇＢｅｅネットワークでは、追加ノードは、通信が良好にできる近傍ノードの配下になるように親ノードが決定される。そのような決定方法が採用されているため、ショートカットパスでの通信品質（リンク品質）が低下することもあり得る。このようなショートカットパスを選択した場合には、再送が頻繁に生じてネットワークの負荷が増大することもあるが、第２の実施形態では、リンク品質を考慮し、ショートカットパスを利用するか否かを決定するようにしたので、このような課題を未然に防止することができる。
【００７１】
（Ｃ）他の実施形態
上記各実施形態の説明でも種々変形実施形態に言及したが、さらに、以下に例示したような変形実施形態を挙げることができる。
【００７２】
上記各実施形態では、エンドノードでもコーディネータ（ルートノード）でもないノードにショートカット機能を搭載したものを示したが、エンドノードにショートカット機能を搭載するようにしても良い。
【００７３】
また、上記各実施形態においては、宛先又は当該ノードのネットワークアドレスを用いてショートカットパスを設定するものを示したが、他の方法で、本来の経路を決定し、隣接ノード情報と本来の経路との関係でショートカットパスを決定するようにしても良い。例えば、トポロジ情報（ネットワークのノード、リンク構成）を各ノードが記憶しておき、最小ホップ数や最小距離などによって本来の経路を決定した後、上記実施形態のいずれかの方法（例えば、第１の実施形態の変形実施形態の方法）によってショートカットパスを設定するようにしても良い。
【００７４】
このような変形例と同様な方法を適用すれば、本発明は、ツリー型トポロジのネットワークに限定されるものではなく、他のトポロジのネットワークにも適用することができる。
【００７５】
上記では、ＺｉｇＢｅｅネットワークを前提に説明したが、その他のネットワークにも適用できることは勿論である。
【００７６】
第１の実施形態では、その都度、ショートカットパスを適用するか否かを決定するものを示したが、一旦、決定したショートカットパスを、近傍テーブルの更新がなされない限り、又は、ネットワークのノード追加がコーディネータなどから通知されない限り、その後継続して有効とするようにしても良い。
【図面の簡単な説明】
【００７７】
【図１】第１の実施形態に係る一部ノードの機能的な詳細構成を示すブロック図である。
【図２】ツリー型トポロジにおける各ノードへのアドレスの割当て例を示す説明図である。
【図３】ツリー型トポロジにおけるパケットの転送ルート例を示す説明図である。
【図４】第１の実施形態に係る一部ノードの動作を示すフローチャートである。
【図５】第１の実施形態におけるあるノードへの電波到達範囲の一例を示す説明図である。
【図６】図５の対象ノードにおける隣接テーブルの格納内容を示す説明図である。
【図７】第１の実施形態によるコーディネータのショートカットの説明図である。
【図８】第１の実施形態の変形実施形態における経路の認識方法の説明図である。
【図９】第２の実施形態に係る一部ノードの機能的な詳細構成を示すブロック図である。
【図１０】第２の実施形態における隣接テーブルの追加項目の説明図である。
【符号の説明】
【００７８】
ＲＴ…コーディネータ、１００、１００Ａ、Ｎ１〜Ｎ３、Ｎ１１、Ｎ１２、Ｎ２１、Ｎ２２、Ｎ３１、Ｎ３２…ノード、１０１…パケット受信部、１０２…リンク情報解析部、１０３…ネットワーク情報解析部、１０４…アプリケーションプログラム、１０５…隣接テーブル、１０６…経路判定部、１０７…経路変更部、１０８…パケット生成部、１０９…パケット送信部、１１０…パケット送受信カウンタ。
【図１】
0004957476.tif 000003
【図２】
0004957476.tif 000004
【図３】
0004957476.tif 000005
【図４】
0004957476.tif 000006
【図５】
0004957476.tif 000007
【図６】
0004957476.tif 000008
【図７】
0004957476.tif 000009
【図８】
0004957476.tif 000010
【図９】
0004957476.tif 000011
【図１０】
0004957476.tif 000012