(57)【要約】【課題】クライアント端末側のネットワーク帯域を正確に計測する。【解決手段】パケット解析装置１は、端末４と端末３との間で通信されるパケットを端末３と端末４の間のネットワークのいずれかの地点で取得する。パケット解析装置１は、端末３から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に端末４から送信されたデータパケットの帯域が、第１のＡＣＫパケットおよび第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する。【選択図】図１
2016184824.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、
取得したパケットと取得時刻を対応付けて記憶し、
前記受信端末から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する
処理を実行させることを特徴とするパケット解析プログラム。
【請求項２】
前記第１のＡＣＫパケットを待たずに送信されたデータパケットを取得した場合には、前記第１のＡＣＫパケットを待ってから送信されたデータパケットおよび前記第１のＡＣＫパケットを待たずに送信されたデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を下限の閾値として更新し、
前記第２のＡＣＫパケットを待ってから送信されたデータパケットを取得した場合には、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットをそれぞれ待ってから送信された２つのデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を上限の閾値として更新し、
前記判定する処理は、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットの取得間隔を用いて得られる帯域が、前記下限の閾値より小さい、または前記上限の閾値より大きい場合に、前記第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する
処理を実行させることを特徴とする請求項１に記載のパケット解析プログラム。
【請求項３】
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得する取得部と、
前記取得部によって取得されたパケットと取得時刻を対応付けて記憶する記憶部と、
前記受信端末から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する判定部と、
を有することを特徴とするパケット解析装置。
【請求項４】
コンピュータが、
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、
取得したパケットと取得時刻を対応付けて記憶し、
前記受信端末から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する
各処理を実行することを特徴とするパケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット解析プログラムに関する。
【背景技術】
【０００２】
クライアント端末がサーバからデータをダウンロードすることがある。一般的に、サーバ側のネットワーク帯域よりもクライアント端末側のネットワーク帯域の方が小さいため、クライアント端末側のネットワーク帯域を推定してダウンロード完了時間を予測することが望まれている。
【０００３】
近年では、サーバ側付近に監視装置を設置して、サーバおよびクライアント端末間で送受信されているパケットからサーバおよびクライアント端末間のネットワーク帯域を推定することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１３０２９８号公報
【特許文献２】特開２００６−２０３０２号公報
【特許文献３】特開２００６−２７９２８３号公報
【特許文献４】特開２００７−２６６７５６号公報
【特許文献５】特開２０１５−０３５７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、クライアント端末側のネットワーク帯域を正確に計測できないという問題がある。すなわち、監視装置およびクライアント端末間でクロストラヒック（Cross  Traffic）が発生すると、クライアント端末側のネットワーク帯域の計測に影響を与えてしまい、正確な計測ができない。クロストラヒックとは、ネットワーク上に流れている他のトラヒックのことをいう。クロストラヒックが発生すると、通信に遅延が発生し、クライアント端末側のネットワーク帯域の計測に影響を与えてしまう。
【０００６】
１つの側面では、より正確なクライアント端末のネットワーク帯域を計測することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、パケット解析プログラムは、コンピュータに、送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、取得したパケットと取得時刻を対応付けて記憶し、前記受信端末から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第１のＡＣＫパケットおよび前記第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する処理を実行させる。
【発明の効果】
【０００８】
１つの態様によれば、クライアント端末側のネットワーク帯域をより正確に計測することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係るパケット解析装置の機能構成を示す図である。
【図２Ａ】図２Ａは、ＡＣＫによる帯域推定の問題点を示す図（１）である。
【図２Ｂ】図２Ｂは、ＡＣＫによる帯域推定の問題点を示す図（２）である。
【図３Ａ】図３Ａは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図（１）である。
【図３Ｂ】図３Ｂは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図（２）である。
【図４】図４は、コネクション管理テーブルのデータ構造の一例を示す図である。
【図５】図５は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。
【図６】図６は、ＡＣＫテーブルのデータ構造の一例を示す図である。
【図７】図７は、閾値テーブルのデータ構造の一例を示す図である。
【図８】図８は、統計情報テーブルのデータ構造の一例を示す図である。
【図９Ａ】図９Ａは、実施例に係るパケット解析処理のフローチャートを示す図である。
【図９Ｂ】図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。
【図９Ｃ】図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。
【図１０】図１０は、ＡＣＫ間隔が広がる場合のパケット解析処理の具体例を示す図である。
【図１１】図１１は、ＡＣＫ間隔が縮まる場合のパケット解析処理の具体例を示す図である。
【図１２】図１２は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するパケット解析プログラム、パケット解析装置およびパケット解析方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１１】
［実施例に係るパケット解析装置の構成］
図１は、実施例に係るパケット解析装置の機能構成を示す図である。図１に示すように、パケット解析装置１は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介して取得し、パッシブにネットワーク帯域を診断する。パッシブ診断とは、ネットワークを流れるパケットを計測対象としてネットワーク帯域を診断する診断方法のことをいう。なお、ネットワーク帯域を診断する診断方法には、パッシブ診断のほか、アクティブ診断もあるが、実施例では、パッシブ診断を適用する場合である。なお、以降、端末３が、受信側の端末であり、端末４が、送信側の端末であるとして説明する。
【００１２】
パケット解析装置１は、ＡＣＫパケット（以降、ＡＣＫという）とＡＣＫとの間に送信されたデータパケット（以降、ＤＡＴＡという）の転送量とＡＣＫの到着間隔とから、端末３，４間のネットワークの帯域を推定する。すなわち、受信側の端末３がＡＣＫを返信する場合、ＤＡＴＡを受信した直後にＡＣＫを返信するので、ネットワークにクロストラヒックなどが原因となるボトルネックがない場合には、ＤＡＴＡの間隔とＡＣＫの間隔とは等しいものとなる。したがって、パケット解析装置１は、ＡＣＫの間に送信されたＤＡＴＡの転送量と、ＡＣＫの到着間隔とから、式（１）のように、受信側のネットワーク帯域を推定できる。なお、ＡＣＫの間に送信されたＤＡＴＡの転送量を式（１）のパケットサイズに代入する。また、ＡＣＫの到着間隔を式（１）のパケット間の間隔に代入する。
ネットワーク帯域＝８×パケットサイズ／パケット間の間隔・・式（１）
【００１３】
ところが、ＡＣＫによる帯域推定には、問題点がある。ここで、ＡＣＫによる帯域推定の問題点を、図２Ａおよび図２Ｂを参照して説明する。図２Ａおよび図２Ｂは、ＡＣＫによる帯域推定の問題点を示す図である。
【００１４】
図２Ａおよび図２Ｂに示すように、ネットワークにボトルネックがある場合には、ＡＣＫの到着間隔が変化してしまう。図２Ａでは、送信側の端末４から先に送信されたＤＡＴＡがクロストラヒックの影響を受けた場合である。図２Ｂでは、送信側の端末４から後に送信されたＤＡＴＡがクロストラヒックの影響を受けた場合である。
【００１５】
図２Ａに示すように、送信側の端末４から先に送られたＤＡＴＡがクロストラヒックの影響を受けると、クロストラヒックの影響を受けない場合と比べて、パケット解析装置１では、このＤＡＴＡに対するＡＣＫと次のＤＡＴＡに対するＡＣＫとの到着間隔が縮まる。すなわち、パケット解析装置１は、クロストラヒックの影響を受けない場合と比べて、ネットワーク帯域を広く推定してしまう。
【００１６】
図２Ｂに示すように、送信側の端末４から後に送られたＤＡＴＡがクロストラヒックの影響を受けると、クロストラヒックの影響を受けない場合と比べて、パケット解析装置１では、このＤＡＴＡに対するＡＣＫと前のＤＡＴＡに対するＡＣＫとの到着間隔が広がる。すなわち、パケット解析装置１は、クロストラヒックの影響を受けない場合と比べて、ネットワーク帯域を狭く推定してしまう。
【００１７】
したがって、パケット解析装置１は、クロストラヒックの影響を受けたＡＣＫを帯域推定に不要なＡＣＫとして除去したうえで、ネットワーク帯域を推定することが必要となる。
【００１８】
そこで、実施例に係るパケット解析装置１は、ネットワーク帯域をＡＣＫから推定するが、帯域推定に不要なＡＣＫを判定するために用いられる閾値をＤＡＴＡから算出する。閾値をＤＡＴＡから算出するのは、以下の２つの理由による。第１の理由は、ＤＡＴＡの送信タイミングはＡＣＫに依存するからである。すなわち、送信側の端末４はＡＣＫを受信して以前送信したＤＡＴＡの到達を確認した後に、次のＤＡＴＡを送信するからである。第２の理由は、ＤＡＴＡの到着間隔はＡＣＫの到着間隔と比べて安定しているからである。すなわち、ＤＡＴＡのサイズはＡＣＫに比べて大きいので、ＤＡＴＡの挙動はＡＣＫに比べて安定しているからである。なお、閾値の詳細な算出方法は、後述するものとする。
【００１９】
図１に戻って、端末３，４は、例えば、ネットワーク上で、ＴＣＰ（Transmission  Control  Protocol）を用いた通信を行う。
【００２０】
ここで、ＴＣＰの通信機能の特性の一例について説明する。受信側の端末４がデータのパケットを受け取った場合に、そのデータのシーケンス番号とデータサイズから次に送られてくる予定のデータのシーケンス番号をＡＣＫの確認応答番号に設定したうえで、ＡＣＫを送信側の端末３に伝達する。送信側の端末３は、ＡＣＫを受信し、受信したＡＣＫの確認応答番号を確認することで、次のデータのパケットを送信する。
【００２１】
ところが、送信側の端末３は、データのパケットを１パケットずつ受信、確認および送信を行うと通信効率が悪い。そこで、ＴＣＰでは、「ウィンドウ制御」が行われる。ウィンドウ制御とは、送信側の端末３が、データのパケットを１パケットずつ受信、確認および送信するのではなく、複数のデータのパケットを連続で送信する。すなわち、送信側の端末３は、複数のデータのパケットをウィンドウサイズと呼ばれる単位で管理し、ＡＣＫの確認応答番号を待つことなく、データのパケットを連続で送信する。このウィンドウ制御により通信効率が改善される。なお、ウィンドウ制御によって連続で送信されるデータのパケットのことを「連続パケット」というものとする。なお、連続パケットの個数は、例えば、特開２０１５−０３５７０９号公報に開示された内容により特定することができる。
【００２２】
パケット解析装置１は、記憶部１１および制御部１２を有する。
【００２３】
記憶部１１は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部１１は、コネクション管理テーブル１１１、解析情報テーブル１１２および統計情報テーブル１１６を有する。解析情報テーブル１１２には、ＤＡＴＡテーブル１１３、ＡＣＫテーブル１１４および閾値テーブル１１５が含まれる。
【００２４】
コネクション管理テーブル１１１は、コネクション毎に、送信元および宛先の通信情報を管理する。コネクション管理テーブル１１１は、キャプチャされたパケットのコネクションを検索する際に用いられる。
【００２５】
解析情報テーブル１１２は、解析情報を記憶する。解析情報テーブル１１２は、ネットワーク帯域が診断される際に用いられる。解析情報テーブル１１２には、ＤＡＴＡテーブル１１３、ＡＣＫテーブル１１４および閾値テーブル１１５が含まれる。ＤＡＴＡテーブル１１３は、データのパケットがキャプチャされる際に、データのパケットのインデックス番号、到着時刻およびパケット長を記憶する。ＡＣＫテーブル１１４は、ＡＣＫが取得される際に、到着時刻やＡＣＫに対応するデータのパケットのインデックス番号を記憶する。閾値テーブル１１５は、閾値に利用するバイト数、閾値に利用する時間間隔および閾値を記憶する。ＤＡＴＡテーブル１１３、ＡＣＫテーブル１１４および閾値テーブル１１５は、いずれもコネクション毎にテーブルを有する。
【００２６】
統計情報テーブル１１６は、統計情報を記憶する。統計情報テーブル１１６は、ネットワーク帯域の診断の最終的な統計を記憶する。なお、記憶部１１の各種テーブルのデータ構造の一例は、後述する。
【００２７】
制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。さらに、制御部１２は、出力インタフェース１２１、通信インタフェース１２２、コネクション管理部１２３、クロストラヒック判定部１２４および帯域推定部１２５を有する。
【００２８】
出力インタフェース１２１は、出力装置５とのインタフェースである。例えば、出力インタフェース１２１は、統計情報テーブル１１６に記憶された統計情報を編集し、出力装置５に出力する。
【００２９】
通信インタフェース１２２は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介してキャプチャする。通信インタフェース１２２は、キャプチャしたパケットをコネクション管理部１２３に引き渡す。
【００３０】
コネクション管理部１２３は、キャプチャされたパケットのコネクションを管理する。例えば、コネクション管理部１２３は、コネクション管理テーブル１１１を参照し、キャプチャしたパケットと同じコネクション情報のパケットを、以前にキャプチャしたか否かを判定する。コネクション管理部１２３は、以前にキャプチャしていないと判定した場合、今回キャプチャしたパケットのコネクション情報をコネクション管理テーブル１１１に追加する。また、コネクション管理部１２３は、以前にキャプチャしていると判定した場合、何もしない。コネクション情報には、例えば、コネクションＩＤ、送信元のＩＰアドレス、送信元のポート番号、宛先のＩＰアドレスおよび宛先のポート番号が含まれる。また、コネクション管理部１２３は、今回キャプチャされたパケットがＡＣＫである場合には、コネクションＩＤおよび取得時刻を対応付けたＡＣＫ情報をＡＣＫテーブル１１４に追加する。コネクション管理部１２３は、今回キャプチャされたパケットがＤＡＴＡである場合には、コネクションＩＤおよび取得時刻を対応付けたＤＡＴＡ情報をＤＡＴＡテーブル１１３に追加する。
【００３１】
クロストラヒック判定部１２４は、クロストラヒックの影響を受けたＡＣＫを判定する。例えば、クロストラヒック判定部１２４は、ＡＣＫを待ってから送信されたＤＡＴＡがキャプチャされた場合には、１つ前のＡＣＫおよび今回のＡＣＫをそれぞれ待ってから送信された２つのＤＡＴＡの到着間隔を用いてネットワーク帯域を算出する。クロストラヒック判定部１２４は、算出したネットワーク帯域を下限の閾値として閾値テーブル１１５に設定する。一例として、連続パケットの個数が２個である場合とする。クロストラヒック判定部１２４は、１つ前のＡＣＫおよび今回のＡＣＫをそれぞれ待ってから送信された２つのＤＡＴＡの到着間隔から、これらＡＣＫの間に送信された連続パケットの到着間隔を引いたＤＡＴＡの到着間隔を算出する。クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。ＡＣＫを待ってから送信されたＤＡＴＡの到着間隔から算出したネットワーク帯域の推定値を下限の閾値とするのは、以下の理由による。すなわち、ＡＣＫを待ってから送信されたＤＡＴＡの到着間隔から算出したネットワーク帯域の推定値は、ＡＣＫの到着間隔が正常であれば、受信側のネットワーク帯域より低くなるので、低くなる推定値を下限の閾値とする。
【００３２】
クロストラヒック判定部１２４は、ＡＣＫを待たずに送信されたＤＡＴＡがキャプチャされた場合には、連続で送信されたＤＡＴＡの到着間隔を用いてネットワーク帯域を算出する。クロストラヒック判定部１２４は、算出したネットワーク帯域を上限の閾値として閾値テーブル１１５に設定する。一例として、連続パケットの個数が２個である場合とする。クロストラヒック判定部１２４は、連続パケットにおけるＤＡＴＡの到着間隔を算出する。クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。連続で送信されたＤＡＴＡの到着間隔から算出したネットワーク帯域の推定値を上限の閾値とするのは、以下の理由による。すなわち、連続で送信されたＤＡＴＡの到着間隔から算出したネットワーク帯域は、ＡＣＫの到着間隔が正常であれば、受信側のネットワーク帯域より高くなるので、高くなる推定値を上限の閾値とする。
【００３３】
クロストラヒック判定部１２４は、ＡＣＫの到着間隔およびＡＣＫ間のＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出する。クロストラヒック判定部１２４は、ＡＣＫの到着間隔を用いて算出したネットワーク帯域が、下限の閾値より小さければ、クロストラヒックの影響を受けたＡＣＫであると判定する。すなわち、ＡＣＫの到着間隔が広がった場合である。クロストラヒック判定部１２４は、ＡＣＫの到着間隔を用いて算出したネットワーク帯域が、上限の閾値よりで大きければ、クロストラヒックの影響を受けたＡＣＫであると判定する。すなわち、ＡＣＫの到着間隔が縮まった場合である。クロストラヒック判定部１２４は、ＡＣＫの到着間隔を用いて算出したネットワーク帯域が、下限の閾値より大きく、且つ上限の閾値より小さければ、クロストラヒックの影響を受けていないＡＣＫであると判定する。
【００３４】
帯域推定部１２５は、受信側のネットワークの帯域を推定する。例えば、帯域推定部１２５は、クロストラヒック判定部１２４によってクロストラヒックの影響を受けたＡＣＫであると判定されたＡＣＫを帯域計測に不要なパケットであると判断し除去する。帯域推定部１２５は、クロストラヒック判定部１２４によってクロストラヒックの影響を受けていないＡＣＫであると判定されたＡＣＫを用いて算出したネットワーク帯域を受信側の端末３のネットワーク帯域として更新する。これにより、帯域推定部１２５は、クロストラヒックの影響を受けたＡＣＫを受信側の端末３のネットワーク帯域の計測時に除去することで、より正確な受信側の端末３のネットワーク帯域を計測できる。
【００３５】
［閾値の算出方法］
クロストラヒック判定部１２４による閾値の算出方法を、図３Ａおよび図３Ｂを参照して説明する。図３Ａおよび図３Ｂは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図である。図３Ａは、下限の閾値の算出方法を示す図である。図３Ｂは、上限の閾値の算出方法を示す図である。なお、連続パケットの個数は２個であるものとする。ＤＡＴＡのパケット長は１５００バイト（ｂｙｔｅ）であるものとする。
【００３６】
［下限の閾値について］
図３Ａでは、ＡＣＫテーブル１１４には、ＡＣＫａ０、ａ１のＡＣＫ情報が格納されているとする。ＤＡＴＡテーブル１１３には、ＤＡＴＡｄ０、ｄ１のＤＡＴＡ情報が格納されているとする。
【００３７】
図３Ａ左図および図３Ａ右図に示すように、ＤＡＴＡｄ２がキャプチャされたとする。すると、クロストラヒック判定部１２４は、ＤＡＴＡｄ２がＡＣＫａ１を待ってから送信されたので、以下のようにネットワーク帯域を算出する。すなわち、クロストラヒック判定部１２４は、ＡＣＫａ０およびＡＣＫａ１をそれぞれ待ってから送信されたＤＡＴＡｄ０、ｄ２の到着間隔を算出する。クロストラヒック判定部１２４は、算出した到着間隔から、これらＡＣＫａ０、ａ１の間に送信された連続パケットｄ０、ｄ１の到着間隔を引いたＤＡＴＡの到着間隔を算出する。クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。
【００３８】
図３Ａ左図では、送信側のネットワーク帯域が１００Ｍｂｐｓ（megabets  per  second）、受信側のネットワーク帯域が１Ｍｂｐｓであるとする。すると、仮に受信側のネットワーク帯域そのものの通信であったとすると、ＤＡＴＡｄ０、ｄ２の到着間隔は、２４０００μｓ（micro  second）と算出される。連続パケットｄ０、ｄ１の到着間隔は、１２０μｓと算出されるとする。すると、ＤＡＴＡの到着間隔は、（２４０００−１２０）μｓと算出される。そして、クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔を式（１）のパケット間の間隔に代入し、ＤＡＴＡｄ２のパケット長を示す１５００バイトを式（１）のパケットサイズに代入し、ネットワーク帯域を算出する。ここでは、ネットワーク帯域は、５０２．５１Ｋｂｐｓと算出し、算出したネットワーク帯域を下限の閾値とする。
【００３９】
図３Ａ右図では、送信側のネットワーク帯域が１００Ｍｂｐｓ、受信側のネットワーク帯域が９０Ｍｂｐｓであるとする。すると、仮に受信側のネットワーク帯域そのものの通信であったとすると、ＤＡＴＡｄ０、ｄ２の到着間隔は、２６６μｓと算出される。連続パケットｄ０、ｄ１の到着間隔は、１２０μｓと算出されるとする。すると、ＤＡＴＡの到着間隔は、（２６６−１２０）μｓと算出される。そして、クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔を式（１）のパケット間の間隔に代入し、ＤＡＴＡｄ２のパケット長を示す１５００バイトを式（１）のパケットサイズに代入し、ネットワーク帯域を算出する。ここでは、ネットワーク帯域は、８２．１９Ｍｂｐｓと算出し、算出したネットワーク帯域を下限の閾値とする。
【００４０】
ここで、図３Ａ左図では、送信側と受信側のネットワーク帯域の差が大きい場合である。かかる場合の下限の閾値５０２．５１Ｋｂｐｓは、受信側のネットワーク帯域１Ｍｂｐｓの約０．５倍である。また、図３Ａ右図では、送信側と受信側のネットワーク帯域の差が小さい場合である。かかる場合の下限の閾値８２．１９Ｍｂｐｓは、受信側のネットワーク帯域９０Ｍｂｐｓの約０．９倍である。つまり、送信側の端末４が２つのＤＡＴＡに対してＡＣＫを返信している場合には、クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔から算出されるネットワーク帯域（下限の閾値）を、受信側のネットワーク帯域の１倍〜０．５倍の大きさに設定できる。これにより、クロストラヒック判定部１２４は、受信側のネットワーク帯域の計測の際に、下限の閾値を利用することで、受信側のネットワーク帯域の０．５倍より小さい数値をフィルタすることができる。言い換えれば、クロストラヒック判定部１２４は、ＡＣＫの到着間隔が広がった場合のクロストラヒックの影響を受けたＡＣＫをネットワーク帯域の計測に不要なＡＣＫとして特定することができる。
【００４１】
［上限の閾値について］
図３Ｂでは、ＡＣＫテーブル１１４には、ＡＣＫａ１０のＡＣＫ情報が格納されているとする。ＤＡＴＡテーブル１１３には、ＤＡＴＡｄ１０、ｄ１１のＤＡＴＡ情報が格納されているとする。
【００４２】
図３Ｂ左図に示すように、ＤＡＴＡｄ１１がキャプチャされたとする。すると、クロストラヒック判定部１２４は、ＤＡＴＡｄ１１がＡＣＫを待たずに送信されたので、以下のようにネットワーク帯域を算出する。すなわち、クロストラヒック判定部１２４は、連続で送信されたＤＡＴＡｄ１０、ｄ１１の到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。
【００４３】
ここで、図３Ｂ右図に示すように、ＡＣＫａ１０がクロストラヒックの影響を受けた場合には、ＡＣＫａ１０、ａ１１の到着間隔がｆ０からｆ１のように縮まる。かかる場合には、クロストラヒック判定部１２４は、受信側のネットワーク帯域の計測の際に、上限の閾値を利用することで、受信側のネットワーク帯域の上限の閾値より大きい数値をフィルタすることができる。言い換えれば、クロストラヒック判定部１２４は、ＡＣＫの到着間隔が縮まった場合のクロストラヒックの影響を受けたＡＣＫをネットワーク帯域の計測に不要なＡＣＫとして特定することができる。
【００４４】
［テーブルのデータ構造］
パケット解析装置１で用いられる各種テーブルのデータ構造を、図４〜図８を参照して説明する。図４は、コネクション管理テーブルのデータ構造の一例を示す図である。図５は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。図６は、ＡＣＫテーブルのデータ構造の一例を示す図である。図７は、閾値テーブルのデータ構造の一例を示す図である。図８は、統計情報テーブルのデータ構造の一例を示す図である。
【００４５】
図４に示すように、コネクション管理テーブル１１１は、送信元ＩＰ（Internet  Protocol）１１１ｂ、送信元ポート１１１ｃ、送信先ＩＰ１１１ｄおよび送信先ポート１１１ｅをコネクションＩＤ（identification）１１１ａに対応付けて記憶する。コネクションＩＤ１１１ａは、コネクション毎に付けられるインデックス番号である。送信元ＩＰ１１１ｂは、送信元のＩＰアドレスである。送信元ポート１１１ｃは、ＴＣＰにおける送信元のポート番号である。送信先ＩＰ１１１ｄは、宛先のＩＰアドレスである。送信先ポート１１１ｅは、宛先のＴＣＰにおける宛先のポート番号である。
【００４６】
一例として、コネクションＩＤ１１１ａが「０」である場合に、送信元ＩＰ１１１ｂとして「１０．２５．１００．１００」、送信元ポート１１１ｃとして「８０」と記憶している。送信先ＩＰ１１１ｄとして「１０．２５．２００．１００」、送信先ポート１１１ｅとして「２００」と記憶している。
【００４７】
図５に示すように、ＤＡＴＡテーブル１１３は、コネクションＩＤ１１３ａ、データＩＤ１１３ｂ、Ｓｅｑ番号１１３ｃ、パケット長１１３ｄおよび到着時刻１１３ｅを対応付けて記憶する。なお、ＤＡＴＡテーブル１１３は、コネクションＩＤ１１３ａ毎にテーブルを有している。コネクションＩＤ１１３ａは、コネクション毎に付けられるインデックス番号である。データＩＤ１１３ｂは、ＤＡＴＡのインデックス番号である。Ｓｅｑ番号１１３ｃは、ＤＡＴＡのシーケンス番号である。パケット長１１３ｄは、ＤＡＴＡのパケット長である。到着時刻１１３ｅは、ＤＡＴＡのパケット解析装置１への到着時刻である。
【００４８】
一例として、コネクションＩＤ１１３ａが「０」であってデータＩＤ１１３ｂが「０」である場合に、Ｓｅｑ番号１１３ｃとして「１５００」、パケット長１１３ｄとして「１５００」、到着時刻１１３ｅとして「１０００」と記憶している。また、コネクションＩＤ１１３ａが「０」であってデータＩＤ１１３ｂが「１」である場合に、Ｓｅｑ番号１１３ｃとして「３０００」、パケット長１１３ｄとして「１５００」、到着時刻１１３ｅとして「１１２０」と記憶している。
【００４９】
図６に示すように、ＡＣＫテーブル１１４は、コネクションＩＤ１１４ａ、ＡＣＫＩＤ１１４ｂ、ＡＣＫ番号１１４ｃ、到着時刻１１４ｄおよびデータＩＤ１１４ｅを対応付けて記憶する。なお、ＡＣＫテーブル１１４は、コネクションＩＤ１１４ａ毎にテーブルを有している。コネクションＩＤ１１４ａは、コネクション毎に付けられるインデックス番号である。ＡＣＫＩＤ１１４ｂは、ＡＣＫのインデックス番号である。ＡＣＫ番号１１４ｃは、ＡＣＫのＡＣＫ番号（確認応答番号）である。すなわち、ＡＣＫ番号１１４ｃには、次に送られてくる予定のＤＡＴＡのＳｅｑ番号が設定される。到着時刻１１４ｄは、ＡＣＫのパケット解析装置１への到着時刻である。データＩＤ１１４ｅは、ＡＣＫに対応するＤＡＴＡのインデックス番号（データＩＤ）である。すなわち、データＩＤ１１４ｅは、ＡＣＫＩＤ１１４ｂで示されるＡＣＫに対応するＤＡＴＡであることを意味する。
【００５０】
一例として、コネクションＩＤ１１４ａが「０」であってＡＣＫＩＤ１１４ｂが「０」である場合に、ＡＣＫ番号１１４ｃとして「３０００」、到着時刻１１４ｄとして「３０００」、データＩＤ１１４ｅとして「０」と記憶している。コネクションＩＤ１１４ａが「０」であってＡＣＫＩＤ１１４ｂが「１」である場合に、ＡＣＫ番号１１４ｃとして「６０００」、到着時刻１１４ｄとして「３２４０」、データＩＤ１１４ｅとして「２」と記憶している。
【００５１】
図７に示すように、閾値テーブル１１５は、コネクションＩＤ１１５ａ、グループＩＤ１１５ｂ、閾値に利用するバイト数１１５ｃ、閾値に利用する時間間隔１１５ｄおよび閾値１１５ｅを対応付けて記憶する。コネクションＩＤ１１５ａは、コネクション毎に付けられるインデックス番号である。グループＩＤ１１５ｂは、閾値毎に付けられるグループ番号である。すなわち、グループＩＤ１１５ｂは、連続で送信されたＤＡＴＡの到着間隔から算出する上限の閾値に付けられるグループ番号と、ＡＣＫを待ってから送信されたＤＡＴＡの到着間隔から算出する下限の閾値に付けられるグループ番号を意味する。閾値に利用するバイト数１１５ｃは、閾値を算出する際に利用するＤＡＴＡのパケットの長さである。閾値に利用する到着間隔１１５ｄは、閾値を算出する際に利用するＤＡＴＡの到着間隔である。閾値１１５ｅは、閾値に利用するバイト数１１５ｃと閾値に利用する到着間隔１１５ｄとから算出される閾値である。
【００５２】
一例として、コネクションＩＤ１１５ａが「０」である場合に、グループＩＤ１１５ｂとして「０」、閾値に利用するバイト数１１５ｃとして「１５００」、閾値に利用する到着間隔１１５ｄとして「１２０」、閾値１１５ｅとして「１００」と記憶している。コネクションＩＤ１１５ａが「０」である場合に、グループＩＤ１１５ｂとして「１」、閾値に利用するバイト数１１５ｃとして「１５００」、閾値に利用する到着間隔１１５ｄとして「２２８０」、閾値１１５ｅとして「５．８」と記憶している。
【００５３】
図８に示すように、統計情報テーブル１１６は、計測バイト数１１６ｂおよび計測時間間隔１１６ｃをコネクションＩＤ１１６ａに対応付けて記憶する。コネクションＩＤ１１６ａは、コネクション毎に付けられるインデックス番号である。計測バイト数１１６ｂは、計測された連続パケットのパケットサイズの合計である。計測時間間隔１１６ｃは、計測された連続パケットにおけるパケット間の到着時刻間隔の合計である。
【００５４】
一例として、コネクションＩＤ１１６ａが「０」である場合に、計測バイト数１１６ｂとして「３０００」、計測時間間隔１１６ｃとして「２４０」と記憶している。
【００５５】
［パケット解析処理のフローチャート］
次に、実施例に係るパケット解析処理のフローチャートを、図９Ａ〜図９Ｃを参照して説明する。図９Ａは、実施例に係るパケット解析処理のフローチャートを示す図である。図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。なお、ここでは、連続パケットの個数は２個である場合とする。
【００５６】
図９Ａに示すように、通信インタフェース１２２は、パケットを受信したか否かを判定する（ステップＳ１１）。パケットを受信していないと判定した場合（ステップＳ１１；Ｎｏ）、通信インタフェース１２２は、パケットを受信するまで、判定処理を繰り返す。
【００５７】
一方、パケットを受信したと判定した場合（ステップＳ１１；Ｙｅｓ）、コネクション管理部１２３は、受信したパケットのヘッダ情報を抽出する（ステップＳ１２）。例えば、コネクション管理部１２３は、ＩＰヘッダから、送信元のＩＰアドレスおよび宛先のＩＰアドレスを抽出する。コネクション管理部１２３は、ＴＣＰヘッダから、送信元のポート番号、宛先のポート番号、シーケンス番号、ＡＣＫ番号（確認応答番号）、パケット長などを抽出する。
【００５８】
そして、コネクション管理部１２３は、コネクション管理テーブル１１１に記憶された情報から、今回受信したコネクション情報に対応するレコードを検索する（ステップＳ１３）。ここでいうコネクション情報とは、送信元のＩＰアドレス、送信元のポート番号、宛先のＩＰアドレスおよび宛先のポート番号である。例えば、コネクション管理部１２３は、コネクション情報を検索条件として、コネクション管理テーブル１１１から該当するレコードを検索する。なお、送信元の情報と宛先の情報とが入れ替わった場合であっても、同じコネクションであることとする。
【００５９】
そして、コネクション管理部１２３は、検索の結果、コネクション情報が未登録であるか否かを判定する（ステップＳ１４）。コネクション情報が未登録でないと判定した場合（ステップＳ１４；Ｎｏ）、コネクション管理部１２３は、ステップＳ１６に移行する。
【００６０】
一方、コネクション情報が未登録であると判定した場合（ステップＳ１４；Ｙｅｓ）、コネクション管理部１２３は、コネクション情報を、コネクション管理テーブル１１１に登録する（ステップＳ１５）。例えば、コネクション管理部１２３は、新たなコネクションＩＤ（コネクションＩＤ１１１ａ）に対して、送信元のＩＰアドレス（送信元ＩＰ１１１ｂ）およびポート番号（送信元ポート１１１ｃ）を追加する。加えて、コネクション管理部１２３は、同じレコードに、宛先のＩＰアドレス（送信先ＩＰ１１１ｄ）およびポート番号（送信先ポート１１１ｅ）を追加する。そして、コネクション管理部１２３は、ステップＳ１６に移行する。
【００６１】
ステップＳ１６では、コネクション管理部１２３は、当該パケットがＤＡＴＡであるか否かを判定する（ステップＳ１６）。例えば、コネクション管理部１２３は、ＴＣＰヘッダのパケット長を参照し、パケット長が０ならば、ＡＣＫと判定し、パケット長が０より大きければ、ＤＡＴＡと判定する。
【００６２】
当該パケットがＤＡＴＡであると判定した場合（ステップＳ１６；Ｙｅｓ）、コネクション管理部１２３は、データパケット受信時の処理へ移行すべく、ステップＳ２１に移行する。一方、当該パケットがＤＡＴＡでないと判定した場合（ステップＳ１６；Ｎｏ）、すなわち当該パケットがＡＣＫである場合、コネクション管理部１２３は、ＡＣＫパケット受信時の処理へ移行すべく、ステップＳ３１に移行する。
【００６３】
［データパケット受信時の処理のフローチャート］
図９Ｂに示すように、ステップＳ２１では、コネクション管理部１２３は、受信したパケットがＤＡＴＡと判定されたので、当該ＤＡＴＡのＤＡＴＡ情報をＤＡＴＡテーブル１１３に追加する（ステップＳ２１）。追加する情報は、例えば、コネクションＩＤ（コネクションＩＤ１１３ａ）、受信したＤＡＴＡのＩＤ（データＩＤ１１３ｂ）、シーケンス番号（Ｓｅｑ番号１１３ｃ）、パケット長（パケット長１１３ｄ）およびＤＡＴＡの観測点への到着時刻（到着時刻１１３ｅ）である。観測点とは、パケット解析装置１のことを意味する。
【００６４】
クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３およびＡＣＫテーブル１１４を用いて、受信したＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡであるかを判定する（ステップＳ２２）。例えば、クロストラヒック判定部１２４は、受信したＤＡＴＡのシーケンス番号（Ｓｅｑ番号１１３ｃ）が最新に受信されたＡＣＫの確認応答番号（ＡＣＫ番号１１４ｃ）と同じであれば、受信したＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡであると判定する。一方、クロストラヒック判定部１２４は、受信したＤＡＴＡのシーケンス番号（Ｓｅｑ番号１１３ｃ）が最新に受信されたＡＣＫの確認応答番号（ＡＣＫ番号１１４ｃ）と同じでなければ、受信したＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡでないと判定する。すなわち、受信したパケットが連続で送信されたＤＡＴＡであると判定する。なお、かかる判定処理は、これに限定されず、受信したＤＡＴＡの到着時刻１１３ｅと最新に受信されたＡＣＫの到着時刻１１４ｄとの比較により判定しても良い。
【００６５】
受信したＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡであると判定した場合には（ステップＳ２２；Ｙｅｓ）、クロストラヒック判定部１２４は、ＤＡＴＡからネットワーク帯域の推定値を算出する（ステップＳ２３）。すなわち、クロストラヒック判定部１２４は、ＡＣＫを待ってから送信されたＤＡＴＡの到着間隔を利用して、下限の閾値を算出する。例えば、クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３を用いて、受信したＤＡＴＡの到着時刻１１３ｅを取得する。クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３およびＡＣＫテーブル１１４を用いて、１つ前に受信されたＡＣＫを待ってから送信されたＤＡＴＡの到着時刻１１３ｅを取得する。そして、クロストラヒック判定部１２４は、２つのＤＡＴＡの到着時刻の到着間隔ｔ１を算出する。また、クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３およびＡＣＫテーブル１１４を用いて、２つのＡＣＫの間に連続で送信されたＤＡＴＡの到着時刻１１３ｅを取得する。そして、クロストラヒック判定部１２４は、１つ前に受信されたＡＣＫを待ってから送信されたＤＡＴＡの到着時刻１１３ｅと、連続で送信されたＤＡＴＡの到着時刻１１３ｅとの到着間隔ｔ２を算出する。そして、クロストラヒック判定部１２４は、到着間隔ｔ１から到着間隔ｔ２を引いたＤＡＴＡの到着間隔を算出する。そして、クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔および受信したＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域の推定値を算出する。
【００６６】
クロストラヒック判定部１２４は、算出したネットワーク帯域の推定値を下限の閾値として閾値テーブル１１５に更新する（ステップＳ２４）。そして、クロストラヒック判定部１２４は、次のパケットの処理をすべく、ステップＳ１１に移行する。
【００６７】
一方、受信したＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡでないと判定した場合には（ステップＳ２２；Ｎｏ）、クロストラヒック判定部１２４は、ＤＡＴＡからネットワーク帯域の推定値を算出する（ステップＳ２５）。すなわち、クロストラヒック判定部１２４は、連続で送信されたＤＡＴＡの到着間隔を利用して、上限の閾値を算出する。例えば、クロストラヒック判定部１２４は、受信したＤＡＴＡの到着時刻１１３ｅを取得する。クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３を用いて、受信したＤＡＴＡの１つ前に受信されたＤＡＴＡの到着時刻１１３ｅを取得する。そして、クロストラヒック判定部１２４は、２つのＤＡＴＡの到着時刻からＤＡＴＡの到着間隔を算出する。そして、クロストラヒック判定部１２４は、ＤＡＴＡの到着間隔および受信したＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域の推定値を算出する。
【００６８】
クロストラヒック判定部１２４は、算出したネットワーク帯域の推定値を上限の閾値として閾値テーブル１１５に更新する（ステップＳ２６）。そして、クロストラヒック判定部１２４は、次のパケットの処理をすべく、ステップＳ１１に移行する。
【００６９】
［ＡＣＫパケット受信時の処理のフローチャート］
図９Ｃに示すように、ステップＳ３１では、コネクション管理部１２３は、受信したパケットがＡＣＫと判定されたので、当該ＡＣＫのＡＣＫ情報をＡＣＫテーブル１１４に追加する（ステップＳ３１）。追加する情報は、例えば、コネクションＩＤ（コネクションＩＤ１１４ａ）、受信したＡＣＫのＩＤ（ＡＣＫＩＤ１１４ｂ）、ＡＣＫ番号（ＡＣＫ番号１１４ｃ）、ＡＣＫの観測点への到着時刻（到着時刻１１４ｄ）である。観測点とは、パケット解析装置１のことを意味する。
【００７０】
クロストラヒック判定部１２４は、受信したＡＣＫからネットワーク帯域の推定値を算出する（ステップＳ３２）。例えば、クロストラヒック判定部１２４は、ＡＣＫテーブル１１４を用いて、最新に受信されたＡＣＫの到着時刻１１４ｄと、１つ前に受信されたＡＣＫの到着時刻１１４ｄとの到着間隔を算出する。クロストラヒック判定部１２４は、ＤＡＴＡテーブル１１３およびＡＣＫテーブル１１４を用いて、ＡＣＫの間に送信されたＤＡＴＡのパケット長１１３ｄを取得する。そして、クロストラヒック判定部１２４は、ＡＣＫの到着間隔およびＡＣＫ間のＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域の推定値を算出する。
【００７１】
クロストラヒック判定部１２４は、閾値テーブル１１５を用いて、ＡＣＫから算出したネットワーク帯域の推定値が下限の閾値以上であるか否かを判定する（ステップＳ３３）。ＡＣＫから算出したネットワーク帯域の推定値が下限の閾値以上でないと判定した場合には（ステップＳ３３；Ｎｏ）、クロストラヒック判定部１２４は、最新に受信されたＡＣＫがクロストラヒックの影響を受けたＡＣＫであると判定する。そして、クロストラヒック判定部１２４は、ネットワーク帯域の計測に不要なパケットであると判断し、ステップＳ１１に移行する。
【００７２】
一方、ＡＣＫから算出したネットワーク帯域の推定値が下限の閾値以上であると判定した場合には（ステップＳ３３；Ｙｅｓ）、クロストラヒック判定部１２４は、以下の処理を行う。すなわち、クロストラヒック判定部１２４は、ＡＣＫから算出したネットワーク帯域の推定値が上限の閾値以下であるか否かを判定する（ステップＳ３４）。ＡＣＫから算出したネットワーク帯域の推定値が上限の閾値以下でないと判定した場合には（ステップＳ３４；Ｎｏ）、クロストラヒック判定部１２４は、最新に受信されたＡＣＫがクロストラヒックの影響を受けたＡＣＫであると判定する。そして、クロストラヒック判定部１２４は、ネットワーク帯域の計測に不要なパケットであると判断し、ステップＳ１１に移行する。
【００７３】
一方、ＡＣＫから算出したネットワーク帯域の推定値が上限の閾値以下であると判定した場合には（ステップＳ３４；Ｙｅｓ）、帯域推定部１２５は、以下の処理を行う。すなわち、帯域推定部１２５は、受信側のネットワーク帯域の推定値を、ＡＣＫから算出したネットワーク帯域の推定値に更新する（ステップＳ３５）。そして、帯域推定部１２５は、次のパケットの処理をすべく、ステップＳ１１に移行する。
【００７４】
［パケット解析処理の具体例］
次に、実施例に係るパケット解析処理の具体例を、図１０および図１１を参照して説明する。図１０は、ＡＣＫ間隔が広がる場合のパケット解析処理の具体例を示す図である。図１１は、ＡＣＫ間隔が縮まる場合のパケット解析処理の具体例を示す図である。なお、図１０および図１１では、送信側のネットワーク帯域が１００Ｍｂｐｓ、受信側のネットワーク帯域が５０Ｍｂｐｓであるとする。また、ＤＡＴＡのサイズは、１５００バイトであり、２つのＤＡＴＡに対してＡＣＫを返信している場合とする。
【００７５】
［ＡＣＫ間隔が広がる場合のパケット解析処理の具体例］
図１０に示すように、ＤＡＴＡｄ２５、ｄ２６がクロストラヒックの影響を受けたため、ＤＡＴＡｄ２５、ｄ２６に対して返信されるＡＣＫａ３３と１つ前に返信されるＡＣＫａ３２との間隔が広がる場合である。
【００７６】
例えば、パケット解析装置１は、ＤＡＴＡｄ２７を受信した場合には、ＤＡＴＡｄ２７がＡＣＫａ３２を待ってから送信されたＤＡＴＡであるので、ＤＡＴＡの到着間隔を利用して以下のように下限の閾値を算出する。すなわち、パケット解析装置１は、ＡＣＫａ３２および１つ前のＡＣＫａ３１をそれぞれ待ってから送信された２つのＤＡＴＡｄ２５、ｄ２７の到着間隔を算出する。２つのＤＡＴＡｄ２５、ｄ２７の到着間隔は、符号ｔ１０で示される間隔である。パケット解析装置１は、算出した到着間隔から、これらＡＣＫａ３２、ａ３１の間に送信された連続ＤＡＴＡｄ２１、ｄ２２の到着間隔を引いたＤＡＴＡの到着間隔を算出する。連続ＤＡＴＡｄ２１、ｄ２２の到着間隔は、符号ｔ１１で示される間隔である。パケット解析装置１は、ＤＡＴＡの到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。
【００７７】
ここでは、ＤＡＴＡｄ２５、ｄ２７の到着間隔は、４８０μｓであり、連続ＤＡＴＡｄ２１、ｄ２２の到着間隔は、１２０μｓであったとする。すると、パケット解析装置１は、以下の式（２）のように、下限の閾値を算出する。
下限の閾値＝８ｂｉｔｓ×１５００ｂｙｔｅｓ／（４８０μｓ−１２０μｓ）＝３３．３３Ｍｂｐｓ・・・式（２）
【００７８】
次に、パケット解析装置１は、ＤＡＴＡｄ２８を受信した場合には、ＤＡＴＡｄ２８がＡＣＫａ３２を待ってから送信されたＤＡＴＡでなく、連続で送信されたＤＡＴＡであるので、連続で送信されたＤＡＴＡの到着間隔を利用して以下のように上限の閾値を算出する。すなわち、パケット解析装置１は、連続ＤＡＴＡｄ２１、ｄ２２の到着間隔を算出する。パケット解析装置１は、連続ＤＡＴＡの到着間隔およびＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。
【００７９】
ここでは、連続ＤＡＴＡｄ２１、ｄ２２の到着間隔は、１２０μｓであったとする。すると、パケット解析装置１は、以下の式（３）のように、上限の閾値を算出する。
上限の閾値＝８ｂｉｔｓ×１５００ｂｙｔｅｓ／１２０μｓ＝１００Ｍｂｐｓ・・・式（３）
【００８０】
次に、パケット解析装置１は、ＡＣＫａ３３を受信した場合には、受信したＡＣＫａ３３から以下のようにネットワーク帯域の推定値を算出する。すなわち、パケット解析装置１は、ＡＣＫａ３３と、１つ前に受信されたＡＣＫａ３２との到着間隔およびＤＡＴＡｄ２３，ｄ２４のサイズを式（１）に代入して、ネットワーク帯域の推定値を算出する。
【００８１】
ここでは、ＡＣＫａ３３と、１つ前に受信されたＡＣＫａ３２との到着間隔は、９６０μｓであったとする。すると、パケット解析装置１は、受信したＡＣＫａ３３から、以下の式（４）のようにネットワーク帯域の推定値を算出する。
＜２＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／９６０μｓ＝２５Ｍｂｐｓ・・・式（４）
【００８２】
そして、パケット解析装置１は、ＡＣＫａ３３から算出したネットワーク帯域の推定値が下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ３３から算出したネットワーク帯域の推定値は、２５Ｍｂｐｓであるので、下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下でないと判定される。そこで、パケット解析装置１は、ＡＣＫａ３３がクロストラヒックの影響を受けたＡＣＫであると判定する。したがって、パケット解析装置１は、ＡＣＫａ３３をネットワーク帯域の計測に不要なパケットであると判断する。
【００８３】
ここで、パケット解析装置１は、ＡＣＫａ３２を受信した場合には、受信したＡＣＫａ３２からネットワーク帯域の推定値を算出する。ここでは、１つ前に受信されたＡＣＫａ３１との到着間隔は、４８０μｓであったとする。すると、パケット解析装置１は、受信したＡＣＫａ３２から、以下の式（５）のようにネットワーク帯域の推定値を算出する。
＜１＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／４８０μｓ＝５０Ｍｂｐｓ・・・式（５）
【００８４】
そして、パケット解析装置１は、ＡＣＫａ３２から算出したネットワーク帯域の推定値が下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ３２から算出したネットワーク帯域の推定値は、５０Ｍｂｐｓであるので、下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であると判定される。そこで、パケット解析装置１は、ＡＣＫａ３２がクロストラヒックの影響を受けたＡＣＫでないと判定する。したがって、パケット解析装置１はＡＣＫａ３２からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、受信側のネットワーク帯域の推定値は、式（５）のように５０Ｍｂｐｓとして算出される。
【００８５】
また、パケット解析装置１は、ＡＣＫａ３４を受信した場合には、受信したＡＣＫａ３４からネットワーク帯域の推定値を算出する。ここでは、１つ前に受信されたＡＣＫａ３３との到着間隔は、４８０μｓであったとする。すると、パケット解析装置１は、受信したＡＣＫａ３４から、以下の式（６）のようにネットワーク帯域の推定値を算出する。
＜３＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／４８０μｓ＝５０Ｍｂｐｓ・・・式（６）
【００８６】
そして、パケット解析装置１は、ＡＣＫａ３４から算出したネットワーク帯域の推定値が下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ３４から算出したネットワーク帯域の推定値は、５０Ｍｂｐｓであるので、下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であると判定される。そこで、パケット解析装置１は、ＡＣＫａ３４がクロストラヒックの影響を受けたＡＣＫでないと判定する。したがって、パケット解析装置１は、ＡＣＫａ３２およびＡＣＫａ３４からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、パケット解析装置１は、以下の式（７）のように受信側のネットワーク帯域の推定値として算出する。
受信側のネットワーク帯域の推定値＝８ｂｉｔｓ×（４×１５００ｂｙｔｅｓ）／２×４８０μｓ＝５０Ｍｂｐｓ・・・式（７）
【００８７】
［ＡＣＫ間隔が縮まる場合のパケット解析処理の具体例］
図１１に示すように、ＡＣＫａ５１がクロストラヒックの影響を受けたため、ＡＣＫａ５１とＡＣＫａ５２とのＡＣＫ間隔が縮まる場合である。
【００８８】
例えば、パケット解析装置１は、図１０で示したように、ＤＡＴＡを受信した場合には、ＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡであれば、ＤＡＴＡの到着間隔を利用して下限の閾値を算出する。ここでは、パケット解析装置１は、下限の閾値を、式（２）で示したように、３３．３３Ｍｂｐｓと算出するとする。
【００８９】
次に、パケット解析装置１は、ＤＡＴＡを受信した場合には、ＤＡＴＡがＡＣＫを待ってから送信されたＤＡＴＡでなく、連続で送信されたＤＡＴＡであれば、連続で送信されたＤＡＴＡの到着間隔を利用して上限の閾値を算出する。ここでは、連続ＤＡＴＡの到着間隔は、１２０μｓであったとする。すると、パケット解析装置１は、以下の式（８）のように、上限の閾値を算出する。
上限の閾値＝８ｂｉｔｓ×１５００ｂｙｔｅｓ／１２０μｓ＝１００Ｍｂｐｓ・・・式（８）
【００９０】
次に、パケット解析装置１は、ＡＣＫａ５２を受信した場合には、受信したＡＣＫａ５２から以下のようにネットワーク帯域の推定値を算出する。すなわち、パケット解析装置１は、ＡＣＫａ５２と、１つ前に受信されたＡＣＫａ５１との到着間隔および２つのＤＡＴＡのサイズを式（１）に代入して、ネットワーク帯域の推定値を算出する。
【００９１】
ここでは、ＡＣＫａ５２と、１つ前に受信されたＡＣＫａ５１との到着間隔は、１６０μｓ（＜１´＞）であったとする。すると、パケット解析装置１は、受信したＡＣＫａ５２から、以下の式（９）のようにネットワーク帯域の推定値を算出する。
＜１´＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／１６０μｓ＝１５０Ｍｂｐｓ・・・式（９）
【００９２】
そして、パケット解析装置１は、ＡＣＫａ５２から算出したネットワーク帯域の推定値が下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ５２から算出したネットワーク帯域の推定値は、１５０Ｍｂｐｓであるので、上限の閾値（１００Ｍｂｐｓ）以下でないと判定される。そこで、パケット解析装置１は、ＡＣＫａ５２がクロストラヒックの影響を受けたＡＣＫであると判定する。したがって、パケット解析装置１は、ＡＣＫａ５２をネットワーク帯域の計測に不要なパケットであると判断する。
【００９３】
また、パケット解析装置１は、ＡＣＫａ５３を受信した場合には、受信したＡＣＫａ５３からネットワーク帯域の推定値を算出する。ここでは、１つ前に受信されたＡＣＫａ５２との到着間隔は、４８０μｓであったとする。すると、パケット解析装置１は、受信したＡＣＫａ５３から、以下の式（１０）のようにネットワーク帯域の推定値を算出する。
＜２´＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／４８０μｓ＝５０Ｍｂｐｓ・・・式（１０）
【００９４】
そして、パケット解析装置１は、ＡＣＫａ５３から算出したネットワーク帯域の推定値が下限の閾値以上（３３．３３Ｍｂｐｓ）且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ５３から算出したネットワーク帯域の推定値は、５０Ｍｂｐｓであるので、下限の閾値以上且つ上限の閾値以下であると判定される。そこで、パケット解析装置１は、ＡＣＫａ５３がクロストラヒックの影響を受けたＡＣＫでないと判定する。したがって、パケット解析装置１はＡＣＫａ５３からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、受信側のネットワーク帯域の推定値は、式（１０）のように５０Ｍｂｐｓとして算出される。
【００９５】
また、パケット解析装置１は、ＡＣＫａ５４を受信した場合には、受信したＡＣＫａ５４からネットワーク帯域の推定値を算出する。ここでは、１つ前に受信されたＡＣＫａ５３との到着間隔は、４８０μｓであったとする。すると、パケット解析装置１は、受信したＡＣＫａ５４から、以下の式（１１）のようにネットワーク帯域の推定値を算出する。
＜３´＞のネットワーク帯域＝８ｂｉｔｓ×（２×１５００ｂｙｔｅｓ）／４８０μｓ＝５０Ｍｂｐｓ・・・式（１１）
【００９６】
そして、パケット解析装置１は、ＡＣＫａ５４から算出したネットワーク帯域の推定値が下限の閾値（３３．３３Ｍｂｐｓ）以上且つ上限の閾値（１００Ｍｂｐｓ）以下であるか否かを判定する。ここでは、ＡＣＫａ５４から算出したネットワーク帯域の推定値は、５０Ｍｂｐｓであるので、下限の閾値以上且つ上限の閾値以下であると判定される。そこで、パケット解析装置１は、ＡＣＫａ５４がクロストラヒックの影響を受けたＡＣＫでないと判定する。したがって、パケット解析装置１は、ＡＣＫａ５３およびＡＣＫａ５４からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、パケット解析装置１は、以下の式（１２）のように受信側のネットワーク帯域の推定値として算出する。
受信側のネットワーク帯域の推定値＝８ｂｉｔｓ×（４×１５００ｂｙｔｅｓ）／２×４８０μｓ＝５０Ｍｂｐｓ・・・式（１２）
【００９７】
これにより、パケット解析装置１は、クロストラヒックの影響を受けたＡＣＫを特定し、受信側の端末３のネットワーク帯域の計測時に除去することで、より正確な受信側の端末３のネットワーク帯域を計測できる。
【００９８】
［実施例の効果］
上記実施例によれば、パケット解析装置１は、送信側の端末４と受信側の端末３との間で通信されるパケットを送信側の端末４と受信側の端末３との間のネットワークのいずれかの地点で取得する。パケット解析装置１は、取得したパケットと取得時刻を対応付けて記憶する。パケット解析装置１は、受信側の端末３から送信された第１のＡＣＫパケットの取得から該第１のＡＣＫパケットの次のＡＣＫパケットである第２のＡＣＫパケットの取得までの間に送信側の端末４から送信されたデータパケットの帯域が、第１のＡＣＫパケットおよび第２のＡＣＫパケットを待ってからそれぞれ送信された２つのデータパケットの取得間隔を用いて得られる帯域より小さい、または第１のＡＣＫパケットを待たずに送信されたデータパケットを含む隣接する２つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する。かかる構成によれば、パケット解析装置１は、キャプチャしたパケットから、受信側の端末３のネットワーク帯域の算出に不要なＡＣＫパケットを特定し、排除することができる。この結果、パケット解析装置１は、より正確な受信側の端末３のネットワーク帯域を計測できる。
【００９９】
また、上記実施例によれば、パケット解析装置１は、第１のＡＣＫパケットを待たずに送信されたデータパケットを取得した場合には、第１のＡＣＫパケットを待ってから送信されたデータパケットおよび前記第１のＡＣＫパケットを待たずに送信されたデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を下限の閾値として更新する。パケット解析装置１は、第２のＡＣＫパケットを待ってから送信されたデータパケットを取得した場合には、第１のＡＣＫパケットおよび第２のＡＣＫパケットをそれぞれ待ってから送信された２つのデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を上限の閾値として更新する。パケット解析装置１は、第１のＡＣＫパケットおよび第２のＡＣＫパケットの取得間隔を用いて得られる帯域が、下限の閾値より小さい、または上限の閾値より大きい場合に、第２のＡＣＫパケットを帯域計測に不要なパケットであると判定する。係る構成によれ、パケット解析装置１は、パケットが到着するごとに、動的に閾値を更新するので、閾値をパケットの挙動により自動的に変更することができる。言い換えると、パケット解析装置１は、上限の閾値および下限の閾値を、ネットワークの状況に応じて更新することができる。この結果、パケット解析装置１は、帯域計測に不要なパケットを正確に特定することができる。
【０１００】
［その他］
なお、パケット解析装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したコネクション管理部１２３、クロストラヒック判定部１２４および帯域推定部１２５などの各機能を搭載することによって実現することができる。
【０１０１】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、通信インタフェース１２２とコネクション管理部１２３とを１個の部として統合しても良い。一方、クロストラヒック判定部１２４を、閾値を算出する算出部と、クロストラヒックを判定する判定部とに分散しても良い。また、コネクション管理テーブル１１１、解析情報テーブル１１２および統計情報テーブル１１６をパケット解析装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１０２】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したパケット解析装置１と同様の機能を実現するパケット解析プログラムを実行するコンピュータの一例を説明する。図１２は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【０１０３】
図１２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１０４】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、パケット解析プログラム２０５ａおよびパケット解析関連情報２０５ｂを記憶する。
【０１０５】
ＣＰＵ２０３は、パケット解析プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、パケット解析装置１の各機能部に対応する。パケット解析関連情報２０５ｂは、コネクション管理テーブル１１１、解析情報テーブル１１２、統計情報テーブル１１６に対応する。そして、例えばリムーバブルディスク２１１が、パケット解析プログラム２０５ａなどの各情報を記憶する。
【０１０６】
なお、パケット解析プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからパケット解析プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１０７】
１  パケット解析装置
１１  記憶部
１２  制御部
１１１  コネクション管理テーブル
１１２  解析情報テーブル
１１３  ＤＡＴＡテーブル
１１４  ＡＣＫテーブル
１１５  閾値テーブル
１１６  統計情報テーブル
１２１  出力インタフェース
１２２  通信インタフェース
１２３  コネクション管理部
１２４  クロストラヒック判定部
１２５  帯域推定部
２  ＳＷ
３，４  端末
５  出力装置
【図１】
2016184824.tif 000003
【図２Ａ】
2016184824.tif 000004
【図２Ｂ】
2016184824.tif 000005
【図３Ａ】
2016184824.tif 000006
【図３Ｂ】
2016184824.tif 000007
【図４】
2016184824.tif 000008
【図５】
2016184824.tif 000009
【図６】
2016184824.tif 000010
【図７】
2016184824.tif 000011
【図８】
2016184824.tif 000012
【図９Ａ】
2016184824.tif 000013
【図９Ｂ】
2016184824.tif 000014
【図９Ｃ】
2016184824.tif 000015
【図１０】
2016184824.tif 000016
【図１１】
2016184824.tif 000017
【図１２】
2016184824.tif 000018