(57)【要約】【課題】統計処理を高速化することによって、高速な通信回線においても、通信データの統計をとることが可能な技術を提供する。【解決手段】ネットワークを流れる通信データについて、複数種類の条件の統計をとる通信データ統計装置は、パケットを受信する受信部と、予め定められた２種類以上のフロー識別子に関して、対応する識別子が一致するパケットを同一の集約フローに分類して、集約フローに属するパケットの集約統計情報を生成する集約部と、１つの統計の条件を定める識別子に関して、対応する識別子が一致する統計用フローに、１つの集約フローを分類し、分類された統計用フローに属するパケットの統計情報を、対応する集約統計情報に基づいて更新する更新処理を、複数の集約フローについて繰り返し行うことによって、複数種類の統計の条件について、各統計情報の更新処理を行う統計処理部と、を備える。【選択図】図２
2010041471.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを流れる通信データについて、複数種類の条件の統計をとる通信データ統計装置であって、
複数種類の識別子を含むパケットを受信する受信部と、
前記受信部において受信されたパケットであって、前記複数種類の識別子うち、予め定められた２種類以上の前記フロー識別子に関して、対応する前記識別子が一致するパケットを、同一の集約フローに分類して、前記集約フローごとに、前記集約フローに属するパケットのパケット数を含む集約統計情報の生成を行なう集約部と、
前記複数種類の条件のうち、１つの前記統計の条件を定める、１種類以上の識別子に関して、対応する前記識別子が一致する統計用フローに、１つの前記集約フローを分類し、前記分類された統計用フローに属するパケットのパケット数を含む統計情報を、対応する前記集約統計情報に基づいて更新する更新処理を、前記集約部においてパケットが分類された複数の集約フローについて繰り返し行うことによって、前記複数種類の統計の条件について、各統計情報の更新処理を行う統計処理部と、
を備える、通信データ統計装置。
【請求項２】
請求項１記載の通信データ統計装置において、
前記統計処理部は、
１つの前記統計の条件について、予め定められた数の前記集約フローに対応する前記集約統計情報に基づいて、各統計用フローの前記統計情報を更新する処理を、前記複数種類の統計の条件について行なうことによって、前記複数種類の統計の条件について、各統計情報の更新処理を行う、通信データ統計装置。
【請求項３】
ネットワークを流れる通信データについて、複数種類の条件の統計をとる通信データ統計方法であって、
（ａ）複数種類の識別子を含むパケットを受信する工程と、
（ｂ）前記受信部において受信されたパケットであって、前記複数種類の識別子うち、予め定められた２種類以上の前記フロー識別子に関して、対応する前記識別子が一致するパケットを同一の集約フローに分類して、前記集約フローごとに、前記集約フローに属するパケットのパケット数を含む集約統計情報の生成を行なう工程と、
（ｃ）１つの前記統計の条件を定める、１種類以上の識別子に関して、対応する前記識別子が一致する統計用フローに、１つの前記集約フローを分類し、前記分類された統計用フローに属するパケットのパケット数を含む統計情報を、対応する前記集約統計情報に基づいて更新する更新処理を行う工程と、
（ｄ）前記複数種類の統計の条件それぞれに関して、前記工程(ｃ)を、複数の前記集約フローついて繰り返す工程と、
を備える、通信データ統計方法。
【請求項４】
請求項３に記載の通信データ統計方法において、
前記工程（ｄ）は、
（ｄ１）前記工程（ｃ）を、１つの前記統計の条件に対して、予め定められた数の集約フローについて繰り返す工程と、
（ｄ２）前記工程（ｄ１）を、複数の前記統計の条件について繰り返す工程と、
を備える、通信データ統計方法。
【請求項５】
ネットワークを流れる通信データについて、複数種類の条件の統計をとる通信データ統計装置に統計処理を実行させるためのプログラムであって、
（ａ）複数種類の識別子を含むパケットを受信する手順と、
（ｂ）前記受信部において受信されたパケットであって、前記複数種類の識別子うち、予め定められた２種類以上の前記フロー識別子に関して、対応する前記識別子が一致するパケットを、同一の集約フローに分類して、前記集約フローごとに、前記集約フローに属するパケットのパケット数を含む集約統計情報の生成を行なう手順と、
（ｃ）１つの前記統計の条件を定める、１種類以上の識別子に関して、対応する前記識別子が一致する統計用フローに、１つの前記集約フローを分類し、前記分類された統計用フローに属するパケットのパケット数を含む統計情報を、対応する前記集約統計情報に基づいて更新する更新処理を行う手順と、
（ｄ）前記複数の統計の条件それぞれに関して、前記手順（ｃ）を、複数の前記集約フローついて繰り返す手順と、
を、前記通信データ統計装置に実行させるためのプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記手順（ｄ）は、
（ｄ１）前記手順（ｃ）を、１つの前記統計の条件に対して、予め定められた数の集約フローについて繰り返す手順と、
（ｄ２）前記手順（ｄ１）を、複数の前記統計の条件について繰り返す手順と、
を備える、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを流れる通信データの統計をとる技術に関する。
【背景技術】
【０００２】
インターネットは重要な社会インフラとして定着しており、従来のベストエフォート型のデータ通信だけでなく、音声や動画、基幹業務のトランザクションデータなど、通信の品質の保証が必要なデータの通信も行われつつある。また、ＡＤＳＬ（Asymmetric Digital Subscriber Line）やＦＴＴＨ（Fiber To The Home）技術の普及によってアクセス回線はブロードバンド化され、これに伴い、通信されるデータ量も増大している。
【０００３】
このような背景から、通信事業者やＩＳＰ（インターネットサービスプロバイダ）はネットワーク内の通信の状態を把握するため、ネットワークを流れる通信データの統計をとる技術を必要としている。中でも、通信データの送信元や宛先、利用されるアプリケーション、品質レベルなどにより分類されるフロー毎に通信データの統計をとる技術に対する要求が高い。
【０００４】
フロー毎に通信データの統計をとる技術として、例えば、特許文献１には、キャッシュ型のフロー統計技術についての記載がある。この技術では、受信パケットのヘッダ情報から所定の組み合わせの識別子（例えば、送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号等）を取得し、その組み合わせ内の各識別子の値がすべて同一であるパケットの数量をカウントすることで、フロー毎の通信量を集計している。
【０００５】
また、統計情報を高速な回線で収集する技術として、例えば、特許文献２が挙げられる。この技術では、更新する情報を一定数蓄積し、メモリからの読み込み、統計の更新、メモリへの書き込みを一括して実施することで、統計処理の高速化を実現している。
【０００６】
【特許文献１】特開２００６−５４０２号公報
【特許文献２】特開２００６−３５２８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載されるような、キャッシュ型のフロー統計技術では、パケットを受信する度に、ヘッダ情報の解析を行うため、フローの分析能力が極めて高いという特徴がある。しかし、受信したパケットのすべてについてヘッダ情報の解析を行い、さらに、その解析結果をメモリに記録する必要があるため、回線速度が４０Ｇｂｐｓ、１００Ｇｂｐｓと高速になるにつれて、メモリへのアクセス速度がネックとなり、必要な統計情報をメモリに記録することが困難になる場合がある。
【０００８】
また、特許文献２に記載された統計処理の高速化技術は、統計情報の一括更新を目的にバッファへ蓄積する。しかしながら、フローの種類が多様である場合には、その統計処理を行う際に、以下の問題がある。例えば、バッファの容量が小さいと、少ないフローの数で、バッファの空き容量がなくなってしまうため、蓄積される情報量が少なく、情報を蓄積することによる高速化の効果は得られない。そのため、統計処理の高速化としては、統計更新処理のオーバヘッド削減効果が得られるだけである。
【０００９】
そこで、本発明は、上記の従来技術の課題に鑑みて、統計処理を高速化することによって、高速な通信回線においても、通信データの統計をとることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【００１１】
［適用例１］  ネットワークを流れる通信データについて、複数種類の条件の統計をとる通信データ統計装置であって、
複数種類の識別子を含むパケットを受信する受信部と、
前記受信部において受信されたパケットであって、前記複数種類の識別子うち、予め定められた２種類以上の前記フロー識別子に関して、対応する前記識別子が一致するパケットを、同一の集約フローに分類して、前記集約フローごとに、前記集約フローに属するパケットのパケット数を含む集約統計情報の生成を行なう集約部と、
前記複数種類の条件のうち、１つの前記統計の条件を定める、１種類以上の識別子に関して、対応する前記識別子が一致する統計用フローに、１つの前記集約フローを分類し、前記分類された統計用フローに属するパケットのパケット数を含む統計情報を、対応する前記集約統計情報に基づいて更新する更新処理を、前記集約部においてパケットが分類された複数の集約フローについて繰り返し行うことによって、前記複数種類の統計の条件について、各統計情報の更新処理を行う統計処理部と、
を備える、通信データ統計装置。
【００１２】
この通信データ統計装置では、ネットワークを流れる通信データについて、複数種類の条件の統計をとる際に、予め定められた所定の集約フローに、受信したパケットを分類して、集約統計情報を生成し、その集約統計情報に基づいて、複数種類の統計の条件について、各統計用フローの統計情報の更新を行なう。そのため、パケットを受信するたびに、１パケットずつ、複数種類の統計の条件について、各統計用フローの統計情報の更新を行なう場合に比べて、各統計用フローの統計情報の更新を行なう回数を減少させることができる。そのため、統計情報が記録されるメモリへのアクセス回数を削減することができ、統計処理を高速化することができる。したがって、高速な通信回線においても、通信データの統計をとることが可能になる。
【００１３】
［適用例２］適用例１に記載の通信データ統計装置であって、
前記統計処理部は、
１つの前記統計の条件について、予め定められた数の前記集約フローに対応する前記集約統計情報に基づいて、各統計用フローの前記統計情報を更新する処理を、前記複数種類の統計の条件について行なうことによって、前記複数種類の統計の条件について、各統計情報の更新処理を行う、通信データ統計装置。
【００１４】
この通信データ統計装置では、１つの統計条件について、複数の集約統計情報に基づいて、連続して各統計用フローの統計情報を更新するため、１つの統計条件について、統計情報を更新している間は、キャッシュメモリを、その１つの統計条件についての統計情報で占有することができる。そのため、キャッシュヒット率が向上し、さらに、統計処理を高速化することができ、高速な通信回線においても、通信データの統計をとることが可能になる。
【００１５】
なお、本発明は、上述した通信データ統計装置としての構成のほか、通信データ統計方法や、コンピュータプログラムとしても構成することができる。かかるコンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態をいくつかの実施例に基づき説明する。
Ａ．第１の実施例：
Ａ−１．第１の実施例の構成：
まず、本発明の第１の実施例について説明する。図１は、第１の実施例としての通信データ統計装置１０４を含むネットワーク構成の一例を示す図である。図示するように、本実施例のネットワーク構成には、それぞれ相互に接続されてパケットの中継を行うルータ１０１ａ〜１０１ｃと、ルータ１０１ｂに接続されたサーバ１０２ａと、ルータ１０１ｃに接続されたサーバ１０２ｂと、ルータ１０１ａに接続された通信データ統計装置１０４と、ルータ１０１ａに接続された端末装置１０３ａ〜１０３ｃと、が含まれている。ルータ１０１ａは、ミラーリング技術あるいはＲＦＣ３１７６に規定されたｓＦｌｏｗ技術を用いることで、中継を行ったパケット（トラフィック）のコピーを通信データ統計装置１０４に送信する。
【００１７】
パケットには、複数の識別子が含まれる。識別子としては、例えば、送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）アドレス、宛先ＩＰアドレス、上位プロトコル、送信元ポート番号、宛先ポート番号（これらを、「５ｔｕｐｌｅｓ」という）、ＶＬＡＮ（バーチャルＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、宛先ＭＡＣアドレス、等が例示される。
【００１８】
本実施例における通信データ統計装置１０４は、ルータ１０１ａから送信されたパケットを受信して、条件の異なる３種類の統計データを、出力する装置である。各統計の条件は、上記した識別子の種類で定められる。この識別子の組み合わせは、通信データ統計装置１０４を管理する管理者によって、任意に設定することができる。
【００１９】
本実施例において、第１の統計条件を定める識別子は、送信元ＩＰアドレス（ＳＩＰ）であり、第２の統計条件を定める識別子は、送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）、第３の統計条件を定める識別子は、送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）と宛先ポート番号（ＤＰＴ）である。本実施例において、上記した統計条件を示す識別子が一致するパケットの集合を、「統計用フロー」という。通信データ統計装置１０４は、統計条件ごとに、パケットを統計用フローに分類して、パケット数の集計を含む統計処理を行う(後に詳述する)。
【００２０】
Ａ−１−１．通信データ統計装置の構成：
図２は、本実施例の通信データ統計装置１０４の概略構成を示す機能ブロック図である。図示するように、本実施例の通信データ統計装置１０４は、集約部２０１と、統計処理部２０２と、記憶装置２１１と、を備える。
【００２１】
記憶装置２１１には、集約テーブル２２１と、ＳＩＰテーブル２３１と、ＳＩＰ−ＤＩＰテーブル２３２と、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３とが記録される。以下、ＳＩＰテーブル２３１と、ＳＩＰ−ＤＩＰテーブル２３２と、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３とをまとめて、単に「統計用フローテーブル」ともいう。集約テーブル２２１と統計用フローテーブルについては、後に詳述する。記憶装置２１１としては、例えば、一般的に流通しているＳＤＲＡＭや、アクセスのレイテンシを低減させたＲＬＤＲＡＭを用いることができる。
【００２２】
なお、本実施例では、通信データ統計装置１０４が出力する統計データの統計条件に対応して、３種類の統計用フローテーブルが作成されるが、統計用フローテーブルの数および、統計条件を定める識別子の組み合わせは、本実施例に限定されない。識別子の他の組み合わせで統計用フローテーブルを作成してもよい。
【００２３】
集約部２０１は、ルータ１０１ａから送信されたパケットを受信して、受信したパケットを、上記した統計用フローに分類して統計処理を行う前に、「集約フロー」に分類して集約フローの統計処理（パケット数の集計を含む）を行う。「集約フロー」は、上記した統計条件を定める識別子の全てを含む識別子の組み合わせで定められる。そして、その統計処理結果を示す「集約データ」を、統計処理部２０２に出力する。すなわち、集約部２０１は、ルータ１０１ａから送信されたパケットを受信して、集約テーブル２２１を更新する。本実施例における集約部２０１が、請求項における「集約部」に相当する。
【００２４】
統計処理部２０２は、集約部２０１から出力される集約データに基づいて、上記した統計用フローの統計処理を行う。すなわち、統計処理部２０２は、集約部２０１から入力される集約データに基づいて、統計用フローテーブルを更新する。本実施例における統計処理部２０２が、請求項における「統計処理部」に相当する。集約部２０１および統計処理部２０２については、後に詳述する。
【００２５】
Ａ−１−２．集約テーブル：
図３は、集約テーブル２２１の構成を示す図である。集約テーブル２２１は、「エントリ番号」と「集約フロー識別条件」と「統計情報」とを含んでいる。集約テーブル２２１に記録される集約フローを規定する識別子の組み合わせは、ＶＬＡＮ  ＩＤ（ＶＩＰ）と、送信元ＩＰアドレス（ＳＩＰ）と、宛先ＩＰアドレス（ＤＩＰ）と、上位プロトコル（ＰＲＴ）と、送信元ポート番号（ＳＰＴ）と、宛先ポート番号（ＤＰＴ）との６種類の識別子の組み合わせである。この識別子の組み合わせは、管理者によって、任意に設定することができる。
【００２６】
「エントリ番号」は、集約テーブル２２１の各エントリを一意に識別する識別子である。「集約フロー識別条件」には、上述した６種類（ＶＩＤ，ＳＩＰ，ＤＩＰ，ＰＲＴ，ＳＰＴ，ＤＰＴ）の識別子とその他の情報が格納される。「その他の情報」には、必要に応じて、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、入力インタフェース、出力インタフェース等、パケットのヘッダに含まれる情報が格納される。
【００２７】
「統計情報」には、「パケット数」、「バイト数」、「開始時刻」、「最終更新時刻」、「その他の情報」が格納される。「バイト数」は受信したパケットの積算バイト数を表し、「開始時刻」は、そのフローに属するパケットが最初に到着した時刻を表す。また、「最終更新時刻」は、そのフローに属するパケットが最後に到着した時刻を表す。「その他の情報」には、必要に応じて、ＴＣＰフラグのうちのＳＹＮフラグが立っているパケットの数等が格納される。なお、以下では、集約テーブル２２１に記録された「集約フロー識別条件」と「統計情報」とをまとめて、「集約データ」という。
【００２８】
Ａ−１−３．統計用フローテーブル：
図４は、各統計用フローテーブルの構成を示す図である。図４（ａ）〜（ｃ）に示した統計用フローテーブル２３１、２３２、２３３は、識別子の１以上の組み合わせからなる統計の条件毎に用意されている。統計用フロー識別条件は、上記した集約フロー識別条件を構成する６種類の識別子のうちから、管理者によって任意に選択された組み合わせで設定される。
【００２９】
図４(ａ)に示すＳＩＰテーブル２３１は、ＳＩＰをフロー識別条件とするテーブルである。図４（ｂ）に示すＳＩＰ−ＤＩＰテーブル２３２は、ＳＩＰとＤＩＰの組み合わせをフロー識別条件とするテーブルである。図４（ｃ）に示すＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３は、送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）と宛先ポート番号（ＤＰＴ）との組み合わせをフロー識別条件とするテーブルである。
【００３０】
各統計用フローテーブルには、「エントリ番号」、「統計用フロー識別条件」、「統計情報」が記録される。「エントリ番号」は、統計用フローテーブルの各エントリを一意に識別する識別番号である。「統計用フロー識別条件」には、各統計用テーブルの統計用フロー識別条件に含まれる識別子が記録される。例えば、ＳＩＰテーブル２３１のフロー識別条件には、ＳＩＰが記録され、ＳＩＰ−ＤＩＰテーブル２３２のフロー識別条件には、ＳＩＰとＤＩＰが記録され、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３のフロー識別条件には、ＳＩＰとＤＩＰとＤＰＴが記録される。
【００３１】
「統計情報」には、統計用フロー毎にカウントされた「パケット数」、「バイト数」、「開始時刻」、「最終更新時刻」、「その他の情報」が記録される。「その他の情報」には、ＴＣＰフラグのうちＳＹＮフラグが立っているパケットの数、各統計用フローのパケット数に基づいて算出されたパケット数の平均値や分散、偏差値、中央値などの種々の統計値が記録される。
【００３２】
また、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３以外の統計用フローテーブルには、統計情報として、「異なり数」が記録される。「異なり数」とは、統計用フロー識別条件に含まれる識別子の各値は同一であるが、その統計用フロー識別条件以外の識別子（異種識別子）の値が異なるパケットの数である。例えば、ＳＩＰ−ＤＩＰテーブル２３２では、ＳＩＰとＤＩＰの値は同じであるが、ＤＰＴの値が異なるパケットの数が、「異なり数」として記録される。なお、以下では、統計用フローテーブル２３１、２３２、２３３に記録された「統計用フロー識別条件」と「統計情報」とをまとめて、「統計用フローデータ」という。
【００３３】
Ａ−１−４．集約部の構成：
図５は、集約部２０１の概略構成を示す機能ブロック図である。図示するように、集約部２０１は、パケット取得部５０１と、集約テーブル制御部５０２と、統計出力部５０３と、を備える。パケット取得部５０１は、パケット取得部バッファ５１１を備える。パケット取得部５０１は、ルータ１０１ａから送信されたパケットを受信する。パケットは、ヘッダ情報として、識別子ＶＩＰ、ＳＩＰ、ＤＩＰ、ＰＲＴ、ＳＰＴ、ＤＰＴ等や、パケットバイト数情報、ＴＣＰフラグ情報等を含んでいる。
【００３４】
そして、パケット取得部５０１は、受信したパケットのヘッダ情報を抽出し、さらに、パケットを取得した時刻を、抽出したヘッダ情報に追加して、ヘッダ情報としてパケット取得部バッファ５１１に蓄積する。本実施例では、パケット取得部５０１は、ルータ１０１ａ（図１）から送信されたパケットを受信するが、パケット取得部５０１は、ネットワークを流れるパケットを横取り（キャプチャ）することとしてもよい。
【００３５】
パケット取得部５０１が抽出するヘッダ情報は、上記した集約テーブル２２１に記録されるフローを識別するための識別子（具体的には、ＶＩＰ、ＳＩＰ、ＤＩＰ、ＰＲＴ、ＳＰＴ、ＤＰＴ）と、パケットバイト数情報、ＴＣＰフラグ情報等である。本実施例におけるパケット取得部５０１が、請求項における「受信部」に相当する。
【００３６】
集約テーブル制御部５０２は、パケット取得部バッファ５１１に蓄積されているヘッダ情報を取得して、ヘッダ情報中の識別子（具体的には、ＶＩＰ、ＳＩＰ、ＤＩＰ、ＰＲＴ、ＳＰＴ、ＤＰＴ）に基づいて、パケットを、対応する集約フローに分類し、分類された集約フロー毎にパケット数の集計を行う。そして、集約テーブル制御部５０２は、集計の結果を、集約部２０１に接続された記憶装置２１１（図２）が有する集約テーブル２２１（図２）に記録する。
【００３７】
具体的には、集約テーブル制御部５０２は、パケット取得部バッファ５１１に蓄積されたヘッダ情報の中から、上記した６種類の識別子（ＶＩＰ、ＳＩＰ、ＤＩＰ、ＰＲＴ、ＳＰＴ、ＤＰＴ）を抽出する。そして、集約テーブル制御部５０２は、抽出した識別子が、集約テーブル２２１に含まれる集約フロー識別条件の識別子と、一致するエントリを、集約テーブル２２１から検索して、集約データ（集約フロー識別条件と統計情報）を抽出する。集約テーブル制御部５０２は、抽出された集約データと、パケット取得部バッファ５１１から取得したヘッダ情報に基づいて、集約テーブル２２１に含まれる対応する統計情報を更新する。
【００３８】
統計情報の更新について、具体的に説明する。集約テーブル制御部５０２は、集約データのうち、統計情報中の「パケット数」を１つ、カウントアップする。また、集約テーブル制御部５０２は、集約データに含まれる「バイト数」に、ヘッダ情報に含まれるバイト数を加算し、「最終更新時刻」＝取得時刻とする。また、集約テーブル制御部５０２は、ヘッダ情報に、ＳＹＮフラグがセットされていれば、集約データに含まれる「ＳＹＮフラグがセットされているパケット数」を１つ、カウントアップする。
【００３９】
そして、集約テーブル制御部５０２は、このようにして更新した集約データを、集約テーブル２２１に書き込む。集約テーブル制御部５０２は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムやハッシュ法等のメモリ管理方法に従って、集約データを集約テーブル２２１に書き込む。
【００４０】
集約テーブル制御部５０２は、ヘッダ情報中の集約フロー識別条件が、集約テーブル２２１に含まれる集約フロー識別条件と一致するエントリを、集約テーブル２２１から検索して、一致するエントリが存在しない場合には、新規にエントリを作成する。このとき、集約テーブル制御部５０２は、「開始時刻」に取得時刻を登録する。
【００４１】
なお、集約テーブル制御部５０２は、ヘッダ情報の中から抽出した識別子に基づいて、受信したパケットの統計情報を記録する集約テーブル２２１のエントリ番号を決定する。具体的には、ヘッダ情報中の中から抽出した識別子のハッシュ値をハッシュ関数によって求め、このハッシュ値をエントリ番号に対応付ける（マッピングする）ことで、エントリ番号の決定を行う。なお、「ハッシュ関数」とは、あるデータが与えられたときに、そのデータを代表する数値を得る関数のことをいう。与えられたデータが同一の場合には、そのデータを代表する数値として、必ず、同一の値が得られる。
【００４２】
集約テーブル制御部５０２は、更新した集約データが出力条件を満たす場合には、集約データを統計出力部５０３へ出力し、該当するエントリを集約テーブル２２１から削除する。本実施例では、出力条件として、パケット数が閾値に達した集約データ（エントリ）を出力するように、予め、管理者により設定されている。なお、出力条件は、この条件に限定されず、種々の条件を設定することができる。例えば、エントリ番号順に定期的に集約データを出力してもよいし、集約フローに属するパケットの取得開始時刻から一定時間経った集約データ（エントリ）を出力してもよい。また、一定パケット受信ごとに出力してもよいし、ハッシュ方式により上書きされるエントリの集約データを出力してもよい。さらに、これらの条件を組み合わせた条件を設定してもよい。
【００４３】
統計出力部５０３は、統計出力部バッファ５１２を備える。統計出力部５０３は、集約テーブル制御部５０２から送出された集約データを受信して、受信した集約データを統計出力部バッファ５１２に蓄積する。統計出力部バッファ５１２に蓄積された集約データの数が一定数に達すると、統計出力部５０３は、蓄積された全ての集約データを、統計処理部２０２へ出力する。
【００４４】
パケット取得部５０１と、集約テーブル制御部５０２と、統計出力部５０３とは、それぞれ、ＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）によって構成されている。これらは、全ての機能が１つのＦＰＧＡによって構成されていてもよいし、個別のＦＰＧＡによって構成されていてもよい。また、ＦＰＧＡではなく、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって構成されていてもよい。
【００４５】
Ａ−１−５．統計処理部の構成：
図６は、統計処理部２０２の概略構成を示す機能ブロック図である。図示するように、統計処理部２０２は、集約データ取得部６０１と、組合せ抽出部６０２と、統計用フローテーブル制御部６０３と、統計用フローデータ出力部６０４と、を備える。集約データ取得部６０１は、集約データ取得部バッファ６１１を備える。集約データ取得部６０１は、集約部２０１から送信された集約データを受信して、受信した集約データを集約データ取得部バッファ６１１へ蓄積する。
【００４６】
組合せ抽出部６０２は、集約データ取得部バッファ６１１から集約データを読み込み、各統計用フローテーブル２３１、２３２、２３３（図４）それぞれに格納すべき識別子と、統計情報を抽出する。図７は、組合せ抽出部６０２における識別子の組合せの抽出の一例を概念的に示す説明図である。図示するように、組合せ抽出部６０２は、読み込んだ１つの集約データ７０１について、ＳＩＰテーブル２３１用の処理のために、識別子ＳＩＰと統計情報を抽出する。同様に、組合せ抽出部６０２は、集約データ７０１について、ＳＩＰ−ＤＩＰテーブル２３２の処理のために、識別子ＳＩＰとＤＩＰと統計情報を抽出する。また、組合せ抽出部６０２は、集約データ７０１について、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３用の処理のために、識別子ＳＩＰとＤＩＰとＤＰＴと統計情報を、抽出する。図７では、抽出されない識別子に、ハッチングを付して示している。なお、以下、抽出した「識別子」と「統計情報」とをまとめて「組み合わせ抽出データ」という。組合せ抽出部６０２は、抽出された組合せ抽出データ７０２、７０３、７０４を、統計用フローテーブル制御部６０３に送信する。
【００４７】
統計用フローテーブル制御部６０３は、組合せ抽出部６０２から送信された組合せ抽出データを受信して、受信した組合せ抽出データに基づいて、各統計用フローテーブル２３１、２３２、２３３(図４)を更新する。
【００４８】
以下に、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３を更新する場合を例に挙げて、具体的に説明する。統計用フローテーブル制御部６０３は、受信した組合せ抽出データに含まれる識別子（ＳＩＰとＤＩＰとＤＰＴ）が、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に含まれる統計用フロー識別条件と一致するエントリを、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３（図４（ｃ））から検索して、統計用フローデータ（統計用フロー識別条件と統計情報）を抽出する。
【００４９】
統計用フローテーブル制御部６０３は、抽出された統計用フローデータのうち、統計情報中の「パケット数」に、受信した組合せ抽出データに含まれる統計情報中の「パケット数」を加算する。また、統計用フローテーブル制御部６０３は、統計用フローデータに含まれる「バイト数」に、組合せ抽出データに含まれる「バイト数」を加算し、「最終更新時刻」を、組合せ抽出データに含まれる「取得時刻」とする。また、統計用フローテーブル制御部６０３は、統計用フローデータに含まれる「ＳＹＮフラグがセットされているパケット数」に、組合せ抽出データに含まれるパケット数を加算する。そして、集約テーブル制御部５０２は、このようにして更新した統計用フローデータを、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３（図４）に書き込む。統計用フローテーブル制御部６０３は、上記した集約テーブル２２１を更新する場合と同様に、ＬＲＵアルゴリズムやハッシュ法等のメモリ管理方法に従って、統計用フローデータをＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３（図４）に書き込む。
【００５０】
統計用フローテーブル制御部６０３は、受信した組合せ抽出データに含まれる識別子（ＳＩＰとＤＩＰとＤＰＴ）が一致するエントリが、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３中に存在しない場合には、新規にエントリを作成する。このとき、統計用フローテーブル制御部６０３は、統計情報中の「開始時刻」に組合せ抽出データに含まれる「開始時刻」を登録する。なお、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３におけるエントリ番号も、上記した集約テーブル２２１におけるエントリ番号の決定方法と同様にハッシュ関数を用いて決定される。
【００５１】
統計用フローテーブル制御部６０３は、更新した統計用フローデータが出力条件を満たす場合には、統計用フローデータを統計用フローデータ出力部６０４へ出力し、該当するエントリをＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３から削除する。出力条件は、上記した集約テーブル制御部５０２が、集約データを出力する場合の条件と同様である。ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２についても、同様に更新される。
【００５２】
統計用フローデータ出力部６０４は、出力部バッファ６１２を備える（図６）。統計用フローデータ出力部６０４は、統計用フローテーブル制御部６０３から送信された統計用フローデータを受信して、受信した統計用フローデータを出力部バッファ６１２に蓄積する。出力部バッファ６１２に蓄積された統計用フローデータの数が一定数に達すると、統計用フローデータ出力部６０４は、蓄積された全ての統計用フローデータを、通信データ統計装置１０４が備えるデータベース(図示しない)へ出力する。
【００５３】
なお、統計用フローデータ出力部６０４は、ネットワークを介して接続される、フローデータを収集する装置（例えば、データベースを備えるサーバ１０２ａ）へ出力するようにしてもよい。また、フローデータを収集する装置は、ＲＳ−２３２ＣやＵＳＢ等のインタフェースによって接続されてもよい。さらに、統計用フローデータ出力部６０４は、所定のインタフェースに対して統計情報を出力する以外にも、通信データ統計装置１０４に接続された表示装置や印刷装置に対して、統計情報を出力することとしてもよい。
【００５４】
集約データ取得部６０１と、組合せ抽出部６０２と、統計用フローテーブル制御部６０３と、統計用フローデータ出力部６０４とは、それぞれ、ＦＰＧＡによって構成されている。これらは、全ての機能が１つのＦＰＧＡによって構成されていてもよいし、個別のＦＰＧＡによって構成されていてもよい。また、ＦＰＧＡではなく、ＡＳＩＣによって構成されていてもよい。
【００５５】
Ａ−２．第１の実施例の動作：
第１の実施例における通信データ統計装置１０４の動作について、図８、９に基づいて、説明する。図８は、第１の実施例の集約部における処理の流れを示すフローチャートであり、図９は、第１の実施例の統計処理部における処理の流れを示すフローチャートである。
【００５６】
まず、図８に示すように、集約部２０１は、１０１ａから送信されたパケットを受信し（ステップＳ１０２）、受信したパケットに含まれる識別子（ＶＩＰ、ＳＩＰ、ＤＩＰ、ＰＲＴ、ＳＰＴ、ＤＰＴ）に基づいて、集約テーブル２２１（図２）から、識別子が一致するエントリを検索する（ステップＳ１０４）。そして、集約部２０１は、該当するエントリの集約データに含まれる統計情報を、そのパケットに含まれるヘッダ情報に基づいて更新する（ステップＳ１０６）。
【００５７】
集約部２０１は、更新した集約データが、上記した出力条件を満たす場合には（ステップＳ１０８において、Ｙｅｓ）、統計出力部バッファ５１２（図５）に、その集約データを蓄積する（ステップＳ１１０）。そして、統計出力部バッファ５１２に蓄積した集約データに該当するエントリを、集約テーブルから削除する（ステップＳ１１２）。集約部２０１は、統計出力部バッファ５１２に蓄積された集約データの数が一定数Ｎ１に達すると（ステップＳ１１４において、Ｙｅｓ）、蓄積された全ての集約データを、統計処理部２０２へ出力して（ステップＳ１１２）、集約部の処理を終了する。
【００５８】
一方、集約部２０１は、更新した集約データが、上記した出力条件を満たさないと判断した場合には（ステップＳ１０８において、Ｎｏ）、更新した集約データを、集約テーブルの該当するエントリに書き込んで（ステップＳ１１８）、集約部の処理を終了する。
【００５９】
また、統計出力部バッファ５１２に蓄積された集約データの数が一定数Ｎ１に達しない場合には（ステップＳ１１４において、Ｎｏ）、集約部２０１は、集約データを出力せず、集約部２０１の処理を終了する。集約部２０１は、パケットを受信すると、上記した処理を実行する。すなわち、連続してパケットを受信している場合には、上記した処理を繰り返し実行して、記憶装置２１１に記録されている集約テーブル２２１（図２）を更新している。
【００６０】
図９に示すように、統計処理部２０２は、集約部２０１から集約データを受信すると、受信した集約データから、上記したように、各フローテーブルに格納すべき識別子と、統計情報を抽出する（ステップＳ２０２）。統計処理部２０２は、抽出した識別子（ＳＩＰ）に基づいて、ＳＩＰテーブル２３１から、識別子が一致するエントリを検索する（ステップＳ２０４ａ）。そして、統計処理部２０２は、該当するエントリの統計用フローデータに含まれる統計情報を、抽出された統計情報に基づいて更新する（ステップＳ２０６ａ）。
【００６１】
統計処理部２０２は、更新した統計用フローデータが、上記した出力条件を満たす場合には（ステップＳ２０８ａにおいて、Ｙｅｓ）、出力部バッファ６１２（図６）に、更新した統計用フローデータを蓄積する（ステップＳ２１０ａ）。そして、蓄積した統計用フローデータに該当するエントリを、ＳＩＰテーブル２３１から削除する（ステップＳ２１２ａ）。
【００６２】
一方、統計処理部２０２は、更新した統計用フローデータが、上記した出力条件を満たさないと判断した場合には（ステップＳ２０８ａにおいて、Ｎｏ）、更新した統計用フローデータを、ＳＩＰテーブル２３１の該当するエントリに書き込む（ステップＳ２１４ａ）。
【００６３】
統計処理部２０２は、同様の処理を、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＩＰテーブル２３３に対して実行する（ステップＳ２０４ｂ〜Ｓ２１４ｂ、ステップＳ２０４ｃ〜Ｓ２１４ｃ）。
【００６４】
統計処理部２０２は、ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＩＰテーブル２３３全てについて、１つの集約データに基づいて、統計用フローデータの更新処理が終了すると、出力部バッファ６１２（図６）に蓄積された統計用フローデータの数が一定数Ｎ２に達したか否か判定し（ステップＳ２１６）、蓄積された統計用フローデータの数が一定数Ｎ２に達していると（ステップＳ２１６において、Ｙｅｓ）、蓄積された全ての統計用フローデータを、通信データ統計装置１０４が備えるデータベース(図示しない)へ出力して（ステップＳ２１２）、統計処理部の処理を終了する。
【００６５】
また、出力部バッファ６１２に蓄積された統計用フローデータの数が一定数Ｎ２に達しない場合には（ステップＳ２１６において、Ｎｏ）、統計処理部２０２は、統計用フローデータを出力せず、統計処理部の処理を終了する。統計処理部２０２は、集約データを受信すると、上記した処理を実行する。すなわち、連続して集約データを受信している間は、上記した処理を繰り返し実行して、記憶装置２１１に記録されているＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＩＰテーブル２３３（図２）を更新している。
【００６６】
Ａ−３．第１の実施例の効果：
従来は、ネットワークを流れる通信データ（トラフィック）について、複数種類の条件の統計をとる場合には、統計の条件に対応する識別子の組み合わせごとに、フローテーブルを作成し、通信データ統計装置が１パケット受信するごとに、全てのテーブルの統計情報を更新していた。すなわち、１パケット受信するごとに、フローテーブルが格納されているメモリにアクセスして、統計情報を更新していた。例えば、上記した実施例と同様に３つのフローテーブル（ＳＩＰテーブル、ＳＩＰ−ＤＩＰテーブル、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル）の統計情報を更新する場合には、パケット数がｎとすると、３（テーブル数）×ｎ回、統計情報を更新する必要がある。このような場合に、回線速度が高速であると、受信するパケット数が膨大になるため、フローテーブルが格納されているメモリへのアクセス速度がネックとなり、必要な統計情報をメモリに記録することが困難になる場合があった。
【００６７】
これに対して、本実施例における通信データ統計装置１０４によれば、ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３の統計情報を更新する前に、識別子ＳＩＰ、ＤＩＰ、ＤＰＴ全てを含む集約フロー（識別子フロー情報で規定されるフロー）ごとに、パケット数を集計して、その集計結果である集約データを用いて、ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３の統計情報を更新している。
【００６８】
例えば、集約部２０１が受信するパケット数がｎパケットとして、集約部２０１が統計処理部２０２に送信するパケット数がｍ（＜ｎ）とすると、統計処理部２０２において、ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３の統計情報を更新する回数は、３（テーブル数）×ｍである。したがって、本実施例の１０４におけるテーブル更新回数は、集約テーブルの更新回数と、統計用フローテーブルの更新回数を合わせて、ｎ+３ｍ回となる。
【００６９】
例えば、上記した集約フローに、通常１０パケット含まれると考えると、集約率（出力パケット数ｍ／入力パケット数）は、１／１０になると考えられる。そのため、ｎ＋３ｍ＜３ｎとなる。すなわち、本実施例の通信データ統計装置１０４によれば、従来より、テーブルの更新回数が減少するため、記憶装置２１１へのアクセス回数を削減することができる。したがって、統計処理を高速化することが可能となり、ネットワークの規模が大きい場合や回線速度が高速な場合であっても、通信データの統計をとることが可能となる。
【００７０】
また、本実施例の通信データ統計装置１０４によれば、集約部２０１における集約テーブル制御部５０２は、更新した集約データが出力条件を満たす場合には、集約データを統計出力部５０３へ出力し、該当するエントリを集約テーブル２２１から削除する。また、統計処理部２０２における統計用フローテーブル制御部６０３は、更新した統計用フローデータが出力条件を満たす場合には、統計用フローデータを統計用フローデータ出力部６０４へ出力し、該当するエントリを統計用フローテーブルから削除する。すなわち、統計情報を更新する際に、出力条件を満たすと、記憶装置２１１に格納されている各テーブルのエントリが削除されて、空き容量が確保される。そのため、統計の種類が多い場合に、記憶装置２１１の容量が小さくても、パケットを集約して、統計用フローテーブルを更新することができる。
【００７１】
また、本実施例の通信データ統計装置１０４によれば、上記したように、出力条件を満たすと、記憶装置２１１に格納されている各テーブルのエントリが削除されるため、記憶装置２１１に蓄積される集約フローデータや統計用フローデータの数が膨大になりすぎる可能性を低減することができる。したがって、集約テーブルや、統計用フローテーブルを更新する際に、目的のエントリの検索に要する時間を短縮することができる。
【００７２】
また、本実施例の通信データ統計装置１０４によれば、受信したパケットについて、複数種類の統計情報が外部の機器に出力される。キャリアやＩＳＰは、こうして出力された統計情報を用いることにより、サービス提供時のデータの伝送品質の状況を確認することが可能となる。また、このような情報を用いることで、ネットワーク資源を有効に活用するためのトラフィック・エンジニアリングが可能になる。さらに、顧客の需要を予測してネットワーク資源を計画的に準備しておき、ユーザの要求（帯域、サービス）に対して迅速にネットワーク資源を提供するプロビジョニングや、アタックの検出・分析、課金などを行うことが可能となる。
【００７３】
また、本実施例では、異なり数の集計結果も出力されるため、フロー識別条件によって集約されたフローについて、それらのフローが他の識別子についてどの程度拡散されて送信されているかを把握することができる。そのため、ポートスキャンを伴うネットワークワームの増殖活動等を監視することが可能になる。
【００７４】
Ｂ．第２の実施例：
続いて、本発明の第２の実施例について説明する。第２の実施例は、第１の実施例における集約部２０１をハードウェアで実装した集約装置２０１Ａとして構成し、統計処理部２０２をコンピュータとプログラムにより実装した統計処理装置２０２Ａとして構成した、通信データ統計装置の実装形態を例示している。集約装置２０１Ａと統計処理装置２０２Ａとは、通信インタフェースを介して接続してもよいし、直接バス等を介して接続してもよい。図１０は、統計処理装置２０２Ａの概略構成を示すブロック図である。
【００７５】
図１０に示すように、統計処理装置２０２Ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０２と、ワークメモリ８０３と、プログラムメモリ８０４と、統計情報データベース８０５と、通信インタフェース８０７と、集約データ取得部バッファ８０８と、入出力装置８２１と、を備える。これらは、バス８０９によって接続されている。
【００７６】
プログラムメモリには、パケット送受信処理部８１１、集約データ取得部８１２、組み合わせ抽出部８１３、統計用フローテーブル制御部８１４、統計用フローデータ出力部８１５が格納されている。これらは、第１の実施例において説明した各部の処理を実現するためのプログラムである。ＣＰＵ８０２は、プログラムメモリ８０４に格納されている各種プログラムを、ワークメモリにロードして実行することにより、各部の機能を実現する。
【００７７】
統計情報データベース８０５には、第１の実施例で説明した、統計用フローテーブル（ＳＩＰテーブル２３１、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３が格納されている。また、出力される統計用フローデータも、統計情報データベース８０５に記録される。集約データ取得部バッファ８０８には、集約装置２０１Ａから通信インタフェース８０７を介して入力される集約データが格納される。
【００７８】
図１１は、本実施例における統計用フローテーブルの更新順序を概念的に示す図である。図１１において、各統計用フローテーブルを更新するのに用いる集約データを、Ａ〜Ｚで示している。本実施例では、組合せ抽出部８１３は、集約データ取得部バッファ８０８に蓄積された集約データの中から、第１の集約データ（図中Ａで示す）に基づいて、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出して、統計用フローテーブル制御部８１４に送信すると、続いて、第２の集約データ（図中Ｂで示す）に基づいて、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出して、統計用フローテーブル制御部８１４に送信する。
【００７９】
このように、本実施例における組合せ抽出部８１３は、集約データ取得部バッファ８０８に蓄積された１０００個の集約データについて、まず、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出して、統計用フローテーブル制御部８１４に送信する。続いて、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出したのと同一の１０００個の集約データについて、ＳＩＰ−ＤＩＰテーブル２３２に格納すべき組合せ抽出データを抽出して、統計用フローテーブル制御部８１４に送信する。最後に、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出したのと同一の１０００個の集約データについて、ＳＩＰテーブル２３１に格納すべき組合せ抽出データを抽出して、統計用フローテーブル制御部８１４に送信する。なお、本実施例では、１０００個の集約データに基づいて、同一のテーブルに格納すべき抽出データを抽出しているが、その個数は１０００個に限定されない。例えば、１００００個でも、１０００００個でもよい。その個数は、予め、管理者によって、任意に設定される。
【００８０】
統計用フローテーブル制御部８１４は、受信した抽出データに基づいて、統計用フローテーブルを更新する。したがって、統計用フローテーブル制御部８１４は、まず、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に含まれる１０００個の統計用フローデータを更新し、続いて、ＳＩＰ−ＤＩＰテーブル２３２に含まれる１０００個の統計用フローデータを更新し、最後に、ＳＩＰテーブル２３１に含まれる１０００個の統計用フローデータを更新する。このようにすると、ＣＰＵ８０２は、連続して同一の統計用フローテーブルを更新することになる。そのため、ＣＰＵ８０２が同一の統計用フローテーブルを更新している間は、ＣＰＵ８０２に付属するキャッシュメモリ８０２ｃを、１つの統計用フローテーブルで占有することができるため、キャッシュヒット率が向上する。なお、「連続して同一の統計用フローテーブルを更新する」とは、同一の統計用フローテーブルの更新処理が連続して行なわれていればよく、統計用フローテーブルの更新処理以外の処理が間に行われてもよい。すなわち、１０００個の集約データに基づいて、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３の更新処理を行う間に、ＳＩＰ−ＤＩＰテーブル２３２の更新処理や、ＳＩＰテーブル２３１テーブルの更新処理が、間に挟まれなければよい。
【００８１】
次に、本実施例の統計処理装置２０２Ａの動作について、図１２〜１４に基づいて説明する。図１２〜１４は、統計処理装置２０２Ａにおける処理の流れを示すフローチャートである。
【００８２】
集約データ取得部８１２は、集約データを受信すると（ステップＵ１０２）、集約データ取得部バッファ８０８に蓄積し（ステップＵ１０４）、集約データ取得部バッファ８０８内に蓄積される集約データの数（以下、「バッファ蓄積数」という）が１０００個か否かを判定する（ステップＵ１０６）。バッファ蓄積数が１０００個の場合には（ステップＵ１０６において、Ｙｅｓ）、組合せ抽出部８１３は、ｉ＝１とする（ステップＵ１０８）。
【００８３】
ｉ＜１０００であるため（ステップＵ１１０においてＮｏ）、組合せ抽出部８１３は、バッファの１番目の集約データ（第１の集約データ）について、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３に格納すべき組合せ抽出データを抽出し、統計用フローテーブル制御部８１４に送信する。統計用フローテーブル制御部８１４は、受信した抽出データに基づいて、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３から識別子が一致するエントリを検索して、該当するエントリの統計用フローデータに含まれる統計情報を更新する（ステップＵ１１２）。
【００８４】
統計用フローテーブル制御部８１４は、更新した統計用フローデータが、所定の出力条件を満たす場合には（ステップＵ１１４においてＹＥＳ）、更新した統計用フローデータを統計用フローデータ出力部８１５に出力（ステップＵ１１６）し、該当するエントリをＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３から削除する（ステップＵ１１８）。出力条件は、上記した第１の実施例における出力条件と同様である。一方、更新した統計用フローデータが、出力条件を満たさない場合には（ステップＵ１１４においてＮＯ）、更新した統計用フローデータを、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３の該当するエントリに書き込む（ステップＵ１２０）。
【００８５】
続いて、組合せ抽出部８１３は、ｉを１カウントアップして（すなわち、ｉ＝２にして）（ステップＵ１２２）、ステップＵ１１０に戻り、バッファの２番目の集約データ（第２の集約データ）について、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３を更新する（ステップＵ１１０〜Ｕ１２０）。ＣＰＵ８０２は、ステップＵ１１０〜Ｕ１２２の処理を繰り返し、バッファの１０００番目の集約データに基づいてＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３を更新すると、ステップＵ１２２において、ｉ＝１００１として、ステップＵ１１０に戻る。ｉ＞１０００であるため（ステップＵ１１０において、ＹＥＳ）、ステップＵ１２４の処理に移行する。
【００８６】
組合せ抽出部８１３は、ｉ＝１とする（ステップＵ１２４）。ｉ＜１０００であるため（ステップＵ１２６においてＮｏ）、組合せ抽出部８１３は、バッファの１番目の集約データ（第１の集約データ）について、ＳＩＰ−ＤＩＰテーブル２３２に格納すべき組合せ抽出データを抽出し、統計用フローテーブル制御部８１４に送信する。統計用フローテーブル制御部８１４は、受信した抽出データに基づいて、ＳＩＰ−ＤＩＰテーブル２３３から識別子が一致するエントリを検索して、該当するエントリの統計用フローデータに含まれる統計情報を更新する（ステップＵ１２８）。
【００８７】
統計用フローテーブル制御部８１４は、更新した統計用フローデータが、所定の出力条件を満たす場合には（ステップＵ１３０においてＹＥＳ）、更新した統計用フローデータを統計用フローデータ出力部８１５に出力する（ステップＵ１１６）し、該当するエントリをＳＩＰ−ＤＩＰテーブル２３２から削除する（ステップＵ１１８）。出力条件は、上記したＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３における出力条件と同様である。一方、更新した統計用フローデータが、出力条件を満たさない場合には（ステップＵ１３０においてＮＯ）、更新した統計用フローデータを、ＳＩＰ−ＤＩＰテーブル２３２の該当するエントリに書き込む（ステップＵ１３６）。
【００８８】
ＳＩＰ−ＤＩＰテーブル２３２を更新する場合も、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３を更新する場合と同様に、ＣＰＵ８０２は、ステップＵ１２６〜Ｕ１３６の処理を行うと、ｉをカウントアップして、ｉ＝１０００になるまで、ステップＵ１２６〜Ｕ１３６の処理を繰り返す。そして、ｉ＝１００１になると（ステップＵ１２６において、ＹＥＳ）、ステップＵ１４０に移行する。
【００８９】
ＣＰＵ８０２は、上記したＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３、ＳＩＰ−ＤＩＰテーブル２３２を更新する場合と同様に、ステップＵ１２６〜Ｕ１３６の処理を繰り返して、バッファの１〜１０００番目の集約データに基づいて、ＳＩＰテーブル２３１を更新する。そして、ｉ＝１００１になると、ＣＰＵ８０２は、処理を終了する。なお、ＣＰＵ８０２は、バッファ蓄積数＜１０００の場合は（ステップＵ１０６において、ＮＯ）、上記した処理（ステップＵ１０８〜Ｕ１５４）を行なわずに、終了する。すなわち、ＣＰＵ８０２は、バッファ蓄積数が１０００に達するまでは、受信した集約データを集約データ取得部バッファ８０８に蓄積するだけでステップＵ１０８〜Ｕ１５４の処理は実行せず、バッファ蓄積数が１０００に達すると、ステップＵ１０８〜Ｕ１５４の処理を繰り返して、ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰテーブル２３１を更新する。
【００９０】
なお、本実施例における集約装置２０１Ａの動作は、第１の実施例における集約部２０１の動作と同様であるため、その説明は省略する。
【００９１】
以上説明したように、本実施例の通信データ統計装置における統計処理装置２０２Ａによれば、ＣＰＵ８０２は、連続して同一の統計用フローテーブルを更新することになる。そのため、ＣＰＵ８０２が同一の統計用フローテーブルを更新している間は、ＣＰＵ８０２に付属するキャッシュメモリ８０２ｃを、１つの統計用フローテーブルで占有することができるため、キャッシュヒット率が向上する。したがって、１つの集約データに基づいて、３つの統計用フローテーブル（ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰテーブル２３１）を更新する処理を、１０００個の集約データについて繰り返し行なうことにより、３つの統計用フローテーブルを更新する場合に比べて、ＣＰＵ８０２が、統計用フローテーブルが格納されている統計情報データベース８０５にアクセスする回数が減少する。そのため、さらに、統計処理を高速化することができる。
【００９２】
Ｃ．第３の実施例：
次に、本発明の第３の実施例について説明する。上述した第１の実施例や第２の実施例では、通信データ統計装置１０４は独立した装置の形態をとっている。これに対して、第３の実施例では、上述した通信データ統計装置１０４が有する機能（以下、「通信データ統計機能」という）を図１に示したルータ１０１ａの内部に実装させる構成とする。
【００９３】
図１５は、通信データ統計機能を内蔵したルータ１０１ａの機能ブロック図である。ルータ１０１ａは、入力回線に接続された受信パケット処理部１００１と、出力回線に接続された送信パケット処理部１００２と、受信パケット処理部１００１に接続された検索処理部１００３と、トラフィック統計取得部１００５と、検索処理部１００３に付随するルーティングテーブル１００４と、ルータ制御部１０１１とを備えている。
【００９４】
ルータ制御部１０１１は、管理端末１０１２に接続されており、管理端末１０１２の指示に従い、受信パケット処理部１００１や送信パケット処理部１００２、検索処理部１００３に対して、各種の設定を行う。管理端末１０１２とルータ制御部１０１１とは、ネットワークによって接続されてもよいし、ＲＳ−２３２ＣやＵＳＢ等のインタフェースによって接続されてもよい。
【００９５】
受信パケット処理部１００１は、入力回線から受信したパケットを、一旦、内部に備えるバッファ（図示しない）に蓄積し、蓄積したパケットのヘッダ情報を、検索処理部１００３とトラフィック統計取得部１００５とに送信する。
【００９６】
検索処理部１００３は、受信パケット処理部１００１からヘッダ情報を受信すると、ルーティングテーブル１００４を参照して、そのパケットの出力先となる出力回線を検索し、その検索結果を、受信パケット処理部１００１に通知する。
【００９７】
受信パケット処理部１００１は、検索処理部１００３から検索結果を受信すると、検索結果に含まれる出力回線が含まれる送信パケット処理部１００２に、バッファに蓄積されたパケットと検索結果とを転送する。
【００９８】
送信パケット処理部は、受信パケット処理部から、パケット情報と検索処理部１００３による検索結果を受信し、この検索結果に含まれる出力回線にパケットを出力する。
【００９９】
トラフィック統計取得部１００５は、図２に示した通信データ統計装置１０４が有する機能ブロックをすべて有する。ただし、第１の実施例では、ルータ１０１ａからトラフィック情報を受信しているのに対して、本実施例では、受信パケット処理部１００１からパケットのヘッダ情報を受信する。また、第１の実施例では、統計用フローデータを、データベース、もしくは所定のインタフェースに対して出力するのに対して、本実施例にでは、受信パケット処理部１００１に統計用フローデータが出力される。統計用フローデータを取得した受信パケット処理部１００１は、所定のネットワーク機器（例えば、端末装置１０３ａ〜１０３ｃ）に、統計情報を転送する。
【０１００】
以上で説明した第３の実施例によれば、ルータ１０１ａが、高速回線における通信データの統計をとることが可能になる。
【０１０１】
Ｄ．変形例：
また、上記した第２の実施例における統計処理装置２０２Ａのみで、通信データ統計装置を構成することも可能である。この場合には、統計処理装置２０２Ａにおける集約データ取得部８１２を、集約装置２０１Ａにおけるパケット取得部５０１に置き換える。統計処理装置２０２Ａは、ルータ１０１ａから受信したパケットを蓄積して、蓄積されたパケットに基づいて、各統計用フローテーブル（ＳＩＰ−ＤＩＰ−ＤＰＴテーブル２３３、ＳＩＰ−ＤＩＰテーブル２３２、ＳＩＰテーブル２３１）を更新する。このようにしても、ＣＰＵ８０２は、連続して同一の統計用フローテーブルを更新することになるため、キャッシュヒット率が向上し、１パケット受信するごとに、全ての統計用フローテーブルを更新する場合に比べて、統計処理を高速化することが可能となる。この構成は、トラフィック量が少ない回線を対象とする場合に、好適である。
【０１０２】
以上、本発明の種々の実施例について説明したが、本発明はこれら実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、ハードウェアによって実現した機能は、ＣＰＵが所定のプログラムを実行することでソフトウェア的に実現することとしてもよい。
【図面の簡単な説明】
【０１０３】
【図１】第１の実施例としての通信データ統計装置１０４を含むネットワーク構成の一例を示す図である。
【図２】通信データ統計装置１０４の概略構成を示す機能ブロック図である。
【図３】集約テーブル２２１の構成を示す図である。
【図４】各統計用フローテーブルの構成を示す図である。
【図５】集約部２０１の概略構成を示す機能ブロック図である。
【図６】統計処理部２０２の概略構成を示す機能ブロック図である。
【図７】組合せ抽出部６０２における識別子の組合せの抽出の一例を概念的に示す説明図である。
【図８】集約部における処理の流れを示すフローチャートである。
【図９】統計処理部における処理の流れを示すフローチャートである。
【図１０】第２の実施例における統計処理装置２０２Ａの概略構成を示すブロック図である。
【図１１】第２の実施例における統計用フローテーブルの更新順序を概念的に示す図である。
【図１２】統計処理装置２０２Ａにおける処理の流れを示すフローチャートである。
【図１３】統計処理装置２０２Ａにおける処理の流れを示すフローチャートである。
【図１４】統計処理装置２０２Ａにおける処理の流れを示すフローチャートである。
【図１５】通信データ統計機能を内蔵したルータ１０１ａの機能ブロック図である。
【符号の説明】
【０１０４】
１０１ａ、１０１ｂ、１０１ｃ…ルータ
１０２ａ、１０２ｂ…サーバ
１０３ａ…端末装置
１０４…通信データ統計装置
２０１…集約部
２０１Ａ…集約装置
２０２…統計処理部
２０２Ａ…統計処理装置
２１１…記憶装置
２２１…集約テーブル
２３１…ＳＩＰテーブル
２３２…ＳＩＰ−ＤＩＰテーブル
２３３…ＳＩＰ−ＤＩＰ−ＤＰＴテーブル
５０１…パケット取得部
５０２…集約テーブル制御部
５０３…統計出力部
５１１…パケット取得部バッファ
５１２…統計出力部バッファ
６０１…集約データ取得部
６０２…組合せ抽出部
６０３…統計用フローテーブル制御部
６０４…統計用フローデータ出力部
６１１…集約データ取得部バッファ
６１２…出力部バッファ
７０１…集約データ
７０２…抽出データ
８０２…ＣＰＵ
８０２ｃ…キャッシュメモリ
８０３…ワークメモリ
８０４…プログラムメモリ
８０５…統計情報データベース
８０７…通信インタフェース
８０８…集約データ取得部バッファ
８０９…バス
８１１…パケット送受信処理部
８１２…集約データ取得部
８１３…組合せ抽出部
８１４…統計用フローテーブル制御部
８１５…統計用フローデータ出力部
８２１…入出力装置
１００１…受信パケット処理部
１００２…送信パケット処理部
１００３…検索処理部
１００４…ルーティングテーブル
１００５…トラフィック統計取得部
１０１１…ルータ制御部
１０１２…管理端末
【図１】
2010041471.tif 000003
【図２】
2010041471.tif 000004
【図３】
2010041471.tif 000005
【図４】
2010041471.tif 000006
【図５】
2010041471.tif 000007
【図６】
2010041471.tif 000008
【図７】
2010041471.tif 000009
【図８】
2010041471.tif 000010
【図９】
2010041471.tif 000011
【図１０】
2010041471.tif 000012
【図１１】
2010041471.tif 000013
【図１２】
2010041471.tif 000014
【図１３】
2010041471.tif 000015
【図１４】
2010041471.tif 000016
【図１５】
2010041471.tif 000017