JP5786733B2 - 監視装置、プログラム及び監視方法 - Google Patents

監視装置、プログラム及び監視方法 Download PDF

Info

Publication number
JP5786733B2
JP5786733B2 JP2012015677A JP2012015677A JP5786733B2 JP 5786733 B2 JP5786733 B2 JP 5786733B2 JP 2012015677 A JP2012015677 A JP 2012015677A JP 2012015677 A JP2012015677 A JP 2012015677A JP 5786733 B2 JP5786733 B2 JP 5786733B2
Authority
JP
Japan
Prior art keywords
packets
segment length
congestion
packet
monitoring
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.)
Expired - Fee Related
Application number
JP2012015677A
Other languages
English (en)
Other versions
JP2013157742A (ja
Inventor
岩倉 廣和
廣和 岩倉
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 JP2012015677A priority Critical patent/JP5786733B2/ja
Publication of JP2013157742A publication Critical patent/JP2013157742A/ja
Application granted granted Critical
Publication of JP5786733B2 publication Critical patent/JP5786733B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、輻輳状態を監視する監視装置、プログラム及び監視方法に関する。
従来、輻輳状態を検知するためや、ネットワークの性能を求めるために、TCPレイヤにおいて、ウィンドウサイズを監視することが行われている(例えば、特許文献1、特許文献2)。
特表2005−533449号公報 特開2000−106557号公報
しかしながら、従来の技術では、送信側装置に受け取れるウィンドウサイズを通知し、受信側装置の輻輳を通知するプロトコルシーケンスは存在するが、送信側装置の輻輳は、受信側装置に通知する必要がないため、プロトコルシーケンスからでは監視できない。
1つの側面では、本発明は、送信側装置の輻輳状態を監視することが可能な監視装置等を提供することを目的とする。
本発明に係る監視装置は、監視対象機器が送信するパケットのセグメント長を取得する取得部と、該取得部が取得したセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出する算出部と、該算出部で算出した比率が、前記パケット数に対応する閾値より大きい場合に通知を行う通知部とを備える。
本願の一実施形態によれば、送信側装置の輻輳状態を監視することが可能となる。
情報処理システムの一例を示す説明図である。 パケットの送信間隔分布の一例を示したグラフである。 CPU使用率と輻輳パケット数の関係の一例を示すグラフである。 監視装置のハードウェア群を示すブロック図である。 コネクション情報テーブルのレコードレイアウトの一例を示す説明図である。 MSSテーブルのレコードレイアウトの一例を示す説明図である。 正常/輻輳パケット数テーブルのレコードレイアウトの一例を示す説明図である。 輻輳判定パラメータテーブルのレコードレイアウトの一例を示す説明図である。 全パケット数と輻輳パケット数との関係の一例を示すグラフである。 全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。 監視処理の手順を示したフローチャートである。 輻輳通知画面の一例を示す画面図である。 輻輳通知画面の一例を示す画面図である。 全パケット数と輻輳パケット数との関係を示すグラフである。 回線速度閾値テーブルのレコードレイアウトの一例を示す説明図である。 ネットワーク帯域テーブルのレコードレイアウトの一例を示す説明図である。 全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。 監視処理の手順を示したフローチャートである。 直前パケット種別テーブルのレコードレイアウトの一例を示す説明図である。 全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。 実施の形態1〜3に係る監視装置の動作を示す機能ブロック図である。 実施の形態4に係る監視装置のハードウェア群を示すブロック図である。
実施の形態1
以下、実施の形態について図面を参照して説明する。図1は情報処理システムの一例を示す説明図である。情報処理システムは監視装置1、複数のサーバコンピュータ2、3、4、スイッチ5及びクライアントコンピュータ6を含む。
スイッチ5は、監視装置1、サーバコンピュータ2、3、4及びクライアントコンピュータ6を互いに接続している。監視装置1は、例えば、サーバコンピュータ又はパーソナルコンピュータである。
サーバコンピュータ2、3、4は、クライアントコンピュータ6から要求をうけて、サービスを提供する。
サービスを提供する為のトランザクションにおいて、サーバコンピュータ2、3、4は、スイッチ5を介してクライアントコンピュータ6とメッセージの送受信を行う。また、サーバコンピュータ間のメッセージ送受信もスイッチ5を介して行われる。このスイッチ5を介して送受信されるメッセージを監視装置1が監視する。スイッチ5は自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
サーバコンピュータ2が接続されたポート、サーバコンピュータ3が接続されたポート、及びサーバコンピュータ4が接続されたポートのミラーリング先として、監視装置1が接続されたポートが指定されている。これにより、各サーバコンピュータ2、3、及び4宛のパケットは宛先となるサーバコンピュータ2、3、及び4に入力されるとともに、監視装置1にも入力される。
監視装置1は、監視対象となるサーバコンピュータ2、3、及び4が送信するパケットのセグメント長を監視することにより、監視対象となるサーバコンピュータ2、3、及び4が輻輳状態であるか否かの判定を行う。サーバコンピュータ2、3、及び4は、監視機器の一例である。
以下、監視対象となるサーバコンピュータ2、3、及び4を、監視対象機器2、3、4と記す。以下の記述においては、主に監視対象機器2に関して、監視装置1が行う処理について示すが、同様な処理を監視対象機器3及び4に関しても、監視装置1が行うものとする。
次に、監視対象機器2が輻輳状態であるか否かの判定手法について説明する。図2はパケットの送信間隔分布の一例を示したグラフである。横軸は経過時間である。単位は秒である。縦軸はパケットの送信間隔である。単位はミリ秒である。
TCP/IP(Transmission ControlProtocol/Internet Protocol)を利用した通信において、アプリケーションレイヤでのメッセージ送信時、IPレイヤでMTU(Max Transfer Unit)の値を超える場合、複数のパケットに分割し、メッセージを送信する。このパケットの分割は、アプリケーションがカーネルに対して、メッセージ単位の送信要求を行った後、カーネル内で分割し送信するため、同一メッセージ内のパケット送信間隔は数マイクロ秒と比較的短い。
一方、TCPレイヤでは、受信可能なセグメントの最大サイズMSS(MaximumSegment Size)をコネクション確立時に相手側に通知し、送信するメッセージをMSSの単位で分割し送信する。図2に示した結果から、セグメント長とパケットの送信間隔との関係が見いだせる。セグメント長がMSSと同じ値のパケット間の送信間隔と、セグメント長がMSSよりも短くなったパケットの次のパケットとの送信間隔とを比較すると、後者の送信間隔の多くが、前者の送信間隔よりも大きくなっている。すなわち、送信間隔が大きくなっているパケットは、セグメント長がMSS以下のものである。MSSは受信可能な最大セグメント長の一例である。
TCPの送信側輻輳制御では、輻輳ウィンドウ(送信側のウィンドウサイズ)と広告ウィンドウ(受信側のバッファ空き容量)を持ち、送信側は2つのウィンドウの小さい方の値を用いてパケット長を定める。送信側のリソースの枯渇、例えば送信バッファが枯渇した場合、送信されるパケット長を短くし、パケットを送信する。したがって、同一メッセージ内のパケットのうち、セグメント長が短くなっているパケット数を監視することで、送信側である監視対象機器2が輻輳状態であるか否かを判定することが可能となる。
図3はCPU使用率と輻輳パケット数の関係の一例を示すグラフである。横軸はCPU使用率であり、単位は%である。縦軸は輻輳パケット数であり、単位は個/分である。図3は、クライアントからサーバに同一量のリクエスト送信の負荷をかけた状態で、CPUに対して負荷を与え、CPU使用率により輻輳パケット数がどのように変化するのかを示している。図3に示すように、CPU使用率が約90%以下では、輻輳パケット数はほぼ一定であるが、90%を超えた場合は急激に増加している。従って、CPU使用率が100%近くに達していることも、輻輳パケット数の増加により検知することが可能である。以下に、輻輳パケット数の増加により、監視対象機器2の輻輳状態を検知する処理について、以下、詳細に説明する。
図4は監視装置1のハードウェア群を示すブロック図である。監視装置1は制御部としてのCPU(Central Processing Unit)11、RAM(RandomAccess Memory)12、記憶部13、時計部14及び通信部15等を含む。CPU11は、バスを介してハードウェア各部と接続されている。CPU11は記憶部13に記憶された制御プログラム13Pに従いハードウェア各部を制御する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
記憶部13は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム13P及びマスタテーブル/データテーブル13Tを格納する。マスタテーブル/データテーブル13Tは、監視対象機器2が送受信したパケットなど関しに必要なデータを格納した複数のテーブルから構成されている。時計部14は現在時刻、または任意の時点を起点とした経過時間をCPU11へ出力する。
通信部15は例えばLAN(Local Area Network)カード等であり、スイッチ5との間で情報の送受信を行う。通信部15は、上述したようにスイッチ5のミラーリング機能を利用するようになっている。通信部15はプロミスキャスモードにより動作する。プロミスキャスモードとは、宛先に関わらず全ての受信パケットを上位レイヤのソフトウェアに渡すモードである。プロミスキャスモードを利用することにより、監視装置1宛ではない監視対象機器2宛のパケットが破棄されず、制御プログラム13Pにて取り込むことが可能となる。
次に、マスタテーブル/データテーブル13Tについて説明する。図5はコネクション情報テーブル131のレコードレイアウトの一例を示す説明図である。コネクション情報テーブル131は、接続先IPアドレス、接続先ポート番号、接続元IPアドレス、接続元ポート番号、コネクション番号等を含む。コネクション番号は、コネクションを特定するための主キーである。接続先IPアドレス、接続先ポート番号、接続元IPアドレス及び接続元ポート番号は、コネクションの確立時にやり取りされるメッセージより取得し、記憶する。接続先IPアドレス及び接続元IPアドレスはIPヘッダより、接続先ポート番号及び接続元ポート番号はTCPヘッダより取得することが可能である。
図6はMSSテーブル132のレコードレイアウトの一例を示す説明図である。MSSテーブル132は、接続先IPアドレス、MSS等を含む。MSSはコネクション確立時にやり取りされるメッセージSYN(SYNchronize)又はSYN ACK(ACKnowledgement)より取得する。MSSは接続先IPアドレス単位に記憶する。
図7は正常/輻輳パケット数テーブル133のレコードレイアウトの一例を示す説明図である。正常/輻輳パケット数テーブル133は、時刻、コネクション番号、正常パケット数、輻輳パケット数等を含む。時刻は単位時間毎である。正常パケット数、輻輳パケット数は単位時間毎に観測されたパケット数をそれぞれ、コネクション番号毎に記憶している。本実施の形態では単位時間は1分としてある。図7に示した例では、12時0分0秒から12時0分59秒の間にコネクション番号1の通信において、正常パケットが500000、輻輳パケットが500観測されたことを示している。上述の単位時間は、所定時間の一例である。また、正常/輻輳パケット数テーブル133に記憶される、輻輳パケット数が正常パケット数に占める割合が、比率の一例である。
図8は輻輳判定パラメータテーブル134のレコードレイアウトの一例を示す説明図である。輻輳判定パラメータテーブル134は、接続先IPアドレス、近似式、信頼区間の上限値95%等を含む。近似式には、正常時(輻輳にならない負荷量)における全パケット数と輻輳パケット数との関係を示す近似式が、接続先IPアドレス毎に記憶している。記憶される近似式は、最小二乗法を用いて求める。式ではなく、傾き及び切片を記憶することとしても良い。上限値95%は、信頼区間の上限値95%の係数が記憶される。
図9は全パケット数と輻輳パケット数との関係の一例を示すグラフである。実線が最小二乗法で求めた近似式(y=kx+c)をグラフとして表したものである。点線は信頼区間の上限95%をグラフとして表したものである。係数をαとしたとき、上限95%のグラフの切片はc+αである。監視装置1は全パケット数と輻輳パケット数との関係を監視し、上限95%より上の領域となった場合に、監視対象機器2が輻輳状態であると検知する。図9に示すグラフより求まる全体パケット数と輻輳パケット数との比率が、閾値の一例である。
次に全パケット数及び輻輳パケット数の観測方法について、説明する。図10は全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。監視装置1のCPU11は、通信部15がパケットを受信したか否かを監視する(ステップS1)。受信していない場合(ステップS1でNO)、CPU11は処理をステップS1に移行させる。受信した場合(ステップS1でYES)、CPU11は処理をステップS2に移行させる。CPU11はコネクション情報を取得する(ステップS2)。CPU11は受信パケットのIPヘッダから送信元IPアドレス及び送信先IPアドレスを、TCPヘッダから送信元ポート番号及び送信先ポート番号を取得する。CPU11はコネクション情報テーブル131を検索する(ステップS3)。取得したコネクション情報が検索にヒットしたかを調べる(ステップS4)。検索がヒットした場合、すなわち、取得したコネクション情報が登録されている場合(ステップS4でYES)、CPU11は上りと判定する(ステップS5)。上りの場合は何もせずに処理を終了する。
検索がヒットしない場合、すなわち、取得したコネクション情報が登録されていない場合(ステップS4でNO)、CPU11は、送信元IPアドレスと送信先IPアドレスとを、送信元ポート番号と送信先ポート番号とを、それぞれ入れ替えて、再度、コネクション情報テーブル131を検索する(ステップS6)。検索がヒットしたかを調べる(ステップS7)。検索がヒットした場合(ステップS7でYES)、CPU11は、コネクション番号を取得しておく。検索がヒットした場合、下りであるので、CPU11はセグメント長を取得する(ステップS8)。CPU11はセグメント長とMSSとを比較する(ステップS9)。CPU11は、送信元IPアドレスをキーにMSSテーブル132を検索し、MSSを取得する。セグメント長がMSSより小さい場合(ステップS9でYES)、CPU11は輻輳パケット数を1加算する。CPU11は、正常/輻輳パケット数テーブル133のコネクション番号に対応した輻輳パケット数欄の値を1加算する(ステップS10)。コネクション番号に対応したレコードが正常/輻輳パケット数テーブル133に存在しない場合、CPU11は、正常/輻輳パケット数テーブル133にレコードを追加する。CPU11は処理を終了する。セグメント長がMSSと等しい場合(ステップS9でNO)、CPU11は正常パケット数を1加算する。CPU11は、正常/輻輳パケット数テーブル133のコネクション番号に対応した正常パケット数欄の値を1加算する(ステップS11)。CPU11は処理を終了する。なお、正常パケット数、輻輳パケット数は時計部14より取得した時刻と対応付けて、正常/輻輳パケット数テーブル133に記憶する。正常/輻輳パケット数テーブル133に記憶される、単位時間毎の輻輳パケット数は、最大セグメント長より短いセグメント長を持つパケットの所定時間内の数の一例である。正常パケット数と輻輳パケット数とを合計した値は、監視対象機器が送信したパケット数の一例である。
検索がヒットしなかった場合(ステップS7でNO)、CPU11はパケットがコネクション確立メッセージであるか否かを調べる(ステップS12)。CUP11はTCPヘッダのSYNフラグ、ACKフラグを参照する。コネクション確立メッセージではない場合(ステップS12でNO)、処理対象のパケットではないので、CPU11は処理を終了する。コネクション確立メッセージの場合(ステップS12でYES)、CPU11は、コネクション接続確認を行う(ステップS13)。
SYNパケット(SYNフラグ=1、ACKフラグ=0)の場合は、CPU11は、IPヘッダから送信元IPアドレス、送信先IPアドレスを取得する。CPU11は、TCPヘッダから送信元ポート番号、送信先ポート番号を取得する。CPU11は、取得した送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号をRAM12などの記憶部に記憶しておく。
SYN/ACKパケット(SYNフラグ=1、ACKフラグ≠0)の場合、CPU11はIPヘッダから、送信元IPアドレス、及びウィンドウサイズ、すなわち、サーバのMSSを取得する。CPU11は取得したMSSをサーバのIPアドレス(送信元IPアドレス)と対応付けて、MSSテーブル132に記憶する。MSSテーブル132にすでにレコードが存在する場合、CPU11はMSSの値を上書きし、存在しない場合、CPU11は新たなレコードをMSSテーブル132に追加する。
ACKパケット(SYNフラグ=0、ACKフラグ≠0)の場合、CPU11は、IPヘッダから送信元IPアドレス、送信先IPアドレスを、TCPヘッダから送信元ポート番号、送信先ポート番号を取得する。CPU11は、取得した送信元IPアドレス、送信先IPアドレス、送信元ポート番号、及び送信先ポート番号それぞれが、RAM12等に記憶してあるSYNパケット受信時の送信元IPアドレス、送信先IPアドレス、送信元ポート番号、及び送信先ポート番号と一致することを確認し、コネクションが確立されたことを確認する。
コネクションが確立されたので、CPU11はコネクション情報の設定を行う(ステップS14)。CPU11はコネクション情報テーブル131にレコードを追加する。CPU11はキーとなるコネクション番号を発番する。CPU11は発番したコネクション番号、取得した送信元IPアドレス、送信先IPアドレス、送信元ポート番号、及び送信先ポート番号を対応付けてコネクション情報テーブル131に記憶する。
監視対象機器2の監視を行う前に、輻輳にならない負荷量、すなわち正常状態において、上述の観測処理を行い、正常パケット数と輻輳パケット数を観測する。観測処理後に、接続先IPアドレス(監視対象機器2、3、及び4のIPアドレス)毎に、最小二乗法を用いて、全パケット数(正常パケット数+輻輳パケット数)と輻輳パケット数との関係を示す近似式を求める。また近似式の信頼区間の上限値95%を求める。求めた近似式及び信頼区間の上限値95%は、輻輳判定パラメータテーブル134に接続先IPアドレスと対応付けて記憶する。
次に監視対象機器2の監視処理の手順について説明する。図11は監視処理の手順を示したフローチャートである。図11に示す監視処理とは別に、上述した図10の処理が行われ、所定時間単位、例えば1分単位で、接続先IPアドレス(監視対象機器2、3、及び4)毎に正常パケット数と輻輳パケット数が正常/輻輳パケット数テーブル133に記憶されている。CPU11は、監視対象機器2に対応付けられた最新の正常パケット数、輻輳パケット数を正常/輻輳パケット数テーブル133より読み出す(ステップS21)。CPU11は、監視対象機器2に対応した近似式と信頼区間の上限値95%を輻輳判定パラメータテーブル134より取得し、先に取得した正常パケット数と、近似式と信頼区間の上限値95%より、輻輳パケット数を算出する(ステップS22)。
CPU11は、ステップS21で取得した輻輳パケット数とステップS22で算出した輻輳パケット数を比較する(ステップS23)。取得した輻輳パケット数が算出した輻輳パケット数より大きい場合(ステップS23でYES)、CPU11は輻輳を、管理者に通知する。通知は、監視装置1に接続されたモニタに表示することや、指定された電子メールアドレスに電子メールを送信するなどにより行う。上述では、観測した輻輳パケット数と算出した輻輳パケット数とを比較しているが、輻輳パケット数が全体パケット数に占める比率を算出して、比較しても良い。
図12及び図13は輻輳通知画面の一例を示す画面図である。図12に示すウィンドウW1では一覧表により輻輳状態となった監視対象機器2を表示している。欄C1は輻輳状態となった監視対象機器2のIPアドレスを表示し、欄C2は輻輳状態が観測された時間が表示されている。管理者が、マウスポインタMpを欄C1又は欄C2に移動し、クリック又はダブルクリックなどの操作をした場合に、CPU11が図13に示す画面を表示するようにしても良い。図13に示すウィンドウW2では、正常状態における全パケット数と輻輳パケット数との関係を示す近似式G1及び信頼区間の上限値95%G2をグラフで示すと共に、輻輳状態として観測された点Pを示している。管理者は、この画面を参照することにより、輻輳状態の程度を視覚的に判断することが可能となる。上述のウィンドウW1またはW2は通知の一例である。
取得した輻輳パケット数が算出した輻輳パケット数以下の場合(ステップS23でNO)、CPU11は処理をステップS25に移行させる。CPU11はすべての監視対象機器2、3、及び4について処理したかを判定する(ステップS25)。すべての監視対象機器2、3、及び4についての処理が終了している場合(ステップS25でYES)、CPU11は処理を終了する。未処理の監視対象機器がある場合(ステップS25でNO)、CPU11は処理をステップS21へ戻す。
以上のように、本実施の形態では、監視対象機器2の送信する全パケットのうち、セグメント長がMSSよりも小さい輻輳パケットの割合を観測する。観測した割合が正常時の割合より増加していることを検出することにより、データ送信側であるサーバの輻輳状態を検出することが可能となる。
実施の形態2
実施の形態2では、ネットワーク回線の輻輳も考慮し、より正確に監視対象機器2の輻輳状態を検出する。図14は、全パケット数と輻輳パケット数との関係を示すグラフである。横軸は全パケット数であり、縦軸は輻輳パケット数である。単位は共に個/分である。クライアントから監視対象機器2へのリクエスト送信を徐々に増加させる負荷をかけ、正常パケット数と輻輳パケット数の観測を行った。その観測結果に基づいて、全パケット数と輻輳パケット数との関係をグラフにて示したものである。図14に示すように、全パケット数が310万パケットの時(点線)、ネットワーク帯域が900Mbps(最大回線速度の9割)以上になり、回線速度の物理的な限界(1Gbps)に達する。この時、サーバ側でデータの送信待ち状態が多発するため、送信バッファのリソース不足が発生し、輻輳パケットが急激に増加している。ネットワーク回線の使用帯域が最大回線速度の9割以上になった場合には、ネットワーク回線の輻輳によりサーバが輻輳状態となることが分かる。そこで、本実施の形態においてはネットワーク回線の使用帯域も測定し、CPUの輻輳とネットワーク回線の輻輳とを切り分けることとする。そのため、監視に先立ち、監視対象機器2の物理的な回線速度を測定する。測定した回線速度を元に回線が輻輳状態であることを判定するための閾値を決定し、記憶する。
図15は回線速度閾値テーブル135のレコードレイアウトの一例を示す説明図である。回線速度閾値テーブル135は、接続先IPアドレス(監視対象機器2、3、及び4のIPアドレス)、回線速度閾値などを含む。回線速度閾値は上述したように監視を行う前に、回線速度を測定し、最大速度の9割程度の値を設定する。
図16はネットワーク帯域テーブル136のレコードレイアウトの一例を示す説明図である。ネットワーク帯域テーブル136は、時刻、コネクション番号、バイト数等を含む。時刻は単位時間毎である。例えば、1分毎とする。バイト数は、単位時間内に送信された下りパケットのパケット長をコネクション番号毎に加算したものである。
図17は全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。図10に示した処理手順とほぼ同じであり、異なるのはステップS15が追加されている点である。以下、ステップS15について主に説明する。CPU11は下りパケットを受信した場合、パケット長を測定する。CPU11は測定時刻、コネクション番号と対応付けて、ネットワーク帯域テーブル136にパケット長を記憶する(ステップS15)。すでにレコードがある場合、CPU11は受信したパケット長を記憶している値に1加算する。レコードがない場合、CPU11はネットワーク帯域テーブル136にレコードを追加し、パケット長を記憶する。この処理により、監視対象機器毎、単位時間毎に送信されたデータのバイト数が記憶される。
図18は監視処理の手順を示したフローチャートである。図11に示した処理手順とほぼ同じであるので、異なる点を主に説明する。CPU11はステップS21で取得した輻輳パケット数とステップS22で算出した輻輳パケット数を比較する(ステップS23)。取得した輻輳パケット数が算出した輻輳パケット数より大きい場合(ステップS23でYES)、CPU11は回線速度と閾値を比較する(ステップS26)。回線速度(通信速度)は、ネットワーク帯域テーブル136に記憶されている単位時間毎の送信バイト数から算出する。閾値は回線速度閾値テーブルより対象となっている監視対象機器2の閾値を読み出す。算出した回線速度が閾値以下の場合(ステップS26でYES)、CPU11は、CPUの輻輳を通知する(ステップS241)。算出した回線速度が閾値より大きい場合(ステップS26でNO)、CPU11は、回線の輻輳を通知する(ステップS242)。CPU11は、処理をステップS25に移行させる。CPU11はすべての監視対象機器2、3、及び4について処理したかを判定する(ステップS25)。すべての監視対象機器2、3、及び4について処理している場合(ステップS25でYES)、CPU11は処理を終了する。未処理の監視対象機器がある場合(ステップS25でNO)、CPU11は処理をステップS21へ戻す。
以上のように、本実施の形態では、監視対象機器2の送信する全パケットのうち、セグメント長がMSSよりも小さい輻輳パケットの割合を観測する。また、監視対象機器2の回線速度も併せて観測する。観測した輻輳パケットの割合が正常時の割合より増加していることを検出した場合、観測した回線速度と回線速度閾値とを比較し、回線が輻輳状態であるか否かを判定する。それにより、輻輳パケット増加の要因が、監視対象機器2のCPUによる輻輳であるのか、或いは回線の輻輳であるのかを判定することが可能となる。したがって、データ送信側である監視対象機器2の輻輳状態をより適切に検出することが可能となる。
実施の形態3
上述の実施の形態1又は実施の形態2においては、MSSよりも小さいパケットを全て輻輳パケットとして扱った。しかしながら、TCPレイヤでは送信側の輻輳制御以外に受信側の輻輳制御(TCP Window Update、TCP Zero Window)でセグメント長が短くなる場合も存在する。ここで、TCP Window Updateとはウィンドウサイズを変更するACKパケット、TCP Zero Windowとはウィンドウサイズを0に変更することにより、送信側からのパケットを一時的に停止させるACKパケットである。受信側の輻輳制御の場合、ウィンドウサイズが変化し、TCPの確認応答メッセージ(ACK)の直前の送信パケットのセグメント長がMSSよりも短くなる。従って、ACKを検出し、その直前のパケットがMSSより小さくても輻輳パケットから除外する事とする。それにより、送信側(監視対象機器2側)の輻輳制御でセグメント長が短くなっているパケットだけを検出することが可能となる。上述のACKパケットは、応答確認メッセージの一例である。
図19は直前パケット種別テーブル137のレコードレイアウトの一例を示す説明図である。直前パケット種別テーブル137は、コネクション番号、パケット種別などを含む。コネクション番号は、コネクション情報テーブル131に設定されているコネクション番号が記憶される。直前パケット種別は、監視対象機器2が送信した最新パケットの種別を記憶している。
図20は全パケット数及び輻輳パケット数の観測処理の手順を示すフローチャートである。ここでは、上述の図17と異なる点を主に説明する。下りパケットを受信した場合の処理には、ステップS16及びステップS17が追加されている。上りパケットを受信した場合の処理には、ステップS18からS21が追加されている。CPU11は監視対象機器2が送信したパケット(下りパケット)のセグメント長をMSSと比較する(ステップS9)。セグメント長がMSSより小さい場合(ステップS9でYES)、CPU11は輻輳パケット数を1加算する(ステップS10)。CPU11は直前パケット種別テーブル137にパケット種別「輻輳」をコネクション番号と対応付けて記憶する(ステップS16)。CPU11は、コネクション番号に対応するレコードがある場合、レコードを上書きし、ない場合、直前パケット種別テーブル137にレコードを追加し、パケット種別「輻輳」を記憶する。セグメント長がMSS以上の場合(ステップS9でNO)、CPU11は正常パケット数を1加算する(ステップS11)。CPU11は直前パケット種別テーブル137にパケット種別「正常」をコネクション番号と対応付けて記憶する(ステップS17)。CPU11は、コネクション番号に対応するレコードがある場合、レコードを上書きし、ない場合、直前パケット種別テーブル137にレコードを追加し、パケット種別「正常」を記憶する。
CPU11はパケット種別が上りと判定した後、ACKビットがあるか否かを調べる(ステップS18)。ACKビットがない場合(ステップS18でなし)、CPU11は処理を終了する。ACKビットがある場合(ステップS18であり)、CPU11は直前パケット種別テーブルから、コネクション番号に対応したパケット種別を読み出す(ステップS19)。パケット種別が輻輳の場合(ステップS19で輻輳)、CPU11は正常/輻輳パケット数テーブル133のコネクション番号に対応したレコードの輻輳パケット数を1減算する(ステップS20)。パケット種別が正常の場合(ステップS19で正常)、CPU11は正常/輻輳パケット数テーブル133のコネクション番号に対応したレコードの正常パケット数を1減算する(ステップS21)。CPU11は処理を終了する。以上の処理により、受信側輻輳制御によりセグメント長が変化したパケットを除外することが可能となる。
監視対象機器2が輻輳状態であるか否かの判定については、実施の形態1又は実施の形態2と同様であるので、説明を省略する。
上述のように、実施の形態3においては、受信側の輻輳制御によりセグメント長が変化したパケットを除外して、正常パケット数及び輻輳パケット数を観測するので、監視対象機器2が輻輳状態であるか否かの判定をより正確に行うことが可能となる。
実施の形態4
図21は実施の形態1〜3に係る監視装置1の動作を示す機能ブロック図である。CPU11が制御プログラム13P等を実行することにより、監視装置1は以下のように動作する。取得部201は、監視対象機器2の送信するパケットのセグメント長を取得する。算出部202は、取得部201が取得したセグメント長、及び予め取得した監視対象機器2の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器2が送信したパケット数に占める比率を算出する。通知部203は、算出部202で算出した比率が、前記パケット数に対応する閾値より大きい場合に通知を行う。
検出部204は、監視対象機器2が確認応答メッセージを受信したことを検出する。算出部202は、また、検出部204が確認応答メッセージの受信を検出した場合、その直前に監視対象機器2が送信したパケットを比率の算出対象から除外する。
測定部205は、監視対象機器2の通信速度を測定する。回線判定部206は、測定部205が測定した通信速度、及び前記監視対象機器が使用するネットワーク回線の回線速度を比較し、前記ネットワーク回線が輻輳状態であるか否かを判定する。通知部203は、また、回線判定部206の判定結果に基づいて、通知内容を決定する。
図22は実施の形態4に係る監視装置1のハードウェア群を示すブロック図である。監視装置1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD−ROM、DVD(Digital Versatile Disc)ディスク、メモリカード、またはUSB(UniversalSerial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部13に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bを監視装置1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図22に示す監視装置1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網を介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム13Pとしてインストールされ、RAM12にロードして実行される。これにより、上述した監視装置1として機能する。
本実施の形態4は以上の如きであり、その他は実施の形態1から3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
なお、上述した実施の形態1乃至4において、マスタテーブル/データテーブル13Tは、監視装置1の記憶部13に記憶されているものとしたが、それに限らず、外部記憶装置に記憶しておき、外部記憶装置から直接又はネットワークを介してデータの読み出しや書き込みを行うこととしても良い。
上述した実施の形態1乃至4において、輻輳状態であるか否かの判定基準となる輻輳パケット数を、その都度、近似式と信頼区間の上限値95%より求めたが、それに限られるものではない。全パケット数として複数の値を定め、全パケット数それぞれに対応した基準の輻輳パケット数を予め計算しておき、計算した輻輳パケット数を全パケット数と対応付けて記憶部13等に記憶しておいても良い。また、人が経験に基づき、全パケット数に対応した輻輳パケット数を設定しても良い。
さらにまた、輻輳状態であるか否かの判定基準となる輻輳パケット数は監視対象機器毎に定めることとしているが、監視対象機器間に性能の優位差がない場合は、共通な近似式と信頼区間の上限値95%等を用いても良い。
また、上述した実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態1乃至4を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
監視対象機器が送信するパケットのセグメント長を取得する取得部と、
該取得部が取得したセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出する算出部と、
該算出部で算出した比率が、前記パケット数に対応する閾値より大きい場合に通知を行う通知部と
を備える監視装置。
(付記2)
前記監視対象機器の通信速度を測定する測定部と、
該測定部が測定した通信速度、及び前記監視対象機器が使用するネットワーク回線の回線速度を比較し、前記ネットワーク回線が輻輳状態であるか否かを判定する回線判定部をさらに備え、
前記通知部は、前記回線判定部の判定結果に基づいて、通知内容を決定する
付記1に記載の監視装置。
(付記3)
送信したパケットの到達を確認したことを示す確認応答メッセージを、前記監視対象機器が受信したことを検出する検出部をさらに備え、
該検出部が前記確認応答メッセージの受信を検出した場合、前記算出部は、前記確認応答メッセージの受信直前に前記監視対象機器が送信したパケットを前記比率の算出対象から除外する
付記1又は2に記載の監視装置。
(付記4)
監視対象機器の送信するパケットのセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、
前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出し、
算出した比率が、前記パケット数に対応する閾値より大きい場合に、通知をする
処理をコンピュータに実行させるプログラム。
(付記5)
前記監視対象機器の通信速度を測定し、
測定した通信速度、及び前記監視対象機器が使用するネットワーク回線の回線速度を比較し、
前記ネットワーク回線が輻輳状態であるか否かを判定し、
判定結果に基づいて、通知内容を決定する
付記4に記載のプログラム。
(付記6)
送信したパケットの到達を確認したことを示す確認応答メッセージを、前記監視対象機器が受信したことを検出し、
前記監視対象機器が前記確認応答メッセージの受信直前に送信したパケットを前記比率の算出対象から除外する
付記4又は5に記載のプログラム。
(付記7)
コンピュータによって実行される監視方法であって、
監視対象機器の送信するパケットのセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出し、
算出した比率が、前記パケット数に対応する閾値より大きい場合に、通知する
監視方法。
(付記8)
前記監視対象機器の通信速度を測定し、
測定した通信速度、及び前記監視対象機器が使用するネットワーク回線の回線速度を比較し、
前記ネットワーク回線が輻輳状態であるか否かを判定し、
判定結果に基づいて、通知内容を決定する
付記7に記載の方法。
(付記9)
送信したパケットの到達を確認したことを示す確認応答メッセージを、前記監視対象機器が受信したことを検出し、
前記監視対象機器が前記確認応答メッセージの受信直前に送信したパケットを前記比率の算出対象から除外する
付記7又は8に記載の方法。
1 監視装置
11 CPU
12 RAM
13 記憶部
13P 制御プログラム
13T マスタテーブル/データテーブル
131 コネクション情報テーブル
132 MSSテーブル
133 正常/輻輳パケット数テーブル
134 輻輳判定パラメータテーブル
135 回線速度閾値テーブル
136 ネットワーク帯域テーブル
137 直前パケット種別テーブル
14 時計部
15 通信部
2、3、4 サーバコンピュータ(監視対象機器)
5 スイッチ
6 クライアント

Claims (5)

  1. 監視対象機器が送信するパケットのセグメント長を取得する取得部と、
    該取得部が取得したセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出する算出部と、
    該算出部で算出した比率が、前記パケット数に対応する閾値より大きい場合に通知を行う通知部と
    を備える監視装置。
  2. 前記監視対象機器の通信速度を測定する測定部と、
    該測定部が測定した通信速度、及び前記監視対象機器が使用するネットワーク回線の回線速度を比較し、前記ネットワーク回線が輻輳状態であるか否かを判定する回線判定部をさらに備え、
    前記通知部は、前記回線判定部の判定結果に基づいて、通知内容を決定する
    請求項1に記載の監視装置。
  3. 送信したパケットの到達を確認したことを示す確認応答メッセージを、前記監視対象機器が受信したことを検出する検出部をさらに備え、
    該検出部が前記確認応答メッセージの受信を検出した場合、前記算出部は、前記確認応答メッセージの受信直前に前記監視対象機器が送信したパケットを前記比率の算出対象から除外する
    請求項1又は2に記載の監視装置。
  4. 監視対象機器の送信するパケットのセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、
    前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出し、
    算出した比率が、前記パケット数に対応する閾値より大きい場合に、通知をする
    処理をコンピュータに実行させるプログラム。
  5. コンピュータによって実行される監視方法であって、
    監視対象機器の送信するパケットのセグメント長、及び予め取得した監視対象機器の受信可能な最大セグメント長を比較し、前記最大セグメント長より短いセグメント長を持つパケットの所定時間内の数が、前記所定時間内に前記監視対象機器が送信したパケット数に占める比率を算出し、
    算出した比率が、前記パケット数に対応する閾値より大きい場合に、通知する
    監視方法。
JP2012015677A 2012-01-27 2012-01-27 監視装置、プログラム及び監視方法 Expired - Fee Related JP5786733B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012015677A JP5786733B2 (ja) 2012-01-27 2012-01-27 監視装置、プログラム及び監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012015677A JP5786733B2 (ja) 2012-01-27 2012-01-27 監視装置、プログラム及び監視方法

Publications (2)

Publication Number Publication Date
JP2013157742A JP2013157742A (ja) 2013-08-15
JP5786733B2 true JP5786733B2 (ja) 2015-09-30

Family

ID=49052564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012015677A Expired - Fee Related JP5786733B2 (ja) 2012-01-27 2012-01-27 監視装置、プログラム及び監視方法

Country Status (1)

Country Link
JP (1) JP5786733B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108513166B (zh) * 2018-03-01 2020-06-16 世纪龙信息网络有限责任公司 视频时长统计方法、装置及计算机设备
JP6927155B2 (ja) * 2018-05-30 2021-08-25 日本電信電話株式会社 異常検出装置、異常検出方法および異常検出プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002314594A (ja) * 2001-04-19 2002-10-25 Nippon Telegr & Teleph Corp <Ntt> 通信処理方法及びその実施システム並びにその処理プログラムと記録媒体
EP1588526A1 (en) * 2003-01-28 2005-10-26 Telefonaktiebolaget LM Ericsson (publ) Method and device for congestion notification in packet networks indicating several different congestion causes
US20070091922A1 (en) * 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee

Also Published As

Publication number Publication date
JP2013157742A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
US10212063B2 (en) Network aware distributed business transaction anomaly detection
JP4058038B2 (ja) 負荷監視装置および負荷監視方法
CN109787859B (zh) 基于网络拥塞探测的智能限速方法、装置及存储介质
JP5732767B2 (ja) 処理装置,処理方法,処理用プログラム,同プログラムを記録したコンピュータ読取可能な記録媒体
EP2808795A2 (en) Apparatus and method for monitoring a computer system
CN107040494B (zh) 用户账号异常防范方法和系统
US9055095B2 (en) DOS detection and mitigation in a load balancer
US9921902B2 (en) System and method for providing a watchdog timer to enable collection of crash data
WO2018094654A1 (zh) 一种vpn传输隧道调度方法、装置以及vpn客户端服务器
US9503506B2 (en) Transit-mode-based webpage accessing method, system, and crawler route server
JP2007221207A (ja) 管理装置及び通信システム
JP2011154483A (ja) 異常検出装置、プログラム、及び異常検出方法
US20170126789A1 (en) Automatic Software Controller Configuration based on Application and Network Data
KR102469441B1 (ko) 가상 게이트웨이 클러스터 전역 장애에 대한 모니터링 방법 및 장치
US9253669B2 (en) Network analysis method, information processing device, and computer-readable recording medium
US20140173090A1 (en) Method and system for detecting network topology change
KR20140098390A (ko) 네트워크 시스템의 공격 탐지 장치 및 방법
JP5786733B2 (ja) 監視装置、プログラム及び監視方法
US10033489B1 (en) Managing communications based on network conditions
CN101547157B (zh) 一种过载检测的方法、装置及系统
JP2016181745A (ja) 無線端末、プログラム及び通信ログ取得方法
JP2014057170A (ja) 転送装置、転送方法および転送プログラム
JP5677524B2 (ja) 通信制御装置、通信制御システム及び通信制御方法
CN111163160A (zh) 一种会话表项的保活方法及系统
JP4909830B2 (ja) サーバアプリケーション監視システム及び監視方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150713

R150 Certificate of patent or registration of utility model

Ref document number: 5786733

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees