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

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

Info

Publication number
JP2018137590A
JP2018137590A JP2017030393A JP2017030393A JP2018137590A JP 2018137590 A JP2018137590 A JP 2018137590A JP 2017030393 A JP2017030393 A JP 2017030393A JP 2017030393 A JP2017030393 A JP 2017030393A JP 2018137590 A JP2018137590 A JP 2018137590A
Authority
JP
Japan
Prior art keywords
connection
packet
packet analysis
connections
record
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
JP2017030393A
Other languages
English (en)
Inventor
岡田 純代
Sumiyo Okada
純代 岡田
祐士 野村
Yuji Nomura
祐士 野村
飯塚 史之
Fumiyuki Iizuka
史之 飯塚
岩倉 廣和
Hirokazu Iwakura
廣和 岩倉
尚義 大川
Naoyoshi Okawa
尚義 大川
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 JP2017030393A priority Critical patent/JP2018137590A/ja
Publication of JP2018137590A publication Critical patent/JP2018137590A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ユーザが体感する通信品質の解析精度の向上を図ること。【解決手段】パケット解析装置100は、ネットワーク上で通信された複数のパケットをコネクションごとに分類する。パケット解析装置100は、分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションとコネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定する。パケット解析装置100は、複数のパケットのうち、特定した複数のコネクションと複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析する。【選択図】図1

Description

