以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としてのネットワーク検証装置1の機能ブロック構成を図1に示す。図1において、ネットワーク検証装置1は、分割網情報取得部11と、分割網別転送行列取得部12と、検証処理部13とを備える。ネットワーク検証装置1は、対象ネットワークを検証する装置である。
対象ネットワークは、物理ポートを有するスイッチ装置を含んで構成されている。例えば、スイッチ装置は、L2スイッチ、L3スイッチ、Openflow(登録商標)スイッチ等により構成可能である。なお、スイッチ装置は、上述の構成に限定されない。また、各スイッチ装置は、通信制御単位を転送する装置である。ここで、通信制御単位とは、例えば、フレーム、パケット、フロー等と呼ばれる単位を適用可能である。なお、通信制御単位は、上述の単位に限定されない。また、通信制御単位は、その内容に基づきその種類が特定され得るものとする。例えば、通信制御単位は、そのヘッダデータの内容によりその種類が特定されるものであってもよい。また、対象ネットワークは、物理網であってもよいし、仮想網であってもよい。例えば、通信制御単位がフローであり、スイッチ装置がOpenflow(登録商標)スイッチである場合には、対象ネットワークは、仮想網となる。
また、対象ネットワークでは、設計に基づく所定のスイッチ装置間で、設計に基づく所定の物理ポート間が物理リンクにより接続されている。また、各スイッチ装置には、転送規則が設定されている。転送規則は、そのスイッチ装置に入力された通信制御単位の種類および入力ポートに応じて、そのスイッチ装置からその通信制御単位を出力する際の種類および出力ポートが定められた情報である。
ここで、ネットワーク検証装置1は、図2に示すようなハードウェア要素によって構成可能である。図2において、ネットワーク検証装置1は、CPU(Central Processing Unit)1001、メモリ1002、出力装置1003、および、入力装置1004を含む。メモリ1002は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)によって構成される。出力装置1003は、ディスプレイ装置やプリンタ等のようなユーザに情報を提供する装置によって構成される。入力装置1004は、キーボード、マウス等のようなユーザ操作の入力を受け付ける装置によって構成される。この場合、分割網情報取得部11、分割網別転送行列取得部12および検証処理部13は、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するとともに出力装置1003および入力装置1004を制御するCPU1001によって構成される。なお、ネットワーク検証装置1およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
分割網情報取得部11は、分割網に関する情報を取得する。ここで、分割網とは、対象ネットワークが、スイッチ装置間で転送される通信制御単位の種類に応じて分割されたものである。具体的には、各分割網は、所定の1つ以上の種類の通信制御単位が通過し得る物理ポートによって構成される。このとき、ある分割網において転送され得る種類の通信制御単位が、他の分割網で転送されることがないよう、各分割網は構成される。なお、同一の物理ポートが、複数の分割網に属していてもよい。
分割網情報取得部11は、そのような分割網に関する情報として、あらかじめメモリ1002に格納されたものを取得してもよい。または、分割網情報取得部11は、分割網に関する情報として、入力装置1004を介してユーザ操作により入力された情報を取得してもよい。または、分割網情報取得部11は、分割網に関する情報を、可搬型記録媒体や他のコンピュータ等から、各種インタフェース(図示せず)を介して取得してもよい。
分割網別転送行列取得部12は、各分割網について、分割網別転送行列を取得する。分割網別転送行列とは、その分割網に含まれる各スイッチ装置の各物理ポートを任意の時点に通過する任意の種類の通信制御単位が、次の時点で通過することになる転送先のスイッチ装置の物理ポートおよびその通信制御単位の種類を表す。分割網別転送行列は、対象ネットワークの物理トポロジおよび各スイッチ装置に設定された転送規則に応じた内容となる。
分割網別転送行列取得部12は、そのような分割網別転送行列として、あらかじめメモリ1002に格納されたものを取得してもよい。または、分割網別転送行列取得部12は、分割網別転送行列として、入力装置1004を介してユーザ操作により入力された情報を取得してもよい。または、分割網別転送行列取得部12は、分割網別転送行列を、可搬型記録媒体や他のコンピュータ等から、各種インタフェース(図示せず)を介して取得してもよい。
検証処理部13は、分割網毎に分割網別転送行列を用いた演算を行うことにより、所定の検証項目について対象ネットワークを検証する。例えば、検証処理部13は、所定の検証項目を表す検証情報が分割網毎に分離された分割網別検証情報に対して、分割網別転送行列を用いた演算を行ってもよい。そして、検証処理部13は、分割網別転送行列のそれぞれを用いた演算結果に基づいて、対象ネットワークについての検証項目の検証結果を求め、出力してもよい。
以上のように構成されたネットワーク検証装置1の動作について、図3を参照して説明する。
まず、分割網情報取得部11は、対象ネットワークの分割網に関する情報を取得する(ステップS1)。
次に、分割網別転送行列取得部12は、各分割網について、分割網別転送行列を取得する(ステップS2)。
次に、検証処理部13は、分割網毎に、分割網別転送行列を用いた演算を行う(ステップS3)。
次に、検証処理部13は、分割網別転送行列を用いたそれぞれの演算結果に基づいて、対象ネットワークの検証項目についての検証結果を出力する(ステップS4)。
以上で、ネットワーク検証装置1は、動作を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としてのネットワーク検証装置は、ネットワーク規模が増大しても、計算量を抑制して効率的にネットワーク検証を行うことができる。
その理由について説明する。まず、分割網情報取得部が、分割網に関する情報を取得する。分割網に関する情報としては、検証対象の対象ネットワークが、通信制御単位の種類に応じて分割された分割網に関する情報が取得される。そして、分割網別転送行列取得部が、各分割網について、分割網別転送行列を取得する。分割網別転送行列としては、その分割網に含まれる各スイッチ装置の各物理ポートを任意の時点に通過する任意の種類の通信制御単位が、次の時点で通過することになる転送先のスイッチ装置の物理ポートおよびその通信制御単位の種類を表す行列が取得される。そして、検証処理部が、分割網毎に分割網別転送行列を用いた演算を行うことにより、所定検証項目について対象ネットワークを検証する。例えば、検証処理部は、検証項目を表す検証情報が分割網毎に分離された各検証情報に対して、対応する分割網別転送行列を用いて演算を行う。これにより、検証処理部は、分割網毎に演算した演算結果に基づいて、対象ネットワーク全体についての検証項目の検証結果を求めて出力することができる。
このように、本実施の形態は、対象ネットワークを分割網に分割して分割網毎に検証処理を行う。ここで、分割網は、通信制御単位の種類に応じて分割されたものであるため、分割網毎の検証が可能である。ネットワーク検証処理では、スイッチ装置数や物理ポート数などの対象ネットワーク規模の増大に対して、正比例以上に検証時間が増大する。したがって、本実施の形態は、対象ネットワークを分割せずに検証処理を行う場合よりも、全体として検証時間を短くすることができる。
(本発明の第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
本発明の第2の実施の形態としてのネットワーク検証装置2の構成を図4に示す。図4において、ネットワーク検証装置2は、分割網情報取得部21と、分割網別転送行列取得部22と、検証処理部23とを含む。また、検証処理部23は、要求トラフィック取得部231と、第1算出部232と、第2算出部233と、第3算出部234と、帯域検証部235とを含む。なお、要求トラフィック取得部231、第1算出部232、第2算出部233、第3算出部234、および、帯域検証部235は、それぞれ、本発明の検証処理部の一部の一実施形態を構成する。なお、ネットワーク検証装置2およびその各機能ブロックは、図2を参照して説明した本発明の第1の実施の形態と同様のハードウェア要素によって構成可能である。ただし、ネットワーク検証装置2およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
次に、ネットワーク検証装置2が検証対象とする対象ネットワークについて説明する。本実施の形態では、対象ネットワークについて、物理トポロジ情報および転送規則情報が取得可能となっている。ネットワーク検証装置2は、これらの情報として、あらかじめメモリ1002に格納されたものを取得してもよい。または、ネットワーク検証装置2は、これらの情報として、入力装置1004を介してユーザ操作により入力された情報を取得してもよい。または、ネットワーク検証装置2は、これらの情報を、可搬型記録媒体や他のコンピュータ等から、各種インタフェース(図示せず)を介して取得してもよい。また、ネットワーク検証装置2は、これらの情報を、SNMP(Simple Network Management Protocol)等を用いて、対象ネットワークから取得してもよい。
物理トポロジ情報は、対象ネットワークを構成するスイッチ装置間を接続する物理リンクに関する情報を表す。例えば、物理トポロジ情報は、物理リンクについて一方の接続端のスイッチ装置および物理ポート、および、他方の接続端のスイッチ装置および物理ポートを表す情報から構成されていてもよい。なお、上述した物理トポロジ情報の構成は一例であり、本発明における物理トポロジ情報の構成を限定するものではない。
転送規則情報は、各スイッチ装置に設定される。転送規則情報は、そのスイッチ装置で転送される通信制御単位について、入出力時の種類および入出力ポートに関する規則を表す。例えば、転送規則情報は、入力時の通信制御単位の種類hi、入力ポートpi、出力時の通信制御単位の種類ho、および、出力ポートpoの組み合わせを表す情報から構成されていてもよい。この場合、転送規則情報は、そのスイッチ装置の入力ポートpiに入力される種類hiの通信制御単位が、種類hoに変換されて出力ポートpoから出力される規則を表す。なお、入力時の種類hiおよび出力時の種類hoが同一の場合、その転送規則情報は、そのスイッチ装置の入力ポートpiに入力される種類hiの通信制御単位が、その種類が変換されることなく、出力ポートpoから出力される規則を表す。なお、本実施の形態では、通信制御単位は、そのヘッダデータの内容に応じて種類が特定されるものとする。つまり、通信制御単位の種類は、ヘッダデータの種類によって表されるものとする。そこで、以下では、通信制御単位の種類を、単に、ヘッダデータの種類とも記載する。また、ヘッダデータを、単にヘッダとも記載する。
次に、ネットワーク検証装置2の各機能ブロックについて説明する。
分割網情報取得部21は、対象ネットワークの物理トポロジ情報、および、各スイッチ装置に設定された転送規則情報に基づいて、通信制御単位の種類に応じて対象ネットワークを構成するスイッチ装置の物理ポートを分類する。そして、分割網情報取得部21は、分割網情報を生成する。具体的には、分割網情報取得部21は、物理ポートの分類ごとに分割網を構成すればよい。また、分割網情報取得部21は、分割網情報として、分割網別の物理トポロジ情報と、分割網別の転送規則情報とを生成してもよい。
ここで、通過する通信制御単位の種類に応じた物理ポートの分類について説明する。分割網情報取得部21は、転送規則情報において、ヘッダの変換を伴わない通信制御単位については、その種類の通信制御単位が通過する物理ポートを同一の分類とする。また、分割網情報取得部21は、転送規則情報において、ヘッダの変換を伴う通信制御単位については、変換前後のヘッダデータをそれぞれ有する複数の種類の通信制御単位の少なくともいずれかが通過する物理ポートを同一の分類とする。
分割網別転送行列取得部22は、分割網別トポロジ情報および分割網別転送規則情報に基づいて、分割網別転送行列を生成する。例えば、分割網別転送行列R(n)は、次の数式1で表される。
ここで、nは、各分割網を示す識別子である。また、G(n)は、分割網別物理トポロジ行列を表し、分割網別の物理トポロジ情報に基づき生成される。分割網別物理トポロジ行列G(n)の生成処理については後述する。分割網別物理トポロジ行列G(n)は、この分割網nに含まれるスイッチ装置間におけるこの分割網nに属する物理ポート間の接続関係を表す要素行列を拡張した行列である。また、L(n)は、分割網別転送規則行列を表し、分割網別の転送規則情報に基づき生成される。分割網別転送規則行列L(n)の生成処理については後述する。分割網別転送規則行列L(n)は、この分割網nに含まれる各スイッチ装置における入力ポート、入力時ヘッダ、出力ポート、出力時ヘッダの関係を表す行列である。分割網別転送行列R(n)は、行数および列数が|H(n)|×|P(n)|の正方行列である。ここで、|H(n)|は、分割網n内で転送対象とされる通信制御単位の種類数(ヘッダの種類数)を表す。|H(n)|は、分割網別の転送規則情報から抽出可能である。また、|P(n)|は、分割網nに分類された物理ポートの総数を表し、|P(n)|=|P(e1)|+|P(e2)|+・・・+|P(e|E(n)|)である。ここで、|P(ei)|は、分割網nを構成するi番目のスイッチ装置eiにおいて分割網nに分類された物理ポートの数を表す。ただし、i=1〜|E(n)|である。なお、|E(n)|は、分割網nを構成するスイッチ装置の数を表す。|P(n)|は、分割網別の物理トポロジ情報から抽出可能である。
分割網別転送行列R(n)は、その分割網を構成する各スイッチ装置の各物理ポートを任意の時点で通過する任意の種類の通信制御単位が、次の時点で通過するスイッチ装置の物理ポートおよび通信制御単位の種類を表す。例えば、各要素は、その列が表す物理ポートを任意の時点で通過する、その列が示す種類の通信制御単位が、次の時点で、その行が表す物理ポートを、その行が示す種類で通過する場合に「1」が設定されていてもよい。また、そうでない場合に、「0」が設定されていてもよい。
次に、分割網別物理トポロジ情報G(n)について説明する。分割網別物理トポロジ行列G(n)は、次の数式2に示すように定義することができる。
数式2に示すように、物理トポロジ行列G(n)は、行数および列数が|H(n)|×|P(n)|の正方行列である。物理トポロジ行列G(n)では、対角成分として、同一内容の要素行列g(n)が|H(n)|個並び、それ以外の成分が0となる。なお、要素行列g(n)は、分割網nに含まれる|E(n)|個のスイッチ装置間において分割網nに属する物理ポート間の接続関係を表す情報である。つまり、要素行列g(n)は、分割網別の物理トポロジ情報を表す情報である。このような要素行列g(n)は、行列数が|P(n)|=|P(e1)|+|P(e2)|+・・・+|P(e|E(n)|)|の正方行列となる。
要素行列g(n)の各要素は、接続元スイッチssと接続先スイッチsdとの物理的接続関係を示す。要素行列g(n)では、行方向に、要素行列Ssd,ssが|E(n)|個並び、列方向に、要素行列Ssd,ssが|E(n)|個並ぶ。要素行列g(n)において、添字sdおよび添字ssが同値である要素行列Ssd,ss、および、物理的に接続されていないスイッチ装置ssとスイッチ装置sdとの組み合わせを示すSsd,ssは、それぞれゼロ行列となる。
要素行列Ssd,ssは、|P(e_sd)|行|P(e_ss)|列の行列である。なお、e_sdは、eに添え字sdが添えられていることを表す。以降、添え字xを、“_x”と記載することもある。要素行列Ssd,ssの各要素は、接続元スイッチ装置ssの物理ポートpsと接続先スイッチ装置sdの物理ポートpdとの接続関係を示す要素p_pd,psにより定義することができる。物理的に接続されるポートの組み合わせを示すp_pd,psは「1」に設定され、それ以外の要素p_pd,psは「0」に設定される。
次に、分割網別転送規則行列L(n)について説明する。分割網別転送規則行列L(n)は、次の数式3に示すように定義することができる。
数式3に示すように、分割網別転送規則行列L(n)は、(|H(n)|×|P(n)|)行(|H(n)|×|P(n)|)列の正方行列である。分割網別転送規則行列L(n)の各要素は、要素行列Thi→hoにより定義することができる。要素行列Thi→hoは、分割網nの各スイッチ装置において通信制御単位のヘッダhiがヘッダhoに書き換えられて出力される規則を示し、|P(n)|行|P(n)|列の正方行列である。分割網別転送規則行列L(n)では、行方向に、要素行列Thi→hoがo=1〜|H(n)|まで|H(n)|個並び、列方向に、要素行列Thi→hoがi=1〜|H(n)|まで|H(n)|個並ぶ。
要素行列Thi→hoの各要素では、対角成分として、|P(ei)|行|P(ei)|列の正方行列である要素行列Tei(hi→ho)が|E(n)|個並び、それ以外の成分が0となる。ここで、要素行列Tei(hi→ho)は、分割網nに含まれるi番目のスイッチ装置ei(1≦ei≦|E(n)|)において、通信制御単位のヘッダhiをヘッダhoに書き換える規則を示している。
要素行列Tei(hi→ho)の各要素は、要素t_po,piにより定義することができる。要素t_po,piは、そのスイッチ装置eiにおける入力ポートpiおよび入力時ヘッダhiと、出力ポートpoおよび出力時ヘッダhoとの関係を示す。すなわち、要素t_po,piには、そのスイッチ装置eiにおいて、その列が示す入力ポートpiに入力されたヘッダhiの通信制御単位が、その行が示す出力ポートpoからヘッダhoで出力される規則がある場合に「1」が設定される。また、それ以外の場合に、要素t_po,piには「0」が設定される。
このように、分割網別転送行列取得部22は、分割網情報取得部21により生成された分割網別の物理トポロジ情報および分割網別の転送規則情報に基づいて、数式2の分割網別物理トポロジ行列G(n)および数式3の分割網別転送規則行列L(n)を生成する。そして、分割網別転送行列取得部22は、生成したG(n)およびL(n)を用いて、数式1に基づき分割網別転送行列R(n)を生成すればよい。なお、分割網別転送行列取得部22は、このようにして分割網別転送行列R(n)を生成する代わりに、可搬型記録媒体や他のコンピュータ等から、各種インターフェース(図示せず)を経由して分割網別転送規則行列R(n)を取得してもよい。または、分割網別転送行列取得部22は、分割網別転送行列R(n)として、入力装置1004を介して入力される情報を取得してもよい。または、分割網別転送行列取得部22は、分割網別転送行列R(n)として、あらかじめメモリ1002に格納された情報を取得してもよい。
検証処理部23は、要求トラフィック取得部231を用いて、各分割網に流入するトラフィック量を表す情報を取得する。そして、検証処理部23は、第1算出部232および第2算出部233を用いて、分割網別の要求トラフィック量を表す情報に対して、分割網別転送行列の累乗を用いて演算を行う。これにより、検証処理部23は、各分割網における各スイッチ装置間のトラフィック量を表す情報を算出する。そして、検証処理部23は、第3算出部234を用いて、分割網別のトラフィック量を表す情報に基づいて、対象ネットワークにおけるトラフィック量を算出する。そして、検証処理部23は、帯域検証部235を用いて、対象ネットワークにおける帯域溢れを検証する。
具体的には、要求トラフィック取得部231は、対象ネットワーク内に流入する要求トラフィック量を表す情報に基づいて、分割網別の要求トラフィック量を表す分割網別要求トラフィックベクトルv0(n)を生成する。ここで、要求トラフィックを表す情報は、流入するスイッチ装置の物理ポート、流入する通信制御単位の種類、および、流入するトラフィック量の組合せからなる情報であってもよい。
分割網別要求トラフィックベクトルv0(n)は、(|H(n)|×|P(n)|)行の列ベクトルである。分割網別要求トラフィックベクトルv0(n)の各要素は、その行が示す種類のヘッダの通信制御単位が、その行が示すスイッチ装置の物理ポートに流入するトラフィック量を示す。つまり、分割網別要求トラフィックベクトルv0(n)の各要素のうち、分割網nが外部と接続されるスイッチ装置の物理ポートを示す要素には、要求トラフィック量が設定される。それ以外の要素には「0」が設定される。例えば、分割網nを構成するei番目のスイッチ装置のpi番目のポートにhi種類目のヘッダを有する要求トラフィックがm(Mbps:メガバイト毎秒)流入するとする。この場合、要求トラフィックベクトルv0(n)において、[{(hi−1)×|P(n)|}+{(|P(e1)|+・・・+|P(ei−1)|)}+pi番目の要素には、「m」が設定される。
なお、要求トラフィック取得部231は、対象ネットワークに対する要求トラフィックを表す情報を、メモリ1002、入力装置1004、可搬型記録媒体、または、他のコンピュータ等から、各種インタフェースを介して取得してもよい。または、要求トラフィック取得部231は、対象ネットワークに対する要求トラフィックを表す情報を、対象ネットワークを監視することにより取得してもよい。そして、要求トラフィック取得部231は、取得した情報を分割網nに対応するよう分離することにより、分割網別要求トラフィックベクトルv0(n)を生成すればよい。なお、要求トラフィック取得部231は、分割網別要求トラフィックベクトルv0(n)を生成する代わりに、メモリ1002、入力装置1004、可搬型記録媒体、または、他のコンピュータ等から、分割網別要求トラフィックベクトルv0(n)を取得してもよい。
第1算出部232は、分割網別要求トラフィックベクトルv0(n)と、分割網別転送行列R(n)の累乗とを用いて、次の数式4を用いて、分割網別流入トラフィックベクトルv(n)を算出する。分割網別流入トラフィックベクトルv(n)は、分割網nに含まれる各スイッチ装置に任意の時点で流入し得るトラフィック量を表す。
この分割網別流入トラフィックベクトルv(n)は、分割網別要求トラフィックベクトルv0(n)が定常的に分割網nに流入している状態で、分割網nを構成する各スイッチ装置に対する任意の時点での物理ポート毎およびヘッダ毎の流入トラフィック量を表す。
例えば、第1算出部232は、分割網別転送行列R(n)の累乗の算出に、公知の計算アルゴリズムを採用すればよい。例えば、分割網(n)にループ経路が存在しない場合、R(n)のすべての固有値は0となる。なお、R(n)の固有値の詳細については、次の実施の形態で述べる。したがって、この場合、R(n)の固有値1は存在しないので、
である。したがって、
には、逆行列が存在する。そこで、数式4は、以下のように変形できる。
また、ループ経路が無いので、
である。したがって、数式4は、さらに、以下の数式5のように変形できる。
また、第1算出部232は、分割網別流入トラフィックベクトルv(n)と、分割網別転送規則行列L(n)とを用いて、次の数式6により、分割網別流出トラフィックベクトルv(n)’を算出する。
この分割網別流出トラフィックベクトルv(n)’は、分割網別要求トラフィックベクトルv0(n)が定常的に分割網nに流入している状態で、分割網nを構成する各スイッチ装置からの、任意の時点での物理ポート毎およびヘッダ毎の流出トラフィック量を表す。
第2算出部233は、分割網別流入トラフィックベクトルv(n)に基づいて、分割網別物理ポート流入トラフィックベクトルvq(n)を生成する。例えば、第2算出部233は、次の数式7を用いて、分割網別物理ポート流入トラフィックベクトルvq(n)を算出可能である。
数式7において、I|P(n)|は、行列数が|P(n)|の単位行列である。したがって、W(n)は、|P(n)|行|P(n)|×|H(n)|列の行列となる。ここで、分割網別流入トラフィックベクトルv(n)は、|P(n)|×|H(n)|行の列ベクトルである。したがって、これらを掛け合わせて算出されるvq(n)は、|P(n)|行の列ベクトルとなる。この分割網別物理ポート流入トラフィックベクトルvq(n)は、分割網nに属する物理ポート毎に、この分割網nを転送される各ヘッダの流入トラフィック量を足し合わせた量を表す。つまり、vq(n)は、分割網nに対して分割網別要求トラフィックベクトルv0(n)が定常的に流入している状態で、分割網nに属する各物理ポートに対する、任意の時点での流入トラフィック量を表す。この場合、分割網nにおいてei番目のスイッチ装置のpi番目の物理ポートに流入するトラフィック量は、vq(n)の{|P(e1)|+・・・+|P(ei−1)|+pi}番目の要素として示される。
また、第2算出部233は、分割網別流出トラフィックベクトルv(n)’に基づいて、分割網別物理ポート流出トラフィックベクトルvq(n)’を生成する。例えば、第2算出部233は、次の数式8を用いて、分割網nにおける分割網別物理ポート流出トラフィックベクトルvq(n)’を算出可能である。
このようにして算出される分割網別流出トラフィックベクトルvq(n)’は、分割網nを構成する各スイッチ装置において分割網nに属する物理ポート毎に、この分割網nを転送される各ヘッダの流出トラフィック量を足し合わせた量を表す。つまり、vq(n)’は、分割網nに対して分割網別要求トラフィックベクトルv0(n)が定常的に流入している状態で、分割網nに属する各物理ポートからの、任意の時点での流出トラフィック量を表す。この場合、分割網nにおいてei番目のスイッチ装置のpi番目の物理ポートから流出するトラフィック量は、vq(n)’の{|P(e1)|+・・・+|P(ei−1)|+pi}番目の要素として示される。
第3算出部234は、第2算出部233で生成された分割網別物理ポート流入トラフィックベクトルvq(n)および分割網別物理ポート流出トラフィックベクトルvq(n)’について、分割網をまたいで同一の物理ポート毎にトラフィック量を足し合わせる。これにより、第3算出部234は、対象ネットワークを構成する各スイッチ装置における各物理ポートにおいて、任意の時点で流入・流出し得るトラフィック量の合計を算出することができる。
具体的には、第3算出部234は、第2算出部233で生成された分割網別物理ポート流入トラフィックベクトルvq(n)について、分割網をまたいで同一の物理ポート毎にトラフィック量を足し合わせる。これにより、第3算出部234は、物理ポート流入トラフィックベクトルvpを生成する。つまり、物理ポート流入トラフィックベクトルvpは、同じ物理ポートに流入する異なる分割網のトラフィック量を足し合わせたものである。したがって、物理ポート流入トラフィックベクトルvpは、対象ネットワークに要求トラフィック量が定常的に流入している状態で、任意の時点における各スイッチ装置の物理ポート毎の流入トラフィック量を表す。
また、第3算出部234は、第2算出部233で生成された分割網別物理ポート流出トラフィックベクトルvq(n)’について、分割網をまたいで同一の物理ポート毎にトラフィック量を足し合わせる。これにより、第3算出部234は、物理ポート流出トラフィックベクトルvp’を生成する。つまり、物理ポート流出トラフィックベクトルvp’は、同じ物理ポートから流出する異なる分割網のトラフィック量を足し合わせたものである。したがって、物理ポート流出トラフィックベクトルvp’は、対象ネットワークに要求トラフィック量が定常的に流入している状態で、任意の時点における各スイッチ装置の物理ポート毎の流出トラフィック量を表す。
そして、第3算出部234は、物理ポート流入トラフィックベクトルvpおよび物理ポート流入トラフィックベクトルvp’を足し合わせることにより、各物理ポートに流入・流出するトラフィック量の合計を算出すればよい。
帯域検証部235は、対象ネットワークにおける帯域溢れを検証する。具体的には、帯域検証部235は、各物理ポートに接続される物理リンクの帯域性能と、その物理ポートに流入・流出するトラフィック量の合計とを比較する。そして、帯域検証部235は、加算結果が物理リンクの帯域性能を超える物理リンクを、帯域溢れの可能性がある物理リンクとして特定する。なお、各物理リンクの帯域性能情報は、あらかじめ、ネットワーク検証装置2のメモリ1002に格納されていてもよい。または、帯域検証部235は、入力装置1004を介して各物理リンクの帯域性能情報を取得してもよい。その他、帯域検証部235は、可搬型記録媒体や他のコンピュータ等から各物理リンクの帯域性能情報を取得してもよい。また、各物理リンクの帯域性能は、物理トポロジ情報に含まれていてもよい。
以上のように構成されたネットワーク検証装置2の動作について、図面を参照して説明する。まず、ネットワーク検証装置2の動作の概略を図5に示す。
図5では、まず、分割網情報取得部21は、対象ネットワークの物理トポロジ情報、および、各スイッチ装置に設定された転送規則情報に基づいて、対象ネットワークを分割する(ステップS101)。
具体的には、前述のように、分割網情報取得部21は、スイッチ装置の物理ポートを、通過する通信制御単位の種類に応じて分類すればよい。例えば、分割網情報取得部21は、転送規則情報においてヘッダの変換を伴わないヘッダデータについては、そのヘッダデータを有する種類の通信制御単位が通過する物理ポートを1つの分類とすればよい。また、分割網情報取得部21は、転送規則情報においてヘッダの変換を伴うヘッダデータについては、変換前後のヘッダデータをそれぞれ有する複数の種類の通信制御単位の少なくともいずれかが通過する物理ポートを、1つの分類とすればよい。そして、分割網情報取得部21は、物理ポートの分類ごとに分割網を構成すればよい。そして、分割網情報取得部21は、物理トポロジ情報および転送規則情報を分割網別に分割し、分割網別の物理トポロジ情報および分割網別の転送規則情報を生成する。
次に、要求トラフィック取得部231は、対象ネットワーク内に流入する要求トラフィック量を表す情報を、分割網別に分割する。これにより、要求トラフィック取得部231は、分割網別要求トラフィックベクトルv0(n)を生成する(ステップS102)。
次に、ネットワーク検証装置2は、ステップS104〜S106の動作を、分割網n毎に繰り返す(ステップS103)。
ここでは、まず、分割網別転送行列取得部22は、分割網別転送行列R(n)を生成する(ステップS104)。前述のように、分割網別転送行列取得部22は、数式1〜数式3を用いて、分割網別転送行列R(n)を生成すればよい。このステップの詳細については後述する。
次に、第1算出部232は、分割網別要求トラフィックベクトルv0(n)に対して、分割網別転送行列R(n)の累乗を用いて演算を行う。これにより、第1算出部232は、この分割網nに含まれる各スイッチ装置における通信制御単位の種類ごとのトラフィック量を表す情報を算出する(ステップS105)。
具体的には、前述のように、第1算出部232は、分割網別要求トラフィックベクトルv0(n)と、分割網別転送行列R(n)の累乗とを用いて、数式4〜数式5により、分割網別流入トラフィックベクトルv(n)を算出する。そして、第1算出部232は、分割網別流入トラフィックベクトルv(n)と、分割網別転送規則行列L(n)とを用いて、数式6により、分割網別流出トラフィックベクトルv(n)’を算出する。
次に、第2算出部233は、この分割網nにおける通信制御単位の種類ごとのトラフィック量を表す情報に基づいて、この分割網nにおける物理ポートごとのトラフィック量を表す情報を算出する(ステップS106)。
具体的には、第2算出部233は、分割網別流入トラフィックベクトルv(n)に基づいて、数式7を用いて、この分割網nに属する物理ポート毎に、この分割網nで転送される各ヘッダについての流入トラフィック量を足し合わせる。これにより、分割網別物理ポート流入トラフィックベクトルvq(n)が生成される。また、第2算出部233は、分割網別流出トラフィックベクトルv(n)’に基づいて、数式8を用いて、この分割網nに属する物理ポート毎に、この分割網nで転送される各ヘッダについての流出トラフィック量を足し合わせる。これにより、分割網別物理ポート流出トラフィックベクトルvq(n)’が生成される。
以上のステップS104〜S106の動作を各分割網nについて完了すると、ネットワーク検証装置2の動作は、次のステップS107に進む。
次に、第3算出部234は、分割網別に算出した物理ポート毎のトラフィック量の情報に基づいて、対象ネットワークにおいて各物理リンクを流れ得るトラフィック量を算出する(ステップS107)。
例えば、前述のように、第3算出部234は、分割網別物理ポート流入トラフィックベクトルvq(n)の各要素を、分割網をまたいで足し合わせた物理ポート流入トラフィックベクトルvpをまず求めてもよい。そして、この場合、第3算出部234は、分割網別物理ポート流出トラフィックベクトルvq(n)’の各要素を、分割網をまたいで足し合わせた物理ポート流出トラフィックベクトルvp’を算出してもよい。そして、第3算出部234は、物理ポート流入トラフィックベクトルvpおよび物理ポート流出トラフィックベクトルvp’を足し合わせてもよい。これにより算出されるベクトルをVpp’とする。ベクトルVpp’の各要素は、対象ネットワークにおいて各物理ポートに流入・流出するトラフィック量を表す。すなわち、各要素は、その要素に対応する物理ポートに接続される物理リンクに流れ得る双方向のトラフィック量の加算結果を示す。
次に、帯域検証部235は、対象ネットワークにおける帯域溢れを検証する(ステップS108)。具体的には、帯域検証部235は、各物理ポートに接続される物理リンクの帯域性能と、前述のベクトルVpp’の各要素との比較により、検証を行えばよい。
次に、ステップS104における分割網別転送行列の生成動作の詳細を、図6に示す。
図6では、まず、分割網別転送行列取得部22は、対象の分割網nについて、分割網別の物理トポロジ情報および分割網別の転送規則情報を取得する(ステップA101)。
前述のように、分割網別の物理トポロジ情報は、その分割網に属するスイッチ装置間でその分割網に属する物理ポートを間の接続関係を表す。また、分割網別の転送規則情報は、その分割網に属する各スイッチ装置において、その分割網で転送される通信制御単位に関する入力時ヘッダデータ、入力ポート、出力ポートおよび出力時ヘッダデータの組み合わせを表す。これらの情報は、ステップS101において、分割網情報取得部21により生成されている。
次に、分割網別転送行列取得部22は、分割網別の転送規則情報に基づいて、この分割網nで転送対象とされる通信制御単位の種類の数(ヘッダの種類数)|H(n)|を取得する(ステップA102)。
また、分割網別転送行列取得部22は、分割網別の物理トポロジ情報に基づいて、この分割網nに属するスイッチ装置においてこの分割網に分類された物理ポートの総数|P(n)|を取得する(ステップA103)。
次に、分割網別転送行列取得部22は、|P(n)|および|H(n)|を用いて、分割網別の物理トポロジ情報から、分割網別物理トポロジ行列G(n)を生成する(ステップA104)。分割網別物理トポロジ行列G(n)は、この分割網nに含まれるスイッチ装置間におけるこの分割網nに属する物理ポート間の接続関係を表す要素行列g(n)を拡張した行列である。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、|P(n)|および|H(n)|を用いて、この分割網nの転送規則情報から、分割網別転送規則行列L(n)を生成する(ステップA105)。分割網別転送規則行列L(n)は、この分割網nに含まれる各スイッチ装置における入力ポート、入力時ヘッダ、出力ポート、出力時ヘッダの関係を表す行列である。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、分割網別物理トポロジ行列G(n)および分割網別転送規則行列L(n)を用いて、数式3により、分割網別転送行列R(n)を生成する(ステップA106)。
以上で、分割網別転送行列取得部22は、分割網別転送行列R(n)の生成動作を終了する。
次に、ステップA104における分割網別物理トポロジ行列G(n)の生成動作の詳細を、図7に示す。
図7では、まず、まず、分割網別転送行列取得部22は、分割網別物理トポロジ行列G(n)を、(|H(n)|×|P(n)|)行(|H(n)|×|P(n)|)列のゼロ行列として生成する(ステップB101)。
次に、分割網別転送行列取得部22は、この分割網nの物理トポロジ情報に基づいて、|P(n)|行|P(n)|列の要素行列g(n)を生成する(ステップB102)。前述のように、要素行列g(n)は、この分割網nに含まれるスイッチ装置間におけるこの分割網nに属する物理ポート間の接続関係を表す行列である。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、ステップB101で生成した分割網別物理トポロジ行列G(n)において、要素行列g(n)が対角成分として|H(n)|個並び、それ以外の要素が0となるよう、各要素を設定する(ステップB103)。
以上で、分割網別転送行列取得部22は、分割網別物理トポロジ行列G(n)の生成動作を終了する。
次に、ステップB102における要素行列g(n)の生成動作の詳細を、図8に示す。
図8では、まず、分割網別転送行列取得部22は、要素行列g(n)を、|P(n)|行|P(n)|列のゼロ行列として生成する(ステップC101)。
次に、分割網別転送行列取得部22は、接続元スイッチ装置ssとして、この分割網nを構成するスイッチ装置を1つ目から|E(n)|個目まで順次適用して、ステップC103〜C105を繰り返す(ステップC102)。なお、|E(n)|は、この分割網nに含まれるスイッチ装置の個数である。
さらに、分割網別転送行列取得部22は、接続元スイッチ装置ssに対する接続先スイッチ装置sdとして、この分割網nを構成するスイッチ装置を1つ目から|E(n)|個目まで順次適用して、ステップC104〜C105を繰り返す(ステップC103)。
ここでは、まず、分割網別転送行列取得部22は、要素行列Ssd,ssを生成する(ステップC104)。要素行列Ssd,ssは|P(e_sd)|行|P(e_ss)|列の行列である。要素行列Ssd,ssは、接続元スイッチ装置ssの物理ポートpsと接続先スイッチ装置sdの物理ポートpdとの物理的な接続関係を示す。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、要素行列Ssd,ssを、要素行列g(n)の所定位置に設定する(ステップC105)。
ここで、所定位置とは、次の通りである。具体的には、要素行列Ssd,ssは、要素行列g(n)において、(|P(e1)|+・・・|P(e_sd−1)|+1)行目、(|P(e1)|+・・・|P(e_ss−1)|+1)列目を左上の要素とする区分行列の位置に設定される。なお、|P(ei)|は、この分割網nに属するi番目のスイッチ装置eiにおいてこの分割網nに分類された物理ポート数を示している。
このようにして、この分割網nに含まれる全てのスイッチ装置の組合せについて、ステップC104〜C105の動作を完了すると、分割網別転送行列取得部22は、要素行列g(n)の生成動作を終了する。
次に、ステップC104における要素行列Ssd,ssの生成動作の詳細を、図9に示す。
図9では、まず、分割網別転送行列取得部22は、要素行列Ssd,ssを、|P(e_sd)|行|P(e_ss)|列のゼロ行列として生成する(ステップD101)。
次に、分割網別転送行列取得部22は、接続元ポートpsとして、接続元スイッチ装置ssにおいてこの分割網nに分類された物理ポートを1つ目から|P(e_ss)|個目まで順次適用して、ステップD103〜D105を繰り返す(ステップD102)。
さらに、分割網別転送行列取得部22は、接続先ポートpdとして、接続先スイッチ装置sdにおいてこの分割網nに分類された物理ポートを1つ目から|P(e_sd)|個目まで順次適用して、ステップD104〜D105を繰り返す(ステップD103)。
ここでは、まず、分割網別転送行列取得部22は、この分割網nの物理トポロジ情報に基づいて、接続元ポートpsが接続先ポートpdに接続されているか否かを判断する(ステップD104)。
ここで、接続元ポートpsが接続先ポートpdに接続されていると判断した場合、分割網別転送行列取得部22は、要素行列Ssd,ssのpd行ps列の要素に1を設定する(ステップD105)。
一方、接続元ポートpsが接続先ポートpdに接続されていないと判断した場合、分割網別転送行列取得部22は、要素行列Ssd,ssのpd行ps列の要素を0のままとする。
このようにして、このスイッチ装置ssおよびスイッチ装置sd間で、この分割網nに分類された物理ポート間の全ての組合せについてステップD104〜D105の動作を完了すると、分割網別転送行列取得部22は、要素行列Ssd,ssの生成動作を終了する。
次に、図6のステップA105における分割網別転送規則行列L(n)の生成動作の詳細を、図10に示す。
図10では、まず、分割網別転送行列取得部22は、分割網別転送規則行列L(n)を、(|H(n)|×|P(n)|)行(|H(n)|×|P(n)|)列のゼロ行列として生成する(ステップE101)。
次に、分割網別転送行列取得部22は、入力時ヘッダデータhiとして、この分割網nで転送対象とされる通信制御単位のヘッダデータを1つ目から|h(n)|個目まで順次適用して、ステップE103〜E105を繰り返す(ステップE102)。なお、|h(n)|は、この分割網nで転送対象とされる通信制御単位の種類数(ヘッダ数)である。
さらに、分割網別転送行列取得部22は、出力時ヘッダデータhoとして、この分割網nで転送対象とされる通信制御単位のヘッダデータを1つ目から|h(n)|個目まで順次適用して、ステップE104〜E105を繰り返す(ステップE103)。
ここでは、まず、分割網別転送行列取得部22は、要素行列Thi→hoを生成する(ステップE104)。要素行列Thi→hoは、この分割網nに含まれる各スイッチ装置において、ヘッダhiが入力されたときにヘッダhoとして出力される入出力ポートの関係を表す行列である。要素行列Thi→hoは、|P(n)|行|P(n)|列の正方行列となる。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、要素行列Thi→hoを、分割網別転送規則行列L(n)の所定位置に設定する(ステップE105)。ここで、所定位置とは、分割網別転送規則行列L(n)を|P(n)|行|P(n)|列に分けた区分行列のうち、左からhi番目で上からho番目の区分行列の位置である。
このようにして、この分割網nで転送対象とされる通信制御単位の種類の全ての組合せについて、ステップE104〜E105の動作を完了すると、分割網別転送行列取得部22は、分割網別転送規則行列L(n)の生成動作を終了する。
次に、ステップE104における要素行列Thi→hoの生成動作の詳細を、図11に示す。
図11では、まず、分割網別転送行列取得部22は、要素行列Thi→hoを、|P(n)|行|P(n)|列のゼロ行列として生成する(ステップF101)。
次に、分割網別転送行列取得部22は、スイッチ装置eiとして、この分割網nに含まれるスイッチ装置を1つ目から|E(n)|個目まで順次適用して、ステップF103〜F104を繰り返す(ステップF102)。
ここでは、まず、分割網別転送行列取得部22は、要素行列Tei(ho,hi)を生成する(ステップF103)。要素行列Tei(ho,hi)は、スイッチ装置eiにおいて、ヘッダhiが入力されてヘッダhoとして出力される際の入出力ポートの関係を表す行列である。要素行列Tei(ho,hi)は、|P(ei)|行|P(ei)|列の正方行列となる。なお、|P(ei)|は、スイッチ装置eiにおいてこの分割網に分類された物理ポート数を示す。このステップの詳細については後述する。
次に、分割網別転送行列取得部22は、要素行列Tei(ho,hi)を、要素行列Thi→hoの所定位置に設定する(ステップF104)。ここで、所定位置とは、要素行列Thi→hoにおいて、(|P(e1)|+・・・|P(ei−1)|+1)行目、(|P(e1)|+・・・|P(ei−1)|+1)列目を左上の要素とする区分行列の位置である。
このようにして、この分割網nに含まれる全てのスイッチ装置について、ステップF103〜F104の動作を完了すると、分割網別転送行列取得部22は、要素行列Thi→hoの生成動作を終了する。
次に、ステップF103における要素行列Tei(ho,hi)の生成動作を、図12に示す。
図12では、まず、分割網別転送行列取得部22は、要素行列Tei(ho,hi)を、|P(ei)|行|P(ei)|列のゼロ行列として生成する(ステップG101)。
次に、分割網別転送行列取得部22は、入力ポートpiとして、このスイッチ装置において分割網nに分類された物理ポートを1つ目から|P(ei)|個目まで順次適用して、以下のステップG103〜G105を繰り返す(ステップG102)。
さらに、分割網別転送行列取得部22は、出力ポートpoとして、このスイッチ装置において分割網nに分類された物理ポートを1つ目から|P(ei)|個目まで順次適用して、以下のステップG104〜G105を繰り返す。
ここでは、まず、分割網別転送行列取得部22は、この分割網の転送規則情報において、このスイッチ装置eiにおいて入力時ヘッダデータhiをhoに変換して、ポートpiからポートpoに転送する転送規則があるか否かを判断する(ステップG104)。
ここで、そのような転送規則があると判断した場合、分割網別転送行列取得部22は、要素行列Tei(ho,hi)のpo行pi列の要素に1を設定する(ステップG105)。
一方、そのような転送規則がないと判断した場合、分割網別転送行列取得部22は、要素行列Tei(ho,hi)のpo行pi列の要素を0のままとする。
このようにして、このスイッチ装置eiにおいてこの分割網nに分類された物理ポート間の全ての組合せについて、ステップG104〜G105の動作を完了すると、分割網別転送行列取得部22は、要素行列Tei(ho,hi)の生成動作を終了する。
以上で、ネットワーク検証装置2の動作の説明を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としてのネットワーク検証装置は、ネットワーク規模が増大しても、計算量を抑制して効率的にネットワーク検証を行うことができる。
その理由について説明する。まず、分割網情報取得部が、検証対象の対象ネットワークを、通信制御単位の種類に応じて分割し、分割網に関する情報を生成する。そして、分割網別転送行列取得部が、各分割網について、分割網別の物理トポロジ情報と、分割網別の転送規則情報とに基づいて、分割網別転送行列を生成する。分割網別転送行列は、その分割網に含まれる各スイッチ装置の各物理ポートを任意の時点に通過する任意の種類の通信制御単位が、次の時点で通過することになる転送先のスイッチ装置の物理ポートおよびその通信制御単位の種類を表す。そして、要求トラフィック取得部が、対象ネットワークに流入が想定される要求トラフィック量を分割網別に分割して分割網別要求トラフィックベクトルを生成する。そして、第1算出部および第2算出部が、分割網別要求トラフィックベクトルと、分割網別転送行列の累乗とを用いて、分割網毎に任意の時点において各スイッチ装置の物理ポートに流入・流出するトラフィック量を算出する。そして、第3算出部が、分割網別のトラフィック量を加算することにより、対象ネットワークにおける物理リンクごとのトラフィック量を算出する。そして、帯域検証部は、物理リンクごとに算出したトラフィック量の加算結果と、各物理リンクに定められた帯域性能とを比較する。これにより、帯域検証部は、帯域溢れの可能性がある物理リンクを特定可能となる。
このように、本実施の形態は、対象ネットワークを分割網に分割して分割網毎に、任意の時点で各スイッチ装置に流入・流出する可能性のあるトラフィック量を算出する。ここで、分割網は、通信制御単位の種類に応じて分割されたものであるため、分割網毎にトラフィック量の算出が可能である。このとき、本実施の形態は、対象ネットワークを分割して分割網毎に検証を行うことにより、対象ネットワークを分割しない場合に比べて、上述の各種演算処理で用いるベクトルおよび行列の要素数を大幅に削減することができる。これは、本実施の形態では、これらの各種ベクトルおよび行列に、その分割網に含まれるスイッチ装置および物理ポートに対応する要素を含め、その分割網に含まれないスイッチ装置および物理ポートに対応する要素を含めないからである。このように、本実施の形態は、対象ネットワークにおいて、スイッチ装置数や物理ポート数などのネットワーク規模が増大しても、対象ネットワークを通信制御単位の種類に応じて分割することにより、分割しない場合よりも、検証時間を大幅に短くすることができる。
また、本実施の形態は、分割網毎に算出したトラフィック量を足し合わせることにより対象ネットワークにおける各物理リンクについてのトラフィック量を算出し、各物理リンクの帯域性能と比較する。これにより、本実施の形態は、対象ネットワークにおいて、通信品質の劣化が生じ得る箇所を、対象ネットワークを分割しないで検証する場合よりも効率よく特定して出力することができる。このように、本実施の形態は、対象ネットワークの帯域問題をより短い検証時間で効率的に検出することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
本発明の第3の実施の形態としてのネットワーク検証装置3の構成を図13に示す。図13において、ネットワーク検証装置3は、本発明の第2の実施の形態としてのネットワーク検証装置2に対して、検証処理部23に替えて検証処理部33を備える点が異なる。検証処理部33は、検証処理部23と同一の構成に加えて、ループ判定部336と、可達域検証部337とを含む。なお、ループ判定部336および可達域検証部337は、それぞれ、本発明の検証処理部の一部の一実施形態を構成する。また、ネットワーク検証装置3およびその各機能ブロックは、図2を参照して説明した本発明の第1の実施の形態と同様のハードウェア要素によって構成可能である。ただし、ネットワーク検証装置3およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
ループ判定部336は、分割網別転送行列の固有値に基づいて、対象ネットワーク内にループ経路が存在するか否かを検証する。
詳細には、ループ判定部336は、各分割網について、分割網別転送行列R(n)の固有値を算出する。そして、ループ判定部336は、全ての分割網別転送行列R(n)において全ての固有値が0になる場合に、対象ネットワークにループ経路が存在しないと判定する。また、ループ判定部336は、固有値の少なくとも1つが0にならない分割網別転送行列R(n)が少なくとも1つ存在する場合に、対象ネットワークにループ経路があると判定する。
これは、R(n)の固有値がすべて0であることと、
とは、同値であることが知られているためである。もし、R(n)の固有値の少なくとも1つが0にならない場合、上述のnが存在しないことになる。その場合、その分割網において、無限にトラフィック量が増えることになる。これは、すなわち、ループ経路があるためである。したがって、ループ判定部336は、全ての分割網別転送行列R(n)の固有値がすべて0になるか否かに基づいて、対象ネットワークにおけるループ経路の有無を判定できる。なお、ループ判定部336は、固有値の算出方法に、公知の手法を採用すればよい。
可達域検証部337は、分割網別のトラフィック量に基づいて、通信制御単位の種類ごとの可達域を検証する。ここで、分割網別のトラフィック量は、第1算出部232によって算出された分割網別流入トラフィックベクトルv(n)および分割網別流出トラフィックベクトルv(n)’である。この場合、ベクトルv(n)およびv(n)’は、その分割網で転送対象とされる通信制御単位の種類別のトラフィック量を表す列ベクトルが縦に連結されたものとなっている。そして、これらのベクトルの各要素のうち、0である要素は、その種類の通信制御単位が流入または流出することのないスイッチ装置の物理ポートを示している。また、0でない要素は、その種類の通信制御単位が流入または流出し得るスイッチ装置の物理ポートを示している。したがって、可達域検証部337は、第1算出部232の算出結果であるこれらのベクトルv(n)およびv(n)’に基づいて、通信制御単位の種類ごとの可達域を検証可能である。
例えば、可達域検証部337は、通信制御単位の種類ごとの可達域ベクトルvh(h)およびvh(h)’を、ベクトルv(n)およびv(n)’に基づき算出してもよい。この場合、可達域検証部337は、まず、次の数式9によって、可達域ベクトルを算出するためのフィルタ行列Hv(h)を定義する。
数式9において、Hv(h)は、対象となる通信制御単位のヘッダh以外のヘッダに関する要素をマスクするためのフィルタ行列である。また、0|E||P|は、(|E|×|P|)行(|E|×|P|)列のゼロ行列を表す。また、I|E||P|は、(|E|×|P|)行(|E|×|P|)列の単位行列を表す。したがって、Hv(h)は、(|E|×|P|)行(|E|×|P|×|H|)列となる。なお、|E|は、対象ネットワークに含まれるスイッチ装置の総数を表す。また、|P|は、対象ネットワークに含まれるスイッチ装置のうち、最も多い物理ポートを有するスイッチ装置の物理ポート数を表す。また、|H|は、対象ネットワークで転送される通信制御単位の種類数を表す。
可達域検証部337は、上述のフィルタ行列Hv(h)を用いて、以下の数式10により、通信制御単位のh番目の種類についての可達域ベクトルの1つであるvh(h)を算出する。
ここで、Nは、分割網の数を表す。また、v(n)’’は、分割網別流入トラフィックベクトルv(n)を(|E|×|P|×|H|)行に拡張した列ベクトルである。つまり、第1算出部232によって算出された分割網別流入トラフィックベクトルv(n)は、(|P(n)|×|H(n)|)行の列ベクトルであった。v(n)’’は、この分割網別流入トラフィックベクトルv(n)に、その分割網に含まれないスイッチ装置および物理ポートに対応する要素を0として付加した(|E|×|P|×|H(n)|)行の列ベクトルである。数式10におけるベクトルVは、このような分割網ごとのベクトルv(n)’’を分割網の数Nだけ縦に連結した列ベクトルである。分割網nの可達域ベクトルvh(h)は、この列ベクトルVに対してフィルタ行列Hv(n)を適用することにより算出される。このようにして算出される可達域ベクトルvh(h)は、(|E|×|P|)行の列ベクトルとなる。可達域ベクトルvh(h)は、対象ネットワークで転送対象とされるh番目の種類の通信制御単位について、対象ネットワークを構成する各スイッチ装置の各物理ポートに流入するトラフィック量を表す。各要素は、その要素が0でない場合に、その物理ポートにその種類の通信制御単位が流入することを表す。また、各要素は、その要素が0である場合に、その物理ポートにその種類の通信制御単位が流入しないことを表す。なお、この対象ネットワークにおけるe番目のスイッチ装置のp番目の物理ポートに流入するh番目の種類の通信制御単位のトラフィック量は、可達ベクトルvh(h)における{(e−1)|P|+p}行目の要素の値になる。
同様にして、可達域検証部337は、次の数式11によって、可達域ベクトルのもう1つであるvh(h)’を算出可能である。
ここで、v(n)’’’は、分割網別流出トラフィックベクトルv(n)’を(|E|×|P|×|H|)行に拡張した列ベクトルである。つまり、第1算出部232によって算出された分割網別流出トラフィックベクトルv(n)’は、(|P(n)|×|H(n)|)行の列ベクトルであった。v(n)’’’は、この分割網別流出トラフィックベクトルv(n)’に、その分割網に含まれないスイッチ装置および物理ポートに対応する要素を0として付加した(|E|×|P|×|H(n)|)行の列ベクトルである。数式11におけるベクトルV’は、このような分割網ごとの列ベクトルv(n)’’’を分割網の数Nだけ縦に連結したベクトルである。分割網nの可達域ベクトルvh(h)’は、この列ベクトルV’に対してフィルタ行列Hv(n)を適用することにより算出される。このようにして算出される可達域ベクトルvh(h)’は、(|E|×|P|)行の列ベクトルとなる。可達域ベクトルvh(h)’は、対象ネットワークで転送対象とされるh番目の種類の通信制御単位について、対象ネットワークを構成する各スイッチ装置の各物理ポートから流出するトラフィック量を表す。各要素は、その要素が0でない場合に、その物理ポートからその種類の通信制御単位が流出することを表す。また、各要素は、その要素が0である場合に、その物理ポートからその種類の通信制御単位が流出しないことを表す。なお、この対象ネットワークにおけるe番目のスイッチ装置のp番目の物理ポートから流出するh番目の種類の通信制御単位のトラフィック量は、可達ベクトルvh(h)’における{(e−1)|P|+p}行目の要素の値になる。
例えば、可達域検証部337は、可達域ベクトルvh(h)およびvh(h)’に基づいて、通信制御単位の種類ごとの可達域を出力してもよい。具体的には、可達域検証部337は、対象ネットワークの物理トポロジを示す模式図に、通信制御単位の種類ごとに、その通信制御単位が流れ得る物理リンクを視認可能に重畳表示してもよい。そのような物理リンクは、vh(h)およびvh(h)’の0でない要素が示す物理ポートに接続されるリンクである。なお、上述のようにして算出される可達域ベクトルvh(h)およびvh(h)’の各要素は、対応する物理ポートから流入・流出するトラフィック量を示している。そこで、可達域検証部337は、対象ネットワークの物理トポロジを示す模式図に、通信制御単位の種類ごとに、その種類の通信制御単位が流れ得る物理リンクでのトラフィック量を重畳表示することにより、その可達域を出力してもよい。
以上のように構成されたネットワーク検証装置3の動作について、図面を参照して説明する。なお、ネットワーク検証装置3の帯域検証動作については、図5〜図12を参照して説明した本発明の第2の実施の形態と同様であるため、本実施の形態における詳細な説明を省略する。まず、ネットワーク検証装置3のループ検証動作を図14に示す。
図14において、まず、ループ判定部336は、分割網毎に、分割網別転送行列R(n)の固有値を算出する(ステップH101)。
なお、各分割網についての分割網別転送行列R(n)は、図6に示した動作により分割網別転送行列取得部22により既に生成済みであるものとする。
次に、ループ判定部336は、対象ネットワークを分割した全ての分割網についての分割網別転送行列R(n)において、全ての固有値がゼロか否かを判断する(ステップH102)。
ここで、全ての固有値がゼロの場合、ループ判定部336は、対象ネットワークにループ経路がないと判定する(ステップH103)。
一方、少なくとも1つの固有値がゼロでない分割網別転送行列R(n)が1つでも存在する場合、ループ判定部336は、対象ネットワークにループ経路が有ると判定する(ステップH104)。
そして、ループ判定部336は、ループ経路が有るか否かの判定結果を出力する(ステップH105)。
以上で、ネットワーク検証装置3は、ループ検証動作を終了する。
次に、ネットワーク検証装置3の可達域検証動作を図15に示す。
図15において、まず、可達域検証部337は、フィルタ行列Hv(h)として、(|E|×|P|)行(|E|×|P|×|H|)列のゼロ行列を生成する(ステップI101)。
前述のように、|E|は、対象ネットワークに含まれるスイッチ装置の数である。また、|P|は、最も多い物理ポートを有するスイッチ装置の物理ポート数である。また、|H|は、対象ネットワークで転送される通信制御単位の種類数である。
次に、可達域検証部337は、対象ネットワークがN個に分割された各分割網nについて、第1算出部232により算出された分割網別のトラフィック量を連結したベクトルを生成する(ステップI102)。
具体的には、可達域検証部337は、各分割網nについて生成された分割網別流入トラフィックベクトルv(n)および分割網別流出トラフィックベクトルv(n)’を、(|P(n)|×|H(n)|)行から(|E|×|P|×|H(n)|)行に拡張する。そして、可達域検証部337は、拡張した各ベクトルv(n)’’およびv(n)’’’を、それぞれ縦に連結する。これにより、数式10および数式11におけるトラフィックベクトルVおよびV’が生成される。
次に、可達域検証部337は、対象ネットワークで転送される通信制御単位の種類ごとに、以下のステップI104〜I106を繰り返す(ステップI103)。
ここでは、まず、可達域検証部337は、フィルタ行列Hv(h)を(|E|×|P|)行(|E|×|P|)列に区分した区分行列のうち、左からh番目の区分行列を、単位行列に設定する(ステップI104)。
次に、可達域検証部337は、トラフィックベクトルVおよびV’と、フィルタ行列Hv(h)とを用いて、数式10および数式11により可達域ベクトルvh(h)およびvh(h)’を生成する(ステップI105)。
次に、可達域検証部337は、可達域ベクトルvh(h)およびvh(h)’に基づいて、この種類の通信制御単位の可達域を表す情報を出力する(ステップI106)。
以上で、可達域検証部337は、可達域検証動作を終了する。
次に、ネットワーク検証装置3の動作を具体例で示す。
この具体例では、対象ネットワークは、3つの物理ポートp1、p2およびp3をそれぞれ有する9個のスイッチ装置sw1〜sw9から構成される。また、ここでは、ネットワーク検証装置3は、対象ネットワークの物理トポロジ情報として、図16に示す情報を取得するものとする。この物理トポロジ情報は、一方の接続端のスイッチ装置および物理ポート、他方の接続端のスイッチ装置および物理ポート、ならびに、帯域性能をそれぞれ表す情報の組合せからなる。例えば、図16の2行目は、スイッチ装置sw1のポートp2は、スイッチ装置sw6のポートp1に接続されており、その帯域性能は100Mbpsであることを示している。また、図16において、他方の接続端のスイッチ装置の項目に0が記載されている物理リンクは、一方の接続端のスイッチ装置から外部への接続を表すものとする。例えば、図16の1行目は、スイッチ装置sw1のポートp1は、外部に接続されていることを示している。
また、この具体例では、ネットワーク検証装置3は、転送規則情報として、図17に示す情報を取得するものとする。この転送規則情報は、入力時ヘッダデータ、入力ポート、出力時ヘッダデータ、および、出力ポートをそれぞれ表す情報の組合せからなる。例えば、図17の1行目は、スイッチ装置sw1において、ヘッダh1の通信制御単位がポートp1から入力されると、ヘッダの種類が変換されずに、ポートp3から出力されることを示す。なお、ヘッダhxは、ヘッダの種類を表す。この例では、ヘッダに含まれるVLANの値に応じてその種類が特定されるものとし、VALN=xを含むヘッダを、ヘッダhxと記載するものとする。また、図17の10行目は、スイッチ装置sw4において、ヘッダh2の通信制御単位がポートp3から入力されると、ヘッダh2がヘッダh1に書き換えられて、ポートp1から出力されることを示す。
このような図16の物理トポロジ情報および図17の転送規則情報が示す対象ネットワークを、模式的に図18に示す。図18では、破線の矩形は、スイッチ装置を示す。また、スイッチ装置を示す矩形内の3個の実線の矩形は、物理ポートを示す。また、物理ポートを示す矩形内の3つの円は、ヘッダの種類を示している。また、実線の矢印は、物理ポート間の物理リンクを示す。また、二重線の矢印は、各スイッチ装置に設定された転送規則情報を表している。なお、図16〜図18に示した物理トポロジ情報、転送規則情報および対象ネットワークは一例であり、本発明の対象ネットワークに含まれるスイッチ装置の数、各スイッチ装置が有する物理ポートの数、ヘッダの種類数等を限定するものではない。また、この例では、各スイッチ装置は3つずつの物理ポートを有しているが、各スイッチ装置が有する物理ポートの数は、他の少なくとも1つのスイッチ装置と異なっていてもよい。
<対象ネットワークの分割(ステップS101)の具体例>
ステップS101において、分割網情報取得部21は、次のように、対象ネットワークを分割する。前述のように、分割網情報取得部21は、通過する通信制御単位の種類に応じて物理ポートを分類し、同一分類ごとに分割網を構成する。具体的には、図17の転送規則情報では、ヘッダh2がヘッダh1に変換される10行目の転送規則と、ヘッダh1がヘッダh2に変換される12行目の転送規則とがある。そこで、分割網情報取得部21は、ヘッダh1またはヘッダh2を有する通信制御単位の少なくともいずれかが通過する物理ポートを、1つ目の分類Aとする。また、図17の例では、いずれの転送規則においても、ヘッダh3は変換を伴わない。そこで、分割網情報取得部21は、ヘッダ3を有する通信制御単位が通過する物理ポートを、2つ目の分類Bとする。そして、分割網情報取得部21は、分類Aに属する物理ポートにより分割網Aを構成し、分類Bに属する物理ポートにより分割網Bを構成する。そして、分割網情報取得部21は、図16に示した物理トポロジ情報を、図19に示すように、分割網Aの物理トポロジ情報と、分割網Bの物理トポロジ情報とに分ける。また、分割網情報取得部21は、図17に示した転送規則情報を、図20に示すように、分割網Aの転送規則情報と、分割網Bの転送規則情報とに分ける。
このようにして分割された分割網を、模式的に図21に示す。図21では、分割網Aのみに属する物理ポートを縦縞パターンの矩形で表す。また、分割網Bのみに属する物理ポートを横縞パターンの矩形で表す。また、分割網Aおよび分割網Bのどちらにも属する物理ポートを斜線パターンの矩形で表す。また、いずれの分割網にも属さない物理ポートを、パターンで塗りつぶさない矩形で表している。つまり、この具体例では、
・分割網Aは、{sw1.1, sw1.3, sw2.1, sw2.2, sw2.3, sw3.1, sw3.3, sw4.1, sw4.2, sw4.3, sw5.1, sw5.2, sw5.3}によって構成される。すなわち、分割網Aは、5個のスイッチ装置における合計13個の物理ポートによって構成される。つまり、|E(A)|=5、|P(A)|=13である。また、分割網Aでは、ヘッダ1およびヘッダ2をそれぞれ有する2種類の通信制御単位が転送される。つまり、|H(A)|=2である。なお、swX.Xは、スイッチ装置swXのポートpXを表す。
・分割網Bは、{sw1.1, sw1.2, sw6.1, sw6.3, sw8.1, sw8.3, sw9.1, sw9.3}によって構成される。すなわち、分割網Bは、4個のスイッチ装置における合計8個の物理ポートによって構成される。つまり、|E(B)|=4、|P(B)|=8である。また、分割網Bでは、ヘッダ3を有する通信制御単位が転送される。つまり、|H(B)|=1である。
<要求トラフィックの分割(ステップS102)の具体例>
図16〜図21を用いて説明した対象ネットワークに対して、図22に示す要求トラフィック量が想定されるとする。ここでは、要求トラフィック量の単位は、Mbpsである。この場合、図22における1、2、4、5行目は、ヘッダ1またはヘッダ2の通信制御単位に関するため、分割網Aに流入する要求トラフィック量を表している。また、3行目は、ヘッダ3の通信制御単位に関するため、分割網Bに流入する要求トラフィック量を表している。そこで、ステップS102において、要求トラフィック取得部231は、図23に示すように、分割網別要求トラフィックベクトルv0(A)およびv0(B)を生成すればよい。なお、図23において、太字の0にx,yの添え字で表される「0x,y」は、x行y列のゼロ行列を表している。以降参照する図面において、行列数が他の記載から明らかなゼロ行列については、単に太字で「0」とも記載する。また、図23において、「swi,hj」の記載は、記載の指し示す要素が、スイッチ装置swiに対して流入するヘッダhjを有する要求トラフィック量を表していることを説明している。図23において、分割網別要求トラフィックベクトルv0(A)は、(|H(A)|×|P(A)|=2×13=26)行の列ベクトルとなる。また、図23において、分割網別要求トラフィックベクトルv0(B)は、(|H(B)|×|P(B)|=1×8=8)行の列ベクトルとなる。
<分割網別物理トポロジ行列の生成動作(ステップS104,A104)の具体例>
ステップA104において、分割網別転送行列取得部22は、図21に示した分割網Aおよび分割網Bについて、分割網別物理トポロジ行列G(A)およびG(B)を、図24のように生成する。
具体的には、前述のように、分割網Aで転送されるのは、ヘッダ1およびヘッダ2の2種類の通信制御単位である。そこで、分割網別転送行列取得部22は、|H(A)|=2を取得する(ステップA102)。したがって、分割網別物理トポロジ行列G(A)は、数式2により、図24に示すように、2個の要素行列g(A)を対角成分として有することになる。また、前述のように、分割網Aには、5つのスイッチ装置sw1〜sw5が含まれるから、|E(A)|=5である。g(A)は、これら5つのスイッチ装置間において分割網Aに属する物理ポート間の接続関係を表している。
また、スイッチ装置sw1では、分割網Aに属する物理ポートp1およびp3が含まれるから、|P(sw1)|=2である。同様にして、|P(sw2)|=3、|P(sw3)|=2、|P(sw4)|=3、|P(sw5)|=3である。したがって、分割網別転送行列取得部22は、分割網Aに属する物理ポート数|P(A)|として、|P(sw1)|+・・・+|P(sw5)|=13を取得する(ステップA103)。
つまり、g(A)は、13×13の正方行列となる。例えば、図24のg(A)では、スイッチ装置sw1のポートp3を表す2行目において、スイッチ装置sw2のポートp1を表す3列目は、これらのポート間が物理リンクで接続されているため、「1」が設定される(ステップD104でY、D105)。分割網別転送行列取得部22は、他の要素についても、分割網Aの物理トポロジ情報に基づいて同様に設定する。そして、分割網別転送行列取得部22は、このようなg(A)が対角成分として2個並ぶG(A)を生成する。分割網別物理トポロジ行列G(A)は、行列数が、|H(A)|×|P(A)|=2×13=26の正方行列となる(ステップB103)。
また、前述のように、分割網Bで転送されるのは、ヘッダ3の1種類の通信制御単位である。そこで、分割網別転送行列取得部22は、|H(B)|=1を取得する(ステップA102)。したがって、分割網別物理トポロジ行列G(B)は、数式2により、図24に示すように、1個の要素行列g(B)からなる。また、前述のように、分割網Bには、4つのスイッチ装置sw1、sw6、sw8、sw9が含まれるから、|E(B)|=4である。g(B)は、これら4つのスイッチ装置間において分割網Bに属する物理ポート間の接続関係を表している。
また、スイッチ装置sw1では、分割網Bに属する物理ポートp1およびp2が含まれるから、|P(sw1)|=2である。同様にして、|P(sw6)|=2、|P(sw8)|=2、|P(sw9)|=2である。したがって、分割網別転送行列取得部22は、分割網Bに属する物理ポート数|P(B)|として、|P(sw1)|+・・・+|P(sw9)|=8を取得する(ステップA103)。
つまり、g(B)は、8×8の正方行列となる。例えば、図24のg(B)では、スイッチ装置sw1のポートp2を表す2行目において、スイッチ装置sw6のポートp1を表す3列目は、これらのポート間が物理リンクで接続されているため、「1」が設定されている(ステップD104でY、D105)。分割網別転送行列取得部22は、他の要素についても、分割網Bの物理トポロジ情報に基づいて同様に設定する。そして、分割網別転送行列取得部22は、このようなg(B)1つからなるG(B)を生成する。分割網別物理トポロジ行列G(B)は、行列数が、|H(B)|×|P(B)|=1×8=8の正方行列となる(ステップB103)。
<分割網別転送規則行列の生成動作(ステップS104,A105)の具体例>
ステップA105において、分割網別転送行列取得部22は、図21に示した分割網Aおよび分割網Bについて、分割網別転送規則行列L(A)およびL(B)を、図25〜図27に示すように生成する。
具体的には、前述のように、分割網Aで転送される通信制御単位の種類数|H(A)|=2である。そこで、分割網別転送規則行列L(A)では、数式3により、要素行列Thi→hoが行方向に2個、列方向に2個並ぶことになる。すなわち、分割網別転送規則行列L(A)は、図25に示すように、4つの要素行列T1→1、T2→1、T1→2、T2→2からなる。そこで、分割網別転送行列取得部22は、要素行列T1→1、T2→1、T1→2、T2→2を生成する(ステップE104)。
また、分割網Aには、5つのスイッチ装置sw1〜sw5が含まれるから、|E(A)|=5である。そこで、要素行列T1→1は、これらの5つのスイッチ装置sw1〜sw5においてヘッダ1の通信制御単位を変換せずに入出力する転送規則を表すT1(1→1)、T2(1→1)、T3(1→1)、T4(1→1)、T5(1→1)を対角成分として有する。同様に、要素行列T2→2は、スイッチ装置sw1〜sw5においてヘッダ2の通信制御単位を変換せずに入出力する転送規則を表すT1(2→2)、T2(2→2)、T3(2→2)、T4(2→2)、T5(2→2)を対角成分として有する。また、要素行列T1→2は、スイッチ装置sw1〜sw5においてヘッダ1の通信制御単位をヘッダ2に変換して入出力する転送規則を表すT1(1→2)、T2(1→2)、T3(1→2)、T4(1→2)、T5(1→2)を対角成分として有する。また、要素行列T2→1は、スイッチ装置sw1〜sw5においてヘッダ2の通信制御単位をヘッダ1に変換して入出力する転送規則を表すT1(2→1)、T2(2→1)、T3(2→1)、T4(2→1)、T5(2→1)を対角成分として有する。そこで、分割網別転送行列取得部22は、これらの要素行列Tei(hi→ho)を生成する(ステップF103)。
このようにして、分割網別転送規則行列L(A)を構成するこれらの要素行列Tei(hi→ho)は、図26に示す通りとなる。例えば、スイッチ装置sw1において、分割網Aに属する物理ポートは、p1およびp3の2つであるから、|P(sw1)|=2である。そこで、T1(1→1)は、2×2の正方行列となる。また、スイッチ装置sw1では、ヘッダ1の通信制御単位は、ポートp1から入力され、ポートp3から出力される。したがって、分割網別転送行列取得部22は、T1(1→1)において、入力ポートp1を表す1列目において出力ポートp3を表す2行目の要素t2,1を、「1」に設定する(ステップG104でY、G105)。また、分割網別転送行列取得部22は、図26における他の要素行列Tei(hi→ho)の各要素も、分割網Aの転送規則情報に基づき同様に設定する。
また、スイッチ装置sw1〜sw5においてそれぞれ分割網Aに属する物理ポート数は|P(sw1)|=2、|P(sw2)|=3、|P(sw3)|=2、|P(sw4)|=3、|P(sw5)|=3である。したがって、T1(hi→ho)、T2(hi→ho)、T3(hi→ho)、T4(hi→ho)、T5(hi→ho)は、それぞれ、行列数が2、3、2、3、3の正方行列となる。したがって、これらの要素行列からなる要素行列T1→1、T2→1、T1→2、T2→2は、それぞれ行列数が|P(A)|=13の正方行列となる。このような要素行列が縦横に2個ずつ並んだL(A)は、行列数が|H(A)|×|P(A)|=2×13=26の正方行列となる。このようにして、分割網別転送行列取得部22は、分割網別転送規則行列L(A)を生成する(ステップE105)。
また、前述のように、分割網Bで転送される通信制御単位の種類数|H(B)|=1である。そこで、分割網別転送規則行列L(B)では、数式3により、図27に示すように、要素行列Thi→hoが行方向に=1個、列方向に=1個並ぶ。すなわち、分割網別転送規則行列L(B)は、1つの要素行列T3→3からなる。そこで、分割網別転送行列取得部22は、要素行列T3→3を生成する(ステップE104)。
また、分割網Bには、4つのスイッチ装置sw1、sw6、sw8、sw9が含まれるから、|E(B)|=4である。そこで、要素行列T3→3は、これらの4つのスイッチ装置sw1、sw6、sw8、sw9においてヘッダ3の通信制御単位を変換せずに入出力する転送規則を表すT1(3→3)、T6(3→3)、T8(3→3)、T9(3→3)を対角成分として有する。そこで、分割網別転送行列取得部22は、これらの要素行列Tei(hi→ho)を生成する(ステップF103)。
このようにして、分割網別転送規則行列L(B)を構成するこれらの要素行列Tei(hi→ho)は、図27に示す通りとなる。例えば、スイッチ装置sw1において、分割網Bに属する物理ポートは、p1およびp2の2つであるから、|P(sw1)|=2である。そこで、T1(3→3)は、2×2の正方行列となる。また、スイッチ装置sw1では、ヘッダ3の通信制御単位は、ポートp1から入力され、ポートp2から出力される。したがって、分割網別転送行列取得部22は、T1(3→3)において、入力ポートp1を表す1列目において出力ポートp2を表す2行目の要素t2,1を、「1」に設定する(ステップG104でY、G105)。また、分割網別転送行列取得部22は、図27における他の要素行列Tei(hi→ho)の各要素も、分割網Bの転送規則情報に基づき同様に設定する。
また、スイッチ装置sw1、sw6、sw8、sw9においてそれぞれ分割網Bに属する物理ポート数は|P(sw1)|=2、|P(sw6)|=2、|P(sw8)|=2、|P(sw9)|=2である。したがって、T1(3→3)、T6(3→3)、T8(3→3)、T9(3→3)は、それぞれ、行列数が2の正方行列となる。したがって、これらの要素行列からなる要素行列T3→3は、行列数が|P(B)|=8の正方行列となる。そして、このような要素行列1個からなるL(B)は、行列数が|H(B)|×|P(B)|=1×8=8の正方行列となる。このようにして、分割網別転送行列取得部22は、分割網別転送規則行列L(B)を生成する(ステップE105)。
<分割網別転送行列の生成動作(ステップS104,A106)の具体例>
ステップA106において、分割網別転送行列取得部22は、分割網別物理トポロジ行列G(A)、G(B)、分割網別転送規則行列L(A)、L(B)を用いて、数式1により、図28に示すように、分割網別転送行列R(A)およびR(B)を生成する。
<分割網別に、通信制御単位の種類ごとのトラフィック量を算出する動作(ステップS105)の具体例>
ステップS105において、第1算出部232は、分割網別要求トラフィックベクトルv0(A)およびv0(B)と、分割網別転送行列R(A)およびR(B)とを用いて、数式4を変形した数式5による演算を行う。これにより、分割網別流入トラフィックベクトルv(A)およびv(B)が算出される。このようにして算出されるv(A)およびv(B)は、図29に示す通りとなる。図29において、分割網別流入トラフィックベクトルv(A)の各要素は、分割網Aに属するスイッチ装置sw1〜sw5の各物理ポートに、任意の時点で流入し得るトラフィック量を、ヘッダの種類別(ヘッダ1およびヘッダ2)に表している。また、分割網別流入トラフィックベクトルv(B)の各要素は、分割網Bに属するスイッチ装置sw1、sw6、sw8、sw9の各物理ポートに、任意の時点で流入し得るトラフィック量を、ヘッダの種類別(ヘッダ3)に表している。
また、第1算出部232は、分割網別流入トラフィックベクトルv(A)およびv(B)と、分割網別転送規則行列L(A)およびL(B)とを用いて、数式6による演算を行う。これにより、分割網別流出トラフィックベクトルv(A)’およびv(B)’が算出される。このようにして算出されるv(A)’およびv(B)’は、図30に示す通りとなる。図30において、分割網別流出トラフィックベクトルv(A)’の各要素は、分割網Aに属するスイッチ装置sw1〜sw5の各物理ポートから、任意の時点で流出し得るトラフィック量を、ヘッダの種類別(ヘッダ1およびヘッダ2)に表している。また、分割網別流出トラフィックベクトルv(B)’の各要素は、分割網Bに属するスイッチ装置sw1、sw6、sw8、sw9の各物理ポートから、任意の時点で流出し得るトラフィック量を、ヘッダの種類別(ヘッダ3)に表している。
<分割網別に、物理ポートごとのトラフィック量を算出する動作(ステップS106)の具体例>
ステップS106において、第2算出部233は、分割網別流入トラフィックベクトルv(A)、v(B)に基づいて、数式7を用いた演算を行う。これにより、分割網別物理ポート流入トラフィックベクトルvq(A)、vq(B)が算出される。このようにして算出されるvq(A)、vq(B)は、図31に示す通りとなる。図31において、分割網別物理ポート流入トラフィックベクトルvq(A)の各要素は、分割網Aに属するスイッチ装置sw1〜sw5の各物理ポートに、任意の時点で流入し得るヘッダ1およびヘッダ2のトラフィック量の合計を表している。また、分割網別物理ポート流入トラフィックベクトルvq(B)の各要素は、分割網Bに属するスイッチ装置sw1、sw6、sw8、sw9の各物理ポートに、任意の時点で流入し得るヘッダ3のトラフィック量を表している。なお、転送されるヘッダの種類数が1つの分割網Bでは、分割網別物理ポート流入トラフィックベクトルvq(B)は、分割網別流入トラフィックベクトルv(B)と同一である。
また、ステップS106において、第2算出部233は、分割網別流出トラフィックベクトルv(A)’、v(B)’に基づいて、数式8を用いた演算を行う。これにより、分割網別物理ポート流出トラフィックベクトルvq(A)’、vq(B)’が算出される。このようにして算出されるvq(A)’、vq(B)’は、図32に示す通りとなる。図32において、分割網別物理ポート流入トラフィックベクトルvq(A)’の各要素は、分割網Aに属するスイッチ装置sw1〜sw5の各物理ポートから、任意の時点で流出し得るヘッダ1およびヘッダ2のトラフィック量の合計を表している。また、分割網別物理ポート流出トラフィックベクトルvq(B)’の各要素は、分割網Bに属するスイッチ装置sw1、sw6、sw8、sw9の各物理ポートから、任意の時点で流出し得るヘッダ3のトラフィック量を表している。なお、転送されるヘッダの種類数が1つの分割網Bでは、分割網別物理ポート流出トラフィックベクトルvq(B)’は、分割網別流出トラフィックベクトルv(B)’と同一である。
<物理ポートごとのトラフィック量を算出する動作(ステップS107)の具体例>
ステップS107において、第3算出部234は、分割網別物理ポート流入トラフィックベクトルvq(A)およびvq(B)間で、同一のスイッチ装置の同一の物理ポートを表す要素同士を足し合わせる。これにより、物理ポート流入トラフィックベクトルvpが算出される。このようにして算出されるvpは、図33に示す通りとなる。図33において、vpの各要素は、対象ネットワークを構成する各物理ポートに流入し得るトラフィック量を表している。
また、第3算出部234は、分割網別物理ポート流出トラフィックベクトルvq(A)’およびvq(B)’間で、同一のスイッチ装置の同一の物理ポートを表す要素同士を足し合わせる。これにより、物理ポート流出トラフィックベクトルvp’が算出される。このようにして算出されるvp’は、図33に示す通りとなる。図33において、vp’の各要素は、対象ネットワークを構成する各物理ポートから流出し得るトラフィック量を表している。
<帯域溢れの検証動作(ステップS108)の具体例>
ステップS108において、第3算出部234は、物理ポート流入トラフィックベクトルvpおよび物理ポート流出トラフィックベクトルvp’を足し合わせる。これにより、物理ポートトラフィックベクトルVpp’が算出される。このようにして算出されるVpp’は、図33に示す通りとなる。Vpp’の各要素は、各物理ポートに接続される物理リンクに流れ得る双方向のトラフィック量の合計を表している。この具体例では、各物理リンクについて、図16の物理トポロジ情報に示した帯域性能が取得されている。この場合、例えば、スイッチ装置sw1の物理ポートp1について、その流入トラフィック量は、物理ポート流入トラフィックベクトルvpの1行目の要素「160」(Mbps)である。また、その流出トラフィック量は、物理ポート流出トラフィックベクトルvp’の1行目の要素「0」(Mbps)である。したがって、スイッチ装置sw1の物理ポートp1に接続される物理リンクに流れ得るトラフィック量は、これらの合計を示す物理ポートトラフィックベクトルVpp’の1行目の要素「160」(Mbps)となる。この値は、スイッチ装置sw1の物理ポートp1が外部と接続される物理リンクついて定められた帯域性能100Mbpsを超えている。そこで、帯域検証部235は、スイッチ装置sw1の物理ポートp1が外部と接続される物理リンクついて、帯域溢れの可能性があると判断する。このようにして、帯域検証部235は、帯域溢れの可能性がある物理リンクを特定し、出力する。
例えば、帯域検証部235は、図34に示すように、物理トポロジ情報を示す模式図において、各物理リンクを示す線の付近に、そのトラフィック量を重畳表示してもよい。そして、帯域検証部235は、帯域溢れの可能性がある物理リンクの付近には、さらに警告を表す情報を重畳表示してもよい。なお、図34は一例であり、帯域検証部235が出力する情報の構成や形式を限定するものではない。例えば、帯域検証部235は、各物理リンクについて、任意の時点で流れ得るトラフィック量およびその帯域性能を表す文字情報を出力してもよい。また、例えば、帯域検証部235は、帯域溢れの可能性がある物理リンクを表す文字情報を出力してもよい。その他、帯域検証部235は、図、文字に限らず、帯域溢れの検証結果を表す情報であれば、どのような構成・形式の情報を、どのような出力装置に出力してもよい。
<ループ経路有無の判定動作(ステップH101〜H105)の具体例>
まず、ループ判定部336は、分割網Aの分割網別転送行列R(A)および分割網Bの分割網別転送行列R(B)について、それぞれ固有値を求める(ステップH101)。
ここで、前例の図24で説明した分割網別転送行列R(A)およびR(B)の固有値は、すべてゼロとなる(ステップH102でY)。
そこで、ループ判定部336は、対象ネットワークには、ループ経路が無いと判定する(ステップH103)。
そして、ループ判定部336は、ループ経路が無いことを出力する(ステップH105)。
<可達域の検証動作(ステップI101〜I106)の具体例>
この具体例において、可達域検証部337は、図29に示した分割網別流入トラフィックベクトルv(A)およびv(B)を拡張し、対象ネットワークの全ての物理ポートに対応する要素を含むベクトルv(A)’’およびv(B)’’を生成する。そして、可達域検証部337は、v(A)’’およびv(B)’’を縦に連結したベクトルVを生成する。また、可達域検証部337は、図30に示した分割網別流出トラフィックベクトルv(A)’およびv(B)’を拡張し、対象ネットワークの全ての物理ポートに対応する要素を含むベクトルv(A)’’’およびv(B)’’’を生成する。そして、可達域検証部337は、v(A)’’’およびv(B)’’’を縦に連結したベクトルV’を生成する。(ステップI102)。
次に、可達域検証部337は、通信制御単位の種類であるヘッダ1、ヘッダ2、ヘッダ3について、数式9を用いて、フィルタ行列Hv(1),Hv(2)、Hv(3)を、それぞれ生成する(ステップI104)。
そして、可達域検証部337は、ベクトルVおよびV’に、それぞれフィルタ行列Hv(1)を適用し、数式10および数式11により、ヘッダ1の可達域ベクトルvh(1)およびvh(1)’を生成する(ステップI105)。
このようにして算出されるヘッダ1の可達域ベクトルvh(1)およびvh(1)’は、図35に示す通りとなる。なお、図35において、ベクトルq1’’、q2’’、q1’’’、q2’’’は、図29、図30に示したベクトルq1、q2、q1’、q2’を、この対象ネットワークに含まれる全ての物理ポート数である|E|×|P|=27行に、それぞれ拡張した列ベクトルである。したがって、ベクトルv(A)’’、v(A)’’’は、図29、図30に示した分割網別流入トラフィックベクトルv(A)、v(A)’を、|E|×|P|×|H(A)|=54行の列ベクトルそれぞれに拡張した行列である。また、ベクトルq3’’、q3’’’は、図29、図30に示したベクトルq3、q3’を、|E|×|P|=27行にそれぞれ拡張した列ベクトルである。したがって、ベクトルv(B)’’、v(B)’’’は、図29、図30に示した分割網別流入トラフィックベクトルv(B)、v(B)’を、|E|×|P|×|H(B)|=27行の列ベクトルに拡張した行列である。
次に、可達域検証部337は、可達域ベクトルvh(1)およびvh(1)’に基づいて、ヘッダ1を有する通信制御単位の可達域を表す情報を出力する(ステップI106)。例えば、図36に示すように、可達域検証部337は、物理トポロジ情報を示す模式図において、ヘッダ1の通信制御単位が流れる物理リンクを示す線の付近に、方向別にトラフィック量を重畳表示してもよい。
同様にして、可達域検証部337は、ヘッダ2について、ステップI104〜I105を実行することにより、図37に示す可達域ベクトルvh(2)およびvh(2)’を生成する。そして、可達域検証部337は、ヘッダ2についても、図36に示したヘッダ1の可達域と同様に、可達域を表す情報を出力する(ステップI106)。
同様にして、可達域検証部337は、ヘッダ3について、ステップI104〜I105を実行することにより、図38に示す可達域ベクトルvh(3)およびvh(3)’を生成する。そして、可達域検証部337は、ヘッダ3についても、図36に示したヘッダ1の可達域と同様に、可達域を表す情報を出力する(ステップI106)。
なお、図36に示すように、可達域検証部337は、可達域の検証結果の表示対象とするヘッダの種類を選択可能なユーザインタフェース部品をさらに表示してもよい。
あるいは、可達域検証部337は、全ての種類の通信制御単位について可達域ベクトルを算出してから、図39に示すように、各ヘッダを有する通信制御単位の可達域を出力してもよい。なお、図36および図39の例に限らず、可達域検証部337は、通信制御単位の種類ごとに可達域を認識可能な情報であれば、任意の構成・形式の情報を任意の出力装置に出力すればよい。
以上で、具体例の説明を終了する。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としてのネットワーク検証装置は、ネットワーク規模が増大しても、計算量を抑制して効率的に帯域検証を行うことに加えて、効率的にループ判定および可達域検証を行うことができる。
その理由は、ループ判定部が、対象ネットワークを構成する分割網の分割網別転送行列における固有値が全てゼロである場合に、対象ネットワークにループ経路無しと判定するからである。また、ループ判定部が、1つでもゼロでない固有値を持つ分割網別転送行列が1つでもある場合には、対象ネットワークにループ経路ありと判定するからである。また、可達域検証部が、対象ネットワークを構成する分割網別に算出されたトラフィック量を表す情報に基づいて、通信制御単位の種類ごとの可達域を表す情報を算出するからである。
このように、本実施の形態は、分割網別転送行列について固有値を算出する。分割網別転送行列は、その分割網に含まれるスイッチ装置および物理ポートに対応する要素を含み、その分割網に含まれないスイッチ装置および物理ポートに対応する要素を含まない。したがって、分割網別転送行列は、対象ネットワークを分割しない場合の転送行列に比べて要素数を大幅に削減している。一般に、行列の固有値の計算量は、要素数の比例以上となることが知られている。したがって、本実施の形態は、対象ネットワークを分割しない場合に比べて、ループ判定のために固有値を算出する計算量を大幅に削減可能である。
また、本実施の形態は、分割網別に帯域検証のために算出したトラフィックベクトルにフィルタ行列を適用することにより、可達域ベクトルを算出している。したがって、本実施の形態は、通信制御単位ごとの可達域を効率的に出力することができる。
なお、上述した本発明の各実施の形態および具体例において、分割網別要求トラフィックベクトルの各要素には、トラフィック量が設定される例を中心に説明した。結果として、分割網別転送行列R(n)を用いて算出される各種ベクトルの各要素は、トラフィック量を示していた。これに限らず、分割網別要求トラフィックベクトルの各要素には、トラフィック量のような実数値ではなく、トラフィックの確率分布を表す情報が設定されてもよい。この場合、演算により同一の物理ポートについて加算されるトラフィックを表す情報は、実数値の線形和ではなく、確率分布の線形和となる。このように構成した場合、各実施の形態は、対象ネットワークにおけるトラフィックの見積もりや帯域溢れ、ループ判定、可達域等の検証をより高精度に行うことができる。
また、上述した本発明の各実施の形態および具体例において、ネットワーク検証装置が、帯域検証、ループ判定、可達域検証を行う例を中心に説明した。これらの検証項目に限らず、各実施の形態は、その他の検証項目についても、検証項目を分割網別に分離して分割網別転送行列を適用した演算を行うことにより、効率的かつ高精度な検証が可能である。
また、上述した本発明の各実施の形態および具体例において、分割網は、通信制御単位の種類に応じて分割し得る最小単位によって構成される例を中心に説明した。これに限らず、各実施の形態における分割網は、ある分割網で転送され得る種類の通信制御単位が、他の分割網で転送されることのないよう分割されていれば、最小の単位でなくてもよい。
また、上述した本発明の各実施の形態および具体例において、ネットワーク検証装置の各機能ブロックが、メモリに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせは、専用のハードウェアにより実現されていてもよい。
また、上述した本発明の各実施の形態において、ネットワーク検証装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したネットワーク検証装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。