JP2016184824A - パケット解析プログラム、パケット解析装置およびパケット解析方法 - Google Patents

パケット解析プログラム、パケット解析装置およびパケット解析方法 Download PDF

Info

Publication number
JP2016184824A
JP2016184824A JP2015063354A JP2015063354A JP2016184824A JP 2016184824 A JP2016184824 A JP 2016184824A JP 2015063354 A JP2015063354 A JP 2015063354A JP 2015063354 A JP2015063354 A JP 2015063354A JP 2016184824 A JP2016184824 A JP 2016184824A
Authority
JP
Japan
Prior art keywords
packet
ack
data
bandwidth
transmitted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015063354A
Other languages
English (en)
Inventor
尚義 大川
Naoyoshi Okawa
尚義 大川
祐士 野村
Yuji Nomura
祐士 野村
飯塚 史之
Fumiyuki Iizuka
史之 飯塚
岡田 純代
Sumiyo Okada
純代 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015063354A priority Critical patent/JP2016184824A/ja
Priority to US15/055,021 priority patent/US20160285730A1/en
Publication of JP2016184824A publication Critical patent/JP2016184824A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Abstract

【課題】クライアント端末側のネットワーク帯域を正確に計測する。【解決手段】パケット解析装置1は、端末4と端末3との間で通信されるパケットを端末3と端末4の間のネットワークのいずれかの地点で取得する。パケット解析装置1は、端末3から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に端末4から送信されたデータパケットの帯域が、第1のACKパケットおよび第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、第2のACKパケットを帯域計測に不要なパケットであると判定する。【選択図】図1

Description