本発明は、パケット解析プログラム、パケット解析方法、およびパケット解析装置に関する。
従来、解析装置が、ミラーリングを用いてクライアント装置とサーバ装置との間を流れるパケットをキャプチャして蓄積し、蓄積したパケットに基づいてクライアント装置とサーバ装置との間の通信品質を解析する技術がある。
先行技術としては、例えば、第1メッセージと第2メッセージとの組ごとに、第1メッセージおよび第2メッセージそれぞれの受信時刻とサイズと送信元情報と送信先情報と、を対応付けた履歴情報から、いずれかの組を削除するものがある。また、例えば、ユーザの通信品質についての記憶性と通信行動との対応関係を分析する技術がある。また、例えば、トランザクションモデルに合致するプロトコルログによりトランザクションの処理状態を分析する技術がある。
特開2016−146588号公報 特開2016−092583号公報 特開2006−011683号公報
しかしながら、蓄積したパケットにはユーザの操作入力とは無関係なパケットも含まれているため、従来技術ではユーザが体感する通信品質を精度よく解析することが難しい。
1つの側面では、本発明は、ユーザが体感する通信品質の解析精度の向上を図ることができるパケット解析プログラム、パケット解析方法、およびパケット解析装置を提供することを目的とする。
1つの実施態様によれば、ネットワーク上で通信された複数のパケットをコネクションごとに分類し、分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクション、およびコネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定し、前記複数のパケットのうち、特定した前記複数のコネクション、および特定した前記複数のコネクショングループにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析するパケット解析プログラム、パケット解析方法、およびパケット解析装置が提案される。
本発明の一態様によれば、ユーザが体感する通信品質の解析精度の向上を図ることができるという効果を奏する。
図1は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。 図2は、パケット解析システム200の一例を示す説明図である。 図3は、パケット解析装置100のハードウェア構成例を示すブロック図である。 図4は、パケット解析装置100の機能的構成例を示すブロック図である。 図5は、コネクション開始時刻に周期性を有する複数のコネクションの一例を示す説明図である。 図6は、コネクション開始時刻に周期性を有する複数のコネクションの具体例を示す説明図である。 図7は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その1)である。 図8は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その2)である。 図9は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その3)である。 図10は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その4)である。 図11は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その5)である。 図12は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その6)である。 図13は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図(その7)である。 図14は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの一例を示す説明図である。 図15は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの具体例を示す説明図である。 図16は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その1)である。 図17は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その2)である。 図18は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その3)である。 図19は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その4)である。 図20は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その5)である。 図21は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その6)である。 図22は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その7)である。 図23は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その8)である。 図24は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その9)である。 図25は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図(その10)である。 図26は、パケット解析装置100の出力例を示す説明図である。 図27は、解析処理手順の一例を示すフローチャート(その1)である。 図28は、解析処理手順の一例を示すフローチャート(その2)である。
以下に、図面を参照して、本発明にかかるパケット解析プログラム、パケット解析方法、およびパケット解析装置の実施の形態を詳細に説明する。
(実施の形態にかかるパケット解析方法の一実施例)
図1は、実施の形態にかかるパケット解析方法の一実施例を示す説明図である。パケット解析装置100は、クライアント装置110とサーバ装置120との間を流れる複数のパケットに基づいて、クライアント装置110のユーザが体感する通信品質を解析するコンピュータである。クライアント装置110は、サーバ装置120が提供するサービスを利用するコンピュータである。サーバ装置120は、サービスを提供するコンピュータである。
サービスは、クライアント装置110とサーバ装置120との間にコネクションを生成し、クライアント装置110との間でパケットを送受信する何らかの機能である。サービスは、例えば、メールサーバの機能である。サービスは、例えば、サーバIPアドレス、サーバポート番号、クライアントIPアドレスの組み合わせで表現されるサービス特定情報で特定される。
蓄積されたパケットには、例えば、クライアント装置110のユーザの操作入力に応じて、クライアント装置110とサーバ装置120との間に生成されたコネクションにおいて送受信されたパケットが含まれる。このコネクションにおける応答時間が長いほど、ユーザの待ち時間が長くなり、ユーザが体感する通信品質は低下してしまう傾向がある。
例えば、ユーザが、クライアント装置110において受信メールの問い合わせボタンをクリックする場合がある。この場合、クライアント装置110と、メールサーバの機能を有するサーバ装置120との間にコネクションが生成される。このコネクションにおける応答時間が長くなると、受信メールの問い合わせ結果をユーザが参照可能になるまでにかかる待ち時間が長くなり、ユーザが体感する通信品質は低下してしまう。
また、蓄積されたパケットには、バックグラウンドにおいて、クライアント装置110とサーバ装置120との間に生成されたコネクションにおいて送受信された、ユーザの操作入力とは無関係なパケットが含まれる。このコネクションにおける応答時間が長くても、ユーザが体感する実際の通信品質は変化しない。
例えば、クライアント装置110が、メールサーバの機能を有するサーバ装置120に、定期的に受信メールの問い合わせを行う場合がある。この場合、クライアント装置110と、サーバ装置120との間に、ユーザが関与せずにコネクションが生成される。このコネクションにおける応答時間が長くなっても、ユーザが体感する実際の通信品質は低下しない。
上記の通り、蓄積したパケットには、ユーザの操作入力に関係するパケットとユーザの操作入力とは無関係なパケットとが含まれており、従来では、ユーザが体感する応答時間を解析する際に、ユーザの操作入力とは無関係なパケットも用いてしまう。このため、ユーザの操作入力とは無関係なパケットの応答時間が長くなったときに、解析して得られたユーザが体感する応答時間が、実際のユーザが体感する応答時間よりも長くなってしまうという問題がある。
これに対し、ユーザの操作入力と関係するパケットと、ユーザの操作入力とは無関係なパケットとを区別するためのルールを作成しておき、そのルールに基づいてパケットを識別したうえで、ユーザが体感する通信品質を解析する場合が考えられる。しかしながら、ネットワークの管理者に、予めルールを作成する負担をかけることになる。また、ネットワークの管理者に、クライアント装置110、サーバ装置120、ネットワークの状況に応じて、ルールを更新する負担をかけることになる。
ユーザが体感する通信品質を解析する他の方法として、アプリケーションレイヤであるレイヤ7について解析することにより、ユーザが体感する通信品質を解析する場合が考えられる。しかしながら、通信が暗号化されていると、レイヤ7について解析することができず、ユーザが体感する通信品質を解析することができない場合がある。
ユーザが体感する通信品質を解析する他の方法として、サーバ装置120のログ情報を収集し、収集したログ情報に基づいてユーザが体感する通信品質を解析する場合が考えられる。しかしながら、サーバ装置120が複数あったり、サーバ装置120が提供するサービスが複数あったりすると、ユーザが体感する通信品質の解析にかかる処理負担の増大化を招いてしまう。サービスごとに解析方法が異なると、さらに、ユーザが体感する通信品質の解析にかかる処理負担の増大化を招いてしまう。また、規約上、サーバ装置120のログ情報を収集することができない場合がある。
そこで、本実施の形態では、コネクションの生成タイミングに基づき、ユーザが体感する通信品質の解析に用いることが好ましくないパケットを除外することができるパケット解析方法について説明する。これによれば、パケット解析方法は、ユーザが体感する通信品質の解析精度の向上を図ることができる。
図1の例では、サーバ装置120のサービス1,2は、ユーザの操作入力に応じて、クライアント装置110とサーバ装置120との間にコネクションを生成し、ユーザの操作入力に対する応答をクライアント装置110に出力する機能であるとする。換言すれば、サービス1,2が生成したコネクションにおけるパケットは、ユーザが体感する通信品質解析に好ましいパケットである。
また、サーバ装置120のサービス3,4は、ユーザの操作入力によらず、一定時間ごとにクライアント装置110とサーバ装置120との間にコネクションを生成し、クライアント装置110と通信する機能であるとする。換言すれば、サーバ装置120のサービス3,4が生成したコネクションにおけるパケットは、ユーザが体感する通信品質解析に好ましくないパケットである。
パケット解析装置100は、ネットワーク上で通信された複数のパケットをコネクションごとに分類する。パケット解析装置100は、例えば、クライアント装置110と、サーバ装置120Aやサーバ装置120Bやサーバ装置120Cなどを接続するネットワーク上のパケットをキャプチャし、蓄積する。
パケット解析装置100は、キャプチャしたパケットの一部を、クライアント装置110とサーバ装置120Aとの間に生成されたコネクションに対して分類する。また、パケット解析装置100は、同様に、キャプチャしたパケットの一部を、クライアント装置110とサーバ装置120Bとの間に生成されたコネクションや、クライアント装置110とサーバ装置120Cとの間に生成されたコネクションに対して、分類する。
パケット解析装置100は、分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションを特定する。パケット解析装置100は、例えば、サーバ装置120の一定時間ごとに生成された複数のコネクションを、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションとして特定する。
また、パケット解析装置100は、分類した結果に基づいて、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定する。コネクショングループは、コネクションの生成タイミングが比較的近い2つ以上のコネクションをまとめたグループである。コネクショングループは、1つのコネクションだけを含むグループであってもよい。
パケット解析装置100は、例えば、サーバ装置120のサービス4について一定時間ごとに生成された複数のコネクショングループを、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとして特定する。
パケット解析装置100は、複数のパケットのうち、特定した複数のコネクション、および特定した複数のコネクショングループにおいて通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析する。
パケット解析装置100は、例えば、キャプチャしたパケットから、特定した複数のコネクションや複数のコネクショングループにおけるパケット以外の、パケットを抽出する。パケット解析装置100は、抽出したパケットに基づいて、平均応答時間やパケットロス数などのネットワークの通信品質を解析する。
パケット解析装置100は、具体的には、サーバ装置120が提供するサービスごとに、ネットワークの通信品質を解析する。また、パケット解析装置100は、コネクションごとに、ネットワークの通信品質を解析してもよい。
また、パケット解析装置100は、クライアント装置110と、それぞれのサーバ装置120との間における、ネットワークの通信品質を解析してもよい。また、パケット解析装置100は、クライアント装置110とサーバ装置120とを含むシステム全体における、ネットワークの通信品質を解析してもよい。
これにより、パケット解析装置100は、キャプチャしたパケットから、ユーザが体感する通信品質を解析する際に用いることが好ましくないパケットを除外することができる。このため、パケット解析装置100は、ユーザが体感する通信品質の解析精度の向上を図ることができる。
ここでは、パケット解析装置100が、分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションを特定する。パケット解析装置100は、例えば、サーバ装置120の一定時間ごとに生成された複数のコネクションを、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションとして特定する。
また、パケット解析装置100は、分類した結果に基づいて、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定する。コネクショングループは、コネクションの生成タイミングが比較的近い2つ以上のコネクションをまとめたグループである。コネクショングループは、1つのコネクションだけを含むグループであってもよい。
(パケット解析システム200の一例)
次に、図2を用いて、図1に示したパケット解析装置100を適用した、パケット解析システム200の一例について説明する。
図2は、パケット解析システム200の一例を示す説明図である。図2において、パケット解析システム200は、パケット解析装置100と、クライアント装置110と、サーバ装置120とを含む。パケット解析システム200は、クライアント装置110を複数含んでもよい。パケット解析システム200は、サーバ装置120を複数含んでもよい。
パケット解析システム200において、クライアント装置110とサーバ装置120とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
パケット解析装置100は、ネットワーク内に設けられたスイッチまたはTAPなどの中継装置220を介して、クライアント装置110とサーバ装置120との間で通信されるパケットをキャプチャし、蓄積するコンピュータである。パケット解析装置100は、蓄積したパケットに基づいて、ユーザが体感する通信品質の解析精度の向上を図る。パケット解析装置100は、例えば、サーバやPC(Personal Computer)である。
クライアント装置110は、サーバ装置120とのコネクションを生成し、サーバ装置120と通信するコンピュータである。クライアント装置110は、例えば、ユーザからの操作入力に応じて、サーバ装置120とのコネクションを生成し、サーバ装置120のサービスを利用することがある。クライアント装置110は、例えば、ユーザからの操作入力がなくても、バックグラウンドにおいて、サーバ装置120とのコネクションを生成し、サーバ装置120のサービスを利用することがある。クライアント装置110は、例えば、PC、ノートPC、タブレット端末、スマートフォンなどである。
サーバ装置120は、クライアント装置110とのコネクションを生成し、クライアント装置110と通信するコンピュータである。サーバ装置120は、複数のサービスを有し、そのサービスをクライアント装置110に提供する。サーバ装置120は、例えば、サーバやPCである。
(パケット解析装置100のハードウェア構成例)
次に、図3を用いて、パケット解析装置100のハードウェア構成例について説明する。
図3は、パケット解析装置100のハードウェア構成例を示すブロック図である。図3において、パケット解析装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、パケット解析装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、中継装置220を通じてネットワーク210に接続される。そして、ネットワークI/F303は、中継装置220と内部とのインターフェースを司り、中継装置220からのデータの入出力を制御する。ネットワークI/F303には、例えば、モデムやLANアダプタなどを採用することができる。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、磁気ディスクドライブや光ディスクドライブである。記録媒体I/F304は、例えば、USB(Universal Serial Bus)ポートであってもよい。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、磁気ディスクや光ディスクなどである。記録媒体305は、例えば、USBメモリであってもよい。記録媒体305は、パケット解析装置100から着脱可能であってもよい。記録媒体305は、実施の形態にかかるパケット解析プログラムを記憶してもよい。
パケット解析装置100は、上述した構成部のほか、例えば、SSD(Solid State Drive)や半導体メモリを有してもよい。また、パケット解析装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、パケット解析装置100は、記録媒体I/F304や記録媒体305を有さなくてもよい。
(パケット解析装置100の機能的構成例)
次に、図4を用いて、パケット解析装置100の機能的構成例について説明する。
図4は、パケット解析装置100の機能的構成例を示すブロック図である。パケット解析装置100は、記憶部410と、受信部420と、分類部430と、処理部440とを含む。
記憶部410は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。受信部420〜処理部440は、制御部となる機能である。受信部420〜処理部440は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部410は、コネクションごとの基本情報411を記憶する。基本情報411は、キャプチャしたパケットを、コネクションごとに解析した結果である。基本情報411は、例えば、コネクションごとの平均応答時間やパケットロス数などを含む。これにより、記憶部410は、ユーザが体感する通信品質を解析する際に用いられる情報を記憶しておくことができる。
記憶部410は、サービスごとのコネクション比較情報412を記憶する。コネクション比較情報412は、あるサービスについての複数のコネクションが、コネクションの生成タイミングについてコネクション間またはコネクショングループ間で周期性を有するか否かを判定する際に用いられる情報である。
コネクション比較情報412は、例えば、図7〜図13や図16〜図25に後述するテーブルである。コネクション比較情報412は、コネクションの生成タイミングについてコネクション間で周期性を有するか否かを判定する基準となる、周期コネクションフラグなどを含む。これにより、記憶部410は、処理部440にコネクション比較情報412を参照させることができる。
記憶部410は、周期情報413を記憶する。周期情報413は、処理部440が特定した、コネクションの生成タイミングについて、コネクション間で周期性を有する複数のコネクション、およびコネクショングループ間で周期性を有する複数のコネクショングループを示す情報である。これにより、記憶部410は、ユーザが体感する通信品質の解析に用いられる情報を記憶しておくことができる。
受信部420は、ネットワーク上で通信されたパケットをキャプチャする。受信部420は、例えば、第1の装置と第1の装置に複数の機能を提供する第2の装置とを接続するネットワーク上で通信されたパケットをキャプチャしてもよい。第1の装置は、クライアント装置110である。第2の装置は、サーバ装置120である。複数の機能は、サーバ装置120のサービスである。受信部420は、具体的には、中継装置220を介して、パケットをキャプチャする。これにより、受信部420は、分類部430にパケットを出力することができる。
分類部430は、受信部420がキャプチャしたパケットをコネクションごとに分類する。分類部430は、パケットを、サービス特定情報とコネクション特定情報とに基づいて、コネクションごとに分類する。サービス特定情報は、サーバIPアドレス、サーバポート番号、クライアントIPアドレスの組み合わせである。サーバポート番号は、サーバ装置120が提供するサービスを特定する番号である。コネクション特定情報は、クライアントポート番号である。これにより、分類部430は、ネットワーク上に、どのようなコネクションがあるかを特定することができる。
処理部440は、保存部441によって、分類部430が分類した結果を、記憶部410に記憶する。処理部440は、例えば、分類部430が分類した結果を、記憶部410の基本情報411に追加する。これにより、処理部440は、ユーザが体感する通信品質の解析に用いる情報を記憶しておくことができる。
処理部440は、比較部442によって、第1の装置と第2の装置とを接続するネットワーク上で通信されたパケットをコネクションごとに分類する。処理部440は、例えば、サービス特定情報に基づいて、複数のパケットをコネクションごとに分類し、分類した結果を記憶部410に記憶する。処理部440は、具体的には、コネクション比較情報412を生成し、記憶部410に記憶する。
処理部440は、判定部443によって、記憶部410を参照して、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションを特定する。また、処理部440は、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定する。処理部440は、特定した結果を、記憶部410の周期情報413に追加する。
ここで、複数のコネクションのそれぞれのコネクションは、そのコネクションに分類したパケット群の各パケットのパケットサイズの合計値が第1の閾値以上になるコネクションであってもよい。処理部440は、例えば、あるサービスにおける複数のコネクションのうち、パケットサイズの合計値が第1の閾値以上になるパケット群を分類したコネクションを抽出する。そして、処理部440は、抽出した複数のコネクションが、コネクションの生成タイミングについてコネクション間で周期性を有するか否かを判定する。これにより、処理部440は、パケットサイズの合計値が比較的小さく、コネクション開始時刻に周期性を有するか否かを判定する際に用いられることが好ましくないコネクションを除外することができる。パケットサイズの合計値が比較的小さいコネクションは、例えば、コネクションが途中で途切れてしまった可能性があり、コネクション開始時刻に周期性を有するか否かの判定に対してノイズになる可能性がある。
ここで、複数のコネクショングループのそれぞれのコネクショングループは、そのコネクショングループに分類したパケット群の各パケットのパケットサイズの合計値が第2の閾値以上になるコネクショングループであってもよい。処理部440は、例えば、あるサービスにおける複数のコネクショングループのうち、パケットサイズの合計値が第2の閾値以上になるパケット群を分類したコネクショングループを抽出する。そして、処理部440は、抽出した複数のコネクショングループが、先頭コネクションの生成タイミングについてコネクショングループ間で周期性を有するか否かを判定する。先頭コネクションは、コネクショングループの先頭のコネクションである。これにより、処理部440は、パケットサイズの合計値が比較的小さく、先頭コネクションのコネクション開始時刻に周期性を有するか否かを判定する際に用いられることが好ましくないコネクショングループを除外することができる。パケットサイズの合計値が比較的小さいコネクショングループは、例えば、コネクションが途中で途切れてしまった可能性があり、先頭コネクションのコネクション開始時刻に周期性を有するか否かの判定に対してノイズになる可能性がある。
処理部440は、例えば、あるサービスにおける複数のコネクションのいずれかのコネクション間の生成タイミングの差分を基準にして誤差範囲を設定する。そして、処理部440は、そのサービスにおける複数のコネクションの各コネクション間の生成タイミングの差分が、設定した誤差範囲内であれば、コネクションの生成タイミングについてコネクション間で周期性を有すると判定する。これにより、処理部440は、周期的に生成される複数のコネクションのうち、いずれかのコネクションの生成タイミングにずれが生じていても、その複数のコネクションを特定することができる。
処理部440は、例えば、あるサービスにおける複数のコネクショングループのいずれかの先頭コネクション間の生成タイミングの差分を基準にして誤差範囲を設定する。そして、処理部440は、そのサービスにおける複数のコネクショングループの各先頭コネクション間の生成タイミングの差分が、設定した誤差範囲内であれば、先頭コネクションの生成タイミングについてコネクショングループ間で周期性を有すると判定する。これにより、処理部440は、周期的に先頭コネクションが生成される複数のコネクショングループのうち、いずれかの先頭コネクションの生成タイミングにずれが生じていても、その複数のコネクショングループを特定することができる。
ここで、コネクショングループは、各コネクション間の生成タイミングの差分が第3の閾値以下であればよい。これにより、処理部440は、コネクションの生成タイミングが比較的近い2つ以上のコネクションをまとめ、複数のコネクションとしては特定されない可能性がある、複数のコネクショングループを特定可能にすることができる。
処理部440は、複数のパケットのうち、特定した複数のコネクションと複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析する。通信品質は、例えば、平均応答時間やパケットロス数などである。
処理部440は、例えば、複数のパケットのうち、特定した複数のコネクションと複数のコネクショングループとの少なくともいずれかに対応する機能によって通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析する。処理部440は、具体的には、特定した複数のコネクションと複数のコネクショングループとの少なくともいずれかが生成されたサービスにおいて通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析する。これにより、処理部440は、ユーザが体感する通信品質の解析精度の向上を図ることができる。
処理部440は、解析した結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、記憶部410への記憶である。これにより、処理部440は、ユーザが体感する通信品質を解析した結果を、ユーザやネットワークの管理者などに把握させることができる。
(パケット解析装置100の第1の動作例)
次に、図5〜図13を用いて、パケット解析装置100の第1の動作例について説明する。第1の動作例は、パケット解析装置100が、コネクション開始時刻に周期性を有する複数のコネクションにおいて通信されたパケットを、ユーザが体感する通信品質解析に好ましくないパケットとして特定する一例である。
まず、図5を用いて、ユーザの操作入力とは無関係であり、ユーザが体感する通信品質解析に好ましくないパケットを通信した、コネクション開始時刻に周期性を有する複数のコネクションの一例について説明する。
図5は、コネクション開始時刻に周期性を有する複数のコネクションの一例を示す説明図である。図5の例では、コネクション11〜14を示す。コネクション11〜14は、それぞれ、クライアント装置110からサーバ装置120への上り通信と、サーバ装置120からクライアント装置110への下り通信とを含む。図5の例では、上り通信は、クライアント装置110からサーバ装置120へと向かう矢印で示されている。下り通信は、サーバ装置120からクライアント装置110へと向かう矢印で示されている。
図5の例では、コネクション11〜14は、各コネクション間のコネクション開始時刻の差分が同一である。このため、コネクション11〜14は、コネクション開始時刻に周期性を有する複数のコネクションである。パケット解析装置100は、コネクション11〜14について、各コネクション間のコネクション開始時刻の差分が同一であるか否かを判定する。そして、パケット解析装置100は、同一であると判定すると、コネクション11〜14を、コネクション開始時刻に周期性を有する複数のコネクションとして特定する。
パケット解析装置100は、例えば、コネクション11〜14について、各コネクション間のコネクション開始時刻の差分が所定範囲内である場合に、各コネクション間のコネクション開始時刻の差分が同一であると判定してもよい。パケット解析装置100は、具体的には、コネクション11,12のコネクション開始時刻の差分を基準とする誤差範囲内に、コネクション12,13やコネクション13,14のコネクション開始時刻の差分が含まれる場合に、差分が同一であると判定する。
次に、図6を用いて、ユーザの操作入力とは無関係であり、ユーザが体感する通信品質解析に好ましくないパケットを通信した、コネクション開始時刻に周期性を有する複数のコネクションの具体例について説明する。
図6は、コネクション開始時刻に周期性を有する複数のコネクションの具体例を示す説明図である。図6では、例えば、クライアント装置110が、バックグラウンドにおいて、30分間隔で、メールサーバ装置としての機能を有するサーバ装置120に、受信メールの問い合わせを送信する場合について示している。
図6では、具体的には、クライアント装置110とサーバ装置120とのコネクション開始時刻に対して、そのコネクションにおける上り通信の1分あたりのパケットサイズの合計値がグラフ上にプロットされている。また、同様に、クライアント装置110とサーバ装置120とのコネクション開始時刻に対して、そのコネクションにおける下り通信の1分あたりのパケットサイズの合計値がグラフ上にプロットされている。
図6に示すように、クライアント装置110とサーバ装置120との間において、30分ごとに異なるコネクションが生成され、上り通信と下り通信とが発生している。これに対し、パケット解析装置100は、30分ごとに生成された複数のコネクションを、コネクション開始時刻に周期性を有する複数のコネクションとして特定することになる。これにより、パケット解析装置100は、ユーザが体感する通信品質解析に好ましくないパケットを通信した、複数のコネクションを特定することができる。
また、図6に示すように、一部の期間600では、クライアント装置110とサーバ装置120との間において、30分間隔ではなく1時間間隔でコネクションが生成され、上り通信と下り通信とが発生する可能性もある。具体的には、例えば、クライアント装置110のエラーによって、クライアント装置110からの受信メールの問い合わせの送信が1回失敗した場合、1時間間隔でコネクションが生成されることになる。これに対し、パケット解析装置100は、複数のコネクションのそれぞれのコネクションが30分の倍数の間隔で生成されていれば、コネクション開始時刻に周期性を有する複数のコネクションとして特定することもできる。
次に、図7〜図13を用いて、パケット解析装置100が、図6に示したコネクション開始時刻に周期性を有する複数のコネクションを特定する一例について説明する。
図7〜図13は、コネクション開始時刻に周期性を有する複数のコネクションを特定する一例を示す説明図である。図7〜図13において、パケット解析装置100は、複数のコネクションのそれぞれのコネクションで通信されるパケットをキャプチャする。パケットは、例えば、TCPパケットである。
パケット解析装置100は、あるコネクションにおけるSYNパケット(SYNchronize packet)をキャプチャした場合、そのSYNパケットをサービスおよびコネクションに分類する。そして、パケット解析装置100は、そのコネクションに対応する新たなレコードを、サービスごとのコネクション比較情報412に追加する。
パケット解析装置100は、あるコネクションにおいてSYNパケットに続いて通信されるパケットをキャプチャした場合、そのパケットをサービスおよびコネクションに分類する。そして、パケット解析装置100は、サービスごとのコネクション比較情報412のうち、そのコネクションに対応するレコードを更新する。
パケット解析装置100は、1つのコネクションが比較的長く続く場合、1つのコネクションについてレコードを複数用いるようにしてもよい。パケット解析装置100は、例えば、1つのコネクションについて単位期間ごとにレコードを追加し、そのコネクションのパケットに基づいて更新してもよい。単位期間は、予め設定される。単位期間は、例えば、1分間である。単位期間は、具体的には、SYNパケットのキャプチャから1分間であっても、パケット解析装置100がSYNパケットのキャプチャとは独立して測定する1分間であってもよい。
以下では、説明の簡略化のため、パケット解析装置100が、特定の「サービス特定情報」を含む複数のパケットをキャプチャする場合について説明する。特定の「サービス特定情報」は、例えば、サーバIPアドレス「xxx.xxx.xxx.xxx」とサーバポート番号「143」とクライアントIPアドレス「yyy.yyy.yyy.yyy」の組み合わせである。この場合、パケット解析装置100は、特定の「サービス特定情報」によって特定されるサービスについて、コネクション比較情報412を生成する。
ここでは、パケット解析装置100が、特定の「サービス特定情報」を含む複数のパケットをキャプチャした場合について説明するが、これに限らない。例えば、パケット解析装置100は、種々の「サービス特定情報」のいずれかを含む、複数のパケットをキャプチャし、サービスごとにコネクション比較情報412を生成してもよい。
図7〜図13の例では、コネクション比較情報412は、サービス特定情報と、コネクション特定情報と、コネクション開始時刻と、コネクションバイト数と、グループ番号と、グループバイト数と、周期コネクションフラグと、周期とのフィールドを有する。
サービス特定情報は、サーバIPアドレスと、サーバポート番号と、クライアントIPアドレスとの組み合わせである。サービス特定情報は、具体的には、例えば、「サーバIPアドレス:サーバポート番号/クライアントIPアドレス」の形式で示される。コネクション特定情報は、クライアントポート番号である。
コネクション開始時刻は、サービス特定情報とコネクション特定情報とによって特定されるコネクションの生成タイミングを示す時刻情報である。コネクション開始時刻は、例えば、そのコネクションの先頭パケットであるSYNパケットの受信時刻である。コネクションバイト数は、サービス特定情報とコネクション特定情報とによって特定されるコネクションにおいて、SYNパケットに続いて単位期間あたりに通信されたパケットのパケットサイズの合計である。
グループ番号は、サービス特定情報とコネクション特定情報とによって特定されるコネクションが属するコネクショングループを特定する番号である。図7〜図13の例では、パケット解析装置100がコネクション単位で周期性を判定するため、1つのコネクショングループは1つのコネクションだけを含み、グループ番号はコネクションを特定する番号でもある。グループバイト数は、あるグループ番号が付与されたコネクションに対応するコネクションバイト数の合計である。
周期コネクションフラグは、コネクション間のコネクション開始時刻の差分を算出する対象になり、コネクション間のコネクション開始時刻について周期性があるか否かを判定する際に用いられるか否かを示すフラグである。周期コネクションフラグは、1であると、コネクション間のコネクション開始時刻について周期性があるか否かを判定する際に用いられることを示す。周期は、コネクション間のコネクション開始時刻の差分である。
サービス特定情報は、1つのコネクションに対して1以上のレコードを記憶してもよい。サービス特定情報は、例えば、1つのコネクションが複数の単位期間内に跨って続く場合には、単位期間ごとに、そのコネクションに対応するレコードを記憶してもよい。
図7において、パケット解析装置100は、SYNパケットをキャプチャする。パケット解析装置100は、SYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56288」によって特定されるコネクションに、そのSYNパケットを分類する。
以下の説明では、「クライアントポート番号=56288」によって特定されるコネクションを「1番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、1番目のコネクションに対応する1番目のレコード701を、サービスごとのコネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=xxx.xxx.xxx.xxx:143/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、1番目のレコード701の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56288」をコネクション特定情報として抽出し、1番目のレコード701の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:38:13」を、1番目のレコード701の「コネクション開始時刻」に設定する。また、パケット解析装置100は、SYNパケットに応じて生成された1番目のコネクションが、最初のコネクションであるため、「1」を1番目のレコード701の「グループ番号」に設定する。
以降、パケット解析装置100は、1番目のコネクションが終了するまで、または、1番目のコネクションの開始後の1回目の単位期間が終了するまで、1番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を1番目のレコード701の「コネクションバイト数」に累積する。
パケット解析装置100は、1番目のコネクションが、1番目のコネクションの開始後の1回目の単位期間内に終了したため、1番目のコネクションに対しては1つのレコードだけを用いる。これにより、パケット解析装置100は、1番目のコネクションに対応する1番目のレコード701を記憶することができる。次に、図8の説明に移行する。
図8において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56561」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、1番目のコネクションとはクライアントポート番号が異なるため、1番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56561」によって特定されるコネクションを「2番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たな2番目のコネクションに対応する2番目のレコード801を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=xxx.xxx.xxx.xxx:143/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、2番目のレコード801の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56561」をコネクション特定情報として抽出し、2番目のレコード801の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:08:31」を、2番目のレコード801の「コネクション開始時刻」に設定する。また、パケット解析装置100は、2番目のコネクションの1つ前に生成された1番目のコネクションと、2番目のコネクションとは、コネクション特定情報が異なり、異なるコネクションであるため、同じグループではないと判定する。そして、パケット解析装置100は、1番目のコネクションに対応するレコード701のグループ番号「1」に1を加算した番号「2」を、2番目のレコード801の「グループ番号」に設定する。
また、パケット解析装置100は、同じグループではないと判定した場合、グループ番号「2」の1つ前のグループ番号「1」に対応するコネクションが終了していれば、そのグループ番号「1」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「1」に対応するコネクションバイト数の総和「11169[byte]」を、グループ番号「1」に対応する先頭レコード701の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「11169[byte]」が閾値「7000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値以上であるため、「1」を、グループ番号「1」に対応する先頭レコード701の「周期コネクションフラグ」に設定する。
以降、パケット解析装置100は、2番目のコネクションが終了するまで、または、2番目のコネクションの開始後の1回目の単位期間が終了するまで、2番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を、2番目のレコード801の「コネクションバイト数」に累積する。ここでは、2番目のコネクションが、2番目のコネクションの開始後の1回目の単位期間内に終了しなかったとする。次に、図9の説明に移行する。
図9において、パケット解析装置100は、2番目のコネクションが、2番目のコネクションの開始後の1回目の単位期間内に終了しなかったため、2番目のコネクションに対応する3番目のレコード901を、コネクション比較情報412に追加する。
パケット解析装置100は、2番目のレコード801と同じサービス特定情報を、3番目のレコード901の「サービス特定情報」に設定する。また、パケット解析装置100は、2番目のレコード801と同じコネクション特定情報を、3番目のレコード901の「コネクション特定情報」に設定する。
また、パケット解析装置100は、2番目のレコード801と同じ「受信時刻=2016/5/25 9:08:31」を、3番目のレコード901の「コネクション開始時刻」に設定する。また、パケット解析装置100は、2番目のレコード801と、3番目のレコード901とが、同じコネクションに対応するため、同じグループであると判定する。そして、パケット解析装置100は、2番目のレコード801のグループ番号「2」と同じ番号「2」を、3番目のレコード901の「グループ番号」に設定する。
以降、パケット解析装置100は、2番目のコネクションが終了するまで、または、2番目のコネクションの開始後の2回目の単位期間が終了するまで、2番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を、2番目のレコード801に代わり、3番目のレコード901の「コネクションバイト数」に累積する。
パケット解析装置100は、2番目のコネクションが、2番目のコネクションの開始後の2回目の単位期間内に終了したため、2番目のコネクションに対しては2つのレコードを用いる。これにより、パケット解析装置100は、2番目のコネクションについてのレコード801,901を記憶することができる。次に、図10の説明に移行する。
図10において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56769」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、2番目のコネクションとはクライアントポート番号が異なるため、2番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56769」によって特定されるコネクションを「3番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たな3番目のコネクションに対応する4番目のレコード1001を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=xxx.xxx.xxx.xxx:143/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、4番目のレコード1001の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56769」をコネクション特定情報として抽出し、4番目のレコード1001の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:38:31」を、4番目のレコード1001の「コネクション開始時刻」に設定する。また、パケット解析装置100は、3番目のコネクションの1つ前に生成された2番目のコネクションと、3番目のコネクションとは、コネクション特定情報が異なり、異なるコネクションであるため、同じグループではないと判定する。そして、パケット解析装置100は、2番目のコネクションに対応するレコード901のグループ番号「2」に1を加算した番号「3」を、4番目のレコード1001の「グループ番号」に設定する。
また、パケット解析装置100は、同じグループではないと判定した場合、グループ番号「3」の1つ前のグループ番号「2」に対応するコネクションが終了していれば、そのグループ番号「2」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「2」に対応するコネクションバイト数の総和「16138[byte]」を、グループ番号「2」に対応する先頭レコード801の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「16138[byte]」が閾値「7000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値以上であるため、「1」を、グループ番号「2」に対応する先頭レコード801の「周期コネクションフラグ」に設定する。
パケット解析装置100は、今回「周期コネクションフラグ」に「1」が設定されたレコード801よりも前に、「周期コネクションフラグ」に「1」が設定されたレコードがあるか否かを判定する。ここで、パケット解析装置100は、レコード801よりも前に「周期コネクションフラグ」に「1」が設定されたレコードがあるため、前回「周期コネクションフラグ」に「1」が設定されたレコード701を選択する。
パケット解析装置100は、選択したレコード701の「コネクション開始時刻」と、今回「周期コネクションフラグ」に「1」が設定されたレコード801の「コネクション開始時刻」との差分を算出する。そして、パケット解析装置100は、算出した差分「0:30:18」を、レコード801の「周期」に設定する。
以降、パケット解析装置100は、3番目のコネクションが終了するまで、または、3番目のコネクションの開始後の1回目の単位期間が終了するまで、3番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を、4番目のレコード1001の「コネクションバイト数」に累積する。
パケット解析装置100は、3番目のコネクションが、3番目のコネクションの開始後の1回目の単位期間内に終了したため、3番目のコネクションに対しては1つのレコードだけを用いる。これにより、パケット解析装置100は、3番目のコネクションについてのレコード1001を記憶することができる。
さらに、パケット解析装置100は、同様に、SYNパケットや、SYNパケットに続いて通信されるパケットをキャプチャし、5〜11番目のレコードを、コネクション比較情報412に追加し、更新する。これにより、パケット解析装置100は、4番目〜7番目のコネクションについて5〜11番目のレコードを記憶し、図11に示すようなコネクション比較情報412を生成する。次に、図11の説明に移行する。
図11において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=57640」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、レコード1100に対応する7番目のコネクションとはクライアントポート番号が異なるため、7番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=57640」によって特定されるコネクションを「8番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たな8番目のコネクションに対応する12番目のレコード1101を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=xxx.xxx.xxx.xxx:143/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、12番目のレコード1101の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=57640」をコネクション特定情報として抽出し、12番目のレコード1101の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 12:08:57」を、12番目のレコード1101の「コネクション開始時刻」に設定する。また、パケット解析装置100は、8番目のコネクションの1つ前に生成された7番目のコネクションと、8番目のコネクションとは、コネクション特定情報が異なり、異なるコネクションであるため、同じグループではないと判定する。そして、パケット解析装置100は、7番目のコネクションに対応するレコード1100のグループ番号「7」に1を加算した番号「8」を、12番目のレコード1101の「グループ番号」に設定する。
また、パケット解析装置100は、同じグループではないと判定した場合、グループ番号「8」の1つ前のグループ番号「7」に対応するコネクションが終了していれば、そのグループ番号「7」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「7」に対応するコネクションバイト数の総和「7700[byte]」を、グループ番号「7」に対応する先頭レコード1100の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「7700[byte]」が閾値「7000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値以上であるため、「1」を、グループ番号「7」に対応する先頭レコード1100の「周期コネクションフラグ」に設定する。
パケット解析装置100は、今回「周期コネクションフラグ」に「1」が設定されたレコード1100よりも前に、「周期コネクションフラグ」に「1」が設定されたレコードがあるか否かを判定する。ここで、パケット解析装置100は、レコード1100よりも前に「周期コネクションフラグ」に「1」が設定されたレコードがあれば、レコード1100の「周期」を設定する。
以降、パケット解析装置100は、8番目のコネクションが終了するまで、または、8番目のコネクションの開始後の1回目の単位期間が終了するまで、8番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を、12番目のレコード1101の「コネクションバイト数」に累積する。ここでは、8番目のコネクションが、8番目のコネクションの開始後の1回目の単位期間内に終了しなかったとする。次に、図12の説明に移行する。
図12において、パケット解析装置100は、8番目のコネクションが、8番目のコネクションの開始後の1回目の単位期間内に終了しなかったため、8番目のコネクションに対応する13番目のレコード1201を、コネクション比較情報412に追加する。
パケット解析装置100は、12番目のレコード1101と同じサービス特定情報を、13番目のレコード1201の「サービス特定情報」に設定する。また、パケット解析装置100は、12番目のレコード1101と同じコネクション特定情報を、13番目のレコード1201の「コネクション特定情報」に設定する。
また、パケット解析装置100は、12番目のレコード1101と同じ「受信時刻=2016/5/25 12:08:57」を、13番目のレコード1201の「コネクション開始時刻」に設定する。また、パケット解析装置100は、12番目のレコード1101と、13番目のレコード1201とが、同じコネクションに対応するため、同じグループであると判定する。そして、パケット解析装置100は、12番目のレコード1101のグループ番号「8」と同じ番号「8」を、13番目のレコード1201の「グループ番号」に設定する。
以降、パケット解析装置100は、8番目のコネクションが終了するまで、または、8番目のコネクションの開始後の2回目の単位期間が終了するまで、8番目のコネクションにおけるパケットをキャプチャする。パケット解析装置100は、パケットをキャプチャすると、そのパケットのバイト数を、12番目のレコード1101に代わり、13番目のレコード1201の「コネクションバイト数」に累積する。
パケット解析装置100は、8番目のコネクションが、8番目のコネクションの開始後の2回目の単位期間内に終了したため、8番目のコネクションに対しては2つのレコードを用いる。これにより、パケット解析装置100は、8番目のコネクションについてのレコード1101,1201を記憶することができる。
さらに、パケット解析装置100は、同様に、SYNパケットや、SYNパケットに続いて通信されるパケットをキャプチャし、14〜30番目のレコードを、コネクション比較情報412に追加し、更新する。これにより、パケット解析装置100は、9番目〜21番目のコネクションについて14〜30番目のレコードを記憶し、図13に示すようなコネクション比較情報412を生成する。
パケット解析装置100は、14番目のレコードを追加した際には、グループ番号「8」に対応する先頭レコード1101の「グループバイト数=424[byte]」が閾値「7000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値未満であるため、「0」を、グループ番号「8」に対応する先頭レコード1101の「周期コネクションフラグ」に設定する。
これにより、パケット解析装置100は、周期的に生成されず、パケットサイズの合計値も比較的小さく、コネクション開始時刻に周期性を有するか否かを判定する際に用いられることが好ましくないコネクションを除外することができる。そのコネクションは、例えば、途中で途切れてしまった可能性のあるコネクションなどである。そして、パケット解析装置100は、そのコネクションを除いた複数のコネクションが、コネクション開始時刻に周期性を有する複数のコネクションであるか否かを判定することができ、判定精度の向上を図ることができる。次に、図13の説明に移行する。
図13において、パケット解析装置100は、コネクション比較情報412のレコードの「周期」に基づいて、複数のコネクションが、コネクション開始時刻に周期性を有する複数のコネクションであるか否かを判定する。パケット解析装置100は、例えば、19個の周期の値のうち、約89%の17個の周期の値が、30分±1分以内であるため、複数のコネクションが、コネクション開始時刻に周期性を有する複数のコネクションであると判定する。パケット解析装置100は、例えば、19個の周期の値が、30分の倍数±1分以内であるため、複数のコネクションが、コネクション開始時刻に周期性を有する複数のコネクションであると判定してもよい。
これにより、パケット解析装置100は、コネクション開始時刻に周期性を有する複数のコネクションを特定し、特定した複数のコネクションにおいて通信された、ユーザの操作入力とは無関係なパケットを特定することができる。このため、パケット解析装置100は、キャプチャしたパケットのうち、ユーザの操作入力とは無関係なパケットを除外して、ユーザが体感する通信品質の解析精度の向上を図ることができる。
ここでは、パケット解析装置100が、同じコネクションについて単位期間ごとに異なるレコードを用いる場合について説明したが、これに限らない。例えば、パケット解析装置100が、1つのコネクションが終了するまで、そのコネクションについては1つのレコードだけを用いる場合があってもよい。
(パケット解析装置100の第2の動作例)
次に、図14〜図25を用いて、パケット解析装置100の第2の動作例について説明する。第2の動作例は、パケット解析装置100が、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループにおいて通信されたパケットを、ユーザの操作入力とは無関係なパケットとして特定する一例である。
まず、図14を用いて、ユーザの操作入力とは無関係であり、ユーザが体感する通信品質解析に好ましくないパケットを通信した、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの一例について説明する。
図14は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの一例を示す説明図である。図14の例では、コネクショングループ21〜24を示す。コネクショングループ21は、コネクション31,32を含む。コネクショングループ22は、コネクション33,34を含む。コネクショングループ23は、コネクション35,36を含む。コネクショングループ24は、コネクション37を含む。
コネクション31〜37は、それぞれ、クライアント装置110からサーバ装置120への上り通信と、サーバ装置120からクライアント装置110への下り通信とを含む。図14の例では、上り通信は、クライアント装置110からサーバ装置120へと向かう矢印で示す。下り通信は、サーバ装置120からクライアント装置110へと向かう矢印で示す。
図14の例では、コネクショングループ21〜24は、各コネクショングループの先頭コネクション間のコネクション開始時刻の差分が同一である。このため、コネクショングループ21〜24は、コネクション開始時刻に周期性を有する複数のコネクショングループである。
パケット解析装置100は、コネクショングループ21〜24について、各コネクショングループの先頭コネクション間のコネクション開始時刻の差分が同一であるか否かを判定する。そして、パケット解析装置100は、同一であると判定すると、コネクショングループ21〜24を、コネクション開始時刻に周期性を有する複数のコネクショングループとして特定する。
パケット解析装置100は、例えば、コネクショングループ21〜24について、各コネクショングループの先頭コネクション間のコネクション開始時刻の差分が所定範囲内であるか否かを判定してもよい。そして、パケット解析装置100は、所定範囲内である場合に、各コネクショングループの先頭コネクション間のコネクション開始時刻の差分が同一であると判定してもよい。
パケット解析装置100は、具体的には、コネクショングループ21,22の先頭コネクション31,33間のコネクション開始時刻の差分を基準として、誤差範囲を設定する。そして、パケット解析装置100は、コネクショングループ22,23の先頭コネクション33,35間や、コネクショングループ23,24の先頭コネクション35,37間などのコネクション開始時刻の差分が誤差範囲内である場合に、同一であると判定する。
次に、図15を用いて、ユーザの操作入力とは無関係であり、ユーザが体感する通信品質解析に好ましくないパケットを通信した、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの具体例について説明する。
図15は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループの具体例を示す説明図である。図15では、例えば、クライアント装置110が、バックグラウンドにおいて、30分間隔で、メールサーバ装置としての機能を有するサーバ装置120に、受信メールの問い合わせや、送信メールの依頼などを送信する場合について示している。
図15では、具体的には、クライアント装置110とサーバ装置120とのコネクション開始時刻に対して、そのコネクションにおける上り通信の1分あたりのパケットサイズの平均値がグラフ上にプロットされている。また、同様に、クライアント装置110とサーバ装置120とのコネクション開始時刻に対して、そのコネクションにおける下り通信の1分あたりのパケットサイズの平均値がグラフ上にプロットされている。
図15に示すように、クライアント装置110とサーバ装置120との間において、1時間ごとに異なるコネクショングループが生成され、上り通信と下り通信とが発生している。これに対し、パケット解析装置100は、1時間ごとに生成された複数のコネクショングループを、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループとして特定することになる。これにより、パケット解析装置100は、ユーザの操作入力とは無関係な、ユーザが体感する通信品質解析に好ましくないパケットを通信した、複数のコネクショングループを特定することができる。
また、図15に示すように、クライアント装置110とサーバ装置120との間において、上り通信や下り通信におけるパケットサイズの平均値が比較的小さいコネクションが生成される場合がある。具体的には、例えば、上り通信や下り通信における1分あたりのパケットサイズの平均値が2000以下のコネクションが生成される場合がある。
この場合、パケット解析装置100は、上り通信や下り通信におけるパケットサイズの平均値が比較的小さいコネクションを、コネクション開始時刻に周期性を有するか否かを判定する際に用いられることが好ましくないコネクションとして扱ってもよい。そのコネクションは、例えば、途中で途切れてしまった可能性のあるコネクションなどである。
次に、図16〜図25を用いて、パケット解析装置100が、図15に示した先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例について説明する。
図16〜図25は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定する一例を示す説明図である。図16〜図25において、パケット解析装置100は、複数のコネクションのそれぞれのコネクションで通信されるパケットをキャプチャする。パケットは、例えば、TCPパケットである。
パケット解析装置100は、あるコネクションにおけるSYNパケットをキャプチャした場合、そのSYNパケットをサービスおよびコネクションに分類する。そして、パケット解析装置100は、キャプチャしたSYNパケットを分類したコネクションに対応する新たなレコードを、サービスごとのコネクション比較情報412に追加する。
パケット解析装置100は、あるコネクションにおいてSYNパケットに続いて通信されるパケットをキャプチャした場合、そのパケットをサービスおよびコネクションに分類する。そして、パケット解析装置100は、サービスごとのコネクション比較情報412のうち、そのコネクションに対応するレコードを更新する。
パケット解析装置100は、1つのコネクションが比較的長く続く場合、1つのコネクションについてレコードを複数用いるようにしてもよい。パケット解析装置100は、例えば、1つのコネクションについて単位期間ごとにレコードを追加し、そのコネクションのパケットに基づいて更新してもよい。
以下では、説明の簡略化のため、パケット解析装置100が、特定の「サービス特定情報」を含む複数のパケットをキャプチャする場合について説明する。特定の「サービス特定情報」は、例えば、サーバIPアドレス「zzz.zzz.zzz.zzz」とサーバポート番号「443」とクライアントIPアドレス「yyy.yyy.yyy.yyy」との組み合わせである。この場合、パケット解析装置100は、特定の「サービス特定情報」によって特定されるサービスについて、コネクション比較情報412を生成する。
また、以下では、説明の簡略化のため、1つのコネクションは、1つの単位期間内に終了するとする。このため、パケット解析装置100が、1つのコネクションが1つの単位期間内に終了しなかった場合に複数のレコードを用いるようにする処理については、説明を省略する。
ここでは、パケット解析装置100が、特定の「サービス特定情報」を含む複数のパケットをキャプチャした場合について説明するが、これに限らない。例えば、パケット解析装置100は、種々の「サービス特定情報」のいずれかを含む、複数のパケットをキャプチャし、サービスごとにコネクション比較情報412を生成してもよい。
図16〜図25の例では、コネクション比較情報412は、サービス特定情報と、コネクション特定情報と、コネクション開始時刻と、コネクションバイト数と、グループ番号と、グループバイト数と、周期コネクションフラグと、周期とのフィールドを有する。
サービス特定情報は、サーバIPアドレスと、サーバポート番号と、クライアントIPアドレスとの組み合わせである。サービス特定情報は、具体的には、例えば、「サーバIPアドレス:サーバポート番号/クライアントIPアドレス」の形式で示される。コネクション特定情報は、クライアントポート番号である。
コネクション開始時刻は、サービス特定情報とコネクション特定情報とによって特定されるコネクションの生成タイミングを示す時刻情報である。コネクション開始時刻は、例えば、そのコネクションの先頭パケットであるSYNパケットの受信時刻である。コネクションバイト数は、サービス特定情報とコネクション特定情報とによって特定されるコネクションにおいてSYNパケットに続いて単位期間あたりに通信されたパケットのパケットサイズの合計である。
グループ番号は、サービス特定情報とコネクション特定情報とによって特定されるコネクションが属するコネクショングループを特定する番号である。図16〜図25の例では、パケット解析装置100が比較的コネクション開始時刻が近い1以上のコネクションをまとめた単位で周期性を判定するため、1つのコネクショングループは1つ以上のコネクションを含む。グループバイト数は、同じグループ番号が付与された1つ以上のコネクションのコネクションバイト数の合計である。
周期コネクションフラグは、コネクショングループ間の先頭コネクションのコネクション開始時刻について周期性があるか否かを判定する際に用いられるか否かを示すフラグである。周期コネクションフラグは、周期性があるか否かを判定する際に用いられることを示す場合、コネクショングループ間の先頭コネクションのコネクション開始時刻の差分を算出する対象になることも示す。周期コネクションフラグは、1であると、コネクショングループ間の先頭コネクションのコネクション開始時刻について周期性があるか否かを判定する際に用いられることを示す。周期は、コネクショングループ間の先頭コネクションのコネクション開始時刻の差分である。
図16において、パケット解析装置100は、SYNパケットをキャプチャする。パケット解析装置100は、SYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56290」によって特定されるコネクションに、そのSYNパケットを分類する。
以下の説明では、「クライアントポート番号=56290」によって特定されるコネクションを「1番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、1番目のコネクションに対応するレコード1601を、サービスごとのコネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」を、サービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、1番目のコネクションに対応するレコード1601の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56290」を、コネクション特定情報として抽出し、1番目のコネクションに対応するレコード1601の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:38:29」を、1番目のコネクションに対応するレコード1601の「コネクション開始時刻」に設定する。また、パケット解析装置100は、SYNパケットに応じて生成された1番目のコネクションが、最初のコネクションであるため、「1」を1番目のコネクションに対応するレコード1601の「グループ番号」に設定する。
以降、パケット解析装置100は、1番目のコネクションが終了するまで、1番目のコネクションにおけるパケットをキャプチャすると、そのパケットのバイト数を、1番目のコネクションに対応するレコード1601の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、1番目のコネクションに対応するレコード1601を記憶することができる。次に、図17の説明に移行する。
図17において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56386」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、1番目のコネクションとはクライアントポート番号が異なるため、1番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56386」によって特定されるコネクションを「2番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たな2番目のコネクションに対応する新たなレコード1701を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、2番目のコネクションに対応するレコード1701の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56386」をコネクション特定情報として抽出し、2番目のコネクションに対応するレコード1701の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:42:31」を、2番目のコネクションに対応するレコード1701の「コネクション開始時刻」に設定する。また、パケット解析装置100は、2番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、2番目のコネクションの1つ前に生成された1番目のコネクションがあると判定する。
パケット解析装置100は、1番目のコネクションに対応するレコード1601のコネクション開始時刻と、2番目のコネクションに対応するレコード1701のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。閾値は、複数のコネクションをグループ化するか否かを判定する基準として、その複数のコネクションのコネクション開始時刻がどれくらい近ければグループ化するかを示す値であり、メモリ302などに記憶される。
パケット解析装置100は、閾値以下ではないため、1番目のコネクションと、2番目のコネクションとは、同じグループではないと判定する。そして、パケット解析装置100は、1番目のコネクションに対応するレコード1601のグループ番号「1」に1を加算した番号「2」を、2番目のコネクションに対応するレコード1701の「グループ番号」に設定する。
パケット解析装置100は、同じグループではないと判定した場合、グループ番号「2」の1つ前のグループ番号「1」に対応するコネクションが終了していれば、そのグループ番号「1」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「1」に対応するコネクションバイト数の総和「4713[byte]」を、グループ番号「1」に対応する先頭レコード1601の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「4713[byte]」が閾値「100000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値未満であるため、「0」を、グループ番号「1」に対応する先頭レコード1601の「周期コネクションフラグ」に設定する。
以降、パケット解析装置100は、2番目のコネクションが終了するまで、キャプチャした2番目のコネクションにおけるパケットのバイト数を、2番目のコネクションに対応するレコード1701の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、2番目のコネクションについてのレコード1701を記憶することができる。次に、図18の説明に移行する。
図18において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56388」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、2番目のコネクションとはクライアントポート番号が異なるため、2番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56388」によって特定されるコネクションを「3番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たな3番目のコネクションに対応する新たなレコード1801を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、3番目のコネクションに対応するレコード1801の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56388」をコネクション特定情報として抽出し、3番目のコネクションに対応するレコード1801の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:42:31」を、3番目のコネクションに対応するレコード1801の「コネクション開始時刻」に設定する。また、パケット解析装置100は、3番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、3番目のコネクションの1つ前に生成された2番目のコネクションがあると判定する。
パケット解析装置100は、2番目のコネクションに対応するレコード1701のコネクション開始時刻と、3番目のコネクションに対応するレコード1801のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下であるため、2番目のコネクションと、3番目のコネクションとは、同じグループであると判定する。そして、パケット解析装置100は、2番目のコネクションに対応するレコード1701のグループ番号「2」と同じ番号「2」を、3番目のコネクションに対応するレコード1801の「グループ番号」に設定する。
以降、パケット解析装置100は、3番目のコネクションが終了するまで、キャプチャした3番目のコネクションにおけるパケットのバイト数を、3番目のコネクションに対応するレコード1801の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、3番目のコネクションについてのレコード1801を記憶することができる。
さらに、パケット解析装置100は、同様に、番号「2」が「グループ番号」に設定されたレコードを、コネクション比較情報412に追加していく。これにより、パケット解析装置100は、図19に示すようなコネクション比較情報412を生成する。次に、図19の説明に移行する。
図19において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56470」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、そのコネクションの1つ前に生成されたコネクションとはクライアントポート番号が異なり、そのコネクションの1つ前に生成されたコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56470」によって特定されるコネクションを「i番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たなi番目のコネクションに対応する新たなレコード1901を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、i番目のコネクションに対応するレコード1901の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56470」をコネクション特定情報として抽出し、i番目のコネクションに対応するレコード1901の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:57:43」を、i番目のコネクションに対応するレコード1901の「コネクション開始時刻」に設定する。また、パケット解析装置100は、i番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、i番目のコネクションの1つ前に生成されたi−1番目のコネクションがあると判定する。
パケット解析装置100は、i−1番目のコネクションに対応するレコード1900のコネクション開始時刻と、i番目のコネクションに対応するレコード1901のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下ではないため、i−1番目のコネクションと、i番目のコネクションとは、同じグループではないと判定する。そして、パケット解析装置100は、i−1番目のコネクションに対応するレコード1900のグループ番号「2」に1を加算した番号「3」を、i番目のコネクションに対応するレコード1901の「グループ番号」に設定する。
パケット解析装置100は、同じグループではないと判定した場合、グループ番号「3」の1つ前のグループ番号「2」に対応するコネクションが終了していれば、そのグループ番号「2」について「グループバイト数」を設定する。パケット解析装置100は、例えば、1つ前のグループ番号「2」に対応するコネクションバイト数の総和「131917[byte]」を、1つ前のグループ番号「2」に対応する先頭レコード1701の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「131917[byte]」が閾値「100000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値以上であるため、「1」を、グループ番号「2」に対応する先頭レコード1701の「周期コネクションフラグ」に設定する。また、パケット解析装置100は、「0」をグループ番号「2」に対応する先頭レコード1701以外のレコードの「周期コネクションフラグ」に設定する。
以降、パケット解析装置100は、i番目のコネクションが終了するまで、キャプチャしたi番目のコネクションにおけるパケットのバイト数を、i番目のコネクションに対応するレコード1901の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、i番目のコネクションについてのレコード1901を記憶することができる。
図20において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56471」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、i番目のコネクションとはクライアントポート番号が異なり、i番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56471」によって特定されるコネクションを「i+1番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たなi+1番目のコネクションに対応する新たなレコード2001を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」を、サービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、i+1番目のコネクションに対応するレコード2001の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56471」をコネクション特定情報として抽出し、i+1番目のコネクションに対応するレコード2001の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 8:58:09」を、i+1番目のコネクションに対応するレコード2001の「コネクション開始時刻」に設定する。また、パケット解析装置100は、i+1番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、i+1番目のコネクションの1つ前に生成されたi番目のコネクションがあると判定する。
パケット解析装置100は、i番目のコネクションに対応するレコード1901のコネクション開始時刻と、i+1番目のコネクションに対応するレコード2001のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下であるため、i番目のコネクションと、i+1番目のコネクションとは、同じグループであると判定する。そして、パケット解析装置100は、i番目のコネクションに対応するレコード1901のグループ番号「3」と同じ番号「3」を、i+1番目のコネクションに対応するレコード2001の「グループ番号」に設定する。
以降、パケット解析装置100は、i+1番目のコネクションが終了するまで、キャプチャしたi+1番目のコネクションにおけるパケットのバイト数を、i+1番目のコネクションに対応するレコード2001の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、i+1番目のコネクションについてのレコード2001を記憶することができる。次に、図21の説明に移行する。
図21において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56767」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、i+1番目のコネクションとはクライアントポート番号が異なり、i+1番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56767」によって特定されるコネクションを「i+2番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たなi+2番目のコネクションに対応する新たなレコード2101を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、i+2番目のコネクションに対応するレコード2101の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56767」をコネクション特定情報として抽出し、i+2番目のコネクションに対応するレコード2101の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:38:30」を、i+2番目のコネクションに対応するレコード2101の「コネクション開始時刻」に設定する。また、パケット解析装置100は、i+2番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、i+2番目のコネクションの1つ前に生成されたi+1番目のコネクションがあると判定する。
パケット解析装置100は、i+1番目のコネクションに対応するレコード2001のコネクション開始時刻と、i+2番目のコネクションに対応するレコード2101のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下ではないため、i+1番目のコネクションと、i+2番目のコネクションとは、同じグループではないと判定する。そして、パケット解析装置100は、i+1番目のコネクションに対応するレコード2001のグループ番号「3」に1を加算した番号「4」を、i+2番目のコネクションに対応するレコード2101の「グループ番号」に設定する。
パケット解析装置100は、同じグループではないと判定した場合、グループ番号「4」の1つ前のグループ番号「3」に対応するコネクションが終了していれば、そのグループ番号「3」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「3」に対応するコネクションバイト数の総和「10574[byte]」を、グループ番号「3」に対応する先頭レコード1901の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「10574[byte]」が閾値「100000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値未満であるため、「0」を、1つ前のグループ番号「3」に対応する先頭レコード1901の「周期コネクションフラグ」に設定する。また、パケット解析装置100は、「0」を1つ前のグループ番号「3」に対応する先頭レコード1901以外のレコードの「周期コネクションフラグ」に設定する。
以降、パケット解析装置100は、i+2番目のコネクションが終了するまで、キャプチャしたi+2番目のコネクションにおけるパケットのバイト数を、i+2番目のコネクションに対応するレコード2101の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、i+2番目のコネクションについてのレコード2101を記憶することができる。次に、図22の説明に移行する。
図22において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56798」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、i+2番目のコネクションとはクライアントポート番号が異なり、i+2番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56798」によって特定されるコネクションを「i+3番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たなi+3番目のコネクションに対応する新たなレコード2201を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、i+3番目のコネクションに対応するレコード2201の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56798」をコネクション特定情報として抽出し、i+3番目のコネクションに対応するレコード2201の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:42:31」を、i+3番目のコネクションに対応するレコード2201の「コネクション開始時刻」に設定する。また、パケット解析装置100は、i+3番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、i+3番目のコネクションの1つ前に生成されたi+2番目のコネクションがあると判定する。
パケット解析装置100は、i+2番目のコネクションに対応するレコード2101のコネクション開始時刻と、i+3番目のコネクションに対応するレコード2201のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下ではないため、i+2番目のコネクションと、i+3番目のコネクションとは、同じグループではないと判定する。そして、パケット解析装置100は、i+2番目のコネクションに対応するレコード2101のグループ番号「4」に1を加算した番号「5」を、i+3番目のコネクションに対応するレコード2201の「グループ番号」に設定する。
パケット解析装置100は、同じグループではないと判定した場合、グループ番号「5」の1つ前のグループ番号「4」に対応するコネクションが終了していれば、そのグループ番号「4」について「グループバイト数」を設定する。パケット解析装置100は、例えば、グループ番号「4」に対応するコネクションバイト数の総和「6857[byte]」を、グループ番号「4」に対応する先頭レコード2101の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「6857[byte]」が閾値「100000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値未満であるため、「0」を、1つ前のグループ番号「4」に対応する先頭レコード2101の「周期コネクションフラグ」に設定する。また、パケット解析装置100は、「0」を1つ前のグループ番号「4」に対応する先頭レコード2101以外のレコードの「周期コネクションフラグ」に設定する。
以降、パケット解析装置100は、i+3番目のコネクションが終了するまで、キャプチャしたi+3番目のコネクションにおけるパケットのバイト数を、i+3番目のコネクションに対応するレコード2201の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、i+3番目のコネクションについてのレコード2201を記憶することができる。次に、図23の説明に移行する。
図23において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56800」によって特定されるコネクションに、そのSYNパケットを分類する。
このコネクションは、i+3番目のコネクションとはクライアントポート番号が異なり、i+3番目のコネクションとは異なる新たなコネクションである。以下の説明では、「クライアントポート番号=56800」によって特定されるコネクションを「i+4番目のコネクション」と表記する場合がある。そして、パケット解析装置100は、新たなi+4番目のコネクションに対応する新たなレコード2301を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、i+4番目のコネクションに対応するレコード2301の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56800」をコネクション特定情報として抽出し、i+4番目のコネクションに対応するレコード2301の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:42:31」を、i+4番目のコネクションに対応するレコード2301の「コネクション開始時刻」に設定する。また、パケット解析装置100は、i+4番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、i+4番目のコネクションの1つ前に生成されたi+3番目のコネクションがあると判定する。
パケット解析装置100は、i+3番目のコネクションに対応するレコード2201のコネクション開始時刻と、i+4番目のコネクションに対応するレコード2301のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下であるため、i+3番目のコネクションと、i+4番目のコネクションとは、同じグループであると判定する。そして、パケット解析装置100は、i+3番目のコネクションに対応するレコード2201のグループ番号「5」と同じ番号「5」を、i+4番目のコネクションに対応するレコード2301の「グループ番号」に設定する。
以降、パケット解析装置100は、i+4番目のコネクションが終了するまで、キャプチャしたi+4番目のコネクションにおけるパケットのバイト数を、i+4番目のコネクションに対応するレコード2301の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、i+4番目のコネクションについてのレコード2301を記憶することができる。
さらに、パケット解析装置100は、同様に、番号「5」が「グループ番号」に設定されたレコードを、コネクション比較情報412に追加していく。これにより、パケット解析装置100は、図24に示すようなコネクション比較情報412を生成する。次に、図24の説明に移行する。
図24において、パケット解析装置100は、新たなSYNパケットをキャプチャする。パケット解析装置100は、新たなSYNパケットをキャプチャすると、そのSYNパケットをサービスおよびコネクションに分類する。ここでは、パケット解析装置100は、上記特定の「サービス特定情報」によって特定されるサービスに、そのSYNパケットを分類する。また、パケット解析装置100は、そのSYNパケットのコネクション特定情報である「クライアントポート番号=56831」によって特定されるコネクションに、そのSYNパケットを分類する。
以下の説明では、「クライアントポート番号=56831」によって特定されるコネクションを「j番目のコネクション」と表記する場合がある。このj番目のコネクションは、j−1番目のコネクションとはクライアントポート番号が異なり、j−1番目のコネクションとは異なる新たなコネクションである。そして、パケット解析装置100は、新たなj番目のコネクションに対応する新たなレコード2401を、コネクション比較情報412に追加する。
パケット解析装置100は、キャプチャしたSYNパケットの「サーバIPアドレス:サーバポート番号/クライアントIPアドレス=zzz.zzz.zzz.zzz:443/yyy.yyy.yyy.yyy」をサービス特定情報として抽出する。パケット解析装置100は、抽出したサービス特定情報を、j番目のコネクションに対応するレコード2401の「サービス特定情報」に設定する。また、パケット解析装置100は、キャプチャしたSYNパケットの「クライアントポート番号=56831」をコネクション特定情報として抽出し、j番目のコネクションに対応するレコード2401の「コネクション特定情報」に設定する。
また、パケット解析装置100は、キャプチャしたSYNパケットの「受信時刻=2016/5/25 9:51:18」を、j番目のコネクションに対応するレコード2401の「コネクション開始時刻」に設定する。また、パケット解析装置100は、j番目のコネクションの1つ前に生成されたコネクションがあるか否かを判定する。パケット解析装置100は、j番目のコネクションの1つ前に生成されたj−1番目のコネクションがあると判定する。
パケット解析装置100は、j−1番目のコネクションに対応するレコード2400のコネクション開始時刻と、j番目のコネクションに対応するレコード2401のコネクション開始時刻との差分が、閾値以下であるか否かを判定する。パケット解析装置100は、閾値以下ではないため、j−1番目のコネクションと、j番目のコネクションとは、同じグループではないと判定する。そして、パケット解析装置100は、j−1番目のコネクションに対応するレコード2400のグループ番号「5」に1を加算した番号「6」を、j番目のコネクションに対応するレコード2401の「グループ番号」に設定する。
パケット解析装置100は、同じグループではないと判定した場合、グループ番号「6」の1つ前のグループ番号「5」に対応するコネクションが終了していれば、そのグループ番号「5」について「グループバイト数」を設定する。パケット解析装置100は、例えばグループ番号「5」に対応するコネクションバイト数の総和「131805[byte]」を、グループ番号「5」に対応する先頭レコード2201の「グループバイト数」に設定する。
また、パケット解析装置100は、グループバイト数「131805[byte]」が閾値「100000[byte]」以上であるか否かを判定する。そして、パケット解析装置100は、閾値以上であるため、「1」を、1つ前のグループ番号「5」に対応する先頭レコード2201の「周期コネクションフラグ」に設定する。また、パケット解析装置100は、「0」を1つ前のグループ番号「5」に対応する先頭レコード2201以外のレコードの「周期コネクションフラグ」に設定する。
パケット解析装置100は、今回「周期コネクションフラグ」に「1」が設定されたレコード2201よりも前に、「周期コネクションフラグ」に「1」が設定されたレコードがあるか否かを判定する。ここで、パケット解析装置100は、レコード2201よりも前に「周期コネクションフラグ」に「1」が設定されたレコードがあるため、前回「周期コネクションフラグ」に「1」が設定されたレコード1701を選択する。
パケット解析装置100は、選択したレコード1701の「コネクション開始時刻」と、今回「周期コネクションフラグ」に「1」が設定されたレコード2201の「コネクション開始時刻」との差分を算出する。そして、パケット解析装置100は、算出した差分「1:00:00」を、レコード2201の「周期」に設定する。
以降、パケット解析装置100は、j番目のコネクションが終了するまで、キャプチャしたj番目のコネクションにおけるパケットのバイト数を、j番目のコネクションに対応するレコード2401の「コネクションバイト数」に累積する。これにより、パケット解析装置100は、j番目のコネクションについてのレコード2401を記憶することができる。
さらに、パケット解析装置100は、同様に、SYNパケットや、SYNパケットに続いて通信されるパケットをキャプチャし、新たなレコードを、コネクション比較情報412に追加していく。これにより、パケット解析装置100は、図25に示すようなコネクション比較情報412を生成する。次に、図25の説明に移行する。
図25において、パケット解析装置100は、コネクション比較情報412のレコードの「周期」に基づいて、複数のコネクショングループが、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループであるか否かを判定する。パケット解析装置100は、例えば、2個の周期の値が、1時間±1分以内であるため、複数のコネクショングループが、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループであると判定する。
これにより、パケット解析装置100は、先頭コネクションのコネクション開始時刻に周期性を有する複数のコネクショングループを特定することができる。そして、パケット解析装置100は、特定した複数のコネクショングループにおいて通信された、ユーザの操作入力とは無関係な、ユーザが体感する通信品質の解析に用いることが好ましくないパケットを特定することができる。このため、パケット解析装置100は、キャプチャしたパケットのうち、ユーザの操作入力とは無関係なパケットを除外して、ユーザが体感する通信品質の解析精度の向上を図ることができる。
(パケット解析装置100の出力例)
次に、図26を用いて、パケット解析装置100の出力例について説明する。
図26は、パケット解析装置100の出力例を示す説明図である。図26において、パケット解析装置100は、特定した複数のコネクションが含まれるサービス、および特定した複数のコネクショングループが含まれるサービスについて、サービス特定情報を出力する。これにより、パケット解析装置100は、ユーザの操作入力とは無関係なパケットについて通信したサービスを特定可能にしておき、ユーザが体感する通信品質の解析に用いないようにすることができるようにする。
(解析処理手順の一例)
図27および図28は、パケット解析装置100が実行する解析処理手順の一例について説明する。
図27および図28は、解析処理手順の一例を示すフローチャートである。図27において、パケット解析装置100は、パケットを受信する(ステップS2701)。次に、パケット解析装置100は、受信したパケットがTCPであるか否かを判定する(ステップS2702)。ここで、TCPではない場合(ステップS2702:No)、パケット解析装置100は、ステップS2701の処理に戻る。
一方で、TCPである場合(ステップS2702:Yes)、パケット解析装置100は、受信したパケットのコネクション特定情報に基づいて、そのパケットに対応するコネクションを分類する(ステップS2703)。次に、パケット解析装置100は、受信したパケットに基づいて、そのパケットに対応するコネクションの解析情報を記憶する(ステップS2704)。そして、パケット解析装置100は、サービス特定情報に基づいて、サービスを分類する(ステップS2705)。
次に、パケット解析装置100は、サービスごとに、サービス特定情報とコネクション特定情報とを対応付けて、比較情報テーブルに記憶する(ステップS2706)。そして、パケット解析装置100は、受信したパケットが、SYNパケットであるか否かを判定する(ステップS2707)。ここで、SYNパケットではない場合(ステップS2707:No)、パケット解析装置100は、受信したパケットに対応するコネクションのコネクションバイト数を更新し(ステップS2708)、ステップS2701の処理に戻る。
一方で、SYNパケットである場合(ステップS2707:Yes)、パケット解析装置100は、受信したSYNパケットの受信時刻を、そのSYNパケットに対応するコネクションのコネクション開始時刻として設定する(ステップS2709)。次に、パケット解析装置100は、受信したSYNパケットに対応するコネクションの1つ前に生成されたコネクションがあるか否かを判定する(ステップS2710)。ここで、1つ前に生成されたコネクションがない場合(ステップS2710:No)、パケット解析装置100は、受信したSYNパケットに対応するコネクションのグループ番号に1を設定し(ステップS2711)、ステップS2701の処理に戻る。
一方で、1つ前に生成されたコネクションがある場合(ステップS2710:Yes)、パケット解析装置100は、ステップS2712の処理に移行する。
ステップS2712に移行すると、パケット解析装置100は、受信したSYNパケットに対応するコネクションと、そのコネクションの1つ前に生成されたコネクションとのコネクション開始時刻の差分が1分以上であるか否かを判定する(ステップS2712)。ここで、1分以上ではない場合(ステップS2712:No)、パケット解析装置100は、ステップS2713の処理に移行する。
ステップS2713の処理に移行すると、パケット解析装置100は、受信したSYNパケットに対応するコネクションのグループ番号に、そのコネクションの1つ前に生成されたコネクションのグループ番号と同じ番号を設定する(ステップS2713)。そして、パケット解析装置100は、ステップS2701の処理に戻る。
一方で、1分以上である場合(ステップS2712:Yes)、パケット解析装置100は、ステップS2714の処理に移行する。
ステップS2714に移行すると、パケット解析装置100は、受信したSYNパケットに対応するコネクションのグループ番号に、そのコネクションの1つ前に生成されたコネクションのグループ番号に1を加算した番号を設定する(ステップS2714)。そして、パケット解析装置100は、図28のステップS2801の処理に移行する。
図28において、パケット解析装置100は、今回設定したグループ番号の1つ前のグループ番号に対応する先頭コネクションのグループバイト数を更新する(ステップS2801)。次に、パケット解析装置100は、グループバイト数が閾値以上であるか否かを判定する(ステップS2802)。ここで、閾値未満である場合(ステップS2802:No)、パケット解析装置100は、1つ前のグループ番号に対応する先頭コネクションの周期コネクションフラグに0を設定し(ステップS2803)、図27のステップS2701の処理に戻る。
一方で、閾値以上である場合(ステップS2802:Yes)、パケット解析装置100は、1つ前のグループ番号に対応する先頭コネクションの周期コネクションフラグに1を設定する(ステップS2804)。次に、パケット解析装置100は、周期コネクションフラグが1に設定された今回の先頭コネクション以前に、周期コネクションフラグが1に設定された1つ前の先頭コネクションがあるか否かを判定する(ステップS2805)。ここで、1つ前の先頭コネクションがない場合(ステップS2805:No)、図27のステップS2701の処理に戻る。
一方で、1つ前の先頭コネクションがある場合(ステップS2805:Yes)、パケット解析装置100は、今回の先頭コネクションと、1つ前の先頭コネクションとのコネクション開始時刻の差分を、周期に設定する(ステップS2806)。
次に、パケット解析装置100は、所定の期間が経過したか否かを判定する(ステップS2807)。ここで、所定の期間が経過していない場合(ステップS2807:No)、パケット解析装置100は、図27のステップS2701の処理に戻る。
一方で、所定の期間が経過した場合(ステップS2807:Yes)、パケット解析装置100は、周期に基づいて、サービス内のコネクション間またはコネクショングループ間で周期性があるか否かを判定し、判定した結果を記憶する(ステップS2808)。そして、パケット解析装置100は、解析処理を終了する。これにより、パケット解析装置100は、ユーザが体感する通信品質の解析精度の向上を図ることができる。
以上説明したように、パケット解析装置100によれば、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションを特定することができる。また、パケット解析装置100によれば、先頭コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定することができる。また、パケット解析装置100によれば、複数のパケットのうち、特定した複数のコネクションや複数のコネクショングループの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、ネットワークの通信品質を解析することができる。これにより、パケット解析装置100は、複数のパケットから、ユーザの操作入力とは無関係な、ユーザが体感する通信品質を解析する際に用いることが好ましくないパケットを除外することができる。このため、パケット解析装置100は、ユーザが体感する通信品質の解析精度の向上を図ることができる。
また、パケット解析装置100によれば、パケットサイズの合計値が第1の閾値以上になるパケット群がそれぞれ分類され、コネクションの生成タイミングについて周期性を有する複数のコネクションを特定することができる。また、パケット解析装置100によれば、パケットサイズの合計値が第2の閾値以上になるパケット群がそれぞれ分類され、先頭コネクションの生成タイミングについて周期性を有する複数のコネクショングループを特定することができる。これにより、パケット解析装置100は、周期的に生成されず、通信されるパケット群のパケットサイズの合計値が比較的小さく、コネクション開始時刻に周期性を有するか否かを判定する際に用いられることが好ましくないコネクションを除外することができる。そして、パケット解析装置100は、そのコネクションを除いた複数のコネクションが、コネクション開始時刻に周期性を有する複数のコネクションであるか否かを判定することができ、判定精度の向上を図ることができる。
また、パケット解析装置100によれば、各コネクション間の生成タイミングの差分が第3の閾値以下である2つ以上のコネクションを、コネクショングループとして扱うことができる。これにより、パケット解析装置100は、同時期に生成された2つ以上のコネクションをまとめ、コネクション単位で扱った場合には複数のコネクションとして特定されない可能性がある、複数のコネクショングループを特定可能にすることができる。
また、パケット解析装置100によれば、クライアント装置110とサーバ装置120とを接続するネットワーク上で通信された複数のパケットを、複数のサービスのそれぞれのサービスに対応するコネクションごとに分類することができる。また、パケット解析装置100によれば、分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションを特定することができる。また、パケット解析装置100によれば、分類した結果に基づいて、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループを特定することができる。また、パケット解析装置100によれば、複数のパケットのうち、特定した複数のコネクションや複数のコネクショングループの少なくともいずれかに対応するサービスによって通信されたパケット以外のパケットを特定することができる。また、パケット解析装置100によれば、特定したパケットに基づいて、ネットワークの通信品質を解析することができる。これにより、パケット解析装置100は、サービスごとに、ユーザが体感する通信品質の解析に用いることが好ましくないパケットを通信しているか否かを判定することができる。
なお、本実施の形態で説明したパケット解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したパケット解析プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したパケット解析プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
処理を実行させることを特徴とするパケット解析プログラム。
(付記2)前記複数のコネクションのそれぞれのコネクションは、パケットサイズの合計値が第1の閾値以上になるパケット群を分類したコネクションであり、
前記複数のコネクショングループのそれぞれのコネクショングループは、パケットサイズの合計値が第2の閾値以上になるパケット群を分類したコネクショングループである、 ことを特徴とする付記1に記載のパケット解析プログラム。
(付記3)前記複数のコネクショングループは、それぞれ、当該コネクショングループに含まれる各コネクション間の生成タイミングの差分が第3の閾値以下である、ことを特徴とする付記1または2に記載のパケット解析プログラム。
(付記4)前記分類する処理は、第1の装置と前記第1の装置に複数の機能を提供する第2の装置とを接続するネットワーク上で通信された複数のパケットを、前記複数の機能のそれぞれの機能に対応するコネクションごとに分類し、
前記解析する処理は、前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかに対応する機能によって通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
ことを特徴とする付記1〜3のいずれか一つに記載のパケット解析プログラム。
(付記5)コンピュータが、
ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
処理を実行することを特徴とするパケット解析方法。
(付記6)ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
制御部を有することを特徴とするパケット解析装置。
11〜14 コネクション
21〜24 コネクショングループ
31〜37 コネクション
100 パケット解析装置
110 クライアント装置
120 サーバ装置
200 パケット解析システム
210 ネットワーク
220 中継装置
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
410 記憶部
420 受信部
430 分類部
440 処理部
441 保存部
442 比較部
443 判定部

