(57)【要約】【課題】コネクションの通信性能に応じて選択的にパケットを記憶すること。【解決手段】パケット解析装置１００は、取得したパケットを第１の記憶部１１０に蓄積し、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を第２の記憶部１２０に蓄積する。パケット解析装置１００は、所定の時間間隔で、あるコネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、そのコネクションを示す情報を第３の記憶部１３０に登録する。パケット解析装置１００は、第３の記憶部１３０を参照し、第１の記憶部１１０に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部１４０に記憶する。【選択図】図１
2018113549.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
処理を実行させることを特徴とするパケット解析プログラム。
【請求項２】
前記登録する処理は、
第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録する、ことを特徴とする請求項１に記載のパケット解析プログラム。
【請求項３】
前記登録する処理は、
前記第１のコネクションを示す情報を前記第３の記憶部に登録した場合、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定し、
前記有効期限までは、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直す際には、前記第１のコネクションを示す情報を、前記第１のコネクションを示す情報に対応付けている指標値範囲、または前記第１のコネクションを示す情報に対応付けている指標値範囲より通信性能が低いことを示す指標値範囲に対応付ける、ことを特徴とする請求項２に記載のパケット解析プログラム。
【請求項４】
前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値の変化が、前記第１のコネクションの通信性能の低下を示す場合、前記第１のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直し、
前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項３に記載のパケット解析プログラム。
【請求項５】
前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値の変化が、前記第１のコネクションの通信性能の向上を示し、かつ、前記第１のコネクションの通信性能を示す指標値が、前記第１のコネクションを示す情報に対応付けている指標値範囲に含まれる場合、前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項３または４に記載のパケット解析プログラム。
【請求項６】
前記登録する処理は、
前記有効期限になった場合、所定の期間における前記第１のコネクションの通信性能を示す指標値のいずれかの指標値を含む、前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直し、
前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項３〜５のいずれか一つに記載のパケット解析プログラム。
【請求項７】
前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定し、
前記保持期限を過ぎた場合、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態を削除する、ことを特徴とする請求項２〜６のいずれか一つに記載のパケット解析プログラム。
【請求項８】
コンピュータが、
取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
処理を実行することを特徴とするパケット解析方法。
【請求項９】
取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
制御部を有することを特徴とするパケット解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット解析プログラム、パケット解析方法、およびパケット解析装置に関する。
【背景技術】
【０００２】
従来、装置間を流れるパケットを、スイッチやルータなどのミラーリング機能を用いて取得して一時的に蓄積し、蓄積したパケットのうち異常があると判定されたコネクションで通信されたパケットを抽出して保存し、その後解析する技術がある。
【０００３】
先行技術としては、例えば、重要度の登録されていない障害について、その障害の発生頻度と発生間隔のばらつきとに基づいて障害発生履歴データベースを参照して、その障害の重要度を推定するものがある。また、例えば、影響範囲と経過時間とに基づき、障害レベルテーブルを参照して障害レベルを決定する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２０１６９５号公報
【特許文献２】特開２０１３−３０８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ネットワークのデータ転送レートが大きくなるほど、装置間に生成されるコネクションの数も膨大になり、保存するパケットの数も膨大になってしまい、パケットを保存しておくことが難しい。保存するパケットの数を制限するとしても、どのコネクションで通信されたパケットを優先して保存することが好ましいかを判断することが難しい。
【０００６】
１つの側面では、本発明は、コネクションの通信性能に応じて選択的にパケットを記憶することができるパケット解析プログラム、パケット解析方法、およびパケット解析装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、取得したパケットを第１の記憶部に蓄積し、取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶するパケット解析プログラム、パケット解析方法、およびパケット解析装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、コネクションの通信性能に応じて選択的にパケットを記憶することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。
【図２】図２は、パケット解析システム２００の一例を示す説明図である。
【図３】図３は、パケット解析装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、コネクションテーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、インデックステーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、Ｌ４解析情報テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、異常コネクション情報テーブル７００の記憶内容の一例を示す説明図である。
【図８】図８は、異常レベル履歴８００の記憶内容の一例を示す説明図である。
【図９】図９は、異常レベル範囲リスト９００の記憶内容の一例を示す説明図である。
【図１０】図１０は、パケット解析装置１００の機能的構成例を示すブロック図である。
【図１１】図１１は、パケット解析装置１００の具体的な機能的構成例を示すブロック図である。
【図１２】図１２は、パケット解析装置１００の第１の動作例を示す説明図である。
【図１３】図１３は、パケット解析装置１００の第２の動作例を示す説明図である。
【図１４】図１４は、パケット解析装置１００の第３の動作例を示す説明図である。
【図１５】図１５は、異常レベル履歴８００に基づく異常レベルの設定の一例を示す説明図である。
【図１６】図１６は、実施例１における格納処理手順の一例を示すフローチャートである。
【図１７】図１７は、実施例１における解析処理手順の一例を示すフローチャートである。
【図１８】図１８は、実施例１における異常判定処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施例１における異常コネクション登録処理手順の一例を示すフローチャートである。
【図２０】図２０は、実施例１における決定処理手順の一例を示すフローチャートである。
【図２１】図２１は、実施例１におけるリスト連結処理手順の一例を示すフローチャートである。
【図２２】図２２は、実施例１における生成処理手順の一例を示すフローチャートである。
【図２３】図２３は、実施例１におけるパケットフィルタ処理手順の一例を示すフローチャートである。
【図２４】図２４は、実施例２における異常レベル範囲リスト２４００の記憶内容の一例である。
【図２５】図２５は、実施例２における異常判定処理手順の一例を示すフローチャートである。
【図２６】図２６は、実施例２における異常コネクション登録処理手順の一例を示すフローチャートである。
【図２７】図２７は、実施例２におけるリスト連結処理手順の一例を示すフローチャートである。
【図２８】図２８は、実施例２における削除処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかるパケット解析プログラム、パケット解析方法、およびパケット解析装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかるパケット解析方法の一実施例）
図１は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。パケット解析装置１００は、ある装置間を流れるパケットに基づいて、その装置間の種々のコネクションやその装置間を結ぶネットワークなどについて解析するコンピュータである。
【００１２】
ここで、ある装置間を流れるすべてのパケットを比較的長い期間記憶しておき、事後的かつ詳細に、その装置間のコネクションなどについて解析する場合が考えられる。しかしながら、この場合では、記憶しておくパケットの数が膨大になり、パケットを記憶しておくために用いられる記憶領域が不足してしまう可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
【００１３】
これに対し、ある装置間を流れるパケットのうち、異常があると判定されたコネクションで通信されたパケットに限って抽出し、比較的長い期間記憶しておき、事後的かつ詳細に、その装置間のコネクションなどについて解析する場合が考えられる。しかしながら、この場合であっても、１０〜１００Ｇｂｐｓ（Ｇｉｇａ  ｂｉｔｓ  ｐｅｒ  ｓｅｃｏｎｄ）の高速ネットワークでは、記憶しておくパケットの数が膨大になり、パケットを記憶しておくために用いられる記憶領域が不足してしまう可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
【００１４】
また、これに対し、ある装置間の複数のコネクションを所定の基準でソートすることにより、その装置間のいずれのコネクションで通信されたパケットを優先して抽出し、比較的長い期間記憶しておくかを判断する場合も考えられる。しかしながら、この場合、パケットの抽出にかかる処理負荷および処理時間の増大化を招いてしまう。そして、処理時間の増大化により、パケットバッファからパケットが削除されるまでに、そのパケットを抽出するか否かを判断することができない可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
【００１５】
そこで、本実施の形態では、コネクションの通信性能を示す指標値を、予め用意した複数の指標値範囲のいずれかに対応付けることにより、比較的低い処理負荷で、選択的にパケットを記憶することができるパケット解析方法について説明する。
【００１６】
図１の例では、パケット解析装置１００は、第１の記憶部１１０と、第２の記憶部１２０と、第３の記憶部１３０と、第４の記憶部１４０とを有する。第１の記憶部１１０は、パケットを一時的に蓄積する記憶領域である。第１の記憶部１１０は、例えば、パケットバッファである。第１の記憶部１１０に記憶されたパケットは、時間の経過に伴って他のパケットによって上書きされ、削除されてしまう場合がある。
【００１７】
第２の記憶部１２０は、あるパケットが通信されたコネクションについて、コネクション情報を記憶する記憶領域である。コネクション情報は、あるパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。コネクション情報は、例えば、あるパケットのパケットＩＤと、そのパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。
【００１８】
コネクションを示す情報は、例えば、そのコネクションに割り振られたコネクションＩＤである。コネクションの通信性能に関する情報は、例えば、コネクションにおけるパケットロス率、ＲＴＴ（Ｒｏｕｎｄ−Ｔｒｉｐ  Ｔｉｍｅ）、および、サーバ遅延などである。コネクションの通信性能に関する情報は、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などから得られる、そのコネクションの異常レベルであってもよい。サーバ遅延は、例えば、サーバが、リクエストを受けてから、リクエストに対応する処理を行い、レスポンスを返すまでの時間である。
【００１９】
第３の記憶部１３０は、予め用意した複数の指標値範囲のそれぞれの指標値範囲に対応付けて、いくつかのコネクションを示す情報を登録する記憶領域である。指標値は、例えば、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などに基づいて算出される、そのコネクションの異常レベルである。指標値は、例えば、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などであってもよい。指標値範囲は、例えば、異常レベル範囲である。第３の記憶部１３０は、パケット解析装置１００が、第１の記憶部１１０から、どのパケットを抽出するかを決定する際に用いられる情報を記憶することができる。
【００２０】
第４の記憶部１４０は、パケットを、第１の記憶部１１０より長い期間記憶することができる記憶領域である。第４の記憶部は、例えば、不揮発メモリ上に用意された保存ファイルである。第４の記憶部１４０は、パケット解析装置１００が、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられるパケットを記憶することができる。
【００２１】
（１−１）パケット解析装置１００は、ミラーリング機能を用いて、ある装置間を流れるパケットを取得し、第１の記憶部１１０に蓄積する。パケット解析装置１００は、例えば、ある装置間を流れるパケット１〜１４を順次取得し、パケットバッファに蓄積する。これにより、パケット解析装置１００は、ある装置間のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられる可能性があるパケットを、一時的に記憶することができる。
【００２２】
（１−２）パケット解析装置１００は、取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を第２の記憶部１２０に蓄積する。パケット解析装置１００は、例えば、パケットを取得する都度、そのパケットに基づいてＬ４解析を行い、そのパケットが通信されたコネクションについてのコネクション情報を、第２の記憶部１２０に蓄積する。
【００２３】
パケット解析装置１００は、具体的には、パケット１を取得した際、パケット１が通信されたコネクションＡについてコネクション情報を記憶する。これにより、パケット解析装置１００は、ある装置間のコネクションを、どの指標値範囲に対応付けるかを決定する際に用いられるコネクション情報を記憶しておくことができる。
【００２４】
（１−３）パケット解析装置１００は、所定の時間間隔で、コネクションごとに、そのコネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、そのコネクションを示す情報を第３の記憶部１３０に登録する。パケット解析装置１００は、例えば、リスト構造を用いて、異常コネクション情報を登録する。異常コネクション情報は、第１の記憶部１１０から抽出する可能性があるパケットが通信されたコネクションを示す情報を含む。異常コネクション情報は、コネクションを示す情報として、例えば、コネクションＩＤを含む。
【００２５】
パケット解析装置１００は、具体的には、複数の異常レベル範囲を示す異常レベル範囲リスト１５０を用意する。パケット解析装置１００は、異常レベル範囲リスト１５０が示すそれぞれの異常レベル範囲に、ポインタ１７１〜１７５を用いて、異常コネクション情報１６１〜１６５を対応付けて記憶する。これにより、パケット解析装置１００は、比較的低い処理負荷で、パケットバッファから抽出するパケットを選択する際に用いられるコネクション情報を登録しておくことができる。
【００２６】
（１−４）パケット解析装置１００は、所定の時間間隔で、第３の記憶部１３０を参照し、第１の記憶部１１０に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出する。特定の指標値範囲は、例えば、対応付けられた異常コネクション情報の数が所定の数以下になる、指標値範囲である。特定の指標値範囲は、例えば、予め設定された上限値から下限値までの範囲であってもよい。
【００２７】
パケット解析装置１００は、例えば、パケットバッファに蓄積した、取得から一定の時間が経過したパケット１〜７のうち、特定の異常レベル範囲「９１〜１００」に対応するコネクションＡ，Ｃで通信されたパケットｐｓ１，ｐｓ２を抽出する。また、パケット解析装置１００は、例えば、対応付けられた異常コネクション情報の数が４つ以下に限られる異常レベル範囲「８１〜１００」に対応するコネクションＡ〜Ｄで通信されたパケットを抽出するようにしてもよい。これにより、パケット解析装置１００は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、パケット解析装置１００は、第４の記憶部１４０に記憶するパケットの数を制限することができる。
【００２８】
（１−５）パケット解析装置１００は、抽出したパケットを、第４の記憶部１４０に記憶する。パケット解析装置１００は、例えば、パケットｐｓ１，ｐｓ２を、第４の記憶部１４０に記憶する。これにより、パケット解析装置１００は、第４の記憶部１４０に記憶したパケットに基づいて、事後的かつ詳細に、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができる。また、パケット解析装置１００は、指標値に基づくソートを行わなくてもよく、比較的低い処理負荷で、パケットバッファからパケットを抽出し、第４の記憶部１４０に記憶することができる。
【００２９】
また、パケット解析装置１００は、第４の記憶部１４０に記憶するパケットの数を制限することができ、パケットを記憶するために用いられる第４の記憶部１４０の記憶領域が不足してしまうことを抑制することができる。このため、パケット解析装置１００は、記憶領域の不足により、自装置の処理にエラーが発生することを防止することができる。また、パケット解析装置１００は、特定の指標値範囲を設定することにより、事後的かつ詳細な、コネクションなどについての解析が行われる際に用いられる可能性が比較的大きいパケットを優先して抽出し、第４の記憶部１４０に記憶することができる。このため、パケット解析装置１００は、パケットバッファから削除される前に、第４の記憶部１４０に退避されることが好ましいと判断されるパケットを、優先して残しておくことができる。
【００３０】
また、パケット解析装置１００は、図１２〜図１５に後述するように、種々のルールにしたがって、第３の記憶部１３０に対する異常コネクション情報の登録状態をどのように更新するか、または、いつ更新するかを制御してもよい。これにより、パケット解析装置１００は、事後的かつ詳細な、コネクションなどについての解析が行われる際に用いられる可能性が比較的大きいパケットを、さらに効果的に抽出することができる。
【００３１】
パケット解析装置１００は、異常レベル範囲リスト１５０を、運用用と更新用との２種類用意してもよい。これにより、パケット解析装置１００は、異常レベル範囲リスト１５０を更新しているために、異常レベル範囲リスト１５０を参照して、いずれかのコネクションで通信されたパケットを抽出する処理の実行を待機しなくてもよいようにすることができる。
【００３２】
（パケット解析システム２００の一例）
次に、図２を用いて、図１に示したパケット解析装置１００を適用した、パケット解析システム２００の一例について説明する。
【００３３】
図２は、パケット解析システム２００の一例を示す説明図である。図２において、パケット解析システム２００は、パケット解析装置１００と、クライアント装置２２０と、サーバ装置２３０とを含む。パケット解析システム２００は、クライアント装置２２０を複数含んでもよいし、サーバ装置２３０を複数含んでもよい。
【００３４】
パケット解析システム２００において、クライアント装置２２０とサーバ装置２３０とは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３５】
パケット解析装置１００は、ネットワーク内に設けられたスイッチまたはＴＡＰなどの中継装置２４０を介して、クライアント装置２２０とサーバ装置２３０との間で通信されるパケットを取得して蓄積する。パケット解析装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。
【００３６】
クライアント装置２２０は、サーバ装置２３０とのコネクションを生成し、サーバ装置２３０と通信するコンピュータである。クライアント装置２２０は、例えば、ＰＣ、ノートＰＣ、タブレット端末、スマートフォンなどである。サーバ装置２３０は、クライアント装置２２０とのコネクションを生成し、クライアント装置２２０と通信するコンピュータである。サーバ装置２３０は、例えば、サーバやＰＣである。
【００３７】
（パケット解析装置１００のハードウェア構成例）
次に、図３を用いて、パケット解析装置１００のハードウェア構成例について説明する。
【００３８】
図３は、パケット解析装置１００のハードウェア構成例を示すブロック図である。図３において、パケット解析装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００３９】
ここで、ＣＰＵ３０１は、パケット解析装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４０】
ネットワークＩ／Ｆ３０３は、中継装置２４０を通じてネットワーク２１０に接続される。そして、ネットワークＩ／Ｆ３０３は、中継装置２４０と内部とのインターフェースを司り、中継装置２４０からのデータの入出力を制御する。ネットワークＩ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４１】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御にしたがって記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、磁気ディスクドライブや光ディスクドライブである。記録媒体Ｉ／Ｆ３０４は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートであってもよい。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、磁気ディスクや光ディスクなどである。記録媒体３０５は、例えば、ＵＳＢメモリであってもよい。記録媒体３０５は、パケット解析装置１００から着脱可能であってもよい。記録媒体３０５は、実施の形態にかかるパケット解析プログラムを記憶してもよい。
【００４２】
パケット解析装置１００は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）や半導体メモリを有してもよい。また、パケット解析装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、パケット解析装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有さなくてもよい。
【００４３】
（コネクションテーブル４００の記憶内容）
次に、図４を用いて、コネクションテーブル４００の記憶内容の一例について説明する。コネクションテーブル４００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００４４】
図４は、コネクションテーブル４００の記憶内容の一例を示す説明図である。図４に示すように、コネクションテーブル４００は、コネクションＩＤと、送信元ＩＰと、送信先ＩＰと、プロトコル番号と、送信元ポートと、送信先ポートと、異常コネクション情報ポインタとのフィールドを有する。コネクションテーブル４００は、各フィールドに情報を設定されることにより、コネクション情報をレコードとして記憶する。
【００４５】
コネクションＩＤのフィールドは、パケット解析装置１００が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションＩＤが設定される。送信元ＩＰのフィールドは、コネクションＩＤが示すコネクションにおけるパケットの送信元装置を示す送信元ＩＰアドレスが設定される。送信先ＩＰのフィールドは、コネクションＩＤが示すコネクションにおけるパケットの送信先装置を示す送信先ＩＰアドレスが設定される。
【００４６】
プロトコル番号のフィールドは、プロトコルを識別する番号が設定される。送信元ポートのフィールドは、コネクションＩＤが示すコネクションにおけるパケットの送信元ポートを示すポート番号が設定される。送信先ポートのフィールドは、コネクションＩＤが示すコネクションにおけるパケットの送信先ポートを示すポート番号が設定される。異常コネクション情報ポインタのフィールドは、コネクションＩＤが示すコネクションについて異常コネクション情報があれば、その異常コネクション情報へのポインタが設定される。
【００４７】
（インデックステーブル５００の記憶内容）
次に、図５を用いて、インデックステーブル５００の記憶内容の一例について説明する。インデックステーブル５００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００４８】
図５は、インデックステーブル５００の記憶内容の一例を示す説明図である。図５に示すように、インデックステーブル５００は、ライトポインタと、リードポインタと、パケットＩＤと、コネクションＩＤと、受信日時とのフィールドを有する。インデックステーブル５００は、パケットＩＤと、コネクションＩＤと、受信日時とのフィールドに情報を設定されることにより、インデックス情報をレコードとして記憶する。
【００４９】
ライトポインタのフィールドは、次に書き込みされるレコードを指定するライトポインタが設定される。ライトポインタは、１以上、インデックステーブル５００のレコードの最大数以下の値である。ライトポインタは、インデックステーブル５００への書き込みが行われる都度、１ずつ加算される。ライトポインタの値は、指定するレコードが、先頭から何番目のレコードであるかを示す値である。
【００５０】
リードポインタのフィールドは、次に読み出されるレコードを指定するリードポインタが設定される。リードポインタは、１以上、インデックステーブル５００のレコードの最大数以下の値である。リードポインタは、インデックステーブル５００からの読み出しが行われる都度、１ずつ加算される。リードポインタの値は、指定するレコードが、先頭から何番目のレコードであるかを示す値である。
【００５１】
パケットＩＤのフィールドは、パケット解析装置１００が取得したパケットを管理するため、パケット解析装置１００が取得したパケットのパケットＩＤが設定される。コネクションＩＤのフィールドは、パケット解析装置１００が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションＩＤが設定される。受信日時のフィールドは、パケット解析装置１００がパケットを取得した日時が設定される。
【００５２】
（Ｌ４解析情報テーブル６００の記憶内容）
次に、図６を用いて、Ｌ４解析情報テーブル６００の記憶内容の一例について説明する。Ｌ４解析情報テーブル６００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５３】
図６は、Ｌ４解析情報テーブル６００の記憶内容の一例を示す説明図である。図６に示すように、Ｌ４解析情報テーブル６００は、コネクションＩＤと、送信側パケット数と、送信側バイト数と、送信側ロス数と、受信側パケット数と、受信側バイト数と、受信側ロス数と、ＲＴＴ平均値と、サーバ遅延平均値とのフィールドを有する。Ｌ４解析情報テーブル６００は、各フィールドに情報を設定されることにより、Ｌ４解析情報をレコードとして記憶する。
【００５４】
コネクションＩＤのフィールドは、パケット解析装置１００が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションＩＤが設定される。送信側パケット数のフィールドは、コネクションＩＤが示すコネクションにおいて、送信側装置から送信されたパケットの数が設定される。送信側バイト数のフィールドは、コネクションＩＤが示すコネクションにおいて、送信側装置から送信されたパケットのバイト数の累計が設定される。送信側ロス数のフィールドは、コネクションＩＤが示すコネクションにおいて、送信側装置から送信されたパケットのうち、喪失されたパケットの数が設定される。
【００５５】
受信側パケット数のフィールドは、コネクションＩＤが示すコネクションにおいて、受信側装置に受信されたパケットの数が設定される。受信側バイト数のフィールドは、コネクションＩＤが示すコネクションにおいて、受信側装置に受信されたパケットのバイト数の累計が設定される。受信側ロス数のフィールドは、コネクションＩＤが示すコネクションにおいて、送信側装置から送信されたパケットのうち、受信側装置に受信されなかったパケットの数が設定される。ＲＴＴ平均値のフィールドは、コネクションＩＤが示すコネクションにおけるＲＴＴ平均値が設定される。サーバ遅延平均値のフィールドは、コネクションＩＤが示すコネクションにおけるサーバ遅延平均値が設定される。サーバ遅延は、例えば、サーバ装置２３０が、クライアント装置２２０からのリクエストを受けてから、リクエストに対応する処理を行い、クライアント装置２２０へとレスポンスを返すまでの時間である。
【００５６】
（異常コネクション情報テーブル７００の記憶内容）
次に、図７を用いて、異常コネクション情報テーブル７００の記憶内容の一例について説明する。異常コネクション情報テーブル７００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５７】
図７は、異常コネクション情報テーブル７００の記憶内容の一例を示す説明図である。図７に示すように、異常コネクション情報テーブル７００は、コネクションＩＤと、コネクション情報ポインタと、最終保存時刻と、異常レベルと、異常レベル有効期限と、異常レベル履歴ポインタとのフィールドを有する。異常コネクション情報テーブル７００は、各フィールドに情報を設定されることにより、異常コネクション情報をレコードとして記憶する。
【００５８】
コネクションＩＤのフィールドは、異常があると判定され、抽出される可能性があるパケットが通信された異常コネクションのコネクションＩＤが設定される。コネクション情報ポインタのフィールドは、異常コネクションと同じコネクションＩＤが設定された、コネクションテーブル４００のコネクション情報へのポインタが設定される。
【００５９】
最終保存時刻のフィールドは、コネクションＩＤが示すコネクションで通信されたパケットを抽出し続ける期間の終点となる時刻を示す最終保存時刻が設定される。異常レベルのフィールドは、コネクションＩＤが示すコネクションについて算出された異常レベルが設定される。異常レベル有効期限のフィールドは、設定した異常レベルを、その異常レベルより小さい異常レベルで更新することを防止する期間の終点となる時刻を示す異常レベル有効期限が設定される。異常レベル履歴ポインタのフィールドは、コネクションＩＤが示すコネクションについて過去に算出された異常レベルを蓄積する異常レベル履歴へのポインタが設定される。
【００６０】
（異常レベル履歴８００の記憶内容）
次に、図８を用いて、異常レベル履歴８００の記憶内容の一例について説明する。異常レベル履歴８００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６１】
図８は、異常レベル履歴８００の記憶内容の一例を示す説明図である。図８に示すように、異常レベル履歴８００は、個数と、次回書込位置と、時刻と、異常レベルとのフィールドを有する。異常レベル履歴８００は、時刻と、異常レベルとに情報を設定されることにより、履歴情報をレコードとして記憶する。
【００６２】
個数のフィールドは、異常レベル履歴８００のレコードの最大数が設定される。次回書込位置のフィールドは、次に書き込みされるレコードを指定するポインタが設定される。時刻のフィールドは、あるコネクションについて異常レベルを算出した時刻が設定される。異常レベルのフィールドは、あるコネクションについて算出された異常レベルが設定される。異常レベル履歴８００は、異常コネクションごとに用意される。
【００６３】
（異常レベル範囲リスト９００の記憶内容）
次に、図９を用いて、異常レベル範囲リスト９００の記憶内容の一例について説明する。異常レベル範囲リスト９００は、例えば、図３に示したパケット解析装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６４】
図９は、異常レベル範囲リスト９００の記憶内容の一例を示す説明図である。図９に示すように、異常レベル範囲リスト９００は、範囲上限と、範囲下限と、コネクション数と、リスト先頭ポインタと、リスト末端ポインタとのフィールドを有する。異常レベル範囲リスト９００は、さらに、異常レベル範囲に対応付けるアイテムを有する。異常レベル範囲リスト９００は、各フィールドに情報を設定されることにより、異常レベル範囲情報をレコードとして記憶する。
【００６５】
範囲上限のフィールドは、異常レベル範囲の上限値が設定される。範囲下限のフィールドは、異常レベル範囲の下限値が設定される。異常レベル範囲は、例えば、上限値未満、かつ、下限値以上の範囲である。異常レベル範囲は、上限値が１００である場合、上限値以下の範囲であってもよい。コネクション数のフィールドは、異常レベル範囲に対応付ける、異常コネクション情報ポインタの数が設定される。
【００６６】
リスト先頭ポインタのフィールドは、異常レベル範囲に対応付ける、１以上の異常コネクション情報ポインタのうち、先頭の異常コネクション情報ポインタを含んでいるアイテムを指定する、リスト先頭ポインタが設定される。リスト末端ポインタのフィールドは、異常レベル範囲に対応付ける、１以上の異常コネクション情報ポインタのうち、末端の異常コネクション情報ポインタを含んでいるアイテムを指定する、リスト末端ポインタが設定される。
【００６７】
アイテムは、異常コネクションごとに存在し、異常コネクション情報ポインタと、次アドレスとのフィールドを有する。異常コネクション情報ポインタのフィールドは、異常レベル範囲に対応付ける異常コネクションの異常コネクション情報へのポインタが設定される。次アドレスのフィールドは、異常コネクションの次に、同じ異常レベル範囲に対応付けられる他の異常コネクションについてのアイテムへのポインタが設定される。
【００６８】
（パケット解析装置１００の機能的構成例）
次に、図１０を用いて、パケット解析装置１００の機能的構成例について説明する。
【００６９】
図１０は、パケット解析装置１００の機能的構成例を示すブロック図である。図１０に示すように、パケット解析装置１００は、記憶部１００１と、取得部１００２と、解析部１００３と、登録部１００４と、保存部１００５とを含む。
【００７０】
記憶部１００１は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。取得部１００２〜保存部１００５は、制御部となる機能である。取得部１００２〜保存部１００５は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００７１】
記憶部１００１は、第１の記憶部１１０を実現する。記憶部１００１は、例えば、リングバッファ構造でパケットバッファを実現し、パケットを一時的に記憶する。記憶部１００１は、具体的には、インデックステーブル５００を用いて、パケットバッファを管理し、第１の記憶部１１０を実現する。これにより、記憶部１００１は、コネクションに異常があると判定した際に、判定時よりも前にそのコネクションで通信されていたパケットを読み出し可能にすることができる。
【００７２】
記憶部１００１は、第２の記憶部１２０を実現する。記憶部１００１は、例えば、あるパケットが通信されたコネクションについてのコネクション情報を記憶する。コネクション情報は、あるパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。コネクション情報は、例えば、あるパケットのパケットＩＤと、そのパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。
【００７３】
コネクションを示す情報は、例えば、そのコネクションに割り振られたコネクションＩＤである。コネクションの通信性能に関する情報は、例えば、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などである。コネクションの通信性能に関する情報は、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などから得られる、そのコネクションの異常レベルであってもよい。サーバ遅延は、例えば、サーバ装置２３０が、クライアント装置２２０からのリクエストを受けてから、リクエストに対応する処理を行い、クライアント装置２２０へとレスポンスを返すまでの時間である。サーバ遅延は、具体的には、パケット解析装置１００で、サーバ装置２３０がクライアント装置２２０から受けるリクエストに相当するパケットを取得した時点から、サーバ装置２３０がクライアント装置２２０へと返すレスポンスに相当するパケットを取得した時点までの時間である。記憶部１００１は、具体的には、Ｌ４解析情報テーブル６００を用いて、第２の記憶部１２０を実現する。これにより、記憶部１００１は、ある装置間のコネクションが、異常コネクションであるか否かを判定する際に用いられる情報を記憶しておくことができる。
【００７４】
記憶部１００１は、第３の記憶部１３０を実現する。記憶部１００１は、例えば、予め用意した複数の指標値範囲のそれぞれの指標値範囲に対応付けて、いくつかのコネクションを示す情報を登録する。指標値は、例えば、コネクションにおけるパケットロス率、ＲＴＴ、および、サーバ遅延などに基づいて算出される、そのコネクションの異常レベルである。指標値範囲は、例えば、異常レベル範囲である。記憶部１００１は、具体的には、異常レベル範囲リスト９００を用いて、第３の記憶部１３０を実現する。これにより、記憶部１００１は、パケット解析装置１００が、第１の記憶部１１０から、どのパケットを抽出するかを決定する際に用いられる情報を記憶することができる。
【００７５】
記憶部１００１は、第４の記憶部１４０を実現する。記憶部１００１は、例えば、パケットを、第１の記憶部１１０より長い期間記憶する。これにより、記憶部１００１は、パケット解析装置１００が、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられるパケットを記憶することができる。
【００７６】
取得部１００２は、ある装置間を流れるパケットを取得する。取得部１００２は、パケットを取得する都度、そのパケットを第１の記憶部１１０に蓄積する。取得部１００２は、例えば、中継装置２４０のミラーリング機能を用いて、ある装置間を流れるパケットを取得し、第１の記憶部１１０に蓄積するとともに、インデックステーブル５００を作成する。これにより、取得部１００２は、ある装置間のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられる可能性があるパケットを、一時的に記憶し、管理することができる。
【００７７】
解析部１００３は、取得部１００２が取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を第２の記憶部１２０に蓄積する。パケット解析装置１００は、例えば、パケットを取得する都度、そのパケットに基づいてＬ４解析を行い、そのパケットが通信されたコネクションについてのコネクション情報を、コネクションテーブル４００に記憶する。これにより、解析部１００３は、ある装置間のコネクションを、どの指標値範囲に対応付けるかを決定する際に用いられるコネクション情報を記憶しておくことができる。
【００７８】
登録部１００４は、所定の時間間隔で、第２の記憶部１２０を参照し、コネクションごとに、そのコネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、そのコネクションを示す情報を第３の記憶部１３０に登録する。登録部１００４は、例えば、５秒ごとに、ある装置間に生成されているコネクションの異常レベルを含む、異常レベル範囲リスト９００が示す複数の異常レベル範囲のうちのいずれかに対応付けて、そのコネクションに対応する異常コネクション情報を登録する。異常コネクション情報は、抽出する可能性があるパケットが通信されたコネクションを示す情報を含む。異常コネクション情報は、コネクションを示す情報として、例えば、コネクションＩＤを含む。これにより、登録部１００４は、比較的低い処理負荷で、パケットバッファから抽出するパケットを選択する際に用いられるコネクション情報を登録しておくことができる。
【００７９】
登録部１００４は、例えば、第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値であるか否かを判定する。登録部１００４は、所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む複数の指標値範囲のいずれかの指標値範囲に対応付けて、第１のコネクションを示す情報を第３の記憶部１３０に登録する。登録部１００４は、具体的には、第１のコネクションの異常レベルが閾値以上である場合、その異常レベルを含む異常レベル範囲に対応付けて、第１のコネクションに対応する異常コネクション情報を登録する。これにより、登録部１００４は、異常レベルが比較的大きく、事後的かつ詳細な解析が行われる可能性が比較的大きい異常コネクションで通信されたパケットは抽出されやすくすることができる。一方で、登録部１００４は、異常レベルが比較的小さく、事後的かつ詳細な解析が行われる可能性が比較的小さい異常コネクションで通信されたパケットは抽出されないようにして、保存ファイルの記憶領域の不足を発生しにくくすることができる。
【００８０】
登録部１００４は、例えば、第１のコネクションを示す情報を第３の記憶部１３０に登録した場合、第１のコネクションを示す情報の第３の記憶部１３０への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定する。登録部１００４は、有効期限までは、第１のコネクションを示す情報を、現在対応付けている異常レベル範囲より通信性能が低いことを示す異常レベル範囲に対応付けられないようにすることができる。これにより、登録部１００４は、異常レベルが一時的に大きくなった異常コネクションで通信され、保存ファイルに記憶しておくことが好ましいパケットが、異常レベルの低下に伴って保存ファイルに記憶されなくなることを、有効期限までは抑制することができる。
【００８１】
登録部１００４は、第１のコネクションの通信性能を示す指標値の変化が、第１のコネクションの通信性能の低下を示すか否かを判定する。登録部１００４は、第１のコネクションの通信性能の低下を示す場合、第１のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、第１のコネクションを示す情報を第３の記憶部１３０に登録し直す。また、登録部１００４は、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部１００４は、具体的には、異常コネクションの異常レベルが増加した場合、その異常コネクションの異常コネクション情報を、その異常レベルを含む異常レベル範囲に対応付け直す。これにより、登録部１００４は、異常レベルが大きくなり、さらに保存ファイルに記憶しておくことが好ましくなったパケットを、優先して保存ファイルに記憶されやすくすることができる。また、登録部１００４は、異常レベルが大きくなってから一定時間は、パケットが保存ファイルに記憶されやすくすることができる。
【００８２】
登録部１００４は、例えば、第１のコネクションの通信性能を示す指標値の変化が、第１のコネクションの通信性能の向上を示す場合、第１のコネクションを示す情報の第３の記憶部１３０への登録状態について変更しない。登録部１００４は、具体的には、第１のコネクションの通信性能を示す異常レベルが低下した場合、第１のコネクションを示す情報の異常レベル範囲への登録状態について変更しないことができる。これにより、パケット解析装置１００は、異常レベルが低下した直後に、第１のコネクションで通信されたパケットが抽出されなくなってしまうことを防止することができる。
【００８３】
登録部１００４は、例えば、第１のコネクションの通信性能を示す指標値の変化が、第１のコネクションの通信性能の向上を示し、かつ、現在第１のコネクションを示す情報に対応付けている指標値範囲に含まれるか否かを判定する。登録部１００４は、向上を示し、かつ、含まれると判定した場合、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部１００４は、具体的には、第１のコネクションの通信性能を示す異常レベルが低下し、かつ、現在対応付けている異常レベル範囲に含まれる場合、有効期限を、現在時刻から一定時間後の時刻に設定し直す。これにより、登録部１００４は、異常コネクションに異常が継続している場合には、より長い期間パケットを抽出し、保存ファイルに記憶するようにすることができる。
【００８４】
登録部１００４は、例えば、有効期限になった場合、所定の期間における第１のコネクションの通信性能を示す複数の指標値のいずれかの指標値を含むいずれかの指標値範囲に対応付けて、第１のコネクションを示す情報を第３の記憶部１３０に登録し直す。登録部１００４は、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部１００４は、具体的には、異常レベル履歴８００を参照し、異常レベル履歴８００内で最大の異常レベルを用いて、第１のコネクションを示す情報を登録し直す。これにより、登録部１００４は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、登録部１００４は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
【００８５】
登録部１００４は、例えば、第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値であるか否かを判定する。登録部１００４は、所定の通信性能以下であることを示す指標値である場合に、第１のコネクションを示す情報の第３の記憶部１３０への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定する。登録部１００４は、保持期限を過ぎた場合、第１のコネクションを示す情報の第３の記憶部１３０への登録状態を削除する。これにより、登録部１００４は、保持期限を過ぎ、事後的かつ詳細にコネクションなどを解析する際に用いられる可能性が小さくなった、保存ファイルに記憶しておかなくてよいパケットを、保存ファイルに記憶しないようにすることができる。そして、登録部１００４は、保存ファイルに記憶するパケットの数の増大化を抑制することができる。
【００８６】
保存部１００５は、第３の記憶部１３０を参照し、第１の記憶部１１０に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部１４０に記憶する。特定の指標値範囲は、例えば、対応付けられた異常コネクション情報の数が所定の数以下になる、１または複数の指標値範囲の集まりである。特定の指標値範囲は、例えば、予め設定された上限値から下限値までの範囲であってもよい。
【００８７】
保存部１００５は、例えば、パケットバッファに蓄積した、取得から一定の時間が経過したパケットのうち、特定の異常レベル範囲「９１〜１００」に対応する異常コネクションで通信されたパケットを抽出し、保存ファイルに記憶する。これにより、保存部１００５は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、保存部１００５は、抽出するパケットの数を制限することができる。
【００８８】
また、保存部１００５は、例えば、パケットが抽出される異常コネクションの数が所定の数以下になるように特定の異常レベル範囲を設定し、特定の異常レベル範囲に対応する異常コネクションで通信されたパケットを抽出するようにしてもよい。これにより、保存部１００５は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、保存部１００５は、抽出するパケットの数を制限することができる。
【００８９】
保存部１００５は、さらに、第４の記憶部１４０に記憶した結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、所定の解析ソフトウェアへの出力などである。所定の解析ソフトウェアは、例えば、ある装置間のコネクションや、ある装置間を結ぶネットワーク２１０などについて解析するソフトウェアである。これにより、保存部１００５は、ユーザ、外部装置、または所定の解析ソフトウェアなどに、ある装置間のコネクションや、ある装置間を結ぶネットワーク２１０などについて解析させることができる。
【００９０】
（パケット解析装置１００の具体的な機能的構成例）
次に、図１１を用いて、パケット解析装置１００の具体的な機能的構成例について説明する。
【００９１】
図１１は、パケット解析装置１００の具体的な機能的構成例を示すブロック図である。図１１に示すように、パケット解析装置１００は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１１０１と、ドライバ１１０２と、パケットバッファ１１０３とを有する。ＮＩＣ１１０１は、スイッチやＴＡＰなどの中継装置２４０のミラーリング機能を用いて、ある装置間を流れるパケットを取得する。ＮＩＣ１１０１は、取得したパケットをドライバ１１０２に出力する。ドライバ１１０２は、パケットを入力され、そのパケットをパケットバッファ１１０３に蓄積する。パケットバッファ１１０３は、リングバッファ構造であり、パケットを比較的短い期間記憶しておく。
【００９２】
また、パケット解析装置１００は、Ｌ４解析１１０４と、インデックス作成１１０５と、インデックステーブル１１０６（５００）とを有する。Ｌ４解析１１０４は、パケットバッファ１１０３にパケットが記憶されると、そのパケットに基づいて、そのパケットが通信されたコネクションについて解析し、Ｌ４解析情報テーブル６００を更新する。Ｌ４解析１１０４は、例えば、そのパケットが通信されたコネクションについて、送信側パケット数と、送信側バイト数と、送信側ロス数と、受信側パケット数と、受信側バイト数と、受信側ロス数と、ＲＴＴ平均値と、サーバ遅延平均値となどを算出する。インデックス作成１１０５は、パケットバッファ１１０３にパケットが記憶されると、そのパケットのヘッダ情報に基づいて、パケットＩＤとコネクションＩＤと受信日時とを対応付けたレコードを、インデックステーブル１１０６（５００）に記憶する。
【００９３】
また、パケット解析装置１００は、Ｌ４異常判定１１０７と、異常コネクション情報テーブル１１０８（７００）と、異常レベル範囲リスト１１０９（９００）と、Ｌ４統計１１１０と、統計情報１１１１とを有する。Ｌ４異常判定１１０７は、Ｌ４解析情報テーブル６００を参照して、あるパケットが通信されたコネクションが、異常コネクションであるか否かを判定する。Ｌ４異常判定１１０７は、異常コネクションである場合、異常コネクション情報テーブル１１０８（７００）と、異常レベル範囲リスト１１０９（９００）とを更新する。Ｌ４統計１１１０は、Ｌ４解析情報テーブル６００を参照して、統計情報１１１１を更新する。
【００９４】
また、パケット解析装置１００は、Ｌ７解析１１１２と、Ｌ７異常判定１１１３と、Ｌ７統計１１１４とを有する。Ｌ７解析１１１２は、パケットバッファ１１０３やＬ４解析情報テーブル６００を参照し、レイヤー７に関して解析する。Ｌ７異常判定１１１３は、レイヤー７に関する解析結果を参照して、あるパケットが通信されたコネクションが、異常コネクションであるか否かを判定する。Ｌ７異常判定１１１３は、異常コネクションである場合、異常コネクション情報テーブル１１０８（７００）と、異常レベル範囲リスト１１０９（９００）とを更新する。Ｌ７統計１１１４は、レイヤー７に関する解析結果を参照して、統計情報１１１１を更新する。
【００９５】
また、パケット解析装置１００は、パケットフィルタ１１１５と、パケット保存１１１６と、保存ファイル１１１７とを有する。パケットフィルタ１１１５は、インデックステーブル１１０６（５００）を参照し、取得から一定の時間が経過したパケットを選択する。パケットフィルタ１１１５は、異常コネクション情報テーブル１１０８（７００）を参照し、選択したパケットを抽出して保存ファイル１１１７に記憶するか否かを判定する。パケットフィルタ１１１５は、抽出して記憶すると判定すると、選択したパケットを抽出して、パケット保存１１１６に出力する。パケット保存１１１６は、そのパケットを、保存ファイル１１１７に書き込む。
【００９６】
（実施例１）
次に、図１２〜図１５を用いて、実施例１におけるパケット解析装置１００の動作例について説明する。まず、図１２を用いて、実施例１におけるパケット解析装置１００の第１の動作例について説明する。
【００９７】
図１２は、パケット解析装置１００の第１の動作例を示す説明図である。図１２の例では、説明の簡略化のため、パケット解析装置１００が、時刻９：５９：３５〜１０：０１：００において、コネクション１とコネクション２とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。パケット解析装置１００は、５秒ごとに、異常レベル範囲リスト９００に対応付ける異常コネクション情報を更新する。
【００９８】
まず、時刻が９：５９：３５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【００９９】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションではないと決定する。
【０１００】
同様に、時刻が９：５９：４０〜９：５９：５５では、パケット解析装置１００は、５秒ごとに、新たに取得したコネクション１，２のパケットをパケットバッファに記憶し、コネクション１，２が異常コネクションではないと決定する。
【０１０１】
次に、時刻が１０：００：００になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１についての異常コネクション情報を生成する。
【０１０２】
パケット解析装置１００は、例えば、算出した異常レベル「５５」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、生成したコネクション１についての異常コネクション情報を登録する。
【０１０３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「６５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２についての異常コネクション情報を生成する。
【０１０４】
パケット解析装置１００は、例えば、算出した異常レベル「６５」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、生成したコネクション２についての異常コネクション情報を登録する。
【０１０５】
次に、時刻が１０：００：０５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「８０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが「５５」から「８０」に増加したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１０６】
パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の異常レベルを新たに算出した異常レベル「８０」に更新する。パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：００：４５」に更新する。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１０７】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報を更新する。
【０１０８】
パケット解析装置１００は、例えば、コネクション２の異常レベルが低下したため、コネクション２についての異常コネクション情報の異常レベル「６５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１０９】
次に、時刻が１０：００：１０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：３５〜９：５９：４０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１１０】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１１１】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１１２】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報を更新する。
【０１１３】
パケット解析装置１００は、例えば、コネクション２の異常レベルが低下したため、コネクション２についての異常コネクション情報の異常レベル「６５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１１４】
次に、時刻が１０：００：１５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４０〜９：５９：４５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１１５】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１１６】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１１７】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報を更新する。
【０１１８】
パケット解析装置１００は、例えば、コネクション２の異常レベルが低下したため、コネクション２についての異常コネクション情報の異常レベル「６５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１１９】
次に、時刻が１０：００：２０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４５〜９：５９：５０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１２０】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【０１２１】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションではないと決定する。
【０１２２】
同様に、時刻が１０：００：２５〜１０：００：３５では、パケット解析装置１００は、取得から３０秒経過したパケットのうち、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置１００は、コネクション１，２が異常コネクションではないと決定する。
【０１２３】
次に、時刻が１０：００：４０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：０５〜１０：００：１０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１２４】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション２についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１０」の異常レベル「５５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１２５】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１０」の４０秒後の時刻「１０：００：５０」に更新する。パケット解析装置１００は、例えば、コネクション２についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１２６】
次に、時刻が１０：００：４５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１０〜１０：００：１５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１２７】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１０」の異常レベル「６５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１２８】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１０」の４０秒後の時刻「１０：００：５０」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１２９】
次に、時刻が１０：００：５０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１５〜１０：００：２０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１３０】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１５」の異常レベル「６０」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１３１】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１５」の４０秒後の時刻「１０：００：５５」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１３２】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション２についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１５」の異常レベル「５０」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１３３】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１５」の４０秒後の時刻「１０：００：５５」に更新する。パケット解析装置１００は、例えば、コネクション２についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１３４】
次に、時刻が１０：００：５５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：２０〜１０：００：２５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１３５】
また、パケット解析装置１００は、コネクション１，２についての異常コネクション情報の最終保存時刻になったことを検出する。パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲に対応付けて登録した、コネクション１，２についての異常コネクション情報を削除する。
【０１３６】
これにより、パケット解析装置１００は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
【０１３７】
ここで、複数の異常コネクションのうち、最初に閾値を超えたときの異常レベルに基づいて、どの異常コネクションで通信されたパケットを記憶するか決定する場合が考えられる。しかしながら、この場合を図１２の例に適用すると、異常レベルの最大値が相対的に大きいコネクション１で通信されたパケットより、異常レベルの最大値が相対的に小さいコネクション２で通信されたパケットを優先して記憶してしまうことがある。これに対し、パケット解析装置１００は、異常レベルの最大値が相対的に大きいコネクション１で通信されたパケットを優先して記憶することができる。
【０１３８】
次に、図１３を用いて、実施例１におけるパケット解析装置１００の第２の動作例について説明する。
【０１３９】
図１３は、パケット解析装置１００の第２の動作例を示す説明図である。図１３の例では、説明の簡略化のため、パケット解析装置１００が、時刻９：５９：３５〜時刻１０：０１：００において、コネクション１とコネクション２とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。パケット解析装置１００は、５秒ごとに、異常レベル範囲リスト９００に対応付ける異常コネクション情報を更新する。
【０１４０】
まず、時刻が９：５９：３５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【０１４１】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションではないと決定する。
【０１４２】
同様に、時刻が９：５９：４０〜９：５９：５５では、パケット解析装置１００は、新たに取得したコネクション１，２のパケットをパケットバッファに記憶し、コネクション１，２が異常コネクションではないと決定する。
【０１４３】
次に、時刻が１０：００：００になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１についての異常コネクション情報を生成する。
【０１４４】
パケット解析装置１００は、例えば、算出した異常レベル「６０」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、生成したコネクション１についての異常コネクション情報を登録する。
【０１４５】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２についての異常コネクション情報を生成する。
【０１４６】
パケット解析装置１００は、例えば、算出した異常レベル「５５」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、生成したコネクション２についての異常コネクション情報を登録する。
【０１４７】
次に、時刻が１０：００：０５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「８０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが「５５」から「８０」に増加したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１４８】
パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の異常レベルを新たに算出した異常レベル「８０」に更新する。パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：００：４５」に更新する。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１４９】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０１５０】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「５５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１５１】
次に、時刻が１０：００：１０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：３５〜９：５９：４０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１５２】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１５３】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１５４】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが「５５」から「６０」に増加したと判定し、コネクション２についての異常コネクション情報を更新する。
【０１５５】
パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の異常レベルを新たに算出した異常レベル「６０」に更新する。パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：００：５０」に更新する。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１５６】
次に、時刻が１０：００：１５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４０〜９：５９：４５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１５７】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１５８】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１５９】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報を更新する。
【０１６０】
パケット解析装置１００は、例えば、コネクション２の異常レベルが低下したため、コネクション２についての異常コネクション情報の異常レベル「６０」と、有効期限「１０：００：５０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１６１】
次に、時刻が１０：００：２０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４５〜９：５９：５０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１６２】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【０１６３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションではないと決定する。
【０１６４】
同様に、時刻が１０：００：２５〜１０：００：４０では、パケット解析装置１００は、取得から３０秒経過したパケットのうち、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置１００は、コネクション１，２が異常コネクションではないと決定する。
【０１６５】
次に、時刻が１０：００：４５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１０〜１０：００：１５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１６６】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１０」の異常レベル「５５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１６７】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１０」の４０秒後の時刻「１０：００：５０」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１６８】
次に、時刻が１０：００：５０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１５〜１０：００：２０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０１６９】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１５」の異常レベル「５０」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１７０】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１５」の４０秒後の時刻「１０：００：５５」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１７１】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション２についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：１５」の異常レベル「５５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０１７２】
また、パケット解析装置１００は、コネクション２についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：１５」の４０秒後の時刻「１０：００：５５」に更新する。パケット解析装置１００は、例えば、コネクション２についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１７３】
次に、時刻が１０：００：５５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：２０〜１０：００：２５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０１７４】
また、パケット解析装置１００は、コネクション１，２についての異常コネクション情報の最終保存時刻になったことを検出する。パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲に対応付けて登録した、コネクション１，２についての異常コネクション情報を削除する。
【０１７５】
これにより、パケット解析装置１００は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
【０１７６】
ここで、異常レベルが変化する都度、複数の異常コネクションのうち、相対的に異常レベルが大きい方の異常コネクションで通信されたパケットを記憶するようにする場合が考えられる。しかしながら、この場合を図１３の例に適用すると、異常レベルの最大値が相対的に大きいコネクション１で通信されたパケットは、比較的短い期間の分しか記憶されなくなってしまうことがある。これに対し、パケット解析装置１００は、コネクション１，２で通信されたパケットを、ある程度の期間の分、記憶しておくことができる。
【０１７７】
次に、図１４を用いて、実施例１におけるパケット解析装置１００の第３の動作例について説明する。
【０１７８】
図１４は、パケット解析装置１００の第３の動作例を示す説明図である。図１４の例では、説明の簡略化のため、パケット解析装置１００が、時刻９：５９：３５〜時刻１０：０１：２５において、コネクション１とコネクション２とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。また、パケット解析装置１００は、５秒ごとに、異常レベル範囲リスト９００に対応付ける異常コネクション情報を更新する。
【０１７９】
まず、時刻が９：５９：３５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【０１８０】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションではないと決定する。
【０１８１】
同様に、時刻が９：５９：４０〜９：５９：５５では、パケット解析装置１００は、新たに取得したコネクション１，２のパケットをパケットバッファに記憶し、コネクション１，２が異常コネクションではないと決定する。
【０１８２】
次に、時刻が１０：００：００になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１についての異常コネクション情報を生成する。
【０１８３】
パケット解析装置１００は、例えば、算出した異常レベル「６０」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、生成したコネクション１についての異常コネクション情報を登録する。
【０１８４】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２についての異常コネクション情報を生成する。
【０１８５】
パケット解析装置１００は、例えば、算出した異常レベル「５５」と、有効期限として現時点から４０秒後の時刻「１０：００：４０」と、最終保存時刻として現時点から４０秒後の時刻「１０：００：４０」とを含む、異常コネクション情報を生成する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、生成したコネクション２についての異常コネクション情報を登録する。
【０１８６】
次に、時刻が１０：００：０５になる。ここで、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「８０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが「６０」から「８０」に増加したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１８７】
パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の異常レベルを新たに算出した異常レベル「８０」に更新する。パケット解析装置１００は、例えば、コネクション１の異常レベルが増加したため、コネクション１についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：００：４５」に更新する。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１８８】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０１８９】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「５５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：４５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１９０】
次に、時刻が１０：００：１０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：３５〜９：５９：４０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１９１】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０１９２】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１９３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０１９４】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「５５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０１９５】
次に、時刻が１０：００：１５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４０〜９：５９：４５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０１９６】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが変化していないと判定し、コネクション１についての異常コネクション情報を更新する。
【０１９７】
パケット解析装置１００は、例えば、コネクション１の異常レベルが変化していないため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０１９８】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０１９９】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「５５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２００】
次に、時刻が１０：００：２０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：４５〜９：５９：５０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０２０１】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが変化していないと判定し、コネクション１についての異常コネクション情報を更新する。
【０２０２】
パケット解析装置１００は、例えば、コネクション１の異常レベルが変化していないため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２０３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０２０４】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「５５」と、有効期限「１０：００：４０」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：００：５５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２０５】
次に、時刻が１０：００：２５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：５０〜９：５９：５５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０２０６】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが低下したと判定し、コネクション１についての異常コネクション情報を更新する。
【０２０７】
パケット解析装置１００は、例えば、コネクション１の異常レベルが低下したため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：０５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「８０〜９０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２０８】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが増加したと判定し、コネクション２についての異常コネクション情報を更新する。
【０２０９】
パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の異常レベルを新たに算出した異常レベル「６０」に更新する。パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：０１：０５」に更新する。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：０５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２１０】
次に、時刻が１０：００：３０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻９：５９：５５〜１０：００：００にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０２１１】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベル「５５」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションであると決定し、コネクション１の異常レベルが変化していないと判定し、コネクション１についての異常コネクション情報を更新する。
【０２１２】
パケット解析装置１００は、例えば、コネクション１の異常レベルが変化していないため、コネクション１についての異常コネクション情報の異常レベル「８０」と、有効期限「１０：００：４５」とを更新しない。パケット解析装置１００は、例えば、コネクション１が異常コネクションであるため、コネクション１についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：１０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２１３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「６０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが変化していないと判定し、コネクション２についての異常コネクション情報を更新する。
【０２１４】
パケット解析装置１００は、例えば、コネクション２の異常レベルが変化していないため、コネクション２についての異常コネクション情報の異常レベル「６０」と、有効期限「１０：０１：０５」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：１０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２１５】
同様に、時刻が１０：００：３５〜１０：００：４０では、パケット解析装置１００は、取得から３０秒経過したパケットのうち、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置１００は、コネクション１，２が異常コネクションであると決定し、コネクション１，２の異常レベルが変化していないと判定し、コネクション１についての異常コネクション情報の最終保存時刻を更新する。そして、パケット解析装置１００は、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２１６】
次に、時刻が１０：００：４５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１０〜１０：００：１５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション１で通信されたパケットを優先して保存ファイルに記憶する。
【０２１７】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：２０」の異常レベル「６０」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０２１８】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：２０」の４０秒後の時刻「１０：０１：００」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「６０〜７０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２１９】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベル「７０」を算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが増加したと判定し、コネクション２についての異常コネクション情報を更新する。
【０２２０】
パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の異常レベルを新たに算出した異常レベル「７０」に更新する。パケット解析装置１００は、例えば、コネクション２の異常レベルが増加したため、コネクション２についての異常コネクション情報の有効期限を現時点から４０秒後の時刻「１０：０１：２５」に更新する。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：２５」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「７０〜８０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２２１】
次に、時刻が１０：００：５０になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：１５〜１０：００：２０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０２２２】
また、パケット解析装置１００は、新たに取得したコネクション１のパケットをパケットバッファに記憶し、コネクション１の異常レベルを算出し、その異常レベルが閾値「５０」未満であると判定する。そして、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。
【０２２３】
また、パケット解析装置１００は、新たに取得したコネクション２のパケットをパケットバッファに記憶し、コネクション２の異常レベルを算出し、その異常レベルが閾値「５０」以上であると判定する。そして、パケット解析装置１００は、コネクション２が異常コネクションであると決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報を更新する。
【０２２４】
パケット解析装置１００は、例えば、コネクション２の異常レベルが低下したため、コネクション２についての異常コネクション情報の異常レベル「７０」と、有効期限「１０：０１：２５」とを更新しない。パケット解析装置１００は、例えば、コネクション２が異常コネクションであるため、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：３０」に更新する。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「７０〜８０」に対応付けて、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２２５】
同様に、時刻が１０：００：５５では、パケット解析装置１００は、取得から３０秒経過したパケットのうち、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置１００は、コネクション１が異常コネクションではないと決定する。また、パケット解析装置１００は、コネクション２を異常コネクションに決定し、コネクション２の異常レベルが低下したと判定し、コネクション２についての異常コネクション情報の最終保存時刻を現時点から４０秒後の時刻「１０：０１：３５」に更新する。そして、パケット解析装置１００は、更新したコネクション２についての異常コネクション情報を登録し直す。
【０２２６】
次に、時刻が１０：０１：００になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：２５〜１０：００：３０にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０２２７】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：２５」の異常レベル「５５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０２２８】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：２５」の４０秒後の時刻「１０：０１：０５」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２２９】
次に、時刻が１０：０１：０５になる。ここで、パケット解析装置１００は、パケットバッファに、過去の時刻１０：００：３０〜１０：００：３５にコネクション１，２で通信され、取得から３０秒経過したパケットがあると判定する。そして、パケット解析装置１００は、取得から３０秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置１００は、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０２３０】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置１００は、異常レベル履歴８００に基づいて、コネクション１についての異常コネクション情報の異常レベルを、異常レベル履歴８００に記憶された時刻「１０：００：２５」の異常レベル「５５」に更新する。パケット解析装置１００が、異常レベル履歴８００に基づいて、異常レベルを更新する詳細については、図１５を用いて後述する。
【０２３１】
また、パケット解析装置１００は、コネクション１についての異常コネクション情報の有効期限を、異常レベル履歴８００の時刻「１０：００：２５」の４０秒後の時刻「１０：０１：０５」に更新する。パケット解析装置１００は、例えば、コネクション１についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置１００は、異常レベル範囲リスト９００の異常レベル範囲「５０〜６０」に対応付けて、更新したコネクション１についての異常コネクション情報を登録し直す。
【０２３２】
次に、時刻が１０：０１：１０〜１０：０１：２５では、パケット解析装置１００は、取得から３０秒経過したパケットのうち、コネクション２で通信されたパケットを優先して保存ファイルに記憶する。
【０２３３】
これにより、パケット解析装置１００は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
【０２３４】
ここで、複数の異常コネクションのうち、現時点までの異常レベルの最大値に基づいて、どの異常コネクションで通信されたパケットを記憶するか決定する場合が考えられる。しかしながら、この場合を図１４の例に適用すると、異常レベルの最大値が小さいコネクション２で通信されたパケットは、保存ファイルに記憶されないことがある。これに対し、パケット解析装置１００は、コネクション１，２で通信されたパケットを、それぞれ、記憶することができる。
【０２３５】
次に、図１５を用いて、異常レベル履歴８００に基づく異常レベルの設定の一例について説明する。
【０２３６】
図１５は、異常レベル履歴８００に基づく異常レベルの設定の一例を示す説明図である。図１５に示すように、パケット解析装置１００は、所定の個数分の、過去に算出された異常レベルを、異常レベル履歴８００に記憶しておく。そして、パケット解析装置１００は、異常レベル履歴８００に基づく異常レベルの設定を行う際には、異常レベル履歴８００に記憶された異常レベルのうちの最大値を、新たな異常レベルとして設定することになる。
【０２３７】
パケット解析装置１００は、例えば、時刻９：５９：５５以降、５秒ごとに、異常レベルを算出し、異常レベル履歴８００に記憶している。パケット解析装置１００は、異常レベル履歴８００に、８個の異常レベルがある場合、最も古い異常レベルに、新たに算出した異常レベルを上書きし、最新の８個の異常レベルを記憶しておく。
【０２３８】
パケット解析装置１００は、例えば、時刻１０：００：４５に、異常レベル履歴８００に基づく異常レベルの設定を行う際には、異常レベル履歴８００に記憶された時刻１０：００：１０〜１０：００：４５の複数の異常レベルのうちの最大値「６０」を設定する。パケット解析装置１００は、最大値が複数ある場合、複数の最大値のうち、最も新しく記憶された最大値を用いる。パケット解析装置１００は、最大値を設定した場合、その最大値が算出された時刻に基づいて、有効期限を更新する。
【０２３９】
これにより、パケット解析装置１００は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、パケット解析装置１００は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
【０２４０】
（実施例１における格納処理手順の一例）
次に、図１６を用いて、実施例１におけるパケット解析装置１００が実行する格納処理手順の一例について説明する。
【０２４１】
図１６は、実施例１における格納処理手順の一例を示すフローチャートである。図１６において、パケット解析装置１００は、ミラーリングを用いて、パケットを受信する（ステップＳ１６０１）。次に、パケット解析装置１００は、受信したパケットに、パケットＩＤを割り当てる（ステップＳ１６０２）。そして、パケット解析装置１００は、受信したパケットと、割り当てたパケットＩＤと、受信時刻とを対応付けて、パケットバッファに格納する（ステップＳ１６０３）。
【０２４２】
次に、パケット解析装置１００は、受信したパケットについての格納通知を出力する（ステップＳ１６０４）。そして、パケット解析装置１００は、格納処理を終了する。これにより、パケット解析装置１００は、受信したパケットを、パケットバッファに一時的に蓄積することができる。
【０２４３】
（実施例１における解析処理手順の一例）
次に、図１７を用いて、実施例１におけるパケット解析装置１００が実行する解析処理手順の一例について説明する。
【０２４４】
図１７は、実施例１における解析処理手順の一例を示すフローチャートである。図１７において、パケット解析装置１００は、格納通知を検出する（ステップＳ１７０１）。次に、パケット解析装置１００は、パケットバッファに格納されたパケットのヘッダ情報を取得する（ステップＳ１７０２）。そして、パケット解析装置１００は、そのパケットが通信されたコネクションを特定する（ステップＳ１７０３）。
【０２４５】
次に、パケット解析装置１００は、特定したコネクションのコネクションＩＤが、コネクションテーブル４００に登録済みであるか否かを判定する（ステップＳ１７０４）。ここで、登録済みである場合（ステップＳ１７０４：Ｙｅｓ）、パケット解析装置１００は、ステップＳ１７０６の処理に移行する。
【０２４６】
一方で、登録済みではない場合（ステップＳ１７０４：Ｎｏ）、パケット解析装置１００は、特定したコネクションのコネクションＩＤを、コネクションテーブル４００に登録する（ステップＳ１７０５）。そして、パケット解析装置１００は、ステップＳ１７０６の処理に移行する。
【０２４７】
ステップＳ１７０６で、パケット解析装置１００は、特定したコネクションについて、Ｌ４解析処理を実行する（ステップＳ１７０６）。次に、パケット解析装置１００は、Ｌ４解析処理の解析結果を参照し、Ｌ４解析情報テーブル６００を更新する（ステップＳ１７０７）。
【０２４８】
そして、パケット解析装置１００は、Ｌ７解析を実行し（ステップＳ１７０８）、ステップＳ１７０１の処理に戻る。
【０２４９】
（実施例１における異常判定処理手順の一例）
次に、図１８を用いて、実施例１におけるパケット解析装置１００が実行する異常判定処理手順の一例について説明する。
【０２５０】
図１８は、実施例１における異常判定処理手順の一例を示すフローチャートである。図１８において、パケット解析装置１００は、所定の時間間隔ごとの判定タイミングまで待機する（ステップＳ１８０１）。次に、パケット解析装置１００は、判定タイミングになると、コネクションテーブル４００を参照し、いずれかのコネクションを選択する（ステップＳ１８０２）。そして、パケット解析装置１００は、Ｌ４解析情報テーブル６００を参照し、選択したコネクションに、現時点で異常があるか否かを評価する（ステップＳ１８０３）。
【０２５１】
その後、パケット解析装置１００は、評価した結果、および異常コネクション情報テーブル７００を参照し、選択したコネクションが、異常コネクションであるか否かを判定する（ステップＳ１８０４）。ここで、異常コネクションではない場合（ステップＳ１８０４：Ｎｏ）、パケット解析装置１００は、ステップＳ１８０６の処理に移行する。
【０２５２】
一方で、異常コネクションである場合（ステップＳ１８０４：Ｙｅｓ）、パケット解析装置１００は、図１９に後述する異常コネクション登録処理を実行する（ステップＳ１８０５）。そして、パケット解析装置１００は、ステップＳ１８０６の処理に移行する。
【０２５３】
ステップＳ１８０６で、パケット解析装置１００は、コネクションテーブル４００を参照し、未選択のコネクションがあるか否かを判定する（ステップＳ１８０６）。ここで、未選択のコネクションがある場合（ステップＳ１８０６：Ｙｅｓ）、パケット解析装置１００は、ステップＳ１８０２の処理に戻る。
【０２５４】
一方で、未選択のコネクションがない場合（ステップＳ１８０６：Ｎｏ）、パケット解析装置１００は、異常判定処理を終了する。
【０２５５】
（実施例１における異常コネクション登録処理手順の一例）
次に、図１９を用いて、実施例１におけるパケット解析装置１００が実行する異常コネクション登録処理手順の一例について説明する。
【０２５６】
図１９は、実施例１における異常コネクション登録処理手順の一例を示すフローチャートである。図１９において、パケット解析装置１００は、異常コネクションに、現時点で異常があるか否かを判定する（ステップＳ１９０１）。ここで、現時点で異常がある場合（ステップＳ１９０１：Ｙｅｓ）、パケット解析装置１００は、その異常コネクションの、現時点の暫定異常レベルを算出する（ステップＳ１９０２）。
【０２５７】
次に、パケット解析装置１００は、異常コネクション情報テーブル７００を参照し、その異常コネクションについて異常コネクション情報があるか否かを判定する（ステップＳ１９０３）。ここで、異常コネクション情報がある場合（ステップＳ１９０３：Ｙｅｓ）、パケット解析装置１００は、ステップＳ１９０５の処理に移行する。
【０２５８】
一方で、異常コネクション情報がない場合（ステップＳ１９０３：Ｎｏ）、パケット解析装置１００は、その異常コネクションについて、異常コネクション情報と異常レベル履歴８００とを作成する（ステップＳ１９０４）。そして、パケット解析装置１００は、ステップＳ１９０５の処理に移行する。
【０２５９】
ステップＳ１９０５で、パケット解析装置１００は、その異常コネクションについての異常レベル履歴８００に、算出した暫定異常レベルを設定する（ステップＳ１９０５）。次に、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の最終保存時刻を更新する（ステップＳ１９０６）。そして、パケット解析装置１００は、図２０に後述する決定処理を実行する（ステップＳ１９０７）。
【０２６０】
次に、パケット解析装置１００は、図２１に後述するリスト連結処理を実行する（ステップＳ１９０８）。そして、パケット解析装置１００は、異常コネクション登録処理を終了する。
【０２６１】
一方で、ステップＳ１９０１で、現時点で異常ではない場合（ステップＳ１９０１：Ｎｏ）、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の最終保存時刻を過ぎていれば、その異常コネクション情報を削除する（ステップＳ１９０９）。そして、パケット解析装置１００は、異常コネクション登録処理を終了する。
【０２６２】
（実施例１における決定処理手順の一例）
次に、図２０を用いて、実施例１におけるパケット解析装置１００が実行する決定処理手順の一例について説明する。
【０２６３】
図２０は、実施例１における決定処理手順の一例を示すフローチャートである。図２０において、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の有効期限を過ぎたか否かを判定する（ステップＳ２００１）。ここで、有効期限を過ぎている場合（ステップＳ２００１：Ｙｅｓ）、パケット解析装置１００は、異常レベル履歴８００を参照し、保存時間の分記憶された複数の異常レベルのうち、最大の異常レベルを選択する（ステップＳ２００２）。
【０２６４】
次に、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の有効期限を、選択した異常レベルに対応する時刻に保存時間を加算した時刻に設定する（ステップＳ２００３）。そして、パケット解析装置１００は、決定処理を終了する。
【０２６５】
一方で、有効期限を過ぎていない場合（ステップＳ２００１：Ｎｏ）、パケット解析装置１００は、現時点の暫定異常レベル≧過去の異常レベルであるか否かを判定する（ステップＳ２００４）。ここで、現時点の暫定異常レベル≧過去の異常レベルである場合（ステップＳ２００４：Ｙｅｓ）、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の異常レベルを、現時点の暫定異常レベルに設定する（ステップＳ２００５）。
【０２６６】
次に、パケット解析装置１００は、有効期限を、現時点に保存時間を加算した時刻に設定する（ステップＳ２００６）。そして、パケット解析装置１００は、決定処理を終了する。
【０２６７】
一方で、ステップＳ２００４で、現時点の暫定異常レベル≧過去の異常レベルではない場合（ステップＳ２００４：Ｎｏ）、パケット解析装置１００は、異常コネクション情報に異常レベルが設定済みであるか否かを判定する（ステップＳ２００７）。ここで、設定済みである場合（ステップＳ２００７：Ｙｅｓ）、パケット解析装置１００は、決定処理を終了する。
【０２６８】
一方で、設定済みではない場合（ステップＳ２００７：Ｎｏ）、パケット解析装置１００は、ステップＳ２００６の処理に移行する。
【０２６９】
（実施例１におけるリスト連結処理手順の一例）
次に、図２１を用いて、実施例１におけるパケット解析装置１００が実行するリスト連結処理手順の一例について説明する。
【０２７０】
図２１は、実施例１におけるリスト連結処理手順の一例を示すフローチャートである。図２１において、パケット解析装置１００は、決定した異常コネクションの異常レベルに対応する、異常レベル範囲リスト９００のいずれかの異常レベル範囲に、その異常コネクションの異常コネクション情報を対応付ける（ステップＳ２１０１）。
【０２７１】
次に、パケット解析装置１００は、その異常レベル範囲のコネクション数に１を加算する（ステップＳ２１０２）。そして、パケット解析装置１００は、リスト連結処理を終了する。
【０２７２】
（実施例１における生成処理手順の一例）
次に、図２２を用いて、実施例１におけるパケット解析装置１００が実行する生成処理手順の一例について説明する。
【０２７３】
図２２は、実施例１における生成処理手順の一例を示すフローチャートである。図２２において、パケット解析装置１００は、インデックステーブル５００のリードポインタ位置が示す、インデックステーブル５００のレコードを特定する（ステップＳ２２０１）。
【０２７４】
次に、パケット解析装置１００は、特定したレコードの受信時刻から一定時間が経過したか否かを判定する（ステップＳ２２０２）。ここで、一定時間が経過していない場合（ステップＳ２２０２：Ｎｏ）、パケット解析装置１００は、ステップＳ２２０１の処理に戻る。
【０２７５】
一方で、一定時間が経過している場合（ステップＳ２２０２：Ｙｅｓ）、パケット解析装置１００は、特定したレコードを読み出し、リードポインタ位置に１を加算する（ステップＳ２２０３）。次に、パケット解析装置１００は、取得したレコードのパケットＩＤが示すパケットが、異常レベル範囲リスト９００の特定の異常レベル範囲に対応付けられた異常コネクションのパケットであるか否かを判定する（ステップＳ２２０４）。ここで、異常コネクションのパケットではない場合（ステップＳ２２０４：Ｎｏ）、パケット解析装置１００は、ステップＳ２２０１の処理に戻る。
【０２７６】
一方で、異常コネクションのパケットである場合（ステップＳ２２０４：Ｙｅｓ）、パケット解析装置１００は、取得したレコードに基づいて、図２３に後述するパケットフィルタ処理を実行する（ステップＳ２２０５）。そして、パケット解析装置１００は、ステップＳ２２０１の処理に戻る。
【０２７７】
（実施例１におけるパケットフィルタ処理手順の一例）
次に、図２３を用いて、実施例１におけるパケット解析装置１００が実行するパケットフィルタ処理手順の一例について説明する。
【０２７８】
図２３は、実施例１におけるパケットフィルタ処理手順の一例を示すフローチャートである。図２３において、パケット解析装置１００は、取得したレコードに基づいて、パケットバッファに記憶されたパケットを取得する（ステップＳ２３０１）。
【０２７９】
次に、パケット解析装置１００は、そのパケットに対応するコネクションＩＤを取得する（ステップＳ２３０２）。そして、パケット解析装置１００は、メモリ３０２や記録媒体３０５などの記憶領域に、コネクションＩＤに対応する保存領域があるか否かを判定する（ステップＳ２３０３）。ここで、保存領域がない場合（ステップＳ２３０３：Ｎｏ）、パケット解析装置１００は、新たな保存領域を設定し、そのパケットを格納する（ステップＳ２３０４）。次に、パケット解析装置１００は、新たな保存領域に対応するメタデータを作成する（ステップＳ２３０５）。そして、パケット解析装置１００は、パケットフィルタ処理を終了する。
【０２８０】
一方で、保存領域がある場合（ステップＳ２３０３：Ｙｅｓ）、パケット解析装置１００は、その保存領域に、そのパケットを格納する（ステップＳ２３０６）。次に、パケット解析装置１００は、その保存領域に対応するメタデータを更新する（ステップＳ２３０７）。そして、パケット解析装置１００は、パケットフィルタ処理を終了する。
【０２８１】
（実施例２）
次に、図２４を用いて、実施例２におけるパケット解析装置１００の動作例について説明する。実施例２では、パケット解析装置１００が、実施例１の異常レベル範囲リスト９００とは異なるリスト構造で、異常レベル範囲リスト２４００を記憶する。
【０２８２】
図２４は、実施例２における異常レベル範囲リスト２４００の記憶内容の一例である。図２４に示すように、異常レベル範囲リスト２４００は、範囲上限と、範囲下限と、コネクション数と、リスト先頭ポインタと、リスト末端ポインタとのフィールドを有する。各フィールドは、図９と同様であるため、説明を省略する。図２４の例では、異常レベル範囲リスト２４００が有するアイテムが、図９と異なるため、そのアイテムについて以下に説明する。
【０２８３】
アイテムは、異常コネクションごとに存在し、異常コネクション情報ポインタと、前アドレスと、次アドレスとのフィールドを有する。異常コネクション情報ポインタのフィールドは、異常レベル範囲に対応付ける異常コネクションについての異常コネクション情報へのポインタが設定される。
【０２８４】
前アドレスのフィールドは、異常コネクション情報ポインタによって指定された異常コネクションよりも前に、同じ異常レベル範囲に対応付けられる他の異常コネクションについての異常コネクション情報ポインタを含んでいるアイテムへのポインタが設定される。次アドレスのフィールドは、異常コネクション情報ポインタによって指定された異常コネクションの次に、同じ異常レベル範囲に対応付けられる他の異常コネクションについての異常コネクション情報ポインタを含んでいるアイテムへのポインタが設定される。
【０２８５】
ここで、複数のアイテムは、それぞれのアイテムの対応する異常コネクション情報の最終保存時刻が遅い順番に、先頭から連結されるようにする。これにより、パケット解析装置１００は、ある異常コネクション情報の最終保存時刻を過ぎた場合に、その異常コネクション情報だけではなく、その異常コネクションの後ろに対応付けられた異常コネクションもまとめて削除することができる。このため、パケット解析装置１００は、異常コネクション情報の削除にかかる処理時間を低減することができる。
【０２８６】
（実施例２における異常判定処理手順の一例）
次に、図２５を用いて、実施例２におけるパケット解析装置１００が実行する異常判定処理手順の一例について説明する。
【０２８７】
図２５は、実施例２における異常判定処理手順の一例を示すフローチャートである。図２５において、パケット解析装置１００は、所定の時間間隔ごとの判定タイミングまで待機する（ステップＳ２５０１）。次に、パケット解析装置１００は、判定タイミングになると、コネクションテーブル４００を参照し、いずれかのコネクションを選択する（ステップＳ２５０２）。そして、パケット解析装置１００は、Ｌ４解析情報テーブル６００を参照し、選択したコネクションに、現時点で異常があるか否かを評価する（ステップＳ２５０３）。
【０２８８】
その後、パケット解析装置１００は、評価した結果、および異常コネクション情報テーブル７００を参照し、選択したコネクションが、異常コネクションであるか否かを判定する（ステップＳ２５０４）。ここで、異常コネクションではない場合（ステップＳ２５０４：Ｎｏ）、パケット解析装置１００は、ステップＳ２５０６の処理に移行する。
【０２８９】
一方で、異常コネクションである場合（ステップＳ２５０４：Ｙｅｓ）、パケット解析装置１００は、図２６に後述する異常コネクション登録処理を実行する（ステップＳ２５０５）。そして、パケット解析装置１００は、ステップＳ２５０６の処理に移行する。
【０２９０】
ステップＳ２５０６で、パケット解析装置１００は、コネクションテーブル４００を参照し、未選択のコネクションがあるか否かを判定する（ステップＳ２５０６）。ここで、未選択のコネクションがある場合（ステップＳ２５０６：Ｙｅｓ）、パケット解析装置１００は、ステップＳ２５０２の処理に戻る。
【０２９１】
一方で、未選択のコネクションがない場合（ステップＳ２５０６：Ｎｏ）、パケット解析装置１００は、図２８に後述する異常コネクション削除処理を実行する（ステップＳ２５０７）。そして、パケット解析装置１００は、ステップＳ２５０１の処理に戻る。
【０２９２】
（実施例２における異常コネクション登録処理手順の一例）
次に、図２６を用いて、実施例２におけるパケット解析装置１００が実行する異常コネクション登録処理手順の一例について説明する。
【０２９３】
図２６は、実施例２における異常コネクション登録処理手順の一例を示すフローチャートである。図２６において、パケット解析装置１００は、異常コネクションに、現時点で異常があるか否かを判定する（ステップＳ２６０１）。ここで、現時点で異常がある場合（ステップＳ２６０１：Ｙｅｓ）、パケット解析装置１００は、その異常コネクションの、現時点の暫定異常レベルを算出する（ステップＳ２６０２）。
【０２９４】
次に、パケット解析装置１００は、異常コネクション情報テーブル７００を参照し、その異常コネクションについて異常コネクション情報があるか否かを判定する（ステップＳ２６０３）。ここで、異常コネクション情報がある場合（ステップＳ２６０３：Ｙｅｓ）、パケット解析装置１００は、ステップＳ２６０５の処理に移行する。
【０２９５】
一方で、異常コネクション情報がない場合（ステップＳ２６０３：Ｎｏ）、パケット解析装置１００は、その異常コネクションについて、異常コネクション情報と異常レベル履歴８００とを作成する（ステップＳ２６０４）。そして、パケット解析装置１００は、ステップＳ２６０５の処理に移行する。
【０２９６】
ステップＳ２６０５で、パケット解析装置１００は、その異常コネクションについての異常レベル履歴８００に、算出した暫定異常レベルを設定する（ステップＳ２６０５）。次に、パケット解析装置１００は、その異常コネクションについての異常コネクション情報の最終保存時刻を更新する（ステップＳ２６０６）。そして、パケット解析装置１００は、図３４に後述する決定処理を実行する（ステップＳ２６０７）。
【０２９７】
次に、パケット解析装置１００は、図２７に後述するリスト連結処理を実行する（ステップＳ２６０８）。そして、パケット解析装置１００は、異常コネクション登録処理を終了する。
【０２９８】
一方で、ステップＳ２６０１で、現時点で異常ではない場合（ステップＳ２６０１：Ｎｏ）、パケット解析装置１００は、異常コネクション登録処理を終了する。
【０２９９】
（実施例２におけるリスト連結処理手順の一例）
次に、図２７を用いて、実施例２におけるパケット解析装置１００が実行するリスト連結処理手順の一例について説明する。
【０３００】
図２７は、実施例２におけるリスト連結処理手順の一例を示すフローチャートである。図２７において、パケット解析装置１００は、最終保存時間を過ぎたか否かを判定する（ステップＳ２７０１）。ここで、最終保存時刻を過ぎている場合（ステップＳ２７０１：Ｙｅｓ）、パケット解析装置１００は、リスト連結処理を終了する。
【０３０１】
一方で、最終保存時刻を過ぎていない場合（ステップＳ２７０１：Ｎｏ）、パケット解析装置１００は、異常コネクションの現時点の異常レベルと、新規の異常レベルとが同一異常レベル範囲であるか否かを判定する（ステップＳ２７０２）。ここで、同一異常レベル範囲ではない場合（ステップＳ２７０２：Ｎｏ）、パケット解析装置１００は、異常レベル範囲リスト２４００のいずれかの異常レベル範囲と、異常コネクションとの対応付けを削除する（ステップＳ２７０３）。
【０３０２】
次に、パケット解析装置１００は、異常レベル範囲のコネクション数から１減算する（ステップＳ２７０４）。そして、パケット解析装置１００は、決定した異常レベルに対応する異常レベル範囲に対応付けられた、異常コネクションよりも最終保存時刻が早い他の異常コネクションの位置を検索する（ステップＳ２７０５）。
【０３０３】
次に、パケット解析装置１００は、検索した位置に、異常コネクションを対応付ける（ステップＳ２７０６）。そして、パケット解析装置１００は、コネクション数に１加算する（ステップＳ２７０７）。その後、パケット解析装置１００は、リスト連結処理を終了する。
【０３０４】
一方で、同一異常レベル範囲である場合（ステップＳ２７０２：Ｙｅｓ）、パケット解析装置１００は、最終保存時刻が変更されたか否かを判定する（ステップＳ２７０８）。ここで、変更されていない場合（ステップＳ２７０８：Ｎｏ）、パケット解析装置１００は、リスト連結処理を終了する。
【０３０５】
一方で、変更されている場合（ステップＳ２７０８：Ｙｅｓ）、パケット解析装置１００は、最終保存時刻順に、異常レベル範囲リスト２４００上の位置を変更する（ステップＳ２７０９）。そして、パケット解析装置１００は、リスト連結処理を終了する。
【０３０６】
（実施例２における削除処理手順の一例）
次に、図２８を用いて、実施例２におけるパケット解析装置１００が実行する削除処理手順の一例について説明する。
【０３０７】
図２８は、実施例２における削除処理手順の一例を示すフローチャートである。図２８において、パケット解析装置１００は、いずれかの異常レベル範囲を選択する（ステップＳ２８０１）。次に、パケット解析装置１００は、選択した異常レベル範囲を後方から検索し、最終保存時刻が経過した１以上の異常コネクションに対応する部分の先頭位置を特定する（ステップＳ２８０２）。そして、パケット解析装置１００は、特定した先頭位置に基づいて、異常レベル範囲リスト２４００から、最終保存時刻が経過した１以上の異常コネクションに対応する部分を切り離す（ステップＳ２８０３）。
【０３０８】
次に、パケット解析装置１００は、異常レベル範囲のコネクション数を、切り離した部分に対応する数だけ減算する（ステップＳ２８０４）。そして、パケット解析装置１００は、異常コネクション情報と、異常レベル履歴８００とを削除する（ステップＳ２８０５）。次に、パケット解析装置１００は、未選択の異常レベル範囲があるか否かを判定する（ステップＳ２８０６）。ここで、未選択の異常レベル範囲がある場合（ステップＳ２８０６：Ｙｅｓ）、パケット解析装置１００は、ステップＳ２８０１の処理に戻る。
【０３０９】
一方で、未選択の異常レベル範囲がない場合（ステップＳ２８０６：Ｎｏ）、パケット解析装置１００は、削除処理を終了する。
【０３１０】
以上説明したように、パケット解析装置１００によれば、取得したパケットを蓄積することができる。また、パケット解析装置１００によれば、取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を蓄積することができる。また、パケット解析装置１００によれば、所定の時間間隔で、コネクションの通信性能を示す異常レベルを含む、複数の異常レベル範囲のいずれかの異常レベル範囲に対応付けて、そのコネクションを示す情報を登録することができる。また、パケット解析装置１００によれば、蓄積した、取得から一定の時間が経過したパケットのうち、特定の異常レベル範囲に対応するコネクションで通信されたパケットを抽出して、保存ファイルに記憶することができる。これにより、パケット解析装置１００は、抽出して記憶したパケットに基づいて、事後的かつ詳細に、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができる。また、パケット解析装置１００は、異常レベルに基づくソートを行わなくてよく、比較的低い処理負荷で、パケットを選択的に記憶することができる。
【０３１１】
また、パケット解析装置１００によれば、第１のコネクションの通信性能を示す異常レベルが閾値以上である場合に、その異常レベルを含む異常レベル範囲に対応付けて、第１のコネクションを示す情報を登録することができる。これにより、パケット解析装置１００は、異常レベルが比較的大きく、事後的かつ詳細な解析が行われる可能性が比較的大きい異常コネクションで通信されたパケットは抽出されやすくすることができる。一方で、パケット解析装置１００は、異常レベルが比較的小さく、事後的かつ詳細な解析が行われる可能性が比較的小さい異常コネクションで通信されたパケットは抽出されないようにして、記憶領域の不足を発生しにくくすることができる。
【０３１２】
また、パケット解析装置１００によれば、第１のコネクションを示す情報を異常レベル範囲に対応付けて登録した場合、第１のコネクションを示す情報の異常レベル範囲への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定することができる。また、パケット解析装置１００によれば、有効期限までは、第１のコネクションを示す情報を、現在対応付けている異常レベル範囲より通信性能が低いことを示す異常レベル範囲に対応付けられないようにすることができる。これにより、登録部１００４は、異常レベルが一時的に大きくなり、保存ファイルに記憶しておくことが好ましくなったパケットが、その後の異常レベルの低下に伴って保存ファイルに記憶されなくなることを、有効期限までは抑制することができる。
【０３１３】
また、パケット解析装置１００によれば、第１のコネクションの通信性能を示す異常レベルが増加した場合、第１のコネクションの通信性能を示す異常レベルを含む異常レベル範囲に対応付けて、第１のコネクションを示す情報を登録し直すことができる。また、パケット解析装置１００によれば、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置１００は、異常レベルが大きくなり、さらに保存ファイルに記憶しておくことが好ましくなったパケットを、優先して保存ファイルに記憶されやすくすることができる。また、パケット解析装置１００は、異常レベルが大きくなってから一定時間は、パケットが保存ファイルに記憶されやすくすることができる。
【０３１４】
また、パケット解析装置１００によれば、第１のコネクションの通信性能を示す異常レベルが低下した場合、第１のコネクションを示す情報の異常レベル範囲への登録状態について変更しないことができる。これにより、パケット解析装置１００は、異常レベルが低下した直後に、第１のコネクションで通信されたパケットが抽出されなくなってしまうことを防止することができる。
【０３１５】
また、パケット解析装置１００によれば、第１のコネクションの通信性能を示す異常レベルが低下し、かつ、現在対応付けている異常レベル範囲に含まれたままである場合、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置１００は、異常コネクションに異常が継続している場合には、より長い期間パケットを抽出し、保存ファイルに記憶するようにすることができる。
【０３１６】
また、パケット解析装置１００によれば、有効期限になった場合、所定の期間における第１のコネクションの通信性能を示す異常レベルのいずれかの異常レベルに基づいて、第１のコネクションを示す情報を、異常レベル範囲に対応付けて登録し直すことができる。また、パケット解析装置１００は、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置１００は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、パケット解析装置１００は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
【０３１７】
また、パケット解析装置１００によれば、第１のコネクションの通信性能を示す異常レベルを基に、第１のコネクションを示す情報のいずれかの異常レベル範囲への登録状態についての保持期限を設定することができる。また、パケット解析装置１００によれば、保持期限を過ぎた場合、第１のコネクションを示す情報の第３の記憶部１３０への登録状態を削除することができる。これにより、パケット解析装置１００は、保持期限を過ぎ、事後的かつ詳細にコネクションなどを解析する際に用いられる可能性が小さくなった、保存ファイルに記憶しておかなくてよいパケットを、保存ファイルに記憶しないようにすることができる。
【０３１８】
なお、本実施の形態で説明したパケット解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したパケット解析プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したパケット解析プログラムは、インターネット等のネットワークを介して配布してもよい。
【０３１９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０３２０】
（付記１）コンピュータに、
取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
処理を実行させることを特徴とするパケット解析プログラム。
【０３２１】
（付記２）前記登録する処理は、
第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録する、ことを特徴とする付記１に記載のパケット解析プログラム。
【０３２２】
（付記３）前記登録する処理は、
前記第１のコネクションを示す情報を前記第３の記憶部に登録した場合、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定し、
前記有効期限までは、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直す際には、前記第１のコネクションを示す情報を、前記第１のコネクションを示す情報に対応付けている指標値範囲、または前記第１のコネクションを示す情報に対応付けている指標値範囲より通信性能が低いことを示す指標値範囲に対応付ける、ことを特徴とする付記２に記載のパケット解析プログラム。
【０３２３】
（付記４）前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値の変化が、前記第１のコネクションの通信性能の低下を示す場合、前記第１のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直し、
前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記３に記載のパケット解析プログラム。
【０３２４】
（付記５）前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値の変化が、前記第１のコネクションの通信性能の向上を示す場合、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態について変更しない、ことを特徴とする付記３または４に記載のパケット解析プログラム。
【０３２５】
（付記６）前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値の変化が、前記第１のコネクションの通信性能の向上を示し、かつ、前記第１のコネクションの通信性能を示す指標値が、前記第１のコネクションを示す情報に対応付けている指標値範囲に含まれる場合、前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記３〜５のいずれか一つに記載のパケット解析プログラム。
【０３２６】
（付記７）前記登録する処理は、
前記有効期限になった場合、所定の期間における前記第１のコネクションの通信性能を示す指標値のいずれかの指標値を含む、前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第１のコネクションを示す情報を前記第３の記憶部に登録し直し、
前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記３〜６のいずれか一つに記載のパケット解析プログラム。
【０３２７】
（付記８）前記登録する処理は、
前記第１のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定し、
前記保持期限を過ぎた場合、前記第１のコネクションを示す情報の前記第３の記憶部への登録状態を削除する、ことを特徴とする付記２〜７のいずれか一つに記載のパケット解析プログラム。
【０３２８】
（付記９）コンピュータが、
取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
処理を実行することを特徴とするパケット解析方法。
【０３２９】
（付記１０）取得したパケットを第１の記憶部に蓄積し、
取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第２の記憶部に蓄積し、
所定の時間間隔で、前記第２の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第３の記憶部に登録し、
前記第３の記憶部を参照し、前記第１の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第４の記憶部に記憶する、
制御部を有することを特徴とするパケット解析装置。
【符号の説明】
【０３３０】
１００  パケット解析装置
１１０  第１の記憶部
１２０  第２の記憶部
１３０  第３の記憶部
１４０  第４の記憶部
１５０，９００，１１０９  異常レベル範囲リスト
１６１〜１６５  異常コネクション情報
１７１〜１７５  ポインタ
２００  パケット解析システム
２１０  ネットワーク
２２０  クライアント装置
２３０  サーバ装置
２４０  中継装置
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ネットワークＩ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
４００  コネクションテーブル
５００，１１０６  インデックステーブル
６００  Ｌ４解析情報テーブル
８００  異常レベル履歴
１００１  記憶部
１００２  取得部
１００３  解析部
１００４  登録部
１００５  保存部
１１０１  ＮＩＣ
１１０２  ドライバ
１１０３  パケットバッファ
１１０４  Ｌ４解析
１１０５  インデックス作成
１１０７  Ｌ４異常判定
１１０８  異常コネクション情報テーブル
１１１０  Ｌ４統計
１１１１  統計情報
１１１２  Ｌ７解析
１１１３  Ｌ７異常判定
１１１４  Ｌ７統計
１１１５  パケットフィルタ
１１１６  パケット保存
１１１７  保存ファイル
【図１】
2018113549.tif 000003
【図２】
2018113549.tif 000004
【図３】
2018113549.tif 000005
【図４】
2018113549.tif 000006
【図５】
2018113549.tif 000007
【図６】
2018113549.tif 000008
【図７】
2018113549.tif 000009
【図８】
2018113549.tif 000010
【図９】
2018113549.tif 000011
【図１０】
2018113549.tif 000012
【図１１】
2018113549.tif 000013
【図１２】
2018113549.tif 000014
【図１３】
2018113549.tif 000015
【図１４】
2018113549.tif 000016
【図１５】
2018113549.tif 000017
【図１６】
2018113549.tif 000018
【図１７】
2018113549.tif 000019
【図１８】
2018113549.tif 000020
【図１９】
2018113549.tif 000021
【図２０】
2018113549.tif 000022
【図２１】
2018113549.tif 000023
【図２２】
2018113549.tif 000024
【図２３】
2018113549.tif 000025
【図２４】
2018113549.tif 000026
【図２５】
2018113549.tif 000027
【図２６】
2018113549.tif 000028
【図２７】
2018113549.tif 000029
【図２８】
2018113549.tif 000030