(57)【特許請求の範囲】
【請求項１】
情報処理装置間で送受信されるパケットを中継するパケット通信装置であって、
ネットワークに接続されるネットワークインターフェースと、
前記ネットワークインターフェースを介して受信される複数のパケットのうちいずれか一のパケットの宛先であるＣＰＵと、
前記ＣＰＵ宛のパケットを前記ＣＰＵに出力するために保持する第一のバッファと、
複数の面を備え、前記第一のバッファに保持するＣＰＵ宛のパケットの複製を前記面のいずれかに保持する第二のバッファと、
前記第一のバッファの使用量に基づいて、前記第二のバッファの所定の面に前記複製を保持する、あるいは、前記第二のバッファに保持される複製を他の記憶領域に退避する、受信履歴制御部と、を有するパケット通信装置。
【請求項２】
請求項１記載のパケット通信装置であって、
さらに、前記第一のバッファ使用量を監視し、前記バッファ使用量が第一の閾値に達した場合、前記複製を保持する前記第二のバッファの面を切替える指示を前記受信履歴制御部に行ない、
前記バッファ使用量が第一の閾値よりも大きい第二の閾値に達した場合、前記他の記憶領域に前記複製を退避させる指示を前記受信履歴制御部に行う、パケット受信管理部を、有するパケット通信装置。
【請求項３】
請求項１記載のパケット通信装置であって、
前記第一のバッファと前記第二のバッファにおける一の面とは、同じ容量である、パケット通信装置。
【請求項４】
請求項１記載のパケット通信装置であって、
前記受信履歴制御部は、
前記第一のバッファ使用量が第一の閾値に達しない場合、前記第二のバッファの所定の面をリングバッファとして、既に保持されている複製に上書きして、異なるＣＰＵ宛パケットの複製を上書きし、
前記第一のバッファ使用量が第一の閾値に達し、かつ、前記第二のバッファの所定の面に空きがない場合、ＣＰＵ宛パケットの複製を保持する面を切り替え、前記第二のバッファの他の面に保持する、パケット通信装置。
【請求項５】
請求項４記載のパケット通信装置であって、
前記第一のバッファ使用量が前記第一の閾値に達した後に、第三の閾値を下回り、かつ、
前記第二のバッファの所定の面に空きがない場合、前記第二のバッファの所定の面をリングバッファとして、既に保持されている複製に上書きして、異なるＣＰＵ宛パケットの複製を上書きする、パケット通信装置。
【請求項６】
請求項１記載のパケット通信装置であって、
前記ＣＰＵから前記ネットワークインターフェースを介してネットワークに向けて出力するために、前記ＣＰＵからのＣＰＵ発パケットを保持する第三のバッファと、
複数の面を備え、前記第三のバッファに保持するＣＰＵ発パケットの複製を前記面のいずれかに保持する前記ＣＰＵ発パケットの複製を保持する第四のバッファと、
前記第三のバッファの使用量に基づいて、前記第四のバッファの所定の面にＣＰＵ発パケットの複製を保持する、あるいは、前記第四のバッファに保持されるＣＰＵ発パケットの複製を他の記憶領域に退避する、送信履歴制御部と、を有するパケット通信装置。
【請求項７】
情報処理装置間で送受信されるパケットを中継するパケット通信装置であって、
ネットワークに接続されるネットワークインターフェースと、
前記ネットワークインターフェースを介して受信される複数のパケットのうちいずれか一のパケットの宛先または前記ネットワークインターフェースを介して送信される複数のパケットのうちいずれか一のパケットの送信元であるＣＰＵと、
受信した受信パケットを前記ＣＰＵに出力するために保持する受信バッファと、
前記ＣＰＵから出力される送信パケットを前記ネットワークに送信するために保持する送信バッファと、
前記受信バッファの受信パケットの保持状況に基づいて決定される、所定の領域に前記受信パケットの複製を保持する受信履歴バッファと、
前記送信バッファの送信パケットの保持状況に基づいて決定される、所定の領域に前記送信パケットの複製を保持する送信履歴バッファと、
前記受信履歴バッファに格納される前記受信パケットの複製を他の記憶領域に退避し、前記送信履歴バッファに格納される前記送信パケットの複製を他の記憶領域に退避する退避部と、を有するパケット通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
一般にサーバや端末間の間でやり取りされるトラフィックの流量は一定ではなく、瞬間的に過負荷なトラフィックになる(バースト)ことがある。パケット通信装置はこうしたバーストトラフィックを当該装置のＣＰＵ宛に受けたとき、受信バッファにパケットを滞留させ、順次バッファからパケットを出すことでパケットロスを防止している。しかしバーストトラフィックが通信装置の性能限界を超えた場合は、輻輳事象によりパケットロスが発生してしまう。
【０００３】
昨今のサーバ、端末、通信装置の性能向上に伴い、こうした想定以上の過負荷トラフィック、または攻撃などによる不正行為によるトラフィックが発生する可能性が高くなる傾向にある。バーストトラフィックの流量があまりに大きい場合、通信装置のバッファでパケットを滞留しきれなくなりパケットロスが発生するだけでなく、通常動作が阻害される輻輳事象が増加することが想定される。
【０００４】
また、ネットワークを利用するユーザ数が増大する中、サービス提供側は限られた資源を最大限利用してサービスを提供するため、１台のネットワーク装置でのユーザ収容数が拡大していて、前述のような通信装置の輻輳が発生した場合、原因となるトラフィックを特定することが困難なケースも増えてきている。
【０００５】
こうしたネットワーク装置の輻輳はネットワークの安定した運用を妨げるものであり、避けることが望ましい。また輻輳が発生した場合は、速やかに原因となるトラフィックを特定し、対策することでネットワークの安定化を図ることが望ましい。
【０００６】
特許文献１は、ネットワーク装置内の受信バッファが溢れた時や、溢れそうな時をトリガーにパケット中継装置内で、バーストによりパケットがキューから溢れたもしくは溢れそうになったことをトリガーとして、該当キューに詰まれるパケットだけをミラーリング対象とするパケット中継装置が開示される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１-１４２５３５
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、トリガーとなる事象が発生した瞬間のパケット中継装置内の該当バッファに格納されている情報を退避するものであるため、事象発生に至る経緯の解析が困難である。
【０００９】
このようにトラフィックが増大し、通信装置およびパケット中継装置内に過負荷が発生した際、事象の原因となる情報が収集できなかったり、情報収集できたとしても事象発生時の情報しかなく、その事象に至った経緯が分からず、その後の解析が困難になったりするケースが多い。
【課題を解決するための手段】
【００１０】
本発明では、上述の少なくとも一の課題を解決するために、以下の態様を有する。本発明の一態様では、パケット中継装置内でＣＰＵ宛もしくはＣＰＵ発のパケットを受信バッファもしくは送信バッファに保持する際に、パケットを複製し、受信バッファに対応した受信履歴バッファ、もしくは送信バッファに対応した送信履歴バッファへミラーリングして保持するパケット通信装置である。なお、受信履歴バッファは、複数面を有し、対応する受信バッファと同等のサイズでもよい。
【００１１】
そして、本発明の態様であるパケット通信装置は、受信バッファの使用量に応じて決定される受信履歴バッファの面に、パケットの複製を書き込む。さらに本発明の態様であるパケット通信装置は、受信バッファの使用量に応じて、受信履歴バッファに保持される複製を他の記憶領域に退避させる。
【００１２】
なお、本発明の態様でのパケット中継装置内でＣＰＵ宛もしくはＣＰＵ発のパケットには、ＩＰ通信を行うための基本的なプロトコルであるＡＲＰやＮＤＰ、その他、トポロジー／ネットワークを構成するために必要なネットワークプロトコルなどが該当し、ネットワークの安定運用のために必要なパケットである。よって、輻輳事象発生時、ＣＰＵ発パケットやＣＰＵ宛パケットの履歴を分析し、特定した原因に対応することが、ネットワークを安定運用する上で重要となる。
【発明の効果】
【００１３】
パケットの中継を継続しつつ、パケットの複製を保持、退避させることにより、パケットの受信履歴または送信履歴の少なくとも一方が分析できる。
【図面の簡単な説明】
【００１４】
【図１】パケット通信装置の構成を示す。
【図２】パケット通信装置のＣＰＵ宛パケット受信処理に関連する構成を示す。
【図３】ＣＰＵ宛受信管理データテーブルを示す。
【図４】受信履歴制御データテーブルを示す。
【図５】ＣＰＵ宛受信管理部１３７が実行するパケット受信処理の詳細を示すフローチャートである。
【図６】受信履歴制御部１４０が実行する受信履歴バッファ処理の詳細を示すフローチャートである。
【図７】パケット通信装置のＣＰＵ発パケット送信処理に関連する構成を示す。
【図８】受信バッファと受信履歴バッファとに受信したパケットを時系列に示す図である。
【図９】受信バッファと受信履歴バッファとに受信したパケットを時系列に示す図である。
【図１０】受信バッファと受信履歴バッファとに受信したパケットを時系列に示す図である。
【図１１】受信バッファと受信履歴バッファとに受信したパケットを時系列に示す図である。
【発明を実施するための形態】
【００１５】
図１は、パケット通信装置１０１の構成を示す。図１を用いて通信装置１０１における受信したＣＰＵ宛パケット及び送信されるＣＰＵ発パケットの制御処理の流れが説明される。パケット通信装置１０１は、インターネット等のネットワークにおけるパケット通信装置で、攻撃などによる過負荷トラフィックによるネットワーク装置輻輳およびパケットロスを監視/防止および受信パケットを解析する。
【００１６】
パケット通信装置１０１は、物理回線制御部１３１―a及び物理回線制御部１３１−ｂを有する。物理回線制御部１３１は、ネットワークに接続され、パケットの送受信がされるネットワークインターフェースである。また、パケット通信装置１０１は、ＣＰＵ宛受信管理部１３７、受信履歴制御部１４０、受信履歴バッファ１４１、受信履歴解析部１４３、ＣＰＵ発送信管理部２０２、送信履歴制御部２０５、送信履歴バッファ２０６及び送信履歴解析部２０８を有する。受信バッファ１３８は、ＣＰＵ宛のパケットをＣＰＵに出力するために保持するバッファである。受信履歴バッファ１４１はＣＰＵ宛受信管理部１３７内の受信バッファ１３８と同じサイズのバッファを複数面持ち、受信バッファ１３８に保持されるパケットの複製を、複数面のうちいずれか一の面に保持する。
【００１７】
パケット通信装置１０１において、ＣＰＵ宛フレーム受信部１３６は、物理回線制御部１３１−ａまたは１３１−ｂを介して受信するとＣＰＵ宛パケットを複製し、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８と受信履歴制御部１４０内の受信履歴バッファ１４１に詰まれる。そして、ＣＰＵ宛フレーム送信部１４４は、受信バッファ１３８に詰まれたパケットを随時ＣＰＵ１４５へ転送する。一方、受信履歴制御部１４１は、受信履歴バッファ１４１に詰まれたパケットを転送すること無く、受信履歴情報として保持する。受信履歴制御部１４０は、受信バッファ１３８の使用量に基づいて、受信履歴バッファ１４１のいずれか一の面にＣＰＵ宛パケットの複製を保持するか、受信履歴バッファに保持される複製を、受信履歴解析部１４３が有する記憶領域に退避する。
【００１８】
具体的には、受信履歴制御部１４０は、受信バッファ１３８の使用量を監視し、受信履歴情報の格納先バッファを変更すべき閾値未満の状態を保持している場合、書込対象となる受信履歴バッファ１４１の先頭バッファをリングバッファとして動作させる。この動作結果、先頭のバッファ以外の受信履歴バッファを使用しないことにより、不必要な情報で受信履歴バッファを圧迫させることを回避でき、装置内の処理負荷を抑える。また、パケット通信装置１０１は、受信履歴バッファに保持される情報を用いてパケット分析を行うことができる。
【００１９】
また、ＣＰＵ宛受信管理部１３７は、受信バッファ１３８の使用量を監視し受信履歴情報の格納先バッファを変更すべき閾値を超過した場合、または外部イベント等を契機に、受信履歴制御部１４１に、受信履歴バッファ１４１のパケット格納先となるバッファ面を２番目のバッファ面への切替を指示する。受信履歴制御部１４０は、書込対象となる受信履歴バッファ１４１の先頭バッファ以外のバッファ面は、リングバッファとしては動作せずパケット格納領域がなくなると３番目へバッファ面を切り替えて受信履歴情報を保持する。その後、受信履歴制御部１４０は、受信バッファ１３８の使用量が受信履歴情報を退避すべき特定閾値に達した場合もしくは外部イベント等を契機に、受信履歴情報が格納されている全ての受信履歴バッファ１４１を受信履歴解析部１４３へ退避させる。これにより、退避させた受信履歴情報を用いて受信バッファにパケットが溜まり始めてから受信履歴情報退避のイベント発生までのパケット分析ができるようになり、装置輻輳発生時のみならず輻輳に至った経緯までの分析することが可能となる。
【００２０】
また、ＣＰＵ発フレーム受信部２０１は、ＣＰＵ１４５からのパケットを複製し、ＣＰＵ１４５からのパケットをＣＰＵ発送信管理部２０２内の送信バッファ２０３に、その複製を送信バッファに対応した送信履歴制御部２０５内の送信履歴バッファ２０６に詰まれる（保持する）。送信バッファ２０３は、ＣＰＵから出力される送信パケットをネットワークに送信するために保持する。
【００２１】
ＣＰＵ発フレーム送信部２０９は、ＣＰＵ発送信バッファ２０３に詰まれたパケットを随時物理回線制御部１３１−ｂまたは１３１−ａに送信する。送信履歴制御部２０５は、送信履歴バッファ２０６に詰まれたパケットを前記受信履歴バッファ１４１と同様に、送信履歴情報として保持する。送信履歴バッファ２０６は、送信バッファ２０３と同じサイズのバッファを複数面持ち、送信バッファ２０３に保持される送信パケットの複製を保持する。
【００２２】
ＣＰＵ発送信管理部２０２は、送信バッファ２０３の使用量を監視し、送信履歴情報の格納先バッファを変更すべき閾値未満の状態を保持している場合、送信履歴制御部２０６は、書込対象となる送信履歴バッファ２０６の先頭バッファをリングバッファとして動作させる。つまり、送信履歴制御部２０５は、ＣＰＵ発送信バッファ２０３の使用量に基づいて、送信履歴バッファ２０５のバッファの所定の面にＣＰＵ宛のパケットの複製を保持する、あるいは、送信履歴バッファ２０６に保持されるＣＰＵ宛のパケットの複製を他の記憶領域を有する送信履歴解析部２０８に退避する。
【００２３】
その後、送信履歴情報の格納先バッファを変更すべき閾値を超過した場合、または外部イベント等を契機に、送信履歴制御部２０５は、送信履歴バッファ２０６のパケット格納先となるバッファ面を２番目のバッファ面へ切替え、さらに送信バッファ２０３の使用量が送信履歴情報を退避すべき特定閾値に達した場合、もしくは外部イベント等を契機に、送信履歴制御部２０５は、送信履歴情報が格納されている全ての送信履歴バッファ２０６を送信履歴解析部２０８へ退避させる。退避された送信履歴情報は、送信バッファにパケットが溜まり始めてから送信履歴情報退避のイベント発生までのパケット分析に用いてもよい。
【００２４】
受信履歴制御部１４０は、特定閾値Over/外部イベント等をトリガーに、受信履歴バッファ１４１に格納される受信履歴を分析用エリアである受信履歴解析部１４３に退避する。送信履歴制御部２０５は、特定閾値Over/外部イベント等をトリガーに送信履歴バッファ２０６に格納されている送信履歴を分析用エリアである送信履歴解析部２０８に退避する。
【００２５】
また、物理回線制御部１３１−ｂより受信し、ＣＰＵ１４５を経由して物理回線制御部１３１−ａへ送信されるパケットについても、物理回線制御部１３１−ｂが受信したパケットは複製され、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８と受信バッファに対応した受信履歴制御部１４０内の受信履歴バッファ１４１に詰まれる。
【００２６】
さらにＣＰＵ１４５より物理回線制御部１３１−ａへ送信するパケットは複製され、ＣＰＵ発送信管理部２０２内の送信バッファ２０３と送信バッファに対応した送信履歴制御部２０５内の送信履歴バッファ２０６に詰まれる。送信履歴バッファ２０６についても受信履歴バッファ１４１と同様な制御が行われることによりＣＰＵ宛パケット、およびＣＰＵ発パケットの分析を行うことができる。
【００２７】
以下、機能ブロック、データテーブル、ＣＰＵ宛/発パケットに対する受信履歴バッファ、もしくは送信履歴バッファの制御処理、および受信履歴情報、もしくは送信履歴情報の退避処理を実施の形態によって詳細に説明する。
【００２８】
図２は、図１で説明した装置構成をより詳細に説明する。図２は、パケット通信装置のＣＰＵ宛パケット受信処理に関連する構成の一例を示す図である。パケット通信装置１０１は装置制御部１０２およびパケット転送制御部１０３を有する。装置制御部１０２はフレーム制御部１３５、ＣＰＵ１４５を有する。
【００２９】
パケット転送制御部１０３は、物理回線制御部１３１、受信制御部１３２、送信制御部１３３、フレーム中継部１３４を有する。物理回線制御部１３１は装置の物理回線状態を管理し、物理回線１３０より受信したパケットを受信制御部１３２へ送信する機能と送信制御部１３３より受信したパケットを物理回線１３０へ送信する機能を有する。受信制御部１３２は物理回線制御部１３１から受信したパケットをフレーム中継部１３４へ送信する機能を有する。送信制御部１３３はフレーム中継部１３４から受信したパケットを物理回線制御部１３１へ送信する機能を有する。
【００３０】
フレーム中継部１３４は受信制御部１３２から受信したパケットをＣＰＵ宛パケットかハード転送パケットかを識別し、ＣＰＵ宛パケットをフレーム制御部１３５のＣＰＵ宛フレーム受信部１３６へ送信する機能と、ネットワークに向け転送するためにハード転送パケットを送信制御部１３３へ送信する機能を有する。
【００３１】
フレーム制御部１３５はＣＰＵ宛フレーム受信部１３６、ＣＰＵ宛受信管理部１３７、受信履歴制御部１４０、受信履歴解析部１４３、ＣＰＵ宛フレーム送信部１４４を有する。フレーム制御部１３５はＦＰＧＡ等のハードウェアもしくはＣＰＵが実行するプログラムのどちらでも実現できるものとする。ＣＰＵ宛フレーム受信部１３６はフレーム中継部１３４より受信したパケットをコピーし、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８、および受信履歴制御部１４０内の受信履歴バッファ１４１へ送信する機能を有する。
【００３２】
ＣＰＵ宛受信管理部１３７は受信バッファ１３８、ＣＰＵ宛受信管理データベース１３９を有する。ＣＰＵ宛受信管理部１３７は、受信バッファ１３８を監視し、ＣＰＵ宛フレーム受信部１３６よりパケットを受信した際、ＣＰＵ宛受信管理データベース１３９を参照及び更新し、ＣＰＵ宛フレーム送信部１４４へ送信する機能を有する。ＣＰＵ宛受信管理データベース１３９は、受信バッファ１３８の監視状況に関する情報を保持する。
【００３３】
受信履歴制御部１４０は受信履歴バッファ１４１、受信履歴制御データベース１４２を有する。受信履歴制御部１４０は、ＣＰＵ宛フレーム受信部１３６よりパケットを受信した際、パケットを受信履歴バッファ１４１へ書き込み、受信履歴制御データベース１４２を参照及び更新し、受信履歴バッファの使用状況を監視する機能を有する。受信履歴バッファ１４１は、書きこむ記憶領域が複数面有するメモリ空間である。また、受信履歴バッファ１４１は、その複数面のうち一度に使用可能な面数は最大面数-１としてもよい。受信履歴制御データベース１４２は、受信履歴バッファ１４１への書き込み状況に関する情報を保持する。
【００３４】
受信履歴解析部１４３は、受信履歴バッファ１４１から退避された情報を解析し、事象発生までのトラフィック状況やバッファ退避に至った発生傾向を導き出す機能を有する。ＣＰＵ宛フレーム送信部 １４４は、ＣＰＵ宛受信管理部１３７より受信したパケットをＣＰＵ１４５へ送信する機能を有する。
【００３５】
図７は、パケット通信装置１０１のフレーム制御部１３５の変形例を示す。図７のフレーム制御部１３５は、ＣＰＵ発パケット送信するための内部構成である。
【００３６】
フレーム制御部１３５は、ＣＰＵ発フレーム受信部２０１、ＣＰＵ発送信管理部２０２、送信履歴制御部２０５、送信履歴解析部２０８、ＣＰＵ発フレーム送信部２０９を有する。  ＣＰＵ発フレーム受信部２０１は、ＣＰＵより受信したパケットをコピーし、ＣＰＵ発送信管理部２０２内の送信バッファ２０３、および送信履歴制御部２０５内の送信履歴バッファ２０６へ送信する機能を有する回路である。ＣＰＵ発送信管理部２０２は送信バッファ２０３、ＣＰＵ発送信管理データベース２０４を有する。ＣＰＵ発送信管理部２０２は、送信バッファ２０３を監視し、ＣＰＵ発フレーム受信部２０１よりパケットを受信した際、ＣＰＵ発送信管理データベース２０４を参照及び更新し、ＣＰＵ発フレーム送信部 ２０９へ送信する機能を有する回路である。
【００３７】
ＣＰＵ発送信管理データベース２０４は、送信バッファ２０３の監視状況に関する情報を保持する。送信履歴制御部２０５は送信履歴バッファ２０６、送信履歴制御データベース２０７を有する。送信履歴制御部２０５は、ＣＰＵ発フレーム受信部２０１よりパケットを受信した際、パケットを送信履歴バッファ２０６へ書き込み、送信履歴制御データベース２０７を参照及び更新し、送信履歴バッファの使用状況を監視する機能を有する。
【００３８】
送信履歴バッファ２０６は、メモリ空間が複数分割されることにより複数面を有する。また、その複数面のうち一度に使用可能な面数は最大面数-１としてもよい。送信履歴制御データベース２０７は、送信履歴バッファ２０６への書き込み状況に関する情報を保持する。
【００３９】
送信履歴解析部２０８は、不揮発性の記憶領域を有し、送信履歴バッファ２０６から退避された情報を格納し、格納された情報を用いて解析する機能を有し、事象発生までのトラフィック状況やバッファ退避に至った発生傾向を導き出すための機能である。
【００４０】
ＣＰＵ発フレーム送信部 ２０９は、ＣＰＵ発送信管理部２０２より受信したパケットをフレーム中継部１３４へ送信する機能を有する。  なお、フレーム制御部１３５は、ＣＰＵ宛パケットとＣＰＵ発パケットの双方の中継を行ってもよい。その場合、フレーム制御部１３５には、ＣＰＵ宛フレーム送信部１４４とＣＰＵ宛フレーム受信部２０１により構成され、ＣＰＵ１４５に接続されるフレーム送受信回路が含まれる、当該インターフェースがＣＰＵとのフレームが送受信されてもよい。フレーム制御部１３５は、ＣＰＵ宛受信バッファ１３８とＣＰＵ発送信バッファ２０３の双方を管理してもよい。その場合、フレーム制御部１３５は、ＣＰＵ１４５宛に送信されるパケット及びＣＰＵ１４５から送信されるパケットの転送制御を行う送受信管理回路及びそれらパケットが一時格納されるバッファを有する。送受信管理回路は、ＣＰＵ宛受信管理部１３７とＣＰＵ発送信管理部２０２とにより構成される。さらに、フレーム制御部１３５は、受信履歴制御部１４０及び送信履歴制御部２０５により構成されてもよい。その場合、フレーム制御部１３５は、受信履歴バッファ１４１及び送信履歴バッファ２０６の使用状況を監視し、それぞれのバッファの面切り替えや履歴解析のために他のリソースにバッファに格納されるデータを退避させる回路を有する。
【００４１】
図３は、ＣＰＵ宛受信管理データベース１３９を示す。ＣＰＵ宛受信管理データベース１３９は、受信バッファ１３８の監視状況に関する情報を保持し、例えば、図３−Ａ１００に示すＣＰＵ宛受信管理データテーブルＡ１００を持つ。図３は、ＣＰＵ宛受信管理部１３７が保持するＣＰＵ宛受信管理データベース１３９は、ＣＰＵ宛受信管理データテーブルＡ１００を含む。ＣＰＵ宛受信管理データテーブルＡ１００は、それぞれ監視対象となる受信バッファの最大値である受信バッファサイズＡ１０１、受信履歴バッファの面切替処理が動作しているかを判定する受信履歴切替中フラグＡ１０２、受信履歴バッファの面切替制御を開始する閾値である受信履歴切替開始閾値Ａ１０３、受信履歴バッファの面切替制御を停止する閾値である受信履歴切替停止閾値Ａ１０４、受信履歴バッファに格納された情報を解析のため受信履歴解析部１４３に退避する閾値である受信履歴退避閾値Ａ１０５のフィールドから構成されている。
【００４２】
受信履歴切替中フラグＡ１０２は、受信履歴バッファの面切替処理が動作しているか示す情報が格納される。その情報が「on」である場合は受信履歴バッファの面切替処理が動作中であることを示す。その情報が「off」である場合は受信履歴情報が書込先頭受信履歴バッファにのみ格納されていることを示す。受信履歴切替開始閾値Ａ１０３は、受信履歴バッファの面切替制御を開始する閾値であって受信バッファの容量に対してＣＰＵ受信パケットが保持されている割合や保持容量により特定される。受信履歴切替停止閾値Ａ１０４は、先頭の受信履歴バッファによる履歴管理に移行する閾値であって、受信バッファの容量に対してＣＰＵ受信パケットが保持されている割合や保持容量により特定される。受信履歴退避閾値Ａ１０５は、受信履歴解析部１４３に退避する閾値で、受信バッファの容量に対してＣＰＵ受信パケットが保持されている割合や保持容量により特定される。受信履歴退避閾値Ａ１０５は、例えば、受信バッファ溢れを受信履歴解析部１４３に退避する契機にする場合は１００%と設定される。
【００４３】
ＣＰＵ宛受信管理データテーブル１３９の受信バッファサイズＡ１０１は装置が有する受信バッファ１３８のサイズであり固定値となる。ＣＰＵ宛受信管理データテーブル１３９の受信履歴切替開始閾値Ａ１０３、受信履歴切替停止閾値Ａ１０４、受信履歴退避閾値Ａ１０５は外部入力により、予めコンフィグレーション設定することで生成されるものである。
【００４４】
図４は、受信履歴制御データベース１４２を示す。受信履歴制御データベース１４２は、受信履歴バッファ１４１への書き込み状況に関する情報を保持し、例えば図４に示す受信履歴制御データテーブルＢ１００の構成を有する。受信履歴制御データテーブルＢ１００は、それぞれ受信履歴バッファに格納できるパケットの最大値である受信履歴バッファサイズＢ１０１、受信履歴情報を格納する受信履歴バッファの最大面数を示す受信履歴バッファ最大面数Ｂ１０２、定常的に受信履歴を格納するリングバッファとして動作する受信履歴バッファの面を示す書込先頭受信履歴バッファ番号Ｂ１０３、現在受信履歴を格納しているバッファの面番号を示す書込中受信履歴バッファ番号Ｂ１０４、受信バッファ１３８の状態が受信履歴情報退避の予備処理である受信履歴バッファの面切替を開始させる状態であるかを示す切替フラグＢ１０５、受信履歴バッファ退避処理を行うかを示す退避フラグＢ１０６のフィールドから構成されている。
【００４５】
受信履歴制御データテーブル１４２の受信履歴バッファサイズＢ１０１は装置が有する受信履歴バッファ１４１のサイズであり、受信バッファ１３８のサイズと同等であるため固定値となる。受信履歴バッファ１４１は同じサイズのバッファを複数面持ち、一回の受信履歴情報退避に使用できる受信履歴バッファ面は、受信履歴バッファ最大面数Ｂ１０２より−１した面数とする。これは、受信履歴バッファに格納されたパケット情報を受信履歴解析部１４３へ退避する際に受信したパケット情報を格納するため、最低１面はリングバッファとして動作させるためである。なお、受信履歴制御データテーブル１４２の受信履歴バッファ最大面数Ｂ１０２は予めコンフィグレーション設定することで生成されるものである。受信履歴制御データテーブル１４２の切替フラグＢ１０５、退避フラグＢ１０６はＣＰＵ宛受信管理部１３７から通知された情報を基に生成される。
【００４６】
図５は、パケット通信装置１０１におけるＣＰＵ宛受信管理部１３７が実行するパケット受信処理Ｃ１００を示すフローチャートである。この処理は、例えば、ＣＰＵ宛受信管理部１３７の受信バッファ１３８にパケットを格納するときに実行する。ＣＰＵ宛受信管理部１３７は、受信バッファ１３８にパケットを格納すると、Ｃ１０１ではＣＰＵ宛受信管理データテーブルＡ１００を参照し、受信履歴切替中フラグＡ１０２がｏｎかｏｆｆかを判定する。判定結果がｏｎであったならばＣ１０５へ、ｏｆｆであったならばＣ１０２へ移行する。Ｃ１０２では、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＡ１００を参照し、パケットを格納した受信バッファ１３８の使用量が受信履歴切替開始閾値Ａ１０３を上回っているか否かを判定する。判定結果が上回っているならばＣ１０３へ、上回っていないならば処理を終了する。
【００４７】
Ｃ１０３では、ＣＰＵ宛受信管理部１３７は、受信履歴制御部１４０へ受信履歴バッファの面切替処理を動作させるための通知を行い、受信履歴制御データテーブルＢ１００の切替フラグＢ１０５をｏｎに設定し、Ｃ１０４へ移行する。Ｃ１０４では、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替中フラグＡ１０２をｏｎに設定し処理を終了する。
【００４８】
Ｃ１０５では、ＣＰＵ宛受信管理部１３７は、パケットを格納した受信バッファ１３８の使用量が受信履歴切替停止閾値Ａ１０４を下回っているか否かを判定する。判定結果が下回っているならばＣ１０６へ、下回っていないならばＣ１０８へ移行する。Ｃ１０６では、ＣＰＵ宛受信管理部１３７は、受信履歴制御部１４０へ受信履歴バッファの面切替処理を停止させるための通知を行い、受信履歴制御データテーブルＢ１００の退避フラグＢ１０６をｏｎに設定し、Ｃ１０７へ移行する。Ｃ１０７では、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替中フラグＡ１０２をｏｆｆに設定し処理を終了する。
【００４９】
Ｃ１０８では、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＡ１００を参照し、パケットを格納した受信バッファ１３８の使用量が受信履歴退避閾値Ａ１０５を上回っているか否かを判定する。判定結果が上回っているならばＣ１０９へ、上回っていないならば処理を終了する。Ｃ１０９ではＣＰＵ宛受信管理部１３７は、受信履歴制御部１４０へ全ての受信履歴バッファを退避させるための通知を行い、受信履歴制御データテーブルＢ１００の退避フラグＢ１０６をｏｎに設定し、Ｃ１１０へ移行する。Ｃ１１０ではＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替中フラグＡ１０２をｏｆｆに設定し処理を終了する。なお、パケットを受信するタイミングではなく、ＣＰＵ宛受信管理部１３７が、受信バッファ１３８の利用状況を監視し、定期的に図５のＣ１０１、１０５、１０８における各閾値以上になっているか判断を行なってもよい。一例である図５のフローチャートに従って、ＣＰＵ宛受信管理部１３７が、ＣＰＵ宛受信管理データテーブルＡ１００を参照し、受信バッファ１３８の使用状態を取得する。
【００５０】
図６は、パケット通信装置１０１における受信履歴制御部１４０が実行する受信履歴バッファ処理Ｄ１００を示すフローチャートである。この処理は受信履歴バッファ１４１がパケットを受信するときに実行する場合を例にして説明する。受信履歴制御部１４０は、Ｄ１０１では受信履歴制御データテーブルＢ１００の退避フラグＢ１０６がｏｎかｏｆｆかを判定する。判定結果がｏｎであったならばＤ１０８へ、ｏｆｆであったならばＤ１０２へ移行する。Ｄ１０２では受信履歴制御データテーブルＢ１００を参照し、書込中受信履歴バッファ番号Ｂ１０４が示す受信履歴バッファ１４１のパケット格納状況を確認し、受信したパケットを格納する空きがあるか判定する。判定結果が空き有であるならばＤ１１１へ、空き無であるならばＤ１０３へ移行する。Ｄ１０３では受信履歴制御データテーブルＢ１００の切替フラグＢ１０５がｏｎかｏｆｆかを判定する。判定結果がｏｎであるならばＤ１０５へ、ｏｆｆであるならばＤ１０４へ移行する。
【００５１】
Ｄ１０４では、受信したパケットを受信履歴バッファ１４１へ格納するため、受信履歴バッファ１４１において最も古いパケットに上書きしＤ１１１へ移行する。
【００５２】
Ｄ１０５では、受信履歴制御データテーブルＢ１００を参照し、受信履歴バッファの各面にデータが格納済みであるかを判定する。具体的には、受信履歴制御部１４０は、受信履歴制御データテーブルＢ１００の受信履歴バッファ最大数面Ｂ１０２から−１した面数分の受信履歴バッファにパケットを格納済みであるかを判定する。判定結果がＹｅｓであるならばＤ１０８へ、ＮｏであるならばＤ１０６へ移行する。Ｄ１０６では受信したパケットを格納するための受信履歴バッファの面切替を実行しＤ１０７へ移行する。なお、受信履歴バッファの使用面を切り替える際、受信履歴制御部１４０は、受信履歴バッファの面の先頭に面を切り替えた時間を付与してもよい。受信履歴バッファ情報退避後の分析において、時間要素としての分析が可能となる。Ｄ１０７では受信履歴制御データテーブルＢ１００の書込中受信履歴バッファ番号Ｂ１０４を更新しＤ１１１へ移行する。
【００５３】
Ｄ１０８では受信履歴制御データテーブルＢ１００の書込先頭受信履歴バッファ番号Ｂ１０３から書込中受信履歴バッファ番号Ｂ１０４までの全ての受信履歴バッファを解析のため受信履歴解析部１４３へ退避、および退避対象となった受信履歴バッファのバッファクリアを実施し、Ｄ１０９へ移行する。Ｄ１０９では受信履歴制御データテーブルＢ１００の切替フラグＢ１０５と退避フラグＢ１０６をｏｆｆに設定しＤ１１０へ移行する。Ｄ１１０では受信履歴制御データテーブルＢ１００の書込先頭受信履歴バッファ番号Ｂ１０３と書込中受信履歴バッファ番号Ｂ１０４を書込中受信履歴バッファ番号＋１に更新しＤ１１１へ移行する。Ｄ１１１では受信したパケットを受信履歴バッファ１４１に最新パケットとして格納し、処理を終了する。
【００５４】
以上の説明が、ＣＰＵ宛受信パケットの履歴を管理するための、パケット通信装置１０１が有するテーブルやフローチャートである。  一方、ＣＰＵ発送信の履歴を管理するための、パケット通信装置１０１が有するテーブルやフローチャートは、図３から図６と同様である。例えば、ＣＰＵ発送信管理データベース２０４及び送信履歴制御データベース２０７の構成は、図３、図４の各項目のうち「受信」を「送信」に置き換えた構成となる。
ＣＰＵ発送信管理部２０２は、「受信」を「送信」に置き換えた図５のフローチャートと同様の処理を実行する。送信履歴制御部２０５は、「受信」を「送信」に置き換えた図６のフローチャートと同様の処理を実行する。
【００５５】
図８、図９、図１０及び図１１はＣＰＵ宛フレーム受信部１３６とＣＰＵ宛受信管理部１３７と受信履歴制御部１４０の動作を模式的に説明する図である。図中の表は、パケット通信装置１０１におけるＣＰＵ宛受信管理データテーブルＫ１３９および受信履歴制御データテーブルＫ１４２を示している。なお、受信履歴制御部１４０が有する受信履歴バッファ１４１は、No１からNo１０まで、１０面を持っているものとするが、面の数はこれに限られない。
【００５６】
図８は、ＣＰＵ宛受信管理部１３７の受信バッファ１３８の使用量がＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴切替開始閾値を上回らない場合における、ＣＰＵ宛受信管理部１３７と受信履歴制御部１４０の動作を示す。本例ではＣＰＵ宛パケットを受信するパケット通信装置１０１において、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８の使用量が、ＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴切替開始閾値Ａ１０３を超過し、その後受信履歴退避閾値Ａ１０５をも超過した状態である。まず、ＣＰＵ宛フレーム受信部１３６がＣＰＵ宛パケットＰ００１をＣＰＵ宛受信管理部１３７と受信履歴制御部１４０へ送信する。
【００５７】
ＣＰＵ宛受信管理部１３７は、受信バッファ１３８にＣＰＵ宛パケットＰ００１を格納すると、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、受信履歴切替中フラグＡ１０２がｏｎかｏｆｆかを判定する（Ｃ１０１）。受信履歴切替中フラグＡ１０２はｏｆｆであるため、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、パケットを受信した受信バッファ１３８の使用量が受信履歴切替開始閾値Ａ１０３を上回っているか否かを判定する（Ｃ１０２）。判定結果が、受信バッファ１３８の使用量は受信履歴切替開始閾値Ａ１０３を上回っていないため、ＣＰＵ宛受信管理部１３７は、図５の処理を終了する。
【００５８】
また、受信履歴制御部１４０は、ＣＰＵ宛パケットＰ００１を受信すると、受信履歴制御データテーブルＫ１４２を参照し、退避フラグＢ１０６がｏｎかｏｆｆかを判定する（Ｄ１０１）。退避フラグＢ１０６はｏｆｆであるため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、受信履歴バッファの空き判定を実施する（Ｄ１０２）。受信履歴制御部１４０は、受信履歴バッファに空きがあるので受信履歴制御データテーブルＫ１４２を参照し、書込先頭受信履歴バッファ番号Ｂ１０３と書込中受信履歴バッファ番号Ｂ１０４が同じであるので、書込先頭受信履歴バッファへパケットＰ００１を格納する（Ｄ１１１）。ＣＰＵ宛受信管理部１３７内の受信バッファ１３８のパケットＰ００１はその後ＣＰＵ宛フレーム送信部（１４４）へ転送されるが、受信履歴制御部１４０内の受信履歴バッファ１４１は受信パケット情報を累積するため、パケットＰ００１が保持されたままである。例えば、受信履歴バッファ１４１に保持されるパケットＰ００１の複製は、ＣＰＵ１４５にパケットＰ００１に送信された後でも、Ｄ１０４で上書きされる、あるいは受信履歴解析部１４３の記憶領域に退避されるまで、保持される。以降のＣＰＵ宛受信パケットＰ００２についても同様な処理がＣＰＵ宛受信管理部及び受信履歴制御部１４０により図６のフローチャートに従って実施される。
【００５９】
図９は、ＣＰＵ宛受信管理部１３７と受信履歴制御部１４０は、書込中受信履歴バッファ番号Ｂ１０４が書込先頭受信履歴バッファ番号Ｂ１０３と同じで、且つ書込中受信履歴バッファの空きが無い場合の動作を示す。まずＣＰＵ宛フレーム受信部１３６は、ＣＰＵ宛パケットＰ００９をＣＰＵ宛受信管理部１３７と受信履歴制御部１４０へ送信する。ＣＰＵ宛受信管理部１３７は、受信バッファ１３８にＣＰＵ宛パケットＰ００９を格納すると、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、受信履歴切替中フラグＡ１０２がｏｎかｏｆｆかを判定する。ＣＰＵ宛受信管理部１３７は、受信履歴切替中フラグＡ１０２はｏｆｆであるため、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、パケットを受信した受信バッファ１３８の使用量が受信履歴切替開始閾値Ａ１０３を上回っているか否かを判定する（Ｃ１０２）。受信バッファ１３８の使用量は受信履歴切替開始閾値Ａ１０３を上回っていないため、ＣＰＵ宛受信管理部１３７は、図５の処理を終了する。
また、受信履歴制御部１４０の受信履歴バッファ１４１がＣＰＵ宛パケットＰ００９を受信すると、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、退避フラグＢ１０６がｏｎかｏｆｆかを判定する（Ｄ１０１）。受信履歴制御部１４０は、退避フラグＢ１０６はｏｆｆであるため、受信履歴制御データテーブルＫ１４２を参照し、受信履歴バッファの空き判定を実施する（Ｄ１０２）。受信履歴制御部１４０は、空きが無いので受信履歴制御データテーブルＫ１４２を参照し、切替フラグＢ１０５がｏｎかｏｆｆかを判定する（Ｄ１０３）。切替フラグＢ１０５はｏｆｆであるため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、書込先頭受信履歴バッファ番号Ｂ１０３と書込中受信履歴バッファ番号Ｂ１０４とを比較する。書込先頭受信履歴バッファ番号Ｂ１０３と書込中受信履歴バッファ番号Ｂ１０４が同じであるので、受信履歴制御部１４０は、書込先頭受信履歴バッファ番号Ｂ１０３の第１番の受信履歴バッファ１４１の面に保持される最古パケットであるＰ００１に最新パケットであるＰ００９を上書きする（Ｄ１０４）。このように書込先頭受信履歴バッファはリングバッファとして、Ｐ０１０以降のＣＰＵ宛受信パケットについても受信履歴制御部１４０は、図６の同様な処理が実施される。
【００６０】
図１０は、ＣＰＵ宛フレーム受信部１３６がＣＰＵ宛パケットＰ０１３をＣＰＵ宛受信管理部１３７と受信履歴制御部１４０へ送信した際、ＣＰＵ宛受信管理部１３７の受信バッファ１３８の使用量がＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴切替開始閾値Ａ１０３を上回る場合の動作を示す。ＣＰＵ宛受信管理部１３７は、受信バッファ１３８にＣＰＵ宛パケットＰ０１３を格納すると、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、受信履歴切替中フラグＡ１０２がｏｎかｏｆｆかを判定する（Ｃ１０１）。受信履歴切替中フラグＡ１０２はｏｆｆであるため、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、パケットを格納した受信バッファ１３８の使用量が受信履歴切替開始閾値Ａ１０３を上回っているか否かを判定する（Ｃ１０２）。受信バッファ１３８の使用量は受信履歴切替開始閾値Ａ１０３を上回っているため、ＣＰＵ宛受信管理部１３７は、受信履歴制御部１４０へ受信履歴バッファの面切替処理を動作させるための通知を行い（Ｃ１０３）、ＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴切替中フラグＡ１０２をｏｎに設定する（Ｃ１０４）。受信履歴制御部１４０はＣＰＵ宛受信管理部１３７より受信履歴切替通知を受信すると、受信履歴制御データテーブルＫ１４２の切替フラグＢ１０５をｏｎに設定する。
【００６１】
また、受信履歴制御部１４０の受信履歴バッファ１４１がＣＰＵ宛パケットＰ０１３を受信すると、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、退避フラグＢ１０６がｏｎかｏｆｆかを判定する（Ｄ１０１）。退避フラグＢ１０６はｏｆｆであるため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、受信履歴バッファの空き判定を実施する（Ｄ１０２）。受信履歴制御部１４０は、空きが無いので受信履歴制御データテーブルＫ１４２を参照し、切替フラグＢ１０５がｏｎかｏｆｆかを判定する（Ｄ１０３）。
【００６２】
切替フラグＢ１０５はｏｎであるため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２を参照し、書込中受信履歴バッファ番号Ｂ１０４が１回の受信履歴情報退避で使用可能とする受信履歴バッファ最大面数Ｂ１０２より−１した番号であるか判定する（Ｄ１０５）。判定結果が、書込中受信履歴バッファ番号Ｂ１０４は「１」であり、かつ、「受信履歴バッファ最大面数Ｂ１０２より−１した番号」ではないため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２の書込中受信履歴バッファ番号Ｂ１０４を＋１に設定し、ＣＰＵ宛パケットＰ０１３を新たな受信履歴バッファ（第２番受信履歴バッファ）へ格納する（Ｄ１０６、Ｄ１０７）。受信履歴制御部１４０は、受信履歴バッファの先頭バッファ以外は受信履歴バッファサイズＢ１０１分までパケットを格納すると、受信履歴制御部１４０は、書込中受信履歴バッファ番号Ｂ１０４をさらに＋１に設定し、さらに次の面へパケットを格納する（Ｄ１０６、Ｄ１０７）。受信履歴制御部１４０は、最大で受信履歴バッファ最大面数Ｂ１０２から−１した面数まで図６の動作を繰り返す。
【００６３】
図１１は、ＣＰＵ宛受信管理部１３７の受信バッファ１３８の使用量がＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴退避閾値Ａ１０５を上回る場合における、ＣＰＵ宛受信管理部１３７と受信履歴制御部１４０の動作を示す。まず、ＣＰＵ宛フレーム受信部１３６がＣＰＵ宛パケットＰ０２７をＣＰＵ宛受信管理部１３７と受信履歴制御部１４０へ送信する。ＣＰＵ宛受信管理部１３７が受信バッファ１３８にＣＰＵ宛パケットＰ０２７を格納すると、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、受信履歴切替中フラグＡ１０２がｏｎかｏｆｆかを判定する（Ｃ１０１）。受信履歴切替中フラグＡ１０２はｏｎであるため、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、パケットを受信した受信バッファ１３８の使用量が受信履歴切替停止閾値Ａ１０４を下回っているか否かを判定する（Ｃ１０５）。
【００６４】
受信バッファ１３８の使用量は受信履歴切替停止閾値Ａ１０４を下回っていないため、ＣＰＵ宛受信管理部１３７は、ＣＰＵ宛受信管理データテーブルＫ１３９を参照し、パケットを受信した受信バッファ１３８の使用量が受信履歴退避閾値Ａ１０５を上回っているか否かを判定する（Ｃ１０８）。受信バッファ１３８の使用量は受信履歴退避閾値Ａ１０５を上回っているため、ＣＰＵ宛受信管理部１３７は、受信履歴制御部１４０へ受信履歴バッファの受信履歴情報を受信履歴解析部（１４３）へ退避させるための通知を行い、ＣＰＵ宛受信管理データテーブルＫ１３９の受信履歴切替中フラグＡ１０２をｏｆｆに設定する（Ｃ１１０）。受信履歴制御部１４０はＣＰＵ宛受信管理部１３７より受信履歴退避通知を受信すると、受信履歴制御データテーブルＫ１４２の退避フラグＢ１０６をｏｎに設定する。
【００６５】
また、受信履歴制御部１４０は、受信履歴バッファ１４１がＣＰＵ宛パケットＰ０２７を受信すると、受信履歴制御データテーブルＫ１４２を参照し、退避フラグＢ１０６がｏｎかｏｆｆかを判定する（Ｄ１０１）。退避フラグＢ１０６はｏｎであるため、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２の書込先頭受信履歴バッファ番号Ｂ１０３、および書込中受信履歴バッファ番号Ｂ１０４を参照し、書込先頭受信履歴バッファ番号（第１番受信履歴バッファ）から書込中受信履歴バッファ番号（第３番受信履歴バッファ）までの受信履歴バッファに格納されたパケット情報を受信履歴情報として受信履歴解析部（１４３）へ退避させ、退避対象となった受信履歴バッファのバッファクリアを実施する（Ｄ１０８）。
【００６６】
そして、受信履歴制御部１４０は、受信履歴制御データテーブルＫ１４２の切替フラグＢ１０５および退避フラグＢ１０６をｏｆｆに設定し、書込先頭受信履歴バッファ番号Ｂ１０３、および書込中受信履歴バッファ番号Ｂ１０４を書込中受信履歴バッファ番号＋１に設定（第４番受信履歴バッファ）し、新たな書込中受信履歴バッファ番号（第４番受信履歴バッファ）が示す受信履歴バッファへパケットＰ０２７を格納する。受信履歴解析部（１４３）は、退避された受信履歴情報を解析することで、本事象の原因および本事象に至った経緯等の情報を得ることができる。
【００６７】
上述の実施例によると、たとえば、装置負荷等により一時的に受信バッファが滞留したが、一時的であり、その後安定した場合であっても、一時的に受信バッファにパケットが滞留した原因を分析するために、受信バッファに格納されたパケットが受信履歴解析部１４３へ退避される。具体的には、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８の使用量が、ＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替開始閾値Ａ１０３を超過し、受信履歴バッファの面が切り替わる。
【００６８】
そして、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８の使用量が、ＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替停止閾値Ａ１０４を下回った際、受信履歴制御データテーブルＢ１００の退避フラグがｏｎに設定され、図６のＤ１０１及びＣ１０８により受信履歴バッファに格納されているパケットが受信履歴解析部に退避される。
または、受信履歴制御部１４０は、受信履歴バッファの面への書き込みが進むと、図６のＤ１０５及びＤ１０８により、受信履歴バッファに格納されているパケットが受信履歴解析部に退避される。ＣＰＵ宛受信管理部によるＣＰＵ宛パケットの受信を継続しつつ、ＣＰＵ宛パケットを順次保持する受信履歴バッファ１４１の複数面の使用状況により、受信履歴バッファ１４１の情報は受信履歴解析部１４３に退避される。そして、退避された受信履歴情報を解析することで、受信バッファの使用量が一時的に滞留した原因および本事象に至った経緯等の情報を得ることができる。
【００６９】
また、上述の実施例によると、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８の使用量が、ＣＰＵ宛受信管理データテーブルＡ１００の受信履歴切替開始閾値Ａ１０３を超過し続けるが、受信履歴退避閾値Ａ１０５を超過することも、受信履歴切替停止閾値Ａ１０４を下回ることも無い場合、受信履歴バッファ最大面数分の面が使用される。そして、受信履歴バッファに格納されたパケット情報は、受信履歴解析部１４３へ退避され、および退避対象となった受信履歴バッファのバッファクリアが実施され、ＣＰＵ宛パケットの受信履歴へのバッファリングが継続される。一方、受信履歴解析部に退避された受信履歴情報を解析することにより、受信バッファの使用量が高い状態が継続している原因および本事象に至った経緯等の情報を得ることができる。
【００７０】
また、ＣＰＵ宛受信管理部１３７内の受信バッファ１３８の使用量の状態に関わらず、コマンド等による外部トリガーを契機として、受信履歴制御部１４０が受信履歴バッファ１４１の面切替および退避を実行してもよい。たとえば、定常的に装置が受信しているパケット情報を解析したい場合等を想定する。コマンドの入力を受け、受信履歴バッファの情報を退避させる外部トリガーが発生すると、受信履歴制御部１４０は受信履歴制御データテーブルＢ１００の退避フラグＢ１０６をｏｎに設定する。
【００７１】
そして、受信履歴制御部１４０は、受信履歴バッファにパケットを積む際、受信履歴制御データテーブルＢ１００を参照し、先頭バッファ番号Ｂ１０３から書込中受信履歴バッファ番号Ｂ１０４までの受信履歴バッファを受信履歴解析部１４３へ全て退避させ、バッファクリアする。そして、受信履歴制御部１４０は、受信履歴制御データテーブルＢ１００の切替フラグＢ１０５と退避フラグＢ１０６をｏｆｆに設定し、書込中受信履歴バッファ番号Ｂ１０４を＋１に設定し、新たな書込中受信履歴バッファ番号が示す受信履歴バッファへパケットを詰む。受信履歴解析部１４３は、退避された受信履歴情報を解析することで、装置が受信しているパケット情報を得ることができる。
【００７２】
また、より多くの受信パケット情報を解析したい場合、受信履歴バッファ１４１の面切替を実行するコマンド等の外部トリガーを発生させると、受信履歴制御部１４０は、受信履歴制御データテーブルＢ１００の切替フラグＢ１０５をｏｎに設定する。そして、受信履歴制御部１４０は、書込中受信履歴バッファ面の全てを使い切るか、受信履歴バッファの情報を退避させる外部トリガーが発生により、受信履歴制御データテーブルＢ１００の退避フラグＢ１０６がｏｎに設定されるまで、受信履歴バッファの面切替を実施しながら受信パケットを収集する。受信履歴解析部１４３は、退避された受信履歴情報を解析することで、パケット通信装置１０１が送受信するパケット情報を任意の契機で分析することができる。
【００７３】
上述の実施例によると、受信バッファの使用量を監視し、受信バッファの使用量が少なく安定している場合、受信履歴バッファは単一面のみをリングバッファとして使用することで、必要以上のパケット情報を保持することを抑止できる。
【００７４】
上述の実施例によると、複数の受信履歴バッファを使用する場合、一度のパケット分析に使用する受信履歴バッファの使用面を最大値−１の面数とし、受信履歴バッファ情報の退避処理中に受信バッファに詰まれる情報をも余さず監視、分析できる。
【００７５】
上述の実施例によると、受信履歴バッファの情報を退避する契機として、受信バッファの使用量がある閾値を超過した場合や下回った場合、受信履歴バッファ面が枯渇した場合などを提供することで、様々な条件下でのパケット分析を可能とする。
【００７６】
上述の実施例によると、退避した受信履歴バッファ情報を解析し、受信履歴バッファ内でのパケット分布やパケットの入力もしくは出力ポートやパケットの各フィールドの値、受信履歴バッファ面の切替り時間などを装置輻輳要因として提供することができる。
【００７７】
なお、上述の実施例によると、受信履歴情報の収集および解析する機構をパケット通信装置内に設けることで、外部装置との送受信のために必要となる帯域を有効利用でき、且つ課題となる事象発生時の解析をリアルタイムで実施することができる。
【００７８】
また、上述の実施例では、装置内のＣＰＵ宛/発パケットに注目して記載するが、本発明はそれらに限定されない。
【００７９】
本発明のある態様によれば、ネットワークへ接続されるパケット通信装置であって、装置輻輳の主な要因となりうるＣＰＵ宛のパケット受信およびＣＰＵ発のパケット送信において、パケットを受信バッファまたは送信バッファに詰み、該当バッファの状態を予め設定された情報に基づいて管理するＣＰＵ宛受信管理部またはＣＰＵ発送信管理部と、前記受信バッファもしくは前記送信バッファに詰まれる全てのパケットを複製し、前記受信バッファに対応した受信履歴バッファ、もしくは前記送信バッファに対応した送信履歴バッファにも積み、前記ＣＰＵ宛受信管理部からの通知に基づいて、前記受信履歴バッファの面切替および前記受信履歴バッファに格納されたパケット情報の退避を制御する受信履歴制御部により退避された前記受信履歴バッファに格納された受信履歴情報を解析する受信履歴解析部と、前記ＣＰＵ発送信管理部からの通知に基づいて、前記送信履歴バッファの面切替および前記送信履歴バッファに格納されたパケット情報の退避を制御する送信履歴制御部により退避された前記送信履歴バッファに格納された送信履歴情報を解析する送信履歴解析部とを備えるトラフィック分析装置が提供される。
【００８０】
上記態様によれば、ネットワークへ接続されるパケット通信装置であって、ＣＰＵ宛に受信するパケットに関する情報がリアルタイムに受信履歴バッファにも格納され、前記受信バッファの使用量と予め設定した監視閾値情報に基づいて、前記受信履歴バッファの面を切り替えることにより、前記受信バッファにパケットが溜まり始めてから溢れるまでの前記受信履歴バッファの情報を解析することにより、前記受信バッファが溢れた瞬間だけでなく、前記受信バッファの状態を段階的に分析することができる。
【００８１】
同様に、ＣＰＵ発の送信パケットに関する情報がリアルタイムに送信履歴バッファにも格納され、前記送信バッファの使用量と予め設定した監視閾値情報に基づいて、前記送信履歴バッファの面を切り替えることにより、前記送信バッファにパケットが溜まり始めてから溢れるまでの前記送信履歴バッファの情報を解析することにより、前記送信バッファが溢れた瞬間だけでなく、前記送信バッファの状態を段階的に分析することができる。
【００８２】
上記構成において、前記受信履歴バッファ、もしくは前記送信履歴バッファはパケットを最大面数より残り１面を残した受信履歴バッファ、もしくは送信履歴バッファに格納し、残り１面は前記受信履歴解析部、もしくは前記送信履歴解析部への退避処理中に受信、または送信したパケットを格納することができる。
【００８３】
前記受信バッファ、もしくは前記送信バッファの状態が閾値以下で安定している際は、前記受信履歴バッファ、もしくは前記送信履歴バッファはパケット書込み面の先頭の面にのみパケット情報をリング形式で格納し、前記監視閾値情報を超過した場合のみ面切替を行うものであってもよい。
【００８４】
前記受信履歴制御部、もしくは前記送信履歴制御部は、監視する前記受信バッファ、もしくは前記送信バッファの使用量が特定の監視閾値を上回った場合だけでなく、下回った場合も前記受信履歴解析部、もしくは前記送信履歴解析部へ前記受信履歴バッファ、もしくは前記送信履歴バッファの情報を退避してもよい。かかる構成によれば、装置輻輳までには至らなくとも、一時的に前記受信バッファ、もしくは前記送信バッファを圧迫した原因を分析することができる。
【００８５】
前記受信履歴制御部での前記受信履歴バッファの面切替、もしくは前記送信履歴制御部での前記送信履歴バッファの面切替、および前記受信履歴解析部への前記受信履歴バッファ情報の退避、前記送信履歴解析部への前記送信履歴バッファ情報の退避は、前記受信バッファ、もしくは前記送信バッファの状態に基づくだけではなく、コマンド実行等の外部要因を契機に実行されてもよい。かかる構成によれば、前記パケット通信装置が送受信するパケット情報を任意の契機で分析することができる。
【００８６】
また、上述のパケット通信装置によると、受信バッファの使用量が増加し始めてからのパケットを分析することができる。
【符号の説明】
【００８７】
１０１  パケット通信装置、１０２  装置制御部、１０３  パケット転送制御部、１３１  物理回線制御部、１３２  受信制御部、１３３  送信制御部、１３４  フレーム中継部、１３５  フレーム制御部、１３６  ＣＰＵ宛フレーム受信部、１３７  ＣＰＵ宛受信管理部、１３８  受信バッファ、１３９  ＣＰＵ宛受信管理データベース、１４０  受信履歴制御部、１４１  受信履歴バッファ、１４２  受信履歴制御データベース、１４３  受信履歴解析部、１４４  ＣＰＵ宛フレーム送信部、１４５  ＣＰＵ、２０１  ＣＰＵ発フレーム受信部、２０２  ＣＰＵ発送信管理部、２０３  送信バッファ、２０４  ＣＰＵ発送信管理データベース、２０５  送信履歴制御部、２０６  送信履歴バッファ、２０７  送信履歴制御データベース、２０８  送信履歴解析部、２０９  ＣＰＵ発フレーム送信部
【図１】
0006466279.tif 000002
【図２】
0006466279.tif 000003
【図３】
0006466279.tif 000004
【図４】
0006466279.tif 000005
【図５】
0006466279.tif 000006
【図６】
0006466279.tif 000007
【図７】
0006466279.tif 000008
【図８】
0006466279.tif 000009
【図９】
0006466279.tif 000010
【図１０】
0006466279.tif 000011
【図１１】
0006466279.tif 000012