Certains contenus de cette application ne sont pas disponibles pour le moment.
Si cette situation persiste, veuillez nous contacter àObservations et contact
1. (WO2018131458) PROGRAMME D'ANALYSE DE PAQUETS, PROCÉDÉ D'ANALYSE DE PAQUETS, ET DISPOSITIF D'ANALYSE DE PAQUETS
Document

明 細 書

発明の名称 パケット解析プログラム、パケット解析方法、およびパケット解析装置

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006  

課題を解決するための手段

0007  

発明の効果

0008  

図面の簡単な説明

0009  

発明を実施するための形態

0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245   0246   0247   0248   0249   0250   0251   0252   0253   0254   0255   0256   0257   0258   0259   0260   0261   0262   0263   0264   0265   0266   0267   0268   0269   0270   0271   0272   0273   0274   0275   0276   0277   0278   0279   0280   0281   0282   0283   0284   0285   0286   0287   0288   0289   0290   0291   0292   0293   0294   0295   0296   0297   0298   0299   0300   0301   0302   0303   0304   0305   0306   0307   0308   0309   0310   0311   0312   0313   0314   0315   0316   0317   0318   0319   0320   0321   0322   0323   0324   0325   0326   0327   0328   0329  

符号の説明

0330  

請求の範囲

1   2   3   4   5   6   7   8   9   10  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28  

明 細 書

発明の名称 : パケット解析プログラム、パケット解析方法、およびパケット解析装置

技術分野

[0001]
 本発明は、パケット解析プログラム、パケット解析方法、およびパケット解析装置に関する。

背景技術

[0002]
 従来、装置間を流れるパケットを、スイッチやルータなどのミラーリング機能を用いて取得して一時的に蓄積し、蓄積したパケットのうち異常があると判定されたコネクションで通信されたパケットを抽出して保存し、その後解析する技術がある。
[0003]
 先行技術としては、例えば、重要度の登録されていない障害について、その障害の発生頻度と発生間隔のばらつきとに基づいて障害発生履歴データベースを参照して、その障害の重要度を推定するものがある。また、例えば、影響範囲と経過時間とに基づき、障害レベルテーブルを参照して障害レベルを決定する技術がある。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2013-201695号公報
特許文献2 : 特開2013-30826号公報

発明の概要

発明が解決しようとする課題

[0005]
 しかしながら、従来技術では、ネットワークのデータ転送レートが大きくなるほど、装置間に生成されるコネクションの数も膨大になり、保存するパケットの数も膨大になってしまい、パケットを保存しておくことが難しい。保存するパケットの数を制限するとしても、どのコネクションで通信されたパケットを優先して保存することが好ましいかを判断することが難しい。
[0006]
 1つの側面では、本発明は、コネクションの通信性能に応じて選択的にパケットを記憶することができるパケット解析プログラム、パケット解析方法、およびパケット解析装置を提供することを目的とする。

課題を解決するための手段

[0007]
 1つの実施態様によれば、取得したパケットを第1の記憶部に蓄積し、取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶するパケット解析プログラム、パケット解析方法、およびパケット解析装置が提案される。

発明の効果

[0008]
 本発明の一態様によれば、コネクションの通信性能に応じて選択的にパケットを記憶することができるという効果を奏する。

図面の簡単な説明

[0009]
[図1] 図1は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。
[図2] 図2は、パケット解析システム200の一例を示す説明図である。
[図3] 図3は、パケット解析装置100のハードウェア構成例を示すブロック図である。
[図4] 図4は、コネクションテーブル400の記憶内容の一例を示す説明図である。
[図5] 図5は、インデックステーブル500の記憶内容の一例を示す説明図である。
[図6] 図6は、L4解析情報テーブル600の記憶内容の一例を示す説明図である。
[図7] 図7は、異常コネクション情報テーブル700の記憶内容の一例を示す説明図である。
[図8] 図8は、異常レベル履歴800の記憶内容の一例を示す説明図である。
[図9] 図9は、異常レベル範囲リスト900の記憶内容の一例を示す説明図である。
[図10] 図10は、パケット解析装置100の機能的構成例を示すブロック図である。
[図11] 図11は、パケット解析装置100の具体的な機能的構成例を示すブロック図である。
[図12] 図12は、パケット解析装置100の第1の動作例を示す説明図である。
[図13] 図13は、パケット解析装置100の第2の動作例を示す説明図である。
[図14] 図14は、パケット解析装置100の第3の動作例を示す説明図である。
[図15] 図15は、異常レベル履歴800に基づく異常レベルの設定の一例を示す説明図である。
[図16] 図16は、実施例1における格納処理手順の一例を示すフローチャートである。
[図17] 図17は、実施例1における解析処理手順の一例を示すフローチャートである。
[図18] 図18は、実施例1における異常判定処理手順の一例を示すフローチャートである。
[図19] 図19は、実施例1における異常コネクション登録処理手順の一例を示すフローチャートである。
[図20] 図20は、実施例1における決定処理手順の一例を示すフローチャートである。
[図21] 図21は、実施例1におけるリスト連結処理手順の一例を示すフローチャートである。
[図22] 図22は、実施例1における生成処理手順の一例を示すフローチャートである。
[図23] 図23は、実施例1におけるパケットフィルタ処理手順の一例を示すフローチャートである。
[図24] 図24は、実施例2における異常レベル範囲リスト2400の記憶内容の一例である。
[図25] 図25は、実施例2における異常判定処理手順の一例を示すフローチャートである。
[図26] 図26は、実施例2における異常コネクション登録処理手順の一例を示すフローチャートである。
[図27] 図27は、実施例2におけるリスト連結処理手順の一例を示すフローチャートである。
[図28] 図28は、実施例2における削除処理手順の一例を示すフローチャートである。

発明を実施するための形態

[0010]
 以下に、図面を参照して、本発明にかかるパケット解析プログラム、パケット解析方法、およびパケット解析装置の実施の形態を詳細に説明する。
[0011]
(実施の形態にかかるパケット解析方法の一実施例)
 図1は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。パケット解析装置100は、ある装置間を流れるパケットに基づいて、その装置間の種々のコネクションやその装置間を結ぶネットワークなどについて解析するコンピュータである。
[0012]
 ここで、ある装置間を流れるすべてのパケットを比較的長い期間記憶しておき、事後的かつ詳細に、その装置間のコネクションなどについて解析する場合が考えられる。しかしながら、この場合では、記憶しておくパケットの数が膨大になり、パケットを記憶しておくために用いられる記憶領域が不足してしまう可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
[0013]
 これに対し、ある装置間を流れるパケットのうち、異常があると判定されたコネクションで通信されたパケットに限って抽出し、比較的長い期間記憶しておき、事後的かつ詳細に、その装置間のコネクションなどについて解析する場合が考えられる。しかしながら、この場合であっても、10~100Gbps(Giga bits per second)の高速ネットワークでは、記憶しておくパケットの数が膨大になり、パケットを記憶しておくために用いられる記憶領域が不足してしまう可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
[0014]
 また、これに対し、ある装置間の複数のコネクションを所定の基準でソートすることにより、その装置間のいずれのコネクションで通信されたパケットを優先して抽出し、比較的長い期間記憶しておくかを判断する場合も考えられる。しかしながら、この場合、パケットの抽出にかかる処理負荷および処理時間の増大化を招いてしまう。そして、処理時間の増大化により、パケットバッファからパケットが削除されるまでに、そのパケットを抽出するか否かを判断することができない可能性がある。このため、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができなくなる場合がある。
[0015]
 そこで、本実施の形態では、コネクションの通信性能を示す指標値を、予め用意した複数の指標値範囲のいずれかに対応付けることにより、比較的低い処理負荷で、選択的にパケットを記憶することができるパケット解析方法について説明する。
[0016]
 図1の例では、パケット解析装置100は、第1の記憶部110と、第2の記憶部120と、第3の記憶部130と、第4の記憶部140とを有する。第1の記憶部110は、パケットを一時的に蓄積する記憶領域である。第1の記憶部110は、例えば、パケットバッファである。第1の記憶部110に記憶されたパケットは、時間の経過に伴って他のパケットによって上書きされ、削除されてしまう場合がある。
[0017]
 第2の記憶部120は、あるパケットが通信されたコネクションについて、コネクション情報を記憶する記憶領域である。コネクション情報は、あるパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。コネクション情報は、例えば、あるパケットのパケットID
と、そのパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。
[0018]
 コネクションを示す情報は、例えば、そのコネクションに割り振られたコネクションIDである。コネクションの通信性能に関する情報は、例えば、コネクションにおけるパケットロス率、RTT(Round-Trip Time)、および、サーバ遅延などである。コネクションの通信性能に関する情報は、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などから得られる、そのコネクションの異常レベルであってもよい。サーバ遅延は、例えば、サーバが、リクエストを受けてから、リクエストに対応する処理を行い、レスポンスを返すまでの時間である。
[0019]
 第3の記憶部130は、予め用意した複数の指標値範囲のそれぞれの指標値範囲に対応付けて、いくつかのコネクションを示す情報を登録する記憶領域である。指標値は、例えば、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などに基づいて算出される、そのコネクションの異常レベルである。指標値は、例えば、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などであってもよい。指標値範囲は、例えば、異常レベル範囲である。第3の記憶部130は、パケット解析装置100が、第1の記憶部110から、どのパケットを抽出するかを決定する際に用いられる情報を記憶することができる。
[0020]
 第4の記憶部140は、パケットを、第1の記憶部110より長い期間記憶することができる記憶領域である。第4の記憶部は、例えば、不揮発メモリ上に用意された保存ファイルである。第4の記憶部140は、パケット解析装置100が、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられるパケットを記憶することができる。
[0021]
 (1-1)パケット解析装置100は、ミラーリング機能を用いて、ある装置間を流れるパケットを取得し、第1の記憶部110に蓄積する。パケット解析装置100は、例えば、ある装置間を流れるパケット1~14を順次取得し、パケットバッファに蓄積する。これにより、パケット解析装置100は、ある装置間のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられる可能性があるパケットを、一時的に記憶することができる。
[0022]
 (1-2)パケット解析装置100は、取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を第2の記憶部120に蓄積する。パケット解析装置100は、例えば、パケットを取得する都度、そのパケットに基づいてL4解析を行い、そのパケットが通信されたコネクションについてのコネクション情報を、第2の記憶部120に蓄積する。
[0023]
 パケット解析装置100は、具体的には、パケット1を取得した際、パケット1が通信されたコネクションAについてコネクション情報を記憶する。これにより、パケット解析装置100は、ある装置間のコネクションを、どの指標値範囲に対応付けるかを決定する際に用いられるコネクション情報を記憶しておくことができる。
[0024]
 (1-3)パケット解析装置100は、所定の時間間隔で、コネクションごとに、そのコネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、そのコネクションを示す情報を第3の記憶部130に登録する。パケット解析装置100は、例えば、リスト構造を用いて、異常コネクション情報を登録する。異常コネクション情報は、第1の記憶部110から抽出する可能性があるパケットが通信さ
れたコネクションを示す情報を含む。異常コネクション情報は、コネクションを示す情報として、例えば、コネクションIDを含む。
[0025]
 パケット解析装置100は、具体的には、複数の異常レベル範囲を示す異常レベル範囲リスト150を用意する。パケット解析装置100は、異常レベル範囲リスト150が示すそれぞれの異常レベル範囲に、ポインタ171~175を用いて、異常コネクション情報161~165を対応付けて記憶する。これにより、パケット解析装置100は、比較的低い処理負荷で、パケットバッファから抽出するパケットを選択する際に用いられるコネクション情報を登録しておくことができる。
