(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、特許文献1に開示された技術において、STPを使用した場合、リンク等の状態が変化した際、比較的長い通信不能な時間が発生するという問題がある。この通信不能となる時間は、一般的なネットワークでは殆ど問題にならないが、特に、配電線遠方監視や制御を目的とするネットワークではリアルタイムの対応が重要であることから問題となる。
【0008】
また、ネットワーク内に未起動状態のノードが存在する場合に、他のノードが経路探索を実行すると、未起動状態のノードは応答しないことから、この経路探索は失敗に終わる。経路探索が失敗に終わった場合に成功するまで探索を繰り返すことを防ぐために、他のノードは再度の経路要求を一定時間送信できないブロック状態とされる(例えば、AODV 6.5参照)。しかしながら、他のノードがこのようなブロック状態になっている場合に、未起動状態のノードが起動状態になっても、通信不能状態が一定時間継続してしまうという問題点がある。
【0009】
そこで、本発明は、ネットワークのリンク等の状態が変化した場合でも経路を迅速に最適化することが可能なネットワークシステムおよびその制御方法を提供することを目的としている。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明は、複数のノードがリンクによって通信可能に接続されたネットワークシステムにおいて、前記ネットワークシステムを構成する所定の第1ノードと所定の第2ノードとが新たなリンクによって通信可能に接続された場合、前記第1および第2ノードは、前記新たなリンクによって通信可能に接続されたことを示す情報と、前記第1または第2ノードまでのメトリックを示す情報とを有する通知信号を、前記第1および第2ノード以外の他のノードに対して送信手段によってそれぞれ送信し、前記通知信号を受信した他のノードは、前記通知信号のメトリックを示す情報に対して前記信号を送信した直前のノードから自己までのメトリックを加算してさらに他のノードに対して転送手段によって転送するとともに、前記通知信号を受信した場合
にルーティングテーブルに格納されている経路情報を更新手段によって更新
し、
前記更新手段は、前記ルーティングテーブルに格納されている各エントリのメトリックと、前記通知信号に格納されているメトリックとを比較し、前記通知信号に格納されているメトリックよりも、所定値大きいメトリックを有するエントリについては消去する、ことを特徴とする。
このような構成によれば、ネットワークのリンク等の状態が変化した場合でも経路を迅速に最適化することが可能となる。
【0012】
また、本発明の一側面は、前記通知信号は、前記新たなリンクのメトリックを格納しており、前記更新手段は、前記通知信号に格納されているメトリックに、前記通知信号に格納されている前記新たなリンクのメトリックを加算して得た値よりも大きいメトリックを有するエントリについては消去する、ことを特徴とする。
このような構成によれば、新たなリンクのメトリックが任意の値であっても、効率良く経路を最適化することができる。
【0013】
また、本発明の一側面は、前記メトリックはホップ数であり、前記更新手段は、前記通知信号に格納されているホップ数に、前記通知信号に格納されている前記新たなリンクのホップ数を加算して得た値よりも大きいホップ数を有するエントリについては消去することを特徴とする。
このような構成によれば、ホップ数に基づいて、簡易な計算で効率良く経路を最適化することができる。
【0014】
また、本発明の一側面は、前記更新手段は、前記通知信号を受信した場合には、前記ルーティングテーブルに格納されている全てのエントリを消去することを特徴とする。
このような構成によれば、メトリックに拘わらず一括して消去することで、判定処理を簡易化することができる。
【0015】
また、本発明の一側面は、前記送信手段は、前記通知信号に自ノードを特定するための情報を付与して送信することを特徴とする。
このような構成によれば、既に受信した通知信号か否かを判定することが可能になる。
【0016】
また、本発明の一側面は、前記送信手段は、前記通知信号が複数送信される場合に対応するために、前記通知信号を識別するための識別情報を有していることを特徴とする。
このような構成によれば、同一の通知信号か否かを判定することができるので、重複した処理の発生を回避することができる。
【0017】
また、本発明
は、複数のノードがリンクによって通信可能に接続されたネットワークシステムにおいて、前記ネットワークシステムを構成する所定の第1ノードと所定の第2ノードとが新たなリンクによって通信可能に接続された場合、前記第1および第2ノードは、前記新たなリンクによって通信可能に接続されたことを示す情報と、前記第1または第2ノードまでのメトリックを示す情報とを有する通知信号を、前記第1および第2ノード以外の他のノードに対して送信手段によってそれぞれ送信し、前記通知信号を受信した他のノードは、前記通知信号のメトリックを示す情報に対して前記信号を送信した直前のノードから自己までのメトリックを加算してさらに他のノードに対して転送手段によって転送するとともに、前記通知信号を受信した場合にルーティングテーブルに格納されている経路情報を更新手段によって更新し、前記第1ノードが新規に起動されたノードである場合、前記第1および第2ノードは、新規に起動されたことを示す情報を他のノードに対して送信し、前記他のノードは、前記新規に起動されたことを示す情報を受信した場合には、前記第1ノードに対するブロックを解除する、ことを特徴とする。
このような構成によれば、通信開始までの遅延を短縮することができる。
【0018】
また、本発明の一側面は、前記新規に起動されたことを示す情報は、前記第1ノードが送信することを特徴とする。
このような構成によれば、ネットワークにかかる負担を軽減することができる。
【0019】
また、本発明の一側面は、前記他のノードは、前記新規に起動されたことを示す情報を受信した場合には、前記第1ノードに関する経路情報を消去することを特徴とする。
このような構成によれば、通信開始までの遅延を短縮することができる。
【0020】
また、本発明の一側面は、前記新規に起動されたことを示す情報は、前記通知信号に付加されて送信されることを特徴とする。
このような構成によれば、ネットワークのリンク等の状態が変化したことを通知するとともに、新規に起動されたノードが存在することを併せて通知することができる。
【0021】
また、本発明の一側面は、配電線遠方監視制御に用いることを特徴とする。
このような構成によれば、配電線遠方監視制御用のネットワークのリンク等の状態が変化した場合でも経路を迅速に最適化することが可能となる。
【0022】
また、本発明は、複数のノードがリンクによって通信可能に接続されたネットワークシステムの制御方法において、前記ネットワークシステムを構成する所定の第1ノードと所定の第2ノードとが新たなリンクによって通信可能に接続された場合、前記第1および第2ノードは、前記新たなリンクによって通信可能に接続されたことを示す情報と、前記第1または第2ノードまでのメトリックを示す情報とを有する通知信号を、前記第1および第2ノード以外の他のノードに対して送信ステップによってそれぞれ送信し、前記通知信号を受信した他のノードは、前記通知信号のメトリックを示す情報に対して前記信号を送信した直前のノードから自己までのメトリックを加算してさらに他のノードに対して転送ステップによって転送するとともに、前記通知信号を受信した場合
にルーティングテーブルに格納されている経路情報を更新ステップによって更新
し、
前記更新ステップは、前記ルーティングテーブルに格納されている各エントリのメトリックと、前記通知信号に格納されているメトリックとを比較し、前記通知信号に格納されているメトリックよりも、所定値大きいメトリックを有するエントリについては消去する、ことを特徴とする。
このような方法によれば、ネットワークのリンク等の状態が変化した場合でも経路を迅速に最適化することが可能となる。
【発明の効果】
【0023】
本発明によれば、ネットワークのリンク等の状態が変化した場合でも経路を迅速に最適化することが可能なネットワークシステムとネットワークシステムの制御方法を提供することができる。
【発明を実施するための形態】
【0025】
次に、本発明の実施形態について説明する。
【0026】
(A)実施形態の構成の説明
図1は、本発明の実施形態に係るネットワークシステムの構成の一例を示す図である。なお、本発明は、例えば、高圧配電系統の監視、制御、または、計測を行う機能を有する配電線遠方監視制御等に使用されるネットワークシステムである。
図1に示すように、本実施形態に係るネットワークシステムは、ノード10−1〜10−7およびリンク21〜28を有している。
図2はノードの詳細な構成例を示している。なお、ノード10−1〜10−7は同様の構成を有しているので、以下では、これらをノード10として説明する。
図2に示すように、ノード10は、パケット中継処理部11、制御部12、記憶部13、受信部14−1〜14−n、および、送信部15−1〜15−nを有している。
【0027】
ここで、パケット中継処理部11は、制御部12の制御に応じて、受信部14−1〜14−nによって受信されたパケットを、そのヘッダに格納されている情報に応じて、対応する送信部15−1〜15−nから送出する。制御部12は、記憶部13に記憶されているルーティングテーブル13aに応じて、パケット中継処理部11を制御し、パケットを中継するとともに、後述するように通知信号であるRLINKに関する処理を実行する。なお、ルーティングテーブル13aとしては、パケットの送信先(Destination)のIDまたはアドレスと、その送信先へパケットを送信する場合のネクストホップ(Nexthop)と、その送信先までのメトリックを示す情報(例えば、ホップ数等の情報)が対応付けされて経路情報として格納されている。例えば、ノード10−5は、ノード10−1を送信先とする経路情報として、パケットの送信先IDであるID:01と、ネクストホップとしてID:04と、コストとして“3”を対応付けして有している。これにより、宛先IDが“01”であるパケットをノード10−5が受信した場合には、この経路情報に基づいて、ネクストホップであるノード10−4にパケットを転送する。
【0028】
記憶部13は、半導体メモリによって構成され、パケットを転送するための情報であるルーティングテーブル13aを有するとともに、前述する通知信号に関する処理を実行するためのプログラムやデータを格納している。受信部14−1〜14−nは、リンクを介してパケットを受信する。また、送信部15−1〜15−nは、リンクを介してパケットを送信する。なお、ハイフンの後に同じ数字が付与された受信部および送信部は、同じリンクに接続されている。例えば、受信部14−1と送信部15−1は同じリンクに接続されている。
【0029】
つぎに、本発明の実施形態の動作について説明する。なお、以下では、ノード10−1との間で通信が行われている場合を例に挙げて動作の概略について説明した後に、
図9,10に示すフローチャートに基づいて、各ノードにおいて実行される処理の詳細について説明する。
【0030】
図3は、ノード10−1と通信が行われている場合において、各ノードが有しているノード10−1に関する経路情報の一例を示す図である。
図3において、各ノードの近傍に示している表は、ノード10−1に対応する経路情報であり、NXT(Next)は次の転送先であるネクストホップのノードIDを示し、また、Costは転送先へのメトリックとしてのホップ数を示している。例えば、ノード10−4がノード10−1と通信する際にはノード10−2を経由する必要があるので、ID:02のノードを経由することからNXTは“02”とされ、また、Costは2であるので“2”とされている。
【0031】
このようなネットワークシステムにおいて、
図4に示すように、ノード10−1とノード10−5とがリンク29によって新たに接続されたとする。このようにリンク29が新設された場合、その両端に位置するノード10−1とノード10−5は、リンクが追加されたことを示す通知信号である「RLINK(Route Link)」信号を他のノードに対して送信する。
【0032】
図5は、通知信号であるRLINK信号の一例を示す図である。この図に示すように、RLINK信号は、識別子フィールド、ノードIDフィールド、および、コストフィールドを有している。ここで、識別子フィールドは、この信号がリンクの新設を通知するRLINK信号であることを示す特定のビット列が格納されたフィールドである。また、ノードIDフィールドは、このRLINK信号の送信元のノードIDが格納されているフィールドである。コストフィールドは、このRLINK信号が転送される毎に経路のコストが加算されるフィールドであり、初期値は“1”とされる。
【0033】
図5に示すRLINK信号はリンクが新設されたノード10−1と10−5から送信されるが、以下ではノード10−5から送信されるRLINK信号に注目して説明する。ノード10−5から送信されるRLINK信号は、
図5に示すように、ノードIDフィールドにノード10−5のIDである“05”が格納され、また、コストフィールドには初期値としての“1”が格納されている。
図6は、ノード10−5から他のノード10−4およびノード10−7等に送信されるRLINK信号を示している。
図6において、矢印はノード10−5から送信されるRLINK信号の流れを示し、また、矢印の近傍に付されている数字はRLINK信号のコストフィールドに格納されている値を示している。RLINK信号を受信したノードは、識別子フィールドを参照してこの信号が通知信号としてのRLINK信号であることを認識し、リンクが新設されたことを知る。また、RLINK信号を受信したノードは、コストフィールドに格納されている値に1を加算して、次のノードに転送するとともに、コストフィールドに格納されている値と、
図6中のCost値(記憶部13のルーティングテーブル13aに格納されている値)を比較し、Cost値がコストフィールドに格納されている値+1の値を上回る場合にはその経路情報を消去する。なお、Cost値がコストフィールドに格納されている値+1の値を上回る場合に、その経路情報を消去するのは、目的ノードが、最も近い場合には、新規経路から+1の距離に存在する可能性があるからである。
【0034】
例えば、ノード10−5では、Cost値は“3”であり、コストフィールドに格納されている値は“1”であるので、後者に1を加えた値は2であり、Cost値の方が大きいことから、ノード10−5ではノード10−1を送信先とする経路情報は消去されるとともに、RLINK信号がノード10−4とノード10−7に転送される。ノード10−4では、Cost値は“2”であり、コストフィールドに格納されている値は“1”であるので、後者に“1”を加えた値は“2”であることから、ノード10−4ではノード10−1を送信先とする経路情報は消去されず、コストフィールドに“1”が加算されたRLINK信号がノード10−2とノード10−6に転送される。一方、ノード10−7では、Cost値は“4”であり、コストフィールドに格納されている値は“1”であるので、後者に1を加えた値は2であり、Cost値の方が大きいことから、ノード10−7ではノード10−1を送信先とする経路情報は消去されるとともに、コストフィールドに“1”が加算されたRLINK信号がノード10−6に転送される。
図7は以上の動作によって経路情報が消去された状態を示す図である。
図7では、ノード10−5とノード10−7の経路情報(ノード10−1を送信先とする経路情報)が消去されている。
【0035】
経路情報が消去された後に、消去された送信先への通信要求がなされた場合には、例えば、RREQ(Route Request)が実行され、経路の探索が実行される。これにより、ルーティングテーブルのノード10−1を送信先とする経路情報が
図8に示すように更新される。
図8では、ノード10−5の経路情報が、
図3に示すNXT=04、Cost=3から、NXT=01、Cost=1に更新されている。また、ノード10−7の経路情報が、
図3に示すNXT=06、Cost=4から、NXT=05、Cost=2に更新されている。これにより、ノード10−5は、ノード10−1とリンク29を介して通信を行い、また、ノード10−7はノード10−5を介してノード10−1と通信を行うことになる。なお、これら以外のノードについては、ルーティングテーブル13aのノード10−1を送信先とする経路情報は更新されていないので、
図3の場合と同様の経路により通信が行われる。
【0036】
以上に説明したように、本発明の実施形態では、リンクが新たに追加された場合には、リンクの両端のノードがRLINK信号を送信し、このRLINK信号を受けたノードでは、リンクが新設されたことを知ることができる。また、このRLINK信号を受けたノードでは、コストフィールドの値と、ルーティングテーブルの値とを比較し、コストフィールドの値に“1”を加算した値が、ルーティングテーブルのCost値よりも大きい場合には、その経路情報を消去するようにしたので、新たな経路が存在し得る経路情報のみを消去することにより、経路を迅速に最適化することができる。
【0037】
なお、新規ノードが接続されて初めてのノードの場合には、枝が増加しただけであるので、RLINK信号は送信しない。例えば、
図9に示すように、ノード10−8がリンク30によって追加された場合、分岐する枝が増えただけで、新たな経路は生じないことから、この場合、ノード10−8はRLINK信号を送信しない。
【0038】
つぎに、
図10,11を参照して、各ノードにおいて実行される処理について説明する。
図10はリンクが追加された場合に実行される処理の流れの一例を説明するためのフローチャートである。このフローチャートの処理が開始されると、以下のステップが実行される。
【0039】
ステップS1では、制御部12は、他のノードとのリンクが新設されたか否かを判定し、リンクが新設されたと判定した場合(ステップS1:Yes)にはステップS2に進み、それ以外の場合(ステップS1:No)には処理を終了する。例えば、
図4に示すようにノード10−1とノード10−5がリンク29によって接続された場合にはYesと判定されてステップS2に進む。
【0040】
ステップS2では、制御部12は、新設されたリンクの両端のノードが、新設された以外にも既存のリンクを双方ともに有するか否かを判定し、既存のリンクを有すると判定した場合(ステップS2:Yes)にはステップS3に進み、それ以外の場合(ステップS2:No)には処理を終了する。例えば、ノード10−5の場合には、新設されたリンク29以外にも既存のリンク25,27が存在するので、ステップS3に進む。なお、このステップは、例えば、
図9に示すノード10−8がRLINK信号を送信しないようにするための処理である。
【0041】
ステップS3では、制御部12は、自ノードのノードIDを取得する。例えば、ノード10−5の場合には、制御部12は記憶部13からノードIDとして“05”を取得する。
【0042】
ステップS4では、制御部12は、ステップS3で取得した自ノードのノードIDをRLINKのノードIDフィールドに格納する。例えば、ノード10−5の場合には、制御部12はノードIDである“05”をノードIDフィールドに格納する。
【0043】
ステップS5では、制御部12は、コストフィールドに初期値“1”を格納する。例えば、ノード10−5の場合には、制御部12は初期値である“1”をコストフィールドに格納する。
【0044】
ステップS6では、制御部12は、送信部15−1〜15−nを介して他のノードに対してRLINK信号を送信する。例えば、ノード10−5の場合、制御部12は、リンク25およびリンク27に対応する送信部からRLINK信号を送信する。
【0045】
ステップS7では、制御部12は、ルーティングテーブル13aに格納されている経路情報のうち、Cost値が“3”以上の経路情報を消去する。例えば、ノード10−5の場合、制御部12は、ルーティングテーブル13aに格納されている経路情報のうち、コストが“3”以上の経路情報であるノード10−1とノード10−3を送信先とする経路情報を消去する。
【0046】
なお、同様の処理は、リンク29が新設されたノード10−1でも実行される。
【0047】
以上の処理により、新たなリンクが接続された場合には、リンクが新設されたことを示す識別子と、自己のノードIDとを有し、コストが“1”であるRLINK信号を他のノードに対して送信することができる。また、ステップS2の処理により、既存のリンクが存在するか否かを判定するようにしたので、例えば、
図9に示すように分岐する枝が増えただけで、新たな経路は生じない場合には、RLINK信号を送信しないようにすることができる。
【0048】
つぎに、
図11を参照して、
図10の処理によって送信されたRLINK信号を受信したノードにおいて実行される処理の一例について説明する。
図11に示す処理が実行されると、以下のステップが実行される。
【0049】
ステップS21では、制御部12は、RLINK信号を受信したか否かを判定し、RLINK信号を受信したと判定した場合(ステップS21:Yes)にはステップS22に進み、それ以外の場合(ステップS21:No)には処理を終了する。例えば、ノード10−7において、RLINK信号を受信した場合には、Yesと判定されてステップS22に進む。
【0050】
ステップS22では、制御部12は、受信したRLINK信号のノードIDフィールドからノードIDを取得する。例えば、ノード10−7の場合には、ノードIDフィールドからノードIDとして“05”を取得する。なお、取得したノードIDは、直前に同じIDのRLINK信号を受信した場合には、重複して送信されたことを示すため、後に受信したRLINK信号については無視するようにする。
【0051】
ステップS23では、制御部12は、受信したRLINK信号のコストフィールドからコスト値を取得する。例えば、ノード10−7の場合には、コストフィールドからコスト値として“1”を取得する。
【0052】
ステップS24では、制御部12は、ステップS23で取得したコストフィールドの値に“1”を加算する。例えば、ノード10−7の場合には、コストフィールドの値に“1”を加算するので、“2”となる。
【0053】
ステップS25では、制御部12は、ステップS24で、“1”が加算されたコストフィールドの値を、RLINK信号のコストフィールドに戻して、他のノードに対して送信する。例えば、ノード10−7の場合には、“2”がコストフィールドに格納されたRLINK信号がノード10−6に転送される。
【0054】
ステップS26では、制御部12は、ステップS24で“1”が加算されたコストフィールドの値と、ルーティングテーブルに格納されている各経路情報のコスト値とを比較し、現在のコスト値の方が小さい経路情報が存在する場合(ステップS26:Yes)にはステップS27に進み、それ以外の場合(ステップS26:No)には処理を終了する。例えば、ノード10−7の場合、
図12(A)に示すルーティングテーブル13aを有している。この
図12では、送信先であるDestinationがID:01であるノード10−1の場合、転送先であるNext hopはID:06であるノード10−6であり、メトリックであるCountは“4”である。ステップS26において、ステップS24で“1”が加算されたコストフィールドの値は“2”であり、ルーティングテーブル13aに格納されているCount値には、“3”以上の経路情報が存在しているので、Yesと判定されてステップS27に進む。
【0055】
ステップS27では、制御部12は、ルーティングテーブルからCount値が“3”以上の経路情報を消去する。例えば、ノード10−7の場合には、
図12(B)に示すように、送信先であるDestinationが“01”と“03”の経路情報が消去される。
【0056】
なお、経路情報が消去された後に、消去された経路情報に含まれる送信先に対する通信要求がなされた場合には、RREQにより、経路が再構成される。この結果、例えば、
図12(C)に示すようなルーティングテーブル13aが再構成されることになる。
図12(C)では、ノード10−1とノード10−3を送信先とする経路情報(ハッチングが施された経路情報)が再構成されている。
【0057】
以上の処理によれば、RLINK信号を受信した場合には、コストフィールドの値に“1”を加算して他のノードに転送するとともに、“1”が加算されたコストフィールドの値と、ルーティングテーブルに格納されている現在のコスト値とを比較し、現在のコスト値の方が小さい場合には経路情報が消去される。これにより、新規なリンクが追加された場合には、新たな経路が存在し得る経路のみを消去するようにできるので、経路の最適化を迅速に行うことができる。
【0058】
(C)変形実施形態の説明
以上の実施形態は一例であって、本発明が上述したような場合のみに限定されるものでないことはいうまでもない。例えば、以上の実施形態では、RLINK信号のコストフィールドに格納されている値と、ルーティングテーブルのコスト値を比較し、比較結果に基づいて経路情報を消去するようにしたが、例えば、
図13に示すように、RLINK信号を受信したノードは、コスト値の如何によらず、全ての経路情報を消去するようにしてもよい。このような構成によれば、一律に消去することで、処理を簡単にすることができる。
【0059】
また、以上の実施形態では、RLINK信号としては
図5に示すフォーマットの信号を用いるようにしたが、例えば、
図14に示すようなフォーマットの信号を用いるようにしてもよい。
図14の例では、
図5の場合に比較して、RLINK IDが追加されている。これ以外の構成は、
図5の場合と同様である。ここで、RLINK IDは各RLINK信号に対して個別に与えられるユニークな識別子(この例では「ab」)であり、複数のRLINK信号が送信された場合に、区別する目的で用いられる。このようなRLINK信号を用いれば、例えば、ノードIDとRLINK IDの双方が同じである信号を重複して受信した場合には、同一信号として無視することで、重複した処理がされることを防止できる。
【0060】
また、以上の実施形態では、各ノードにノードIDを付与し、このノードIDに基づいてノードを識別するようにしたが、IDではなく、例えば、各ノードに対してアドレス付与し、このアドレスに基づいて識別するようにしてもよい。
【0061】
また、以上の実施形態では、メトリックとしてホップ数を用いる構成としたが、これ以外の指標をメトリックとして用いるようにしてもよい。例えば、IGRP(Interior Gateway Routing Protocol)のように帯域幅や信頼性等の情報を複合的に採用してメトリックとしてもよい。
【0062】
また、以上の実施形態では、リンク21〜29は、メトリックが全て1である場合を例に挙げて説明したが、例えば、
図15に示すように、リンクのメトリックが1以外であってもよい。
図15では、リンク24,25,26のメトリックが“2”とされ、それ以外は“1”とされている。また、
図15において、各ノードの近傍に示している表は、ノード10−1に対応する経路情報である。例えば、ノード10−5の近傍の表に示す「NXT to 1:4」はIDが“1”であるノード10−1へパケットを転送する場合の次の転送先であるネクストホップ“4”を示している。「Cost to ID 1:5」はIDが“1”であるノード10−1までのメトリックが“5”であることを示している。また、「Cost to NXT:2」は次の転送先であるネクストホップのノード10−4までのメトリックが“2”であることを示している。なお、
図15では、ノード10−1の近傍の表における「NXT to 1:−」の“−”は空欄を示し、「Cost
to ID 1:0」は自分自身であるノード10−1までのメトリックは“0”であることを示し、また、「Cost to NXT:−」の“−”は前述と同様に空欄を示している。
【0063】
図15に示すネットワークに対して、
図16に示すように、メトリックが“2”であるリンク29がノード10−1とノード10−5の間に接続されたとする。この場合には、
図17に示すようなRLINK信号がノード10−1とノード10−5から送信される。なお、
図17では、
図14に示すRLINK信号に対して、「ニューリンクのコストフィールド」が追加されている。これ以外の構成は、
図14の場合と同様である。ここで、ニューリンクのコストフィールドは、新たに追加されたリンク(ニューリンク)のコスト(メトリック)が格納されるフィールドである。例えば、
図16の例では、リンク29のコストである“2”が格納される。
【0064】
図18はRLINK信号の流れを説明する図である。
図18に示す矢印はノード10−5から送信されるRLINK信号の流れを示し、また、矢印の近傍に付されている数字はRLINK信号のコストフィールドに格納されている値を示している。RLINK信号を受信したノードは、識別子フィールドを参照してこの信号が通知信号としてのRLINK信号であることを認識し、リンクが新設されたことを知る。また、RLINK信号を受信したノードは、コストフィールドに格納されている値に、直前のノードからそのノードまでのコストを加算して、次のノードに転送するとともに、コストフィールドに格納されている値と、
図18中のCost to ID1:に続く数値を比較し、to ID1:に続く数値が、コストフィールドに格納されている値にニューリンクのコストフィールドの値を加算して得た値を上回る場合にはその経路情報を消去する。
【0065】
例えば、ノード10−5では、Cost to ID1:に続く数値は“5”であり、コストフィールドに格納されている値は“1”であるので、後者にニューリンクのコストフィールドの値2を加えた値は“3”であり、“5”の方が大きいことから、ノード10−5ではノード10−1を送信先とする経路情報は消去されるとともに、RLINK信号がノード10−4とノード10−7に転送される。ノード10−4では、Cost to
ID1:に続く数値は“3”であり、コストフィールドに格納されている値は“3”であるので、後者に“2”を加えた値は“5”であることから、ノード10−4ではノード10−1を送信先とする経路情報は消去されず、コストフィールドに“2”が加算されたRLINK信号がノード10−2とノード10−6に転送される。一方、ノード10−7では、Cost値は“6”であり、コストフィールドに格納されている値は“1”であるので、後者にニューリンクのコストフィールドの値“2”を加えた値は“3”であり、Cost値の方が大きいことから、ノード10−7ではノード10−1を送信先とする経路情報は消去されるとともに、コストフィールドに“1”が加算されたRLINK信号がノード10−6に転送される。さらに、ノード10−2では、Cost値は“1”であり、コストフィールドに格納されている値はリンク24のメトリックである“2”を加算して得た“5”であるので、後者にニューリンクのコストフィールドの値“2”を加えた値は“7”であり、Cost値の方が小さいことから、ノード10−2ではノード10−1を送信先とする経路情報は消去されない。そして、コストフィールドにリンク24の“2”が加算されたRLINK信号がノード10−6に転送される。
図19は以上の動作によって経路情報が消去された状態を示す図である。
図19では、ノード10−5とノード10−7の経路情報(ノード10−1を送信先とする経路情報)が消去されている。
【0066】
経路情報が消去された後に、消去された送信先への通信要求がなされた場合には、例えば、RREQが実行され、経路の探索が実行される。これにより、ルーティングテーブルのノード10−1を送信先とする経路情報が
図20に示すように更新される。
図20では、ノード10−5の経路情報が、NXT to 1:1、Cost to ID1:2、Cost to NXT :2に更新されている。また、ノード10−7の経路情報が、NXT to 1:5、Cost to ID1:3、Cost to NXT :1に更新されている。これにより、ノード10−5は、ノード10−1とリンク29を介して通信を行い、また、ノード10−7はノード10−5を介してノード10−1と通信を行うことになる。なお、これら以外のノードについては、ルーティングテーブル13aのノード10−1を送信先とする経路情報は更新されていないので、
図3の場合と同様の経路により通信が行われる。
【0067】
なお、
図17に示すRLINK信号では、ニューリンクのコストフィールドを設けるようにしたが、例えば、このニューリンクのコストフィールドを設けずに、コストフィールドに、ニューリンクのコストフィールドの値を初期値として格納するようにしてもよい。そのような構成によれば、RLINK信号のデータ量を減らすことができる。
【0068】
また、
図12に示すルーティングテーブル13aは一例であって、これ以外の情報を有するようにしてもよい。例えば、その経路情報の有効期間を示す情報等を有するようにしてもよい。
【0069】
また、
図10に示すフローチャートでは、ステップS6でRLINK信号を送信した後に、ステップS7で自ノードの経路情報を消去するようにしたが、自ノードの経路情報を消去した後にRLINK信号を送信するようにしてもよい。
【0070】
また、
図1に示す実施形態では、7つのノード10−1〜10−7と、8つのリンク21〜28を有するようにしたが、これ以外の数のノードとリンクを有するようにしてもよい。また、ノードとリンクの接続態様は、
図1の例には限定されない。
【0071】
また、
図5に示すように、RLINK信号のコストフィールドの初期値を“1”に設定して送信するようにしたが、もちろん、これ以外の値(例えば、“0”)に設定するようにしてもよい。
【0072】
また、
図5に示すように、RLINK信号には、ノードIDフィールドを設けるようにしたが、このノードIDフィールドは設けなくてもよい。識別子フィールドによってRLINK信号であることを認識し、コストフィールドによって消去の要否を判定できるからである。
【0073】
また、以上の実施形態では、新たなリンクが追加された場合の処理を中心にして説明したが、本願発明は、前述したように、高圧配電系統の監視等を行う機能を有する配電線遠方監視制御等に利用されることを想定しているので、停電が発生した場合には、停電解消後に直ちに通信可能となることが要求される。ところで、現状のルーティング方式では、「経路探索タイムアウト」と呼ばれるタイムアウトが生じ、このタイムアウトが起動時間を決める支配的な要因なっている。
図21を参照して説明する。この図の例では、ノード10−1〜10−3が接続されており、図の縦方向は時間の経過を示している。
図21の上段の例では、ノード10−1,10−3は起動状態であり、ノード10−2は未起動状態である。このような場合に、未起動状態のノード10−2に対して、例えば、ノード10−1から経路探索が実行されると、この経路探索は失敗に終わる。経路探索が失敗に終わった場合、制限がなければ、成功するまで探索が繰り返される。このため、経路探索の乱発を防ぐために、経路探索に失敗した場合、例えば、最初の経路探索のタイムアウト時間の2倍以上の時間が経過しないと、再度の経路要求が送信できないブロック状態とされる(例えば、AODV 6.5参照)。このようなブロック状態(以下では「第1ブロック状態」と称する)は一定期間継続されるため、その間に、
図21の中段に示すようにノード10−2が起動状態になっても、通信できない状態が継続することから、通信開始のタイミングが遅延する要因となる。そして、この状態が終了すると、
図21の下段に示すようにタイムアウトが完了し、経路探索に成功した場合にはノード10−2と通信可能な状態となる。
【0074】
また、ノードが停止と復帰を繰り返すような場合には、前回の動作時における経路情報が各ノードに残存している可能性がある。このような残存した古い情報によって誤動作を生じないようにするために、各ノードでは、古い情報が消滅するまで、経路更新要求をブロックする処理が行われている(例えば、AODV RFC3561 6.13 P27)。このようなブロック状態(以下では「第2ブロック状態」と称する)もノード起動後の通信開始のタイミングが遅延する要因となる。
【0075】
本実施形態では、前述した2種類のブロックによる通信開始の遅れを防ぐため、ブロック状態を解除するための信号を新規に起動されたノードがブロードキャストによってネットワーク全体に向けて送信する。
図22は、このような動作を実行するネットワークの一例を示している。
図22において、交差線のハッチングが施されたノード10−3〜10−6は起動状態のノードを示し、斜線のハッチングが施されたノード10−2,10−7,10−8はブロック状態のノードを示し、ハッチング無しのノード10−1は新規起動されたノードを示している。このような状態において、新規起動されたノード10−1は、
図23に示すようなRLINK信号を他のノードに対してブロードキャストにて送信する。なお、
図23に示すRLINK信号は
図14に示すRLINK信号と比較すると、新規起動ノードフラグが追加されている。ここで、新規起動ノードフラグは、値が“1”の場合には、当該ノードが新規起動されたノードであることを示すフラグである。このようなRLNK信号を受信した周辺のノードは、新規起動ノードフラグが“1”であることから、新規起動されたノード(
図22ではノード10−1)が存在することを認識し、ノードIDフィールドの情報を参照し、このノードをブロックしている場合には、このノードに対する第1ブロック状態を解除する。また、経路情報を参照し、このノードに関する経路情報が存在する場合には、このノードに関する旧来の経路情報を削除することで、第2ブロック状態の原因を排除する。これにより、新規起動されたノードが存在する場合であっても、通信開始が遅延されることを防止できる。なお、新規起動されたノードに隣接するノードがRLINKを送信する場合や、新規リンクが新規起動ノードを有しない場合(線路のみの増設の場合)は、
図23に示す新規起動ノードフラグを“0”(オフ)の状態にして送信することで、前述の場合と区別することができる。なお、以上では、新規に起動されたノードから、新規起動されたことを示す情報を送信するようにしたが、このような方法によれば、隣接するノードが送信する場合に比較してネットワークにかかる負担を軽減することができる。すなわち、隣接するノードから送信する場合には、未起動の状態で多くの情報を送信することから、この情報によってネットワークに負担がかかる。一方、新規起動されたノードから送信する場合には、起動が完了するまで待つ必要があるが、不必要に情報が送信されないので、ネットワークにかかる負担を軽減できる。
【0076】
つぎに、
図24および
図25を参照して、前述した動作の詳細を説明する。まず、
図24は、リンクが追加されたノードにおいて実行される処理の一例を説明するためのフローチャートである。なお、この図において、
図10と対応する部分には同一の符号を付してあるのでその説明は省略する。
図24は、
図10と比較すると、ステップS8,S9の処理が追加されており、それ以外は
図10の場合と同様である。ステップS8では、自身が新規起動ノードであるか否かを判定し、自身が新規起動ノードであると判定した場合(ステップS8:Yes)にはステップS9に進み、それ以外の場合(ステップS8:No)には処理を終了する。ステップS9では、
図23に示す新規起動ノードフラグをオン(=“1”)の状態に設定し、ステップS3に進み、前述の場合と同様の処理を実行する。以上の処理によれば、自身が新規起動ノードの場合には、新規起動ノードをオンの状態にしたRLINK信号を送信することになる。
【0077】
つぎに、
図25を参照して、RLINK信号を受信したノードにおいて実行される処理の一例について説明する。なお、この図において、
図11と対応する部分には同一の符号を付してあるのでその説明は省略する。
図25は、
図11と比較すると、ステップS28〜S31の処理が追加されており、それ以外は
図11の場合と同様である。ステップS28では、ステップS21で受信したRLINK信号の新規起動フラグ(
図23参照)がオンの状態であるか否かを判定し、オンの状態であると判定した場合(ステップS28:Yes)にはステップS29に進み、それ以外の場合(ステップS28:No)には処理を終了する。ステップS29では、該当ノードをブロック中か否かを判定し、ブロック中と判定した場合(ステップS29:Yes)にはステップS30に進み、それ以外の場合(ステップS29:No)にはステップS31に進む。ステップS30では、該当ノードに対するブロックを解除する。例えば、
図22の例では、ノード10−1に対するブロックが解除される。これにより、第1ブロックが解除される。ステップS31では、該当ノードに関連する経路情報を消去する。例えば、
図22の例では、ノード10−1に対する経路情報が消去される。これにより第2ブロックの原因が消去される。以上の処理によれば、前述した第1ブロックを解除するとともに、第2ブロックの発生を抑制することができるので、通信開始に遅延が生じることを防止できる。
【0078】
なお、以上の実施形態では、RLINK信号に新規起動ノードフラグを付加して他のノードに新規起動の発生を通知するようにしたが、このような情報をRLINK信号とは別に送るようにしてもよい。
図26は、新規起動ノードが他のノードに対してブロックを解除するように要求するブロック解除信号の構成例を示す図である。
図26の例では、識別子フィールドと、ノードIDフィールドを有している。ここで、識別子フィールドは、このパケットがブロック解除信号であることを示す情報が格納されている。また、ノードIDフィールドには、ブロック解除の対象となるノードのIDが格納されている。なお、このブロック解除信号の送信のタイミングは、RLINK信号の送信前でも送信後でもどちらでもよい。このようなブロック解除信号を送信することで、周辺のノードは、ノードIDフィールドに格納されたIDを有するノードがブロック解除の対象になることを認識し、前述したように、ブロックを解除するとともに、関連する情報を消去することで、前述した第1ブロックを解除するととともに、第2ブロックの発生を抑制することができる。
【0079】
図27は、
図26に示すブロック解除信号を受信した場合の動作を説明するフローチャートである。
図27に示す処理が実行されると、以下のステップが実行される。すなわち、ステップS51では、ブロック解除信号を受信したか否かを判定し、受信したと判定した場合(ステップS51:Yes)にはステップS52に進み、それ以外の場合(ステップS51:No)には処理を終了する。ステップS52では、ノードIDフィールドからノードIDを取得する。ステップS54では、該当ノードをブロック中か否かを判定し、ブロック中と判定した場合(ステップS54:Yes)にはステップS55に進み、それ以外の場合(ステップS54:No)にはステップS56に進む。ステップS55では、該当ノードに対するブロックを解除する。ステップS56では、該当ノードに関連する経路情報を消去し、処理を終了する。以上の処理によれば、ブロック解除信号を受信した場合に、ブロックを解除するとともに、関連する経路情報を消去することができるので、前述した第1ブロックを解除するとともに、第2ブロックの発生を抑制することができるので、通信開始に遅延が生じることを防止できる。