(57)【特許請求の範囲】
【請求項１】
コンピュータに、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行させることを特徴とするスループット計測プログラム。
【請求項２】
前記往復時間が端末での遅延を含む応答パケットが含まれない時間区間を前記計測時間区間として特定することを特徴とする請求項１に記載のスループット計測プログラム。
【請求項３】
前記往復時間の差が所定の閾値時間より大きな応答パケットが含まれない時間区間を前記計測時間区間として特定することを特徴とする請求項１又は２に記載のスループット計測プログラム。
【請求項４】
前記往復時間が取得順に大きくなっている応答パケットの数が所定の閾値個数より大きい時間区間を前記計測時間区間として特定することを特徴とする請求項１、２又は３に記載のスループット計測プログラム。
【請求項５】
前記応答パケットを取得する時間間隔が全て所定の間隔時間より小さい時間区間を除いて前記計測時間区間を特定することを特徴とする請求項１〜４のいずれか１つに記載のスループット計測プログラム。
【請求項６】
コンピュータに、
算出した複数のスループットの情報に基づいて、スループットの数値範囲毎のセッション数の時間変動を表示する
処理をさらに実行させることを特徴とする請求項１〜５のいずれか１つに記載のスループット計測プログラム。
【請求項７】
コンピュータに、
算出した複数のスループットの情報に基づいて、スループットの数値範囲毎にＩＰアドレス数の時間変動を表示する
処理をさらに実行させることを特徴とする請求項１〜６のいずれか１つに記載のスループット計測プログラム。
【請求項８】
コンピュータに、
算出したスループットの情報と他の方法で算出したスループットの情報を並べて表示する
処理をさらに実行させることを特徴とする請求項１〜７のいずれか１つに記載のスループット計測プログラム。
【請求項９】
コンピュータが、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行することを特徴とするスループット計測方法。
【請求項１０】
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得する取得部と、
前記送信元装置から送られた各データパケットの前記取得部による取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出する第１の算出部と、
前記第１の算出部により算出された複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定する特定部と、
前記特定部により特定された計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する第２の算出部と
を有することを特徴とするスループット計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スループット計測プログラム、スループット計測方法及びスループット計測装置に関する。
【背景技術】
【０００２】
端末間、サーバ−端末間等の通信では、端末の状態、サーバの状態、ネットワークの帯域不足及び経由する機器の状態によって通信速度が影響を受け、通信速度を表す指標として、スループットが用いられる。
【０００３】
図１８は、スループットを説明するための図である。図１８に示すように、スループットには、実効スループットと最大実効スループットがある。実効スループットは、実際に利用できた単位時間当たりの処理能力（データ転送量）である。一方、最大実効スループットは、ボトルネック区間で他端末のトラフィックを除いた空き帯域を使い切ったときのスループットである。
【０００４】
図１８において、伝送路を独占した場合のスループットが１００Ｍｂｐｓ（毎秒１００メガビット）であるとし、他端末が５０Ｍｂｐｓ分の帯域を使用しているとすると、最大実効スループットは５０Ｍｂｐｓである。一方、計測できる実効スループットは、最大実効スループットより小さく、例えば３０Ｍｂｐｓである。ネットワークの空き帯域がフルに使用されているか否かは、最大実効スループットにより判断される。
【０００５】
なお、データ送受信に対する寄与のないデータ送受信非実行期間を省いたデータ送受信期間に基づいて算出される最大スループットを上限としてレート制御を行うことで、確実で効率的なレート設定に基づくデータ送信を実現する従来技術がある。
【０００６】
また、NACKの受信時刻とNACKの受信直前に再送したデータの送信時刻とに基づいて求められる時間間隔がＲＴＴ（Round  Trip  Time）より小さい場合にNACKを破棄することで、無線リソースの効率的な使用及びシステムスループットを改善する従来技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２７９２８３号公報
【特許文献２】特開２０１３−３４０４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
通信の遅延がネットワークの帯域不足が原因で発生しているか否かは、ネットワークの空き帯域がフルに使用されているか否かで判断される。しかしながら、現在計測できるスループットは実効スループットであり、他端末が使用する帯域は固定でないため、ネットワークの空き帯域がフルに使用されているか否かの判断に用いられる最大実効スループットの測定は困難であるという問題がある。
【０００９】
本発明は、１つの側面では、最大実効スループットを算出することができるスループット計測プログラム、スループット計測方法及びスループット計測装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するスループット計測プログラムは、１つの態様において、送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得する。そして、スループット計測プログラムは、前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出する。そして、スループット計測プログラムは、算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定する。そして、スループット計測プログラムは、特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する。
【発明の効果】
【００１１】
１実施態様によれば、最大実効スループットを算出することができる。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、最大実効スループットの計測を説明するための第１の図である。
【図１Ｂ】図１Ｂは、最大実効スループットの計測を説明するための第２の図である。
【図２】図２は、実施例に係るスループット計測装置による計測方法を説明するための図である。
【図３Ａ】図３Ａは、ＡＣＫ番号を説明するための図である。
【図３Ｂ】図３Ｂは、ＡＣＫ番号の差がバイト数を表すことを説明するための図である。
【図４】図４は、実施例に係るスループット計測装置が設置される位置を示す図である。
【図５】図５は、スループット計測装置の機能構成を示す図である。
【図６】図６は、Ethernet（登録商標、以下同様）ヘッダを示す図である。
【図７】図７は、ＩＰヘッダを示す図である。
【図８】図８は、ＴＣＰヘッダを示す図である。
【図９】図９は、記憶部の一例を示す図である。
【図１０】図１０は、計測グループを説明するための図である。
【図１１】図１１は、表示例＃１を示す図である。
【図１２】図１２は、表示例＃２を示す図である。
【図１３】図１３は、表示例＃３を示す図である。
【図１４】図１４は、表示例＃４を示す図である。
【図１５】図１５は、表示例＃５を示す図である。
【図１６】図１６は、スループット計測装置による処理のフローを示すフローチャートである。
【図１７】図１７は、実施例に係るスループット計測プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１８】図１８は、スループットを説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するスループット計測プログラム、スループット計測方法及びスループット計測装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１４】
まず、最大実効スループットの計測について説明する。図１Ａ及び図１Ｂは、最大実効スループットの計測を説明するための図である。図１Ａは、伝送路のイメージ図であり、図１Ｂは、パケットの流れを示すラダー図である。
【００１５】
図１Ａに示すように、太枠で示される実効スループットとして得られる値は、変動するスループットを平均した値であり、他端末のトラフィックを除いた空き帯域を使い切ったときのスループットを計測することで最大実効スループットが得られる。したがって、最大実効スループットの計測は、他端末のトラフィックを除いた空き帯域を使い切った状態にある時間区間を特定し、特定した時間区間におけるスループットを計測することで行うことができる。
【００１６】
ボトルネック区間で他端末のトラフィックを除いた空き帯域を使い切った状態にある時間区間では、図１Ｂに示すように、転送されるパケットに待ちが発生し、パケットの送信から受信までに要する時間がパケット毎に増加する。このため、パケットの送信から受信までに要する時間がパケット毎に増加する時間区間８でスループットを計測すれば、最大実効スループットを計測することができる。
【００１７】
また、受信側の端末は、パケットを受信するとＡＣＫ（Acknowledgment）を返す。したがって、送信側でパケットを送信してからＡＣＫを受信するまでに要する時間がパケット毎に増加する時間区間９でスループットを計測することによっても、最大実効スループットを計測することができる。
【００１８】
そこで、実施例に係るスループット計測装置は、送信側でパケットを送信してからＡＣＫを受信するまでに要する時間がパケット毎に増加する時間区間でスループットを計測する。図２は、実施例に係るスループット計測装置による計測方法を説明するための図である。図２では、サーバ１が基地局２を経由して端末３にＤＡＴＡ＃１〜ＤＡＴＡ＃５で表されるＤＡＴＡパケットを送信する。サーバ１と基地局２は有線接続され、基地局２と端末３は無線接続される。ここでは基地局２と端末３との間の無線区間がボトルネック区間であるとする。
【００１９】
ボトルネック区間で、帯域を使い切っているとき、基地局配下の端末増加により他端末のフレームに割り込まれる、あるいは、電波状態悪化によりＤＡＴＡパケットが複数フレームに分割される等の理由により、基地局２で送信待ちが発生する。
【００２０】
図２では、ＤＡＴＡ＃１、ＤＡＴＡ＃２及びＤＡＴＡ＃５がそれぞれ２つのフレームに分割され、送信待ちが発生する。また、ＤＡＴＡ＃４は３つのフレームに分割され、送信待ちが発生する。また、ＤＡＴＡ＃３、ＤＡＴＡ＃４及びＤＡＴＡ＃５は他端末のフレームにより割り込まれることによっても送信待ちが発生する。
【００２１】
端末３は、ＤＡＴＡ＃１〜ＤＡＴＡ＃５を受信すると、それぞれＡＣＫ＃１〜ＡＣＫ＃５で表されるＡＣＫを返す。そして、サーバ１は、ＡＣＫ＃１〜ＡＣＫ＃５をそれぞれ時刻ＴA1〜ＴA5で受信する。ここで、ＲＴＴ（Round  Trip  Time）＃１〜ＲＴＴ＃５を、それぞれＤＡＴＡ＃１〜ＤＡＴＡ＃５が送信されてからＡＣＫ＃１〜ＡＣＫ＃５が受信されるまでの時間とすると、ＲＴＴ＃１＜ＲＴＴ＃２＜ＲＴＴ＃３＜ＲＴＴ＃４＜ＲＴＴ＃５の関係がある。すなわち、基地局２で送信待ちがあると、ＲＴＴは増加する。
【００２２】
そこで、実施例に係るスループット計測装置は、ＲＴＴが増加したときのＡＣＫ（ＡＣＫ＃１〜ＡＣＫ＃５）を１つの計測グループとし、先頭ＡＣＫと最終ＡＣＫの間隔（受信時刻差）から最大実効スループットを算出する。すなわち、実施例に係るスループット計測装置は、
スループット［ｂｐｓ］＝８×（Ａｃｋ5−Ａｃｋ1）／（ＴA5−ＴA1）
により、最大実効スループットを算出する。ここで、Ａｃｋ5はＡＣＫ＃５のＡＣＫ番号であり、Ａｃｋ1はＡＣＫ＃１のＡＣＫ番号である。ＡＣＫ番号の差は、送信されたデータのバイト数を表す。その理由は以下のとおりである。
【００２３】
図３ＡはＡＣＫ番号を説明するための図であり、図３ＢはＡＣＫ番号の差がバイト数を表すことを説明するための図である。図３Ａに示すように、ＤＡＴＡ＃１のシーケンス番号を１００１とし、パケットサイズを５００とすると、ＡＣＫ＃１のＡＣＫ番号Ａｃｋ1は１５０１である。すなわち、ＴＣＰ（Transmission  Control  Protocol）のＡＣＫ番号は、次に送ってほしいＤＡＴＡパケットのシーケンス番号であり、ＡＣＫ番号−１のシーケンス番号までのデータを受信側が受け取ったことを表す。
【００２４】
同様に、ＤＡＴＡ＃２のシーケンス番号を１５０１とし、パケットサイズを５００とすると、ＡＣＫ＃２のＡＣＫ番号Ａｃｋ2は２００１であり、ＤＡＴＡ＃３のシーケンス番号を２００１とし、パケットサイズを５００とすると、ＡＣＫ＃３のＡＣＫ番号Ａｃｋ3は２５０１である。ＤＡＴＡ＃４のシーケンス番号を２５０１とし、パケットサイズを５００とすると、ＡＣＫ＃４のＡＣＫ番号Ａｃｋ4は３００１であり、ＤＡＴＡ＃５のシーケンス番号を３００１とし、パケットサイズを５００とすると、ＡＣＫ＃５のＡＣＫ番号Ａｃｋ5は３５０１である。
【００２５】
したがって、図３Ｂに示すように、送信側がＡＣＫ＃１からＡＣＫ＃２を受信する間に、受信側はＤＡＴＡ＃２の５００バイト（Ａｃｋ2−Ａｃｋ1＝２００１−１５０１＝５００）を受信する。送信側がＡＣＫ＃２からＡＣＫ＃３を受信する間に、受信側はＤＡＴＡ＃３の５００バイト（Ａｃｋ3−Ａｃｋ2＝２５０１−２００１＝５００）を受信する。送信側がＡＣＫ＃３からＡＣＫ＃４を受信する間に、受信側はＤＡＴＡ＃４の５００バイト（Ａｃｋ4−Ａｃｋ3＝３００１−２５０１＝５００）を受信する。送信側がＡＣＫ＃４からＡＣＫ＃５を受信する間に、受信側はＤＡＴＡ＃５の５００バイト（Ａｃｋ5−Ａｃｋ4＝３５０１−３００１＝５００）を受信する。
【００２６】
これらをまとめると、送信側がＡＣＫ＃１からＡＣＫ＃５を受信する間に、受信側はＤＡＴＡ＃２からＤＡＴＡ＃５を受信し、ＡＣＫ＃５のＡＣＫ番号−ＡＣＫ＃１のＡＣＫ番号＝Ａｃｋ5−Ａｃｋ1＝ＤＡＴＡ＃２からＤＡＴＡ＃５のデータサイズ合計となる。したがって、ＡＣＫ番号の差は、送信されたデータのバイト数を表す。
【００２７】
次に、実施例に係るスループット計測装置について説明する。図４は、実施例に係るスループット計測装置が設置される位置を示す図である。図４に示すように、サーバ１から送信されるデータは、基地局２を経由してスマートフォーン等の端末３に無線で送信される。あるいは、サーバ１から送信されるデータは、スイッチ４を経由してＰＣ（Personal  Computer）等の端末５に有線で送信される。
【００２８】
このようなサーバ１から端末３への通信において、ボトルネック区間は、基地局２と端末３との間の無線区間となる場合がある。このとき、最大実効スループットを計測したい部分は、基地局２と端末３との間である。また、ＡＣＫパケットは、基地局２を経由して端末３からサーバ１へ送信される。
【００２９】
そこで、実施例に係るスループット計測では、スループット計測装置１０は、基地局２とサーバ１の間の有線区間に設置され、ＡＣＫパケットの受信時刻を使ってボトルネック区間の最大実効スループットを推測する。スループット計測装置１０は、ＴＡＰ６を用いてネットワーク信号を分岐させて取り出す。ただし、スループット計測装置１０は、ＴＡＰ６の代わりにスイッチを用いてミラーポートにコピーされた信号を受信してもよい。
【００３０】
図５は、スループット計測装置１０の機能構成を示す図である。図５に示すように、スループット計測装置１０は、受信部１１と、パケット分類部１２と、ＤＡＴＡパケット処理部１３と、ＡＣＫパケット処理部１４と、記憶部１５と、ＲＴＴ算出部１６と、スループット算出部１７と、表示制御部１８とを有する。
【００３１】
受信部１１は、サーバ１と基地局２との間の有線区間でＴＡＰ６から分岐された信号を受信し、パケット分類部１２に渡す。パケット分類部１２は、受信した信号のヘッダ情報に基づき解析対象となるＴＣＰパケットを抽出する。パケット分類部１２は、Ethernetヘッダ及びＩＰ（Internet  Protocol）ヘッダを見てＴＣＰパケットを抽出する。
【００３２】
図６は、Ethernetヘッダを示す図である。図６に示すように、Ethernetヘッダには、６バイトの宛先アドレスと、６バイトの送信元アドレスと、２バイトのタイプが含まれる。宛先アドレスは宛先のＭＡＣ（Media  Access  Control）アドレスであり、送信元アドレスは送信元のＭＡＣアドレスである。タイプはパケットの種類を示し、タイプが０ｘ０８００であればパケットはＩＰｖ４のＩＰパケットである。
【００３３】
図７は、ＩＰヘッダを示す図である。図７に示すように、ＩＰヘッダには、８ビットのプロトコルと、３２ビットの送信元ＩＰアドレスと、３２ビットの宛先ＩＰアドレスが含まれる。プロトコルは、上位にあたるトランスポート層のネットワーク・プロトコルの種類を示す。プロトコルが６であればパケットはＴＣＰパケットである。送信元ＩＰアドレスは送信元のＩＰアドレスであり、宛先ＩＰアドレスは宛先のＩＰアドレスである。
【００３４】
パケット分類部１２は、ＩＰヘッダの送信元ＩＰアドレス及び宛先ＩＰアドレス、ＴＣＰヘッダの送信元ポート番号及び宛先ポート番号の組合せにより、コネクションを特定し、コネクション毎にＴＣＰパケットを分類する。
【００３５】
図８は、ＴＣＰヘッダを示す図である。図８に示すように、ＴＣＰヘッダには、１６ビットの送信元ポート番号と、１６ビットの宛先ポート番号と、３２ビットのシーケンス番号と、３２ビットのＡＣＫ番号が含まれる。送信元ポート番号は、送信元のポート番号であり、宛先ポート番号は宛先のポート番号である。
【００３６】
パケット分類部１２は、抽出したＴＣＰパケットのデータサイズが０でないときにＤＡＴＡパケットであると判定してＤＡＴＡパケット処理部１３にＴＣＰパケットを渡す。パケット分類部１２は、抽出したＴＣＰパケットのデータサイズが０のときにＡＣＫパケットであると判定してＡＣＫパケット処理部１４にＴＣＰパケットを渡す。
【００３７】
ＤＡＴＡパケット処理部１３は、ＤＡＴＡパケットを処理する。ＤＡＴＡパケット処理部１３は、パケット情報記録部１３ａを有する。パケット情報記録部１３ａは、パケット分類部１２から渡されたＤＡＴＡパケットの受信時刻、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、シーケンス番号及びサイズを記憶部１５に記録する。
【００３８】
ＡＣＫパケット処理部１４は、ＡＣＫパケットを処理する。ＡＣＫパケット処理部１４は、パケット情報記録部１４ａを有する。パケット情報記録部１４ａは、パケット分類部１２から渡されたＡＣＫパケットの受信時刻、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号及びＡＣＫ番号を記憶部１５に記録する。
【００３９】
記憶部１５は、ＤＡＴＡパケット及びＡＣＫパケットの情報を記憶する。図９は、記憶部１５の一例を示す図である。図９に示すように、記憶部１５は、受信時刻、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、サイズ、シーケンス番号及びＡＣＫ番号をパケット毎に記憶する。
【００４０】
例えば、記憶部１５は、ＤＡＴＡパケットを「２０１５−０２−１７  １７：４２：２２．０６５８８２」に受信し、ＤＡＴＡパケットの送信元のＩＰアドレス及びポート番号は「ＩＰアドレスＡ」及び「ポート番号Ａ」である。ＤＡＴＡパケットの宛先のＩＰアドレス及びポート番号は「ＩＰアドレスＢ」及び「ポート番号Ｂ」であり、サイズは「５００」（ｂｙｔｅ）であり、シーケンス番号は「１００１」である。
【００４１】
また、記憶部１５は、例えば、ＡＣＫパケットを「２０１５−０２−１７  １７：４２：２２．１４６９８１」に受信し、ＡＣＫパケットの送信元のＩＰアドレス及びポート番号は「ＩＰアドレスＢ」及び「ポート番号Ｂ」である。ＡＣＫパケットの宛先のＩＰアドレス及びポート番号は「ＩＰアドレスＡ」及び「ポート番号Ａ」であり、ＡＣＫ番号は「１５０１」である。
【００４２】
ＲＴＴ算出部１６は、受信したＡＣＫパケットのＡＣＫ番号と、記録したＤＡＴＡパケットのシーケンス番号＋サイズが一致するときに、該ＡＣＫパケットは、該ＤＡＴＡパケットの確認応答であると判定する。そして、ＲＴＴ算出部１６は、該ＡＣＫパケットの受信時刻と該ＤＡＴＡパケットの受信時刻の差分をＲＴＴとして算出する。
【００４３】
スループット算出部１７は、算出したＲＴＴがＡＣＫ番号の順に大きくなっているＲＴＴの時間区間をコネクション毎に特定し、特定した時間区間に送信されたデータ量と時間区間の時間により該時間区間の最大実効スループットを算出する。
【００４４】
具体的には、スループット算出部１７は、ＲＴＴがＡＣＫ番号の順に増加し、遅延ＡＣＫのタイムアウト値を含まず、ＲＴＴ差が５００ｍｓ未満であるＲＴＴのグループをスループットを計測する１つの計測グループとする。遅延ＡＣＫのタイムアウト値を含む場合は、端末３での遅延を含む場合であるので、計測グループから除外する。ＲＴＴ差が５００ｍｓ（ミリ秒）未満でない場合には、ＲＴＴが急激に増加したときであり、端末３の再接続の可能性があるので、計測グループから除外する。
【００４５】
また、スループット算出部１７は、計測グループに含まれるＲＴＴが５個以上でない場合には、精度が悪くなるのでスループット計測をしない。また、スループット算出部１７は、ＡＣＫ間隔が全て１ｍｓ未満の場合にも、ＡＣＫ間隔が狭すぎ、何らかの理由でＡＣＫがまとめて送信された可能性がある（ＤＡＴＡ間隔を再現しておらず本来計測したいスループットを計測できない可能性がある）のでスループット計測をしない。
【００４６】
図１０は、計測グループを説明するための図である。図１０において、横軸は相対的なＡＣＫ番号を示し、縦軸はＲＴＴを示す。各計測グループではＲＴＴがＡＣＫ番号の順に大きくなっており、ＲＴＴ差は５００ｍｓ未満である。ただし、計測グループ＃１と計測グループ＃３にはＲＴＴが５個以上含まれない。したがって、スループット算出部１７は、計測グループ＃２と計測グループ＃４ではスループットを計測するが、計測グループ＃１と計測グループ＃３ではスループットを計測しない。
【００４７】
表示制御部１８は、スループット算出部１７により算出された最大実効スループットに関する情報を、ユーザの指示にしたがって様々な形態で表示装置に表示する。例えば、表示制御部１８は、図１１に示すように、算出した最大実効スループットを１分毎に表示を更新する。なお、これまでの説明では、サーバ１から端末３へデータを送信する場合について説明したが、一般的には、双方向で通信が行われ、２つの方向で同様に最大実効スループットを測定することができる。このため、図１１では、上りと下りの２つの方向の最大実効スループットが表示されている。各行は、通信毎の最大実効スループットを示す。ここで、通信毎とは、コネクション毎であってもよいし、セッション毎であってもよい。コネクション毎の例としては、「クライアントＩＰアドレス及びポート番号」と「サーバＩＰアドレス及びポート番号」との組があり、セッション毎の例としては、「クライアントＩＰアドレス」と「サーバＩＰアドレス及びポート番号」との組がある。また、各行の値が１分毎に更新される。
【００４８】
また、表示制御部１８は、図１２に示すように、最大実効スループットの数値範囲毎のセッション数の時間変動をグラフ表示する。図１２において、横軸は時間を示し、縦軸は、セッション数を示す。図１２では、最大実効スループットが３Ｍｂｐｓ以下、３Ｍｂｐｓ〜５Ｍｂｐｓ、５Ｍｂｐｓ以上の３つの範囲でセッション数が表示されている。
【００４９】
また、表示制御部１８は、図１３に示すように、ユーザにより選択された最大実効スループットの数値範囲に関して、ＩＰアドレス数の変動を上のグラフで表示し、セッション数が多い順にトップ１０をＩＰアドレス毎に下のグラフで表示する。ＩＰアドレス数は、総ユーザ数を表す。図１３において、横軸は時間を示し、縦軸は上のグラフではＩＰアドレス数を示し、下のグラフではセッション数を示す。図１３では、最大実効スループットが３Ｍｂｐｓ未満に関して、ＩＰアドレス数の変動とセッション数の変動が表示されている。なお、図１３の下のグラフでは、トップ１０として１位のＩＰアドレスしかない場合を示す。また、図１３に示すグラフは、１分毎に更新される。
【００５０】
また、表示制御部１８は、図１４に示すように、ユーザにより選択された最大実効スループットの数値範囲に関して、ＩＰアドレス数の変動を上のグラフで表示し、セッション数が多い順にトップ１０をサブネットアドレス毎に下のグラフで表示する。図１４において、横軸は時間を示し、縦軸は上のグラフではＩＰアドレス数を示し、下のグラフではセッション数を示す。図１４では、最大実効スループットが３Ｍｂｐｓ未満に関して、ＩＰアドレス数の変動とセッション数の変動が表示されている。なお、図１４の下のグラフでは、トップ１０として１位のサブネットアドレスしかない場合を示す。また、図１４に示すグラフは、１分毎に更新される。
【００５１】
また、表示制御部１８は、ＴＣＰコネクション毎、ＩＰアドレス毎又はサブネットアドレス毎に、図１５に示すように、最大実効スループット及び実効スループットの変動をグラフ表示する。図１５において、横軸は時間を示し、縦軸はスループットを示す。図１５では、空き帯域が少なく、実効スループットも小さいケース（１）、空き帯域が多く、実効スループットも大きいケース（２）、空き帯域が多いが、実効スループットは小さいケース（３）が表示されている。
【００５２】
次に、スループット計測装置１０による処理のフローについて説明する。図１６は、スループット計測装置１０による処理のフローを示すフローチャートである。ただし、図１６の処理では、ＲＴＴが連続して増加する条件以外の計測条件は満たされているものとする。
【００５３】
図１６に示すように、スループット計測装置１０は、パケットを受信する（ステップＳ１）。そして、スループット計測装置１０は、受信したパケットがＴＣＰパケットか否かを判定し（ステップＳ２）、ＴＣＰパケットでない場合には、ステップＳ１に戻る。
【００５４】
一方、ＴＣＰパケットである場合には、パケット分類部１２がＴＣＰパケットをコネクション毎に分類する（ステップＳ３）。そして、パケット分類部１２は、ＴＣＰパケットがＤＡＴＡパケットか否かを判定し（ステップＳ４）、ＤＡＴＡパケットである場合には、ＤＡＴＡパケット処理部１３が受信時刻、シーケンス番号、サイズ等を記憶部１５に記録する（ステップＳ５）。そして、スループット計測装置１０は、ステップＳ１に戻る。
【００５５】
一方、ＤＡＴＡパケットでない場合には、パケット分類部１２は、ＡＣＫパケットか否かを判定し（ステップＳ６）、ＡＣＫパケットでない場合には、スループット計測装置１０は、ステップＳ１に戻る。一方、ＡＣＫパケットである場合には、ＡＣＫパケット処理部１４が受信時刻、ＡＣＫ番号等を記憶部１５に記録する（ステップＳ７）。
【００５６】
そして、ＲＴＴ算出部１６が、ＡＣＫパケットの受信時刻とＤＡＴＡパケットの受信時刻からＲＴＴを計算し記録する（ステップＳ８）。そして、ＲＴＴ算出部１６は、ＲＴＴが連続して増加しているか否かを判定し（ステップＳ９）、連続して増加している場合には、ＲＴＴを計測対象と決定し、ＡＣＫ受信時刻とＡＣＫ番号を記録する（ステップＳ１０）。そして、スループット計測装置１０は、ステップＳ１に戻る。
【００５７】
一方、ＲＴＴが連続して増加していない場合には、スループット算出部１７が、このＡＣＫパケットは測定対象とはせず、測定対象となった最初のＡＣＫパケットと最後のＡＣＫパケットの情報からスループットを計測する（ステップＳ１１）。
【００５８】
そして、スループット計測装置１０は、コネクションすなわち集計期間が終了したか否かを判定し（ステップＳ１２）、終了していない場合には、ステップＳ１に戻る。一方、終了した場合には、表示制御部１８がユーザの指示に基づいて表示装置に最大実効スループットに関する表示を行う（ステップＳ１３）。
【００５９】
このように、スループット計測装置１０は、ＲＴＴが連続して増加している時間区間でスループットを計測することで、最大実効スループットを計測することができる。
【００６０】
上述してきたように、実施例では、パケット分類部１２が、受信部１１により受信されたパケットからＴＣＰパケットを抽出し、ＤＡＴＡパケットをＤＡＴＡパケット処理部１３に渡し、ＡＣＫパケットをＡＣＫパケット処理部１４へ渡す。そして、ＤＡＴＡパケット処理部１３が受信時刻等のＤＡＴＡパケットの情報を記憶部１５に記録し、ＡＣＫパケット処理部１４が受信時刻、ＡＣＫ番号等のＡＣＫパケットの情報を記憶部１５に記録する。そして、ＲＴＴ算出部１６が記憶部１５の情報に基づいてＲＴＴを算出し、スループット算出部１７が、ＲＴＴがＡＣＫ番号の順に増加している時間区間を特定し、特定した時間区間のスループットを算出する。したがって、スループット計測装置１０は、最大実効スループットを算出することができる。
【００６１】
また、実施例では、スループット算出部１７は、遅延ＡＣＫのタイムアウト値を含まない時間区間をスループットを算出する時間区間とする。したがって、スループット計測装置１０は、端末３での遅延が含まれる場合を除外し、正確にスループットを算出することができる。
【００６２】
また、実施例では、スループット算出部１７は、ＲＴＴ差が５００ｍｓ未満であるＲＴＴのグループをスループットを計測する１つの計測グループとする。したがって、スループット計測装置１０は、端末３の再接続の可能性がある場合を除外し、正確にスループットを算出することができる。
【００６３】
また、実施例では、スループット算出部１７は、計測グループに含まれるＲＴＴが５個以上でない場合には、スループット計測をしない。したがって、スループット計測装置１０は、精度が悪い場合を除外し、正確にスループットを算出することができる。
【００６４】
また、実施例では、スループット算出部１７は、ＡＣＫ間隔が全て１ｍｓ未満の場合には、スループット計測をしない。したがって、スループット計測装置１０は、何らかの理由でＡＣＫがまとめて送信された可能性がある（ＤＡＴＡ間隔を再現しておらず本来計測したいスループットを計測できない可能性がある）場合を除外し、正確にスループットを算出することができる。
【００６５】
また、実施例では、表示制御部１８は、最大実効スループットの数値範囲毎のセッション数の時間変動をグラフ表示する。したがって、スループット計測装置１０は、ユーザによるネットワーク解析や通信帯域増加の必要性等の判断を支援することができる。
【００６６】
また、実施例では、表示制御部１８は、ユーザにより選択された最大実効スループットの数値範囲に関して、ＩＰアドレス数の変動をグラフで表示する。したがって、スループット計測装置１０は、ユーザによるネットワーク解析や通信帯域増加の必要性等の判断を支援することができる。
【００６７】
また、実施例では、表示制御部１８は、最大実効スループットと実効スループットを並べて表示する。したがって、スループット計測装置１０は、ユーザによるネットワーク解析や通信帯域増加の必要性等の判断を支援することができる。
【００６８】
なお、実施例では、スループット計測装置１０について説明したが、スループット計測装置１０が有する構成をソフトウェアによって実現することで、同様の機能を有するスループット計測プログラムを得ることができる。そこで、スループット計測プログラムを実行するコンピュータについて説明する。
【００６９】
図１７は、実施例に係るスループット計測プログラムを実行するコンピュータのハードウェア構成を示す図である。図１７に示すように、コンピュータ２０は、メインメモリ２１と、ＣＰＵ（Central  Processing  Unit）２２と、ＬＡＮ（Local  Area  Network）インタフェース２３と、ＨＤＤ（Hard  Disk  Drive）２４とを有する。また、コンピュータ２０は、スーパーＩＯ（Input  Output）２５と、ＤＶＩ（Digital  Visual  Interface）２６と、ＯＤＤ（Optical  Disk  Drive）２７とを有する。
【００７０】
メインメモリ２１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ２２は、メインメモリ２１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ２２は、メモリコントローラを有するチップセットを含む。
【００７１】
ＬＡＮインタフェース２３は、コンピュータ２０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ２４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ２５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ２６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ２７は、ＤＶＤの読み書きを行う装置である。
【００７２】
ＬＡＮインタフェース２３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ２２に接続され、ＨＤＤ２４及びＯＤＤ２７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ２２に接続される。スーパーＩＯ２５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ２２に接続される。
【００７３】
そして、コンピュータ２０において実行されるスループット計測プログラムは、ＤＶＤに記憶され、ＯＤＤ２７によってＤＶＤから読み出されてコンピュータ２０にインストールされる。あるいは、スループット計測プログラムは、ＬＡＮインタフェース２３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ２０にインストールされる。そして、インストールされたスループット計測プログラムは、ＨＤＤ２４に記憶され、メインメモリ２１に読み出されてＣＰＵ２２によって実行される。
【００７４】
また、実施例では、スループット計測装置１０がパケットをキャプチャして最大実効スループットを算出する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、キャプチャしたパケットの情報をファイル等に一旦記憶し、ファイル等から情報を読み出して最大実効スループットを算出する場合にも同様に適用することができる。
【００７５】
また、実施例では、無線区間がボトルネック区間である場合について説明したが、本発明はこれに限定されるものではなく、有線区間がボトルネック区間である場合にも同様に適用することができる。
【００７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７７】
（付記１）コンピュータに、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行させることを特徴とするスループット計測プログラム。
【００７８】
（付記２）前記往復時間が端末での遅延を含む応答パケットが含まれない時間区間を前記計測時間区間として特定することを特徴とする付記１に記載のスループット計測プログラム。
【００７９】
（付記３）前記往復時間の差が所定の閾値時間より大きな応答パケットが含まれない時間区間を前記計測時間区間として特定することを特徴とする付記１又は２に記載のスループット計測プログラム。
【００８０】
（付記４）前記往復時間が取得順に大きくなっている応答パケットの数が所定の閾値個数より大きい時間区間を前記計測時間区間として特定することを特徴とする付記１、２又は３に記載のスループット計測プログラム。
【００８１】
（付記５）前記応答パケットを取得する時間間隔が全て所定の間隔時間より小さい時間区間を除いて前記計測時間区間を特定することを特徴とする付記１〜４のいずれか１つに記載のスループット計測プログラム。
【００８２】
（付記６）コンピュータに、
算出した複数のスループットの情報に基づいて、スループットの数値範囲毎のセッション数の時間変動を表示する
処理をさらに実行させることを特徴とする付記１〜５のいずれか１つに記載のスループット計測プログラム。
【００８３】
(付記７)コンピュータに、
算出した複数のスループットの情報に基づいて、スループットの数値範囲毎にＩＰアドレス数の時間変動を表示する
処理をさらに実行させることを特徴とする付記１〜６のいずれか１つに記載のスループット計測プログラム。
【００８４】
（付記８）コンピュータに、
算出したスループットの情報と他の方法で算出したスループットの情報を並べて表示する
処理をさらに実行させることを特徴とする付記１〜７のいずれか１つに記載のスループット計測プログラム。
【００８５】
（付記９）コンピュータが、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行することを特徴とするスループット計測方法。
【００８６】
（付記１０）送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得する取得部と、
前記送信元装置から送られた各データパケットの前記取得部による取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出する第１の算出部と、
前記第１の算出部により算出された複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定する特定部と、
前記特定部により特定された計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する第２の算出部と
を有することを特徴とするスループット計測装置。
【００８７】
（付記１１）コンピュータに、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行させることを特徴とするスループット計測プログラムを記憶したコンピュータ読み取り可能記憶媒体。
【００８８】
（付記１２）メモリと該メモリに接続されたプロセッサとを有するスループット計測装置において、
前記プロセッサに、
送信元装置から送信されて送信先装置で受信される複数のデータパケットをネットワーク上の観測点において取得し、
前記送信元装置から送られた各データパケットの取得から各データパケットに対する応答パケットの取得までにかかる往復時間を複数算出し、
算出した複数の往復時間が応答パケットの識別番号順に大きくなっている計測時間区間を特定し、
特定した計測時間区間に前記送信元装置から送信された複数のデータパケットのデータ量と前記計測時間区間により前記計測時間区間のスループットを算出する
処理を実行させることを特徴とするスループット計測装置。
【符号の説明】
【００８９】
１    サーバ
２    基地局
３，５    端末
４    スイッチ
６    ＴＡＰ
８，９    時間区間
１０    スループット計測装置
１１    受信部
１２    パケット分類部
１３    ＤＡＴＡパケット処理部
１３ａ，１４ａ    パケット情報記録部
１４    ＡＣＫパケット処理部
１５    記憶部
１６    ＲＴＴ算出部
１７    スループット算出部
１８    表示制御部
２０    コンピュータ
２１    メインメモリ
２２    ＣＰＵ
２３    ＬＡＮインタフェース
２４    ＨＤＤ
２５    スーパーＩＯ
２６    ＤＶＩ
２７    ＯＤＤ
【図１Ａ】
0006459645.tif 000002
【図１Ｂ】
0006459645.tif 000003
【図２】
0006459645.tif 000004
【図３Ａ】
0006459645.tif 000005
【図３Ｂ】
0006459645.tif 000006
【図４】
0006459645.tif 000007
【図５】
0006459645.tif 000008
【図６】
0006459645.tif 000009
【図７】
0006459645.tif 000010
【図８】
0006459645.tif 000011
【図９】
0006459645.tif 000012
【図１０】
0006459645.tif 000013
【図１１】
0006459645.tif 000014
【図１２】
0006459645.tif 000015
【図１３】
0006459645.tif 000016
【図１４】
0006459645.tif 000017
【図１５】
0006459645.tif 000018
【図１６】
0006459645.tif 000019
【図１７】
0006459645.tif 000020
【図１８】
0006459645.tif 000021