(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】パケット解析プログラムおよびパケット解析装置
(51)【国際特許分類】
H04L 43/0811 20220101AFI20230524BHJP
H04L 69/16 20220101ALI20230524BHJP
【FI】
H04L43/0811
H04L69/16
(21)【出願番号】P 2019114218
(22)【出願日】2019-06-20
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】飯塚 史之
(72)【発明者】
【氏名】上野 仁
【審査官】佐々木 洋
(56)【参考文献】
【文献】特開2001-197085(JP,A)
【文献】特開2018-137590(JP,A)
【文献】特開2018-113549(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
ノード間で通信されるパケットを取得し、
前記パケットに基づいて、コネクションが継続中である通信の情報を、コネクションの開始時刻の属する所定の時間範囲ごとに、継続中コネクションリストに追加し、コネクションが終了した通信の情報を前記継続中コネクションリストから除去し、
前記時間範囲に対応する周期で、コネクションが終了している通信の通信品質を解析し、前記継続中コネクションリストに追加されてから前記周期が所定回数以上経過しても前記継続中コネクションリストに存在するコネクションに関する通信の通信品質を解析
し、
前記継続中コネクションリストに存在するコネクションのうち、前記継続中コネクションリストに追加されてから前記周期が前記所定回数以上経過していないコネクションに関する通信の通信品質を解析しない、
処理を実行させるパケット解析プログラム。
【請求項2】
コネクションに対して計測される計測項目ごとの遅延時間が通信品質に与える影響度を示す影響度情報と、前回の時間範囲における前記計測項目ごとの更新の有無を示す更新管理情報とに基づいて、前記継続中コネクションリストに存在する複数のコネクションのうち、通信品質の解析対象のコネクションを選択する、
請求項1記載のパケット解析プログラム。
【請求項3】
前記影響度情報と前記更新管理情報とに基づいて、前記更新があった前記計測項目に対する前記影響度の和をコネクションごとに算出し、前記複数のコネクションのうち、前記影響度の和が大きいコネクションを優先して、通信品質の解析対象として選択する、
請求項2記載のパケット解析プログラム。
【請求項4】
前記計測項目に対する遅延時間の過去の測定値の分布に基づいて、前記分布に応じた統計値を算出し、前記統計値に応じて、前記影響度情報における前記計測項目の前記影響度を補正する、
請求項2または3記載のパケット解析プログラム。
【請求項5】
コネクションが終了している通信の通信品質の第1の解析の所要時間を予測し、前記所要時間と前記周期とに基づいて、前記第1の解析と前記継続中コネクションリストに存在するコネクションに関する通信の通信品質の第2の解析とが、次周期内に完了するように、前記継続中コネクションリストに存在する複数のコネクションのうち、通信品質の解析対象とするコネクションの数を決定する、
請求項1記載のパケット解析プログラム。
【請求項6】
前記継続中コネクションリストは、前記所定回数よりも多い数のサブリストであって、各周期に対応する複数の時間範囲に、順番に、巡回して対応付けられる複数のサブリストを有し、
前記周期が経過するたびに、コネクションが継続中である通信の情報の追加先のサブリストを順番に変更し、変更後のサブリストに存在するコネクションに関する通信の通信品質を解析する、
請求項1乃至5の何れか1項に記載のパケット解析プログラム。
【請求項7】
コネクションが継続中である通信の情報が記録される継続中コネクションリストを記憶する記憶部と、
ノード間で通信されるパケットを取得し、前記パケットに基づいて、コネクションが継続中である通信の情報を、コネクションの開始時刻の属する所定の時間範囲ごとに、前記継続中コネクションリストに追加し、コネクションが終了した通信の情報を前記継続中コネクションリストから除去し、前記時間範囲に対応する周期で、コネクションが終了している通信の通信品質を解析し、前記継続中コネクションリストに追加されてから前記周期が所定回数以上経過しても前記継続中コネクションリストに存在するコネクションに関する通信の通信品質を解析
し、前記継続中コネクションリストに存在するコネクションのうち、前記継続中コネクションリストに追加されてから前記周期が前記所定回数以上経過していないコネクションに関する通信の通信品質を解析しない処理部と、
を有するパケット解析装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はパケット解析プログラムおよびパケット解析装置に関する。
【背景技術】
【0002】
現在、種々の装置を含む情報処理システムが利用されている。各装置は、ネットワークや所定のケーブルなどを介して接続され相互に通信する。ネットワーク上でデータをパケット化して伝送するためのプロトコルとして、TCP(Transmission Control Protocol)/IP(Internet Protocol)がある。
【0003】
ここで、ネットワークで送受信されるパケットを収集し、当該パケットに基づいて通信品質を測定することが考えられている。例えば、キャプチャされたパケットの種別および到着時刻を属性情報としてコネクション単位で管理する通信品質測定装置の提案がある。提案の通信品質測定装置は、キャプチャされたパケットからクライアントの位置情報を抽出して属性情報に追加し、コネクションごとに、各パケットの属性情報に基づいて、当該位置情報に基づく位置ベースでクライアントの通信品質を分析する。
【0004】
また、異なるサイズや周波数(周波数帯)のセルが混在するHeterogeneous network環境において周波数バンドの選択を行う無線通信システムの提案もある。提案の無線通信システムでは、実際の無線リソース使用率が高い状況においても、アプリケーションが要求する無線リソース量に基づいて異周波数間HO(Hand Over)が実施される。これにより、周波数バンド間の要求リソース量の偏りを是正し、アプリケーションの集中により低下していたユーザ体感品質QoE(Quality of Experience)(例えば、IP電話や動画配信などのサービスに対して、ユーザが感じたサービス品質)が改善される。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-191440号公報
【文献】特開2017-92762号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のように、パケットを解析する装置により、ノード間で通信されるパケットに基づき、ネットワークの通信品質を解析することがある。近年では、パケット個々の分析による通信品質ではなく、1つのサービス単位での通信品質の解析が行われることがある。
【0007】
この場合に、例えばパケットを解析する装置により、所定の周期(統計周期)で、ユーザからのアクセス(すなわち、ノード間のコネクション)が終了したサービスに関して、ノード間のデータ転送時間やノード内での処理時間などを集計し、通信品質を解析する方法が考えられる。しかし、この方法では、ノード間の通信が長期間継続されてサービスアクセスが行われる場合に、当該ノード間のコネクションが終了せず、通信品質の解析が長期に亘って行われないことがあるという問題がある。
【0008】
1つの側面では、本発明は、統計周期をまたぐコネクションについても通信品質の解析を可能にするパケット解析プログラムおよびパケット解析装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、パケット解析プログラムが提供される。このパケット解析プログラムは、コンピュータに、ノード間で通信されるパケットを取得し、パケットに基づいて、コネクションが継続中である通信の情報を、コネクションの開始時刻の属する所定の時間範囲ごとに、継続中コネクションリストに追加し、コネクションが終了した通信の情報を継続中コネクションリストから除去し、時間範囲に対応する周期で、コネクションが終了している通信の通信品質を解析し、継続中コネクションリストに追加されてから当該周期が所定回数以上経過しても継続中コネクションリストに存在するコネクションに関する通信の通信品質を解析し、継続中コネクションリストに存在するコネクションのうち、継続中コネクションリストに追加されてから周期が所定回数以上経過していないコネクションに関する通信の通信品質を解析しない、処理を実行させる。
【0010】
また、1つの態様では、パケット解析装置が提供される。
【発明の効果】
【0011】
1つの側面では、統計周期をまたぐコネクションについても通信品質を解析できる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態のパケット解析装置を示す図である。
【
図2】第2の実施の形態の情報処理システムの例を示す図である。
【
図3】監視装置のハードウェア例を示すブロック図である。
【
図8】コネクション管理テーブルの例を示す図である。
【
図10】体感遅延計測出力情報の例を示す図である。
【
図11】継続中コネクションリストの例を示す図である。
【
図13】監視装置による体感遅延計測の流れの例を示す図である。
【
図14】パケット取得例を示すフローチャートである。
【
図20】第3の実施の形態の監視装置の機能例を示すブロック図である。
【
図21】更新ポイントパターンテーブルの例を示す図である。
【
図24】サーバデータ転送時間の分布の例を示す図である。
【
図25】更新ポイントパターンテーブルの更新例を示す図である。
【
図26】パケット取得例を示すフローチャートである。
【
図28】途中出力対象コネクション選択例を示すフローチャートである。
【
図29】更新ポイントパターン変更例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態のパケット解析装置を示す図である。
パケット解析装置10は、ノード20,30,40と、ネットワーク50を介して接続される。パケット解析装置10は、2つのノードの間(ノード間)で送受信されるパケットをネットワーク50から取得し、ノード間の通信の通信品質を測定する。例えば、ネットワーク50に属する中継装置が、ノード間で通信されるパケットを複製し、パケット解析装置10に送信し、複製されたパケットをパケット解析装置10が受信することで、パケット解析装置10によるパケットの取得が行われる。
【0015】
パケット解析装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
【0016】
記憶部11は、パケット解析装置10により取得されたパケットを記憶する。パケットには、当該パケットが取得された時刻(取得時刻)を示すタイムスタンプが付与されてもよい。記憶部11は、継続中コネクションリストL1を記憶する。継続中コネクションリストL1は、コネクションが継続中である通信の情報が記録される。記憶部11は、途中出力リストL2を記憶する。途中出力リストL2は、継続中のコネクションのうち、通信品質の解析対象とするコネクションに関する通信の情報が記録される。継続中コネクションリストL1および途中出力リストL2は、リスト構造をもつデータである。リスト構造では、複数のリスト要素がポインタで連結される。
【0017】
処理部12は、ノード間で通信されるパケットを取得し、記憶部11に格納する。処理部12は、取得したパケットに取得時刻を付与してもよい。
ここで、例えば、TCPでは、第1のノードから第2のノードへのSYNパケットの送信によりコネクションの確立が行われる。また、TCPでは、第1のノードから第2のノードへのFINパケットまたはRSTパケットの送信によりコネクションの切断(あるいは終了)が行われる。したがって、処理部12は、第1のノードから第2のノードへのSYNパケット(あるいはSYNパケットを含む両ノード間の一連のパケット群)を検出することで、第1,第2のノード間のコネクションの確立を検出し得る。また、処理部12は、第1のノードから第2のノードへのFINパケットまたはRSTパケット(あるいはFINパケットまたはRSTパケットを含む両ノード間の一連のパケット群)を検出することで、第1,第2のノード間のコネクションの終了を検出し得る。コネクションは、例えば、互いに通信するノードのIPアドレス、ポート番号およびプロトコル番号により識別される。互いに通信するノードのIPアドレス、ポート番号およびプロトコル番号の情報はパケットのヘッダに格納されている。
【0018】
処理部12は、取得したパケットに基づいて、コネクションが継続中である通信の情報を、当該コネクションの開始時刻の属する所定の時間範囲ごとに、継続中コネクションリストL1に追加する。継続中コネクションリストL1は、継続中のコネクションに関する通信の情報が記録される。処理部12は、コネクションが終了した通信の情報を、継続中コネクションリストL1から除去する。ただし、継続中コネクションリストL1から通信の情報が除去されても、通信品質の解析のために、当該通信の情報の内容は記憶部11に残される。
【0019】
処理部12は、時間範囲に対応する周期で、コネクションが終了している通信の通信品質を解析する。1つの時間範囲の長さは当該周期に相当する。解析対象となるコネクションは、例えば、直前の時間範囲で終了したコネクションである。また、処理部12は、時間範囲に対応する周期で、継続中コネクションリストL1に追加されてから当該周期が所定回数Nまでは継続中コネクションリストL1に存在するコネクションに関する通信の通信品質の解析を保留する。Nは1以上の整数である。
【0020】
継続中コネクションリストL1は、所定の時間範囲ごとのサブリストを含む。1つのサブリストの先頭要素は、indexにより区別される。継続中コネクションリストL1の例では、indexは、「0」、「1」、「2」である。この場合、継続中コネクションリストL1に属するサブリストの数は3である。継続中コネクションリストL1に属するサブリストの数は、継続中のコネクションが、時間範囲に対応する周期T(統計周期T)を何回またいだときに当該継続中のコネクションの通信品質を解析するか、に応じて決定される。すなわち、サブリストの数は上記の所定回数Nに応じて決定される。例えば、サブリストの数はN+1である。
図1の例では、所定回数N=2であり、サブリストの数は2+1=3である。
【0021】
サブリストの数が3の場合、コネクションの情報の追加先のサブリストは、3周期で一巡する。ある時間範囲でサブリストに追加されたコネクションの情報が、一巡した後にも該当のサブリストに残っている場合、当該コネクション(当該コネクションの情報)が周期Tを所定回数N+1以上またいで、継続中コネクションリストL1に存在していたことになる。処理部12は、サブリストが一巡したタイミングで、当該タイミングを起点とする時間範囲に対応するサブリストに残留していたコネクションの情報を、途中出力リストL2に移動させることで、当該コネクションを当該タイミングでの通信品質の解析対象とする。
【0022】
例えば、
図1では、処理部12によるコネクションC1,C2,C3の観測例を示すタイムチャートF1が示されている。タイムチャートF1では、左側から右側へ向かう方向が、時間の正方向である。時刻t0,t1,t2,t3,t4,t5,t6は、タイムチャートF1における時刻を示す。ここで、「時刻」は、ある時点を示すと考えてもよいし、当該時点を含む比較的微少な時間範囲を示すと考えてもよい。
【0023】
時刻t0,t2,t4,t6は、通信品質の解析タイミングである。解析タイミングは一定の周期Tで現れる。時間範囲Δt1は、時刻t0から時刻t2までの時間範囲である。時間範囲Δt2は、時刻t2から時刻t4までの時間範囲である。時間範囲Δt3は、時刻t4から時刻t6までの時間範囲である。時間範囲Δt1,Δt2,Δt3それぞれの長さは、周期Tに相当する。
【0024】
例えば、時間範囲Δt1は、継続中コネクションリストL1のindex「0」に対応する。時間範囲Δt2は、継続中コネクションリストL1のindex「1」に対応する。時間範囲Δt3は、継続中コネクションリストL1のindex「2」に対応する。
図1の例では、継続中コネクションリストL1のサブリストは3周期で一巡するので、時間範囲Δt3の次の時間範囲(時刻t6から始まる周期Tの長さの時間範囲)は、継続中コネクションリストL1のindex「0」に対応する。以後、同様に、以降の周期Tの長さの各時間範囲を、継続中コネクションリストL1のindex「1」、「2」、「0」、「1」、…のように巡回して対応付けることができる。
【0025】
継続中コネクションリストL1では、現在の時間範囲に対応するindexを管理するために、ポインタP1が用いられる。ポインタP1は、現在の時間範囲に対応するindexを示す情報である。例えば、時間範囲Δt1では、ポインタP1は、index「0」を示す。時間範囲Δt2では、ポインタP1は、index「1」を示す。時間範囲Δt3では、ポインタP1は、index「2」を示す。時間範囲Δt3の次の時間範囲では、ポインタP1は、index「0」を示す。
【0026】
ここで、時刻t0以前では、観測されたコネクションはないとする。時刻t0において、処理部12は、ポインタP1のポイント先をindex「0」に設定する。時刻t0以前では、観測されたコネクションはないので、途中出力リストL2は「null」である。「null」は、リスト要素が登録されていないことを示す。時刻t0では、処理部12は、通信品質の解析を行わない。
【0027】
例えば、時間範囲Δt1において、処理部12は、コネクションC1,C2が新たに確立されたことを検出する。すると、処理部12は、時間範囲Δt1に対応する、継続中コネクションリストL1のindex「0」のサブリストに、コネクションC1,C2の通信の情報を追加する。例えば、時間範囲Δt1に属する時刻t1では、index「0」のサブリストに、コネクションC1,C2の通信の情報が登録されている。「通信の情報」とは、例えば、該当のコネクションの通信品質の解析に用いられる情報であり、コネクションに関する両ノードのIPアドレスおよびポート番号などの通信識別情報や、データ転送時間および再送時間などの計測情報を含み得る。ここで、通信識別情報は、通信フロー(コネクション)の識別情報であり、例えば、次の5つの情報(5タプル)の組を含む。5つの情報は、送信元IPアドレス(Source IP)、宛先IPアドレス(Destination IP)、送信元ポート番号(Source Port)、宛先ポート番号(Destination Port)およびプロトコル(Protocol)である。あるいは、「通信の情報」は、通信識別情報や計測情報などが格納された、記憶部11の記憶領域を示すアドレスでもよい。なお、時刻t1における途中出力リストL2は「null」である。
【0028】
時間範囲Δt1の間に、コネクションC1は終了する。処理部12は、コネクションC1の終了を検出すると、継続中コネクションリストL1のindex「0」のサブリストからコネクションC1の情報を除去する。なお、コネクションC1に関する両ノードのIPアドレスおよびポート番号などの通信識別情報や、データ転送時間および再送時間などの計測情報は、時間範囲Δt1において終了したコネクションC1の通信の情報として、記憶部11に保持される。
【0029】
時刻t2において、処理部12は、ポインタP1のポイント先をindex「1」に設定する。時刻t2では途中出力リストL2は「null」である。処理部12は、時間範囲Δt1において終了済のコネクションC1に関する通信品質の解析を行い、解析結果を出力する。時刻t2において、コネクションC2は終了していない。このため、時刻t2において、処理部12は、コネクションC2に関する通信品質の解析を行わない。
【0030】
時間範囲Δt2において、処理部12は、コネクションC3が新たに確立されたことを検出する。すると、処理部12は、時間範囲Δt2に対応する、継続中コネクションリストL1のindex「1」のサブリストに、コネクションC3の通信の情報を追加する。例えば、時間範囲Δt2に属する時刻t3では、index「0」のサブリストにコネクションC2の通信の情報が登録されており、index「1」のサブリストにコネクションC3の通信の情報が登録されている。なお、時刻t3における途中出力リストL2は「null」である。
【0031】
時刻t4において、処理部12は、ポインタP1のポイント先をindex「2」に設定する。時刻t4では途中出力リストL2は「null」である。時刻t4において、コネクションC2,C3は終了していない。このため、処理部12は、時刻t4においてコネクションC2,C3に関する通信品質の解析を行わない。
【0032】
時間範囲Δt3の間に、コネクションC3は終了する。処理部12は、コネクションC3の終了を検出すると、継続中コネクションリストL1のindex「1」のサブリストからコネクションC3の情報を除去する。なお、コネクションC3に関する両ノードのIPアドレスおよびポート番号などの通信識別情報や、データ転送時間および再送時間などの計測情報は、時間範囲Δt3において終了したコネクションC3の通信の情報として、記憶部11に保持される。例えば、時間範囲Δt3に属する、当該除去後の時刻t5では、index「0」のサブリストにコネクションC2の通信の情報が登録されている。なお、時刻t5における途中出力リストL2は「null」である。
【0033】
時刻t6において、処理部12は、時間範囲Δt3において終了済のコネクションC3に関する通信品質の解析を行い、解析結果を出力する。
時刻t6において、処理部12は、ポインタP1のポイント先をindex「0」に設定する。ここで、継続中コネクションリストL1のindex「0」には、コネクションC2の通信の情報が登録されている。この場合、処理部12は、コネクションC2が継続中の状態のまま、周期Tを3(=所定回数N+1)回またいだと判断する。すると、処理部12は、継続中コネクションリストL1のindex「0」のサブリストにおけるコネクションC2の通信の情報を、途中出力リストL2に追加する。このとき、処理部12は、index「0」のサブリストからコネクションC2の通信の情報を除去する。そして、時刻t6において、処理部12は、途中出力リストL2に基づいて、コネクションC2における通信の通信品質を解析する。処理部12は、コネクションC2における通信の通信品質の解析結果を出力する。途中出力リストL2におけるコネクションC2の通信の情報は、コネクションC2が終了したときに削除される。
【0034】
途中出力リストL2に、コネクションC2が終了するまでコネクションC2の通信の情報が残るので、処理部12は、以降、コネクションC2が継続している間は、統計周期が来るたびにコネクションC2における通信の通信品質の解析結果を出力する。
【0035】
これにより、統計周期をまたぐコネクションについても通信品質を解析できる。
特に、統計周期を所定回数(例えば、2回)以上またいだコネクションを通信品質の解析対象とすることで、毎統計周期で継続中の全てのコネクションを解析対象とするよりも、パケット解析装置10の負荷を軽減できる。例えば、毎統計周期で継続中の全てのコネクションを解析対象とすることも考えられるが、この場合、パケット解析装置10が高負荷になり易くなる。すると、パケット解析装置10が、次の統計周期のタイミングまでに解析を完了できない可能性が高まり、最新の通信状況を把握できるまでに時間がかかる可能性がある。そこで、パケット解析装置10は、統計周期を所定回数以上またいだコネクションを通信品質の解析対象とすることで、パケット解析装置10の負荷を軽減して、解析の遅延を抑制し、最新の通信状況を迅速に把握できるようにする。
【0036】
また、パケット解析装置10は、各コネクションについて、継続中コネクションリストL1に追加後、統計周期が所定回数以上経過したか否かを判断するのみでよいので、解析対象を高速に決定できる。例えば、コネクションごとに開始後(確立後)からの経過時間を計測して閾値などと比較し、経過時間が閾値を超過したコネクションを解析対象とする方法も考えられる。しかし、この方法では、コネクションの数が増すほど、各コネクションの経過時間の計測や閾値との比較に伴う処理コストが増大し、解析対象の決定に時間がかかる。一方、パケット解析装置10では、上記のように、継続中コネクションリストL1を用いることで、コネクションごとに経過時間を計測して閾値と比較する方法よりも、解析対象の決定を高速に行える。
【0037】
なお、記憶部11は、コネクションに対して計測される計測項目ごとの遅延時間が通信品質に与える影響度を示す影響度情報と、前回の時間範囲における計測項目ごとの更新の有無を示す更新管理情報とを更に記憶してもよい。例えば、処理部12は、計測項目ごとの更新を、更新管理情報に記録する。計測項目としては、ユーザが体感する遅延時間を通信品質として計測するために用いられるノード間のデータ転送時間やノード内での処理時間などが考えられる。処理部12は、影響度情報と更新管理情報とに基づいて、継続中コネクションリストL1に追加されてから周期Tが所定回数経過しても継続中コネクションリストL1に存在する複数のコネクションのうち、通信品質の解析対象のコネクションを選択する。このようにすると、継続中のコネクションのうち、通信品質に与える影響度が高い測定項目を計測済のコネクションを、通信品質の解析対象として適切に選択可能になる。また、解析対象候補の複数の継続中コネクションを全て解析対象とするよりも、パケット解析装置10の処理負荷を更に軽減できる。
【0038】
一例として、処理部12は、影響度情報と更新管理情報とに基づいて、更新があった計測項目に対する影響度の和をコネクションごとに算出する。そして、処理部12は、解析対象候補の複数のコネクションのうち当該影響度の和が大きいコネクションを優先して、通信品質の解析対象として選択してもよい。
【0039】
また、処理部12は、計測項目に対する遅延時間の過去の測定値の分布に基づいて、当該分布に応じた統計値を算出し、当該統計値に応じて、影響度情報における計測項目の影響度を補正してもよい。例えば、計測項目ごとの通信品質に与える影響度は、常に同じであるとは限らない。一例として、あるノードでの処理時間を計測項目として考える場合、当該処理時間が増大すれば、当該処理時間が通信品質に与える影響度も増大する。そこで、処理部12は、計測項目に対する過去の測定値の実績により、当該測定値が増大傾向にあれば、該当の計測項目の影響度を大きくし、当該測定値が減少傾向にあれば該当の計測項目の影響度を小さくする。これにより、各ノードによる現状のサービス提供状況に則した影響度に更新でき、解析対象候補の複数の継続中コネクションのうち、実際に解析対象とするコネクションを適切に選択可能になる。
【0040】
更に、処理部12は、コネクションが終了している通信の通信品質の第1の解析の所要時間txを予測し得る。処理部12は、当該所要時間txと周期Tとに基づいて、解析対象候補の複数の継続中コネクションのうち、実際に通信品質の解析対象とするコネクションの数を決定してもよい。具体的には、処理部12は、第1の解析と継続中コネクションリストL1に存在するコネクションに関する通信の通信品質の第2の解析とが、次周期内に完了するように、通信品質の解析対象とするコネクションの数を決定してもよい。例えば、処理部12は、周期Tから所要時間txを減算した時間を、継続中コネクション1つ当たりの通信品質の解析処理の所要時間(例えば、実績から得られた所要時間)で割ることで、第2の解析の対象とするコネクションの数を決定し得る。これにより、次周期内で第1の解析と第2の解析とを完了できるようになり、解析結果の出力遅延が周期Tよりも小さくなる。このため、ユーザは、各周期における解析結果を、迅速に把握できるようになる。
【0041】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0042】
第2の実施の形態の情報処理システムは、監視装置100、クライアント200,200a,…およびサーバ300,300a,…を有する。監視装置100、クライアント200,200aおよびサーバ300,300aは、スイッチ51に接続されている。第2の実施の形態の情報処理システムの通信プロトコルには、TCP/IPが用いられる。
【0043】
スイッチ51は、クライアント200,200a,…およびサーバ300,300a,…の間で送受信されるパケットを中継する中継装置である。スイッチ51は、パケットのミラーリングを行う。すなわち、スイッチ51は、クライアント200,200a,…およびサーバ300,300a,…の間で送受信されるパケットを複製し、複製したパケットを監視装置100に送信する。
【0044】
監視装置100は、クライアント200,200a,…とサーバ300,300a,…との通信を監視し、クライアント-サーバ間の通信品質を解析するサーバコンピュータである。監視装置100は、スイッチ51により複製された、クライアント-サーバ間のパケットを受信することで、当該パケットの収集(パケットキャプチャ)を行う。監視装置100は、第1の実施の形態のパケット解析装置10の一例である。
【0045】
クライアント200,200a,…は、ユーザにより操作されるクライアントコンピュータである。ユーザは、クライアント200,200a,…を操作することで、サーバ300,300a,…により提供される各種のサービスを利用する。クライアント200,200a,…は、第1の実施の形態のノード20,30,40の一例である。
【0046】
サーバ300,300a,…は、所定のサービスを提供するサーバコンピュータである。サーバ300,300a,…は、クライアント200,200a,…からのアクセスに応じて、クライアント200,200a,…との間でサービスに関するデータ通信を行う。サーバ300,300a,…は、第1の実施の形態のノード20,30,40の一例である。
【0047】
ここで、クライアント200,200a,…およびサーバ300,300a,…の間の通信は、コネクション単位に区別される。監視装置100による通信品質の解析では、体感遅延計測が行われる。体感遅延計測はユーザが体感する遅延を計測する手法であり、主に、サービスに対するアクセスの開始から終了までの、コネクション単位の時間を計測する。監視装置100は、体感遅延計測に伴う解析処理の負荷を軽減する機能を提供する。
【0048】
なお、監視装置100は、体感遅延計測に加えて、ネットワーク(NW:NetWork)品質を示す指標(パケットロス数、RTT(Round Trip Time)およびスループット)の計測も行う。
【0049】
図3は、監視装置のハードウェア例を示すブロック図である。
監視装置100は、CPU101、RAM102、HDD103、出力IF(InterFace)104、入力IF105、媒体リーダ106および通信IF107を有する。なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0050】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、監視装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0051】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、監視装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0052】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、監視装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0053】
出力IF104は、CPU101からの命令に従って、監視装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0054】
入力IF105は、監視装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、監視装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0055】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0056】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0057】
通信IF107は、スイッチ51に接続され、スイッチ51を介して他のコンピュータと通信を行うインタフェースである。通信IF107は、例えば、スイッチ51とケーブルで接続される。
【0058】
クライアント200,200a,…およびサーバ300,300a,…も監視装置100と同様のハードウェアにより実現される。
以下の説明では、主に、クライアント200およびサーバ300に着目して説明するが、クライアント200a,…やサーバ300a,…についても同様である。
【0059】
図4は、サービス応答時間の分類例を示す図である。
クライアント200からサーバ300へのサービスアクセスに関するサービス応答時間は、サーバ処理時間ta,tc、クライアント処理時間tb、転送時間td,tfおよび再送時間teを含む。
【0060】
サーバ処理時間ta,tcは、クライアント200からのユーザリクエストに対してサーバ300内での処理に要した時間である。サーバ処理時間ta,tcは、サーバ300が、クライアント200からユーザリクエストを受信してから、クライアント200へデータ転送を開始するまでの時間である。
【0061】
クライアント処理時間tbは、サーバ300からのデータに対してクライアント200内での処理に要した時間である。クライアント処理時間tbは、クライアント200がサーバ300からデータを受信してから、サーバ300へ次のユーザリクエストの送信を開始するまでの時間である。
【0062】
転送時間td,tfは、サーバ300からクライアント200へのデータ転送に要した時間である。体感遅延計測では、転送時間として、サーバ300からクライアント200へのデータ転送だけでなく、クライアント200からサーバ300へのデータ転送に要した時間も集計され得る。転送時間は、データ転送が失敗した際のデータ再送に要する時間(再送時間)を含まない。
【0063】
再送時間teは、サーバ300からクライアント200へのデータ再送に要した時間である。体感遅延計測では、再送時間として、サーバ300からクライアント200へのデータ再送だけでなく、クライアント200からサーバ300へのデータ再送に要した時間も集計され得る。
【0064】
グラフG1は、サービス応答時間の内訳を例示する。グラフの縦軸が応答時間を示す。グラフG1の横軸は、クライアント200およびサーバ300の組を表す。サービス応答時間は、クライアント200およびサーバ300の間で計測されたサーバ処理時間、クライアント処理時間、転送時間および再送時間の合計である。このうち、転送時間および再送時間は、NW品質に起因する遅延となる。体感遅延計測では、こうしたNW品質に起因する遅延と、サーバ処理およびクライアント処理に起因する遅延とを分類して、計測し得る。
【0065】
図5は、サービス応答時間の集計例を示す図である。
監視装置100は、クライアント200およびサーバ300で送受信されるパケットの複製を取得し、当該パケットを解析することで、サーバ処理時間、クライアント処理時間、転送時間および再送時間を計測する。
【0066】
シーケンスF11は、クライアント200およびサーバ300の間のコネクションの一例を示す。コネクションは、クライアント200からサーバ300へのSYNパケットで開始され、クライアント200からサーバ300へのFINパケットまたはRSTパケットで終了される。この場合、サービス応答時間は、例えば、監視装置100により、SYNパケットが検出された時刻から、FINパケットまたはRSTパケットの1つ前のパケットが検出された時刻までの時間差である。
【0067】
シーケンスF12は、シーケンスF11に対して、監視装置100により観測される応答時間詳細内訳の一例を示す。
監視装置100は、クライアント200からサーバ300へ送信されたパケットの取得時刻と、当該パケットの次にサーバ300からクライアント200へ送信されたパケットの取得時刻との時間差により、サーバ処理時間ts_pを計測する。
【0068】
監視装置100は、サーバ300からクライアント200へ送信されたパケットの取得時刻と、当該パケットの次にクライアント200からサーバ300へ送信されたパケットの取得時刻との時間差により、クライアント処理時間tc_pを計測する。
【0069】
監視装置100は、サーバ300からクライアント200に連続して送信された複数のパケットの取得時刻の差(送信間隔)により、サーバ300のデータ送信間隔ts_dを計測する。
【0070】
監視装置100は、クライアント200からサーバ300に連続して送信された複数のパケットの取得時刻の差(送信間隔)により、クライアント200のデータ転送時間tc_dを計測する。
【0071】
監視装置100は、クライアント200からサーバ300に対して再送対象となったパケット(確認応答を適切に受信できなかったパケット)の取得時刻と、実際に再送されたパケットの取得時刻との時間差により、再送時間trを計算する。監視装置100は、サーバ300からクライアント200に対しても同様に再送時間trを計算する。
【0072】
グラフG2は、監視装置100によるクライアント200およびサーバ300の組に対する応答時間詳細集計の例を示す。応答時間詳細集計は、監視装置100によるクライアント200およびサーバ300の組に対するサービス応答時間の計測結果を示す。サービス応答時間は、サーバ処理時間T1、クライアント処理時間T2、転送時間T3および再送時間T4を有する。
【0073】
サーバ処理時間T1は、監視装置100により該当のコネクションに対して計測されたサーバ処理時間ts_pの合計である。クライアント処理時間T2は、監視装置100により該当のコネクションに対して計測されたクライアント処理時間tc_pの合計である。転送時間T3は、監視装置100により該当のコネクションに対して計測されたデータ転送時間tc_dとデータ転送時間ts_dとの合計である。再送時間T4は、監視装置100により該当のコネクションに対して計測された再送時間trの合計である。
【0074】
図6は、パケットのヘッダの例を示す図である。
図6(A)はIPヘッダ61(IPv4(IP version 4)のヘッダ)を例示する。
図6(B)はTCPヘッダ62を例示する。
図6(C)はUDP(User Datagram Protocol)ヘッダ63を例示する。
【0075】
IPヘッダ61は、プロトコル、送信元IPアドレスおよび送信先(宛先)IPアドレスのフィールドを含む。プロトコルは、上位層のプロトコル(TCPやUDPなど)を識別するためのプロトコル番号の情報(8ビット)である。送信元IPアドレスは、パケットの送信元装置のIPアドレスである。送信先IPアドレスは、パケットの送信先装置のIPアドレスである。なお、「データ」の箇所は、上位プロトコルで処理されるデータ領域に相当し、ペイロードと呼ばれる。
【0076】
TCPヘッダ62は、送信元ポート番号および送信先(宛先)ポート番号のフィールドを含む。送信元ポート番号は、パケットの送信元装置において、当該パケットを処理したアプリケーションプログラムに対応する情報である。送信先ポート番号は、パケットの送信先装置において、当該パケットを処理するアプリケーションプログラムに対応する情報である。
【0077】
UDPヘッダ63は、送信元ポート番号および送信先ポート番号のフィールドを含む。送信元ポート番号および送信先ポート番号の内容は、TCPヘッダ62における送信元ポート番号および送信先ポート番号と同様である。
【0078】
コネクションは、コネクションを確立している装置およびアプリケーションに対応するIPアドレスおよびポート番号の組により区別される。ここで、コネクション型プロトコルであるTCPのコネクションの確立(開始)や終了は、前述のように、SYNパケットやFINパケット/RSTパケットによって特定され得る。また、コネクションレス型プロトコルであるUDPに対しても、パケット解析により一連の通信単位(便宜的にコネクションと称する)を追跡し得る。例えば、ある送信元装置/送信元ポート番号から送信先装置/送信先ポート番号へUDPのパケットが送信された後、同じ送信元装置/送信元ポート番号から、同じ送信先装置/送信先ポート番号へのUDPのパケットが既定時間内に連続して送信されることがある。この場合、監視装置100は、連続して送信されたUDPの複数のパケットを同一のコネクションに分類することが考えられる。ただし、監視装置100は、他の方法によりUDPに対するコネクションを特定してもよい。
【0079】
図7は、監視装置の機能例を示すブロック図である。
監視装置100は、記憶部120、パケット情報抽出部150、L4(Layer 4)解析部160、統計処理部170および統計情報出力部180を有する。記憶部120は、RAM102またはHDD103の記憶領域を用いて実現される。パケット情報抽出部150、L4解析部160、統計処理部170および統計情報出力部180は、RAM102に記憶されたパケット解析プログラムをCPU101が実行することで実現される。なお、
図7では、構成間の関係を分かり易くするため、出力IF104および通信IF107も図示している。
【0080】
記憶部120は、L4解析部160および統計処理部170の処理に用いられるデータを記憶する。記憶部120は、共有メモリ121およびコネクション管理テーブル122を有する。
【0081】
共有メモリ121は、RAM102の所定の記憶領域である。共有メモリ121は、L4解析部160および統計処理部170により並行して同時にアクセス可能である。共有メモリ121は、解析面130および統計面140を有する。
【0082】
解析面130は、キャプチャされたパケットに基づいて計測されたサーバ処理時間、クライアント処理時間、転送時間および再送時間などを示す計測情報をコネクションごとに保持する。
【0083】
統計面140は、統計周期ごとの統計処理に用いられる計測情報や統計処理結果を示す出力情報を保持する。統計処理では、コネクションごとのサーバ処理時間、クライアント処理時間、転送時間および再送時間の計測情報を集計する(例えば、各計測項目の測定値を出力形式とする、各計測項目の測定値を合計して
図5で例示した応答時間を算出するなど)。また、統計処理では、コネクションごとに集計した計測情報に対して、更に、複数のコネクションに亘って集計が行われることもある。統計周期は、監視装置100に予め設定される。例えば、統計周期は60秒である。ただし、統計周期は、60秒より短くてもよいし、60秒より長くてもよい。ここで、体感遅延計測に関する「統計処理」は、第1の実施の形態における通信品質の解析に相当する。
【0084】
解析面130は、NW解析面131、体感遅延解析面132、継続中コネクションリスト133および途中出力リスト134を有する。
NW解析面131は、NW品質の計測情報を保持する。NW品質の計測情報は、送受信されたデータのバイト数、パケット数、パケットロス数、および、RTTの情報である。
【0085】
体感遅延解析面132は、体感遅延計測に用いられるサーバ処理時間、クライアント処理時間、転送時間および再送時間の計測情報を保持する。
継続中コネクションリスト133は、現在継続中である(終了していない)コネクションの情報を保持する。
【0086】
途中出力リスト134は、継続中であるコネクションのうち、今回の統計処理のタイミングで統計処理の対象とするコネクションの情報(コネクション情報)を保持する。
統計面140は、NW統計面141および体感遅延統計面142を有する。
【0087】
NW統計面141は、NW品質の統計処理に用いられる、NW品質に関する計測情報、および、NW品質の統計処理結果を示す出力情報を保持する。NW品質の出力情報は、例えば、サブネットに属するコネクションを全て集計して、当該サブネット単位でのバイト数、パケット数、パケットロス数、および、RTTの情報を含む。
【0088】
体感遅延統計面142は、体感遅延計測に用いられる計測情報および体感遅延計測における統計処理結果を示す出力情報を保持する。体感遅延計測の出力情報は、例えば、コネクションごとの体感遅延計測に関する各計測項目の集計結果を、コネクション情報と合わせた出力形式とした情報である(各計測項目の合計により求められる応答時間を含んでもよい)。あるいは、前述のように、統計処理において複数のコネクションに亘り集計が行われる場合、体感遅延計測の出力情報は、当該複数のコネクションに亘って集計された、サーバ処理時間、クライアント処理時間、転送時間および再送時間の情報を含んでもよい。
【0089】
コネクション管理テーブル122は、キャプチャされたパケットに基づいて検出されたコネクション情報を管理するためのテーブルである。コネクション管理テーブル122は、L4解析部160により更新され、統計処理部170により参照される。
【0090】
パケット情報抽出部150は、通信IF107を介して、クライアント-サーバ間で送受信されるパケットを取得する。パケット情報抽出部150は、取得したパケットのIPヘッダ61やTCPヘッダ62またはUDPヘッダ63に含まれるIPアドレスやポート番号などの情報を抽出し、パケット情報を生成する。パケット情報は、パケットから抽出された送信元IPアドレス/送信元ポート番号、送信先IPアドレス/送信先ポート番号、プロトコル番号や、パケット情報抽出部150により付与されたパケットの取得時刻(タイムスタンプ)の情報を含む。
【0091】
L4解析部160は、パケット情報抽出部150により抽出されたパケット情報に基づいて、該当のパケットに対応するコネクション情報をコネクション管理テーブル122に登録する。L4解析部160は、当該パケット情報に基づいて、NW品質に関するNW品質計測情報(前述のバイト数、パケット数、パケットロス数およびRTT)を生成する。NW品質計測情報は、NW解析面131に格納される。また、L4解析部160は、体感遅延解析部161を有する。
【0092】
体感遅延解析部161は、パケット情報抽出部150により抽出されたパケット情報に基づいて、体感遅延計測に関する体感遅延計測情報(前述のサーバ処理時間、クライアント処理時間、転送時間および再送時間などを含む)を生成する。体感遅延計測情報は、体感遅延解析面132に格納される。体感遅延解析部161は、リスト制御部161aを有する。リスト制御部161aは、継続中コネクションリスト133を更新する。
【0093】
統計処理部170は、所定の統計周期で発生するタイミングごとに、NW解析面131に格納されたNW品質計測情報を、NW統計面141に移動させ(NW解析面131とNW統計面141とをスワップさせ)、NW品質計測情報に基づく統計処理を実行する。そして、統計処理部170は、NW品質計測情報に基づく統計処理の結果であるNW品質出力情報を生成する。
【0094】
また、統計処理部170は、当該統計周期で発生するタイミングごとに、体感遅延解析面132に格納された体感遅延計測情報を、体感遅延統計面142に移動させ、体感遅延計測情報に基づく統計処理を実行する。そして、統計処理部170は、体感遅延計測情報に基づく統計処理の結果である体感遅延計測出力情報を生成する。統計処理部170は、リスト制御部171を有する。
【0095】
体感遅延計測情報に対する統計処理について、統計処理部170は、通常、前回の統計処理から今回の統計処理までの時間範囲内で終了したコネクションを処理対象とする。すなわち、統計処理部170は、通常、今回の統計処理のタイミングで継続中のコネクションについては、体感遅延計測における統計処理の対象外とする。ただし、統計処理部170は、今回の統計処理のタイミングで継続中のコネクションであっても、途中出力リスト134に登録されているコネクションについては、処理対象とする。
【0096】
リスト制御部171は、統計周期ごとに、継続中コネクションリスト133および途中出力リスト134を更新する。リスト制御部171は、継続中コネクションリスト133に追加されてから、統計周期が所定回数N以上経過しても継続中コネクションリスト133に残留しているコネクションの情報を、途中出力リスト134に追加することで、統計処理の対象となるようにする。所定回数Nは、1以上の整数であり、システム管理者により予め設定される。
【0097】
なお、統計処理部170は、NW品質の統計処理については、今回の統計処理のタイミングで該当のコネクションが終了しているか否かに拘わらず、NW品質の統計処理を行う。NW品質の統計処理では、ネットワーク経路やクライアント-サーバ間のNW品質が分かればよいので、コネクションごとの集計にこだわらなくてもよいからである(例えば、単位時間で集約された統計結果が分かればよいため)。
【0098】
ここで、統計処理部170による統計処理では、基本的には、統計処理のタイミングごとに、L4解析部160が解析面130に書込んだNW品質計測情報および体感遅延計測情報を統計面140に読込み、コネクション情報などを合わせた出力形式にして出力する。ただし、統計処理部170は、次の処理を更に実行し得る。
【0099】
第1に、統計処理部170は、出力情報の圧縮を行い得る。すなわち、コネクションごとに解析結果(統計処理結果)の出力を行うと出力量が多くなり過ぎることがあるため、統計処理部170は、統計処理の対象期間内の複数のコネクションの出力情報をまとめて一出力とする。例えば、統計処理部170は、送信元ポートだけが異なるコネクション(送信元/送信先IP、プロトコル番号および送信先ポートが同じ)をまとめることが考えられる(同一サービスに複数回アクセスするような場合、送信元ポートだけが変わる場合が多いため)。
【0100】
統計処理部170は、体感遅延計測出力情報として、複数のコネクション間の測定時間項目ごとの合計値あるいは最大値や平均値など(設定により変更可)を計算して出力してもよい。統計処理部170は、NW品質出力情報として、該当のクライアント-サーバ間の送受信バイト数の合計値、パケット数の合計値、パケットロス数の合計値や、RTTなどの平均値を出力してもよい。
【0101】
第2に、統計処理部170は、コネクション以外の単位でNW品質計測情報の集計を行い得る。例えば、統計処理部170は、サブネットごとに、当該サブネットに属するコネクションに関する送受信バイト数、パケット数、パケットロス数、RTTを全て集計して出力してもよい。
【0102】
統計情報出力部180は、統計処理部170により生成されたNW品質出力情報および体感遅延計測出力情報を、出力IF104を介して、ディスプレイ111に出力し、NW品質の解析結果および体感遅延計測の解析結果を表示させる。統計情報出力部180は、通信IF107を介して、他のコンピュータや外部記憶装置などに、NW品質出力情報および体感遅延計測出力情報を出力してもよい。
【0103】
次に、監視装置100による体感遅延計測に用いられるデータのデータ構造例を説明する。
図8は、コネクション管理テーブルの例を示す図である。
【0104】
コネクション管理テーブル122は、コネクションID(IDentifier)、送信元IPアドレス、送信先IPアドレス、プロトコル番号、送信元ポート番号、送信先ポート番号および体感遅延計測情報ポインタの項目を含む。
【0105】
コネクションIDの項目には、コネクションの識別情報であるコネクションIDが登録される。送信元IPアドレスの項目には、サービスへのアクセス元であるクライアントのIPアドレスが登録される(ただし、該当のコネクションのパケットには、当該IPアドレスが送信先となるパケットも含まれる)。送信先IPアドレスの項目には、サービスのアクセス先であるサーバのIPアドレスが登録される(ただし、該当のコネクションのパケットには、当該IPアドレスが送信元となるパケットも含まれる)。プロトコル番号の項目には、IPヘッダ61のプロトコル番号が登録される。例えば、プロトコル番号「6」はTCPを示す。プロトコル番号「17」はUDPを示す。送信元ポート番号の項目には、サービスへのアクセス元であるクライアントのポート番号が登録される(ただし、該当のコネクションのパケットには、当該ポート番号が送信先となるパケットも含まれる)。送信先ポート番号の項目には、サービスのアクセス先であるサーバのポート番号が登録される(ただし、該当のコネクションのパケットには、当該ポート番号が送信元となるパケットも含まれる)。体感遅延計測情報ポインタの項目には、該当のクライアント-サーバ間における体感遅延計測情報の格納先アドレスを示すポインタが登録される。
【0106】
例えば、コネクション管理テーブル122には、コネクションIDが「CON1」、送信元IPアドレスが「10.20.30.40」、送信先IPアドレスが「10.20.30.50」、プロトコル番号が「6」、送信元ポート番号が「2000」、送信先ポート番号が「20」、体感遅延計測情報ポインタが「*P1」というレコードが登録されている。コネクション管理テーブル122には、他のコネクション(コネクションID「CON2」のコネクションやコネクションID「CON3」のコネクションなど)の情報も登録される。
【0107】
図9は、体感遅延計測情報の例を示す図である。
体感遅延計測情報132aは、体感遅延解析面132に格納される。体感遅延計測情報132aは、コネクションID、開始時刻、終了時刻、コネクション確立時間、SYN再送時間、クライアント処理時間、サーバ処理時間、サーバデータ転送時間、サーバデータ再送時間、クライアントデータ転送時間およびクライアントデータ再送時間の項目を含む。なお、体感遅延計測情報132aは、クライアントにおけるユーザ操作の待機時間を示すアイドリングの時間(アイドル時間)など、他の項目を更に含んでもよい。
【0108】
コネクションIDの項目には、コネクションIDが登録される。開始時刻の項目には、コネクションの開始時刻が登録される。終了時刻の項目には、コネクションの終了時刻が登録される。コネクション確立時間の項目には、コネクションの確立に要した時間が登録される。なお、時間の単位は、マイクロ秒(μs)(他の項目も同様)である。SYN再送時間の項目には、SYNパケットの再送(SYN再送)に要した時間が登録される。クライアント処理時間の項目には、クライアント処理時間が登録される。サーバ処理時間の項目には、サーバ処理時間が登録される。サーバデータ転送時間の項目には、サーバによるデータの転送時間が登録される。サーバデータ再送時間の項目には、サーバによるデータの再送時間が登録される。クライアントデータ転送時間の項目には、クライアントによるデータの転送時間が登録される。クライアントデータ再送時間の項目には、クライアントによるデータの再送時間が登録される。
【0109】
例えば、体感遅延計測情報132aには、コネクションIDが「CON1」、開始時刻が「0:00:05」、終了時刻が「-」(「-」(ハイフン)は設定なしを示す)、コネクション確立時間が「5」(μs)、SYN再送時間が「0」(μs)、クライアント処理時間が「10」(μs)、サーバ処理時間が「80」(μs)、サーバデータ転送時間が「10」(μs)、サーバデータ再送時間が「0」(μs)、クライアントデータ転送時間が「-」(クライアントからのデータ転送未発生)、クライアントデータ再送時間が「-」(クライアントによるデータ再送未発生)というレコードが登録されている。終了時間「-」は、該当のコネクションが未だ終了していないことを示す。
【0110】
体感遅延計測情報132aには、他のコネクションに関するレコードも登録される。
また、体感遅延計測情報132aの各コネクションに対応するレコードは、当該レコードの先頭アドレスを示すポインタによって特定される。例えば、コネクションID「CON1」に対応するレコード「P1」の先頭アドレスあるいは当該先頭アドレスを示すポインタは、「*P1」と表される。
【0111】
図10は、体感遅延計測出力情報の例を示す図である。体感遅延計測出力情報142aは、体感遅延統計面142に格納される。体感遅延計測出力情報142aは、出力時刻、送信元IPアドレス、送信元IPアドレス、プロトコル番号、送信元ポート番号、送信先ポート番号、開始時刻、終了時刻、コネクション確立時間、SYN再送時間、クライアント処理時間、サーバ処理時間、サーバデータ転送時間、サーバデータ再送時間、クライアントデータ転送時間およびクライアントデータ再送時間の項目を含む。なお、体感遅延計測出力情報142aは、クライアントにおけるユーザ操作の待機時間を示すアイドリングの時間など、他の項目を更に含んでもよい。
【0112】
出力時刻の項目には、該当のレコードが出力された時刻が登録される。送信元IPアドレスの項目には、サービスへのアクセス元のクライアントのIPアドレスが登録される。送信先IPアドレスの項目には、サービスのアクセス先のサーバのIPアドレスが登録される。プロトコル番号の項目には、プロトコル番号が登録される。送信元ポート番号の項目には、サービスへのアクセス元のクライアントのポート番号が登録される。送信先ポート番号の項目には、サービスのアクセス先のサーバのポート番号が登録される。開始時刻の項目には、コネクションの開始時刻が登録される。終了時刻の項目には、コネクションの終了時刻が登録される。コネクション確立時間の項目には、コネクションの確立に要した時間が登録される。なお、時間の単位は、マイクロ秒(μs)(他の項目も同様)である。SYN再送時間の項目には、SYN再送に要した時間が登録される。クライアント処理時間の項目には、クライアント処理時間が登録される。サーバ処理時間の項目には、サーバ処理時間が登録される。サーバデータ転送時間の項目には、サーバによるデータの転送時間が登録される。サーバデータ再送時間の項目には、サーバによるデータの再送時間が登録される。クライアントデータ転送時間の項目には、クライアントによるデータの転送時間が登録される。クライアントデータ再送時間の項目には、クライアントによるデータの再送時間が登録される。
【0113】
例えば、体感遅延計測出力情報142aには、出力時刻が「0:01:00」、送信元IPアドレスが「10.20.30.40」、送信先IPアドレスが「10.20.30.50」、プロトコル番号が「6」、送信元ポート番号が「2000」、送信先ポート番号が「20」、開始時刻が「0:00:05」、終了時刻が「-」、コネクション確立時間が「5」(μs)、SYN再送時間が「0」(μs)、クライアント処理時間が「60」(μs)、サーバ処理時間が「80」(μs)、サーバデータ転送時間が「10」(μs)、サーバデータ再送時間が「0」(μs)、クライアントデータ転送時間が「10」(μs)、クライアントデータ再送時間が「0」(μs)というレコードが登録されている。
【0114】
体感遅延計測出力情報142aには、他のコネクションに関するレコードも登録される。
図11は、継続中コネクションリストの例を示す図である。
【0115】
継続中コネクションリスト133は、現在周期用登録位置情報133aおよびインデクス管理データ133bおよびリスト要素133c,133d,133eを有する。
現在周期用登録位置情報133aは、現在の統計周期の時間範囲におけるサブリストの位置を示すインデクスである。ここで、継続中コネクションリスト133は、統計周期の時間範囲に対応付けられたサブリストを有する。サブリストは、該当の時間範囲におけるコネクションの情報をリスト要素として、当該リスト要素をポインタによって連結した情報である。
【0116】
インデクス管理データ133bは、インデクス、リスト先頭ポインタおよびリスト末端ポインタを保持する。リスト先頭ポインタは、当該インデクスに対応するサブリストの先頭のリスト要素を示すポインタである。リスト末端ポインタは、当該インデクスに対応するサブリストの末端のリスト要素を示すポインタである。
【0117】
例えば、インデクス管理データ133bには、インデクス「0」、「1」、「2」が予め登録されている。インデクス管理データ133bにおけるインデクスの数は、前述の所定回数Nよりも大きくなるように予め定められる。例えば、インデクスの数は、N+1である。この場合、N=2とすると、インデクスの数は3である。インデクス管理データ133bには、インデクスごとに、リスト先頭ポインタとリスト末端ポインタとが登録される。該当のインデクスのサブリストに属するリスト要素が存在しない場合、リスト先頭ポインタおよびリスト末端ポインタは、設定なし(設定なしを「-」(ハイフン)により表す)となる。インデクス管理データ133bの例では、インデクス「1」および「2」に対応するリスト要素は存在していない。
【0118】
リスト要素133c,133d,133eは、インデクス「0」のサブリストに属するリスト要素である。
図11では、インデクス「0」に対して3つのリスト要素が存在している場合を例示しているが、インデクス「0」に対してリスト要素がないこともあるし、1つ、2つまたは4つ以上のリスト要素が存在することもある。
【0119】
リスト要素133c,133d,133eそれぞれは、体感遅延計測情報アドレス、前itemアドレスおよび次itemアドレスを保持する。体感遅延計測情報アドレスは、継続中のコネクションに関して取得されている体感遅延計測情報を示すポインタである。前itemアドレスは、該当のリスト要素の前に連結されたリスト要素を示すポインタである。該当のリスト要素が先頭である場合、前itemアドレスは設定なし「-」となる。次itemアドレスは、該当のリスト要素の次に連結されたリスト要素を示すポインタである。該当のリスト要素が末端である場合、次itemアドレスは設定なし「-」となる。
【0120】
例えば、継続中コネクションリスト133において、現在周期用登録位置情報133aは、インデクス「1」を示す。すなわち、現在の統計周期の時間範囲では、インデクス「1」のサブリストに対して、コネクションの情報を追加することを示す。
【0121】
ここで、リスト制御部171は、現在周期用登録位置情報133aが示すインデクスを、統計周期が経過するごとに巡回させる。例えば、リスト制御部171は、統計処理を開始する第1のタイミングにおいて、現在周期用登録位置情報133aをインデクス「0」に設定する。リスト制御部171は、第1のタイミングから統計周期に相当する時間が経過して次の統計処理を開始する第2のタイミングにおいて、現在周期用登録位置情報133aをインデクス「1」に設定する。リスト制御部171は、第2のタイミングから統計周期に相当する時間が経過して次の統計処理を開始する第3のタイミングにおいて、現在周期用登録位置情報133aをインデクス「2」に設定する。リスト制御部171は、第3のタイミングから統計周期に相当する時間が経過して次の統計処理を開始する第4のタイミングにおいて、現在周期用登録位置情報133aをインデクス「0」に設定する。以降、同様に、統計周期が経過するごとに、リスト制御部171は、現在周期用登録位置情報133aのインデクスを「1」、「2」、「0」、「1」、…と巡回させて、変更する。このように、リスト制御部171は、現在周期用登録位置情報133aにおけるインデクスを統計周期が経過するごとに巡回させる。
【0122】
また、インデクス管理データ133bの例では、インデクス「0」に対して、リスト先頭ポインタ「*item1」、および、リスト末端ポインタ「*item3」が登録されている。ここで、「item1」は、リスト要素133cを示すものとする。「item2」は、リスト要素133dを示すものとする。「item3」は、リスト要素133eを示すものとする。この場合、インデクス「0」に対応する先頭のリスト要素は、リスト要素133cである。また、インデクス「0」に対応する末端のリスト要素は、リスト要素133eである。
【0123】
リスト要素133cでは、体感遅延計測情報アドレスが「*p5」、前itemアドレスが「-」、次itemアドレスが「*item2」である。「*item2」はリスト要素133dを示すので、リスト要素133cの次に連結されたリスト要素は、リスト要素133dである。
【0124】
リスト要素133dでは、体感遅延計測情報アドレスが「*p4」、前itemアドレスが「*item1」、次itemアドレスが「*item3」である。「*item3」はリスト要素133eを示すので、リスト要素133dの次に連結されたリスト要素は、リスト要素133eである。
【0125】
リスト要素133eでは、体感遅延計測情報アドレスが「*p3」、前itemアドレスが「*item2」、次itemアドレスが「-」である。
図12は、途中出力リストの例を示す図である。
【0126】
途中出力リスト134は、リスト管理データ134aおよびリスト要素134b,134c,134dを有する。
リスト管理データ134aは、リスト先頭ポインタおよびリスト末端ポインタを保持する。リスト先頭ポインタは、途中出力リスト134の先頭のリスト要素を示すポインタである。リスト末端ポインタは、途中出力リスト134の末端のリスト要素を示すポインタである。途中出力リスト134にはリスト要素が存在しないこともある。その場合、リスト先頭ポインタおよびリスト末端ポインタは設定なし「-」となる。
【0127】
リスト要素134b,134c,134dは、途中出力リスト134に属するリスト要素である。
図12では、途中出力リスト134に3つのリスト要素が存在している場合を例示しているが、途中出力リスト134にリスト要素がないこともあるし、1つ、2つまたは4つ以上のリスト要素が存在することもある。
【0128】
リスト要素134b,134c,134dそれぞれは、体感遅延計測情報アドレス、前itemアドレスおよび次itemアドレスを保持する。体感遅延計測情報アドレス、前itemアドレスおよび次itemアドレスに設定される情報は、
図11で例示したリスト要素133c,133d,133eの同名の項目に設定される情報と同様である。
【0129】
リスト管理データ134aの例では、リスト先頭ポインタ「*item4」、および、リスト末端ポインタ「*item6」が登録されている。ここで、「item4」は、リスト要素134bを示すものとする。「item5」は、リスト要素134cを示すものとする。「item6」は、リスト要素134dを示すものとする。この場合、途中出力リスト134の先頭のリスト要素は、リスト要素134bである。また、途中出力リスト134の末端のリスト要素は、リスト要素134dである。
【0130】
リスト要素134bでは、体感遅延計測情報アドレスが「*p4」、前itemアドレスが「-」、次itemアドレスが「*item5」である。「*item5」はリスト要素134cを示すので、リスト要素134bの次に連結されたリスト要素は、リスト要素134cである。
【0131】
リスト要素134cでは、体感遅延計測情報アドレスが「*p5」、前itemアドレスが「*item4」、次itemアドレスが「*item6」である。「*item6」はリスト要素134dを示すので、リスト要素134cの次に連結されたリスト要素は、リスト要素134dである。
【0132】
リスト要素134dは、体感遅延計測情報アドレスが「*p6」、前itemアドレスが「*item5」、次itemアドレスが「-」である。
次に、上記の継続中コネクションリスト133および途中出力リスト134を用いた監視装置100の処理の流れの例を説明する。
【0133】
図13は、監視装置による体感遅延計測の流れの例を示す図である。
タイムチャートF13は、あるクライアント-サーバ間で検出されたコネクションの例を示す。タイムチャートF13では、左側から右側へ向かう方向が時間軸の正方向である。時刻t10,t11,t12,t13,t14,t15,t16は、タイムチャートF13において、この順に発生する時刻を示す。このうち、時刻t10,t12,t14,t16は、統計周期により発生する統計処理の開始タイミングを示す。
図13では、時刻t10,t12,t14,t16には、統計処理の開始タイミングであることが分かり易いように、それぞれ「統計周期#0」、「統計周期#1」、「統計周期#2」、「統計周期#3」の文字列を付している。また、以下では、コネクションIDが「CONx」であるコネクションを、「コネクションCONx」のように表記することがある。また、
図13では、前述の所定回数NをN=2とする。
【0134】
継続中コネクションリスト133における現在周期用登録位置情報133aは、次の通りであるとする。統計周期#0~#1の間における現在周期用登録位置情報133aは、インデクス「0」である。統計周期#1~#2の間における現在周期用登録位置情報133aは、インデクス「1」である。統計周期#2~#3の間における現在周期用登録位置情報133aはインデクス「2」である。統計周期#3~#4(登録周期#4の図示を省略している)の間における現在周期用登録位置情報133aはインデクス「0」である。
【0135】
時刻t10(統計周期#0)の直前では、継続中コネクションリスト133および途中出力リスト134の何れにもリスト要素は登録されていないものとする。
例えば、監視装置100は、キャプチャしたパケットに基づいて、時刻t10~時刻t12の間の時間範囲において、コネクションCON5,CON4,CON1,CON2がこの順に開始されたことを検出する。監視装置100は、検出した順に、コネクションCON5,CON4,CON1,CON2の情報(リスト要素)を継続中コネクションリスト133に追加する。
【0136】
例えば、時刻t11において、継続中コネクションリスト133のインデクス「0」に対して、コネクションCON5,CON4,CON1,CON2それぞれを示すリスト要素(4つのリスト要素)が登録されている。時刻t11において、途中出力リスト134は「null」である。「null」は、途中出力リスト134にリスト要素が登録されていないことを示す。
【0137】
時刻t12(統計周期#1)において、コネクションCON5,CON4,CON1,CON2は何れも継続中である。ただし、現在周期用登録位置情報133aで示されるインデクス「1」にリスト要素がないので、時刻t12において、監視装置100は、何れの継続中コネクションに対しても統計処理を開始しない。
【0138】
時刻t12~t13の間に、監視装置100は、コネクションCON1,CON2が終了し、コネクションCON3が新たに開始されたことを検出する。監視装置100は、検出した順に、継続中コネクションリスト133からコネクションCON1,CON2の情報を除去し、継続中コネクションリスト133にコネクションCON3の情報を追加する。コネクションCON1,CON2の情報は、継続中コネクションリスト133のインデクス「0」のサブリストから除去される。コネクションCON3の情報は、継続中コネクションリスト133のインデクス「1」のサブリストに追加される。
【0139】
例えば、時刻t13において、継続中コネクションリスト133のインデクス「0」に対して、コネクションCON5,CON4それぞれを示すリスト要素(2つのリスト要素)が登録されている。また、時刻t13において、継続中コネクションリスト133のインデクス「1」に対して、コネクションCON3を示すリスト要素が登録されている。時刻t13において、途中出力リスト134は「null」である。
【0140】
時刻t13~t14の間に、監視装置100は、コネクションCON3が終了したことを検出する。すると、監視装置100は、継続中コネクションリスト133からコネクションCON3の情報を除去する。
【0141】
時刻t14(統計周期#2)において、統計周期#1~#2の間に、コネクションCON1,CON2,CON3が終了している。このため、監視装置100は、コネクションCON1,CON2,CON3について体感遅延計測情報に対する統計処理を行い、統計処理の結果を示す体感遅延計測出力情報を出力する。また、現在周期用登録位置情報133aで示されるインデクス「2」にリスト要素がないので、時刻t14において、監視装置100は、何れの継続中コネクションに対しても統計処理を開始しない。
【0142】
例えば、時刻t15において、継続中コネクションリスト133のインデクス「0」に対して、コネクションCON5,CON4それぞれを示すリスト要素(2つのリスト要素)が登録されている。時刻t15において、途中出力リスト134は「null」である。
【0143】
時刻t16(統計周期#3)において、現在周期用登録位置情報133aで示されるインデクス「0」に、継続中コネクションであるコネクションCON5,CON4のリスト要素が存在している。このため、監視装置100は、コネクションCON5,CON4について、統計周期をN=2回以上またいで継続中であると判断する。監視装置100は、インデクス「0」におけるコネクションCON5,CON4のリスト要素を、途中出力リスト134に追加することで、コネクションCON5,CON4を体感遅延計測の途中出力対象とする。こうして、継続中のコネクションCON5,CON4を今回の統計処理対象とすることができる。
【0144】
なお、途中出力リスト134にコネクション情報を移す際に、監視装置100は、コネクションCON5,CON4のリスト要素を継続中コネクションリスト133に残してもよいし、当該リスト要素を継続中コネクションリスト133から除去してもよい。コネクションCON5,CON4のリスト要素を継続中コネクションリスト133に残すと、コネクションCON5,CON4について時刻t16以降の体感遅延計測が継続される。
【0145】
次に、監視装置100による体感遅延計測に関する処理手順を説明する。
図14は、パケット取得例を示すフローチャートである。
(S10)パケット情報抽出部150は、パケットが到着したか否かを判定する。到着した場合、ステップS11に処理が進む。到着していない場合、ステップS10に処理が進む(到着まで待機する)。
【0146】
(S11)パケット情報抽出部150は、送信元IPアドレス/送信元ポート番号、送信先IPアドレス/送信先ポート番号およびプロトコル番号を含むパケット情報を抽出し、L4解析部160に提供する。L4解析部160は、パケット情報に基づいて、今回のパケットに対応するコネクションを特定する。
【0147】
(S12)L4解析部160は、特定したコネクションがコネクション管理テーブル122に登録済か否かを判定する。登録済の場合、ステップS16に処理が進む。未登録の場合、ステップS13に処理が進む。
【0148】
(S13)L4解析部160は、コネクション管理テーブル122に今回のパケットに対応するコネクションの情報を登録する。
(S14)体感遅延解析部161は、今回のコネクションに対して、体感遅延計測情報書込み用の領域を、体感遅延解析面132に確保し、当該領域を示すポインタをコネクション管理テーブル122の該当のコネクションのレコードに登録する。
【0149】
(S15)リスト制御部161aは、継続中コネクションリスト133の現在周期用登録位置に体感遅延計測情報のアドレスを登録する。具体的には、リスト制御部161aは、継続中コネクションリスト133の現在周期用登録位置情報で示されるサブリストに、今回のコネクションのリスト要素を追加し、当該リスト要素に体感遅延計測情報のアドレスを登録する。
【0150】
(S16)L4解析部160は、今回のパケットに基づくL4解析(クライアント-ノード間の送受信バイト数、パケット数、パケットロス数、RTTの計測など)を行う。体感遅延解析部161は、今回のパケットに基づく体感遅延計測(クライアント/サーバの処理時間、クライアント/サーバのデータ転送時間、クライアント/サーバのデータ再送時間の計測)を行う。L4解析部160(および体感遅延解析部161)は、必要に応じて、計測結果(NW品質計測情報や体感遅延計測情報)を体感遅延解析面132に記録する。例えば、体感遅延解析部161は、今回、体感遅延計測に関する何れかの計測項目(例えば、クライアントの処理時間)で測定値を求めると、体感遅延計測情報における該当のコネクションの該当の計測項目(例えば、クライアント処理時間)に、測定値を積算する。
【0151】
(S17)L4解析部160は、今回取得したパケットにより、当該パケットに対応するコネクションが終了したか否かを判定する。コネクションが終了した場合、ステップS18に処理が進む。コネクションが終了していない場合、ステップS10に処理が進む。
【0152】
(S18)体感遅延解析部161は、終了した当該コネクションの体感遅延計測情報を、統計面140(統計面140における体感遅延統計面)に移動させる。
(S19)体感遅延解析部161は、当該コネクションの解析面130の体感遅延計測書込み用の領域を解放する。
【0153】
(S20)リスト制御部161aは、継続中コネクションリスト133または途中出力リスト134から当該コネクションの情報(リスト要素)を削除する。そして、ステップS10に処理が進む。
【0154】
次に、監視装置100において統計周期で実行される統計処理の手順を説明する。
図15は、統計処理例を示すフローチャートである。
(S30)統計処理部170は、現時刻が統計処理のタイミングであるか否かを判定する。統計処理のタイミングである場合、ステップS31に処理が進む。統計処理のタイミングでない場合、ステップS30に進む(統計処理のタイミングに達するまで待機する)。例えば、統計処理部170は、前回の統計処理の時刻から、統計周期に相当する時間が経過したか否かに基づいて、現時刻が統計処理のタイミングであるか否かを判定することができる。
【0155】
(S31)統計処理部170は、継続中コネクションリスト133の現在周期用登録位置情報133aをインクリメント(巡回)する。統計処理部170は、現在周期用登録位置情報133aで示される変更前のインデクスが、インデクス管理データ133bにおけるインデクスの最大値に達している場合、現在周期用登録位置情報133aのインデクスを、当該インデクスの最小値に設定する。
【0156】
(S32)統計処理部170は、現在周期用登録位置情報133aに対応する継続中コネクションリスト133のサブリストを途中出力リスト134に移動させる。前述のように、統計処理部170は、当該サブリストを継続中コネクションリスト133から除去してもよいし、当該サブリストを継続中コネクションリスト133に残してもよい。
【0157】
(S33)統計処理部170は、途中出力リスト134に登録中のコネクションの体感遅延計測情報を統計面140(統計面140の体感遅延統計面142)にコピーする。
(S34)統計処理部170は、L4解析のNW解析面131とNW統計面141とを入れ替える。
【0158】
(S35)統計処理部170は、統計面140にあるコネクションの計測情報(NW品質計測情報および体感遅延計測情報)の統計処理および出力処理を実行する。出力処理では、統計処理部170は、NW品質出力情報および体感遅延計測出力情報を出力する。
【0159】
(S36)統計処理部170は、統計面140にある全てのコネクションの計測情報を処理済(すなわち、全てのコネクションの計測情報についてステップS35の処理を実行済)であるか否かを判定する。全てのコネクションの計測情報を処理済である場合、ステップS37に処理が進む。未処理の計測情報がある場合、ステップS35に処理が進む。
【0160】
(S37)統計処理部170は、統計面140にあるコネクションの計測情報(NW品質計測情報および体感遅延計測情報)を削除する。これにより、統計面140におけるNW統計面141および体感遅延統計面142がクリアされる。そして、ステップS30に処理が進む。
【0161】
このように、継続中コネクションリスト133は、所定回数Nよりも多い数のサブリストであって、各周期に対応する時間範囲に、順番に、巡回して対応付けられる複数のサブリストを有する。統計処理部170は、統計周期が経過するたびに、コネクションが継続中である通信の情報の追加先のサブリストを順番に変更し、変更後のサブリストに存在するコネクションに関する通信の通信品質を解析する。
【0162】
このように、監視装置100によれば、統計周期をまたぐコネクションについても通信品質を解析できる。特に、継続中コネクションリスト133を用いることで、通信品質の解析対象(すなわち、体感遅延計測の統計処理の対象)とする継続中のコネクションを、比較的低負荷で、高速に特定できる。
【0163】
次に、比較例を説明する。
図16は、第1の比較例(その1)を示す図である。
第1の比較例では、終了済のコネクションについてのみ、解析結果(統計処理結果)が出力される。
【0164】
タイムチャートF21は、あるクライアント-サーバ間で検出されたコネクションの例を示す。タイムチャートF21では、左側から右側へ向かう方向が時間軸の正方向である。統計周期#10,#11,#12,#13は、統計処理の実行開始タイミングを示す。
【0165】
例えば、統計周期#10~#11の間に、コネクションCON11,CON12,CON13,CON14,CON15が開始された場合を考える。第1の比較例の場合、例えば、統計周期#11に達する前に、コネクションCON11,CON12,CON13が終了すると、統計周期#11で、終了済のコネクションCON11,CON12,CON13の通信品質(体感遅延計測)の解析結果が出力される。
【0166】
その後、統計周期#12に達する前に、コネクションCON14が終了すると、統計周期#12で、終了済のコネクションCON14の解析結果が出力される。
一方、更にその後、コネクションCON15が統計周期#12,#13を経ても終了せずに継続していると、コネクションCON15は終了していないので、解析結果が長期に亘って出力されない。
【0167】
図17は、第1の比較例(その2)を示す図である。
図17では、
図16の統計周期#11,#12における第1の比較例の監視装置400による処理例を示す。
【0168】
監視装置400は、コネクションCON11,CON12,CON13,CON14,CON15の体感遅延計測を行い、コネクションごとの体感遅延計測情報(
図17では単に「計測情報」と表記している)を解析面430における体感遅延解析面432に記録する(ステップST1)。統計周期#11に達する前に、コネクションCON11,CON12,CON13は終了する。監視装置400は、コネクションCON11,CON12,CON13が終了したら、コネクションCON11,CON12,CON13それぞれの体感遅延計測情報を統計面440の体感遅延統計面442に移動させる。
【0169】
監視装置400は、統計周期#11に達すると、体感遅延統計面442に格納されたコネクションCON11,CON12,CON13それぞれの体感遅延計測情報の統計出力処理を実行する(ステップST2)。監視装置400は、当該統計出力処理が終了すると、コネクションCON11,CON12,CON13それぞれの体感遅延計測情報を体感遅延統計面442から削除する。
【0170】
統計周期#11~#12の間、監視装置400は、コネクションCON14,CON15の体感遅延計測を継続し、コネクションCON14,CON15ごとの体感遅延計測情報を解析面430における体感遅延解析面432に記録する(ステップST3)。統計周期#12に達する前に、コネクションCON14は終了する。監視装置400は、コネクションCON14が終了したら、コネクションCON14の体感遅延計測情報を統計面440の体感遅延統計面442に移動させる。なお、ステップST3は、ステップST2と並列に実行され得る。
【0171】
監視装置400は、上記のステップST1~ST3の処理を繰り返し実行することで、終了済のコネクションに関してのみ、体感遅延計測の解析結果を出力する。この場合、継続中であるコネクションCON15については、体感遅延計測情報が解析面430に残り続けることになり、コネクションCON15が継続中である限り、コネクションCON15に関する解析結果が出力されないという問題がある。
【0172】
図18は、第2の比較例(その1)を示す図である。
第2の比較例では、統計周期ごとに、継続中のコネクションを含む全てのコネクションについて解析結果(統計処理結果)が出力される。
【0173】
タイムチャートF22は、あるクライアント-サーバ間で検出されたコネクションの例を示す。タイムチャートF22では、左側から右側へ向かう方向が時間軸の正方向である。統計周期#10,#11,#12,#13は、統計処理の実行開始タイミングを示す。
【0174】
例えば、統計周期#10~#11の間に、コネクションCON11,CON12,CON13,CON14,CON15が開始された場合を考える。統計周期#11に達する前に、コネクションCON11,CON12,CON13が終了する。
【0175】
第2の比較例の場合、統計周期#11において、終了したコネクションCON11,CON12,CON13および継続中のコネクションCON14,CON15について、通信品質(体感遅延計測)の解析結果が出力される。
【0176】
その後、統計周期#12に達する前にコネクションCON14が終了する。すると、統計周期#12において、終了したコネクションCON14および継続中のコネクションCON15の解析結果が出力される。
【0177】
更にその後、統計周期#13に達すると、継続中のコネクションCON15の解析結果が出力される。
図19は、第2の比較例(その2)を示す図である。
【0178】
図19では、
図18の統計周期#11,#12における第2の比較例の監視装置500による処理例を示す。
監視装置500は、コネクションCON11,CON12,CON13,CON14,CON15の体感遅延計測を行い、コネクションごとの体感遅延計測情報(
図19では単に計測情報と表記している)を解析面530における体感遅延解析面532に記録する(ステップST11)。統計周期#11に達する前に、コネクションCON11,CON12,CON13は終了する。監視装置500は、コネクションCON11,CON12,CON13が終了したら、コネクションCON11,CON12,CON13それぞれの体感遅延計測情報を統計面540の体感遅延統計面542に移動させる。
【0179】
監視装置500は、統計周期#11に達すると、継続中のコネクションCON14,CON15の体感遅延計測情報を体感遅延統計面542に書込む(コピーする)。そして、監視装置500は、体感遅延統計面542に格納されたコネクションCON11,CON12,CON13,CON14,CON15それぞれの体感遅延計測情報の統計出力処理を実行する(ステップST12)。監視装置500は、当該統計出力処理が終了すると、コネクションCON11,CON12,CON13,CON14,CON15それぞれの体感遅延計測情報を体感遅延統計面542から削除する。
【0180】
統計周期#11~#12の間、監視装置500は、コネクションCON14,CON15の体感遅延計測を継続し、コネクションCON14,CON15ごとの体感遅延計測情報を解析面530における体感遅延解析面532に記録する(ステップST13)。統計周期#12に達する前に、コネクションCON14は終了する。監視装置500は、コネクションCON14が終了したら、コネクションCON14の体感遅延計測情報を統計面540の体感遅延統計面542に移動させる。なお、ステップST13は、ステップST12と並列に実行され得る。
【0181】
監視装置500は、上記のステップST11~ST13の処理を繰り返し実行することで、統計周期が経過するごとに、終了したコネクションおよび継続中のコネクションについて、体感遅延計測の解析結果を出力する。この場合、毎統計周期において統計処理、および、出力処理の対象となるコネクションの数が膨大になる可能性があり、監視装置500の負荷が過大になる可能性がある。
【0182】
例えば、第2の比較例の処理では、ステップST12において解析面530で処理中である全ての継続中コネクションの計測情報を、統計面540にコピーおよび統計出力処理するための負荷が発生する。しかし、全ての継続中コネクションを統計出力処理の対象とすると、ある統計周期で処理すべきでない継続中コネクションも処理対象に含まれてしまう可能性がある。例えば、統計周期をまたいだ直後に、当該コネクションが終了することもあり、その場合には、当該終了時点の次の統計周期での出力で十分である。ただし、統計周期は、通常60秒程度であるが、1秒程度の短い周期が設定されることもある。このため、1回分の統計周期を待ってから出力すればよいというわけでもない。
【0183】
そこで、第2の実施の形態の監視装置100では、上記のステップST11,ST13の処理を行うとともに、ステップST12において統計面に書込む体感遅延情報を、継続中コネクションリスト133および途中出力リスト134により制御する。
【0184】
これにより、統計周期をまたぐコネクションについても通信品質を解析できる。
特に、統計周期を所定回数(例えば、2回)以上またいだコネクションを通信品質の解析対象とすることで、毎統計周期で継続中の全てのコネクションを解析対象とするよりも、監視装置100の負荷を軽減できる。例えば、監視装置100が高負荷になると、ある時間範囲の内(例えば、次周期内)に解析を完了できない可能性が高まり、最新の通信状況を把握できるまでに時間がかかる可能性がある。そこで、監視装置100は、統計周期を所定回数以上またいだコネクションを通信品質の解析対象とすることで、監視装置100の負荷を軽減して、解析の遅延を抑制し、最新の通信状況を迅速に把握できるようにする。
【0185】
また、監視装置100は、各コネクションについて、継続中コネクションリスト133に追加後、統計周期が所定回数以上経過したか否かを判断することで、解析対象を高速に決定できる。例えば、コネクションごとに開始後(確立後)からの経過時間を計測して閾値などと比較し、経過時間が閾値を超過したコネクションを解析対象とする方法も考えられる。しかし、この方法では、コネクションの数が増すほど、各コネクションの経過時間の計測や閾値との比較に伴う処理コストが増大し、解析対象の決定に時間がかかる。一方、監視装置100では、上記のように、継続中コネクションリスト133を用いることで、コネクションごとに経過時間を計測して閾値と比較する方法よりも、解析対象の決定を高速に行える。
【0186】
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【0187】
第2の実施の形態で例示したように、システム管理者は、強制出力を保留する統計周期の回数(所定回数N)を監視装置100に設定可能である。ただし、サービスを利用するユーザのアクセスパターンやアクセス先の傾向は、サービスや利用時期によって様々である。このため、統計周期が来たときに、あるサービスのコネクションについて、体感遅延に影響のある情報が計測できていることもあるし、統計周期が来ても体感遅延に影響のある情報が計測できていないこともある。このため、体感遅延に影響のある情報が計測できていると推定されるコネクションに絞って強制出力対象とすることで、監視装置100による処理負荷を更に軽減する余地がある。
【0188】
そこで、第3の実施の形態では、統計周期が来たときに実際に統計処理を実行するのか、実行しないのかの判断を、監視対象のコネクションの状況に応じて、処理負荷を考慮して動的に行う機能を提供する。
【0189】
ここで、第3の実施の形態の情報処理システムおよび各装置のハードウェアの例は、
図2,
図3で例示した第2の実施の形態の情報処理システムおよびハードウェアの例と同様である。
【0190】
図20は、第3の実施の形態の監視装置の機能例を示すブロック図である。
監視装置100aは、記憶部120a、パケット情報抽出部150、L4解析部160、統計処理部170a、統計情報出力部180およびポイントパターン更新部190を有する。記憶部120aは、RAM102またはHDD103の記憶領域を用いて実現される。パケット情報抽出部150、L4解析部160、統計処理部170a、統計情報出力部180およびポイントパターン更新部190は、監視装置100aのRAM102に記憶されたパケット解析プログラムを監視装置100aのCPU101が実行することで実現される。なお、
図20では、構成間の関係を分かり易くするため、監視装置100aの出力IF104および通信IF107も図示している。
【0191】
記憶部120aは、共有メモリ121、コネクション管理テーブル122および更新ポイントパターンテーブル123を有する。共有メモリ121およびコネクション管理テーブル122は、第2の実施の形態の同じ名称および同じ符号の要素と同様であるため説明を省略する。
【0192】
更新ポイントパターンテーブル123は、状態変化(すなわち、更新された測定項目)に対するユーザ体感遅延への影響度基準の情報を保持する。影響度基準は、サーバ処理時間、クライアント処理時間、サーバデータ転送時間、サーバデータ再送時間、クライアントデータ転送時間、クライアントデータ再送時間といった測定項目ごとのユーザ体感遅延への影響度の大きさを表すポイントによって表される。
【0193】
パケット情報抽出部150、L4解析部160および統計情報出力部180は、第2の実施の形態の同じ名称および同じ符号の要素と同様であるため説明を省略する。ただし、L4解析部160における体感遅延解析部161は、体感遅延解析面132に格納される体感遅延計測情報に、計測項目ごとの更新有無を示す更新管理ビットマップを追加する。
【0194】
統計処理部170aは、第2の実施の形態の統計処理部170に対応する。統計処理部170aは、リスト制御部171に加えて、途中出力コネクション選択部172を有する点が統計処理部170と異なる。
【0195】
途中出力コネクション選択部172は、更新ポイントパターンテーブル123および更新管理ビットマップに基づき、途中出力リスト134に登録されている継続中コネクションのうち、実際に途中出力対象とする継続中コネクションを選択する。このとき、途中出力コネクション選択部172は、途中出力対象とする継続中コネクションの数(強制出力許容コネクション数)を、過去のコネクション数と総統計処理時間との関係に基づいて決定する。
【0196】
具体的には、途中出力コネクション選択部172は、1コネクション当たりの統計処理における次の3種類の処理の所要時間を、実績に基づいて予め算出しておく。第1には、通常コネクション(すなわち、終了したコネクション)の体感遅延に対する統計処理の所要時間Aである。第2には、強制出力コネクション(継続中コネクションのうち途中出力対象となったもの)の体感遅延に対する統計処理(解析面130から統計面140への体感遅延計測情報のコピーを含む)の所要時間Bである。第3には、NW品質に関する統計処理(NW統計処理)の所要時間Cである。
【0197】
この場合、統計処理にかかる処理時間は、式(1)により求められる。
統計処理の処理時間=A×通常コネクション数+B×強制出力コネクション数+C×NW統計処理対象コネクション数・・・(1)
統計周期Tに対して、統計周期T内に統計処理を完了させるために強制出力コネクション数に対して許容される上限(強制出力許容コネクション数)は、式(2)により求められる。
【0198】
強制出力許容コネクション数=(統計周期T-(A×通常コネクション数+C×NW統計対象コネクション数))/B・・・(2)
途中出力コネクション選択部172は、式(2)により、強制出力許容コネクション数を決定し、計測項目についてユーザ体感に影響度の高い更新が発生した継続中コネクションを優先して、途中出力対象とする。
【0199】
ポイントパターン更新部190は、統計情報出力部180により出力された測定データ601および集約条件602に基づいて、更新ポイントパターンテーブル123を更新する。ここで、測定データ601は、サーバデータ転送時間やクライアントデータ転送時間などの計測項目に対する計測値のデータである。集約条件602は、更新後の更新ポイントパターンの適用対象とするノード(クライアントまたはサーバのIPアドレスおよびポート番号など)を示す。ポイントパターン更新部190は、計測項目ごとの計測状況の傾向に応じて、計測項目ごとのユーザ体感遅延への影響度を示すポイントを更新する。
【0200】
図21は、更新ポイントパターンテーブルの例を示す図である。
更新ポイントパターンテーブル123は、コネクション確立、Syn再送時間、クライアント転送時間、クライアント再送時間、サーバ転送時間、サーバ再送時間、クライアント処理時間、サーバ処理時間およびアイドル時間の項目を含む。
【0201】
コネクション確立の項目には、コネクション確立による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。Syn再送時間の項目には、Syn再送による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。クライアント転送時間の項目には、クライアントのデータ転送による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。クライアント再送時間の項目には、クライアントのデータ再送による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。サーバ転送時間の項目には、サーバのデータ転送による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。サーバ再送時間の項目には、サーバのデータ再送による遅延がユーザ体感遅延に与える影響を示すポイントが登録される。クライアント処理時間の項目には、クライアント処理による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。サーバ処理時間の項目には、サーバ処理による遅延がユーザ体感遅延に与える影響度を示すポイントが登録される。アイドル時間の項目には、ユーザによる操作待ち時間がユーザ体感遅延に与える影響度を示すポイントが登録される。
【0202】
例えば、影響度を示すポイントは、値が大きいほど影響度が大きく、値が小さいほど影響度が小さい。
図21では、ユーザ体感遅延への影響度例700も例示されている。例えば、アイドル時間は、ユーザによる操作待ちなので、ユーザ体感遅延に与える影響はない。このため、更新ポイントパターンテーブル123では、アイドル時間のポイントは「0」である。
【0203】
コネクション確立、Syn再送時間、クライアント転送時間、サーバ転送時間がユーザ体感遅延に与える影響は比較的小さい。このため、更新ポイントパターンテーブル123では、コネクション確立、Syn再送時間、クライアント転送時間およびサーバ転送時間のポイントは「1」である。
【0204】
クライアント再送時間およびサーバ再送時間がユーザ体感遅延に与える影響は中程度である。このため、更新ポイントパターンテーブル123では、クライアント再送時間およびサーバ再送時間のポイントは「2」である。
【0205】
クライアント処理時間およびサーバ処理時間がユーザ体感遅延に与える影響は比較的大きい。このため、更新ポイントパターンテーブル123では、クライアント処理時間およびサーバ処理時間のポイントは「3」である。
【0206】
ただし、影響度例700で例示される影響度は、一般的な傾向を示すものであり、サービスやサービスの利用時期などに応じて変わり得る。
図22は、体感遅延計測情報の例を示す図である。
【0207】
体感遅延計測情報132bは、体感遅延解析面132に格納される。体感遅延計測情報132bは、第2の実施の形態で例示した体感遅延計測情報132aの各項目に加えて、コネクション確立時間更新情報、Syn再送時間更新情報、クライアント転送時間更新情報、クライアント再送時間更新情報、サーバ転送時間更新情報、サーバ再送時間更新情報、クライアント処理時間更新情報、サーバ処理時間更新情報およびアイドル時間更新情報の項目を含む。
【0208】
コネクション確立時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるコネクション確立時間が更新されたか否かを示す1ビットの情報(フラグ)である。ここで、当該1ビットの情報は、「0」が更新なしを示し、「1」が更新ありを示す(他の更新情報も同様)。Syn再送時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるSyn再送時間が更新されたか否かを示すフラグである。クライアント転送時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるクライアントデータ転送時間が更新されたか否かを示すフラグである。クライアント再送時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるクライアントデータ再送時間が更新されたか否かを示すフラグである。サーバ転送時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるサーバデータ転送時間が更新されたか否かを示すフラグである。サーバ再送時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるサーバデータ再送時間が更新されたか否かを示すフラグである。クライアント処理時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるクライアント処理時間が更新されたか否かを示すフラグである。サーバ処理時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるサーバ処理時間が更新されたか否かを示すフラグである。アイドル時間更新情報は、該当のコネクションについて、体感遅延計測情報132bにおけるアイドル時間が更新されたか否かを示すフラグである。
【0209】
体感遅延計測情報132bのうち、コネクション確立時間更新情報、Syn再送時間更新情報、クライアント転送時間更新情報、クライアント再送時間更新情報、サーバ転送時間更新情報、サーバ再送時間更新情報、クライアント処理時間更新情報、サーバ処理時間更新情報およびアイドル時間更新情報の項目に相当するビット列部分を、更新管理ビットマップ135と称する。
【0210】
図23は、影響度の算出例を示す図である。
途中出力コネクション選択部172は、更新ポイントパターンテーブル123および更新管理ビットマップ135に基づいて、該当の継続中コネクションに関する更新ポイントを計算する。なお、
図23では、更新管理ビットマップ135において、「更新情報」の文字列の図示を省略している。
【0211】
途中出力コネクション選択部172は、更新ポイントパターンテーブル123のポイントpと、更新管理ビットマップ135のフラグfとの積(p×f)を計測項目ごとに求める。途中出力コネクション選択部172は、当該積(p×f)を全ての計測項目について合計することでコネクション単位の影響度を算出する。
【0212】
図23の例では、更新管理ビットマップ135のクライアント転送時間、サーバ転送時間およびサーバ処理時間のフラグがそれぞれ「1」であり、その他の測定項目のフラグは「0」である。したがって、該当のコネクションに対する影響度は、1×0+1×0+1×1+2×0+1×1+2×0+3×0+3×1+0×0=5である。ここで、
図23では、更新管理ビットマップ135において、フラグが「1」の計測項目についてのみ積(p×f)を示している。
【0213】
こうして算出された影響度が大きい継続中コネクションほど、途中出力の優先度が高いと評価される。例えば、途中出力コネクション選択部172は、算出されたコネクション単位の影響度が所定の閾値よりも大きい継続中コネクションを途中出力対象としてもよい。あるいは、途中出力コネクション選択部172は、前述の強制出力許容コネクション数を決定し、当該強制出力許容コネクション数に達するまで、コネクション単位の影響度が大きい方から順に、途中出力対象の継続中コネクションを選択してもよい。
【0214】
ただし、前述のように更新ポイントパターンテーブル123におけるポイントは、常に適切であるとは限らない。そこで、ポイントパターン更新部190は、更新ポイントパターンテーブル123を次のように更新する。
【0215】
図24は、サーバデータ転送時間の分布の例を示す図である。
グラフG3は、あるコネクションに関して計測されたサーバデータ転送時間の分布の例を示す。例えば、あるサーバにより提供されるサービスが、データ転送系のサービス(例えば、CIFS(Common Internet File System)やFTP(File Transfer Protocol)などを用いたサービス)であることがある。この場合、一般的なWebアクセスよりもデータ転送時間関連の測定値が比較的大きくなり、ユーザ体感遅延に影響する可能性がより高まる。具体的には、クライアント-サーバ間のデータ転送時間が2倍遅くなるとき、元々の転送時間5ミリ秒(ms)が10ミリ秒になるのと、元々の転送時間5秒が10秒になるのとでは、遅延時間が大きく異なり、ユーザ体感への影響度が変わる。
【0216】
そこで、ポイントパターン更新部190は、ユーザ体感への影響をより的確に反映できるように、更新ポイントパターンテーブル123における計測項目ごとのポイントを変更する。
【0217】
一例では、まず、ポイントパターン更新部190は、過去のサーバデータ転送時間やクライアントデータ転送時間などの測定値の分布から、当該測定値に関する所定の統計値(例えば、平均値+3σ)を確認する。ここで、σは分布の標準偏差を示す。例えば、ポイントパターン更新部190は、過去のサーバデータ転送時間やクライアントデータ転送時間などの測定値として、1日1回、数日間分の測定値を、送信先IPアドレスや送信先ポートなどの条件により集約して算出する。
【0218】
次に、ポイントパターン更新部190は、取得した統計値をポイント基準と照合して、変更後のポイントを決定する。ポイント基準は、ポイントパターン更新部190に予め与えられる。例えば、ポイント基準として、取得した統計値が、500ms未満であればポイント「1」、500ms~10秒未満であればポイント「2」、10秒以上であればポイント「3」とすることが考えられる。グラフG3で示されるように、サーバデータ転送時間の統計値として5秒が得られた場合、上記のポイント基準に応じたサーバデータ転送時間に関する更新後のポイントは「2」である。
【0219】
図25は、更新ポイントパターンテーブルの更新例を示す図である。
ポイントパターン更新部190は、過去のサーバデータ転送時間などの測定値を、所定の条件にマッチするアクセスに関して取得する。例えば、IPアドレス「10.20.30.40」、TCPポート番号「5000」へのアクセスに関して、各測定項目の測定値を集計し、統計値(平均値+3σ)を求める。
【0220】
前述のように、例示されたポイント基準によれば、サーバデータ転送時間の統計値が5秒のとき、サーバデータ転送時間に関する更新後のポイントは「2」となる。また、例示されたポイント基準によれば、クライアントデータ転送時間の統計値が2秒のとき、クライアントデータ転送時間に関する更新後のポイントは「2」となる。
【0221】
更に、再送が発生すると、前述のポイント基準のオーダよりも、再送による遅延が大きくなる可能性が高い。このため、ポイントパターン更新部190は、転送時間のポイント増減に連動して、再送時間のポイントも増減させる。すなわち、ポイントパターン更新部190は、例えば、サーバデータ転送時間の更新後のポイントの変更に応じて、サーバデータ再送時間の更新後のポイントを、サーバデータ転送時間の更新後のポイント「2」よりも高い「3」に変更する。同様に、ポイントパターン更新部190は、クライアントデータ再送時間の更新後のポイントを、クライアントデータ転送時間の更新後のポイント「2」よりも高い「3」に変更する。
【0222】
ただし、ポイントパターン更新部190は、再送時間に対する更新後のポイントについても、サーバデータ転送時間やクライアントデータ転送時間と同様に、過去の再送時間の測定値の分布に基づいて、予め与えられた所定のポイント基準により決定してもよい。
【0223】
図25では、上記のポイント変更前の更新ポイントパターンテーブル123aと、ポイント変更後の更新ポイントパターンテーブル123bとが例示されている。
ここで、更新ポイントパターンテーブル123a,123bでは、更新ポイントパターンテーブル123の各項目に加えて、マッチング条件の項目が示されている。マッチング条件の項目には、更新ポイントパターンの適用対象の条件が追加された場合に、当該条件を示す情報が設定される。マッチング条件は、集約条件602として、ユーザにより監視装置100aに入力される。なお、更新ポイントパターンテーブル123a(あるいは更新ポイントパターンテーブル123)に最初から存在する更新ポイントパターンについて、その旨を示す「デフォルト」という情報が、マッチング条件の項目に設定される。
【0224】
更新ポイントパターンテーブル123bの例では、ポイントパターン更新部190は、IPアドレス「10.20.30.40」、TCPポート番号「5000」へのアクセスに関して、更新ポイントパターンを変更している。このため、ポイントパターン更新部190は、「デフォルト」の更新ポイントパターンを残しつつ、マッチング条件「送信先IP:10.20.30.40,送信先ポート:5000 TCP」に対応する更新ポイントパターンを、更新ポイントパターンテーブル123bに追加する。すると、当該マッチング条件に適合するコネクションについては、当該マッチング条件に対応する更新ポイントパターンで更新ポイントの算出が行われる。当該マッチング条件に適合しないコネクションについては、デフォルトの更新ポイントパターンで更新ポイントの算出が行われる。
【0225】
次に、監視装置100aによる処理手順を説明する。以下では、更新ポイントパターンテーブル123の例として、更新ポイントパターンテーブル123bを挙げる。
図26は、パケット取得例を示すフローチャートである。
【0226】
ここで、ステップS10~S15およびステップS17~S20の処理内容は、
図14で例示したステップS10~S15およびステップS17~S20と同様であるため説明を省略する。監視装置100aは、ステップS16に代えて、ステップS16aを実行する。ステップS16aは、ステップS12 YESの場合、または、ステップS15の次に実行される。
【0227】
(S16a)L4解析部160は、今回のパケットに基づくL4解析(クライアント-ノード間の送受信バイト数、パケット数、パケットロス数、RTTの計測など)を行う。体感遅延解析部161は、今回のパケットに基づく体感遅延計測(クライアント/サーバの処理時間、クライアント/サーバのデータ転送時間、クライアント/サーバのデータ再送時間の計測)を行う。L4解析部160(および体感遅延解析部161)は、必要に応じて、計測結果(NW品質計測情報や体感遅延計測情報)を体感遅延解析面132に記録する。例えば、体感遅延解析部161は、今回、体感遅延計測に関する何れかの計測項目(例えば、クライアントの処理時間)で測定値を求めると、体感遅延計測情報における該当のコネクションの該当の計測項目(例えば、クライアント処理時間)に、測定値を積算する。特に、体感遅延解析部161は、該当のコネクションの体感遅延計測における計測項目のうち、今回更新された計測項目に対応する更新管理ビットマップ135のフラグを「1」に設定する。そして、ステップS17に処理が進む。
【0228】
図27は、統計処理例を示すフローチャートである。
ここで、ステップS30~S32およびステップS34~S37の処理内容は、
図15で例示したステップS30~S32およびステップS34~S37と同様であるため説明を省略する。監視装置100aは、ステップS32の次に、ステップS32aを実行し、ステップS32aの次に、ステップS33aを実行する。
【0229】
(S32a)途中出力コネクション選択部172は、体感遅延影響度(更新ポイントパターンテーブル123b)および更新管理ビットマップ135による、途中出力リスト134に登録された継続中コネクションリストのうち、途中出力対象コネクションの選択を行う。途中出力対象コネクションの選択の詳細は後述される。
【0230】
(S33a)統計処理部170aは、途中出力リスト134に登録中の継続中コネクションのうち、途中出力コネクション選択部172により選択された途中出力対象コネクションについて、体感遅延計測情報を体感遅延解析面132から体感遅延統計面142にコピーする。そして、ステップS34に処理が進む。
【0231】
図28は、途中出力対象コネクション選択例を示すフローチャートである。
途中出力対象コネクション選択は、ステップS32aに相当する。
(S40)途中出力コネクション選択部172は、式(2)を用いて強制出力許容コネクション数を算出する。
【0232】
(S41)途中出力コネクション選択部172は、途中出力リスト134を参照する。
(S42)途中出力コネクション選択部172は、影響度未計算のコネクションがあるか否かを判定する。影響度未計算のコネクションがある場合、途中出力コネクション選択部172は、影響度未計算のコネクション(継続中コネクション)を途中出力リスト134から1つ選択して、ステップS43に処理を進める。影響度未計算のコネクションがない場合、ステップS47に処理が進む。
【0233】
(S43)途中出力コネクション選択部172は、更新ポイントパターンテーブル123bに基づいて、選択したコネクションが、更新ポイントパターンの特定のマッチング条件に該当するか否かを判定する。選択したコネクションが特定のマッチング条件に該当しない場合、ステップS44に処理が進む。選択したコネクションが特定のマッチング条件に該当する場合、ステップS45に処理が進む。
【0234】
(S44)途中出力コネクション選択部172は、更新ポイントパターンテーブル123bからデフォルトの更新ポイントパターンを選択する。そして、ステップS46に処理が進む。
【0235】
(S45)途中出力コネクション選択部172は、更新ポイントパターンテーブル123bから、選択したコネクションにマッチしたマッチング条件に対応する更新ポイントパターンを選択する。
【0236】
(S46)途中出力コネクション選択部172は、更新管理ビットマップ135における計測項目ごとの更新情報および、ステップS44またはステップS45で選択した更新ポイントパターンから、選択したコネクション単位の影響度を算出する。そして、ステップS42に処理が進む。
【0237】
(S47)途中出力コネクション選択部172は、ステップS46で算出したコネクションごとの影響度に基づいて、影響度が大きいコネクションを優先して、強制出力許容コネクション数分選択する。また、途中出力コネクション選択部172は、更新管理ビットマップ135の各計測項目に対する更新情報(フラグ)を「0」に設定する。ステップS47で選択されたコネクションが途中出力対象コネクションである。そして、途中出力対象コネクション選択が終了する。
【0238】
図29は、更新ポイントパターン変更例を示すフローチャートである。
(S50)ポイントパターン更新部190は、現時刻が更新ポイントパターンテーブル123bにおける更新ポイントパターンの更新タイミングであるか否かを判定する。更新タイミングである場合、ステップS51に処理が進む。更新タイミングでない場合、ステップS50に処理が進む(更新タイミングになるまで待機する)。なお、ポイントパターン更新部190による更新ポイントパターンテーブル123bの更新周期は、ポイントパターン更新部190に予め設定される。
【0239】
(S51)ポイントパターン更新部190は、ユーザにより指定された集約条件602に従って、計測項目ごとに過去の測定値をまとめる。測定値をまとめた結果は、集約条件602ごと、計測項目ごとに生成される。
【0240】
(S52)ポイントパターン更新部190は、まとめた測定値全てに対して分布を確認済であるか否かを判定する。全てに対して分布を確認済の場合、ステップS50に処理が進む。分布を未確認のものがある場合、ポイントパターン更新部190は、未確認の分布を1つ選択して、ステップS53に処理を進める。
【0241】
(S53)ポイントパターン更新部190は、該当の測定項目の分布を調査し、分布の3σ位置(=平均値+3σ)を確認する。
(S54)ポイントパターン更新部190は、ポイント基準と3σ位置との比較に応じて、該当の集約条件602の該当の測定項目について更新ポイントパターンの変更要であるか否かを判定する。変更要である場合、ステップS55に処理が進む。変更不要である場合、ステップS52に処理が進む。
【0242】
(S55)ポイントパターン更新部190は、ポイント基準に設定された遅延時間範囲とポイントとの対応に従い、該当の測定項目について更新ポイントパターンを変更する(該当の測定項目について変更後のポイントを決定する)。
【0243】
(S56)ポイントパターン更新部190は、集約条件602をマッチング条件として、更新ポイントパターンを、更新ポイントパターンテーブル123bに登録する。具体的には、該当の集約条件602に対応するマッチング条件のレコードが更新ポイントパターンテーブル123bに登録されていない場合、ポイントパターン更新部190は、当該マッチング条件のレコードを更新ポイントパターンテーブル123bに追加する。該当の集約条件602に対応するマッチング条件のレコードが更新ポイントパターンテーブル123bに登録済の場合、ポイントパターン更新部190は、該当の計測項目の変更後のポイントを当該レコードに登録する。そして、ステップS52に処理が進む。
【0244】
ここで、前述のように、システム管理者は、強制出力を保留する統計周期の回数(所定回数N)を監視装置100aに設定可能である。ただし、サービスを利用するユーザのアクセスパターンやアクセス先の傾向は、サービスや利用時期によって様々である。このため、統計周期が来たときに、あるサービスのコネクションについて、体感遅延に影響のある情報が計測できていることもあるし、統計周期が来ても体感遅延に影響のある情報が計測できていないこともある。このため、体感遅延に影響のある情報が計測できていると推定されるコネクションを優先的に強制出力対象とすることで、監視装置100aによる継続中コネクションの統計処理に伴う処理負荷を一層軽減できる。
【0245】
このとき、監視装置100aは、次の統計周期の時間範囲内に統計処理が完了するように、式(2)によって強制出力許容コネクション数を決定することで、継続中コネクションの統計処理の対象数を制限する。これにより、監視装置100aは、NW品質や体感遅延計測の解析結果が出力されるまでの遅延を低減できる。
【0246】
また、監視装置100aは、更新ポイントパターンテーブル123bにおける更新ポイントパターンを、各計測項目の測定値に応じて変更することで、ユーザ体感遅延に対する計測項目ごとの影響度を補正する。これにより、監視装置100aは、サービスや利用時期に応じて、コネクション(あるいはサービスアクセス)単位の計測項目の更新に伴う影響度を適切に評価可能になる。その結果、体感遅延に影響のある情報が計測できている可能性の高い継続中コネクションを、強制出力対象として適切に選択可能になる。
【0247】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2,第3の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
【0248】
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0249】
10 パケット解析装置
11 記憶部
12 処理部
20,30,40 ノード
50 ネットワーク
F1 タイムチャート
L1 継続中コネクションリスト
L2 途中出力リスト
P1 ポインタ