(57)【特許請求の範囲】
【請求項１】
検証系のＩＰアドレス空間に含まれる複数のアドレスを一かたまりとしたアドレスブロックに対応させて前記アドレスブロックのネットワークアドレスをマスクするビット数を示しており前記ネットワークアドレスにより識別されるネットワークで使用可能なアドレスの個数を計算可能なネットマスク長と前記ネットワークで使用可能なアドレスの使用情報とを記憶する記憶部を有し、実動系のＩＰアドレス空間に含まれるアドレスを有する第１の装置と前記検証系のＩＰアドレス空間に含まれるアドレスを有する第２の装置とに通信可能なコンピュータに、以下の処理を実行させるプログラムであって、
前記実動系のＩＰアドレス空間に含まれる第１のアドレス群の各アドレスを有する各送信元が前記第１の装置に送信した第１のパケット群を取得し、
複数のアドレスを一かたまりとし前記第１のアドレス群が属するアドレスブロックの個数とネットマスク長とに基づいて、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定し、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長となるアドレスブロックを選択し、
選択したアドレスブロックが有する第２のアドレス群の各々のアドレスを前記第１のパケット群の各々のパケットの送信元として設定するとともに前記第２の装置が有するアドレスを前記第１のパケット群の各々のパケットの宛先として設定した第２のパケット群を生成して、生成した前記第２のパケット群を前記第２の装置に送信する、
処理を実行させることを特徴とする試験プログラム。
【請求項２】
前記選択する処理は、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長で最も大きいネットマスク長となるアドレスブロックを選択する、
ことを特徴とする請求項１に記載の試験プログラム。
【請求項３】
前記特定する処理は、
前記記憶部を参照して、前記第１のアドレス群が属するアドレスブロックのネットマスク長から、複数のアドレスを一かたまりとし前記第１のアドレス群が属するアドレスブロックの個数に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出することにより、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定することを特徴とする請求項１または２に記載の試験プログラム。
【請求項４】
検証系のＩＰアドレス空間に含まれる複数のアドレスを一かたまりとしたアドレスブロックに対応させて前記アドレスブロックのネットワークアドレスをマスクするビット数を示しており前記ネットワークアドレスにより識別されるネットワークで使用可能なアドレスの個数を計算可能なネットマスク長と前記ネットワークで使用可能なアドレスの使用情報とを記憶する記憶部を有し、実動系のＩＰアドレス空間に含まれるアドレスを有する第１の装置と前記検証系のＩＰアドレス空間に含まれるアドレスを有する第２の装置とに通信可能なコンピュータに、以下の処理を実行させるプログラムであって、
前記実動系のＩＰアドレス空間に含まれる第１のアドレス群の各アドレスを有する各送信元が前記第１の装置に送信した第１のパケット群を取得し、
前記第１のアドレス群のいずれかのアドレスのビット数から、前記第１のアドレス群の各々のアドレスの個数に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出することにより、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定し、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長となるアドレスブロックを選択し、
選択したアドレスブロックが有する第２のアドレス群の各々のアドレスを前記第１のパケット群の各々のパケットの送信元として設定するとともに前記第２の装置が有するアドレスを前記第１のパケット群の各々のパケットの宛先として設定した第２のパケット群を生成して、生成した前記第２のパケット群を前記第２の装置に送信する、
処理を実行させることを特徴とする試験プログラム。
【請求項５】
検証系のＩＰアドレス空間に含まれる複数のアドレスを一かたまりとしたアドレスブロックに対応させて前記アドレスブロックのネットワークアドレスをマスクするビット数を示しており前記ネットワークアドレスにより識別されるネットワークで使用可能なアドレスの個数を計算可能なネットマスク長と前記ネットワークで使用可能なアドレスの使用情報とを記憶する記憶部を有し、実動系のＩＰアドレス空間に含まれるアドレスを有する第１の装置と前記検証系のＩＰアドレス空間に含まれるアドレスを有する第２の装置とに通信可能なコンピュータに、以下の処理を実行させるプログラムであって、
前記実動系のＩＰアドレス空間に含まれる第１のアドレス群の各アドレスを有する各送信元が前記第１の装置に送信した第１のパケット群を取得し、
前記第１のアドレス群のいずれかのアドレスのビット数から、所定の期間において前記第１のアドレス群の各々のアドレスが同時に使用された数が最大となった値に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出することにより、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定し、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長となるアドレスブロックを選択し、
選択したアドレスブロックが有する第２のアドレス群の各々のアドレスを前記第１のパケット群の各々のパケットの送信元として設定するとともに前記第２の装置が有するアドレスを前記第１のパケット群の各々のパケットの宛先として設定した第２のパケット群を生成して、生成した前記第２のパケット群を前記第２の装置に送信する、
処理を実行させることを特徴とする試験プログラム。
【請求項６】
実動系のＩＰアドレス空間に含まれるアドレスを有する第１の装置と検証系のＩＰアドレス空間に含まれるアドレスを有する第２の装置とに通信可能な試験装置であって、
前記検証系のＩＰアドレス空間に含まれる複数のアドレスを一かたまりとしたアドレスブロックに対応させて前記アドレスブロックのネットワークアドレスをマスクするビット数を示しており前記ネットワークアドレスにより識別されるネットワークで使用可能なアドレスの個数を計算可能なネットマスク長と前記ネットワークで使用可能なアドレスの使用情報とを記憶する記憶部と、
前記実動系のＩＰアドレス空間に含まれる第１のアドレス群の各アドレスを有する各送信元が前記第１の装置に送信した第１のパケット群を取得する取得部と、
複数のアドレスを一かたまりとし前記第１のアドレス群が属するアドレスブロックの個数とネットマスク長とに基づいて、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定する特定部と、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長となるアドレスブロックを選択する選択部と、
選択したアドレスブロックが有する第２のアドレス群の各々のアドレスを前記第１のパケット群の各々のパケットの送信元として設定するとともに前記第２の装置が有するアドレスを前記第１のパケット群の各々のパケットの宛先として設定した第２のパケット群を生成して、生成した前記第２のパケット群を前記第２の装置に送信する送信部と、
を備えることを特徴とする試験装置。
【請求項７】
検証系のＩＰアドレス空間に含まれる複数のアドレスを一かたまりとしたアドレスブロックに対応させて前記アドレスブロックのネットワークアドレスをマスクするビット数を示しており前記ネットワークアドレスにより識別されるネットワークで使用可能なアドレスの個数を計算可能なネットマスク長と前記ネットワークで使用可能なアドレスの使用情報とを記憶する記憶部を有し、実動系のＩＰアドレス空間に含まれるアドレスを有する第１の装置と前記検証系のＩＰアドレス空間に含まれるアドレスを有する第２の装置とに通信可能なコンピュータが、以下の処理を実行する方法であって、
前記実動系のＩＰアドレス空間に含まれる第１のアドレス群の各アドレスを有する各送信元が前記第１の装置に送信した第１のパケット群を取得し、
複数のアドレスを一かたまりとし前記第１のアドレス群が属するアドレスブロックの個数とネットマスク長とに基づいて、前記第１のアドレス群に含まれるアドレスの個数以上のアドレスを有することを表すネットマスク長を特定し、
前記記憶部を参照して、未使用のアドレスブロック群のうち、特定したネットマスク長以下のネットマスク長となるアドレスブロックを選択し、
選択したアドレスブロックが有する第２のアドレス群の各々のアドレスを前記第１のパケット群の各々のパケットの送信元として設定するとともに前記第２の装置が有するアドレスを前記第１のパケット群の各々のパケットの宛先として設定した第２のパケット群を生成して、生成した前記第２のパケット群を前記第２の装置に送信する、
処理を実行することを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象装置の試験を行う試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【０００２】
従来から、クライアント−サーバ間の性能評価の技術が開示されている。たとえば、システムの移行などを行う際、検証系サーバを迅速かつ正確に検証するための事前検証試験を行う技術が求められている。事前検証試験の技術としては、実動系のクライアント−サーバ間の通信を、検証系のクライアント−サーバ間で再現することになる。したがって、試験装置は、実動系でのクライアント−サーバ間の通信をキャプチャし、検証系でのクライアント−サーバ間の通信となるようキャプチャデータを変換した後、検証系で変換後のパケットを送信することで、通信の再現を行うことができる。
【０００３】
キャプチャデータ内のアドレス変換について、たとえば、検証データの実動系サーバに宛てられた宛先アドレスを擬似装置のアドレスに変換する技術が開示されている。また、複数のプライベートネットワークを変換する技術において、マスク変換対象定義テーブルと、各プライベートネットワークの識別子を用いて、各プライベートネットワークへのネットワークアドレスを所定のネットマスク値に変換することが開示されている（たとえば、下記特許文献１〜３を参照。）。上述のようなアドレスの技術を適用して、試験装置は、実動系のアドレスの変換先、検証系で用いるアドレスブロック内のアドレスに変換することで、事前検証試験を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２２０４８７号公報
【特許文献２】特開２００６−１１９８６７号公報
【特許文献３】特開２０００−２５３００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術において、検証系で用いるアドレスブロックにて、アドレスブロックが有するアドレス数が少ない場合、実動系のアドレス全てを変換できない可能性があり、事前検証試験の実行が困難となる。
【０００６】
本発明は、１つの側面では、実動系のアドレスを検証用のアドレスに変換でき、事前検証試験を実行できる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、アドレスブロックに対応させてネットマスク長とアドレスブロックの使用情報とを記憶する記憶部を有するコンピュータに、第１のアドレス群を送信元として第１の装置に対して送信した第１のパケット群を取得し、記憶部を参照して、第１のアドレス群が属するアドレスブロックの個数とアドレスブロックのネットマスク長とを取得し、取得したアドレスブロックの個数とネットマスク長とに基づいて、第１のアドレス群に含まれるアドレス数に応じてビット数分減じたネットマスク長を算出し、記憶部を参照して、未使用のアドレスブロック群のうち、算出されたネットマスク長以下のネットマスク長となるアドレスブロックを選択し、選択されたアドレスブロックが有する第２のアドレス群の各々のアドレスに第１のパケット群の各々のパケットの送信元を設定した第２のパケット群を第２の装置に送信する試験プログラム、試験装置、および試験方法が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、実動系のアドレスを検証用のアドレスに変換でき、事前検証試験を実行できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、プールアドレスブロックの選択方法の一例を示す説明図である。
【図２】図２は、試験装置１００の接続例を示すブロック図である。
【図３】図３は、実施の形態１で用いられるコンピュータのハードウェア例を示すブロック図である。
【図４】図４は、試験装置１００の機能を示すブロック図である。
【図５】図５は、パケット記憶情報４２１の記憶内容の一例を示す説明図である。
【図６】図６は、アドレスブロック情報４２２の記憶内容の一例を示す説明図である。
【図７】図７は、ＩＰアドレス対応情報４２３の記憶内容の一例を示す説明図である。
【図８】図８は、フロー情報４２４の記憶内容の一例と適用例を示す説明図である。
【図９】図９は、プールアドレスブロックの選択方法の一例を示す説明図である。
【図１０】図１０は、ＩＰアドレスの変換方法の例を示す説明図である。
【図１１】図１１は、パケットの変換方法の例を示す説明図である。
【図１２】図１２は、変換後のパケットの送出方法の例を示す説明図である。
【図１３】図１３は、サーバの性能評価方法の一例を示す説明図である。
【図１４】図１４は、サーバの性能評価方法の他の例を示す説明図である。
【図１５】図１５は、パケット読込処理の一例を示すフローチャートである。
【図１６】図１６は、アドレスブロック登録処理手順の一例を示すフローチャートである。
【図１７】図１７は、アドレスブロック選択処理手順の一例を示すフローチャートである。
【図１８】図１８は、パケット変換・送出処理手順の一例を示すフローチャートである。
【図１９】図１９は、第１および第２の対象装置の相対的な性能評価処理手順の一例を示すフローチャートである。
【図２０】図２０は、第１および第２の対象装置の相対的な性能評価処理手順の他の例を示すフローチャートである。
【図２１】図２１は、従来の実動系サーバと検証系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図２２】図２２は、従来の実動系サーバと検証系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【図２３】図２３は、実施の形態２にかかるＩＰアドレスの変換方法の例を示す説明図である。
【図２４】図２４は、実施の形態２にかかるＩＰアドレス対応情報４２３の記憶内容の一例を示す説明図である。
【図２５】図２５は、実施の形態２にかかるアドレスブロック登録処理手順の一例を示すフローチャートである。
【図２６】図２６は、実施の形態２にかかるアドレスブロック選択処理手順の一例を示すフローチャートである。
【図２７】図２７は、実施の形態３にかかるＩＰアドレス対応情報２７０１の記憶内容の一例を示す説明図である。
【図２８】図２８は、実施の形態３にかかるＩＰアドレス対応情報２７０１の時間変化に応じたアドレス変換の一例を示す説明図である。
【図２９】図２９は、実施の形態３にかかるＩＰアドレス対応情報２７０１の時間変化に応じたアドレス変換の他の例を示す説明図である。
【図３０】図３０は、実施の形態３にかかるアドレスブロック選択処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、開示の試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。
【００１１】
図１は、プールアドレスブロックの選択方法の一例を示す説明図である。実動系アドレス空間１０１は、実動系のクライアント−サーバ間の通信にて使用されているアドレス空間であり、検証系アドレス空間１０２は、検証系のクライアント−サーバ間の通信にて使用されているアドレス空間である。なお、アドレスブロックとは、一かたまりになったＩＰアドレス群のことであり、ネットワークアドレスとネットマスク長を用いて示される。たとえば、アドレスブロック１９２．１６８．１０．０／２７は、１９２．１６８．１０．０〜１９２．１６８．１０．３１のＩＰアドレス群を有する。
【００１２】
試験装置１００は、実動系のクライアント−サーバ間を流れるパケット群を取得し、各パケットが属するアドレスブロックの個数とネットマスク長を取得する。図１の例では、パケットが属するアドレスブロックとして、以下の８つのアドレスブロックを取得したことを想定する。１つ目の取得したアドレスブロックは、１９２．１６８．１０．０／２７（以下、アドレスブロックＡｂ２７−０）となる。また、実動系に関する記号を“Ａ”、検証系に関する記号を“Ｂ”とする。
【００１３】
以下、取得するアドレスブロックは、１９２．１６８．１０．３２／２７（以下、アドレスブロックＡｂ２７−１）、１９２．１６８．１０．６４／２７（以下、アドレスブロックＡｂ２７−２）、１９２．１６８．１０．９６／２７（以下、アドレスブロックＡｂ２７−３）、１９２．１６８．１０．１２８／２７（以下、アドレスブロックＡｂ２７−４）、１９２．１６８．１０．１６０／２７（以下、アドレスブロックＡｂ２７−５）、１９２．１６８．１０．１９２／２７（以下、アドレスブロックＡｂ２７−６）、１９２．１６８．１０．２２４／２７（以下、アドレスブロックＡｂ２７−７）となる。それぞれのアドレスブロックには３２個のアドレスが存在している。
【００１４】
試験装置１００は、取得したアドレスブロックの個数８個と、ネットマスク長２７ビットから、アドレス数に応じてビット数減じたネットマスク長を算出する。アドレスブロックは、ネットマスク長が１ビット小さくなるごとにアドレス数が２倍となるため、８倍のアドレス数を有するにはネットマスク長が３ビット小さい値となる。したがって、試験装置１００は、ネットマスク長２７から３ビット減じた２４ビットを算出する。
【００１５】
続けて、試験装置１００は、検証系アドレス空間１０２において、２４ビット以下のアドレスブロックを事前検証試験のアドレスブロックとして選択する。図１における検証系アドレス空間１０２には、未使用のアドレスブロックとして、３つのアドレスブロックが存在することを想定している。具体的には、１０．１０．１０．０／２７（以下、アドレスブロックＢｂ２７−０）、１０．１０．２０．０／２４（以下、アドレスブロックＢｂ２４）、１０．１０．８０．０／２１（以下、アドレスブロックＢｂ２１）である。また、試験装置１００は、事前検証試験に用いるアドレスブロックとして、普段は使用せずに収蔵しているプールアドレスブロックを用いる。
【００１６】
試験装置１００は、未使用のアドレスブロックのうち、算出されたネットマスク長以下のネットマスク長となるアドレスブロックとなるアドレスブロックＢｂ２４を選択する。アドレスブロックＢｂ２４には、２５６個のアドレスが存在しており、実動系のアドレス数は、取得したアドレスブロックの個数８個＊３２＝２５６個である。したがって、実動系の全てのアドレスが検証系のアドレスに変換できるため、試験装置１００は、事前検証試験を実行することができる。変換後、試験装置１００は、実動系の全てのアドレスを検証系のアドレスに変換したパケットを検証用サーバＢに送信する。
【００１７】
図２は、試験装置１００の接続例を示すブロック図である。試験装置１００は、実動系クライアント−サーバ間におけるネットワークとなる実動系ネットワーク２０１と、検証系クライアント−サーバ間におけるネットワークとなる検証系ネットワーク２０２とを有する。実動系と検証系の両方のインターフェースは必ずしも有する必要はない。
【００１８】
初めに、実動系ネットワーク２０１には、試験装置１００、実動系サーバＡ０、実動系サーバＡ１、Ｌ３スイッチであるＬ３＃Ａ０１〜Ｌ３＃Ａ０７が含まれる。実動系サーバＡ０はＩＰアドレスとして２０．２０．２０．２０が割り当てられており、実動系サーバＡ１はＩＰアドレスとして２０．２０．２０．２１が割り当てられている。Ｌ３＃Ａ０１〜Ｌ３＃Ａ０７は、ＯＳＩ参照モデルにおけるネットワーク層（レイヤ３）データの転送を行う。また、試験装置１００は、実動系サーバＡ０と実動系サーバＡ１とＬ３＃Ａ０１の間に存在し、試験端末Ｃと実動系サーバＡ０または実動系サーバＡ１間のパケットデータをキャプチャする。
【００１９】
Ｌ３＃Ａ０１は、実動系サーバＡ０、実動系サーバＡ１、Ｌ３＃Ａ０２、Ｌ３＃Ａ０３、アドレスブロックＡｂ１６と接続している。Ｌ３＃Ａ０２は、Ｌ３＃Ａ０１、Ｌ３＃Ａ０４、Ｌ３＃Ａ０５と接続している。Ｌ３＃Ａ０３は、Ｌ３＃Ａ０１、Ｌ３＃Ａ０４、Ｌ３＃Ａ０５、アドレスブロックＡｂ１７と接続している。以下、Ｌ３＃Ａ０４〜Ｌ３＃Ａ０７についても、Ｌ３＃Ａ０ｘ（ｘは自然数）や、アドレスブロックＡｂ２０、アドレスブロックＡｂ２７−０、アドレスブロックＡｂ２７−１と接続している。図２の例にて、試験端末Ｃは、アドレスブロックＡｂ２７−０内に存在している。
【００２０】
次に、検証系ネットワーク２０２には、試験装置１００、検証系サーバＢ０、検証系サーバＢ１、Ｌ３スイッチであるＬ３＃Ｂ０１〜Ｌ３＃Ｂ０８が含まれる。検証系サーバＢ０はＩＰアドレスとして３０．３０．３０．３０が割り当てられており、検証系サーバＢ１はＩＰアドレスとして３０．３０．３０．３１が割り当てられている。Ｌ３＃Ｂ０１〜Ｌ３＃Ｂ０８は、Ｌ３＃Ａ０１〜Ｌ３＃Ａ０７と同様にネットワーク層データの転送を行う。また、試験装置１００は、選択されたアドレスブロック内に存在する。たとえば、図２では、アドレスブロックＢｂ２４が選択された場合を想定しており、試験装置１００は、アドレスブロックＢｂ２４内に存在している。
【００２１】
Ｌ３＃Ｂ０１は、検証系サーバＢ０、検証系サーバＢ１、Ｌ３＃Ｂ０２、Ｌ３＃Ｂ０３、アドレスブロックＢｂ１６と接続している。Ｌ３＃Ｂ０２は、Ｌ３＃Ｂ０１、Ｌ３＃Ｂ０４、Ｌ３＃Ｂ０５と接続している。Ｌ３＃Ｂ０３は、Ｌ３＃Ｂ０１、Ｌ３＃Ｂ０４、Ｌ３＃Ｂ０５、アドレスブロックＢｂ１７と接続している。以下、Ｌ３＃Ｂ０４〜Ｌ３＃Ｂ０８についても、Ｌ３＃Ｂ０ｘ（ｘは自然数）や、アドレスブロックＢｂ２０、アドレスブロックＢｂ２１、アドレスブロックＢｂ２４、アドレスブロックＢｂ２７−０と接続している。
【００２２】
（試験装置１００、実動系サーバＡ、実動系サーバＢ、試験端末Ｃのハードウェア）
図３は、実施の形態１で用いられるコンピュータのハードウェア例を示すブロック図である。ここで、コンピュータとは、試験装置１００、実動系サーバＡ、検証系サーバＢ、クライアントである試験端末Ｃである。図３において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、を含む。また、各部はバス３１２によってそれぞれ接続されている。
【００２３】
ここで、ＣＰＵ３０１は、コンピュータの全体の制御を司る。ＲＯＭ３０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションといった各種プログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御に従って磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００２４】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御に従って光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２５】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２６】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、ネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２７】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを含み、データの入力を行う。また、キーボード３１０は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を有する装置であれば、マウス３１１は、トラックボールやジョイスティックなどであってもよい。なお、試験装置１００は、利用者から直接操作されることが想定されない場合、ディスプレイ３０８、キーボード３１０、マウス３１１、を含まなくてもよい。
【００２８】
（試験装置１００の機能）
次に、試験装置１００の機能について説明する。図４は、試験装置１００の機能を示すブロック図である。試験装置１００は、取得部４０１と、検出部４０２と、算出部４０３と、生成部４０４と、送信部４０５と、実行部４０６と、出力部４０７と、を含む。さらに、試験装置１００は、記憶部４１１と、取得部４１２と、取得部４１３と、算出部４１４と、選択部４１５と、を含む。
【００２９】
この制御部となる機能（取得部４０１〜出力部４０７、取得部４１２〜選択部４１５）は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などである。または、Ｉ／Ｆ３０９を経由して他のＣＰＵが実行することにより、その機能を実現してもよい。
【００３０】
また、試験装置１００は、パケット記憶情報４２１、アドレスブロック情報４２２、ＩＰアドレス対応情報４２３、フロー情報４２４にアクセス可能である。パケット記憶情報４２１〜フロー情報４２４は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７といった記憶装置に格納されている。
【００３１】
パケット記憶情報４２１は、キャプチャされたパケットが記憶されている。パケット記憶情報４２１の詳細については、図５にて後述する。アドレスブロック情報４２２は、アドレスブロックに対応させたネットマスク長とアドレスブロックの使用情報とを記憶する。アドレスブロック情報４２２の詳細は、図６で後述する。ＩＰアドレス対応情報４２３は、アドレスブロック情報４２２の１アドレスブロックについて記憶する。ＩＰアドレス対応情報４２３の詳細については、図７にて後述する。フロー情報４２４は、アドレスブロック内のＩＰアドレスが設定された装置と実動系、検証系のサーバとが通信するときに、どのＬ３スイッチを中継するかを記憶する情報である。フロー情報４２４の詳細については、図８にて後述する。
【００３２】
取得部４０１は、パケットを取得する機能を有する。具体的には、たとえば、試験端末Ｃと実動系サーバＡとの間で通信されるパケットや検証系サーバＢと試験装置１００との間で通信されるパケットをキャプチャする。取得部４０１で取得されたパケットは、ヘッダ・ペイロード解析され、パケット記憶情報４２１に格納される。
【００３３】
検出部４０２は、取得部４０１によって取得されたパケットの送信先の対象装置の試験開始から当該パケットを取得するまでの取得時間や、送信先の対象装置からの当該パケットの応答パケットを検出する機能を有する。たとえば、検出部４０２は、送信先の対象装置の試験開始時刻を基準としてパケットを取得したときの経過時間を取得時間として検出する。具体的に、試験開始時刻が“１２：００：００．０”であり、試験端末Ｃから送信されたパケットを取得した時刻が“１２：００：０２．１”であれば、検出部４０２は、取得時間ｔを２．１［秒］として検出する。また、検出部４０２は、“１２：００：０２．１”に取得したパケットに対する応答パケットを検出する。
【００３４】
また、取得されたパケットがセッション開始を示す同期パケットであり、かつ試験開始時刻が設定されていない場合、検出部４０２は、同期パケットの取得時間ｔをｔ＝０、すなわち、送信先の対象装置の試験開始時刻として検出してもよい。検出部４０２で検出された取得時刻はパケット記憶情報４２１に格納される。また、送信先の対象装置の試験開始時刻は、予め試験端末Ｃ、試験装置１００とで同一の試験開始時刻を設定しておけばよい。試験開始時刻となった段階で、試験端末Ｃがパケットを送信し、同時に試験装置１００がパケットキャプチャを開始することで、試験装置１００は、試験と関係のないパケットを拾う機会が減少するため、効率的に試験を行うことができる。
【００３５】
算出部４０３は、あるパケットがキャプチャされてからそのパケットに応答するパケットがキャプチャされるまでの時間間隔を算出する機能を有する。具体的には、あるパケットの取得時間からそのパケットに応答する応答パケットの取得時間との差の絶対値を時間間隔として算出する。
【００３６】
たとえば、算出部４０３は、試験端末Ｃから第１の対象装置に送信された第１のパケットとその応答パケットとなる第１の対象装置から試験端末Ｃへの第３のパケットとをキャプチャする。算出部４０３では、第３のパケットの取得時刻から第１のパケットの取得時刻を減算することで、第１の時間間隔を算出する。また、算出部４０３は、試験装置１００から第２の対象装置に送信された第２のパケットとその応答パケットとなる第２の対象装置から試験端末Ｃへの第４のパケットとをキャプチャする。算出部４０３では、第４のパケットの取得時刻から第２のパケットの取得時刻を減算することで、第２の時間間隔を算出する。算出部４０３で算出された時間間隔は、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）としてパケット記憶情報４２１に格納される。
【００３７】
生成部４０４は、パケットが第１の対象装置に送信された第１のパケットである場合、第１のパケットの情報のうち宛先を第２の対象装置のアドレスに書き換えた第２のパケットを生成する機能を有する。
【００３８】
具体的には、たとえば、試験開始後Ｘ分後に過去Ｘ分間分の送信パケット情報を取得し、宛先ＩＰアドレス、宛先ポート番号、シーケンス番号、確認応答番号を書き換える。シーケンス番号および確認応答番号はセッションを確立する際に乱数を使用するため、事前にセッションの確立を実行することとなる。
【００３９】
また、生成部４０４は、選択部４１５によって選択されたアドレスブロックが有する第２のアドレス群の各々のアドレスに第１のパケット群の各々のパケットの送信元を設定した第２のパケット群を生成してもよい。なお、第１のパケット群は、取得部４１２にて取得する。
【００４０】
たとえば、第１のパケット群が、送信元ＩＰが“１９２．１６８．１０．２”であるパケット１と“１９２．１６８．１０．３”であるパケット２であり、また、選択部４１５によって、アドレスブロックＢｂ２４が選択された場合を想定する。このとき、生成部４０４は、第２のアドレス群の各々のアドレスとして“１０．１０．２０．２”をパケット１の送信元に設定したパケット３、“１０．１０．２０．３”をパケット２の送信元に設定したパケット４を生成する。第２のパケット群は、パケット３とパケット４となる。生成された第２のパケット群は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００４１】
送信部４０５は、第２の対象装置の試験開始から第１のパケットを取得するまでの取得時間を経過したときに、生成部４０４によって生成された第２のパケットを第２の対象装置に送信する機能を有する。また、送信部４０５は、選択部４１５によって選択されたアドレスブロックが有する第２のアドレス群の各々のアドレスに第１のパケット群の各々のパケットの送信元を設定した第２のパケット群を第２の対象装置に送信する。また、第２のパケット群が生成部４０４によって生成されている場合、送信部４０５は、生成された第２のパケット群を第２の対象装置に送信してもよい。
【００４２】
実行部４０６は、第１〜第３の時間間隔ｄａ〜ｄｃを用いて、以下のように第１および第２の対象装置の相対的な性能評価処理を実行する。たとえば、実行部４０６は、第３の時間間隔ｄｃから第２の時間間隔ｄｂの減算結果と第１の時間間隔ｄａとの大小を比較する。
【００４３】
ｄａ＞ｄｃ−ｄｂとなる場合、実行部４０６は、第２の対象装置となる検証系サーバＢの方を、第１の対象装置となる実動系サーバＡよりも性能が高いと判断する。ｄａ＜ｄｃ−ｄｂとなる場合、実行部４０６は、第１の対象装置となる実動系サーバＡの方を、第２の対象装置となる検証系サーバＢよりも性能が高いと判断する。ｄａ＝ｄｃ−ｄｂとなる場合、実行部４０６は、第１の対象装置となる実動系サーバＡと第２の対象装置となる検証系サーバＢとは同一性能と判断する。
【００４４】
また、実行部４０６は、実動系でのパケットの受信間隔である第１の受信間隔ｄｅｔ１と、検証系でのパケットの受信間隔である第２の受信間隔ｄｅｔ２を用いて、以下のように第１および第２の対象装置の相対的な性能評価処理を実行してもよい。
【００４５】
ｄｅｔ１＞ｄｅｔ２となる場合、実行部４０６は、第２の対象装置となる検証系サーバＢの方を、第１の対象装置となる実動系サーバＡよりも性能が高いと判断する。ｄｅｔ１＜ｄｅｔ２の場合、実行部４０６は、第１の対象装置となる実動系サーバＡの方を、第２の対象装置となる検証系サーバＢよりも性能が高いと判断する。ｄｅｔ１＝ｄｅｔ２の場合、実行部４０６は、第１の対象装置となる実動系サーバＡと第２の対象装置となる検証系サーバＢとは同一性能と判断する。なお、実行結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００４６】
出力部４０７は、実行部４０６による実行結果を出力する機能を有する。具体的には、たとえば、実行部４０６による第１および第２の対象装置の相対的な性能評価の結果をディスプレイ３０８に表示したり、印刷出力したりする。
【００４７】
記憶部４１１は、アドレスブロックに対応させてネットマスク長とアドレスブロックの使用情報とを記憶する。具体的な記憶内容については、アドレスブロック情報４２２の説明にて説明を行う。
【００４８】
取得部４１２は、第１のアドレス群を送信元として第１の対象装置に対して送信した第１のパケット群を取得する機能を有する。たとえば、取得部４１２は、第１のアドレス群となる実動系アドレス空間１０１内のアドレスを送信元として第１の対象装置となる実動系サーバＡに対して送信した第１のパケット群を取得する。なお、取得したデータは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００４９】
取得部４１３は、記憶部４１１を参照して、第１のアドレス群が属するアドレスブロックの個数とアドレスブロックのネットマスク長とを取得する機能を有する。たとえば、取得部４１３は、アドレスブロックの個数として８、アドレスブロックのネットマスク長として２７ビットを取得する。なお、取得したデータは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００５０】
算出部４１４は、取得部４１３によって取得したアドレスブロックの個数とネットマスク長とに基づいて、第１のアドレス群に含まれるアドレス数に応じてビット数分減じたネットマスク長を算出する機能を有する。たとえば、取得したアドレスブロックの個数８個と、ネットマスク長２７ビットである場合を想定する。このとき、算出部４１４は、２７から３ビット小さい値として２４を算出する。
【００５１】
また、算出部４１４は、アドレスブロックのネットマスク長から、取得したアドレスブロックの個数に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出してもよい。具体的な計算については、図９にて後述する。なお、算出されたデータは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００５２】
選択部４１５は、記憶部４１１を参照して、未使用のアドレスブロック群のうち、算出されたネットマスク長以下のネットマスク長となるアドレスブロックを選択する。たとえば、算出部４１４によって、２４ビットが算出された場合、選択部４１５は、ネットマスク長が２４ビット以下となるアドレスブロックを選択する。
【００５３】
また、選択部４１５は、未使用のアドレスブロック群のうち、算出されたネットマスク長以下のネットマスク長で最も大きいネットマスク長となるアドレスブロックを選択してもよい。たとえば、選択部４１５は、ネットマスク長が１７、２０、２１、２４、２５となる未使用のアドレスブロック群が存在し、算出部４１４によって２４であると算出された場合、ネットマスク長が２４ビットであるアドレスブロックＢｂ２４を選択する。なお、選択されたアドレスブロックの情報は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【００５４】
図５は、パケット記憶情報４２１の記憶内容の一例を示す説明図である。パケット記憶情報４２１は、セッションＩＤ項目、時刻情報項目、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報項目、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目を有する。パケット記憶情報４２１には、パケットごとに各項目の値が格納される。図５で示すパケット記憶情報４２１は、各パケットをレコード４２１−１〜レコード４２１−１６として格納している。セッションＩＤ項目には、セッションＩＤが格納される。同一セッションであれば同一セッションＩＤが格納される。
【００５５】
時刻情報項目は、時間項目とＲＴＴ項目とを有する。時間項目には送信先の対象装置の試験開始からパケットを取得するまでの取得時間が格納される。たとえば、レコード４２１−１は最初にキャプチャされたパケットのレコードであるため、基準時刻ｔ＝０．０が格納される。
【００５６】
また、キャプチャされたパケットが実動系サーバＡまたは検証系サーバＢからのパケットである場合、ＲＴＴ項目にＲＴＴも格納される。ＲＴＴは、パケットがキャプチャされてからその応答パケットがキャプチャされるまでの時間間隔である。ＲＴＴは、算出部４０３で算出される。
【００５７】
ＩＰヘッダ情報項目は、送信元ＩＰ項目と宛先ＩＰ項目とを有する。送信元ＩＰ項目には、キャプチャされたパケットのＩＰヘッダに記述されている送信元ＩＰアドレスが格納される。また、宛先ＩＰ項目には、キャプチャされたパケットのＩＰヘッダに記述されている宛先ＩＰアドレスが格納される。図５では、試験端末ＣのＩＰアドレスを「１９２．１６８．１０．２」とし、実動系サーバＡのＩＰアドレスを「２０．２０．２０．２０」としている。したがって、１行目のレコード４２１−１は、試験端末Ｃから実動系サーバＡへのパケットを示しており、２行目のレコード４２１−２は、その応答パケットを示している。
【００５８】
ＴＣＰヘッダ情報項目は、送信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ（ＳＹＮ（同期）／ＡＣＫ（確認応答）／ＰＳＨ（プッシュ）／ＦＩＮ（通信終了）／ＲＳＴ（リセット要求））項目を有する。送信元ポート項目には、キャプチャされたパケットのＴＣＰヘッダに記述されている送信元ポート番号が格納される。宛先ポート項目には、キャプチャされたパケットのＴＣＰヘッダに記述されている宛先ポート番号が格納される。
【００５９】
シーケンス番号項目には、キャプチャされたパケットのＴＣＰヘッダに記述されているシーケンス番号が格納される。シーケンス番号の初期値は試験端末Ｃ・実動系サーバＡともに、キャプチャされたパケットの送信元で与えられたランダムな値である。
【００６０】
確認応答番号項目には、キャプチャされたパケットのＴＣＰヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、３ウェイ・ハンドシェイクでは、サーバが受け取ったＳＹＮパケットのシーケンス番号に１加算した値を確認応答番号とする。
【００６１】
フラグ項目には、パケットの種類（ＳＹＮ／ＡＣＫ／ＰＳＨ／ＦＩＮ／ＲＳＴ）を特定するフラグが格納される。たとえば、レコード４２１−１のパケットは、ＳＹＮパケットである。
【００６２】
アプリヘッダ情報項目には、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やＰＯＰ（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ）３／ＩＭＡＰ（Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）といった各アプリケーションに関するヘッダ情報が格納される。たとえば、ＨＴＴＰヘッダであれば、Ｃｏｏｋｉｅ情報等もアプリヘッダ情報項目に格納される。
【００６３】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。また、ＴＣＰ／ＩＰに従った通信は、３ウェイハンドシェイクによるセッション確立、データ転送、セッション終了を実行する一連の処理からなる。３ウェイハンドシェイクでは、まず試験端末ＣがＳＹＮパケット（シーケンス番号：試験端末Ｃ側の乱数、確認応答番号：０、ＳＹＮフラグ）をパケットとして実動系サーバＡに送る。
【００６４】
次に、そのＳＹＮパケットを受け取った実動系サーバＡがＳＹＮ／ＡＣＫパケット（シーケンス番号：実動系サーバＡ側の乱数、確認応答番号：ＳＹＮパケットのシーケンス番号＋１、ＳＹＮフラグ、ＡＣＫフラグ）を試験端末Ｃに送る。さらに、そのＳＹＮ／ＡＣＫパケットを受け取った試験端末ＣがＡＣＫパケット（シーケンス番号：実動系サーバＡ側の確認応答番号、確認応答番号：ＳＹＮ／ＡＣＫパケットのシーケンス番号＋１、ＡＣＫフラグ）をパケットとして実動系サーバＡに送る。図５に示した例では、レコード４２１−１〜レコード４２１−３のパケット群とレコード４２１−１４〜レコード４２１−１６のパケット群が、３ウェイハンドシェイクを実行するパケット群である。
【００６５】
図６は、アドレスブロック情報４２２の記憶内容の一例を示す説明図である。アドレスブロック情報４２２は、ネットマスク長、アドレスブロック、プールアドレスブロックフラグ、ＩＰアドレス対応情報４２３へのポインタという４つの項目を含む。アドレスブロック情報４２２は、アドレスブロックごとに各項目の値が格納される。図６で示すアドレスブロック情報４２２は、各アドレスブロックをレコード４２２−１〜レコード４２２−１３として格納している。また、アドレスブロック情報４２２は、ネットマスク長の降順で登録されている。なお、ネットマスク長は値が大きい程、含まれるアドレス数は少なくなる。
【００６６】
ネットマスク長項目には、アドレスブロックのネットワーク長が格納される。アドレスブロック項目には、登録済みのアドレスブロックのネットワークアドレスが格納される。プールアドレスブロックフラグ項目には、該当のアドレスブロックがプールアドレスブロックであるか否かを示すフラグが格納される。図６で示すプールアドレスブロックフラグ項目は、格納された値が１であればプールアドレスブロックであることを示している。
【００６７】
ＩＰアドレス対応情報４２３へのポインタ項目には、該当のアドレスブロックが有するアドレス群へのポインタが格納される。具体的にＩＰアドレス対応情報４２３へのポインタ項目には、該当のアドレスブロックが有するアドレスの一覧が格納されている。
【００６８】
たとえば、レコード４２２−１は、アドレスブロックＢｂ２７−０についての各項目が格納されている。レコード４２２−１は、アドレスブロックＢｂ２７−０のアドレスが１０．１０．１０．０／２７であり、プールアドレスブロックであることを示している。さらに、レコード４２２−１は、アドレスブロックＢｂ２７−０が有するアドレスとして、１０．１０．１０．０〜１０．１０．１０．３１があることを示している。
【００６９】
同様に、レコード４２２−２〜レコード４２２−８が、図６で図示していないが、アドレスブロックＢｂ２７−１〜アドレスブロックＢｂ２７−７を示している。続けて、レコード４２２−９がアドレスブロックＢｂ２４を示しており、レコード４２２−１０が、アドレスブロックＢｂ２１を示しており、レコード４２２−１１が、アドレスブロックＢｂ２０を示している。さらに、レコード４２２−１２が、アドレスブロックＢｂ１７を示しており、レコード４２２−１３が、アドレスブロックＢｂ１６を示している。
【００７０】
図７は、ＩＰアドレス対応情報４２３の記憶内容の一例を示す説明図である。ＩＰアドレス対応情報４２３は、プールアドレスブロック内ＩＰアドレス、使用フラグ、実動系クライアントＩＰアドレスという３つの項目を含む。プールアドレスブロック内ＩＰアドレス項目には、選択されたプールアドレスブロックに含まれるアドレスが格納される。使用フラグ項目には、プールアドレスブロックのアドレスが使用中かが格納される。実動系クライアントＩＰアドレス項目には、プールアドレスブロックのアドレスと対応する実動系クライアントのＩＰアドレスが格納される。
【００７１】
たとえば、図７で示すＩＰアドレス対応情報４２３は、アドレスブロックＢｂ２４のアドレスが登録されている。また、レコード４２３−１〜レコード４２３−３は、１０．１０．２０．０〜１０．１０．２０．２が使用中であることを示し、レコード４２３−４は、１０．１０．２０．３が未使用であることを示す。また、レコード４２３−３は、１０．１０．２０．２に対応する実動系クライアントとなる試験端末ＣのＩＰアドレスが、１９２．１６８．１０．２であることを示している。
【００７２】
図８は、フロー情報４２４の記憶内容の一例と適用例を示す説明図である。図８では、フロー情報４２４の記憶内容を示しており、さらに、符号８０１で示す説明図が、フロー情報４２４の適用例を示している。
【００７３】
フロー情報４２４は、アドレスブロック、ネットマスク長、宛先ＩＰアドレス、中継Ｌ３装置という４つの項目を含む。アドレスブロック項目には、対象となるアドレスブロックのネットワークアドレスが格納される。ネットマスク長項目には、対象となるアドレスブロックのネットマスク長が格納される。宛先ＩＰアドレス項目には、通信先となるサーバのＩＰアドレスが格納される。中継Ｌ３装置項目には、対象となるアドレスブロック内のＩＰアドレスが設定された装置と宛先ＩＰアドレスが設定されたサーバとの通信時に、中継するＬ３装置の識別情報が格納される。
【００７４】
また、符号８０１で示す説明図にて、実動系のネットワークには、図２で示した実動系ネットワーク２０１と検証系ネットワーク２０２を表示している。レコード４２４−１は、アドレスブロックＡｂ２７−０内のＩＰアドレスが割り当てられた装置が、２０．２０．２０．２０に通信する場合に、Ｌ３＃Ａ０１、Ｌ３＃Ａ０３、Ｌ３＃Ａ０５、Ｌ３＃Ａ０７を中継することを示している。レコード４２４−１が示す情報は、経路８０２となる。同様に、レコード４２４−２が示す情報は経路８０３を示しており、レコード４２４−３が示す情報は経路８０４を示しており、レコード４２４−４が示す情報は経路８０５を示している。
【００７５】
図９は、プールアドレスブロックの選択方法の一例を示す説明図である。図９では、実動系アドレス空間１０１とアドレスブロック情報４２２を参照して、事前検証試験に使用するプールアドレスブロックの選択方法について説明を行う。
【００７６】
試験装置１００は、実動系アドレス空間１０１から、８つのアドレスブロックが存在することを検出する。具体的には、実動系アドレス空間１０１には、アドレスブロックＡｂ２７−０〜アドレスブロックＡｂ２７−７の８つのアドレスブロックが存在している。
【００７７】
試験装置１００は、検出されたアドレスブロックＡｂ２７−０〜アドレスブロックＡｂ２７−７を集約するネットマスク長を算出する。具体的に、試験装置１００は、下記（１）式に従って、事前検証試験が実施可能なアドレスブロックのネットマスク長を算出する。
【００７８】
＝ネットマスク長−ＲＯＵＮＤＵＰ（ｌｏｇ２（アドレスブロック数））  …（１）
【００７９】
なお、ＲＯＵＮＤＵＰ関数は小数を切り上げる関数であり、ｌｏｇ２関数は、底を２とする対数を求める関数である。なお、（１）式では、ｌｏｇ２関数の結果を切り上げた後、ネットマスク長から減算しているが、ネットマスク長からｌｏｇ２関数の結果を減算した後、小数点以下を切り下げてもよい。この計算方法は、後述する（２）式でも有効である。図９の例では、アドレスブロック数が８、ネットマスク長が２７であるから、試験装置１００は、事前検証試験用のネットマスク長を（１）式より、下記のように算出する。
【００８０】
＝２７−ＲＯＵＮＤＵＰ（ｌｏｇ２（８））
＝２４
【００８１】
算出後、試験装置１００は、アドレスブロック情報４２２のプールアドレスブロックフラグが１となっているレコードのうち、算出されたアドレスブロック数以下となるレコードを先頭から順に検索していく。アドレスブロック情報４２２は、ネットマスク長の降順で登録されているため、一番早く条件に当てはまったレコードが、最適なネットマスク長に最も近く、事前検証試験が実施可能なアドレスブロックである。図９の例では、試験装置１００は、レコード４２２−９を選択する。
【００８２】
また、図９の例では、ネットマスク長が同一のアドレスブロックを検出していたが、ネットマスク長が異なるアドレスブロックを検出した場合も、（１）式で算出できる場合がある。たとえば、試験装置１００が、ネットマスク長が２７のアドレスブロックが８個とネットマスク長が２４のアドレスブロックが８個を検出した場合を想定する。
【００８３】
このとき、試験装置１００は、ネットマスク長が大きいブロックサイズから集約する。初めに、試験装置１００は、ネットマスク長：２７に対して（１）式を適用する。
【００８４】
＝２７−ＲＯＵＮＤＵＰ（ｌｏｇ２（８））
＝２４
【００８５】
このように、試験装置１００は、（１）式を算出することにより、ネットマスク長が２７となるアドレスブロック８個が、ネットマスク長が２４のアドレスブロック１個に集約できるという結果を得る。これにより、ネットマスク長が２４のアドレスブロックが１つ増え、８個から９個になる。続けて、試験装置１００は、ネットマスク長：２４に対して（１）式を適用する。
【００８６】
＝２４−ＲＯＵＮＤＵＰ（ｌｏｇ２（９））
＝２０
【００８７】
このように、試験装置１００は、事前検証試験用の最適なネットマスク長を２０であると算出する。たとえば、試験装置１００は、事前検証試験用のアドレスブロックとして、アドレスブロックＢｂ２０を選択する。
【００８８】
図１０は、ＩＰアドレスの変換方法の例を示す説明図である。図１０では、実動系アドレス空間１０１内のＩＰアドレスと、プールアドレスブロック内のＩＰアドレスとの変換方法について説明する。具体的な変換方法として、図１０では、アドレスブロックＡｂ２７−０〜アドレスブロックＡｂ２７−７内のＩＰアドレスを、アドレスブロックＢｂ２４内のＩＰに変換する場合を想定する。このとき、試験装置１００は、実動系のＩＰアドレス１９２．１６８．１０．ＸをアドレスブロックＢｂ２４内のＩＰアドレス１０．１０．２０．Ｘに書き換える。たとえば、試験装置１００は、アドレスブロックＡｂ２７−０内の１９２．１６８．１０．２をアドレスブロックＢｂ２４内のＩＰアドレス１０．１０．２０．２に変換する。
【００８９】
このように変換する場合、試験装置１００は、ＩＰアドレス対応情報４２３のプールアドレスブロック内ＩＰアドレス項目に変換先のＩＰアドレスとなる１０．１０．２０．２を設定する。続けて、試験装置１００は、実動系クライアントＩＰアドレス項目に１９２．１６８．１０．２を設定し、使用フラグ項目に１を設定する。
【００９０】
図１１は、パケットの変換方法の例を示す説明図である。図１１では、試験装置１００は、実動系クライアントとなる試験端末Ｃの通信結果であるパケットデータ１１０１を、検証系クライアントでのパケットデータ１１０２のように変換する。
【００９１】
なお、図１１では、パケットデータ１１０１−１〜パケットデータ１１０１−４のうち、上り方向のパケットであるパケットデータ１１０１−１、パケットデータ１１０１−３について変換し、パケットデータ１１０２−１、パケットデータ１１０２−３を得ている。また、パケットデータ１１０１−２、パケットデータ１１０１−４は、実動系サーバからのパケットデータであり、パケットデータ１１０２−２、パケットデータ１１０２−４は、検証系サーバからのパケットデータである。
【００９２】
具体的に、試験装置１００は、セッションＩＤ、送信元ＩＰアドレス、確認応答番号を変換する。また、図１１では図示していないが、試験装置１００は、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、宛先ＩＰアドレス、ＩＰヘッダのチェックサム、ＴＣＰヘッダのチェックサムなどを適切に変換する。
【００９３】
ＩＰアドレスの変換方法について、試験装置１００は、送信元ＩＰについて実動系クライアントのＩＰアドレスから、プールアドレスブロック内のＩＰアドレスに変換する。また、試験装置１００は、宛先ＩＰについて、実動系サーバのＩＰアドレスから検証系サーバのＩＰアドレスに変換する。
【００９４】
確認応答番号の変換方法について、試験装置１００が検証系サーバと３ウェイハンドシェイクを行う場合、検証系サーバが試験装置１００に通知するシーケンス番号の初期値を取得し、試験装置１００は受信した初期値を基にして変換する。なお、検証系サーバが取得する初期値は、乱数であるため、試験装置１００は乱数の値を予測することはできない。しかし、３ウェイハンドシェイク後の通信で、シーケンス番号が増加する割合は実動系と検証系で同じであることが予測されるため、試験装置１００は、実動系のパケットデータを基に確認応答番号を変換する。また、ＨＴＴＰヘッダのＣｏｏｋｉｅ情報などについては、変換を行う情報と変換を行わなくてよい情報とを事前に情報として記録し、試験装置１００は、変換を行う情報について変換する。
【００９５】
セッションＩＤの変換方法について、通常サーバが通信を行うたびにそれぞれ違う値を生成するため、試験装置１００は、サーバ固有の情報として処理を行う。具体的に、検証系サーバは、生成したセッションＩＤをＣｏｏｋｉｅの中に埋め込んでクライアント相当の試験装置１００に送信する。セッションＩＤを受け取った試験装置１００は、通信を行うときには受け取ったセッションＩＤを使用する。
【００９６】
図１２は、変換後のパケットの送出方法の例を示す説明図である。図１１で示したパケットデータ１１０１−１がパケットＳ１Ａ（第１のパケット）、パケットデータ１１０１−２がパケットＲ１Ａ（第３のパケット）を示している。また、パケットデータ１１０１−３がパケットＳ２Ａ（第１のパケット）、パケットデータ１１０１−４がパケットＲ２Ａ（第３のパケット）を示している。
【００９７】
また、パケットデータ１１０２−１がパケットＳ１Ｂ（第２のパケット）、パケットデータ１１０２−２がパケットＲ１Ｂ（第４のパケット）を示している。また、パケットデータ１１０２−３がパケットＳ２Ｂ（第２のパケット）、パケットデータ１１０２−４がパケットＲ２Ｂ（第４のパケット）である。
【００９８】
図１２に示すように、検証系サーバＢへのパケットＳ２Ｂの送信が、検証系サーバＢからのパケットＲ１Ｂの受信に先立って実行されることとなる。したがって、実動系サーバＡに送信されたパケットＳ１Ａ、Ｓ２Ａの時間間隔と、検証系サーバＢに送信されたパケットＳ１Ｂ、Ｓ２Ｂの時間間隔が同一となる。
【００９９】
このように、ＴＣＰ／ＩＰに基づく通信ではヘッダ情報を適切に書き換えることにより、遠隔にある検証系サーバＢからの応答を待たずに実動系サーバＡからパケットを送出し続けることが可能である。これにより、検証系サーバＢは実動系サーバＡと同一処理を同一のタイミングで実行することとなり、検証系サーバＢに対し実動系サーバＡと同一の負荷試験を再現することができる。なお、本実施の形態にかかる通信は、ＵＤＰ／ＩＰに基づく通信であってもよい。
【０１００】
次に、図１３と図１４でサーバの性能評価方法の例を示す。実動系・検証系間のＲＴＴを計測する場合、試験装置１００は、図１３で示すサーバの性能評価方法を採用することができる。実動系・検証系間のＲＴＴを計測しない、または計測できない場合でも、試験装置１００は、図１４で示すサーバの性能評価方法を採用することでサーバの性能を評価することができる。
【０１０１】
図１３は、サーバの性能評価方法の一例を示す説明図である。初めに、試験装置１００は、パケットデータ１１０１、パケットデータ１１０２から、第１の時間間隔ｄａとなる実動系ＲＴＴ＿ｘ、第２の時間間隔ｄｂとなる検証系ＲＴＴ＿ｘを算出する。また、第３の時間間隔ｄｃとなる実動系・検証系間のＲＴＴを１．２［秒］であると想定する。ここで、ｘは自然数である。たとえば、実動系では、パケットデータ１１０１−１とパケットデータ１１０１−２の時刻情報より、試験装置１００は、実動系ＲＴＴ＿１＝２．３−２．１＝０．２［秒］を算出する。続けて、パケットデータ１１０１−３とパケットデータ１１０１−４の時刻情報より、試験装置１００は、実動系ＲＴＴ＿２＝２．６−２．４＝０．２［秒］を算出する。
【０１０２】
検証系についても同様に、パケットデータ１１０２−１とパケットデータ１１０２−２の時刻情報より、試験装置１００は、検証系ＲＴＴ＿１＝３．５−２．１＝１．４［秒］を算出する。続けて、パケットデータ１１０２−３とパケットデータ１１０２−４の時刻情報より、試験装置１００は、検証系ＲＴＴ＿２＝３．８−２．４＝１．４［秒］を算出する。
【０１０３】
実動系ＲＴＴ＿ｘ、検証系ＲＴＴ＿ｘの算出後、試験装置１００は、サーバ性能を評価するため、実動系ＲＴＴ＿ｘと（検証系ＲＴＴ＿ｘ−実動系・検証系間のＲＴＴ）を比較する。
【０１０４】
試験装置１００は、左辺が大きければ検証系の方が高性能であると判定し、左辺と右辺が等しければ検証系と実動系が同一性能であると判定し、右辺が大きければ実動系の方が高性能であると評価する。
【０１０５】
たとえば、試験装置１００は、実動系ＲＴＴ＿１＝０．２、検証系ＲＴＴ＿ｘ＝１．４、実動系・検証系間のＲＴＴ＝１．２としてサーバの評価を行う。
【０１０６】
０．２＝（１．４−１．２）
【０１０７】
このように、左辺と右辺が等しいため、試験装置１００は、検証系と実動系が同一性能であると評価する。
【０１０８】
図１４は、サーバの性能評価方法の他の例を示す説明図である。図１４で説明するサーバの性能評価方法は、上り方向のパケットの送信間隔が実動系と検証系で同じであることを想定している。上り方向のパケットの送信間隔が等しい場合、下り方向のパケットの時間間隔もＲＴＴの影響を受けずに同じになることが期待されるため、試験装置１００は、下り方向のパケット到着間隔を算出し、その伸縮からサーバの性能評価を行う。初めに、試験装置１００は、パケットデータ１１０１、パケットデータ１１０２から、実動系、検証系における第１の受信間隔ｄｅｔ１となるｄｅｔ（ＲｘＡ、ＲｙＡ）、第２の受信間隔ｄｅｔ２となるｄｅｔ（ＲｘＢ、ＲｙＢ）を算出する。ここで、ｘ、ｙは自然数である。なお、ｄｅｔ関数は、２つの引数の差分を求める関数である。
【０１０９】
試験装置１００は、パケットデータ１１０１からｄｅｔ（Ｒ１Ａ、Ｒ２Ａ）＝２．６−２．３＝０．３を算出する。続けて、試験装置１００は、パケットデータ１１０１からｄｅｔ（Ｒ１Ｂ、Ｒ２Ｂ）＝３．８−３．５＝０．３を算出する。ｄｅｔ（ＲｘＡ、ＲｙＡ）、ｄｅｔ（ＲｘＢ、ＲｙＢ）の算出後、試験装置１００は、実動系ｄｅｔ（Ｒ１、Ｒ２）と検証系ｄｅｔ（Ｒ１、Ｒ２）を比較する。
【０１１０】
試験装置１００は、左辺が大きければ検証系の方が高性能であると評価し、左辺と右辺が等しければ検証系と実動系が同一性能であると評価し、右辺が大きければ実動系の方が高性能であると評価する。
【０１１１】
前述の例であれば、試験装置１００は、実動系ｄｅｔ（Ｒ１、Ｒ２）＝０．３、検証系ｄｅｔ（Ｒ１、Ｒ２）＝０．３を代入してサーバの評価を行う。
【０１１２】
０．３＝０．３
【０１１３】
このように、左辺と右辺が等しいため、試験装置１００は、検証系と実動系が同一性能であると評価する。
【０１１４】
図１５は、パケット読込処理の一例を示すフローチャートである。試験装置１００は、パケットデータを読み込む（ステップＳ１５０１）。以降の処理について、試験装置１００は、読み込んだパケットデータについて処理を行う。試験装置１００は、送信元が検証系サーバか否かを判断する（ステップＳ１５０２）。送信元が検証系サーバである場合（ステップＳ１５０２：Ｙｅｓ）、試験装置１００は、タイムスタンプを取得し（ステップＳ１５０３）、ヘッダ、ペイロードをプロトコルフォーマットに従って解析する（ステップＳ１５０４）。
【０１１５】
解析後、試験装置１００は、パケット送信時刻、ＲＴＴ、ヘッダ、ペイロードをセッションごとに記憶する（ステップＳ１５０５）。ヘッダ、ペイロードの具体例として、試験装置１００は、ＩＰヘッダ情報に含まれる送信元ＩＰアドレス、宛先ＩＰアドレスを記憶する。また、試験装置１００は、ＴＣＰヘッダ情報に含まれる送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、ＳＹＮ／ＡＣＫ／ＰＳＨ／ＦＩＮ／ＲＳＴフラグを記憶する。さらに、試験装置１００は、ＨＴＴＰやＰＯＰ３／ＩＭＡＰ等の各アプリケーションに関するアプリヘッダ情報、ヘッダ以外の情報となるペイロードを記憶する。
【０１１６】
送信元が検証系サーバでない場合（ステップＳ１５０２：Ｎｏ）、試験装置１００は、送信元が実動系サーバか否かを判断する（ステップＳ１５０６）。送信元が実動系サーバである場合（ステップＳ１５０６：Ｙｅｓ）、試験装置１００は、タイムスタンプを取得し（ステップＳ１５０７）、ヘッダ、ペイロードをプロトコルフォーマットに従って解析する（ステップＳ１５０８）。解析後、試験装置１００は、パケット受信時刻、ＲＴＴ、ヘッダ、ペイロードをセッションごとに記憶する（ステップＳ１５０９）。
【０１１７】
送信元が実動系サーバでない場合（ステップＳ１５０６：Ｎｏ）、試験装置１００は、タイムスタンプを取得し（ステップＳ１５１０）、ヘッダ、ペイロードをプロトコルフォーマットに従って解析する（ステップＳ１５１１）。なお、ステップＳ１５０６：Ｎｏとなるパケットデータは、たとえば、送信元が試験端末Ｃとなるパケットデータである。解析後、試験装置１００は、パケット送信時刻、ＲＴＴ、ヘッダ、ペイロードをセッションごとに記憶する（ステップＳ１５１２）。
【０１１８】
ステップＳ１５０５、ステップＳ１５０９、ステップＳ１５１２の処理終了後、試験装置１００は、検証系サーバの応答を全て受信、または試験が完了したか否かを判断する（ステップＳ１５１３）。検証系サーバの応答を全て受信していない、かつ、試験完了していない場合（ステップＳ１５１３：Ｎｏ）、試験装置１００は、ステップＳ１５０１の処理に移行する。検証系サーバの応答を全て受信、または、試験完了した場合（ステップＳ１５１３：Ｙｅｓ）、試験装置１００は、パケット読込処理を終了する。
【０１１９】
図１６は、アドレスブロック登録処理手順の一例を示すフローチャートである。試験装置１００は、キャプチャデータから先頭のパケットデータを取得する（ステップＳ１６０１）。続けて、試験装置１００は、パケットデータを読み込んだか否かを判断する（ステップＳ１６０２）。パケットデータを取得した場合（ステップＳ１６０２：Ｙｅｓ）、試験装置１００は、読み込んだパケットデータのＳＹＮフラグがＯＮか否かを判断する（ステップＳ１６０３）。
【０１２０】
ＳＹＮフラグがＯＮである場合（ステップＳ１６０３：Ｙｅｓ）、試験装置１００は、送信元ＩＰアドレスを取得し（ステップＳ１６０４）、送信元ＩＰアドレスのアドレスブロックが登録済か否かを判断する（ステップＳ１６０５）。登録済でない場合（ステップＳ１６０５：Ｎｏ）、試験装置１００は、送信元ＩＰアドレスのアドレスブロックを登録する（ステップＳ１６０６）。登録後、試験装置１００は、キャプチャデータから次のパケットデータを取得し（ステップＳ１６０７）、ステップＳ１６０２の処理に移行する。
【０１２１】
また、ＳＹＮフラグがＯＦＦである場合（ステップＳ１６０３：Ｎｏ）、アドレスブロックが登録済である場合（ステップＳ１６０５：Ｙｅｓ）、試験装置１００は、ステップＳ１６０７の処理に移行する。全てのパケットデータについて処理を行い、パケットデータを取得しなかった場合（ステップＳ１６０２：Ｎｏ）、試験装置１００は、アドレスブロック選択処理を実行し（ステップＳ１６０８）、アドレスブロック登録処理を終了する。なお、アドレスブロック選択処理は、登録したアドレスブロックを引数として実行する。アドレスブロック選択処理の詳細については、図１７にて後述する。
【０１２２】
図１７は、アドレスブロック選択処理手順の一例を示すフローチャートである。アドレスブロック選択処理は、初めにアドレスブロックの集約を行い、次に集約されたアドレスブロックを含むことが可能なアドレスブロックをアドレスブロック情報４２２から選択する。
【０１２３】
試験装置１００は、登録されたアドレスブロックを集約対象のアドレスブロックに設定する（ステップＳ１７０１）。次に、試験装置１００は、集約対象のアドレスブロックのうち、ネットマスク長が最も大きいアドレスブロック群を取得する（ステップＳ１７０２）。試験装置１００は、取得したアドレスブロックに対して、（１）式を実行する（ステップＳ１７０３）。実行後、試験装置１００は、（１）式で得られたネットマスク長を有するアドレスブロックを、新たな集約対象のアドレスブロックとして設定する（ステップＳ１７０４）。
【０１２４】
続けて、試験装置１００は、集約対象のアドレスブロックが一つか否かを判断する（ステップＳ１７０５）。集約対象のアドレスブロックが複数ある場合（ステップＳ１７０５：Ｎｏ）、試験装置１００は、ステップＳ１７０２の処理に移行する。集約対象のアドレスブロックが１つである場合（ステップＳ１７０５：Ｙｅｓ）、試験装置１００は、アドレスブロック情報４２２から集約対象のネットマスク長以下のネットマスク長を有するプールアドレスブロックを選択する（ステップＳ１７０６）。なお、試験装置１００は、アドレスブロック情報４２２から集約対象のネットマスク長以下で最も大きいネットマスク長となるアドレスブロックを選択してもよい。選択後、試験装置１００は、アドレスブロック選択処理を終了する。
【０１２５】
図１８は、パケット変換・送出処理手順の一例を示すフローチャートである。まず、試験装置１００は、パケット記憶情報４２１のうち、所定時間帯Ｘ内の未選択の第１のパケット（のレコード）があるか否かを判断する（ステップＳ１８０１）。未選択の第１のパケットがある場合（ステップＳ１８０１：Ｙｅｓ）、試験装置１００は、未選択の第１のパケットを選択する（ステップＳ１８０２）。そして、試験装置１００は、選択された第１のパケットを生成部４０４により第２のパケットに生成してパケット記憶情報４２１に格納し（ステップＳ１８０３）、ステップＳ１８０１に戻る。
【０１２６】
一方、ステップＳ１８０１において、未選択の第１のパケットがない場合（ステップＳ１８０１：Ｎｏ）、試験装置１００は、計時を開始し（ステップＳ１８０４）、計時開始（第２の対象装置の試験開始）からの経過時間と同一の取得時間となる第２のパケットがあるか否かを判断する（ステップＳ１８０５）。同一取得時間の第２のパケットがある場合（ステップＳ１８０５：Ｙｅｓ）、試験装置１００は、その該当する第２のパケットを第２の対象装置に送信して（ステップＳ１８０６）、ステップＳ１８０５に戻る。
【０１２７】
一方、ステップＳ１８０５において、現在の経過時間と同一の取得時間となる第２のパケットがない場合（ステップＳ１８０５：Ｎｏ）、試験装置１００は、第４のパケットを取得（キャプチャ）したか否かを判断する（ステップＳ１８０７）。取得していない場合（ステップＳ１８０７：Ｎｏ）、試験装置１００は、ステップＳ１８０５に戻る。
【０１２８】
一方、取得した場合（ステップＳ１８０７：Ｙｅｓ）、試験装置１００は、第２の対象装置の試験開始からパケット（第４のパケット）をキャプチャした時刻までの取得時間を検出する（ステップＳ１８０８）。そして、ヘッダおよびペイロード解析を行い（ステップＳ１８０９）、試験装置１００は、第４のパケットの取得時間から対応する第２のパケットの取得時間を減算することでＲＴＴを算出する（ステップＳ１８１０）。
【０１２９】
このあと、試験装置１００は、取得時間、ＲＴＴ、ヘッダ、ペイロードをパケット記憶情報４２１に記録して（ステップＳ１８１１）、第４のパケットを全て受信したか否かを判断する（ステップＳ１８１２）。たとえば、対応する第２のパケットを用いてＲＴＴが算出されているか否かで判断する。
【０１３０】
全て受信されていない場合（ステップＳ１８１２：Ｎｏ）、試験装置１００は、ステップＳ１８０５に戻る。一方、全て受信された場合（ステップＳ１８１２：Ｙｅｓ）、試験装置１００は、パケット変換・送出処理を終了する。これにより、第２および第４のパケットが、図５に示したように、パケット記憶情報４２１に格納されることとなる。
【０１３１】
図１９は、第１および第２の対象装置の相対的な性能評価処理手順の一例を示すフローチャートである。まず、試験装置１００は、第１の時間間隔ｄａと第２の時間間隔ｄｂとを算出し（ステップＳ１９０１）、第２の時間間隔ｄｂから第３の時間間隔ｄｃを減算する（ステップＳ１９０２）。そして、試験装置１００は、第１の時間間隔ｄａと減算結果（ｄｂ−ｄｃ）とを比較する（ステップＳ１９０３）。
【０１３２】
ｄａ＞ｄｂ−ｄｃの場合（ステップＳ１９０３：＞）、試験装置１００は、第２の対象装置の方が高性能と判定し（ステップＳ１９０４）、ステップＳ１９０７の処理に移行する。また、ｄａ＜ｄｂ−ｄｃの場合（ステップＳ１９０３：＜）、試験装置１００は、第１の対象装置の方が高性能と判定し（ステップＳ１９０５）、ステップＳ１９０７の処理に移行する。
【０１３３】
さらに、ｄａ＝ｄｂ−ｄｃの場合（ステップＳ１９０３：＝）、試験装置１００は、第１の対象装置と第２の対象装置が同一性能と判定し（ステップＳ１９０６）、ステップＳ１９０７の処理に移行する。ステップＳ１９０７では、試験装置１００は、ステップＳ１９０４〜ステップＳ１９０６の判定結果を出力する（ステップＳ１９０７）。
【０１３４】
このように、第１の対象装置と第２の対象装置のＲＴＴの違いを無視できるため、試験者は、試験のために移動しなくてよく、試験時間の短縮化を図ることができる。また、試験装置１００は、対象装置の性能評価を迅速かつ高精度に評価することができる。
【０１３５】
図２０は、第１および第２の対象装置の相対的な性能評価処理手順の他の例を示すフローチャートである。まず、試験装置１００は、第１の受信間隔ｄｅｔ１を算出し（ステップＳ２００１）、第２の受信間隔ｄｅｔ２を算出する（ステップＳ２００２）。そして、試験装置１００は、第１の受信間隔ｄｅｔ１と第２の受信間隔ｄｅｔ２を比較する（ステップＳ２００３）。
【０１３６】
ｄｅｔ１＞ｄｅｔ２の場合（ステップＳ２００３：＞）、試験装置１００は、第２の対象装置の方が高性能と判定し（ステップＳ２００４）、ステップＳ２００７の処理に移行する。また、ｄｅｔ１＜ｄｅｔ２の場合（ステップＳ２００３：＜）、試験装置１００は、第１の対象装置の方が高性能と判定し（ステップＳ２００５）、ステップＳ２００７の処理に移行する。
【０１３７】
さらに、ｄｅｔ１＝ｄｅｔ２の場合（ステップＳ２００３：＝）、試験装置１００は、第１の対象装置と第２の対象装置は同一性能と判定し（ステップＳ２００６）、ステップＳ２００７の処理に移行する。ステップＳ２００７では、試験装置１００は、ステップＳ２００４〜ステップＳ２００６の判定結果を出力する（ステップＳ２００７）。
【０１３８】
このように、図２０で示す相対的な性能評価処理手順の他の例では、実動系サーバＡと検証系サーバＢ間のＲＴＴが未知であっても、試験装置１００は性能評価を行うことができる。
【０１３９】
図２１は、従来の実動系サーバと検証系サーバとの相対的な性能評価処理の一例を示す説明図である。図２１では、実動系サーバＡおよび試験端末Ｃが大阪にあり、検証系サーバＢは東京にあるものとする。実動系サーバＡは、たとえば、現在システムで稼動している現用系のコンピュータである。検証系サーバＢは、実動系サーバＡから移行予定のコンピュータである。この場合、試験実施者は、同一パターン（パケットとその応答パケット）で試験をする際、試験端末Ｃが実動系サーバＡからのパケットをキャプチャし、キャプチャしたパケットを実動系サーバＡと同一のシーケンスパターンで検証系サーバＢに流すこととなる。
【０１４０】
図２２は、従来の実動系サーバと検証系サーバとの相対的な性能評価処理の他の例を示す説明図である。実動系サーバＡは、たとえば、現在システムで稼動している現用系のコンピュータである。検証系サーバＢは、実動系サーバＡの性能を検証するコンピュータである。この場合、試験実施者は、同一パターン（パケットとその応答パケット）で試験を行う際、試験端末Ｃと実動系サーバＡ間で送受信されるパケットをキャプチャし、キャプチャしたパケットを実動系サーバＡと同一のシーケンスパターンで検証系サーバＢに流すことになる。
【０１４１】
以上説明したように、試験プログラム、試験装置、および試験方法によれば、実動系のアドレスブロック群のネットマスク長から算出された値以下のネットマスク長となるアドレスブロックを検証用として使用する。これにより、試験装置は、実動系のアドレスを全て検証系のアドレスに変換でき、試験を実行できる。
【０１４２】
また、試験装置は、未使用のアドレスブロック群のうち、算出されたネットマスク長以下のネットマスク長で最も大きいネットマスク長となるアドレスブロックを選択してもよい。これにより、試験装置は、最も適切なアドレスブロックを選択することができ、無駄に大きなアドレスブロックを確保することがなくなる。特に、アドレスを多数含むアドレスブロックは数が少なく貴重であるため、最適なアドレスブロックを選択することで、アドレスブロックを有効に利用することができる。
【０１４３】
また、試験装置は、（１）式によってアドレスブロックのネットマスク長を算出してもよい。これにより、試験装置は、事前検証試験が可能なアドレスブロックを選択でき、また、計算量が少ない計算でネットマスク長を算出することができる。
【０１４４】
（実施の形態２の概要）
実施の形態１にかかる試験装置１００では、アドレスブロックのサイズとブロックの数に基づいて、最適なプールアドレスブロックを選択していた。実施の形態２にかかる試験装置１００では、アドレスブロック内の使用中ＩＰアドレスの数に基づいて、最適なプールアドレスブロックを選択する。実施の形態２にかかる試験装置１００のハードウェアは実施の形態１にかかる試験装置１００と同一であるため、説明を省略する。また、実施の形態２にかかる試験装置１００の機能については、算出部４１４以外は同一であるため、説明を省略する。
【０１４５】
実施の形態２にかかる算出部４１４は、ＩＰアドレスのビット数から、第１のアドレス群の各々のアドレスの個数に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出する機能を有する。なお、具体的な算出方法については、図２３で後述する。また、算出された結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【０１４６】
図２３は、実施の形態２にかかるＩＰアドレスの変換方法の例を示す説明図である。実動系アドレス空間１０１において、初めに、試験装置１００は、アドレスブロックＡｂ２７−０〜アドレスブロックＡｂ２７−７にて、使用中のＩＰアドレスを計数する。図２３の例では、試験装置１００は、アドレスブロックＡｂ２７−０に１８個、アドレスブロックＡｂ２７−１に２０個、アドレスブロックＡｂ２７−２に１２個、アドレスブロックＡｂ２７−３に８個、の使用中ＩＰアドレスを計数する。さらに、試験装置１００は、アドレスブロックＡｂ２７−４に２０個、アドレスブロックＡｂ２７−５に２０個、アドレスブロックＡｂ２７−６に１０個、アドレスブロックＡｂ２７−７に１８個、の使用中ＩＰアドレスを計数する。
【０１４７】
次に、試験装置１００は、プールアドレスブロックのサイズを（２）式によって算出する。
【０１４８】
ＩＰアドレスのビット数−ＲＯＵＮＤＵＰ（ｌｏｇ２（使用中ＩＰアドレス数＋２））  …（２）
【０１４９】
ＩＰアドレスのビット数は、ＩＰｖ４であれば３２、ＩＰｖ６であれば１２８である。なお、使用中ＩＰアドレスに２を加える理由は、アドレスブロックには、ホストに割り当てられないネットワークアドレスとブロードキャストアドレスがあることを考慮しているためである。図２３の例で、試験装置１００は、検証試験が実施可能なプールアドレスブロックのネットマスク長を（２）式に従って以下のように算出する。
【０１５０】
３２−ＲＯＵＮＤＵＰ（ｌｏｇ２（（１８＋２０＋１２＋８＋２０＋２０＋１０＋１８）＋２））＝３２−７＝２５
【０１５１】
したがって、試験装置１００は、プールアドレスブロック群のうち、ネットマスク長が２５であるアドレスブロック１０．１０．２１．０／２５（以下、アドレスブロックＢｂ２５）を選択する。このように、実施の形態２にかかるプールアドレスブロックの選択方法は、アドレス空間に未割当のアドレスが多いときに特に有効な方法である。たとえば、試験装置１００が、実施の形態１による選択方法を行った場合、（１）式にネットマスク長＝２７、アドレスブロック数＝８を代入し、プールアドレスブロックのネットマスク長として２４を算出する。このように、実施の形態１と実施の形態２との選択方法を比較すると、実施の形態２にかかる選択方法は、アドレス使用効率を２倍に向上させる。
【０１５２】
図２４は、実施の形態２にかかるＩＰアドレス対応情報４２３の記憶内容の一例を示す説明図である。図２４で示すＩＰアドレス対応情報４２３−１は、実施の形態１での選択方法によって、プールアドレスブロックとしてアドレスブロックＢｂ２４が選択された場合のＩＰアドレス対応情報４２３の記憶内容の一例を示している。また、ＩＰアドレス対応情報４２３−２は、実施の形態２での選択方法によって、プールアドレスブロックとしてアドレスブロックＢｂ２５が選択された場合のＩＰアドレス対応情報４２３の記憶内容の一例を示している。
【０１５３】
ＩＰアドレス対応情報４２３−１では、実動系のＩＰアドレス１９２．１６８．１０．Ｘを１０．１０．２０．Ｘに変換するような対応となっている。具体的に、１０．１０．２０．１〜１０．１０．２０．１８は、アドレスブロックＡｂ２７−０で使用中のＩＰアドレス１９２．１６８．１０．１〜１９２．１６８．１０．１８に対応づけられている。１０．１０．２０．１９〜１０．１０．２０．３２は未使用である。１０．１０．２０．３３〜１０．１０．２０．５２は、アドレスブロックＡｂ２７−１で使用中のＩＰアドレス１９２．１６８．１０．３３〜１９２．１６８．１０．５２に対応づけられている。１０．１０．２０．５３〜１０．１０．２０．６４は未使用である。
【０１５４】
また、１０．１０．２０．２２５〜１０．１０．２０．２４２は、アドレスブロックＡｂ２７−７で使用中のＩＰアドレス１９２．１６８．１０．２２５〜１９２．１６８．１０．２４２に対応づけられている。１０．１０．２０．２４３〜１０．１０．２０．２５４は未使用である。このように、ＩＰアドレス対応情報４２３−１では、実動系アドレス空間内に未割当のＩＰアドレスが多いとき、選択されたプールアドレスブロックにて、未使用のＩＰアドレスが多くなる。
【０１５５】
次に、ＩＰアドレス対応情報４２３−２では、未割当のＩＰアドレスができる限り存在しないように変換するような対応となっている。具体的に、１０．１０．２１．１〜１０．１０．２１．１８は、アドレスブロックＡｂ２７−０で使用中のＩＰアドレス１９２．１６８．１０．１〜１９２．１６８．１０．１８に対応づけられている。１０．１０．２１．１９〜１０．１０．２１．３８は、アドレスブロックＡｂ２７−１で使用中のＩＰアドレス１９２．１６８．１０．３３〜１９２．１６８．１０．５２に対応づけられている。１０．１０．２１．１０９〜１０．１０．２１．１２６は、アドレスブロックＡｂ２７−１で使用中のＩＰアドレス１９２．１６８．１０．２２５〜１９２．１６８．１０．２４２に対応づけられている。
【０１５６】
図２５は、実施の形態２にかかるアドレスブロック登録処理手順の一例を示すフローチャートである。実施の形態２にかかるアドレスブロック登録処理にて、ステップＳ２５０１〜ステップＳ２５０３の処理については、ステップＳ１６０１〜ステップＳ１６０３の処理と等しいため、説明を省略する。
【０１５７】
ＳＹＮフラグがＯＦＦである場合（ステップＳ２５０３：Ｎｏ）、試験装置１００は、ＦＩＮフラグがＯＮか否かを判断する（ステップＳ２５０４）。ＳＹＮフラグがＯＮである場合（ステップＳ２５０３：Ｙｅｓ）、またはＦＩＮフラグがＯＮである場合（ステップＳ２５０４：Ｙｅｓ）、試験装置１００は、送信元ＩＰアドレスを取得する（ステップＳ２５０５）。取得後、試験装置１００は、送信元ＩＰアドレスが登録済みであるか否かを判断する（ステップＳ２５０６）。
【０１５８】
登録済みでない場合（ステップＳ２５０６：Ｎｏ）、試験装置１００は、送信元ＩＰアドレスとキャプチャ時刻を登録する（ステップＳ２５０７）。登録後、登録済みである場合（ステップＳ２５０６：Ｙｅｓ）、または、ＦＩＮフラグがＯＮでない場合（ステップＳ２５０４：Ｎｏ）、試験装置１００は、キャプチャデータから次のパケットデータを読み込み（ステップＳ２５０８）、ステップＳ２５０２の処理に移行する。
【０１５９】
また、全てのパケットデータについて処理を行い、パケットデータを取得しなかった場合（ステップＳ２５０２：Ｎｏ）、試験装置１００は、実施の形態２にかかるアドレスブロック選択処理を実行し（ステップＳ２５０９）、アドレスブロック登録処理を終了する。なお、アドレスブロック選択処理は、登録した送信元ＩＰアドレスを引数として実行する。実施の形態２にかかるアドレスブロック選択処理の詳細については、図２６にて後述する。
【０１６０】
図２６は、実施の形態２にかかるアドレスブロック選択処理手順の一例を示すフローチャートである。試験装置１００は、登録された送信元ＩＰアドレスの個数を取得する（ステップＳ２６０１）。次に、試験装置１００は、取得したアドレス数に対して、（２）式を実行する（ステップＳ２６０２）。続けて、試験装置１００は、（２）式で得られたネットマスク長以下のネットマスク長を有するプールアドレスブロックを選択し（ステップＳ２６０３）、アドレスブロック選択処理を終了する。
【０１６１】
以上説明したように、試験プログラム、試験装置、および試験方法によれば、（２）式によってアドレスブロックのネットマスク長を算出してもよい。これにより、実動系アドレス空間に未割当のアドレスが多い場合、より小さなアドレスブロックを選択することができる。
【０１６２】
（実施の形態３の概要）
実施の形態２にかかる試験装置１００では、アドレスブロック内の使用中ＩＰアドレスの数に基づいて、最適なプールアドレスブロックを選択していた。実施の形態３にかかる試験装置１００では、使用中ＩＰアドレスの時間変化に応じて最適なプールアドレスブロックを選択する。実施の形態３にかかる試験装置１００のハードウェアは実施の形態１にかかる試験装置１００と同一であるため、説明を省略する。また、実施の形態３にかかる試験装置１００の機能については、算出部４１４以外は同一であるため、説明を省略する。
【０１６３】
実施の形態３にかかる算出部４１４は、ＩＰアドレスのビット数から、第１のアドレス群の各々のアドレスの同時使用数の最大値に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値を算出する機能を有する。なお、具体的な算出方法については、図２７〜図２９で後述する。また、算出された結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などに記憶される。
【０１６４】
図２７は、実施の形態３にかかるＩＰアドレス対応情報２７０１の記憶内容の一例を示す説明図である。図２７で示すＩＰアドレス対応情報２７０１は、レコード２７０１−１〜レコード２７０１−４を登録している。ＩＰアドレス対応情報２７０１は、ＩＰアドレス対応情報４２３に、セッション開始時刻項目と、セッション終了時刻項目と、をさらに含む情報である。ＩＰアドレス対応情報４２３から存在する項目については、格納される内容は変わらないため、説明を省略する。セッション開始時刻項目は、該当のセッションを開始した時刻であり、ＳＹＮフラグがＯＮとなった時刻である。セッション終了時刻項目は、該当のセッションが終了した時刻であり、ＦＩＮフラグがＯＮとなった時刻である。
【０１６５】
たとえば、図２７の例では、レコード２７０１−３は、セッションが０．０［秒］から７．７［秒］まで続いたことを示しており、レコード２７０１−４は、セッションが８．０［秒］から８．６［秒］まで続いたことを示している。
【０１６６】
次に、図２８と図２９にて、ＩＰアドレス対応情報２７０１の時間変化に応じたアドレス変換の例について説明する。図２８で示す、通信時間が重複していない場合、試験装置１００は、プールアドレスブロックの同一のアドレスを設定する。図２９では、通信時間が重複していなくても、前のセッションからの経過時刻が一定時間より短い場合に別のセッション確立がある場合、試験装置１００は、異なるアドレスで変換するといった動作を行う。なお、図２８、図２９において、ＩＰアドレス対応情報２７０１に付与される接尾記号“−ｘ”は、ｘ秒時点でのＩＰアドレス対応情報２７０１の状態を示している。
【０１６７】
また、図２８、図２９では、３つのセッションが確立しており、それぞれ、セッションＸ、セッションＹ、セッションＺとし、セッションＸの開始時刻をＸ１、終了時刻をＸ２と定義する。同様に、セッションＹの開始時刻をＹ１、終了時刻をＹ２と定義し、セッションＺの開始時刻をＺ１、終了時刻をＺ２と定義する。
【０１６８】
図２８は、実施の形態３にかかるＩＰアドレス対応情報２７０１の時間変化に応じたアドレス変換の一例を示す説明図である。時刻経過の順序としては、０、Ｘ１、Ｙ１、Ｘ２、Ｚ１、Ｙ２、Ｚ２となる。時刻０におけるＩＰアドレス対応情報２７０１−０は、１０．１０．２０．２、１０．１０．２０．３共に未使用である。
【０１６９】
次に、時刻Ｘ１にてセッションＸが確立することを想定する。このとき、試験装置１００は、ＩＰアドレス対応情報２７０１−１−Ｘ１で示すように１０．１０．２０．２を使用中に設定する。続けて、セッションＸが解放される前の時刻Ｙ１にて、他のセッションＹが確立する。このとき、試験装置１００は、ＩＰアドレス対応情報２７０１−１−Ｙ１で示すように１０．１０．２０．３を使用中に設定する。時刻Ｘ２にて、セッションＸが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−１−Ｘ２で示すように１０．１０．２０．２の使用中を解除する。
【０１７０】
時刻Ｚ１にて、セッションＺが確立すると、試験装置１００は、１０．１０．２０．２が使用可能であるため、ＩＰアドレス対応情報２７０１−１−Ｚ１で示すように１０．１０．２０．４でなく１０．１０．２０．２を使用中に設定する。続けて、時刻Ｙ２にてセッションＹが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−１−Ｙ２で示すように１０．１０．２０．３の使用中を解除する。時刻Ｚ２にてセッションＺが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−１−Ｚ２で示すように１０．１０．２０．２の使用中を解除する。このように、図２８で示したアドレス変換方法は、通信時間が分散しているほど、アドレスブロックの集約化を見込むことができる。
【０１７１】
図２９は、実施の形態３にかかるＩＰアドレス対応情報２７０１の時間変化に応じたアドレス変換の他の例を示す説明図である。時刻経過の順序としては、０、Ｘ１、Ｘ２、Ｙ１、Ｙ２、Ｚ１、Ｚ２となる。時刻０におけるＩＰアドレス対応情報２７０１−０は、１０．１０．２０．２、１０．１０．２０．３共に未使用である。
【０１７２】
初めに、時刻Ｘ１にてセッションＸが確立することを想定する。このとき、試験装置１００は、ＩＰアドレス対応情報２７０１−２−Ｘ１で示すように１０．１０．２０．２を使用中に設定する。続けて、時刻Ｘ２にて、セッションＸが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−２−Ｘ２で示すように１０．１０．２０．２の使用中を解除する。
【０１７３】
次に、時刻Ｙ１にてセッションＹが確立すると、試験装置１００は、｜Ｙ１−Ｘ２｜＜閾値であると判断し、ＩＰアドレス対応情報２７０１−２−Ｙ１で示すように１０．１０．２０．２ではなく、１０．１０．２０．３を使用中に設定する。続けて、時刻Ｙ２にて、セッションＹが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−２−Ｙ２で示すように１０．１０．２０．３の使用中を解除する。
【０１７４】
時刻Ｚ１にてセッションＺが確立すると、試験装置１００は、｜Ｚ１−Ｘ２｜≧閾値であると判断し、ＩＰアドレス対応情報２７０１−２−Ｚ１で示すように１０．１０．２０．２を使用中に設定する。続けて、時刻Ｚ２にて、セッションＺが解放されると、試験装置１００は、ＩＰアドレス対応情報２７０１−２−Ｚ２で示すように１０．１０．２０．３の使用中を解除する。
【０１７５】
このように、一定時間より短い時間間隔では同一の送信元ＩＰアドレスとならないようにすることで、検証系サーバが、後に接続したセッションが前のセッションの情報であると誤判断することを抑止することができる。
【０１７６】
実施の形態３にかかるフローチャートは、アドレスブロック選択処理以外を除いて実施の形態２と同一であるため、説明を省略する。図３０にて、実施の形態３にかかるアドレスブロック選択処理について説明を行う。
【０１７７】
図３０は、実施の形態３にかかるアドレスブロック選択処理手順の一例を示すフローチャートである。試験装置１００は、使用中ＩＰアドレス数ｎを０に設定し（ステップＳ３００１）、使用中ＩＰアドレス数の最大値ｎ＿ｍａｘを０に設定し（ステップＳ３００２）、時刻ｔを０に設定する（ステップＳ３００３）。なお、ｎ、ｎ＿ｍａｘ、ｔは変数である。
【０１７８】
設定後、試験装置１００は、登録された送信元ＩＰアドレスのうち、セッション開始時刻またはセッション終了時刻のいずれかが時刻ｔ以降で最も早い時刻となる送信元ＩＰアドレスを検索する（ステップＳ３００４）。検索後、試験装置１００は、送信元ＩＰアドレスが発見できたか否かを判断する（ステップＳ３００５）。発見できた場合（ステップＳ３００５：Ｙｅｓ）、試験装置１００は、最も早い時刻がセッション開始時刻か否かを判断する（ステップＳ３００６）。
【０１７９】
セッション開始時刻である場合（ステップＳ３００６：Ｙｅｓ）、試験装置１００は、ｎをインクリメントし（ステップＳ３００７）、ｎ＞ｎ＿ｍａｘか否かを判断する（ステップＳ３００８）。ｎ＞ｎ＿ｍａｘである場合（ステップＳ３００８：Ｙｅｓ）、試験装置１００は、ｎ＿ｍａｘにｎを設定する（ステップＳ３００９）。
【０１８０】
セッション終了時刻である場合（ステップＳ３００６：Ｎｏ）、試験装置１００は、ｎをデクリメントし（ステップＳ３０１０）。ステップＳ３００９、ステップＳ３０１０、ｎ≦ｎ＿ｍａｘである場合（ステップＳ３００８：Ｎｏ）、試験装置１００は、ｔを発見した時刻に設定し（ステップＳ３０１１）、ステップＳ３００４の処理に移行する。発見できない場合（ステップＳ３００５：Ｎｏ）、試験装置１００は、ｎ＿ｍａｘを取得したアドレス数として、（２）式を実行する（ステップＳ３０１２）。実行後、試験装置１００は、（２）式で得られたネットマスク長以下のネットマスク長を有するプールアドレスブロックを選択し（ステップＳ３０１３）、アドレスブロック選択処理を終了する。
【０１８１】
図３０に示したフローチャートを実行することで、試験装置１００は、図２８の動作を行った際のアドレスの同時使用数の最大値を取得することができる。また、ステップＳ３００４の処理にて、セッション終了時刻の代わりに、セッション終了時刻と閾値とを合算した時刻で処理を行うことで、試験装置１００は、図２９の動作を行うことができる。
【０１８２】
以上説明したように、試験プログラム、試験装置、および試験方法によれば、ＩＰアドレスのビット数から、実動系のアドレスの同時使用数の最大値に対して２を底とする対数値の小数点以下を切り上げた数値を減じた値をネットマスク長としてもよい。これにより、試験装置は、通信時間が分散しているほど、アドレスブロックの集約化を見込むことができる。
【０１８３】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１８４】
４０１、４１２、４１３  取得部
４０２  検出部
４０３  算出部
４０４  生成部
４０５  送信部
４０６  実行部
４０７  出力部
４１１  記憶部
４１４  算出部
４１５  選択部
４２１  パケット記憶情報
４２２  アドレスブロック情報
４２３  ＩＰアドレス対応情報
４２４  フロー情報
【図１】
0005857519.tif 000002
【図２】
0005857519.tif 000003
【図３】
0005857519.tif 000004
【図４】
0005857519.tif 000005
【図５】
0005857519.tif 000006
【図６】
0005857519.tif 000007
【図７】
0005857519.tif 000008
【図８】
0005857519.tif 000009
【図９】
0005857519.tif 000010
【図１０】
0005857519.tif 000011
【図１１】
0005857519.tif 000012
【図１２】
0005857519.tif 000013
【図１３】
0005857519.tif 000014
【図１４】
0005857519.tif 000015
【図１５】
0005857519.tif 000016
【図１６】
0005857519.tif 000017
【図１７】
0005857519.tif 000018
【図１８】
0005857519.tif 000019
【図１９】
0005857519.tif 000020
【図２０】
0005857519.tif 000021
【図２１】
0005857519.tif 000022
【図２２】
0005857519.tif 000023
【図２３】
0005857519.tif 000024
【図２４】
0005857519.tif 000025
【図２５】
0005857519.tif 000026
【図２６】
0005857519.tif 000027
【図２７】
0005857519.tif 000028
【図２８】
0005857519.tif 000029
【図２９】
0005857519.tif 000030
【図３０】
0005857519.tif 000031