説明

パケットサンプリング装置と方法およびプログラム

【課題】IPネットワークのパケットサンプリングにおいて、特定のフローだけがサンプルされ続ける問題を回避する。
【解決手段】パケットサンプリング装置1は、ハッシュ値計算部1bにおいて、到着したパケット毎に、少なくとも当該パケットの送信元IPと送信先IPアドレスを含む当該フローを特定する情報(フローキー)に対するハッシュ値を求め、サンプリング部1cにおいて、ハッシュ値計算部1bが求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングすることにより、小フローを大量生成するトラヒックの検出を可能とすると共に、サンプル区間決定部1fにおいて、予め定められた一定周期で、サンプル区間を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)ネットワークにおける通信トラヒックを管理する技術に係り、特に、ネットワーク全体を流れるフローの全体的な監視を効率的に行うのに好適な技術に関するものである。
【背景技術】
【0002】
IPネットワークであるインターネットにおけるトラヒックの増加とインターネットの利用形態・アプリケーションの多様化に伴い、ネットワーク(NW)の効率的な運用を支えるトラヒック計測が重要となっている。
【0003】
特に、品質劣化要因となるNWリソースの浪費や、セキュリティ上の問題を引き起こすトラヒックを検出できる仕組みへの重要性が増している。
【0004】
この狙いのために、フローレベルのトラヒック測定が注目されており、異常トラヒック検出、ヘビーユーザ特定、トラヒックエンジニアリング等への応用が検討されている。
【0005】
ここで、フローとは、パケットにおけるヘッダ情報としての「送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号」の5つ組を同じくするパケット群のことを指す。
【0006】
しかしながら、ユーザ端末からのフローの通信品質(ユーザフロー通信品質)を測定するためには、回線を流れるパケットを全てキャプチャして、パケットヘッダ情報の解析、およびフロー情報の解析が必要であり、回線速度が高速になるにつれて全てのパケットをキャプチャして処理することが困難になってきている。
【0007】
そこで、近年、回線を流れるパケットを全てキャプチャするのではなく、一部のパケットをキャプチャする「パケットサンプリング」を実施することによって、フロー管理に必要とされる処理を軽減する技術が注目されている。例えば、非特許文献1においては、N個に1個のパケットを周期的に参照(サンプリング)し、サンプルしたパケットのフロー解析結果から元のフロー統計情報を推定する技術が記載されている。
【0008】
また、非特許文献2においては、パケットサンプリングを用いて、長大フロー(たくさんのトラヒックを送出しているフロー)を特定する技術が提案されている。
【0009】
また、非特許文献3においては、フローサイズが大きいフローの統計を精度よく得る技術が提案されている。
【0010】
これらの技術では、パケットサンプリングを行うと、少数パケットで構成される大多数のフローは無視されるが、長大フローはサンプルされる確率が高いことを利用しているので、このような技術の用途にパケットサンプリングは向いている。
【0011】
しかし、例えば、非特許文献4,5において記載のように、スキャンなどの異常トラヒックは、パケットサンプリングでは検出しづらくなる。これは、これら異常トラヒックは、小フロー(少ないパケットで構成されるフロー)を大量生成するため、個々のフローがサンプルされにくいことに起因する。
【0012】
そのような問題を解決する技術として、例えば、非特許文献6に記載の「フローサンプリング」が注目されている。フローサンプリングとは、到着パケット毎に、フローを定義する5つ組(送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号)をキー(フローキー)としてハッシュ関数に入力し、ハッシュ値が閾値未満の場合にのみ、そのパケットをサンプルすることで、フローの大きさ(パケット数)に依らず全てのフローは一様にサンプルされる。こうすることで、例えば、小フローを大量生成するホスト(通信装置)の検出が可能となる。
【0013】
しかしながら、このフローサンプリングでは、ハッシュ値が閾値未満の場合、といった特定の条件にマッチしたフローのみをサンプルするため、その条件にマッチしないフローは、サンプルされない状態が継続することになる。
【0014】
すなわち、ネットワークを流れるフローを全体的に監視ができないことになり、その結果、本来であれば監視する必要のあるフローが、サンプルされず監視できない状態が続く可能性があるという問題点がある。
【先行技術文献】
【非特許文献】
【0015】
【非特許文献1】IETF Packet Sampling (psamp) Working Group,[平成22年2月10日検索]、インターネット<URL: http://www.ietf.org/html.charters/psamp-charter.html>.
【非特許文献2】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.
【非特許文献3】C. Estan and G. Varghese, "New Directions in Traffic Measurement and Accounting," ACM SIGCOMM2002, Aug. 2002.
【非特許文献4】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.
【非特許文献5】D. Brauckhoff, B. Tellenbach, A. Wagner, M. May, and A. Lakhina, "Impact of packet sampling on anomaly detection metrics," ACM SIGCOMM IMC, 2006.
【非特許文献6】K. Keys, D. Moore, C. Estan, "A Robust System for Accurate Real-time Summaries of Internet Traffic," SIGMETRICS2005.
【発明の概要】
【発明が解決しようとする課題】
【0016】
解決しようとする問題点は、従来のパケットサンプリング技術では、フローサイズが大きいフロー(長大フロー)の統計を精度よく得ることができるが、ポートスキャン等の異常トラヒックが生成するフローサイズが小さいフロー(小フロー)がサンプルされにくい点と、また、従来のフローサンプリング技術では、小フローをサンプルすることが可能であるが、特定の条件にマッチしたフローのみをサンプルするため、その条件にマッチしないフローは、サンプルされない状態が継続してしまう点である。
【0017】
本発明の目的は、これら従来技術の課題を解決し、長大フローと小フローのいずれもサンプリング対象とし、ネットワーク全体を流れるフローの監視を効率的に行うことを可能とすることである。
【課題を解決するための手段】
【0018】
上記目的を達成するため、本発明では、パケット毎に、少なくとも当該パケットの送信元IPと送信先IPアドレスを含む当該フローを特定する情報(フローキー)、例えば、当該パケットの送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号の5つの組からなるフローキーに対するハッシュ値を求め、求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングすることで、小フローを大量生成するトラヒックの検出を可能とすると共に、予め定められた一定周期Tで、サンプル区間を変更することにより、特定のフローだけがサンプルされ続ける問題を回避する。
【発明の効果】
【0019】
本発明によれば、パケット毎にフローキーに対するハッシュ値をサンプリングすることで、小フローを大量生成する異常トラヒックの検出が可能となると共に、サンプル区間を周期的に変更させることで、あるいはランダムサンプリングを併用することで、特定された一部のフローだけに偏ったサンプリングを行うことなく、ネットワーク全体を流れるフローの全体的な監視が可能となる。
【図面の簡単な説明】
【0020】
【図1】本発明に係るパケットサンプリング装置を設けたネットワークの構成例を示すブロック図である。
【図2】図1におけるパケットサンプリング装置の構成例を示すブロック図である。
【図3】図1におけるパケットサンプリング装置の本発明に係る処理動作例を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、図を用いて本発明を実施するための形態例を説明する。図1において、1は本発明に係るパケットサンプリング装置、2,3はIPネットワークを構成する通信ノード(図中「ノード」と記載)である。
【0022】
パケットサンプリング装置1は、CPU(Central Processing Unit)や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してCD−ROM等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みCPUで処理することにより、各処理部の機能を実行する。
【0023】
すなわち、図2に示すように、パケットサンプリング装置1は、プログラムされたコンピュータ処理を実行する手段として、パケットカウント部1a、ハッシュ値計算部1b、サンプリング部1c、パケット蓄積部1d、特定フロー管理部1e、サンプル区間決定部1fを具備する。
【0024】
このようなコンピュータ構成により、本例のパケットサンプリング装置1は、パケット毎に、少なくとも当該パケットの送信元IPと送信先IPアドレスを含む当該フローを特定する情報(フローキー)に対するハッシュ値を求め、求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングすると共に、予め定められた一定周期Tで、サンプル区間を変更することにより、小フローを大量生成するトラヒックの検出を可能とすると共に、特定のフローだけがサンプルされ続ける問題を回避する。
【0025】
以下、このようなパケットサンプリング装置1によるサンプリング処理動作の詳細を、第1〜第5の実施例として説明する。尚、本例では、フローキーとして、パケットの送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号の5つからなる組を用いる。
【0026】
<第1の実施例>
【0027】
図2に示すコンピュータ構成により、本例のパケットサンプリング装置1は、まず、パケットカウント部1aにおいて、パケットが到着するたびに、図示しないカウンタCをカウントアップする。
【0028】
そして、ハッシュ値計算部1bにおいて、到着したパケットx毎に、当該パケットの「発信元IPアドレス(srcIP)、着信先IPアドレス(dstIP)、発信元ポート番号(srcPort)、着信先ポート番号(dstPort)、プロトコル(Protocol)」からなるフローキーxを読み出し、読み出したフローキーxをハッシュ関数に入力する。尚、ハッシュ関数は、サイズbの範囲内でハッシュ値を返すとする。
【0029】
そして、ハッシュ値計算部1bは、このハッシュ関数で返されたハッシュ値h(x)をサイズbで割った値「h(x)/b」を計算し、計算した値と当該パケットをサンプリング部1cに転送する。
【0030】
サンプリング部1cは、ハッシュ値計算部1bが計算した値が、予めサンプル区間決定部1fにおいて定められた範囲(サンプル区間)内のものであるか否かを判別し、サンプル区間内でなければ、単に、当該パケットを後段ノードに転送し、サンプル区間内であれば、当該パケットを後段ノードに転送すると共に、当該パケットをサンプリングしてパケット蓄積部1dに転送する。
【0031】
パケット蓄積部1dは、当該パケットを図示していない記憶装置に格納する。
【0032】
このようにして、フローキーのハッシュ値に基づくパケットのサンプリング(フローサンプリング)を実施し、サンプルされたパケットを収集することで、小フローを大量生成するトラヒックの検出が可能となる。
【0033】
しかし、ここまでの技術では、上述の非特許文献6に記載の技術と同様であり、特定のフローだけがサンプルされ続ける問題がある。
【0034】
この問題に対処するために、本例のパケットサンプリング装置1では、サンプル区間決定部1fにおいて定めるサンプル区間を、図示しないタイマ機能で計測される予め定められた一定周期T毎に変更する。
【0035】
本例では、サンプル区間決定部1fは、サンプル区間を[t,t+W]として決定するものであり、ここで、tとWは「0<=t<=1、0<=t+W<=1,W>0」を満たすパラメタである。尚、tは後述するように一定周期T毎に更新していくパラメタであり、初期値を0とする。また、Wは、予め定めた目標パケットサンプリングレートpを用いてW=pと設定する。
【0036】
そして、サンプル区間決定部1fは、一定周期T経過後に、tの値を「t←t+δ」と更新する。δは予め定めるパラメタであり、「0<δ<=W」とする。
【0037】
ただし、「t+W」が1を越える場合には、サンプル区間決定部1fは、サンプル区間を「[t,1]∨[0,t+W-1]」とし、その次の更新時には、「t←t+W-1+δ」と更新し、サンプル区間を[t,t+W]に更新する。
【0038】
このように、サンプル区間決定部1fにおいて、サンプリング部1cでサンプルすべきハッシュ値の範囲、すなわちサンプル区間を、一定周期T毎に変更することにより、特定のフローだけがサンプルされ続けるとの問題を回避することができる。
【0039】
次に、図2に示すコンピュータ構成からなる本例のパケットサンプリング装置1によるサンプリング処理動作の第2の実施例について説明する。
【0040】
<第2の実施例>
【0041】
本例では、一定周期T毎に、上述の第1の実施例におけるパケットサンプリングを実施すると共に、その周期Tの間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h(x)を含むように、パケットサンプル区間を次周期で変更・設定する。
【0042】
すなわち、図2に示すコンピュータ構成のパケットサンプリング装置1は、特定フロー管理部1eにおいて、サンプリング部1cがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部1fに通知する。
【0043】
このようにして、特定フロー管理部1eから、閾値を超えたフローの通知があった場合には、サンプル区間決定部1fにおいて、そのフローIDに対するハッシュ値を調べ、現時点でのサンプル区間にそのハッシュ値が含まれるかをチェック(判別)し、もし含まれない場合は、そのハッシュ値を含むように、サンプル区間を変更する。
【0044】
例えば、特定フローがM本存在(M>1)する場合には、サンプル区間を特定フローのキー「x_i(i=1,…,M)」のハッシュ値を含むように、サンプル区間を複数に分けて設定する。
【0045】
具体的には、現在のサンプル区間が[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]}に変更する。
【0046】
このようにして、特定フローに関しては、継続的に監視すべきフローとして、サンプルされ続けるようにする。
【0047】
このように、上述の第1の実施例におけるパケットサンプリングと共に、特定のフローに関しては、継続的に監視する技術の他の技術を、第3〜第5の実施例として説明する。
【0048】
<第3の実施例>
【0049】
本例は、一定周期T毎に、上述の第1の実施例におけるパケットサンプリングを実施すると共に、予め定められた周期の間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h(x)を含むように、パケットサンプル区間を次周期で変更・設定するものであり、図2のパケットサンプリング装置1は、サンプリング部1cにおいて、以下の処理を行う。
【0050】
サンプリング部1cは、上述の第1の実施例におけるハッシュ値に基づくサンプリングと並行して、パケットカウント部1aがカウントアップしているカウンタCの値が予め定められた値Nの倍数となる度に、当該パケットを、後段のノードに転送すると共に、サンプリングしてパケット蓄積部1dと特定フロー管理部1eに転送する。
【0051】
以下、上述の第2の実施例と同様に、特定フロー管理部1eにおいて、サンプリング部1cがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部1fに通知し、サンプル区間決定部1fにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【0052】
<第4の実施例>
【0053】
本例は、一定周期T毎に、上述の第1の実施例におけるパケットサンプリングを実施すると共に、予め定められた周期の間にサンプルされたフローについて、予め定めた特定条件を満たすフローが存在した場合には、当該フローキーxに対するハッシュ値h(x)を含むように、パケットサンプル区間を次周期で変更・設定するものであり、図2のパケットサンプリング装置1は、サンプリング部1cにおいて、以下の処理を行う。
【0054】
サンプリング部1cは、上述の第1の実施例におけるハッシュ値に基づくサンプリングと並行して、パケット到着毎に0から1の範囲で乱数を発生させ、その結果が、予め定められた値Nの逆数(1/N)以下であれば、当該パケットを後段ノードと共に、パケット蓄積部1dと特定フロー管理部1eにも転送する。
【0055】
以下、上述の第2,第3の実施例と同様に、特定フロー管理部1eにおいて、サンプリング部1cがサンプリングしたパケットに関して、当該フローIDに対応付けてパケット数をカウントアップし、周期T毎に、カウントアップしたパケット数が予め定めた閾値を超えたフローを特定し、当該特定フローのフローIDをサンプル区間決定部1fに通知し、サンプル区間決定部1fにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【0056】
<第5の実施例>
【0057】
本例では、サンプルパケット数が閾値を超えたフローを特定すべきフローとする代わりに、品質が劣化しているフローを特定すべきフローとして、サンプリング区間を設定するものである。
【0058】
具体的には、パケット蓄積部1dにおいて蓄積されたパケットを用いて、各フローの品質状態を表す値を、上述の非特許文献6や、後述する公知文献1(川原, 石橋, 森, 上山, 長谷川, “フローサンプリングを用いたフロー品質推定法,” 信学会ソサイエティ大会, 2009年9月.)および公知文献2(小林, 石橋, 西田, “選択的sFlow による大規模VoIP トラヒック品質測定手法の提案,” 信学技報, vol. 107, no. 311, NS2007-95, pp. 7-12, 2007 年11 月.)等に記載の技術を用いて取得し、取得した値が閾値を越えるなどの品質劣化条件を満たすかどうかをチェック(判定)し、品質劣化状態のフローを検出すれば、当該フローIDをサンプル区間決定部1fに通知する。
【0059】
以下、上述の第2〜第4の実施例と同様に、サンプル区間決定部1fにおいて、そのフローIDに対するハッシュ値を含むように、サンプル区間を変更する。
【0060】
尚、上述の公知文献1,2においては、サンプル情報からフローの品質を把握する技術として、フローの往復伝播遅延時間やパケット損失率を推定する技術が記載されている。
【0061】
この技術では、サンプルされたパケットの中から、着目するTCPフローのSYNパケットに対するSYNACK、およびSYNACK応答に対するACKを抽出し、各パケットの観測時刻情報を用いて計算することで、SYN-SYNACK応答時間およびSYNACK-ACK応答時間を計算し、それらの和を往復伝播遅延時間として計算する。
【0062】
また、上述の公知文献2では、VoIPトラヒックを抽出し、セッション単位にRTPパケットの到着間隔を分析することで、VoIPの品質を推定する。具体的には、到着間隔の分散と音声品質に相関があることを利用している。
【0063】
また、TCPのスループットを品質として品質劣化を検出する技術としては、例えば公知文献3(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)で推定する。
【0064】
これらの技術を用いることで、各フローの品質を把握しつつ、次周期でもサンプルすべきフローを特定する。すなわち、サンプルパケット情報から推定された品質が予め定められた目標値よりも劣化しているフローを、特定フローとして、当該フローに対するサンプリングを継続させる。
【0065】
次に、図3を用いて、上述の図2におけるパケットサンプリング装置の処理動作を説明する。
【0066】
まず、パケットカウント部1aにおいて、パケットが到着するたびに(ステップS301)、図示しないカウンタCをカウントアップする(ステップS302)。
【0067】
次に、ハッシュ値計算部1bにおいて、到着したパケットx毎に、当該パケットの「発信元IPアドレス(srcIP)、着信先IPアドレス(dstIP)、発信元ポート番号(srcPort)、着信先ポート番号(dstPort)、プロトコル(Protocol)」からなるフローキーxを読み出し、読み出したフローキーxをハッシュ関数に入力し、このハッシュ関数で返されるハッシュ値h(x)をサイズbで割った値「h(x)/b」を計算し、計算した値と当該パケットをサンプリング部1cに転送する(ステップS303)。
【0068】
サンプリング部1cは、ハッシュ値計算部1bが計算した値が、予めサンプル区間決定部1fにおいて定められた範囲(サンプル区間)内のものであるか否かを判別し(ステップS304)、サンプル区間内でなければ、単に、当該パケットを後段ノードに転送し、サンプル区間内であれば、当該パケットを後段ノードに転送すると共に、当該パケットをサンプリングしてパケット蓄積部1dに転送する(ステップS306)。尚、パケット蓄積部1dにおいて当該パケットを記憶装置に格納する。
【0069】
また、サンプリング部1cにおいては、上記ハッシュ値に基づくサンプリングと並行して、パケットカウント部1aがカウントアップしているカウンタCの値が予め定められた値Nの倍数となる度に(ステップS305)、当該パケットをサンプリングしてパケット蓄積部1dと特定フロー管理部1eに転送する(ステップS306)と共に、特定フロー管理部1eにおいて、フロー毎にサンプリングしたパケット数をカウントする(ステップS307)。尚、このカウント値が予め定められた閾値を越えていれば、当該フローのフローIDをサンプル区間決定部1fに通知して、当該フローがハッシュ値に基づくサンプリングでもサンプリングされるように、サンプル区間を変更させる。
【0070】
以上、図1〜図3を用いて説明したように、本例のパケットサンプリング装置1は、プログラムされたコンピュータ処理を実行する機能として、ハッシュ値計算部1bとサンプリング部1cおよびサンプル区間決定1fを具備し、ハッシュ値計算部1bにおいて、到着したパケット毎に、当該パケットの送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号の5つの組からなるフローキーに対するハッシュ値を求め、サンプリング部1cにおいて、ハッシュ値計算部1bが求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングし、サンプル区間決定部1fにおいては、予め定められた一定周期で、サンプル区間を変更する。
【0071】
特に、ハッシュ値計算部1bは、フローキーをハッシュ関数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)の中であれば当該パケットをサンプリングし、サンプリング部1cは、予め定めた一定周期Tの間、サンプル区間[t,t+W]でのパケットサンプリングを行い、サンプル区間決定部1fは、一定周期T経過後に、tの値を「t←t+δ」(δは予め定めるパラメタであり、0<δ<=W)と更新し、この更新に伴い、「t+W」が1を越える場合には、サンプル区間を「[t,1]∨[0,t+W-1]」とし、次の更新時に、tの値を「t←t+W-1+δ」と更新して、サンプル区間を[t,t+W]に更新する。
【0072】
このように、フローサンプリングを行うことで、小フローを大量生成するトラヒックの検出が可能となると共に、サンプルすべきハッシュ値の範囲(サンプル区間)を、一定周期毎に変更することで、特定のフローだけがサンプルされ続ける問題を回避することができる。
【0073】
また、プログラムされたコンピュータ処理を実行する機能として、特定フロー管理部1eを具備し、特定フロー管理部1eにおいては、サンプリング部1cによる一定周期T毎のパケットサンプリングと並行して、このサンプリング部1cにより一定周期Tの間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定し、サンプル区間決定部1fは、特定フロー管理部1eが特定したフローのフローキーに対するハッシュ値を含むように、サンプル区間を次周期で設定する。
【0074】
例えば、特定フロー管理部1eが特定したフローがM個存在(M>1)する場合には、サンプル区間決定部1fは、サンプル区間を特定フローのフローキーx_i(i=1,…,M)のハッシュ値を含むように、サンプル区間を複数に分けて設定する。
【0075】
また、特定フロー管理部1eは、サンプリング部1cがサンプリングしたパケット数が予め定めた閾値を越えたフローを特定フローとして特定する。
【0076】
このようにすることで、継続的に監視すべきフローについてはサンプルされ続けるようにしている。
【0077】
また、プログラムされたコンピュータ処理を実行する機能として、パケットカウント部1aを具備し、このパケットカウント部1aにおいては、パケットが到着する度に、カウントアップし、サンプリング部1cは、パケットカウント部1aのカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを特定フロー管理部1eに通知し、特定フロー管理部1eは、サンプリング部1cから通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを特定フローとして特定する。
【0078】
このように、パケットをN個に1個ランダムにサンプルする技術を併用することにより、多くのパケットを送出しているフローをサンプルし易くなるため、そのようなネットワークへのインパクトが大きいフローを特定することができる。
【0079】
また、特定フロー管理部1eにおいては、サンプリング部1cがサンプリングしたパケットの品質を測定し、測定した品質が予め定められたた目標値よりも劣化しているフローを特定フローとして特定する。これにより、品質を把握しつつ、次周期でもサンプルすべきフローを特定することができる。
【0080】
このように、本例のパケットサンプリング装置1では、パケット毎にフローキーに対するハッシュ値をサンプリングすることで、小フローを大量生成する異常トラヒックの検出が可能となると共に、サンプル区間を周期的に変更させることで、特定された一部のフローだけに偏ったサンプリングを行うことなく、ネットワーク全体を流れるフローの全体的な監視が可能となる。
【0081】
尚、本発明は、図1〜図3を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、第1〜第5の実施例を個別の技術として説明したが、各実施例の技術を任意に組み合わせた構成としても良い。例えば、第3の実施例におけるフローを特定する技術と第4の実施例におけるフローを特定する技術を共に実装した構成としても良い。
【0082】
また、本例では、図1に示すように、パケットサンプリング装置1をノード2,3間に設け、ノード2,3間におけるリンク上のパケットをサンプリングする構成として説明したが、パケットサンプリング装置1が、例えばノード2を介してリンク上に転送されるパケットをキャプチャする構成としても良い。
【0083】
また、本例では、フローキーとして、パケットの送信元IPアドレス(srcIP),送信先IPアドレス(dstIP),送信元ポート番号(srcPort),送信先ポート番号(dstPort),プロトコル番号の5つからなる組を用いているが、送信元IPアドレス(srcIP)と送信先IPアドレス(dstIP)の2つからなる組、あるいは、送信元IPアドレス(srcIP)と送信先IPアドレス(dstIP)およびプロトコル番号の3つからなる組など、少なくとも送信元IPアドレス(srcIP)と送信先IPアドレス(dstIP)を含む情報を、当該フローを特定するフローキーとして用いても良い。
【0084】
また、本例のコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、記録媒体としてCDを例示しているが、DVDやFD等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【0085】
1:パケットサンプリング装置、1a:パケットカウント部、1b:ハッシュ値計算部、1c:サンプリング部、1d:パケット蓄積部、1e:特定フロー管理部、1f:サンプル区間決定部、2,3:通信ノード(「ノード」)。