[0026]
 (1-4)パケット解析装置100は、所定の時間間隔で、第3の記憶部130を参照し、第1の記憶部110に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出する。特定の指標値範囲は、例えば、対応付けられた異常コネクション情報の数が所定の数以下になる、指標値範囲である。特定の指標値範囲は、例えば、予め設定された上限値から下限値までの範囲であってもよい。
[0027]
 パケット解析装置100は、例えば、パケットバッファに蓄積した、取得から一定の時間が経過したパケット1~7のうち、特定の異常レベル範囲「91~100」に対応するコネクションA,Cで通信されたパケットps1,ps2を抽出する。また、パケット解析装置100は、例えば、対応付けられた異常コネクション情報の数が4つ以下に限られる異常レベル範囲「81~100」に対応するコネクションA~Dで通信されたパケットを抽出するようにしてもよい。これにより、パケット解析装置100は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、パケット解析装置100は、第4の記憶部140に記憶するパケットの数を制限することができる。
[0028]
 (1-5)パケット解析装置100は、抽出したパケットを、第4の記憶部140に記憶する。パケット解析装置100は、例えば、パケットps1,ps2を、第4の記憶部140に記憶する。これにより、パケット解析装置100は、第4の記憶部140に記憶したパケットに基づいて、事後的かつ詳細に、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができる。また、パケット解析装置100は、指標値に基づくソートを行わなくてもよく、比較的低い処理負荷で、パケットバッファからパケットを抽出し、第4の記憶部140に記憶することができる。
[0029]
 また、パケット解析装置100は、第4の記憶部140に記憶するパケットの数を制限することができ、パケットを記憶するために用いられる第4の記憶部140の記憶領域が不足してしまうことを抑制することができる。このため、パケット解析装置100は、記憶領域の不足により、自装置の処理にエラーが発生することを防止することができる。また、パケット解析装置100は、特定の指標値範囲を設定することにより、事後的かつ詳細な、コネクションなどについての解析が行われる際に用いられる可能性が比較的大きいパケットを優先して抽出し、第4の記憶部140に記憶することができる。このため、パケット解析装置100は、パケットバッファから削除される前に、第4の記憶部140に退避されることが好ましいと判断されるパケットを、優先して残しておくことができる。
[0030]
 また、パケット解析装置100は、図12~図15に後述するように、種々のルールにしたがって、第3の記憶部130に対する異常コネクション情報の登録状態をどのように更新するか、または、いつ更新するかを制御してもよい。これにより、パケット解析装置100は、事後的かつ詳細な、コネクションなどについての解析が行われる際に用いられる可能性が比較的大きいパケットを、さらに効果的に抽出することができる。
[0031]
 パケット解析装置100は、異常レベル範囲リスト150を、運用用と更新用との2種類用意してもよい。これにより、パケット解析装置100は、異常レベル範囲リスト150を更新しているために、異常レベル範囲リスト150を参照して、いずれかのコネクションで通信されたパケットを抽出する処理の実行を待機しなくてもよいようにすることができる。
[0032]
(パケット解析システム200の一例)
 次に、図2を用いて、図1に示したパケット解析装置100を適用した、パケット解析システム200の一例について説明する。
[0033]
 図2は、パケット解析システム200の一例を示す説明図である。図2において、パケット解析システム200は、パケット解析装置100と、クライアント装置220と、サーバ装置230とを含む。パケット解析システム200は、クライアント装置220を複数含んでもよいし、サーバ装置230を複数含んでもよい。
[0034]
 パケット解析システム200において、クライアント装置220とサーバ装置230とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
[0035]
 パケット解析装置100は、ネットワーク内に設けられたスイッチまたはTAPなどの中継装置240を介して、クライアント装置220とサーバ装置230との間で通信されるパケットを取得して蓄積する。パケット解析装置100は、例えば、サーバやPC(Personal Computer)である。
[0036]
 クライアント装置220は、サーバ装置230とのコネクションを生成し、サーバ装置230と通信するコンピュータである。クライアント装置220は、例えば、PC、ノートPC、タブレット端末、スマートフォンなどである。サーバ装置230は、クライアント装置220とのコネクションを生成し、クライアント装置220と通信するコンピュータである。サーバ装置230は、例えば、サーバやPCである。
[0037]
(パケット解析装置100のハードウェア構成例)
 次に、図3を用いて、パケット解析装置100のハードウェア構成例について説明する。
[0038]
 図3は、パケット解析装置100のハードウェア構成例を示すブロック図である。図3において、パケット解析装置100は、CPU(Central Processing
 Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
[0039]
 ここで、CPU301は、パケット解析装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
[0040]
 ネットワークI/F303は、中継装置240を通じてネットワーク210に接続され
る。そして、ネットワークI/F303は、中継装置240と内部とのインターフェースを司り、中継装置240からのデータの入出力を制御する。ネットワークI/F303には、例えば、モデムやLANアダプタなどを採用することができる。
[0041]
 記録媒体I/F304は、CPU301の制御にしたがって記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、磁気ディスクドライブや光ディスクドライブである。記録媒体I/F304は、例えば、USB(Universal Serial Bus)ポートであってもよい。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、磁気ディスクや光ディスクなどである。記録媒体305は、例えば、USBメモリであってもよい。記録媒体305は、パケット解析装置100から着脱可能であってもよい。記録媒体305は、実施の形態にかかるパケット解析プログラムを記憶してもよい。
[0042]
 パケット解析装置100は、上述した構成部のほか、例えば、SSD(Solid State Drive)や半導体メモリを有してもよい。また、パケット解析装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、パケット解析装置100は、記録媒体I/F304や記録媒体305を有さなくてもよい。
[0043]
(コネクションテーブル400の記憶内容)
 次に、図4を用いて、コネクションテーブル400の記憶内容の一例について説明する。コネクションテーブル400は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0044]
 図4は、コネクションテーブル400の記憶内容の一例を示す説明図である。図4に示すように、コネクションテーブル400は、コネクションIDと、送信元IPと、送信先IPと、プロトコル番号と、送信元ポートと、送信先ポートと、異常コネクション情報ポインタとのフィールドを有する。コネクションテーブル400は、各フィールドに情報を設定されることにより、コネクション情報をレコードとして記憶する。
[0045]
 コネクションIDのフィールドは、パケット解析装置100が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションIDが設定される。送信元IPのフィールドは、コネクションIDが示すコネクションにおけるパケットの送信元装置を示す送信元IPアドレスが設定される。送信先IPのフィールドは、コネクションIDが示すコネクションにおけるパケットの送信先装置を示す送信先IPアドレスが設定される。
[0046]
 プロトコル番号のフィールドは、プロトコルを識別する番号が設定される。送信元ポートのフィールドは、コネクションIDが示すコネクションにおけるパケットの送信元ポートを示すポート番号が設定される。送信先ポートのフィールドは、コネクションIDが示すコネクションにおけるパケットの送信先ポートを示すポート番号が設定される。異常コネクション情報ポインタのフィールドは、コネクションIDが示すコネクションについて異常コネクション情報があれば、その異常コネクション情報へのポインタが設定される。
[0047]
(インデックステーブル500の記憶内容)
 次に、図5を用いて、インデックステーブル500の記憶内容の一例について説明する。インデックステーブル500は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0048]
 図5は、インデックステーブル500の記憶内容の一例を示す説明図である。図5に示すように、インデックステーブル500は、ライトポインタと、リードポインタと、パケットIDと、コネクションIDと、受信日時とのフィールドを有する。インデックステーブル500は、パケットIDと、コネクションIDと、受信日時とのフィールドに情報を設定されることにより、インデックス情報をレコードとして記憶する。
[0049]
 ライトポインタのフィールドは、次に書き込みされるレコードを指定するライトポインタが設定される。ライトポインタは、1以上、インデックステーブル500のレコードの最大数以下の値である。ライトポインタは、インデックステーブル500への書き込みが行われる都度、1ずつ加算される。ライトポインタの値は、指定するレコードが、先頭から何番目のレコードであるかを示す値である。
[0050]
 リードポインタのフィールドは、次に読み出されるレコードを指定するリードポインタが設定される。リードポインタは、1以上、インデックステーブル500のレコードの最大数以下の値である。リードポインタは、インデックステーブル500からの読み出しが行われる都度、1ずつ加算される。リードポインタの値は、指定するレコードが、先頭から何番目のレコードであるかを示す値である。
[0051]
 パケットIDのフィールドは、パケット解析装置100が取得したパケットを管理するため、パケット解析装置100が取得したパケットのパケットIDが設定される。コネクションIDのフィールドは、パケット解析装置100が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションIDが設定される。受信日時のフィールドは、パケット解析装置100がパケットを取得した日時が設定される。
[0052]
(L4解析情報テーブル600の記憶内容)
 次に、図6を用いて、L4解析情報テーブル600の記憶内容の一例について説明する。L4解析情報テーブル600は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0053]
 図6は、L4解析情報テーブル600の記憶内容の一例を示す説明図である。図6に示すように、L4解析情報テーブル600は、コネクションIDと、送信側パケット数と、送信側バイト数と、送信側ロス数と、受信側パケット数と、受信側バイト数と、受信側ロス数と、RTT平均値と、サーバ遅延平均値とのフィールドを有する。L4解析情報テーブル600は、各フィールドに情報を設定されることにより、L4解析情報をレコードとして記憶する。
[0054]
 コネクションIDのフィールドは、パケット解析装置100が取得したパケットのヘッダ情報から抽出された、そのパケットが通信されたコネクションのコネクションIDが設定される。送信側パケット数のフィールドは、コネクションIDが示すコネクションにおいて、送信側装置から送信されたパケットの数が設定される。送信側バイト数のフィールドは、コネクションIDが示すコネクションにおいて、送信側装置から送信されたパケットのバイト数の累計が設定される。送信側ロス数のフィールドは、コネクションIDが示すコネクションにおいて、送信側装置から送信されたパケットのうち、喪失されたパケットの数が設定される。
[0055]
 受信側パケット数のフィールドは、コネクションIDが示すコネクションにおいて、受信側装置に受信されたパケットの数が設定される。受信側バイト数のフィールドは、コネクションIDが示すコネクションにおいて、受信側装置に受信されたパケットのバイト数の累計が設定される。受信側ロス数のフィールドは、コネクションIDが示すコネクショ
ンにおいて、送信側装置から送信されたパケットのうち、受信側装置に受信されなかったパケットの数が設定される。RTT平均値のフィールドは、コネクションIDが示すコネクションにおけるRTT平均値が設定される。サーバ遅延平均値のフィールドは、コネクションIDが示すコネクションにおけるサーバ遅延平均値が設定される。サーバ遅延は、例えば、サーバ装置230が、クライアント装置220からのリクエストを受けてから、リクエストに対応する処理を行い、クライアント装置220へとレスポンスを返すまでの時間である。
[0056]
(異常コネクション情報テーブル700の記憶内容)
 次に、図7を用いて、異常コネクション情報テーブル700の記憶内容の一例について説明する。異常コネクション情報テーブル700は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0057]
 図7は、異常コネクション情報テーブル700の記憶内容の一例を示す説明図である。図7に示すように、異常コネクション情報テーブル700は、コネクションIDと、コネクション情報ポインタと、最終保存時刻と、異常レベルと、異常レベル有効期限と、異常レベル履歴ポインタとのフィールドを有する。異常コネクション情報テーブル700は、各フィールドに情報を設定されることにより、異常コネクション情報をレコードとして記憶する。
[0058]
 コネクションIDのフィールドは、異常があると判定され、抽出される可能性があるパケットが通信された異常コネクションのコネクションIDが設定される。コネクション情報ポインタのフィールドは、異常コネクションと同じコネクションIDが設定された、コネクションテーブル400のコネクション情報へのポインタが設定される。