本発明は、パケット解析プログラムに関する。
クライアント端末がサーバからデータをダウンロードすることがある。一般的に、サーバ側のネットワーク帯域よりもクライアント端末側のネットワーク帯域の方が小さいため、クライアント端末側のネットワーク帯域を推定してダウンロード完了時間を予測することが望まれている。
近年では、サーバ側付近に監視装置を設置して、サーバおよびクライアント端末間で送受信されているパケットからサーバおよびクライアント端末間のネットワーク帯域を推定することが行われている。
特開2005−130298号公報 特開2006−20302号公報 特開2006−279283号公報 特開2007−266756号公報 特開2015−035709号公報
しかしながら、従来の技術では、クライアント端末側のネットワーク帯域を正確に計測できないという問題がある。すなわち、監視装置およびクライアント端末間でクロストラヒック(Cross Traffic)が発生すると、クライアント端末側のネットワーク帯域の計測に影響を与えてしまい、正確な計測ができない。クロストラヒックとは、ネットワーク上に流れている他のトラヒックのことをいう。クロストラヒックが発生すると、通信に遅延が発生し、クライアント端末側のネットワーク帯域の計測に影響を与えてしまう。
1つの側面では、より正確なクライアント端末のネットワーク帯域を計測することを目的とする。
1つの案では、パケット解析プログラムは、コンピュータに、送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、取得したパケットと取得時刻を対応付けて記憶し、前記受信端末から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第1のACKパケットおよび前記第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第2のACKパケットを帯域計測に不要なパケットであると判定する処理を実行させる。
1つの態様によれば、クライアント端末側のネットワーク帯域をより正確に計測することができる。
図1は、実施例に係るパケット解析装置の機能構成を示す図である。 図2Aは、ACKによる帯域推定の問題点を示す図(1)である。 図2Bは、ACKによる帯域推定の問題点を示す図(2)である。 図3Aは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図(1)である。 図3Bは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図(2)である。 図4は、コネクション管理テーブルのデータ構造の一例を示す図である。 図5は、DATAテーブルのデータ構造の一例を示す図である。 図6は、ACKテーブルのデータ構造の一例を示す図である。 図7は、閾値テーブルのデータ構造の一例を示す図である。 図8は、統計情報テーブルのデータ構造の一例を示す図である。 図9Aは、実施例に係るパケット解析処理のフローチャートを示す図である。 図9Bは、データパケット受信時の処理のフローチャートを示す図である。 図9Cは、ACKパケット受信時の処理のフローチャートを示す図である。 図10は、ACK間隔が広がる場合のパケット解析処理の具体例を示す図である。 図11は、ACK間隔が縮まる場合のパケット解析処理の具体例を示す図である。 図12は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示するパケット解析プログラム、パケット解析装置およびパケット解析方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例に係るパケット解析装置の構成]
図1は、実施例に係るパケット解析装置の機能構成を示す図である。図1に示すように、パケット解析装置1は、端末3と端末4との間で通信されるパケットを、SW2を介して取得し、パッシブにネットワーク帯域を診断する。パッシブ診断とは、ネットワークを流れるパケットを計測対象としてネットワーク帯域を診断する診断方法のことをいう。なお、ネットワーク帯域を診断する診断方法には、パッシブ診断のほか、アクティブ診断もあるが、実施例では、パッシブ診断を適用する場合である。なお、以降、端末3が、受信側の端末であり、端末4が、送信側の端末であるとして説明する。
パケット解析装置1は、ACKパケット(以降、ACKという)とACKとの間に送信されたデータパケット(以降、DATAという)の転送量とACKの到着間隔とから、端末3,4間のネットワークの帯域を推定する。すなわち、受信側の端末3がACKを返信する場合、DATAを受信した直後にACKを返信するので、ネットワークにクロストラヒックなどが原因となるボトルネックがない場合には、DATAの間隔とACKの間隔とは等しいものとなる。したがって、パケット解析装置1は、ACKの間に送信されたDATAの転送量と、ACKの到着間隔とから、式(1)のように、受信側のネットワーク帯域を推定できる。なお、ACKの間に送信されたDATAの転送量を式(1)のパケットサイズに代入する。また、ACKの到着間隔を式(1)のパケット間の間隔に代入する。
ネットワーク帯域=8×パケットサイズ/パケット間の間隔・・式(1)
ところが、ACKによる帯域推定には、問題点がある。ここで、ACKによる帯域推定の問題点を、図2Aおよび図2Bを参照して説明する。図2Aおよび図2Bは、ACKによる帯域推定の問題点を示す図である。
図2Aおよび図2Bに示すように、ネットワークにボトルネックがある場合には、ACKの到着間隔が変化してしまう。図2Aでは、送信側の端末4から先に送信されたDATAがクロストラヒックの影響を受けた場合である。図2Bでは、送信側の端末4から後に送信されたDATAがクロストラヒックの影響を受けた場合である。
図2Aに示すように、送信側の端末4から先に送られたDATAがクロストラヒックの影響を受けると、クロストラヒックの影響を受けない場合と比べて、パケット解析装置1では、このDATAに対するACKと次のDATAに対するACKとの到着間隔が縮まる。すなわち、パケット解析装置1は、クロストラヒックの影響を受けない場合と比べて、ネットワーク帯域を広く推定してしまう。
図2Bに示すように、送信側の端末4から後に送られたDATAがクロストラヒックの影響を受けると、クロストラヒックの影響を受けない場合と比べて、パケット解析装置1では、このDATAに対するACKと前のDATAに対するACKとの到着間隔が広がる。すなわち、パケット解析装置1は、クロストラヒックの影響を受けない場合と比べて、ネットワーク帯域を狭く推定してしまう。
したがって、パケット解析装置1は、クロストラヒックの影響を受けたACKを帯域推定に不要なACKとして除去したうえで、ネットワーク帯域を推定することが必要となる。
そこで、実施例に係るパケット解析装置1は、ネットワーク帯域をACKから推定するが、帯域推定に不要なACKを判定するために用いられる閾値をDATAから算出する。閾値をDATAから算出するのは、以下の2つの理由による。第1の理由は、DATAの送信タイミングはACKに依存するからである。すなわち、送信側の端末4はACKを受信して以前送信したDATAの到達を確認した後に、次のDATAを送信するからである。第2の理由は、DATAの到着間隔はACKの到着間隔と比べて安定しているからである。すなわち、DATAのサイズはACKに比べて大きいので、DATAの挙動はACKに比べて安定しているからである。なお、閾値の詳細な算出方法は、後述するものとする。
図1に戻って、端末3,4は、例えば、ネットワーク上で、TCP(Transmission Control Protocol)を用いた通信を行う。
ここで、TCPの通信機能の特性の一例について説明する。受信側の端末4がデータのパケットを受け取った場合に、そのデータのシーケンス番号とデータサイズから次に送られてくる予定のデータのシーケンス番号をACKの確認応答番号に設定したうえで、ACKを送信側の端末3に伝達する。送信側の端末3は、ACKを受信し、受信したACKの確認応答番号を確認することで、次のデータのパケットを送信する。
ところが、送信側の端末3は、データのパケットを1パケットずつ受信、確認および送信を行うと通信効率が悪い。そこで、TCPでは、「ウィンドウ制御」が行われる。ウィンドウ制御とは、送信側の端末3が、データのパケットを1パケットずつ受信、確認および送信するのではなく、複数のデータのパケットを連続で送信する。すなわち、送信側の端末3は、複数のデータのパケットをウィンドウサイズと呼ばれる単位で管理し、ACKの確認応答番号を待つことなく、データのパケットを連続で送信する。このウィンドウ制御により通信効率が改善される。なお、ウィンドウ制御によって連続で送信されるデータのパケットのことを「連続パケット」というものとする。なお、連続パケットの個数は、例えば、特開2015−035709号公報に開示された内容により特定することができる。
パケット解析装置1は、記憶部11および制御部12を有する。
記憶部11は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部11は、コネクション管理テーブル111、解析情報テーブル112および統計情報テーブル116を有する。解析情報テーブル112には、DATAテーブル113、ACKテーブル114および閾値テーブル115が含まれる。
コネクション管理テーブル111は、コネクション毎に、送信元および宛先の通信情報を管理する。コネクション管理テーブル111は、キャプチャされたパケットのコネクションを検索する際に用いられる。
解析情報テーブル112は、解析情報を記憶する。解析情報テーブル112は、ネットワーク帯域が診断される際に用いられる。解析情報テーブル112には、DATAテーブル113、ACKテーブル114および閾値テーブル115が含まれる。DATAテーブル113は、データのパケットがキャプチャされる際に、データのパケットのインデックス番号、到着時刻およびパケット長を記憶する。ACKテーブル114は、ACKが取得される際に、到着時刻やACKに対応するデータのパケットのインデックス番号を記憶する。閾値テーブル115は、閾値に利用するバイト数、閾値に利用する時間間隔および閾値を記憶する。DATAテーブル113、ACKテーブル114および閾値テーブル115は、いずれもコネクション毎にテーブルを有する。
統計情報テーブル116は、統計情報を記憶する。統計情報テーブル116は、ネットワーク帯域の診断の最終的な統計を記憶する。なお、記憶部11の各種テーブルのデータ構造の一例は、後述する。
制御部12は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路の電子回路に対応する。または、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。さらに、制御部12は、出力インタフェース121、通信インタフェース122、コネクション管理部123、クロストラヒック判定部124および帯域推定部125を有する。
出力インタフェース121は、出力装置5とのインタフェースである。例えば、出力インタフェース121は、統計情報テーブル116に記憶された統計情報を編集し、出力装置5に出力する。
通信インタフェース122は、端末3と端末4との間で通信されるパケットを、SW2を介してキャプチャする。通信インタフェース122は、キャプチャしたパケットをコネクション管理部123に引き渡す。
コネクション管理部123は、キャプチャされたパケットのコネクションを管理する。例えば、コネクション管理部123は、コネクション管理テーブル111を参照し、キャプチャしたパケットと同じコネクション情報のパケットを、以前にキャプチャしたか否かを判定する。コネクション管理部123は、以前にキャプチャしていないと判定した場合、今回キャプチャしたパケットのコネクション情報をコネクション管理テーブル111に追加する。また、コネクション管理部123は、以前にキャプチャしていると判定した場合、何もしない。コネクション情報には、例えば、コネクションID、送信元のIPアドレス、送信元のポート番号、宛先のIPアドレスおよび宛先のポート番号が含まれる。また、コネクション管理部123は、今回キャプチャされたパケットがACKである場合には、コネクションIDおよび取得時刻を対応付けたACK情報をACKテーブル114に追加する。コネクション管理部123は、今回キャプチャされたパケットがDATAである場合には、コネクションIDおよび取得時刻を対応付けたDATA情報をDATAテーブル113に追加する。
クロストラヒック判定部124は、クロストラヒックの影響を受けたACKを判定する。例えば、クロストラヒック判定部124は、ACKを待ってから送信されたDATAがキャプチャされた場合には、1つ前のACKおよび今回のACKをそれぞれ待ってから送信された2つのDATAの到着間隔を用いてネットワーク帯域を算出する。クロストラヒック判定部124は、算出したネットワーク帯域を下限の閾値として閾値テーブル115に設定する。一例として、連続パケットの個数が2個である場合とする。クロストラヒック判定部124は、1つ前のACKおよび今回のACKをそれぞれ待ってから送信された2つのDATAの到着間隔から、これらACKの間に送信された連続パケットの到着間隔を引いたDATAの到着間隔を算出する。クロストラヒック判定部124は、DATAの到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。ACKを待ってから送信されたDATAの到着間隔から算出したネットワーク帯域の推定値を下限の閾値とするのは、以下の理由による。すなわち、ACKを待ってから送信されたDATAの到着間隔から算出したネットワーク帯域の推定値は、ACKの到着間隔が正常であれば、受信側のネットワーク帯域より低くなるので、低くなる推定値を下限の閾値とする。
クロストラヒック判定部124は、ACKを待たずに送信されたDATAがキャプチャされた場合には、連続で送信されたDATAの到着間隔を用いてネットワーク帯域を算出する。クロストラヒック判定部124は、算出したネットワーク帯域を上限の閾値として閾値テーブル115に設定する。一例として、連続パケットの個数が2個である場合とする。クロストラヒック判定部124は、連続パケットにおけるDATAの到着間隔を算出する。クロストラヒック判定部124は、DATAの到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。連続で送信されたDATAの到着間隔から算出したネットワーク帯域の推定値を上限の閾値とするのは、以下の理由による。すなわち、連続で送信されたDATAの到着間隔から算出したネットワーク帯域は、ACKの到着間隔が正常であれば、受信側のネットワーク帯域より高くなるので、高くなる推定値を上限の閾値とする。
クロストラヒック判定部124は、ACKの到着間隔およびACK間のDATAのサイズを式(1)に代入して、ネットワーク帯域を算出する。クロストラヒック判定部124は、ACKの到着間隔を用いて算出したネットワーク帯域が、下限の閾値より小さければ、クロストラヒックの影響を受けたACKであると判定する。すなわち、ACKの到着間隔が広がった場合である。クロストラヒック判定部124は、ACKの到着間隔を用いて算出したネットワーク帯域が、上限の閾値よりで大きければ、クロストラヒックの影響を受けたACKであると判定する。すなわち、ACKの到着間隔が縮まった場合である。クロストラヒック判定部124は、ACKの到着間隔を用いて算出したネットワーク帯域が、下限の閾値より大きく、且つ上限の閾値より小さければ、クロストラヒックの影響を受けていないACKであると判定する。
帯域推定部125は、受信側のネットワークの帯域を推定する。例えば、帯域推定部125は、クロストラヒック判定部124によってクロストラヒックの影響を受けたACKであると判定されたACKを帯域計測に不要なパケットであると判断し除去する。帯域推定部125は、クロストラヒック判定部124によってクロストラヒックの影響を受けていないACKであると判定されたACKを用いて算出したネットワーク帯域を受信側の端末3のネットワーク帯域として更新する。これにより、帯域推定部125は、クロストラヒックの影響を受けたACKを受信側の端末3のネットワーク帯域の計測時に除去することで、より正確な受信側の端末3のネットワーク帯域を計測できる。
[閾値の算出方法]
クロストラヒック判定部124による閾値の算出方法を、図3Aおよび図3Bを参照して説明する。図3Aおよび図3Bは、実施例に係るクロストラヒック判定部による閾値の算出方法を示す図である。図3Aは、下限の閾値の算出方法を示す図である。図3Bは、上限の閾値の算出方法を示す図である。なお、連続パケットの個数は2個であるものとする。DATAのパケット長は1500バイト(byte)であるものとする。
[下限の閾値について]
図3Aでは、ACKテーブル114には、ACKa0、a1のACK情報が格納されているとする。DATAテーブル113には、DATAd0、d1のDATA情報が格納されているとする。
図3A左図および図3A右図に示すように、DATAd2がキャプチャされたとする。すると、クロストラヒック判定部124は、DATAd2がACKa1を待ってから送信されたので、以下のようにネットワーク帯域を算出する。すなわち、クロストラヒック判定部124は、ACKa0およびACKa1をそれぞれ待ってから送信されたDATAd0、d2の到着間隔を算出する。クロストラヒック判定部124は、算出した到着間隔から、これらACKa0、a1の間に送信された連続パケットd0、d1の到着間隔を引いたDATAの到着間隔を算出する。クロストラヒック判定部124は、DATAの到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。
図3A左図では、送信側のネットワーク帯域が100Mbps(megabets per second)、受信側のネットワーク帯域が1Mbpsであるとする。すると、仮に受信側のネットワーク帯域そのものの通信であったとすると、DATAd0、d2の到着間隔は、24000μs(micro second)と算出される。連続パケットd0、d1の到着間隔は、120μsと算出されるとする。すると、DATAの到着間隔は、(24000−120)μsと算出される。そして、クロストラヒック判定部124は、DATAの到着間隔を式(1)のパケット間の間隔に代入し、DATAd2のパケット長を示す1500バイトを式(1)のパケットサイズに代入し、ネットワーク帯域を算出する。ここでは、ネットワーク帯域は、502.51Kbpsと算出し、算出したネットワーク帯域を下限の閾値とする。
図3A右図では、送信側のネットワーク帯域が100Mbps、受信側のネットワーク帯域が90Mbpsであるとする。すると、仮に受信側のネットワーク帯域そのものの通信であったとすると、DATAd0、d2の到着間隔は、266μsと算出される。連続パケットd0、d1の到着間隔は、120μsと算出されるとする。すると、DATAの到着間隔は、(266−120)μsと算出される。そして、クロストラヒック判定部124は、DATAの到着間隔を式(1)のパケット間の間隔に代入し、DATAd2のパケット長を示す1500バイトを式(1)のパケットサイズに代入し、ネットワーク帯域を算出する。ここでは、ネットワーク帯域は、82.19Mbpsと算出し、算出したネットワーク帯域を下限の閾値とする。
ここで、図3A左図では、送信側と受信側のネットワーク帯域の差が大きい場合である。かかる場合の下限の閾値502.51Kbpsは、受信側のネットワーク帯域1Mbpsの約0.5倍である。また、図3A右図では、送信側と受信側のネットワーク帯域の差が小さい場合である。かかる場合の下限の閾値82.19Mbpsは、受信側のネットワーク帯域90Mbpsの約0.9倍である。つまり、送信側の端末4が2つのDATAに対してACKを返信している場合には、クロストラヒック判定部124は、DATAの到着間隔から算出されるネットワーク帯域(下限の閾値)を、受信側のネットワーク帯域の1倍〜0.5倍の大きさに設定できる。これにより、クロストラヒック判定部124は、受信側のネットワーク帯域の計測の際に、下限の閾値を利用することで、受信側のネットワーク帯域の0.5倍より小さい数値をフィルタすることができる。言い換えれば、クロストラヒック判定部124は、ACKの到着間隔が広がった場合のクロストラヒックの影響を受けたACKをネットワーク帯域の計測に不要なACKとして特定することができる。
[上限の閾値について]
図3Bでは、ACKテーブル114には、ACKa10のACK情報が格納されているとする。DATAテーブル113には、DATAd10、d11のDATA情報が格納されているとする。
図3B左図に示すように、DATAd11がキャプチャされたとする。すると、クロストラヒック判定部124は、DATAd11がACKを待たずに送信されたので、以下のようにネットワーク帯域を算出する。すなわち、クロストラヒック判定部124は、連続で送信されたDATAd10、d11の到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。
ここで、図3B右図に示すように、ACKa10がクロストラヒックの影響を受けた場合には、ACKa10、a11の到着間隔がf0からf1のように縮まる。かかる場合には、クロストラヒック判定部124は、受信側のネットワーク帯域の計測の際に、上限の閾値を利用することで、受信側のネットワーク帯域の上限の閾値より大きい数値をフィルタすることができる。言い換えれば、クロストラヒック判定部124は、ACKの到着間隔が縮まった場合のクロストラヒックの影響を受けたACKをネットワーク帯域の計測に不要なACKとして特定することができる。
[テーブルのデータ構造]
パケット解析装置1で用いられる各種テーブルのデータ構造を、図4〜図8を参照して説明する。図4は、コネクション管理テーブルのデータ構造の一例を示す図である。図5は、DATAテーブルのデータ構造の一例を示す図である。図6は、ACKテーブルのデータ構造の一例を示す図である。図7は、閾値テーブルのデータ構造の一例を示す図である。図8は、統計情報テーブルのデータ構造の一例を示す図である。
図4に示すように、コネクション管理テーブル111は、送信元IP(Internet Protocol)111b、送信元ポート111c、送信先IP111dおよび送信先ポート111eをコネクションID(identification)111aに対応付けて記憶する。コネクションID111aは、コネクション毎に付けられるインデックス番号である。送信元IP111bは、送信元のIPアドレスである。送信元ポート111cは、TCPにおける送信元のポート番号である。送信先IP111dは、宛先のIPアドレスである。送信先ポート111eは、宛先のTCPにおける宛先のポート番号である。
一例として、コネクションID111aが「0」である場合に、送信元IP111bとして「10.25.100.100」、送信元ポート111cとして「80」と記憶している。送信先IP111dとして「10.25.200.100」、送信先ポート111eとして「200」と記憶している。
図5に示すように、DATAテーブル113は、コネクションID113a、データID113b、Seq番号113c、パケット長113dおよび到着時刻113eを対応付けて記憶する。なお、DATAテーブル113は、コネクションID113a毎にテーブルを有している。コネクションID113aは、コネクション毎に付けられるインデックス番号である。データID113bは、DATAのインデックス番号である。Seq番号113cは、DATAのシーケンス番号である。パケット長113dは、DATAのパケット長である。到着時刻113eは、DATAのパケット解析装置1への到着時刻である。
一例として、コネクションID113aが「0」であってデータID113bが「0」である場合に、Seq番号113cとして「1500」、パケット長113dとして「1500」、到着時刻113eとして「1000」と記憶している。また、コネクションID113aが「0」であってデータID113bが「1」である場合に、Seq番号113cとして「3000」、パケット長113dとして「1500」、到着時刻113eとして「1120」と記憶している。
図6に示すように、ACKテーブル114は、コネクションID114a、ACKID114b、ACK番号114c、到着時刻114dおよびデータID114eを対応付けて記憶する。なお、ACKテーブル114は、コネクションID114a毎にテーブルを有している。コネクションID114aは、コネクション毎に付けられるインデックス番号である。ACKID114bは、ACKのインデックス番号である。ACK番号114cは、ACKのACK番号(確認応答番号)である。すなわち、ACK番号114cには、次に送られてくる予定のDATAのSeq番号が設定される。到着時刻114dは、ACKのパケット解析装置1への到着時刻である。データID114eは、ACKに対応するDATAのインデックス番号(データID)である。すなわち、データID114eは、ACKID114bで示されるACKに対応するDATAであることを意味する。
一例として、コネクションID114aが「0」であってACKID114bが「0」である場合に、ACK番号114cとして「3000」、到着時刻114dとして「3000」、データID114eとして「0」と記憶している。コネクションID114aが「0」であってACKID114bが「1」である場合に、ACK番号114cとして「6000」、到着時刻114dとして「3240」、データID114eとして「2」と記憶している。
図7に示すように、閾値テーブル115は、コネクションID115a、グループID115b、閾値に利用するバイト数115c、閾値に利用する時間間隔115dおよび閾値115eを対応付けて記憶する。コネクションID115aは、コネクション毎に付けられるインデックス番号である。グループID115bは、閾値毎に付けられるグループ番号である。すなわち、グループID115bは、連続で送信されたDATAの到着間隔から算出する上限の閾値に付けられるグループ番号と、ACKを待ってから送信されたDATAの到着間隔から算出する下限の閾値に付けられるグループ番号を意味する。閾値に利用するバイト数115cは、閾値を算出する際に利用するDATAのパケットの長さである。閾値に利用する到着間隔115dは、閾値を算出する際に利用するDATAの到着間隔である。閾値115eは、閾値に利用するバイト数115cと閾値に利用する到着間隔115dとから算出される閾値である。
一例として、コネクションID115aが「0」である場合に、グループID115bとして「0」、閾値に利用するバイト数115cとして「1500」、閾値に利用する到着間隔115dとして「120」、閾値115eとして「100」と記憶している。コネクションID115aが「0」である場合に、グループID115bとして「1」、閾値に利用するバイト数115cとして「1500」、閾値に利用する到着間隔115dとして「2280」、閾値115eとして「5.8」と記憶している。
図8に示すように、統計情報テーブル116は、計測バイト数116bおよび計測時間間隔116cをコネクションID116aに対応付けて記憶する。コネクションID116aは、コネクション毎に付けられるインデックス番号である。計測バイト数116bは、計測された連続パケットのパケットサイズの合計である。計測時間間隔116cは、計測された連続パケットにおけるパケット間の到着時刻間隔の合計である。
一例として、コネクションID116aが「0」である場合に、計測バイト数116bとして「3000」、計測時間間隔116cとして「240」と記憶している。
[パケット解析処理のフローチャート]
次に、実施例に係るパケット解析処理のフローチャートを、図9A〜図9Cを参照して説明する。図9Aは、実施例に係るパケット解析処理のフローチャートを示す図である。図9Bは、データパケット受信時の処理のフローチャートを示す図である。図9Cは、ACKパケット受信時の処理のフローチャートを示す図である。なお、ここでは、連続パケットの個数は2個である場合とする。
図9Aに示すように、通信インタフェース122は、パケットを受信したか否かを判定する(ステップS11)。パケットを受信していないと判定した場合(ステップS11;No)、通信インタフェース122は、パケットを受信するまで、判定処理を繰り返す。
一方、パケットを受信したと判定した場合(ステップS11;Yes)、コネクション管理部123は、受信したパケットのヘッダ情報を抽出する(ステップS12)。例えば、コネクション管理部123は、IPヘッダから、送信元のIPアドレスおよび宛先のIPアドレスを抽出する。コネクション管理部123は、TCPヘッダから、送信元のポート番号、宛先のポート番号、シーケンス番号、ACK番号(確認応答番号)、パケット長などを抽出する。
そして、コネクション管理部123は、コネクション管理テーブル111に記憶された情報から、今回受信したコネクション情報に対応するレコードを検索する(ステップS13)。ここでいうコネクション情報とは、送信元のIPアドレス、送信元のポート番号、宛先のIPアドレスおよび宛先のポート番号である。例えば、コネクション管理部123は、コネクション情報を検索条件として、コネクション管理テーブル111から該当するレコードを検索する。なお、送信元の情報と宛先の情報とが入れ替わった場合であっても、同じコネクションであることとする。
そして、コネクション管理部123は、検索の結果、コネクション情報が未登録であるか否かを判定する(ステップS14)。コネクション情報が未登録でないと判定した場合(ステップS14;No)、コネクション管理部123は、ステップS16に移行する。
一方、コネクション情報が未登録であると判定した場合(ステップS14;Yes)、コネクション管理部123は、コネクション情報を、コネクション管理テーブル111に登録する(ステップS15)。例えば、コネクション管理部123は、新たなコネクションID(コネクションID111a)に対して、送信元のIPアドレス(送信元IP111b)およびポート番号(送信元ポート111c)を追加する。加えて、コネクション管理部123は、同じレコードに、宛先のIPアドレス(送信先IP111d)およびポート番号(送信先ポート111e)を追加する。そして、コネクション管理部123は、ステップS16に移行する。
ステップS16では、コネクション管理部123は、当該パケットがDATAであるか否かを判定する(ステップS16)。例えば、コネクション管理部123は、TCPヘッダのパケット長を参照し、パケット長が0ならば、ACKと判定し、パケット長が0より大きければ、DATAと判定する。
当該パケットがDATAであると判定した場合(ステップS16;Yes)、コネクション管理部123は、データパケット受信時の処理へ移行すべく、ステップS21に移行する。一方、当該パケットがDATAでないと判定した場合(ステップS16;No)、すなわち当該パケットがACKである場合、コネクション管理部123は、ACKパケット受信時の処理へ移行すべく、ステップS31に移行する。
[データパケット受信時の処理のフローチャート]
図9Bに示すように、ステップS21では、コネクション管理部123は、受信したパケットがDATAと判定されたので、当該DATAのDATA情報をDATAテーブル113に追加する(ステップS21)。追加する情報は、例えば、コネクションID(コネクションID113a)、受信したDATAのID(データID113b)、シーケンス番号(Seq番号113c)、パケット長(パケット長113d)およびDATAの観測点への到着時刻(到着時刻113e)である。観測点とは、パケット解析装置1のことを意味する。
クロストラヒック判定部124は、DATAテーブル113およびACKテーブル114を用いて、受信したDATAがACKを待ってから送信されたDATAであるかを判定する(ステップS22)。例えば、クロストラヒック判定部124は、受信したDATAのシーケンス番号(Seq番号113c)が最新に受信されたACKの確認応答番号(ACK番号114c)と同じであれば、受信したDATAがACKを待ってから送信されたDATAであると判定する。一方、クロストラヒック判定部124は、受信したDATAのシーケンス番号(Seq番号113c)が最新に受信されたACKの確認応答番号(ACK番号114c)と同じでなければ、受信したDATAがACKを待ってから送信されたDATAでないと判定する。すなわち、受信したパケットが連続で送信されたDATAであると判定する。なお、かかる判定処理は、これに限定されず、受信したDATAの到着時刻113eと最新に受信されたACKの到着時刻114dとの比較により判定しても良い。
受信したDATAがACKを待ってから送信されたDATAであると判定した場合には(ステップS22;Yes)、クロストラヒック判定部124は、DATAからネットワーク帯域の推定値を算出する(ステップS23)。すなわち、クロストラヒック判定部124は、ACKを待ってから送信されたDATAの到着間隔を利用して、下限の閾値を算出する。例えば、クロストラヒック判定部124は、DATAテーブル113を用いて、受信したDATAの到着時刻113eを取得する。クロストラヒック判定部124は、DATAテーブル113およびACKテーブル114を用いて、1つ前に受信されたACKを待ってから送信されたDATAの到着時刻113eを取得する。そして、クロストラヒック判定部124は、2つのDATAの到着時刻の到着間隔t1を算出する。また、クロストラヒック判定部124は、DATAテーブル113およびACKテーブル114を用いて、2つのACKの間に連続で送信されたDATAの到着時刻113eを取得する。そして、クロストラヒック判定部124は、1つ前に受信されたACKを待ってから送信されたDATAの到着時刻113eと、連続で送信されたDATAの到着時刻113eとの到着間隔t2を算出する。そして、クロストラヒック判定部124は、到着間隔t1から到着間隔t2を引いたDATAの到着間隔を算出する。そして、クロストラヒック判定部124は、DATAの到着間隔および受信したDATAのサイズを式(1)に代入して、ネットワーク帯域の推定値を算出する。
クロストラヒック判定部124は、算出したネットワーク帯域の推定値を下限の閾値として閾値テーブル115に更新する(ステップS24)。そして、クロストラヒック判定部124は、次のパケットの処理をすべく、ステップS11に移行する。
一方、受信したDATAがACKを待ってから送信されたDATAでないと判定した場合には(ステップS22;No)、クロストラヒック判定部124は、DATAからネットワーク帯域の推定値を算出する(ステップS25)。すなわち、クロストラヒック判定部124は、連続で送信されたDATAの到着間隔を利用して、上限の閾値を算出する。例えば、クロストラヒック判定部124は、受信したDATAの到着時刻113eを取得する。クロストラヒック判定部124は、DATAテーブル113を用いて、受信したDATAの1つ前に受信されたDATAの到着時刻113eを取得する。そして、クロストラヒック判定部124は、2つのDATAの到着時刻からDATAの到着間隔を算出する。そして、クロストラヒック判定部124は、DATAの到着間隔および受信したDATAのサイズを式(1)に代入して、ネットワーク帯域の推定値を算出する。
クロストラヒック判定部124は、算出したネットワーク帯域の推定値を上限の閾値として閾値テーブル115に更新する(ステップS26)。そして、クロストラヒック判定部124は、次のパケットの処理をすべく、ステップS11に移行する。
[ACKパケット受信時の処理のフローチャート]
図9Cに示すように、ステップS31では、コネクション管理部123は、受信したパケットがACKと判定されたので、当該ACKのACK情報をACKテーブル114に追加する(ステップS31)。追加する情報は、例えば、コネクションID(コネクションID114a)、受信したACKのID(ACKID114b)、ACK番号(ACK番号114c)、ACKの観測点への到着時刻(到着時刻114d)である。観測点とは、パケット解析装置1のことを意味する。
クロストラヒック判定部124は、受信したACKからネットワーク帯域の推定値を算出する(ステップS32)。例えば、クロストラヒック判定部124は、ACKテーブル114を用いて、最新に受信されたACKの到着時刻114dと、1つ前に受信されたACKの到着時刻114dとの到着間隔を算出する。クロストラヒック判定部124は、DATAテーブル113およびACKテーブル114を用いて、ACKの間に送信されたDATAのパケット長113dを取得する。そして、クロストラヒック判定部124は、ACKの到着間隔およびACK間のDATAのサイズを式(1)に代入して、ネットワーク帯域の推定値を算出する。
クロストラヒック判定部124は、閾値テーブル115を用いて、ACKから算出したネットワーク帯域の推定値が下限の閾値以上であるか否かを判定する(ステップS33)。ACKから算出したネットワーク帯域の推定値が下限の閾値以上でないと判定した場合には(ステップS33;No)、クロストラヒック判定部124は、最新に受信されたACKがクロストラヒックの影響を受けたACKであると判定する。そして、クロストラヒック判定部124は、ネットワーク帯域の計測に不要なパケットであると判断し、ステップS11に移行する。
一方、ACKから算出したネットワーク帯域の推定値が下限の閾値以上であると判定した場合には(ステップS33;Yes)、クロストラヒック判定部124は、以下の処理を行う。すなわち、クロストラヒック判定部124は、ACKから算出したネットワーク帯域の推定値が上限の閾値以下であるか否かを判定する(ステップS34)。ACKから算出したネットワーク帯域の推定値が上限の閾値以下でないと判定した場合には(ステップS34;No)、クロストラヒック判定部124は、最新に受信されたACKがクロストラヒックの影響を受けたACKであると判定する。そして、クロストラヒック判定部124は、ネットワーク帯域の計測に不要なパケットであると判断し、ステップS11に移行する。
一方、ACKから算出したネットワーク帯域の推定値が上限の閾値以下であると判定した場合には(ステップS34;Yes)、帯域推定部125は、以下の処理を行う。すなわち、帯域推定部125は、受信側のネットワーク帯域の推定値を、ACKから算出したネットワーク帯域の推定値に更新する(ステップS35)。そして、帯域推定部125は、次のパケットの処理をすべく、ステップS11に移行する。
[パケット解析処理の具体例]
次に、実施例に係るパケット解析処理の具体例を、図10および図11を参照して説明する。図10は、ACK間隔が広がる場合のパケット解析処理の具体例を示す図である。図11は、ACK間隔が縮まる場合のパケット解析処理の具体例を示す図である。なお、図10および図11では、送信側のネットワーク帯域が100Mbps、受信側のネットワーク帯域が50Mbpsであるとする。また、DATAのサイズは、1500バイトであり、2つのDATAに対してACKを返信している場合とする。
[ACK間隔が広がる場合のパケット解析処理の具体例]
図10に示すように、DATAd25、d26がクロストラヒックの影響を受けたため、DATAd25、d26に対して返信されるACKa33と1つ前に返信されるACKa32との間隔が広がる場合である。
例えば、パケット解析装置1は、DATAd27を受信した場合には、DATAd27がACKa32を待ってから送信されたDATAであるので、DATAの到着間隔を利用して以下のように下限の閾値を算出する。すなわち、パケット解析装置1は、ACKa32および1つ前のACKa31をそれぞれ待ってから送信された2つのDATAd25、d27の到着間隔を算出する。2つのDATAd25、d27の到着間隔は、符号t10で示される間隔である。パケット解析装置1は、算出した到着間隔から、これらACKa32、a31の間に送信された連続DATAd21、d22の到着間隔を引いたDATAの到着間隔を算出する。連続DATAd21、d22の到着間隔は、符号t11で示される間隔である。パケット解析装置1は、DATAの到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を下限の閾値とする。
ここでは、DATAd25、d27の到着間隔は、480μsであり、連続DATAd21、d22の到着間隔は、120μsであったとする。すると、パケット解析装置1は、以下の式(2)のように、下限の閾値を算出する。
下限の閾値=8bits×1500bytes/(480μs−120μs)=33.33Mbps・・・式(2)
次に、パケット解析装置1は、DATAd28を受信した場合には、DATAd28がACKa32を待ってから送信されたDATAでなく、連続で送信されたDATAであるので、連続で送信されたDATAの到着間隔を利用して以下のように上限の閾値を算出する。すなわち、パケット解析装置1は、連続DATAd21、d22の到着間隔を算出する。パケット解析装置1は、連続DATAの到着間隔およびDATAのサイズを式(1)に代入して、ネットワーク帯域を算出し、算出したネットワーク帯域を上限の閾値とする。
ここでは、連続DATAd21、d22の到着間隔は、120μsであったとする。すると、パケット解析装置1は、以下の式(3)のように、上限の閾値を算出する。
上限の閾値=8bits×1500bytes/120μs=100Mbps・・・式(3)
次に、パケット解析装置1は、ACKa33を受信した場合には、受信したACKa33から以下のようにネットワーク帯域の推定値を算出する。すなわち、パケット解析装置1は、ACKa33と、1つ前に受信されたACKa32との到着間隔およびDATAd23,d24のサイズを式(1)に代入して、ネットワーク帯域の推定値を算出する。
ここでは、ACKa33と、1つ前に受信されたACKa32との到着間隔は、960μsであったとする。すると、パケット解析装置1は、受信したACKa33から、以下の式(4)のようにネットワーク帯域の推定値を算出する。
<2>のネットワーク帯域=8bits×(2×1500bytes)/960μs=25Mbps・・・式(4)
そして、パケット解析装置1は、ACKa33から算出したネットワーク帯域の推定値が下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa33から算出したネットワーク帯域の推定値は、25Mbpsであるので、下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下でないと判定される。そこで、パケット解析装置1は、ACKa33がクロストラヒックの影響を受けたACKであると判定する。したがって、パケット解析装置1は、ACKa33をネットワーク帯域の計測に不要なパケットであると判断する。
ここで、パケット解析装置1は、ACKa32を受信した場合には、受信したACKa32からネットワーク帯域の推定値を算出する。ここでは、1つ前に受信されたACKa31との到着間隔は、480μsであったとする。すると、パケット解析装置1は、受信したACKa32から、以下の式(5)のようにネットワーク帯域の推定値を算出する。
<1>のネットワーク帯域=8bits×(2×1500bytes)/480μs=50Mbps・・・式(5)
そして、パケット解析装置1は、ACKa32から算出したネットワーク帯域の推定値が下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa32から算出したネットワーク帯域の推定値は、50Mbpsであるので、下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であると判定される。そこで、パケット解析装置1は、ACKa32がクロストラヒックの影響を受けたACKでないと判定する。したがって、パケット解析装置1はACKa32からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、受信側のネットワーク帯域の推定値は、式(5)のように50Mbpsとして算出される。
また、パケット解析装置1は、ACKa34を受信した場合には、受信したACKa34からネットワーク帯域の推定値を算出する。ここでは、1つ前に受信されたACKa33との到着間隔は、480μsであったとする。すると、パケット解析装置1は、受信したACKa34から、以下の式(6)のようにネットワーク帯域の推定値を算出する。
<3>のネットワーク帯域=8bits×(2×1500bytes)/480μs=50Mbps・・・式(6)
そして、パケット解析装置1は、ACKa34から算出したネットワーク帯域の推定値が下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa34から算出したネットワーク帯域の推定値は、50Mbpsであるので、下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であると判定される。そこで、パケット解析装置1は、ACKa34がクロストラヒックの影響を受けたACKでないと判定する。したがって、パケット解析装置1は、ACKa32およびACKa34からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、パケット解析装置1は、以下の式(7)のように受信側のネットワーク帯域の推定値として算出する。
受信側のネットワーク帯域の推定値=8bits×(4×1500bytes)/2×480μs=50Mbps・・・式(7)
[ACK間隔が縮まる場合のパケット解析処理の具体例]
図11に示すように、ACKa51がクロストラヒックの影響を受けたため、ACKa51とACKa52とのACK間隔が縮まる場合である。
例えば、パケット解析装置1は、図10で示したように、DATAを受信した場合には、DATAがACKを待ってから送信されたDATAであれば、DATAの到着間隔を利用して下限の閾値を算出する。ここでは、パケット解析装置1は、下限の閾値を、式(2)で示したように、33.33Mbpsと算出するとする。
次に、パケット解析装置1は、DATAを受信した場合には、DATAがACKを待ってから送信されたDATAでなく、連続で送信されたDATAであれば、連続で送信されたDATAの到着間隔を利用して上限の閾値を算出する。ここでは、連続DATAの到着間隔は、120μsであったとする。すると、パケット解析装置1は、以下の式(8)のように、上限の閾値を算出する。
上限の閾値=8bits×1500bytes/120μs=100Mbps・・・式(8)
次に、パケット解析装置1は、ACKa52を受信した場合には、受信したACKa52から以下のようにネットワーク帯域の推定値を算出する。すなわち、パケット解析装置1は、ACKa52と、1つ前に受信されたACKa51との到着間隔および2つのDATAのサイズを式(1)に代入して、ネットワーク帯域の推定値を算出する。
ここでは、ACKa52と、1つ前に受信されたACKa51との到着間隔は、160μs(<1´>)であったとする。すると、パケット解析装置1は、受信したACKa52から、以下の式(9)のようにネットワーク帯域の推定値を算出する。
<1´>のネットワーク帯域=8bits×(2×1500bytes)/160μs=150Mbps・・・式(9)
そして、パケット解析装置1は、ACKa52から算出したネットワーク帯域の推定値が下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa52から算出したネットワーク帯域の推定値は、150Mbpsであるので、上限の閾値(100Mbps)以下でないと判定される。そこで、パケット解析装置1は、ACKa52がクロストラヒックの影響を受けたACKであると判定する。したがって、パケット解析装置1は、ACKa52をネットワーク帯域の計測に不要なパケットであると判断する。
また、パケット解析装置1は、ACKa53を受信した場合には、受信したACKa53からネットワーク帯域の推定値を算出する。ここでは、1つ前に受信されたACKa52との到着間隔は、480μsであったとする。すると、パケット解析装置1は、受信したACKa53から、以下の式(10)のようにネットワーク帯域の推定値を算出する。
<2´>のネットワーク帯域=8bits×(2×1500bytes)/480μs=50Mbps・・・式(10)
そして、パケット解析装置1は、ACKa53から算出したネットワーク帯域の推定値が下限の閾値以上(33.33Mbps)且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa53から算出したネットワーク帯域の推定値は、50Mbpsであるので、下限の閾値以上且つ上限の閾値以下であると判定される。そこで、パケット解析装置1は、ACKa53がクロストラヒックの影響を受けたACKでないと判定する。したがって、パケット解析装置1はACKa53からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、受信側のネットワーク帯域の推定値は、式(10)のように50Mbpsとして算出される。
また、パケット解析装置1は、ACKa54を受信した場合には、受信したACKa54からネットワーク帯域の推定値を算出する。ここでは、1つ前に受信されたACKa53との到着間隔は、480μsであったとする。すると、パケット解析装置1は、受信したACKa54から、以下の式(11)のようにネットワーク帯域の推定値を算出する。
<3´>のネットワーク帯域=8bits×(2×1500bytes)/480μs=50Mbps・・・式(11)
そして、パケット解析装置1は、ACKa54から算出したネットワーク帯域の推定値が下限の閾値(33.33Mbps)以上且つ上限の閾値(100Mbps)以下であるか否かを判定する。ここでは、ACKa54から算出したネットワーク帯域の推定値は、50Mbpsであるので、下限の閾値以上且つ上限の閾値以下であると判定される。そこで、パケット解析装置1は、ACKa54がクロストラヒックの影響を受けたACKでないと判定する。したがって、パケット解析装置1は、ACKa53およびACKa54からネットワーク帯域の推定値を算出し、受信側のネットワーク帯域の推定値とする。ここでは、パケット解析装置1は、以下の式(12)のように受信側のネットワーク帯域の推定値として算出する。
受信側のネットワーク帯域の推定値=8bits×(4×1500bytes)/2×480μs=50Mbps・・・式(12)
これにより、パケット解析装置1は、クロストラヒックの影響を受けたACKを特定し、受信側の端末3のネットワーク帯域の計測時に除去することで、より正確な受信側の端末3のネットワーク帯域を計測できる。
[実施例の効果]
上記実施例によれば、パケット解析装置1は、送信側の端末4と受信側の端末3との間で通信されるパケットを送信側の端末4と受信側の端末3との間のネットワークのいずれかの地点で取得する。パケット解析装置1は、取得したパケットと取得時刻を対応付けて記憶する。パケット解析装置1は、受信側の端末3から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に送信側の端末4から送信されたデータパケットの帯域が、第1のACKパケットおよび第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、第2のACKパケットを帯域計測に不要なパケットであると判定する。かかる構成によれば、パケット解析装置1は、キャプチャしたパケットから、受信側の端末3のネットワーク帯域の算出に不要なACKパケットを特定し、排除することができる。この結果、パケット解析装置1は、より正確な受信側の端末3のネットワーク帯域を計測できる。
また、上記実施例によれば、パケット解析装置1は、第1のACKパケットを待たずに送信されたデータパケットを取得した場合には、第1のACKパケットを待ってから送信されたデータパケットおよび前記第1のACKパケットを待たずに送信されたデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を下限の閾値として更新する。パケット解析装置1は、第2のACKパケットを待ってから送信されたデータパケットを取得した場合には、第1のACKパケットおよび第2のACKパケットをそれぞれ待ってから送信された2つのデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を上限の閾値として更新する。パケット解析装置1は、第1のACKパケットおよび第2のACKパケットの取得間隔を用いて得られる帯域が、下限の閾値より小さい、または上限の閾値より大きい場合に、第2のACKパケットを帯域計測に不要なパケットであると判定する。係る構成によれ、パケット解析装置1は、パケットが到着するごとに、動的に閾値を更新するので、閾値をパケットの挙動により自動的に変更することができる。言い換えると、パケット解析装置1は、上限の閾値および下限の閾値を、ネットワークの状況に応じて更新することができる。この結果、パケット解析装置1は、帯域計測に不要なパケットを正確に特定することができる。
[その他]
なお、パケット解析装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したコネクション管理部123、クロストラヒック判定部124および帯域推定部125などの各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、通信インタフェース122とコネクション管理部123とを1個の部として統合しても良い。一方、クロストラヒック判定部124を、閾値を算出する算出部と、クロストラヒックを判定する判定部とに分散しても良い。また、コネクション管理テーブル111、解析情報テーブル112および統計情報テーブル116をパケット解析装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したパケット解析装置1と同様の機能を実現するパケット解析プログラムを実行するコンピュータの一例を説明する。図12は、パケット解析プログラムを実行するコンピュータの一例を示す図である。
図12に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、パケット解析プログラム205aおよびパケット解析関連情報205bを記憶する。
CPU203は、パケット解析プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、パケット解析装置1の各機能部に対応する。パケット解析関連情報205bは、コネクション管理テーブル111、解析情報テーブル112、統計情報テーブル116に対応する。そして、例えばリムーバブルディスク211が、パケット解析プログラム205aなどの各情報を記憶する。
なお、パケット解析プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからパケット解析プログラム205aを読み出して実行するようにしても良い。
1 パケット解析装置
11 記憶部
12 制御部
111 コネクション管理テーブル
112 解析情報テーブル
113 DATAテーブル
114 ACKテーブル
115 閾値テーブル
116 統計情報テーブル
121 出力インタフェース
122 通信インタフェース
123 コネクション管理部
124 クロストラヒック判定部
125 帯域推定部
2 SW
3,4 端末
5 出力装置

