試験プログラム、試験装置、および試験方法
【課題】高品質な性能評価試験をおこなうこと。
【解決手段】パケットS2Bの送信遅延を、パケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。具体的には、パケットS2Bの送信遅延により、d2B>d2Aとなっている。したがって、d2B+d3B=d2A+d3Aとなるように、パケットS2Bの送信からパケットS3Bを送信するまでの送信時間間隔d3Bを短縮させる。これにより、予備系サーバBでの処理間隔D3Bも連動して短縮化され、主系サーバAでの処理間隔の総和DA(D2A+D3A+D4A)と予備系サーバBでの処理間隔の総和DB(D2B+D3B+D4B)とが同一となる。したがって、主系サーバAおよび予備系サーバBは同一負荷となる。
【解決手段】パケットS2Bの送信遅延を、パケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。具体的には、パケットS2Bの送信遅延により、d2B>d2Aとなっている。したがって、d2B+d3B=d2A+d3Aとなるように、パケットS2Bの送信からパケットS3Bを送信するまでの送信時間間隔d3Bを短縮させる。これにより、予備系サーバBでの処理間隔D3Bも連動して短縮化され、主系サーバAでの処理間隔の総和DA(D2A+D3A+D4A)と予備系サーバBでの処理間隔の総和DB(D2B+D3B+D4B)とが同一となる。したがって、主系サーバAおよび予備系サーバBは同一負荷となる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象となる装置の試験をおこなう試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【0002】
従来から、クライアント−サーバ間の性能評価の技術が開示されているが(たとえば、下記特許文献1、2を参照)、システムの移行などをおこなう際、予備系サーバを迅速かつ正確に検証するための性能評価試験技術が求められている。このような性能評価試験技術については、従来、以下のように処理がおこなわれている。
【0003】
図22は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。図22では、主系サーバAおよび試験端末Cが大阪にあり、予備系サーバBは東京にあるものとする。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。この場合、試験実施者は、同一パターン(パケットとその応答パケット)で試験をする際、試験端末Cが主系サーバAからのパケットをキャプチャし、キャプチャしたパケットを主系サーバAと同一のシーケンスパターンで予備系サーバBに流すこととなる。
【0004】
図23は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。図23では、主系サーバAは大阪にあり、予備系サーバBは東京にあり、試験端末Cは東京および大阪の両方にあるものとする。この場合、試験実施者は、大阪において試験端末Cと主系サーバAとの間でパケット通信をおこなうとともに、東京において、主系サーバAと同じ時間間隔で、試験端末Cと予備系サーバBとの間でパケット通信をおこなう。これにより、主系サーバAと予備系サーバBとの相対的な性能評価をおこなうこととなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−8648号公報
【特許文献2】特開平9−62601号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、主系サーバAと予備系サーバBとが異なる場所にある場合、主系サーバAと予備系サーバBとでのRTT(Round Trip Time:往復遅延時間)の差(距離と正の相関)が主系サーバAおよび予備系サーバBの処理間隔(処理負荷)に影響する。すなわち、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなるため、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0007】
また、3ウェイハンドシェイクやパケットにクッキーを含む場合など、前に送信されたパケットに対する応答パケットの情報を解析した上で、パケットを送信する場合がある。このような場合、予備系サーバBへの送信は、前に送信されたパケットに対する応答パケットの受信を待たなくてはいけないため、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなる。したがって、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0008】
本発明は、上述した従来技術による問題点を解消するため、高品質な性能評価試験をおこなうことができる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、第1送信元から第1送信先へ送信された第1パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得し、前記第1パケット群の宛先を第2送信先に変更して第2送信元から前記各時間の経過により送信される第2パケット群のパケットごとに、当該パケットの先行パケットに対する前記第2送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記第2送信元から前記第2送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記第2送信元から前記第2送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【0010】
また、送信元から第1送信先へ送信された第1パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得を取得し、前記第1パケット群の宛先を第2送信先に変更して前記送信元から前記各時間の経過により送信される第2パケット群のパケットごとに、当該パケットの先行パケットに対する前記第2送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記送信元から前記第2送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記送信元から前記第2送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【発明の効果】
【0011】
上述した試験プログラム、試験装置、および試験方法によれば、高品質な性能評価試験をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】本実施の形態におけるパケット送信例(その1)を示す説明図である。
【図2】本実施の形態におけるパケット送信例(その2)を示す説明図である。
【図3】図2に示したパケット送信の修正例(その1)を示す説明図である。
【図4】図2に示したパケット送信の修正例(その2)を示す説明図である。
【図5】図2に示したパケット送信の修正例(その3)を示す説明図である。
【図6】性能評価例を示す説明図である。
【図7】コンピュータのハードウェア構成例を示すブロック図である。
【図8】パケット情報DBの記憶内容例を示す説明図(その1)である。
【図9】パケット情報DBの記憶内容例を示す説明図(その2)である。
【図10】パケット情報DBの記憶内容例を示す説明図(その3)である。
【図11】パケット情報DBの記憶内容例を示す説明図(その4)である。
【図12】パケット情報DBの記憶内容例を示す説明図(その5)である。
【図13】パケット情報DBの記憶内容例を示す説明図(その6)である。
【図14】本実施の形態にかかる試験装置の機能的構成例を示すブロック図である。
【図15】試験端末Cと主系サーバA間に流れるパケットの取得処理手順を示すフローチャートである。
【図16】送信パケット変換処理手順を示すフローチャートである。
【図17】予備系サーバBへのパケット送信処理手順を示すフローチャートである。
【図18】つぎの送信パケットS(i+1)Bを送信する時間間隔d(i+1)Bの算出処理手順を示すフローチャート(その1)である。
【図19】つぎの送信パケットS(i+1)Bを送信する時間間隔d(i+1)Bの算出処理手順を示すフローチャート(その2)である。
【図20】応答パケットの格納処理手順を示すフローチャートである。
【図21】性能評価処理手順を示すフローチャートである。
【図22】従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図23】従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、この発明にかかる試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。なお、以下の説明において、パケットのことを、「送信パケット」や「応答パケット」と称することがある。ここで、「送信パケット」とは、試験対象となる第1送信先(たとえば、主系サーバA)や第2送信先(たとえば、予備系サーバB)に送信するパケットである。また、「応答パケット」とは、送信パケットの送信に対して第1送信先または第2送信先から送られてくるパケットをいう。また、「先行パケット」とは、注目する送信パケットの1つ前の送信パケットであり、「後続パケット」とは、注目する送信パケットの次の送信パケットである。
【0014】
図1は、本実施の形態におけるパケット送信例(その1)を示す説明図である。図1では、試験端末C、試験を行う対象である第1送信先の例として挙げられる主系サーバAが大阪にあり、試験を行う対象である第2送信先の例として挙げられる予備系サーバBは東京にあるものとする。なお、サーバA,Bの配置位置は例であって、他の配置関係でもよい。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。
【0015】
試験装置100は、試験端末Cと主系サーバAと予備系サーバBと通信可能に接続される。たとえば、試験装置100と試験端末Cと主系サーバAは、同一のネットワークNa内にあり、予備系サーバBが存在するネットワークNbと通信可能である。試験装置100は、試験端末Cと一体型としてもよい。この場合、試験装置100は、試験端末Cで実行される処理もおこなうこととなる。
【0016】
たとえば、試験端末Cが主系サーバAにパケットS1Aを送信することにより、主系サーバAは試験端末CにパケットR1Aを応答として送信する。つぎに、試験端末Cが主系サーバAにパケットS2Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR2Aを送信する。
【0017】
つぎに、試験端末Cが主系サーバAにパケットS3Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR3Aを送信する。つぎに、試験端末Cが主系サーバAにパケットS4Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR4Aを送信する。
【0018】
このとき、試験装置100は、パケットS1A,R1A,S2A,R2A,S3A,R3A,S4A,R4Aの順にキャプチャする。時刻t1A〜t4Aは、試験装置100が、試験開始を基準としてパケットS1A〜S4Aをキャプチャした時刻である。なお、基準となる試験開始の時刻(t=0)については、試験装置100が、試験端末Cからの開始信号を受信したときとしてもよく、試験装置100に試験開始入力があったときとしてもよい。また、試験端末Cからの最初のパケットS1Aをキャプチャした時刻としてもよい。いずれにしても、試験端末Cと試験装置100との間で、試験開始の時刻を同期させる必要はない。
【0019】
なお、試験端末Cから主系サーバAにパケットS1A〜S4Aを送信するときの各送信時間間隔d1A〜d4Aは、連続するパケット間の経過時間である。具体的には、試験装置100でキャプチャされた時刻t1A〜t4Aを用いてあらわすことができる。たとえば、試験開始からパケットS1Aを送信するまでの送信時間間隔d1Aは、d1A=t1A−0となる。
【0020】
また、パケットS2Aの先行パケットであるパケットS1Aの送信からパケットS2Aの送信までの送信時間間隔d2Aは、d2A=t2A−t1Aとなる。同様に、パケットS3Aの先行パケットであるパケットS2Aの送信からパケットS3Aの送信までの送信時間間隔d3Aは、d3A=t3A−t2Aとなる。同様に、パケットS4Aの先行パケットであるパケットS3Aの送信からパケットS4Aの送信までの送信時間間隔d4Aは、d4A=t4A−t3Aとなる。
【0021】
また、D2Aは主系サーバAでのパケットS1A,S2Aの受信間隔、D3Aは主系サーバAでのパケットS2A,S3Aの受信間隔、D4Aは主系サーバAでのパケットS3A,S4Aの受信間隔である。これら受信間隔は、試験装置100が応答パケットR1A,R2Aを受信する応答時間間隔、パケットR2A,R3Aを受信する応答時間間隔、パケットR3A,R4Aを受信する応答時間間隔となる。
【0022】
つぎに、試験装置100は、キャプチャした主系サーバAへのパケットS1A〜S4Aの宛先を主系サーバAのアドレスから予備系サーバBのアドレスに書き換えて、パケットS1B〜S4Bを生成する。そして、試験装置100は、生成されたパケットS1B〜S4Bを、それぞれ、送信時間間隔d1B(=d1A),d2B(=d2A),d3B(=d3A),d4B(=d4A)で予備系サーバBに送信する。
【0023】
この場合、パケットS1B〜S4Bの送信元アドレスを試験装置100のアドレスとすることで、予備系サーバBからの応答パケットR1B〜R4Bの送信先が試験装置100となるように設定する。なお、パケットS1B〜S4Bの送信元アドレスを変更せず、試験端末Cが応答パケットR1B〜R4Bを受信してもよい。
【0024】
そして、試験装置100は、試験開始からt1B(=t1A)経過したときに、パケットS1Bを予備系サーバBに送信し、試験開始からt2B(=t2A)経過したときに、パケットS2Bを予備系サーバBに送信し、試験開始からt3B(=t3A)経過したときに、パケットS3Bを予備系サーバBに送信し、試験開始からt4B(=t4A)経過したときに、パケットS4Bを予備系サーバBに送信する。
【0025】
また、D2Bは予備系サーバBでのパケットS1B,S2Bの受信間隔、D3Bは予備系サーバBでのパケットS2B,S3Bの受信間隔、D4Bは予備系サーバBでのパケットS3B,S4Bの受信間隔である。これら受信間隔は、応答パケットR1B,R2Bを受信する応答時間間隔、パケットR2B,R3Bを受信する応答時間間隔、パケットR3B,R4Bを受信する応答時間間隔となる。
【0026】
試験端末Cと主系サーバAとの間のシーケンスでは、主系サーバAからの応答パケットR1Aを試験端末Cが受信すると、試験端末CはパケットS2Aを主系サーバAに送信し、主系サーバAからの応答パケットR2Aを試験端末Cが受信すると、試験端末CはパケットS3Aを主系サーバAに送信し、主系サーバAからの応答パケットR3Aを試験端末Cが受信すると、試験端末CはパケットS4Aを主系サーバAに送信する。
【0027】
これに対し、試験装置100と予備系サーバBとの間のシーケンスでは、予備系サーバBがパケットS1B〜S4Bを受けると、主系サーバAと同様、応答パケットR1B〜R4Bを返す。この場合、試験装置100からのパケットS2B〜S4Bについては、予備系サーバBからのパケットS1B〜S3Bに対する応答パケットR1B〜R3Bの受信を待つことなく、上述した送信時間間隔d1A〜d4Aと同一の送信時間間隔d1B〜d4Bを維持したまま、パケット送信をおこなう。
【0028】
このように、主系サーバAおよび予備系サーバBでは、同一シーケンス(送信時間間隔d1A〜d4A)でパケット送信をおこなうため、受信間隔についても、D2A=D2B、D3A=D3B、D4A=D4Bとなる。したがって、設置場所の違いをパケットS1A〜S4Aの変換で吸収することにより、主系サーバAおよび予備系サーバBは同様の負荷で性能評価試験をされることとなる。このあと、主系サーバAからの応答パケットR1A〜R4Aと予備系サーバBからの応答パケットR1B〜R4Bとを比較することで、主系サーバAと予備系サーバBとの相対的な性能評価を実行することができる。
【0029】
図2は、本実施の形態におけるパケット送信例(その2)を示す説明図である。図2において、図1との相違点は、パケットS2Aの宛先を予備系サーバBとしたパケットS2BがパケットR1Bの情報が必要なパケットであるために、パケットS2Bを、パケットR1Bの受信を待ってから送信する点である。このため、パケットS2Bの先行パケットS1Bは、試験開始から送信時間間隔d1B(=d1B−0)分の時間経過により送信されるが、パケットS2Bは、送信時間間隔d2B(=t2B−t1B)分の時間経過により送信される。送信時間間隔d2Bは、d2B>d2Aとなる。これにより、対応する予備系サーバBでの受信間隔D2Bも、D2B>D2Aとなる。
【0030】
パケットS2Bの送信が遅延するが、パケットS2B以降のパケットS3B,S4Bについては、図1と同様の送信時間間隔d3B(=t3B−t2B),d4B(=t4B−t3B)で送信されるため、対応する受信間隔も、図1と同様、D3B,D4Bとなる。上記以外については、図1と同じである。
【0031】
パケットS2Bのような送信遅延は、たとえば、3ウェイハンドシェイクにおいて、パケットS1A,S1BがSYNパケット、応答パケットR1A,R1BがSYN/ACKパケット、パケットS2A,S2BがACKパケットである場合に発生する。また、応答パケットR1A,R1BのHTTP(Hyper Text Transfer Protocol)応答ヘッダにCookie情報が埋め込まれている場合、パケットS2A,S2BのHTTPリクエストヘッダを変更する必要がある。このような場合に、パケットS2Bで送信遅延が発生する。
【0032】
パケットS2Bのような送信遅延が発生すると、主系サーバAと予備系サーバBとで負荷が異なってしまう(D2A<D2B)こととなる。このため、パケットS2B以降のパケットS3B,S4Bの送信タイミングを修正する必要がある。
【0033】
図3は、図2に示したパケット送信の修正例(その1)を示す説明図である。図3では、パケットS2Bの送信遅延を、パケットS2Bの後続パケットとなるパケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。以降、時間の単位の例として、[msec]を用いる。
【0034】
具体的には、パケットS2Bの送信遅延により、d2B>d2Aとなっている。したがって、d2B+d3B=d2A+d3Aとなるように、パケットS2Bの送信からパケットS3Bを送信するまでの送信時間間隔d3Bを短縮させる。
【0035】
たとえば、修正前(図2の状態)での送信時間間隔d1A〜d4A,d1B,d3B,d4Bがそれぞれ10[msec]で、送信時間間隔d2Bが18[msec]とする。すなわち、主系サーバAでの送信時間間隔d2A(=10[msec])に比べて、8[msec](=18[msec]−10[msec])遅延したものとする。この遅延した時間を待機時間と称す。
【0036】
この場合、パケットS2Bの後続パケットS3Bの送信時間間隔d3Bを待機時間(8[msec])分短縮して、d3B=2[msec]とする。すなわち、後続パケットS3Bは、パケットS2Bを受信してから10[msec]後に送信するのではなく、2[msec]後に送信する。このように修正することで、d2B+d3B=d2A+d3Aとなる。
【0037】
これにより、予備系サーバBでの処理間隔D3Bも連動して短縮化され、主系サーバAでの受信間隔の総和DA(D2A+D3A+D4A)と予備系サーバBでの処理間隔の総和DB(D2B+D3B+D4B)とが同一となる。したがって、主系サーバAおよび予備系サーバBは同一負荷となる。
【0038】
図4は、図2に示したパケット送信の修正例(その2)を示す説明図である。図4でも、図3と同様、パケットS2Bの送信遅延を、パケットS2Bの後続パケットとなるパケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。図3の修正例との相違は、図3では、後続パケットS3Bの時間間隔d3Bを短縮化しているのに対し、図4では、後続パケットS3Bだけではなく、それ以降のパケット(図4では、パケットS4B)の送信時間間隔d3B,d4Bを短縮化している点である。
【0039】
図3の修正例では、後続のパケットS3Bの送信時間間隔d3Bのみを短縮化させたため、予備系サーバBにおいて、処理間隔D3Bが短縮化される。すなわち、予備系サーバBでは、パケットS2B,S3Bの受信と、応答パケットR2B,R3Bの送信が局所的に集中してしまう。したがって、図4では、後続のパケットS4Bの送信時間間隔d4Bを用いることで負荷分散を図る。具体的には、修正後の送信時間間隔d3B,d4Bがd3B=d4Bとなるように修正する。
【0040】
たとえば、図3で説明した具体例では送信時間間隔d2Bがd2B=18[msec]となったために、次の送信時間間隔d3B(=10[msec])では、増加となる待機時間(8[msec])を短縮して、修正後は待機時間を2[msec]とした。これに対し、図4の修正例では、増加分の待機時間(8[msec])を、送信時間間隔d3B,d4Bに4[msec]づつ分散して、送信時間間隔d3B=d4B=6[msec](=10[msec]−4[msec])に短縮する。これにより、予備系サーバBでの受信間隔もD3B=D4Bとなり、予備系サーバBでの局所的な負荷が分散される。
【0041】
なお、図4の例では、パケットS2B以降の2つのパケットS3B,S4Bの送信時間間隔d3B,d4Bを用いて負荷分散をおこなったが、パケットS4B以降も送信遅延が生じないパケットが予備系サーバBに送信される場合、それらの送信時間間隔も用いて負荷分散をおこなってもよい。すなわち、パケットS2B以降のパケットの数が多ければ多いほど、増加分の時間(ここでは、8[msec])が分散されることとなり、対応する予備系サーバBの受信間隔も平準化されて、負荷分散を効率的に図ることができる。
【0042】
図5は、図2に示したパケット送信の修正例(その3)を示す説明図である。図5では、パケットS2Bの送信遅延により、送信時間間隔d2Bが延びて、待機時間が非常に大きくなった場合の修正例である。このような場合、具体的には、待機時間がパケットS2B以降のパケットS3Bの送信時間間隔d3Bよりも大きい場合、送信時間間隔d3Bで短縮化できないこととなる。
【0043】
パケットS2B以降のパケット数が多ければ、送信時間間隔d4Bやそれ以降の時間間隔を用いて、図4の修正例により負荷分散を図ることができる。一方、パケットS2B以降のパケット数が少ない場合、後続の各パケットのすべての時間間隔を0[msec]以上の所定値に設定して、予備系サーバBの処理時間の総和DBがDB≦DAとなるように修正する。
【0044】
図3で説明した具体例では送信時間間隔d2Bがd2B=18[msec]としたが、図5では、送信時間間隔d2Bをd2B=34[msec]とする。すなわち、増加分となる待機時間は、24[msec]となる。待機時間である24[msec]は、パケットS2Bの後続パケットS3Bの送信時間間隔d3B(=10[msec])よりも大きく、また、後続パケットS3Bの送信時間間隔d3B(=10[msec])とパケットS3Bの後続パケットS4Bの送信時間間隔d4B(=10[msec])との総和(=20[msec])よりも大きい。
【0045】
このため、図4の修正例で示したような負荷分散はできないため、送信時間間隔d3B,d4Bを0[msec]以上の所定値に設定する。ここでは、送信時間間隔d3B=d4B=1[msec]とする。これにより、予備系サーバBの受信間隔の総和DBは、DB=D2B+D3B+D4B=24+1+1=26[msec]となり、主系サーバAの処理時間の総和DA以下となるため、試験の高速化を図ることができる。なお、所定値は、最大でも修正前の送信時間間隔よりも短く設定する。
【0046】
図6は、性能評価例を示す説明図である。図6は、図3に示したパケット送信の修正例での性能評価例を示している。性能評価を行う場合、予備系サーバBに対する送信時間間隔のうち、任意の送信時間間隔を選択する。予備系サーバBに対する送信時間間隔は、上り方向となる試験装置100から予備系サーバBへのパケットを送信する時間間隔であるため、ここでは、上りの時間間隔と称す。
【0047】
そして、選択された上りの時間間隔と、当該上りの時間間隔に対応する下りの時間間隔とを比較する。下りの時間間隔とは、下り方向となる予備系サーバBから試験装置100への応答パケットを送信する応答時間間隔である。たとえば、上りの時間間隔としてd3Bが選択されたとすると、対応する送信時間間隔d3Bと比較する。
【0048】
性能評価では、下りの時間間隔が上りの時間間隔よりも大きい場合、予備系サーバBよりも主系サーバAの方が性能がよいと判定する。また、下りの時間間隔が上りの時間間隔と同じである場合、主系サーバAと予備系サーバBとの性能は、同じであると判定する。また、下りの時間間隔が上りの時間間隔よりも小さい場合、主系サーバAよりも予備系サーバBの方が性能がよいと判定する。
【0049】
つぎに、上述した図1〜図6に示した試験例を実現する試験装置の具体例について説明する。
【0050】
(コンピュータのハードウェア構成例)
図7は、コンピュータ(試験端末C、試験装置100、主系サーバA、予備系サーバB)のハードウェア構成例を示すブロック図である。図7において、コンピュータは、CPU(Central Processing Unit)701と、ROM(Read Only Memory)702と、RAM(Random Access Memory)703と、磁気ディスクドライブ704と、磁気ディスク705と、光ディスクドライブ706と、光ディスク707と、ディスプレイ708と、I/F(Interface)709と、キーボード710と、マウス711と、スキャナ712と、プリンタ713と、を備えている。また、各構成部はバス700によってそれぞれ接続されている。
【0051】
ここで、CPU701は、コンピュータの全体の制御を司る。ROM702は、OS(Operating System)やアプリケーションといった各種プログラムを記憶している。RAM703は、CPU701のワークエリアとして使用される。磁気ディスクドライブ704は、CPU701の制御にしたがって磁気ディスク705に対するデータのリード/ライトを制御する。磁気ディスク705は、磁気ディスクドライブ704の制御で書き込まれたデータを記憶する。
【0052】
光ディスクドライブ706は、CPU701の制御にしたがって光ディスク707に対するデータのリード/ライトを制御する。光ディスク707は、光ディスクドライブ706の制御で書き込まれたデータを記憶したり、光ディスク707に記憶されたデータをコンピュータに読み取らせたりする。
【0053】
ディスプレイ708は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ708は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0054】
インターフェース(以下、「I/F」と略する。)709は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク714に接続され、このネットワーク714を介して他の装置に接続される。そして、I/F709は、ネットワーク714と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F709には、たとえばモデムやLANアダプタなどを採用することができる。
【0055】
キーボード710は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス711は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0056】
スキャナ712は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ712は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ713は、画像データや文書データを印刷する。プリンタ713には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0057】
(パケット情報データベース(DB)の記憶内容)
つぎに、本実施の形態にかかる試験装置100に用いられるパケット情報DBについて説明する。図8〜図13は、パケット情報DBの記憶内容例を示す説明図である。パケット情報DB800は、具体的には、たとえば、図7に示したRAM703、磁気ディスク705、光ディスク707などの記憶装置により、その機能を実現する。
【0058】
図8〜図13において、パケット情報DB800は、送信パケット番号項目、セッションID項目、経過時間項目、IP(Internet Protocol)ヘッダ情報項目、TCP(Transmission Control Protocol)ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目、待機フラグ項目、送信パケットの時間間隔項目、応答パケットの時間間隔項目と、を有する。
【0059】
送信パケット番号項目には、レコードごとに、送信パケットについての送信パケット番号が格納される。送信パケットは、同一セッションIDの送信パケット群において、先頭の送信パケットから降順に割り振られる。受信パケットについては、送信パケット番号は割り振られない。
【0060】
セッションID項目には、セッションIDが格納される。同一セッションであれば同一セッションIDが格納される。
【0061】
経過時間項目には、試験開始からの経過時間が格納される。具体的には、試験開始から試験装置100がパケットをキャプチャしたときまでの時間が、経過時間として格納される。試験開始が試験装置100によって決められた場合、最初にキャプチャされたパケットの経過時間は、試験開始からキャプチャされたときまでの時間となる。また、最初のパケットのキャプチャにより試験開始とする場合には、最初にキャプチャされたパケットの経過時間を0にする。
【0062】
IPヘッダ情報項目は、送信元IP項目と宛先IP項目とを有する。送信元IP項目には、キャプチャされたパケットのヘッダに記述されている送信元IPアドレスが格納される。また、宛先IP項目には、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスが格納される。
【0063】
図8〜図13では、IPアドレス「10.10.10.10」を試験端末CのIPアドレスとする。また、IPアドレス「20.20.20.20」を主系サーバAのIPアドレスとする。また、IPアドレス「30.30.30.30」を予備系サーバBのIPアドレスとする。また、IPアドレス「50.50.50.50」を試験装置100のIPアドレスとする。
【0064】
TCPヘッダ情報項目は、送信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ(SYN(同期)/ACK(確認応答)/PSH(プッシュ)/FIN(通信終了)/RST(リセット要求))項目を有する。
【0065】
送信元ポート項目には、キャプチャされたパケットのヘッダに記述されている送信元ポート番号が格納される。
【0066】
宛先ポート項目には、キャプチャされたパケットのヘッダに記述されている宛先ポート番号が格納される。
【0067】
シーケンス番号項目には、キャプチャされたパケットのヘッダに記述されているシーケンス番号が格納される。シーケンス番号は、キャプチャされたパケットの送信元で与えられたランダムな値である。
【0068】
確認応答番号項目には、キャプチャされたパケットのヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、受け取ったパケットのシーケンス番号に1加算した値を確認応答番号とする。
【0069】
フラグ項目には、パケットの種類(SYN/ACK/PSH/FIN/RST)を特定するフラグが格納される。たとえば、レコードr1のパケットは、SYNパケットである。
【0070】
アプリヘッダ情報項目には、HTTPやPOP(Post Office Protocol)3/IMAP(Internet Message Access Protocol)といった各アプリケーションに関するヘッダ情報が格納される。
【0071】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。なお、パケットのペイロードは格納しても破棄してもどちらでもよい。
【0072】
待機フラグ項目には、待機フラグの値(0/1)が格納される。デフォルトの値は「0」とする。「0」に設定された場合は、前の送信パケットに対する応答パケットの受信を待つことなく、対象となるパケットを送信する。「1」に設定された場合は、1つ前の送信パケットに対する応答パケットの受信を待って、該当するパケットを送信する。待機フラグの設定については後述する。
【0073】
送信パケットの時間間隔項目は、主系項目と、予備系項目と、待機時間項目と、を有する。
【0074】
主系項目には、1つ前の主系サーバAへの送信パケットの送信から対象となる送信パケットを主系サーバAに送信するまでの経過時間が格納される。なお、先頭の送信パケット(送信パケット番号が「1」である送信パケット)の場合は、試験開始からの先頭の送信パケットを主系サーバAに送信したときの経過時間が格納される。
【0075】
予備系項目には、1つ前の予備系サーバBへの送信パケットの送信から対象となる送信パケットを予備系サーバBに送信するまでの経過時間が格納される。なお、先頭の送信パケット(送信パケット番号が「1」である送信パケット)の場合は、試験開始からの先頭の送信パケットを予備系サーバBに送信したときの経過時間が格納される。
【0076】
待機時間項目には、予備系サーバBへの時間間隔から主系サーバAへの時間間隔を減算した時間差が待機時間として格納される。
【0077】
応答パケットの時間間隔項目には、1つ前の予備系サーバBからの応答パケットの受信から、対象となる応答パケットを予備系サーバBから受信するまでの経過時間が格納される。つぎに、図8〜図13を個別に説明する。
【0078】
図8に示したパケット情報DB800では、試験端末Cと主系サーバAとの間で送受信するパケットの情報が格納されている。たとえば、レコードr1〜r3は、同一セッションID(=abc)のパケットを示すレコードであり、試験端末Cと主系サーバAとの間での、TCP/IPに従った3ウェイハンドシェイクを示している。3ウェイハンドシェイクでは、セッション確立、データ転送、セッション終了を実行する一連の処理からなる。
【0079】
具体的には、まず試験端末CがSYNパケット(シーケンス番号:試験端末C側の乱数、確認応答番号:0、SYNフラグ)をパケットとして主系サーバAに送る。このSYNパケットが、レコードr1の送信パケットに相当する。
【0080】
つぎに、そのSYNパケットを受け取った主系サーバAがSYN/ACKパケット(シーケンス番号:主系サーバA側の乱数、確認応答番号:SYNパケットのシーケンス番号+1、SYNフラグ、ACKフラグ)を試験端末Cに送る。このSYN/ACKパケットが、レコードr2の応答パケットに相当する。
【0081】
さらに、そのSYN/ACKパケットを受け取った試験端末CがACKパケット(シーケンス番号:主系サーバA側の確認応答番号、確認応答番号:SYN/ACKパケットのシーケンス番号+1、ACKフラグ)をパケットとして主系サーバAに送る。このACKパケットが、レコードr3の送信パケットに相当する。
【0082】
レコードr3のパケットは、レコードr2のSYN/ACKパケットに応答したACKパケットであるため、レコードr2のSYN/ACKパケットの受信を待って試験端末Cから主系サーバAに送信される。このような場合、試験装置100は、レコードr3の待機フラグをON(0→1)に設定する。
【0083】
また、レコードr11〜r18は、同一セッションID(=uvw)のパケットを示すレコードであり、図2に示したパケットS1A〜S4A,R1A〜R4Aを示している。具体的には、パケットS1A〜S4Aは、それぞれレコードr11,r13,r15,r17を示している。同様に、パケットR1A〜R4Aは、それぞれレコードr12,r14,r16,r18を示している。
【0084】
このうち、レコードr11のパケットS1Aを送信すると、パケットS1Aを受信した主系サーバAでは、パケットS1Aを解析することにより、応答ヘッダ(アプリヘッダ情報)にCookie情報が埋め込まれたレコードr12のパケットR1Aを生成する。
【0085】
レコードr13のパケットS2Aは、レコードr12のパケットR1Aに埋め込まれているCookie情報を利用する必要があるため、レコードr12のパケットR1Aの受信を待って試験端末Cから主系サーバAに送信される。このような場合、試験装置100は、レコードr13の待機フラグをON(0→1)に設定する。
【0086】
図9に示したパケット情報DB800は、図8に示したパケットの宛先IPアドレスを、主系サーバAから予備系サーバBに書き換えた変換例を示している。なお、送信元IPアドレスも試験端末Cから試験装置100に書き換えている。試験端末Cと試験装置100が同一装置(同一IPアドレス)である場合は、送信元IPアドレスを書き換える必要はない。
【0087】
また、この書き換えに伴って、レコードr1〜r3のセッションIDも、「abc」から「def」に書き換えられる。同様に、レコードr11〜r18のセッションIDも、「uvw」から「xyz」に書き換えられる。なお、シーケンス番号や確認応答番号も、パケット送受信のシーケンスや応答元のパケットが特定できるように所定のルールにしたがって書き換えられる。
【0088】
この書き換えにより、レコードr1,r3,r11,r13,r15,r17の送信パケットは、試験装置100から予備系サーバBへの送信パケットとなる。たとえば、レコードr1,r3,r11,r13,r15,r17の送信パケットは、図2に示した送信パケットS1B〜S4Bとなる。
【0089】
宛先が予備系サーバBになると、試験装置100は、レコードr1,r3,r11,r13,r15,r17の送信パケットを、主系項目の時間間隔にしたがって予備系サーバBに送信する。たとえば、レコードr11,r13,r15,r17の送信パケットS1B〜S4Bを、試験開始から10[msec]の時間間隔分の時間経過により送信することとなる。
【0090】
なお、図9に示した状態では、変換後の宛先である予備系サーバBにはまだパケットS1B〜S4Bを送信していないため、経過時間項目は空欄となる。また、応答パケットのレコードr2,r12,r14,r16,r18も削除される。
【0091】
図10に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その1)を示している。図10では、図8に示したように、応答パケットのレコードr2,r12,r14,r16,r18が生成される。
【0092】
レコードr1,r3,r11,r13,r15,r17の送信パケットは、待機フラグが「0」であれば、主系項目の時間間隔の経過により、応答パケットの受信を待つことなく、予備系サーバBに送信される。たとえば、レコードr11の送信パケットS1Bは、試験開始から10[msec]経過後に、予備系サーバBに送信される。主系項目の時間間隔分の時間経過により送信された場合は、主系項目の時間間隔を予備系項目に書き込むこととなる。
【0093】
ここで、送信対象となる送信パケットの待機フラグが「1」である場合、1つ前の送信パケットの応答パケットの受信を待ってから送信することとなる。たとえば、レコードr13の送信パケットS2Bは、レコードr12の応答パケットR1Bの受信を待って送信することとなる。したがって、レコードr13の送信パケットS2Bは、レコードr11の送信パケットS1Bの送信から10[msec]経過時に送信されるのではなく、試験開始から応答パケットR1Bを受信するまでの経過時間分の時間経過により送信される。
【0094】
応答パケットR1Bの試験開始からの経過時間は28[msec]であるため、前の送信パケットS1Bの送信から18[msec](=28[msec]−10[msec])経過時に送信される。したがって、レコードr13の経過時間項目には「28」が書き込まれ、予備系項目には「18」が書き込まれる。
【0095】
また、レコードr13の送信パケットS2A,S2Bの時間差は、8[msec](=18[msec]−10[msec])となるため、待機時間項目には「8」が待機時間として書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも8[msec]遅延していることがわかる。
【0096】
図10では、次のパケットとなるレコードr15の送信パケットS3Bの送信時期を修正することで、送信パケットS2Bの遅延分となる待機時間を吸収する。具体的には、送信パケットS3Bは、待機フラグが「0」であるため、前の送信パケットの受信から10[msec]経過時に送信するが、前のパケットが待機フラグ「1」の送信パケットS2Bであるため、送信パケットS2Bでの遅延分の時間差8[msec]を、送信パケットS3Bの主系項目の時間間隔から減算することで、予備系項目の時間間隔にする。
【0097】
この場合、レコードr15の送信パケットS3Bにおける予備系項目の時間間隔は、2[msec](=10[msec]−8[msec])となる。したがって、レコードr15の送信パケットS3Bは、送信パケットS2Bの受信後、2[msec]経過時に送信され、予備系項目には「2」が書き込まれる。
【0098】
後続となるレコードr17の送信パケットS4Bは、待機フラグ「0」であるため、レコードr17の送信パケットS4Bは、送信パケットS3Bの受信後、主系項目での10[msec]経過時に送信される。これにより、予備系項目に「10」が書き込まれる。これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0099】
図11に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その2)を示している。図10との違いは、図10では、図3に示したように、レコードr13の送信パケットS2Bによる遅延(時間差8[msec])を、レコードr15の送信パケットS3Bの時間間隔を遅延分短縮させることで、負荷の同一化を図っていた。
【0100】
これに対し、図11では、図4に示したように、レコードr13の送信パケットS2Bによる遅延(待機時間8[msec])を、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4B(いずれも待機フラグが「0」)の時間間隔の総和を遅延分短縮させることで、負荷の同一化を図る。
【0101】
具体的には、レコードr13の送信パケットS2Bによる遅延分の待機時間が8[msec]であるため、短縮させるパケット数で待機時間を分割する。具体的には、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4Bの各々の時間間隔を、4[msec](=8[msec]÷2個)分短縮させる。
【0102】
これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0103】
図12に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その3)を示している。図12において、レコードr12の応答パケットR1Bが試験開始後33[msec]後に試験装置100に受信されたものとする。すなわち、レコードr13の送信パケットS2Bは、前の送信パケットS1Bの送信から23[msec](=33[msec]−10[msec])経過時に送信される。
【0104】
したがって、レコードr13の経過時間項目には「33」が書き込まれ、予備系項目には「23」が書き込まれる。また、レコードr13の送信パケットS2A,S2Bの時間差は、13[msec](=23[msec]−10[msec])となるため、待機時間項目には「13」が待機時間として書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも13[msec]遅延していることがわかる。
【0105】
図10の例では、次の送信パケットS3Bを送信する時間間隔を遅延分短縮させることで調整したが、本例の場合、遅延分の待機時間(=13[msec])が、次の送信パケットS3Bを送信する時間間隔(=10[msec])よりも大きい。したがって、その次の送信パケットS3Bを送信する時間間隔(=10[msec])も利用する。
【0106】
送信パケットS2B,S3Bの時間間隔の総和は20[msec](=10[msec]+10[msec])であるため、遅延分の待機時間(=13[msec])を吸収することができる。したがって、図11に示した場合と同様、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4Bの各々の時間間隔を、3.5[msec]{=(10[msec]+10[msec]−13[msec])÷2個}分短縮させる。
【0107】
これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0108】
図13に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その4)を示している。図12では、遅延分の待機時間が次の送信パケットS3Bを送信する時間間隔(=10[msec])よりも大きくても、その次の送信パケットS4Bを送信する時間間隔(=10[msec])を利用することで調整した。図13では、図5に示したように、それでもなお、調整できない場合の例である。
【0109】
具体的には、レコードr12の応答パケットR1Bが試験開始後46[msec]で受信されたものとする。この場合、レコードr13の送信パケットS2Bは、先行パケットS1Bの送信から36[msec](=46[msec]−10[msec])経過時に送信される。したがって、レコードr13の経過時間項目には「46」が書き込まれ、予備系項目には「36」が書き込まれる。
【0110】
また、レコード13の送信パケットS2A,S2Bの時間差は、26[msec](=36[msec]−10[msec])となるため、待機時間項目には「26」が書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも26[msec]遅延していることがわかる。
【0111】
図13では、後続のすべての送信パケットS3B,S4Bの時間間隔の総和(20[msec]=10[msec]+10[msec])では、遅延分の待機時間26[msec]を吸収することができない。このような場合は、後続のすべての送信パケットS3B,S4Bの時間間隔を0[msec]以上の所定値とする。
【0112】
すなわち、遅延した送信パケットS2Bの送信から所定値の時間経過時に、送信パケットS3Bを送信し、送信パケットS3Bの送信から所定値の時間経過時に、送信パケットS4Bを送信する。本例では、所定値を0[msec]としたため、送信パケットS3B,S4Bは、送信パケットS2Bと同時に送信される。
【0113】
この場合、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とは、必ずしも等しくならない。図13の場合は、予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和の方が大きくなるが、図13のように短縮化しない場合に比べて、予備系サーバBの負荷を主系サーバAの負荷に近づけることができる。したがって、性能評価の精度向上を図ることができる。
【0114】
(試験装置100の機能的構成例)
図14は、本実施の形態にかかる試験装置100の機能的構成例を示すブロック図である。図14において、試験装置100は、取得部1401と、解析部1402と、判断部1403と、生成部1404と、送信部1405と、受信部1406と、検出部1407と、算出部1408と、修正部1409と、比較部1410と、決定部1411と、出力部1412と、を備えている。
【0115】
なお、取得部1401〜出力部1412は、具体的には、たとえば、図7に示したROM702、RAM703、磁気ディスク705、光ディスク707などの記憶装置に記憶されたプログラムをCPU701に実行させることにより、または、I/F709により、その機能を実現する。
【0116】
取得部1401は、ネットワーク上を流れるパケットを取得する。具体的には、試験装置100に接続または内蔵されたタップでキャプチャされたパケットを取り込む。たとえば、図1〜図5を例に挙げると、取得部1401は、ネットワークNa上を流れるパケットS1A〜S4A,R1A〜R4Aを取得する。
【0117】
解析部1402は、取得部1401によって取得されたパケットを解析する。具体的には、取得されたパケットのヘッダを解析して、解析した情報を、パケット情報DB800に書き込む。
【0118】
判断部1403は、解析部1402による解析結果に基づいて、送信パケットごとに、主系サーバAからの応答パケットを必要とする特定のパケットであるか否かを判断する。具体的には、たとえば、対象となる送信パケットの先行パケットに対する応答パケットが3ウェイハンドシェイクのSYN/ACKパケットであるか否かを判断する。また、対象となる送信パケットの先行パケットに対する応答パケットに、Cookie情報が埋め込まれているか否かを判断する。
【0119】
判断部1403は、SYN/ACKパケットであったり、Cookie情報が埋め込まれていると判断された場合には、対象となる送信パケットのレコードにおける待機フラグ項目の値を「1」に設定する。たとえば、図8に示したように、レコードr2,r12の応答パケットについて待機フラグを「1」にする。
【0120】
生成部1404は、主系サーバAに送信された送信パケットのレコードを予備系サーバBに送信する送信パケットのレコードに変換することにより、予備系サーバBへの送信パケットを生成する。具体的には、たとえば、パケット情報DB800において、図9に示したような書き換えを実行することで、予備系サーバBに送信する送信パケットを生成する。
【0121】
送信部1405は、生成部1404によって生成された送信パケットを予備系サーバBに送信する。具体的には、たとえば、待機フラグが「0」である送信パケットについては、主系サーバAへの送信時間間隔にしたがって、生成部1404によって生成された送信パケットを予備系サーバBに送信する。
【0122】
一方、待機フラグが「1」である送信パケットについては、送信部1405は、パケット情報DB800の予備系項目に書き込まれた送信時間間隔で送信する。また、待機フラグが「0」であっても、遅延分の時間差の調整を受けた送信パケットについては、パケット情報DB800の予備系項目に書き込まれた送信時間間隔で送信する。
【0123】
すなわち、判断部1403により、送信パケットが特定のパケットであると判断された場合は、送信部1405は、送信パケットをその送信時間間隔にしたがって送信する。一方、判断部1403により、送信パケットが特定のパケットであると判断された場合に、送信部1405は、その送信時間間隔に従った送信タイミングを過ぎても、先行パケットに対する応答パケットの受信後に送信パケットを送信する。
【0124】
受信部1406は、予備系サーバBからの応答パケットを受信する機能を有する。受信部1406によって受信された応答パケットは、解析部1402により解析され、パケット情報DB800に格納される。
【0125】
検出部1407は、主系サーバAへ送信する送信時間間隔よりも長い送信時間間隔分の時間経過で予備系サーバBに送信された送信パケットを検出する。具体的には、パケット情報DB800の主系項目の送信時間間隔分の時間を経過しても送信されず、その後に、送信された送信パケットを検出する。たとえば、検出部1407は、図10〜図13に示したレコードr3,r13の送信パケットを検出する。
【0126】
算出部1408は、送信パケットの送信が待たされる待機時間を算出する。具体的には、たとえば、試験開始から対象となる送信パケットが送信されたときの経過時間から、1つ前の送信パケットの経過時間を引くことで、対象となる送信パケットの1つ前からの時間間隔が求められて、予備系項目に書き込まれる。算出部1408は、この予備系項目に書き込まれた時間間隔から主系項目の時間間隔を引くことにより、待機時間を算出する。算出された待機時間は、待機時間項目に書き込まれる。
【0127】
修正部1409は、待機時間が発生した場合に、後続の送信パケット群の中で待機フラグが「0」である送信パケットを選択し、その選択された送信パケットを送信する送信時間間隔から待機時間を減算することで修正する。具体的な修正例については、図3〜図5に示したようにおこなう。修正された時間間隔は、その選択された送信パケットについての予備系項目に書き込まれる。
【0128】
すなわち、修正部1409は、特定のパケットに対する先行パケットの送信と特定のパケットの送信との間の送信時間間隔(予備系サーバBへの送信時間間隔)が、先行パケットと特定のパケットに対応する2つのパケットの送信時間間隔(主系サーバAへの送信時間間隔)を超える場合に、特定のパケットと特定のパケットに後続して送信する後続パケットとの間の送信時間間隔(予備系サーバBへの送信時間間隔)を、特定のパケットと後続パケットに対応する2つのパケットの送信時間間隔(主系サーバAへの送信時間間隔)よりも短く修正することとなる。
【0129】
また、比較部1410は、指定された送信パケットSiB(ただし、i≠1)を送信する送信時間間隔diBとその応答パケットRiBを受信する送信時間間隔DiBとを比較する。なお、任意の送信パケットSiBを指定してもよいが、待機時間の影響を受けていない送信パケットSiBを指定するのが好ましい。待機時間の影響を受けていない送信パケットとは、たとえば、待機フラグがONでない送信パケットであったり、待機時間により時間間隔が短縮化されていない送信パケットである。
【0130】
このように、待機時間の影響を受けていない送信パケットSiBを指定することで、主系サーバAへの送信と同一時間間隔で送信されるため、主系サーバAへの送信を予備系サーバBに対しても忠実に再現することができる。したがって、性能評価を高精度におこなうことができる。
【0131】
決定部1411は、比較部1410によって比較された比較結果に基づいて、比較対象の装置の性能を相対的に決定する。具体的には、diB<DiBである場合、決定部1411は、主系サーバAが予備系サーバBよりも性能がよいと決定し、決定結果をメモリに書き込む。また、diB=DiBである場合、決定部1411は、主系サーバAと予備系サーバBとは同一性能であると決定し、決定結果をメモリに書き込む。さらに、diB>DiBである場合、試験装置100は、予備系サーバBが主系サーバAよりも性能がよいと決定し、決定結果をメモリに書き込む。
【0132】
また、出力部1412は、決定部1411によって決定された決定結果を出力する。具体的には、出力部1412は、決定結果をディスプレイ708に表示したり、プリンタ713に印刷出力したり、外部の装置に送信したりする。
【0133】
(試験処理手順)
つぎに、本実施の形態にかかる試験装置100による試験処理手順について、図15〜図21を用いて説明する。
【0134】
図15は、試験端末Cと主系サーバA間に流れるパケットの取得処理手順を示すフローチャートである。図15において、まず、試験装置100は、試験開始入力を受けると、計時を開始する(ステップS1501)。そして、パケットが取得(キャプチャ)されるのを待ち受ける(ステップS1502:No)。パケットが取得された場合(ステップS1502:Yes)、試験装置100は、パケット取得時の計時開始からの経過時間を検出する(ステップS1503)。そして、試験装置100は、取得したパケットのヘッダに記述されている宛先IPアドレスを確認する(ステップS1504)。
【0135】
宛先IPアドレスが主系サーバAのIPアドレスである場合(ステップS1504:第1送信先)、取得したパケットは、試験端末Cから主系サーバAへの送信パケットであることがわかる。この場合、試験装置100は、1つ前の主系サーバAへの送信パケットの送信からの時間間隔を算出する(ステップS1505)。具体的には、試験装置100は、今回取得した送信パケットの経過時間から1つ前の送信パケットの経過時間を引くことで、1つ前の主系サーバAへの送信パケットの送信からの時間間隔を算出する。
【0136】
このあと、試験装置100は、パケット情報DB800に新規レコードおよび送信パケット番号を設定し、その送信パケット番号、ステップS1503で検出された経過時間、ステップS1505で算出された時間間隔、ヘッダ、ペイロードを格納する(ステップS1506)。
【0137】
このあと、試験装置100は、判断部1403により、1つ前の送信パケットに対する応答パケットの情報が必要であるか否かを判断する(ステップS1507)。必要であると判断された場合(ステップS1507:Yes)、試験装置100は、待機フラグをON(1)に設定する(ステップS1508)。そして、試験装置100は、計時終了か否かを判断する(ステップS1509)。
【0138】
また、ステップS1507において、応答パケットの情報が必要ないと判断された場合(ステップS1507:No)、待機フラグをOFF(0)のまま、ステップS1509に移行する。
【0139】
また、ステップS1504において、宛先IPアドレスが試験端末CのIPアドレスである場合(ステップS1504:試験端末)、試験装置100は、パケット情報DB800に新規レコードを設定し、ステップS1503で検出された経過時間、ヘッダ、ペイロードを格納する(ステップS1510)。そして、ステップS1509に移行する。
【0140】
そして、ステップS1509において、試験装置100は、計時終了か否かを判断する(ステップS1509)。計時終了でない場合(ステップS1509:No)、ステップS1502に戻る。一方、計時終了である場合(ステップS1509:Yes)、パケットの取得処理を終了する。
【0141】
このように、図15に示したパケットの取得処理を試験装置100が実行することで、図8に示したように、パケット情報DB800にレコードr1〜r3,r11〜r18が設定されることとなる。
【0142】
(送信パケット変換処理)
つぎに、送信パケット変換処理について説明する。送信パケット変換処理は、図15によって、図8に示したようにパケット情報DB800に格納された送信パケットを宛先変換する処理である。
【0143】
図16は、送信パケット変換処理手順を示すフローチャートである。なお、送信パケット変換処理は、セッションIDごとにおこなうものとする。まず、試験装置100は、送信パケット番号iをi=1とし(ステップS1601)、i>nであるか否かを判断する(ステップS1602)。nは変換対象となるセッションIDでの送信パケット数である。
【0144】
i>nでない場合(ステップS1602:No)、試験装置100は、送信パケットSiAのレコードを指定し(ステップS1603)、宛先を予備系サーバBのIPアドレスに変換することにより、送信パケットSiBを生成する(ステップS1604)。なお、送信元についても、試験端末CのIPアドレスから試験装置100のIPアドレスに変換する。また、TCPヘッダ情報内のシーケンス番号や確認応答番号についても必要に応じて変換する。
【0145】
そして、iをインクリメントして(ステップS1605)、ステップS1602に戻る。ステップS1602において、i>nである場合(ステップS1602:Yes)、変換対象となるセッションIDにおける送信パケット変換処理を終了する。
【0146】
このように、図16に示した送信パケット変換処理を試験装置100が実行することで、図9に示したように、パケット情報DB800に宛先変換後の送信パケットのレコードr1,r3,r11,r13,r15,r17が設定されることとなる。なお、応答パケットのレコードr2,r12,r14,r16,r18は削除される。
【0147】
図17は、予備系サーバBへのパケット送信処理手順を示すフローチャートである。図17では、図9に示した状態のパケット情報DB800を用いる。まず、試験装置100は、送信パケット番号i=1、累積待機時間W=0、予備系サーバBへ送信する送信時間間隔diB=diAとする(ステップS1701)。diAは、宛先変換前において送信パケットSiAを主系サーバAに送信したときの時間間隔である。
【0148】
試験装置100は、試験を開始(計時開始)し(ステップS1702)、i>nであるか否かを判断する(ステップS1703)。i>nでない場合(ステップS1703:No)、試験装置100は、1つ前の送信パケットS(i−1)Bの送信(i=1の場合は、計時開始)から送信時間間隔diB分の時間を経過したか否かを判断する(ステップS1704)。ここで、判断基準となる送信時間間隔diBについて、通常はステップS1701での初期設定により、送信時間間隔diB=diAとなっているため、試験装置100は、送信時間間隔diB=diA分の時間が経過したか否かを判断する。一方、後述する図18および図19において、送信時間間隔diB=diAが変更された場合は、変更後の送信時間間隔diBを用いることとなる。
【0149】
ステップS1704において、試験装置100は、送信時間間隔diB分の時間を経過するのを待ち(ステップS1704:No)、送信時間間隔diB分の時間を経過した場合(ステップS1704:Yes)、試験装置100は、送信パケットSiBの待機フラグがON(1)であるか否かをパケット情報DB800の送信パケットSiBのレコードから判断する(ステップS1705)。待機フラグがONでない場合(ステップS1705:No)、待機する必要がないため、試験装置100は、送信時間間隔diB分の時間経過により送信パケットSiBを送信する(ステップS1706)。そして、iをインクリメントして(ステップS1707)、ステップS1703に戻る。
【0150】
一方、待機フラグがONである場合(ステップS1705:Yes)、送信時間間隔diB分の時間を経過したときに送信パケットSiBの待機時間wiの計時を開始する(ステップS1708)。待機時間wiは、対象となっている送信パケットSiB単独の待機時間である。累積待機時間Wの更新については、図18および図19において説明する。
【0151】
そして、待機時間wiの計時開始後、試験装置100は、1つ前の送信パケットS(i−1)Bに対する応答パケットR(i−1)Bを受信するのを待ち受ける(ステップS1709:No)。そして、試験装置100は、応答パケットR(i−1)Bが受信された場合(ステップS1709:Yes)、ステップS1706に移行して、送信パケットSiBを予備系サーバBに送信することとなる(ステップS1706)。なお、ステップS1703において、i>nである場合(ステップS1703:Yes)、予備系サーバBへのパケット送信処理を終了する。
【0152】
図18および図19は、つぎの送信パケットS(i+1)Bを送信する送信時間間隔d(i+1)Bの算出処理手順を示すフローチャートである。まず、図18において、試験装置100は、図17のステップS1708での待機時間wiの計時開始を検出すると(ステップS1801)、応答パケットR(i−1)Bの受信を待ち受け(ステップS1802:No)、応答パケットR(i−1)Bが受信された場合(ステップS1802:Yes)、試験装置100は、待機時間wiの計時開始から応答パケットR(i−1)Bの受信までの待機時間wiを取得する(ステップS1803)。
【0153】
そして、試験装置100は、今回取得した待機時間wiを累積待機時間Wに加算する(ステップS1804)。累積待機時間Wの初期値は、W=0であるため(ステップS1701)、最初に待機時間wiが取得されると、累積待機時間WはW=wiとなる。
【0154】
そして、試験装置100は、次に送信される送信パケットS(i+1)Bの待機フラグがON(1)であるか否かをパケット情報DB800の送信パケットS(i+1)Bのレコードから判断する(ステップS1805)。待機フラグがONである場合(ステップS1805:Yes)、iをインクリメントし(ステップS1806)、ステップS1801に戻る。
【0155】
一方、待機フラグがOFFである場合(ステップS1805:No)、試験装置100は、次に送信される送信パケットS(i+1)Bの送信時間間隔d(i+1)Bを、送信時間間隔d(i+1)Aから累積待機時間Wを減算した値に更新する(ステップS1807)。そして、試験装置100は、更新された送信時間間隔d(i+1)Bがd(i+1)B<0であるか否かを判断する(ステップS1808)。
【0156】
d(i+1)B<0でない場合(ステップS1808:No)、累積待機時間W=0として(ステップS1809)、ステップS1806に移行することとなる。そして、次に送信される送信パケットS(i+1)Bについては、図17のステップS1707でiがインクリメントされることで、ステップS1807で更新された送信時間間隔d(i+1)B分の時間経過により送信されることとなる。
【0157】
また、ステップS1808において、d(i+1)B<0である場合(ステップS1808:Yes)、送信パケットS(i+1)Bを現在対象となっている送信パケットSiBよりも先に送信することとなるため、図19においてさらに修正することとなる。
【0158】
図19では、ステップS1808:Yesのあと、k=1とする(ステップS1901)。kは、次の送信パケットS(i+1)B以降の送信パケット数となる。つぎに、試験装置100は、送信パケットS(i+1+k)Bが存在するか否かを判断する(ステップS1902)。送信パケットS(i+1+k)Bが存在しない場合(ステップS1902:No)、試験装置100は、送信パケットS(i+1)B〜S(i+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+k)Bを所定の送信時間間隔dp(≧0)に設定する(ステップS1903)。すなわち、このままでは、送信時間間隔d(i+1)B〜d(i+k)Bが負の値となるため、強制的に所定の送信時間間隔dp(≧0)にする。これにより、一連の処理を終了する。
【0159】
一方、ステップS1902において、送信パケットS(i+1+k)Bが存在する場合(ステップS1902:Yes)、試験装置100は、送信パケットS(i+1+k)Bの待機フラグがONであるか否かを、パケット情報DB800の送信パケットS(i+1+k)Bのレコードから判断する(ステップS1904)。
【0160】
待機フラグがONである場合(ステップS1904:Yes)、試験装置100は、送信パケットS(i+1)B〜S(i+1+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+1+k)Bを所定の送信時間間隔dp(≧0)に設定する(ステップS1905)。そして、累積待機時間WをW=0にして(ステップS1906)、ステップS1806に戻る。すなわち、このままでは、送信時間間隔d(i+1)B〜d(i+1+k)Bが負の値となるため、強制的に所定の送信時間間隔dp(≧0)にする。
【0161】
また、ステップS1904において、待機フラグがOFFである場合(ステップS1904:No)、試験装置100は、宛先変換前の送信パケットS(i+1)A〜S(i+1+k)Aの各送信時間間隔d(i+1)A〜d(i+1+k)Aをパケット情報DB800から読み出して、送信時間間隔d(i+1)A〜d(i+1+k)Aの総和ΣdjAを算出する(ステップS1907)。そして、試験装置100は、総和ΣdjAがΣdjA≧Wであるか否かを判断する(ステップS1908)。
【0162】
ΣdjA≧Wでない場合(ステップS1908:No)、累積待機時間Wを送信パケットS(i+1)B〜S(i+1+k)Bに分散できないため、kをインクリメントして(ステップS1912)、ステップS1902に戻る。
【0163】
一方、ΣdjA≧Wである場合(ステップS1908:Yes)、試験装置100は、総和ΣdjAから累積待機時間Wを減算した結果をkで割ることにより、送信時間間隔dqを算出する(ステップS1909)。そして、試験装置100は、送信パケットS(i+1)B〜S(i+1+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+1+k)Bを、送信時間間隔dqに設定する(ステップS1910)。これにより、各送信パケットS(i+1)B〜S(i+1+k)Bに対し、累積待機時間Wを均等に分散することができる。したがって、送信パケットを集中受信するといった予備系サーバBの過負荷を防止することができる。
【0164】
このあと、累積待機時間WをW=0にして(ステップS1911)、ステップS1806に戻る。このように、ステップS1807、S1903、S1905、S1911において、送信パケットを送信する時間間隔を初期設定されたdiAから更新することでステップS1704において、送信対象となった場合の送信時間間隔diBとして用いられる。したがって、図3〜図5に示したような予備系サーバBへの送信処理を実現することができる。
【0165】
図20は、応答パケットの格納処理手順を示すフローチャートである。試験装置100は、予備系サーバBに対して送信パケットSiBを送信するため、予備系サーバBからその応答パケットRiBを受信するのを待ち受ける(ステップS2001:No)。応答パケットRiBが受信された場合(ステップS2001:Yes)、試験装置100は、試験開始(ステップS1702)から応答パケットRiBを受信したときの経過時間を検出する(ステップS2002)。
【0166】
試験装置100は、1つ前の応答パケットR(i−1)Bを受信してから(i=1のときは、試験開始から)応答パケットRiBを受信するまでの送信時間間隔DiBを算出する(ステップS2003)。そして、試験装置100は、あらたにレコードを設定して、ステップS2002で検出された経過時間、ステップS2003で算出された送信時間間隔diB、応答パケットRiBのヘッダ、ペイロードを格納する(ステップS2004)。これにより、格納処理を終了する。この格納処理により、図10〜図13に示したように、応答パケットのレコードr2,r12,r14,r16,r18が格納されることとなる。
【0167】
(性能評価処理)
図21は、性能評価処理手順を示すフローチャートである。まず、試験装置100は、パケット情報DB800の中から任意の送信パケットSiB(ただし、i≠1)のレコードを指定する(ステップS2101)。そして、試験装置100は、指定送信パケットSiBの送信時間間隔diBをパケット情報DB800から取得する(ステップS2102)。
【0168】
また、試験装置100は、指定送信パケットSiBに対する応答パケットRiBを、パケット情報DB800のTCPヘッダ情報から特定し(ステップS2103)、特定された応答パケットRiBの送信時間間隔DiBを取得する(ステップS2104)。そして、試験装置100は、送信時間間隔diBと送信時間間隔DiBとを比較する(ステップS2105)。
【0169】
diB<DiBである場合(ステップS2105:diB<DiB)、試験装置100は、主系サーバAが予備系サーバBよりも性能がよいと決定し、決定結果をメモリに書き込む(ステップS2106)。また、diB=DiBである場合(ステップS2105:diB=DiB)、試験装置100は、主系サーバAと予備系サーバBとは同一性能であると決定し、決定結果をメモリに書き込む(ステップS2107)。
【0170】
さらに、diB>DiBである場合(ステップS2105:diB>DiB)、試験装置100は、予備系サーバBが主系サーバAよりも性能がよいと決定し、決定結果をメモリに書き込む(ステップS2108)。そのあと、試験装置100は、メモリに書き込まれた決定結果を出力する(ステップS2109)。
【0171】
なお、図21では、任意の送信パケットSiBを指定しているが、待機フラグがONでない送信パケットSiBや、予備系サーバBに送信する送信時間間隔diBが主系サーバAに送信する送信時間間隔diAと同じである(diB=diA)送信パケットSiBを指定するのが好ましい。このような送信パケットSiBは、待機時間の影響を受けていないため、待機時間の影響を受けている送信パケットSiBに比べて高精度な性能評価を行うことができる。
【0172】
以上説明したように、試験装置100、試験方法、および試験プログラムによれば、第1送信先(たとえば、主系サーバA)へのパケットの宛先を第2送信先(たとえば、予備系サーバB)に換え、第1送信先への送信と同一時間間隔で第2送信先に送信することになる。したがって、第2送信先に対し、あたかも第1送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0173】
また、1つ前の送信パケットに対する応答パケットの情報が必要な場合、対送信パケットの送信が応答パケットの受信まで待たされることとなり、第1送信先の時間間隔の総和よりも第2送信先の時間間隔の総和が大きくなり、同一負荷での再現試験ができない場合が生じる。
【0174】
このような場合でも、待機時間を計測して、計測された待機時間分を後続の送信パケットの時間間隔から減算することで、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和とを等しくすることができる。したがって、このような場合でも、第2送信先に対し、あたかも第1送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0175】
また、待機時間が発生した場合に、後続する複数の送信パケットの時間間隔に待機時間を分散することで、後続する送信パケットの時間間隔を近づけすぎないようにする。これにより、第2送信先が後続する送信パケットを短時間で集中的に受信するのを防止でき、第2送信先の過負荷を防止することができる。
【0176】
また、後続パケットを含む後続パケット以降の一連のパケットにより待機時間を吸収できない場合には、当該一連のパケットの各々のパケットについての時間間隔を0以上の所定値とする。これにより、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和との差を極力抑えることができ、性能評価の劣化を防止することができる。また、第2送信先の時間間隔の総和のほうが小さくなった場合は、第2送信先に対する性能評価試験の高速化を図ることができる。
【0177】
また、待機フラグがONである送信パケットが連続する場合であっても、その送信パケットごとの待機時間の総和を求めることにより、後続の送信パケットの時間間隔で相殺することができる。
【0178】
なお、上述した実施の形態において、送信パケットの送信順序を守り、かつ、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和とを等しくできれば、後続するいずれかの送信パケットの時間間隔を修正してもよい。たとえば、図3では、待機フラグがONである送信パケットS2Bの次の送信パケットS3Bの時間間隔を修正した例を説明したが、それ以降の送信パケットS4Bの時間間隔を修正することとしてもよい。
【0179】
以上のことから、本実施の形態にかかる試験プログラム、試験装置、および試験方法では、高品質な性能評価試験を効率的におこなうことができる。
【0180】
また、図23の場合、同一負荷で試験するには、図2に示したように、試験実施者は主系サーバAに対しパケットシーケンスのキャプチャをおこない、予備系サーバBのある現地(東京)に赴く。そして、キャプチャデータを基に同じシーケンスでパケットを送出する。したがって、試験実施者の移動などによる労力が発生し、試験実施者の負担が増大するという問題がある。しかしながら、本実施の形態によれば、試験実施者は移動しなくても高品質な試験を実施することができるため、試験実施者の負担を軽減することができる。
【0181】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0182】
100 試験装置
1401 取得部
1402 解析部
1403 判断部
1404 生成部
1405 送信部
1406 受信部
1407 検出部
1408 算出部
1409 修正部
1410 比較部
1411 決定部
1412 出力部
A 主系サーバ
B 予備系サーバ
C 試験端末
【技術分野】
【0001】
本発明は、対象となる装置の試験をおこなう試験プログラム、試験装置、および試験方法に関する。
【背景技術】
【0002】
従来から、クライアント−サーバ間の性能評価の技術が開示されているが(たとえば、下記特許文献1、2を参照)、システムの移行などをおこなう際、予備系サーバを迅速かつ正確に検証するための性能評価試験技術が求められている。このような性能評価試験技術については、従来、以下のように処理がおこなわれている。
【0003】
図22は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。図22では、主系サーバAおよび試験端末Cが大阪にあり、予備系サーバBは東京にあるものとする。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。この場合、試験実施者は、同一パターン(パケットとその応答パケット)で試験をする際、試験端末Cが主系サーバAからのパケットをキャプチャし、キャプチャしたパケットを主系サーバAと同一のシーケンスパターンで予備系サーバBに流すこととなる。
【0004】
図23は、従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。図23では、主系サーバAは大阪にあり、予備系サーバBは東京にあり、試験端末Cは東京および大阪の両方にあるものとする。この場合、試験実施者は、大阪において試験端末Cと主系サーバAとの間でパケット通信をおこなうとともに、東京において、主系サーバAと同じ時間間隔で、試験端末Cと予備系サーバBとの間でパケット通信をおこなう。これにより、主系サーバAと予備系サーバBとの相対的な性能評価をおこなうこととなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−8648号公報
【特許文献2】特開平9−62601号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、主系サーバAと予備系サーバBとが異なる場所にある場合、主系サーバAと予備系サーバBとでのRTT(Round Trip Time:往復遅延時間)の差(距離と正の相関)が主系サーバAおよび予備系サーバBの処理間隔(処理負荷)に影響する。すなわち、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなるため、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0007】
また、3ウェイハンドシェイクやパケットにクッキーを含む場合など、前に送信されたパケットに対する応答パケットの情報を解析した上で、パケットを送信する場合がある。このような場合、予備系サーバBへの送信は、前に送信されたパケットに対する応答パケットの受信を待たなくてはいけないため、予備系サーバBのパケット送受信間隔が主系サーバAのパケット送受信間隔に比べ大きくなる。したがって、同一負荷で性能評価ができず、性能評価の品質の低下を招くという問題があった。
【0008】
本発明は、上述した従来技術による問題点を解消するため、高品質な性能評価試験をおこなうことができる試験プログラム、試験装置、および試験方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、第1送信元から第1送信先へ送信された第1パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得し、前記第1パケット群の宛先を第2送信先に変更して第2送信元から前記各時間の経過により送信される第2パケット群のパケットごとに、当該パケットの先行パケットに対する前記第2送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記第2送信元から前記第2送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記第2送信元から前記第2送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【0010】
また、送信元から第1送信先へ送信された第1パケット群のパケットごとに、前記パケットの送信と前記パケットの先行パケットの送信との間の時間を取得する取得を取得し、前記第1パケット群の宛先を第2送信先に変更して前記送信元から前記各時間の経過により送信される第2パケット群のパケットごとに、当該パケットの先行パケットに対する前記第2送信先からの応答パケットの必要性を判断し、前記応答パケットが必要と判断された特定のパケットを、前記応答パケットの受信後に前記送信元から前記第2送信先に送信し、前記特定のパケットの先行パケットの送信から前記特定のパケットの送信までの経過時間から前記特定のパケットについての前記時間を引いた待機時間に基づいて、前記特定のパケットの後続パケットについての前記時間を修正し、前記特定のパケットの送信から修正後の前記時間の経過により、前記後続パケットを前記送信元から前記第2送信先に送信する試験プログラム、試験装置、および試験方法が、一例として提案される。
【発明の効果】
【0011】
上述した試験プログラム、試験装置、および試験方法によれば、高品質な性能評価試験をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】本実施の形態におけるパケット送信例(その1)を示す説明図である。
【図2】本実施の形態におけるパケット送信例(その2)を示す説明図である。
【図3】図2に示したパケット送信の修正例(その1)を示す説明図である。
【図4】図2に示したパケット送信の修正例(その2)を示す説明図である。
【図5】図2に示したパケット送信の修正例(その3)を示す説明図である。
【図6】性能評価例を示す説明図である。
【図7】コンピュータのハードウェア構成例を示すブロック図である。
【図8】パケット情報DBの記憶内容例を示す説明図(その1)である。
【図9】パケット情報DBの記憶内容例を示す説明図(その2)である。
【図10】パケット情報DBの記憶内容例を示す説明図(その3)である。
【図11】パケット情報DBの記憶内容例を示す説明図(その4)である。
【図12】パケット情報DBの記憶内容例を示す説明図(その5)である。
【図13】パケット情報DBの記憶内容例を示す説明図(その6)である。
【図14】本実施の形態にかかる試験装置の機能的構成例を示すブロック図である。
【図15】試験端末Cと主系サーバA間に流れるパケットの取得処理手順を示すフローチャートである。
【図16】送信パケット変換処理手順を示すフローチャートである。
【図17】予備系サーバBへのパケット送信処理手順を示すフローチャートである。
【図18】つぎの送信パケットS(i+1)Bを送信する時間間隔d(i+1)Bの算出処理手順を示すフローチャート(その1)である。
【図19】つぎの送信パケットS(i+1)Bを送信する時間間隔d(i+1)Bの算出処理手順を示すフローチャート(その2)である。
【図20】応答パケットの格納処理手順を示すフローチャートである。
【図21】性能評価処理手順を示すフローチャートである。
【図22】従来の主系サーバと予備系サーバとの相対的な性能評価処理の一例を示す説明図である。
【図23】従来の主系サーバと予備系サーバとの相対的な性能評価処理の他の例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、この発明にかかる試験プログラム、試験装置、および試験方法の実施の形態を詳細に説明する。なお、以下の説明において、パケットのことを、「送信パケット」や「応答パケット」と称することがある。ここで、「送信パケット」とは、試験対象となる第1送信先(たとえば、主系サーバA)や第2送信先(たとえば、予備系サーバB)に送信するパケットである。また、「応答パケット」とは、送信パケットの送信に対して第1送信先または第2送信先から送られてくるパケットをいう。また、「先行パケット」とは、注目する送信パケットの1つ前の送信パケットであり、「後続パケット」とは、注目する送信パケットの次の送信パケットである。
【0014】
図1は、本実施の形態におけるパケット送信例(その1)を示す説明図である。図1では、試験端末C、試験を行う対象である第1送信先の例として挙げられる主系サーバAが大阪にあり、試験を行う対象である第2送信先の例として挙げられる予備系サーバBは東京にあるものとする。なお、サーバA,Bの配置位置は例であって、他の配置関係でもよい。主系サーバAは、たとえば、現在システムで稼動している現用系のコンピュータである。予備系サーバBは、主系サーバAから移行予定のコンピュータである。
【0015】
試験装置100は、試験端末Cと主系サーバAと予備系サーバBと通信可能に接続される。たとえば、試験装置100と試験端末Cと主系サーバAは、同一のネットワークNa内にあり、予備系サーバBが存在するネットワークNbと通信可能である。試験装置100は、試験端末Cと一体型としてもよい。この場合、試験装置100は、試験端末Cで実行される処理もおこなうこととなる。
【0016】
たとえば、試験端末Cが主系サーバAにパケットS1Aを送信することにより、主系サーバAは試験端末CにパケットR1Aを応答として送信する。つぎに、試験端末Cが主系サーバAにパケットS2Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR2Aを送信する。
【0017】
つぎに、試験端末Cが主系サーバAにパケットS3Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR3Aを送信する。つぎに、試験端末Cが主系サーバAにパケットS4Aを送信することにより、主系サーバAは試験端末Cに応答としてパケットR4Aを送信する。
【0018】
このとき、試験装置100は、パケットS1A,R1A,S2A,R2A,S3A,R3A,S4A,R4Aの順にキャプチャする。時刻t1A〜t4Aは、試験装置100が、試験開始を基準としてパケットS1A〜S4Aをキャプチャした時刻である。なお、基準となる試験開始の時刻(t=0)については、試験装置100が、試験端末Cからの開始信号を受信したときとしてもよく、試験装置100に試験開始入力があったときとしてもよい。また、試験端末Cからの最初のパケットS1Aをキャプチャした時刻としてもよい。いずれにしても、試験端末Cと試験装置100との間で、試験開始の時刻を同期させる必要はない。
【0019】
なお、試験端末Cから主系サーバAにパケットS1A〜S4Aを送信するときの各送信時間間隔d1A〜d4Aは、連続するパケット間の経過時間である。具体的には、試験装置100でキャプチャされた時刻t1A〜t4Aを用いてあらわすことができる。たとえば、試験開始からパケットS1Aを送信するまでの送信時間間隔d1Aは、d1A=t1A−0となる。
【0020】
また、パケットS2Aの先行パケットであるパケットS1Aの送信からパケットS2Aの送信までの送信時間間隔d2Aは、d2A=t2A−t1Aとなる。同様に、パケットS3Aの先行パケットであるパケットS2Aの送信からパケットS3Aの送信までの送信時間間隔d3Aは、d3A=t3A−t2Aとなる。同様に、パケットS4Aの先行パケットであるパケットS3Aの送信からパケットS4Aの送信までの送信時間間隔d4Aは、d4A=t4A−t3Aとなる。
【0021】
また、D2Aは主系サーバAでのパケットS1A,S2Aの受信間隔、D3Aは主系サーバAでのパケットS2A,S3Aの受信間隔、D4Aは主系サーバAでのパケットS3A,S4Aの受信間隔である。これら受信間隔は、試験装置100が応答パケットR1A,R2Aを受信する応答時間間隔、パケットR2A,R3Aを受信する応答時間間隔、パケットR3A,R4Aを受信する応答時間間隔となる。
【0022】
つぎに、試験装置100は、キャプチャした主系サーバAへのパケットS1A〜S4Aの宛先を主系サーバAのアドレスから予備系サーバBのアドレスに書き換えて、パケットS1B〜S4Bを生成する。そして、試験装置100は、生成されたパケットS1B〜S4Bを、それぞれ、送信時間間隔d1B(=d1A),d2B(=d2A),d3B(=d3A),d4B(=d4A)で予備系サーバBに送信する。
【0023】
この場合、パケットS1B〜S4Bの送信元アドレスを試験装置100のアドレスとすることで、予備系サーバBからの応答パケットR1B〜R4Bの送信先が試験装置100となるように設定する。なお、パケットS1B〜S4Bの送信元アドレスを変更せず、試験端末Cが応答パケットR1B〜R4Bを受信してもよい。
【0024】
そして、試験装置100は、試験開始からt1B(=t1A)経過したときに、パケットS1Bを予備系サーバBに送信し、試験開始からt2B(=t2A)経過したときに、パケットS2Bを予備系サーバBに送信し、試験開始からt3B(=t3A)経過したときに、パケットS3Bを予備系サーバBに送信し、試験開始からt4B(=t4A)経過したときに、パケットS4Bを予備系サーバBに送信する。
【0025】
また、D2Bは予備系サーバBでのパケットS1B,S2Bの受信間隔、D3Bは予備系サーバBでのパケットS2B,S3Bの受信間隔、D4Bは予備系サーバBでのパケットS3B,S4Bの受信間隔である。これら受信間隔は、応答パケットR1B,R2Bを受信する応答時間間隔、パケットR2B,R3Bを受信する応答時間間隔、パケットR3B,R4Bを受信する応答時間間隔となる。
【0026】
試験端末Cと主系サーバAとの間のシーケンスでは、主系サーバAからの応答パケットR1Aを試験端末Cが受信すると、試験端末CはパケットS2Aを主系サーバAに送信し、主系サーバAからの応答パケットR2Aを試験端末Cが受信すると、試験端末CはパケットS3Aを主系サーバAに送信し、主系サーバAからの応答パケットR3Aを試験端末Cが受信すると、試験端末CはパケットS4Aを主系サーバAに送信する。
【0027】
これに対し、試験装置100と予備系サーバBとの間のシーケンスでは、予備系サーバBがパケットS1B〜S4Bを受けると、主系サーバAと同様、応答パケットR1B〜R4Bを返す。この場合、試験装置100からのパケットS2B〜S4Bについては、予備系サーバBからのパケットS1B〜S3Bに対する応答パケットR1B〜R3Bの受信を待つことなく、上述した送信時間間隔d1A〜d4Aと同一の送信時間間隔d1B〜d4Bを維持したまま、パケット送信をおこなう。
【0028】
このように、主系サーバAおよび予備系サーバBでは、同一シーケンス(送信時間間隔d1A〜d4A)でパケット送信をおこなうため、受信間隔についても、D2A=D2B、D3A=D3B、D4A=D4Bとなる。したがって、設置場所の違いをパケットS1A〜S4Aの変換で吸収することにより、主系サーバAおよび予備系サーバBは同様の負荷で性能評価試験をされることとなる。このあと、主系サーバAからの応答パケットR1A〜R4Aと予備系サーバBからの応答パケットR1B〜R4Bとを比較することで、主系サーバAと予備系サーバBとの相対的な性能評価を実行することができる。
【0029】
図2は、本実施の形態におけるパケット送信例(その2)を示す説明図である。図2において、図1との相違点は、パケットS2Aの宛先を予備系サーバBとしたパケットS2BがパケットR1Bの情報が必要なパケットであるために、パケットS2Bを、パケットR1Bの受信を待ってから送信する点である。このため、パケットS2Bの先行パケットS1Bは、試験開始から送信時間間隔d1B(=d1B−0)分の時間経過により送信されるが、パケットS2Bは、送信時間間隔d2B(=t2B−t1B)分の時間経過により送信される。送信時間間隔d2Bは、d2B>d2Aとなる。これにより、対応する予備系サーバBでの受信間隔D2Bも、D2B>D2Aとなる。
【0030】
パケットS2Bの送信が遅延するが、パケットS2B以降のパケットS3B,S4Bについては、図1と同様の送信時間間隔d3B(=t3B−t2B),d4B(=t4B−t3B)で送信されるため、対応する受信間隔も、図1と同様、D3B,D4Bとなる。上記以外については、図1と同じである。
【0031】
パケットS2Bのような送信遅延は、たとえば、3ウェイハンドシェイクにおいて、パケットS1A,S1BがSYNパケット、応答パケットR1A,R1BがSYN/ACKパケット、パケットS2A,S2BがACKパケットである場合に発生する。また、応答パケットR1A,R1BのHTTP(Hyper Text Transfer Protocol)応答ヘッダにCookie情報が埋め込まれている場合、パケットS2A,S2BのHTTPリクエストヘッダを変更する必要がある。このような場合に、パケットS2Bで送信遅延が発生する。
【0032】
パケットS2Bのような送信遅延が発生すると、主系サーバAと予備系サーバBとで負荷が異なってしまう(D2A<D2B)こととなる。このため、パケットS2B以降のパケットS3B,S4Bの送信タイミングを修正する必要がある。
【0033】
図3は、図2に示したパケット送信の修正例(その1)を示す説明図である。図3では、パケットS2Bの送信遅延を、パケットS2Bの後続パケットとなるパケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。以降、時間の単位の例として、[msec]を用いる。
【0034】
具体的には、パケットS2Bの送信遅延により、d2B>d2Aとなっている。したがって、d2B+d3B=d2A+d3Aとなるように、パケットS2Bの送信からパケットS3Bを送信するまでの送信時間間隔d3Bを短縮させる。
【0035】
たとえば、修正前(図2の状態)での送信時間間隔d1A〜d4A,d1B,d3B,d4Bがそれぞれ10[msec]で、送信時間間隔d2Bが18[msec]とする。すなわち、主系サーバAでの送信時間間隔d2A(=10[msec])に比べて、8[msec](=18[msec]−10[msec])遅延したものとする。この遅延した時間を待機時間と称す。
【0036】
この場合、パケットS2Bの後続パケットS3Bの送信時間間隔d3Bを待機時間(8[msec])分短縮して、d3B=2[msec]とする。すなわち、後続パケットS3Bは、パケットS2Bを受信してから10[msec]後に送信するのではなく、2[msec]後に送信する。このように修正することで、d2B+d3B=d2A+d3Aとなる。
【0037】
これにより、予備系サーバBでの処理間隔D3Bも連動して短縮化され、主系サーバAでの受信間隔の総和DA(D2A+D3A+D4A)と予備系サーバBでの処理間隔の総和DB(D2B+D3B+D4B)とが同一となる。したがって、主系サーバAおよび予備系サーバBは同一負荷となる。
【0038】
図4は、図2に示したパケット送信の修正例(その2)を示す説明図である。図4でも、図3と同様、パケットS2Bの送信遅延を、パケットS2Bの後続パケットとなるパケットS3Bの送信タイミングを調整することで、主系サーバAと予備系サーバBとで同一負荷となるように修正している。図3の修正例との相違は、図3では、後続パケットS3Bの時間間隔d3Bを短縮化しているのに対し、図4では、後続パケットS3Bだけではなく、それ以降のパケット(図4では、パケットS4B)の送信時間間隔d3B,d4Bを短縮化している点である。
【0039】
図3の修正例では、後続のパケットS3Bの送信時間間隔d3Bのみを短縮化させたため、予備系サーバBにおいて、処理間隔D3Bが短縮化される。すなわち、予備系サーバBでは、パケットS2B,S3Bの受信と、応答パケットR2B,R3Bの送信が局所的に集中してしまう。したがって、図4では、後続のパケットS4Bの送信時間間隔d4Bを用いることで負荷分散を図る。具体的には、修正後の送信時間間隔d3B,d4Bがd3B=d4Bとなるように修正する。
【0040】
たとえば、図3で説明した具体例では送信時間間隔d2Bがd2B=18[msec]となったために、次の送信時間間隔d3B(=10[msec])では、増加となる待機時間(8[msec])を短縮して、修正後は待機時間を2[msec]とした。これに対し、図4の修正例では、増加分の待機時間(8[msec])を、送信時間間隔d3B,d4Bに4[msec]づつ分散して、送信時間間隔d3B=d4B=6[msec](=10[msec]−4[msec])に短縮する。これにより、予備系サーバBでの受信間隔もD3B=D4Bとなり、予備系サーバBでの局所的な負荷が分散される。
【0041】
なお、図4の例では、パケットS2B以降の2つのパケットS3B,S4Bの送信時間間隔d3B,d4Bを用いて負荷分散をおこなったが、パケットS4B以降も送信遅延が生じないパケットが予備系サーバBに送信される場合、それらの送信時間間隔も用いて負荷分散をおこなってもよい。すなわち、パケットS2B以降のパケットの数が多ければ多いほど、増加分の時間(ここでは、8[msec])が分散されることとなり、対応する予備系サーバBの受信間隔も平準化されて、負荷分散を効率的に図ることができる。
【0042】
図5は、図2に示したパケット送信の修正例(その3)を示す説明図である。図5では、パケットS2Bの送信遅延により、送信時間間隔d2Bが延びて、待機時間が非常に大きくなった場合の修正例である。このような場合、具体的には、待機時間がパケットS2B以降のパケットS3Bの送信時間間隔d3Bよりも大きい場合、送信時間間隔d3Bで短縮化できないこととなる。
【0043】
パケットS2B以降のパケット数が多ければ、送信時間間隔d4Bやそれ以降の時間間隔を用いて、図4の修正例により負荷分散を図ることができる。一方、パケットS2B以降のパケット数が少ない場合、後続の各パケットのすべての時間間隔を0[msec]以上の所定値に設定して、予備系サーバBの処理時間の総和DBがDB≦DAとなるように修正する。
【0044】
図3で説明した具体例では送信時間間隔d2Bがd2B=18[msec]としたが、図5では、送信時間間隔d2Bをd2B=34[msec]とする。すなわち、増加分となる待機時間は、24[msec]となる。待機時間である24[msec]は、パケットS2Bの後続パケットS3Bの送信時間間隔d3B(=10[msec])よりも大きく、また、後続パケットS3Bの送信時間間隔d3B(=10[msec])とパケットS3Bの後続パケットS4Bの送信時間間隔d4B(=10[msec])との総和(=20[msec])よりも大きい。
【0045】
このため、図4の修正例で示したような負荷分散はできないため、送信時間間隔d3B,d4Bを0[msec]以上の所定値に設定する。ここでは、送信時間間隔d3B=d4B=1[msec]とする。これにより、予備系サーバBの受信間隔の総和DBは、DB=D2B+D3B+D4B=24+1+1=26[msec]となり、主系サーバAの処理時間の総和DA以下となるため、試験の高速化を図ることができる。なお、所定値は、最大でも修正前の送信時間間隔よりも短く設定する。
【0046】
図6は、性能評価例を示す説明図である。図6は、図3に示したパケット送信の修正例での性能評価例を示している。性能評価を行う場合、予備系サーバBに対する送信時間間隔のうち、任意の送信時間間隔を選択する。予備系サーバBに対する送信時間間隔は、上り方向となる試験装置100から予備系サーバBへのパケットを送信する時間間隔であるため、ここでは、上りの時間間隔と称す。
【0047】
そして、選択された上りの時間間隔と、当該上りの時間間隔に対応する下りの時間間隔とを比較する。下りの時間間隔とは、下り方向となる予備系サーバBから試験装置100への応答パケットを送信する応答時間間隔である。たとえば、上りの時間間隔としてd3Bが選択されたとすると、対応する送信時間間隔d3Bと比較する。
【0048】
性能評価では、下りの時間間隔が上りの時間間隔よりも大きい場合、予備系サーバBよりも主系サーバAの方が性能がよいと判定する。また、下りの時間間隔が上りの時間間隔と同じである場合、主系サーバAと予備系サーバBとの性能は、同じであると判定する。また、下りの時間間隔が上りの時間間隔よりも小さい場合、主系サーバAよりも予備系サーバBの方が性能がよいと判定する。
【0049】
つぎに、上述した図1〜図6に示した試験例を実現する試験装置の具体例について説明する。
【0050】
(コンピュータのハードウェア構成例)
図7は、コンピュータ(試験端末C、試験装置100、主系サーバA、予備系サーバB)のハードウェア構成例を示すブロック図である。図7において、コンピュータは、CPU(Central Processing Unit)701と、ROM(Read Only Memory)702と、RAM(Random Access Memory)703と、磁気ディスクドライブ704と、磁気ディスク705と、光ディスクドライブ706と、光ディスク707と、ディスプレイ708と、I/F(Interface)709と、キーボード710と、マウス711と、スキャナ712と、プリンタ713と、を備えている。また、各構成部はバス700によってそれぞれ接続されている。
【0051】
ここで、CPU701は、コンピュータの全体の制御を司る。ROM702は、OS(Operating System)やアプリケーションといった各種プログラムを記憶している。RAM703は、CPU701のワークエリアとして使用される。磁気ディスクドライブ704は、CPU701の制御にしたがって磁気ディスク705に対するデータのリード/ライトを制御する。磁気ディスク705は、磁気ディスクドライブ704の制御で書き込まれたデータを記憶する。
【0052】
光ディスクドライブ706は、CPU701の制御にしたがって光ディスク707に対するデータのリード/ライトを制御する。光ディスク707は、光ディスクドライブ706の制御で書き込まれたデータを記憶したり、光ディスク707に記憶されたデータをコンピュータに読み取らせたりする。
【0053】
ディスプレイ708は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ708は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0054】
インターフェース(以下、「I/F」と略する。)709は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク714に接続され、このネットワーク714を介して他の装置に接続される。そして、I/F709は、ネットワーク714と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F709には、たとえばモデムやLANアダプタなどを採用することができる。
【0055】
キーボード710は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス711は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0056】
スキャナ712は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ712は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ713は、画像データや文書データを印刷する。プリンタ713には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0057】
(パケット情報データベース(DB)の記憶内容)
つぎに、本実施の形態にかかる試験装置100に用いられるパケット情報DBについて説明する。図8〜図13は、パケット情報DBの記憶内容例を示す説明図である。パケット情報DB800は、具体的には、たとえば、図7に示したRAM703、磁気ディスク705、光ディスク707などの記憶装置により、その機能を実現する。
【0058】
図8〜図13において、パケット情報DB800は、送信パケット番号項目、セッションID項目、経過時間項目、IP(Internet Protocol)ヘッダ情報項目、TCP(Transmission Control Protocol)ヘッダ情報項目、アプリヘッダ情報項目、ペイロード項目、待機フラグ項目、送信パケットの時間間隔項目、応答パケットの時間間隔項目と、を有する。
【0059】
送信パケット番号項目には、レコードごとに、送信パケットについての送信パケット番号が格納される。送信パケットは、同一セッションIDの送信パケット群において、先頭の送信パケットから降順に割り振られる。受信パケットについては、送信パケット番号は割り振られない。
【0060】
セッションID項目には、セッションIDが格納される。同一セッションであれば同一セッションIDが格納される。
【0061】
経過時間項目には、試験開始からの経過時間が格納される。具体的には、試験開始から試験装置100がパケットをキャプチャしたときまでの時間が、経過時間として格納される。試験開始が試験装置100によって決められた場合、最初にキャプチャされたパケットの経過時間は、試験開始からキャプチャされたときまでの時間となる。また、最初のパケットのキャプチャにより試験開始とする場合には、最初にキャプチャされたパケットの経過時間を0にする。
【0062】
IPヘッダ情報項目は、送信元IP項目と宛先IP項目とを有する。送信元IP項目には、キャプチャされたパケットのヘッダに記述されている送信元IPアドレスが格納される。また、宛先IP項目には、キャプチャされたパケットのヘッダに記述されている宛先IPアドレスが格納される。
【0063】
図8〜図13では、IPアドレス「10.10.10.10」を試験端末CのIPアドレスとする。また、IPアドレス「20.20.20.20」を主系サーバAのIPアドレスとする。また、IPアドレス「30.30.30.30」を予備系サーバBのIPアドレスとする。また、IPアドレス「50.50.50.50」を試験装置100のIPアドレスとする。
【0064】
TCPヘッダ情報項目は、送信元ポート項目、宛先ポート項目、シーケンス番号項目、確認応答番号項目、各種フラグ(SYN(同期)/ACK(確認応答)/PSH(プッシュ)/FIN(通信終了)/RST(リセット要求))項目を有する。
【0065】
送信元ポート項目には、キャプチャされたパケットのヘッダに記述されている送信元ポート番号が格納される。
【0066】
宛先ポート項目には、キャプチャされたパケットのヘッダに記述されている宛先ポート番号が格納される。
【0067】
シーケンス番号項目には、キャプチャされたパケットのヘッダに記述されているシーケンス番号が格納される。シーケンス番号は、キャプチャされたパケットの送信元で与えられたランダムな値である。
【0068】
確認応答番号項目には、キャプチャされたパケットのヘッダに記述されている確認応答番号が格納される。確認応答番号は、受け取った側のコンピュータが受け取ったパケットのシーケンス番号に基づいて付与する値である。たとえば、受け取ったパケットのシーケンス番号に1加算した値を確認応答番号とする。
【0069】
フラグ項目には、パケットの種類(SYN/ACK/PSH/FIN/RST)を特定するフラグが格納される。たとえば、レコードr1のパケットは、SYNパケットである。
【0070】
アプリヘッダ情報項目には、HTTPやPOP(Post Office Protocol)3/IMAP(Internet Message Access Protocol)といった各アプリケーションに関するヘッダ情報が格納される。
【0071】
ペイロード項目には、キャプチャされたパケットのうちヘッダを除いたデータ本体となるペイロードが格納される。なお、パケットのペイロードは格納しても破棄してもどちらでもよい。
【0072】
待機フラグ項目には、待機フラグの値(0/1)が格納される。デフォルトの値は「0」とする。「0」に設定された場合は、前の送信パケットに対する応答パケットの受信を待つことなく、対象となるパケットを送信する。「1」に設定された場合は、1つ前の送信パケットに対する応答パケットの受信を待って、該当するパケットを送信する。待機フラグの設定については後述する。
【0073】
送信パケットの時間間隔項目は、主系項目と、予備系項目と、待機時間項目と、を有する。
【0074】
主系項目には、1つ前の主系サーバAへの送信パケットの送信から対象となる送信パケットを主系サーバAに送信するまでの経過時間が格納される。なお、先頭の送信パケット(送信パケット番号が「1」である送信パケット)の場合は、試験開始からの先頭の送信パケットを主系サーバAに送信したときの経過時間が格納される。
【0075】
予備系項目には、1つ前の予備系サーバBへの送信パケットの送信から対象となる送信パケットを予備系サーバBに送信するまでの経過時間が格納される。なお、先頭の送信パケット(送信パケット番号が「1」である送信パケット)の場合は、試験開始からの先頭の送信パケットを予備系サーバBに送信したときの経過時間が格納される。
【0076】
待機時間項目には、予備系サーバBへの時間間隔から主系サーバAへの時間間隔を減算した時間差が待機時間として格納される。
【0077】
応答パケットの時間間隔項目には、1つ前の予備系サーバBからの応答パケットの受信から、対象となる応答パケットを予備系サーバBから受信するまでの経過時間が格納される。つぎに、図8〜図13を個別に説明する。
【0078】
図8に示したパケット情報DB800では、試験端末Cと主系サーバAとの間で送受信するパケットの情報が格納されている。たとえば、レコードr1〜r3は、同一セッションID(=abc)のパケットを示すレコードであり、試験端末Cと主系サーバAとの間での、TCP/IPに従った3ウェイハンドシェイクを示している。3ウェイハンドシェイクでは、セッション確立、データ転送、セッション終了を実行する一連の処理からなる。
【0079】
具体的には、まず試験端末CがSYNパケット(シーケンス番号:試験端末C側の乱数、確認応答番号:0、SYNフラグ)をパケットとして主系サーバAに送る。このSYNパケットが、レコードr1の送信パケットに相当する。
【0080】
つぎに、そのSYNパケットを受け取った主系サーバAがSYN/ACKパケット(シーケンス番号:主系サーバA側の乱数、確認応答番号:SYNパケットのシーケンス番号+1、SYNフラグ、ACKフラグ)を試験端末Cに送る。このSYN/ACKパケットが、レコードr2の応答パケットに相当する。
【0081】
さらに、そのSYN/ACKパケットを受け取った試験端末CがACKパケット(シーケンス番号:主系サーバA側の確認応答番号、確認応答番号:SYN/ACKパケットのシーケンス番号+1、ACKフラグ)をパケットとして主系サーバAに送る。このACKパケットが、レコードr3の送信パケットに相当する。
【0082】
レコードr3のパケットは、レコードr2のSYN/ACKパケットに応答したACKパケットであるため、レコードr2のSYN/ACKパケットの受信を待って試験端末Cから主系サーバAに送信される。このような場合、試験装置100は、レコードr3の待機フラグをON(0→1)に設定する。
【0083】
また、レコードr11〜r18は、同一セッションID(=uvw)のパケットを示すレコードであり、図2に示したパケットS1A〜S4A,R1A〜R4Aを示している。具体的には、パケットS1A〜S4Aは、それぞれレコードr11,r13,r15,r17を示している。同様に、パケットR1A〜R4Aは、それぞれレコードr12,r14,r16,r18を示している。
【0084】
このうち、レコードr11のパケットS1Aを送信すると、パケットS1Aを受信した主系サーバAでは、パケットS1Aを解析することにより、応答ヘッダ(アプリヘッダ情報)にCookie情報が埋め込まれたレコードr12のパケットR1Aを生成する。
【0085】
レコードr13のパケットS2Aは、レコードr12のパケットR1Aに埋め込まれているCookie情報を利用する必要があるため、レコードr12のパケットR1Aの受信を待って試験端末Cから主系サーバAに送信される。このような場合、試験装置100は、レコードr13の待機フラグをON(0→1)に設定する。
【0086】
図9に示したパケット情報DB800は、図8に示したパケットの宛先IPアドレスを、主系サーバAから予備系サーバBに書き換えた変換例を示している。なお、送信元IPアドレスも試験端末Cから試験装置100に書き換えている。試験端末Cと試験装置100が同一装置(同一IPアドレス)である場合は、送信元IPアドレスを書き換える必要はない。
【0087】
また、この書き換えに伴って、レコードr1〜r3のセッションIDも、「abc」から「def」に書き換えられる。同様に、レコードr11〜r18のセッションIDも、「uvw」から「xyz」に書き換えられる。なお、シーケンス番号や確認応答番号も、パケット送受信のシーケンスや応答元のパケットが特定できるように所定のルールにしたがって書き換えられる。
【0088】
この書き換えにより、レコードr1,r3,r11,r13,r15,r17の送信パケットは、試験装置100から予備系サーバBへの送信パケットとなる。たとえば、レコードr1,r3,r11,r13,r15,r17の送信パケットは、図2に示した送信パケットS1B〜S4Bとなる。
【0089】
宛先が予備系サーバBになると、試験装置100は、レコードr1,r3,r11,r13,r15,r17の送信パケットを、主系項目の時間間隔にしたがって予備系サーバBに送信する。たとえば、レコードr11,r13,r15,r17の送信パケットS1B〜S4Bを、試験開始から10[msec]の時間間隔分の時間経過により送信することとなる。
【0090】
なお、図9に示した状態では、変換後の宛先である予備系サーバBにはまだパケットS1B〜S4Bを送信していないため、経過時間項目は空欄となる。また、応答パケットのレコードr2,r12,r14,r16,r18も削除される。
【0091】
図10に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その1)を示している。図10では、図8に示したように、応答パケットのレコードr2,r12,r14,r16,r18が生成される。
【0092】
レコードr1,r3,r11,r13,r15,r17の送信パケットは、待機フラグが「0」であれば、主系項目の時間間隔の経過により、応答パケットの受信を待つことなく、予備系サーバBに送信される。たとえば、レコードr11の送信パケットS1Bは、試験開始から10[msec]経過後に、予備系サーバBに送信される。主系項目の時間間隔分の時間経過により送信された場合は、主系項目の時間間隔を予備系項目に書き込むこととなる。
【0093】
ここで、送信対象となる送信パケットの待機フラグが「1」である場合、1つ前の送信パケットの応答パケットの受信を待ってから送信することとなる。たとえば、レコードr13の送信パケットS2Bは、レコードr12の応答パケットR1Bの受信を待って送信することとなる。したがって、レコードr13の送信パケットS2Bは、レコードr11の送信パケットS1Bの送信から10[msec]経過時に送信されるのではなく、試験開始から応答パケットR1Bを受信するまでの経過時間分の時間経過により送信される。
【0094】
応答パケットR1Bの試験開始からの経過時間は28[msec]であるため、前の送信パケットS1Bの送信から18[msec](=28[msec]−10[msec])経過時に送信される。したがって、レコードr13の経過時間項目には「28」が書き込まれ、予備系項目には「18」が書き込まれる。
【0095】
また、レコードr13の送信パケットS2A,S2Bの時間差は、8[msec](=18[msec]−10[msec])となるため、待機時間項目には「8」が待機時間として書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも8[msec]遅延していることがわかる。
【0096】
図10では、次のパケットとなるレコードr15の送信パケットS3Bの送信時期を修正することで、送信パケットS2Bの遅延分となる待機時間を吸収する。具体的には、送信パケットS3Bは、待機フラグが「0」であるため、前の送信パケットの受信から10[msec]経過時に送信するが、前のパケットが待機フラグ「1」の送信パケットS2Bであるため、送信パケットS2Bでの遅延分の時間差8[msec]を、送信パケットS3Bの主系項目の時間間隔から減算することで、予備系項目の時間間隔にする。
【0097】
この場合、レコードr15の送信パケットS3Bにおける予備系項目の時間間隔は、2[msec](=10[msec]−8[msec])となる。したがって、レコードr15の送信パケットS3Bは、送信パケットS2Bの受信後、2[msec]経過時に送信され、予備系項目には「2」が書き込まれる。
【0098】
後続となるレコードr17の送信パケットS4Bは、待機フラグ「0」であるため、レコードr17の送信パケットS4Bは、送信パケットS3Bの受信後、主系項目での10[msec]経過時に送信される。これにより、予備系項目に「10」が書き込まれる。これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0099】
図11に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その2)を示している。図10との違いは、図10では、図3に示したように、レコードr13の送信パケットS2Bによる遅延(時間差8[msec])を、レコードr15の送信パケットS3Bの時間間隔を遅延分短縮させることで、負荷の同一化を図っていた。
【0100】
これに対し、図11では、図4に示したように、レコードr13の送信パケットS2Bによる遅延(待機時間8[msec])を、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4B(いずれも待機フラグが「0」)の時間間隔の総和を遅延分短縮させることで、負荷の同一化を図る。
【0101】
具体的には、レコードr13の送信パケットS2Bによる遅延分の待機時間が8[msec]であるため、短縮させるパケット数で待機時間を分割する。具体的には、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4Bの各々の時間間隔を、4[msec](=8[msec]÷2個)分短縮させる。
【0102】
これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0103】
図12に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その3)を示している。図12において、レコードr12の応答パケットR1Bが試験開始後33[msec]後に試験装置100に受信されたものとする。すなわち、レコードr13の送信パケットS2Bは、前の送信パケットS1Bの送信から23[msec](=33[msec]−10[msec])経過時に送信される。
【0104】
したがって、レコードr13の経過時間項目には「33」が書き込まれ、予備系項目には「23」が書き込まれる。また、レコードr13の送信パケットS2A,S2Bの時間差は、13[msec](=23[msec]−10[msec])となるため、待機時間項目には「13」が待機時間として書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも13[msec]遅延していることがわかる。
【0105】
図10の例では、次の送信パケットS3Bを送信する時間間隔を遅延分短縮させることで調整したが、本例の場合、遅延分の待機時間(=13[msec])が、次の送信パケットS3Bを送信する時間間隔(=10[msec])よりも大きい。したがって、その次の送信パケットS3Bを送信する時間間隔(=10[msec])も利用する。
【0106】
送信パケットS2B,S3Bの時間間隔の総和は20[msec](=10[msec]+10[msec])であるため、遅延分の待機時間(=13[msec])を吸収することができる。したがって、図11に示した場合と同様、レコードr15の送信パケットS3Bとレコードr17の送信パケットS4Bの各々の時間間隔を、3.5[msec]{=(10[msec]+10[msec]−13[msec])÷2個}分短縮させる。
【0107】
これにより、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とが等しくなり、予備系サーバBを主系サーバAと同一負荷で試験することができる。
【0108】
図13に示したパケット情報DB800は、図9に示した変換後の送信パケットを予備系サーバBに送信したときの記憶内容例(その4)を示している。図12では、遅延分の待機時間が次の送信パケットS3Bを送信する時間間隔(=10[msec])よりも大きくても、その次の送信パケットS4Bを送信する時間間隔(=10[msec])を利用することで調整した。図13では、図5に示したように、それでもなお、調整できない場合の例である。
【0109】
具体的には、レコードr12の応答パケットR1Bが試験開始後46[msec]で受信されたものとする。この場合、レコードr13の送信パケットS2Bは、先行パケットS1Bの送信から36[msec](=46[msec]−10[msec])経過時に送信される。したがって、レコードr13の経過時間項目には「46」が書き込まれ、予備系項目には「36」が書き込まれる。
【0110】
また、レコード13の送信パケットS2A,S2Bの時間差は、26[msec](=36[msec]−10[msec])となるため、待機時間項目には「26」が書き込まれる。すなわち、予備系サーバBへの送信パケットS2Bの送信が、主系サーバAへの送信パケットS2Aの送信よりも26[msec]遅延していることがわかる。
【0111】
図13では、後続のすべての送信パケットS3B,S4Bの時間間隔の総和(20[msec]=10[msec]+10[msec])では、遅延分の待機時間26[msec]を吸収することができない。このような場合は、後続のすべての送信パケットS3B,S4Bの時間間隔を0[msec]以上の所定値とする。
【0112】
すなわち、遅延した送信パケットS2Bの送信から所定値の時間経過時に、送信パケットS3Bを送信し、送信パケットS3Bの送信から所定値の時間経過時に、送信パケットS4Bを送信する。本例では、所定値を0[msec]としたため、送信パケットS3B,S4Bは、送信パケットS2Bと同時に送信される。
【0113】
この場合、主系サーバAへの送信パケットS1A〜S4Aの時間間隔の総和と予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和とは、必ずしも等しくならない。図13の場合は、予備系サーバBへの送信パケットS1B〜S4Bの時間間隔の総和の方が大きくなるが、図13のように短縮化しない場合に比べて、予備系サーバBの負荷を主系サーバAの負荷に近づけることができる。したがって、性能評価の精度向上を図ることができる。
【0114】
(試験装置100の機能的構成例)
図14は、本実施の形態にかかる試験装置100の機能的構成例を示すブロック図である。図14において、試験装置100は、取得部1401と、解析部1402と、判断部1403と、生成部1404と、送信部1405と、受信部1406と、検出部1407と、算出部1408と、修正部1409と、比較部1410と、決定部1411と、出力部1412と、を備えている。
【0115】
なお、取得部1401〜出力部1412は、具体的には、たとえば、図7に示したROM702、RAM703、磁気ディスク705、光ディスク707などの記憶装置に記憶されたプログラムをCPU701に実行させることにより、または、I/F709により、その機能を実現する。
【0116】
取得部1401は、ネットワーク上を流れるパケットを取得する。具体的には、試験装置100に接続または内蔵されたタップでキャプチャされたパケットを取り込む。たとえば、図1〜図5を例に挙げると、取得部1401は、ネットワークNa上を流れるパケットS1A〜S4A,R1A〜R4Aを取得する。
【0117】
解析部1402は、取得部1401によって取得されたパケットを解析する。具体的には、取得されたパケットのヘッダを解析して、解析した情報を、パケット情報DB800に書き込む。
【0118】
判断部1403は、解析部1402による解析結果に基づいて、送信パケットごとに、主系サーバAからの応答パケットを必要とする特定のパケットであるか否かを判断する。具体的には、たとえば、対象となる送信パケットの先行パケットに対する応答パケットが3ウェイハンドシェイクのSYN/ACKパケットであるか否かを判断する。また、対象となる送信パケットの先行パケットに対する応答パケットに、Cookie情報が埋め込まれているか否かを判断する。
【0119】
判断部1403は、SYN/ACKパケットであったり、Cookie情報が埋め込まれていると判断された場合には、対象となる送信パケットのレコードにおける待機フラグ項目の値を「1」に設定する。たとえば、図8に示したように、レコードr2,r12の応答パケットについて待機フラグを「1」にする。
【0120】
生成部1404は、主系サーバAに送信された送信パケットのレコードを予備系サーバBに送信する送信パケットのレコードに変換することにより、予備系サーバBへの送信パケットを生成する。具体的には、たとえば、パケット情報DB800において、図9に示したような書き換えを実行することで、予備系サーバBに送信する送信パケットを生成する。
【0121】
送信部1405は、生成部1404によって生成された送信パケットを予備系サーバBに送信する。具体的には、たとえば、待機フラグが「0」である送信パケットについては、主系サーバAへの送信時間間隔にしたがって、生成部1404によって生成された送信パケットを予備系サーバBに送信する。
【0122】
一方、待機フラグが「1」である送信パケットについては、送信部1405は、パケット情報DB800の予備系項目に書き込まれた送信時間間隔で送信する。また、待機フラグが「0」であっても、遅延分の時間差の調整を受けた送信パケットについては、パケット情報DB800の予備系項目に書き込まれた送信時間間隔で送信する。
【0123】
すなわち、判断部1403により、送信パケットが特定のパケットであると判断された場合は、送信部1405は、送信パケットをその送信時間間隔にしたがって送信する。一方、判断部1403により、送信パケットが特定のパケットであると判断された場合に、送信部1405は、その送信時間間隔に従った送信タイミングを過ぎても、先行パケットに対する応答パケットの受信後に送信パケットを送信する。
【0124】
受信部1406は、予備系サーバBからの応答パケットを受信する機能を有する。受信部1406によって受信された応答パケットは、解析部1402により解析され、パケット情報DB800に格納される。
【0125】
検出部1407は、主系サーバAへ送信する送信時間間隔よりも長い送信時間間隔分の時間経過で予備系サーバBに送信された送信パケットを検出する。具体的には、パケット情報DB800の主系項目の送信時間間隔分の時間を経過しても送信されず、その後に、送信された送信パケットを検出する。たとえば、検出部1407は、図10〜図13に示したレコードr3,r13の送信パケットを検出する。
【0126】
算出部1408は、送信パケットの送信が待たされる待機時間を算出する。具体的には、たとえば、試験開始から対象となる送信パケットが送信されたときの経過時間から、1つ前の送信パケットの経過時間を引くことで、対象となる送信パケットの1つ前からの時間間隔が求められて、予備系項目に書き込まれる。算出部1408は、この予備系項目に書き込まれた時間間隔から主系項目の時間間隔を引くことにより、待機時間を算出する。算出された待機時間は、待機時間項目に書き込まれる。
【0127】
修正部1409は、待機時間が発生した場合に、後続の送信パケット群の中で待機フラグが「0」である送信パケットを選択し、その選択された送信パケットを送信する送信時間間隔から待機時間を減算することで修正する。具体的な修正例については、図3〜図5に示したようにおこなう。修正された時間間隔は、その選択された送信パケットについての予備系項目に書き込まれる。
【0128】
すなわち、修正部1409は、特定のパケットに対する先行パケットの送信と特定のパケットの送信との間の送信時間間隔(予備系サーバBへの送信時間間隔)が、先行パケットと特定のパケットに対応する2つのパケットの送信時間間隔(主系サーバAへの送信時間間隔)を超える場合に、特定のパケットと特定のパケットに後続して送信する後続パケットとの間の送信時間間隔(予備系サーバBへの送信時間間隔)を、特定のパケットと後続パケットに対応する2つのパケットの送信時間間隔(主系サーバAへの送信時間間隔)よりも短く修正することとなる。
【0129】
また、比較部1410は、指定された送信パケットSiB(ただし、i≠1)を送信する送信時間間隔diBとその応答パケットRiBを受信する送信時間間隔DiBとを比較する。なお、任意の送信パケットSiBを指定してもよいが、待機時間の影響を受けていない送信パケットSiBを指定するのが好ましい。待機時間の影響を受けていない送信パケットとは、たとえば、待機フラグがONでない送信パケットであったり、待機時間により時間間隔が短縮化されていない送信パケットである。
【0130】
このように、待機時間の影響を受けていない送信パケットSiBを指定することで、主系サーバAへの送信と同一時間間隔で送信されるため、主系サーバAへの送信を予備系サーバBに対しても忠実に再現することができる。したがって、性能評価を高精度におこなうことができる。
【0131】
決定部1411は、比較部1410によって比較された比較結果に基づいて、比較対象の装置の性能を相対的に決定する。具体的には、diB<DiBである場合、決定部1411は、主系サーバAが予備系サーバBよりも性能がよいと決定し、決定結果をメモリに書き込む。また、diB=DiBである場合、決定部1411は、主系サーバAと予備系サーバBとは同一性能であると決定し、決定結果をメモリに書き込む。さらに、diB>DiBである場合、試験装置100は、予備系サーバBが主系サーバAよりも性能がよいと決定し、決定結果をメモリに書き込む。
【0132】
また、出力部1412は、決定部1411によって決定された決定結果を出力する。具体的には、出力部1412は、決定結果をディスプレイ708に表示したり、プリンタ713に印刷出力したり、外部の装置に送信したりする。
【0133】
(試験処理手順)
つぎに、本実施の形態にかかる試験装置100による試験処理手順について、図15〜図21を用いて説明する。
【0134】
図15は、試験端末Cと主系サーバA間に流れるパケットの取得処理手順を示すフローチャートである。図15において、まず、試験装置100は、試験開始入力を受けると、計時を開始する(ステップS1501)。そして、パケットが取得(キャプチャ)されるのを待ち受ける(ステップS1502:No)。パケットが取得された場合(ステップS1502:Yes)、試験装置100は、パケット取得時の計時開始からの経過時間を検出する(ステップS1503)。そして、試験装置100は、取得したパケットのヘッダに記述されている宛先IPアドレスを確認する(ステップS1504)。
【0135】
宛先IPアドレスが主系サーバAのIPアドレスである場合(ステップS1504:第1送信先)、取得したパケットは、試験端末Cから主系サーバAへの送信パケットであることがわかる。この場合、試験装置100は、1つ前の主系サーバAへの送信パケットの送信からの時間間隔を算出する(ステップS1505)。具体的には、試験装置100は、今回取得した送信パケットの経過時間から1つ前の送信パケットの経過時間を引くことで、1つ前の主系サーバAへの送信パケットの送信からの時間間隔を算出する。
【0136】
このあと、試験装置100は、パケット情報DB800に新規レコードおよび送信パケット番号を設定し、その送信パケット番号、ステップS1503で検出された経過時間、ステップS1505で算出された時間間隔、ヘッダ、ペイロードを格納する(ステップS1506)。
【0137】
このあと、試験装置100は、判断部1403により、1つ前の送信パケットに対する応答パケットの情報が必要であるか否かを判断する(ステップS1507)。必要であると判断された場合(ステップS1507:Yes)、試験装置100は、待機フラグをON(1)に設定する(ステップS1508)。そして、試験装置100は、計時終了か否かを判断する(ステップS1509)。
【0138】
また、ステップS1507において、応答パケットの情報が必要ないと判断された場合(ステップS1507:No)、待機フラグをOFF(0)のまま、ステップS1509に移行する。
【0139】
また、ステップS1504において、宛先IPアドレスが試験端末CのIPアドレスである場合(ステップS1504:試験端末)、試験装置100は、パケット情報DB800に新規レコードを設定し、ステップS1503で検出された経過時間、ヘッダ、ペイロードを格納する(ステップS1510)。そして、ステップS1509に移行する。
【0140】
そして、ステップS1509において、試験装置100は、計時終了か否かを判断する(ステップS1509)。計時終了でない場合(ステップS1509:No)、ステップS1502に戻る。一方、計時終了である場合(ステップS1509:Yes)、パケットの取得処理を終了する。
【0141】
このように、図15に示したパケットの取得処理を試験装置100が実行することで、図8に示したように、パケット情報DB800にレコードr1〜r3,r11〜r18が設定されることとなる。
【0142】
(送信パケット変換処理)
つぎに、送信パケット変換処理について説明する。送信パケット変換処理は、図15によって、図8に示したようにパケット情報DB800に格納された送信パケットを宛先変換する処理である。
【0143】
図16は、送信パケット変換処理手順を示すフローチャートである。なお、送信パケット変換処理は、セッションIDごとにおこなうものとする。まず、試験装置100は、送信パケット番号iをi=1とし(ステップS1601)、i>nであるか否かを判断する(ステップS1602)。nは変換対象となるセッションIDでの送信パケット数である。
【0144】
i>nでない場合(ステップS1602:No)、試験装置100は、送信パケットSiAのレコードを指定し(ステップS1603)、宛先を予備系サーバBのIPアドレスに変換することにより、送信パケットSiBを生成する(ステップS1604)。なお、送信元についても、試験端末CのIPアドレスから試験装置100のIPアドレスに変換する。また、TCPヘッダ情報内のシーケンス番号や確認応答番号についても必要に応じて変換する。
【0145】
そして、iをインクリメントして(ステップS1605)、ステップS1602に戻る。ステップS1602において、i>nである場合(ステップS1602:Yes)、変換対象となるセッションIDにおける送信パケット変換処理を終了する。
【0146】
このように、図16に示した送信パケット変換処理を試験装置100が実行することで、図9に示したように、パケット情報DB800に宛先変換後の送信パケットのレコードr1,r3,r11,r13,r15,r17が設定されることとなる。なお、応答パケットのレコードr2,r12,r14,r16,r18は削除される。
【0147】
図17は、予備系サーバBへのパケット送信処理手順を示すフローチャートである。図17では、図9に示した状態のパケット情報DB800を用いる。まず、試験装置100は、送信パケット番号i=1、累積待機時間W=0、予備系サーバBへ送信する送信時間間隔diB=diAとする(ステップS1701)。diAは、宛先変換前において送信パケットSiAを主系サーバAに送信したときの時間間隔である。
【0148】
試験装置100は、試験を開始(計時開始)し(ステップS1702)、i>nであるか否かを判断する(ステップS1703)。i>nでない場合(ステップS1703:No)、試験装置100は、1つ前の送信パケットS(i−1)Bの送信(i=1の場合は、計時開始)から送信時間間隔diB分の時間を経過したか否かを判断する(ステップS1704)。ここで、判断基準となる送信時間間隔diBについて、通常はステップS1701での初期設定により、送信時間間隔diB=diAとなっているため、試験装置100は、送信時間間隔diB=diA分の時間が経過したか否かを判断する。一方、後述する図18および図19において、送信時間間隔diB=diAが変更された場合は、変更後の送信時間間隔diBを用いることとなる。
【0149】
ステップS1704において、試験装置100は、送信時間間隔diB分の時間を経過するのを待ち(ステップS1704:No)、送信時間間隔diB分の時間を経過した場合(ステップS1704:Yes)、試験装置100は、送信パケットSiBの待機フラグがON(1)であるか否かをパケット情報DB800の送信パケットSiBのレコードから判断する(ステップS1705)。待機フラグがONでない場合(ステップS1705:No)、待機する必要がないため、試験装置100は、送信時間間隔diB分の時間経過により送信パケットSiBを送信する(ステップS1706)。そして、iをインクリメントして(ステップS1707)、ステップS1703に戻る。
【0150】
一方、待機フラグがONである場合(ステップS1705:Yes)、送信時間間隔diB分の時間を経過したときに送信パケットSiBの待機時間wiの計時を開始する(ステップS1708)。待機時間wiは、対象となっている送信パケットSiB単独の待機時間である。累積待機時間Wの更新については、図18および図19において説明する。
【0151】
そして、待機時間wiの計時開始後、試験装置100は、1つ前の送信パケットS(i−1)Bに対する応答パケットR(i−1)Bを受信するのを待ち受ける(ステップS1709:No)。そして、試験装置100は、応答パケットR(i−1)Bが受信された場合(ステップS1709:Yes)、ステップS1706に移行して、送信パケットSiBを予備系サーバBに送信することとなる(ステップS1706)。なお、ステップS1703において、i>nである場合(ステップS1703:Yes)、予備系サーバBへのパケット送信処理を終了する。
【0152】
図18および図19は、つぎの送信パケットS(i+1)Bを送信する送信時間間隔d(i+1)Bの算出処理手順を示すフローチャートである。まず、図18において、試験装置100は、図17のステップS1708での待機時間wiの計時開始を検出すると(ステップS1801)、応答パケットR(i−1)Bの受信を待ち受け(ステップS1802:No)、応答パケットR(i−1)Bが受信された場合(ステップS1802:Yes)、試験装置100は、待機時間wiの計時開始から応答パケットR(i−1)Bの受信までの待機時間wiを取得する(ステップS1803)。
【0153】
そして、試験装置100は、今回取得した待機時間wiを累積待機時間Wに加算する(ステップS1804)。累積待機時間Wの初期値は、W=0であるため(ステップS1701)、最初に待機時間wiが取得されると、累積待機時間WはW=wiとなる。
【0154】
そして、試験装置100は、次に送信される送信パケットS(i+1)Bの待機フラグがON(1)であるか否かをパケット情報DB800の送信パケットS(i+1)Bのレコードから判断する(ステップS1805)。待機フラグがONである場合(ステップS1805:Yes)、iをインクリメントし(ステップS1806)、ステップS1801に戻る。
【0155】
一方、待機フラグがOFFである場合(ステップS1805:No)、試験装置100は、次に送信される送信パケットS(i+1)Bの送信時間間隔d(i+1)Bを、送信時間間隔d(i+1)Aから累積待機時間Wを減算した値に更新する(ステップS1807)。そして、試験装置100は、更新された送信時間間隔d(i+1)Bがd(i+1)B<0であるか否かを判断する(ステップS1808)。
【0156】
d(i+1)B<0でない場合(ステップS1808:No)、累積待機時間W=0として(ステップS1809)、ステップS1806に移行することとなる。そして、次に送信される送信パケットS(i+1)Bについては、図17のステップS1707でiがインクリメントされることで、ステップS1807で更新された送信時間間隔d(i+1)B分の時間経過により送信されることとなる。
【0157】
また、ステップS1808において、d(i+1)B<0である場合(ステップS1808:Yes)、送信パケットS(i+1)Bを現在対象となっている送信パケットSiBよりも先に送信することとなるため、図19においてさらに修正することとなる。
【0158】
図19では、ステップS1808:Yesのあと、k=1とする(ステップS1901)。kは、次の送信パケットS(i+1)B以降の送信パケット数となる。つぎに、試験装置100は、送信パケットS(i+1+k)Bが存在するか否かを判断する(ステップS1902)。送信パケットS(i+1+k)Bが存在しない場合(ステップS1902:No)、試験装置100は、送信パケットS(i+1)B〜S(i+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+k)Bを所定の送信時間間隔dp(≧0)に設定する(ステップS1903)。すなわち、このままでは、送信時間間隔d(i+1)B〜d(i+k)Bが負の値となるため、強制的に所定の送信時間間隔dp(≧0)にする。これにより、一連の処理を終了する。
【0159】
一方、ステップS1902において、送信パケットS(i+1+k)Bが存在する場合(ステップS1902:Yes)、試験装置100は、送信パケットS(i+1+k)Bの待機フラグがONであるか否かを、パケット情報DB800の送信パケットS(i+1+k)Bのレコードから判断する(ステップS1904)。
【0160】
待機フラグがONである場合(ステップS1904:Yes)、試験装置100は、送信パケットS(i+1)B〜S(i+1+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+1+k)Bを所定の送信時間間隔dp(≧0)に設定する(ステップS1905)。そして、累積待機時間WをW=0にして(ステップS1906)、ステップS1806に戻る。すなわち、このままでは、送信時間間隔d(i+1)B〜d(i+1+k)Bが負の値となるため、強制的に所定の送信時間間隔dp(≧0)にする。
【0161】
また、ステップS1904において、待機フラグがOFFである場合(ステップS1904:No)、試験装置100は、宛先変換前の送信パケットS(i+1)A〜S(i+1+k)Aの各送信時間間隔d(i+1)A〜d(i+1+k)Aをパケット情報DB800から読み出して、送信時間間隔d(i+1)A〜d(i+1+k)Aの総和ΣdjAを算出する(ステップS1907)。そして、試験装置100は、総和ΣdjAがΣdjA≧Wであるか否かを判断する(ステップS1908)。
【0162】
ΣdjA≧Wでない場合(ステップS1908:No)、累積待機時間Wを送信パケットS(i+1)B〜S(i+1+k)Bに分散できないため、kをインクリメントして(ステップS1912)、ステップS1902に戻る。
【0163】
一方、ΣdjA≧Wである場合(ステップS1908:Yes)、試験装置100は、総和ΣdjAから累積待機時間Wを減算した結果をkで割ることにより、送信時間間隔dqを算出する(ステップS1909)。そして、試験装置100は、送信パケットS(i+1)B〜S(i+1+k)Bを送信するそれぞれの送信時間間隔d(i+1)B〜d(i+1+k)Bを、送信時間間隔dqに設定する(ステップS1910)。これにより、各送信パケットS(i+1)B〜S(i+1+k)Bに対し、累積待機時間Wを均等に分散することができる。したがって、送信パケットを集中受信するといった予備系サーバBの過負荷を防止することができる。
【0164】
このあと、累積待機時間WをW=0にして(ステップS1911)、ステップS1806に戻る。このように、ステップS1807、S1903、S1905、S1911において、送信パケットを送信する時間間隔を初期設定されたdiAから更新することでステップS1704において、送信対象となった場合の送信時間間隔diBとして用いられる。したがって、図3〜図5に示したような予備系サーバBへの送信処理を実現することができる。
【0165】
図20は、応答パケットの格納処理手順を示すフローチャートである。試験装置100は、予備系サーバBに対して送信パケットSiBを送信するため、予備系サーバBからその応答パケットRiBを受信するのを待ち受ける(ステップS2001:No)。応答パケットRiBが受信された場合(ステップS2001:Yes)、試験装置100は、試験開始(ステップS1702)から応答パケットRiBを受信したときの経過時間を検出する(ステップS2002)。
【0166】
試験装置100は、1つ前の応答パケットR(i−1)Bを受信してから(i=1のときは、試験開始から)応答パケットRiBを受信するまでの送信時間間隔DiBを算出する(ステップS2003)。そして、試験装置100は、あらたにレコードを設定して、ステップS2002で検出された経過時間、ステップS2003で算出された送信時間間隔diB、応答パケットRiBのヘッダ、ペイロードを格納する(ステップS2004)。これにより、格納処理を終了する。この格納処理により、図10〜図13に示したように、応答パケットのレコードr2,r12,r14,r16,r18が格納されることとなる。
【0167】
(性能評価処理)
図21は、性能評価処理手順を示すフローチャートである。まず、試験装置100は、パケット情報DB800の中から任意の送信パケットSiB(ただし、i≠1)のレコードを指定する(ステップS2101)。そして、試験装置100は、指定送信パケットSiBの送信時間間隔diBをパケット情報DB800から取得する(ステップS2102)。
【0168】
また、試験装置100は、指定送信パケットSiBに対する応答パケットRiBを、パケット情報DB800のTCPヘッダ情報から特定し(ステップS2103)、特定された応答パケットRiBの送信時間間隔DiBを取得する(ステップS2104)。そして、試験装置100は、送信時間間隔diBと送信時間間隔DiBとを比較する(ステップS2105)。
【0169】
diB<DiBである場合(ステップS2105:diB<DiB)、試験装置100は、主系サーバAが予備系サーバBよりも性能がよいと決定し、決定結果をメモリに書き込む(ステップS2106)。また、diB=DiBである場合(ステップS2105:diB=DiB)、試験装置100は、主系サーバAと予備系サーバBとは同一性能であると決定し、決定結果をメモリに書き込む(ステップS2107)。
【0170】
さらに、diB>DiBである場合(ステップS2105:diB>DiB)、試験装置100は、予備系サーバBが主系サーバAよりも性能がよいと決定し、決定結果をメモリに書き込む(ステップS2108)。そのあと、試験装置100は、メモリに書き込まれた決定結果を出力する(ステップS2109)。
【0171】
なお、図21では、任意の送信パケットSiBを指定しているが、待機フラグがONでない送信パケットSiBや、予備系サーバBに送信する送信時間間隔diBが主系サーバAに送信する送信時間間隔diAと同じである(diB=diA)送信パケットSiBを指定するのが好ましい。このような送信パケットSiBは、待機時間の影響を受けていないため、待機時間の影響を受けている送信パケットSiBに比べて高精度な性能評価を行うことができる。
【0172】
以上説明したように、試験装置100、試験方法、および試験プログラムによれば、第1送信先(たとえば、主系サーバA)へのパケットの宛先を第2送信先(たとえば、予備系サーバB)に換え、第1送信先への送信と同一時間間隔で第2送信先に送信することになる。したがって、第2送信先に対し、あたかも第1送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0173】
また、1つ前の送信パケットに対する応答パケットの情報が必要な場合、対送信パケットの送信が応答パケットの受信まで待たされることとなり、第1送信先の時間間隔の総和よりも第2送信先の時間間隔の総和が大きくなり、同一負荷での再現試験ができない場合が生じる。
【0174】
このような場合でも、待機時間を計測して、計測された待機時間分を後続の送信パケットの時間間隔から減算することで、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和とを等しくすることができる。したがって、このような場合でも、第2送信先に対し、あたかも第1送信先の通信距離と同一距離であるかのように見せかけることで、同一負荷での再現試験をおこなうことが可能となる。
【0175】
また、待機時間が発生した場合に、後続する複数の送信パケットの時間間隔に待機時間を分散することで、後続する送信パケットの時間間隔を近づけすぎないようにする。これにより、第2送信先が後続する送信パケットを短時間で集中的に受信するのを防止でき、第2送信先の過負荷を防止することができる。
【0176】
また、後続パケットを含む後続パケット以降の一連のパケットにより待機時間を吸収できない場合には、当該一連のパケットの各々のパケットについての時間間隔を0以上の所定値とする。これにより、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和との差を極力抑えることができ、性能評価の劣化を防止することができる。また、第2送信先の時間間隔の総和のほうが小さくなった場合は、第2送信先に対する性能評価試験の高速化を図ることができる。
【0177】
また、待機フラグがONである送信パケットが連続する場合であっても、その送信パケットごとの待機時間の総和を求めることにより、後続の送信パケットの時間間隔で相殺することができる。
【0178】
なお、上述した実施の形態において、送信パケットの送信順序を守り、かつ、第1送信先の時間間隔の総和と第2送信先の時間間隔の総和とを等しくできれば、後続するいずれかの送信パケットの時間間隔を修正してもよい。たとえば、図3では、待機フラグがONである送信パケットS2Bの次の送信パケットS3Bの時間間隔を修正した例を説明したが、それ以降の送信パケットS4Bの時間間隔を修正することとしてもよい。
【0179】
以上のことから、本実施の形態にかかる試験プログラム、試験装置、および試験方法では、高品質な性能評価試験を効率的におこなうことができる。
【0180】
また、図23の場合、同一負荷で試験するには、図2に示したように、試験実施者は主系サーバAに対しパケットシーケンスのキャプチャをおこない、予備系サーバBのある現地(東京)に赴く。そして、キャプチャデータを基に同じシーケンスでパケットを送出する。したがって、試験実施者の移動などによる労力が発生し、試験実施者の負担が増大するという問題がある。しかしながら、本実施の形態によれば、試験実施者は移動しなくても高品質な試験を実施することができるため、試験実施者の負担を軽減することができる。
【0181】
なお、本実施の形態で説明した試験方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本試験プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本試験プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0182】
100 試験装置
1401 取得部
1402 解析部
1403 判断部
1404 生成部
1405 送信部
1406 受信部
1407 検出部
1408 算出部
1409 修正部
1410 比較部
1411 決定部
1412 出力部
A 主系サーバ
B 予備系サーバ
C 試験端末
【特許請求の範囲】
【請求項1】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項2】
送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って前記送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項3】
前記判断工程によって前記特定のパケットではないと判断された前記送信対象のパケットを、前記送信対象のパケットについての前記送信時間間隔に従った送信タイミングで前記第2送信先に送信する第3の送信工程を、前記コンピュータに実行させることを特徴とする請求項1または2に記載の試験プログラム。
【請求項4】
前記修正工程は、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔から前記先行パケットと前記特定のパケットに対応する2つのパケットの送信時間間隔を引いた待機時間が、前記特定のパケットと前記後続パケットに対応する2つのパケットの送信時間間隔以上である場合、該送信時間間隔を所定値にすることを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項5】
前記修正工程は、
前記特定のパケットと前記後続パケットに対応する2つのパケット以降のパケット対の各送信時間間隔を、前記待機時間に基づいて修正することを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項6】
前記第2送信先に連続して送信された2つのパケットの送信時間間隔と、該2つのパケットに対する前記第2送信先からの2つの応答パケットの応答時間間隔と、を比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第1送信先と前記第2送信先との相対的な性能を決定する決定工程と、
前記決定工程によって決定された決定結果を出力する出力工程と、
を前記コンピュータに実行させることを特徴とする請求項1〜5のいずれか一つに記載の試験プログラム。
【請求項7】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得手段と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断手段と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信手段と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正手段と、
前記修正手段で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信手段と、
を備えることを特徴とする試験装置。
【請求項8】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータが実行することを特徴とする試験方法。
【請求項1】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項2】
送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って前記送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータに実行させることを特徴とする試験プログラム。
【請求項3】
前記判断工程によって前記特定のパケットではないと判断された前記送信対象のパケットを、前記送信対象のパケットについての前記送信時間間隔に従った送信タイミングで前記第2送信先に送信する第3の送信工程を、前記コンピュータに実行させることを特徴とする請求項1または2に記載の試験プログラム。
【請求項4】
前記修正工程は、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔から前記先行パケットと前記特定のパケットに対応する2つのパケットの送信時間間隔を引いた待機時間が、前記特定のパケットと前記後続パケットに対応する2つのパケットの送信時間間隔以上である場合、該送信時間間隔を所定値にすることを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項5】
前記修正工程は、
前記特定のパケットと前記後続パケットに対応する2つのパケット以降のパケット対の各送信時間間隔を、前記待機時間に基づいて修正することを特徴とする請求項1〜3のいずれか一つに記載の試験プログラム。
【請求項6】
前記第2送信先に連続して送信された2つのパケットの送信時間間隔と、該2つのパケットに対する前記第2送信先からの2つの応答パケットの応答時間間隔と、を比較する比較工程と、
前記比較工程によって比較された比較結果に基づいて、前記第1送信先と前記第2送信先との相対的な性能を決定する決定工程と、
前記決定工程によって決定された決定結果を出力する出力工程と、
を前記コンピュータに実行させることを特徴とする請求項1〜5のいずれか一つに記載の試験プログラム。
【請求項7】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得手段と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断手段と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信手段と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正手段と、
前記修正手段で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信手段と、
を備えることを特徴とする試験装置。
【請求項8】
第1送信元から第1送信先へ順次送信された複数のパケットについて、送信時間間隔を取得する取得工程と、
前記複数のパケットのそれぞれの宛先を第2送信先に変更して得られた複数のパケットを取得した前記送信時間間隔に従って第2送信元から順次送信する際に、送信対象のパケットが、該送信対象のパケットに先行して送信した先行パケットに対する前記第2送信先からの応答パケットの受信を必要とする特定のパケットであるか否か判断する判断工程と、
前記送信対象のパケットが、前記特定のパケットであると判断した場合に、前記送信時間間隔に従った送信タイミングを過ぎても、前記先行パケットに対する応答パケットの受信後に前記送信対象のパケットを送信する第1の送信工程と、
前記先行パケットの送信と前記特定のパケットの送信との間の送信時間間隔が、前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該先行パケットと該特定のパケットに対応する2つのパケットの送信時間間隔を超える場合に、該特定のパケットと該特定のパケットに後続して送信する後続パケットとの間の送信時間間隔を前記第1送信元から前記第1送信先へ送信された前記複数のパケットのうち、該特定のパケットと該後続パケットに対応する2つのパケットの送信時間間隔よりも短く修正する修正工程と、
前記修正工程で修正された送信時間間隔で、前記後続パケットを前記第2送信元から前記第2送信先に送信する第2の送信工程と、
をコンピュータが実行することを特徴とする試験方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2012−34050(P2012−34050A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−169748(P2010−169748)
【出願日】平成22年7月28日(2010.7.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願日】平成22年7月28日(2010.7.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]