[0059]
 最終保存時刻のフィールドは、コネクションIDが示すコネクションで通信されたパケットを抽出し続ける期間の終点となる時刻を示す最終保存時刻が設定される。異常レベルのフィールドは、コネクションIDが示すコネクションについて算出された異常レベルが設定される。異常レベル有効期限のフィールドは、設定した異常レベルを、その異常レベルより小さい異常レベルで更新することを防止する期間の終点となる時刻を示す異常レベル有効期限が設定される。異常レベル履歴ポインタのフィールドは、コネクションIDが示すコネクションについて過去に算出された異常レベルを蓄積する異常レベル履歴へのポインタが設定される。
[0060]
(異常レベル履歴800の記憶内容)
 次に、図8を用いて、異常レベル履歴800の記憶内容の一例について説明する。異常レベル履歴800は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0061]
 図8は、異常レベル履歴800の記憶内容の一例を示す説明図である。図8に示すように、異常レベル履歴800は、個数と、次回書込位置と、時刻と、異常レベルとのフィールドを有する。異常レベル履歴800は、時刻と、異常レベルとに情報を設定されることにより、履歴情報をレコードとして記憶する。
[0062]
 個数のフィールドは、異常レベル履歴800のレコードの最大数が設定される。次回書込位置のフィールドは、次に書き込みされるレコードを指定するポインタが設定される。時刻のフィールドは、あるコネクションについて異常レベルを算出した時刻が設定される。異常レベルのフィールドは、あるコネクションについて算出された異常レベルが設定される。異常レベル履歴800は、異常コネクションごとに用意される。
[0063]
(異常レベル範囲リスト900の記憶内容)
 次に、図9を用いて、異常レベル範囲リスト900の記憶内容の一例について説明する。異常レベル範囲リスト900は、例えば、図3に示したパケット解析装置100のメモリ302や記録媒体305などの記憶領域により実現される。
[0064]
 図9は、異常レベル範囲リスト900の記憶内容の一例を示す説明図である。図9に示すように、異常レベル範囲リスト900は、範囲上限と、範囲下限と、コネクション数と、リスト先頭ポインタと、リスト末端ポインタとのフィールドを有する。異常レベル範囲リスト900は、さらに、異常レベル範囲に対応付けるアイテムを有する。異常レベル範囲リスト900は、各フィールドに情報を設定されることにより、異常レベル範囲情報をレコードとして記憶する。
[0065]
 範囲上限のフィールドは、異常レベル範囲の上限値が設定される。範囲下限のフィールドは、異常レベル範囲の下限値が設定される。異常レベル範囲は、例えば、上限値未満、かつ、下限値以上の範囲である。異常レベル範囲は、上限値が100である場合、上限値以下の範囲であってもよい。コネクション数のフィールドは、異常レベル範囲に対応付ける、異常コネクション情報ポインタの数が設定される。
[0066]
 リスト先頭ポインタのフィールドは、異常レベル範囲に対応付ける、1以上の異常コネクション情報ポインタのうち、先頭の異常コネクション情報ポインタを含んでいるアイテムを指定する、リスト先頭ポインタが設定される。リスト末端ポインタのフィールドは、異常レベル範囲に対応付ける、1以上の異常コネクション情報ポインタのうち、末端の異常コネクション情報ポインタを含んでいるアイテムを指定する、リスト末端ポインタが設定される。
[0067]
 アイテムは、異常コネクションごとに存在し、異常コネクション情報ポインタと、次アドレスとのフィールドを有する。異常コネクション情報ポインタのフィールドは、異常レベル範囲に対応付ける異常コネクションの異常コネクション情報へのポインタが設定される。次アドレスのフィールドは、異常コネクションの次に、同じ異常レベル範囲に対応付けられる他の異常コネクションについてのアイテムへのポインタが設定される。
[0068]
(パケット解析装置100の機能的構成例)
 次に、図10を用いて、パケット解析装置100の機能的構成例について説明する。
[0069]
 図10は、パケット解析装置100の機能的構成例を示すブロック図である。図10に示すように、パケット解析装置100は、記憶部1001と、取得部1002と、解析部1003と、登録部1004と、保存部1005とを含む。
[0070]
 記憶部1001は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。取得部1002~保存部1005は、制御部となる機能である。取得部1002~保存部1005は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
[0071]
 記憶部1001は、第1の記憶部110を実現する。記憶部1001は、例えば、リングバッファ構造でパケットバッファを実現し、パケットを一時的に記憶する。記憶部1001は、具体的には、インデックステーブル500を用いて、パケットバッファを管理し、第1の記憶部110を実現する。これにより、記憶部1001は、コネクションに異常
があると判定した際に、判定時よりも前にそのコネクションで通信されていたパケットを読み出し可能にすることができる。
[0072]
 記憶部1001は、第2の記憶部120を実現する。記憶部1001は、例えば、あるパケットが通信されたコネクションについてのコネクション情報を記憶する。コネクション情報は、あるパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。コネクション情報は、例えば、あるパケットのパケットIDと、そのパケットが通信されたコネクションを示す情報と、そのパケットが通信されたコネクションの通信性能に関する情報とを対応付けた情報を含む。
[0073]
 コネクションを示す情報は、例えば、そのコネクションに割り振られたコネクションIDである。コネクションの通信性能に関する情報は、例えば、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などである。コネクションの通信性能に関する情報は、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などから得られる、そのコネクションの異常レベルであってもよい。サーバ遅延は、例えば、サーバ装置230が、クライアント装置220からのリクエストを受けてから、リクエストに対応する処理を行い、クライアント装置220へとレスポンスを返すまでの時間である。サーバ遅延は、具体的には、パケット解析装置100で、サーバ装置230がクライアント装置220から受けるリクエストに相当するパケットを取得した時点から、サーバ装置230がクライアント装置220へと返すレスポンスに相当するパケットを取得した時点までの時間である。記憶部1001は、具体的には、L4解析情報テーブル600を用いて、第2の記憶部120を実現する。これにより、記憶部1001は、ある装置間のコネクションが、異常コネクションであるか否かを判定する際に用いられる情報を記憶しておくことができる。
[0074]
 記憶部1001は、第3の記憶部130を実現する。記憶部1001は、例えば、予め用意した複数の指標値範囲のそれぞれの指標値範囲に対応付けて、いくつかのコネクションを示す情報を登録する。指標値は、例えば、コネクションにおけるパケットロス率、RTT、および、サーバ遅延などに基づいて算出される、そのコネクションの異常レベルである。指標値範囲は、例えば、異常レベル範囲である。記憶部1001は、具体的には、異常レベル範囲リスト900を用いて、第3の記憶部130を実現する。これにより、記憶部1001は、パケット解析装置100が、第1の記憶部110から、どのパケットを抽出するかを決定する際に用いられる情報を記憶することができる。
[0075]
 記憶部1001は、第4の記憶部140を実現する。記憶部1001は、例えば、パケットを、第1の記憶部110より長い期間記憶する。これにより、記憶部1001は、パケット解析装置100が、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられるパケットを記憶することができる。
[0076]
 取得部1002は、ある装置間を流れるパケットを取得する。取得部1002は、パケットを取得する都度、そのパケットを第1の記憶部110に蓄積する。取得部1002は、例えば、中継装置240のミラーリング機能を用いて、ある装置間を流れるパケットを取得し、第1の記憶部110に蓄積するとともに、インデックステーブル500を作成する。これにより、取得部1002は、ある装置間のコネクションや、ある装置間を結ぶネットワークなどについて解析する際に用いられる可能性があるパケットを、一時的に記憶し、管理することができる。
[0077]
 解析部1003は、取得部1002が取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクション
の通信性能に関する情報を第2の記憶部120に蓄積する。パケット解析装置100は、例えば、パケットを取得する都度、そのパケットに基づいてL4解析を行い、そのパケットが通信されたコネクションについてのコネクション情報を、コネクションテーブル400に記憶する。これにより、解析部1003は、ある装置間のコネクションを、どの指標値範囲に対応付けるかを決定する際に用いられるコネクション情報を記憶しておくことができる。
[0078]
 登録部1004は、所定の時間間隔で、第2の記憶部120を参照し、コネクションごとに、そのコネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、そのコネクションを示す情報を第3の記憶部130に登録する。登録部1004は、例えば、5秒ごとに、ある装置間に生成されているコネクションの異常レベルを含む、異常レベル範囲リスト900が示す複数の異常レベル範囲のうちのいずれかに対応付けて、そのコネクションに対応する異常コネクション情報を登録する。異常コネクション情報は、抽出する可能性があるパケットが通信されたコネクションを示す情報を含む。異常コネクション情報は、コネクションを示す情報として、例えば、コネクションIDを含む。これにより、登録部1004は、比較的低い処理負荷で、パケットバッファから抽出するパケットを選択する際に用いられるコネクション情報を登録しておくことができる。
[0079]
 登録部1004は、例えば、第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値であるか否かを判定する。登録部1004は、所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む複数の指標値範囲のいずれかの指標値範囲に対応付けて、第1のコネクションを示す情報を第3の記憶部130に登録する。登録部1004は、具体的には、第1のコネクションの異常レベルが閾値以上である場合、その異常レベルを含む異常レベル範囲に対応付けて、第1のコネクションに対応する異常コネクション情報を登録する。これにより、登録部1004は、異常レベルが比較的大きく、事後的かつ詳細な解析が行われる可能性が比較的大きい異常コネクションで通信されたパケットは抽出されやすくすることができる。一方で、登録部1004は、異常レベルが比較的小さく、事後的かつ詳細な解析が行われる可能性が比較的小さい異常コネクションで通信されたパケットは抽出されないようにして、保存ファイルの記憶領域の不足を発生しにくくすることができる。
[0080]
 登録部1004は、例えば、第1のコネクションを示す情報を第3の記憶部130に登録した場合、第1のコネクションを示す情報の第3の記憶部130への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定する。登録部1004は、有効期限までは、第1のコネクションを示す情報を、現在対応付けている異常レベル範囲より通信性能が低いことを示す異常レベル範囲に対応付けられないようにすることができる。これにより、登録部1004は、異常レベルが一時的に大きくなった異常コネクションで通信され、保存ファイルに記憶しておくことが好ましいパケットが、異常レベルの低下に伴って保存ファイルに記憶されなくなることを、有効期限までは抑制することができる。
[0081]
 登録部1004は、第1のコネクションの通信性能を示す指標値の変化が、第1のコネクションの通信性能の低下を示すか否かを判定する。登録部1004は、第1のコネクションの通信性能の低下を示す場合、第1のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、第1のコネクションを示す情報を第3の記憶部130に登録し直す。また、登録部1004は、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部1004は、具体的には、異常コネクションの異常レベルが増加した場合、その異常コネクションの異常コネクション情報を、その異常レベルを含む異常レベル範囲に対応付け直す。これにより、登録部1004は、異常レベルが大きくなり、さらに保存ファイルに記憶しておくことが好ましくなったパケットを、優先して保存ファイルに記憶され
やすくすることができる。また、登録部1004は、異常レベルが大きくなってから一定時間は、パケットが保存ファイルに記憶されやすくすることができる。
[0082]
 登録部1004は、例えば、第1のコネクションの通信性能を示す指標値の変化が、第1のコネクションの通信性能の向上を示す場合、第1のコネクションを示す情報の第3の記憶部130への登録状態について変更しない。登録部1004は、具体的には、第1のコネクションの通信性能を示す異常レベルが低下した場合、第1のコネクションを示す情報の異常レベル範囲への登録状態について変更しないことができる。これにより、パケット解析装置100は、異常レベルが低下した直後に、第1のコネクションで通信されたパケットが抽出されなくなってしまうことを防止することができる。
