(57)【特許請求の範囲】
【請求項１】
パケットが有するヘッダ情報に基づいて前記パケットを送受信するネットワーク装置であって、
前記ヘッダ情報は、複数の項目を含み、
前記ネットワーク装置は、
プロセッサ及びメモリを備え、
前記複数の項目のうち少なくとも二つを含む第１の項目グループと、前記第１の項目グループに含まれる項目のうち少なくとも一つの項目を含み、かつ、前記第１の項目グループに含まれる項目よりも少ない項目を含む第２の項目グループとを、前記メモリに保持し、
前記第１の項目グループに関する第１の更新結果情報を保持し、
前記第１の更新結果情報は、新規フラグ及び返信有フラグを含み、
前記ネットワーク装置は、
受信した第１のパケットが有する前記第１の項目グループの値を前記ヘッダ情報に有する前記パケットの数を含む第１の統計情報を、更新又は生成し、
前記更新又は生成された第１の統計情報と前記第２の項目グループとに基づいて、前記第１のパケットが有する前記第２の項目グループの値と同じ値を前記ヘッダ情報に有する前記パケットのパケット数と、前記第２の項目グループ以外の項目における異なり数と、前記第１のパケットが有する第２の項目グループの値と同じ値をヘッダ情報に有する前記パケットによって返信されるパケットの数を示す返信数と、を含む第２の統計情報を、更新又は生成し、
前記第１のパケットを受信した場合、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信したか否かを、前記第１の統計情報に基づいて判定し、
前記判定の結果、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信した場合、前記第１の更新結果情報に含まれる新規フラグを更新し、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であるか否かを、前記第１の統計情報に基づいて判定し、
前記判定の結果、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信である場合、前記第１の更新結果情報に含まれる返信有フラグを更新し、
前記第２の統計情報に含まれる前記異なり数を、前記第１の更新結果情報に含まれる新規フラグに基づいて算出し、
前記第２の統計情報に含まれる前記返信数を、前記第１の更新結果情報に含まれる返信有フラグに基づいて算出し、
前記算出された異なり数及び返信数によって、前記第２の統計情報を更新又は生成することを特徴とするネットワーク装置。
【請求項２】
前記第１の統計情報は、前記第１のパケットと逆方向に送信される第２のパケットの数を含み、
前記第２の統計情報は、前記第２のパケットの前記第２の項目グループ以外の項目における異なり数を含み、
前記ネットワーク装置は、
前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であるか否かを、前記第１の統計情報に基づいて判定するために、前記第１の統計情報に含まれる前記第２のパケットの数がゼロより多いか否かを判定し、
前記判定の結果、前記第１の統計情報に含まれる第２のパケットの数がゼロより多い場合、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であると判定し、
前記第２のパケットを受信した場合、前記第２の統計情報に含まれる第２のパケットの第２の項目グループ以外の項目における異なり数を、前記第１の更新結果情報に含まれる新規フラグに基づいて算出することを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
前記ネットワーク装置は、
前記含まれる項目の数が異なる三つ以上の前記項目グループと、前記各項目グループに関する前記統計情報と、前記各項目グループに関する前記更新結果情報とを保持し、
前記パケットを受信した場合、前記含まれる項目の数が多い順に、前記統計情報、並びに、前記更新結果情報の前記新規フラグ及び前記返信有フラグを更新することを特徴とする請求項１に記載のネットワーク装置。
【請求項４】
前記ネットワーク装置は、
前記統計情報を収集するコレクタ装置に接続され、
前記統計情報が所定の条件を満たした場合、前記統計情報を前記コレクタ装置に送信し、かつ、前記統計情報に含まれる値をゼロに更新することを特徴とする請求項１に記載のネットワーク装置。
【請求項５】
前記ネットワーク装置は、
前記第１の統計情報に関連して前記第２の統計情報の世代を保持する、第１の世代識別子を有し、
前記第２の統計情報の世代を示す第２の世代識別子を有し、
前記第２の統計情報に含まれる値がゼロに更新された場合、前記第２の世代識別子を更新し、
前記第１のパケットを受信した場合、前記第１の世代識別子と前記第２の世代識別子とが異なる値であるか否かを判定し、
前記判定の結果、前記第１の世代識別子と前記第２の世代識別子とが異なる値である場合、前記第２の統計情報に含まれる異なり数を加算し、前記第１の世代識別子の値を前記第２の世代識別子の値に更新することを特徴とする請求項１に記載のネットワーク装置。
【請求項６】
前記ネットワーク装置は、
前記第１の統計情報に関する返信待ちフラグを保持し、
前記第１のパケットと逆方向に送信される第２のパケットを受信した場合、前記返信待ちフラグを更新し、
前記第１のパケットを受信した場合、前記第１のパケットが前記第２のパケットの返信であるか否かを、前記返信待ちフラグに基づいて判定し、
前記判定の結果、前記第１のパケットが前記第２のパケットの返信である場合、前記第１の世代識別子と前記第２の世代識別子とが同じ値であるか否かを判定し、
前記第１の世代識別子と前記第２の世代識別子とが同じ値である場合、前記第２の統計情報に含まれる返信数を加算することを特徴とする請求項５に記載のネットワーク装置。
【請求項７】
パケットが有するヘッダ情報に基づいて前記パケットを送受信するネットワーク装置によるパケット処理方法であって、
前記ヘッダ情報は、複数の項目を含み、
前記ネットワーク装置は、プロセッサ及びメモリを備え、
前記第１の項目グループに関する第１の更新結果情報を保持し、
前記第１の更新結果情報は、新規フラグ及び返信有フラグを含み、
前記方法は、
前記ネットワーク装置が、前記複数の項目のうち少なくとも二つを含む第１の項目グループと、前記第１の項目グループに含まれる項目のうち少なくとも一つの項目を含み、かつ、前記第１の項目グループに含まれる項目よりも少ない項目を含む第２の項目グループとを、前記メモリに保持し、
前記ネットワーク装置が、受信した第１のパケットが有する前記第１の項目グループの値を前記ヘッダ情報に有する前記パケットの数を含む第１の統計情報を、更新又は生成し、
前記ネットワーク装置が、前記更新又は生成された第１の統計情報と前記第２の項目グループとに基づいて、前記第１のパケットが有する前記第２の項目グループの値と同じ値を前記ヘッダ情報に有する前記パケットのパケット数と、前記第２の項目グループ以外の項目における異なり数と、前記第１のパケットが有する第２の項目グループの値と同じ値をヘッダ情報に有する前記パケットによって返信されるパケットの数を示す返信数と、を含む第２の統計情報を、更新又は生成し、
前記ネットワーク装置が、前記第１のパケットを受信した場合、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信したか否かを、前記第１の統計情報に基づいて判定し、
前記ネットワーク装置が、前記判定の結果、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信した場合、前記第１の更新結果情報に含まれる新規フラグを更新し、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であるか否かを、前記第１の統計情報に基づいて判定し、
前記ネットワーク装置が、前記判定の結果、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信である場合、前記第１の更新結果情報に含まれる返信有フラグを更新し、
前記ネットワーク装置が、前記第２の統計情報に含まれる前記異なり数を、前記第１の更新結果情報に含まれる新規フラグに基づいて算出し、
前記ネットワーク装置が、前記第２の統計情報に含まれる前記返信数を、前記第１の更新結果情報に含まれる返信有フラグに基づいて算出し、
前記ネットワーク装置が、前記算出された異なり数及び返信数によって、前記第２の統計情報を更新又は生成することを特徴とするパケット処理方法。
【請求項８】
前記第１の統計情報は、前記第１のパケットと逆方向に送信される第２のパケットの数を含み、
前記第２の統計情報は、前記第２のパケットの前記第２の項目グループ以外の項目における異なり数を含み、
前記方法は、
前記ネットワーク装置が、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であるか否かを、前記第１の統計情報に基づいて判定するために、前記第１の統計情報に含まれる前記第２のパケットの数がゼロより多いか否かを判定し、
前記ネットワーク装置が、前記判定の結果、前記第１の統計情報に含まれる第２のパケットの数がゼロより多い場合、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であると判定し、
前記ネットワーク装置が、前記第２のパケットを受信した場合、前記第２の統計情報に含まれる第２のパケットの第２の項目グループ以外の項目における異なり数を、前記第１の更新結果情報に含まれる新規フラグに基づいて算出することを特徴とする請求項７に記載のパケット処理方法。
【請求項９】
前記ネットワーク装置は、前記含まれる項目の数が異なる三つ以上の前記項目グループと、前記各項目グループに関する前記統計情報と、前記各項目グループに関する前記更新結果情報とを保持し、
前記方法は、前記ネットワーク装置が、前記パケットを受信した場合、前記含まれる項目の数が多い順に、前記統計情報、並びに、前記更新結果情報の前記新規フラグ及び前記返信有フラグを更新することを特徴とする請求項７に記載のパケット処理方法。
【請求項１０】
前記ネットワーク装置は、前記統計情報を収集するコレクタ装置に接続され、
前記方法は、前記ネットワーク装置が、前記統計情報が所定の条件を満たした場合、前記統計情報を前記コレクタ装置に送信し、かつ、前記統計情報に含まれる値をゼロに更新することを特徴とする請求項７に記載のパケット処理方法。
【請求項１１】
前記ネットワーク装置は、
前記第１の統計情報に関連して前記第２の統計情報の世代を保持する、第１の世代識別子を有し、
前記第２の統計情報の世代を示す第２の世代識別子を有し、
前記方法は、
前記ネットワーク装置が、前記第２の統計情報に含まれる値がゼロに更新された場合、前記第２の世代識別子を更新し、
前記ネットワーク装置が、前記第１のパケットを受信した場合、前記第１の世代識別子と前記第２の世代識別子とが異なる値であるか否かを判定し、
前記ネットワーク装置が、前記判定の結果、前記第１の世代識別子と前記第２の世代識別子とが異なる値である場合、前記第２の統計情報に含まれる異なり数を加算し、前記第１の世代識別子の値を前記第２の世代識別子の値に更新することを特徴とする請求項７に記載のパケット処理方法。
【請求項１２】
前記ネットワーク装置は、前記第１の統計情報に関する返信待ちフラグを保持し、
前記方法は、
前記ネットワーク装置が、前記第１のパケットと逆方向に送信される第２のパケットを受信した場合、前記返信待ちフラグを更新し、
前記ネットワーク装置が、前記第１のパケットを受信した場合、前記第１のパケットが前記第２のパケットの返信であるか否かを、前記返信待ちフラグに基づいて判定し、
前記ネットワーク装置が、前記判定の結果、前記第１のパケットが前記第２のパケットの返信である場合、前記第１の世代識別子と前記第２の世代識別子とが同じ値であるか否かを判定し、
前記ネットワーク装置が、前記第１の世代識別子と前記第２の世代識別子とが同じ値である場合、前記第２の統計情報に含まれる返信数を加算することを特徴とする請求項１１に記載のパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置に関し、特に、パケットの統計情報を収集するネットワーク装置に関する。
【背景技術】
【０００２】
今日、インターネットは、重要な社会インフラとして定着している。そのため、従来のベストエフォート型のデータ通信だけでなく、通信品質が保証されなければならないデータが、インターネットにおいて通信され始めている。通信品質が保証されなければならないデータには、例えば、音声及び動画並びに基幹業務のトランザクションデータ等がある。
【０００３】
一方、不正なパケットが大量に送信されることによって、サーバ及びルータがサービス停止状態になるＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃の発生、ウィルス又はワームによる異常トラフィックの発生、及び、Ｐ２Ｐファイル交換による帯域占有が、インターネットにおいて問題となっている。
【０００４】
このような背景から、通信事業者及びＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）は、ネットワーク内の通信の状態を正確に把握することが必要である。この結果、ネットワーク内で通信されるデータの統計を収集し、収集された統計を分析することによってネットワークを監視する機能が必要とされている。
【０００５】
ネットワークを監視する機能の中でも、データの送信元、データの宛先、アプリケーション、及び品質レベル等によって分類されるデータ群（以下、フローと記載）毎に、統計情報を収集する機能及び統計情報を分析する機能が、特に要求されている。
【０００６】
また、収集する統計情報の種類には、通信したデータの容量を示す統計情報、端末毎に発信したフロー数、通信相手数等の出現した種類数（異なり数）等が提案されている（例えば、特許文献１参照）。
【０００７】
また、従来において、異なり数等を用いてワーム又はＤｏＳ攻撃などの異常なフローを検知する技術が提案されている（例えば、非特許文献１参照）。さらに、短期間に測定された異なり数のデータを収集し、長期間の異なり数を推定する技術が提案されている（例えば、非特許文献２参照）。
【０００８】
いずれの技術においても、フロー毎の統計情報を収集する際に問題となるのが、データトラフィック量とフローの種類との多さである。統計情報の収集処理は、データトラフィック量が多いために、メモリアクセスにかかる処理時間が大半を占める。しかし、通信回線速度の伸びはメモリアクセス速度の向上を上回っており、このため、全てのフローの統計情報を収集することが困難となっている。そこで、高速回線に対応できるフロー統計情報収集装置が求められている。
【０００９】
一方で、フロー毎の統計情報を利用することによって、ネットワークへの不正なパケットを検出し、排除する監視機能も要求されている。不正トラフィックの検出精度向上には、様々な統計情報の収集が求められる。
【００１０】
なお、統計情報を収集する機能は、ネットワーク上でパケットを転送するルータ及びスイッチ等の装置に備わる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１３６０１２号公報
【非特許文献】
【００１２】
【非特許文献１】磯部隆史、外４名、"広域ネットワーク網向け異常通信の探知機能の検討"、２００５年７月１５日発表、電子情報通信学会技術研究報告  ＩＮ２００５−４７
【非特許文献２】森達哉、外４名、"大規模トラヒックデータの長時間・詳細分析方法"、２００６年９月１５日発表、電子情報通信学会技術研究報告  ＮＳ２００６−９４
【発明の概要】
【発明が解決しようとする課題】
【００１３】
トラフィックの分析に有効な統計情報として、流量情報（すなわち、データを送受信するためのパケットの量）、異なり数情報、フローの返信数などが挙げられる。従来技術において、これらの統計情報を算出するため、それぞれ別々にテーブルを保持することによって、統計情報を算出してきた。
【００１４】
このため、これら統計情報を集約することによって、端末の振る舞い及びフローを分析する際、各統計情報を含むテーブルを検索し、必要となる統計情報を収集する必要がある。しかし、前述の統計情報は膨大であるため、分析のたびに検索する場合、メモリ等への負荷が大きくなることが問題となる。また、前述の統計情報は、別テーブルによって管理されているため、フロー等の分析の際に、同一測定期間における統計情報を集めることが難しい。
【００１５】
また、これまでフローの返信率は主に端末毎に、５−ｔｕｐｌｅの五つの項目（送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル、送信元ポート番号、宛先ポート番号）が一致するフローに関して、逆向きのフローが存在する割合を測定してきた。しかし、端末毎に測定したフローの返信率を用いても、端末毎の振る舞いしか分析することができず、端末が複数のアプリケーションを動作させている場合、管理者等は分析を誤る場合があった。
【００１６】
本発明は、前述のような課題を解決するための技術を提案するものであり、パケットを受信する毎に各統計情報を一つの連続した処理によって算出し、算出された各統計情報を関連して保持することによって、複数の統計情報を分析するために必要なリソースを低減することを目的とする。また、各統計情報の測定期間を保持することによって、測定期間が同一である統計情報を生成することを目的とする。また、項目が異なるフローに関する統計情報を算出することによって、より詳細な統計情報を生成することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の代表的な一例を示せば以下の通りである。すなわち、パケットが有するヘッダ情報に基づいて前記パケットを送受信するネットワーク装置であって、前記ヘッダ情報は、複数の項目を含み、前記ネットワーク装置は、プロセッサ及びメモリを備え、前記複数の項目のうち少なくとも二つを含む第１の項目グループと、前記第１の項目グループに含まれる項目のうち少なくとも一つの項目を含み、かつ、前記第１の項目グループに含まれる項目よりも少ない項目を含む第２の項目グループとを、前記メモリに保持し、前記第１の項目グループに関する第１の更新結果情報を保持し、前記第１の更新結果情報は、新規フラグ及び返信有フラグを含み、前記ネットワーク装置は、受信した第１のパケットが有する前記第１の項目グループの値を前記ヘッダ情報に有する前記パケットの数を含む第１の統計情報を、更新又は生成し、前記更新又は生成された第１の統計情報と前記第２の項目グループとに基づいて、前記第１のパケットが有する前記第２の項目グループの値と同じ値を前記ヘッダ情報に有する前記パケットのパケット数と、前記第２の項目グループ以外の項目における異なり数と、前記第１のパケットが有する第２の項目グループの値と同じ値をヘッダ情報に有する前記パケットによって返信されるパケットの数を示す返信数と、を含む第２の統計情報を、更新又は生成し、前記第１のパケットを受信した場合、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信したか否かを、前記第１の統計情報に基づいて判定し、前記判定の結果、前記第１のパケットの第１の項目グループの値をヘッダ情報に有するパケットを、前記ネットワーク装置が初めて受信した場合、前記第１の更新結果情報に含まれる新規フラグを更新し、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信であるか否かを、前記第１の統計情報に基づいて判定し、前記判定の結果、前記第１のパケットが前記ネットワーク装置が既に受信したパケットの返信である場合、前記第１の更新結果情報に含まれる返信有フラグを更新し、前記第２の統計情報に含まれる前記異なり数を、前記第１の更新結果情報に含まれる新規フラグに基づいて算出し、前記第２の統計情報に含まれる前記返信数を、前記第１の更新結果情報に含まれる返信有フラグに基づいて算出し、前記算出された異なり数及び返信数によって、前記第２の統計情報を更新又は生成する。
【発明の効果】
【００１８】
本発明の一実施形態によると、トラフィックの分析のため、分析に有効な複数の統計情報を関連させて算出し、保持することによって、メモリ等の消費を低減できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態の統計情報収集システムを示すブロック図である。
【図２】本発明の第１の実施形態のルータの機能ブロックを示すブロック図である。
【図３】本発明の第１の実施形態のトラフィック統計処理部の機能ブロックを示すブロック図である。
【図４Ａ】本発明の第１の実施形態の集約フローの統計情報を示す説明図である。
【図４Ｂ】本発明の第１の実施形態の集約フローを分析する処理を示すフローチャートである。
【図５Ａ】本発明の第１の実施形態の統計情報テーブルを示す説明図である。
【図５Ｂ】本発明の第１の実施形態の１ＩＰテーブルを示す説明図である。
【図５Ｃ】本発明の第１の実施形態の２ＩＰテーブルを示す説明図である。
【図５Ｄ】本発明の第１の実施形態の２ＩＰ＿１ＰＴｂテーブルを示す説明図である。
【図５Ｅ】本発明の第１の実施形態のＦｌｏｗテーブルを示す説明図である。
【図６】本発明の第１の実施形態の更新結果テーブルを示す説明図である。
【図７】本発明の第１の実施形態の統計情報テーブル更新処理を示すフローチャートである。
【図８】本発明の第１の実施形態の統計情報テーブル更新処理の統計情報更新処理を示すフローチャートである。
【図９Ａ】本発明の第２の実施形態の１ＩＰテーブルを示す説明図である。
【図９Ｂ】本発明の第２の実施形態の２ＩＰテーブルを示す説明図である。
【図１０Ａ】本発明の第２の実施形態のＳＩＰに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
【図１０Ｂ】本発明の第２の実施形態のＤＩＰに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
【図１１】本発明の第３の実施形態の統計情報収集システムを示すブロック図である。
【発明を実施するための形態】
【００２０】
（第１の実施形態）
本発明は、受信したパケットのヘッダ情報に基づいて、パケット数、異なり数、及び、返信数等を含むトラフィックの統計情報を一連の処理によって算出し、算出された統計情報を、例えば、一つのテーブルにおいて、関連させて保持することを特徴とする。また、ヘッダ情報に含まれる項目の組合せによって、パケット数、異なり数、及び、返信数を算出することによって、多様な観点による統計情報を生成する。
【００２１】
本実施形態における異なり数とは、パケットのヘッダ情報に含まれる項目のうち、特定の組合せ（以下、集約フローと記載）を共通して含む複数のパケットが、ヘッダ情報に含まれるその他の項目において相互に異なる場合の、異なるパケットの種類数を示す。ここで、パケットに共通して含まれる特定の組合せ以外の項目を、異なり数の測定箇所と記載する。
【００２２】
例えば、宛先ＩＰアドレスがＡであり宛先ポート番号がＢである項目をヘッダ情報に含む複数のパケットに、送信元ＩＰアドレスがＣであるパケットと、送信元ＩＰアドレスがＤであるパケットとがあるとする。この場合、宛先ＩＰアドレスがＡであり宛先ポート番号がＢであるフローの、送信元ＩＰアドレスにおける異なり数は、ＣとＤとの種類数である、２である。この例における異なり数の測定箇所は、送信元ＩＰアドレスである。
【００２３】
そして、さらにこの例において、宛先ＩＰアドレスがＡであり、宛先ポート番号がＢであり、送信元ＩＰアドレスがＥであるパケットが生成されたとする。この場合、宛先ＩＰアドレスがＡであり宛先ポート番号がＢであるフローの、送信元ＩＰアドレスにおける異なり数は、３に増加する。すなわち、異なり数の測定箇所である送信元ＩＰアドレスが、新たな値を示すパケットが生成される場合、宛先ＩＰアドレスがＡであり宛先ポート番号がＢであるフローの異なり数は増加する。
【００２４】
本実施形態は、前述のような算出方法を用いて、異なり数を算出するものである。
【００２５】
本発明の第１の実施形態を図１から図８を用いて説明する。
【００２６】
図１は、本発明の第１の実施形態の統計情報収集システムを示すブロック図である。
【００２７】
第１の実施形態の統計情報収集システムは、複数のルータ１０１、複数のサーバ１０２、複数の端末１０３、及び、少なくとも一つのコレクタ装置１０４を備える。図１において、ルータ１０１は、ルータＡ１０１、ルータＢ１０１、及びルータＣ１０１であり、サーバ１０２は、サーバＡ１０２、及びサーバＢ１０２であり、端末１０３は、端末Ａ１０３、端末Ｂ１０３、及び端末Ｃ１０３である。また、図１のコレクタ装置１０４は、コレクタ装置Ａ１０４である。
【００２８】
統計情報収集システムに備わるこれらの装置は、ネットワークを介して相互に接続される。ネットワークは、例えば、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）によって提供される。また、ネットワークは、例えば、企業内ネットワークであってもよい。
【００２９】
図１において、端末Ａ１０３、端末Ｂ１０３、及び端末Ｃ１０３は、ルータＡ１０１と接続される。サーバＡ１０２は、ルータＢ１０１と接続され、サーバＢ１０２は、ルータＣ１０１と接続される。コレクタ装置Ａ１０４は、ルータＡ１０１と接続される。また、ルータＡ１０１、ルータＢ１０１、及びルータＣ１０１は、各々接続される。
【００３０】
ルータ１０１は、ネットワーク内で通信されるパケットをそのパケットの宛先に転送する装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。また、ルータ１０１は、通信されるパケットの統計情報を収集することによって、パケットによるトラフィックを分析し、収集された統計情報をコレクタ装置１０４に送信する。
【００３１】
サーバ１０２は、端末１０３からの要求を含むパケットを受信し、送信された要求に従って端末１０３にパケットを送信する。サーバ１０２は、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。
【００３２】
端末１０３は、ユーザ等が用いる装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。ユーザ等は、端末１０３を介して、情報を送信する旨の要求を含むパケットを、サーバ１０２へ送信する。端末１０３は、アプリケーションを実行するためのプログラムを保持してもよく、ユーザ等は、アプリケーションを用いて、情報の要求を送信してもよい。
【００３３】
コレクタ装置１０４は、ルータ１０１から送信される統計情報を収集する装置であり、少なくとも一つのプロセッサ、記憶装置及び通信インタフェースを備える。図１のコレクタ装置Ａ１０４はルータＡ１０１に接続されるが、本実施形態のコレクタ装置１０４は、いずれのルータ１０１に接続されてもよい。
【００３４】
また、コレクタ装置１０４に直接接続されないルータ１０１（ルータＢ１０１及びルータＣ１０１に相当）は、コレクタ装置１０４に接続されるルータ１０１（ルータＡ１０１に相当）を介して、統計情報をコレクタ装置１０４に送信してもよい。
【００３５】
図２は、本発明の第１の実施形態のルータ１０１の機能ブロックを示すブロック図である。
【００３６】
ルータ１０１は、受信パケット処理部２０１、送信パケット処理部２０２、検索処理部２０３、トラフィック統計処理部２０４、ルーティングテーブル２１１、統計情報テーブル２１２、及び制御部２０５を備える。
【００３７】
管理端末２０６は、ルータ１０１の制御部２０５に接続される。管理者は、管理端末２０６を介して受信パケット処理部２０１、送信パケット処理部２０２、検索処理部２０３、及びトラフィック統計処理部２０４に設定される各種パラメータを変更できる。
【００３８】
なお、管理端末２０６は、図１の統計情報収集システムのネットワークを介して各ルータ１０１に接続されてもよい。また、図１の統計情報収集システムとは別のネットワークによって、各ルータ１０１に接続されてもよい。
【００３９】
受信パケット処理部２０１は、入力ポートを介してパケットを受信する。受信パケット処理部２０１は、受信したパケットをバッファに蓄積し、蓄積されたパケットのヘッダ情報を検索処理部２０３、及びトラフィック統計処理部２０４に送信する。
【００４０】
検索処理部２０３は、受信パケット処理部２０１からヘッダ情報を受信した場合、ルーティングテーブル２１１を検索し、検索結果を受信パケット処理部２０１に送信する。ルーティングテーブル２１１は、宛先ＩＰアドレスと宛先ＩＰアドレスに対応する出力ポートとを保持する。
【００４１】
受信パケット処理部２０１は、検索処理部２０３から検索結果を受信した場合、バッファに蓄積されていたパケットと検索結果とを送信パケット処理部２０２へ送信する。送信パケット処理部２０２は、受信パケット処理部２０１からパケットと検索結果とを受信した場合、検索結果が示す出力ポートを介して、パケットを宛先ＩＰアドレスに向けてネットワークへ送信する。
【００４２】
トラフィック統計処理部２０４は、受信パケット処理部２０１からパケットのヘッダ情報を受信した場合、受信したヘッダ情報に基づいて、トラフィックの統計情報を生成する。統計情報テーブル２１２は、トラフィック統計処理部２０４によって収集された、ヘッダ情報が示すフローを特定する条件、及び、ヘッダ情報が示すフロー毎の統計情報を保持する。
【００４３】
トラフィック統計処理部２０４については、図３において詳細を説明する。
【００４４】
図３は、本発明の第１の実施形態のトラフィック統計処理部２０４の機能ブロックを示すブロック図である。
【００４５】
トラフィック統計処理部２０４は、ヘッダ情報蓄積部３０１、統計テーブル管理部３０２、フロー分析部３０３、及び統計情報パケット生成部３０４を備える。ヘッダ情報蓄積部３０１、統計テーブル管理部３０２、フロー分析部３０３、及び統計情報パケット生成部３０４は、各々の処理を実行するための各種パラメータを、制御部２０５を介して管理者等によってあらかじめ設定される。
【００４６】
ヘッダ情報蓄積部３０１は、受信パケット処理部２０１からヘッダ情報を受信し、受信したヘッダ情報を統計テーブル管理部３０２に送信する。
【００４７】
統計テーブル管理部３０２は、統計情報テーブル２１２を保持し、あらかじめ保持された複数の集約フローについて統計情報を生成及び収集する。集約フローは、管理者によってあらかじめ統計情報テーブル２１２に格納される。
【００４８】
本実施形態における集約フローは、５−ｔｕｐｌｅの項目（送信元ＩＰアドレス（以下、ＳＩＰ）、宛先ＩＰアドレス（以下、ＤＩＰ）、送信元ポート番号（以下、ＳＰＴ）、宛先ポート番号（以下、ＤＰＴ）、及びプロトコル番号（以下、ＰＲＴ））から任意に選択された組み合わせが一致するパケット群として定義される。
【００４９】
例えば、本実施形態の集約フローには、集約フロー１（ＳＩＰ、ＰＲＴ）、集約フロー２（ＤＩＰ、ＰＲＴ）、及び、集約フロー３（ＳＩＰ、ＤＩＰ、ＰＲＴ）などが定義される。ヘッダ情報の５−ｔｕｐｌｅを、集約フローの組合せの項目とする場合、集約フローは、最大３１個（２＾５−１）まで定義される。
【００５０】
統計テーブル管理部３０２は、さらに、更新結果テーブル３１０を保持し、各集約フローに関する統計情報の更新結果を更新結果テーブル３１０に格納する。
【００５１】
統計テーブル管理部３０２は、ヘッダ情報蓄積部３０１から受信したヘッダ情報について、集約フロー毎に、統計情報を格納するエントリを統計情報テーブル２１２から検索する。そして、統計テーブル管理部３０２は、検索されたエントリの統計情報を更新する。
【００５２】
各集約フローの統計情報は、統計情報テーブル２１２に格納される。また、集約フローの統計情報が条件を満たした場合、統計テーブル管理部３０２は、フロー分析部３０３へ、条件を満たした集約フローの統計情報を送信する。
【００５３】
フロー分析部３０３は、送信された集約フローがスキャンであるか否かを判定し、スキャンである場合、統計テーブル管理部３０２から送信された集約フローを統計情報パケット生成部３０４に送信する。本実施形態におけるスキャンとは、異常がある状態又は異常があると疑われる状態であることを示す。
【００５４】
統計テーブル管理部３０２からフロー分析部３０３へ送信される統計情報の一例を図４Ａに示す。なお、統計情報テーブル２１２については図５において、更新結果テーブル３１０については図６において、統計情報テーブル２１２の更新方法については図７において、各々後述する。
【００５５】
ルータ１０１の受信パケット処理部２０１、送信パケット処理部２０２、検索処理部２０３、トラフィック統計処理部２０４、及び制御部２０５は、ルータ１０１が有するプロセッサがプログラムを実行することによって実装されてもよい。また、前述のルータ１０１の各処理部によって実行される複数の処理を、プロセッサが複数の処理部として実行してもよい。
【００５６】
また、ルーティングテーブル２１１、及び、統計情報テーブル２１２は、ルータ１０１が有する不揮発性メモリ等の記憶装置に格納されてもよい。
【００５７】
図４Ａは、本発明の第１の実施形態の集約フローの統計情報を示す説明図である。
【００５８】
図４Ａに示す統計情報は、項目４２１及び統計情報４３１を含む。項目４２１は、集約フローを含み、統計情報４３１は、パケット数、異なり数及び返信数等の統計情報を含む。
【００５９】
図４Ａに示す統計情報は、ＳＩＰが"Ａ"であり、ＤＰＴが"８０"であり、ＰＲＴが"６"である集約フローのパケット数が、"１０００"であることを示す。また、図４Ａが示す集約フローのパケットは、１０００通りある宛先のうち、返信があった宛先が三つであることを示す。
【００６０】
図４Ｂは、本発明の第１の実施形態の集約フローを分析する処理を示すフローチャートである。
【００６１】
フロー分析部３０３は、統計テーブル管理部３０２から受信した集約フローの統計情報から、トラフィックの帯域と種別とを判定する。フロー分析部３０３は、トラフィックの分析処理として、例えば図４Ｂに示す処理のように、スキャンとなるトラフィックの帯域と種別とを判定する。
【００６２】
フロー分析部３０３は、図４Ａに示す統計情報を統計テーブル管理部３０２から受信した場合（ステップ７００）、宛先の異なり数が所定の閾値よりも大きいか否かを判定する（ステップ７０１）。宛先（ＩＰ＿ｂ）の異なり数が所定の閾値よりも大きい場合、宛先からの返信数が所定の閾値よりも少ないか否かを判定する（ステップ７０２）。
【００６３】
宛先からの返信数が所定の閾値よりも少ない場合、ステップ７００において受信した集約フローは、正常な通信がされていない可能性がある。このため、フロー分析部３０３は、ステップ７００において受信した集約フローを、スキャンであると判定する（ステップ７０３）。
【００６４】
ステップ７０１において宛先の異なり数が所定の閾値以下である場合、ステップ７０２において宛先からの返信数が所定の閾値以上である場合、及び、ステップ７０３の後、フロー分析部３０３は、分析処理を終了する（ステップ７０４）。
【００６５】
フロー分析部３０３は、統計テーブル管理部３０２から受信した集約フローの統計情報（例えば、図４Ａ）を用いて、集約フローがスキャンであるか否かを判定する。これによってフロー分析部３０３は、例えば、多くのサーバ１０２へパケットを送信しているが返信が少ない、という集約フローを、統計情報から抽出することができ、この結果、フロー分析部３０３の分析精度が向上する。
【００６６】
従来技術において、パケット数、異なり数、及び、返信数は、相互に関連しない別々の処理によって算出されており、統計情報として関連してフロー分析部３０３に送信されることがなかった。このため、フロー分析部３０３が、返信の有無を取得するためには、集約フローを用いて統計情報テーブル２１２を再度検索する必要があり、不必要なメモリアクセスによる負荷がかかっていた。さらに、該当する集約フローが測定されていた期間中に現れた返信数を正確に把握することは困難であった。
【００６７】
フロー分析部３０３による分析処理の結果及び集約フローの統計情報は、フロー分析部３０３から統計情報パケット生成部３０４に送信される。また、フロー分析部３０３は、集約フローをスキャンであると判定した場合、その判定結果、集約フローの項目、及び集約フローの統計情報を制御部２０５に送信する。これは、集約フローがスキャンであると判定されたことを、管理端末２０６に送信するためである。
【００６８】
統計情報パケット生成部３０４は、フロー分析部３０３から受信した集約フローの判定結果及び統計情報を送信するためのフォーマットに変換し、変換されたフォーマットを、ルータ１０１の受信パケット処理部２０１に送信する。なお、統計情報の送信先となるコレクタ装置１０４のアドレスは、管理者によって制御部２０５を介して、統計情報パケット生成部３０４に事前に格納される。
【００６９】
図５Ａは、本発明の第１の実施形態の統計情報テーブル２１２を示す説明図である。
【００７０】
統計情報テーブル２１２は、集約フローの項目に基づいた複数のテーブルを保持する。そして、統計情報テーブル２１２が複数のテーブルに各集約フローに対応するトラフィック数、すなわち、パケット数等の情報を保持することによって、統計テーブル管理部３０２は、統計情報を収集できる。
【００７１】
図５Ａの統計情報テーブル２１２は、１ＩＰテーブル４０１、２ＩＰテーブル４０２、２ＩＰ＿１ＰＴｂテーブル４０３、及び、Ｆｌｏｗテーブル４０４を保持する。本実施形態の統計情報テーブル２１２は、集約フローの項目の組合せに従って、テーブルを保持する。このため、統計情報テーブル２１２は、図５Ａに示すテーブル以外を保持してもよい。
【００７２】
１ＩＰテーブル４０１は、ＳＩＰとＰＲＴとの組合せからなる集約フロー、及び、ＤＩＰとＰＲＴとの組合せからなる集約フローの、二つの集約フローの統計情報を保持する。２ＩＰテーブル４０２は、ＳＩＰとＤＩＰとＰＲＴとの組合せからなる集約フローの統計情報を保持する。
【００７３】
２ＩＰ＿１ＰＴｂテーブル４０３は、ＳＩＰとＤＩＰとＳＰＴとＰＲＴとの組合せからなる集約フローと、ＳＩＰとＤＩＰとＤＰＴとＰＲＴとの組合せからなる集約フローとの統計情報を保持する。Ｆｌｏｗテーブル４０４は、５−ｔｕｐｌｅすべての組合せからなる集約フローの統計情報を保持する。
【００７４】
図５Ｂは、本発明の第１の実施形態の１ＩＰテーブル４０１を示す説明図である。
【００７５】
統計情報テーブル２１２が保持する各テーブルは、エントリ番号４１１、項目４２１、及び統計情報４３１を含む。エントリ番号４１１は、各エントリを一意に識別する識別子である。項目４２１は、集約フローの項目を示し、各項目に対応するパケットのヘッダ情報を含む。
【００７６】
１ＩＰテーブル４０１の項目４２１は、ＩＰ＿ａ４２２及びＰＲＴ４２３を含む。ＩＰ＿ａ４２２は、パケットのヘッダ情報に含まれるＩＰアドレス、すなわち、ＳＩＰ又はＤＩＰの値を含む。ＰＲＴ４２３は、ヘッダ情報に含まれるＰＲＴを含む。
【００７７】
本実施形態の統計情報４３１は、集約フローのトラフィックに関する統計情報を含む。統計情報４３１は、双方向の値、すなわち、ＩＰ＿ａ４２２が示すＩＰアドレスから送信されるパケットの統計情報と、ＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットの統計情報と、を含む。統計情報４３１は、パケットの積算バイト数、又は、フロー開始時刻等の統計情報を含んでもよい。
【００７８】
図５Ｂの統計情報４３１は、パケット数、及び、異なり数を含む。統計情報４３１のパケット数は、ａｔｏｂ４３２、及び、ｂｔｏａ４３３を含む。ａｔｏｂ４３２は、ＩＰ＿ａ４２２が示すＩＰアドレスから、ＩＰ＿ｂが示すＩＰアドレス（ヘッダ情報に含まれる、ＩＰ＿ａ４２２が示すＩＰアドレス以外のＩＰアドレス、以下同じ）へ、ＰＲＴ４２３が示すＰＲＴによって送信されたパケットのパケット数を示す。ｂｔｏａ４３３は、ＩＰ＿ｂが示すＩＰアドレスから、ＩＰ＿ａ４２２が示すＩＰアドレスへ、ＰＲＴ４２３が示すＰＲＴによって送信されたパケットのパケット数を示す。
【００７９】
統計情報４３１の異なり数は、項目４２１をヘッダ情報に含むパケットであり、かつ、項目４２１に含まれないヘッダ情報を含むパケットの種類数を示す。統計情報４３１の異なり数は、双方向の値を保持する。統計情報４３１は、異なり数の測定箇所毎に異なり数を含む。
【００８０】
図５Ｂの１ＩＰテーブル４０１の異なり数は、ＩＰ＿ｂを測定箇所とする異なり数と、Ｆｌｏｗを測定箇所とする異なり数とを含む。ＩＰ＿ｂを測定箇所とする異なり数は、ＩＰ＿ａ４２２が示す項目以外のＩＰアドレスを示すヘッダ情報の項目を測定箇所とする異なり数を示す。Ｆｌｏｗを測定箇所とする異なり数は、ＩＰ＿ａ４２２及びＰＲＴ４２３が示す項目以外の、すべてのヘッダ情報の項目を測定箇所とする異なり数を示す。
【００８１】
ＩＰ＿ｂを測定箇所とする異なり数は、ａｔｏｂ４３４、ｂｔｏａ４３５及び返信有４３６を含む。また、Ｆｌｏｗを測定箇所とする異なり数は、ａｔｏｂ４３７、ｂｔｏａ４３８及び返信有４３９を含む。
【００８２】
ａｔｏｂ４３４は、ＩＰ＿ａ４２２が示すＩＰアドレスがＳＩＰであり、かつ、ＰＲＴ４２３がＰＲＴである集約フローの、ＤＩＰを測定箇所とする異なり数を含む。また、ｂｔｏａ４３５は、ＩＰ＿ａ４２２が示すＩＰアドレスがＤＩＰであり、かつ、ＰＲＴ４２３がＰＲＴである集約フロ−の、ＳＩＰを測定箇所とする異なり数を含む。
【００８３】
また、返信有４３６は、ＩＰ＿ａ４２２及びＰＲＴ４２３が示す値と、測定箇所であるＩＰ＿ｂとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ１０１に受信されたパケットの数（返信数）を含む。すなわち、返信有４３６は、項目４２１が示す集約フローのうち、返信されたパケットが含むＩＰ＿ｂの種類数を示す。
【００８４】
また、ａｔｏｂ４３７は、ＩＰ＿ａ４２２が示すＩＰアドレスがＳＩＰであり、かつ、ＰＲＴ４２３がＰＲＴである集約フローの、ＤＩＰ、ＳＰＴ、及びＤＰＴを測定箇所とする異なり数を含む。ｂｔｏａ４３８は、ＩＰ＿ａ４２２が示すＩＰアドレスがＤＩＰであり、かつ、ＰＲＴ４２３がＰＲＴである集約フローの、ＳＩＰ、ＳＰＴ、及びＤＰＴを測定箇所とする異なり数を含む。
【００８５】
また、返信有４３９は、ＩＰ＿ａ４２２及びＰＲＴ４２３が示す値と、測定箇所であるＳＩＰ（又はＤＩＰ）、ＳＰＴ及びＤＰＴと、をヘッダ情報に含むパケットのうち、送信と返信との両方がルータ１０１に受信されたパケットの数（返信数）を含む。すなわち、返信有４３９は、項目４２１が示す集約フローのうち、返信されたパケットが含む、ＳＩＰ（又はＤＩＰ）、ＳＰＴ及びＤＰＴの組合せの種類数を示す。
【００８６】
図５Ｂの１ＩＰテーブル４０１は、前述の異なり数以外の異なり数を含んでもよい。例えば、宛先のポート（ＤＰＴ）を測定箇所とする異なり数を含んでもよく、送信元のポート（ＳＰＴ）を測定箇所とする異なり数を含んでもよい。
【００８７】
図５Ｃは、本発明の第１の実施形態の２ＩＰテーブル４０２を示す説明図である。
【００８８】
２ＩＰテーブル４０２は、エントリ番号４１１、項目４２１、及び、統計情報４３１を含む。
【００８９】
２ＩＰテーブル４０２の項目４２１は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、及びＰＲＴ４２３を含む。２ＩＰテーブル４０２の項目４２１は、ＳＩＰ及びＤＩＰの組合せと、ＰＲＴとの値を、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、及びＰＴ＿ｂ４２５に含む。
【００９０】
１ＩＰテーブル４０１と２ＩＰテーブル４０２との相違点は、ＩＰ＿ｂの値が、１ＩＰテーブル４０１に格納されず、２ＩＰテーブル４０２のＩＰ＿ｂ４２４に格納される点である。また、統計情報４３１における異なり数の測定箇所が異なる点である。
【００９１】
２ＩＰテーブル４０２の統計情報４３１は、パケット数及び異なり数を含む。２ＩＰテーブル４０２のパケット数は、１ＩＰテーブル４０１と同様に、ａｔｏｂ４３２、及び、ｂｔｏａ４３３を含む。
【００９２】
図５Ｃのａｔｏｂ４３２は、ＩＰ＿ａ４２２が示すＩＰアドレスから、ＩＰ＿ｂ４２４が示すＩＰアドレスへ、ＰＲＴ４２３が示すＰＲＴによって送信されたパケットのパケット数を示す。図５Ｃのｂｔｏａ４３３は、ＩＰ＿ｂ４２４が示すＩＰアドレスから、ＩＰ＿ａ４２２が示すＩＰアドレスへ、ＰＲＴ４２３が示すＰＲＴによって送信されたパケットのパケット数を示す。
【００９３】
図５Ｃに示す２ＩＰテーブル４０２の異なり数は、ＰＴ＿ｂを測定箇所とする異なり数を含む。本実施形態のＰＴ＿ｂとは、ヘッダ情報に含まれるポート番号であり、ＩＰ＿ｂ４２４が示すＩＰアドレスに対応するポート番号である。
【００９４】
ＰＴ＿ｂを測定箇所とする異なり数は、ａｔｏｂ４４０、ｂｔｏａ４４１及び返信有４４２を含む。ａｔｏｂ４４０は、ＩＰ＿ａ４２２が示すＩＰアドレスがＳＩＰであり、ＩＰ＿ｂ４２４が示すＩＰアドレスがＤＩＰであり、かつ、ＰＲＴ４２３が示す値がＰＲＴである集約フロ−の、ＤＰＴを測定箇所とする異なり数を示す。
【００９５】
ｂｔｏａ４４１は、ＩＰ＿ａ４２２が示すＩＰアドレスがＤＩＰであり、ＩＰ＿ｂ４２４が示すＩＰアドレスがＳＩＰであり、かつ、ＰＲＴ４２３が示す値がＰＲＴである集約フロ−の、ＳＰＴを測定箇所とする異なり数を示す。
【００９６】
また、返信有４４２は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４及びＰＲＴ４２３が示す値と、測定箇所であるＰＴ＿ｂとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ１０１に受信されたパケットの数（返信数）を含む。すなわち、返信有４３６は、項目４２１が示す集約フローのうち、返信されたパケットが含むＰＴ＿ｂの種類数を示す。
【００９７】
図５Ｃの２ＩＰテーブル４０２は、前述の異なり数以外の異なり数を含んでもよい。例えば、ＰＴ＿ａ（ヘッダ情報に含まれるポート番号であり、ＩＰ＿ａ４２２が示すＩＰアドレスに対応するポート番号、以下同じ）を測定箇所とする異なり数を含んでもよい。
【００９８】
図５Ｄは、本発明の第１の実施形態の２ＩＰ＿１ＰＴｂテーブル４０３を示す説明図である。
【００９９】
２ＩＰ＿１ＰＴｂテーブル４０３は、エントリ番号４１１、項目４２１、及び、統計情報４３１を含む。
【０１００】
２ＩＰ＿１ＰＴｂテーブル４０３の項目４２１は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ｂ４２５、及びＰＲＴ４２３を含む。２ＩＰ＿１ＰＴｂテーブル４０３の項目４２１は、ＳＩＰと、ＤＩＰと、ＳＰＴ（又はＤＰＴ）と、ＰＲＴとの値を、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ｂ４２５、及びＰＲＴ４２３に含む。
【０１０１】
２ＩＰテーブル４０２と２ＩＰ＿１ＰＴｂテーブル４０３との相違点は、ＰＴ＿ｂの値が、２ＩＰテーブル４０２に格納されず、２ＩＰ＿１ＰＴｂテーブル４０３のＰＴ＿ｂ４２５に格納される点である。また、統計情報４３１における異なり数の測定箇所が異なる点がある。
【０１０２】
２ＩＰ＿１ＰＴｂテーブル４０３の統計情報４３１は、パケット数及び異なり数を含む。２ＩＰ＿１ＰＴｂテーブル４０３のパケット数は、ａｔｏｂ４３２、及び、ｂｔｏａ４３３を含む。
【０１０３】
図５Ｄのａｔｏｂ４３２は、ＩＰ＿ａ４２２が示すＩＰアドレスから、ＩＰ＿ｂ４２４が示すＩＰアドレスへ、ＰＴ＿ｂ４２５が示すＤＰＴとＰＲＴ４２３が示すＰＲＴとによって送信されたパケットのパケット数を示す。図５Ｃのｂｔｏａ４３３は、ＩＰ＿ｂ４２４が示すＩＰアドレスから、ＩＰ＿ａ４２２が示すＩＰアドレスへ、ＰＴ＿ｂ４２５が示すＳＰＴとＰＲＴ４２３が示すＰＲＴとによって送信されたパケットのパケット数を示す。
【０１０４】
図５Ｄに示す２ＩＰ＿１ＰＴｂテーブル４０３の異なり数は、ＰＴ＿ａを測定箇所とする異なり数を含む。ＰＴ＿ａを測定箇所とする異なり数は、ａｔｏｂ４４３、ｂｔｏａ４４４及び返信有４４５を含む。
【０１０５】
ａｔｏｂ４４３は、ＩＰ＿ａ４２２が示すＩＰアドレスがＳＩＰであり、ＩＰ＿ｂ４２４が示すＩＰアドレスがＤＩＰであり、ＰＴ＿ｂ４２５が示す値がＤＰＴであり、ＰＲＴ４２３が示す値がＰＲＴである集約フロ−の、ＳＰＴを測定箇所とする異なり数を示す。
【０１０６】
ｂｔｏａ４４４は、ＩＰ＿ａ４２２が示すＩＰアドレスがＤＩＰであり、ＩＰ＿ｂ４２４が示すＩＰアドレスがＳＩＰであり、ＰＴ＿ｂ４２５が示す値がＳＰＴであり、ＰＲＴ４２３が示す値がＰＲＴである集約フロ−の、ＤＰＴを測定箇所とする異なり数を示す。
【０１０７】
また、返信有４４５は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ｂ４２５及びＰＲＴ４２３が示す値と、測定箇所であるＰＴ＿ａとをヘッダ情報に含むパケットのうち、送信と返信との両方がルータ１０１に受信されたパケットの数（返信数）を含む。すなわち、返信有４３６は、項目４２１が示す集約フローのうち、返信されたパケットが含むＰＴ＿ａの種類数を示す。
【０１０８】
図５Ｅは、本発明の第１の実施形態のＦｌｏｗテーブル４０４を示す説明図である。
【０１０９】
Ｆｌｏｗテーブル４０４は、エントリ番号４１１、項目４２１、及び、統計情報４３１を含む。
【０１１０】
Ｆｌｏｗテーブル４０４の項目４２１は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、ＰＴ＿ｂ４２５、及びＰＲＴ４２３を含む。すなわち、Ｆｌｏｗテーブル４０４は、ヘッダ情報に含まれるすべての項目の組合せを集約フローとする統計情報を含む。
【０１１１】
Ｆｌｏｗテーブル４０４の統計情報４３１は、パケット数を含む。Ｆｌｏｗテーブル４０４のパケット数は、ａｔｏｂ４３２、及び、ｂｔｏａ４３３を含む。図５Ｅにおいて、項目４２１に含まれるヘッダ情報は、５−ｔｕｐｌｅの情報のみであるため、Ｆｌｏｗテーブル４０４には、異なり数は含まれない。
【０１１２】
図５Ａ〜図５Ｅにおいて、項目４２１に含まれるヘッダ情報は、５−ｔｕｐｌｅの情報のみであったが、その他のヘッダ情報が含まれてもよい。例えば、ＭＡＣアドレス等のヘッダ情報が含まれてもよい。
【０１１３】
２ＩＰテーブル４０２、２ＩＰ＿１ＰＴｂテーブル４０３、Ｆｌｏｗテーブル４０４の項目４２１において、ＳＩＰの値がＩＰ＿ａ４２２に含まれる場合、ＤＩＰの値はＩＰ＿ｂ４２４に含まれる。また、ＤＩＰの値がＩＰ＿ａ４２２に含まれる場合、ＳＩＰの値はＩＰ＿ｂ４２４に含まれる。
【０１１４】
なお、２ＩＰテーブル４０２、２ＩＰ＿１ＰＴｂテーブル４０３、Ｆｌｏｗテーブル４０４のように項目４２１にＩＰアドレスが二つ（ＳＩＰ、ＤＩＰ）含まれる場合、所定の基準に従って、各ＩＰアドレスは、ＩＰ＿ａ４２２又はＩＰ＿ｂ４２４とに格納される。格納方法には、例えば、ＳＩＰ、及び、ＤＩＰのうち値の小さいＩＰアドレスをＩＰ＿ａ４２２に格納し、値の大きいＩＰアドレスをＩＰ＿ｂ４２４に格納する方法がある。
【０１１５】
また、ＩＰ＿ａ４２２及びＩＰ＿ｂ４２４へのヘッダ情報の格納方法には、例えば、統計情報テーブル２１２を保持するルータ１０１がＬＡＮとＷＡＮとの境界に配置されていた場合、ＬＡＮ側のＩＰアドレスをＩＰ＿ａ４２２に格納し、ＷＡＮ側のＩＰアドレスをＩＰ＿ｂ４２４に格納する方法がある。
【０１１６】
また、統計情報テーブル２１２は、図５Ｂ〜図５Ｅが示すテーブルのヘッダ情報の組合せではなく、他のヘッダ情報の組合せを含むテーブルを保持してもよい。例えば、統計情報テーブル２１２は、項目４２１に、ＩＰ＿ａ４２２、ＰＴ＿ｂ４２５、及びＰＲＴ４２３を含むテーブルを保持してもよい。また、例えば、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、及び、ＰＲＴ４２３を含むテーブルを保持してもよい。
【０１１７】
統計情報テーブル２１２が、複数のヘッダ情報の組合せを含むテーブルを保持することによって、ルータ１０１が、複数の異なる観点によるトラフィックの統計情報を収集及び分析することができる。
【０１１８】
図６は、本発明の第１の実施形態の更新結果テーブル３１０を示す説明図である。
【０１１９】
更新結果テーブル３１０は、統計情報テーブル２１２に保持される各テーブルの更新結果を格納するためのテーブルである。また、各テーブルの異なり数及び返信数を算出するためのテーブルである。
【０１２０】
更新結果テーブル３１０の各エントリ（図６において、エントリ５０１１〜エントリ５０１７）は、統計情報テーブル２１２に保持される各テーブルに対応する。更新結果テーブル３１０は、組合せ５０１、新規フラグ５１１、及び返信有フラグ５２１を含む。組合せ５０１は、統計情報テーブル２１２の項目４２１に対応する。
【０１２１】
図６の更新結果テーブル３１０において、エントリ５０１７の組合せ５０１は、図５Ｂの１ＩＰテーブル４０１の項目４２１に対応し、エントリ５０１４の組合せ５０１は、図５Ｃの２ＩＰテーブル４０２の項目４２１に対応する。また、エントリ５０１３の組合せ５０１は、図５Ｄの２ＩＰ＿１ＰＴｂテーブル４０３の項目４２１に対応し、エントリ５０１１の組合せ５０１は、図５ＥのＦｌｏｗテーブル４０４の項目４２１に対応する。
【０１２２】
新規フラグ５１１は、組合せ５０１が示す集約フローに関して、パケットが新規であるか否かを示す。統計情報更新時、すなわち、統計テーブル管理部３０２がパケットのヘッダ情報を受信した時、受信したヘッダ情報に含まれる組合せ５０１の集約フローに関して、受信したヘッダ情報が新規フローを示すと判定された場合、統計テーブル管理部３０２は、新規フローであると判定された集約フローに対応する組合せ５０１の新規フラグ５１１に"１"を格納する。
【０１２３】
具体的には、統計テーブル管理部３０２が"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＤＰＴ：Ｄ、ＰＲＴ：Ｚ"の集約フローを示すヘッダ情報を受信し、ルータ１０１が既に"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＤＰＴ：Ｆ、ＰＲＴ：Ｚ"を示すヘッダ情報のパケットを受信していた場合、受信したヘッダ情報は、"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ａ、ＰＲＴ"及び"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ｂ、ＰＲＴ"を組合せ５０１に含む集約フロー（エントリ５０１２及びエントリ５０１３に対応）に関して、新規フローではない。
【０１２４】
しかし、統計テーブル管理部３０２は、"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＰＲＴ：Ｚ"のヘッダ情報は受信しているが、"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＤＰＴ：Ｄ、ＰＲＴ：Ｚ"のヘッダ情報は受信したことがない場合、受信したヘッダ情報は、"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ａ、ＰＴ＿ｂ、ＰＲＴ"の集約フロー（エントリ５０１１に対応）に関して新規フローである。このため、統計テーブル管理部３０２は、受信したヘッダ情報に関して、更新結果テーブル３１０のエントリ５０１１の新規フラグ５１１に"１"を格納し、エントリ５０１２及びエントリ５０１３の新規フラグ５１１に"０"を格納する。
【０１２５】
なお、これによって、"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＰＲＴ：Ｚ"（"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ａ、ＰＲＴ"又は"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ｂ、ＰＲＴ"）の集約フローの、測定箇所をＰＴ＿ｂ又はＰＴ＿aとする異なり数は、一つ分増加する。
【０１２６】
新規フラグ５１１は、ａｔｏｂ５１２及びｂｔｏａ５１３を含む。組合せ５０１にＩＰアドレスが一つしか含まれないエントリの新規フラグ５１１、すなわち、図６におけるエントリ５０１５〜エントリ５０１７の新規フラグ５１１には、組合せ５０１に含まれるＩＰアドレスがＳＩＰである場合の集約フロー、及び、ＤＩＰである場合の集約フローに関して、新規フラグ５１１の値が格納される。
【０１２７】
具体的には、ＳＩＰがＩＰ＿ａ４２２に格納された場合、新規フラグ５１１の値はａｔｏｂ５１２に格納され、ＤＩＰがＩＰ＿ａ４２２に格納された場合、新規フラグ５１１の値はｂｔｏａ５１３に格納される。
【０１２８】
返信有フラグ５２１は、組合せ５０１の集約フローについて、返信があったことを示すフラグである。統計テーブル管理部３０２が受信したヘッダ情報が、ルータ１０１が既に受信したパケットに対して初めて返信されたパケット（返信パケット）が有するヘッダ情報である場合、返信有フラグ５２１に"１"が格納される。
【０１２９】
新規フラグ５１１を"１"に更新した集約フローについて、その集約フローを含むパケットが返信パケットである場合、返信有フラグ５２１に"１"が格納される。すなわち、受信したパケットの集約フローが新規フローの場合のみ、返信有フラグ５２１に"１"が格納される。
【０１３０】
例えば、Ｆｌｏｗテーブル４０４のＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、ＰＴ＿ｂ４２５、ＰＲＴ４２３が"Ａ、Ｘ、Ｃ、Ｄ、Ｚ"を示し、ａｔｏｂ４３２が"３"を示し、ｂｔｏａ４３３が"０"を示し、統計テーブル管理部３０２が"ＳＩＰ：Ｘ、ＤＩＰ：Ａ、ＳＰＴ：Ｄ、ＤＰＴ：Ｃ、ＰＲＴ：Ｚ"を含むヘッダ情報を受信したとする。この場合、ヘッダ情報受信時においてｂｔｏａ４３３は"０"であったため、受信したヘッダ情報が含む集約フローは新規フローであり、統計テーブル管理部３０２は、エントリ５０１１の新規フラグ５１１に"１"を格納する。
【０１３１】
また、ａｔｏｂ４３２は０より多い数であり、これは、受信したヘッダ情報が、既にルータ１０１が受信したパケットの返信パケットであることを示す。このため、統計テーブル管理部３０２は、エントリ５０１１の返信有フラグ５２１に"１"を格納する。
【０１３２】
なお、これによって、"ＳＩＰ：Ａ、ＤＩＰ：Ｘ、ＳＰＴ：Ｃ、ＰＲＴ：Ｚ"（"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ａ、ＰＲＴ"又は"ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ｂ、ＰＲＴ"）の集約フローの、測定箇所をＰＴ＿ｂ又はＰＴ＿aとする異なり数の返信数は、一つ分増加する。
【０１３３】
また、図５Ａ〜図５Ｅ及び図６において、統計情報テーブル２１２及び統計テーブル管理部３０２は、テーブルによって各情報を保持したが、各々の情報が統計テーブル管理部３０２によって識別できれば、いかなる方法によって情報を保持してもよい。例えば、統計情報テーブル２１２及び統計テーブル管理部３０２は、ＣＳＶを用いた方法によって情報を保持してもよい。
【０１３４】
図７は、本発明の第１の実施形態の統計情報テーブル更新処理を示すフローチャートである。
【０１３５】
ヘッダ情報蓄積部３０１からヘッダ情報を受信した場合、統計テーブル管理部３０２は、更新結果テーブル３１０の新規フラグ５１１及び返信有フラグ５２１の各セルの値をゼロに置き換え、図７に示す統計情報テーブル更新処理を開始する。統計情報テーブル更新処理において、統計テーブル管理部３０２は、まず、更新する集約フローの組合せ５０１を、更新結果テーブル３１０から選択する（ステップ６０１）。ここで、更新結果テーブル３１０には、管理者によってあらかじめ定められた集約フローが保持される。
【０１３６】
統計テーブル管理部３０２は、ステップ６０１において、組合せ５０１に含まれる項目数の多い順に更新結果テーブル３１０のエントリを選択する。これによって、統計テーブル管理部３０２は、統計情報テーブル２１２が保持する各テーブルを、項目４２１の項目が多い順に選択する。
【０１３７】
以下の説明において、ステップ６０１において選択されたエントリの組合せ５０１を組合せＣとし、組合せＣに関する統計情報を更新する。
【０１３８】
ステップ６０１の後、統計テーブル管理部３０２は、選択された組合せＣに対応するヘッダ情報を、受信したヘッダ情報（ＳＩＰ、ＤＩＰ、ＳＰＴ、ＤＰＴ、ＰＲＴ）から抽出する。そして、抽出されたヘッダ情報を、統計情報テーブル２１２が保持する各テーブルのＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、ＰＴ＿ｂ４２５、ＰＲＴ４２３に対応させることによって、組合せＣの集約フローに該当するエントリを検索する。
【０１３９】
具体的には、統計テーブル管理部３０２は、ヘッダ情報（ＳＩＰ、ＤＩＰ、ＳＰＴ、ＤＰＴ、ＰＲＴ）又は（ＤＩＰ、ＳＩＰ、ＤＰＴ、ＳＰＴ、ＰＲＴ）の組合わせを項目４２１に含むエントリを検索する。そして、ヘッダ情報の組合せを含むエントリが統計情報テーブル２１２にない場合、統計テーブル管理部３０２は、ＳＩＰ又はＤＩＰのうちＩＰアドレスの小さいほうをＩＰ＿ａ４２２に格納する前述の方法を用いることによって、組合せＣの集約フローを項目４２１とする新たなエントリを生成してもよい。
【０１４０】
統計テーブル管理部３０２は、前述の通りヘッダ情報を項目４２１に対応させることによって、受信したヘッダ情報に該当するエントリを、統計情報テーブル２１２が保持する各テーブルから検索する。そして、統計テーブル管理部３０２は、検索されたエントリ又は新たに生成されたエントリをメモリに読み出す（ステップ６０２）。
【０１４１】
統計テーブル管理部３０２は、例えば、ステップ６０１において組合せＣに（ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ａ、ＰＴ＿ｂ、ＰＲＴ）が選択されていた場合、ステップ６０２において、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、ＰＴ＿ｂ４２５、ＰＲＴ４２３を含むＦｌｏｗテーブル４０４から、ヘッダ情報が示す集約フローに該当するエントリを検索する。また、ステップ６０１において組合せＣに（ＩＰ＿ａ、ＰＲＴ）が選択されていた場合、ステップ６０２において、ＩＰ＿ａ４２２、ＰＲＴ４２３を含む１ＩＰテーブル４０１から、ヘッダ情報が示す集約フローに該当するエントリを検索する。
【０１４２】
ステップ６０２の後、統計テーブル管理部３０２は、ステップ６０２における検索結果に従って、ヘッダ情報に含まれる組合せＣが新規フローを示すか否かを判定する（ステップ６０３）。
【０１４３】
ステップ６０３において、統計テーブル管理部３０２は、ステップ６０２において統計情報テーブル２１２からエントリが読み出されなかった場合、すなわち、ヘッダ情報に対応する項目４２１を含む新たなエントリを生成した場合、ヘッダ情報に含まれる組合せＣが新規フローを示すと判定する。また、統計テーブル管理部３０２は、ステップ６０２において検索されたエントリの統計情報４３１のパケット数を参照し、参照されたパケット数が"０"である場合、ヘッダ情報に含まれる組合せＣが新規フローを示すと判定する。
【０１４４】
なお、ステップ６０３において、統計テーブル管理部３０２は、読み出されたエントリの統計情報４３１のうち、ステップ６０２において項目４２１に対応するヘッダ情報に基づいて、ａｔｏｂ４３２又はｂｔｏａ４３３のパケット数を参照する。そして、参照されたパケット数が"０"であるか否かに従って、ヘッダ情報に含まれる組合せＣが新規フローを示すか否かを判定する。
【０１４５】
ヘッダ情報に含まれる組合せＣが新規フローを示さないと判定された場合、統計テーブル管理部３０２は、更新結果テーブル３１０の新規フラグ５１１及び返信有フラグ５２１を更新せず、"０"のままとする。すなわち、統計テーブル管理部３０２は、組合せＣのヘッダ情報に関して、異なり数及び異なり数の返信数を加算する必要がない。このため、統計テーブル管理部３０２は、ステップ６０７に移行する。
【０１４６】
ヘッダ情報に含まれる組合せＣが新規フローを示すと判定された場合、統計テーブル管理部３０２は、更新結果テーブル３１０の組合せＣの新規フラグ５１１に"１"を格納する（ステップ６０４）。
【０１４７】
なお、組合せＣに含まれるＩＰアドレスが一つである場合、統計テーブル管理部３０２は、ステップ６０３において、ａｔｏｂ４３２とｂｔｏａ４３３との両方を参照し、ヘッダ情報に含まれる組合せＣが新規フローを示すか否かを判定する。そして、ステップ６０４において、ａｔｏｂ４３２及びｂｔｏａ４３３によって取得された各判定結果を、更新結果テーブル３１０の組合せＣに対応するａｔｏｂ５１２とｂｔｏａ５１３とに格納する。これは、組合せＣのＩＰ＿ａが送信元である場合の新規フラグ５１１と送信先である場合の新規フラグ５１１とを明確に識別するためである。
【０１４８】
また、組合せＣに含まれるアドレスが二つである場合、統計テーブル管理部３０２は、ステップ６０３において、受信したヘッダ情報に従って、ａｔｏｂ４３２又はｂｔｏａ４３３のいずれかを参照し、ヘッダ情報に含まれる組合せＣが新規フローを示すか否かを判定する。そして、ステップ６０４において、ステップ６０３において参照した組合せＣの新規フラグ５１１に値を格納する。
【０１４９】
例えば、受信したヘッダ情報が"ＳＩＰ：Ｘ、ＤＩＰ：Ａ、ＰＲＴ：Ｚ"であり、組合せＣが（ＩＰ＿ａ、ＩＰ＿ｂ、ＰＲＴ）であり、また、２ＩＰテーブル４０２に、ＩＰ＿ａ４２２が"Ａ"であり、ＩＰ＿ｂ４２４が"Ｘ"であり、ＰＲＴ４２３が"Ｚ"であり、ａｔｏｂ４３２が"７"であり、ｂｔｏａ４３３が"０"であるエントリ４０２１があるものとする。
【０１５０】
この場合、ステップ６０２において、統計テーブル管理部３０２は、図５Ｃのエントリ４０２１をメモリに読み出す。そして、受信したヘッダ情報が"ＸからＡへ送信"を示すため、ステップ６０３において、統計テーブル管理部３０２は、ｂｔｏａ４３３を参照する。ｂｔｏａ４３３の値が"０"であるため、統計テーブル管理部３０２は、受信したヘッダ情報に含まれる組合せＣは新規フローを示すと判定する。
【０１５１】
そして、統計テーブル管理部３０２は、ステップ６０４において、更新結果テーブル３１０のエントリ５０１４の新規フラグ５１１に"１"を格納する。
【０１５２】
ステップ６０４の後、統計テーブル管理部３０２は、ステップ６０２において読み出されたエントリの統計情報４３１を参照し、受信したヘッダ情報の組合せＣが示す集約フローとは逆方向のパケット数を取得する。そして、取得されたパケット数が"０"より大きいか否かを判定する（ステップ６０５）。
【０１５３】
取得されたパケット数が"０"である場合、受信したヘッダ情報の組合せＣが示す集約フローは、既にルータ１０１に受信されたパケットに対する返信パケットが含む集約フローではないため、返信有フラグ５２１を更新しない。このため、統計テーブル管理部３０２は、ステップ６０７に移行する。
【０１５４】
取得されたパケット数が"０"より大きい場合、受信したヘッダ情報の組合せＣが示す集約フローは、既にルータ１０１に受信されたパケットに対する返信パケットのうち、統計テーブル管理部３０２が初めて受信した返信パケットが含む集約フローである。このため、統計テーブル管理部３０２は、更新結果テーブル３１０の組合せＣの返信有フラグ５２１に"１"を格納する（ステップ６０６）。
【０１５５】
ステップ６０３、ステップ６０５、又は、ステップ６０６の後、統計テーブル管理部３０２は、ステップ６０２において読み出されたエントリに、統計情報更新処理を実行する（ステップ６０７）。ステップ６０７の統計情報更新処理の詳細は後述する図８において示す。
【０１５６】
ステップ６０７の後、統計テーブル管理部３０２は、統計情報更新処理が行われたエントリの統計情報４３１のパケット数が、所定の閾値よりも大きいか否かを判定する（ステップ６０８）。統計情報４３１のパケット数が所定の閾値以下である場合、統計情報更新処理を実行したエントリが示すフローがスキャンではないため、統計テーブル管理部３０２は、ステップ６１０に移行する。
【０１５７】
統計情報４３１のパケット数が閾値よりも大きい場合、統計情報更新処理を実行したエントリが示すフローは、スキャンである可能性がある。このため、統計テーブル管理部３０２は、統計情報更新処理を実行したエントリの集約フローの統計情報４３１を、フロー分析部３０３へ送信する。そして、統計テーブル管理部３０２は、統計情報４３１の各セルの値をゼロに置き換える（ステップ６０９）。
【０１５８】
なお、図７に示すステップ６０８において、パケット数と所定の閾値との比較によって、フロー分析部３０３へ統計情報４３１を送信するか否かを判定したが、異なり数、又は、返信数等が所定の条件となった場合、統計テーブル管理部３０２は、フロー分析部３０３へ統計情報４３１を送信してもよい。
【０１５９】
また、統計テーブル管理部３０２は、統計情報４３１のすべてをフロー分析部３０３に送らず、ステップ６０８において所定の条件を満たした統計情報４３１のみを、フロー分析部３０３に送信してもよい。例えば、統計情報４３１のパケット数のａｔｏｂ４３２及び異なり数のａｔｏｂ４４０が所定の条件を満たした場合、ａｔｏｂ４３２及び異なり数のａｔｏｂ４４０のみをフロー分析部３０３に送信してもよい。
【０１６０】
ステップ６０８又はステップ６０９の後、統計テーブル管理部３０２は、ステップ６０７における更新処理後の統計情報４３１、又は、ステップ６０９において値をゼロに置き換えられた後の統計情報４３１を、ステップ６０２においてメモリに読み出されたエントリの読み出し元のテーブル（統計情報テーブル２１２の各テーブル）に格納する（ステップ６１０）。これによって、統計テーブル管理部３０２は、組合せＣに関する統計情報の更新処理を終了する。
【０１６１】
ステップ６１０の後、統計テーブル管理部３０２は、ステップ６０１〜ステップ６１０の処理がされていない更新結果テーブル３１０のエントリがあるか否かを判定し、これによって、全ての組合せ５０１について統計情報テーブル更新処理が終了したか否かを判定する（ステップ６１１）。ステップ６０１〜ステップ６１０の処理がされていない更新結果テーブル３１０のエントリがある場合、統計テーブル管理部３０２は、ステップ６０１に戻る。
【０１６２】
ステップ６０１〜ステップ６１０の処理が更新結果テーブル３１０のすべてのエントリに実行された場合、統計テーブル管理部３０２は、統計情報テーブル更新処理を終了する。
【０１６３】
前述のフローチャートに従い統計情報を更新した場合、ルータ１０１は、統計情報テーブル２１２へのアクセスを、ステップ６０２の読み出しとステップ６１０の更新の２回と最小限に抑えることができる。通常、統計情報テーブル２１２は、大容量のメモリを必要とするため、メモリアクセス速度の遅いＤＲＡＭ等に実装されることが多い。従って、ルータ１０１は、メモリアクセス回数を抑えることによって、より高速に統計情報を収集することができる。
【０１６４】
図８は、本発明の第１の実施形態の統計情報テーブル更新処理の統計情報更新処理を示すフローチャートである。
【０１６５】
図８は、図７のステップ６０７の統計情報更新処理に対応する処理を示す。統計テーブル管理部３０２は、図８に示す処理において、ステップ６０２において読み出されたエントリを更新する。
【０１６６】
まず、統計テーブル管理部３０２は、ステップ６０２において読み出されたエントリのＩＰ＿ａ４２２の値と、受信したヘッダ情報のＳＩＰとが等しいか否かを判定する（ステップ７０１）。統計テーブル管理部３０２は、ステップ７０４以降においていずれの統計情報４３１を更新するかを判定するため、ステップ７０１を行う。
【０１６７】
ＩＰ＿ａ４２２がＳＩＰと等しい場合、統計テーブル管理部３０２は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、及び、ＰＴ＿ｂ４２５を（ＳＩＰ、ＤＩＰ、ＳＰＴ、ＤＰＴ）に対応させること、及び、ＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットに関する統計情報４３１（例えば、ａｔｏｂ４３２）を更新することを決定する（ステップ７０２）。
【０１６８】
ＩＰ＿ａ４２２がＤＩＰと等しい場合、統計テーブル管理部３０２は、ＩＰ＿ａ４２２、ＩＰ＿ｂ４２４、ＰＴ＿ａ４２６、及び、ＰＴ＿ｂ４２５を（ＤＩＰ、ＳＩＰ、ＤＰＴ、ＳＰＴ）に対応させること、及び、ＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットに関する統計情報４３１（例えば、ｂｔｏａ４３３）を更新することを決定する（ステップ７０３）。
【０１６９】
ステップ７０２又はステップ７０３の後、統計テーブル管理部３０２は、ステップ７０２又はステップ７０３における決定に従って、ステップ６０２においてメモリに読み出されたエントリの統計情報４３１のパケット数（すなわち、ａｔｏｂ４３２又はｂｔｏａ４３３）に、所定の値を加算する（ステップ７０４）。なお、ステップ７０４において、統計テーブル管理部３０２はパケット数に、例えば、"１"を加算する。
【０１７０】
ステップ７０４の後、統計テーブル管理部３０２は、統計情報４３１の異なり数を算出する。統計テーブル管理部３０２は、異なり数を算出するため、集約フローの組合せＣに異なり数の測定箇所Ｘを含めた組合せＣ'を生成する（ステップ７０５）。
【０１７１】
例えば、統計テーブル管理部３０２は、ステップ７０５において、組合せＣが（ＩＰ＿ａ、ＩＰ＿ｂ、ＰＲＴ）の集約フローである場合、測定箇所ＸをＰＴ＿ｂとして、（ＩＰ＿ａ、ＩＰ＿ｂ、ＰＴ＿ｂ、ＰＲＴ）の組合せＣ'を生成する。これによって、統計テーブル管理部３０２は、ＰＴ＿ｂを測定箇所とする異なり数を算出することができる。
【０１７２】
ステップ７０５の後、統計テーブル管理部３０２は、組合せＣ'を組合せ５０１に含む更新結果テーブル３１０のエントリの新規フラグ５１１が"１"であるか否かを判定する（ステップ７０６）。組合せＣ'の新規フラグ５１１が"１"でない場合、組合せＣの異なり数には、ヘッダ情報に含まれる組合せＣ'に相当する異なり数が既に含まれている。このため、統計テーブル管理部３０２は、ステップ７１０に移行する。
【０１７３】
組合せＣ'の新規フラグ５１１が"１"である場合、ヘッダ情報に含まれる組合せＣ'は新規フローである。ヘッダ情報に含まれる組合せＣ'が新規フローであることは、組合せＣの異なり数に、組合せＣ'に相当する数が含まれていないことを示す。
【０１７４】
このため、統計テーブル管理部３０２は、ステップ６０２においてメモリに読み出されたエントリ（組合せＣに対応する）の、統計情報４３１に含まれる測定箇所Ｘの異なり数に、例えば、"１"を加算する（ステップ７０７）。なお、統計テーブル管理部３０２は、統計情報４３１に含まれる測定箇所Ｘの異なり数のうち、ステップ７０２又は７０３における決定に従って、ａｔｏｂ又はｂｔｏａのセルの異なり数に値を加算する。
【０１７５】
ステップ７０７の後、統計テーブル管理部３０２は、組合せＣ'を組合せ５０１に含む更新結果テーブル３１０のエントリの返信有フラグ５２１が"１"であるか否かを判定する（ステップ７０８）。組合せＣ'の返信有フラグ５２１が"１"であることは、組合せＣ'の集約フローは送信と返信との両方があり、かつ、組合せＣの異なり数の返信数に組合せＣ'の数が含まれていないことを示す。
【０１７６】
このため、統計テーブル管理部３０２は、ステップ６０２においてメモリに読み出されたエントリ（組合せＣに対応する）の、統計情報４３１の測定箇所Ｘの異なり数の返信有（例えば、返信有４３６、返信有４３９、返信有４４２、又は、返信有４４５）に、例えば、"１"を加算する（ステップ７０９）。
【０１７７】
組合せＣ'の返信有フラグ５２１が"１"でない場合、組合せＣ'の集約フローにはまだ返信がない、又は、組合せＣ'の集約フローには既に送信と返信との両方があったが、組合せＣの異なり数の返信数に組合せＣ'の数が既に加算されている。このため、統計テーブル管理部３０２は、統計情報更新処理を終了する。
【０１７８】
ステップ７０６、ステップ７０８、又は、ステップ７０９の後、統計テーブル管理部３０２は、すべての測定箇所Ｘについて、ステップ７０５〜ステップ７０９の処理によって、異なり数を算出したか否かを判定する（ステップ７１０）。すべての測定箇所Ｘについて、異なり数を算出した場合、統計テーブル管理部３０２は、統計情報更新処理を終了する。
【０１７９】
異なり数を算出していない測定箇所Ｘがある場合、統計テーブル管理部３０２は、ステップ７０５に戻り、異なり数を算出していない測定箇所Ｘを含む新たな組合せＣ'を生成する。
【０１８０】
なお、前述の図８に示す処理において、測定箇所Ｘには、複数の項目が含まれてもよい。具体的には、組合せＣがＩＰ＿ａ４２２及びＰＲＴ４２３（すなわち、１ＩＰテーブル４０１のエントリ）を含む場合、統計テーブル管理部３０２は、測定箇所ＸをＩＰ＿ｂ及びＰＴ＿ｂとし、エントリ５０１３（２ＩＰ＿１ＰＴｂテーブルに対応）に基づいて、１ＩＰテーブル４０１の異なり数を算出してもよい。
【０１８１】
また、例えば、図５Ｂに示すＦｌｏｗの異なり数を算出する場合も、統計テーブル管理部３０２は、項目４２１に含まれるヘッダ情報以外の５−ｔｕｐｌｅの複数のヘッダ情報を、異なり数の測定箇所Ｘとしてもよい。
【０１８２】
図７及び図８に示す処理において、統計テーブル管理部３０２は、項目４２１が多いテーブルの更新結果を用いることによって、項目４２１の少ないテーブルの異なり数を算出する。そして、これを繰り返すことによって、複数のテーブルを更新及び生成することが可能である。
【０１８３】
第１の実施形態によれば、統計情報テーブル２１２に複数のテーブルを保持することによって、多様な観点による統計情報４３１を取得することができる。また、膨大なトラフィックの履歴を都度検索することなく、複数のテーブルの各エントリを更新結果テーブル３１０を用いて順次更新することによって、メモリへのアクセス頻度を最低限に抑え、各統計情報を含むテーブルを順次更新することができる。これによって、第１の実施形態のルータ１０１は、統計情報４３１を算出するためのプロセッサ及びメモリの消費を、低減することができる。
【０１８４】
さらに、各テーブルには、パケット数、異なり数、及び返信数を含む統計情報が格納され、統計情報は図７及び図８に示す一つの連続した処理によって算出される。これによって、統計テーブル管理部３０２は、パケット数、異なり数、及び返信数をすべて含む統計情報をフロー分析部３０３に送信可能であり、フロー分析部３０３は、各情報を都度統計情報テーブル２１２に検索する必要がない。これによって、第１の実施形態のルータ１０１は、フローを分析するためのプロセッサ及びメモリの消費を低減することができる。
【０１８５】
また、第１の実施形態によれば、異なり数の返信数を算出することによって、不特定の通信相手、又は、不特定の通信方法のうち返信のあった数を算出する。このため、５−ｔｕｐｌｅのすべてが一致するフローに関する返信数だけではなく、多様な観点による返信数を取得することができる。
【０１８６】
（第２の実施形態）
本発明の第２の実施形態を図９Ａ、図９Ｂ、図１０Ａ、及び、図１０Ｂを用いて説明する。
【０１８７】
本発明の第２の実施形態におけるルータ１０１は、測定期間毎に正確な異なり数を算出するため、統計情報テーブル２１２に保持されるテーブル間で、世代情報を保持する。これは、第１の実施形態のルータ１０１は、複数測定期間において、正しい異なり数を算出できないためである。
【０１８８】
具体的には、第１の実施形態において、統計テーブル管理部３０２が、統計情報テーブル２１２に保持されるテーブルの統計情報４３１を、フロー分析部３０３に送信する際、送信された統計情報４３１は、ステップ６０９においてゼロに置き換えられる。しかし、統計情報４３１がゼロに置き換わった後も、第１の実施形態の統計テーブル管理部３０２は、統計情報４３１がゼロに置き換わったテーブル（テーブルＳ）以外のテーブル（テーブルＴ）に基づいて、テーブルＳの集約フローの異なり数を算出する。
【０１８９】
この場合において、テーブルＴにおいて新規フローではないと判定されても、テーブルＳにおいて新規フローである場合が生じる。このような場合、統計テーブル管理部３０２は、正確に更新結果テーブル３１０を更新できず、テーブルＳにおける異なり数を正確に算出することができない。
【０１９０】
すなわち、統計情報テーブル２１２に保持されるテーブル間で、統計情報４３１を更新する期間が異なる場合、統計テーブル管理部３０２は、異なり数を正確にカウントアップすることができない。第２の実施形態はこのような事態に対応したものである。
【０１９１】
第１の実施形態と異なる点は、統計情報テーブル２１２に含まれるテーブルと統計テーブル管理部３０２の統計情報更新処理とであり、その他の機能ブロックについては第１の実施形態と同じである。図９Ａ及び図９Ｂに示す統計情報テーブル２１２は、１ＩＰテーブル８０１、及び、２ＩＰテーブル８０２を保持する。
【０１９２】
図９Ａは、本発明の第２の実施形態の１ＩＰテーブル８０１を示す説明図である。
【０１９３】
第２の実施形態の１ＩＰテーブル８０１と第１の実施形態の１ＩＰテーブル４０１との相違点は、以下の２点である。
【０１９４】
一つ目の相違点は、第２の実施形態の１ＩＰテーブル８０１が、世代識別子８１１を含む点である。世代識別子８１１は、ａｔｏｂ８１２及びｂｔｏａ８１３を含み、対応する統計情報４３１がフロー分析部３０３に送信される毎に更新される。
【０１９５】
ａｔｏｂ８１２は、統計情報４３１のａｔｏｂ４３２及びａｔｏｂ４３４に対応し、ｂｔｏａ８１３は、統計情報４３１のｂｔｏａ４３３及びｂｔｏａ４３５に対応する。
【０１９６】
二つ目の相違点は、第２の実施形態の１ＩＰテーブル８０１が、統計情報４３１の異なり数のａｔｏｂ４３４及びｂｔｏａ４３５に、返信有８３１及び返信有８３２を含む点である。
【０１９７】
返信有８３１は、ＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂが示すＩＰアドレスに、ＰＲＴ４２３によって送信されるパケットが、返信された数（返信数）を示す。すなわち、返信有８３１は、ＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂが示すＩＰアドレスにＰＲＴ４２３によって送信されるパケットのうち、返信されたパケットが含むＩＰ＿ｂの種類数を示す。
【０１９８】
返信有８３２は、ＩＰ＿ｂが示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスに、ＰＲＴ４２３によって送信されるパケットが、返信された数（返信数）を示す。すなわち、返信有８３２は、ＩＰ＿ｂが示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスにＰＲＴ４２３によって送信されるパケットのうち、返信されたパケットが含むＩＰ＿ｂの種類数を示す。
【０１９９】
図９Ｂは、本発明の第２の実施形態の２ＩＰテーブル８０２を示す説明図である。
【０２００】
第２の実施形態の２ＩＰテーブル８０２と第１の実施形態の２ＩＰテーブル４０２との相違点は、以下の二点である。
【０２０１】
一つ目の相違点は、第２の実施形態の２ＩＰテーブル８０２が異なり数世代情報８２１を含む点である。また、二つ目の相違点は、第２の実施形態の２ＩＰテーブル８０２が世代識別子８４１を含む点である。
【０２０２】
図９Ｂの２ＩＰテーブル８０２は、１ＩＰテーブル８０１の世代識別子を保持する異なり数世代情報８２１を含む。異なり数世代情報８２１は、２ＩＰテーブル８０２の更新結果を用いて異なり数を算出する１ＩＰテーブル８０１の、統計情報４３１の世代識別子を保持する。
【０２０３】
異なり数世代情報８２１は、２ＩＰテーブル８０２のＩＰ＿ａ４２２に関するａｔｏｂ８２３及びｂｔｏａ８２５を含む。また、２ＩＰテーブル８０２のＩＰ＿ｂ４２４に関するｂｔｏａ８２７及びａｔｏｂ８２９を含む。
【０２０４】
ａｔｏｂ８２３及びｂｔｏａ８２５は、２ＩＰテーブル８０２のＩＰ＿ａ４２２を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリの異なり数及び返信数を算出するための世代情報を含む。ｂｔｏａ８２７及びａｔｏｂ８２９は、２ＩＰテーブル８０２のＩＰ＿ｂ４２４を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリの異なり数及び返信数を算出するための世代情報を含む。
【０２０５】
ａｔｏｂ８２３は、世代識別子と、返信待ちフラグ８２２とを含む。ａｔｏｂ８２３の世代識別子は、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットを、異なり数として１ＩＰテーブル８０１のａｔｏｂ４３４に加算する際に用いられる世代識別子である。なお、ａｔｏｂ８２３は、２ＩＰテーブル８０２のＩＰ＿ａ４２２を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリのａｔｏｂ４３４に対応する。
【０２０６】
本実施形態において、２ＩＰテーブル８０２のａｔｏｂ８２３の世代識別子と、１ＩＰテーブル８０１のａｔｏｂ８１２の世代識別子とが相違する場合、ａｔｏｂ４３４の異なり数が加算される。これは、世代識別子が相違していることが、１ＩＰテーブル８０１の測定期間において２ＩＰテーブル８０２のエントリに基づいて加算されるべき異なり数が、まだ加算されていないことを示すためである。
【０２０７】
返信待ちフラグ８２２に"１"が格納される場合、ルータ１０１は、１ＩＰテーブル８０１のｂｔｏａ８１３が示す測定期間において、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットの返信待ちである。
【０２０８】
そして、返信待ちフラグ８２２が"１"を保持している場合において、ルータ１０１が、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ１０１がｂｔｏａ８１３が示す測定期間において初めて受信した返信パケットである。
【０２０９】
ｂｔｏａ８２５は、世代識別子と、返信待ちフラグ８２４とを含む。ｂｔｏａ８２５の世代識別子は、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットを、異なり数として１ＩＰテーブル８０１のｂｔｏａ４３５に加算する際に用いられる世代識別子である。なお、ｂｔｏａ８２５は、２ＩＰテーブル８０２のＩＰ＿ａ４２２を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリのｂｔｏａ４３５に対応する。
【０２１０】
本実施形態において、２ＩＰテーブル８０２のｂｔｏａ８２５の世代識別子と、１ＩＰテーブル８０１のｂｔｏａ８１３の世代識別子とが相違する場合、ｂｔｏａ４３５の異なり数が加算される。
【０２１１】
返信待ちフラグ８２４に"１"が格納される場合、ルータ１０１は、１ＩＰテーブル８０１のａｔｏｂ８１２が示す測定期間において、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットの返信待ちである。
【０２１２】
そして、返信待ちフラグ８２４が"１"を保持している場合において、ルータ１０１が、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ１０１がａｔｏｂ８１２が示す測定期間において初めて受信した返信パケットである。
【０２１３】
ｂｔｏａ８２７は、世代識別子と、返信待ちフラグ８２６とを含む。ｂｔｏａ８２７の世代識別子は、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットを、異なり数として１ＩＰテーブル８０１のｂｔｏａ４３５に加算する際に用いられる世代識別子である。なお、ｂｔｏａ８２７は、２ＩＰテーブル８０２のＩＰ＿ｂ４２４を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリのｂｔｏａ４３５に対応する。
【０２１４】
２ＩＰテーブル８０２のｂｔｏａ８２７の世代識別子と、１ＩＰテーブル８０１のｂｔｏａ８１３の世代識別子とが相違する場合、ｂｔｏａ４３５の異なり数が加算される。
【０２１５】
返信待ちフラグ８２６に"１"が格納される場合、ルータ１０１は、１ＩＰテーブル８０１のｂｔｏａ８１３が示す測定期間において、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットの返信待ちである。
【０２１６】
そして、返信待ちフラグ８２６が"１"を保持している場合において、ルータ１０１が、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ１０１がｂｔｏａ８１３が示す測定期間において初めて受信した返信パケットである。
【０２１７】
ａｔｏｂ８２９は、世代識別子と、返信待ちフラグ８２８とを含む。ａｔｏｂ８２９の世代識別子は、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットを、異なり数として１ＩＰテーブル８０１のａｔｏｂ４３４に加算する際に用いられる世代識別子である。なお、ａｔｏｂ８２９は、２ＩＰテーブル８０２のＩＰ＿ｂ４２４を、１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む１ＩＰテーブル８０１のエントリのａｔｏｂ４３４に対応する。
【０２１８】
２ＩＰテーブル８０２のａｔｏｂ８２９の世代識別子と、１ＩＰテーブル８０１のａｔｏｂ８１２の世代識別子とが相違する場合、ａｔｏｂ４３４の異なり数が加算される。
【０２１９】
返信待ちフラグ８２８に"１"が格納される場合、ルータ１０１は、１ＩＰテーブル８０１のａｔｏｂ８１２が示す測定期間において、２ＩＰテーブル８０２のＩＰ＿ａ４２２が示すＩＰアドレスからＩＰ＿ｂ４２４が示すＩＰアドレスへ送信されるパケットの返信待ちである。
【０２２０】
そして、返信待ちフラグ８２６が"１"を保持している場合において、ルータ１０１が、２ＩＰテーブル８０２のＩＰ＿ｂ４２４が示すＩＰアドレスからＩＰ＿ａ４２２が示すＩＰアドレスへ送信されるパケットを受信した場合、受信したパケットは、ルータ１０１がａｔｏｂ８１２が示す測定期間において初めて受信した返信パケットである。
【０２２１】
世代識別子８４１は、ａｔｏｂ８４２及びｂｔｏａ８４３を含み、２ＩＰテーブル８０２の統計情報４３１がフロー分析部３０３に送信される毎に更新される。
【０２２２】
図９Ａ及び図９Ｂにおいて、第２の実施形態の統計情報テーブル２１２が保持するテーブルは、１ＩＰテーブル８０１及び２ＩＰテーブル８０２であるが、例えば、第２の実施形態の統計情報テーブル２１２は、第１の実施形態の１ＩＰテーブル４０１に世代識別子８１１が加えられ、第１の実施形態の２ＩＰ＿１ＰＴｂテーブル４０３に異なり数世代情報８２１及び世代識別子８４１が加えられたテーブルを保持してもよい。
【０２２３】
図１０Ａは、本発明の第２の実施形態のＳＩＰに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
【０２２４】
図１０Ａ及び後述する図１０Ｂは、１ＩＰテーブル８０１の異なり数及び返信数の算出手順を示し、ＩＰアドレスＡからＩＰアドレスＸに送信されたパケットの統計情報を算出する手順である。ステップ９１１からステップ９１８までの処理が、１ＩＰテーブル８０１のＩＰ＿ａ４２２に"Ａ"を含むエントリ８０１１、すなわち、ＳＩＰが"Ａ"である場合の統計情報を更新する処理である。
【０２２５】
統計テーブル管理部３０２は、ルータ１０１がＩＰアドレスＡからＩＰアドレスＸに送信されたパケットを受信した場合（ステップ９０１）、ＳＩＰを１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む統計情報４３１を算出するため図１０Ａに示す処理を行い、また、ＤＩＰを１ＩＰテーブル８０１のＩＰ＿ａ４２２に含む統計情報４３１を算出するため、図１０Ｂに示す処理を行う。図１０Ａ及び図１０Ｂに示す処理は、並行して行われてもよく、どちらかが先に行われてもよい。
【０２２６】
なお、図１０Ａ及び後述する図１０Ｂにおいて、１ＩＰテーブル８０１のエントリ８０１１のＩＰ＿ａ４２２は、"Ａ"を含み、エントリ８０１２のＩＰ＿ａ４２２は、"Ｘ"を含むものとする。また、２ＩＰテーブル８０２のエントリ８０２１のＩＰ＿ａ４２２は、"Ａ"を含み、エントリ８０２１のＩＰ＿ｂ４２４は、"Ｘ"を含むものとする。
【０２２７】
また、図１０Ａ及び図１０Ｂに示す処理が開始される際、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケット数を示す、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ４３２及びエントリ８０１２のｂｔｏａ４３３、並びに、２ＩＰテーブル８０２のエントリ８０２１のａｔｏｂ４３２には、受信したパケットに相当するパケット数が既に加算されているものとする。
【０２２８】
統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１１の返信有８３２を更新するため、ステップ９１１からステップ９１４の処理を行う。まず、統計テーブル管理部３０２は、２ＩＰテーブル８０２のエントリ８０２１の返信待ちフラグ８２２に"１"が格納されているか否かを判定する（ステップ９１１）。
【０２２９】
エントリ８０２１の返信待ちフラグ８２２に"１"が格納されていない場合、ステップ９０１において受信されたパケットは、既にルータ１０１に受信されていたＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットの返信パケットではない。または、ＩＰアドレスＡからＩＰアドレスＸに送信されたパケットは、エントリ８０１１の返信有８３２に既に加算済みである。このため、エントリ８０１１において、ＩＰアドレスＸへ送信される返信パケットのパケット数（すなわち、返信有８３２）を更新する必要はないため、統計テーブル管理部３０２は、ステップ９１５に移行する。
【０２３０】
エントリ８０２１の返信待ちフラグ８２２が"１"である場合、返信待ちフラグ８２２は、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを受信する前に、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットをルータ１０１が受信しており、かつ、統計テーブル管理部３０２が、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを返信パケットとして、返信有８３２に加算していないことを示す。そして、ルータ１０１は、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットの返信パケット、すなわち、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを待っていたことを示す。
【０２３１】
このため、エントリ８０２１の返信待ちフラグ８２２が"１"である場合、統計テーブル管理部３０２は、返信パケット数を１ＩＰテーブル８０１に加算するため、さらに、エントリ８０２１のｂｔｏａ８２５の値と、１ＩＰテーブル８０１のエントリ８０１１のｂｔｏａ８１３の値とが同じであるか否かを判定する（ステップ９１２）。
【０２３２】
エントリ８０２１のｂｔｏａ８２５の値と、エントリ８０１１のｂｔｏａ８１３の値とが異なる場合、ＩＰアドレスＡに送信されるパケットの２ＩＰテーブル８０２における返信数の測定期間と、ＩＰアドレスＡに送信されるパケットの１ＩＰテーブル８０１における返信数の測定期間とが異なり、２ＩＰテーブル８０２に基づいて１ＩＰテーブル８０１の返信有８３２を更新できない。このため、統計テーブル管理部３０２は、ステップ９１５に移行する。
【０２３３】
エントリ８０２１のｂｔｏａ８２５の値と、エントリ８０１１のｂｔｏａ８１３の値とが同じである場合、ＩＰアドレスＡに送信されるパケットの２ＩＰテーブル８０２における返信数の測定期間と、ＩＰアドレスＡに送信されるパケットの１ＩＰテーブル８０１における返信数の測定期間とが同じである。このため、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１１の返信有８３２の値を加算（例えば、"１"を加算）する（ステップ９１３）。
【０２３４】
ステップ９１３の後、統計テーブル管理部３０２は、エントリ８０２１の返信待ちフラグ８２２の値を、"０"に置き換える（ステップ９１４）。これによって、統計テーブル管理部３０２は、この後にＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットをルータ１０１が受信しても、ステップ９１１において、受信したパケットを返信パケットとして判定しない。
【０２３５】
ステップ９１１、ステップ９１２又はステップ９１４の後、統計テーブル管理部３０２は、ステップ９１５からステップ９１８において異なり数を算出する。統計テーブル管理部３０２は、エントリ８０２１のａｔｏｂ８２３の値と、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ８１２の値とが同じであるか否かを判定する（ステップ９１５）。
【０２３６】
エントリ８０２１のａｔｏｂ８２３の値と、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ８１２の値とが同じである場合、エントリ８０２１が示す集約フローに相当する異なり数は、エントリ８０１１のａｔｏｂ４３４に加算済みである。このため、統計テーブル管理部３０２は、エントリ８０２１のａｔｏｂ８２３の値と、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ８１２の値とが同じである場合、図１０Ａに示す統計情報測定処理を終了する。
【０２３７】
エントリ８０２１のａｔｏｂ８２３の値と、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ８１２の値とが異なる場合、エントリ８０２１が示す集約フローに相当する異なり数は、エントリ８０１１のａｔｏｂ４３４に加算されていない。このため、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ４３４の値を加算（例えば、"１"を加算）する（ステップ９１６）。
【０２３８】
ステップ９１６の後、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１１のａｔｏｂ８１２の値によって、２ＩＰテーブル８０２のエントリ８０２１のａｔｏｂ８２３の値を置き換える（ステップ９１７）。これによって、統計テーブル管理部３０２は、この後にＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットをルータ１０１が受信しても、ステップ９１６において受信したパケットに相当する異なり数を算出しない。。
【０２３９】
ステップ９１７の後、統計テーブル管理部３０２は、２ＩＰテーブル８０２の返信待ちフラグ８２４に、"１"を格納する（ステップ９１８）。これによって、統計テーブル管理部３０２は、２ＩＰテーブル８０２によって、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットへの返信パケット、すなわち、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットを、ルータ１０１が返信パケットとして未受信であることを示すことができる。
【０２４０】
ステップ９１５又はステップ９１８の後、統計テーブル管理部３０２は、図１０Ａに示す統計情報測定処理を終了する。
【０２４１】
図１０Ｂは、本発明の第２の実施形態のＤＩＰに関する統計情報を算出する統計情報テーブル更新処理を示すフローチャートである。
【０２４２】
図１０Ｂは、図１０Ａと同じく、ＩＰアドレスＡからＩＰアドレスＸに送信されたパケットの統計情報を測定する手順である。ステップ９２１からステップ９２８までの処理が、１ＩＰテーブル８０１のＩＰ＿ａ４２２に"Ｘ"を格納するエントリ８０１２、すなわち、ＤＩＰが"Ｘ"である統計情報を更新する処理である。
【０２４３】
統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１２の返信有８３１を更新するため、ステップ９２１からステップ９２４の処理を行う。まず、統計テーブル管理部３０２は、２ＩＰテーブル８０２のエントリ８０２１の返信待ちフラグ８２６に"１"が格納されているか否かを判定する（ステップ９２１）。
【０２４４】
エントリ８０２１の返信待ちフラグ８２６に"１"が格納されていない場合、ステップ９０１において受信されたパケットは、既にルータ１０１に受信されていたＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットの返信パケットではない。または、ＩＰアドレスＡからＩＰアドレスＸに送信されたパケットは、エントリ８０１２の返信有８３１に既に加算済みである。このため、エントリ８０１２において、ＩＰアドレスＸへ送信される返信パケットのパケット数（すなわち、返信有８３１を更新する必要はないため、統計テーブル管理部３０２は、ステップ９２５に移行する。
【０２４５】
エントリ８０２１の返信待ちフラグ８２６が"１"である場合、返信待ちフラグ８２６は、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを受信する前に、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットをルータ１０１が受信しており、かつ、統計テーブル管理部３０２が、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを返信パケットとして、返信有８３１に加算していないことを示す。そして、ルータ１０１は、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットの返信パケット、すなわち、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットを待っていたことを示す。
【０２４６】
このため、エントリ８０２１の返信待ちフラグ８２６が"１"である場合、統計テーブル管理部３０２は、返信パケット数を１ＩＰテーブル８０１に加算するため、さらに、エントリ８０２１のａｔｏｂ８２９の値と、１ＩＰテーブル８０１のエントリ８０１２のａｔｏｂ８１２の値とが同じであるか否かを判定する（ステップ９２２）。
【０２４７】
エントリ８０２１のａｔｏｂ８２９の値と、エントリ８０１２のａｔｏｂ８１２の値とが異なる場合、ＩＰアドレスＡに送信されるパケットの２ＩＰテーブル８０２における返信数の測定期間と、ＩＰアドレスＡに送信されるパケットの１ＩＰテーブル８０１における返信数の測定期間とが異なり、２ＩＰテーブル８０２に基づいて１ＩＰテーブル８０１の返信有８３１を更新できない。このため、統計テーブル管理部３０２は、ステップ９２５に移行する。
【０２４８】
エントリ８０２１のａｔｏｂ８２９の値と、エントリ８０１２のａｔｏｂ８１２の値とが同じである場合、ＩＰアドレスＡに送信されるパケットの２ＩＰテーブル８０２における返信数の測定期間と、ＩＰアドレスＡに送信されるパケットの１ＩＰテーブル８０１における返信数の測定期間とが同じである。このため、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１２の返信有８３１の値を加算（例えば、"１"を加算）する（ステップ９２３）。
【０２４９】
ステップ９２３の後、統計テーブル管理部３０２は、エントリ８０２１の返信待ちフラグ８２６の値を、"０"に置き換える（ステップ９２４）。これによって、統計テーブル管理部３０２は、この後にＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットをルータ１０１が受信しても、ステップ９２１において、受信したパケットを返信パケットとして判定しない。
【０２５０】
ステップ９２１、ステップ９２２又はステップ９２４の後、統計テーブル管理部３０２は、ステップ９２５からステップ９２８において異なり数を測定する。統計テーブル管理部３０２は、エントリ８０２１のｂｔｏａ８２７の値と、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ８１３の値とが同じであるか否かを判定する（ステップ９２５）。
【０２５１】
エントリ８０２１のｂｔｏａ８２７の値と、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ８１３の値とが同じである場合、エントリ８０２１が示す集約フローに相当する異なり数は、エントリ８０１２のｂｔｏａ４３５に加算済みである。このため、統計テーブル管理部３０２は、エントリ８０２１のｂｔｏａ８２７の値と、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ８１３の値とが同じである場合、図１０Ｂに示す統計情報測定処理を終了する。
【０２５２】
エントリ８０２１のｂｔｏａ８２７の値と、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ８１３の値とが異なる場合、エントリ８０２１が示す集約フローに相当する異なり数は、エントリ８０１２のｂｔｏａ４３５に加算されていない。このため、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ４３５の値を加算（例えば、"１"を加算）する（ステップ９２６）。
【０２５３】
ステップ９２６の後、統計テーブル管理部３０２は、１ＩＰテーブル８０１のエントリ８０１２のｂｔｏａ８１３の値によって、２ＩＰテーブル８０２のエントリ８０２１のｂｔｏａ８２７の値を置き換える（ステップ９２７）。これによって、統計テーブル管理部３０２は、この後にＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットをルータ１０１が受信しても、ステップ９２６において受信したパケットに相当する異なり数を算出しない。
【０２５４】
ステップ９２７の後、統計テーブル管理部３０２は、２ＩＰテーブル８０２の返信待ちフラグ８２８に、"１"を格納する（ステップ９２８）。これによって、統計テーブル管理部３０２は、２ＩＰテーブル８０２によって、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットへの返信パケット、すなわち、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットを、ルータ１０１が返信パケットとして未受信であることを示すことができる。
【０２５５】
ステップ９２５又はステップ９２８の後、統計テーブル管理部３０２は、図１０Ｂに示す統計情報測定処理を終了する。
【０２５６】
図１０Ａ及び図１０Ｂに示す処理は、ＩＰアドレスＡからＩＰアドレスＸへ送信されるパケットをルータ１０１が受信した場合の処理であるが、ＡをＸに置き換え、ＸをＡに置き換えることによって、ＩＰアドレスＸからＩＰアドレスＡへ送信されるパケットに関する統計情報を同様な処理によって算出することができる。この場合、更新される１ＩＰテーブル８０１のセルは、エントリ８０１１の返信有８３１と、エントリ８０１１のｂｔｏａ４３５と、エントリ８０１２のａｔｏｂ４３４と、エントリ８０１２の返信有８３２とである。
【０２５７】
なお、図９Ａ、図９Ｂ、図１０Ａ、図１０Ｂに示す処理は、１ＩＰテーブル８０１及び２ＩＰテーブル８０２の二つのテーブルの世代情報を用いながら、統計情報を算出する手順であるが、第２の実施形態のルータ１０１は、三つ以上のテーブルを保持し、各々のテーブル間で世代情報を用いて統計情報を算出してもよい。
【０２５８】
第２の実施形態によれば、各統計情報の測定期間を保持することによって、測定期間が同一である統計情報を生成できる。これによって、ルータ１０１が、より正確な統計情報を生成することが可能となる。また、パケット数、異なり数、及び返信数を関連して保持するため、算出及び分析に要するメモリ等の消費を低減できる。
【０２５９】
（第３の実施形態）
図１１は、本発明の第３の実施形態の統計情報収集システムを示すブロック図である。
【０２６０】
第３の実施形態の統計情報収集システムは、複数のルータ１０１と、コレクタ装置１０４と、ネットワーク制御装置１１０１とを備える。本発明の第３の実施形態において、第１の実施形態のルータ１０１が有するトラフィックの統計を分析する機能は、ネットワーク制御装置１１０１に実装される。
【０２６１】
ネットワーク制御装置１１０１は、プロセッサ１１０２、ワークメモリ１１０３、プログラムメモリ１１０４、統計情報データベース１１０５、通信インタフェース（通信Ｉ／Ｆ）１１０６、及び、入出力装置１１０７を備える。また、これらは、各々バス１１０８によって接続される。
【０２６２】
プロセッサ１１０２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算装置である。ワークメモリ１１０３は、プログラム及びデータを一時的に読み出す記憶装置である。プログラムメモリ１１０４は、ネットワーク制御装置１１０１の機能を実行するためのプログラムを格納するためのメモリである。
【０２６３】
統計情報データベース１１０５は、統計情報テーブル２１２等の各テーブル、又は、各ルータ１０１から送信されたトラフィック情報を保持するためのデータベースである。通信Ｉ／Ｆ１１０６は、ネットワークに備わるルータ１０１等と接続するためのインタフェースである。
【０２６４】
入出力装置１１０７は、管理者等によって指示を入力されるための装置である。また、管理者等にスキャンであると判定された統計情報４３１等を表示するための装置である。
【０２６５】
プログラムメモリ１１０４は、パケット送受信処理部１１１１、統計情報パケット解析処理部１１１２、及び、トラフィック統計処理部１１１３を含む。プロセッサ１１０２は、プログラムメモリ１１０４に格納される各種プログラム等をワークメモリ１１０３にロードし、そして、実行する。
【０２６６】
パケット送受信処理部１１１１は、パケットを送受信する。統計情報パケット解析処理部１１１２は、ルータ１０１から送信されたパケットに含まれるヘッダ情報を取得する。
【０２６７】
トラフィック統計処理部１１１３は、第１の実施形態のトラフィック統計処理部２０４と同様の処理を実行する。第１の実施形態のトラフィック統計処理部２０４と、第３の実施形態のトラフィック統計処理部１１１３とが異なる点は、第１の実施形態のトラフィック統計処理部２０４は、統計情報パケット生成部３０４によって生成されたパケットを受信パケット処理部２０１に送信するが、第３の実施形態のトラフィック統計処理部１１１３は、統計情報パケット生成部３０４によって生成されたパケットをパケット送受信処理部１１１１に送信する点である。
【０２６８】
統計情報データベース１１０５は、統計情報テーブル２１２を含む。また、統計情報データベース１１０５は、トラフィック統計処理部１１１３によって参照される。
【０２６９】
ネットワーク制御装置１１０１への入力は、ルータ１０１のｓＦｌｏｗ機能やｎｅｔＦｌｏｗ機能によって出力された統計情報である。
【０２７０】
なお、ルータ１０１を通過するパケットの数が少ない場合、パケットを複製して、複製されたパケットをネットワーク制御装置１１０１に送信してもよい。
【０２７１】
前述の統計情報収集システムは、ルータ１０１を備え、パケットが有するヘッダ情報に基づいて統計情報を生成した。しかし、本発明の統計情報収集システムは、スイッチを備えるシステムであってもよく、ＭＡＣアドレス等のヘッダ情報に基づいて統計情報を生成してもよい。また、前述の統計情報収集システムは、５−ｔｕｐｌｅのヘッダ情報に基づいて統計情報を生成したが、いずれのヘッダ情報を用いてもよい。
【０２７２】
また、前述の統計情報４３１は、パケット数、異なり数、及び返信数を含んだが、受信したパケットから算出されるいかなる統計情報を含んでもよい。例えば、統計情報４３１は、異なり数と返信数とに基づいて算出された返信率を保持してもよい。
【０２７３】
本実施形態によれば、パケットを受信する毎に各統計情報を一つの処理によって算出し、算出された各統計情報を関連して保持することによって、複数の統計情報を算出及び分析するために必要なメモリ等のリソースの消費を低減する。また、各統計情報の測定期間を保持することによって、測定期間が同一である統計情報を生成する。また、項目が異なるフローに関する統計情報を算出することによって、より詳細な統計情報を生成する。
【０２７４】
また、本実施形態によれば、トラフィックの分析の際、分析のために用いる統計情報がパケット数、異なり数、及び返信数等の情報を含むため、各情報を算出するごとに統計情報テーブル２１２を検索することなく、メモリ等の消費を低減できる。
【０２７５】
また、本実施形態によれば、異なり数の返信数を算出することによって、不特定の通信相手、又は、不特定の通信方法のうち返信のあった数を算出する。このため、５−ｔｕｐｌｅのすべてが一致するフローに関する返信数だけではなく、多様な観点による返信数を取得することができる。
【符号の説明】
【０２７６】
１０１  ルータ
１０２  サーバ
１０３  端末
１０４  コレクタ装置
２０１  受信パケット処理部
２０２  送信パケット処理部
２０３  検索処理部
２０４  トラフィック統計処理部
２０５  制御部
２０６  管理端末
２１１  ルーティングテーブル
２１２  統計情報テーブル
１１０１  ネットワーク制御装置
１１０２  プロセッサ
１１０３  ワークメモリ
１１０４  プログラムメモリ
１１０５  統計情報データベース
【図１】
0005659393.tif 000002
【図２】
0005659393.tif 000003
【図３】
0005659393.tif 000004
【図４Ａ】
0005659393.tif 000005
【図４Ｂ】
0005659393.tif 000006
【図５Ａ】
0005659393.tif 000007
【図５Ｂ】
0005659393.tif 000008
【図５Ｃ】
0005659393.tif 000009
【図５Ｄ】
0005659393.tif 000010
【図５Ｅ】
0005659393.tif 000011
【図６】
0005659393.tif 000012
【図７】
0005659393.tif 000013
【図８】
0005659393.tif 000014
【図９Ａ】
0005659393.tif 000015
【図９Ｂ】
0005659393.tif 000016
【図１０Ａ】
0005659393.tif 000017
【図１０Ｂ】
0005659393.tif 000018
【図１１】
0005659393.tif 000019