本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態における通信システムの概略図である。図1を参照して、この発明の実施の形態による通信システム10は、ネットワークスキャン装置1と、基地局BS1,BS2と、インターネットプロバイダISPと、端末装置TM1〜TM18とを備える。
ネットワークスキャン装置1、基地局BS1,BS2、インターネットプロバイダISP(Internet Service Provider)および端末装置TM1〜TM18は、通信空間に配置される。
基地局BS1は、無線通信網CNW1の基地局であり、基地局BS2は、無線通信網CNW2の基地局であり、インターネットプロバイダISPは、有線通信網CNW3の通信事業者である。
無線通信網CNW1,CNW2は、相互に異なる無線通信規格に従って無線通信を行う通信網である。
この発明の実施の形態においては、端末装置TM1〜TM18の各々が無線端末である場合があり、端末装置TM1〜TM18の一部が無線端末からなり、かつ、残りが有線端末からなる場合もある。
端末装置TM1〜TM6は、無線通信網CNW2の外側であり、かつ、無線通信網CNW1の内部に配置される。
端末装置TM7は、無線通信網CNW1と無線通信網CNW2との重複領域内に配置される。
端末装置TM8〜TM13は、無線通信網CNW1の外側であり、かつ、無線通信網CNW2の内部に配置される。
端末装置TM14〜TM18は、有線通信網CNW3内に配置され、有線を介してインターネットプロバイダISPに接続される。
端末装置TM1〜TM13の各々は、基地局BS1,BS2と無線通信可能な2個の無線通信モジュールを備えている。従って、端末装置TM1〜TM13の各々は、基地局BS1または基地局BS2と無線通信可能である。
端末装置TM1〜TM6は、基地局BS1と無線通信を行い、端末装置TM7は、基地局BS1または基地局BS2と無線通信を行い、端末装置TM8〜TM13は、基地局BS2と無線通信を行う。
端末装置TM14〜TM18は、インターネットプロバイダISPを介して有線通信を行う。
ネットワークスキャン装置1は、後述する方法によって、端末装置TM1〜TM18に対してネットワークスキャンを行う。
[実施の形態1]
図2は、図1に示すネットワークスキャン装置1の実施の形態1における概略図である。図2を参照して、ネットワークスキャン装置1は、ネットワークスキャナ11と、スキャン解析マネージャ12と、ホスト情報データベース13と、クラスタリングマネージャ14と、クラスタリングデータベース15と、スキャンスケジューラ16とを備える。
ネットワークスキャナ11は、スキャンスケジューラ16からスキャンスケジュールを受け、その受けたスキャンスケジュールに基づいて、例えば、公知のNmap(非特許文献2)を用いて、スキャン対象のネットワーク20に接続された端末装置のポートに対してネットワークスキャンを行う。
そして、ネットワークスキャナ11は、ネットワーク20に接続された端末装置からネットワークスキャンのスキャン応答を受信し、その受信したスキャン応答をユーザ(ネットワークセキュリティ等からなる)30およびスキャン解析マネージャ12へ出力する。
スキャン解析マネージャ12は、ネットワークスキャナ11からスキャン応答を受け、ネットワークスキャン中に通信ログを受ける。そして、スキャン解析マネージャ12は、スキャン応答に基づいてスキャン対象の端末装置のアドレスと、スキャン応答とを対応付けたスキャン結果を生成し、その生成したスキャン結果をホスト情報データベース13に格納することによってホスト情報データベース13を作成または更新する。
また、スキャン解析マネージャ12は、複数の端末装置を対象とするネットワークスキャンのスキャン応答遅延に基づいて、後述する方法によって、ネットワークスキャンを失敗した原因を推定する。
より具体的には、スキャン解析マネージャ12は、スキャン応答遅延に基づいて、ネットワークスキャンを失敗した原因を次の第1の原因、第2の原因、第3の原因および第4の原因のいずれかであると推定する。
(第1の原因)
ネットワークスキャンの対象である端末装置iのポートが閉塞していることである。
(第2の原因)
ネットワークスキャンの対象である端末装置iとの通信における通信品質が不足していることである。
(第3の原因)
ネットワークスキャンの対象である端末装置iがネットワークに接続されていないことである。
(第4の原因)
ネットワークスキャンの対象である端末装置iが接続されているネットワークが混雑していることである。
そして、スキャン解析マネージャ12は、ネットワークスキャンを失敗した原因を推定すると、その推定した原因を追加してホスト情報データベース13を作成または更新する。
ホスト情報データベース13は、スキャン結果を記憶する。クラスタリングマネージャ14は、ネットワークスキャンを行う領域(例えば、日本国内)に存在する全ての端末装置のグローバルIPアドレスおよびドメイン名を予め保持している。クラスタリングマネージャ14は、スキャン結果をホスト情報データベース13から読み出し、その読み出したスキャン結果に基づいて、ネットワークスキャンの対象である複数の端末装置をクラスタに分類する。そして、クラスタリングマネージャ14は、分類結果(クラスタと端末装置の対応関係)をクラスタリングデータベース15に格納してクラスタリングデータベース15を作成または更新する。
また、クラスタリングマネージャ14は、ホスト情報データベース13を参照して、ネットワークスキャンを失敗した原因が第4の原因である端末装置を抽出し、その抽出した端末装置が含まれるクラスタを後述する方法によって複数の分割クラスタに分割する。そして、クラスタリングマネージャ14は、複数の分割クラスタを用いてクラスタリングデータベース15を更新する。
スキャンスケジューラ16は、ホスト情報データベース13からスキャン結果を読み出し、クラスタリングデータベース15から分類結果(クラスタと端末装置の対応関係)を読み出す。また、スキャンスケジューラ16は、スキャン要件をユーザ30から受ける。スキャンスケジューラ16は、ネットワークスキャンを行う領域(例えば、日本国内)に存在する全ての端末装置のグローバルIPアドレスおよびドメイン名を予め保持している。
そして、スキャンスケジューラ16は、スキャン要件、スキャン結果および分類結果(クラスタと端末装置の対応関係)に基づいて、後述する方法によって、ネットワークスキャンのスキャンタイミングと各スキャンタイミングにおけるネットワークスキャンの対象となる端末装置とを対応付けたスキャンスケジュールを作成する。そうすると、スキャンスケジューラ16は、スキャンスケジュールをネットワークスキャナ11へ出力してスキャンスケジュールに従ってネットワークスキャンを実行するようにネットワークスキャナ11を制御する。
図3は、図2に示すホスト情報データベース13の概念図である。図3を参照して、ホスト情報データベース13は、時刻tと、IPアドレスAddi(i=1〜I、Iは、端末装置の総数)と、ドメイン名DNiと、基地局と、位置情報と、ポート番号PNrと、スキャン応答SRiと、スキャン応答遅延SRDiと、ネットワークスキャンを失敗した失敗原因とを含む。時刻t、IPアドレスAddi、ドメイン名DNi、基地局、位置情報、ポート番号PNr、スキャン応答SRi、スキャン応答遅延SRDiおよび失敗原因は、相互に対応付けられる。
時刻tは、YYYY/MM/DD/hh/mm/ss(年/月/日/時/分/秒)によって表される。そして、時刻tは、ネットワークスキャンにおけるテスト入力をネットワークスキャンの対象である端末装置へ送信した時間を表す。
IPアドレスAddiは、ネットワークスキャンの対象である端末装置のグローバルIPアドレスからなる。
ドメイン名DNiは、IPアドレスAddiに基づいてPTR(PoinTeR record)レコードを用いて変換されたものである。
基地局および位置情報は、端末装置iのIPアドレスAddiに対応して設けられる。そして、位置情報は、端末装置iの位置情報であり、例えば、x−y座標によって表される。スキャン解析マネージャ12は、全ての端末装置iの位置情報[xi,yi]と、全ての端末装置iと基地局との対応関係とを予め保持している。従って、スキャン解析マネージャ12は、ホスト情報データベース13を作成または更新できる。
なお、スキャン解析マネージャ12は、全ての端末装置iの位置情報[xi,yi]と、全ての端末装置iと基地局との対応関係とを予め保持できない場合、「不明(unknown)」を示す値、または仮想的に何らかの値(例えば、初期状態として、「同じドメインの端末装置は同一の基地局に接続していることを示す値」)を与えるようにしてもよい。
また、スキャン解析マネージャ12は、端末装置iが移動端末であるとき、定期的に、端末装置iの位置情報[xi,yi]を端末装置iから受信し、その受信した位置情報[xi,yi]と位置情報[xi,yi]を受信した時刻tとを対応付けてホスト情報データベース13に格納する。また、スキャン解析マネージャ12は、端末装置iが移動端末であるとき、必要に応じて、無線通信を行っている全ての端末装置iのIPアドレスAddiを基地局(基地局BS1またはBS2)から受信し、その受信した端末装置iのIPアドレスAddiに基づいて、端末装置iと基地局との対応関係を更新する。
ポート番号PNrは、各端末装置が通信に用いるポートの番号である。
スキャン応答SRiは、各ポート番号PNrに対応して格納される。そして、スキャン応答SRiは、スキャン応答が返って来たとき、“1”からなり、スキャン応答が返って来なかったとき、“0”からなる。
スキャン応答遅延SRDiは、各ポート番号PNrに対応して格納される。そして、スキャン応答遅延SRDiは、テスト入力を送信した時刻からスキャン応答SRiが返って来るまでの時間からなる。
失敗原因は、各ポート番号PNrに対応して格納される。そして、失敗原因は、上述した第1の原因から第4の原因のいずれかからなる。
図4は、クラスタ化の具体例を示す図である。図5は、クラスタ化の他の具体例を示す図である。
図4は、IPアドレスによるクラスタリングの例を示す。企業などのネットワークにおいては、どれだけのエリアにIPアドレスが展開されているかが不明であるが、大学などのネットワークにおいては、例えば、半径数百mの範囲で近いIPアドレスが使用されている。従って、大学のネットワーク内の端末装置を1つのクラスタに分類する。
また、セルラーネットワークおよびISPネットワークにおいては、半径数十mの範囲で近いIPアドレスが使用されているので、これらのIPアドレスを有する端末装置を1つのクラスタに分類する。
図5は、ドメイン名および無線環境状況に基づくクラスタリングの例を示す。例えば、大学などの狭いエリアでネットワークを展開するドメインをドメイン単位でクラスタ化する。
また、企業Aと企業Bのように、空間的には離れているが、類似の無線環境状況にある基地局・アクセスポイント(AP:Access Point)に接続される端末装置を1つのクラスタに分類する。企業A内の端末装置は、企業A内に設置された基地局またはAPとの間で無線通信を行い、企業B内の端末装置は、企業B内に設置された基地局またはAPとの間で無線通信を行うので、企業A内の端末装置および企業B内の端末装置は、類似の無線環境状況にある。クラスタリングマネージャ14は、ドメイン名を参照すれば、企業内に設置された端末装置であるか否かを判別できるので、類似の無線環境状況にある端末装置をクラスタ化できる。
図6は、図2に示すクラスタリングデータベース15の概念図である。図6を参照して、クラスタリングデータベース15は、例えば、クラスタA,B,Cを含む。クラスタA,Bは、IPアドレスによってクラスタ化されたクラスタであり、クラスタCは、ドメイン名によってクラスタ化されたクラスタである。
クラスタAは、相互に近いIPアドレスAdd1〜Addp(pは、2以上の整数)を有するp個の端末装置からなる。クラスタBは、相互に近いIPアドレスAddq〜Addq+s(qは、pと異なる整数、sは、1以上の整数)を有する(s+1)個の端末装置からなる。クラスタCは、狭いエリアで展開されるネットワーク内のドメイン名x1x1x1.com〜xjxjxj.com(jは、2以上の整数)を有するj個の端末装置からなる。
なお、図6においては、クラスタリングデータベース15は、IPアドレスによってクラスタ化されたクラスタA,Bと、ドメイン名によってクラスタ化されたクラスタCとを含むが、この発明の実施の形態においては、これに限らず、クラスタリングデータベース15は、IPアドレスのみによってクラスタ化されたクラスタから構成されていてもよく、ドメイン名のみによってクラスタ化されたクラスタから構成されていてもよく、類似の無線環境状況のみによってクラスタ化されたクラスタから構成されていてもよく、一般的には、IPアドレス、ドメイン名および類似の無線環境状況の少なくとも1つによってクラスタ化されたクラスタから構成されていればよい。
クラスタリングマネージャ14は、図3に示すホスト情報データベース13を参照して、IPアドレス、ドメイン名および類似の無線環境状況の少なくとも1つによって、ホスト情報データベース13に格納されたI個の端末装置を複数のクラスタに分類し、図6に示すクラスタリングデータベース15を作成または更新する。
図7は、スキャンスケジュールの概念図である。図7を参照して、スキャンスケジュールSCSHDは、スキャン総時間長TS_totalを有し、TS(Tは、1以上の整数)個のスキャンタイミング1S〜スキャンタイミングTSを含む。
スキャン総時間長TS_totalは、例えば、1日に設定され、スキャンタイミング1S〜スキャンタイミングTSの各々は、例えば、1時間の時間長を有する。スキャンタイミングtS(tS=1S〜TS)は、開始時刻tstartと、終了時刻tendと、対象アドレスAdd1〜Addn(nは、1以上I以下の整数)とを含む。
開始時刻tstartは、スキャンタイミングtSにおいてネットワークスキャンを開始する時刻を表し、終了時刻tendは、スキャンタイミングtSにおいてネットワークスキャンを終了する時刻を表す。従って、ネットワークスキャナ11は、スキャンタイミングtSにおいて終了時刻tendが到来すると、ネットワークスキャンを終了する。
対象アドレスAdd1〜Addnの各々は、グローバルIPアドレスからなる。そして、対象アドレスAdd1〜Addnは、1つのクラスタに分類された端末装置iのIPアドレスからなり、ネットワークスキャンの対象であるn個の端末装置を表す。このように、スキャンタイミングtSにおけるネットワークスキャンの対象端末装置として、1つのクラスタに分類された端末装置iを含む。
なお、スキャンタイミングtS以外のスキャンタイミング1S〜(t−1)S,(t+1)S〜TSの各々も、図7に示すスキャンタイミングtSと同じ構成からなる。
スキャンタイミング1S〜TSは、相互に同じ時間長(=tend−tstart)を有していてもよく、相互に異なる時間長(=tend−tstart)を有していてもよい。また、スキャンタイミング1S〜TSは、相互に同じ個数のIPアドレスを有していてもよく、相互に異なる個数のIPアドレスを有していてもよい。
また、スキャンタイミングtSは、1つの時刻を意味するのではなく、開始時刻tstartから終了時刻tendまでの所定の時間長を有する概念である。
ネットワークスキャンを失敗した原因を推定する方法について説明する。ネットワークスキャンの失敗は、大きく次の2つに分類される。
(1)有線/無線に依らない失敗
この失敗は、ネットワークスキャンの時間内において、ネットワークスキャンを何回実行してもスキャン応答SRiが得られる可能性が無い失敗である。
(2)無線通信路による失敗
この失敗は、ネットワークスキャンの時間内において、ネットワークスキャンを再度実行することによってスキャン応答が得られる可能性がある失敗である。
上記(1),(2)の失敗の原因を説明すると次のようになる。
(1−1)ポートが閉じている。
ネットワークスキャンの対象である端末装置iのポートが閉じている場合、設定を変えない限り、基本的には、そのポートに対して、何度、ネットワークスキャンを実行しても、スキャン応答SRiを得ることができない。一方、空いているポートでは、スキャン応答SRiを得ることができる。従って、端末装置iにおいて、スキャン応答SRiが有るポートと、スキャン応答SRiが無いポートとが存在すれば、スキャン応答SRiが無いポートは、閉じていると認識できる。
(1−2)端末装置iがネットワークに接続していない。
端末装置iがネットワークに接続していない原因として、端末装置iの電源がOFF、または端末装置iが別のネットワークに接続していることが考えられる。この場合、ネットワークスキャンを実行する時間長の中で端末装置iの状態変化(電源がONになる等)が無ければ、基本的には、そのポートに対してネットワークスキャンを、何度、実行してもスキャン応答SRiを得ることができない。従って、端末装置iの全てのポートに対してスキャン応答SRiを得ることができない場合、端末装置iがネットワークに接続していないと認識できる。
(1−3)端末装置iがOS(Operating System)の負荷等で応答できない。
完全に応答しないのであれば、上記(1−2)と同義である。
(2−1)通信品質不足(例えば、SNR(Signal to Noise Ratio)が不足)による無線フレームのエラーが多発
これは、ビルの陰、地下、未開の地(山奥)等で発生する。そして、通信品質不足が発生した場合、一部の端末装置iについてスキャン応答SRiが来るまでの遅延が大きいこと、スキャン応答SRiが無いこと等が発生する。従って、周囲の端末装置と比べて少数の端末装置の応答が悪い場合に、この原因に陥っていると推定することができる。そして、この場合、ネットワークスキャンを実行する時間内で、数分程度の時間を空けて、ネットワークスキャンを、再度、実行すると、改善している可能性がある。
従って、スキャン応答遅延SRDiが平常時(即ち、「通信品質不足」または「ネットワーク混雑」が発生していない時)よりも大きい端末数をN_SR_anomalyとし、同一の基地局(またはAP)に接続された複数の端末装置の配置領域、または半径数十mの領域を「所定の領域」とし、所定の領域内に存在する端末装置の個数をN_pregとし、Zを0<Z≦1を満たす実数としたとき、N_SR_anomaly<N_preg×Zが成立する場合、N_SR_anomaly個の端末装置について、ネットワークスキャンを失敗した原因を「通信品質不足」と推定できる。
ここで、スキャン応答遅延SRDiが端末装置iへの過去のx(xは、例えば、10以上の整数)回のネットワークスキャンにおけるx個のスキャン応答遅延SRDiの平均遅延DL_aveよりもX[ms]以上大きいとき、「スキャン応答遅延SRDiが平常時よりも大きい」と判定する。即ち、スキャン応答遅延SRDiがSRDi≧DL_ave+Xを満たすとき、「スキャン応答遅延SRDiが平常時よりも大きい」と判定する。そして、X[ms]は、平常時よりも大きいスキャン応答遅延SRDiを精度良く検出するためのマージンであり、例えば、スキャン応答遅延SRDiの分布における標準偏差または標準偏差の整数倍である。
この場合、過去のスキャン応答遅延SRDiが全く無い場合には、上記の判定を行わず、過去のスキャン応答遅延SRDiの個数が1個以上であるがx個に満たない場合には得られているスキャン応答遅延SRDiの個数の範囲で平均遅延DL_aveを算出する。
なお、N_SR_anomaly<N_preg×Zが成立することは、N_SR_anomalyが、所定の領域内に存在する端末装置の総数N_pregに基づいて決定された閾値(=N_preg×Z)よりも小さいことに相当し、N_SR_anomaly<N_preg×Zが成立しないことは、N_SR_anomalyが閾値(=N_preg×Z)以上であることに相当する。
また、Zは、ネットワークの種類に応じて、具体的な数値に設定される。例えば、ネットワークがビルの陰、地下および未開の地等の電波の伝搬状況が悪い領域に存在する場合、Zは、例えば、0.5<Z≦1を満たす1つの値に設定され、電波の伝搬状況が良好な領域に存在する場合、Zは、例えば、0<Z≦0.5を満たす1つの値に設定される。
更に、k-近傍法(非特許文献3)の機械学習によって「スキャン応答遅延SRDiが平常時よりも大きい」ことを判定してもよい。
k-近傍法を用いて、次の手順によって「スキャン応答遅延SRDiが平常時よりも大きい」ことを判定する。
(i)スキャン応答遅延SRDiの直前の時系列データからある一定の窓幅の部分時系列を取り出す。
(ii)新たに得られたデータ点と部分時系列のそれぞれのデータ点までの距離を全て計算する。
(iii)上記(ii)で計算した距離のうち最も短いものをkS個選び、その平均を新たに得られたデータ点の異常度とする。
(iv)異常度がある閾値以上であれば、外れ値(即ち、「スキャン応答遅延SRDiが平常時よりも大きい」)として検知する。
スキャン解析マネージャ12は、k−近傍法によって機械学習を行う機械学習器を内蔵しており、スキャン応答遅延SRDiの直前の時系列データを入力として機械学習器に入力し、平常時よりも大きいスキャン応答遅延SRDiを出力として得る。そして、スキャン解析マネージャ12は、平常時よりも大きいスキャン応答遅延SRDiの個数をカウントすることによって、上記のN_SR_anomalyを決定する。
更に、半径数十mの領域を「所定の領域」としているのは、アドホックネットワークにおける端末装置(無線端末)についても、ネットワークスキャンを失敗した原因を推定するからである。
なお、長い間、圏外であれば、ネットワークに接続されていないことになるので、上記の(1−2)と同じに扱うことができる。
(2−2)混雑によるタイムアウト
これは、通信の混雑によって、ネットワークスキャンを実行する時間内にスキャン応答SRiが返って来ないことである。
この場合、ネットワークに接続している端末装置iの全体について、スキャン応答SRiが返って来るまでの遅延が大きい、およびスキャン応答SRiが無い等の状況が発生する。従って、ネットワーク全体の端末装置iの応答が悪い場合、この原因に陥っていると推定する。
従って、N_SR_anomaly≧N_preg×Zが成立する場合、N_preg個の端末装置(即ち、所定の領域内に存在する全ての端末装置)について、ネットワークスキャンを失敗した原因を「ネットワーク混雑」と推定できる。
図8は、ネットワークスキャンを失敗した原因を推定する方法を示す図である。図8を参照して、ネットワークスキャナ11は、端末装置TMのポートA,B,Cに対してネットワークスキャンを行った結果、ポートBからスキャン応答SRiを得たが、ポートA,Cからスキャン応答SRiを得ることができない。従って、同一の端末装置でスキャン応答SRiが有るポートと、スキャン応答SRiが無いポートとが存在するとき、ネットワークスキャンの失敗原因を「ポート閉塞」であると推定する(図8の(a)参照)。
また、ネットワークスキャナ11は、端末装置TMのポートA,B,Cに対してネットワークスキャンを行った結果、ポートA,B,Cの全てからスキャン応答SRiを得ることができない。従って、全部のポートからスキャン応答SRiが無い場合、ネットワークスキャンの失敗原因を「ネットワーク接続無し」であると推定する(図8の(b)参照)。
更に、一部の端末装置がビルの陰に入ってしまい、通信品質が不足しているため、遅延が大きい。従って、少数の端末装置のみ、遅延が大きい場合、ネットワークスキャンの失敗原因を「通信品質不足」であると推定する(図8の(c)参照)。
更に、混雑のため、ネットワークスキャンが実施されず、タイムアウトとなった。従って、多数の端末装置の遅延が大きい場合、ネットワークスキャンの失敗原因を「ネットワーク混雑」であると推定する(図8の(d)参照)。
なお、ネットワークスキャンの失敗の原因が「ネットワーク接続無し」である場合、失敗の原因が他の原因である可能性もあるため、ネットワークスキャンを、再度、実行してもよい。
また、ネットワークスキャンの失敗の原因が「通信品質不足」である場合、端末装置iがビルの陰から抜け出せば、通信品質が回復するので、数分程度の時間が経過した後に、ネットワークスキャンを、再度、実行してもよい。
ネットワークスキャンの失敗の原因が「ポート閉塞」である場合、DDoS等の攻撃を受けることがないので、再度、ネットワークスキャンを実行しない。また、ネットワークスキャンの失敗の原因が「ネットワーク混雑」である場合、クラスタを複数の分割クラスタに分割し、各分割クラスタに含まれる端末装置iを1つのスキャンタイミングに含めてネットワークスキャンを再度実行する。
クラスタを分割する方法について説明する。図9および図10は、クラスタを分割する方法を説明するための図である。なお、図9および図10においては、図6に示すクラスタAを例としてクラスタを分割する方法について説明する。
図9を参照して、クラスタリングマネージャ14は、ホスト情報データベース13を参照して、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)のうちの一部の端末装置が第4の原因によってネットワークスキャンを失敗し、残りの端末装置がネットワークスキャンを失敗していない場合、またはネットワークスキャンを失敗した失敗原因が第4の原因以外の原因である場合、失敗原因を有しない、または第4の原因以外の原因でネットワークスキャンを失敗した端末装置を含む分割クラスタDVC1と、第4の原因でネットワークスキャンを失敗した端末装置を含む分割クラスタDVC2とに分割する(図9の(a)参照)。このようにクラスタAを分割することによって通信環境が悪い端末装置を別のクラスタに含めることができ、悪影響を軽減できる可能性がある。
また、クラスタリングマネージャ14は、ホスト情報データベース13を参照して、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)を所定の比率で分割クラスタDVC1,DVC2に分割する。分割クラスタDVC1に含まれる端末装置の個数をNDVC1とし、分割クラスタDVC2に含まれる端末装置の個数をNDVC2とした場合、所定の比率は、NDVC1:NDVC2である。所定の比率(=NDVC1:NDVC2)で分割する具体的な方法は、例えば、クラスタAに含まれるIPアドレスAdd1〜Addpの昇順または降順に、ラウンドロビン方式によってIPアドレスを分割クラスタDVC1および分割クラスタDVC2に交互に振り分ける、またはIPアドレスAdd1〜Addpを値の大きい側と小さい側とに分ける等である(図9の(b)参照)。
IPアドレスAdd1〜Addpを値の大きい側と小さい側とに分けて分割クラスタDVC1,DVC2に分割したとき、IPアドレス:“AAA.BBB.CCC.DDD”のうちの「CCC」の部分(または「CCC」よりも上位の部分)に違いがあるIPアドレスが含まれている場合(例えば、ある組織において敷地や建物、部局毎に異なるCCCの値を割り当てる場合)には、分割クラスタDVC1,DVC2間の物理的距離が離れる、即ち、各分割クラスタDVC1,DVC2内の端末装置間の距離を短くできる可能性がある。
更に、クラスタリングマネージャ14は、ホスト情報データベース13を参照して、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)をランダムに分割する。より具体的には、クラスタリングマネージャ14は、クラスタAに含まれるp個の端末装置のIPアドレスAdd1〜Addpにそれぞれ乱数RN1〜RNpを付与し、その付与した乱数RN1〜RNpが閾値RN_thよりも大きければ分割クラスタDVC1に振り分け、乱数RN1〜RNpが閾値RN_th以下であれば、分割クラスタDVC2に振り分けることによってクラスタAを分割クラスタDVC1,DVC2に分割する(図10の(a)参照)。この場合、閾値RN_thを調整することによって分割クラスタDVC1,DVC2に含まれる端末装置の個数を調整できる。
更に、クラスタリングマネージャ14は、ホスト情報データベース13を参照して、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)の位置に基づいて分割クラスタDVC1,DVC2間の端末装置の位置が相互にできるだけ離れるように分割クラスタDVC1,DVC2に分割する(図10の(b)参照)。この場合、クラスタリングマネージャ14は、例えば、SVM(Support Vector Machine)を用いて分割クラスタDVC1,DVC2間の端末装置の位置が相互にできるだけ離れるように分割クラスタDVC1,DVC2に分割する。このように分割することによって、分割クラスタ間で通信環境を異なるようにでき、通信環境の良い分割クラスタを増加できる可能性がある。
なお、図9および図10においては、1つのクラスタAを2つの分割クラスタDVC1,DVC2に分割することを説明したが、この発明の実施の形態においては、これに限らず、クラスタリングマネージャ14は、1つのクラスタAを3個以上の分割クラスタに分割してもよく、各分割クラスタに含まれる端末装置の個数は、同じであってもよく、異なっていてもよい。また、クラスタリングマネージャ14は、クラスタの分割を繰り返し行ってもよい。例えば、クラスタリングマネージャ14は、クラスタAを分割クラスタDVC1,DVC2に分割し、分割クラスタDVC1,DVC2の少なくとも1つを更に分割クラスタに分割してもよく、クラスタの分割を何回行ってもよい。なお、クラスタを分割しなくてもよい場合があるので、クラスタリングマネージャ14は、必ずしもクラスタを分割しなくてもよい。
クラスタリングマネージャ14は、第4の原因によってネットワークスキャンを失敗した端末装置を含む全てのクラスタを上述した方法によって分割クラスタに分割する。
また、図9および図10においては、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)のうちの一部の端末装置が第4の原因によってネットワークスキャンを失敗した場合にクラスタAを分割クラスタDVC1,DVC2に分割すると説明したが、この発明の実施の形態においては、これに限らず、クラスタAに含まれるp個の端末装置(IPアドレスAdd1〜Addpを有する端末装置)のうちの少なくとも一部の端末装置が第4の原因によってネットワークスキャンを失敗した場合にクラスタAを分割クラスタに分割すればよい。
図11は、クラスタが分割されたときのスキャンスケジュールの作成方法を説明するための図である。
図11を参照して、スキャンスケジューラ16は、クラスタC1〜C4に含まれる端末装置をそれぞれスキャンタイミング1S〜4Sに含めてスキャンスケジュールSCSHD1を作成してネットアークスキャナ11へ出力する(図11の(a)参照)。
そして、スキャンスケジュールSCSHD1に基づいてネットワークスキャンが行われ、クラスタC2に含まれる少なくとも一部の端末装置に対するネットワークスキャンが第4の原因によって失敗した。そこで、クラスタリングマネージャ14は、上述した方法によってクラスタC2を2つの分割クラスタDVC1,DVC2に分割した。
そうすると、スキャンスケジューラ16は、クラスタリングデータベース15を参照して、分割クラスタDVC1に含まれる端末装置を元のスキャンタイミング2Sと異なるスキャンタイミング5Sに含め、分割クラスタDVC2に含まれる端末装置を元のスキャンタイミング2Sと異なるスキャンタイミング8Sに含めてスキャンスケジュールSCSHD2を作成する。つまり、スキャンスケジューラ16は、分割クラスタDVC1,DVC2に含まれる端末装置を相互に異なるスキャンタイミング5S,8Sに含めてスキャンスケジュールSCSHD2を作成する(図11の(b)参照)。
そして、スキャンスケジューラ16は、スキャンスケジュールSCSHD2をネットワークスキャン11へ出力し、ネットワークスキャン11は、スキャンスケジュールSCSHD2に基づいてネットワークスキャンを実行する。
このように、分割クラスタDVC1,DVC2に含まれる端末装置を元のスキャンタイミング2Sと異なるスキャンタイミング5S,8Sでネットワークスキャンを行うことによってネットワークスキャンが成功する可能性が高くなる。クラスタの分割は、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した端末装置を含むクラスタを対象として行われるので、分割クラスタDVC1,DVC2に含まれる端末装置を対象としたネットワークスキャンを元のスキャンタイミングと異なり、かつ、相互に異なるスキャンタイミングで行うことによってネットワークの混雑が解消されている可能性があるからである。
但し、図9の(a)において説明したように、1つのクラスタを、失敗原因を有しない端末装置を含む分割クラスタDVC1と、第4の原因でネットワークスキャンを失敗した端末装置を含む分割クラスタDVC2とに分割する場合、分割クラスタDVC1のスキャンタイミングは、元のスキャンタイミングと同じであってもよい。分割クラスタDVC1は、失敗原因を有しない端末装置だけを含むので、元のスキャンタイミングと同じスキャンタイミングでネットワークスキャンが行われてもネットワークスキャンに成功する可能性が高いからである。
従って、この発明の実施の形態においては、少なくとも、第4の原因でネットワークスキャンを失敗した端末装置を含む分割クラスタのスキャンタイミングを元のスキャンタイミングと異なるスキャンタイミングに設定すればよい。
図12は、図2に示すネットワークスキャン装置1の動作を説明するためのフローチャートである。図12を参照して、ネットワークスキャン装置1の動作が開始されると、ネットワークスキャナ11は、任意のスキャンタイミング(例えば、図7に示すスキャンタイミング1S〜TS)で全ての端末装置に対してネットワークスキャンを実行する(ステップS1)。
そして、ネットワークスキャナ11は、スキャン応答を端末装置から受信するとともにスキャン応答遅延を計測し、スキャン応答およびスキャン応答遅延をスキャン解析マネージャ12へ出力する。
その後、スキャン解析マネージャ12は、ネットワークスキャナ11から受けたスキャン応答およびスキャン応答遅延(=ネットワークスキャンの結果)に基づいて、上述した方法によって、ホスト情報データベース13を作成する(ステップS2)。
引き続いて、クラスタリングマネージャ14は、ホスト情報データベース13に基づいて複数の端末装置をクラスタに分類し(ステップS3)、クラスタリングデータベース15を作成または更新する。
そして、スキャンスケジューラ16は、クラスタリングデータベース15を参照して、各クラスタに含まれる端末装置を1つのスキャンタイミングに含めてスキャンスケジュールSCSHD1を作成し(ステップS4)、その作成したスキャンスケジュールSCSHD1をネットワークスキャナ11へ出力する。
ネットワークスキャナ11は、スキャンスケジュールSCSHD1をスキャンスケジューラ16から受け、その受けたスキャンスケジュールSCSHD1に基づいてネットワークスキャンを実行する(ステップS5)。
そして、ネットワークスキャナ11は、スキャン応答を端末装置から受信するとともにスキャン応答遅延を計測し、スキャン応答およびスキャン応答遅延をスキャン解析マネージャ12へ出力する。
その後、スキャン解析マネージャ12は、ネットワークスキャナ11から受けたスキャン応答およびスキャン応答遅延(=ネットワークスキャンの結果)に基づいて、上述した方法によって、ホスト情報データベース13を更新する(ステップS6)。
そうすると、スキャン解析マネージャ12は、ホスト情報データベース13に基づいてネットワークスキャンを失敗した原因を推定し(ステップS7)、その推定した失敗原因をホスト情報データベース13に格納する。
クラスタリングマネージャ14は、ホスト情報データベース13を参照して、上述した方法によって、第4の原因でネットワークスキャンを失敗した端末装置を含むクラスタを分割する(ステップS8)。
その後、スキャンスケジューラ16は、クラスタリングデータベース15を参照して、第4の原因でネットワークスキャンを失敗した端末装置を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してスキャンスケジュールSCSHD2を作成する(ステップS9)。そして、スキャンスケジューラ16は、スキャンスケジュールSCSHD2をネットワークスキャナ11へ出力する。
ネットワークスキャナ11は、スキャンスケジュールSCSHD2をスキャンスケジューラ16から受け、その受けたスキャンスケジュールSCSHD2に基づいてネットワークスキャンを実行する(ステップS10)。これによって、ネットワークスキャン装置1の動作が終了する。
図13は、図12に示すステップS7の詳細な動作を説明するためのフローチャートである。
図13を参照して、図12のステップS6の後、スキャン解析マネージャ12は、ホスト情報データベース13を参照して、記録されている各端末装置iのスキャン応答遅延SRDiから各端末装置iの平均遅延DL_aveiを算出する(ステップS71)。
そして、スキャン解析マネージャ12は、y=1を設定する(ステップS72)。なお、yは、1≦y≦N_areaを満たす整数であり、N_areaは、所定の領域の総数である。その後、スキャン解析マネージャ12は、ホスト情報データベース13を参照して、所定の領域y内に位置する複数の端末装置のうち、スキャン応答遅延SRDiが平均遅延DL_aveiよりもX[ms]以上となっているN_SR_anomaly個の端末装置を検出する(ステップS73)。
そうすると、スキャン解析マネージャ12は、N_SR_anomaly<N_preg×Zが成立するか否かを判定する(ステップS74)。
ステップS74において、N_SR_anomaly<N_preg×Zが成立すると判定されたとき、スキャン解析マネージャ12は、N_SR_anomaly個の端末装置について、ネットワークスキャンを失敗した原因を「通信品質不足」と推定する(ステップS75)。
一方、ステップS74において、N_SR_anomaly<N_preg×Zが成立しないと判定されたとき(即ち、N_SR_anomaly≧N_preg×Zが成立すると判定されたとき)、スキャン解析マネージャ12は、N_preg個の端末装置(即ち、所定の領域に存在する全ての端末装置)について、ネットワークスキャンを失敗した原因を「ネットワーク混雑」と推定する(ステップS76)。
そして、ステップS75またはステップS76の後、スキャン解析マネージャ12は、y=N_areaであるか否かを判定する(ステップS77)。
ステップS77において、y=N_areaでないと判定されたとき、スキャン解析マネージャ12は、y=y+1を設定する(ステップS78)。その後、一連の動作は、ステップS73へ移行する。そして、ステップS77において、y=N_areaであると判定されるまで、ステップS73〜ステップS78が繰り返し実行される。
そして、ステップS77において、y=N_areaであると判定されると、スキャン解析マネージャ12は、ホスト情報データベース13を参照して、ネットワークスキャンを失敗した原因が推定されておらず、かつ、少なくとも1つのポートからスキャン応答SRiが無いV個の端末装置を検出する(ステップS79)。なお、Vは、ネットワークスキャンを失敗した原因が推定されておらず、かつ、少なくとも1つのポートからスキャン応答SRiが無い端末装置の総数である。
引き続いて、スキャン解析マネージャ12は、v=1を設定する(ステップS80)。なお、vは、1≦v≦Vを満たす整数である。その後、スキャン解析マネージャ12は、端末装置vにおいて、全てのポートについてスキャン応答SRiが無いか否かを判定する(ステップS81)。
ステップS81において、端末装置vにおいて、全てのポートについてスキャン応答SRiが無いと判定されたとき、スキャン解析マネージャ12は、端末装置vについて、ネットワークスキャンを失敗した原因を「ネットワーク接続無し」と推定する(ステップS82)。
一方、ステップS81において、端末装置vにおいて、少なくとも1つのポートについてスキャン応答SRiが有ると判定されたとき、スキャン解析マネージャ12は、端末装置vについて、ネットワークスキャンを失敗した原因を「ポート閉塞」と推定する(ステップS83)。その後、スキャン解析マネージャ12は、ホスト情報データベース13にスキャン応答遅延SRDiを記録する(ステップS84)。
そして、ステップS82またはステップS84の後、スキャン解析マネージャ12は、v=Vであるか否かを判定する(ステップS85)。
ステップS85において、v=Vでないと判定されたとき、スキャン解析マネージャ12は、v=v+1を設定する(ステップS86)。その後、一連の動作は、ステップS81へ移行する。そして、ステップS85において、v=Vであると判定されるまで、ステップS81〜ステップS86が繰り返し実行される。
そして、ステップS85において、v=Vであると判定されると、一連の動作は、図12のステップS8へ移行する。
なお、ステップS73においては、スキャン解析マネージャ12は、ホスト情報データベース13を参照して、k−近傍法を用いて、所定の領域内に位置する複数の端末装置のうち、スキャン応答遅延SRDiが平常時よりも大きいN_SR_anomaly個の端末装置を検出してもよい。従って、ステップS73において、スキャン解析マネージャ12は、スキャン応答遅延SRDiが平常時よりも大きいN_SR_anomaly個の端末装置を検出すればよい。
また、スキャン解析マネージャ12は、ステップS71において、ホスト情報データベース13を参照して、記録されているスキャン応答SRiから所定の領域においてスキャン応答SRiが無い端末装置を検出する処理を全ての所定の領域について実行し、ステップS73において、ステップS71において検出した端末装置の個数を各所定の領域における上記のN_SR_anomalyとして検出してもよい。
図13に示すフローチャートにおいて、ステップS71〜ステップS78は、所定の領域に位置する端末装置についてネットワークスキャンを失敗した原因を推定するステップであり、ステップS79〜ステップS86は、ネットワークスキャンを失敗した原因が推定されていない端末装置についてネットワークスキャンを失敗した原因を推定するステップである。そして、ステップS84において、スキャン応答遅延SRDiをホスト情報データベース13に記録する理由は、次のとおりである。即ち、ネットワークスキャンを失敗した原因が「ポート閉塞」であると推定された場合、端末装置vは、十分にセキュリティが確保されており、DDoS攻撃のようなサイバー攻撃に不正に使用されないので、正常である。従って、正常である端末装置vにおけるスキャン応答遅延SRDiをできるだけ多く記録しておきたいとの要望に応えるためである。
更に、図12のステップS9,S10においては、第4の原因によってネットワークスキャンを失敗した端末装置を含む分割クラスタに追加して、第2の原因(=「通信品質不足」)および/または第3の原因(=「ネットワーク接続無し」)によってネットワークスキャンを失敗した端末装置を含むクラスタも1つのスキャンタイミングに含めてスキャンスケジュールを作成し、その作成したスキャンスケジュールに基づいてネットワークスキャンを再度実行してもよい。
図12に示すフローチャート(図13に示すフローチャートを含む)によれば、ネットワークスキャンを失敗した端末装置のうち、第4の原因によってネットワークスキャンを失敗した端末装置を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタを元のスキャンタイミングと異なるスキャンタイミングに含めてスキャンスケジュールSCSHD2を作成し、その作成したスキャンスケジュールSCSHD2に基づいて、再度、ネットワークスキャンが実行される(ステップS7〜S10参照)。その結果、1つのスキャンタイミングにおいてネットワークスキャンの対象となる端末装置の個数が低減される。従って、ネットワークスキャンを効率的に実行できる。
実施の形態1においては、ネットワークスキャン装置1の動作は、ソフトウェアによって実現されてもよい。この場合、ネットワークスキャン装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。そして、ROMは、図12に示すフローチャート(図13に示すフローチャートを含む)の各ステップからなるプログラムProg_Aを記憶する。
CPUは、ROMからプログラムProg_Aを読み出し、その読み出したプログラムProg_Aを実行して、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した端末装置を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる端末装置を対象としてネットワークスキャンを再度実行する。RAMは、個数N_SR_anomalyを一時的に記憶する。
また、プログラムProg_Aは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Aを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Aを読み出して実行し、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した端末装置を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる端末装置を対象としてネットワークスキャンを再度実行する。
従って、プログラムProg_Aを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
図14は、分割クラスタを生成する元になる端末装置を説明するための図である。図14を参照して、スキャンタイミング1S〜tSの各々に複数の端末装置を含めてスキャンスケジュールSCSHD1を作成し、その作成したスキャンスケジュールSCSHD1に基づいてネットワークスキャンを行い、ネットワークスキャンを失敗した原因を推定した。
その結果、スキャンタイミング2Sに含まれる複数の端末装置の少なくとも一部が第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗したと推定された。
そこで、スキャンタイミング2Sに含まれる複数の端末装置を上述した方法によって複数の分割クラスタDVC1〜DVCu(uは、2以上の整数)に分割した。
そして、分割クラスタDVC1に含まれる端末装置を元のスキャンタイミングと異なるスキャンタイミングt+1Sに含め、分割クラスタDVC2に含まれる端末装置を元のスキャンタイミングと異なるスキャンタイミングt+2Sに含め、以下、同様にして、分割クラスタDVCuに含まれる端末装置を元のスキャンタイミングと異なるスキャンタイミングt+uSに含めてスキャンスケジュールSCSHD2を作成し、その作成したスキャンスケジュールSCSHD2に基づいてネットワークスキャンを実行する。
このように、図12のステップS4においてスキャンスケジュールSCSHD1を作成するときに1つのスキャンタイミングに含める端末装置は、クラスタを構成している必要はない。
従って、実施の形態1によるネットワークスキャン装置は、クラスタを構成しない端末装置を各スキャンタイミングに含めてスキャンスケジュールSCSHD1を作成してネットワークスキャンを実行するとともにネットワークスキャンを失敗した失敗原因を推定し、第4の原因でネットワークスキャンを失敗した端末装置が含まれる複数の端末装置を複数の分割クラスタに分割してスキャンスケジュールSCSHD2を作成し、スキャンスケジュールSCSHD2に基づいて、再度、ネットワークスキャンを実行するものであればよい。
上記においては、スキャン総時間長TS_totalは、1日であると説明したが、実施の形態1においては、これに限らず、スキャン総時間長TS_totalは、1日以外であってもよく、一般的には、任意の時間長であればよい。
[実施の形態2]
図15は、実施の形態2によるネットワークスキャン装置の概略図である。図15を参照して、実施の形態2によるネットワークスキャン装置1Aは、図2に示すネットワークスキャン装置1のスキャンスケジューラ16をスキャンスケジューラ16Aに変えたものであり、その他は、ネットワークスキャン装置1と同じである。
スキャンスケジューラ16Aは、ホスト情報データベース13およびクラスタリングデータベース15を参照して、後述する方法によって、スキャンスケジュールSCSHDを作成する。スキャンスケジューラ16Aは、その他、スキャンスケジューラ16と同じ機能を果たす。
図16は、実施の形態2におけるスキャンスケジュールの概念図である。図16を参照して、スキャンスケジューラ16Aは、通信が空いているタイミングでネットワークスキャンを実行するようにスキャンタイミング1S’〜TS’(TS’は、1以上の整数)を決定する。
スキャンタイミング1S’〜TS’は、時間的に離間して設定される。これは、通信が空いている複数の時間帯が相互に接していることはないからである。
なお、スキャンタイミングtS’(tS’=1S’〜TS’)の構成は、上述したスキャンタイミングtSの構成と同じである。
また、スキャンタイミングtS’も、スキャンタイミングtSと同じように、1つの時刻を意味するのではなく、開始時刻tstartから終了時刻tendまでの所定の時間長を有する概念である。スキャンタイミングtS’についてのその他の説明は、スキャンタイミングtSについての説明と同じである。
スキャンタイミングtS’を決定する方法について説明する。図17は、トラヒックの時間依存性を示す図である。図17において、縦軸はある端末装置の周辺で発生するトラヒックを表し、横軸は時間を表す。また、曲線k1は、例えば、端末装置Aの周辺で発生するトラヒックの時間依存性を示し、曲線k2は、例えば、端末装置Aと異なる端末装置Bの周辺で発生するトラヒックの時間依存性を示す。
図17の(a)を参照して、端末装置Aの周辺においては、トラヒックは日中よりも夜間の方が増加する(曲線k1参照)。即ち、端末装置Aの周辺においては、通信は日中に空いており、夜間に混雑している。図17の(b)を参照して、端末装置Bの周辺においては、トラヒックは、夜間よりも日中の方が増加する(曲線k2参照)。即ち、端末装置Bの周辺においては、通信は日中に混雑しており、夜間に空いている。
その結果、端末装置Aにおいては、ネットワークスキャンを夜間に行うよりも日中に行った方が衝突による再送の発生が少なくなり、ネットワークスキャンに使用するリソース量を低減できる。一方、端末装置Bにおいては、ネットワークスキャンを日中に行うよりも夜間に行った方がネットワークスキャンに使用するリソース量を低減できる。
そこで、スキャンスケジューラ16Aは、図3に示すホスト情報データベース13を参照して、IPアドレスAdd1〜Addmを有するm個の端末装置の周辺におけるトラヒックの時間依存性を作成し、その作成したm個のトラヒックの時間依存性に基づいて、時刻tにおける端末装置iの周辺における通信の混雑度Ct,iを算出する。
混雑度Ct,iは、端末装置iの周辺でネットワークスキャンに利用可能なリソース量に対する、端末装置iへのネットワークスキャンの実施に必要となるリソース量の割合からなる。例えば、端末装置iの周辺におけるトラヒックの時間依存性が図17の(a)に示す曲線k1で表わされる場合、夜間に端末装置iが通信を行うときはトラヒックが多く、利用可能なリソース量が少なくなる。一方、日中に端末装置iと通信を行う場合はトラヒックが少なく、利用可能なリソース量は多くなる。従って、混雑度Ct,iは、日中において小さくなり、夜間において大きくなる。
そこで、スキャンスケジューラ16Aは、各時刻tにおいて、端末装置iの周辺で利用可能な無線リソース量に対する端末装置iのネットワークスキャンの実施に要する無線リソース量の割合を演算して混雑度Ct,iを算出する。
そして、スキャンスケジューラ16Aは、算出した混雑度Ct,iを次式(1)に代入して混雑度Ct,iの総和C_totalが閾値C_th以下になるように制約条件(式(2)〜式(4))の下でスキャン指数st,iを決定する。
式(1)において、t=0,1,2,3,・・・,23であり、iは、端末装置のインデックスである。スキャン指数st,iは、時刻tにIPアドレスAddiの端末装置iに対してネットワークスキャンを行うとき、“1”からなり、ネットワークスキャンを行わないとき、“0”からなる。
式(2)は、ネットワークスキャンの回数が1日に1回であることを制約する。式(3)において、Wiは、IPアドレスAddiを有する端末装置iのネットワークスキャンに必要な通信のリソース量であり、Dtは、時刻tにおいて利用可能な通信のリソース量である。従って、式(3)は、時刻tにおけるネットワークスキャンで使用する通信リソース量の総和を制約する。式(4)において、Fi,jは、端末装置iと端末装置jとの間で干渉が有れば、“1”からなり、干渉が無ければ、“0”からなる。従って、式(4)は、端末装置iと端末装置jとの間で干渉が生じた場合、端末装置iのスキャンタイミングと端末装置jのスキャンタイミングとを相互に異なるスキャンタイミングに設定することを制約する。
なお、実施の形態2において説明する方法によってネットワークスキャンを行うことによって、端末装置または通信経路の通信リソース量を低減できると言う効果が更に得られる。そして、この通信リソース量は、無線通信の場合、無線リソース量からなり、有線通信の場合、有線リソース量からなる。この場合、無線リソース量は、周波数帯域×通信時間によって決定され、有線リソース量は、通信時間によって決定される。
スキャンスケジューラ16Aは、制約条件(式(2)〜式(4))の下で式(1)を満たすようにスキャン指数st,iの値(“1”または“0”)を決定する。そして、スキャンスケジューラ16Aは、“1”からなるスキャン指数st,iに基づいてスキャンタイミング1S’〜TS’を作成する。即ち、スキャンスケジューラ16Aは、各端末装置iの混雑度Ct,iをネットワークスキャンの対象となる端末装置およびネットワークスキャンの総時間長について加算した加算結果が閾値C_th以下になるようにスキャンタイミング1S’〜TS’を作成する。
スキャンスケジューラ16Aは、好ましくは、次式によってスキャン指数st,iの値(“1”または“0”)を決定する。
式(5)によれば、スキャンスケジューラ16Aは、混雑度Ct,iの総和が最小になるようにスキャン指数st,iの値(“1”または“0”)を決定する。そして、スキャンスケジューラ16Aは、決定したスキャン指数st,iの値(“1”または“0”)を用いて、1個の端末装置に対してネットワークスキャンを行うときの混雑度Ct,iを複数の端末装置およびネットワークスキャンの総時間長について加算した加算結果が最小になるようにスキャンタイミング1S’〜TS’を決定する。
図18は、複数の端末装置の周辺におけるトラヒックの時間依存性を示す図である。図18において、縦軸はトラヒックを表し、横軸は時間を表す。曲線k3は、例えば、複数の端末装置の周辺におけるトラヒックの時間依存性を示す。
図18を参照して、複数の端末装置の周辺におけるトラヒックは、時刻t1から時刻t2までの間、時刻t3から時刻t4までの間、および時刻t5から時刻t6までの間において少なくなる。
式(1)においては、各混雑度Ct,iが小さいほど、総和C_totalは、閾値C_th以下になり易い。また、式(5)においても、各混雑度Ct,iが小さいほど、総和C_totalは、最小になり易い。
従って、式(1)または式(5)によってスキャン指数st,iの値を決定すると、“1”からなる複数のスキャン指数st,iは、図18に示す時刻t1から時刻t2までの間、時刻t3から時刻t4までの間、および時刻t5から時刻t6までの間のいずれかに含まれる。
その結果、スキャンスケジューラ16Aは、時刻t1から時刻t2までの間の時刻tを有する複数のスキャン指数st,i=1に基づいて、開始時刻tstart=t1、終了時刻tend=t2、およびIPアドレスAddiを含むスキャンタイミング1S’を作成する。また、スキャンスケジューラ16Aは、時刻t3から時刻t4までの間の時刻tを有する複数のスキャン指数st,i=1に基づいて、開始時刻tstart=t3、終了時刻tend=t4、およびIPアドレスAddiを含むスキャンタイミング2S’を作成する。さらに、スキャンスケジューラ16Aは、時刻t5から時刻t6までの間の時刻tを有する複数のスキャン指数st,i=1に基づいて、開始時刻tstart=t5、終了時刻tend=t6、およびIPアドレスAddiを含むスキャンタイミング3S’を作成する。
そうすると、スキャンスケジューラ16Aは、その作成したスキャンタイミング1S’〜スキャンタイミング3S’からなるスキャンスケジュールSCSHDをネットワークスキャナ11へ出力する。
なお、スキャンスケジューラ16Aは、最初のネットワークスキャンを実行するためのスキャンタイミングを作成する場合、上述した式(1)または式(5)を用いてスキャンタイミングを決定してスキャンスケジュールSCSHDを作成する。
また、スキャンスケジューラ16Aは、クラスタを用いてスキャンタイミングを作成する場合、ホスト情報データベース13およびクラスタリングデータベース15を参照して、例えば、図6に示すクラスタA〜クラスタCをそれぞれスキャンタイミング1S’〜スキャンタイミング3S’に含めてスキャンスケジュールSCSHD1を作成する。この場合、スキャンタイミング1S’は、開始時刻tstart=t1、終了時刻tend=t2、およびクラスタAに含まれる端末装置iのIPアドレスAddiを含み、スキャンタイミング2S’は、開始時刻tstart=t3、終了時刻tend=t4、およびクラスタBに含まれる端末装置iのIPアドレスAddiを含み、スキャンタイミング3S’は、開始時刻tstart=t5、終了時刻tend=t6、およびクラスタCに含まれる端末装置iのIPアドレスAddiを含む。
クラスタを用いてスキャンタイミング1S’〜スキャンタイミング3S’を作成する場合、1つのクラスタに含まれる全ての端末装置を1つのスキャンタイミングに含めればよいので、スキャンタイミング1S’〜スキャンタイミング3S’を作成するときの計算時間を削減できる。
図19は、実施の形態2におけるネットワークスキャンの概念図である。図19を参照して、ネットワークスキャナ11は、日中に端末装置Aに対してネットワークスキャンを行い、夜間に端末装置Bに対してネットワークスキャンを行う。これによって、端末装置A,Bに対してネットワークスキャンを行うときの通信リソース量を低減できる。
図20は、通信が混雑している状態を示す図である。図20を参照して、ネットワークスキャナ11が1つのAPを介して3個の端末装置に対してネットワークスキャンを実行すると、ある時間のネットワークスキャンの対象が1つのAPに集中し、通信品質が低下する。
しかし、上述したように、端末装置iと端末装置jとが干渉する場合、端末装置iに対するネットワークスキャンと端末装置jに対するネットワークスキャンとを相互に異なるスキャンタイミングで行うので(式(4)参照)、ネットワークスキャンが1つのAPに集中する事態を回避でき、ネットワークスキャンの対象となった端末装置から良好にスキャン応答を得ることができる。
図21は、図15に示すネットワークスキャン装置1Aの動作を説明するためのフローチャートである。図21に示すフローチャートは、図12の示すフローチャートのステップS2とステップS3との間にステップS11,S12を追加したものであり、その他は、図12に示すフローチャートと同じである。
図21を参照して、ネットワークスキャン装置1Aの動作が開始されると、上述したステップS1,S2が順次実行される。
そして、ステップS2の後、スキャンスケジューラ16Aは、式(1)または式(5)を満たすようにスキャン指数st,iの値を決定して通信量がより少なくなる時間帯にスキャンタイミングを設定したスキャンスケジュールSCSHD0を作成し(ステップS11)、その作成したスキャンスケジュールSCSHD0をネットワークスキャナ11へ出力する。
ネットワークスキャナ11は、スキャンスケジューラ16AからスキャンスケジュールSCSHD0を受け、その受けたスキャンスケジュールSCSHD0に基づいてネットワークスキャンを実行し、スキャン解析マネージャ12は、ネットワークスキャンの結果に基づいてホスト情報データベース13を更新する(ステップS12)。
その後、上述したステップS3〜ステップS10が順次実行され、ネットワークスキャン装置1Aの動作が終了する。
図22は、図21に示すステップS11の詳細な動作を説明するためのフローチャートである。
図22を参照して、図21のステップS2の後、スキャンスケジューラ16Aは、ホスト情報データベース13に基づいて時刻tにおける端末装置iの混雑度Ct,iの算出を全ての端末装置について実行する(ステップS111)。
そして、スキャンスケジューラ16Aは、式(1)または式(5)を満たすようにスキャン指数st,iの値を決定する(ステップS112)。
その後、スキャンスケジューラ16Aは、“1”からなる全てのスキャン指数st,iに基づいて、スキャンタイミング1S’〜TS’を作成し(ステップS113)、その作成したスキャンタイミング1S’〜TS’を含むスキャンスケジュールSCSHD0を作成する(ステップS114)。そして、スキャンスケジューラ16Aは、スキャンスケジュールSCSHD0をネットワークスキャナ11へ出力する。その後、ネットワークスキャン装置1Aの動作は、図21のステップS12へ移行する。
図21に示すフローチャート(図22に示すフローチャートを含む)においては、ステップS4において、スキャンスケジューラ16Aは、式(1)または式(5)を満たすようにスキャン指数st,iの値を決定して通信量がより少なくなる時間帯にスキャンタイミングを設定したスキャンスケジュールSCSHD1を作成してもよい。この場合、スキャンスケジューラ16Aは、スキャンスケジュールSCSHD1の各スキャンタイミングに各クラスタに含まれる全ての端末装置を含める。
また、図21に示すフローチャート(図22に示すフローチャートを含む)においては、ステップS9において、スキャンスケジューラ16Aは、式(1)または式(5)を満たすようにスキャン指数st,iの値を決定して通信量がより少なくなる時間帯にスキャンタイミングを設定したスキャンスケジュールSCSHD2を作成してもよい。この場合、スキャンスケジューラ16Aは、スキャンスケジュールSCSHD2のスキャンタイミングのうち、スキャンスケジュールSCSHD1のスキャンタイミング(=分割クラスタの元になったクラスタが設定されたスキャンタイミング)と異なるスキャンタイミングに各分割クラスタに含まれる全ての端末装置を含める。
このように、図21に示すフローチャート(図22に示すフローチャートを含む)においては、ステップS4およびステップS9の少なくとも1つにおいて、スキャンスケジューラ16Aは、通信量がより少なくなる時間帯にスキャンタイミングを設定してスキャンスケジュールSCSHD1およびスキャンスケジュールSCSHD2の少なくとも1つを作成してもよい。
図21に示すフローチャート(図22に示すフローチャートを含む)によれば、ステップS11,S4,S9の少なくとも1つにおいて、通信量がより少なくなる時間帯にスキャンタイミングを設定したスキャンスケジュールSCSHDが作成され、その作成されたスキャンスケジュールSCSHDに基づいてネットワークスキャンが実行されるので(ステップS12,S5,S10参照)、実施の形態1における効果に加え、通信が空いているタイミングを考慮せずに、任意のタイミングでネットワークスキャンを実行する場合よりも通信リソース量を低減できる効果が得られる。
実施の形態2においては、ネットワークスキャン装置1Aの動作は、ソフトウェアによって実現されてもよい。この場合、ネットワークスキャン装置1Aは、CPU、ROMおよびRAMを備える。そして、ROMは、図21に示すフローチャート(図22に示すフローチャートを含む)の各ステップからなるプログラムProg_Bを記憶する。
CPUは、ROMからプログラムProg_Bを読み出し、その読み出したプログラムProg_Bを実行して、通信量がより少なくなる時間帯でネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した端末装置を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる端末装置を対象としてネットワークスキャンを再度実行する。RAMは、個数N_SR_anomalyおよび決定されたスキャン指数st,iの値を一時的に記憶する。
また、プログラムProg_Bは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Bを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Bを読み出して実行し、通信量がより少なくなる時間帯でネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した端末装置を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる端末装置を対象としてネットワークスキャンを再度実行する。
従って、プログラムProg_Bを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
上記においては、スキャンスケジューラ16Aは、各端末装置iの混雑度Ct,iをネットワークスキャンの対象となる端末装置およびネットワークスキャンの総時間長について加算した加算結果が閾値C_th以下(または最小)になるようにスキャンタイミング1S’〜TS’を作成すると説明したが、実施の形態2においては、これに限らず、スキャンスケジューラ16Aは、通信量が第1の通信量よりも少ない第2の通信量になる時間帯を検出し、その検出した時間帯をネットワークスキャンのスキャンタイミング1S’〜TS’として決定すればよい。
実施の形態2におけるその他の説明は、実施の形態1における説明と同じである。
[実施の形態3]
図23は、実施の形態3によるネットワークスキャン装置の概略図である。図23を参照して、実施の形態3によるネットワークスキャン装置1Bは、図2に示すネットワークスキャン装置1のスキャン解析マネージャ12、ホスト情報データベース13およびクラスタリングマネージャ14をそれぞれスキャン解析マネージャ12A、ホスト情報データベース13Aおよびクラスタリングマネージャ14Aに変えたものであり、その他は、ネットワークスキャン装置1と同じである。
スキャン解析マネージャ12Aは、ネットワークスキャナ11から受けたスキャン応答遅延に基づいて、後述する方法によって、ネットワークスキャンの対象となった端末装置の属性を判定し、その判定した属性を追加してホスト情報データベース13Aを作成または更新する。
スキャン解析マネージャ12Aは、その他、スキャン解析マネージャ12と同じ機能を果たす。
ホスト情報データベース13Aは、各端末装置の属性を図3に示すホスト情報データベース13に追加した構成からなる。
クラスタリングマネージャ14Aは、ホスト情報データベース13Aを参照して、各クラスタに含まれる端末装置から無線端末を抽出し、その抽出した無線端末からなるクラスタを生成する。そして、クラスタリングマネージャ14Aは、ネットワークスキャンを失敗した失敗原因がホスト情報データベース13Aに格納されると、第4の原因でネットワークスキャンを失敗した無線端末を含むクラスタを上述した方法によって複数の分割クラスタに分割する。
また、クラスタリングマネージャ14Aは、ネットワークスキャンを失敗した失敗原因がホスト情報データベース13Aに格納されると、第4の原因でネットワークスキャンを失敗した端末装置を含むクラスタを上述した方法によって複数の分割クラスタに分割する。そして、クラスタリングマネージャ14Aは、ホスト情報データベース13Aの属性に基づいて、複数の分割クラスタの各クラスタから有線端末を削除し、無線端末だけを含む複数の分割クラスタを生成する。
図24は、図23に示すホスト情報データベース13Aの概略図である。図24を参照して、ホスト情報データベース13Aは、図3に示すホスト情報データベース13に属性を追加したものであり、その他は、ホスト情報データベース13と同じである。
属性は、無線端末または有線端末からなる。そして、属性は、各IPアドレスAddiおよびドメイン名DNiに対応して格納される。
図25は、無線端末と有線端末におけるスキャン応答遅延の比較を示す図である。図25において、縦軸は、スキャン応答遅延を表し、横軸は、サンプル番号を表す。
図25を参照して、ネットワークスキャン用のスキャンパケットを公知のpspingによって模擬し、無線端末および有線端末のそれぞれに1000個のスキャンパケットを送信し、スキャン応答遅延SRDiを測定した。このpspingは、スキャンパケットを模擬したパケットを送信し、スキャン応答遅延SRDiを測定するものである。このスキャンパケットを模擬したパケットは、「テスト入力」を構成する。
そして、スキャン応答遅延SRDiに基づいて、公知のk−means法(非特許文献4)によって閾値を求め、無線端末と有線端末とを分類できるかを検証した。その結果、k−means法によって求めた閾値SRD_th1によって、約99%の精度で無線端末と有線端末とを分類できることが分かった。即ち、スキャン応答遅延SRDiが閾値SRD_th1以下であれば、ネットワークスキャンの対象が有線端末であり、スキャン応答遅延SRDiが閾値SRD_th1よりも大きければ、ネットワークスキャンの対象が無線端末であることが、約99%の精度で分類できることが分かった。
そこで、k−means法によって閾値SRD_th1,SRD_th2を求め、図25に示すように、更に、閾値SRD_th2を設定した。そして、スキャン応答遅延SRDiが閾値SRD_th1以下(SRDi≦SRD_th1)であれば、ネットワークが有線ネットワークであり、スキャン応答遅延SRDiが閾値SRD_th1よりも大きく、かつ、閾値SRD_th2以下(SRD_th1<SRDi≦SRD_th2)であれば、ネットワークが無線LAN(Local Area Network)であり、スキャン応答遅延SRDiが閾値SRD_th2よりも大きければ、ネットワークがセルラーネットワークであると分類することにした。
そして、属性の個数がk(kは2以上の整数)個であるとき、スキャン解析マネージャ12Aは、k−means法によって各端末装置をk個の属性のいずれかに分類するためのk−1個の閾値SRD_th1〜SRD_thk−1を求める。
その後、スキャン解析マネージャ12Aは、1つの端末装置の1つのポートからのスキャン応答遅延SRDiをk−1個の閾値SRD_th1〜SRD_thk−1と比較して1つのポートをk個の属性のいずれかに分類する処理を全てのポートについて実行する。そして、スキャン解析マネージャ12Aは、最も多くのポートが分類された属性を、その1つの端末装置の属性とする。即ち、スキャン解析マネージャ12Aは、多数決論理によって端末装置の属性を判定する。
スキャン解析マネージャ12Aは、この処理を複数の端末装置について実行し、複数の端末装置の各々をk個の属性のいずれかに分類する。
図26は、図23に示すネットワークスキャン装置1Bの動作を説明するためのフローチャートである。
図26に示すフローチャートは、図12に示すフローチャートのステップS3とステップS4との間にステップS21,S22を追加したものであり、その他は、図12に示すフローチャートと同じである。
図26を参照して、ネットワークスキャン装置1Bの動作が開始されると、上述したステップS1〜ステップS3が順次実行される。
そして、ステップS3の後、スキャン解析マネージャ12Aは、ホスト情報データベース13Aを参照して、複数の端末装置をk個の属性のいずれかに分類し(ステップS21)、ホスト情報データベース13Aを更新する。
そして、クラスタリングマネージャ14Aは、更新されたホスト情報データベース13Aを参照して、端末装置の属性に基づいて、各クラスタにおいて無線端末を抽出し(ステップS22)、その抽出した無線端末だけを含むクラスタを生成する。
その後、上述したステップS4〜ステップS10が順次実行され、ネットワークスキャン装置1Bの動作が終了する。
なお、スキャンスケジューラ16は、ステップS4において、各クラスタに含まれる無線端末を1つのスキャンタイミングに含めてスキャンスケジュールSCSHD1を作成する。
また、クラスタリングマネージャ14Aは、ステップS8において、第4の原因でネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割する。
更に、スキャンスケジューラ16は、ステップS9において、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してスキャンスケジュールSCSHD2を作成する。
図27は、図26のステップS21の詳細な動作を説明するためのフローチャートである。
図27を参照して、図26のステップS3の後、スキャン解析マネージャ12Aは、ホスト情報データベース13Aに格納された複数のスキャン応答遅延SRDiに基づいて、複数のポートをk個の属性に分類するためのk−1個の閾値SRD_th1〜SRD_thk−1を機械学習(例えば、k−means法)によって決定する(ステップS211)。この場合、スキャン解析マネージャ12Aは、機械学習器(例えば、k−means法によって機械学習を行う機械学習器)を保持しており、スキャン応答遅延SRDiを機械学習器に入力し、k−1個の閾値SRD_th1〜SRD_thk−1を出力として得る。なお、機械学習器は、k−means法によって機械学習を行う機械学習器に限らず、スキャン応答遅延SRDiを機械学習器に入力すれば、k−1個の閾値SRD_th1〜SRD_thk−1を出力する機械学習器であれば、どのような機械学習器であってもよい。
ステップS211の後、スキャン解析マネージャ12Aは、i=1を設定し(ステップS222)、端末装置iのスキャン応答SRiを受けた全てのポート番号を検出する(ステップS223)。
その後、スキャン解析マネージャ12Aは、端末装置iのポート番号PNrを最小のポート番号PN_minに設定する(ステップS224)。
そうすると、スキャン解析マネージャ12Aは、端末装置iのポート番号PNrに対応するスキャン応答遅延SRDiをk−1個の閾値SRD_th1〜SRD_thk−1と比較してポート番号PNrを有するポートをk個の属性のいずれかに分類する(ステップS225)。
そして、スキャン解析マネージャ12Aは、ポート番号PNrが最大のポート番号PN_maxであるか否かを判定する(ステップS226)。
ステップS226において、ポート番号PNrが最大のポート番号PN_maxでないと判定されたとき、スキャン解析マネージャ12Aは、端末装置iのポート番号PNrを、現在のポート番号PNrの次に大きいポート番号に設定する(ステップS227)。
その後、一連の動作は、ステップS225へ移行し、ステップS226において、ポート番号PNrが最大のポート番号PN_maxであると判定されるまで、ステップS225〜ステップS227が繰り返し実行される。
そして、ステップS226において、ポート番号PNrが最大のポート番号PN_maxであると判定されると、スキャン解析マネージャ12Aは、最も多くのポートが分類された属性に端末装置iを分類する(ステップS228)。
引き続いて、スキャン解析マネージャ12Aは、i=Iであるか否かを判定する(ステップS229)。
ステップS229において、i=Iでないと判定されたとき、スキャン解析マネージャ12Aは、i=i+1を設定する(ステップS230)。
その後、一連の動作は、ステップS223へ移行し、ステップS229において、i=Iであると判定されるまで、ステップS223〜ステップS230が繰り返し実行される。
そして、ステップS229において、i=Iであると判定されると、一連の動作は、図26のステップS22へ移行する。
ステップS225〜ステップS227は、端末装置iの全てのポートをk個の属性のいずれかに分類するステップである。そして、ステップS226において、ポート番号PNrが最大のポート番号PN_maxであると判定されると、ステップS228において、端末装置iは、最も多くのポートが分類された属性に分類される。即ち、スキャン解析マネージャ12Aは、多数決論理によって端末装置iをk個の属性のいずれかに分類する。
また、ステップS223〜ステップS230は、複数の端末装置の全てをk個の属性のいずれかに分類するステップである。
図28は、図27のステップS225の詳細な動作を説明するためのフローチャートである。なお、図28においては、端末装置iのポートを有線ネットワークの有線端末の属性、無線LANの無線端末の属性およびセルラーネットワークの無線端末の属性のいずれかに分類する場合を例として、図27のステップS225の詳細な動作を説明する。
図28を参照して、図27のステップS224またはステップS227の後、スキャン解析マネージャ12Aは、スキャン応答遅延SRDiが閾値SRD_th1以下であるか否かを判定する(ステップS2251)。
ステップS2251において、スキャン応答遅延SRDiが閾値SRD_th1以下であると判定されたとき、スキャン解析マネージャ12Aは、ポート番号PNrを有するポートを有線ネットワークの有線端末の属性に分類する(ステップS2252)。
一方、ステップS2251において、スキャン応答遅延SRDiが閾値SRD_th1以下でないと判定されたとき、スキャン解析マネージャ12Aは、スキャン応答遅延SRDiが閾値SRD_th1よりも大きく、かつ、閾値SRD_th2以下であるか否かを判定する(ステップS2253)。
ステップS2253において、スキャン応答遅延SRDiが閾値SRD_th1よりも大きく、かつ、閾値SRD_th2以下であると判定されたとき、スキャン解析マネージャ12Aは、ポート番号PNrを有するポートを無線LANの無線端末の属性に分類する(ステップS2254)。
一方、ステップS2253において、スキャン応答遅延SRDiが閾値SRD_th1よりも大きく、かつ、閾値SRD_th2以下でないと判定されたとき、スキャン解析マネージャ12Aは、ポート番号PNrを有するポートをセルラーネットワークの無線端末の属性に分類する(ステップS2255)。
そして、ステップS2252、ステップS2254およびステップS2255のいずれかの後、一連の動作は、図27のステップS226へ移行する。
図26に示すフローチャート(図27に示すフローチャートおよび図28に示すフローチャートを含む)によれば、スキャンスケジューラ16は、複数の端末装置のうち、無線端末だけを含むクラスタをネットワークスキャンの対象として抽出し、その抽出したクラスタに含まれる無線端末に対してネットワークスキャンを実行するので(図26のステップS21,S22,S4,S5参照)、ネットワークスキャンを実行するときの通信リソース量(無線リソース量)を低減できる。その他、実施の形態1における効果を得ることができる。
図29は、図23に示すネットワークスキャン装置1Bの動作を説明するための別のフローチャートである。
図29に示すフローチャートは、図12に示すフローチャートのステップS8とステップS9との間にステップS21,S22を追加したものであり、その他は、図12に示すフローチャートと同じである。
図29を参照して、ネットワークスキャン装置1Bの動作が開始されると、上述したステップS1〜ステップS8が順次実行される。
そして、ステップS8の後、上述したステップS21,S22が順次実行される。この場合、クラスタリングマネージャ14Aは、ステップS22において、複数の分割クラスタの各々において、有線端末を削除し、無線端末だけを含む複数の分割クラスタを生成する。
そして、ステップS22の後、上述したステップS9,S10が順次実行され、ネットワークスキャン装置1Bの動作が終了する。
なお、図29のステップS21の詳細な動作も、図27および図28に示すフローチャートに従って実行される。
また、スキャンスケジューラ16は、ステップS9において、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してスキャンスケジュールSCSHD2を作成する。
図30は、図26に示すフローチャートにおける処理概念と図29に示すフローチャートにおける処理概念との比較を示す図である。
図30の(a)は、図26に示すフローチャートにおける処理概念を示し、図30の(b)は、図29に示すフローチャートにおける処理概念を示す。
図30の(a)を参照して、ネットワークスキャン装置1Bの動作が図26に示すフローチャートに従って実行される場合、クラスタリングマネージャ14Aは、端末装置からなるクラスタAから無線端末を抽出し、IPアドレスAdd1,Add3,・・・,Addg(gは、p以下の正の整数)を有する無線端末だけを含むクラスタA’を生成する。その後、クラスタリングマネージャ14Aは、上述した方法によって、クラスタA’を無線端末だけを含む分割クラスタDVC1,DVC2に分割する。この場合、分割クラスタDVC1は、IPアドレスAdd1,Add4,・・・,Addg1を有する無線端末を含み、分割クラスタDVC2は、IPアドレスAdd3,Add7,・・・,Addg2を有する無線端末を含む。なお、g1およびg2は、g以下である正の整数であり、g1とg2のいずれか一方はgに等しい。
図30の(b)を参照して、ネットワークスキャン装置1Bの動作が図29に示すフローチャートに従って実行される場合、クラスタリングマネージャ14Aは、クラスタAを端末装置を含む分割クラスタDVC1,DVC2に分割する。その後、クラスタリングマネージャ14Aは、分割クラスタDVC1に含まれる有線端末を削除して無線端末だけを含む分割クラスタDVC1’を生成するとともに分割クラスタDVC2に含まれる有線端末を削除して無線端末だけを含む分割クラスタDVC2’を生成する。この場合、分割クラスタDVC1’は、IPアドレスAdd4,・・・,Addg3を有する無線端末を含み、分割クラスタDVC2’は、IPアドレスAdd2,・・・,Addg4を有する無線端末を含む。なお、g1およびg2はp以下である正の整数であり、g1とg2のいずれか一方はpに等しい。また、g3は、g1以下の正の整数であり、g4は、g2以下の正の整数である。
このように、ネットワークスキャン装置1Bの動作が図26に示すフローチャートに従って実行される場合、クラスタリングマネージャ14Aは、クラスタAに基づいて無線端末だけを含むクラスタA’を生成し、その後、クラスタA’を分割クラスタDVC1,DVC2に分割して無線端末だけを含む分割クラスタDVC1,DVC2を生成する。一方、ネットワークスキャン装置1Bの動作が図29に示すフローチャートに従って実行される場合、クラスタリングマネージャ14Aは、クラスタAを分割クラスタDVC1,DVC2に分割し、その後、無線端末を抽出して無線端末だけを含む分割クラスタDVC1’,DVC2’を生成する。
図26に示すフローチャートに従って分割クラスタDVC1,DVC2を生成した場合、無線端末だけを含むクラスタA’を分割して分割クラスタDVC1,DVC2を生成するので、分割クラスタDVC1,DVC2の各々は、必ず無線端末を含む。
一方、図29に示すフローチャートに従って分割クラスタDVC1’,DVC2’を生成した場合、端末装置を含むクラスタAを分割クラスタDVC1,DVC2に分割した後に分割クラスタDVC1,DVC2の各々から有線端末を削除して分割クラスタDVC1’,DVC2’を生成するので、分割クラスタDVC1’,DVC2’のいずれか一方が無線端末を全く含まない場合がある。上述したラウンドロビン方式によってクラスタを分割する方法、または乱数を付与して乱数が閾値よりも大きいか否かによってクラスタを分割する方法では、偶然にも1つのクラスタに全く無線端末が含まれない場合も生じ得るからである。従って、図29に示すフローチャートに従って分割クラスタを生成する方が、ネットワークスキャンを再度実行する分割クラスタの個数を減少できる可能性があり、効率的にネットワークスキャンを実行できる。
実施の形態3においては、ネットワークスキャン装置1Bの動作は、ソフトウェアによって実現されてもよい。この場合、ネットワークスキャン装置1Bは、CPU、ROMおよびRAMを備える。そして、ROMは、図26に示すフローチャート(図27に示すフローチャートおよび図28に示すフローチャートを含む)の各ステップからなるプログラムProg_C、または図29に示すフローチャート(図27に示すフローチャートおよび図28に示すフローチャートを含む)の各ステップからなるプログラムProg_Dを記憶する。
CPUは、ROMからプログラムProg_CまたはプログラムProg_Dを読み出し、その読み出したプログラムProg_CまたはプログラムProg_Dを実行して、無線端末を対象としてネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる無線端末を対象としてネットワークスキャンを再度実行する。RAMは、個数N_SR_anomalyおよび決定されたk個の閾値SRD_th1〜SRD_thk−1を一時的に記憶する。
また、プログラムProg_CまたはプログラムProg_Dは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_CまたはプログラムProg_Dを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_CまたはプログラムProg_Dを読み出して実行し、無線端末を対象としてネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる無線端末を対象としてネットワークスキャンを再度実行する。
従って、プログラムProg_CまたはプログラムProg_Dを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
なお、実施の形態3においては、k−1個の閾値SRD_th1〜SRD_thk−1は、機械学習によって決定されなくてもよく、予め決定された固定値からなっていてもよい。
上記においては、スキャン応答遅延SRDiを用いて端末装置の属性分類を行うと説明したが、この発明の実施の形態においては、これに限らず、スキャン応答SRiの遅延ジッタを用いて端末装置の属性分類を行ってもよく、一般的には、スキャン応答性を用いて端末装置の属性分類を行えばよい。スキャン応答性を用いて端末装置iをk個の属性のいずれかに分類するとき、スキャン解析マネージャ12Aは、端末装置iのスキャン応答性をk−1個の閾値と比較して端末装置iをk個の属性のいずれかに分類する。
実施の形態3におけるその他の説明は、実施の形態1,2における説明と同じである。
[実施の形態4]
図31は、実施の形態4によるネットワークスキャン装置の概略図である。図31を参照して、実施の形態4によるネットワークスキャン装置1Cは、図23に示すネットワークスキャン装置1Bのスキャンスケジューラ16をスキャンスケジューラ16Bに変えたものであり、その他は、ネットワークスキャン装置1Bと同じである。
スキャンスケジューラ16Bは、ホスト情報データベース13Aおよびクラスタリングデータベース15を参照して、無線端末だけを含むクラスタを対象として、通信量がより少なくなる時間帯にスキャンタイミングを設定したスキャンスケジュールSCSHDを作成し、その作成したスキャンスケジュールSCSHDをネットワークスキャナ11へ出力する。
図32は、図31に示すネットワークスキャン装置1Cの動作を説明するためのフローチャートである。
図32に示すフローチャートは、図21に示すフローチャートのステップS3とステップS4との間にステップS21,S22を追加したものであり、その他は、図21に示すフローチャートと同じである。
図32を参照して、ネットワークスキャン装置1Cの動作が開始されると、上述したステップS1,S2,S11,S12,S3,S21,S22,S4〜S10が順次実行され、ネットワークスキャン装置1Cの動作が終了する。
なお、図32に示すステップS21の詳細な動作は、図27および図28に示すフローチャートに従って実行される。
また、スキャンスケジューラ16Bは、ステップS4において、各クラスタに含まれる無線端末を1つのスキャンタイミングに含めてスキャンスケジュールSCSHD1を作成する。
更に、クラスタリングマネージャ14Aは、ステップS8において、第4の原因でネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割する。
更に、スキャンスケジューラ16Bは、ステップS9において、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してスキャンスケジュールSCSHD2を作成する。
このように、ネットワークスキャン装置1Cは、端末装置から無線端末を抽出して無線端末だけを含むクラスタを生成するとともに、第4の原因でネットワークスキャンを失敗した無線端末を含むクラスタを分割クラスタに分割し、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してネットワークスキャンを再度実行する。
図33は、図31に示すネットワークスキャン装置1Cの動作を説明するための別のフローチャートである。
図33に示すフローチャートは、図21に示すフローチャートのステップS8とステップS9との間にステップS21,S22を追加したものであり、その他は、図21に示すフローチャートと同じである。
図33を参照して、ネットワークスキャン装置1Cの動作が開始されると、上述したステップS1,S2,S11,S12,S3〜S8,S21,S22,S9,S10が順次実行され、ネットワークスキャン装置1Cの動作が終了する。
なお、図33に示すステップS21の詳細な動作は、図27および図28に示すフローチャートに従って実行される。
また、スキャンスケジューラ16Bは、ステップS9において、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してスキャンスケジュールSCSHD2を作成する。
このように、ネットワークスキャン装置1Cは、、第4の原因でネットワークスキャンを失敗した端末装置を含むクラスタを分割クラスタに分割するとともに、分割クラスタから無線端末を抽出して無線端末だけを含むクラスタを生成し、第4の原因でネットワークスキャンを失敗した無線端末を含む分割クラスタを少なくとも元のスキャンタイミングと異なるスキャンタイミングに設定してネットワークスキャンを再度実行する。
図32に示すフローチャートにおける処理概念は、図30の(a)に示す処理概念と同じであり、図33に示すフローチャートにおける処理概念は、図30の(b)に示す処理概念と同じである。従って、図26に示すフローチャートにおける処理概念と図29に示すフローチャートにおける処理概念との比較において説明したように、図33に示すフローチャートの方が図32に示すフローチャートよりも効率的にネットワークスキャンを実行できる。
実施の形態4においては、ネットワークスキャン装置1Cの動作は、ソフトウェアによって実現されてもよい。この場合、ネットワークスキャン装置1Cは、CPU、ROMおよびRAMを備える。そして、ROMは、図32に示すフローチャート(図27に示すフローチャートおよび図28に示すフローチャートを含む)の各ステップからなるプログラムProg_E、または図33に示すフローチャート(図27に示すフローチャートおよび図28に示すフローチャートを含む)の各ステップからなるプログラムProg_Fを記憶する。
CPUは、ROMからプログラムProg_EまたはプログラムProg_Fを読み出し、その読み出したプログラムProg_EまたはプログラムProg_Fを実行して、無線端末を対象として通信量がより少なくなる時間帯でネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる無線端末を対象としてネットワークスキャンを再度実行する。RAMは、個数N_SR_anomaly、決定されたスキャン指数st,iの値および決定されたk個の閾値SRD_th1〜SRD_thk−1を一時的に記憶する。
また、プログラムProg_EまたはプログラムProg_Fは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_EまたはプログラムProg_Fを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_EまたはプログラムProg_Fを読み出して実行し、無線端末を対象として通信量がより少なくなる時間帯でネットワークスキャンを行うとともに、第4の原因(=「ネットワーク混雑」)によってネットワークスキャンを失敗した無線端末を含むクラスタを複数の分割クラスタに分割し、その分割した各分割クラスタに含まれる無線端末を対象としてネットワークスキャンを再度実行する。
従って、プログラムProg_EまたはプログラムProg_Fを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
実施の形態4におけるその他の説明は、実施の形態1,2,3における説明と同じである。
従って、上述した実施の形態1〜実施の形態4によれば、この発明の実施の形態によるネットワークスキャン装置は、次の構成を備えていればよい。
(構成1)
ネットワークスキャン装置は、推定手段と、クラスタ生成手段と、スケジューリング手段と、スキャン手段とを備える。推定手段は、ネットワークスキャンの結果であるスキャン応答およびスキャン応答性に基づいてネットワークスキャンを失敗した失敗原因を推定する推定処理をネットワークスキャンの対象である端末装置について実行する。クラスタ生成手段は、ネットワークスキャンを行うタイミングである複数のスキャンタイミングのうちの1つのスキャンタイミングにおいてネットワークスキャンが行われた複数の端末装置のうちの少なくとも一部の端末装置の失敗原因が、ネットワークスキャンの対象である端末装置のポートが閉塞している第1の失敗原因、ネットワークスキャンの対象である端末装置との通信における通信品質が不足している第2の失敗原因、ネットワークスキャンの対象である端末装置がネットワークに接続されていない第3の失敗原因、およびネットワークスキャンの対象である端末装置が接続されているネットワークが混雑している第4の失敗原因のうち、第4の失敗原因である場合、第4の失敗原因によってネットワークスキャンを失敗した端末装置を含むように複数の分割クラスタを生成する。スケジューリング手段は、1つの分割クラスタに含まれる端末装置を1つのスキャンタイミングに含める処理を複数の分割クラスタについて実行してスキャンスケジュールを生成する。スキャン手段は、スケジューリング手段によって作成されたスキャンタイミングに基づいてネットワークスキャンを行う。
(構成2)
構成1において、複数の端末装置は、1つのクラスタに含まれる。クラスタ生成手段は、1つのクラスタを複数のクラスタに分割して複数の分割クラスタを生成する。
(構成3)
構成1または構成2において、クラスタ生成手段は、失敗原因が第4の失敗原因である端末装置と、ネットワークスキャンを失敗していない端末装置とに分けて複数の分割クラスタを生成する。
(構成4)
構成1または構成2において、クラスタ生成手段は、複数の分割クラスタ間において端末装置の位置が遠くなるように複数の分割クラスタを生成する。
(構成5)
構成1または構成2において、クラスタ生成手段は、複数の端末装置のアドレスに基づいて複数の分割クラスタを生成する。
(構成6)
構成1または構成2において、クラスタ生成手段は、複数の端末装置に乱数を付与し、その付与した乱数を閾値によって複数のグループに分けることによって複数の分割クラスタを生成する。
(構成7)
構成1から構成6のいずれかにおいて、スケジューリング手段は、ネットワークスキャンの結果であるネットワークスキャンデータに基づいて、通信量が第1の通信量よりも少ない第2の通信量となる複数の時間帯を検出し、その検出した複数の時間帯に複数のスキャンタイミングを設定してスキャンスケジュールを生成する。
(構成8)
構成1から構成7のいずれかにおいて、ネットワークスキャン装置は、閾値決定手段と、分類手段とを更に備える。閾値決定手段は、スキャン応答性に基づいて複数の端末装置を複数の属性に分類するための閾値を機械学習によって決定する。分類手段は、1個の端末装置のスキャン応答性を閾値と比較して1個の端末装置を複数の属性のいずれかに分類する属性分類処理を複数の端末装置について実行する。そして、クラスタ生成手段は、複数の端末装置から第4の失敗原因でネットワークスキャンを失敗した無線端末を抽出し、その抽出した無線端末が含まれるように複数の分割クラスタを生成する。
(構成9)
構成1から構成7のいずれかにおいて、ネットワークスキャン装置は、閾値決定手段と、分類手段とを更に備える。閾値決定手段は、スキャン応答性に基づいて複数の端末装置を複数の属性に分類するための閾値を機械学習によって決定する。分類手段は、1個の端末装置のスキャン応答性を閾値と比較して1個の端末装置を複数の属性のいずれかに分類する属性分類処理を複数の端末装置について実行する。そして、クラスタ生成手段は、複数の端末装置を含むグループを複数のクラスタに分割し、その分割した複数のクラスタから有線端末を削除して複数の分割クラスタを生成する。
また、上述した実施の形態1〜実施の形態4によれば、この発明の実施の形態によるプログラムは、次の構成を備えていればよい。
(構成10)
推定手段が、ネットワークスキャンの結果であるスキャン応答およびスキャン応答性に基づいてネットワークスキャンを失敗した失敗原因を推定する推定処理をネットワークスキャンの対象である端末装置について実行する第1のステップと、
クラスタ生成手段が、ネットワークスキャンを行うタイミングである複数のスキャンタイミングのうちの1つのスキャンタイミングにおいてネットワークスキャンが行われた複数の端末装置のうちの少なくとも一部の端末装置の失敗原因が、ネットワークスキャンの対象である端末装置のポートが閉塞している第1の失敗原因、ネットワークスキャンの対象である端末装置との通信における通信品質が不足している第2の失敗原因、ネットワークスキャンの対象である端末装置がネットワークに接続されていない第3の失敗原因、およびネットワークスキャンの対象である端末装置が接続されているネットワークが混雑している第4の失敗原因のうち、第4の失敗原因である場合、第4の失敗原因によってネットワークスキャンを失敗した端末装置を含むように複数の分割クラスタを生成する第2のステップと、
スケジューリング手段が、1つの分割クラスタに含まれる端末装置を1つのスキャンタイミングに含める処理を複数の分割クラスタについて実行してスキャンスケジュールを生成する第3のステップと、
スキャン手段が、第3のステップにおいて作成されたスキャンタイミングに基づいてネットワークスキャンを行う第4のステップとをコンピュータに実行させるためのプログラムである。
(構成11)
構成10において、複数の端末装置は、1つのクラスタに含まれる。クラスタ生成手段は、第2のステップにおいて、1つのクラスタを複数のクラスタに分割して複数の分割クラスタを生成する。
(構成12)
構成10または構成11において、クラスタ生成手段は、第2のステップにおいて、失敗原因が第4の失敗原因である端末装置と、ネットワークスキャンを失敗していない端末装置とに分けて複数の分割クラスタを生成する。
(構成13)
構成10または構成11において、クラスタ生成手段は、第2のステップにおいて、複数の分割クラスタ間において端末装置の位置が遠くなるように複数の分割クラスタを生成する。
(構成14)
構成10または構成11において、クラスタ生成手段は、第2のステップにおいて、複数の端末装置のアドレスに基づいて複数の分割クラスタを生成する。
(構成15)
構成10または構成11において、クラスタ生成手段は、第2のステップにおいて、複数の端末装置に乱数を付与し、その付与した乱数を閾値によって複数のグループに分けることによって複数の分割クラスタを生成する。
(構成16)
構成10から構成15のいずれかにおいて、スケジューリング手段は、第3のステップにおいて、ネットワークスキャンの結果であるネットワークスキャンデータに基づいて、通信量が第1の通信量よりも少ない第2の通信量となる複数の時間帯を検出し、その検出した複数の時間帯に複数のスキャンタイミングを設定してスキャンスケジュールを生成する。
(構成17)
構成10から構成16のいずれかにおいて、閾値決定手段が、スキャン応答性に基づいて複数の端末装置を複数の属性に分類するための閾値を機械学習によって決定する第5のステップと、
分類手段が、1個の端末装置のスキャン応答性を閾値と比較して1個の端末装置を複数の属性のいずれかに分類する属性分類処理を複数の端末装置について実行する第6のステップとを更にコンピュータに実行させ、
クラスタ生成手段は、第2のステップにおいて、複数の端末装置から第4の失敗原因でネットワークスキャンを失敗した無線端末を抽出し、その抽出した無線端末が含まれるように複数の分割クラスタを生成する。
(構成18)
構成10から構成16のいずれかにおいて、閾値決定手段が、スキャン応答性に基づいて複数の端末装置を複数の属性に分類するための閾値を機械学習によって決定する第5のステップと、
分類手段が、1個の端末装置のスキャン応答性を閾値と比較して1個の端末装置を複数の属性のいずれかに分類する属性分類処理を複数の端末装置について実行する第6のステップとを更にコンピュータに実行させ、
クラスタ生成手段は、第2のステップにおいて、複数の端末装置を含むグループを複数のクラスタに分割し、その分割した複数のクラスタから有線端末を削除して複数の分割クラスタを生成する。
(構成19)
記録媒体は、構成10から構成18のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。