(57)【要約】【課題】  各端末の通信品質情報と属性情報を収集し、品質劣化検出時には該劣化要因を特定する。【解決手段】  本発明は、通信ネットワークの端末からTCP(Transmission Control Protocol)品質とエンドエンドの遅延時間を含む品質情報及び属性情報を収集し、品質情報と属性ベクトルから成るフローデータの中でスループット劣化状態にあるフローデータを抽出し、その集合を出力し、各属性の各カテゴリに起因する品質劣化度合を属性別品質劣化度ベクトルvzとする。vzの各要素の平均を求め、平均値より大きな要素のインデックスの集合Szaと該属性別品質劣化度ベクトルvzの各要素の中から上位H個を抽出し、抽出された要素のインデックス集合SHとSzaの和集合Suから１つ以上のインデックスを選択して劣化要因特定ベクトルvzt'を作成し、該vzt'が所定の閾値より大きいとき劣化状態と判定する。【選択図】  図２
2015228630.tif 000002
【特許請求の範囲】
【請求項１】
TCP(Transmission Control Protocol)で通信を行う通信ネットワークの通信品質の劣化要因を分析するTCP通信品質劣化要因分析装置であって、
前記通信ネットワークの端末からTCPスループットyaとエンドエンドの遅延時間ybを含む品質情報及び属性情報を収集し、該属性情報から属性ベクトルvxを生成し、該品質情報と属性ベクトルから成るフローデータを出力する情報解析手段と、
所定の時間内に到着したフローデータの中で、スループット劣化状態にあるフローデータを抽出し、フローデータ集合を出力する品質劣化検出手段と、
前記スループット劣化状態にあるフローデータ集合について、各属性の各カテゴリに起因する品質劣化度合を示す属性別品質劣化度ベクトルvzを推定する品質劣化度推定手段と、
前記属性別品質劣化度ベクトルvzの各要素の平均を求め、平均値より大きな要素のインデックスの集合Szaと該属性別品質劣化度ベクトルvzの各要素の中から上位H個の要素を抽出し、抽出された要素のインデックス集合SHと該Szaの和集合Suから１つ以上のインデックスを選択することにより、各要素が０か１の二値を取る劣化要因特定ベクトルvzt'を作成し、該vzt' の各要素のうち、値が１であればその要素に対応する属性：カテゴリが劣化要因を意味する品質劣化要因特定手段と、
を有することを特徴とするTCP通信品質劣化要因分析装置。
【請求項２】
前記品質劣化度推定手段は、
前記フローデータ集合から
【数２３】
2015228630.tif 000025
（ただし、zi,jは、属性iのカテゴリjに起因する品質劣化度）
により各属性の各カテゴリに起因する前記属性別品質劣化度ベクトルvzを求める手段を含む
請求項１記載のTCP通信品質劣化要因分析装置。
【請求項３】
前記品質劣化度推定手段は、
前記フローデータ集合のフローデータのフローの遅延時間ybから品質劣化時の遅延時間増分yb'を求め、該遅延時間yb、該遅延時間の増分、所定のn×D行列、及び、n次元の列ベクトルに、CS(Compressed sensing)を適用して遅延時間に対する属性別品質劣化度ベクトルvzbを算出する手段と、
前記TCPスループットyaと前記遅延時間ybからパケット損失率を推定するための関数を用いてパケット損失率ypを求め、該パケット損失率yp、前記属性ベクトルvx、及び、n次元の列ベクトルに前記CSを適用してパケット損失率に対する属性別品質劣化ベクトルvzpを算出する手段と、
前記遅延時間に対する属性別品質劣化度ベクトルvzbと前記パケット損失率に対する属性別品質劣化ベクトルvzpの要素に、前記遅延時間ybと前記パケット損失率ypが入力されたときに前記TCPスループットyaを与える関数を適用してスループットに対する属性別品質劣化度ベクトルvztを算出する手段と、
を含み、
前記品質劣化要因特定手段は、
前記スループットに対する属性別品質劣化度ベクトルvzt、または、前記遅延時間に対する属性別品質劣化度ベクトルvzbと前記パケット損失率に対する属性別品質劣化度ベクトルvzpから前記劣化要因特定ベクトルvzt'を作成する劣化要因特定ベクトル生成手段を含む
請求項１記載のTCP通信品質劣化要因分析装置。
【請求項４】
前記劣化要因特定ベクトル生成手段は、
前記スループットに対する属性別品質劣化度ベクトルvztの各要素の平均zaを算出し、該平均より大きな値を持つ要素を該属性別品質劣化度ベクトルvztから抽出し、抽出された各要素のインデックスの集合Szaとし、上位H個の要素を抽出し、抽出された要素のインデックス集合SHと該Szaの和集合Suから
【数２４】
2015228630.tif 000026
通りのインデックスを選択し、該インデックスに対する要素の値１とし、残りの要素を０とした前記劣化要因特定ベクトルvzt'を生成する手段を含む
請求項３記載のTCP通信品質劣化要因分析装置。
【請求項５】
前記劣化要因特定ベクトル生成手段は、
前記遅延時間に対する属性別品質劣化度ベクトルvzbの各要素の平均zaを算出し、該平均より大きな値を持つ要素を該属性別品質劣化度ベクトルvzbから抽出し、抽出された各要素のインデックスの集合をSza_bとし、
前記パケット損失率に対する属性別品質劣化ベクトルvzpの各要素の平均zaを算出し、該平均より大きな値を持つ要素を該属性別品質劣化ベクトルvzpから抽出し、抽出された各要素のインデックスの集合Sza_pとし、
前記和集合Suを前記Sza_bと前記Sza_pの論理和とし、該論理和と所定のパラメータの値と比較することにより、
【数２５】
2015228630.tif 000027
通りのインデックスを選択し、該インデックスに対する要素の値を１とし、残りの要素の値を０とした前記劣化要因特定ベクトルvzt'を生成する手段を含む
請求項３記載のTCP通信品質劣化要因分析装置。
【請求項６】
前記品質劣化要因特定手段は、
前記スループット劣化状態にあるフローデータ集合に属するフローデータに対し、同じ属性ベクトルvxを持つフローデータのスループットを集めて代表値を算出し、該代表値を用いて前記劣化要因特定ベクトルvzt'から誤検出率及び見逃し率を算出し、正確性に関する指標である適合率と網羅性に関する指標である再現率の調和平均によって求められるF値に適用し、該F値が最大となる劣化要因特定ベクトルvzt'を最適なvz'として出力する
請求項１記載のTCP通信品質劣化要因分析装置。
【請求項７】
TCPで通信を行う通信ネットワークの通信品質の劣化要因を分析する装置におけるTCP通信品質劣化要因分析方法であって、
前記通信ネットワークの端末からTCPスループットyaとエンドエンドの遅延時間ybを含む品質情報及び属性情報を収集し、該属性情報から属性ベクトルvxを生成し、該品質情報と属性ベクトルから成るフローデータを出力する情報解析ステップと、
所定の時間内に到着したフローデータの中で、スループット劣化状態にあるフローデータを抽出し、フローデータ集合を出力する品質劣化検出ステップと、
前記スループット劣化状態にあるフローデータ集合について、各属性の各カテゴリに起因する品質劣化度合を示す属性別品質劣化度ベクトルvzを推定する品質劣化度推定ステップと、
前記属性別品質劣化度ベクトルvzの各要素の平均を求め、平均値より大きな要素のインデックスの集合Szaと該属性別品質劣化度ベクトルvzの各要素の中から上位H個の要素を抽出し、抽出された要素のインデックス集合SHと該Szaの和集合Suから１つ以上のインデックスを選択することにより、各要素が０か１の二値を取る劣化要因特定ベクトルvzt'を作成し、該vzt' の各要素のうち、値が１であればその要素に対応する属性：カテゴリが劣化要因を意味する品質劣化要因特定ステップと、
を行うことを特徴とするTCP通信品質劣化要因分析方法。
【請求項８】
コンピュータを、
請求項１ないし請求項６のいずれか１項に記載のTCP通信品質劣化要因分析装置の各手段として機能させるためのTCP通信品質劣化要因分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、TCP(Transmission Control Protocol)通信品質劣化要因分析装置及び方法及びプログラムに係り、特に、IP(Internet Protocol)ネットワークの通信品質状態の劣化要因を分析するためのTCP通信品質劣化要因分析装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
通信ネットワークが広く利用されてくるに伴って、通信品質保証に対する要求が高まっている。それに伴い、通信品質を測定して現在の通信品質状態を把握し、品質劣化検出時にはその要因を特定することが重要になってきている。
【０００３】
エンドエンド遅延時間やパケット損失率、スループットといった品質を把握する直接的な方法としては、エンドエンド間で試験パケットを送受信することにより品質を能動的に測定する方法がある。pingコマンドによる往復遅延測定や、他pathchar（非特許文献１参照）等がある。他、例えば、着目するエンドホスト間において、試験パケットによるラウンドトリップタイムやパケット損失率の測定および経路上のボトルネック帯域の測定を実施し、かつ、実際にTCPで通信を行ってスループットを測定し、TCPのウインドーサイズを徐々に大きくしていったときにTCPスループットが増加するかどうか等を詳細に解析する方法を提案している（例えば、非特許文献２参照）。
【０００４】
また、ネットワーク内の個々の構成要素（リンクやルータなど）毎に品質状態を測定する代わりに、複数の発信元・着信先ノードペア間で試験パケットを送出し、パケットが宛先に到達しない場合には該通信経路上のいずれかのノードやリンクが故障していると判断する。複数のノードペアで故障が検出された場合は、例えば、なるべく少ないリンク数でこれら故障検知ペアの全てを被覆できるようなリンクを故障リンクの候補として抽出する。また故障リンクが特定できない場合はなるべく少ない追加の測定を実施する(例えば、非特許文献３，４参照)。
【０００５】
また、発着ノードペアでの試験パケットでの品質測定（パケット損失率や遅延）から、ネットワーク内の各リンクでの品質を推定する方法がある（例えば、非特許文献５参照）。例えば、複数の発着ノードペア間で、ユニキャスト通信により試験パケット測定をした場合には、各リンクの品質が一意に定まらない場合があるが、マルチキャスト通信で試験パケットを送信するか、あるいはパケットペアを送出することでその問題を解決している。
【０００６】
また、n本のリンクのうち、k本が品質劣化していると仮定し、リンクの品質推定・品質劣化リンクの特定に関する検討を行っている(例えば、非特許文献６，７，８参照)。特に、非特許文献６では、k=1のとき、品質劣化リンクを特定可能な、ネットワークのルーチングに対する条件を導出している。非特許文献７では、必要な測定パス数を導出している。
また、パケット損失率に関して、ネットワーク内の各リンクの品質を推定して品質劣化リンクを特定する方法の検討を行っている（非特許文献９参照）。
【０００７】
他の検討として、発着ノードペアの遅延測定から、各リンクの遅延分布を推定する方法が提案されている(例えば、非特許文献１０参照)。ここでは、リンクiの遅延をパラメータλiの指数分布（混合分布のケースも扱っている）とし、各リンクのλiの値は異なると仮定して、EM(Expectation Maximization)アルゴリズムによるパラメータ推定を行う。
また、複数のツリー上でのマルチキャスト測定結果から、リンクのパケット損失率を推定する技術がある（例えば、非特許文献１１参照）。
【０００８】
以上の方法は、ネットワーク上に試験パケットを送出して得られた情報と、試験パケットがネットワーク内のどのリンクを通るかというルーチング情報を用いて、ネットワークのリンクの品質を推定することを主眼においている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】http://www.caida.org/tools/utilities/others/pathchar/
【非特許文献２】的場 一峰, 阿多 信吾, 村田 正幸, "インターネットにおける計測に基づいたボトルネック特定手法," 電子情報通信学会 テレコミュニケーションマネジメント研究会, pp. 65 - 70, November 2000.
【非特許文献３】R. R. Komplella et al.,"Detection and Localization of Network Black Holes," Infocom 2007.
【非特許文献４】P. Barford et al., "Network Performance Anomaly Detection and Localization," Infocom 2009.
【非特許文献５】M. Coates et al., "Internet tomography,"IEEE Signal Processing Magazine, May 2002.
【非特許文献６】M. H. Firooz et al., "Network tomography via compressed sensing,"Globecom 2010.
【非特許文献７】W. Xu et al., "Compressive sensing over graphs: how many measurements are needed?", Forty-Eighth Annual Allerton Conference, 2010.
【非特許文献８】T. Matsuda et al.,"Link quality classifier with compressed sensing based on l1-l2 optimization," IEEE Communications Letters, Vol. 15, No. 10., Oct. 2011.
【非特許文献９】竹本, 松田, 滝根, "圧縮センシングを用いたネットワークトモグラフィによる低品質リンク検出方法", 信学技報NS2013-1.
【非特許文献１０】Y. Xia et al., "Inference of Link Delay in Communication Networks", IEEE JSAC, Dec. 2006.
【非特許文献１１】T. Bu, N. Duffield, F. L. Presti, and D. Towsley."Network tomography on general topologies", SIGMETRICS 2002.
【非特許文献１２】S. -J. Kim et al., "An interior-point method for large-scale 1l-regularized least squares", IEEE Journal of Selected Topics in Signal Processing, Dec. 2007.
【非特許文献１３】J. Padhye, V. Firoiu, D. Towsley, and J. Kurose. Modeling TCP throughput: a simple model and its empirical validation. In SIGCOMM. ACM., 1998.
【非特許文献１４】http://www.sophia-it.com/content/F値
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年の端末の高機能化・多様化やネットワーク利用形態の多様化に伴い、特にモバイル端末を用いた通信品質は、そのときのアプリケーションや無線通信環境、端末の位置、アクセス先サーバ、端末のOSの種類やバージョン、利用するアクセスネットワーク（Wi-Fi(登録商標)か3Gかなど）などに大きく依存すると考えられる。上記で述べた、既存の方法（ネットワーク内に閉じた品質推定法）では、このような多様な通信条件を踏まえて、各端末の通信品質状況を把握して品質劣化時にその要因を分析できないという問題があった。
【００１１】
本発明は、上記の点に鑑みなされたもので、各端末の通信品質情報と属性情報（端末機種、OS、アプリケーション、端末の位置、アクセスネットワークなど）を収集し、品質劣化検出時には該劣化要因を特定することが可能なTCP通信品質劣化要因分析装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
一態様によれば、TCPで通信を行う通信ネットワークの通信品質の劣化要因を分析するTCP通信品質劣化要因分析装置であって、
前記通信ネットワークの端末からTCPスループットyaとエンドエンドの遅延時間ybを含む品質情報及び属性情報を収集し、該属性情報から属性ベクトルvxを生成し、該品質情報と属性ベクトルから成るフローデータを出力する情報解析手段と、
所定の時間内に到着したフローデータの中で、スループット劣化状態にあるフローデータを抽出し、フローデータの集合を出力する品質劣化検出手段と、
前記スループット劣化状態にあるフローデータの集合について、各属性の各カテゴリに起因する品質劣化度合を示す属性別品質劣化度ベクトルvzを推定する品質劣化度推定手段と、
前記属性別品質劣化度ベクトルvzの各要素の平均を求め、平均値より大きな要素のインデックスの集合Szaと該属性別品質劣化度ベクトルvzの各要素の中から上位H個の要素を抽出し、抽出された要素のインデックス集合SHと該Szaの和集合Suから１つ以上のインデックスを選択することにより、各要素が０か１の二値を取る劣化要因特定ベクトルvzt'を作成し、該vzt' の各要素のうち、値が１であればその要素に対応する属性：カテゴリが劣化要因を意味する品質劣化要因特定手段と、を有するTCP通信品質劣化要因分析装置が提供される。
【発明の効果】
【００１３】
一態様によれば、各端末の通信品質情報と属性情報（端末機種、OS、アプリケーション、端末の位置、アクセスネットワークなど）を収集し、それらの条件に基づいて品質劣化要因を推定することにより、サービス提供しているネットワークのTCPスループットの品質劣化検出時における劣化要因を特定することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明が適用される通信ネットワークの基本構成例。
【図２】本発明の第１の実施の形態におけるTCP通信品質劣化要因分析装置の構成例。
【図３】本発明の第１の実施の形態におけるTCP通信品質劣化要因分析装置の処理フローチャート。
【発明を実施するための形態】
【００１５】
以下、図面と共に本発明の実施の形態を説明する。
【００１６】
図１は、本発明が適用される通信ネットワークの基本構成例を示す。
【００１７】
同図に示す通信ネットワークは、コアネットワーク１０、アクセスネットワーク２０、複数のサーバ３０、複数の端末４０、TCP通信品質劣化要因分析装置１００を有する。
【００１８】
同図に示すように各端末４０１〜４０nがTCP通信を実施した際、各端末４０１〜４０n は、TCP当該通信のTCPフローの品質情報（例えば、あるサーバからデータをダウンロードしているとし、該サーバ−該端末間でのTCPスループットyaをTCP品質として測定し、同時にエンドエンドでの遅延時間ybも測定）および該フローに関する属性情報（フロー属性情報）を、TCP通信品質劣化要因分析装置１００に送信する。属性の例として、端末機種、OS、アプリケーション、端末の位置、アクセスネットワーク（Wi-Fi(登録商標)か3Gか等）、サーバの場所、などがある。 
［第１の実施の形態］
図２は、本発明の第１の実施の形態におけるTCP通信品質劣化要因分析装置の構成例を示す。
【００１９】
TCP通信品質劣化要因分析装置１００は、情報解析部１１０、情報管理部１２０、管理テーブル１２１、品質劣化検出部１３０、品質劣化度推定部１４０、品質劣化要因特定部１５０を有する。
【００２０】
図３は、本発明の一実施の形態におけるTCP通信品質劣化要因分析装置の処理フローチャートである。
【００２１】
ステップ１）情報解析部１１０は、各端末４０１〜４０nから品質情報・属性情報を受信する。
【００２２】
ステップ２）情報解析部１１０は、属性情報から属性ベクトルvxを以下の手順で構成する。
【００２３】
属性数がd個あるとし、属性iの取り得る値をmi個のカテゴリに分類して、フローの属性ベクトルvxを式(1)で表す。
【００２４】
【数１】
2015228630.tif 000003
ここで、xi,jは、該フローの属性iのカテゴリがjのとき「1」、そうでなければ「0」をとる変数とする。例えばd=2とし、「属性1」をアクセスネットワーク、「属性2」を端末種別とする。「属性1」には３つのカテゴリがあるとし（m1=3）、Wi-Fi(登録商標)を1番目のカテゴリ、3Gを2番目のカテゴリ、LTE(Long Term Evolution)(登録商標)を3番目のカテゴリとし、「属性2」はType 1, 2, 3の3つのカテゴリ（m2=3）に分類されているとする。例えば、属性iについて、
・属性i=1のカテゴリj:
アクセスネットワーク  (1)Wi-Fi (登録商標)，(2)3G，(3)LTE (登録商標)
・属性i=2のカテゴリj
端末種別  (1)Type1, (2)Type2, (3)Type3 
この例を「Ex-1」と呼ぶ。あるフローのアクセスネットワークがWi-Fi(登録商標)、端末種別がType 2の場合、該フローの属性ベクトルはvx=[1,0,0,0,1,0]となる。
【００２５】
以上の手順で得られる属性ベクトルvxと通信品質ya,ybの組を、フローデータ(vx,ya,yb)とよぶ。情報解析部１１０は、フローデータ(vx,ya,yb)を情報管理部１２０へ送信する。
【００２６】
ステップ３）まず、情報管理部１２０は、フローデータにタイムスタンプを付与して管理テーブル１２１に格納する。
【００２７】
ステップ４）次に、情報管理部１２０では、品質状態に応じてフローデータの分類を行う。具体的な手順を以下に示す。収集されたフローデータの集合をΩとする。各フローデータに対して、TCPスループットyaが予め定めた目標値ya*を満たしているかをチェックし、 ya≧ya*ならば「スループット正常状態」、ya＜ya*ならば「スループット劣化状態」とする。また、遅延時間ybが予め定めた目標値yb*を満たしているかチェックし、yb≦yb*ならば「遅延時間正常状態」、yb＞yb*ならば「遅延時間劣化状態」とする。これらの情報も、管理テーブル１２１内に記憶しておく。
【００２８】
ステップ５）品質劣化検出部１３０は、一定周期毎に管理テーブル１２１内にアクセスし、過去T時間以内（Tは予め定める時間長）に到着したフローデータの中で、「スループット劣化状態」（ya<ya*）にあるフローデータが存在するかチェックする。もし存在する場合は、該時間区間内に到着したフローデータを抽出し、その集合をΩtとし、品質劣化度推定部１４０へΩtに属するフローデータを転送する。
【００２９】
なお、品質劣化検出部１３０において、T時間毎に上記手順を実施する代わりに、例えば、フローデータが到着する毎にスループット劣化状態にあるかどうかチェックし、劣化が検出されたら、その時点を含む前後T/2時間の間のフローデータを収集して、それをΩtとしてもよい。
【００３０】
ステップ６）品質劣化度推定部１４０は、品質劣化検出部１３０からΩtに関するフローデータを取得し、各属性の各カテゴリに起因する品質劣化度合を推定する。
【００３１】
具体的には、以下で定義される属性別品質劣化度ベクトルvz
【００３２】
【数２】
2015228630.tif 000004
を推定する。
【００３３】
ここで、zi,jは、属性iのカテゴリjに起因する品質劣化度を意味する。例えば、ステップ２の「Ex-1」に対して、遅延時間（単位をmsとする）に対するvz（vzbと記す）が、
vzb=[z1,1, z1,2, z1,3, z2,1, z2,2, z2,3]=[800,0,0,200,0,0]
と推定されたとする。このとき、z1,1=800msは、Wi-Fi (登録商標)を使用するフローが800msの（正常状態からの）遅延時間増分があることを意味する。z1,2= z1,3= 0msは、3GまたはLTE (登録商標)を使用するフローは遅延時間の増分なしを意味する。同様に、z2,1=200msは、Type-1端末を用いると、200msの遅延時間の増分があり、z2,2= z2,3=0はType-2端末またはType-3端末を用いるフローは遅延時間の増分なしを意味する。
【００３４】
上記の属性別品質劣化度ベクトルvzの推定手順を以下に説明する。
【００３５】
遅延時間、パケット損失率、スループットに対する属性別品質劣化度ベクトルvzを、それぞれvzb, vzp, vztと記し、これらの推定手順を述べる。
【００３６】
・vzbの推定方法：
まず、遅延時間に対する属性別品質劣化度ベクトルvzbについて説明する。
【００３７】
以下の式(3)を最小にするvzbを計算する。
【００３８】
【数３】
2015228630.tif 000005
ただし、式(3)において、
【００３９】
【数４】
2015228630.tif 000006
はベクトルwに対するl2ノルムといい、
【００４０】
【数５】
2015228630.tif 000007
である（wiはベクトルwのi番目の要素）。
【００４１】
【数６】
2015228630.tif 000008
はベクトルwに対するl1ノルムといい、
【００４２】
【数７】
2015228630.tif 000009
である。またλは予め定める正の定数とする。また、Aとvyb'は以下で与えられる。なお、Aはn×D行列（D=m1+m2+…+md，n=｜Ωt｜）、vyb'はn次元の列ベクトルである。
【００４３】
【数８】
2015228630.tif 000010
ここで、yb'kは品質劣化時の遅延時間の増分を意味し、
【００４４】
【数９】
2015228630.tif 000011
により計算する。ここで、ybkはΩtに属するk番目のフローの遅延時間であり、関数f(vx)は、属性ベクトルvxを入力として、正常状態における遅延時間を出力とする関数である。なお、f(vx)は、Ωの中から遅延時間が正常状態にある属性ベクトルと通信品質の組(vx,yb)を抽出してその集合をΩoとし、Ωoを用いてvxからybを推定する式yb=f(vx)を構築しておく。
【００４５】
例として、「Ex-1」で定義される属性ベクトルを持つフローデータが３つあり、１番目のフローデータのうち、(vx1, yb1)の値が([0,1,0,1,0,0], 600ms)、２番目のフローデータのうち、(vx2,yb2)の値が([1,0,0,1,0,0], 1200ms)、３番目のフローデータのうち、(vx3, yb3)の値が([0,1,0,0,1,0], 200ms)であるとする。また、yb*=500ms, f(vx1)=400ms, f(vx2)=200msだったとすると、
(vx1, yb'1) = ([0,1,0,1,0,0], 200),
(vx2, yb'2) = ([1,0,0,1,0,0], 1000),
(vx3, yb'3) = ([0,1,0,0,1,0], 0)
となる。これを入力として、vz=[z1,1, z1,2, z1,3, z2,1, z2,2, z2,3]を推定する。もしvz=[800,0,0,200,0,0]と推定された場合、各要素の値の意味は、ステップ６の冒頭に記載の通りである。 
なお、式(3)を最小にすることの意味について説明する。式(3)のように、l1ノルム項を含めて最小化をする手法（例えば、非特許文献１２参照）は、スパースなベクトル（少数の非零要素と大多数の零からなるベクトル）を推定したい場合に用いられ、compressed sensing(CS)と呼ばれる。本発明では、属性別品質劣化度ベクトルvzbを推定する際に、品質劣化主要因が少数であるとみなしてCSを適用する（つまり式(3)を最小にするvzbを求める）ことで、品質劣化度ベクトルの推定を行っている。なお、式(3)を適用する際に、遅延時間ybそのものではなく、yb'を用いた理由を述べる。遅延時間は、正常時にあっても、ある一定の値（ベースラインと呼ぶ）をとるため、そのベースラインを除去してからCSを適用することで、少数の非零要素からなるベクトルvzb（つまり、正常時からの遅延時間増分がある要素が少数で、多くは遅延時間増分なし）を推定している。 
・vzpの推定方法
パケット損失率に対する属性別品質劣化ベクトルvzpについて説明する。
【００４６】
まず、TCPスループットyaと遅延時間ybからパケット損失率ypを推定する関数として、
【００４７】
【数１０】
2015228630.tif 000012
とする。上記の関数g2の構成手順は以下の通りである。
【００４８】
まず、遅延時間ybとパケット損失率ypを入力として、TCPスループットyaを出力する関数ya=h(yb,yp)を予め用意し、本関数を遅延時間ybの下でのTCPスループットyaとパケット損失率ypの関係式ya=h(yp)とみなせば、g2(ya)=h-1(ya)として与えられる。なお、式(6)においては、スループット劣化状態にあるときに、パケット損失率は十分小さいとして0としている。
【００４９】
ya=h(yb,yp)の具体的な関数として、以下が考えられる(例えば、非特許文献１３参照)。
【００５０】
【数１１】
2015228630.tif 000013
ここで、Mは最大セグメントサイズ（例えばM=1460byte）、bは一つのACKパケットで確認されるパケットの個数（b=2が典型的な値）、T0はTCP再送タイムアウト値で、T0=max(T0min, Tv)とする。T0minは最小タイムアウト値、TvはそのときのTCPフローによって決まるタイムアウト値である。例えば、ybを用いて、Tv=yb+βsigmaとする。βは予め定める係数（β=4等）、sigmaはエンドエンド遅延時間の標準偏差である。
【００５１】
上記関数を用いて、Ωtに属するk番目のフローデータ(k=1〜n, n=|Ωt|)に対してypkを求め、得られたypkとvxkの組を用いて、以下の式(7)を最小にするvzpを計算する。
【００５２】
【数１２】
2015228630.tif 000014
なお、vypは以下で与えられるn次元の列ベクトルである。
【００５３】
【数１３】
2015228630.tif 000015
次に、得られたベクトルvzpの要素zpi,j（つまり属性iのカテゴリjに対応する要素）を1−exp(−zpi,j)と変換し、その変換後の値を要素に持つベクトルを新たなvzpとして構成する。なお、式(8)のように、パケット損失率ypを−ln(1−yp)と変換している理由は、＜補足＞として後述する。
【００５４】
・vztの推定方法
vzpとvzbから、スループットに対する属性別品質劣化ベクトルvztを構成する手順を以下に示す。
【００５５】
遅延時間ybとパケット損失率ypを入力したときにTCPスループットyaを与える関数ya=h(yb,yp)に対して、vzbの要素zbi,jおよびvzpの要素zpi,jを用いて、zti,j=1/h(zbi,j, zpi,j)を計算し、vztを以下のように計算する。
【００５６】
【数１４】
2015228630.tif 000016
ステップ７）品質劣化要因特定部１５０は、品質劣化度推定部１４０で計算されたvztを用いて以下の処理を実施する。
【００５７】
まず、vztの各要素の値の平均zaを以下の式で計算する。
【００５８】
【数１５】
2015228630.tif 000017
品質劣化要因特定部１５０は、zaより大きな値を持つ要素を抽出し、抽出された各要素のインデックスの集合をSzaとする。また、予め定めた正の整数Hに対して、vztの各要素の中から要素の値に関して上位H個の要素を抽出し、該抽出された各要素のインデックスの集合をSHとし、SzaとSHの和集合をSuとする。
【００５９】
例えば、vzt=[1000,0.1,0.1,500,0.1,0.1]の場合、za=250となり、Sza=[1,4]となる。またH=1とするとSH=[1]となり、Su=[1,4]となる（この例を例Aとする）。
【００６０】
次に、品質劣化要因特定部１５０は劣化要因特定ベクトルvzt'を以下のように定義する。
【００６１】
【数１６】
2015228630.tif 000018
ここで、zt'i,jは属性iのカテゴリjが品質劣化主要因であれば「1」、そうでなければ「0」の値を取る変数である。インデックス集合Suから１つ以上のインデックスを選択し（選択パターンは全部で
【００６２】
【数１７】
2015228630.tif 000019
通り）、選択されたインデックスに対する要素の値を「1」とし、残りの要素を「0」としたベクトルをvzt'として構成する。これら
【００６３】
【数１８】
2015228630.tif 000020
通りのvzt'を劣化要因ベクトルの候補とする。
【００６４】
上記の例Aにおいては、
vzt'=[1,0,0,0,0,0]，
vzt'=[0,0,0,1,0,0]，
vzt'=[1,0,0,1,0,0]
の
【００６５】
【数１９】
2015228630.tif 000021
通りのvzt'が構成される。このうち、例えばvzt'=[1,0,0,1,0,0]とは、（該vzt'が「Ex-1」に対するvzt'だとすると）Wi-Fi (登録商標)またはType1端末が劣化要因として推定されたことを意味する。
【００６６】
なお、
【００６７】
【数２０】
2015228630.tif 000022
通りの候補を作成する代わりに、その一部のみを作成してもよい。例として、vztの各要素のうち、値の最も大きい要素を「1」に変換し、残りを「0」に変換して、vzt'を構成する。次に、vztの各要素のうち値に関して上位２個の要素を抽出し、それらを「１」に変換して、残りを「０」にしてvzt'を構成する。これを、上位|Su|個まで繰り返す。こうすると、|Su|通りのvzt'が構成される。例Aにおいては、
vzt'=[1,0,0,0,0,0], 
vzt'=[1,0,0,1,0,0]
の２通り作成される。
【００６８】
ステップ８）品質劣化要因特定部１５０は、ステップ７で得られた複数のvzt'の中から、最適なvzt'を選択する。その選択手順を以下に示す。Ωtに属するフローデータkの(vxk, yak)に対し、同じvxkを持つフローデータのスループットyak1, yak2, …を集めて、代表値\bar{ya}k（例えばyak1, yak2, …の平均値）を計算する。ここで、誤検出率FPRおよび見逃し率FNRを以下で計算する。
【００６９】
FPR=P[vxk・vzt'>th|\bar{ya}k≧ya*]
FNR=P[vxk・vzt'≦th|\bar{ya}k<ya*]
なお、thは予め定めるパラメータ（０以上の整数）である。本式では、\bar{ya}k<ya*となる属性ベクトルを「真の劣化状態（real positive）」、\bar{ya}k≧ya*を「真の正常状態（real negative）」、vxk・vzt'>thを「推定された劣化状態（estimated positive）」、vxk・vzt'≦thを「推定された正常状態（estimated negative）」、と定義している。ここで、vxk・vzt'の意味は、属性ベクトルvxkが、vzt'により劣化要因と指定された「属性：カテゴリ」をいくつ含むかを意味する。本発明では、その値がthより大きいとき、劣化状態と推定し、そうでないとき正常状態と推定している。
【００７０】
次に、正確性に関する指標である適合率と網羅性に関する指標である再現率の調和平均によってF値を求める非特許文献１４の技術を用いて、以下で与えられるF（F値と呼ぶ）を計算する。
【００７１】
【数２１】
2015228630.tif 000023
ここで、NTP，NFP，NFNは、それぞれtrue positiveの個数（つまり、「真の劣化状態」にあり、かつ「劣化状態」と推定された属性ベクトルの個数）、false positiveの個数（つまり、「真の正常状態にあるが劣化状態」と推定された属性ベクトルの個数）、false negativeの個数（つまり、「真の劣化状態にあるが正常状態」と推定された属性ベクトルの個数）である。RpreはPrecisionと呼ばれる尺度で、「推定された劣化状態のうち真の劣化状態」にある割合、Rrecはrecallと呼ばれる尺度で「真の劣化状態のうち正しく劣化状態」と推定された割合である。NP，NNはそれぞれ「真の劣化状態」である属性ベクトルの個数、「真の正常状態」である属性ベクトルの個数である。βは予め定めるパラメータであり、β＞1のときrecallに重みを付け、0＜β＜1のときprecisionに重みを付けることになる。式(12)から分かるように、F値は「0」から「1」の間の値を取り、FPR，FNRが小さいほどF値は「1」に近づく。
【００７２】
F値を、各vzt'に対して評価し、F値を最大にするvzt'を最適なvz'として出力する。
【００７３】
なお、vztを用いてスループットに関してステップ７とステップ８を実施しているが、その代わりに以下のようにしてもよい。
【００７４】
vzbを用いてステップ７とステップ８を実施し、遅延時間に関する劣化要因特定ベクトルを出力する（このとき、FPRの式における、\bar{ya}k≧ya*は、\bar{yb}k≦yb*とする。FNRの式における\bar{ya}k<ya*は、\bar{yb}k>yb*とする）。それをvzb'とする。
【００７５】
同様に、vzpを用いてパケット損失率に関する劣化要因ベクトルを出力する。それをvzp'とする。vzb'において要素が「1」であるインデックス集合と、vzp'において要素が「1」であるインデックス集合を用いて、例えばそれらの和集合を用いてvzt'を構成してもよい。
【００７６】
＜補足＞
補足として、品質劣化度推定部１４０において、式(8)のように、一旦パケット損失率に変換してから、スループット劣化要因特定を行っている理由を述べる。本発明では、式(3)あるいは式(7)において、各「属性：カテゴリ」に起因する品質の和がエンドエンドでの品質となることを仮定している。「Ex-1」の例で、
(vx1, yb'1) = ([0,1,0,1,0,0], 200),
(vx2, yb'2) = ([1,0,0,1,0,0], 1000),
(vx3, yb'3) = ([0,1,0,0,1,0], 0)
に対して、
vz=[z1,1, z1,2, z1,3, z2,1, z2,2, z2,3] =[800,0,0,200,0,0]
と推定されたとする。このとき、vx2・vz=800+200=1000=yb'2となる。つまり、エンドエンドでの遅延yb'2=1000msは、属性1のカテゴリ1(Wi-Fi (登録商標))に起因して800msの遅延があり、属性2のカテゴリ1（Type1の端末）に起因して200msの遅延があり、合計で1000msということに対応する。パケット損失率に関しては、「ネットワーク区間１」と「ネットーク区間２」を通るエンドエンドのパケット損失率pは、「ネットワーク区間１」，「ネットーク区間２」のパケット損失率をp1，p2とすると、p=1−(1−p1)(1−p2)の関係が成り立つ（各区間のパケット損失が独立な場合）。従って、
ln(1−p)=ln(1−p1)+ln(1−p2)
となり、エンドエンドの品質を途中区間の品質の和で表現できる（式(8)はこの変換に対応している）。一方、エンドエンドスループットは、一般に途中区間の和で表現ができない。そこで、本発明では、パケット損失率に変換してから、スループット劣化要因特定を行っている。
【００７７】
［第２の実施の形態］
本実施の形態におけるTCP通信品質劣化要因分析装置１００の構成は、図２の構成と同様であるが、品質劣化要因特定部１５０の処理が第１の実施の形態とは異なる。
【００７８】
本実施の形態では、図３のフローチャートにおいて、ステップ７の処理が第１の実施の形態と異なる。以下に、本実施の形態におけるステップ７の劣化要因特定ベクトルの候補作成処理を説明する。
【００７９】
ステップ７a）品質劣化要因特定部１５０は、第１の実施の形態においては、スループットに対する属性別品質劣化度ベクトルvztを用いてインデックスの集合Szaを求めていたが、その代わりに遅延時間に対する属性別品質劣化度ベクトルvzbを用いて第１の実施の形態と同様の手順を実施し、得られたインデックス集合をSza_bとする。また、パケット損失率に対する属性別品質劣化度ベクトルvzpに対しても第１の実施の形態と同様の手順を実施し、得られたインデックス集合をSza_pとする。
【００８０】
Sza_bとSza_pを用いて、劣化要因特定ベクトルvzt'を以下の手順で構成する。
【００８１】
・もし、|Sza_b∨Sza_p|≦Hならば（Hは予め定めるパラメータ）、
−まず、Su=Sza_b∨Sza_pとする。
【００８２】
−次に、vzp（あるいはvzb）の各要素のうち、Sza_b∨Sza_pに属するインデックスに対応する要素を除外し、残りの要素の中から値が大きな要素を順に抽出し、抽出された要素のインデックスをSuに追加していく。それを|Su|=Hとなるまで繰り返す。
【００８３】
・もし、|Sza_b∨Sza_p|>Hならば、
−まず、Su= Sza_b∨Sza_pとする。
【００８４】
−次に、Sza_p（あるいはSza_b）からインデックスを１つずつ選択し、それをSuから除外していき、それを|Su|=Hとなるまで繰り返す。除外対象インデックスは、vzp（あるいはvzb）において対応する要素の値が小さいものから選択する。
【００８５】
−以上の手順で得られたインデックス集合Suから１つ以上のインデックスを選択し（選択パターンは全部で
【００８６】
【数２２】
2015228630.tif 000024
通り）、選択されたインデックスに対する要素の値を「1」とし、残りの要素を「0」としたベクトルをvzt'として構成する。
【００８７】
［第３の実施の形態］
本実施の形態におけるTCP通信品質劣化要因分析装置１００の構成は、図２の構成と同様であるが、品質劣化要因特定部１５０の処理が第１の実施の形態とは異なる。
【００８８】
本実施の形態では、図３のフローチャートにおいて、ステップ７の処理が第１の実施の形態と異なる。以下に、本実施の形態におけるステップ７の劣化要因特定ベクトルの候補作成処理を説明する。
【００８９】
具体的には、第２の実施の形態のステップ７aにおける、Sza_bとSza_pを用いてSuを構成する手順のうち、|Sza_b∨Sza_p|>Hの場合の手順を、以下のように変更してもよい。
【００９０】
−まずvzbの要素のうち、要素の値に関して上位Hl個（Hl=min(floor(H/2), |Sza_b|))の要素を抽出し、抽出されたHl個の要素のインデックス集合をS_Hlとする。ここで、floor(x)は、xの整数部分を取り出す関数である。
【００９１】
−次に、vzpの要素のうち、上位Hp個（Hp=min(H-Hl, |Sza_p|)）の要素を抽出し、抽出された要素のインデックス集合をS_Hpとし、Su=S_Hl∨S_Hpとする（あるいは、vzpの要素のうち、値が大きな要素から順に抽出してS_Hpに追加してSu=S_Hl∨S_Hpを構成し、それを|Su|=Hとなるまで繰り返し実施してもよい）。
【００９２】
なお、上記手順では、まずvzbを対象にしてから次にvzpを対象に要素を抽出しているが、まずvzpを対象にしてから次にvzbを対象にして同様の手順を実施してもよい。
【００９３】
［第４の実施の形態］
本実施の形態におけるTCP通信品質劣化要因分析装置１００の構成は、図２の構成と同様であるが、品質劣化要因特定部１５０の処理が第１の実施の形態とは異なる。
【００９４】
図３のフローチャートにおいて、ステップ８において、第１、第２、第３の実施の形態による手順により得られた最適なvzt'それぞれに対して、第１の実施の形態におけるステップ８の手順でF値を計算し、F値が最も大きいvzt'を出力する。
【００９５】
なお、上記の図２のTCP通信品質劣化要因分析装置１００の各構成要素の動作をプログラムとして構築し、TCP通信品質劣化要因分析装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００９６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００９７】
１０  コアネットワーク
２０  アクセスネットワーク
３０  サーバ
４０  端末
１００  TCP通信品質劣化要因分析装置
１１０  情報解析部
１２０  情報管理部
１２１  管理テーブル
１３０  品質劣化検出部
１４０  品質劣化度推定部
１５０  品質劣化要因特定部
【図１】
2015228630.tif 000028
【図２】
2015228630.tif 000029
【図３】
2015228630.tif 000030