(57)【要約】【課題】フロー情報を効率的に生成することを可能にする。【解決手段】複数のパケットを収集して記憶し、記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、フロー情報が、複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、複数のパケットそれぞれに対応し、フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置であって、記憶部と、収集されたパケットを記憶部に記憶させ、収集されたパケットが記憶されたメモリ領域のうち、属性情報以外の情報が記憶されたメモリ領域を、収集されたパケットに対応する非属性情報で上書きすることにより、収集されたパケットが記憶されたメモリ領域に、属性情報と非属性情報とを対応付けて記憶させるフロー情報生成管理部とを有する。【選択図】図１
2011049757.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置であって、
所定のサイズのメモリ領域を備えた記憶部と、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させるフロー情報生成管理部と、を有するフロー情報生成装置。
【請求項２】
請求項１に記載のフロー情報生成装置において、
前記フロー情報生成管理部は、前記記憶部に記憶された前記属性情報である記憶済属性情報と同一の前記属性情報を含む同一属性パケットが新たに収集された場合、当該同一属性パケットを前記記憶部に記憶させるとともに、当該同一属性パケットが記憶されたメモリ領域のうち、前記属性情報以外の部分が記憶されたメモリ領域を、前記記憶済属性情報に対応する前記非属性情報に当該同一属性パケットに対応する前記非属性情報を含めた情報で上書きする上書き動作を実行するフロー情報生成装置。
【請求項３】
請求項２に記載のフロー情報生成装置において、
前記フロー情報生成管理部は、
前記記憶部のメモリ領域の残余量を測定し、
前記記憶部のメモリ領域の残余量が所定の値以下となった場合に、前記上書き動作を実行するフロー情報生成装置。
【請求項４】
所定のサイズのメモリ領域を備えた記憶部を有し、ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置における記憶方法であって、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させる処理を有する記憶方法。
【請求項５】
請求項４に記載の記憶方法において、
前記記憶部に記憶された前記属性情報である記憶済属性情報と同一の前記属性情報を含む同一属性パケットが新たに収集された場合、当該同一属性パケットを前記記憶部に記憶させるとともに、当該同一属性パケットが記憶されたメモリ領域のうち、前記属性情報以外の部分が記憶されたメモリ領域を、前記記憶済属性情報に対応する前記非属性情報に当該同一属性パケットに対応する前記非属性情報を含めた情報で上書きする上書き動作を実行する上書き処理をさらに有する記憶方法。
【請求項６】
請求項５に記載の記憶方法において、
前記記憶部のメモリ領域の残余量を測定する処理をさらに有し、
前記上書き処理は、前記記憶部のメモリ領域の残余量が所定の値以下となった場合に、前記上書き動作を実行する記憶方法。
【請求項７】
所定のサイズのメモリ領域を備えた記憶部を有し、ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置に、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させる機能を実現させるためのプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記フロー情報生成装置に、
前記記憶部に記憶された前記属性情報である記憶済属性情報と同一の前記属性情報を含む同一属性パケットが新たに収集された場合、当該同一属性パケットを前記記憶部に記憶させるとともに、当該同一属性パケットが記憶されたメモリ領域のうち、前記属性情報以外の部分が記憶されたメモリ領域を、前記記憶済属性情報に対応する前記非属性情報に当該同一属性パケットに対応する前記非属性情報を含めた情報で上書きする上書き動作を実行する上書き機能をさらに実現させるためのプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記フロー情報生成装置に、
前記記憶部のメモリ領域の残余量を測定する機能をさらに実現させ、
前記上書き機能は、前記記憶部のメモリ領域の残余量が所定の値以下となった場合に、前記上書き動作を実行する機能であるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成するフロー情報生成装置、記憶方法及びプログラムに関する。
【背景技術】
【０００２】
汎用ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を用いたパケットキャプチャ技術において、収集されたパケットに含まれる情報を操作するためには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のカーネル部分と、パケットに含まれる情報を操作するためのアプリケーションを動作させる領域であるユーザスペースとの間でパケットのコピーが発生するのが一般的である。
【０００３】
図９は、カーネル部分とユーザスペースとの間でパケットのコピーが発生している状態を示す図である。図９においてパケットは白色の長方形によって示されている。
【０００４】
図９に示すように、パケットを収集するパケット収集部によって収集されたパケットは、まず、カーネル部分にコピーされる。そして、カーネル部分にコピーされたパケットは、ユーザスペースへコピーされる。このように、パケットのコピーが複数回行われるため非効率的である。
【０００５】
この非効率性を解決するための技術として、ＦｒｅｅＢＳＤ向けのＺｅｒｏｃｏｐｙＢＰＦ（例えば、非特許文献１参照。）や、Ｌｉｎｕｘ向けのＰＦ_ＲＩＮＧ２（例えば、非特許文献２参照。）、ＭＭＡＰを用いたｐｃａｐ等のパケットの収集方法に関する技術が提案、開示されている。なお、ＭＭＡＰとは、ＵＮＩＸ（登録商標）のシステムコールの１つでメモリ領域のマッピングに関する操作のことである。
【０００６】
これら技術では、収集されたパケットが記憶されたメモリ領域に対し、ユーザスペース上のアプリケーションとカーネル部分との両方からアクセスできるようにメモリマッピングが行われる。このようにすることで、カーネル部分とユーザスペースとの間でのパケットのコピーが不要となる。
【０００７】
図１０は、カーネル部分とユーザスペースとの間でのパケットのコピーを不要とした状態の一例を示す図である。図１０においても、図９と同様に、パケットは白色の長方形によって示されている。
【０００８】
図１０に示すように、カーネル部分とユーザスペースとが同一のメモリ領域を共有している。そのため、カーネル部分とユーザスペースとの間でのパケットをコピーする必要がなくなり、効率的である。
【０００９】
一方、フローを単位としてネットワーク上の通信状態を計測するための技術が普及してきている。フローとは同一の属性を持つパケット群のことである。
【００１０】
フローを単位としてネットワーク上の通信状態を計測するための技術として標準化されているのは、ＮｅｔＦｌｏｗ（例えば、非特許文献３参照。）や、ＩＰＦＩＸ（ＩＰ  Ｆｌｏｗ  Ｉｎｆｏｒｍａｔｉｏｎ  ｅＸｃｈａｎｇｅ）（例えば、非特許文献４参照。）がある。これらの技術では、同一の属性を持つ複数のパケットそれぞれの情報を、フローとしての情報であるフロー情報に集約する。
【００１１】
フロー情報は、同一の属性を持つ複数のパケットそれぞれの情報をフロー情報へ集約するフロー情報生成装置から、フロー情報を受信し、フローの分析等を行うフロー情報受信装置へ送信される。
【００１２】
なお、上記のＩＰＦＩＸのアーキテクチャが例えば、非特許文献５に開示されている。非特許文献５によれば、フロー情報生成装置は、パケットを収集する機能部位と、フロー情報を生成及び管理する機能部位(Ｍｅｔｅｒｉｎｇ  Ｐｒｏｃｅｓｓ)と、フロー情報を送信する機能部位(Ｅｘｐｏｒｔｉｎｇ  Ｐｒｏｃｅｓｓ)とから構成される。
【００１３】
ここで、フロー情報は一般的に、フローの属性を特定するための情報と、それ以外の情報とから構成される。以降、前者のことをフローキーといい、後者のことをノンフローキーという。
【００１４】
フローキーとしては例えば、パケットのヘッダに含まれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス及びポート番号や、ＩＰヘッダに含まれるプロトコル番号等がある。
【００１５】
一方、ノンフローキーとしては例えば、フローの開始時刻及びフローの終了時刻や、フローの開始時刻から終了時刻までの間に流れたパケット数、それらのパケットのバイト数等がある。なお、フロー情報の一単位のことをフローレコードという。つまり、１つのフローについて、フローキーとノンフローキーとを対応付けた情報がフローレコードとなる。
【００１６】
フロー情報を生成する際に必要な情報は、ネットワークの構成や目的毎に異なるのが通常である。そのため、非特許文献３に開示されているＮｅｔＦｌｏｗのバージョン９及び非特許文献４に開示されているＩＰＦＩＸでは、フローレコードは固定フォーマットになっておらず、テンプレートと呼ばれる定義情報を用いることによってフローレコードのフォーマットが決定される。そして、テンプレートがフロー情報生成装置からフロー情報受信装置に送信される。
【００１７】
また、収集されたパケットの情報を集約してフロー情報を生成する際、収集されたパケットの情報は、フロー情報としてフロー情報受信装置へ送信されるまでの間、フロー情報生成装置内に蓄積される。パケットの情報が蓄積されている状態から、フロー情報としてフロー情報受信装置へ送信する状態または送信を待機している状態へ移行する契機は、実装方法によって異なる。その契機としては例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）におけるＦＩＮ等の明示的にフローの終了を示すパケットが収集された場合や、フローレコードの蓄積量が所定の上限値を超えた場合等である。
【先行技術文献】
【非特許文献】
【００１８】
【非特許文献１】Zero-copyBPFhttp://www.watson.org/~robert/freebsd/2007asiabsdcon/20070309-devsummit-zerocopybpf.pdf
【非特許文献２】Improving Passive Packet Capture: Beyond Device Pollinghttp://luca.ntop.org/Ring.pdf
【非特許文献３】Cisco Systems NetFlow Services Export Version 9http://www.ietf.org/rfc/rfc3954.txt
【非特許文献４】Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Informationhttp://www.ietf.org/rfc/rfc5101.txt
【非特許文献５】Architecture for IP Flow Information Exporthttp://www.ietf.org/rfc/rfc5470.txt
【発明の概要】
【発明が解決しようとする課題】
【００１９】
上述したように、フロー情報生成装置は、パケットを収集し、収集されたパケットの情報を集約してフロー情報を生成する。
【００２０】
近年は、ネットワークの高帯域化が進んでおり、ネットワークには大量のパケットが流れている。この大量のパケットの情報を集約してフロー情報を生成する場合、フロー情報生成装置に過大な負荷がかかる。その結果、フロー情報の生成に多大な時間を要してしまうという問題点がある。
【００２１】
ここで、非特許文献１，２に開示されている技術を用いれば、収集されたパケットをユーザスペースへコピーする必要がなく、パケットの収集までの処理を効率化することは可能である。
【００２２】
しかし、収集されたパケットの情報を集約してフロー情報を生成する処理も効率化できなければ、フロー情報の生成に要する時間を短縮することはできない。
【００２３】
本発明は、フロー情報を効率的に生成することを可能にするフロー情報生成装置、記憶方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２４】
上記目的を達成するために本発明は、
ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置であって、
所定のサイズのメモリ領域を備えた記憶部と、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させるフロー情報生成管理部と、を有する。
【００２５】
また、所定のサイズのメモリ領域を備えた記憶部を有し、ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置における記憶方法であって、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させる処理を有する。
【００２６】
また、本発明のプログラムは、所定のサイズのメモリ領域を備えた記憶部を有し、ネットワークを流れる複数のパケットを収集して記憶し、該記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成し、前記フロー情報が、前記複数のパケットのそれぞれに含まれ、当該パケットの属性を特定する属性情報と、前記複数のパケットそれぞれに対応し、前記フロー情報を生成するために必要な非属性情報とから構成されるフロー情報生成装置に、
前記収集されたパケットを前記記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、前記属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する前記非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、前記属性情報と前記非属性情報とを対応付けて記憶させる機能を実現させる。
【発明の効果】
【００２７】
本発明によれは、ネットワークを流れる複数のパケットを収集して記憶し、記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成するフロー情報生成装置は、収集されたパケットを記憶部のメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、属性情報と非属性情報とを対応付けて記憶させる。
【００２８】
そのため、フロー情報を効率的に生成することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明のフロー情報生成装置の実施の一形態の構成を示すブロック図である。
【図２】図１に示したパケット収集部にて収集されたパケットが記憶された共用記憶部のメモリ領域を、フローレコードを記憶させるメモリ領域として利用した場合の一例を示す図である。
【図３】図１に示したパケット収集部にて収集されたパケットが記憶された共用記憶部のメモリ領域を、フローレコードを記憶させるメモリ領域として利用した場合の他の例を示す図である。
【図４】図１に示した共用記憶部の新たに収集されたパケットが記憶されたメモリ領域に、収集されたパケットの情報を集約していく方法を説明するための図である。
【図５】図１に示したフロー情報生成管理部がハッシュ値を利用してメモリ領域を検索する方法を説明するための図である。
【図６】図１に示した共用記憶部に記憶されたフローレコードのデータ構造の一例を示す図である。
【図７】図１に示したフロー情報生成管理部の動作を説明するためのフローチャートである。
【図８】図１に示したフロー情報生成管理部がフローレコードを送信する動作を説明するための図である。
【図９】カーネル部分とユーザスペースとの間でパケットのコピーが発生している状態を示す図である。
【図１０】カーネル部分とユーザスペースとの間でのパケットのコピーを不要とした状態の一例を示す図である。
【発明を実施するための形態】
【００３０】
以下に、本発明の実施の形態について図面を参照して説明する。
【００３１】
図１は、本発明のフロー情報生成装置の実施の一形態の構成を示すブロック図である。
【００３２】
本実施形態のフロー情報生成装置１０は図１に示すように、パケット収集部１１と、所定のサイズのメモリ領域を備えた共用記憶部１２ａを有するフロー情報生成管理部１２と、フロー情報送信部１３とを備えている。
【００３３】
パケット収集部１１は、ネットワーク２０を流れるパケットを収集する。
【００３４】
フロー情報生成管理部１２には、ＯＳと、フローレコードから構成されるフロー情報データベースを作成するアプリケーションとがインストールされている。以降、このアプリケーションのことを単に、「アプリケーション」という。このアプリケーションは、アプリケーションを動作させるために割り当てられたメモリ領域であるユーザスペース上で動作する。なお、このユーザスペースは、共用記憶部１２ａのメモリ領域とは別のメモリ領域である。フロー情報生成管理部１２は、パケット収集部１１にて収集されたパケットを共用記憶部１２ａのメモリ領域に記憶させる。そして、収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として利用する。これにより、収集されたパケットをユーザスペースへコピーすることなくフロー情報を生成することができる。なお、収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として利用する方法の詳細については後述する。また、フロー情報生成管理部１２は、蓄積されたフローレコードを送信するための所定の送信条件が満足されると、共用記憶部１２ａに記憶されたフローレコードに、アプリケーションのプロトコルに応じたヘッダ情報を付加してフロー情報送信部１３へ出力する。なお、所定の送信条件とは例えば、以下の（１）〜（４）に示す条件である。
【００３５】
（１）予め決められた一定時間フローが継続し、フローの生存時間がアクティブタイムアウトと呼ばれるタイムアウト時間を超過した場合
（２）同一のフローのパケットが一定時間収集されず、インアクティブタイムアウトと呼ばれるタイムアウト時間を超過した場合
（３）ＴＣＰにおけるＦＩＮ等の明示的にフローが終了することを示すパケットが収集された場合
（４）フローレコードの蓄積量が所定の上限値を超過した場合
フロー情報送信部１３は、フロー情報生成管理部１２から出力されたフローレコードをフロー情報受信装置（不図示）へ送信する。
【００３６】
以下に、収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として利用する方法の詳細について説明する。
【００３７】
まず、フロー情報生成管理部１２は、収集されたパケット１つを記憶させるメモリ領域のサイズを予め決定しておく。このサイズは、フロー情報データベースにおいてフローレコードを記憶させるメモリ領域のサイズと同等以上のサイズとするが、基本的には、同じサイズでよい。
【００３８】
但し、収集されたパケットのヘッダに付加的なオプションの情報が含まれる可能性がある場合、フローレコードを記憶させるメモリ領域のサイズと同じサイズでは正しく処理ができない場合が生じうる。この場合には、フローレコードを記憶させるメモリ領域のサイズよりも大きなサイズを、収集されたパケット１つを記憶させるメモリ領域のサイズとすればよい。なお、付加的なオプションの情報としては例えば、ＩＰｖ４におけるＯｐｔｉｏｎフィールドや、ＩＰｖ６におけるＥｘｔｅｎｓｉｏｎ  Ｈｅａｄｅｒ等のヘッダ拡張領域が挙げられる。
【００３９】
ここで、フローキーとしては一般的に、ＯＳＩ参照モデルにおける第４層（Ｌａｙｅｒ４：以下、Ｌ４と表記する）までのプロトコルのヘッダの情報が利用される。そのため、収集されたパケットを記憶させたメモリ領域のうち、そのパケットのペイロード等が記憶されたメモリ領域には、フロー情報として利用されない情報が記憶されていることとなる。なお、以降、ＯＳＩ参照モデルにおけるＬ４までのプロトコルのヘッダの情報のことを属性情報という。
【００４０】
フロー情報生成管理部１２は、ノンフローキーとなる情報等（以降、非属性情報という）と、フロー情報データベースを構成する上で管理する必要がある情報（以降、管理情報という）とで、ペイロード等が記憶されたメモリ領域を上書きする。なお、非属性情報には、ノンフローキーとなる情報と、収集されたパケットに含まれない情報でフロー情報を生成するために必要な情報とが少なくとも含まれる。
【００４１】
この場合、収集されたパケット１つを記憶させるメモリ領域のサイズは、属性情報のサイズと非属性情報のサイズと管理情報のサイズとを合わせたサイズとなる。
【００４２】
図２は、図１に示したパケット収集部１１にて収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として利用した場合の一例を示す図である。図２においてパケットは白色の長方形によって示されており、これは、以下の説明で参照する図においても同様である。
【００４３】
図２に示すように、収集されたパケットに含まれるイーサネットヘッダからＬ４ヘッダまでが記憶されたメモリ領域は、そのままフローレコードの属性情報として利用される。一方、収集されたパケットに含まれるペイロード等が記憶されたメモリ領域は、フローレコードの非属性情報及び管理情報で上書きされる。
【００４４】
なお、図２に示した例では、非属性情報を共用記憶部１２ａに記憶させたが、共用記憶部１２ａとは別のメモリ領域に非属性情報を記憶させてもよい。この場合、非属性情報が記憶されているメモリ領域の位置を示すメモリ番地を管理情報として記憶しておけばよい。また、この場合、収集されたパケット１つを記憶させるためのメモリ領域のサイズは、属性情報のサイズと管理情報のサイズとを合わせたサイズとなる。
【００４５】
図３は、図１に示したパケット収集部１１にて収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として利用した場合の他の例を示す図である。図３では、ユーザスペースに非属性情報を記憶させるメモリ領域を設けた場合を一例として示している。
【００４６】
図３に示すように、非属性情報が記憶されているメモリ領域は、フローレコードの管理情報に記憶されているメモリ番地を用いて参照される。
【００４７】
このように、パケット収集部１１にて収集されたパケットは、共用記憶部１２ａのメモリ領域に記憶される。そして、フロー情報生成管理部１２は、収集されたパケットが記憶されたメモリ領域のうち、属性情報以外の部分が記憶されたメモリ領域を非属性情報や管理情報で上書きする。これにより、収集されたパケットが記憶されたメモリ領域には、フローレコードが記憶されることとなる。そして、フローレコードは、上述した所定の送信条件を満足するまでの間、共用記憶部１２ａに一定時間蓄積される。
【００４８】
ここで、フローレコードが共用記憶部１２ａに蓄積されている間に、新たに収集されたパケットにより、フローレコードが記憶されているメモリ領域が上書きされてしまう可能性がある。
【００４９】
これを回避するために、フロー情報生成管理部１２は、共用記憶部１２ａの各メモリ領域が上書きすることが可能な状態（以降、上書可能状態という）であるか、上書きすることが不可能な状態（以降、使用中状態という）であるかを管理する。本実施形態においては、これを管理するための情報を管理情報に含むものとする。
【００５０】
さらに、フロー情報生成管理部１２は、共用記憶部１２ａのメモリ領域の残余量を、例えば一定の時間間隔で測定する。そして、共用記憶部１２ａのメモリ領域の残余量が所定値以下になった場合、フロー情報生成管理部１２は、フローレコードの蓄積量が所定の上限値を超過したことを理由として、共用記憶部１２ａに記憶されたフローレコードをフロー情報送信部１３へ出力する。なお、このようにメモリ領域の残余量を基準とするのではなく、メモリ領域の使用量を基準としてもよい。
【００５１】
そして、フロー情報生成管理部１２は、フロー情報送信部１３へ出力されたフローレコードが記憶されていたメモリ領域を使用中状態から上書可能状態へ変更する。これにより、新たに収集されたパケットをそのメモリ領域に記憶させることができる。以降、上述したような方法でフローレコードが記憶されているメモリ領域が上書きされるのを回避することを「第１の上書回避方法」という。
【００５２】
なお、共用記憶部１２ａのメモリ領域のサイズを決定した際に、共用記憶部１２ａに蓄積することが可能なパケット数が決定される。従って、共用記憶部１２ａのメモリ領域の残余量を測定する方法としては例えば、収集されたパケット数をカウントしていき、カウントされたパケット数と、蓄積することが可能なパケット数との差を計算するというような方法でよい。
【００５３】
ここで、第１の上書回避方法の場合、上述した所定の送信条件（１）〜（３）に達するよりも前に、共用記憶部１２ａのメモリ領域の残余量が所定値以下となってしまう可能性が高い。これを回避するために、新たに収集されたパケットが記憶されたメモリ領域に、収集されたパケットの情報を集約していく方法がある。以降、この方法のことを「第２の上書回避方法」という。
【００５４】
図４は、図１に示した共用記憶部１２ａの新たに収集されたパケットが記憶されたメモリ領域に、収集されたパケットの情報を集約していく方法を説明するための図である。
【００５５】
図４において２番目のパケットは、任意のフローにおいて最初に収集されたパケットであるものとする。すなわち、フロー開始時刻、フロー終了時刻、バイト数及びパケット数を非属性情報とする場合、２番目のパケットが記憶されたメモリ領域のうち、属性情報以外の部分が記憶されたメモリ領域には、以下の情報が記憶されている。
【００５６】
・フロー開始時刻及びフロー終了時刻：２番目のパケットが収集された時刻
・バイト数：２番目のパケットのバイト数
・パケット数：１
また、図４において６番目のパケットは、２番目のパケットと同一のフローのパケットであるものとする。従って、２番目のパケットと６番目のパケットとでは、属性情報は共通である。例えば、ＩＰヘッダ内のプロトコル、送信元ＩＰアドレス、宛先ＩＰアドレス、Ｌ４のプロトコルの情報である送信元ポート番号及び宛先ポート番号という一般的な５タプル(組)に基づいてフローの属性を特定する場合、２番目のパケットと６番目のパケットにおいて、これら５タプルが示す値は同じ値となる。
【００５７】
従って、属性情報として６番目のパケットの属性情報を利用した場合でも、パケットの情報をフローレコードとする際に必要な処理量や計算量は変わらない。
【００５８】
一方、非属性情報として上記の情報を扱う場合には、フローレコードを集約する際に、フロー終了時刻、バイト数及びパケット数を更新する必要がある。
【００５９】
図２に示した例のように非属性情報をフローレコード内に記憶させている場合、フローレコードを集約する方法としては、以下の２つの方法がある。第１の方法は、新たに収集されたパケットが記憶されたメモリ領域を、フローレコードを集約するメモリ領域とする(図４において２番目のパケットを６番目のパケットに統合)方法である。第２の方法は、フローレコードが記憶されているメモリ領域をそのまま、フローレコードを集約するメモリ領域とする(図４において６番目のパケットを２番目のパケット情報に統合)方法である。上述した２つの方法において、非属性情報の更新にかかる処理量は変わらない。なお、図４は、第１の方法の場合を示している。
【００６０】
この更新の結果、フローレコードの非属性情報は以下に示す値となる。なお、上述した２つの方法のいずれを利用するかに応じ、以下に示す値の非属性情報が記憶されるメモリ領域は異なる。
【００６１】
・フロー開始時刻：２番目のパケットが収集された時刻
・フロー終了時刻：６番目のパケットが収集された時刻
・バイト数：２番目のパケットのバイト数と６番目のパケットのバイト数とを合計したサイズ
・パケット数：２
なお、上述した第１の方法の場合、及び、図３に示した例のように共用記憶部１２ａ以外のメモリ領域に非属性情報を記憶させている場合には、フローレコードが記憶されていたメモリ領域から、新たに収集されたパケットが記憶されたメモリ領域へ管理情報をコピーする必要がある。
【００６２】
また、上述した第１の方法の場合、新たに収集されたパケットが記憶されたメモリ領域へ、非属性情報の集約や管理情報のコピーが行われた後、フローレコードが記憶されていたメモリ領域は、上書可能状態に遷移する。
【００６３】
ここで、第２の上書回避方法では、共用記憶部１２ａに記憶されたフローレコードの属性情報と同一の属性情報を含むパケットが新たに収集された場合、非属性情報の集約や管理情報のコピーが必ず発生してしまう。
【００６４】
これを回避するために、通常時において、フロー情報生成管理部１２は、収集されたパケットが記憶されたメモリ領域を利用してフローレコードを蓄積していく。それとともに、フロー情報生成管理部１２は、そのフローレコードの属性情報と同一の属性情報を含む最後に収集されたパケットが記憶されたメモリ領域のメモリ番地を、フローレコード内の管理情報に記憶させておく。
【００６５】
そして、共用記憶部１２ａのメモリ領域の残余量が所定値以下となった場合に、フロー情報生成管理部１２は、記憶されていたフローレコードの非属性情報を、管理情報に記憶させておいたメモリ番地のメモリ領域へ集約する。以降、この方法のことを「第３の上書回避方法」という。
【００６６】
なお、第３の上書回避方法でも、上述した第２の上書回避方法と同様に、非属性情報の集約や管理情報のコピーが行われた後、フローレコードが記憶されていたメモリ領域は、上書可能状態に遷移する。
【００６７】
上述した第１〜第３の上書回避方法は、連続したメモリ領域を上書可能状態とし、新たに収集されるパケットを連続したメモリ領域に記憶させることができるようにするための方法である。例えば、共用記憶部１２ａのメモリ領域の実装方法としてリング型のメモリ領域を想定した場合、使用状態となっているメモリ領域との距離が最も近いメモリ領域から順番に上書可能状態にしていくための方法である。そのために、先に収集されたパケットが記憶されていたメモリ領域から順番に上書可能状態に遷移させる。
【００６８】
上述した第１〜第３の上書回避方法以外にも、フローレコードが記憶されたメモリ領域が、新たに収集されたパケットによって上書きされるのを回避する方法がある。
【００６９】
例えば、共用記憶部１２ａに記憶されたフローレコードの属性情報と同一の属性情報を含むパケットが新たに収集された場合、そのフローレコードの非属性情報が記憶されているメモリ領域を、新たに収集されたパケットの非属性情報を含めて上書きする。それとともに、その新たに収集されたパケットが記憶されたメモリ領域を使用状態から上書可能状態に変更する。以降、この方法のことを「第４の上書回避方法」という。
【００７０】
第４の上書回避方法においては、管理情報のコピーが発生せず、フローレコードの管理という面から見れば効率的ではある。しかし、新たにパケットが収集される度に、メモリ領域が使用状態か上書可能状態か検査する必要があるというデメリットがある。また、連続したメモリ領域を使用することができなくなるというデメリットもある。
【００７１】
以上が、収集されたパケットが記憶された共用記憶部１２ａのメモリ領域を、フローレコードを記憶させるメモリ領域として用いる方法の詳細である。
【００７２】
ここで、パケットの情報を集約してフロー情報を生成する際には、新たに収集されたパケットに含まれる属性情報が、どのフローレコードの属性情報と一致するかを検査する必要がある。この場合、フロー情報生成管理部１２は、新たに収集されたパケットのフローキー(例えば、上述した５タプル)と同じ値を持つメモリ領域を検索する必要がある。これを実現するための方法としては様々なものが考えられるが、一例としてハッシュ値を利用する方法がある。
【００７３】
図５は、図１に示したフロー情報生成管理部１２がハッシュ値を利用してメモリ領域を検索する方法を説明するための図である。
【００７４】
フロー情報生成管理部１２は、収集されたパケットが共用記憶部１２ａに記憶されると、記憶されたパケットのフローキーのハッシュ値を算出する。算出されたハッシュ値は、共用記憶部１２ａのメモリ領域のメモリ番地を管理するための管理用メモリ領域において、インデックスとして利用される。なお、管理用メモリ領域は、アプリケーション側で管理されている。以降、このインデックスのことをハッシュインデックスという。
【００７５】
ここで、管理用メモリ領域に参照先のメモリ番地が記録されていない場合、ハッシュ値を算出したフローキーが記憶されているメモリ領域(フロー情報化しようとしているパケットが記憶されているメモリ領域)のメモリ番地を、参照先メモリ番地として管理用メモリ領域に記録する。
【００７６】
一方、管理用メモリ領域に参照先メモリ番地が記録されている場合には、ハッシュ値を算出したフローキーが記憶されているメモリ領域のメモリ番地を参照先メモリ番地とする管理用メモリ領域を用いる。
【００７７】
なお、上述した第２の上書回避方法及び第３の上書回避方法において、フローレコードを記憶しているメモリ領域が変更になった場合、ハッシュインデックスからの参照先メモリ番地も変更する必要がある。
【００７８】
第２の上書回避方法において、フローレコードを記憶しているメモリ領域の変更は、パケットの収集を契機として行われる。この場合、フローレコードが記憶されているメモリ領域は、新たに収集されたパケットが記憶されたメモリ領域と同一である。そのため、フローレコードが記憶されるメモリ領域のメモリ番地は、容易に取得することができる。従って、第２の上書回避方法においては、「パケットの収集→ハッシュ値の算出→変更前のメモリ領域に記憶されたフローレコードを変更後のメモリ領域へ集約→変更前のメモリ領域を上書可能状態へ変更→ハッシュインデックスの参照先のメモリ番地を変更後のメモリ領域のメモリ番地へ変更」という手順となる。
【００７９】
一方、第３の上書回避方法において、フローレコードを記憶しているメモリ領域の変更は、パケットの収集を契機として行われるとは限らない。また、新たに収集されたパケットが記憶されたメモリ領域が、フローレコードを記憶しているメモリ領域であるとも限らない。従って、ハッシュインデックス側では、参照先メモリ番地としてフローレコードが記憶されているメモリ領域のメモリ番地を記憶する。それとともに、そのフローレコードの管理情報内で参照元となるハッシュインデックスのメモリ番地を記憶する。
【００８０】
これにより、第３の上書回避方法を利用する場合、フローレコードが記憶されているメモリ領域が変更された場合、「変更前のメモリ領域に記憶されたフローレコードを変更後のメモリ領域へ集約→変更前のメモリ領域を上書可能状態に変更→ハッシュインデックスの参照先を変更後のメモリ領域のメモリ番地へ変更」という手順になる。
【００８１】
なお、図５に示したように、共用記憶部１２ａ以外の場所にハッシュインデックスを記憶させる場合、第３の上書回避方法の変形例として、同一のフローで最後に収集されたパケットが記憶されたメモリ領域のメモリ番地を２番目の参照先としてハッシュインデックス側に記憶させておいてもよい。
【００８２】
この場合、フローレコードの管理情報内にハッシュインデックスのメモリ番地を記憶させておく必要はなく、「変更前のメモリ領域のフローレコードを変更後のメモリ領域へ集約→変更前のメモリ領域を上書可能状態に変更→ハッシュインデックスの２番目の参照先を１番目の参照先に変更→２番目の参照先を削除」という手順になる。
【００８３】
また、ハッシュ値を用いた場合、コリジョンが発生する可能性がある。その場合は、ポインタのリストやツリー構造を用いて、そのリストやツリー構造を辿ることによって該当するフローレコードを検索できるようにすればよい。この方法は、チェーン法などといわれる一般的な方法である。この場合、フローレコードの管理情報には、このためのポインタ(参照先メモリ番地)も記憶させておく必要がある。
【００８４】
次に、本実施形態におけるフローレコードのデータ構造について説明する。
【００８５】
図６は、図１に示した共用記憶部１２ａに記憶されたフローレコードのデータ構造の一例を示す図である。
【００８６】
ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）やＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）等を使っていないネットワークからパケットを収集する場合、ＩＰｖ４におけるＯｐｔｉｏｎフィールドまたはＩＰｖ６におけるＥｘｔｅｎｓｉｏｎ  Ｈｅａｄｅｒがパケットに含まれない限り、イーサネットヘッダからＬ４ヘッダまでは(図中網掛けされていない部分)、フローレコードの属性情報として何ら変更を加えることなく利用することができる。
【００８７】
図６では図示されていないが、ＶＬＡＮが存在するネットワークではイーサネットヘッダと、ＩＰｖ４ヘッダまたはＩＰｖ６ヘッダとの間にＶＬＡＮ  Ｔａｇの領域が存在する場合がある。また、ＭＰＬＳが存在するネットワークではＭＰＬＳの領域が存在する場合がある。これらの領域の有無は、収集されたパケットを共用記憶部１２ａに記憶させる前に判断しておけばよい。
【００８８】
また、図６では図示されていないがＩＣＭＰヘッダ、ＩＣＭＰｖ６ヘッダ、ＩＧＭＰ等がＬ４ヘッダ内に含まれていてもよい。
【００８９】
フローレコードが図６に示したデータ構造であり、ＶＬＡＮやＭＰＬＳがないネットワークからパケットが収集された場合、フロー情報生成管理部１２は、まず、ＩＰｖ４におけるＯｐｔｉｏｎフィールドまたはＩＰｖ６におけるＥｘｔｅｎｓｉｏｎ  Ｈｅａｄｅｒ等のヘッダ拡張領域が存在しているかどうかを確認する。
【００９０】
ヘッダ拡張領域が存在しない場合は、そのパケットには一切変更を加えない。一方、ヘッダ拡張領域が存在した場合には、ヘッダ拡張領域で示された内容を処理した後に、そのヘッダ拡張領域を削除する。これにより、Ｌ４ヘッダ以降の位置が移動する。
【００９１】
図７は、図１に示したフロー情報生成管理部１２の動作を説明するためのフローチャートである。ここでは、収集されるパケットは、ＩＰｖ４またはＩＰｖ６に対応しており、ＩＰよりも上位のプロトコルとしてＴＣＰ、ＵＤＰ、ＩＣＭＰ、ＩＧＭＰ、ＩＣＭＰｖ６を処理するパケットである。また、収集されるパケットは、ＶＬＡＮやＭＰＬＳを処理しない。
【００９２】
フロー情報生成管理部１２は、収集されたパケットの先頭から(０バイト目からではなく、１バイト目からカウントアップして)１３バイト目〜１４バイト目のイーサネットヘッダによって示されるイーサネットのタイプを判定する（ステップＳ１）。具体的には、イーサネットのタイプの値がＩＰｖ４を示す０ｘ８０００であるか、ＩＰｖ６を示す０ｘ８６ＤＤであるか、それ以外であるかを判定する。
【００９３】
ステップＳ１の判定の結果、イーサネットのタイプがＩＰｖ４またはＩＰｖ６でない場合、処理を終了する。この場合、そのパケットに含まれる情報は、そのままでは属性情報としては利用できない情報であるため、基本的には破棄される。但し、属性情報として記憶しておく必要がないが、後続の処理が可能な場合には、後続の情報を解析してフローレコードの属性情報として扱ってもよい。
【００９４】
ステップＳ１における判定の結果、イーサネットのタイプがＩＰｖ４である場合、フロー情報生成管理部１２は、ＩＰｖ４ヘッダに含まれるＩＰヘッダレングスフィールドの値を確認する（ステップＳ２）。
【００９５】
ステップＳ２の確認の結果、ＩＰヘッダレングスフィールドの値が５(２０Ｂｙｔｅを意味する)である場合、フロー情報生成管理部１２は次に、このパケットがフラグメントされているかどうかを確認する（ステップＳ３）。なお、フラグメントしているかどうかは、ＩＰ  Ｆｌａｇフィールドを参照することによって判断される。具体的には、ＩＰ  ＦｌａｇフィールドのＭＦ(Ｍｏｒｅ  Ｆｒａｇｍｅｎｔ)の値が０であり、Ｆｒａｇｍｅｎｔ  Ｏｆｆｓｅｔの値が０である場合はフラグメントされていないことを示している。それ以外の場合はフラグメントされている判断される。
【００９６】
ステップＳ３の確認の結果、このパケットがフラグメントされていない場合、フロー情報生成管理部１２は、プロトコル(Ｐｒｏｔｏｃｏｌ)という変数にＩＰｖ４ヘッダのプロトコルフィールドの値を代入する（ステップＳ４）。
【００９７】
一方、ステップＳ１における判定の結果、イーサネットのタイプがＩＰｖ６である場合には、フロー情報生成管理部１２は、プロトコル変数にネクストヘッダのフィールド(ｉｐ６＿ｎｘｔ)の値を代入する（ステップＳ５）。
【００９８】
そして、フロー情報生成管理部１２は、プロトコル変数を確認する（ステップＳ６）
ステップＳ６の確認の結果、プロトコル変数がＴＣＰ（ＩＰＰＲＯＴＯ＿ＴＣＰ）、ＵＤＰ（ＩＰＰＲＯＴＯ＿ＵＤＰ）、ＩＣＭＰ（ＩＰＰＲＯＴＯ＿ＩＣＭＰ）、ＩＧＭＰ（ＩＰＰＲＯＴＯ＿ＩＧＭＰ）、ＩＣＭＰｖ６（ＩＰＰＲＯＴＯ＿ＩＣＭＰＶ６）を示す場合、フロー情報生成管理部１２は、収集されたパケットの先頭から所定のサイズを共用記憶部１２ａに記憶させる（ステップＳ７）。つまり、この場合、収集されたパケットのイーサネットヘッダ、ＩＰヘッダ（ＩＰｖ４ヘッダまたはＩＰｖ６ヘッダ）、Ｌ４ヘッダはそのまま、フローレコードの属性情報として利用することができる。
【００９９】
それ以外の場合は、処理を終了する。この場合、上述のしたようにパケットに含まれる情報の解析を行う。その解析の結果、パケット自体を破棄するか、または、属性情報として記憶できない領域を削除し、削除された領域の分だけ、後続の情報を移動させる。
【０１００】
ここで、上述した所定の送信条件（１）〜（４）を満足し、フロー情報受信装置へフロー情報を送信することが可能な状態になった場合を考えてみる。この場合、送信すべきフローレコードが記憶されているメモリ領域は、連続したメモリ領域となっていない可能性が高い。しかし、本実施形態においては、フローレコードを送信する際、送信対象のフローレコード用に新たにメモリ領域を作成し、作成されたメモリ領域に送信対象のフローレコードをコピーするということは行わない。本実施形態では、例えばｗｒｉｔｅｖシステムコールの動作に代表されるような複数のメモリ領域を同時に出力する方法を用いる。
【０１０１】
図８は、図１に示したフロー情報生成管理部１２がフローレコードを送信する動作を説明するための図である。
【０１０２】
図８に示すように、アプリケーション（例えば、ＮｅｔＦｌｏｗやＩＰＦＩＸ）のプロトコルに応じたヘッダ情報を記憶させるメモリ領域（送出ヘッダ情報領域）をアプリケーション側に設けておく。そして、フロー情報生成管理部１２は、フローレコードとヘッダ情報とを合わせてフロー情報送信部１３へ出力する。なお、ヘッダ情報は、そのヘッダ情報とともに送信されるフローレコードに応じ、送信の度に更新される。例えば、ＩＰＦＩＸの場合であれば、シーケンス番号(Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ)、タイムスタンプ(Ｅｘｐｏｒｔ  Ｔｉｍｅ)、ＩＰＦＩＸメッセージの長さ(Ｌｅｎｇｔｈ)が、送信されるフローレコードに応じ、送信の毎に更新される。
【０１０３】
送出ペイロードインデックスには、送信されることが確定したフローレコードのフィールドまたはフィールドの集合が記憶されたメモリ領域のメモリ番地が記憶されている。
【０１０４】
なお、パケットのヘッダに含まれていた時のサイズと、ＮｅｔＦｌｏｗやＩＰＦＩＸの形式でパケット化する際のサイズとが異なるフィールドが存在する場合がある。例えば、ＩＰｖ４やＩＰｖ６ヘッダのバージョンを示すバージョンフィールドの長さは、収集されたパケットにおいては４ビットである。しかし、ＮｅｔＦｌｏｗやＩＰＦＩＸの形式で送信する場合には、このパージョンフィールドの長さを１バイトとする必要がある。
【０１０５】
この場合、メモリ領域のサイズの変更を行う必要があるため、情報のサイズを変更した後に、その変更された情報を記憶させるためのメモリ領域を別途用意しておく必要がある。そして、その別途用意されたメモリ領域に情報をコピーまたは移動し、その別途用意されたメモリ領域の該当するフィールドの位置を送出ペイロードインデックスから参照できるようにしておく必要がある。
【０１０６】
このように本実施形態において、ネットワークを流れる複数のパケットを収集して記憶し、記憶した複数のパケットを所定の属性に基づいて集約することにより、同一の属性を持つパケット群であるフローの通信状態を示すフロー情報を生成するフロー情報生成装置１０は、収集されたパケットを共用記憶部１２ａのメモリ領域に記憶させ、当該収集されたパケットが記憶されたメモリ領域のうち、属性情報以外の情報が記憶されたメモリ領域を、当該収集されたパケットに対応する非属性情報で上書きすることにより、当該収集されたパケットが記憶されたメモリ領域に、属性情報と非属性情報とを対応付けて記憶させる。
【０１０７】
そのため、フロー情報を効率的に生成することが可能となる。
【０１０８】
また、フロー情報を送信する際も共用記憶部１２ａに記憶されたフローレコードを、コピーすることなく、フロー情報受信装置へ送信する。そのため、フロー情報の生成だけではなく、フロー情報の生成からフロー情報の送信までを効率的に行うことを可能にする。
【０１０９】
なお、本発明においては、フロー情報生成装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをフロー情報生成装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをフロー情報生成装置に読み込ませ、実行するものであっても良い。フロー情報生成装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、フロー情報生成装置に内蔵されたＨＤＤなどを指す。
【符号の説明】
【０１１０】
１０    フロー情報生成装置
１１    パケット収集部
１２    フロー情報作成管理部
１２ａ    共用記憶部
１３    フロー情報送信部
２０    ネットワーク
【図１】
2011049757.tif 000003
【図２】
2011049757.tif 000004
【図３】
2011049757.tif 000005
【図４】
2011049757.tif 000006
【図５】
2011049757.tif 000007
【図６】
2011049757.tif 000008
【図７】
2011049757.tif 000009
【図８】
2011049757.tif 000010
【図９】
2011049757.tif 000011
【図１０】
2011049757.tif 000012