[0083]
 登録部1004は、例えば、第1のコネクションの通信性能を示す指標値の変化が、第1のコネクションの通信性能の向上を示し、かつ、現在第1のコネクションを示す情報に対応付けている指標値範囲に含まれるか否かを判定する。登録部1004は、向上を示し、かつ、含まれると判定した場合、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部1004は、具体的には、第1のコネクションの通信性能を示す異常レベルが低下し、かつ、現在対応付けている異常レベル範囲に含まれる場合、有効期限を、現在時刻から一定時間後の時刻に設定し直す。これにより、登録部1004は、異常コネクションに異常が継続している場合には、より長い期間パケットを抽出し、保存ファイルに記憶するようにすることができる。
[0084]
 登録部1004は、例えば、有効期限になった場合、所定の期間における第1のコネクションの通信性能を示す複数の指標値のいずれかの指標値を含むいずれかの指標値範囲に対応付けて、第1のコネクションを示す情報を第3の記憶部130に登録し直す。登録部1004は、有効期限を、現在時刻から一定時間後の時刻に設定し直す。登録部1004は、具体的には、異常レベル履歴800を参照し、異常レベル履歴800内で最大の異常レベルを用いて、第1のコネクションを示す情報を登録し直す。これにより、登録部1004は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、登録部1004は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
[0085]
 登録部1004は、例えば、第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値であるか否かを判定する。登録部1004は、所定の通信性能以下であることを示す指標値である場合に、第1のコネクションを示す情報の第3の記憶部130への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定する。登録部1004は、保持期限を過ぎた場合、第1のコネクションを示す情報の第3の記憶部130への登録状態を削除する。これにより、登録部1004は、保持期限を過ぎ、事後的かつ詳細にコネクションなどを解析する際に用いられる可能性が小さくなった、保存ファイルに記憶しておかなくてよいパケットを、保存ファイルに記憶しないようにすることができる。そして、登録部1004は、保存ファイルに記憶するパケットの数の増大化を抑制することができる。
[0086]
 保存部1005は、第3の記憶部130を参照し、第1の記憶部110に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部140に記憶する。特定の指標値範囲は、例えば、対応付けられた異常コネクション情報の数が所定の数以下になる、1または複数の指標値範囲の集まりである。特定の指標値範囲は、例えば、予め設定された上限値から下限値までの範囲であってもよい。
[0087]
 保存部1005は、例えば、パケットバッファに蓄積した、取得から一定の時間が経過したパケットのうち、特定の異常レベル範囲「91~100」に対応する異常コネクションで通信されたパケットを抽出し、保存ファイルに記憶する。これにより、保存部1005は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、保存部1005は、抽出するパケットの数を制限することができる。
[0088]
 また、保存部1005は、例えば、パケットが抽出される異常コネクションの数が所定の数以下になるように特定の異常レベル範囲を設定し、特定の異常レベル範囲に対応する異常コネクションで通信されたパケットを抽出するようにしてもよい。これにより、保存部1005は、パケットバッファからパケットが削除される前に、そのパケットを抽出することができる。また、保存部1005は、抽出するパケットの数を制限することができる。
[0089]
 保存部1005は、さらに、第4の記憶部140に記憶した結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、所定の解析ソフトウェアへの出力などである。所定の解析ソフトウェアは、例えば、ある装置間のコネクションや、ある装置間を結ぶネットワーク210などについて解析するソフトウェアである。これにより、保存部1005は、ユーザ、外部装置、または所定の解析ソフトウェアなどに、ある装置間のコネクションや、ある装置間を結ぶネットワーク210などについて解析させることができる。
[0090]
(パケット解析装置100の具体的な機能的構成例)
 次に、図11を用いて、パケット解析装置100の具体的な機能的構成例について説明する。
[0091]
 図11は、パケット解析装置100の具体的な機能的構成例を示すブロック図である。図11に示すように、パケット解析装置100は、NIC(Network Interface Card)1101と、ドライバ1102と、パケットバッファ1103とを有する。NIC1101は、スイッチやTAPなどの中継装置240のミラーリング機能を用いて、ある装置間を流れるパケットを取得する。NIC1101は、取得したパケットをドライバ1102に出力する。ドライバ1102は、パケットを入力され、そのパケットをパケットバッファ1103に蓄積する。パケットバッファ1103は、リングバッファ構造であり、パケットを比較的短い期間記憶しておく。
[0092]
 また、パケット解析装置100は、L4解析1104と、インデックス作成1105と、インデックステーブル1106(500)とを有する。L4解析1104は、パケットバッファ1103にパケットが記憶されると、そのパケットに基づいて、そのパケットが通信されたコネクションについて解析し、L4解析情報テーブル600を更新する。L4解析1104は、例えば、そのパケットが通信されたコネクションについて、送信側パケット数と、送信側バイト数と、送信側ロス数と、受信側パケット数と、受信側バイト数と、受信側ロス数と、RTT平均値と、サーバ遅延平均値となどを算出する。インデックス作成1105は、パケットバッファ1103にパケットが記憶されると、そのパケットのヘッダ情報に基づいて、パケットIDとコネクションIDと受信日時とを対応付けたレコードを、インデックステーブル1106(500)に記憶する。
[0093]
 また、パケット解析装置100は、L4異常判定1107と、異常コネクション情報テーブル1108(700)と、異常レベル範囲リスト1109(900)と、L4統計1110と、統計情報1111とを有する。L4異常判定1107は、L4解析情報テーブル600を参照して、あるパケットが通信されたコネクションが、異常コネクションであるか否かを判定する。L4異常判定1107は、異常コネクションである場合、異常コネ
クション情報テーブル1108(700)と、異常レベル範囲リスト1109(900)とを更新する。L4統計1110は、L4解析情報テーブル600を参照して、統計情報1111を更新する。
[0094]
 また、パケット解析装置100は、L7解析1112と、L7異常判定1113と、L7統計1114とを有する。L7解析1112は、パケットバッファ1103やL4解析情報テーブル600を参照し、レイヤー7に関して解析する。L7異常判定1113は、レイヤー7に関する解析結果を参照して、あるパケットが通信されたコネクションが、異常コネクションであるか否かを判定する。L7異常判定1113は、異常コネクションである場合、異常コネクション情報テーブル1108(700)と、異常レベル範囲リスト1109(900)とを更新する。L7統計1114は、レイヤー7に関する解析結果を参照して、統計情報1111を更新する。
[0095]
 また、パケット解析装置100は、パケットフィルタ1115と、パケット保存1116と、保存ファイル1117とを有する。パケットフィルタ1115は、インデックステーブル1106(500)を参照し、取得から一定の時間が経過したパケットを選択する。パケットフィルタ1115は、異常コネクション情報テーブル1108(700)を参照し、選択したパケットを抽出して保存ファイル1117に記憶するか否かを判定する。パケットフィルタ1115は、抽出して記憶すると判定すると、選択したパケットを抽出して、パケット保存1116に出力する。パケット保存1116は、そのパケットを、保存ファイル1117に書き込む。
[0096]
(実施例1)
 次に、図12~図15を用いて、実施例1におけるパケット解析装置100の動作例について説明する。まず、図12を用いて、実施例1におけるパケット解析装置100の第1の動作例について説明する。
[0097]
 図12は、パケット解析装置100の第1の動作例を示す説明図である。図12の例では、説明の簡略化のため、パケット解析装置100が、時刻9:59:35~10:01:00において、コネクション1とコネクション2とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。パケット解析装置100は、5秒ごとに、異常レベル範囲リスト900に対応付ける異常コネクション情報を更新する。
[0098]
 まず、時刻が9:59:35になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0099]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションではないと決定する。
[0100]
 同様に、時刻が9:59:40~9:59:55では、パケット解析装置100は、5秒ごとに、新たに取得したコネクション1,2のパケットをパケットバッファに記憶し、コネクション1,2が異常コネクションではないと決定する。
[0101]
 次に、時刻が10:00:00になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レ
ベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1についての異常コネクション情報を生成する。
[0102]
 パケット解析装置100は、例えば、算出した異常レベル「55」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、生成したコネクション1についての異常コネクション情報を登録する。
[0103]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「65」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2についての異常コネクション情報を生成する。
[0104]
 パケット解析装置100は、例えば、算出した異常レベル「65」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、生成したコネクション2についての異常コネクション情報を登録する。
[0105]
 次に、時刻が10:00:05になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「80」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが「55」から「80」に増加したと判定し、コネクション1についての異常コネクション情報を更新する。
[0106]
 パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の異常レベルを新たに算出した異常レベル「80」に更新する。パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:00:45」に更新する。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0107]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報を更新する。
[0108]
 パケット解析装置100は、例えば、コネクション2の異常レベルが低下したため、コネクション2についての異常コネクション情報の異常レベル「65」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保
存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0109]
 次に、時刻が10:00:10になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:35~9:59:40にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0110]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0111]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0112]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報を更新する。
[0113]
 パケット解析装置100は、例えば、コネクション2の異常レベルが低下したため、コネクション2についての異常コネクション情報の異常レベル「65」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0114]
 次に、時刻が10:00:15になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:40~9:59:45にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0115]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「5
0」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0116]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0117]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報を更新する。
[0118]
 パケット解析装置100は、例えば、コネクション2の異常レベルが低下したため、コネクション2についての異常コネクション情報の異常レベル「65」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0119]
 次に、時刻が10:00:20になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:45~9:59:50にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0120]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0121]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションではないと決定する。
[0122]
 同様に、時刻が10:00:25~10:00:35では、パケット解析装置100は、取得から30秒経過したパケットのうち、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置100は、コネクション1,2が異常コネクションではないと決定する。
[0123]
 次に、時刻が10:00:40になる。ここで、パケット解析装置100は、パケット
バッファに、過去の時刻10:00:05~10:00:10にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0124]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション2についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:10」の異常レベル「55」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0125]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:10」の40秒後の時刻「10:00:50」に更新する。パケット解析装置100は、例えば、コネクション2についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0126]
 次に、時刻が10:00:45になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:10~10:00:15にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0127]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:10」の異常レベル「65」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0128]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:10」の40秒後の時刻「10:00:50」に更新する。パケット解析装置100は、例えば、コネクション1についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0129]
 次に、時刻が10:00:50になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:15~10:00:20にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0130]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:15」の異常レベル「60」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0131]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:15」の40秒後の時刻「10:00:55」に更新する。パケット解析装置100は、例えば、コネクション1についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0132]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション2についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:15」の異常レベル「50」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0133]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:15」の40秒後の時刻「10:00:55」に更新する。パケット解析装置100は、例えば、コネクション2についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0134]
 次に、時刻が10:00:55になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:20~10:00:25にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0135]
 また、パケット解析装置100は、コネクション1,2についての異常コネクション情報の最終保存時刻になったことを検出する。パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲に対応付けて登録した、コネクション1,2についての異常コネクション情報を削除する。
[0136]
 これにより、パケット解析装置100は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
[0137]
 ここで、複数の異常コネクションのうち、最初に閾値を超えたときの異常レベルに基づいて、どの異常コネクションで通信されたパケットを記憶するか決定する場合が考えられる。しかしながら、この場合を図12の例に適用すると、異常レベルの最大値が相対的に大きいコネクション1で通信されたパケットより、異常レベルの最大値が相対的に小さい
コネクション2で通信されたパケットを優先して記憶してしまうことがある。これに対し、パケット解析装置100は、異常レベルの最大値が相対的に大きいコネクション1で通信されたパケットを優先して記憶することができる。
[0138]
 次に、図13を用いて、実施例1におけるパケット解析装置100の第2の動作例について説明する。
[0139]
 図13は、パケット解析装置100の第2の動作例を示す説明図である。図13の例では、説明の簡略化のため、パケット解析装置100が、時刻9:59:35~時刻10:01:00において、コネクション1とコネクション2とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。パケット解析装置100は、5秒ごとに、異常レベル範囲リスト900に対応付ける異常コネクション情報を更新する。