Claims (5)

  1. コンピュータに、
    ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
    分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
    前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
    処理を実行させることを特徴とするパケット解析プログラム。
  2. 前記複数のコネクションのそれぞれのコネクションは、パケットサイズの合計値が第1の閾値以上になるパケット群を分類したコネクションであり、
    前記複数のコネクショングループのそれぞれのコネクショングループは、パケットサイズの合計値が第2の閾値以上になるパケット群を分類したコネクショングループである、 ことを特徴とする請求項1に記載のパケット解析プログラム。
  3. 前記分類する処理は、第1の装置と前記第1の装置に複数の機能を提供する第2の装置とを接続するネットワーク上で通信された複数のパケットを、前記複数の機能のそれぞれの機能に対応するコネクションごとに分類し、
    前記解析する処理は、前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかに対応する機能によって通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
    ことを特徴とする請求項1または2に記載のパケット解析プログラム。
  4. コンピュータが、
    ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
    分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
    前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
    処理を実行することを特徴とするパケット解析方法。
  5. ネットワーク上で通信された複数のパケットをコネクションごとに分類し、
    分類した結果に基づいて、コネクションの生成タイミングについてコネクション間で周期性を有する複数のコネクションと、コネクションの生成タイミングについてコネクショングループ間で周期性を有する複数のコネクショングループとの少なくともいずれかを特定し、
    前記複数のパケットのうち、特定した前記複数のコネクションと前記複数のコネクショングループとの少なくともいずれかにおいて通信されたパケット以外のパケットに基づいて、前記ネットワークの通信品質を解析する、
    制御部を有することを特徴とするパケット解析装置。
