(57)【要約】【課題】バースト検出にかかる負荷を抑制すること。【解決手段】情報処理装置１０１の制御部１２０は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過したら、特定のフローのセグメントが通過したことを示す通過情報を通知するように各仮想スイッチＳＷ１〜ＳＷ３に設定する。制御部１２０は、各仮想スイッチＳＷ１〜ＳＷ３から通過情報が通知されると、通過情報が通知された時間を記憶部１３０に記録する。制御部１２０は、記憶部１３０に記憶された通過情報が通知された時間に基づいて、各仮想スイッチＳＷ１〜ＳＷ３でバーストが発生したか否かを判断する。【選択図】図１
2018191218.tif 000002
【特許請求の範囲】
【請求項１】
特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
処理をコンピュータに実行させることを特徴とするバースト検出プログラム。
【請求項２】
前記判断する処理は、
所定期間における前記通過情報が通知された時間間隔が所定時間以下の場合に、前記仮想スイッチでバーストが発生したと判断する、ことを特徴とする請求項１に記載のバースト検出プログラム。
【請求項３】
前記判断する処理は、
所定期間における前記通過情報が通知された時間間隔が一定である場合には、前記仮想スイッチでバーストが発生していないと判断する、ことを特徴とする請求項１または２に記載のバースト検出プログラム。
【請求項４】
仮想ネットワークを形成する各仮想スイッチから、当該各仮想スイッチをセグメントが通過したフローの通信量を定期的に取得し、
前記各仮想スイッチから取得した前記フローの通信量の時系列変化に基づいて、前記特定のフローを決定する、
処理を前記コンピュータに実行させることを特徴とする請求項１〜３のいずれか一つに記載のバースト検出プログラム。
【請求項５】
前記仮想スイッチでバーストが発生したと判断した場合、前記仮想スイッチでバーストが発生したことを示す情報を出力する、処理を前記コンピュータに実行させることを特徴とする請求項１〜４のいずれか一つに記載のバースト検出プログラム。
【請求項６】
特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
処理をコンピュータが実行することを特徴とするバースト検出方法。
【請求項７】
特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バースト検出プログラム、バースト検出方法、および情報処理装置に関する。
【背景技術】
【０００２】
ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）環境では、複数の仮想スイッチを多段（いわゆる、ＳＤＮパイプライン）にして仮想ネットワークが構築される。仮想スイッチの仮想ポートは、キューを追加可能であり、パケットをためることができる。一方で、サーバの計算リソースの負荷やＳＤＮパイプラインの各仮想スイッチの処理負荷によって、仮想ポートにたまったパケットが一気にはき出されてバーストが発生することがある。
【０００３】
先行技術としては、通信装置内部において、ユーザパケットの通過経路に沿った遅延測定を常時行い、測定遅延値を遅延閾値と比較し、測定遅延値が遅延閾値を超過した際、対象ユーザパケット帯域を増加させ、ネットワーク管理者宛に警報を送付するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１９７６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、仮想ネットワーク内で発生するバーストの検出に負荷がかかり、バースト検出に用いる計算リソースの増加を招くという問題がある。
【０００６】
一つの側面では、本発明は、バースト検出にかかる負荷を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、バースト検出プログラムが提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、バースト検出にかかる負荷を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる情報処理装置１０１の一実施例を示す説明図である。
【図２】図２は、ＳＤＮパイプラインの一例を示す説明図である。
【図３】図３は、バーストの発生例を示す説明図である。
【図４】図４は、情報処理装置１０１のハードウェア構成例を示すブロック図である。
【図５】図５は、フローテーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、監視テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、情報処理装置１０１の機能的構成例を示すブロック図である。
【図８】図８は、フロー決定部７０１の具体的な機能的構成例を示すブロック図である。
【図９】図９は、バースト監視部７０２の具体的な機能的構成例を示すブロック図である。
【図１０】図１０は、アクションメッセージＡＭのデータ構造例を示す説明図である。
【図１１】図１１は、イベントメッセージＩＭのデータ構造例を示す説明図である。
【図１２】図１２は、バースト検出部７０３の具体的な機能的構成例を示すブロック図である。
【図１３】図１３は、期間メッセージＤＭのデータ構造例を示す説明図である。
【図１４】図１４は、バーストメッセージＢＭのデータ構造例を示す説明図である。
【図１５】図１５は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（ＳＷ２の出力（ｏｕｔ）でバースト）である。
【図１６】図１６は、情報処理装置１０１の動作例を示す説明図（ＳＷ２の出力（ｏｕｔ）でバースト）である。
【図１７】図１７は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（ＳＷ２（ｉｎ）でバースト）である。
【図１８】図１８は、情報処理装置１０１の動作例を示す説明図（ＳＷ２（ｉｎ）でバースト）である。
【図１９】図１９は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（バーストなし）である。
【図２０】図２０は、情報処理装置１０１の動作例を示す説明図（バーストなし）である。
【図２１】図２１は、情報処理装置１０１のフロー決定処理手順の一例を示すフローチャート（その１）である。
【図２２】図２２は、情報処理装置１０１のフロー決定処理手順の一例を示すフローチャート（その２）である。
【図２３】図２３は、情報処理装置１０１のバースト監視処理手順の一例を示すフローチャートである。
【図２４】図２４は、情報処理装置１０１のバースト検出処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるバースト検出プログラム、バースト検出方法、および情報処理装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかる情報処理装置１０１の一実施例を示す説明図である。図１において、情報処理装置１０１は、自装置のハードウェア資源を仮想化して、複数の異なるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行可能なコンピュータである。自装置のハードウェア資源とは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）などである。
【００１２】
具体的には、例えば、情報処理装置１０１は、自装置のハードウェア資源を分割して構築される実行環境で動作する仮想マシンによってＯＳを稼働させることができる。仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）は、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。
【００１３】
また、情報処理装置１０１は、複数の仮想スイッチを有し、仮想ネットワークを構築可能である。仮想ネットワークとは、ソフトウェアにより構築されるネットワークであり、物理マシンや仮想マシン同士を接続する。仮想スイッチは、通信を中継する機能を有する仮想的なネットワークスイッチであり、物理マシン（例えば、情報処理装置１０１）上の仮想マシン同士をつないだり、仮想マシンと外部のネットワークとをつないだりする。
【００１４】
仮想スイッチは、情報処理装置１０１のカーネルに存在し、仮想マシンやＮａｍｅｓｐａｃｅのコンテナなどを接続するために利用される。仮想スイッチは、仮想ポートと仮想ブリッジとを含む。仮想ポートは、仮想マシンや他の仮想スイッチに接続され、仮想マシン／仮想スイッチ間や仮想スイッチ間の接続を担当するポートである。仮想ポートは、キューを追加可能であり、パケットをためることができる。
【００１５】
情報処理装置１０１において、仮想マシン（例えば、仮想マシン上で動作するアプリケーション）からカーネルにデータが入ってくるときは、「セグメント」と呼ばれるデータ単位で入ってくる。セグメントは、複数のパケットのかたまりである。例えば、セグメントのサイズを「４５００［バイト］」とし、１パケットのサイズを「１５００［バイト］」とすると、セグメントは３つ分のパケットに相当する。処理性能の向上を図るために、カーネルの内部（例えば、各仮想スイッチ）では、セグメント単位で処理が行われる。ただし、例えば、仮想スイッチ間や仮想スイッチ／ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）間では、セグメントはパケットに分割されて送受信される。
【００１６】
また、ネットワーク１１０においては、「フロー」と呼ばれるデータのかたまりで送受信される。フローは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ポート番号、プロトコルなどの通信情報をベースにしたパケットのかたまりである。ネットワーク１１０は、情報処理装置１０１と他の情報処理装置１０２とを接続する有線または無線のネットワークである。ネットワーク１１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどを含む。情報処理装置１０１、他の情報処理装置１０２は、例えば、サーバであってもよく、また、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの汎用のコンピュータであってもよい。他の情報処理装置１０２は、情報処理装置１０１と同様の機能を有していてもよい。
【００１７】
ここで、情報処理装置１０１は、様々なネットワーク機能を、複数の仮想スイッチに割り当てて仮想ネットワークを実現する。具体的には、例えば、情報処理装置１０１は、複数の仮想スイッチを多段にして仮想ネットワークを構築する。複数の仮想スイッチを多段にしたものは、「ＳＤＮパイプライン」と呼ばれることがある。
【００１８】
図２は、ＳＤＮパイプラインの一例を示す説明図である。図２において、それぞれ異なるネットワーク機能を実現する仮想スイッチ２０１〜２０４によってＳＤＮパイプラインが形成されている。仮想スイッチ２０１は、仮想ポート２１１，２１２を有し、セキュリティに関する処理を行う。
【００１９】
仮想スイッチ２０２は、仮想ポート２１３，２１４を有し、通信情報を修正する処理を行う。仮想スイッチ２０３は、仮想ポート２１５〜２１７を有し、トンネル化（トンネリング）に関する処理を行う。仮想スイッチ２０４は、仮想ポート２１８，２１９を有し、ヘッダにメタデータを追加する処理を行う。
【００２０】
ここで、物理マシン（例えば、情報処理装置１０１）の計算リソースの負荷や、ＳＤＮパイプラインの各仮想スイッチ（例えば、仮想スイッチ２０１〜２０４）の処理負荷によって、仮想ポートにたまったパケットが一気にはき出されてバーストが発生することがある。
【００２１】
バーストとは、単位時間当たりに、突発的にパケットの伝送量が多くなる現象である。例えば、仮想スイッチ２０１において、仮想ポート２１１に入力されるパケットとルールとのマッチングを行って、ルールにマッチしないパケットを排除する処理を行うとする。この場合、仮想ポート２１１に入力されるパケットの処理に負荷がかかり過ぎて、仮想ポート２１２のキューに多くのパケットがたまる。
【００２２】
この結果、仮想ポート２１２のキューにたまったパケットが一気にはき出されてバーストが発生することがある。ここで、図３を用いて、バーストの発生例について説明する。
【００２３】
図３は、バーストの発生例を示す説明図である。図３において、グラフ３００は、パケット数（縦軸：Ｐａｃｋｅｔ  ｃｏｕｎｔ）と、経過時間（Ｅｌａｐｓｅｄ  ｔｉｍｅ）との対応関係を示しており、実環境で発生したバーストをあらわしている。バーストの時間間隔は、約２００ミリ秒である。
【００２４】
例えば、符号３０１部分では、１００マイクロ秒の中で最大で約９０個のパケットが存在しており、バーストが発生している。具体的には、符号３０１部分では、パケット間の間隔が数マイクロ秒単位となっており、一気にパケットがはき出されてバーストが発生している。
【００２５】
バーストが発生すると、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を保証できなくなったり、パケットドロップが生じることがある。例えば、仮想スイッチ２０１でバーストが発生すると、後段の仮想スイッチ２０２の仮想ポート２１３のキューにパケットが入り切らなくてパケットドロップが生じることがある。また、バーストによりトラフィックパターンが変化して、ＱｏＳを保証できなくなることがある。
【００２６】
このため、仮想ネットワーク内で発生したバーストを検出して対処することは重要である。例えば、全ての仮想ポートに対して、キャプチャを実施してパケットの情報（タイムスタンプ）を収集し、各パケットのタイムスタンプの差分を計算してバーストを検出することが考えられる。
【００２７】
ところが、全ての仮想ポートに対してキャプチャを行うため、仮想ポートの数分のＣＰＵ（コア）が必要となる。図２の例では、仮想ポート２１１〜２１９に対してキャプチャを行うには、９個のＣＰＵ（コア）が必要となる。パケットの数が増えると、パケットの分析に非常に時間がかかり、実時間でバーストを検出することが困難である。
【００２８】
また、仮想スイッチに入出力されるパケットのトラフィックを監視し、仮想スイッチでのパケット量が閾値以上となったら、バーストとして検出することも考えられる。ところが、物理マシン内の各仮想スイッチのパケット量をモニタリングするには、仮想ポートの数分のＣＰＵ（コア）が必要となる。
【００２９】
また、観測用のパケットを生成して各仮想スイッチを通るときのタイムスタンプを記録して、パケットに各タイムスタンプを追加することが考えられる。ところが、セグメントからタイムスタンプを入れた観測用のパケットを生成するには、ＣＰＵリソースを使用してセグメントをパケット単位で分割してヘッダを追加する処理が必要となる。この処理には負荷がかかり、多くのＣＰＵリソースを要求する。
【００３０】
また、セグメント単位でヘッダにタイムスタンプを入れることも考えられる。ところが、各仮想スイッチでのタイムスタンプをヘッダに入れるには、依然として、通常の処理以外に余分なＣＰＵリソースを必要とする。さらに、仮想スイッチの数が増えると、追加するタイムスタンプの数が増えてパケットサイズがＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｆｅｒ  Ｕｎｉｔ）のサイズより大きくなるおそれがある。
【００３１】
そこで、本実施の形態では、特定のフローのセグメントに着目して、バースト検出にかかる負荷を抑制するバースト検出方法について説明する。図１の例では、仮想スイッチＳＷ１〜ＳＷ３を通過する特定のフローのセグメントに着目して、仮想スイッチＳＷ１〜ＳＷ３でバーストが発生したか否かを判断する。
【００３２】
具体的には、例えば、情報処理装置１０１の制御部１２０は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過したら、特定のフローのセグメントが通過したことを示す通過情報を通知するように各仮想スイッチＳＷ１〜ＳＷ３に設定する。この結果、各仮想スイッチＳＷ１〜ＳＷ３は、特定のフローのセグメントが通過したら、情報処理装置１０１に通過情報を通知する。この際、各仮想スイッチＳＷ１〜ＳＷ３は、タイムスタンプを生成しない。
【００３３】
つぎに、制御部１２０は、各仮想スイッチＳＷ１〜ＳＷ３から通過情報が通知されると、通過情報が通知された時間を記憶部１３０に記録する。すなわち、各仮想スイッチＳＷ１〜ＳＷ３を特定のフローのセグメントが通過した時間を示すタイムスタンプを情報処理装置１０１側で生成する。そして、制御部１２０は、記憶部１３０に記憶された通過情報が通知された時間に基づいて、各仮想スイッチＳＷ１〜ＳＷ３でバーストが発生したか否かを判断する。
【００３４】
これにより、バースト検出にかかる処理負荷を抑制して、より少ない計算リソースでバースト検出を行うことができる。具体的には、例えば、全ての仮想ポートに対してキャプチャを実施したり、各仮想スイッチのパケット量をモニタリングしたり、各仮想スイッチでタイムスタンプを入れる場合に比べて、少ない計算リソースでバーストを検出することが可能となる。以下、情報処理装置１０１の実施例について具体的に説明する。
【００３５】
（情報処理装置１０１のハードウェア構成例）
つぎに、図１に示した情報処理装置１０１のハードウェア構成例について説明する。
【００３６】
図４は、情報処理装置１０１のハードウェア構成例を示すブロック図である。図４において、情報処理装置１０１は、ＣＰＵ４０１と、メモリ４０２と、Ｉ／Ｆ４０３と、ディスクドライブ４０４と、ディスク４０５と、を有する。また、各構成部は、バス４００によってそれぞれ接続される。
【００３７】
ここで、ＣＰＵ４０１は、情報処理装置１０１の全体の制御を司る。ＣＰＵ４０１は、例えば、複数のＣＰＵであってもよいし、また、複数のプロセッサコアを有するマルチコアプロセッサでもよい。メモリ４０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ４０１のワークエリアとして使用される。メモリ４０２に記憶されるプログラムは、ＣＰＵ４０１にロードされることで、コーディングされている処理をＣＰＵ４０１に実行させる。
【００３８】
Ｉ／Ｆ４０３は、通信回線を通じてネットワーク１１０に接続され、ネットワーク１１０を介して他の装置に接続される。そして、Ｉ／Ｆ４０３は、ネットワーク１１０と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。Ｉ／Ｆ４０３には、例えば、モデムやＮＩＣなどを採用することができる。
【００３９】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリード／ライトを制御する。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する。ディスク４０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００４０】
なお、情報処理装置１０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、入力装置、ディスプレイなどを有することにしてもよい。
【００４１】
（フローテーブル５００の記憶内容）
つぎに、情報処理装置１０１が有するフローテーブル５００の記憶内容について説明する。フローテーブル５００は、例えば、図４に示したメモリ４０２、ディスク４０５などの記憶装置により実現される。
【００４２】
図５は、フローテーブル５００の記憶内容の一例を示す説明図である。図５において、フローテーブル５００は、フローＩＤ、Ｓｒｃ．ＳＷＩＤ、Ｄｓｔ．ＳＷＩＤ、Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴ、プロトコル、ＢｙｔｅｓおよびＡｇｉｎｇＣｏｕｎｔのフィールドを有する。各フィールドに情報を設定することで、フロー管理情報（例えば、フロー管理情報５００−１〜５００−４）がレコードとして記憶される。
【００４３】
ここで、フローＩＤは、フローを一意に識別する識別子である。Ｓｒｃ．ＳＷＩＤは、送信側の仮想スイッチを一意に識別する識別子である。Ｄｓｔ．ＳＷＩＤは、受信側の仮想スイッチを一意に識別する識別子である。Ｓ＿ＩＰは、送信側の仮想マシンのＩＰアドレス（通信情報）である。Ｒ＿ＩＰは、受信側の仮想マシンのＩＰアドレス（通信情報）である。
【００４４】
Ｓ＿ＰＯＲＴは、送信側の仮想マシンのポート番号（通信情報）である。Ｒ＿ＰＯＲＴは、受信側の仮想マシンのポート番号（通信情報）である。プロトコルは、仮想マシン間の通信に利用されるプロトコル（通信情報）である。例えば、プロトコル「１７」は、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を示す。
【００４５】
Ｂｙｔｅｓは、フローＩＤのフローにかかるデータ伝送量である（単位：バイト）。ＡｇｉｎｇＣｏｕｎｔは、フローＩＤのフローのデータ伝送状況を示す指標値である。例えば、ＡｇｉｎｇＣｏｕｎｔが小さいほど、フローＩＤのフローにかかるデータ伝送が頻繁に行われていることを示す。
【００４６】
（監視テーブル６００の記憶内容）
つぎに、情報処理装置１０１が有する監視テーブル６００の記憶内容について説明する。監視テーブル６００は、例えば、図４に示したメモリ４０２、ディスク４０５などの記憶装置により実現される。図１に示した記憶部１３０は、例えば、監視テーブル６００に相当する。
【００４７】
図６は、監視テーブル６００の記憶内容の一例を示す説明図である。図６において、監視テーブル６００は、フローＩＤ、ＳＷＩＤ、ＩＮ＿ＴＩＭＥおよびＯＵＴ＿ＴＩＭＥのフィールドを有し、各フィールドに情報を設定することで、監視情報（例えば、監視情報６００−１，６００−２）をレコードとして記憶する。
【００４８】
フローＩＤは、特定のフローを一意に識別する識別子である。ＳＷＩＤは、特定のフローのセグメントが通過した仮想スイッチを一意に識別する識別子である。ＩＮ＿ＴＩＭＥは、特定のフローのセグメントが仮想スイッチに入力された時間（日付とマイクロ秒までの時刻）である。ＯＵＴ＿ＴＩＭＥは、特定のフローのセグメントが仮想スイッチから出力された時間（日付とマイクロ秒までの時刻）である。
【００４９】
（情報処理装置１０１の機能的構成例）
図７は、情報処理装置１０１の機能的構成例を示すブロック図である。図７において、情報処理装置１０１は、フロー決定部７０１と、バースト監視部７０２と、バースト検出部７０３と、を含む構成である。フロー決定部７０１〜バースト検出部７０３は制御部（例えば、図１に示した制御部１２０）となる機能であり、具体的には、例えば、図４に示したメモリ４０２、ディスク４０５などの記憶装置に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ４０２、ディスク４０５などの記憶装置に記憶される。
【００５０】
以下の説明では、情報処理装置１０１が有する複数の仮想スイッチを「仮想スイッチＳＷ１〜ＳＷｎ」と表記する場合がある（ｎ：２以上の自然数）。また、仮想スイッチＳＷ１〜ＳＷｎのうちの任意の仮想スイッチを「仮想スイッチＳＷｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。
【００５１】
フロー決定部７０１は、特定のフローを決定する。ここで、特定のフローとは、パスを流れるフローのうち、仮想ネットワーク内で発生するバーストを検出するために着目するフローである。パスとは、送信側と受信側との間で、物理マシン（例えば、情報処理装置１０１，１０２）やネットワーク（例えば、ネットワーク１１０）を通じてデータの送受信を行う経路である。
【００５２】
具体的には、例えば、フロー決定部７０１は、仮想ネットワークを形成する仮想スイッチＳＷｉをセグメントが通過したフローの通信量や通信頻度に基づいて、特定のフローを決定する。また、フロー決定部７０１は、パスごとに、当該パスに対応する特定のフローを決定することにしてもよい。
【００５３】
フロー決定部７０１の具体的な機能的構成例については、図８を用いて後述する。
【００５４】
バースト監視部７０２は、仮想ネットワークを形成する仮想スイッチＳＷｉに対して、特定のフローのセグメントが通過したら通過情報を通知するように設定する。ここで、通過情報は、特定のフローのセグメントが通過したことを示す情報である。また、バースト監視部７０２は、仮想スイッチＳＷｉから通過情報が通知されると、通過情報が通知された時間を、メモリ４０２、ディスク４０５などの記憶装置に記録する。
【００５５】
バースト監視部７０２の具体的な機能的構成例については、図９を用いて後述する。
【００５６】
バースト検出部７０３は、記録された仮想スイッチＳＷｉから通過情報が通知された時間に基づいて、仮想スイッチＳＷｉでバーストが発生したか否かを判断する。具体的には、例えば、バースト検出部７０３は、例えば、仮想スイッチＳＷｉから通過情報が通知された時間間隔に基づいて、仮想スイッチＳＷｉでバーストが発生したか否かを判断する。
【００５７】
バースト検出部７０３の具体的な機能的構成例については、図１２を用いて後述する。
【００５８】
・フロー決定部７０１の具体的な機能的構成例
図８は、フロー決定部７０１の具体的な機能的構成例を示すブロック図である。図８において、フロー決定部７０１は、通信部８０１と、解析部８０２と、観測部８０３と、決定部８０４と、を含む。
【００５９】
通信部８０１は、仮想スイッチＳＷｉから接続情報とフロー情報とを受信する。ここで、接続情報は、仮想スイッチＳＷｉと他の仮想スイッチＳＷｊ（ｊ≠ｉ、ｊ＝１，２，…，ｎ）との接続関係を示す情報である。接続情報は、例えば、仮想スイッチＳＷｉのＳＷＩＤと他の仮想スイッチＳＷｊのＳＷＩＤとを含む。
【００６０】
また、フロー情報は、仮想スイッチＳＷｉをセグメントが通過するフローの通信情報である。フロー情報は、例えば、送信側・受信側の仮想マシンのＩＰアドレス、ポート番号およびプロトコルの情報を含む。フロー情報は、例えば、フローのセグメントが通るパスを特定する情報に相当する。
【００６１】
解析部８０２は、各仮想スイッチＳＷ１〜ＳＷｎの接続情報とフロー情報とに基づいて、パス上の仮想スイッチ間の接続関係を解析する。具体的には、例えば、解析部８０２は、仮想スイッチＳＷｉの接続情報とフロー情報とに基づいて、フローテーブル５００内のＳｒｃ．ＳＷＩＤ、Ｄｓｔ．ＳＷＩＤ、Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコルの各フィールドに情報を設定する。
【００６２】
より詳細に説明すると、例えば、解析部８０２は、仮想スイッチＳＷｉの接続情報から特定される、仮想スイッチＳＷｉのＳＷＩＤをＳｒｃ．ＳＷＩＤに設定し、他の仮想スイッチＳＷｊのＳＷＩＤをＤｓｔ．ＳＷＩＤに設定する。また、解析部８０２は、仮想スイッチＳＷｉのフロー情報から特定される、送信側・受信側の仮想マシンのＩＰアドレス、ポート番号およびプロトコルを、Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコルの各フィールドに設定する。また、解析部８０２は、フローＩＤを設定する。ただし、送信側・受信側の仮想マシンのＩＰアドレス、ポート番号およびプロトコルの組み合わせが一致するフローには、同一のフローＩＤが設定される。これにより、新たなフロー管理情報がレコードとしてフローテーブル５００に登録される。ただし、この時点では、ＢｙｔｅｓおよびＡｇｉｎｇＣｏｕｎｔの各フィールドは「−（Ｎｕｌｌ）」である。
【００６３】
観測部８０３は、仮想スイッチＳＷｉから、仮想スイッチＳＷｉをセグメントが通過したフローの通信量を定期的に取得する。具体的には、例えば、観測部８０３は、所定期間Ｐ１の間、仮想スイッチＳＷｉをセグメントが通過するフローの通信量を所定時間Ｔ１間隔で取得する。なお、仮想スイッチＳＷｉは、フローの通信量を、フローを特定可能な情報（例えば、フローの通信情報）とともに情報処理装置１０１に通知する。これにより、観測部８０３は、どのフローの通信量であるかを特定することができる。
【００６４】
ここで、所定期間Ｐ１および所定時間Ｔ１は、任意に設定可能である。所定期間Ｐ１は、例えば、１分程度の期間に設定される。所定時間Ｔ１は、例えば、５秒程度の時間に設定される。また、取得されるフローの通信量は、例えば、仮想スイッチＳＷｉをセグメントが通過したフローの通信量の累積値である。
【００６５】
そして、観測部８０３は、取得したフローの通信量を、フローテーブル５００内の対応するＢｙｔｅｓフィールドに設定する。また、観測部８０３は、前回からフローの通信量が増加していない場合、すなわち、所定時間Ｔ１内でデータ伝送がない場合、ＡｇｉｎｇＣｏｕｎｔをインクリメントする。
【００６６】
一例として、仮想スイッチＳＷ１から、フローＦ１の通信量「４３１２」を取得したとする。フローＦ１は、Ｓ＿ＩＰ「１．１０．１．１０」、Ｒ＿ＩＰ「１．２．３．５」、Ｓ＿ＰＯＲＴ「３５８３２」、Ｒ＿ＰＯＲＴ「５００１」およびプロトコル「１７」の組み合わせに対応するフローである。この場合、観測部８０３は、フローテーブル５００内のフロー管理情報５００−１のＢｙｔｅｓフィールドに「４３１２」を設定する。また、観測部８０３は、仮想スイッチＳＷ１から取得したフローの通信量が前回から増加していなければ、ＡｇｉｎｇＣｏｕｎｔをインクリメントする。これにより、仮想スイッチＳＷ１におけるフローＦ１の通信量（データ伝送量）および通信状況（データ伝送状況）を記録することができる。
【００６７】
決定部８０４は、仮想スイッチＳＷｉから定期的に取得されたフローの通信量の時系列変化に基づいて、特定のフローを決定する。具体的には、例えば、決定部８０４は、フローテーブル５００を参照して、Ｂｙｔｅｓが相対的に高く、かつ、ＡｇｉｎｇＣｏｕｎｔが相対的に少ないフローを、特定のフローに決定することにしてもよい。
【００６８】
一例として、図５に示したフロー管理情報５００−１，５００−２を相対評価する場合を例に挙げると、決定部８０４は、例えば、Ｂｙｔｅｓが高く、かつ、ＡｇｉｎｇＣｏｕｎｔが少ないフローＦ２を、特定のフローに決定する。また、フロー管理情報５００−３，５００−４を相対評価する場合を例に挙げると、決定部８０４は、例えば、Ｂｙｔｅｓが同一のため、ＡｇｉｎｇＣｏｕｎｔが少ないフローＦ１２を、特定のフローに決定する。
【００６９】
また、例えば、決定部８０４は、フローテーブル５００を参照して、Ｂｙｔｅｓが閾値α以上であり、かつ、ＡｇｉｎｇＣｏｕｎｔが閾値β以下のフローを、特定のフローに決定することにしてもよい。閾値αおよび閾値βは、任意に設定可能である。
【００７０】
一例として、閾値αを「１０００００［バイト］」とし、閾値βを「２」とする。この場合、例えば、決定部８０４は、フローテーブル５００のフロー管理情報５００−２を参照して、Ｂｙｔｅｓが閾値α以上であり、かつ、ＡｇｉｎｇＣｏｕｎｔが閾値β以下のため、フローＦ２を、特定のフローに決定する。
【００７１】
また、決定部８０４は、決定した特定のフローのフロー情報を生成する。具体的には、例えば、決定部８０４は、特定のフローのフロー情報をメッセージ化して、フローメッセージＦＭを生成する。フローメッセージＦＭは、例えば、特定のフローのフローＩＤ、フロー情報（Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコル）を含む。
【００７２】
なお、フローメッセージＦＭのデータ構造例は、例えば、後述の図１０に示すアクションメッセージＡＭのデータ構造例と同様のため、図示および説明を省略する。
【００７３】
通信部８０１は、生成された特定のフローのフロー情報をバースト監視部７０２に出力する。具体的には、例えば、通信部８０１は、フローメッセージＦＭをバースト監視部７０２に出力する。
【００７４】
・バースト監視部７０２の具体的な機能的構成例
図９は、バースト監視部７０２の具体的な機能的構成例を示すブロック図である。図９において、バースト監視部７０２は、通信部９０１と、設定部９０２と、記録部９０３と、を含む。
【００７５】
通信部９０１は、フロー決定部７０１から特定のフローのフロー情報を受け付ける。具体的には、例えば、通信部９０１は、フロー決定部７０１からフローメッセージＦＭを受け付ける。フローメッセージＦＭには、例えば、特定のフローのフローＩＤ、フロー情報（Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコル）が含まれる。
【００７６】
設定部９０２は、特定のフローを設定する。具体的には、例えば、設定部９０２は、フローテーブル５００を参照して、フローメッセージＦＭに含まれるフローＩＤに対応するＳｒｃ．ＳＷＩＤを特定する。このＳｒｃ．ＳＷＩＤは、特定のフローのセグメントが通過する仮想スイッチＳＷｉのＳＷＩＤである。つぎに、設定部９０２は、フローメッセージＦＭに含まれるフローＩＤと、特定したＳｒｃ．ＳＷＩＤとを、図６に示した監視テーブル６００内のフローＩＤおよびＳＷＩＤの各フィールドに設定する。これにより、新たな監視情報がレコードとして監視テーブル６００に記憶される。ただし、この時点では、ＩＮ＿ＴＩＭＥおよびＯＵＴ＿ＴＩＭＥの各フィールドは「−（Ｎｕｌｌ）」である。
【００７７】
また、設定部９０２は、仮想ネットワークを形成する仮想スイッチＳＷｉに対して、特定のフローのセグメントが通過したら通過情報を通知するように設定する。具体的には、例えば、設定部９０２は、フローメッセージＦＭに基づいて、アクションメッセージＡＭを生成する。そして、通信部９０１は、設定部９０２によって生成されたアクションメッセージＡＭを仮想スイッチＳＷｉに送信する。
【００７８】
アクションメッセージＡＭの送信先の仮想スイッチＳＷｉは、例えば、仮想ネットワークを形成する各仮想スイッチＳＷ１〜ＳＷｎであってもよい。また、アクションメッセージＡＭの送信先の仮想スイッチＳＷｉは、例えば、監視テーブル６００に特定のフローのフローＩＤと対応付けて記憶されたＳＷＩＤの仮想スイッチＳＷｉであってもよい。
【００７９】
アクションメッセージＡＭは、特定のフローのセグメントが通過したらその旨を通知するように仮想スイッチＳＷｉに設定するための設定情報である。アクションメッセージＡＭは、例えば、フローメッセージＦＭに含まれる、特定のフローのフローＩＤ、フロー情報（Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコル）を含む。ここで、アクションメッセージＡＭのデータ構造について説明する。
【００８０】
図１０は、アクションメッセージＡＭのデータ構造例を示す説明図である。図１０において、アクションメッセージＡＭは、ＢＰＤＵ（Ｂｒｉｄｇｅ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）１００１を含む。ＢＰＤＵ１００１は、特定のフローのフローＩＤ、通信情報（Ｓ＿ＩＰ、Ｒ＿ＩＰ、Ｓ＿ＰＯＲＴ、Ｒ＿ＰＯＲＴおよびプロトコル）およびＡｃｔｉｏｎを含む。
【００８１】
Ａｃｔｉｏｎは、特定のフローのセグメントが通過したら、イベントメッセージＩＭを通知するアクションを規定するものである。イベントメッセージＩＭは、特定のフローのセグメントが通過したことを示す通過情報の一例である。なお、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓには、あらかじめ予約されたＭＡＣアドレスが使用される。ここで、イベントメッセージＩＭのデータ構造について説明する。
【００８２】
図１１は、イベントメッセージＩＭのデータ構造例を示す説明図である。図１１において、イベントメッセージＩＭは、Ｉｎ／Ｏｕｔフラグ１１０１と、ブリッジインデックス１１０２と、フローインデックス１１０３とを含む。Ｉｎ／Ｏｕｔフラグ１１０１は、特定のフローのセグメントが、仮想スイッチＳＷｉに入力されたのか、または、仮想スイッチＳＷｉから出力されたのかを示す情報である。ここでは、Ｉｎ／Ｏｕｔフラグ１１０１が「０」の場合に、特定のフローのセグメントが、仮想スイッチＳＷｉに入力されたことを示す。Ｉｎ／Ｏｕｔフラグ１１０１が「１」の場合に、特定のフローのセグメントが、仮想スイッチＳＷｉから出力されたことを示す。
【００８３】
また、ブリッジインデックス１１０２は、イベントメッセージＩＭの通知元の仮想マシンＳＷｉを一意に識別する情報である。ブリッジインデックス１１０２として、例えば、通知元の仮想マシンＳＷｉのＳＷＩＤが設定される。また、フローインデックス１１０３は、特定のフローを一意に識別する情報である。フローインデックス１１０３として、例えば、特定のフローのフローＩＤが設定される。
【００８４】
仮想スイッチＳＷｉは、情報処理装置１０１からアクションメッセージＡＭを受信すると、アクションメッセージＡＭのＢＰＤＵ１００１（図１０参照）を参照して、特定のフローのセグメントが通過したら、情報処理装置１０１にイベントメッセージＩＭを通知するように設定する。この結果、特定のフローのセグメントが仮想スイッチＳＷｉに入力されると、「０」のＩｎ／Ｏｕｔフラグ１１０１を含むイベントメッセージＩＭが、仮想スイッチＳＷｉから情報処理装置１０１に通知される。また、特定のフローのセグメントが仮想スイッチＳＷｉから出力されると、「１」のＩｎ／Ｏｕｔフラグ１１０１を含むイベントメッセージＩＭが、仮想スイッチＳＷｉから情報処理装置１０１に通知される。仮想スイッチＳＷｉにおいて、セグメントが特定のフローのものであるかは、例えば、仮想スイッチＳＷｉを通過するセグメントの送信側・受信側の仮想マシンのＩＰアドレス、ポート番号およびプロトコルなどから判断される。
【００８５】
なお、特定のフローとして決定されたフローが１つの場合、情報処理装置１０１側で、仮想スイッチＳＷｉをセグメントが通過したフローを判別しなくてもよい。このため、イベントメッセージＩＭは、フローインデックス１１０３を含まないことにしてもよい。
【００８６】
図９の説明に戻り、通信部９０１は、仮想スイッチＳＷｉから、特定のフローのセグメントが通過したことを示す通過情報を受信する。具体的には、例えば、通信部９０１は、仮想スイッチＳＷｉからイベントメッセージＩＭ（図１１参照）を受信する。
【００８７】
記録部９０３は、仮想スイッチＳＷｉから通過情報が通知されると、通過情報が通知された時間を記録する。具体的には、例えば、記録部９０３は、仮想スイッチＳＷｉからイベントメッセージＩＭが受信されると、タイムスタンプを生成する。タイムスタンプは、イベントメッセージＩＭが受信された時間（例えば、日付とマイクロ秒までの時刻）を示す情報である。つぎに、記録部９０３は、イベントメッセージＩＭに含まれる仮想マシンＳＷｉのＳＷＩＤと特定のフローのフローＩＤとの組み合わせに対応する監視テーブル６００内の監視情報を特定する。
【００８８】
そして、記録部９０３は、イベントメッセージＩＭに含まれるＩｎ／Ｏｕｔフラグ１１０１が「０」の場合、生成したタイムスタンプを、特定した監視情報のＩＮ＿ＴＩＭＥに記録する。一方、記録部９０３は、イベントメッセージＩＭに含まれるＩｎ／Ｏｕｔフラグ１１０１が「１」の場合、生成したタイムスタンプを、特定した監視情報のＯＵＴ＿ＴＩＭＥに記録する。
【００８９】
一例として、Ｉｎ／Ｏｕｔフラグ１１０１が「０」、ブリッジインデックス１１０２が「ＳＷ１」、フローインデックス１１０３が「Ｆ１」であるイベントメッセージＩＭが通知された場合を想定する。この場合、記録部９０３は、監視テーブル６００を参照して、イベントメッセージＩＭに含まれるブリッジインデックス１１０２の「ＳＷ１」とフローインデックス１１０３の「Ｆ１」との組み合わせに対応する監視情報６００−１を特定する。そして、記録部９０３は、Ｉｎ／Ｏｕｔフラグ１１０１が「０」のため、監視情報６００−１のＩＮ＿ＴＩＭＥにタイムスタンプを記録する。なお、監視情報のＩＮ＿ＴＩＭＥおよびＯＵＴ＿ＴＩＭＥの各フィールドには、例えば、タイムスタンプが順次追加されていく。
【００９０】
・バースト検出部７０３の具体的な機能的構成例
図１２は、バースト検出部７０３の具体的な機能的構成例を示すブロック図である。図１２において、バースト検出部７０３は、通信部１２０１と、観測部１２０２と、判断部１２０３と、を含む。
【００９１】
通信部１２０１は、バースト検出期間Ｐ２および所定時間Ｔ２を示す情報を受信する。ここで、バースト検出期間Ｐ２は、バーストが発生したか否かを判断するタイミングを特定する情報である。バースト検出期間Ｐ２は、例えば、実環境で発生したバーストの時間間隔をもとに設定される。バースト検出期間Ｐ２としては、例えば、２００［ｍｓ］〜１［ｓ］程度の期間が設定される。
【００９２】
所定時間Ｔ２は、仮想スイッチＳＷｉでバーストが発生したか否かを判断する際に用いる閾値である。所定時間Ｔ２は、仮想スイッチＳＷｉから通過情報（例えば、イベントメッセージＩＭ）が通知された時間間隔が所定時間Ｔ２以下であれば、仮想スイッチＳＷｉでバーストが発生した可能性が高いと判断できる値に設定される。例えば、図３で説明したように、バーストの発生時は、パケットの間隔が数マイクロ秒単位となっている。このため、所定時間Ｔ２としては、例えば、数マイクロ秒程度の時間が設定される。
【００９３】
具体的には、例えば、通信部１２０１は、情報処理装置１０１の管理者のコンピュータから期間メッセージＤＭを受信する。管理者のコンピュータは、例えば、管理者が使用するＰＣである。期間メッセージＤＭは、バースト検出期間Ｐ２と所定時間Ｔ２とを示す情報を含む。ここで、期間メッセージＤＭのデータ構造について説明する。
【００９４】
図１３は、期間メッセージＤＭのデータ構造例を示す説明図である。図１３において、期間メッセージＤＭは、ＢＰＤＵ１３０１を含む。ＢＰＤＵ１３０１は、バースト検出期間Ｐ２と所定時間Ｔ２とを示す情報を含む。なお、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓには、あらかじめ予約されたＭＡＣアドレスが使用される。
【００９５】
期間メッセージＤＭによれば、情報処理装置１０１の管理者等により、バースト検出期間Ｐ２および所定時間Ｔ２を任意に設定することができる。なお、図８で説明した所定期間Ｐ１および所定時間Ｔ１についても、期間メッセージＤＭと同様のデータ構造のメッセージを、管理者のコンピュータから情報処理装置１０１に送信することで設定することができる。
【００９６】
観測部１２０２は、仮想スイッチＳＷｉから通過情報が通知された時間間隔を算出する。具体的には、例えば、観測部１２０２は、バースト検出期間Ｐ２が経過する度に、監視テーブル６００を参照して、バースト検出期間Ｐ２内に仮想スイッチＳＷｉからイベントメッセージＩＭが通知された時間間隔を算出する。
【００９７】
より詳細に説明すると、観測部１２０２は、監視テーブル６００を参照して、各フローの仮想スイッチＳＷｉにおけるバースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥの時間間隔をそれぞれ算出する。これにより、バースト検出期間Ｐ２において仮想スイッチＳＷｉに特定のフローのセグメントが入力された時間間隔を算出することができる。また、観測部１２０２は、監視テーブル６００を参照して、各フローの仮想スイッチＳＷｉにおけるバースト検出期間Ｐ２内のＯＵＴ＿ＴＩＭＥの時間間隔をそれぞれ算出する。これにより、バースト検出期間Ｐ２において仮想スイッチＳＷｉから特定のフローのセグメントが出力された時間間隔を算出することができる。
【００９８】
判断部１２０３は、算出された仮想スイッチＳＷｉから通過情報が通知された時間間隔に基づいて、仮想スイッチＳＷｉでバーストが発生したか否かを判断する。具体的には、例えば、判断部１２０３は、バースト検出期間Ｐ２におけるイベントメッセージＩＭが通知された時間間隔が所定時間Ｔ２以下の場合に、仮想スイッチＳＷｉでバーストが発生したと判断することにしてもよい。
【００９９】
より詳細に説明すると、例えば、判断部１２０３は、算出されたバースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥの時間間隔の平均値が所定時間Ｔ２以下の場合に、仮想スイッチＳＷｉでバーストが発生したと判断する。また、判断部１２０３は、算出されたバースト検出期間Ｐ２内のＯＵＴ＿ＴＩＭＥの時間間隔の平均値が所定時間Ｔ２以下の場合に、仮想スイッチＳＷｉでバーストが発生したと判断する。
【０１００】
なお、バースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥ（または、ＯＵＴ＿ＴＩＭＥ）の時間間隔の平均値は、例えば、バースト検出期間Ｐ２内の最初のＩＮ＿ＴＩＭＥから最後のＩＮ＿ＴＩＭＥまでの時間間隔を（Ｎ−１）で割ることで求めることができる。Ｎは、バースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥの数、すなわち、バースト検出期間Ｐ２に特定のフローのセグメントが仮想スイッチＳＷｉに入力された数である。
【０１０１】
また、仮想スイッチＳＷｉから通過情報が通知された時間間隔が一定の場合は、仮想スイッチＳＷｉでバーストが発生している可能性が低いといえる。このため、判断部１２０３は、仮想スイッチＳＷｉから通過情報が通知された時間間隔が一定であると判断した場合は、仮想スイッチＳＷｉでバーストが発生していないと判断することにしてもよい。
【０１０２】
具体的には、例えば、判断部１２０３は、算出されたバースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔がともに一定である場合に、仮想スイッチＳＷｉでバーストが発生していないと判断する。なお、時間間隔が一定であるか否かの判断は、例えば、バースト検出期間Ｐ２内の時間間隔の標準偏差や分散などの統計値をもとに判断される。
【０１０３】
一例として、監視情報６００−１を例に挙げると、判断部１２０３は、例えば、バースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔が一定の場合、仮想スイッチＳＷ１でバーストが発生していないと判断する。一方、判断部１２０３は、バースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥまたはＯＵＴ＿ＴＩＭＥの時間間隔が一定でなく、かつ、ＩＮ＿ＴＩＭＥまたはＯＵＴ＿ＴＩＭＥの時間間隔の平均値が所定時間Ｔ２以下の場合、仮想スイッチＳＷ１でバーストが発生したと判断する。なお、図６の例では、監視情報６００−１のＩＮ＿ＴＩＭＥおよびＯＵＴ＿ＴＩＭＥの各フィールドには、１つの時間しか表示されていないが、仮想スイッチＳＷ１をフローＦ１のセグメントが通過する度にタイムスタンプが順次追加されていく。
【０１０４】
また、判断部１２０３は、例えば、バースト検出期間Ｐ２内に仮想スイッチＳＷｉに入力された、あるいは、仮想スイッチＳＷｉから出力された特定のフローのセグメントの個数が閾値γ以上の場合に、仮想スイッチＳＷｉでバーストが発生したと判断することにしてもよい。閾値γは、任意に設定可能である。
【０１０５】
また、通信部１２０１は、仮想スイッチＳＷｉでバーストが発生したと判断された場合、仮想スイッチＳＷｉでバーストが発生したことを示す情報を出力する。出力形式としては、例えば、Ｉ／Ｆ４０３による外部装置への送信、メモリ４０２、ディスク４０５などの記憶装置への記憶、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
【０１０６】
具体的には、例えば、通信部１２０１は、管理者のコンピュータにバーストメッセージＢＭを送信することにしてもよい。バーストメッセージＢＭは、バーストが発生した仮想スイッチＳＷｉを示す情報である。ここで、バーストメッセージＢＭのデータ構造例について説明する。
【０１０７】
図１４は、バーストメッセージＢＭのデータ構造例を示す説明図である。図１４において、バーストメッセージＢＭは、ＢＰＤＵ１４０１を含む。ＢＰＤＵ１４０１は、バーストが発生した仮想スイッチＳＷｉを一意に識別する情報、例えば、ＳＷＩＤを含む。ＢＰＤＵ１４０１には、例えば、バーストを検出するために着目した特定のフローのフローＩＤや通信情報が含まれることにしてもよい。
【０１０８】
バーストメッセージＢＭによれば、情報処理装置１０１の管理者等は、仮想ネットワーク内のどこでバーストが発生しているのかを把握することができる。この結果、情報処理装置１０１の管理者等は、ＣＰＵ４０１の性能を高くしたり、バーストが発生している仮想スイッチＳＷｉのキューを長くしたり、仮想スイッチ数を増やしたりといった、バーストの発生を抑制するための対策をとることができる。
【０１０９】
（バーストの検出例）
つぎに、図１５〜図２０を用いて、バーストの検出例について説明する。ここでは、仮想スイッチＳＷ１〜ＳＷ３により仮想ネットワーク（仮想スイッチＳＷ１⇒仮想スイッチＳＷ２⇒仮想スイッチＳＷ３）が形成される場合を想定する。また、バースト検出期間Ｐ２（図１５〜図２０中、「所定時間間隔」と表記）を「２００［ｍｓ］」とし、所定時間Ｔ２を「マイクロ秒（μｓ）単位」とする。
【０１１０】
図１５は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（ＳＷ２の出力（ｏｕｔ）でバースト）である。図１５において、特定のフローであるフロー（Ａ）のセグメントが各仮想スイッチＳＷ１〜ＳＷ３から出力されたタイミングを示す点（各楕円内の点）がプロットされている。縦軸は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３から出力された時間間隔を示す（単位：μｓ）。横軸は、経過時間を示す（単位：ｍｓ）。
【０１１１】
図１５の例では、特定のフローであるフロー（Ａ）のセグメントが仮想スイッチＳＷ２から出力された時間間隔がμｓ単位で連続しており、バーストが発生している。以下、仮想スイッチＳＷ２のＯｕｔ側で発生したバーストを検出する際の情報処理装置１０１の動作例について説明する。
【０１１２】
図１６は、情報処理装置１０１の動作例を示す説明図（ＳＷ２の出力（ｏｕｔ）でバースト）である。図１６において、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３から接続情報とフロー情報とを受信する（ステップＳ１６０１）。つぎに、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３の接続情報とフロー情報とに基づいて、特定のフローとしてフロー（Ａ）を決定して、フローメッセージＦＭをバースト監視部７０２に通知する（ステップＳ１６０２）。
【０１１３】
バースト監視部７０２は、フローメッセージＦＭを受け付けると、仮想スイッチＳＷ１〜ＳＷ３にアクションメッセージＡＭを送信して、フロー（Ａ）のセグメントが通過したらイベントメッセージＩＭをバースト監視部７０２に通知するように設定する（ステップＳ１６０３）。
【０１１４】
各仮想スイッチＳＷ１〜ＳＷ３は、フロー（Ａ）のセグメントが通過したら、バースト監視部７０２にイベントメッセージＩＭを通知する（ステップＳ１６０４）。図１５の例では、バースト検出期間Ｐ２（２００［ｍｓ］）ごとに、フロー（Ａ）の３つのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過しており、その都度、バースト監視部７０２にイベントメッセージＩＭが通知される。
【０１１５】
バースト監視部７０２は、仮想スイッチＳＷ１〜ＳＷ３からイベントメッセージＩＭを受信すると、タイムスタンプを生成し、Ｉｎ／Ｏｕｔを判別して監視テーブル６００に記録する（ステップＳ１６０５）。バースト検出部７０３は、監視テーブル６００を参照して、バースト検出期間Ｐ２（２００［ｍｓ］）内の仮想スイッチＳＷ２におけるＯＵＴ＿ＴＩＭＥの時間間隔がμｓ単位で連続しているため、仮想スイッチＳＷ２でバーストが発生したと判断する（ステップＳ１６０６）。これにより、バースト検出期間Ｐ２の時間間隔で仮想スイッチＳＷ２のＯＵＴ側でバーストが発生していることを検出することができる。
【０１１６】
図１７は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（ＳＷ２（ｉｎ）でバースト）である。図１７において、特定のフローであるフロー（Ａ）のセグメントが各仮想スイッチＳＷ１〜ＳＷ３から出力されたタイミングを示す点（各楕円内の点）がプロットされている。
【０１１７】
図１７の例では、特定のフローであるフロー（Ａ）のセグメントが仮想スイッチＳＷ２に入力された時間間隔がμｓ単位で連続しており、バーストが発生している。以下、仮想スイッチＳＷ２のＩＮ側で発生したバーストを検出する際の情報処理装置１０１の動作例について説明する。
【０１１８】
図１８は、情報処理装置１０１の動作例を示す説明図（ＳＷ２（ｉｎ）でバースト）である。図１８において、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３から接続情報とフロー情報とを受信する（ステップＳ１８０１）。つぎに、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３の接続情報とフロー情報とに基づいて、特定のフローとしてフロー（Ａ）を決定して、フローメッセージＦＭをバースト監視部７０２に通知する（ステップＳ１８０２）。
【０１１９】
バースト監視部７０２は、フローメッセージＦＭを受け付けると、仮想スイッチＳＷ１〜ＳＷ３にアクションメッセージＡＭを送信して、フロー（Ａ）のセグメントが通過したらイベントメッセージＩＭをバースト監視部７０２に通知するように設定する（ステップＳ１８０３）。
【０１２０】
各仮想スイッチＳＷ１〜ＳＷ３は、フロー（Ａ）のセグメントが通過したら、バースト監視部７０２にイベントメッセージＩＭを通知する（ステップＳ１８０４）。図１７の例では、バースト検出期間Ｐ２（２００［ｍｓ］）ごとに、フロー（Ａ）の３つのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過しており、その都度、バースト監視部７０２にイベントメッセージＩＭが通知される。
【０１２１】
バースト監視部７０２は、仮想スイッチＳＷ１〜ＳＷ３からイベントメッセージＩＭを受信すると、タイムスタンプを生成し、Ｉｎ／Ｏｕｔを判別して監視テーブル６００に記録する（ステップＳ１８０５）。バースト検出部７０３は、監視テーブル６００を参照して、バースト検出期間Ｐ２（２００［ｍｓ］）内の仮想スイッチＳＷ２におけるＩＮ＿ＴＩＭＥの時間間隔がμｓ単位で連続しているため、仮想スイッチＳＷ２でバーストが発生したと判断する（ステップＳ１８０６）。これにより、バースト検出期間Ｐ２の時間間隔で仮想スイッチＳＷ２のＩＮ側でバーストが発生していることを検出することができる。
【０１２２】
図１９は、特定のフローのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過した時間間隔の一例を示す説明図（バーストなし）である。図１９において、特定のフローであるフロー（Ａ）のセグメントが各仮想スイッチＳＷ１〜ＳＷ３から出力されたタイミングを示す点（各楕円内の点）がプロットされている。
【０１２３】
図１９の例では、特定のフローであるフロー（Ａ）のセグメントが各仮想スイッチＳＷ１〜ＳＷ３から出力された時間間隔が一定であり、かつ、μｓ単位で連続しておらず、バーストが発生していない。以下、各仮想スイッチＳＷ１〜ＳＷ３のＯｕｔ側でバーストが発生していない場合の情報処理装置１０１の動作例について説明する。
【０１２４】
図２０は、情報処理装置１０１の動作例を示す説明図（バーストなし）である。図２０において、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３から接続情報とフロー情報とを受信する（ステップＳ２００１）。つぎに、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷ３の接続情報とフロー情報とに基づいて、特定のフローとしてフロー（Ａ）を決定して、フローメッセージＦＭをバースト監視部７０２に通知する（ステップＳ２００２）。
【０１２５】
バースト監視部７０２は、フローメッセージＦＭを受け付けると、仮想スイッチＳＷ１〜ＳＷ３にアクションメッセージＡＭを送信して、フロー（Ａ）のセグメントが通過したらイベントメッセージＩＭをバースト監視部７０２に通知するように設定する（ステップＳ２００３）。
【０１２６】
各仮想スイッチＳＷ１〜ＳＷ３は、フロー（Ａ）のセグメントが通過したら、バースト監視部７０２にイベントメッセージＩＭを通知する（ステップＳ２００４）。図１９の例では、バースト検出期間Ｐ２（２００［ｍｓ］）ごとに、フロー（Ａ）の３つのセグメントが各仮想スイッチＳＷ１〜ＳＷ３を通過しており、その都度、バースト監視部７０２にイベントメッセージＩＭが通知される。
【０１２７】
バースト監視部７０２は、仮想スイッチＳＷ１〜ＳＷ３からイベントメッセージＩＭを受信すると、タイムスタンプを生成し、Ｉｎ／Ｏｕｔを判別して監視テーブル６００に記録する（ステップＳ２００５）。バースト検出部７０３は、監視テーブル６００を参照して、バースト検出期間Ｐ２（２００［ｍｓ］）内の各仮想スイッチＳＷ１〜ＳＷ３におけるＯＵＴ＿ＴＩＭＥの時間間隔が一定であり、かつ、μｓ単位で連続していないため、バーストが発生していないと判断する（ステップＳ２００６）。これにより、バースト検出期間Ｐ２の時間間隔でバーストが発生していないことを確認することができる。
【０１２８】
（情報処理装置１０１の各種処理手順）
つぎに、図２１〜図２４を用いて、情報処理装置１０１の各種処理手順について説明する。まず、情報処理装置１０１のフロー決定処理手順について説明する。
【０１２９】
図２１および図２２は、情報処理装置１０１のフロー決定処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、情報処理装置１０１のフロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷｎから接続情報とフロー情報とを取得する（ステップＳ２１０１）。
【０１３０】
つぎに、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷｎから取得した接続情報とフロー情報とに基づいて、フローテーブル５００内の各フィールドに情報を設定する（ステップＳ２１０２）。ただし、この時点では、ＢｙｔｅｓおよびＡｇｉｎｇＣｏｕｎｔの各フィールドは「−（Ｎｕｌｌ）」である。
【０１３１】
つぎに、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷｎから、各仮想スイッチＳＷ１〜ＳＷｎをセグメントが通過したフローの通信量を取得する（ステップＳ２１０３）。そして、フロー決定部７０１は、各仮想スイッチＳＷ１〜ＳＷｎから取得したフローの通信量を、フローテーブル５００内の対応するフロー管理情報のＢｙｔｅｓフィールドに設定する（ステップＳ２１０４）。
【０１３２】
つぎに、フロー決定部７０１は、ｔｉｍｅｒに所定時間Ｔ１を設定するとともに、ｔ＿ｃｏｕｎｔを設定する（ステップＳ２１０５）。ｔｉｍｅｒは、時間を計るためのモジュールである。ｔ＿ｃｏｕｎｔは、ｔｉｍｅｒの実行回数に相当する。ｔ＿ｃｏｕｎｔとしては、例えば、所定期間Ｐ１を所定時間Ｔ１で割った値が設定される。例えば、所定期間Ｐ１を「１分」とし、所定時間Ｔ１を「５秒」とすると、ｔ＿ｃｏｕｎｔとして「１２（＝１分／５秒）」が設定される。
【０１３３】
つぎに、フロー決定部７０１は、ｔ＿ｃｏｕｎｔが「０」であるか否かを判断する（ステップＳ２１０６）。ここで、ｔ＿ｃｏｕｎｔが「０」の場合（ステップＳ２１０６：Ｙｅｓ）、フロー決定部７０１は、フローテーブル５００を参照して、特定のフローに決定する（ステップＳ２１０７）。そして、フロー決定部７０１は、特定のフローのフロー情報をメッセージ化したフローメッセージＦＭを生成してバースト監視部７０２に出力し（ステップＳ２１０８）、本フローチャートによる一連の処理を終了する。
【０１３４】
また、ステップＳ２１０６において、ｔ＿ｃｏｕｎｔが「０」ではない場合（ステップＳ２１０６：Ｎｏ）、フロー決定部７０１は、図２２に示すステップＳ２２０１に移行する。
【０１３５】
図２２のフローチャートにおいて、まず、フロー決定部７０１は、ｔｉｍｅｒが「０」となったか否かを判断する（ステップＳ２２０１）。ここで、フロー決定部７０１は、ｔｉｍｅｒが「０」となるのを待つ（ステップＳ２２０１：Ｎｏ）。そして、フロー決定部７０１は、ｔｉｍｅｒが「０」となった場合（ステップＳ２２０１：Ｙｅｓ）、各仮想スイッチＳＷ１〜ＳＷｎから、各仮想スイッチＳＷ１〜ＳＷｎをセグメントが通過するフローの通信量を取得する（ステップＳ２２０２）。
【０１３６】
つぎに、フロー決定部７０１は、フローテーブル５００を参照して、前回からのフローの通信量の増加分を算出する（ステップＳ２２０３）。そして、フロー決定部７０１は、算出した増加分に基づいて、前回からフローの通信量が増加したか否かを判断する（ステップＳ２２０４）。
【０１３７】
ここで、前回からフローの通信量が増加した場合（ステップＳ２２０４：Ｙｅｓ）、フロー決定部７０１は、取得したフローの通信量で、フローテーブル５００内の対応するフロー管理情報のＢｙｔｅｓフィールドを更新して（ステップＳ２２０５）、ステップＳ２２０７に移行する。
【０１３８】
一方、前回からフローの通信量が増加していない場合（ステップＳ２２０４：Ｎｏ）、フローテーブル５００内の対応するフロー管理情報のＡｇｉｎｇＣｏｕｎｔをインクリメントする（ステップＳ２２０６）。なお、ステップＳ２２０３〜Ｓ２２０６の処理は、フローテーブル５００内の各レコードのフローごとに行われる。
【０１３９】
つぎに、フロー決定部７０１は、ｔｉｍｅｒを初期化する（ステップＳ２２０７）。そして、フロー決定部７０１は、ｔ＿ｃｏｕｎｔをデクリメントして（ステップＳ２２０８）、図２１に示したステップＳ２１０６に戻る。なお、ステップＳ２２０４において、フロー決定部７０１は、前回からフローの通信量が所定値ｘ以上増加していない場合に、前回からフローの通信量が増加していないと判断することにしてもよい。所定値ｘは、任意に設定可能である。
【０１４０】
これにより、所定期間Ｐ１の間、各スイッチＳＷ１〜ＳＷｎにおけるフローの流量を観測して、他のフローよりも通信量や通信頻度が高くバーストが発生する可能性が高いといえるフローを、特定のフローに決定することができる。
【０１４１】
つぎに、情報処理装置１０１のバースト監視処理手順について説明する。
【０１４２】
図２３は、情報処理装置１０１のバースト監視処理手順の一例を示すフローチャートである。図２３のフローチャートにおいて、まず、情報処理装置１０１のバースト監視部７０２は、フロー決定部７０１からフローメッセージＦＭを受け付けると、フローメッセージＦＭに含まれるフローＩＤと、当該フローＩＤに対応するＳｒｃ．ＳＷＩＤとを、監視テーブル６００内のフローＩＤおよびＳＷＩＤの各フィールドに設定する（ステップＳ２３０１）。ただし、この時点では、ＩＮ＿ＴＩＭＥおよびＯＵＴ＿ＴＩＭＥの各フィールドは「−（Ｎｕｌｌ）」である。
【０１４３】
つぎに、バースト監視部７０２は、フローメッセージＦＭに基づいて、各仮想スイッチＳＷｉに設定するアクションメッセージＡＭを生成する（ステップＳ２３０２）。そして、バースト監視部７０２は、生成したアクションメッセージＡＭを各仮想スイッチＳＷｉに送信する（ステップＳ２３０３）。この結果、仮想スイッチＳＷｉにおいて、特定のフローのセグメントが通過したら、情報処理装置１０１のバースト監視部７０２にイベントメッセージＩＭを通知するように設定される。
【０１４４】
つぎに、バースト監視部７０２は、仮想スイッチＳＷｉからイベントメッセージＩＭを受信したか否かを判断する（ステップＳ２３０４）。ここで、バースト監視部７０２は、イベントメッセージＩＭを受信するのを待つ（ステップＳ２３０４：Ｎｏ）。そして、バースト監視部７０２は、イベントメッセージＩＭを受信した場合（ステップＳ２３０４：Ｙｅｓ）、タイムスタンプを生成する（ステップＳ２３０５）。
【０１４５】
つぎに、バースト監視部７０２は、イベントメッセージＩＭに含まれる仮想マシンＳＷｉのＳＷＩＤと特定のフローのフローＩＤとの組み合わせに対応する監視テーブル６００内の監視情報を特定する（ステップＳ２３０６）。そして、バースト監視部７０２は、イベントメッセージＩＭに含まれるＩｎ／Ｏｕｔフラグ１１０１を参照して、生成したタイムスタンプを、特定した監視情報のＩＮ＿ＴＩＭＥまたはＯＵＴ＿ＴＩＭＥに記録する（ステップＳ２３０７）。
【０１４６】
つぎに、バースト監視部７０２は、バースト監視処理を終了するか否かを判断する（ステップＳ２３０８）。バースト監視処理の終了タイミングは、例えば、情報処理装置１０１の管理者により指定される。ここで、バースト監視処理を終了しない場合（ステップＳ２３０８：Ｎｏ）、バースト監視部７０２は、ステップＳ２３０４に戻る。
【０１４７】
一方、バースト監視処理を終了する場合（ステップＳ２３０８：Ｙｅｓ）、バースト監視部７０２は、本フローチャートによる一連の処理を終了する。これにより、特定のフローのセグメントが仮想スイッチＳＷｉを通過（入力または出力）した時間を、監視テーブル６００に記録することができる。
【０１４８】
つぎに、情報処理装置１０１のバースト検出処理手順について説明する。
【０１４９】
図２４は、情報処理装置１０１のバースト検出処理手順の一例を示すフローチャートである。図２４のフローチャートにおいて、まず、情報処理装置１０１のバースト検出部７０３は、バースト検出期間Ｐ２をｔｉｍｅｒに設定する（ステップＳ２４０１）。つぎに、バースト検出部７０３は、ｔｉｍｅｒが「０」となったか否かを判断する（ステップＳ２４０２）。
【０１５０】
ここで、バースト検出部７０３は、ｔｉｍｅｒが「０」となるのを待つ（ステップＳ２４０２：Ｎｏ）。そして、バースト検出部７０３は、ｔｉｍｅｒが「０」となった場合（ステップＳ２４０２：Ｙｅｓ）、監視テーブル６００を参照して、各フローの仮想スイッチＳＷｉにおけるバースト検出期間Ｐ２内のＩＮ＿ＴＩＭＥの時間間隔を算出する（ステップＳ２４０３）。
【０１５１】
つぎに、バースト検出部７０３は、監視テーブル６００を参照して、各フローの仮想スイッチＳＷｉにおけるバースト検出期間Ｐ２内のＯＵＴ＿ＴＩＭＥの時間間隔を算出する（ステップＳ２４０４）。そして、バースト検出部７０３は、算出した各フローのＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔に基づいて、ＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔が一定であるか否かを判断する（ステップＳ２４０５）。
【０１５２】
ここで、ＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔が一定の場合（ステップＳ２４０５：Ｙｅｓ）、バースト検出部７０３は、仮想スイッチＳＷｉでバーストが発生していないと判断して（ステップＳ２４０６）、ステップＳ２４１０に移行する。
【０１５３】
一方、ＩＮ＿ＴＩＭＥまたはＯＵＴ＿ＴＩＭＥの少なくともいずれかの時間間隔が一定でない場合（ステップＳ２４０５：Ｎｏ）、バースト検出部７０３は、ＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔の平均値が所定時間Ｔ２以下であるか否かを判断する（ステップＳ２４０７）。ここで、ＩＮ＿ＴＩＭＥ、ＯＵＴ＿ＴＩＭＥの時間間隔の平均値が所定時間Ｔ２より大きい場合（ステップＳ２４０７：Ｎｏ）、バースト検出部７０３は、ステップＳ２４０６に移行する。
【０１５４】
一方、ＩＮ＿ＴＩＭＥまたはＯＵＴ＿ＴＩＭＥの少なくともいずれかの時間間隔の平均値が所定時間Ｔ２以下の場合（ステップＳ２４０７：Ｙｅｓ）、バースト検出部７０３は、仮想スイッチＳＷｉでバーストが発生したと判断する（ステップＳ２４０８）。そして、バースト検出部７０３は、管理者のコンピュータに、仮想スイッチＳＷｉでバーストが発生したことを示すバーストメッセージＢＭを通知する（ステップＳ２４０９）。
【０１５５】
つぎに、バースト検出部７０３は、バースト検出処理を終了するか否かを判断する（ステップＳ２４１０）。バースト検出処理の終了タイミングは、例えば、情報処理装置１０１の管理者により指定される。ここで、バースト検出処理を終了しない場合（ステップＳ２４１０：Ｎｏ）、バースト検出部７０３は、ｔｉｍｅｒを初期化して（ステップＳ２４１１）、ステップＳ２４０２に戻る。
【０１５６】
一方、バースト検出処理を終了する場合（ステップＳ２４１０：Ｙｅｓ）、バースト検出部７０３は、本フローチャートによる一連の処理を終了する。これにより、バースト検出期間Ｐ２の時間間隔で、各仮想スイッチＳＷｉでバーストが発生したか否かを判断することができる。また、仮想スイッチＳＷｉでバーストが発生したと判断した場合には、その旨を情報処理装置１０１の管理者に通知することができる。
【０１５７】
以上説明したように、実施の形態にかかる情報処理装置１０１によれば、仮想ネットワークを形成する仮想スイッチＳＷｉに対して、特定のフローのセグメントが通過したら通過情報（例えば、イベントメッセージＩＭ）を通知するように設定することができる。また、情報処理装置１０１によれば、仮想スイッチＳＷｉから通過情報が通知されると、通過情報が通知された時間を示すタイムスタンプを生成して監視テーブル６００に記録することができる。そして、情報処理装置１０１によれば、監視テーブル６００に記録された時間（タイムスタンプ）に基づいて、仮想スイッチＳＷｉでバーストが発生したか否かを判断することができる。
【０１５８】
これにより、バースト検出にかかる処理負荷を抑制して、実時間でのバースト検出を行うことが可能となる。例えば、特定のフローのセグメントに着目することで、全てのパケットや全てのフローのセグメントに着目する場合に比べて、バースト検出にかかる処理負荷を削減することができる。また、各仮想スイッチＳＷｉにおいて、特定のフローのセグメントが通過した際にタイムスタンプを生成したり、ヘッダにタイムスタンプを挿入したりする処理が必要ない。このため、バースト検出のために各仮想スイッチＳＷｉで多くのＣＰＵリソースが消費されるのを防ぐことができる。また、パケットのヘッダにタイムスタンプを挿入するといったことを行わないため、仮想スイッチの数が増えても、パケット分割やＭＴＵの再設定等を行わなくてもよい。
【０１５９】
また、情報処理装置１０１によれば、バースト検出期間Ｐ２における仮想スイッチＳＷｉから通過情報が通知された時間間隔が所定時間Ｔ２（例えば、数マイクロ秒）以下の場合に、仮想スイッチＳＷｉでバーストが発生したと判断することができる。これにより、実環境でバーストが発生した際と同様の挙動（ビヘイビア）が生じたときに、バーストが発生したと判断することができ、バーストの検出精度を向上させることができる。
【０１６０】
また、情報処理装置１０１によれば、バースト検出期間Ｐ２における仮想スイッチＳＷｉから通過情報が通知された時間間隔が一定である場合には、仮想スイッチＳＷｉでバーストが発生していないと判断することができる。これにより、仮想スイッチＳＷｉでの通信頻度が一定でバーストが発生している可能性が低いときは、仮想スイッチＳＷｉでバーストが発生していないと判断することができる。
【０１６１】
また、情報処理装置１０１によれば、バースト検出期間Ｐ２（例えば、２００ミリ秒）ごとに、仮想スイッチＳＷｉでバーストが発生したか否かを判断することができる。これにより、実環境で発生したバーストの時間間隔を考慮して、バースト検出を繰り返し行うことができる。
【０１６２】
また、情報処理装置１０１によれば、各仮想スイッチＳＷｉから、仮想スイッチＳＷｉをセグメントが通過したフローの通信量を定期的に取得し、各仮想スイッチＳＷｉから取得したフローの通信量の時系列変化に基づいて、特定のフローを決定することができる。これにより、各スイッチＳＷｉにおけるフローの流量を観測して、他のフローよりも通信量や通信頻度が高くバーストが発生する可能性が高いといえるフローを、特定のフローに決定することができる。
【０１６３】
また、情報処理装置１０１によれば、仮想スイッチＳＷｉでバーストが発生したと判断した場合、仮想スイッチＳＷｉでバーストが発生したことを示す情報（例えば、バーストメッセージＢＭ）を出力することができる。これにより、仮想スイッチＳＷｉでバーストが発生したと判断した場合には、その旨を情報処理装置１０１の管理者等に通知することができる。
【０１６４】
また、情報処理装置１０１によれば、特定のフローのセグメントが、仮想スイッチＳＷｉに入力された時間間隔、または、仮想スイッチＳＷｉから出力された時間間隔が、所定時間Ｔ２以下の場合に、仮想スイッチＳＷｉでバーストが発生したと判断することができる。これにより、仮想スイッチＳＷｉのＩＮ側またはＯＵＴ側それぞれで発生するバーストを検出することができる。
【０１６５】
これらのことから、情報処理装置１０１によれば、ＣＰＵ負荷を抑えて実時間でのバースト検出を実現することができる。これにより、情報処理装置１０１の管理者等は、仮想ネットワーク内でバーストが発生した際に、バーストが発生したこと、および、その発生箇所を特定することができ、バーストに対する対応を迅速に行うことが可能となる。
【０１６６】
なお、本実施の形態で説明したバースト検出方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本バースト検出プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本バースト検出プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６８】
（付記１）特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
処理をコンピュータに実行させることを特徴とするバースト検出プログラム。
【０１６９】
（付記２）前記判断する処理は、
所定期間における前記通過情報が通知された時間間隔が所定時間以下の場合に、前記仮想スイッチでバーストが発生したと判断する、ことを特徴とする付記１に記載のバースト検出プログラム。
【０１７０】
（付記３）前記判断する処理は、
所定期間における前記通過情報が通知された時間間隔が一定である場合には、前記仮想スイッチでバーストが発生していないと判断する、ことを特徴とする付記１または２に記載のバースト検出プログラム。
【０１７１】
（付記４）仮想ネットワークを形成する各仮想スイッチから、当該各仮想スイッチをセグメントが通過したフローの通信量を定期的に取得し、
前記各仮想スイッチから取得した前記フローの通信量の時系列変化に基づいて、前記特定のフローを決定する、
処理を前記コンピュータに実行させることを特徴とする付記１〜３のいずれか一つに記載のバースト検出プログラム。
【０１７２】
（付記５）前記仮想スイッチでバーストが発生したと判断した場合、前記仮想スイッチでバーストが発生したことを示す情報を出力する、処理を前記コンピュータに実行させることを特徴とする付記１〜４のいずれか一つに記載のバースト検出プログラム。
【０１７３】
（付記６）前記通過情報は、前記特定のフローのセグメントが、前記仮想スイッチに入力されたのか、または、前記仮想スイッチから出力されたのかを示す情報を含み、
前記判断する処理は、
前記特定のフローのセグメントが、前記仮想スイッチに入力された時間間隔、または、前記仮想スイッチから出力された時間間隔が、前記所定時間以下の場合に、前記仮想スイッチでバーストが発生したと判断する、ことを特徴とする付記２に記載のバースト検出プログラム。
【０１７４】
（付記７）前記判断する処理は、
前記所定期間ごとに、前記仮想スイッチでバーストが発生したか否かを判断する、ことを特徴とする付記２または３に記載のバースト検出プログラム。
【０１７５】
（付記８）特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
処理をコンピュータが実行することを特徴とするバースト検出方法。
【０１７６】
（付記９）特定のフローのセグメントが仮想スイッチを通過したら、前記特定のフローのセグメントが通過したことを示す通過情報を通知するように前記仮想スイッチに設定し、
前記仮想スイッチから前記通過情報が通知されると、前記通過情報が通知された時間を記憶部に記録し、
前記記憶部に記録された前記通過情報が通知された時間に基づいて、前記仮想スイッチでバーストが発生したか否かを判断する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１７７】
１０１  情報処理装置
１０２  他の情報処理装置
１１０  ネットワーク
１２０  制御部
１３０  記憶部
２０１，２０２，２０３，２０４  仮想スイッチ
２１１，２１２，２１３，２１４，２１５，２１６，２１７，２１８，２１９  仮想ポート
３００  グラフ
４００  バス
４０１  ＣＰＵ
４０２  メモリ
４０３  Ｉ／Ｆ
４０４  ディスクドライブ
４０５  ディスク
５００  フローテーブル
６００  監視テーブル
７０１  フロー決定部
７０２  バースト監視部
７０３  バースト検出部
８０１，９０１，１２０１  通信部
８０２  解析部
８０３，１２０２  観測部
８０４  決定部
９０２  設定部
９０３  記録部
１２０３  判断部
ＡＭ  アクションメッセージ
ＢＭ  バーストメッセージ
ＦＭ  フローメッセージ
ＩＭ  イベントメッセージ
【図１】
2018191218.tif 000003
【図２】
2018191218.tif 000004
【図３】
2018191218.tif 000005
【図４】
2018191218.tif 000006
【図５】
2018191218.tif 000007
【図６】
2018191218.tif 000008
【図７】
2018191218.tif 000009
【図８】
2018191218.tif 000010
【図９】
2018191218.tif 000011
【図１０】
2018191218.tif 000012
【図１１】
2018191218.tif 000013
【図１２】
2018191218.tif 000014
【図１３】
2018191218.tif 000015
【図１４】
2018191218.tif 000016
【図１５】
2018191218.tif 000017
【図１６】
2018191218.tif 000018
【図１７】
2018191218.tif 000019
【図１８】
2018191218.tif 000020
【図１９】
2018191218.tif 000021
【図２０】
2018191218.tif 000022
【図２１】
2018191218.tif 000023
【図２２】
2018191218.tif 000024
【図２３】
2018191218.tif 000025
【図２４】
2018191218.tif 000026