(57)【特許請求の範囲】
【請求項１】
第１送信元から第１送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第２送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第２送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第２送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第１の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する２つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する２つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第２送信元から前記第２送信先に送信する第２の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項２】
送信元から第１送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第２送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って前記送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第２送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第１の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記送信元から前記第１送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する２つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記送信元から前記第１送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する２つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記送信元から前記第２送信先に送信する第２の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項３】
前記判断工程によって前記特定のパケットではないと判断された前記送信対象のパケットを、前記送信対象のパケットについての前記送信時間間隔に従った送信タイミングで前記第２送信先に送信する第３の送信工程を、前記コンピュータに実行させることを特徴とする請求項１または２に記載の試験プログラム。
【請求項４】
前記修正工程は、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔から前記先行パケットと前記特定のパケットに対応する２つのパケットの送信時間間隔を引いた待機時間が、前記特定のパケットと前記後続パケットに対応する２つのパケットの送信時間間隔以上である場合、該送信時間間隔を所定値にすることを特徴とする請求項１〜３のいずれか一つに記載の試験プログラム。
【請求項５】
前記修正工程は、
前記特定のパケットと前記後続パケットに対応する２つのパケット以降のパケット対の各送信時間間隔を、前記待機時間に基づいて修正することを特徴とする請求項１〜３のいずれか一つに記載の試験プログラム。
【請求項６】
前記第２送信先に連続して送信された２つのパケットの送信時間間隔と、該２つのパケットに対する前記第２送信先からの２つの応答パケットの応答時間間隔と、を比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第１送信先と前記第２送信先との相対的な性能を決定する決定工程と、
前記決定工程によって決定された決定結果を出力する出力工程と、
を前記コンピュータに実行させることを特徴とする請求項１〜５のいずれか一つに記載の試験プログラム。
【請求項７】
第１送信元から第１送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得手段と、
前記複数のパケットのそれぞれの宛先を第２送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第２送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第２送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断手段と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第１の送信手段と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する２つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する２つのパケットの送信時間間隔よりも短く修正する修正手段と、
前記修正手段で修正された送信時間間隔で、前記後続パケットを前記第２送信元から前記第２送信先に送信する第２の送信手段と、
を備えることを特徴とする試験装置。
【請求項８】
第１送信元から第１送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第２送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第２送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第２送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第１の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する２つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第１送信元から前記第１送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する２つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第２送信元から前記第２送信先に送信する第２の送信工程と、
をコンピュータが実行することを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象となる装置の試験をおこなう試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【０００２】
従来から、クライアント−サーバ間の性能評価の技術が開示されているが（たとえば、下記特許文献１、２を参照）、システムの移行などをおこなう際、予備系サーバを迅速かつ正確に検証するための性能評価試験技術が求められている。このような性能評価試験技術については、従来、以下のように処理がおこなわれている。
【０００３】
図２２は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。図２２では、主系サーバＡおよび試験端末Ｃが大阪にあり、予備系サーバＢは東京にあるものとする。主系サーバＡは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバＢは、主系サーバＡから移行予定のコンピュータである。この場合、試験実施者は、同一パターン（パケットとその応答パケット）で試験をする際、試験端末Ｃが主系サーバＡからのパケットをキャプチャし、キャプチャしたパケットを主系サーバＡと同一のシーケンスパターンで予備系サーバＢに流すこととなる。
【０００４】
図２３は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。図２３では、主系サーバＡは大阪にあり、予備系サーバＢは東京にあり、試験端末Ｃは東京および大阪の両方にあるものとする。この場合、試験実施者は、大阪において試験端末Ｃと主系サーバＡとの間でパケット通信をおこなうとともに、東京において、主系サーバＡと同じ時間間隔で、試験端末Ｃと予備系サーバＢとの間でパケット通信をおこなう。これにより、主系サーバＡと予備系サーバＢとの相対的な性能評価をおこなうこととなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−８６４８号公報
【特許文献２】特開平９−６２６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、主系サーバＡと予備系サーバＢとが異なる場所にある場合、主系サーバＡと予備系サーバＢとでのＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ：往復遅延時間）の差（距離と正の相関）が主系サーバＡおよび予備系サーバＢの処理間隔（処理負荷）に影響する。すなわち、予備系サーバＢのパケット送受信間隔が主系サーバＡのパケット送受信間隔に比べ大きくなるため、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【０００７】
また、３ウェイハンドシェイクやパケットにクッキーを含む場合など、前に送信されたパケットに対する応答パケットの情報を解析した上で、パケットを送信する場合がある。このような場合、予備系サーバＢへの送信は、前に送信されたパケットに対する応答パケットの受信を待たなくてはいけないため、予備系サーバＢのパケット送受信間隔が主系サーバＡのパケット送受信間隔に比べ大きくなる。したがって、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【０００８】
本発明は、上述した従来技術による問題点を解消するため、高品質な性能評価試験をおこなうことができる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、第１送信元から第１送信先へ送信された第１パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得し、前記第１パケット群の宛先を第２送信先に変更して第２送信元から前記各時間の経過により送信される第２パケット群のパケットごとに、当該パケットの先行パケットに対する前記第２送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記第２送信元から前記第２送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記第２送信元から前記第２送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【００１０】
また、送信元から第１送信先へ送信された第１パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得を取得し、前記第１パケット群の宛先を第２送信先に変更して前記送信元から前記各時間の経過により送信される第２パケット群のパケットごとに、当該パケットの先行パケットに対する前記第２送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記送信元から前記第２送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記送信元から前記第２送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【発明の効果】
【００１１】
上述した試験プログラム、試験装置、および試験方法によれば、高品質な性能評価試験をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態におけるパケット送信例（その１）を示す説明図である。
【図２】本実施の形態におけるパケット送信例（その２）を示す説明図である。
【図３】図２に示したパケット送信の修正例（その１）を示す説明図である。
【図４】図２に示したパケット送信の修正例（その２）を示す説明図である。
【図５】図２に示したパケット送信の修正例（その３）を示す説明図である。
【図６】性能評価例を示す説明図である。
【図７】コンピュータのハードウェア構成例を示すブロック図である。
【図８】パケット情報ＤＢの記憶内容例を示す説明図（その１）である。
【図９】パケット情報ＤＢの記憶内容例を示す説明図（その２）である。
【図１０】パケット情報ＤＢの記憶内容例を示す説明図（その３）である。
【図１１】パケット情報ＤＢの記憶内容例を示す説明図（その４）である。
【図１２】パケット情報ＤＢの記憶内容例を示す説明図（その５）である。
【図１３】パケット情報ＤＢの記憶内容例を示す説明図（その６）である。
【図１４】本実施の形態にかかる試験装置の機能的構成例を示すブロック図である。
【図１５】試験端末Ｃと主系サーバＡ間に流れるパケットの取得処理手順を示すフローチャートである。
【図１６】送信パケット変換処理手順を示すフローチャートである。
【図１７】予備系サーバＢへのパケット送信処理手順を示すフローチャートである。
【図１８】つぎの送信パケットＳ（ｉ＋１）Ｂを送信する時間間隔ｄ（ｉ＋１）Ｂの算出処理手順を示すフローチャート（その１）である。
【図１９】つぎの送信パケットＳ（ｉ＋１）Ｂを送信する時間間隔ｄ（ｉ＋１）Ｂの算出処理手順を示すフローチャート（その２）である。
【図２０】応答パケットの格納処理手順を示すフローチャートである。
【図２１】性能評価処理手順を示すフローチャートである。
【図２２】従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図２３】従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかる試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。なお、以下の説明において、パケットのことを、「送信パケット」や「応答パケット」と称することがある。ここで、「送信パケット」とは、試験対象となる第１送信先（たとえば、主系サーバＡ）や第２送信先（たとえば、予備系サーバＢ）に送信するパケットである。また、「応答パケット」とは、送信パケットの送信に対して第１送信先または第２送信先から送られてくるパケットをいう。また、「先行パケット」とは、注目する送信パケットの１つ前の送信パケットであり、「後続パケット」とは、注目する送信パケットの次の送信パケットである。
【００１４】
図１は、本実施の形態におけるパケット送信例（その１）を示す説明図である。図１では、試験端末Ｃ、試験を行う対象である第１送信先の例として挙げられる主系サーバＡが大阪にあり、試験を行う対象である第２送信先の例として挙げられる予備系サーバＢは東京にあるものとする。なお、サーバＡ，Ｂの配置位置は例であって、他の配置関係でもよい。主系サーバＡは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバＢは、主系サーバＡから移行予定のコンピュータである。
【００１５】
試験装置１００は、試験端末Ｃと主系サーバＡと予備系サーバＢと通信可能に接続される。たとえば、試験装置１００と試験端末Ｃと主系サーバＡは、同一のネットワークＮａ内にあり、予備系サーバＢが存在するネットワークＮｂと通信可能である。試験装置１００は、試験端末Ｃと一体型としてもよい。この場合、試験装置１００は、試験端末Ｃで実行される処理もおこなうこととなる。
【００１６】
たとえば、試験端末Ｃが主系サーバＡにパケットＳ１Ａを送信することにより、主系サーバＡは試験端末ＣにパケットＲ１Ａを応答として送信する。つぎに、試験端末Ｃが主系サーバＡにパケットＳ２Ａを送信することにより、主系サーバＡは試験端末Ｃに応答としてパケットＲ２Ａを送信する。
【００１７】
つぎに、試験端末Ｃが主系サーバＡにパケットＳ３Ａを送信することにより、主系サーバＡは試験端末Ｃに応答としてパケットＲ３Ａを送信する。つぎに、試験端末Ｃが主系サーバＡにパケットＳ４Ａを送信することにより、主系サーバＡは試験端末Ｃに応答としてパケットＲ４Ａを送信する。
【００１８】
このとき、試験装置１００は、パケットＳ１Ａ，Ｒ１Ａ，Ｓ２Ａ，Ｒ２Ａ，Ｓ３Ａ，Ｒ３Ａ，Ｓ４Ａ，Ｒ４Ａの順にキャプチャする。時刻ｔ１Ａ〜ｔ４Ａは、試験装置１００が、試験開始を基準としてパケットＳ１Ａ〜Ｓ４Ａをキャプチャした時刻である。なお、基準となる試験開始の時刻（ｔ＝０）については、試験装置１００が、試験端末Ｃからの開始信号を受信したときとしてもよく、試験装置１００に試験開始入力があったときとしてもよい。また、試験端末Ｃからの最初のパケットＳ１Ａをキャプチャした時刻としてもよい。いずれにしても、試験端末Ｃと試験装置１００との間で、試験開始の時刻を同期させる必要はない。
【００１９】
なお、試験端末Ｃから主系サーバＡにパケットＳ１Ａ〜Ｓ４Ａを送信するときの各送信時間間隔ｄ１Ａ〜ｄ４Ａは、連続するパケット間の経過時間である。具体的には、試験装置１００でキャプチャされた時刻ｔ１Ａ〜ｔ４Ａを用いてあらわすことができる。たとえば、試験開始からパケットＳ１Ａを送信するまでの送信時間間隔ｄ１Ａは、ｄ１Ａ＝ｔ１Ａ−０となる。
【００２０】
また、パケットＳ２Ａの先行パケットであるパケットＳ１Ａの送信からパケットＳ２Ａの送信までの送信時間間隔ｄ２Ａは、ｄ２Ａ＝ｔ２Ａ−ｔ１Ａとなる。同様に、パケットＳ３Ａの先行パケットであるパケットＳ２Ａの送信からパケットＳ３Ａの送信までの送信時間間隔ｄ３Ａは、ｄ３Ａ＝ｔ３Ａ−ｔ２Ａとなる。同様に、パケットＳ４Ａの先行パケットであるパケットＳ３Ａの送信からパケットＳ４Ａの送信までの送信時間間隔ｄ４Ａは、ｄ４Ａ＝ｔ４Ａ−ｔ３Ａとなる。
【００２１】
また、Ｄ２Ａは主系サーバＡでのパケットＳ１Ａ，Ｓ２Ａの受信間隔、Ｄ３Ａは主系サーバＡでのパケットＳ２Ａ，Ｓ３Ａの受信間隔、Ｄ４Ａは主系サーバＡでのパケットＳ３Ａ，Ｓ４Ａの受信間隔である。これら受信間隔は、試験装置１００が応答パケットＲ１Ａ，Ｒ２Ａを受信する応答時間間隔、パケットＲ２Ａ，Ｒ３Ａを受信する応答時間間隔、パケットＲ３Ａ，Ｒ４Ａを受信する応答時間間隔となる。
【００２２】
つぎに、試験装置１００は、キャプチャした主系サーバＡへのパケットＳ１Ａ〜Ｓ４Ａの宛先を主系サーバＡのアドレスから予備系サーバＢのアドレスに書き換えて、パケットＳ１Ｂ〜Ｓ４Ｂを生成する。そして、試験装置１００は、生成されたパケットＳ１Ｂ〜Ｓ４Ｂを、それぞれ、送信時間間隔ｄ１Ｂ（＝ｄ１Ａ），ｄ２Ｂ（＝ｄ２Ａ），ｄ３Ｂ（＝ｄ３Ａ），ｄ４Ｂ（＝ｄ４Ａ）で予備系サーバＢに送信する。
【００２３】
この場合、パケットＳ１Ｂ〜Ｓ４Ｂの送信元アドレスを試験装置１００のアドレスとすることで、予備系サーバＢからの応答パケットＲ１Ｂ〜Ｒ４Ｂの送信先が試験装置１００となるように設定する。なお、パケットＳ１Ｂ〜Ｓ４Ｂの送信元アドレスを変更せず、試験端末Ｃが応答パケットＲ１Ｂ〜Ｒ４Ｂを受信してもよい。
【００２４】
そして、試験装置１００は、試験開始からｔ１Ｂ（＝ｔ１Ａ）経過したときに、パケットＳ１Ｂを予備系サーバＢに送信し、試験開始からｔ２Ｂ（＝ｔ２Ａ）経過したときに、パケットＳ２Ｂを予備系サーバＢに送信し、試験開始からｔ３Ｂ（＝ｔ３Ａ）経過したときに、パケットＳ３Ｂを予備系サーバＢに送信し、試験開始からｔ４Ｂ（＝ｔ４Ａ）経過したときに、パケットＳ４Ｂを予備系サーバＢに送信する。
【００２５】
また、Ｄ２Ｂは予備系サーバＢでのパケットＳ１Ｂ，Ｓ２Ｂの受信間隔、Ｄ３Ｂは予備系サーバＢでのパケットＳ２Ｂ，Ｓ３Ｂの受信間隔、Ｄ４Ｂは予備系サーバＢでのパケットＳ３Ｂ，Ｓ４Ｂの受信間隔である。これら受信間隔は、応答パケットＲ１Ｂ，Ｒ２Ｂを受信する応答時間間隔、パケットＲ２Ｂ，Ｒ３Ｂを受信する応答時間間隔、パケットＲ３Ｂ，Ｒ４Ｂを受信する応答時間間隔となる。
【００２６】
試験端末Ｃと主系サーバＡとの間のシーケンスでは、主系サーバＡからの応答パケットＲ１Ａを試験端末Ｃが受信すると、試験端末ＣはパケットＳ２Ａを主系サーバＡに送信し、主系サーバＡからの応答パケットＲ２Ａを試験端末Ｃが受信すると、試験端末ＣはパケットＳ３Ａを主系サーバＡに送信し、主系サーバＡからの応答パケットＲ３Ａを試験端末Ｃが受信すると、試験端末ＣはパケットＳ４Ａを主系サーバＡに送信する。
【００２７】
これに対し、試験装置１００と予備系サーバＢとの間のシーケンスでは、予備系サーバＢがパケットＳ１Ｂ〜Ｓ４Ｂを受けると、主系サーバＡと同様、応答パケットＲ１Ｂ〜Ｒ４Ｂを返す。この場合、試験装置１００からのパケットＳ２Ｂ〜Ｓ４Ｂについては、予備系サーバＢからのパケットＳ１Ｂ〜Ｓ３Ｂに対する応答パケットＲ１Ｂ〜Ｒ３Ｂの受信を待つことなく、上述した送信時間間隔ｄ１Ａ〜ｄ４Ａと同一の送信時間間隔ｄ１Ｂ〜ｄ４Ｂを維持したまま、パケット送信をおこなう。
【００２８】
このように、主系サーバＡおよび予備系サーバＢでは、同一シーケンス（送信時間間隔ｄ１Ａ〜ｄ４Ａ）でパケット送信をおこなうため、受信間隔についても、Ｄ２Ａ＝Ｄ２Ｂ、Ｄ３Ａ＝Ｄ３Ｂ、Ｄ４Ａ＝Ｄ４Ｂとなる。したがって、設置場所の違いをパケットＳ１Ａ〜Ｓ４Ａの変換で吸収することにより、主系サーバＡおよび予備系サーバＢは同様の負荷で性能評価試験をされることとなる。このあと、主系サーバＡからの応答パケットＲ１Ａ〜Ｒ４Ａと予備系サーバＢからの応答パケットＲ１Ｂ〜Ｒ４Ｂとを比較することで、主系サーバＡと予備系サーバＢとの相対的な性能評価を実行することができる。
【００２９】
図２は、本実施の形態におけるパケット送信例（その２）を示す説明図である。図２において、図１との相違点は、パケットＳ２Ａの宛先を予備系サーバＢとしたパケットＳ２ＢがパケットＲ１Ｂの情報が必要なパケットであるために、パケットＳ２Ｂを、パケットＲ１Ｂの受信を待ってから送信する点である。このため、パケットＳ２Ｂの先行パケットＳ１Ｂは、試験開始から送信時間間隔ｄ１Ｂ（＝ｄ１Ｂ−０）分の時間経過により送信されるが、パケットＳ２Ｂは、送信時間間隔ｄ２Ｂ（＝ｔ２Ｂ−ｔ１Ｂ）分の時間経過により送信される。送信時間間隔ｄ２Ｂは、ｄ２Ｂ＞ｄ２Ａとなる。これにより、対応する予備系サーバＢでの受信間隔Ｄ２Ｂも、Ｄ２Ｂ＞Ｄ２Ａとなる。
【００３０】
パケットＳ２Ｂの送信が遅延するが、パケットＳ２Ｂ以降のパケットＳ３Ｂ，Ｓ４Ｂについては、図１と同様の送信時間間隔ｄ３Ｂ（＝ｔ３Ｂ−ｔ２Ｂ），ｄ４Ｂ（＝ｔ４Ｂ−ｔ３Ｂ）で送信されるため、対応する受信間隔も、図１と同様、Ｄ３Ｂ，Ｄ４Ｂとなる。上記以外については、図１と同じである。
【００３１】
パケットＳ２Ｂのような送信遅延は、たとえば、３ウェイハンドシェイクにおいて、パケットＳ１Ａ，Ｓ１ＢがＳＹＮパケット、応答パケットＲ１Ａ，Ｒ１ＢがＳＹＮ／ＡＣＫパケット、パケットＳ２Ａ，Ｓ２ＢがＡＣＫパケットである場合に発生する。また、応答パケットＲ１Ａ，Ｒ１ＢのＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）応答ヘッダにＣｏｏｋｉｅ情報が埋め込まれている場合、パケットＳ２Ａ，Ｓ２ＢのＨＴＴＰリクエストヘッダを変更する必要がある。このような場合に、パケットＳ２Ｂで送信遅延が発生する。
【００３２】
パケットＳ２Ｂのような送信遅延が発生すると、主系サーバＡと予備系サーバＢとで負荷が異なってしまう（Ｄ２Ａ＜Ｄ２Ｂ）こととなる。このため、パケットＳ２Ｂ以降のパケットＳ３Ｂ，Ｓ４Ｂの送信タイミングを修正する必要がある。
【００３３】
図３は、図２に示したパケット送信の修正例（その１）を示す説明図である。図３では、パケットＳ２Ｂの送信遅延を、パケットＳ２Ｂの後続パケットとなるパケットＳ３Ｂの送信タイミングを調整することで、主系サーバＡと予備系サーバＢとで同一負荷となるように修正している。以降、時間の単位の例として、［ｍｓｅｃ］を用いる。
【００３４】
具体的には、パケットＳ２Ｂの送信遅延により、ｄ２Ｂ＞ｄ２Ａとなっている。したがって、ｄ２Ｂ＋ｄ３Ｂ＝ｄ２Ａ＋ｄ３Ａとなるように、パケットＳ２Ｂの送信からパケットＳ３Ｂを送信するまでの送信時間間隔ｄ３Ｂを短縮させる。
【００３５】
たとえば、修正前（図２の状態）での送信時間間隔ｄ１Ａ〜ｄ４Ａ，ｄ１Ｂ，ｄ３Ｂ，ｄ４Ｂがそれぞれ１０［ｍｓｅｃ］で、送信時間間隔ｄ２Ｂが１８［ｍｓｅｃ］とする。すなわち、主系サーバＡでの送信時間間隔ｄ２Ａ（＝１０［ｍｓｅｃ］）に比べて、８［ｍｓｅｃ］（＝１８［ｍｓｅｃ］−１０［ｍｓｅｃ］）遅延したものとする。この遅延した時間を待機時間と称す。
【００３６】
この場合、パケットＳ２Ｂの後続パケットＳ３Ｂの送信時間間隔ｄ３Ｂを待機時間（８［ｍｓｅｃ］）分短縮して、ｄ３Ｂ＝２［ｍｓｅｃ］とする。すなわち、後続パケットＳ３Ｂは、パケットＳ２Ｂを受信してから１０［ｍｓｅｃ］後に送信するのではなく、２［ｍｓｅｃ］後に送信する。このように修正することで、ｄ２Ｂ＋ｄ３Ｂ＝ｄ２Ａ＋ｄ３Ａとなる。
【００３７】
これにより、予備系サーバＢでの処理間隔Ｄ３Ｂも連動して短縮化され、主系サーバＡでの受信間隔の総和ＤＡ（Ｄ２Ａ＋Ｄ３Ａ＋Ｄ４Ａ）と予備系サーバＢでの処理間隔の総和ＤＢ（Ｄ２Ｂ＋Ｄ３Ｂ＋Ｄ４Ｂ）とが同一となる。したがって、主系サーバＡおよび予備系サーバＢは同一負荷となる。
【００３８】
図４は、図２に示したパケット送信の修正例（その２）を示す説明図である。図４でも、図３と同様、パケットＳ２Ｂの送信遅延を、パケットＳ２Ｂの後続パケットとなるパケットＳ３Ｂの送信タイミングを調整することで、主系サーバＡと予備系サーバＢとで同一負荷となるように修正している。図３の修正例との相違は、図３では、後続パケットＳ３Ｂの時間間隔ｄ３Ｂを短縮化しているのに対し、図４では、後続パケットＳ３Ｂだけではなく、それ以降のパケット（図４では、パケットＳ４Ｂ）の送信時間間隔ｄ３Ｂ，ｄ４Ｂを短縮化している点である。
【００３９】
図３の修正例では、後続のパケットＳ３Ｂの送信時間間隔ｄ３Ｂのみを短縮化させたため、予備系サーバＢにおいて、処理間隔Ｄ３Ｂが短縮化される。すなわち、予備系サーバＢでは、パケットＳ２Ｂ，Ｓ３Ｂの受信と、応答パケットＲ２Ｂ，Ｒ３Ｂの送信が局所的に集中してしまう。したがって、図４では、後続のパケットＳ４Ｂの送信時間間隔ｄ４Ｂを用いることで負荷分散を図る。具体的には、修正後の送信時間間隔ｄ３Ｂ，ｄ４Ｂがｄ３Ｂ＝ｄ４Ｂとなるように修正する。
【００４０】
たとえば、図３で説明した具体例では送信時間間隔ｄ２Ｂがｄ２Ｂ＝１８［ｍｓｅｃ］となったために、次の送信時間間隔ｄ３Ｂ（＝１０［ｍｓｅｃ］）では、増加となる待機時間（８［ｍｓｅｃ］）を短縮して、修正後は待機時間を２［ｍｓｅｃ］とした。これに対し、図４の修正例では、増加分の待機時間（８［ｍｓｅｃ］）を、送信時間間隔ｄ３Ｂ，ｄ４Ｂに４［ｍｓｅｃ］づつ分散して、送信時間間隔ｄ３Ｂ＝ｄ４Ｂ＝６［ｍｓｅｃ］（＝１０［ｍｓｅｃ］−４［ｍｓｅｃ］）に短縮する。これにより、予備系サーバＢでの受信間隔もＤ３Ｂ＝Ｄ４Ｂとなり、予備系サーバＢでの局所的な負荷が分散される。
【００４１】
なお、図４の例では、パケットＳ２Ｂ以降の２つのパケットＳ３Ｂ，Ｓ４Ｂの送信時間間隔ｄ３Ｂ，ｄ４Ｂを用いて負荷分散をおこなったが、パケットＳ４Ｂ以降も送信遅延が生じないパケットが予備系サーバＢに送信される場合、それらの送信時間間隔も用いて負荷分散をおこなってもよい。すなわち、パケットＳ２Ｂ以降のパケットの数が多ければ多いほど、増加分の時間（ここでは、８［ｍｓｅｃ］）が分散されることとなり、対応する予備系サーバＢの受信間隔も平準化されて、負荷分散を効率的に図ることができる。
【００４２】
図５は、図２に示したパケット送信の修正例（その３）を示す説明図である。図５では、パケットＳ２Ｂの送信遅延により、送信時間間隔ｄ２Ｂが延びて、待機時間が非常に大きくなった場合の修正例である。このような場合、具体的には、待機時間がパケットＳ２Ｂ以降のパケットＳ３Ｂの送信時間間隔ｄ３Ｂよりも大きい場合、送信時間間隔ｄ３Ｂで短縮化できないこととなる。
【００４３】
パケットＳ２Ｂ以降のパケット数が多ければ、送信時間間隔ｄ４Ｂやそれ以降の時間間隔を用いて、図４の修正例により負荷分散を図ることができる。一方、パケットＳ２Ｂ以降のパケット数が少ない場合、後続の各パケットのすべての時間間隔を０［ｍｓｅｃ］以上の所定値に設定して、予備系サーバＢの処理時間の総和ＤＢがＤＢ≦ＤＡとなるように修正する。
【００４４】
図３で説明した具体例では送信時間間隔ｄ２Ｂがｄ２Ｂ＝１８［ｍｓｅｃ］としたが、図５では、送信時間間隔ｄ２Ｂをｄ２Ｂ＝３４［ｍｓｅｃ］とする。すなわち、増加分となる待機時間は、２４［ｍｓｅｃ］となる。待機時間である２４［ｍｓｅｃ］は、パケットＳ２Ｂの後続パケットＳ３Ｂの送信時間間隔ｄ３Ｂ（＝１０［ｍｓｅｃ］）よりも大きく、また、後続パケットＳ３Ｂの送信時間間隔ｄ３Ｂ（＝１０［ｍｓｅｃ］）とパケットＳ３Ｂの後続パケットＳ４Ｂの送信時間間隔ｄ４Ｂ（＝１０［ｍｓｅｃ］）との総和（＝２０［ｍｓｅｃ］）よりも大きい。
【００４５】
このため、図４の修正例で示したような負荷分散はできないため、送信時間間隔ｄ３Ｂ，ｄ４Ｂを０［ｍｓｅｃ］以上の所定値に設定する。ここでは、送信時間間隔ｄ３Ｂ＝ｄ４Ｂ＝１［ｍｓｅｃ］とする。これにより、予備系サーバＢの受信間隔の総和ＤＢは、ＤＢ＝Ｄ２Ｂ＋Ｄ３Ｂ＋Ｄ４Ｂ＝２４＋１＋１＝２６［ｍｓｅｃ］となり、主系サーバＡの処理時間の総和ＤＡ以下となるため、試験の高速化を図ることができる。なお、所定値は、最大でも修正前の送信時間間隔よりも短く設定する。
【００４６】
図６は、性能評価例を示す説明図である。図６は、図３に示したパケット送信の修正例での性能評価例を示している。性能評価を行う場合、予備系サーバＢに対する送信時間間隔のうち、任意の送信時間間隔を選択する。予備系サーバＢに対する送信時間間隔は、上り方向となる試験装置１００から予備系サーバＢへのパケットを送信する時間間隔であるため、ここでは、上りの時間間隔と称す。
【００４７】
そして、選択された上りの時間間隔と、当該上りの時間間隔に対応する下りの時間間隔とを比較する。下りの時間間隔とは、下り方向となる予備系サーバＢから試験装置１００への応答パケットを送信する応答時間間隔である。たとえば、上りの時間間隔としてｄ３Ｂが選択されたとすると、対応する送信時間間隔ｄ３Ｂと比較する。
【００４８】
性能評価では、下りの時間間隔が上りの時間間隔よりも大きい場合、予備系サーバＢよりも主系サーバＡの方が性能がよいと判定する。また、下りの時間間隔が上りの時間間隔と同じである場合、主系サーバＡと予備系サーバＢとの性能は、同じであると判定する。また、下りの時間間隔が上りの時間間隔よりも小さい場合、主系サーバＡよりも予備系サーバＢの方が性能がよいと判定する。
【００４９】
つぎに、上述した図１〜図６に示した試験例を実現する試験装置の具体例について説明する。
【００５０】
（コンピュータのハードウェア構成例）
図７は、コンピュータ（試験端末Ｃ、試験装置１００、主系サーバＡ、予備系サーバＢ）のハードウェア構成例を示すブロック図である。図７において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）７０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７０３と、磁気ディスクドライブ７０４と、磁気ディスク７０５と、光ディスクドライブ７０６と、光ディスク７０７と、ディスプレイ７０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）７０９と、キーボード７１０と、マウス７１１と、スキャナ７１２と、プリンタ７１３と、を備えている。また、各構成部はバス７００によってそれぞれ接続されている。
【００５１】
ここで、ＣＰＵ７０１は、コンピュータの全体の制御を司る。ＲＯＭ７０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションといった各種プログラムを記憶している。ＲＡＭ７０３は、ＣＰＵ７０１のワークエリアとして使用される。磁気ディスクドライブ７０４は、ＣＰＵ７０１の制御にしたがって磁気ディスク７０５に対するデータのリード／ライトを制御する。磁気ディスク７０５は、磁気ディスクドライブ７０４の制御で書き込まれたデータを記憶する。
【００５２】
光ディスクドライブ７０６は、ＣＰＵ７０１の制御にしたがって光ディスク７０７に対するデータのリード／ライトを制御する。光ディスク７０７は、光ディスクドライブ７０６の制御で書き込まれたデータを記憶したり、光ディスク７０７に記憶されたデータをコンピュータに読み取らせたりする。
【００５３】
ディスプレイ７０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ７０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００５４】
インターフェース（以下、「Ｉ／Ｆ」と略する。）７０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク７１４に接続され、このネットワーク７１４を介して他の装置に接続される。そして、Ｉ／Ｆ７０９は、ネットワーク７１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ７０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００５５】
キーボード７１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス７１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５６】
スキャナ７１２は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ７１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ７１３は、画像データや文書データを印刷する。プリンタ７１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５７】
（パケット情報データベース（ＤＢ）の記憶内容）
つぎに、本実施の形態にかかる試験装置１００に用いられるパケット情報ＤＢについて説明する。図８〜図１３は、パケット情報ＤＢの記憶内容例を示す説明図である。パケット情報ＤＢ８００は、具体的には、たとえば、図７に示したＲＡＭ７０３、磁気ディスク７０５、光ディスク７０７などの記憶装置により、その機能を実現する。
【００５８】
図８〜図１３において、パケット情報ＤＢ８００は、送信パケット番号項目、セッションＩＤ項目、経過時間項目、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報項目、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目、待機フラグ項目、送信パケットの時間間隔項目、応答パケットの時間間隔項目と、を有する。
【００５９】
送信パケット番号項目には、レコードごとに、送信パケットについての送信パケット番号が格納される。送信パケットは、同一セッションＩＤの送信パケット群において、先頭の送信パケットから降順に割り振られる。受信パケットについては、送信パケット番号は割り振られない。
【００６０】
セッションＩＤ項目には、セッションＩＤが格納される。同一セッションであれば同一セッションＩＤが格納される。
【００６１】
経過時間項目には、試験開始からの経過時間が格納される。具体的には、試験開始から試験装置１００がパケットをキャプチャしたときまでの時間が、経過時間として格納される。試験開始が試験装置１００によって決められた場合、最初にキャプチャされたパケットの経過時間は、試験開始からキャプチャされたときまでの時間となる。また、最初のパケットのキャプチャにより試験開始とする場合には、最初にキャプチャされたパケットの経過時間を０にする。
【００６２】
ＩＰヘッダ情報項目は、送信元ＩＰ項目と宛先ＩＰ項目とを有する。送信元ＩＰ項目には、キャプチャされたパケットのヘッダに記述されている送信元ＩＰアドレスが格納される。また、宛先ＩＰ項目には、キャプチャされたパケットのヘッダに記述されている宛先ＩＰアドレスが格納される。
【００６３】
図８〜図１３では、ＩＰアドレス「１０．１０．１０．１０」を試験端末ＣのＩＰアドレスとする。また、ＩＰアドレス「２０．２０．２０．２０」を主系サーバＡのＩＰアドレスとする。また、ＩＰアドレス「３０．３０．３０．３０」を予備系サーバＢのＩＰアドレスとする。また、ＩＰアドレス「５０．５０．５０．５０」を試験装置１００のＩＰアドレスとする。
【００６４】
ＴＣＰヘッダ情報項目は、送信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ（ＳＹＮ（同期）／ＡＣＫ（確認応答）／ＰＳＨ（プッシュ）／ＦＩＮ（通信終了）／ＲＳＴ（リセット要求））項目を有する。
【００６５】
送信元ポート項目には、キャプチャされたパケットのヘッダに記述されている送信元ポート番号が格納される。
【００６６】
宛先ポート項目には、キャプチャされたパケットのヘッダに記述されている宛先ポート番号が格納される。
【００６７】
シーケンス番号項目には、キャプチャされたパケットのヘッダに記述されているシーケンス番号が格納される。シーケンス番号は、キャプチャされたパケットの送信元で与えられたランダムな値である。
【００６８】
確認応答番号項目には、キャプチャされたパケットのヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、受け取ったパケットのシーケンス番号に１加算した値を確認応答番号とする。
【００６９】
フラグ項目には、パケットの種類（ＳＹＮ／ＡＣＫ／ＰＳＨ／ＦＩＮ／ＲＳＴ）を特定するフラグが格納される。たとえば、レコードｒ１のパケットは、ＳＹＮパケットである。
【００７０】
アプリヘッダ情報項目には、ＨＴＴＰやＰＯＰ（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ）３／ＩＭＡＰ（Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）といった各アプリケーションに関するヘッダ情報が格納される。
【００７１】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。なお、パケットのペイロードは格納しても破棄してもどちらでもよい。
【００７２】
待機フラグ項目には、待機フラグの値（０／１）が格納される。デフォルトの値は「０」とする。「０」に設定された場合は、前の送信パケットに対する応答パケットの受信を待つことなく、対象となるパケットを送信する。「１」に設定された場合は、１つ前の送信パケットに対する応答パケットの受信を待って、該当するパケットを送信する。待機フラグの設定については後述する。
【００７３】
送信パケットの時間間隔項目は、主系項目と、予備系項目と、待機時間項目と、を有する。
【００７４】
主系項目には、１つ前の主系サーバＡへの送信パケットの送信から対象となる送信パケットを主系サーバＡに送信するまでの経過時間が格納される。なお、先頭の送信パケット（送信パケット番号が「１」である送信パケット）の場合は、試験開始からの先頭の送信パケットを主系サーバＡに送信したときの経過時間が格納される。
【００７５】
予備系項目には、１つ前の予備系サーバＢへの送信パケットの送信から対象となる送信パケットを予備系サーバＢに送信するまでの経過時間が格納される。なお、先頭の送信パケット（送信パケット番号が「１」である送信パケット）の場合は、試験開始からの先頭の送信パケットを予備系サーバＢに送信したときの経過時間が格納される。
【００７６】
待機時間項目には、予備系サーバＢへの時間間隔から主系サーバＡへの時間間隔を減算した時間差が待機時間として格納される。
【００７７】
応答パケットの時間間隔項目には、１つ前の予備系サーバＢからの応答パケットの受信から、対象となる応答パケットを予備系サーバＢから受信するまでの経過時間が格納される。つぎに、図８〜図１３を個別に説明する。
【００７８】
図８に示したパケット情報ＤＢ８００では、試験端末Ｃと主系サーバＡとの間で送受信するパケットの情報が格納されている。たとえば、レコードｒ１〜ｒ３は、同一セッションＩＤ（＝ａｂｃ）のパケットを示すレコードであり、試験端末Ｃと主系サーバＡとの間での、ＴＣＰ／ＩＰに従った３ウェイハンドシェイクを示している。３ウェイハンドシェイクでは、セッション確立、データ転送、セッション終了を実行する一連の処理からなる。
【００７９】
具体的には、まず試験端末ＣがＳＹＮパケット（シーケンス番号：試験端末Ｃ側の乱数、確認応答番号：０、ＳＹＮフラグ）をパケットとして主系サーバＡに送る。このＳＹＮパケットが、レコードｒ１の送信パケットに相当する。
【００８０】
つぎに、そのＳＹＮパケットを受け取った主系サーバＡがＳＹＮ／ＡＣＫパケット（シーケンス番号：主系サーバＡ側の乱数、確認応答番号：ＳＹＮパケットのシーケンス番号＋１、ＳＹＮフラグ、ＡＣＫフラグ）を試験端末Ｃに送る。このＳＹＮ／ＡＣＫパケットが、レコードｒ２の応答パケットに相当する。
【００８１】
さらに、そのＳＹＮ／ＡＣＫパケットを受け取った試験端末ＣがＡＣＫパケット（シーケンス番号：主系サーバＡ側の確認応答番号、確認応答番号：ＳＹＮ／ＡＣＫパケットのシーケンス番号＋１、ＡＣＫフラグ）をパケットとして主系サーバＡに送る。このＡＣＫパケットが、レコードｒ３の送信パケットに相当する。
【００８２】
レコードｒ３のパケットは、レコードｒ２のＳＹＮ／ＡＣＫパケットに応答したＡＣＫパケットであるため、レコードｒ２のＳＹＮ／ＡＣＫパケットの受信を待って試験端末Ｃから主系サーバＡに送信される。このような場合、試験装置１００は、レコードｒ３の待機フラグをＯＮ（０→１）に設定する。
【００８３】
また、レコードｒ１１〜ｒ１８は、同一セッションＩＤ（＝ｕｖｗ）のパケットを示すレコードであり、図２に示したパケットＳ１Ａ〜Ｓ４Ａ，Ｒ１Ａ〜Ｒ４Ａを示している。具体的には、パケットＳ１Ａ〜Ｓ４Ａは、それぞれレコードｒ１１，ｒ１３，ｒ１５，ｒ１７を示している。同様に、パケットＲ１Ａ〜Ｒ４Ａは、それぞれレコードｒ１２，ｒ１４，ｒ１６，ｒ１８を示している。
【００８４】
このうち、レコードｒ１１のパケットＳ１Ａを送信すると、パケットＳ１Ａを受信した主系サーバＡでは、パケットＳ１Ａを解析することにより、応答ヘッダ（アプリヘッダ情報）にＣｏｏｋｉｅ情報が埋め込まれたレコードｒ１２のパケットＲ１Ａを生成する。
【００８５】
レコードｒ１３のパケットＳ２Ａは、レコードｒ１２のパケットＲ１Ａに埋め込まれているＣｏｏｋｉｅ情報を利用する必要があるため、レコードｒ１２のパケットＲ１Ａの受信を待って試験端末Ｃから主系サーバＡに送信される。このような場合、試験装置１００は、レコードｒ１３の待機フラグをＯＮ（０→１）に設定する。
【００８６】
図９に示したパケット情報ＤＢ８００は、図８に示したパケットの宛先ＩＰアドレスを、主系サーバＡから予備系サーバＢに書き換えた変換例を示している。なお、送信元ＩＰアドレスも試験端末Ｃから試験装置１００に書き換えている。試験端末Ｃと試験装置１００が同一装置（同一ＩＰアドレス）である場合は、送信元ＩＰアドレスを書き換える必要はない。
【００８７】
また、この書き換えに伴って、レコードｒ１〜ｒ３のセッションＩＤも、「ａｂｃ」から「ｄｅｆ」に書き換えられる。同様に、レコードｒ１１〜ｒ１８のセッションＩＤも、「ｕｖｗ」から「ｘｙｚ」に書き換えられる。なお、シーケンス番号や確認応答番号も、パケット送受信のシーケンスや応答元のパケットが特定できるように所定のルールにしたがって書き換えられる。
【００８８】
この書き換えにより、レコードｒ１，ｒ３，ｒ１１，ｒ１３，ｒ１５，ｒ１７の送信パケットは、試験装置１００から予備系サーバＢへの送信パケットとなる。たとえば、レコードｒ１，ｒ３，ｒ１１，ｒ１３，ｒ１５，ｒ１７の送信パケットは、図２に示した送信パケットＳ１Ｂ〜Ｓ４Ｂとなる。
【００８９】
宛先が予備系サーバＢになると、試験装置１００は、レコードｒ１，ｒ３，ｒ１１，ｒ１３，ｒ１５，ｒ１７の送信パケットを、主系項目の時間間隔にしたがって予備系サーバＢに送信する。たとえば、レコードｒ１１，ｒ１３，ｒ１５，ｒ１７の送信パケットＳ１Ｂ〜Ｓ４Ｂを、試験開始から１０［ｍｓｅｃ］の時間間隔分の時間経過により送信することとなる。
【００９０】
なお、図９に示した状態では、変換後の宛先である予備系サーバＢにはまだパケットＳ１Ｂ〜Ｓ４Ｂを送信していないため、経過時間項目は空欄となる。また、応答パケットのレコードｒ２，ｒ１２，ｒ１４，ｒ１６，ｒ１８も削除される。
【００９１】
図１０に示したパケット情報ＤＢ８００は、図９に示した変換後の送信パケットを予備系サーバＢに送信したときの記憶内容例（その１）を示している。図１０では、図８に示したように、応答パケットのレコードｒ２，ｒ１２，ｒ１４，ｒ１６，ｒ１８が生成される。
【００９２】
レコードｒ１，ｒ３，ｒ１１，ｒ１３，ｒ１５，ｒ１７の送信パケットは、待機フラグが「０」であれば、主系項目の時間間隔の経過により、応答パケットの受信を待つことなく、予備系サーバＢに送信される。たとえば、レコードｒ１１の送信パケットＳ１Ｂは、試験開始から１０［ｍｓｅｃ］経過後に、予備系サーバＢに送信される。主系項目の時間間隔分の時間経過により送信された場合は、主系項目の時間間隔を予備系項目に書き込むこととなる。
【００９３】
ここで、送信対象となる送信パケットの待機フラグが「１」である場合、１つ前の送信パケットの応答パケットの受信を待ってから送信することとなる。たとえば、レコードｒ１３の送信パケットＳ２Ｂは、レコードｒ１２の応答パケットＲ１Ｂの受信を待って送信することとなる。したがって、レコードｒ１３の送信パケットＳ２Ｂは、レコードｒ１１の送信パケットＳ１Ｂの送信から１０［ｍｓｅｃ］経過時に送信されるのではなく、試験開始から応答パケットＲ１Ｂを受信するまでの経過時間分の時間経過により送信される。
【００９４】
応答パケットＲ１Ｂの試験開始からの経過時間は２８［ｍｓｅｃ］であるため、前の送信パケットＳ１Ｂの送信から１８［ｍｓｅｃ］（＝２８［ｍｓｅｃ］−１０［ｍｓｅｃ］）経過時に送信される。したがって、レコードｒ１３の経過時間項目には「２８」が書き込まれ、予備系項目には「１８」が書き込まれる。
【００９５】
また、レコードｒ１３の送信パケットＳ２Ａ，Ｓ２Ｂの時間差は、８［ｍｓｅｃ］（＝１８［ｍｓｅｃ］−１０［ｍｓｅｃ］）となるため、待機時間項目には「８」が待機時間として書き込まれる。すなわち、予備系サーバＢへの送信パケットＳ２Ｂの送信が、主系サーバＡへの送信パケットＳ２Ａの送信よりも８［ｍｓｅｃ］遅延していることがわかる。
【００９６】
図１０では、次のパケットとなるレコードｒ１５の送信パケットＳ３Ｂの送信時期を修正することで、送信パケットＳ２Ｂの遅延分となる待機時間を吸収する。具体的には、送信パケットＳ３Ｂは、待機フラグが「０」であるため、前の送信パケットの受信から１０［ｍｓｅｃ］経過時に送信するが、前のパケットが待機フラグ「１」の送信パケットＳ２Ｂであるため、送信パケットＳ２Ｂでの遅延分の時間差８［ｍｓｅｃ］を、送信パケットＳ３Ｂの主系項目の時間間隔から減算することで、予備系項目の時間間隔にする。
【００９７】
この場合、レコードｒ１５の送信パケットＳ３Ｂにおける予備系項目の時間間隔は、２［ｍｓｅｃ］（＝１０［ｍｓｅｃ］−８［ｍｓｅｃ］）となる。したがって、レコードｒ１５の送信パケットＳ３Ｂは、送信パケットＳ２Ｂの受信後、２［ｍｓｅｃ］経過時に送信され、予備系項目には「２」が書き込まれる。
【００９８】
後続となるレコードｒ１７の送信パケットＳ４Ｂは、待機フラグ「０」であるため、レコードｒ１７の送信パケットＳ４Ｂは、送信パケットＳ３Ｂの受信後、主系項目での１０［ｍｓｅｃ］経過時に送信される。これにより、予備系項目に「１０」が書き込まれる。これにより、主系サーバＡへの送信パケットＳ１Ａ〜Ｓ４Ａの時間間隔の総和と予備系サーバＢへの送信パケットＳ１Ｂ〜Ｓ４Ｂの時間間隔の総和とが等しくなり、予備系サーバＢを主系サーバＡと同一負荷で試験することができる。
【００９９】
図１１に示したパケット情報ＤＢ８００は、図９に示した変換後の送信パケットを予備系サーバＢに送信したときの記憶内容例（その２）を示している。図１０との違いは、図１０では、図３に示したように、レコードｒ１３の送信パケットＳ２Ｂによる遅延（時間差８［ｍｓｅｃ］）を、レコードｒ１５の送信パケットＳ３Ｂの時間間隔を遅延分短縮させることで、負荷の同一化を図っていた。
【０１００】
これに対し、図１１では、図４に示したように、レコードｒ１３の送信パケットＳ２Ｂによる遅延（待機時間８［ｍｓｅｃ］）を、レコードｒ１５の送信パケットＳ３Ｂとレコードｒ１７の送信パケットＳ４Ｂ（いずれも待機フラグが「０」）の時間間隔の総和を遅延分短縮させることで、負荷の同一化を図る。
【０１０１】
具体的には、レコードｒ１３の送信パケットＳ２Ｂによる遅延分の待機時間が８［ｍｓｅｃ］であるため、短縮させるパケット数で待機時間を分割する。具体的には、レコードｒ１５の送信パケットＳ３Ｂとレコードｒ１７の送信パケットＳ４Ｂの各々の時間間隔を、４［ｍｓｅｃ］（＝８［ｍｓｅｃ］÷２個）分短縮させる。
【０１０２】
これにより、主系サーバＡへの送信パケットＳ１Ａ〜Ｓ４Ａの時間間隔の総和と予備系サーバＢへの送信パケットＳ１Ｂ〜Ｓ４Ｂの時間間隔の総和とが等しくなり、予備系サーバＢを主系サーバＡと同一負荷で試験することができる。
【０１０３】
図１２に示したパケット情報ＤＢ８００は、図９に示した変換後の送信パケットを予備系サーバＢに送信したときの記憶内容例（その３）を示している。図１２において、レコードｒ１２の応答パケットＲ１Ｂが試験開始後３３［ｍｓｅｃ］後に試験装置１００に受信されたものとする。すなわち、レコードｒ１３の送信パケットＳ２Ｂは、前の送信パケットＳ１Ｂの送信から２３［ｍｓｅｃ］（＝３３［ｍｓｅｃ］−１０［ｍｓｅｃ］）経過時に送信される。
【０１０４】
したがって、レコードｒ１３の経過時間項目には「３３」が書き込まれ、予備系項目には「２３」が書き込まれる。また、レコードｒ１３の送信パケットＳ２Ａ，Ｓ２Ｂの時間差は、１３［ｍｓｅｃ］（＝２３［ｍｓｅｃ］−１０［ｍｓｅｃ］）となるため、待機時間項目には「１３」が待機時間として書き込まれる。すなわち、予備系サーバＢへの送信パケットＳ２Ｂの送信が、主系サーバＡへの送信パケットＳ２Ａの送信よりも１３［ｍｓｅｃ］遅延していることがわかる。
【０１０５】
図１０の例では、次の送信パケットＳ３Ｂを送信する時間間隔を遅延分短縮させることで調整したが、本例の場合、遅延分の待機時間（＝１３［ｍｓｅｃ］）が、次の送信パケットＳ３Ｂを送信する時間間隔（＝１０［ｍｓｅｃ］）よりも大きい。したがって、その次の送信パケットＳ３Ｂを送信する時間間隔（＝１０［ｍｓｅｃ］）も利用する。
【０１０６】
送信パケットＳ２Ｂ，Ｓ３Ｂの時間間隔の総和は２０［ｍｓｅｃ］（＝１０［ｍｓｅｃ］＋１０［ｍｓｅｃ］）であるため、遅延分の待機時間（＝１３［ｍｓｅｃ］）を吸収することができる。したがって、図１１に示した場合と同様、レコードｒ１５の送信パケットＳ３Ｂとレコードｒ１７の送信パケットＳ４Ｂの各々の時間間隔を、３．５［ｍｓｅｃ］｛＝（１０［ｍｓｅｃ］＋１０［ｍｓｅｃ］−１３［ｍｓｅｃ］）÷２個｝分短縮させる。
【０１０７】
これにより、主系サーバＡへの送信パケットＳ１Ａ〜Ｓ４Ａの時間間隔の総和と予備系サーバＢへの送信パケットＳ１Ｂ〜Ｓ４Ｂの時間間隔の総和とが等しくなり、予備系サーバＢを主系サーバＡと同一負荷で試験することができる。
【０１０８】
図１３に示したパケット情報ＤＢ８００は、図９に示した変換後の送信パケットを予備系サーバＢに送信したときの記憶内容例（その４）を示している。図１２では、遅延分の待機時間が次の送信パケットＳ３Ｂを送信する時間間隔（＝１０［ｍｓｅｃ］）よりも大きくても、その次の送信パケットＳ４Ｂを送信する時間間隔（＝１０［ｍｓｅｃ］）を利用することで調整した。図１３では、図５に示したように、それでもなお、調整できない場合の例である。
【０１０９】
具体的には、レコードｒ１２の応答パケットＲ１Ｂが試験開始後４６［ｍｓｅｃ］で受信されたものとする。この場合、レコードｒ１３の送信パケットＳ２Ｂは、先行パケットＳ１Ｂの送信から３６［ｍｓｅｃ］（＝４６［ｍｓｅｃ］−１０［ｍｓｅｃ］）経過時に送信される。したがって、レコードｒ１３の経過時間項目には「４６」が書き込まれ、予備系項目には「３６」が書き込まれる。
【０１１０】
また、レコード１３の送信パケットＳ２Ａ，Ｓ２Ｂの時間差は、２６［ｍｓｅｃ］（＝３６［ｍｓｅｃ］−１０［ｍｓｅｃ］）となるため、待機時間項目には「２６」が書き込まれる。すなわち、予備系サーバＢへの送信パケットＳ２Ｂの送信が、主系サーバＡへの送信パケットＳ２Ａの送信よりも２６［ｍｓｅｃ］遅延していることがわかる。
【０１１１】
図１３では、後続のすべての送信パケットＳ３Ｂ，Ｓ４Ｂの時間間隔の総和（２０［ｍｓｅｃ］＝１０［ｍｓｅｃ］＋１０［ｍｓｅｃ］）では、遅延分の待機時間２６［ｍｓｅｃ］を吸収することができない。このような場合は、後続のすべての送信パケットＳ３Ｂ，Ｓ４Ｂの時間間隔を０［ｍｓｅｃ］以上の所定値とする。
【０１１２】
すなわち、遅延した送信パケットＳ２Ｂの送信から所定値の時間経過時に、送信パケットＳ３Ｂを送信し、送信パケットＳ３Ｂの送信から所定値の時間経過時に、送信パケットＳ４Ｂを送信する。本例では、所定値を０［ｍｓｅｃ］としたため、送信パケットＳ３Ｂ，Ｓ４Ｂは、送信パケットＳ２Ｂと同時に送信される。
【０１１３】
この場合、主系サーバＡへの送信パケットＳ１Ａ〜Ｓ４Ａの時間間隔の総和と予備系サーバＢへの送信パケットＳ１Ｂ〜Ｓ４Ｂの時間間隔の総和とは、必ずしも等しくならない。図１３の場合は、予備系サーバＢへの送信パケットＳ１Ｂ〜Ｓ４Ｂの時間間隔の総和の方が大きくなるが、図１３のように短縮化しない場合に比べて、予備系サーバＢの負荷を主系サーバＡの負荷に近づけることができる。したがって、性能評価の精度向上を図ることができる。
【０１１４】
（試験装置１００の機能的構成例）
図１４は、本実施の形態にかかる試験装置１００の機能的構成例を示すブロック図である。図１４において、試験装置１００は、取得部１４０１と、解析部１４０２と、判断部１４０３と、生成部１４０４と、送信部１４０５と、受信部１４０６と、検出部１４０７と、算出部１４０８と、修正部１４０９と、比較部１４１０と、決定部１４１１と、出力部１４１２と、を備えている。
【０１１５】
なお、取得部１４０１〜出力部１４１２は、具体的には、たとえば、図７に示したＲＯＭ７０２、ＲＡＭ７０３、磁気ディスク７０５、光ディスク７０７などの記憶装置に記憶されたプログラムをＣＰＵ７０１に実行させることにより、または、Ｉ／Ｆ７０９により、その機能を実現する。
【０１１６】
取得部１４０１は、ネットワーク上を流れるパケットを取得する。具体的には、試験装置１００に接続または内蔵されたタップでキャプチャされたパケットを取り込む。たとえば、図１〜図５を例に挙げると、取得部１４０１は、ネットワークＮａ上を流れるパケットＳ１Ａ〜Ｓ４Ａ，Ｒ１Ａ〜Ｒ４Ａを取得する。
【０１１７】
解析部１４０２は、取得部１４０１によって取得されたパケットを解析する。具体的には、取得されたパケットのヘッダを解析して、解析した情報を、パケット情報ＤＢ８００に書き込む。
【０１１８】
判断部１４０３は、解析部１４０２による解析結果に基づいて、送信パケットごとに、主系サーバＡからの応答パケットを必要とする特定のパケットであるか否かを判断する。具体的には、たとえば、対象となる送信パケットの先行パケットに対する応答パケットが３ウェイハンドシェイクのＳＹＮ／ＡＣＫパケットであるか否かを判断する。また、対象となる送信パケットの先行パケットに対する応答パケットに、Ｃｏｏｋｉｅ情報が埋め込まれているか否かを判断する。
【０１１９】
判断部１４０３は、ＳＹＮ／ＡＣＫパケットであったり、Ｃｏｏｋｉｅ情報が埋め込まれていると判断された場合には、対象となる送信パケットのレコードにおける待機フラグ項目の値を「１」に設定する。たとえば、図８に示したように、レコードｒ２，ｒ１２の応答パケットについて待機フラグを「１」にする。
【０１２０】
生成部１４０４は、主系サーバＡに送信された送信パケットのレコードを予備系サーバＢに送信する送信パケットのレコードに変換することにより、予備系サーバＢへの送信パケットを生成する。具体的には、たとえば、パケット情報ＤＢ８００において、図９に示したような書き換えを実行することで、予備系サーバＢに送信する送信パケットを生成する。
【０１２１】
送信部１４０５は、生成部１４０４によって生成された送信パケットを予備系サーバＢに送信する。具体的には、たとえば、待機フラグが「０」である送信パケットについては、主系サーバＡへの送信時間間隔にしたがって、生成部１４０４によって生成された送信パケットを予備系サーバＢに送信する。
【０１２２】
一方、待機フラグが「１」である送信パケットについては、送信部１４０５は、パケット情報ＤＢ８００の予備系項目に書き込まれた送信時間間隔で送信する。また、待機フラグが「０」であっても、遅延分の時間差の調整を受けた送信パケットについては、パケット情報ＤＢ８００の予備系項目に書き込まれた送信時間間隔で送信する。
【０１２３】
すなわち、判断部１４０３により、送信パケットが特定のパケットであると判断された場合は、送信部１４０５は、送信パケットをその送信時間間隔にしたがって送信する。一方、判断部１４０３により、送信パケットが特定のパケットであると判断された場合に、送信部１４０５は、その送信時間間隔に従った送信タイミングを過ぎても、先行パケットに対する応答パケットの受信後に送信パケットを送信する。
【０１２４】
受信部１４０６は、予備系サーバＢからの応答パケットを受信する機能を有する。受信部１４０６によって受信された応答パケットは、解析部１４０２により解析され、パケット情報ＤＢ８００に格納される。
【０１２５】
検出部１４０７は、主系サーバＡへ送信する送信時間間隔よりも長い送信時間間隔分の時間経過で予備系サーバＢに送信された送信パケットを検出する。具体的には、パケット情報ＤＢ８００の主系項目の送信時間間隔分の時間を経過しても送信されず、その後に、送信された送信パケットを検出する。たとえば、検出部１４０７は、図１０〜図１３に示したレコードｒ３，ｒ１３の送信パケットを検出する。
【０１２６】
算出部１４０８は、送信パケットの送信が待たされる待機時間を算出する。具体的には、たとえば、試験開始から対象となる送信パケットが送信されたときの経過時間から、１つ前の送信パケットの経過時間を引くことで、対象となる送信パケットの１つ前からの時間間隔が求められて、予備系項目に書き込まれる。算出部１４０８は、この予備系項目に書き込まれた時間間隔から主系項目の時間間隔を引くことにより、待機時間を算出する。算出された待機時間は、待機時間項目に書き込まれる。
【０１２７】
修正部１４０９は、待機時間が発生した場合に、後続の送信パケット群の中で待機フラグが「０」である送信パケットを選択し、その選択された送信パケットを送信する送信時間間隔から待機時間を減算することで修正する。具体的な修正例については、図３〜図５に示したようにおこなう。修正された時間間隔は、その選択された送信パケットについての予備系項目に書き込まれる。
【０１２８】
すなわち、修正部１４０９は、特定のパケットに対する先行パケットの送信と特定のパケットの送信との間の送信時間間隔（予備系サーバＢへの送信時間間隔）が、先行パケットと特定のパケットに対応する２つのパケットの送信時間間隔（主系サーバＡへの送信時間間隔）を超える場合に、特定のパケットと特定のパケットに後続して送信する後続パケットとの間の送信時間間隔（予備系サーバＢへの送信時間間隔）を、特定のパケットと後続パケットに対応する２つのパケットの送信時間間隔（主系サーバＡへの送信時間間隔）よりも短く修正することとなる。
【０１２９】
また、比較部１４１０は、指定された送信パケットＳｉＢ（ただし、ｉ≠１）を送信する送信時間間隔ｄｉＢとその応答パケットＲｉＢを受信する送信時間間隔ＤｉＢとを比較する。なお、任意の送信パケットＳｉＢを指定してもよいが、待機時間の影響を受けていない送信パケットＳｉＢを指定するのが好ましい。待機時間の影響を受けていない送信パケットとは、たとえば、待機フラグがＯＮでない送信パケットであったり、待機時間により時間間隔が短縮化されていない送信パケットである。
【０１３０】
このように、待機時間の影響を受けていない送信パケットＳｉＢを指定することで、主系サーバＡへの送信と同一時間間隔で送信されるため、主系サーバＡへの送信を予備系サーバＢに対しても忠実に再現することができる。したがって、性能評価を高精度におこなうことができる。
【０１３１】
決定部１４１１は、比較部１４１０によって比較された比較結果に基づいて、比較対象の装置の性能を相対的に決定する。具体的には、ｄｉＢ＜ＤｉＢである場合、決定部１４１１は、主系サーバＡが予備系サーバＢよりも性能がよいと決定し、決定結果をメモリに書き込む。また、ｄｉＢ＝ＤｉＢである場合、決定部１４１１は、主系サーバＡと予備系サーバＢとは同一性能であると決定し、決定結果をメモリに書き込む。さらに、ｄｉＢ＞ＤｉＢである場合、試験装置１００は、予備系サーバＢが主系サーバＡよりも性能がよいと決定し、決定結果をメモリに書き込む。
【０１３２】
また、出力部１４１２は、決定部１４１１によって決定された決定結果を出力する。具体的には、出力部１４１２は、決定結果をディスプレイ７０８に表示したり、プリンタ７１３に印刷出力したり、外部の装置に送信したりする。
【０１３３】
（試験処理手順）
つぎに、本実施の形態にかかる試験装置１００による試験処理手順について、図１５〜図２１を用いて説明する。
【０１３４】
図１５は、試験端末Ｃと主系サーバＡ間に流れるパケットの取得処理手順を示すフローチャートである。図１５において、まず、試験装置１００は、試験開始入力を受けると、計時を開始する（ステップＳ１５０１）。そして、パケットが取得（キャプチャ）されるのを待ち受ける（ステップＳ１５０２：Ｎｏ）。パケットが取得された場合（ステップＳ１５０２：Ｙｅｓ）、試験装置１００は、パケット取得時の計時開始からの経過時間を検出する（ステップＳ１５０３）。そして、試験装置１００は、取得したパケットのヘッダに記述されている宛先ＩＰアドレスを確認する（ステップＳ１５０４）。
【０１３５】
宛先ＩＰアドレスが主系サーバＡのＩＰアドレスである場合（ステップＳ１５０４：第１送信先）、取得したパケットは、試験端末Ｃから主系サーバＡへの送信パケットであることがわかる。この場合、試験装置１００は、１つ前の主系サーバＡへの送信パケットの送信からの時間間隔を算出する（ステップＳ１５０５）。具体的には、試験装置１００は、今回取得した送信パケットの経過時間から１つ前の送信パケットの経過時間を引くことで、１つ前の主系サーバＡへの送信パケットの送信からの時間間隔を算出する。
【０１３６】
このあと、試験装置１００は、パケット情報ＤＢ８００に新規レコードおよび送信パケット番号を設定し、その送信パケット番号、ステップＳ１５０３で検出された経過時間、ステップＳ１５０５で算出された時間間隔、ヘッダ、ペイロードを格納する（ステップＳ１５０６）。
【０１３７】
このあと、試験装置１００は、判断部１４０３により、１つ前の送信パケットに対する応答パケットの情報が必要であるか否かを判断する（ステップＳ１５０７）。必要であると判断された場合（ステップＳ１５０７：Ｙｅｓ）、試験装置１００は、待機フラグをＯＮ（１）に設定する（ステップＳ１５０８）。そして、試験装置１００は、計時終了か否かを判断する（ステップＳ１５０９）。
【０１３８】
また、ステップＳ１５０７において、応答パケットの情報が必要ないと判断された場合（ステップＳ１５０７：Ｎｏ）、待機フラグをＯＦＦ（０）のまま、ステップＳ１５０９に移行する。
【０１３９】
また、ステップＳ１５０４において、宛先ＩＰアドレスが試験端末ＣのＩＰアドレスである場合（ステップＳ１５０４：試験端末）、試験装置１００は、パケット情報ＤＢ８００に新規レコードを設定し、ステップＳ１５０３で検出された経過時間、ヘッダ、ペイロードを格納する（ステップＳ１５１０）。そして、ステップＳ１５０９に移行する。
【０１４０】
そして、ステップＳ１５０９において、試験装置１００は、計時終了か否かを判断する（ステップＳ１５０９）。計時終了でない場合（ステップＳ１５０９：Ｎｏ）、ステップＳ１５０２に戻る。一方、計時終了である場合（ステップＳ１５０９：Ｙｅｓ）、パケットの取得処理を終了する。
【０１４１】
このように、図１５に示したパケットの取得処理を試験装置１００が実行することで、図８に示したように、パケット情報ＤＢ８００にレコードｒ１〜ｒ３，ｒ１１〜ｒ１８が設定されることとなる。
【０１４２】
（送信パケット変換処理）
つぎに、送信パケット変換処理について説明する。送信パケット変換処理は、図１５によって、図８に示したようにパケット情報ＤＢ８００に格納された送信パケットを宛先変換する処理である。
【０１４３】
図１６は、送信パケット変換処理手順を示すフローチャートである。なお、送信パケット変換処理は、セッションＩＤごとにおこなうものとする。まず、試験装置１００は、送信パケット番号ｉをｉ＝１とし（ステップＳ１６０１）、ｉ＞ｎであるか否かを判断する（ステップＳ１６０２）。ｎは変換対象となるセッションＩＤでの送信パケット数である。
【０１４４】
ｉ＞ｎでない場合（ステップＳ１６０２：Ｎｏ）、試験装置１００は、送信パケットＳｉＡのレコードを指定し（ステップＳ１６０３）、宛先を予備系サーバＢのＩＰアドレスに変換することにより、送信パケットＳｉＢを生成する（ステップＳ１６０４）。なお、送信元についても、試験端末ＣのＩＰアドレスから試験装置１００のＩＰアドレスに変換する。また、ＴＣＰヘッダ情報内のシーケンス番号や確認応答番号についても必要に応じて変換する。
【０１４５】
そして、ｉをインクリメントして（ステップＳ１６０５）、ステップＳ１６０２に戻る。ステップＳ１６０２において、ｉ＞ｎである場合（ステップＳ１６０２：Ｙｅｓ）、変換対象となるセッションＩＤにおける送信パケット変換処理を終了する。
【０１４６】
このように、図１６に示した送信パケット変換処理を試験装置１００が実行することで、図９に示したように、パケット情報ＤＢ８００に宛先変換後の送信パケットのレコードｒ１，ｒ３，ｒ１１，ｒ１３，ｒ１５，ｒ１７が設定されることとなる。なお、応答パケットのレコードｒ２，ｒ１２，ｒ１４，ｒ１６，ｒ１８は削除される。
【０１４７】
図１７は、予備系サーバＢへのパケット送信処理手順を示すフローチャートである。図１７では、図９に示した状態のパケット情報ＤＢ８００を用いる。まず、試験装置１００は、送信パケット番号ｉ＝１、累積待機時間Ｗ＝０、予備系サーバＢへ送信する送信時間間隔ｄｉＢ＝ｄｉＡとする（ステップＳ１７０１）。ｄｉＡは、宛先変換前において送信パケットＳｉＡを主系サーバＡに送信したときの時間間隔である。
【０１４８】
試験装置１００は、試験を開始（計時開始）し（ステップＳ１７０２）、ｉ＞ｎであるか否かを判断する（ステップＳ１７０３）。ｉ＞ｎでない場合（ステップＳ１７０３：Ｎｏ）、試験装置１００は、１つ前の送信パケットＳ（ｉ−１）Ｂの送信（ｉ＝１の場合は、計時開始）から送信時間間隔ｄｉＢ分の時間を経過したか否かを判断する（ステップＳ１７０４）。ここで、判断基準となる送信時間間隔ｄｉＢについて、通常はステップＳ１７０１での初期設定により、送信時間間隔ｄｉＢ＝ｄｉＡとなっているため、試験装置１００は、送信時間間隔ｄｉＢ＝ｄｉＡ分の時間が経過したか否かを判断する。一方、後述する図１８および図１９において、送信時間間隔ｄｉＢ＝ｄｉＡが変更された場合は、変更後の送信時間間隔ｄｉＢを用いることとなる。
【０１４９】
ステップＳ１７０４において、試験装置１００は、送信時間間隔ｄｉＢ分の時間を経過するのを待ち（ステップＳ１７０４：Ｎｏ）、送信時間間隔ｄｉＢ分の時間を経過した場合（ステップＳ１７０４：Ｙｅｓ）、試験装置１００は、送信パケットＳｉＢの待機フラグがＯＮ（１）であるか否かをパケット情報ＤＢ８００の送信パケットＳｉＢのレコードから判断する（ステップＳ１７０５）。待機フラグがＯＮでない場合（ステップＳ１７０５：Ｎｏ）、待機する必要がないため、試験装置１００は、送信時間間隔ｄｉＢ分の時間経過により送信パケットＳｉＢを送信する（ステップＳ１７０６）。そして、ｉをインクリメントして（ステップＳ１７０７）、ステップＳ１７０３に戻る。
【０１５０】
一方、待機フラグがＯＮである場合（ステップＳ１７０５：Ｙｅｓ）、送信時間間隔ｄｉＢ分の時間を経過したときに送信パケットＳｉＢの待機時間ｗｉの計時を開始する（ステップＳ１７０８）。待機時間ｗｉは、対象となっている送信パケットＳｉＢ単独の待機時間である。累積待機時間Ｗの更新については、図１８および図１９において説明する。
【０１５１】
そして、待機時間ｗｉの計時開始後、試験装置１００は、１つ前の送信パケットＳ（ｉ−１）Ｂに対する応答パケットＲ（ｉ−１）Ｂを受信するのを待ち受ける（ステップＳ１７０９：Ｎｏ）。そして、試験装置１００は、応答パケットＲ（ｉ−１）Ｂが受信された場合（ステップＳ１７０９：Ｙｅｓ）、ステップＳ１７０６に移行して、送信パケットＳｉＢを予備系サーバＢに送信することとなる（ステップＳ１７０６）。なお、ステップＳ１７０３において、ｉ＞ｎである場合（ステップＳ１７０３：Ｙｅｓ）、予備系サーバＢへのパケット送信処理を終了する。
【０１５２】
図１８および図１９は、つぎの送信パケットＳ（ｉ＋１）Ｂを送信する送信時間間隔ｄ（ｉ＋１）Ｂの算出処理手順を示すフローチャートである。まず、図１８において、試験装置１００は、図１７のステップＳ１７０８での待機時間ｗｉの計時開始を検出すると（ステップＳ１８０１）、応答パケットＲ（ｉ−１）Ｂの受信を待ち受け（ステップＳ１８０２：Ｎｏ）、応答パケットＲ（ｉ−１）Ｂが受信された場合（ステップＳ１８０２：Ｙｅｓ）、試験装置１００は、待機時間ｗｉの計時開始から応答パケットＲ（ｉ−１）Ｂの受信までの待機時間ｗｉを取得する（ステップＳ１８０３）。
【０１５３】
そして、試験装置１００は、今回取得した待機時間ｗｉを累積待機時間Ｗに加算する（ステップＳ１８０４）。累積待機時間Ｗの初期値は、Ｗ＝０であるため（ステップＳ１７０１）、最初に待機時間ｗｉが取得されると、累積待機時間ＷはＷ＝ｗｉとなる。
【０１５４】
そして、試験装置１００は、次に送信される送信パケットＳ（ｉ＋１）Ｂの待機フラグがＯＮ（１）であるか否かをパケット情報ＤＢ８００の送信パケットＳ（ｉ＋１）Ｂのレコードから判断する（ステップＳ１８０５）。待機フラグがＯＮである場合（ステップＳ１８０５：Ｙｅｓ）、ｉをインクリメントし（ステップＳ１８０６）、ステップＳ１８０１に戻る。
【０１５５】
一方、待機フラグがＯＦＦである場合（ステップＳ１８０５：Ｎｏ）、試験装置１００は、次に送信される送信パケットＳ（ｉ＋１）Ｂの送信時間間隔ｄ（ｉ＋１）Ｂを、送信時間間隔ｄ（ｉ＋１）Ａから累積待機時間Ｗを減算した値に更新する（ステップＳ１８０７）。そして、試験装置１００は、更新された送信時間間隔ｄ（ｉ＋１）Ｂがｄ（ｉ＋１）Ｂ＜０であるか否かを判断する（ステップＳ１８０８）。
【０１５６】
ｄ（ｉ＋１）Ｂ＜０でない場合（ステップＳ１８０８：Ｎｏ）、累積待機時間Ｗ＝０として（ステップＳ１８０９）、ステップＳ１８０６に移行することとなる。そして、次に送信される送信パケットＳ（ｉ＋１）Ｂについては、図１７のステップＳ１７０７でｉがインクリメントされることで、ステップＳ１８０７で更新された送信時間間隔ｄ（ｉ＋１）Ｂ分の時間経過により送信されることとなる。
【０１５７】
また、ステップＳ１８０８において、ｄ（ｉ＋１）Ｂ＜０である場合（ステップＳ１８０８：Ｙｅｓ）、送信パケットＳ（ｉ＋１）Ｂを現在対象となっている送信パケットＳｉＢよりも先に送信することとなるため、図１９においてさらに修正することとなる。
【０１５８】
図１９では、ステップＳ１８０８：Ｙｅｓのあと、ｋ＝１とする（ステップＳ１９０１）。ｋは、次の送信パケットＳ（ｉ＋１）Ｂ以降の送信パケット数となる。つぎに、試験装置１００は、送信パケットＳ（ｉ＋１＋ｋ）Ｂが存在するか否かを判断する（ステップＳ１９０２）。送信パケットＳ（ｉ＋１＋ｋ）Ｂが存在しない場合（ステップＳ１９０２：Ｎｏ）、試験装置１００は、送信パケットＳ（ｉ＋１）Ｂ〜Ｓ（ｉ＋ｋ）Ｂを送信するそれぞれの送信時間間隔ｄ（ｉ＋１）Ｂ〜ｄ（ｉ＋ｋ）Ｂを所定の送信時間間隔ｄｐ（≧０）に設定する（ステップＳ１９０３）。すなわち、このままでは、送信時間間隔ｄ（ｉ＋１）Ｂ〜ｄ（ｉ＋ｋ）Ｂが負の値となるため、強制的に所定の送信時間間隔ｄｐ（≧０）にする。これにより、一連の処理を終了する。
【０１５９】
一方、ステップＳ１９０２において、送信パケットＳ（ｉ＋１＋ｋ）Ｂが存在する場合（ステップＳ１９０２：Ｙｅｓ）、試験装置１００は、送信パケットＳ（ｉ＋１＋ｋ）Ｂの待機フラグがＯＮであるか否かを、パケット情報ＤＢ８００の送信パケットＳ（ｉ＋１＋ｋ）Ｂのレコードから判断する（ステップＳ１９０４）。
【０１６０】
待機フラグがＯＮである場合（ステップＳ１９０４：Ｙｅｓ）、試験装置１００は、送信パケットＳ（ｉ＋１）Ｂ〜Ｓ（ｉ＋１＋ｋ）Ｂを送信するそれぞれの送信時間間隔ｄ（ｉ＋１）Ｂ〜ｄ（ｉ＋１＋ｋ）Ｂを所定の送信時間間隔ｄｐ（≧０）に設定する（ステップＳ１９０５）。そして、累積待機時間ＷをＷ＝０にして（ステップＳ１９０６）、ステップＳ１８０６に戻る。すなわち、このままでは、送信時間間隔ｄ（ｉ＋１）Ｂ〜ｄ（ｉ＋１＋ｋ）Ｂが負の値となるため、強制的に所定の送信時間間隔ｄｐ（≧０）にする。
【０１６１】
また、ステップＳ１９０４において、待機フラグがＯＦＦである場合（ステップＳ１９０４：Ｎｏ）、試験装置１００は、宛先変換前の送信パケットＳ（ｉ＋１）Ａ〜Ｓ（ｉ＋１＋ｋ）Ａの各送信時間間隔ｄ（ｉ＋１）Ａ〜ｄ（ｉ＋１＋ｋ）Ａをパケット情報ＤＢ８００から読み出して、送信時間間隔ｄ（ｉ＋１）Ａ〜ｄ（ｉ＋１＋ｋ）Ａの総和ΣｄｊＡを算出する（ステップＳ１９０７）。そして、試験装置１００は、総和ΣｄｊＡがΣｄｊＡ≧Ｗであるか否かを判断する（ステップＳ１９０８）。
【０１６２】
ΣｄｊＡ≧Ｗでない場合（ステップＳ１９０８：Ｎｏ）、累積待機時間Ｗを送信パケットＳ（ｉ＋１）Ｂ〜Ｓ（ｉ＋１＋ｋ）Ｂに分散できないため、ｋをインクリメントして（ステップＳ１９１２）、ステップＳ１９０２に戻る。
【０１６３】
一方、ΣｄｊＡ≧Ｗである場合（ステップＳ１９０８：Ｙｅｓ）、試験装置１００は、総和ΣｄｊＡから累積待機時間Ｗを減算した結果をｋで割ることにより、送信時間間隔ｄｑを算出する（ステップＳ１９０９）。そして、試験装置１００は、送信パケットＳ（ｉ＋１）Ｂ〜Ｓ（ｉ＋１＋ｋ）Ｂを送信するそれぞれの送信時間間隔ｄ（ｉ＋１）Ｂ〜ｄ（ｉ＋１＋ｋ）Ｂを、送信時間間隔ｄｑに設定する（ステップＳ１９１０）。これにより、各送信パケットＳ（ｉ＋１）Ｂ〜Ｓ（ｉ＋１＋ｋ）Ｂに対し、累積待機時間Ｗを均等に分散することができる。したがって、送信パケットを集中受信するといった予備系サーバＢの過負荷を防止することができる。
【０１６４】
このあと、累積待機時間ＷをＷ＝０にして（ステップＳ１９１１）、ステップＳ１８０６に戻る。このように、ステップＳ１８０７、Ｓ１９０３、Ｓ１９０５、Ｓ１９１１において、送信パケットを送信する時間間隔を初期設定されたｄｉＡから更新することでステップＳ１７０４において、送信対象となった場合の送信時間間隔ｄｉＢとして用いられる。したがって、図３〜図５に示したような予備系サーバＢへの送信処理を実現することができる。
【０１６５】
図２０は、応答パケットの格納処理手順を示すフローチャートである。試験装置１００は、予備系サーバＢに対して送信パケットＳｉＢを送信するため、予備系サーバＢからその応答パケットＲｉＢを受信するのを待ち受ける（ステップＳ２００１：Ｎｏ）。応答パケットＲｉＢが受信された場合（ステップＳ２００１：Ｙｅｓ）、試験装置１００は、試験開始（ステップＳ１７０２）から応答パケットＲｉＢを受信したときの経過時間を検出する（ステップＳ２００２）。
【０１６６】
試験装置１００は、１つ前の応答パケットＲ（ｉ−１）Ｂを受信してから（ｉ＝１のときは、試験開始から）応答パケットＲｉＢを受信するまでの送信時間間隔ＤｉＢを算出する（ステップＳ２００３）。そして、試験装置１００は、あらたにレコードを設定して、ステップＳ２００２で検出された経過時間、ステップＳ２００３で算出された送信時間間隔ｄｉＢ、応答パケットＲｉＢのヘッダ、ペイロードを格納する（ステップＳ２００４）。これにより、格納処理を終了する。この格納処理により、図１０〜図１３に示したように、応答パケットのレコードｒ２，ｒ１２，ｒ１４，ｒ１６，ｒ１８が格納されることとなる。
【０１６７】
（性能評価処理）
図２１は、性能評価処理手順を示すフローチャートである。まず、試験装置１００は、パケット情報ＤＢ８００の中から任意の送信パケットＳｉＢ（ただし、ｉ≠１）のレコードを指定する（ステップＳ２１０１）。そして、試験装置１００は、指定送信パケットＳｉＢの送信時間間隔ｄｉＢをパケット情報ＤＢ８００から取得する（ステップＳ２１０２）。
【０１６８】
また、試験装置１００は、指定送信パケットＳｉＢに対する応答パケットＲｉＢを、パケット情報ＤＢ８００のＴＣＰヘッダ情報から特定し（ステップＳ２１０３）、特定された応答パケットＲｉＢの送信時間間隔ＤｉＢを取得する（ステップＳ２１０４）。そして、試験装置１００は、送信時間間隔ｄｉＢと送信時間間隔ＤｉＢとを比較する（ステップＳ２１０５）。
【０１６９】
ｄｉＢ＜ＤｉＢである場合（ステップＳ２１０５：ｄｉＢ＜ＤｉＢ）、試験装置１００は、主系サーバＡが予備系サーバＢよりも性能がよいと決定し、決定結果をメモリに書き込む（ステップＳ２１０６）。また、ｄｉＢ＝ＤｉＢである場合（ステップＳ２１０５：ｄｉＢ＝ＤｉＢ）、試験装置１００は、主系サーバＡと予備系サーバＢとは同一性能であると決定し、決定結果をメモリに書き込む（ステップＳ２１０７）。
【０１７０】
さらに、ｄｉＢ＞ＤｉＢである場合（ステップＳ２１０５：ｄｉＢ＞ＤｉＢ）、試験装置１００は、予備系サーバＢが主系サーバＡよりも性能がよいと決定し、決定結果をメモリに書き込む（ステップＳ２１０８）。そのあと、試験装置１００は、メモリに書き込まれた決定結果を出力する（ステップＳ２１０９）。
【０１７１】
なお、図２１では、任意の送信パケットＳｉＢを指定しているが、待機フラグがＯＮでない送信パケットＳｉＢや、予備系サーバＢに送信する送信時間間隔ｄｉＢが主系サーバＡに送信する送信時間間隔ｄｉＡと同じである（ｄｉＢ＝ｄｉＡ）送信パケットＳｉＢを指定するのが好ましい。このような送信パケットＳｉＢは、待機時間の影響を受けていないため、待機時間の影響を受けている送信パケットＳｉＢに比べて高精度な性能評価を行うことができる。
【０１７２】
以上説明したように、試験装置１００、試験方法、および試験プログラムによれば、第１送信先（たとえば、主系サーバＡ）へのパケットの宛先を第２送信先（たとえば、予備系サーバＢ）に換え、第１送信先への送信と同一時間間隔で第２送信先に送信することになる。したがって、第２送信先に対し、あたかも第１送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【０１７３】
また、１つ前の送信パケットに対する応答パケットの情報が必要な場合、対送信パケットの送信が応答パケットの受信まで待たされることとなり、第１送信先の時間間隔の総和よりも第２送信先の時間間隔の総和が大きくなり、同一負荷での再現試験ができない場合が生じる。
【０１７４】
このような場合でも、待機時間を計測して、計測された待機時間分を後続の送信パケットの時間間隔から減算することで、第１送信先の時間間隔の総和と第２送信先の時間間隔の総和とを等しくすることができる。したがって、このような場合でも、第２送信先に対し、あたかも第１送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【０１７５】
また、待機時間が発生した場合に、後続する複数の送信パケットの時間間隔に待機時間を分散することで、後続する送信パケットの時間間隔を近づけすぎないようにする。これにより、第２送信先が後続する送信パケットを短時間で集中的に受信するのを防止でき、第２送信先の過負荷を防止することができる。
【０１７６】
また、後続パケットを含む後続パケット以降の一連のパケットにより待機時間を吸収できない場合には、当該一連のパケットの各々のパケットについての時間間隔を０以上の所定値とする。これにより、第１送信先の時間間隔の総和と第２送信先の時間間隔の総和との差を極力抑えることができ、性能評価の劣化を防止することができる。また、第２送信先の時間間隔の総和のほうが小さくなった場合は、第２送信先に対する性能評価試験の高速化を図ることができる。
【０１７７】
また、待機フラグがＯＮである送信パケットが連続する場合であっても、その送信パケットごとの待機時間の総和を求めることにより、後続の送信パケットの時間間隔で相殺することができる。
【０１７８】
なお、上述した実施の形態において、送信パケットの送信順序を守り、かつ、第１送信先の時間間隔の総和と第２送信先の時間間隔の総和とを等しくできれば、後続するいずれかの送信パケットの時間間隔を修正してもよい。たとえば、図３では、待機フラグがＯＮである送信パケットＳ２Ｂの次の送信パケットＳ３Ｂの時間間隔を修正した例を説明したが、それ以降の送信パケットＳ４Ｂの時間間隔を修正することとしてもよい。
【０１７９】
以上のことから、本実施の形態にかかる試験プログラム、試験装置、および試験方法では、高品質な性能評価試験を効率的におこなうことができる。
【０１８０】
また、図２３の場合、同一負荷で試験するには、図２に示したように、試験実施者は主系サーバＡに対しパケットシーケンスのキャプチャをおこない、予備系サーバＢのある現地（東京）に赴く。そして、キャプチャデータを基に同じシーケンスでパケットを送出する。したがって、試験実施者の移動などによる労力が発生し、試験実施者の負担が増大するという問題がある。しかしながら、本実施の形態によれば、試験実施者は移動しなくても高品質な試験を実施することができるため、試験実施者の負担を軽減することができる。
【０１８１】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１８２】
１００  試験装置
１４０１  取得部
１４０２  解析部
１４０３  判断部
１４０４  生成部
１４０５  送信部
１４０６  受信部
１４０７  検出部
１４０８  算出部
１４０９  修正部
１４１０  比較部
１４１１  決定部
１４１２  出力部
Ａ  主系サーバ
Ｂ  予備系サーバ
Ｃ  試験端末
【図１】
0005488305.tif 000002
【図２】
0005488305.tif 000003
【図３】
0005488305.tif 000004
【図４】
0005488305.tif 000005
【図５】
0005488305.tif 000006
【図６】
0005488305.tif 000007
【図７】
0005488305.tif 000008
【図８】
0005488305.tif 000009
【図９】
0005488305.tif 000010
【図１０】
0005488305.tif 000011
【図１１】
0005488305.tif 000012
【図１２】
0005488305.tif 000013
【図１３】
0005488305.tif 000014
【図１４】
0005488305.tif 000015
【図１５】
0005488305.tif 000016
【図１６】
0005488305.tif 000017
【図１７】
0005488305.tif 000018
【図１８】
0005488305.tif 000019
【図１９】
0005488305.tif 000020
【図２０】
0005488305.tif 000021
【図２１】
0005488305.tif 000022
【図２２】
0005488305.tif 000023
【図２３】
0005488305.tif 000024