(57)【要約】【課題】パケットフロー別の統計情報として、転送したパケット数、バイト数に加え、廃棄したパケット数、バイト数および廃棄した要因を統計情報として収集可能な通信統計情報収集装置を提供すること。【解決手段】フローテーブルから検索キーに該当するフローエントリを検索するフローテーブル検索部と、フロー別およびパケットを転送するか廃棄するかの転送種別毎に廃棄する要因を含む統計情報を収集する統計収集処理部と、蓄積された統計情報をコレクタ装置に通知するためのパケットを生成する制御部と、フローテーブルに未登録のフローが到着した場合、フロー識別番号を割り当て、フローテーブルを更新するエントリ管理部とを有する通信統計情報収集装置。【選択図】図１
2006254134.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）ポート番号、宛先ＴＣＰ／ＵＤＰポート番号、入力回線インターフェース番号等の組合せによってフロー識別条件を定義している。
【０００７】
受信パケットがフローテーブルに登録された何れかのフロー識別条件に一致した場合、このフロー識別条件と対応して用意された統計情報エントリにおいて、受信したパケット数やバイト数および、受信したポート等の入力方向に関する情報や、パケットの出力ポート、次に転送すべき隣接ルータ(以下、ネクストホップルータ)のIPアドレスといったパケットの出力方向に関する情報等の統計情報が更新される。上記フローテーブル検索の結果、受信パケットがフローテーブル上のどのフロー識別条件にも一致しなかった場合は、検索キーとなったヘッダ情報項目と入力インターフェース番号等の組合せをフロー識別条件とする新たなフローエントリがフローテーブルに追加される。統計情報エントリの内容は、定期的に監視され、例えば、一定時間以上、統計情報に変化がない統計情報エントリの内容が、統計情報データとしてコレクタ装置に送信される。また、コレクタ装置に通知済みとなった統計情報エントリと、これに対応するフローエントリは、エージング処理によってテーブルから削除される。
【０００８】
【非特許文献１】http://www.cisco.com/warp/public/cc/pd/iosw/prodlit/nflov_pg.ppt
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来の統計情報収集システム内の統計収集装置で収集される統計情報のうち、パケット数とバイト数は、フローの総データ量や時間当りのデータ量(以下、帯域と呼ぶ)に関する情報であり、上記の情報を用いることによりフロー毎の通信品質保証状況の確認やトラフィック・エンジニアリング、プロビジョニング、不正ユーザからのアタック検出および分析、課金を行うことができる。
【００１０】
しかしながら、従来の統計情報システムでフロー毎に収集されるパケット数とバイト数は、ノードが受信したパケット数とバイト数のみであり、ノードが他のノードへ転送したパケット数とバイト数は収集しない。従って、パケットの転送に必要なノード内のリソース不足や、ネットワーク管理者による保証帯域などの帯域制御パラメータの設定ミスなどによってパケットが廃棄される場合、ノードが他のノードへ実際に送信するパケット数およびバイト数は受信したパケット数およびバイト数よりも少なくなるが、1つのノードで収集されるフロー毎の統計情報のみでは、コレクタ装置がある1つのノードが他のノードへ実際に転送したデータ量を分析することは困難である。また、上記ある1つのノード(以下、上流ノードと呼ぶ)で統計情報が収集されるある1つのフローに対し、上記上流ノードで収集されるパケット数およびバイト数と、上記フローに属するパケットが次に転送されるノード(以下、下流ノードと呼ぶ)で収集されるパケット数およびバイト数との差分を計算して、上流ノードが実際に送信したフローのパケット数およびバイト数を求めることは原理的には可能である。しかし、1つのノードが受信する全てのフローに対して、上記差分を計算するためには、上記1つのノードが受信・送信するフロー毎に、下流ノードから通知されコレクタ装置内に蓄積されている対応するフロー毎の統計情報を検索する必要がある。ノードが受信・送信するフローの数は数千〜数百万と非常に多いため、上記探索処理に必要な時間が多くなり、コレクタ装置のCPUの処理負荷が高くなるという問題がある。また、ネットワーク内の全てのノードに対して上記処理を行う必要があり、ネットワーク内のノード数の増加に比例してコレクタ装置のCPUの処理負荷が増加するという問題がある。
従って、従来の統計情報収集システムでは、ネットワーク管理者がコレクタ装置の分析結果からノード内のリソース不足や帯域制御パラメータの設定ミスを発見することが困難である。
【００１１】
また、従来の統計情報システムでは、ノードのフィルタリング機能で廃棄されるパケット、帯域監視機能により予めユーザとの間で契約された帯域を超過して廃棄されるパケット、パケットヘッダ内に格納されパケットの有効期間を示すTime To Live(TTL)の期間切れ(以下、TTL Overと呼ぶ)により廃棄されるパケット、パケットの宛先を決定するルーティングテーブル内に宛先情報が登録されておらず廃棄されるパケット、などに対してはフロー毎の統計情報を収集しない。従って、ネットワーク管理者は、コレクタ装置の分析結果から、上記の廃棄されるパケットに関する情報を知ることができない。この際、例えば、ネットワーク管理者が不正ユーザからのアタック用パケットをフィルタリング機能で廃棄するようにノードに設定した場合、ネットワーク管理者は、上記アタック用パケットの受信ポート、アタック用パケットのデータ量を知ることができず、アタックに対するフィルタリング設定の有効性の確認や、不正ユーザの特定を行うことが困難である。
【００１２】
本発明は、これらの問題点に鑑みてなされたものであり、本発明の目的は，フロー毎に，ノードが送信したパケット数およびバイト数，ノードで廃棄したパケット数およびバイト数を収集して，コレクタ装置へ通知することが可能な統計収集装置を提供することにある。
本発明の他の目的は，フロー毎に，ノードがパケットを廃棄した原因を統計情報として記録して，コレクタ装置へ通知することが可能な統計情報収集装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の統計情報収集装置は、フローを識別するためのフロー識別条件を定義した複数のフローエントリからなるフローテーブルと、フロー識別条件と対応した複数のフロー識別番号からなるフロー識別番号テーブルと、ネットワーク受信パケットのヘッダから抽出された複数のヘッダ情報項目の組合せをフロー検索キーとして、上記フローテーブルからフロー検索キーに該当するフロー識別条件をもつエントリを検索し、対応するフロー識別番号を決定する検索処理部と、パケットの送信キューへのキューイング判定処理の結果、あるいはネットワーク管理者が設定するフィルタリング条件によるパケットの通過許可あるいは廃棄指示などから、パケットを転送するか廃棄するか(以下、パケット処理種別と呼ぶ)を決定してパケットのキューイング処理および廃棄処理を行うパケット処理部と、上記決定される複数のフロー識別番号毎に対応して、上記パケット処理種別毎に統計情報を格納する統計情報エントリからなるフロー統計情報テーブルと、上記パケット処理種別に従って、上記フロー識別番号とパケット処理種別に対応する統計情報を収集するフロー統計情報収集部と、上記フロー識別番号とパケット処理種別に対応する統計情報をフロー統計情報テーブルから読み出してコレクタ装置へ通知する統計情報通知部を所持し、
上記検索処理部が、各受信パケットのヘッダ情報から生成したフロー検索キーに従ってフローテーブルを検索し、フロー検索キーに該当するフローエントリに対応するフロー識別番号を決定してフロー統計情報収集部へ通知し、上記フロー識別番号を受信した統計情報収集部が、パケット処理部が決定したパケット処理種別に従って、上記フロー識別番号とパケット処理種別に対応する統計情報を収集し、上記統計情報通知部が、各フロー統計情報テーブルのフロー統計情報を定期的に監視し、一定期間統計情報が増加していない場合は当該フローの通信は終了したと判断し、当該フロー毎の全てのパケット処理種別に対する統計情報をフロー統計情報テーブルから読み出し、上記統計情報をデータとするパケットを生成し、コレクタ装置へ通知することを特徴とする。
【００１４】
さらに、本発明の統計情報収集装置は、上記複数のフロー識別番号に対応して、上記パケット処理種別毎の統計情報に加えて、パケット処理種別が廃棄処理の場合、フィルタリング条件によって廃棄されるのか、キューイング判定時のキューのリソース不足により廃棄されるのか、という廃棄要因を統計情報として格納する統計情報エントリからなるフロー統計情報テーブルと、上記フロー識別番号とパケット処理種別に対応する統計情報と上記廃棄要因を収集するフロー統計情報収集部と、上記フロー識別番号とパケット処理種別に対応する統計情報をフロー統計情報テーブルから読み出してコレクタ装置へ通知する統計情報通知部を所持し、
上記統計情報通知部がフローに対応する統計情報として、上記廃棄要因も併せてコレクタ装置へ通知することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、統計収集装置がフロー毎に受信したパケット数およびバイト数、廃棄したパケット数とバイト数を収集し、コレクタ装置へ通知することができるため、コレクタ装置が上記の廃棄したパケット数とバイト数をフロー毎に分析し、分析結果をディスプレイ上に表示することや電子ファイル形式で作成することが可能であり、ネットワーク管理者がコレクタ装置の分析結果からノード内のリソース不足や帯域制御パラメータの設定ミスを発見し、ネットワーク構成を変更してノードのリソース不足を改善することや、帯域制御パラメータを修正することが可能になる。
【００１６】
また、本発明によれば、統計収集装置がフロー毎に、ノードがパケットを廃棄した原因を統計情報として記録し、コレクタ装置へ通知することができるため、コレクタ装置が上記廃棄要因をフロー毎に分析し、分析結果をディスプレイ上に表示することや電子ファイル形式で作成することが可能であり、ネットワーク管理者がコレクタ装置の分析結果から上記の廃棄されるパケットに関する情報を知ることが可能になる。例えば、ネットワーク管理者が不正ユーザからのアタック用パケットをフィルタリング機能で廃棄するようにノードに設定した場合、ネットワーク管理者が、上記アタック用パケットの受信ポート、アタック用パケットのデータ量を知ることができ、アタックに対するフィルタリング設定の有効性の確認や、不正ユーザの特定を行うことが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の通信統計情報収集装置の実施例について図面を参照して説明する。
図２は、本発明の通信統計情報収集装置を適用したネットワーク構成の１例を示す。
ここに示したネットワークＮＷは、端末Ｔ１、Ｔ２、Ｔ３、Ｔ４を収容したルータＲ１と、サーバＳ１を収容したルータＲ２と、サーバＳ２を収容したルータＲ３と、ルータＲ１に接続された統計情報のコレクタ装置Ｃ１から構成され、ルータＲ１が、本発明の通信統計情報収集装置としての機能を備えている。端末Ｔ１、Ｔ２、Ｔ３、Ｔ４は、それぞれ回線Ｃ−Ｔ１、Ｃ−Ｔ２、Ｃ−Ｔ３、Ｃ−Ｔ４を介してルータＲ１に接続され、ルータＲ１は、回線Ｃ−Ｒ２、Ｃ−Ｒ３を介してルータＲ２、Ｒ３に接続されている。
【００１８】
上記ネットワークＮＷにおいて、端末Ｔ１、Ｔ３がサーバＳ１と、端末Ｔ２、Ｔ４がサーバＳ２と通信中で、サーバＳ１から端末Ｔ１、Ｔ３に送信されるＩＰ（Internet Protocol）パケットのフローをそれぞれ「フロー１」、「フロー２」と呼び、サーバＳ２から端末Ｔ２、Ｔ４へのＩＰパケットフローをそれぞれ「フロー３」、「フロー４」と呼ぶことにする。
【００１９】
ここで、フロー１は、ＩＰの上位プロトコルがＴＣＰで、ＩＰヘッダ内のＴＯＳ（Type of Service）がＴＯＳ１、ＴＣＰヘッダ内の送信元ポート番号と宛先ポート番号が、それぞれＳＰＲＴ１、ＤＰＲＴ１のパケット列からなり、フロー２は、ＩＰの上位プロトコルがＴＣＰ、ＴＯＳがＴＯＳ１、送信元ポート番号と宛先ポート番号がそれぞれＳＰＲＴ１、ＤＰＲＴ３のパケット列からなるものとする。また、フロー３は、ＩＰの上位プロトコルがＵＤＰで、ＴＯＳがＴＯＳ２、ＵＤＰヘッダ内の送信元ポート番号と宛先ポート番号がそれぞれＳＰＲＴ２、ＤＰＲＴ２のパケット列からなり、フロー４は、ＩＰの上位プロトコルがＵＤＰで、ＴＯＳがＴＯＳ２、送信元ポート番号と宛先ポート番号が、それぞれＳＰＲＴ２、ＤＰＲＴ４のパケット列からなるものとする。
【００２０】
図３は、上記ネットワーク上で通信されるＩＰパケット１０の構造を示す。
ＩＰパケット１０は、ＯＳＩ（Open System Interconnection）参照モデルのプロトコルレイヤに対応した複数レイヤのヘッダ、具体的には、レイヤ２ヘッダ１１、レイヤ３ヘッダ１２およびレイヤ４ヘッダ１３と、データ１４とから構成される。
【００２１】
レイヤ２のプロトコルとしては、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＡＴＭ （Asynchronous Transfer Mode）、ＭＰＬＳ（Multi-Protocol Label Switching）等のプロトコルが適用でき、レイヤ３のプロトコルとしては、ＩＰ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４)、ＩＰ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）等のプロトコルを適用できる。また、レイヤ４のプロトコルとしては、ＴＣＰ、ＵＤＰ等のプロトコルを用いることができる。
【００２２】
図４は、レイヤ３ヘッダ１２の１例として、ＩＰｖ４のヘッダ構造を示す。
ＩＰｖ４ヘッダには、パケットの転送品質を示すＴｏＳ１２１、レイヤ４のプロトコルを示すプロトコル１２２、送信元ＩＰアドレス１２６Ａ、宛先ＩＰアドレス１２７Ａ、その他の情報が含まれる。ＴｏＳとプロトコルはそれぞれ８ビット、送信元ＩＰアドレスと宛先ＩＰアドレスはそれぞれ３２ビットからなる。
【００２３】
図５は、レイヤ３ヘッダ１２の他の例として、ＩＰｖ６のヘッダ構造を示す。
ＩＰｖ６ヘッダには、パケットの転送品質を示すクラス１２３、このＩＰｖ６ヘッダ部に続く次のヘッダの種別を示す次ヘッダ番号１２５、送信元ＩＰアドレス１２６Ｂ、宛先ＩＰアドレス１２７Ｂ、その他の情報が含まれる。次ヘッダが、例えば、ＴＣＰやＵＤＰの場合、次ヘッダ番号１２５として、レイヤ４のプロトコルを示す値が設定される。クラス１２３と次ヘッダ番号はそれぞれ８ビット、送信元ＩＰアドレスと宛先ＩＰアドレスは、それぞれ１２８ビットからなる。
【００２４】
図６は、レイヤ４ヘッダ１３の１例として、ＴＣＰのヘッダ構造を示す。
ＴＣＰヘッダには、上位レイヤがアプリケーションを識別するための論理的なポート番号として、それぞれ１６ビット長の送信元ポート番号１３１Ａおよび宛先ポート番号１３２Ａを含む。また、ＴＣＰコネクションにおけるパケット種別を示すＴＣＰフラグ１３３、その他の情報が含まれる。
【００２５】
ＴＣＰフラグ１３３は、図７に示ように、受信端末に受信データを緊急にアプリケーションに渡すことを指示する緊急フラグ（ＵＲＧ)１３３１、受信端末がデータを受信したことを送信端末に通知するＡＣＫ１３３２、送信端末と受信端末で遅延なくデータを渡すことを指示するＰＵＳＨ１３３３、ＴＣＰコネクションのリセットを指示するＲＳＴ１３３４、コネクションの終了を指示するＦＩＮ１３３５、コネクションの確立を指示するＳＹＮ１３３６の６つのフラグから構成されている。
【００２６】
図８は、レイヤ４ヘッダ１３の他の例として、ＵＤＰのヘッダ構造を示す。
ＵＤＰヘッダには、ＴＣＰヘッダと同様、それぞれ１６ビット長の送信元ポート番号１３１Ｂと宛先ポート番号１３２Ｂが含まれている。
【００２７】
図９は、図２のルータＲ１において統計情報の収集対象となるフロー識別条件を定義したフロー識別条件テーブルの一部を示す。ここでは、統計情報の収集対象フローが、レイヤ４のプロトコルがＴＣＰのフローに限定された場合を示している。
フロー識別条件テーブル６０の各エントリは、フロー識別条件６１と、上記フロー識別条件に対応するフロー識別番号６２から構成される。フロー識別条件６１は、ＩＰヘッダ内の送信元ＩＰアドレス６１１、宛先ＩＰアドレス６１２、上位プロトコル６１３およびＴＯＳ６１４と、ＴＣＰあるいはＵＤＰヘッダに含まれる送信元ポート番号６１５および宛先ポート番号６１６の値およびその他の情報によって定義されている。尚、ここで示したヘッダ情報の組合せは、フロー識別条件の一例に過ぎず、フロー識別条件は、図９とは異なったヘッダ情報の組合せであってもよい。
【００２８】
本発明の統計情報収集装置（ルータＲ１）では、後述する受信側検索処理部４０によって、上記フロー識別番号の割当と、フロー識別条件テーブルへのエントリの登録と削除が動的に行われる。
【００２９】
図１０は、ルータＲ１の統計情報テーブルに収集される統計情報の一例を示す。
統計情報テーブル７０は、フロー識別条件テーブルのフロー識別番号６２と対応した複数の統計情報エントリからなる。
ここに示した例では、統計情報７２として、フロー毎のルータR1が他のルータへ転送したパケット数（以下、転送パケット数と言う）７２１と、転送パケットの累計バイト数（以下、転送バイト数と言う）７２２と、ルータR1が廃棄したパケット数（以下、廃棄パケット数と言う）７２３と、廃棄パケットの累計バイト数（以下、廃棄バイト数と言う）７２４と、ルータR1が受信したパケットの入力回線番号７２５と、受信したパケットの転送先となる出力回線番号７２６と、廃棄パケットの廃棄要因７２７とが収集されている。
【００３０】
図１は、本発明の統計情報収集機能を備えたルータＲ１の１実施例を示すブロック図である。
ルータＲ１は、入力回線ＩＣｍｎ（ｍ＝１〜Ｍ、ｎ＝１〜Ｎ）に接続された複数のインターフェースカードＩＦＣｍと、上記複数のインターフェースカードＩＣｍｎを相互に接続するクロスバスイッチ１１０と、上記入力回線ＩＣｍｎに接続された受信パケット処理部２０と、出力回線ＯＣｍｎ（ｍ＝１〜Ｍ、ｎ＝１〜Ｎ）に接続された送信パケット処理部４０と、受信パケット処理部２０に接続された受信側検索処理部３０と、受信側検索処理部３０に付随するフロー識別条件テーブル６０と、ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａと、ＱｏＳテーブル１００Ａと、受信パケット処理部２０内のフロー統計情報収集部２１と、フロー統計情報収集部２１に付随するフロー統計情報テーブル７０Ａと、送信パケット処理部４０に接続された送信側検索処理部５０と、送信側検索処理部５０に付随するＦｉｌｔｅｒテーブル９０Ｂと、ＱｏＳテーブル１００Ｂと、送信パケット処理部４０内のフロー統計情報収集部４１と、フロー統計情報収集部４１に付随するフロー統計情報テーブル７０Ｂと、制御部１２０とから構成される。
【００３１】
制御部１２０は、管理端末１３００に接続され、管理端末１３００からの指示に従って、受信パケット処理部２０、受信側検索処理部３０、送信パケット処理部４０、送信側検索処理部５０に対して各種パラメータ情報の設定を行う。
【００３２】
ルータＲ１は、上述した受信パケット処理部２０、受信側検索処理部３０、送信パケット処理部４０、送信側検索処理部５０および制御部１２０をそれぞれ専用のＬＳＩで構成し、これらの専用ＬＳＩを相互に接続した構成でもよいし、ＬＳＩ個数およびＬＳＩ間の配線を少なくするために、複数の処理部を１つの専用ＬＳＩで実現し、少数の専用ＬＳＩを相互接続した構成としてもよい。また、専用ＬＳＩを使用する代わりに、ルータ機能の一部を汎用のＭＰＵ（Micro Processing Unit）やＮＰ(Network Processor)で実現してもよい。
【００３３】
図１では、複数のインターフェースカードＩＦＣｍ上に、受信パケット処理部２０と受信側検索処理部３０と送信パケット処理部４０と送信側検索処理部５０を分散して搭載し、上記複数のインターフェースカードをクロスバスイッチで相互に接続した構成を示しているが、受信パケット処理部２０と受信側検索処理部３０と送信パケット処理部４０と送信側検索処理部５０を装置あたり一組だけ所持し、複数の回線を全て一組の受信パケット処理部３０と送信パケット処理部４０に接続される装置構成とすることも可能である。
また、受信側検索処理部３０が参照するフロー識別条件テーブル６０用のメモリとしては、高速の検索処理性能が要求される場合は、例えば、ＣＡＭまたはＳＳＲＡＭを適用し、比較的低速の検索処理性能で十分な場合は、ビット当りの価格が安く、ビット当りのチップ面積も少なくて済むＤＲＡＭを適用できる。
【００３４】
図１１は、ルータＲ１の制御部１２０に接続される管理端末１３００の１例を示す。
管理端末１３００は、ルータＲ１内の各種テーブルの内容を表示するための表示画面１３０１と、表示画面に表示されたテーブル内容の任意箇所を選択、編集するためのマウス１３０２、キーボード１３０３などの入力手段とからなる。管理端末１３００は、図１２に示すように、ネットワークＮＷを介してルータＲ１に接続してもよい。また、管理端末１３００の機能をコレクタ装置Ｃ１に持たせておき、コレクタ装置からルータのテーブル情報を更新するようにしてもよい。
【００３５】
図１３は、ルータＲ１の内部で転送される内部パケットのフォーマットの１例を示す。
内部パケットは、図２に示したネットワークからの受信パケットの先頭に内部ヘッダ１５を付加した構成となっている。内部ヘッダ１５は、パケットデータが蓄積されるパケットデータ蓄積メモリ２５内のアドレスを格納するパケットデータ蓄積アドレス１５０と、パケットの受信回線を示す入力回線番号１５１と、それぞれ受信側検索処理部３０によって決定されるパケットの出力回線番号１５２、受信側検索処理部３０あるいは送信側検索処理部５０によって決定される装置内ＱｏＳ情報１５３、パケット処理種別１５４、フロー統計収集指示フラグ１５５、フロー識別番号１５６、廃棄要因１５７を含む。
【００３６】
図１４は、インターフェースカードＩＦＣ１内の受信パケット処理部２０の１実施例を示す。
受信パケット処理部２０は、それぞれ入力回線ＩＣ１ｉに接続された複数の回線終端処理部２２−ｉ（ｉ＝１〜Ｎ）と、回線終端処理部２２−ｉから出力された受信パケットを一時的に蓄積するバッファメモリ２３−ｉ（ｉ＝１〜Ｎ）と、制御部１２０から供給される統計情報通知パケットを一時的に蓄積するバッファメモリ２３−（Ｎ＋１）と、これらのバッファメモリに接続されたパケット蓄積制御部２４と、パケットデータ蓄積メモリ２５、入力パケットヘッダ蓄積メモリ２６Ａ、出力パケットヘッダ蓄積メモリ２６Ｂと、メモリ状態管理部２７と、ヘッダ送信制御部２８と、キューイング処理部２９と、キュー管理テーブル２１１と、パケット転送制御部２１０と、フロー統計収集部２１とから構成される。
【００３７】
各回線終端処理部２２−ｉは、入力回線ＩＣ１ｉからパケットを受信すると、パケットデータの誤り検出等のパケット終端処理を行う。各回線終端処理部２２−ｉは、データ誤りが検出された受信パケットは廃棄し、正常に受信したパケットは、バッファメモリ２３−ｉに蓄積して、パケット蓄積制御部２４にパケット受信を通知する。パケット蓄積制御部２４は、バッファメモリ２３−（Ｎ＋１）についても、統計情報通知パケットが蓄積された時、制御部１２０から信号線Ｌ２４を介してパケット受信通知を受ける。
【００３８】
パケット蓄積制御部２４は、パケット受信通知があったバッファメモリから、予め決められた選択ルールに従って受信パケットを読み出し、受信パケットに付すべき内部ヘッダ１５を生成する。この時点では、内部ヘッダ１５は、入力回線番号１５１のフィールドのみが有効データを含み、その他のフィールド１５２〜１５６は空状態となっている。これらの空状態のヘッダ情報要素は後述するように、受信側検索処理部３０および送信側検索処理部４０からの検索結果に従って補充される。入力回線番号１５１の値ｋは、受信パケットが読み出されたバッファメモリ２３−ｋ（ｋ＝１〜Ｎ＋１）から一義的に決まる。
【００３９】
パケット蓄積制御部２４は、生成した内部ヘッダ１５と、受信パケットから抽出したレイヤ２ヘッダ１１〜レイヤ４ヘッダ１３とを含む固定長ヘッダ部分を、パケットデータ管理情報として、入力パケットヘッダ蓄積メモリ２６Ａに格納する。受信パケットの残り部分である可変長のデータ部１４は、パケットデータ蓄積メモリ２５に格納される。
【００４０】
本実施例では、パケットデータ蓄積メモリ２５を固定長の複数のメモリブロックに分割しておき、各メモリブロックの空き状態（使用状態）をメモリ状態管理部２７で管理している。パケット蓄積制御部２４は、バッファメモリから１つの受信パケットを読み出すと、メモリ状態管理部２７に対して、受信パケットのデータ長に応じた個数の空きメモリブロックの割り当てを要求し、受信パケットのデータ部１４をこれらのメモリブロックに分割して格納する。
【００４１】
フロー統計収集部２１は、信号線Ｌ３６を介して受信側検索処理部３０から通知される検索結果に応じて、統計情報テーブルの統計情報を更新する。また、統計収集処理部２１は、信号線Ｌ２１を介して順側検索処理部３０内のフローエントリ管理部３４からの指令に応じて、フロー統計情報テーブル７０Ａの特定エントリに蓄積された統計情報を読み出し、これをフローエントリ管理部３４へ出力する。フローエントリ管理部３４は、上記統計情報をもとにフローエントリのエージング処理を実施する。
受信パケット処理部２０の動作については、後で詳述する。
【００４２】
図１５は、インターフェースカードＩＦＣ１内の送信パケット処理部４０の１実施例を示す。
送信パケット処理部４０は、それぞれ出力回線ＯＣ１ｉに接続された複数の回線終端処理部４２−ｉ（ｉ＝１〜Ｎ）と、パケット出力制御部４３と、パケットデータ蓄積メモリ４４と、入力パケットヘッダ蓄積メモリ４５Ａ、出力パケットヘッダ蓄積メモリ４５Ｂと、メモリ状態管理部４６と、パケット受信部４７と、ヘッダ送信制御部４８と、キューイング制御部４９と、キュー管理テーブル４１０と、フロー統計収集部４１とから構成される。
【００４３】
フロー統計収集部４１は、信号線Ｌ５６を介して送信側検索処理部５０から通知される検索結果に応じて、統計情報テーブルの統計情報を更新する。
送信パケット処理部４０の動作については、後で詳述する。
【００４４】
図１６は、受信側検索処理部３０の１実施例を示す。
受信側検索処理部３０は、信号線Ｌ２８を介して受信パケット処理部２０のヘッダ送信制御部２９に接続されたヘッダ情報蓄積部３１と、それぞれヘッダ情報蓄積部３１に接続されたフロー識別条件テーブル検索部３２、ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａを検索するテーブル検索部３３と、フローエントリ管理部３４と、サンプリング判定部３５と、信号線Ｌ３６を介してヘッダ送信制御部２８に接続された検索結果出力部３６と、フローエントリ管理部３４に付随するフロー管理テーブル３７とから構成される。
【００４５】
フロー識別条件テーブル検索部３２は、ヘッダ情報蓄積部３１から出力されるヘッダ情報に基づいてフロー識別条件テーブル６０の検索キーを生成し、検索の結果一致するエントリが存在する場合は、フロー識別条件テーブル６０から検索されたフロー識別番号を検索結果出力部３６へ出力し、検索の結果一致するエントリが存在しない場合は、フロー登録要求をフローエントリ管理部３４へ出力する。また、フローエントリ管理部３４からの指示に従って、フローテーブルエントリの追加／削除を行い、削除対象となったフローエントリの内容制御部１２０へ出力する。
【００４６】
テーブル検索部３３は、ヘッダ情報蓄積部３１が示すヘッダ情報から抽出した受信パケットの宛先ＩＰアドレスに基づいて、ルーティングテーブル８０にアクセスし、ルーティングテーブル８０から検索されたルーティング情報をフロー識別条件テーブル検索部３２、検索結果出力部３６へ通知する。
【００４７】
また、テーブル検索部３３は、ヘッダ情報蓄積部３１が示すヘッダ情報から抽出した受信パケットの複数のフィールドの値の組合せに基づいて、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａにアクセスし、Ｆｉｌｔｅｒテーブル９０Ａからパケットを転送するか廃棄するかを示す情報（以下、廃棄フラグと呼ぶ）を検索し、ＱｏＳテーブル１００Ａからパケットの装置内での転送優先度を示す情報（以下、ＱｏＳ情報と呼ぶ）および、ＱｏＳテーブル１００Ａが帯域監視機能を備える場合は、契約帯域を超過して廃棄するのか、契約帯域を遵守して転送許可するのかを示す情報（以下、帯域監視結果フラグ）を検索し、上記廃棄フラグ、ＱｏＳ情報、帯域監視結果フラグを検索結果出力部３６へ通知する。
【００４８】
検索結果出力部３６は、ヘッダ情報蓄積部３１が示すＴＴＬの値に基づいて、ＴＴＬから「１」だけ値を減算し、減算した結果が０か、１以上かを判定し、０の場合はパケットをTTL Overで廃棄すると判断する（以下、上記の処理をＴＴＬ判定と呼ぶ）。検索結果出力部３６は、さらに、テーブル検索部３３からルーティングテーブル８０の検索結果、Ｆｉｌｔｅｒテーブル９０Ａの検索結果、ＱｏＳテーブル１００Ａの検索結果を受信すると、上記のＴＴＬ判定結果も合わせて図１８で詳述する検索結果通知３６０を生成し、これを信号線Ｌ３６を介して受信パケット処理部２０のヘッダ送信制御部２８へ送信する。
【００４９】
サンプリング判定部３５は、フロー識別条件テーブルの検索を実行するか否かを、予めノードの管理者により設定されたサンプリングレートに従って判断するためのものである。装置のコストを低く抑えるために、フロー識別条件テーブル６０や、フロー統計情報テーブル７０Ａ，７０Ｂに比較的低速なメモリを使用する際、フロー識別条件テーブル６０の検索処理性能やフロー統計情報テーブル７０Ａ，７０Ｂへの統計情報の更新処理によってパケット転送性能の劣化を防止するために、適切にサンプリングレートを設定して上記フロー識別条件テーブル６０の検索処理およびフロー統計情報テーブル７０Ａ、７０Ｂへの統計情報更新処理を間欠的に実行することが可能になる。上記のサンプリングレートは、装置で１つの値を設定する構成でもよいし、パケットの受信回線毎や、送信回線毎に異なる値を設定する構成でもよい。パケットの受信回線毎に異なる値を設定する構成の場合、サンプリング判定部３５は、ヘッダ情報蓄積部３１が示すヘッダ情報のうちパケットの受信回線番号に基づき、対応するサンプリングレートを決定して、サンプリング判定を行う。また、パケットの送信回線毎に異なる値を設定する構成の場合、サンプリング判定部３５は、テーブル検索部３３によるルーティングテーブル８０の検索結果で得られる送信回線番号に基づき、対応するサンプリングレートを決定して、サンプリング判定を行う。
【００５０】
ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａへのエントリ情報の設定は、信号線Ｌ１２０Ａを介してと制御部１２０が設定することが可能である。
【００５１】
図１７は、送信側検索処理部５０の１実施例を示す。
送信側検索処理部５０は、信号線Ｌ４８を介して送信パケット処理部４０のヘッダ送信制御部４８に接続されたヘッダ情報蓄積部５１と、それぞれヘッダ情報蓄積部５１に接続されたＦｉｌｔｅｒテーブル９０Ｂ、ＱｏＳテーブル１００Ｂを検索するテーブル検索部５３と、信号線Ｌ５６を介してヘッダ送信制御部４８に接続された検索結果出力部５６とから構成される。
【００５２】
テーブル検索部５３は、ヘッダ情報蓄積部５１が示すヘッダ情報から抽出した受信パケットの複数のフィールドの値の組合せに基づいて、Ｆｉｌｔｅｒテーブル９０Ｂ、ＱｏＳテーブル１００Ｂにアクセスし、Ｆｉｌｔｅｒテーブル９０Ｂからパケットを転送するか廃棄するかを示す情報（廃棄フラグ）を検索し、ＱｏＳテーブル１００Ｂからパケットの装置内での転送優先度を示す情報（ＱｏＳ情報と呼ぶ）および、ＱｏＳテーブル１００Ｂが帯域監視機能を備える場合は、契約帯域を超過して廃棄するのか、契約帯域を遵守して転送許可するのかを示す情報（帯域監視結果フラグ）を検索し、上記廃棄フラグ、ＱｏＳ情報、帯域監視結果フラグを検索結果出力部５６へ通知する。
検索結果出力部５６は、Ｆｉｌｔｅｒテーブル９０Ｂの検索結果、ＱｏＳテーブル１００Ｂの検索結果を受信すると、図１９で詳述する検索結果通知５６０を生成し、これを信号線Ｌ５６を介して送信パケット処理部４０のヘッダ送信制御部４８へ送信する。
【００５３】
Ｆｉｌｔｅｒテーブル９０Ｂ、ＱｏＳテーブル１００Ｂへのエントリ情報の設定は、信号線Ｌ１２０Ｂを介してと制御部１２０が設定することが可能である。
次に、図１、図１４、図１５、図１６、図１７を参照して、本発明によるルータの動作について詳細に説明する。最初に、フロー識別条件テーブル６０にフロー識別条件エントリＥＮ−１、ＥＮ−２が未登録の状態において、本発明のルータR1が、フロー１に属する受信パケットを処理する場合のルータＲ１の動作について説明する。
【００５４】
パケット蓄積制御部２４は、バッファメモリ２３−１〜２３−（Ｎ＋１）の１つから受信パケットを読み出すと、内部ヘッダ１５を生成した後、受信パケットのデータ部の蓄積に必要なメモリブロックの個数を指定して、メモリ状態管理部２７にメモリブロックの割り当てを要求する。メモリ状態管理部２７は、パケットデータ蓄積メモリ２５に用意された複数のメモリブロック（メモリアドレス）について、それぞれの使用状態を管理しており、空き状態にあるメモリブロックの中から、必要個数のメモリブロック（メモリアドレス）をパケット蓄積制御部２４に割り当てる。
【００５５】
パケット蓄積制御部２４は、メモリ状態管理部２７から割り当てられたメモリアドレスに従って、入力パケットヘッダ蓄積メモリ２６Ａへのパケットヘッダ情報の書き込みと、パケットデータ蓄積メモリ２５への受信パケットデータ部の書き込みを実行する。パケット蓄積制御部２４は上記入力パケットヘッダ蓄積メモリ２６Ａへのパケットヘッダ情報の書き込み時、装置内部ヘッダ１５内のパケットデータ蓄積アドレス１５０に、割り当てられたメモリアドレスを書き込み、入力回線番号１５１に、入力した回線番号を書き込む。尚、パケットデータ蓄積メモリ２５に必要個数の空きメモリブロックが無かった場合、パケット蓄積制御部２４は、受信パケットを廃棄する。
【００５６】
パケット蓄積制御部２４は、入力パケットヘッダ蓄積メモリ２６Ａへのパケットヘッダ情報の書き込み完了時、または、パケットデータ蓄積メモリ２５へのパケットデータの書き込み完了時に、信号線Ｌ２４を介して、ヘッダ送信制御部２８にパケットの受信通知を送信する。
【００５７】
上記パケット受信通知を受信したヘッダ送信制御部２８は、入力パケットヘッダ蓄積メモリ２６Ａから、パケットヘッダ情報（内部ヘッダ１５、レイヤ２ヘッダ１１〜レイヤ４ヘッダ１３）を読み出し、信号線Ｌ２８を介して受信側検索処理部３０のヘッダ情報蓄積部３１へ転送する。また、ヘッダ送信制御部２８は、読み出した上記パケットヘッダ情報の内容を一時的に保持する。
【００５８】
図１６において、受信側検索処理部３０のヘッダ情報蓄積部３１は、ヘッダ送信制御部２８から信号線Ｌ２８を介して受信したヘッダ情報を一時的に蓄積した後、フロー識別条件テーブル検索部３２、テーブル検索部３３、フローエントリ管理部３４、検索結果出力部３６に分配する。
【００５９】
フローエントリ管理部３４は、上記ヘッダ情報を保持して、フロー識別条件テーブル検索部３２からの検索結果の受信を待つ。テーブル検索部３３は、上記ヘッダ情報からルーティングテーブル８０の検索に必要な検索キーを生成し、ルーティングテーブル８０から出力回線番号を含むルーティング情報を検索する。また、テーブル検索部３３は、同様に、上記ヘッダ情報からＦｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａの検索に必要な検索キーを生成し、Ｆｉｌｔｅｒテーブル９０Ａからパケットを転送するか廃棄するかを示す廃棄フラグを検索し、ＱｏＳテーブル１００Ａからパケットの装置内での転送優先度を示すＱｏＳ情報、および、ＱｏＳテーブル１００Ａが帯域監視機能を備える場合は、契約帯域を超過して廃棄するのか、契約帯域を遵守して転送許可するのかを示す帯域監視結果フラグを検索する。検索結果は、フロー識別条件テーブル検索部３２、サンプリング判定部３５、検索結果出力部３６に分配される。
【００６０】
サンプリング判定部３５は、ヘッダ情報蓄積部３１から必要な情報を受信して、受信パケットに対するフロー識別条件テーブルの検索を実行するサンプリングレートを決定し、上記サンプリングレートに従ってフロー識別条件テーブル６０の検索を実行するか否かを決定し、フロー識別条件テーブル検索部３２および検索結果出力部３６へ通知する。サンプリング判定部３５が、フロー識別条件テーブル検索の実行を行わないと決定した場合、フロー識別条件テーブル検索部３２はフロー識別条件テーブル６０を検索せず、検索結果出力部３６へ、処理の終了を通知する。サンプリング判定部３５が、フロー識別条件テーブル検索の実行を行うと決定した場合、フロー識別条件テーブル検索部３２はフロー識別条件テーブル６０を検索する。
【００６１】
フロー識別条件テーブル検索部３２は、サンプリング判定部３５から検索の実行を指示されると、ヘッダ情報と、必要に応じてテーブル検索部３３が出力したルーティング情報とから、フロー識別条件６１となる情報項目、すなわち、送信元ＩＰアドレス、宛先ＩＰアドレス、上位プロトコル、ＴＯＳ、送信元ポート番号、宛先ポート番号、その他の情報を抽出し、これらの情報項目の組み合せを検索キーとして、フロー識別条件テーブル６０を検索する。
【００６２】
ここでは、上記ヘッダ情報がフロー１に属するパケットのもので、且つ、フロー識別条件テーブル６０にはフロー識別条件エントリＥＮ−１、ＥＮ−２が未登録の状態を想定しているため、フローテーブル６０の検索結果として、一致するエントリが存在しない、という結果が得られる。
フロー識別条件テーブル検索部３２は、上記検索結果をフローエントリ管理部３４へ通知する。
【００６３】
フローエントリ管理部３４は、フロー識別条件テーブル検索部３２から受信した検索結果として、一致するエントリが存在しない、という結果を受信するため、ヘッダ情報蓄積部３１から受信したヘッダ情報をもつフローに関して、フロー識別条件テーブル６０に新たなフロー識別条件エントリを登録すべきものと判断する。
【００６４】
フローエントリ管理部３４は、フロー識別条件テーブル６０のエントリアドレスと、フロー識別条件番号の使用状況を管理している。この場合、フローエントリ管理部３４は、上記ヘッダ情報からフロー識別条件となる情報項目を抽出してエントリ番号ｆ１をもつ新たなフロー識別条件を生成し、このフロー識別条件と、空きエントリアドレスとを含むフロー登録指示をフロー識別条件テーブル検索部３２に与える。フロー識別条件テーブル６０に新規フロー識別条件エントリに必要な空きアドレスが無かった場合は、フローエントリ管理部３４は、後述するフローエントリ削除処理を行った後、上述したフロー登録指示を発行する。
【００６５】
フローエントリ管理部３４からフロー登録指示を受けたフロー識別条件テーブル検索部３２は、指定されたエントリアドレス、フロー識別条件に従って、フロー識別条件テーブル６０に新たなフロー識別条件エントリを追加する。ここでは、フロー１に属するパケットを受信した場合を想定しているので、上記フロー登録指示に応答して、フロー識別条件テーブル６０にエントリＥＮ−１が追加される。フロー２に属するパケットを受信した場合は、これと同様の動作によって、フロー識別条件テーブル６０にエントリＥＮ−２が追加されることになる。
【００６６】
検索結果出力部３６は、テーブル検索部３３からルーティング情報、廃棄フラグ、ＱｏＳ情報を受信すると、検索結果通知３６０を生成し、信号線Ｌ３６を介して受信パケット処理部２０のヘッダ送信制御部２８に送信する。検索結果通知３６０は、図１８に示すように、出力回線番号３６１、装置内ＱｏＳ情報３６２、パケット処理種別３６３、フロー統計収集指示フラグ３６４、フロー識別番号３６５、廃棄要因３６６、その他の検索結果情報３６７から構成される。
【００６７】
ここで、パケット処理種別３６３は、受信パケットを転送するか廃棄するかを示す情報であり、Ｆｉｌｔｅｒテーブル９０Ａの検索結果である廃棄フラグや、検索結果出力部３６で行われるＴＴＬ判定の結果、パケットを廃棄する場合は「廃棄」を示す値が格納され、パケットを転送する場合は「転送」を示す値が格納される。フロー統計収集指示フラグ３６４は、フロー識別条件テーブル６０の検索処理を実施したか否かを示す情報であり、受信パケット処理部２０のフロー統計収集部に対してフロー統計収集処理を実施するか否かを指示する。フロー識別番号３６５は、フロー識別条件テーブル６０の検索結果であるフロー識別番号が格納される。廃棄要因３６６は、検索結果出力部３６が、パケットを廃棄すると判定した場合、その判定の要因が格納される。
【００６８】
出力回線番号３６１とその他の情報３６７には、通常の検索結果通知の場合、テーブル検索部３３から受信したルーティング情報から抽出された出力回線番号と、その他の情報が設定される。
本例では、以下、サンプリング判定部３５での判定で、フロー識別条件テーブル６０の検索を実施すると判定され、Ｆｉｌｔｅｒテーブル９０Ａの検索の結果、「転送」という結果を得る場合について説明する。この場合、検索結果出力部３６は、出力回線番号３６１、装置内ＱｏＳ情報３６２、フロー識別番号３６５、その他の検索結果情報３６７が有効データを含み、パケット処理種別３６３が「転送」を示す値を格納し、フロー統計収集指示フラグが「統計収集指示」を示す値を格納し、廃棄要因３６６が無効データを格納した検索結果３６０を生成して、信号線Ｌ３６に送出する。
【００６９】
図１４に戻って、ヘッダ送信制御部２８は、信号線Ｌ３６を介して検索結果３６０を受信すると、既にメモリ２６Ａから読み出してあるパケットヘッダ情報内の装置内ヘッダ１５に、出力回線番号１５２、装置内ＱｏＳ情報１５３、パケット処理種別１５４、フロー統計収集指示フラグ１５５、フロー識別番号１５６、廃棄要因１５７、として、上記検索結果３６０が示す出力回線番号３６１、装置内ＱｏＳ情報３６２、パケット処理種別３６３、フロー統計収集指示フラグ３６４、フロー識別番号３６５、廃棄要因３６６の内容を書き込む。更新されたパケットヘッダ情報はキューイング制御部２９へ転送される。更新されたパケットヘッダ情報を受信したキューイング制御部２９は、受信したパケットヘッダ情報内の装置内部ヘッダ内のパケット処理種別１５４の値と、キュー管理テーブル２１１を基にして、上記パケットを装置内ＱｏＳ情報に対応したキューにキューイングすることが可能か否かを判定する。
【００７０】
図１９は、キュー管理テーブル２１１の１実施例を示す。キュー管理テーブル２１１は、装置内ＱｏＳ番号と、上記装置内ＱｏＳ番号に対応するキューにキューイングされているパケット数（以下、キュー長と呼ぶ）の組を複数所持する。
以下ではまず、図１４の受信パケット処理部２０のキューイング制御部２９によるキューイング判定においてキューイング可能な場合について説明する。
【００７１】
キューイング制御部２９は、上記パケット処理種別１５４が「転送」を示す値であることを判定すると、上記キュー管理テーブル２１１から、上記更新されたパケットヘッダ情報内の装置内ＱｏＳ情報に対応したキューのキュー長を読み出し、キューイング制御部２９が別途キュー毎に所持しているキューイング可能な最大パケット数（以下、最大キュー長）と比較する。本例の場合、上記比較の結果、キュー長が最大キュー長よりも小さいので、キューイング制御部２９はキューには空きがあると判断して、上記キュー長に「１」を加算し、上記パケットヘッダ情報を出力パケットヘッダ蓄積メモリ２６Ｂへ書き込む。尚、必要に応じて、検索結果３６０が示すその他の情報３６７をパケットヘッダ情報の内部ヘッダ１５の一部として追加してもよい。その後、キューイング制御部２９は、上記装置内部ヘッダ１５のうちのフロー統計収集指示フラグ１５５の値を検査し、上記フラグの値が「統計収集指示」であると判断すると、上記装置内部ヘッダ情報１５をフロー統計収集部２１へ通知する。
【００７２】
装置内部ヘッダ情報１５を受信したフロー統計収集部２１は、上記装置内部ヘッダ情報１５内のフロー識別番号ｆ１に対応する統計情報７２を読出して更新する。本例の場合はパケットを転送するので、フロー統計収集部２１は、通過パケット数７２１と通過バイト数７２２を更新する。また、フロー統計収集部２１は、入力回線番号７２５、出力回線番号７２６にそれぞれ、装置内部ヘッダ情報１５内の入力回線番号１５１、出力回線番号１５２の値を書き込む。また、本例の場合はパケットを転送するので、フロー統計収集部２１は廃棄要因７２７を変更しない。
【００７３】
パケット転送制御部２１０は、予め設定されたスケジュールに従い、複数の装置内ＱｏＳ情報に対応するキューからパケットを読み出してクロスバスイッチ１１０へ転送する。具体的には、パケット転送制御部２１０は予め設定されたスケジュールに従って、キュー管理テーブル２１１の対応するキューのキュー長を読み出す。キュー長が「０」でない場合はキューにパケットがキューイングされていると判断してパケットの送信処理を開始する。パケット転送制御部２１０は、出力パケットヘッダ蓄積メモリ２６Ｂから、キューにキューイングされているパケットに対応する出力パケットヘッダを読出し、出力パケットヘッダの装置内部ヘッダ情報１５内のパケットデータ蓄積アドレスに基づき、パケットデータ蓄積メモリ２５から対応するパケットデータを読み出してクロスバスイッチ１１０へ送信する。パケットを送信した後、パケット転送制御部２１０は、キュー管理テーブル２１１内の対応するキューのキュー長を「１」だけ減算する。また、パケット転送制御部２１０はメモリ状態管理部２７にパケットデータ蓄積アドレスと共にバッファ開放要求を通知する。上記バッファ開放要求を受信したメモリ状態管理部２７は、上記パケットデータ蓄積アドレスに対応するメモリブロックを空き状態にすることでバッファを開放する。
【００７４】
図１５の送信パケット処理部４０のパケット受信部４７は、クロスバスイッチ１１０からパケットを受信すると、上記パケットを回線方向へ送信するパケット（以下、送信パケット）として扱い、データ部の蓄積に必要なメモリブロックの個数を指定して、メモリ状態管理部４６にメモリブロックの割り当てを要求する。メモリ状態管理部４６は、パケットデータ蓄積メモリ４４に用意された複数のメモリブロック（メモリアドレス）について、それぞれの使用状態を管理しており、空き状態にあるメモリブロックの中から、必要個数のメモリブロック（メモリアドレス）をパケット受信部４７に割り当てる。
【００７５】
パケット受信部４７は、メモリ状態管理部４６から割り当てられたメモリアドレスに従って、入力パケットヘッダ蓄積メモリ４５Ａへのパケットヘッダ情報の書き込みと、パケットデータ蓄積メモリ４４への受信パケットデータ部の書き込みを実行する。パケット受信部４７は上記入力パケットヘッダ蓄積メモリ４５Ａへのパケットヘッダ情報の書き込み時、装置内部ヘッダ１５内のパケットデータ蓄積アドレス１５０に、割り当てられたメモリアドレスを書き込む。尚、パケットデータ蓄積メモリ４４に必要個数の空きメモリブロックが無かった場合、パケット受信部４７は、送信パケットを廃棄する。
【００７６】
パケット受信部４７は、入力パケットヘッダ蓄積メモリ４５Ａへのパケットヘッダ情報の書き込み完了時、または、パケットデータ蓄積メモリ４４へのパケットデータの書き込み完了時に、ヘッダ送信制御部４８にパケットの受信通知を送信する。
【００７７】
上記パケット受信通知を受信したヘッダ送信制御部４８は、入力パケットヘッダ蓄積メモリ４５Ａから、パケットヘッダ情報（内部ヘッダ１５、レイヤ２ヘッダ１１〜レイヤ４ヘッダ１３）を読み出し、信号線Ｌ４８を介して送信側検索処理部５０のヘッダ情報蓄積部５１へ転送する。また、ヘッダ送信制御部４８は、読み出した上記パケットヘッダ情報の内容を一時的に保持する。
【００７８】
図１７において、送信側検索処理部５０のヘッダ情報蓄積部５１は、ヘッダ送信制御部４８から信号線Ｌ４８を介して受信したヘッダ情報を一時的に蓄積した後、テーブル検索部５３に分配する。
テーブル検索部５３は、上記ヘッダ情報からＦｉｌｔｅｒテーブル９０Ｂ、ＱｏＳテーブル１００Ｂの検索に必要な検索キーを生成し、Ｆｉｌｔｅｒテーブル９０Ｂからパケットを転送するか廃棄するかを示す廃棄フラグを検索し、ＱｏＳテーブル１００Ｂからパケットの装置内での転送優先度を示すＱｏＳ情報、および、ＱｏＳテーブル１００Ｂが帯域監視機能を備える場合は、契約帯域を超過して廃棄するのか、契約帯域を遵守して転送許可するのかを示す帯域監視結果フラグを検索する。検索結果は、検索結果出力部５６に分配される。
【００７９】
検索結果出力部５６は、テーブル検索部５３から廃棄フラグ、ＱｏＳ情報を受信すると、検索結果通知５６０を生成し、信号線Ｌ５６を介して受信パケット処理部４０のヘッダ送信制御部４８に送信する。検索結果通知５６０は、検索結果３６０と同様である。
本例では、Ｆｉｌｔｅｒテーブル９０Ｂの検索の結果、「転送」という結果を得る場合について説明する。この場合、検索結果出力部５６は、装置内ＱｏＳ情報３６２、その他の検索結果情報３６７が有効データを含み、パケット処理種別３６３が「転送」を示す値を格納し、出力回線番号３６１、フロー識別番号３６５、フロー統計収集指示フラグ、廃棄要因３６６が無効データを格納した検索結果５６０を生成して、信号線Ｌ５６に送出する。
【００８０】
図１５に戻って、ヘッダ送信制御部４８は、信号線Ｌ５６を介して検索結果５６０を受信すると、既にメモリ４５Ａから読み出してあるパケットヘッダ情報内の装置内ヘッダ１５に、装置内ＱｏＳ情報１５３、パケット処理種別１５４、廃棄要因１５７、として、上記検索結果５６０が示す装置内ＱｏＳ情報３６２、パケット処理種別３６３、廃棄要因３６６の内容を書き込む。それ以外の値は、受信パケット処理部で格納された値のままに保持される。更新されたパケットヘッダ情報はキューイング制御部４９へ転送される。更新されたパケットヘッダ情報を受信したキューイング制御部４９は、受信したパケットヘッダ情報内の装置内部ヘッダ内のパケット処理種別１５４の値と、キュー管理テーブル４１０を基にして、上記パケットを装置内ＱｏＳ情報に対応したキューにキューイングすることが可能か否かを判定する。ここでキュー管理テーブル４１０の構成は図１９で説明したものと同等である。
【００８１】
キューイング制御部４９は、上記パケット処理種別１５４が「転送」を示す値であることを判定すると、上記キュー管理テーブル４１０から、上記更新されたパケットヘッダ情報内の装置内ＱｏＳ情報に対応したキューのキュー長を読み出し、キューイング制御部４９が別途キュー毎に所持しているキュー長と比較する。本例の場合、上記比較の結果、キュー長が最大キュー長よりも小さいので、キューイング制御部４９はキューには空きがあると判断して、上記キュー長に「１」を加算し、上記パケットヘッダ情報を出力パケットヘッダ蓄積メモリ４５Ｂへ書き込む。尚、必要に応じて、検索結果５６０が示すその他の情報３６７をパケットヘッダ情報の内部ヘッダ１５の一部として追加してもよい。その後、キューイング制御部４９は、上記装置内部ヘッダ１５のうちのフロー統計収集指示フラグ１５５の値を検査し、上記フラグの値が「統計収集指示」であると判断すると、上記装置内部ヘッダ情報１５をフロー統計収集部４１へ通知する。
【００８２】
装置内部ヘッダ情報１５を受信したフロー統計収集部４１は、上記装置内部ヘッダ情報１５内のフロー識別番号ｆ１に対応する統計情報７２を読出して更新する。本例の場合はパケットを転送するので、フロー統計収集部４１は、通過パケット数７２１と通過バイト数７２２を更新する。また、フロー統計収集部４１は、入力回線番号７２５、出力回線番号７２６にそれぞれ、装置内部ヘッダ情報１５内の入力回線番号１５１、出力回線番号１５２の値を書き込む。また、本例の場合はパケットを転送するので、フロー統計収集部２１は廃棄要因７２７を変更しない。
【００８３】
パケット出力制御部４３は、予め設定されたスケジュールに従い、複数の装置内ＱｏＳ情報に対応するキューからパケットを読み出して適切な出力回線へ転送する。具体的には、パケット出力制御部４３は予め設定されたスケジュールに従って、キュー管理テーブル４１０の対応するキューのキュー長を読み出す。キュー長が「０」でない場合はキューにパケットがキューイングされていると判断してパケットの送信処理を内部ヘッダ情報１５内のパケットデータ蓄積アドレスに基づき、パケットデータ蓄積メモリ４４から対応するパケットデータを読み出して回線終端処理部４２へ送信する。パケットを送信した後、パケット出力制御部４３は、キュー管理テーブル４１０内の対応するキューのキュー長を「１」だけ減算する。また、パケット出力制御部４３は、メモリ状態管理部４６にパケットデータ蓄積アドレスと共にバッファ開放要求を通知する。上記バッファ開放要求を受信したメモリ状態管理部４６は、上記パケットデータ蓄積アドレスに対応するメモリブロックを空き状態にすることでバッファを開放する。
【００８４】
次に、図１４の受信パケット処理部２０のキューイング制御部２９によるキューイング判定においてキューイングができない場合について説明する。
キューイング制御部２９は、上記パケット処理種別１５４が「転送」を示す値であることを判定すると、上記キュー管理テーブル２１１から、上記更新されたパケットヘッダ情報内の装置内ＱｏＳ情報に対応したキューのキュー長を読み出し、キューイング制御部２９が別途キュー毎に所持しているキューイング可能な最大キュー長と比較する。本例の場合、上記比較の結果、キュー長が最大キュー長に等しくなるので、キューイング制御部２９は、キューには空きが無いと判断して、パケットヘッダ情報を廃棄する。また、キューイング制御部２９は、メモリ状態管理部２７にパケットデータ蓄積アドレスと共にバッファ開放要求を通知する。上記バッファ開放要求を受信したメモリ状態管理部２７は、上記パケットデータ蓄積アドレスに対応するメモリブロックを空き状態にすることでバッファを開放する。その後、キューイング制御部２９は、上記装置内部ヘッダ１５のうちのフロー統計収集指示フラグ１５５の値を検査し、上記フラグの値が「統計収集指示」であると判断すると、装置内部ヘッダ内のパケット処理種別１５４の値を「転送」から「廃棄」に変更し、廃棄要因１５７にパケットを廃棄した要因として「キューあふれ」を示す値を書込み、上記装置内部ヘッダ情報１５をフロー統計収集部２１へ通知する。
【００８５】
装置内部ヘッダ情報１５を受信したフロー統計収集部２１は、上記装置内部ヘッダ情報１５内のフロー識別番号ｆ１に対応する統計情報７２を読出して更新する。本例の場合はパケットを廃棄するので、フロー統計収集部２１は、廃棄パケット数７２３と通過バイト数７２４を更新する。また、フロー統計収集部２１は、入力回線番号７２５、出力回線番号７２６にそれぞれ、装置内部ヘッダ情報１５内の入力回線番号１５１、出力回線番号１５２の値を書き込む。また、本例の場合は「キューあふれ」という要因でパケットを廃棄するので、フロー統計収集部２１は廃棄要因７２７に「キューあふれ」を示す値を書き込む。
【００８６】
次に、図１６のサンプリング判定部３５での判定で、フロー識別条件テーブル６０の検索を実施すると判定され、受信側インターフェースカードでのＦｉｌｔｅｒテーブル９０Ａの検索の結果、Ｆｉｌｔｅｒで廃棄と判定される場合の処理について説明する。
【００８７】
図１４の受信パケット処理部２０のヘッダ送信制御部２８がパケットヘッダ情報を図１６の受信側検索処理部３０へ送信し、受信側検索処理部３０のテーブル検索部３３が各テーブルを検索するまでは上記で説明したのと同一である。本例では、Ｆｉｌｔｅｒテーブル９０Ａの検索の結果、「廃棄」という結果を得る。この場合、図１６の検索結果出力部３６は、出力回線番号３６１、装置内ＱｏＳ情報３６２、フロー識別番号３６５、その他の検索結果情報３６７が有効データを含み、パケット処理種別３６３が「廃棄」を示す値を格納し、フロー統計収集指示フラグが「統計収集指示」を示す値を格納し、廃棄要因３６６が「Ｆｉｌｔｅｒ廃棄」を示す値を格納した検索結果３６０を生成して、信号線Ｌ３６に送出する。
【００８８】
図１４に戻って、ヘッダ送信制御部２８は、信号線Ｌ３６を介して検索結果３６０を受信し、検索結果３６０の内容をメモリ２６Ａから読み出してあるパケットヘッダ情報内の装置内部ヘッダ１５に書き込み、上記装置内部ヘッダ１５をキューイング制御部２９へ転送する。
【００８９】
上記装置内部ヘッダ１５を受信したキューイング制御部２９は、装置内部ヘッダ１５内のパケット処理種別が「廃棄」であることを判定して、メモリ状態管理部２７にパケットデータ蓄積アドレスと共にバッファ開放要求を通知する。上記バッファ開放要求を受信したメモリ状態管理部２７は、上記パケットデータ蓄積アドレスに対応するメモリブロックを空き状態にすることでバッファを開放する。その後、キューイング制御部２９は、上記装置内部ヘッダ１５のうちのフロー統計収集指示フラグ１５５の値を検査し、上記フラグの値が「統計収集指示」であると判断すると、上記装置内部ヘッダ情報１５をフロー統計収集部２１へ通知する。
装置内部ヘッダ情報１５を受信したフロー統計収集部２１は、上記装置内部ヘッダ情報１５内のフロー識別番号ｆ１に対応する統計情報７２を読出して更新する。本例の場合はパケットを廃棄するので、フロー統計収集部２１は、廃棄パケット数７２３と通過バイト数７２４を更新する。また、フロー統計収集部２１は、入力回線番号７２５、出力回線番号７２６にそれぞれ、装置内部ヘッダ情報１５内の入力回線番号１５１、出力回線番号１５２の値を書き込む。また、本例の場合は「Ｆｉｌｔｅｒ廃棄」という要因でパケットを廃棄するので、フロー統計収集部２１は廃棄要因７２７に「Ｆｉｌｔｅｒ廃棄」を示す値を書き込む。
【００９０】
以上、フロー識別条件テーブル６０にフロー識別条件エントリＥＮ−１、ＥＮ−２が未登録の状態におけるルータの動作について説明した。次に、フロー識別条件テーブル６０に統計収集用のフローエントリＥＮ−１が既に登録された状態で、パケット蓄積制御部２４が、フロー１に属する受信パケットを処理した場合のルータＲ１の動作について説明する。
【００９１】
ヘッダ送信制御部２８が、受信パケットのヘッダ情報を受信側検索処理部３０に転送してから、受信側検索検索処理部３０で、フロー識別条件テーブル検索部３２がフロー識別条件テーブル６０を検索するまでの動作は、フローエントリＥＮ−１が未登録の場合と同様である。今回は、フロー識別条件テーブル６０にフローエントリＥＮ−１が既に登録済みの状態となっているので、フロー識別条件テーブル検索部３２は、フロー識別条件テーブル６０の検索結果として、一致するエントリが存在し、対応するフロー識別番号が「ｆ１」という結果を得る。フロー識別条件テーブル検索部３２は、検索結果出力部３６へ、上記フロー識別番号を通知する。
検索結果出力部３６の動作と、受信パケット処理部２０のその後の動作は、前述したフロー識別条件エントリＥＮ−１が未登録の場合と同様である。
【００９２】
次に、フローエントリ管理部３４が行うフロー識別条件テーブル６０からのエントリの削除動作について説明する。
フローエントリ管理部３４は、フロー統計情報に基づいてパケットの受信状況を監視し、パケット受信が所定時間以上途絶えたフロー識別条件エントリをフロー識別条件テーブル６０から削除する。フローエントリ管理部３４は、空きエントリ領域がない状態で、フロー識別条件テーブル６０に新たなフロー識別条件エントリを登録する必要がある時も、上記削除対象エントリの中から特定のエントリを選択して、フロー識別条件テーブル６０から削除する。
【００９３】
削除対象となるフロー情報は、フロー管理テーブル３７に登録され、パケットの受信状況が定期的に監視される。フロー管理テーブル３７は、例えば、図２０に示すように、削除対象となる各エントリについて、フロー識別番号３７１と、フロー識別条件テーブル６０におけるエントリアドレス３７２と、パケット数３７３、更新時刻３７４、非更新回数３７５を示している。ここで、パケット数３７３は、削除対象フローの通信状態を監視するために選ばれた代表的な統計情報であり、パケット数に代りにバイト数を監視対象にしてもよい。
【００９４】
フローエントリ管理部３４は、フロー管理テーブル３７に登録されたフロー識別番号をもつ各パケットフローについて、信号線Ｌ２１を経由し、受信パケット処理部２０のフロー統計収集部２１を介して、一定時間間隔でフロー統計情報テーブル７０Ａから通過パケット数７２１と廃棄パケット数７２３の最新値を読み出して合計し、フロー管理テーブル３７が示す前回監視時のパケット数３７３と比較する。最新パケット数の合計値が前回値と異なる場合は、パケット数３７３を最新値の合計値に置き換えると共に、更新時刻３７４を現在時刻に書き換える。最新パケット数が前回値と同一の場合は、更新時刻３７４を変更することなく、非更新回数３７５の値をインクリメントする。非更新回数３７５は、パケット数３７３の更新の都度、初期値に戻すようにしてもよい。
【００９５】
フローエントリ管理部３４は、上記インクリメントによって非更新回数が所定の閾値に達したフローエントリを不要エントリと判断し、制御部１２０に対して、フロー識別番号を指定して不要フロー識別条件エントリの削除と、対応する統計情報エントリの削除を指示する。
【００９６】
フローエントリ管理部３４は、フロー識別条件テーブル検索部３２からのエントリ登録指示の受信によって、フローテーブル６０に新たなフローエントリを追加する必要が生じた時、もし、フロー識別条件テーブル６０に空き領域がなかった場合は、フロー管理テーブル３７から更新時刻３７４が最も旧いエントリを不要フローエントリとして選択し、制御部１２０に対して、上記と同様のエントリ削除を指示する。
【００９７】
制御部１２０は、フローエントリ管理部３４から不要フローエントリの削除指示を受信すると、フロー識別番号を基に、各インターフェースカードの受信パケット処理部２０に付属するフロー統計情報テーブル７０Ａと、送信パケット処理部４０に付属するフロー統計情報テーブル７０Ｂから、上記フロー識別番号に相当するフローの統計情報を全て読み出し、廃棄パケット数と廃棄バイト数は、フロー統計情報テーブル７０Ａ、７０Ｂから読み出した値を合計して改めて廃棄パケット数と廃棄バイト数として、制御部１２０内部に蓄積する。その後、制御部１２０は、当該フロー識別番号に対応するフローの統計情報を削除し、フローエントリ管理部３４へ統計削除終了を通知する。上記統計削除終了通知を受信したフローエントリ管理部３４は、フロー識別条件テーブル検索部３２に対してフロー識別条件エントリの削除を指示する。上記フロー識別条件エントリの削除指示を受信したフロー識別条件テーブル検索部３２は、フロー識別条件テーブル６０から当該フロー識別条件エントリを削除し、フローエントリ管理部３４へフロー識別条件エントリ削除終了を通知する。上記フロー識別条件エントリ削除終了を受信したフローエントリ管理部３４は、フロー管理テーブルから対応するフロー識別条件を削除する。
【００９８】
制御部１２０は、フロー識別条件エントリと対応するフロー統計情報の削除に伴ってフローエントリ管理部３４から受信したフロー識別番号と、フロー統計情報テーブル７０Ａ、７０Ｂから読み出した統計情報（以下、これら２種類の情報を併せてフロー情報と呼ぶ）をメモリに保持する。制御部１２０に予め指定されたフロー数分のフロー情報が蓄積された時点で、制御部１２０は、メモリに保持した複数のフロー情報を読み出し、予め設定されたカプセルヘッダ情報を利用して、統計情報通知パケット３００を生成する。制御部１２０は、生成した統計情報通知パケット３００を信号線Ｌ２１０を介して受信パケット処理部２０のパケット一時蓄積メモリ内に書き込むと共に、パケット蓄積制御部２４に対してパケットの受信通知を出力する。
【００９９】
統計情報通知パケット３００は、例えば、図２１に示すように、ヘッダ３０１と、複数のフローレコード３０２（３０２−１〜３０２−Ｎ）とからなる。ヘッダ３０１は、宛先ＩＰアドレスとしてコレクタ装置Ｃ１のＩＰアドレスを含む。
【０１００】
本発明の統計情報通知パケット３００の１実施例では、各フローレコード３０２は、フロー識別子３０３、サンプリングレート３０４、フロー識別ヘッダ情報３０５と、通過パケット数３０６Ａ、通過バイト数３０６Ｂ、廃棄パケット数３０６Ｃ、廃棄バイト数３０６Ｄ、廃棄要因３０６Ｅ、廃棄箇所３０６Ｆ、出力回線番号３０６Ｇ、入力回線番号３０６Ｈ、その他の情報３０６Ｉを含む。情報項目３０６Ａ〜３０６Ｈには、フロー統計情報テーブルから読み出した統計情報が設定される。また、廃棄箇所３０６Ｆには制御部１２０がフロー統計情報を収集した箇所（インターフェースカード番号や、送信側のフロー統計情報テーブル７０Ａか送信側のフロー統計情報テーブル７０Ｂかの区別など）を示す値が格納される。また、フロー識別子３０３にはフロー識別番号６２、サンプリングレート３０４にはサンプリング判定部３５に設定される所定のサンプリングレート、フロー識別ヘッダ情報３０５には、フロー識別条件６１が適用される。コレクタ装置は、上記統計情報通知パケットを受信した時、各フローレコードが示すサンプリングレート３０４から、ネットワーク上で実際に通信されているパケット数を推定できる。また、コレクタ装置は、通過パケット数、通過バイト数に加えて廃棄パケット数、廃棄バイト数および廃棄箇所、廃棄要因から、廃棄要因と廃棄箇所を特定することできる。
【０１０１】
制御部１２０から信号線Ｌ１２０に出力された統計情報通知パケット３００は、受信パケット処理部２０のバッファメモリ２３−（Ｎ＋１）に一時的に蓄積され、信号線Ｌ１２０に出力されたパケット受信通知は、パケット蓄積制御部２４に入力される。従って、パケット蓄積制御部２４は、バッファメモリ２３−（Ｎ＋１）に蓄積された統計情報通知パケット３００を他のバッファメモリ２３−１〜２３−Ｎに蓄積された通常の受信パケットと同様に扱うことができる。
【０１０２】
パケット蓄積制御部２４は、バッファメモリ２３−（Ｎ＋１）から統計情報通知パケット３００を読み出すと、ネットークからの受信パケットの処理時と同様、内部ヘッダ１５を生成し、メモリ状態管理部２７に必要個数のメモリブロックアドレスを要求し、内部ヘッダ１５とヘッダ３０１を入力パケットヘッダ蓄積メモリ２６Ａに蓄積し、統計情報通知パケット３００のデータ部（フローレコード３０２−１〜３０２−Ｎ）を固定長の複数のブロックに分割して、パケットデータ蓄積メモリ２５に蓄積し、ヘッダ送信制御部２８にパケット受信通知を出力する。
【０１０３】
ヘッダ送信制御部２８と検索処理部３０の動作は、通常の受信パケット処理時と同様であり、通知パケット３００のヘッダ情報は、ネットワーク受信パケットのヘッダ情報と同様に処理される。その結果、統計情報通知パケット３００は、ルーティングテーブルの検索結果が示す出力回線番号１５２を含む内部ヘッダを付した形で、送信パケット処理部４０に転送され、送信パケット処理部４０からコレクタ装置との接続回線に送出される。
【０１０４】
次に、図２２と図２４を用いて本発明のルータの動作を説明する。
まず、受信パケット処理部２０がパケットを受信する（ｓ０１）。その後受信パケット処理部２０が装置内部ヘッダ１５を付与したヘッダ情報を受信側検索処理部３０へ送信する（ｓ０２）。ヘッダ情報を受信した受信側検索処理部３０は、パケットのヘッダ情報から検索キーを生成し、ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａを検索し、検索結果を決定する（ｓ０３）。次に検索処理部２０は、上記パケットのヘッダ情報から検索キーを生成し、フロー識別条件テーブル６０を検索する（ｓ０４）。上記フロー識別条件テーブル６０の検索の結果を判定し（ｓ０５）、検索キーに一致するエントリが有る場合（Ｃ０５−１）、処理ステップｓ０９へ移る。検索キーに一致するエントリが無い場合（Ｃ０５−２）、フローエントリ管理部３４はフロー識別条件テーブル６０に空きエントリがあるかを判断する（ｓ０６）。空きエントリがある場合は、処理ステップｓ０８へ移る。空きエントリが無い場合、フローエントリ管理部３４はフロー管理テーブル３７を参照して最も参照されていないエントリを決定し、上記エントリを削除して空きエントリを生成する（ｓ０７）。次に受信側検索処理部３０は、パケットのヘッダ情報からフロー条件を生成し、さらにフロー識別番号を割り当てて、上記フロー条件とフロー識別番号の組合せをフロー識別条件テーブル６０に登録する（ｓ０８）。
【０１０５】
次に受信側検索処理部３０は、ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａの結果とフロー識別番号を検索結果として受信パケット処理部２０へ送信する（ｓ０９）。上記検索結果を受信した受信パケット処理部２０は、ルーティングテーブル８０、Ｆｉｌｔｅｒテーブル９０Ａ、ＱｏＳテーブル１００Ａの検索結果を基にしてパケットのキューイング判定を行う。検索結果およびキュー長の状態を検査し（ｓ１１）、転送と判定される場合（ｃ１１−１）は、受信パケット処理部２０は、フロー統計情報テーブル７０Ａのフロー識別番号に対応するエントリの統計情報のうち、通過パケット数、通過バイト数を更新する（ｓ１２）。その後、受信パケット処理部２０は、受信パケットをクロスバスイッチ１１０へ送信する（ｓ１３）。処理ステップｓ１１の結果、廃棄と判定される場合（ｃ１１−２）は、受信パケット処理部２０は、フロー統計情報テーブル７０Ａのフロー識別番号に対応するエントリの統計情報のうち、廃棄パケット数、廃棄バイト数を更新し、廃棄要因を書き込む（ｓ１４）。その後、受信パケット処理部２０は、受信パケットを廃棄する。
【図面の簡単な説明】
【０１０６】
【図１】本発明の統計収集機能を備えるルータＲ１の１実施例を示す構成図。
【図２】本発明の統計収集装置が適用される通信ネットワークの１例を示す図。
【図３】図１の通信ネットワークで通信されるパケットのフォーマットを示す図。
【図４】ＩＰｖ４パケットのヘッダフォーマットを示す図。
【図５】ＩＰｖ６パケットのヘッダフォーマットを示す図。
【図６】ＴＣＰのヘッダフォーマットを示す図。
【図７】図７におけるＴＣＰフラグ１３３の詳細を示す図。
【図８】ＵＤＰヘッダのフォーマットを示す図。
【図９】図１のルータＲ１で収集されるフロー識別条件テーブルの１例を示す図。
【図１０】図１のルータＲ１で収集される統計情報の１例を示す図。
【図１１】本発明のルータＲ１と管理端末１３００との接続関係の１例を示す図。
【図１２】本発明のルータＲ１と管理端末１３００との接続関係の他の例を示す図。
【図１３】本発明のルータの内部で扱われる内部パケットのフォーマットの１例を示す図。
【図１４】図１の受信パケット処理部２０の１実施例を示すブロック図。
【図１５】図１の送信パケット処理部４０の１実施例を示すブロック図。
【図１６】図１の受信側検索処理部３０の１実施例を示すブロック図。
【図１７】図１の送信側検索処理部５０の１実施例を示すブロック図。
【図１８】図１６の検索結果出力部３６が出力する検索結果通知３６０の１例を示す図。
【図１９】図１４のキュー管理テーブル２１１の１例を示す図。
【図２０】図１６のフロー管理テーブル４９の１例を示す図。
【図２１】図１の制御部が出力する統計情報通知パケット３００のフォーマットの１例を示す図。
【図２２】図１のルータＲ１がパケットを受信した際の動作の１例を示すフローチャート。
【図２３】図１のルータＲ１がパケットを受信した際の動作の１例を示すフローチャートのつづき。
【符号の説明】
【０１０７】
Ｓ１、Ｓ２：サーバ、Ｒ１〜Ｒ３：ルータ、Ｔ１〜Ｔ４：端末、Ｃ１：コレクタ装置、
２０：受信パケット処理部、３０：受信側検索処理部、４０：送信パケット処理部、５０：送信側検索処理部、６０：フロー識別条件テーブル、７０：フロー統計情報テーブル、８０：ルーティングテーブル、９０：Ｆｉｌｔｅｒテーブル、１００：ＱｏＳテーブル、１１０：クロスバスイッチ、１２０：制御部、２１：フロー統計収集部（受信側）４１：フロー統計収集部（送信側）、３２：フロー識別条件テーブル検索部、３３：テーブル検索部（受信側）、３４：フローエントリ管理部、３５：サンプリング判定部、３６：検索結果出力部（受信側）、５３：テーブル検索部（送信側）、５６：検索結果出力部。
【図１】
2006254134.tif 000003
【図２】
2006254134.tif 000004
【図３】
2006254134.tif 000005
【図４】
2006254134.tif 000006
【図５】
2006254134.tif 000007
【図６】
2006254134.tif 000008
【図７】
2006254134.tif 000009
【図８】
2006254134.tif 000010
【図９】
2006254134.tif 000011
【図１０】
2006254134.tif 000012
【図１１】
2006254134.tif 000013
【図１２】
2006254134.tif 000014
【図１３】
2006254134.tif 000015
【図１４】
2006254134.tif 000016
【図１５】
2006254134.tif 000017
【図１６】
2006254134.tif 000018
【図１７】
2006254134.tif 000019
【図１８】
2006254134.tif 000020
【図１９】
2006254134.tif 000021
【図２０】
2006254134.tif 000022
【図２１】
2006254134.tif 000023
【図２２】
2006254134.tif 000024
【図２３】
2006254134.tif 000025