Claims (4)

  1. コンピュータに、
    送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、
    取得したパケットと取得時刻を対応付けて記憶し、
    前記受信端末から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第1のACKパケットおよび前記第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第2のACKパケットを帯域計測に不要なパケットであると判定する
    処理を実行させることを特徴とするパケット解析プログラム。
  2. 前記第1のACKパケットを待たずに送信されたデータパケットを取得した場合には、前記第1のACKパケットを待ってから送信されたデータパケットおよび前記第1のACKパケットを待たずに送信されたデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を下限の閾値として更新し、
    前記第2のACKパケットを待ってから送信されたデータパケットを取得した場合には、前記第1のACKパケットおよび前記第2のACKパケットをそれぞれ待ってから送信された2つのデータパケットの取得間隔を用いて帯域を算出し、算出した帯域を上限の閾値として更新し、
    前記判定する処理は、前記第1のACKパケットおよび前記第2のACKパケットの取得間隔を用いて得られる帯域が、前記下限の閾値より小さい、または前記上限の閾値より大きい場合に、前記第2のACKパケットを帯域計測に不要なパケットであると判定する
    処理を実行させることを特徴とする請求項1に記載のパケット解析プログラム。
  3. 送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得する取得部と、
    前記取得部によって取得されたパケットと取得時刻を対応付けて記憶する記憶部と、
    前記受信端末から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第1のACKパケットおよび前記第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第2のACKパケットを帯域計測に不要なパケットであると判定する判定部と、
    を有することを特徴とするパケット解析装置。
  4. コンピュータが、
    送信端末と受信端末との間で通信されるパケットを前記送信端末と前記受信端末の間のネットワークのいずれかの地点で取得し、
    取得したパケットと取得時刻を対応付けて記憶し、
    前記受信端末から送信された第1のACKパケットの取得から該第1のACKパケットの次のACKパケットである第2のACKパケットの取得までの間に前記送信端末から送信されたデータパケットの帯域が、前記第1のACKパケットおよび前記第2のACKパケットを待ってからそれぞれ送信された2つのデータパケットの取得間隔を用いて得られる帯域より小さい、または前記第1のACKパケットを待たずに送信されたデータパケットを含む隣接する2つのデータパケットの取得間隔を用いて得られる帯域より大きい場合に、前記第2のACKパケットを帯域計測に不要なパケットであると判定する
    各処理を実行することを特徴とするパケット解析方法。