[0140]
 まず、時刻が9:59:35になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0141]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションではないと決定する。
[0142]
 同様に、時刻が9:59:40~9:59:55では、パケット解析装置100は、新たに取得したコネクション1,2のパケットをパケットバッファに記憶し、コネクション1,2が異常コネクションではないと決定する。
[0143]
 次に、時刻が10:00:00になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1についての異常コネクション情報を生成する。
[0144]
 パケット解析装置100は、例えば、算出した異常レベル「60」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、生成したコネクション1についての異常コネクション情報を登録する。
[0145]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2についての異常コネクション情報を生成する。
[0146]
 パケット解析装置100は、例えば、算出した異常レベル「55」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60
」に対応付けて、生成したコネクション2についての異常コネクション情報を登録する。
[0147]
 次に、時刻が10:00:05になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「80」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが「55」から「80」に増加したと判定し、コネクション1についての異常コネクション情報を更新する。
[0148]
 パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の異常レベルを新たに算出した異常レベル「80」に更新する。パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:00:45」に更新する。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0149]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0150]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「55」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0151]
 次に、時刻が10:00:10になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:35~9:59:40にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0152]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0153]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10
:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0154]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが「55」から「60」に増加したと判定し、コネクション2についての異常コネクション情報を更新する。
[0155]
 パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の異常レベルを新たに算出した異常レベル「60」に更新する。パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:00:50」に更新する。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0156]
 次に、時刻が10:00:15になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:40~9:59:45にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0157]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0158]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0159]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報を更新する。
[0160]
 パケット解析装置100は、例えば、コネクション2の異常レベルが低下したため、コネクション2についての異常コネクション情報の異常レベル「60」と、有効期限「10:00:50」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0161]
 次に、時刻が10:00:20になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:45~9:59:50にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0162]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0163]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションではないと決定する。
[0164]
 同様に、時刻が10:00:25~10:00:40では、パケット解析装置100は、取得から30秒経過したパケットのうち、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置100は、コネクション1,2が異常コネクションではないと決定する。
[0165]
 次に、時刻が10:00:45になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:10~10:00:15にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0166]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:10」の異常レベル「55」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0167]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:10」の40秒後の時刻「10:00:50」に更新する。パケット解析装置100は、例えば、コネクション1につい
ての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0168]
 次に、時刻が10:00:50になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:15~10:00:20にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0169]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:15」の異常レベル「50」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0170]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:15」の40秒後の時刻「10:00:55」に更新する。パケット解析装置100は、例えば、コネクション1についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0171]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション2についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:15」の異常レベル「55」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0172]
 また、パケット解析装置100は、コネクション2についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:15」の40秒後の時刻「10:00:55」に更新する。パケット解析装置100は、例えば、コネクション2についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0173]
 次に、時刻が10:00:55になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:20~10:00:25にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0174]
 また、パケット解析装置100は、コネクション1,2についての異常コネクション情報の最終保存時刻になったことを検出する。パケット解析装置100は、異常レベル範囲
リスト900の異常レベル範囲に対応付けて登録した、コネクション1,2についての異常コネクション情報を削除する。
[0175]
 これにより、パケット解析装置100は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
[0176]
 ここで、異常レベルが変化する都度、複数の異常コネクションのうち、相対的に異常レベルが大きい方の異常コネクションで通信されたパケットを記憶するようにする場合が考えられる。しかしながら、この場合を図13の例に適用すると、異常レベルの最大値が相対的に大きいコネクション1で通信されたパケットは、比較的短い期間の分しか記憶されなくなってしまうことがある。これに対し、パケット解析装置100は、コネクション1,2で通信されたパケットを、ある程度の期間の分、記憶しておくことができる。
[0177]
 次に、図14を用いて、実施例1におけるパケット解析装置100の第3の動作例について説明する。
[0178]
 図14は、パケット解析装置100の第3の動作例を示す説明図である。図14の例では、説明の簡略化のため、パケット解析装置100が、時刻9:59:35~時刻10:01:25において、コネクション1とコネクション2とのうち、いずれのコネクションで通信されたパケットを優先して記憶するかについて説明する。また、パケット解析装置100は、5秒ごとに、異常レベル範囲リスト900に対応付ける異常コネクション情報を更新する。
[0179]
 まず、時刻が9:59:35になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0180]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションではないと決定する。
[0181]
 同様に、時刻が9:59:40~9:59:55では、パケット解析装置100は、新たに取得したコネクション1,2のパケットをパケットバッファに記憶し、コネクション1,2が異常コネクションではないと決定する。
[0182]
 次に、時刻が10:00:00になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1についての異常コネクション情報を生成する。
[0183]
 パケット解析装置100は、例えば、算出した異常レベル「60」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、生成したコネクション1についての異常コネクション情報を登録する。
[0184]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2についての異常コネクション情報を生成する。
[0185]
 パケット解析装置100は、例えば、算出した異常レベル「55」と、有効期限として現時点から40秒後の時刻「10:00:40」と、最終保存時刻として現時点から40秒後の時刻「10:00:40」とを含む、異常コネクション情報を生成する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、生成したコネクション2についての異常コネクション情報を登録する。
[0186]
 次に、時刻が10:00:05になる。ここで、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「80」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが「60」から「80」に増加したと判定し、コネクション1についての異常コネクション情報を更新する。
[0187]
 パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の異常レベルを新たに算出した異常レベル「80」に更新する。パケット解析装置100は、例えば、コネクション1の異常レベルが増加したため、コネクション1についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:00:45」に更新する。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0188]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0189]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「55」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:45」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0190]
 次に、時刻が10:00:10になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:35~9:59:40にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイル
に記憶する。
[0191]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0192]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0193]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0194]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「55」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:50」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0195]
 次に、時刻が10:00:15になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:40~9:59:45にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0196]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが変化していないと判定し、コネクション1についての異常コネクション情報を更新する。
[0197]
 パケット解析装置100は、例えば、コネクション1の異常レベルが変化していないため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」
に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0198]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0199]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「55」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0200]
 次に、時刻が10:00:20になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:45~9:59:50にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0201]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが変化していないと判定し、コネクション1についての異常コネクション情報を更新する。
[0202]
 パケット解析装置100は、例えば、コネクション1の異常レベルが変化していないため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0203]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0204]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「55」と、有効期限「10:00:40」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:00:55」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」
に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0205]
 次に、時刻が10:00:25になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:50~9:59:55にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0206]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが低下したと判定し、コネクション1についての異常コネクション情報を更新する。
[0207]
 パケット解析装置100は、例えば、コネクション1の異常レベルが低下したため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:05」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「80~90」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0208]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが増加したと判定し、コネクション2についての異常コネクション情報を更新する。
[0209]
 パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の異常レベルを新たに算出した異常レベル「60」に更新する。パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:01:05」に更新する。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:05」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0210]
 次に、時刻が10:00:30になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻9:59:55~10:00:00にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0211]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケッ
トバッファに記憶し、コネクション1の異常レベル「55」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションであると決定し、コネクション1の異常レベルが変化していないと判定し、コネクション1についての異常コネクション情報を更新する。
[0212]
 パケット解析装置100は、例えば、コネクション1の異常レベルが変化していないため、コネクション1についての異常コネクション情報の異常レベル「80」と、有効期限「10:00:45」とを更新しない。パケット解析装置100は、例えば、コネクション1が異常コネクションであるため、コネクション1についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:10」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0213]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「60」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが変化していないと判定し、コネクション2についての異常コネクション情報を更新する。
[0214]
 パケット解析装置100は、例えば、コネクション2の異常レベルが変化していないため、コネクション2についての異常コネクション情報の異常レベル「60」と、有効期限「10:01:05」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:10」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0215]
 同様に、時刻が10:00:35~10:00:40では、パケット解析装置100は、取得から30秒経過したパケットのうち、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置100は、コネクション1,2が異常コネクションであると決定し、コネクション1,2の異常レベルが変化していないと判定し、コネクション1についての異常コネクション情報の最終保存時刻を更新する。そして、パケット解析装置100は、更新したコネクション1についての異常コネクション情報を登録し直す。
[0216]
 次に、時刻が10:00:45になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:10~10:00:15にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション1で通信されたパケットを優先して保存ファイルに記憶する。
[0217]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:20」の異常レベル「60」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0218]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:20」の40秒後の時刻「10:01:00」に更新する。パケット解析装置100は、例えば、コネクション1についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「60~70」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0219]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベル「70」を算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが増加したと判定し、コネクション2についての異常コネクション情報を更新する。
[0220]
 パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の異常レベルを新たに算出した異常レベル「70」に更新する。パケット解析装置100は、例えば、コネクション2の異常レベルが増加したため、コネクション2についての異常コネクション情報の有効期限を現時点から40秒後の時刻「10:01:25」に更新する。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:25」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「70~80」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0221]
 次に、時刻が10:00:50になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:15~10:00:20にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0222]
 また、パケット解析装置100は、新たに取得したコネクション1のパケットをパケットバッファに記憶し、コネクション1の異常レベルを算出し、その異常レベルが閾値「50」未満であると判定する。そして、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。
[0223]
 また、パケット解析装置100は、新たに取得したコネクション2のパケットをパケットバッファに記憶し、コネクション2の異常レベルを算出し、その異常レベルが閾値「50」以上であると判定する。そして、パケット解析装置100は、コネクション2が異常コネクションであると決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報を更新する。
[0224]
 パケット解析装置100は、例えば、コネクション2の異常レベルが低下したため、コネクション2についての異常コネクション情報の異常レベル「70」と、有効期限「10:01:25」とを更新しない。パケット解析装置100は、例えば、コネクション2が異常コネクションであるため、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:30」に更新する。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「70~80」に対応付けて、更新したコネクション2についての異常コネクション情報を登録し直す。
[0225]
 同様に、時刻が10:00:55では、パケット解析装置100は、取得から30秒経過したパケットのうち、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。また、パケット解析装置100は、コネクション1が異常コネクションではないと決定する。また、パケット解析装置100は、コネクション2を異常コネクションに決定し、コネクション2の異常レベルが低下したと判定し、コネクション2についての異常コネクション情報の最終保存時刻を現時点から40秒後の時刻「10:01:35」に更新する。そして、パケット解析装置100は、更新したコネクション2についての異常コネクション情報を登録し直す。
[0226]
 次に、時刻が10:01:00になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:25~10:00:30にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0227]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:25」の異常レベル「55」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0228]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:25」の40秒後の時刻「10:01:05」に更新する。パケット解析装置100は、例えば、コネクション1についての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0229]
 次に、時刻が10:01:05になる。ここで、パケット解析装置100は、パケットバッファに、過去の時刻10:00:30~10:00:35にコネクション1,2で通信され、取得から30秒経過したパケットがあると判定する。そして、パケット解析装置100は、取得から30秒経過したパケットのうち、相対的に大きい異常レベル範囲に対応付けられた異常コネクションで通信されたパケットを優先して保存ファイルに記憶する。パケット解析装置100は、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0230]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限になったことを検出する。パケット解析装置100は、異常レベル履歴800に基づいて、コネクション1についての異常コネクション情報の異常レベルを、異常レベル履歴800に記憶された時刻「10:00:25」の異常レベル「55」に更新する。パケット解析装置100が、異常レベル履歴800に基づいて、異常レベルを更新する詳細については、図15を用いて後述する。
[0231]
 また、パケット解析装置100は、コネクション1についての異常コネクション情報の有効期限を、異常レベル履歴800の時刻「10:00:25」の40秒後の時刻「10:01:05」に更新する。パケット解析装置100は、例えば、コネクション1につい
