(57)【要約】【課題】端末間にある観測点において計測に不適切なパケットを特定する。【解決手段】パケット解析装置１は、端末３と端末４との間で通信されるパケットを端末３と端末４の間のネットワークのいずれかの地点で取得する。パケット解析装置１は、端末４から端末３へ送信された第１のＡＣＫの取得から第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、端末３から端末４へ送信されたデータに対応する複数のパケットの取得タイミング、および隣接する２つのパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する。【選択図】図１
2015035709.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１の端末と第２の端末との間で通信されるパケットを前記第１の端末と前記第２の端末の間のネットワークのいずれかの地点で取得し、
前記第１の端末から前記第２の端末へ送信された第１のＡＣＫの取得から前記第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、前記第２の端末から前記第１の端末へ送信されたデータに対応する複数のパケットの取得タイミング、および隣接する２つのパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する
処理を実行させることを特徴とするパケット解析プログラム。
【請求項２】
前記特定する処理は、前記第１のＡＣＫに対応するパケットの識別番号と前記第２のＡＣＫに対応するパケットの識別番号とを用いて、連続するパケットの個数を特定し、特定した個数分の取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する
処理を実行させることを特徴とする請求項１に記載のパケット解析プログラム。
【請求項３】
前記特定する処理は、前記第１の端末と前記第２の端末との間の通信が途中で変化した場合に、既に取得された複数のパケットの取得タイミングおよび取得タイミング間の間隔をリセットする
処理を実行させることを特徴とする請求項１に記載のパケット解析プログラム。
【請求項４】
第１の端末と第２の端末との間で通信されるパケットを前記第１の端末と前記第２の端末の間のネットワークのいずれかの地点で取得する取得部と、
前記第１の端末から前記第２の端末へ送信された第１のＡＣＫの取得から前記第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、前記第２の端末から前記第１の端末へ送信されたデータに対応する複数のパケットの取得タイミング、および隣接する２つのパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する特定部と、
を有することを特徴とするパケット解析装置。
【請求項５】
コンピュータが、
第１の端末と第２の端末との間で通信されるパケットを前記第１の端末と前記第２の端末の間のネットワークのいずれかの地点で取得し、
前記第１の端末から前記第２の端末へ送信された第１のＡＣＫの取得から前記第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、前記第２の端末から前記第１の端末へ送信されたデータに対応する複数のパケットの取得タイミング、および隣接する２つのパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する
各処理を実行することを特徴とするパケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット解析プログラムに関する。
【背景技術】
【０００２】
端末間のネットワーク帯域を推測する方法として、ネットワークのトラヒックを、アクティブに診断する方法（以降、「アクティブ診断」という）と、パッシブに診断する方法（以降、「パッシブ診断」という）とがある。アクティブ診断では、診断を行う装置が、予め用意されたネットワーク帯域診断用のパターンをネットワークに流すことにより、ネットワーク帯域を計測する。したがって、診断用のパターンを用意することおよびネットワークに本来不要なパケットが流れてしまうという問題がある。
【０００３】
パッシブ診断では、ネットワークを流れる全てのパケットを計測対象とする。パッシブ診断に関し、監視対象のパケットが集約される経路に到着したパケットをキャプチャし、コネクション毎に、各パケットにおけるクライアントの位置情報に基づく位置ベースでクライアントの通信品質を分析する技術が知られている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５８８８１号公報
【特許文献２】特開２０１２−１９１４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、パッシブ診断では、ネットワークの正確な帯域を計測できないという問題がある。ここで、ネットワークの正確な帯域を計測できないという問題について説明する。
【０００６】
ネットワークでは、常時、帯域の計測に適した連続のパケットが流れるとは限らない。ネットワーク上の端末は、ネットワークの輻輳を防ぐためにパケットの間隔をあけて送信するフロー制御を行う。このため、フロー制御によって送信が遅れるパケットを除けば正確な帯域の計測が可能になる。
【０００７】
一般的に、端末から連続に送出されるパケットのうちＡＣＫ受信直後に送出されるパケットは、フロー制御の影響を受けることが多いと考えられる。ところが、端末間にある観測点と端末とのパケットの送受信の時間差により、観測点においてＡＣＫ受信直後に送出されるパケットを識別することが難しい。図２１は、端末の送信タイミングと観測点の受信タイミングのズレを示す図である。
【０００８】
図２１に示すように、観測点のパケット解析装置において、ＡＣＫとＡＣＫとの間で受信されたパケットは、端末から連続して送信された連続パケットであるとは限らない。ここでは、パケット解析装置は、ｄ１，ｄ２時点で受信したデータのパケットが連続パケット、ｄ３，ｄ４時点で受信したデータのパケットが連続パケットとする。すると、パケット解析装置は、ａ１時点で受信されたＡＣＫとａ２時点で受信されたＡＣＫとの間で、ｄ２，ｄ３時点でデータのパケットを受信する。したがって、ＡＣＫとＡＣＫとの間で受信されたパケットは、連続パケットであるとは限らない。
【０００９】
また、観測点のパケット解析装置は、ＡＣＫ受信直後に、ＡＣＫに対応するデータのパケットを受信するとは限らない。ここでは、パケット解析装置は、ａ１時点でＡＣＫを受信し、受信したＡＣＫに対応するデータのパケットをｄ３時点で受信する。パケット解析装置は、ａ１時点のＡＣＫ受信直後に、別のＡＣＫに対応する連続パケットをｄ２時点で受信する。したがって、パケット解析装置は、ＡＣＫ受信直後に、ＡＣＫに対応するデータのパケットを受信するとは限らない。すなわち、観測点において、フロー制御の影響を受けたパケットを特定することは難しい。
【００１０】
１つの側面では、端末間にある観測点において計測に不適切なパケットを特定することを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、パケット解析プログラムは、コンピュータに、第１の端末と第２の端末との間で通信されるパケットを前記第１の端末と前記第２の端末の間のネットワークのいずれかの地点で取得し、前記第１の端末から前記第２の端末へ送信された第１のＡＣＫの取得から前記第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、前記第２の端末から前記第１の端末へ送信されたデータに対応する複数のパケットの取得タイミング、および隣接する２つのパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するパケットを特定する処理を実行させる。
【発明の効果】
【００１２】
１つの態様によれば、端末間にある観測点において計測に不適切なパケットを特定することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係るパケット解析装置の機能構成を示す図である。
【図２】図２は、実施例に係るパケット解析装置の処理の具体例を示す図である。
【図３】図３は、コネクション管理テーブルのデータ構造の一例を示す図である。
【図４】図４は、ステータステーブルのデータ構造の一例を示す図である。
【図５】図５は、帯域解析テーブルのデータ構造の一例を示す図である。
【図６】図６は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。
【図７】図７は、ＡＣＫテーブルのデータ構造の一例を示す図である。
【図８】図８は、統計情報テーブルのデータ構造の一例を示す図である。
【図９Ａ】図９Ａは、コネクション管理部の処理のフローチャートを示す図である。
【図９Ｂ】図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。
【図９Ｃ】図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。
【図９Ｄ】図９Ｄは、連続パケット判定処理のフローチャートを示す図である。
【図１０】図１０は、連続パケットの個数を特定する場合の処理のシーケンスを示す図である。
【図１１】図１１は、連続パケットを特定する場合の処理のシーケンスを示す図である。
【図１２】図１２は、リセットする処理のシーケンスを示す図である。
【図１３】図１３は、連続パケットの送信パターンが安定していない場合の処理のシーケンスを示す図である。
【図１４Ａ】図１４Ａは、連続パケットの個数を特定する場合のテーブルの遷移を示す図（１）である。
【図１４Ｂ】図１４Ｂは、連続パケットの個数を特定する場合のテーブルの遷移を示す図（２）である。
【図１４Ｃ】図１４Ｃは、連続パケットの個数を特定する場合のテーブルの遷移を示す図（３）である。
【図１４Ｄ】図１４Ｄは、連続パケットの個数を特定する場合のテーブルの遷移を示す図（４）である。
【図１４Ｅ】図１４Ｅは、連続パケットの個数を特定する場合のテーブルの遷移を示す図（５）である。
【図１５Ａ】図１５Ａは、連続パケットを特定する場合のテーブルの遷移を示す図（１）である。
【図１５Ｂ】図１５Ｂは、連続パケットを特定する場合のテーブルの遷移を示す図（２）である。
【図１５Ｃ】図１５Ｃは、連続パケットを特定する場合のテーブルの遷移を示す図（３）である。
【図１５Ｄ】図１５Ｄは、連続パケットを特定する場合のテーブルの遷移を示す図（４）である。
【図１５Ｅ】図１５Ｅは、連続パケットを特定する場合のテーブルの遷移を示す図（５）である。
【図１５Ｆ】図１５Ｆは、連続パケットを特定する場合のテーブルの遷移を示す図（６）である。
【図１６Ａ】図１６Ａは、リセットする場合のテーブルの遷移を示す図（１）である。
【図１６Ｂ】図１６Ｂは、リセットする場合のテーブルの遷移を示す図（２）である。
【図１６Ｃ】図１６Ｃは、リセットする場合のテーブルの遷移を示す図（３）である。
【図１６Ｄ】図１６Ｄは、リセットする場合のテーブルの遷移を示す図（４）である。
【図１６Ｅ】図１６Ｅは、リセットする場合のテーブルの遷移を示す図（５）である。
【図１６Ｆ】図１６Ｆは、リセットする場合のテーブルの遷移を示す図（６）である。
【図１７Ａ】図１７Ａは、連続パケットの送信パターンが安定していない場合のテーブルの遷移を示す図（１）である。
【図１７Ｂ】図１７Ｂは、連続パケットの送信パターンが安定していない場合のテーブルの遷移を示す図（２）である。
【図１７Ｃ】図１７Ｃは、連続パケットの送信パターンが安定していない場合のテーブルの遷移を示す図（３）である。
【図１８Ａ】図１８Ａは、実施例に係るパケット解析処理の帯域計測の一例を示す図である。
【図１８Ｂ】図１８Ｂは、従来の帯域計測の一例を示す図である。
【図１９Ａ】図１９Ａは、実施例に係るパケット解析処理の帯域計測の別の一例を示す図である。
【図１９Ｂ】図１９Ｂは、従来の帯域計測の別の一例を示す図である。
【図２０】図２０は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【図２１】図２１は、端末の送信タイミングと観測点の受信タイミングのズレを示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示するパケット解析プログラム、パケット解析装置およびパケット解析方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１５】
［実施例に係るパケット解析装置の構成］
図１は、実施例に係るパケット解析装置の機能構成を示す図である。図１に示すように、パケット解析装置１は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介して取得し、パッシブにネットワーク帯域を診断する。実施例では、端末３，４は、ＴＣＰ（Transmission  Control  Protocol）を用いた通信を行うものとする。
【００１６】
ここで、ＴＣＰの通信機能の特性の一例について説明する。端末３がデータのパケットの送信端末であり、端末４がデータのパケットの受信端末であるとする。受信端末４がデータのパケットを受け取った場合に、そのデータのシーケンス番号とデータサイズから次に送られてくる予定のデータのシーケンス番号をＡＣＫの確認応答番号に設定したうえで、ＡＣＫを送信端末３に伝達する。送信端末３は、ＡＣＫを受信し、受信したＡＣＫの確認応答番号を確認することで、次のデータのパケットを送信する。
【００１７】
ところが、送信端末３は、データのパケットを１パケットずつ受信、確認および送信を行うと通信効率が悪い。そこで、ＴＣＰでは、「ウィンドウ制御」が行われる。ウィンドウ制御とは、送信端末３が、データのパケットを１パケットずつ受信、確認および送信するのではなく、複数のデータのパケットを連続で送信する。すなわち、送信端末３は、複数のデータのパケットをウィンドウサイズと呼ばれる単位で管理し、ＡＣＫの確認応答番号を待つことなく、データのパケットを連続で送信する。このウィンドウ制御により通信効率が改善される。なお、ウィンドウ制御によって連続で送信されるデータのパケットのことを「連続パケット」というものとする。
【００１８】
しかしながら、送信端末３が、１度の大量のデータのパケットを送信してしまうと、ネットワークで輻輳が発生する可能性や、受信端末４の通信インタフェースでバッファのオーバフローが発生する可能性がある。そこで、受信端末４がオーバフローしないように、ＴＣＰの通信では、連続パケットの量を制限するフロー制御を行う。フロー制御では、一例として、受信端末４は、自端末がオーバフローしない空のバッファ量を示すＲＷＩＮ（Receiver  WINdowsize）を送信端末３に伝える。また、別の一例として、フロー制御では、輻輳が発生しないように徐々に連続で送信するパケット量を増加させ、輻輳が発生した場合に連続パケットの量を減少させる。フロー制御が行われることで、通信の確実性や正確性が保たれる。例えば、フロー制御では、送信端末３の制御量を示すＳＷＩＮ（Sender  WINdowsize）と、ＲＷＩＮの最小値をウィンドウサイズとして、連続パケットの量を制限する。
【００１９】
このようなＴＣＰの通信機能におけるフロー制御の特性を利用して、パケット解析装置１は、キャプチャしたパケットの中から、フロー制御の影響を受けたパケットを特定し、特定したパケットを除いて、連続パケットのみを用いてネットワーク帯域を診断する。「パケットをキャプチャする」とは、ネットワーク上で流れるトラヒックのパケットを取得することを意味する。
【００２０】
パケット解析装置１は、記憶部１１および制御部１２を有する。
【００２１】
記憶部１１は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部１１は、コネクション管理テーブル１１１、解析情報テーブル１１２および統計情報テーブル１１７を有する。解析情報テーブル１１２には、ステータステーブル１１３、帯域解析テーブル１１４、ＤＡＴＡテーブル１１５およびＡＣＫテーブル１１６が含まれる。
【００２２】
コネクション管理テーブル１１１は、コネクション毎に、送信元および宛先の通信情報を管理する。コネクション管理テーブル１１１は、キャプチャされたパケットのコネクションを検索する際に用いられる。
【００２３】
解析情報テーブル１１２は、解析情報を記憶する。解析情報テーブル１１２は、ネットワーク帯域が診断される際に用いられる。解析情報テーブル１１２には、ステータステーブル１１３、帯域解析テーブル１１４、ＤＡＴＡテーブル１１５およびＡＣＫテーブル１１６が含まれる。ステータステーブル１１３は、コネクション毎の各種ステータスを記憶する。帯域解析テーブル１１４は、連続パケットの個数分について、キャプチャのタイミング間の間隔を記憶する。帯域解析テーブル１１４は、コネクション毎にテーブルを有する。ＤＡＴＡテーブル１１５は、データのパケットがキャプチャされる際に、データのパケットのインデックス番号、到着時刻およびパケット長を記憶する。ＤＡＴＡテーブル１１５は、コネクション毎にテーブルを有する。ＡＣＫテーブル１１６は、ＡＣＫが取得される際に、到着時刻やＡＣＫに対応するデータのパケットのインデックス番号を記憶する。ＡＣＫテーブル１１６は、コネクション毎にテーブルを有する。
【００２４】
統計情報テーブル１１７は、統計情報を記憶する。統計情報テーブル１１７は、ネットワーク帯域の診断の最終的な統計を記憶する。なお、記憶部１１の各種テーブルのデータ構造は、後述する。
【００２５】
制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。さらに、制御部１２は、出力インタフェース１２１、通信インタフェース１２２、コネクション管理部１２３、連続パケット抽出部１２４および帯域推定部１２５を有する。
【００２６】
出力インタフェース１２１は、出力装置５とのインタフェースである。例えば、出力インタフェース１２１は、統計情報テーブル１１７に記憶された統計情報を編集し、出力装置５に出力する。
【００２７】
通信インタフェース１２２は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介してキャプチャする。通信インタフェース１２２は、キャプチャしたパケットをコネクション管理部１２３に引き渡す。
【００２８】
コネクション管理部１２３は、キャプチャされたパケットのコネクションを管理する。例えば、コネクション管理部１２３は、コネクション管理テーブル１１１を参照し、キャプチャしたパケットと同じコネクション情報のパケットを、以前にキャプチャしたか否かを判定する。コネクション管理部１２３は、以前にキャプチャしていないと判定した場合、今回キャプチャしたパケットのコネクション情報をコネクション管理テーブル１１１に追加する。また、コネクション管理部１２３は、以前にキャプチャしていると判定した場合、何もしない。コネクション情報には、例えば、送信元のＩＰアドレス、送信元のポート番号、宛先のＩＰアドレスおよび宛先のポート番号が含まれる。
【００２９】
連続パケット抽出部１２４は、ＡＣＫのパケットとデータのパケットとの対応関係を解析して、連続パケットを抽出する。そして、連続パケット抽出部１２４は、連続パケットの個数を特定する。例えば、連続パケット抽出部１２４は、データのパケットのシーケンス番号およびパケット長と、ＡＣＫのパケットの確認応答番号とから、ＡＣＫのパケットとデータのパケットとの対応付けを行う。そして、連続パケット抽出部１２４は、端末３から送信された何個のデータのパケットに対して端末４がＡＣＫのパケットを返信するのかを特定する。すなわち、連続パケット抽出部１２４は、連続パケットの個数を特定する。なお、連続パケット抽出部１２４は、コネクション管理テーブル１１１および解析情報テーブル１１２を用いて連続パケットを抽出する。また、連続パケット抽出部１２４の詳細については後述する。
【００３０】
帯域推定部１２５は、ネットワークの帯域を推定する。例えば、帯域推定部１２５は、連続パケット抽出部１２４によって抽出された連続パケットのうち、フロー制御の影響を受けたデータのパケットを判断する。すなわち、帯域推定部１２５は、ＡＣＫのパケットに対応したデータのパケットを基準にして、連続パケットの個数分毎に別々に帯域を計測し、帯域解析テーブル１１４に解析データとして保持する。そして、帯域推定部１２５は、解析データ毎に平均帯域を算出し、平均帯域の大小関係を比較することによりフロー制御の影響を受けたデータのパケットを特定する。基本的な帯域の計測法（Bandwidth）は、以下の式（１）で表される。
Bandwidth（Ｍｂｐｓ）＝８×パケットサイズ／パケット間の間隔・・・式（１）
【００３１】
ここで、フロー制御の影響を受けたデータのパケットは、輻輳を抑制するためにＡＣＫを待ってから送信されるので、連続パケットに比較して、平均帯域は小さくなる。フロー制御の影響を受けたデータのパケットは、連続パケットに比較して、パケット間の間隔が大きくなるからである。したがって、帯域推定部１２５は、解析データのうち、平均帯域が最小値になった解析データを、フロー制御の影響を受けたデータのパケット群の解析データと特定する。そして、帯域推定部１２５は、特定した解析データを除去し、残った解析データを用いてネットワーク帯域を診断する。残った解析データは、フロー制御の影響を受けていない連続パケットのパケット群の解析データとなる。なお、帯域推定部１２５は、解析情報テーブル１１２および統計情報テーブル１１７を用いて帯域を推定する。また、帯域推定部１２５の詳細については後述する。
【００３２】
次に、実施例に係るパケット解析装置１の処理の具体例について、図２を参照して説明する。図２は、実施例に係るパケット解析装置の処理の具体例を示す図である。図２に示すように、連続パケット抽出部１２４は、端末３から送信された何個のデータのパケットに対して端末４がＡＣＫのパケットを返信するのかを特定する。すなわち、連続パケット抽出部１２４は、連続パケットの個数を特定する。ここでは、連続パケットの個数は、２個と特定される。
【００３３】
そして、帯域推定部１２５は、ＡＣＫのパケットに対応したデータのパケットを基準にして、連続パケットの個数分毎に別々に帯域を計測する。ここでは、連続パケットが２個であるので、＜１＞および＜２＞毎にパケット間の間隔およびパケットサイズが加算される。そして、帯域推定部１２５は、＜１＞で算出されたパケットサイズと＜１＞で算出されたパケット間の間隔を、式（１）に代入して、＜１＞の平均帯域を算出する。また、帯域推定部１２５は、＜２＞で算出されたパケットのサイズと＜２＞で算出されたパケット間の間隔を、式（１）に代入して、＜２＞の平均帯域を算出する。
【００３４】
そして、帯域推定部１２５は、平均帯域の大小関係を比較することによりフロー制御の影響を受けたデータのパケットを特定する。ここでは、＜２＞のパケット間の間隔の方が＜１＞のパケット間の間隔より大きいので、＜２＞の平均帯域が＜１＞の平均帯域より小さくなる。したがって、＜２＞の平均帯域の解析データが、フロー制御の影響を受けた、データのパケット群の解析データと特定される。
【００３５】
そして、帯域推定部１２５は、特定したパケット群の解析データを除去し、残った解析データを用いてネットワーク帯域を診断する。すなわち、帯域推定部１２５は、＜２＞の解析データを除去し、残った＜１＞の解析データから算出される平均帯域を、ネットワーク帯域として推定する。
【００３６】
このように、帯域推定部１２５は、帯域の推定に不適切なパケットを特定することが可能となる。この結果、帯域推定部１２５は、特定した不適切なパケットを除去して正確な帯域を計測することができる。
【００３７】
［テーブルのデータ構造］
パケット解析装置１で用いられる各種テーブルのデータ構造を、図３〜図８を参照して説明する。図３は、コネクション管理テーブルのデータ構造の一例を示す図である。図４は、ステータステーブルのデータ構造の一例を示す図である。図５は、帯域解析テーブルのデータ構造の一例を示す図である。図６は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。図７は、ＡＣＫテーブルのデータ構造の一例を示す図である。図８は、統計情報テーブルのデータ構造の一例を示す図である。
【００３８】
図３に示すように、コネクション管理テーブル１１１は、Ｓｒｃ．ＩＰ１１１ｂ、Ｓｒｃ．Ｐｏｒｔ１１１ｃ、Ｄｓｔ．ＩＰ１１１ｄおよびＤｓｔ．Ｐｏｒｔ１１１ｅをＣｏｎｎ．ＩＤ１１１ａに対応付けて記憶する。Ｃｏｎｎ．ＩＤ１１１ａは、コネクション毎に付けられるインデックス番号である。Ｓｒｃ．ＩＤ１１１ｂは、送信元のＩＰアドレスである。Ｓｒｃ．Ｐｏｒｔ１１１ｃは、ＴＣＰにおける送信元のポート番号である。Ｄｓｔ．ＩＰ１１１ｄは、宛先のＩＰアドレスである。Ｄｓｔ．Ｐｏｒｔ１１１ｅは、宛先のＴＣＰにおける宛先のポート番号である。
【００３９】
一例として、Ｃｏｎｎ．ＩＤ１１１ａが「０」である場合に、Ｓｒｃ．ＩＰ１１１ｂとして「１０．２５．１００．１００」、Ｓｒｃ．Ｐｏｒｔ１１１ｃとして「８０」と記憶している。Ｄｓｔ．ＩＰ１１１ｄとして「１０．２５．２００．１００」、Ｄｓｔ，Ｐｏｒｔ１１１ｅとして「２００」と記憶している。
【００４０】
図４に示すように、ステータステーブル１１３は、Ｓｔａｔｕｓ１１３ｂ、Ｓｔａｒｔ．ＩＤ１１３ｃ、Ｎｕｍ．Ｓｔｒｅａｍ１１３ｄおよびＥｘ．ＲＷＩＮ１１３ｅをＣｏｎｎ．ＩＤ１１３ａに対応付けて記憶する。加えて、ステータステーブル１１３は、Ｎｏｗ．Ｄａｔａ．ＩＤ１１３ｆおよびＮｏｗ．Ａｃｋ．ＩＤ１１３ｇをＣｏｎｎ．ＩＤ１１３ａに対応付けて記憶する。Ｃｏｎｎ．ＩＤ１１３ａは、コネクション毎に付けられるインデックス番号である。Ｓｔａｔｕｓ１１３ｂは、帯域計測の際の現在のステータスである。Ｓｔａｔｕｓ１１３ｂには、例えば、初期値であることを示す「ＩＮＩＴ」、帯域計測で用いられるデータパケットの情報を設定中であることを示す「ＳＥＴ＿ＩＤ」、帯域計測中であることを示す「ＭＥＡＳＵＲＥ」が設定される。Ｓｔａｒｔ．ＩＤ１１３ｃは、帯域計測を開始するデータパケットのＩＤである。Ｎｕｍ．Ｓｔｒｅａｍ１１３ｄは、連続パケットの個数である。Ｅｘ．ＲＷＩＮ１１３ｅは、受信端末４がオーバフローしない空のバッファ量である。Ｅｘ．ＲＷＩＮ１１３ｅには、前回のＲＷＩＮが設定される。Ｎｏｗ．Ｄａｔａ．ＩＤ１１３ｆは、現在のデータパケットのＩＤである。Ｎｏｗ．Ａｃｋ．ＩＤ１１３ｇは、現在のＡＣＫパケットのＩＤである。
【００４１】
一例として、Ｃｏｎｎ．ＩＤ１１３ａが「０」である場合に、Ｓｔａｔｕｓ１１３ｂとして「ＭＥＡＳＵＲＥ」、Ｓｔａｒｔ．ＩＤ１１３ｃとして「２」、Ｎｕｍ．Ｓｔｒｅａｍ１１３ｄとして「２」と記憶している。Ｅｘ．ＲＷＩＮ１１３ｅとして「６５７００」、Ｎｏｗ．Ｄａｔａ．ＩＤ１１３ｆとして「３」、Ｎｏｗ．Ａｃｋ．ＩＤ１１３ｇとして「２」と記憶している。
【００４２】
図５に示すように、帯域解析テーブル１１４は、Ｃｏｎｎ．ＩＤ１１４ａ、ＢＷ．ＩＤ１１４ｂ、Ｓｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄを対応付けて記憶する。なお、帯域解析テーブル１１４は、Ｃｏｎｎ．ＩＤ１１４ａ毎にテーブルを有している。Ｃｏｎｎ．ＩＤ１１４ａは、コネクション毎に付けられるインデックス番号である。ＢＷ．ＩＤ１１４ｂは、各テーブル内のインデックス番号である。ＢＷ．ＩＤ１１４ｂには、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄで示される連続パケットの個数分のインデックス番号が設定される。Ｓｉｚｅ１１４ｃは、計測されたパケットサイズの合計である。Ｔｉｍｅ．Ｇａｐ１１４ｄは、計測されたパケット間の到着時刻間隔の合計である。
【００４３】
一例として、Ｃｏｎｎ．ＩＤ１１４ａが「０」であってＢＷ．ＩＤ１１４ｂが「０」である場合に、Ｓｉｚｅ１１４ｃとして「３０００」、Ｔｉｍｅ．Ｇａｐ１１４ｄとして「２４０」と記憶している。また、Ｃｏｎｎ．ＩＤ１１４ａが「０」であってＢＷ．ＩＤ１１４ｂが「１」である場合に、Ｓｉｚｅ１１４ｃとして「３０００」、Ｔｉｍｅ．Ｇａｐ１１４ｄとして「１３２０」と記憶している。
【００４４】
図６に示すように、ＤＡＴＡテーブル１１５は、Ｃｏｎｎ．ＩＤ１１５ａ、Ｄａｔａ．ＩＤ１１５ｂ、Ｓｅｑ１１５ｃ、Ｌｅｎ１１５ｄおよびＴｉｍｅ１１５ｅを対応付けて記憶する。なお、ＤＡＴＡテーブル１１５は、Ｃｏｎｎ．ＩＤ１１５ａ毎にテーブルを有している。Ｃｏｎｎ．ＩＤ１１５ａは、コネクション毎に付けられるインデックス番号である。Ｄａｔａ．ＩＤ１１５ｂは、データパケットのインデックス番号である。Ｓｅｑ１１５ｃは、データパケットのシーケンス番号である。Ｌｅｎ１１５ｄは、データパケットのパケット長である。Ｔｉｍｅ１１５ｅは、データパケットのパケット解析装置１への到着時刻である。
【００４５】
一例として、Ｃｏｎｎ．ＩＤ１１５ａが「０」であってＤａｔａ．ＩＤ１１５ｂが「０」である場合に、Ｓｅｑ１１５ｃとして「１５００」、Ｌｅｎ１１５ｄとして「１５００」、Ｔｉｍｅ１１５ｅとして「１０００」と記憶している。また、Ｃｏｎｎ．ＩＤ１１５ａが「０」であってＤａｔａ．ＩＤ１１５ｂが「１」である場合に、Ｓｅｑ１１５ｃとして「３０００」、Ｌｅｎ１１５ｄとして「１５００」、Ｔｉｍｅ１１５ｅとして「１１２０」と記憶している。
【００４６】
図７に示すように、ＡＣＫテーブル１１６は、Ｃｏｎｎ．ＩＤ１１６ａ、Ａｃｋ．ＩＤ１１６ｂ、Ａｃｋ１１６ｃ、Ｔｉｍｅ１１６ｄおよびＤａｔａ．ＩＤ１１６ｅを対応付けて記憶する。なお、ＡＣＫテーブル１１６は、Ｃｏｎｎ．ＩＤ１１６ａ毎にテーブルを有している。Ｃｏｎｎ．ＩＤ１１６ａは、コネクション毎に付けられるインデックス番号である。Ａｃｋ．ＩＤ１１６ｂは、ＡＣＫパケットのインデックス番号である。Ａｃｋ１１６ｃは、ＡＣＫパケットのＡＣＫ番号（確認応答番号）である。すなわち、Ａｃｋ１１６ｃには、次に送られてくる予定のデータパケットのシーケンス番号が設定される。Ｔｉｍｅ１１６ｄは、ＡＣＫパケットのパケット解析装置１への到着時刻である。Ｄａｔａ．ＩＤ１１６ｅは、ＡＣＫに対応するデータパケットのインデックス番号（Ｄａｔａ．ＩＤ）である。すなわち、Ｄａｔａ．ＩＤ１１６ｅは、Ａｃｋ．ＩＤ１１６ｂで示されるＡＣＫパケットに対応するデータパケットであることを意味する。
【００４７】
一例として、Ｃｏｎｎ．ＩＤ１１６ａが「０」であってＡｃｋ．ＩＤ１１６ｂが「０」である場合に、Ａｃｋ１１６ｃとして「３０００」、Ｔｉｍｅ１１６ｄとして「３０００」、Ｄａｔａ．ＩＤ１１６ｅとして「０」と記憶している。Ｃｏｎｎ．ＩＤ１１６ａが「０」であってＡｃｋ．ＩＤ１１６ｂが「１」である場合に、Ａｃｋ１１６ｃとして「６０００」、Ｔｉｍｅ１１６ｄとして「３２４０」、Ｄａｔａ．ＩＤ１１６ｅとして「２」と記憶している。
【００４８】
図８に示すように、統計情報テーブル１１７は、Ｓｉｚｅ１１７ｂおよびＴｉｍｅ．Ｇａｐ１１７ｃをＣｏｎｎ．ＩＤ１１７ａに対応付けて記憶する。Ｃｏｎｎ．ＩＤ１１７ａは、コネクション毎に付けられるインデックス番号である。Ｓｉｚｅ１１７ｂは、計測された連続パケットのパケットサイズの合計である。Ｔｉｍｅ．Ｇａｐ１１７ｃは、計測された連続パケットにおけるパケット間の到着時刻間隔の合計である。
【００４９】
一例として、Ｃｏｎｎ．ＩＤ１１７ａが「０」である場合に、Ｓｉｚｅ１１７ｂとして「３０００」、Ｔｉｍｅ．Ｇａｐ１１７ｃとして「２４０」と記憶している。
【００５０】
［パケット解析処理のフローチャート］
次に、実施例に係るパケット解析処理のフローチャートを、図９Ａ〜図９Ｄを参照して説明する。図９Ａは、コネクション管理部の処理のフローチャートを示す図である。図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。図９Ｄは、連続パケット判定処理のフローチャートを示す図である。なお、フローチャートでは、データパケットを「ＤＡＴＡ」と記載し、ＡＣＫパケットを「ＡＣＫ」と記載する。
【００５１】
図９Ａに示すように、コネクション管理部１２３は、パケットを受信したか否かを判定する（ステップＳ１）。パケットを受信していないと判定した場合（ステップＳ１；Ｎｏ）、コネクション管理部１２３は、パケットを受信するまで、判定処理を繰り返す。
【００５２】
一方、パケットを受信したと判定した場合（ステップＳ１；Ｙｅｓ）、コネクション管理部１２３は、受信したパケットのヘッダ情報を抽出する（ステップＳ１Ａ）。例えば、コネクション管理部１２３は、ＩＰヘッダから、送信元のＩＰアドレスおよび宛先のＩＰアドレスを抽出する。コネクション管理部１２３は、ＴＣＰヘッダから、送信元のポート番号、宛先のポート番号、シーケンス番号、ＡＣＫ番号（確認応答番号）、パケット長、ＲＷＩＮおよびＦＩＮフラグを抽出する。なお、ＦＩＮフラグとは、コネクションの解放用のパケットであるか否かを示すフラグのことをいう。ＦＩＮフラグには、一例として、コネクションの解放用のパケットである場合「ＯＮ」が設定され、コネクションの解放用のパケットでない場合「ＯＦＦ」が設定される。
【００５３】
そして、コネクション管理部１２３は、コネクション管理テーブル１１１に記憶された情報から、今回受信したコネクション情報に対応するレコードを検索する（ステップＳ２）。ここでいうコネクション情報とは、送信元のＩＰアドレス、送信元のポート番号、宛先のＩＰアドレスおよび宛先のポート番号である。例えば、コネクション管理部１２３は、コネクション情報を検索条件として、コネクション管理テーブル１１１から該当するレコードを検索する。なお、送信元の情報と宛先の情報とが入れ替わった場合であっても、同じコネクションであることとする。
【００５４】
そして、コネクション管理部１２３は、検索の結果、コネクション情報が未登録であるか否かを判定する（ステップＳ３）。コネクション情報が未登録でないと判定した場合（ステップＳ３；Ｎｏ）、コネクション管理部１２３は、ステップＳ５に移行する。
【００５５】
一方、コネクション情報が未登録であると判定した場合（ステップＳ３；Ｙｅｓ）、コネクション管理部１２３は、コネクション情報を、コネクション管理テーブル１１１に登録する（ステップＳ４）。例えば、コネクション管理部１２３は、新たなコネクションＩＤ（Ｃｏｎｎ．ＩＤ１１１ａ）に対して、送信元のＩＰアドレス（Ｓｒｃ．ＩＤ１１１ｂ）およびポート番号（Ｓｒｃ．Ｐｏｒｔ１１１ｃ）を追加する。加えて、コネクション管理部１２３は、同じレコードに、宛先のＩＰアドレス（Ｄｓｔ．ＩＰ１１１ｄ）およびポート番号（Ｄｓｔ．Ｐｏｒｔ１１１ｅ）を追加する。そして、コネクション管理部１２３は、ステップＳ５に移行する。
【００５６】
ステップＳ５では、コネクション管理部１２３は、受信されたパケットがコネクション解放用のパケットであるか否かを判定する（ステップＳ５）。例えば、コネクション管理部１２３は、受信されたパケットのＦＩＮフラグを参照し、ＦＩＮフラグが「ＯＮ」であるか否かを判定する。
【００５７】
受信されたパケットがコネクション解放用のパケットであると判定した場合（ステップＳ５；Ｙｅｓ）、すなわち、ＦＩＮフラグが「ＯＮ」である場合、コネクション管理部１２３は、連続パケット判定処理を実行する（ステップＳ７）。連続パケット判定処理の詳細については後述する。そして、コネクション管理部１２３は、コネクション情報に関わる全ての情報をコネクション管理テーブル１１１および解析情報テーブル１１２から削除する（ステップＳ８）。具体的には、コネクション管理部１２３は、コネクションＩＤ（Ｃｏｎｎ．ＩＤ）が同じレコードを、コネクション管理テーブル１１１および解析情報テーブル１１２から削除する。そして、コネクション管理部１２３は、ステップＳ１に移行する。
【００５８】
一方、受信されたパケットがコネクション解放用のパケットでないと判定した場合（ステップＳ５；Ｎｏ）、すなわち、ＦＩＮフラグが「ＯＮ」でない場合、コネクション管理部１２３は、当該パケットがＤＡＴＡであるか否かを判定する（ステップＳ６）。例えば、コネクション管理部１２３は、ＴＣＰヘッダのパケット長を参照し、パケット長が０ならば、ＡＣＫと判定し、パケット長が０より大きければ、ＤＡＴＡと判定する。
【００５９】
当該パケットがＤＡＴＡであると判定した場合（ステップＳ６；Ｙｅｓ）、コネクション管理部１２３は、データパケット受信時の処理へ移行すべく、ステップＳ９に移行する。一方、当該パケットがＤＡＴＡでないと判定した場合（ステップＳ６；Ｎｏ）、すなわち当該パケットがＡＣＫである場合、コネクション管理部１２３は、ＡＣＫパケット受信時の処理へ移行すべく、ステップＳ１２に移行する。
【００６０】
［データパケット受信時の処理のフローチャート］
図９Ｂに示すように、ステップＳ９では、コネクション管理部１２３は、ステータステーブル１１３のステータス（Ｓｔａｔｕｓ１１３ｂ）が「ＳＥＴ＿ＩＤ」であるか否かを判定する（ステップＳ９）。「ＳＥＴ＿ＩＤ」とは、帯域計測で用いられるＤＡＴＡの情報を設定中であることを示す。ステータスが「ＳＥＴ＿ＩＤ」であると判定した場合（ステップＳ９；Ｙｅｓ）、コネクション管理部１２３は、ステータステーブル１１３のＳｔａｒｔ．ＩＤ１１３ｃに、現在のＤＡＴＡのＩＤ（Ｄａｔａ．ＩＤ）を登録する（ステップＳ１０）。そして、コネクション管理部１２３は、ステップＳ１１に移行する。
【００６１】
一方、ステータスが「ＳＥＴ＿ＩＤ」でないと判定した場合（ステップＳ９；Ｎｏ）、コネクション管理部１２３は、ステップＳ１１に移行する。
【００６２】
ステップＳ１１では、コネクション管理部１２３は、同じコネクションＩＤ（Ｃｏｎｎ．ＩＤ１１５ａ）に対応するＤＡＴＡテーブル１１５を更新する（ステップＳ１１）。更新する情報は、例えば、現在のＤＡＴＡのＩＤ（Ｄａｔａ．ＩＤ１１５ａ）、シーケンス番号（Ｓｅｑ１１５ｃ）、パケット長（Ｌｅｎ１１５ｄ）およびＤＡＴＡの観測点への到着時刻（Ｔｉｍｅ１１５ｅ）である。観測点とは、パケット解析装置１のことを意味する。また、コネクション管理部１２３は、ステータステーブル１１３のＮｏｗ．Ｄａｔａ．ＩＤ１１３ｆに現在のＤＡＴＡのＩＤを更新する。そして、コネクション管理部１２３は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００６３】
［ＡＣＫパケット受信時の処理のフローチャート］
図９Ｃに示すように、ステップＳ１２では、コネクション管理部１２３は、同じコネクションＩＤ（Ｃｏｎｎ．ＩＤ１１５ａ）に対応するＡＣＫテーブル１１６を更新する（ステップＳ１２）。更新する情報は、例えば、現在のＡＣＫのＩＤ（Ａｃｋ．ＩＤ１１６ｂ）、ＡＣＫ番号（Ａｃｋ１１６ｃ）、ＡＣＫの観測点への到着時刻（Ｔｉｍｅ１１６ｄ）である。観測点とは、パケット解析装置１のことを意味する。また、コネクション管理部１２３は、ステータステーブル１１３のＮｏｗ．Ａｃｋ．ＩＤ１１３ｆに現在のＡＣＫのＩＤを更新し、Ｅｘ．ＲＷＩＮ１１３ｅにＴＣＰヘッダのＲＷＩＮの値を更新する。
【００６４】
続いて、コネクション管理部１２３は、ＲＷＩＮが変化したか、またはＤＡＴＡのパケットロスが検出されたか否かを判定する（ステップＳ１３）。ＲＷＩＮが変化したかまたはＤＡＴＡのパケットロスが検出されたと判定した場合（ステップＳ１３；Ｙｅｓ）、コネクション管理部１２３は、連続パケット判定処理（ステップＳ２９）に移行する。
【００６５】
一方、ＲＷＩＮが変化しなかった且つＤＡＴＡのパケットロスが検出されなかったと判定した場合（ステップＳ１３；Ｎｏ）、連続パケット抽出部１２４は、ＡＣＫとＤＡＴＡの対応付けを行う（ステップＳ１４）。例えば、連続パケット抽出部１２４は、ＤＡＴＡテーブル１１５およびＡＣＫテーブル１１６から、以下の式（２）を満たすＤＡＴＡのＩＤを検索する。
ＤＡＴＡテーブル［Ｄａｔａ．ＩＤ］．Ｓｅｑ＋ＤＡＴＡテーブル［Ｄａｔａ．ＩＤ］．Ｌｅｎ＝ＡＣＫテーブル［Ｎｏｗ．Ａｃｋ．ＩＤ］．Ａｃｋ・・・式（２）
ＡＣＫの確認応答番号（Ａｃｋ１１６ｃ）には、次に送られてくる予定のＤＡＴＡのシーケンス番号（直近のＤＡＴＡのシーケンス番号（Ｓｅｑ１１５ｃ）＋パケット長（Ｌｅｎ１１５ｄ））が設定されているからである。
【００６６】
そして、連続パケット抽出部１２４は、ＤＡＴＡテーブルに、対応するＤＡＴＡのＩＤがあるかどうかを判定する（ステップＳ１５）。対応するＤＡＴＡのＩＤがないと判定した場合（ステップＳ１５；Ｎｏ）、連続パケット抽出部１２４は、連続パケット判定処理（ステップＳ２９）に移行する。
【００６７】
一方、対応するＤＡＴＡのＩＤがあると判定した場合（ステップＳ１５；Ｙｅｓ）、連続パケット抽出部１２４は、ＡＣＫとＤＡＴＡの対応付けができたので、ＡＣＫテーブル１１６のＤａｔａ．ＩＤ１１６ｅに対応するＤＡＴＡのＩＤを記録する。そして、連続パケット抽出部１２４は、帯域計測を開始してから何個目のＡＣＫであるかを判定する（ステップＳ１６）。
【００６８】
帯域計測を開始してから１個目のＡＣＫであると判定した場合（ステップＳ１６；１個目）、連続パケット抽出部１２４は、次のパケットの到着を待つべく、ステップＳ１に移行する。一方、帯域計測を開始してから２個目のＡＣＫであると判定した場合（ステップＳ１６；２個目）、連続パケット抽出部１２４は、何個のＤＡＴＡに対してＡＣＫを返しているかを特定し、特定したＤＡＴＡ／ＡＣＫ比をステータステーブル１１３に登録する（ステップＳ１７）。例えば、連続パケット抽出部１２４は、ＡＣＫテーブル１１６から、以下の式（３）を満たすＤＡＴＡ／ＡＣＫ比、すなわちＡＣＫに対するＤＡＴＡの個数（Ｎｕｍ．Ｓｔｒｅａｍ）を特定する。
Ｎｕｍ．Ｓｔｒｅａｍ＝ＡＣＫテーブル［Ｎｏｗ．Ａｃｋ．ＩＤ］．Ｄａｔａ．ＩＤ−ＡＣＫテーブル［Ｎｏｗ．Ａｃｋ．ＩＤ−１］．Ｄａｔａ．ＩＤ・・・式（３）
現在のＡＣＫのＩＤに対応するＤＡＴＡのＩＤと、前回のＡＣＫのＩＤに対応するＤＡＴＡのＩＤとの差分が、ＤＡＴＡ／ＡＣＫ比となるからである。そして、連続パケット抽出部１２４は、特定したＤＡＴＡ／ＡＣＫ比を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する。
【００６９】
そして、帯域推定部１２５は、ＤＡＴＡ／ＡＣＫ比が１以外であるか否かを判定する（ステップＳ１９）。ＤＡＴＡ／ＡＣＫ比が１以外であると判定した場合（ステップＳ１９；Ｙｅｓ）、帯域推定部１２５は、帯域解析テーブル１１４を構築する（ステップＳ２１）。例えば、帯域推定部１２５は、帯域解析テーブル１１４のレコードをＤＡＴＡ／ＡＣＫ比の数分だけ作成する。そして、帯域推定部１２５は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７０】
一方、ＤＡＴＡ／ＡＣＫ比が１以外でないと判定した場合（ステップＳ１９；Ｎｏ）、帯域推定部１２５は、連続パケットは送信されないので、ＡＣＫテーブル１１６の、該当するコネクションＩＤに対応するレコードをリセットする（ステップＳ２２）。そして、帯域推定部１２５は、ＡＣＫテーブル１１６の１レコード目に、今回受信されたＡＣＫの情報を更新する（ステップＳ２３）。そして、帯域推定部１２５は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７１】
一方、帯域計測を開始してから２個目以降のＡＣＫであると判定した場合（ステップＳ１６；２個目以降）、連続パケット抽出部１２４は、何個のＤＡＴＡに対してＡＣＫを返しているかを特定し、特定したＤＡＴＡ／ＡＣＫ比を登録する（ステップＳ１８）。特定方法および登録方法は、ステップＳ１７の処理と同一であるので、その説明は省略する。
【００７２】
そして、帯域推定部１２５は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであるか否かを判定する（ステップＳ２０）。前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じでないと判定した場合（ステップＳ２０；Ｎｏ）、帯域推定部１２５は、連続パケット判定処理（ステップＳ２９）に移行する。
【００７３】
前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであると判定した場合（ステップＳ２０；Ｙｅｓ）、帯域推定部１２５は、ステータステーブル１１３のステータス（Ｓｔａｔｕｓ１１３ｂ）を判定する（ステップＳ２４）。
【００７４】
ステータスが「ＩＮＩＴ」であると判定した場合（ステップＳ２４；ＩＮＩＴ）、帯域推定部１２５は、ステータステーブル１１３のステータスを「ＳＥＴ＿ＩＤ」に変更する（ステップＳ２５）。そして、帯域推定部１２５は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７５】
ステータスが「ＳＥＴ＿ＩＤ」であると判定した場合（ステップＳ２４；ＳＥＴ＿ＩＤ）、帯域推定部１２５は、ＡＣＫに対応するＤＡＴＡがステータステーブル１１３のＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡであるか否かを判定する（ステップＳ２６）。ＡＣＫに対応するＤＡＴＡが、連続パケットの送信パターンが安定した後のＤＡＴＡであるか否かが判定される。ＡＣＫに対応するＤＡＴＡがＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡでないと判定した場合（ステップＳ２６；Ｎｏ）、帯域推定部１２５は、連続パケットの送信パターンが安定していないと判断し、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７６】
一方、ＡＣＫに対応するＤＡＴＡがＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡであると判定した場合（ステップＳ２６；Ｙｅｓ）、帯域推定部１２５は、ステータステーブル１１３のステータスを「ＭＥＡＳＵＲＥ」に変更する（ステップＳ２７）。そして、帯域推定部１２５は、ステップＳ２８に移行する。
【００７７】
ステータスが「ＭＥＡＳＵＲＥ」であると判定した場合（ステップＳ２４；ＭＥＡＳＵＲＥ）、帯域推定部１２５は、ステップＳ２８に移行する。ステップＳ２８では、帯域推定部１２５は、ＤＡＴＡ／ＡＣＫ比の個数毎に帯域を計測する（ステップＳ２８）。例えば、帯域推定部１２５は、ＡＣＫに対応するＤＡＴＡの帯域データを、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの１個目のＩＤに対応するパケット長（Ｓｉｚｅ１１４ｃ）およびパケット間の到着時刻間隔（Ｔｉｍｅ．Ｇａｐ１１４ｄ）に加算する。ここでいう帯域データは、ＡＣＫに対応するＤＡＴＡのパケット長および当該ＤＡＴＡと１個前のＤＡＴＡとの間のパケット間の到着時刻間隔を意味する。そして、帯域推定部１２５は、ＡＣＫに対応するＤＡＴＡの１個前のＤＡＴＡの帯域データを、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの２個目のＩＤに対応するパケット長（Ｓｉｚｅ１１４ｃ）およびパケット間の到着時刻間隔（Ｔｉｍｅ．Ｇａｐ１１４ｄ）に加算する。なお、ＤＡＴＡ／ＡＣＫ比が３であれば、帯域推定部１２５は、さらに、ＡＣＫに対応するＤＡＴＡの２個前のＤＡＴＡの帯域データを、３個目のＩＤに対応するパケット長（Ｓｉｚｅ１１４ｃ）およびパケット間の到着時刻間隔（Ｔｉｍｅ．Ｇａｐ１１４ｄ）に加算する。そして、帯域推定部１２５は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７８】
ステップＳ２９では、連続パケット判定処理が実行された後、帯域推定部１２５は、次のパケットの到着を待つべく、ステップＳ１に移行する。
【００７９】
［連続パケット判定処理のフローチャート］
図９Ｄに示すように、帯域推定部１２５は、別々に統計した帯域で一番帯域の狭い解析データを、フロー制御の影響を受けたものとしてフィルタする（ステップＳ３０）。例えば、帯域推定部１２５は、以下の式（４）により、帯域が一番狭い解析データをフロー制御の影響を受けたパケット群に対応する解析データであると特定する。なお、式（４）では、連続パケットの個数分のインデックス番号であるＢＷ．ＩＤをｉとする。
ａｒｇｍｉｎｉ（帯域解析テーブル［ｉ］．Ｓｉｚｅ／帯域解析テーブル［ｉ］．Ｔｉｍｅ．Ｇａｐ）・・・式（４）
帯域が一番狭い解析データは、ｉに対応するＳｉｚｅ１１４ｃ、Ｔｉｍｅ．Ｇａｐ１１４ｄを指す。
【００８０】
そして、帯域推定部１２５は、フィルタされた後残った解析データを統計情報テーブル１１７へ加算する（ステップＳ３１）。例えば、帯域推定部１２５は、帯域解析テーブル１１４の式（４）により特定された解析データを除去する。そして、帯域推定部１２５は、残った解析データのＳｉｚｅ１１４ｃを統計情報テーブル１１７のＳｉｚｅ１１７ｂに加算し、当該解析データのＴｉｍｅ．Ｇａｐ１１４ｄを統計情報テーブル１１７のＴｉｍｅ．Ｇａｐ１１７ｃに加算する。
【００８１】
そして、帯域推定部１２５は、解析情報をリセットする（ステップＳ３２）。例えば、帯域推定部１２５は、解析情報テーブル１１２のステータステーブル１１３と、帯域解析テーブル１１４およびＡＣＫテーブル１１６の該当するコネクションＩＤに対応するレコードをリセットする。
【００８２】
そして、帯域推定部１２５は、ＡＣＫテーブル１１６の１レコード目に、今回受信されたＡＣＫの情報を更新する（ステップＳ３３）。そして、帯域推定部１２５は、連続パケット判定処理を終了する。
【００８３】
［連続パケットの個数を特定する場合の処理のシーケンス］
次に、連続パケットの個数を特定する場合の処理のシーケンスを、各種テーブル内のデータの内容を用いながら説明する。図１０は、連続パケットの個数を特定する場合の処理のシーケンスを示す図である。なお、以下では、図１４Ａ〜図１４Ｅに示される解析情報テーブル１１２内の各種テーブルを用いながら説明する。なお、シーケンスでは、データパケットを「ＤＡＴＡパケット」と記載し、ＡＣＫパケットを「ＡＣＫパケット」と記載する。また、コネクションＩＤが、「０」であるとする。
【００８４】
ステップＳ１０１では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ０を受信する。ＤＡＴＡパケットＤ０には、シーケンス番号（Ｓｅｑ）が「１」と設定され、パケット長（Ｌｅｎ）が「１５００」と設定されている。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットであるので、パケット解析装置１は、以前に同じコネクションのパケットを受信していないと判定し、コネクション管理テーブル１１１に今回のパケットのコネクション情報を登録する。また、ＤＡＴＡパケットＤ０のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が１５００であり０より大きいので、パケット解析装置１は、ＤＡＴＡであると判定する。
【００８５】
そして、パケット解析装置１は、ステータステーブル１１３のステータス（Ｓｔａｔｕｓ１１３ｂ）を参照する。ここでは、ステータステーブル１１３には、Ｓｔａｔｕｓ１１３ｂとして「ＩＮＩＴ」が設定されている（図１４Ａ、Ｓ１０１参照）。そこで、パケット解析装置１は、ＤＡＴＡテーブル１１５に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＤＡＴＡテーブル１１５には、Ｄａｔａ．ＩＤ１１５ｂとして「０」、Ｓｅｑ１１５ｃとして「１」、Ｌｅｎ１１５ｄとして「１５００」、Ｔｉｍｅ１１５ｅとして「１００」が設定される（図１４Ａ、Ｓ１０１参照）。なお、Ｔｉｍｅ１１５ｅは、ＤＡＴＡパケットＤ０の到着時刻である。また、パケット解析装置１は、ステータステーブル１１３のＮｏｗ．Ｄａｔａ．ＩＤ１１３ｆに現在のＤＡＴＡパケットＤ０のＩＤである「０」を更新する（図１４Ａ、Ｓ１０１参照）。そして、ステップＳ１０１の処理が終了する。
【００８６】
ステップＳ１０２では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ０を受信する。ＡＣＫパケットＡ０には、ＡＣＫ番号（Ａｃｋ）が「１５０１」と設定され、ＲＷＩＮ（Ｒｗｉｎ）が「６５７００」と設定されている。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットでないので、パケット解析装置１は、以前に同じコネクションのパケットを受信したと判定する。また、ＡＣＫパケットＡ０のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が０であるので、パケット解析装置１は、ＡＣＫであると判定する。
【００８７】
そして、パケット解析装置１は、ＡＣＫテーブル１１６に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＡＣＫテーブル１１６には、Ａｃｋ．ＩＤ１１６ｂとして「０」、Ａｃｋ１１６ｃとして「１５０１」、Ｔｉｍｅ１１６ｄとして「３００」が設定される（図１４Ｂ、Ｓ１０２参照）。なお、Ｔｉｍｅ１１６ｄは、ＡＣＫパケットＡ０の到着時刻である。
【００８８】
そして、パケット解析装置１は、式（２）を用いて、ＡＣＫパケットＡ０とＤＡＴＡパケットの対応付けを行う。ここでは、現在のＡＣＫパケットのＩＤは「０」であるので、ＡＣＫテーブル［０］．Ａｃｋ１１６ｃとして「１５０１」が抽出される（図１４Ｂ、Ｓ１０２参照）。ＤＡＴＡテーブル１１５のＤａｔａ．ＩＤ１１５ｂが「０」であるとき、ＤＡＴＡテーブル［０］．Ｓｅｑ１１５ｃとして「１」、ＤＡＴＡテーブル［０］．Ｌｅｎ１１５ｄとして「１５００」が抽出される（図１４Ｂ、Ｓ１０２参照）。すると、パケット解析装置１は、Ｄａｔａ．ＩＤが「０」であるとき、式（２）を満たし、ＡＣＫパケットＡ０とＤＡＴＡパケットＤ０の対応付けができたので、ＡＣＫテーブル１１６のＤａｔａ．ＩＤ１１６ｅに対応するＤＡＴＡパケットのＩＤである「０」を記録する（図１４Ｂ、Ｓ１０２参照）。そして、ＡＣＫパケットＡ１は１個目のＡＣＫであるので、ステップＳ１０２の処理が終了する。
【００８９】
ステップＳ１０３では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ１を受信する。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットでないので、パケット解析装置１は、以前に同じコネクションのパケットを受信したと判定する。また、ＤＡＴＡパケットＤ１のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が１５００であり０より大きいので、パケット解析装置１は、ＤＡＴＡであると判定する。
【００９０】
そして、パケット解析装置１は、ステータステーブル１１３のステータス（Ｓｔａｔｕｓ１１３ｂ）を参照する。ここでは、ステータステーブル１１３には、Ｓｔａｔｕｓ１１３ｂとして「ＩＮＩＴ」が設定されている（図１４Ｃ、Ｓ１０３参照）。そこで、パケット解析装置１は、ＤＡＴＡテーブル１１５に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＤＡＴＡテーブル１１５には、Ｄａｔａ．ＩＤ１１５ｂとして「１」、Ｓｅｑ１１５ｃとして「１５０１」、Ｌｅｎ１１５ｄとして「１５００」、Ｔｉｍｅ１１５ｅとして「５００」が設定される（図１４Ｃ、Ｓ１０３参照）。なお、Ｔｉｍｅ１１５ｅは、ＤＡＴＡパケットＤ１の到着時刻である。また、パケット解析装置１は、ステータステーブル１１３のＮｏｗ．Ｄａｔａ．ＩＤ１１３ｆに現在のＤＡＴＡパケットＤ１のＩＤである「１」を更新する（図１４Ｃ、Ｓ１０３参照）。そして、ステップＳ１０３の処理が終了する。
【００９１】
ステップＳ１０４では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ２を受信する。パケット解析装置１は、ステップＳ１０３と同様に、ＤＡＴＡパケットＤ２の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１４Ｄ、Ｓ１０４参照）。そして、ステップＳ１０４の処理が終了する。
【００９２】
ステップＳ１０５では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ１を受信する。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットでないので、パケット解析装置１は、以前に同じコネクションのパケットを受信したと判定する。また、ＡＣＫパケットＡ１のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が０であるので、パケット解析装置１は、ＡＣＫであると判定する。
【００９３】
そして、パケット解析装置１は、ＡＣＫテーブル１１６に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＡＣＫテーブル１１６には、Ａｃｋ．ＩＤ１１６ｂとして「１」、Ａｃｋ１１６ｃとして「４５０１」、Ｔｉｍｅ１１６ｄとして「８００」が設定される（図１４Ｅ、Ｓ１０５参照）。なお、Ｔｉｍｅ１１６ｄは、ＡＣＫパケットＡ１の到着時刻である。
【００９４】
そして、パケット解析装置１は、式（２）を用いて、ＡＣＫパケットＡ１とＤＡＴＡパケットの対応付けを行う。ここでは、現在のＡＣＫパケットのＩＤは「１」であるので、ＡＣＫテーブル［１］．Ａｃｋ１１６ｃとして「４５０１」が抽出される（図１４Ｅ、Ｓ１０５参照）。ＤＡＴＡテーブル１１５のＤａｔａ．ＩＤ１１５ｂが「２」であるとき、ＤＡＴＡテーブル［２］．Ｓｅｑ１１５ｃとして「３００１」、ＤＡＴＡテーブル［２］．Ｌｅｎ１１５ｄとして「１５００」が抽出される（図１４Ｄ、Ｓ１０４参照）。すると、パケット解析装置１は、Ｄａｔａ．ＩＤが「２」であるとき、式（２）を満たし、ＡＣＫパケットＡ１とＤＡＴＡパケットＤ２の対応付けができたので、ＡＣＫテーブル１１６のＤａｔａ．ＩＤ１１６ｅに対応するＤＡＴＡパケットのＩＤである「２」を記録する（図１４Ｅ、Ｓ１０５参照）。
【００９５】
そして、ＡＣＫパケットＡ１は２個目のＡＣＫであるので、パケット解析装置１は、式（３）を用いて、何個のＤＡＴＡパケットに対してＡＣＫを返しているかを示すＤＡＴＡ／ＡＣＫ比を特定する。ここでは、現在のＡＣＫパケットＡ１のＩＤが「１」であり、ＡＣＫテーブル１１６から、ＡＣＫパケットＡ１に対応するＤＡＴＡパケットのＩＤは「２」である（図１４Ｅ、Ｓ１０５参照）。また、前回のＡＣＫパケットＡ０のＩＤが「０」であり、ＡＣＫテーブル１１６から、ＡＣＫパケットＡ０に対応するＤＡＴＡパケットのＩＤは「０」である（図１４Ｄ、Ｓ１０４参照）。すると、パケット解析装置１は、式（３）を用いて、「２」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定する。すなわち、ＤＡＴＡ／ＡＣＫ比が「２」である。つまり、連続パケットの個数は「２」である。そこで、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比である「２」を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する（図１４Ｅ、Ｓ１０５参照）。
【００９６】
そして、パケット解析装置１は、帯域解析テーブル１１４を構築する。ここでは、パケット解析装置１は、帯域解析テーブル１１４のレコードを、ＤＡＴＡ／ＡＣＫ比である「２」個分だけ構築する（図１４Ｅ、Ｓ１０５参照）。そして、ステップＳ１０５の処理が終了する。
【００９７】
［連続パケットを特定する場合の処理のシーケンス］
引き続き、連続パケットを特定する場合の処理のシーケンスを、各種テーブル内のデータの内容を用いながら説明する。図１１は、連続パケットを特定する場合の処理のシーケンスを示す図である。なお、以下では、図１５Ａ〜図１５Ｆに示される解析情報テーブル１１２内の各種テーブルを用いながら説明する。なお、シーケンスでは、データパケットを「ＤＡＴＡパケット」と記載し、ＡＣＫパケットを「ＡＣＫパケット」と記載する。また、コネクションＩＤが、「０」であるとする。
【００９８】
ステップＳ１０６では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ３を受信する。パケット解析装置１は、ステップＳ１０３と同様に、ＤＡＴＡパケットＤ３の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１５Ａ、Ｓ１０６参照）。そして、ステップＳ１０６の処理が終了する。
【００９９】
ステップＳ１０７では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ４を受信する。パケット解析装置１は、ステップＳ１０３と同様に、ＤＡＴＡパケットＤ４の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１５Ｂ、Ｓ１０７参照）。そして、ステップＳ１０７の処理が終了する。
【０１００】
ステップＳ１０８では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ２を受信する。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットでないので、パケット解析装置１は、以前に同じコネクションのパケットを受信したと判定する。また、ＡＣＫパケットＡ２のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が０であるので、パケット解析装置１は、ＡＣＫであると判定する。
【０１０１】
そして、パケット解析装置１は、ＡＣＫテーブル１１６に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＡＣＫテーブル１１６には、Ａｃｋ．ＩＤ１１６ｂとして「２」、Ａｃｋ１１６ｃとして「７５０１」、Ｔｉｍｅ１１６ｄとして「１３００」が設定される（図１５Ｃ、Ｓ１０８参照）。なお、Ｔｉｍｅ１１６ｄは、ＡＣＫパケットＡ２の到着時刻である。
【０１０２】
そして、パケット解析装置１は、式（２）を用いて、ＡＣＫパケットＡ２とＤＡＴＡパケットの対応付けを行う。ここでは、現在のＡＣＫパケットのＩＤは「２」であるので、ＡＣＫテーブル［２］．Ａｃｋ１１６ｃとして「７５０１」が抽出される（図１５Ｃ、Ｓ１０８参照）。ＤＡＴＡテーブル１１５のＤａｔａ．ＩＤ１１５ｂが「４」であるとき、ＤＡＴＡテーブル［４］．Ｓｅｑ１１５ｃとして「６００１」、ＤＡＴＡテーブル［４］．Ｌｅｎ１１５ｄとして「１５００」が抽出される（図１５Ｃ、Ｓ１０８参照）。すると、パケット解析装置１は、Ｄａｔａ．ＩＤが「４」であるとき、式（２）を満たし、ＡＣＫパケットＡ２とＤＡＴＡパケットＤ４の対応付けができたので、ＡＣＫテーブル１１６のＤａｔａ．ＩＤ１１６ｅに対応するＤＡＴＡパケットのＩＤである「４」を記録する（図１５Ｃ、Ｓ１０８参照）。
【０１０３】
そして、ＡＣＫパケットＡ３は３個目のＡＣＫであるので、パケット解析装置１は、式（３）を用いて、何個のＤＡＴＡパケットに対してＡＣＫを返しているかを示すＤＡＴＡ／ＡＣＫ比を特定する。ここでは、現在のＡＣＫパケットＡ２のＩＤが「２」であり、ＡＣＫテーブル１１６から、ＡＣＫパケットＡ２に対応するＤＡＴＡパケットのＩＤは「４」である（図１５Ｃ、Ｓ１０８参照）。また、前回のＡＣＫパケットＡ１のＩＤが「１」であり、ＡＣＫテーブル１１６から、ＡＣＫパケットＡ１に対応するＤＡＴＡパケットのＩＤは「２」である（図１５Ｃ、Ｓ１０８参照）。すると、パケット解析装置１は、式（３）を用いて、「２」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定する。すなわち、ＤＡＴＡ／ＡＣＫ比が「２」である。つまり、連続パケットの個数は「２」である。そこで、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比である「２」を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する（図１５Ｃ、Ｓ１０８参照）。
【０１０４】
そして、パケット解析装置１は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであるか否かを判定する。ここでは、前回登録したＤＡＴＡ／ＡＣＫ比が「２」であり、今回登録したＤＡＴＡ／ＡＣＫ比は「２」であるので、同じであると判定される。つまり、送信パターンが同じであると判断される。そこで、パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂを、「ＩＮＩＴ」から「ＳＥＴ＿ＩＤ」に変更する（図１５Ｃ、Ｓ１０８参照）。そして、ステップＳ１０８の処理が終了する。
【０１０５】
ステップＳ１０９では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ５を受信する。パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂが「ＳＥＴ＿ＩＤ」であるので、Ｓｔａｒｔ．ＩＤ１１３ｃに、現在のＤＡＴＡのＩＤであるＮｏｗ．Ｄａｔａ．ＩＤ１１３ｆを設定する（図１５Ｄ、Ｓ１０９参照）。そして、パケット解析装置１は、ステップＳ１０３と同様に、ＤＡＴＡパケットＤ５の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１５Ｄ、Ｓ１０９参照）。そして、ステップＳ１０９の処理が終了する。
【０１０６】
ステップＳ１１０では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ６を受信する。パケット解析装置１は、ステップＳ１０９と同様に、ＤＡＴＡパケットＤ６の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１５Ｅ、Ｓ１１０参照）。そして、ステップＳ１１０の処理が終了する。
【０１０７】
ステップＳ１１１では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ３を受信する。すると、パケット解析装置１は、コネクション管理テーブル１１１を参照して、以前に同じコネクションのパケットを受信したか否かを判定する。ここでは、今回が初めてのパケットでないので、パケット解析装置１は、以前に同じコネクションのパケットを受信したと判定する。また、ＡＣＫパケットＡ３のＴＣＰヘッダのＦＩＮフラグがＯＦＦであるとすると、さらに、パケット解析装置１は、受信したパケットがＤＡＴＡであるか否かを判定する。ここでは、受信したパケットにおけるＴＣＰヘッダのパケット長（Ｌｅｎ）が０であるので、パケット解析装置１は、ＡＣＫであると判定する。
【０１０８】
そして、パケット解析装置１は、ＡＣＫテーブル１１６に、コネクションＩＤ「０」に対応する情報を追加する。ここでは、ＡＣＫテーブル１１６には、Ａｃｋ．ＩＤ１１６ｂとして「３」、Ａｃｋ１１６ｃとして「１０５０１」、Ｔｉｍｅ１１６ｄとして「１８００」が設定される（図１５Ｆ、Ｓ１１１参照）。なお、Ｔｉｍｅ１１６ｄは、ＡＣＫパケットＡ３の到着時刻である。
【０１０９】
そして、パケット解析装置１は、式（２）を用いて、ＡＣＫパケットＡ３とＤＡＴＡパケットの対応付けを行う。ここでは、現在のＡＣＫパケットのＩＤは「３」であるので、ＡＣＫテーブル［３］．Ａｃｋ１１６ｃとして「１０５０１」が抽出される（図１５Ｆ、Ｓ１１１参照）。ＤＡＴＡテーブル１１５のＤａｔａ．ＩＤ１１５ｂが「６」であるとき、ＤＡＴＡテーブル［６］．Ｓｅｑ１１５ｃとして「９００１」、ＤＡＴＡテーブル［６］．Ｌｅｎ１１５ｄとして「１５００」が抽出される（図１５Ｆ、Ｓ１１１参照）。すると、パケット解析装置１は、Ｄａｔａ．ＩＤが「６」であるとき、式（２）を満たし、ＡＣＫパケットＡ３とＤＡＴＡパケットＤ６の対応付けができたので、ＡＣＫテーブル１１６のＤａｔａ．ＩＤ１１６ｅに対応するＤＡＴＡパケットのＩＤである「６」を記録する（図１５Ｆ、Ｓ１１１参照）。
【０１１０】
そして、ＡＣＫパケットＡ４は４個目のＡＣＫであるので、パケット解析装置１は、式（３）を用いて、何個のＤＡＴＡパケットに対してＡＣＫを返しているかを示すＤＡＴＡ／ＡＣＫ比を特定する。ここでは、ステップＳ１０８と同様、パケット解析装置１は、式（３）を用いて、「２」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定する。すなわち、ＤＡＴＡ／ＡＣＫ比が「２」である。つまり、連続パケットの個数は「２」である。そこで、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比である「２」を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する（図１５Ｆ、Ｓ１１１参照）。
【０１１１】
そして、パケット解析装置１は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであるか否かを判定する。ここでは、前回登録したＤＡＴＡ／ＡＣＫ比が「２」であり、今回登録したＤＡＴＡ／ＡＣＫ比は「２」であるので、同じであると判定される。つまり、送信パターンが同じであると判断される。
【０１１２】
そして、パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂが「ＳＥＴ＿ＩＤ」であるので、ＡＣＫに対応するＤＡＴＡがステータステーブル１１３のＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡであるか否かを判定する。ここでは、ＡＣＫパケットＡ３に対応するＤＡＴＡパケットＤ６のＩＤが「６」であり、Ｓｔａｒｔ．ＩＤ１１３ｃが「５」であるので、ＡＣＫパケットＡ４に対応するＤＡＴＡパケットＤ６がＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡパケットであると判定される。すなわち、ＡＣＫパケットＡ３に対応するＤＡＴＡパケットＤ６は、連続パケットの送信パターンが安定した後のＤＡＴＡパケットであると判断される。そこで、パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂを、「ＳＥＴ＿ＩＤ」から「ＭＥＡＳＵＲＥ」に変更する（図１５Ｆ、Ｓ１１１参照）。
【０１１３】
そして、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比の個数毎に帯域を計測する。ここでは、パケット解析装置１は、ＡＣＫパケットＡ３に対応するＤＡＴＡパケットＤ６のパケット長を、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「０」に対応するパケット長（Ｓｉｚｅ１１４ｃ）に加算する。そして、パケット解析装置１は、ＡＣＫパケットＡ３に対応するＤＡＴＡパケットＤ６とＤＡＴＡパケットＤ５とのパケット間の到着時刻間隔を、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「０」に対応する到着時刻間隔（Ｔｉｍｅ．Ｇａｐ１１４ｄ）に加算する（図１５Ｆ、Ｓ１１１、ｔ１参照）。また、パケット解析装置１は、ＤＡＴＡパケットＤ６の１つ前のＤＡＴＡパケットＤ５のパケット長を、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「１」に対応するパケット長（Ｓｉｚｅ１１４ｃ）に加算する。そして、パケット解析装置１は、ＤＡＴＡパケットＤ５とＤＡＴＡパケットＤ４とのパケット間の到着時刻間隔を、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「０」に対応する到着時刻間隔（Ｔｉｍｅ．Ｇａｐ１１４ｄ）に加算する（図１５Ｆ、Ｓ１１１、ｔ２参照）。そして、ステップＳ１１１の処理が終了する。
【０１１４】
以降、パケット解析装置１は、同様に、連続パケットの送信パターンが安定している限り、帯域解析テーブル１１４に帯域データをそれぞれ加算していく。その後、パケット解析装置１は、例えば、受信したパケットのＴＣＰヘッダのＦＩＮフラグがＯＮである場合に、解析情報をリセットする。このとき、パケット解析装置１は、フロー制御の影響を受けた解析データを除外し、残った解析データを統計情報テーブル１１７へ加算する。なお、解析情報をリセットするときは、ＦＩＮフラグがＯＮであった場合に限らず、例えば、ＲＷＩＮに変化があった場合やＤＡＴＡ／ＡＣＫ比に変化があった場合もある。
【０１１５】
［リセットする処理のシーケンス］
そこで、ＤＡＴＡ／ＡＣＫ比に変化があった場合にリセットする処理のシーケンスを、図１２を参照して説明する。図１２は、リセットする処理のシーケンスを示す図である。なお、以下では、図１６Ａ〜図１６Ｆに示される解析情報テーブル１１２内の各種テーブルを用いながら説明する。なお、シーケンスでは、データパケットを「ＤＡＴＡパケット」と記載し、ＡＣＫパケットを「ＡＣＫパケット」と記載する。また、コネクションＩＤが、「０」であるとする。
【０１１６】
ステップＳ１１２では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ７を受信する。パケット解析装置１は、ステップＳ１０９と同様に、ＤＡＴＡパケットＤ７の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１６Ａ、Ｓ１１２参照）。そして、ステップＳ１１２の処理が終了する。
【０１１７】
ステップＳ１１３では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ８を受信する。パケット解析装置１は、ステップＳ１１０と同様に、ＤＡＴＡパケットＤ８の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１６Ｂ、Ｓ１１３参照）。そして、ステップＳ１１３の処理が終了する。
【０１１８】
ステップＳ１１４では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ４を受信する。パケット解析装置１は、ステップＳ１１１と同様に、ＡＣＫパケットＡ４の情報およびＡＣＫパケットＡ４に対応するＤＡＴＡパケットＤ８のＩＤの情報をＡＣＫテーブル１１６に記録する（図１６Ｃ、Ｓ１１４参照）。また、パケット解析装置１は、ステップＳ１１１と同様に、ＤＡＴＡ／ＡＣＫ比の個数毎に帯域を計測し、それぞれ帯域解析テーブル１１４に記録する（図１６Ｃ、Ｓ１１４参照）。そして、ステップＳ１１４の処理が終了する。
【０１１９】
ステップＳ１１５では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ９を受信する。パケット解析装置１は、ステップＳ１０９と同様に、ＤＡＴＡパケットＤ９の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１６Ｄ、Ｓ１１５参照）。そして、ステップＳ１１５の処理が終了する。
【０１２０】
ステップＳ１１６では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ１０を受信する。パケット解析装置１は、ステップＳ１１０と同様に、ＤＡＴＡパケットＤ１０の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１６Ｅ、Ｓ１１６参照）。そして、ステップＳ１１６の処理が終了する。
【０１２１】
ステップＳ１１７では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ５を受信する。パケット解析装置１は、ステップＳ１１１と同様に、式（３）を用いて、何個のＤＡＴＡパケットに対してＡＣＫを返しているかを示すＤＡＴＡ／ＡＣＫ比を特定する。ここでは、パケット解析装置１は、ＡＣＫパケットＡ５に対応するＤＡＴＡパケットがＤ９であり、式（３）を用いて、「１」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定する。すなわち、ＤＡＴＡ／ＡＣＫ比が「１」である。
【０１２２】
そして、パケット解析装置１は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回のＤＡＴＡ／ＡＣＫ比とが同じであるか否かを判定する。ここでは、前回登録したＤＡＴＡ／ＡＣＫ比が「２」であり、今回のＤＡＴＡ／ＡＣＫ比は「１」であるので、同じでないと判定される。つまり、送信パターンが変化したと判断される。
【０１２３】
そこで、パケット解析装置１は、過去の連続パケットの情報のみを統計情報テーブル１１７に加算して、解析情報テーブル１１２をリセットする。すなわち、パケット解析装置１は、式（４）を用いて、帯域が一番狭い解析データをフロー制御の影響を受けたパケット群に対応する解析データであると特定する。ここでは、ＢＷ．ＩＤが「０」である場合、帯域解析テーブル［０］．Ｓｉｚｅ／帯域解析テーブル［０］．Ｔｉｍｅ．Ｇａｐは３０００／２００（＝１５）である（図１６Ｅ、帯域解析テーブル１１４を参照）。ＢＷ．ＩＤが「１」である場合、帯域解析テーブル［１］．Ｓｉｚｅ／帯域解析テーブル［１］．Ｔｉｍｅ．Ｇａｐは３０００／８００（＝３．７５）である（図１６Ｅ、帯域解析テーブル１１４を参照）。したがって、ＢＷ．ＩＤ「１」に対応する解析データが、帯域が一番狭い解析データであり、フロー制御の影響を受けたパケット群に対応する解析データであると考えられる。パケット解析装置１は、ＢＷ．ＩＤ「１」に対応する解析データを除去して、残りの解析データのＳｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄを統計情報テーブル１１７にそれぞれ加算する（図１６Ｆ、統計情報テーブル１１７を参照）。
【０１２４】
そして、パケット解析装置１は、解析情報テーブル１１２のステータステーブル１１３、帯域解析テーブル１１４、ＡＣＫテーブル１１６をリセットする。その後、パケット解析装置１は、今回受信したＡＣＫパケットＡ５の情報をリセット処理したＡＣＫテーブル１１６に再度登録する（図１６Ｆ、ＡＣＫテーブル１１６を参照）。そして、ステップＳ１１７の処理が終了する。
【０１２５】
［連続パケットの送信パターンが安定していない場合の処理のシーケンス］
次に、連続パケットの送信パターンが安定していない場合の処理のシーケンスを、図１３を参照して説明する。図１３は、連続パケットの送信パターンが安定していない場合の処理のシーケンスを示す図である。なお、以下では、図１７Ａ〜図１７Ｃに示される解析情報テーブル１１２内の各種テーブルを用いながら説明する。なお、シーケンスでは、データパケットを「ＤＡＴＡパケット」と記載し、ＡＣＫパケットを「ＡＣＫパケット」と記載する。また、コネクションＩＤが、「０」であるとする。
【０１２６】
ＤＡＴＡパケットＤ１２〜Ｄ１４が、端末３から送信されたとする。
【０１２７】
ステップＳ１１８では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ７を受信する。パケット解析装置１は、ステップＳ１１１と同様に、ＡＣＫパケットＡ７の情報およびＡＣＫパケットＡ７に対応するＤＡＴＡパケットＤ１２のＩＤの情報をＡＣＫテーブル１１６に記録する（図１７Ａ、Ｓ１１８参照）。また、パケット解析装置１は、ステップＳ１０８と同様に、ＤＡＴＡ／ＡＣＫ比を特定する。ここでは、パケット解析装置１は、「２」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定するとする。そこで、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比である「２」を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する（図１７Ａ、Ｓ１１８参照）。そして、パケット解析装置１は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであるとする。すると、パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂを、「ＩＮＩＴ」から「ＳＥＴ＿ＩＤ」に変更する（図１７Ａ、Ｓ１１８参照）。そして、ステップＳ１１８の処理が終了する。
【０１２８】
ステップＳ１１９では、パケット解析装置１は、端末３から送信されたＤＡＴＡパケットＤ１５を受信する。パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂが「ＳＥＴ＿ＩＤ」であるので、Ｓｔａｒｔ．ＩＤ１１３ｃに、現在のＤＡＴＡのＩＤであるＮｏｗ．Ｄａｔａ．ＩＤ１１３ｆを設定する（図１７Ｂ、Ｓ１１９参照）。そして、パケット解析装置１は、ステップＳ１０９と同様に、ＤＡＴＡパケットＤ１５の情報を、ＤＡＴＡテーブル１１５およびステータステーブル１１３に記録する（図１７Ｂ、Ｓ１１９参照）。そして、ステップＳ１１９の処理が終了する。
【０１２９】
ステップＳ１２０では、パケット解析装置１は、端末４から送信されたＡＣＫパケットＡ８を受信する。パケット解析装置１は、ステップＳ１１１と同様に、ＡＣＫパケットＡ８の情報およびＡＣＫパケットＡ８に対応するＤＡＴＡパケットＤ１４のＩＤの情報をＡＣＫテーブル１１６に記録する（図１７Ｃ、Ｓ１２０参照）。また、パケット解析装置１は、ステップＳ１１１と同様に、ＤＡＴＡ／ＡＣＫ比を特定する。ここでは、パケット解析装置１は、「２」個のＤＡＴＡパケットに対してＡＣＫを返していることを特定するとする。そこで、パケット解析装置１は、ＤＡＴＡ／ＡＣＫ比である「２」を、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに登録する（図１７Ｃ、Ｓ１２０参照）。そして、パケット解析装置１は、ステータステーブル１１３のＮｕｍ．Ｓｔｒｅａｍ１１３ｄに対して、前回登録したＤＡＴＡ／ＡＣＫ比と今回登録したＤＡＴＡ／ＡＣＫ比とが同じであるとする。
【０１３０】
そして、パケット解析装置１は、ステータステーブル１１３のＳｔａｔｕｓ１１３ｂが「ＳＥＴ＿ＩＤ」であるので、ＡＣＫに対応するＤＡＴＡがステータステーブル１１３のＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡであるか否かを判定する。ここでは、ＡＣＫパケットＡ８に対応するＤＡＴＡパケットＤ１４のＩＤが「１４」であり、Ｓｔａｒｔ．ＩＤ１１３ｃが「１５」であるので、ＡＣＫパケットＡ８に対応するＤＡＴＡパケットＤ１４がＳｔａｒｔ．ＩＤ１１３ｃ以降のＤＡＴＡパケットでないと判定される。すなわち、ＡＣＫパケットＡ８に対応するＤＡＴＡパケットＤ１４は、連続パケットの送信パターンが安定した後のＤＡＴＡパケットでないと判断される。そこで、パケット解析装置１は、何もしないで、ステップＳ１２０の処理が終了する。
【０１３１】
［パケット解析処理の帯域計測の一例］
次に、実施例に係るパケット解析処理の帯域計測の一例を、図１８Ａを参照して説明する。図１８Ａは、実施例に係るパケット解析処理の帯域計測の一例を示す図である。なお、連続パケット抽出部１２４によって特定された連続パケットの個数は、２個であるとする。また、各＜１＞について、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「０」に対応するＳｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄに加算される解析データであるとする。各＜２＞について、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「１」に対応するＳｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄに加算される解析データであるとする。
【０１３２】
図１８Ａに示すように、パケット解析装置１は、＜１＞に対するＤＡＴＡパケットのパケット長およびパケット間の到着時刻間隔を加算する。ここでは、ＤＡＴＡパケットのパケット長を１５００とすると、パケット長の合計は、１５００×４である。＜１＞のＤＡＴＡパケット間の到着時刻間隔を１２０とすると、パケット間の到着時刻間隔の合計は、１２０×４である。したがって、＜１＞の帯域は、以下の式（５）で表される。
＜１＞の帯域＝８×（１５００×４）／（１２０×４）＝１００．００［Ｍｂｐｓ］・・・式（５）
【０１３３】
また、パケット解析装置１は、＜２＞に対するＤＡＴＡパケットのパケット長およびパケット間の到着時刻間隔を加算する。ここでは、ＤＡＴＡパケットのパケット長を１５００とすると、パケット長の合計は、１５００×３である。＜２＞のＤＡＴＡパケット間の到着時刻間隔をそれぞれ２４０、１２００、２４０とすると、パケット間の到着時刻間隔の合計は、１２００＋２４０×２である。したがって、＜２＞の帯域は、以下の式（６）で表される。
＜２＞の帯域＝８×（１５００×３）／（１２００＋２４０×２）＝２１．２３［Ｍｂｐｓ］・・・式（６）
【０１３４】
したがって、パケット解析装置１は、帯域が一番狭い解析データを、フロー制御の影響を受けたパケット群に対応する解析データであるとしてフィルタする。ここでは、パケット解析装置１は、＜２＞を除去する。そして、パケット解析装置１は、残った＜１＞の帯域をネットワークの帯域として推定する。すなわち、推定帯域は、１００．００［Ｍｂｐｓ］である。
【０１３５】
図１８Ｂは、従来の帯域計測の一例を示す図である。図１８Ｂに示すように、帯域は、全てのＤＡＴＡパケットを用いて計測される。帯域は、以下の式（７）で表される。
帯域＝８×（１５００×７）／（１２０×４＋２４０×２＋１２００）＝３８．８９［Ｍｂｐｓ］・・・式（７）
すなわち、推定帯域は、３８．３９［Ｍｂｐｓ］である。
【０１３６】
そうすると、パケット解析装置１は、フロー制御の影響を受けたパケット群を除去して、除去した残りのパケット群を用いて帯域を推定するので、全てのパケットを用いて計測する方法に比べて、正確な帯域を測定することができる。
【０１３７】
［パケット解析処理の帯域計測の別の一例］
次に、実施例に係るパケット解析処理の帯域計測の別の一例を、図１９Ａを参照して説明する。図１９Ａは、実施例に係るパケット解析処理の帯域計測の別の一例を示す図である。図１９Ａでは、クロストラヒックがある場合の帯域計測である。クロストラヒックとは、ネットワークに流れている他のトラヒックのことをいう。なお、連続パケット抽出部１２４によって特定された連続パケットの個数は、２個であるとする。また、各＜１＞について、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「０」に対応するＳｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄに加算される解析データであるとする。各＜２＞について、帯域解析テーブル１１４のＢＷ．ＩＤ１１４ｂの「１」に対応するＳｉｚｅ１１４ｃおよびＴｉｍｅ．Ｇａｐ１１４ｄに加算される解析データであるとする。
【０１３８】
図１９Ａに示すように、パケット解析装置１は、＜１＞に対するＤＡＴＡパケットのパケット長およびパケット間の到着時刻間隔を加算する。ここでは、ＤＡＴＡパケットのパケット長を１５００とすると、パケット長の合計は、１５００×４である。＜１＞のＤＡＴＡパケット間の到着時刻間隔を６００、６０、１２０、１２０とすると、パケット間の到着時刻間隔の合計は、１２０×２＋６０＋６００である。したがって、＜１＞の帯域は、以下の式（８）で表される。
＜１＞の帯域＝８×（１５００×４）／（１２０×２＋６０＋６００）＝５３．３３［Ｍｂｐｓ］・・・式（８）
【０１３９】
また、パケット解析装置１は、＜２＞に対するＤＡＴＡパケットのパケット長およびパケット間の到着時刻間隔を加算する。ここでは、ＤＡＴＡパケットのパケット長を１５００とすると、パケット長の合計は、１５００×３である。＜２＞のＤＡＴＡパケット間の到着時刻間隔をそれぞれ６０、７２０、２４０とすると、パケット間の到着時刻間隔の合計は、６０＋７２０＋２４０である。したがって、＜２＞の帯域は、以下の式（９）で表される。
＜２＞の帯域＝８×（１５００×３）／（６０＋７２０＋２４０）＝３５．２９［Ｍｂｐｓ］・・・式（９）
【０１４０】
したがって、パケット解析装置１は、帯域が一番狭い解析データを、フロー制御の影響を受けたパケット群に対応する解析データであるとしてフィルタする。ここでは、パケット解析装置１は、＜２＞を除去する。そして、パケット解析装置１は、残った＜１＞の帯域をネットワークの帯域として推定する。すなわち、推定帯域は、５３．３３［Ｍｂｐｓ］である。
【０１４１】
図１９Ｂは、従来の帯域計測の別の一例を示す図である。図１９Ｂに示すように、帯域は、クロストラヒックに相当する部分等を閾値により除去した全てのＤＡＴＡパケットを用いて計測される。帯域は、以下の式（１０）で表される。
帯域＝８×（１５００×４）／（１２０×２＋６０×２）＝１３３．３３［Ｍｂｐｓ］・・・式（１０）
すなわち、推定帯域は、１３３．３３［Ｍｂｐｓ］である。本来、可用帯域は、クロストラヒックがあると狭くなるはずであるが、推定帯域は逆に広く見積もってしまう。
【０１４２】
そうすると、パケット解析装置１は、フロー制御の影響を受けたパケット群を除去して、除去した残りのパケット群を用いて帯域を推定するので、閾値により除去した全てのパケットを用いて計測する方法に比べて、正確な帯域を測定することができる。
【０１４３】
［実施例の効果］
上記実施例によれば、パケット解析装置１は、端末３と端末４との間で通信されるパケットを端末３と端末４の間のネットワークのいずれかの地点で取得する。そして、パケット解析装置１は、端末４から端末３へ送信された第１のＡＣＫの取得から第１のＡＣＫの次のＡＣＫである第２のＡＣＫの取得までの間に取得された、端末３から端末４へ送信された複数のデータパケットの取得タイミング、および隣接する２つのデータパケットの取得タイミング間の間隔に基づいて、取得タイミング間の間隔の中でより大きい間隔を生成するデータパケットを特定する。かかる構成によれば、パケット解析装置１は、データパケットの取得タイミング間の間隔の中でより大きい間隔を生成するデータパケットを特定することで、フロー制御の影響を受けたデータパケットを特定できる。すなわち、パケット解析装置１は、帯域の計測に不適切なデータパケットを特定できる。ひいては、パケット解析装置１は、特定した不適切なデータパケットを除去して正確な帯域を計測することを可能にする。
【０１４４】
また、上記実施例によれば、パケット解析装置１は、第１のＡＣＫに対応するデータパケットの識別番号と第２のＡＣＫに対応するデータパケットの識別番号との差分から連続するデータパケットの個数を特定する。そして、パケット解析装置１は、特定した個数分の取得タイミング間の間隔の中でより大きい間隔を生成するデータパケットを特定する。かかる構成によれば、パケット解析装置１は、端末の送信タイミングと観測地点の受信タイミングのズレがあっても、連続するデータパケットを特定することができる。
【０１４５】
また、上記実施例によれば、パケット解析装置１は、端末３と端末４との間の通信が途中で変化した場合に、既に取得された複数のデータパケットの取得タイミングおよび取得タイミング間の間隔をリセットする。かかる構成によれば、パケット解析装置１は、通信が途中で変化した際の情報をリセットすることで、帯域の計測からはずすことができ、フロー制御の影響を受けたデータパケットを誤って特定することを防止できる。
【０１４６】
［その他］
なお、実施例では、帯域推定部１２５は、連続パケットの個数が２個の場合の帯域を推定した。しかしながら、帯域推定部１２５は、連続パケットの個数が３個の場合であっても良いし、４個以上の場合であっても良い。かかる場合に、帯域推定部１２５は、連続パケットの個数分毎に別々に帯域を計測し、帯域解析テーブル１１４に解析データとして保持する。そして、帯域推定部１２５は、別々に計測した帯域で一番帯域の狭い解析データを、フロー制御を受けたものとしてフィルタする。そして、帯域推定部１２５は、フィルタされた後残った複数の解析データを統計情報テーブル１１７へ加算する。その後、帯域推定部１２５は、加算された結果のパケット長およびパケット間の到着時刻間隔を用いて、ネットワーク帯域を推定すれば良い。
【０１４７】
また、パケット解析装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したコネクション管理部１２３、連続パケット抽出部１２４および帯域推定部１２５などの各機能を搭載することによって実現することができる。
【０１４８】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、通信インタフェース１２２とコネクション管理部１２３とを１個の部として統合しても良い。一方、帯域推定部１２５を、連続パケットの個数分毎に別々に帯域を計測する計測部と、別々に計測された各帯域からフロー制御の影響を受けた方の帯域を特定する影響特定部を分散しても良い。また、コネクション管理テーブル１１１、解析情報テーブル１１２および統計情報テーブル１１７をパケット解析装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１４９】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したパケット解析装置１と同様の機能を実現するパケット解析プログラムを実行するコンピュータの一例を説明する。図２０は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【０１５０】
図２０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１５１】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、パケット解析プログラム２０５ａおよびパケット解析関連情報２０５ｂを記憶する。
【０１５２】
ＣＰＵ２０３は、パケット解析プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、パケット解析装置１の各機能部に対応する。パケット解析関連情報２０５ｂは、コネクション管理テーブル１１１、解析情報テーブル１１２、統計情報テーブル１１７に対応する。そして、例えばリムーバブルディスク２１１が、パケット解析プログラム２０５ａなどの各情報を記憶する。
【０１５３】
なお、パケット解析プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからパケット解析プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１５４】
１  パケット解析装置
１１  記憶部
１２  制御部
１１１  コネクション管理テーブル
１１２  解析情報テーブル
１１３  ステータステーブル
１１４  帯域解析テーブル
１１５  ＤＡＴＡテーブル
１１６  ＡＣＫテーブル
１１７  統計情報テーブル
１２１  出力インタフェース
１２２  通信インタフェース
１２３  コネクション管理部
１２４  連続パケット抽出部
１２５  帯域推定部
２  ＳＷ
３，４  端末
５  出力装置
【図１】
2015035709.tif 000003
【図２】
2015035709.tif 000004
【図３】
2015035709.tif 000005
【図４】
2015035709.tif 000006
【図５】
2015035709.tif 000007
【図６】
2015035709.tif 000008
【図７】
2015035709.tif 000009
【図８】
2015035709.tif 000010
【図９Ａ】
2015035709.tif 000011
【図９Ｂ】
2015035709.tif 000012
【図９Ｃ】
2015035709.tif 000013
【図９Ｄ】
2015035709.tif 000014
【図１０】
2015035709.tif 000015
【図１１】
2015035709.tif 000016
【図１２】
2015035709.tif 000017
【図１３】
2015035709.tif 000018
【図１４Ａ】
2015035709.tif 000019
【図１４Ｂ】
2015035709.tif 000020
【図１４Ｃ】
2015035709.tif 000021
【図１４Ｄ】
2015035709.tif 000022
【図１４Ｅ】
2015035709.tif 000023
【図１５Ａ】
2015035709.tif 000024
【図１５Ｂ】
2015035709.tif 000025
【図１５Ｃ】
2015035709.tif 000026
【図１５Ｄ】
2015035709.tif 000027
【図１５Ｅ】
2015035709.tif 000028
【図１５Ｆ】
2015035709.tif 000029
【図１６Ａ】
2015035709.tif 000030
【図１６Ｂ】
2015035709.tif 000031
【図１６Ｃ】
2015035709.tif 000032
【図１６Ｄ】
2015035709.tif 000033
【図１６Ｅ】
2015035709.tif 000034
【図１６Ｆ】
2015035709.tif 000035
【図１７Ａ】
2015035709.tif 000036
【図１７Ｂ】
2015035709.tif 000037
【図１７Ｃ】
2015035709.tif 000038
【図１８Ａ】
2015035709.tif 000039
【図１８Ｂ】
2015035709.tif 000040
【図１９Ａ】
2015035709.tif 000041
【図１９Ｂ】
2015035709.tif 000042
【図２０】
2015035709.tif 000043
【図２１】
2015035709.tif 000044