JP2017030393A 2017-02-21 2017-02-21 パケット解析プログラム、パケット解析方法、およびパケット解析装置 Pending JP2018137590A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017030393A JP2018137590A (ja) 2017-02-21 2017-02-21 パケット解析プログラム、パケット解析方法、およびパケット解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017030393A JP2018137590A (ja) 2017-02-21 2017-02-21 パケット解析プログラム、パケット解析方法、およびパケット解析装置

Publications (1)

Publication Number Publication Date
JP2018137590A true JP2018137590A (ja) 2018-08-30

Family

ID=63367113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017030393A Pending JP2018137590A (ja) 2017-02-21 2017-02-21 パケット解析プログラム、パケット解析方法、およびパケット解析装置

Country Status (1)

Country Link
JP (1) JP2018137590A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021002701A (ja) * 2019-06-20 2021-01-07 富士通株式会社 パケット解析プログラムおよびパケット解析装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021002701A (ja) * 2019-06-20 2021-01-07 富士通株式会社 パケット解析プログラムおよびパケット解析装置
JP7284398B2 (ja) 2019-06-20 2023-05-31 富士通株式会社 パケット解析プログラムおよびパケット解析装置

Similar Documents

Publication Publication Date Title
US20200145435A1 (en) Suspicious packet detection device and suspicious packet detection method thereof
US7761398B2 (en) Apparatus and method for identifying process elements using request-response pairs, a process graph and noise reduction in the graph
JP2017126283A (ja) 検知プログラム、検知方法および検知装置
CN110489317B (zh) 基于工作流的云系统任务运行故障诊断方法与系统
JP2007334716A (ja) 運用管理システム、監視装置、被監視装置、運用管理方法及びプログラム
CN109698798B (zh) 一种应用的识别方法、装置、服务器和存储介质
Huang et al. Protocol reverse-engineering methods and tools: A survey
US11897527B2 (en) Automated positive train control event data extraction and analysis engine and method therefor
CN111552626A (zh) 使用真实事务数据测试被开发系统的方法和系统
CN117749535B (zh) 一种网络流量异常检测方法及装置
JP2018137590A (ja) パケット解析プログラム、パケット解析方法、およびパケット解析装置
JP6002849B2 (ja) 監視装置、監視方法、および記録媒体
JP6858798B2 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
US8429458B2 (en) Method and apparatus for system analysis
US20140337069A1 (en) Deriving business transactions from web logs
CN112883088A (zh) 一种数据处理方法、装置、设备及存储介质
US20230188439A1 (en) Traffic Monitoring Device, Traffic Monitoring Method, and Traffic Monitoring Program
JP7276743B2 (ja) 異常操作検知装置、異常操作検知方法、およびプログラム
JP5686001B2 (ja) 情報処理装置、メッセージ切分け方法およびメッセージ切分けプログラム
JP6672751B2 (ja) パケット収集方法、パケット収集プログラム及びパケット収集装置
WO2018142704A1 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
KR101428740B1 (ko) 웹 서버 로그를 이용한 행위 모델 자동 생성 시스템 및 방법
CN115426200B (zh) 一种数据采集处理方法及系统
CN115396319B (zh) 数据流分片方法、装置、设备及存储介质
US10031788B2 (en) Request profile in multi-threaded service systems with kernel events