ての異常コネクション情報の最終保存時刻を更新しない。そして、パケット解析装置100は、異常レベル範囲リスト900の異常レベル範囲「50~60」に対応付けて、更新したコネクション1についての異常コネクション情報を登録し直す。
[0232]
 次に、時刻が10:01:10~10:01:25では、パケット解析装置100は、取得から30秒経過したパケットのうち、コネクション2で通信されたパケットを優先して保存ファイルに記憶する。
[0233]
 これにより、パケット解析装置100は、複数の異常コネクションで通信されたパケットのうち、保存ファイルに記憶しておくことが相対的に好ましい方の異常コネクションで通信されたパケットを優先して、保存ファイルに記憶することができる。
[0234]
 ここで、複数の異常コネクションのうち、現時点までの異常レベルの最大値に基づいて、どの異常コネクションで通信されたパケットを記憶するか決定する場合が考えられる。しかしながら、この場合を図14の例に適用すると、異常レベルの最大値が小さいコネクション2で通信されたパケットは、保存ファイルに記憶されないことがある。これに対し、パケット解析装置100は、コネクション1,2で通信されたパケットを、それぞれ、記憶することができる。
[0235]
 次に、図15を用いて、異常レベル履歴800に基づく異常レベルの設定の一例について説明する。
[0236]
 図15は、異常レベル履歴800に基づく異常レベルの設定の一例を示す説明図である。図15に示すように、パケット解析装置100は、所定の個数分の、過去に算出された異常レベルを、異常レベル履歴800に記憶しておく。そして、パケット解析装置100は、異常レベル履歴800に基づく異常レベルの設定を行う際には、異常レベル履歴800に記憶された異常レベルのうちの最大値を、新たな異常レベルとして設定することになる。
[0237]
 パケット解析装置100は、例えば、時刻9:59:55以降、5秒ごとに、異常レベルを算出し、異常レベル履歴800に記憶している。パケット解析装置100は、異常レベル履歴800に、8個の異常レベルがある場合、最も古い異常レベルに、新たに算出した異常レベルを上書きし、最新の8個の異常レベルを記憶しておく。
[0238]
 パケット解析装置100は、例えば、時刻10:00:45に、異常レベル履歴800に基づく異常レベルの設定を行う際には、異常レベル履歴800に記憶された時刻10:00:10~10:00:45の複数の異常レベルのうちの最大値「60」を設定する。パケット解析装置100は、最大値が複数ある場合、複数の最大値のうち、最も新しく記憶された最大値を用いる。パケット解析装置100は、最大値を設定した場合、その最大値が算出された時刻に基づいて、有効期限を更新する。
[0239]
 これにより、パケット解析装置100は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、パケット解析装置100は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
[0240]
(実施例1における格納処理手順の一例)
 次に、図16を用いて、実施例1におけるパケット解析装置100が実行する格納処理手順の一例について説明する。
[0241]
 図16は、実施例1における格納処理手順の一例を示すフローチャートである。図16において、パケット解析装置100は、ミラーリングを用いて、パケットを受信する(ステップS1601)。次に、パケット解析装置100は、受信したパケットに、パケットIDを割り当てる(ステップS1602)。そして、パケット解析装置100は、受信したパケットと、割り当てたパケットIDと、受信時刻とを対応付けて、パケットバッファに格納する(ステップS1603)。
[0242]
 次に、パケット解析装置100は、受信したパケットについての格納通知を出力する(ステップS1604)。そして、パケット解析装置100は、格納処理を終了する。これにより、パケット解析装置100は、受信したパケットを、パケットバッファに一時的に蓄積することができる。
[0243]
(実施例1における解析処理手順の一例)
 次に、図17を用いて、実施例1におけるパケット解析装置100が実行する解析処理手順の一例について説明する。
[0244]
 図17は、実施例1における解析処理手順の一例を示すフローチャートである。図17において、パケット解析装置100は、格納通知を検出する(ステップS1701)。次に、パケット解析装置100は、パケットバッファに格納されたパケットのヘッダ情報を取得する(ステップS1702)。そして、パケット解析装置100は、そのパケットが通信されたコネクションを特定する(ステップS1703)。
[0245]
 次に、パケット解析装置100は、特定したコネクションのコネクションIDが、コネクションテーブル400に登録済みであるか否かを判定する(ステップS1704)。ここで、登録済みである場合(ステップS1704:Yes)、パケット解析装置100は、ステップS1706の処理に移行する。
[0246]
 一方で、登録済みではない場合(ステップS1704:No)、パケット解析装置100は、特定したコネクションのコネクションIDを、コネクションテーブル400に登録する(ステップS1705)。そして、パケット解析装置100は、ステップS1706の処理に移行する。
[0247]
 ステップS1706で、パケット解析装置100は、特定したコネクションについて、L4解析処理を実行する(ステップS1706)。次に、パケット解析装置100は、L4解析処理の解析結果を参照し、L4解析情報テーブル600を更新する(ステップS1707)。
[0248]
 そして、パケット解析装置100は、L7解析を実行し(ステップS1708)、ステップS1701の処理に戻る。
[0249]
(実施例1における異常判定処理手順の一例)
 次に、図18を用いて、実施例1におけるパケット解析装置100が実行する異常判定処理手順の一例について説明する。
[0250]
 図18は、実施例1における異常判定処理手順の一例を示すフローチャートである。図18において、パケット解析装置100は、所定の時間間隔ごとの判定タイミングまで待機する(ステップS1801)。次に、パケット解析装置100は、判定タイミングになると、コネクションテーブル400を参照し、いずれかのコネクションを選択する(ステップS1802)。そして、パケット解析装置100は、L4解析情報テーブル600を
参照し、選択したコネクションに、現時点で異常があるか否かを評価する(ステップS1803)。
[0251]
 その後、パケット解析装置100は、評価した結果、および異常コネクション情報テーブル700を参照し、選択したコネクションが、異常コネクションであるか否かを判定する(ステップS1804)。ここで、異常コネクションではない場合(ステップS1804:No)、パケット解析装置100は、ステップS1806の処理に移行する。
[0252]
 一方で、異常コネクションである場合(ステップS1804:Yes)、パケット解析装置100は、図19に後述する異常コネクション登録処理を実行する(ステップS1805)。そして、パケット解析装置100は、ステップS1806の処理に移行する。
[0253]
 ステップS1806で、パケット解析装置100は、コネクションテーブル400を参照し、未選択のコネクションがあるか否かを判定する(ステップS1806)。ここで、未選択のコネクションがある場合(ステップS1806:Yes)、パケット解析装置100は、ステップS1802の処理に戻る。
[0254]
 一方で、未選択のコネクションがない場合(ステップS1806:No)、パケット解析装置100は、異常判定処理を終了する。
[0255]
(実施例1における異常コネクション登録処理手順の一例)
 次に、図19を用いて、実施例1におけるパケット解析装置100が実行する異常コネクション登録処理手順の一例について説明する。
[0256]
 図19は、実施例1における異常コネクション登録処理手順の一例を示すフローチャートである。図19において、パケット解析装置100は、異常コネクションに、現時点で異常があるか否かを判定する(ステップS1901)。ここで、現時点で異常がある場合(ステップS1901:Yes)、パケット解析装置100は、その異常コネクションの、現時点の暫定異常レベルを算出する(ステップS1902)。
[0257]
 次に、パケット解析装置100は、異常コネクション情報テーブル700を参照し、その異常コネクションについて異常コネクション情報があるか否かを判定する(ステップS1903)。ここで、異常コネクション情報がある場合(ステップS1903:Yes)、パケット解析装置100は、ステップS1905の処理に移行する。
[0258]
 一方で、異常コネクション情報がない場合(ステップS1903:No)、パケット解析装置100は、その異常コネクションについて、異常コネクション情報と異常レベル履歴800とを作成する(ステップS1904)。そして、パケット解析装置100は、ステップS1905の処理に移行する。
[0259]
 ステップS1905で、パケット解析装置100は、その異常コネクションについての異常レベル履歴800に、算出した暫定異常レベルを設定する(ステップS1905)。次に、パケット解析装置100は、その異常コネクションについての異常コネクション情報の最終保存時刻を更新する(ステップS1906)。そして、パケット解析装置100は、図20に後述する決定処理を実行する(ステップS1907)。
[0260]
 次に、パケット解析装置100は、図21に後述するリスト連結処理を実行する(ステップS1908)。そして、パケット解析装置100は、異常コネクション登録処理を終了する。
[0261]
 一方で、ステップS1901で、現時点で異常ではない場合(ステップS1901:No)、パケット解析装置100は、その異常コネクションについての異常コネクション情報の最終保存時刻を過ぎていれば、その異常コネクション情報を削除する(ステップS1909)。そして、パケット解析装置100は、異常コネクション登録処理を終了する。
[0262]
(実施例1における決定処理手順の一例)
 次に、図20を用いて、実施例1におけるパケット解析装置100が実行する決定処理手順の一例について説明する。
[0263]
 図20は、実施例1における決定処理手順の一例を示すフローチャートである。図20において、パケット解析装置100は、その異常コネクションについての異常コネクション情報の有効期限を過ぎたか否かを判定する(ステップS2001)。ここで、有効期限を過ぎている場合(ステップS2001:Yes)、パケット解析装置100は、異常レベル履歴800を参照し、保存時間の分記憶された複数の異常レベルのうち、最大の異常レベルを選択する(ステップS2002)。
[0264]
 次に、パケット解析装置100は、その異常コネクションについての異常コネクション情報の有効期限を、選択した異常レベルに対応する時刻に保存時間を加算した時刻に設定する(ステップS2003)。そして、パケット解析装置100は、決定処理を終了する。
[0265]
 一方で、有効期限を過ぎていない場合(ステップS2001:No)、パケット解析装置100は、現時点の暫定異常レベル≧過去の異常レベルであるか否かを判定する(ステップS2004)。ここで、現時点の暫定異常レベル≧過去の異常レベルである場合(ステップS2004:Yes)、パケット解析装置100は、その異常コネクションについての異常コネクション情報の異常レベルを、現時点の暫定異常レベルに設定する(ステップS2005)。
[0266]
 次に、パケット解析装置100は、有効期限を、現時点に保存時間を加算した時刻に設定する(ステップS2006)。そして、パケット解析装置100は、決定処理を終了する。
[0267]
 一方で、ステップS2004で、現時点の暫定異常レベル≧過去の異常レベルではない場合(ステップS2004:No)、パケット解析装置100は、異常コネクション情報に異常レベルが設定済みであるか否かを判定する(ステップS2007)。ここで、設定済みである場合(ステップS2007:Yes)、パケット解析装置100は、決定処理を終了する。
[0268]
 一方で、設定済みではない場合(ステップS2007:No)、パケット解析装置100は、ステップS2006の処理に移行する。
[0269]
(実施例1におけるリスト連結処理手順の一例)
 次に、図21を用いて、実施例1におけるパケット解析装置100が実行するリスト連結処理手順の一例について説明する。
[0270]
 図21は、実施例1におけるリスト連結処理手順の一例を示すフローチャートである。図21において、パケット解析装置100は、決定した異常コネクションの異常レベルに対応する、異常レベル範囲リスト900のいずれかの異常レベル範囲に、その異常コネクションの異常コネクション情報を対応付ける(ステップS2101)。
[0271]
 次に、パケット解析装置100は、その異常レベル範囲のコネクション数に1を加算する(ステップS2102)。そして、パケット解析装置100は、リスト連結処理を終了する。
[0272]
(実施例1における生成処理手順の一例)
 次に、図22を用いて、実施例1におけるパケット解析装置100が実行する生成処理手順の一例について説明する。
[0273]
 図22は、実施例1における生成処理手順の一例を示すフローチャートである。図22において、パケット解析装置100は、インデックステーブル500のリードポインタ位置が示す、インデックステーブル500のレコードを特定する(ステップS2201)。
