[実施の形態1]
図1に、ネットワーク監視システムの構成例を示す。ネットワーク監視装置101は、ネットワークタップ105を介して監視対象ネットワーク103に接続している。監視対象ネットワーク103は、例えばLAN(Local Area Network)である。ネットワーク監視装置101は、監視対象ネットワーク103を伝送されているパケットをキャプチャする。例えば、監視対象ネットワーク103のスイッチを通過するパケットをミラーポートに複製してキャプチャする。あるいは、タップを使用してキャプチャするようにしてもよい。尚、パケットは、PDUの例である。
ネットワーク監視装置101は、NIC(Network Interface Card)111、ドライバ113、バッファ115、解析部117、統計部119、インデックスデータ記憶部121、分別データ記憶部123及び格納処理部125を有している。NIC111は、ネットワークに接続するためのインターフェースカードである。ドライバ113は、パケットを抽出し、抽出したパケットをバッファ115に格納すると共に、抽出したパケットにIDを割り当てる。バッファ115は、パケットを格納する。
解析部117は、主にパケットを解析すると共に、パケットを分別するためのインデックを生成する。解析部117は、L4解析部131とL7解析部133とを有している。L4解析部131は、ISOのOSI参照モデルにおける第4層(以下、L4という。)に関する解析を行う。L7解析部133は、ISOのOSI参照モデルにおける第7層(以下、L7という。)に関する解析を行う。
統計部119は、解析結果に基づき統計処理を行う。統計部119は、L4統計部135とL7統計部137とを有している。L4解析部131は、L4に関する統計処理を行う。具体的には、L4解析部131は、送受信パケット数及びバイト数、パケットのロス数、RTT等の統計的な解析情報によりネットワーク状態をほぼリアルタイムに診断する。L7解析部133は、L7に関する統計処理を行う。
インデックスデータ記憶部121は、インデックステーブルを記憶するための領域を2つ有する。分別データ記憶部123は、パケットの分別に関するデータを記憶する。格納処理部125は、パケットを分別し、分別されたパケットを収集したオブジェクトを記憶部に格納する。
ネットワーク監視装置101は、伝送ネットワーク107を介してストレージ装置109に接続している。ストレージ装置109は、統計データ記憶部141とオブジェクトデータ記憶部143とを有している。統計データ記憶部141は、統計部119における統計処理の結果を記憶する。オブジェクトデータ記憶部143は、オブジェクトを記憶する。伝送ネットワーク107は、監視対象ネットワーク103と同じネットワークであってもよい。以上で、ネットワーク監視システムの構成についての説明を終える。
インデックスデータ記憶部121に記憶されるインデックステーブルについて説明する。図2に、インデックステーブルの例を示す。インデックステーブルには、パケット毎に、当該パケットの特性に係る識別子が設定されている。この例におけるコネクションIDは、当該パケットの特性に係る識別子の例である。インデックステーブルは、パケット毎のレコードを有している。レコードは、パケットIDを設定するためのフィールドと、コネクションIDを設定するためのフィールドとを有している。パケットIDは、キャプチャされたパケットにシーケンシャルに付与される識別子である。
この例は、第1レコードにおいて、パケットID「PC−001」が割り振られたパケットに係るコネクションは、コネクションID「CN−01」によって特定されることを示している。
この例は、第2レコードにおいて、パケットID「PC−002」が割り振られたパケットに係るコネクションは、コネクションID「CN−02」によって特定されることを示している。
この例は、第3レコードにおいて、パケットID「PC−003」が割り振られたパケットに係るコネクションは、コネクションID「CN−02」によって特定されることを示している。
この例は、第4レコードにおいて、パケットID「PC−004」が割り振られたパケットに係るコネクションは、コネクションID「CN−03」によって特定されることを示している。
この例は、第5レコードにおいて、パケットID「PC−005」が割り振られたパケットに係るコネクションは、コネクションID「CN−03」によって特定されることを示している。
この例は、第6レコードにおいて、パケットID「PC−006」が割り振られたパケットに係るコネクションは、コネクションID「CN−01」によって特定されることを示している。以上で、インデックステーブルについての説明を終える。
次に、分別データ記憶部123に記憶されるコネクションテーブルについて説明する。図3に、コネクションテーブルの例を示す。コネクションテーブルには、コネクション毎に、コネクションを定義するデータが設定されている。コネクションテーブルは、コネクション毎のレコードを有している。レコードは、コネクションIDを設定するためのフィールドと、送信元IP(Internet Protocol)アドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、送信先IPアドレスを設定するためのフィールドと、送信先ポート番号を設定するためのフィールドと、プロトコル番号を設定するためのフィールドとを有している。
コネクションIDは、コネクションを特定するために解析部117が割り振る識別子である。送信元IPアドレスは、当該パケットの送信元であるホスト装置のIPアドレスである。送信元ポート番号は、当該パケットの送信元であるホスト装置において当該パケットを送出するポートの番号である。送信先IPアドレスは、当該パケットの送信先に相当するホスト装置のIPアドレスである。送信先ポート番号は、当該パケットの送信先に相当するホスト装置において当該パケットを受け入れるポートの番号である。プロトコル番号は、ISOのOSI参照モデルにおける第4層のプロトコルを識別する番号である。プロトコル番号「6」は、TCP(Transmission Control Protocol)を示し、プロトコル番号「17」は、UDP(User Datagram Protocol)を示している。
この例における第1レコードは、コネクションID「CN−01」が割り振られたコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2000」が送信元に相当し、IPアドレス「10.20.30.50」のホスト装置におけるポート番号「20」が送信先に相当することを示している。また、第1レコードは、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例における第2レコードは、コネクションID「CN−02」が割り振られたコネクションについて、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「3000」が送信元に相当し、IPアドレス「10.20.30.60」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、第2レコードは、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例における第3レコードは、コネクションID「CN−03」が割り振られたコネクションについて、IPアドレス「30.40.50.60」のホスト装置におけるポート番号「4000」が送信元に相当し、IPアドレス「40.50.60.70」のホスト装置におけるポート番号「3000」が送信先に相当することを示している。また、第3レコードは、このコネクションにおける第4層のプロトコルは、UDPであることも示している。以上で、コネクションテーブルについての説明を終える。
次に、オブジェクトデータ記憶部143に記憶されるオブジェクトについて説明する。図4に、オブジェクトの構成例を示す。この例におけるオブジェクト401は、メタデータ403と収集データ405とを含んでいる。収集データ405は、分別されたパケットを収集したデータである。メタデータ403は、分別のキーとなった特性(例えば、コネクション)に関するデータ及び収集データ405に関するデータを含んでいる。尚、メタデータ403を除き、収集データ405をオブジェクトと呼んでもよい。
以下、ネットワーク監視装置101における処理について説明する。図5に、ドライバ113による割り当て処理フローを示す。ドライバ113は、待機して、NIC111からパケットを受ける(S501)。NIC111からパケットを受けると、ドライバ113は受けたパケットにパケットIDを割り当てる(S503)。そして、ドライバ113は、バッファ115にパケットを格納する(S505)。また、ドライバ113は、パケットIDとパケットヘッダのアドレスとを含む通知を解析部に渡す(S507)。
図6に、解析部117のモジュール構成例を示す。解析部117は、L4解析部131とL7解析部133との他、受付部601、生成部603、第1切り替え部605及び記憶部607を有している。受付部601は、ドライバ113から通知を受け付ける。生成部603は、インデックスと分別に関するデータ(例えば、コネクションテーブル)を生成する。第1切り替え部605は、インデックスを書き込む先となるインデックステーブルの領域を切り替える。記憶部607は、解析部117の内部で用いるデータを記憶する。
図7Aに、解析部117の処理フローを示す。受付部601がドライバ113から通知を受けると(S701)、生成部603は、通知から得られるパケットIDを、インデックステーブルの新しいレコードに書く(S702)。L4解析部131は、通知に含まれるアドレスによってパケットヘッダを特定する(S703)。L4解析部131は、当該パケットのプロトコルが所定のプロトコルに該当するか否かを判定する(S704)。所定のプロトコルは、例えばTCPとUDPとである。当該パケットのプロトコルが所定のプロトコルに該当しないと判定した場合には、端子Cを介して図7BのS713の処理に移る。このとき、新しいレコードにおけるコネクションIDのフィールドは、未設定のままとなる。
一方、当該パケットのプロトコルが所定のプロトコルに該当すると判定した場合には、L4解析部131は、パケットヘッダからコネクションデータを抽出する(S705)。コネクションデータには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号及びプロトコル番号が含まれる。生成部603は、コネクションデータが既にコネクションテーブル(図3)に登録されているか否かを判定する(S707)。コネクションデータが既にコネクションテーブルに登録されていると判定した場合には、端子Aを介して図7BのS711の処理に移る。
コネクションデータが未だコネクションテーブルに登録されていないと判定した場合には、生成部603は、コネクションテーブルにレコードを追加する(S709)。新たなレコードには、新たなコネクションIDと当該コネクションデータが設定される。具体的には、コネクションID、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号及びプロトコル番号が設定される。S709の処理を終えると、端子Aを介して図7BのS711の処理に移る。
生成部603は、当該レコードにコネクションIDを書く(S711)。コネクションIDは、コネクションテーブルに基づいて特定される。
続いて、L4解析部131は、L4解析処理を実行する(S713)。また、L7解析部133は、L7解析処理を実行する(S715)。L4解析処理とL7解析処理とは、従来の処理と同様であるので、これ以上説明しない。
第1切り替え部605は、インデックステーブル切り替えのタイミングに至ったか否かを判定する(S717)。第1切り替え部605は、例えば、インデックステーブルに格納されているレコード数が所定基準数に至った場合に、インデックステーブル切り替えのタイミングに至ったと判定する。あるいは、第1切り替え部605は、前回の切り替え時から所定に期間が経過した場合に、インデックステーブル切り替えのタイミングに至ったと判定する。
インデックステーブル切り替えのタイミングに至ったと判定した場合には、第1切り替え部605はインデックスを書き込むインデックステーブルの領域を切り替える(S719)。第1切り替え部605は格納処理部125へ切り替え指示を送る(S721)。格納処理部125においても、同時にインデックスを読み込むインデックステーブルの領域を切り替えさせるためである。
このように、インデックステーブルを切り替えれば、解析部117がインデックスを書き込む領域と格納処理部125が読み出す領域とが常に異なり、完全ロックフリーアルゴリズムによって、マルチコアを生かす並列処理が実現される。例えば、ストレージ装置109に対する処理待ちで一部のオブジェクトの格納が遅れても、全体処理に対する影響は抑えられ、また復旧されるまでデータを消失しないようにできる。
図7Bに示した処理を終えると、端子Bを介して図7Aに示したS701の処理に戻り、上述の処理を繰り返す。
以上で解析部117についての説明を終える。続いて、格納処理部125について説明する。
図8に、格納処理部125のモジュール構成例を示す。格納処理部125は、読み込み部801、記憶部803、分別部805、収集データ記憶部807、メタデータ記憶部809、書き込み部811及び第2切り替え部813を有している。読み込み部801は、インデックスデータ記憶部121からインデックスを読み込む。記憶部803は、読み込まれたインデックスを一時的に記憶する。分別部805は、インデックスに基づいて、パケットを分別する。収集データ記憶部807は、分別されたパケットを連結した収集データを記憶する。メタデータ記憶部809は、収集データ405に関するメタデータ403を記憶する。書き込み部811は、収集データ405とメタデータ403とをオブジェクトデータ記憶部143に書き込む。第2切り替え部813は、インデックスを読み込む元となるインデックステーブルの領域を切り替える。
収集データ記憶部807に記憶される収集データ405について説明する。図9に、収集データ405の例を示す。この例における収集データは、同じコネクションに係るパケットを連結している。収集データ405aは、コネクションID「CN−01」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「0」であり、2番目のパケットの先頭オフセットが「624」である。収集データ405bは、コネクションID「CN−02」に係るパケットを3個連結している。収集データ405cは、コネクションID「CN−03」に係るパケットを14個連結している。
続いて、メタデータ記憶部809に記憶されるメタデータ403について説明する。図10に、メタデータ403の例を示す。メタデータ403は、収集データ405に対応付けて設けられる。図10に示したメタデータ403は、図9の収集データ405aに対応付けられている。メタデータ403は、ヘッダ部とテーブル部とを有している。
ヘッダ部には、コネクションIDを設定するためのフィールドと、コネクションデータを設定するためのフィールドとが設けられている。コネクションデータを設定するためのフィールドには、送信元IPアドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、送信先IPアドレスを設定するためのフィールドと、送信先ポート番号を設定するためのフィールドと、プロトコル番号を設定するためのフィールドとが含まれている。
この例のヘッダ部は、このメタデータが、コネクションID「CN−01」のコネクションに係るパケットの収集データ405aに対応することを示している。また、この例のヘッダ部は、このコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2000」が送信元に相当し、IPアドレス「10.20.30.50」のホスト装置におけるポート番号「20」が送信先に相当することを示している。また、この例のヘッダ部は、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
テーブル部には、収集データに含まれるパケット毎のレコードが設けられている。レコードには、パケットIDを設定するためのフィールドと、オフセットを設定するためのフィールドとが設けられている。この例のテーブル部において、1番目のパケットは、パケットID「PC−001」で特定され、オフセット「0」を先頭に格納されている。2番目のパケットは、パケットID「PC−006」で特定され、オフセット「624」を先頭に格納されている。
図9に示した収集データ405b及び収集データ405cについても、同様にメタデータ403が設けられる。
続いて、格納処理部125による処理について説明する。図11に、格納処理部125の処理フローを示す。読み込み部801は、読み込み元のインデックステーブルに未処理のレコードがあるか否かを判定する(S1101)。未処理のレコードとは、まだ分別処理されていないインデックスを指す。
インデックステーブルに未処理のレコードがあると判定した場合には、読み込み部801は、未処理のレコード群を読み、記憶部803に記憶させる(S1103)。
分別部805は、読んだレコードの各々についてパケット分別処理を行う。そのため、分別部805は、パケット分別処理の対象となっていない未処理のレコードを1つ特定する(S1105)。そして、分別部805は、パケット分別処理(A)を実行する(S1107)。パケット分別処理(B乃至E)については、後述の実施の形態で説明する。
図12に、パケット分別処理(A)フローを示す。分別部805は、当該レコードのパケットIDで特定されるパケットをバッファ115から取得する(S1201)。分別部805は、当該レコードのコネクションIDを読み(S1203)、第1分別処理を実行する(S1205)。
図13に、第1分別処理フローを示す。分別部805は、当該コネクションIDに相当するメタデータが設定済みであるか否かを判定する(S1301)。具体的には、分別部805は、メタデータ記憶部809に記憶されているメタデータのいずれかに当該コネクションIDが設定されているか否かを判定する。
当該コネクションIDに相当するメタデータが設定されていないと判定した場合に、分別部805は、まず収集データ記憶部807に新たな収集データ405の予約領域を設定し、その領域の先頭に当該パケットを格納する(S1303)。
続いて、分別部805は、メタデータ記憶部809に当該収集データ405のメタデータ403を生成する。メタデータ403のヘッダ部には、当該コネクションIDと、コネクションテーブルから取得されたコネクションデータが設定される。また、分別部805は、メタデータ403のテーブル部に最初のレコードを設定する(S1305)。レコードには、パケットIDと当該パケットの先頭を指すオフセットとが設定される。
一方、当該コネクションIDに相当するメタデータが設定されていると判定した場合には、既に当該コネクションIDに係る収集データとメタデータが存在する。分別部805は、既存の収集データ405の予約領域にパケットを追加する(S1307)。また、既存のメタデータ403のテーブル部にレコードを追加する(S1309)。レコードには、パケットIDと当該パケットの先頭を指すオフセットとが設定される。
コネクションIDが未設定であるパケットを収集するようにしてもよい。その場合には、所定のプロトコルに該当しないパケットのための収集データとメタデータが生成される。所定のプロトコルに該当しないパケットのためのメタデータにおけるヘッダ部の各フィールドは、未設定とする。例えば第1分別処理で、分別部805はコネクションIDが未設定であるか否かを判定する。コネクションIDが未設定であると判定した場合には、分別部805は所定のプロトコルに該当しないパケットのための収集データに当該パケットを加え、所定のプロトコルに該当しないパケットのためのメタデータにレコードを追加する。
第1分別処理を終えると、図12のパケット分別処理(A)も終え、図11の処理に戻る。書き込み部811は、書き込みのタイミングに至ったか否かを判定する(S1109)。書き込み部811は、例えば収集データ記憶部807で記憶しているデータ量が基準を越えた場合に、書き込みのタイミングに至ったと判定する。あるいは、書き込み部811は、前回の書き込みから所定の時間が経過した場合に、書き込みのタイミングに至ったと判定するようにしてもよい。
書き込み部811は、メタデータ403と収集データ405とをオブジェクトデータ記憶部143に書き込む(S1111)。このとき、書き込み部811は、メタデータ記憶部809に記憶されているメタデータ403と収集データ記憶部807に記憶されている収集データ405とをそのまま書き込んでもよいし、オブジェクト単位でまとめて書き込むようにしてもよい。いずれの場合にも、メタデータ403と収集データ405とは関連し、論理的にオブジェクト(図4)の構成が保たれるようにする。
分別部805は、未処理のレコードがあるか否かを判定する(S1113)。未処理のレコードがあると判定した場合には、S1105に戻って上述の処理を繰り返す。
未処理のレコードがないと判定した場合には、S1101に戻って、上述の処理を繰り返す。
S1101において、インデックステーブルに未処理のレコードがないと判定した場合には、第2切り替え部813は、解析部117の第1切り替え部605から切り替え指示を受けたか否かを判定する(S1115)。解析部117の第1切り替え部605から切り替え指示を受けたと判定した場合には、第2切り替え部813は、分別部805がインデックスを読み取る元となるインデックステーブルの領域を切り替える(S1117)。 この実施の形態によれば、特性に応じてキャプチャしたパケットをまとめるための処理負荷を軽減することができる。例えば、リスト解析のような煩雑な手順を要しないので、少ない資源及び小さい負荷で処理することができる。
また、オブジェクトのメタデータにパケットIDが含まれるので、パケットをキャプチャした順序を特定することができる。例えば、キャプチャした順にパケットを並べ直すことに役立つ。
また、コネクション毎にパケットを収集しようとする場合に、パケットのコネクションを特定する処理と、コネクションによってパケットを分別して格納する処理とを分離するので、処理負荷を分散させることができる。
また、インデックステーブルの領域を同期して切り替えるので、インデックスを記憶するための領域の容量不足や記憶装置の処理待ちによる不具合を回避できる。
[実施の形態2]
本実施の形態では、パケットの送信元装置と送信先装置の組み合わせが共通する収集データ同士をまとめて格納する例について説明する。
ネットワーク監視システムの構成は、実施の形態1と同様である。
図14に、実施の形態2に係るオブジェクト401の構成例を示す。本実施の形態におけるオブジェクトは、複数の収集データ405を含んでいる。複数の収集データのまとまりを、収集データセットと呼ぶ。
本実施の形態では、収集データセットに含まれる収集データ405に対応するメタデータを関連付ける上位メタデータ1401を設けている。上位メタデータ1401とメタデータ403とのまとまりをメタデータセットと呼ぶ。尚、図中のメタデータ403aは、収集データ405aに関し、同じくメタデータ403bは、収集データ405bに関する。
次に、本実施の形態におけるインデックステーブルについて説明する。図15に、実施の形態2に係るインデックステーブルの例を示す。図2の場合と同様に、インデックステーブルには、パケット毎に、当該パケットの特性が設定されている。この例では、パケットの特性として、コネクションIDの他にホスト組み合わせIDが設定されている。ホスト組み合わせIDは、送信元であるホスト装置と送信先であるホスト装置との組み合わせを特定するための識別子である。
この例は、第1レコードにおいて、パケットID「PC−011」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−01」で特定されることを示している。
この例は、第2レコードにおいて、パケットID「PC−012」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−01」で特定されることを示している。
この例は、第3レコードにおいて、パケットID「PC−013」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−01」で特定されることを示している。
この例は、第4レコードにおいて、パケットID「PC−014」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−02」で特定されることを示している。
この例は、第5レコードにおいて、パケットID「PC−015」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−02」で特定されることを示している。
この例は、第6レコードにおいて、パケットID「PC−016」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットに係るホスト組み合わせは、ホスト組み合わせID「HtoH−01」で特定されることを示している。以上で、インデックステーブルについての説明を終える。
次に、本実施の形態におけるコネクションテーブルについて説明する。図16に、実施の形態2に係るコネクションテーブルの例を示す。コネクションテーブルの構成は、図3の場合と同様である。
この例における第1レコードは、コネクションID「CN−11」が割り振られたコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2000」が送信元に相当し、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、第1レコードは、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例における第2レコードは、コネクションID「CN−12」が割り振られたコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2100」が送信元に相当し、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、第2レコードは、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例における第3レコードは、コネクションID「CN−13」が割り振られたコネクションについて、IPアドレス「30.40.50.60」のホスト装置におけるポート番号「2100」が送信元に相当し、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、第3レコードは、このコネクションにおける第4層のプロトコルは、TCPであることも示している。以上で、コネクションテーブルについての説明を終える。
本実施の形態では、分別データ記憶部123において、上述したコネクションテーブルの他に、ホスト組み合わせテーブルも記憶している。図17に、ホスト組み合わせテーブルの例を示す。ホスト組み合わせテーブルには、ホスト組み合わせ毎に、ホスト組み合わせを定義するデータが設定されている。ホスト組み合わせテーブルは、ホスト組み合わせ毎のレコードを有している。レコードは、ホスト組み合わせIDを設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信先IPアドレスを設定するためのフィールドとを有している。この例では、送信元IPアドレスと送信先IPアドレスとによってホスト組み合わせを定義しているが、他のデータによってホスト組み合わせを定義するようにしてもよい。
この例における第1レコードは、IPアドレスが「10.20.30.40」である送信元のホスト装置と、IPアドレスが「20.30.40.50」である送信先のホスト装置との組み合わせに対して、ホスト組み合わせID「HtoH−01」が割り振られていることを示している。
この例における第2レコードは、IPアドレスが「30.40.50.60」である送信元のホスト装置と、IPアドレスが「20.30.40.50」である送信先のホスト装置との組み合わせに対して、ホスト組み合わせID「HtoH−02」が割り振られていることを示している。以上で、ホスト組み合わせテーブルについての説明を終える。
ドライバ113による割り当て処理フロー(図5)については、上述した実施の形態と同様である。
解析部117のモジュール構成(図6)についても、上述した実施の形態と同様である。
実施の形態2に係る解析部117における処理について説明する。図18に、実施の形態2に係る解析部117の処理フローを示す。S701乃至S709は、上述した実施の形態と同様である。
本実施の形態では、S707においてコネクションデータがコネクションテーブルに登録されていると判定した場合、あるいはS709の処理の後に、生成部603は、ホスト組み合わせ特定処理を実行する(S1801)。
図19に、ホスト組み合わせ特定処理フローを示す。生成部603は、パケットヘッダからホスト組み合わせデータを抽出する(S1901)。ホスト組み合わせデータには、送信元IPアドレスと送信先IPアドレスとが含まれている。生成部603は、ホスト組み合わせデータがホスト組み合わせテーブル(図17)に登録されているか否かを判定する(S1903)。
ホスト組み合わせデータがホスト組み合わせテーブルに登録されていると判定した場合には、ホスト組み合わせ特定処理を終える。
ホスト組み合わせデータがホスト組み合わせテーブルに登録されていないと判定した場合には、生成部603は、ホスト組み合わせテーブルにレコードを追加する(S1905)。新たなレコードには、新たなホスト組み合わせID、送信元IPアドレス及び送信先IPアドレスが設定される。
ホスト組み合わせ特定処理(図18のS1801)を終えると、端子Aを介して図7Bに示したS711の処理に戻る。
S711において生成部603がインデックステーブルに追加するレコードには、パケットIDとコネクションIDとホスト組み合わせIDとが設定される。ホスト組み合わせIDは、ホスト組み合わせテーブルに基づいて特定される。図7Bに示したS713乃至S721の処理については、上述した実施の形態と同様である。解析部117における処理についての説明を終える。
次に、本実施の形態における収集データ405について説明する。図20に、実施の形態2に係る収集データ405の例を示す。この例における収集データも、同じコネクションに係るパケットを連結している。収集データ405dは、コネクションID「CN−11」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「0」であり、2番目のパケットの先頭オフセットが「624」である。収集データ405eは、コネクションID「CN−12」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「62004」であり、2番目のパケットの先頭オフセットが「63050」である。収集データ405fは、コネクションID「CN−13」に係るパケットを14個連結している。
収集データ405dと収集データ405eとは、ホスト組み合わせIDが「HtoH−01」である点で共通する。本実施の形態では、ホスト組み合わせIDが共通する収集データ405dと収集データ405eとをまとめて扱うようにする。尚、収集データ405fのホスト組み合わせIDは「HtoH−02」であり、収集データ405fは単独で扱われる。
次に、本実施の形態におけるメタデータ403について説明する。図21に、図20に示した収集データ405dに対するメタデータ405dの例を示す。この例のヘッダ部は、このメタデータが、コネクションID「CN−11」のコネクションに係るパケットの収集データ405dに対応することを示している。また、この例のヘッダ部は、このコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2000」が送信元に相当し、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、この例のヘッダ部は、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例のテーブル部において、1番目のパケットは、パケットID「PC−011」で特定され、相対オフセット「0」を先頭に格納されていることを示している。相対オフセットは、収集データの先頭位置をオフセット「0」とした相対的な位置を示している。2番目のパケットは、パケットID「PC−016」で特定され、相対オフセット「624」を先頭に格納されていることを示している。
図22に、図20に示した収集データ405eに対するメタデータ405eの例を示す。この例のヘッダ部は、このメタデータが、コネクションID「CN−12」のコネクションに係るパケットの収集データ405eに対応することを示している。また、この例のヘッダ部は、このコネクションについて、IPアドレス「10.20.30.40」のホスト装置におけるポート番号「2100」が送信元に相当し、IPアドレス「20.30.40.50」のホスト装置におけるポート番号「80」が送信先に相当することを示している。また、この例のヘッダ部は、このコネクションにおける第4層のプロトコルは、TCPであることも示している。
この例のテーブル部において、1番目のパケットは、パケットID「PC−012」で特定され、相対オフセット「0」を先頭に格納されていることを示している。2番目のパケットは、パケットID「PC−013」で特定され、相対オフセット「1046」を先頭に格納されていることを示している。
続いて、メタデータ記憶部809に記憶される上位メタデータ1401について説明する。図23に、実施の形態2に係る上位メタデータ1401の例を示す。上位メタデータ1401は、ヘッダ部とテーブル部とを有している。ヘッダ部には、ホスト組み合わせIDを設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信先IPアドレスを設定するためのフィールドとが含まれている。ホスト組み合わせIDは、収集データ405をまとめるキーとなる特性に係る識別子の例である。
テーブル部のレコードには、コネクションIDを設定するためのフィールドと、開始オフセットを設定するためのフィールドとが設けられている。この例のテーブル部の第1レコードは、1番目のメタデータ403dがコネクションID「CN−11」で特定され、1番目の収集データ405dが収集データ記憶部807のオフセット「0」を先頭に格納されていることを示している。この例のテーブル部の第2レコードは、2番目のメタデータ403eがコネクションID「CN−12」で特定され、2番目の収集データ405eが収集データ記憶部807のオフセット「62004」を先頭に格納されていることを示している。
格納処理部125のモジュール構成は、上述した実施の形態と同様である。
格納処理部125における処理は、図11に示した通りである。S1101乃至S1105の処理については、上述した実施の形態と同様である。本実施の形態では、S1107において分別部805がパケット分別処理(B)を実行する。
図24に、パケット分別処理(B)フローを示す。S1201及びS1203の処理は、図12に示したパケット分別処理(A)の場合と同様である。分別部805は、第2分別処理を実行する(S2401)。
図25に、第2分別処理フローを示す。S1301乃至S1309については、図13に示した第1分別処理の場合と同様である。
S1305の処理に続いて、分別部805は、ホスト組み合わせIDに相当する上位メタデータ1401が設定済みであるか否かを判定する(S2501)。具体的には、分別部805は、S1105で特定したレコードに含まれるホスト組み合わせIDを特定し、メタデータ記憶部809に記憶されている上位メタデータ1401のいずれかに当該ホスト組み合わせIDが設定されているか否かを判定する。
ホスト組み合わせIDに相当する上位メタデータ1401が設定されていないと判定した場合には、分別部805は、メタデータ記憶部809に上位メタデータ1401を生成する。上位メタデータ1401のヘッダ部には、ホスト組み合わせID、送信元IPアドレス及び送信先IPアドレスが設定される。送信元IPアドレスと送信先IPアドレスとは、ホスト組み合わせテーブルから取得される。また、分別部805は、テーブル部に最初のレコードを設定する(S2503)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
一方、ホスト組み合わせIDに相当する上位メタデータ1401が設定されていると判定した場合には、分別部805は、当該上位メタデータ1401のテーブル部にレコードを追加する(S2505)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
第2分別処理を終えると、図24のパケット分別処理(B)も終え、図11に示したS1109の処理に戻る。図11に示したS1109乃至S1117の処理については、上述した実施の形態と同様である。
この実施の形態によれば、ある特性(例えば、コネクション)に従って分別されたパケットを、更に他の特性に従ってまとめて扱うことができる。例えば、ある特性と他の特性とに係るパケットを分析しようとする場合に便利である
具体的には、ある特性に従って分別されたパケットを、更にパケットの送信元装置と送信先装置との組み合わせに従ってまとめて扱うことができる。
[実施の形態3]
本実施の形態では、パケットの送信元サブネットワークと送信先サブネットワークの組み合わせが共通する収集データ同士をまとめて格納する例について説明する。
ネットワーク監視システムの構成は、上述した実施の形態と同様である。また、オブジェクト401の構成は、実施の形態2と同様である。
図26に、実施の形態3に係るインデックステーブルの例を示す。上述した実施の形態と同様に、インデックステーブルには、パケット毎に、当該パケットの特性が設定されている。この例では、パケットの特性として、コネクションIDの他にサブネット組み合わせIDが設定されている。サブネット組み合わせIDは、送信元であるサブネットワークと送信先であるサブネットワークとの組み合わせを特定するための識別子である。
この例は、第1レコードにおいて、パケットID「PC−011」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−01」で特定されることを示している。
この例は、第2レコードにおいて、パケットID「PC−012」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−01」で特定されることを示している。
この例は、第3レコードにおいて、パケットID「PC−013」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−01」で特定されることを示している。
この例は、第4レコードにおいて、パケットID「PC−014」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−02」で特定されることを示している。
この例は、第5レコードにおいて、パケットID「PC−015」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−02」で特定されることを示している。
この例は、第6レコードにおいて、パケットID「PC−016」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットに係るサブネット組み合わせは、サブネット組み合わせID「StoS−01」で特定されることを示している。以上で、インデックステーブルについての説明を終える。
本実施の形態におけるコネクションテーブルは、図16に示した通りである。
本実施の形態では、分別データ記憶部123において、上述したコネクションテーブルの他に、サブネット組み合わせテーブルも記憶している。図27に、サブネット組み合わせテーブルの例を示す。サブネット組み合わせテーブルには、サブネット組み合わせ毎に、サブネット組み合わせを定義するデータが設定されている。サブネット組み合わせテーブルは、サブネット組み合わせ毎のレコードを有している。レコードは、サブネット組み合わせIDを設定するためのフィールドと、送信元サブネットアドレスを設定するためのフィールドと、送信先サブネットアドレスを設定するためのフィールドとを有している。この例では、送信元サブネットアドレスと送信先サブネットアドレスとによってサブネット組み合わせを定義しているが、他のデータによってサブネット組み合わせを定義するようにしてもよい。
この例における第1レコードは、サブネットアドレスが「10.20.30.0/24」である送信元のサブネットワークと、サブネットアドレスが「20.30.40.0/24」である送信先のサブネットワークとの組み合わせに対して、ホスト組み合わせID「StoS−01」が割り振られていることを示している。
この例における第2レコードは、サブネットアドレスが「30.40.50.0/24」である送信元のサブネットワークと、サブネットアドレスが「20.30.40.0/24」である送信先のサブネットワークとの組み合わせに対して、ホスト組み合わせID「StoS−02」が割り振られていることを示している。以上で、ホスト組み合わせテーブルについての説明を終える。
ドライバ113による割り当て処理フロー(図5)については、上述した実施の形態と同様である。
解析部117のモジュール構成(図6)についても、上述した実施の形態と同様である 実施の形態3に係る解析部117における処理について説明する。図28に、実施の形態3に係る解析部117の処理フローを示す。S701乃至S709は、上述した実施の形態と同様である。
本実施の形態では、S707においてコネクションデータがコネクションテーブルに登録されていると判定した場合、あるいはS709の処理の後に、生成部603は、サブネット組み合わせ特定処理を実行する(S2801)。
図29に、サブネット組み合わせ特定処理フローを示す。生成部603は、パケットヘッダからホスト組み合わせデータを抽出する(S2901)。ホスト組み合わせデータには、送信元IPアドレスと送信先IPアドレスとが含まれている。
生成部603は、サブネット組み合わせデータを生成する(S2903)。サブネット組み合わせデータは、送信元サブネットアドレスと送信先サブネットアドレスとを有している。送信元サブネットアドレスは、送信元IPアドレスについて、24ビットのネットワーク部を特定し、CIDR(Classless Inter-Domain Routing)形式のアドレスに改めることによって特定される。送信先サブネットアドレスも、送信先IPアドレスについて、24ビットのネットワーク部を特定し、CIDR形式のアドレスに改めることによって特定される。あるいは、生成部603は、候補となるサブネットワークについてCIDR形式のアドレスで予め設定しておき、その候補の中からサブネットアドレスを選択するようにしてもよい。例えば、「10.20.0.0/16」の候補が予め設定されており、送信元IPアドレスが「10.20.30.40」である場合には、送信元サブネットアドレスを「10.20.0.0/16」とする。
生成部603は、サブネット組み合わせデータがサブネット組み合わせテーブル(図27)に登録されているか否かを判定する(S2905)。
サブネット組み合わせデータがサブネット組み合わせテーブルに登録されていると判定した場合には、サブネット組み合わせ特定処理を終える。
サブネット組み合わせデータがサブネット組み合わせテーブルに登録されていないと判定した場合には、生成部603は、サブネット組み合わせテーブルにレコードを追加する(S1905)。新たなレコードには、新たなサブネット組み合わせID、送信元サブネットアドレス及び送信先サブネットアドレスが設定される。
サブネット組み合わせ特定処理(図28のS2801)を終えると、端子Aを介して図7Bに示したS711の処理に戻る。
S711において生成部603がインデックステーブルに追加するレコードには、パケットIDとコネクションIDとサブネット組み合わせIDとが設定される。サブネット組み合わせIDは、サブネット組み合わせテーブルに基づいて特定される。図7Bに示したS713乃至S721の処理については、上述した実施の形態と同様である。以上で、解析部117における処理についての説明を終える。
次に、本実施の形態における収集データ405について説明する。図30に、実施の形態3に係る収集データ405の例を示す。この例における収集データも、同じコネクションに係るパケットを連結している。収集データ405gは、コネクションID「CN−11」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「0」であり、2番目のパケットの先頭オフセットが「624」である。収集データ405hは、コネクションID「CN−12」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「62004」であり、2番目のパケットの先頭オフセットが「63050」である。収集データ405iは、コネクションID「CN−13」に係るパケットを14個連結している。
収集データ405gと収集データ405hとは、サブネット組み合わせIDが「StoS−01」である点で共通する。本実施の形態では、サブネット組み合わせIDが共通する収集データ405gと収集データ405hとをまとめて扱うようにする。尚、収集データ405iのサブネット組み合わせIDは「StoS−02」であり、収集データ405iは単独で扱われる。
図30に示した収集データ405gに対するメタデータ405gは、図21に示したメタデータ405dと同様である。また、図30に示した収集データ405hに対するメタデータ405hは、図22に示したメタデータ405eと同様である。
続いて、本実施の形態に係る上位メタデータ1401について説明する。図31に、実施の形態3に係る上位メタデータ1401の例を示す。上位メタデータ1401は、前述と同様にヘッダ部とテーブル部とを有している。ヘッダ部には、サブネット組み合わせIDを設定するためのフィールドと、送信元サブネットアドレスを設定するためのフィールドと、送信先サブネットアドレスを設定するためのフィールドとが含まれている。サブネット組み合わせIDは、収集データ405をまとめるキーとなる特性に係る識別子の例である。
テーブル部のレコードには、コネクションIDを設定するためのフィールドと、開始オフセットを設定するためのフィールドとが設けられている。この例のテーブル部の第1レコードは、1番目のメタデータ403gがコネクションID「CN−11」で特定され、1番目の収集データ405gが収集データ記憶部807のオフセット「0」を先頭に格納されていることを示している。この例のテーブル部の第2レコードは、2番目のメタデータ403hがコネクションID「CN−12」で特定され、2番目の収集データ405hが収集データ記憶部807のオフセット「62004」を先頭に格納されていることを示している。
格納処理部125のモジュール構成は、上述した実施の形態と同様である。
格納処理部125における処理は、図11に示した通りである。S1101乃至S1105の処理については、上述した実施の形態と同様である。本実施の形態では、S1107において分別部805がパケット分別処理(C)を実行する。
図32に、パケット分別処理(C)フローを示す。S1201及びS1203の処理は、図12に示したパケット分別処理(A)の場合と同様である。分別部805は、第3分別処理を実行する(S3201)。
図33に、第3分別処理フローを示す。S1301乃至S1309については、図13に示した第1分別処理の場合と同様である。
S1305の処理に続いて、分別部805は、サブネット組み合わせIDに相当する上位メタデータ1401が設定済みであるか否かを判定する(S3301)。具体的には、分別部805は、S1105で特定したレコードに含まれるサブネット組み合わせIDを特定し、メタデータ記憶部809に記憶されている上位メタデータ1401のいずれかに当該サブネット組み合わせIDが設定されているか否かを判定する。
サブネット組み合わせIDに相当する上位メタデータ1401が設定されていないと判定した場合には、分別部805は、メタデータ記憶部809に上位メタデータ1401を生成する。上位メタデータ1401のヘッダ部には、サブネット組み合わせID、送信元サブネットアドレス及び送信先サブネットアドレスが設定される。送信元サブネットアドレスと送信先サブネットアドレスとは、サブネット組み合わせテーブルから取得される。また、分別部805は、テーブル部に最初のレコードを設定する(S3303)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
一方、サブネット組み合わせIDに相当する上位メタデータ1401が設定されていると判定した場合には、分別部805は、当該上位メタデータ1401のテーブル部にレコードを追加する(S3305)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
第3分別処理を終えると、図32のパケット分別処理(C)も終え、図11に示したS1109の処理に戻る。図11に示したS1109乃至S1117の処理については、上述した実施の形態と同様である。
この実施の形態によれば、ある特性(例えば、コネクション)に従って分別されたパケットを、更にパケットの送信元サブネットワークと送信先サブネットワークとの組み合わせに従ってまとめて扱うことができる。
[実施の形態4]
本実施の形態では、ネットワーク品質が共通する収集データ同士をまとめて格納する例について説明する。ネットワーク品質は、監視対象ネットワーク103における通信状態に関する品質を意味する。
ネットワーク監視システムの構成は、上述した実施の形態と同様である。また、オブジェクト401の構成は、実施の形態2及び3と同様である。
図34に、実施の形態4に係るインデックステーブルの例を示す。上述した実施の形態と同様に、インデックステーブルには、パケット毎に、当該パケットの特性が設定されている。この例では、パケットの特性として、コネクションIDの他にネットワーク品質が設定されている。以下、理解しやすくするために、ネットワーク品質の内容をそのまま示して説明する。但し、実装する場合には、ネットワーク品質の内容に相当する識別子を用いる。つまり、この例におけるネットワーク品質の内容は、通信品質識別子に相当する。
この例は、第1レコードにおいて、パケットID「PC−001」が割り振られたパケットに係るコネクションは、コネクションID「CN−01」で特定され、更に当該パケットに係るネットワーク品質は「ロス多発」であることを示している。
この例は、第2レコードにおいて、パケットID「PC−002」が割り振られたパケットに係るコネクションは、コネクションID「CN−02」で特定され、更に当該パケットに係るネットワーク品質は「ロス多発」であることを示している。
この例は、第3レコードにおいて、パケットID「PC−003」が割り振られたパケットに係るコネクションは、コネクションID「CN−02」で特定され、更に当該パケットに係るネットワーク品質は「ロス多発」であることを示している。
この例は、第4レコードにおいて、パケットID「PC−004」が割り振られたパケットに係るコネクションは、コネクションID「CN−03」で特定され、更に当該パケットに係るネットワーク品質は「RTT増大」であることを示している。
この例は、第5レコードにおいて、パケットID「PC−005」が割り振られたパケットに係るコネクションは、コネクションID「CN−03」で特定され、更に当該パケットに係るネットワーク品質は「RTT増大」であることを示している。
この例は、第6レコードにおいて、パケットID「PC−006」が割り振られたパケットに係るコネクションは、コネクションID「CN−01」で特定され、更に当該パケットに係るネットワーク品質は「ロス多発」であることを示している。
本実施の形態におけるコネクションテーブルは、図3に示した通りである。
ドライバ113による割り当て処理フロー(図5)については、上述した実施の形態と同様である。
解析部117のモジュール構成(図6)についても、上述した実施の形態と同様である。
実施の形態4に係る解析部117における処理について説明する。図7Aに示したS701乃至S709については、上述した実施の形態と同様である。
本実施の形態では、端子Aを介して図35に示した処理に移る。S711において生成部603がインデックステーブルに追加するレコードには、パケットIDとコネクションIDが設定される。
生成部603は、ネットワーク品質設定処理を実行する(S3501)。図36に、ネットワーク品質設定処理フローを示す。L4解析部131は、当該パケットに係るコネクションの状態を解析し、ネットワーク品質を特定する(S3601)。L4解析部131は、例えばコネクションの一定期間内におけるロスの割合を特定する。あるいは、L4解析部131は、RTTの増加率を特定する。
L4解析部131は、ネットワーク品質が異常であるか否かを判定する(S3603)。L4解析部131は、例えばロスの割合が閾値を越えている場合に、ネットワーク品質が異常であると判定する。「ロス多発」は、この場合のネットワーク品質を意味する。あるいは、L4解析部131は、RTTの増加率が閾値を越えている場合に、ネットワーク品質が異常であると判定する。「RTT増大」は、この場合のネットワーク品質を意味する。
ネットワーク品質が異常であると判定した場合に、生成部603は、インデックスに相当するレコードにネットワーク品質の内容(例えば、「ロス多発」)を設定する(S3605)。ネットワーク品質が異常でないと判定した場合、つまりネットワーク品質が正常である場合には、ネットワーク品質の内容は設定せずに、初期値「正常」のままとする。あるいは、ネットワーク品質が異常でないと判定した場合に、生成部603は、インデックスに「正常」と設定するようにしてもよい。
ネットワーク品質設定処理を終えると、図35に示したS713の処理に戻る。S713乃至S721の処理については、上述した実施の形態の場合と同様である。
次に、本実施の形態における収集データ405について説明する。図37に、実施の形態4に係る収集データ405の例を示す。この例における収集データも、同じコネクションに係るパケットを連結している。収集データ405jは、コネクションID「CN−01」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「0」であり、2番目のパケットの先頭オフセットが「624」である。収集データ405kは、コネクションID「CN−02」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「62004」であり、2番目のパケットの先頭オフセットが「63050」である。収集データ405lは、コネクションID「CN−03」に係るパケットを14個連結している。
収集データ405jと収集データ405kとは、ネットワーク品質が「ロス多発」である点で共通する。本実施の形態では、ネットワーク品質が共通する収集データ405jと収集データ405kとをまとめて扱うようにする。尚、収集データ405lのサブネット組み合わせIDは「RTT増大」であり、収集データ405lは単独で扱われる。
続いて、本実施の形態に係る上位メタデータ1401について説明する。図38に、実施の形態4に係る上位メタデータ1401の例を示す。上位メタデータ1401は、前述と同様にヘッダ部とテーブル部とを有している。ヘッダ部には、ネットワーク品質を設定するためのフィールドが含まれている。ネットワーク品質は、収集データ405をまとめるキーとなる特性に係る識別子の例である。
テーブル部のレコードには、コネクションIDを設定するためのフィールドと、開始オフセットを設定するためのフィールドとが設けられている。この例のテーブル部の第1レコードは、1番目のメタデータ403jがコネクションID「CN−01」で特定され、1番目の収集データ405jが収集データ記憶部807のオフセット「0」を先頭に格納されていることを示している。この例のテーブル部の第2レコードは、2番目のメタデータ403kがコネクションID「CN−02」で特定され、2番目の収集データ405kが収集データ記憶部807のオフセット「62004」を先頭に格納されていることを示している。
格納処理部125のモジュール構成は、上述した実施の形態と同様である。
格納処理部125における処理は、図11に示した通りである。S1101乃至S1105の処理については、上述した実施の形態と同様である。本実施の形態では、S1107において分別部805がパケット分別処理(D)を実行する。
図39に、パケット分別処理(D)フローを示す。S1201及びS1203の処理は、図12に示したパケット分別処理(A)の場合と同様である。分別部805は、第4分別処理を実行する(S3901)。
図40に、第4分別処理フローを示す。S1301乃至S1309については、図13に示した第1分別処理の場合と同様である。
S1305の処理に続いて、分別部805は、当該ネットワーク品質の内容に相当する上位メタデータ1401が設定済みであるか否かを判定する(S4001)。具体的には、分別部805は、S1105で特定したレコードに含まれるネットワーク品質の内容を特定し、メタデータ記憶部809に記憶されている上位メタデータ1401のいずれかに当該ネットワーク品質の内容が設定されているか否かを判定する。
当該ネットワーク品質の内容に相当する上位メタデータ1401が設定されていないと判定した場合には、分別部805は、メタデータ記憶部809に上位メタデータ1401を生成する。上位メタデータ1401のヘッダ部には、当該ネットワーク品質の内容が設定される。また、分別部805は、テーブル部に最初のレコードを設定する(S4003)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
一方、当該ネットワーク品質の内容に相当する上位メタデータ1401が設定されていると判定した場合には、分別部805は、当該上位メタデータ1401のテーブル部にレコードを追加する(S4005)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
第4分別処理を終えると、図32のパケット分別処理(D)も終え、図11に示したS1109の処理に戻る。図11に示したS1109乃至S1117の処理については、上述した実施の形態と同様である。
この実施の形態によれば、ある特性(例えば、コネクション)に従って分別されたパケットを、更に通信品質に従ってまとめて扱うことができる。
[実施の形態5]
本実施の形態では、HTTP(Hypertext Transfer Protocol)リクエスト(以下、リクエストという。)先のURLが共通する収集データ同士をまとめて格納する例について説明する。
ネットワーク監視システムの構成は、上述した実施の形態と同様である。また、オブジェクト401の構成は、実施の形態2乃至4と同様である。
図41に、実施の形態5に係るインデックステーブルの例を示す。上述した実施の形態と同様に、インデックステーブルには、パケット毎に、当該パケットの特性が設定されている。この例では、パケットの特性として、コネクションIDの他にリクエスト先のURLを特定するURLIDが設定されている。
この例は、第1レコードにおいて、パケットID「PC−011」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
この例は、第2レコードにおいて、パケットID「PC−012」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
この例は、第3レコードにおいて、パケットID「PC−013」が割り振られたパケットに係るコネクションは、コネクションID「CN−12」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
この例は、第4レコードにおいて、パケットID「PC−014」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
この例は、第5レコードにおいて、パケットID「PC−015」が割り振られたパケットに係るコネクションは、コネクションID「CN−13」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
この例は、第6レコードにおいて、パケットID「PC−016」が割り振られたパケットに係るコネクションは、コネクションID「CN−11」で特定され、更に当該パケットのリクエスト先のURLは「URL−01」で特定されることを示している。
本実施の形態におけるコネクションテーブルは、図16に示した通りである。
続いて、分別データ記憶部123に記憶されるURLテーブルについて説明する。図42に、URLテーブルの例を示す。URLテーブルは、URL毎に割り振られたURLIDを特定するためのテーブルある。URLテーブルは、URL毎のレコードを有している。レコードは、URLIDを設定するためのフィールドと、URLを設定するためのフィールドとを有している。
この例における第1レコードは、URL「www.example.com」に対して、URLID「URL−01」が割り振られていることを示している。同じく第2レコードは、URL「www.example2.com/sports」に対して、URLID「URL−02」が割り振られていることを示している。
次に、分別データ記憶部123に記憶される関連テーブルについて説明する。図43に、関連テーブルの例を示す。関連テーブルは、URLIDとコネクションとを関連付けるためのテーブルである。関連テーブルは、コネクションに基づいてURLIDを推定する場合に用いられる。関連テーブルは、URLID毎のレコードを有している。レコードは、URLIDを設定するためのフィールドと、コネクションIDを設定するためのフィールドとを有している。
この例における第1レコードは、コネクションID「CN−11」のコネクションに係るパケットによって、URLID「URL−01」で特定されるURLに対するリクエストが発行されたことを示している。同じく第2レコードは、コネクションID「CN−12」のコネクションに係るパケットによって、URLID「URL−01」で特定されるURLに対するリクエストが発行されたことを示している。同じく第3レコードは、コネクションID「CN−13」のコネクションに係るパケットによって、URLID「URL−01」で特定されるURLに対するリクエストが発行されたことを示している。
ドライバ113による割り当て処理フロー(図5)については、上述した実施の形態と同様である。
解析部117のモジュール構成(図6)についても、上述した実施の形態と同様である。
実施の形態5に係る解析部117における処理について説明する。図7Aに示したS701乃至S709については、上述した実施の形態と同様である。
本実施の形態では、端子Aを介して図44に示した処理に移る。S711において生成部603がインデックステーブルに追加するレコードには、パケットIDとコネクションIDが設定される。
L4解析部131は、前述と同様にL4解析処理を実行する(S713)。
続いて、生成部603は、URL設定処理を実行する(S4401)。図45に、URL設定処理フローを示す。生成部603は、コネクションIDが既に関連テーブルに設定されているか否かを判定する(S4501)。
コネクションIDが既に関連テーブルに設定されていると判定した場合には、生成部603は、関連テーブルにおいてコネクションIDに対応するURLIDを特定し、当該URLIDをインデックスに設定する(S4513)。
コネクションIDが未だ関連テーブルに設定されていないと判定した場合には、L7解析部133は、当該パケットのTCPペイロードにHTTPリクエストが含まれているか否かを判定する(S4503)。
当該パケットのTCPペイロードにHTTPリクエストが含まれていないと判定した場合には、URLIDを設定すべき対象ではないので、そのままURL設定処理を終了する。
当該パケットのTCPペイロードにHTTPリクエストが含まれていると判定した場合には、L7解析部133は、HTTPリクエスト先のURLを抽出する(S4505)。
生成部603は、抽出されたURLがURLテーブルに設定されているか否かを判定する(S4507)。抽出されたURLがURLテーブルに設定されていないと判定した場合には、生成部603は、URLテーブルにレコードを追加する(S4509)。新しいレコードにおいて、新しいURLIDに当該URLが対応付けられる。
抽出されたURLがURLテーブルに設定されていると判定した場合には、S4511の処理に移る。
生成部603は、関連テーブルにレコードを追加する(S4511)。新しいレコードにおいて、URLIDにコネクションIDが対応付けられる。
生成部603は、当該URLIDをインデックスに相当するレコードに設定して(S4513)、URL設定処理を終える。
URL設定処理を終えると、図44に示したS715の処理に移る。S715乃至S721の処理については、上述した実施の形態と同様である。以上で、解析部117における処理についての説明を終える。
次に、本実施の形態における収集データ405について説明する。図46に、実施の形態5に係る収集データ405の例を示す。この例における収集データも、同じコネクションに係るパケットを連結している。収集データ405mは、コネクションID「CN−11」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「0」であり、2番目のパケットの先頭オフセットが「624」である。収集データ405nは、コネクションID「CN−12」に係るパケットを3個連結している。1番目のパケットの先頭オフセットが「62004」であり、2番目のパケットの先頭オフセットが「63050」である。収集データ405lは、コネクションID「CN−03」に係るパケットを14個連結している。1番目のパケットの先頭オフセットが「103340」である。
収集データ405mと収集データ405nと収集データ405oとはURLIDが「URL−01」である点で共通する。本実施の形態では、リクエスト先のURLが共通する収集データ405mと収集データ405nと収集データ405oとをまとめて扱うようにする。
続いて、本実施の形態に係る上位メタデータ1401について説明する。図47に、実施の形態5に係る上位メタデータ1401の例を示す。上位メタデータ1401は、前述と同様にヘッダ部とテーブル部とを有している。ヘッダ部には、URLIDを設定するためのフィールドが含まれている。URLIDは、収集データ405をまとめるキーとなる特性に係る識別子の例である。
テーブル部のレコードには、コネクションIDを設定するためのフィールドと、開始オフセットを設定するためのフィールドとが設けられている。この例のテーブル部の第1レコードは、1番目のメタデータ403mがコネクションID「CN−11」で特定され、1番目の収集データ405mが収集データ記憶部807のオフセット「0」を先頭に格納されていることを示している。この例のテーブル部の第2レコードは、2番目のメタデータ403nがコネクションID「CN−12」で特定され、2番目の収集データ405nが収集データ記憶部807のオフセット「62004」を先頭に格納されていることを示している。この例のテーブル部の第3レコードは、3番目のメタデータ403oがコネクションID「CN−13」で特定され、3番目の収集データ405oが収集データ記憶部807のオフセット「103340」を先頭に格納されていることを示している。
格納処理部125のモジュール構成は、上述した実施の形態と同様である。
格納処理部125における処理は、図11に示した通りである。S1101乃至S1105の処理については、上述した実施の形態と同様である。本実施の形態では、S1107において分別部805がパケット分別処理(E)を実行する。
図48に、パケット分別処理(E)フローを示す。S1201及びS1203の処理は、図12に示したパケット分別処理(A)の場合と同様である。分別部805は、第5分別処理を実行する(S4801)。
図49に、第5分別処理フローを示す。S1301乃至S1309については、図13に示した第1分別処理の場合と同様である。
S1305の処理に続いて、分別部805は、当該URLIDに相当する上位メタデータ1401が設定済みであるか否かを判定する(S4901)。具体的には、分別部805は、S1105で特定したレコードに含まれるURLIDを特定し、メタデータ記憶部809に記憶されている上位メタデータ1401のいずれかに当該URLIDが設定されているか否かを判定する。
当該URLIDに相当する上位メタデータ1401が設定されていないと判定した場合には、分別部805は、メタデータ記憶部809に上位メタデータ1401を生成する。上位メタデータ1401のヘッダ部には、当該URLIDが設定される。また、分別部805は、テーブル部に最初のレコードを設定する(S4903)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
一方、当該ネットワーク品質の内容に相当する上位メタデータ1401が設定されていると判定した場合には、分別部805は、当該上位メタデータ1401のテーブル部にレコードを追加する(S4905)。レコードには、コネクションIDと収集データ405の先頭位置を指すオフセットとが設定される。
第5分別処理を終えると、図48のパケット分別処理(E)も終え、図11に示したS1109の処理に戻る。図11に示したS1109乃至S1117の処理については、上述した実施の形態と同様である。
尚、L4解析部131においてコネクションの終了を検出した時点で、当該オネクションに関する関連テーブルのレコードを削除するようにしてもよい。このようにすれば、コネクションが終了した後は、当該URLIDとコネクションとの関連を取り消すことができる。
この実施の形態によれば、ある特性(例えば、コネクション)に従って分別されたパケットを、更にリクエスト先のURLに従ってまとめて扱うことができる。
[実施の形態6]
本実施の形態では、指定された特性をキーとして、収集データ405をまとめる例について説明する。
図50に、実施の形態6に係るネットワーク監視システムの構成例を示す。ネットワーク監視装置101は、更にマネージャ部5001を有する。マネージャ部5001は、一又は複数の特性を指定する格納条件を受け付け、解析部117及び格納処理部125を制御する。
図51に、マネージャ部5001の処理フローを示す。マネージャ部5001は、ユーザ操作によって、一又は複数の特性を指定する格納条件を受け付ける(S5101)。あるいは、マネージャ部5001は、他のモジュール又は他の装置から、一又は複数の特性を指定する格納条件を受け付ける。
格納条件を受け付けると、マネージャ部5001は、受け付けた格納条件の指定データを解析部117と格納処理部125とへ渡す(S5103)。そして、S5101に戻って、格納条件を受け付ける処理を繰り返す。
図52Aに、実施の形態6に係る解析部117の処理フローを示す。受付部601は、格納条件の指定データを受けたか否かを判定する(S5201)。格納条件の指定データを受けたと判定した場合には、解析部117は格納条件の指定データを記憶部607に記憶する(S5203)。格納条件の指定データを受けていないと判定した場合には、そのままS701の処理に移る。
S701乃至S709については、上述した実施の形態と同様である。端子Cを介して、図52Bに示した処理に移る。
生成部603は、指定データにおいて「ホスト組み合わせ」が指定されているか否かを判定する(S5205)。指定データにおいて「ホスト組み合わせ」が指定されていると判定した場合には、生成部603は、上述したホスト組み合わせ特定処理を実行する(S5207)。指定データにおいて「ホスト組み合わせ」が指定されていないと判定した場合には、生成部603は、ホスト組み合わせ特定処理を実行しない。
生成部603は、指定データにおいて「サブネット組み合わせ」が指定されているか否かを判定する(S5209)。指定データにおいて「サブネット組み合わせ」が指定されていると判定した場合には、生成部603は、上述したサブネット組み合わせ特定処理を実行する(S5211)。指定データにおいて「サブネット組み合わせ」が指定されていないと判定した場合には、生成部603は、サブネット組み合わせ特定処理を実行しない。
S711において生成部603がインデックステーブルに追加するレコードには、パケットIDとコネクションIDとが設定される。ホスト組み合わせ特定処理を実行した場合には、ホスト組み合わせIDもレコードに設定される。また、サブネット組み合わせ特定処理を実行した場合には、サブネット組み合わせIDもレコードに設定される。
尚、本実施の形態に係るインデックステーブルのレコードは、パケットIDを設定するためのフィールドと、コネクションIDを設定するためのフィールドと、ホスト組み合わせIDを設定するためのフィールドと、サブネット組み合わせIDを設定するためのフィールドと、ネットワーク品質の内容を設定するためのフィールドと、URLIDを設定するためのフィールドとを有している。
生成部603は、指定データにおいて「ネットワーク品質」が指定されているか否かを判定する(S5213)。指定データにおいて「ネットワーク品質」が指定されていると判定した場合には、生成部603は、上述したネットワーク品質設定処理を実行する(S5215)。指定データにおいて「ネットワーク品質」が指定されていないと判定した場合には、生成部603は、ネットワーク品質設定処理を実行しない。
S713の処理は、上述した実施の形態と同様である。端子Dを介して図52Cに示した処理に移る。
生成部603は、指定データにおいて「URL」が指定されているか否かを判定する(S5217)。指定データにおいて「URL」が指定されていると判定した場合には、生成部603は、上述したURL設定処理を実行する(S5219)。指定データにおいて「URL」が指定されていないと判定した場合には、生成部603は、URL設定処理を実行しない。
S717乃至S721の処理については、上述した実施の形態と同様である。端子Eを介して、図52Aに示したS5201の処理に戻って、上述の処理を繰り返す。
図53に、実施の形態6に係る格納処理部125の処理フローを示す。分別部805は、格納条件の指定データを受けたか否かを判定する(S5301)。格納条件の指定データを受けたと判定した場合には、分別部805は格納条件の指定データを記憶部803に記憶する(S5303)。格納条件の指定データを受けていないと判定した場合には、そのままS1101の処理に移る。
S1101、S1103、S1115及びS1117の処理については、上述した実施の形態と同様である。
分別部805は、パケット分別処理(F)を実行する(S5305)。図54Aに、パケット分別処理(F)フローを示す。S1201とS1203の処理については、上述した実施の形態と同様である。
分別部805は、指定データがあるか否かを判定する(S5401)。指定データがないと判定した場合には、分別部805は、第1分別処理を実行し(S5403)、パケット分別処理(F)を終える。
指定データがあると判定した場合には、分別部805は、指定データにおいて「ホスト組み合わせ」が指定されているか否かを判定する(S5405)。「ホスト組み合わせ」が指定されていると判定した場合には、分別部805は、上述した第2分別処理を実行する(S5407)。「ホスト組み合わせ」が指定されていないと判定した場合には、分別部805は、第2分別処理を実行しない。
続いて、分別部805は、指定データにおいて「サブネット組み合わせ」が指定されているか否かを判定する(S5409)。「サブネット組み合わせ」が指定されていると判定した場合には、分別部805は、上述した第3分別処理を実行する(S5411)。「サブネット組み合わせ」が指定されていないと判定した場合には、分別部805は、第3分別処理を実行しない。そして、端子Fを介して、図54Bに示す処理に移る。
続いて、分別部805は、指定データにおいて「ネットワーク品質」が指定されているか否かを判定する(S5413)。「ネットワーク品質」が指定されていると判定した場合には、分別部805は、上述した第4分別処理を実行する(S5415)。「ネットワーク品質」が指定されていないと判定した場合には、分別部805は、第4分別処理を実行しない。
続いて、分別部805は、指定データにおいて「URL」が指定されているか否かを判定する(S5417)。「URL」が指定されていると判定した場合には、分別部805は、上述した第5分別処理を実行する(S5419)。「URL」が指定されていないと判定した場合には、分別部805は、第5分別処理を実行しない。
そして、パケット分別処理(F)を終えると、図53に示したS1109の処理に戻る。S1109乃至S1113の処理については、上述した実施の形態と同様である。
この実施の形態によれば、ある特性(コネクション)に従って分別されたパケットを、受け付けた格納条件で指定された他の特性に従ってまとめて扱うことができる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、上で述べたネットワーク監視装置101は、コンピュータ装置であって、図22に示すように、メモリ2601とCPU2603とハードディスク・ドライブ(HDD)2605と表示装置2609に接続される表示制御部2607とリムーバブル・ディスク2611用のドライブ装置2613と入力装置2615とネットワークに接続するための通信部2617(図22では、2617a乃至2617c)とがバス2619で接続されている場合もある。なお、場合によっては、表示制御部2607、表示装置2609、ドライブ装置2613、入力装置2615は含まれない場合もある。オペレーティング・システム(OS:Operating System)及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、HDD2605に格納されており、CPU2603により実行される際にはHDD2605からメモリ2601に読み出される。必要に応じてCPU2603は、表示制御部2607、通信部2617、ドライブ装置2613を制御して、必要な動作を行わせる。なお、通信部2617のいずれかを介して入力されたデータは、他の通信部2617を介して出力される。CPU2603は、通信部2617を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ2601に格納され、必要があればHDD2605に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2611に格納されて頒布され、ドライブ装置2613からHDD2605にインストールされる。インターネットなどのネットワーク及び通信部2617を経由して、HDD2605にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2603、メモリ2601などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るパケット保存方法は、ネットワークからキャプチャしたパケットに順次順序識別子を割り当てると共に、当該パケットをバッファに格納する処理と、パケットをバッファから読み出して、当該パケットの特性に係る第1識別子を特定し、順序識別子と当該第1識別子とを対応付けるインデックスを生成する生成処理と、インデックスに含まれる順序識別子に対応するパケットをバッファから読み出して、インデックスに含まれる第1識別子に従って当該パケットを分別し、分別されたパケットを第1識別子毎に記憶部に格納する格納処理とを含む。
このようにすれば、キャプチャしたパケットを特性に応じてまとめる際の即時分析処理に対する負荷を軽減することができる。例えば、リスト解析のような煩雑な手順を要しないので、少ない資源及び小さい負荷で処理することができる。
また、上記格納処理において、分別されたパケットと共に、パケット毎の順序識別子を記憶部に格納するようにしてもよい。
このようにすれば、パケットをキャプチャした順序を特定することができる。例えば、キャプチャした順にパケットを並べ直すことに役立つ。
また、上記特性はパケットにおけるコネクションであってもよい。上記第1識別子はコネクション識別子であってもよい。上記生成処理において、パケットから送信元装置アドレス、送信元ポート識別子、送信先装置アドレス及び送信先ポート識別子を抽出し、当該送信元装置アドレス、当該送信元ポート識別子、当該送信先装置アドレス及び当該送信先ポート識別子に基づいてコネクション識別子を特定するようにしてもよい。
このようにすれば、コネクション毎にパケットを収集しようとする場合に、パケットのコネクションを特定する処理と、コネクションによってパケットを分別して格納する処理とを分離するので、処理負荷を分散させることができる。
更に、上記パケット保存方法は、生成処理において生成したインデックスを書き込む先を第1記憶領域から第2記憶領域に切り替える第1切り替え処理を含むようにしてもよい。上記パケット保存方法は、第1切り替え処理と同期して、格納処理においてインデックスを読み取る元を第2記憶領域から第1記憶領域に切り替える第2切り替え処理を含むようにしてもよい。
このようにすれば、インデックスを記憶するための領域の容量不足や記憶装置の処理待ちによる不具合を回避できる。
また、上記生成処理において、パケットの各々について、上記特性と異なる他の特性に係る第2識別子を特定し、インデックスに当該第2識別子を対応付けるようにしてもよい。上記格納処理において、第2識別子が共通する第1識別子に従って分別されたパケット同士を関連付ける
このようにすれば、ある特性に従って分別されたパケットを、更に他の特性に従ってまとめて扱うことができる。例えば、ある特性と他の特性とに係るパケットを分析しようとする場合に便利である。
また、上記他の特性は、パケットの送信元装置と送信先装置との組み合わせであってもよい。上記第2識別子は、装置組み合わせ識別子であってもよい。上記生成処理において、パケットから送信元装置アドレス及び送信先装置アドレスを抽出し、当該送信元装置アドレス及び当該送信先装置アドレスに基づいて装置組み合わせ識別子を特定するようにしてもよい。
このようにすれば、ある特性に従って分別されたパケットを、更にパケットの送信元装置と送信先装置との組み合わせに従ってまとめて扱うことができる。
また、上記他の特性は、パケットの送信元サブネットワークと送信先サブネットワークとの組み合わせであってもよい。上記第2識別子は、サブネットワーク組み合わせ識別子であってもよい。上記生成処理において、パケットから送信元装置アドレス及び送信先装置アドレスを抽出し、当該送信元装置アドレス及び当該送信先装置アドレスに基づいてサブネットワーク組み合わせ識別子を特定するようにしてもよい。
このようにすれば、ある特性に従って分別されたパケットを、更にパケットの送信元サブネットワークと送信先サブネットワークとの組み合わせに従ってまとめて扱うことができる。
また、上記他の特性は、上記ネットワークに係る通信品質であってもよい。上記第2識別子は、通信品質識別子であってもよい。上記生成処理において、パケットに係るコネクションの状態に関する解析によって通信品質識別子を特定するようにしてもよい。
このようにすれば、ある特性に従って分別されたパケットを、更に通信品質に従ってまとめて扱うことができる。
また、上記他の特性は、パケットによるリクエスト先のURLであってもよい。上記第2識別子は、URL識別子であってもよい。上記生成処理において、パケットから抽出した上記URLに基づいてURL識別子を特定するようにしてもよい。
このようにすれば、ある特性に従って分別されたパケットを、更にリクエスト先のURLに従ってまとめて扱うことができる。
また、上記パケット保存方法は、更に、上記他の特性を一又は複数指定する格納条件を受け付ける処理を含むようにしてもよい。上記生成処理において、格納条件によって指定された一又は複数の上記他の特性に応じるようにしてもよい。上記格納処理において、格納条件によって指定された一又は複数の上記他の特性に応じるようにしてもよい。
このようにすれば、ある特性に従って分別されたパケットを、受け付けた格納条件で指定された他の特性に従ってまとめて扱うことができる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークからキャプチャしたパケットに順次順序識別子を割り当てると共に、当該パケットをバッファに格納する処理と、
前記パケットを前記バッファから読み出して、当該パケットの特性に係る第1識別子を特定し、前記順序識別子と当該第1識別子とを対応付けるインデックスを生成する生成処理と、
前記インデックスに含まれる前記順序識別子に対応する前記パケットを前記バッファから読み出して、前記インデックスに含まれる前記第1識別子に従って当該パケットを分別し、分別された前記パケットを前記第1識別子毎に記憶部に格納する格納処理と
を含み、コンピュータにより実行されるパケット保存方法。
(付記2)
前記格納処理において、分別された前記パケットと共に、前記パケット毎の前記順序識別子を記憶部に格納する
付記1記載のパケット保存方法。
(付記3)
前記特性は前記パケットにおけるコネクションであり、
前記第1識別子はコネクション識別子であり、
前記生成処理において、前記パケットから送信元装置アドレス、送信元ポート識別子、送信先装置アドレス及び送信先ポート識別子を抽出し、当該送信元装置アドレス、当該送信元ポート識別子、当該送信先装置アドレス及び当該送信先ポート識別子に基づいて前記コネクション識別子を特定する
付記1又は2記載のパケット保存方法。
(付記4)
更に、
前記生成処理において生成した前記インデックスを書き込む先を第1記憶領域から第2記憶領域に切り替える第1切り替え処理と、
前記第1切り替え処理と同期して、前記格納処理において前記インデックスを読み取る元を前記2記憶領域から前記第1記憶領域に切り替える第2切り替え処理と
を含む、付記1乃至3のいずれか1つ記載のパケット保存方法。
(付記5)
前記生成処理において、前記パケットの各々について、前記特性と異なる他の特性に係る第2識別子を特定し、前記インデックスに当該第2識別子を対応付け、
前記格納処理において、前記第2識別子が共通する前記第1識別子に従って分別された前記パケット同士を関連付ける
付記1乃至4のいずれか1つ記載のパケット保存方法。
(付記6)
前記他の特性は、前記パケットの送信元装置と送信先装置との組み合わせであり、
前記第2識別子は、装置組み合わせ識別子であり、
前記生成処理において、前記パケットから送信元装置アドレス及び送信先装置アドレスを抽出し、当該送信元装置アドレス及び当該送信先装置アドレスに基づいて前記装置組み合わせ識別子を特定する
付記5記載のパケット保存方法。
(付記7)
前記他の特性は、前記パケットの送信元サブネットワークと送信先サブネットワークとの組み合わせであり、
前記第2識別子は、サブネットワーク組み合わせ識別子であり、
前記生成処理において、前記パケットから送信元装置アドレス及び送信先装置アドレスを抽出し、当該送信元装置アドレス及び当該送信先装置アドレスに基づいて前記サブネットワーク組み合わせ識別子を特定する
付記5記載のパケット保存方法。
(付記8)
前記他の特性は、前記ネットワークに係る通信品質であり、
前記第2識別子は、通信品質識別子であり、
前記生成処理において、前記パケットに係るコネクションの状態に関する解析によって前記通信品質識別子を特定する
付記5記載のパケット保存方法。
(付記9)
前記他の特性は、前記パケットによるリクエスト先のURLであり、
前記第2識別子は、URL識別子であり、
前記生成処理において、前記パケットから抽出した前記URLに基づいて前記URL識別子を特定する
付記5記載のパケット保存方法。
(付記10)
更に、
前記他の特性を一又は複数指定する格納条件を受け付ける処理
を含み、
前記生成処理及び前記格納処理において、前記格納条件によって指定された一又は複数の前記他の特性に応じる
付記5乃至9のいずれか1つ記載のパケット保存方法。
(付記11)
ネットワークからキャプチャしたパケットに順次順序識別子を割り当てると共に、当該パケットをバッファに格納する処理と、
前記パケットを前記バッファから読み出して、当該パケットの特性に係る第1識別子を特定し、前記順序識別子と当該第1識別子とを対応付けるインデックスを生成する生成処理と、
前記インデックスに含まれる前記順序識別子に対応する前記パケットを前記バッファから読み出して、前記インデックスに含まれる前記第1識別子に従って当該パケットを分別し、分別された前記パケットを前記第1識別子毎に記憶部に格納する格納処理と
をコンピュータに実行させるためのパケット保存プログラム。
(付記12)
ネットワークからキャプチャしたパケットに順次順序識別子を割り当てると共に、当該パケットをバッファに格納する第1格納処理部と、
前記パケットを前記バッファから読み出して、当該パケットの特性に係る第1識別子を特定し、前記順序識別子と当該第1識別子とを対応付けるインデックスを生成する生成部と、
前記インデックスに含まれる前記順序識別子に対応する前記パケットを前記バッファから読み出して、前記インデックスに含まれる前記第1識別子に従って当該パケットを分別し、分別された前記パケットを前記第1識別子毎に記憶部に格納する第2格納処理部と
を含むパケット保存装置。