JP2015063354A 2015-03-25 2015-03-25 パケット解析プログラム、パケット解析装置およびパケット解析方法 Pending JP2016184824A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015063354A JP2016184824A (ja) 2015-03-25 2015-03-25 パケット解析プログラム、パケット解析装置およびパケット解析方法
US15/055,021 US20160285730A1 (en) 2015-03-25 2016-02-26 Apparatus and method for measuring a bandwidth for data transmission between communication devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015063354A JP2016184824A (ja) 2015-03-25 2015-03-25 パケット解析プログラム、パケット解析装置およびパケット解析方法

Publications (1)

Publication Number Publication Date
JP2016184824A true JP2016184824A (ja) 2016-10-20

Family

ID=56976367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015063354A Pending JP2016184824A (ja) 2015-03-25 2015-03-25 パケット解析プログラム、パケット解析装置およびパケット解析方法

Country Status (2)

Country Link
US (1) US20160285730A1 (ja)
JP (1) JP2016184824A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) * 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
JP6927135B2 (ja) * 2018-04-24 2021-08-25 日本電信電話株式会社 トラヒック推定装置、トラヒック推定方法及びプログラム
US11496925B2 (en) 2020-04-30 2022-11-08 The Nielsen Company (Us), Llc Methods and apparatus to determine virtual WiFi data rate

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7336613B2 (en) * 2000-10-17 2008-02-26 Avaya Technology Corp. Method and apparatus for the assessment and optimization of network traffic
JP2002290433A (ja) * 2001-03-27 2002-10-04 Fujitsu Ltd 帯域制御機能を備えるデータ中継装置および帯域管理装置
US20020169880A1 (en) * 2001-04-19 2002-11-14 Koninklijke Philips Electronics N.V. Method and device for robust real-time estimation of the bottleneck bandwidth in the internet
US7424526B1 (en) * 2001-07-31 2008-09-09 Sprint Communications Company L.P. Internet service node incorporating a bandwidth measurement device and associated methods for evaluating data transfers
US7242668B2 (en) * 2002-11-07 2007-07-10 Alcatel Lucent Network monitoring system responsive to changes in packet arrival variance and mean
US7616575B2 (en) * 2004-06-23 2009-11-10 Microsoft Corporation System and method for link quality routing using a weighted cumulative expected transmission time metric
KR20060100512A (ko) * 2005-03-17 2006-09-21 삼성전자주식회사 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템
JP4643330B2 (ja) * 2005-03-28 2011-03-02 ソニー株式会社 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
US7680038B1 (en) * 2005-04-25 2010-03-16 Electronic Arts, Inc. Dynamic bandwidth detection and response for online games
CN102714618B (zh) * 2009-06-22 2015-05-13 思杰系统有限公司 用于平台速率限制的系统和方法
FR2948249B1 (fr) * 2009-07-20 2011-09-23 Canon Kk Procedes et dispositifs d'estimation d'un niveau d'utilisation d'un reseau de communication et d'adaptation d'un niveau d'abonnements a des groupes multipoints
US8638795B2 (en) * 2010-08-12 2014-01-28 Citrix Systems, Inc. Systems and methods for quality of service of encrypted network traffic
JP5538257B2 (ja) * 2011-02-02 2014-07-02 アラクサラネットワークス株式会社 帯域監視装置、及びパケット中継装置
US9075735B2 (en) * 2012-06-21 2015-07-07 Breakingpoint Systems, Inc. Systems and methods for efficient memory access
US9276866B2 (en) * 2012-11-30 2016-03-01 Microsoft Technology Licensing, Llc Tuning congestion notification for data center networks

