(57)【要約】【課題】フロー計測から得られたデータを用いて、単位時間に生成されるフロー数が閾値を超える大量フロー生成ホストを特定する方法において、大量フロー生成ホストを誤って見逃す確率を最小化するようにメモリを最適配分する。【解決手段】フローサンプリングによって得られた統計データのみを用いて、単位時間当たりに生成するフロー数が閾値以上となるホストを特定する大量フロー生成ホスト特定法における最適メモリ割当て方法であって、大量フロー生成ホストを誤って見逃す確率を最小化するように、実装されているメモリ量を、新規フローの判定に用いるBloom filterと、サンプルされたホスト毎にサンプルフロー数を記億するホストテーブルの各々に割り当てる。実装されているメモリ量Ｂと、特定判断閾値Ｙとが与えられたときに、Bloom filterとホストテーブルの全てのパラメータを導出する。【選択図】図１
2008022113.tif 000002
【特許請求の範囲】
【請求項１】
フローサンプリングによって得られた統計データのみを用いて、単位時間あたりに生成するフロー数が閾値以上となるホストを特定する大量フロー生成ホスト特定法における最適メモリ割当て方法であって、
大量フロー生成ホストを誤って見逃す確率を最小化するように、実装されているメモリ量を、新規フローの判定に用いるBloom filterと、サンプルされたホスト毎にサンプルフロー数を記億するホストテーブルの各々に割り当てることを特徴とする最適メモリ割当て方法。
【請求項２】
実装されているメモリ量Ｂと、特定判断閾値Ｙとが与えられたときに、Bloom filterとホストテーブルの全てのパラメータを導出することを特徴とする請求項１に記載の最適メモリ割当て方法。
【請求項３】
任意の生成フロー数ｍ０を有する大量フロー生成ホストが、ホストテーブルにエントリされたという条件のもとで特定されない確率の上限ＨＣ（ｍ０）と、このホストがホストテーブルにエントリされない確率の上限Ｒ（ｍ０）とを導出し、ＨＣ（ｍ０）｛１−Ｒ（ｍ０）｝＋Ｒ（ｍ０）を最小化する特定判断閾値Ｙを最適値として導出することを特徴とする請求項２に記載の最適メモリ割当て方法。
【請求項４】
特定判断閾値Ｙを設定する際に用いる大量フロー生成ホストの生成フロー数に関する代表値ｍ０を、全ての大量フロー生成ホストの生成フロー数の中央値とすることを特徴とする請求項３に記載の最適メモリ割当て方法。
【請求項５】
パラメータ算出に必要となる全フロー数と、大量フロー生成ホストの生成フロー数の中央値とを、前測定期間で得られた情報を用いて推定することを特徴とする請求項１ないしに請求項４のいずれか１項に記載の最適メモリ割当て方法。
【請求項６】
大量フロー生成ホストの生成フロー数の中央値の推定において、前測定期間における特定ホストの誤差の影響を除去するため、中央値に見逃し大量フロー生成ホスト数の推定値を加え、さらに誤って特定した非大量フロー生成ホスト数の推定値を引くことを特徴とする請求項４に記載の最適メモリ割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適メモリ割当て方法に係り、特に、フロー計測から得られたデータを用いて、単位時間に生成されるフロー数が閾値を超える大量フロー生成ホストを特定する際の最適メモリ割当て方法に関する。
【背景技術】
【０００２】
近年、ワーム、ウィルス、ＤＤｏＳ（Distributed Denial of Service）等が引き起こす異常トラヒックが、ネットワークやサーバに深刻な被害をもたらすことが問題となっている。
ＤＤｏＳの踏み台にされたホストや、ワームやウィルスに感染したホストは、個々のフローサイズは小さいものの短時間に大量のフローを生成するという特徴がある。そのため、短時間に大量のフローを生成するホストを早急に特定し、特定したホストに対して注意を促し、ネットワークから切り離すといった対処をとることが重要となる。
一方、フローサイズやフロー時間といったフローの各種統計値を収集するための技術として、パケット流からパケットを一定周期もしくはランダムに抜き出すパケットサンプリングが注日されている。
リンクの回線容量が２．５Ｇｂｐｓや１０Ｇｂｐｓと高速化するにつれ、全てのフロー状態を管理することが困難になるため、パケットサンプリングにより一部のフロー状態のみを管理し、各種フロー統計値を得ることは実用上、非常に有用である。
そこで、パケットサンプリングによって得られた情報から、測定期間内に送出されたパケット数が闘値以上となる高レートフローを特定する方法が検討されている。
しかし、大量フロー生成ホストが生成する個々のフローのサイズは小さいため、高レートフローの特定方法ではこのようなホストを効果的に特定することができない。
【０００３】
大量フロー生成ホストを特定するには、パケット単位ではなく、フローを単位にサンプリングを行い、ホスト毎に生成フロー数を集計することが有効である。
このような観点から、Ｙ本以上のフローがサンプルされたホストを大量フロー生成ホストとして特定する方法が検討されている。
大量フロー生成ホストの特定を行う際には、大量フローと定義するフロー数の閾値ｍ＊とその特定確率Ｈ＊を設計できることが実用上、重要である。さらに、フロー数ｍがｍ＜ｍ＊のフローが誤って特定される確率（ＦＰＲ：False Positive Ratio）と、ｍ≧ｍ＊のフローが誤って特定されない確率（ＦＮＲ：False Negative Ratio）を明確にし、特定精度を明らかにすることが重要である。
そのためには、ｍ＊とＨ＊を与えたときの任意のｍに対する特定確率Ｈ（特定曲線）を明らかにする必要がある。
【０００４】
フローを、発着ＩＰアドレス、発着ポート番号が共通のパケットの集合と定義する。そして、長さがφ（ｓ）の任意の測定期間Φを定め、測定期間Φ内に着目リンクに到着した総フロー数をＭとする。
そして、各ホストに対して測定期間Φ内に着目リンクに到着したフロー数をｍとするとき、任意に定めた閾値ｍ＊に対して、ｍ≧ｍ＊のホストを大量フロー生成ホストと定義し、着目リンクにおいて、大量フロー生成ホストを測定期間Φ内で特定することを考える。
今、測定期間Φ内に着目リンクを流れたフロー数がｍのホストに着目する。
測定期間Φ内で着目ホストのｍ本のフローからｄ本のフローがサンプルされる確率ｆｄは、フローサンプルレートをｒを用いて、下記（１）式で表される。
［数１］
ｆｄ＝ｍＣｄｒｄ（ｌ−ｒ）ｍ−ｄ    ・・・・・・・・・・・・・    （１）
よって、サンプルフロー数がＹ以上のホストを特定するとき、このホストが特定される確率Ｈは、下記（２）式で得られる。
【０００５】
【数２】
2008022113.tif 000003
【０００６】
また、式（２）にｍ＝ｍ＊を代入することによって得られる、下記（３）式を数値的に解くことによって、ｍ＊とＨ＊が与えられたときに、Ｙかｒの任意の一方を定めたときに対応するもう一方のパラメータを設定することができる。                                
【０００７】
【数３】
2008022113.tif 000004
【０００８】
着目リンクに到着した各パケットに対して、発着ＩＰアドレスと発着ポート番号の計９６ビットをキーにして、予め用意したハッシュ関数を通して得られるｓビットの値をｖとするとき、ｖ＜ｖ＊であるときにのみ新規フロー判定装置に入力する。ただし、ｖ＊はフローサンプリングのための閾値であり、ｒをフローサンプリング確率とするとｒ＝ｖ＊／２ｓとなる。同一フローに属するフローは同一のキーを持つため、フローサイズとは無関係に全てのフローが確率ｒでサンプルされることになる。
ｖ＜ｖ＊であった場合、次に到着パケットが属するフローを既にカウントしたかどうかを判定する。
最も直感的な方法は、サンプルした全てのフローをフローテーブルにて管理し、フローテーブルに該当フローのエントリが存在するか否かを判定する方法であるが、最大で全エントリをチェックする必要があるため処理時間が大きくなる。
【０００９】
そこで、Bloom filterを用いて判定する方法が有効である。Bloom filterはある候補に対してある集合のメンバであるか否かを判定する方法であり、異なるｋ個のハッシュ関数（各々が入カキーに対してｂビットの値を返す）と２ｂ個の２値変数（初期状態では全てゼロにリセットされる）が用意される。
この場合、パケットの９６ビットのキーをｋ個のハッツシュ関数を通して得られるｋ個のアドレスに該当する２値変数の値を調べ、１つ以上がゼロである場合に該当パケットが属するフローを新規フローと判定する。そしてｋ個の該当する２値変数を全て１にセットする。
Bloom filterを用いた場合、既にカウントしたフローを誤って新規フローと見なす可能性はゼロであるが、ハッシュ値の衝突によって新規フローを誤って見逃す可能性がある。
測定期間Φ内に着目リンクを流れた総フローＭに対して、測定期間Φ内でサンプルされたフロー数の期待値ＤはＤ＝ｒＭとなる。ｋの最適値はＤを用いて、下記（４）式で表される。
【００１０】
【数４】
2008022113.tif 000005
【００１１】
ｎ本の異なるフローに対してBloom filterの２ｂ（bits）のbitmapを更新したとき、bitmap中のあるビットが１である確率は｛１−（１−ｋ／２ｂ）ｎ｝となる。
このとき、新規フローを誤って見逃す確率をηｎとすると、確率ηｎは、下記（５）式で表される。
［数５］
ηｎ＝｛１−（１−ｋ／２ｂ）ｎ｝ｋ  ・・・・・・・・・・・・・    （５）
よって、新規フローを見逃す確率の平均値ηは（４）式を考慮して、下記（６）式により導出できる。
【００１２】
【数６】
2008022113.tif 000006
【００１３】
（６）式より、ｒとＭが与えられたときに、新規フローを見逃す確率の平均値η≦δＢＦ（任意に与えた値）を満足するｂの最小値を求めることができ、さらに、前述の（４）式よりｋの値を設定できる。
ホストテーブルには、発ＩＰアドレスとサンプルフロー数ｃｊが収容される。新規フローと判定された場合には、該当パケットの発ＩＰアドレスが既にホストテーブル内にエントリされているか否か調べ（例えば、発ＩＰアドレスをキーにしてハッシュ値のアドレスを調べる）、既にエントリが存在する場合にはサンプルフロー数を１だけ増加させる。
この結果、サンプルフロー数が特定判断閾値Ｙに達した場合には、そのホストを大量フロー生成ホストとして特定し、大量フロー生成ホストリストに書き出す。
一方、発ＩＰアドレスがホストテーブル内にエントリされていない場合には、新規にエントリを生成する。
ホストテーブルのエントリ更新処理を実現する際には、効率的に各エントリが収容されるアドレスを解決することが重要であるが、ここでは一般的に広く用いられるハッシュ関数を用いた方法を想定する。
ハッシュ値の衝突に対しては、ポインタを用いたリンク構造による解決方法が高い性能を示し、広く用いられていることから、ここでもリンク構造による形態を想定する。
【００１４】
ホストテーブルは、ポインタ収容領域（以下、ＰＳＡ（pointer stored area）と称する。）とホストエントリ収容領域（以下、ＥＳＡ（entry stored area）と称する。）とから構成される。
ＥＳＡはエントリが実際に収容される領域であり、ホストのＩＰアドレス、サンプルフロー数ｃｊ、次エントリへのポインタが収容される。ＰＳＡには２β個のハッシュ値の各々に対応するＥＳＡ内の最初のエントリ収容先を示すポインタが収容される。
事前に用意されたβビットのハッシュ空間をもつハッシュ関数ｈを用いて得られるハッシュ値ｈ（ｊ）に対応するＰＳＡの値を調べ、ヌル値である場合にはＥＳＡの空き位置にエントリを作成し、サンプルフロー数ｃｊを１に初期化する。
一方、ＰＳＡの値がヌル値でない場合には、ＥＳＡの該当エントリのリンクを順に調査して該当ホストのエントリが存在するか調査し、存在した場合にはそのエントリの、サンプルフロー数ｃｊを１だけ増加させる。存在しない場合にはやはり新規にエントリを作成する。
【００１５】
一つの到着パケットに対して大量フロー生成ホスト特定方法が必要とする処理時間について考察する。例えば、ＯＣ１９２のリンクにおける最小パケット（４０バイト）のパケット時間は３２ｎｓと短いことから、１パケット時間で終了すべき処理量に対する制約が大きく、所要処理時間の上限を評価することが重要となる。
フローサンプリング、新規フロー判定、ホストテーブルの更新、三つの全ての処理においてハッシュ値を求める必要があるが、ここでは、Universalハッシュ関数を用いることを想定する。
本ハッシュ関数は、理想に近い（ランダム性が高い）、ハッシュ値を出力することと、ハードウェア実装に適しているという優れた特徴を有する。
ハッシュ値の算出はハードウェア実装による並列処理で行われるため、処理時間には含めない。また、ＣＰＵにおける処理時間もメモリアクセス時間と比較して小さいことから、ここでは最大処理時間を評価する尺度として最大メモリアクセス数を用いる。
【００１６】
（i）フローサンプリング、（ii）新規フロー判定、（iii）ホストテーブル更新と大量フロー生成ホストの特定の、各々を開始するのに必要となる情報（到着パケットの発ＩＰアドレス、もしくは属するフローのキー）はパケットが到者した瞬間に得られるため、各々の処理は並行して開始することが可能である。
（ii）は（i）の結果、該当フローがサンプルされた場合にのみ必要となり、Bloom filterのbitmap更新処理は（i）の完了を待つ必要があるが、ｋ個のハッシュ値の算出は（i）と並行して実施可能であり、また（i）はメモリアクセスを伴わず短時間で終了するため、（i）と（ii）は並列化できる。
また（iii）のホストテーブルの更新処理は、（ii）の結果、新規フローと判定された場合にのみ必要となるが、該当エントリのアドレス解決（もしくは新規エントリ作成の必要性判定）は（ii）と並行して実施可能であり、また（ii）で要するメモリアクセス数が１であるのに対し、（iii）は後述するようにアドレス解決に２回以上のメモリアクセスが必要となる。そのため、（ii）と（iii）も並列化できる。
よって、処理時間を評価するためには、最も処理時間を要する（iii）の最大メモリアクセス数のみを検討すればよい。
【００１７】
ホストテーブルの同一ハッシュ値にマッピングされるホスト数に上限を設けない場合、メモリアクセス数の上限を抑えることができない。実装に際しては、１パケット処理時間内に必要となる最大メモリアクセス数を抑える必要があるので、ここではリンク数の上限をＬに制限する。
エントリ作成時に該当ハッシュ値に既にＬ個のエントリが収容されている場合、このエントリは棄却される。ｌ個のエントリが収容されているハッシュ値に新たにエントリを作成する場合、新規エントリと判断されるまでに（ｌ＋１）回のメモリアクセスが必要となる。さらに、ＥＳＡの空きにエントリを作成し、ｌ番目のエントリのポインタに作成したエントリのアドレスを書き込む必要があるため、合計で（ｌ＋３）回のメモリアクセスが最大で必要になる。
ｌ≦Ｌ−１であることから、最大メモリアクセス数は（Ｌ＋２）となる。
【００１８】
ハッシュ衝突をポインタによるリンク・リストによって解決する場合、ハッシュ空間を決めるパラメータβの設計が重要となる。
ｎ個のエントリがホストテーブルに収容されているとき、あるハッシュ値に収容されたエントリ数がｉである確率は、ｎＣｉ（１／２β）ｉ（１−１／２β）ｎ−ｉとなる。
よって測定期間Φ内で、一つ以上のフローがサンプルされたホスト数を下記（６−１）式で表すとき、あるハッシュ値の収容エントリ数がｉである確率の平均値ｐｉは、下記（７）式となる。
【００１９】
【数７】
2008022113.tif 000007
【００２０】
よって新たにエントリをホストテーブルに作成するときに、該当ハッシュ値のリンク数がｉ以下である確率の平均値Ｐｉは、下記（８）式となる。
リンク数の上限をＬで制限した場合、新規エントリは確率ＰＬで棄却される。ここでは、ＰＬが任意に与えたδＨＴ（任意の与えた値）以下となるようにβを設計する。
【００２１】
【数８】
2008022113.tif 000008
なお、以上の技術については、下記非特許文献１を参照されたい。
【００２２】
なお、本願発明に関連する先行技術文献としては以下のものがある。
【非特許文献１】上山，森，川原，「フローサンプリングを用いた大量フロー生成ホストの特定」，      信学技報IN2005-184.
【発明の開示】
【発明が解決しようとする課題】
【００２３】
従来の大量フロー生成ホスト特定方法では、測定期間Φ、特定閾値ｍ＊、その特定確率Ｈ＊、特定判断閾値Ｙ、測定期間内の総フロー数Ｍ、測定期間内のサンプルホスト数Ｎとが与えられたときに、設定すべきフローサンプリング確率ｒ、Bloom filterのパラメータｂとｋ、ホストテーブルのパラメータβ、所要メモリサイズＢを求めることができる。
しかしながら、一般には、メモリサイズは実装により既に決まっていることが多く、メモリサイズが与えられたときに、特定精度が最大化、即ち、大量フロー生成ホストを誤って見逃す確率（ＦＮＲ）を最小化するように、適切に各種パラメータを設定できることが重要である。
しかしながら、従来の方法では、総メモリ量が実装で定まっている場合に、特定精度が最大化するように、適切に各種パラメータを設定し、当該メモリ量を、Bloom filter、ＰＳＡ、ＥＳＡの各々に最適に割り当てることができない。
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、フロー計測から得られたデータを用いて、単位時間に生成されるフロー数が閾値を超える大量フロー生成ホストを特定する方法において、大量フロー生成ホストを誤って見逃す確率を最小化するようにメモリを最適配分することが可能となる技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
【課題を解決するための手段】
【００２４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
（１）フローサンプリングによって得られた統計データのみを用いて、単位時間あたりに生成するフロー数が閾値以上となるホストを特定する大量フロー生成ホスト特定法における最適メモリ割当て方法であって、大量フロー生成ホストを誤って見逃す確率を最小化するように、実装されているメモリ量を、新規フローの判定に用いるBloom filterと、サンプルされたホスト毎にサンプルフロー数を記億するホストテーブルの各々に割り当てることを特徴とする。
（２）（１）において、実装されているメモリ量Ｂと、特定判断閾値Ｙとが与えられたときに、Bloom filterとホストテーブルの全てのパラメータを導出する。
（３）（２）において、任意の生成フロー数ｍ０を有する大量フロー生成ホストが、ホストテーブルにエントリされたという条件のもとで特定されない確率の上限ＨＣ（ｍ０）と、このホストがホストテーブルにエントリされない確率の上限Ｒ（ｍ０）とを導出し、ＨＣ（ｍ０）｛１−Ｒ（ｍ０）｝＋Ｒ（ｍ０）を最小化する特定判断閾値Ｙを最適値として導出する。
（４）（３）において、特定判断閾値Ｙを設定する際に用いる大量フロー生成ホストの生成フロー数に関する代表値ｍ０を、全ての大量フロー生成ホストの生成フロー数の中央値とする。
（５）（１）ないし（５）の何れかにおいて、パラメータ算出に必要となる全フロー数と、大量フロー生成ホストの生成フロー数の中央値とを、前測定期間で得られた情報を用いて推定する。
（６）（５）において、前測定期間における特定ホストの誤差の影響を除去するため、中央値に見逃し大量フロー生成ホスト数の推定値を加え、さらに誤って特定した非大量フロー生成ホスト数の推定値を引く。
【発明の効果】
【００２５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、フロー計測から得られたデータを用いて、単位時間に生成されるフロー数が閾値を超える大量フロー生成ホストを特定する方法において、大量フロー生成ホストを誤って見逃す確率を最小化するようにメモリを最適配分することが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
図１は、本発明の実施例の大量フロー生成ホスト特定方法の最適メモリ割当て法が適用されるシステム構成を示すブロック図である。
図１において、１０１はパラメータ設計装置、１０２はフローサンプリング装置、１０３は新規フロー判定装置、１０４はホストテーブル、１０５は大量フロー生成ホスト特定装置、１０６は大量フロー生成ホストリストである。
パラメータ設計装置１０１により、前測定期間において特定されたフローホグの平均サンプルフロー数から、下記（８−１）式に示す総フロー数Ｍの推定値、メモリサイズＢ、測定期間Φ、特定閾値ｍ＊、その特定確率Ｈ＊から、Bloom filterのパラメータｂとｋ、ホストテーブルのパラメータβ、特定判断閾値Ｙ、フローサンプリングレートｒ、ＥＳＡのサイズＥとが設計される。
測定期間中は、フローサンプリング装置１０２により着目リンクを流れるフローが一定確率ｒでサンプルされ、サンプルされたフローが新規のフロー（未カウント）であるか否かを新規フロー判定装置１０３が判定し、新規フローであった場合にはホストテーブル１０４が更新される。大量フロー生成ホスト特定装置１０５はホストテーブル１０４に登録されたホストから大量フロー生成ホストを特定し、大量フロー生成ホストリスト１０６に出力する。
【００２７】
【数９】
2008022113.tif 000009
【００２８】
次に、本実施例の大量フロー生成ホスト特定方法の最適メモリ割当て法について説明する。
［最適メモリ割当て法］
ｎ番目の測定期間Φｎの開始点において、測定期間Φｎで用いる各種パラメータを適切に設定することを考える。
前測定期間Φｎ−１における総サンプルフロー数Ｄｎ−１と、フローサンプルレートｒｎ−１を用いれば、前測定期間における総フロー数はＤｎ−１／ｒｎ−１で推定できるが、測定期間Φｎにおいても同数のフローが生成されると想定し、前述の（８−１）式で示す総フロー数の推定値を、下記（８−２）式で与える。
また、実装に際しては、メモリサイズＢだけでなく、Bloom filterに用いることが可能なＨａｓｈ関数の数ｋの最大値ｋｍａｘも制約式として考慮することが望ましい。そこで、設計制約パラメータとして、Ｂ、Ｌ、ｋｍａｘ、任意の値δＢＦ、任意の値δＨＴの５つが与えられるものとする。
【００２９】
【数１０】
2008022113.tif 000010
【００３０】
［メモリサイズＢと、特定判断閾値Ｙが与えられたときのパラメータ設計法］
まず、制約パラメータＢ、Ｌ、ｋｍａｘ、δＢＦ、δＨＴと、（８−２）式に示す総フロー数Ｍの推定値、測定期間Φ、ｍ＊、Ｈ＊、Ｙが与えられたときに、他のパラメータｒ、ｋ、ｂ、β、Ｅをどのように設計するかについて述べる。
前述の（３）式を解くことにより、フローサンプリングレートｒが得られる。
また、前述の（４）式と、（６）式の総フロー数Ｍを、（８−２）式に示す推定値に置換えて得られる、下記（９）式と、（１０）式を解くことにより、ｂとｋが得られる。ただし、ｋは最も近い整数値に丸められ、さらにｋ＞ｋｍａｘとなった場合には、ｋ＝ｋｍａｘとする。また、ｂは上式を満たす最小の整数に設定される。
【００３１】
【数１１】
2008022113.tif 000011
【００３２】
ところで、新規フロー判定のBloom filterのbitmapに、Ｂｂｆ＝２ｂ／８＝２ｂ−３（bytes）のメモリ量が必要になる。
また、ＥＳＡのサイズＥとすると、ＰＳＡ用に、Ｂｐｓａ＝２β−３［ｌｏｇ２Ｅ］（bytes）のメモリ量が必要となる
また、ホストのエントリは３２（bit）のＩＰアドレス、［ｌｏｇ２Ｙ］（bits）のサンプルフロー数カウンタ（最大でＹまでカウントできればよい）、［ｌｏｇ２Ｅ］（bits）の次エントリへのポインタから構成されるため、ＥＳＡ用に、Ｂｅｓａ＝Ｅ（３２＋［ｌｏｇ２Ｙ］＋［ｌｏｇ２Ｅ］）／８（bytes）のメモリ量が必要となる。
したがって、パラメータＹ、ｂ、β、Ｅが与えられたとき、所要メモリ量がＢ以下となる必要があることから、下記（１１）式で示す制約式が得られる。
また、許容最大メモリアクセス数から決まる制約式が、前述の（８）式でＮをＥで置換えることにより、下記（１２）式の制約式が得られる。
これらを満足するβとＥの最大値を導出することにより、βとＥを設計することができる。
【００３３】
【数１２】
2008022113.tif 000012
【００３４】
［Ｙが特定精度に与える影響とＹの最適設計法］
特定判断閾値Ｙの増加に伴い、フローサンプルレートｒが増加するため、Bloom filterの新規フロー見逃し率を一定値δＢＦ以下に抑えるために、前述の（１１）式よりｂが増加し、Bloom filterに割当てられるメモリ量が増加する。
全体で使用できるメモリ量はＢで一定であるため、特定判断閾値Ｙの増加に伴い、ホストテーブルを構成するＰＳＡとＥＳＡに割当てられるメモリ量は減少し、βとＥＳＡのサイズＥは減少する。
特定判断閾値Ｙの増加は、特定曲線の特定閾値ｍ＊付近の傾きを増加させるため、特定判断閾値Ｙの増加に伴い特定精度は向上する。そのため、ＦＰＲはＹの増加に伴い単調に改善する。
しかし一方で、特定判断閾値Ｙの増加は、ＥＳＡのサイズＥの減少をもたらすため、サンプルされた大量フロー生成ホストのエントリが、ホストテーブルのＥＳＡ溢れのためにホストテーブルに収容されない確率を増加させる。
その結果、ＦＮＲは、特定判断閾値Ｙの小さな領域では特定判断閾値Ｙの増加に伴い改善するが、特定判断閾値Ｙの大きな領域では特定判断閾値Ｙの増加に伴い悪化する。
よって、本発明では、ＦＮＲを最小化する、即ち、見逃される大量フロー生成ホスト数Ｚを最小化する特定判断閾値Ｙを、特定判断閾値Ｙの最適値と定義する。
ｍ＝ｍ０（ただしｍ０≧ｍ＊）のある大量フロー生成ホストのエントリがホストテーブルに生成されたという条件のもとで、このホストが特定されない確率の上限をＨｃ（ｍ０）とすると、Ｈｃ（ｍ０）は、下記（１３）式で得られる。
一方、このホストのエントリがホストテーブル溢れが要因でホストテーブルに収容されない確率の上限をＲ（ｍ０）とすると、Ｒ（ｍ０）は次式で得られる。
【００３５】
【数１３】
2008022113.tif 000013
【００３６】
ただし、ホストテーブルにこのホストのエントリが生成されない確率の上限は、Ｒ（ｍ０）＋δＨＴで与えられる。
ｍ＝ｍ０の大量フロー生成ホストを特定するという観点からは、ＨＣ（ｍ０）｛１−Ｒ（ｍ０）｝＋Ｒ（ｍ０）が最小となる特定判断閾値Ｙが最適となる。
しかし、このようにして算出される、下記（１５）式で表される特定判断閾値Ｙの最適値は、ｍ０の値に応じて異なる。
ｍ０がｍ＊に近い場合や非常に大きな場合、特定判断閾値ＹがＨｃ（ｍ０）に及ぼす影響が小さくなるため、小さな特定判断閾値Ｙが、特性判断閾値Ｙの最適値として選択される。
できるだけ、全ての大量フロー生成ホストを見逃す確率を抑えるためには、大量フロー生成ホストのｍを代表するような値をｍ０に選択することが望ましい。
そこで、ｍ≧ｍ＊の全てのホストに対するｍの中央値をｍ０に設定する。実際には、前測定期間において、下記（１６−１）式で示す、特定された（サンプルフロー数が特定判断閾値Ｙ以上となった）ホストのサンプルフロー数の中央値を計算し、下記（１６−２）式により設定する。
【００３７】
【数１４】
2008022113.tif 000014
【００３８】
ただし、前測定期間の特定処理では大量フロー生成ホストの見逃しや非大量フロー生成ホストの誤特定が生じるため、特定されたホストのサンプルフロー数から推定した生成フロー数の中央値は、実際の大量フロー生成ホストの生成フロー数の中央値とは異なる。
そこで、ｍ０を下記（１７）式により補正する。
なお、（１７）式において、Ｎは前測定期間で特定されたホスト数であり、ｄは、１≦ｄ≦ｍ＊−１の範囲の値をとる任意の整数値である．
【００３９】
【数１５】
2008022113.tif 000015
【００４０】
以上説明したように、本実施例では、メモリサイズＢ、測定期間Φ、特定閾値ｍ＊、その特定確率Ｈ＊、測定期間内の総フロー数Ｍ、が与えられた場合に、大量フロー生成ホストを誤って見逃す確率（ＦＮＲ）を最小化するように、Bloom filterのパラメータｂとｋ、ホストテーブルのパラメータβに加え、特定判断閾値Ｙ、フローサンプリングレートｒ、ＥＳＡのサイズＥとを最適設計することが可能となる。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施例の大量フロー生成ホスト特定方法の最適メモリ割当て法が適用されるシステム構成を示すブロック図である。
【符号の説明】
【００４２】
１０１  パラメータ設計装置
１０２  フローサンプリング装置
１０３  新規フロー判定装置
１０４  ホストテーブル
１０５  大量フロー生成ホスト特定装置
１０６  大量フロー生成ホストリスト
【図１】
2008022113.tif 000016