JP2015097347A - ノード装置、制御プログラム、及びノード装置の動作方法 - Google Patents

ノード装置、制御プログラム、及びノード装置の動作方法 Download PDF

Info

Publication number
JP2015097347A
JP2015097347A JP2013237089A JP2013237089A JP2015097347A JP 2015097347 A JP2015097347 A JP 2015097347A JP 2013237089 A JP2013237089 A JP 2013237089A JP 2013237089 A JP2013237089 A JP 2013237089A JP 2015097347 A JP2015097347 A JP 2015097347A
Authority
JP
Japan
Prior art keywords
node
node device
data frame
destination
frame
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.)
Granted
Application number
JP2013237089A
Other languages
English (en)
Other versions
JP6191411B2 (ja
Inventor
恭弘 黒木
Takahiro Kuroki
恭弘 黒木
光治 天野
Mitsuharu Amano
光治 天野
弥生 野村
Yayoi Nomura
弥生 野村
隆幸 岡増
Takayuki Okamasu
隆幸 岡増
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013237089A priority Critical patent/JP6191411B2/ja
Priority to US14/496,805 priority patent/US9590891B2/en
Publication of JP2015097347A publication Critical patent/JP2015097347A/ja
Application granted granted Critical
Publication of JP6191411B2 publication Critical patent/JP6191411B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/12Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/246Connectivity information discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Bidirectional Digital Transmission (AREA)

Abstract

【課題】ノード装置の死活状況に応じて、アドホックネットワーク上のデータフレームのルーティングを制御する技術を提供する。【解決手段】隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置は、いずれかのノード装置が異常状態か否かを示すノード死活情報を記憶する記憶部と、データフレームを受信し、記憶部に記憶されたノード死活情報に基づいて、データフレームから取得した送信先のノード装置の死活状態の判定を行い、判定の結果に応じて、データフレームから取得した送信先のノード装置及びデータフレームから取得した送信元のノード装置から、データフレームの宛先を決定する決定部と、決定した宛先が設定された前記データフレームを送信する送信部と、を含むことにより、上記課題の解決を図る。【選択図】図15

Description

本発明は隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置に関する。
アドホック通信技術とは、アクセスポイントを介さずに機器同士が直接通信を行う通信技術をいう。近年、アドホック通信技術を適用した各通信機器が周囲の通信機器を認識して、無線アドホックネットワーク技術が注目されている。
アドホックネットワークのルーティングプロトコル(アドホックプロトコル)の一例として、リアクティブ型のAODV(Adhoc On Demand Distance Vector Algorithm)やプロアクティブ型のOLSR(Optimized Link State Routing)が挙げられる。プロアクティブ型ルーティングプロトコルの一例としては、通信要求に先立って、予め各ノードが自律的にデータ通信を行うための経路(ルート)を構築し、更に、最適な経路を随時学習し、経路変更するプロトコルがある。
アドホックネットワークに関する技術の一例として、複数のネットワーク・ノードから成る複数ホップの無線通信ネットワークにおいて、ルーティングを行うシステムに関する第1の技術がある(例えば、特許文献1)。このシステムは、インフラ・ノード間のリンク状態を示す品質情報を取得する手段、予測手順を用いるインフラ・ノード内の経路決定プロセスにおいてリンク品質情報を用いる手段、決定された経路に従ってデータパケットを送るルーティング手段からなる。リンク品質情報は、リンク状態の時間的に変化する情報についての情報を含んでいる。予測手順は、予測手順の中でリンク状態の時間的に変化する情報を使用する。
また、ネットワークシステムでの通信障害経路回避技術の一例として、経路選択装置からの送出パケットを抑制する第2の技術がある(例えば、特許文献2。)。第2の技術では、特定ルート障害発生を検出した隣接経路選択装置からの宛先到達不能報告(ICMPメッセージ)を受信した場合に、隣接経路選択装置が次の処理を行う。すなわち、隣接経路選択装置は、ルーティング宛先隣接経路選択装置を切り替えると共に、ネットワーク負荷に対応したリンク状態のデータベース更新を行い、現隣接経路選択装置でのトラヒック情報具合いに応じて送信するIPパケットを抑制する。
特表2007−529135号公報 特開2002−9820号公報
アドホックネットワークにおいて、データフレームの送信先のノード装置が故障した場合、その故障したノードに隣接するノード間でデータフレームがループし、そのようにループしたデータフレームは、それを検出したノードにより異常なフレームとして廃棄されてしまうおそれがある。
本発明は、一側面として、ノード装置の死活状況に応じて、アドホックネットワーク上のデータフレームのルーティングを制御する技術を提供する。
隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置は、記憶部、決定部、送信部を含む。記憶部は、いずれかのノード装置が異常状態か否かを示すノード死活情報を記憶する。決定部は、データフレームを受信し、記憶部に記憶されたノード死活情報に基づいて、データフレームから取得した送信先のノード装置の死活状態の判定を行い、判定の結果に応じて、データフレームから取得した送信先のノード装置及びデータフレームから取得した送信元のノード装置から、データフレームの宛先を決定する。送信部は、決定した宛先が設定されたデータフレームを送信する。
本発明によれば、一側面として、ノード装置の死活状況に応じて、アドホックネットワーク上のデータフレームのルーティングを制御することができる。
メッシュ状のアドホックネットワーク構成の一例を示す。 図1に示すノード(Y)が最終宛先であるゲートウェイ(GW)までの経路をHELLOメッセージの伝搬により構築する例を説明するための図である。 死活監視にて異常が検出された場合のアドホックネットワークの混乱状態を説明するための図である。 本実施形態におけるノード装置の一例を示す。 本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図(その1)である。 本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図(その2)である。 本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図(その3)である。 本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図(その4)である。 本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図(その5)である。 本実施形態における死活監視異常フラグがONであるHELLOメッセージフレームが伝達される前に、死活監視異常状態にあるノードへ送信されたデータフレームのルーティングを説明するための図(その1)である。 本実施形態における死活監視異常フラグがONであるHELLOメッセージフレームが伝達される前に、死活監視異常状態にあるノードへ送信されたデータフレームのルーティングを説明するための図(その2)である。 本実施形態における死活監視異常フラグがONであるHELLOメッセージフレームが伝達される前に、死活監視異常状態にあるノードへ送信されたデータフレームのルーティングを説明するための図(その3)である。 本実施形態における、ノードXについての死活監視異常情報をクリアにする要求をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図である。 本実施形態におけるノードのハードウェア構成例である。 本実施形態におけるフレーム送受信に関するノードの機能ブロック図の一例である。 本実施形態(実施例1)における死活監視異常の通知の伝播手順を説明するための図(その1)である。 本実施形態(実施例1)における死活監視異常の通知の伝播手順を説明するための図(その2)である。 本実施形態(実施例1)における死活監視異常の通知の伝播手順を説明するための図(その3)である。 本実施形態(実施例1)における死活監視異常の通知の伝播手順を説明するための図(その4)である。 本実施形態(実施例2)における、正常にアドホックネットワークが構築されている状態で、ノードFからノードXへデータが送信された場合のデータの流れを説明するための図である。 本実施形態(実施例2)における、ノードAがノードXの死活監視異常を検出し、その異常検出がノードCとノードFに通知されていない状態で、ノードFからノードX宛のデータフレームが送信された場合のデータフレームの流れを説明するための図である。 本実施形態(実施例3)における、アドホックネットワーク内の全ノードに、ノードXの死活監視異常解除が通知されることを説明するための図(その1)である。 本実施形態(実施例3)における、アドホックネットワーク内の全ノードに、ノードXの死活監視異常解除が通知されることを説明するための図(その2)である。 本実施形態(実施例3)における、アドホックネットワーク内の全ノードに、ノードXの死活監視異常解除が通知されることを説明するための図(その3)である。 本実施形態(実施例1〜3)におけるノードの全体処理のフローを示す。 本実施形態におけるHELLOメッセージフレーム生成・送信処理(S8)の詳細フローを示す。 本実施形態における死活監視処理(S1)の詳細フローを示す。 本実施形態におけるルーティング処理(S6)の詳細フローを示す。 本実施形態における経路構築処理(S7)の詳細フローを示す。
以下、本実施形態について、図面を参照して詳細に説明する。まず、本明細書での用語について説明をする。
「フレーム」とは、プロトコルが扱うデータ単位のことを指す。「フレーム」には、例えば、「ハローメッセージフレーム」、「データフレーム」が含まれるが、これらに限定はされない。
「ハローメッセージフレーム(HELLOメッセージフレーム)」とは、制御情報を通信するための制御フレームの一種であり、ノード装置が、別のノード装置に対して互いの存在・状態の確認のために送出する特別なフレームのことを指す。なお、HELLOメッセージフレームを単に、HELLOメッセージと称する場合もある。
「データフレーム」とは、ネットワークが(スタートノードからゴールノードへと)伝送しようとするデータのことを指す。なお当然のことながらノード装置は、「ハローフレーム」と「データフレーム」を識別するための適切な手段を有することができる。
「Local Destination(LD)」とは、或るノード装置を主体として観たときに、次にフレームを渡すべき隣接ノード装置を表すあて先ノードIDのことを指す。なお本明細書ではLDのことを、「ローカル宛先アドレス」と称することもある。
「Local Source(LS)」とは、LDへフレームを送るその直接の送り元となるノード装置を表したノードIDのことを指す。なお本明細書ではLSのことを、「ローカル差出アドレス」と称することもある。
「Global Destination(GD)」とは、データフレームのネットワークに跨った一連の伝播に関する最終的なあて先となるノードIDのことを指す。なお本明細書ではGDのことを、「グローバル宛先アドレス」と称することもある。
「Global Source(GS)」とは、データフレームのネットワークに跨った一連の伝播に関する最初の送り元であるノードIDのことを指す。なお本明細書ではGSのことを、「グローバル差出アドレス」と称することもある。
図1は、メッシュ状のアドホックネットワーク構成の一例を示す。レイヤ3(L3)ネットワーク2には、ネットワークサーバ1、L3ネットワークゲートウェイノード装置(GW)が接続されている。GWは、ネットワーク間の接続を中継する装置であり、通信プロトコルの異なるデータを相互に変換し、データを中継する。図1では、例えば、GWは、L3で用いられている通信プロトコルとアドホックプロトコルとを相互に変換して、通信を可能にする。
ノード装置(以下、ノードという)a〜e,Yは、無線アドホック通信技術を搭載した通信端末である。各ノードでは、隣接するノードとの間で経路情報やノード間リンクの通信品質情報等のノード情報を含むメッセージ(HELLOメッセージ)の送受信を定期的に行う。これにより、ノードは、HELLOメッセージの情報に応じて各経路の通信品質を計算し、その計算結果に基づいて、最終宛先までの複数の経路の構築及び最適な経路の確定を行う。
また、各ノードは、構築した経路に関して、実際のデータ通信の実績と隣接ノードとの定期的なメッセージ(HELLOメッセージ)をやり取りする。そして、ノードは、各経路の通信品質を再計算(更新)した結果に基づいて、経路の維持や最適経路の学習をし、随時変更を行っている。
図2は、図1に示すノード(Y)が最終宛先であるゲートウェイ(GW)までの経路をHELLOメッセージの伝搬により構築する例を説明するための図である。
まず、GWは、自分のHELLOメッセージの送信タイミングが到来した場合、自身が保持するノード情報(経路情報/ノード間リンクの通信品質情報)を含むHELLOメッセージをブロードキャスト送信する。隣接するノードa,b,cは、GWからのHELLOメッセージを受信する(図2(A))。
ノードa,b,cは、GWからのHELLOメッセージを受信すると、それぞれ、経路情報テーブル(ルーティングテーブル)にGWを登録する。それと共に、ノードa,b,cは、GWからのHELLOメッセージに含まれた、GWが保持しているノード情報を使用して、経路品質やノード間リンクの通信品質を計算する。ノードa,b,cは、その計算結果を経路情報テーブル(ルーティングテーブル)やリンク情報テーブル(リンクテーブル)に登録する。尚、ノードa,b,cはGWから受信したHELLOメッセージの再ブロードキャスト(フラッディング)を行わない。
次に、例えばノードbの場合、自分のHELLOメッセージの送信タイミングが到来した場合、自身が保持するノード情報を含むHELLOメッセージをブロードキャスト送信する(図2(B))。ノードbのHELLOメッセージには、GWや他のノード情報が含まれる。
ノードYはノードbからのHELLOメッセージを受信して、ノードbを経路情報テーブルに登録する。それと共に、ノードYは、GW宛の経路はノードb経由であること、その経路品質/リンク品質を計算し、その計算結果をルーティングテーブル/リンクテーブルに登録する。
ノードd,eについても、ノードb同様に、それぞれのHELLOメッセージの送信タイミングが到来したら、HELLOメッセージをブロードキャスト送信する。ノードYではGW宛ての経路としてノードb,d,eをそれぞれ次転送候補とする(R1)〜(R3)の複数の経路が構築され、各経路での経路品質/リンク品質情報により、最終宛先(GW)までの最適経路が確定される(図2(C))。
このように、各ノードがHELLOメッセージを交換することによりノード間で経路情報・品質情報が伝搬され、各ノードでは最終宛先までの経路が複数構築される。
上述のように、アドホックネットワークにおいては、通常、経路が複数ある。そのため、仮に、ある経路が途中に存在するノードの異常等により最終宛先までの経路が不通になった場合でも別の経路に切り替えて送信することで、最終宛先までデータを届けることが可能である。
例えば、図2(C)にて、最適な経路としてルート(R1)(Y→b→GW)があったときに、ノードbで異常が発生し、ノードbが転送不可となった場合であっても、ノードYは、次の処理を行う。すなわち、ノードYは、ルート(R2)(Y→d→a→GW)またはルート(R3)(Y→e→c→GW)の経路に切り替えてデータを送信する。これにより、最終宛先であるGWまでデータを届けることが出来る。
更に、ノード間では、定期的にHELLOメッセージを交換し、各ノードが持つ経路情報やノード間のリンク品質情報を交換し、伝搬させる。これにより、各ノードは、ノード間リンクの通信品質再計算(更新)を行い、通信経路の維持や最適経路の学習をし、随時経路情報の変更を行う。また、ノードは、HELLOメッセージ交換により、相手方のノードが正常に動作している(正常状態)か、または動作していない(異常状態)かを判定する死活監視処理を行う。以下では、HELLOメッセージ交換による死活監視の結果、異常と判定されたノードの状態を「死活監視異常」または「死活監視異常状態」という。
ところが、上記方式では、HELLOメッセージ交換による死活監視の結果、異常を検出した場合に、その情報がアドホックネットワーク全体に伝搬する前では、死活監視による異常を検出しているノードと検出していないノードが混在する。この場合には、正常な通信ルートが構築されずに、転送されたフレームが転送途中で異常フレームと判断され廃棄される等により通信失敗となる可能性が高い。
特にネットワークサーバ1へGWを経由してデータ転送するイベント(例えば定期通信など)直前に、そのGWが死活監視異常状態となった場合には、次のことが生じる可能性がある、すなわち、アドホックネットワーク内をデータフレームが右往左往することにより、トラフィックを高め、またサーバまで到達できないこともある。そのため、顕著にシステム全体に悪影響を及ぼすこととなる。これについて、図3を用いて説明する。
図3は、死活監視にて異常が検出された場合のアドホックネットワークの混乱状態を説明するための図である。図3(A)は、ノードA〜F,Xに関するアドホックネットワークの経路例を示す。なお、図3(B)(C)中のルーティングテーブルにおいて、「GD」は、グローバル宛先アドレス、LDはローカル宛先アドレスを示す。LDには、GD単位で、ローカル宛先ノードまでの複数経路のうち、受信強度(または通信品質)が良い順に所定の数(この例では、3つ)の経路(第1候補(LD1)、第2候補(LD2)第3候補(LD3))が記憶されている。
図3(B)では、各ノードからノードX宛への経路のうち、第1候補(LD1)宛ての経路を矢印で示す。図3(B)の状態において、ノードAとノードBがそれぞれ、死活監視によりノードXの異常、すなわち通信不可を検出した場合、図3(C)のように自動的に経路が変更される。すなわち、ノードXからのHELLOメッセージが受信されない結果、ノードAのルーティングテーブルにて、その時点での最もよい通信品質を有するHELLOメッセージを送信したノードBが、第1候補(LD1)となる。また、ノードBのルーティングテーブルにて、その時点での最もよい通信品質を有するHELLOメッセージを送信したノードAが、第1候補(LD1)となる。
このように、ノードAとノードBはノードXの死活監視異常を検出した為、それまでの第一候補であったLD1=ノードXをそれぞれ、LD1=ノードB、LD1=ノードAに変更する。これによりことで、ノードAとノードBは、相互に相手方を最適経路と勘違いした状態となる。さらにノードC,D,E,Fは、ノードXの死活監視異常を検出していない為、それまで通り最適経路としてノードA,Bが設定されたままである。
この状態でノードX宛の通信を行おうとした場合、ノードA−B間でループが発生してしまい、フレームをロスしてしまう可能性がある。
このように、死活監視異常を検出したノードと、それを検出していないノードが混在しているアドホックネットワークにおいて、その死活監視異常となったノード宛にデータ転送を行った場合、ネットワーク内をフレームがループしてしまう。そこで、そのようなループしているフレーム(ループフレーム)を検知した転送ノードがそのフレームを異常フレームとして廃棄することを防止することが求められる。
また、フレームを廃棄することで、送信元ノードは、宛先まで届いていないにも関わらず送信完了したと見なす。そこで、そのような場合には、送信元ノードにて、最終宛先への送信失敗時に行う送信元ノードでの宛先切り替えが求められる。
また、ループフレームを転送する度に転送ノードは経路品質を見直すことで、それまでの最適な経路を壊してしまう。そこで、ループフレームを転送する度に最適な経路を壊さないようにすることが求められる。
図4は、本実施形態におけるノード装置の一例を示す。ノード装置11は、隣接するノード装置間で無線通信することにより無線通信ネットワークを構築する。ノード装置は、記憶部12、決定部13、送信部14を含む。
記憶部12は、いずれかのノード装置が異常状態か否かを示すノード死活情報を記憶する。記憶部12の一例として、ルーティングテーブル39が挙げられる。
決定部13は、データフレームを受信し、記憶部12に記録されたノード死活情報に基づいて、データフレームから取得した送信先のノード装置の死活状態の判定を行う。決定部13は、判定の結果に応じて、データフレームから取得した送信先のノード装置及びデータフレームから取得した送信元のノード装置から、データフレームの宛先を決定する。決定部13の一例として、ルーティング部34が挙げられる。
送信部14は、決定した宛先が設定されたデータフレームを送信する。送信部14の一例として、フレーム送信処理32が挙げられる。
このように構成することにより、ノード装置の死活状況に応じて、アドホックネットワーク上のデータフレームのルーティングを制御することができる
ノード装置11は、さらに、取得部15を含む。取得部15は、自ノード装置と隣接するノード装置についてのノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を取得する。取得部15の一例として、死活監視部35が挙げられる。
このように構成することにより、各ノードは、アドホックネットワーク上の他のノードの死活情報を取得することができる。
送信部14は、さらに、自ノードと隣接するノード装置についてのノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を、自ノードと隣接するノード装置に送信する。
このように構成することにより、異常が生じたノードについての死活情報を、アドホックネットワーク全体に伝播させることができる。
決定部13は、判定の結果に応じて、データフレームの宛先を、データフレームから取得した送信元のノード装置に決定する場合、データフレームから取得した送信先への送信が失敗したことを示す送信失敗情報をデータフレームに付与する。
このように構成することにより、データフレームの送信が失敗したことを送信元へ通知することができる。
ノード装置は、さらに、変更部16を含む。変更部16は、自ノード装置が生成して送信したデータフレームであって、送信失敗情報が付与されたデータフレームを受信した場合、データフレームの宛先を他のノード装置に変更する。変更部16の一例として、ルーティング部34が挙げられる。
このように構成することにより、送信先への送信が失敗に終わった場合には、予め登録した他のノードに送信することができる。
ノード装置は、さらに、要求部17を含む。要求部17は、異常状態から復旧したノード装置についてのノード死活情報を異常状態から正常状態へ変更させる要求を、隣接するノード装置へ送信する。要求部17の一例として、死活監視部35が挙げられる。
図5〜図13は、本実施形態におけるアドホックネットワークの動作を説明するための図である。図5〜図9は、本実施形態におけるノードXについての死活監視異常情報をアドホックネットワーク上の全ノードに伝播させる動作を説明するための図である。例えば、正常時のアドホックネットワークの構成の一例として、図5に示すネットワークがあるとする。
この時点では、ノードXは、正常に動作している。以下では、ノードX,A,B,C,・・・等のアドレスをそれぞれ、ノードID=X,A,B,C,・・・等で示す。また、各ノードは、最終的な宛先ノード(GD)単位で管理される隣接ノードに対するルーティング情報を保持するルーティングテーブルを有する。
ノードAが有するGD=Xについてのルーティングテーブルについて、LDには、第1候補としてX、第2候補してB、第3候補してCが格納されている。
ノードBが有するGD=Xについてのルーティングテーブルについて、LDには、第1候補としてX、第2候補してA、第3候補してEが格納されている。
また、ルーティングテーブルにおいて、「GD:正常」は、死活監視異常フラグ=OFF、すなわちGDとして登録されているノードが正常に動作していることを示す。
次に、ノードXに異常が発生したとする。この場合、図6に示すように、ノードA,Bは、ノードXからのHELLOメッセージが不達のため、ノードXの死活監視異常を検出する。ノードAおよびノードBはそれぞれ、最終宛先(GD)であるノードXの死活監視異常を検出すると、LDの第1〜3候補の経路を見直し、ルーティングテーブルのノードX宛て経路情報にある死活監視異常フラグをON(=異常)する。経路の見直しの結果、ノードAが有するX宛(GD)のルーティングテーブルの第1候補(LD1)は「B」になり、ノードBが有するX宛(GD)のルーティングテーブルの第1候補(LD1)は「A」になるとする。
すると、図7に示すように、ノードAおよびノードBは、自身が送信するHELLOメッセージフレームにおいて、ノードXが異常であることを示すビットをON(死活監視異常フラグ=ON)にセットしてブロードキャスト送信する。図7において、実線の矢印は、ノードAによるHELLOメッセージの送信を示す。また、破線の矢印は、ノードBによるHELLOメッセージの送信を示す。
次に、図8に示すように、ノードC,D,Eは、ノードXについて死活監視異常フラグがONであるHELLOメッセージフレームを受信すると、ルーティングテーブルのノードX宛て経路情報にある「死活監視異常フラグ」をON(=異常)する。
次に、図9に示すように、図7で説明したノードA,Bと同様に、ノードC,D,Eは、HELLOメッセージフレームに、ノードXが異常であることを示すビット(ノードXについて死活監視異常フラグ)をONにセットしてブロードキャスト送信する。
ノードFは、ノードXについて死活監視異常フラグがONであるHELLOメッセージフレームを受信すると、ルーティングテーブルのノードX宛て経路情報にある「死活監視異常フラグ」をON(=異常)する。これにより、死活監視異常フラグがONであるHELLOメッセージフレームをノードFまで伝達する事で、アドホックネットワークの全ノードにノードXが死活監視異常状態であることが伝わる。
例えば、図9の状態で、ノードXに対してノードFの定期通信タイミングが到来した場合、ノードXについて死活監視異常フラグがONであるため、ノードFは、データ送信を行わない。このようにデータ送信を抑止する事でアドホックネットワーク内に無駄なフレームの転送や迂回を行う事がなくなり、トラフィックを低減することが可能となる。
ところが、死活監視異常フラグがONであるHELLOメッセージフレームが伝達される前に死活監視異常のノードへデータフレームが送信される場合がある。これについて図10−図12を用いて説明する。
図10−図12は、本実施形態における死活監視異常フラグがONであるHELLOメッセージフレームが伝達される前に、死活監視異常状態にあるノードへ送信されたデータフレームのルーティングを説明するための図である。例えば、ノードA、BがHELLOメッセージフレームを送信する前(図8)、図10のようなアドホックネットワーク構成になる。すなわち、ノードA、B間のアドホックネットワークでは、ノードA、Bのルーティングテーブルの死活監視異常フラグがONになっている。また、ノードC、D、E、F間のアドホックネットワークでは、ノードC、D、E、Fのルーティングテーブルの死活監視異常フラグがOFFになっている。
図11に示すように、ノードFにおいて、ノードXへの定期通信タイミングが到来した場合、死活監視異常フラグ:OFFのアドホックネットワーク内では、ノードF、ノードD、ノードAという順番にデータフレームの転送が行われる。その際のデータフレーム内にあるノードXへの送信失敗フラグにはOFFが設定されている。
ここで、データフレームについて説明する。データフレームはヘッダ部分とデータ部分を含む。データフレームのヘッダは、「LD」、「LS」、「GD」、「GS」、「送信失敗フラグ」を含む。「LD」には、ローカル宛先アドレスが設定される。「LS」には、ローカル送信元アドレスが設定される。「GD」には、グローバル宛先アドレスが設定される。「GS」には、グローバル送信元アドレスが設定される。「送信失敗フラグ」には、GDへの送信に失敗したか否かを示すフラグが設定される。送信失敗フラグのデフォルト値はOFFであり、送信に失敗した場合には送信失敗フラグ=ONになる。
ノードFからノードDへ送信されるフレーム(1)のヘッダには、「LD:D、LS:F、GD:X、GS:F、送信失敗フラグ:OFF」が設定されている。ノードDからノードAへ送信されるフレーム(2)のヘッダには、「LD:A、LS:D、GD:X、GS:F、送信失敗フラグ:OFF」が設定されている。
ノードAが有するGD:Xに関するルーティングテーブルにおいて、死活監視異常フラグ:ONである。この場合、ノードAは、ノードX宛ての転送フレーム(2)を受信した場合、次の処理が行われる。すなわち、図12に示すように、ノードAは、そのフレームヘッダ(2)の送信失敗フラグがOFFであるため、送信失敗フラグをONに設定し、そのフレームのLD、LSを書き換えて、送信元であるノードDに、フレーム(3)を返送する。
ノードDは、受信したフレームの送信失敗フラグがONであるため、ノードXへはフレームの到達はできないと判断し、そのフレームのLD、LSを書き換えて、送信元であるノードFに対して、フレーム(4)を返送する。ノードX宛てフレーム(1)が送信失敗フラグがONとなって戻ってきたために、ノードFは、定期送信が失敗したと判断する。
次に、ノードXが復旧した場合について、図13を用いて説明する。ノードXの復旧後でも、ノードXの周辺のノードがノードXを死活監視異常であると判定している可能性がある。そのため、ノードXは、再起動時には死活監視異常OFF要求のフレームをアドホックネットワーク内に対して、ブロードキャスト送信する。死活監視異常OFF要求は、その要求を受信したノードのルーティングテーブルにて、死活監視異常フラグがONになっている場合には、OFFに更新することを要求するコマンドである。各ノードは、死活監視異常OFF要求を受信すると、ルーティングテーブルにおいて、ノードX宛ての死活監視異常フラグをOFFに変更するとともに転送を行う。各ノードは、これらを繰り返すことでアドホックネットワーク内に即座にノードXが復旧した事を通知することができる。
本実施形態によれば、定期的にGW経由で情報をサーバに伝達することが目的のマルチホップを行う無線アドホックネットワーク環境において、次のことが実現できる。すなわち、サーバとアドホックネットワークを構築するノードが死活監視異常状態となり、その異常を検出したノードと検出していないノードが混在する状況でもネットワークの擾乱を引き起こすフレームの送信を抑止することができる。また、ネットワークの擾乱を引き起こすフレームを送信した場合にも無駄なトラフィックとなるような転送・迂回をさせることなく送信元まで戻すことが可能である。
以下に本実施形態の実施例を説明する。
図14は、本実施形態におけるノードのハードウェア構成例である。ノード21は、CPU(Central Processing Unit)22、RAM(Random Access Memory)23、不揮発性メモリ24、無線通信インターフェース25を含む。CPU22は、RAM23、不揮発性メモリ24、無線通信インターフェース25と所定のバスにより接続されている。
CPU22は、各種計算処理を担う。CPU22は、不揮発性メモリ24等に格納した後述する処理を実現するプログラムを読み出し、当該プログラムを実行する。不揮発性メモリは、例えばROM(Read Only Memory)、または読み書き可能なSSD(Solid State Drive)等の半導体メモリである。RAM23は、データを一時的に保持する揮発性メモリである。
無線通信インターフェース25は、無線LAN(Local Area Network)接続のための処理を行うハードウェアである。無線通信インターフェース25は、例えばアンテナ、ADC(Analog-to-Digital Converter)、DAC(Digital-to-Analog Converter)、変調器、復調器などを含む。
また、ノードは、これらの電子部品に電力を供給して動作させるための電源としての充電池も搭載している。また図示されていないが、ノード21は計時のためのクロックまたはタイマを含む。
後述する実施形態で説明する処理を実現するプログラムは、プログラム提供者側から通信ネットワークを介して、例えば不揮発性メモリ24等の記憶装置に格納してもよい。また、後述する実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置に設定されて、CPU22によってそのプログラムが読み出されて、実行されてもよい。
図15は、本実施形態におけるフレーム送受信に関するノードの機能ブロック図の一例である。図15において、ノード21は、CPU22、無線通信インターフェース(無線通信I/F)25、RAM23を含む。RAM23には、経路情報テーブル(ルーティングテーブルとも呼ばれる)39、リンク情報テーブル(リンクテーブルとも呼ばれる)等が格納されている。
無線通信インターフェース(I/F)25は、受信部37および送信部38を含み、他のノードとの通信を行うための処理を行う。受信部37は、ノード21に送信されてきたフレームの信号を受信し、受信した信号をフレーム受信処理部33に出力する。
CPU22は、不揮発性メモリ24等に格納したプログラムを読み出し、HELLO制御部31、フレーム送信処理部32、フレーム受信処理部33、ルーティング部34、死活監視部35、アプリケーション処理部36として機能する。
フレーム受信処理部33は、受信部37から入力されたフレームを、ルーティング部34及び死活監視部35で処理させるように、振り分ける。フレーム受信処理部33で振り分けられるフレームには、経路情報フレーム、経路情報フレーム以外の制御フレーム、ユーザデータを格納したデータフレームなどが含まれる。フレーム受信処理部33は、振り分けたフレームをルーティング部34及び死活監視部35に出力する。
アプリケーション処理部36は、ノード21宛のフレームがルーティング部34から入力されると、入力されたフレームをアプリケーションプログラムにより処理する。また、アプリケーション処理部36は、アプリケーションプログラムの処理によって他のノード21に送信するデータフレームを生成することもできる。アプリケーション処理部36は、生成したデータフレームをルーティング部34に出力する。
ルーティング部34は、入力されたフレームを、自ノード宛てのものか、ブロードキャスト送信のものかの判断を行い、自ノード宛てのものである場合には、アプリケーション処理部36に通知する。ルーティング部34は、入力されたフレームに含まれているアドホックヘッダに基づいて、ルーティングテーブル39に受信したHELLOメッセージの送信元をルーティングテーブル39に登録する。また、受信したHELLOメッセージに含まれているノード情報を使用して経路品質やノード間リンクの通信品質を計算し、結果をルーティングテーブル39やリンクテーブルに登録する。ルーティング部34は、ルーティングテーブル39やリンクテーブルに登録された情報を含むフレームを送信するようにフレーム送信処理部32を制御する。
また、ルーティング部34は、データフレームが入力された場合、ルーティングテーブル39に記録された死活監視異常フラグに基づいて、データフレームから取得した送信先のノードが死活監視異常であるか否かを判定する。ルーティング部34は、判定の結果に応じて、データフレームから取得した送信先のノード装置及びデータフレームから取得した送信元のノード装置から、データフレームの宛先を決定する。
また、ルーティング部34は、判定の結果に応じて、データフレームの宛先を、データフレームから取得した送信元のノードに決定する場合、送信失敗フラグ=ONをデータフレームに設定する。
また、ルーティング部34は、自ノードが生成して送信したデータフレームであって送信失敗フラグにONが設定されたデータフレームを受信した場合、データフレームの宛先を予め登録してある他のノード装置に変更する。
また、ルーティング部34は、アプリケーション処理部により生成されたデータフレームの宛先のノードについてのルーティングテーブル39の死活監視異常フラグがON(異常)の場合には、そのノードへデータフレームを送信しない。この場合には、ルーティング部34は、宛先を予め登録してある他のノード装置に変更して送信する。
HELLO制御部31は、ルーティングテーブル39に登録された情報を用いて、HELLOメッセージフレームを生成し、フレーム送信処理部32に出力する。HELLO制御部31は、ルーティングテーブル39に含まれている経路に関する情報を含むハローフレームを生成することができる。
フレーム送信処理部32は、送信部38を制御して、フレームの送信を行う。
死活監視部35は、ルーティングテーブル39に登録された隣接するノードからのHELLOメッセージフレームを所定時間受信していない場合には、その隣接するノードが異常のため通信できないと判断する。それから、死活監視部35は、その異常が生じたノード宛のルーティングテーブル39に格納されている死活監視異常フラグをONに設定する。また、自ノードと隣接していないノードについての死活監視異常フラグがONに設定されたHELLOフレームを、隣接するノードより受信した場合、死活監視部35は、次の処理を行う。すなわち、死活監視部35は、そのHELLOフレームにおいて死活監視異常フラグがONに設定されているノード宛のルーティングテーブル39に格納されている死活監視異常フラグをONに設定する。また、死活監視部35は、フレーム送信処理部32を介して、死活監視異常OFF要求を送信する。
このようなノードを用いて、以下の実施例を説明する。
(実施例1)
実施例1では、いずれかのノードの死活監視異常を検出した場合にアドホックネットワーク内の全ノードに対して、そのノードが死活監視異常状態であることを伝播させることについて説明する。
図16〜図19は、本実施形態(実施例1)における死活監視異常の通知の伝播手順を説明するための図である。図16には、正常にアドホックネットワークが構築されている場合の各ノードのルーティングテーブル及びHELLOメッセージフレームを示す。各ノードは、死活監視異常フラグにOFFが設定されたHELLOメッセージフレームを、隣接するノードにブロードキャスト送信している。ここでの「ブロードキャスト」は「隣接するすべてのノード装置へのブロードキャスト」であり、「ネットワーク全体へのフラッディング」ではないので注意されたい。
その後、図17に示すように、ノードXに異常が発生し、ノードXが通信できなくなったとする。
図17は、ノードA及びノードBがノードXが死活監視異常状態であることを検知した際の動作を説明するための図である。ノードA及びノードBは、ノードXからのHELLOメッセージフレームを一定期間未受信状態であったため、ノードXが死活監視異常と判定する。
ノードA及びノードBは、隣接ノードより受信したHELLOメッセージフレームを用いて、死活監視異常を検出したノードX宛のルーティングテーブルの経路LD1〜LD3を見直す。それと同時に、ノードA及びノードBは、ノードX宛のルーティングテーブルの死活監視異常フラグをON(異常)に設定する。
次に、図18に示すように、ノードXが死活監視異常であることを検知したノードが周囲のノードへノードXの死活監視異常を通知する。ノードXの死活監視異常を検出したノードA、ノードBは、次から送信するHELLOメッセージフレーム(1-i),(1-ii)の死活監視異常フラグにON(異常)を設定して送信する。
すると、ノードC、ノードD、ノードEは、ノードA、ノードBから送信されたHELLOメッセージフレーム(1-i),(1-ii)を受信すると、そのフレームヘッダからノードXが死活監視異常状態であることを検知する。すると、図19に示すように、ノードC、ノードD、ノードEはそれぞれ、ノードX宛のルーティングテーブルの死活監視異常フラグをON(異常)とする。
図19に示すように、ノードC,D,Eについても、ノードA、ノードBと同様に、ノードXが死活検出異常状態であることを通知する。具体的には、ノードXの死活監視異常を検出したノードC、D、Eは、ノードA,B同様に、次から送信するHELLOメッセージフレーム(1-iii),(1-iv),(1-v)の死活監視異常フラグにON(異常)を設定して送信する。
ノードFがノードC,D,Eから送信されたHELLOメッセージフレーム(1-iii),(1-iv),(1-v)を受信する。すると、ノードFはノードXが死活監視異常状態であることを検知し、ノードX宛のルーティングテーブルの死活監視異常フラグにON(異常)を設定とする。
このように、ノードが送信するHELLOメッセージフレームに死活監視異常状態であるノードの情報を搭載することで、特定のノードが死活監視異常状態であることを周囲のノードに通知することができる。
(実施例2)
実施例2では、正常にアドホックネットワークが構築されている状態でのノード間のデータの流れ及び死活監視異常状態のノードが存在する場合でのノード間のデータの流れを説明する。
図20は、本実施形態(実施例2)における正常にアドホックネットワークが構築されている状態で、ノードFからノードXへデータが送信された場合のデータの流れを説明するための図である。ノードFがノードX宛にデータフレームを送信する。ここでは、ノードFはノードX宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードCへデータフレーム(2-i)を送信する。
ノードCがノードX宛にデータフレーム(2-ii)を転送する。ここでは、ノードCは、自身が有するノードX宛ルーティングテーブルの死活監視異常フラグがOFF(正常)なので、ノードX宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードAへデータフレーム(2-ii)を転送する。
ノードAは、ノードX宛にデータフレーム(2-iii)を転送する。ここでは、ノードAは、自身が有するノードX宛ルーティングテーブルの死活監視異常フラグがOFF(正常)なので、ノードX宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードX(GD)へデータフレーム(2-iii)を転送する。
次に、ノードAがノードXの死活監視異常を検出し、その異常検出がノードCとノードFに通知されていない状態で、ノードFからノードX宛のデータフレームが送信された場合のデータフレームの流れを、図21を用いて説明する。ここで、ノードFには、サーバなどへの外部ネットワーク接続を行うノードの第一候補にノードXが設定され、第二候補にノードYが設定されているとする。
ノードFは、ノードX宛にデータフレーム(2-iv)を送信する。ここでは、ノードFは、自身が有するノードX宛ルーティングテーブルの死活監視異常フラグがOFF(正常)なので、LD1であるノードCへデータフレーム(2-iv)を送信する。
ノードCは、ノードX宛(GD)にデータフレーム(2-v)を転送する。ここでは、ノードCは、自身が有するノードX宛ルーティングテーブルの死活監視異常フラグがOFF(正常)なので、ノードX宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードAへデータフレーム(2-v)を転送する。
ノードAは、ノードF宛(GS)にデータフレーム(2-vi)を転送する。ここでは、ノードAは、自身が有するノードX宛ルーティングテーブルの死活監視異常フラグがON(死活監視異常(=通信不可))なので、GDであるノードXへ送信せず、GSであるノードFへデータフレーム(2-vi)を返信する。その際、ノードAは、データフレーム中の送信失敗フラグをONに設定し、ノードF宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードCへデータフレーム(2-vi)を転送する。
ノードCは、ノードF宛(GS)にデータフレーム(2-vii)を転送する。ここでは、ノードCは、受信したデータフレーム中の送信失敗フラグがONなので、GDであるノードXへ送信せず、GSであるノードFへデータフレームを返信する。ノードCは、ノードF宛ルーティングテーブルにおいて最適経路の第1候補(LD1)であるノードFへデータフレーム(2-vii)を転送する。
ノードFは、受信したフレームの送信失敗フラグがONなので、第一候補ノードXへのデータフレームの転送が失敗と判断する。この場合、ノードFは、送信先(GD)を第二候補のノードY宛に変更して、ノードY宛ルーティングテーブルを参照して、LD1であるノードGへデータフレーム(2-viii)を転送する。
ノードGは、ノードH(LD)に対して、ノードY宛(GD)のデータフレーム(2-ix)を転送する。ノードHは、ノードY(LD)に対して、ノードY宛(GD)のデータフレーム(2-x)を転送する。
このように、ノードFは、ノードX宛ルーティングテーブルの死活監視異常フラグがON(異常)になった場合には、ノードX宛のデータフレームを送信しない。
(実施例3)
実施例3では、アドホックネットワーク内の各ノードのルーティングテーブルに設定された死活監視異常をクリアすることについて説明する。本実施形態(実施例3)における、アドホックネットワーク内の全ノードに、ノードXの死活監視異常の解除が通知されることを、図22〜図24を用いて説明する。
図22は、本実施形態(実施例3)における、ノードAとノードBがノードXの死活監視異常を検出し、アドホックネットワーク内の全ノードに、ノードXの死活監視異常の解除が通知された状態を説明するための図である。この場合、全てのノードが有するノードX宛(GD)のルーティングテーブルの死活監視異常フラグはON(異常)に設定されている。
その後、ノードXは、復旧すると、死活監視異常OFF要求フレーム(ブロードキャストフレーム)を送信する。ノードAとノードBがノードXからの死活監視異常OFF要求フレームを受信したときの各ノードのノードX宛(GD)のルーティングテーブルを、図23に示す。
死活監視異常OFF要求フレーム(ブロードキャストフレーム)を受信したノードの処理は、死活監視異常OFF要求フレームを送信したノードから1ホップ目のノードと、送信したノードから2ホップ目以降のノードで異なる。死活監視異常OFF要求フレームを送信したノードから1ホップ目のノードとは、図23で言えば、ノードXから死活監視異常OFF要求フレームを直接受けたノードAとノードBをいう。また、死活監視異常OFF要求フレームを送信したノードから2ホップ目以降のノードとは、図23で言えば、ノードX以外のノードが転送した死活監視異常OFF要求フレームを受けたノードであり、例えば、ノードC,D,E,Fをいう。
1ホップ目のノードは、死活監視異常OFF要求フレームの送信元ノードXをGDとするルーティングテーブルの死活監視異常フラグをOFF(正常)に変更し、ノードX宛のルーティングテーブルのLD1を送信元ノードXへ変更する。2ホップ目以降のノードは、死活監視異常OFF要求フレームの送信元ノードXをGDとするルーティングテーブルの死活監視異常フラグをOFF(正常)に変更する。
ノードAがノードXからの死活監視異常OFF要求フレームを受信し、死活監視異常OFF要求フレーム(ブロードキャストフレーム)を送信した後の各ノードのルーティングテーブルを、図24に示す。なお、ノードBも死活監視異常OFF要求フレームを送信するが、ここでは割愛する。
その後、ノードFはノードC,D,Eのいずれかのノードが転送した死活監視異常OFF要求フレームを受信し、ノードX宛ルーティングテーブルの死活監視異常フラグをOFF(正常)に変更する。
次に、実施例1〜3についてのノードの処理フローについて説明する。
図25は、本実施形態(実施例1〜3)におけるノードの全体処理のフローを示す。CPU22は、不揮発性メモリ24等に格納したプログラムを読み出し、HELLO制御部31、フレーム送信処理部32、フレーム受信処理部33、ルーティング部34、死活監視部35、アプリケーション処理部36として機能して、図25の処理を行う。
まず、CPU22は、死活監視処理を行う(S1)。S1の詳細は、図27にて詳述する。
CPU22は、HELLOメッセージフレームの送信タイミングが到来したか否かを判定する(S2)。HELLOメッセージフレームの送信タイミングが到来した場合(S2で「Yes」)、CPU22は、HELLOメッセージフレーム生成・送信処理を行う(S8)。S8の詳細は、図26にて詳述する。
HELLOメッセージフレームの送信タイミングが到来していない場合(S2で「No」)、CPU22は、自ノードがデータフレームを生成する場合(S3で「Yes」)、データフレームを生成する(S9)。S9の処理後、S6の処理へ進む。
CPU22は、無線通信I/F25からフレームを受信した場合(S4で「Yes」)、フレームを振り分ける(S5)。受信したフレームがデータフレームである場合(S5で「Yes」)、CPU22は、ルーティング処理を行う(S6)。S6の詳細は、図28にて詳述する。
受信したフレームがHELLOメッセージフレームである場合(S5で「No」)、CPU22は、経路構築処理を行う(S7)。S7の詳細は、図29にて詳述する。
図26は、本実施形態におけるHELLOメッセージフレーム生成・送信処理(S8)の詳細フローを示す。CPU22は、RAM23から1つのルーティングテーブル39を読み出す(S8−1)。
CPU22は、HELLOメッセージフレームを生成する(S8−2)。HELLOメッセージフレームは、ローカル宛先アドレス(LD)、ローカル差出アドレス(LS)、グローバル宛先アドレスGD、グローバル差出アドレス(GS)、フレームID(FID)、タイプ、死活監視異常フラグの各フィールドを含むヘッダを有する。ここでは、CPU22は、HELLOメッセージフレームのLDに、隣接するすべてのノード装置へのブロードキャストを表す特殊な値FFという所定の値を設定し、LSに自ノードのアドレスを設定する。
なお、ここでの「ブロードキャスト」は「隣接するすべてのノード装置へのブロードキャスト」であり、「ネットワーク全体へのフラッディング」ではないので注意されたい。
CPU22は、読み出したルーティングテーブル39の死活監視異常フラグがONか否かを判定する(S8−3)。ルーティングテーブル39の死活監視異常フラグがONの場合(S8−3で「Yes」)、CPU22は、次の処理を行う、すなわち、CPU22は、HELLOメッセージフレームに、そのルーティングテーブル39のGDに対して設定されたノードについての死活監視異常フラグをONに設定する(S8−4)。ここで、HELLOメッセージフレームへのそのノードについての死活監視異常フラグの設定は、そのノードが異常であることを示すビットをONにする。例えば、ブロードキャスト時にHELLOメッセージフレームにて有効に使用していない項目に死活監視異常のノードを特定するノードIDを設定し、死活監視異常フラグフィールドのビットをONにしてもよい。または死活監視異常ノードを指定するフィールドをフレームのヘッダに設けて、そのフィールドに死活監視異常ノードのノードIDを設定しても良い。
ルーティングテーブル39の死活監視異常フラグがOFFの場合(S8−3で「No」)、CPU22は、次の処理を行う、すなわち、CPU22は、HELLOメッセージフレームに、そのルーティングテーブル39のGDに設定されたノードについての死活監視異常フラグをOFFに設定する(S8−5)。
S8−3〜S8−5の処理は、RAM23に格納されているルーティングテーブル39に登録されているGD数分、繰り返される。
CPU22は、生成したHELLOメッセージフレームを、ブロードキャスト送信する(S8−6)。これにより、HELLOメッセージフレーム1つでルーティングテーブルの複数エントリ分を送信することができる。
図27は、本実施形態における死活監視処理(S1)の詳細フローを示す。ノードが起動直後でない場合(S1−1)、S1−3の処理へ進む。ノードが起動直後である場合(S1−1で「Yes」)、CPU22は、死活監視異常OFF要求を、隣接するすべてのノード装置へブロードキャスト送信する(S1−2)。
次に、CPU22は、RAM23に格納しているルーティングテーブル39においてGDとして登録された各ノードから送信されるHELLOメッセージの受信間隔を監視し、その確認を行う(S1−3)。
その受信間隔の確認の結果、所定の監視時間内に、ルーティングテーブル39においてGDとして登録されたいずれかのノードからHELLOメッセージが受信できなかった場合(S1−4で「Yes」)、CPU22は、次の処理を行う。すなわち、CPU22は、そのノード(GD)宛のルーティングテーブル39において、死活監視異常フラグをONにする(S1−5)。
図28は、本実施形態におけるルーティング処理(S6)の詳細フローを示す。CPU22は、受信したフレームが死活監視異常OFF要求フレームであるか否かを判定する(S6−1)。
受信したフレームが死活監視異常OFF要求フレームである場合(S6−1で「Yes」)、CPU22は、次の処理を行う。すなわち、CPU22は、データフレームの送信元(GS)をGDとするルーティングテーブルを検索し、検索されたルーティングテーブルの死活監視異常フラグをOFFにする(S6−14)。
CPU22は、死活監視異常OFF要求フレームをブロードキャスト送信する(S6−15)。なお、ここでの「ブロードキャスト」はネットワーク全体へのフラッディングを伴うブロードキャストである。
受信したフレームが死活監視異常OFF要求フレームでない場合(S6−1で「No」)、CPU22は、受信したフレームのヘッダに含まれる送信失敗フラグがOFFか否かを判定する(S6−2)。
受信したフレームのヘッダに含まれる送信失敗フラグがOFFである場合(S6−2で「Yes」)、CPU22は、受信したフレームのヘッダからグローバル宛先アドレス(GD)を取得し、そのGDについてのルーティングテーブルを検索する(S6−7)。
CPU22は、検索されたルーティングテーブルの死活監視異常フラグがONか否かを判定する(S6−8)。
検索されたルーティングテーブルの死活監視異常フラグがOFFである場合(S6−8で「No」)、CPU22は、その検索されたルーティングテーブルに格納されたローカル宛先アドレス(LD1,LD2,LD3)から転送先を選択する。CPU22は、選択した転送先をローカル宛先アドレス(LD)としてデータフレームを送信する(S6−13)。
検索されたルーティングテーブルの死活監視異常フラグがONである場合(S6−8で「Yes」)、CPU22は、そのフレームが自ノードで生成されたフレームか否かを判定する(S6−9)。
そのフレームが自ノードで生成されたフレームである場合(S6−9で「Yes」)、CPU22は、送信先(GD)が他にあるかを判定する(S6−11)。送信先(GD)が他にある場合(S6−11で「Yes」)、CPU22は、S6−5の処理を行う。送信先(GD)が他にない場合(S6−11で「No」)CPU22は、データフレームを送信せずに、廃棄する(S6−12)。そのフレームが自ノードで生成されたフレームでない場合(S6−9で「No」)、CPU22は、データフレーム内の送信失敗フラグにONを設定し(S6−10)、S6−6へ進む。
S6−2において、受信したフレームのヘッダに含まれる送信失敗フラグがONである場合(S6−2で「No」)、CPU22は、そのフレームが自ノードで生成されたフレームか否かを判定する(S6−3)。
そのフレームが自ノードで生成されたフレームである場合(S6−3で「Yes」)、CPU22は、送信先(GD)が他にあるかを判定する(S6−4)。送信先(GD)が他にない場合(S6−4で「No」)、CPU22は、S6−12の処理を行う。送信先(GD)が他にある場合(S6−4で「Yes」)CPU22は、そのGDについてのルーティングテーブルを検索する。CPU22は、その検索されたルーティングテーブルに格納されたローカル宛先アドレス(LD1,LD2,LD3)から転送先を選択する。CPU22は、選択した転送先をローカル宛先アドレス(LD)としてデータフレームを送信する(S6−5)。
そのフレームが自ノードで生成されたフレームでない場合(S6−3で「No」)、CPU22は、受信したフレームのヘッダからグローバル差出アドレス(GS)を取得し、そのGSをGDとするルーティングテーブルを検索する。CPU22は、その検索されたルーティングテーブルに格納されたローカル宛先アドレス(LD1,LD2,LD3)から転送先を選択する。CPU22は、選択した転送先をローカル宛先アドレス(LD)としてデータフレームを送信する(S6−6)。ここで送信されるデータフレーム内の送信失敗フラグはONになっている。
図29は、本実施形態における経路構築処理(S7)の詳細フローを示す。CPU22は、受信したHELLOメッセージフレームに設定された死活監視異常フラグがONか否かを判定する(S7−1)。受信したHELLOメッセージフレームに設定された死活監視異常フラグがOFFの場合、S7−3へ進む。
受信したHELLOメッセージフレームに設定された死活監視異常フラグがONの場合(S7−1で「Yes」)、CPU22は、HELLOメッセージフレームから、死活監視による異常状態にあるとして設定されたノードIDを読み出す。CPU22は、その読み出したノードIDをGDとするルーティングテーブルを検索する。CPU22は、検索されたルーティングテーブルの死活監視異常フラグをONに設定する(S7−2)。
その後、CPU22は、通常のHELLOメッセージフレーム受信処理を行う(S7−3)。例えば、CPU22は、HELLOメッセージフレームに設定された情報に基づいて、各経路の通信品質を計算し、その計算結果に基づいて、最終宛先までの複数の経路を構築する。このとき、CPU22は、リンクテーブルの新規作成、更新、または削除、及びルーティングテーブルの新規作成、更新、または削除等を行う。
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置であって、
いずれかのノード装置が異常状態か否かを示すノード死活情報を記憶する記憶部と、
データフレームを受信し、前記記憶部に記憶された前記ノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定する決定部と、
決定した前記宛先が設定された前記データフレームを送信する送信部と、
を備えることを特徴とするノード装置。
(付記2)
前記ノード装置は、さらに、
自ノード装置と隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を取得する取得部
を備えることを特徴とする付記1に記載のノード装置。
(付記3)
前記送信部は、さらに、自ノードと隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を、自ノードと隣接するノード装置に送信する
ことを特徴とする付記1に記載のノード装置。
(付記4)
前記決定部は、前記判定の結果に応じて、前記データフレームの宛先を、該データフレームから取得した送信元のノード装置に決定する場合、前記データフレームから取得した送信先への送信が失敗したことを示す送信失敗情報を該データフレームに付与する
ことを特徴とする付記1〜3のうちいずれか1項に記載のノード装置。
(付記5)
前記ノード装置は、さらに、
自ノード装置が生成して送信したデータフレームであって、前記送信失敗情報が付与された該データフレームを受信した場合、該データフレームの宛先を他のノード装置に変更する変更部
を備えることを特徴とする付記4に記載のノード装置。
(付記6)
前記ノード装置は、さらに、
異常状態から復旧したノード装置についての前記ノード死活情報を異常状態から正常状態へ変更させる要求を、隣接するノード装置へ送信する要求部
を備えることを特徴とする付記1〜5のうちいずれか1項に記載のノード装置。
(付記7)
隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置に処理を実行させる制御プログラムであって、
データフレームを受信し、記憶部から読み出したいずれかのノード装置が異常状態か否かを示すノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、
該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定し、
決定した前記宛先が設定された前記データフレームを送信する、
処理を実行させる制御プログラム。
(付記8)
前記制御プログラムは、前記ノード装置に、さらに、
自ノード装置と隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を取得する
処理を実行させることを特徴とする付記7に記載の制御プログラム。
(付記9)
前記制御プログラムは、前記ノード装置に、さらに、
自ノードと隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を、自ノードと隣接するノード装置に送信する
処理を実行させることを特徴とする付記7または8に記載の制御プログラム。
(付記10)
前記判定の結果に応じて、前記データフレームの宛先を、該データフレームから取得した送信元のノード装置に決定する場合、前記データフレームから取得した送信先への送信が失敗したことを示す送信失敗情報を該データフレームに付与する
ことを特徴とする付記7〜9のうちいずれか1項に記載の制御プログラム。
(付記11)
前記制御プログラムは、前記ノード装置に、さらに、
自ノード装置が生成して送信したデータフレームであって、前記送信失敗情報が付与された該データフレームを受信した場合、該データフレームの宛先を他のノード装置に変更する
処理を実行させることを特徴とする付記9に記載の制御プログラム。
(付記12)
前記制御プログラムは、前記ノード装置に、さらに、
異常状態から復旧したノード装置についての前記ノード死活情報を異常状態から正常状態へ変更させる要求を、隣接するノード装置へ送信する
処理を実行させることを特徴とする付記7〜11のうちいずれか1項に記載の制御プログラム。
(付記13)
隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置の動作方法であって、
前記ノード装置は、
データフレームを受信し、記憶部から読み出したいずれかのノード装置が異常状態か否かを示すノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、
該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定し、
決定した前記宛先が設定された前記データフレームを送信する、
ことを実行するノード装置の動作方法。
(付記14)
前記ノード装置は、さらに、
自ノード装置と隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を取得する
ことを実行する付記13に記載のノード装置の動作方法。
(付記15)
前記ノード装置は、さらに、
自ノードと隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を、自ノードと隣接するノード装置に送信する
処理を実行させることを特徴とする付記13または14に記載の動作方法。
11 ノード装置
12 記憶部
13 決定部
14 送信部
15 取得部
16 変更部
17 要求部
21 ノード装置
22 CPU
23 RAM
24 不揮発性メモリ
25 無線通信インターフェース
31 HELLO制御部
32 フレーム送信処理部
33 フレーム受信処理部
34 ルーティング部
35 死活監視部
36 アプリケーション処理部
37 受信部
38 送信部
39 ルーティングテーブル

Claims (8)

  1. 隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置であって、
    いずれかのノード装置が異常状態か否かを示すノード死活情報を記憶する記憶部と、
    データフレームを受信し、前記記憶部に記憶された前記ノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定する決定部と、
    決定した前記宛先が設定された前記データフレームを送信する送信部と、
    を備えることを特徴とするノード装置。
  2. 前記ノード装置は、さらに、
    自ノード装置と隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を取得する取得部
    を備えることを特徴とする請求項1に記載のノード装置。
  3. 前記送信部は、さらに、自ノードと隣接するノード装置についての前記ノード死活情報、または自ノード装置と隣接していないノード装置についてのノード死活情報を、自ノードと隣接するノード装置に送信する
    ことを特徴とする請求項1に記載のノード装置。
  4. 前記決定部は、前記判定の結果に応じて、前記データフレームの宛先を、該データフレームから取得した送信元のノード装置に決定する場合、前記データフレームから取得した送信先への送信が失敗したことを示す送信失敗情報を該データフレームに付与する
    ことを特徴とする請求項1〜3のうちいずれか1項に記載のノード装置。
  5. 前記ノード装置は、さらに、
    自ノード装置が生成して送信したデータフレームであって、前記送信失敗情報が付与された該データフレームを受信した場合、該データフレームの宛先を他のノード装置に変更する変更部
    を備えることを特徴とする請求項4に記載のノード装置。
  6. 前記ノード装置は、さらに、
    異常状態から復旧したノード装置についての前記ノード死活情報を異常状態から正常状態へ変更させる要求を、隣接するノード装置へ送信する要求部
    を備えることを特徴とする請求項1〜5のうちいずれか1項に記載のノード装置。
  7. 隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置に処理を実行させる制御プログラムであって、
    データフレームを受信し、記憶部から読み出したいずれかのノード装置が異常状態か否かを示すノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、
    該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定し、
    決定した前記宛先が設定された前記データフレームを送信する、
    処理を実行させる制御プログラム。
  8. 隣接するノード装置間で無線通信することにより無線通信ネットワークを構築するノード装置の動作方法であって、
    前記ノード装置は、
    データフレームを受信し、記憶部から読み出したいずれかのノード装置が異常状態か否かを示すノード死活情報に基づいて、該データフレームから取得した送信先のノード装置の死活状態の判定を行い、
    該判定の結果に応じて、前記データフレームから取得した送信先のノード装置及び前記データフレームから取得した送信元のノード装置から、該データフレームの宛先を決定し、
    決定した前記宛先が設定された前記データフレームを送信する、
    ことを実行するノード装置の動作方法。
JP2013237089A 2013-11-15 2013-11-15 ノード装置、制御プログラム、及びノード装置の動作方法 Active JP6191411B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013237089A JP6191411B2 (ja) 2013-11-15 2013-11-15 ノード装置、制御プログラム、及びノード装置の動作方法
US14/496,805 US9590891B2 (en) 2013-11-15 2014-09-25 Node apparatus, recording medium that has stored control program therein, and method of operating node apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013237089A JP6191411B2 (ja) 2013-11-15 2013-11-15 ノード装置、制御プログラム、及びノード装置の動作方法

Publications (2)

Publication Number Publication Date
JP2015097347A true JP2015097347A (ja) 2015-05-21
JP6191411B2 JP6191411B2 (ja) 2017-09-06

Family

ID=53173193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013237089A Active JP6191411B2 (ja) 2013-11-15 2013-11-15 ノード装置、制御プログラム、及びノード装置の動作方法

Country Status (2)

Country Link
US (1) US9590891B2 (ja)
JP (1) JP6191411B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017060018A (ja) * 2015-09-17 2017-03-23 株式会社東芝 無線通信装置、システム及び方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108919762B (zh) * 2018-07-06 2021-05-25 东莞市李群自动化技术有限公司 基于工业以太网的控制方法及装置
CN111130913B (zh) * 2019-12-31 2021-11-16 联想(北京)有限公司 一种信息处理方法及装置
JP7409247B2 (ja) * 2020-07-14 2024-01-09 株式会社デンソー 不正侵入防止装置、不正侵入防止方法、及び不正侵入防止用プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006020221A (ja) * 2004-07-05 2006-01-19 Hitachi Ltd 無線装置、無線通信システムの制御方法、及び無線通信システム
JP2006270662A (ja) * 2005-03-25 2006-10-05 Kubota Corp 無線通信システム
JP2012253554A (ja) * 2011-06-02 2012-12-20 Mitsubishi Electric Corp 通信システムおよび自動検針システム
WO2013133211A1 (ja) * 2012-03-09 2013-09-12 三菱電機株式会社 データ通信装置、データ通信システム及びデータ通信方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3533153B2 (ja) 2000-06-16 2004-05-31 日本電気通信システム株式会社 ネットワークにおける配送メッセージ送出抑制方法
CN1886941A (zh) 2003-12-23 2006-12-27 艾利森电话股份有限公司 预测性ad-hoc
JP4607942B2 (ja) * 2007-12-05 2011-01-05 富士通株式会社 ストレージシステムおよびルートスイッチ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006020221A (ja) * 2004-07-05 2006-01-19 Hitachi Ltd 無線装置、無線通信システムの制御方法、及び無線通信システム
JP2006270662A (ja) * 2005-03-25 2006-10-05 Kubota Corp 無線通信システム
JP2012253554A (ja) * 2011-06-02 2012-12-20 Mitsubishi Electric Corp 通信システムおよび自動検針システム
WO2013133211A1 (ja) * 2012-03-09 2013-09-12 三菱電機株式会社 データ通信装置、データ通信システム及びデータ通信方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017060018A (ja) * 2015-09-17 2017-03-23 株式会社東芝 無線通信装置、システム及び方法

Also Published As

Publication number Publication date
US20150138949A1 (en) 2015-05-21
US9590891B2 (en) 2017-03-07
JP6191411B2 (ja) 2017-09-06

Similar Documents

Publication Publication Date Title
KR101212838B1 (ko) 노드 장치, 노드 장치가 실행하는 방법 및 컴퓨터 판독가능한 기록 매체
JP4800067B2 (ja) 通信ノード及びルーティング方法
US20090296704A1 (en) Method for multi-path source routing in sensor network
JP2004282270A (ja) 無線アドホック通信システム、端末、その端末における処理方法並びにその方法を端末に実行させるためのプログラム
JP4689630B2 (ja) 通信端末及び通信制御方法
US20080186984A1 (en) Apparatus and method of controlling ad hoc network route
JP6217189B2 (ja) 無線通信装置、無線通信方法、無線通信プログラムおよび無線通信システム
JP6036841B2 (ja) 通信制御方法、ネットワークシステム、および通信装置
JP4708111B2 (ja) アドホック・ネットワーク・システムおよびそのノード装置
JP6191411B2 (ja) ノード装置、制御プログラム、及びノード装置の動作方法
JP4720794B2 (ja) マルチホップ通信ネットワークにおける隣接ノード確認方法、マルチホップ通信ネットワークのノード
JP2008278148A (ja) 通信端末、通信経路制御方法、及びプログラム
JP5036602B2 (ja) 無線アドホック端末およびアドホック・ネットワーク・システム
US9525614B2 (en) Communication system and communication method
JP2015099985A (ja) ノード装置、制御プログラム、無線通信システム、及びデータ通信方法
CN113810274A (zh) 一种路由处理方法及相关设备
JP5664768B2 (ja) ノード、リンク形成方法およびリンク形成プログラム
JP4855176B2 (ja) アドホック・ネットワークを構成するノード
JP5692404B2 (ja) 送信制御方法および送信制御装置
JP4862674B2 (ja) 無線通信装置および無線通信システム
US20240195727A1 (en) System and method for distance vector routing in partitioned networks
Mahendran et al. A Qos Based Progressive Link Prediction Mathematical Approach for Data Transfer in Manet
Arellano-Vázquez et al. Study of routing algorithms considering real time restrictions using a connectivity function
JP2013046245A (ja) 監視システム、監視システムに用いる親端末、および子端末
JP2012147459A (ja) マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170524

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: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191411

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150