[0274]
 次に、パケット解析装置100は、特定したレコードの受信時刻から一定時間が経過したか否かを判定する(ステップS2202)。ここで、一定時間が経過していない場合(ステップS2202:No)、パケット解析装置100は、ステップS2201の処理に戻る。
[0275]
 一方で、一定時間が経過している場合(ステップS2202:Yes)、パケット解析装置100は、特定したレコードを読み出し、リードポインタ位置に1を加算する(ステップS2203)。次に、パケット解析装置100は、取得したレコードのパケットIDが示すパケットが、異常レベル範囲リスト900の特定の異常レベル範囲に対応付けられた異常コネクションのパケットであるか否かを判定する(ステップS2204)。ここで、異常コネクションのパケットではない場合(ステップS2204:No)、パケット解析装置100は、ステップS2201の処理に戻る。
[0276]
 一方で、異常コネクションのパケットである場合(ステップS2204:Yes)、パケット解析装置100は、取得したレコードに基づいて、図23に後述するパケットフィルタ処理を実行する(ステップS2205)。そして、パケット解析装置100は、ステップS2201の処理に戻る。
[0277]
(実施例1におけるパケットフィルタ処理手順の一例)
 次に、図23を用いて、実施例1におけるパケット解析装置100が実行するパケットフィルタ処理手順の一例について説明する。
[0278]
 図23は、実施例1におけるパケットフィルタ処理手順の一例を示すフローチャートである。図23において、パケット解析装置100は、取得したレコードに基づいて、パケットバッファに記憶されたパケットを取得する(ステップS2301)。
[0279]
 次に、パケット解析装置100は、そのパケットに対応するコネクションIDを取得する(ステップS2302)。そして、パケット解析装置100は、メモリ302や記録媒体305などの記憶領域に、コネクションIDに対応する保存領域があるか否かを判定する(ステップS2303)。ここで、保存領域がない場合(ステップS2303:No)、パケット解析装置100は、新たな保存領域を設定し、そのパケットを格納する(ステップS2304)。次に、パケット解析装置100は、新たな保存領域に対応するメタデータを作成する(ステップS2305)。そして、パケット解析装置100は、パケットフィルタ処理を終了する。
[0280]
 一方で、保存領域がある場合(ステップS2303:Yes)、パケット解析装置100は、その保存領域に、そのパケットを格納する(ステップS2306)。次に、パケット解析装置100は、その保存領域に対応するメタデータを更新する(ステップS230
7)。そして、パケット解析装置100は、パケットフィルタ処理を終了する。
[0281]
(実施例2)
 次に、図24を用いて、実施例2におけるパケット解析装置100の動作例について説明する。実施例2では、パケット解析装置100が、実施例1の異常レベル範囲リスト900とは異なるリスト構造で、異常レベル範囲リスト2400を記憶する。
[0282]
 図24は、実施例2における異常レベル範囲リスト2400の記憶内容の一例である。図24に示すように、異常レベル範囲リスト2400は、範囲上限と、範囲下限と、コネクション数と、リスト先頭ポインタと、リスト末端ポインタとのフィールドを有する。各フィールドは、図9と同様であるため、説明を省略する。図24の例では、異常レベル範囲リスト2400が有するアイテムが、図9と異なるため、そのアイテムについて以下に説明する。
[0283]
 アイテムは、異常コネクションごとに存在し、異常コネクション情報ポインタと、前アドレスと、次アドレスとのフィールドを有する。異常コネクション情報ポインタのフィールドは、異常レベル範囲に対応付ける異常コネクションについての異常コネクション情報へのポインタが設定される。
[0284]
 前アドレスのフィールドは、異常コネクション情報ポインタによって指定された異常コネクションよりも前に、同じ異常レベル範囲に対応付けられる他の異常コネクションについての異常コネクション情報ポインタを含んでいるアイテムへのポインタが設定される。次アドレスのフィールドは、異常コネクション情報ポインタによって指定された異常コネクションの次に、同じ異常レベル範囲に対応付けられる他の異常コネクションについての異常コネクション情報ポインタを含んでいるアイテムへのポインタが設定される。
[0285]
 ここで、複数のアイテムは、それぞれのアイテムの対応する異常コネクション情報の最終保存時刻が遅い順番に、先頭から連結されるようにする。これにより、パケット解析装置100は、ある異常コネクション情報の最終保存時刻を過ぎた場合に、その異常コネクション情報だけではなく、その異常コネクションの後ろに対応付けられた異常コネクションもまとめて削除することができる。このため、パケット解析装置100は、異常コネクション情報の削除にかかる処理時間を低減することができる。
[0286]
(実施例2における異常判定処理手順の一例)
 次に、図25を用いて、実施例2におけるパケット解析装置100が実行する異常判定処理手順の一例について説明する。
[0287]
 図25は、実施例2における異常判定処理手順の一例を示すフローチャートである。図25において、パケット解析装置100は、所定の時間間隔ごとの判定タイミングまで待機する(ステップS2501)。次に、パケット解析装置100は、判定タイミングになると、コネクションテーブル400を参照し、いずれかのコネクションを選択する(ステップS2502)。そして、パケット解析装置100は、L4解析情報テーブル600を参照し、選択したコネクションに、現時点で異常があるか否かを評価する(ステップS2503)。
[0288]
 その後、パケット解析装置100は、評価した結果、および異常コネクション情報テーブル700を参照し、選択したコネクションが、異常コネクションであるか否かを判定する(ステップS2504)。ここで、異常コネクションではない場合(ステップS2504:No)、パケット解析装置100は、ステップS2506の処理に移行する。
[0289]
 一方で、異常コネクションである場合(ステップS2504:Yes)、パケット解析装置100は、図26に後述する異常コネクション登録処理を実行する(ステップS2505)。そして、パケット解析装置100は、ステップS2506の処理に移行する。
[0290]
 ステップS2506で、パケット解析装置100は、コネクションテーブル400を参照し、未選択のコネクションがあるか否かを判定する(ステップS2506)。ここで、未選択のコネクションがある場合(ステップS2506:Yes)、パケット解析装置100は、ステップS2502の処理に戻る。
[0291]
 一方で、未選択のコネクションがない場合(ステップS2506:No)、パケット解析装置100は、図28に後述する異常コネクション削除処理を実行する(ステップS2507)。そして、パケット解析装置100は、ステップS2501の処理に戻る。
[0292]
(実施例2における異常コネクション登録処理手順の一例)
 次に、図26を用いて、実施例2におけるパケット解析装置100が実行する異常コネクション登録処理手順の一例について説明する。
[0293]
 図26は、実施例2における異常コネクション登録処理手順の一例を示すフローチャートである。図26において、パケット解析装置100は、異常コネクションに、現時点で異常があるか否かを判定する(ステップS2601)。ここで、現時点で異常がある場合(ステップS2601:Yes)、パケット解析装置100は、その異常コネクションの、現時点の暫定異常レベルを算出する(ステップS2602)。
[0294]
 次に、パケット解析装置100は、異常コネクション情報テーブル700を参照し、その異常コネクションについて異常コネクション情報があるか否かを判定する(ステップS2603)。ここで、異常コネクション情報がある場合(ステップS2603:Yes)、パケット解析装置100は、ステップS2605の処理に移行する。
[0295]
 一方で、異常コネクション情報がない場合(ステップS2603:No)、パケット解析装置100は、その異常コネクションについて、異常コネクション情報と異常レベル履歴800とを作成する(ステップS2604)。そして、パケット解析装置100は、ステップS2605の処理に移行する。
[0296]
 ステップS2605で、パケット解析装置100は、その異常コネクションについての異常レベル履歴800に、算出した暫定異常レベルを設定する(ステップS2605)。次に、パケット解析装置100は、その異常コネクションについての異常コネクション情報の最終保存時刻を更新する(ステップS2606)。そして、パケット解析装置100は、図34に後述する決定処理を実行する(ステップS2607)。
[0297]
 次に、パケット解析装置100は、図27に後述するリスト連結処理を実行する(ステップS2608)。そして、パケット解析装置100は、異常コネクション登録処理を終了する。
[0298]
 一方で、ステップS2601で、現時点で異常ではない場合(ステップS2601:No)、パケット解析装置100は、異常コネクション登録処理を終了する。
[0299]
(実施例2におけるリスト連結処理手順の一例)
 次に、図27を用いて、実施例2におけるパケット解析装置100が実行するリスト連結処理手順の一例について説明する。
[0300]
 図27は、実施例2におけるリスト連結処理手順の一例を示すフローチャートである。図27において、パケット解析装置100は、最終保存時間を過ぎたか否かを判定する(ステップS2701)。ここで、最終保存時刻を過ぎている場合(ステップS2701:Yes)、パケット解析装置100は、リスト連結処理を終了する。
[0301]
 一方で、最終保存時刻を過ぎていない場合(ステップS2701:No)、パケット解析装置100は、異常コネクションの現時点の異常レベルと、新規の異常レベルとが同一異常レベル範囲であるか否かを判定する(ステップS2702)。ここで、同一異常レベル範囲ではない場合(ステップS2702:No)、パケット解析装置100は、異常レベル範囲リスト2400のいずれかの異常レベル範囲と、異常コネクションとの対応付けを削除する(ステップS2703)。
[0302]
 次に、パケット解析装置100は、異常レベル範囲のコネクション数から1減算する(ステップS2704)。そして、パケット解析装置100は、決定した異常レベルに対応する異常レベル範囲に対応付けられた、異常コネクションよりも最終保存時刻が早い他の異常コネクションの位置を検索する(ステップS2705)。
[0303]
 次に、パケット解析装置100は、検索した位置に、異常コネクションを対応付ける(ステップS2706)。そして、パケット解析装置100は、コネクション数に1加算する(ステップS2707)。その後、パケット解析装置100は、リスト連結処理を終了する。
[0304]
 一方で、同一異常レベル範囲である場合(ステップS2702:Yes)、パケット解析装置100は、最終保存時刻が変更されたか否かを判定する(ステップS2708)。ここで、変更されていない場合(ステップS2708:No)、パケット解析装置100は、リスト連結処理を終了する。
[0305]
 一方で、変更されている場合(ステップS2708:Yes)、パケット解析装置100は、最終保存時刻順に、異常レベル範囲リスト2400上の位置を変更する(ステップS2709)。そして、パケット解析装置100は、リスト連結処理を終了する。
[0306]
(実施例2における削除処理手順の一例)
 次に、図28を用いて、実施例2におけるパケット解析装置100が実行する削除処理手順の一例について説明する。
[0307]
 図28は、実施例2における削除処理手順の一例を示すフローチャートである。図28において、パケット解析装置100は、いずれかの異常レベル範囲を選択する(ステップS2801)。次に、パケット解析装置100は、選択した異常レベル範囲を後方から検索し、最終保存時刻が経過した1以上の異常コネクションに対応する部分の先頭位置を特定する(ステップS2802)。そして、パケット解析装置100は、特定した先頭位置に基づいて、異常レベル範囲リスト2400から、最終保存時刻が経過した1以上の異常コネクションに対応する部分を切り離す(ステップS2803)。
[0308]
 次に、パケット解析装置100は、異常レベル範囲のコネクション数を、切り離した部分に対応する数だけ減算する(ステップS2804)。そして、パケット解析装置100は、異常コネクション情報と、異常レベル履歴800とを削除する(ステップS2805)。次に、パケット解析装置100は、未選択の異常レベル範囲があるか否かを判定する(ステップS2806)。ここで、未選択の異常レベル範囲がある場合(ステップS2806:Yes)、パケット解析装置100は、ステップS2801の処理に戻る。
[0309]
 一方で、未選択の異常レベル範囲がない場合(ステップS2806:No)、パケット解析装置100は、削除処理を終了する。
