(57)【要約】【課題】ノード間で通信データを伝送しているルートが使用できなくなったことをただちに検出し、検出されたルートが次のルート選択時には選択されないようにする。【解決手段】複数個のノードＮからなるマルチホップ通信ネットワークにおいて、通信品質取得手段１２が適時にハローメッセージを送信し、直接通信する隣接ノードＮとの間のリンクコストを求めて隣接ノードテーブルＴｂ１に登録する。通信データを伝送するルートは各ノードＮの隣接ノードテーブルＴｂ１に登録されたリンクコストを用いて選択される。選択されたルートを用いて通信データを伝送する際に、ルート上のノードＮが隣接ノードに通信データを送信した後に送信先のノードＮからの肯定応答を受信しなかった場合、評価値修正手段１５が送信元のノードＮの隣接ノードテーブルＴｂ１において送信先のノードＮとのノード間のリンクコストを大きくする。【選択図】図１
2008301444.tif 000002
【特許請求の範囲】
【請求項１】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークにおいて他のノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは適時にハローメッセージを送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、出発点であるノードから目的の宛先となる到着点のノードに通信データを送信する際に、出発点であるノードから１台目の中継ノードである隣接ノードに通信データを送信した後に当該隣接ノードからの肯定応答を受信しなかった場合には、出発点であるノードの隣接ノードテーブルにおいて、当該隣接ノードとの間の通信品質を引き下げる方向に評価値を変更することを特徴とするマルチホップ通信ネットワークにおけるルート評価方法。
【請求項２】
前記ハローメッセージは、第１のノードが他のノードに自アドレスを送信することにより他のノードにおいて受信方向の通信品質を検出させる第１のハローメッセージと、第１のハローメッセージを受信した第２のノードが自アドレスとともに受信方向の通信品質を第１のノードに送信することにより第１のノードにおいて受信方向の通信品質を検出させる第２のハローメッセージと、第２のハローメッセージを受信した第１のノードが自アドレスとともに受信方向の通信品質を第２のノードに送信する第３のハローメッセージとを含み、第１のノードと第２のノードとは、それぞれ前記隣接ノードテーブルに、相手ノードから受信したハローメッセージにより検出した受信方向の通信品質の評価値と、相手ノードから受信したハローメッセージに含まれる相手ノードへの送信方向の通信品質の評価値とを、相手ノードのアドレスに対応付けて登録することを特徴とする請求項１記載のマルチホップ通信ネットワークにおけるルート評価方法。
【請求項３】
前記送信元のノードが前記送信先のノードからの肯定応答を受信しなかった後の一定期間において、前記送信元のノードは、前記第２のハローメッセージと前記第３のハローメッセージとのいずれかを受信すると、ハローメッセージに含まれる送信方向の通信品質の評価値を引き下げる方向に変更して前記隣接ノードテーブルに登録することを特徴とする請求項２記載の通信ネットワークにおけるルート評価方法。
【請求項４】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークにおいて他のノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは、適時にハローメッセージを送信することにより隣接ノードを検出するとともに隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、さらに、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時にフラッディング送信し、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを各ノードに設けたリンク情報テーブルに登録し、ノード間で通信データを伝送するルートは各ノードのリンク情報テーブルと隣接ノードテーブルとのうち少なくともリンク情報テーブルに登録された評価値を用いて算出した出発点であるノードから到着点であるノードまでのルートの通信品質が上位であるルートを選択し、ノードによる中継を伴うルートを用いてノード間で通信データを伝送する際に、中継ノードがその送信先の隣接ノードから肯定応答を受信しなかった場合には、通信データの送信に失敗した送信元のノードが、通信データの出発点であるノードに向かって、通信データの送信に失敗した一対のノードのアドレスを含むルートエラーメッセージを送信し、ルートエラーメッセージを受信したルート上の各ノードのリンク情報テーブルにおいて、通信データの送信に失敗した一対のノードの間の通信品質を引き下げる方向に評価値を変更することを特徴とするマルチホップ通信ネットワークにおけるルート評価方法。
【請求項５】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としノードのうちの１台を親ノードとし他のノードを子ノードとするマスタースレーブ型のマルチホップ通信ネットワークにおいて他の子ノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは、適時にハローメッセージを送信することにより隣接ノードを検出するとともに隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、子ノードは、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時に親ノードに送信することにより、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを親ノードに設けたリンク情報テーブルに登録し、子ノードと親ノードとの間で通信データを伝送するルートは通信品質が上位であるルートを選択し、子ノードによる中継を伴うルートを用いて子ノードと親ノードとの間で通信データを伝送する際に、中継ノードがその送信先の隣接ノードから肯定応答を受信しなかった場合には、通信データの送信に失敗した送信元のノードが、通信データの出発点であるノードに向かってルートエラーメッセージを送信し、ルートエラーメッセージを受信したルート上の各ノードでは隣接ノードテーブルにおいてルートエラーメッセージを渡してきた隣接ノードの通信品質を引き下げる方向に評価値を変更することを特徴とするマルチホップ通信ネットワークにおけるルート評価方法。
【請求項６】
通信を中継する前記送信元のノードが前記送信先のノードからの肯定応答を受信しなかった後の一定期間において、選択されているルート上で前記送信元のノードと通信データの出発点のノードとを含む各ノードは、前記トポロジ通知メッセージを受信すると、トポロジ通知メッセージに含まれる通信品質の評価値を引き下げる方向に変更して前記リンク情報テーブルに登録することを特徴とする請求項４または請求項５記載のマルチホップ通信ネットワークにおけるルート評価方法。
【請求項７】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークに用いるノードであって、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録され通信データを伝送するルートの選択時に通信品質が上位になるように評価値を用いてルートが選択される隣接ノードテーブルと、隣接ノードを通信先のノードとして通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に隣接ノードテーブルにおいて送信先のノードに対応する通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とするマルチホップ通信ネットワークのノード。
【請求項８】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークに用いるノードであって、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録される隣接ノードテーブルと、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時にフラッディング送信するリンク情報送信手段と、他ノードからのトポロジ通知メッセージを受信したときにマルチホップ通信ネットワーク内で隣接する一対のノードのアドレスと両ノード間の通信品質の評価値とが登録され通信データを伝送するルートの選択時に通信品質が上位になるノード間を通るように評価値を用いてルートが選択されるリンク情報テーブルと、通信を中継する際に隣接ノードを送信先として通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に通信データを最初に送信したノードに向かって通信データの送信に失敗したノード間のアドレスを含むルートエラーメッセージを送信するエラー情報送信手段と、ルートエラーメッセージを受信するとリンク情報テーブルにおいて通信データの送信に失敗したノード間の通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とするマルチホップ通信ネットワークのノード。
【請求項９】
複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としノードのうちの１台を親ノードとし他のノードを子ノードとするマスタースレーブ型のマルチホップ通信ネットワークにおいて、各ノードは、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録される隣接ノードテーブルとを有し、親ノードは、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを登録するリンク情報テーブルと、子ノードと親ノードとの間で通信データを伝送するルートとしてリンク情報テーブルに登録された評価値を用いて算出したルートの通信品質が上位であるルートを選択するルート選択手段とを有し、子ノードは、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして親ノードに向かって送信し親ノードのリンク情報テーブルに登録させるリンク情報送信手段と、通信を中継する際に隣接ノードを送信先として通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に通信データの出発点のノードに向かってルートエラーメッセージを送信するエラー情報送信手段と、ルートエラーメッセージを受信すると隣接ノードテーブルにおいてルートエラーメッセージを渡してきた隣接ノードの通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とするマルチホップ通信ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク上に存在するノード間で通信する際に、他のノードによる通信の中継を可能にしたマルチホップ通信ネットワークにおいて、情報を伝送するノード間で適切なルートを選択するためのマルチホップ通信ネットワークにおけるルート評価方法と、当該ルート評価方法に対応したマルチホップ通信ネットワークのノード、マルチホップ通信ネットワークに関するものである。
【背景技術】
【０００２】
従来から、通信ネットワーク上に存在するノード（すなわち、通信端末）間で通信する際に、情報を伝送しようとするノード間で通信を直接行うことができない場合に、他のノードを通信の中継に用いることによって通信を可能にする技術が知られており、とくに通信ネットワークの一つである無線ネットワークにおいてこの技術を用いることが提案されている。この種の無線ネットワークは、マルチホップ無線ネットワークと呼ばれている。
【０００３】
無線ネットワークでは、ノードが移動したり雑音の影響を受けることにより、通信のルートの通信品質が時間経過に伴って変化する上に、通信可能であったノードとのルートが不通になって通信ネットワークのネットワークトポロジが時間経過に伴って変化するから、ノード間で通信を維持するには、ノード間で経路情報を交換し、使用可能なルートを探索するとともに使用可能なルートのうち通信品質のよいルートを選択することが必要である。
【０００４】
ところで、無線ネットワークにおける上述の問題は、電力線を伝送路に用いる電力線搬送通信（以下、「ＰＬＣ」（Power Line Communication）と略称する）の技術を用いて構築した通信ネットワークであるＰＬＣネットワークにおいても生じる。ＰＬＣネットワークの用途としては、たとえば、集合住宅において各住戸と管理室とにそれぞれノードを設置することによって、各住戸の設備機器を集中監視・制御するシステムが提案されている。
【０００５】
この種のシステムでは、電力線をルートに用いて高周波の搬送波信号を用いて情報を伝送するものであるから、搬送波信号には微弱な電力を用いており、集合住宅のように電力線の総延長が長くなると、各住戸に設置したノードから管理室のノードに対して通信を直接行うことができない場合が生じる。また、ＰＬＣネットワークはノードを電力線に接続するものであるから、電力線に接続された負荷機器により発生する雑音が通信品質に影響し、ノードを電力線のコンセントに接続する場合にはコンセントに対するノードの抜き差しによってネットワークトポロジが変化することになる。
【０００６】
したがって、ＰＬＣネットワークにおいても、マルチホップ無線ネットワークと同様に、他のノードを通信の中継に用いるとともに、ルートを探索し選択するマルチホップ通信ネットワークの技術が要求される。ＰＬＣネットワークにマルチホップ通信ネットワークの技術を適用した事例は知られている（たとえば、特許文献１参照）。
【０００７】
ところで、マルチホップ通信ネットワークでは、通信を開始する前にどのノードを通るルートを用いるかを探索して選択しなければならない。ルートの探索は、通信しようとする出発点のノードと到着点のノードとの間に存在する可能なルートを見つけ出す処理であり、ルートの選択は、可能なルートのうち通信品質が上位であるルートを選び出す処理である。
【０００８】
ルートを探索するには、まず他のノードの中継なしに通信することができるノードの対（言い換えれば、ノード間のリンク）を検出する必要がある。このようなリンクがわかれば、リンクを辿ることにより通信データの出発点と到着点とのノードを結ぶルートを追跡することができる。一方、ルートを選択するには、リンクごとの通信品質を評価する必要がある。すなわち、探索により得られたルートのうちで、通信品質が良好であるルートを採用するのが望ましいから、各リンクの通信品質を適宜の評価値で評価し、この評価値を用いて出発点から到着点までの通信品質を推定し、通信品質が良好なルートを選択するのである。
【０００９】
他のノードの中継なしに通信することができるノードの対を検出する技術としては、特許文献１において、各ノードが適時にハローメッセージと称する信号を送受信し、ハローメッセージをノードが受信することによって受信方向の通信品質を取得し、さらに受信側のノードから受信方向の通信品質を含むハローメッセージを送信することにより、送信側のノードに送信方向の通信品質を取得させる技術が示されている。
【特許文献１】特開２００６−６７５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、マルチホップ通信ネットワークではネットワークトポロジが時間とともに変化するから、選択したルートであっても通信の途中でルート内の特定のノードが通信不能になることがある。この原因には、当該ノード自身が取り除かれた場合や、衝突などによって当該ノードを経由するルートの通信品質が低下した場合などが考えられる。また、通信可能なノードであってもノード間の距離が比較的遠い場合やノード間でノイズレベルが変化する場合には、当初は通信可能であっても後に通信不能になることもある。
【００１１】
このように、ルート内の特定のノードにおいて通信不能になれば、そのルートを使用することができなくなる。ハローメッセージによりリンクコストを取得しているときには、各ノードの隣接ノードテーブルの内容が変更されるから、当該ルートが使用できなくなったことがわかるが、ノード間で情報（データパケット）を伝送しているときにはルートの変更がなされず、次のハローメッセージでリンクコストが変更されるまで当該ルートが使用され続けることになる。
【００１２】
別の方法として、データ通信を行った際に失敗した場合（肯定応答を受信しなかった場合）、通信不可になったと判断して、当該リンク情報をテーブルから削除する方法も知られている。伝送路の状態は悪化していなくても、たまたまトラフィックが混んでいてコリジョン等で通信できなかった場合でも、リンク断と判断されてしまい、実際には通信可能な状態なのに、ルートがなくなってしまうという問題がある。
【００１３】
本発明は上記事由に鑑みて為されたものであり、その目的は、ノード間で通信データを伝送しているルートが使用できなくなったことをただちに検出し、検出されたルートが次のルート選択時には選択されないようにするマルチホップ通信ネットワークにおけるルート評価方法、マルチホップ通信ネットワークのノード、マルチホップ通信ネットワークを提供することにある。
【課題を解決するための手段】
【００１４】
請求項１の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークにおいて他のノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは適時にハローメッセージを送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、出発点であるノードから目的の宛先となる到着点のノードに通信データを送信する際に、出発点であるノードから１台目の中継ノードである隣接ノードに通信データを送信した後に当該隣接ノードからの肯定応答を受信しなかった場合には、出発点であるノードの隣接ノードテーブルにおいて、当該隣接ノードとの間の通信品質を引き下げる方向に評価値を変更することを特徴とする。
【００１５】
請求項２の発明では、請求項１の発明において、前記ハローメッセージは、第１のノードが他のノードに自アドレスを送信することにより他のノードにおいて受信方向の通信品質を検出させる第１のハローメッセージと、第１のハローメッセージを受信した第２のノードが自アドレスとともに受信方向の通信品質を第１のノードに送信することにより第１のノードにおいて受信方向の通信品質を検出させる第２のハローメッセージと、第２のハローメッセージを受信した第１のノードが自アドレスとともに受信方向の通信品質を第２のノードに送信する第３のハローメッセージとを含み、第１のノードと第２のノードとは、それぞれ前記隣接ノードテーブルに、相手ノードから受信したハローメッセージにより検出した受信方向の通信品質の評価値と、相手ノードから受信したハローメッセージに含まれる相手ノードへの送信方向の通信品質の評価値とを、相手ノードのアドレスに対応付けて登録することを特徴とする。
【００１６】
請求項３の発明では、請求項２の発明において、前記送信元のノードが前記送信先のノードからの肯定応答を受信しなかった後の一定期間において、前記送信元のノードは、前記第２のハローメッセージと前記第３のハローメッセージとのいずれかを受信すると、ハローメッセージに含まれる送信方向の通信品質の評価値を引き下げる方向に変更して前記隣接ノードテーブルに登録することを特徴とする。
【００１７】
請求項４の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークにおいて他のノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは、適時にハローメッセージを送信することにより隣接ノードを検出するとともに隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、さらに、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時にフラッディング送信し、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを各ノードに設けたリンク情報テーブルに登録し、ノード間で通信データを伝送するルートは各ノードのリンク情報テーブルと隣接ノードテーブルとのうち少なくともリンク情報テーブルに登録された評価値を用いて算出した出発点であるノードから到着点であるノードまでのルートの通信品質が上位であるルートを選択し、ノードによる中継を伴うルートを用いてノード間で通信データを伝送する際に、中継ノードがその送信先の隣接ノードから肯定応答を受信しなかった場合には、通信データの送信に失敗した送信元のノードが、通信データの出発点であるノードに向かって、通信データの送信に失敗した一対のノードのアドレスを含むルートエラーメッセージを送信し、ルートエラーメッセージを受信したルート上の各ノードのリンク情報テーブルにおいて、通信データの送信に失敗した一対のノードの間の通信品質を引き下げる方向に評価値を変更することを特徴とする。
【００１８】
請求項５の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としノードのうちの１台を親ノードとし他のノードを子ノードとするマスタースレーブ型のマルチホップ通信ネットワークにおいて他の子ノードによる中継なしに通信可能なノードである隣接ノードとの間の通信品質を用いて通信のルートを評価する方法であって、各ノードは、適時にハローメッセージを送信することにより隣接ノードを検出するとともに隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質の評価値を各ノードに設けた隣接ノードテーブルに登録し、子ノードは、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時に親ノードに送信することにより、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを親ノードに設けたリンク情報テーブルに登録し、子ノードと親ノードとの間で通信データを伝送するルートは通信品質が上位であるルートを選択し、子ノードによる中継を伴うルートを用いて子ノードと親ノードとの間で通信データを伝送する際に、中継ノードがその送信先の隣接ノードから肯定応答を受信しなかった場合には、通信データの送信に失敗した送信元のノードが、通信データの出発点であるノードに向かってルートエラーメッセージを送信し、ルートエラーメッセージを受信したルート上の各ノードでは隣接ノードテーブルにおいてルートエラーメッセージを渡してきた隣接ノードの通信品質を引き下げる方向に評価値を変更することを特徴とする。
【００１９】
請求項６の発明では、請求項４または請求項５の発明において、通信を中継する前記送信元のノードが前記送信先のノードからの肯定応答を受信しなかった後の一定期間において、選択されているルート上で前記送信元のノードと通信データの出発点のノードとを含む各ノードは、前記トポロジ通知メッセージを受信すると、トポロジ通知メッセージに含まれる通信品質の評価値を引き下げる方向に変更して前記リンク情報テーブルに登録することを特徴とする。
【００２０】
請求項７の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークに用いるノードであって、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録され通信データを伝送するルートの選択時に通信品質が上位になるように評価値を用いてルートが選択される隣接ノードテーブルと、隣接ノードを通信先のノードとして通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に隣接ノードテーブルにおいて送信先のノードに対応する通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とする。
【００２１】
請求項８の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としたマルチホップ通信ネットワークに用いるノードであって、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録される隣接ノードテーブルと、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして適時にフラッディング送信するリンク情報送信手段と、他ノードからのトポロジ通知メッセージを受信したときにマルチホップ通信ネットワーク内で隣接する一対のノードのアドレスと両ノード間の通信品質の評価値とが登録され通信データを伝送するルートの選択時に通信品質が上位になるノード間を通るように評価値を用いてルートが選択されるリンク情報テーブルと、通信を中継する際に隣接ノードを送信先として通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に通信データを最初に送信したノードに向かって通信データの送信に失敗したノード間のアドレスを含むルートエラーメッセージを送信するエラー情報送信手段と、ルートエラーメッセージを受信するとリンク情報テーブルにおいて通信データの送信に失敗したノード間の通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とする。
【００２２】
請求項９の発明は、複数個のノードを備えノード間での通信時に他のノードによる通信の中継を可能としノードのうちの１台を親ノードとし他のノードを子ノードとするマスタースレーブ型のマルチホップ通信ネットワークにおいて、各ノードは、ハローメッセージを適時に送信し隣接ノードとの間のハローメッセージの送受信により検出される両ノード間の通信品質を取得する通信品質取得手段と、通信品質取得手段により取得した通信品質の評価値が隣接ノードのアドレスに対応付けて登録される隣接ノードテーブルとを有し、親ノードは、マルチホップ通信ネットワーク内で隣接する各一対のノードのアドレスと両ノード間の通信品質の評価値とを登録するリンク情報テーブルと、子ノードと親ノードとの間で通信データを伝送するルートとしてリンク情報テーブルに登録された評価値を用いて算出したルートの通信品質が上位であるルートを選択するルート選択手段とを有し、子ノードは、隣接ノードテーブルに登録された隣接ノードのアドレスおよび通信品質の評価値を自アドレスとともにトポロジ通知メッセージとして親ノードに向かって送信し親ノードのリンク情報テーブルに登録させるリンク情報送信手段と、通信を中継する際に隣接ノードを送信先として通信データを送信した後に送信先のノードからの肯定応答を受信しなかった場合に通信データの出発点のノードに向かってルートエラーメッセージを送信するエラー情報送信手段と、ルートエラーメッセージを受信すると隣接ノードテーブルにおいてルートエラーメッセージを渡してきた隣接ノードの通信品質を引き下げる方向に評価値を変更する評価値修正手段とを備えることを特徴とするマルチホップ通信ネットワーク。
【発明の効果】
【００２３】
請求項１、７の発明の構成によれば、直接通信するノード間において通信データを送信したときに相手側のノードから肯定応答がなければ、隣接ノードテーブルにおける送信先のノードとのノード間の通信品質を引き下げるから、ルートの選択時には肯定応答を返さなかったノードを通る可能性が低減される。したがって、ルートの選択時に存在していたノードが削除されたり、当該ノードとの間の通信品質が低下したりしたことが、通信データの伝送中に検出され隣接ノードテーブルに反映されるから、次のハローメッセージを待たずにルートの選択に用いることが可能になる。
【００２４】
請求項２の発明の構成によれば、２個のノード間でハローメッセージを３回送受することによって、双方のノードにおいて受信方向の通信品質だけでなく送信方向の通信品質を知ることができるから、通信データを伝送する方向に応じて通信品質が異なる場合でも適正なルートを選択することが可能になる。
【００２５】
請求項３の発明の構成によれば、隣接ノードテーブルの通信品質を変更した直後にハローメッセージを受信した場合であっても通信品質を低下させた効果が簡単に失われるのを防止することができる。すなわち、ハローメッセージを受け取ると隣接ノードテーブルにおける通信品質の内容が上書きされて変更されるから、隣接ノードテーブルにおいて特定の隣接ノードとの間の通信品質を低下させた直後にハローメッセージを受信してそのまま上書きすると通信品質を低下させた効果が簡単に失われてしまうことになるが、通信品質を一旦低下させた後の一定時間は通信品質を引き下げる方向に変更して登録するから、通信品質を引き下げた効果を暫時維持することができる。
【００２６】
請求項４、５、８、９の発明の構成によれば、通信データの出発点と到着点との途中で伝送に失敗したときに、伝送に失敗したノードから出発点側のノードにおいて通信品質の低下をリンク情報テーブルに反映させることができるから、このルートが選択される可能性が大幅に低減される。しかも、ルートの選択時に存在していたノードが削除されたり、当該ノードとの間の通信品質が低下したりしたことが、通信データの伝送中に検出されるから、次のハローメッセージを待たずにルートの選択に用いることが可能になる。
【００２７】
請求項６の発明の構成によれば、リンク情報テーブルでの通信品質を変更した直後にトポロジ通知メッセージを受信した場合であっても通信品質を低下させた効果が簡単に失われるのを防止することができる。すなわち、トポロジ通知メッセージを受信すると、リンク情報テーブルの通信品質が上書きされて変更されるから、隣接ノードテーブルにおいて特定の隣接ノードとの間の通信品質を低下させた直後にトポロジ通知メッセージを受信してそのまま上書きすると通信品質を低下させた効果が簡単に失われてしまうことになるが、通信品質を一旦低下させた後の一定時間は通信品質を引き下げる方向に変更して登録するから、通信品質を引き下げた効果を暫時維持することができる。
【発明を実施するための最良の形態】
【００２８】
（基本構成）
マルチホップ通信ネットワークにおいて、通信データの出発点と到着点となるノードの間のルートを決めるには、他のノードの中継なしに直接通信が可能なノードの対を検出するとともに、対になる各ノード間のリンクにおける通信品質を評価することが必要である。また、通信データの出発点と到着点との間で取りうる通信経路（ルート）を探索し、通信可能なルートのうち通信品質の高いルートを選択することが必要である。
【００２９】
以下に説明する実施形態では、ルートの通信品質に関する評価に、隣接するノードが送信した信号の受信強度と、情報を伝送するルート内に含まれるノードについて隣接するノードを結ぶリンクの本数（以下、「ホップ数」と呼ぶ）とを用いる（ノードが隣接するとは、２つのノード間で他のノードによる中継なしに通信が可能であることを意味し、隣接ノードの間はホップ数が１である）。したがって、ホップ数は、ルートを構成するノード（ルートの両端のノードを含む）の個数から１を引いた値になる。ルートの通信品質は、信号強度が大きくホップ数が少ないほどよいと評価し、探索されたルートのなかで通信品質ができるだけよいルートを選択する。
【００３０】
たとえば、直接通信が可能なノード間の信号強度を複数段階（たとえば、１０段階）に分割してコード化した値（以下、このコードをＳＱ（Signal Quality）と呼ぶ）を用い、通信ネットワーク内における通信データを伝送する２ノード間の通信品質を、次式で求められるルートコストによって評価する。つまり、ルートコストが通信品質の評価値になる。
（ルートコスト）＝Ｋａ×（ルート内の各リンクに関するＳＱ値の総和）＋Ｋｂ×（ホップ数）
ただし、Ｋａ，Ｋｂは重み係数である。なお、以下では、Ｋｂ＝０の場合について説明する。
【００３１】
通信データの出発点と到着点となるノードの間に中継する２個のノードの存在するルートがあり、各リンクのＳＱが、それぞれ３、４、５であれば、ルートコストは、Ｋａ×（３＋４＋５）＋Ｋｂ×３＝１２・Ｋａ＋３・Ｋｂになる。
【００３２】
ところで、ルートコストのうち各リンクごとのＳＱ値に重み係数Ｋａを乗じた値は、直接通信が可能な互いに隣接ノードとなる２個のノード間のリンクに関する通信品質の評価値であって、以下ではこの評価値をリンクコストと呼ぶ。リンクコストは、通信する２個のノード間において、どちらのノードを送信側とするかによって変化することがあるから、相手ノードからの信号の受信強度により得られるリンクコスト（受信側の通信品質の評価値）を受信リンクコストと呼び、自ノードからの信号を相手ノードが受信したときの受信強度により得られるリンクコスト（送信側の通信品質の評価値）を送信リンクコストと呼ぶ。
【００３３】
各ノードは隣接ノードに関して受信リンクコストおよび送信リンクコストを相手ノードのアドレスに対応付けて登録する隣接ノードテーブルを備える。通信ネットワーク内の各リンクのリンクコストは、受信リンクコストと送信リンクコストとのうち値の大きいほうを用いる。つまり、各リンクのリンクコストを通信品質の悪いほうで評価する。
【００３４】
隣接ノードテーブルは、図７に示すように、隣接ノードごとに付与されているアドレス（隣接ノードアドレス）と、隣接ノードごとの受信リンクコストと、隣接ノードごとの送信リンクコストとの各項目を登録するフィールドを備える。ルートコストは上述した演算により求められたルートコストである。ただし、ルートに含まれる各リンクのリンクコストは重み係数Ｋａをすでに乗じてあるから、Ｋａ×（ルート内の各リンクに関するＳＱ値の総和）は、ルートに含まれる各リンクのリンクコストの総和によって求められる。上位コストについては後述する。なお、隣接ノードテーブルでは、実際には、上位コストに関するデータとして、ルート上のノードのアドレスとルートの各リンクのリンクコストとの情報を保持しているが、ここでは、説明を簡単にするために、上位コストをルート上のリンクコストの合計として扱いノードのアドレスについては考慮しない。
【００３５】
まず、隣接する２個のノードに着目してリンクコストを取得する動作を説明する。１個のノードに複数のノードが隣接する場合であってもリンクコストを取得する基本的な手順は同様である。リンクコストの取得には、通信データとは別に適宜の時間間隔で送信するハローメッセージを用いる。各ノードはハローメッセージに自アドレスを含めてブロードキャスト送信により送信する。
【００３６】
いま、図６に示すように、リンクコストを求める２個のノードＡ，Ｂに着目し、ノードＡが最初にハローメッセージを送信する場合を想定する。ノードＡからハローメッセージＨ１を送信すると、ノードＢがノードＡが送信したハローメッセージＨ１を直接受信できる場合には、ノードＢにおいて受信リンクコストを取得する。ノードＢが取得した受信リンクコストは、図７（ａ）のように、ノードＢの隣接ノードテーブルにおいて、ノードＡの隣接ノードアドレスに対応付けて登録される（ここでは、受信リンクコストが「８」）。ハローメッセージＨ１の送信は適時に行うが、通常は一定の時間間隔で定期的に行う。
【００３７】
次に、ノードＢでは、ハローメッセージＨ１の送信元であるノードＡのアドレスと受信リンクコストとを情報に含めたハローメッセージＨ２を送信する。このハローメッセージＨ２を受信したノードＡでは、ハローメッセージＨ２によってノードＢからの信号を受信したときの受信リンクコストを求めることができるから、図７（ｂ）のように、この受信リンクコストをノードＢのアドレスに対応付けて隣接ノードテーブルに登録する（ここでは、受信リンクコストが「５」）。また、ハローメッセージＨ２には、自アドレスと相手ノードＢがハローメッセージＨ１を受信したときの受信リンクコストとが含まれているから、この受信リンクコストをノードＡからノードＢへの送信リンクコストとしノードＢのアドレスに対応付けて隣接ノードテーブルに登録する（つまり、ノードＢに対する送信リンクコストは「８」）。
【００３８】
その後、ノードＡはふたたびハローメッセージＨ３を送信する。このハローメッセージＨ３は、ノードＢからハローメッセージＨ２を受信したときの受信リンクコストとノードＢのアドレスとを情報に含んでいる。したがって、ノードＢではハローメッセージＨ３に含まれる情報としてノードＡにハローメッセージＨ２を送信したときの送信リンクコストを取得することができる（つまり、ノードＡい対する送信リンクコストは「５」）。ノードＢでは、図７（ｃ）のように、ノードＡから受け取った受信リンクコストをノードＢからノードＡへの送信リンクコストとしノードＡのアドレスに対応付けて隣接ノードテーブルに登録する。
【００３９】
上述のように、互いに隣接ノードとなるノードＡ，Ｂの間では、ハローメッセージＨ１〜Ｈ３を３回送受信することにより、双方向のリンクコストを隣接ノードテーブルに登録することができる。また、上述の手順から明らかなように、３個のハローメッセージＨ１〜Ｈ３の送受信後には、隣接するノードの隣接ノードテーブルの内容は相補的な内容になる。ここに、相補的であるということは、一方の内容が失われても他方の内容を復元できることになる。
【００４０】
ところで、実際の通信ネットワークは、図８に示すように、多数個（図示例では７個）のノードＮ０〜Ｎ６を含んでいる。ノードＮ０〜Ｎ６は対等に扱うことが可能であるが、ここでは、１つのノードＮ０を親ノードとしたマスタースレーブ型の通信ネットワークを用いて説明する。マスタースレーブ型の通信ネットワークでは、親ノードＮ０を除く他のノードＮ１〜Ｎ６は子ノードであり、通信データを伝送するルートの一端は親ノードＮ０になり、他端はいずれかの子ノードＮ１〜Ｎ６になる。マスタースレーブ型の通信ネットワークでは、通信データを伝送するルートの一端になる子ノードＮ１〜Ｎ６を除く子ノードＮ１〜Ｎ６は、必要に応じて通信を中継する。各子ノードＮ１〜Ｎ６は親ノードＮ０との間に介在する子ノードＮ１〜Ｎ６の個数が多いほど（つまり、ホップ数が大きいほど）下位であるということができる。どの子ノードＮ１〜Ｎ６が親ノードＮ０との間のルートに含まれて中継を行うかは、以下に説明する手順で決められる。また、マスタースレーブ型の通信ネットワークは説明の都合上で用いるが、各ノードＮ０〜Ｎ６は対等な関係であってもよい。
【００４１】
上述したように、隣接するノードＮ０〜Ｎ６の間ではハローメッセージＨ１〜Ｈ３を３回送受信することにより、受信リンクコストと送信リンクコストとを取得することができる。
【００４２】
ここで、図８に示す通信ネットワーク（ネットワークトポロジは、リンクコストの取得途中で変化しないものとする）について考察する。マルチホップ通信ネットワークでは、隣接ノードテーブルにデータが登録されるまでは、中継なしに直接通信することができるノードＮ０〜Ｎ６が未知であるから、隣接ノードを探索するために送信するハローメッセージＨ１〜Ｈ３は、ブロードキャストによって送信される。
【００４３】
すなわち、各ノードＮ０〜Ｎ６では、それぞれブロードキャストによってハローメッセージ（ハローメッセージＨ１に相当）を送信する。ただし、マスタースレーブ型の通信ネットワークであるから、親ノードＮ０からハローメッセージの送信を開始する。親ノードＮ０に隣接する子ノードＮ１，Ｎ２がハローメッセージを受信すると、子ノードＮ１，Ｎ２は、図６および図７を用いて説明した手順で親ノードＮ０との間で受信リンクコストおよび送信リンクコストを求める。
【００４４】
子ノードＮ１，Ｎ２が送信リンクコストを取得すると、各子ノードＮ１，Ｎ２はブロードキャストによってハローメッセージを送信する。親ノードＮ０は、受信リンクコストおよび送信リンクコストをすでに取得しているが、子ノードＮ１，Ｎ２が送信したハローメッセージ（ハローメッセージＨ１に相当）に応答する。このような動作を順次繰り返すことによって、各子ノードＮ１〜Ｎ６は隣接するノードとの間の受信リンクコストおよび送信リンクコストを取得し、隣接ノードテーブルに隣接ノードとの間の受信リンクコストおよび送信リンクコストを登録する。
【００４５】
子ノードＮ６を例として、受信リンクコストの取得後に送信リンクコストを取得するまでの手順をさらに詳しく説明する。子ノードＮ６は、隣接する子ノードＮ１，Ｎ３，Ｎ４，Ｎ５からハローメッセージを受信するから、図９に示すように、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５ごとの受信リンクコストを隣接ノードアドレスに対応付けて隣接ノードテーブルに登録する。
【００４６】
ここで、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５よりも上位のノードについては、それぞれが受信リンクコストと送信リンクコストを保有しているから、受信リンクコストと送信リンクコストとの大きいほうを当該子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のリンクコストとし、上位の各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のいずれかを通って親ノードＮ０に至るルートについて、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５ごとにリンクコストの和の最小値を求める。このようにして求めた最小値を、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５ごとの「上位コスト」と呼ぶ。この時点では、子ノードＮ６は、隣接する各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５との間の送信リンクコストを取得していないが、子ノードＮ１，Ｎ３，Ｎ４，Ｎ５では送信リンクコストをすでに取得して上位コストを決定しているのである。上位コストも隣接ノードテーブルに登録される。上述したように、上位コストに関する情報は、実際には、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５から親ノードＮ０までのルート上の各ノードのアドレスと各リンクのリンクコストとの個々の情報として登録されており、上位コストを求めるにはルート上のリンクについてリンクコストの総和を求める。
【００４７】
いま、図８における各ノードＮ０〜Ｎ６の間で、子ノードＮ１，Ｎ３，Ｎ４，Ｎ５と子ノードＮ６との間を除いては送信リンクコストが決定され、その値が隣接するノードＮ０〜Ｎ５を結ぶ直線（リンク）に対応付けて表記した値であるものとする。また、子ノードＮ１，Ｎ３，Ｎ４，Ｎ５と子ノードＮ６との間では、ハローメッセージの検出によって、受信リンクコストのみが既知になっているものとする（図８において＊を付記した値は受信リンクコストである）。
【００４８】
図８によれば、子ノードＮ１，Ｎ３，Ｎ４，Ｎ５が送出したハローメッセージを子ノードＮ６が受信することにより取得される受信リンクコストは、それぞれ１５，２８，６，７であり、図９に示すように、子ノードＮ６の隣接ノードテーブルに、子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のアドレスが隣接ノードアドレスとして登録されるとともに、それぞれの受信リンクコストが登録される。
【００４９】
図９の例では、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５ごとの親ノードＮ０へのルートの中でリンクコストが最小になるのは、それぞれ親ノードＮ０、子ノードＮ１→親ノードＮ０、子ノードＮ２→親ノードＮ０（または子ノードＮ１→親ノードＮ０）、子ノードＮ３→子ノードＮ１→親ノードＮ０のルートであって、各ルートの送信リンクコストの総和（つまり、上位コスト）は、それぞれ１１，２０（＝１１＋９），３０（＝２０＋１０または＝１１＋９＋１０），１６（＝１１＋５）になる。
【００５０】
そこで、隣接する各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５と着目する子ノードＮ６との間の受信リンクコストと、隣接する各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のそれぞれの上位コストとの加算値を、着目する子ノードＮ６から親ノードＮ０への送信リンクコストを反映する仮のルートコストとする。このようにして求めた仮のルートコストは、着目する子ノードＮ６の隣接ノードテーブルにおいて、隣接する各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５に対応付けて「ルートコスト」の項目に登録される。図９において、ルートコストに＊を付記しているのは、上位コストと受信リンクコストとによって求めた仮のルートコストであることを示す。
【００５１】
ところで、子ノードＮ６の隣接ノードテーブルにおいて送信リンクコストを求めるには、子ノードＮ６から隣接する各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のそれぞれにハローメッセージを送信する必要がある。ただし、子ノードＮ６から親ノードＮ０へのルートが複数存在する場合には、リンクコストの総和がなるべく小さいルートを選択するのが望ましい。
【００５２】
上述した例では、着目する子ノードＮ６に隣接する子ノードＮ１，Ｎ３，Ｎ４，Ｎ５が４個あり、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５を通って親ノードＮ０に至るルートについて、各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５ごとにそれぞれリンクコストの総和の最小値を上位コストとして求めているから、上位コストを求めた４種類のルートについて通信品質（リンクコスト）を比較すれば、着目する子ノードＮ６が親ノードＮ０に情報を送信するのに適したルートを選択することができると考えられる。
【００５３】
そこで、着目する子ノードＮ６から親ノードＮ０に向かうルートを仮のルートコストによって評価する。ここで、子ノードＮ６に隣接する４個の各子ノードＮ１，Ｎ３，Ｎ４，Ｎ５に対して、着目する子ノードＮ６からそれぞれハローメッセージを送信してもよいが、実際に用いるルートは１種類であるから、予備のルートを含めて通信品質の上位から適数個のルート（２ルート程度）を選択してハローメッセージを送信する。図９の例では、着目する子ノードＮ６に隣接する子ノードＮ１，Ｎ３，Ｎ４，Ｎ５のうち、仮のルートコストが上位の２番までになっているのが、子ノードＮ１と子ノードＮ５とであるから、この２個の子ノードＮ１，Ｎ５に対してのみ子ノードＮ６からハローメッセージ（図６のハローメッセージＨ２に相当）を送信する。
【００５４】
このハローメッセージを受け取った子ノードＮ１，Ｎ５は、ハローメッセージ（図６のハローメッセージＨ３に相当）を用いて子ノードＮ６に対して、子ノードＮ１，Ｎ５に登録した受信リンクコストを返送する。すなわち、図１０のように、子ノードＮ６では子ノードＮ１，Ｎ５に対する送信リンクコストを取得することができる。このように送信リンクコストを取得した子ノードＮ１，Ｎ５を通って親ノードＮ０に至るルートについては、送信リンクコストと上位コストとを加算することによって、仮のルートコストではなく正式のルートコストを得ることができるから、ルートコストの値を更新する。すなわち、図１０のように、送信リンクコストを取得したノードＮ１，Ｎ５に対しては正式のルートコストが求められ、他のノードＮ３，Ｎ４に対しては仮のルートコストが用いられる。
【００５５】
上述の手順によって、親ノードＮ０との通信を行う子ノードＮ６において、子ノードＮ１，Ｎ５が通信を中継する２つのルートについて正式のルートコストが得られる。正式のルートコストが得られていることは、隣接ノードについて受信リンクコストと送信リンクコストとの双方向のリンクコストが求められていることになるから、以下では、この状態を「２ＷＡＹ」と呼び、隣接ノードについて受信リンクコストのみが得られている場合を「１ＷＡＹ」と呼ぶ。
【００５６】
子ノードＮ６が親ノードＮ０と通信を行う際には、ルートコスト（親ノードＮ０に向かうリンクコストの総和）が最小であるルートを最良のルートとして選択する。選択されたルートは、トポロジ通知メッセージを用いて親ノードＮ０に通知され、親ノードＮ０では子ノードＮ６までのルート情報を入手することができる。トポロジ通知メッセージは適時に送信すればよいが、通常は一定の時間間隔で定期的に送信される。
【００５７】
つまり、図１０の例では、子ノードＮ５を通るルートについてルートコストが得られているから、子ノードＮ６→子ノードＮ５→子ノードＮ１→親ノードＮ０のルートを用いてトポロジ通知メッセージが送信される。このとき、子ノードＮ６は、子ノードＮ５だけではなく、正式のルートコストを求めた２個の子ノードＮ１，Ｎ５についてのルートコストをトポロジ通知メッセージに情報として含め、ユニキャストで子ノードＮ５に送信する。子ノードＮ５から親ノードＮ０までに経由する子ノードＮ１は、子ノードＮ５において既知であるから、子ノードＮ５は子ノードＮ６から受け取ったトポロジ通知メッセージの内容をユニキャストで子ノードＮ１に送信する。同様にして子ノードＮ１は親ノードＮ０に向かってトポロジ通知メッセージを送信する。親ノードＮ０では、受信したトポロジ通知メッセージの内容を用いて、子ノードＮ６との間のネットワークトポロジを把握する。
【００５８】
各子ノードＮ１〜Ｎ６の隣接ノードテーブルに受信リンクコストおよび送信リンクコストを登録するために用いられるハローメッセージは、図１１に示すように、送信元であるノードの自アドレスＳＩＤと、メッセージの種類を示すタイプＴＹと、送信元のノードの種類を示すノード種別ＮＣと、ハローメッセージの内容に応じて３種類から少なくとも１種類が選択されるサブメッセージＳＢ１，ＳＢ２，ＳＢ３とを有している。図６に示したハローメッセージＨ１，Ｈ２，Ｈ３はタイプＴＹは同じであるが、それぞれ異なるサブメッセージＳＢ１，ＳＢ２，ＳＢ３を有している。
【００５９】
ハローメッセージでは、タイプＴＹはハローメッセージを示し、ノード種別ＮＣはハローメッセージの送信元であるから親ノードの場合と子ノードの場合とがある。
【００６０】
サブメッセージＳＢ１は、各子ノードＮ１〜Ｎ６が親ノードＮ０との通信の際に形成するルートのホップ数（つまり、親ノードＮ０までのノード数）と、ルート上の各ノードのアドレスおよび各ノード間のリンクコストの情報を持ち、図６のハローメッセージＨ１の内容として下位の子ノードＮ１〜Ｎ６に伝送される。サブメッセージＳＢ１の内容を受信した下位の子ノードＮ１〜Ｎ６は上位コストを知ることができる。
【００６１】
サブメッセージＳＢ２は、隣接ノードについて受信リンクコストのみが得られている１ＷＡＹの子ノードＮ１〜Ｎ６が、受信リンクコストが上位である適数個の隣接ノードについて、アドレスおよびリンクコスト（相手ノードの送信リンクコスト）の情報を持ち、図６のハローメッセージＨ２の内容としてハローメッセージＨ１の送信元である上位のノードに伝送される。
【００６２】
サブメッセージＳＢ３は、受信リンクコストと送信リンクコストとが得られている２ＷＡＹのノードが、ハローメッセージＨ２により検出した受信リンクコストを相手側の子ノードＮ１〜Ｎ６に返送する際に用いる。つまり、下位の隣接ノードのアドレスおよびリンクコスト（相手ノードの送信リンクコスト）の情報をもち、図６のハローメッセージＨ３の内容として下位の子ノードＮ１〜Ｎ６に伝送される。
【００６３】
したがって、各サブメッセージＳＢ１，ＳＢ２，ＳＢ３は、図１２に示すように、サブメッセージタイプＳＴＹにより３種類のサブメッセージＳＢ１，ＳＢ２，ＳＢ３を区別し、サブメッセージＳＢ１，ＳＢ２，ＳＢ３に含まれるノード数（サブメッセージＳＢ１では親ノードＮ０までのホップ数）ＬＮと、各ノードのアドレスＮＩＤおよびリンクコストＬＣとの情報を持つ可変長のフォーマットを有する。
【００６４】
上述のように、ハローメッセージＨ１には、送信元の子ノードＮ１〜Ｎ６から親ノードＮ０までのルート上のノードのアドレスおよびリンクコストが含まれるから、ハローメッセージＨ１を受信した下位の子ノードＮ１〜Ｎ６の隣接ノードテーブルには、図１３に示すように、親ノードＮ０までの各ノードごとに１ホップ目から順にリンクコスト（ＬＣ）およびアドレス（ＮＩＤ）が個別に保持される。このようなノードごとのリンクコストおよびアドレスが図７の上位コストの内容に相当する。また、図１３に示す隣接ノードテーブルでは、リンク状態（１ＷＡＹ、２ＷＡＹ）を項目に備えている。リンク状態に相当する情報は、受信リンクコストと送信リンクコストとの情報の有無によっても知ることが可能である。
【００６５】
トポロジ通知メッセージは、図１４に示すように、メッセージの種類を示すタイプＴＹと、送信元のノードの種類を示すノード種別ＮＣと、２種類のサブメッセージＳｂ１，Ｓｂ２とのフィールドを備える。つまり、トポロジ通知メッセージのフォーマットはハローメッセージとほぼ同様である。ただし、サブメッセージＳｂ１，Ｓｂ２の内容は異なる。
【００６６】
トポロジ通知メッセージでは、タイプＴＹはトポロジ通知メッセージを示し、ノード種別ＮＣはトポロジ通知メッセージの送信元のノードであるから子ノードになる。
【００６７】
サブメッセージＳｂ１は、親ノードＮ０へのルートを示し、トポロジ通知メッセージの送信元である子ノード（上述の例では子ノードＮ６）を含めて、親ノードＮ０までのルートに含まれる子ノード（上述の例では、子ノードＮ６，Ｎ５，Ｎ１）のアドレスが順に並べられる。つまり、ハローメッセージにおけるサブメッセージＳＢ１とほぼ同様の内容になるが、自ノードのアドレスを含む点が相違する。
【００６８】
サブメッセージＳｂ２は、送信元の子ノード（上述の例では子ノードＮ６）に隣接する上位側のノードのうちルートコストを求めた子ノード（上述の例では子ノードＮ１，Ｎ５）のアドレスが並べられる。
【００６９】
各サブメッセージＳｂ１，Ｓｂ２は可変長である。また、サブメッセージＳｂ１はトポロジ通知メッセージに必須であって省略することはできないが、サブメッセージＳｂ２は省略することが可能である。
【００７０】
（実施形態）
本実施形態は、上述した基本構成に以下の機能を付加したものである。また、基本構成では、親ノードＮ０と子ノードＮ１〜Ｎ６とを備えるマスタースレーブ型の通信ネットワークについて説明したが、以下に説明する構成はマスタースレーブ型以外の通信ネットワークにおいても使用できる。したがって、親ノードＮ０と子ノードＮ１〜Ｎ６とを区別しない。つまり、マスタースレーブ型の通信ネットワークでは、他のノードとの通信時に使用可能なルートの情報を親ノードのみが保有しているが、以下に説明する実施形態では、マスタースレーブ型ではない分散型ネットワークを例示し、トポロジー通知を親ノードＮ０宛ではなく、フラッディングで通信ネットワーク全体に通知する。したがって、すべてのノードが他のノードとの通信時に使用可能なルートの情報を保有しているものとする。
【００７１】
ノードＮは、通信機能を備えるとともに後述する処理を行うマイクロコンピュータを備えた通信端末であって、図１に示すように、データ通信手段１１を備える。データ通信手段１１は、上述したハローメッセージの送受信、上述したトポロジ通知メッセージの送信、後述するルートエラーメッセージの送信も行っているが、以下の説明では、これらの機能についてはデータ通信手段１１の機能とは分けて説明する。したがって、図１では、ハローメッセージの送受信を行う通信品質取得手段１２と、トポロジー通知メッセージを送信するリンク情報送信手段１３と、ルートエラーメッセージを送信するエラー情報送信手段１４とをデータ通信手段１１とは別に記載している。
【００７２】
ノードＮには、上述したように隣接ノードテーブルＴｂ１が設けられる。隣接ノードテーブルＴｂ１の内容は、上述したように、隣接ノードアドレス、受信リンクコスト、送信リンクコストなどであり、通信品質取得手段１２によりハローメッセージを送受信することによって隣接ノードテーブルＴｂ１の情報が登録される。さらに、ノードＮには、通信ネットワーク内の各一対のリンク間のリンクコストの情報を保持したリンク情報テーブルＴｂ２と、他のノードとのデータ通信の際に使用可能なルートの情報を保持したルートテーブルＴｂ３とが設けられる。本発明の特徴は、隣接ノードテーブルＴｂ１あるいはリンク情報テーブルＴｂ２においてルートの選択に関わる情報を、データ通信の際の相手ノードの応答に応じて変更することによって、ネットワークトポロジの変化に迅速に対応することにある。
【００７３】
したがって、隣接ノードテーブルＴｂ１とリンク情報テーブルＴｂ２との特定情報を変更するための評価値修正手段１５，１６が各ノードＮに設けられる。
【００７４】
以下では、図２に示す構成の通信ネットワークを例として動作を説明する。この通信ネットワークは、５個のノードＮ１〜Ｎ５を備える。また、通信品質取得手段１２でハローメッセージを送受信することにより、隣接ノードとの間のリンクコストがすでに求められ、各ノードＮ１〜Ｎ５の隣接ノードテーブルＴｂ１に登録されているものとする。ノードＮ５の隣接ノードテーブルＴｂ１が図３の内容であるとすると、ノードＮ５の隣接ノードはノードＮ２，Ｎ３，Ｎ４の３個であり、それぞれの受信リンクコストと送信リンクコストとのうちの大きいほうを各ノードＮ２，Ｎ３，Ｎ４との間のリンクノードとして採用するから、ノードＮ２，Ｎ３，Ｎ４とのリンクコストは、それぞれ１６，２８，９になる。図２には、こうして求めたリンクコストをノードＮ１〜Ｎ５を結ぶ直線に付記してある。
【００７５】
この通信ネットワークにおいて、ノードＮ５→ノードＮ３→ノードＮ１というルートでのデータ通信を行うものとする。つまり、通信データの出発点をノードＮ５とし到着点をノードＮ１とした通信を行い、ノードＮ３が通信を中継するルートを採用するものとする。ここで、ノードＮ５において、データ通信手段１１がノードＮ３を指定して通信データを送信し、これに対してノードＮ３からの肯定応答をデータ通信手段１１で検出できなかったとする。つまり、ノードＮ５からノードＮ３に通信データを送信したときに通信に失敗したとする。この失敗はデータ通信手段１１において検出される（失敗した位置に×印を付している）。
【００７６】
このとき、評価値修正手段１５は隣接ノードテーブルＴｂ１に登録されたノードＮ３のリンクコストの値を大きくする方向に修正する。つまり、ノードＮ５の隣接ノードであるノードＮ３の通信品質を引き下げる方向に修正する。隣接ノードテーブルＴｂ１のリンクコストには、受信リンクコストと送信リンクコストとがあり、いずれか大きいほうのみを大きくする修正を行ってもよいが、送信リンクコストを修正するのが望ましい。送信リンクコストの修正には、送信リンクコストに一定値（たとえば、５）を加算するか、送信リンクコストの最大値（たとえば、２５５）に修正する。図３に示す例では、図３（ａ）のように隣接ノードであるノードＮ３に対応付けた送信リンクコスト（２８）に対して、通信データの送信に対する肯定応答がないときに、図３（ｂ）のように一定値５を加算し、送信リンクコストを３３にしている。
【００７７】
上述のように、通信データの送信に失敗したときに、リンクコストを大きくように修正すれば、次にルートを探索するときにノードＮ５→ノードＮ３を通る経路が選択される可能性が低減される。したがって、たとえばノードＮ３が消失した場合や、ノードＮ５とノードＮ３との間でノイズの増加があったような場合に、この経路に代えて他の経路を選択する可能性が高くなる。しかも、通信データの伝送中にルートの異常を検出するから、次のハローメッセージをまたずにルートの変更に用いることが可能になる。
【００７８】
ところで、評価値修正手段１５において隣接ノードテーブルＴｂ１に登録された受信リンクコストと送信リンクコストとのうち送信リンクコストを修正するのは次の理由による。すなわち、受信リンクコストを修正した場合には、その直後に図６のハローメッセージＨ１を受信すると、隣接ノードテーブルＴｂ１における受信リンクコストが上書きされてしまうので、受信リンクコストを一旦修正しても、その効果がすぐに失われてしまい、次のルートの選択時に受信リンクコストを修正した効果を反映させることができない可能性がある。これに対して、送信リンクコストは、図６のハローメッセージＨ２またはハローメッセージＨ３を受信するまでは、上書きされないから、ルートの選択時まで送信リンクコストを変更した効果が維持されやすくなるからである。
【００７９】
また、ルートの変更が行われているときには、変更されたルートを使い続けるほうがデータ通信を安定して行うことができると考えられるから、一定期間はルートをできるだけ維持するのが望ましい。そこで、隣接ノードテーブルＴｂ１のリンクコストを評価値修正手段１５により最初に変更した後の一定期間は、ハローメッセージの受信によって隣接ノードテーブルＴｂ１のリンクコストを修正するときに、ハローメッセージの受信により取得したリンクコストをそのまま隣接ノードテーブルＴｂ１に登録するのではなく、評価値修正手段１５によりリンクコストを大きくする（つまり、通信品質を引き下げる）ように修正して隣接ノードテーブルＴｂ１に登録する。一定時間の時限は、ノードＮに内蔵した図示しないタイマによる。
【００８０】
各ノードＮ１〜Ｎ５における隣接ノードテーブルＴｂ１に送信リンクコストが登録された状態では、各ノードＮ１〜Ｎ５の隣接ノードは１ＷＡＹまたは２ＷＡＹになっているから、各ノードＮ１〜Ｎ５が互いに他のノードＮ１〜Ｎ５における隣接ノードテーブルＴｂ１の情報を用いることによって、通信ネットワークのネットワークトポロジの情報を各ノードＮ１〜Ｎ５で保有する。
【００８１】
すなわち、各ノードＮ１〜Ｎ５は、隣接ノードテーブルＴｂ１に登録された隣接ノードのアドレスおよびリンクコストを自アドレスとともにトポロジ通知メッセージとして適時にフラッディング送信する。トポロジ通知メッセージを受信したノードＮ１〜Ｎ５では、通信ネットワーク内で隣接する各一対のノードＮ１〜Ｎ５のアドレスと両ノードＮ１Ｎ５間のリンクコストとを各ノードＮ１〜Ｎ５に設けたリンク情報テーブルＴｂ２に登録する。
【００８２】
リンク情報テーブルＴｂ２は、互いに隣接ノードとなる各一対のノードの一方を始点ノードとし他方を終点ノードとして、始点ノードから終点ノードとの間のリンクコストを対応付ける（つまり、リンク情報テーブルＴｂ２は、（始点ノード、終点ノード、リンクコスト）の３つ組からなるテーブルを構成する）。
【００８３】
隣接ノードテーブルＴｂ１において２ＷＡＹであるノード間は始点ノードと終点ノードとの間のリンクコストを双方向に規定することができるから、始点ノードと終点ノードとを入れ換えた場合のリンクコストをリンク情報テーブルＴｂ２に含めることができる。ただし、リンク情報テーブルＴｂ２では、始点ノードと終点ノードとの向きが逆になる場合に、リンクコストの大きいほうだけを用いて始点ノードと終点ノードとの区別をなくしてもよい。この場合、２ＷＡＹのノード間だけではなく、１ＷＡＹのノード間のリンクコストもリンク情報テーブルＴｂ２に含めてもよい。
【００８４】
リンク情報テーブルＴｂ２を用いれば、通信ネットワークのネットワークトポロジがわかるから、通信データの出発点のノードと到達点のノードとの間で直接通信が可能なノードＮ１〜Ｎ５を辿ることによって、通信に用いることができるルートを探索することができる。また、このようなルートが複数存在するときには、各ルートごとにリンクコストの総和を求めることにより、各ルートの通信品質を評価して通信品質が上位であるルートを選択することができる。ルートの探索および選択には、実際には、ダイクストラ法などの最少リンクコストルート選択アルゴリズムを用い、リンクコストが最小であるルートを用いて通信データの送信を開始する。
【００８５】
選択したルートが直接通信ではなく中継するノードＮ１〜Ｎ５が介在する場合には、中継するノードＮ１〜Ｎ５が通信データをルート上の次ノードＮ１〜Ｎ５に送信しても相手ノードＮ１〜Ｎ５からの肯定応答が得られないときには、中継するノードＮ１〜Ｎ５では送信に失敗したと判断し、通信データの出発点となるノードＮ１〜Ｎ５に向かって通信データの伝送に失敗した一対のノードＮ１〜Ｎ５のアドレスを含むルートエラーメッセージをエラー情報送信手段１４から送信する。
【００８６】
選択されているルート上で、送信失敗を検出したノードＮ１〜Ｎ５と通信データの出発点であるノードＮ１〜Ｎ５との間のノードＮ１〜Ｎ５（送信失敗を検出したノードＮ１〜Ｎ５と出発点のノードＮ１〜Ｎ５とを含む）では、エラー情報送信手段１４が送信したルートエラーメッセージをデータ通信手段１１において受信すると、評価値修正手段１６によりリンク情報テーブルＴｂ２の内容を変更する。この変更は隣接ノードテーブルＴｂ１におけるリンクコストの変更と同様であり、リンク情報テーブルＴｂ２におけるリンクコストの値に所定値（たとえば、５）を加算した値に変更するか、リンクコストのとりうる最大値（たとえば、２５５）に変更する。
【００８７】
いま、図４に示す構成の通信ネットワークを例に示す。ここでは、ノードＮ５→ノードＮ２→ノードＮ３→ノードＮ１のルート（つまり、出発点がノードＮ５であり、到着点がノードＮ１になる）を採用して通信データを送信しているときに、通信データを中継しているノードＮ３においてノードＮ１への送信に失敗したとする（失敗した位置を×印で示している）。
【００８８】
このとき、ノードＮ３は、図４に矢印で示すように、送信失敗した両ノードのアドレスをルートエラーメッセージとしてノードＮ５に向かって送信する。ルート上に存在するノードＮ２，Ｎ５では、データ通信手段１１においてルートエラーメッセージを受信し、評価値修正手段１６を通してリンク情報テーブルＴｂ２におけるリンクコストの値を上述のように変更する。この動作により、ノードＮ２，Ｎ５では、ノードＮ３→ノードＮ１の経路を含むルートを選択する可能性が低減され、ルートの選択に際して他のルート（たとえば、ノードＮ２→ノードＮ１を経由するルート）が選択されることになる。
【００８９】
上述の構成によって、ルート上に存在していたノードＮ１〜Ｎ５が消失したり、通信品質が低下したりしたことを通信データの伝送中に検出することができる。また、ルートの選択時に存在していたノードが削除されたり、当該ノードとの間の通信品質が低下したりしたことが、通信データの伝送中に検出されるから、ルートの変更を迅速に行うことができる。とくに、リンク情報テーブルＴｂ２を用いて通信品質が上位である候補のルートが複数個選択されているときには、代替ルートに瞬時に変更することが可能になる。
【００９０】
ところで、リンク情報テーブルＴｂ２に登録したリンクコストを増加させた状態は、次のトポロジ通知メッセージの受信によりリンク情報テーブルＴｂ２の内容が上書きされてしまうので、リンク情報テーブルＴｂ２の内容によってはルートが再び変更される可能性がある。しかしながら、ルートを頻繁に変更するよりも同じルートを使い続けるほうがデータ通信を安定して行うことができるから、ルートをできるだけ維持するのが望ましい。そこで、ルートエラーメッセージを受信して評価値修正手段１６がリンク情報テーブルＴｂ２に登録したリンクコストを変更した後の一定期間は、トポロジ通知メッセージを受信したときに、そのままのリンクコストをリンク情報テーブルＴｂ２に登録するのではなく、評価値修正手段１６によりリンクコストを大きくする（つまり、通信品質を引き下げる）ように修正してリンク情報テーブルＴｂ２に登録する。一定時間の時限は、ノードＮに内蔵した図示しないタイマによる。
【００９１】
上述した構成例では、分散型ネットワークを例示したが、図８に示したようなマスタースレーブ型の通信ネットワークを採用する場合には、図５に示すように、リンク情報テーブルＴｂ２とルートテーブルＴｂ３とは親ノードＮ０のみが保有する。また、親ノードにはリンク情報テーブルＴｂ２に登録された情報を用いて子ノードとの間のルートを選択するルート選択手段１７が設けられる。ルート選択手段１７で選択されたルートがルートテーブルＴｂ３に格納されるのである。
【００９２】
したがって、いずれかの子ノードＮ１〜Ｎ６においてルートエラーメッセージが発生したときには、リンク情報テーブルＴｂ２ではなく、ルートエラーメッセージを発生した子ノードＮ１〜Ｎ６から通信データの出発点の子ノードＮ１〜Ｎ６に向かってルートエラーメッセージを送信したときに、ルート上に存在する子ノードＮ１〜Ｎ６では、データ通信手段１１においてルートエラーメッセージを受信し、評価値修正手段１５を通して隣接ノードテーブルＴｂ１におけるリンクコストの値を上述のように変更する。この処理により、肯定応答を受けられなかったノードを含むルートを選択する可能性が低減され、ルートの選択に際して他のルートが選択されることになる。
【００９３】
マスタースレーブ型の通信ネットワークでは、子ノードＮ１〜Ｎ６にはリンク情報テーブルＴｂ２が設けられていないから、ルートエラーメッセージを受信した子ノードＮ１〜Ｎ６は、評価値修正手段１５により隣接ノードテーブルＴｂ１に登録したリンクコストを増加させる。ここで、隣接ノードテーブルＴｂ１には受信リンクコストと送信リンクコストとが登録されているが、ルートエラーメッセージを受信したときには、送信リンクコストを増加させるか、あるいは受信リンクコストと送信リンクコストとのうち値の大きいほうを増加させる。後者の動作では受信リンクコストのみが登録されている場合には受信リンクコストが変更される。変更の方法は、一定値を加算するか最大値に置き換えるかの方法を採用する。
【００９４】
ルートエラーメッセージを受信した後の規定した一定期間は、ハローメッセージの受信によって隣接ノードテーブルＴｂ１の内容を上書きする際に、評価値修正手段１５がリンクコストを変更する。一定期間の経過後には、評価値修正手段１５によるリンクコストの変更は行わず、通常の動作に復帰する。このような動作により、通信品質が一旦低下したルートは一定期間は選択されにくくなる。
【００９５】
上述した構成例は、従来構成において説明したＰＬＣネットワークに用いることを想定しているが、他の有線の伝送路を用いる通信ネットワーク、あるいは小電力無線による無線ＬＡＮのように無線の伝送路を用いる無線ネットワークなど、種々のマルチホップ通信ネットワークに上述の技術を適用してもよい。
【００９６】
さらにいえば、ＰＬＣネットワークには、１０〜４５０ｋＨｚの低周波帯を利用する低速ＰＬＣと、２〜３０ＭＨｚの高周波帯を利用する高速ＰＬＣとが知られており、低速ＰＬＣのノードは、高速ＰＬＣより伝送速度が遅いから、上述の構成のように低トラフィックでもネットワークトポロジを把握できることはとくに有効であり、また、通信ネットワーク全体のリンクを各ノードが持たなくとも隣接ノードテーブルがあればよいから、ノードに実装するメモリの容量を小さくすることができる。しかも、他の有線の伝送路を用いる場合に比較すると、ＰＬＣでは各ノードとなる電気機器のオン／オフや稼働状態によってネットワークトポロジや通信品質が変化しやすいから、本発明の技術は有効である。
【図面の簡単な説明】
【００９７】
【図１】実施形態に用いるノードを示すブロック図である。
【図２】同上を用いる通信ネットワークの例を示す図である。
【図３】同上に用いる隣接ノードテーブルの例を示す図である。
【図４】同上を用いる通信ネットワークの例を示す図である。
【図５】他の構成例に用いるノードを示し、（ａ）は親ノードのブロック図、（ｂ）は子ノードのブロック図である。
【図６】ハローメッセージを示す動作説明図である。
【図７】ハローメッセージによる隣接ノードテーブルの変化を示す動作説明図である。
【図８】通信ネットワークの構成例を示す図である。
【図９】隣接ノードテーブルの一例を示す図である。
【図１０】隣接ノードテーブルの一例を示す図である。
【図１１】ハローメッセージのフォーマットを示す図である。
【図１２】ハローメッセージにおけるサブメッセージの構成例を示す図である。
【図１３】隣接ノードテーブルの一例を示す図である。
【図１４】トポロジ通知メッセージのフォーマットを示す図である。
【符号の説明】
【００９８】
１１  データ通信手段
１２  通信品質取得手段
１３  リンク情報送信手段
１４  エラー情報送信手段
１５  評価値修正手段
１６  評価値修正手段
Ｈ１  （第１の）ハローメッセージ
Ｈ２  （第２の）ハローメッセージ
Ｈ３  （第３の）ハローメッセージ
Ｎ  ノード
Ｎ０〜Ｎ６  ノード
Ｔｂ１  隣接ノードテーブル
Ｔｂ２  リンク情報テーブル
【図１】
2008301444.tif 000003
【図２】
2008301444.tif 000004
【図３】
2008301444.tif 000005
【図４】
2008301444.tif 000006
【図５】
2008301444.tif 000007
【図６】
2008301444.tif 000008
【図７】
2008301444.tif 000009
【図８】
2008301444.tif 000010
【図９】
2008301444.tif 000011
【図１０】
2008301444.tif 000012
【図１１】
2008301444.tif 000013
【図１２】
2008301444.tif 000014
【図１３】
2008301444.tif 000015
【図１４】
2008301444.tif 000016