Also Published As

Publication number Publication date
US20160285730A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
JP6163954B2 (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
US10536343B2 (en) Traffic management apparatus and traffic management method
JP5013268B2 (ja) 伝送路の品質計測装置、通信システム、品質計測方法および品質計測プログラム
JP2016184824A (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
EP2234333A1 (en) System and method for estimation of round trip times within a tcp based data network
US20110075582A1 (en) Delay time measurement apparatus, storage medium storing delay time measurement program and network system
US10652128B2 (en) Apparatus and method for performance measurements using local timestamp and sequency number insertion at intermediate nodes
JP2010028654A (ja) 通信装置及びoamフレーム送信方法
US10735326B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
US9379989B2 (en) Congestion avoidance and control for UDP-based protocols
CN106656642B (zh) 一种往返时延的测量方法、装置及系统
US20160112292A1 (en) Method and system for non-tagged based latency calculation
JP5862811B1 (ja) 評価装置、評価方法、及びプログラム
US10567400B2 (en) Attack detection device, attack detection method, and non-transitory computer-readable recording medium
JP4536026B2 (ja) ネットワーク品質測定方法、測定装置及びプログラム
US11088960B2 (en) Information processing apparatus and verification system
JP6455135B2 (ja) パケット抽出装置、パケット抽出プログラムおよびパケット抽出方法
JP5959452B2 (ja) 制御システム
JP6048102B2 (ja) 情報処理システム
US20200296021A1 (en) Analysis apparatus and analysis method
US20160352600A1 (en) Abnormality detection method, abnormality detection device, and network system
JP3866647B2 (ja) パケット損失率測定方法及びシステム
JP2017079412A (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
JP2012222692A (ja) 監視点設定方法及び装置及びプログラム
US20170257299A1 (en) Packet analysis apparatus, packet analysis method, and computer readable storage medium