(57)【要約】【課題】ネットワークにおいて、転送遅延が増加する原因となる箇所を特定する。【解決手段】ネットワーク装置を介して接続される端末間の通信が正常な場合、端末間の通信の初期転送遅延を取得し、端末間の通信の転送遅延の異常通知を受信した場合、転送遅延が所定の閾値を超えた通信が通過した可能性があるネットワーク装置を抽出し、抽出されたネットワーク装置を通過する通信の経路から、経路に含まれるネットワーク装置の数に従って、測定用経路を抽出し、測定用経路を通過する通信の転送遅延を取得し、測定用経路における取得された転送遅延に基づいて、原因ネットワーク装置の候補を推定し、推定された原因ネットワーク装置の候補を含む検証用経路を通過する通信の転送遅延を取得し、検証用経路の各々における取得された転送遅延と、初期転送遅延とに基づいて、推定された原因ネットワーク装置の候補から、原因ネットワーク装置を特定する。【選択図】図１
2014075668.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワーク装置と接続されるサーバであって、
前記サーバは、
前記複数のネットワーク装置の各々を介して接続される端末間の通信が正常な場合、前記端末間の通信の転送遅延を初期転送遅延として取得する初期情報取得部と、
前記端末間の通信の転送遅延が所定の閾値を超えたことを示す異常通知を受信した場合、前記転送遅延が所定の閾値を超えた原因の前記ネットワーク装置である原因ネットワーク装置を特定する遅延箇所特定部と、を備え、
前記遅延箇所特定部は、
前記異常通知を受信した場合、前記転送遅延が所定の閾値を超えた通信が通過した可能性がある前記ネットワーク装置を少なくとも一つ抽出し、
前記抽出されたネットワーク装置の少なくとも一つを通過する前記複数の通信の各々の経路から、前記複数の経路の各々に含まれる前記ネットワーク装置の数に従って、複数の測定用経路を抽出し、
前記複数の測定用経路の各々を通過する前記通信の転送遅延を取得し、
前記複数の測定用経路の各々における前記取得された転送遅延に基づいて、前記原因ネットワーク装置の候補を推定し、
前記推定された原因ネットワーク装置の候補を含む複数の検証用経路を通過する前記通信の転送遅延を取得し、
前記複数の検証用経路の各々における前記取得された転送遅延と、前記初期転送遅延とに基づいて、前記推定された原因ネットワーク装置の候補から、前記原因ネットワーク装置を特定することを特徴とするサーバ。
【請求項２】
請求項１に記載のサーバであって、
前記サーバは、前記複数のネットワーク装置及び前記複数の端末の接続情報を含むトポロジ情報を保持し、
前記初期情報取得部は、
前記端末間の通信が正常状態であることを示す情報を取得した場合、前記複数の端末から、二つの前記端末を選択し、
前記選択された二つの端末間のすべての経路を、前記トポロジ情報から抽出し、
前記抽出された二つの端末間の経路の各々を通過する前記通信の転送遅延を、前記初期転送遅延として取得することを特徴とするサーバ。
【請求項３】
請求項１又は２に記載のサーバであって、
前記遅延箇所特定部は、
前記測定用経路の各々における前記取得された転送遅延に基づいて、前記転送遅延が大きい前記測定用経路が共通して含む前記ネットワーク装置を抽出し、
前記抽出されたネットワーク装置を、前記原因ネットワーク装置の候補に推定することを特徴とするサーバ。
【請求項４】
請求項３に記載のサーバであって、
前記遅延箇所特定部は、
前記検証用経路の各々における前記取得された転送遅延が前記初期転送遅延より大きい前記検証用経路が、前記複数の検証用経路に占める割合を算出し、
前記算出された割合に従って、前記推定された原因ネットワーク装置の候補から、前記原因ネットワーク装置を特定することを特徴とするサーバ。
【請求項５】
請求項４に記載のサーバであって、
前記原因ネットワーク装置を通過する前記通信が、前記原因ネットワーク装置を含まない経路を通過するように、前記複数のネットワーク装置の少なくとも一つの設定を変更する遅延回避設定部を、さらに備え、
前記遅延回避設定部は、
前記原因ネットワーク装置を通過する通信の代替経路を、前記端末間のすべての経路から抽出し、
前記抽出された代替経路を通過する前記通信の転送遅延を取得し、
前記原因ネットワーク装置を通過する通信が前記代替経路を通過するように前記複数のネットワーク装置の少なくとも一つの設定を変更するか否かを、前記代替経路における前記取得された転送遅延と、前記原因ネットワーク装置を通過する通信の転送遅延とに基づいて、決定することを特徴とするサーバ。
【請求項６】
請求項２に記載のサーバであって、
前記サーバは、前記複数のネットワーク装置の各々に設定される仮想ネットワークの情報を含むネットワーク情報を保持し、
前記初期情報取得部は、
前記抽出された二つの端末間の経路の各々が一意の経路として含まれる仮想ネットワークが設定されるか否かを、前記ネットワーク情報に基づいて判定し、
前記抽出された二つの端末間の経路のうち、前記仮想ネットワークが設定されていない前記経路がある場合、当該経路に含まれる前記ネットワーク装置に、当該経路を一意の経路として含む仮想ネットワークを設定し、
前記設定された仮想ネットワークを用いた通信の転送遅延を、前記抽出された二つの端末間の経路の転送遅延として取得することを特徴とするサーバ。
【請求項７】
複数のネットワーク装置と接続されるサーバによる、ネットワーク管理方法であって、
前記サーバは、プログラムを実行するプロセッサを備え、
前記方法は、
前記プロセッサが、前記複数のネットワーク装置の各々を介して接続される端末間の通信が正常な場合、前記端末間の通信の転送遅延を初期転送遅延として取得する初期情報取得手順と、
前記プロセッサが、前記端末間の通信の転送遅延が所定の閾値を超えたことを示す異常通知を受信した場合、前記転送遅延が所定の閾値を超えた原因の前記ネットワーク装置である原因ネットワーク装置を特定する遅延箇所特定手順と、を含み、
前記遅延箇所特定手順は、
前記異常通知を受信した場合、前記転送遅延が所定の閾値を超えた通信が通過した可能性がある前記ネットワーク装置を少なくとも一つ抽出する手順と、
前記抽出されたネットワーク装置の少なくとも一つを通過する前記複数の通信の各々の経路から、前記複数の経路の各々に含まれる前記ネットワーク装置の数に従って、複数の測定用経路を抽出する手順と、
前記複数の測定用経路の各々を通過する前記通信の転送遅延を取得する手順と、
前記複数の測定用経路の各々における前記取得された転送遅延に基づいて、前記原因ネットワーク装置の候補を推定する手順と、
前記推定された原因ネットワーク装置の候補を含む複数の検証用経路を通過する前記通信の転送遅延を取得する手順と、
前記複数の検証用経路の各々における前記取得された転送遅延と、前記初期転送遅延とに基づいて、前記推定された原因ネットワーク装置の候補から、前記原因ネットワーク装置を特定する手順と、を含むことを特徴とするネットワーク管理方法。
【請求項８】
請求項７に記載のネットワーク管理方法であって、
前記サーバは、前記複数のネットワーク装置及び前記複数の端末の接続情報を含むトポロジ情報を保持し、
前記初期情報取得手順は、
前記端末間の通信が正常状態であることを示す情報を取得した場合、前記複数の端末から、二つの前記端末を選択する手順と、
前記選択された二つの端末間のすべての経路を、前記トポロジ情報から抽出する手順と、
前記抽出された二つの端末間の経路の各々を通過する前記通信の転送遅延を、前記初期転送遅延として取得する手順と、を含むことを特徴とするネットワーク管理方法。
【請求項９】
請求項７又は８に記載のネットワーク管理方法であって、
前記遅延箇所特定手順は、
前記測定用経路の各々における前記取得された転送遅延に基づいて、前記転送遅延が大きい前記測定用経路が共通して含む前記ネットワーク装置を抽出する手順と、
前記抽出されたネットワーク装置を、前記原因ネットワーク装置の候補に推定する手順と、を含むことを特徴とするネットワーク管理方法。
【請求項１０】
請求項９に記載のネットワーク管理方法であって、
前記遅延箇所特定手順は、
前記検証用経路の各々における前記取得された転送遅延が前記初期転送遅延より大きい前記検証用経路が、前記複数の検証用経路に占める割合を算出する手順と、
前記算出された割合に従って、前記推定された原因ネットワーク装置の候補から、前記原因ネットワーク装置を特定する手順と、を含むことを特徴とするネットワーク管理方法。
【請求項１１】
請求項１０に記載のネットワーク管理方法であって、
前記方法は、前記プロセッサが、前記原因ネットワーク装置を通過する前記通信が、前記原因ネットワーク装置を含まない経路を通過するように、前記複数のネットワーク装置の少なくとも一つの設定を変更する遅延回避設定手順を、さらに含み、
前記遅延回避設定手順は、
前記原因ネットワーク装置を通過する通信の代替経路を、前記端末間のすべての経路から抽出する手順と、
前記抽出された代替経路を通過する前記通信の転送遅延を取得する手順と、
前記原因ネットワーク装置を通過する通信が前記代替経路を通過するように前記複数のネットワーク装置の少なくとも一つの設定を変更するか否かを、前記代替経路における前記取得された転送遅延と、前記原因ネットワーク装置を通過する通信の転送遅延とに基づいて、決定する手順と、を含むことを特徴とするネットワーク管理方法。
【請求項１２】
請求項８に記載のネットワーク管理方法であって、
前記サーバは、前記複数のネットワーク装置の各々に設定される仮想ネットワークの情報を含むネットワーク情報を保持し、
前記初期情報取得手順は、
前記抽出された二つの端末間の経路の各々が一意の経路として含まれる仮想ネットワークが設定されるか否かを、前記ネットワーク情報に基づいて判定する手順と、
前記抽出された二つの端末間の経路のうち、前記仮想ネットワークが設定されていない前記経路がある場合、当該経路に含まれる前記ネットワーク装置に、当該経路を一意の経路として含む仮想ネットワークを設定する手順と、
前記設定された仮想ネットワークを用いた通信の転送遅延を、前記抽出された二つの端末間の経路の転送遅延として取得する手順と、を含むことを特徴とするネットワーク管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバに関する。
【背景技術】
【０００２】
ＬＡＮなどに代表されるネットワークでは、ある機器から別の機器へのパケット転送において、そのパケットが通過する経路が複数存在することがある。これは、ネットワークにおけるトラヒック分散、及び、ネットワークの可用性をユーザに提供するためである。複数の経路が存在するネットワークでは、ネットワーク内の中継装置が経路情報などを相互に交換することにより、ネットワーク内のパケットの経路が設定される。
【０００３】
しかし、このような経路情報の交換はネットワーク内の中継装置によって行われるため、ネットワークに流れるパケットがどの経路を通過したかを把握することはユーザにとって困難である。中継装置がレイヤ３スイッチ機器である場合、ユーザは、中継装置が有するｔｒａｃｅｒｏｕｔｅなどのツールを用いることができる。しかし、中継装置がレイヤ２スイッチ機器である場合、中継装置には経路を調査するツールが与えられていないため、ユーザが経路を把握することは困難である。
【０００４】
ところで、近年は仮想ネットワーク技術が進んでおり、例えば、ＶＬＡＮ技術、又は、ＯｐｅｎＦｌｏｗ技術等による仮想ネットワークの構築が可能になった。仮想ネットワークは、論理的に構築されたネットワークであり、いわば、物理ネットワークの経路の一部によって構成されるサブネットワークでもある。また、一つの物理ネットワークには、複数の仮想ネットワークが構築されてもよい。
【０００５】
仮想ネットワークの可用性をユーザに提供するため、物理ネットワークと同じく、仮想ネットワークにおいても経路は複数存在してもよい。また、仮想ネットワークのスパニングツリーを構築するプロトコル、例えば、ＰＶＳＴなどのプロトコルが、仮想ネットワークの構築に用いられた場合、仮想ネットワークごとに異なるツリー構造が設定される。このようなツリー構造によって設定された場合、各仮想ネットワークによってどのような経路を通るかが異なるため、ユーザにとってパケットの経路を把握することが困難となる。
【０００６】
また、近年ネットワークで通信されるデータの多様化により、スループット、及び／又は、転送遅延などの保証が必要なデータ通信も登場してきた。スループット及び転送遅延の要件が存在するデータ通信として、例えば、動画配信、ＴＶ会議、又は、機器制御等のサービスのためのデータ通信がある。
【０００７】
ここで、データ通信の要件の一つである転送遅延とは、送信側アプリケーションがパケットを送信した時刻から、受信側アプリケーションがパケットを受信する時刻までの時間である。データ通信が転送遅延の要件を満たさない場合、例えば、ＴＶ会議を提供するネットワークにおいて、コミュニケーションがスムーズにいかないなどの問題が発生する。また、データ通信が転送遅延の要件を満たさない場合、例えば、機器制御を提供するネットワークにおいて、緊急状態の制御タイミングが遅れてしまうなどの問題が発生する。
【０００８】
一般的には、転送遅延の要件が厳しいサービスを提供する場合、ネットワークは、その転送遅延の要件を守ることができるように、構成又はトラヒック等について当初から設計される。しかし、ネットワークのトラヒック量の増加などにより、ネットワークの転送遅延が増加することがある。このため、ネットワークが転送遅延の要件を満たさない場合、ユーザは、まず、その原因となる箇所を把握する必要がある。
【０００９】
しかし、前述のように、ネットワークの中継装置がレイヤ２スイッチ機器である場合等、パケットの経路が不明な環境では、転送遅延超過の原因となる箇所の把握が困難となる。また、ネットワークのスイッチ故障などの障害が発生した場合、近隣のスイッチが、障害が発生したことを通知する。しかし、転送遅延の要件を満たさないという障害は、エンド―エンド間で検出されるため、アプリケーションによって検出されることが多く、障害が発生した箇所の特定もアプリケーションレベルで行われる必要がある。
【００１０】
この課題に関連して、ネットワークの障害箇所を特定するための方法が提案されている（例えば、特許文献１参照）。
【００１１】
特許文献１では、複数の経路が存在するネットワークにおいて、ＶＬＡＮを用いてネットワークの経路が一意に定まる論理ネットワーク（ツリー構造）を数種類定義する。そして、管理サーバは各論理ネットワークに対してｐｉｎｇツールを用いてネットワーク内の装置に対して生存確認を行い、その結果をもとにネットワーク障害箇所を特定する（特許文献１の段落［０００４］、［０００７］〜［００１２］、及び、［００３０］〜［００４１］等参照）。
【００１２】
また、ネットワーク内を流れるパケットが上りと下りとの各通信において経路が異なるために障害区間の特定が困難である問題を解決する方法が提案されている（例えば、特許文献２参照）。特許文献２では、ネットワーク内のルータのルーティングテーブルの情報を書き換えることによって、上りと下りとの経路を同じ経路に変更する。そして、これによって、障害区間の特定を容易にする（特許文献２の段落［０００４］〜［００１３］等参照）。
【００１３】
また、ネットワークのトラヒック情報を収集することで、ネットワークの輻輳箇所を特定する方法が提案されている（例えば、特許文献３参照）。特許文献３では、ＴＣＰのシーケンス番号、再送回数、及び、遅延のゆらぎといった情報を収集する。そして、送信側ネットワーク、受信側ネットワーク、及び、バックボーンに関して、それぞれ輻輳が発生した場合のプロファイルと収集された情報とを比較することで、どのネットワークに輻輳が発生したかを特定する（特許文献３の段落［００３３］〜［００４０］等参照）。
【００１４】
他にも、ネットワークトポロジ及びフロー情報をもとに、ネットワーク品質が劣化している箇所を特定する方法が提案されている（例えば、非特許文献１参照）。非特許文献１には、「提案の推定方式は、現在の品質劣化状況を起こし得る品質劣化リンクの組み合わせの中から、最も発生率が高い組み合わせとして、最小のリンク数からなる組み合わせを選び出す方式である。図５に示すような経路でフローが存在したとする（このときのリンクの識別子を図６に示す）。縦軸にフローの番号、横軸に経由リンクを取り、各フロー（各行）について、経由しているリンクに対応する列に“１”を立てた図７のような表（フ
ロー・リンク対応表と呼ぶ）を作ることができる。なお、この表の最右の欄（品質フラグ）は、そのフローが品質劣化しているかどうかを示すフラグ（品質劣化していれば１、そうでなければ０の値を取る）である。フラグは、フローの品質情報（例えばパケットロスなど）を基に、それがある閾値を超えていれば品質劣化しているとして、フラグ１を立てる。例えば、２行目のフローは、リンク２，４，７，１０，１２を経由し、品質劣化していることを示している。フロー・リンク対応表において、あるリンクが品質劣化した場合、そのリンクに対応する列に“１”が立っている全てのフロー（行）の品質が劣化し、そ
の行の品質フラグは１となる。よって、フロー・リンク対応表において品質劣化したフロー（品質フラグが１であるフロー）の集合をＦとし、あるリンクｌを経由するフローの集合をｆ（ｌ）と表記すると、Ｆ＝ｆ（ｌ）の関数を満たすようなリンク集合Ｌが品質劣化したリンク集合の候補である。提案方式では、この集合の中で、最も要素数の小さいものを選択する。」と記載され、非特許文献１は、ネットワークの各フローが通るリンク及びそのフローの品質が劣化しているかの情報をもとに、どのリンクが原因でフロー品質が劣化しているかを推定する方法を提案する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１０−３４８７６号公報
【特許文献２】特開平１０−２４２９７１号公報
【特許文献３】特開２００５−１１００３８号公報
【非特許文献】
【００１６】
【非特許文献１】一般社団法人電子情報通信学会、"フロー品質情報からのネットワーク品質劣化箇所推定方式の提案（次世代テレコム環境におけるマネジメント技術及び一般）"、電子情報通信学会技術研究報告．ＴＭ，テレコミュニケーションマネジメント、日本、２００５年３月４日、１０４、７０７
【発明の概要】
【発明が解決しようとする課題】
【００１７】
特許文献１における管理サーバは、ネットワーク内の機器に生存確認を行う。特許文献１の方法を用いるシステムにおいて、ネットワークが大規模である場合、管理サーバと、生存確認の対象となるスイッチ機器との間の距離が大きくなる。このため、管理サーバとスイッチ機器との間の距離が大きくなる程、管理サーバとスイッチ機器との間の遅延の変動に影響が出るため、正確に測定することができず、正確に原因箇所を特定することができない。
【００１８】
さらに、特許文献２に記載された方法は、ルータが保持するルーティングテーブルを修正する。しかし、転送遅延を取得するアプリケーションは、ルーティングテーブルを用いるプロトコルとは異なるプロトコルによって起動されるため、転送遅延を取得した場合にルーティングテーブルを修正できない。
【００１９】
特許文献３では、トラヒック情報の収集単位がネットワーク単位であり、どのスイッチ機器で故障が発生しているかを検出することはできない。
【００２０】
非特許文献１では、各フローの経路がいずれのスイッチを通過しているかが明確であることを前提としているため、経路が通過するスイッチが不明な環境での転送遅延の要因となる箇所を特定できない。
【００２１】
以上のような問題を鑑み、本発明の目的は、複数の経路が存在するネットワークにおいて、いずれかの経路において転送遅延の要件が満たされない場合に、転送遅延が大きい原因となる箇所を特定することである。
【課題を解決するための手段】
【００２２】
本発明の代表的な一形態によると、複数のネットワーク装置と接続されるサーバであって、前記サーバは、前記複数のネットワーク装置の各々を介して接続される端末間の通信が正常な場合、前記端末間の通信の転送遅延を初期転送遅延として取得する初期情報取得部と、前記端末間の通信の転送遅延が所定の閾値を超えたことを示す異常通知を受信した場合、前記転送遅延が所定の閾値を超えた原因の前記ネットワーク装置である原因ネットワーク装置を特定する遅延箇所特定部と、を備え、前記遅延箇所特定部は、前記異常通知を受信した場合、前記転送遅延が所定の閾値を超えた通信が通過した可能性がある前記ネットワーク装置を少なくとも一つ抽出し、前記抽出されたネットワーク装置の少なくとも一つを通過する前記複数の通信の各々の経路から、前記複数の経路の各々に含まれる前記ネットワーク装置の数に従って、複数の測定用経路を抽出し、前記複数の測定用経路の各々を通過する前記通信の転送遅延を取得し、前記複数の測定用経路の各々における前記取得された転送遅延に基づいて、前記原因ネットワーク装置の候補を推定し、前記推定された原因ネットワーク装置の候補を含む複数の検証用経路を通過する前記通信の転送遅延を取得し、前記複数の検証用経路の各々における前記取得された転送遅延と、前記初期転送遅延とに基づいて、前記推定された原因ネットワーク装置の候補から、前記原因ネットワーク装置を特定する。
【発明の効果】
【００２３】
本発明の一実施形態によると、ネットワークにおいて転送遅延の要件が満たされない原因となる箇所を特定できる。
【００２４】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２５】
【図１】本実施例のネットワークシステムに備わる構成を示すブロック図である。
【図２】本実施例のサーバの物理的な構成及び論理的な構成を示すブロック図である。
【図３】本実施例の経路テーブルを示す説明図である。
【図４】本実施例の初期遅延テーブル及び遅延テーブルを示す説明図である。
【図５】本実施例のネットワークテーブルを示す説明図である。
【図６】本実施例の初期情報取得機能の処理を示すフローチャートである。
【図７】本実施例の遅延箇所特定機能の処理を示すフローチャートである。
【図８】本実施例の遅延箇所の推定及び検証処理を示すフローチャートである。
【図９】本実施例の遅延回避設定機能の処理を示すフローチャートである。
【図１０】本実施例の具体的な動作を説明するためのネットワークを示す説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明を実施する形態について図を用いながら説明する。
【００２７】
まず、本発明における構成を図１〜図４を用いて説明する。
【００２８】
図１は、本実施例のネットワークシステムのトポロジ情報を示すブロック図である。
【００２９】
本実施例のネットワークシステムには、ネットワーク１００、サーバ１０１、及び、端末１０２〜１０７が備わる。ネットワーク１００は、スイッチ１０８〜１１３を備える。サーバ１０１、端末１０２〜１０７、及び、スイッチ１０８〜１１３は、リンク１１４〜１２８によって接続される。
【００３０】
ネットワーク１００には、ネットワーク１００に備わる一部のリンク及びスイッチによって、仮想ネットワークが構成される。例えば、サーバ１０１、端末１０２、端末１０３、スイッチ１０８、スイッチ１０９、スイッチ１１３、リンク１１４〜１１６、リンク１２２、及び、リンク１２３は、一つの仮想ネットワークを構成する。
【００３１】
ネットワーク１００に含まれる仮想ネットワークには、仮想ネットワークを識別するための識別子があらかじめ割り当てられる。また、ネットワーク１００における通信は、全て仮想ネットワークに従って行われる。
【００３２】
また、サーバ１０１は、後述する処理において、転送遅延が大きい原因の箇所を測定するために仮想ネットワークを新しく生成したり削除したりする。この際に、新しく生成される仮想ネットワークは、あらかじめ設定されていてもよい。具体的には、サーバ１０１は、通信に使用されていた仮想ネットワークから、あらかじめ設定されていた仮想ネットワークに通信を切り替えることによって、新たな仮想ネットワークにおける通信の転送遅延が測定されるようにしてもよい。
【００３３】
サーバ１０１は、図１に示すような、ネットワーク１００に接続される端末１０２〜１０７に関する情報、及び、ネットワーク１００の構成情報をあらかじめ保持する。具体的には、いずれのスイッチがいずれのリンクに接続され、いずれの端末がいずれのリンクに接続されるかなどのトポロジ情報を保持する。
【００３４】
また、サーバ１０１は、各端末１０２〜１０７が通信するフローに関する情報として、各フロー（パケットが送信される経路）における送信側端末、受信側端末、及び、各フローが従う仮想ネットワークを識別するフロー情報を保持する。
【００３５】
端末１０２〜１０７は、例えば、汎用ＰＣでもよく、また、組込機器であってもよい。また、図１に示す端末１０２〜１０７は、６台のみであるが、本実施例において、少なくとも二つの端末がネットワーク１００に接続されればよい。
【００３６】
各端末１０２〜１０７は、サーバ１０１、及び、他の端末との通信機能を持つ。また、各端末１０２〜１０７は、サーバ１０１から制御命令を受信した場合、受信した制御命令に従って他の端末に測定パケットを送信する機能を持つ。
【００３７】
さらに、端末１０２〜１０７は、他の端末から測定パケットを受信した場合、受信した測定パケットによる測定結果を、サーバ１０１に送信する機能を持つ。他にも、端末１０２〜１０７は、端末間の通信における転送遅延が要件を満たさなくなった場合に要件が満たされない旨をサーバ１０１に通知する機能を持つ。
【００３８】
スイッチ１０８〜１１３は、仮想ネットワーク機能を持つネットワーク中継装置であり、例えば、ＶＬＡＮ、及び、ＯｐｅｎＦｌｏｗに対応したスイッチである。図１に示すスイッチ１０８〜１１３は、６台のみであるが、本実施例において、少なくとも三つのスイッチがネットワーク１００の可用性を確保するために、ネットワーク１００に備わればよい。なお、ネットワーク１００には、スイッチ１０８〜１１３の各々の代わりに、ルータが備わってもよい。
【００３９】
なお、サーバ１０１及び端末１０２〜１０７は、ＳＮＴＰ、又は、ＩＥＥＥ１５８８などによって、相互に時刻同期を図る時刻同期機能を持つ。
【００４０】
図２は、本実施例のサーバ１０１の物理的な構成及び論理的な構成を示すブロック図である。
【００４１】
サーバ１０１は、ハードウェア２０１を備える計算機である。また、サーバ１０１は、ハードウェア２０１によってソフトウェア２００の各機能を実行する。
【００４２】
ハードウェア２０１は、プロセッサ２０５、揮発性メモリ２０６、画面表示部２０７、通信インタフェース２０８、及び、記憶装置２０９を含む。プロセッサ２０５は、中央演算装置（ＣＰＵ）等の演算装置であり、揮発性メモリ２０６に展開されたプログラムを実行することによって、ソフトウェア２００を実装する。
【００４３】
揮発性メモリ２０６は、データ及びプログラム等が一時的に格納される記憶装置である。画面表示部２０７は、ユーザに情報を表示するための装置であり、例えば、ディスプレイ、又は、プリンタ等である。通信インタフェース２０８は、スイッチ１１３と通信するためのインタフェースである。
【００４４】
記憶装置２０９は、データ及びプログラム等が格納される記憶装置である。記憶装置２０９は、経路テーブル２１０と、初期遅延テーブル２１１と、遅延テーブル２１２と、ネットワークテーブル２１３と、トポロジ情報２１４とを有する。
【００４５】
経路テーブル２１０は、ネットワーク１００に接続される端末間のすべての経路を示す情報を含む。初期遅延テーブル２１１は、ネットワーク１００におけるトラヒックが少量であり、ネットワーク１００が正常状態である場合に測定された転送遅延を示す情報を含む。
【００４６】
遅延テーブル２１２は、各経路において測定された転送遅延を示す情報を含む。ネットワークテーブル２１３は、仮想ネットワークに関する情報を含む。
【００４７】
トポロジ情報２１４は、ネットワーク１００における端末１０２〜１０７、スイッチ１０８〜１１３、及び、リンク１１４〜１２６の接続情報を含む。トポロジ情報２１４は、図１に示すような情報を含めば、いかなるフォーマットによって接続情報を含んでもよい。
【００４８】
また、図２に示すトポロジ情報２１４は、記憶装置２０９にあらかじめ含まれるが、本実施例のトポロジ情報２１４は、サーバ１０１以外の情報サーバから必要に応じて転送され、揮発性メモリ２０６に格納されてもよい。
【００４９】
ソフトウェア２００は、初期情報取得機能２０２、遅延箇所特定機能２０３、及び、遅延回避設定機能２０４を有する。ソフトウェア２００の各機能に対応するプログラムは、揮発性メモリ２０６又は記憶装置２０９に格納される。
【００５０】
初期情報取得機能２０２は、初期遅延テーブル２１１に値を格納するための機能である。遅延箇所特定機能２０３は、転送遅延が所定の閾値を超過する原因の箇所を特定するための機能である。遅延回避設定機能２０４は、遅延箇所特定機能２０３によって特定された箇所を回避するように、仮想ネットワークを設定する機能である。
【００５１】
なお、ソフトウェア２００の各機能の全体又は一部をソフトウェアＰＬＣ等の物理的な装置によって実装してもよい。また、各機能に相当するプログラム又は物理的な装置を、一つのプログラム又は一つの物理的な装置によって実装してもよいし、各機能に含まれる複数の処理を、異なるプログラム又は異なる物理的な装置によって実装してもよい。さらに、各機能において実行される同じ処理は、共通のプログラム又は共通の物理的な装置によって実装されてもよい。
【００５２】
図３は、本実施例の経路テーブル２１０を示す説明図である。
【００５３】
経路テーブル２１０は、端末１０２〜１０７のうちの二つの端末を結ぶ経路を識別するための情報を格納する。経路テーブル２１０の値は、ネットワークの初期情報取得機能２０２によって設定される。
【００５４】
経路識別子３０１は、経路を一意に識別するための識別子である。識別子は文字列又は数字で表現される。経路テーブル２１０において、経路識別子３０１の値は一意な値である。
【００５５】
端末１（３０２）は、端末１０２〜１０７のうち、経路識別子３０１が示す経路の送信側端末となる端末を示す。また、端末２（３０３）は、端末１０２〜１０７のうち、経路識別子３０１が示す経路の受信側端末となる端末を示す。
【００５６】
端末１（３０２）及び端末２（３０３）には、例えば端末名及び端末のＭＡＣアドレスといった、端末を識別するための情報が設定される。また、端末１（３０２）及び端末２（３０３）の組み合わせが、二以上の行に格納されてもよい。すなわち、送信側端末と受信側端末との組み合わせが同じであり、かつ、異なる経路を示す行が、経路テーブル２１０に複数格納されてもよい。
【００５７】
列３０４は、複数の列を含み、各列は、ホップ１、ホップ２、・・・、及び、ホップＮのいずれかのスイッチを示す。列３０４は、端末１（３０２）が示す端末から、端末２（３０３）までに通過するスイッチを示す。
【００５８】
端末１（３０２）が示す端末から送信されたパケットは、最初に列３０４が示すホップ１のスイッチを通過し、次にホップ２のスイッチを通過する。パケットが、ホップＩ（Ｉ：自然数）のスイッチの次に端末２（３０２）が示す端末に送信される場合、列３０４のホップ（Ｉ＋１）以降の列にはｎｕｌｌ値が格納される。
【００５９】
例えば、行３０５は、図１に示す経路を示す。行３０５は、端末１０２から端末１０４までにパケットが送信される場合、パケットが通過する経路の一つには、スイッチ１０８、スイッチ１０９、及びスイッチ１１０を通過する経路があることを示し、その経路の識別子が経路１であることを示す。
【００６０】
なお、経路テーブル２１０の列３０４に、ホップ情報の代わりにリンクを識別するリンク識別子が格納されてもよい。また、経路テーブル２１０は、経路を通過するスイッチの情報以外にも、経路を識別するために必要な情報を含んでもよい。
【００６１】
図４は、本実施例の初期遅延テーブル２１１及び遅延テーブル２１２を示す説明図である。
【００６２】
初期遅延テーブル２１１の値は、ネットワーク１００の初期情報取得機能２０２による処理によって設定される。また、遅延テーブル２１２の値は遅延箇所特定機能２０３による処理によって更新される。
【００６３】
経路識別子４０１は、経路を識別する識別子であり、経路テーブル２１０の経路識別子３０１と同じ値が設定される。経路識別子４０１と経路識別子３０１とは、対応する。また、初期遅延テーブル２１１における経路識別子４０１と、遅延テーブル２１２における経路識別子４０１とには同じ値が含まれる。各識別子は各テーブルにおいて一意である。
【００６４】
遅延４０２は、経路識別子４０１が示す経路におけるデータの転送遅延を示す。遅延４０２には、転送遅延の値が格納される。
【００６５】
なお、初期遅延テーブル２１１及び遅延テーブル２１２は、図４に示す転送遅延の時間以外にも、転送遅延に関する情報、例えば、転送遅延が発生した時間帯等の情報を含んでもよい。
【００６６】
また、本実施例において、経路テーブル２１０と、初期遅延テーブル２１１と、遅延テーブル２１２とは、異なるテーブルであるが、必要に応じて一つ、又は二つに統合されてもよい。例えば、経路識別子ごとの行を含む一つのテーブルが、経路テーブル２１０と、初期遅延テーブル２１１と、遅延テーブル２１２とが含む値を含んでもよい。
【００６７】
図５は、本実施例のネットワークテーブル２１３を示す説明図である。
【００６８】
ネットワークテーブル２１３は、ネットワーク１００に含まれる仮想ネットワークを構成するリンクを示すテーブルである。ネットワークテーブル２１３は、仮想ネットワーク識別子５０１と、列５０２と、フロー情報５０３とを含む。
【００６９】
ネットワークテーブル２１３は、あらかじめユーザによって設定された仮想ネットワークを示す行を保持する。また、初期情報取得機能２０２、遅延箇所特定機能２０３及び遅延回避設定機能２０４によって、新しい仮想ネットワークが生成され、また、古い仮想ネットワークが削除される場合、ネットワークテーブル２１３は更新される。
【００７０】
仮想ネットワーク識別子５０１は、仮想ネットワークを識別する識別子である。仮想ネットワーク識別子５０１の識別子は、文字列又は数字で表現され、ネットワークテーブル２１３において一意である。
【００７１】
例えば、ＶＬＡＮ環境においては、仮想ネットワーク識別子５０１に格納される値は、ＶＬＡＮ−ＩＤに相当する。仮想ネットワーク識別子５０１に格納される値によって、各スイッチは仮想ネットワークに従ってパケットを転送することができる。
【００７２】
列５０２には、リンク１１４〜１２８を各々示す複数の列が含まれる。列５０２は、仮想ネットワーク識別子５０１が示す仮想ネットワークに含まれるリンクを示す。列５０２には、各リンクが含まれるか否かを示す情報が格納される。
【００７３】
例えば、列５０２において"○"が格納されるリンクは、"○"が格納される行が示す仮想ネットワークに含まれることを示す。また、列５０２において"×"が格納されるリンクは、"×"が格納される行が示す仮想ネットワークに含まれないことを示す。なお、仮想ネットワークに含まれるか否かは、"○"又は"×"以外の他の表現方法によって表現されてもよい。
【００７４】
フロー情報５０３は、仮想ネットワーク識別子５０１が示す仮想ネットワークに従って通信が行われるフローを示す。本実施例におけるフローとは、端末間の通信である。ユーザは、フロー情報５０３にもあらかじめ値を格納する。フロー情報５０３には、いずれの端末が送信側端末であり、又は、受信側端末であるかを示す情報が含まれてもよい。
【００７５】
なお、ネットワークテーブル２１３は、図５に示すリンクの情報以外にも、転送遅延に関する情報を含んでもよい。
【００７６】
また、経路テーブル２１０と、初期遅延テーブル２１１と、遅延テーブル２１２と、ネットワークテーブル２１３とは、本実施例においてテーブルによって情報を保持するが、情報を保持できればいずれのフォーマットでもよい。例えば、経路テーブル２１０は、経路記憶部２１０であってもよく、経路記憶部２１０は、ＣＳＶ形式によって情報を保持してもよい。
【００７７】
図６は、本実施例の初期情報取得機能２０２の処理を示すフローチャートである。
【００７８】
図６に示す処理は、サーバ１０１が起動した時、又は、ネットワーク１００が構築された後等、ネットワーク１００におけるトラヒック量が十分に小さい場合に実行される。例えば、図６に示す処理は、ネットワーク１００におけるトラヒック量が小さいために、ネットワーク１００における通信はすべて正常であるとユーザが判断され、ネットワーク１００において正常な通信が行われていることを示す情報を、初期情報取得機能２０２がユーザから入力された場合、図６に示す処理が開始されてもよい。
【００７９】
また、ネットワーク１００の各スイッチが自らを通過するトラヒックの量を測定する機能を有し、さらに、各スイッチにおけるトラヒック量があらかじめユーザに与えられた閾値より低く、ネットワーク１００において正常な通信が行われていることを示す情報を、初期情報取得機能２０２が取得した場合、図６に示す処理が開始されてもよい。
【００８０】
初期情報取得機能２０２は、ネットワーク１００の初期状態における転送遅延を取得する機能である。本実施例において、ネットワーク１００が初期状態である場合とは、例えば、ネットワーク１００が構築された直後である。ネットワーク１００は、各端末間のトラヒック量等を考慮されて構築されるため、ネットワーク１００が構築された直後においては、ネットワーク１００において通信されるトラヒック量は、ネットワーク１００の要件に対して十分に小さいものとする。
【００８１】
そして、ネットワーク１００におけるトラヒック量が十分に小さい場合、いずれの端末間においても転送遅延の要件を下回る転送要件によってパケットが送受信されるものとする。このため、サーバ１０１は、初期情報取得機能２０２を用い、ネットワークのトラヒック量が十分に小さい時の転送遅延、すなわち、転送遅延が正常時の転送遅延を測定する。
【００８２】
ネットワーク１００の初期状態において測定された転送遅延は、遅延箇所特定機能２０３において、転送遅延超過の原因であると推定した箇所が真に転送遅延超過の原因であるか否かを特定するために用いられる。
【００８３】
初期情報取得機能２０２は、まず、端末１０２〜１０７から二つの端末を、送信側端末及び受信側端末として任意に選択する（６０１）。以下において、初期情報取得機能２０２は、ステップ６０１において、図１に示す端末１０２を送信側端末として選択し、端末１０４を受信側端末として選択した場合を例に説明する。
【００８４】
ステップ６０１の後、初期情報取得機能２０２は、ステップ６０１において選択された二つの端末間の経路を、ネットワーク１００のトポロジ情報２１４から全て抽出し、さらに、抽出された経路の中から一つを選択する（６０２）。例えば、図１に示す端末１０２からスイッチ１０８〜１１０を通過して端末１０４に到達する経路を選択する。ここで、端末１０２から端末１０４までの他の経路には、例えば、スイッチ１０８、スイッチ１１２、及びスイッチ１１０を通過する経路がある。
【００８５】
ステップ６０２の後、初期情報取得機能２０２は、ネットワークテーブル２１３とトポロジ情報２１４とに基づいて、ステップ６０２において選択された経路が、一意な経路として含まれる仮想ネットワークが既に存在するか否かを判定する（６０３）。ここで、選択された経路が一意な経路として含まれる仮想ネットワークとは、ステップ６０１において選択された二つの端末が、ステップ６０２において選択された経路以外の経路によって通信しないような仮想ネットワークという意味である。なお、初期情報取得機能２０２は、ネットワーク１００に経路が一つのみしか存在しない場合、ステップ６０３においていずれの仮想ネットワークを選択してもよい。
【００８６】
ステップ６０３において、初期情報取得機能２０２は、具体的には、ステップ６０２において選択された経路に含まれるリンクを、トポロジ情報２１４に基づいて特定する。そして、初期情報取得機能２０２は、特定されたリンクを示す列のすべてに"○"が格納され、かつ、特定されていないリンクを示す列にすべて"×"が格納される、ネットワークテーブル２１３の行を抽出する。そして、初期情報取得機能２０２は、ネットワークテーブル２１３から行が抽出できた場合、選択された経路が、一意な経路として含まれる仮想ネットワークが既に存在すると判定する。
【００８７】
ステップ６０３において、経路が一意な経路として含まれる仮想ネットワークが存在しないと判定された場合（図６に示すステップ６０３において"Ｎｏ"）、初期情報取得機能２０２は、ステップ６０２において選択された経路が一意な経路として含まれる仮想ネットワークを、新たに生成する（６０４）。
【００８８】
ステップ６０４において、初期情報取得機能２０２は、具体的には、仮想ネットワーク識別子５０１の新たな値（例えば、ＶＬＡＮ−ＩＤ）を、新たに生成する仮想ネットワークに割り当てる。そして、初期情報取得機能２０２は、ステップ６０２において選択された経路が一意な経路である新たな仮想ネットワークを、選択された経路に含まれる各スイッチに設定する。
【００８９】
例えば、スイッチ１０８〜１１３がＶＬＡＮスイッチである場合、初期情報取得機能２０２は、ＶＬＡＮスイッチが有するＷｅｂサーバの機能を用い、ステップ６０２において選択された経路に含まれる各スイッチに、新たに割り当てられたＶＬＡＮ−ＩＤのＶＬＡＮを設定する。
【００９０】
初期情報取得機能２０２は、ステップ６０４において新たな仮想ネットワークを生成した後、ネットワークテーブル２１３に新しい行を追加し、追加された行に新たに生成された仮想ネットワークに対応する値を格納する。具体的には、新たに生成された仮想ネットワークの識別子を仮想ネットワーク識別子５０１に格納し、新たに生成された仮想ネットワークに含まれるリンクに相当する列５０２に、"○"を格納する。
【００９１】
ステップ６０３において、ステップ６０２において選択された経路が、一意な経路として含まれる仮想ネットワークが既に存在すると判定された場合（図６に示すステップ６０３において"Ｙｅｓ"）、又は、ステップ６０４の後、初期情報取得機能２０２は、データ送信要求を送信側端末に通知する（６０５）。ここで、データ送信要求には、選択された経路が、一意な経路として含まれる仮想ネットワークの識別子と、受信側端末を示す情報（識別子）と、測定パケットの送信要求とを含む。
【００９２】
さらに、ステップ６０５における送信側端末及び受信側端末とは、ステップ６０１において選択された送信側端末及び受信側端末である。また、データ送信要求に含まれる仮想ネットワークの識別子とは、仮想ネットワーク識別子５０１の値である。
【００９３】
また、受信側端末を示す情報とは、受信側端末のＭＡＣアドレスでもよいし、受信側端末のＩＰアドレスでもよいし、受信側端末の識別子（端末２（３０３）に相当）でもよい。また、データ送信要求には、受信側端末に測定パケットを送信するために必要な他の情報を含んでもよい。
【００９４】
データ送信要求を送ることによって、初期情報取得機能２０２は、送信側端末に、選択された経路が、一意な経路として含まれる仮想ネットワークを用いて、測定パケットを受信側端末に送信することを命令できる。
【００９５】
送信側端末は、データ送信要求を受信した場合、データ送信要求が示す仮想ネットワークを用いて、データ送信要求が示す受信側端末に、測定パケットを送信する。この時、測定パケットには、データ送信要求が示す仮想ネットワークの識別子、及び、送信側端末が測定パケットを送信する時刻（送信側端末のタイムスタンプ）が含まれる。
【００９６】
例えば、ネットワーク１００がＶＬＡＮ環境であれば、測定パケットのＶＬＡＮヘッダにＶＬＡＮ−ＩＤが格納され、送信側端末におけるタイムスタンプが、測定パケットのアプリケーションデータに格納される。この測定パケットを送信するプロトコルはいずれのプロトコルでもよく、例えばＶＬＡＮヘッダの後に直接アプリケーションデータ格納されるようなパケットのプロトコルでもよいし、ＶＬＡＮヘッダの上位にＵＤＰ／ＩＰのヘッダが格納されるようなパケットのプロトコルでもよい。また、測定パケットには、測定に必要な他の情報が含まれてもよい。
【００９７】
受信側端末は、測定パケットを受信した場合、測定パケットを自らが受信した時刻、及び、測定パケットに含まれる送信側端末のタイムスタンプから、測定パケットの転送遅延を算出する。その後、受信側端末は、算出された転送遅延、送信側端末を示す情報、受信側端末を示す情報、及び、仮想ネットワークの識別子を含む測定結果を、サーバ１０１に送信する。
【００９８】
この時、測定結果には、測定パケットに関する他の情報が含まれてもよい。例えば、送信側端末は、所定の時間間隔ごとに、測定パケットを受信側端末に送信し、受信側端末は、受信した複数の測定パケットに従って、転送遅延の平均値及び最大値を算出してもよい。そして、受信側端末は、測定結果に転送遅延の平均値及び最大値を含めてもよい。
【００９９】
また、受信側端末は、測定パケットに含まれる情報と、受信側端末が測定パケットを受信した時刻を示すタイムスタンプとを含めてもよい。この場合、初期情報取得機能２０２は、受信した測定結果から、各経路の転送遅延を算出する。
【０１００】
なお、送信側端末及び受信側端末に、前述の測定パケットの送受信と転送遅延の算出とを行わせる方法には、例えば、変電所システムの通信規格であるＩＥＣ６１８５０におけるＧＯＯＳＥ通信を用いる方法がある。ＩＥＣ６１８５０には、タイムスタンプを含んだデータを一方向に送信させるＧＯＯＳＥ通信、及び、サーバ及び端末間で要求応答を行うＭＭＳ通信などが規格される。
【０１０１】
また、ＩＥＣ６１８５０では、ＭＭＳ通信を用いてＧＯＯＳＥ通信を制御するパラメータを設定することにより、サーバ１０１が端末のＧＯＯＳＥ通信の開始及び終了を制御することが可能である。このため、サーバ１０１がＧＯＯＳＥ通信を制御するパラメータに、仮想ネットワークの識別子、及び、受信側端末のあて先アドレス等を含めることによって、サーバ１０１は、測定パケットを送信側端末から受信側端末へＧＯＯＳＥ通信によって送信させることが可能である。
【０１０２】
初期情報取得機能２０２は、受信側端末から測定結果を受信した場合、初期遅延テーブル２１１に新しい行を追加し、受信した測定結果に基づいて、経路識別子４０１及び遅延４０２に値を設定する（６０６）。また、ステップ６０６において、初期情報取得機能２０２は、測定結果を得られた端末間の経路を示す情報を、経路テーブル２１０に格納する。
【０１０３】
ステップ６０６において初期情報取得機能２０２は、具体的には、まず、初期遅延テーブル２１１に追加された行の遅延４０２に、受信した測定結果に含まれる転送遅延の値を格納する。そして、転送遅延を格納した行の経路識別子４０１に、初期遅延テーブル２１１のすべての経路識別子４０１の値の中で一意な値を格納する。
【０１０４】
そして、ステップ６０６において初期情報取得機能２０２は、受信した測定結果に含まれる仮想ネットワークの識別子を仮想ネットワーク識別子５０１が示すネットワークテーブル２１３の行を特定し、特定された行から仮想ネットワークに含まれるリンクを抽出する。そして、初期情報取得機能２０２は、トポロジ情報２１４に基づいて、抽出されたリンクを通過する経路と当該経路が通過するスイッチを特定する。
【０１０５】
そして、初期情報取得機能２０２は、経路テーブル２１０に新たな行を追加する。そして、新たな行の列３０４に抽出されたスイッチのうち、送信側端末に接続されるスイッチを"ホップ１"の列に格納し、その他のスイッチも経路に従って順に列３０４に格納する。また、初期情報取得機能２０２は、新たな行の経路識別子３０１に、初期遅延テーブル２１１における新たな行の経路識別子４０１と同じ値を格納する。
【０１０６】
また、初期情報取得機能２０２は、新たな行の端末１（３０２）に、送信側端末を示す識別子を格納し、端末２（３０３）に、受信側端末を示す識別子を格納する。
【０１０７】
ステップ６０６の後、初期情報取得機能２０２は、ステップ６０１において選択された二つの端末間に、転送遅延が測定されていない経路が他に存在するか否か判定する（６０７）。転送遅延が測定されていない経路が他に存在する場合（図６に示すステップ６０７の"Ｎｏ"）、初期情報取得機能２０２は、ステップ６０２に戻り、転送遅延が測定されていない他の経路を選択する。
【０１０８】
ステップ６０１において選択された二つの端末間の経路の転送遅延が、全て測定された場合（図６に示すステップ６０７の"Ｙｅｓ"）、初期情報取得機能２０２は、ステップ６０１において選択されていない二つの端末の組み合わせが他に存在するか否かを判定する（６０８）。選択されていない二つの端末の組み合わせが他に存在する場合（図６に示すステップ６０８の"Ｎｏ"）、初期情報取得機能２０２は、ステップ６０１に戻り、選択されていなかった二つの端末の組み合わせから、端末の組み合わせを一つ選択する。
【０１０９】
選択されていない二つの端末の組み合わせが存在しない場合（図６に示すステップ６０８の"Ｙｅｓ"）、初期情報取得機能２０２は、必要ない仮想ネットワークを削除する（６０９）。必要ない仮想ネットワークとは、ステップ６０４において生成された仮想ネットワークである。
【０１１０】
ステップ６０９において、初期情報取得機能２０２は、ステップ６０４において仮想ネットワークを生成した方法と同様に仮想ネットワークを削除する。例えば、ネットワーク１００のスイッチがＶＬＡＮスイッチである場合、初期情報取得機能２０２は、ＶＬＡＮスイッチが有するＷｅｂサーバを介して、仮想ネットワーク識別子５０１（ＶＬＡＮ−ＩＤ）が示す仮想ネットワークを削除する。
【０１１１】
さらに、ステップ６０９において、初期情報取得機能２０２は、ネットワークテーブル２１３から、削除された仮想ネットワークを示す行を削除する。
【０１１２】
なお、ステップ６０４において生成された仮想ネットワークを、図６に示す処理の後に用いることが想定される場合、初期情報取得機能２０２は、ステップ６０９を行わずに仮想ネットワークを削除しなくてもよい。この場合、ユーザは、初期情報取得機能２０２に、ステップ６０４において生成された仮想ネットワークを削除しないようあらかじめ指示する。
【０１１３】
ステップ６０９の後、初期情報取得機能２０２は、図６に示す処理を終了する。図６に示す処理によって、初期情報取得機能２０２は、端末１０２〜１０７のうちの二つの端末が相互に接続されるすべての経路について、初期状態における転送遅延を取得することができる。また、初期情報取得機能２０２は、経路テーブル２１０及び初期遅延テーブル２１１に、すべての経路に関する情報を格納する。
【０１１４】
図７は、本実施例の遅延箇所特定機能２０３の処理を示すフローチャートである。
【０１１５】
遅延箇所特定機能２０３は、初期情報取得機能２０２の処理が完了した後、図７に示す処理を常に行う。具体的には、遅延箇所特定機能２０３は、ユーザ等によって指示された時間間隔において定期的に、図７に示す処理を実行してもよいし、ユーザ等による指示によって図７に示す処理を実行してもよい。
【０１１６】
また、遅延箇所特定機能２０３が終了し、遅延箇所特定機能２０３によって転送遅延超過の原因となるスイッチが特定された場合、遅延回避設定機能２０４による処理が開始される。遅延箇所特定機能２０３によって転送遅延超過の原因となるスイッチが特定されない場合、遅延箇所特定機能２０３の図７に示す処理が後述のステップ７００から開始される。また、遅延回避設定機能２０４の処理が終了した場合、遅延箇所特定機能２０３による図７に示す処理が開始される。
【０１１７】
端末１０２〜１０７は、相互にデータを通信中に、各通信における転送遅延が転送遅延の要件に相当する所定の閾値を超えたことを検出した場合、転送遅延の閾値を超えたことを示す通知（以下、異常通知）を、サーバ１０１に送信する。異常通知には、転送遅延が閾値を超えた通信に関する情報が含まれ、具体的には、送信側端末及び受信端末の識別情報（例えば、ＭＡＣアドレス）、並びに、通信に用いられていた仮想ネットワークの識別子（例えば、ＶＬＡＮ−ＩＤ）などの情報が含まれる。端末１０２〜１０７は、転送遅延が閾値を超えた通信において受信したパケットから、異常通知に含める情報を抽出する。
【０１１８】
なお、端末１０２〜１０７は、転送遅延の要件に相当する所定の閾値を、前述のステップ６０５において初期情報取得機能２０２から送信されてもよいし、遅延箇所特定機能２０３の開始時に遅延箇所特定機能２０３から送信されてもよい。また、ネットワーク１００を構築したネットワーク管理者等が、端末１０２〜１０７の各々に、転送遅延の要件に相当する所定の閾値をあらかじめ設定してもよい。
【０１１９】
また、端末１０２〜１０７が転送遅延を判定するために保持する所定の閾値は、転送遅延の要件を示す値であってもよいし、転送遅延の要件を示す値に各端末に従った値を加算又は減算した値でもよい。
【０１２０】
遅延箇所特定機能２０３は、図７に示す処理において、遅延テーブル２１２の初期化処理として、遅延テーブル２１２に格納される値を全て削除する（７００）。そして、遅延箇所特定機能２０３は、端末１０２〜１０７から、サーバ１０１の通信インタフェース２０８が、異常通知を受信したか否かを判定する（７０１）。
【０１２１】
端末１０２〜１０７のいずれかから、異常通知を受信していない場合（図７に示すステップ７０１の"Ｎｏ"）、遅延箇所特定機能２０３は、処理７０１を繰り返す。
【０１２２】
端末１０２〜１０７のいずれかから、異常通知を受信した場合（図７に示すステップ７０１の"Ｙｅｓ"）、遅延箇所特定機能２０３は、受信した異常通知に含まれる情報に従って、転送遅延が増加した通信においてパケットが通過した可能性のあるスイッチを抽出する（７０２）。
【０１２３】
具体的には、遅延箇所特定機能２０３は、受信した異常通知に含まれる、転送遅延が増加した通信における送信側端末、受信側端末、及び仮想ネットワークの識別子を抽出する。さらに、遅延箇所特定機能２０３は、ネットワークテーブル２１３を参照し、抽出された仮想ネットワークの識別子を仮想ネットワーク識別子５０１が含むネットワークテーブル２１３の行を抽出する。
【０１２４】
そして、ネットワークテーブル２１３の行を抽出することによって、遅延箇所特定機能２０３は、送信側端末及び受信側端末間の通信が通過する可能性のある経路を全て抽出でき、さらに、抽出された経路に含まれるスイッチを全て抽出できる。
【０１２５】
なお、遅延箇所特定機能２０３は、異常通知に含まれる送信側端末及び受信側端末を示す情報を、異常通知に含まれる仮想ネットワークを示すネットワークテーブル２１３の行のフロー情報５０３に、蓄積してもよい。これによって、新たにフローが追加された場合に、ネットワークテーブル２１３を更新することができる。
【０１２６】
ステップ７０２の後、遅延箇所特定機能２０３は、ステップ７０２において抽出された各スイッチを通過する経路から、転送遅延を測定する経路（測定用経路）を抽出する（７０３）。
【０１２７】
具体的には、ステップ７０３において遅延箇所特定機能２０３は、ステップ７０２において抽出された各スイッチを通過し、かつ、経路のホップ数がＮになるような経路を全て、測定用経路として抽出する。ここでＮは、遅延箇所特定機能２０３にあらかじめユーザによって設定される値である。
【０１２８】
ステップ７０３における測定用経路の抽出方法には、例えば、遅延箇所特定機能２０３が、ステップ７０２において抽出された各スイッチから一つのスイッチを任意で選択し、選択されたスイッチから送信側端末までのホップ数Ａ、又は、選択されたスイッチから受信側端末までのホップ数Ｂが０〜Ｎのいずれかの値となる経路を特定する方法がある。この方法において、遅延箇所特定機能２０３は、選択されたスイッチから、ホップ数Ａ及びホップ数Ｂの関係が（Ａ＋Ｂ＝Ｎ）になる二つの経路を組み合わせ、組み合わされた経路を一つの測定用経路として抽出する。そして、遅延箇所特定機能２０３は、ステップ７０２において抽出されたスイッチを、すべて選択することによって、すべての測定用経路を抽出する。
【０１２９】
また、ステップ７０３における測定用経路の抽出方法には、例えば、遅延箇所特定機能２０３が、経路テーブル２１０を用いて抽出する方法がある。この方法は、具体的には、遅延箇所特定機能２０３が、列３０４にステップ７０２において抽出されたスイッチのうち少なくとも一つが含まれ、かつ、列３０４にＮ個のスイッチを示す値が含まれる行を、測定用経路として、経路テーブル２１０からすべて抽出する方法である。
【０１３０】
これによって、遅延箇所特定機能２０３は、ステップ７０２において特定された各スイッチを通過し、かつ、経路のホップ数がＮになるような経路を、測定用経路として全て抽出できる。
【０１３１】
遅延箇所特定機能２０３は、ステップ７０３において、ホップ数が同じ経路を抽出することによって、転送遅延の大きさの比較を容易にできる。また、前述において、経路のホップ数が一定値である経路を抽出したが、前述の方法によって抽出される経路数が少ない場合、遅延箇所特定機能２０３は、例えば、ホップ数がＮ−２〜Ｎ＋２の範囲になるような経路を抽出してもよい。
【０１３２】
ステップ７０３の後、遅延箇所特定機能２０３は、ステップ７０３において抽出された経路の中から順に一つの経路を選択する（７０４）。
【０１３３】
ステップ７０４の後、遅延箇所特定機能２０３は、ネットワークテーブル２１３に基づいて、選択された経路が、一意な経路として含まれる仮想ネットワークが既に存在するか否かを判定する（７０５）。ステップ７０５における処理は、図６に示すステップ６０３における処理と同じである。
【０１３４】
選択された経路が、一意な経路として含まれる仮想ネットワークが存在しない場合（図７に示すステップ７０５の"Ｎｏ"）、遅延箇所特定機能２０３は、仮想ネットワークを新しく生成する（７０６）。ステップ７０６における処理は、図６に示すステップ６０４における処理と同じである。
【０１３５】
選択された経路が、一意な経路として含まれる仮想ネットワークが存在する場合（図７に示すステップ７０５の"Ｙｅｓ"）、又は、ステップ７０６において仮想ネットワークが新しく生成された後、遅延箇所特定機能２０３は、選択された経路の送信側端末に、データ送信要求を通知する（７０７）。ステップ７０７における処理は、図６に示すステップ６０５における処理と同じである。
【０１３６】
送信側端末は、データ送信要求を受信した場合、図７に示すステップ６０５においてデータ送信要求を受信した場合と同じく、データ送信要求に含まれる仮想ネットワークの情報を用いて、測定パケットを受信側端末に送信する。そして、受信側端末は、測定結果をサーバ１０１に送信する。
【０１３７】
遅延箇所特定機能２０３は、受信側端末から測定結果を受信した場合、遅延テーブル２１２に新しい行を追加し、受信した測定結果に従って、遅延４０２に転送遅延の値を格納する（７０８）。ここで、遅延箇所特定機能２０３は、ステップ７０４において選択された経路に相当する行を、経路テーブル２１０から抽出し、抽出された経路テーブル２１０行の経路識別子３０１を、遅延テーブル２１２の新たな行の経路識別子４０１に格納する。
【０１３８】
ステップ７０８の後、遅延箇所特定機能２０３は、ステップ７０３において特定された測定用経路の中に、まだ転送遅延が測定されていない経路が存在するか否かを判定する（７０９）。転送遅延が測定されていない経路が存在する場合（図７に示すステップ７０９の"Ｎｏ"）、遅延箇所特定機能２０３は、ステップ７０４に戻り、処理を繰り返す。
【０１３９】
測定用経路の中に測定されていない経路が存在しない場合（図７に示すステップ７０９の"Ｙｅｓ"）、遅延箇所特定機能２０３は、ステップ７０６において生成された仮想ネットワークのうち、必要ない仮想ネットワークを削除し、さらに、必要ない仮想ネットワークを示すネットワークテーブル２１３の行も削除する（７１０）。ステップ７１０における処理は、図７に示すステップ６０９と同じである。なお、遅延箇所特定機能２０３は、ステップ７０６において生成された仮想ネットワークが必要であると、ユーザによって指示された場合、ステップ７０６において生成された仮想ネットワークを削除しなくてもよい。
【０１４０】
ステップ７１０の後、遅延箇所特定機能２０３は、遅延箇所の推定及び検証処理（７１１）を実行する。そして、ステップ７１１が終了した後、図７に示す処理を終了する。ステップ７１１の詳細を後述する。
【０１４１】
図８は、本実施例の遅延箇所の推定及び検証処理を示すフローチャートである。
【０１４２】
遅延箇所特定機能２０３は、ステップ７０２〜７１０によって値が設定された遅延テーブル２１２の行を、遅延４０２に格納された値が大きい順にソートする（８０１）。そして、遅延箇所特定機能２０３は、ソートされた遅延テーブル２１２の上位Ｍ行を抽出することによって、転送遅延が大きい上位Ｍ個の経路を抽出する。ここで、Ｍは、遅延箇所特定機能２０３にあらかじめユーザによって設定されるパラメータである。
【０１４３】
ステップ８０１の後、遅延箇所特定機能２０３は、転送遅延が大きい上位Ｍ個の経路が通過するスイッチを抽出し、抽出されたスイッチを転送遅延超過の原因となるスイッチとして推定する（８０２）。ここで推定されるスイッチは、後述する原因スイッチの候補である。
【０１４４】
具体的には、ステップ８０２において遅延箇所特定機能２０３は、遅延テーブル２１２から抽出されたＭ個の経路を示す行の経路識別子４０１と、経路識別子３０１とが一致する経路テーブル２１０の行をすべて抽出する。そして、ステップ８０２において遅延箇所特定機能２０３は、抽出されたすべての行の列３０４に含まれる値毎に、抽出されたすべての行の列３０４において出現する数をカウントする。これによって、遅延箇所特定機能２０３は、転送遅延が大きい上位Ｍ個の経路に含まれるスイッチ毎に、当該スイッチを通過する転送遅延が大きい経路の数を算出できる。このため、算出された数が多いスイッチは、転送遅延超過の原因である可能性が高い。
【０１４５】
遅延箇所特定機能２０３は、算出された数が最も多いスイッチ、すなわち、転送遅延が大きい上位Ｍ個の経路が共通して通過したスイッチを抽出し、抽出されたスイッチが転送遅延超過の原因であると推定する。
【０１４６】
遅延箇所特定機能２０３は、ステップ８０２において抽出されたスイッチを、転送遅延超過の原因であると推定するが、ステップ８０３以降の処理において、転送超過の原因であると推定されたスイッチ（以下、推定スイッチ）が転送遅延超過の原因であるか否かをさらに検証する。
【０１４７】
ステップ８０２において抽出された推定スイッチが転送遅延超過の原因である場合、推定スイッチを通過する経路の転送遅延は、ネットワーク１００の初期状態における転送遅延と比較して増加すると想定される。以下の処理において、このような想定に基づいて、推定スイッチが転送遅延超過の原因であるか否かを検証する。
【０１４８】
ステップ８０２の後、遅延箇所特定機能２０３は、推定スイッチを通過する経路（以下、検証用経路）を示す行を、経路テーブル２１０に基づいて、抽出する（８０３）。具体的には、ステップ８０３において遅延箇所特定機能２０３は、経路テーブル２１０の列３０４に、推定スイッチが含まれる行を抽出する。
【０１４９】
なお、ステップ８０３において、遅延箇所特定機能２０３は、推定スイッチが含まれる行を、経路テーブル２１０からすべて抽出してもよいし、一部の行のみを抽出してもよい。抽出される行の数（すなわち、検証用経路の数）は、ステップ８０２における推定を検証する精度に従って、ユーザによって定められる。
【０１５０】
ステップ８０３の後、遅延箇所特定機能２０３は、測定用経路の転送遅延を測定したステップ７０４〜７０９における処理と同様の方法によって、ステップ８０３において抽出された検証用経路の転送遅延を測定する（８０４〜８０９）。ただし、ステップ８０８において、遅延箇所特定機能２０３が遅延テーブル２１２に何も設定しない点において、ステップ８０８とステップ７０８とは異なる。
【０１５１】
ステップ８０９においてすべての検証用経路の転送遅延が測定されたと判定された場合、遅延箇所特定機能２０３は、ステップ８０８において取得されたすべての測定結果に基づいて、初期遅延テーブル２１１の遅延４０２の値と比較して転送遅延が増加した経路があり、かつ、転送遅延が増加した検証用経路が所定の指標と比較して多いか否かを、後述する方法によって判定する（８１０）。
【０１５２】
具体的には、ステップ８１０において遅延箇所特定機能２０３は、初期遅延テーブル２１１から、転送遅延が測定された各検証用経路を示す経路識別子４０１を含む行の、遅延４０２の値を抽出する。そして、遅延箇所特定機能２０３は、抽出された遅延４０２の値とステップ８０８において測定された各検証用経路の転送遅延とを比較する。
【０１５３】
そして、ステップ８１０において遅延箇所特定機能２０３は、転送遅延が増加した検証用経路が多いか否かを判定する。遅延箇所特定機能２０３は、例えば、各検証用経路において転送遅延が、初期状態の転送遅延よりα倍（α＞１）になっている経路数をカウントし、カウントされた結果の経路数が、ステップ８０３において抽出された検証用経路数に占める割合を算出する。そして、遅延箇所特定機能２０３は、算出された割合がβ（０＜β≦１）以上である場合、転送遅延が増加した経路が多いと判定する。ここでα及びβは、遅延箇所特定機能２０３にあらかじめ設定されるパラメータである。
【０１５４】
このような方法によって、遅延箇所特定機能２０３は、転送遅延が一定の割合で増加した検証用経路が、転送遅延を測定された検証用経路全体において一定の割合を超えたことを判定することによって、検証用経路が共通して通過する推定スイッチが、転送遅延超過の原因であることを検証できる。
【０１５５】
なお、前述の方法以外の方法でも、転送遅延が増加した検証用経路が多いか否かを定量的に判定できれば、遅延箇所特定機能２０３が、いかなる方法によって転送遅延が増加した経路が多いか否かを判定してもよい。
【０１５６】
転送遅延が増加した検証用経路が多いと判定された場合（図８に示すステップ８１０の"Ｙｅｓ"）、遅延箇所特定機能２０３は、推定スイッチが、転送遅延超過の原因であると判定する（８１１）。そして、推定スイッチを、転送遅延超過の原因のスイッチであると特定する。
【０１５７】
一方、転送遅延が増加した経路が多くないと判定された場合（図８に示すステップ８１０の"Ｎｏ"）、遅延箇所特定機能２０３は、推定スイッチが、転送遅延超過の原因ではないと判定する。そして、転送遅延が大きい経路が通過する数が、ステップ８１０において転送遅延超過の原因でないと判定された推定スイッチの次に多いスイッチが、存在するか否かを判定する（８１２）。
【０１５８】
スイッチが存在すると判定された場合（図８に示すステップ８１２の"Ｙｅｓ"）、遅延箇所特定機能２０３は、ステップ８０２に戻り、転送遅延が大きい経路が通過する数が、ステップ８１０において転送遅延超過の原因でないと判定された推定スイッチの次に多いスイッチを、新たな推定スイッチとして抽出する。
【０１５９】
スイッチが存在しないと判定された場合（図８に示すステップ８１２の"Ｎｏ"）、遅延箇所特定機能２０３は、転送遅延超過の原因は不明であると判定する（８１３）。この時、遅延箇所特定機能２０３は、画面表示部２０７に転送遅延が閾値を超えた通信に関する情報、及び、転送遅延超過の原因は不明であることを示す情報を表示してもよい。なお、この場合の転送遅延が大きい原因としては、例えばネットワークトラヒック量が一時的に増加したことが考えられる。
【０１６０】
ステップ８１１又はステップ８１３の後、遅延箇所特定機能２０３は、ステップ８０６において生成された仮想ネットワークのうち、必要のない仮想ネットワークを削除し、さらに、必要ない仮想ネットワークを示すネットワークテーブル２１３の行も削除する（８１４）。ステップ８１４における処理は、図７に示すステップ６０９と同じである。なお、遅延箇所特定機能２０３は、ステップ８０６において生成された仮想ネットワークが必要であると、ユーザによって指示された場合、ステップ８０６において生成された仮想ネットワークを削除しなくてもよい。
【０１６１】
ステップ８１４の後、遅延箇所特定機能２０３は、図８に示す遅延箇所の推定及び検証処理を終了する。
【０１６２】
ステップ８０３〜８１２の処理によって、遅延箇所特定機能２０３は、転送遅延超過の原因となるスイッチを精度よく特定することができる。
【０１６３】
図９は、本実施例の遅延回避設定機能２０４の処理を示すフローチャートである。
【０１６４】
前述の通り、遅延箇所特定機能２０３が終了し、遅延箇所特定機能２０３によって転送遅延超過の原因となるスイッチが判定された場合、遅延回避設定機能２０４による処理が開始される。
【０１６５】
図９に示す処理において、遅延回避設定機能２０４は、転送遅延超過の原因として特定されたスイッチ（以下、原因スイッチ）を通過するフローの一部の経路を変更することによって、転送遅延が閾値より大きいという問題を回避する。
【０１６６】
まず、遅延回避設定機能２０４は、原因スイッチを通過するフローを抽出する（９０１）。ここで、遅延回避設定機能２０４は、図９に示す処理の開始時において、あらかじめフローに関する情報を保持しているものとする。
【０１６７】
ステップ９０１において、具体的には、遅延回避設定機能２０４は、原因スイッチに接続されるリンクに"○"が格納されるネットワークテーブル２１３の行を抽出する。そして、遅延回避設定機能２０４は、抽出された行のフロー情報５０３から少なくとも一つのフローを示す値を抽出する。
【０１６８】
ステップ９０１において抽出される値が示すフローには、図７に示すステップ７０１において受信側端末から異常通知が送信された際に、転送遅延が閾値を超えた端末間の通信を少なくとも含む。
【０１６９】
ステップ９０１の後、遅延回避設定機能２０４は、ステップ９０１において値が抽出されたフローの中から、選択可能なフローが存在するか否かを判定する（９０２）。選択可能なフローとは、ステップ９０１において抽出されたフローのうち、ステップ９０５の処理が実行されていないフローである。
【０１７０】
選択可能なフローが存在しない場合（図９に示すステップ９０２の"Ｎｏ"）、遅延回避設定機能２０４は、転送遅延が閾値より大きいという問題を回避できないフローがあると判定し（９０３）、画面表示部２０７に原因スイッチに関する情報を表示し、図９に示す処理を終了する。
【０１７１】
例えば、ステップ９０３の後、画面表示部２０７は、図１に示すネットワークのトポロジをディスプレイ等に表示し、さらに、原因スイッチを示す印をトポロジ内に表示してもよい。また、画面表示部２０７は、原因スイッチの名称、又は、原因スイッチのＭＡＣアドレスなどの識別情報を表示してもよい。
【０１７２】
ステップ９０２において、選択可能なフローが存在すると判定された場合、遅延回避設定機能２０４は、ステップ９０１において抽出されたフローの中から一つのフローを、経路変更させるフローの候補（以下、フロー候補）として、選択する（９０４）。
【０１７３】
ステップ９０４の後、遅延回避設定機能２０４は、選択されたフロー候補に代替経路が存在するか否か判定する（９０５）。
【０１７４】
具体的には、ステップ９０５において遅延回避設定機能２０４は、フロー候補が通過する仮想ネットワークを示すネットワークテーブル２１３の行を抽出する。そして、遅延回避設定機能２０４は、抽出された行の列５０２のリンクを示す情報と、フロー候補の送信側端末及び受信側端末の情報とから、送信側端末及び受信側端末の間の経路を示す行に、原因スイッチを示す値が含まれない行がある場合、代替経路が存在すると判定する。
【０１７５】
なお、ステップ９０５において、遅延回避設定機能２０４は、ネットワークの可用性を維持するために、原因スイッチを含まない代替経路が二つ以上存在するか否かを判定してもよい。
【０１７６】
代替経路が存在しない場合（図９に示すステップ９０５の"Ｎｏ"）、遅延回避設定機能２０４は、ステップ９０２に戻り、他のフローを、フロー候補として選択する。
【０１７７】
一方、代替経路が存在すると判定された場合（図９に示すステップ９０５の"Ｙｅｓ"）、遅延回避設定機能２０４は、フロー候補の代替経路の中から、一つの代替経路を選択する（９０６）。
【０１７８】
ステップ９０６の後、遅延回避設定機能２０４は、処理７０４〜７０９における測定用経路の転送遅延を測定する処理と同様に、すべての代替経路の転送遅延を測定する（９０７〜９１１）。ただし、ステップ９１０は、遅延回避設定機能２０４が、遅延テーブル２１２に何も値を設定しない点において、ステップ７０８と処理が異なる。
【０１７９】
すべての代替経路の転送遅延が測定された場合、遅延回避設定機能２０４は、測定された代替経路の転送遅延に問題があるか否かを判定する（９１２）。
【０１８０】
例えば、ステップ９１２において遅延回避設定機能２０４は、初期遅延テーブル２１１の遅延４０２が示す転送遅延と、測定された代替経路の転送遅延とを比較する。そして、比較の結果、測定された代替経路の転送遅延が、初期遅延テーブル２１１が示す転送遅延のγ倍以下である場合、遅延回避設定機能２０４は、測定された代替経路の転送遅延に問題がないと判定する。ここでγは、遅延回避設定機能２０４にあらかじめ設定されるパラメータである。
【０１８１】
前述のような方法によって、遅延回避設定機能２０４は、初期遅延テーブル２１１が示す転送遅延に、測定された代替経路の転送遅延が近い場合、経路を変更した場合も転送遅延が大きくならないため、フロー候補の経路を変更させても問題ないと判定する。なお、遅延回避設定機能２０４は、前述の方法以外の方法によって、代替経路の転送遅延に問題がないかを判定してもよい。
【０１８２】
代替経路の転送遅延に問題があると判定された場合（図９に示すステップ９１２の"Ｎｏ"）、遅延回避設定機能２０４は、ステップ９０２に戻り、他のフローをフロー候補として選択する。
【０１８３】
少なくとも一つの代替経路の転送遅延に問題がないと判定された場合（図９に示すステップ９１２の"Ｙｅｓ"）、遅延回避設定機能２０４は、ステップ９１２において問題がないと判定された代替経路の一つを特定し、フロー候補が特定された代替経路を通過するように、仮想ネットワークの構成を変更する。さらに、遅延回避設定機能２０４は、ステップ９０８において生成された仮想ネットワークのうち、必要ない仮想ネットワークを削除する（９１３）。
【０１８４】
ステップ９１３における仮想ネットワークの削除処理は、ステップ６０９と同じである。なお、ステップ９０８において生成された仮想ネットワークが今後必要であると、ユーザによって指示された場合、ステップ９０８において生成された仮想ネットワークを削除しなくてもよい。
【０１８５】
また、代替経路を通るように仮想ネットワークの構築を変更する方法は、例えば、そのフローが流れる仮想ネットワークを、原因スイッチを含まず、かつ、代替経路を含むような仮想ネットワークに変更する。この方法はステップ６０４における仮想ネットワークの生成方法と同様に実現できる。
【０１８６】
ステップ９１３の後、遅延回避設定機能２０４は、ステップ９０１において値が抽出されたフローの中から、選択可能なフローが存在するか否かを判定する（９１４）。すなわち、遅延回避設定機能２０４は、代替経路を選択すべきフローが他にあるか否かを判定する。ステップ９１４において選択可能なフローが存在すると判定された場合、遅延回避設定機能２０４は、ステップ９０４に戻る。
【０１８７】
ステップ９１４において選択可能なフローが存在しないと判定された場合、遅延回避設定機能２０４は、図９に示す処理を終了する。
【０１８８】
図９に示す処理によれば、図７及び図８の遅延箇所特定機能２０３の処理によって原因スイッチを特定した後に、一部のフローの経路を切り替えることにより、ネットワーク１００における転送遅延の要件を満たすようにすることをできる。
【０１８９】
次に、図１０を用いて本発明の具体的な動作を簡単に説明する。
【０１９０】
図１０は、本実施例の具体的な動作を説明するためのネットワーク１０００を示す説明図である。
【０１９１】
ネットワーク１０００は、物理ネットワークを含み、また、ネットワーク１０００には、一つの仮想ネットワークが構成される。ネットワーク１０００には、可用性を実現するために複数の経路が設定される。ネットワーク１０００にはサーバ１０１及び端末１００１〜１００４が接続される。また、ネットワーク１０００にはスイッチ１００５〜１０１１が備わる。
【０１９２】
さらに、仮想ネットワーク１０１２は、以下に示す例において生成される仮想ネットワークである。
【０１９３】
まず、サーバ１０１は、ネットワーク１０００が構築された直後に初期情報取得機能２０２によって、ネットワーク１０００の端末１００１〜１００４のうち二つの端末間の転送遅延を測定する。具体的には、ステップ６０１において、端末１００１及び端末１００２が選択され、ステップ６０２において端末１００１及び端末１００２を接続する経路の一つが選択される。ここでは、初期情報取得機能２０２が、端末１００１からスイッチ１００５、スイッチ１００６、及びスイッチ１００７を通過し、端末１００２に到達する経路を、ステップ６０２において選択するものとする。
【０１９４】
しかし、ネットワーク１０００には、端末１００１からスイッチ１００５、スイッチ１００９、及びスイッチ１００７を通過して端末１００２に到達する経路も存在するため、初期情報取得機能２０２は、ステップ６０３において経路が一意に定まる仮想ネットワークが存在しないと判定する。そして、初期情報取得機能２０２は、ステップ６０４において端末１００１からスイッチ１００５、ステップ１００６、及びステップ１００７を通過して端末１００２に到達する経路によって構成される仮想ネットワーク１０１２を生成する。
【０１９５】
なお、この仮想ネットワーク１０１２が事前に設定されている場合、ステップ６０３において、一意に定まる仮想ネットワークが存在すると判定されるため仮想ネットワーク１０１２は新たに生成されない。
【０１９６】
初期情報取得機能２０２は、ステップ６０５において、仮想ネットワーク１０１２を示す仮想ネットワーク識別子（仮想ネットワーク識別子５０１の値に相当）、及び、受信側端末として端末１００２の識別子を含むデータ送信通知を、端末１００１に送信する。
【０１９７】
端末１００１は、サーバからデータ送信通知を受信した場合、仮想ネットワーク１０１２に従い、端末１００２に測定パケットを送信する。この測定パケットには、端末１００１が測定パケットを送信したタイムスタンプが格納される。
【０１９８】
そして、端末１００２は、測定パケットを受信した場合、端末１００２の受信時刻及び測定パケットに含まれる送信時刻のタイムスタンプに基づいて、端末１００１と端末１００２との間の転送遅延を算出する。端末１００２は、算出された転送遅延を含む測定結果を、サーバ１０１に送信する。
【０１９９】
サーバ１０１が、測定結果を受信した場合、初期情報取得機能２０２は、ステップ６０６において、測定結果が示す転送遅延の値を、初期遅延テーブル２１１に格納する。
【０２００】
次に、初期情報取得機能２０２は、ステップ６０７において、ステップ６０１において選択された二つの端末の間に、他の経路が存在するか否かを判定する。端末１００１からスイッチ１００５、スイッチ１００９、及びスイッチ１００７を通過し、端末１００２に到達する経路に、ステップ６０３の処理を行っていないため、初期情報取得機能２０２は、ステップ６０２に戻る。
【０２０１】
初期情報取得機能２０２が端末１００１と端末１００２との間の全ての経路の転送遅延を測定した場合、初期情報取得機能２０２は、全ての端末の組み合わせに、ステップ６０２を実行したか否かを判定する。端末１００１及び端末１００３の組み合わせにステップ６０２を実行していないため、初期情報取得機能２０２は、ステップ６０１に戻る。
【０２０２】
すべての二つの端末の組み合わせに、ステップ６０１〜ステップ６０８を実行することによって、端末１００１〜１００４のうち二つの端末間の全ての経路の転送遅延の情報が、初期遅延テーブル２１１に設定される。なお、仮想ネットワーク１０１２は、ステップ６０９において削除されてもよい。
【０２０３】
ここで、以下の例における条件として、端末１００１と端末１００２とが通信しており、端末１００１と端末１００２との間の転送遅延の要件が６ｍｓ以下であり、また、転送遅延の閾値も６ｍｓであるものとする。また、各リンクの初期状態における転送遅延は１ｍｓであるとする。
【０２０４】
前述の条件において、端末１００１がネットワーク１０００に相当する仮想ネットワークに従って端末１００２にデータを送信し、端末１００２において測定されたデータの転送遅延が８ｍｓである場合、端末１００２は、転送遅延が閾値を超えたことを示す異常通知をサーバ１０１に送信する。ここでは、スイッチ１００６が転送遅延超過の原因であると仮定する。
【０２０５】
遅延箇所特定機能２０３は、ステップ７０１において転送遅延が閾値を超えたことを示す異常通知を受信した場合、ステップ７０２において端末１００１と端末１００２との通信において通過する可能性があるスイッチとして、スイッチ１００５〜１０１０を抽出する。
【０２０６】
次に、遅延箇所特定機能２０３は、ステップ７０３において、測定用経路を抽出する。例えば、スイッチ１００６を通過する経路には、端末１００１からスイッチ１００５、スイッチ１００６、及びスイッチ１００７を通過し端末１００２に到着する経路１、端末１００１からスイッチ１００５、スイッチ１００９、及びスイッチ１００７を通過し端末１００２に到着する経路２、端末１００１からスイッチ１００５、スイッチ１００６、スイッチ１００８、スイッチ１００９、及びスイッチ１００７を通過し端末１００２に到着する経路３、端末１００１からスイッチ１００５、スイッチ１００６、スイッチ１０１０、スイッチ１００９、及びスイッチ１００７を通過し端末１００２に到着する経路４、が存在する。
【０２０７】
遅延箇所特定機能２０３は、ステップ７０３において、経路１〜経路４の中で、ホップ数Ｎの経路のみを測定用経路として抽出する。例えば、ホップ数Ｎが４であれば、経路１、及び経路２が測定用経路である。
【０２０８】
次に、遅延箇所特定機能２０３は、ステップ７０４〜７０９において、測定用経路が、一意な経路として含まれるような仮想ネットワークを生成しつつ、測定用経路の転送遅延を測定する。例えば、前述の経路１を、ステップ７０４において選択した場合、遅延箇所特定機能２０３は、ステップ７０６において仮想ネットワーク１０１２を新たに生成し、ステップ７０７及び７０８において転送遅延を測定する。
【０２０９】
遅延箇所特定機能２０３は、ステップ８０１において、ステップ７０４〜７０９において設定された遅延テーブル２１２の行を転送遅延（遅延４０２の値）が大きい順にソートする。ここで、前述の通りスイッチ１００６が転送遅延超過の原因であるため、スイッチ１００６を含む経路を示す行は上位に移動される。すなわち、ステップ８０２において、ソートされた遅延テーブル２１２の上位の行に相当する経路テーブル２１０の行において、スイッチ１００６が列３０４に出現する数は多くなる。このため、遅延箇所特定機能２０３は、転送遅延超過の原因はスイッチ１００６であると推定する。
【０２１０】
次に、遅延箇所特定機能２０３は、ステップ８０３において、スイッチ１００６を通過する経路を抽出し、ステップ８０４〜８０９において抽出された各経路の転送遅延を測定する。その結果、例えば、スイッチ１００６を通過するホップ数Ｎが４の経路のほとんどについて、初期遅延テーブル２１１に設定される遅延４０２の値が４ｍｓであり、かつ、ステップ８０４〜８０９における測定結果が８ｍｓである場合、ステップ８１０において、遅延箇所特定機能２０３は、転送遅延が増加した経路が多いと判定し、ステップ８１１においてスイッチ１００６が転送遅延超過の原因であると判定する。
【０２１１】
さらに遅延回避設定機能２０４は、ステップ９０１においてスイッチ１００６を通過するフローを、あらかじめ保持するフロー情報から抽出する。ここで遅延回避設定機能２０４は、他の端末のフローを把握していない場合、端末１００１と端末１００２とがネットワーク１０００に相当する仮想ネットワーク上で通信するフローのみを抽出する。
【０２１２】
遅延回避設定機能２０４は、ステップ９０２及び９０４において、スイッチ１００６を通過しないフローを特定する。遅延回避設定機能２０４は、例えば、端末１００１からスイッチ１００５、スイッチ１００９、及びスイッチ１００７を通過して端末１００２に到着する経路のフロー候補を特定する。このため、ステップ９０５において代替経路が存在すると判定され、遅延回避設定機能２０４は、ステップ９０６を実行する。
【０２１３】
さらに、遅延回避設定機能２０４は、ステップ９０６〜９１１において代替経路の転送遅延を測定する。測定結果が４ｍｓである場合、代替経路の転送遅延は、初期遅延テーブル２１１の遅延４０２の４ｍｓ（初期状態の一つのリンクにおいて、１ｍｓの転送遅延が発生すると仮定）と比較し、ほとんど差がない。このため、遅延回避設定機能２０４は、ステップ９１２において代替経路の転送遅延に問題はないと判定し、ステップ９１３においてネットワーク１０００に相当する仮想ネットワークの構成を、代替経路を通過するように設定する。
【０２１４】
本実施例によれば、複数の経路が存在するネットワークにおいて、各端末間の転送遅延が要件を満たさない場合、転送遅延超過の原因となるスイッチを推定し、さらに検証することによって原因スイッチを精度よく特定することができる。
【０２１５】
また、本実施例の遅延箇所特定機能２０３は、ネットワークにおけるトラヒック量が少ない初期状態において測定された転送遅延を用いて原因スイッチであるか否かを検証するため、精度よく原因スイッチを特定できる。
【０２１６】
また、本実施例の遅延箇所特定機能２０３は、要件を満たさない転送遅延の通信が通過した可能性のあるスイッチを抽出し、抽出されたスイッチを通過する測定用経路を抽出する。そして、測定用経路のうち、転送遅延が大きい経路に共通して含まれるスイッチを、原因スイッチであると推定するため、精度よく原因スイッチである可能性があるスイッチの候補を抽出することができる。
【０２１７】
また、本実施例の遅延箇所特定機能２０３は、推定された原因スイッチの候補を通過する検証用経路において、転送遅延が増加する経路が多いか否かを判定することによって、推定された原因スイッチの候補が、原因スイッチであるか否かを精度よく特定することができる。
【０２１８】
さらに、本実施例の遅延回避設定機能２０４は、原因スイッチを通過するフローの経路を、原因スイッチを通過せず、かつ、転送遅延が改善される経路に変更するため、各端末間の転送遅延を速やかに改善することができる。
【０２１９】
また、サーバ１０１の各機能は、経路が一意な仮想ネットワークを各スイッチに設定することによって、各経路の転送遅延を測定することができる。
【０２２０】
なお、本発明は前述の実施例に限定されるものではなく、様々な変形例が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０２２１】
また、前述の各構成、機能、処理手順等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、各機能を実現するプログラム、テーブル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【符号の説明】
【０２２２】
１００  ネットワーク
１０１  サーバ
１０２〜１０７  端末
１０８〜１１３  スイッチ
１１４〜１２６  リンク
２００  ソフトウェア
２０１  ハードウェア
２０２  初期情報取得機能
２０３  遅延箇所特定機能
２０４  遅延回避設定機能
２０５  プロセッサ
２０６  揮発性メモリ
２０７  画面表示部
２０８  通信インタフェース
２０９  記憶装置
２１０  経路テーブル
２１１  初期遅延テーブル
２１２  遅延テーブル
２１３  ネットワークテーブル
１０００  ネットワーク
１００１〜１００４  端末
１００５〜１０１１  スイッチ
１０１２  仮想ネットワーク
【図１】
2014075668.tif 000003
【図２】
2014075668.tif 000004
【図３】
2014075668.tif 000005
【図４】
2014075668.tif 000006
【図５】
2014075668.tif 000007
【図６】
2014075668.tif 000008
【図７】
2014075668.tif 000009
【図８】
2014075668.tif 000010
【図９】
2014075668.tif 000011
【図１０】
2014075668.tif 000012