(57)【要約】【課題】制御パケットを減らしたことによるノードの省電力化と無線帯域の圧迫を防ぐことが可能となる。【解決手段】本発明の経路制御装置は、マルチホップ通信手段と、他ノードからの制御パケットに基づいて上り経路テーブルを作成する上り経路テーブル作成手段と、上りパケットを送信する場合に、上り経路テーブルを参照し、パケット送信毎に転送先を変化させながら決定する上り経路決定手段と、他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づき、上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成手段と、下り経路テーブルを用いて下りパケットを送信させる手段とを備える。【選択図】      図１
2010087667.tif 000002
【特許請求の範囲】
【請求項１】
マルチホップ通信によりパケットを送受信するマルチホップ通信手段と、
１又は複数の他ノードから受信した制御パケットに含まれる上記各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成手段と、
上りパケットを送信する場合に、上記上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定手段と、
他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上記上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成手段と、
下りパケットを送信する場合に、上記下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定手段と
を備えることを特徴とする経路制御装置。
【請求項２】
上記上り経路決定手段が、上記上り経路テーブルに記録される複数のノードの転送コスト値に応じた決定方法により上記上りパケットの転送先を決定するものであることを特徴とする請求項１に記載の経路制御装置。
【請求項３】
上記上り経路決定手段が、上記上り経路テーブルに記録される複数のノードの中から、転送先候補を所定数に限定し、この限定した転送先候補の中から決定するものであることを特徴とする請求項１又は２に記載の経路制御装置。
【請求項４】
上記下り経路テーブル作成手段が、受信した上記上りパケットの転送経路の違いに応じて、宛先が同一の下りパケットについて複数の転送先が対応付けられた上記下り経路テーブルを作成するものであることを特徴とする請求項１〜３のいずれかに記載の経路制御装置。
【請求項５】
上記下り経路決定手段が、上記下り経路テーブルに基づいて、各転送先の転送コスト値に応じた決定方法により上記下りパケットの転送先を決定するものであることを特徴とする請求項１〜４のいずれかに記載の経路制御装置。
【請求項６】
複数のノードによるマルチホップ通信によりパケットを送受信するための経路制御方法であって、
１又は複数の他ノードから受信した制御パケットに含まれる上記各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成工程と、
上りパケットを送信する場合に、上記上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定工程と、
他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上記上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成工程と、
下りパケットを送信する場合に、上記下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定工程と
を有することを特徴とする経路制御方法。
【請求項７】
経路制御装置を、
マルチホップ通信によりパケットを送受信するマルチホップ通信手段、
１又は複数の他ノードから受信した制御パケットに含まれる上記各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成手段、
上りパケットを送信する場合に、上記上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定手段、
他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上記上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成手段、
下りパケットを送信する場合に、上記下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定手段
として機能させることを特徴とする経路制御プログラム。
【請求項８】
マルチホップ通信を行う複数のノードのそれぞれが、請求項１〜５のいずれかに記載の経路制御装置を備えるものであることを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路制御装置、経路制御方法、経路制御プログラム及びノードに関し、例えば、空間に分散配置された多数の無線通信ノードが、無線を利用して相互にデータ通信を行う場合において、データを集約する基地局の役割を担うシンクノードとセンシングを行う端末のセンサノード間のマルチホップ通信を実現するために各ノードが行う経路制御装置、経路制御方法、経路制御プログラム及びノードに適用し得るものである。
【背景技術】
【０００２】
マルチホップネットワーク等で行われるマルチホップ通信のルーティング方法（経路制御方法）については、非特許文献１に記載されるものがある。非特許文献１に記載のルーティング方法は、ノードがトポロジー情報を定期的にフラッディングして知らせ、経路制御を行うノードはネットワーク全体のトポロジー情報を知ることができる。そして、経路制御を行うノードは、このネットワーク全体のトポロジー情報から転送経路を計算して、マルチホップ通信を実現するというものである。非特許文献１のルーティング方法は、ノードがネットワーク全体のトポロジー情報を持っているため、任意のノードへの転送経路を計算することが可能であり、また障害時には、代替経路を計算することも可能である。しかしながら、例えばセンサネットワークに非特許文献１の記載技術を適用する場合、任意の２ノード間の通信は不要で、シンクノードとセンサノードとの間の通信だけを実現できればよいので、全体のトポロジー情報の収集を行う必要はないが、制御パケットのオーバーヘッドが問題となる。
【０００３】
特許文献１には、１つの基地局と多数の端末のネットワーク構成の場合に、基地局と端末との間におけるパケット転送方法に関する技術が記載されている。特許文献１の記載技術は、基地局からのフラッディング通信時のＴＴＬ値やホップカウントを各ノードが記憶しておき、基地局からの上りトラフィックの転送にはＴＴＬ値やホップカウントを用いて転送先を決定する方法が示されている。特許文献１の方法を用いると経路生成のオーバーヘッドを削減することができ、また上り方向の経路を作成することができるが、特定のノードへの下り方向の経路を作成することができず、下り通信を行うことができない。
【０００４】
特許文献２には、マルチホップ経路の冗長化に関するものであり、基地局から各ノードに対して主経路と副経路の２つのツリ−を作成することで、無線端末の故障時や、障害時に経路を切り替えて通信を行う方法を示している。しかし、特許文献２の方法は制御パケットの衝突を起こさないように冗長経路を作成することを特徴としており、２重化のために制御パケットの送信が増えてしまうことは回避できない。
【０００５】
【特許文献１】特開２００７−１３５１３０号公報
【特許文献２】特開２００５−３５４６２６号公報
【非特許文献１】Ｔ．  Ｃｌａｕｓｅｎ  ｅｔ  ａｌ，”Ｏｐｔｉｍｉｚｅｄ  Ｌｉｎｋ  Ｓｔａｔｅ  Ｒｏｕｔｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＯＬＳＲ）”，ＲＦＣ  ３６２６，Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ，ＩＥＴＦ：／／ｗｗｗ．ｉｅｔｆ．  ｏｒｇ／ｒｆｃ／ｒｆｃ３６２６．  ｔｘｔ）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献２に記載されるような従来のマルチホップ経路を冗長させる場合には、その冗長経路の分だけ余計に経路生成用の制御パケットを送信し、別経路をあらかじめ準備することが必要となる。
【０００７】
その制御パケットのオーバーヘッドはノード数の増加に伴って増加するため、大規模ネットワークで冗長経路を作成する場合には経路制御用のトラフィックが帯域を圧迫するという問題があった。これは、制御パケットの送受信に必要な電力を削減する観点からも好ましくない。
【０００８】
また、逆にオーバーヘッドを小さくすることを特徴とする方法では、冗長な経路情報を作成することができないことや、下り経路が作成できないなど、転送経路の計算機能を犠牲にしていることが課題である。
【０００９】
そこで、本発明は、少ない制御パケットのオーバーヘッドでありながら、経路を複数作成し得、作成する冗長経路数を増やした場合にも制御パケットの送信数を一定に保つことができ、障害時には各ノードが代替経路を決定しパケットの中継を行うことができる経路制御装置、経路制御方法、経路制御プログラム及びノードを提供する。これによって、制御パケットを減らすことができ、ノードの省電力化と無線帯域の圧迫を防ぐことが可能となる。
【課題を解決するための手段】
【００１０】
かかる課題を解決するために、第１の本発明の経路制御装置は、（１）マルチホップ通信によりパケットを送受信するマルチホップ通信手段と、（２）１又は複数の他ノードから受信した制御パケットに含まれる各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成手段と、（３）上りパケットを送信する場合に、上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定手段と、（４）他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成手段と、（５）下りパケットを送信する場合に、下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定手段とを備えることを特徴とする。
【００１１】
第２の本発明の経路制御方法は、複数のノードによるマルチホップ通信によりパケットを送受信するための経路制御方法であって、（１）マルチホップ通信によりパケットを送受信するマルチホップ通信工程と、（２）１又は複数の他ノードから受信した制御パケットに含まれる各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成工程と、（３）上りパケットを送信する場合に、上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定工程と、（４）他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成工程と、（５）下りパケットを送信する場合に、下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定工程とを有することを特徴とする。
【００１２】
第３の本発明の経路制御プログラムは、経路制御装置を、（１）マルチホップ通信によりパケットを送受信するマルチホップ通信手段、（２）１又は複数の他ノードから受信した制御パケットに含まれる各他ノードの転送コスト値を記録して上り経路テーブルを作成する上り経路テーブル作成手段、（３）上りパケットを送信する場合に、上り経路テーブルを参照して、上りパケットの転送先をパケット送信毎に変化させながら決定する上り経路決定手段、（４）他ノードから上りパケットを受信すると、当該上りパケットに含まれる生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、上りパケットの転送経路の違いに応じた下り経路テーブルを作成する下り経路テーブル作成手段、（５）下りパケットを送信する場合に、下り経路テーブルを参照して当該下りパケットの転送先を決定する下り経路決定手段として機能させることを特徴とする。
【００１３】
第４の本発明のノードは、マルチホップネットワークを構成する複数のノードのそれぞれが、第１の本発明の経路制御装置を備えるものであることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、マルチホップ通信において、少ない制御パケットのオーバーヘッドでありながら、経路を複数作成し得、作成する冗長経路数を増やした場合にも制御パケットの送信数を一定に保つことができ、障害時には各ノードが代替経路を決定しパケットの中継を行うことができる。更に、制御パケットを減らしたことによるノードの省電力化と無線帯域の圧迫を防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１５】
（Ａ）第１の実施形態
以下では、本発明の経路制御装置、経路制御方法、経路制御プログラム及びノードの第１の実施形態について図面を参照しながら説明する。
【００１６】
第１の実施形態は、例えばセンサネットワーク等のように、空間に分散配置された多数の無線通信ノードが、無線を利用して相互にデータ通信を行うネットワークを構成する無線通信ノードに本発明を適用した実施形態を例示して説明する。
【００１７】
（Ａ−１）第１の実施形態の構成
図２は、第１の実施形態のネットワークの構成を示す構成図である。図２に示す丸は、ネットワーク９を構成する無線通信ノードを示す。図２において、第１の実施形態のネットワーク９は、８つの無線通信ノード０〜無線通信ノード７（以下では、単にノード０〜ノード７と呼ぶ）からなる場合を例示する。
【００１８】
図２において、ノード０はシンクノードである。ノード１〜ノード７はセンサノードである。ノード１〜ノード７は、自ノードで得たセンサデータ又は他ノードから転送されてきたセンサデータを、シンクノードであるノード０を送信先としてデータを送信又は転送する。これにより、ノード１〜ノード７において得られたセンサデータを、シンクノードであるノード０において収集することができる。
【００１９】
図３は、ノード０〜７の内部構成を示す内部構成図である。図３に示すように、ノード０〜７は、通信制御部５１、送信部５２、受信部５３、センサ５４を少なくとも有するものである。通信制御部５１は、送信部５２又は受信部５３によるマルチホップ無線通信の制御を行うものであり、転送経路を決定する転送制御機能を有するものである。送信部５２及び受信部５３は、通信制御部５１の制御を受けて、マルチホップ無線通信を行うものである。また、センサ５４は、所定のセンシングデータを取得するものである。
【００２０】
図１は、ノード０〜ノード７における通信制御部５１の経路制御機能を説明する機能説明図である。なお、ノード０〜７の通信制御部５１のハードウェア構成は図示しないが、既存の通信装置と同様に、例えば、ＣＰＵと記憶手段（ＲＯＭ、ＲＡＭ等）を備える。そして、通信制御部５１の機能は、ＣＰＵが必要なデータを用いて処理プログラムを実行することに実現される。
【００２１】
図１において、通信制御部５１の経路制御機能としては、受信パケット判定部１０、上り経路決定部２０、下り経路決定部３０、制御パケット送信部４０を少なくとも有する。なお、以下では、センサノード１〜７からシンクノード０宛のパケット経路を上り経路といい、シンクノード０からセンサノード宛のパケット経路を下り経路という。
【００２２】
受信パケット判定部１０は、他のノードから送信されてきたパケットを受信した場合や、又は自己の上位処理からのパケットの送信要求を受けた場合に、そのパケットが自ノード宛のパケットであるか、中継すべきパケットであるか、又は制御パケットであるかを判定し、受信パケットの振り分けを行うものである。
【００２３】
受信パケット判定部１０による判定は、パケットヘッダに含まれる最終宛先情報及びパケット種類情報を解析することで行う。つまり、受信パケット判定部１０は、パケットの最終宛先が自ノードであれば当該パケットを上記処理に与え、パケットの最終宛先がシンクノード０であれば当該パケットを上り経路決定部２０に与え、他のセンサノードであれば下り経路決定部３０に与える。
【００２４】
また、受信パケット判定部１０は、上り経路テーブルを作成するための制御パケットを受信した場合には、その制御パケットを上り経路テーブル管理部２１に与える。
【００２５】
ここで、制御パケットのヘッダには、少なくとも制御パケットの送信元ノードのアドレスと、送信元ノードからシンクノード０までのデータパケットを転送するときに必要なコストを示す転送コスト値とが記載されている。
【００２６】
この転送コスト値について、最も単純なものとしては、シンクノード０から自ノードまでのホップ数を適用できる。例えば、シンクノード０の転送コスト値は「０」、シンクノード０から１ホップのノードの転送コスト値は「１」、シンクノード０から２ホップのノードの転送コスト値は「２」というようにする。また、別のものとしては、各ホップのリンクの品質を転送コスト値に反映させたものを適用できる。例えば、品質が良いほど転送コスト値が小さくなるように設定し、自ノードからシンクノード０までの転送コスト値を求める方法を適用できる。
【００２７】
さらに、受信パケット判定部１０は、上りの中継パケットを受信した場合及び自ノード宛のパケットを受信した場合、下り経路テーブル管理部３１の下り経路テーブルの更新をさせる。
【００２８】
ここで、受信パケット判定部１０による下り経路テーブルの更新について説明する。データパケットのヘッダには、少なくとも、当該パケットを生成した生成元ノードのアドレス情報と、自ノードの転送してきた転送元ノードのアドレス情報が含まれている。受信パケット判定部１０は、この生成元ノード及び転送元ノードのアドレス情報を利用して下り経路テーブルの更新を行う。
【００２９】
具体的には、例えば、図２のネットワーク９において、ノード４がデータパケットを生成し、ノード１がデータパケットの転送を行い、シンクノード０がデータパケットを受信した場合を例示する。このとき、シンクノード０は、受信したデータパケットから、生成元ノードがノード４であり、転送元ノードがノード１であることが分かる。この場合において、シンクノード０から見た下り経路としては、ノード１に転送すれば、ノード４への経路があると考えられる。そこで、シンクノード０においては、生成元ノード（ノード４）を宛先とし、転送元ノード（ノード１）を転送先となるように、下り経路テーブルを更新する（図５参照）。
【００３０】
ここで、生成元ノードが同じノードであっても、最終ホップを転送する転送元ノードのアドレスが異なる場合がある。例えば、ノード４がシンクノード０にデータパケットを送信する場合、４⇒１⇒０と４⇒２⇒０など複数の経路のいずれかで転送される。この場合、最終ホップを転送するノードは複数の可能性があり、この複数のノードに対応して、下り経路テーブルの転送先の値は図５のようにＸ個持つものとする。こうすることで、シンクノード０は、ノード４宛の下りパケットを送信するための転送先として複数の候補をもつことができる。
【００３１】
上り経路決定部２０は、最終宛先であるシンクノード０にパケットを転送するために、自ノードは次にどのノードに転送すればよいかを決定するものである。上り経路決定部２０は、上り経路テーブル管理部２１の上り経路テーブルを参照して、上り経路の転送先を決定する。
【００３２】
図４（Ａ）は、上り経路テーブルの構成を示す構成図であり、図４（Ｂ）は、ネットワークトポロジーを示す図である。図４（Ａ）では、ノード４における上り経路テーブルを例示する。図４（Ａ）に示すように、上り経路テーブルは、転送先ノードを示す「転送先」と、当該転送先ノードからシンクノード０までの転送コスト値を示す「コスト」を項目として有する。
【００３３】
上り経路決定部２０により上り経路の転送先の決定方法としては、例えば、ノード４が上りパケットの転送先を決定する際、図４（Ａ）に示す上り経路テーブルを参照して、上り経路決定部２０が、転送コスト値が「１」であるノード１又はノード２を転送先として決定する方法を適用する。このように転送コスト値が小さいノードを転送先として決定し、転送するのが最も効率的となるからである。
【００３４】
また、上り経路決定部２０は、上り経路テーブルを参照して、パケットの送信毎に異なるノードを転送先として決定する方法も適用する。すなわち、上り経路テーブルに複数の転送先ノードが記録されている場合、上り経路決定部２０は前回決定したノードとは異なるノードを今回決定するようにする。こうすることで、複数のノードで受信したノードの受信パケット判定部１０の下り経路テーブルの更新を促進させることができる。すなわち、下り経路テーブルに下り経路をより多く記録させることができる。
【００３５】
ここで、例えばノード４自身の転送コスト値が「２」であるときに、転送コスト値が同じであるか又は転送コスト値が大きいノードを転送先として決定し、そのノードに転送してしまうと、回りこむような経路を使用することになり、パケットがシンクノード０に到達するまでの遅延が大きくなることが予想される。このため、転送先の選び方としては転送コスト値に応じて選択しやすさを変化させて、転送コスト値の小さいものを選びやすくするようにランダムに選ぶ方法をとると、そのバランスを調整でき、遅延の発生が抑制される。
【００３６】
また、上り経路の候補が非常に多い場合には、各ノードに送信するたびに、送信先ノードがそれぞれ受信パケット判定部１０の下り経路テーブルの更新処理を行うことになり、多くのノードにテーブル情報が作られてすぎてしまう可能性がある。したがって、下り経路テーブルの記録のために必要なメモリのサイズを減らすために、転送コスト値の上位Ｎ個の内からどれか１つを選び転送先として決定する方法をとることが効果的である。
【００３７】
さらに、転送先を決定してパケットを送信しても、転送先の故障、移動、障害物の影響のために送信先に電波が届かず、送信失敗となる場合がある。この場合には上り経路テーブルから送信に失敗した転送先を削除するか、当該転送先となるノードの転送コスト値を高くするなどして、次回から転送先として選びにくくするようにする。また、パケットの送信に失敗した場合には、他に転送先候補がある場合には、その転送先にパケットを転送する。
【００３８】
上り経路テーブル管理部２１は、受信パケット判定部１０から上り経路を作成するための制御パケットを受け取ると、その制御パケットに含まれる情報に基づいて、上り経路テーブルを作成、更新するものである。
【００３９】
この制御パケットは、制御パケットの送信元ノードのアドレス情報と、シンクノード０までの転送コスト値とを含むものである。上り経路テーブル管理部２１は、これら送信元ノードのアドレス情報及び転送コスト値の組を制御パケットから抽出して、図４に示す上り経路テーブルに送信元ノードのアドレス情報及び転送コスト値の組を記録する。
【００４０】
また、上り経路テーブル管理部２１は、後述する制御パケット送信部４０の転送コスト管理部４２の転送コスト値の更新を行うものである。この転送コスト値の更新方法としては、例えば、上り経路テーブル管理部２１が、上り経路テーブルに記録される転送コスト値のうち最小のものを選択し（例えば、最小転送コスト値をＡとする）、自ノードから最小転送コスト値のノードまでの転送コスト値を求め（例えば、最小転送コスト値のノードまでの転送コスト値をＢとする。このとき、上り経路テーブル管理部２１は、Ａ＋Ｂの値を、自ノードからシンクノード０までの転送コスト値として採用する。）更新する。
【００４１】
下り経路決定部３０は、シンクノード０からセンサノード宛のパケットを転送するために、自ノードは次にどのノードに転送すればよいかを決定するものである。下り経路決定部３０は、下り経路テーブルを参照して、下り経路の転送先を決定する。
【００４２】
図５（Ａ）は、下り経路テーブルの構成を示す構成図であり、図５（Ｂ）は、ネットワークトポロジーを示す図である。図５（Ａ）では、シンクノード０における下り経路テーブルを例示する。図５（Ａ）に示すように、下り経路テーブルは、パケットの最終的な送信先ノードを示す「宛先」、宛先ノードにパケットを届けるために、次にパケットを転送する転送先ノードを示す複数の「転送先１」、「転送先２」、…、「転送先Ｘ」とを項目として有する。
【００４３】
例えば、パケットの最終的な送信先ノードをノード０とすると、下り経路決定部３０は、ノード０を宛先とする登録データを下り経路テーブルから検索し、ノード０を宛先とする場合の転送先ノードを決定する。
【００４４】
このとき、登録データに複数の転送先がある場合には、下り経路決定部３０は転送先ノードを任意に選択するようにしてもよい。また、図５（Ａ）に示す上り経路テーブルの変形例として、それぞれの「転送先」に「転送コスト値」を対応付けるようにしてもよい。これにより、下り経路決定部３０は、登録データに複数の転送先がある場合に、それぞれの転送先ノードの転送コスト値に応じて効率的に選択することもできる。この転送先ノードの選択方法としては、転送コスト値が小さいものを優先的に選択するようにしてもよい。
【００４５】
また、下り経路決定部３０は、決定した転送先ノードにパケット送信した結果、パケット送信が失敗した場合、下り経路テーブルにおいて、当該ノードを転送先から削除したり、転送コスト値を高くしたりして、次回の選択の際に選ばない又は選びにくいように、下り経路テーブルを更新するものである。これにより、パケット送信に失敗した場合であって、他の転送先候補があるときには、その他の転送先候補を選択し転送することができる。
【００４６】
さらに、下り経路テーブル３０は、登録データに転送先がない場合、受信パケットが中継パケットのときには、自ノードに転送してきたノードを転送先としてパケットを戻す。
【００４７】
下り経路テーブル管理部３１は、下り経路テーブルを管理するものである。下り経路テーブルの更新は、受信パケット判定部１０から、上りパケットを受信する毎に行う。
【００４８】
制御パケット送信部４０は、送信トリガー発生部４１と転送コスト管理部４２とを有し、送信トリガー発生部４１により指示されたタイミングで制御パケットを送信するものである。制御パケットには、自ノードのアドレス情報と、転送コスト管理部４２の管理する自ノードからシンクノード０までの転送コスト値とが含まれる。制御パケット送信部４０が制御パケットを送信することによって、近傍に存在する他ノードに、自ノードからシンクノード０までの転送コスト値を知らせることができる。
【００４９】
送信トリガー発生部４１は、制御パケット送信部４０が制御パケットを送信するタイミングを決定するものである。送信トリガー発生部４１のタイミング制御方法としては、種々の方法を適用することができ、例えば最も単純な方法として、１つのタイマーで備え、所定周期毎に指示する方法を適用することができる。他の方法としては、シンクノード０からのフラッディングでトリガーを動作させる方法も適用できる。つまり、受信パケット判定部１０におけるシンクノード０から制御パケットの受信に連動させて、制御パケット送信部４０が制御パケットを送信することになる。なお、フラッディングを行う場合は同じ制御パケットに対して何度も応答してしまうことを防ぐために、シーケンスナンバーなどの情報を制御パケットに含む必要がある。
【００５０】
転送コスト管理部４２は、自ノードからシンクノード０まで、パケットを送信するために必要な転送コストを示す転送コスト値を管理するものである。この転送コスト値は、上述したように、シンクノード０から自ノードまでのホップ数や、自ノードからシンクノード０までの各中継リンクのリンク品質を足し合わせた値を用いることができる。
【００５１】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態のネットワーク９を構成する各ノードにおける経路制御処理の動作について図面を参照しながら説明する。
【００５２】
以下では、図２に示すネットワークにおいて、ノード４とシンクノードであるノード０との間で通信を行うための経路制御を説明する。
【００５３】
また、各ノードは、送信トリガーが周期的に制御パケットの送信タイミングの指示を行い、制御パケット送信部４０が周期的に制御パケットを送信させるものとする。
【００５４】
（Ａ−２−１）上り経路テーブルの作成について
図６は、第１の実施形態の各ノードにおいて、上り経路テーブルを作成する処理を示す説明図である。
【００５５】
まず、各ノードでは、自ノードのアドレス情報と自ノードからシンクノード０までの転送コスト値とを少なくとも有する制御信号を制御パケット送信部４０が周期的に送信する。
【００５６】
各ノードにおいて、他ノードが送信したパケットを受信し、受信パケット判定部１０が受信パケットを解析し、当該受信パケットが制御パケットであるか否かを判断する（ステップＳ１０１）。
【００５７】
受信パケット判定部１０が制御パケットであると判断すると、受信パケット判定部１０は、当該受信パケットのヘッダから送信元ノードのアドレス情報及び転送コスト値を抽出し（ステップＳ１０２）、上り経路テーブルを作成又は更新する（ステップＳ１０３）。
【００５８】
例えば、シンクノードであるノード０が制御パケットを送信する場合、ノード１、２、３において制御パケットが与えられると、受信パケット判定部１０は、送信元ノードが「ノード０」であり、転送コスト値が「０」であることを抽出する。そして、受信パケット判定部１０は、「転送先：ノード０」、「転送コスト値：０」となるように、上り経路テーブルを作成又は更新する。
【００５９】
なお、上り経路テーブル管理部２１は、上り経路テーブルの内容に基づいて、自ノードからシンクノード０までの転送コスト値を更新し、転送コスト管理部４２に与える。そして、送信トリガー発生部４１の送信タイミングに従って、制御パケット送信部４０が制御パケットを周期的に送信する。
【００６０】
例えば、ノード１、２、３では、上り経路テーブル管理部２１が自ノードの転送コスト値を「１」とし、自ノードのアドレス情報及び転送コスト値「１」を有する制御パケットが送信される。
【００６１】
また、ノード１、２、３から制御パケットが送信されると、ノード４、５においても、図６に示す処理が行われて、上り経路テーブルが作成される。
【００６２】
例えば、ノード４、５において、ノード１が送信した制御パケットを与えられると、ノード４、５の受信パケット判定部が、送信元ノードが「ノード１」であり、転送コスト値が「１」であることを抽出し、「転送先：ノード１」、「転送コスト値：１」となるように、上り経路テーブルを作成又は更新する。
【００６３】
ノード２、３からの制御パケットについても、ノード４、５は同様の処理を行い、上り経路テーブルを作成する。また、ノード４、５は、上述したように自ノードの転送コスト値の更新処理及び制御パケットの送信処理を行う。
【００６４】
このように、すべてのノードが、制御パケットの受信に基づく上り経路テーブルの作成処理、転送コスト値の更新処理及び制御パケットの送信処理を繰り返し行うことで、すべてのノードが自ノードからシンクノードまでの転送コスト値を認識することができる。
【００６５】
（Ａ−２−２）上りパケットの送信処理及び下り経路テーブルの作成について
次に、各ノードにおける上りパケットの送信処理について図面を参照しながら説明する。
【００６６】
図７は、第１の実施形態の各ノードにおける上りパケットの送信処理を示す説明図である。図８は、第１の実施形態の各ノードにおける下り経路テーブルの作成を示す説明図である。
【００６７】
ノード４がシンクノード（ノード０）に向けてデータパケットを送信する場合において、ノード４での上りパケットの送信処理を例示する。
【００６８】
図７において、ノード４において、受信パケット判定部１０が上位処理から送信要求を受け、シンクノード（ノード０）宛の送信データがある場合（ステップＳ２０１）、上り経路決定部２０は上りパケットの転送先を検索する（ステップＳ２０２）。
【００６９】
まず、上り経路決定部２０は、図４（Ａ）に示す上り経路テーブルを参照して（ステップＳ２０３）、転送先が複数あるか否かを判断する（ステップＳ２０４）。
【００７０】
上り経路テーブルの転送先が１個の場合、上り経路決定部２０は、その転送先を上りパケットの転送先と決定し（ステップＳ２１０）、当該上りパケットを送信させる（ステップＳ２１１）。
【００７１】
一方、上り経路テーブルの転送先が複数の場合（図４（Ａ）参照）、上り経路決定部２０は、過去にパケットを送信しており、転送先として選択している転送先ノードがあるときには、その過去の転送先ノード以外のノードを選択するようにする（ステップＳ２０６）。なお、上り経路テーブルに多数の転送先が記録されている場合には、選択対象を所定数に限定するようにしてもよい（ステップＳ２０５）。
【００７２】
例えば、ノード４がノード０宛に初めてパケット送信する場合、過去に選択した転送先以外のノードがないので、ノード４の上り経路決定部２０は、上り経路テーブルに記録されている複数の転送先から任意の転送先を選択（例えば、ノード１を選択）する（ステップＳ２０９）。そして、上り経路決定部２０は、その転送先を上りパケットの転送先と決定し（ステップＳ２１０）、ノード１に当該上りパケットを送信させる（ステップＳ２１１）。すなわち、この場合、ノード４⇒ノード１⇒ノード０の経路でパケットが転送される。
【００７３】
また例えば、次に、ノード４が別の送信データパケットを続けて送信する場合には、前回転送先として選択した転送先があるので、ステップＳ２０７に移行する。
【００７４】
ステップＳ２０７以降では、上り経路決定部２０が、上り経路テーブルを参照して、過去のパケット送信の転送先とは異なる転送先を選択する方法を用いる。図７では、上り経路決定部２０が転送コスト値が小さいものを優先的に選択する場合を例示する。
【００７５】
ステップＳ２０７において、上り経路決定部２０は、上り経路テーブルの転送先のうち転送コスト値が小さいノードを検索する（ステップＳ２０７）。
【００７６】
そして、転送コスト値が同じノードが１個の場合（ステップＳ２０８）、上り経路決定部２０はそのノードを転送先と決定し（ステップＳ２１０）、上りパケットを送信させる（ステップＳ２１１）。
【００７７】
一方、転送コスト値が同じノードが複数ある場合には（ステップＳ２０８）、上り経路決定部２０は任意の転送先を選択し（ステップＳ２０９）、その転送先を上りパケットの転送先と決定し（ステップＳ２１０）、上りパケットを送信させる（ステップＳ２１１）。
【００７８】
例えば、上記のように、ノード４が続けてノード０に別のデータパケットを送信する場合、前回のパケット送信でノード１を選択しているから、ノード１以外の転送先のうち、転送コスト値が最小であるノード２を転送先と決定して、パケットを送信する。すなわち、この場合、ノード４⇒ノード２⇒ノード０の経路でパケットが転送される。
【００７９】
次に、各ノードにおける下り経路テーブルの作成処理の動作を図８を参照しながら説明する。
【００８０】
図８において、各ノードの受信パケット判定部１０が上りパケットの受信を判定すると（ステップＳ３０１）、受信パケット判定部１０は受信パケット（上りパケット）から、当該パケットを生成した生成元ノードのアドレス情報と、当該パケットを転送した転送元ノードのアドレス情報とを抽出し、下り経路テーブル管理部３０は、これら生成元ノードのアドレス情報及び転送元ノードのアドレス情報に基づいて、下り経路テーブルを作成又は更新する（ステップＳ３０３）
例えば、ノード０では、ノード４からノード４⇒ノード１⇒ノード０の経路と、ノード４⇒ノード２⇒ノード０の経路でパケット受信している。
【００８１】
この場合、ノード０の下り経路決定部３０は、「生成元ノード：ノード４」であるから、下り経路テーブルの「宛先：ノード４」とする。また、ノード４⇒ノード１⇒ノード０の経路のパケットから「転送先ノード：ノード１」、ノード４⇒ノード２⇒ノード０の経路のパケットから「転送先ノード：ノード２」となるように、下り経路決定部３０は下り経路テーブルを作成する。
【００８２】
また、ノード１、２はノード４からのパケットをノード０に中継するノードであるが、ノード１、２においても、同様の処理により下り経路テーブルを作成する。
【００８３】
なお、下りパケットの送信処理については、各ノードにおいて、受信パケット判定部１０が下りパケットを判定すると、下り経路決定部３０が、下り経路テーブルを参照して、当該パケットの宛先に対応する転送先を選択し、その転送先に向けて下りパケットを送信することで実現できる。このとき、下り経路決定部３０は、転送コスト値が小さいものを優先的に下りパケットの転送先として決定する。
【００８４】
上記のように、上り経路決定部２０が、上りパケットの送信の際に、複数の転送先を選択し、複数の転送経路でパケット送信することにより、受信側のノードの下り経路決定部３０が、受信した上りパケットに含まれる上り経路の中継情報に基づいて、下り経路テーブルを作成することで、下り経路情報が複数のノードに記録される。
【００８５】
また、上りパケットの中継時に、中継するノードが下り経路テーブルを更新しているため、下りの冗長経路情報を作成するためだけの特別な制御パケットの送信のオーバーヘッドは発生しない。
【００８６】
例えば、通常時は、センサネットワーク等として、シンクノードが各ノードから一定間隔でデータを収集しており、異常時には、シンクノード０が対象ノードに問い合わせるといったトラフィックを発生させるアプリケーションの場合、通常時に収集するデータパケットの中継過程で下りテーブルを更新することができ、十分時間が経過すると、上りトラフィックは複数の経路でシンクノードに送信されるため、その逆をたどる下りテーブルも複数記録されている。
【００８７】
そうすると、シンクノード０がノード４にパケットを送信する場合には、図４のように下り経路テーブルの宛先ノード４に対する転送先がノード１、２、３と複数記録されており、シンクノード０からノード１へのリンクが切れたとしても、再送信の時にノード２に送信することでノード４に転送パケットを送信することが可能となる。
【００８８】
（Ａ−３）第１の実施形態の効果
以上のように、第１の実施形態によれば、上りパケットの送信の際、転送先ノードを切り替えながらデータパケットを送信し、上りパケットの中継時に下りパケットの転送経路テーブルを記録する方法をとると、制御パケットの送信を上り経路を実現するためのホップカウントの計算だけに抑えながらも、シンクノードとセンサノード間の通信を実現するための上り、下りの経路を複数形成することが可能となる。
【００８９】
こうすることで、制御パケットの送受信を抑えたことによる省電力効果や、アプリケーションで使える帯域の確保を実現しながらも、複数の転送経路を作成したことによる異常時の耐性を上げることができ、経路の切断時などには別経路を容易に決定できるため、パケットの到達率を向上することが可能となる。
【図面の簡単な説明】
【００９０】
【図１】第１の実施形態のノードの転送制御機能を説明する機能構成図である。
【図２】第１の実施形態のネットワークの構成を示す構成図である。
【図３】第１の実施形態のノードの内部構成を示す内部構成図である。
【図４】第１の実施形態の上り経路テーブル及びネットワークトポロジーを示す説明図である。
【図５】第１の実施形態の下り経路テーブル及びネットワークトポロジーを示す説明図である。
【図６】第１の実施形態の上り経路テーブルの作成処理を示す説明図である。
【図７】第１の実施形態の上りパケットの送信処理を示す説明図である。
【図８】第１の実施形態の下り経路テーブルの作成処理を示す説明図である。
【符号の説明】
【００９１】
１０…受信パケット判定部、２０…上り経路決定部、２１…上り経路テーブル管理部、３０…下り経路決定部、３１…下り経路テーブル管理部、４０…制御パケット送信部、４１…送信トリガー、４２…転送コスト管理部。
【図１】
2010087667.tif 000003
【図２】
2010087667.tif 000004
【図３】
2010087667.tif 000005
【図４】
2010087667.tif 000006
【図５】
2010087667.tif 000007
【図６】
2010087667.tif 000008
【図７】
2010087667.tif 000009
【図８】
2010087667.tif 000010