(第1の実施形態)
本発明は、受信したパケットのヘッダ情報に基づいて、パケット数、異なり数、及び、返信数等を含むトラフィックの統計情報を一連の処理によって算出し、算出された統計情報を、例えば、一つのテーブルにおいて、関連させて保持することを特徴とする。また、ヘッダ情報に含まれる項目の組合せによって、パケット数、異なり数、及び、返信数を算出することによって、多様な観点による統計情報を生成する。
本実施形態における異なり数とは、パケットのヘッダ情報に含まれる項目のうち、特定の組合せ(以下、集約フローと記載)を共通して含む複数のパケットが、ヘッダ情報に含まれるその他の項目において相互に異なる場合の、異なるパケットの種類数を示す。ここで、パケットに共通して含まれる特定の組合せ以外の項目を、異なり数の測定箇所と記載する。
例えば、宛先IPアドレスがAであり宛先ポート番号がBである項目をヘッダ情報に含む複数のパケットに、送信元IPアドレスがCであるパケットと、送信元IPアドレスがDであるパケットとがあるとする。この場合、宛先IPアドレスがAであり宛先ポート番号がBであるフローの、送信元IPアドレスにおける異なり数は、CとDとの種類数である、2である。この例における異なり数の測定箇所は、送信元IPアドレスである。
そして、さらにこの例において、宛先IPアドレスがAであり、宛先ポート番号がBであり、送信元IPアドレスがEであるパケットが生成されたとする。この場合、宛先IPアドレスがAであり宛先ポート番号がBであるフローの、送信元IPアドレスにおける異なり数は、3に増加する。すなわち、異なり数の測定箇所である送信元IPアドレスが、新たな値を示すパケットが生成される場合、宛先IPアドレスがAであり宛先ポート番号がBであるフローの異なり数は増加する。
本実施形態は、前述のような算出方法を用いて、異なり数を算出するものである。
本発明の第1の実施形態を図1から図8を用いて説明する。
図1は、本発明の第1の実施形態の統計情報収集システムを示すブロック図である。
第1の実施形態の統計情報収集システムは、複数のルータ101、複数のサーバ102、複数の端末103、及び、少なくとも一つのコレクタ装置104を備える。図1において、ルータ101は、ルータA101、ルータB101、及びルータC101であり、サーバ102は、サーバA102、及びサーバB102であり、端末103は、端末A103、端末B103、及び端末C103である。また、図1のコレクタ装置104は、コレクタ装置A104である。
統計情報収集システムに備わるこれらの装置は、ネットワークを介して相互に接続される。ネットワークは、例えば、ISP(Internet Service Provider)によって提供される。また、ネットワークは、例えば、企業内ネットワークであってもよい。
図1において、端末A103、端末B103、及び端末C103は、ルータA101と接続される。サーバA102は、ルータB101と接続され、サーバB102は、ルータC101と接続される。コレクタ装置A104は、ルータA101と接続される。また、ルータA101、ルータB101、及びルータC101は、各々接続される。
ルータ101は、ネットワーク内で通信されるパケットをそのパケットの宛先に転送する装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。また、ルータ101は、通信されるパケットの統計情報を収集することによって、パケットによるトラフィックを分析し、収集された統計情報をコレクタ装置104に送信する。
サーバ102は、端末103からの要求を含むパケットを受信し、送信された要求に従って端末103にパケットを送信する。サーバ102は、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。
端末103は、ユーザ等が用いる装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。ユーザ等は、端末103を介して、情報を送信する旨の要求を含むパケットを、サーバ102へ送信する。端末103は、アプリケーションを実行するためのプログラムを保持してもよく、ユーザ等は、アプリケーションを用いて、情報の要求を送信してもよい。
コレクタ装置104は、ルータ101から送信される統計情報を収集する装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。図1のコレクタ装置A104はルータA101に接続されるが、本実施形態のコレクタ装置104は、いずれのルータ101に接続されてもよい。
また、コレクタ装置104に直接接続されないルータ101(ルータB101及びルータC101に相当)は、コレクタ装置104に接続されるルータ101(ルータA101に相当)を介して、統計情報をコレクタ装置104に送信してもよい。
図2は、本発明の第1の実施形態のルータ101の機能ブロックを示すブロック図である。
ルータ101は、受信パケット処理部201、送信パケット処理部202、検索処理部203、トラフィック統計処理部204、ルーティングテーブル211、統計情報テーブル212、及び制御部205を備える。
管理端末206は、ルータ101の制御部205に接続される。管理者は、管理端末206を介して受信パケット処理部201、送信パケット処理部202、検索処理部203、及びトラフィック統計処理部204に設定される各種パラメータを変更できる。
なお、管理端末206は、図1の統計情報収集システムのネットワークを介して各ルータ101に接続されてもよい。また、図1の統計情報収集システムとは別のネットワークによって、各ルータ101に接続されてもよい。
受信パケット処理部201は、入力ポートを介してパケットを受信する。受信パケット処理部201は、受信したパケットをバッファに蓄積し、蓄積されたパケットのヘッダ情報を検索処理部203、及びトラフィック統計処理部204に送信する。
検索処理部203は、受信パケット処理部201からヘッダ情報を受信した場合、ルーティングテーブル211を検索し、検索結果を受信パケット処理部201に送信する。ルーティングテーブル211は、宛先IPアドレスと宛先IPアドレスに対応する出力ポートとを保持する。
受信パケット処理部201は、検索処理部203から検索結果を受信した場合、バッファに蓄積されていたパケットと検索結果とを送信パケット処理部202へ送信する。送信パケット処理部202は、受信パケット処理部201からパケットと検索結果とを受信した場合、検索結果が示す出力ポートを介して、パケットを宛先IPアドレスに向けてネットワークへ送信する。
トラフィック統計処理部204は、受信パケット処理部201からパケットのヘッダ情報を受信した場合、受信したヘッダ情報に基づいて、トラフィックの統計情報を生成する。統計情報テーブル212は、トラフィック統計処理部204によって収集された、ヘッダ情報が示すフローを特定する条件、及び、ヘッダ情報が示すフロー毎の統計情報を保持する。
トラフィック統計処理部204については、図3において詳細を説明する。
図3は、本発明の第1の実施形態のトラフィック統計処理部204の機能ブロックを示すブロック図である。
トラフィック統計処理部204は、ヘッダ情報蓄積部301、統計テーブル管理部302、フロー分析部303、及び統計情報パケット生成部304を備える。ヘッダ情報蓄積部301、統計テーブル管理部302、フロー分析部303、及び統計情報パケット生成部304は、各々の処理を実行するための各種パラメータを、制御部205を介して管理者等によってあらかじめ設定される。
ヘッダ情報蓄積部301は、受信パケット処理部201からヘッダ情報を受信し、受信したヘッダ情報を統計テーブル管理部302に送信する。
統計テーブル管理部302は、統計情報テーブル212を保持し、あらかじめ保持された複数の集約フローについて統計情報を生成及び収集する。集約フローは、管理者によってあらかじめ統計情報テーブル212に格納される。
本実施形態における集約フローは、5−tupleの項目(送信元IPアドレス(以下、SIP)、宛先IPアドレス(以下、DIP)、送信元ポート番号(以下、SPT)、宛先ポート番号(以下、DPT)、及びプロトコル番号(以下、PRT))から任意に選択された組み合わせが一致するパケット群として定義される。
例えば、本実施形態の集約フローには、集約フロー1(SIP、PRT)、集約フロー2(DIP、PRT)、及び、集約フロー3(SIP、DIP、PRT)などが定義される。ヘッダ情報の5−tupleを、集約フローの組合せの項目とする場合、集約フローは、最大31個(2^5−1)まで定義される。
統計テーブル管理部302は、さらに、更新結果テーブル310を保持し、各集約フローに関する統計情報の更新結果を更新結果テーブル310に格納する。
統計テーブル管理部302は、ヘッダ情報蓄積部301から受信したヘッダ情報について、集約フロー毎に、統計情報を格納するエントリを統計情報テーブル212から検索する。そして、統計テーブル管理部302は、検索されたエントリの統計情報を更新する。
各集約フローの統計情報は、統計情報テーブル212に格納される。また、集約フローの統計情報が条件を満たした場合、統計テーブル管理部302は、フロー分析部303へ、条件を満たした集約フローの統計情報を送信する。
フロー分析部303は、送信された集約フローがスキャンであるか否かを判定し、スキャンである場合、統計テーブル管理部302から送信された集約フローを統計情報パケット生成部304に送信する。本実施形態におけるスキャンとは、異常がある状態又は異常があると疑われる状態であることを示す。
統計テーブル管理部302からフロー分析部303へ送信される統計情報の一例を図4Aに示す。なお、統計情報テーブル212については図5において、更新結果テーブル310については図6において、統計情報テーブル212の更新方法については図7において、各々後述する。
ルータ101の受信パケット処理部201、送信パケット処理部202、検索処理部203、トラフィック統計処理部204、及び制御部205は、ルータ101が有するプロセッサがプログラムを実行することによって実装されてもよい。また、前述のルータ101の各処理部によって実行される複数の処理を、プロセッサが複数の処理部として実行してもよい。
また、ルーティングテーブル211、及び、統計情報テーブル212は、ルータ101が有する不揮発性メモリ等の記憶装置に格納されてもよい。
図4Aは、本発明の第1の実施形態の集約フローの統計情報を示す説明図である。
図4Aに示す統計情報は、項目421及び統計情報431を含む。項目421は、集約フローを含み、統計情報431は、パケット数、異なり数及び返信数等の統計情報を含む。
図4Aに示す統計情報は、SIPが"A"であり、DPTが"80"であり、PRTが"6"である集約フローのパケット数が、"1000"であることを示す。また、図4Aが示す集約フローのパケットは、1000通りある宛先のうち、返信があった宛先が三つであることを示す。
図4Bは、本発明の第1の実施形態の集約フローを分析する処理を示すフローチャートである。
フロー分析部303は、統計テーブル管理部302から受信した集約フローの統計情報から、トラフィックの帯域と種別とを判定する。フロー分析部303は、トラフィックの分析処理として、例えば図4Bに示す処理のように、スキャンとなるトラフィックの帯域と種別とを判定する。
フロー分析部303は、図4Aに示す統計情報を統計テーブル管理部302から受信した場合(ステップ700)、宛先の異なり数が所定の閾値よりも大きいか否かを判定する(ステップ701)。宛先(IP_b)の異なり数が所定の閾値よりも大きい場合、宛先からの返信数が所定の閾値よりも少ないか否かを判定する(ステップ702)。
宛先からの返信数が所定の閾値よりも少ない場合、ステップ700において受信した集約フローは、正常な通信がされていない可能性がある。このため、フロー分析部303は、ステップ700において受信した集約フローを、スキャンであると判定する(ステップ703)。
ステップ701において宛先の異なり数が所定の閾値以下である場合、ステップ702において宛先からの返信数が所定の閾値以上である場合、及び、ステップ703の後、フロー分析部303は、分析処理を終了する(ステップ704)。
フロー分析部303は、統計テーブル管理部302から受信した集約フローの統計情報(例えば、図4A)を用いて、集約フローがスキャンであるか否かを判定する。これによってフロー分析部303は、例えば、多くのサーバ102へパケットを送信しているが返信が少ない、という集約フローを、統計情報から抽出することができ、この結果、フロー分析部303の分析精度が向上する。
従来技術において、パケット数、異なり数、及び、返信数は、相互に関連しない別々の処理によって算出されており、統計情報として関連してフロー分析部303に送信されることがなかった。このため、フロー分析部303が、返信の有無を取得するためには、集約フローを用いて統計情報テーブル212を再度検索する必要があり、不必要なメモリアクセスによる負荷がかかっていた。さらに、該当する集約フローが測定されていた期間中に現れた返信数を正確に把握することは困難であった。
フロー分析部303による分析処理の結果及び集約フローの統計情報は、フロー分析部303から統計情報パケット生成部304に送信される。また、フロー分析部303は、集約フローをスキャンであると判定した場合、その判定結果、集約フローの項目、及び集約フローの統計情報を制御部205に送信する。これは、集約フローがスキャンであると判定されたことを、管理端末206に送信するためである。
統計情報パケット生成部304は、フロー分析部303から受信した集約フローの判定結果及び統計情報を送信するためのフォーマットに変換し、変換されたフォーマットを、ルータ101の受信パケット処理部201に送信する。なお、統計情報の送信先となるコレクタ装置104のアドレスは、管理者によって制御部205を介して、統計情報パケット生成部304に事前に格納される。
図5Aは、本発明の第1の実施形態の統計情報テーブル212を示す説明図である。
統計情報テーブル212は、集約フローの項目に基づいた複数のテーブルを保持する。そして、統計情報テーブル212が複数のテーブルに各集約フローに対応するトラフィック数、すなわち、パケット数等の情報を保持することによって、統計テーブル管理部302は、統計情報を収集できる。
図5Aの統計情報テーブル212は、1IPテーブル401、2IPテーブル402、2IP_1PTbテーブル403、及び、Flowテーブル404を保持する。本実施形態の統計情報テーブル212は、集約フローの項目の組合せに従って、テーブルを保持する。このため、統計情報テーブル212は、図5Aに示すテーブル以外を保持してもよい。
1IPテーブル401は、SIPとPRTとの組合せからなる集約フロー、及び、DIPとPRTとの組合せからなる集約フローの、二つの集約フローの統計情報を保持する。2IPテーブル402は、SIPとDIPとPRTとの組合せからなる集約フローの統計情報を保持する。
2IP_1PTbテーブル403は、SIPとDIPとSPTとPRTとの組合せからなる集約フローと、SIPとDIPとDPTとPRTとの組合せからなる集約フローとの統計情報を保持する。Flowテーブル404は、5−tupleすべての組合せからなる集約フローの統計情報を保持する。
図5Bは、本発明の第1の実施形態の1IPテーブル401を示す説明図である。
統計情報テーブル212が保持する各テーブルは、エントリ番号411、項目421、及び統計情報431を含む。エントリ番号411は、各エントリを一意に識別する識別子である。項目421は、集約フローの項目を示し、各項目に対応するパケットのヘッダ情報を含む。
1IPテーブル401の項目421は、IP_a422及びPRT423を含む。IP_a422は、パケットのヘッダ情報に含まれるIPアドレス、すなわち、SIP又はDIPの値を含む。PRT423は、ヘッダ情報に含まれるPRTを含む。
本実施形態の統計情報431は、集約フローのトラフィックに関する統計情報を含む。統計情報431は、双方向の値、すなわち、IP_a422が示すIPアドレスから送信されるパケットの統計情報と、IP_a422が示すIPアドレスへ送信されるパケットの統計情報と、を含む。統計情報431は、パケットの積算バイト数、又は、フロー開始時刻等の統計情報を含んでもよい。
図5Bの統計情報431は、パケット数、及び、異なり数を含む。統計情報431のパケット数は、atob432、及び、btoa433を含む。atob432は、IP_a422が示すIPアドレスから、IP_bが示すIPアドレス(ヘッダ情報に含まれる、IP_a422が示すIPアドレス以外のIPアドレス、以下同じ)へ、PRT423が示すPRTによって送信されたパケットのパケット数を示す。btoa433は、IP_bが示すIPアドレスから、IP_a422が示すIPアドレスへ、PRT423が示すPRTによって送信されたパケットのパケット数を示す。
統計情報431の異なり数は、項目421をヘッダ情報に含むパケットであり、かつ、項目421に含まれないヘッダ情報を含むパケットの種類数を示す。統計情報431の異なり数は、双方向の値を保持する。統計情報431は、異なり数の測定箇所毎に異なり数を含む。
図5Bの1IPテーブル401の異なり数は、IP_bを測定箇所とする異なり数と、Flowを測定箇所とする異なり数とを含む。IP_bを測定箇所とする異なり数は、IP_a422が示す項目以外のIPアドレスを示すヘッダ情報の項目を測定箇所とする異なり数を示す。Flowを測定箇所とする異なり数は、IP_a422及びPRT423が示す項目以外の、すべてのヘッダ情報の項目を測定箇所とする異なり数を示す。
IP_bを測定箇所とする異なり数は、atob434、btoa435及び返信有436を含む。また、Flowを測定箇所とする異なり数は、atob437、btoa438及び返信有439を含む。
atob434は、IP_a422が示すIPアドレスがSIPであり、かつ、PRT423がPRTである集約フローの、DIPを測定箇所とする異なり数を含む。また、btoa435は、IP_a422が示すIPアドレスがDIPであり、かつ、PRT423がPRTである集約フロ−の、SIPを測定箇所とする異なり数を含む。
また、返信有436は、IP_a422及びPRT423が示す値と、測定箇所であるIP_bとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ101に受信されたパケットの数(返信数)を含む。すなわち、返信有436は、項目421が示す集約フローのうち、返信されたパケットが含むIP_bの種類数を示す。
また、atob437は、IP_a422が示すIPアドレスがSIPであり、かつ、PRT423がPRTである集約フローの、DIP、SPT、及びDPTを測定箇所とする異なり数を含む。btoa438は、IP_a422が示すIPアドレスがDIPであり、かつ、PRT423がPRTである集約フローの、SIP、SPT、及びDPTを測定箇所とする異なり数を含む。
また、返信有439は、IP_a422及びPRT423が示す値と、測定箇所であるSIP(又はDIP)、SPT及びDPTと、をヘッダ情報に含むパケットのうち、送信と返信との両方がルータ101に受信されたパケットの数(返信数)を含む。すなわち、返信有439は、項目421が示す集約フローのうち、返信されたパケットが含む、SIP(又はDIP)、SPT及びDPTの組合せの種類数を示す。
図5Bの1IPテーブル401は、前述の異なり数以外の異なり数を含んでもよい。例えば、宛先のポート(DPT)を測定箇所とする異なり数を含んでもよく、送信元のポート(SPT)を測定箇所とする異なり数を含んでもよい。
図5Cは、本発明の第1の実施形態の2IPテーブル402を示す説明図である。
2IPテーブル402は、エントリ番号411、項目421、及び、統計情報431を含む。
2IPテーブル402の項目421は、IP_a422、IP_b424、及びPRT423を含む。2IPテーブル402の項目421は、SIP及びDIPの組合せと、PRTとの値を、IP_a422、IP_b424、及びPT_b425に含む。
1IPテーブル401と2IPテーブル402との相違点は、IP_bの値が、1IPテーブル401に格納されず、2IPテーブル402のIP_b424に格納される点である。また、統計情報431における異なり数の測定箇所が異なる点である。
2IPテーブル402の統計情報431は、パケット数及び異なり数を含む。2IPテーブル402のパケット数は、1IPテーブル401と同様に、atob432、及び、btoa433を含む。
図5Cのatob432は、IP_a422が示すIPアドレスから、IP_b424が示すIPアドレスへ、PRT423が示すPRTによって送信されたパケットのパケット数を示す。図5Cのbtoa433は、IP_b424が示すIPアドレスから、IP_a422が示すIPアドレスへ、PRT423が示すPRTによって送信されたパケットのパケット数を示す。
図5Cに示す2IPテーブル402の異なり数は、PT_bを測定箇所とする異なり数を含む。本実施形態のPT_bとは、ヘッダ情報に含まれるポート番号であり、IP_b424が示すIPアドレスに対応するポート番号である。
PT_bを測定箇所とする異なり数は、atob440、btoa441及び返信有442を含む。atob440は、IP_a422が示すIPアドレスがSIPであり、IP_b424が示すIPアドレスがDIPであり、かつ、PRT423が示す値がPRTである集約フロ−の、DPTを測定箇所とする異なり数を示す。
btoa441は、IP_a422が示すIPアドレスがDIPであり、IP_b424が示すIPアドレスがSIPであり、かつ、PRT423が示す値がPRTである集約フロ−の、SPTを測定箇所とする異なり数を示す。
また、返信有442は、IP_a422、IP_b424及びPRT423が示す値と、測定箇所であるPT_bとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ101に受信されたパケットの数(返信数)を含む。すなわち、返信有436は、項目421が示す集約フローのうち、返信されたパケットが含むPT_bの種類数を示す。
図5Cの2IPテーブル402は、前述の異なり数以外の異なり数を含んでもよい。例えば、PT_a(ヘッダ情報に含まれるポート番号であり、IP_a422が示すIPアドレスに対応するポート番号、以下同じ)を測定箇所とする異なり数を含んでもよい。
図5Dは、本発明の第1の実施形態の2IP_1PTbテーブル403を示す説明図である。
2IP_1PTbテーブル403は、エントリ番号411、項目421、及び、統計情報431を含む。
2IP_1PTbテーブル403の項目421は、IP_a422、IP_b424、PT_b425、及びPRT423を含む。2IP_1PTbテーブル403の項目421は、SIPと、DIPと、SPT(又はDPT)と、PRTとの値を、IP_a422、IP_b424、PT_b425、及びPRT423に含む。
2IPテーブル402と2IP_1PTbテーブル403との相違点は、PT_bの値が、2IPテーブル402に格納されず、2IP_1PTbテーブル403のPT_b425に格納される点である。また、統計情報431における異なり数の測定箇所が異なる点がある。
2IP_1PTbテーブル403の統計情報431は、パケット数及び異なり数を含む。2IP_1PTbテーブル403のパケット数は、atob432、及び、btoa433を含む。
図5Dのatob432は、IP_a422が示すIPアドレスから、IP_b424が示すIPアドレスへ、PT_b425が示すDPTとPRT423が示すPRTとによって送信されたパケットのパケット数を示す。図5Cのbtoa433は、IP_b424が示すIPアドレスから、IP_a422が示すIPアドレスへ、PT_b425が示すSPTとPRT423が示すPRTとによって送信されたパケットのパケット数を示す。
図5Dに示す2IP_1PTbテーブル403の異なり数は、PT_aを測定箇所とする異なり数を含む。PT_aを測定箇所とする異なり数は、atob443、btoa444及び返信有445を含む。
atob443は、IP_a422が示すIPアドレスがSIPであり、IP_b424が示すIPアドレスがDIPであり、PT_b425が示す値がDPTであり、PRT423が示す値がPRTである集約フロ−の、SPTを測定箇所とする異なり数を示す。
btoa444は、IP_a422が示すIPアドレスがDIPであり、IP_b424が示すIPアドレスがSIPであり、PT_b425が示す値がSPTであり、PRT423が示す値がPRTである集約フロ−の、DPTを測定箇所とする異なり数を示す。
また、返信有445は、IP_a422、IP_b424、PT_b425及びPRT423が示す値と、測定箇所であるPT_aとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ101に受信されたパケットの数(返信数)を含む。すなわち、返信有436は、項目421が示す集約フローのうち、返信されたパケットが含むPT_aの種類数を示す。
図5Eは、本発明の第1の実施形態のFlowテーブル404を示す説明図である。
Flowテーブル404は、エントリ番号411、項目421、及び、統計情報431を含む。
Flowテーブル404の項目421は、IP_a422、IP_b424、PT_a426、PT_b425、及びPRT423を含む。すなわち、Flowテーブル404は、ヘッダ情報に含まれるすべての項目の組合せを集約フローとする統計情報を含む。
Flowテーブル404の統計情報431は、パケット数を含む。Flowテーブル404のパケット数は、atob432、及び、btoa433を含む。図5Eにおいて、項目421に含まれるヘッダ情報は、5−tupleの情報のみであるため、Flowテーブル404には、異なり数は含まれない。
図5A〜図5Eにおいて、項目421に含まれるヘッダ情報は、5−tupleの情報のみであったが、その他のヘッダ情報が含まれてもよい。例えば、MACアドレス等のヘッダ情報が含まれてもよい。
2IPテーブル402、2IP_1PTbテーブル403、Flowテーブル404の項目421において、SIPの値がIP_a422に含まれる場合、DIPの値はIP_b424に含まれる。また、DIPの値がIP_a422に含まれる場合、SIPの値はIP_b424に含まれる。
なお、2IPテーブル402、2IP_1PTbテーブル403、Flowテーブル404のように項目421にIPアドレスが二つ(SIP、DIP)含まれる場合、所定の基準に従って、各IPアドレスは、IP_a422又はIP_b424とに格納される。格納方法には、例えば、SIP、及び、DIPのうち値の小さいIPアドレスをIP_a422に格納し、値の大きいIPアドレスをIP_b424に格納する方法がある。
また、IP_a422及びIP_b424へのヘッダ情報の格納方法には、例えば、統計情報テーブル212を保持するルータ101がLANとWANとの境界に配置されていた場合、LAN側のIPアドレスをIP_a422に格納し、WAN側のIPアドレスをIP_b424に格納する方法がある。
また、統計情報テーブル212は、図5B〜図5Eが示すテーブルのヘッダ情報の組合せではなく、他のヘッダ情報の組合せを含むテーブルを保持してもよい。例えば、統計情報テーブル212は、項目421に、IP_a422、PT_b425、及びPRT423を含むテーブルを保持してもよい。また、例えば、IP_a422、IP_b424、PT_a426、及び、PRT423を含むテーブルを保持してもよい。
統計情報テーブル212が、複数のヘッダ情報の組合せを含むテーブルを保持することによって、ルータ101が、複数の異なる観点によるトラフィックの統計情報を収集及び分析することができる。
図6は、本発明の第1の実施形態の更新結果テーブル310を示す説明図である。
更新結果テーブル310は、統計情報テーブル212に保持される各テーブルの更新結果を格納するためのテーブルである。また、各テーブルの異なり数及び返信数を算出するためのテーブルである。
更新結果テーブル310の各エントリ(図6において、エントリ5011〜エントリ5017)は、統計情報テーブル212に保持される各テーブルに対応する。更新結果テーブル310は、組合せ501、新規フラグ511、及び返信有フラグ521を含む。組合せ501は、統計情報テーブル212の項目421に対応する。
図6の更新結果テーブル310において、エントリ5017の組合せ501は、図5Bの1IPテーブル401の項目421に対応し、エントリ5014の組合せ501は、図5Cの2IPテーブル402の項目421に対応する。また、エントリ5013の組合せ501は、図5Dの2IP_1PTbテーブル403の項目421に対応し、エントリ5011の組合せ501は、図5EのFlowテーブル404の項目421に対応する。
新規フラグ511は、組合せ501が示す集約フローに関して、パケットが新規であるか否かを示す。統計情報更新時、すなわち、統計テーブル管理部302がパケットのヘッダ情報を受信した時、受信したヘッダ情報に含まれる組合せ501の集約フローに関して、受信したヘッダ情報が新規フローを示すと判定された場合、統計テーブル管理部302は、新規フローであると判定された集約フローに対応する組合せ501の新規フラグ511に"1"を格納する。
具体的には、統計テーブル管理部302が"SIP:A、DIP:X、SPT:C、DPT:D、PRT:Z"の集約フローを示すヘッダ情報を受信し、ルータ101が既に"SIP:A、DIP:X、SPT:C、DPT:F、PRT:Z"を示すヘッダ情報のパケットを受信していた場合、受信したヘッダ情報は、"IP_a、IP_b、PT_a、PRT"及び"IP_a、IP_b、PT_b、PRT"を組合せ501に含む集約フロー(エントリ5012及びエントリ5013に対応)に関して、新規フローではない。
しかし、統計テーブル管理部302は、"SIP:A、DIP:X、SPT:C、PRT:Z"のヘッダ情報は受信しているが、"SIP:A、DIP:X、SPT:C、DPT:D、PRT:Z"のヘッダ情報は受信したことがない場合、受信したヘッダ情報は、"IP_a、IP_b、PT_a、PT_b、PRT"の集約フロー(エントリ5011に対応)に関して新規フローである。このため、統計テーブル管理部302は、受信したヘッダ情報に関して、更新結果テーブル310のエントリ5011の新規フラグ511に"1"を格納し、エントリ5012及びエントリ5013の新規フラグ511に"0"を格納する。
なお、これによって、"SIP:A、DIP:X、SPT:C、PRT:Z"("IP_a、IP_b、PT_a、PRT"又は"IP_a、IP_b、PT_b、PRT")の集約フローの、測定箇所をPT_b又はPT_aとする異なり数は、一つ分増加する。
新規フラグ511は、atob512及びbtoa513を含む。組合せ501にIPアドレスが一つしか含まれないエントリの新規フラグ511、すなわち、図6におけるエントリ5015〜エントリ5017の新規フラグ511には、組合せ501に含まれるIPアドレスがSIPである場合の集約フロー、及び、DIPである場合の集約フローに関して、新規フラグ511の値が格納される。
具体的には、SIPがIP_a422に格納された場合、新規フラグ511の値はatob512に格納され、DIPがIP_a422に格納された場合、新規フラグ511の値はbtoa513に格納される。
返信有フラグ521は、組合せ501の集約フローについて、返信があったことを示すフラグである。統計テーブル管理部302が受信したヘッダ情報が、ルータ101が既に受信したパケットに対して初めて返信されたパケット(返信パケット)が有するヘッダ情報である場合、返信有フラグ521に"1"が格納される。
新規フラグ511を"1"に更新した集約フローについて、その集約フローを含むパケットが返信パケットである場合、返信有フラグ521に"1"が格納される。すなわち、受信したパケットの集約フローが新規フローの場合のみ、返信有フラグ521に"1"が格納される。
例えば、Flowテーブル404のIP_a422、IP_b424、PT_a426、PT_b425、PRT423が"A、X、C、D、Z"を示し、atob432が"3"を示し、btoa433が"0"を示し、統計テーブル管理部302が"SIP:X、DIP:A、SPT:D、DPT:C、PRT:Z"を含むヘッダ情報を受信したとする。この場合、ヘッダ情報受信時においてbtoa433は"0"であったため、受信したヘッダ情報が含む集約フローは新規フローであり、統計テーブル管理部302は、エントリ5011の新規フラグ511に"1"を格納する。
また、atob432は0より多い数であり、これは、受信したヘッダ情報が、既にルータ101が受信したパケットの返信パケットであることを示す。このため、統計テーブル管理部302は、エントリ5011の返信有フラグ521に"1"を格納する。
なお、これによって、"SIP:A、DIP:X、SPT:C、PRT:Z"("IP_a、IP_b、PT_a、PRT"又は"IP_a、IP_b、PT_b、PRT")の集約フローの、測定箇所をPT_b又はPT_aとする異なり数の返信数は、一つ分増加する。
また、図5A〜図5E及び図6において、統計情報テーブル212及び統計テーブル管理部302は、テーブルによって各情報を保持したが、各々の情報が統計テーブル管理部302によって識別できれば、いかなる方法によって情報を保持してもよい。例えば、統計情報テーブル212及び統計テーブル管理部302は、CSVを用いた方法によって情報を保持してもよい。
図7は、本発明の第1の実施形態の統計情報テーブル更新処理を示すフローチャートである。
ヘッダ情報蓄積部301からヘッダ情報を受信した場合、統計テーブル管理部302は、更新結果テーブル310の新規フラグ511及び返信有フラグ521の各セルの値をゼロに置き換え、図7に示す統計情報テーブル更新処理を開始する。統計情報テーブル更新処理において、統計テーブル管理部302は、まず、更新する集約フローの組合せ501を、更新結果テーブル310から選択する(ステップ601)。ここで、更新結果テーブル310には、管理者によってあらかじめ定められた集約フローが保持される。
統計テーブル管理部302は、ステップ601において、組合せ501に含まれる項目数の多い順に更新結果テーブル310のエントリを選択する。これによって、統計テーブル管理部302は、統計情報テーブル212が保持する各テーブルを、項目421の項目が多い順に選択する。
以下の説明において、ステップ601において選択されたエントリの組合せ501を組合せCとし、組合せCに関する統計情報を更新する。
ステップ601の後、統計テーブル管理部302は、選択された組合せCに対応するヘッダ情報を、受信したヘッダ情報(SIP、DIP、SPT、DPT、PRT)から抽出する。そして、抽出されたヘッダ情報を、統計情報テーブル212が保持する各テーブルのIP_a422、IP_b424、PT_a426、PT_b425、PRT423に対応させることによって、組合せCの集約フローに該当するエントリを検索する。
具体的には、統計テーブル管理部302は、ヘッダ情報(SIP、DIP、SPT、DPT、PRT)又は(DIP、SIP、DPT、SPT、PRT)の組合わせを項目421に含むエントリを検索する。そして、ヘッダ情報の組合せを含むエントリが統計情報テーブル212にない場合、統計テーブル管理部302は、SIP又はDIPのうちIPアドレスの小さいほうをIP_a422に格納する前述の方法を用いることによって、組合せCの集約フローを項目421とする新たなエントリを生成してもよい。
統計テーブル管理部302は、前述の通りヘッダ情報を項目421に対応させることによって、受信したヘッダ情報に該当するエントリを、統計情報テーブル212が保持する各テーブルから検索する。そして、統計テーブル管理部302は、検索されたエントリ又は新たに生成されたエントリをメモリに読み出す(ステップ602)。
統計テーブル管理部302は、例えば、ステップ601において組合せCに(IP_a、IP_b、PT_a、PT_b、PRT)が選択されていた場合、ステップ602において、IP_a422、IP_b424、PT_a426、PT_b425、PRT423を含むFlowテーブル404から、ヘッダ情報が示す集約フローに該当するエントリを検索する。また、ステップ601において組合せCに(IP_a、PRT)が選択されていた場合、ステップ602において、IP_a422、PRT423を含む1IPテーブル401から、ヘッダ情報が示す集約フローに該当するエントリを検索する。
ステップ602の後、統計テーブル管理部302は、ステップ602における検索結果に従って、ヘッダ情報に含まれる組合せCが新規フローを示すか否かを判定する(ステップ603)。
ステップ603において、統計テーブル管理部302は、ステップ602において統計情報テーブル212からエントリが読み出されなかった場合、すなわち、ヘッダ情報に対応する項目421を含む新たなエントリを生成した場合、ヘッダ情報に含まれる組合せCが新規フローを示すと判定する。また、統計テーブル管理部302は、ステップ602において検索されたエントリの統計情報431のパケット数を参照し、参照されたパケット数が"0"である場合、ヘッダ情報に含まれる組合せCが新規フローを示すと判定する。
なお、ステップ603において、統計テーブル管理部302は、読み出されたエントリの統計情報431のうち、ステップ602において項目421に対応するヘッダ情報に基づいて、atob432又はbtoa433のパケット数を参照する。そして、参照されたパケット数が"0"であるか否かに従って、ヘッダ情報に含まれる組合せCが新規フローを示すか否かを判定する。
ヘッダ情報に含まれる組合せCが新規フローを示さないと判定された場合、統計テーブル管理部302は、更新結果テーブル310の新規フラグ511及び返信有フラグ521を更新せず、"0"のままとする。すなわち、統計テーブル管理部302は、組合せCのヘッダ情報に関して、異なり数及び異なり数の返信数を加算する必要がない。このため、統計テーブル管理部302は、ステップ607に移行する。
ヘッダ情報に含まれる組合せCが新規フローを示すと判定された場合、統計テーブル管理部302は、更新結果テーブル310の組合せCの新規フラグ511に"1"を格納する(ステップ604)。
なお、組合せCに含まれるIPアドレスが一つである場合、統計テーブル管理部302は、ステップ603において、atob432とbtoa433との両方を参照し、ヘッダ情報に含まれる組合せCが新規フローを示すか否かを判定する。そして、ステップ604において、atob432及びbtoa433によって取得された各判定結果を、更新結果テーブル310の組合せCに対応するatob512とbtoa513とに格納する。これは、組合せCのIP_aが送信元である場合の新規フラグ511と送信先である場合の新規フラグ511とを明確に識別するためである。
また、組合せCに含まれるアドレスが二つである場合、統計テーブル管理部302は、ステップ603において、受信したヘッダ情報に従って、atob432又はbtoa433のいずれかを参照し、ヘッダ情報に含まれる組合せCが新規フローを示すか否かを判定する。そして、ステップ604において、ステップ603において参照した組合せCの新規フラグ511に値を格納する。
例えば、受信したヘッダ情報が"SIP:X、DIP:A、PRT:Z"であり、組合せCが(IP_a、IP_b、PRT)であり、また、2IPテーブル402に、IP_a422が"A"であり、IP_b424が"X"であり、PRT423が"Z"であり、atob432が"7"であり、btoa433が"0"であるエントリ4021があるものとする。
この場合、ステップ602において、統計テーブル管理部302は、図5Cのエントリ4021をメモリに読み出す。そして、受信したヘッダ情報が"XからAへ送信"を示すため、ステップ603において、統計テーブル管理部302は、btoa433を参照する。btoa433の値が"0"であるため、統計テーブル管理部302は、受信したヘッダ情報に含まれる組合せCは新規フローを示すと判定する。
そして、統計テーブル管理部302は、ステップ604において、更新結果テーブル310のエントリ5014の新規フラグ511に"1"を格納する。
ステップ604の後、統計テーブル管理部302は、ステップ602において読み出されたエントリの統計情報431を参照し、受信したヘッダ情報の組合せCが示す集約フローとは逆方向のパケット数を取得する。そして、取得されたパケット数が"0"より大きいか否かを判定する(ステップ605)。
取得されたパケット数が"0"である場合、受信したヘッダ情報の組合せCが示す集約フローは、既にルータ101に受信されたパケットに対する返信パケットが含む集約フローではないため、返信有フラグ521を更新しない。このため、統計テーブル管理部302は、ステップ607に移行する。
取得されたパケット数が"0"より大きい場合、受信したヘッダ情報の組合せCが示す集約フローは、既にルータ101に受信されたパケットに対する返信パケットのうち、統計テーブル管理部302が初めて受信した返信パケットが含む集約フローである。このため、統計テーブル管理部302は、更新結果テーブル310の組合せCの返信有フラグ521に"1"を格納する(ステップ606)。
ステップ603、ステップ605、又は、ステップ606の後、統計テーブル管理部302は、ステップ602において読み出されたエントリに、統計情報更新処理を実行する(ステップ607)。ステップ607の統計情報更新処理の詳細は後述する図8において示す。
ステップ607の後、統計テーブル管理部302は、統計情報更新処理が行われたエントリの統計情報431のパケット数が、所定の閾値よりも大きいか否かを判定する(ステップ608)。統計情報431のパケット数が所定の閾値以下である場合、統計情報更新処理を実行したエントリが示すフローがスキャンではないため、統計テーブル管理部302は、ステップ610に移行する。
統計情報431のパケット数が閾値よりも大きい場合、統計情報更新処理を実行したエントリが示すフローは、スキャンである可能性がある。このため、統計テーブル管理部302は、統計情報更新処理を実行したエントリの集約フローの統計情報431を、フロー分析部303へ送信する。そして、統計テーブル管理部302は、統計情報431の各セルの値をゼロに置き換える(ステップ609)。
なお、図7に示すステップ608において、パケット数と所定の閾値との比較によって、フロー分析部303へ統計情報431を送信するか否かを判定したが、異なり数、又は、返信数等が所定の条件となった場合、統計テーブル管理部302は、フロー分析部303へ統計情報431を送信してもよい。
また、統計テーブル管理部302は、統計情報431のすべてをフロー分析部303に送らず、ステップ608において所定の条件を満たした統計情報431のみを、フロー分析部303に送信してもよい。例えば、統計情報431のパケット数のatob432及び異なり数のatob440が所定の条件を満たした場合、atob432及び異なり数のatob440のみをフロー分析部303に送信してもよい。
ステップ608又はステップ609の後、統計テーブル管理部302は、ステップ607における更新処理後の統計情報431、又は、ステップ609において値をゼロに置き換えられた後の統計情報431を、ステップ602においてメモリに読み出されたエントリの読み出し元のテーブル(統計情報テーブル212の各テーブル)に格納する(ステップ610)。これによって、統計テーブル管理部302は、組合せCに関する統計情報の更新処理を終了する。
ステップ610の後、統計テーブル管理部302は、ステップ601〜ステップ610の処理がされていない更新結果テーブル310のエントリがあるか否かを判定し、これによって、全ての組合せ501について統計情報テーブル更新処理が終了したか否かを判定する(ステップ611)。ステップ601〜ステップ610の処理がされていない更新結果テーブル310のエントリがある場合、統計テーブル管理部302は、ステップ601に戻る。
ステップ601〜ステップ610の処理が更新結果テーブル310のすべてのエントリに実行された場合、統計テーブル管理部302は、統計情報テーブル更新処理を終了する。
前述のフローチャートに従い統計情報を更新した場合、ルータ101は、統計情報テーブル212へのアクセスを、ステップ602の読み出しとステップ610の更新の2回と最小限に抑えることができる。通常、統計情報テーブル212は、大容量のメモリを必要とするため、メモリアクセス速度の遅いDRAM等に実装されることが多い。従って、ルータ101は、メモリアクセス回数を抑えることによって、より高速に統計情報を収集することができる。
図8は、本発明の第1の実施形態の統計情報テーブル更新処理の統計情報更新処理を示すフローチャートである。
図8は、図7のステップ607の統計情報更新処理に対応する処理を示す。統計テーブル管理部302は、図8に示す処理において、ステップ602において読み出されたエントリを更新する。
まず、統計テーブル管理部302は、ステップ602において読み出されたエントリのIP_a422の値と、受信したヘッダ情報のSIPとが等しいか否かを判定する(ステップ701)。統計テーブル管理部302は、ステップ704以降においていずれの統計情報431を更新するかを判定するため、ステップ701を行う。
IP_a422がSIPと等しい場合、統計テーブル管理部302は、IP_a422、IP_b424、PT_a426、及び、PT_b425を(SIP、DIP、SPT、DPT)に対応させること、及び、IP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットに関する統計情報431(例えば、atob432)を更新することを決定する(ステップ702)。
IP_a422がDIPと等しい場合、統計テーブル管理部302は、IP_a422、IP_b424、PT_a426、及び、PT_b425を(DIP、SIP、DPT、SPT)に対応させること、及び、IP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットに関する統計情報431(例えば、btoa433)を更新することを決定する(ステップ703)。
ステップ702又はステップ703の後、統計テーブル管理部302は、ステップ702又はステップ703における決定に従って、ステップ602においてメモリに読み出されたエントリの統計情報431のパケット数(すなわち、atob432又はbtoa433)に、所定の値を加算する(ステップ704)。なお、ステップ704において、統計テーブル管理部302はパケット数に、例えば、"1"を加算する。
ステップ704の後、統計テーブル管理部302は、統計情報431の異なり数を算出する。統計テーブル管理部302は、異なり数を算出するため、集約フローの組合せCに異なり数の測定箇所Xを含めた組合せC'を生成する(ステップ705)。
例えば、統計テーブル管理部302は、ステップ705において、組合せCが(IP_a、IP_b、PRT)の集約フローである場合、測定箇所XをPT_bとして、(IP_a、IP_b、PT_b、PRT)の組合せC'を生成する。これによって、統計テーブル管理部302は、PT_bを測定箇所とする異なり数を算出することができる。
ステップ705の後、統計テーブル管理部302は、組合せC'を組合せ501に含む更新結果テーブル310のエントリの新規フラグ511が"1"であるか否かを判定する(ステップ706)。組合せC'の新規フラグ511が"1"でない場合、組合せCの異なり数には、ヘッダ情報に含まれる組合せC'に相当する異なり数が既に含まれている。このため、統計テーブル管理部302は、ステップ710に移行する。
組合せC'の新規フラグ511が"1"である場合、ヘッダ情報に含まれる組合せC'は新規フローである。ヘッダ情報に含まれる組合せC'が新規フローであることは、組合せCの異なり数に、組合せC'に相当する数が含まれていないことを示す。
このため、統計テーブル管理部302は、ステップ602においてメモリに読み出されたエントリ(組合せCに対応する)の、統計情報431に含まれる測定箇所Xの異なり数に、例えば、"1"を加算する(ステップ707)。なお、統計テーブル管理部302は、統計情報431に含まれる測定箇所Xの異なり数のうち、ステップ702又は703における決定に従って、atob又はbtoaのセルの異なり数に値を加算する。
ステップ707の後、統計テーブル管理部302は、組合せC'を組合せ501に含む更新結果テーブル310のエントリの返信有フラグ521が"1"であるか否かを判定する(ステップ708)。組合せC'の返信有フラグ521が"1"であることは、組合せC'の集約フローは送信と返信との両方があり、かつ、組合せCの異なり数の返信数に組合せC'の数が含まれていないことを示す。
このため、統計テーブル管理部302は、ステップ602においてメモリに読み出されたエントリ(組合せCに対応する)の、統計情報431の測定箇所Xの異なり数の返信有(例えば、返信有436、返信有439、返信有442、又は、返信有445)に、例えば、"1"を加算する(ステップ709)。
組合せC'の返信有フラグ521が"1"でない場合、組合せC'の集約フローにはまだ返信がない、又は、組合せC'の集約フローには既に送信と返信との両方があったが、組合せCの異なり数の返信数に組合せC'の数が既に加算されている。このため、統計テーブル管理部302は、統計情報更新処理を終了する。
ステップ706、ステップ708、又は、ステップ709の後、統計テーブル管理部302は、すべての測定箇所Xについて、ステップ705〜ステップ709の処理によって、異なり数を算出したか否かを判定する(ステップ710)。すべての測定箇所Xについて、異なり数を算出した場合、統計テーブル管理部302は、統計情報更新処理を終了する。
異なり数を算出していない測定箇所Xがある場合、統計テーブル管理部302は、ステップ705に戻り、異なり数を算出していない測定箇所Xを含む新たな組合せC'を生成する。
なお、前述の図8に示す処理において、測定箇所Xには、複数の項目が含まれてもよい。具体的には、組合せCがIP_a422及びPRT423(すなわち、1IPテーブル401のエントリ)を含む場合、統計テーブル管理部302は、測定箇所XをIP_b及びPT_bとし、エントリ5013(2IP_1PTbテーブルに対応)に基づいて、1IPテーブル401の異なり数を算出してもよい。
また、例えば、図5Bに示すFlowの異なり数を算出する場合も、統計テーブル管理部302は、項目421に含まれるヘッダ情報以外の5−tupleの複数のヘッダ情報を、異なり数の測定箇所Xとしてもよい。
図7及び図8に示す処理において、統計テーブル管理部302は、項目421が多いテーブルの更新結果を用いることによって、項目421の少ないテーブルの異なり数を算出する。そして、これを繰り返すことによって、複数のテーブルを更新及び生成することが可能である。
第1の実施形態によれば、統計情報テーブル212に複数のテーブルを保持することによって、多様な観点による統計情報431を取得することができる。また、膨大なトラフィックの履歴を都度検索することなく、複数のテーブルの各エントリを更新結果テーブル310を用いて順次更新することによって、メモリへのアクセス頻度を最低限に抑え、各統計情報を含むテーブルを順次更新することができる。これによって、第1の実施形態のルータ101は、統計情報431を算出するためのプロセッサ及びメモリの消費を、低減することができる。
さらに、各テーブルには、パケット数、異なり数、及び返信数を含む統計情報が格納され、統計情報は図7及び図8に示す一つの連続した処理によって算出される。これによって、統計テーブル管理部302は、パケット数、異なり数、及び返信数をすべて含む統計情報をフロー分析部303に送信可能であり、フロー分析部303は、各情報を都度統計情報テーブル212に検索する必要がない。これによって、第1の実施形態のルータ101は、フローを分析するためのプロセッサ及びメモリの消費を低減することができる。
また、第1の実施形態によれば、異なり数の返信数を算出することによって、不特定の通信相手、又は、不特定の通信方法のうち返信のあった数を算出する。このため、5−tupleのすべてが一致するフローに関する返信数だけではなく、多様な観点による返信数を取得することができる。
(第2の実施形態)
本発明の第2の実施形態を図9A、図9B、図10A、及び、図10Bを用いて説明する。
本発明の第2の実施形態におけるルータ101は、測定期間毎に正確な異なり数を算出するため、統計情報テーブル212に保持されるテーブル間で、世代情報を保持する。これは、第1の実施形態のルータ101は、複数測定期間において、正しい異なり数を算出できないためである。
具体的には、第1の実施形態において、統計テーブル管理部302が、統計情報テーブル212に保持されるテーブルの統計情報431を、フロー分析部303に送信する際、送信された統計情報431は、ステップ609においてゼロに置き換えられる。しかし、統計情報431がゼロに置き換わった後も、第1の実施形態の統計テーブル管理部302は、統計情報431がゼロに置き換わったテーブル(テーブルS)以外のテーブル(テーブルT)に基づいて、テーブルSの集約フローの異なり数を算出する。
この場合において、テーブルTにおいて新規フローではないと判定されても、テーブルSにおいて新規フローである場合が生じる。このような場合、統計テーブル管理部302は、正確に更新結果テーブル310を更新できず、テーブルSにおける異なり数を正確に算出することができない。
すなわち、統計情報テーブル212に保持されるテーブル間で、統計情報431を更新する期間が異なる場合、統計テーブル管理部302は、異なり数を正確にカウントアップすることができない。第2の実施形態はこのような事態に対応したものである。
第1の実施形態と異なる点は、統計情報テーブル212に含まれるテーブルと統計テーブル管理部302の統計情報更新処理とであり、その他の機能ブロックについては第1の実施形態と同じである。図9A及び図9Bに示す統計情報テーブル212は、1IPテーブル801、及び、2IPテーブル802を保持する。
図9Aは、本発明の第2の実施形態の1IPテーブル801を示す説明図である。
第2の実施形態の1IPテーブル801と第1の実施形態の1IPテーブル401との相違点は、以下の2点である。
一つ目の相違点は、第2の実施形態の1IPテーブル801が、世代識別子811を含む点である。世代識別子811は、atob812及びbtoa813を含み、対応する統計情報431がフロー分析部303に送信される毎に更新される。
atob812は、統計情報431のatob432及びatob434に対応し、btoa813は、統計情報431のbtoa433及びbtoa435に対応する。
二つ目の相違点は、第2の実施形態の1IPテーブル801が、統計情報431の異なり数のatob434及びbtoa435に、返信有831及び返信有832を含む点である。
返信有831は、IP_a422が示すIPアドレスからIP_bが示すIPアドレスに、PRT423によって送信されるパケットが、返信された数(返信数)を示す。すなわち、返信有831は、IP_a422が示すIPアドレスからIP_bが示すIPアドレスにPRT423によって送信されるパケットのうち、返信されたパケットが含むIP_bの種類数を示す。
返信有832は、IP_bが示すIPアドレスからIP_a422が示すIPアドレスに、PRT423によって送信されるパケットが、返信された数(返信数)を示す。すなわち、返信有832は、IP_bが示すIPアドレスからIP_a422が示すIPアドレスにPRT423によって送信されるパケットのうち、返信されたパケットが含むIP_bの種類数を示す。
図9Bは、本発明の第2の実施形態の2IPテーブル802を示す説明図である。
第2の実施形態の2IPテーブル802と第1の実施形態の2IPテーブル402との相違点は、以下の二点である。
一つ目の相違点は、第2の実施形態の2IPテーブル802が異なり数世代情報821を含む点である。また、二つ目の相違点は、第2の実施形態の2IPテーブル802が世代識別子841を含む点である。
図9Bの2IPテーブル802は、1IPテーブル801の世代識別子を保持する異なり数世代情報821を含む。異なり数世代情報821は、2IPテーブル802の更新結果を用いて異なり数を算出する1IPテーブル801の、統計情報431の世代識別子を保持する。
異なり数世代情報821は、2IPテーブル802のIP_a422に関するatob823及びbtoa825を含む。また、2IPテーブル802のIP_b424に関するbtoa827及びatob829を含む。
atob823及びbtoa825は、2IPテーブル802のIP_a422を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリの異なり数及び返信数を算出するための世代情報を含む。btoa827及びatob829は、2IPテーブル802のIP_b424を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリの異なり数及び返信数を算出するための世代情報を含む。
atob823は、世代識別子と、返信待ちフラグ822とを含む。atob823の世代識別子は、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットを、異なり数として1IPテーブル801のatob434に加算する際に用いられる世代識別子である。なお、atob823は、2IPテーブル802のIP_a422を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリのatob434に対応する。
本実施形態において、2IPテーブル802のatob823の世代識別子と、1IPテーブル801のatob812の世代識別子とが相違する場合、atob434の異なり数が加算される。これは、世代識別子が相違していることが、1IPテーブル801の測定期間において2IPテーブル802のエントリに基づいて加算されるべき異なり数が、まだ加算されていないことを示すためである。
返信待ちフラグ822に"1"が格納される場合、ルータ101は、1IPテーブル801のbtoa813が示す測定期間において、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットの返信待ちである。
そして、返信待ちフラグ822が"1"を保持している場合において、ルータ101が、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ101がbtoa813が示す測定期間において初めて受信した返信パケットである。
btoa825は、世代識別子と、返信待ちフラグ824とを含む。btoa825の世代識別子は、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットを、異なり数として1IPテーブル801のbtoa435に加算する際に用いられる世代識別子である。なお、btoa825は、2IPテーブル802のIP_a422を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリのbtoa435に対応する。
本実施形態において、2IPテーブル802のbtoa825の世代識別子と、1IPテーブル801のbtoa813の世代識別子とが相違する場合、btoa435の異なり数が加算される。
返信待ちフラグ824に"1"が格納される場合、ルータ101は、1IPテーブル801のatob812が示す測定期間において、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットの返信待ちである。
そして、返信待ちフラグ824が"1"を保持している場合において、ルータ101が、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ101がatob812が示す測定期間において初めて受信した返信パケットである。
btoa827は、世代識別子と、返信待ちフラグ826とを含む。btoa827の世代識別子は、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットを、異なり数として1IPテーブル801のbtoa435に加算する際に用いられる世代識別子である。なお、btoa827は、2IPテーブル802のIP_b424を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリのbtoa435に対応する。
2IPテーブル802のbtoa827の世代識別子と、1IPテーブル801のbtoa813の世代識別子とが相違する場合、btoa435の異なり数が加算される。
返信待ちフラグ826に"1"が格納される場合、ルータ101は、1IPテーブル801のbtoa813が示す測定期間において、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットの返信待ちである。
そして、返信待ちフラグ826が"1"を保持している場合において、ルータ101が、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ101がbtoa813が示す測定期間において初めて受信した返信パケットである。
atob829は、世代識別子と、返信待ちフラグ828とを含む。atob829の世代識別子は、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットを、異なり数として1IPテーブル801のatob434に加算する際に用いられる世代識別子である。なお、atob829は、2IPテーブル802のIP_b424を、1IPテーブル801のIP_a422に含む1IPテーブル801のエントリのatob434に対応する。
2IPテーブル802のatob829の世代識別子と、1IPテーブル801のatob812の世代識別子とが相違する場合、atob434の異なり数が加算される。
返信待ちフラグ828に"1"が格納される場合、ルータ101は、1IPテーブル801のatob812が示す測定期間において、2IPテーブル802のIP_a422が示すIPアドレスからIP_b424が示すIPアドレスへ送信されるパケットの返信待ちである。
そして、返信待ちフラグ826が"1"を保持している場合において、ルータ101が、2IPテーブル802のIP_b424が示すIPアドレスからIP_a422が示すIPアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ101がatob812が示す測定期間において初めて受信した返信パケットである。
世代識別子841は、atob842及びbtoa843を含み、2IPテーブル802の統計情報431がフロー分析部303に送信される毎に更新される。
図9A及び図9Bにおいて、第2の実施形態の統計情報テーブル212が保持するテーブルは、1IPテーブル801及び2IPテーブル802であるが、例えば、第2の実施形態の統計情報テーブル212は、第1の実施形態の1IPテーブル401に世代識別子811が加えられ、第1の実施形態の2IP_1PTbテーブル403に異なり数世代情報821及び世代識別子841が加えられたテーブルを保持してもよい。
図10Aは、本発明の第2の実施形態のSIPに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
図10A及び後述する図10Bは、1IPテーブル801の異なり数及び返信数の算出手順を示し、IPアドレスAからIPアドレスXに送信されたパケットの統計情報を算出する手順である。ステップ911からステップ918までの処理が、1IPテーブル801のIP_a422に"A"を含むエントリ8011、すなわち、SIPが"A"である場合の統計情報を更新する処理である。
統計テーブル管理部302は、ルータ101がIPアドレスAからIPアドレスXに送信されたパケットを受信した場合(ステップ901)、SIPを1IPテーブル801のIP_a422に含む統計情報431を算出するため図10Aに示す処理を行い、また、DIPを1IPテーブル801のIP_a422に含む統計情報431を算出するため、図10Bに示す処理を行う。図10A及び図10Bに示す処理は、並行して行われてもよく、どちらかが先に行われてもよい。
なお、図10A及び後述する図10Bにおいて、1IPテーブル801のエントリ8011のIP_a422は、"A"を含み、エントリ8012のIP_a422は、"X"を含むものとする。また、2IPテーブル802のエントリ8021のIP_a422は、"A"を含み、エントリ8021のIP_b424は、"X"を含むものとする。
また、図10A及び図10Bに示す処理が開始される際、IPアドレスAからIPアドレスXへ送信されるパケット数を示す、1IPテーブル801のエントリ8011のatob432及びエントリ8012のbtoa433、並びに、2IPテーブル802のエントリ8021のatob432には、受信したパケットに相当するパケット数が既に加算されているものとする。
統計テーブル管理部302は、1IPテーブル801のエントリ8011の返信有832を更新するため、ステップ911からステップ914の処理を行う。まず、統計テーブル管理部302は、2IPテーブル802のエントリ8021の返信待ちフラグ822に"1"が格納されているか否かを判定する(ステップ911)。
エントリ8021の返信待ちフラグ822に"1"が格納されていない場合、ステップ901において受信されたパケットは、既にルータ101に受信されていたIPアドレスXからIPアドレスAへ送信されるパケットの返信パケットではない。または、IPアドレスAからIPアドレスXに送信されたパケットは、エントリ8011の返信有832に既に加算済みである。このため、エントリ8011において、IPアドレスXへ送信される返信パケットのパケット数(すなわち、返信有832)を更新する必要はないため、統計テーブル管理部302は、ステップ915に移行する。
エントリ8021の返信待ちフラグ822が"1"である場合、返信待ちフラグ822は、IPアドレスAからIPアドレスXへ送信されるパケットを受信する前に、IPアドレスXからIPアドレスAへ送信されるパケットをルータ101が受信しており、かつ、統計テーブル管理部302が、IPアドレスAからIPアドレスXへ送信されるパケットを返信パケットとして、返信有832に加算していないことを示す。そして、ルータ101は、IPアドレスXからIPアドレスAへ送信されるパケットの返信パケット、すなわち、IPアドレスAからIPアドレスXへ送信されるパケットを待っていたことを示す。
このため、エントリ8021の返信待ちフラグ822が"1"である場合、統計テーブル管理部302は、返信パケット数を1IPテーブル801に加算するため、さらに、エントリ8021のbtoa825の値と、1IPテーブル801のエントリ8011のbtoa813の値とが同じであるか否かを判定する(ステップ912)。
エントリ8021のbtoa825の値と、エントリ8011のbtoa813の値とが異なる場合、IPアドレスAに送信されるパケットの2IPテーブル802における返信数の測定期間と、IPアドレスAに送信されるパケットの1IPテーブル801における返信数の測定期間とが異なり、2IPテーブル802に基づいて1IPテーブル801の返信有832を更新できない。このため、統計テーブル管理部302は、ステップ915に移行する。
エントリ8021のbtoa825の値と、エントリ8011のbtoa813の値とが同じである場合、IPアドレスAに送信されるパケットの2IPテーブル802における返信数の測定期間と、IPアドレスAに送信されるパケットの1IPテーブル801における返信数の測定期間とが同じである。このため、統計テーブル管理部302は、1IPテーブル801のエントリ8011の返信有832の値を加算(例えば、"1"を加算)する(ステップ913)。
ステップ913の後、統計テーブル管理部302は、エントリ8021の返信待ちフラグ822の値を、"0"に置き換える(ステップ914)。これによって、統計テーブル管理部302は、この後にIPアドレスAからIPアドレスXへ送信されるパケットをルータ101が受信しても、ステップ911において、受信したパケットを返信パケットとして判定しない。
ステップ911、ステップ912又はステップ914の後、統計テーブル管理部302は、ステップ915からステップ918において異なり数を算出する。統計テーブル管理部302は、エントリ8021のatob823の値と、1IPテーブル801のエントリ8011のatob812の値とが同じであるか否かを判定する(ステップ915)。
エントリ8021のatob823の値と、1IPテーブル801のエントリ8011のatob812の値とが同じである場合、エントリ8021が示す集約フローに相当する異なり数は、エントリ8011のatob434に加算済みである。このため、統計テーブル管理部302は、エントリ8021のatob823の値と、1IPテーブル801のエントリ8011のatob812の値とが同じである場合、図10Aに示す統計情報測定処理を終了する。
エントリ8021のatob823の値と、1IPテーブル801のエントリ8011のatob812の値とが異なる場合、エントリ8021が示す集約フローに相当する異なり数は、エントリ8011のatob434に加算されていない。このため、統計テーブル管理部302は、1IPテーブル801のエントリ8011のatob434の値を加算(例えば、"1"を加算)する(ステップ916)。
ステップ916の後、統計テーブル管理部302は、1IPテーブル801のエントリ8011のatob812の値によって、2IPテーブル802のエントリ8021のatob823の値を置き換える(ステップ917)。これによって、統計テーブル管理部302は、この後にIPアドレスAからIPアドレスXへ送信されるパケットをルータ101が受信しても、ステップ916において受信したパケットに相当する異なり数を算出しない。。
ステップ917の後、統計テーブル管理部302は、2IPテーブル802の返信待ちフラグ824に、"1"を格納する(ステップ918)。これによって、統計テーブル管理部302は、2IPテーブル802によって、IPアドレスAからIPアドレスXへ送信されるパケットへの返信パケット、すなわち、IPアドレスXからIPアドレスAへ送信されるパケットを、ルータ101が返信パケットとして未受信であることを示すことができる。
ステップ915又はステップ918の後、統計テーブル管理部302は、図10Aに示す統計情報測定処理を終了する。
図10Bは、本発明の第2の実施形態のDIPに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
図10Bは、図10Aと同じく、IPアドレスAからIPアドレスXに送信されたパケットの統計情報を測定する手順である。ステップ921からステップ928までの処理が、1IPテーブル801のIP_a422に"X"を格納するエントリ8012、すなわち、DIPが"X"である統計情報を更新する処理である。
統計テーブル管理部302は、1IPテーブル801のエントリ8012の返信有831を更新するため、ステップ921からステップ924の処理を行う。まず、統計テーブル管理部302は、2IPテーブル802のエントリ8021の返信待ちフラグ826に"1"が格納されているか否かを判定する(ステップ921)。
エントリ8021の返信待ちフラグ826に"1"が格納されていない場合、ステップ901において受信されたパケットは、既にルータ101に受信されていたIPアドレスXからIPアドレスAへ送信されるパケットの返信パケットではない。または、IPアドレスAからIPアドレスXに送信されたパケットは、エントリ8012の返信有831に既に加算済みである。このため、エントリ8012において、IPアドレスXへ送信される返信パケットのパケット数(すなわち、返信有831を更新する必要はないため、統計テーブル管理部302は、ステップ925に移行する。
エントリ8021の返信待ちフラグ826が"1"である場合、返信待ちフラグ826は、IPアドレスAからIPアドレスXへ送信されるパケットを受信する前に、IPアドレスXからIPアドレスAへ送信されるパケットをルータ101が受信しており、かつ、統計テーブル管理部302が、IPアドレスAからIPアドレスXへ送信されるパケットを返信パケットとして、返信有831に加算していないことを示す。そして、ルータ101は、IPアドレスXからIPアドレスAへ送信されるパケットの返信パケット、すなわち、IPアドレスAからIPアドレスXへ送信されるパケットを待っていたことを示す。
このため、エントリ8021の返信待ちフラグ826が"1"である場合、統計テーブル管理部302は、返信パケット数を1IPテーブル801に加算するため、さらに、エントリ8021のatob829の値と、1IPテーブル801のエントリ8012のatob812の値とが同じであるか否かを判定する(ステップ922)。
エントリ8021のatob829の値と、エントリ8012のatob812の値とが異なる場合、IPアドレスAに送信されるパケットの2IPテーブル802における返信数の測定期間と、IPアドレスAに送信されるパケットの1IPテーブル801における返信数の測定期間とが異なり、2IPテーブル802に基づいて1IPテーブル801の返信有831を更新できない。このため、統計テーブル管理部302は、ステップ925に移行する。
エントリ8021のatob829の値と、エントリ8012のatob812の値とが同じである場合、IPアドレスAに送信されるパケットの2IPテーブル802における返信数の測定期間と、IPアドレスAに送信されるパケットの1IPテーブル801における返信数の測定期間とが同じである。このため、統計テーブル管理部302は、1IPテーブル801のエントリ8012の返信有831の値を加算(例えば、"1"を加算)する(ステップ923)。
ステップ923の後、統計テーブル管理部302は、エントリ8021の返信待ちフラグ826の値を、"0"に置き換える(ステップ924)。これによって、統計テーブル管理部302は、この後にIPアドレスAからIPアドレスXへ送信されるパケットをルータ101が受信しても、ステップ921において、受信したパケットを返信パケットとして判定しない。
ステップ921、ステップ922又はステップ924の後、統計テーブル管理部302は、ステップ925からステップ928において異なり数を測定する。統計テーブル管理部302は、エントリ8021のbtoa827の値と、1IPテーブル801のエントリ8012のbtoa813の値とが同じであるか否かを判定する(ステップ925)。
エントリ8021のbtoa827の値と、1IPテーブル801のエントリ8012のbtoa813の値とが同じである場合、エントリ8021が示す集約フローに相当する異なり数は、エントリ8012のbtoa435に加算済みである。このため、統計テーブル管理部302は、エントリ8021のbtoa827の値と、1IPテーブル801のエントリ8012のbtoa813の値とが同じである場合、図10Bに示す統計情報測定処理を終了する。
エントリ8021のbtoa827の値と、1IPテーブル801のエントリ8012のbtoa813の値とが異なる場合、エントリ8021が示す集約フローに相当する異なり数は、エントリ8012のbtoa435に加算されていない。このため、統計テーブル管理部302は、1IPテーブル801のエントリ8012のbtoa435の値を加算(例えば、"1"を加算)する(ステップ926)。
ステップ926の後、統計テーブル管理部302は、1IPテーブル801のエントリ8012のbtoa813の値によって、2IPテーブル802のエントリ8021のbtoa827の値を置き換える(ステップ927)。これによって、統計テーブル管理部302は、この後にIPアドレスAからIPアドレスXへ送信されるパケットをルータ101が受信しても、ステップ926において受信したパケットに相当する異なり数を算出しない。
ステップ927の後、統計テーブル管理部302は、2IPテーブル802の返信待ちフラグ828に、"1"を格納する(ステップ928)。これによって、統計テーブル管理部302は、2IPテーブル802によって、IPアドレスAからIPアドレスXへ送信されるパケットへの返信パケット、すなわち、IPアドレスXからIPアドレスAへ送信されるパケットを、ルータ101が返信パケットとして未受信であることを示すことができる。
ステップ925又はステップ928の後、統計テーブル管理部302は、図10Bに示す統計情報測定処理を終了する。
図10A及び図10Bに示す処理は、IPアドレスAからIPアドレスXへ送信されるパケットをルータ101が受信した場合の処理であるが、AをXに置き換え、XをAに置き換えることによって、IPアドレスXからIPアドレスAへ送信されるパケットに関する統計情報を同様な処理によって算出することができる。この場合、更新される1IPテーブル801のセルは、エントリ8011の返信有831と、エントリ8011のbtoa435と、エントリ8012のatob434と、エントリ8012の返信有832とである。
なお、図9A、図9B、図10A、図10Bに示す処理は、1IPテーブル801及び2IPテーブル802の二つのテーブルの世代情報を用いながら、統計情報を算出する手順であるが、第2の実施形態のルータ101は、三つ以上のテーブルを保持し、各々のテーブル間で世代情報を用いて統計情報を算出してもよい。
第2の実施形態によれば、各統計情報の測定期間を保持することによって、測定期間が同一である統計情報を生成できる。これによって、ルータ101が、より正確な統計情報を生成することが可能となる。また、パケット数、異なり数、及び返信数を関連して保持するため、算出及び分析に要するメモリ等の消費を低減できる。
(第3の実施形態)
図11は、本発明の第3の実施形態の統計情報収集システムを示すブロック図である。
第3の実施形態の統計情報収集システムは、複数のルータ101と、コレクタ装置104と、ネットワーク制御装置1101とを備える。本発明の第3の実施形態において、第1の実施形態のルータ101が有するトラフィックの統計を分析する機能は、ネットワーク制御装置1101に実装される。
ネットワーク制御装置1101は、プロセッサ1102、ワークメモリ1103、プログラムメモリ1104、統計情報データベース1105、通信インタフェース(通信I/F)1106、及び、入出力装置1107を備える。また、これらは、各々バス1108によって接続される。
プロセッサ1102は、例えば、CPU(Central Processing Unit)等の演算装置である。ワークメモリ1103は、プログラム及びデータを一時的に読み出す記憶装置である。プログラムメモリ1104は、ネットワーク制御装置1101の機能を実行するためのプログラムを格納するためのメモリである。
統計情報データベース1105は、統計情報テーブル212等の各テーブル、又は、各ルータ101から送信されたトラフィック情報を保持するためのデータベースである。通信I/F1106は、ネットワークに備わるルータ101等と接続するためのインタフェースである。
入出力装置1107は、管理者等によって指示を入力されるための装置である。また、管理者等にスキャンであると判定された統計情報431等を表示するための装置である。
プログラムメモリ1104は、パケット送受信処理部1111、統計情報パケット解析処理部1112、及び、トラフィック統計処理部1113を含む。プロセッサ1102は、プログラムメモリ1104に格納される各種プログラム等をワークメモリ1103にロードし、そして、実行する。
パケット送受信処理部1111は、パケットを送受信する。統計情報パケット解析処理部1112は、ルータ101から送信されたパケットに含まれるヘッダ情報を取得する。
トラフィック統計処理部1113は、第1の実施形態のトラフィック統計処理部204と同様の処理を実行する。第1の実施形態のトラフィック統計処理部204と、第3の実施形態のトラフィック統計処理部1113とが異なる点は、第1の実施形態のトラフィック統計処理部204は、統計情報パケット生成部304によって生成されたパケットを受信パケット処理部201に送信するが、第3の実施形態のトラフィック統計処理部1113は、統計情報パケット生成部304によって生成されたパケットをパケット送受信処理部1111に送信する点である。
統計情報データベース1105は、統計情報テーブル212を含む。また、統計情報データベース1105は、トラフィック統計処理部1113によって参照される。
ネットワーク制御装置1101への入力は、ルータ101のsFlow機能やnetFlow機能によって出力された統計情報である。
なお、ルータ101を通過するパケットの数が少ない場合、パケットを複製して、複製されたパケットをネットワーク制御装置1101に送信してもよい。
前述の統計情報収集システムは、ルータ101を備え、パケットが有するヘッダ情報に基づいて統計情報を生成した。しかし、本発明の統計情報収集システムは、スイッチを備えるシステムであってもよく、MACアドレス等のヘッダ情報に基づいて統計情報を生成してもよい。また、前述の統計情報収集システムは、5−tupleのヘッダ情報に基づいて統計情報を生成したが、いずれのヘッダ情報を用いてもよい。
また、前述の統計情報431は、パケット数、異なり数、及び返信数を含んだが、受信したパケットから算出されるいかなる統計情報を含んでもよい。例えば、統計情報431は、異なり数と返信数とに基づいて算出された返信率を保持してもよい。
本実施形態によれば、パケットを受信する毎に各統計情報を一つの処理によって算出し、算出された各統計情報を関連して保持することによって、複数の統計情報を算出及び分析するために必要なメモリ等のリソースの消費を低減する。また、各統計情報の測定期間を保持することによって、測定期間が同一である統計情報を生成する。また、項目が異なるフローに関する統計情報を算出することによって、より詳細な統計情報を生成する。
また、本実施形態によれば、トラフィックの分析の際、分析のために用いる統計情報がパケット数、異なり数、及び返信数等の情報を含むため、各情報を算出するごとに統計情報テーブル212を検索することなく、メモリ等の消費を低減できる。
また、本実施形態によれば、異なり数の返信数を算出することによって、不特定の通信相手、又は、不特定の通信方法のうち返信のあった数を算出する。このため、5−tupleのすべてが一致するフローに関する返信数だけではなく、多様な観点による返信数を取得することができる。