(57)【要約】【課題】所定の時間範囲における統計を取得する。【解決手段】フレームを転送する通信装置であって、前記通信装置の動作を制御する制御部と、フレームを入出力するインターフェース部と、入力されたフレームを処理する複数のフレーム処理部とを備え、前記各フレーム処理部は、処理されるフレームの統計を記録する複数の記憶領域と、前記統計を記録する一つの記憶領域を決定し、前記決定された記憶領域を特定するための識別情報を前記入力されたフレームに付与する識別子付与部と、当該フレームの統計処理の結果を用いて、前記識別情報によって特定される記憶領域に記録された統計を更新する統計処理部と、を有する。【選択図】図１
2014158093.tif 000002
【特許請求の範囲】
【請求項１】
フレームを転送する通信装置であって、
前記通信装置の動作を制御する制御部と、フレームを入出力するインターフェース部と、入力されたフレームを処理する複数のフレーム処理部とを備え、
前記各フレーム処理部は、
処理されるフレームの統計を記録する複数の記憶領域と、
前記統計を記録する一つの記憶領域を決定し、前記決定された記憶領域を特定するための識別情報を前記入力されたフレームに付与する識別子付与部と、
当該フレームの統計処理の結果を用いて、前記識別情報によって特定される記憶領域に記録された統計を更新する統計処理部と、を有することを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記制御部は、前記統計を記録する記憶領域の切り替えを前記識別子付与部に指示し、
前記識別子付与部は、前記制御部から送信された切り替えの指示によって、前記識別情報を決定することを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記各フレーム処理部は、前記処理すべきフレームのうち一連のフレームを識別し、前記識別された一連のフレームの統計処理が完了した後、前記統計を記録する記憶領域を変更し、
前記制御部は、前記統計を記録する記憶領域の切り替え後に、前記統計が記録される記憶領域と異なる記憶領域から統計値を取得することを特徴とする通信装置。
【請求項４】
請求項１から３のいずれか一つに記載の通信装置であって、
前記制御部は、
前記統計が記録される記憶領域と異なる記憶領域から統計値を取得し、
前記取得した統計値を用いてユーザに提示するためのデータを生成することを特徴とする通信装置。
【請求項５】
請求項４に記載の通信装置であって、
前記統計処理部は、前記制御部が統計値を取得した後、当該取得された統計値を消去することを特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記制御部は、前記記憶領域から取得した統計値を保持し、前記記憶領域から新たに取得した統計値と前記保持された統計値との合計値をユーザに提示する統計値とすることを特徴とする通信装置。
【請求項７】
請求項１から３のいずれか一つに記載の通信装置であって、
前記統計処理部は、前記統計を記録する記憶領域を切り替えた後に前記記憶領域の統計値が更新されたことを示すフラグを管理することを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記統計処理部は、前記制御部が統計値を取得する際、前記フラグが前記記憶領域の統計値が更新されていないことを示す場合、前記統計処理の結果を記録すべき記憶領域に、他の記憶領域の統計値を複製することを特徴とする通信装置。
【請求項９】
請求項１から３のいずれか一つに記載の通信装置であって、
前記統計処理部は、前記統計を記録する記憶領域が変更された際、前記統計処理の結果を記録すべき記憶領域に、他の記憶領域の統計値を複製することを特徴とする通信装置。
【請求項１０】
請求項１から３のいずれか一つに記載の通信装置であって、
前記統計処理部は、前記入力されたフレームから仮想ネットワークの情報を取得し、前記情報を取得した仮想ネットワークに関連するフレームの数及びフレームのサイズの少なくとも一方を前記統計処理の結果として取得することを特徴とする通信装置。
【請求項１１】
フレームを転送する通信装置におけるフレーム処理方法であって、
前記通信装置は、前記通信装置の動作を制御する制御部と、フレームを入出力するインターフェース部と、入力されたフレームを処理する複数のフレーム処理部とを備え、
前記各フレーム処理部は、処理されるフレームの統計を記録する複数の記憶領域を有し、
前記フレーム処理方法は、
前記フレーム処理部が、前記統計を記録する一つの記憶領域を決定するステップと、
前記フレーム処理部が、前記決定された記憶領域を特定する識別情報を前記入力されたフレームに付与するステップと、
前記フレーム処理部が、当該フレームの統計処理の結果を用いて、前記識別情報によって特定される記憶領域に記録された統計を更新するステップとを含むことを特徴とするフレーム処理方法。
【請求項１２】
請求項１１に記載のフレーム処理方法であって、
前記制御部が、前記統計を記録する記憶領域の切り替えを前記フレーム処理部に指示するステップと、
前記フレーム処理部が、前記制御部から送信された切り替えの指示によって、前記識別情報を決定するステップとを含むことを特徴とするフレーム処理方法。
【請求項１３】
請求項１２に記載のフレーム処理方法であって、
前記フレーム処理部が、前記処理すべきフレームのうち一連のフレームを識別するステップと、
前記フレーム処理部が、前記識別された一連のフレームの統計処理が完了した後、前記統計を記録する記憶領域を変更するステップと、
前記制御部が、前記統計を記録する記憶領域の切り替え後に、前記統計が記録される記憶領域と異なる記憶領域から統計値を取得するステップとを含むことを特徴とするフレーム処理方法。
【請求項１４】
請求項１１から１３のいずれか一つに記載のフレーム処理方法であって、
前記制御部が、前記統計が記録される記憶領域と異なる記憶領域から統計値を取得するステップと、
前記制御部が、前記取得した統計値を用いてユーザに提示するためのデータを生成するステップとを含むことを特徴とするフレーム処理方法。
【請求項１５】
請求項１１から１３のいずれか一つに記載のフレーム処理方法であって、
前記フレーム処理部が、前記統計を記録する記憶領域を切り替えた後に前記記憶領域の統計値が更新されたことを示すフラグを管理するステップを含むことを特徴とするフレーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームを転送する通信装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、例えば、特開２０００−１３３９６号公報（特許文献１）がある。この公報には、ソフトウェアにより制御され、統計情報を収集報告する機能を有する複数の処理回路を含むＡＴＭスイチにおいて、ソフトウェアからの指示で統計情報を収集している処理回路に対して統計情報ラッチ信号を出力する統計ラッチ出力手段と、処理回路が統計情報ラッチ信号を検出して統計情報を統計情報出力バッファに保持する統計情報保持手段と、ソフトウェアからの統計情報出力指示を受け付けて統計情報出力バッファに保持した統計情報を出力する統計情報出力手段を有するＡＴＭスイッチが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１３３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力されたフレームやパケットを転送するネットワーク中継装置において、転送するフレームやパケットに関する統計処理を行い、統計値を記録するものがある。このようなネットワーク中継装置で取得される統計は、課金処理や、インシデント対応などにおいて使用され、これらの用途のためには、正確な統計の取得が重要である。
【０００５】
前述した従来のネットワーク中継装置で記録した統計値を取得する場合、統計値が記録された記憶領域にアクセスするためのデータバスの制限などによって、所望の統計値を同じタイミングで取得できない場合がある。このため、統計値の取得中に統計値が更新されることによって、取得した複数種類の統計値が同じタイミングで記録されたものではない可能性がある。
【０００６】
また、複数の処理部で複数種類の統計処理をする場合、複数種類の統計値が同じタイミングで記録されないことがある。このため、あるタイミングで統計値を取得すると、複数種類の統計値の間で整合しない場合があり、正確に統計を取得することが困難である。
【課題を解決するための手段】
【０００７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、フレームを転送する通信装置であって、前記通信装置の動作を制御する制御部と、フレームを入出力するインターフェース部と、入力されたフレームを処理する複数のフレーム処理部とを備え、前記各フレーム処理部は、処理されるフレームの統計を記録する複数の記憶領域と、前記統計を記録する一つの記憶領域を決定し、前記決定された記憶領域を特定するための識別情報を前記入力されたフレームに付与する識別子付与部と、当該フレームの統計処理の結果を用いて、前記識別情報によって特定される記憶領域に記録された統計を更新する統計処理部と、を有する。
【発明の効果】
【０００８】
本発明の代表的な実施例によれば、所定の時間範囲における統計値を取得することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施例のフレーム転送装置の構成を示すブロック図である。
【図２Ａ】第１の実施例のＲｘフレーム処理部の構成を示すブロック図である。
【図２Ｂ】第１の実施例の統計処理部内の統計データベースの構成例を説明する図である。
【図３】第１の実施例の統計処理部内の統計データベースの構成例を説明する図である。
【図４】第１の実施例のフレーム処理のフローチャートである。
【図５】第１の実施例の統計取得処理のフローチャートである。
【図６】第１の実施例の統計データ読み出し処理のフローチャートである。
【図７】第１の実施例のＤＢ＿ＷＰ更新処理のフローチャートである。
【図８Ａ】第１の実施例のフレーム転送装置に、コンソールから入力されるコマンドの例を説明する図である。
【図８Ｂ】第１の実施例のフレーム転送装置に、コンソールから入力されるコマンドの例を説明する図である。
【図９】第１の実施例のＤＢ＿ＷＰ制御部から出力されるフレームのフォーマットを説明する図である。
【図１０】第１の実施例のＤＢ＿ＷＰ制御の詳細を説明する図である。
【図１１】第１の実施例の統計処理の例を説明する図である。
【図１２】第１の実施例の統計データベースの構成例を説明する図である。
【図１３】第２の実施例の統計処理部内の統計データベースの構成例を説明する図である。
【図１４】第２の実施例の統計処理の例を説明する図である。
【発明を実施するための形態】
【００１０】
以下、ネットワーク通信装置の一例として、フレーム転送装置について説明する。
【００１１】
＜実施例１＞
図１は、本発明の第１の実施例のフレーム転送装置を含むネットワークシステムの構成を示すブロック図である。
【００１２】
本実施例のフレーム転送装置１０は、ルータやスイッチであり、複数のネットワーク１１を接続し、該複数のネットワーク１１の間でフレームを転送する。また、フレーム転送装置１０は、ネットワーク１１内で複数のコンピュータ１２を接続し、該複数のコンピュータ１２の間でフレームを転送する。
【００１３】
フレーム転送装置１０には、コンソール１３が接続される。コンソール１３は、プロセッサ、メモリ、通信インターフェース及び入出力インターフェースを有するコンピュータであり、ネットワーク管理者の指示に基づいて、フレーム転送装置１０への制御指示（例えば、面切替指示）を送る。制御部１１０とコンソール１３とは、所定のインターフェース（例えば、ＲＳ２３２Ｃ、ＵＳＢ、イーサネット等）（イーサネットは登録商標）によって接続される。
【００１４】
なお、本実施例のフレーム転送装置１０は、特定のネットワークに接続されるものではなく、転送するフレームの統計を収集するフレーム転送装置である限り、様々なネットワークを接続するフレーム転送装置を対象とする。
【００１５】
フレーム転送装置１０は、制御部１１０及びフォワーディング部１２０を有する。
【００１６】
制御部１１０は、プロセッサ１１１、メモリ１１３及びタイマ１１５を有する。
【００１７】
プロセッサ１１１は、メモリ１１３に格納されたプログラムを実行する。特に、本実施例のプロセッサ１１１は、統計処理を制御する統計制御プログラム１１２を実行する。タイマ１１５は、所定のタイミング信号をプロセッサ１１１（統計制御プログラム１１２）に送る。
【００１８】
メモリ１１３は、統計データ１１４を格納する。なお、後述するように、第１の実施例では、統計領域から統計値を読み出して、コンソール１３によって表示した後は、統計データ１１４は不要である。また、第２の実施例では、統計データ１１４は各統計の積算値を含む。
【００１９】
統計制御プログラム１１２は、フレーム転送装置１０による統計の取得を制御する。統計制御プログラム１１２は、例えば、制御信号１１６をＲｘフレーム処理部１３２に出力する。制御信号１１６には、取得した統計値を読み出す面を切り替えるための面切替信号がある。
【００２０】
フォワーディング部１２０は、クロスバスイッチ１２１、複数のフレーム処理部１３０及びネットワークインターフェース部１６０を有する。
【００２１】
クロスバスイッチ１２１は、フレーム処理部１３０を接続し、フレーム処理部１３０から送られたフレームを、該フレームを出力すべきポートに接続されたフレーム処理部１３０に出力するように、内部の接続を変更する。
【００２２】
フレーム処理部１３０は、Ｒｘ転送エンジン１３１、Ｒｘフレーム処理部１３２、Ｔｘ転送エンジン１３３及びＴｘフレーム処理部１３４を有する。
【００２３】
Ｒｘ転送エンジン１３１は、転送情報テーブルを参照し、フレーム転送装置１０に入力されたフレームの宛先を解析し、当該フレームを出力するポートを決定する。そして、Ｒｘ転送エンジン１３１は、決定された出力ポートの情報を入力されたフレームに付して、クロスバスイッチ１２１に送る。また、Ｒｘ転送エンジン１３１は、入力されたフレームの情報（例えば、フレームのヘッダ部）をＲｘフレーム処理部１３２に送る。Ｒｘフレーム処理部１３２に送られるフレームの情報は、Ｒｘフレーム処理部１３２において実行される処理によって、入力されたフレームのヘッダ部のみでも、入力されたフレーム全部でもよい。
【００２４】
Ｔｘ転送エンジン１３３は、Ｒｘフレーム処理部１３２が決定した出力ポートの情報に従って、入力されたフレームを物理ポート１６１に送る。また、Ｔｘ転送エンジン１３３は、入力されたフレームの情報（例えば、フレームのヘッダ部）をＴｘフレーム処理部１３４に送る。Ｔｘフレーム処理部１３４に送られるフレームの情報は、Ｔｘフレーム処理部１３４において実行される処理によって、フレームのヘッダ部のみでも、フレーム全部でもよい。
【００２５】
このように、Ｒｘ転送エンジン１３１及びＴｘ転送エンジン１３３がフレームを処理することによって、入力されたフレームはパス１３７のように転送される。
【００２６】
Ｒｘフレーム処理部１３２及びＴｘフレーム処理部１３４は、フレーム転送装置１０に入力されたフレームの情報を解析し、入力されたフレームの統計を取得する。例えば、統計には、宛先毎のフレームの転送量、フレーム数などがある。他に、Ｒｘフレーム処理部１３２及びＴｘフレーム処理部１３４は、入力されたフレームを暗号化する処理を実行してもよい。
【００２７】
フレーム処理部１３０は、一般に、ハードウェアによるロジック回路で構成されるが、プロセッサが実行するプログラムによって構成されてもよい。
【００２８】
ネットワークインターフェース部１６０は、他のネットワーク１１やコンピュータ１２が接続される物理ポート１６１を有し、フレーム転送装置１０に送信されるフレームを受信し、及び、フレーム転送装置１０から出力されるフレームを送信する。
【００２９】
前述した実施例では、ネットワーク通信装置（一例として、フレーム転送装置）内の複数のＲｘフレーム処理部１３２及びＴｘフレーム処理部１３４が、それぞれ、二つの統計領域１４５、１４６などを有し、各統計領域がパケット処理用と統計値取得用との二つの機能を分担する。
【００３０】
そして、ＤＢ＿ＷＰ制御部１４１は、ネットワーク中継装置内で処理されるパケットにＤＢ＿ＷＰの情報９０１を付加する。ＤＢ＿ＷＰの情報９０１が付加されたパケットは、クロスバスイッチ１２１、Ｔｘ転送エンジン１３３を介してＴｘフレーム処理部１３４に到達する。Ｒｘフレーム処理部１３２及びＴｘフレーム処理部１３４は、ＤＢ＿ＷＰの情報９０１を参照して、どちらの統計領域をパケット処理用とするかを判定、すなわち、統計値を記録する統計領域を決定する。そして、二つの統計領域は、時間（パケット処理の開始タイミング）や、パケットの入力を契機にして、その機能を切り替える。また、一連のパケットの処理中は、統計領域の切り替えを禁止し、異なるパケットの間で統計領域を切り替える。このようにして、一連のパケットの統計が同じ統計領域に記録されるようにする。
【００３１】
図２Ａは、第１の実施例のＲｘフレーム処理部１３２の構成を示すブロック図である。
【００３２】
Ｒｘフレーム処理部１３２は、ＤＢ＿ＷＰ制御部１４１、フィルタ検索処理部１４２、経路検索処理部１４３、統計処理部１（１４４）及び統計処理部２（１４７）を有する。
【００３３】
ＤＢ＿ＷＰ制御部１４１は、統計制御プログラム１１２からの面切替指示１１６に従って、統計処理部１４４、１４７が統計処理の結果を書き込む記憶領域（面）を切り替える。統計制御プログラム１１２からＤＢ＿ＷＰ制御部１４１に入力された指示は、フィルタ検索処理部１４２、経路検索処理部１４３、Ｒｘ転送エンジン１３１、クロスバスイッチ１２１、Ｔｘ転送エンジン１３３を介してＴｘフレーム処理部１３４に到達する。統計制御プログラム１１２からＤＢ＿ＷＰ制御部１４１に入力される指示には、前述した面切替指示の他、統計データ読出要求などがある。
【００３４】
なお、後述するように、Ｔｘフレーム処理部１３４はＤＢ＿ＷＰ制御部１４１を有しないが、Ｔｘフレーム処理部１３４にもＤＢ＿ＷＰ制御部１４１を設け、Ｔｘフレーム処理部１３４が統計制御プログラム１１２からの指示を直接受けてもよい。
【００３５】
また、ＤＢ＿ＷＰ制御部１４１には、Ｒｘ転送エンジン１３１からフレームの情報が入力される。なお、フレームの情報は、ＤＢ＿ＷＰ制御部１４１を介さず、フィルタ検索処理部１４２に入力されてもよい。
【００３６】
フィルタ検索処理部１４２は、入力されたフレームをフィルタリングする。例えば、フィルタ検索処理部１４２は、入力されたフレームのヘッダを解析し、特定のアドレスから送信された又は特定のアドレスが宛先となったフレームをフィルタリングし、フィルタリングされた及び／又は通過したフレームの数及び当該フレーム数が記録される統計エントリ番号を統計処理部１（１４４）に送る。統計エントリ番号は、経路検索やフィルタ処理の結果として決定される。統計処理部１（１４４）は、フィルタ検索処理部１４２がフィルタリングしたフレームの数を統計値として計数する。
【００３７】
経路検索処理部１４３は、入力されたフレームのヘッダを解析し、入出力ポート、ＶＬＡＮなどのフレームの情報を抽出し、これらの情報が抽出されたフレームの数及び当該フレーム数が記録される統計エントリ番号を統計処理部２（１４７）に送る。統計処理部２（１４７）は、経路検索処理部１４３が検出したフレームの数を統計値としてカウントアップする。
【００３８】
フィルタ検索処理部１４２及び経路検索処理部１４３は、検出したフレームの数の他、フレームのサイズを統計処理部１４４、１４７に出力してもよい。また、フィルタ検索処理部１４２及び経路検索処理部１４３が出力する統計値は、ユーザ毎（フレームの送信元及び／又は宛先が特定のユーザのフレーム毎）に集計されてもよい。
【００３９】
Ｒｘフレーム処理部１３２がフィルタ検索処理部１４２及び経路検索処理部１４３以外の処理部を有し、入力されたフレームを処理してもよい。例えば、入力されたフレームに有害なデータ（例えば、ウイルスプログラム）が含まれているかを判定し、有害なフレームを除去し、除去された有害フレームの数を統計処理部に送る。また、他の処理部が、ＱｏＳの処理や、ミラーリングや、フレームが壊れているかの判定や、制御フレーム（例えば、ネットワーク機器を制御するためのフレーム）の検出や、マルチキャストフレームの処理等を実行してもよい。そして、統計処理部が、これらの処理がされたフレーム数を計数することができる。
【００４０】
統計処理部１（１４４）は、メモリを有する。メモリは、統計データベースを格納する。統計データベースは、図３に示すように、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）を含む。統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）は、統計値を書き込む及び読み出す領域である。統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）のいずれに統計値を書き込むかは、ＤＢ＿ＷＰによって選択される。ＤＢ＿ＷＰは、ＤＢ＿ＷＰ制御部１４１によって管理される。また、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）のいずれから統計値を読み出すかは、ＤＢ＿ＲＰによって選択される。ＤＢ＿ＲＰは、各統計処理部によって管理される。
【００４１】
以上、統計処理部１（１４４）について説明したが、統計処理部２（１４７）も同様の構成（統計領域２Ａ（１４８）及び統計領域２Ｂ（１４９））を有し、経路検索処理部１４３が検出したフレームの数を統計値としてカウントアップする。
【００４２】
図２Ｂは、第１の実施例のＴｘフレーム処理部１３４の構成を示すブロック図である。
【００４３】
Ｔｘフレーム処理部１３４は、経路検索処理部１５３、フィルタ検索処理部１５２、統計処理部３（１５７）及び統計処理部４（１５４）を有する。
【００４４】
経路検索処理部１５３には、Ｔｘ転送エンジン１３３からフレームの情報が入力される。経路検索処理部１５３は、入力されたフレームのヘッダを解析し、入出力ポート、ＶＬＡＮなどのフレームの情報を抽出し、これらの情報が抽出されたフレームの数及び当該フレーム数が記録される統計エントリ番号を統計処理部３（１５７）に送る。統計処理部３（１５７）は、経路検索処理部１５３が検出したフレームの数を統計値としてカウントアップする。
【００４５】
フィルタ検索処理部１５２は、入力されたフレームをフィルタリングする。例えば、フィルタ検索処理部１５２は、入力されたフレームのヘッダを解析し、特定のアドレスから送信された又は特定のアドレスが宛先となったフレームをフィルタリングし、フィルタリングされた及び／又は通過したフレームの数及び当該フレーム数が記録される統計エントリ番号を統計処理部４（１５４）に送る。統計処理部４（１５４）は、フィルタ検索処理部１５２がフィルタリングしたフレームの数を統計値として計数する。
【００４６】
経路検索処理部１５３及びフィルタ検索処理部１５２は、検出したフレームの数の他、フレームのサイズを統計処理部１５７、１５４に出力してもよい。また、経路検索処理部１５３及びフィルタ検索処理部１５２が出力する統計値は、ユーザ毎（フレームの送信元及び／又は宛先が特定のユーザのフレーム毎）に集計されてもよい。
【００４７】
Ｔｘフレーム処理部１３４がフィルタ検索処理部１５２及び経路検索処理部１５３以外の処理部を有し、入力されたフレームを処理してもよい。例えば、入力されたフレームに有害なデータ（例えば、ウイルスプログラム）が含まれているかを判定し、有害なフレームを除去し、除去された有害フレームの数を統計処理部に送る。また、他の処理部が、ＱｏＳの処理や、ミラーリングや、フレームが壊れているかの判定や、制御フレーム（例えば、ネットワーク機器を制御するためのフレーム）の検出や、マルチキャストフレームの処理等を実行してもよい。そして、統計処理部が、これらの処理がされたフレーム数を計数することができる。
【００４８】
統計処理部４（１５４）は、メモリを有する。メモリは、統計データベースを格納する。統計データベースは、図３に示すように、統計領域４Ａ（１５５）及び統計領域４Ｂ（１５６）を含む。統計領域４Ａ（１５５）及び統計領域４Ｂ（１５６）は、統計値を書き込む及び読み出す領域である。統計領域４Ａ（１５５）及び統計領域４Ｂ（１５６）のいずれに統計値を書き込むかは、ＤＢ＿ＷＰによって選択される。ＤＢ＿ＷＰは、Ｒｘフレーム処理部１３２のＤＢ＿ＷＰ制御部１４１によって管理される。また、統計領域４Ａ（１５５）及び統計領域４Ｂ（１５６）のいずれから統計値を読み出すかは、ＤＢ＿ＲＰによって選択される。ＤＢ＿ＲＰは、各統計処理部によって管理される。
【００４９】
以上、統計処理部４（１５４）について説明したが、統計処理部３（１５７）も同様の構成（統計領域３Ａ（１５８）及び統計領域３Ｂ（１５９））を有し、経路検索処理部１５３が検出したフレームの数を統計値としてカウントアップする。
【００５０】
なお、本実施例では、各統計処理部ｎは、二つの統計領域ｎＡ及び統計領域ｎＢを有するが、各統計処理部（統計データベース）は三つ以上の統計領域を含んでもよい。
【００５１】
なお、本実施例のＲｘフレーム処理部１３２及びＴｘフレーム処理部１３４は、二つの統計処理部を有したが、統計処理部は一つでもよい。また、本実施例では、統計処理部は、Ｒｘフレーム処理部１３２及びＴｘフレーム処理部１３４に備わるが、Ｒｘフレーム処理部１３２又はＴｘフレーム処理部１３４の一方のみに備わってもよい。
【００５２】
図３は、第１の実施例の統計処理部１（１４７）内の統計データベースの構成例を説明する図である。
【００５３】
統計データベースは、エントリ番号３０１、統計領域１Ａ（１４５）、統計領域１Ｂ（１４６）及びＤＢ＿ＲＰ３０６を含む。
【００５４】
エントリ番号３０１は、収集する統計を一意に識別するための番号である。統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）は、統計値を格納する。ＤＢ＿ＲＰ３０６は、フレーム処理時に統計値を読み出すアドレスのオフセットのフラグであり、本実施例では「０」又は「１」である。
【００５５】
すなわち、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）は、前述したように、Ｒｘフレーム処理部１３２のメモリ内の記憶領域によって構成され、統計値を読み出すアドレスのオフセットがＤＢ＿ＲＰ３０６によって制御され、書込時のアドレスのオフセット（ＤＢ＿ＷＰ）がＤＢ＿ＷＰ制御部１４１によって制御される。
【００５６】
例えば、ＤＢ＿ＲＰ３０６が「０」である場合、統計領域１Ａ（１４５）の統計値が読み出される。一方、ＤＢ＿ＲＰ３０６が「１」である場合、統計領域１Ｂ（１４６）の統計値が読み出される。また、ＤＢ＿ＷＰ制御部１４１が管理するＤＢ＿ＷＰの値が「０」である場合、統計値が統計領域１Ａ（１４５）に書き込まれる。一方、ＤＢ＿ＷＰ制御部１４１が管理するＤＢ＿ＷＰの値が「１」である場合、統計値が統計領域１Ｂ（１４６）に書き込まれる。
【００５７】
このように、ＤＢ＿ＲＰは、記憶領域から読み出す場合のアドレスのオフセット値であり、ＤＢ＿ＷＰは、記憶領域に書き込む場合のアドレスのオフセット値である。すなわち、ＤＢ＿ＲＰ、ＤＢ＿ＷＰは、それぞれ、統計値を読み出す、書き込む統計領域を表す。
【００５８】
なお、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）の大きさ及び記憶領域上の配置を適切（例えば、１０２４ｋバイトなどの２のｎ乗）に選んだ場合、ＤＢ＿ＲＰの値及びＤＢ＿ＷＰの値をエントリ番号の最上位に付加したアドレスにアクセスすることによって、アクセスする統計領域を選択することができる。また、ＤＢ＿ＲＰの値及びＤＢ＿ＷＰの値を、「０」又は「１」ではなく、アドレスのオフセット値としてもよい。
【００５９】
統計領域１Ａ（１４５）は、統計値３０２及びＨＩＴＢＩＴ３０３を含み、統計領域１Ｂ（１４６）は、統計値３０４及びＨＩＴＢＩＴ３０５を含む。統計値３０２、３０４は、各エントリの統計値である。ＨＩＴＢＩＴ３０３、３０５は、統計領域の切り替え後に統計値が更新されたかの情報を保持するための１ビットのデータである。すなわち、統計領域から統計値を読み出した後、統計値が更新された場合は、ＨＩＴＢＩＴ３０３、３０５の値は「１」となり（図４のステップＳ１００５）、統計領域から統計値を読み出した後、ＨＩＴＢＩＴ３０３、３０５の値は「０」となる（図６のステップＳ１０１３）。
【００６０】
なお、統計処理部１（１４７）内の統計データベースの構成例を説明するが、他の統計処理部も同様の統計データベースを有する。なお、以下の説明では、複数の統計処理部ｎの統計領域ｎＡを「統計領域Ａ」と称し、複数の統計処理部ｎの統計領域ｎＢを「統計領域Ｂ」と称する。
【００６１】
以上に説明したように、統計領域にＨＩＴＢＩＴを設けることによって、フレーム処理期間に統計値が更新されない場合でも、正確な統計値を読み出すことができる。
【００６２】
図４は、第１の実施例のフレーム処理のフローチャートである。図４に示すフレーム処理は、フレームが入力された際に、フレーム処理部１３０のＲｘフレーム処理部１３２が実行する。なお、他のＲｘフレーム処理部及びＴｘフレーム処理部も同じ処理を実行する。
【００６３】
まず、Ｒｘフレーム処理部１３２は、ＤＢ＿ＲＰを参照し（Ｓ１００１）、ＤＢ＿ＲＰが示す統計領域の統計値を読み出す（Ｓ１００２）。すなわち、ＤＢ＿ＲＰが「０」であれば、統計領域Ａに格納された統計値を読み出し、ＤＢ＿ＲＰが「１」であれば、統計領域Ｂに格納された統計値を読み出す。ＤＢ＿ＲＰが示す統計領域から統計値を読み出すことによって、複数の統計領域から最新の統計値を抽出する。
【００６４】
その後、読み出した統計に、入力されたフレームの統計値を加算し、ＤＢ＿ＷＰが示す統計領域に書き込み、統計値を更新する（Ｓ１００３）。
【００６５】
その後、ＤＢ＿ＷＰの値をＤＢ＿ＲＰに設定する（Ｓ１００４）。ＤＢ＿ＷＰは、統計データが更新される統計領域を示す。このため、ＤＢ＿ＷＰの値をＤＢ＿ＲＰに設定することによって、ＤＢ＿ＲＰで最後に更新されたデータが記録されている統計領域を管理することができ、最後に更新された統計領域から統計値を読み出すことができる。
【００６６】
その後、ＤＢ＿ＷＰが示す統計領域の更新された統計値のＨＩＴＢＩＴに「１」を設定して、統計値が更新されたことを記憶する（Ｓ１００５）。
【００６７】
図５は、第１の実施例の統計取得処理のフローチャートである。図５に示す統計採取処理は、コンソール１３から統計値取得要求が入力された際、統計制御プログラム１１２が実行する。なお、図５では、処理の対象をＲｘフレーム処理部１３２として説明するが、他のフレーム処理部（Ｔｘフレーム処理部１３４や、他の分散処理部のフレーム処理部）などが処理の対象でもよい。
【００６８】
まず、統計制御プログラム１１２は、ＤＢ＿ＷＰを更新するかを判定する（Ｓ１０２１）。ＤＢ＿ＷＰは、所定の条件（例えば、１秒ごと（秒の小数点以下が０である場合））を満たす場合に更新することができる。これは、更新された統計が記録側にありユーザから見えない状態になっているので、取得側に切り替えてユーザに見えるようにするためである。ＤＢ＿ＷＰを、例えば定期的に更新することによって、明示的なコマンドを使用しない場合でも、統計が更新されていない状態に見えることを防止できる。そして、ＤＢ＿ＷＰを更新する場合は、現在（最新）の統計値を取得することができ、ＤＢ＿ＷＰを更新しない場合は、古い統計値を取得することになる。
【００６９】
なお、図８Ｂに示すように、統計領域を切り替えるためのコマンドが入力された場合、ＤＢ＿ＷＰを更新すると判定してもよい。
【００７０】
その結果、ＤＢ＿ＷＰを更新する場合、ＤＢ＿ＷＰの更新タイミングを待つために、ステップＳ１０２２に進む。一方、ＤＢ＿ＷＰを更新しない場合、ＤＢ＿ＷＰの更新タイミングを待つことなく、ステップＳ１０２５に進む。
【００７１】
ステップＳ１０２２では、ＤＢ＿ＷＰの更新をＲｘフレーム処理部１３２に指示する。そして、所定の条件を満たし、ＤＢ＿ＷＰの更新が完了するまで待機する（Ｓ１０２３、Ｓ１０２４）。そして、Ｒｘフレーム処理部１３２は、ＤＢ＿ＷＰを更新した後、更新完了フラグを所定の記憶領域に書き込む。統計制御プログラム１１２は、前記所定の記憶領域に更新完了フラグが書き込まれたかを繰り返し確認しており、更新完了フラグが書き込まれたことを確認すると、ステップＳ１０２５に進む（Ｓ１０２３）。ステップＳ１０２４における待機は、前述した所定の条件を満たすまでの最長時間をタイマで待機してもよいし、フレームの処理状況を監視して、受信したフレームの処理が完了するまで待機してもよい。
【００７２】
その後、送信した切替指示が許可されたことを確認した後、指示された統計領域から各統計エントリの統計値を取得する（Ｓ１０２５、Ｓ１０２６）。
【００７３】
図６は、第１の実施例の統計データ読み出し処理のフローチャートである。図６に示す統計データ読み出し処理は、統計制御プログラム１１２が統計データ読み出しを要求した際に（例えば、図５のＳ１０２６）、フレーム処理部１３０のＲｘフレーム処理部１３２が実行する。なお、他のＲｘフレーム処理部及びＴｘフレーム処理部も同じ処理を実行する。
【００７４】
まず、フレーム処理部１３０のＲｘフレーム処理部１３２は、ＤＢ＿ＷＰを参照し（Ｓ１０１１）、ＤＢ＿ＷＰが示す領域と反対（ＤＢ＿ＷＰの反転）の統計領域から統計値を読み出す（Ｓ１０１２）。すなわち、ＤＢ＿ＷＰが「０」であれば、統計領域Ｂに格納された統計値を読み出し、ＤＢ＿ＷＰが「１」であれば、統計領域Ａに格納された統計値を読み出す。ＤＢ＿ＷＰが示す領域と反対の統計領域から統計値を読み出すことによって、フレーム処理による統計値の更新の影響を受けることなく、統計値を読み出すことができる。
【００７５】
その後、ＤＢ＿ＷＰが示す領域の反転の統計領域の全てのＨＩＴＢＩＴに「０」を設定する（Ｓ１０１３）。
【００７６】
その後、ＤＢ＿ＷＰが示す統計領域の当該エントリのＨＩＴＢＩＴが「０」であるかを判定する（Ｓ１０１４）。ＨＩＴＢＩＴが０である場合、当該エントリについて、ＤＢ＿ＷＰが示す領域と反対の統計領域の統計値を、ＤＢ＿ＷＰが示す統計領域の統計値にコピーする（Ｓ１０１５）。ＤＢ＿ＷＰが示す統計領域においてＨＩＴＢＩＴが「０」である場合、当該エントリの統計値は、フレーム処理によって更新されていない。このため、ＤＢ＿ＷＰが示す統計領域の統計値にコピーして、最新の統計値に更新する。
【００７７】
図７は、第１の実施例のＤＢ＿ＷＰ更新処理のフローチャートである。図７に示すＤＢ＿ＷＰ更新処理は、ユーザのコマンド入力などを契機にしてＤＢ＿ＷＰを明示的に更新する場合に、統計制御プログラム１１２が実行する。ユーザが入力するコマンドは、例えば、"statistics update" などである。
【００７８】
まず、統計制御プログラム１１２は、ＤＢ＿ＷＰの更新をフレーム処理部１３０に指示する（Ｓ１０３１）。そして、ＤＢ＿ＷＰの更新が完了するまで待機し（Ｓ１０３３）、ＤＢ＿ＷＰの更新が完了すれば、終了する（Ｓ１０３２）。
【００７９】
図８Ａ及び図８Ｂは、第１の実施例のフレーム転送装置１０に、コンソール１３から入力されるコマンドの例を説明する図である。
【００８０】
例えば、図８Ａに示すように、統計値を取得するための "snmp getif" コマンドをコンソール１３から入力することによって、統計値を取得する統計領域を切り替えて、統計値を取得することができる。
【００８１】
また、統計領域を切り替えるためのコマンドを設けてもよい。例えば、図８Ｂに示すように、統計領域を切り替える場合、コンソール１３から "statistics update" コマンドを入力することによって、ＤＢ＿ＲＰを更新し、統計値を取得する統計領域を切り替える。その後、コンソール１３から "snmp getif" コマンドを入力することによって統計値を取得することができる。
【００８２】
図９は、第１の実施例のＤＢ＿ＷＰ制御部１４１から出力されるフレームのフォーマットを説明する図である。
【００８３】
ＤＢ＿ＷＰ制御部１４１は、Ｒｘ転送エンジン１３１から入力されたフレームに、ＤＢ＿ＷＰの情報を付加して、フィルタ検索処理部１４２にフレームを出力する。
【００８４】
すなわち、ＤＢ＿ＷＰ制御部１４１に入力されるフレームは、制御情報（入力ポート、入力ＶＬＡＮなど）、フレームの情報及び統計情報を含む。なお、入力されるフレームが、ユーザデータを含んでもよい。フレームの情報は、レイヤ２の宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスを含み、さらに、レイヤ３のＩＰヘッダなどを含む。統計情報は、このフレームが処理されるべき統計処理の統計エントリ番号を含む。
【００８５】
本実施例において、ＤＢ＿ＷＰ制御部１４１から出力されるフレームの統計情報は、各Ｒｘフレーム処理部及びＴｘフレーム処理部の統計の種別毎（統計処理部毎）にＤＢ＿ＷＰの情報９０１を含む。ＤＢ＿ＷＰの情報９０１は、このフレームが統計処理された値を書き込む記憶領域を表す。ＤＢ＿ＷＰの情報９０１はフレームに付加され、フレーム転送装置内の各Ｒｘフレーム処理部及びＴｘフレーム処理部で参照される。このため、複数のＲｘフレーム処理部及びＴｘフレーム処理部で行われる統計処理の結果は、同じフレームについては、ＤＢ＿ＷＰが示す同じ統計領域に書き込まれる。
【００８６】
なお、図９に示すフレームはＤＢ＿ＷＰ制御部１４１から出力された状態であり、統計処理がまだ行われていないので、統計エントリ番号は不定（未決定）となっている。
【００８７】
図１０は、第１の実施例のＤＢ＿ＷＰ制御の詳細を説明する図である。図１０を用いて、ＤＢ＿ＷＰの更新タイミング、すなわち、更新指示された新しいＤＢ＿ＷＰを、次のフレーム処理から使うタイミングについて説明する。
【００８８】
図中、ＰＡＣＫＥＴ＿ＶＬＤは、フレーム処理が有効であるかを示すフラグであり、フレーム処理中は１、フレーム処理をしていないときは０となる。ＰＡＣＫＥＴ＿ＥＮＤは、同一のフレーム処理の終了を示すフラグであり、一連のフレーム処理の最後のフレームの処理のタイミングでは「１」となり、他のタイミングでは「０」となる。
【００８９】
本実施形態のＤＢ＿ＷＰ制御部１４１は、統計制御処理プログラム１１２からの面切替指示１１６によって統計値を記録する記憶領域を切り替える。この切り替えタイミングは、一連のフレームを処理している途中における統計領域の切り替えを避けるためである。
【００９０】
例えば、前述したフラグ、ＰＡＣＫＥＴ＿ＶＬＤ及びＰＡＣＫＥＴ＿ＥＮＤを用いた一つの方法として、ＰＡＣＫＥＴ＿ＶＬＤが「０」であるとき、又は、ＰＡＣＫＥＴ＿ＶＬＤが１であり、かつ、ＰＡＣＫＥＴ＿ＥＮＤが「１」であるときに、ＤＢ＿ＷＰの更新を許可する。すなわち、（ＰＡＣＫＥＴ＿ＶＬＤ＝０）ｏｒ（ＰＡＣＫＥＴ＿ＶＬＤ＝１  ａｎｄ  ＰＡＣＫＥＴ＿ＥＮＤ＝１）を満たすタイミングで、ＤＢ＿ＷＰを更新する。
【００９１】
また、第２の方法として、ＰＡＣＫＥＴ＿ＶＬＤが１でなく、又は、ＰＡＣＫＥＴ＿ＥＮＤが０でないときに、ＤＢ＿ＷＰの更新を許可する。すなわち、ｎｏｔ（ＰＡＣＫＥＴ＿ＶＬＤ＝１  ａｎｄ  ＰＡＣＫＥＴ＿ＥＮＤ＝０）を満たすタイミングで、ＤＢ＿ＷＰを更新する。
【００９２】
このように、ＤＢ＿ＷＰの更新タイミングを制御することによって、一連のフレームに関する統計処理中は統計領域の切り替えを禁止し、異なる一連のフレームとの間でだけ統計領域の切り替えを許可する。このため、一連のフレームに対する処理が、異なる統計領域に跨って記録されなくなる。よって、一つの入力フレームに関する統計が同じ統計領域に記録されるため、フレーム処理の統計を正確に取得することができる。
【００９３】
この一連のフレームに対する処理は、例えば、一つのマルチキャストフレームから複製された複数のフレームを出力する場合に、複製された同じフレームを一連のフレームとして処理する場合である。マルチキャストフレームは、クロスバスイッチ１２１又はＴｘ転送エンジン１３３で複製される。
【００９４】
Ｔｘフレーム処理部１３４は、フレームの処理状況を参照して、ＤＢ＿ＷＰを更新する以前に処理されたフレームの統計が採取されたことを確実にする。具体的には、ＤＢ＿ＷＰによって一連のフレームであるかを判定してもよい。例えば、ＤＢ＿ＷＰが「１」である場合、ＤＢ＿ＷＰ＝１に対応する統計領域に統計が記録し終わるまで、ＤＢ＿ＷＰ＝１に対応する統計領域から統計値を取得しない。また、別の実装として、クロスバスイッチ１２１がフレームを複製した場合、複製された全てのフレームの処理が終了するまでの標準的又は最大の時間の統計値の読み出しを禁止してもよい。
【００９５】
さらに、フレーム転送装置がＬ３スイッチである場合、レイヤ２におけるスイッチとしての処理とレイヤ３におけるルータとしての処理が並行して行われる。このため、この場合は、レイヤ２で複製されたフレームとレイヤ３で複製されたフレームとを一連のフレームと判定してもよい。
【００９６】
この処理によって、ＤＢ＿ＷＰの値を変更してから、一連のフレームの統計採取が完了するまでの間の統計値の取得を禁止することができる。
【００９７】
図１１は、第１の実施例の統計処理の例を説明する図であり、パケット処理による特定のエントリの統計値及びフラグの変化を示す。
【００９８】
図１１において、ＤＢ＿ＷＰは、統計値が書き込まれる統計領域を示すフラグであり、統計の種類毎の１ｂｉｔのデータによって管理される。統計領域Ａの統計値及び統計領域Ｂの統計値は、統計の種別毎かつエントリ毎に記録される。ＤＢ＿ＲＰは、最後に統計値を書き込んだ統計領域を示すフラグであり、統計の種類毎かつエントリ毎の１ｂｉｔのデータによって管理される。統計領域ＡのＨＩＴＢＩＴは、統計領域の切り替え後、フレーム処理により統計領域Ａの統計値が更新されていることを示すフラグであり、統計の種別毎かつエントリ毎に記録される。統計領域ＢのＨＩＴＢＩＴは、統計領域の切り替え後、フレーム処理により統計領域Ｂの統計値が更新されていることを示すフラグであり、統計の種別毎かつエントリ毎に記録される。
【００９９】
まず、統計領域Ａ（ＤＢ＿ＷＰ＝０）で、パケットが処理され（２０１）、統計領域Ａの統計値が「０」から「１」に更新される。このとき、統計領域Ａの統計値が更新されたため、統計領域ＡのＨＩＴＢＩＴが「１」に設定される。その後、パケット処理によって統計領域Ａの統計値が加算される。
【０１００】
その後、統計領域Ｂの統計値が読み出される（２０２）。第１の実施例では、読み出しの際に統計値をクリアするリードクリア方式を採用しているので、統計領域Ｂの統計値及びＨＩＴＢＩＴがクリアされる。但し、このタイミングでは、統計値及びＨＩＴＢＩＴが０であるため、値は変化しない。
【０１０１】
その後、パケット処理によって統計領域Ａの統計値が加算され、パケット処理が終了したタイミングで、統計値を記録する統計領域が統計領域Ａから統計領域Ｂに切り替えられる（２０３）。このため、統計値は切り替え後の統計領域Ｂに書き込まれ、統計領域Ｂの統計値が「０」から「１」に更新される。このとき、統計領域Ｂの統計値が更新されたため、統計領域ＢのＨＩＴＢＩＴが「１」に設定される。その後、パケット処理によって統計領域Ｂの統計値が加算される。
【０１０２】
その後、統計領域Ａの統計値が読み出される（２０４）。第１の実施例では、読み出しの際に統計値をクリアするリードクリア方式を採用しているので、統計領域Ａの統計値及びＨＩＴＢＩＴがクリアされる。
【０１０３】
その後、パケット処理によって統計領域Ｂの統計値が加算され、パケット処理が終了したタイミングで、統計値を記録する統計領域が統計領域Ｂから統計領域Ａに切り替えられる（２０５）。このため、統計値は切り替え後の統計領域Ａに書き込まれ、統計領域Ａの統計値が「０」から「１」に更新される。このとき、統計領域Ａの統計値が更新されたため、統計領域ＡのＨＩＴＢＩＴが「１」に設定される。
【０１０４】
その後、統計領域Ｂの統計値が読み出される（２０６）。第１の実施例では、読み出しの際に統計値をクリアするリードクリア方式を採用しているので、統計領域Ｂの統計値及びＨＩＴＢＩＴがクリアされる。
【０１０５】
このように、第１の実施例では、統計領域から統計値を読み出す際に統計値をクリアするので、統計制御処理プログラム１１２が統計の積算値を管理する。このため、メモリに多くの記憶容量が必要となるが、Ｒｘフレーム処理部１３２の制御が簡単になる。
【０１０６】
図１２は、第１の実施例の統計データベースの構成例を説明する図である。
【０１０７】
図１２に示す統計データベースの例では、ＶＬＡＮ及びＱｏＳによって処理されたフレーム数が記録されている。例えば、ＶＬＡＮ３が１フレーム、ＶＬＡＮ４が３フレーム、ＶＬＡＮ５が６フレーム、ＶＬＡＮ６が１フレームである。また、ＱｏＳは、タイプＡが３フレーム、タイプＢが２フレーム、タイプＣが３フレーム、タイプＤが３フレームである。また、組み合わせの統計として、４Ａ、４Ｂ、５Ａ、５Ｂ、５Ｃの５種類の統計を取得している。
【０１０８】
この統計値を、ＱｏＳとＶＬＡＮとの組み合わせでマトリックスにすると、図１２に示すように分析される。これによると、ＱｏＳとＶＬＡＮとの組み合わせである、３Ａ、３Ｂ、６Ｂは０であることが分かる。また、３Ｃから５Ｄは値は一意に定まらないものの、ある範囲で推測することができる。
【０１０９】
このように、第１の実施例では、異なる種類（例えば、ＱｏＳ、ＶＬＡＮ）の統計値を同じタイミングで記録するので、統計値を取得していない組み合わせであっても、統計値を推測することができる。
【０１１０】
以上に説明したように、本発明の第１の実施例では、ＤＢ＿ＷＰの情報をＲｘフレーム処理部１３２に転送されるフレームに付加し、ＤＢ＿ＷＰによってＲｘフレーム処理部１３２での統計処理の結果が記録される統計領域を切り替えるので、一連のフレームに関する統計値は同じ統計領域に記録される。
【０１１１】
また、統計値を読み出すタイミングが統計領域の切り替えタイミングを含むことがなく、統計領域の切り替えタイミングを跨って、統計値を読み出すことがなくなる。
【０１１２】
また、フレーム処理によって統計値が書き込まれる統計領域と、統計値を読み出す統計領域を別の領域にしたので、フレーム処理による影響を受けることなく、統計値を読み出すことができる。
【０１１３】
＜実施例２＞
次に、本発明の第２の実施例について説明する。
【０１１４】
第２の実施例は、統計領域を切り替える毎に統計値を「０」に初期化し、統計領域の切り替え前後の統計値は統計制御処理プログラム１１２が積算する。このため、ＤＢ＿ＲＰを有さない。
【０１１５】
第２の実施例の説明において、前述した第１の実施例と異なる構成及び処理についてのみ説明し、同じ構成及び処理については説明を省略する。
【０１１６】
図１３は、第２の実施例の統計処理部１（１４７）内の統計データベースの構成例を説明する図である。なお、統計処理部１（１４７）内の統計データベースの構成例を説明するが、他の統計処理部も同様の統計データベースを有する。
【０１１７】
統計データベースは、エントリ番号４０１、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）を含む。
【０１１８】
エントリ番号４０１は、収集する統計を一意に識別するための番号である。統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）は、統計値を格納する。統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）は、前述したように、Ｒｘフレーム処理部１３２のメモリ内の記憶領域によって構成され、統計領域へアクセスする際のアドレスのオフセットがＤＢ＿ＷＰ制御部１４１によって制御される。
【０１１９】
例えば、ＤＢ＿ＷＰ制御部１４１が管理するＤＢ＿ＷＰの値が「０」である場合、統計値が統計領域１Ａ（１４５）に書き込まれ、統計領域１Ｂ（１４６）の統計値が読み出される。また、ＤＢ＿ＷＰの値が「１」である場合、統計値が統計領域１Ｂ（１４６）に書き込まれ、統計領域１Ａ（１４５）の統計値が読み出される。
【０１２０】
なお、統計領域１Ａ（１４５）及び統計領域１Ｂ（１４６）の大きさ及び記憶領域上の配置を適切（例えば、１０２４ｋバイトなどの２のｎ乗）に選んだ場合、ＤＢ＿ＲＰの値及びＤＢ＿ＷＰの値をエントリ番号の最上位に付加したアドレスにアクセスすることによって、アクセスする統計領域を選択することができる。また、ＤＢ＿ＲＰの値及びＤＢ＿ＷＰの値を、「０」又は「１」ではなく、アドレスのオフセット値としてもよい。
【０１２１】
次に、第２の実施例のフレーム処理について説明する。第２の実施例のフレーム処理は、フレームが入力された際に、フレーム処理部１３０のＲｘフレーム処理部１３２が実行する。なお、他のＲｘフレーム処理部及びＴｘフレーム処理部も同じ処理を実行する。
【０１２２】
すなわち、第２の実施例では、まず、フレーム処理部１３０のＲｘフレーム処理部１３２は、ＤＢ＿ＷＰを参照し、ＤＢ＿ＷＰに記録された識別子が示す統計領域の統計値を読み出す。すなわち、ＤＢ＿ＷＰが「０」であれば、統計領域Ａに格納された統計値を読み出し、ＤＢ＿ＷＰが「１」であれば、統計領域Ｂに格納された統計値を読み出す。ＤＢ＿ＷＰが示す統計領域から統計値を読み出すことによって、常に最新の統計値を読み出すことができる。
【０１２３】
その後、読み出した統計に、入力されたフレームの統計値を加算し、ＤＢ＿ＷＰが示す統計領域に書き込み、統計値を更新する。
【０１２４】
次に、第２の実施例の統計データ読み出し処理について説明する。第２の実施例の統計データ読み出し処理は、統計制御プログラム１１２が統計データ読み出しを要求した際に（例えば、図５のＳ１０２６）、フレーム処理部１３０のＲｘフレーム処理部１３２が実行する。なお、他のＲｘフレーム処理部及びＴｘフレーム処理部も同じ処理を実行する。
【０１２５】
まず、フレーム処理部１３０は、ＤＢ＿ＷＰを参照し、ＤＢ＿ＷＰが示す領域と反対（ＤＢ＿ＷＰの反転）の統計領域から統計値を読み出し、読み出した統計領域の統計値を０にクリアする。すなわち、ＤＢ＿ＷＰが「０」であれば、統計領域Ｂに格納された統計値を読み出し、ＤＢ＿ＷＰが「１」であれば、統計領域Ａに格納された統計値を読み出す。ＤＢ＿ＷＰが示す領域と反対の統計領域から統計値を読み出すことによって、フレーム処理による統計値の更新の影響を受けることなく、統計値を読み出すことができる。
【０１２６】
図１４は、第２の実施例の統計処理の例を説明する図であり、パケット処理による特定のエントリの統計値及びフラグの変化を示す。
【０１２７】
第２の実施例の統計データベースは、図１３において前述したように、ＤＢ＿ＲＰ及びＨＩＴＢＩＴを有さない。
【０１２８】
まず、統計領域Ａ（ＤＢ＿ＷＰ＝０）で、パケットが処理され（２１１）、統計領域Ａの統計値が「０」から「１」に更新される。その後、パケット処理によって統計領域Ａの統計値が加算される。
【０１２９】
その後、統計領域Ｂの統計値が読み出される（２１２）。第２の実施例では、読み出しの際に統計値をクリアしない。但し、このタイミングでは、統計値は「０」である。
【０１３０】
その後、パケット処理によって統計領域Ａの統計値が加算され、パケット処理が終了したタイミングで、統計値を記録する統計領域が統計領域Ａから統計領域Ｂに切り替えられる（２１３）。このため、統計領域Ａの統計値に当該パケット処理による統計値が加算された値が切り替え後の統計領域Ｂに書き込まれ、統計領域Ｂの統計値が「０」から「６」に更新される。その後、パケット処理によって統計領域Ｂの統計値が加算される。
【０１３１】
その後、統計領域Ａの統計値が読み出される（２１４）。第２の実施例では、読み出しの際に統計値は変化しない。
【０１３２】
その後、パケット処理によって統計領域Ｂの統計値が加算され、パケット処理が終了したタイミングで、統計値を記録する統計領域が統計領域Ｂから統計領域Ａに切り替えられる（２１５）。このため、統計領域Ｂの統計値に当該パケット処理による統計値が加算された値が切り替え後の統計領域Ａに書き込まれ、統計領域Ａの統計値が「５」から「１２」に更新される。
【０１３３】
その後、統計領域Ｂの統計値が読み出される（２１６）。第２の実施例では、読み出しの際に統計値は変化しない。
【０１３４】
なお、第２の実施例では、統計領域の切り替えから統計を読み出すまでの間に、パケット処理が実行されなかった場合、補正処理（例えば、反対側の統計領域から統計値を読み出す処理）が必要となる。
【０１３５】
以上に説明したように、本発明の第２の実施例では、統計領域から統計値を読み出す際に統計値をクリアせず、ＤＢ＿ＷＰの値が示す統計領域で統計の積算値を管理する。このため、Ｒｘフレーム処理部１３２の制御が複雑になるが、統計制御処理プログラム１１２が統計の積算値を管理する必要がない。このため、統計領域から統計値を読み出して、コンソール１３によって表示した後は、統計値を格納するために割り当てられたメモリを解放することができ、必要なメモリの記憶容量を少なくすることができる。
【０１３６】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【０１３７】
１３  コンソール
１１０  制御部
１１１  プロセッサ
１１２  統計制御プログラム
１１３  メモリ
１１４  統計データ
１１５  タイマ
１２０  フォワーディング部
１２１  クロスバスイッチ
１３０  フレーム処理部
１６０  ネットワークインターフェース部
１３１  Ｒｘ転送エンジン
１３２  Ｒｘフレーム処理部
１３３  Ｔｘ転送エンジン
１３４  Ｔｘフレーム処理部
１４１  ＤＢ＿ＷＰ制御部
１４２  フィルタ検索処理部
１４３  経路検索処理部
１４４  統計処理部１
１４５  統計領域１Ａ
１４６  統計領域１Ｂ
１４７  統計処理部２
１４８  統計領域２Ａ
１４９  統計領域２Ｂ
１５２  フィルタ検索処理部
１５３  経路検索処理部
１５４  統計処理部４
１５５  統計領域４Ａ
１５６  統計領域４Ｂ
１５７  統計処理部３
１５８  統計領域３Ａ
１５９  統計領域３Ｂ
１６０  ネットワークインターフェース部
１６１  物理ポート
【図１】
2014158093.tif 000003
【図２Ａ】
2014158093.tif 000004
【図２Ｂ】
2014158093.tif 000005
【図３】
2014158093.tif 000006
【図４】
2014158093.tif 000007
【図５】
2014158093.tif 000008
【図６】
2014158093.tif 000009
【図７】
2014158093.tif 000010
【図８Ａ】
2014158093.tif 000011
【図８Ｂ】
2014158093.tif 000012
【図９】
2014158093.tif 000013
【図１０】
2014158093.tif 000014
【図１１】
2014158093.tif 000015
【図１２】
2014158093.tif 000016
【図１３】
2014158093.tif 000017
【図１４】
2014158093.tif 000018