(57)【要約】【課題】パッシブモニタを用いずに転送経路上に障害が発生したか否かを判定する。【解決手段】複数のスイッチ１６Ｓ１〜１６Ｓ５の各々に、コントローラを介して接続する監視装置は、スイッチ１６Ｓ１〜１６Ｓ５の中で、転送したパケット数を受信できなかったスイッチ１６Ｓ３がある場合（Ａ）、トポロジ情報（Ｂ）から、スイッチ１６Ｓ３はスイッチ１６Ｓ１とスイッチ１６Ｓ５に接続されていることを認識する。そこで、簡素装置は、同じ転送経路Ｆ１上の他のスイッチ１６Ｓ５のパケット総数（１０００）（Ｃ）を、スイッチ１６Ｓ３のパケット総数として設定する（１０００）（Ｅ）。これによりすべての各フロー上の各スイッチのパケット数が分かる。よって、監視装置は、各スイッチのパケット数から各フロー（転送経路）上に障害が発生した否かを判断することができる。【選択図】図１２
2014220645.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定された非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
【請求項２】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
【請求項３】
前記コンピュータに、
前記推測ができると判断した場合に、前記複数の非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記複数の非送信転送装置の各々が位置する転送経路である非送信転送装置転送経路を特定する処理を実行させる請求項２に記載の障害判定プログラム。
【請求項４】
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第１の装置と当該第１の装置からのデータを受信する第２の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる請求項１に記載の障害判定プログラム。
【請求項５】
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第１の装置と当該第１の装置からのデータを受信する第２の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる請求項２又は請求項３に記載の障害判定プログラム。
【請求項６】
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する処理を実行させる請求項４に記載の障害判定プログラム。
【請求項７】
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する処理を実行させる請求項５に記載の障害判定プログラム。
【請求項８】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する判断部と、
前記判断部により前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断された場合に、前記受信部により前記非送信転送装置に接続された複数の転送装置の各々から受信された前記転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部より前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により前記特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
【請求項９】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記データが正常に転送された場合に前記受信部により受信された前記特定情報に基づいて判断された、各転送装置が、当該各転送装置が位置する転送経路上に位置するどの転送装置と接続されているかを示す接続情報を、正常接続情報として記憶する記憶部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する判断部と、
前記判断部により前記推測ができないと判断された場合に、前記記憶部に記憶された前記正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完する補完部と、
前記正常接続情報に基づいて、前記補完部により前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部により前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定部により特定された前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
【請求項１０】
前記サーバ装置と、
前記複数のクライアント装置と、
前記複数の転送装置と、
請求項８又は請求項９に記載の障害判定装置と、
を含む障害発生判定システム。
【請求項１１】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
【請求項１２】
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置、転送装置、及びサーバ装置の間におけるデータの転送経路上に障害が発生したか否かを判定する技術に関する。
【背景技術】
【０００２】
従来、複数のクライアントＣ１〜Ｃ４とサーバＳ１との間でパケットの通信が複数のオープンフロースイッチＯＦＳ1〜ＯＦＳ５を用いて行われている。このような通信が行われている場合に、例えば、スイッチＯＦＳ４とスイッチＯＦＳ５との間のリンクに障害が生じた場合には、上記パケットの通信ができない。この場合には、どのリンクで障害が発生しているのかを調べる必要がある。そこで、従来、パッシブモニタを用いてパケットを収集し障害箇所を特定している。
【０００３】
しかし、パッシブモニタを設置する場所によっては、障害を解析することができない場合がある。即ち、図３２（Ａ）に示すように、パッシブモニタを、サーバＳ１とスイッチＯＦＳ５との間に設けた場合には、パッシブモニタは、スイッチＯＦＳから全ての転送経路のパケットを受信できる。よって、パッシブモニタは、スイッチＯＦＳ４とスイッチＯＦＳ５との間の障害を判定することができる。しかし、図３２（Ｂ）に示すように、パッシブモニタを、クライアントＣ１とスイッチＯＦＳ１との間に設けた場合を考える。スイッチＯＦＳ４とスイッチＯＦＳ５との間に障害が発生した場合、クライアントＣ１とスイッチＯＦＳ１との間に設けられたパッシブモニタには、スイッチＯＦＳ４とスイッチＯＦＳ５との間を通過するパケットを受信することができない。よって、この場合には、障害箇所を特定することができない。
【０００４】
このように、パッシブモニタを設置する場所は、障害を解析することができる場合に限定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１４６９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、パッシブモニタを設置する場所は自由に選択できない。
【０００７】
１つの側面では、本発明は、転送経路上に障害が発生したか否かの判定を行う新たな技術を提供することが目的である。
【課題を解決するための手段】
【０００８】
１つの態様では、サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられる。また、サーバ装置と複数のクライアント装置の各々との間に、各々転送装置が複数個位置する複数の転送経路が存在する。障害判定プログラムは、コンピュータに、複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる。このプログラムにより、コンピュータは、以下の処理を実行する。コンピュータは、接続情報に基づいて、接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断する。接続情報は、複数の転送装置の各々から受信した、各転送装置がサーバ装置、複数のクライアント装置、及び複数の転送装置のうちの何れの装置と接続されているかを示す。コンピュータは、非送信転送装置に接続された複数の転送装置から接続情報を受信したと判断した場合に、転送経路特定情報に基づいて、非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する。転送経路特定情報は、非送信転送装置に接続された複数の転送装置の各々から受信される情報であり、転送装置が位置する転送経路を特定するための情報である。コンピュータは、複数の転送経路の各々を特定転送経路として、特定転送経路毎に、特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、特定転送経路上に障害が発生したか否かを判定する。特定転送経路が前記特定された非送信転送装置転送経路の場合には、非送信転送装置の転送量情報として非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報が用いられて、特定転送経路上に障害が発生したか否かが判定される。
【発明の効果】
【０００９】
１つの側面として、転送経路上に障害が発生したか否かを判定することができる、という効果を有する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の監視システムを示すブロック図である。
【図２】（Ａ）は、監視プログラムを示す図であり、（Ｂ）は、監視プロセスを示す図である。
【図３】（Ａ）は、トポロジ管理テーブルを示し、（Ｂ）は、過去のトポロジ管理テーブルを示し、（Ｃ）は、障害リンクの管理テーブルを示す図である。
【図４】エッジ情報管理テーブルを示す図である。
【図５】フロー情報管理テーブルを示す図である。
【図６】フローの状態管理テーブルを示す図である。
【図７】（Ａ）は、フローの経路情報テーブル（ノード）を示し、（Ｂ）は、フローの経路情報テーブル（出力ポート）を示す図である。
【図８】（Ａ）は過去のフローの経路情報テーブル（ノード）を示し、（Ｂ）は、過去のフローの経路情報テーブル（出力ポート）を示す図である。
【図９】実施の形態の監視処理の一例を示すフローチャートである。
【図１０】図９のステップ９０のフロー状態判定処理の一例を示すフローチャートである。
【図１１】図９のステップ９２の障害箇所特定処理の一例を示すフローチャートである。
【図１２】１個のスイッチからトポロジ及びフロー情報を収集できなかった場合の処理を説明する図である。
【図１３】１個のスイッチからトポロジ及びフロー情報を収集できなかった場合の他の処理結果を示す図である。
【図１４】複数の連続したスイッチでフロー情報が欠落した場合の処理結果を示す図である。
【図１５】図９のステップ９２におけるフロー状態の判定処理の内容を説明する図である。
【図１６】図９のステップ９２の障害箇所特定処理の内容を説明する図である。
【図１７】サーバ及びクライアント間のフローの一例を示した図である。
【図１８】図１７の監視装置で保持されるトポロジ情報、およびエッジ情報管理テーブルの例を示した図である。
【図１９】図１７の監視装置で保持されるフロー情報管理テーブルの例を示した図である。
【図２０】フローは全て正常であるが、スイッチOFS3からフロー情報を収集できない場合の例を示す図である。
【図２１】スイッチOFS3からフロー情報を収集できないと共に、スイッチOFS3、OFS5の間にリンク障害が発生した場合の例を示す図である。
【図２２】パケット数の最大値と最小値が異なる場合のフロー情報管理テーブルを示す図である。
【図２３】パケット数の最大値と最小値が異なる場合のフローの状態管理テーブルを示す図である。
【図２４】スイッチOFS3からフロー情報を収集できないと共に、サーバの過負荷による不通障害が発生した場合の例図である。
【図２５】パケット数が上り方向と下り方向の値が異なる場合のフロー情報管理テーブルを示す図である。
【図２６】パケット数が上り方向と下り方向の値が異なる場合のフローの状態管理テーブルを示す図である。
【図２７】２つのスイッチOFS1とスイッチOFS3からフロー情報が収集できない場合の例を示す図である。
【図２８】パケット数が上り方向と下り方向の値が異なる場合のフロー情報管理テーブルを示す図である。
【図２９】パケット数が上り方向と下り方向の値が異なる場合のフローの状態管理テーブルを示す図である。
【図３０】フロー情報欠落判定前処理の第１の方法の一例を示すフローチャートである。
【図３１】フロー情報欠落判定前処理の第２の方法の一例を示すフローチャートである。
【図３２】障害箇所を特定するためパッシブモニタ配置した例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して開示の技術の実施の形態の一例を詳細に説明する。
【００１２】
図１には、監視装置１０を含む監視システムが示されている。監視装置１０は、コントローラ１２に接続されている。また、図１には、複数、例えば、４個のクライアント１４Ｃ１〜１４Ｃ４と、１つのサーバ１８との間に、複数、例えば５個のオープンフロースイッチ（以下、「スイッチ」という）１６Ｓ１〜１６Ｓ５が設けられている。スイッチ１６Ｓ１には、２つのクライアント１４Ｃ１、１４Ｃ２が接続されている。スイッチ１６Ｓ２には、２つのクライアント１４Ｃ３、Ｃ１４が接続されている。スイッチ１６Ｓ１とスイッチ１６Ｓ２とは、接続されており、スイッチ１６Ｓ１は、スイッチ１６Ｓ３、１６Ｓ４に接続されている。スイッチ１６Ｓ２は、スイッチ１６Ｓ３、１６Ｓ４に接続されている。スイッチ１６Ｓ３はスイッチ１６Ｓ４に接続されている。スイッチ１６Ｓ３、１６Ｓ４は、スイッチ１６Ｓ５に接続されている。スイッチ１６Ｓ５はサーバ１８に接続されている。スイッチ１６Ｓ１〜１６Ｓ５は、コントローラ１２に接続されている。このように、各クライアント１４Ｃ１〜１４Ｃ４とサーバ１８との間のデータ転送経路には、複数のスイッチが位置する。
【００１３】
上記監視システムは、後述する障害判定システムの一例である。監視装置１０は、開示の技術の障害判定装置の一例である。スイッチは、開示の技術の転送装置の一例である。
【００１４】
監視装置１０は、ＣＰＵ（中央処理装置：Central Processing Unit）２２、ＲＯＭ（Read Only Memory）２４、及びＲＡＭ（Random Access Memory）２６が、バス２８を介して相互に接続されている。バス２８には更に、入力部３０、表示部３２、メモリ３４、及び、インターフェイス３６が接続されている。インターフェイス３６には、コントローラ１２が接続されている。コントローラ１２は、後述する指示装置の一例である。
【００１５】
ＲＯＭ２４には、監視プログラムが記憶されている。監視プログラムは、図２（Ａ）に示すように、トポロジ・フロー情報収集実行部６０Ａ、フロー情報管理部６２Ａ、及びトポロジ管理部６４Ａを備えている。また監視プログラムは、障害箇所判定部６６Ａ、及び障害箇所表示部６８Ａを備えている。図２（Ｂ）に示すように、監視プロセスは、トポロジ・フロー情報収集実行プロセス６０Ｂ、フロー情報管理プロセス６２Ｂ、トポロジ管理プロセス６４Ｂを備えている。また、監視プロセスは、障害箇所判定プロセス６６Ｂ及び障害箇所表示プロセス６８Ｂを備えている。ＣＰＵ２２は、上記プロセス６０Ｂ〜６８Ｂを実行することにより、上記各部６０Ａ〜６８Ａとして機能する。
監視装置１０のメモリ３４には後述する種々のテーブル（図３（Ａ）〜図８（Ｂ））が設けられている。
【００１６】
スイッチ１６Ｓ１〜１６Ｓ５は、同様の構成となっているので、スイッチ１６Ｓ５の構成を説明し、他のスイッチの説明を省略する。スイッチ１６Ｓ５は、パケットを転送する転送系１６０Ｔと、後述する情報をコントローラ１２を介して監視装置１０に送信するための制御系１６０Ｃとを備えている。制御系１６０Ｃは、ＣＰＵ４２、ＲＯＭ４４、ＲＡＭ４６、及びメモリ５０を備えている。これらはバス４８により相互に接続されている。転送系１６０Ｔは、バス４８に接続された、ポートＰ１〜Ｐ４を備えている。スイッチ１６Ｓ５は、ポートＰ１を介してコントローラ１２に接続されている。スイッチ１６Ｓ５は、ポートＰ２を介してスイッチ１６Ｓ３に接続されている。スイッチ１６Ｓ５は、ポートＰ４を介してスイッチ１６Ｓ４に接続されている。スイッチ１６Ｓ５は、ポートＰ３を介してサーバ１８に接続されている。スイッチ１６Ｓ５は、スイッチ１６Ｓ３からのパケットをポートＰ２で受信し、ポートＰ３を介してサーバ１８に転送する。同様に、サーバ１８からのパケットをポートＰ３で受信し、受信したパケットをポートＰ２を介してスイッチ１６Ｓ３に転送する。その他のスイッチ１６Ｓ１〜１６Ｓ４も同様にパケットを自機のポートを介して他のスイッチまたはクライアントに転送する。
【００１７】
図３（Ａ）には、トポロジ（リンク情報）管理テーブルが示されている。トポロジ（リンク情報）管理テーブルは、スイッチＩＤ、出力ポートＩＤ、隣接スイッチＩＤ、及び隣接スイッチの入力ポートＩＤを記憶する。スイッチ１６Ｓ１〜１６Ｓ５は、スイッチ間で通信（ＬＬＤＰプロトコル）する。その通信の際、各スイッチ１６Ｓ１〜１６Ｓ５は、自機のＩＤ、例えば、スイッチ１６Ｓ１ではＯＦＳ１を送信している。また、各スイッチ１６Ｓ１〜１６Ｓ５は、自機のどのポートを介してパケットを転送しているのかを示すために、各ポートのＩＤを転送先のスイッチに送信している。よって、各スイッチ１６Ｓ１〜１６Ｓ５は、自機のどのポートが隣接するスイッチである隣接スイッチのどのポートと接続しているのかが分かる。各スイッチ１６Ｓ１〜１６Ｓ５は、これらの情報を保持している。後述するように、監視装置１０は、コントローラ１２を介して各スイッチに、スイッチＩＤ、出力ポートＩＤ、隣接スイッチＩＤ、及び隣接スイッチの入力ポートＩＤの情報（第１のトポロジ情報）を送信するように指示する。この指示があると、各スイッチは、これらの情報をコントローラ１２を介して、監視装置１０に送信する。第１のトポロジ情報を受信した監視装置１０は、トポロジ（リンク情報）管理テーブル（図３（Ａ））に、各スイッチ１６Ｓ１〜１６Ｓ５から受信した、スイッチＩＤ、出力ポートＩＤ、隣接スイッチＩＤ、及び隣接スイッチの入力ポートＩＤを記憶する。
【００１８】
図３（Ｂ）には、過去（前回の正常時）のトポロジ（リンク情報）管理テーブルが示されている。図３（Ｂ）に示すテーブルは、図３（Ａ）のテーブルと構成は同一である。しかし、図３（Ｂ）のテーブルは後述する障害がない場合に収集した情報に基づいて第１のトポロジ情報を記憶するテーブルである。
図３（Ｃ）には、障害リンクの管理テーブルが示されている。図３（Ｃ）の管理テーブルも、図３（Ａ）と同様の構成であるが、後述する障害が生じたリンクに対応するスイッチに関する上記第１のトポロジ情報のみを記憶する。
【００１９】
図４には、エッジ（サーバまたはクライアント）情報管理テーブルが示されている。エッジ情報管理テーブルは、エッジＩＰアドレス、隣接スイッチＩＤ、及び隣接スイッチの接続ポートＩＤを対応して記憶するためのテーブルである。
【００２０】
図３（Ａ）は、スイッチ間の情報、即ち、各スイッチが、自機のどのポートがどの隣接するスイッチのどのポートと接続しているのかを示す情報（第１のトポロジ情報）を記憶する。一方、図４に示すエッジ情報管理テーブルは、エッジと当該エッジと直接接続しているスイッチとの接続の情報（第２のトポロジ情報）を記憶するためのテーブルである。即ち、エッジには、クライアント１４Ｃ１〜１４Ｃ４、及びサーバ１８がある。図１に示すように、クライアント１４Ｃ１はスイッチ１６Ｓ１に直接接続されている。サーバ１８にはスイッチ１６Ｓ５が直接接続されている。スイッチとクライアント１４Ｃ１〜１４Ｃ４またはサーバ１８とが通信する際、クライアント１４Ｃ１〜１４Ｃ４またはサーバ１８は、クライアントまたはサーバ１８のＩＰアドレスを送信する。よって、クライアント１４Ｃ１〜１４Ｃ４またはサーバ１８に直接接続されているスイッチ１６Ｓ１、１６Ｓ２、１６Ｓ５は、どのクライアント１４Ｃ１〜１４Ｃ４またはどのサーバ１８と自機のどのポートとが接続されているのかを知ることができる。クライアント１４Ｃ１〜１４Ｃ４またはサーバ１８に直接接続しているスイッチ１６Ｓ１、１６Ｓ２、１６Ｓ５は、第２のトポロジ情報を保持している。コントローラ１２を介して、監視装置１０が第２のトポロジ情報を送信するように指示があった場合に、上記スイッチ１６Ｓ１、１６Ｓ２、１６Ｓ５は、第２のトポロジ情報を、コントローラ１２を介して、監視装置１０に送信する。監視装置１０は、第２のトポロジ情報を受信すると、図４に示すエッジ情報管理テーブルに第２のトポロジ情報を記憶する。
【００２１】
上記のように、スイッチ１６Ｓ１〜１６Ｓ５は、監視装置１０にトポロジ情報（第１のトポロジ情報及び第２のトポロジ情報を含む）を送信する。各スイッチ１６Ｓ１〜１６Ｓ５がトポロジ情報を送信して、監視装置１０がトポロジ管理テーブル（図３（Ａ））及びエッジ情報管理テーブル（図４）にそれぞれ、第１のトポロジ情報及び第２のトポロジ情報を記憶する。監視装置１０は、図３（Ａ）のトポロジ管理テーブル及びエッジ情報管理テーブルの各トポロジ情報に基づいて、クライアント１４Ｃ１〜１４Ｃ４、スイッチ１６Ｓ１〜１６Ｓ５、及びサーバ１８がどのように接続されているのかを把握することができる。即ち、監視装置１０は、各スイッチ１６Ｓ１〜１６Ｓ５は、各スイッチのどのポートを介して他のスイッチのどのポートに接続されているのかを把握することができる。また、監視装置１０は、スイッチ１６Ｓ１、１６Ｓ２、１６Ｓ５のどのポートを介してどのエッジ（クライアントまたはサーバ）に接続されているのかを把握することができる。
トポロジ情報（第１のトポロジ情報及び第２のトポロジ情報を含む）は、開示の技術の接続情報の一例である。
【００２２】
図５には、フロー情報管理テーブルが示されている。上記のようにクライアント１４Ｃ１〜１４Ｃ４とサーバ１８とはパケットの送受信をしている。即ち、例えば、クライアント１４Ｃ１から、あるデータをサーバ１８に送信する際、クライアント１４Ｃ１は、データを分割し、分割して得られた各データをパケットとして送信している。各パケットには、その分割されたデータの発信元及び宛先の情報（ＩＰアドレス）と、分割された各データの各々を順に識別するシリアルデータを含むパケット情報が含まれている。また、各スイッチ１６Ｓ１〜１６Ｓ５は、パケットを転送した数をカウントしたカウント値（パケット数）を保持している。パケット情報及びカウント値の情報をまとめてフロー情報という。各スイッチ１６Ｓ１〜１６Ｓ５は、監視装置１０からの送信指示に従って、上記フロー情報を監視装置１０に送信する。例えば、スイッチ１６Ｓ１から複数のフロー情報が送信される。そのフロー情報は、例えば、クライアント１４Ｃ１とサーバ１８との間のパケットのフロー情報である場合もあり、また、クライアント１４Ｃ２とサーバ１８とのパケットの情報の場合もある。フロー情報の各パケット情報には、上記のように、データの発信元及び宛先のＩＰアドレスが含まれている。よって発信元及び宛先のＩＰアドレスから、パケット情報を次のように分類することができる。
【００２３】
まず、監視装置１０は、各スイッチ１６Ｓ１〜１６Ｓ５から受信したパケット情報を、発信元及び宛先が同じパケット情報に分類する。監視装置１０は、分類されたパケット情報を送信したスイッチを特定する。監視装置１０は、第１のトポロジ情報（スイッチ間の接続情報）と、第２のトポロジ情報（エッジ及びスイッチ間の接続情報）とから、データの転送経路（フロー）を特定する。
監視装置１０は、各フローについてフローＩＤを付与し、各フローについて、フロー上のスイッチから送信された、当該各スイッチが単位時間当たりに出力したパケットの数であるパケット数（カウント値）の最大値及び最小値を抽出する。そして、監視装置１０は、フローＩＤに対応して、発信元ＩＰアドレス、発信先ＩＰアドレス、及びパケット数の最大値及び最小値を、図５に示すフロー情報管理テーブルに記憶する。
ＩＰアドレスは、開示の技術の転送経路特定情報の一例である。パケット数は、開示の技術の転送量情報の一例である。
【００２４】
図６には、フロー情報管理テーブルが示されている。フロー情報管理テーブルは、コネクションＩＤ、ＩＰアドレス（片側）、ＩＰアドレス（逆側）を記憶する。また、フロー状態管理テーブルは、送信パケット数、送信パケットの差分値を記憶する。フロー状態管理テーブルは、受信パケット数及び受信パケットの差分値を記憶するためのテーブルである。そして、フロー状態管理テーブルは判定結果を記憶する。
【００２５】
コネクションＩＤは、あるクライアントからサーバへの第１のフローと、当該サーバから当該クライアントへの第２のフローのように、対応するフロー同士を識別するＩＤである。即ち、図５に示すフローＩＤ＝１におけるフローの発信元は、サーバ１８であり、宛先はクライアント１４Ｃ１である。一方、フローＩＤ＝２のフローの発信元はクライアント１４Ｃ１であり、宛先はサーバ１８である。このような２つのフローＩＤの各フローは、発信元及び宛先が逆となっているだけで、同じクライアント及びサーバ間のデータの送信を示す。このように、対応するフローを識別するＩＤがコネクションＩＤである。図５に示すように、フローＩＤ＝１及びＩＤ＝２のフローについてみると、発信元及び宛先は、サーバ１８及びクライアント１４Ｃ１の何れかである。そこで、一方の装置を片側の装置としてそのＩＰアドレスを、ＩＰアドレス（片側）とし、他方の装置を、片側の装置として、そのＩＰアドレスを、ＩＰアドレス（逆側）とする。図６に示すように、例えば、コネクションＩＤ＝１で識別される２つのフロー（フローＩＤ＝１、２）では、ＩＰアドレス（片側）として、サーバ１８のＩＰアドレス（ａ,ｂ,ｃ,ｄ）を記憶する。また、ＩＰアドレス（逆側）として、クライアント１４Ｃ１のＩＰアドレス（ａ,ｂ,ｃ,ｅ）を記憶する。このように、片側とは、２つのフローの内の一方であり、逆側とは他方のフローである。一方のフロー、即ち、片側のフローを送信とし、他方のフローを受信とする。図６における送信パケット数は、上記片側のフロー、即ち、サーバ１８からクライアント１４Ｃ１に向うフローであり、受信は、クライアント１４Ｃ１からサーバ１８に向うフローである。上記フローＩＤ＝１のフロー上の各スイッチから受信したパケット数の内の最大値を送信パケット数に記憶する。同様に、フローＩＤ＝２のフロー上の各スイッチから受信したパケット数の内の最大値を、受信パケット数に記憶する。
以上を各コネクションＩＤについて行う。
【００２６】
各パケットコネクションＩＤにおける２つのフローの各々については、データが予め定められた状態で送受信されている、即ち、正常の場合には、各スイッチにおけるパケット数は同じである。よって、送信パケットの差分値や受信パケットの差分値は０である。図６におけるコネクションＩＤ＝１で識別される各フローでは、送信パケットの差分値及び受信パケットの差分値は０である。よって、コネクションＩＤ＝１で識別される各フローのデータの送受信は正常であることが分かる。そこで、正常であることを示す○を、判定結果の欄に記憶する。
【００２７】
コネクションＩＤｋでは、一方のフローは、図５におけるフローＩＤ＝ｎ−１であり、他方のフローは、フローＩＤ＝ｎで識別される。一方のフローにおける送信パケット数は５００であるのに対し他方のパケット数（受信パケット数）は１０００である。同じクライアントと同じサーバとの間では、単位時間当たりに送受信するパケット数はほぼ等しい、あるいはクライアントからの送信パケット数がサーバからの送信パケット数より多くなる。よって、各コネクションＩＤにおいては送信パケット数及び受信パケット数は同じ数である場合が正常の場合である。しかし、コネクションＩＤｋにおけるフローＩＤ＝ｎ−１、ｎでは、送信パケット数は５００であるのに対し、受信パケット数は１０００である。受信パケット数は、クライアントからサーバへ送信したパケットの数であるのに対し、送信パケット数は、サーバからクライアントに送信したパケット数である。よって、クライアントからは１０００のパケット数のデータを送信しているが、サーバは、５００しかデータを送信していない。これは、サーバに大きな負荷がかかり、受信したパケットに応じて同じ数のパケットを送信できない状態である。これも、予め定められた状態、即ち、正常には該当しない。この場合は、異常であるので、判定結果には、異常であることを示す×を記憶する。
【００２８】
更に、図６に示すコネクションＩＤ２により識別されるフローＩＤ＝３及び４の各フローについてみる。サーバからの送信パケット数は５００であるのに対し、クライアントからのパケット数は１０００である。よって、コネクションＩＤで識別されるフローＩＤ＝３、４についても、上記と同様に、サーバに負荷がかかった異常な状態であることが理解される。更に、コネクションＩＤ＝２における受信パケット数の差分値は０ではなくて、５００が記憶されている。これは次のような原因で生ずる。受信パケット数は、一定時間当たりのパケットの数である。各スイッチは、正常な状態でデータを送信していると、各スイッチのパケットの数は等しいので、受信パケットの差分値は０であるはずである。しかし、例えば、何れかのスイッチとそのスイッチと直接接続されている他のスイッチとの間の線が切断された場合には、切断されるまでに例えば５００のパケットを送信していたら、上記切断によって残りの５００が送信できない。このように、受信パケットの差分値が０でない場合には、当該フロー上のスイッチ間での線が切断されている等の異常が発生したことが認識できる。よって、判定結果に、異常を示す×を記憶する。
【００２９】
図７（Ａ）には、フローの経路情報テーブル（ノード）が示されている。経路情報テーブル（ノード）は、フローＩＤ、ノード１、ノード２、ノード３、…を対応して記憶する。図３（Ａ）のテーブルの情報から各スイッチが自機のどのポートで、他のスイッチのどのポートと接続されているのかが分かる。また、図４のエッジ情報管理テーブルから、クライアントまたはサーバに接続されているスイッチでは、自機のどのポートでクライアントまたはサーバと接続しているのかが分かる。更に、図５のフロー情報管理テーブルから、各フローの発信元及び宛先の装置が分かる。加えて、前述したようにパケット情報からどのスイッチがフローＩＤで識別されるフロー上のスイッチなのかもわかる。以上の情報から、図７（Ａ）の管理情報テーブル（ノード）には、フローＩＤに対応して、当該フローにおける発信元の装置のＩＰアドレス、宛先の装置のＩＰアドレスと、これらの間のデータが転送されるスイッチのＩＤを記憶する。
【００３０】
図７（Ｂ）には、フローの経路情報テーブル（出力ポート）が示されている。フローの経路情報テーブル（出力ポート）は、フローＩＤ、ポート１、ポート２、…を対応して記憶する。ポート１は、発信元の装置に接続されているスイッチにおける発信元の装置と接続されているポートを記憶する。ポート２には、１番目のスイッチが２番目のスイッチのどのポートに接続されているのかを示す、２番目のスイッチのポートのＩＤを記憶する。以下、他のスイッチについてもポートのＩＤを同様に記憶する。
【００３１】
図７（Ａ）及び図７（Ｂ）に示す情報に基づいて監視装置１０は、各フローにおいて、発信元から宛先までの装置の間で、各スイッチがどのクライアントまたはどのサーバと自機のどのポートと接続されているのかを把握することができる。また、監視装置１０は、各スイッチが他のスイッチのどのポートに接続されているのかの情報が理解できる。
【００３２】
図８（Ａ）及び図８（Ｂ）に示すテーブルは、図７（Ａ）及び図７（Ｂ）におけるテーブルと同様であるが、図８の各テーブルには、過去（前回の正常時におけるフローの経路情報が記憶される。
【００３３】
次に実施の形態の作用を説明する。
図９には、監視装置１０が実行する監視処理の一例が示されている。ステップ７２で、トポロジ・フロー情報収集実行部６０Ａは、一定時間毎にトポロジ情報及びフロー情報を収集する。即ち、トポロジ・フロー情報収集実行部６０Ａは、コントローラ１２に、トポロジ及びフロー情報を送信するように各スイッチに指示する。コントローラ１２は、各スイッチ１６Ｓ１〜１６Ｓ５に対し上記情報を送信するように指示する。各スイッチ１６Ｓ１〜１６Ｓ５は、上記情報を、コントローラ１２に送信する。コントローラ１２は、受信した情報を監視装置１０に送信する。トポロジ管理部６４Ａは、受信した情報に基づいて、トポロジ管理テーブル（図３（Ａ））及びエッジ情報管理テーブル（図４）を更新する。また、フロー情報管理部６２Ａは、フロー情報管理テーブル（図５）、図６のフローの状態管理テーブルにおける判定結果以外の欄を更新し、  図７（Ａ）及び図７（Ｂ）の各テーブルを更新する。
【００３４】
ステップ７４で、フロー情報管理部６２Ａは、パケットが通過するスイッチ毎にカウンタ情報を保持する。即ち、フロー情報中のパケットのカウント値（パケット数）であるカウンタ情報を保持する。
ステップ７５で、フロー情報管理部６２Ａは、フロー情報が欠落したスイッチがあるのか否かを判断するためのフロー情報欠落判定前処理を実行する。
ステップ７５の処理には、２種類の処理がある。第１の処理は図３０に示されている。第２の処理は図３１に示されている。ステップ７５では、何れかの処理を実行する。以下、各々について説明する。
図３０を参照して第１の方法を説明する。フロー情報管理部６２Ａは、ステップ７５ａで、トポロジ情報及びフロー情報を送信した各スイッチを識別する変数ｓを０に初期化し、ステップ７５ｂで、変数ｓを１インクリメントする。  
【００３５】
フロー情報管理部６２Ａは、ステップ７５ｃで、変数ｓで識別されるスイッチＳＷｓから送信されたトポロジ情報（第１のトポロジ情報）から、当該スイッチＳＷｓが直接接続されている隣接スイッチＳＷsaのＩＤを取得する。
【００３６】
ステップ７５ｄで、フロー情報管理部６２Ａは、隣接スイッチＳＷｓａから上記トポロジ情報及びフロー情報を受信したか否かを判断する。隣接スイッチＳＷｓａから上記トポロジ情報及びフロー情報を受信しなかったと判断された場合には、存在することが推定されるスイッチから情報を受信できなかった場合である。そこで、フロー情報管理部６２Ａは、ステップ７５ｅで、フロー情報が欠落したスイッチとして、隣接スイッチＳＷｓａのＩＤを記憶する。ステップ７５ｄの判定結果が肯定判定の場合、及び、ステップ７５ｅの処理が実行された後、フロー情報管理部６２Ａは、ステップ７５ｆで、変数ｓが、情報を送信したスイッチの総数Ｓに等しいか否かを判断する。変数ｓが総数Ｓに等しくない場合には、フロー情報が欠落したスイッチが存在する可能性があるので、ステップ７５ｂに戻って、以上の処理（７５ｂ〜７５ｆ）が実行される。ステップ７５ｆの判定結果が肯定判定の場合には、全てのスイッチについてフロー情報が欠落したスイッチがあるのか否かが判断されたので、ステップ７５の処理が終了し、監視処理は、ステップ７６に移行される。
【００３７】
次に図３１を参照して、第２の方法を説明する。ステップ７５ｇで、フロー情報管理部６２Ａは、障害リンク管理テーブル（図３（Ｃ））中のみに記憶されている各スイッチを識別する変数ｔを０に初期化し、ステップ７５ｈで、変数ｔを１インクリメントする。
【００３８】
ステップ７５ｉで、フロー情報管理部６２Ａは、変数ｔで識別されるスイッチＳＷｔから上記情報を受信したか否かを判断する。スイッチＳＷｔから上記情報を受信しなかった場合は、フロー情報が欠落したスイッチとしてスイッチｔのＩＤを記憶する。ステップ７５ｉの判定結果が肯定判定の場合、またはステップ７５ｊが実行された後は、ステップ７５ｋで、フロー情報管理部６２Ａでは、変数ｔが、障害リンクの管理テーブル中に記憶されたスイッチの総数Ｔに等しいか否かを判断する。変数ｔが総数Ｔに等しくない場合には、障害リンクの管理テーブル中に記憶されたスイッチがフロー情報が欠落したスイッチなのか否かを判断していないスイッチがあるので、ステップ７５ｈに戻って、以上の処理（ステップ７５ｈ〜７５ｋ）が実行される。ステップ７５ｋの判定結果が肯定判定の場合には、障害リンクの管理テーブル中に記憶されたスイッチ以外の残りのスイッチを識別する変数ｕを０に初期化し、ステップ７５ｎで、変数ｕを１インクリメントする。
【００３９】
ステップ７５ｐで、フロー情報管理部６２Ａは、変数ｕで識別されるスイッチｕのトポロジ情報から、スイッチｕに隣接する隣接スイッチＳＷｕａのＩＤを取得する。ステップ７５ｑでフロー情報管理部６２Ａは、隣接スイッチＳＷｕａから情報を受信したか否かを判断する。隣接スイッチＳＷｕａから情報を受信しなかった場合は、存在が推定されるスイッチから情報を受信しなかった場合である。そこで、ステップ７５ｒで、フロー情報が欠落したスイッチとして、隣接スイッチＳＷｕａのＩＤを記憶する。ステップ７５ｑの判定結果が肯定判定の場合またはステップ７５ｒの処理が実行された後は、ステップ７５ｓで、変数ｕが、残りのスイッチの総数Ｕに等しいか否かを判断する。変数ｕが総数Ｕに等しくない場合には、残りのスイッチにおいてフロー情報が欠落したスイッチが存在しているか否か判断していないスイッチがあるので、ステップ７５ｎに戻って、以上の処理（ステップ７５ｎ〜７５ｓ）を実行する。
【００４０】
ステップ７５ｓの判定結果が肯定判定の場合には、フロー情報欠落判定前処理が終了し、図９のステップ７６に移行される。
ステップ７６では、フロー情報管理部６２Ａは、ステップ７５においてフロー情報が欠落したスイッチとして上記ＩＤが記憶されているか否かを判断することにより、フロー情報が欠落したか否かを判断する。ステップ７６が否定判定の場合、即ち、フロー情報が欠落していなかったと判断された場合には、監視処理はステップ７８に移行される。ステップ７８で、今回上記各情報を収集した際、障害が発生していなかったと判断される。このため、今回受信したトポロジ情報から、トポロジ管理部６４Ａは、図３（Ｂ）に示すテーブルを更新し、今回受信したフロー情報から、フロー情報管理部６２Ａは、図８の各テーブルを更新する。
【００４１】
ステップ７６の判定結果が肯定判定の場合には、フロー情報管理部７２Ａは、連続した複数のスイッチでフロー情報が欠落したか否かを判断する。ここで、連続した複数のスイッチでフロー情報が欠落している場合（ステップ８０の判定結果が肯定判定の場合）と欠落していない場合（ステップ８０の判定結果が否定判定の場合）について説明する。連続した複数のスイッチでフロー情報が欠落していない場合（ステップ８０の判定結果が否定判定の場合）としては、次の第１の場合と第２の場合がある。第１の場合としては、１個のスイッチのみからフロー情報が欠落している場合である。第２の場合としては、複数のスイッチからフロー情報が欠落しているが、当該複数のスイッチ間が接続されているかいないかのどちらなのかを判断できる場合である。
【００４２】
上記第１の場合としては、図１２（Ａ）に示すように、例えば、スイッチ１６Ｓ３からフロー情報を受信できなかったが、スイッチ１６Ｓ３を挟むスイッチ１６Ｓ１、Ｓ５からフロー情報を受信した場合がある。即ち、スイッチ１６Ｓ３からフロー情報を受信しなかった場合でも、スイッチ１６Ｓ１、１６Ｓ５からのトポロジ情報（図１２（Ｂ））から、スイッチ１６Ｓ１、１６Ｓ５は、スイッチ１６Ｓ３と接続されていると認識することができる。第２の場合としては、複数のスイッチから上記情報を受信できなかったが、上記トポロジ情報からこれらのスイッチの間が接続されているかいないかのどちらかなのかを判断できる場合である。
【００４３】
一方、連続した複数のスイッチでフロー状態が欠落している場合（ステップ１８０の判定結果が肯定判定）として、例えば、図１４（Ａ）に示すように、スイッチ１６Ｓ１、１６Ｓ３から上記情報を受信できなかった場合がある。スイッチ１６Ｓ５、１６Ｓ４、１６Ｓ２からのトポロジ情報に基づいて、スイッチ１６Ｓ１、１６Ｓ３の存在が推測される。しかし、スイッチ１６Ｓ１とスイッチ１６Ｓ３との間に別のスイッチが存在し、当該別のスイッチからも上記情報が送信されていない場合も考えられる。よって、この場合には、スイッチ１６Ｓ１とスイッチ１６Ｓ３とが接続されていると推測することはできない。
ステップ８０の処理は、開示の技術の非転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断することの一例であり、開示の技術の推測できるか否かを判断することの一例である。
【００４４】
ステップ８０の判定結果が否定判定の場合には、フロー情報管理部６２Ａは、ステップ８２で、欠落した後段のスイッチのカウンタ値を調査し、ステップ８４で、欠落した部分のカウンタに後段のスイッチの値を設定する。以下、ステップ８２及びステップ８４の処理を説明する。
【００４５】
ステップ８０の判定結果が否定判定の場合としては、図１２（Ａ）に示すように、例えば、スイッチ１６Ｓ３から上記情報を受信しなかったが、スイッチ１６Ｓ３を挟むスイッチ１６Ｓ１、スイッチ１６Ｓ５から上記情報を受信した場合がある。これは、図１２（Ｂ）に示すように、トポロジ情報（第１のトポロジ情報）から判断することができる。即ち、スイッチ１６Ｓ１、スイッチ１６Ｓ５からのトポロジ情報に基づいて、スイッチ１６Ｓ５及びスイッチ１６Ｓ１は、スイッチ１６Ｓ３に接続されていることが推測することができる。このように、スイッチ１６Ｓ１、１６Ｓ３、１６Ｓ５が連続して接続されていることが推測される。
【００４６】
前述したフローＩＤ＝１で識別されるフローＦ１は、クライアント１４Ｃ１からサーバ１８にデータ（パケット）が送信される場合であり、フローＩＤ２で識別されるフローＦ２は、サーバ１８からクライアント１４Ｃ１にデータが送信される場合である。上記のようにスイッチ１６Ｓ１、１６Ｓ５からのＩＰアドレスから、スイッチ１６Ｓ１、１６Ｓ５が次のフローに位置することが分かる。即ち、スイッチ１６Ｓ１、１６Ｓ５は、フローＩＤ＝１のフローＦ１のフローに位置すること、及び、フローＩＤ＝２のフローＦ２のフローに位置することが分かる。そこで、ステップ８２で、フロー情報管理部６２Ａは、まず、スイッチ１６Ｓ１、１６Ｓ５に挟まれたスイッチ１６Ｓ３の位置するフローを特定する、上記のようにスイッチ１６Ｓ３もフローＦ１、Ｆ２に位置することが特定される。よって、各フローＦ１、Ｆ２では、スイッチ１６Ｓ１、１６Ｓ３、１６Ｓ５を経由してパケットが送信されることが理解される。ステップ８２におけるスイッチの位置するフローを特定することは、開示の技術の非転送装置転送経路を特定することの一例である。
【００４７】
フローＦ１において、スイッチ１６Ｓ３の後段のスイッチは、パケットの送信方向下流側のスイッチ１６Ｓ５である。フローＦ２における後段のスイッチは、パケットの送信方向下流側のスイッチ１６Ｓ１である。そこで、ステップ８２では更に、フロー情報管理部６２Ａは、各フローにおける後段のスイッチカウンタ値を調査する。即ち、フローＦ１においては、スイッチ１６Ｓ５の出力パケット数を調査する。フローＦ１におけるスイッチ１６Ｓ５の出力パケット数は、図１２（Ｄ）ウに示すように、１０００である。よって、ステップ８４では、図１２（Ｅ）オに示すように、フローＦ１（フローＩＤ＝１）における、スイッチ１６Ｓ３の出力パケット数として１０００を設定する。
【００４８】
一方、フローＦ２（フローＩＤ＝２）について、ステップ８２で、欠落した後段のスイッチであるスイッチ１６Ｓ１の出力パケット数が調査される。図１２（Ｃ）イに示すように、フローＦ２（フローＩＤ＝２）におけるスイッチ１６Ｓ１の出力パケット数は１０００である。そこで、ステップ８４で、図１２（Ｅ）カに示すように、フロー情報管理部６２Ａは、フローＦ２における、スイッチ１６Ｓ３の出力パケット数として１０００を設定する。
【００４９】
図１３（Ａ）には、上記情報をスイッチ１６Ｓ３から受信できなかった場合に加え、スイッチ１６Ｓ３とスイッチ１６Ｓ５との間の線が切断された場合が示されている。フローＦ１及びフローＦ２におけるパケットの送信は同時に行われている。このようにパケットが送信されている間で、その途中で上記切断が生じた場合を例にとり説明する。フローＦ１において、スイッチ１６Ｓ１は、図１３（Ｃ）アに示すように、１０００個のパケットを出力している。即ち、スイッチ１６Ｓ１は、１０００個のパケットを順に送信している。このように、スイッチ１６Ｓ１及びスイッチ１６Ｓ５が１０００個のパケットを送信している途中で、上記切断が生じたとする。よって、フローＦ１では、図１３（Ｃ）アに示すように、スイッチ１６Ｓ１は、１０００個のパケットを出力している。しかし、その途中で上記切断が生じた。よって、スイッチ１６Ｓ５は、図１３（Ｄ）ウに示すように、切断が生じる前に受信した５００個のパケットをサーバ１８に送信している。フローＦ１における後段のスイッチは、スイッチ１６Ｓ５である。よって、ステップ８２では、フロー情報管理部６２Ａは、スイッチ１６Ｓ５の出力パケット数（図１３（Ｄ）ウ）を調査する。ステップ８４で、フロー情報管理部６２Ａは、図１３（Ｅ）オに示すように、スイッチ１６Ｓ３の出力パケット数として５００を設定する。一方、フローＦ２では、クライアントからのパケットが５００しか届かないため、図１３（Ｄ）エに示すように、スイッチ１６Ｓ５は、５００個のパケットを順に送信している。上記切断により、スイッチ１６Ｓ１は、図１３（Ｃ）イに示すように、切断が生じる前に受信したパケットをクライアント１４Ｃ１に送信しており、その数は５００である。ステップ８２では、フローＦ２では、後段のスイッチとしてスイッチ１６Ｓ１の出力パケット数（５００（図１３（Ｃ）イ参照））が調査される。ステップ８４で、フロー情報管理部６２Ａは、図１３（Ｅ）のカに示すように、フローＦ２における、スイッチ１６Ｓ３の出力パケット数として５００を設定する。
【００５０】
ステップ８０の判定結果が肯定判定の場合には、ステップ８６で、フロー情報管理部６２Ａは、欠落したスイッチのフロー経路情報を補完する。上記のように、ステップ８０の判定結果が肯定判定の場合は、例えば、図１４（Ａ）に示すように、連続したスイッチ１６Ｓ１、１６Ｓ３から上記情報を受信しなかった場合である。この場合は、スイッチ１６Ｓ１、１６Ｓ３との間に別のスイッチが存在する可能性もあり、別のスイッチからも上記情報を受信していない場合がある。このような場合には、例えば、クライアント１４Ｃ１からのパケットが、スイッチ１６Ｓ１を介して、直接スイッチ１６Ｓ３〜スイッチ１６Ｓ５を介してサーバ１８に到達する場合がある。また、クライアント１４Ｃ１からのパケットがスイッチ１６Ｓ１を介して、スイッチ１６Ｓ３ではない別のスイッチを介して、スイッチ１６Ｓ５に到達し、スイッチ１６Ｓ５からサーバ１８に到達する場合もある。よって、この場合には、図７（Ａ）及び図７（Ｂ）に示すテーブルを更新することができない。即ち、例えば、フローＩＤ２におけるフローでは、スイッチ１６Ｓ１からスイッチ１６Ｓ３にパケットが送信されているようになっているが、上記のように、別のスイッチを経由してパケットが送信される場合がある。よって、フローの経路情報テーブル（図７（Ａ）及び図７（Ｂ））からでは、監視装置１０は、フロー情報が欠落したスイッチの接続の状態を把握することができない。よって、上記のように後段のスイッチのパケット数を選ぶことができない。上記のように、監視装置１０のメモリ３４には、図８（Ａ）及び図８（Ｂ）に示すように、過去（前回の正常時）のフローの経路情報テーブルが設けられている。過去の正常時のフローの経路情報テーブルの、例えば、フローＩＤ２における経路を見ると、スイッチ１６Ｓ１は直接スイッチ１６Ｓ３と接続されていることが分かる。そこで、ステップ８６で、フロー情報管理部６２Ａは、過去のフローの経路情報テーブル（図８参照）を用いて、上記のように、欠落したスイッチ１６Ｓ１、１６Ｓ３の接続の状態を補完する。即ち、接続しているのか否か、接続していなければ、どのスイッチと接続しているのかという接続の状態が補完される。
【００５１】
ステップ８８で、フロー情報管理部は、過去のリンク情報を利用したリンクを障害リンク管理テーブルに登録する。上記のように、障害がスイッチ１６Ｓ１、１６Ｓ３に生じている。よって、図３（Ｃ）の障害リンクの管理テーブルに、スイッチ１６Ｓ１及びスイッチ１６Ｓ３における、スイッチＩＤ、出力ポートＩＤ、隣接スイッチＩＤ、及び隣接スイッチの入力ポートＩＤを記憶する。
【００５２】
以上のように、連続した複数のスイッチでフロー情報が欠落し、フローが分からない場合でも、過去のフロー経路情報に基づいて、欠落したスイッチのフロー経路情報が補完される。よって、欠落したスイッチのフローの後段のスイッチがどのスイッチなのかがわかる。そこで、ステップ８２で、フロー情報管理部６２Ａは、上記のように欠落したスイッチが位置するフローを特定し、当該欠落したスイッチの後段のスイッチのカウンタを調査する。例えば、スイッチフローＩＤ２におけるフローでは、後段のスイッチはスイッチ１６Ｓ５である。よって、スイッチ１６Ｓ５のカウント値が調査される。ステップ８４で、フロー情報管理部６２Ａは、スイッチ１６Ｓ１、１６Ｓ３のカウンタに、スイッチ１６Ｓ５の出力パケット数を設定する。
【００５３】
ステップ８４の処理が終了すると、監視処理はステップ９０に移行される。
次に、ステップ９０のフロー状態の判定処理を説明する。図１０には、フロー状態判定処理の一例が示されている。ステップ１０２で、フロー情報管理部６２Ａは、図６に示すコネクションＩＤに基づいて、全コネクションの検索が終了したか否かを判断する。ステップ１０２の判定結果が否定判定の場合には、ステップ１０４で、フロー情報管理部６２Ａは、フローの状態管理テーブル（図６）から、次の情報を取得する。即ち、送信パケット数、送信パケットの差分値、受信パケット数、受信パケットの差分値である。
【００５４】
ステップ１０６で、フロー情報管理部６２Ａは、送信パケットの差分または受信パケットの差分が閾値か否かを判断する。図６におけるコネクションＩＤ＝２の内容が、図１５（Ａ）に示されている。コネクションＩＤ＝２は、フローＦ３、Ｆ４を識別する。コネクションＩＤ＝２における片側、即ち、送信は、フローＦ３に対応し、逆側、即ち、受信はフローＦ４に対応する。フローＦ３では、各スイッチから５００個のパケットが送信されている。よって、フローＦ３における送信パケットの差分値は０となる。しかし、フローＦ４におけるパケット数は、スイッチ１６Ｓ３は、１０００であるのに対し、スイッチ１６Ｓ４、１６Ｓ５のパケット数は５００である。よって、受信パケットの差分値は５００である。この場合には、ステップ１０６の判定結果が肯定判定となり、フロー状態判定処理は、ステップ１１２に移行される。ステップ１１２で、フロー情報管理部６２Ａは、当該フローＦ４について異常と判定し、ステップ１１４で、判定結果として異常を示す×を記憶する。
【００５５】
一方、ステップ１０６の判定結果が否定判定の場合には、ステップ１０８で、フロー情報管理部６２Ａは、送信パケット数−受信パケット数の絶対値が閾値以上か否かを判断する。図６のコネクションＩＤｋは、図１５（Ｂ）におけるフローＦｎ−１、Ｆｎを識別する。フローＦｎ−１では、各スイッチ１６Ｓ３、１６Ｓ４、１６Ｓ５のパケット数は５００であるのに対し、フローＦｎにおける各スイッチ１６Ｓ３、１６Ｓ４、１６Ｓ５のパケット数は１０００である。よって、この場合には、ステップ１０８の判定結果が肯定判定となり、ステップ１１２で、フロー情報管理部６２Ａは、当該フローについて異常と判定し、ステップ１１４で、コネクションＩＤｋの判定結果の欄に異常であることを示す×を記憶する。
【００５６】
一方、コネクションＩＤ１により識別されるフローＦ１、Ｆ２（図１５（Ａ））では、各々のフローＦ１、Ｆ２における各スイッチ１６Ｓ１、１６Ｓ２、１６Ｓ５のパケット数は全て１０００である。よって、この場合には、ステップ１０６及びステップ１０８の判定結果がそれぞれ否定判定となって、ステップ１１０で、フロー情報管理部６２Ａは、コネクションＩＤ１に対応して、判定結果の欄に、正常であることを示す○を記憶する。
ステップ９０の処理は、特定転送経路上に障害が発生したか否かを判定することの一例である。
【００５７】
以上の処理（ステップ７２〜９０）により、トモグラフィーを用いた障害箇所特定を実行するための情報を全て取得することができる。そこで、ステップ９２で、障害箇所判定部６６Ａは、障害箇所特定処理を実行する。図１１には、障害箇所特定処理の一例が示されている。ステップ１２２で、障害箇所判定部６６Ａは、未観測の観測ノードがあるか否かを判断する。ここで、観測ノードとは、クライアントまたはサーバである。ステップ１２２の判定結果が肯定判定の場合には、ステップ１２４で、障害箇所判定部６６Ａは、フローのフロー異常判定結果を経由するリンクにマッピングする。即ち、例えば、図１６（Ａ）に示すように、観測ノードであるクライアント１４Ｃ１に対してフローＦ１がある。フローＦ１は、図１６（Ｂ）に示すように、クライアント１４Ｃ１及びスイッチ１６Ｓ１の間のリンクＬ１、スイッチ１６Ｓ１、１６Ｓ２間のリンクＬ２が存在する。また、スイッチ１６Ｓ２、１６Ｓ５間のリンクＬ３、及びスイッチ１６５とサーバ１８との間のリンクＬ４が存在する。ステップ１２４で、障害箇所判定部６６Ａは、フローＦ１に対応して、各リンクに異常判断結果をマッピングする。例えば、フローＦ１におけるリンクＬ３に障害が発生して、当該フローが異常であると判断された場合には、図１６（Ｃ）に示すように、フローＦ１に対応してリンクＬ１、Ｌ２、Ｌ３、Ｌ４に異常を示す×を記憶する。一方、フローＦ３の観測ノードはクライアント１４Ｃ４である。このフローＦ３は、サーバ１８とスイッチ１６Ｓ５との間のリンクＬ４、スイッチ１６Ｓ４、１６Ｓ５の間のリンクＬ５、スイッチ１６Ｓ３、１６Ｓ４の間のリンクＬ６、及び、クライアント１４Ｃ４とスイッチ１６Ｓ３との間のリンクＬ７を有する。そして、フローＦ３は、正常であった場合には、フローＦ３に対応してリンクＬ１、Ｌ５、Ｌ６及びＬ７に対応して、正常であることを示す○を記憶する。
【００５８】
ステップ１２６で、障害箇所判定部６６Ａは、未探索のフロー通過リンクがあるか否かを判断する。ステップ１２６の判定結果が否定判定の場合には、ステップ１２２に戻り、以上の処理（ステップ１２２〜１２６）を実行する。一方、ステップ１２６の判定結果が肯定判定の場合には、ステップ１２８で、障害箇所判定部６６Ａは、未探索のリンクを選択し、上位リンクとする。即ち、これを、図１６におけるフローＦ１を例にとり説明する。ステップ１２８では、まずリンクＬ１が上位リンクとして設定される。ステップ１３０で、障害箇所判定部６６Ａは、上位リンクが異常か否かを判断する。上記のように、図１６（Ｃ）に示すように、リンクＬ１に対応してフローＦ１では、×が記憶されているので、ステップ１３０は肯定判定され、障害箇所特定処理はステップ１３４に移行される。ステップ１３４で、障害箇所判定部６６Ａは、下位リンクがあるか否かを判断する。
【００５９】
ここで、下位リンクとは、上位リンク（この場合はリンクＬ１）と同じフロー上に位置し、障害が生じていないリンクであり、障害が生じているリンクよりもパケットの転送方向下流側のリンク以外のリンクである。フローＦ１におけるリンクＬ１には、下位リンクがあるので、ステップ１３４の判定結果は肯定判定となる。障害箇所特定処理は、ステップ１３８に移行される。ステップ１３８で、障害箇所判定部６６Ａは、下位リンクが全て異常か否かを判断する。フローＦ１では、下位リンクが全て異常であるので、ステップ１３８の判定結果が肯定判定となり、障害箇所特定処理はステップ１４２に移行される。ステップ１４２で、障害箇所判定部６６Ａは、下位リンクが２つ以上あるか否かを判断する。下位リンクは、上記のように、上位リンクと同じフロー上に位置し、障害が生じていないリンクであり、障害が生じているリンクよりもパケットの転送方向下流側のリンク以外のリンクであるので、フローＦ１においてみると、下位リンクは、リンクＬ２だけである。即ち、上記のようにリンクＬ３が切断されていると、スイッチ１６Ｓ２からのパケット数はスイッチ１６Ｓ１と同じである。しかし、同じフロー上に位置する別のスイッチ１６Ｓ５のパケット数は０である。よって、この情報からリンクＬ３が切断されていると判断することができる。このような場合には、リンクＬ３は下位リンクには該当しない。同様に、リンクＬ４も下位リンクには該当しない。よって、フローＦ１では、下位リンクは１つであるので、ステップ１４２の判定結果は、否定判定となる。
【００６０】
ステップ１４２の判定結果が否定判定の場合は、当該上位リンクＬ１は、別のリンクの障害によって異常か否かを結論づけることができない。そこで、ステップ１４６で、障害箇所判定部６６Ａは、同じフロー上で上位リンクよりデータ転送下流に別のリンクがあるか否かを判断する。フローＦ１では、リンクＬ３、Ｌ４があるので、ステップ１４６が肯定判定される。ステップ１４６の判定結果が肯定判定の場合には、障害箇所判定部６６Ａは、ステップ１４８で、上位リンクの結論を別のリンクの結論に対応づける。ステップ１４８が実行されると、障害箇所特定処理は、ステップ１２６に移行される。フローＦ１についてみると、以上の処理でリンクＬ１について処理が終了したが、リンクＬ２〜Ｌ４が存在するので、ステップ２６が肯定判定となり、ステップ１２８で、障害箇所判定部６６Ａは、今度はリンクＬ２を上位リンクとする。上位リンクｌ２では、ステップ１３４が否定判定される。なぜなら、リンクＬ３は、下位リンクに該当しないからである。この場合には、ステップ１３６で、障害箇所判定部６６Ａは、上位リンクＬ２を異常確率大と判断する。ステップ１５０で、障害箇所判定部６６Ａは、他のリンクが対応づけられているか否かを判断する。上記のように、リンクＬ１では、ステップ１４８でリンクＬ２にリンクＬ１が対応づけられているので、ステップ１５０の判定結果は肯定判定となる。ステップ１５２で、障害箇所判定部６６Ａは、他のリンク、即ち、リンクＬ１を異常確率大と判断する。これにより、図１６（Ｃ）に示すように、リンクＬ１及びリンクＬ２には、異常確率大を示す大が記憶される。
【００６１】
フローＦ１においては、次にリンクＬ３について上記処理が実行される。ステップ１２８で、リンクＬ３が上位リンクとされる。リンクＬ３では、ステップ１３０の判定結果が肯定判定となり、ステップ１３４の判定結果は肯定判定となる。なぜなら、リンクＬ４は正常であるからである。ステップ１４２では、リンクＬ３に対しては、下位のリンクがリンクＬ４だけであるので、ステップ１４２が否定判定される。ステップ１４６では、同じフロー中でリンクＬ３よりデータ転送下流に別のリンクＬ４が存在するので、ステップ１４６の判定結果が肯定判定となり、ステップ１４８で、上位リンクＬ３の結論を別のリンクＬ４の結論に対応づける。次に、リンクＬ４について以上の処理が実行される。リンクＬ４については、下位リンクが存在しないので、ステップ１３４の判定結果が否定判定となり、ステップ１３６で、上位リンクを異常確率大と判断する。ステップ１５０では、上記のように、リンクＬ３が対応づけられているので、ステップ１５０の判定結果が肯定判定となり、ステップ１５２で、障害箇所判定部６６Ａは、他のリンクＬ３を異常確率大と判断する。よって、フローＦ１に対してリンクＬ３及びＬ４に対応して大が記憶される。
【００６２】
次にフローＦ３について説明する。フローＦ３におけるリンクＬ４〜Ｌ７は図１６（Ｃ）に示すように、正常であるので、各々について、ステップ１３０が否定判定となって、ステップ１３２で、障害箇所判定部６６Ａは、上位リンクを正常と判断し、正常であることを示す正常を記憶する。
【００６３】
図１６に示す例以外の場合において、ステップ１３８が否定判定とされる場合もある。この場合には、ステップ１４０で、障害箇所判定部６６Ａは、上位リンクを正常と判断して、上位リンクに対応して正常を記憶する。また、別の例では、ステップ１４２の処理結果が肯定判定の場合がある。この場合には、ステップ１４４で、障害箇所判定部６６Ａは、上位リンク異常確率大、下位リンク以下を異常確率小と判断して、各リンクに対応して大小を記憶する。
【００６４】
以上のように、各フローの各リンクについて、異常確率大若しくは小、または正常が記憶されると、ステップ１２６が否定判定となり、障害箇所特定処理は、ステップ１２２に移行される。ステップ１２２の判定結果が否定判定となった場合には、障害箇所特定処理は、ステップ１５４に移行する。ステップ１５４で、障害箇所判定部６６Ａは、各観測ノードを支点とした判断結果をリンク毎に集計する。即ち、図１６（Ｃ）に示すように、各観測ノード毎に判断結果を集計する。ステップ１５６で、障害箇所判定部６６Ａは、未探索のリンクがあるか否かを判断する。未探索のリンクがあると判断された場合には、ステップ１５８で、障害箇所判定部６６Ａは、１観測点で正常判断がされているか否かを判断する。例えば、図１６（Ｃ）に示すように、リンクＬ４では、異常確率大及び正常が記憶されているので、リンクＬ４については、ステップ１５８の判定結果は肯定判定となる。ステップ１６０で、障害箇所判定部６６Ａは、本リンクＬ４を正常と判断して、結論の欄に正常を記憶する。ステップ１５８の判定結果が否定判定の場合の場合には、ステップ１６２で、障害箇所判定部６６Ａは、１観測点以上で異常確率大が判定されているか否かを判断する。例えば、図１６（Ｃ）に示すように、リンクＬ２では、１観測点以上で異常確率大が判定されている。よって、ステップ１６２の判定結果が肯定判定となり、本リンクＬ２に対しては、異常確率大と結論づけられ、結論の欄に異常確率大を識別する大を記憶する。なお、ステップ１６２の判定結果が否定判定の場合には、ステップ１６６で、障害箇所判定部６６Ａは、本リンクを異常確率小と判断し、異常確率小を識別する小を結論の欄に記憶する。
【００６５】
障害箇所特定処理が終了すると、図９のステップ９４で、障害箇所表示部６８Ａは、障害箇所が見つかったか否かを判断し、障害箇所が見つかったと判断された場合には、ステップ９６で、障害箇所特定結果を、表示部３２に表示する。なお、障害箇所が見つかったと判断されなかった場合には、障害箇所特定結果は表示されない。
【００６６】
ステップ９８で、終了指示があったか否かを判断し、終了指示がユーザから入力された場合には、本監視処理が終了する。
【００６７】
次に、本実施の形態の効果を説明する。
第１に、上記実施の形態では、１つのスイッチからフロー情報が収集できないような場合がある。この場合、監視装置は、トポロジ情報から当該１つのスイッチに接続する他の複数のスイッチを特定し、同じ転送経路上に位置する他のスイッチにおけるパケット数を、当該１つのスイッチのパケット数として設定する。これにより、監視装置は、全てのスイッチにおけるパケット数を把握することができる。よって、監視装置は、各スイッチにおけるパケット数に基づいて、各転送経路上に障害が生じているか否かを判断することができる。よって、監視装置は、各転送経路における障害の有無の組み合わせから、各リンクに障害が生じているか否かを判断することができる。よって、実施の形態は、パッシブモニタを配備することなく、障害箇所を特定することができる、という効果を有する。
【００６８】
第２に、上記実施の形態では、複数の連続したスイッチからフロー情報が収集できない場合がある。この場合、監視装置は、過去において正常にパケットが転送された場合に記憶された各リンクの情報から、当該複数の連続したスイッチ間が接続されているか否かを判断することができる。よって、監視装置は、各スイッチがどのように他の装置と接続されているのかが分かる。そして、複数の連続したスイッチにおけるパケット数として、同じ転送経路上に位置する他のスイッチ当該１つのスイッチのパケット数を設定する。これにより、監視装置は、全てのスイッチにおけるパケット数を把握することができる。よって、監視装置は、各スイッチにおけるパケット数に基づいて、各転送経路上に障害が生じているか否かを判断することができる。よって、監視装置は、各転送経路における障害の有無の組み合わせから、各リンクに障害が生じているか否かを判断することができる。よって、実施の形態は、パッシブモニタを配備することなく、障害箇所を特定することができる、という効果を有する。
【００６９】
第３に、監視装置は、過去にどのスイッチのどのポートと他のどのスイッチのどのポートとの間に障害が生じたのかの情報を、障害リンクの管理テーブルに記憶しておく。スイッチからフロー情報を収集できない場合、監視装置は、まず、障害リンクの管理テーブルを参照して、フロー情報を収集できないスイッチのどのポートが他のどのスイッチのポートと接続しているのかを判断する。スイッチからフロー情報を収集できない場合、過去において障害が生じた可能性が高い。よって、監視装置は、フロー情報を収集できないスイッチのどのポートが他のどのスイッチのどのポートと接続しているのかを、全ての情報を順に取得して判断するよりは、より早く認識することができる。
【００７０】
次に、本実施の形態の変形例を説明する。
第１に、上記実施の形態では、スイッチとしてオープンフロースイッチが用いられているが、オープンフロースイッチではない他のスイッチを用いることができる。
第２に、コントローラを省略して、各スイッチが直接、上記情報を監視装置に入力してもよい。
第３に、パケット数を補完するために後段のスイッチのパケットを調査しているが、前段（パケットの送信方向上流側）のパケットを調査して、パケット数を設定してもよい。即ち、同じフローに位置する何れかのスイッチのパケットを調査して設定してもよい。
【００７１】
次に、実施例を説明する。
図１７は、第１の実施例におけるサーバＳ１からクライアントＣ１〜Ｃ４への各フローＦ１〜Ｆ８の一例を示した図である。サーバＳ１のＩＰアドレスを１０.２５.２４５.１１、クライアントＣ１〜Ｃ４のＩＰアドレスをそれぞれ、１０.２５.２４５.１２, １０.２５.２４５.１３, １０.２５.２４５.１４，１０.２５.２４５.１５とする。各クライアントＣ１〜Ｃ４とサーバＳ１が通信を行っているものとする。また、各クライアントＣ１〜Ｃ４とサーバＳ１との間には、スイッチＯＦＳ１〜ＯＦＳ５を備えている。スイッチＯＦＳ１〜ＯＦＳ５は、他のスイッチＯＦＳ１〜スイッチＯＦＳ５、各クライアントＣ１〜Ｃ４及びサーバＳ１と、ポートＰ１〜Ｐ４を介して接続している。Ｐ１〜Ｐ４における１〜４はポートＩＤを示す。スイッチＯＦＳ１〜ＯＦＳ５は、コントローラ１２を介して、監視装置１０に接続されている。
【００７２】
図１８は、図１７に示した監視装置１０で保持されるトポロジ情報（図１８（Ａ））、およびエッジ情報管理テーブル（図１８（Ｂ））の例を示している。図１８（Ａ）のトポロジ（リンク情報）管理テーブルは、例えば、スイッチＯＦＳ１のポートＰ３がスイッチＯＦＳ３のポートＰ１に、スイッチＯＦＳ１のポートＰ４がスイッチＯＦＳ４のポートＰ２になど、各スイッチ間の接続リンクに関する情報を保持している。
【００７３】
また、図１８（Ｂ）のエッジ（サーバ又はクライアント）情報管理テーブルには次の情報が記憶されている。即ち、ＩＰアドレスである１０.２５.２４５.１１で識別されるサーバＳ１はスイッチＯＦＳ５のポートＰ３に接続されていることの情報が記憶されている。また、ＩＰアドレスである１０.２５.２４５.１２により識別されるクライアントＣ１はスイッチＯＦＳ１のポートＰ１に接続されていることの情報が記憶されている。サーバＳ１あるいはクライアントＣ１〜Ｃ４と接続されるスイッチＯＦＳ１、ＯＦＳ２、ＯＦＳ５が、自機のどのポートで、サーバＳ１あるいはクライアントＣ１〜Ｃ４と接続されるかの情報が記憶されている。
【００７４】
図１９は、図１７に示した監視装置１０で保持されるフロー情報管理テーブルの例を示している。例えば、フローＩＤ１として、ＩＰアドレスである１０.２５.２４５.１１で識別されるサーバＳ１から、ＩＰアドレスである１０.２５.２４５.１２で識別されるクライアントＣ１のフローのパケット数が最大、最小のいずれも１０００であったことを示している。また、逆方向（クライアントＣ１からサーバＳ１に向う方向）のフローをフローＩＤ２、パケット数の最大、最小いずれも１０００であることを示している。同様に他のサーバおよびクライアント間のフロー情報も記述される。
【００７５】
ここで、あるフローにおける、上記パケット数の最大と最小の値が異なる（例えばフローＩＤ４参照）場合は、異常なフローと判定する。また、上りと下りのフローで値が異なる場合も異常なフローと判定する。
図２０は、フローは全て正常であるが、スイッチＯＦＳ３のフロー情報が収集できない場合の例を示している。収集したフロー情報からクライアントＣ１およびクライアントＣ２の各々からサーバＳ１のフローにおけるパケットはスイッチＯＦＳ１のポートＰ３から出力されることがわかる。
【００７６】
このスイッチＯＦＳ１のポートＰ３はトポロジ情報（図２０（Ｂ））から、スイッチＯＦＳ３のポートＰ１に接続されていることがわかるため、次にスイッチＯＦＳ３のフロー情報を検索するが、上記のように、フロー情報を得ることができない。
スイッチＯＦＳ５の入力ポートＰ１はスイッチＯＦＳ３のポートＰ４に接続されることがトポロジ情報（図２０（Ｂ））から把握できる。このため、クライアントＣ１およびクライアントＣ２の各々からサーバＳ１へのフローにおけるパケットは「スイッチＯＦＳ１→スイッチＯＦＳ３→スイッチＯＦＳ５」と経由することが特定できる。
【００７７】
また、スイッチＯＦＳ１およびスイッチＯＦＳ５のそれぞれのフローのパケット数はいずれも１０００であるため、スイッチＯＦＳ３のパケットカウントとして１０００を設定する。
以上により、スイッチＯＦＳ３のフロー情報が収集できなくてもクライアントＣ１およびクライアントＣ２からサーバＳ１へのフローの経路情報を特定し、およびパケット数の値を設定できる。
【００７８】
図２１は、図２０と同様にスイッチＯＦＳ３のフロー情報が収集できない場合において、これに加え、スイッチＯＦＳ３とスイッチＯＦＳ５の間にリンク障害が発生した場合の例を示している。収集したフロー情報からクライアントＣ１およびクライアントＣ２の各々からサーバＳ１のフローにおけるパケットスイッチＯＦＳ１のポートＰ３から出力されることがわかる。このスイッチＯＦＳ１のポートＰ３はトポロジ情報からスイッチＯＦＳ３のポートＰ１に接続されていることがわかるため、次にスイッチＯＦＳ３のフロー情報を検索するが、上記のように、フロー情報を得ることができない。
【００７９】
ここでスイッチＯＦＳ５のトポロジ情報（図２１（Ｂ））からスイッチＯＦＳ５のポートＰ１からパケットが入力されることがわかる。このポートＰ１はスイッチＯＦＳ３のポートＰ４に接続されることが現在のリンク情報、あるいはリンクダウンが発生しているため現在ではなく過去のリンク情報、あるいは障害リンクの情報から把握できる（図の例では現在のトポロジ情報から探索）。クライアントＣ１およびクライアントＣ２の各々からサーバＳ１へのフローにおけるパケットは「スイッチＯＦＳ１→スイッチＯＦＳ３→スイッチＯＦＳ５」と経由することが特定できる。
【００８０】
ここで、フローＩＤ＝２で識別されるフローでは、スイッチＯＦＳ１の出力パケット数は１０００（図２１（Ｃ））であるが、スイッチＯＦＳ５の各フローのパケット数は５００（図２１（Ｄ））である。このため、スイッチＯＦＳ３のパケットカウントとして例えばスイッチＯＦＳ５の５００を設定する。
【００８１】
この場合、図２２に示すようにフロー情報管理テーブル（フローＩＤ＝２参照）のパケット数の最大値と最小値が異なる。このため、図２３のフローの状態管理テーブル（コネクションＩＤ＝１参照）に示すように、受信パケットの差分値が送信パケットの差分値より大きいため、そのフローは上り・下りとも異常なフローと判定する。
以上により、スイッチＯＦＳ３のフロー情報が収集できなくてもクライアントＣ１およびクライアントＣ２からサーバＳ１へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所の特定が可能となる。
【００８２】
図２４は、図２０と同様にスイッチＯＦＳ３のフロー情報が収集できない場合において、これに加え、サーバＳ１の過負荷による不通障害が発生した場合の動作例を示している。収集したフロー情報からクライアントＣ１およびクライアントＣ２の各々からサーバＳ１へのフローにおけるパケットはスイッチＯＦＳ１のポートＰ３から出力されることがわかる。
このスイッチＯＦＳ１のポートＰ３はトポロジ情報（図２４（Ｂ））からスイッチＯＦＳ３のポートＰ１に接続されていることがわかるため、次にスイッチＯＦＳ３のフロー情報を検索するが、上記のようにフロー情報を得ることができない。
【００８３】
ここで、スイッチＯＦＳ５のトポロジ情報（図２４（Ｂ））から入力ポートＰ１からパケットが入力されることがわかる。スイッチＯＦＳ５の入力ポートＰ１はスイッチＯＦＳ３のポートＰ４に接続されることが現在のリンク情報、あるいはリンクダウンが発生している。このため現在ではなく過去のリンク情報、あるいは障害リンクの情報から把握できる（図の例では現在のトポロジ情報から探索）。クライアントＣ１およびクライアントＣ２各々からサーバＳ１へのフローにおけるパケットはスイッチＯＦＳ１→スイッチＯＦＳ３→スイッチＯＦＳ５と経由することが特定できる。
【００８４】
図２４（Ｃ）及び図２４（Ｄ）のフローＩＤ＝２、４の欄に示すようにスイッチＯＦＳ１およびスイッチＯＦＳ５のクライアントＣ１、Ｃ２からサーバＳ１へのパケットカウントは１０００である。しかし、図２４（Ｃ）及び図２４（Ｄ）のフローＩＤ＝１、３の欄に示すように、サーバＳ１からクライアントＣ１、Ｃ２へのそれぞれのフローのパケットカウントは５００である。このため、スイッチＯＦＳ３のパケットカウントとして例えばサーバＳ１からクライアントＣ１、Ｃ２へのパケット数として５００、クライアントＣ１、Ｃ２からサーバＳ１へのパケット数として１０００を設定する。
この場合、図２５に示すようにフロー情報管理テーブルのパケット数の上り方向と下り方向の値が異なる。このため、図２６のフローの状態管理テーブルに示すように、受信パケットに対する送信パケットの数が少ないため、そのフローは上り・下りともサーバＳ１の過負荷による異常なフローと判定する。
以上により、スイッチＯＦＳ３のフロー情報が収集できなくてもクライアントＣ１およびクライアントＣ２からサーバＳ１へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所特定が可能となる。
【００８５】
図２７は、連続した複数のスイッチ、例えば、スイッチＯＦＳ１とスイッチＯＦＳ３の２つのスイッチからフロー情報が収集できない場合の動作例を示す。また、図２４と同様にサーバ障害によるトラフィックの上りと下りの不均衡が発生した場合を用いて説明する。クライアントＣ１およびクライアントＣ２はエッジ情報管理テーブル（図２７（Ｂ））からスイッチＯＦＳ１に接続されていることがわかる。
【００８６】
ここでスイッチＯＦＳ１のフロー情報が収集できないため、正常に収集できていた過去のフロー経路情報（図２７（Ｄ））からスイッチＯＦＳ１からスイッチＯＦＳ３に接続されていることがわかる。なお、トポロジ情報からスイッチＯＦＳ１の出力先がスイッチＯＦＳ３と特定してもよい。
さらに、スイッチＯＦＳ３のフロー情報も収集できないため、再度過去のフロー経路情報（図２７（Ｄ））を検索し、接続先がスイッチＯＦＳ５であることを特定する（トポロジ情報を利用してもよい）。
ここで、パケット数はスイッチＯＦＳ５のみでしか収集できない。このため、スイッチＯＦＳ１およびスイッチＯＦＳ３のパケット数としてスイッチＯＦＳ５の値を利用する。即ち、図２８に示すように、クライアントからサーバへの値を１０００、サーバからクライアントへの値を５００と設定する。
【００８７】
この場合、図２８に示すようにフロー情報管理テーブルのパケット数上り方向と下り方向の値が異なる。このため、図２９のフローの状態管理テーブルに示すように、受信パケットに対する送信パケットの数が少ないため、そのフローは上り・下りとも異常なフローと判定する。
以上により、複数のスイッチのフロー情報が収集できなくてもクライアントＣ１およびクライアントＣ２からサーバＳ１へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所特定が可能となる。
なお、フロー情報が収集できないスイッチが一つの場合でも図２４に示すような過去のフロー情報を利用してフロー情報およびパケットカウントを生成してもよい。
【００８８】
以上説明したように、上記実施例によれば、複数のパッシブモニタを配備することなく、かつ、複数のオープンフロースイッチからフロー情報が収集できないような場合でも障害箇所を特定することが可能となる。
【００８９】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【００９０】
以上の実施形態に関し、更に以下の付記を開示する。
【００９１】
（付記１）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定された非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
【００９２】
（付記２）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
【００９３】
（付記３）
前記コンピュータに、
前記推測ができると判断した場合に、前記複数の非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記複数の非送信転送装置の各々が位置する転送経路である非送信転送装置転送経路を特定する処理を実行させる付記２に記載の障害判定プログラム。
【００９４】
（付記４）
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第１の装置と当該第１の装置からのデータを受信する第２の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる付記１に記載の障害判定プログラム。
【００９５】
（付記５）
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第１の装置と当該第１の装置からのデータを受信する第２の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる付記２又は付記３に記載の障害判定プログラム。
【００９６】
（付記６）
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する処理を実行させる付記４に記載の障害判定プログラム。
【００９７】
（付記７）
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する処理を実行させる付記５に記載の障害判定プログラム。
【００９８】
（付記８）
前記コンピュータに、
前記特定転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく転送量の差に基づいて、前記特定転送経路上に障害が発生したか否か判断する処理を実行させる付記１〜付記７の何れか１項に記載の障害判定プログラム。
【００９９】
（付記９）
前記クライアント装置から前記サーバへのデータの第１の転送経路と、当該サーバから当該クライアント装置へのデータの第２の転送経路とが対応し、
前記コンピュータに、
前記第１の転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく第１の転送量と、前記第２の転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく第２の転送量との差に基づいて、前記第１の転送経路及び前記第２の転送経路上に障害が発生したか否か判断する処理を実行させる付記１〜付記８の何れか１項に記載の障害判定プログラム。
【０１００】
（付記１０）
前記転送装置は、オープンフロースイッチである付記１〜付記９の何れか１項に記載の障害判定プログラム。
【０１０１】
（付記１１）
前記複数の転送装置の各々は、前記データを転送する転送部と、前記接続情報、前記転送経路特定情報、及び前記転送量情報を含む特定情報を送信する送信部とを備え、
前記複数の転送装置の中の転送装置において、当該転送装置の前記送信部が前記特定情報を送信しないが、当該転送装置の前記転送部が前記データを転送する第１の場合、又は、当該転送装置の前記転送部が前記データを転送しない第２の場合に、当該転送装置が前記非送信転送装置である
付記１〜付記１０の何れか１項に記載の障害判定プログラム
【０１０２】
（付記１２）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する判断部と、
前記判断部により前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断された場合に、前記受信部により前記非送信転送装置に接続された複数の転送装置の各々から受信された前記転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部より前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により前記特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
【０１０３】
（付記１３）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記データが正常に転送された場合に前記受信部により受信された前記特定情報に基づいて判断された、各転送装置が、当該各転送装置が位置する転送経路上に位置するどの転送装置と接続されているかを示す接続情報を、正常接続情報として記憶する記憶部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する判断部と、
前記判断部により前記推測ができないと判断された場合に、前記記憶部に記憶された前記正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完する補完部と、
前記正常接続情報に基づいて、前記補完部により前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部により前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定部により特定された前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
【０１０４】
（付記１４）
前記サーバ装置と、
前記複数のクライアント装置と、
前記複数の転送装置と、
付記１２又は付記１３に記載の障害判定装置と、
を含む障害発生判定システム。
【０１０５】
（付記１５）
前記複数の転送装置各々に、前記特定情報を送信するように指示する指示装置を更に備え、
前記複数の転送装置各々は、前記指示装置により前記指示がされた場合に、前記特定情報を送信する
付記１４に記載の障害判定システム。
【０１０６】
（付記１６）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
【０１０７】
（付記１７）
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
【符号の説明】
【０１０８】
１０  監視装置
１２  コントローラ
１４Ｃ１〜１４Ｃ４  クライアント
１６Ｓ１〜１６Ｓ５  スイッチ
１８  サーバ
【図１】
2014220645.tif 000003
【図２】
2014220645.tif 000004
【図３】
2014220645.tif 000005
【図４】
2014220645.tif 000006
【図５】
2014220645.tif 000007
【図６】
2014220645.tif 000008
【図７】
2014220645.tif 000009
【図８】
2014220645.tif 000010
【図９】
2014220645.tif 000011
【図１０】
2014220645.tif 000012
【図１１】
2014220645.tif 000013
【図１２】
2014220645.tif 000014
【図１３】
2014220645.tif 000015
【図１４】
2014220645.tif 000016
【図１５】
2014220645.tif 000017
【図１６】
2014220645.tif 000018
【図１７】
2014220645.tif 000019
【図１８】
2014220645.tif 000020
【図１９】
2014220645.tif 000021
【図２０】
2014220645.tif 000022
【図２１】
2014220645.tif 000023
【図２２】
2014220645.tif 000024
【図２３】
2014220645.tif 000025
【図２４】
2014220645.tif 000026
【図２５】
2014220645.tif 000027
【図２６】
2014220645.tif 000028
【図２７】
2014220645.tif 000029
【図２８】
2014220645.tif 000030
【図２９】
2014220645.tif 000031
【図３０】
2014220645.tif 000032
【図３１】
2014220645.tif 000033
【図３２】
2014220645.tif 000034
【手続補正書】
【提出日】平成26年4月11日(2014.4.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
図１には、監視装置１０を含む監視システムが示されている。監視装置１０は、コントローラ１２に接続されている。また、図１には、複数、例えば、４個のクライアント１４Ｃ１〜１４Ｃ４と、１つのサーバ１８との間に、複数、例えば５個のオープンフロースイッチ（以下、「スイッチ」という）１６Ｓ１〜１６Ｓ５が設けられている。スイッチ１６Ｓ１には、２つのクライアント１４Ｃ１、１４Ｃ２が接続されている。スイッチ１６Ｓ２には、２つのクライアント１４Ｃ３、１４Ｃ４が接続されている。スイッチ１６Ｓ１とスイッチ１６Ｓ２とは、接続されており、スイッチ１６Ｓ１は、スイッチ１６Ｓ３、１６Ｓ４に接続されている。スイッチ１６Ｓ２は、スイッチ１６Ｓ３、１６Ｓ４に接続されている。スイッチ１６Ｓ３はスイッチ１６Ｓ４に接続されている。スイッチ１６Ｓ３、１６Ｓ４は、スイッチ１６Ｓ５に接続されている。スイッチ１６Ｓ５はサーバ１８に接続されている。スイッチ１６Ｓ１〜１６Ｓ５は、コントローラ１２に接続されている。このように、各クライアント１４Ｃ１〜１４Ｃ４とサーバ１８との間のデータ転送経路には、複数のスイッチが位置する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
図６には、フローの状態管理テーブルが示されている。フローの状態管理テーブルは、コネクションＩＤ、ＩＰアドレス（片側）、ＩＰアドレス（逆側）を記憶する。また、フロー状態管理テーブルは、送信パケット数、送信パケットの差分値を記憶する。フロー状態管理テーブルは、受信パケット数及び受信パケットの差分値を記憶するためのテーブルである。そして、フロー状態管理テーブルは判定結果を記憶する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
コネクションＩＤは、あるクライアントからサーバへの第１のフローと、当該サーバから当該クライアントへの第２のフローのように、対応するフロー同士を識別するＩＤである。即ち、図５に示すフローＩＤ＝１におけるフローの発信元は、サーバ１８であり、宛先はクライアント１４Ｃ１である。一方、フローＩＤ＝２のフローの発信元はクライアント１４Ｃ１であり、宛先はサーバ１８である。このような２つのフローＩＤの各フローは、発信元及び宛先が逆となっているだけで、同じクライアント及びサーバ間のデータの送信を示す。このように、対応するフローを識別するＩＤがコネクションＩＤである。図５に示すように、フローＩＤ＝１及びＩＤ＝２のフローについてみると、発信元及び宛先は、サーバ１８及びクライアント１４Ｃ１の何れかである。そこで、一方の装置を片側の装置としてそのＩＰアドレスを、ＩＰアドレス（片側）とし、他方の装置を、片側の装置として、そのＩＰアドレスを、ＩＰアドレス（逆側）とする。図６に示すように、例えば、コネクションＩＤ＝１で識別される２つのフロー（フローＩＤ＝１、２）では、ＩＰアドレス（片側）として、サーバ１８のＩＰアドレス（ａ.ｂ.ｃ.ｄ）を記憶する。また、ＩＰアドレス（逆側）として、クライアント１４Ｃ１のＩＰアドレス（ａ.ｂ.ｃ.ｅ）を記憶する。このように、片側とは、２つのフローの内の一方であり、逆側とは他方のフローである。一方のフロー、即ち、片側のフローを送信とし、他方のフローを受信とする。図６における送信パケット数は、上記片側のフロー、即ち、サーバ１８からクライアント１４Ｃ１に向うフローであり、受信は、クライアント１４Ｃ１からサーバ１８に向うフローである。上記フローＩＤ＝１のフロー上の各スイッチから受信したパケット数の内の最大値を送信パケット数に記憶する。同様に、フローＩＤ＝２のフロー上の各スイッチから受信したパケット数の内の最大値を、受信パケット数に記憶する。
以上を各コネクションＩＤについて行う。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
コネクションＩＤｋでは、一方のフローは、図５におけるフローＩＤ＝ｎ−１であり、他方のフローは、フローＩＤ＝ｎで識別される。一方のフローにおける送信パケット数は５００であるのに対し他方のパケット数（受信パケット数）は１０００である。同じクライアントと同じサーバとの間では、単位時間当たりに送受信するパケット数はほぼ等しい、あるいはクライアントからの送信パケット数がサーバからの送信パケット数より多くなる。よって、各コネクションＩＤにおいては送信パケット数及び受信パケット数は同じ数である場合が正常の場合である。しかし、コネクションＩＤｋにおけるフローＩＤ＝ｎ−１、ｎでは、送信パケット数は５００であるのに対し、受信パケット数は１０００である。受信パケット数は、クライアントからサーバへ送信したパケットの数であるのに対し、送信パケット数は、サーバからクライアントに送信したパケット数である。よって、クライアントからは１０００のパケット数のデータを送信しているが、サーバは、５００しかデータを送信していない。これは、サーバに大きな負荷がかかり、受信したパケットに応じて同じ数のパケットを送信できない状態である。これも、予め定められた状態、即ち、正常には該当しない。この場合は、異常であるので、判定結果には、異常であることを示す×を記憶する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
更に、図６に示すコネクションＩＤ＝２により識別されるフローＩＤ＝３及び４の各フローについてみる。サーバからの送信パケット数は５００であるのに対し、クライアントからのパケット数は１０００である。よって、コネクションＩＤ＝２で識別されるフローＩＤ＝３、４についても、上記と同様に、サーバに負荷がかかった異常な状態であることが理解される。更に、コネクションＩＤ＝２における受信パケット数の差分値は０ではなくて、５００が記憶されている。これは次のような原因で生ずる。受信パケット数は、一定時間当たりのパケットの数である。各スイッチは、正常な状態でデータを送信していると、各スイッチのパケットの数は等しいので、受信パケットの差分値は０であるはずである。しかし、例えば、何れかのスイッチとそのスイッチと直接接続されている他のスイッチとの間の線が切断された場合には、切断されるまでに例えば５００のパケットを送信していたら、上記切断によって残りの５００が送信できない。このように、受信パケットの差分値が０でない場合には、当該フロー上のスイッチ間での線が切断されている等の異常が発生したことが認識できる。よって、判定結果に、異常を示す×を記憶する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
図７（Ａ）には、フローの経路情報テーブル（ノード）が示されている。経路情報テーブル（ノード）は、フローＩＤ、ノード１、ノード２、ノード３、…を対応して記憶する。図３（Ａ）のテーブルの情報から各スイッチが自機のどのポートで、他のスイッチのどのポートと接続されているのかが分かる。また、図４のエッジ情報管理テーブルから、クライアントまたはサーバに接続されているスイッチでは、自機のどのポートでクライアントまたはサーバと接続しているのかが分かる。更に、図５のフロー情報管理テーブルから、各フローの発信元及び宛先の装置が分かる。加えて、前述したようにパケット情報からどのスイッチがフローＩＤで識別されるフロー上のスイッチなのかもわかる。以上の情報から、図７（Ａ）のフローの経路情報テーブル（ノード）には、フローＩＤに対応して、当該フローにおける発信元の装置のＩＰアドレス、宛先の装置のＩＰアドレスと、これらの間のデータが転送されるスイッチのＩＤを記憶する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
図７（Ｂ）には、フローの経路情報テーブル（出力ポート）が示されている。フローの経路情報テーブル（出力ポート）は、フローＩＤ、ポート１、ポート２、…を対応して記憶する。ポート１は、発信元の装置に接続されているスイッチにおける発信元の装置と接続されているポートのポートＩＤを記憶する。ポート２には、１番目のスイッチが２番目のスイッチのどのポートに接続されているのかを示す、２番目のスイッチのポートのＩＤを記憶する。以下、他のスイッチについてもポートのＩＤを同様に記憶する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
ステップ７６の判定結果が肯定判定の場合には、フロー情報管理部６２Ａは、ステップ８０で、連続した複数のスイッチでフロー情報が欠落したか否かを判断する。ここで、連続した複数のスイッチでフロー情報が欠落している場合（ステップ８０の判定結果が肯定判定の場合）と欠落していない場合（ステップ８０の判定結果が否定判定の場合）について説明する。連続した複数のスイッチでフロー情報が欠落していない場合（ステップ８０の判定結果が否定判定の場合）としては、次の第１の場合と第２の場合がある。第１の場合としては、１個のスイッチのみからフロー情報が欠落している場合である。第２の場合としては、複数のスイッチからフロー情報が欠落しているが、当該複数のスイッチ間が接続されているかいないかのどちらなのかを判断できる場合である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
上記第１の場合としては、図１２（Ａ）に示すように、例えば、スイッチ１６Ｓ３からフロー情報を受信できなかったが、スイッチ１６Ｓ３を挟むスイッチ１６Ｓ１、１６Ｓ５からフロー情報を受信した場合がある。即ち、スイッチ１６Ｓ３からフロー情報を受信しなかった場合でも、スイッチ１６Ｓ１、１６Ｓ５からのトポロジ情報（図１２（Ｂ））から、スイッチ１６Ｓ１、１６Ｓ５は、スイッチ１６Ｓ３と接続されていると認識することができる。第２の場合としては、複数のスイッチから上記情報を受信できなかったが、上記トポロジ情報からこれらのスイッチの間が接続されているかいないかのどちらかなのかを判断できる場合である。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
一方、連続した複数のスイッチでフロー状態が欠落している場合（ステップ８０の判定結果が肯定判定）として、例えば、図１４（Ａ）に示すように、スイッチ１６Ｓ１、１６Ｓ３から上記情報を受信できなかった場合がある。スイッチ１６Ｓ５、１６Ｓ４、１６Ｓ２からのトポロジ情報に基づいて、スイッチ１６Ｓ１、１６Ｓ３の存在が推測される。しかし、スイッチ１６Ｓ１とスイッチ１６Ｓ３との間に別のスイッチが存在し、当該別のスイッチからも上記情報が送信されていない場合も考えられる。よって、この場合には、スイッチ１６Ｓ１とスイッチ１６Ｓ３とが接続されていると推測することはできない。
ステップ８０の処理は、開示の技術の非転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断することの一例であり、開示の技術の推測できるか否かを判断することの一例である。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
ステップ８０の判定結果が肯定判定の場合には、ステップ８６で、フロー情報管理部６２Ａは、欠落したスイッチのフロー経路情報を補完する。上記のように、ステップ８０の判定結果が肯定判定の場合は、例えば、図１４（Ａ）に示すように、連続したスイッチ１６Ｓ１、１６Ｓ３から上記情報を受信しなかった場合である。この場合は、スイッチ１６Ｓ１、１６Ｓ３との間に別のスイッチが存在する可能性もあり、別のスイッチからも上記情報を受信していない場合がある。このような場合には、例えば、クライアント１４Ｃ１からのパケットが、スイッチ１６Ｓ１を介して、直接スイッチ１６Ｓ３〜スイッチ１６Ｓ５を介してサーバ１８に到達する場合がある。また、クライアント１４Ｃ１からのパケットがスイッチ１６Ｓ１を介して、スイッチ１６Ｓ３ではない別のスイッチを介して、スイッチ１６Ｓ５に到達し、スイッチ１６Ｓ５からサーバ１８に到達する場合もある。よって、この場合には、図７（Ａ）及び図７（Ｂ）に示すテーブルを更新することができない。即ち、例えば、フローＩＤ＝２におけるフローでは、スイッチ１６Ｓ１からスイッチ１６Ｓ３にパケットが送信されているようになっているが、上記のように、別のスイッチを経由してパケットが送信される場合がある。よって、フローの経路情報テーブル（図７（Ａ）及び図７（Ｂ））からでは、監視装置１０は、フロー情報が欠落したスイッチの接続の状態を把握することができない。よって、上記のように後段のスイッチのパケット数を選ぶことができない。上記のように、監視装置１０のメモリ３４には、図８（Ａ）及び図８（Ｂ）に示すように、過去（前回の正常時）のフローの経路情報テーブルが設けられている。過去の正常時のフローの経路情報テーブルの、例えば、フローＩＤ２における経路を見ると、スイッチ１６Ｓ１は直接スイッチ１６Ｓ３と接続されていることが分かる。そこで、ステップ８６で、フロー情報管理部６２Ａは、過去のフローの経路情報テーブル（図８参照）を用いて、上記のように、欠落したスイッチ１６Ｓ１、１６Ｓ３の接続の状態を補完する。即ち、接続しているのか否か、接続していなければ、どのスイッチと接続しているのかという接続の状態が補完される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
ステップ８８で、フロー情報管理部６２Ａは、過去のリンク情報を利用したリンクを障害リンク管理テーブルに登録する。上記のように、障害がスイッチ１６Ｓ１、１６Ｓ３に生じている。よって、図３（Ｃ）の障害リンクの管理テーブルに、スイッチ１６Ｓ１及びスイッチ１６Ｓ３における、スイッチＩＤ、出力ポートＩＤ、隣接スイッチＩＤ、及び隣接スイッチの入力ポートＩＤを記憶する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
以上のように、連続した複数のスイッチでフロー情報が欠落し、フローが分からない場合でも、過去のフロー経路情報に基づいて、欠落したスイッチのフロー経路情報が補完される。よって、欠落したスイッチのフローの後段のスイッチがどのスイッチなのかがわかる。そこで、ステップ８２で、フロー情報管理部６２Ａは、上記のように欠落したスイッチが位置するフローを特定し、当該欠落したスイッチの後段のスイッチのカウンタを調査する。例えば、フローＩＤ＝２におけるフローでは、後段のスイッチはスイッチ１６Ｓ５である。よって、スイッチ１６Ｓ５のカウント値が調査される。ステップ８４で、フロー情報管理部６２Ａは、スイッチ１６Ｓ１、１６Ｓ３のカウンタに、スイッチ１６Ｓ５の出力パケット数を設定する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
ステップ１０６で、フロー情報管理部６２Ａは、送信パケットの差分または受信パケットの差分が閾値以上か否かを判断する。図６におけるコネクションＩＤ＝２の内容が、図１５（Ａ）に示されている。コネクションＩＤ＝２は、フローＦ３、Ｆ４を識別する。コネクションＩＤ＝２における片側、即ち、送信は、フローＦ３に対応し、逆側、即ち、受信はフローＦ４に対応する。フローＦ３では、各スイッチから５００個のパケットが送信されている。よって、フローＦ３における送信パケットの差分値は０となる。しかし、フローＦ４におけるパケット数は、スイッチ１６Ｓ３は、１０００であるのに対し、スイッチ１６Ｓ４、１６Ｓ５のパケット数は５００である。よって、受信パケットの差分値は５００である。この場合には、ステップ１０６の判定結果が肯定判定となり、フロー状態判定処理は、ステップ１１２に移行される。ステップ１１２で、フロー情報管理部６２Ａは、当該フローＦ４について異常と判定し、ステップ１１４で、判定結果として異常を示す×を記憶する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
以上の処理（ステップ７２〜９０）により、ネットワークトモグラフィー技術を用いた障害箇所特定を実行するための情報を全て取得することができる。そこで、ステップ９２で、障害箇所判定部６６Ａは、障害箇所特定処理を実行する。図１１には、障害箇所特定処理の一例が示されている。ステップ１２２で、障害箇所判定部６６Ａは、未観測の観測ノードがあるか否かを判断する。ここで、観測ノードとは、クライアントまたはサーバである。ステップ１２２の判定結果が肯定判定の場合には、ステップ１２４で、障害箇所判定部６６Ａは、フローのフロー異常判定結果を経由するリンクにマッピングする。即ち、例えば、図１６（Ａ）に示すように、観測ノードであるクライアント１４Ｃ１に対してフローＦ１がある。フローＦ１は、図１６（Ｂ）に示すように、クライアント１４Ｃ１及びスイッチ１６Ｓ１の間のリンクＬ１、スイッチ１６Ｓ１、１６Ｓ２間のリンクＬ２が存在する。また、スイッチ１６Ｓ２、１６Ｓ５間のリンクＬ３、及びスイッチ１６５とサーバ１８との間のリンクＬ４が存在する。ステップ１２４で、障害箇所判定部６６Ａは、フローＦ１に対応して、各リンクに異常判断結果をマッピングする。例えば、フローＦ１におけるリンクＬ３に障害が発生して、当該フローが異常であると判断された場合には、図１６（Ｃ）に示すように、フローＦ１に対応してリンクＬ１、Ｌ２、Ｌ３、Ｌ４に異常を示す×を記憶する。一方、フローＦ３の観測ノードはクライアント１４Ｃ４である。このフローＦ３は、サーバ１８とスイッチ１６Ｓ５との間のリンクＬ４、スイッチ１６Ｓ４、１６Ｓ５の間のリンクＬ５、スイッチ１６Ｓ３、１６Ｓ４の間のリンクＬ６、及び、クライアント１４Ｃ４とスイッチ１６Ｓ３との間のリンクＬ７を有する。そして、フローＦ３は、正常であった場合には、フローＦ３に対応してリンクＬ４、Ｌ５、Ｌ６及びＬ７に対応して、正常であることを示す○を記憶する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
ステップ１４２の判定結果が否定判定の場合は、当該上位リンクＬ１は、別のリンクの障害によって異常か否かを結論づけることができない。そこで、ステップ１４６で、障害箇所判定部６６Ａは、同じフロー上で上位リンクよりデータ転送下流に別のリンクがあるか否かを判断する。フローＦ１では、リンクＬ３、Ｌ４があるので、ステップ１４６が肯定判定される。ステップ１４６の判定結果が肯定判定の場合には、障害箇所判定部６６Ａは、ステップ１４８で、上位リンクの結論を別のリンクの結論に対応づける。ステップ１４８が実行されると、障害箇所特定処理は、ステップ１２６に移行される。フローＦ１についてみると、以上の処理でリンクＬ１について処理が終了したが、リンクＬ２〜Ｌ４が存在するので、ステップ１２６が肯定判定となり、ステップ１２８で、障害箇所判定部６６Ａは、今度はリンクＬ２を上位リンクとする。上位リンクｌ２では、ステップ１３４が否定判定される。なぜなら、リンクＬ３は、下位リンクに該当しないからである。この場合には、ステップ１３６で、障害箇所判定部６６Ａは、上位リンクＬ２を異常確率大と判断する。ステップ１５０で、障害箇所判定部６６Ａは、他のリンクが対応づけられているか否かを判断する。上記のように、リンクＬ１では、ステップ１４８でリンクＬ２にリンクＬ１が対応づけられているので、ステップ１５０の判定結果は肯定判定となる。ステップ１５２で、障害箇所判定部６６Ａは、他のリンク、即ち、リンクＬ１を異常確率大と判断する。これにより、図１６（Ｃ）に示すように、リンクＬ１及びリンクＬ２には、異常確率大を示す大が記憶される。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
以上のように、各フローの各リンクについて、異常確率大若しくは小、または正常が記憶されると、ステップ１２６が否定判定となり、障害箇所特定処理は、ステップ１２２に移行される。ステップ１２２の判定結果が否定判定となった場合には、障害箇所特定処理は、ステップ１５４に移行する。ステップ１５４で、障害箇所判定部６６Ａは、各観測ノードを視点とした判断結果をリンク毎に集計する。即ち、図１６（Ｃ）に示すように、各観測ノード毎に判断結果を集計する。ステップ１５６で、障害箇所判定部６６Ａは、未探索のリンクがあるか否かを判断する。未探索のリンクがあると判断された場合には、ステップ１５８で、障害箇所判定部６６Ａは、１観測点で正常判断がされているか否かを判断する。例えば、図１６（Ｃ）に示すように、リンクＬ４では、異常確率大及び正常が記憶されているので、リンクＬ４については、ステップ１５８の判定結果は肯定判定となる。ステップ１６０で、障害箇所判定部６６Ａは、本リンクＬ４を正常と判断して、結論の欄に正常を記憶する。ステップ１５８の判定結果が否定判定の場合の場合には、ステップ１６２で、障害箇所判定部６６Ａは、１観測点以上で異常確率大が判定されているか否かを判断する。例えば、図１６（Ｃ）に示すように、リンクＬ２では、１観測点以上で異常確率大が判定されている。よって、ステップ１６２の判定結果が肯定判定となり、本リンクＬ２に対しては、異常確率大と結論づけられ、結論の欄に異常確率大を識別する大を記憶する。なお、ステップ１６２の判定結果が否定判定の場合には、ステップ１６６で、障害箇所判定部６６Ａは、本リンクを異常確率小と判断し、異常確率小を識別する小を結論の欄に記憶する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
図１８は、図１７に示した監視装置１０で保持されるトポロジ情報管理テーブル（図１８（Ａ））、およびエッジ情報管理テーブル（図１８（Ｂ））の例を示している。図１８（Ａ）のトポロジ（リンク情報）管理テーブルは、例えば、スイッチＯＦＳ１のポートＰ３がスイッチＯＦＳ３のポートＰ１に、スイッチＯＦＳ１のポートＰ４がスイッチＯＦＳ４のポートＰ２になど、各スイッチ間の接続リンクに関する情報を保持している。
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2014220645.tif 000035
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2014220645.tif 000036
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2014220645.tif 000037
【手続補正２２】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2014220645.tif 000038
【手続補正２３】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2014220645.tif 000039
【手続補正２４】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2014220645.tif 000040
【手続補正２５】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2014220645.tif 000041