JP5376068B2 - 無線通信装置および無線ネットワークにおける迂回経路探索方法 - Google Patents
無線通信装置および無線ネットワークにおける迂回経路探索方法 Download PDFInfo
- Publication number
- JP5376068B2 JP5376068B2 JP2012546597A JP2012546597A JP5376068B2 JP 5376068 B2 JP5376068 B2 JP 5376068B2 JP 2012546597 A JP2012546597 A JP 2012546597A JP 2012546597 A JP2012546597 A JP 2012546597A JP 5376068 B2 JP5376068 B2 JP 5376068B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- wireless communication
- search
- adjacent
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims description 106
- 230000005540 biological transmission Effects 0.000 claims description 68
- 238000011144 upstream manufacturing Methods 0.000 claims description 59
- 230000004044 response Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 63
- 238000011156 evaluation Methods 0.000 description 31
- 238000012546 transfer Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/04—Arrangements for maintaining operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/248—Connectivity information update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Description
本発明は、無線ネットワークにおいて使用される無線通信装置および無線ネットワークにおける迂回経路探索方法に係わる。
複数のノードを含むネットワークの1つの形態として、アドホックネットワークが実用化されている。アドホックネットワークでは、各ノードにおいて自律的な経路選択が行われる。すなわち、アドホックネットワークの各ノード装置(または、通信装置)は、ルータまたはスイッチとして動作する機能を備えている。ここで、各ノード装置は、隣接するノード装置とメッセージ等を送信および受信することにより、周辺のネットワーク構成を認識することができる。したがって、アドホック(特に、無線アドホック)方式を採用すると、ネットワーク全体を管理する管理装置を設けることなく、ネットワークを構築したい環境にノード装置を配置するだけで、所望のネットワークを構築することができる。さらに、アドホックネットワークでは、ノードの追加または削除が容易であり、ネットワーク構成を容易に変更することができる。
ところで、ネットワークは、一般に、障害が発生した場合であっても通信を継続できるようにするために、迂回経路(或いは、冗長経路または代替経路)を有していることが好ましい。特に、無線ネットワークでは、電波環境に応じてリンクが一時的に切断されることもあり、迂回経路の有無を予め確認しておくことは重要である。
例えば、図1に示すネットワークにおいて、ノードA〜EからノードGWへデータを送信する際には、データは、ノードXを経由しなければならない。すなわち、ノードA〜EとノードGWとの間には、迂回経路は存在しない。以下の説明では、ノードXのように、特定の宛先へデータを送信する際に必ず通過しなければならないノードを「ボトルネックノード」と呼ぶことがある。
図1に示すネットワーク構成においては、ノード装置Xが故障すると、ノード装置A〜Eは、ノードGWへデータを送信できない。また、ノードX、Y間のリンクが切断された場合も、ノード装置A〜EはノードGWへデータを送信できない。すなわち、ノード装置A〜Eは、ノードGWから孤立するおそれがある。したがって、ネットワークを管理または運営するオペレータは、ボトルネックノードを発見して適切に迂回経路を設けることが要求される。
ただし、迂回経路を形成するために中継ノードを追加すると、ネットワークのコストが増加する。このため、オペレータは、中継ノードの増設を注意深く行う必要がある。したがって、ボトルネックノードを精度よく発見する方法が望まれる。
しかしながら、アドホックネットワークでは、ネットワーク全体に渡って通信経路を正確に認識することは困難である。このため、アドホックネットワークにおいては、各通信経路に対してそれぞれ迂回経路が存在しているか否かを確認することは容易ではない。
なお、ネットワークを管理するサーバコンピュータを設ければ、全ノードの経路情報を収集してネットワークトポロジを解析することは可能である。しかし、ノード数が多いネットワークでは、経路情報を収集するために要する時間が長くなる。さらに、無線ネットワークでは、ノード間のリンクの状態が不安定である。このため、経路情報を収集するための時間が長いと、サーバコンピュータにより得られたトポロジ(すなわち、経路情報を収集した時点でのトポロジ)と、実際のトポロジが一致しないこともある。
このように、従来技術においては、無線アドホックネットワークにおいて、ボトルネックノードを精度よく発見することは困難であった。
関連する技術として、間欠的に所定の通信管理信号を送受信して自律分散的な無線ネットワークを形成する無線通信装置が提案されている。この無線通信装置は、通信管理信号を受信する受信部と、受信部による通信管理信号の受信の履歴に基づき、無線ネットワークにおける無線通信装置の通信状態を評価する評価部と、評価部による通信状態の評価結果に応じた通知を行なう通知部、を備える。(例えば、特許文献1)
また、他の関連する技術として、アドホックネットワークにおいて、複数の中継装置のうち、送信するデータリンクの伝送誤り率が、データを受信するデータリンクの伝送誤り率よりも大きい中継装置を、ボトルネックの候補として推定するボトルネック推定手段を備えるネットワーク制御装置が提案されている。(例えば、特許文献2)
本発明の目的は、無線アドホックネットワークにおいて、任意の通信経路に対して迂回経路の有無を判定する装置または方法を提供することである。
本発明の1つの態様に係る無線通信装置は、複数の無線通信装置を備える無線ネットワークにおいて使用され、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、前記最終宛先装置への経路探索を表す情報を含む探索データを生成する生成部と、前記探索データを前記隣接装置にブロードキャストする送信部と、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、前記記憶部に識別情報が記憶されているすべての特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、を備える。
本発明の1つの態様に係る迂回経路探索方法は、複数の無線通信装置を備える無線ネットワークにおいて使用される。探索対象無線通信装置において、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出する。前記探索対象無線通信装置において、前記最終宛先装置への経路探索を表す情報を含む探索データを生成する。前記探索対象無線通信装置から前記探索対象無線通信装置の隣接装置へ前記探索データをブロードキャストする。前記探索データを受信した各無線通信装置は、それぞれ前記探索データを隣接装置にブロードキャストする。前記最終宛先装置に対する最上流装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含む応答データを隣接装置にブロードキャストする。前記応答データを受信した各無線通信装置は、それぞれ前記応答データを隣接装置にブロードキャストする。前記探索対象無線通信装置は、すべての前記特定隣接装置から前記応答データを受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する。
上述の態様によれば、無線アドホックネットワークにおいて、任意の通信経路に対して迂回経路の有無を精度よく判定することができる。
図2は、実施形態の無線ネットワークの構成を説明する図である。実施形態の無線ネットワークは、アドホックネットワークであり、複数の無線通信装置が接続されている。以下の説明では、各無線通信装置のことを「ノード装置」または単に「ノード」と呼ぶことがある。図2に示す例では、無線ネットワークは、ノードn1〜n14を備えている。
図2において、ノード間を接続する破線は、無線リンクを表す。例えばノードn6は、ノードn3、n5、n10、n11との間に無線リンクを有している。すなわち、ノードn6から送信される電波(すなわち、無線信号)は、ノードn3、n5、n10、n11に到達し、また、ノードn3、n5、n10、n11からそれぞれ送信される電波は、ノードn6に到達する。なお、以下の説明では、無線リンクで相互に接続される1組のノードは、互いに「隣接」しているものとする。すなわち、ノードn3、n5、n10、n11は、ノードn6に隣接している。換言すれば、ノードn3、n5、n10、n11は、ノードn6の「隣接ノード」である。
各ノードは、定期的に、Helloパケットをブロードキャストする。ただし、この実施形態では、「ブロードキャスト」は、すべてのノードにパケットを送信するものではなく、すべての隣接ノードにパケットを送信することを意味する。したがって、例えば、ノードn6は、ノードn3、n5、n10、n11へHelloパケットを送信する。このとき、各ノードn3、n5、n10、n11は、ノードn6から受信したHelloパケットを他のノードへは転送しない。
Helloパケットは、ノードが存在することを他のノードに通知するために使用される。例えば、ノードn6がHelloパケットをブロードキャストすると、ノードn3、n5、n10、n11は、そのHelloパケットを受信する。そうすると、ノードn3は、隣接ノードとしてノードn6が存在することを認識する。ノードn5、n10、n11も同様に、隣接ノードとしてノードn6が存在することを認識する。
Helloパケットは、上述したように、各ノードから送信される。したがって、例えば、ノードn3がHelloパケットを送信すると、ノードn1、n2、n6がそのHelloパケットを受信する。このとき、各ノードn1、n2、n6は、隣接ノードとしてノードn3が存在することを認識する。このようにして、各ノードは、自ノードに隣接するノードを認識する。
図3は、ノード装置(すなわち、無線通信装置)の構成を示す図である。ノード装置1は、通信部10、記憶部20、制御部30を備える。通信部10は、アンテナ、送信機、受信機を備え、無線インタフェースを提供する。記憶部20は、例えば半導体メモリであり、制御部30によって使用される。また、記憶部20は、不揮発性メモリを含む。制御部30は、CPUを含み、ノード装置1の動作を制御する。なお、特に図示しないが、ノード装置1は、入力デバイスを接続するための入力インタフェースおよび/または出力デバイスを接続するための出力インタフェースを備えるようにしてもよい。
図4は、ノード装置の機能を説明するブロック図である。なお、図4においては、無線ネットワークの迂回経路の探索に直接的に係わらない機能については省略されている。
記憶部20は、制御部30により処理されるデータを記憶する。また、記憶部20は、リンクテーブル21、ルーティングテーブル22、状態管理テーブル23、ボトルネック判定フラグ格納部24、最上流フラグ格納部25を格納する。
記憶部20は、制御部30により処理されるデータを記憶する。また、記憶部20は、リンクテーブル21、ルーティングテーブル22、状態管理テーブル23、ボトルネック判定フラグ格納部24、最上流フラグ格納部25を格納する。
リンクテーブル21は、リンク情報を格納する。リンク情報は、自ノードと隣接ノードとの間のリンクの品質を表す。なお、リンクテーブル22は、ノード装置がHelloパケットを受信したときに、リンクテーブル更新部31により更新される。
ルーティングテーブル22は、経路情報を格納する。経路情報は、宛先ノードにパケットを送信する経路を表す。換言すると、経路情報は、パケットの宛先ノードとパケットを中継する隣接ノードとの対応関係を表す。なお、ルーティングテーブル22は、ノード装置がHelloパケットを受信したときに、ルーティングテーブル更新部32により更新される。
状態管理テーブル23は、迂回経路の探索に係わるノード装置の状態を管理する。尚、各ノード装置は、「初期状態」「探索中」「迂回経路なし」「迂回経路あり」のいずれか1つの状態を保持することができる。ボトルネック判定フラグ格納部24は、ボトルネック判定フラグを格納する。ボトルネック判定フラグは、ノード装置が「非ボトルネックノード」「単独の孤立」「ボトルネック候補」「ボトルネックノード」のいずれであるのかを表す。最上流フラグ格納部25は、最上流フラグを格納する。最上流フラグは、指定された宛先ノードに対して、ノード装置が最上流に位置するか否かを表す。
制御部30は、リンクテーブル更新部31、ルーティングテーブル更新部32、パケット生成部33、パケット送信部34、判定部35、転送部36を備える。なお、制御部30は、この例では、プロセッサを用いてプログラムを実行することにより、リンクテーブル更新部31、ルーティングテーブル更新部32、パケット生成部33、パケット送信部34、判定部35、転送部36を実現する。この場合、プログラムは、記憶部20の不揮発性メモリ内に予め格納されてもよい。また、プログラムは、可搬型の記録媒体からノード装置1に提供されるようにしてもよい。可搬型の記録媒体は、例えば、CD−ROM、DVD、USBメモリ等の半導体メモリである。さらに、ノード装置1は、プログラムサーバからプログラムを受信するようにしてもよい。
リンクテーブル更新部31は、リンクテーブル21に格納されているリンク情報を更新する。具体的には、リンクテーブル更新部31は、転送部36から受け取るHelloパケットの内容に基づいて、リンクテーブル21に格納されているリンク情報を更新する。
ルーティングテーブル更新部32は、ルーティングテーブル22に格納されている経路情報を更新する。具体的には、ルーティングテーブル更新部32は、転送部36から受け取るHelloパケットの内容に基づいて、ルーティングテーブル22に格納されている経路情報を更新する。
パケット生成部33は、Helloパケットを生成する。このとき、パケット生成部33は、判定部35により生成される迂回経路探索に係わる情報を含むHelloパケットを生成することができる。パケット送信部34は、パケット生成部33により生成されるHelloパケットを隣接ノードに送信する。
判定部35は、転送部36から受け取るHelloパケットの内容に基づいて、宛先ノードにデータを送信するための迂回経路が存在するか否かを判定する。このとき、判定部35は、状態管理テーブル23、ボトルネック判定フラグ格納部24、最上流フラグ格納部25を参照しながら、迂回経路が存在するか否かを判定する。
転送部36は、隣接ノードからパケットを受信する。隣接ノードからHelloパケットを受信したときは、転送部36は、そのHelloパケットをリンクテーブル更新部31、ルーティングテーブル更新部32、判定部35に与える。一方、データパケット(Helloパケット以外のパケット)を受信したときは、転送部36は、ルーティングテーブル22を参照して、そのデータパケットの宛先に対応する隣接ノードを特定する。そして、転送部36は、特定した隣接ノードへ、受信したデータパケットを送信する。
なお、状態管理テーブル23は、特定隣接装置を識別する識別情報を記憶する記憶部の一例である。パケット生成部33は、探索データを生成する生成部の一例である。パケット送信部34は、探索データを隣接装置にブロードキャストする送信部の一例である。
図5は、リンクの評価値について説明する図である。なお、図5においては、無線ネットワークが備える多数のノードの中の一部のノード(G、X、Y、Z、A)のみが描かれている。
ノードG、Xは、それぞれノードZに隣接している。ノードX、Y、Zは、それぞれノードGに隣接している。ノードG、Z、Aは、それぞれノードXに隣接している。ノードG、Aは、それぞれノードYに隣接している。ノードX、Yは、それぞれノードAに隣接している。なお、「隣接」は、ノード間で相互に電波が到達することを表す。
リンク重みは、ノード間の無線リンクの品質または通信コストを表す指標である。この実施形態では、品質の良いリンクのリンク重みは小さく、品質の悪いリンクのリンク重みは大きい。また、ノード間のリンク重みは、1組のリンク評価値に基づいて算出される。例えば、ノードGからノードZへ向かうリンクの評価値は「9」であり、ノードZからノードGへ向かうリンクの評価値は「11」である。そして、ノード間のリンク重みは、1組のリンク評価値の平均で表わされる。よって、ノードG、Z間のリンク重みは「10」である。同様に、ノードX、Z間のリンク重みは「100」である。すなわち、このケースは、ノードX、Z間のリンクよりも、ノードG、Z間のリンクの方が、品質が良いことを表している。
各リンクの品質(すなわち、評価値およびリンク重み)は、例えば、下記の方法で検出される。ここでは、各ノード装置は、それぞれ予め決められた周期でHelloパケットを繰り返し送信するものとする。この場合、リンクの品質が良好であれば、ノード装置において隣接ノードからHelloパケットを受信する時間間隔は、ほぼ一定となるはずである。一方、リンクの品質が悪いときは、ノード装置において隣接ノードからHelloパケットを受信する時間間隔のばらつきが大きくなる。したがって、各ノード装置は、Helloパケットの受信間隔に基づいてリンクの品質を検出することができる。例えば、図5に示すノードGは、ノードZからHelloパケットを受信する時間間隔をモニタすることにより、ノードZからノードGへ向かうリンクの品質を検出できる。
なお、各ノード装置は、他の方法でリンクの品質を検出してもよい。例えば、ノード装置は、隣接ノードから送信されるHelloパケットの受信レベル(例えば、受信電波強度)に基づいてリンクの品質を検出してもよい。
図6は、リンクテーブル21の一例を示す。なお、図6は、図5に示すノードGが有するリンクテーブル21を示している。
リンクテーブル21には、隣接ノードとの間のリンクについてのリンク情報が登録される。リンク情報は、「隣接ノード」「往路リンク評価値」「復路リンク評価値」「リンク重み」を含む。「隣接ノード」は、リンクの接続先のノードを識別する。「往路リンク評価値」は、隣接ノードにとっての往路リンクの品質を表す。「復路リンク評価値」は、隣接ノードにとっての復路リンクの品質を表す。「リンク重み」は、「往路リンク評価値」および「復路リンク評価値」の平均を表す。
リンクテーブル21には、隣接ノードとの間のリンクについてのリンク情報が登録される。リンク情報は、「隣接ノード」「往路リンク評価値」「復路リンク評価値」「リンク重み」を含む。「隣接ノード」は、リンクの接続先のノードを識別する。「往路リンク評価値」は、隣接ノードにとっての往路リンクの品質を表す。「復路リンク評価値」は、隣接ノードにとっての復路リンクの品質を表す。「リンク重み」は、「往路リンク評価値」および「復路リンク評価値」の平均を表す。
例えば、図6に示す第1レコードに登録されているリンク情報は、以下の内容を表している。
隣接ノード:Z
往路リンク評価値(ノードZからノードGへ向かうリンクの品質):11
復路リンク評価値(ノードGからノードZへ向かうリンクの品質):9
リンク重み(ノードGとノードZとの間のリンクの品質):10
往路リンク評価値(ノードZからノードGへ向かうリンクの品質):11
復路リンク評価値(ノードGからノードZへ向かうリンクの品質):9
リンク重み(ノードGとノードZとの間のリンクの品質):10
図7は、ルーティングテーブル22の一例を示す。なお、図7は、図5に示すノードAが有するルーティングテーブル22を示している。
ルーティングテーブル22には、宛先ノード毎に経路情報が登録される。具体的には、ルーティングテーブル22には、「グローバル宛先(GD:Global Destination)」「ローカル宛先(LD:Local Destination)」「経路重み」「リンク重み」および「評価値」が登録される。「グローバル宛先」は、パケットの宛先ノードを識別する。なお、「グローバル宛先」を「最終宛先装置」と呼ぶことがある。「ローカル宛先」は、宛先ノードへパケットを送信するための経路上に位置する隣接ノードを表す。
「経路重み」は、「ローカル宛先」から「グローバル宛先」までの経路の通信コストを表す。具体的には、「経路重み」は、「ローカル宛先」から「グローバル宛先」までの経路上の各リンクのリンク重みの総和を表す。「リンク重み」は、「ローカル宛先」との間のリンク重みを表す。「評価値」は、グローバル宛先への経路に係わる総通信コストに相当し、例えば「経路重み」および「リンク重み」の和により算出される。
図7に示すルーティングテーブル22の第1および第2レコードには、グローバル宛先ノードZについての経路情報が登録されている。第1レコードは、ノードAからノードYを経由してノードZへ至る経路の経路情報を表す。すなわち、第1レコードの「リンク重み」は、ノードA、Y間の「リンク重み」を表す。第1レコードの「経路重み」は、ノードY、G間のリンク重み、およびノードG、Z間のリンク重みの和を表す。そして、第1レコードの「評価値」は、ノードAからノードYおよびノードGを経由してノードZへ至る経路の品質(通信コスト)を表す。一方、第2レコードは、ノードAからノードXを経由してノードZへ至る経路の経路情報を表す。すなわち、第2レコードの「リンク重み」は、ノードA、X間の「リンク重み」を表す。第2レコードの「経路重み」は、ノードX、G間のリンク重み、およびノードG、Z間のリンク重みの和を表す。そして、第2レコードの「評価値」は、ノードAからノードXおよびノードGを経由してノードZへ至る経路の品質を表す。
このように、図5および図7に示す例では、ノード装置Aは、ノードZへデータパケットを送信するための経路として、ローカル宛先ノードYを経由する経路(以下、経路Y)およびローカル宛先ノードXを経由する経路(以下、経路X)を有する。そして、ノード装置AがノードZへデータパケットを送信または転送する際には、ノード装置Aの転送部36は、グローバル宛先がノードZである経路の中で、評価値が最小の経路を選択する。図7に示す例では、経路Yの評価値が21であり、経路Xの評価値が24である。したがって、この場合、転送部36は、経路Yを選択する。すなわち、転送部36は、最適なローカル宛先として、ノードYを選択する。
同様に、各ノード装置は、受信パケットの「グローバル宛先」に基づいてルーティングテーブル22をサーチし、最適なローカル宛先ノードを選択する。これにより、実施形態のアドホックネットワークにおいて、データパケットは、最適な経路を介してグローバル宛先まで転送される。
図8は、Helloパケットのフォーマットを示す図である。Helloパケット51は、アドホックヘッダ、グローバル宛先(GD)、ローカル宛先(LD)、往路リンク評価値、評価値、探索対象ノード、ノード状態を含む。アドホックヘッダは、アドホックネットワークにおいてパケットを伝送するために必要な情報を格納する。なお、アドホックヘッダは、Helloパケットの送信元ノードを識別する情報を含むようにしてもよい。グローバル宛先、ローカル宛先、評価値は、この例では、図7に示すルーティングテーブルに登録される対応するエントリから抽出される。なお、ルーティングテーブル22において1つのグローバル宛先に対して複数の経路(すなわち、複数のローカル宛先)が登録されているときは、最適な経路(すなわち、評価値が最小の経路)の経路情報がHelloパケットに格納される。往路リンク評価値は、隣接ノードにとっての往路リンクの品質を表す。探索対象ノードは、ボトルネックノードであるか否かの判定の対象となるノードを識別する。ノード状態は、「初期状態」「探索中」「迂回経路なし」「迂回経路あり」のいずれか1つを表す。
各ノード装置は、それぞれ定期的にHelloパケットを隣接ノードへブロードキャストする。すなわち、各ノード装置は、隣接ノードとの間でルーティングテーブル22に格納されている情報を交換する。そして、各ノード装置は、隣接ノードから受信するHelloパケットの内容に基づいて、それぞれリンクテーブル21およびルーティングテーブル22を作成および更新する。また、各ノード装置は、Helloパケットを利用して、探索対象ノードおよびノード状態を隣接ノードに通知する。
図9は、実施形態の迂回経路探索方法の概略を示すフローチャートである。図9に示すフローチャートの手順は、アドホックネットワーク内の各無線通信装置によって実行される。
ステップS1において、無線通信装置は、現在時刻がボトルネック判定時刻であるか否かを判定する。ボトルネック判定時刻は、例えば、ネットワークを管理または運営するオペレータにより指定され、無線通信装置に設定されている。そして、現在時刻がボトルネック判定時刻になると、無線通信装置は、ステップS2においてボトルネック候補判定処理を実行する。すなわち、無線通信装置は、自分がボトルネック候補であるか否かを判定する。なお、この明細書では、アドホックネットワークにおいてボトルネックノードである可能性のあるノード装置を「ボトルネック候補」と呼ぶ。
ステップS3において、無線通信装置は、迂回経路探索処理を実行する。迂回経路探索処理は、ボトルネック候補がボトルネックノードであるか否かが判定される。なお、図9に示す手順では、迂回経路探索処理は、各無線通信装置により継続的または繰返し実行される。
このように、実施形態の迂回経路探索方法では、多数の無線通信装置の中からボトルネック候補が抽出される。そして、抽出されたボトルネック候補に対して迂回経路探索処理が実行される。したがって、実施形態の迂回経路探索方法によれば、アドホックネットワークにおいて効率的にボトルネックノードを発見することができる。
<ボトルネック候補判定処理>
各ノード装置は、それぞれ、自分がボトルネック候補か否かを判定する。ここで、ノード装置は、下記の第1〜第3の方法でボトルネック候補の判定を行う。
各ノード装置は、それぞれ、自分がボトルネック候補か否かを判定する。ここで、ノード装置は、下記の第1〜第3の方法でボトルネック候補の判定を行う。
図10は、ボトルネック候補判定処理の第1および第2の方法を説明する図である。図10に示すアドホックネットワークは、ノードA〜F、X、Y、GWを備える。また、図10において、ノード間を接続する実線は、無線リンクを表している。すなわち、ノードXは、ノードYに隣接している。ノードA、B、C、Yは、ノードXに隣接している。ノードB、D、Xは、ノードAに隣接している。ノードA、C、D、E、Xは、ノードBに隣接している。ノードB、E、Xは、ノードCに隣接している。ノードA、Bは、ノードDに隣接している。ノードB、C、Fは、ノードEに隣接している。ノードEは、ノードFに隣接している。なお、ノードYは、ノードGWに隣接していてもよいし、ノードGWに隣接していなくてもよい。ただし、ノードYとノードGWとの間には、1以上の通信経路が存在するものとする。
上記構成のアドホックネットワークにおいて、各ノード装置は、それぞれ定期的にHelloパケットを隣接ノードにブロードキャストする。したがって、各ノード装置は、それぞれ1または複数の隣接ノードからHelloパケットを受信する。そして、各ノード装置は、隣接ノードから受信するHelloパケットの内容に基づいて、ルーティングテーブル22を作成および更新する。この結果、ノード装置A〜F、Xは、それぞれ、ルーティングテーブル22A〜22F、22Xを備えるものとする。
以下の説明では、ノード装置A〜F、Xは、それぞれノードGWへデータを送信するものとする。すなわち、各ノード装置A〜F、Xのグローバル宛先は、ノードGWである。ノード装置GWは、例えば、ノードA〜F、Xからデータを収集するゲートウェイ装置である。ゲートウェイ装置は、例えば、アドホックネットワークの外部のサーバコンピュータに接続され、ノードA〜F、Xから収集したデータをそのサーバコンピュータへ送信する。また、ゲートウェイ装置は、アドホックネットワーク内で使用されるHelloパケットを、アドホックネットワークの外部には送信しないものとする。
第1の方法においては、各ノード装置は、下記の条件Aを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
例えば、ノード装置Aのルーティングテーブル22Aには、「グローバル宛先GD:ノードGW」に対して2つの経路(ローカル宛先がノードXである経路、およびローカル宛先がノードBである経路)が登録されている。この場合、ノードA、X間のリンクが切断されたとしても、ノード装置Aは、ノードBを経由してノードGWへデータを送信することができる。したがって、この場合、ノード装置Aは、自分(すなわち、ノードA)はボトルネック候補ではないと判定する。
例えば、ノード装置Aのルーティングテーブル22Aには、「グローバル宛先GD:ノードGW」に対して2つの経路(ローカル宛先がノードXである経路、およびローカル宛先がノードBである経路)が登録されている。この場合、ノードA、X間のリンクが切断されたとしても、ノード装置Aは、ノードBを経由してノードGWへデータを送信することができる。したがって、この場合、ノード装置Aは、自分(すなわち、ノードA)はボトルネック候補ではないと判定する。
これに対して、ノード装置Xのルーティングテーブル22Xは、「グローバル宛先GD:ノードGW」に対して1つの経路(ローカル宛先がノードYである経路)のみが登録されている。この場合、ノードX、Y間のリンクが切断されると、ノード装置Xは、ノードGWへデータを送信できなくなる可能性がある。したがって、この場合、ノード装置Xは、自分(すなわち、ノードX)はボトルネック候補であると判定する。同様に、ノード装置Fも、自分(すなわち、ノードF)はボトルネック候補であると判定する。
第2の方法においては、各ノード装置は、下記の条件Aおよび条件Bを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
条件B:複数の隣接ノードを有する
条件B:複数の隣接ノードを有する
図10に示す例では、ノード装置Xおよびノード装置Fが条件Aを満たす。よって、ノード装置Xおよびノード装置Fについて条件Bを検討する。
ノード装置Fは、隣接ノードを1つだけしか有していない。このため、ノード装置Fが故障したとしても、この故障に起因してノードGWへのデータ送信ができなくなるノードは存在しない。すなわち、条件Aを満たすノードであっても、条件Bを満たさないノードは、ボトルネックノードであるか否かを調査する必要性は高くない。したがって、第2の方法では、ノード装置Fは、自分(すなわち、ノードF)はボトルネック候補ではないと判定する。ただし、ノード装置Fは、自分(すなわち、ノードF)は「単独の孤立」であると判定する。
ノード装置Xは、4つの隣接ノード(Y、A、B、C)を有し、条件Bを満たす。ここで、ノード装置Xにとって、ノードYは、ノードGWへのデータ送信においてローカル宛先LDである。このため、ノード装置Xは、隣接ノードA、B、CからノードGW宛てのデータを受信すると、そのデータをノードYへ送信する。この場合、ノード装置Xが故障すると、ノードA〜Cを含む多数のノードが、ノードGWへデータを送信できなくなるおそれがある。したがって、条件Aおよび条件Bを満たすノードについては、ボトルネックノードであるか否かを調査することが好ましい。すなわち、第2の方法では、ノード装置Xは、自分(すなわち、ノードX)はボトルネック候補であると判定する。
第3の方法においては、各ノード装置は、下記の条件Aおよび条件Cを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
条件C:グローバル宛先に対するローカル宛先として選択したノード以外のすべての隣接ノードにより、上記グローバル宛先に対するローカル宛先として選択されている。
条件C:グローバル宛先に対するローカル宛先として選択したノード以外のすべての隣接ノードにより、上記グローバル宛先に対するローカル宛先として選択されている。
以下、図11に示すアドホックネットワークにおいて、ノード装置Xがボトルネック候補判定処理を実行するケースを説明する。なお、図11に示すノードA〜E、X、Y、GWは、図10を参照しながら説明した対応するノードと実質的に同じである。
ノード装置Xは、図11に示すように、4つの隣接ノード(A、B、C、Y)を有している。また、ルーティングテーブル22Xにおいては、「グローバル宛先GD:ノードGW」に対して「ローカル宛先LD:ノードY」が登録されている。すなわち、ノード装置Xは、グローバル宛先がノードGWであるデータを生成または受信したときは、そのデータを隣接ノードYへ送信する。
ノード装置Xは、ノードA、B、C、Yからそれぞれ受信するHelloパケットに基づいて、自分(すなわち、ノードX)がボトルネック候補か否かを判定する。このとき、ノード装置A、B、C、Yは、それぞれ、経路情報を含むHelloパケットをブロードキャストする。
例えば、ノード装置Aは、ルーティングテーブル22Aを備える。ルーティングテーブル22Aには、「グローバル宛先GD:ノードGW」に対して2つの経路(ローカル宛先がノードXである経路、およびローカル宛先がノードBである経路)が登録されている。ここで、これら2つの経路を比較すると、ローカル宛先がノードXである経路の方が評価値は小さい。この場合、ノード装置Aは、ノードGWへの最適な経路として、ローカル宛先がノードXである経路を選択する。すなわち、ルーティングテーブル22Aの経路情報は、「ノード装置Aは、グローバル宛先がノードGWであるデータを生成または受信したときは、そのデータを隣接ノードXへ送信する。」を表している。そして、ノード装置Aは、Helloパケットを利用して、ノードGWへデータを送るための経路情報を隣接ノードに通知する。図11においては、ノード装置Aは、「GD=GW、LD=X」を含むHelloパケット41Aを隣接ノードへブロードキャストしている。ここで、「GD=GW、LD=X」は、図8に示すHelloパケットの「グローバル宛先」「ローカル宛先」としてそれぞれ「ノードGW」「ノードX」が設定されていることを表している。そして、ノード装置Aから送信されるHelloパケット41Aは、隣接ノードX(及び、ノードB、D)に到達する。
同様に、ノード装置B、C、Yは、それぞれHelloパケット41B、41C、41Yをブロードキャストする。このとき、Helloパケット41B、41C、41Yは、それぞれ下記の経路情報を含む。
41B:「GD=GW、LD=X」
41C:「GD=GW、LD=X」
41Y:「GD=GW、LD=Z」
41C:「GD=GW、LD=X」
41Y:「GD=GW、LD=Z」
ノード装置Xは、Helloパケット41A、41B、41C、41Y、およびルーティングテーブル22Xの内容に基づいて、ノードGWへのデータ送信において自分(すなわち、ノードX)がボトルネック候補か否かを判定する。まず、ルーティングテーブル22Xによれば、「グローバル宛先GD:ノードGW」に対して「ローカル宛先LD」は1つだけ登録(すなわち、LD=Y)されている。よって、ノード装置Xは、条件Aを満足する。また、ノードXの隣接ノードA、B、C、Yの中で、ローカル宛先であるノードYを除く他の3つの隣接ノードA、B、Cは、いずれも、「グローバル宛先GD:ノードGW」に対するローカル宛先LDとして「ノードX」を選択している。すなわち、ノード装置Xは、条件Cも満足する。したがって、ノード装置Xは、ノードGWへのデータ送信において、自分(すなわち、ノードX)がボトルネック候補であると判定する。
このように、図11において、ノード装置A〜CがそれぞれノードGWへのデータ送信においてローカル宛先としてノードXを選択するときに、ノード装置Xは条件Cを満足する。よって、ノード装置Xが条件Cを満足するときは、ノード装置Xが故障すると、ノードA〜Cを含む多数のノードがノードGWへデータを送信できなくなる可能性が高い。したがって、条件Aおよび条件Cを満たすノードについては、ボトルネックノードであるか否かを調査することが好ましい。
<迂回経路探索処理>
上述したように、実施形態の迂回経路探索方法では、アドホックネットワークにおいてボトルネック候補が抽出される。そして、抽出されたボトルネック候補に対して迂回経路探索処理が実行される。このとき、迂回経路探索処理は、各ノード装置が備える状態管理テーブル23を利用して実行される。
上述したように、実施形態の迂回経路探索方法では、アドホックネットワークにおいてボトルネック候補が抽出される。そして、抽出されたボトルネック候補に対して迂回経路探索処理が実行される。このとき、迂回経路探索処理は、各ノード装置が備える状態管理テーブル23を利用して実行される。
図12は、状態管理テーブル23の一例を示す。なお、図12は、図10または図11に示すノード装置Xにおいて作成される状態管理テーブル23を示している。
状態管理テーブル23は、グローバル宛先ごとに「ローカル宛先」「探索対象ノード」「隣接ノード」「状態」を管理する。ここでは、「グローバル宛先GD:ノードGW」について「ローカル宛先」「探索対象ノード」「隣接ノード」「状態」が登録されている。
「ローカル宛先」には、グローバル宛先に対する最適な経路として選択される隣接ノードが登録される。なお、グローバル宛先に対応するローカル宛先は、ルーティングテーブル22から検出される。「探索対象ノード」には、ボトルネックノードか否かの判定が行われるノード(すなわち、ボトルネック候補)が登録される。「隣接ノード」には、状態を管理する対象の隣接ノードが登録される。ただし、各ノード装置は、自分の状態も管理する。したがって、状態管理テーブル23において「隣接ノード」として登録されるノードは、隣接ノードだけでなく、自ノードも含むものとする。ここで、「隣接ノード」は、グローバル宛先に対するローカル宛先ノードを含まないようにしてもよい。また、「隣接ノード」には、自ノードおよび自ノードをローカル宛先として選択する隣接ノードのみが登録されるようにしてもよい。「状態」は、「0:初期状態」「1:探索中」「2:迂回経路なし」「3:迂回経路あり」を識別する。
図13は、ノード装置の状態の遷移を示す図である。各ノード装置は、それぞれ、図13に示す4つの状態の中の1つの状態で動作する。「初期状態」は、ノード装置が迂回経路探索に係わっていない状態を表す。「探索中」は、ノード装置が迂回経路探索を実行している状態を表す。「迂回経路なし」は、ノード装置からグローバル宛先へのデータ送信においてボトルネック候補を経由しない経路(すなわち、迂回経路)が発見されない状態を表す。「迂回経路あり」は、ノード装置からグローバル宛先へのデータ送信においてボトルネック候補を経由しない経路(すなわち、迂回経路)が発見された状態を表す。
以下、迂回経路探索処理の実施例を示す。以下の説明では、図14に示すアドホックネットワークにおいて、ノードGWがグローバル宛先であるものとする。また、ノードXがボトルネック候補であるものとする。さらに、ノード装置A〜E、Xは、それぞれ、ルーティングテーブル22A〜22E、22Xを有しているものとする。
各ノード装置は、グローバル宛先へのデータ送信において、リンク評価値が最小の隣接ノードをローカル宛先として選択する。たとえば、ノード装置A、B、Cは、ノードGWへのデータ送信において、ローカル宛先として「ノードX]を選択する。すなわち、ノードXは、ノード装置A、B、Cによって、ローカル宛先として選択される。また、ノード装置Dは、ノードGWへのデータ送信において、ローカル宛先として「ノードA]を選択する。すなわち、ノードAは、ノード装置Dによりローカル宛先として選択される。さらに、ノード装置Eは、ノードGWへのデータ送信において、ローカル宛先として「ノードB」を選択する。すなわち、ノードBは、ノード装置Eによりローカル宛先として選択される。
ノードD、C、Eは、他の隣接ノードによってローカル宛先として選択されていない。このため、ノード装置D、C、Eは、ノードGWへのデータ送信において、他のノードから送信されるデータを「中継」することはない。すなわち、隣接ノード装置によってローカル宛先として選択されていないノードは、グローバル宛先へのデータ送信において「最上流」に位置している。よって、以下では、隣接ノード装置によってローカル宛先として選択されていないノードを「最上流ノード」と呼ぶことがある。図14に示す例では、ノードD、C、Eは、ノードGWへのデータ送信において、最上流ノードである。
図15は、迂回経路探索処理の開始時の状態を示す図である。図15において、探索対象ノード(すなわち、ノードX)は、上述のボトルネック候補であり、二重丸で表わされている。また、最上流ノード(すなわち、ノードD、C、E)は、四角形で表わされている。
ノード装置Xは、状態管理テーブル23Xを備える。図15に示す状態管理テーブル23Xにおいて、左端の「X」は、探索対象ノードを識別する。また、状態管理テーブル23Xは、ノードX、A、B、Cの状態を管理する。すなわち、ノード装置Xは、自分の状態、及びノードXをローカル宛先として選択する隣接ノード(すなわち、ノードA、B、C)の状態を管理する。なお、ノードXは、探索対象ノード(すなわち、ボトルネック候補)である。したがって、状態管理テーブル23Xにおいて、ノードXの状態は「1:探索中」に設定されている。以下、図16〜図23を参照しながら迂回経路探索処理の実施例を説明する。
ノード装置Xは、図16に示すように、探索情報を含むHelloパケットを隣接ノードへ送信する。探索情報は、図8に示すように、探索対象ノードを識別する情報およびノード状態を表す情報を含む。ここで、探索対象ノードはノードXであり、ノードXの状態は「1:探索中」である。したがって、ノード装置Xは、探索情報「X、1」を含むHelloパケット51Xを送信する。なお、「X、1」は、「探索対象ノード:ノードX」および「ノード状態:1」を表す。以下、「X、1」を含むHelloパケットのことをHelloパケット「X、1」と呼ぶことがある。ここで、Helloパケット(X、1)は、最終宛先装置への経路探索を表す情報を含む探索データの一例である。そして、ノードXから送信されるHelloパケット「X、1」は、各隣接ノードA〜C、Yによって受信される。そして、ノード装置A〜Cは、Helloパケット「X、1」を受信すると、図17に示すように、状態管理テーブル23A〜23Cを作成または更新する。
ノードAは、最上流ノードではない。したがって、ノードAの状態管理テーブル23Aは、ノードAおよびノードAをローカル宛先として選択するノードDの状態を管理する。そして、ノード装置Aは、Helloパケット「X、1」を受信すると、状態管理テーブル23Aにおいて、ノードAの状態を「0:初期状態」から「1:探索中」に更新する。また、ノードXからHelloパケット「X、1」を受信したときのノード装置Bの動作は、ノードAと実質的に同じである。
ノードCは、上述したように、最上流ノードである。このため、ノードCの状態管理テーブル23Cは、ノードCおよび隣接ノードX、B、Eの状態を管理する。そして、ノード装置Cは、ノードXからHelloパケット「X、1」を受信すると、ノードCの状態を「0」から「1」に更新すると共に、Helloパケット「X、1」の送信元であるノードXの状態も「0」から「1」に更新する。
なお、ノード装置Yも、ノードXからHelloパケット「X、1」を受信する。しかし、ノードYは、探索対象ノードであるノードXによってローカル宛先として選択されている。この場合、ノード装置Yは、ノードXから受信するHelloパケット「X、1」を無視する。したがって、以下の説明では、ノードYの動作については記載を省略する。
ノード装置A〜Cは、それぞれ、図18に示すように、探索情報を含むHelloパケットを隣接ノードに送信する。ここで、ノードAの状態は、「1:探索中」に更新されている。また、探索対象ノードは、変わることはない。したがって、ノード装置Aは、Helloパケット「X、1」を隣接ノードに送信する。同様に、ノード装置B、Cも、それぞれHelloパケット「X、1」を隣接ノードに送信する。なお、各ノード装置は、それぞれ自律的に動作するので、ノード装置A〜Cは、互いに独立したタイミングでHelloパケット「X、1」を送信する。
ノード装置Dは、図18に示すように、ノードAおよびノードBからそれぞれHelloパケット「X、1」を受信する。ここで、ノードDは、上述したように、最上流ノードである。このため、ノードDの状態管理テーブル23Dは、図19に示すように、ノードDおよび隣接ノードA、Bの状態を管理する。そして、ノード装置Dは、ノードAからHelloパケット「X、1」を受信すると、自分(すなわち、ノードD)の状態を「0」から「1」に更新すると共に、そのHelloパケット「X、1」の送信元であるノードAの状態も「0」から「1」に更新する。また、ノード装置Dは、ノードBからHelloパケット「X、1」を受信すると、そのHelloパケット「X、1」の送信元であるノードBの状態も「0」から「1」に更新する。この結果、ノードDにおいて、状態管理テーブル23Dにより管理されているすべてのノード(すなわち、ノードD、A、B)の状態が「1」になる。
同様に、ノード装置EがノードB、CからそれぞれHelloパケット「X、1」を受信すると、状態管理テーブル23Eにより管理されているすべてのノード(すなわち、ノードE、B、C)の状態が「1」になる。また、ノード装置CがノードX、B、EからそれぞれHelloパケット「X、1」を受信すると、状態管理テーブル23Cにより管理されているすべてのノード(すなわち、ノードC、X、B、E)の状態が「1」になる。なお、図19は、ノードDがノードA、BからそれぞれHelloパケット「X、1」を受信し、ノードEがノードB、CからそれぞれHelloパケット「X、1」を受信し、ノードCがノードX、B、EからそれぞれHelloパケット「X、1」を受信した後の状態を示している。
最上流ノードであるノード装置Dは、状態管理テーブル23Dによって管理されているすべてのノードの状態が「1」になると、図19に示すように、自分(すなわち、ノードD)の状態を「1:探索中」から「2:迂回経路なし」に更新する。そして、ノード装置Dは、図20に示すように、探索情報「X、2」を含むHelloパケットを隣接ノードに送信する。ここで、「X、2」は、「探索対象ノード:ノードX」および「ノード状態:2」を表す。また、「X、2」を含むHelloパケットのことをHelloパケット「X、2」と呼ぶことがある。さらに、ノード装置E、Cも、ノード装置Dと同様に、それぞれHelloパケット「X、2」を隣接ノードに送信する。
ここで、Helloパケット「X、2」の役割を説明する。Helloパケット「X、2」は、最上流ノードがすべての隣接ノードからHelloパケット「X、1」を受信したときに生成される。そして、最上流ノードがすべての隣接ノードからHelloパケット「X、1」を受信する状態は、探索対象ノード(すなわち、ノードX)により最初に生成されたHelloパケット「X、1」が、その最上流ノードよりも先に転送されないことを意味する。すなわち、この状態は、探索対象ノードから送信されるHelloパケット「X、1」が、最上流ノードを経由してグローバル宛先へ到達できないことを表している。したがって、Helloパケット「X、2」は、実質的に、「グローバル宛先へデータを送信するための迂回経路が存在しない」を表している。すなわち、Helloパケット「X、2」は、Helloパケット「X、1」が最終宛先装置へ到達しないことを表す情報を含むデータ(または、応答データ)の一例である。
ノードGWに対して最上流に位置するノード装置D、E、Cは、図20に示すように、それぞれHelloパケット「X、2」を対応する隣接ノードへ送信する。各ノード装置は、Helloパケット「X、2」を受信すると、状態管理テーブル23において、受信したHelloパケット「X、2」の送信元ノードの状態を「1:探索中」から「2:迂回経路なし」に更新する。例えば、ノード装置Aは、ノードDからHelloパケット「X、2」を受信すると、状態管理テーブル23Aにおいて、ノードDの状態を「1」から「2」に更新する。また、ノード装置Bは、ノードEからHelloパケット「X、2」を受信すると、状態管理テーブル23Bにおいて、ノードEの状態を「1」から「2」に更新する。
ノード装置(最上流ノードを除く)は、自分をローカル宛先として選択する全ての隣接ノードからそれぞれHelloパケット「X、2」を受信すると、状態管理テーブル23において自分の状態を「2」に更新する。たとえば、ノード装置Aは、図20に示すように、ノードAをローカル宛先として選択している全ての隣接ノード(この例では、ノードD)からHelloパケット「X、2」を受信すると、状態管理テーブル23AにおいてノードAの状態を「2」に更新する。すなわち、ノード装置Aは、状態管理テーブル23Aにより管理されているすべての隣接ノードの状態が「2」になると、自分(すなわち、ノードA)の状態も「2」に更新する。同様に、図20では、ノード装置Bは、ノードBをローカル宛先として選択している全ての隣接ノード(この例では、ノードE)からHelloパケット「X、2」を受信すると、状態管理テーブル23BにおいてノードBの状態を「2」に更新する。
ノード装置Aは、自分(すなわち、ノードA)の状態が「2」になると、図21に示すように、Helloパケット「X、2」を隣接ノードへ送信する。同様に、ノード装置Bは、自分(すなわち、ノードB)の状態が「2」になると、Helloパケット「X、2」を隣接ノードへ送信する。
ノード装置Xは、図20〜図21に示すように、ノードA、B、CからそれぞれHelloパケット「X、2」を受信する。そうすると、ノードXの状態管理テーブル23Xにおいて、ノードA、B、Cの状態はそれぞれ「2」に更新され、ノードXの状態も「2」に更新される。
ボトルネック候補であるノード装置Xは、ノードXをローカル宛先として選択する全てのノードからそれぞれHelloパケット「X、2」を受信すると、グローバル宛先GWへのデータ送信に対して迂回経路が存在しないと判定する。すなわち、ノード装置Xは、ノードA、B、CからそれぞれHelloパケット「X、2」を受信すると、ノードYを経由する経路の他にノードGWへデータを送信するための迂回経路が存在しないと判定する。そうすると、ノード装置Xは、ノードGWへのデータ送信においてノードXがボトルネックであり、迂回経路が存在しないことを表す情報をノード装置GWに通知する。この通知の方法は、特に限定されるものではなく、任意のデータ形式でよい。
ノード装置Xは、迂回経路が存在しないことをノードGWへ通知した後、Helloパケット「X、0」を隣接ノードへ送信する。ここで、「X、0」は、「探索対象ノード:ノードX」および「ノード状態:0(初期状態)」を表す。すなわち、Helloパケット「X、0」は、各ノード装置に対して状態管理テーブル23の初期化を指示する。
Helloパケット「X、0」を受信した各ノード装置は、状態管理テーブル23において探索対象ノードXに対応する状態を「0」に更新するとともに、Helloパケット「X、0」を対応する隣接ノードへ送信する。また、各ノード装置は、Helloパケット「X、0」を送信してから所定の探索情報保持時間が経過した後、状態管理テーブル23において探索対象ノードXに対応する情報を削除する。なお、探索情報保持時間は、例えば、ノード装置が最初のHelloパケット「X、1」を送信した時から、最後のHelloパケット「X、2」を受信するまでの期間とする。また、探索情報保持時間は、上記期間に所定のマージンを加えた長さであってもよい。
次に、ノードGWへの送信において、迂回経路が存在するケースについて説明する。ここでは、図22に示すように、ノードHがノードCに隣接しており、ノードHとノードGWとの間に、ノードXを経由しない経路(以下、迂回経路H)が存在するものとする。
このケースでは、ノード装置Hは、ノードCからHelloパケット「X、1」を受信する。そうすると、ノード装置Hは、状態管理テーブル23を更新すると共に、Helloパケット「X、1」を隣接ノードへ送信する。ここで、ノードHとノードGWとの間には迂回経路Hが存在する。このため、ノードHから送信されるHelloパケット「X、1」は、迂回経路Hを介して伝搬され、ノードGWに到達する。このとき、ノード装置A〜Eは、例えば、Helloパケット「X、1」またはHelloパケット「X、2」を送信および受信している。
ノード装置GWは、迂回経路Hを介してHelloパケット「X、1」すると、図22に示すように、探索対象ノード(すなわち、ノードX)に対して、Helloパケット「X、1」を受信したことを表す情報を通知する。すなわち、ノード装置GWは、迂回経路が存在することを表す情報をノードXへ通知する。この通知の方法は、特に限定されるものではなく、任意のデータ形式でよい。
ノード装置Xは、迂回経路が存在することを表す情報をノードGWから受信すると、図23に示すように、状態管理テーブル23Xにおいて自分(すなわち、ノードX)の状態を「3:迂回経路あり」に更新する。また、ノード装置Xは、Helloパケット「X、3」を隣接ノードに送信する。ここで、「X、3」は、「探索対象ノード:ノードX」および「ノード状態:3」を表す。
Helloパケット「X、3」を受信した各ノード装置は、状態管理テーブル23において、探索対象ノードXに対応する「状態」を「3」に更新すると共に、Helloパケット「X、3」を隣接ノードへ送信する。さらに、各ノード装置は、Helloパケット「X、3」を送信してから探索情報保持時間が経過した後、状態管理テーブル23において探索対象ノードXに対応する探索情報を削除する。
なお、各ノード装置は、状態管理テーブル23から探索情報を削除した後は、探索情報が付与されていないHelloパケットを送信するようにしてもよい。この場合、Helloパケットは、図8において、「探索対象ノード」および「ノード状態」が削除されたフォーマットである。
なお、実施形態のアドホックネットワークは、各ノード装置が自律的に動作する。このため、ノード装置がHelloパケット「X、1」、Helloパケット「X、2」、Helloパケット「X、3」、Helloパケット「X、0」を受信する順番は、必ずしも同じではない。
例えば、ノードCから迂回経路Hを介してノードGWへHelloパケット「X、1」が到達するまでに要する時間が長いものとする。この場合、ノードGWがHelloパケット「X、1」を受信する前に、Helloパケット「X、2」が各ノードに伝搬する。そうすると、ノード装置Xは、ノードGWがHelloパケット「X、1」を受信する前に、「迂回経路が存在しない」と判定することがある。
ただし、この後、ノードGWがHelloパケット「X、1」を受信すると、ノードGWからノードXへ迂回経路が存在することを表す情報が通知される。そうすると、ノード装置Xは、Helloパケット「X、2」による判定よりも、ノードGWからの通知を優先し、ノードGWへのデータ送信において迂回経路が存在すると判定する。したがって、実施形態の迂回経路探索方法によれば、迂回経路の有無を精度よく判定できる。
<フローチャート>
図24〜図25は、ボトルネック候補判定処理を示すフローチャートである。なお、ボトルネック候補判定処理は、各ノード装置において判定部35により実行される。また、ボトルネック候補判定処理は、状態管理テーブル23を作成する処理、および最上流ノードか否かを判定する処理を含む。さらに、ボトルネック候補判定処理は、例えば、図9に示すように、定期的に実行される。
図24〜図25は、ボトルネック候補判定処理を示すフローチャートである。なお、ボトルネック候補判定処理は、各ノード装置において判定部35により実行される。また、ボトルネック候補判定処理は、状態管理テーブル23を作成する処理、および最上流ノードか否かを判定する処理を含む。さらに、ボトルネック候補判定処理は、例えば、図9に示すように、定期的に実行される。
ステップS11において、判定部35は、ボトルネック判定フラグを初期化する。ボトルネック判定フラグの初期値は、「0:非ボトルネック」である。ボトルネック判定フラグは、ボトルネック判定フラグ格納部24に格納される。なお、ボトルネック判定フラグは、「0:非ボトルネック」の他に、「1:単独の孤立」「2:ボトルネック候補」「3:ボトルネック確定」に更新され得る。
ステップS12において、判定部35は、最上流フラグを初期化する。最上流フラグの初期値は、「1:最上流」である。最上流フラグは、最上流フラグ格納部25に格納される。なお、最上流フラグは、グローバル宛先GDごとに設定される。
ステップS13において、判定部35は、状態管理テーブル23を作成する。ただし、この時点では、状態管理テーブル23には隣接ノードはエントリされない。例えば、ノード装置Xにおいては、ステップS13により、図26(a)に示す状態管理テーブル23が作成される。図26(a)に示す例では、「グローバル宛先:GW」「ローカル宛先:Y」「探索対象ノード:X」が登録されている。また、この時点では「隣接ノード」フィールドには自ノード(すなわち、ノードX)のみが登録される。
ステップS14において、判定部35は、状態管理テーブル23に隣接ノードを登録するための期間をカウントするタイマTTを開始する。タイマTTがカウントする期間は、特に限定されるものではないが、例えば、各ノード装置がHelloパケットを送信する間隔に対して十分に長いものとする。
判定部35は、タイマTTが満了するまで、ステップS21〜S28において、状態管理テーブル23に隣接ノードを登録する。このとき、判定部35は、自ノードをローカル宛先として選択する隣接ノードのみを状態管理テーブル23に登録してもよい。また、判定部35は、グローバル宛先GDに対してノード装置が最上流ノードであるか否かの判定も行う。
ステップS21において、判定部35は、隣接ノードから送信されるHelloパケットを待ち受ける。なお、各ノード装置は、定期的にHelloパケットをブロードキャストする。そして、Helloパケットを受信すると、判定部35は、ステップS22において、状態管理テーブル23に設定されているグローバル宛先GDと、Helloパケットのヘッダに設定されているグローバル宛先GDとを比較する。これら2つのグローバル宛先GDが一致すれば、判定部35の処理はステップS23に移行する。一方、これら2つのグローバル宛先GDが一致しないときは、判定部35は、ステップS21に戻って次のHelloパケットを待ち受ける。
ステップS23において、判定部35は、Helloパケットの送信元ノードが、状態管理テーブル23においてグローバル宛先GDに対して既に登録されているか否かをチェックする。Helloパケットの送信元ノードが未だ状態管理テーブル23に登録されていなければ、判定部35の処理はステップS24に移行する。一方、Helloパケットの送信元ノードが既に状態管理テーブル23に登録されていれば、ステップS24〜S26はスキップされる。
ステップS24において、判定部35は、Helloパケットのヘッダに設定されているグローバル宛先GDに対する最適なローカル宛先LDが、自ノードか否かをチェックする。すなわち、判定部35は、Helloパケットの送信元ノードが、グローバル宛先GDへデータを送信する際にローカル宛先LDとして自ノードを選択するか否かをチェックする。そして、ローカル宛先LDが自ノードであれば、判定部35の処理はステップS25に移行する。一方、ローカル宛先LDが自ノードでなければ、ステップS25〜S26はスキップされる。なお、以下の説明では、自ノード(すなわち、判定部35を含むノード装置)を、グローバル宛先GDへのデータ送信においてローカル宛先LDとして選択する隣接ノードのことを「特定隣接ノード」と呼ぶことがある。
ステップS25において、判定部35は、グローバル宛先GDに対応する最上流フラグを「0:非最上流」に設定する。このとき、最上流フラグ格納部25に保持されている最上流フラグが「1」であれば、判定部35は、その最上流フラグを「1」から「0」に更新する。
ステップS26において、判定部35は、状態管理テーブル23においてグローバル宛先GDに対応するエントリに、Helloパケットの送信元ノードを追加する。
ステップS27は、Helloパケット内に複数のグローバル宛先GDについての経路情報が格納されている場合に、各グローバル宛先GDに対してステップS22〜S26の処理を実行するために設けられている。そして、ステップS28においてタイマTTが満了すると、判定部35の処理はステップS29に移行する。
ステップS27は、Helloパケット内に複数のグローバル宛先GDについての経路情報が格納されている場合に、各グローバル宛先GDに対してステップS22〜S26の処理を実行するために設けられている。そして、ステップS28においてタイマTTが満了すると、判定部35の処理はステップS29に移行する。
なお、図25に示す例では、状態管理テーブル23には特定隣接ノードが登録される。しかし、状態管理テーブル23の作成方法は、これに限定されるものではない。例えば、判定部35は、特定隣接ノードを含むすべての隣接ノードを状態管理テーブル23に登録してもよい。ただし、この場合、判定部35は、特定隣接ノードと他の隣接ノードとが識別可能なように、各隣接ノードを状態管理テーブル23に登録する。
また、判定部35は、ステップS21〜S28において、自ノードがグローバル宛先GDに対して最上流ノードか否かを判定する。このとき、判定部35は、各隣接ノードからHelloパケットを受信する過程で、少なくとも1つの隣接ノードが特定隣接ノードであれば、ステップS25を実行する。すなわち、グローバル宛先GDへのデータ送信においてローカル宛先LDとして自ノードを選択する隣接ノードが1つ以上存在するときは、自ノードは最上流ノードではないと判定される。換言すれば、グローバル宛先GDへのデータ送信においてローカル宛先LDとして自ノードを選択する隣接ノードが存在しないときに、判定部35は、自ノードを最上流ノードと判定される。
ステップS29において、判定部35は、自ノードが最上流ノードか否かをチェックする。このとき、判定部35は、最上流フラグ格納部25に格納されている最上流フラグを参照する。そして、自ノードが最上流ノードであれば、判定部35は、ステップS30を実行する。ステップS30において、判定部35は、リンクテーブル21を参照し、状態管理テーブル23に登録されていない隣接ノードがあれば、その未登録の隣接ノードを状態管理テーブル23に追加する。一方、自ノードが最上流ノードでなければ、ステップS30はスキップされる。
このように、ステップS29〜S30によれば、最上流ノードの状態管理テーブル23には、すべての隣接ノードが登録される。なお、ステップS21〜S28においてすべての隣接ノードが状態管理テーブル23に登録されるときは、ステップS29〜S30は実行しなくてもよい。
ステップS31において、判定部35は、ルーティングテーブル22において探索対象のグローバル宛先GDに対してローカル宛先LDが1つだけ登録されているのか否かをチェックする。そして、ルーティングテーブル22において複数の対応するローカル宛先LDが登録されていれば、判定部35の処理は終了する。この場合、ボトルネック判定フラグは、更新されずに「0:非ボトルネック」のままである。すなわち、ルーティングテーブル22においてグローバル宛先GDに対応する複数のローカル宛先LDが登録されていれば、判定部35は、そのグローバル宛先GDに対して迂回経路が存在すると判定する。
ルーティングテーブル22において対応するローカル宛先LDが1つだけ登録されているときは、判定部35は、ステップS32において、2以上の隣接ノードが存在するか否かをチェックする。そして、2以上の隣接ノードが存在するときは、判定部35は、ステップS33において、ボトルネック判定フラグを「2:ボトルネック候補」に更新する。すなわち、グローバル宛先GDに対してローカル宛先LDが1つだけであり、かつ複数の隣接ノードが存在するときは、判定部35は、自ノードをボトルネック候補と判定する。一方、隣接ノードが1つだけ存在するときは、判定部35は、ステップS34において、ボトルネック判定フラグを「1:単独の孤立」に更新する。
次に、図10または図14に示すアドホックネットワークを参照しながら、図24〜図25のフローチャートの手順を説明する。以下の説明では、ノードX、A、D、Fについて説明する。
ノードXは、図14に示すように、ノードA、B、Cによって、ノードGWへのデータ送信においてローカル宛先として指定されている。よって、ノードXの判定部35は、各隣接ノードからそれぞれHelloパケットを受信すると、ステップS26において、状態管理テーブル23にノードA、B、Cを追加する。ノードXの状態管理テーブル23にノードA、B、Cが追加された状態を図26(b)に示す。このとき、ノードA、B、Cは、特定隣接ノードとして状態管理テーブル23に登録される。
また、上述のように、ノードXをノードGWへのデータ送信においてローカル宛先として指定する隣接ノードが存在するので、判定部35は、ステップS25において、最上流フラグを「0」に更新する。すなわち、ノードXは、ノードGWへのデータ送信において最上流ノードではないと判定される。
さらに、ノードXのルーティングテーブル22Xにおいて、「グローバル宛先GD:ノードGW」に対して、ローカル宛先LDは1つしか登録されていない。したがって、ステップS31は「Yes」と判定される。また、ノードXは、4つの隣接ノードを有するので、ステップS32は「Yes」と判定される。したがって、判定部35は、ステップS33において、ボトルネック判定フラグを「2」に更新する。すなわち、ノードXは、ボトルネック候補であると判定される。
ノードAは、図14に示すように、ノードDによって、ノードGWへのデータ送信においてローカル宛先として指定されている。よって、ノードAの判定部35は、ステップS25において、最上流フラグを「0」に更新する。すなわち、ノードAも、ノードGWへのデータ送信において最上流ノードではないと判定される。
また、ノードAのルーティングテーブル22Aにおいて、「グローバル宛先GD:ノードGW」に対して、2つのローカル宛先LDが登録されている。したがって、ステップS31は「No」と判定される。すなわち、ノードAの判定部35は、ステップS32〜S34を実行しないので、ノードAは非ボトルネックと判定される。
ノードDは、図14に示すように、いずれのノードによっても、ノードGWへのデータ送信においてローカル宛先として指定されていない。よって、ノードDにおいてステップS25は実行されず、最上流フラグは「1」のままである。すなわち、ノードDは、ノードGWに対して最上流ノードであると判定される。また、ノードDのルーティングテーブル22Dにおいて、「グローバル宛先GD:ノードGW」に対して、2つのローカル宛先LDが登録されている。したがって、ノードDは、非ボトルネックと判定される。
ノードFは、図10に示すように、ノードEのみに隣接している。そして、ノードFのルーティングテーブル22Fにおいて、「グローバル宛先GD:ノードGW」に対して、ローカル宛先LDは1つしか登録されていない。このため、ステップS31は「Yes」と判定される。また、ノードFは、隣接ノードを1つだけ有するので、ステップS32は「No」と判定される。したがって、ノードFの判定部35は、ボトルネック判定フラグを「1」に更新する。すなわち、ノードFは、単独の孤立と判定される。
図27〜図29は、迂回経路探索処理を示すフローチャートである。なお、迂回経路探索処理は、各ノード装置において判定部35により実行される。ただし、迂回経路探索処理の一部は、パケット生成部33およびパケット送信部34により実行される。また、迂回経路探索処理は、例えば、図9に示すように、アドホックネットワークの運用中は、継続的または繰返し実行される。
図27〜図29のフローチャートにおいて、「ID」は、探索対象ノードを識別する情報であり、具体的には、ボトルネック候補ノードを識別する。また、アドホックネットワークが迂回経路探索を行っているときは、各ノード装置は、それぞれ定期的に、探索情報を含むHelloパケットを隣接ノードにブロードキャストする。探索情報は、図8に示す「探索対象ノード」および「ノード状態」に相当する。なお、「探索対象ノード」および「ノード状態」は、図27〜図29では、それぞれ「ID」「STAT」で表わされている。
ステップS41〜S43において、判定部35は、ボトルネック判定フラグの値を検出する。ボトルネック判定フラグは、図24〜図25に示すフローチャートにおいて決定され、ボトルネック判定フラグ格納部24に格納されている。
ボトルネック判定フラグが「2:ボトルネック候補」であれば、判定部35は、ステップS44において、自ノードの状態を「1:探索中」に更新する。即ち、ボトルネック候補と判定されたノード装置は、自分を探索対象として、迂回経路探索処理を開始する。
ステップS45において、判定部35は、Helloパケットを待ち受ける。なお、アドホックネットワーク上の各ノード装置は、それぞれ定期的に、Helloパケットを隣接ノードに送信する。Helloパケットは、図8に示すように、グローバル宛先を表す情報(GD)、迂回経路探索の対象ノードを識別する情報(ID)、ノード装置の状態を表す情報(STAT)を含む。そして、ノード装置がHelloパケットを受信したときは、判定部35の処理はステップS46に移行する。一方、ノード装置がHelloパケットを受信していないときは、判定部35の処理はステップS61に移行する。
ステップS46において、判定部35は、受信したHelloパケットの内容に基づいて状態管理テーブル23を更新する。このとき、判定部35は、Helloパケットに設定されているグローバル宛先GDおよび探索対象ノード(ID)に対応するエントリにおいて、ノード状態を更新する。たとえば、「STAT=1」を含むHelloパケットを受信したときは、判定部35は、自ノードおよびHelloパケットの送信元ノードの状態を「1」に更新する。「STAT=2」を含むHelloパケットを受信したときは、判定部35は、そのHelloパケットの送信元ノードの状態を「2」に更新する。「STAT=0」または「STAT=3」を含むHelloパケットを受信したときは、判定部35は、探索情報保持時間タイマを起動する。
ステップS51〜S58およびステップS61〜S66の処理は、探索対象ノード毎に実行される。すなわち、アドホックネットワーク上に複数のボトルネック候補が存在するときは、ステップS51〜S58およびステップS61〜S66の処理は、各ボトルネック候補に対してそれぞれ実行される。
ステップS51において、判定部35は、自ノードの状態が「2」であるか否をチェックする。ノード装置の状態が「2」でなければ、判定部35の処理はステップS52に移行する。一方、ノード装置の状態が「2」であれば、ステップS52〜S58はスキップされ、判定部35の処理はステップS71に移行する。すなわち、ノード装置の状態が既に「迂回経路なし」と判定されているときは、ステップS52〜S58は実行されない。
ステップS52において、判定部35は、状態管理テーブル23に登録されているすべての特定隣接ノードの状態が「2」であるか否かをチェックする。そして、すべての特定隣接ノードの状態が「2」であれば、判定部35の処理はステップS55に移行する。一方、状態が「2」でない特定隣接ノードが存在するときは、判定部35の処理はステップS53に移行する。
ステップS53において、判定部35は、迂回経路探索に係わるグローバル宛先に対応する最上流フラグが「1」であるか否かをチェックする。すなわち、判定部35は、自ノードがグローバル宛先GDに対して最上流ノードか否かをチェックする。ここで、最上流フラグは、最上流フラグ格納部25に格納されている。そして、最上流フラグが「1」であれば、判定部35の処理はステップS54に移行する。一方、最上流フラグが「1」でなければ、判定部35の処理はステップS62に移行する。
ステップS54において、判定部35は、状態管理テーブル23に登録されているすべての隣接ノードの状態が「1」であるか否かをチェックする。そして、すべての隣接ノードの状態が「1」であれば、判定部35の処理はステップS55に移行する。一方、状態が「1」でない隣接ノードが存在するときは、判定部35の処理はステップS62に移行する。
ステップS55において、判定部35は、自ノードの状態を「2:迂回経路なし」に更新する。すなわち、最上流ノードにおいては、判定部35は、状態管理テーブル23に登録されているすべての隣接ノードの状態が「1」であれば、自ノードの状態を「2」に更新する。これに対して、最上流ノード以外のノードにおいては、判定部35は、状態管理テーブル23に登録されているすべての特定隣接ノードの状態が「2」であれば、自ノードの状態を「2」に更新する。
ステップS56において、判定部35は、ボトルネック判定フラグが「2」であるか否かをチェックする。そして、ボトルネック判定フラグが「2」であれば、判定部35は、ステップS57において、ボトルネック判定フラグを「2」から「3:ボトルネック確定」に更新する。すなわち、判定部35は、自ノードがボトルネックであると判定する。さらに、判定部35は、ステップS58において、グローバル宛先へのデータ送信において迂回経路が存在しないことをそのグローバル宛先(ここでは、ノードGW)へ通知する。このように、ボトルネック候補であるノード装置は、自ノードがボトルネックであると判定すると、迂回経路が存在しない旨をグローバル宛先ノードに通知する。
ステップS61は、ステップS45においてHelloパケットを受信していないときに実行される。判定部35は、ステップS61において、自ノードの状態が「2」であるか否をチェックする。ノード装置の状態が「2」でなければ、判定部35の処理はステップS62に移行する。ノード装置の状態が「2」であれば、ステップS62〜S66はスキップされ、判定部35の処理はステップS71に移行する。すなわち、ノード装置の状態が既に「迂回経路なし」と判定されているときは、ステップS62〜S66は実行されない。
ステップS62において、判定部35は、自ノードの状態が「1」であるか否をチェックする。ノード装置の状態が「1」でなければ、判定部35の処理はステップS63に移行する。ノード装置の状態が「1」であれば、ステップS63〜S66はスキップされ、判定部35の処理はステップS71に移行する。なお、ステップS62は、ステップS53またはS54において「No」と判定されたときにも実行される。
ステップS63において、判定部35は、探索情報保持時間が経過したか否かをチェックする。探索情報保持時間は、ステップS46において起動されたタイマによりカウントされる。すなわち、判定部35は、「STAT=0」または「STAT=3」を含むHelloパケットを受信したときから探索情報保持時間が経過したか否かをチェックする。そして、探索情報保持時間が経過していれば、判定部35の処理はステップS64に移行する。一方、探索情報保持時間が経過していなければ、判定部35の処理はステップS71に移行する。
ステップS64において、判定部35は、自ノードの状態が「0」であるか否をチェックする。ノード装置の状態が「0」でないときは、判定部35の処理はステップS65に移行する。一方、ノード装置の状態が「0」であれば、判定部35の処理はステップS66に移行する。
ステップS65において、判定部35は、自ノードの状態を「0:初期状態」に更新する。ここで、ステップS65は、ステップS61、S62、S64において「No」と判定されたときに実行される。すなわち、ステップS65は、自ノードの状態が「3:迂回経路あり」のときに実行される。換言すれば、判定部35は、迂回経路が存在すると判定した後、探索情報保持時間が経過すると、自ノードの状態を初期化する。
ステップS66において、判定部35は、状態管理テーブル23から、探索対象のグローバル宛先に対応する探索情報を削除する。すなわち、判定部35は、自ノードの状態が「0:初期状態」のときに実行される。換言すれば、判定部35は、自ノードの状態を初期化した後、探索情報保持時間が経過すると、状態管理テーブル23から探索情報を削除する。
このように、判定部35は、ステップS51〜S58、S61〜S66において、受信したHelloパケットの内容に基づいて状態管理テーブル23を更新する。そして、ボトルネック候補ノードの判定部35は、自ノードがボトルネックであるのか否かを判定する。
ステップS71において、判定部35は、現在時刻がHelloパケットの送信タイミングか否かをチェックする。ここで、ノード装置は、Helloパケットを定期的に隣接ノードへ送信するために、例えば、パケット生成部33およびパケット送信部34に送信タイミングを通知するためのタイマを備えている。この場合、ステップS72において、Helloパケットの送信タイミングが通知されると、パケット送信部33はHelloパケットを生成し、パケット送信部34はそのHelloパケットを隣接ノードへ送信する。このとき、Helloパケットの「探索対象ノード」「ノード状態」には、状態管理テーブル23に格納されている「探索対象ノード」「状態(STAT)」がそれぞれ書き込まれる。また、状態管理テーブル23に複数のグローバル宛先および/または複数の探索対象ノードが登録されているときは、複数セットの探索情報がHelloパケットに付加される。なお、現在時刻がHelloパケットの送信タイミングでなければ、ステップS72はスキップされる。
なお、ステップS66において状態管理テーブル23から探索情報が削除された後は、パケット送信部33は、ステップS72において、「探索対象ノード」「ノード状態」が付与されていないHelloパケットを生成する。ただし、パケット生成部33は、状態管理テーブル23から探索情報が削除された後であっても、「探索対象ノード」「ノード状態」が付与されていないHelloパケットを生成してもよい。この場合、パケット送信部33は、例えば、情報が無いことを表す値(例えば、すべてゼロ)を「探索対象ノード」「ノード状態」に書き込むようにしてもよい。
ステップS73において、判定部35は、グローバル宛先ノード(ここでは、ノードGW)から「迂回経路あり」を表す情報を受信したか否かをチェックする。なお、グローバル宛先ノードは、「STAT=1」を含むHelloパケットを受信すると、「迂回経路あり」を表す情報を探索対象ノードへ送信する。例えば、図22に示す例では、ノード装置GWは、Helloパケット「X、1」を受信すると、「迂回経路あり」を表す情報をノードXへ送信している。
判定部35は、「迂回経路あり」を表す情報を受信すると、ステップS74において、自ノードの状態を「3:迂回経路あり」に更新する。つづいて、判定部35は、ステップS75において、ボトルネック判定フラグを「0:非ボトルネック」に更新する。なお、「迂回経路あり」を表す情報を受信していなければ、判定部35は、ステップS74〜S75の処理をスキップする。
ボトルネック判定フラグが「3:ボトルネック確定」であれば、ステップS41〜S43において「No」と判定される。この場合、判定部35の処理はステップS58に移行する。そして、判定部35は、ステップS58において、「迂回経路なし」を表す情報をグローバル宛先(ここでは、ノードGW)へ通知する。
ボトルネック判定フラグが「1:単独の孤立」である場合の判定部35の動作は、基本的に、ボトルネック判定フラグが「3」である場合と同じである。ただし、ボトルネック判定フラグが「1」であるときは、判定部35は、ステップS47において、自ノードの状態を「3」に更新する。
次に、図16〜図23に示す実施例を参照しながら、図27〜図29のフローチャートの手順を説明する。
(A)図16に示すノード装置Xの動作
ノードXのボトルネック判定フラグは、「2:ボトルネック候補」である。よって、ステップS42において「Yes」と判定され、判定部35は、ステップS44において、ノードXの状態を「1:探索中」に更新する。ここで、ノードXは、Helloパケットを受信していないものとする。そうすると、ステップS62において「Yes」と判定され、ノード装置Xは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「1」が設定される。すなわち、ノード装置Xは、Helloパケット「X、1」を隣接ノードに送信する。
ノードXのボトルネック判定フラグは、「2:ボトルネック候補」である。よって、ステップS42において「Yes」と判定され、判定部35は、ステップS44において、ノードXの状態を「1:探索中」に更新する。ここで、ノードXは、Helloパケットを受信していないものとする。そうすると、ステップS62において「Yes」と判定され、ノード装置Xは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「1」が設定される。すなわち、ノード装置Xは、Helloパケット「X、1」を隣接ノードに送信する。
(B)図17〜図18に示すノード装置Aの動作
ノードAのボトルネック判定フラグは、「0:非ボトルネック」である。そして、ノード装置Aは、ノードXからHelloパケット「X、1」を受信する。そうすると、判定部35は、ステップS46において状態管理テーブル23Aを更新する。具体的には、判定部35は、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードAの状態を「1」に更新する。この後、ステップS51、S52、S53において「No」と判定され、ステップS62において「Yes」と判定される。したがって、ノード装置Aも、ノード装置Xと同様に、ステップS72において、Helloパケット「X、1」を隣接ノードに送信する。なお、ノードXからHelloパケット「X、1」を受信したノード装置B、Cの動作は、ノード装置Aと実質的に同じである。
ノードAのボトルネック判定フラグは、「0:非ボトルネック」である。そして、ノード装置Aは、ノードXからHelloパケット「X、1」を受信する。そうすると、判定部35は、ステップS46において状態管理テーブル23Aを更新する。具体的には、判定部35は、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードAの状態を「1」に更新する。この後、ステップS51、S52、S53において「No」と判定され、ステップS62において「Yes」と判定される。したがって、ノード装置Aも、ノード装置Xと同様に、ステップS72において、Helloパケット「X、1」を隣接ノードに送信する。なお、ノードXからHelloパケット「X、1」を受信したノード装置B、Cの動作は、ノード装置Aと実質的に同じである。
(C)図19〜図20に示すノード装置Dの動作
ノードDのボトルネック判定フラグは、「0:非ボトルネック」である。また、ノードDは、最上流ノードである。そして、ノード装置Dは、ノードAおよびノードBからそれぞれHelloパケット「X、1」を受信する。そうすると、ノードDの判定部35は、ステップS46において状態管理テーブル23Dを更新する。具体的には、判定部35は、状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「1」に更新すると共に、ノードAおよび状態Bの状態も「1」に更新する。
ノードDのボトルネック判定フラグは、「0:非ボトルネック」である。また、ノードDは、最上流ノードである。そして、ノード装置Dは、ノードAおよびノードBからそれぞれHelloパケット「X、1」を受信する。そうすると、ノードDの判定部35は、ステップS46において状態管理テーブル23Dを更新する。具体的には、判定部35は、状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「1」に更新すると共に、ノードAおよび状態Bの状態も「1」に更新する。
この後、ステップS51、S52において「No」と判定され、ステップS53において「Yes」と判定されるので、判定部35の処理はステップS54に移行する。このとき、ノードDの状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードA、Bの状態はいずれも「1」である。したがって、ステップS54は「Yes」と判定される。
続いて、ノード装置Dの判定部35は、ステップS55において、状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「2」に更新する。そして、ノード装置Dは、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「2」が設定される。即ち、ノード装置Dは、Helloパケット「X、2」を隣接ノードに送信する。なお、ノードB、CからそれぞれHelloパケット「X、1」を受信したノード装置Eの動作は、ノード装置Dと実質的に同じである。また、ノードX、B、EからそれぞれHelloパケット「X、1」を受信したノード装置Cの動作も、ノード装置Dと実質的に同じである。
(D)図21に示すノード装置Aの動作
ノード装置Aは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードAを最適なローカル宛先として選択するノードは、図14に示すように、ノードDのみである。よって、ノードAの状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードDのみが登録されている。
ノード装置Aは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードAを最適なローカル宛先として選択するノードは、図14に示すように、ノードDのみである。よって、ノードAの状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードDのみが登録されている。
ノード装置AがノードDからHelloパケット「X、2」を受信すると、判定部35は、ステップS46において状態管理テーブル23Aを更新する。具体的には、判定部35は、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「2」に更新する。このとき、ノードAの状態は、未だ「1」である。したがって、ステップS51において「No」と判定され、ステップS52が実行される。
ノードAの判定部35は、ステップS52において、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリをサーチする。このとき、ノードAにとっての特定隣接ノードであるノードDの状態は「2」なので、判定部35の処理はステップS55へ移行する。そして、判定部35は、ステップS55において、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードAの状態を「2」に更新する。
ステップS56において、ノードAの判定部35は、ボトルネック判定フラグをチェックする。ここで、ノードAのボトルネック判定フラグは、上述したように「0」である。よって、ステップS56において「No」と判定され、ステップS57〜S58はスキップされる。
この後、ノード装置Aは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「2」が設定される。すなわち、ノード装置Aは、Helloパケット「X、2」を隣接ノードに送信する。なお、ノードEからHelloパケット「X、2」を受信したノード装置Bの動作は、ノード装置Aと実質的に同じである。
(E)図21に示すノード装置Xの動作
ノード装置Xは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードXを最適なローカル宛先として選択するノードは、図14に示すように、ノードA、B、Cである。したがって、ノードXの状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードA、B、Cが登録されている。
ノード装置Xは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードXを最適なローカル宛先として選択するノードは、図14に示すように、ノードA、B、Cである。したがって、ノードXの状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードA、B、Cが登録されている。
ノード装置XがノードA、B、CからそれぞれHelloパケット「X、2」を受信すると、判定部35は、ステップS46において状態管理テーブル23Xを更新する。具体的には、判定部35は、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードA、B、Cの状態をそれぞれ「2」に更新する。このとき、ノードXの状態は、未だ「1」である。したがって、ステップS51において「No」と判定され、ステップS52が実行される。
ノードXの判定部35は、ステップS52において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリをサーチする。このとき、ノードA、B、Cの状態はいずれも「2」なので、判定部35の処理はステップS55へ移行する。そして、判定部35は、ステップS55において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードXの状態を「2」に更新する。
ステップS56において、ノードXの判定部35は、ボトルネック判定フラグをチェックする。ここで、ノードXのボトルネック判定フラグは、上述したように「2:ボトルネック候補」である。よって、ステップS56において「Yes」と判定され、ステップS57〜S58が実行される。
ノードXの判定部35は、ステップS57において、ボトルネック判定フラグを「3:ボトルネック確定」に更新する。すなわち、ノードXの判定部35は、ノードXをボトルネックであると判定する。そうすると、判定部35は、ステップS58において、ノードGWへのデータ送信において迂回経路が存在しないことを表す情報をノードGWへ通知する。
(F)図22〜図23に示すノード装置Xの動作
ゲートウェイ装置(ノードGW)は、図22に示すように、Helloパケット「X、1」を受信すると、ノードXとゲートウェイ装置との間に迂回経路が存在と判定する。そうすると、ゲートウェイ装置は、「迂回経路あり」を表す情報をノードXに通知する。
ゲートウェイ装置(ノードGW)は、図22に示すように、Helloパケット「X、1」を受信すると、ノードXとゲートウェイ装置との間に迂回経路が存在と判定する。そうすると、ゲートウェイ装置は、「迂回経路あり」を表す情報をノードXに通知する。
ノード装置Xは、ゲートウェイ装置(ノードGW)から「迂回経路あり」を表す情報を受信する。この場合、ステップS73において「Yes」と判定され、ノードXの判定部35は、ステップS74〜S75を実行する。すなわち、判定部35は、ステップS74において、ノードXの状態を「3:迂回経路あり」に更新する。また、判定部35は、ステップS75において、ボトルネック判定フラグを「0:非ボトルネック」に更新する。さらに、判定部35は、特に図示しないが、探索情報保持時間をカウントするためのタイマを起動する。
この後、判定部35は、探索情報保持時間が経過するまで、ステップS41〜S75の処理を繰り返し実行する。このとき、ノードXの状態は「3」なので、ノード装置Xは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「3」が設定される。すなわち、ノード装置Xは、Helloパケット「X、3」を隣接ノードに送信する。
探索情報保持時間が経過すると(ステップS63:Yes)、ノードXの判定部35は、ステップS65において、ノードXの状態を「0:初期状態」に更新する。その後、判定部35は、ステップS66において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリの情報を削除する。
(G)図22〜図23に示すノード装置Aの動作
ノード装置AがノードXからHelloパケット「X、3」を受信すると、ノードAの判定部35は、ステップS46において、ノードAの状態を「3」に更新すると共に、探索情報保持時間をカウントするためのタイマを起動する。ノード装置Aの以降の動作は、上記(F)で説明したノード装置Xの動作と実質的に同じである。すなわち、ノード装置Aは、Helloパケット「X、3」を隣接ノードに送信する。その後、所定時間が経過すると、判定部35は、状態管理テーブル23Aからが対応する探索情報を削除する。Helloパケット「X、3」を受信したときの各ノード装置の動作は、ノード装置Aと実質的に同じである。
ノード装置AがノードXからHelloパケット「X、3」を受信すると、ノードAの判定部35は、ステップS46において、ノードAの状態を「3」に更新すると共に、探索情報保持時間をカウントするためのタイマを起動する。ノード装置Aの以降の動作は、上記(F)で説明したノード装置Xの動作と実質的に同じである。すなわち、ノード装置Aは、Helloパケット「X、3」を隣接ノードに送信する。その後、所定時間が経過すると、判定部35は、状態管理テーブル23Aからが対応する探索情報を削除する。Helloパケット「X、3」を受信したときの各ノード装置の動作は、ノード装置Aと実質的に同じである。
このように、実施形態の迂回経路探索方法においては、特定のノード(実施例では、ボトルネック候補ノード)から送信される探索データ(実施例では、Helloパケット「X、1」)が、最終宛先にまで伝搬するか否かを調査する。このため、特定のノードを経由せずに最終宛先ノードへデータを送信できるか否か、すなわち迂回経路が存在するか否か、を精度よく判定することができる。
また、実施形態の迂回経路探索方法においては、アドホックネットワーク内の全ノードについてボトルネック判定を行うのではなく、一部のノード(すなわち、ボトルネック候補)についてのみボトルネック判定が実行される。したがって、ノード数が多いネットワークであっても、ボトルネックを発見するために要する時間は短い。この結果、ノード間のリンクの状態が不安定な無線ネットワークにおいても、ボトルネックノードを精度よく検出することができる。
<他の実施形態>
図9に示すフローチャートにおいては、迂回経路探索方法は、ボトルネック候補を発見する手順、およびボトルネック候補を対象として迂回経路探索を実行する手順を含む。しかし、発明に係る迂回経路探索方法は、このフローチャートに限定されるものではない。例えば、ノード装置は、図24〜図25に示すフローチャートにおいて、自ノードがボトルネック候補であるときに、グローバル宛先へのデータ送信において迂回経路が存在しないと判定してもよい。
図9に示すフローチャートにおいては、迂回経路探索方法は、ボトルネック候補を発見する手順、およびボトルネック候補を対象として迂回経路探索を実行する手順を含む。しかし、発明に係る迂回経路探索方法は、このフローチャートに限定されるものではない。例えば、ノード装置は、図24〜図25に示すフローチャートにおいて、自ノードがボトルネック候補であるときに、グローバル宛先へのデータ送信において迂回経路が存在しないと判定してもよい。
Claims (12)
- 複数の無線通信装置を備える無線ネットワークにおいて使用される無線通信装置であって、
前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、
前記最終宛先装置への経路探索を表す情報を含む探索データを生成する生成部と、
前記探索データを前記隣接装置にブロードキャストする送信部と、
前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、前記記憶部に識別情報が記憶されているすべての特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、
を備える無線通信装置。 - 請求項1に記載の無線通信装置であって、
最終宛先装置へのデータ送信において自装置が送信先隣接装置として選択する隣接装置以外のすべての隣接装置が前記特定隣接装置であるときに、前記送信部は、前記探索データを隣接装置にブロードキャストする
ことを特徴とする無線通信装置。 - 請求項1または2に記載の無線通信装置であって、
前記最終宛先装置へデータを送信するための経路情報を含む通知データを一定周期で隣接装置へブロードキャストする手段を更に備え、
前記送信部は、前記通知データに前記探索データを付加することで前記隣接装置へ前記探索データをブロードキャストする
ことを特徴とする無線通信装置。 - 請求項1〜3のいずれか1つに記載の無線通信装置であって、
前記探索データが前記最終宛先装置に到達したことを表す通知を前記最終宛先装置から受信すると、前記判定部は、前記特定隣接装置から前記最終宛先装置への迂回経路が存在すると判定する
ことを特徴とする無線通信装置。 - 請求項1〜4のいずれか1つに記載の無線通信装置であって、
前記送信部は、前記判定部による判定結果を表すデータを前記隣接装置にブロードキャストする
ことを特徴とする無線通信装置。 - 請求項1〜5のいずれか1つに記載の無線通信装置であって、
前記最終宛先装置への経路探索を表す情報を含む探索データを前記隣接装置から受信したときに、前記記憶部に特定隣接装置を識別する識別情報が記憶されていなければ、前記送信部は、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを前記隣接装置にブロードキャストする
ことを特徴とする無線通信装置。 - 請求項1〜5のいずれか1つに記載の無線通信装置であって、
前記最終宛先装置への経路探索を表す情報を含む探索データを前記隣接装置から受信したときに、前記探索データを生成した無線通信装置が前記特定隣接装置である場合には、前記送信部は前記探索データをブロードキャストしない
ことを特徴とする無線通信装置。 - 複数の無線通信装置を備える無線ネットワークにおいて使用される無線通信装置であって、
前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、
前記最終宛先装置へのデータ送信において自装置が送信先隣接装置として選択する隣接装置以外のすべての隣接装置が前記特定隣接装置であるときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、
を備える無線通信装置。 - 複数の無線通信装置を備える無線ネットワークにおいて無線通信装置により使用される迂回経路探索方法であって、
前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出し、
前記最終宛先装置への経路探索を表す情報を含む探索データを生成し、
前記探索データを前記隣接装置にブロードキャストし、
前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、すべての前記特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する、
ことを特徴とする迂回経路探索方法。 - 複数の無線通信装置を備える無線ネットワークにおいて使用される迂回経路探索方法であって、
探索対象無線通信装置において、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出し、
前記探索対象無線通信装置において、前記最終宛先装置への経路探索を表す情報を含む探索データを生成し、
前記探索対象無線通信装置から前記探索対象無線通信装置の隣接装置へ前記探索データをブロードキャストし、
前記探索データを受信した各無線通信装置は、それぞれ前記探索データを隣接装置にブロードキャストし、
前記最終宛先装置に対する最上流装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含む応答データを隣接装置にブロードキャストし、
前記応答データを受信した各無線通信装置は、それぞれ前記応答データを隣接装置にブロードキャストし、
前記探索対象無線通信装置は、すべての前記特定隣接装置から前記応答データを受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する
ことを特徴とする迂回経路探索方法。 - 請求項10に記載の迂回経路探索方法であって、
前記最終宛先装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置に到達したことを表す通知を前記探索対象無線通信装置へ送信し、
前記探索対象無線通信装置は、前記最終宛先装置から前記通知を受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在すると判定する
ことを特徴とする迂回経路探索方法。 - 請求項11に記載の迂回経路探索方法であって、
前記探索対象無線通信装置は、迂回経路が存在することを表す情報を隣接装置へブロードキャストし、
前記探索対象無線通信装置以外の各無線通信装置は、迂回経路が存在することを表す情報を受信したときから所定時間経過した後は、前記探索データを送信しない
ことを特徴とする迂回経路探索方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/071296 WO2012073315A1 (ja) | 2010-11-29 | 2010-11-29 | 無線通信装置および無線ネットワークにおける迂回経路探索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5376068B2 true JP5376068B2 (ja) | 2013-12-25 |
JPWO2012073315A1 JPWO2012073315A1 (ja) | 2014-05-19 |
Family
ID=46171303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012546597A Active JP5376068B2 (ja) | 2010-11-29 | 2010-11-29 | 無線通信装置および無線ネットワークにおける迂回経路探索方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9485676B2 (ja) |
JP (1) | JP5376068B2 (ja) |
WO (1) | WO2012073315A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011045859A1 (ja) * | 2009-10-15 | 2011-04-21 | 富士通株式会社 | 無線通信装置および無線通信プログラム |
US9762434B2 (en) * | 2011-08-12 | 2017-09-12 | Rambus Inc. | Temporal redundancy |
WO2013133185A1 (ja) * | 2012-03-05 | 2013-09-12 | 富士通株式会社 | 通信システム、及び通信方法 |
WO2014049762A1 (ja) * | 2012-09-26 | 2014-04-03 | 富士通株式会社 | 通信装置、通信システム及び通信方法 |
GB201306891D0 (en) * | 2013-04-16 | 2013-05-29 | Truphone Ltd | International converged mobile services |
US10229395B2 (en) | 2015-06-25 | 2019-03-12 | Bank Of America Corporation | Predictive determination and resolution of a value of indicia located in a negotiable instrument electronic image |
US10049350B2 (en) | 2015-06-25 | 2018-08-14 | Bank Of America Corporation | Element level presentation of elements of a payment instrument for exceptions processing |
US10115081B2 (en) * | 2015-06-25 | 2018-10-30 | Bank Of America Corporation | Monitoring module usage in a data processing system |
US10373128B2 (en) | 2015-06-25 | 2019-08-06 | Bank Of America Corporation | Dynamic resource management associated with payment instrument exceptions processing |
JP2017163367A (ja) * | 2016-03-10 | 2017-09-14 | パナソニックIpマネジメント株式会社 | マルチホップ通信システム、コントローラ及びプログラム |
US10116523B1 (en) * | 2017-04-12 | 2018-10-30 | Fisher-Rosemount Systems, Inc. | Predictive connectivity diagnostics for a wireless mesh network in a process control system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007135136A (ja) * | 2005-11-14 | 2007-05-31 | Advanced Telecommunication Research Institute International | 無線装置およびそれを備えた無線ネットワークシステム |
JP2007159099A (ja) * | 2005-10-04 | 2007-06-21 | Ntt Docomo Inc | 複数のサービスノードへのディスジョイントなルートを発見する方法および装置 |
JP2008245193A (ja) * | 2007-03-29 | 2008-10-09 | Mitsubishi Electric Corp | 通信経路設定装置、通信端末、マルチホップネットワークシステム |
WO2009028185A1 (ja) * | 2007-08-28 | 2009-03-05 | Panasonic Corporation | ネットワーク制御装置、方法、及びプログラム |
JP2009206872A (ja) * | 2008-02-28 | 2009-09-10 | Mitsubishi Electric Corp | 通信システム |
WO2010084775A1 (ja) * | 2009-01-26 | 2010-07-29 | パナソニック株式会社 | 中継装置、制御方法、およびプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2836314A1 (fr) * | 2002-02-21 | 2003-08-22 | France Telecom | Methode dynamique et distribuee de protection locale d'un chemin a commutation d'etiquettes |
US7583593B2 (en) * | 2004-12-01 | 2009-09-01 | Cisco Technology, Inc. | System and methods for detecting network failure |
JP2009147646A (ja) | 2007-12-13 | 2009-07-02 | Sony Corp | 無線通信装置、通信状態通知方法、無線通信システム、およびプログラム |
-
2010
- 2010-11-29 WO PCT/JP2010/071296 patent/WO2012073315A1/ja active Application Filing
- 2010-11-29 JP JP2012546597A patent/JP5376068B2/ja active Active
-
2013
- 2013-04-18 US US13/865,537 patent/US9485676B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007159099A (ja) * | 2005-10-04 | 2007-06-21 | Ntt Docomo Inc | 複数のサービスノードへのディスジョイントなルートを発見する方法および装置 |
JP2007135136A (ja) * | 2005-11-14 | 2007-05-31 | Advanced Telecommunication Research Institute International | 無線装置およびそれを備えた無線ネットワークシステム |
JP2008245193A (ja) * | 2007-03-29 | 2008-10-09 | Mitsubishi Electric Corp | 通信経路設定装置、通信端末、マルチホップネットワークシステム |
WO2009028185A1 (ja) * | 2007-08-28 | 2009-03-05 | Panasonic Corporation | ネットワーク制御装置、方法、及びプログラム |
JP2009206872A (ja) * | 2008-02-28 | 2009-09-10 | Mitsubishi Electric Corp | 通信システム |
WO2010084775A1 (ja) * | 2009-01-26 | 2010-07-29 | パナソニック株式会社 | 中継装置、制御方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US9485676B2 (en) | 2016-11-01 |
US20130229911A1 (en) | 2013-09-05 |
WO2012073315A1 (ja) | 2012-06-07 |
JPWO2012073315A1 (ja) | 2014-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5376068B2 (ja) | 無線通信装置および無線ネットワークにおける迂回経路探索方法 | |
CN102202371B (zh) | 无线通信系统以及节点 | |
US7760718B2 (en) | Taxonomy based multiple ant colony optimization approach for routing in mobile ad hoc networks | |
CN101102268B (zh) | Ip环网,ip环网路由设备,及报文转发方法 | |
KR101212838B1 (ko) | 노드 장치, 노드 장치가 실행하는 방법 및 컴퓨터 판독가능한 기록 매체 | |
JP5720793B2 (ja) | データ転送方法およびそれを用いるノード装置 | |
JP5533168B2 (ja) | ノード及び無線通信システム | |
JP5958293B2 (ja) | 通信方法、通信プログラム、および、ノード装置 | |
JP5464278B2 (ja) | 無線通信装置および無線ネットワークにおける経路決定方法 | |
JP5716836B2 (ja) | 無線マルチホップネットワークの監視方法 | |
JP4507083B2 (ja) | 分散型ネットワークの情報集約方式 | |
JP5317895B2 (ja) | 通信端末、情報伝送システムおよび伝送ルート決定方法 | |
JP5287373B2 (ja) | 通信装置及び通信処理方法 | |
JP2020014236A (ja) | 無線通信装置、無線通信システム、無線通信方法およびプログラム | |
Li et al. | A real-time routing protocol for (m, k)-firm streams in wireless sensor networks | |
Sankar et al. | A cross layer design for route maintenance in dense MANETs | |
JP4311325B2 (ja) | ネットワークシステムおよびノードおよび利己的なノードの検出方法 | |
JP2005333238A (ja) | 経路管理装置 | |
JP2016152592A (ja) | 経路情報収集プログラム、経路情報収集方法、及びノード装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5376068 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |