(57)【要約】【課題】統計対象パケットを動的に選択して、パケットフロー別の統計情報を収集可能にした通信統計情報収集装置を提供すること。【解決手段】フローテーブルから検索キーに該当するフローエントリを検索するフローテーブル検索部と、フロー別に統計情報を収集する統計収集処理部と、蓄積された統計情報をコレクタ装置に通知するためのパケットを生成する統計情報通知パケット生成部と、フローテーブルから検索された統計制御エントリが示す統計制御情報に従って、フローテーブルを更新するエントリ管理部と、フローテーブルから検索された特定のエントリが示す統計制御情報に従って、コレクタ装置に転送すべきサンプルパケットを所定のサンプリングレートで生成するコピー生成部とを有する通信統計情報収集装置。【選択図】図２０
2006005402.tif 000002
【特許請求の範囲】
【請求項１】
パケットフローを識別するためのフロー識別条件を定義した複数のフローエントリからなるフローテーブルと、ネットワーク受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、上記フローテーブルからフロー検索キーに該当するフロー識別条件をもつフローエントリを検索する検索処理部を有し、上記フローテーブルの検索結果を利用して、パケットフロー別の統計情報を収集する通信統計情報収集装置において、
フロー識別条件と対応して、統計対象とすべきパケットを限定するための統計制御情報を定義した少なくとも１つの統計制御エントリを含む統計機能制御テーブルを有し、
上記検索処理部が、各受信パケットのヘッダ情報から生成したフロー検索キーに従って上記フローテーブルを検索し、フロー検索キーに該当するフローエントリがなかった場合に上記統計機能制御テーブルを検索し、上記フロー検索キーに該当する統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、該統計制御エントリのフロー識別条件に該当するパケットフローの統計情報の収集処理を実行することを特徴とする通信統計情報収集装置。
【請求項２】
前記検索処理部が、フロー検索キーに該当するエントリとして前記統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、前記フローテーブルまたは統計機能制御テーブルの内容を変更するための手段を備えたことを特徴とする請求項１に記載の通信統計情報収集装置。
【請求項３】
前記フローテーブルおよび統計機能制御テーブルの各エントリと対応して統計情報を蓄積するための複数の統計情報エントリからなる統計情報テーブルを有し、
前記検索処理部が、前記フロー検索キーによって検索されたフローエントリまたは統計制御エントリと対応する統計情報エントリにおいて、パケット受信に伴った統計情報の更新処理を行う統計収集処理部を備えたことを特徴とする請求項１または請求項２に記載の通信統計情報収集装置。
【請求項４】
前記統計機能制御テーブルが、フロー識別条件として、フロー検索キーとなる複数のヘッダ情報項目のうちの少なくとも１つについて統計対象となるパケットが備えるべきヘッダ情報値を指定した第１、第２の統計制御エントリを含み、
上記第１の統計制御エントリの統計制御情報が、フロー識別条件に該当するパケットフローについて、フロー検索キーで識別されるパケットフロー別に統計情報を収集すべきことを指定し、上記第２の統計制御エントリの統計制御情報が、フロー識別条件に該当するパケットフローについて、所定のサンプリングレートで受信パケットのコピーを生成すべきことを指定しており、
前記検索処理部が、フロー検索キーに該当するエントリとして上記第１の統計制御エントリが検索された時、前記フローテーブルに上記フロー検索キーをフロー識別条件とする新たなフローエントリを追加するための手段と、フロー検索キーに該当するエントリとして上記第２の統計制御エントリが検索された時、フロー識別条件に該当する受信パケットのコピーを所定のサンプリングレートで生成し、特定の統計情報処理装置に転送するための制御動作を開始する手段とを備えたことを特徴とする請求項１から請求項３の何れかに記載の通信統計情報収集装置。
【請求項５】
前記統計機能制御テーブルが、フロー識別条件として、フロー検索キーとなる複数のヘッダ情報項目のうちの少なくとも１つについて統計対象となるパケットが備えるべきヘッダ情報値を指定し、統計制御情報の一部として、新たなフローエントリを登録すべきことを示す登録フラグを含む第１の統計制御エントリを含み、
前記検索処理部が、上記統計機能制御テーブルから、フロー検索キーに該当する統計制御エントリとして上記第１の統計制御エントリが検索された時、受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー識別条件とする新たなフローエントリを前記フローテーブルに追加するエントリ管理部を有することを特徴とする請求項１から請求項３の何れかに記載の通信統計情報収集装置。
【請求項６】
前記第１の統計制御エントリが、統計制御情報の一部として、統計処理の開始条件を含み、
前記エントリ管理部が、上記統計機能制御テーブルから上記第１の統計制御エントリが検索された時、上記統計処理の開始条件と該第１の統計制御エントリに対応した統計情報エントリが示す統計情報とを照合し、統計処理の開始条件が満たされた時点で、前記新たなフローエントリを前記フローテーブルに追加することを特徴とする請求項５に記載の通信統計情報収集装置。
【請求項７】
前記統計機能制御テーブルが、統計制御情報の一部として、所定のサンプリングレートで生成した受信パケットのコピーを予め指定された統計情報処理装置に転送するサンプル処理の開始条件と、サンプル処理の実行要否を示すサンプル処理フラグとを含む第２の統計制御エントリを含み、
前記検索処理部が、
上記統計機能制御テーブルから、フロー検索キーに該当する統計制御エントリとして上記第２の統計制御エントリが検索された時、サンプル処理フラグがオフ状態であれば、上記サンプル処理の開始条件と該第２の統計制御エントリに対応した統計情報エントリが示す統計情報とを照合し、サンプル処理の開始条件が満たされた時点で上記サンプル処理フラグをオン状態に変更するサンプル判定部と、
サンプル処理フラグがオン状態の時、所定のサンプリングレートで受信パケットのコピー生成のための制御信号を発生するサンプル処理部とを備えたことを特徴とする請求項３に記載の通信統計情報収集装置。
【請求項８】
前記第２の制御エントリが、統計制御情報の一部として、サンプル処理の終了条件を含み、
前記サンプル判定部が、前記統計機能制御テーブルから第２の制御エントリが検索された時、サンプル処理フラグがオン状態であれば、上記サンプル処理の終了条件と該第２の制御エントリに対応した統計情報エントリが示す統計情報とを照合し、サンプル処理の終了条件が満たされた時点で上記サンプル処理フラグをオフ状態に戻すことを特徴とする請求項７に記載の通信統計情報収集装置。
【請求項９】
パケットフローを識別するためのフロー識別条件を定義した複数のフローエントリからなるフローテーブルと、ネットワーク受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、上記フローテーブルからフロー検索キーに該当するフロー識別条件をもつフローエントリを検索する検索処理部を有し、上記フローテーブルの検索結果を利用して、パケットフロー別の統計情報を収集する通信統計情報収集装置において、
上記フローテーブルが、フロー識別条件と対応して、統計対象とすべきパケットを限定するための統計制御情報を定義した少なくとも１つの統計制御エントリを含み、
上記検索処理部が、各受信パケットのヘッダ情報から生成したフロー検索に該当するエントリとして、上記フローテーブルから上記統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、該統計制御エントリのフロー識別条件に該当するパケットフローの統計情報の収集処理を実行することを特徴とする通信統計情報収集装置。
【請求項１０】
前記検索処理部が、フロー検索キーに該当するエントリとして前記統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、前記フローテーブルまたは統計機能制御テーブルの内容を変更するための手段を備えたことを特徴とする請求項９に記載の通信統計情報収集装置。
【請求項１１】
前記フローエントリの各フローエントリと対応して統計情報を記憶するための複数の統計情報エントリからなる統計情報テーブルを有し、
前記検索処理部が、前記フローテーブルから検索されたフローエントリと対応する統計情報エントリにおいて、パケット受信に伴った統計情報の更新処理を行う統計収集処理部を備えたことを特徴とする請求項９または請求項１０に記載の通信統計情報収集装置。
【請求項１２】
前記フローテーブルが、フロー識別条件として、検索キーとなる複数のヘッダ情報項目のうちの少なくとも１つについて統計対象となるパケットが備えるべきヘッダ情報値を指定し、統計制御情報の一部として、新たなフローエントリを登録すべきことを示す登録フラグを含む第１の統計制御エントリを含み、
前記検索処理部が、上記フローテーブルから上記第１の統計制御エントリが検索された時、受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー識別条件とする新たなフローエントリを前記フローテーブルに追加することを特徴とする請求項９〜請求項１１の何れかに記載の通信統計情報収集装置。
【請求項１３】
前記フローテーブルが、統計制御情報の一部として、所定のサンプリングレートで受信パケットのコピーを予め指定された統計情報処理装置に転送するサンプル処理の開始条件と、サンプル処理の実行要否を示すサンプル処理フラグとを含む第２の統計制御エントリを含み、
前記検索処理部が、
上記フローテーブルから上記第２の統計制御エントリが検索された時、サンプル処理フラグがオフ状態であれば、上記サンプル処理の開始条件と該第２の統計制御エントリに対応した統計情報エントリが示す統計情報とからサンプル処理の開始要否を判定し、サンプル処理の開始条件が満たされた時点で上記サンプル処理フラグをオン状態に変更するサンプル判定部と、
サンプル処理フラグがオン状態の時、所定のサンプリングレートで受信パケットのコピーを生成するための制御信号を発生するサンプル処理部を備えたことを特徴とする請求項１１または請求項１２に記載の通信統計情報収集装置。
【請求項１４】
前記第２の統計制御エントリが、統計制御情報の一部として、サンプル処理の終了条件を含み、
前記サンプル判定部が、前記第２の統計制御エントリが検索された時、サンプル処理フラグがオン状態であれば、上記サンプル処理の終了条件と該統計制御エントリに対応した統計情報エントリが示す統計情報とからサンプル処理の終了要否を判定し、サンプル処理の終了条件が満たされた時点で上記サンプル処理フラグをオフ状態に戻すことを特徴とする請求項１３に記載の通信統計情報収集装置。
【請求項１５】
前記サンプル処理の開始条件が、パケットフローの帯域値によって指定され、前記第２の統計制御エントリに対応した統計情報エントリが、統計情報項目の一部として帯域を含むことを特徴とする請求項７または請求項１３に記載の通信統計情報収集装置。
【請求項１６】
ネットワークに接続された通信統計情報収集装置であって、
パケットフローを識別するためのフロー識別条件と対応して、統計制御情報を定義した複数のフローエントリからなるフローテーブルと、
上記フローテーブルの各エントリと対応して統計情報を蓄積するための複数の統計情報エントリからなる統計情報テーブルと、
上記ネットワークから受信したパケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、上記フローテーブルからフロー検索キーに該当するフロー識別条件をもつフローエントリを検索するフローテーブル検索部と、
上記フローテーブル検索部によって検索されたフローエントリと対応する統計情報エントリに、パケットフロー別の統計情報を収集する統計収集処理部と、
上記統計情報テーブルに蓄積された統計情報を予め指定された他の統計情報処理装置に通知するためのパケットを生成する統計情報通知パケット生成部と、
上記フローテーブル検索部によって検索された特定のフローエントリが示す統計制御情報に従って、上記他の統計情報処理装置に転送すべき受信パケットのコピーを所定のサンプリングレートで生成するコピー生成部とを有することを特徴とする通信統計情報収集装置。
【請求項１７】
前記フローテーブルが、フロー検索キーとなる複数のヘッダ情報項目のうちの少なくとも１つについて統計対象となるパケットが備えるべきヘッダ情報値を指定したフロー識別条件と対応して、統計対象とすべきパケットを限定するための統計制御情報を定義した少なくとも１つの統計制御エントリを含み、
前記フローテーブル検索部によって、フロー検索キーに該当するエントリとして上記統計制御エントリが検索された時、該エントリが示す統計制御情報に従って、上記フロー検索キーの内容をフロー識別条件とする新たなフローエントリを上記フローテーブルに追加するためのエントリ管理部を有することを特徴とする請求項１６に記載の通信統計情報収集装置。
【請求項１８】
前記エントリ管理部が、前記統計情報テーブルの状態変化を監視し、所定時間を超えて統計情報に変化がない統計情報エントリを検出し、該統計情報エントリが示す統計情報と該エントリに対応するフロー識別条件を上記統計情報テーブルと前記フローテーブルから読み出して、前記統計情報通知パケット生成部に供給することを特徴とする請求項１７に記載の通信統計情報収集装置。
【請求項１９】
前記エントリ管理部が、前記フローテーブルに新たなフローエントリを追加する時、必要に応じて上記フローテーブルから削除すべきフローエントリを選択し、該フローエントリが示すフロー識別条件と、該フローエントリに対応する統計情報エントリが示す統計情報を上記フローテーブルと前記統計情報テーブルから読み出して、前記統計情報通知パケット生成部に供給することを特徴とする請求項１７に記載の通信統計情報収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信統計収集装置に関し、更に詳しくは、通信ネットワークにノード装置として接続され、パケットフロー別にパケット数、バイト数などの統計情報を収集する通信統計収集装置に関する。
【背景技術】
【０００２】
インターネットは、重要な社会インフラストラクチャとして定着し、従来のBest-Effort型データ通信だけでなく、音声、動画などのリアルタイムデータや、基幹業務のトランザクションデータなど、通信品質の保証を必要とするデータ通信にも応用され始めている。また、ＡＤＳＬ（Asymmetric  Digital Subscriber Line）や、ＦＴＴＨ（Fiber To The Home）技術によるアクセス回線のブロードバンド化に伴い、通信されるデータ量も増大化傾向にある。
【０００３】
このような背景から、キャリアやＩＳＰ（Internet Service Provider）などの通信サービス事業者は、ネットワーク上での通信状態を把握するために、通信データ量などの統計情報の収集と分析を行うネットワーク監視機能を必要としている。特に、データの送信元や宛先、アプリケーション、品質レベルなどによって分類される通信データ群（以下、フローと呼ぶ）毎に統計情報を収集、分析する機能の高度化要求が高い。
【０００４】
キャリアやＩＳＰは、このようなフロー毎の統計情報を利用することによって、品質保証した通信サービスの提供時に、通信品質の保証状況を確認することが可能となる。また、限られたネットワーク資源を有効に活用して、データ量の増大に対応するトラフィック・エンジニアリング（以下、ＴＥと略す）が可能となる。更には、顧客の需要を予測してネットワーク資源を計画的に準備し、通信帯域やサービスなどのユーザ要求に対して迅速にネットワーク資源を提供するプロビジョニングや、ネットワーク資源に対する不正ユーザからのアタックの検出および分析、課金などを行うことが可能となる。統計情報収集機能は、一般に、ネットワーク上でパケットの転送制御を行うルータ、スイッチ等のノード装置に装備される。
【０００５】
フロー統計情報の収集方式として、例えば、http://www.cisco.com/warp/public/cc/pd/ iosw/prodlit/nflov_pg.pptに記述されたキャッシュ型のフロー統計技術（非特許文献１）が知られている。上記従来技術を適用した統計情報収集システムは、ネットワーク上に分散して配置された複数の統計情報収集装置と、これらの統計情報収集装置から定期的に通知される統計情報に基づいて、ネットワーク全体のトラフィックを分析するコレクタ装置から構成される。
【０００６】
キャッシュ型の統計情報収集機能をもつルータは、受信パケットの所属フローを識別するためのフローテーブルを備え、パケット受信の都度、受信パケットのヘッダ情報項目やパケットの入力回線インターフェース番号等を組合せからなる検索キーに従って、フローテーブルを検索する。フローテーブルは、フロー毎に用意された複数のフローエントリからなり、各フローエントリは、例えば、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル種別、ＴＯＳ（Type of Service）値、送信元ＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol） ポート番号、宛先ＴＣＰ／ＵＤＰポート番号、入力回線インターフェース番号等の組合せによってフロー識別条件を定義している。
【０００７】
受信パケットがフローテーブルに登録された何れかのフロー識別条件に一致した場合、このフロー識別条件と対応して用意された統計情報エントリにおいて、パケット数やバイト数等の統計データが更新される。上記フローテーブル検索の結果、受信パケットがフローテーブル上のどのフロー識別条件にも一致しなかった場合は、検索キーとなったヘッダ情報項目と入力インターフェース番号等の組合せをフロー識別条件とする新たなフローエントリがフローテーブルに追加される。統計情報エントリの内容は、定期的に監視され、例えば、一定時間以上、統計データに変化がない統計情報エントリの内容が、統計情報データとしてコレクタ装置に送信される。また、コレクタ装置に通知済みとなった統計情報エントリと、これに対応するフローエントリは、エージング処理によってテーブルから削除される。
【０００８】
フロー統計情報の他の収集方式として、例えば、Internet Engineering Task Force（ＩＥＴＦ）のRFC3176（非特許文献２）に記載されたサンプリング型のフロー統計技術が知られている。サンプリング型の統計情報収集システムでは、各ルータが、受信パケットのコピーを選択的にコレクタ装置に転送し、コレクタ装置側で、これらのコピーパケットからフローを識別し、統計情報の収集と分析を行う。
【０００９】
サンプリング型の統計情報収集システムを構成する各ルータは、予めネットワーク管理者によって設定されたサンプリングレートに従って、受信パケットをサンプリングし、サンプリングされた受信パケットのコピー（コピーパケット）を予め規定されたカプセル化フォーマットでコレクタ装置に転送する。各カプセル化パケットには、例えば、受信パケットの入力回線インターフェース番号や、受信パケットのヘッダ情報から特定される出力回線インターフェース番号、次転送先ルータのＩＰアドレス（Next Hop IPアドレス）など、フロー識別用の情報が追加される場合もある。コレクタ装置は、ルータから転送されたカプセル化パケットからコピーパケットを抽出し、コピーパケットのヘッダ情報と、必要に応じて追加されたフロー識別用情報に基づいてフローを識別し、フロー別の統計情報を更新する。
【００１０】
【非特許文献１】http://www.cisco.com/warp/public/cc/pd/ iosw/prodlit/nflov_pg.ppt
【００１１】
【非特許文献２】Internet Engineering Task Force（ＩＥＴＦ）のRFC3176
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述したキャッシュ型の従来の統計情報収集システムでは、フロー識別条件と検索キーに適用される情報要素の組合せが固定的であり、統計情報を収集する各ルータが、全ての受信パケットについて一律にフロー別の統計情報を収集している。従って、フローテーブルに登録されるフローエントリ数、および統計情報エントリ数が増加するという問題がある。
【００１３】
一般に、フロー識別に必要となるフロー識別条件情報は、200〜600ビット程度となる。このような多数ビット情報を検索キーとして高速にテーブル検索する方式として、ＣＡＭ（Content Addressable Memory）用いた検索方式がある。ＣＡＭ方式は、メモリに登録されたフロー識別条件を示すビットパターンと、検索キーとして与えられたビットパターンとを高速にマッチングすることが可能となる。しかしながら、ＣＡＭは、通常の半導体メモリに比較してビット単価が高いため、キャッシュ型の従来の統計情報収集システムのように、各ルータにおけるフローエントリ数が増加すると、フローテーブルの構成に多数のＣＡＭチップを要し、ルータ価格が高価になるという問題がある。
【００１４】
また、キャッシュ型の従来の統計情報収集システムでは、フロー識別条件として、固定的なヘッダ情報項目の組合せしか適用できないため、前述した情報項目以外の他の情報要素、例えば、ＴＣＰコネクションの制御パケット種類を識別するためのＴＣＰフラグや、イーサネット（Ethernet：登録商標）ヘッダ内の宛先ＭＡＣ（Media Access Control）アドレス、送信元ＭＡＣアドレス、仮想ＬＡＮを識別するためのＶＬＡＶ（Virtual LAN）識別子などをフロー識別に利用することが困難となる。
【００１５】
一方、サンプリング型の統計情報収集システムでは、コレクタ装置側でフロー識別しているため、ルータ側でフロー識別するキャッシュ型では不可能な高プロトコルレイヤのヘッダ情報を用いたフロー分類と、パケットデータの内容分析に基づく統計情報の収集が可能となる。また、サンプリング型では、受信パケットの入力回線インターフェース毎にコピーパケット生成のためのサンプリング要否を指定できるため、例えば、統計対象パケットを特定入力回線からの受信パケットに限定することによって、フロー統計精度を高めることが可能となる。
【００１６】
しかしながら、サンプリング型の従来の統計情報収集システムでは、入力回線インターフェース以外の単位、例えば、プロトコル種別によるサンプリングの要否指定ができないため、コレクタ装置におけるフロー統計精度の向上に制約がある。また、従来技術では、サンプリングの要否は、ネットワーク管理者が予め設定しておく必要があり、サンプリング要否の設定をトラフィックの状況に応じてダイナミックに変えることができないと言う問題がある。
【００１７】
本発明の目的は、統計対象パケットを動的に選択して、パケットフロー別の統計情報を収集可能にした通信統計情報収集装置を提供することにある。
本発明の他の目的は、予め指定された属性をもつパケットフローについて、フローテーブルにフロー識別エントリを柔軟に登録可能な通信統計情報収集装置を提供することにある。
本発明の更に他の目的は、パケットフローによってキャッシュ型とサンプリング型の統計情報収集機能を選択的に適用可能な通信統計情報収集装置を提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明の統計情報収集装置は、パケットフローを識別するためのフロー識別条件を定義した複数のフローエントリからなるフローテーブルと、フロー識別条件と対応して、統計対象とすべきパケットを限定するための統計制御情報を定義した少なくとも１つの統計制御エントリを含む統計機能制御テーブルと、ネットワーク受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、上記フローテーブルと統計機能制御テーブルからフロー検索キーに該当するフロー識別条件をもつエントリを検索する検索処理部を有し、
上記検索処理部が、各受信パケットのヘッダ情報から生成したフロー検索キーに従ってフローテーブルを検索し、フロー検索キーに該当するフローエントリがなかった場合に統計機能制御テーブルを検索し、上記フロー検索キーに該当する統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、該統計制御エントリの識別条件に該当するパケットフローの統計情報収集処理を実行することを特徴とする。
【００１９】
本発明の特徴の１つは、上記検索処理部が、フロー検索キーに該当するエントリとして統計制御エントリが検索された時、該統計制御エントリが示す統計制御情報に従って、上記フローテーブルまたは上記統計機能制御テーブルの内容を変更することにある。
上記統計制御エントリは、通常のフローエントリとは異なり、フロー識別条件として、フロー検索キーとなる複数のヘッダ情報項目のうちの少なくとも１つについて、統計対象となるパケットが備えるべきヘッダ情報値を指定している。本発明の好ましい実施形態では、テーブル検索を高速化するため、上述した統計機能制御テーブルをフローテーブルに統合しておき、フロー検索キーに該当するフローエントリが見つからなかった時、フローテーブルからフロー検索キーに該当する統計制御情報エントリを検索できるようにしている。
【００２０】
更に詳述すると、本発明の統計情報収集装置は、フローエントリおよび統計制御エントリのそれぞれと対応して統計情報を蓄積するための複数の統計情報エントリからなる統計情報テーブルを有し、上記検索処理部が、フロー検索キーによって検索されたフローエントリまたは統計制御エントリと対応する統計情報エントリにおいて、パケット受信に伴った統計情報の更新処理を行う統計収集処理部を備える。
【００２１】
本発明の１つの特徴は、上記統計機能制御テーブル（またはフローテーブル）が、統計制御情報の一部として新たなフローエントリを登録すべきことを示す登録フラグを含む第１の統計制御エントリを含み、上記検索処理部によって、フロー検索キーに該当するエントリとして上記第１の統計制御エントリが検索された時、フロー検索キーで特定されるパケットフロー別の統計情報を収集するために、受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー識別条件とする新たなフローエントリを上記フローテーブルに追加するためのエントリ管理部を有することにある。
【００２２】
本発明のもう１つの特徴は、上記統計機能制御テーブル（またはフローテーブル）が、統計制御情報で、フロー識別条件に該当するパケットフローについて、所定のサンプリングレート受信パケットのコピーを生成すべきことを指定した第２の統計制御エントリを含み、上記検索処理部が、フロー検索キーに該当するエントリとして上記第２の統計制御エントリが検索された時、フロー識別条件に該当する受信パケットのコピーを所定のサンプリングレートで生成し、コピーパケットを特定の統計情報処理装置に転送するための制御動作を開始することにある。
【００２３】
本発明の１実施例では、上記第２の統計制御エントリが、統計制御情報の一部として、所定のサンプリングレートで生成した受信パケットのコピーを予め指定された統計情報処理装置に転送するサンプル処理の開始条件と、サンプル処理の実行要否を示すサンプル処理フラグとを含み、上記検索処理部が、フロー検索キーに該当するエントリとして上記第２の統計制御エントリが検索された時、サンプル処理フラグがオフ状態であれば、上記サンプル処理の開始条件と該第２の統計制御エントリに対応した統計情報エントリが示す統計情報とを照合し、サンプル処理の開始条件が満たされた時点で上記サンプル処理フラグをオン状態に変更するためのサンプル判定部と、サンプル処理フラグがオン状態の時、所定のサンプリングレートで受信パケットのコピーを生成するための制御信号を発生するためのサンプル処理部とを備える。
【００２４】
本発明の１実施例では、上記第２の制御エントリが、統計制御情報の一部として、サンプル処理の終了条件を含む。この場合、サンプル判定部は、統計機能制御テーブルから第２の制御エントリが検索された時、サンプル処理フラグがオン状態であれば、上記サンプル処理の終了条件と該第２の制御エントリに対応した統計情報エントリが示す統計情報とを照合し、サンプル処理の終了条件が満たされた時点で上記サンプル処理フラグをオフ状態に戻す。サンプル処理の開始条件と終了条件は、例えば、パケットフローの帯域値で指定される。
【００２５】
別の観点で見ると、本発明による通信統計情報収集装置は、
ネットワークから受信したパケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、フローテーブルからフロー検索キーに該当するフロー識別条件をもつフローエントリまたは統計制御エントリを検索するフローテーブル検索部と、
上記フローテーブル検索部によって検索されたエントリと対応する統計情報エントリに、パケットフロー別の統計情報を収集する統計収集処理部と、
統計情報テーブルに蓄積された統計情報を予め指定された他の統計情報処理装置に通知するためのパケットを生成する統計情報通知パケット生成部と、
上記フローテーブル検索部によって検索された特定のフローエントリが示す統計制御情報に従って、上記他の統計情報処理装置に転送すべき受信パケットのコピーを所定のサンプリングレートで生成するコピー生成部とからなることを特徴とする。
【００２６】
本発明による通信統計情報収集装置の１つの特徴は、上記フローテーブル検索部によって、フロー検索キーに該当するエントリとして上記統計制御エントリが検索された時、該エントリが示す統計制御情報に従って、上記フロー検索キーの内容をフロー識別条件とする新たなフローエントリを上記フローテーブルに追加するためのエントリ管理部を有することにある。
【００２７】
統計情報通知パケット生成部への統計情報の供給は、上記エントリ管理部によって行うことができる。本発明の１実施例では、上記エントリ管理部が、上記統計情報テーブルの状態変化を監視し、所定時間を超えて統計情報に変化がない統計情報エントリを検出し、該統計情報エントリが示す統計情報と該エントリに対応するフロー識別条件を上記統計情報テーブルとフローテーブルから読み出して、上記統計情報通知パケット生成部に供給する。また、フローテーブルに新たなフローエントリを追加する時、上記エントリ管理部が、必要に応じてフローテーブルから削除すべきフローエントリを選択し、該フローエントリが示すフロー識別条件と、該フローエントリに対応する統計情報エントリが示す統計情報を上記フローテーブルと前記統計情報テーブルから読み出して、上記統計情報通知パケット生成部に供給する。
【００２８】
本発明において、各フローエントリで定義するフロー識別条件は、例えば、受信パケットのＩＰヘッダから抽出されるヘッダ情報項目の他に、ＴＣＰあるいはＵＤＰなどのレイヤ４ヘッダや、Ethernetなどのレイヤ２ヘッダから抽出されるヘッダ情報項目、受信パケットの入力回線番号および出力回線番号の組合せとすることができる。
【発明の効果】
【００２９】
本発明によれば、統計制御エントリが示す統計制御情報で、統計対象となるパケットフローの種類を限定できるため、フローテーブルに登録されるフローエントリ数の増加を抑制できる。従って、フローテーブルに必要となる高速メモリの容量が少なくて済み、装置価格を低減することが可能になる。
【００３０】
また、本発明の構成によれば、統計制御エントリの統計制御情報によって、キャッシュ型とサンプリング型の統計情報収集を選択的に実行でき、サンプリング型の統計情報収集のためにコレクタ装置に転送すべきコピーパケットの生成条件を指定することも可能となる。例えば、監視対象となる特定パケットフローの属性をフロー識別条件とする統計制御エントリにおいて、統計制御情報の一部として、サンプリングの開始条件を示す帯域値を指定しておくことにより、上記特定パケットフローの帯域が開始条件に達した時点で、受信パケットのサンプリングを開始し、コピーパケットのコレクタ装置への転送を開始することが可能となる。
【００３１】
この場合、コレクタ装置に送信されるサンプルの母集団を限定できるため、コレクタ装置における統計情報の蓄積を容易にし、分析精度を向上することが可能になる。また、これによって、例えば、特定サーバへのアタックデータ、ウィルスデータ等、トラフィックパターンに特徴があるパケットフローを自動的に検出し、解析することが容易になる。また、これによって、ネットワークやコレクタ装置のリソースの有効利用が可能になる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の通信統計情報収集装置の実施例について図面を参照して説明する。
図１は、本発明の通信統計情報収集装置を適用したネットワーク構成の１例を示す。
ここに示したネットワークＮＷは、端末Ｔ１、Ｔ２、Ｔ３、Ｔ４を収容したルータＲ１と、サーバＳ１を収容したルータＲ２と、サーバＳ２を収容したルータＲ３と、ルータＲ１に接続された統計情報のコレクタ装置Ｃ１から構成され、ルータＲ１が、本発明の通信統計情報収集装置としての機能を備えている。端末Ｔ１、Ｔ２、Ｔ３、Ｔ４は、それぞれ回線Ｃ−Ｔ１、Ｃ−Ｔ２、Ｃ−Ｔ３、Ｃ−Ｔ４を介してルータＲ１に接続され、ルータＲ１は、回線Ｃ−Ｒ２、Ｃ−Ｒ３を介してルータＲ２、Ｒ３に接続されている。
【００３３】
上記ネットワークＮＷにおいて、端末Ｔ１、Ｔ３がサーバＳ１と、端末Ｔ２、Ｔ４がサーバＳ２と通信中で、サーバＳ１から端末Ｔ１、Ｔ３に送信されるＩＰ（Internet Protocol）パケットのフローをそれぞれ「フロー１」、「フロー２」と呼び、サーバＳ２から端末Ｔ２、Ｔ４へのＩＰパケットフローをそれぞれ「フロー３」、「フロー４」と呼ぶことにする。
【００３４】
ここで、フロー１は、ＩＰの上位プロトコルがＴＣＰで、ＩＰヘッダ内のＴＯＳ（Type of Service）がＴＯＳ１、ＴＣＰヘッダ内の送信元ポート番号と宛先ポート番号が、それぞれＳＰＲＴ１、ＤＰＲＴ１のパケット列からなり、フロー２は、ＩＰの上位プロトコルがＴＣＰ、ＴＯＳがＴＯＳ１、送信元ポート番号と宛先ポート番号がそれぞれＳＰＲＴ１、ＤＰＲＴ３のパケット列からなるものとする。また、フロー３は、ＩＰの上位プロトコルがＵＤＰで、ＴＯＳがＴＯＳ２、ＵＤＰヘッダ内の送信元ポート番号と宛先ポート番号がそれぞれＳＰＲＴ２、ＤＰＲＴ２のパケット列からなり、フロー４は、ＩＰの上位プロトコルがＵＤＰで、ＴＯＳがＴＯＳ２、送信元ポート番号と宛先ポート番号が、それぞれＳＰＲＴ２、ＤＰＲＴ４のパケット列からなるものとする。
【００３５】
図２は、上記ネットワーク上で通信されるＩＰパケット１０の構造を示す。
ＩＰパケット１０は、ＯＳＩ（Open System Interconnection）参照モデルのプロトコルレイヤに対応した複数レイヤのヘッダ、具体的には、レイヤ２ヘッダ１１、レイヤ３ヘッダ１２およびレイヤ４ヘッダ１３と、データ１４とから構成される。
【００３６】
レイヤ２のプロトコルとしては、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＴＭ （Asynchronous Transfer Mode）、ＭＰＬＳ（Multi-Protocol Label Switching）等のプロトコルが適用でき、レイヤ３のプロトコルとしては、ＩＰ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４)、ＩＰ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）等のプロトコルを適用できる。また、レイヤ４のプロトコルとしては、ＴＣＰ、ＵＤＰ等のプロトコルを用いることができる。
【００３７】
図３は、レイヤ２ヘッダ１１の１例として、Ｅｔｈｅｒｎｅｔ  V２フレームのヘッダ構造を示す。
Ｅｔｈｅｒｎｅｔ  Ｖ２フレームヘッダには、フレームの開始を示すプリアンブル／ＳＦＤ１１１と、レイヤ２における宛先端末アドレス（宛先ＭＡＣアドレス）１１２および送信元アドレス（送信元ＭＡＣアドレス）１１３と、レイヤ３のプロトコルを示すタイプ１１８が設定される。
【００３８】
図４は、レイヤ２ヘッダ１１の他の例として、Ｔａｇ ＶＬＡＮ対応Ｅｔｈｅｒｎｅｔ  Ｖ２フレームのヘッダ構造を示す。Ｔａｇ  ＶＬＡＮ対応のＥｔｈｅｒｎｅｔ  Ｖ２フレームヘッダには、フレームの開始を示すプリアンブル／ＳＦＤ１１１、レイヤ２における宛先端末アドレス（宛先ＭＡＣアドレス）１１２および送信元アドレス（送信元ＭＡＣアドレス）１１３、Ｔａｇ  ＶＬＡＮ対応であることを示すＴＡＧプロトコルＩＤ１１４、フレームの転送優先度を示す優先度１１５、レイヤ２のルーティング情報が格納されていることを示すＣＦＩ（Cannonical Field Indicator）１１６、ＶＬＡＮ識別子（ＶＬＡＮ  ＩＤ）１１７と、レイヤ３のプロトコルを示すタイプ１１８が設定される。
【００３９】
図５は、レイヤ３ヘッダ１２の１例として、ＩＰｖ４のヘッダ構造を示す。
ＩＰｖ４ヘッダには、パケットの転送品質を示すＴｏＳ１２１、レイヤ４のプロトコルを示すプロトコル１２２、送信元ＩＰアドレス１２６Ａ、宛先ＩＰアドレス１２７Ａ、その他の情報が含まれる。ＴｏＳとプロトコルはそれぞれ８ビット、送信元ＩＰアドレスと宛先ＩＰアドレスはそれぞれ３２ビットからなる。
【００４０】
図６は、レイヤ３ヘッダ１２の他の例として、ＩＰｖ６のヘッダ構造を示す。
ＩＰｖ６ヘッダには、パケットの転送品質を示すクラス１２３、このＩＰｖ６ヘッダ部に続く次のヘッダの種別を示す次ヘッダ番号１２５、送信元ＩＰアドレス１２６Ｂ、宛先ＩＰアドレス１２７Ｂ、その他の情報が含まれる。次ヘッダが、例えば、ＴＣＰやＵＤＰの場合、次ヘッダ番号１２５として、レイヤ４のプロトコルを示す値が設定される。クラス１２３と次ヘッダ番号はそれぞれ８ビット、送信元ＩＰアドレスと宛先ＩＰアドレスは、それぞれ１２８ビットからなる。
【００４１】
図７は、レイヤ４ヘッダ１３の１例として、ＴＣＰのヘッダ構造を示す。
ＴＣＰヘッダには、上位レイヤがアプリケーションを識別するための論理的なポート番号として、それぞれ１６ビット長の送信元ポート番号１３１Ａおよび宛先ポート番号１３２Ａを含む。また、ＴＣＰコネクションにおけるパケット種別を示すＴＣＰフラグ１３３、その他の情報が含まれる。
【００４２】
ＴＣＰフラグ１３３は、図８に示ように、受信端末に受信データを緊急にアプリケーションに渡すことを指示する緊急フラグ（ＵＲＧ)１３３１、受信端末がデータを受信したことを送信端末に通知するＡＣＫ１３３２、送信端末と受信端末で遅延なくデータを渡すことを指示するＰＵＳＨ１３３３、ＴＣＰコネクションのリセットを指示するＲＳＴ１３３４、コネクションの終了を指示するＦＩＮ１３３５、コネクションの確立を指示するＳＹＮ１３３６の６つのフラグから構成されている。
【００４３】
図９は、レイヤ４ヘッダ１３の他の例として、ＵＤＰのヘッダ構造を示す。
ＵＤＰヘッダには、ＴＣＰヘッダと同様、それぞれ１６ビット長の送信元ポート番号１３１Ｂと宛先ポート番号１３２Ｂが含まれている。
【００４４】
図１０は、図１のルータＲ１において統計情報の収集対象となるフロー識別条件を定義したフローテーブルの一部を示す。ここでは、統計情報の収集対象フローが、レイヤ４のプロトコルがＴＣＰのフローに限定された場合を示している。
フローテーブルの各エントリは、フローエントリ番号６１と対応して、フロー識別条件６２と、図示しない統計制御情報とを示している。フロー識別条件６２は、ＩＰヘッダが示す送信元ＩＰアドレス６２１、宛先ＩＰアドレス６２２、上位プロトコル６２３およびＴＯＳ６２４と、ＴＣＰあるいはＵＤＰヘッダに含まれる送信元ポート番号６２５および宛先ポート番号６２６の値によって定義されている。尚、ここで示したヘッダ情報の組合せは、フロー識別条件の一例に過ぎず、フロー識別条件は、図１０とは異なったヘッダ情報の組合せであってもよい。
【００４５】
本発明の統計情報収集装置（ルータＲ１）では、後述する検索処理部４０によって、上記フローテーブルへのエントリの登録と削除、エントリ内容の部分的な訂正が動的に行われる。フローテーブルへの登録エントリをプロトコル種別がＴＣＰのものに限定した場合、ルータＲ１は、回線Ｃ−Ｒ２、ＣＲ−３から受信するパケットフローのうち、上位プロトコルがＴＣＰとなっているフロー１とフロー２のみをフローテーブルに登録することになる。
【００４６】
図１１は、ルータＲ１の統計情報テーブルに収集される統計情報の一例を示す。
統計情報テーブルは、フローテーブルのフローエントリ番号６１と対応した複数の統計情報エントリからなる。
ここに示した例では、統計情報７２として、フロー別の受信パケット数（以下、パケット数と言う）７２１と、受信パケットの累計バイト数（以下、バイト数と言う）７２２と、受信パケットの入力回線番号７２３と、受信パケットの転送先となる出力回線番号７２４と、その他の情報７２９とが収集されている。
【００４７】
図１２は、本発明の統計情報収集機能を備えたルータＲ１の１実施例を示すブロック図である。
ルータＲ１は、入力回線ＩＣｎ（ｎ＝１〜Ｎ）に接続された受信パケット処理部２０と、出力回線ＯＣｎ（ｎ＝１〜Ｎ）に接続された送信パケット処理部３０と、受信パケット処理部２０に接続された検索処理部４０と、検索処理部４０に付随するフローテーブル６０、統計情報テーブル７０およびルーティングテーブル８０と、制御部９０とから構成される。フローテーブル６０は、後述するように、統計制御エントリを記憶した統計機能制御テーブルを兼用している。制御部９０は、管理端末１３００に接続され、管理端末１３００からの指示に従って、受信パケット処理部２０、検索処理部４０、送信パケット処理部３０に各種パラメータ情報の設定を行う。
【００４８】
ルータＲ１は、上述した受信パケット処理部２０、送信パケット処理部３０、検索処理部４０および制御部９０をそれぞれ専用のＬＳＩで構成し、これらの専用ＬＳＩを相互に接続した構成でもよいし、ＬＳＩ間の配線を少なくするために、複数の処理部を１つの専用ＬＳＩで実現し、少数の専用ＬＳＩを相互接続した構成としてもよい。また、専用ＬＳＩを使用する代わりに、ルータ機能の一部を汎用のＭＰＵ（Micro Processing Unit）やＮＰ(Network Processor)で実現してもよい。
【００４９】
図１２では、受信パケット処理部２０と送信パケット処理部３０とを信号線Ｌ１で接続した構成を示しているが、受信パケット処理部２０と送信パケット処理部３０の個数をそれぞれ複数にし、受信パケット処理部と送信パケット処理部との間をクロスバースイッチで接続した装置構成とすることも可能である。また、検索処理部４０が参照するフローテーブル６０用のメモリとしては、高速の検索処理性能が要求される場合は、例えば、ＣＡＭまたはＳＳＲＡＭを適用し、比較的低速の検索処理性能で十分な場合は、ビット当りの価格が安く、ビット当りのチップ面積も少なくて済むＤＲＡＭを適用できる。
【００５０】
図１３は、ルータＲ１の制御部９０に接続される管理端末１３００の１例を示す。
管理端末１３００は、ルータＲ１内の各種テーブルの内容を表示するための表示画面１３０１と、表示画面に表示されたテーブル内容の任意箇所を選択、編集するためのマウス１３０２、キーボード１３０３などの入力手段とからなる。管理端末１３００は、図１４に示すように、ネットワークＮＷを介してルータＲ１に接続してもよい。また、管理端末１３３０の機能をコレクタ装置Ｃ１に持たせておき、コレクタ装置からルータのテーブル情報を更新するようにしてもよい。
【００５１】
図１５は、ルータＲ１の内部で転送される内部パケットのフォーマットの１例を示す。
内部パケットは、図２に示したネットワークからの受信パケットの先頭に内部ヘッダ１５を付加した構成となっている。内部ヘッダ１５は、パケットの受信回線を示す入力回線番号１５１と、それぞれ検索処理部４０によって決定されるパケットの出力回線番号１５２、カプセル化指示フラグ１５３、カプセルヘッダ情報１５４を含む。
【００５２】
カプセル化指示フラグ１５３には、所定のレートでサンプリングした受信パケットのコピーをコレクタ装置Ｃ１に転送する必要が生じた時、検索処理部４０から送信パケット処理部３０に、受信パケットのカプセル化を指示するためのフラグ情報が設定される。また、カプセルヘッダ情報１５４には、サンプリングされた受信パケットをコレクタ装置Ｃ１に転送する際に必要となるカプセル化ヘッダの内容（レイヤ２ヘッダ、レイヤ３ヘッダ、レイヤ４ヘッダ）が設定される。カプセルヘッダ情報１５４の内容は、カプセル化指示フラグ１５３がオン状態の時に有効となる。
【００５３】
図１６は、受信パケット処理部２０の１実施例を示す。
受信パケット処理部２０は、それぞれ入力回線ＩＣｉに接続された複数の回線終端処理部２１−ｉ（ｉ＝１〜Ｎ）と、回線終端処理部２１−ｉから出力された受信パケットを一時的に蓄積するバッファメモリ２２−ｉ（ｉ＝１〜Ｎ）と、検索処理部４０から供給される統計情報通知パケットを一時的に蓄積するバッファメモリ２２−（Ｎ＋１）と、これらのバッファメモリに接続されたパケット蓄積制御部２３と、パケットデータ蓄積メモリ２４、入力パケットヘッダ蓄積メモリ２５Ａ、出力パケットヘッダ蓄積メモリ２５Ｂと、メモリ状態管理部２６と、ヘッダ送信制御部２７と、コピー管理部２８と、パケット転送制御部２９とから構成される。
【００５４】
各回線終端処理部２１−ｉは、入力回線ＩＣｉからパケットを受信すると、パケットデータの誤り検出等のパケット終端処理を行う。各回線終端処理部２１−ｉは、データ誤りが検出された受信パケットは廃棄し、正常に受信したパケットは、バッファメモリ２２−ｉに蓄積して、パケット蓄積制御部２３にパケット受信を通知する。パケット蓄積制御部２３は、バッファメモリ２２−（Ｎ＋１）についても、統計情報通知パケットが蓄積された時、検索処理部４０から信号線Ｌ５３０を介してパケット受信通知を受ける。
【００５５】
パケット蓄積制御部２３は、パケット受信通知があったバッファメモリから、予め決められた選択ルールに従って受信パケットを読み出し、受信パケットに付すべき内部ヘッダ１５を生成する。この時点では、内部ヘッダ１５は、入力回線番号１５１のフィールドのみが有効データを含み、その他のフィールド１５２〜１５４は空状態となっている。入力回線番号１５１の値ｋは、受信パケットが読み出されたバッファメモリ２２−ｋ（ｋ＝１〜Ｎ＋１）から一義的に決まる。
【００５６】
パケット蓄積制御部２３は、生成した内部ヘッダ１５と、受信パケットから抽出したレイヤ２ヘッダ１１〜レイヤ４ヘッダ１３とを含む固定長ヘッダ部分を、図１７で説明するパケットデータ管理情報ブロック２００の一部として、入力パケットヘッダ蓄積メモリ２５Ａに格納する。受信パケットの残り部分である可変長のデータ部１４は、パケットデータ蓄積メモリ２４に格納される。
【００５７】
本実施例では、パケットデータ蓄積メモリ２４を固定長の複数のメモリブロックに分割しておき、各メモリブロックの空き状態（使用状態）をメモリ状態管理部２６で管理している。パケット蓄積制御部２３は、バッファメモリから１つの受信パケットを読み出すと、メモリ状態管理部２６に対して、受信パケットのデータ長に応じた個数の空きメモリブロックの割り当てを要求し、受信パケットのデータ部１４をこれらのメモリブロックに分割して格納する。
【００５８】
図１７は、パケットデータ管理情報ブロック２００の１例を示す。
パケットデータ管理情報ブロック２００は、データ部蓄積用として同一パケットに割り当てられた複数個のメモリブロックを順次に読み出すためのものであり、ブロック種別フラグ２０１と、同一パケットに対して割り当てられたメモリブロックの数２０２と、各メモリブロックに格納された有効データの長さを示す有効データ長２０３と、メモリアドレス２０４と、ヘッダ情報フィールド２０５とからなっている。
メモリアドレス２０４は、パケットデータ蓄積メモリ２４における各メモリブロックの先頭アドレスを示す。また、ヘッダ情報フィールド２０５には、図１５に示した内部パケットのヘッダ１５、１１〜１３が設定される。
【００５９】
本実施例では、図１８に示すように、１つの受信パケットに複数の空きメモリブロック、例えば、ブロックｋ、ブロックｋ＋２、ブロックｋ＋３が割り当てられた場合、パケット蓄積制御部２３が、割り当てメモリブロック数と同数のパケットデータ管理情報ブロック２００−１〜２００−３を生成し、これらの管理情報ブロックを入力パケットヘッダ蓄積メモリ２５ＡにＦＩＦＯ形式で格納する。ブロック種別フラグ２０１は、その管理情報ブロック２００が、同一パケットに付随する複数のパケットデータ管理情報ブロックのうち、先頭のものか否かを示している。
【００６０】
図１８では、各メモリブロックのサイズをＬ、バッファメモリ２２−ｉから読み出された受信パケットのデータ部１４の長さを２Ｌ＋ΔＬと仮定して、ブロックｋ、ブロックｋ＋２、ブロックｋ＋３の３つのメモリブロックが割り当てられた場合を示している。この場合、先頭メモリブロックkと対応する第１のパケットデータ管理情報ブロック２００−１は、ブロック種別フラグ２０１に先頭ブロックを示す値が設定され、メモリブロック数２０２には「３」、有効データ長２０３には「Ｌ」、メモリアドレス２０４には、矢印Ｐ１で示すように、メモリブロックｋの先頭を示すポインタアドレス値が設定される。
【００６１】
上記第１のパケットデータ管理情報ブロック２００−１のヘッダ情報フィールド２０５には、内部ヘッダ１５と、レイヤ２ヘッダ１１〜レイヤ４ヘッダ１３の値が設定される。但し、内部ヘッダ１５は、入力回線番号１５１のみが有効であり、出力回線番号１５２〜カプセル化ヘッダ情報１５４の値は未定となっている。これらの未定のヘッダ情報要素は、後述するように、検索処理部４０からの検索結果に従って補充される。
【００６２】
第２、第３のメモリブロックｋ＋２、ｋ＋３と対応する第２、第３のパケットデータ管理情報ブロック２００−２、２００−３は、ブロック種別フラグ２０１に、そのブロックが後続ブロックであることを示す値が設定され、メモリブロック数２０２とヘッダ情報フィールド２０５は未使用となる。第２のパケットデータ管理情報ブロック２００−２の有効データ長２０３には「Ｌ」が設定され、メモリアドレス２０４には、矢印Ｐ２で示すように、メモリブロックｋ＋２の先頭を示すポインタアドレス値が設定される。また、第３のパケットデータ管理情報ブロック２００−３の有効データ長２０３には「ΔＬ」が設定され、メモリアドレス２０４には、矢印Ｐ３で示すように、メモリブロックｋ＋３の先頭を示すポインタアドレス値が設定される。
【００６３】
このように、入力パケットヘッダ蓄積メモリ２５Ａに、パケットデータ管理情報ブロック２００−１〜２００−３をＦＩＦＯ形式で格納し、第１の管理情報ブロック２００−１で、組をなすメモリブロックの個数２０４と、データ部１４に付すべきヘッダ情報２０５を指定しておくと、これら１組のパケットデータ管理情報ブロック２００−１〜２００−３を順次に読み出し、各管理情報ブロックが示すメモリアドレス２０４に従って、パケットデータ蓄積メモリ２４から、複数ブロックに分割して蓄積された１パケット分のデータを次々と読み出すことが可能となる。また、必要に応じて第１の管理情報ブロック２００−１が示すヘッダ情報２０５を利用することにより、受信パケットをカプセル化してコレクタ装置Ｃ１に転送することが可能となる。パケット受信処理部２０の詳細動作については後で説明する。
【００６４】
図１９は、送信パケット処理部３０の１実施例を示す。
送信パケット処理部３０は、それぞれ出力回線ＯＣｉに接続された複数の回線終端処理部３１−ｉ（ｉ＝１〜Ｎ）と、パケット出力制御部３２と、パケットデータ蓄積メモリ３３と、出力パケットヘッダ蓄積メモリ３４と、メモリ状態管理部３５と、パケット受信部３６とから構成される。送信パケット処理部３０の動作については、後で詳述する。
【００６５】
図２０は、検索処理部４０の１実施例を示す。
検索処理部４０は、信号線Ｌ２７を介して受信パケット処理部のヘッダ送信制御部２７に接続されたヘッダ情報蓄積部４１と、それぞれヘッダ情報蓄積部４１に接続されたフローテーブル検索部４２、ルーティングテーブル検索部４３およびフローエントリ管理部４４と、サンプル処理部４５と、サンプル判定部４６と、統計収集処理部４７と、信号線Ｌ４８を介してヘッダ送信制御部２７に接続された検索結果出力部４８と、フローエントリ管理部４４に付随するフロー管理テーブル４９と、統計情報通知パケットヘッダ情報蓄積部５０と、サンプルパケットヘッダ情報蓄積部５１と、フロー情報蓄積部５２と、統計情報通知パケット生成部５３とから構成される。
【００６６】
フローテーブル検索部４２は、ヘッダ情報蓄積部４１から出力されるヘッダ情報に基づいてフローテーブル６０の検索キーを生成し、フローテーブル６０から検索された統計制御情報をフローエントリ管理部４４とサンプル判定部４６に出力する。また、フローエントリ管理部４４からの指示に従って、フローテーブルエントリの追加／削除を行い、削除対象となったフローエントリの内容をフロー情報蓄積部５２に出力する。
【００６７】
ルーティングテーブル検索部４３は、ヘッダ情報蓄積部４１が示すヘッダ情報から抽出した受信パケットの宛先ＩＰアドレスに基づいて、ルーティングテーブル８０にアクセスし、ルーティングテーブル８０から検索されたルーティング情報をフローテーブル検索部４２、サンプル処理部４５、統計収集処理部４７、検索結果出力部４８に通知する。
【００６８】
統計収集処理部４７は、フローテーブル検索部４２とルーティングテーブル検索部４３による検索結果に応じて、統計情報テーブルの統計データを更新する。また、統計収集処理部４７は、フローエントリ管理部４４からの指令に応じて、統計情報テーブル７０の特定エントリに蓄積された統計情報を読み出し、これをフロー情報蓄積部５２に出力する。
【００６９】
検索結果出力部４８は、ルーティングテーブル検索部４３からルーティングテーブル８０の検索結果を受信すると、図２３で詳述する検索結果通知４８０を生成し、これを信号線Ｌ４８を介して受信パケット処理部２０のヘッダ送信制御部２７に送信する。
【００７０】
本実施例で示す検索処理部４０は、統計収集処理部４７が統計情報テーブル７０に蓄積した統計データを所定のタイミングでコレクタ装置Ｃ１に送信するキャッシュ型の統計収集機能と、特定フローの受信パケットについて、フローテーブル６０で指定されたサンプリングレートでサンプル（コピーパケット）を生成し、これをコレクタ装置Ｃ１に送信するサンプリング型の統計収集機能とを備えている。
【００７１】
サンプル処理部４５は、フローテーブル（統計機能制御テーブル）から検索された統計制御エントリの統計制御情報がサンプル処理（コピーパケットのコレクタ装置への転送）を指示していた場合に、受信パケット処理部２０に対して、サンプルの生成を指示するためのものである。サンプルの生成指示情報は、検索結果出力部４８が信号線Ｌ４８に出力する検索結果通知に含めた形で、受信パケット処理部２０に通知される。また、サンプルをコレクタ装置Ｃ１に送信する際に必要となる宛先ＩＰアドレス等のカプセル化ヘッダ情報は、サンプルパケットヘッダ情報蓄積部５１から読み出され、検索結果通知の一部として受信パケット処理部２０に通知される。
【００７２】
サンプル判定部４６は、後述するように、フローテーブル６０の検索結果に応じて、受信パケット所属フローの統計情報をチェックし、サンプル処理を開始すべきフロー状態となった時、統計制御情報の一部であるサンプル処理フラグの書替えを行う。
【００７３】
統計情報通知パケット生成部５３は、フロー情報蓄積部５２に蓄積されたフロー条件および統計情報と、統計情報通知パケットヘッダ情報蓄積部５０が示すカプセル化ヘッダ情報に基づいて、統計情報通知パケットを生成し、信号線Ｌ５３を介して受信パケット処理部２０のバッファメモリ２２−Ｃに出力する。尚、統計データの通知先とサンプルパケットの転送先とが同一のコレクタ装置の場合、統計情報通知パケットヘッダ情報蓄積部５０とサンプルパケットヘッダ情報蓄積部５１を同一メモリで兼用することができる。
【００７４】
統計情報通知パケットヘッダ情報蓄積部５０とサンプルパケットヘッダ情報蓄積部５１へのカプセルヘッダ情報の設定と、フローテーブル６０、ルーティングテーブル８０へのエントリ情報の設定は、信号線Ｌ９０と制御部９０を介してネットワーク管理者が行うことが可能である。
【００７５】
図２１と図２２は、ルータＲ１が備えるフローテーブル６０と統計情報テーブル７０の具体的な内容の１例を示す。
フローテーブル６０は、図２１に示すように、フローエントリ番号６１と対応して、フロー識別条件６２と統計制御情報６３とを示す複数のエントリからなり、統計情報テーブル７０は、図２２に示すように、フローエントリ番号６１と対応して、統計情報７２を示す複数のエントリからなる。
【００７６】
尚、フローエントリ番号６１は、フロー識別条件６２、統計制御情報６３、統計情報７２を互いに関連付けるための情報として示してあり、テーブルの構成によっては、フローエントリ番号６１を必要としない場合もあり得る。また、フローエントリ番号６１をポインタとして用いることによって、フローテーブル６０に定義された１群の複数のフロー識別条件を１つの統計制御情報エントリと１つの統計情報エントリに関連付けることも可能である。
【００７７】
ここでは、フロー識別条件６２として、図１０に示した情報要素６２１〜６２６にその他の情報６２９を加えた例を示している。その他の情報６２９としては、例えば、パケットの入、出力回線番号、図３に示した宛先/送信元ＭＡＣアドレスとタイプ、図４に示したＴＡＧプロトコルＩＤ、優先度、ＶＬＡＮ−ＩＤ、図８に示したＴＣＰフラグの少なくとも一部を適用できる。
【００７８】
フローテーブル６０からは、検索結果として、統計制御情報６３が示すように、登録処理フラグ６３１、登録処理レート６３２、統計収集フラグ６３３、帯域計算フラグ６３４、サンプル処理フラグ６３５、サンプリングレート６３６、サンプル判定フラグ６３７、サンプル開始帯域６３８、サンプル終了帯域６３９、その他の情報６４０が得られる。ここに示した例では、統計情報テーブル７０には、統計情報７２として、図１１で示した情報項目７２１〜７２４、７２９の外に、帯域７２５が追加されている。
【００７９】
図２１に示したフローテーブル６０において、フローエントリ番号ｆ１、ｆ２をもつエントリＥＮ−１、ＥＮ−２は、図１０に示した上位プロトコルがＴＣＰのフロー１、フロー２のフロー識別条件６２と統計制御情報６３を定義している。受信パケットのヘッダ情報がエントリＥＮ−１、ＥＮ−２のフロー識別条件に合致した場合、検索処理部４０は、統計情報テーブルのエントリＳＥ−１、ＳＥ−２が示す情報項目について、統計情報を収集する。
【００８０】
エントリ番号Ｆ１２をもつエントリＥＮ−ｘ１２は、統計制御エントリの１つであり、他のエントリＥＮ−１、ＥＮ−２とは異なって、フロー識別条件６２が、上位プロトコル６２３がＴＣＰであれば、フロー識別条件６２の他の情報要素６２１、６２２、６２４〜６２９については任意（「＊」）でよいことを示している。
【００８１】
統計制御エントリＥＮ−ｘ１２は、統計制御情報６３の登録処理フラグ６３１が「１」、登録処理レートが「１／１」となっており、フローテーブル６０の検索結果としてエントリＥＮ−ｘ１２の統計制御情報が出力された場合、上記登録処理フラグ６３１に従って、検索処理部４０は、フローテーブル６０への新たなフローエントリの登録動作を実行する。すなわち、上記統計制御エントリＥＮ−ｘ１２は、フロー識別条件６２に合致した新たなフローエントリをフローテーブル６０に自動的に追加するためのフロー登録用のエントリとして機能する。
【００８２】
例えば、フローテーブル６０にエントリＥＮ−１、ＥＮ−２が未登録の状態で、ルータＲ１がフロー１に属したパケットを受信した場合、フローテーブル検索部４２は、該パケットのヘッダ情報に基づくフローテーブル６０の検索結果として、エントリＥＮ−ｘ１２の統計制御情報６３を出力する。後述するように、検索処理部４０のフローエントリ管理部４４は、フローテーブル検索部４２が出力する統計制御情報６３の登録処理フラグ６３１に着目しており、登録処理フラグ６３１が「１」である時、フローテーブル検索部４２に対して、ヘッダ情報蓄積部４１が示すヘッダ情報に基づく新たなフローエントリＥＮ−１の登録を指示する。
【００８３】
従って、フローテーブル６０に初期状態でフロー登録用の統計制御エントリＥＮ−ｘ１２を設定しておくことによって、該エントリのフロー識別条件を満たす受信パケットの処理時に、フローテーブル６０に統計収集用の新たなフローエントリを自動的に追加することができる。エントリＥＮ−１、ＥＮ−２は、上記統計制御エントリＥＮ−Ｘ１２によって、フローテーブル６０に自動的に追加されたものである。図２１の状態にある時、ルータＲ１が、エントリＥＮ−１、ＥＮ−２のフロー識別条件に該当しない新たなＴＣＰフローのパケットを受信した場合、フローテーブル６０には、該受信パケットと対応して、統計収集用の別のフローエントリが追加されることになる。
【００８４】
尚、フローテーブル６０のエントリ配列を、統計収集用のフローエントリＥＮ−１、ＥＮ−２が統計制御エントリＥＮ−ｘ１２に優先して検索されるようにしておくことによって、同一内容の統計収集用フローエントリが重複してフローテーブル６０に登録されるのを回避することが可能となる。また、統計制御エントリＥＮ−ｘ１２をフローテーブル６０とは別の統計機能制御テーブルに登録しておき、フローテーブル６０に検索キーに該当するエントリが無かった場合に、統計機能制御テーブルを検索するようにしてもよい。
【００８５】
本発明の実施例では、上述したように統計収集用のフローエントリをフローエントリ管理部４４で自動的に生成するようにしているが、統計機能制御エントリ以外の統計収集用のフローエントリ群は、その一部を管理者が管理端末１３００からマニュアルで設定することも可能である。
【００８６】
図２１に示した統計制御情報６３において、登録処理レート６３２は、フロー登録用の統計制御エントリＥＮ−ｘ１２にヒットした際の登録処理の実行レートを示し、登録処理レートの設定値は、登録処理フラグ６３１の設定値が「１」の場合に有効となる。登録処理レートの設定値「１／１」は、統計制御エントリＥＮ−ｘ１２がヒットした場合、必ずフロー登録処理を行うことを意味している。
【００８７】
統計収集フラグ６３３は、設定値が「１」の場合に、該当フローの統計情報を更新することを意味している。帯域計算処理フラグ６３４は、設定値が「１」の場合、該当フローの帯域７２５を算出することを意味している。図２１に示した例では、統計収集用のエントリＥＮ−１、ＥＮ−２と、統計制御エントリＥＮ−ｘ１２は、統計収集フラグが「１」、帯域計算処理フラグ６２４が「０」に設定されている。従って、図２２に示した統計情報７２において、帯域７２５は統計の対象外の項目となっている。
【００８８】
サンプル処理フラグ６３５は、設定値が「１」の時、サンプリングレート６３６に従って受信パケットのコピーを生成し、これをコレクタ装置Ｃ１に転送することを意味している。サンプリングレート６３６の設定値は、サンプル処理フラグ６３５の設定値が「１」の場合に有効となる。サンプリングレート６３６の設定値は、例えば、「1/1000」の場合、該当フローの１０００パケットに１個の割合でコピーを生成すること意味する。図２１の例では、フローエントリＥＮ−１、ＥＮ−２、ＥＮ−ｘ１２は、サンプル処理フラグ６３５が「０」となっているため、サンプリングレート６３６の値は無意味となる。
【００８９】
サンプル判定フラグ６３７は、その設定値が「１」の時、サンプル判定部４６に対して、当該フローのサンプリングの開始、終了の判定処理の実行を指示する。設定値が「０」であれば、サンプル判定処理は実行されない。サンプル開始帯域６３８は、当該フローのサンプル開始条件となるフロー帯域値を示し、サンプル終了帯域６３９は、サンプル終了条件となるフロー帯域値を示す。
【００９０】
サンプル判定部４６は、サンプル判定フラグ６３７が「１」の場合、サンプル開始帯域６３８と、対応する統計情報エントリが示す現在の帯域７２５とを比較し、現在の帯域がサンプル開始帯域よりも大きくなった時点で、サンプル処理フラグ６３５を「１」に変更する。また、サンプル処理フラグ６３５が「１」状態にある時、現在の帯域７２５とサンプル終了帯域６３９とを比較し、現在帯域がサンプル終了帯域よりも小さくなった時点で、サンプル処理フラグ６３５を「０」に戻す。図２１では、エントリＥＮ−１、ＥＮ−２、ＥＮ−ｘ１２は、サンプル判定フラグが「０」に設定されているため、受信パケットのサンプリングによるコピーの生成は行われない。
【００９１】
次に、図１６、図１９、図２０を参照して、本発明によるルータの動作について詳細に説明する。最初に、フローテーブル６０にフロー登録用エントリＥＮ−ｘ１２のみが存在し、統計収集用のエントリＥＮ−１、ＥＮ−２が未登録の状態において、パケット蓄積制御部２３が、フロー１に属する受信パケットを処理する場合のルータ動作について説明する。
【００９２】
パケット蓄積制御部２３は、バッファメモリ２２−１〜２２−（Ｎ＋１）の１つから受信パケットを読み出すと、内部ヘッダ１５を生成した後、受信パケットのデータ部の蓄積に必要なメモリブロックの個数を指定して、メモリ状態管理部２６にメモリブロックの割り当てを要求する。メモリ状態管理部２６は、パケットデータ蓄積メモリ２４に用意された複数のメモリブロック（メモリアドレス）について、それぞれの使用状態を管理しており、空き状態にあるメモリブロックの中から、必要個数のメモリブロック（メモリアドレス）をパケット蓄積制御部２３に割り当てる。
【００９３】
パケット蓄積制御部２３は、メモリ状態管理部２６から割り当てられたメモリアドレスに従って、図１８で説明したように、入力パケットヘッダ蓄積メモリ２５Ａへのパケットデータ管理情報ブロックの書き込みと、パケットデータ蓄積メモリ２４への受信パケットデータ部の書き込みを実行する。尚、パケットデータ蓄積メモリ２４に必要個数の空きメモリブロックが無かった場合、パケット蓄積制御部２３は、受信パケットを廃棄する。
【００９４】
本実施例では、メモリ２５Ａへのパケットデータ管理情報ブロックの書き込みは、ＦＩＦＯ（Fast-In Fast-Out）形式で行うものとして説明するが、入力パケットヘッダ蓄積メモリ２５Ａを固定長の複数のメモリブロックに分割しておき、各パケットデータ管理情報ブロックに次ブロックのポインタアドレスを持たせることによって、１組のパケットデータ管理情報ブロックをメモリ２５Ａ内の任意の空きメモリブロックに分散して格納するようにしてもよい。
【００９５】
パケット蓄積制御部２３は、入力パケットヘッダ蓄積メモリ２５Ａへのパケットデータ管理情報ブロックの書き込み完了時、または、パケットデータ蓄積メモリ２４へのパケットデータの書き込み完了時に、信号線Ｌ２３を介して、ヘッダ送信制御部２７にパケットの受信通知を送信する。
【００９６】
上記パケット受信通知を受信したヘッダ送信制御部２７は、入力パケットヘッダ蓄積メモリ２５Ａから、先頭のパケットデータ管理情報ブロック２００−１を読み出し、該パケットデータ管理情報ブロックが示すヘッダ情報（内部ヘッダ１５、レイヤ２ヘッダ１１〜レイヤ４ヘッダ１３）を信号線Ｌ２７を介して検索処理部４０のヘッダ情報蓄積部４１に転送する。また、ヘッダ送信制御部２７は、先頭のパケットデータ管理情報ブロック２００−１が示すメモリブロック数（Ｍ）に基づいて、後続するＭ−１個のパケットデータ管理情報ブロック２００−２、２００−３、…を順次に読み出し、これらの内容を一時的に保持する。
【００９７】
図２０において、検索処理部４０のヘッダ情報蓄積部４１は、ヘッダ送信制御部２７から信号線Ｌ２７を介して受信したヘッダ情報を一時的に蓄積した後、フローテーブル検索部４２、ルーティングテーブル検索処理部４３、フローエントリ管理部４４、統計情報処理部４７に分配する。
【００９８】
フローエントリ管理部４４は、上記ヘッダ情報を保持して、フローテーブル検索部４２からの統計制御情報の受信を待つ。ルーティングテーブル検索処理部４３は、上記ヘッダ情報からルーティングテーブル８０の検索に必要な検索キーを生成し、ルーティングテーブル８０から出力回線番号を含むルーティング情報を検索する。検索結果は、フローテーブル検索部４２、サンプル処理部４５、検索結果出力部４８に分配される。
【００９９】
フローテーブル検索部４２は、ヘッダ情報と、必要に応じてルーティングテーブル検索処理部４３が出力したルーティング情報とから、フロー識別条件６２となる情報項目、すなわち、送信元ＩＰアドレス、宛先ＩＰアドレス、上位プロトコル、ＴＯＳ、送信元ポート番号、宛先ポート番号、その他の情報を抽出し、これらの情報項目の組み合せを検索キーとして、フローテーブル６０を検索する。
【０１００】
ここでは、上記ヘッダ情報がフロー１に属するパケットのもので、且つ、フローテーブルにはフローエントリＥＮ−ｘ１２のみが登録されている状態を想定しているため、フローテーブル６０の検索結果として、フローエントリＥＮ−ｘ１２のフローエントリ番号（またはエントリアドレス）ｆ１２と、登録処理フラグが「１」、登録処理レートが「１／１」、統計収集フラグが「１」、サンプル処理フラグが「０」を示す統計制御情報が得られる。
【０１０１】
フローテーブル検索部４２は、上記検索結果をフローエントリ管理部４４、サンプル処理部４５、サンプル判定部４６、統計収集処理部４７に分配する。この場合、サンプル処理フラグが「０」となっているため、サンプル処理部４５とサンプル判定部４６におけるサンプル生成のための特別な動作は発生しない。
【０１０２】
ヘッダ情報蓄積部４１からヘッダ情報を受信した統計収集処理部４７は、フローテーブル検索部４２からの統計制御情報の受信を待っている。この例では、統計制御情報が示す統計収集処理フラグが「１」となっているのため、統計収集処理部４７は、ルーティングテーブル検索部４３から受信したルーティング情報とヘッダ情報蓄積部４１から受信したヘッダ情報に基づいて、統計情報テーブル７０におけるフローエントリ番号ｆ１２をもつテーブルエントリＳＥ−ｘ１２の統計情報７２を更新する。具体的には、テーブルエントリＳＥ−ｘ１２のパケット数７２１に１を加算し、バイト数７２２に上記ヘッダ情報が示す受信パケット長を加算し、入力回線番号７２３に上記ヘッダ情報が示す入力回線番号１５１の値を記録し、出力回線番号７２４に上記ルーティング情報が示す出力回線番号を記録する。
【０１０３】
一方、フローエントリ管理部４４は、フローテーブル検索部４２から受信した統計制御情報で、登録処理フラグが「１」で、登録処理レートが「１／１」となっているため、ヘッダ情報蓄積部４１から受信したヘッダ情報をもつフローに関して、フローテーブル６０に新たなフローエントリを登録すべきものと判断する。登録処理レートが「１／ｋ」（ｋは１より大きい値）の場合は、登録処理レートに従って、フロー登録すべきか否かを判定する。
【０１０４】
フローエントリ管理部４４は、フローテーブル６０のエントリアドレスの使用状況を管理している。この場合、フローエントリ管理部４４は、上記ヘッダ情報からフロー識別条件となる情報項目を抽出してエントリ番号ｆ１をもつ新たなフロー識別条件を生成し、このフロー識別条件と、一部訂正した統計制御情報と、空きエントリアドレスとを含むフロー登録指示をフローテーブル検索部４２に与える。フローテーブル６０に新規フローエントリに必要な空きアドレスが無かった場合は、フローエントリ管理部４４は、後述するフローエントリ削除処理を行った後、上述したフロー登録指示を発行する。
【０１０５】
フローエントリ管理部４４からフロー登録指示を受けたフローテーブル検索部４２は、指定されたエントリアドレス、フロー識別条件、統計制御情報に従って、フローテーブル６０に新たなフローエントリを追加する。ここでは、フロー１に属するパケットを受信した場合を想定しているので、上記フロー登録指示に応答して、フローテーブル６０に統計収集用のエントリＥＮ−１が追加される。フロー２に属するパケットを受信した場合は、これと同様の動作によって、フローテーブル６０に統計収集用のエントリＥＮ−２が追加されることになる。
【０１０６】
検索結果出力部４８は、ルーティングテーブル検索部４３からルーティング情報を受信すると、検索結果通知４８０を生成し、信号線Ｌ４８を介して受信パケット処理部２０のヘッダ送信制御部２７に送信する。検索結果通知４８０は、図２３に示すように、出力回線番号４８１、コピー指示フラグ４８２、カプセル化指示フラグ４８３、カプセル化ヘッダ情報４８４、その他の情報４８５から構成される。
【０１０７】
ここで、コピー指示フラグ４８２は、受信パケット処理部２０に受信パケットをコピーする必要が生じたことを示すフラグであり、カプセル化指示フラグ４８３は、カプセルヘッダ情報４８４を適用して上記コピーパケットをカプセル化すべきことを示すフラグである。コピー指示フラグ４８２は、サンプル処理部４５が信号線Ｌ４５にコピー指示信号を出力した時点で生成される検索結果通知において、「１」に設定される。カプセル化指示フラグ４８３は、後述するように、コピー指示フラグが「１」に設定された検索結果通知の次に生成されるコピーパケット送信用の検索結果通知において、「１」に設定される。カプセル化ヘッダ情報４８４には、サンプルパケットヘッダ情報蓄積部５１から読み出されたヘッダ情報が設定され、カプセル化指示フラグ４８３が「１」の場合にのみ有効となる。
【０１０８】
出力回線番号４８１とその他の情報４８５には、通常の検索結果通知の場合、ルーティングテーブル検索部４３から受信したルーティング情報から抽出された出力回線番号と、その他の情報が設定される。但し、コピーパケット送信用の検索結果通知においては、コピーパケットをコレクタ装置に送信するために必要となる所定の出力回線番号とその他の情報が設定される。
本例の場合、サンプル処理部４５からのコピー指示がないため、検索結果出力部４８は、コピー指示フラグ４８２が「０」、カプセル化指示フラグ４８３が「０」、カプセルヘッダ情報４８４が無効データ、出力回線番号４９１とその他の情報４８５が有効データを含む検索結果通知４８０を生成して、信号線Ｌ４８に送出する。
【０１０９】
図１６に戻って、ヘッダ送信制御部２７は、信号線Ｌ４８を介して検索結果通知４８０を受信すると、既にメモリ２５Ａから読み出してある最初のパケットデータ管理情報ブロック２００−１に、出力回線番号１５２、カプセル化指示フラグ１５３、カプセルヘッダ情報１５４として、上記検索結果通知４８０が示す出力回線番号４８１、カプセル化指示フラグ４８３、カプセルヘッダ情報４８４の内容を追加する。更新されたパケットデータ管理情報ブロック２００−１は、出力パケットヘッダ蓄積メモリ２５Ｂに書き込まれる。尚、必要に応じて、検索結果通知４８０が示すその他の情報４８５をパケットデータ管理情報ブロック２００−１の内部ヘッダ１５の一部として追加してもよい。
【０１１０】
図１８で説明したように、後続のパケットデータ管理情報ブロック２００−２、２００−３、…にはヘッダ情報を追加する必要がない。従って、ヘッダ送信制御部２７は、これらの後続パケットデータ管理情報ブロックについては、メモリ２５Ａから読み出したものをそのまま出力パケットヘッダ蓄積メモリ２５Ｂに書き込む。
【０１１１】
この後、ヘッダ送信制御部２７は、コピー管理部２８に対して、上記出力パケットヘッダ蓄積メモリ２５Ｂに書き込まれた各パケットデータ管理情報ブロックが示すメモリアドレス２０４の値と、検索結果通知４８０から判明するコピー数を通知し、パケット転送制御部２９に対してパケット転送開始を要求する。本例の場合、検索制御部４０から受信した検索結果通知４８０でコピーフラグ４８２が「０」となっているため、ヘッダ送信制御部２７は、コピー管理部２８にコピー数「０」を通知する。
【０１１２】
コピー管理部２８は、パケットデータ蓄積メモリ２４の各メモリブロックの解放を制御するためのものであり、例えば、図２４に示すように、パケットデータ蓄積メモリ２４の各メモリブロック（メモリアドレス）２８１と対応して、蓄積データの送信待ち回数２８２を記憶したメモリアドレス解放制御テーブル２８０を備えている。
【０１１３】
コピー管理部２８は、ヘッダ送信制御部２７からパケットデータ蓄積メモリ２４のメモリアドレス２０４とコピー数を受信すると、通知されたコピー数に応じて、上記メモリアドレス解放制御テーブル２８０における上記メモリアドレス２０４と対応するメモリブロックの送信待ち回数２８２を変更する。送信待ち回数は、ヘッダ送信制御部２７から通知されたコピー数が「０」の時は“１”、コピー数が「１」の時は“２”に設定される。
【０１１４】
図２４のテーブル状態は、図１８と対応しており、受信パケットのデータ部がブロックｋ、ｋ＋２、ｋ＋３に分割して格納されている状態を示している。この場合、ヘッダ送信制御部２７から通知されたコピー数が「０」であったため、これらのメモリブロックｋ、ｋ＋２、ｋ＋３と対応する送信待ち回数として、“１”が設定されている。
【０１１５】
パケット転送制御部２９は、ヘッダ送信制御部２７からパケット転送開始要求を受信すると、出力パケットヘッダ蓄積メモリ２５Ｂから、先頭のパケットデータ管理情報ブロック２００−１を読み出し、該ブロックが示すメモリアドレ２０４と有効データ長２０３に従って、パケットデータ蓄積メモリ２４のメモリブロックｋから最初のデータブロックを読み出す。パケット転送制御部２９は、先頭のパケットデータ管理情報ブロック２００−１が示すメモリブロック数２０２に従って、出力パケットヘッダ蓄積メモリ２５ＢからＦＩＦＯ形式で第２、第３のパケットデータ管理情報ブロック２００−２、２００−３を読み出し、これらの情報ブロックが示すメモリアドレ２０４と有効データ長２０３に従って、パケットデータ蓄積メモリ２４のメモリブロックｋ＋２、ｋ＋３から後続のデータブロックを次々と読み出す。
【０１１６】
パケット転送制御部２９は、先頭パケットデータ管理情報ブロック２００−１から抽出したヘッダ情報２０５に続いて、これらのデータブロックから再構成されたパケットデータ部１４を信号線Ｌ１に送出することによって、送信パケット処理部３０に図１５のフォーマットをもつ内部パケットを転送する。パケット転送制御部２９は、１つの内部パケットの転送が完了すると、コピー管理部２８に対して、データ読み出しが完了したメモリブロックのアドレスを示すパケット転送完了通知を出力する。
【０１１７】
コピー管理部２８は、上記パケット転送完了通知を受信すると、通知されたメモリブロックアドレスに従って、メモリアドレス解放制御テーブル２８０の送信待ち回数２８２を減算する。この例では、メモリブロックｋ、ｋ＋２、ｋ＋３の送信待ち回数がそれぞれ１ずつ減算され、結果的に、全ての送信待ち回数が「０」になる。コピー管理部２８は、送信待ち回数の更新の都度、残り回数をチェックし、送信待ち回数が「０」となったメモリブロックについては、蓄積データの保存が不要になったものと判断し、メモリ状態管理部２６に、メモリアドレスの解放を指示する。メモリ状態管理部２６は、解放指示のあったメモリアドレス（メモリブロック）を空き状態として管理し、これらのメモリアドレスをその後のパケット蓄積制御部２３への割り当てアドレスに適用する。
【０１１８】
図１９に示した送信パケット処理部３０において、パケット受信部３６は、信号線Ｌ１から内部パケットを受信すると、ヘッダ情報部分（ヘッダ１５、１１〜１３）を出力パケットヘッダ蓄積メモリ３４に蓄積し、パケットのデータ部分１４をパケットデータ蓄積メモリ３３に蓄積する。これらのメモリへのヘッダ情報とパケットデータの蓄積は、図１８で説明したパケットデータ管理情報ブロックを適用して、受信パケット処理部２０の入力パケットヘッダメモリ２５Ａおよびパケットデータ蓄積メモリ２４と同様の形式で行われる。パケットデータの蓄積に必要なメモリブロックの割り当ては、メモリ状態管理部３５によって行われる。
受信処理部３６は、出力パケットヘッダ蓄積メモリ３４へのパケットデータ管理情報ブロックの書き込みと、パケットデータ蓄積メモリ３３へのパケットデータの書き込みが完了すると、パケット出力制御部３２にパケット送信要求を出力する。
【０１１９】
上記パケット送信要求を受信すると、パケット出力制御部３２は、受信パケット処理部２０のパケット転送制御部２９と同様、出力パケットヘッダ蓄積メモリ３４から読み出した先頭のパケットデータ管理情報ブロックが示すメモリブロック数２０２によって、後続するパケットデータ管理情報ブロックを読み出し、各パケットデータ管理情報ブロックが示すメモリアドレス２０４と有効データ長２０３に従って、パケットデータ蓄積メモリ３３からパケットのデータ部を次々と読み出す。
【０１２０】
パケット出力制御部３２は、複数のメモリブロックから読み出されたデータブロックを元のパケットデータ１４に再構成した後、先頭のパケットデータ管理情報ブロックが示すカプセル化指示フラグ１５３の値から、出力パケットのカプセル化の要否を判定する。本例の場合、上記カプセル化指示フラグの値が「０」となっているため、出力パケットをカプセル化する必要はない。そこで、パケット出力制御部３２は、先頭のパケットデータ管理情報ブロックから抽出したレイヤ２ヘッダ１１、レイヤ３ヘッダ１２、レイヤ４ヘッダ１３を上記再構成されたパケットデータ１４に付与することによって、出力パケットを生成し、これを上記パケットデータ管理情報ブロックが示す出力回線番号１５２で特定される回線終端処理部３１−ｋに出力する。
回線終端処理部３１−ｋは、パケット出力制御部３２から受信した出力パケットに冗長符号等の付加情報を付与した後、出力回線OCｋに送信する。
【０１２１】
次に、フローテーブル６０に統計収集用のフローエントリＥＮ−１が既に登録された状態で、パケット蓄積制御部２３が、フロー１に属する受信パケットを処理した場合のルータＲ１の動作について説明する。
【０１２２】
ヘッダ送信制御部２７が、受信パケットのヘッダ情報を検索処理部４０に転送してから、検索処理部４０で、フローテーブル検索部４２がフローテーブル６０を検索するまでの動作は、フローエントリＥＮ−１が未登録の場合と同様である。今回は、フローテーブル６０にフローエントリＥＮ−１が既に登録済みの状態となっているので、フローテーブル検索部４２は、フローテーブル６０の検索結果として、フローエントリＥＮ−１が示す統計制御情報を出力する。フローエントリＥＮ−１の統計制御情報６３は、図２１に示すように、登録処理フラグ６３１が「０」、統計収集フラグ６３３が「１」、サンプル処理フラグ６３５とサンプル判定フラグ６３７が「０」となっている。
【０１２３】
登録処理フラグが「０」となっているため、フローエントリ管理部４４によるフロー登録処理は行われない。また、サンプル処理フラグ、サンプル判定フラグが「０」となっているため、サンプル処理部４５とサンプル判定部４６による特別な動作は発生しない。
一方、統計収集処理フラグが「１」となっているため、統計収集処理部４７は、フローエントリ番号ｆ１の統計情報エントリＳＥ−１において統計情報を更新する。
【０１２４】
具体的には、パケット数７２１に１を加算し、バイト数７２２にヘッダ情報蓄積部４１から受信したヘッダ情報が示す受信パケットのバイト数を加算し、入力回線番号７２３に上記ヘッダ情報が示す入力回線番号を記録し、出力回線番号７２４にルーティングテーブル検索部４３から受信したルーティング情報が示す出力回線番号を記録する。検索結果出力部４８の動作と、受信パケット処理部２０のその後の動作は、前述したフローエントリＥＮ−１が未登録の場合と同様である。
【０１２５】
次に、フローエントリ管理部４４が行うフローテーブルからのエントリの削除動作について説明する。
フローエントリ管理部４４は、統計収集フラグが「１」、登録処理フラグ、サンプル処理フラグ、サンプル判定フラグが「０」のフローエントリを削除対象として、パケットの受信状況を監視し、パケット受信が所定時間以上途絶えたフローエントリをフローテーブル６０から削除する。フローエントリ管理部４４は、空きエントリ領域がない状態で、フローテーブル６０に新たなフローエントリを登録する必要がある時も、上記削除対象エントリの中から特定のエントリを選択して、フローテーブル６０から削除する。
【０１２６】
削除対象となるフロー情報は、フロー管理テーブル４９に登録され、パケットの受信状況が定期的に監視される。フロー管理テーブル４９は、例えば、図２５に示すように、削除対象となる各エントリについて、フローエントリ番号４９と、フローテーブル６０におけるエントリアドレス４９２と、パケット数４９３、更新時刻４９４、非更新回数４９５を示している。ここで、パケット数４９３は、削除対象フローの通信状態を監視するために選ばれた代表的な統計情報であり、パケット数に代りにバイト数を監視対象にしてもよい。
【０１２７】
フローエントリ管理部４４は、フロー管理テーブル４９に登録されたフローエントリ番号をもつ各パケットフローについて、統計収集処理部４７を介して、一定時間間隔で統計情報テーブル７０からパケット数７２１の最新値を読み出し、フロー管理テーブル４９が示す前回監視時のパケット数４９３と比較する。最新パケット数が前回値と異なる場合は、パケット数４９３を最新値に置き換えると共に、更新時刻４９４を現在時刻に書き換える。最新パケット数が前回値と同一の場合は、更新時刻４９４を変更することなく、非更新回数４９５の値をインクリメントする。非更新回数４９５は、パケット数４９３の更新の都度、初期値に戻すようにしてもよい。
【０１２８】
フローエントリ管理部４４は、上記インクリメントによって非更新回数が所定の閾値に達したフローエントリを不要エントリと判断し、フローテーブル検索部４２に対して、エントリアドレス４９２を指定して不要フローエントリの削除を指示し、統計情報処理部４７に対して、フローエントリ番号を指定して統計情報エントリの削除を指示する。
【０１２９】
フローエントリ管理部４４は、フローテーブル検索部４２からのフローエントリＥＮ−ｘ１２の統計制御情報の受信によって、フローテーブル６０に新たなフローエントリを追加する必要が生じた時、もし、フローテーブルに空き領域がなかった場合は、フロー管理テーブル４９から更新時刻４９４が最も旧いエントリを不要フローエントリとして選択し、フローテーブル検索部４２と統計情報処理部４７に対して、上記と同様のエントリ削除を指示する。
【０１３０】
フローテーブル検索部４２は、フローエントリ管理部４４から不要フローエントリの削除指示を受信すると、フローテーブル６０の指定エントリアドレスからフロー識別条件６２を読み出す。フローテーブル検索部４２は、読み出したフロー識別条件をフロー情報蓄積部５２に転送した後、該フローエントリを削除し、フローエントリ管理部４４に削除エントリのアドレスの解放を通知する。同様に、統計情報処理部４７も、フローエントリ管理部４４から不要フローエントリの削除指示を受信すると、統計情報テーブル７０から指定エントリ番号をもつ統計情報エントリの内容を読み出し、これをフロー情報蓄積部５２に転送した後、該統計情報エントリを削除する。
【０１３１】
フロー情報蓄積部５２は、フローエントリの削除に伴ってフローテーブル検索部４２から受信したフロー識別条件と、情報収集処理部４７から受信した統計情報（以下、これら２種類の情報を併せてフロー情報と呼ぶ）をメモリに保持する。フロー情報蓄積部５２に予め指定されたフロー数分のフロー情報が蓄積された時点で、統計情報通知パケット生成部５３が、フロー情報蓄積部５２から蓄積フロー情報を読み出し、統計情報通知パケットヘッダ情報蓄積部５０が示すカプセルヘッダ情報を利用して、統計情報通知パケット３００を生成する。統計情報通知パケット生成部５３は、生成した統計情報通知パケット３００を信号線Ｌ５３に出力すると共に、信号線Ｌ５３０にパケットの受信通知を出力する。
【０１３２】
統計情報通知パケット３００は、例えば、図２６に示すように、ヘッダ３０１と、複数のフローレコード３０２（３０２−１〜３０２−Ｎ）とからなる。ヘッダ３０１は、ヘッダ情報蓄積部５０から読み出されたカプセル化ヘッダ情報に基づいて生成され、宛先ＩＰアドレスとしてコレクタ装置Ｃ１のＩＰアドレスを含む。統計情報通知パケット３００には、例えば、http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/nfc/nfc_3_0/  nfc_ug/nfcform.htmに記載されたフォーマットを適用できる。
【０１３３】
ここに示した例では、各フローレコード３０２は、フロー識別子３０３、サンプリングレート３０４、フロー識別ヘッダ情報３０５と、パケット数３０６Ａ、バイト数３０６Ｂ、出力回線番号３０６Ｃ、入力回線番号３０６Ｄ、その他の情報３０６Ｅを含む。情報項目３０６Ａ〜３０６Ｅには、情報収集処理部４７から出力された統計情報が設定される。また、フロー識別子３０３にはフローエントリ番号６１、サンプリングレート３０４には、統計制御情報に適用される所定のサンプリングレート、フロー識別ヘッダ情報３０５には、フロー識別条件６２が適用される。コレクタ装置は、上記統計情報通知パケットを受信した時、各フローレコードが示すサンプリングレート３０４から、ネットワーク上で実際に通信されているパケット数を推定できる。
【０１３４】
統計情報通知パケット生成部５３から信号線Ｌ５３に出力された統計情報通知パケット３００は、受信パケット処理部２０のバッファメモリ２２−（Ｎ＋１）に一時的に蓄積され、信号線Ｌ５３０に出力されたパケット受信通知は、パケット蓄積制御部２３に入力される。従って、パケット蓄積制御部２３は、バッファメモリ２２−（Ｎ＋１）に蓄積された統計情報通知パケット３００を他のバッファメモリ２２−１〜２２−Ｎに蓄積された通常の受信パケットと同様に扱うことができる。
【０１３５】
パケット蓄積制御部２３は、バッファメモリ２２−（Ｎ＋１）から統計情報通知パケット３００を読み出すと、ネットークからの受信パケットの処理時と同様、内部ヘッダ１５を生成し、メモリ状態管理部２６に必要個数のメモリブロックアドレスを要求し、図１８で説明したように、内部ヘッダ１５とヘッダ３０１をパケットデータ管理情報ブロック形式で入力パケットヘッダ蓄積メモリ２５Ａに蓄積し、統計情報通知パケット３００のデータ部（フローレコード３０２−１〜３０２−Ｎ）を固定長の複数のブロックに分割して、パケットデータ蓄積メモリ２４に蓄積し、ヘッダ送信制御部２７にパケット受信通知を出力する。
【０１３６】
ヘッダ送信制御部２７と検索処理部４０の動作は、通常の受信パケット処理時と同様であり、通知パケット３００のヘッダ情報は、ネットワーク受信パケットのヘッダ情報と同様に処理される。その結果、統計情報通知パケット３００は、ルーティングテーブルの検索結果が示す出力回線番号１５２を含む内部ヘッダを付した形で、送信パケット処理部３０に転送され、送信パケット処理部３０からコレクタ装置との接続回線に送出される。
【０１３７】
次に、パケット蓄積制御部２３が、フロー登録用エントリＥＮ−ｘ１２が示すフロー識別条件に合致しないパケット、例えば、図１で説明した上位プロトコルがＵＤＰのフロー３またはフロー４に属したパケットを処理した場合の検索処理部４０の動作について説明する。
【０１３８】
ルーティングテーブル検索部４３は、フロー識別条件とは無関係に、ヘッダ情報蓄積部４１から受信したヘッダ情報に従ってルーティングテーブル８０を検索し、検索結果を出力する。一方、フローテーブル検索部４２は、ヘッダ情報と、必要に応じてルーティングテーブル８０から検索されたルーティング情報とからフロー検索キーを生成し、フローテーブル６０を検索する。
【０１３９】
本例では、受信パケットの上位プロトコルがＵＤＰとなっているため、フローテーブル６０には、上記検索キーに該当するエントリ（統計制御エントリとフローエントリ）が全く存在していない。従って、フローテーブル検索部４２は、該当する統計制御情報が無かったことを示す検索結果をフローエントリ管理部４４、サンプル処理部４５、サンプル判定部４６、統計収集処理部４７に出力する。
【０１４０】
統計制御情報がなかった場合、フローエントリ管理部４４は、フロー登録処理を行わない。サンプル処理部４５、サンプル判定部４６、統計収集処理部４７も、それぞれに固有の動作を行わない。従って、検索結果出力部４８は、コピーフラグ４８２とカプセル化指示フラグ４８３が「０」、カプセルヘッダ情報４８４が無効で、出力回線番号４８１とその他の情報４８５にのみ有効情報を含む検索結果通知４８０を生成し、これを信号線Ｌ４８に出力する。上記検索結果通知４８０に応答して実行される受信パケット処理部２０の動作は、フロー１に属する受信パケットの場合と同様である。
【０１４１】
次に、本実施例のルータＲ１が備えるサンプリング型の統計情報収集機能について説明する。ここでは、サンプル処理部４５とサンプル判定部４６が、フローテーブル６０に登録された統計制御情報と統計情報テーブル７０に蓄積された統計情報を利用して、特殊な通信状況にあるパケットフローを検出し、サンプリングレートで指定されたタイミングで、受信パケット処理部２０に受信パケットのコピー生成を指令する。
【０１４２】
例えば、図１に示したネットワークにおいて、端末Ｔ２または端末Ｔ４が、ＴＣＰ（Transmission Control Protocol）におけるＳＹＮパケットをサーバＳ２に送信することによって、サーバＳ２から他の端末への通信サービスを妨害（ＳＹＮアタック）する場合を想定する。ＳＹＮアタックパケットは、ＴＣＰヘッダに定義されたコードビットのうちのＳＹＮフラグが「１」に設定されている。
【０１４３】
以下の説明では、端末Ｔ２からサーバＳ２へ送信される一連のＳＹＮパケットフローをフローＦｓ２、端末Ｔ４からサーバＳ２へ送信される一連のＳＹＮパケットフローをフローＦｓ４と呼ぶ。また、端末Ｔ２、端末Ｔ４から送信されるＳＹＮパケットの合計帯域が、時間経過と共に増加するものと仮定し、本実施例では、検索処理部４０が、ＴＣＰのＳＹＮパケットの合計帯域が５０Ｍｂｐｓ以上となった時点で、サンプリングレート１／１０で受信パケットのサンプル（コピーパケット）生成を開始し、合計帯域が４０Ｍｂｐｓ以下となった時点で、サンプル生成を停止する場合について説明する。
【０１４４】
図２７は、ＳＹＮアタックを検出するためのフローテーブル６０の１例を示す。
フローテーブル６０には、ＴＣＰのＳＹＮパケットを監視してサンプリングの対象とするために、フローエントリ番号ｆ２４をもつエントリＥＮ−ｘ２４が登録されている。エントリＥＮ−ｘ２４も、統計制御エントリの一つであり、フロー識別条件６２として、上位プロトコル６２３が「ＴＣＰ」、ＳＹＮフラグ６２７が「１」、それ以外の項目６２１、６２２、６２４〜６２６、６２９は任意値（“＊”）を指定している。
【０１４５】
上記エントリＥＮ−ｘ２４は、検索結果として出力される統計制御情報６３において、登録処理フラグ「０」、統計収集フラグ「１」、サンプル処理フラグ「０」、サンプリングレート「１／１０」、サンプル判定フラグ「１」、サンプル開始帯域「５０Ｍｂｐｓ」、サンプル終了帯域「４０Ｍｂｐｓ」を指定している。
【０１４６】
図２８は、統計情報テーブル７０に用意されたフローエントリ番号ｆ２４をもつ統計情報エントリＳＥ−ｘ２４の内容の１例を示す。現在時点での統計情報として、例えば、パケット数７２１が「Ｐ２４」、バイト数７２２が「Ｂ２４」、帯域７３５が「１０Ｍｂｐｓ」となっている。
【０１４７】
受信パケット処理部２０のパケット蓄積部２３が、何れかのバッファメモリから受信パケット（ＳＹＮパケット）を読み出し、ヘッダ送信制御部２７が、受信パケットのヘッダ情報を検索処理部４０に転送し、検索処理部４０のルーティングテーブル検索部４３とフローテーブル検索部４２が、それぞれのテーブル検索を実行するまでの動作は、前述したフロー１の受信パケットの処理時と同様である。
【０１４８】
受信パケットがフローＦｓ２に属するＳＹＮパケットの場合、フローテーブル検索部４２がヘッダ情報から生成した検索キーは、図２７に示したエントリＥＮ−ｘ２４のフロー識別条件に一致する。従って、フローテーブル検索部４２は、検索結果として、エントリＥＮ−ｘ２４が示す統計制御情報をフローエントリ管理部４４、サンプル処理部４５、サンプル判定部４６、統計収集処理部４７に分配する。
【０１４９】
今回は、検索された統計制御情報の登録処理フラグ６３１とサンプル処理フラグ６３５が「０」となっているため、フローエントリ管理部４４とサンプル処理部４５は、特別な応答動作は実行しない。統計収集処理部４７は、統計制御情報の統計収集フラグ６３３が「１」となっているため、フローエントリ番号ｆ２４をもつエントリＳＥ−ｘ２４の統計情報７２を更新する。従って、パケット数７２１、バイト数７２２、帯域７２５の値は、図２８に示した値よりも増加する。
【０１５０】
一方、サンプル判定部４６は、統計制御情報のサンプル判定フラグ６３５が「１」、サンプル処理フラグ６３５が「０」となっているため、受信パケットのサンプル処理を開始すべきか否かの判定（サンプル開始判定）を行う。サンプル開始判定は、統計収集処理部４７に対して、フローエントリ番号ｆ２４の統計情報を要求し、現在の帯域７３５と、統計制御情報が示すサンプル開始帯域６３８とを比較することを意味している。ここでは、帯域７３５の現在値「１０Ｍｂｐｓ」が、サンプル開始帯域６３８の指定値「５０Ｍｂｐｓ」よりも小さいため、サンプル判定部４６は、サンプル処理不要と判断し、特別な動作は実行しない。従って、この時点では、検索結果出力部４８は、コピーフラグ４８２とカプセル化指示フラグ４８３が「０」で、出力回線番号４８１とその他の情報４８５に有効情報を含む検索結果通知４８０を出力し、受信パケット処理部２０でのサンプルパケットの生成はない。
【０１５１】
上述した動作が繰り返され、フローエントリＥＮ−２４の帯域７３５の値が漸増して「５１Ｍｂｐｓ」となったと仮定する。この状態で、パケット蓄積制御部２３が、フローＦｓ２に属するＳＹＮパケットを処理し、ヘッダ送信制御部２７が、ヘッダ情報を検索処理部４０に転送すると、サンプル判定部４６が、フローエントリ番号ｆ２４のフローについてサンプル開始判定を実行し、現在帯域７３５が統計制御情報で指定されたサンプル開始帯域６３８を超えたことを検出する。サンプル判定部４６は、今回は、サンプル処理開始要と判断し、フローテーブル検索部４２に対して、フローエントリ番号ｆ２４のフローエントリＥＮ−ｘ２４におけるサンプル処理フラグ６３５の「１」への書き換えを指示する。フローテーブル検索部４２は、上記書き換え指示に応答して、フローエントリＥＮ−ｘ２４の統計制御情報に含まれるサンプル処理フラグ６３５の値を「１」に書き換える。
【０１５２】
この時点では、統計情報テーブル７０のエントリＳＥ−２４の統計情報７２と、フローテーブルのフローエントリＥＮ−２４の統計制御情報が更新されただけであり、サンプル処理部４５の動作には変化がない。従って、検索結果出力部４８は、それまでと同様の検索結果通知４８０を信号線Ｌ４８に出力し、受信パケット処理部２０でのサンプルパケットの生成はない。
【０１５３】
しかしながら、サンプル処理フラグ６３５の値が「１」に書き換えられた後で、フローＦｓ２に属する次にＳＹＮパケットが受信処理されると、検索処理部４０の動作が変化する。サンプル判定部４６は、フローテーブル検索部４２から通知された統計制御情報において、サンプル判定フラグ６３７とサンプル処理フラグ６３５が両方とも「１」となっているため、フローエントリ番号ｆ２４のフローについて、受信パケットのサンプル処理を終了すべきか否かの判定（サンプル終了判定）を実行する。サンプル終了判定は、統計収集処理部４７に対して、フローエントリ番号ｆ２４の統計情報を要求し、現在の帯域７３５と、サンプル終了帯域６３９とを比較することを意味している。ここでは、現在の帯域７３５が、サンプル終了帯域６３９を超えているため、サンプル判定部４６は、サンプル処理フラグの書き換えは不要と判断し、次の統計制御情報を待つ。
【０１５４】
一方、サンプル処理部４５は、フローテーブル検索部４２から通知された統計制御情報において、サンプル処理フラグ６３５が「１」となっているため、例えば、パケットカウンタを使用して、サンプリングレート６３６に従った頻度で、サンプルパケット生成指示（コピー指示）を発生する。この例では、サンプル処理部４５は、１０個のＳＹＮパケットに１個の割合でコピー指示を発生し、これを信号線Ｌ４５を介して検索結果出力部４８に与る。コピー指示を発生しないサイクルでの検索結果出力部４８の動作は、前述したサンプル処理フラグ６３５が「０」の場合と同様である。
【０１５５】
検索結果出力部４８は、信号線Ｌ４５からコピー指示を受信した場合、受信パケット処理部２０にパケットコピーの生成が必要となったことを知らせる第１の検索結果通知を生成し、これを信号線Ｌ４８に出力した後、受信パケット処理部２０にカプセルヘッダ情報を適用したカプセル化コピーパケットをコレクタ装置に送信すべきことを知らせる第２の検索結果通知を生成し、これを信号線Ｌ４８に出力する。
【０１５６】
第１の検索結果通知は、通常の検索結果通知４８０と同様に生成され、コピー指示フラグ４８２が「１」に設定される。すなわち、カプセル化指示フラグ４８３に「０」、出力回線番号４８１とその他の情報４８５に、ルーティングテーブルの検索結果から抽出された出力回線番号とその他の情報が設定され、カプセルヘッダ情報４８４は無効となっている。
【０１５７】
第２の検索結果通知は、コピー指示フラグ４８２に「０」、カプセル化指示フラグ４８３に「１」が設定され、カプセルヘッダ情報４８４に、サンプル（受信パケットのコピー）をコレクタ装置に送信するためのカプセルヘッダ情報が設定される。このカプセルヘッダ情報は、サンプルパケットヘッダ情報蓄積部５１から読み出される。第２の検索結果通知の出力回線番号４８１とその他の情報４８５には、サンプルパケットヘッダ情報蓄積部１５１１内に予め用意された出力回線番号とその他の情報が設定される。
【０１５８】
図１６において、受信パケット処理部２０のヘッダ送信制御部２７は、上記第１の検索結果通知４８０を受信すると、通常パケットの処理時と同様、該検索結果通知が示す出力回線番号４８１〜カプセル化ヘッダ情報４８４を先頭のパケットデータ管理情報ブロック２００−１の内部ヘッダ１５に設定し、パケットデータ管理情報ブロック２００−１を出力パケットヘッダ蓄積メモリ２５Ｂに書き込む。今回受信した検索結果通知は、コピー指示フラグ４８２が「１」となっているため、ヘッダ送信制御部２７は、出力パケットヘッダ蓄積メモリ２５Ｂに書き込み済みとなったパケットデータ管理情報ブロック２００−１を廃棄せずに保持しておく。後続のパケットデータ管理情報ブロック２００−２、２００−３、…が存在した場合は、これらをそのまま出力パケットヘッダ蓄積メモリ２５Ｂに書き込み、パケットデータ管理情報ブロック２００−１と同様、廃棄することなく保持しておく。
【０１５９】
この後、ヘッダ送信制御部２７は、コピー管理部２８に対して、コピー数と、上記各パケットデータ管理情報が示すメモリアドレス２０４の値とを通知し、パケット転送制御部２９に対して、パケット転送開始を要求する。今回は、検索結果通知のコピー指示フラグ４８２が「１」となっているため、コピー管理部２８にはコピー数「１」が通知される。従って、コピー管理部２８は、図２４に示したアドレス解放制御テーブル２８０において、ヘッダ送信制御部２７から通知されたメモリアドレスと対応するメモリブロック２８１の送信待ち回数２８２を“２”に設定する。
【０１６０】
パケットの転送制御部２９は、上記パケット転送開始要求に応答して、出力パケットヘッダ蓄積メモリ２５Ｂからパケットデータ管理情報ブロック２００−１、２００−２、…を読み出し、これらのパケットデータ管理情報ブロックに基づいて、パケットデータ蓄積メモリ２４からパケットデータ部分を読み出して、再編成された内部パケット（ＳＹＮパケット）を信号線Ｌ１に出力する。
【０１６１】
パケットの転送制御部２９が内部パケットの転送が完了した時、コピー管理部２８は、アドレス解放制御テーブル２８０において、データ送信を終えたメモリブロックの送信待ち回数を１ずつ減算する。今回は、データ送信を終えたメモリブロックの送信待ち回数の初期値が“２”に設定されているため、減算後の送信待ち回数がそれぞれ“１”として残る。従って、これらのメモリブロックについては、メモリ状態管理部２６へのアドレス解放通知の発行が抑制され、パケットデータ蓄積メモリ２４に蓄積されたパケットデータがそのまま保存される。
【０１６２】
ヘッダ送信制御部２７は、上記第１の検索結果通知に続いて、検索結果出力部４８から第２の検索結果通知を受信する。第２の検索結果通知を受信したヘッダ送信制御部２７は、第１の検索結果通知の受信時と同様、該検索結果通知が示す出力回線番号４８１〜カプセル化ヘッダ情報４８４を先頭のパケットデータ管理情報ブロック２００−１の内部ヘッダ１５に設定し、パケットデータ管理情報ブロック２００−１を出力パケットヘッダ蓄積メモリ２５Ｂに書き込み、後続のパケットデータ管理情報ブロック２００−２、２００−３、…が存在した場合は、これらをそのまま出力パケットヘッダ蓄積メモリ２５Ｂに書き込む。今回は、第２の検索結果通知のコピー指示フラグ４８２が「０」となっているため、出力パケットヘッダ蓄積メモリ２５Ｂに書き込み済みとなったパケットデータ管理情報ブロック２００−１、２００−２、…は廃棄される。
【０１６３】
この後、ヘッダ送信制御部２７は、コピー管理部２８に対して、コピー数と、上記各パケットデータ管理情報が示すメモリアドレス２０４の値とを通知し、パケット転送制御部２９に対して、パケット転送開始を要求する。今回は、コピー指示フラグ４８２が「０」となっているため、コピー管理部２８は、アドレス解放制御テーブル２８０において、ヘッダ送信制御部２７から通知されたメモリアドレスと対応するメモリブロック２８１の送信待ち回数２８２を“１”に設定する。従って、パケットの転送制御部２９による内部パケットの転送が完了した時、データ送信を終えたメモリブロックについては、減算後の送信待ち回数がそれぞれ“０”となり、メモリ状態管理部２６にアドレス解放通知の発行される。
【０１６４】
上記第２の検索結果通知に応答して、パケット転送制御部２９から送信パケット処理部３０に転送された内部パケット（ＳＹＮパケットのコピー）は、内部ヘッダ１５のカプセル化指示フラグ１５３が「１」に設定されている。送信パケット処理部３０のパケット出力制御部３２は、出力パケットヘッダ蓄積メモリ３４から読み出された先頭のパケットデータ管理情報ブロック２００−１にヘッダ情報２０５の一部として含まれる内部ヘッダ１５を抽出し、カプセル化指示フラグ１５３をチェックする。今回は、カプセル化指示フラグ１５３が「１」となっているため、内部ヘッダ情報１５に含まれるコレクタ装置宛のカプセル化ヘッダ情報１５４（レイヤ２ヘッダ〜レイヤ４ヘッダ）をコピーパケットの先頭に付与し、出力回線番号１５２によって特定される回線終端処理部３０−ｋに送信する。
【０１６５】
上述したコピーパケットの生成と、コレクタ装置へのカプセル化パケットの送信は、監視対象となっているＳＹＮパケットの帯域７２５が、フローエントリＥＮ−２４で指定するサンプル終了帯域６３９より低下する迄、サンプリングレート６３６に従った頻度で、繰り返して実行される。フローエントリＥＮ−２４のサンプル処理フラグ６３５が「１」に設定された状態で、フロー識別条件６２に該当するＳＹＮパケットの送出量が次第に減少し、統計情報テーブル７０における帯域７７５の値が、サンプル終了帯域６３９で指定された「４０Ｍｂｐｓ」よりも低下した場合、検索処理部４０は次のように動作する。
【０１６６】
受信パケット処理部２０のパケット蓄積制御部２３が、新たなＳＹＮパケットの蓄積処理を終え、上記ＳＹＮパケットのヘッダ情報がヘッダ送信制御部２７から検索処理部４０のヘッダ情報蓄積部４１に転送されると、フローテーブル検索部４２は、フローテーブル６０から検索したフローエントリＥＮ−２４の統計制御情報６３をフローエントリ管理部４４、サンプル処理部４５、サンプル判定部４６、統計収集処理部４７に分配する。
【０１６７】
フローエントリ管理部４４は、統計制御情報６３の登録処理フラグが「０」となっているため、特別な応答動作はしない。統計収集処理部１５０７は、統計制御情報６３の統計収集フラグが「１」となっているため、ヘッダ情報蓄積部４１から受信したヘッダ情報に従って、統計情報エントリＳＥ−ｘ２４の統計情報７２を更新する。サンプル処理部４５は、統計制御情報６３のサンプル処理フラグ６３５が「１」となっているため、これまでと同様に、サンプリングレート６３６に従ったコピー指示動作を繰り返す。
【０１６８】
一方、サンプル判定部４６は、統計制御情報６３のサンプル判定フラグ６３７とサンプル処理フラグ６３５が両方とも「１」となっているため、フローエントリ番号ｆ２４のフローについて、サンプル終了判定を実行する。今回は、現在の帯域７３５がサンプル終了帯域６３９より低下しているため、サンプル判定部４６が、フローテーブル検索部４２に、フローエントリ番号ｆ２４のエントリＥＮ−２４におけるサンプル処理フラグ６３５の「０」への書き換えを指示し、フローテーブル検索部４２が、エントリＥＮ−２４の統計制御情報６３を初期状態に戻す。従って、ＳＹＮパケットフローの帯域が再びサンプル開始帯域を超え、サンプル処理フラグ６３５が「１」に設定されるまでの間は、ＳＹＮパケット処理時のサンプル処理部４５からのコピー指示の発生はなくなり、コレクタ装置へのカプセル化パケットの送信は休止状態となる。
【０１６９】
本発明では、フロー識別条件におけるその他の情報６２９として、例えば、ＴＣＰフラグや、Ｅｔｈｅｒｎｅｔヘッダの宛先／送信元ＭＡＣアドレス、ＶＬＡＮ  ＩＤの値を指定することによって、ＴＣＰコネクションの特定の制御パケットを用いたサーバへのDenial of Serviceアタック(ＤＯＳアタック）の検出や、ＶＬＡＮ−ＩＤ、ＭＡＣアドレス別の統計情報収集が可能になる。
【０１７０】
実施例では、パケット蓄積制御部２３が、各受信パケットに付すべき内部ヘッダ１５を生成し、これをパケットデータ管理情報ブロック２００に設定して、入力パケットヘッダ蓄積部２５Ａに蓄積したが、内部ヘッダを各回線終端処理部２１−１〜２１−Ｎで生成し、パケット蓄積制御部２３が、バッファメモリ２２−１〜２２−Ｎから内部パケット形式で受信パケットを読み出すようにしてもよい。この場合、バッファメモリ２２−（Ｎ＋１）に蓄積される統計情報通知パケット３００にも内部ヘッダ１５を付与する必要があるため、統計情報通知パケットヘッダ情報蓄積部５０に、予め内部ヘッダ１５を用意しておけばよい。
【０１７１】
また、実施例では、フロー登録用の統計制御エントリＥＮ−ｘ１２が検索された時、フローテーブル６０に無条件で新たなフローエントリが追加される例について説明したが、統計制御エントリＥＮ−ｘ１２の統計制御情報６３で、新たなフローエントリの登録条件を指定しておき、この条件が満足された時、フローテーブル６０に新たなフローエントリが追加されるようにすることもできる。
【０１７２】
例えば、エントリＥＮ−ｘ１２において、サンプル開始帯域６３８は、サンプル判定フラグ６３７が「１」の場合は、サンプル処理の開始条件を示し、サンプル判定フラグ６３７が「０」で登録処理フラグ６３１が「１」の場合は、新エントリの登録開始条件を示すものと約束しておけば、統計制御エントリＥＮ−ｘ１２の統計制御情報で、登録処理フラグ６３１、統計収集フラグ６３３、帯域計算フラグ６３４をそれぞれ「１」に設定し、サンプル判定フラグ６３７を「０」にして、サンプル開始帯域６３８に登録開始帯域を設定しておくことにより、フローエントリ管理部４４に、ＴＣＰフローで登録開始帯域が満たされた時、フローテーブル６０への新エントリの追加動作をスタートさせることが可能となる。
【図面の簡単な説明】
【０１７３】
【図１】本発明の統計収集装置が適用される通信ネットワークの１例を示す図。
【図２】図１の通信ネットワークで通信されるパケットのフォーマットを示す図。
【図３】Ｅｔｈｅｒｎｅｔ  Ｖ２のフレームのヘッダフォーマットを示す図。
【図４】Ｔａｇ  ＶＬＡＮ対応のＥｔｈｅｒｎｅｔ  Ｖ２フレームのヘッダフォーマットを示す図。
【図５】ＩＰｖ４パケットのヘッダフォーマットを示す図。
【図６】ＩＰｖ６パケットのヘッダフォーマットを示す図。
【図７】ＴＣＰのヘッダフォーマットを示す図。
【図８】図７におけるＴＣＰフラグ１３３の詳細を示す図。
【図９】ＵＤＰヘッダのフォーマットを示す図。
【図１０】図１のルータＲ１で収集されるフロー識別条件の１例を示す図。
【図１１】図１のルータＲ１で収集される統計情報の１例を示す図。
【図１２】本発明の統計収集機能を備えるルータＲ１の１実施例を示す構成図。
【図１３】本発明のルータＲ１と管理端末１３００との接続関係の１例を示す図。
【図１４】本発明のルータＲ１と管理端末１３００との接続関係の他の例を示す図。
【図１５】本発明のルータの内部で扱われる内部パケットのフォーマットの１例を示す図。
【図１６】図１２の受信パケット処理部２０の１実施例を示すブロック図。
【図１７】図１６のメモリ２５Ａ、２５Ｂに蓄積されるパケットデータ管理情報ブロック２００の１例を示す図。
【図１８】図１６のメモリ２５Ａ（または２５Ｂ）に蓄積されるパケットデータ管理情報ブロックと、メモリ２４に蓄積されるデータブロックとの関係を示す図。
【図１９】図１６の送信パケット処理部３０の１実施例を示すブロック図。
【図２０】図１６の検索処理部４０の１実施例を示すブロック図。
【図２１】図１６のフローテーブル６０の１例を示す図。
【図２２】図１６の統計情報テーブル７０の１例を示す図。
【図２３】図２０の検索結果出力部４８が出力する検索結果通知４８０の１例を示す図。
【図２４】図１６のコピー管理部２８が備えるアドレス解放制御テーブル２８０の１例を示す図。
【図２５】図２０のフロー管理テーブル４９の１例を示す図。
【図２６】図２０の統計情報通知パケット生成部５３が出力する統計情報通知パケット３００のフォーマットの１例を示す図。
【図２７】図１２に示したフローテーブル６０の他の実施例を説明するための図。
【図２８】図１２に示した統計情報テーブル７０の他の実施例を説明するための図。
【符号の説明】
【０１７４】
Ｓ１、Ｓ２：サーバ、Ｒ１〜Ｒ３：ルータ、Ｔ１〜Ｔ４：端末、Ｃ１：コレクタ装置、
２０：受信パケット処理部、３０：送信パケット処理部、４０：検索処理部、
６０：フローテーブル、７０：統計情報テーブル、８０：ルーティングテーブル、
４２：フローテーブル検索処理部、４３：ルーティングテーブル検索部、
４４：フローエントリ管理部、４５：サンプル処理部、４６：サンプル判定部、
４７：統計収集処理部、４８：検索結果出力部、５３：統計情報通知パケット生成部。
【図１】
2006005402.tif 000003
【図２】
2006005402.tif 000004
【図３】
2006005402.tif 000005
【図４】
2006005402.tif 000006
【図５】
2006005402.tif 000007
【図６】
2006005402.tif 000008
【図７】
2006005402.tif 000009
【図８】
2006005402.tif 000010
【図９】
2006005402.tif 000011
【図１０】
2006005402.tif 000012
【図１１】
2006005402.tif 000013
【図１２】
2006005402.tif 000014
【図１３】
2006005402.tif 000015
【図１４】
2006005402.tif 000016
【図１５】
2006005402.tif 000017
【図１６】
2006005402.tif 000018
【図１７】
2006005402.tif 000019
【図１８】
2006005402.tif 000020
【図１９】
2006005402.tif 000021
【図２０】
2006005402.tif 000022
【図２１】
2006005402.tif 000023
【図２２】
2006005402.tif 000024
【図２３】
2006005402.tif 000025
【図２４】
2006005402.tif 000026
【図２５】
2006005402.tif 000027
【図２６】
2006005402.tif 000028
【図２７】
2006005402.tif 000029
【図２８】
2006005402.tif 000030