(57)【要約】  サーバへの要求パケットとサーバからの応答パケットとを蓄積し、蓄積された要求パケットをサーバに送信して応答パケット（再現パケット）を取得し、取得した応答パケット（再現パケット）と蓄積した応答パケット（蓄積パケット）とを比較して異常を検出するパケット収集装置に関する。パケット収集装置は、収集された複数の応答パケットの各応答パケット６０に対して、データ部分６２をハッシュ値６２ａに変換すると共に、ヘッダ部分６１とハッシュ値変換前のデータ部分６２との全体のデータ長を示すデータ長情報６３ａを付加データとして付加することにより各応答パケット６０をハッシュ値６２ａとデータ長情報６３ａとを含むハッシュ変換パケット６０ａに変換する。パケット収集装置は、応答パケット６０から変換されたハッシュ変換パケット６０ａを蓄積する。
2010082289.tif 000002
【特許請求の範囲】
【請求項１】
ヘッダ部分とデータ部分とを含むパケットをネットワークを介して端末装置とやり取りする特定のサーバ装置に対して前記端末装置から送信された前記パケットであって前記サーバ装置に所定の処理を要求する複数の要求パケットと、前記サーバ装置から送信された前記パケットであって前記要求パケットに応答する複数の応答パケットとを、前記ネットワークから収集するパケット情報収集部と、
前記パケット情報収集部により収集された前記複数の応答パケットの各応答パケットに対して、前記データ部分を所定のハッシュ関数を用いてハッシュ値に変換すると共にハッシュ値変換前の前記データ部分のデータ長を示すデータ長情報を付加データとして付加することにより前記各応答パケットを前記ハッシュ値と前記付加データとを含むハッシュ変換パケットに変換するハッシュ変換部と、
前記パケット情報収集部により収集された前記複数の要求パケットと、前記ハッシュ変換部により各応答パケットから変換された複数の前記ハッシュ変換パケットとを情報を記憶する記憶装置に蓄積するパケット蓄積部と
を備えたことを特徴とするパケット収集装置。
【請求項２】
前記サーバ装置から送信される前記応答パケットは、
前記ヘッダ部分に前記ヘッダ部分と前記データ部分との全体のデータ長を示すデータ長情報を有し、
前記パケット収集装置は、さらに、
前記記憶装置に蓄積された前記複数の要求パケットを前記ネットワークを介して前記サーバ装置に送信し、送信された前記要求パケットに応答することによって前記サーバ装置から送信された複数の応答パケットを前記ネットワークから再現パケットとして収集する再現部と、
前記再現部によって収集された複数の前記再現パケットと、前記記憶装置に蓄積された前記複数のハッシュ変換パケットとのなかから要求パケットを同じくする前記再現パケットと前記ハッシュ変換パケットとを抽出し、抽出された前記再現パケットの前記データ長情報から前記再現パケットの前記データ部分のデータサイズを導出し、導出された前記データサイズと抽出された前記ハッシュ変換パケットの前記付加データの示すデータサイズとが同じかどうかを判定し、データサイズが同じであると判定すると前記再現パケットのデータ部分を前記ハッシュ関数を用いてハッシュ値に変換し、変換された前記再現パケットの前記ハッシュ値と前記ハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する確認部と
を備えたことを特徴とする請求項１記載のパケット収集装置。
【請求項３】
前記ハッシュ変換部は、
前記パケット情報収集部により収集された前記応答パケットが所定のプロトコルに基づくかどうかを判定し、前記所定のプロトコルに基づくと判定された前記応答パケットのみを前記ハッシュ変換パケットに変換することを特徴とする請求項１記載のパケット収集装置。
【請求項４】
前記ハッシュ変換部は、
前記所定のプロトコルではないと判定された前記応答パケットを破棄することを特徴とする請求項３記載のパケット収集装置。
【請求項５】
前記サーバ装置から送信される前記応答パケットは、
前記ヘッダ部分に前記ヘッダ部分と前記データ部分との全体のデータ長を示すデータ長情報を有し、
前記パケット収集装置は、さらに、
前記ハッシュ変換パケットの前記ヘッダ部分の前記データ長情報を、前記ハッシュ変換パケットの全体のデータ長に書き換えるデータ長変換部
を備えたことを特徴とする請求項１記載のパケット収集装置。
【請求項６】
請求項１記載のパケット収集装置によって蓄積された前記複数の要求パケットを前記ネットワークを介して前記サーバ装置に送信し、送信された前記要求パケットに応答することによって前記サーバ装置から送信された複数の応答パケットであってヘッダ部分に前記ヘッダ部分とデータ部分との全体のデータ長を示すデータ長情報を有する複数の応答パケットを前記ネットワークから再現パケットとして収集する再現部と、
前記再現部によって収集された前記複数の再現パケットと、前記パケット収集装置によって蓄積された前記複数のハッシュ変換パケットとのなかから要求パケットを同じくする前記再現パケットと前記ハッシュ変換パケットとを抽出し、抽出された前記再現パケットの前記データ長情報から前記再現パケットの前記データ部分のデータサイズを導出し、導出された前記データサイズと抽出された前記ハッシュ変換パケットの前記付加データの示すデータサイズとが同じかどうかを判定し、データサイズが同じであると判定すると前記再現パケットのデータ部分を前記ハッシュ関数を用いてハッシュ値に変換し、変換された前記再現パケットの前記ハッシュ値と前記ハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する確認部と
を備えたことを特徴とする再現装置。
【請求項７】
前記サーバ装置から送信される前記応答パケットは、
元となるパケットから分割された分割パケットである場合には、分割に関する分割情報を前記ヘッダ部分に有し、  前記確認部は、
データサイズが同じではないと判定すると前記再現パケットと前記ハッシュ変換パケットとが前記分割パケットかどうかを判定し、
（１）前記再現パケットと前記ハッシュ変換パケットとのいずれも前記分割パケットであると判定すると、前記再現パケットと前記ハッシュ変換パケットとのそれぞれについて分割元を同じくするそれぞれの前記再現パケットと前記ハッシュ変換パケットとをそれぞれの前記ヘッダ部分の前記分割情報に基づきすべて特定し、特定されたすべての前記再現パケットのデータ部分を結合し、結合されたデータ部分を、特定され、かつ、対応する前記ハッシュ変換パケットの前記付加データの示すデータサーズに合わせて再分割し、再分割された各データ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応する前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認し、
（２）前記再現パケットのみが前記分割パケットであると判定すると、前記再現パケットについて分割元を同じくするそれぞれの前記再現パケットを前記再現パケットの前記ヘッダ部分の前記分割情報に基づきすべて特定し、特定されたすべての前記再現パケットのデータ部分を結合し、結合されたデータ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認し、
（３）前記ハッシュ変換パケットのみが前記分割パケットであると判定すると、前記ハッシュ変換パケットについて分割元を同じくするそれぞれの前記ハッシュ変換パケットを前記ハッシュ変換パケットの前記ヘッダ部分の前記分割情報に基づきすべて特定し、前記再現パケットの前記データ部分を、特定され、かつ、対応する前記ハッシュ変換パケットの前記付加データの示すデータサーズに合わせて分割し、分割された各データ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応する前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認する
ことを特徴とする請求項６記載の再現装置。
【請求項８】
コンピュータに、
（１）ヘッダ部分とデータ部分とを含むパケットをネットワークを介して端末装置とやり取りする特定のサーバ装置に対して前記端末装置から送信された前記パケットであって前記サーバ装置に所定の処理を要求する複数の要求パケットと、前記サーバ装置から送信された前記パケットであって前記要求パケットに応答する複数の応答パケットとを、前記ネットワークから収集する処理、
（２）収集された前記複数の応答パケットの各応答パケットに対して、前記データ部分を所定のハッシュ関数を用いてハッシュ値に変換すると共にハッシュ値変換前の前記データ部分のデータ長を示すデータ長情報を付加データとして付加することにより前記各応答パケットを前記ハッシュ値と前記付加データとを含むハッシュ変換パケットに変換する処理、
（３）収集された前記複数の要求パケットと、各応答パケットから変換された複数の前記ハッシュ変換パケットとを情報を記憶する記憶装置に蓄積する処理、
を実行させるパケット収集プログラム。
【請求項９】
請求項８記載のパケット収集プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバへの要求パケットとサーバからの応答パケットを蓄積し、蓄積した要求パケットをサーバに送信して動作を再現させることにより応答パケットを取得し、取得した応答パケットと蓄積した応答パケットとを比較して再現確認を行うパケット収集装置、動作再現装置に関する。
【背景技術】
【０００２】
通常、Ｗｅｂサーバなどのサーバ機能は、ネットワークの入力がトリガとなり動作する。このため、ネットワークパケット情報を取得することで、サーバ機能に同じ現象を再現させることができる。例えばサーバアプリケーションの障害が発生した場合に、再現試験を利用できる。ただし、ネットワークパケット情報は大量であることが想定され、長時間蓄積するためには、データ量の削減を実現することが重要である。ディスクへの書き込み処理を減らすためにデータ量を削減することが考えられ、再現に必要な要求パケットのみを収集することが考えられる。しかし、要求パケットのみを収集した場合には、障害が再現しているか否かを判断することが出来ないケースがある。例えば、クライアントの画面でしかわからないようなケースでは、再現時に該当クライアントからリクエストを出して受ける必要があるが、実際には様々なクライアントからリクエストが来ているため、それを模擬することはできない。上記の課題を解決するためには応答パケットの比較を実施する必要があり、応答パケットの収集もあわせて実施しておくことが必要となる。単に応答パケットも収集した場合、ＨＴＴＰなどのようにリクエストのデータ量は少ないがその結果得られるデータは画像データの場合など大量になるケースが発生し、再現に不要なデータが多量に集まり、そのデータを保持するためのオーバヘッドが大きくなる。
この課題を解決するために、特許文献１に示されたように応答データに関してパケットのデータ部分をハッシュ値に変換する方式があげられる。
【特許文献１】特開２００３−２６４５９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１に示されたパケットのデータ部をハッシュ値に変換しただけでは、障害再現確認時に得た情報と比べて確認を行う際に、パケットキャプチャツール等を利用して解析することができなくなってしまう。また、パケットのデータは複数に分割される場合があり、情報収集時と障害再現時にデータは同じであるにもかかわらずネットワーク環境の違い等により、分割されたサイズが異なってしまう可能性があり、その結果、再現時に生成されたハッシュ値と収集時に生成したハッシュ値が異なってしまい、確認ができなくなってしまうなどの課題がある。【０００４】
この発明は、パケット情報を収集する際、要求データはそのまま保存するが、応答データの場合にはデータ部分をハッシュ値に変換すると共に、元のデータのサイズ情報を追加し、ヘッダ情報を新しいサイズ情報に変換することにより、障害再現の確認に利用可能でありながら、保存するデータ量の削減を可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明のパケット収集装置は、
ヘッダ部分とデータ部分とを含むパケットをネットワークを介して端末装置とやり取りする特定のサーバ装置に対して前記端末装置から送信された前記パケットであって前記サーバ装置に所定の処理を要求する複数の要求パケットと、前記サーバ装置から送信された前記パケットであって前記要求パケットに応答する複数の応答パケットとを、前記ネットワークから収集するパケット情報収集部と、
前記パケット情報収集部により収集された前記複数の応答パケットの各応答パケットに対して、前記データ部分を所定のハッシュ関数を用いてハッシュ値に変換すると共にハッシュ値変換前の前記データ部分のデータ長を示すデータ長情報を付加データとして付加することにより前記各応答パケットを前記ハッシュ値と前記付加データとを含むハッシュ変換パケットに変換するハッシュ変換部と、
前記パケット情報収集部により収集された前記複数の要求パケットと、前記ハッシュ変換部により各応答パケットから変換された複数の前記ハッシュ変換パケットとを情報を記憶する記憶装置に蓄積するパケット蓄積部と
を備えたことを特徴とする。【０００６】
前記サーバ装置から送信される前記応答パケットは、
前記ヘッダ部分に前記ヘッダ部分と前記データ部分との全体のデータ長を示すデータ長情報を有し、
前記パケット収集装置は、さらに、
前記記憶装置に蓄積された前記複数の要求パケットを前記ネットワークを介して前記サーバ装置に送信し、送信された前記要求パケットに応答することによって前記サーバ装置から送信された複数の応答パケットを前記ネットワークから再現パケットとして収集する再現部と、
前記再現部によって収集された複数の前記再現パケットと、前記記憶装置に蓄積された前記複数のハッシュ変換パケットとのなかから要求パケットを同じくする前記再現パケットと前記ハッシュ変換パケットとを抽出し、抽出された前記再現パケットの前記データ長情報から前記再現パケットの前記データ部分のデータサイズを導出し、導出された前記データサイズと抽出された前記ハッシュ変換パケットの前記付加データの示すデータサイズとが同じかどうかを判定し、データサイズが同じであると判定すると前記再現パケットのデータ部分を前記ハッシュ関数を用いてハッシュ値に変換し、変換された前記再現パケットの前記ハッシュ値と前記ハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する確認部と
を備えたことを特徴とする。【０００７】
前記ハッシュ変換部は、
前記パケット情報収集部により収集された前記応答パケットが所定のプロトコルに基づくかどうかを判定し、前記所定のプロトコルに基づくと判定された前記応答パケットのみを前記ハッシュ変換パケットに変換することを特徴とする。【０００８】
前記ハッシュ変換部は、
前記所定のプロトコルではないと判定された前記応答パケットを破棄することを特徴とする。【０００９】
前記サーバ装置から送信される前記応答パケットは、
前記ヘッダ部分に前記ヘッダ部分と前記データ部分との全体のデータ長を示すデータ長情報を有し、
前記パケット収集装置は、さらに、
前記ハッシュ変換パケットの前記ヘッダ部分の前記データ長情報を、前記ハッシュ変換パケットの全体のデータ長に書き換えるデータ長変換部
を備えたことを特徴とする。【００１０】
この発明の再現装置は、
前記パケット収集装置によって蓄積された前記複数の要求パケットを前記ネットワークを介して前記サーバ装置に送信し、送信された前記要求パケットに応答することによって前記サーバ装置から送信された複数の応答パケットであってヘッダ部分に前記ヘッダ部分とデータ部分との全体のデータ長を示すデータ長情報を有する複数の応答パケットを前記ネットワークから再現パケットとして収集する再現部と、
前記再現部によって収集された前記複数の再現パケットと、前記パケット収集装置によって蓄積された前記複数のハッシュ変換パケットとのなかから要求パケットを同じくする前記再現パケットと前記ハッシュ変換パケットとを抽出し、抽出された前記再現パケットの前記データ長情報から前記再現パケットの前記データ部分のデータサイズを導出し、導出された前記データサイズと抽出された前記ハッシュ変換パケットの前記付加データの示すデータサイズとが同じかどうかを判定し、データサイズが同じであると判定すると前記再現パケットのデータ部分を前記ハッシュ関数を用いてハッシュ値に変換し、変換された前記再現パケットの前記ハッシュ値と前記ハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する確認部と
を備えたことを特徴とする。【００１１】
前記サーバ装置から送信される前記応答パケットは、
元となるパケットから分割された分割パケットである場合には、分割に関する分割情報を前記ヘッダ部分に有し、
前記確認部は、
データサイズが同じではないと判定すると前記再現パケットと前記ハッシュ変換パケットとが前記分割パケットかどうかを判定し、
（１）前記再現パケットと前記ハッシュ変換パケットとのいずれも前記分割パケットであると判定すると、前記再現パケットと前記ハッシュ変換パケットとのそれぞれについて分割元を同じくするそれぞれの前記再現パケットと前記ハッシュ変換パケットとをそれぞれの前記ヘッダ部分の前記分割情報に基づきすべて特定し、特定されたすべての前記再現パケットのデータ部分を結合し、結合されたデータ部分を、特定され、かつ、対応する前記ハッシュ変換パケットの前記付加データの示すデータサーズに合わせて再分割し、再分割された各データ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応する前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認し、
（２）前記再現パケットのみが前記分割パケットであると判定すると、前記再現パケットについて分割元を同じくするそれぞれの前記再現パケットを前記再現パケットの前記ヘッダ部分の前記分割情報に基づきすべて特定し、特定されたすべての前記再現パケットのデータ部分を結合し、結合されたデータ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認し、
（３）前記ハッシュ変換パケットのみが前記分割パケットであると判定すると、前記ハッシュ変換パケットについて分割元を同じくするそれぞれの前記ハッシュ変換パケットを前記ハッシュ変換パケットの前記ヘッダ部分の前記分割情報に基づきすべて特定し、前記再現パケットの前記データ部分を、特定され、かつ、対応する前記ハッシュ変換パケットの前記付加データの示すデータサーズに合わせて分割し、分割された各データ部分を前記ハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応する前記ハッシュ変換パケットの前記ハッシュ値とが等しいかどうかを確認する
ことを特徴とする。【００１２】
この発明のパケット収集プログラムは、
コンピュータに、
（１）ヘッダ部分とデータ部分とを含むパケットをネットワークを介して端末装置とやり取りする特定のサーバ装置に対して前記端末装置から送信された前記パケットであって前記サーバ装置に所定の処理を要求する複数の要求パケットと、前記サーバ装置から送信された前記パケットであって前記要求パケットに応答する複数の応答パケットとを、前記ネットワークから収集する処理、
（２）収集された前記複数の応答パケットの各応答パケットに対して、前記データ部分を所定のハッシュ関数を用いてハッシュ値に変換すると共にハッシュ値変換前の前記データ部分のデータ長を示すデータ長情報を付加データとして付加することにより前記各応答パケットを前記ハッシュ値と前記付加データとを含むハッシュ変換パケットに変換する処理、
（３）収集された前記複数の要求パケットと、各応答パケットから変換された複数の前記ハッシュ変換パケットとを情報を記憶する記憶装置に蓄積する処理、
を実行させることを特徴とする。
【発明の効果】
【００１３】
この発明のパケット収集装置によれば、障害再現の確認に利用するパケットを保存するに際して、保存されるデータ量の削減が可能である。また、この発明のパケット収集装置によれば、蓄積されたパケットをパケットキャプチャツール等を利用して解析することができる。また、この発明のパケット収集装置によれば、パケットの分割に関して、蓄積された応答パケットと再現時の応答パケットとのデータサイズを合わせることができる。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
（システム構成）
図１は、実施の形態１の動作再現システム１０００の構成である。動作再現システム１０００は、動作再現の対象である動作再現対象サーバ装置１０（以下、対象サーバという）、パケットを収集して動作再現を実行するパケット収集装置２０、ハブ３０、通信回線４０、複数の端末装置５０（以下、端末という）から構成される。【００１５】
（１）対象サーバ１０は、業務を実施するにあたりサービスを提供するサーバ装置であり、例えば、ＷｅｂサーバやＤＢサーバなどである。
（２）パケット収集装置２０は、対象サーバ１０の動作を再現させるため、対象サーバ１０に対して通信回線４０を介して送信されてくる「要求パケット」ならびに対象サーバ１０から要求パケットに対して通信回線４０を介して応答した結果である「応答パケット情報」を収集して蓄積する。要求パケット、応答パケットは、いずれもヘッダ部分とデータ部分とから構成される。要求パケット、応答パケットとしては、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）パケット、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）パケット、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケットである。動作再現システム１０００は、これらのパケットのヘッダ部分のヘッダ情報に基づき、処理を実行する。パケット収集装置２０は、蓄積したパケット情報をもとに、対象サーバ１０に対して動作再現を実行する。実施の形態１の図１では、パケット収集装置２０がパケットの収集と動作再現とを実行するが、実施の形態１の最後で説明するように、パケット収集機能と再現機能とを別々の装置で実現してもよい。
（３）ハブ３０は、対象サーバ１０、パケット収集装置２０が接続されている通信回線４０のハブである。ハブ３０は、パケット収集装置２０によって対象サーバ１０のネットワークパケット情報を収集するためのミラーポートを保持したスイッチングハブやすべてのネットワークパケット情報を取得可能なリピーターハブである。パケット収集装置２０によって対象サーバ１０のネットワークパケット情報を収集することが出来る機器であれば、ミラーポートを保持したスイッチングハブやリピーターハブに限らない。
（４）通信回線４０は、対象サーバ１０に対してサービスを要求する端末５０と対象サーバ１０とを接続するネットワークである。通信回線４０、例えばイントラネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットである。
（５）端末５０は、対象サーバ１０に対してサービス提供を要求し、その結果を受信する。【００１６】
（動作概要）
図２は、動作再現システム１０００の動作概要を示す図である。それぞれの端末５０は、通信回線４０を介して対象サーバ１０に所定の処理を要求する複数の要求パケットを送信する。図２では要求パケットを破線で示している。パケット収集装置２０は、ハブ３０から要求パケットを収集する。対象サーバ１０は要求パケットを受信すると、通信回線４０を介して応答パケットを端末５０に送信する。図では応答パケットを実線で示している。パケット収集装置２０は、ハブ３０から応答パケットを収集する。【００１７】
（パケット収集装置２０）
図３は応答パケットを示す図である。図１、図３を参照して、パケット収集装置２０の構成を説明する。
図３（ａ）は収集された応答パケット６０を示す。
図３（ｂ）は、収集された応答パケット６０のデータ部分６２を所定のハッシュ関数でハッシュ値に変換したパケット６０ａを示している。
図３（ｃ）は、応答パケット６０の具体例としてＴＣＰパケット８０を示しており図３（ａ）に対応する。
図３（ｄ）は、ＴＣＰデータがハッシュ値に変換されると共にＴＣＰデータのデータ長が付加された変換後のＴＣＰパケット８０ａを示しており、図３（ｂ）に対応する。
パケット６０ａ，パケット８０ａを以下ではハッシュ変換パケット６０ａ，ハッシュ変換パケット８０ａともいう。
（１）パケット情報収集部２１は、ハブ３０から、対象サーバ１０に対して端末５０から送信された要求パケットを収集し、また、要求パケットへの応答として対象サーバ１０から送信された応答パケットを収集する。
（２）応答データハッシュ値変換部２２（ハッシュ変換部）は、パケット情報収集部２１によって収集されたパケットの中から応答パケットのデータ部分をハッシュ値に変換すると共に、ハッシュ値に元のパケットのデータ長を付加する。図３に示すように、応答データハッシュ値変換部２２は、応答パケット６０のデータ部分６２を所定のハッシュ関数によりハッシュ値６２ａに変換し、このハッシュ値に変換前の応答パケット６０のデータの長さ（データ部分６２の長さ）を示すデータ長情報６３ａを付加する。図３（ｃ）、（ｄ）はＴＣＰパケットの例を示している。ＴＣＰパケットは図３（ｃ）のように、ＩＰヘッダ８１、ＴＣＰヘッダ８２、ＴＣＰデータ８３から構成されている。ＴＣＰパケットの場合には、応答データハッシュ値変換部２２は、ＴＣＰデータ８３の部分をハッシュ値８３ａに変換すると共に、ハッシュ値８３ａに変換前のＴＣＰデータ８３のデータ長を示すデータ長情報８４ａを付加情報として付加する。
（３）データ長変換部２３は、応答データハッシュ値変換部２２によって変換されたハッシュ変換パケット６０ａのヘッダ部分６１ａのデータ長情報６４をハッシュ変換後のデータ長情報６４ａ（ヘッダ部分６１ａ＋ハッシュ値６２ａ＋データ長情報６３ａ）に変更する。ＴＣＰパケットの場合には、データ長変換部２３は、ＩＰヘッダに記載されているパケット長を、図３（ｄ）に示すハッシュ変換後のパケット全体のデータ長である「ｋバイト」に書き換える。
（４）パケット蓄積部２４は、要求パケットとハッシュ変換後のハッシュ変換パケット６０ａをパケット情報格納部２７に格納する。
（５）動作再現部２５（再現部）は、パケット情報格納部２７に格納された要求パケットを対象サーバ１０に対して送信し、動作再現を実行する。
（６）再現確認部２６（確認部）は、動作再現部２５によって再現を実施した際に収集した再現時の応答パケット６０とパケット情報格納部２７の応答パケット（ハッシュ変換パケット）とを比較し、正しく再現されているか否かを確認する。
（７）パケット情報格納部２７には、パケット蓄積部２４によってパケット情報が格納される。パケット情報格納部２７は、ディスクなどの記憶装置として実現される。【００１８】
（パケットの収集／蓄積処理：動作１）
図４は、パケット収集装置２０が要求パケット、応答パケットを収集する動作のフローチャートである。図４を用いて、まずパケット収集装置２０がパケット情報を収集する処理し蓄積する処理を説明する。図４において、例えば、ＳＴ１０１の「（パケット情報収集部２１）」は、パケット情報収集部２１がＳＴ１０１を処理することを示す。他のステップも同様である。【００１９】
パケット情報収集部２１は、対象サーバ１０への要求パケット、対象サーバ１０からの応答パケットをハブ３０のミラーポートの利用やｐｒｏｍｉｓｃｕｏｕｓモードの利用等により収集する（ＳＴ１０１）。応答データハッシュ値変換部２２は、収集されたパケットが要求パケットであるか応答パケットであるかを判断する。要求パケットか応答パケットかは、パケットのヘッダ部分に記載されているネットワークアドレス情報を基に判断できる（ＳＴ１０２）。要求パケットの場合はＳＴ１０６へ進み、応答パケットの場合はＳＴ１０３へ進む。収集されたパケットが応答パケットの場合には、応答データハッシュ値変換部２２は、図３で述べたように、応答パケットのデータ部分をハッシュ値に変換する（ＳＴ１０３）。そして、応答データハッシュ値変換部２２は、ハッシュ値にもとのデータ長（ハッシュ値変換前の応答パケットのデータ部分のデータ長）を示すデータ長情報（付加データ）を付加する（ＳＴ１０４）。さらに、データ長変換部２３は、応答データハッシュ値変換部２２によってハッシュ変換された応答パケットに対して、ヘッダ部分のデータ長をハッシュ変換後の応答パケット全体のデータ長を示すデータ長情報の値に変更する（ＳＴ１０５）。パケット蓄積部２４は、収集した要求パケット、変換された応答パケットをパケットキャプチャツール等で一般的に利用されているｐｃａｐ形式で、パケット情報格納部２７に格納する（ＳＴ１０６）。【００２０】
（対象サーバ１０の再現処理：動作２）
図５は、パケット収集装置２０による対象サーバ１０に対する動作再現処理を示すフローチャートである。図５を用いて、蓄積されたパケット情報をもとに実行する再現動作を説明する。【００２１】
動作再現部２５は、パケット情報格納部２７に格納されているパケット情報の中から対象サーバ１０への要求パケットを抽出し、対象サーバ１０に要求パケットを送出する（ＳＴ２０１）。動作再現部２５は、要求パケットを送出したことにより対象サーバ１０から得られる応答パケット（再現パケットともいう）も含め、対象サーバ１０に対する要求パケット、応答のパケットをすべて収集、蓄積する（ＳＴ２０２）。図５の再現処理では、パケット収集装置２０は、収集した応答パケット（再現パケット）はハッシュ化することなく、そのまま格納する。なお、再現時に収集したパケットはパケット情報格納部２７に格納される。【００２２】
（確認処理：動作３）
図６は、パケット収集装置２０による再現動作の確認処理を示すフローチャートである。図６の説明において「動作時」とは図４の動作をいい、「再現時」とは図５の動作をいう。再現確認部２６は、パケット情報格納部２７に格納されているパケット情報と、「再現時」に動作再現部２５によって再現実行され、収集されたパケット情報をもとに、同一の要求パケットに対する応答パケットを抽出する（ＳＴ３０１）。なお、同一の要求パケットに対する応答パケットかどうかは、各応答パケットのヘッダ部分の情報を参照することで判断することができる。再現確認部２６は、応答パケットが「動作時」と「再現時」とで同じサイズであるかどうかを、「動作時」の応答パケット（ハッシュ変換パケット）に付与されているデータ長情報（付加データ）と、再現時の応答パケット（再現パケット）のヘッダ部分に格納されているデータ長情報とを比較して判定する（ＳＴ３０２）。
なお、ハッシュ変換パケットの付加データの示すデータ長はデータ部分である。したがって、再現パケットのヘッダ部分のデータ長情報が再現パケット全体のデータ長を示す場合には、再現確認部２６は、再現パケットのヘッダ部分のデータ長情報から再現パケットのデータ部分のデータサイズを導出し、導出されたデータサイズとハッシュ変換パケットの付加データの示すデータサイズとが同じかどうかを判定する。【００２３】
図３を参照して説明する。図３（ａ）はハッシュ変換されていない再現パケットに相当し、図３（ｂ）はハッシュ変換パケットである。再現パケットのヘッダ部分にはデータ長情報６４があり、ハッシュ変換パケットには、ハッシュ変換前のデータ長を示すデータ長情報６３ａ（付加データ）がある。再現確認部２６は、要求パケットを同じくする再現パケットとハッシュ変換パケットとについて、再現パケットのデータ長情報６４とハッシュ変換パケットのデータ長情報６３ａとを比較して判定する。【００２４】
判定の結果、データ長が同じ場合はＳＴ３０３へ進み、データ長が異なる場合はＳＴ３０６へ進む。データ長が同じ場合には、再現確認部２６は、再現時の応答パケット（再現パケット）のデータ部分をハッシュ変換パケットに使用したハッシュ関数でハッシュ値に変換する（ＳＴ３０３）。再現確認部２６は、応答パケット（再現パケット）のハッシュ値と、ハッシュ変換パケットのハッシュ値とを比較する（ＳＴ３０４）。同じ値であればＳＴ３０５へ進み、異なる値の場合はＳＴ３０８へ進む。同じ値の場合、再現確認部２６は、同じ現象が起きていると判断する（ＳＴ３０５）。【００２５】
（データ長が異なる場合）
データ長が異なる場合には、再現確認部２６は、再現パケット、ハッシュ変換パケットとの少なくともいずれかが、分割されたパケット（分割パケット）であるか否かをパケットのヘッダ情報（分割の有無を示すフラグ、シーケンス番号あるいは確認応答番号など、プロトコルに応じて分割を識別可能な分割に関する分割情報）を基にチェックする（ＳＴ３０６）。再現確認部２６によって、再現パケット、ハッシュ変換パケットのどちらかが分割パケットである場合はＳＴ３０７進み、単独のパケットである場合はＳＴ３０８（終了）へ進む。【００２６】
（一方が分割パケットあるいは両方が分割パケットの場合）
同一の要求パケットに対する再現パケットとハッシュ変換パケットとのうち、どちらかが分割パケットの場合、再現確認部２６は、その要求パケットに対する再現パケットのすべてと、その要求パケットに対するハッシュ変換パケットのすべてとを抽出する。具体的には、分割のパターンは、次の３通りがある。
すなわち、
（１）再現パケット、ハッシュ変換パケット、ともに分割、
（２）再現パケットのみ分割、
（３）ハッシュ変換パケットのみ分割、
の３通りである。【００２７】
（（１）の場合）
再現確認部２６は、統合して再分割する。すなわち、再現確認部２６は、すべての再現パケットのデータ部分を結合し、付加データとして格納されているデータ部分のデータ長情報を用いてハッシュ変換パケットの分割サイズに合わせて再分割する（ＳＴ３０７）。例えば、ハッシュ変換パケットについては分割前のデータ長が「６０」であるデータ部分が、「２０」と「４０」のデータ長に分割されており（それぞれの分割パケットの付加データから、「２０」と「４０」のデータ長とわかる）、再現パケットについてはデータ部分が「１０」、「２０」、「３０」に分割されている場合である。このような場合、再現確認部２６は、各再現パケットの「１０」、「２０」、「３０」を統合して「６０」にし、このデータ部分を「２０」と「４０」に再分割する。すなわち、再現確認部２６は、再現パケットとハッシュ変換パケットとのいずれも分割パケットであると判定すると、再現パケットとハッシュ変換パケットとのそれぞれについて分割元を同じくするそれぞれの再現パケットとハッシュ変換パケットとをすべて特定し、特定されたすべての再現パケットのデータ部分を結合し、結合されたデータ部分を、特定され、かつ、対応するハッシュ変換パケットのデータ部分のサイズに合わせて再分割し、再分割された各データ部分をハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応するハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する。【００２８】
（（２）の場合）
再現確認部２６は再分割せず、統合のみ行う。例えば、ハッシュ変換パケットの付加データとして格納されているデータ長は「６０」であり、各再現パケットのデータ長は「１０」、「２０」、「３０」のような場合である。この場合、再現確認部２６は、各再現パケットのデータ部分を「６０」に統合するのみで再分割はしない。すなわち、再現確認部２６は、再現パケットのみが分割パケットであると判定すると、再現パケットについて分割元を同じくするそれぞれの再現パケットをすべて特定し、特定されたすべての再現パケットのデータ部分を結合し、結合されたデータ部分をハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値とハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する。【００２９】
（（３）の場合）
統合の必要はないので再現確認部２６は再分割のみ実行する。例えば、各ハッシュ変換パケットの付加データとして格納されているデータ長は「２０」と「４０」であり、再現パケットのデータ長は「６０」であるような場合である。この場合、再現確認部２６は、再現パケットのデータ部分を「２０」と「４０」に再分割するのみである。ＳＴ３０３において、再現確認部２６は、「（１）」、「（３）」の場合は再分割した各データ部分をハッシュ値に変換し、「（２）」の場合は統合されたデータ部分をハッシュ値に変換し、ＳＴ３０４において、再現パケットとハッシュ変換パケットの対応するハッシュ値どうしを比較し、同じ値かどうかを確認する。すなわち、再現確認部２６は、ハッシュ変換パケットのみが分割パケットであると判定すると、ハッシュ変換パケットについて分割元を同じくするそれぞれのハッシュ変換パケットをすべて特定し、再現パケットのデータ部分を、特定され、かつ、対応するハッシュ変換パケットのデータ部分のサイズに合わせて分割し、分割された各データ部分をハッシュ関数によってハッシュ値に変換し、変換されたハッシュ値と対応するハッシュ変換パケットのハッシュ値とが等しいかどうかを確認する。【００３０】
再現確認部２６は、データ長が異なり、かつ、分割されていない場合（ＳＴ３０６のＮＯ）、あるいはハッシュ値が異なる場合（ＳＴ３０４のＮＯ）は、同じ現象が再現されていないと判断する（ＳＴ３０８）。【００３１】
図７は、図６の動作を補足説明するための図である。図７は次の状況を示している。すなわち、具体例としてＴＣＰの場合は、送信側は、コネクションを確立する際に、シーケンス番号を決定し、送信する。受け取った側は、そのシーケンス番号に１を付与した番号を確認応答番号として返す。従って、データの送信を行う場合には、シーケンス番号や確認応答番号の情報が初期情報として利用される。データを送信する側は、初期情報として設定されたシーケンス番号と確認応答番号とを使って、データを送信する。連続して送信する場合には、送信側は、シーケンス番号には送信されたデータサイズが足された数字をセットし、確認応答番号には同じ番号をセットし、次のデータを送信する。途中、受信側がＡＣＫを返す場合には、受信側は、送信データの確認応答番号に格納されている番号をシーケンス番号にセットし、確認応答番号には受信されたデータサイズの付与された番号をセットする。連続データの場合は、常に、送信側は確認応答番号が共通となり、受信側はシーケンス番号が共通となる。この仕組みを利用して、分割されたパケットであることが判断可能である。上記のようなシーケンス番号、確認応答番号などの分割情報を用いることにより、図６に示したＳＴ３０６、ＳＴ３０７の処理が可能である。【００３２】
以上のように、実施の形態１では、応答パケットのデータ部分をハッシュ値に変換して蓄積する構成としたので、記録データ量の削減が可能となり、従来に比べて長時間の情報収集が可能となる。
また、パケット収集装置２０は、パケットの元のサイズを付加データとしてハッシュ変換後のパケットに付加する。このため、データの内容は同じであるが、再現時にパケットの分割結果が変わったことにより、ハッシュ値が異なった結果となる場合でも、トータルサイズでの確認、あるいは、再現時のデータ部分を使用し、収集時と同じサイズのデータに分割したハッシュ値の再生成により、データの確認を可能としている。【００３３】
実施の形態２．
図８、図９を用いて実施の形態２を説明する。実施の形態２は、実施の形態１のパケット収集装置２０を、仮想計算機環境で実現する場合を説明する。図８は、実施の形態２の構成図である。仮想計算機環境では、物理計算機１００において、対象サーバ１０に相当する対象サーバ１１０と、パケット収集装置２０に相当するパケット収集装置１２０とを仮想計算機上に配備する構成である。図８の仮想スイッチ３１は図１のハブ３０に相当する。図１と同様の構成要素には同一の符号を付し、詳しい説明は省略する。【００３４】
パケット情報収集部２１は、対象サーバ１１０への要求パケット、対象サーバ１１０からの応答パケットを、仮想スイッチ３１におけるｐｒｏｍｉｓｃｕｏｕｓモードにより収集できる。動作については、実施の形態１と同様である。【００３５】
図９は、パケット収集装置１２０の動作再現機能（動作再現部２５）と再現確認機能（再現確認部２６）との機能をパケット収集装置１２０から再現装置２２０として分離した構成である。図９の構成では、パケット収集装置１２０は要求パケット、応答パケットであるハッシュ変換パケットを収集し蓄積する。再現装置２２０は、パケット収集装置１２０の蓄積した要求パケット、ハッシュ変換パケットを取得し、実施の形態１で述べた動作再現と再現確認とを実行する。再現装置２２０は、通信回線４０を介してオンラインで要求パケット、ハッシュ変換パケットを取得してもよいし、オフラインで取得してもよい。収集、蓄積の動作、及び再現、確認の動作は実施の形態１と同じである。【００３６】
以上のように、実施の形態２によれば、仮想計算機環境にてパケット情報を収集することにより、ミラーポート付のハブなどが不要となる。また、蓄積に必要なデータ量を削減していることから、同じ物理計算機上に配備されている別の仮想計算機も共通に利用するＩ／Ｏ処理機能に関して処理量を減らすことが出来るため、別の仮想計算機への影響を最小限に抑えつつ情報収集を実施することが可能となる。【００３７】
実施の形態３．
図１０、図１１を参照して実施の形態３を説明する。実施の形態３は、実施の形態１の図４で説明した「パケットの収集／蓄積処理：動作１」に対応する。実施の形態３では、パケット収集装置２０が、応答パケットのプロトコルによる違いに対応する場合を説明する。実施の形態３のシステム構成は、実施の形態１、あるいは実施の形態２と同じである。以下の説明では、図１の構成を想定して説明する。【００３８】
図１０は、実施の形態３のパケット収集装置２０の処理フローである。図４と同一のステップ番号は、図４のそのステップ動作と同じである。図１０を用いて実施の形態３のパケット収集装置２０によるパケットの収集、蓄積の動作を説明する。【００３９】
パケット情報収集部２１は、対象サーバ１０への要求パケット、対象サーバ１０からの応答パケットをハブ３０のミラーポートの利用やｐｒｏｍｉｓｃｕｏｕｓモードの利用等により収集する（ＳＴ１０１）。応答データハッシュ値変換部２２は、収集されたパケットが要求パケットであるか応答パケットであるかを判断する。要求パケットか応答パケットかは、パケットのヘッダ部分に記載されているネットワークアドレス情報を基に判断できる（ＳＴ１０２）。要求パケットであった場合にはＳＴ１０６へ進み、応答パケットであった場合にはＳＴ４０１へ進む。【００４０】
応答データハッシュ値変換部２２は、パケットがＩＣＭＰあるいはＴＣＰあるいはＵＤＰのいずれかのプロトコル（所定のプロトコルの一例）のパケットであるか否かをヘッダの情報を参照しチェックする（ＳＴ４０１）。ＩＣＭＰあるいはＴＣＰあるいはＵＤＰのいずれかのプロトコルのパケットであった場合にはＳＴ１０３へ進む。それ以外のパケットであった場合にはＳＴ１０１へ進む。ＳＴ１０１へ進む場合は、そのパケットは蓄積しないことになる。【００４１】
収集されたパケットが応答パケットの場合には、応答データハッシュ値変換部２２は、図３で述べたように、応答パケットのデータ部分をハッシュ値に変換する（ＳＴ１０３）。そして、応答データハッシュ値変換部２２は、ハッシュ値にもとのデータ長（ハッシュ値変換前の応答パケットのデータ部分のデータ長）を示すデータ長情報（付加データ）を付加する（ＳＴ１０４）。【００４２】
さらに、データ長変換部２３は、パケットのＩＰヘッダ部分のデータ長を、新規データ（データ部分がハッシュ値に変換され、データ長情報が付加された応答パケットの全体）のデータ長に変更する（ＳＴ４０２）。データ長変換部２３は、パケットがＵＤＰのプロトコルのパケットであるか否かをヘッダ部分を参照してチェックする（ＳＴ４０３）。ＵＤＰのパケットの場合はＳＴ４０４へ進み、ＩＣＭＰやＴＣＰのパケットの場合はＳＴ１０６へ進む。【００４３】
図１１はＵＤＰパケット７０のパケット構造を示す図である。
図１１（ａ）は応答パケットであるＵＤＰパケット７０を示す。
図１１（ｂ）はＵＤＰパケット７０に対応するハッシュ変換パケット７０ａを示す。
ＵＤＰパケット７０はＩＰヘッダ７１、ＵＤＰヘッダ７２、ＵＤＰデータ７３とからなる。ＵＤＰパケットの場合、データ長変換部２３は、ＵＤＰヘッダ７２の部分に含まれるデータ長７５を新規のデータ長７５ａ（ハッシュと付加データの合計のデータ長）に変更する（ＳＴ４０４）。なお、ハッシュ値７３ａ、付加データ７４ａ（ＵＤＰデータ７３のデータ長）は、ＳＴ１０３、ＳＴ１０４において、応答データハッシュ値変換部２２が変換し、付加した情報である。【００４４】
パケット蓄積部２４は、収集した要求パケット、変換された応答パケットをパケットキャプチャツール等で一般的に利用されているｐｃａｐ形式で、パケット情報格納部２７に格納する（ＳＴ１０６）。【００４５】
以上のように、実施の形態３では、プロトコルに応じて応答パケットの収集の必要の有無、ハッシュ値への変換の実施有無、ヘッダ情報の変更箇所の変更を判定している。このため確認処理（実施の形態１の「再現動作の確認処理：動作３」）において不要となるパケットを予め削除する。このため、蓄積において、更なるデータ量削減が可能である。また、パケットのヘッダ情報に対する変更処理をプロトコルごとに変えることにより、収集したパケット情報（応答パケット）をパケットキャプチャツール等で確認することができる。【００４６】
実施の形態４．
図１２〜図１４を参照して実施の形態４を説明する。実施の形態４は、収集時（実施の形態１の動作１）におけるパケットの蓄積処理の動作を説明する。図１２は、実施の形態４のパケット収集装置２０の構成図である。パケット収集装置２０はパケット収集装置２０に対して、さらに、パケット一時蓄積部４００、パケット格納キュー４３１、パケット蓄積キュー４３２を備えている。【００４７】
図１２において、
（１）パケット一時蓄積部４００は、収集したパケット情報をパケット格納バッファ４３３に格納する。
（２）パケット格納キュー４３１は、メモリ上に配備されているパケット格納バッファ４３３のうち収集されたパケットを格納するキューである。
（３）パケット蓄積キュー４３２は、メモリ上に配備されているパケット格納バッファ４３３のうち蓄積対象となるバッファを蓄積するキューである。
（４）パケット格納バッファ４３３は、収集したパケット情報を一時的にメモリ上に保持する領域を示すバッファである。【００４８】
図１３は、パケット収集時に一時的にメモリ上にパケットを蓄積するパケット一時蓄積部４００の動作のフローチャートである。図１４は、一時的にメモリ上に蓄積されたパケット情報をパケット情報格納部２７に蓄積するパケット蓄積部２４の動作を示すフローチャートである。【００４９】
図１３を用いてパケット収集時（実施の形態１の図４に示した動作１）に、一時的にメモリ上に確保されているパケット格納バッファ４３３に収集されたパケット格納する動作を説明する。【００５０】
パケット一時蓄積部４００は、蓄積されるべきパケットの収集が行われると、パケット格納キュー４３１の先頭のパケット格納バッファ３３を取り出す（ＳＴ５０１）。パケット一時蓄積部４００は、パケットのサイズとパケット格納バッファ４３３の空き容量とを比較する（ＳＴ５０２）。空き容量が蓄積するパケットサイズより大きい場合はＳＴ５０３へ進み、小さい場合はＳＴ５０４へ進む。【００５１】
パケット一時蓄積部４００は、パケット格納バッファ４３３の空き容量が蓄積するべきパケットサイズよりも大きい場合は、パケット格納バッファ４３３にそのパケットを格納する（ＳＴ５０３）。パケット格納バッファ３３の空き容量が蓄積するべきパケットサイズよりも小さい場合は、取り出しているパケット格納バッファ４３３をパケット蓄積キュー４３２にエンキューする（ＳＴ５０４）。パケット一時蓄積部４００は、パケット格納キュー４３１から、新しく先頭になったパケット格納バッファ４３３を取り出す（ＳＴ５０５）。【００５２】
次に、図１４を用いて、パケット格納バッファ４３３に格納されているパケット情報を、パケット蓄積部２４がパケット情報格納部２７に格納する動作を説明する。【００５３】
パケット蓄積部２４は、パケット蓄積キュー４３２にパケット格納バッファ４３３が存在するか否かをチェックする（ＳＴ６０１）。存在する場合はＳＴ６０２へ進み、存在しない場合はＳＴ６０１へ進む。
パケット蓄積キュー４３２にパケット格納バッファ４３３が存在する場合は、パケット蓄積部２４は、パケット蓄積キュー４３２の先頭のパケット格納バッファ４３３を取り出す（ＳＴ６０２）。パケット蓄積部２４は、取り出されたパケット格納バッファ４３３に格納されているパケット情報を取り出し、圧縮を実施する（ＳＴ６０３）。パケット蓄積部２４は、圧縮されたパケット情報をパケット情報格納部２７に格納する（ＳＴ６０４）。【００５４】
パケット蓄積部２４は、格納したことにより不要となったパケット格納バッファ４３３の内容を消去する（ＳＴ６０５）。消去されたパケット格納バッファ４３３を収集時の蓄積に利用可能とするため、パケット蓄積部２４は、パケット格納キュー４３１にエンキューする（ＳＴ６０６）。【００５５】
以上のように実施の形態４では、一時的にメモリ上にパケット情報を保持し、パケット情報の収集とパケット情報の蓄積を並列に動作可能とした。このため、ネットワークのパケット情報を収集する速度に対して、時間を要する蓄積処理の影響を受けることなく、パケットの収集・蓄積を実施することが可能となる。【００５６】
実施の形態５．
図１５、図１６を参照して実施の形態５を説明する。【００５７】
実施の形態５は、主として、パケット収集装置２０、あるいは再現装置２２０をコンピュータで実現する具体的な実施形態を示す。パケット収集装置２０、再現装置２２０はずれもコンピュータで実現可能であるので、パケット収集装置２０を想定して説明する。【００５８】
図１５は、パケット収集装置２０の外観の一例を示す図である。図１５において、パケット収集装置２０は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。【００５９】
図１６は、コンピュータで実現されるパケット収集装置２０のハードウェア資源の一例を示す図である。図１６において、パケット収集装置２０は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。【００６０】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。【００６１】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。【００６２】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。【００６３】
上記プログラム群８２３には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。【００６４】
ファイル群８２４には、以上の実施の形態の説明において、「要求パケット」、「応答パケット」として説明したデータや、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。【００６５】
また、以上に述べた実施の形態の説明において、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。【００６６】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。【００６７】
以上の実施の形態１〜４では、パケット収集装置２０あるいは再現装置２２０として、装置を説明したが、実施の形態５のように、パケット収集装置２０、再現装置２２０の動作を、コンピュータに実行させるパケット収集プログラム、動作再現プログラムとして把握することも可能である。あるいは、パケット収集プログラム、動作再現プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。さらに、パケット収集装置２０あるいは再現装置２２０の動作をパケット収集装置２０が行うパケット収集方法、再現装置２２０が行う再現方法として把握することも可能である。【００６８】
以上の実施の形態１では、次の手段を有するパケット収集装置を説明した。
（１）動作再現対象サーバのネットワークパケット情報をハブより収集するパケット情報収集手段と、
（２）収集したネットワークパケット情報のうち、動作再現対象サーバより出力された応答パケットのデータ部分をハッシュ値に変換すると共に変換前のデータ長情報をデータ部分に付与する応答データハッシュ値変換手段と、
（３）該当パケットのヘッダ部分のデータ長情報を前記応答データハッシュ値変換手段にて生成されたハッシュ値のデータ長に基づいた値に変換するデータ長変換手段と、
（４）動作再現対象サーバへの要求パケットはそのまま蓄積し、動作再現対象サーバからの応答パケットについては、前記応答データハッシュ値変換手段にてハッシュ値に変換され、データ長情報が付与され、前記データ長変換手段にてパケットのヘッダ部分のデータ長を変換したパケット情報を蓄積するパケット蓄積手段と、
（５）蓄積を終了し、蓄積された要求パケットを動作再現対象サーバに対して送信し、動作再現を実行する動作再現手段と、
（６）動作再現手段によって得られた再現時応答パケットを動作時に前記パケット蓄積手段によって蓄積された応答パケット情報と比較し、正しく再現されているか否かを確認する再現確認手段と
を備え、
動作を再現させるために必要となるネットワークパケット情報はそのまま蓄積し、再現していることを確認するために必要となるネットワークパケット情報は、ハッシュ値に変換して蓄積するパケット収集装置。【００６９】
以上の実施の形態２では、対象サーバが仮想計算機として動作している場合において、同じ物理計算機上にパケット収集装置を仮想計算機として配備した構成を示した。
この構成は、パケット収集装置に、対象サーバのネットワークパケット情報を仮想スイッチより収集するパケット情報収集手段を備えている。この構成により、仮想計算機環境上での対象サーバとパケット収集装置の動作を可能とした。【００７０】
以上の実施の形態３のパケット収集装置は、応答パケットがＴＣＰパケットであった場合、パケットのＩＰヘッダの部分のデータ長情報を変更するデータ長変換手段を備えている。このため、ＩＰヘッダの部分のデータ長情報変更することにより、パケットキャプチャ機能による確認が可能である。【００７１】
以上の実施の形態３のパケット収集装置は、
応答パケットがＵＤＰパケットであった場合、パケットのＩＰヘッダの部分のデータ長情報ならびにＵＤＰヘッダの部分のデータ長情報を変更するデータ長変換手段を備えている。
このため、データ長情報を変更することにより、パケットキャプチャ機能による確認が可能である。【００７２】
以上の実施の形態３のパケット収集装置は、
応答パケットがＩＣＭＰパケットであった場合にはハッシュ値変換を実施しない応答データハッシュ値変換手段を備えている。このため、死活確認やタイムスタンプ情報などにおいて、再現時のパケットを利用することができる。【００７３】
以上の実施の形態３のパケット収集装置は、応答パケットがＴＣＰ、ＵＤＰ、ＩＣＭＰ以外のプロトコルであった場合には、収集した応答パケットを破棄する応答データハッシュ値変換手段を備えている。このため、動作確認には必要のないパケット情報を蓄積しないので、ディスクに書き込む情報量の削減ができる。【００７４】
以上の実施の形態４のパケット収集装置は、
収集したパケットを一時的に保存する複数のパケット格納バッファと、
一時的にメモリ上に格納するために利用可能なパケット格納バッファのリストを保持したパケット格納バッファキューと、
一時的に格納されたパケット格納バッファのうち、領域が一杯になり、ディスクに書き込む対象となったパケット格納バッファのリストを保持したパケット蓄積バッファキューと
を備えている。
そして、パケット一時蓄積手段は、パケット情報収集手段により収集され、応答データハッシュ値変換手段、データ長変換手段にて変換された各パケット情報をパケット格納バッファキューの先頭に格納されているパケット格納バッファに空き容量がある場合には、そのまま格納し、空き容量がないと判断した場合には、空き容量がなくなったパケット格納バッファをパケット格納バッファキューから削除し、パケット蓄積バッファキューに追加すると共に、パケット格納バッファキューの先頭となったパケット格納バッファに格納する。また、パケット蓄積手段は、パケット蓄積バッファキューからパケット格納バッファキューの内容を読み出し、ディスクに書き込むと共にすべての情報を書き込んだ後、パケット格納バッファの内容をクリアし、パケット蓄積バッファキューから削除し、パケット格納バッファキューに追加する。
このように、実施の形態４のパケット収集装置２０は、パケットの収集速度とパケットの蓄積速度との違いを吸収することが可能である。【００７５】
以上の実施の形態４のパケット収集装置２０は、パケット格納バッファに格納されているパケット情報をディスクに書き出す際、圧縮を行い、ディスクに書き込むパケット蓄積手段を備えている。これにより、ディスクに書き込む情報量の削減が可能である。
【図面の簡単な説明】
【００７６】
【図１】実施の形態１の動作再現システム１０００の構成図。
【図２】実施の形態１の動作再現システム１０００の動作概概要を示す図。
【図３】実施の形態１の応答パケットのデータ形式を示す図。
【図４】実施の形態１のパケット収集装置２０のパケット収集動作のフローチャート。
【図５】実施の形態１のパケット収集装置２０による動作再現処理を示すフローチャート。
【図６】実施の形態１のパケット収集装置２０による再現動作の確認処理を示すフローチャート。
【図７】図６を補足説明する図。
【図８】実施の形態２の仮想計算機の構成図。
【図９】実施の形態２の再現装置２２０を分離した構成を示す図。
【図１０】実施の形態３のパケット収集装置２０の処理フロー。
【図１１】実施の形態３のＵＤＰパケット７０のパケット構造を示す図。
【図１２】実施の形態４のパケット収集装置２０の構成図。
【図１３】実施の形態４のパケット一時蓄積部４００の動作のフローチャート。
【図１４】実施の形態４のパケット蓄積部２４の動作のフローチャート。
【図１５】実施の形態５のパケット収集装置２０の外観を示す図。
【図１６】実施の形態５のパケット収集装置２０のハードウェア資源を示す図。
【符号の説明】
【００７７】
１０  対象サーバ、２０  パケット収集装置、２１  パケット情報収集部、２２  応答データハッシュ値変換部、２３  データ長変換部、２４  パケット蓄積部、２５  動作再現部、２６  再現確認部、２７  パケット情報格納部、３０  ハブ、３１  仮想スイッチ、４０  通信回線、５０  端末、６０  応答パケット、６１，６１ａ  ヘッダ部分、６２  データ部分、６２ａ  ハッシュ値、６３ａ  データ長情報、６４，６４ａ  データ長情報、６５  フラグ、７０  ＵＤＰパケット、１００  物理計算機、１１０  対象サーバ、１２０  パケット収集装置、２２０  再現装置、４００  パケット一時蓄積部、４３１  パケット格納キュー、４３２  パケット蓄積キュー、１０００  動作再現システム。
【図１】
2010082289.tif 000003
【図２】
2010082289.tif 000004
【図３】
2010082289.tif 000005
【図４】
2010082289.tif 000006
【図５】
2010082289.tif 000007
【図６】
2010082289.tif 000008
【図７】
2010082289.tif 000009
【図８】
2010082289.tif 000010
【図９】
2010082289.tif 000011
【図１０】
2010082289.tif 000012
【図１１】
2010082289.tif 000013
【図１２】
2010082289.tif 000014
【図１３】
2010082289.tif 000015
【図１４】
2010082289.tif 000016
【図１５】
2010082289.tif 000017
【図１６】
2010082289.tif 000018
【国際調査報告】
2010082289.tif 000019
2010082289.tif 000020
2010082289.tif 000021
2010082289.tif 000022