[0310]
 以上説明したように、パケット解析装置100によれば、取得したパケットを蓄積することができる。また、パケット解析装置100によれば、取得したパケットに基づいて、そのパケットが通信されたコネクションを示す情報に対応付けて、そのパケットが通信されたコネクションの通信性能に関する情報を蓄積することができる。また、パケット解析装置100によれば、所定の時間間隔で、コネクションの通信性能を示す異常レベルを含む、複数の異常レベル範囲のいずれかの異常レベル範囲に対応付けて、そのコネクションを示す情報を登録することができる。また、パケット解析装置100によれば、蓄積した、取得から一定の時間が経過したパケットのうち、特定の異常レベル範囲に対応するコネクションで通信されたパケットを抽出して、保存ファイルに記憶することができる。これにより、パケット解析装置100は、抽出して記憶したパケットに基づいて、事後的かつ詳細に、ある装置間の種々のコネクションや、ある装置間を結ぶネットワークなどについて解析することができる。また、パケット解析装置100は、異常レベルに基づくソートを行わなくてよく、比較的低い処理負荷で、パケットを選択的に記憶することができる。
[0311]
 また、パケット解析装置100によれば、第1のコネクションの通信性能を示す異常レベルが閾値以上である場合に、その異常レベルを含む異常レベル範囲に対応付けて、第1のコネクションを示す情報を登録することができる。これにより、パケット解析装置100は、異常レベルが比較的大きく、事後的かつ詳細な解析が行われる可能性が比較的大きい異常コネクションで通信されたパケットは抽出されやすくすることができる。一方で、パケット解析装置100は、異常レベルが比較的小さく、事後的かつ詳細な解析が行われる可能性が比較的小さい異常コネクションで通信されたパケットは抽出されないようにして、記憶領域の不足を発生しにくくすることができる。
[0312]
 また、パケット解析装置100によれば、第1のコネクションを示す情報を異常レベル範囲に対応付けて登録した場合、第1のコネクションを示す情報の異常レベル範囲への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定することができる。また、パケット解析装置100によれば、有効期限までは、第1のコネクションを示す情報を、現在対応付けている異常レベル範囲より通信性能が低いことを示す異常レベル範囲に対応付けられないようにすることができる。これにより、登録部1004は、異常レベルが一時的に大きくなり、保存ファイルに記憶しておくことが好ましくなったパケットが、その後の異常レベルの低下に伴って保存ファイルに記憶されなくなることを、有効期限までは抑制することができる。
[0313]
 また、パケット解析装置100によれば、第1のコネクションの通信性能を示す異常レベルが増加した場合、第1のコネクションの通信性能を示す異常レベルを含む異常レベル範囲に対応付けて、第1のコネクションを示す情報を登録し直すことができる。また、パケット解析装置100によれば、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置100は、異常レベルが大きくなり、さらに保存ファイルに記憶しておくことが好ましくなったパケットを、優先して保存ファイルに記憶されやすくすることができる。また、パケット解析装置100は、異常レベルが大きくなってから一定時間は、パケットが保存ファイルに記憶されやすくすることができる。
[0314]
 また、パケット解析装置100によれば、第1のコネクションの通信性能を示す異常レベルが低下した場合、第1のコネクションを示す情報の異常レベル範囲への登録状態について変更しないことができる。これにより、パケット解析装置100は、異常レベルが低下した直後に、第1のコネクションで通信されたパケットが抽出されなくなってしまうこ
とを防止することができる。
[0315]
 また、パケット解析装置100によれば、第1のコネクションの通信性能を示す異常レベルが低下し、かつ、現在対応付けている異常レベル範囲に含まれたままである場合、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置100は、異常コネクションに異常が継続している場合には、より長い期間パケットを抽出し、保存ファイルに記憶するようにすることができる。
[0316]
 また、パケット解析装置100によれば、有効期限になった場合、所定の期間における第1のコネクションの通信性能を示す異常レベルのいずれかの異常レベルに基づいて、第1のコネクションを示す情報を、異常レベル範囲に対応付けて登録し直すことができる。また、パケット解析装置100は、有効期限を、現在時刻から一定時間後の時刻に設定し直すことができる。これにより、パケット解析装置100は、現時刻の異常レベルだけを用いる場合に比べ、異常コネクション情報を登録する際に用いられることが好ましい異常レベルを用いることができる可能性を向上することができる。このため、パケット解析装置100は、より効果的に、保存ファイルに記憶することが好ましい、異常コネクションで通信されたパケットを抽出しやすくすることができる。
[0317]
 また、パケット解析装置100によれば、第1のコネクションの通信性能を示す異常レベルを基に、第1のコネクションを示す情報のいずれかの異常レベル範囲への登録状態についての保持期限を設定することができる。また、パケット解析装置100によれば、保持期限を過ぎた場合、第1のコネクションを示す情報の第3の記憶部130への登録状態を削除することができる。これにより、パケット解析装置100は、保持期限を過ぎ、事後的かつ詳細にコネクションなどを解析する際に用いられる可能性が小さくなった、保存ファイルに記憶しておかなくてよいパケットを、保存ファイルに記憶しないようにすることができる。
[0318]
 なお、本実施の形態で説明したパケット解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したパケット解析プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したパケット解析プログラムは、インターネット等のネットワークを介して配布してもよい。
[0319]
 上述した実施の形態に関し、さらに以下の付記を開示する。
[0320]
(付記1)コンピュータに、
 取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 処理を実行させることを特徴とするパケット解析プログラム。
[0321]
(付記2)前記登録する処理は、
 第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録する、ことを特徴とする付記1に記載のパケット解析プログラム。
[0322]
(付記3)前記登録する処理は、
 前記第1のコネクションを示す情報を前記第3の記憶部に登録した場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定し、
 前記有効期限までは、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直す際には、前記第1のコネクションを示す情報を、前記第1のコネクションを示す情報に対応付けている指標値範囲、または前記第1のコネクションを示す情報に対応付けている指標値範囲より通信性能が低いことを示す指標値範囲に対応付ける、ことを特徴とする付記2に記載のパケット解析プログラム。
[0323]
(付記4)前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の低下を示す場合、前記第1のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直し、
 前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記3に記載のパケット解析プログラム。
[0324]
(付記5)前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の向上を示す場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態について変更しない、ことを特徴とする付記3または4に記載のパケット解析プログラム。
[0325]
(付記6)前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の向上を示し、かつ、前記第1のコネクションの通信性能を示す指標値が、前記第1のコネクションを示す情報に対応付けている指標値範囲に含まれる場合、前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記3~5のいずれか一つに記載のパケット解析プログラム。
[0326]
(付記7)前記登録する処理は、
 前記有効期限になった場合、所定の期間における前記第1のコネクションの通信性能を示す指標値のいずれかの指標値を含む、前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直し、
 前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする付記3~6のいずれか一つに記載のパケット解析プログラム。
[0327]
(付記8)前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定し、
 前記保持期限を過ぎた場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態を削除する、ことを特徴とする付記2~7のいずれか一つに記載のパケット解析プログラム。
[0328]
(付記9)コンピュータが、
 取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 処理を実行することを特徴とするパケット解析方法。
[0329]
(付記10)取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 制御部を有することを特徴とするパケット解析装置。

符号の説明

[0330]
 100 パケット解析装置
 110 第1の記憶部
 120 第2の記憶部
 130 第3の記憶部
 140 第4の記憶部
 150,900,1109 異常レベル範囲リスト
 161~165 異常コネクション情報
 171~175 ポインタ
 200 パケット解析システム
 210 ネットワーク
 220 クライアント装置
 230 サーバ装置
 240 中継装置
 300 バス
 301 CPU
 302 メモリ
 303 ネットワークI/F
 304 記録媒体I/F
 305 記録媒体
 400 コネクションテーブル
 500,1106 インデックステーブル
 600 L4解析情報テーブル
 800 異常レベル履歴
 1001 記憶部
 1002 取得部
 1003 解析部
 1004 登録部
 1005 保存部
 1101 NIC
 1102 ドライバ
 1103 パケットバッファ
 1104 L4解析
 1105 インデックス作成
 1107 L4異常判定
 1108 異常コネクション情報テーブル
 1110 L4統計
 1111 統計情報
 1112 L7解析
 1113 L7異常判定
 1114 L7統計
 1115 パケットフィルタ
 1116 パケット保存
 1117 保存ファイル

請求の範囲

[請求項1]
 コンピュータに、
 取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 処理を実行させることを特徴とするパケット解析プログラム。
[請求項2]
 前記登録する処理は、
 第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、当該指標値を含む前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録する、ことを特徴とする請求項1に記載のパケット解析プログラム。
[請求項3]
 前記登録する処理は、
 前記第1のコネクションを示す情報を前記第3の記憶部に登録した場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態についての有効期限を、現在時刻から一定時間後の時刻に設定し、
 前記有効期限までは、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直す際には、前記第1のコネクションを示す情報を、前記第1のコネクションを示す情報に対応付けている指標値範囲、または前記第1のコネクションを示す情報に対応付けている指標値範囲より通信性能が低いことを示す指標値範囲に対応付ける、ことを特徴とする請求項2に記載のパケット解析プログラム。
[請求項4]
 前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の低下を示す場合、前記第1のコネクションの通信性能を示す指標値を含む指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直し、
 前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項3に記載のパケット解析プログラム。
[請求項5]
 前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の向上を示す場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態について変更しない、ことを特徴とする請求項3または4に記載のパケット解析プログラム。
[請求項6]
 前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値の変化が、前記第1のコネクションの通信性能の向上を示し、かつ、前記第1のコネクションの通信性能を示す指標値が、前記第1のコネクションを示す情報に対応付けている指標値範囲に含まれる場合、前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項3~5のいずれか一つに記載のパケット解析プログラム。
[請求項7]
 前記登録する処理は、
 前記有効期限になった場合、所定の期間における前記第1のコネクションの通信性能を示す指標値のいずれかの指標値を含む、前記複数の指標値範囲のいずれかの指標値範囲に対応付けて、前記第1のコネクションを示す情報を前記第3の記憶部に登録し直し、
 前記有効期限を、現在時刻から一定時間後の時刻に設定し直す、ことを特徴とする請求項3~6のいずれか一つに記載のパケット解析プログラム。
[請求項8]
 前記登録する処理は、
 前記第1のコネクションの通信性能を示す指標値が所定の通信性能以下であることを示す指標値である場合に、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態についての保持期限を、現在時刻から一定時間後の時刻に設定し、
 前記保持期限を過ぎた場合、前記第1のコネクションを示す情報の前記第3の記憶部への登録状態を削除する、ことを特徴とする請求項2~7のいずれか一つに記載のパケット解析プログラム。
[請求項9]
 コンピュータが、
 取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 処理を実行することを特徴とするパケット解析方法。
[請求項10]
 取得したパケットを第1の記憶部に蓄積し、
 取得したパケットに基づいて、当該パケットが通信されたコネクションを示す情報に対応付けて、当該コネクションの通信性能に関する情報を第2の記憶部に蓄積し、
 所定の時間間隔で、前記第2の記憶部を参照し、コネクションごとに、当該コネクションの通信性能を示す指標値を含む、複数の指標値範囲のいずれかの指標値範囲に対応付けて、当該コネクションを示す情報を第3の記憶部に登録し、
 前記第3の記憶部を参照し、前記第1の記憶部に蓄積した、取得から一定の時間が経過したパケットのうち、特定の指標値範囲に対応するコネクションで通信されたパケットを抽出し、第4の記憶部に記憶する、
 制御部を有することを特徴とするパケット解析装置。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]

[ 図 20]

[ 図 21]

[ 図 22]

[ 図 23]

[ 図 24]

[ 図 25]

[ 図 26]

[ 図 27]

[ 図 28]