(57)【要約】      （修正有）【課題】リクエストに対する複数のレスポンスが結合された場合でもレスポンス時間の算出を可能とする。【解決手段】分析装置２は、リクエストと、このリクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部６と、受信された前記結合レスポンスに対応する確認応答を検出する解析部２１と、受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部２３と、を備える。【選択図】図２
2014120819.tif 000002
【特許請求の範囲】
【請求項１】
リクエストと、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、
受信された前記結合レスポンスに対応する確認応答を検出する解析部と、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備えることを特徴とする分析装置。
【請求項２】
前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出する第２算出部をさらに備え、
前記解析部は、前記複数の確認応答のうちの先頭の確認応答を検出し、
前記第２算出部は、前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出することを特徴とする請求項１記載の分析装置。
【請求項３】
第１情報処理装置と、
前記第１情報処理装置にネットワークを介して接続された第２情報処理装置と、
分析装置と、を備え、
前記分析装置は、
前記第１情報処理装置から前記第２情報処理装置に送信されたリクエストと、前記第２情報処理装置から前記第１情報処理装置に送信され、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記第２情報処理装置から前記第１情報処理装置に送信された前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、
受信された前記結合レスポンスに対応する確認応答を検出する解析部と、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備えることを特徴とする情報処理システム。
【請求項４】
リクエストを受信し、
前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、
前記複数のレスポンスの各々に対応する複数の確認応答を受信し、
受信された前記結合レスポンスに対応する確認応答を検出し、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する
ことを特徴とする分析方法。
【請求項５】
リクエストを受信し、
前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、
前記複数のレスポンスの各々に対応する複数の確認応答を受信し、
受信された前記結合レスポンスに対応する確認応答を検出し、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する、
動作をコンピュータに実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、分析装置、情報処理システム、分析方法及び分析プログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、情報処理システムで交換される通信パケットを取り込み、この通信パケットからシステムの状態を分析するシステム分析装置が用いられる。
システム分析装置は、スイッチのミラーリング機能を用いて、サーバ及びクライアント間で交換される通信パケットを受信し、受信した通信パケットを解析することで、システム状態を監視する。
【０００３】
ここで、スイッチのミラーリング機能とは、スイッチのポートに入出力されるパケットを、別のポート（例えばシステム分析装置に接続されたポート）にコピーして送出する機能を指す。
例えば、システム分析装置は、サーバ間のTransmission Control Protocol（ＴＣＰ）通信パケットを解析し、レイヤ７（Ｌ７）レベルのリクエストとレスポンスのメッセージとからレスポンス時間を算出し、サーバにおける輻輳の発生の有無を監視する。ここで、Ｌ７レベルのパケットを送信した後に、確認応答を受信するまでの時間をRound Trip Time（往復遅延時間；ＲＴＴ）と呼ぶ。
【０００４】
図２２，図２３は、クライアントとサーバとの間の通信を示す図である。
通常、サーバ及びクライアント間のレスポンス時間を求めるには、図２２に示すように、サーバ毎に、リクエストの送信時刻とレスポンスの送信時刻との間隔を測定する。
又、図２３に示すように、リクエストやレスポンスのメッセージが複数のパケットで構成されている場合、リクエストの最後のパケットの送信時刻と、レスポンスの先頭のパケットの送信時刻との間隔を求め、その間隔をレスポンス時間とみなす。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表平１１−５１０６６０号公報
【特許文献２】特表２００３−５３０６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、Network Interface Card（ネットワークインタフェースカード；ＮＩＣ）にＴＣＰセグメンテーションオフロード機能が実装され、この機能がデフォルトで動作するケースが多くなっている。
ＴＣＰセグメンテーションオフロード機能とは、ＮＩＣにおいてＴＣＰセグメントのデータの分割や結合を行なうことにより、Central Processing Unit（ＣＰＵ）の負荷を軽減する機能である。ＴＣＰセグメンテーションオフロード機能は、Ｌ７のリクエストやレスポンスのＴＣＰセグメントのデータについては結合を行うが、Ｌ４レベルの確認応答はＴＣＰセグメントのデータが無いため、パケットの結合を行わない。特に、システム分析装置においては、パケットの受信処理しか行なわれないので、ＮＩＣにおいてＴＣＰセグメントのデータ結合が行なわれ、実際に通信される複数のパケットが１つに結合されて、上位のオペレーションシステムに通知される。
【０００７】
ここで、ＮＩＣにおいて、ＴＣＰセグメンテーションオフロード機能により、複数の単体パケットを結合して生成されたパケットを「結合パケット」と呼ぶ。
また、結合パケットに結合される前の個々のパケットを「単体パケット」と呼ぶ。
なお、以下、結合パケット、単体パケットを総称して「パケット」と呼ぶ。特段の断わりのない限り、以下「パケット」、「通信パケット」等と言う場合、結合パケット、単体パケットのいずれをも指す。
【０００８】
図２４は、ＴＣＰセグメンテーションオフロード機能を用いた、従来のクライアントとサーバとの間の通信を示す図である。
図２４に示すように、レスポンスメッセージが１つの結合パケットに結合されると、システム分析装置の分析部が先頭の単体パケットの送信時刻を認識できないため、先頭の単体パケットに対応する確認応答も認識することができず、往復遅延時間を求めることができないという問題が発生する。
【０００９】
上記課題に鑑みて、１つの側面では、本発明は、リクエストに対する複数のレスポンスが結合された場合でも往復遅延時間の算出を可能とすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１０】
リクエストと、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、受信された前記結合レスポンスに対応する確認応答を検出する解析部と、受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備える分析装置が提供される。
【００１１】
又、第１情報処理装置と、前記第１情報処理装置にネットワークを介して接続された第２情報処理装置と、分析装置と、を備え、前記分析装置は、前記第１情報処理装置から前記第２情報処理装置に送信されたリクエストと、前記第２情報処理装置から前記第１情報処理装置に送信され、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記第２情報処理装置から前記第１情報処理装置に送信された前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、受信された前記結合レスポンスに対応する確認応答を検出する解析部と、受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備える情報処理システムが提供される。
【００１２】
さらに、リクエストを受信し、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、前記複数のレスポンスの各々に対応する複数の確認応答を受信し、受信された前記結合レスポンスに対応する確認応答を検出し、受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する分析方法が提供される。
【００１３】
なおさらに、リクエストを受信し、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、前記複数のレスポンスの各々に対応する複数の確認応答を受信し、受信された前記結合レスポンスに対応する確認応答を検出し、受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する動作をコンピュータに実行させる分析プログラムが提供される。
【発明の効果】
【００１４】
一態様の分析装置によれば、リクエストに対する複数のレスポンスが結合された場合でも往復遅延時間の算出が可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施形態の一例におけるシステム分析装置が使用される情報処理システムのシステム構成を示す図である。
【図２】実施形態の一例におけるシステム分析装置の構成を示す図である。
【図３】実施形態の一例における情報処理システムにおける通信を示す図である。
【図４】（ａ）〜（ｃ）は、実施形態の一例における情報処理システムで交換されるパケットの構造例を示す図である。
【図５】実施形態の一例における情報処理システムにおける通信を示す図である。
【図６】実施形態の一例におけるシステム分析装置の分析部の各構成要素間の関係を示す図である。
【図７】実施形態の一例におけるコネクション情報テーブルを例示する図である。
【図８】実施形態の一例におけるクライアントとサーバとの間のコネクションの確立を示す図である。
【図９】実施形態の一例における上りＬ７パケットシーケンス番号テーブルを例示する図である。
【図１０】実施形態の一例における下りＬ７パケットシーケンス番号テーブルを例示する図である。
【図１１】実施形態の一例におけるリクエスト送信時刻テーブルを例示する図である。
【図１２】実施形態の一例における確認応答としての送信時刻テーブルを例示する図である。
【図１３】実施形態の一例における確認応答としてのＲＴＴ算出用下りＬ７パケット送信時刻テーブルを例示する図である。
【図１４】実施形態の一例における確認応答としてのＲＴＴ算出用確認応答送信時刻テーブルを例示する図である。
【図１５】実施形態の一例における確認応答としてのＲＴＴ平均値テーブルを例示する図である。
【図１６】実施形態の一例における確認応答としての確認応答先頭フラグテーブルを例示する図である。
【図１７】実施形態の一例におけるレスポンス時間テーブルを例示する図である。
【図１８】実施形態の一例におけるＬ４解析部の動作を説明するフローチャートである。
【図１９】実施形態の一例におけるＬ４解析部の動作を説明するフローチャートである。
【図２０】実施形態の一例におけるＲＴＴ算出部の動作を説明するフローチャートである。
【図２１】実施形態の一例におけるレスポンス時間算出部の動作を説明するフローチャートである。
【図２２】従来のクライアントとサーバとの間の通信を示す図である。
【図２３】従来のクライアントとサーバとの間の通信を示す図である。
【図２４】ＴＣＰセグメンテーションオフロード機能を用いた、従来のクライアントとサーバとの間の通信を示す図である。
【図２５】従来のシステム分析装置の機能構成を示す図である。
【図２６】実施形態の一例における結合レスポンスに対する確認応答を示す図である。
【図２７】実施形態の一例における単一レスポンスに対する確認応答を示す図である。
【発明を実施するための形態】
【００１６】
（Ａ）システム構成
以下、図面を参照して本実施形態の一例の構成を説明する。
最初に、システム分析装置２（分析装置）が使用される情報処理システム１の構成について説明する。
図１は、実施形態の一例におけるシステム分析装置２が使用される情報処理システム１のシステム構成を示す図である。
【００１７】
システム分析装置２は、Local Area Network（ＬＡＮ）などのネットワーク１１を介して接続されているサーバ（第１の通信装置、第２情報処理装置）１２−１〜１２−ｍ（ｍは２以上の整数）及びクライアント１３（第１の通信装置、第２情報処理装置）間で交換される通信パケットを取り込み、通信パケットから情報処理システム１の通信の状態を分析する。
【００１８】
システム分析装置２は、監視対象のサーバ１２−１〜１２−ｍ及びクライアント１３間の通信をスイッチングしているスイッチ（ＳＷ）１０から、ミラーリング機能を有効にして、システム分析装置２のＮＩＣ６（図２参照）に接続されている。そして、システム分析装置２は、スイッチ１０のミラーリング機能を用いて、サーバ１２−１〜１２−ｍ及びクライアント１３間で交換される通信パケットを受信する。
【００１９】
ここで、スイッチ１０のミラーリング機能とは、スイッチ１０のポートに入出力されるパケットを、別のポート（例えばシステム分析装置２に接続されたポート）にコピーして送出する機能を指す。
サーバ１２−１〜１２−ｍは、それぞれ、後述するクライアント１３からのサービス要求を受けると、クライアント１３に対してサービスを提供する情報処理装置であり、例えば、不図示のＣＰＵ、メモリ、ディスクドライブ、ＮＩＣなどを備える。
【００２０】
なお、以下、サーバを示す符号としては、複数のサーバのうち１つを特定する必要があるときには符号１２−１〜１２−ｍを用いるが、任意のサーバを指すときには符号１２を用いる。
クライアント１３は、サーバ１２に対してサービスを要求し、サーバ１２からサービスを提供される情報処理装置であり、例えば、不図示のＣＰＵ、メモリ、ディスクドライブ、ＮＩＣなどを備える。
【００２１】
スイッチ１０は、スイッチ１０を介してサーバ１２−１〜１２−ｍ及びクライアント１３間で交換されるパケットのデータを、システム分析装置２に転送するミラーリング機能を備えたスイッチである。スイッチ１０として、例えば、公知のＬＡＮスイッチなどを用いることができる。
次に、システム分析装置２の構成について説明する。
【００２２】
図２は、実施形態の一例におけるシステム分析装置２の構成を示す図である。
システム分析装置２は、ＣＰＵ３−１，３−２、メモリ４、ディスクドライブ５、及びＮＩＣ（受信部）６を備える。
ＣＰＵ３−１，３−２は、種々の制御や演算を行なう処理装置である。ＣＰＵ３−１，３−２は、システム分析装置２の起動時に、例えば、後述するディスクドライブ５等に格納されているオペレーションシステム７や分析プログラム１４等のプログラムを読み出し、各種処理を実行する。ＣＰＵ３−１，３−２としては、例えば、公知のＣＰＵを用いることができる。本例では、ＣＰＵ３−１，３−２は、例えば、ディスクドライブ５に格納されている分析プログラム１４を実行することにより、分析部８として機能する。この分析部８の機能構成については後述する。
【００２３】
なお、ＣＰＵ３−１，３−２を図２にＣＰＵ＃０，ＣＰＵ＃１とも示す。
又、以下、ＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号３−１，３−２を用いるが、任意のＣＰＵを指すときには符号３を用いる。
メモリ４は、例えば、Random Access Memory（ＲＡＭ）などの一時記憶領域である。メモリ４は、例えば、システム分析装置２が分析を行なうパケット９−１〜９−ｎ（ｎは１以上の整数）も一時的に格納する。メモリ４としては、公知のメモリを用いることができる。
【００２４】
ディスクドライブ５は、データを記憶するための記憶領域を有するディスクドライブであり、例えば、オペレーションシステム７や分析プログラム１４等のプログラムを格納している。又、ディスクドライブ５は、システム分析装置２が使用する後述の各テーブル３１〜３９，４１等のデータも格納している。これらの各テーブルについては後述する。
なお、ディスクドライブ５としては、公知のHard Disk Drive（ＨＤＤ）やSolid State Drive（ＳＳＤ）などを用いることができる。
【００２５】
ＮＩＣ６は、ＬＡＮ等を介してシステム分析装置２をスイッチ１０に接続するためのネットワークアダプタであり、例えば、ＬＡＮカードである。
このＮＩＣ６は、ＴＣＰセグメンテーションオフロード機能を備える。ＴＣＰセグメンテーションオフロード機能とは、ＮＩＣ６が、ＣＰＵ３に代わって送信データをＴＣＰセグメントに分割したり、受信した単体パケットのＴＣＰセグメントを組み立てる処理を行う機能である。この機能により、ＣＰＵ３におけるネットワーク処理負荷が軽減される。
【００２６】
又、ＮＩＣ６は、プロミスキャスモードにも対応している。
プロミスキャスモードとは、ＮＩＣ６の動作モードの１つであり、自分宛のデータパケットでないパケットも取り込んで処理するモードである。
標準の動作モードにおいては、ＮＩＣ６は自分宛のパケットを受信したときにだけ、当該パケットの受信をオペレーションシステム１７に通知する。
【００２７】
一方、プロミスキャスモードにおいては、ＮＩＣ６はパケットの宛先に関わらずパケットの到着をオペレーションシステム１７に通知し、オペレーションシステム１７は自分宛のパケット以外のパケットも受信することができる。
ＮＩＣ６は、監視対象のサーバ１２の通信をスイッチングしているスイッチ１０から、プロミスキャスモードで、サーバ１２の通信データをミラーリングされる。
【００２８】
ＮＩＣ６に到達したサーバ１２等からのパケットは、ＮＩＣ６のプロミスキャスモードを用いて、オペレーションシステム１７を経由して分析部８に送信され、分析部８に取り込まれる。
ＮＩＣ６としては、プロミスキャスモード及びＴＣＰセグメンテーションオフロード機能に対応する任意のＮＩＣを使用することができる。また、ＮＩＣ６の動作、特に、分析部８とのデータのやり取りを行なう手法については公知であるため、その詳細な説明を省略する。
【００２９】
オペレーションシステム１７は、システム分析装置２のシステム全体を管理するソフトウェアであり、オペレーティングシステムとも呼ばれる。オペレーションシステム１７としては、ＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）などの公知のオペレーションシステムを使用することができる。
分析部８は、レスポンス時間の算出等、システムの状態を監視する機能を備え、Ｌ４解析部（解析部）２１、ＲＴＴ算出部（第１算出部）２３及びレスポンス時間算出部２４（第２算出部）を有する。
【００３０】
ＴＣＰ通信においては、通信の信頼性を保つため、ＴＣＰコネクション上で受信がどこまで行なわれたかを送信側が確認できるようにするため、受信側から送信側に対して、確認応答が行なわれる。
図３，図５は、実施形態の一例における情報処理システム１における通信を示す図である。また、図４（ａ）〜（ｃ）は、実施形態の一例における情報処理システム１で交換されるパケット５１の構造例を示す図である。
【００３１】
図３に示すように、送信側（図の例ではクライアント１３）がＬ７レベル（アプリケーション層）のリクエストやレスポンスの単体或いは結合パケットを送信する。その後、受信側（図の例ではサーバ１２）は、レイヤ４（Ｌ４）レベル（トランスポート層）において、受信した単体パケットに含まれるシーケンス番号（図４（ｃ）の符号５３３参照）を、確認応答として送信側に通知する。
【００３２】
ここで、Ｌ７レベルのパケットを送信した後に、確認応答を受信するまでの時間をRound Trip Time（往復遅延時間；ＲＴＴ）と呼ぶ。
図４（ａ）に示すように、パケット５１は、ＩＰヘッダ５２、ＴＣＰヘッダ５３及びＴＣＰセグメント５４を有する。これらの各部の構造及びデータについては公知であるため、詳細な説明を省略する。
【００３３】
図４（ｃ）に示すように、シーケンス番号５３３は、パケット５１のＴＣＰヘッダ５３に格納されている。
確認応答はサーバ１２のオペレーションシステム内部で処理されるため、アプリケーション部分の輻輳の影響を受けることが少なく、一定間隔で送信される。
ＮＩＣ６のＴＣＰセグメンテーションオフロード機能は、Ｌ７のリクエストやレスポンスのＴＣＰセグメントのデータについては結合を行なうが、Ｌ４レベルの確認応答はＴＣＰセグメントのデータが無いため、パケットの結合を行なわない。
【００３４】
したがって、図３に示すように、ＴＣＰセグメンテーションオフロード機能動作時に、分析部８が受信するパケットのＬ４の確認応答は結合されず、Ｌ７のリクエストやレスポンスのみが結合される（図３に、結合されたメッセージを太線で示す）。
このため、図３に示すように、リクエストからレスポンスに対応する確認応答の先頭のパケットまでの時間を測定し、その結果から、クライアント側のＲＴＴの時間を減算すれば、分析部８において正確にレスポンス時間の算出が可能となる。
【００３５】
但し、ＴＣＰセグメンテーションオフロード機能動作時には、分析部８は、ＲＴＴの算出に使用できる確認応答を選択する。
詳細には、図５に示すように、分析部８は、確認応答を受信すると、当該確認応答の通信方向、シーケンス番号及びセグメント長に基づいて、その確認応答がレスポンスに対応する確認応答かどうかを判断し、ＲＴＴの算出に用いる先頭の確認応答を特定する。図５中、この先頭の確認応答を用いて算出したＲＴＴを、「測定可能なＲＴＴ」と称している。
【００３６】
次に、分析部８の構成について説明する。
図２に示すように、分析部８は、Ｌ４解析部（解析部）２１と、ＲＴＴ算出部（第１算出部）２３と、レスポンス時間算出部２４とを備える。
図６は、実施形態の一例におけるシステム分析装置２の分析部８のＬ４解析部２１、ＲＴＴ算出部２３、及びレスポンス時間算出部２４間の関係を示す図である。
【００３７】
Ｌ４解析部２１は、図６に示すように、オペレーションシステム１７から、ＮＩＣ６経由で受信した結合パケット又は単体パケットを受け取って、この受信パケットを解析する。そして、後述するＲＴＴ算出部２３にＲＴＴの算出依頼を通知すると共に、レスポンス時間算出部２４にレスポンス時間の算出依頼を通知する。Ｌ４解析部２１の具体的な動作については、図１８，図１９を用いて後述する。
【００３８】
ここで、図６に示すように、本分析部８は、Ｌ７メッセージの解析（組み立て）を行なうことなく、Ｌ４レベルでレスポンス時間を求める。
ＲＴＴ算出部２３は、Ｌ４解析部２１からＲＴＴの算出依頼を通知されると、ＲＴＴを算出する。ＲＴＴ算出部２３の具体的な動作については、図２０を用いて後述する。
レスポンス時間算出部２４は、Ｌ４解析部２１からレスポンス時間の算出依頼を通知されると、レスポンス時間を算出する。レスポンス時間算出部２４の具体的な動作については、図２１を用いて後述する。
【００３９】
又、分析部８は、ディスクドライブ５において、コネクション情報テーブル３１、上りＬ７パケットシーケンス番号テーブル３２、下りＬ７パケットシーケンス番号テーブル３３、リクエスト送信時刻テーブル３４、及び確認応答としての送信時刻テーブル３５を管理する。更に、分析部８は、ディスクドライブ５において、ＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６、ＲＴＴ算出用確認応答送信時刻テーブル３７、ＲＴＴ平均値テーブル３８、確認応答先頭フラグテーブル３９、及びレスポンス時間テーブル４１も管理する。
【００４０】
図７に、実施形態の一例におけるコネクション情報テーブル３１を例示する。
コネクション情報テーブル３１は、サーバ１２が確立したコネクションに関する情報を記憶するテーブルである。コネクション情報テーブル３１は、図８に示すようなコネクション確立時に登録される。
図８は、実施形態の一例におけるクライアント１３とサーバ１２との間のコネクションの確立を示す図である。図８に示すように、コネクション確立時には、ＳＹＮ、ＳＹＮ  ＡＣＫ、ＡＣＫの信号の交換後に、コネクションが接続状態となる。なお、コネクションの確立時及び切断時に交換される信号については公知であるため、その説明を省略する。
【００４１】
図７に示すように、コネクション情報テーブル３１は、例えば、接続先ＩＰアドレス３１１、接続先ポート番号３１２、接続元ＩＰアドレス３１３、接続元ポート番号３１４、及びコネクション番号３１５の各フィールドを有する。
接続先ＩＰアドレスフィールド３１１は、接続先（デスティネーション）のＩＰアドレスを示す。
【００４２】
接続先ポート番号フィールド３１２は、接続先（デスティネーション）のポート番号を示す。
接続元ＩＰアドレスフィールド３１３は、接続元（ソース）のＩＰアドレスを示す。
接続元ポート番号フィールド３１４は、接続元（ソース）のポート番号を示す。
コネクション番号フィールド３１５は、コネクションを一意に識別する番号を示し、コネクションの確立時に任意に割り振られる。
【００４３】
なお、接続先のＩＰアドレスは、前述した図４（ｂ）に示すように、パケット５１のＩＰヘッダ５２に、送信先ＩＰアドレス５２２として格納されている。又、接続先のポート番号は、パケット５１のＴＣＰヘッダ５３に、送信先ポート番号５３２として格納されている。
さらに、接続元のＩＰアドレスは、パケット５１のＩＰヘッダ５２に、送信元ＩＰアドレス５２１として格納されている。又、接続元のポート番号は、パケット５１のＴＣＰヘッダ５３に、送信元ポート番号５３１として格納されている。
【００４４】
図９に、実施形態の一例における上りＬ７パケットシーケンス番号テーブル３２を例示する。
上りＬ７パケットシーケンス番号テーブル３２は、情報処理システム１において交換された上りＬ７パケットのシーケンス番号を、コネクション番号毎に記憶するテーブルである。上りＬ７パケットシーケンス番号テーブル３２は、Ｌ４解析部２１によって登録及び使用される。これらの処理の詳細は、図１８，図１９を用いて後述する。
【００４５】
図９に示すように、上りＬ７パケットシーケンス番号テーブル３２は、コネクション番号フィールド３２１と、シーケンス番号フィールド３２２とを有する。
コネクション番号フィールド３２１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
シーケンス番号フィールド３２２には、コネクション番号フィールド３２１に記憶されているコネクションのシーケンス番号が記憶される。
【００４６】
図１０に、実施形態の一例における下りＬ７パケットシーケンス番号テーブル３３を例示する。
下りＬ７パケットシーケンス番号テーブル３３は、情報処理システム１において交換された下りＬ７パケットのシーケンス番号を、コネクション番号毎に記憶するテーブルである。下りＬ７パケットシーケンス番号テーブル３３は、Ｌ４解析部２１によって登録及び使用される。これらの処理の詳細は、図１８，図１９を用いて後述する。
【００４７】
図１０に示すように、下りＬ７パケットシーケンス番号テーブル３３は、コネクション番号フィールド３３１と、シーケンス番号フィールド３３２とを有する。
コネクション番号フィールド３３１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
シーケンス番号フィールド３３２には、コネクション番号フィールド３３１に記憶されているコネクションのシーケンス番号が記憶される。
【００４８】
なお、前述のように、シーケンス番号は、図４（ｃ）のパケット５１のＴＣＰヘッダ５３に、シーケンス番号５３３として格納されている。
図１１に、実施形態の一例におけるリクエスト送信時刻テーブル３４を例示する。
リクエスト送信時刻テーブル３４は、情報処理システム１において送信されたリクエストの送信時刻を、コネクション番号毎に記憶するテーブルである。リクエスト送信時刻テーブル３４は、Ｌ４解析部２１によって登録及び使用される。これらの処理の詳細は、図１８，図１９を用いて後述する。
【００４９】
図１１に示すように、リクエスト送信時刻テーブル３４は、コネクション番号フィールド３４１と、時刻フィールド３４２とを有する。
コネクション番号フィールド３４１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
時刻フィールド３４２には、コネクション番号フィールド３４１に記憶されているコネクションについて、リクエストの送信時刻が記憶される。
【００５０】
図１２に、実施形態の一例における確認応答としての送信時刻テーブル３５を例示する。
確認応答としての送信時刻テーブル３５は、情報処理システム１において送信された確認応答の送信時刻を、コネクション番号毎に記憶するテーブルである。確認応答としての送信時刻テーブル３５は、Ｌ４解析部２１によって登録され、レスポンス時間算出部２４によって使用される。これらの処理の詳細は、図１８，図１９，図２１を用いて後述する。
【００５１】
図１２に示すように、確認応答としての送信時刻テーブル３５は、コネクション番号フィールド３５１と、時刻フィールド３５２とを有する。
コネクション番号フィールド３５１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
時刻フィールド３５２には、コネクション番号フィールド３５１に記憶されているコネクションについて、確認応答の送信時刻が記憶される。
【００５２】
図１３に、実施形態の一例におけるＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６を例示する。
ＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６は、ＲＴＴの算出に使用する下りＬ７パケットの送信時刻を、コネクション番号毎に記憶するテーブルである。ＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６は、Ｌ４解析部２１によって登録され、ＲＴＴ算出部２３によってＲＴＴの算出に使用される。
【００５３】
具体的には、後述するように、このＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６には、Ｌ４解析部２１が下りパケットシーケンス内にセグメントデータが存在すると判定した場合に、Ｌ４解析部２１がコネクション単位で送信時間を常に保存する。
後述するように、Ｌ４解析部２１は、受信した確認応答の確認応答番号が下りＬ７パケットシーケンス番号テーブル３３に登録されている値と一致する場合に、下りパケットの送信時刻を、ＲＴＴ算出用確認応答送信時刻テーブル３７に保存する。以降、この動作を便宜上、「下りＬ７パケットの検出」とも呼ぶ。
【００５４】
その後、Ｌ４解析部２１は、ＲＴＴ算出部２３にＲＴＴの算出依頼を通知し、ＲＴＴ算出部２３がＲＴＴを算出する。
なお、これらの処理の詳細は、図１８〜図２０を用いて後述する。
図１３に示すように、ＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６は、コネクション番号フィールド３６１と、時刻フィールド３６２とを有する。
【００５５】
コネクション番号フィールド３６１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
時刻フィールド３６２には、コネクション番号フィールド３６１に記憶されているコネクションについて、ＲＴＴの算出に使用する下りＬ７パケットの送信時刻が記憶される。
図１４に、実施形態の一例におけるＲＴＴ算出用確認応答送信時刻テーブル３７を例示する。
【００５６】
ＲＴＴ算出用確認応答送信時刻テーブル３７は、ＲＴＴの算出に使用する確認応答の送信時刻を、コネクション番号毎に記憶するテーブルである。ＲＴＴ算出用確認応答送信時刻テーブル３７は、Ｌ４解析部２１によって登録され、ＲＴＴ算出部２３によってＲＴＴの算出に使用される。
このＲＴＴ算出用確認応答送信時刻テーブル３７もコネクション単位で管理されており、ＲＴＴ算出処理もコネクション番号単位で行なわれる。
【００５７】
ここで、ＴＣＰセグメンテーション機能により、レスポンスパケットが結合される場合、１つのレスポンスに対して、複数の確認応答が送信される。そこで、Ｌ４解析部２１は、受信した確認応答の確認番号が、下りＬ７パケットシーケンス番号テーブル３３に登録されている値と一致する場合に、この確認応答を、ＲＴＴの算出に使用する確認応答であると特定する。
【００５８】
なお、これらの処理の詳細は、図１８〜図２０を用いて後述する。
図１４に示すように、ＲＴＴ算出用確認応答送信時刻テーブル３７は、コネクション番号フィールド３７１と、時刻フィールド３７２とを有する。
コネクション番号フィールド３７１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
【００５９】
時刻フィールド３７２には、コネクション番号フィールド３７１に記憶されているコネクションについて、ＲＴＴの算出に使用する確認応答の送信時刻が記憶される。
図１５に、実施形態の一例におけるＲＴＴ平均値テーブル３８を例示する。
ＲＴＴ平均値テーブル３８は、コネクション番号毎に、ＲＴＴの平均値と、平均を算出したデータの個数とを記憶するテーブルである。ＲＴＴ平均値テーブル３８は、ＲＴＴ算出部２３によって登録され、レスポンス時間算出部２４によって使用される。これらの処理の詳細は、図１８，図１９，図２０を用いて後述する。
【００６０】
図１５に示すように、ＲＴＴ平均値テーブル３８は、コネクション番号フィールド３８１と、平均値フィールド３８２と、個数フィールド３８３とを有する。
コネクション番号フィールド３８１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
平均値フィールド３８２には、コネクション番号フィールド３８１に記憶されているコネクションについて、ＲＴＴの平均値が記憶される。
【００６１】
個数フィールド３８３には、平均値フィールド３８２に記憶されている平均値の算出に用いたデータの個数が記憶される。
図１６に、実施形態の一例における確認応答先頭フラグテーブル３９を例示する。
確認応答先頭フラグテーブル３９は、パケットが先頭の確認応答であるかどうかを示す値を、コネクション番号毎に記憶するテーブルである。確認応答先頭フラグテーブル３９は、Ｌ４解析部２１によって登録及び使用される。これらの処理の詳細は、図１８，図１９を用いて後述する。
【００６２】
図１６に示すように、確認応答先頭フラグテーブル３９は、コネクション番号フィールド３９１と、フラグフィールド３９２とを有する。
コネクション番号フィールド３９１には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
フラグフィールド３９２には、コネクション番号フィールド３９１に記憶されているコネクションについて、確認応答パケットが先頭の確認応答であるかどうかを示す値が記憶される。例えば、値“１”は、確認応答パケットが先頭の確認応答であることを示し、値“０”は、確認応答パケットが２番目以降の確認応答であることを示す。
【００６３】
ここで、レスポンス（下りパケット）メッセージが結合される場合、「確認応答パケットが先頭の確認応答である」とは、確認応答パケットが、リクエストメッセージ（上りパケット）の後に送信される結合レスポンスに対する最初の確認応答パケットであることを示す。
このことを、図２６を用いて説明する。図２６は、実施形態の一例における結合レスポンスに対する確認応答を示す図である。
【００６４】
詳細には、図２６に示すように、分析部８において（Ａ）の結合リクエストパケットを受信すると、確認応答先頭フラグテーブル３９のフラグフィールド３９２に値“１”が設定される。その後、当該リクエストに対する結合レスポンス（この段階では未受信）の確認応答（Ｂ）（ＡＣＫビットあり）が受信され、かつリクエスト（Ａ）のシーケンス番号とセグメント長との和と同じシーケンス番号を持つ確認応答（Ｃ）が、先頭の確認応答であると判断される。ここで、シーケンス番号とセグメント長との和は、上りＬ７パケットのシーケンス番号、つまりリクエストからみて次のシーケンス番号となる。その後、（Ｄ）の結合レスポンスが送信される。また、先頭の確認応答（Ｃ）の受信時にフラグフィールド３９２の値が“０”に戻される。
【００６５】
比較のために、図２７に、実施形態の一例における単一レスポンスに対する確認応答を示す。
図２７においては、（Ｅ）の単一リクエストパケットを受信すると、確認応答先頭フラグテーブル３９のフラグフィールド３９２に値“１”が設定され、（Ｆ）確認応答が受信される。その後、当該リクエストに対する単一レスポンス（Ｇ）が送信され、これに対する確認応答（Ｈ）（ＡＣＫビットあり）が受信される。このとき、フラグフィールド３９２の値が“０”に戻される。
【００６６】
図１７に、実施形態の一例におけるレスポンス時間テーブル４１を例示する。
レスポンス時間テーブル４１は、コネクション番号毎に、レスポンスの発生時刻と、レスポンス時間とを記憶するテーブルである。
図１７に示すように、レスポンス時間テーブル４１は、コネクション番号フィールド４２と、発生時刻フィールド４３１と、レスポンス時間フィールド４３２とを有する。
【００６７】
コネクション番号フィールド４２には、前述のコネクション情報テーブル３１のコネクション番号フィールド３１５の値が記憶される。
発生時刻フィールド４３１には、コネクション番号フィールド３９１に記憶されているコネクションについて、レスポンスの発生時刻が記憶される。
レスポンス時間フィールド４３２には、発生時刻フィールド４３１に記憶されているレスポンスについて、レスポンス時間が記憶される。
【００６８】
（Ｂ）システム動作
以下、図１８〜図２１を参照して、本実施形態の一例における分析部８の動作を説明する。
最初に、図１８〜図１９を参照して、Ｌ４解析部２１の動作を説明する。
図１８〜図１９は、実施形態の一例におけるＬ４解析部２１の動作を説明するフローチャートである。
【００６９】
図１８のステップＳ１において、Ｌ４解析部２１は、受信したパケットから、コネクション情報（図４（ｂ），（ｃ）の送信（接続）先ＩＰアドレス５２２、送信（接続）先ポート番号５３２、送信（接続）元ＩＰアドレス５２１、及び送信（接続）元ポート番号５３１）を収集する。
ここで、図１８のステップＳ１で受信されるパケットは、結合パケット、単体パケットのいずれの場合もありうる。また、Ｌ４解析部２１は、結合パケット、単体パケットのいずれの場合にも、受信したパケットのコネクション情報（接続先ＩＰアドレス、接続先ポート番号、接続元ＩＰアドレス接続元ポート番号）を収集する。
【００７０】
このため、以降の説明では、結合パケット、単体パケットを総称して「パケット」と呼ぶ。特段の断わりのない限り、以下「パケット」、「通信パケット」等と言う場合、結合パケット、単体パケットのいずれをも指す。
ここで、受信したパケット（結合パケット又は単体パケット）の送信時間の算出の際に、サーバ間の転送時間は非常に短いので、サーバ間の転送時間を無視して、システム分析装置２でパケットを受信した時刻を、サーバでのパケットの送信時刻とみなしている。なお、システム分析装置２は、ＣＰＵ３内に時計を実装しており、パケットの受信時に時計を参照し、パケット受信時刻を特定することができる。
【００７１】
次に、ステップＳ２において、Ｌ４解析部２１は、コネクション情報テーブル３１で、ステップＳ１において取得したパケットのコネクション情報を検索する。
ステップＳ３において、Ｌ４解析部２１は、対応するコネクションがコネクション情報テーブル３１に登録されているかどうかを判定する。
ステップＳ３において、対応するコネクションがコネクション情報テーブル３１に登録されていない場合（ステップＳ３のＮＯルート参照）、ステップＳ２１に進み、Ｌ４解析部２１は、接続先と接続元とのＩＰアドレス及びポート番号を入れ替える。
【００７２】
ステップＳ２２において、Ｌ４解析部２１は、スコネクション情報テーブル３１で、テップＳ２１で接続先と接続元とのＩＰアドレス及びポート番号を入れ替えたパケットのコネクション情報を検索する。
ステップＳ２３において、Ｌ４解析部２１は、ステップＳ２１で接続先と接続元とのＩＰアドレス及びポート番号を入れ替えたコネクション情報に対応するコネクションが、コネクション情報テーブル３１に登録されているかどうかを判定する。
【００７３】
ステップＳ２３において、ステップＳ２１で情報を入れ替えたコネクションが、コネクション情報テーブル３１に登録されている場合（ステップＳ２３のＹＥＳルート参照）、ステップＳ２４に進み、Ｌ４解析部２１は接続方向を下りと特定する。
このように接続方向が下りと特定されると、ステップＳ２５において、Ｌ４解析部２１は、受信パケットにセグメントデータが存在するかどうかを判定する。
【００７４】
ステップＳ２５において受信パケットにセグメントデータが存在しない場合（ステップＳ２５のＮＯルート参照）、Ｌ４解析部２１は処理を終了する。
一方、ステップＳ２５において受信パケットにセグメントデータが存在する場合（ステップＳ２５のＹＥＳルート参照）、リクエストメッセージなので、ステップＳ２６において、Ｌ４解析部２１は、受信パケットからシーケンス番号とセグメント長とを読み出す。
【００７５】
次に、ステップＳ２７において、Ｌ４解析部２１は、ステップＳ２６で読み出したシーケンス番号とセグメント長とを加算して、その値を、下りＬ７パケットシーケンス番号テーブル３３に保存する。
ステップＳ２８において、Ｌ４解析部２１は、ＲＴＴ算出のため、受信パケットの送信時刻を、ＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６に保存して処理を終了する。
【００７６】
一方、ステップＳ２３において、ステップＳ２１で情報を入れ替えたコネクションが、コネクション情報テーブル３１に登録されていない場合（ステップ２３のＮＯルート参照）、ステップＳ２９において、Ｌ４解析部２１は、受信パケットが、コネクション確立メッセージであるかどうかを判定する。
ステップＳ２９において、受信パケットがコネクション確立メッセージではない場合（ステップＳ２９のＮＯルート参照）、Ｌ４解析部２１は処理を終了する。
【００７７】
一方、ステップＳ２９において、受信パケットがコネクション確立メッセージである場合（ステップＳ２９のＹＥＳルート参照）、ステップＳ３０において、Ｌ４解析部２１はコネクション接続確認を行なう。
次に、ステップＳ３１において、Ｌ４解析部２１は、コネクション情報をコネクション情報テーブル３１に登録し、その後処理を終了する。
【００７８】
一方、ステップＳ３において、対応するコネクションがコネクション情報テーブル３１に登録されている場合（ステップＳ３のＹＥＳルート参照）、ステップＳ４において、Ｌ４解析部２１は接続方向を上りと特定する。
このように接続方向が上りと特定されると、図１９のステップＳ５において、Ｌ４解析部２１は、受信パケットからシーケンス番号を読み出す。
【００７９】
次に、ステップＳ６において、Ｌ４解析部２１は、受信パケットにセグメントデータが存在するかどうかを判定する。
ステップＳ６において受信パケットにセグメントデータが存在しない場合（ステップＳ６のＮＯルート参照）、Ｌ４解析部２１は後述するステップＳ１１に移動する。
一方、ステップＳ６において受信パケットにセグメントデータが存在する場合（ステップＳ６のＹＥＳルート参照）、リクエストメッセージなので、ステップＳ７において、Ｌ４解析部２１は、受信パケットからセグメント長を読み出す。
【００８０】
次に、ステップＳ８において、Ｌ４解析部２１は、ステップＳ５で読み出したシーケンス番号とステップＳ７で読み出したセグメント長とを加算して、その値を、上りＬ７パケットシーケンス番号テーブル３２に保存する。
ステップＳ９において、Ｌ４解析部２１は、ＲＴＴ算出のため、受信パケットの送信時刻をリクエスト送信時刻テーブル３４に保存する。
【００８１】
次に、ステップＳ１０において、Ｌ４解析部２１は、確認応答の先頭パケットをみつけるために、確認応答先頭フラグテーブル３９の確認応答先頭フラグ３９２に値“１”を設定する。
このように、応答先頭フラグテーブル３９にフラグ値“１”を設定することにより、図２６を用いて説明したように、以降、この値を参照して、結合パケットに対する確認応答パケットのうち、先頭の確認応答パケットを特定することが可能となる。  ステップＳ１１において、Ｌ４解析部２１は、ＡＣＫビットが存在する（ＡＣＫビットの値が“１”（確認応答）である）かどうかを確認する。
【００８２】
次に、ステップＳ１１において、ＡＣＫビットが存在しない場合（ステップＳ１１のＮＯルート参照）、Ｌ４解析部２１は後述するステップＳ１７に移動する。
一方、ステップＳ１１において、ＡＣＫビットが存在する場合（ステップＳ１１のＹＥＳルート参照）、Ｌ４解析部２１は、ステップＳ１２において、シーケンス番号と上りＬ７パケットシーケンス番号テーブル３２の値とが一致するかどうかを判定する。
【００８３】
ステップＳ１２において、シーケンス番号と上りＬ７パケットシーケンス番号テーブル３２の値とが一致しない場合（ステップＳ１２の“異なる”ルート参照）、下りＬ７パケット（レスポンスメッセージ）に対する確認応答ではない。このため、Ｌ４解析部２１は後述するステップＳ１７に移動する。
一方、ステップＳ１２において値が一致する場合（ステップＳ１２の“同じ”ルート参照）、下りＬ７パケット（レスポンスメッセージ）に対する確認応答である。このため、ステップＳ１３において、Ｌ４解析部２１は、確認応答先頭フラグ２９の値が“１”（確認応答の先頭パケット）であるかどうかを判定する。
【００８４】
ステップＳ１３において、確認応答先頭フラグ２９の値が“０”（確認応答の２番目以降のパケット）である場合（ステップＳ１３の“０（２番目以降）”ルート参照）、Ｌ４解析部２１は後述するステップＳ１７に移動する。
一方、ステップＳ１３で確認応答先頭フラグ２９の値が“１”である場合（ステップＳ１３の“１（先頭）”ルート参照）、確認応答の先頭パケットである。このため、ステップＳ１４において、Ｌ４解析部２１は、レスポンス時間算出のため、受信パケットの送信時刻を確認応答としての送信時刻テーブル３５に保存する。これにより、結合パケットの場合であっても、当該結合パケットに対する確認応答パケットの先頭パケットの送信時刻を特定し、レスポンス時間を求めることが可能となる。
【００８５】
レスポンスに対する確認応答の先頭の確認応答の送信時刻が求められたので、次に、ステップＳ１５において、Ｌ４解析部２１は、レスポンス時間算出部２４にレスポンス時間算出依頼を通知する。レスポンス時間算出部２４における処理の詳細については、図２１を用いて後述する。
確認応答が連続する場合、２番目以降の確認応答は測定しないので、ステップＳ１６において、Ｌ４解析部２１は、確認応答先頭フラグテーブル３９に確認応答の２番目以降のパケットであることを示す値“０”を設定する。
【００８６】
次に、ステップＳ１７において、Ｌ４解析部２１は、受信パケットから確認応答番号(図４（ｃ）のＴＣＰヘッダ５３の符号５３４参照)を読み出す。
ステップＳ１８において、Ｌ４解析部２１は、ステップＳ１７で読み出した確認応答番号が、下りＬ７パケットシーケンス番号テーブル３３に登録されている値と一致するかどうかを判定する。
【００８７】
ステップＳ１７で読み出した確認応答番号が、下りＬ７パケットシーケンス番号テーブル３３に登録されている値と一致しない場合（ステップＳ１８の“異なる”ルート参照）、Ｌ４解析部２１は処理を終了する。
一方、ステップＳ１７で読み出した確認応答番号が下りＬ７パケットシーケンス番号テーブル３３に登録されている値と一致する場合（ステップＳ１８の“同じ”ルート参照）、下りＬ７パケットに対する確認応答である。このため、ステップＳ１９において、Ｌ４解析部２１は、ＲＴＴ算出のため、受信パケットの送信時刻をＲＴＴ算出用確認応答送信時刻テーブル３７に保存する。これにより、結合パケットの場合であっても、当該結合パケットに対する確認応答パケットの先頭パケットの送信時刻を特定し、ＲＴＴを算出することが可能となる。
【００８８】
レスポンスに対する確認応答の送信時刻が求められたので、ステップＳ２０において、Ｌ４解析部２１は、ＲＴＴ算出部２３にＲＴＴ測定依頼を通知し、処理を終了する。ＲＴＴ算出部２３における処理の詳細については以下で説明する。
次に、図２０を参照して、ＲＴＴ算出部２３の動作を説明する。
図２０は、実施形態の一例におけるＲＴＴ算出部２３の動作を説明するフローチャートである。
【００８９】
ステップＳ４１において、Ｌ４解析部２１からＲＴＴ算出依頼を通知される（図１９のステップＳ２０参照）と、ＲＴＴ算出部２３は、ＲＴＴ算出用確認応答送信時刻テーブル３７の値からＲＴＴ算出用下りＬ７パケット送信時刻テーブル３６の値を減算して、ＲＴＴを算出する。
次に、ステップＳ４２において、ＲＴＴ算出部２３は、ステップＳ４１で求めたＲＴＴの値が“０”より大きいかどうかを判定する。
【００９０】
ステップＳ４２においてＲＴＴの値が“０”以下の場合（ステップＳ４２のＮＯルート参照）、無効な値であるため、ＲＴＴ算出部２３は処理を終了する。
一方、ステップＳ４２においてＲＴＴの値が“０”より大きい場合（ステップＳ４２のＹＥＳルート参照）、ステップＳ４３において、ＲＴＴ算出部２３は、ステップＳ４２で求めた値を用いて、ＲＴＴの平均値を更新し、ＲＴＴ平均値テーブル３８を更新して、処理を終了する。その際、ＲＴＴ算出部２３は、ＲＴＴ平均値テーブル３８に記憶されている平均値とデータの個数との積に、ステップＳ４１で求めたＲＴＴの値を加算し、得られた和を（データ個数＋１）で割ることで、ＲＴＴの平均値を更新する。
【００９１】
次に、図２１を参照して、レスポンス時間算出部２４の動作を説明する。
図２１は、実施形態の一例におけるレスポンス時間算出部２４の動作を説明するフローチャートである。
ステップＳ５１において、Ｌ４解析部２１からＲＴＴ算出依頼を通知される（図１９のステップＳ１５参照）と、レスポンス時間算出部２４は、確認応答としての送信時刻テーブル３５の値からＲＴＴ平均値テーブル３８の値を減算し、本来のレスポンス送信時刻を求める。
【００９２】
次に、ステップＳ５２において、レスポンス時間算出部２４は、ステップＳ５１で求めた本来のレスポンス送信時刻から、リクエスト送信時刻テーブル３４の値を減算して、レスポンス時刻を算出する。
次に、ステップＳ５３において、レスポンス時間算出部２４は、ステップＳ５２で求めたレスポンス時刻を保存し、レスポンス時間テーブル４１を更新して、処理を終了する。
【００９３】
上記の処理により、ＴＣＰセグメンテーションオフロード機能の使用時にも、レスポンス時間が算出される。
（Ｃ）効果
前述の如く、上記の実施形態の一例によれば、レスポンス時間の算出にＬ４レベルの確認応答を使用するので、ＴＣＰセグメンテーションオフロード機能が使用されてパケットが結合された場合にも、レスポンス時間を算出することが可能となる。これにより、ＴＣＰセグメンテーション機能を備えたＮＩＣ６を有するシステム分析装置２において、単体パケット、結合パケットのいずれについても、レスポンス時間を算出することができる。
【００９４】
その際、ＴＣＰセグメンテーション機能を備えたＮＩＣ６を有するシステム分析装置２において、往復遅延時間も取得できる。
従来のシステム分析装置は、図２５に示すように、Ｌ４解析部１２１、Ｌ７解析部１２２、及びレスポンス時間算出部１２３を備える。
図２５は、従来のシステム分析装置の機能構成を示す図である。
【００９５】
従来手法においては、図２５に示すように、Ｌ７解析部１２２がＬ７メッセージの組み立てを行ない、レスポンス時間を、リクエストとレスポンス間の間隔のみを用いて測定していた。
これに対し、図６に示すように、本実施形態の一例では、Ｌ７メッセージ組み立てを行なうことなく（Ｌ７の解析を必要とすることなく）、Ｌ４解析部２１、ＲＴＴ算出部２３、及びレスポンス時間算出部２４により、レスポンス時間を算出できる。
【００９６】
詳細には、Ｌ４解析部２１は、確認応答メッセージを分析することにより、ＲＴＴの算出に使用する確認応答を特定すると共に、ＲＴＴ及びレスポンス時間の算出に用いる下りパケットの送信時刻を特定する。
次に、ＲＴＴ算出部２３は、Ｌ４解析部２１によって特定された下りパケットの送信時刻を用いて、ＲＴＴを算出する。
【００９７】
そして、レスポンス時間算出部２４は、ＲＴＴ算出部２３が求めたＲＴＴの値から、レスポンス時間を算出する。
このように、本実施形態の一例では、ＴＣＰセグメンテーションオフロード機能が使用されてパケットが結合された場合にも、Ｌ４解析部２１、ＲＴＴ算出部２３、及びレスポンス時間算出部２４により、Ｌ４メッセージを用いてレスポンス時間を算出できる。
【００９８】
また、Ｌ７メッセージ組み立て処理と解析とが不要になるので、処理を簡略化し、処理の高速化を図ることができる。
（Ｄ）その他
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００９９】
例えば、上記の実施形態においては、各テーブル３１〜３９，４１を、システム分析装置２のディスクドライブ５に記憶しているが、各テーブル３１〜３９，４１をシステム分析装置２のメモリ４に記憶してもよい。また、テーブル３１〜３９，４１の一部をディスクドライブ５に記憶し、残りのテーブルをメモリ４に記憶してもよい。
又、上記の実施形態においては、ＲＴＴ算出部２３が、ＲＴＴ平均値テーブル３８に登録されているＲＴＴ平均値とデータ個数からＲＴＴの平均値を更新していたが、平均の算出に使用するデータの個数を適宜変更してもよい。例えば、情報処理システム１の最新の状態を把握できるように、ＲＴＴ算出部２３が、直近の数個のＲＴＴデータのみからＲＴＴの平均値を算出してもよい。
【０１００】
さらに、コネクション情報、上りＬ７パケットシーケンス番号、下りＬ７パケットシーケンス番号、リクエスト送信時刻、確認応答としての送信時刻、ＲＴＴ算出用下りＬ７パケット送信時刻、ＲＴＴ算出用確認応答送信時刻、ＲＴＴ平均値、確認応答先頭フラグ、及びレスポンス時間を、テーブル３１〜３９，４１以外のデータ形式で管理してもよい。
なお、分析部８、Ｌ４解析部２１、ＲＴＴ算出部２３及びレスポンス時間算出部２４としての機能を実現する際には、内部記憶装置（本実施形態ではディスクドライブ５など）に格納されたプログラム（分析プログラム１４）がコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ３など）によって実行される。
【０１０１】
このとき、記憶媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、分析部８、Ｌ４解析部２１、ＲＴＴ算出部２３及びレスポンス時間算出部２４としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記憶媒体に記録された形態で提供される。そして、コンピュータはその記憶媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記憶媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【０１０２】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ３等のマイクロプロセッサと、記憶媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ストレージ装置３がコンピュータとしての機能を有しているのである。
【０１０３】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。
（Ｅ）付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１０４】
（付記１）
リクエストと、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、
受信された前記結合レスポンスに対応する確認応答を検出する解析部と、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備えることを特徴とする分析装置。
【０１０５】
（付記２）
前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出する第２算出部をさらに備え、
前記解析部は、前記複数の確認応答のうちの先頭の確認応答を検出し、
前記第２算出部は、前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出することを特徴とする付記１記載の分析装置。
【０１０６】
（付記３）
第１情報処理装置と、
前記第１情報処理装置にネットワークを介して接続された第２情報処理装置と、
分析装置と、を備え、
前記分析装置は、
前記第１情報処理装置から前記第２情報処理装置に送信されたリクエストと、前記第２情報処理装置から前記第１情報処理装置に送信され、前記リクエストに対応する複数のレスポンスを結合した結合レスポンスと、前記第２情報処理装置から前記第１情報処理装置に送信された前記複数のレスポンスの各々に対応する複数の確認応答と、を受信する受信部と、
受信された前記結合レスポンスに対応する確認応答を検出する解析部と、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する第１算出部と、を備えることを特徴とする情報処理システム。
【０１０７】
（付記４）
前記分析装置は、前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出する第２算出部をさらに備え、
前記解析部は、前記複数の確認応答のうちの先頭の確認応答を検出し、
前記第２算出部は、前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出することを特徴とする付記３記載の情報処理システム。
【０１０８】
（付記５）
リクエストを受信し、
前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、
前記複数のレスポンスの各々に対応する複数の確認応答を受信し、
受信された前記結合レスポンスに対応する確認応答を検出し、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する
ことを特徴とする分析方法。
【０１０９】
（付記６）
前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出し、
前記複数の確認応答のうちの先頭の確認応答を検出し、
前記第２算出部は、前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出することを特徴とする付記５記載の分析方法。
【０１１０】
（付記７）
リクエストを受信し、
前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、
前記複数のレスポンスの各々に対応する複数の確認応答を受信し、
受信された前記結合レスポンスに対応する確認応答を検出し、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する、
動作をコンピュータに実行させることを特徴とする分析プログラム。
【０１１１】
（付記８）
前記コンピュータによって実行されたときに、該コンピュータに、
前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出し、
前記複数の確認応答のうちの先頭の確認応答を検出し、
前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出する、
動作を前記コンピュータに実行させることを特徴とする付記７記載の分析プログラム。
【０１１２】
（付記９）
リクエストを受信し、
前記リクエストに対応する複数のレスポンスを結合した結合レスポンスを受信し、
前記複数のレスポンスの各々に対応する複数の確認応答を受信し、
受信された前記結合レスポンスに対応する確認応答を検出し、
受信された前記結合レスポンスの受信時刻と、検出された前記確認応答の受信時刻とに基づいて往復遅延時間を算出する、
動作をコンピュータに実行させる分析プログラムを記録していることを特徴とするコンピュータ可読記憶媒体。
【０１１３】
（付記１０）
前記リクエストと、算出された前記往復遅延時間とに基づいてレスポンス時間を算出し、
前記複数の確認応答のうちの先頭の確認応答を検出し、
前記リクエストの受信時刻と、検出された前記先頭の確認応答の受信時刻と、算出された前記往復遅延時間とに基づいて前記レスポンス時間を算出する、
動作を前記コンピュータに実行させる分析プログラムを記録していることを特徴とする付記９記載のコンピュータ可読記憶媒体。
【符号の説明】
【０１１４】
１                情報処理システム
１０              スイッチ
１１              ネットワーク
１２              サーバ（第１の通信装置、第２情報処理装置）
１３              クライアント（第１の通信装置、第２情報処理装置）
２                システム分析装置（分析装置）
１４              分析プログラム
２１              Ｌ４解析部（解析部）
２３              ＲＴＴ算出部（第１算出部）
２４              レスポンス時間算出部（第２算出部）
３                ＣＰＵ
４                メモリ
５                ディスクドライブ
６                ＮＩＣ（受信部）
７                オペレーションシステム
８                分析部
【図１】
2014120819.tif 000003
【図２】
2014120819.tif 000004
【図３】
2014120819.tif 000005
【図４】
2014120819.tif 000006
【図５】
2014120819.tif 000007
【図６】
2014120819.tif 000008
【図７】
2014120819.tif 000009
【図８】
2014120819.tif 000010
【図９】
2014120819.tif 000011
【図１０】
2014120819.tif 000012
【図１１】
2014120819.tif 000013
【図１２】
2014120819.tif 000014
【図１３】
2014120819.tif 000015
【図１４】
2014120819.tif 000016
【図１５】
2014120819.tif 000017
【図１６】
2014120819.tif 000018
【図１７】
2014120819.tif 000019
【図１８】
2014120819.tif 000020
【図１９】
2014120819.tif 000021
【図２０】
2014120819.tif 000022
【図２１】
2014120819.tif 000023
【図２２】
2014120819.tif 000024
【図２３】
2014120819.tif 000025
【図２４】
2014120819.tif 000026
【図２５】
2014120819.tif 000027
【図２６】
2014120819.tif 000028
【図２７】
2014120819.tif 000029