(57)【要約】【課題】全パケットをキャプチャすることなく、巨大フローを高精度に特定可能とする。【解決手段】サンプリング部２により、各フローのパケットをサンプリングレートｆでサンプルして当該フローｊのパケット数Ｙｊを計数して記憶し（ステップＳ４０１）、フロー長分布推定部５により、パケット数Ｙｊを用いて、当該フローのサンプル前のパケット数Ｘｊがｘ個である確率分布Ｐｒ［Ｘｊ＝ｘ］（元のフロー長分布）を算出し（ステップＳ４０２）、閾値算出部６により、元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］とパケット数Ｙｊとを用いて、当該フローｊが巨大フローであるか否かを特定するのに用いる閾値ｙ＊を算出し（ステップＳ４０３）、巨大フロー特定部７により、閾値ｙ＊とパケット数Ｙｊを比較し、パケット数Ｙｊが閾値ｙ＊を超えると当該フローｊを巨大フローとして特定する（ステップＳ４０４）。【選択図】図４
2009267892.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する方法であって、
プログラムされたコンピュータの処理手順として、
各フローのパケットをサンプリングレートｆでサンプルして当該フローｊのパケット数Ｙｊを計数して記憶装置に記憶するサンプリング処理手順と、
該サンプリング処理手順で記憶装置に記憶したパケット数Ｙｊを用いて、当該フローのサンプル前のパケット数Ｘｊがｘ個である確率分布Ｐｒ［Ｘｊ＝ｘ］（元のフロー長分布）を算出するフロー長分布推定処理手順と、
該フロー長分布推定処理手順で算出した元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］と上記記憶装置に記憶したパケット数Ｙｊとを用いて、当該フローｊが巨大フローであるか否かを特定するのに用いる上記閾値ｙ＊を算出する閾値算出処理手順と、
該閾値算出処理手順で算出した閾値ｙ＊と上記サンプリング処理手順で計数したパケット数Ｙｊを比較し、該パケット数Ｙｊが上記閾値ｙ＊を超えると当該フローｊを巨大フローとして特定する巨大フロー特定処理手順と
を含むことを特徴とする巨大フロー特定方法。
【請求項２】
請求項１に記載の巨大フロー特定方法であって、
上記閾値算出処理手順は、
フローｊのパケット数Ｙｊの最大値ｙｍａｘ＝ｍａｘ｛Ｙｊ｝と、該最大値ｙｍａｘを用いて下記数１の式で算出されるサンプル前のパケット数Ｘｊの最大値ｘｍａｘ＝ｍａｘ｛Ｘｊ｝と、下記数２，３の式で算出される、Ｘｊ＝ｘであるという条件の下でＹｊ≧ｙである確率Ｐ［Ｙｊ≧ｙ｜Ｘｊ＝ｋ］とを用いて、
Ｙｊ≧ｙであるという条件の下でＸｊ≧ｘである確率Ｐｒ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］を下記数４の式により算出する手順と、
【数１】
2009267892.tif 000039
【数２】
2009267892.tif 000040
【数３】
2009267892.tif 000041
【数４】
2009267892.tif 000042
上記数４の式で算出した確率Ｐ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］と、上記サンプル前のパケット数Ｘｊとの比較で当該フローｊを巨大フローであると判定するために予め定められる閾値ｘ＊とを用いて、ＦＰＲ（ｙ）＝１−Ｐ［Ｘｊ≧ｘ＊｜Ｙｊ≧ｙ］の式により誤検出率ＦＰＲを算出する手順と、
上記算出した誤検出率ＦＲＰ（ｙ）が、予め定められた目標値εに対して、ＦＰＲ（ｙ）≦εの式を満たす最小のｙを上記閾値ｙ＊として算出する手順と
を含むことを特徴とする巨大フロー特定方法。
【請求項３】
請求項１もしくは請求項２のいずれかに記載の巨大フロー特定方法であって、
上記フロー長分布推定処理手順による上記元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を算出する手順は、
上記元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を下記数５の式のｐ（ｘ）として近似する手順と、
【数５】
2009267892.tif 000043
ｙ個のパケットがサンプルされたフロー数ｍｙを計数し、ベクトルｍを下記数６の式で求める手順と、
【数６】
2009267892.tif 000044
上記元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］が上記数５の式におけるｐ（ｘ）で与えられるときに、ｙ個のパケットがサンプルされたフロー数がｍｙとなる確率である尤度関数Ｌ（ｍ｜β）を、確率ｇ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ｜Ｙｊ≧１］を用いて、下記数７の式により算出する手順と、
【数７】
2009267892.tif 000045
上記確率ｇ（ｙ）を、確率ｓ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ］を用いて下記数８の式により算出する手順と、
【数８】
2009267892.tif 000046
上記確率ｓ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ］を、下記数９の式で算出されるｑ（ｙ｜ｘ）を用いて下記数１０の式により算出する手順と、
【数９】
2009267892.tif 000047
【数１０】
2009267892.tif 000048
上記数７の式で算出した尤度関数Ｌ（ｍ｜β）の値を最大にするβの値を求める手順と、
該求めた値を上記数５の式におけるβに代入することにより元のフロー長分布Ｐ［Ｘｊ＝ｘ］≒ｐ（ｘ）を算出する手順と
を含むことを特徴とする巨大フロー特定方法。
【請求項４】
請求項２に記載の巨大フロー特定方法であって、
上記サンプル前のパケット数Ｘｊがｘ＊個以上であるフローｊを巨大フローとして見逃してしまう非検出率ＦＮＲを、下記の数１１の式により算出する手順と、
【数１１】
2009267892.tif 000049
上記サンプルして計数したパケット数Ｙｊがｘ＊÷ｆ以上となるフローｊのみを用いて上記元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を算出し、該算出した元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を用いて上記数１１の式により上記非検出率ＦＮＲ（ｙ）を算出する手順と
を含むことを特徴とする巨大フロー特定方法。
【請求項５】
請求項４に記載の巨大フロー特定方法であって、
上記パケット数がｘ＊÷ｆ以上となるフローｊのみを用いて元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を算出する手順として、
上記元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を下記数１２の式のｐ（ｘ）で近似する手順と、
【数１２】
2009267892.tif 000050
ｙ（≧ｙ^）個のパケットがサンプルされたフロー数ｍｙ（ｙ＝ｙ^〜ｙｍａｘ、ｙ^は、ｆ×ｘ＊の整数部分）を計数し、該計数したフロー数ｍｙを用いて、下記数１３の式により、
上記元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］が上記数１２の式におけるｐ（ｘ）で与えられるときに、ｙ個のパケットがサンプルされたフロー数がｍｙとなる確率である尤度関数Ｌ（ｍ｜β）を、確率ｇ＾（ｙ）＝Ｐｒ［Ｙｊ＝ｙ｜Ｙｊ≧ｙ＾］を用いて算出する手順と、
【数１３】
2009267892.tif 000051
上記確率ｇ＾（ｙ）を、下記数１５および下記数１６の式で求められる確率ｓ（ｙ）を用いて下記数１４の式により算出する手順と、
【数１４】
2009267892.tif 000052
【数１５】
2009267892.tif 000053
【数１６】
2009267892.tif 000054
上記数１３の式で算出する尤度関数Ｌ（ｍ｜β）を最大にするβの値を求める手順と、
該求めた値を上記数１２の式におけるβに代入することにより、上記パケット数がｘ＊÷ｆ以上となるフローｊのみを用いた元のフロー長分布Ｐ［Ｘｊ＝ｘ］≒ｐ（ｘ）を算出する手順と
を含むことを特徴とする巨大フロー特定方法。
【請求項６】
プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する方法であって、
プログラムされたコンピュータの処理手順として、
ｙ個以上のパケットがサンプルされたフローの集合を特定巨大フロー群として求める手順と、
上記特定巨大フロー群のフローの内、上記サンプル前の元のパケット数Ｘｊが予め定めた閾値ｘ＊以上となる真の巨大フローではないフローの、特定巨大フロー群全体に対する割合Ｒｐ（ｙ）が予め定められた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が、予め定めた基準値φ以上となるような最小のパケット数ｙを求める手順とを含み、
上記求めたｙを上記閾値ｙ＊として定めることを特徴とする巨大フロー特定方法。
【請求項７】
請求項６に記載の巨大フロー特定方法であって、
上記特定巨大フロー群のフロー数をＭ（ｙ）、
上記特定巨大フロー群のフローで上記真の巨大フローではないフロー数をＺ（ｙ）、
ｋ個のパケットがサンプルされたフロー数をＭｋ、
ｋ個のパケットがサンプルされたフローで上記真の巨大フローではないフロー数をＺｋの確率変数で表し、
ｋ番目の要素が上記フロー数Ｍｋで与えられるベクトルＭを下記数１７の式で定義し、
【数１７】
2009267892.tif 000055
サンプルしたフロー数の上記ベクトルＭがｍで与えられたという条件の下で、上記割合Ｒｐ（ｙ）が上記許容誤差ε以下になる条件付確率ｒ（ｙ）を、下記数１８，１９，２０，２１，２２の式を用いて算出し、
【数１８】
2009267892.tif 000056
【数１９】
2009267892.tif 000057
【数２０】
2009267892.tif 000058
【数２１】
2009267892.tif 000059
【数２２】
2009267892.tif 000060
上記条件付確率ｒ（ｙ）が上記基準値φに対してｒ（ｙ）＞φとなる最小のｙを算出し、
算出したｙを上記閾値ｙ＊として定めることを特徴とする巨大フロー特定方法。
【請求項８】
コンピュータに、請求項１から請求項７のいずれかに記載の巨大フロー特定方法における各手順を実行させるためのプログラム。
【請求項９】
プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定するシステムであって、
プログラムされたコンピュータの処理を実行する手段として、
請求項１から請求項７のいずれかに記載の巨大フロー特定方法における各手順の処理を実行する手段を具備したことを特徴とする巨大フロー特定システム。
【請求項１０】
プログラムされたコンピュータ処理により、ネットワークに流れる巨大フローを制御して各フローの通信品質を維持するシステムであって、
プログラムされたコンピュータの処理を実行する手段として、
請求項１から請求項７のいずれかに記載の巨大フロー特定方法における各手順の処理を実行する手段と、
該手段で特定した巨大フローに対して予め定められた制御手順を実行する手段と
を具備したことを特徴とするフロー制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおいて、帯域を占有するトラヒックを発生する巨大フローの監視技術に係り、特に、巨大フローの特定を高精度かつ効率的に行い、各フローの通信品質の維持性能を向上させるのに好適な技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている。その一方で、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）アプリケーションの出現に伴うトラヒックパターンの急激な変動に代表されるように、各フローのトラヒック特性はますます多種多様となり、それに伴い、各種フローの品質要求も多様化している。
【０００３】
例えば、Ｐ２Ｐトラヒックのような長時間に渡って大きな帯域を占有するフロー（巨大フロー）を適切にコントロールして、レスポンス時間に敏感なｗｅｂのようなファイルサイズの小さいフローの品質を確保することが要求される場合が想定される。その一方で、通信設備に対するコストを抑える必要がある。
【０００４】
従って、与えられた通信帯域を有効利用して各フローの所望の通信品質を維持できるように各フローの使用帯域を適切に制御することが重要となっている。そのためには、上述の巨大フローを特定することが必要となる。
【０００５】
従来、全てのフローの状態を監視して制御する技術がある。例えば非特許文献１に記載のＷＦＱ（Ｗｅｉｇｈｔｅｄ  Ｆａｉｒ  Ｑｕｅｕｅｉｎｇ）や非特許文献２に記載のＣＳＦＱ（Ｃｏｒｅ−Ｓｔａｔｅｌｅｓｓ−Ｆａｉｒ−Ｑｕｅｕｅｉｎｇ）等である。
【０００６】
しかしながら、このような技術では、フロー毎の状態を全てのノードあるいは網の境界ノードで管理する必要があり、今後、回線速度の高速化に伴いフロー数も増大していく状況を考えると、そういった場合に対処できない、という問題点があった。
【０００７】
このような問題を回避する一技術として、パケットのポート番号をみて、ポート番号からＰ２Ｐ型のファイル共有アプリケーションに関するフローであることを特定できる場合には、そのようなフローは大きなファイルを転送して長時間帯域を占有する可能性が高いと判断できるので、そのようなフローのみを制御対象とすることも考えられる。
【０００８】
しかし、近年のＰ２Ｐアプリケーションは、ポート番号では識別できないトラヒックが大半を占めるため、この技術では対応できなくなってきている。また、Ｐ２Ｐ以外にもＤＤｏＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）のように高レートでトラヒックを出しつづける異常トラヒックも増加しているため、アプリケーションに依存しない技術が必要となってきている。
【０００９】
また、回線の高速化に伴いスケーラブルな測定技術としてパケットサンプリング技術が注目されている。当該技術について図６を用いて説明する。
【００１０】
図６に示すように、複数のフローからのパケットがノード６１，６２に到着する場合を考える。尚、フローの定義は、例として、ここでは、同一の送信元ＩＰアドレスと着信先ＩＰアドレスおよび送信元ポート番号、着信先ポート番号、プロトコル番号を持つパケット群を同一フローと定義する。
【００１１】
図６の各パケットの網掛けの種類は、フロー別に振り分けされているものとする。ここで、サンプルしない場合は、ノード６１に到着する管理対象のフロー数は５本である。これに対して、Ｎ（＝３）個に１個のパケットをサンプルし、サンプルされたパケットの属するフローのみを管理対象とした場合には、ノード６２に到着する管理対象のフロー数を２本に削減できている。
【００１２】
このようなサンプリングにより、管理フロー数を削減できる。また、Ｎ個に１個のパケットのみを処理対象とするためパケット処理負荷も削減できる。しかし、この技術では、パケットサンプリングしているために、必要な情報が失われている可能性があり、元のフロー統計を推定する必要がある。
【００１３】
例えば、非特許文献３では、パケットサンプリングを用いて巨大フローを特定する技術を提案しており、この技術では、予め定めた閾値以上のパケット数を送出しているフローを、サンプル情報のみで特定することを可能にするが、その閾値を決定する際に、元のフロー長分布の情報が必要となる。
【００１４】
具体的には、あるフローｊのサンプル前のパケット数Ｘｊがｘ個である確率Ｐｒ［Ｘｊ＝ｘ］が予め分かっているという条件が必要である。しかしながら、元のフロー長分布は、サンプルパケット情報のみからは分からないという問題点がある。
【００１５】
一方、非特許文献４，５では、サンプルされたＳＹＮパケット（ＴＣＰフラグの一つで、通信開始を意味する）の数を用いて、サンプルされていない全体のフロー発生数やフロー長の平均や分布を推定する技術を提案している。
【００１６】
この技術により元のフロー長分布を推定することが可能であるが、ＴＣＰのみを対象としているため、ＴＣＰ以外の巨大フロー、特に異常トラヒックやＵＤＰ  ｆｌｏｏｄｉｎｇ等には適用できない。
【００１７】
さらに、非特許文献４，５の技術は、巨大フロー特定を目的としたフロー長分布推定ではないため、推定されたフロー長分布を用いて、巨大フローを、予め定めた検出目標値を達成するように特定することを可能とするものではなかった。
【００１８】
また、非特許文献６では、単純なパケットサンプリングではなくｓａｍｐｌｅ＆ｈｏｌｄと呼ばれるサンプリング技術を用いて、フローサイズが大きいフローの統計を精度よく得る技術を提案している。
【００１９】
しかしながら、この技術では、Ｎ個に１個のパケットサンプリングとは別に、各到着パケットに対して、既にパケットがサンプルされているフローに属するか否かをチェックする必要があり、パケット処理負荷が大きくなってしまうという問題点がある。
【００２０】
【非特許文献１】Ａ．Ｋ．Ｐａｒｅｋｈ  ａｎｄ  Ｒ．Ｇ．Ｇａｌｌａｇｅｒ，“Ａ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｓｈａｒｉｎｇ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｆｌｏｗ  Ｃｏｎｔｒｏｌ  ｉｎ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｎｅｔｗｏｒｋｓ：  Ｔｈｅ  Ｓｉｎｇｌｅ−Ｎｏｄｅ  Ｃａｓｅ，”  ＩＥＥＥ／ＡＣＭ  Ｔｒａｎｓ．  ｏｎ  Ｎｅｔｗｏｒｋｉｎｇ，  ｖｏｌ．１，  ｎｏ．３，  （Ｊｕｎｅ  １９９３）  ｐｐ．３４４−３５７．
【非特許文献２】Ｉ．Ｓｔｏｉｃａ，  Ｓ．Ｓｈｅｎｋｅｒ，  ａｎｄ  Ｈ．Ｚｈａｎｇ，  “Ｃｏｒｅ−ｓｔａｔｅｌｅｓｓ  ｆａｉｒ  ｑｕｅｕｅｉｎｇ：  ａｃｈｉｅｖｉｎｇ  ａｐｐｒｏｘｉｍａｔｅｌｙ  ｆａｉｒ  ｂａｎｄｗｉｄｔｈ  ａｌｌｏｃａｔｉｏｎｓ  ｉｎ  ｈｉｇｈ−ｓｐｅｅｄ  ｎｅｔｗｏｒｋｓ，”  ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  ＳＩＧＣＯＭＭ９８，  ｐｐ．１１８−１３０，  １９９８．
【非特許文献３】Ｔ．Ｍｏｒｉ，  Ｍ．Ｕｃｈｉｄａ，  Ｒ．Ｋａｗａｈａｒａ，  Ｊ．Ｐａｎ，  ａｎｄ  Ｓ．Ｇｏｔｏ，  “Ｉｄｅｎｔｉｆｙｉｎｇ  ｅｌｅｐｈａｎｔ  ｆｌｏｗｓ  ｔｈｒｏｕｇｈ  ｐｅｒｉｏｄｉｃａｌｌｙ  ｓａｍｐｌｅｄ  ｐａｃｋｅｔｓ，”  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｉｎｔｅｒｎｅｔ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｃｏｎｆｅｒｅｎｃｅ，  ２００４．
【非特許文献４】Ｎ．Ｄｕｆｆｉｅｌｄ，  Ｃ．Ｌｕｎｄ，  ａｎｄ  Ｍ．Ｔｈｏｒｕｐ，  “Ｐｒｏｐｅｒｔｉｅｓ  ａｎｄ  Ｐｒｅｄｉｃｔｉｏｎ  ｏｆ  Ｆｌｏｗ  Ｓｔａｔｉｓｔｉｃｓ  ｆｒｏｍ  Ｓａｍｐｌｅｄ  Ｐａｃｋｅｔ  Ｓｔｒｅａｍｓ，”  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｉｎｔｅｒｎｅｔ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｃｏｎｆｅｒｅｎｃｅ  ２００２，  Ｎｏｖ．  ２００２．
【非特許文献５】Ｎ．Ｄｕｆｆｉｅｌｄ，  Ｃ．Ｌｕｎｄ，  ａｎｄ  Ｍ．Ｔｈｏｒｕｐ，  “Ｅｓｔｉｍａｔｉｎｇ  Ｆｌｏｗ  Ｄｉｓｔｒｉｂｕｔｉｏｎｓ  ｆｒｏｍ  Ｓａｍｐｌｅｄ  Ｆｌｏｗ  Ｓｔａｔｉｓｔｉｃｓ，”'  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  ＳＩＧＣＯＭＭ，  ｐｐ．３２５−３３６，  Ａｕｇ．  ２００３．
【非特許文献６】Ｃ．Ｅｓｔａｎ  ａｎｄ  Ｇ．Vａｒｇｈｅｓｅ，  “Ｎｅｗ  Ｄｉｒｅｃｔｉｏｎｓ  ｉｎ  Ｔｒａｆｆｉｃ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ａｃｃｏｕｎｔｉｎｇ，”  ＡＣＭ  ＳＩＧＣＯＭＭ２００２，  Ａｕｇ．  ２００２．
【発明の開示】
【発明が解決しようとする課題】
【００２１】
解決しようとする問題点は、従来の技術では、図６で示したような単純なパケットサンプリングにより得られるサンプルパケット情報のみから元のフロー長分布を推定しつつ、巨大フローを特定するための閾値を算出し、誤検出率を予め定めた目標値以内で巨大フローを特定することができない点である。
【００２２】
本発明の目的は、これら従来技術の課題を解決し、全パケットをキャプチャすることなく、巨大フローを高精度に特定可能とし、巨大フローの特定を高精度かつ効率的に行うことを可能とすることである。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明では、プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する際、各フローのサンプルパケット数により元のフロー長分布を推定し、推定した元のフロー長分布を用いることにより、巨大フローを特定するための閾値を予め定められた精度を満たすように設定する。また、ｙ個以上のパケットがサンプルされたフローの集合を特定巨大フロー群として求め、この特定巨大フロー群のフローの内、サンプル前の元のパケット数Ｘｊが予め定めた閾値ｘ＊以上となる真の巨大フローではないフローの、特定巨大フロー群全体に対する割合Ｒｐ（ｙ）が予め定められた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が、予め定めた基準値φ以上となるような最小のパケット数ｙを求め、求めたｙを閾値ｙ＊として定める。
【発明の効果】
【００２４】
本発明によれば、全パケットをキャプチャすることなく、巨大フローを高精度に特定可能となり、巨大フローの特定を高精度かつ効率的に行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下、図を用いて本発明を実施するための最良の形態例を説明する。尚、本例は、ネットワークを流れるパケットをサンプリングしてキャプチャすることにより、巨大なフローを特定するものである。ネットワークのトラヒックを監視する際に、対象ネットワークの帯域を長期に占有する巨大なトラヒックフロー（巨大フロー）をコントロール（制御）して、よりサイズの小さいフローの品質を確保することが重要となる。従来のパケットサンプリングの技術を用いたのでは、サンプルパケットの情報からだけでは、精度良く巨大フローの特定ができない。本例では、各フローのサンプルパケット数により推定した元のフロー長分布を用いることにより、巨大フローを特定するための閾値を予め定めた精度を満たすように設定できる。
【００２６】
図１は、本発明に係る巨大フローの特定処理を実行するシステムの構成例を示すブロック図であり、図２は、図１における巨大フロー特定装置を設けたネットワーク構成例を示すブロック図、図３は、本発明に係る巨大フローの特定処理を実行する他のシステム構成例を示すブロック図である。
【００２７】
図１における巨大フロー特定装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、ＣＲＴやＬＣＤ等の表示装置、キーボードやマウス等の入力装置、ＨＨＤ等の外部記憶装置などを具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、プログラムされたコンピュータ処理を実行する。
【００２８】
特に、本例の巨大フロー特定装置１は、プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定するものであり、プログラムされたコンピュータの処理を実行する手段として、サンプリング部２、パケットヘッダ解析部３、フロー管理部４、フロー長分布推定部５、閾値算出部６、巨大フロー特定部７を具備している。
【００２９】
また、巨大フロー特定装置１は、プログラムされたコンピュータの処理を実行する手段として、図示していないフロー制御手段を具備し、本発明に係るフロー制御システムとして、巨大フロー特定部７で特定した巨大フローに対して予め定められた制御を実行する。
【００３０】
以下、このような構成の巨大フロー特定装置１による、本発明に係る巨大フロー特定処理動作例について説明する。
【００３１】
第１の例では、通信網のあるノードにおいてサンプリングレートｆでパケットサンプリングを行い、サンプルされたパケットの属するフローの情報を管理して、帯域を占有する巨大フローを特定・管理する際、各フローからサンプルされたパケット数を用いて元のフロー長分布を推定し、各フローのサンプルパケット数とその分布を用いてどのフローが巨大フローかを特定する。
【００３２】
このようにする理由は、後述するように、あるフローからサンプルされたパケット数が予め定めた閾値を超えたら巨大フローとして特定する際に、元のフロー長分布を用いることができれば、その閾値を予め定めた特定精度を満たすように設定することが可能となるからである。
【００３３】
第２の例では、第１の例において巨大フローを特定する際、フローｊからサンプルされたパケット数Ｙｊを測定し、Ｙｊが、以下で計算される閾値ｙ＊以上である場合にフローｊを巨大フローとして特定する。
【００３４】
閾値ｙ＊の計算手順は、まず、フローｊのサンプル前のパケット数をＸｊとし、Ｘｊがｘである確率分布をＰｒ［Ｘｊ＝ｘ］とする。このとき、Ｙｊ≧ｙであるという条件の下で、Ｘｊ≧ｘである確率Ｐｒ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］を以下の数１の式（１）で求める。
【００３５】
【数１】
2009267892.tif 000003
【００３６】
ここで、ｘｍａｘ＝ｍａｘ｛Ｘｊ｝であり、以下の数２の式（２）により推定する。
【００３７】
【数２】
2009267892.tif 000004
【００３８】
尚ｙｍａｘ＝ｍａｘ｛Ｙｊ｝である。また、Ｐ［Ｙｊ≧ｙ｜Ｘｊ＝ｋ］は以下の数３の式（３）で与えられる。
【００３９】
【数３】
2009267892.tif 000005
【００４０】
次に、Ｐ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］を用いて誤検出率Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅ  Ｒａｔｉｏ（ＦＰＲ）をＦＰＲ（ｙ）＝１−Ｐ［Ｘｊ≧ｘ＊｜Ｙｊ≧ｙ］により計算する。ここでｘ＊は予め定める閾値であり、サンプル前のパケット数がｘ＊以上であるフローを巨大フローと定義していることになる。
【００４１】
次に、誤検出率に対する目標値εを予め設定し、ＦＰＲ（ｙ）≦εを満たす最小のｙをｙ＊として設定する。
【００４２】
以下、上述の各数式の意味について説明する。
【００４３】
式（３）におけるｑ（ｙ｜ｘ）は、元のパケット数Ｘｊがｘであるフローｊからサンプルされるパケット数Ｙｊがｙである確率を表す（サンプリングレートｆでランダムにサンプルする場合はこの式が成り立つ）。
【００４４】
それを用いて式（３）のＰｒ［Ｙｊ≧ｙ｜Ｘｊ＝ｋ］（元のパケット数Ｘｊがｋ個であるフローからｙ個以上パケットがサンプルされる確率）を計算している。
【００４５】
式（２）のｘｍａｘ＝ｍａｘ｛Ｘｊ｝は、パケット数が最大であるフローが持つ元のパケット数を意味し、その値をｙｍａｘ＝ｍａｘ｛Ｙｊ｝（つまりサンプルパケット数の最大値）を１／ｆ倍して推定している。
【００４６】
式（１）は、ベイズの定理より成り立つ。この式（１）で得たＰｒ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］（フローｊからｙ個以上パケットがサンプルされたときに、元のパケット数がｘ個以上である確率）を計算できる。
【００４７】
従って、サンプル前のパケット数に対する閾値ｘ＊を予め定めれば（これが今検出したい元のパケット数に対する閾値を意味する）、サンプルパケット数Ｙｊがｙ個以上あるにもかかわらず元のパケット数Ｘｊがｘ個よりも小さくなってしまう確率（誤検出率）をＦＰＲ（ｙ）＝１−  Ｐ［Ｘｊ≧ｘ＊｜Ｙｊ≧ｙ］のように計算できる。
【００４８】
この誤検出率を予め定めた目標値ε（例えば０．０５）以下にするような最小のｙを求め、これを閾値ｙ＊として設定している。
【００４９】
以上述べたように、元のフロー長分布を用いることができれば、その閾値を予め定めた特定精度を満たすように設定することが可能となる。
【００５０】
次に、第３の例について説明する。この第３の例においては、第２の例における元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を、サンプルパケット情報から以下の手順で推定する。
【００５１】
まず、Ｐｒ［Ｘｊ＝ｘ］＝ｐ（ｘ）を以下の数４の式（４）で表される分布で近似する。
【００５２】
【数４】
2009267892.tif 000006
【００５３】
次に、ｙ個のパケットがサンプルされたフロー数を数え、それをｍｙとし、ベクトルｍを以下の数５の式（５）とする。
【００５４】
【数５】
2009267892.tif 000007
【００５５】
元の分布がｐ（ｘ）で与えられるときに、ｙ個のパケットがサンプルされたフロー数がｍｙとなる確率を尤度関数Ｌ（ｍ｜β）とし、以下の数６の式（６）で与える。
【００５６】
【数６】
2009267892.tif 000008
【００５７】
ここで、ｇ（ｙ）はｇ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ｜Ｙｊ≧１］であり、ｓ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ］を用いて以下の数７の式（７）で計算される。
【００５８】
【数７】
2009267892.tif 000009
【００５９】
このＬ（ｍ｜β）の値を最大にするβを求め、それをｐ（ｘ）のβに代入することにより元のフロー長分布Ｐ［Ｘｊ＝ｘ］＝ｐ（ｘ）を推定する。
【００６０】
上述の各数式の意味について説明する。式（４）は、元のフロー長分布を式（４）のような形状にあると仮定していることを意味する。これは、インターネットトラヒックでよく観測される分布の形状（パレート分布と呼ばれる）であり、分布の裾が長い（つまりパケット数ｘが大きいフローが発生する確率ｐ（ｘ）が少なからぬ確率で起こる）点を特徴とする。
【００６１】
この分布で用いるパラメータβがその分布の裾の長さ度合いを表すパラメータである。このβを式（５）〜（７）を基に、サンプルパケット情報から推定する。尚、式（４）のｘｍａｘは式（２）で与えられる。
【００６２】
式（５）は、サンプルパケット情報から形成できるベクトルであり、式（６）は、元の分布ｐ（ｘ）を式（４）の形で与えたときに、式（５）の観測値が起きる確率をあらわしており、これはβの関数となっている。尚、式（６）は式（７）で定義されるｇ（ｙ）を使って表現されている。
【００６３】
この式（６）を最大にするようなβを求めることにより、元の分布ｐ（ｘ）を推定している。これは、式（５）のように実際に観測された結果が起こる確率がもっとも高くなるように元の分布（のパラメータβ）はあるべきだという考え方、つまり最尤推定を行っている。
【００６４】
次に、第４の例について説明する。この第４の例においては、フローｊからのサンプルパケット数Ｙｊがある閾値ｙ個以上であるフローを巨大フローと特定する際、ｙ個以上のパケットがサンプルされたフローの集合を「特定された巨大フロー群」と定義し、またサンプル前の元のパケット数Ｘｊが予め定めた閾値ｘ＊以上であるフローを「真の巨大フロー」と定義し、特定された巨大フロー群全体のうち真の巨大フローではない割合をＲｐ（ｙ）とし、Ｒｐ（ｙ）が予め与えられた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が予め定めた基準値φ以上となるような最小のｙ＝ｙ＊を閾値に定める。
【００６５】
これは、第２、３の例による技術では、ある特定されたフローに着目してその誤検出率を目標値以下にしていたのに対して、ここでは特定されたフロー群全体に対して誤検出されている割合を目標値以下にする場合を扱っている。
【００６６】
これは、運用ポリシーによっては、特定されたフロー群の中で真の巨大フローではない割合自体を把握したい場合も考えられるため、そのようなケースに対応可能とするためである。例えば、特定フロー群をまとめて制御対象としたい場合に全体の中で誤検出されている割合を一定値以下に抑えたい場合に相当する。
【００６７】
次に、第５の例について説明する。この第５の例においては、第４の例での巨大フロー特定技術において、まず、ｙ個以上のパケットがサンプルされるフロー数をＭ（ｙ）、ｙ個以上パケットがサンプルされたフローの内、巨大フローではないフロー数をＺ（ｙ）、ｋ個のパケットがサンプルされたフロー数をＭｋ、ｋ個のパケットがサンプルされたフローの内、巨大フローではないフロー数をＺｋ、という確率変数で表す。
【００６８】
また、ｋ番目の要素がＭｋで与えられるベクトルＭを、下記の数８の式（８）と定義する。
【００６９】
【数８】
2009267892.tif 000010
【００７０】
ここで、実際にサンプルされたフロー数のベクトルがｍで与えられたという条件の下で、Ｒｐ（ｙ）がε以下になる条件付確率ｒ（ｙ）を、下記の数９の式（９）により計算し、ｒ（ｙ）＞φとなる最小のｙ＝ｙ＊を閾値と設定する。
【００７１】
【数９】
2009267892.tif 000011
【００７２】
ただし、上記式（９）におけるｍ（ｙ）は下記の数１０の式（１０）であり、上記式（９）で用いられる各記号は以下の数１１の式（１１）で与えられる。
【００７３】
【数１０】
2009267892.tif 000012
【００７４】
【数１１】
2009267892.tif 000013
【００７５】
以上の各数式の意味について説明する。
【００７６】
上記数８の式（８）は、サンプルフローを用いて定義されるベクトルを意味し、確率変数ベクトルである。
【００７７】
上記数９の式（９）は、上記式（８）で定義された確率変数ベクトルＭが実測値ｍ（これは式（１０）で定義されている）となったという条件の下で、真の巨大フローではない割合Ｒｐ（ｙ）が許容誤差ε以下にある確率を意味し、これをサンプルパケット数に対する閾値ｙの関数で表している。尚、式（９）は式（１１）で計算される。
【００７８】
式（１１）のｕ（ｋ）は、サンプルパケット数がｋのときに真の巨大フローではない確率を表す。そのｕ（ｋ）を用いて、サンプルパケット数がｋであるフロー数ｍｋ本のうち、ｉ本が真の巨大フローではない確率（＝ｐｋ（ｉ））を計算している。その畳み込み演算により、ｙ個以上パケットがサンプルされたフロー数Ｚｙ＋・・・＋Ｚｙｍａｘがｚとなる確率を式（１１）の最初の数式で計算している。
【００７９】
以上の手順で計算された式（９）のｒ（ｙ）が予め定めた目標値φより大きくなる最小のｙを求め、求めたｙを閾値ｙ＊として設定することにより、真の巨大フローではない割合を目標値以下に抑えることを可能としている。
【００８０】
次に、第６の例について説明する。この第６の例においては、上述の第２の例において、フローｊからサンプルされたパケット数Ｙｊを測定し、Ｙｊが、以下で計算される閾値ｙ＊以上である場合にフローｊを巨大フローとして特定する際、元のパケット数がｘ＊個以上である真の巨大フローを見逃してしまう非検出率Ｆａｌｓｅ  ｎｅｇａｔｉｖｅ  ｒａｔｉｏ（ＦＮＲ）を、下記数１２の式（１２）により算出する。
【００８１】
【数１２】
2009267892.tif 000014
【００８２】
このとき、サンプルパケット数がｘ＊÷ｆ以上となるフローの情報のみを用いて元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を推定し、それを用いてＦＮＲを推定する。
【００８３】
これは、これまでの技術とは異なり、本当は巨大フローなのに見逃してしまう確率に着目した場合を扱っている。
【００８４】
次に、第７の例について説明する。この第７の例においては、上述の第６の例において、元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を推定する際、上述の第３の例のようにｙ（≧１）個のパケットがサンプルされたフロー数ｍｙ（ｙ＝１〜ｙｍａｘ、ｙｍａｘ＝ｍａｘ｛Ｙｊ｝）を用いる代わりに、ｙ（≧ｙ^）個のパケットがサンプルされたフロー数ｍｙ（ｙ＝ｙ^〜ｙｍａｘ、ｙ^は、ｆ×ｘ＊の整数部分）を用いて、以下の数１３の式（１３）に示す尤度関数を構成する。
【００８５】
【数１３】
2009267892.tif 000015
【００８６】
ここで、数１３におけるｇ＾（ｙ）、ｓ（ｙ）、ｐ（ｘ）はそれぞれ下記数１４の式（１４）からなる。
【００８７】
【数１４】
2009267892.tif 000016
【００８８】
上記数１３の式（１３）に示す尤度関数を最大にするβを求め、それを上の数１４の式（１４）のｐ（ｘ）に代入したものを元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］＝ｐ（ｘ）とし、第６の例におけるＦＮＲの計算に用いる。
【００８９】
ここの手順は、第３の例とほぼ同様であるが、違いは、ｙ^個以上サンプルされたフローの情報しか使わない点である。こうすることにより、元のフロー長分布を推定する際に、分布の裾の方でフィットさせて見逃し率ＦＮＲを計算をしている。
【００９０】
図１に示す巨大フロー特定装置１においては、上述の第１の例で示した技術により、パケットサンプリングによりどのフローから何パケットサンプルされたかを管理し、サンプルパケット数が閾値を超えたら巨大フローと特定する機能、第２、４、５の例のいずれかに記載の技術により、元のフロー長分布を用いて巨大フロー検出閾値を算出する機能、第３の例に記載の技術により、元のフロー長分布を推定する機能、第６または７の例に記載の技術２より、巨大フロー非検出率を推定する機能を具備している。
【００９１】
この巨大フロー特定装置１は、図２に示すように、ＩＰネットワーク内の各ノード２１，２２間に挿入される形で構築される。
【００９２】
そして、巨大フロー特定装置１は、図１に示されている通り、前段ノード（２１）から到着したパケットはサンプリング部２に転送され、サンプリング部２ではカウンターＣをカウントアップし、Ｃの値が予め定めたサンプリング周期Ｎと等しいかチェックする。
【００９３】
もしＣ＝Ｎであれば、パケットはパケットヘッダ解析部３に転送され、Ｃ＝０にリセットし、同時に当該パケットは後段ノード（２２）へ転送される。
【００９４】
また、もしＣ＜Ｎであれば、単に後段ノード（２２）へのみ該パケットを転送する。あるいは、パケット到着毎に０〜１の範囲で乱数を発生させ、その結果が１／Ｎ以下であれば、該パケットをパケットヘッダ解析部に転送してから後段ノードにも該パケットを転送し、そうでなければ単に後段ノードへのみ該パケットを転送する、としてもよい。
【００９５】
パケットヘッダ解析部３では、（送信元ＩＰアドレス、着信先ＩＰアドレス、送信元ポート番号、着信先ポート番号、プロトコル番号）を読み出し、その情報をフロー管理部４に通知する。
【００９６】
フロー管理部４は、フロー毎に状態を管理するテーブルを予め用意しておく。このフロー管理テーブルでは、フロー毎に、フローｊからの到着パケット数Ｙｊを記憶する。
【００９７】
通知を受けた当該パケットが新規フローからのパケットであった場合、フロー管理テーブルにそのフローをエントリし、Ｙｊ←１とする。また、当該パケットが既にエントリされているフローｊからのパケットであった場合、Ｙｊ←Ｙｊ+１に更新する。
【００９８】
以上の手順を、測定を開始してから予め定めた時間周期Ｔが経過するまで行い、Ｔ経過時点において、ｙ個のパケットがサンプルされたフロー数を数え、それをｍｙとする。また、Ｙｊの最大値をｙｍａｘとする。そして、ｍｙおよびｙｍａｘをフロー長分布推定部５に通知する。
【００９９】
フロー長分布推定部５では、フロー管理部４から受け取ったｙｍａｘを用いてｘｍａｘを上述の式（２）により推定する。またｍｙの値を用いて、上述の式（５）のベクトルを構成し、上述の式（６）（と式（７））で定義される尤度関数Ｌ（ｍ｜β）を計算し、これを最大にするβを計算する。その結果を閾値算出部６に通知する。
【０１００】
閾値算出部６は、フロー長分布推定部５から受け取ったβを上記式（４）に代入して元のフロー長分布を構築し、それを上記式（１）のＰｒ［Ｘｊ＝ｘ］として用いることにより、ＦＰＲ（ｙ）＝１−  Ｐ［Ｘｊ≧ｘ＊｜Ｙｊ≧ｙ］によりＦＰＲを計算する。
【０１０１】
ここでｘ＊は予め定める閾値であり、サンプル前のパケット数がｘ＊以上であるフローを巨大フローと定義していることになる。
【０１０２】
次に、誤検出率に対する目標値εを予め設定し、ＦＰＲ（ｙ）≦εを満たす最小のｙを求め、求めたｙを閾値ｙ＊として設定する。この結果をフロー管理部４に通知する。
【０１０３】
フロー管理部４は、閾値ｙ＊を受信すると、サンプルパケット数Ｙｊがｙ＊を超えているフローを探し、それを巨大フローとして、巨大フロー特定部７に通知する。
【０１０４】
巨大フロー特定部７は、フロー管理部４から受信した巨大フローを管理し、その結果をオペレータに通知する。
【０１０５】
尚、上述の閾値算出部６のように閾値ｙ＊を決める代わりに、第４、５の例で説明した手順に従って、特定された巨大フロー群全体のうち真の巨大フローではない割合をＲｐ（ｙ）とし、Ｒｐ（ｙ）が予め与えられた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が予め定めた基準値φ以上となるような最小のｙ＝ｙ＊を閾値に定設定してもよい。
【０１０６】
また、上述のように、誤検出率を目標値以下となるように閾値ｙ＊を決めて巨大フローを特定した際には、そのときの非検出率を第６，７の例で説明した手順に従って計算する。
【０１０７】
また、上述の例では、ノード２１，２２間に挿入する形で巨大フロー特定装置１を設けた構成としているが、図３に示すように、巨大フロー特定装置１ａにおいて、ネットワーク３１の各ノード３０ａ〜３０ｇからサンプルパケット情報を収集し、ネットワーク３１全体に対して同様の管理を実施してもよい。
【０１０８】
次に、図４と図５を用いて、上述の巨大フロー特定装置１，１ａによる巨大フローの特定処理動作を説明する。図４は、図１における巨大フロー特定装置による本発明に係る巨大フロー特定処理動作例を示すフローチャートであり、図５は、図３における巨大フロー特定装置による本発明に係る巨大フロー特定処理動作例を示すフローチャートである。
【０１０９】
図４に示すように、図１における巨大フロー特定装置１は、プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する際、まず、サンプリング部２により、各フローのパケットをサンプリングレートｆでサンプルして当該フローｊのパケット数Ｙｊを計数して記憶装置に記憶する（ステップＳ４０１）。
【０１１０】
次に、フロー長分布推定部５により、このサンプリングして記憶装置に記憶したパケット数Ｙｊを用いて、当該フローのサンプル前のパケット数Ｘｊがｘ個である確率分布Ｐｒ［Ｘｊ＝ｘ］（元のフロー長分布）を算出する（ステップＳ４０２）。
【０１１１】
また、閾値算出部６により、フロー長分布推定部５で算出した元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］とサンプリング部２で記憶装置に記憶したパケット数Ｙｊとを用いて、当該フローｊが巨大フローであるか否かを特定するのに用いる閾値ｙ＊を算出する（ステップＳ４０３）。
【０１１２】
そして、巨大フロー特定部７により、閾値算出部６で算出した閾値ｙ＊とサンプリング部２で計数したパケット数Ｙｊを比較し、パケット数Ｙｊが閾値ｙ＊を超えると当該フローｊを巨大フローとして特定する（ステップＳ４０４）。
【０１１３】
尚、閾値算出部６は、フローｊのパケット数Ｙｊの最大値ｙｍａｘ＝ｍａｘ｛Ｙｊ｝と、該最大値ｙｍａｘを用いて下記数１５の式で算出されるサンプル前のパケット数Ｘｊの最大値ｘｍａｘ＝ｍａｘ｛Ｘｊ｝と、下記数１６，１７の式で算出される、Ｘｊ＝ｘであるという条件の下でＹｊ≧ｙである確率Ｐ［Ｙｊ≧ｙ｜Ｘｊ＝ｋ］とを用いて、Ｙｊ≧ｙであるという条件の下でＸｊ≧ｘである確率Ｐｒ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］を下記数１８の式により算出する手順を実行する。
【０１１４】
【数１５】
2009267892.tif 000017
【０１１５】
【数１６】
2009267892.tif 000018
【０１１６】
【数１７】
2009267892.tif 000019
【０１１７】
【数１８】
2009267892.tif 000020
【０１１８】
また、数１８の式で算出した確率Ｐ［Ｘｊ≧ｘ｜Ｙｊ≧ｙ］と、サンプル前のパケット数Ｘｊとの比較で当該フローｊを巨大フローであると判定するために予め定められる閾値ｘ＊とを用いて、ＦＰＲ（ｙ）＝１−Ｐ［Ｘｊ≧ｘ＊｜Ｙｊ≧ｙ］の式により誤検出率ＦＰＲを算出する。
【０１１９】
そして、算出した誤検出率ＦＲＰ（ｙ）が、予め定められた目標値εに対して、ＦＰＲ（ｙ）≦εの式を満たす最小のｙを閾値ｙ＊として算出する。
【０１２０】
また、フロー長分布推定部５は、元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を算出する手順として、先ず、元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を数１９の式のｐ（ｘ）として近似する。
【０１２１】
【数１９】
2009267892.tif 000021
【０１２２】
そして、ｙ個のパケットがサンプルされたフロー数ｍｙを計数し、ベクトルｍを下記数２０の式で求める。
【０１２３】
【数２０】
2009267892.tif 000022
【０１２４】
さらに、元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］が上記数１９の式におけるｐ（ｘ）で与えられるときに、ｙ個のパケットがサンプルされたフロー数がｍｙとなる確率である尤度関数Ｌ（ｍ｜β）を、確率ｇ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ｜Ｙｊ≧１］を用いて、下記数２１の式により算出する。
【０１２５】
【数２１】
2009267892.tif 000023
【０１２６】
また、確率ｇ（ｙ）を、確率ｓ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ］を用いて下記数２２の式により算出する。
【０１２７】
【数２２】
2009267892.tif 000024
【０１２８】
また、確率ｓ（ｙ）＝Ｐｒ［Ｙｊ＝ｙ］を、下記数２３の式で算出されるｑ（ｙ｜ｘ）を用いて下記数２４の式により算出する。
【０１２９】
【数２３】
2009267892.tif 000025
【０１３０】
【数２４】
2009267892.tif 000026
【０１３１】
そして、上記数２１の式で算出した尤度関数Ｌ（ｍ｜β）の値を最大にするβの値を求め、求めた値を上記数１９の式におけるβに代入することにより元のフロー長分布Ｐ［Ｘｊ＝ｘ］≒ｐ（ｘ）を算出する。
【０１３２】
また、図１の巨大フロー特定装置１は、サンプル前のパケット数Ｘｊがｘ＊個以上であるフローｊを巨大フローとして見逃してしまう非検出率ＦＮＲを、下記の数２５の式により算出する。
【０１３３】
【数２５】
2009267892.tif 000027
【０１３４】
サンプルして計数したパケット数Ｙｊがｘ＊÷ｆ以上となるフローｊのみを用いて、元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を算出し、算出した元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を用いて上記数２５の式により上記非検出率ＦＮＲ（ｙ）を算出する。
【０１３５】
また、図１の巨大フロー特定装置１は、パケット数がｘ＊÷ｆ以上となるフローｊのみを用いて元のフロー長分布Ｐｒ［Ｘｊ＝ｋ］を算出する際、まず、この元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］を下記数２６の式のｐ（ｘ）で近似する。
【０１３６】
【数２６】
2009267892.tif 000028
【０１３７】
次に、ｙ（≧ｙ^）個のパケットがサンプルされたフロー数ｍｙ（ｙ＝ｙ^〜ｙｍａｘ、ｙ^は、ｆ×ｘ＊の整数部分）を計数し、計数したフロー数ｍｙを用いて、下記数２７の式により、元のフロー長分布Ｐｒ［Ｘｊ＝ｘ］が上記数２６の式におけるｐ（ｘ）で与えられるときに、ｙ個のパケットがサンプルされたフロー数がｍｙとなる確率である尤度関数Ｌ（ｍ｜β）を、確率ｇ＾（ｙ）＝Ｐｒ［Ｙｊ＝ｙ｜Ｙｊ≧ｙ＾］を用いて算出する。
【０１３８】
【数２７】
2009267892.tif 000029
【０１３９】
そして、確率ｇ＾（ｙ）を、下記数２９および下記数３０の式で求められる確率ｓ（ｙ）を用いて下記数２８の式により算出する。
【０１４０】
【数２８】
2009267892.tif 000030
【０１４１】
【数２９】
2009267892.tif 000031
【０１４２】
【数３０】
2009267892.tif 000032
【０１４３】
そして、数２７の式で算出する尤度関数Ｌ（ｍ｜β）を最大にするβの値を求め、求めた値を上記数２６の式におけるβに代入することにより、パケット数がｘ＊÷ｆ以上となるフローｊのみを用いた元のフロー長分布Ｐ［Ｘｊ＝ｘ］≒ｐ（ｘ）を算出する。
【０１４４】
また、図３における巨大フロー特定装置１ａは、図５に示すように、プログラムされたコンピュータ処理により、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する際、ｙ個以上のパケットがサンプルされたフローの集合を特定巨大フロー群として求める（ステップＳ５０１）。
【０１４５】
そして、特定巨大フロー群のフローの内、サンプル前の元のパケット数Ｘｊが予め定めた閾値ｘ＊以上となる真の巨大フローではないフローの、特定巨大フロー群全体に対する割合Ｒｐ（ｙ）が予め定められた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が、予め定めた基準値φ以上となるような最小のパケット数ｙを求め（ステップＳ５０２）、求めたｙを閾値ｙ＊として定める（ステップＳ５０３）。
【０１４６】
この際、巨大フロー特定装置１ａは、特定巨大フロー群のフロー数をＭ（ｙ）、特定巨大フロー群のフローであるが真の巨大フローではないフロー数をＺ（ｙ）、ｋ個のパケットがサンプルされたフロー数をＭｋ、ｋ個のパケットがサンプルされたフローであるが真の巨大フローではないフロー数をＺｋの確率変数で表し、ｋ番目の要素がフロー数Ｍｋで与えられるベクトルＭを数３１の式で定義する。
【０１４７】
【数３１】
2009267892.tif 000033
【０１４８】
そして、サンプルしたフロー数のベクトルＭがｍで与えられたという条件の下で、割合Ｒｐ（ｙ）が許容誤差ε以下になる条件付確率ｒ（ｙ）を、下記数３２〜３６の式を用いて算出する。
【０１４９】
【数３２】
2009267892.tif 000034
【０１５０】
【数３３】
2009267892.tif 000035
【０１５１】
【数３４】
2009267892.tif 000036
【０１５２】
【数３５】
2009267892.tif 000037
【０１５３】
【数３６】
2009267892.tif 000038
【０１５４】
そして、条件付確率ｒ（ｙ）が基準値φに対してｒ（ｙ）＞φとなる最小のｙを算出し、算出したｙを閾値ｙ＊として定める。
【０１５５】
以上、図１〜図５を用いて説明したように、本例では、ネットワークに流れるフローから、当該フローｊのパケット数Ｙｊが予め定められた閾値ｙ＊を超える巨大フローを特定する際、各フローのサンプルパケット数により元のフロー長分布を推定し、推定した元のフロー長分布を用いることにより、巨大フローを特定するための閾値を予め定められた精度を満たすように設定する。また、ｙ個以上のパケットがサンプルされたフローの集合を特定巨大フロー群として求め、この特定巨大フロー群のフローの内、サンプル前の元のパケット数Ｘｊが予め定めた閾値ｘ＊以上となる真の巨大フローではないフローの、特定巨大フロー群全体に対する割合Ｒｐ（ｙ）が予め定められた許容誤差ε以内に収まる確率ｒ（ｙ）＝Ｐ［Ｒｐ（ｙ）≦ε］が、予め定めた基準値φ以上となるような最小のパケット数ｙを求め、求めたｙを閾値ｙ＊として定める。
【０１５６】
このことにより、本例では、従来技術として図６で示したような単純なパケットサンプリングにより得られるサンプルパケット情報のみから元のフロー長分布を推定しつつ、巨大フローを特定するための閾値を算出し、誤検出率を予め定めた目標値以内で巨大フローを特定することができ、全パケットをキャプチャすることなく、巨大フローを高精度に特定可能となり、巨大フローの特定を高精度かつ効率的に行うことができる。
【０１５７】
尚、本発明は、図１〜図５を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図２に示す例では、巨大フロー特定装置１を、ＩＰネットワーク内の各ノード２１，２２間に挿入される形で構築しているが、ノード２１，２２に外付けし、そのノードへパケットをミラーリングする形で構築することでもよい。
【０１５８】
また、本例のコンピュータ装置の構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【０１５９】
【図１】本発明に係る巨大フローの特定処理を実行するシステムの構成例を示すブロック図である。
【図２】図１における巨大フロー特定装置を設けたネットワーク構成例を示すブロック図である。
【図３】本発明に係る巨大フローの特定処理を実行する他のシステム構成例を示すブロック図である。
【図４】図１における巨大フロー特定装置による本発明に係る巨大フロー特定処理動作例を示すフローチャートである。
【図５】図３における巨大フロー特定装置による本発明に係る巨大フロー特定処理動作例を示すフローチャートである。
【図６】従来技術によるパケットサンプリング動作例を示す説明図である。
【符号の説明】
【０１６０】
１，１ａ：巨大フロー特定装置、２：サンプリング部、３：パケットヘッダ解析部、４：フロー管理部、５：フロー長分布推定部、６：閾値算出部、７：巨大フロー特定部、２１，２２，３０ａ〜３０ｇ：ノード、３１：ネットワーク、６１，６２：ノード。
【図１】
2009267892.tif 000061
【図２】
2009267892.tif 000062
【図３】
2009267892.tif 000063
【図４】
2009267892.tif 000064
【図５】
2009267892.tif 000065
【図６】
2009267892.tif 000066