(57)【要約】      （修正有）【課題】ＩＰネットワークのパケットサンプリングにおいて、特定のフローだけがサンプルされ続ける問題を回避する。【解決手段】パケットサンプリング装置１は、ハッシュ値計算部１ｂにおいて、到着したパケット毎に、少なくとも当該パケットの送信元ＩＰと送信先ＩＰアドレスを含む当該フローを特定する情報（フローキー）に対するハッシュ値を求め、サンプリング部１ｃにおいて、ハッシュ値計算部１ｂが求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングすることにより、小フローを大量生成するトラヒックの検出を可能とすると共に、サンプル区間決定部１ｆにおいて、予め定められた一定周期で、サンプル区間を変更する。【選択図】図２
2011176586.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータ処理により、IPネットワークにおけるリンクを経由するパケットをサンプリングするパケットサンプリング装置であって、
到着したパケット毎に、少なくとも当該パケットの送信元ＩＰと送信先ＩＰアドレスを含む当該フローを特定する情報（フローキー）に対するハッシュ値を求めるハッシュ値計算手段と、
該ハッシュ値計算手段が求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングするサンプリング手段と、
予め定められた一定周期で、上記サンプル区間を変更するサンプル区間決定手段と
を有することを特徴とするパケットサンプリング装置。
【請求項２】
請求項１に記載のパケットサンプリング装置であって、
上記ハッシュ値計算手段は、
上記フローキーをハッシュ関数に入力して、配列サイズの範囲内でハッシュ値を取得し、取得したハッシュ関数の値を配列サイズで割った値を計算し、
上記サンプリング手段は、
予め定めた一定周期の間、上記ハッシュ値計算手段が計算した値が、上記サンプル区間の中であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、
上記一定周期の経過後に、サンプル区間[t,t+W]におけるtの値を「t←t＋δ」（δは予め定めるパラメタであり、0<δ<=W）と更新し、該更新に伴い、「t+W」が1を越える場合には、サンプル区間を「[t,1]∨[0,（t+W）-1]」とし、次の更新時に、tの値を「t←t+W-1+δ」と更新して、サンプル区間を[t,t+W]に更新する
ことを特徴とするパケットサンプリング装置。
【請求項３】
請求項１もしくは請求項２のいずれかに記載のパケットサンプリング装置であって、
上記サンプリング手段による上記一定周期毎のパケットサンプリングと並行して、
該サンプリング手段により上記一定周期の間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定する特定フロー管理手段を具備し、
上記サンプル区間決定手段は、
上記特定フロー管理手段が特定したフローのフローキーに対するハッシュ値を含むように、上記サンプル区間を次周期で設定する
ことを特徴とするパケットフローサンプリング装置。
【請求項４】
請求項３に記載のパケットサンプリング装置であって、
上記特定フロー管理手段が特定したフローが複数存在する場合、
上記サンプル区間決定手段は、上記サンプル区間を上記複数の特定フローのフローキーのハッシュ値を含むように、サンプル区間を複数に分けて設定する
ことを特徴とするパケットサンプリング装置。
【請求項５】
請求項３もしくは請求項４のいずれかに記載のパケットサンプリング装置であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケット数が予め定めた閾値を越えたフローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング装置。
【請求項６】
請求項３から請求項５のいずれかに記載のパケットサンプリング装置であって、
パケットが到着する度に、カウントアップするパケットカウント手段を具備し、
上記サンプリング手段は、
上記パケットカウント手段のカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを上記特定フロー管理手段に通知し、
該特定フロー管理手段は、
上記サンプリング手段から通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング装置。
【請求項７】
請求項３から請求項６のいずれかに記載のパケットサンプリング装置であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケットの品質を測定する手段を具備し、
該測定した品質が予め定められたた目標値よりも劣化しているフローを上記特定フローとして特定することを特徴とするパケットサンプリング装置。
【請求項８】
請求項１から請求項７のいずれかに記載のパケットサンプリング装置であって、
上記フローキーは、当該パケットの送信元IPアドレスと、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の５つの組からなる
ことを特徴とするパケットサンプリング装置。
【請求項９】
コンピュータを、請求項１から請求項８のいずれかに記載のパケットサンプリング装置における各手段として機能させるためのプログラム。
【請求項１０】
コンピュータ装置により、IPネットワークにおけるリンクを経由するパケットをサンプリングするパケットサンプリング方法であって、
コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、ハッシュ値計算手段とサンプリング手段およびサンプル区間決定手段を具備し、
上記ハッシュ値計算手段は、到着したパケット毎に、少なくとも当該パケットの送信元ＩＰと送信先ＩＰアドレスを含む当該フローを特定する情報（フローキー）に対するハッシュ値を求め、
上記サンプリング手段は、上記ハッシュ値計算手段が求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、予め定められた一定周期で、上記サンプル区間を変更する
ことを特徴とするパケットサンプリング方法。
【請求項１１】
請求項１０に記載のパケットサンプリング方法であって、
上記ハッシュ値計算手段は、
上記フローキーをハッシュ関数に入力して、配列サイズの範囲内でハッシュ値を取得し、取得したハッシュ関数の値を配列サイズで割った値を計算し、
上記サンプリング手段は、
予め定めた一定周期の間、上記ハッシュ値計算手段が計算した値が、上記サンプル区間の中であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、
上記一定周期の経過後に、サンプル区間[t,t+W]におけるtの値を「t←t＋δ」（δは予め定めるパラメタであり、0<δ<=W）と更新し、該更新に伴い、「t+W」が1を越える場合には、サンプル区間を「[t,1]∨[0,t+W-1]」とし、次の更新時に、tの値を「t←t+W-1+δ」と更新して、サンプル区間を[t,t+W]に更新する
ことを特徴とするパケットサンプリング方法。
【請求項１２】
請求項１０もしくは請求項１１のいずれかに記載のパケットサンプリング方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、特定フロー管理手段を具備し、
該特定フロー管理手段は、
上記サンプリング手段による上記一定周期毎のパケットサンプリングと並行して、
該サンプリング手段により上記一定周期の間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定し、
上記サンプル区間決定手段は、
上記特定フロー管理手段が特定したフローのフローキーに対するハッシュ値を含むように、上記サンプル区間を次周期で設定する
ことを特徴とするパケットフローサンプリング方法。
【請求項１３】
請求項１２に記載のパケットサンプリング方法であって、
上記特定フロー管理手段が特定したフローが複数存在する場合、
上記サンプル区間決定手段は、上記サンプル区間を上記複数の特定フローのフローキーのハッシュ値を含むように、サンプル区間を複数に分けて設定する
ことを特徴とするパケットサンプリング方法。
【請求項１４】
請求項１２もしくは請求項１３のいずれかに記載のパケットサンプリング方法であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケット数が予め定めた閾値を越えたフローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング方法。
【請求項１５】
請求項１２から請求項１４のいずれかに記載のパケットサンプリング方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、パケットカウント手段を具備し、
該パケットカウント手段は、
パケットが到着する度に、カウントアップし、
上記サンプリング手段は、
上記パケットカウント手段のカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを上記特定フロー管理手段に通知し、
該特定フロー管理手段は、
上記サンプリング手段から通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング方法。
【請求項１６】
請求項１２から請求項１５のいずれかに記載のパケットサンプリング方法であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケットの品質を測定し、
該測定した品質が予め定められたた目標値よりも劣化しているフローを上記特定フローとして特定することを特徴とするパケットサンプリング方法。
【請求項１７】
請求項１０から請求項１６のいずれかに記載のパケットサンプリング方法であって、
上記フローキーは、当該パケットの送信元IPアドレスと、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の５つの組からなる
ことを特徴とするパケットサンプリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、IP（Internet Protocol）ネットワークにおける通信トラヒックを管理する技術に係り、特に、ネットワーク全体を流れるフローの全体的な監視を効率的に行うのに好適な技術に関するものである。
【背景技術】
【０００２】
IPネットワークであるインターネットにおけるトラヒックの増加とインターネットの利用形態・アプリケーションの多様化に伴い、ネットワーク（NW）の効率的な運用を支えるトラヒック計測が重要となっている。
【０００３】
特に、品質劣化要因となるNWリソースの浪費や、セキュリティ上の問題を引き起こすトラヒックを検出できる仕組みへの重要性が増している。
【０００４】
この狙いのために、フローレベルのトラヒック測定が注目されており、異常トラヒック検出、ヘビーユーザ特定、トラヒックエンジニアリング等への応用が検討されている。
【０００５】
ここで、フローとは、パケットにおけるヘッダ情報としての「送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号」の５つ組を同じくするパケット群のことを指す。
【０００６】
しかしながら、ユーザ端末からのフローの通信品質（ユーザフロー通信品質）を測定するためには、回線を流れるパケットを全てキャプチャして、パケットヘッダ情報の解析、およびフロー情報の解析が必要であり、回線速度が高速になるにつれて全てのパケットをキャプチャして処理することが困難になってきている。
【０００７】
そこで、近年、回線を流れるパケットを全てキャプチャするのではなく、一部のパケットをキャプチャする「パケットサンプリング」を実施することによって、フロー管理に必要とされる処理を軽減する技術が注目されている。例えば、非特許文献１においては、N個に1個のパケットを周期的に参照（サンプリング）し、サンプルしたパケットのフロー解析結果から元のフロー統計情報を推定する技術が記載されている。
【０００８】
また、非特許文献２においては、パケットサンプリングを用いて、長大フロー（たくさんのトラヒックを送出しているフロー）を特定する技術が提案されている。
【０００９】
また、非特許文献３においては、フローサイズが大きいフローの統計を精度よく得る技術が提案されている。
【００１０】
これらの技術では、パケットサンプリングを行うと、少数パケットで構成される大多数のフローは無視されるが、長大フローはサンプルされる確率が高いことを利用しているので、このような技術の用途にパケットサンプリングは向いている。
【００１１】
しかし、例えば、非特許文献４，５において記載のように、スキャンなどの異常トラヒックは、パケットサンプリングでは検出しづらくなる。これは、これら異常トラヒックは、小フロー（少ないパケットで構成されるフロー）を大量生成するため、個々のフローがサンプルされにくいことに起因する。
【００１２】
そのような問題を解決する技術として、例えば、非特許文献６に記載の「フローサンプリング」が注目されている。フローサンプリングとは、到着パケット毎に、フローを定義する５つ組（送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号）をキー（フローキー）としてハッシュ関数に入力し、ハッシュ値が閾値未満の場合にのみ、そのパケットをサンプルすることで、フローの大きさ（パケット数）に依らず全てのフローは一様にサンプルされる。こうすることで、例えば、小フローを大量生成するホスト（通信装置）の検出が可能となる。
【００１３】
しかしながら、このフローサンプリングでは、ハッシュ値が閾値未満の場合、といった特定の条件にマッチしたフローのみをサンプルするため、その条件にマッチしないフローは、サンプルされない状態が継続することになる。
【００１４】
すなわち、ネットワークを流れるフローを全体的に監視ができないことになり、その結果、本来であれば監視する必要のあるフローが、サンプルされず監視できない状態が続く可能性があるという問題点がある。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】IETF Packet Sampling (psamp) Working Group,［平成２２年２月１０日検索］、インターネット＜URL: http://www.ietf.org/html.charters/psamp-charter.html＞.
【非特許文献２】T. Mori, T. Takine, J. Pan, R. Kawahara, M. Uchida, and S. Goto, "Identifying heavy-hitter flows from sampled flow statistics," IEICE Trans. Commun., vol.E90-B, no.11, pp.3061-3072, Nov. 2007.
【非特許文献３】C. Estan and G. Varghese, "New Directions in Traffic Measurement and Accounting," ACM SIGCOMM2002, Aug. 2002.
【非特許文献４】R. Kawahara, K. Ishibashi, T. Mori, N. Kamiyama, S. Harada, and S. Asano, "Detection accuracy of network anomalies using sampled flow statistics," IEEE Globecom 2007, Nov. 2007.
【非特許文献５】D. Brauckhoff, B. Tellenbach, A. Wagner, M. May, and A. Lakhina, "Impact of packet sampling on anomaly detection metrics," ACM SIGCOMM IMC, 2006.
【非特許文献６】K. Keys, D. Moore, C. Estan, "A Robust System for Accurate Real-time Summaries of Internet Traffic," SIGMETRICS2005.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
解決しようとする問題点は、従来のパケットサンプリング技術では、フローサイズが大きいフロー（長大フロー）の統計を精度よく得ることができるが、ポートスキャン等の異常トラヒックが生成するフローサイズが小さいフロー（小フロー）がサンプルされにくい点と、また、従来のフローサンプリング技術では、小フローをサンプルすることが可能であるが、特定の条件にマッチしたフローのみをサンプルするため、その条件にマッチしないフローは、サンプルされない状態が継続してしまう点である。
【００１７】
本発明の目的は、これら従来技術の課題を解決し、長大フローと小フローのいずれもサンプリング対象とし、ネットワーク全体を流れるフローの監視を効率的に行うことを可能とすることである。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明では、パケット毎に、少なくとも当該パケットの送信元ＩＰと送信先ＩＰアドレスを含む当該フローを特定する情報（フローキー）、例えば、当該パケットの送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号の５つの組からなるフローキーに対するハッシュ値を求め、求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングすることで、小フローを大量生成するトラヒックの検出を可能とすると共に、予め定められた一定周期Tで、サンプル区間を変更することにより、特定のフローだけがサンプルされ続ける問題を回避する。
【発明の効果】
【００１９】
本発明によれば、パケット毎にフローキーに対するハッシュ値をサンプリングすることで、小フローを大量生成する異常トラヒックの検出が可能となると共に、サンプル区間を周期的に変更させることで、あるいはランダムサンプリングを併用することで、特定された一部のフローだけに偏ったサンプリングを行うことなく、ネットワーク全体を流れるフローの全体的な監視が可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係るパケットサンプリング装置を設けたネットワークの構成例を示すブロック図である。
【図２】図１におけるパケットサンプリング装置の構成例を示すブロック図である。
【図３】図１におけるパケットサンプリング装置の本発明に係る処理動作例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図を用いて本発明を実施するための形態例を説明する。図１において、１は本発明に係るパケットサンプリング装置、２，３はIPネットワークを構成する通信ノード（図中「ノード」と記載）である。
【００２２】
パケットサンプリング装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行する。
【００２３】
すなわち、図２に示すように、パケットサンプリング装置１は、プログラムされたコンピュータ処理を実行する手段として、パケットカウント部１ａ、ハッシュ値計算部１ｂ、サンプリング部１ｃ、パケット蓄積部１ｄ、特定フロー管理部１ｅ、サンプル区間決定部１ｆを具備する。
【００２４】
このようなコンピュータ構成により、本例のパケットサンプリング装置１は、パケット毎に、少なくとも当該パケットの送信元ＩＰと送信先ＩＰアドレスを含む当該フローを特定する情報（フローキー）に対するハッシュ値を求め、求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングすると共に、予め定められた一定周期Tで、サンプル区間を変更することにより、小フローを大量生成するトラヒックの検出を可能とすると共に、特定のフローだけがサンプルされ続ける問題を回避する。
【００２５】
以下、このようなパケットサンプリング装置１によるサンプリング処理動作の詳細を、第１〜第５の実施例として説明する。尚、本例では、フローキーとして、パケットの送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号の５つからなる組を用いる。
【００２６】
＜第１の実施例＞
【００２７】
図２に示すコンピュータ構成により、本例のパケットサンプリング装置１は、まず、パケットカウント部１ａにおいて、パケットが到着するたびに、図示しないカウンタＣをカウントアップする。
【００２８】
そして、ハッシュ値計算部１ｂにおいて、到着したパケットｘ毎に、当該パケットの「発信元IPアドレス（srcIP）、着信先IPアドレス（dstIP）、発信元ポート番号（srcPort）、着信先ポート番号（dstPort）、プロトコル（Protocol）」からなるフローキーxを読み出し、読み出したフローキーｘをハッシュ関数に入力する。尚、ハッシュ関数は、サイズbの範囲内でハッシュ値を返すとする。
【００２９】
そして、ハッシュ値計算部１ｂは、このハッシュ関数で返されたハッシュ値h（x）をサイズbで割った値「h（x）/b」を計算し、計算した値と当該パケットをサンプリング部１ｃに転送する。
【００３０】
サンプリング部１ｃは、ハッシュ値計算部１ｂが計算した値が、予めサンプル区間決定部１ｆにおいて定められた範囲（サンプル区間）内のものであるか否かを判別し、サンプル区間内でなければ、単に、当該パケットを後段ノードに転送し、サンプル区間内であれば、当該パケットを後段ノードに転送すると共に、当該パケットをサンプリングしてパケット蓄積部１ｄに転送する。
【００３１】
パケット蓄積部１ｄは、当該パケットを図示していない記憶装置に格納する。
【００３２】
このようにして、フローキーのハッシュ値に基づくパケットのサンプリング（フローサンプリング）を実施し、サンプルされたパケットを収集することで、小フローを大量生成するトラヒックの検出が可能となる。
【００３３】
しかし、ここまでの技術では、上述の非特許文献６に記載の技術と同様であり、特定のフローだけがサンプルされ続ける問題がある。
【００３４】
この問題に対処するために、本例のパケットサンプリング装置１では、サンプル区間決定部１ｆにおいて定めるサンプル区間を、図示しないタイマ機能で計測される予め定められた一定周期T毎に変更する。
【００３５】
本例では、サンプル区間決定部１ｆは、サンプル区間を[t,t+W]として決定するものであり、ここで、tとWは「0<=t<=1、0<=t+W<=1，W>0」を満たすパラメタである。尚、tは後述するように一定周期T毎に更新していくパラメタであり、初期値を0とする。また、Wは、予め定めた目標パケットサンプリングレートpを用いてW=pと設定する。
【００３６】
そして、サンプル区間決定部１ｆは、一定周期T経過後に、tの値を「t←t＋δ」と更新する。δは予め定めるパラメタであり、「0<δ<=W」とする。
【００３７】
ただし、「t+W」が1を越える場合には、サンプル区間決定部１ｆは、サンプル区間を「[t,1]∨[0,t+W-1]」とし、その次の更新時には、「t←t+W-1+δ」と更新し、サンプル区間を[t,t+W]に更新する。
【００３８】
このように、サンプル区間決定部１ｆにおいて、サンプリング部１ｃでサンプルすべきハッシュ値の範囲、すなわちサンプル区間を、一定周期T毎に変更することにより、特定のフローだけがサンプルされ続けるとの問題を回避することができる。
【００３９】
次に、図２に示すコンピュータ構成からなる本例のパケットサンプリング装置１によるサンプリング処理動作の第２の実施例について説明する。
【００４０】
＜第２の実施例＞
【００４１】
本例では、一定周期T毎に、上述の第１の実施例におけるパケットサンプリングを実施すると共に、その周期Tの間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h（x）を含むように、パケットサンプル区間を次周期で変更・設定する。
【００４２】
すなわち、図２に示すコンピュータ構成のパケットサンプリング装置１は、特定フロー管理部１ｅにおいて、サンプリング部１ｃがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部１ｆに通知する。
【００４３】
このようにして、特定フロー管理部１ｅから、閾値を超えたフローの通知があった場合には、サンプル区間決定部１ｆにおいて、そのフローIDに対するハッシュ値を調べ、現時点でのサンプル区間にそのハッシュ値が含まれるかをチェック（判別）し、もし含まれない場合は、そのハッシュ値を含むように、サンプル区間を変更する。
【００４４】
例えば、特定フローがM本存在（M>1）する場合には、サンプル区間を特定フローのキー「x_i（i=1，…，M）」のハッシュ値を含むように、サンプル区間を複数に分けて設定する。
【００４５】
具体的には、現在のサンプル区間が[0.1,0.2]だとし、特定フローM本のうち、m本のハッシュ値が[0.1,0.2]に含まれず、それらのハッシュ値は[0.5,0.55]に含まれる場合には、サンプル区間を[0.1,0.2]から{[0.1,0.15]，[0.5,0.55]}に変更する。
【００４６】
このようにして、特定フローに関しては、継続的に監視すべきフローとして、サンプルされ続けるようにする。
【００４７】
このように、上述の第１の実施例におけるパケットサンプリングと共に、特定のフローに関しては、継続的に監視する技術の他の技術を、第３〜第５の実施例として説明する。
【００４８】
＜第３の実施例＞
【００４９】
本例は、一定周期T毎に、上述の第１の実施例におけるパケットサンプリングを実施すると共に、予め定められた周期の間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h（x）を含むように、パケットサンプル区間を次周期で変更・設定するものであり、図２のパケットサンプリング装置１は、サンプリング部１ｃにおいて、以下の処理を行う。
【００５０】
サンプリング部１ｃは、上述の第１の実施例におけるハッシュ値に基づくサンプリングと並行して、パケットカウント部１ａがカウントアップしているカウンタＣの値が予め定められた値Ｎの倍数となる度に、当該パケットを、後段のノードに転送すると共に、サンプリングしてパケット蓄積部１ｄと特定フロー管理部１ｅに転送する。
【００５１】
以下、上述の第２の実施例と同様に、特定フロー管理部１ｅにおいて、サンプリング部１ｃがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部１ｆに通知し、サンプル区間決定部１ｆにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【００５２】
＜第４の実施例＞
【００５３】
本例は、一定周期T毎に、上述の第１の実施例におけるパケットサンプリングを実施すると共に、予め定められた周期の間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h（x）を含むように、パケットサンプル区間を次周期で変更・設定するものであり、図２のパケットサンプリング装置１は、サンプリング部１ｃにおいて、以下の処理を行う。
【００５４】
サンプリング部１ｃは、上述の第１の実施例におけるハッシュ値に基づくサンプリングと並行して、パケット到着毎に０から1の範囲で乱数を発生させ、その結果が、予め定められた値Ｎの逆数（1/N）以下であれば、当該パケットを後段ノードと共に、パケット蓄積部１ｄと特定フロー管理部１ｅにも転送する。
【００５５】
以下、上述の第２，第３の実施例と同様に、特定フロー管理部１ｅにおいて、サンプリング部１ｃがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部１ｆに通知し、サンプル区間決定部１ｆにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【００５６】
＜第５の実施例＞
【００５７】
本例では、サンプルパケット数が閾値を超えたフローを特定すべきフローとする代わりに、品質が劣化しているフローを特定すべきフローとして、サンプリング区間を設定するものである。
【００５８】
具体的には、パケット蓄積部１ｄにおいて蓄積されたパケットを用いて、各フローの品質状態を表す値を、上述の非特許文献６や、後述する公知文献１（川原, 石橋, 森, 上山, 長谷川, “フローサンプリングを用いたフロー品質推定法,” 信学会ソサイエティ大会, 2009年9月.）および公知文献２（小林, 石橋, 西田, “選択的sFlow による大規模VoIP トラヒック品質測定手法の提案,” 信学技報, vol. 107, no. 311, NS2007-95, pp. 7-12, 2007 年11 月.）等に記載の技術を用いて取得し、取得した値が閾値を越えるなどの品質劣化条件を満たすかどうかをチェック（判定）し、品質劣化状態のフローを検出すれば、当該フローIDをサンプル区間決定部１ｆに通知する。
【００５９】
以下、上述の第２〜第４の実施例と同様に、サンプル区間決定部１ｆにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【００６０】
尚、上述の公知文献１，２においては、サンプル情報からフローの品質を把握する技術として、フローの往復伝播遅延時間やパケット損失率を推定する技術が記載されている。
【００６１】
この技術では、サンプルされたパケットの中から、着目するTCPフローのSYNパケットに対するSYNACK、およびSYNACK応答に対するACKを抽出し、各パケットの観測時刻情報を用いて計算することで、SYN-SYNACK応答時間およびSYNACK-ACK応答時間を計算し、それらの和を往復伝播遅延時間として計算する。
【００６２】
また、上述の公知文献２では、VoIPトラヒックを抽出し、セッション単位にRTPパケットの到着間隔を分析することで、VoIPの品質を推定する。具体的には、到着間隔の分散と音声品質に相関があることを利用している。
【００６３】
また、TCPのスループットを品質として品質劣化を検出する技術としては、例えば公知文献３（R. Kawahara, T. Mori, K. Ishibashi, N. Kamiyama, and H. Yoshino, "Packet sampling TCP flow rate estimation and performance degradation detection method," IEICE Trans. Commun., Vol.E91-B, No.5, pp.1309-1319, May 2008.）に記載のものがある。この技術では、同一フローからサンプルされたパケットのうち、最後にサンプルされたパケットのシーケンス番号SN_lとその時刻T_l、最初のパケットのシーケンス番号SN_fとその時刻T_fを用いて、スループットを（SN_l-SN_f）/（T_l-T_f）で推定する。
【００６４】
これらの技術を用いることで、各フローの品質を把握しつつ、次周期でもサンプルすべきフローを特定する。すなわち、サンプルパケット情報から推定された品質が予め定められた目標値よりも劣化しているフローを、特定フローとして、当該フローに対するサンプリングを継続させる。
【００６５】
次に、図３を用いて、上述の図２におけるパケットサンプリング装置の処理動作を説明する。
【００６６】
まず、パケットカウント部１ａにおいて、パケットが到着するたびに（ステップＳ３０１）、図示しないカウンタＣをカウントアップする（ステップＳ３０２）。
【００６７】
次に、ハッシュ値計算部１ｂにおいて、到着したパケットｘ毎に、当該パケットの「発信元IPアドレス（srcIP）、着信先IPアドレス（dstIP）、発信元ポート番号（srcPort）、着信先ポート番号（dstPort）、プロトコル（Protocol）」からなるフローキーxを読み出し、読み出したフローキーｘをハッシュ関数に入力し、このハッシュ関数で返されるハッシュ値h（x）をサイズbで割った値「h（x）/b」を計算し、計算した値と当該パケットをサンプリング部１ｃに転送する（ステップＳ３０３）。
【００６８】
サンプリング部１ｃは、ハッシュ値計算部１ｂが計算した値が、予めサンプル区間決定部１ｆにおいて定められた範囲（サンプル区間）内のものであるか否かを判別し（ステップＳ３０４）、サンプル区間内でなければ、単に、当該パケットを後段ノードに転送し、サンプル区間内であれば、当該パケットを後段ノードに転送すると共に、当該パケットをサンプリングしてパケット蓄積部１ｄに転送する（ステップＳ３０６）。尚、パケット蓄積部１ｄにおいて当該パケットを記憶装置に格納する。
【００６９】
また、サンプリング部１ｃにおいては、上記ハッシュ値に基づくサンプリングと並行して、パケットカウント部１ａがカウントアップしているカウンタＣの値が予め定められた値Ｎの倍数となる度に（ステップＳ３０５）、当該パケットをサンプリングしてパケット蓄積部１ｄと特定フロー管理部１ｅに転送する（ステップＳ３０６）と共に、特定フロー管理部１ｅにおいて、フロー毎にサンプリングしたパケット数をカウントする（ステップＳ３０７）。尚、このカウント値が予め定められた閾値を越えていれば、当該フローのフローIDをサンプル区間決定部１ｆに通知して、当該フローがハッシュ値に基づくサンプリングでもサンプリングされるように、サンプル区間を変更させる。
【００７０】
以上、図１〜図３を用いて説明したように、本例のパケットサンプリング装置１は、プログラムされたコンピュータ処理を実行する機能として、ハッシュ値計算部１ｂとサンプリング部１ｃおよびサンプル区間決定１ｆを具備し、ハッシュ値計算部１ｂにおいて、到着したパケット毎に、当該パケットの送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号の５つの組からなるフローキーに対するハッシュ値を求め、サンプリング部１ｃにおいて、ハッシュ値計算部１ｂが求めたハッシュ値が予め定められた範囲（サンプル区間）であれば当該パケットをサンプリングし、サンプル区間決定部１ｆにおいては、予め定められた一定周期で、サンプル区間を変更する。
【００７１】
特に、ハッシュ値計算部１ｂは、フローキーをハッシュ関数h（x）に入力して、サイズbの範囲内でハッシュ値を取得し、取得したハッシュ関数h（x）の値をサイズbで割った値h（x）/bを計算し、この計算した値が、サンプル区間[t,t+W]（tは0<=t<=1で初期値0、Wは予め定めた目標パケットサンプリングレートpを用いてW=p>0と設定され、0<=t+W<=1）の中であれば当該パケットをサンプリングし、サンプリング部１ｃは、予め定めた一定周期Tの間、サンプル区間[t,t+W]でのパケットサンプリングを行い、サンプル区間決定部１ｆは、一定周期T経過後に、tの値を「t←t＋δ」（δは予め定めるパラメタであり、0<δ<=W）と更新し、この更新に伴い、「t+W」が1を越える場合には、サンプル区間を「[t,1]∨[0,t+W-1]」とし、次の更新時に、tの値を「t←t+W-1+δ」と更新して、サンプル区間を[t,t+W]に更新する。
【００７２】
このように、フローサンプリングを行うことで、小フローを大量生成するトラヒックの検出が可能となると共に、サンプルすべきハッシュ値の範囲（サンプル区間）を、一定周期毎に変更することで、特定のフローだけがサンプルされ続ける問題を回避することができる。
【００７３】
また、プログラムされたコンピュータ処理を実行する機能として、特定フロー管理部１ｅを具備し、特定フロー管理部１ｅにおいては、サンプリング部１ｃによる一定周期T毎のパケットサンプリングと並行して、このサンプリング部１ｃにより一定周期Tの間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定し、サンプル区間決定部１ｆは、特定フロー管理部１ｅが特定したフローのフローキーに対するハッシュ値を含むように、サンプル区間を次周期で設定する。
【００７４】
例えば、特定フロー管理部１ｅが特定したフローがM個存在（M>1）する場合には、サンプル区間決定部１ｆは、サンプル区間を特定フローのフローキーx_i（i=1，…，M）のハッシュ値を含むように、サンプル区間を複数に分けて設定する。
【００７５】
また、特定フロー管理部１ｅは、サンプリング部１ｃがサンプリングしたパケット数が予め定めた閾値を越えたフローを特定フローとして特定する。
【００７６】
このようにすることで、継続的に監視すべきフローについてはサンプルされ続けるようにしている。
【００７７】
また、プログラムされたコンピュータ処理を実行する機能として、パケットカウント部１ａを具備し、このパケットカウント部１ａにおいては、パケットが到着する度に、カウントアップし、サンプリング部１ｃは、パケットカウント部１ａのカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを特定フロー管理部１ｅに通知し、特定フロー管理部１ｅは、サンプリング部１ｃから通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを特定フローとして特定する。
【００７８】
このように、パケットをN個に1個ランダムにサンプルする技術を併用することにより、多くのパケットを送出しているフローをサンプルし易くなるため、そのようなネットワークへのインパクトが大きいフローを特定することができる。
【００７９】
また、特定フロー管理部１ｅにおいては、サンプリング部１ｃがサンプリングしたパケットの品質を測定し、測定した品質が予め定められたた目標値よりも劣化しているフローを特定フローとして特定する。これにより、品質を把握しつつ、次周期でもサンプルすべきフローを特定することができる。
【００８０】
このように、本例のパケットサンプリング装置１では、パケット毎にフローキーに対するハッシュ値をサンプリングすることで、小フローを大量生成する異常トラヒックの検出が可能となると共に、サンプル区間を周期的に変更させることで、特定された一部のフローだけに偏ったサンプリングを行うことなく、ネットワーク全体を流れるフローの全体的な監視が可能となる。
【００８１】
尚、本発明は、図１〜図３を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、第１〜第５の実施例を個別の技術として説明したが、各実施例の技術を任意に組み合わせた構成としても良い。例えば、第３の実施例におけるフローを特定する技術と第４の実施例におけるフローを特定する技術を共に実装した構成としても良い。
【００８２】
また、本例では、図１に示すように、パケットサンプリング装置１をノード２，３間に設け、ノード２，３間におけるリンク上のパケットをサンプリングする構成として説明したが、パケットサンプリング装置１が、例えばノード２を介してリンク上に転送されるパケットをキャプチャする構成としても良い。
【００８３】
また、本例では、フローキーとして、パケットの送信元IPアドレス（srcIP），送信先IPアドレス（dstIP），送信元ポート番号（srcPort），送信先ポート番号（dstPort），プロトコル番号の５つからなる組を用いているが、送信元IPアドレス（srcIP）と送信先IPアドレス（dstIP）の２つからなる組、あるいは、送信元IPアドレス（srcIP）と送信先IPアドレス（dstIP）およびプロトコル番号の３つからなる組など、少なくとも送信元IPアドレス（srcIP）と送信先IPアドレス（dstIP）を含む情報を、当該フローを特定するフローキーとして用いても良い。
【００８４】
また、本例のコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、記録媒体としてＣＤを例示しているが、ＤＶＤやＦＤ等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【００８５】
１：パケットサンプリング装置、１ａ：パケットカウント部、１ｂ：ハッシュ値計算部、１ｃ：サンプリング部、１ｄ：パケット蓄積部、１ｅ：特定フロー管理部、１ｆ：サンプル区間決定部、２，３：通信ノード（「ノード」）。
【図１】
2011176586.tif 000003
【図２】
2011176586.tif 000004
【図３】
2011176586.tif 000005