(57)【要約】【課題】装置間のスループットを正確に計測する。【解決手段】パケット解析装置１は、端末３と端末４との間で通信されるパケットを前記端末４と端末３との間のネットワークのいずれかの地点で取得する。パケット解析装置１は、端末４から送信された、グループに対応する最初のＤＡＴＡである第１ＤＡＴＡの取得から、端末３から送信された第１ＤＡＴＡに対応する第１ＡＣＫの取得にかかった時間とグループのＤＡＴＡの量である第１パケット量とにより求めた第１スループット値と、第１ＡＣＫの取得から最後のＡＣＫである第２ＡＣＫの取得にかかった時間とグループから第１ＤＡＴＡを除いたＤＡＴＡの量である第２パケット量とにより求めた第２スループット値とを算出する。パケット解析装置１は、第１スループット値と前２スループット値とを比較して、グループに対応する所定の区間のスループット値を特定する。【選択図】図１
2017079412.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末との間のネットワークのいずれかの地点で取得し、
該取得したパケットと取得時刻とを対応付けて記憶し、
前記送信端末から送信された、１以上のＤａｔａパケットを所定の基準に基づいてまとめたグループに対応する最初のＤａｔａパケットである第１Ｄａｔａパケットの取得から、前記受信端末から送信された前記第１Ｄａｔａパケットに対応する第１Ａｃｋパケットの取得にかかった時間と前記グループのＤａｔａパケットの量である第１パケット量とにより求めた第１スループット値と、前記第１Ａｃｋパケットの取得から最後のＡｃｋパケットである第２Ａｃｋパケットの取得にかかった時間と前記グループから前記第１Ｄａｔａパケットを除いたＤａｔａパケットの量である第２パケット量とにより求めた第２スループット値とを算出し、
前記第１スループット値と前記第２スループット値とを比較して、前記グループに対応する所定の区間のスループット値を特定する
処理を実行させることを特徴とするパケット解析プログラム。
【請求項２】
さらに、前記第１Ａｃｋパケットの取得から、前記第１Ａｃｋパケットの取得に応じて前記送信端末から送信される次のグループのＡｃｋパケットである第３Ａｃｋパケットの取得にかかった時間と前記第２パケット量および前記次のグループのＤａｔａパケットの量とにより求めた第３スループット値を算出し、
前記第１スループット値と前記第３スループット値とを比較して、比較結果に応じて前記第１スループット値および前記第２スループット値のいずれかを前記所定の区間のスループット値として特定する
処理を実行させることを特徴とする請求項１に記載のパケット解析プログラム。
【請求項３】
期間毎に特定されたスループット値を含む情報を用いて、所定の区間のスループット値の遷移を示すグラフを出力する
処理を実行させることを特徴とする請求項１または請求項２に記載のパケット解析プログラム。
【請求項４】
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末との間のネットワークのいずれかの地点で取得する取得部と、
前記取得部によって取得されたパケットと取得時刻とを対応付けて記憶部に格納する格納部と、
前記送信端末から送信された、１以上のＤａｔａパケットを所定の基準に基づいてまとめたグループに対応する最初のＤａｔａパケットである第１Ｄａｔａパケットの取得から、前記受信端末から送信された前記第１Ｄａｔａパケットに対応する第１Ａｃｋパケットの取得にかかった時間と前記グループのＤａｔａパケットの量である第１パケット量とにより求めた第１スループット値と、前記第１Ａｃｋパケットの取得から最後のＡｃｋパケットである第２Ａｃｋパケットの取得にかかった時間と前記グループから前記第１Ｄａｔａパケットを除いたＤａｔａパケットの量である第２パケット量とにより求めた第２スループット値とを算出する算出部と、
前記第１スループット値と前記第２スループット値とを比較して、前記グループに対応する所定の区間のスループット値を特定する特定部と、
を有することを特徴とするパケット解析装置。
【請求項５】
コンピュータが、
送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末との間のネットワークのいずれかの地点で取得し、
該取得したパケットと取得時刻とを対応付けて記憶し、
前記送信端末から送信された、１以上のＤａｔａパケットを所定の基準に基づいてまとめたグループに対応する最初のＤａｔａパケットである第１Ｄａｔａパケットの取得から、前記受信端末から送信された前記第１Ｄａｔａパケットに対応する第１Ａｃｋパケットの取得にかかった時間と前記グループのＤａｔａパケットの量である第１パケット量とにより求めた第１スループット値と、前記第１Ａｃｋパケットの取得から最後のＡｃｋパケットである第２Ａｃｋパケットの取得にかかった時間と前記グループから前記第１Ｄａｔａパケットを除いたＤａｔａパケットの量である第２パケット量とにより求めた第２スループット値とを算出し、
前記第１スループット値と前記第２スループット値とを比較して、前記グループに対応する所定の区間のスループット値を特定する
処理を実行することを特徴とするパケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット解析プログラムに関する。
【背景技術】
【０００２】
ＴＣＰプロトコルのパケットを取得して、装置間のスループットを算出する技術が開示されている。例えば、情報処理装置は、サーバクライアント間における通信コネクション設定期間内において発生するデータ送受信非実行期間を除くデータ送受信実行期間を抽出し、該データ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出する。かかるデータ送受信実行期間は、ウィンドウサイズに基づく連続データ送信の開始から、送信された連続データに対する受信確認応答（ａｃｋ）を受信するまでの期間である（例えば、特許文献１−３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２７９２８３号公報
【特許文献２】特開２００７−２４３３０８号公報
【特許文献３】特開２０１１−２５９３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来における装置間のスループットの算出方法では、装置間の正確なスループットを計測できないという問題がある。送信側と受信側とで帯域差がある場合、例えば送信側に比べて受信側の帯域が狭い場合に、装置間のスループットを正確に計測できない。ここで、装置間のスループットを正確に計測できないという問題について説明する。
【０００５】
従来では、装置間の経路が有線のネットワークである場合が多く、送信側と受信側とで帯域差がある場合が少なかったので、送信側に比べて受信側の帯域が狭い場合は少なく、装置間のスループットの推定精度が問題になることは少なかった。すなわち、情報処理装置は、データ送受信実行期間の時間および送信データ量に基づいて装置間のスループットを正確に計測できる。
【０００６】
これに対して、近年では、スマートフォンやＷｉＦｉ等の低速で不安定な無線のネットワークが普及したことで、送信側に比べて受信側の帯域が狭い区間が多くなったので、従来における算出方法では、推定精度が問題になる場合がある。すなわち、送信側に比べて受信側の帯域が狭い場合には、情報処理装置は、データ送受信実行期間の時間および送信データ量に基づいて装置間のスループットを計測しても、帯域が狭い区間に影響を受けるので、装置間のスループットを正確に計測できない。
【０００７】
１つの側面では、装置間のスループットを正確に計測することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、パケット解析プログラムは、コンピュータに、送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末との間のネットワークのいずれかの地点で取得し、該取得したパケットと取得時刻とを対応付けて記憶し、前記送信端末から送信された、１以上のＤａｔａパケットを所定の基準に基づいてまとめたグループに対応する最初のＤａｔａパケットである第１Ｄａｔａパケットの取得時間と前記受信端末から送信された前記第１Ｄａｔａパケットに対応する第１Ａｃｋパケットの取得にかかった時間と前記グループのＤａｔａパケットの量とにより求めた第１スループット値と、前記第１Ａｃｋパケットの取得から最後のＡｃｋパケットである第２Ａｃｋパケットの取得にかかった時間と前記グループから前記第１Ｄａｔａパケットを除いたＤａｔａパケットの量とにより求めた第２スループット値とを算出し、前記第１スループット値と前記第２スループット値とを比較して、所定の区間のスループット値を特定する処理を実行させる。
【発明の効果】
【０００９】
１つの態様によれば、装置間のスループットを正確に計測することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るパケット解析装置の機能構成を示す図である。
【図２Ａ】図２Ａは、ＴＣＰスループット推定の問題点を示す図（１）である。
【図２Ｂ】図２Ｂは、ＴＣＰスループット推定の問題点を示す図（２）である。
【図３】図３は、実施例に係るスループット推定部の処理を説明する図である。
【図４Ａ】図４Ａは、実施例に係るスループット推定部の処理を具体的に説明する図（１）である。
【図４Ｂ】図４Ｂは、実施例に係るスループット推定部の処理を具体的に説明する図（２）である。
【図４Ｃ】図４Ｃは、実施例に係るスループット推定部の処理を具体的に説明する図（３）である。
【図４Ｄ】図４Ｄは、実施例に係るスループット推定部の処理を具体的に説明する図（４）である。
【図５】図５は、解析情報テーブルのデータ構造の一例を示す図である。
【図６】図６は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。
【図７】図７は、ＡＣＫテーブルのデータ構造の一例を示す図である。
【図８】図８は、統計情報テーブルのデータ構造の一例を示す図である。
【図９Ａ】図９Ａは、実施例に係るコネクション確立時の処理のフローチャートを示す図である。
【図９Ｂ】図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。
【図９Ｃ】図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。
【図１０】図１０は、実施例に係るパケット解析装置の処理の具体例を示す図である。
【図１１】図１１は、出力例を示す図である。
【図１２】図１２は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するパケット解析プログラム、パケット解析装置およびパケット解析方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［実施例に係るパケット解析装置の構成］
図１は、実施例に係るパケット解析装置の機能構成を示す図である。図１に示すように、パケット解析装置１は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介して取得し、パッシブにネットワーク帯域を診断する。パッシブ診断とは、ネットワークを流れるパケットを計測対象としてネットワーク帯域を診断する診断方法のことをいう。なお、ネットワーク帯域を診断する診断方法には、パッシブ診断のほか、ネットワークに流された、予め用意されたパターンのパケットを計測対象としてネットワーク帯域を診断するアクティブ診断もあるが、実施例では、パッシブ診断を適用する場合である。
【００１３】
端末３，４は、例えば、ネットワーク上で、ＴＣＰ（Transmission  Control  Protocol）を用いた通信を行う。
【００１４】
ここで、ＴＣＰの通信機能の特性の一例について説明する。受信側の端末３がデータのパケットを受け取った場合に、そのデータのシーケンス番号とデータサイズから次に送られてくる予定のデータのシーケンス番号をＡＣＫの確認応答番号に設定したうえで、ＡＣＫを送信側の端末４に伝達する。送信側の端末４は、ＡＣＫを受信し、受信したＡＣＫの確認応答番号を確認することで、次のデータのパケットを送信する。
【００１５】
ところが、送信側の端末４は、データのパケットを１パケットずつ受信、確認および送信を行うと通信効率が悪い。そこで、ＴＣＰでは、「ウィンドウ制御」が行われる。ウィンドウ制御とは、送信側の端末４が、データのパケットを１パケットずつ受信、確認および送信するのではなく、複数のデータのパケットを連続で送信する。すなわち、送信側の端末４は、複数のデータのパケットを輻輳ウィンドウと呼ばれるウィンドウサイズの単位で管理し、ＡＣＫの確認応答番号を待つことなく、データのパケットを連続で送信する。このウィンドウ制御により通信効率が改善される。なお、ウィンドウ制御によって連続で送信されるデータのパケットのことを「連続パケット」といったり、「グループに対応するデータのパケット」といったりするものとする。なお、連続パケットの個数は、例えば、特開２０１５−０３５７０９号公報に開示された内容により特定することができる。
【００１６】
ところで、ネットワーク帯域の診断では、式（１）のように、ＲＴＴ（Round  Trip  Time）と輻輳ウィンドウ（ｃｗｉｎｄ）を利用してＴＣＰプロトコルのスループット（以降、「ＴＣＰスループット」という）を推定する。なお、ＲＴＴとは、データのパケットを送信してからＡＣＫのパケットが戻ってくるまでの時間のことをいい、すなわち、往復遅延時間を示す。輻輳ウィンドウとは、ＲＴＴ内に流れるデータのパケットのデータ量のことをいう。データのパケットのデータ量は、ウィンドウサイズの単位で管理される。
ＴＣＰスループット［ｂｐｓ］＝ｃｗｉｎｄ［ｂｉｔ］／ＲＴＴ［ｓｅｃ］・・式（１）
【００１７】
ところが、例えば、受信側に低速区間があったり、ＲＴＴが短かったり、ｃｗｉｎｄが大きかったりする場合に、ＴＣＰスループットの推定精度が低下するという問題がある。受信側に低速区間がある場合とは、例えば、物理帯域が狭い場合や物理帯域が広くてもネットワーク使用率が高い場合が挙げられる。このＴＣＰスループットの推定の問題点を、図２Ａおよび図２Ｂを参照して説明する。
【００１８】
図２Ａおよび図２Ｂは、ＴＣＰスループット推定の問題点を示す図である。図２Ａに示すように、計測地点で、パケット解析装置１は、ＲＴＴおよびｃｗｉｎｄを利用してＴＣＰスループットを計測する。ここでは、送信端末である端末４が、６個のデータパケットを連続して送信し、受信端末である端末３が最初のデータパケットに対応するＡＣＫパケットを送信する。かかる場合に、ＲＴＴが３．０［ｍｓｅｃ］であるとする。１個のデータパケットのデータ量が１５００［ｂｙｔｅ］であるとすると、ｃｗｉｎｄは６×１５００［ｂｙｔｅ］である。すると、パケット解析装置１は、ＲＴＴおよびｃｗｉｎｄを式（１）に代入し、ＴＣＰスループットの推定値を２４Ｍｂｐｓと計測する。ところが、受信側のネットワーク帯域が１０Ｍｂｐｓであるとすると、パケット解析装置１は、ＴＣＰスループットの推定値（２４Ｍｐｂｓ）を受信側のネットワーク帯域（１０Ｍｂｐｓ）より大きい値に推定してしまう。これは、例えば、ＲＴＴが短い場合、ｃｗｉｎｄが大きい場合や受信側に低速区間がある場合にＴＣＰスループットの計測値に誤差が発生するからである。
【００１９】
図２Ｂで示されるグラフは、Ｘ軸がＲＴＴ［ｍｓｅｃ］、Ｙ軸がスループット［Ｍｂｐｓ］である場合の実効スループットのグラフである。このグラフでは、計測上のＴＣＰスループットの推定値は、ＲＴＴが短い程大きく、ＲＴＴが長い程小さくなる反比例曲線に応じた値となる。すなわち、ネットワーク帯域が１０Ｍｂｐｓであっても、ＲＴＴがｔ０より短い場合には、計測上のＴＣＰスループットの推定値がネットワーク帯域より大きく計測されてしまう。つまり、ＴＣＰスループットの計測値に誤差が発生している。
【００２０】
これに対して、ＲＴＴがｔ０より長い場合には、計測上のＴＣＰスループットの推定値がネットワーク帯域より小さく計測される。ＲＴＴがｔ０より長い場合には、計測上のＴＣＰスループットの推定値がネットワーク帯域より小さく計測される。つまり、ＴＣＰスループットの計測値が実効スループットと一致すると推定される。
【００２１】
なお、計測上のＴＣＰスループットの推定値がネットワーク帯域より大きく計測されてしまう場合の一例としてＲＴＴが短い場合について説明したが、これに限定されない。計測上のＴＣＰスループットの推定値がネットワーク帯域より大きく計測されてしまう場合の原因は、ｃｗｉｎｄが大きい場合でも、受信側に低速区間がある場合でも同様である。
【００２２】
そこで、実施例では、パケット解析装置１が、ＡＣＫ間隔から計測されるスループットを利用してＴＣＰスループットの推定値の妥当性を判定し、装置３および装置４間の実効スループットを正確に計測する。かかる実効スループットの計測手法は、後述する。
【００２３】
図１に戻って、パケット解析装置１は、記憶部１１および制御部１２を有する。
【００２４】
記憶部１１は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部１１は、解析情報テーブル１１１、ＤＡＴＡテーブル１１２、ＡＣＫテーブル１１３および統計情報テーブル１１４を有する。
【００２５】
解析情報テーブル１１１は、解析情報を記憶する。解析情報テーブル１１１は、ネットワーク帯域が診断される際に用いられる。なお、解析情報テーブル１１１のデータ構造は、後述する。
【００２６】
ＤＡＴＡテーブル１１２は、データのパケット（以降、「ＤＡＴＡ」という）が取得される際に、ＤＡＴＡのインデックス番号、到着時刻およびパケット長を記憶する。ＡＣＫテーブル１１３は、ＡＣＫのパケット（以降、「ＡＣＫ」という）が取得される際に、到着時刻やＡＣＫに対応するＤＡＴＡのインデックス番号を記憶する。なお、ＤＡＴＡテーブル１１２およびＡＣＫテーブル１１３のそれぞれのデータ構造は、後述する。
【００２７】
統計情報テーブル１１４は、統計情報を記憶する。統計情報テーブル１１４は、ネットワーク帯域の診断の最終的な統計情報を記憶する。なお、統計情報テーブル１１４のデータ構造は、後述する。
【００２８】
制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。さらに、制御部１２は、出力インタフェース１２１、入力インタフェース１２２、コネクション管理部１２３およびスループット推定部１２４を有する。
【００２９】
出力インタフェース１２１は、出力装置５とのインタフェースである。例えば、出力インタフェース１２１は、統計情報テーブル１１４に記憶された統計情報および解析情報テーブル１１１に記憶された解析情報を編集し、出力装置５に出力する。
【００３０】
入力インタフェース１２２は、端末３と端末４との間で通信されるパケットを、ＳＷ２を介してキャプチャする。入力インタフェース１２２は、キャプチャしたパケットをコネクション管理部１２３に引き渡す。
【００３１】
コネクション管理部１２３は、キャプチャされたパケットのコネクションを管理する。例えば、コネクション管理部１２３は、コネクションの確立方法がスリーウェイハンドシェイク（３ｗａｙ‐ｈａｎｄｓｈａｋｅ）である場合に、コネクションの確立時に、ＳＹＮパケットとＳＹＮ／ＡＣＫパケットとを利用して、送信側往復遅延時間を計測する。一例として、コネクション管理部１２３は、受信端末である端末３から送信されたＳＹＮパケットの取得時間から、送信端末である端末４から送信されたＳＹＮ／ＡＣＫパケットの取得時間にかかった時間を送信側往復遅延時間として算出する。コネクション管理部１２３は、算出された送信側往復遅延時間を解析情報テーブル１１１に記録する。
【００３２】
また、コネクション管理部１２３は、キャプチャされたパケットがＡＣＫである場合には、取得時刻を対応付けたＡＣＫ情報をＡＣＫテーブル１１３に追加する。コネクション管理部１２３は、キャプチャされたパケットがＤＡＴＡである場合には、取得時刻を対応付けたＤＡＴＡ情報をＤＡＴＡテーブル１１２に追加する。なお、コネクション管理部１２３は、実施例では、同一のコネクション情報を持ったパケットをキャプチャしている場合として説明する。コネクション情報には、例えば、送信元のＩＰアドレス、送信元のポート番号、宛先のＩＰアドレスおよび宛先のポート番号が含まれる。
【００３３】
スループット推定部１２４は、ＡＣＫ間隔から計測されるスループットを利用してＴＣＰスループットの推定値の妥当性を判定する。例えば、スループット推定部１２４は、連続して送信する１以上のＤＡＴＡをまとめたグループに対応する最初のＤＡＴＡの取得から、最初のＤＡＴＡに対応するＡＣＫの取得にかかった時間を算出する。スループット推定部１２４は、式（１）に算出された時間とグループのＤＡＴＡのデータ量とを代入することにより、ＴＣＰスループットの推定値を算出する。また、スループット推定部１２４は、最初のＤＡＴＡに対応するＡＣＫの取得からグループに対応する最後のＡＣＫの取得にかかった時間を算出する。スループット推定部１２４は、算出された時間とグループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量（第２パケット量）とによりスループット値を算出する。このように算出されたスループット値は、ネットワーク帯域の近似値を示すものである。スループット推定部１２４は、ＴＣＰスループットの推定値とネットワーク帯域の近似値とを比較して、ＴＣＰスループットの推定値の妥当性を判定する。スループット推定部１２４は、ＴＣＰスループットの推定値が妥当性ありと判定された場合には、ＴＣＰスループットの推定値を実効スループット値として特定する。
【００３４】
また、スループット推定部１２４は、ＴＣＰスループットの推定値が妥当性ありと判定されなかった場合には、さらに、ネットワーク帯域の近似値の妥当性を判定する。例えば、スループット判定部１２４は、最初のＤＡＴＡに対応するＡＣＫの取得からグループ外の次のグループのＡＣＫの取得にかかった時間（第２のＡＣＫ間隔）を算出する。スループット推定部１２４は、算出された第２のＡＣＫ間隔と、第２パケット量および次のグループのＤａｔａのデータ量とから計測されるスループット値を推定する。スループット推定部１２４は、この推定値とＴＣＰスループットの推定値とを比較して、ネットワーク帯域の近似値の妥当性を判定する。すなわち、パケット解析装置１は、グループ外の次のグループのＡＣＫを含めた第２のＡＣＫ間隔を利用してネットワーク帯域の近似値の妥当性を判定する。スループット推定部１２４は、ネットワーク帯域の近似値が妥当性なしと判定された場合には、ＴＣＰスループットの推定値を実効スループット値として特定する。スループット推定部１２４は、ネットワーク帯域の近似値が妥当性ありと判定された場合には、ネットワーク帯域の近似値を実効スループット値として特定する。
【００３５】
ここで、実施例に係るスループット推定部１２４による実効スループットの計測手法を、図３を参照して説明する。図３は、実施例に係るスループット推定部の処理を説明する図である。図３に示すように、計測地点で、スループット推定部１２４は、送信端末である端末４から受信端末である端末３に１以上のＤＡＴＡをまとめたグループを送信する。スループット推定部１２４は、グループに対応する最初のＤＡＴＡに対応するＲＴＴとグループのＤＡＴＡのデータ量とにより、ＴＣＰスループットの推定値を計測する。ここでは、ＲＴＴがｔｐ０である。グループのＤＡＴＡのデータ量がｃｗｉｎｄであり、１５００×３［ｂｙｔｅ］である。
【００３６】
スループット推定部１２４は、最初のＡＣＫの取得からグループに対応する最後のＡＣＫの取得にかかった時間とグループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量とによりネットワーク帯域の近似値を算出する。ここでは、最初のＡＣＫの取得から最後のＡＣＫの取得にかかった時間、すなわちＡＣＫ間隔がｔｐ１である。
【００３７】
スループット推定部１２４は、ＴＣＰスループットの推定値とネットワーク帯域の近似値とを比較して、ＴＣＰスループットの推定値が実効スループットして良いかどうかの妥当性を判定する。すなわち、スループット推定部１２４は、グループ内のＡＣＫ間隔から計測されるスループットを利用してＴＣＰスループットの推定値の妥当性を判定する。スループット推定部１２４は、ＴＣＰスループットの推定値がネットワーク帯域の近似値より大きくなければ、ＴＣＰスループットの推定値が妥当であると判断し、ＴＣＰスループットの推定値を実効スループットとして特定する。
【００３８】
スループット推定部１２４は、ＴＣＰスループットの推定値がネットワーク帯域の近似値より大きければ、ＴＣＰスループットの推定値が妥当でないと判断し、さらに、ネットワーク帯域の近似値を実効スループットとして良いかどうかの妥当性を判定する。例えば、スループット推定部１２４は、グループ外の次のグループのＡＣＫを含めた第２のＡＣＫ間隔と該当するデータ量とから計測されるスループット値を推定する。ここでは、第２のＡＣＫ間隔がｔｐ２である。スループット推定部１２４は、この推定値とＴＣＰスループットの推定値とを比較して、ネットワーク帯域の近似値の妥当性を判定する。
【００３９】
スループット推定部１２４は、ＴＣＰスループットの推定値が第２のＡＣＫ間隔から計測されるスループット値より大きければ、ネットワーク帯域の近似値が妥当であると判断し、ネットワーク帯域の近似値を実効スループットとして特定する。スループット推定部１２４は、ＴＣＰスループットの推定値が第２のＡＣＫ間隔から計測されるスループット値より大きくなければ、ネットワーク帯域の近似値が妥当ないと判断し、ＴＣＰスループットの推定値を実効スループットとして特定する。
【００４０】
次に、実施例に係るスループット推定部１２４の処理の具体例を、図４Ａ〜図４Ｄを参照して説明する。図４Ａ〜図４Ｄは、実施例に係るスループット推定部の処理を具体的に説明する図である。
【００４１】
図４Ａに示すように、ＤＡＴＡをまとめたグループｇ１には、３個のＤＡＴＡが含まれるとする。ＤＡＴＡの１個のデータ量は、１５００ｂｙｔｅであるとする。ＲＴＴが２ｍｓｅｃであり、ＡＣＫ間隔が０．６ｍｓｅｃである場合であるとする。
【００４２】
スループット推定部１２４は、ＲＴＴおよびｃｗｉｎｄを式（１）に代入し、ＴＣＰスループットの推定値ＴＰｔｃｐを算出する。ここでは、ｃｗｉｎｄは、ｄ１〜ｄ３のＤＡＴＡのデータ量であり、８×（３×１５００［ｂｙｔｅ］）ビットである。ＲＴＴが２ｍｓｅｃである。ＴＣＰスループットの推定値ＴＰｔｃｐは、以下のように算出される。
ＴＰｔｃｐ＝８×（３×１５００［ｂｙｔｅ］）／２［ｍｓｅｃ］＝１８［Ｍｂｐｓ］・・・式（２）
【００４３】
スループット推定部１２４は、ＡＣＫ間隔とグループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量とによりネットワーク帯域の近似値ＴＰｒｃｖ１を算出する。ここでは、ＡＣＫ間隔は、最初のＡＣＫａ１の取得からグループに対応する最後のＡＣＫａ２の取得にかかった時間である。ＤＡＴＡのデータ量は、グループｇ１から最初のＤＡＴＡｄ１を除いたＤＡＴＡｄ２，ｄ３のデータ量（第２パケット量）であり、８×（２×１５００［ｂｙｔｅ］）ビットである。ＡＣＫ間隔が０．６ｍｓｅｃである。ネットワーク帯域の近似値ＴＰｒｃｖ１は、以下のように算出される。
ＴＰｒｃｖ１＝８×（２×１５００［ｂｙｔｅ］）／０．６［ｍｓｅｃ］＝４０［Ｍｂｐｓ］・・・式（３）
【００４４】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐとネットワーク帯域の近似値ＴＰｒｃｖ１とを比較して、ＴＣＰスループットの推定値の妥当性を判定する。スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐがネットワーク帯域の近似値ＴＰｒｃｖ１より大きくないので、ＴＣＰスループットの推定値ＴＰｔｃｐを実効スループットとして特定する。すなわち、ＴＣＰスループットの推定値ＴＰｔｃｐが妥当である場合である。
【００４５】
かかる場合に、ＴＣＰスループットの推定値ＴＰｔｃｐを実効スループットとする理由は、以下のとおりである。すなわち、受信側の低速区間が４０Ｍｂｐｓである際に、ＤＡＴＡｄ１〜ｄ３を転送した場合の実際の転送時間は、以下のように算出される。
実際の転送時間＝８×（３×１５００［ｂｙｔｅ］）／４０［Ｍｂｐｓ］＝０．９［ｍｓｅｃ］・・・式（４）
これによると、実際の転送時間（０．９ｍｓｅｃ）は、ＲＴＴ（２ｍｓｅｃ）よりも短く、ネットワークに無駄な時間が存在している。したがって、ＴＣＰスループットの推定値ＴＰｔｃｐは、実効スループットとして特定される。つまり、図２Ｂのグラフにおいて、ＲＴＴがｔ０より大きい場合に該当する。
【００４６】
図４Ｂに示すように、ＤＡＴＡをまとめたグループｇ１のＤＡＴＡの個数、ＤＡＴＡの１個のデータ量、ＲＴＴは、図４Ａと同様である。図４Ｂが図４Ａと異なるのは、ＡＣＫ間隔が０．６ｍｓｅｃから２．４ｍｓｅｃに変更した点である。
【００４７】
スループット推定部１２４は、ＲＴＴおよびｃｗｉｎｄを式（１）に代入し、ＴＣＰスループットの推定値ＴＰｔｃｐを算出する。ここでは、ＴＣＰスループットの推定値ＴＰｔｃｐは、図４Ａの場合と同様に、１８［Ｍｂｐｓ］である。
【００４８】
スループット推定部１２４は、ＡＣＫ間隔とグループｇ１から最初のＤＡＴＡを除いたＤＡＴＡのデータ量（第２パケット量）とによりネットワーク帯域の近似値ＴＰｒｃｖ１を算出する。ここでは、ＡＣＫ間隔が２．４ｍｓｅｃである。ネットワーク帯域の近似値ＴＰｒｃｖ１は、以下のように算出される。
ＴＰｒｃｖ１＝８×（２×１５００［ｂｙｔｅ］）／２．４［ｍｓｅｃ］＝１０［Ｍｂｐｓ］・・・式（５）
【００４９】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐとネットワーク帯域の近似値ＴＰｒｃｖ１とを比較して、ＴＣＰスループットの推定値の妥当性を判定する。スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐがネットワーク帯域の近似値ＴＰｒｃｖ１より大きいので、ＴＣＰスループットの推定値ＴＰｔｃｐが妥当でないと判断し、さらに、ネットワーク帯域の近似値ＴＰｒｃｖ１の妥当性を判定する。
【００５０】
かかる場合に、ＴＣＰスループットの推定値ＴＰｔｃｐを実効スループットとしない理由は、以下のとおりである。すなわち、受信側の低速区間が１０Ｍｂｐｓである際に、ＤＡＴＡｄ１〜ｄ３を転送した場合の実際の転送時間は、以下のように算出される。
実際の転送時間＝８×（３×１５００［ｂｙｔｅ］）／１０［Ｍｂｐｓ］＝３．６［ｍｓｅｃ］・・・式（６）
これによると、実際の転送時間（３．６ｍｓｅｃ）は、ＲＴＴ（２ｍｓｅｃ）よりも長く、ネットワークに無駄な時間が存在しない。したがって、ＴＣＰスループットの推定値ＴＰｔｃｐは、実効スループットとして特定されない。つまり、図２Ｂのグラフにおいて、ＲＴＴがｔ０より小さい場合に該当する。そして、スループット推定部１２４は、引き続き、ネットワーク帯域の近似値ＴＰｒｃｖ１の妥当性を判定する。
【００５１】
図４Ｃに示すように、ＤＡＴＡをまとめたグループｇ１のＤＡＴＡの個数、ＤＡＴＡの１個のデータ量、ＲＴＴ、ＡＣＫ間隔は、図４Ｂと同様である。図４Ｃが図４Ｂと異なるのは、次のグループｇ２には、２個のＤＡＴＡが含まれる点である。図４Ｃが図４Ｂと異なるのは、第２のＡＣＫ間隔が２．６ｍｓｅｃである点である。
【００５２】
スループット推定部１２４は、ＲＴＴおよびｃｗｉｎｄを式（１）に代入し、ＴＣＰスループットの推定値ＴＰｔｃｐを算出する。ここでは、ＴＣＰスループットの推定値ＴＰｔｃｐは、図４Ｂの場合と同様に、１８［Ｍｂｐｓ］である。
【００５３】
スループット推定部１２４は、ＡＣＫ間隔とグループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量とによりネットワーク帯域の近似値ＴＰｒｃｖ１を算出する。ここでは、ネットワーク帯域の近似値ＴＰｒｃｖ１は、図４Ｂの場合と同様に、１０［Ｍｂｐｓ］である。
【００５４】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐがネットワーク帯域の近似値ＴＰｒｃｖ１より大きいので、ＴＣＰスループットの推定値ＴＰｔｃｐが妥当でないと判断し、以下のように、ネットワーク帯域の近似値ＴＰｒｃｖ１の妥当性を判定する。スループット推定部１２４は、第２のＡＣＫ間隔と第２パケット量および次のグループｇ２のＤＡＴＡｄ４，ｄ５のデータ量とから計測されるスループット値ＴＰｒｃｖ２を算出する。ここでは、第２のＡＣＫ間隔が２．６ｍｓｅｃである。第２パケット量は、８×（２×１５００［ｂｙｔｅ］）ビットである。次のグループｇ２のＤＡＴＡｄ４，ｄ５のデータ量も、８×（２×１５００［ｂｙｔｅ］）ビットである。スループット値ＴＰｒｃｖ２は、以下のように算出される。
ＴＰｒｃｖ２＝８×（４×１５００［ｂｙｔｅ］）／２．６［ｍｓｅｃ］＝１９．２［Ｍｂｐｓ］・・・式（７）
【００５５】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐが第２のＡＣＫ間隔から計測されるスループット値ＴＰｒｃｖ２より大きくないので、ＴＣＰスループットの推定値ＴＰｔｃｐを実効スループットとして特定する。すなわち、ネットワーク帯域の近似値ＴＰｒｃｖ１がＴＣＰスループットの推定値ＴＰｔｃｐより小さいが、ネットワーク帯域の近似値ＴＰｒｃｖ１が妥当でない場合である。
【００５６】
かかる場合に、ネットワーク帯域の近似値ＴＰｒｃｖ１を実効スループットとしないでＴＣＰスループットの推定値ＴＰｔｃｐを実効スループットとする理由は、以下のとおりである。すなわち、ＡＣＫ間隔は、Ｃｒｏｓｓ  ｔｒａｆｆｉｃ（外乱）によって広がったにすぎず、低速区間でも、式（４）で算出された実際の転送時間（０．９ｍｓｅｃ）はＲＴＴ（２ｍｓｅｃ）もよりも短く、ネットワークに無駄な時間が存在している。したがって、ネットワーク帯域の近似値ＴＰｒｃｖ１は低速区間の実効スループットとして適切ではなく、ＴＣＰスループットの推定値ＴＰｔｃｐが実効スループットとして特定される。
【００５７】
図４Ｄに示すように、ＤＡＴＡをまとめたグループｇ１のＤＡＴＡの個数、ＤＡＴＡの１個のデータ量、ＲＴＴ、ＡＣＫ間隔、次のグループｇ２のＤＡＴＡの個数は、図４Ｃと同様である。図４Ｄが図４Ｃと異なるのは、第２のＡＣＫ間隔が４．８ｍｓｅｃである点である。
【００５８】
スループット推定部１２４は、ＲＴＴおよびｃｗｉｎｄを式（１）に代入し、ＴＣＰスループットの推定値ＴＰｔｃｐを算出する。ここでは、ＴＣＰスループットの推定値ＴＰｔｃｐは、図４Ｃの場合と同様に、１８［Ｍｂｐｓ］である。
【００５９】
スループット推定部１２４は、ＡＣＫ間隔とグループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量とによりネットワーク帯域の近似値ＴＰｒｃｖ１を算出する。ここでは、ネットワーク帯域の近似値ＴＰｒｃｖ１は、図４Ｃの場合と同様に、１０［Ｍｂｐｓ］である。
【００６０】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐがネットワーク帯域の近似値ＴＰｒｃｖ１より大きいので、ＴＣＰスループットの推定値ＴＰｔｃｐが妥当でないと判断し、以下のように、ネットワーク帯域の近似値ＴＰｒｃｖ１の妥当性を判定する。スループット推定部１２４は、第２のＡＣＫ間隔と第２パケット量および次のグループｇ２のＤＡＴＡｄ４，ｄ５のデータ量とから計測されるスループット値ＴＰｒｃｖ２を算出する。ここでは、第２のＡＣＫ間隔が４．８ｍｓｅｃである。第２パケット量は、８×（２×１５００［ｂｙｔｅ］）ビットである。次のグループｇ２のＤＡＴＡｄ４，ｄ５のデータ量も、８×（２×１５００［ｂｙｔｅ］）ビットである。スループット値ＴＰｒｃｖ２は、以下のように算出される。
ＴＰｒｃｖ２＝８×（４×１５００［ｂｙｔｅ］）／４．８［ｍｓｅｃ］＝１０［Ｍｂｐｓ］・・・式（８）
【００６１】
スループット推定部１２４は、ＴＣＰスループットの推定値ＴＰｔｃｐが第２のＡＣＫ間隔から計測されるスループット値ＴＰｒｃｖ２より大きいので、ネットワーク帯域の近似値ＴＰｒｃｖ１を実効スループットとして特定する。すなわち、ネットワーク帯域の近似値ＴＰｒｃｖ１が妥当である場合である。
【００６２】
かかる場合に、ネットワーク帯域の近似値ＴＰｒｃｖ１を実効スループットとする理由は、以下のとおりである。すなわち、後続のパケットのＡＣＫ間隔である第２のＡＣＫ間隔も広がっており、低速区間でのスループットが低いと推測される。これに加えて、ＤＡＴＡｄ１〜ｄ３を転送した場合の実際の転送時間は、以下の式（９）で表わされるように３．６ｍｓｅｃであり、ＲＴＴ（２ｍｓｅｃ）よりも長く、ネットワークに無駄な時間が存在しない。
実際の転送時間＝８×（３×１５００［ｂｙｔｅ］）／１０［Ｍｂｐｓ］＝３．６［ｍｓｅｃ］・・・式（９）
したがって、ネットワーク帯域の近似値ＴＰｒｃｖ１が、低速区間のスループットとして適切である可能性が高く、実効スループットとして特定される。
【００６３】
［テーブルのデータ構造］
パケット解析装置１で用いられる各種テーブルのデータ構造を、図５〜図８を参照して説明する。図５は、解析情報テーブルのデータ構造の一例を示す図である。図６は、ＤＡＴＡテーブルのデータ構造の一例を示す図である。図７は、ＡＣＫテーブルのデータ構造の一例を示す図である。図８は、統計情報テーブルのデータ構造の一例を示す図である。
【００６４】
図５に示すように、解析情報テーブル１１１は、Ｓｔａｔｕｓ１１１ａ、ＴｉｍｅＳｙｎ１１１ｂ、ＲＴＴｓｒｖ１１１ｃ、ＲＴＴｒｃｖ１１１ｄを対応付けて記憶する。また、解析情報テーブル１１１は、各種解析情報を一時的に記憶する。
【００６５】
Ｓｔａｔｕｓ１１１ａは、帯域計測の計測状態であり、現在のステータスである。Ｓｔａｔｕｓ１１１ａには、例えば、「ＩＮＩＴ」、「ＭＥＡＳＵＲＥ」、「ＶＥＲＩＦＹ１」、「ＶＥＲＩＦＹ２」が設定される。「ＩＮＩＴ」は、初期値であることを示す。「ＭＥＡＳＵＲＥ」は、帯域計測中であることを示す。「ＶＥＲＩＦＹ１」は、ＴＣＰスループットの妥当性の判定中であることを示す。「ＶＥＲＩＦＹ２」は、ネットワーク帯域の妥当性の判定中であることを示す。
【００６６】
ＴｉｍｅＳｙｎ１１１ｂは、ＳＹＮパケットの到着時刻である。ＲＴＴｓｒｖ１１１ｃは、送信側往復遅延時間であり、ＳＹＮパケットが到着してからＳＹＮ／ＡＣＫパケットが到着するまでの時間を示す。ＲＴＴｒｃｖ１１１ｄは、受信側往復遅延時間であり、ＤＡＴＡが到着してからＡＣＫが到着するまでの時間を示す。
【００６７】
図６に示すように、ＤＡＴＡテーブル１１２は、データＩＤ１１２ａ、Ｓｅｑ番号１１２ｂ、パケット長１１２ｃおよび到着時刻１１２ｄを対応付けて記憶する。データＩＤ１１２ａは、ＤＡＴＡのインデックス番号である。Ｓｅｑ番号１１２ｂは、ＤＡＴＡのシーケンス番号である。パケット長１１２ｃは、ＤＡＴＡのパケット長である。到着時刻１１２ｄは、ＤＡＴＡのパケット解析装置１への到着時刻である。
【００６８】
一例として、データＩＤ１１２ａが「１」である場合に、Ｓｅｑ番号１１２ｂとして「０」、パケット長１１２ｃとして「１２５０」、到着時刻１１２ｄとして「１１００」と記憶している。また、データＩＤ１１２ａが「２」である場合に、Ｓｅｑ番号１１２ｂとして「１２５０」、パケット長１１２ｃとして「１２５０」、到着時刻１１２ｄとして「１２００」と記憶している。
【００６９】
図７に示すように、ＡＣＫテーブル１１３は、ＡｃｋＩＤ１１３ａ、Ａｃｋ番号１１３ｂ、到着時刻１１３ｃおよびデータＩＤ１１３ｄを対応付けて記憶する。ＡｃＫＩＤ１１３ａは、ＡＣＫのインデックス番号である。Ａｃｋ番号１１３ｂは、ＡＣＫのＡｃｋ番号（確認応答番号）である。すなわち、Ａｃｋ番号１１３ｂには、次に送られてくる予定のＤＡＴＡのＳｅｑ番号が設定される。到着時刻１１３ｃは、ＡＣＫのパケット解析装置１への到着時刻である。データＩＤ１１３ｄは、ＡＣＫに対応するＤＡＴＡのインデックス番号（データＩＤ）である。すなわち、データＩＤ１１３ｄは、ＡｃｋＩＤ１１３ａで示されるＡＣＫに対応するＤＡＴＡであることを意味する。
【００７０】
一例として、ＡｃｋＩＤ１１３ａが「１」である場合に、Ａｃｋ番号１１３ｂとして「１２５０」、到着時刻１１３ｃとして「１８００」、データＩＤ１１３ｄとして「１」と記憶している。ＡｃｋＩＤ１１３ａが「２」である場合に、Ａｃｋ番号１１３ｂとして「３７５０」、到着時刻１１３ｃとして「２８００」、データＩＤ１１３ｄとして「３」と記憶している。
【００７１】
図８に示すように、統計情報テーブル１１４は、計測バイト数１１４ａおよび計測時間間隔１１４ｂを対応付けて記憶する。計測バイト数１１４ａは、計測された連続パケットのパケットサイズの合計である。計測時間間隔１１４ｂは、計測された連続パケットにおけるパケット間の到着時刻間隔の合計である。一例として、計測バイト数１１４ａとして「２５００」、計測時間間隔１１４ｂとして「１０００」と記憶している。
【００７２】
［パケット解析処理のフローチャート］
次に、実施例に係るパケット解析処理のフローチャートを、図９Ａ〜図９Ｃを参照して説明する。図９Ａは、実施例に係るコネクション確立時の処理のフローチャートを示す図である。図９Ｂは、データパケット受信時の処理のフローチャートを示す図である。図９Ｃは、ＡＣＫパケット受信時の処理のフローチャートを示す図である。なお、コネクションの確立方法は、スリーウェイハンドシェイクである場合とする。
【００７３】
［コネクション確立処理のフローチャート］
図９Ａに示すように、コネクション管理部１２３は、キャプチャされたパケットの種類を判定する（ステップＳ１１）。パケットの種類がＳＹＮパケットであると判定された場合には（ステップＳ１１；ＳＹＮ）、コネクション管理部１２３は、ＳＹＮパケットの到着時刻を解析情報テーブル１１１のＴｉｍｅＳｙｎ１１１ｂに記録する（ステップＳ１２）。そして、コネクション管理部１２３は、コネクション確立処理を終了する。
【００７４】
パケットの種類がＳＹＮ／ＡＣＫパケットであると判定された場合には（ステップＳ１１；ＳＹＮ／ＡＣＫ）、コネクション管理部１２３は、送信側往復遅延を解析情報テーブル１１１のＲＴＴｓｒｖ１１１ｃに記録する（ステップＳ１３）。例えば、コネクション管理部１２３は、ＳＹＮ／ＡＣＫパケットの到着時刻から解析情報テーブル１１１のＴｉｍｅＳｙｎ１１１ｂを引いて得られた値を取得する。コネクション管理部１２３は、取得された値を送信側往復遅延として解析情報テーブル１１１のＲＴＴｓｒｖ１１１ｃに記録する。そして、コネクション管理部１２３は、コネクション確立処理を終了する。
【００７５】
パケットの種類がＡＣＫパケットであると判定された場合には（ステップＳ１１；ＡＣＫ）、コネクション管理部１２３は、何もしないで、コネクション確立処理を終了する。
【００７６】
［ＤＡＴＡパケット受信処理のフローチャート］
図９Ｂに示すように、コネクション管理部１２３は、ＤＡＴＡパケットを受信すると、ＤＡＴＡパケット（ＤＡＴＡ）の情報をＤＡＴＡテーブル１１２に格納する（ステップＳ２１）。ＤＡＴＡの情報は、例えば、受信したＤＡＴＡのＩＤ（データＩＤ１１２ａ）、シーケンス番号（Ｓｅｑ番号１１２ｂ）、パケット長（パケット長１１２ｃ）およびＤＡＴＡの観測点への到着時刻（到着時刻１１２ｄ）である。観測点とは、パケット解析装置１のことを意味する。
【００７７】
スループット推定部１２４は、帯域計測の計測状態を判定する（ステップＳ２２）。例えば、スループット推定部１２４は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａを参照して計測状態を判定する。
【００７８】
計測状態が初期値であることを示す「ＩＮＩＴ」である場合には（ステップＳ２２；ＩＮＩＴ）、スループット推定部１２４は、計測グループの先頭のＤＡＴＡのデータＩＤを解析情報テーブル１１１のＦｉｒｓｔＤａｔａＩＤに記録する（ステップＳ２３）。そして、スループット推定部１２４は、解析情報テーブル１１１の計測状態（Ｓｔａｔｕｓ１１１ａ）を帯域計測中であることを示す「ＭＥＡＳＵＲＩＮＧ」に変更し（ステップＳ２４）、データパケット受信時の処理を終了する。
【００７９】
計測状態が「ＶＥＲＩＦＹ１」または「ＶＥＲＩＦＹ２」である場合には（ステップＳ２２；ＶＥＲＩＦＹ１，ＶＥＲＩＦＹ２）、スループット推定部１２４は、データパケット受信時の処理を終了する。「ＶＥＲＩＦＹ１」は、ＴＣＰスループットの妥当性の判定中であることを示す。「ＶＥＲＩＦＹ２」は、ネットワーク帯域の妥当性の判定中であることを示す。
【００８０】
計測状態が「ＭＥＡＳＵＲＩＮＧ」である場合には（ステップＳ２２；ＭＥＡＳＵＲＩＮＧ）、スループット推定部１２４は、受信されたＤＡＴＡが計測グループの終了であるか否かを判定する（ステップＳ２５）。例えば、スループット推定部１２４は、現在の時刻が解析情報テーブル１１１のＥｎｄＴｉｍｅ以上であるか否かを判定する。ＥｎｄＴｉｍｅは、計測グループの終了時刻であり、ＡＣＫパケットの受信時の処理内で解析情報テーブル１１１に記録される。
【００８１】
受信されたＤＡＴＡが計測グループの終了でないと判定した場合には（ステップＳ２５；Ｎｏ）、スループット推定部１２４は、データパケット受信時の処理を終了する。
【００８２】
一方、受信されたＤＡＴＡが計測グループの終了であると判定した場合には（ステップＳ２５；Ｙｅｓ）、スループット推定部１２４は、計測グループの最後のＤＡＴＡパケットのＩＤを解析情報テーブル１１１のＬａｓｔＤａｔａＩＤに記録する（ステップＳ２６）。
【００８３】
そして、スループット推定部１２４は、ＴＣＰスループットの推定値（ＴＰｔｃｐ）を計測し（ステップＳ２７）、解析情報テーブル１１１のＴＰｔｃｐに記録する。例えば、スループット推定部１２４は、ｃｗｉｎｄおよびＲＴＴを算出し、解析情報テーブル１１１に記録する。スループット推定部１２４は、算出されたｃｗｉｎｄおよびＲＴＴを用いてＴＰｔｃｐを算出する。ｃｗｉｎｄは、式（１０）により算出される。なお、ＦｉｒｓｔＤａｔａＩＤおよびＬａｓｔＤａｔａＩＤは、解析情報テーブル１１１に記憶されている。各ＤａｔａＩＤのＬｅｎ（パケット長）は、ＤＡＴＡテーブル１１２に記憶されている。
【数１】
2017079412.tif 000003
ＲＴＴは、式（１１）により算出される。なお、ＲＴＴｓｒｖ（送信側往復遅延）およびＲＴＴｒｃｖ（受信側往復遅延）は、解析情報テーブル１１１に記憶されている。
ＲＴＴ＝ＲＴＴｓｒｖ＋ＲＴＴｒｃｖ・・・式（１１）
ＴＰｔｃｐは、式（１）により算出される。
【００８４】
スループット推定部１２４は、解析情報テーブル１１１の計測状態（Ｓｔａｔｕｓ１１１ａ）をＴＣＰスループットの妥当性の判定中であることを示す「ＶＥＲＩＦＹ１」に変更し（ステップＳ２８）、データパケット受信時の処理を終了する。
【００８５】
［ＡＣＫパケット受信処理のフローチャート］
図９Ｃに示すように、コネクション管理部１２３は、ＡＣＫパケットを受信すると、ＡＣＫパケット（ＡＣＫ）の情報をＡＣＫテーブル１１３に格納する（ステップＳ３１）。ＡＣＫの情報は、例えば、ＡＣＫのＩＤ（ＡｃｋＩＤ１１３ａ）、ＡＣＫ番号（Ａｃｋ番号１１３ｂ）、ＡＣＫの観測点への到着時刻（到着時刻１１３ｃ）である。観測点とは、パケット解析装置１のことを意味する。
【００８６】
コネクション管理部１２３は、受信したＡＣＫパケットとＤＡＴＡパケットとの対応づけを行う（ステップＳ３２）。例えば、コネクション管理部１２３は、受信したＡＣＫパケットのＡＣＫ番号と、ＤＡＴＡテーブル１１２のＳｅｑ番号１１２ｂ（Ｓｅｑ）およびパケット長１１２ｃ（Ｌｅｎ）とを利用して、以下の条件を満たすデータＩＤ１１２ａを探索する。
Ａｃｋ［現ＡｃｋＩＤ］＝Ｓｅｑ［データＩＤ］＋Ｌｅｎ［データＩＤ］・・式（１２）
そして、コネクション管理部１２３は、条件を満たすデータＩＤ１１２ａをＡＣＫテーブル１１３のデータＩＤ１１３ｄに記録する。
【００８７】
続いて、スループット推定部１２４は、帯域計測の計測状態を判定する（ステップＳ３３）。例えば、スループット推定部１２４は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａを参照して計測状態を判定する。
【００８８】
計測状態が「ＭＥＡＳＵＲＩＮＧ」である場合には（ステップＳ３３；ＭＥＡＳＵＲＩＮＧ）、スループット推定部１２４は、受信したＡＣＫパケットが計測グループの先頭のＤＡＴＡパケットに対応するか否かを判定する（ステップＳ３４）。計測グループの先頭のＤＡＴＡパケットに対応しない場合には（ステップＳ３４；Ｎｏ）、スループット推定部１２４は、ＡＣＫパケット受信時の処理を終了する。
【００８９】
一方、計測グループの先頭のＤＡＴＡに対応する場合には（ステップＳ３４；Ｙｅｓ）、スループット推定部１２４は、計測グループの先頭のＤＡＴＡに対応するＡＣＫのＩＤを解析情報テーブル１１１のＦｉｒｓｔＡｃｋＩＤに記録する（ステップＳ３５）。スループット推定部１２４は、受信側往復遅延を解析情報テーブル１１１のＲＴＴｒｃｖ１１１ｄに記録する（ステップＳ３６）。例えば、スループット推定部１２４は、計測グループの先頭のＤＡＴＡの到着時刻とそのＤＡＴＡに対応したＡＣＫの到着時刻とから式（１３）により受信側往復遅延ＲＴＴｒｃｖを算出する。なお、ＡｃｋＴｉｍｅ（到着時刻）は、ＡＣＫテーブル１１３に記憶されている。ＤａｔａＴｉｍｅ（到着時刻）は、ＤＡＴＡテーブル１１２に記憶されている。ＦｉｒｓｔＤａｔａＩＤは、解析情報テーブル１１１に記憶されている。
ＲＴＴｒｃｖ＝ＡｃｋＴｉｍｅ［現ＡｃｋＩＤ］−ＤａｔａＴｉｍｅ［ＦｉｒｓｔＡｃｋＩＤ］・・式（１３）
【００９０】
スループット推定部１２４は、計測グループの終了時刻を解析情報テーブル１１１のＥｎｄＴｉｍｅに記録する（ステップＳ３７）。例えば、スループット推定部１２４は、式（１４）のように計測グループの終了時刻を算出する。なお、ＡｃｋＴｉｍｅは、ＡＣＫテーブル１１３に記憶されている。ＦｉｒｓｔＡｃｋＩＤ、ＲＴＴｓｒｖは、解析情報テーブル１１１に記憶されている。
ＥｎｄＴｉｍｅ＝ＡｃｋＴｉｍｅ［ＦｉｒｓｔＡｃｋＩＤ］＋ＲＴＴｓｒｖ・・式（１４）
【００９１】
そして、スループット推定部１２４は、ＡＣＫパケット受信時の処理を終了する。
【００９２】
計測状態が「ＶＥＲＩＦＹ１」である場合には（ステップＳ３３；ＶＥＲＩＦＹ１）、スループット推定部１２４は、受信したＡＣＫパケットが計測グループの最後のＤＡＴＡパケットに対応するか否かを判定する（ステップＳ３８）。計測グループの最後のＤＡＴＡパケットに対応しない場合には（ステップＳ３８；Ｎｏ）、スループット推定部１２４は、ＡＣＫパケット受信時の処理を終了する。
【００９３】
一方、計測グループの最後のＤＡＴＡに対応する場合には（ステップＳ３８；Ｙｅｓ）、スループット推定部１２４は、計測グループの最後のＤＡＴＡに対応するＡＣＫのＩＤを解析情報テーブル１１１のＬａｓｔＡｃｋＩＤに記録する（ステップＳ３９）。
【００９４】
そして、スループット推定部１２４は、受信側のスループットＴＰｒｃｖ１を計測し（ステップＳ４０）、解析情報テーブル１１１のＴＰｒｃｖ１に記録する。すなわち、スループット推定部１２４は、ネットワーク帯域の近似値ＴＰｒｃｖ１を計測する。例えば、スループット推定部１２４は、ＡＣＫ間隔（ＴｉｍｅＧａｐｒｃｖ１）と、計測グループから最初のＤＡＴＡを除いたＤＡＴＡのデータ量（Ｓｉｚｅｒｃｖ１）を算出し、解析情報テーブル１１１に記録する。スループット推定部１２４は、算出されたＡＣＫ間隔およびデータ量を用いてＴＰｒｃｖ１を算出する。データ量は、式（１５）により算出される。なお、Ａｃｋは、ＡＣＫテーブル１１３に記憶されている。ＦｉｒｓｔＡｃｋＩＤおよびＬａｓｔＡｃｋＩＤは、解析情報テーブル１１１に記憶されている。
Ｓｉｚｅｒｃｖ１＝Ａｃｋ［ＬａｓｔＡｃｋＩＤ］―Ａｃｋ［ＦｉｒｓｔＡｃｋＩＤ］・・式（１５）
ＡＣＫ間隔は、式（１６）により算出される。なお、ＡｃｋＴｉｍｅは、ＡＣＫテーブル１１３に記憶されている。ＬａｓｔＡｃｋＩＤおよびＦｉｒｓｔＡｃｋＩＤは、解析情報テーブル１１１に記憶されている。
ＴｉｍｅＧａｐｒｃｖ１＝ＡｃｋＴｉｍｅ［ＬａｓｔＡｃｋＩＤ］−ＡｃｋＴｉｍｅ［ＦｉｒｓｔＡｃｋＩＤ］・・・式（１６）
ＴＰｒｃｖ１は、式（１７）により算出される。
ＴＰｒｃｖ１＝Ｓｉｚｅｒｃｖ１／ＴｉｍｅＧａｐｒｃｖ１・・・式（１７）
【００９５】
続いて、スループット推定部１２４は、ＴＰｔｃｐが妥当であるか否かを判定する（ステップＳ４１）。例えば、スループット推定部１２４は、解析情報テーブル１１１を参照して、ＴＰｔｃｐがＴＰｒｃｖ１より小さいか否かを判定する。ＴＰｔｃｐが妥当であると判定した場合には（ステップＳ４１；Ｙｅｓ）、スループット推定部１２４は、ステップＳ４５に移行する。例えばＴＰｔｃｐがＴＰｒｃｖ１より小さい場合である。
【００９６】
一方、ＴＰｔｃｐが妥当でないと判定した場合には（ステップＳ４１；Ｎｏ）、スループット推定部１２４は、解析情報テーブル１１１の計測状態を（Ｓｔａｔｕｓ１１１ａ）を「ＶＥＲＩＦＹ２」に変更し（ステップＳ４２）、ＡＣＫパケット受信時の処理を終了する。例えば、ＴＰｔｃｐがＴＰｒｃｖ１以上である場合である。
【００９７】
ステップＳ３３において、計測状態が「ＶＥＲＩＦＹ２」である場合には（ステップＳ３３；ＶＥＲＩＦＹ２）、スループット推定部１２４は、確認用のスループットＴＰｒｃｖ２を計測し（ステップＳ４３）、解析情報テーブル１１１のＴＰｒｃｖ２に記録する。例えば、スループット推定部１２４は、第２のＡＣＫ間隔（ＴｉｍｅＧａｐｒｃｖ２）と、計測グループの次のグループのＤＡＴＡのデータ量（Ｓｉｚｅｒｃｖ２）を算出し、解析情報テーブル１１１に記録する。スループット推定部１２４は、算出された第２のＡＣＫ間隔およびデータ量を用いてＴＰｒｃｖ２を算出する。データ量は、式（１８）により算出される。なお、Ａｃｋは、ＡＣＫテーブル１１３に記憶されている。ＦｉｒｓｔＡｃｋＩＤおよびＬａｓｔＡｃｋＩＤは、解析情報テーブル１１１に記憶されている。
Ｓｉｚｅｒｃｖ２＝Ａｃｋ［ＬａｓｔＡｃｋＩＤ＋１］―Ａｃｋ［ＦｉｒｓｔＡｃｋＩＤ］・・式（１８）
第２のＡＣＫ間隔は、式（１９）により算出される。なお、ＡｃｋＴｉｍｅは、ＡＣＫテーブル１１３に記憶されている。ＬａｓｔＡｃｋＩＤおよびＦｉｒｓｔＡｃｋＩＤは、解析情報テーブル１１１に記憶されている。
ＴｉｍｅＧａｐｒｃｖ２＝ＡｃｋＴｉｍｅ［ＬａｓｔＡｃｋＩＤ＋１］−ＡｃｋＴｉｍｅ［ＦｉｒｓｔＡｃｋＩＤ］・・・式（１９）
ＴＰｒｃｖ２は、式（２０）により算出される。
ＴＰｒｃｖ２＝Ｓｉｚｅｒｃｖ２／ＴｉｍｅＧａｐｒｃｖ２・・・式（２０）
【００９８】
続いて、スループット推定部１２４は、ＴＰｒｃｖ１が妥当であるか否かを判定する（ステップＳ４４）。例えば、スループット推定部１２４は、解析情報テーブル１１１を参照して、ＴＰｔｃｐがＴＰｒｃｖ２より大きいか否かを判定する。ＴＰｒｃｖ１が妥当でないと判定した場合には（ステップＳ４４；Ｎｏ）、スループット推定部１２４は、ステップＳ４５に移行する。例えばＴＰｔｃｐがＴＰｒｃｖ２以下である場合である。
【００９９】
ステップＳ４５において、スループット推定部１２４は、ＴＰｔｃｐを実効スループットとして採用し、統計情報テーブル１１４に結果を出力する（ステップＳ４５）。すなわち、スループット推定部１２４は、統計情報テーブル１１４の計測バイト数１１４ａに解析情報テーブル１１１のＣｗｉｎｄを記録する。スループット推定部１２４は、統計情報テーブル１１４の計測時間間隔１１４ｂに解析情報テーブル１１１のＲＴＴを記録する。そして、スループット推定部１２４は、ステップＳ４７に移行する。
【０１００】
一方、ＴＰｒｃｖ１が妥当であると判定した場合には（ステップＳ４４；Ｙｅｓ）、スループット推定部１２４は、ＴＰｒｃｖ１を実効スループットとして採用し、統計情報テーブル１１４に結果を出力する（ステップＳ４６）。すなわち、スループット推定部１２４は、統計情報テーブル１１４の計測バイト数１１４ａに解析情報テーブル１１１のＳｉｚｅｒｃｖ１を記録する。スループット推定部１２４は、統計情報テーブル１１４の計測時間間隔１１４ｂに解析情報テーブル１１１のＴｉｍｅＧａｐｒｃｖ１を記録する。そして、スループット推定部１２４は、ステップＳ４７に移行する。
【０１０１】
ステップＳ４７において、スループット推定部１２４は、解析情報テーブル１１１の計測状態を（Ｓｔａｔｕｓ１１１ａ）を「ＩＮＩＴ」に変更し（ステップＳ４７）、ＡＣＫパケット受信時の処理を終了する。
【０１０２】
［パケット解析装置の具体例］
次に、実施例に係るパケット解析装置の処理の具体例を、図１０を参照して説明する。図１０は、実施例に係るパケット解析装置の処理の具体例を示す図である。なお、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａには、「ＩＮＩＴ」が記憶されているとする。また、図１０では、計測グループが、Ｄａｔａｄ１１〜Ｄａｔａｄ１３であるとする。
【０１０３】
まず、パケット解析装置１は、ＳＹＮパケットｓ１の到着時刻ＴｉｍｅＳｙｎとＳＹＮ／ＡＣＫパケットｓ２の到着時刻とから送信側往復遅延ＲＴＴｓｒｖを算出する。ここでは、ＴｉｍｅＳｙｎが３００、ＳＹＮ／ＡＣＫパケットｓ２の到着時刻が５００であるとすると、送信側往復遅延ＲＴＴｓｒｖは、５００から３００を引いて得られた値である２００を取得する。
【０１０４】
次に、パケット解析装置１は、ＤＡＴＡｄ１１を受信すると、ＤＡＴＡｄ１１の情報をＤＡＴＡテーブル１１２に格納する。ここでは、データＩＤ１１２ａとして「１」、Ｌｅｎ（パケット長）１１２ｃとして「１２５０」、Ｓｅｑ（Ｓｅｑ番号）１１２ｂとして「０」、到着時刻１１２ｄとして「１１００」が格納される。そして、パケット解析装置１は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａが「ＩＮＩＴ」であるので、計測グループの先頭のＤＡＴＡのデータＩＤ１１２ａである「１」を解析情報テーブル１１１のＦｉｒｓｔＤａｔａＩＤに記録する。そして、パケット解析装置１は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａを「ＭＥＡＳＵＲＩＮＧ」に変更する。
【０１０５】
続いて、パケット解析装置１は、計測グループのＤＡＴＡｄ１２、ＤＡＴＡｄ１３を連続して受信すると、ＤＡＴＡｄ１２の情報およびＤＡＴＡｄ１３の情報をそれぞれＤＡＴＡテーブル１１２に格納する。ここでは、ＤＡＴＡｄ１２について、データＩＤ１１２ａとして「２」、Ｌｅｎ（パケット長）１１２ｃとして「１２５０」、Ｓｅｑ（Ｓｅｑ番号）１１２ｂとして「１２５０」、到着時刻１１２ｄとして「１２００」が格納される。ＤＡＴＡｄ１２について、データＩＤ１１２ａとして「３」、Ｌｅｎ（パケット長）１１２ｃとして「１２５０」、Ｓｅｑ（Ｓｅｑ番号）１１２ｂとして「２５００」、到着時刻１１２ｄとして「１３００」が格納される。
【０１０６】
次に、パケット解析装置１は、ＡＣＫａ１１を受信すると、ＡＣＫａ１１の情報をＡＣＫテーブル１１３に格納する。ここでは、ＡｃｋＩＤ１１３ａとして「１」、Ａｃｋ（Ａｃｋ番号）１１３ｂとして「１２５０」、ＡｃｋＴｉｍｅ（到着時刻）１１３ｃとして「１８００」が格納される。そして、パケット解析装置１は、受信したＡＣＫａ１１とＤＡＴＡとの対応づけを行う。ここでは、ＡＣＫａ１１のＡｃｋ（Ａｃｋ番号）１１３ｂが１２５０である。ＤＡＴＡテーブル１１２のデータＩＤ１１２ａが「１」である場合のＳｅｑ番号（Ｓｅｑ）１１２ｂが０、パケット長（Ｌｅｎ）１１２ｃが１２５０である。したがって、パケット解析装置１は、式（１２）の条件を満たすので、データＩＤ１１２ａとして記憶された「１」をＡＣＫテーブル１１３のデータＩＤ１１３ｄに記録する。
【０１０７】
そして、パケット解析装置１は、Ｓｔａｔｕｓ１１１ａが「ＭＥＡＳＵＲＩＮＧ」であって、受信したＡＣＫａ１１が計測グループの先頭のＤＡＴＡに対応するので、当該ＡＣＫａ１１のＡｃｋＩＤ１１３ａである「１」を解析情報テーブル１１１のＦｉｒｓｔＡｃｋＩＤに記録する。そして、パケット解析装置１は、受信側往復遅延ＲＴＴｒｃｖを算出する。ここでは、現ＡｃｋＩＤ１１３ａが１である場合の到着時刻（ＡｃｋＴｉｍｅ）１１３ｃが１８００である。データＩＤ１１２ａがＦｉｒｓｔＤａｔａＩＤ（１）である場合の到着時刻（ＤａｔａＴｉｍｅ）１１２ｄが１１００である。したがって、パケット解析装置１は、式（１３）を用いて、ＲＴＴｒｃｖを７００と算出する。
【０１０８】
次に、パケット解析装置１は、ＤＡＴＡｄ１３が計測グループの終了であるので、計測グループの最後のＤＡＴＡのデータＩＤ１１２ａである「３」を解析情報テーブル１１１のＬａｓｔＤａｔａＩＤに記録する。そして、パケット解析装置１は、ｃｗｉｎｄおよびＲＴＴを用いて、ＴＣＰスループットの推定値ＴＰｔｃｐを計測する。ここでは、ｃｗｉｎｄは、式（１０）によりＦｉｒｓｔＤａｔａＩＤ（１）からＬａｓｔＤａｔａＩＤ（３）までのパケット長（Ｌｅｎ）１１２ｃの累積値であり、３７５０である。ＲＴＴは、式（１１）によりＲＴＴｓｒｖとＲＴＴｒｃｖとの累積値であり、９００である。したがって、パケット解析装置１は、式（１）を用いて、ＴＰｔｃｐを３３．３と算出する。そして、パケット解析装置１は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａを「ＶＥＲＩＦＹ１」に変更する。
【０１０９】
次に、パケット解析装置１は、計測グループの次のグループのＤＡＴＡｄ１４，ｄ１５を連続して受信すると、ＤＡＴＡｄ１４の情報およびＤＡＴＡｄ１５の情報をそれぞれＤＡＴＡテーブル１１２に格納する。ここでは、ＤＡＴＡｄ１４について、データＩＤ１１２ａとして「４」、Ｌｅｎ（パケット長）１１２ｃとして「１２５０」、Ｓｅｑ（Ｓｅｑ番号）１１２ｂとして「３７５０」、到着時刻１１２ｄとして「１４００」が格納される。ＤＡＴＡｄ１５について、データＩＤ１１２ａとして「５」、Ｌｅｎ（パケット長）１１２ｃとして「１２５０」、Ｓｅｑ（Ｓｅｑ番号）１１２ｂとして「５０００」、到着時刻１１２ｄとして「１５００」が格納される。
【０１１０】
次に、パケット解析装置１は、ＡＣＫａ１２を受信すると、ＡＣＫａ１２の情報をＡＣＫテーブル１１３に格納する。ここでは、ＡｃｋＩＤ１１３ａとして「２」、Ａｃｋ（Ａｃｋ番号）１１３ｂとして「３７５０」、ＡｃｋＴｉｍｅ（到着時刻）１１３ｃとして「２８００」が格納される。そして、パケット解析装置１は、受信したＡＣＫａ１２とＤＡＴＡとの対応づけを行う。ここでは、ＡＣＫａ１２のＡｃｋ（Ａｃｋ番号）１１３ｂが３７５０である。ＤＡＴＡテーブル１１２のデータＩＤ１１３ａが「３」である場合のＳｅｑ番号（Ｓｅｑ）１１２ｂが２５００、パケット長（Ｌｅｎ）１１２ｃが１２５０である。したがって、パケット解析装置１は、式（１２）の条件を満たすので、データＩＤ１１２ａとして記憶された「３」をＡＣＫテーブル１１３のデータＩＤ１１３ｄに記録する。
【０１１１】
そして、パケット解析装置１は、Ｓｔａｔｕｓ１１１ａが「ＶＥＲＩＦＹ１」であって、受信したＡＣＫａ１１が計測グループの最後のＤＡＴＡに対応するので、ネットワーク帯域の近似値ＴＰｒｃｖ１を計測する。ここでは、計測グループから最初のＤＡＴＡｄ１１を除いたＤＡＴＡのデータ量（Ｓｉｚｅｒｃｖ１）は、式（１５）によりＬａｓｔＡｃｋＩＤ（２）のＡｃｋ番号からＦｉｒｓｔＡｃｋＩＤ（１）のＡｃｋ番号の差分であり、２５００である。ＡＣＫ間隔（ＴｉｍｅＧａｐｒｃｖ１）は、式（１６）によりＬａｓｔＡｃｋＩＤ（２）の到着時刻からＦｉｒｓｔＡｃｋＩＤ（１）の到着時刻の差分であり、１０００である。したがって、パケット解析装置１は、式（１７）を用いて、ＴＰｒｃｖ１を２０と算出する。
【０１１２】
そして、パケット解析装置１は、ＴＰｔｃｐの妥当性を判断すべく、ＴＰｔｃｐがＴＰｒｃｖ１より小さいか否かを判定する。ここでは、ＴＰｔｃｐが３３．３であり、ＴＰｒｃｖ１が２０であるので、ＴＰｔｃｐがＴＰｒｃｖ１より小さくない。したがって、パケット解析装置１は、ＴＰｔｃｐが妥当でないと判断する。そこで、パケット解析装置１は、解析情報テーブル１１１のＳｔａｔｕｓ１１１ａを「ＶＥＲＩＦＹ２」に変更する。
【０１１３】
次に、パケット解析装置１は、ＡＣＫａ１３を受信すると、ＡＣＫａ１３の情報をＡＣＫテーブル１１３に格納する。ここでは、ＡｃｋＩＤ１１３ａとして「３」、Ａｃｋ（Ａｃｋ番号）１１３ｂとして「６２５０」、ＡｃｋＴｉｍｅ（到着時刻）１１３ｃとして「３８００」が格納される。そして、パケット解析装置１は、受信したＡＣＫａ１２とＤＡＴＡとの対応づけを行う。ここでは、ＡＣＫａ１３のＡｃｋ（Ａｃｋ番号）１１３ｂが６２５０である。ＤＡＴＡテーブル１１２のデータＩＤ１１２ａが「５」である場合のＳｅｑ番号（Ｓｅｑ）１１２ｂが５０００、パケット長（Ｌｅｎ）１１２ｃが１２５０である。したがって、パケット解析装置１は、式（１２）の条件を満たすので、データＩＤ１１２ａとして記憶された「５」をＡＣＫテーブル１１３のデータＩＤ１１３ｄに記録する。
【０１１４】
そして、パケット解析装置１は、Ｓｔａｔｕｓ１１１ａが「ＶＥＲＩＦＹ２」であるので、確認用のスループットＴＰｒｃｖ２を計測する。ここでは、次のグループのＤＡＴＡのデータ量（Ｓｉｚｅｒｃｖ２）は、式（１８）によりＬａｓｔＡｃｋＩＤ（２＋１）のＡｃｋ番号からＦｉｒｓｔＡｃｋＩＤ（１）のＡｃｋ番号の差分であり、５０００である。第２のＡＣＫ間隔（ＴｉｍｅＧａｐｒｃｖ２）は、式（１９）によりＬａｓｔＡｃｋＩＤ（２＋１）の到着時刻からＦｉｒｓｔＡｃｋＩＤ（１）の到着時刻の差分であり、２０００である。したがって、パケット解析装置１は、式（２０）を用いて、ＴＰｒｃｖ２を２０と算出する。
【０１１５】
そして、パケット解析装置１は、ＴＰｒｃｖ１の妥当性を判断すべく、ＴＰｔｃｐがＴＰｒｃｖ２より大きいか否かを判定する。ここでは、ＴＰｔｃｐが３３．３であり、ＴＰｒｃｖ２が２０であるので、ＴＰｔｃｐがＴＰｒｃｖ２より大きい。したがって、パケット解析装置１は、ＴＰｒｃｖ１が妥当であると判断する。そこで、パケット解析装置１は、ＴＣＰスループットの推定値ＴＰｒｃｖ１を実効スループットとして決定する。そして、パケット解析装置１は、統計情報テーブル１１４に、計測バイト数１１４ａとしてＳｉｚｅｒｃｖ１（２５００）、計測時間間隔１１４ｂとしてＴｉｍｅＧａｐｒｃｖ１（１０００）を記録する。つまり、かかる場合は、低速区間でのスループットが低いと推測される場合であり、ネットワーク帯域の近似値ＴＰｒｃｖ１が、低速区間のスループットとして適切である可能性が高く、実効スループットとして特定される。
【０１１６】
［出力例］
次に、図１１は、出力例を示す図である。図１１に示すグラフは、Ｘ軸が時間、Ｙ軸がスループット［Ｍｂｐｓ］のグラフである。このグラフでは、時間の経過とともに計測される各期間のＴＣＰスループットの推定値（ＴＰｔｃｐ）およびネットワーク帯域の近似値（ＴＰｒｃｖ１）が対応付けて出力されている。かかる出力例では、各期間でＴＣＰスループットの推定値（ＴＰｔｃｐ）がネットワーク帯域の近似値（ＴＰｒｃｖ１）より小さいので、実効スループットがＴＰｔｃｐと特定される。なお、実効スループットとして特定される方が強調されるように、色分けしても良いし、線で区別して良い。
【０１１７】
［実施例の効果］
上記実施例によれば、パケット解析装置１は、端末３と端末４との間で通信されるパケットを端末３と端末４との間のネットワークのいずれかの地点で取得する。そして、パケット解析装置１は、取得したパケットと取得時刻とを対応付けて記憶する。そして、パケット解析装置１は、端末４から送信された、所定のグループに対応する最初のＤＡＴＡである第１ＤＡＴＡの取得から、端末３から送信された第１ＤＡＴＡに対応する第１ＡＣＫの取得にかかった時間とグループのＤＡＴＡの量である第１パケット量とにより第１スループット値を算出する。パケット解析装置１は、第１ＡＣＫの取得から最後のＡＣＫである第２ＡＣＫの取得にかかった時間とグループから第１ＤＡＴＡを除いたＤＡＴＡの量である第２パケット量とにより第２スループット値を算出する。そして、パケット解析装置１は、第１スループット値と第２スループット値とを比較して、グループに対応する所定の区間のスループット値を特定する。かかる構成によれば、パケット解析装置１は第１スループット値と第２スループット値とを用いることにより、低速区間のスループット値をより正確に算出できる。
【０１１８】
また、上記実施例によれば、パケット解析装置１は、さらに、前記第１ＡＣＫの取得から、第１ＡＣＫの取得に応じて端末４から送信される次のグループのＡＣＫである第３ＡＣＫの取得にかかった時間と第２パケット量および次のグループのＤＡＴＡの量とにより第３スループット値を算出する。そして、パケット解析装置１は、第１スループット値と第３スループット値とを比較して、比較結果に応じて第１スループット値および第２スループット値のいずれかを所定の区間のスループット値として特定する。かかる構成によれば、パケット解析装置１は、グループ外の次のグループのＡＣＫを含めた第３スループット値を利用することで、グループ内のスループットを正確に推定することができる。
【０１１９】
また、上記実施例によれば、パケット解析装置１は、期間毎に特定されたスループット値を含む情報を用いて、所定の区間のスループット値の遷移を示すグラフを出力する。かかる構成によれば、パケット解析装置１は、期間毎に変化するスループット値を視覚化することができる。
【０１２０】
［その他］
なお、パケット解析装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したコネクション管理部１２３、スループット推定部１２４などの各機能を搭載することによって実現することができる。
【０１２１】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力インタフェース１２２とコネクション管理部１２３とを１個の部として統合しても良い。一方、スループット推定部１２４を、ＴＣＰスループットの推定値の妥当性を判定する第１の判定部と、ネットワーク帯域の近似値の妥当性を判定する第２の判定部と、スループットを推定する推定部とに分散しても良い。また、解析情報テーブル１１１、ＤＡＴＡテーブル１１２、ＡＣＫテーブル１１３および統計情報テーブル１１４をパケット解析装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１２２】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したパケット解析装置１と同様の機能を実現するパケット解析プログラムを実行するコンピュータの一例を説明する。図１２は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
【０１２３】
図１２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１２４】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、パケット解析プログラム２０５ａおよびパケット解析関連情報２０５ｂを記憶する。
【０１２５】
ＣＰＵ２０３は、パケット解析プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、パケット解析装置１の各機能部に対応する。パケット解析関連情報２０５ｂは、解析情報テーブル１１１、ＤＡＴＡテーブル１１２、ＡＣＫテーブル１１３および統計情報テーブル１１４に対応する。そして、例えばリムーバブルディスク２１１が、パケット解析プログラム２０５ａなどの各情報を記憶する。
【０１２６】
なお、パケット解析プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからパケット解析プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１２７】
１  パケット解析装置
１１  記憶部
１２  制御部
１１１  解析情報テーブル
１１２  ＤＡＴＡテーブル
１１３  ＡＣＫテーブル
１１４  統計情報テーブル
１２１  出力インタフェース
１２２  入力インタフェース
１２３  コネクション管理部
１２４  スループット推定部
２  ＳＷ
３，４  端末
５  出力装置
【図１】
2017079412.tif 000004
【図２Ａ】
2017079412.tif 000005
【図２Ｂ】
2017079412.tif 000006
【図３】
2017079412.tif 000007
【図４Ａ】
2017079412.tif 000008
【図４Ｂ】
2017079412.tif 000009
【図４Ｃ】
2017079412.tif 000010
【図４Ｄ】
2017079412.tif 000011
【図５】
2017079412.tif 000012
【図６】
2017079412.tif 000013
【図７】
2017079412.tif 000014
【図８】
2017079412.tif 000015
【図９Ａ】
2017079412.tif 000016
【図９Ｂ】
2017079412.tif 000017
【図９Ｃ】
2017079412.tif 000018
【図１０】
2017079412.tif 000019
【図１１】
2017079412.tif 000020
【図１２】
2017079412.tif 000021