(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する輻輳通知方法であって、
アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得し、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算し、
前記経路長の増加量に関する分散の偏差値を算出し、
前記偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知することを特徴とする輻輳通知方法。
【請求項２】
前記分散を求める場合には、収集間隔毎に分散を求め、求めた分散の偏差値を算出し、分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知することを特徴とする請求項１に記載の輻輳通知方法。
【請求項３】
アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得する通信部と、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算する増加量計算部と、
前記経路長の増加量に関する分散を算出する分散算出部と、
前記分散の偏差値を算出する偏差値算出部と、
前記分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を出力する警告通知部と
を有することを特徴とする輻輳通知装置。
【請求項４】
コンピュータに、
アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得し、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算し、
前記経路長の増加量に関する分散の偏差値を算出し、
前記偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知する処理を実行させる輻輳通知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳通知プログラム等に関する。
【背景技術】
【０００２】
アドホックネットワークを利用した通信システムが存在する。アドホックネットワークは、複数のノードが自律分散的に無線によって相互に接続するネットワークである。アドホックネットワークでは、アクセスポイントは設置されず、各ノードが、隣接ノードから受信したパケットを通信経路情報に基づき他の隣接ノードに中継することで、通信経路を形成する。
【０００３】
アドホックネットワークでは、電波強度の変化、利用可能なネットワーク容量の変化、通信障害などによって、通信経路が頻繁に変化する。図９は、アドホックネットワークの通信経路の変化を示す図である。図９に示すように、このアドホックネットワークは、ノード１ａ〜１ｋ、ゲートウェイ２を有する。
【０００４】
図９の左側は、正常運用時のアドホックネットワークの通信経路を示している。このような正常運用時では、ゲートウェイ宛のパケットは、最短経路でゲートウェイ２に到達する。例えば、ノード１ａから送信されるパケットは、ノード１ｂを介してゲートウェイ２に到達する。また、ノード１ｃから送信されるパケットは、ノード１ｄを介してゲートウェイ２に到達する。
【０００５】
図９の中央は、ネットワーク容量が限界に近づき、輻輳が発生した場合の通信経路を示している。輻輳が発生すると縮退運用が開始され、ゲートウェイ２宛のパケットは、通信不可能な経路を迂回してゲートウェイ２に到達する。例えば、ノード１ｄとの通信が不可能な場合には、ノード１ｃから送信されるパケットは、ノード１ｋ、１ｊ、１ｈを介してゲートウェイ２に到達する。ノード１ｃから送信されるパケットの経路長は、図９の左側の経路長と比較して長くなっている。
【０００６】
図９の右側は、システム異常が発生した場合の通信経路を示している。通信不可能な経路が増加し、ゲートウェイ２に到達するための経路が無くなってしまうと、パケットがゲートウェイ２に到達しなくなり、システム異常が発生する。例えば、ノード１ａ、１ｃから送信されるパケットは、迂回を繰り返すものの、ゲートウェイ２と、ノード１ｂ、１ｄ、１ｈ、１ｇ、１ｆとの間で通信が行えないため、ゲートウェイ２に辿り着くことができない。
【０００７】
図９で説明したようなシステム異常が発生することを未然に防止するために、システム異常の予兆を把握することが求められる。従来では、ネットワーク容量に対する使用率などを基にしてシミュレーションを行い、ネットワーク容量と時間経過との関係を求めることで、システム異常の原因を分析している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５２４３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、システム異常の予兆となる輻輳を検出することが難しいという問題があった。
【００１０】
アドホックネットワークの輻輳をシミュレーションで検出する場合には、ネットワーク容量を利用することとなる。このネットワーク容量は、トポロジーの違い、隠れ端末の影響、ノードの追加または削除、電波の状態などによって大きく変動するため、これら複雑な要因を事前に予測し、ネットワーク容量を求めることは困難である。
【００１１】
図１０は、ネットワーク容量とシミュレーションで導出したネットワーク容量との関係を示す図である。図１０の線３は、実際のネットワーク容量を示す。線４は、シミュレーションで導出したネットワーク容量を示す。実際のネットワーク容量は、上述した各種の要因によって、常に変動する。シミュレーションでは、全ての要因を予め予測することはできないので、例えば、ノードの追加や削除などが行われる度に、シミュレーションをやり直す。例えば、図１０の４ａ、４ｂにおいて、ノードの追加または削除が発生し、シミュレーションのやり直しが行われている。このように、シミュレーションでは、変動する要因に応じて、再計算しつつ、実際のネットワーク容量の変化に追従することになり、シミュレーションで輻輳をリアルタイムに検出することは難しい。
【００１２】
開示の技術は、上記に鑑みてなされたものであって、アドホックネットワークの輻輳を検出することができる輻輳通知方法、輻輳通知装置および輻輳通知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願の開示する輻輳通知方法は、アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを、ノード毎に取得し、前後のパケットに含まれるホップ数に基づいて経路長の増加量を計算する。また、輻輳通知方法は、前記経路長の増加量に関する分散の偏差値を算出し、前記偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知する。
【発明の効果】
【００１４】
本願の開示する輻輳通知方法によれば、アドホックネットワークの輻輳を検出することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本実施例にかかるアドホックネットワークの一例を示す図である。
【図２】図２は、パケットのデータ構造の一例を示す図である。
【図３】図３は、ゲートウェイの構成を示す機能ブロック図である。
【図４】図４は、ホップ数テーブルのデータ構造の一例を示す図である。
【図５】図５は、増加量テーブルのデータ構造の一例を示す図である。
【図６】図６は、分散の偏差値とネットワーク異常との関係を示す図である。
【図７】図７は、ゲートウェイの処理手順を示すフローチャートである。
【図８】図８は、実施例にかかる輻輳通知装置を構成するコンピュータのハードウェア構成を示す図である。
【図９】図９は、アドホックネットワークの通信経路の変化を示す図である。
【図１０】図１０は、ネットワーク容量とシミュレーションで導出したネットワーク容量との関係を示す図である。
【発明を実施するための形態】
【００１６】
以下に、本願の開示する輻輳通知方法、輻輳通知装置および輻輳通知プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１７】
図１は、本実施例にかかるアドホックネットワークの一例を示す図である。図１に示すように、このアドホックネットワークは、ノード１０ａ〜１０ｈ、ゲートウェイ１００を有する。また、ゲートウェイ１００は、他のネットワークに接続されているものとする。本実施例では、ゲートウェイ１００に、輻輳通知装置に対応する機能が含まれている場合を例にして説明する。
【００１８】
ノード１０ａ〜１０ｈは、隣接ノードと無線により接続され、隣接ノードから受信したパケットを通信経路情報に基づき他の隣接ノードに中継することで、パケットを宛先に送信する。また、ノード１０ａ〜１０ｈは、他のノードとハローパケット（Hello  packet）を送受信することで、通信経路情報を更新する。
【００１９】
図１に示す例では、ノード１０ａとノード１０ｅとが無線により接続される。ノード１０ｂとノード１０ｆとが無線により接続される。ノード１０ｃとノード１０ｇとが無線により接続される。ノード１０ｄとノード１０ｈとが無線により接続される。また、ゲートウェイ１００は、ノード１０ａ〜１０ｄと無線により接続される。
【００２０】
ゲートウェイ１００は、隣接ノードからパケットを受信した場合には、今回取得したパケットと前回取得したパケットとの経路長の差の分散を利用して、輻輳状態を検出する。経路長は、パケットがゲートウェイ１００に到達するまでに経由したノード数に対応する。また、ゲートウェイ１００は、通常のゲートウェイと同様にして、隣接するノードからパケットを取得した場合に、取得したパケットの宛先となる他のネットワークにパケットを送信する。
【００２１】
アドホックネットワークで送受信されるパケットのデータ構造の一例について説明する。図２は、パケットのデータ構造の一例を示す図である。図２に示すように、パケットは、制御ヘッダ、ホップ数、各種データを含む。制御ヘッダは、パケットの送信先のアドレス情報およびパケットの送信元のアドレス情報を含む。ホップ数は、パケットが経由したノードの数を示す。各種データは、ユーザデータ等を含む。
【００２２】
次に、図１に示したゲートウェイ１００の構成の一例について説明する。図３は、ゲートウェイの構成を示す機能ブロック図である。図３に示すように、このゲートウェイ１００は、記憶部１１０、通信部１２０、増加量計算部１３０、分散算出部１４０、偏差値算出部１５０、警告通知部１６０を有する。
【００２３】
記憶部１１０は、ホップ数テーブル１１１、増加量テーブル１１２を記憶する記憶装置である。記憶部１１０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００２４】
ホップ数テーブル１１１は、パケット受信先のノード毎に、パケットのホップ数を順次記憶するテーブルである。図４は、ホップ数テーブルのデータ構造の一例を示す図である。図４に示すように、このホップ数テーブル１１１は、ノード識別情報と、ホップ数情報とを対応づけて記憶する。ノード識別情報は、ノードを識別する情報である。例えば、ノード識別情報１０ａ〜１０ｄに対応するノードを、ノード１０ａ〜１０ｄとする。ホップ数情報は、該当するノードから受信したパケットのホップ数を、時系列順に並べた情報である。
【００２５】
図４の１段目に示すように、ノード１０ａから受信したパケットに含まれるホップ数は、時系列順に、Ａ１、Ａ２、Ａ３、Ａ４、・・・となる。図４の２段目に示すように、ノード１０ｂから受信したパケットに含まれるホップ数は、時系列順に、Ｂ１、Ｂ２、Ｂ３、Ｂ４、・・・となる。図４の３段目に示すように、ノード１０ｃから受信したパケットに含まれるホップ数は、時系列順に、Ｃ１、Ｃ２、Ｃ３、Ｃ４、・・・となる。図４の４段目に示すように、ノード１０ｄから受信したパケットに含まれるホップ数は、時系列順に、Ｄ１、Ｄ２、Ｄ３、Ｄ４、・・・となる。
【００２６】
増加量テーブル１１２は、前回のパケットのホップ数と比較した今回のパケットのホップ数の増加量を、ノード毎に記憶するテーブルである。図５は、増加量テーブルのデータ構造の一例を示す図である。図５に示すように、この増加量テーブル１１２は、ノード識別情報と、増加量情報とを対応づけて記憶する。増加量情報は、前後のパケットのホップ数の増加量を、時系列に並べた情報である。
【００２７】
図５の１段目に示すように、ノード１０ａから受信した前後のパケットの増加量は、時系列順に、ａ１、ａ２、ａ３、ａ４、・・・となる。例えば、図４に示したＡ１とＡ２との差がａ１に対応し、Ａ２とＡ３との差がａ２に対応し、Ａ３とＡ４との差がａ３に対応する。
【００２８】
図５の２段目に示すように、ノード１０ｂから受信した前後のパケットの増加量は、時系列順に、ｂ１、ｂ２、ｂ３、ｂ４、・・・となる。例えば、図４に示したＢ１とＢ２との差がｂ１に対応し、Ｂ２とＢ３との差がｂ２に対応し、Ｂ３とＢ４との差がｂ３に対応する。
【００２９】
図５の３段目に示すように、ノード１０ｃから受信した前後のパケットの増加量は、時系列順に、ｃ１、ｃ２、ｃ３、ｃ４、・・・となる。例えば、図４に示したＣ１とＣ２との差がｃ１に対応し、Ｃ２とＣ３との差がｃ２に対応し、Ｃ３とＣ４との差がｃ３に対応する。
【００３０】
図５の４段目に示すように、ノード１０ｄから受信した前後のパケットの増加量は、時系列順に、ｄ１、ｄ２、ｄ３、ｄ４、・・・となる。例えば、図４に示したＤ１とＤ２との差がｄ１に対応し、Ｄ２とＤ３との差がｄ２に対応し、Ｄ３とＤ４との差がｄ３に対応する。
【００３１】
通信部１２０は、隣接ノードからパケットを受信した場合に、受信したパケットのホップ数を、ノード識別情報と対応づけて、ホップ数テーブル１１１に登録する。例えば、通信部１２０は、ノード１０ａからパケットを受信した場合には、受信したパケットのホップ数を、ノード識別情報１０ａと対応づけて、ホップ数テーブル１１１のホップ数情報に記録する。また、通信部１２０は、パケットの制御ヘッダを参照し、宛先に向けてパケットを転送する。
【００３２】
増加量計算部１３０は、通信部１２０がパケットを受信した場合に、パケットのホップ数の増加量をノード毎に計算する処理部である。増加量計算部１３０は、パケットのホップ数をホップ数テーブル１１１から取得する。増加量計算部１３０は、同じノードから受信した前後のパケットのホップ数を比較することで、ノード毎の増加量を計算する。増加量計算部１３０は、ホップ数の増加量を、ノード識別情報と対応づけて増加量テーブル１１２に登録する。
【００３３】
例えば、通信部１２０が、ノード１０ａからパケットを受信し、このパケットのホップ数Ａ３をホップ数情報に登録した場合には、増加量計算部１３０は、ホップ数Ａ４からホップ数Ａ３を減算する。減算した値が３ａとすると、増加量計算部１３０は、ノード識別情報１０ａに対応づけて、増加量ａ３を増加量テーブル１１２の増加量情報に登録する。
【００３４】
分散算出部１４０は、増加量テーブル１１２に基づいて、増加量の分散を算出する処理部である。分散算出部１４０は、算出した分散を偏差値算出部１５０に出力する。ここでは、ノード１０ａ、１０ｂ、１０ｃ、１０ｄに対応するホップ数の増加量に着目した分散を算出する場合について説明する。また、ノード識別情報１０ａの増加量情報を時系列順に「ａ１、ａ２、ａ３、ａ４」とする。ノード識別情報１０ｂの増加量情報を時系列順に「ｂ１、ｂ２、ｂ３、ｂ４」とする。ノード識別情報１０ｃの増加量情報を時系列順に「ｃ１、ｃ２、ｃ３、ｃ４」とする。ノード識別情報１０ｄの増加量情報を時系列順に「ｄ１、ｄ２、ｄ３、ｄ４」とする。
【００３５】
まず、分散算出部１４０は、各増加量の平均値を算出する。例えば、分散値算出部１４０は、平均値Ｘを式（１）に基づいて算出する。
【００３６】
平均値Ｘ＝（ａ１＋ａ２＋ａ３＋ａ４＋ｂ１＋ｂ２＋ｂ３＋ｂ４＋ｃ１＋ｃ２＋ｃ３＋ｃ４＋ｄ１＋ｄ２＋ｄ３＋ｄ４）／１６・・・（１）
【００３７】
分散算出部１４０は、平均値Ｘを算出した後に、平均値Ｘから各時点の増加量の平均値を減算することで、各時点の分散を算出する。上記の例では、下記に示す式（２）により、分散４が算出される。分散算出部１４０は、算出した分散を偏差値算出部１５０に出力する。ただし、ａ１〜ｄ１が古いデータで、ａ４〜ｄ４が最新のデータであるものとする。
【００３８】
分散４＝{(Ｘ−（ａ１＋ｂ１＋ｃ１＋ｄ１）／４)２＋(Ｘ−（ａ２＋ｂ２＋ｃ２＋ｄ２）／４)２＋(Ｘ−（ａ３＋ｂ３＋ｃ３＋ｄ３）／４)２＋(Ｘ−（ａ４＋ｂ４＋ｃ４＋ｄ４）／４)２}／４・・・（２）
【００３９】
分散算出部１４０は、新たな増加量が増加量テーブル１１２に登録された場合には、平均値Ｘを算出し直し、新たな増加量に基づいて、分散を算出する。例えば、ノード識別情報１０ａ〜１０ｄにそれぞれ対応する増加量が「ａ５、ｂ５、ｃ５、ｄ５」とすると、この増加量を加味して、平均値Ｘを算出する。「ａ５、ｂ５、ｃ５、ｄ５」を加味した平均値Ｘは、式（３）で求められる。
【００４０】
平均値Ｘ＝（ａ２＋ａ３＋ａ４＋a５＋ｂ２＋ｂ３＋ｂ４＋ｂ５＋ｃ２＋ｃ３＋ｃ４＋ｃ５＋ｄ２＋ｄ３＋ｄ４＋ｄ５）／１６・・・（３）
【００４１】
そして、分散算出部１４０は、分散５を算出し、算出した分散を偏差値算出部１５０に出力する。例えば、分散５は下記の式（４）のようになる。ただし、下記の平均値Ｘは、「ａ５、ｂ５、ｃ５、ｄ５」を加味した平均値である。
【００４２】
分散５＝{(Ｘ−（ａ２＋ｂ２＋ｃ２＋ｄ２）／４)２＋(Ｘ−（ａ３＋ｂ３＋ｃ３＋ｄ３）／４)２＋(Ｘ−（ａ４＋ｂ４＋ｃ４＋ｄ４）／４)２＋(Ｘ−（ａ５＋ｂ５＋ｃ５＋ｄ５）／４)２}／４・・・（４）
【００４３】
分散算出部１４０は、新たな増加量が増加量テーブル１１２に登録される度に、上記処理を繰り返し実行し、分散を算出する。
【００４４】
偏差値算出部１５０は、分散の偏差値を算出する処理部である。ここでは一例として、分散１〜分散４を基にして、分散４の偏差値を算出する場合について説明する。まず、偏差値算出部１５０は、分散の平均値Ｙを算出する。
【００４５】
偏差値算出部１５０は、分散の平均値Ｙを算出した後に、分散４の標準偏差を求める。例えば、分散の数は４、平均値Ｙとする。偏差値算出部１５０は、平均値Ｙを、式（５）により求める。偏差値算出部１５０は、分散１〜４の標準偏差σを式（６）によって求める。
【００４６】
平均値Ｙ＝（分散１＋分散２＋分散３＋分散４）／４・・・（５）
【００４７】
標準偏差σ＝（（分散１−平均値Ｙ）２＋（分散２−平均値Ｙ）２＋（分散３−平均値Ｙ）２＋（分散４−平均値Ｙ）２）／４）１／２・・・（６）
【００４８】
偏差値算出部１５０は、分散１〜４の標準偏差σを算出した後に、分散４の偏差値を求める。例えば、偏差値算出部１５０は、分散４の偏差値を式（７）によって求める。
【００４９】
分散４の偏差値＝１０×（分散４−平均値Ｙ）／標準偏差σ＋５０・・・（７）
【００５０】
偏差値算出部１５０は、新たな分散を分散算出部１４０から取得した場合には、新たな分散を加味して平均値Ｙを算出し直し、新たな分散の偏差値を算出する。新たな分散を分散５とすると、偏差値算出部１５０は、平均値Ｙを式（８）によって求める。また、偏差値算出部１５０は、分散５を加味した標準偏差を式（９）によって求める。また、偏差値算出部１５０は、分散５の偏差値を式（１０）により求める。
【００５１】
平均値Ｙ＝（分散２＋分散３＋分散４＋分散５）／４・・・（８）
【００５２】
標準偏差σ＝（（分散２−平均値Ｙ）２＋（分散３−平均値Ｙ）２＋（分散４−平均値Ｙ）２＋（分散５−平均値Ｙ）２）／４）１／２・・・（９）
【００５３】
分散５の偏差値＝１０×（分散５−平均値Ｙ）／標準偏差σ＋５０・・・（１０）
【００５４】
偏差値算出部１５０は、新たな分散を取得する度に、上記処理を繰り返し、新たな分散の偏差値を算出する。偏差値算出部１５０は、算出した分散の偏差値を警告通知部１６０に出力する。
【００５５】
警告通知部１６０は、偏差値算出部１５０から分散の偏差値を取得し、分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知する処理部である。例えば、警告通知部１６０は、分散の偏差値が７０を超えた場合に、警告を通知する。警告通知部１６０は、ゲートウェイ１００に接続されたディスプレイなどに、警告を出力しても良いし、アドホックネットワークを管理する管理装置等に、警告を通知してもよい。
【００５６】
なお、処理を開始した時点では、分散のサンプル数が少ないため、分散の偏差値が安定しない場合がある。このため、警告通知部１６０は、処理を開始してから所定の時間経過した後に、分散の偏差値が所定の値を超えているか否かを判定して良い。または、警告通知部１６０は、分散の偏差値を取得する回数が所定の回数を超えた後に、分散の偏差値が所定の値を超えているか否かを判定して良い。
【００５７】
上記通信部１２０、増加量計算部１３０、分散算出部１４０、偏差値算出部１５０、警告通知部１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、各処理部１２０〜１６０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００５８】
次に、分散の偏差値とネットワーク異常との関係について説明する。図６は、分散の偏差値とネットワーク異常との関係を示す図である。図６の横軸は、パケットの収集回数を示し、時間に対応する。図６の左側の縦軸は、パケットの到達率とトラフィック量の大きさを示す軸である。図６の右側の縦軸は、分散の偏差値の大きさを示す軸である。線５は、時間経過に伴うトラフィック量の変化を示す軌跡である。線６は、時間変化に伴う到達率の変化を示す軌跡である。線７は、時間変化に伴う分散の偏差値の変化を示す軌跡である。
【００５９】
図６に示すように、時間が経過するにしたがって、トラフィック量が増加している。また、到達率は、パケット収集回数がＴ１手前まで、ほぼ１００％となっているが、Ｔ１を過ぎたあたりから到達率が１００％で安定せず、Ｔ２となった時点で０％となる。Ｔ１移行は、パケットが宛先に到達しない場合があり、システム異常となる。
【００６０】
ここで、線７に着目し、段階（１）〜（７）に分ける。段階（１）は、サンプル数が少ないことによる不安定期である。段階（２）は、パケットが最短経路で安定的に転送されている期間に対応する。段階（３）は、縮退運用が開始され迂回しながらパケットが転送されている期間に対応する。段階（４）において、分散の偏差値のピーク７ａが発生する。ただし、不安定期を除く。段階（５）は、迂回しながらパケットが安定的に転送されている期間に対応する。段階（６）は、更に迂回先をさがしながらパケットが転送されている期間に対応する。段階（７）はネットワーク異常が発生した期間に対応する。
【００６１】
上記のように、ネットワーク異常が発生する恐れがある場合には、事前に分散の偏差値にピークが発生することがわかる。警告通知部１６０は、分散の偏差値と所定の値とを比較することで、このピーク値を検出する。警告通知部１６０が、警告を出力した段階では、まだシステム異常は発生していないので、この警告に対して、ネットワーク量を抑える等の処理を施せば、システム異常を未然に防止することができる。
【００６２】
次に、本実施例にかかるゲートウェイ１００が輻輳状態を検出する場合の処理手順について説明する。図７は、ゲートウェイの処理手順を示すフローチャートである。図７に示す処理は、例えば、新規のパケットを取得したことを契機として実行される。
【００６３】
図７に示すように、ゲートウェイ１００は、新規のパケットを受信したか否かを判定する（ステップＳ１０１）。ゲートウェイ１００は、新規のパケットを受信していない場合には（ステップＳ１０１，Ｎｏ）、再度ステップＳ１０１に移行する。
【００６４】
ゲートウェイ１００は、新規のパケットを受信した場合には（ステップＳ１０１，Ｙｅｓ）、ホップ数を登録し（ステップＳ１０２）、経路長の増加量を算出する（ステップＳ１０３）。
【００６５】
ゲートウェイ１００は、増加量の分散を算出し（ステップＳ１０４）、分散の偏差値を算出する（ステップＳ１０５）。ゲートウェイ１００は、分散が所定の値を超えたか否かを判定する（ステップＳ１０６）。
【００６６】
ゲートウェイ１００は、分散が所定の値を超えていない場合には（ステップＳ１０６，Ｎｏ）、ステップＳ１０１に移行する。一方、ゲートウェイ１００は、分散が所定の値を超えた場合には（ステップＳ１０６，Ｙｅｓ）、警告を出力する（ステップＳ１０７）。
【００６７】
次に、本実施例にかかるゲートウェイ１００の効果について説明する。本実施例にかかるゲートウェイ装置１００は、前後のパケットのホップ数から経路長の増加量を求め、増加量の分散を算出し、分散の偏差値に基づいて、輻輳を検出する。このため、ゲートウェイ１００は、システム異常が発生する予兆となる輻輳状態を通知することができる。また、ゲートウェイ１００が輻輳を検出する方法によれば、トポロジーの違い、隠れ端末の影響、ノードの追加または削除、電波の状態をパラメータとして使用しないため、簡単な手法で、計算を何度もやり直すことなく、システム異常の予兆を検出することができる。
【００６８】
ところで、ゲートウェイ１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ゲートウェイ１００の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、記憶部１１０、通信部１２０、増加量計算部１３０、分散計算部１４０、偏差値算出部１５０、警告通知部１６０をまとめて、輻輳通知機能部としても良い。また、本実施例では一例として、ゲートウェイ１００が、輻輳通知装置の機能を有している場合を例にして説明したがこれに限定されるものではない。例えば、ノード１０ａ〜１０ｈが輻輳通知装置の機能を有し、輻輳の警告を通知しても良い。輻輳通知装置の機能は、上記の輻輳通知機能部に対応する。
【００６９】
また、上記実施例では、分散算出部１４０は、ノード１０ａ、１０ｂ、１０ｃ、１０ｄに対応するホップ数の増加量に着目した分散を算出する場合について説明した。しかし、分散算出部１４０は、単一のノードに対応するホップ数の増加量に着目して分散を算出しても良いし、複数のノードの組に対応するホップ数の増加量に着目して分散を算出しても良い。
【００７０】
分散算出部１４０が、単一のノードに対応するホップ数の増加量に着目して分散を算出する場合について説明する。ここでは一例として、ノード１０ａに着目する。ノード識別情報１０ａの増加量情報を時系列順に「ａ１、ａ２、ａ３、ａ４」とする。
【００７１】
まず、分散算出部１４０は、ノード１０ａから受信したパケットの増加量の平均値Ｘを算出する。例えば、分散算出部１４０は、平均値Ｘを式（１１）によって算出する。
【００７２】
平均値Ｘ＝（ａ１＋ａ２＋ａ３＋ａ４）／４・・・（１１）
【００７３】
分散算出部１４０は、平均値Ｘを算出した後に、平均値から各時点の増加量を減算することで、各時点の分散を算出する。この例では、下記に示す分散４が算出される。分散算出部１４０は、式（１２）により分散４を計算する。分散算出部１４０は、算出した分散を偏差値算出部１５０に出力する。
【００７４】
分散４＝｛（Ｘ−ａ１）２＋（Ｘ−ａ２）２＋（Ｘ−ａ３）２＋（Ｘ−ａ４）２｝／４・・・（１２）
【００７５】
分散算出部１４０は、新たな増加量が増加量テーブル１１２に登録された場合には、平均値Ｘを算出し直し、新たな増加量に基づいて、分散を算出する。例えば、ノード識別情報１０ａに新たに追加された増加量が「ａ５」とすると、この増加量を加味して、平均値Ｘを算出する。そして、分散算出部１４０は、分散５を算出し、算出した分散を偏差値算出部１５０に出力する。例えば、分散５は式（１３）のようになる。ただし、下記の平均値Ｘは、「ａ１、ａ２、ａ３、ａ４、ａ５」の平均値である。
【００７６】
分散５＝｛（Ｘ−ａ２）２＋（Ｘ−ａ３）２＋（Ｘ−ａ４）２＋（Ｘ−ａ５）２｝／４・・・（１３）
【００７７】
分散算出装置１４０が、複数のノードの組に対応するホップ数の増加量に着目して分散を算出する場合について説明する。ここでは一例として、ノード１０ａ、１０ｂに着目する。ノード識別情報１０ａの増加量情報を時系列順に「ａ１、ａ２、ａ３、ａ４」とする。ノード識別情報１０ｂの増加量情報を時系列順に「ｂ１、ｂ２、ｂ３、ｂ４」とする。
【００７８】
まず、分散算出部１４０は、ノード１０ａ、１０ｂから受信したパケットの増加量の平均値Ｘを算出する。例えば、分散算出部１４０は、平均値Ｘを式（１４）によって算出する。
【００７９】
平均値Ｘ＝（ａ１＋ａ２＋ａ３＋ａ４＋ｂ１＋ｂ２＋ｂ３＋ｂ４）／８・・・（１４）
【００８０】
分散算出部１４０は、平均値Ｘを算出した後に、平均値から各時点の増加量を減算することで、各時点の分散を算出する。この例では、下記に示す分散４が算出される。分散算出部１４０は、式（１５）により分散４を計算する。分散算出部１４０は、算出した分散を偏差値算出部１５０に出力する。
【００８１】
分散４＝｛（Ｘ−（ａ１＋ｂ１）／２）２＋（Ｘ−（ａ２＋ｂ２）／２）２＋（Ｘ−（ａ３＋ｂ３）／２）２＋（Ｘ−（ａ４＋ｂ４）／２）２｝／４・・・（１５）
【００８２】
分散算出部１４０は、新たな増加量が増加量テーブル１１２に登録された場合には、平均値Ｘを算出し直し、新たな増加量に基づいて、分散を算出する。例えば、ノード識別情報１０ａ、１０ｂに新たに追加された増加量を「ａ５、ｂ５」とすると、この増加量を加味して、平均値Ｘを算出する。そして、分散算出部１４０は、分散５を算出し、算出した分散を偏差値算出部１５０に出力する。例えば、分散５は下記の式（１６）ようになる。ただし、下記の平均値Ｘは、「ａ１、ａ２、ａ３、ａ４、ａ５、ｂ１、ｂ２、ｂ３、ｂ４、ｂ５」の平均値である。
【００８３】
分散５＝｛（Ｘ−（ａ２＋ｂ２）／２）２＋（Ｘ−（ａ３＋ｂ３）／２）２＋（Ｘ−（ａ４＋ｂ４）／２）２＋（Ｘ−（ａ５＋ｂ５）／２）２｝／４・・・（１６）
【００８４】
ところで、分散算出部１４０は、分散を求める場合に、増加量情報の収集間隔を変化させても良い。例えば、分散算出部１４０は、増加量テーブル１１２に、Ｎ日分の増加量情報を登録しておき、異なる収集間隔毎に、分散を算出してもよい。例えば、分散算出部１４０は、１日分の増加量情報に着目した分散、１週間分の増加量情報に着目した分散、１ヶ月分の増加量情報に着目した分散を算出してもよい。このように、収集間隔を変化させることで、異なる収集間隔毎の分散を状況に応じて使い分けることができる。
【００８５】
上記実施例に示したゲートウェイ１００に含まれる輻輳通知装置の機能は、既知のＰＣ（Personal  Computer）またはＰＤＡ（Personal  Digital  Assistants）などの情報処理装置に、輻輳通知装置に対応する各機能を搭載することによって実現することもできる。図８は、実施例にかかる輻輳通知装置を構成するコンピュータのハードウェア構成を示す図である。
【００８６】
図８に示すように、このコンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読み取り装置２０４と、他の装置と接続するためのインターフェース装置２０５とを有する。また、コンピュータ２００は、他の装置と無線により接続する無線通信装置２０６と、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。各装置２０１〜２０８は、バス２０９に接続される。
【００８７】
ハードディスク装置２０８には、増加量計算プログラム、分散算出プログラム、偏差値算出プログラム、警告通知プログラムなどの各種のプログラムが記憶される。
【００８８】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを図３の増加量計算部１３０、分散算出部１４０、偏差値算出部１５０、及び警告通知部１６０として機能させることができる。
【００８９】
なお、上記のプログラムは、必ずしもハードディスク装置２０８に格納されている必要はない。例えば、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された記憶装置に、各プログラムを記憶させておいてもよい。この場合、コンピュータ２００がこれらから各プログラムを読み出して実行するようにしてもよい。
【００９０】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）コンピュータが実行する輻輳通知方法であって、
アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得し、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算し、
前記経路長の増加量に関する分散の偏差値を算出し、
前記偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知することを特徴とする輻輳通知方法。
【００９２】
（付記２）前記分散を求める場合には、収集間隔毎に分散を求め、求めた分散の偏差値を算出し、分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知することを特徴とする付記１に記載の輻輳通知方法。
【００９３】
（付記３）アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得する通信部と、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算する増加量計算部と、
前記経路長の増加量に関する分散を算出する分散算出部と、
前記分散の偏差値を算出する偏差値算出部と、
前記分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を出力する警告通知部と
を有することを特徴とする輻輳通知装置。
【００９４】
（付記４）前記分散算出部は、収集間隔毎の分散を求めることを特徴とする付記３に記載の輻輳通知装置。
【００９５】
（付記５）コンピュータに、
アドホックネットワークにおいて、接続先のノードから受信したパケットに含まれているホップ数のデータを基に、ノード毎にホップ数を取得し、
ノード毎に前回取得時のホップ数との差に基づいて、経路長の増加量を計算し、
前記経路長の増加量に関する分散の偏差値を算出し、
前記偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知する処理を実行させる輻輳通知プログラム。
【００９６】
（付記６）前記分散を求める場合は、収集間隔毎に分散を求め、求めた分散の偏差値を算出し、分散の偏差値が所定の値を超えた場合に、輻輳状態である旨の警告を通知することを特徴とする付記５に記載の輻輳通知プログラム。
【符号の説明】
【００９７】
１０ａ〜１０ｈ  ノード
１００  ゲートウェイ
１１０  記憶部
１２０  通信部
１３０  増加量計算部
１４０  分散算出部
１５０  偏差値算出部
１６０  警告通知部
【図１】
0005510340.tif 000002
【図２】
0005510340.tif 000003
【図３】
0005510340.tif 000004
【図４】
0005510340.tif 000005
【図５】
0005510340.tif 000006
【図６】
0005510340.tif 000007
【図７】
0005510340.tif 000008
【図８】
0005510340.tif 000009
【図９】
0005510340.tif 000010
【図１０】
0005510340.tif 000011