【特許請求の範囲】
【請求項1】
プログラムされたコンピュータ処理により、IPネットワークにおけるリンクを経由するパケットをサンプリングするパケットサンプリング装置であって、
到着したパケット毎に、少なくとも当該パケットの送信元IPと送信先IPアドレスを含む当該フローを特定する情報(フローキー)に対するハッシュ値を求めるハッシュ値計算手段と、
該ハッシュ値計算手段が求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングするサンプリング手段と、
予め定められた一定周期で、上記サンプル区間を変更するサンプル区間決定手段と
を有することを特徴とするパケットサンプリング装置。
【請求項2】
請求項1に記載のパケットサンプリング装置であって、
上記ハッシュ値計算手段は、
上記フローキーをハッシュ関数に入力して、配列サイズの範囲内でハッシュ値を取得し、取得したハッシュ関数の値を配列サイズで割った値を計算し、
上記サンプリング手段は、
予め定めた一定周期の間、上記ハッシュ値計算手段が計算した値が、上記サンプル区間の中であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、
上記一定周期の経過後に、サンプル区間[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]に更新する
ことを特徴とするパケットサンプリング装置。
【請求項3】
請求項1もしくは請求項2のいずれかに記載のパケットサンプリング装置であって、
上記サンプリング手段による上記一定周期毎のパケットサンプリングと並行して、
該サンプリング手段により上記一定周期の間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定する特定フロー管理手段を具備し、
上記サンプル区間決定手段は、
上記特定フロー管理手段が特定したフローのフローキーに対するハッシュ値を含むように、上記サンプル区間を次周期で設定する
ことを特徴とするパケットフローサンプリング装置。
【請求項4】
請求項3に記載のパケットサンプリング装置であって、
上記特定フロー管理手段が特定したフローが複数存在する場合、
上記サンプル区間決定手段は、上記サンプル区間を上記複数の特定フローのフローキーのハッシュ値を含むように、サンプル区間を複数に分けて設定する
ことを特徴とするパケットサンプリング装置。
【請求項5】
請求項3もしくは請求項4のいずれかに記載のパケットサンプリング装置であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケット数が予め定めた閾値を越えたフローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング装置。
【請求項6】
請求項3から請求項5のいずれかに記載のパケットサンプリング装置であって、
パケットが到着する度に、カウントアップするパケットカウント手段を具備し、
上記サンプリング手段は、
上記パケットカウント手段のカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを上記特定フロー管理手段に通知し、
該特定フロー管理手段は、
上記サンプリング手段から通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング装置。
【請求項7】
請求項3から請求項6のいずれかに記載のパケットサンプリング装置であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケットの品質を測定する手段を具備し、
該測定した品質が予め定められたた目標値よりも劣化しているフローを上記特定フローとして特定することを特徴とするパケットサンプリング装置。
【請求項8】
請求項1から請求項7のいずれかに記載のパケットサンプリング装置であって、
上記フローキーは、当該パケットの送信元IPアドレスと、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の5つの組からなる
ことを特徴とするパケットサンプリング装置。
【請求項9】
コンピュータを、請求項1から請求項8のいずれかに記載のパケットサンプリング装置における各手段として機能させるためのプログラム。
【請求項10】
コンピュータ装置により、IPネットワークにおけるリンクを経由するパケットをサンプリングするパケットサンプリング方法であって、
コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、ハッシュ値計算手段とサンプリング手段およびサンプル区間決定手段を具備し、
上記ハッシュ値計算手段は、到着したパケット毎に、少なくとも当該パケットの送信元IPと送信先IPアドレスを含む当該フローを特定する情報(フローキー)に対するハッシュ値を求め、
上記サンプリング手段は、上記ハッシュ値計算手段が求めたハッシュ値が予め定められた範囲(サンプル区間)であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、予め定められた一定周期で、上記サンプル区間を変更する
ことを特徴とするパケットサンプリング方法。
【請求項11】
請求項10に記載のパケットサンプリング方法であって、
上記ハッシュ値計算手段は、
上記フローキーをハッシュ関数に入力して、配列サイズの範囲内でハッシュ値を取得し、取得したハッシュ関数の値を配列サイズで割った値を計算し、
上記サンプリング手段は、
予め定めた一定周期の間、上記ハッシュ値計算手段が計算した値が、上記サンプル区間の中であれば当該パケットをサンプリングし、
上記サンプル区間決定手段は、
上記一定周期の経過後に、サンプル区間[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]に更新する
ことを特徴とするパケットサンプリング方法。
【請求項12】
請求項10もしくは請求項11のいずれかに記載のパケットサンプリング方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、特定フロー管理手段を具備し、
該特定フロー管理手段は、
上記サンプリング手段による上記一定周期毎のパケットサンプリングと並行して、
該サンプリング手段により上記一定周期の間にサンプルされたフローの内で、予め定めた条件を満たすフローを特定し、
上記サンプル区間決定手段は、
上記特定フロー管理手段が特定したフローのフローキーに対するハッシュ値を含むように、上記サンプル区間を次周期で設定する
ことを特徴とするパケットフローサンプリング方法。
【請求項13】
請求項12に記載のパケットサンプリング方法であって、
上記特定フロー管理手段が特定したフローが複数存在する場合、
上記サンプル区間決定手段は、上記サンプル区間を上記複数の特定フローのフローキーのハッシュ値を含むように、サンプル区間を複数に分けて設定する
ことを特徴とするパケットサンプリング方法。
【請求項14】
請求項12もしくは請求項13のいずれかに記載のパケットサンプリング方法であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケット数が予め定めた閾値を越えたフローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング方法。
【請求項15】
請求項12から請求項14のいずれかに記載のパケットサンプリング方法であって、
上記コンピュータ装置は、プログラムされたコンピュータ処理を実行する手段として、パケットカウント手段を具備し、
該パケットカウント手段は、
パケットが到着する度に、カウントアップし、
上記サンプリング手段は、
上記パケットカウント手段のカウントアップ値が予め定められた値になる度に、当該パケットのフローキーを上記特定フロー管理手段に通知し、
該特定フロー管理手段は、
上記サンプリング手段から通知されたフローキーのパケット数が、予め定めた閾値を越えると、当該フローを上記特定フローとして特定する
ことを特徴とするパケットサンプリング方法。
【請求項16】
請求項12から請求項15のいずれかに記載のパケットサンプリング方法であって、
上記特定フロー管理手段は、
上記サンプリング手段がサンプリングしたパケットの品質を測定し、
該測定した品質が予め定められたた目標値よりも劣化しているフローを上記特定フローとして特定することを特徴とするパケットサンプリング方法。
【請求項17】
請求項10から請求項16のいずれかに記載のパケットサンプリング方法であって、
上記フローキーは、当該パケットの送信元IPアドレスと、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の5つの組からなる
ことを特徴とするパケットサンプリング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate