(57)【要約】【課題】各ノードの送受信トラフィック量の測定方法が異なる場合であっても、精度を向上させてＩＦ間の接続関係（トポロジ）を推定する。【解決手段】ネットワークを構成する複数の装置の接続関係を推定するトポロジ推定装置１は、装置が備えるＩＦそれぞれにて流入または流出するフローを特定する情報が当該ＩＦ毎に格納されるＩＦフロー情報３２０を参照し、サブネットを構成するＩＦの数であるｋ個（ｋ≧２）のＩＦの組の全ての組み合わせを、接続関係の判定候補として生成する判定候補生成部１２と、ＩＦの組それぞれについて、ＩＦフロー情報３２０を参照し、ＩＦの組を構成する各ＩＦにて、流入するフローと流出するフローとの間のフロー構成要素の出現頻度の一致度を算出する一致度計算部１３と、算出された一致度が所定の範囲内にある場合、判定候補となるＩＦの組を構成するＩＦ間に接続関係があると判定する接続関係判定部１４と、を備える。【選択図】図３
2015226280.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数の装置の接続関係を推定するトポロジ推定装置であって、
前記装置が備えるＩＦ（Interface）それぞれにて流入および流出するフローを特定するためのフロー構成要素の情報が当該ＩＦ毎に格納されるＩＦフロー情報、を記憶する記憶部と、
前記ＩＦ毎のＩＦフロー情報を参照し、サブネットを構成するＩＦの数であるｋ個（ｋ≧２）のＩＦの組の全ての組み合わせを、接続関係の判定候補として生成する判定候補生成部と、
前記生成した判定候補となるＩＦの組それぞれについて、前記ＩＦ毎のＩＦフロー情報を参照し、前記判定候補となるＩＦの組を構成する各ＩＦにて、流入するフローと流出するフローとの間の前記フロー構成要素の出現頻度の一致度を算出する一致度計算部と、
前記算出された一致度が、接続関係があると判定するための許容誤差の範囲内にある場合、前記判定候補となるＩＦの組を構成するＩＦ間に接続関係があると判定する接続関係判定部と、
を備えることを特徴とするトポロジ推定装置。
【請求項２】
前記接続関係判定部によって接続関係があると判定されたＩＦの組が２以上あって、前記２以上のＩＦの組に属しているＩＦが存在する場合、当該ＩＦを含む組を対象にした最適化問題を解くことにより接続関係を決定する最適化問題処理部、
をさらに備えることを特徴とする請求項１に記載のトポロジ推定装置。
【請求項３】
ネットワークを構成する複数の装置の接続関係を推定するトポロジ推定装置としてコンピュータを、
前記装置が備えるＩＦ（Interface）それぞれにて流入および流出するフローを特定するためのフロー構成要素の情報が当該ＩＦ毎に格納されるＩＦフロー情報、を記憶する記憶手段、
前記ＩＦ毎のＩＦフロー情報を参照し、サブネットを構成するＩＦの数であるｋ個（ｋ≧２）のＩＦの組の全ての組み合わせを、接続関係の判定候補として生成する判定候補生成手段、
前記生成した判定候補となるＩＦの組それぞれについて、前記ＩＦ毎のＩＦフロー情報を参照し、前記判定候補となるＩＦの組を構成する各ＩＦにて、流入するフローと流出するフローとの間の前記フロー構成要素の出現頻度の一致度を算出する一致度計算手段、
前記算出された一致度が、接続関係があると判定するための許容誤差の範囲内にある場合、前記判定候補となるＩＦの組を構成するＩＦ間に接続関係があると判定する接続関係判定手段、
として機能させるためのトポロジ推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを構成する装置間の接続関係を推定するためのトポロジ推定装置およびプログラムに関する。
【背景技術】
【０００２】
ネットワークを運用し管理する上では、ネットワークを構成する装置間の接続関係（以下、「トポロジ」という。）を正確に把握することが重要となる。例えば、装置に故障が発生した場合、トポロジを用いて故障がネットワーク全体に与える影響を把握し、サービスへの影響を最小限にするために通信経路の切換え等を実行する。その際に、トポロジの情報が正確でなければ、故障の影響を正しく把握することができない。さらには、誤った経路への切換えにより正常な通信を中断させる可能性すらある。
【０００３】
そこで、トポロジを推定する手法として、装置が備えるＩＦ（インタフェース）毎の送受信トラフィック量を用いる手法が、非特許文献１に開示されている。この非特許文献１に記載されたトポロジの推定手法では、次の２つの原則を利用する。
（原則１）あるサブネットへの流入トラフィックの量と流出トラフィックの量は等しい。
（原則２）あるノードからのサブネットへの流入トラフィックは同一サブネットの異なるノードへ出ていく。
この２つの原則を利用し、サブネットを共有するノードをネットワークの中から全て求めることにより、トポロジを推定する。なお、ここでサブネットとは、複数のＩＦが接続された閉じたネットワークのことを意味する。以下、具体的に説明する。
【０００４】
図１に示すように、あるサブネットにｓ個のノードＮ（ノードＮ１〜ＮＳ）が接続されているものとする。サブネットには、各ノードが備えるＩＦが最低１つ以上接続され、合計ｍ個（ｍ≧ｓ）のＩＦが接続される。このサブネットに接続されたノードＮ１のＩＦの集合を「φ１」と定め、同様に、ノードＮ２〜ＮＳについても、「φ２」〜「φＳ」と定めたとする。この場合、サブネットへの流入／流出トラフィックはそれぞれ「φ１」〜「φＳ」の送信トラフィック量・受信トラフィック量それぞれの合計となる。そのため、（原則１）は、「φ１」〜「φＳ」を用いて、以下の判定式１として読み替えることができる。
（φ１〜φＳの送信トラフィック量の合計）＝（φ１〜φＳの受信トラフィック量の合計）
…  判定式１
そのため、判定式１が成立した場合、（原則１）を満たしていると判定することができる。
【０００５】
また、ノードＮ１からこのサブネットへの流入トラフィックは、「φ１」の送信トラフィック量の合計であり、（原則２）に従えば、このトラフィックは、ノードＮ１以外の残りｓ−１個のノードＮが有するＩＦのうち、このサブネットに接続されたＩＦ、すなわち、「φ２」〜「φＳ」の中の一つ以上のＩＦが受信することになる。そのため、以下の式が成立することになる。
（φ１の送信トラフィック量の合計）≦（φ２〜φＳの受信トラフィック量の合計）
これは、ノードＮ２〜ＮＳについても同様である。よって、（原則２）は、以下の判定式２として読み替えることができる。
（φｉの送信トラフィック量の合計）≦（φｉを除く、φ１〜φＳの受信トラフィック量の合計）
［ｉ＝１，２，…，ｓ］
…  判定式２
そのため、判定式２が成立した場合、（原則２）を満たしていると判定することができる。
【０００６】
この非特許文献１に記載のトポロジの推定手法では、ｓ個のノードＮが判定式１、判定式２の両条件を満たす場合に、それらのノード間に接続関係があるとみなす。よって、推定対象の各ノードＮが備えるＩＦの送信トラフィック量および受信トラフィック量の値を基に、判定式１、判定式２の両方の条件を満たすノードＮの組を求めることで、ノード間の接続関係を全て求めることができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】丹治  直幸、他３名、「トラフィック量を用いたネットワークトポロジー推定技術の検討」、社団法人電子情報通信学会、信学技報、vol.112、no.492、ICM2012-75、pp.95-100、2013年3月
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１に記載のトポロジの推定手法では、（原則１）において送受信トラフィック量の一致度を用いて接続関係を評価している。しかしながら、送受信トラフィック量として送受信バイト量などを用いた場合は、接続関係を正しく推定できない場合がある。送受信バイト量のカウント方法は、装置の仕様等により、ヘッダ部を含めて数える場合とヘッダ部を含めて数えない場合とがある。よって、ヘッダ部を含めて数える装置とヘッダ部を含めて数えない装置とが接続されているときは、常に一定の割合で送受信バイト量に差が生じるため、（原則１）を満たさない。以下、図２を参照して、具体的に説明する。
【０００９】
図２に示すように、ノードＮ１のＩＦ「３」とノードＮ２のＩＦ「１」とは、接続関係にある。つまり、サブネットを構成している。また、ノードＮ１は、送受信バイト量のカウント方法として、ヘッダ部を含めて数えない装置であり、ノードＮ２は、ヘッダ部を含めて数える装置であるとする。ここで、ノードＮ１のＩＦ「３」の送受信トラフィック量をグラフ２０１ａおよび表２０１ｂで示し、ノードＮ２のＩＦ「１」の送受信トラフィック量をグラフ２０２ａおよび表２０２ｂで示している。
【００１０】
この例において、時刻ｔ１の送受信トラフィック量に対し、非特許文献１に記載のトポロジ推定方法を適用した場合を考えると、（判定式１）は、図２の表２０１ｂおよび表２０２ｂを参照して、以下のようになる。
（送信トラフィック量の合計）＝（受信トラフィック量の合計）
１０＋７≠５＋１４
このように、ヘッダ部を含めて数える装置（ノードＮ２）とヘッダ部を含めて数えない装置（ノードＮ１）とが接続されているときは、常に一定の割合で送受信バイト量に差が生じるため（図２の符号２１０参照）、（判定式１）の条件を満たさない。このため、非特許文献１に記載のトポロジの推定手法では、ノードＮ１のＩＦ「３」とノードＮ２のＩＦ「１」とが、実際には接続関係にあるにもかかわらず、接続関係にはないと推定されてしまう。
【００１１】
このような背景を鑑みて本発明がなされたのであり、本発明は、各装置（ノード）の送受信トラフィック量の測定方法が異なる場合であっても、精度を向上させてＩＦ間の接続関係（トポロジ）を推定することができる、トポロジ推定装置およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記した課題を解決するため、請求項１に記載の発明は、ネットワークを構成する複数の装置の接続関係を推定するトポロジ推定装置であって、前記装置が備えるＩＦ（Interface）それぞれにて流入および流出するフローを特定するためのフロー構成要素の情報が当該ＩＦ毎に格納されるＩＦフロー情報、を記憶する記憶部と、前記ＩＦ毎のＩＦフロー情報を参照し、サブネットを構成するＩＦの数であるｋ個（ｋ≧２）のＩＦの組の全ての組み合わせを、接続関係の判定候補として生成する判定候補生成部と、前記生成した判定候補となるＩＦの組それぞれについて、前記ＩＦ毎のＩＦフロー情報を参照し、前記判定候補となるＩＦの組を構成する各ＩＦにて、流入するフローと流出するフローとの間の前記フロー構成要素の出現頻度の一致度を算出する一致度計算部と、前記算出された一致度が、接続関係があると判定するための許容誤差の範囲内にある場合、前記判定候補となるＩＦの組を構成するＩＦ間に接続関係があると判定する接続関係判定部と、を備えることを特徴とする。
【００１３】
請求項３に記載の発明は、ネットワークを構成する複数の装置の接続関係を推定するトポロジ推定装置としてコンピュータを、前記装置が備えるＩＦ（Interface）それぞれにて流入および流出するフローを特定するためのフロー構成要素の情報が当該ＩＦ毎に格納されるＩＦフロー情報、を記憶する記憶手段、前記ＩＦ毎のＩＦフロー情報を参照し、サブネットを構成するＩＦの数であるｋ個（ｋ≧２）のＩＦの組の全ての組み合わせを、接続関係の判定候補として生成する判定候補生成手段、前記生成した判定候補となるＩＦの組それぞれについて、前記ＩＦ毎のＩＦフロー情報を参照し、前記判定候補となるＩＦの組を構成する各ＩＦにて、流入するフローと流出するフローとの間の前記フロー構成要素の出現頻度の一致度を算出する一致度計算手段、前記算出された一致度が、接続関係があると判定するための許容誤差の範囲内にある場合、前記判定候補となるＩＦの組を構成するＩＦ間に接続関係があると判定する接続関係判定手段、として機能させるためのトポロジ推定プログラムである。
【００１４】
請求項１、３に記載の発明によれば、トポロジの推定において、トラフィック量よりも多くの情報を取得可能とするフロー情報を用いるため、ＩＦ間の接続関係（トポロジ）の推定の精度を向上させることができる。
【００１５】
請求項２に記載の発明は、請求項１に記載の発明において、前記接続関係判定部によって接続関係があると判定されたＩＦの組が２以上あって、前記２以上のＩＦの組に属しているＩＦが存在する場合、当該ＩＦを含む組を対象にした最適化問題を解くことにより接続関係を決定する最適化問題処理部、をさらに備えることを特徴とする。
【００１６】
請求項２に記載の発明によれば、最適化問題を解くことにより、サブネットを構成するＩＦがどのＩＦの組に属しているかを最終的に決定することができる。
【発明の効果】
【００１７】
本発明によれば、各装置（ノード）の送受信トラフィック量の測定方法が異なる場合であっても、精度を向上させてＩＦ間の接続関係（トポロジ）を推定することができる、トポロジ推定装置およびプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】接続関係のある複数のＩＦで構成されるサブネットを説明するための図である。
【図２】従来のトポロジの推定手法における課題を説明するための図である。
【図３】本実施形態に係るトポロジ推定装置の構成例を示す機能ブロック図である。
【図４】本実施形態に係るノードＩＦ対応情報のデータ構成例を示す図である。
【図５】本実施形態に係るＩＦに関する情報を示す図であり、図５（ａ）は、ＩＦフロー情報のデータ構成例を示し、図５（ｂ）は、接続判定済フラグの例を示す。
【図６】本実施形態に係る判定候補情報のデータ構成例を示す図である。
【図７】本実施形態に係るＩＦ接続情報のデータ構成例を示す図である。
【図８】コサイン類似度を用いたｑ（ｘ）の算出例を説明する図である。
【図９】Jaccard係数を用いたｑ（ｘ）の算出例を説明する図である。
【図１０】本実施形態に係るトポロジ推定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１９】
＜基本概念＞
それぞれ異なるサブネットを構成するＩＦである、ＩＦａおよびＩＦｂが接続関係にある場合、ＩＦａから流出したフローは、ＩＦｂに流入するはずである。よって、原理的には、ＩＦａの流出フローの流出量とＩＦｂの流入フローの流入量とは一致する。しかし、フローを特定するためのフロー情報は、サンプリングによって収集されるため、ＩＦａおよびＩＦｂが接続関係にあっても、サンプリングから求めたＩＦａの流出フローの流出量と、サンプリングから求めたＩＦｂの流入フローの流入量とが一致するとは限らない。
【００２０】
フロー情報は、例えば、NetFlowやsFlowなどを用いて取得でき、送信元ＭＡＣ（Media Access Control）アドレス、送信先ＭＡＣアドレス、送信元ＩＰ（Internet Protocol）アドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル種別、パケットサイズなどといったフロー構成要素を一部またはすべて含む。
【００２１】
本実施形態では、フローからフロー情報のフロー構成要素を取得し、その頻度（出現頻度）をＩＦごとに計測し、フロー構成要素の分布を出力し、分布傾向をＩＦごとに比較することでＩＦ間の接続関係（トポロジ）を推定する。所定のＩＦであるＩＦｃの流出フローから取得される分布傾向と、所定のＩＦであるＩＦｄの流入フローから取得される分布傾向とが一致する場合（または、ＩＦｃの流入フローから取得される分布傾向と、ＩＦｄの流出フローから取得される分布傾向とが一致する場合）、ＩＦｃおよびＩＦｄが接続されていると推定する。
【００２２】
＜トポロジ推定装置の構成＞
次に、本実施形態に係るトポロジ推定装置１の構成について具体的に説明する。
図３は、本実施形態に係るトポロジ推定装置１の構成例を示す機能ブロック図である。
このトポロジ推定装置１は、ネットワーク全体を管理するネットワーク管理装置やネットワークを構成する各ノード（装置）と接続されることにより、各ノードのＩＦに関する情報を取得し、ネットワークを構成するノード間のトポロジを推定する。具体的には、サブネットとして接続されるＩＦの組を特定する。そして、トポロジ推定装置１は、図３に示すように、処理部１０と、入出力部２０と、記憶部３０（記憶手段）とを含んで構成される。
なお、ネットワーク管理装置は、ノード間のフローを監視する機能（NetFlowやsFlowなど）を備える。
【００２３】
入出力部２０は、ネットワーク管理装置（不図示）や、ネットワークを構成する各ノード等との間の情報の入出力を行う。また、この入出力部２０は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
【００２４】
処理部１０は、トポロジ推定装置１全体の制御を司り、トポロジ推定の処理を実行し、情報入力部１１、判定候補生成部１２（判定候補生成手段）、一致度計算部１３（一致度計算手段）、接続関係判定部１４（接続関係判定手段）、最適化問題処理部１５、情報出力部１６を含んで構成される。なお、この処理部１０は、例えば、記憶部３０に格納されたプログラムをＣＰＵ（Central Processing Unit）がＲＡＭ（Random Access Memory）に展開し実行することで実現される。
【００２５】
情報入力部１１は、ネットワーク管理装置（不図示）等から、入出力部２０を介して、ノードとそのノードが備えるＩＦとの対応関係を示すノードＩＦ対応情報３１０（図４参照）、ある時刻ｔ１〜ｔ２の流出フローおよび流入フローを示すＩＦ毎のＩＦフロー情報３２０（図５（ａ）参照）、並びに、後記する許容誤差σ（不図示）を受信し、記憶部３０に記憶する。
【００２６】
図４は、本実施形態に係るノードＩＦ対応情報３１０のデータ構成例を示す図である。
ノードＩＦ対応情報３１０は、各ノード（装置）がどのＩＦを備えているかを示す情報であり、各ノードの「ノード名」に対応付けて、ＩＦの識別情報が格納される。図４に示すように、例えば、ノード「Ａ」は、ＩＦとして「ＩＦ＿ａ１」，「ＩＦ＿ａ２」等を備えている。
【００２７】
図５は、本実施形態に係るＩＦフロー情報３２０および接続判定済フラグ３２５のデータ構成例を示す図である。なお、図５（ｂ）に示す、接続判定済フラグ３２５の説明は後記する。
図５（ａ）は、各ノードのＩＦ毎のフロー情報がＩＦフロー情報３２０として格納される例を示している。図５（ａ）に示すように、例えば、ＩＦ＿ａ１のＩＦフロー情報３２０（３２０ａ１）として、所定の時刻（ｔ１、・・・、ｔ２）毎の、流出フローのフロー構成要素の値、および流入フローのフロー構成要素の値とが格納される。
【００２８】
図３に戻り、判定候補生成部１２は、推定対象となるＩＦの中から、ＩＦの組み合わせ（ＩＦの組）を生成する。
具体的には、判定候補生成部１２は、記憶部３０から、各ノードのＩＦ毎のＩＦフロー情報３２０とノードＩＦ対応情報３１０とを取得する。このとき、判定候補生成部１２は、記憶部３０内の接続判定済フラグ３２５を参照し、フラグが「０」であるＩＦフロー情報３２０を取得する。
【００２９】
ここで、接続判定済フラグ３２５は、図５（ｂ）に示すように、各ノードのＩＦ毎、つまり、推定対象のＩＦ毎にＩＦフロー情報３２０に対応付けて設定される情報であり、トポロジ推定処理により他のＩＦとの間において接続関係があると判定された場合に「１」が付される。なお、この接続判定済フラグ３２５の初期値はすべて「０」が設定される。また、この接続判定済フラグ３２５は、例えば、後記する記憶部３０内のＩＦデータ保存部３２に、新たなＩＦフロー情報３２０が記憶される度に、判定候補生成部１２が、そのＩＦフロー情報３２０に対応付けて設定する。
【００３０】
判定候補生成部１２は、各ＩＦのＩＦフロー情報３２０に対応付けた接続判定済フラグ３２５が「０」である、そのＩＦフロー情報３２０を取得し、そのＩＦフロー情報３２０の数、つまり、判定候補のＩＦの数を「ｎ」とする。そして、判定候補生成部１２は、ｎ個のＩＦから、ｋ個のＩＦの組み合わせ（ｎＣｋ個のパターン）を生成する。なお、判定候補生成部１２は、ノードＩＦ対応情報３１０を参照し、ｋ個のＩＦが全て同一のノードに属しているＩＦの組については、生成を行わないようにする。続いて、判定候補生成部１２は、生成したＩＦの組を、後記する記憶部３０内の判定候補情報３３０（図６参照）に格納する。
【００３１】
図６は、本実施形態に係る判定候補情報３３０のデータ構成例を示す図である。この判定候補情報３３０は、判定候補生成部１２が生成したＩＦの組それぞれについて、１レコードが生成される。そして、図６に示すように、判定候補生成部１２が生成したＩＦの組３３１に対応付けて、後記する一致度であるｑ（ｘ）値３３２の情報が記憶される。
なお、このｑ（ｘ）値３３２の情報は、一致度計算部１３により格納される（詳細は後記）。ｘは、フロー構成要素の１つを示す。
【００３２】
図３に戻り、一致度計算部１３は、記憶部３０から判定候補情報３３０に記憶された判定候補となるＩＦの組、および、そのＩＦの組において示されるＩＦのＩＦフロー情報３２０を取得する。そして、一致度計算部１３は、そのＩＦのＩＦフロー情報３２０に示される流出フローおよび流入フローを用いて、後記する所定の計算式により、一致度ｑ（ｘ）を計算する。一致度計算部１３は、その計算結果としての一致度ｑ（ｘ）を、記憶部３０内の判定候補情報３３０に格納する。
【００３３】
接続関係判定部１４は、判定候補生成部１２が判定候補として生成したＩＦの組について、接続関係の判定を行う。
具体的には、接続関係判定部１４は、まず、記憶部３０内の判定候補情報３３０（図６）を参照し、判定候補となるＩＦの組３３１のｑ（ｘ）値３３２を取得する。また、接続関係判定部１４は、記憶部３０に記憶された許容誤差σ（不図示）を取得する。
そして、接続関係判定部１４は、許容誤差σを用いた所定の関係式（後記）を満たす場合、判定候補として生成したそのＩＦの組が接続関係にあると判定し、そのＩＦの組で示されるＩＦの接続判定済フラグ３２５を「１」とする。また、接続関係判定部１４は、そのＩＦの組を、記憶部３０内のＩＦ接続情報３４０（図７参照）に格納する。
【００３４】
図７は、本実施形態に係るＩＦ接続情報３４０のデータ構成例を示す図である。図７に示すように、ＩＦ接続情報３４０には、接続関係判定部１４により、接続関係がある、つまり、サブネットを構成すると判定されたＩＦの組が格納される。例えば、図７に示すように、「ＩＦ＿ａ１」，「ＩＦ＿ｂ２」，「ＩＦ＿ｃ１」が、接続関係があるＩＦの組の情報として格納される。
【００３５】
続いて、接続関係判定部１４は、記憶部３０に記憶された各ＩＦに対応する接続判定済フラグ３２５（図５（ｂ））を参照し、接続判定済フラグ３２５が「０」のＩＦの数と、現時点のｋの値（サブネットを構成すると仮定するＩＦの数）とを比較する。そして、接続関係判定部１４は、接続判定済フラグ３２５が「０」のＩＦの数がｋの値よりも大きい場合は、ｋの値を「１」増やして、判定候補生成部１２へ出力し、トポロジの推定処理を続行する。一方、接続関係判定部１４は、接続判定済フラグ３２５が「０」のＩＦの数が、現時点のｋの値以下の場合は、トポロジ推定の処理を終了する。
【００３６】
最適化問題処理部１５は、接続関係判定部１４によって接続関係があると判定されたＩＦの組のうち所定の条件下にあるＩＦの組が複数ある場合、その複数のＩＦの組に属するＩＦを対象にした最適化問題を解く。最適化問題を解くことにより、ＩＦの組の各々に対応する一致度ｑ（ｘ）が最終的に決定され、接続関係が決定される。最適化問題については後記する。
【００３７】
情報出力部１６は、記憶部３０に記憶されたＩＦ接続情報３４０を、入出力部２０を介して、ネットワーク管理装置（不図示）や、トポロジ推定装置１に備えられたモニタ等に出力する。
【００３８】
記憶部３０は、ハードディスクやフラッシュメモリ、ＲＡＭ等の記憶手段からなり、その記憶領域として、ノードリスト保存部３１、ＩＦデータ保存部３２、判定候補保存部３３および接続リスト保存部３４が設定される。このノードリスト保存部３１には、前記したノードＩＦ対応情報３１０（図４）が格納される。ＩＦデータ保存部３２には、前記したＩＦフロー情報３２０（図５（ａ））および接続判定済フラグ３２５（図５（ｂ））が格納される。判定候補保存部３３には、前記した判定候補情報３３０（図６）が格納される。また、接続リスト保存部３４には、前記したＩＦ接続情報３４０（図７）が格納される。
なお、この記憶部３０には、図示を省略しているが、許容誤差σも格納される。
【００３９】
＜一致度ｑ（ｘ）の計算方法＞
あるノードに属するＩＦ１から流出するフローと、別のノードに属するＩＦ２に流入するフローとを用いて、ＩＦ１とＩＦ２との間の接続関係を判定する例（つまり、ｋ＝２）について説明する。
【００４０】
（実施例１：コサイン類似度を用いたｑ（ｘ）の計算）
トポロジ推定装置１は、ＩＦ１のＩＦフロー情報３２０を参照して、所定期間内にＩＦ１から流出するフロー中に、特定のフロー構成要素（つまり、ｘ）がどの程度検出されたかという情報を取得することができる。図８（ａ）には、ＩＦ１を出力とするフロー（流出フロー）の送信元ＭＡＣアドレス（フロー構成要素の１つ）の分布の例が示されている。分布の横軸上に並んでいる「MAC1」〜「MAC19」は、送信元ＭＡＣアドレスの識別子であり、ネットワーク上のノードに付与されたＭＡＣアドレスのいずれかに対応している。分布の縦軸には、「MAC1」〜「MAC19」が所定期間内（例えば、ｔ１〜ｔ２）に検出された回数を示す頻度が設定されている。
また、図８（ｂ）には、ＩＦ２に入力するフロー（流入フロー）の送信元ＭＡＣアドレスの分布の例が示されている。図８（ｂ）の分布の横軸および縦軸は、図８（ａ）の分布の横軸および縦軸と同様である。
【００４１】
送信元ＭＡＣアドレスの分布は、例えば、ベクトルで表現することができる。図８（ａ）において、ＩＦ１を出力とするフローに対する送信元ＭＡＣアドレスの分布は、以下のように表現することができる。
【００４２】
【数１】
2015226280.tif 000003
【００４３】
同様にして、図８（ｂ）において、ＩＦ２に入力するフローに対する送信元ＭＡＣアドレスの分布は、以下のように表現することができる。
【００４４】
【数２】
2015226280.tif 000004
【００４５】
このとき、一致度計算部１３が計算するｑ（送信元ＭＡＣアドレス）は、図８（ｃ）の式に示すようにコサイン類似度として求めることができる。なお、フロー構成要素ｘが、送信元ＭＡＣアドレス以外である場合にも、ｑ（ｘ）をコサイン類似度として求めることができる。
【００４６】
コサイン類似度として求められるｑ（ｘ）は、０〜１までの実数値をとる。ｑ（ｘ）が１に近づくほど、ＩＦ１を出力とするフローとＩＦ２を入力するフローとは一致しているといえる。接続関係判定部１４は、１−ｑ（ｘ）≦σという関係式（σは、許容誤差であり、微小な正数）を満たしたとき、ＩＦ１およびＩＦ２は接続関係にあると決定する。
【００４７】
（実施例２：Jaccard係数を用いたｑ（ｘ）の計算）
送信元ＭＡＣアドレスの分布は、例えば、「０」または「１」を元（要素）とする２元集合で表現することができる。図９（ａ）のＩＦ１を出力とするフローの分布は、図８（ａ）の分布と同じであるが、頻度が０である送信元ＭＡＣアドレスに対しては、元「０」が割り当てられ、頻度が０より大きい送信元ＭＡＣアドレスに対しては、元「１」が割り当てられている。
【００４８】
図９（ａ）において、ＩＦ１を出力とするフローに対する送信元ＭＡＣアドレスの分布は、以下のように表現することができる。
集合：IF1_out ＝ （MAC1の元，MAC2の元，・・・，MAC19の元）
【００４９】
同様にして、図９（ｂ）において、ＩＦ２に入力するフローに対する送信元ＭＡＣアドレスの分布は、以下のように表現することができる。
集合：IF2_in ＝ （MAC1の元，MAC2の元，・・・，MAC19の元）
【００５０】
このとき、一致度計算部１３が計算するｑ（送信元ＭＡＣアドレス）は、図９（ｃ）の式に示すように、集合同士のJaccard係数として求めることができる。なお、フロー構成要素ｘが、送信元ＭＡＣアドレス以外である場合にも、ｑ（ｘ）をJaccard係数として求めることができる。
【００５１】
Jaccard係数として求められるｑ（ｘ）は、０〜１までの実数値をとる。ｑ（ｘ）が１に近づくほど、ＩＦ１を出力とするフローとＩＦ２を入力するフローとは一致しているといえる。接続関係判定部１４は、１−ｑ（ｘ）≦σという関係式（σは、許容誤差であり、微小な正数）を満たしたとき、ＩＦ１およびＩＦ２は接続関係にあると決定する。
【００５２】
上記説明は、３つのＩＦ１、ＩＦ２、ＩＦ３の間の接続関係を判定することに応用できる。なお、ＩＦ１、ＩＦ２、ＩＦ３のすべてが同一のノードに属する場合は除く。まず、ＩＦ１、ＩＦ２、ＩＦ３の各々を出力とするフローのフロー構成要素ｘの分布を表した３つのベクトルを合成した出力側合成ベクトルを求める。次に、ＩＦ１、ＩＦ２、ＩＦ３の各々に入力されるフローのフロー構成要素ｘの分布を表した３つのベクトルを合成した入力側合成ベクトルを求める。
【００５３】
このとき、一致度計算部１３が計算するｑ（ｘ）は、出力側合成ベクトルと入力側合成ベクトルを用いたコサイン類似度として求めることができる。接続関係判定部１４は、１−ｑ（ｘ）≦σという関係式を満たしたとき、ＩＦ１、ＩＦ２、ＩＦ３は接続関係にあると決定する。
【００５４】
また、ＩＦ１、ＩＦ２、ＩＦ３の各々を出力とするフローのフロー構成要素ｘの分布を表した３つの集合の和である出力側和集合と、ＩＦ１、ＩＦ２、ＩＦ３の各々に入力されるフローのフロー構成要素ｘの分布を表した３つの集合の和である入力側和集合を求める。
【００５５】
このとき、一致度計算部１３が計算するｑ（ｘ）は、出力側和集合と入力側和集合を用いたJaccard係数として求めることができる。接続関係判定部１４は、１−ｑ（ｘ）≦σという関係式を満たしたとき、ＩＦ１、ＩＦ２、ＩＦ３は接続関係にあると決定する。
【００５６】
上記説明は、ｎ個のＩＦ１、ＩＦ２、・・・ＩＦｎの間の接続関係を判定する場合にもあてはまる。なお、ＩＦ１、ＩＦ２、・・・ＩＦｎのすべてが同一のノードに属する場合は除く。
【００５７】
＜最適化問題＞
接続関係判定部１４は、それぞれのＩＦが１つのＩＦの組に属するように、１つ１つのＩＦの接続関係を決定する。よって、１つのＩＦが２つ以上のＩＦの組に属するような決定はしない。例えば、ＩＦ＿ａ１、ＩＦ＿ｂ１、ＩＦ＿ｃ１に対して、判定候補生成部１２により（ＩＦ＿ａ１、ＩＦ＿ｂ１）および（ＩＦ＿ａ１、ＩＦ＿ｃ１）という２つのＩＦの組が判定候補として生成し、２つの判定候補の一致度ｑ（ｘ）はいずれも、許容誤差σを用いた関係式：１−ｑ（ｘ）≦σを満たしたとしても、接続関係判定部１４は、（ＩＦ＿ａ１、ＩＦ＿ｂ１）および（ＩＦ＿ａ１、ＩＦ＿ｃ１）が同時に存在するような接続関係を決定することはない。
【００５８】
許容誤差σを用いた関係式を満たした複数の判定候補（ＩＦの組）に対して、接続関係判定部１４が一意的に接続関係を決定することができない場合には、最適化問題処理部１５による最適化問題を解くことで接続関係を決定する。最適化問題処理部１５は、例えば、複数の判定候補の各々の１−ｑ（ｘ）の値の和が最小になるような判定候補の組み合わせを見つけ出す（例：ナップサック問題）。接続関係判定部１４は、見つけ出された組み合わせに対応する接続関係を決定する。
【００５９】
４つのＩＦａ、ＩＦｂ、ＩＦｃ、ＩＦｄを対象にして、２つのＩＦからなるＩＦの組の組み合わせを見つけ出す、という最適化問題について説明する。判定候補となるＩＦの組の１−ｑ（ｘ）の値は、以下の表１の各欄に示された値をとるとする。
【００６０】
【表１】
2015226280.tif 000005
【００６１】
表１によれば、ＩＦの組の組み合わせと、その組み合わせに対する１−ｑ（ｘ）の合計値は以下の表２のようになる。
【００６２】
【表２】
2015226280.tif 000006
【００６３】
ＩＦａのことだけを考慮すれば、（ＩＦａ，ＩＦｄ）というＩＦの組（１−ｑ（ｘ）＝0.001）が一番有利であり、パターンＣが選ばれる（１−ｑ（ｘ）の合計値＝0.201）。しかし、４つのＩＦａ、ＩＦｂ、ＩＦｃ、ＩＦｄすべてを考慮すれば、ＩＦａは、ＩＦｃと組（１−ｑ（ｘ）＝0.04）にしたほうが有利であり、パターンＢを選ぶほうが賢明である（１−ｑ（ｘ）の合計値＝0.07）。このように、最適化問題処理部１５は、１−ｑ（ｘ）の合計値が最小となるＩＦの組の組み合わせを選び出す。
【００６４】
なお、最適化問題処理部１５は、対象とするＩＦの数の関係上、ＩＦの組を構成できずに残されたＩＦについては、いずれのＩＦにも接続されていないとみなす。例えば、４つのＩＦａ、ＩＦｂ、ＩＦｃ、ＩＦｄを対象にして、３つのＩＦからなるＩＦの組の組み合わせを見つけ出す、という最適化問題を解く場合、（ＩＦａ、ＩＦｂ、ＩＦｃ）というＩＦの組が選び出されたときには、残りのＩＦｄは、３つのＩＦからなるＩＦの組を構成することはないとみなす。
【００６５】
＜処理の流れ＞
次に、本実施形態に係るトポロジ推定装置１のトポロジ推定処理の流れについて説明する。
図１０は、本実施形態に係るトポロジ推定装置１のトポロジ推定処理の流れを示すフローチャートである。なお、ここでは、推定対象となるＩＦの組の初期値としてｋ＝２が、予め判定候補生成部１２に設定されているものとする。
【００６６】
まず、トポロジ推定装置１の情報入力部１１は、ネットワーク管理装置（不図示）等から、ノードＩＦ対応情報３１０（図４）、ＩＦ毎のＩＦフロー情報３２０（図５（ａ））、および、許容誤差σを取得し、記憶部３０に記憶する（ステップＳ１）。なお、ＩＦフロー情報３２０が、記憶部３０に記憶されると、判定候補生成部１２が、そのＩＦフロー情報３２０のＩＦに対応する接続判定済フラグ３２５を初期値「０」として生成する。
【００６７】
次に、判定候補生成部１２は、推定対象となるＩＦの組み合わせ（ＩＦの組）を生成する。
具体的には、判定候補生成部１２は、接続判定済フラグ３２５が「０」のＩＦフロー情報３２０を抽出し、抽出したＩＦフロー情報３２０の数（つまり、推定対象のＩＦの数）を「ｎ」個とする。そして、判定候補生成部１２は、推定対象となるＩＦの数「ｎ」からｋ個（初期値は、ｋ＝２）のＩＦの組となる組み合わせを全て生成する（ステップＳ２）。そして、判定候補生成部１２は、生成したＩＦの組を、判定候補として判定候補情報３３０（図６参照）に格納する。
【００６８】
続いて、一致度計算部１３は、判定候補生成部１２がステップＳ２において判定候補として生成したＩＦの組すべてについて一致度ｑ（ｘ）を計算する（ステップＳ３）。具体的には、一致度計算部１３は、記憶部３０内の判定候補情報３３０（図６）に格納された判定候補となるＩＦの組を取得し、そのＩＦの組において示される各ＩＦのＩＦフロー情報３２０を取得する。そして、一致度計算部１３は、取得したＩＦフロー情報３２０を用いてｑ（ｘ）（コサイン類似度またはJaccard係数）を計算し、判定候補情報３３０（ｑ（ｘ）値３３２）に格納する。
【００６９】
次に、接続関係判定部１４は、判定候補情報３３０を参照して、判定候補として生成したＩＦの組のうち、１−ｑ（ｘ）≦σの関係式を満たすＩＦの組を抽出する（ステップＳ４）。
【００７０】
次に、接続関係判定部１４は、抽出された２以上のＩＦの組に属しているＩＦが存在するか否かを判定する（ステップＳ５）。存在する場合には（ステップＳ５→Ｙｅｓ）、ステップＳ６に進む。一方、存在しない場合には（ステップＳ５→Ｎｏ）、推定対象のｎ個のＩＦは、抽出されたＩＦの組のいずれか１つに属しており、最適化問題を解く必要がないことを意味しており、ステップＳ７に進む。
【００７１】
ステップＳ６において、最適化問題処理部１５は、ステップＳ４にて抽出された２以上のＩＦの組に属しているＩＦを含む組を対象にして、最適化問題を解く。最適化問題を解くことで、１−ｑ（ｘ）の合計値が最小となるＩＦの組の組み合わせが決定され、接続関係が決定される。ステップＳ６の後、ステップＳ７に進む。
【００７２】
ステップＳ７において、接続関係判定部１４は、最終的に決定されたＩＦの組をＩＦ接続情報３４０（図７参照）に格納する。「最終的に決定されたＩＦの組」とは、ステップＳ５の判定により最適化問題を解く必要がないとされたＩＦの組、またはステップＳ６にて最適化問題を解いて決定されたＩＦの組である。ステップＳ７の後、ステップＳ８に進む。
【００７３】
ステップＳ８において、接続関係判定部１４は、最終的に決定されたＩＦの組に属しているＩＦの接続判定済フラグ３２５を「１」とする。ステップＳ８の後、ステップＳ９に進む。
【００７４】
ステップＳ９において、接続関係判定部１４は、現時点における接続判定済フラグ３２５が「０」であるＩＦの数「ｎ」がステップＳ２で設定されたｋ以下であるか否かを判定する。ここで、ｋ以下でない場合には（ステップＳ９→Ｎｏ）、ステップＳ１０に進み、ｋに１を加えて、ステップＳ２へ戻り、（ｋ＋１）個のＩＦからなるＩＦの組の接続関係の判定に関する処理を続ける。一方、ｋ以下である場合には（ステップＳ９→Ｙｅｓ）、トポロジ推定装置１はトポロジ推定処理を終了する。
【００７５】
以上説明したように、本実施形態に係るトポロジ推定装置１およびプログラムによれば、トポロジの推定において、トラフィック量よりも多くの情報を取得可能とするフロー情報を用いるため、ＩＦ間の接続関係（トポロジ）の推定の精度を向上させることができる。よって、各装置（ノード）の送受信トラフィック量の測定方法が異なる場合であっても、精度を向上させてＩＦ間の接続関係（トポロジ）を推定することができる。
また、最適化問題を解くことにより、サブネットを構成するＩＦがどのＩＦの組に属しているかを最終的に決定することができる。
【００７６】
≪その他≫
一致度ｑ（ｘ）のとり得る値の範囲は０〜１に限定されず、１以上、または負値をとる場合にも本発明を適用することができる。
【００７７】
所定のＩＦにおける特定のフロー構成要素の頻度の時間変化を追従して、その時間変化の一致性を評価することで、ＩＦの接続関係を推定することもできる。
【００７８】
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００７９】
１      トポロジ推定装置
１０    処理部
１１    情報入力部
１２    判定候補生成部（判定候補生成手段）
１３    一致度計算部（一致度計算手段）
１４    接続関係判定部（接続関係判定手段）
１５    最適化問題処理部
１６    情報出力部
２０    入出力部
３０    記憶部（記憶手段）
３１０  ノードＩＦ対応情報
３２０  ＩＦフロー情報
３２５  接続判定済フラグ
３３０  判定候補情報
３４０  ＩＦ接続情報
【図１】
2015226280.tif 000007
【図２】
2015226280.tif 000008
【図３】
2015226280.tif 000009
【図４】
2015226280.tif 000010
【図５】
2015226280.tif 000011
【図６】
2015226280.tif 000012
【図７】
2015226280.tif 000013
【図８】
2015226280.tif 000014
【図９】
2015226280.tif 000015
【図１０】
2015226280.tif 000016