(57)【要約】【課題】ネットワーク上のコネクションを分断する中継装置を経由して通信が行われるネットワーク上のパケットデータの通信経路を解析するパケット解析プログラムを提供すること。【解決手段】ネットワークを中継する中継装置を挟んで第１の装置から第２の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析装置のコンピュータを、前記中継装置の上流側を通過する第１のパケットデータのペイロードと、前記中継装置の下流側を通過する第２のパケットデータのペイロードを比較する比較解析手段、前記各ペイロードの比較結果が一致した場合、前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを組み立てる組み立て手段、として機能させる。【選択図】図３
2018137687.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを中継する中継装置を挟んで第１の装置から第２の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析装置のコンピュータを、
前記中継装置の上流側を通過する第１のパケットデータのペイロードと、前記中継装置の下流側を通過する第２のパケットデータのペイロードを比較する比較解析手段、
前記各ペイロードの比較結果が一致した場合、前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを組み立てる組み立て手段、
として機能させることを特徴とするパケット解析プログラム。
【請求項２】
前記比較解析手段は、前記パケットデータに含まれるペイロードのうち、所定の条件により可変部分を排除して夫々名寄せデータを作成し、
前記各ペイロードの比較において、
前記第１のパケットデータの名寄せデータと、前記第２のパケットデータの名寄せデータを比較する
ことを特徴とする請求項１に記載のパケット解析プログラム。
【請求項３】
前記組み立て手段は、
前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを一つのパケットデータのＴＣＰ／ＩＰヘッダを組み立て、組み立てたＴＣＰ／ＩＰヘッダに、前記比較解析手段の比較対象としたペイロードをつけて一つのパケットデータとして組み立てる
ことを特徴とする請求項１または２に記載のパケット解析プログラム。
【請求項４】
前記パケット解析プログラムは、更に、
前記組み立てられたパケットを含むパケットの情報を統計処理したデータを作成する
ことを特徴とする請求項１乃至３のうち何れか１項に記載のパケット解析プログラム。
【請求項５】
前記中継装置は、ネットワーク上のコネクションを分断するプロキシであること
を特徴とする請求項１乃至４のうち何れか１項に記載のパケット解析プログラム。
【請求項６】
ネットワークを中継する中継装置を挟んで第１の装置から第２の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析装置であって、
前記中継装置の上流側を通過する第１のパケットデータのペイロードと、前記中継装置の下流側を通過する第２のパケットデータのペイロードを比較する比較解析部と、
前記各ペイロードの比較結果が一致した場合、前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを組み立てる組み立て部と、
を備えることを特徴とするパケット解析装置。
【請求項７】
前記比較解析部は、
前記中継装置の上流側に配置された第１のスイッチのミラーポートを経由して前記第１のパケットデータをコピーしたキャプチャデータのペイロードと、前記中継装置の下流側に配置された第２のスイッチのミラーポートを経由して前記第２のパケットデータコピーしたキャプチャデータのペイロードを比較する
ことを特徴とする請求項６に記載のパケット解析装置。
【請求項８】
ネットワークを中継する中継装置を挟んで第１の装置から第２の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析方法であって、
前記中継装置の上流側を通過する第１のパケットデータのペイロードと、前記中継装置の下流側を通過する第２のパケットデータのペイロードを比較し、
前記各ペイロードの比較結果が一致した場合、前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを組み立てる
ことを特徴とするパケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のパケットデータの通信経路を解析するパケット解析プログラム、パケット解析装置及びパケット解析方法に関する。
【背景技術】
【０００２】
クライアント−サーバ間（ＥＮＤ−ＥＮＤ）のネットワーク上を流れるパケットデータの動きを可視化してネットワークの解析する各種の技術が存在する。クライアント−サーバ間のパケットデータの可視化は、クライアント−サーバ間を流れるパケットデータのＴＣＰ／ＩＰヘッダに含まれる送信元ＩＰアドレス（ＳＡ：source address）と宛先ＩＰアドレス（ＤＡ：destination address）を解析してグラフ化することにより行われる。
【０００３】
ネットワーク上のパケットデータを解析する技術として、機器が送信したパケットから第１の送信元ＩＰアドレスを抽出し、機器が受信したパケットから第２の送信先アドレスを抽出し、第１の送信元ＩＰアドレスと、第２の送信先アドレスが一致するか解析する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１７５７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワーク構成上の都合等から、プロキシ（Proxy）、ＦＷ（ファイアーウォール）、ＬＢ（ロードバランサ）等の、ネットワーク上のコネクションを分断する中継装置経由で通信が行われる場合がある。
【０００６】
例えば、プロキシ経由でクライアント装置からサーバ装置へ通信が行われる場合、クライアント装置からプロキシへパケットデータが到着すると、プロキシは、到着したパケットデータの宛先ＩＰアドレスをサーバ装置のＩＰアドレスへ書き換える。またプロキシは、プロキシへ到着したパケットデータの送信元ＩＰアドレスをプロキシ自身のＩＰアドレスに書き換える。そして、プロキシはＩＰアドレスを書き換えたパケットデータをサーバへ転送する。
【０００７】
プロキシ経由のネットワーク上のパケットデータの動きを解析した場合、プロキシを通過する前と後のパケットは別の宛先ＩＰアドレス（または、送信元ＩＰアドレス）を有するパケットであると判定される。
【０００８】
そのため、従来の技術により、送信元ＩＰアドレスと宛先ＩＰアドレスにより、パケットデータの動きを解析した場合には、ネットワーク上のコネクションがプロキシの前後で見かけ上分断されることとなっていた。このため、従来のパケット解析装置ではクライアント−プロキシ間のネットワーク、プロキシ−サーバ間のネットワークを流れる夫々のパケットデータが一致するか否か判断できなかった。その結果、プロキシを経由したクライアント−サーバ間のパケットデータの通信経路を特定できず、パケットデータの動きを解析することができなかった。
【０００９】
本発明の１つの側面に係わる目的は、ネットワーク上のコネクションを分断する中継装置を経由して通信が行われるネットワーク上のパケットデータの通信経路を解析するパケット解析プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、ネットワークを中継する中継装置を挟んで第１の装置から第２の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析装置のコンピュータを、前記中継装置の上流側を通過する第１のパケットデータのペイロードと、前記中継装置の下流側を通過する第２のパケットデータのペイロードを比較する比較解析手段、前記各ペイロードの比較結果が一致した場合、前記第１のパケットデータの送信元ＩＰアドレスと、前記第２のパケットデータの宛先ＩＰアドレスを組み立てる組み立て手段、として機能させることを特徴とするパケット解析プログラム。
【発明の効果】
【００１１】
本発明によれば、ネットワーク上のコネクションを分断する中継装置を経由して通信が行われるネットワーク上のパケットデータの通信経路を解析することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るパケット解析装置を含むパケット解析システムの一例を示す図である
【図２Ａ】パケット解析装置が備える計測サーバとＷｅｂサーバの一例を示す図である
【図２Ｂ】パケット解析装置のハードウェアブロック図である
【図３】Ｌ４組み立て部によりパケットデータを組み立てる例を示す図である。
【図４】パケット解析プログラムによるパケット解析処理の例を示すフローチャートである。
【図５】パケット情報テーブルの例を示す図である
【図６Ａ】パケット解析結果のグラフを示す図である
【図６Ｂ】パケット解析結果のグラフを示す図である
【図６Ｃ】パケット解析結果のグラフを示す図である
【発明を実施するための形態】
【００１３】
以下、図面に従って本発明の実施形態を説明する。
図１は、本発明の実施形態に係るパケット解析装置を含むパケット解析システムの一例を示す図である。図１に示すパケット解析システム１は、特に限定されるものではないがＬＡＮ（Local Area Network）システムである。パケット解析システム１は、ＰＣ（Personal Computer）装置１０と、サーバ装置２０と、プロキシ（Proxy）３０と、スイッチ（ＳＷ）４０ａ、４０ｂと、パケット解析装置１００を含む。
【００１４】
本実施形態においては、プロキシ３０を挟んでＰＣ装置１０とサーバ装置２０の間で通信が行われる例について説明する。ＰＣ装置１０は本発明の第１の装置に、サーバ装置２０は本発明の第２の装置に、プロキシ３０は本発明の中継装置に相当する。
【００１５】
ＰＣ装置１０は、既存のＰＣにより構成され、プロキシ３０を介してサーバ装置２０に対しデータのリクエストを行う。
【００１６】
プロキシ３０は、ＰＣ装置１０とサーバ装置２０の間のネットワーク上に配置され、ＰＣ装置１０からサーバ装置２０へ送信されるパケットデータ及びサーバ装置２０からＰＣ装置１０へ送信されるパケットデータをそれぞれ中継する。プロキシ３０は、例えばＰＣ装置１０におけるＷｅｂブラウザの代理でサーバ装置２０と通信を行う。
【００１７】
サーバ装置２０は、既存のＷｅｂサーバ等により構成され、プロキシ３０を介してＰＣ装置１０からリクエストされたデータのレスポンスを再びプロキシ３０を介してＰＣ装置１０へ対して行う。
【００１８】
以下、プロキシ３０を介してＰＣ装置１０からサーバ装置２０側へパケットデータが送信される例について説明する。
【００１９】
ＰＣ装置１０とプロキシ３０の間（以下、プロキシ３０の「上流側」と呼ぶ）のネットワーク上には、宛先ＩＰアドレス（ＤＡ：destination address）がプロキシ３０であるパケットデータ（以下、「パケットＡ」と呼ぶ）が流れる。プロキシ３０とサーバ装置２０の間（以下、プロキシ３０の「下流側」と呼ぶ）のネットワーク上には、送信元ＩＰアドレス（ＳＡ：source address）がプロキシ３０であるパケットデータ（以下、「パケットＢ」と呼ぶ）が流れる。
【００２０】
スイッチ４０ａはプロキシ３０の上流側に、スイッチ４０ｂはプロキシ３０の下流側に、それぞれ配置されている。スイッチ４０ａとスイッチ４０ｂは、転送するパケットを複製し、複製したパケットを外部装置に出力するミラーポートを有する。例えば、スイッチ４０ａのミラーポートは、プロキシ３０の上流側を通過するパケットＡをコピーし、コピーしたパケットデータをパケット解析装置１００に送信する。同様に、スイッチ４０ｂのミラーポートは、プロキシ３０の下流側を通過するパケットＢをコピーし、コピーしたパケットデータをパケット解析装置１００に送信する。
【００２１】
パケット解析装置１００は、スイッチ４０ａのミラーポートを経由して、パケットＡをコピーしたパケットデータ（キャプチャデータ）をキャプチャする。同様に、パケット解析装置１００は、スイッチ４０ｂのミラーポートを経由して、パケットＢをコピーしたパケットデータ（キャプチャデータ）をキャプチャする。
【００２２】
上述の実施形態では、プロキシ３０を介してＰＣ装置１０とサーバ装置２０の間で通信している例について説明しているがこの限りではない。例えば、ＦＷ（ファイアーウォール）、ＬＢ（ロードバランサ）等の、ＩＰアドレスが書き換えられることによりネットワーク上のコネクションが分断される中継装置に適用することができる。
【００２３】
本実施形態において、コネクションが分断されるとは、ネットワーク上に配置されたプロキシ３０等の中継装置の上流側と下流側において、当該パケットに含まれる宛先ＩＰアドレスや送信元ＩＰアドレスが書き換えられることにより生じる状態を示す。中継装置において宛先ＩＰアドレスや送信元ＩＰアドレスが書き換えられると、プロキシ３０等の中継装置の上流側と下流側において、宛先ＩＰアドレスや送信元ＩＰアドレスが一致しない状態が発生するため、ＩＰアドレスのみから判断する機器からネットワークを解析した場合には、当該ネットワークのコネクションは見かけ上分断される状態となる。
【００２４】
また、本実施形態においては、説明の便宜上、プロキシ３０によりコネクションが分断される前後のパケット受信は各１ポートとするが、この限りではない。例えば、複数のポートにおいて、コネクションが分断されていてもよい。
【００２５】
また、本実施形態においては、２つのスイッチ４０ａ、４０ｂのミラーポートからパケットデータをキャプチャしている例について説明しているがこの限りではない。例えば、プロキシ３０等の中継装置を挟んで通過するネットワーク上に、スイッチを複数配置し、夫々のスイッチのミラーポートからパケットデータをキャプチャして解析することができる。
【００２６】
図２Ａは、パケット解析装置１００が備える計測サーバとＷｅｂサーバの一例を示す図である。図２Ａに示すように、計測サーバ２００は、２つのパケット解析部２１０ａ、２１０ｂと、Ｌ７比較解析部２２０と、Ｌ４組み立て部２３０と、Ｌ４統計部２４０と、ＤＢ（database）２５０を備える。
【００２７】
パケット解析部２１０ａは、後述の通信Ｉ／Ｏを介して、プロキシ３０の上流側を通過するパケットＡをスイッチ４０ａのミラーポートを経由してキャプチャする。
【００２８】
同様に、パケット解析部２１０ｂは、後述の通信Ｉ／Ｏを介して、プロキシ３０の下流側を通過するパケットＢをスイッチ４０ｂのミラーポートを経由してキャプチャする。
【００２９】
パケット解析部２１０ａは、Ｌ４解析部２１１ａとＬ７解析部２１２ａを備える。同様に、パケット解析部２１０ｂは、Ｌ４解析部２１１ｂとＬ７解析部２１２ｂを備える。
【００３０】
Ｌ４解析部２１１ａ、Ｌ４解析部２１１ｂは、ＩＳＯ（International Organization for Standardization）のＯＳＩ（Open Systems Interconnection）参照モデルにおける第３層および第４層に関する解析を行う。
【００３１】
Ｌ４解析部２１１ａは、パケットＡのＴＣＰ／ＩＰヘッダに含まれる送信元ＩＰアドレスと宛先ＩＰアドレスを解析する。同様に、Ｌ４解析部２１１ｂは、パケットＢのＴＣＰ／ＩＰヘッダに含まれる送信元ＩＰアドレスと宛先ＩＰアドレスを解析する。
【００３２】
初めに、プロキシ３０を挟んでＰＣ装置１０からサーバ装置２０の方向へ向けて通信が行われる上りのパケットデータの例について説明する。この場合、ＰＣ装置１０側がネットワークの上流、サーバ装置２０側がネットワークの下流となる。
【００３３】
プロキシ３０の上流側のパケットデータを解析する場合には、Ｌ４解析部２１１ａは、パケットＡの送信元ＩＰアドレス（この場合は、送信元であるＰＣ装置１０を示すＩＰアドレス）を解析する。
【００３４】
これに対し、プロキシ３０の下流側のパケットデータを解析する場合には、Ｌ４解析部２１１ｂは、パケットＢの宛先ＩＰアドレス（この場合は、宛先であるサーバ装置２０を示すＩＰアドレス）を解析する。
【００３５】
次に、プロキシ３０を挟んでサーバ装置２０からＰＣ装置１０の方向へ向けて通信が行われる下りのパケットデータの例について説明する。この場合、サーバ装置２０側がネットワークの上流、ＰＣ装置１０側がネットワークの下流となる。
【００３６】
プロキシ３０の上流側のパケットデータを解析する場合には、Ｌ４解析部２１１ｂは、パケットＢの送信元ＩＰアドレス（この場合は、送信元であるサーバ装置２０を示すＩＰアドレス）を解析する。
【００３７】
これに対し、プロキシ３０の下流側のパケットデータを解析する場合には、Ｌ４解析部２１１ａ、２１１ｂは、パケットＡの宛先ＩＰアドレス（この場合は、宛先であるＰＣ装置１０を示すＩＰアドレス）を解析する。
【００３８】
Ｌ４解析部２１１ａ、Ｌ４解析部２１１ｂは、解析した第３層および第４層の解析結果をＬ７比較解析部２２０及びＬ４組み立て部２３０に通知する。
【００３９】
Ｌ７解析部２１２ａ、Ｌ７解析部２１２ｂは、ＩＳＯのＯＳＩ参照モデルにおける第７層（以下、「Ｌ７」と呼ぶ）に関する解析を行う。
【００４０】
具体的には、Ｌ７解析部２１２ａは、パケットＡに含まれるペイロードを解析する。本実施形態において、ペイロードとは、パケットデータからＴＣＰ／ＩＰヘッダや、当該ネットワークだけで採用している個人情報等の独自の情報などを除いたデータ本体をいう。例えば、ＰＣ装置１０からサーバ装置２０に対しＵＲＬ（Uniform Resource Locator）に対応するデータがリクエストされた場合、ＰＣ装置１０からプロキシ３０に向けて送信される上りパケットＡのペイロード部分には、当該ＵＲＬの情報が格納されている。この場合、Ｌ７解析部２１２ａは、当該ＵＲＬの情報を解析する。
【００４１】
Ｌ７解析部２１２ｂは、Ｌ７解析部２１２ａと同様に、パケットＢに含まれるペイロードを解析する。Ｌ７解析部２１２ａ、２１２ｂは、解析したペイロードの情報をＬ７比較解析部２２０へ通知する。
【００４２】
Ｌ７比較解析部２２０は、プロキシ３０の上流側を通過するパケットＡのペイロードと、プロキシ３０の下流側を通過するパケットＢの各ペイロードを比較するＬ７データ解析処理を行う。
【００４３】
例えば、ＰＣ装置１０からサーバ装置２０に対しパケットＡが送信された場合、Ｌ７解析部２１２ａによってパケットＡの内容が解析され、パケットＡの送信時刻、パケットデータのペイロードに含まれる種別等が判別される。
【００４４】
例えば、ＰＣ装置１０からサーバ装置２０に対しＵＲＬが要求された場合、プロキシ３０からサーバ装置２０に向けて送信される上りパケットＢのペイロード部分には、上述のパケットＡと同様の当該ＵＲＬの情報が格納されている。この場合、Ｌ７解析部２１２ｂは、当該ＵＲＬの情報を解析する。Ｌ７解析部２１２ａ、Ｌ７解析部２１２ｂは、Ｌ７の解析結果をＬ７比較解析部２２０に通知する。ペイロードの解析の手法については、公知の特許第４６１０２４０号の技術を採用することができるため、詳細については省略する。
【００４５】
また、Ｌ７解析部２１２ａ、Ｌ７解析部２１２ｂは、パケットＡ、パケットＢをスイッチ４０ａ、スイッチ４０ｂでそれぞれキャプチャした時刻であるタイムスタンプを取得し、タイムスタンプの情報をＬ４統計部２４０に通知する。パケットデータのタイムスタンプを取得する方法については、公知の特許第４６４８１８１号の技術を採用することができるため、詳細については省略する。
【００４６】
また、ペイロードに含まれるＵＲＬ、ＳＱＬ（Structured Query Language）等のオブジェクト数が膨大となる場合、Ｌ７比較解析部２２０が解析を行う処理負担が大きくなる。そこで、Ｌ７比較解析部２２０は、各パケットＡ、パケットＢの各ペイロードを比較するにあたり、Ｌ７解析部２１２ａ、Ｌ７解析部２１２ｂが解析したパケットＡ、パケットＢに含まれるペイロードの部分のうち可変部分を排除する処理（以下、「名寄せ」と呼ぶ）を行う。
【００４７】
名寄せの手法については、公知の特許第４７２０２１３号の技術内容を用いて行うことができるため、詳細については省略するが、例えば、Ｌ７比較解析部２２０は、予め名寄せに関する各種ルールをＤＢ２５０に記憶しておく。Ｌ７比較解析部２２０は、パケットＡ、パケットＢからそれぞれペイロードを切り出す。Ｌ７比較解析部２２０は、切り出したペイロードから名寄せする初期条件を自動生成してＤＢ２５０に記憶する。そして、Ｌ７比較解析部２２０は、ＤＢ２５０に記憶されているルールに基づき、切り出されたペイロードの名寄せ処理を行う。なお、Ｌ７比較解析部２２０は、名寄せ処理の結果をパケット解析装置１００に接続されているクライアント端末４００のディスプレイ（図示せず）等を通じて利用者に表示する。そして、クライアント端末４００を通じて利用者から指示されたリクエストに基づき、Ｌ７比較解析部２２０は、ＤＢ２５０に記憶されている名寄せルールを編集する。Ｌ７比較解析部２２０は、ペイロードの比較結果をＬ４組み立て部２３０に通知する。
【００４８】
名寄せのルールとしては、例えば、ＵＲＬに含まれる情報のうち、ＩＤや口座番号等の個人を特定するような情報、ＩＤを入力することでログインできる特定のＷｅｂページにおいて個々のＩＤ特有のページの情報、ＵＲＬの末尾に付けられた変数（パラメータ）の情報については、マスキング処理をかけて、Ｌ７比較解析部２２０による比較対象としないルール等を採用することができる。
【００４９】
なお、名寄せを行わない場合、ペイロードに含まれるＵＲＬ、ＳＱＬ等のオブジェクト数が膨大となる可能性があるが、正確性を優先させる場合には、ペイロードの完全一致が望ましい。このため、ネットワークの解析状況の正確性に合わせて、利用者の指示に基づき本実施形態の名寄せ処理の実行を省略することもできる。
【００５０】
Ｌ４組み立て部２３０は、Ｌ７比較解析部２２０により比較が行われたパケットＡとパケットＢの各ペイロードの比較結果が一致したか否か判定する。そして、各ペイロードの比較結果が一致した場合、Ｌ４組み立て部２３０は、パケットデータ結合処理を行う。パケットデータ結合処理では、Ｌ４組み立て部２３０は、プロキシ３０の上流側を通過するパケットＡの送信元ＩＰアドレス（ＳＡ）と、プロキシ３０の下流側を通過するパケットＢの宛先ＩＰアドレス（ＤＡ）を結合し、一つのパケットデータのＴＣＰ／ＩＰヘッダを組み立てる。そして、Ｌ４組み立て部２３０は、組み立てたＴＣＰ／ＩＰヘッダに、比較対象としたペイロードをつけて一つのパケットデータ（以下、「組み立てパケット」と呼ぶ）として組み立てる。このように、特定の機器から送信されたパケットが、何れの機器宛のパケットであるか明確になるため、パケットの解析が容易になる。
Ｌ４組み立て部２３０により組み立てパケットを組み立てる処理については、後述する。Ｌ４組み立て部２３０は、組み立てたパケットデータの情報をＬ４統計部２４０に通知する。
【００５１】
Ｌ４統計部２４０は、Ｌ４に関する統計処理を行う。具体的には、Ｌ４統計部２４０は、Ｌ４組み立て部２３０により組み立てられたＥＮＤ−ノード間（ＰＣ装置１０〜サーバ装置２０）のパケットに基づいて、サブネット単位や時間集計（分／時／日／月）した送受信パケット数及びバイト数、パケットのロス数、ＲＴＴ等のデータを統計処理し、その統計結果のデータをパケット情報テーブルとしてＤＢ２５０に保存する。ＤＢ２５０には、Ｌ４統計部２４０により統計処理されたデータが格納される。Ｌ４統計部２４０により統計処理されたパケット情報テーブルのデータについては、後述する。
【００５２】
Ｗｅｂサーバ３００は、Ｊａｖａ（登録商標）アプレット（applet）３１０と、ソフトウェア群３２０を備える。
【００５３】
Ｊａｖａアプレット３１０は、サーブレット（Servlet）等の小さなアプリケーション部品等により構成され、Ｌ４統計部２４０により統計処理されＤＢ２５０に保存されたパケット情報のデータをクライアント端末４００からのリクエストに応じて、ＨＴＭＬ（HyperText Markup Language）としてレスポンスする。
【００５４】
ソフトウェア群３２０は、Ｗｅｂサーバソフトとサーブレットコンテナを備える。Ｗｅｂサーバソフトは、Ｗｅｂサーバ３００を動作させるのに必要なソフトウェアである。サーブレットコンテナは、Ｊａｖａアプレット３１０を構成するサーブレットを動作させるのに必要なソフトウェアである。
【００５５】
Ｗｅｂサーバ３００は、Ｊａｖａアプレット３１０を、パケット解析装置１００のプロセッサ（図示せず）が実行することによって実現される。Ｗｅｂサーバ３００は、クライアント端末４００から指示されるグラフ種別、表示期間、ＥＮＤ−ＥＮＤの指定などの要求に応じて各種サーバソフトから問合せに応答する。
【００５６】
クライアント端末４００は、既存のＰＣにより構成される。クライアント端末４００にはＷｅｂブラウザがインストールされている。
【００５７】
利用者がＷｅｂブラウザ４１０を通じて、パケット解析結果の表示を指示すると、クライアント端末４００がパケット解析装置１００のＷｅｂサーバ３００にリクエストを送信する。そして、Ｗｅｂサーバ３００からリクエストに対応するレスポンスが戻ってくると、クライアント端末４００のＷｅｂブラウザ４１０は、レスポンス結果であるパケット解析結果のグラフを表示する。クライアント端末４００のブラウザ４１０上で表示するパケット解析結果のグラフの具体例については後述する。
【００５８】
図２Ｂは、パケット解析装置１００のハードウェアブロック図である。パケット解析装置１００は、ＣＰＵ（Central Processing Unit）５１２、ＲＡＭ（Random Access Memory）５１４、記憶部５１６、通信Ｉ／Ｏ５１８、ＤＢ２５０及びバス５２０を有する。
【００５９】
ＣＰＵ５１２は、記憶部５１６からプログラムを読込み、読込んだプログラムに従って、パケット解析装置１００を統括的に制御する。プログラムには、後述するパケット解析プログラム，アプリケーション、モジュール等が含まれる。
【００６０】
ＲＡＭ５１４は、記憶部５１６から読込まれたプログラムや各種データを展開するワーキングエリアである。記憶部５１６は、ＨＤＤ（Hard Disk Drive）やフラッシュメモリである。記憶部５１６には、アプリケーション等の前述したパケット解析プログラムを含む各種プログラムが記憶される。ＤＢ２５０には、パケット情報が保存された後述のパケット情報テーブルが格納されている。
【００６１】
通信Ｉ／Ｏ５１８は、ＮＩＣ（Network Interface Card）等により構成され、接続されるクライアント端末４００とデータやコマンドの送受信を行うとともに、スイッチ４０ａ、スイッチ４０ｂからパケットデータを受信する。ＣＰＵ５１２と、ＲＡＭ５１４等の各部位がバス５２０で接続される。ＮＩＣについては、既存のインターフェースの構成を採用できるため説明を省略する。
【００６２】
図３を参照して、Ｌ４組み立て部２３０によりパケットデータを組み立てる例について説明する。図３は、Ｌ４組み立て部２３０によりパケットデータを組み立てる例を示す図である。ここでは、説明の便宜上、プロキシ３０を挟んでＰＣ装置１０からサーバ装置２０の方向へ通信が行われる上りのパケットデータを組み立てる場合について説明する。
【００６３】
本実施形態においては、プロキシ３０のプロキシ３０の上流側を通過する上りのパケットＡの送信元ＩＰアドレス（ＳＡ）が、「ａ」であり、プロキシ３０のプロキシ３０の下流側を通過する上りのパケットＢの宛先ＩＰアドレス（ＤＡ）が、「ｃ」であるとする。
【００６４】
この場合、Ｌ４組み立て部２３０は、プロキシ３０の上流側のパケットＡの送信元ＩＰアドレス（ＳＡ）「ａ」を、ＥＮＤノード間（ＰＣ装置１０〜サーバ装置２０）を上り方向に通過するパケット（以下、「組み立てパケット」と呼ぶ）の送信元ＩＰアドレス（ＳＡ）として結合する。
【００６５】
また、Ｌ４組み立て部２３０は、プロキシ３０の下流側のパケットＢの宛先ＩＰアドレス（ＤＡ）「ｃ」を、組み立てパケットの宛先ＩＰアドレス（ＤＡ）として組み立てる。
【００６６】
この結果、プロキシ３０を挟んでＰＣ装置１０からサーバ装置２０の方向へ通信が行われる上りのパケットデータＴＣＰ／ＩＰヘッダに含まれる送信元ＩＰアドレス（ＳＡ）は「ａ」に、宛先ＩＰアドレス（ＤＡ）は「ｃ」に組み立てられる。尚、パケットＡのペイロードに含まれるＵＲＬの情報「http://xxx.jp/」と、パケットＢのペイロードに含まれるＵＲＬの情報「http://xxx.jp/」が一致する場合、Ｌ４組み立て部２３０は、この一致したペイロードの情報を組み立てパケットのペイロードとして一つのパケットデータを組み立てる。
【００６７】
次に、本実施形態に係るパケット解析装置１００によるパケット解析処理について説明する。図４は、パケット解析プログラムによるパケット解析処理の例を示すフローチャートである。
【００６８】
初めに、Ｌ７比較解析部２２０は、Ｌ７データの名寄せ処理を行う（ステップＳ１１）。この処理では、Ｌ７解析部２１２ａ、Ｌ７解析部２１２ｂが解析したパケットＡ、パケットＢに含まれるペイロードの部分のうち可変部分を排除する処理を行う。
【００６９】
次に、Ｌ７比較解析部２２０は、Ｌ７データ解析処理を行う（ステップＳ１２）。この処理では、Ｌ７比較解析部２２０は、スイッチ４０ａのミラーポートを経由してキャプチャしたプロキシ３０の上流側を通過するパケットデータのペイロードと、スイッチ４０ｂのミラーポートを経由してキャプチャしたプロキシ３０の下流側を通過するパケットデータのペイロードとを比較する。
【００７０】
Ｌ４組み立て部２３０は、２箇所から受信したＬ７データが一致したか否かを比較し判定する（ステップＳ１３）。この処理では、プロキシ３０の上流側に配置されたスイッチ４０ａと、プロキシ３０の下流側に配置されたスイッチ４０ｂの２箇所から受信した各ペイロードが一致したか否かが判定される。２箇所から受信したＬ７データが一致した場合（ステップＳ１３のＹＥＳ）には、Ｌ４組み立て部２３０は、パケットデータ結合処理を行い、組み立てパケットを組み立てる（ステップＳ１４）。ステップＳ１４のパケットデータ結合処理は、上り方向に通信されるパケットデータと、下り方向に通信されるパケットデータの双方の方向別に行われる。
【００７１】
初めに、プロキシ３０を挟んでＰＣ装置１０からサーバ装置２０の方向へ通信が行われる上りのパケットデータを組み立てる場合におけるパケットデータ結合処理について説明する。この場合、Ｌ４組み立て部２３０は、プロキシ３０の上流側を通過するパケットＡの送信元ＩＰアドレス（ＳＡ）と、プロキシ３０の下流側を通過するパケットＢの宛先ＩＰアドレス（ＤＡ）を結合して一つのパケットデータのＴＣＰ／ＩＰヘッダを組み立てる。そして、Ｌ４組み立て部２３０は、組み立てたＴＣＰ／ＩＰヘッダに、ステップＳ１３で比較対象としたペイロードをつけて一つの組み立てパケットを組み立てる。
【００７２】
次に、プロキシ３０を挟んでサーバ装置２０からＰＣ装置１０の方向へ通信が行われる下りのパケットデータを組み立てる場合におけるパケットデータ結合処理について説明する。この場合、Ｌ４組み立て部２３０は、プロキシ３０の上流側を通過するパケットＢの送信元ＩＰアドレス（ＳＡ）と、プロキシ３０の下流側を通過するパケットＡの宛先ＩＰアドレス（ＤＡ）を結合して一つのパケットデータのＴＣＰ／ＩＰヘッダを組み立てる。そして、Ｌ４組み立て部２３０は、組み立てたＴＣＰ／ＩＰヘッダに、ステップＳ１３で比較対象としたペイロードをつけて一つの組み立てパケットを組み立てる。
【００７３】
Ｌ４組み立て部２３０は、ステップＳ１４において行ったパケットデータ結合処理により組み立てた組み立てパケット（ＥＮＤ−ＥＮＤノード）の情報をＤＢ２５０に格納し（ステップＳ１５）、処理はステップＳ１６に進む。
【００７４】
ステップＳ１３に戻り、２箇所から受信したＬ７データが一致しなかった場合(ステップＳ１３のＮＯ)、即ち、スイッチ４０ａまたはスイッチ４０ｂの各ミラーポートのうち一方のミラーポートからしかペイロードが同一のパケットが受信されなかった場合、処理はステップＳ１７に進む。
【００７５】
Ｌ７比較解析部２２０は、ＰＣ装置１０〜プロキシ３０間から受信したパケットがあるか否かを判定する（ステップＳ１７）。ＰＣ装置１０〜プロキシ３０間から受信したパケットがある場合（ステップＳ１７のＹＥＳ）には、Ｌ７比較解析部２２０は、プロキシ３０のキャッシュまたはアクセス制限により、サーバ装置２０宛のパケットはないと判断する（ステップＳ１８）。そして、Ｌ７比較解析部２２０は、ＥＮＤ−ＥＮＤはＰＣ装置１０〜プロキシ３０間と判定する（ステップＳ１９）。
【００７６】
Ｌ４組み立て部２３０は、ステップＳ１９において判定したＰＣ装置１０〜プロキシ３０間のパケットデータの情報をＤＢ２５０に格納し（ステップ１５）、処理はステップＳ１６に進む。
【００７７】
ステップＳ１７に戻り、ＰＣ装置１０〜プロキシ３０間から受信したパケットがない場合（ステップＳ１７のＮＯ）、Ｌ７比較解析部２２０は、プロキシ３０〜サーバ装置２０間から受信したパケットがあるか否かを判定する（ステップＳ２０）。
【００７８】
プロキシ３０〜サーバ装置２０間から受信したパケットがあるか否かを判定する（ステップＳ２０）。プロキシ３０〜サーバ装置２０間から受信したパケットがない場合（ステップＳ２０のＮＯ）、Ｌ７比較解析部２２０は、受信パケットなしと判断する（ステップＳ２１）。
【００７９】
このように、プロキシ３０の機能によっては、プロキシ３０―サーバ装置２０間のパケットが存在しない場合もある。例えば、プロキシ３０が、Ｗｅｂページなどの情報の一時的な保存をする場合、プロキシ３０のキャッシュを使用する場合、プロキシ３０−サーバ装置２０間の通信がない場合、即ちプロキシ３０が保存してあるデータをＰＣ装置１０へ送信する場合には、プロキシ３０―サーバ装置２０間のパケットデータが存在しない場合がありうる。
【００８０】
また、プロキシ３０が、ＰＣ装置１０がサーバ装置２０へリクエストしたＵＲＬへのアクセスを禁止したり、不適切なコンテンツをフィルタリングしてアクセスを制御した場合、ＦＷ（ファイアーウォール）としての機能を有する場合も同様に、プロキシ３０―サーバ装置２０間のパケットデータが存在しない場合がありうる。このような場合は、Ｌ７比較解析部２２０は、プロキシ３０のキャッシュまたはアクセス制限にてサーバ装置２０宛のパケットはなかったと判断する。この処理が終了すると、パケット解析処理は終了となる。
【００８１】
これに対し、プロキシ３０〜サーバ装置２０間から受信したパケットがある場合（ステップＳ２０のＹＥＳ）、Ｌ７比較解析部２２０は、プロキシ３０がサーバ装置２０からＰＣ装置１０宛のレスポンスパケットを遮断したと判断する（ステップＳ２２）。
【００８２】
そして、Ｌ７比較解析部２２０は、ＥＮＤ−ＥＮＤはプロキシ３０〜サーバ装置２０間と判定する（ステップＳ２３）。
【００８３】
Ｌ４組み立て部２３０は、ステップＳ２３において判定したプロキシ３０〜サーバ装置２０間のパケットの情報をＤＢ２５０に格納する（ステップ１５）。
【００８４】
ステップＳ１６において、Ｌ４統計部２４０は、ＤＢ２５０に保存されたパケット情報に基づきサブネットや時間集計等の集計処理を行う。この集計処理では、ＤＢ２５０に格納された組み立てパケット（ＥＮＤ−ＥＮＤの情報）、ＰＣ装置１０〜プロキシ３０の間のパケット、プロキシ３０〜サーバ装置２０の間のパケットの情報に基づいて、Ｌ４統計部２４０が集計する統計処理を行う。Ｌ４統計部２４０は、集計結果をパケット情報としてＤＢ２５０のパケット情報テーブル（後述の図５参照）に保存する処理を行う。この処理が終了すると、パケット解析処理は終了となる。
【００８５】
図５を参照して、Ｌ４統計部２４０によりＤＢ２５０に保存されるパケット情報テーブルについて説明する。図５は、パケット情報テーブルの例を示す図である。図５に示すように、パケット情報テーブルには、単位時刻における各アドレスのパケット毎に、送信量、ＮＷ遅延、送信ロス、送信数を含む複数のパケットデータの情報が保存されている。
【００８６】
時刻は、ネットワーク上を通過する各パケットが、スイッチ４０ａまたはスイッチ４０ｂのミラーポートを経由してキャプチャされた時刻であるタイムスタンプが取得された時刻である。この時刻は上記キャプチャされた時刻に限定されるものではなく、ＰＣ装置１０またはサーバ装置２０からパケットが送信された時刻、Ｌ４組み立て部２３０により組み立てパケットが組み立てられた時刻、等様々な時刻を採用することができる。
【００８７】
アドレスは、パケットデータのＴＣＰ／ＩＰヘッダに含まれるＩＰアドレスの情報が格納されている。Ｌ４組み立て部２３０により組み立てられた組み立てパケットについては、プロキシ３０の上流側を通過するパケットデータの送信元ＩＰアドレスと、プロキシ３０の下流側を通過するパケットデータの宛先ＩＰアドレスとに基づいて、組み立てられたＩＰヘッダの情報がアドレスとして格納されている。
【００８８】
本実施形態においては、説明の便宜上、特定のアドレス毎にアドレスＡ、アドレスＢ、アドレスＣ、・・・と簡略化した符号（アルファベット）を各々対応付けて付しているがこの限りではなく、実際のＩＰヘッダの情報を格納することもできる。
【００８９】
送信量は、当該パケットを送信する際のデータサイズである。
ＮＷ遅延は、スイッチ４０ａで上りのパケットをキャプチャした時刻と、スイッチ４０ｂで当該上りのパケットのリクエストに応じた下りのパケットをキャプチャした時刻の差分である。
【００９０】
本実施形態においては、上記のようにスイッチ４０ａで上りのパケットをキャプチャした時刻と、スイッチ４０ｂで当該上りのパケットのリクエストに応じた下りのパケットをキャプチャした時刻の差分をＮＷ遅延としているがこの限りではなく、例えば、サーバ装置２０にパケットが送信された時刻と、ＰＣ装置１０にパケットが送信された時刻の差分等、様々な遅延を採用することができる。
【００９１】
送信ロスは、ネットワーク上でパケットデータを送信している途中で、消失したパケットの数である。なお、送信ロスはキャッシュやアクセス制限によりパケットが存在しない場合を考慮して送信ロスの計算から除外する。
【００９２】
送信数は、ＰＣ装置１０からサーバ装置２０へパケットを送信した数、または、サーバ装置２０からＰＣ装置１０へパケットを送信した数である。
【００９３】
次に、図６Ａ，６Ｂ，６Ｃは、パケット情報テーブルに基づきパケット解析結果のグラフを表示する例について説明する。図６Ａ，６Ｂ，６Ｃは、パケット解析結果のグラフを示す図である。
【００９４】
利用者の操作に基づき、クライアント端末４００のディスプレイ（図示せず）に表示されるＷｅｂブラウザ４１０を通じて解析するネットワーク上の対象（ロケーション）、パケット解析結果のグラフ種別、期間、ＥＮＤ−ＥＮＤの指定等の指示が行われると、クライアント端末４００は、パケット解析装置１００のＷｅｂサーバ３００に当該指示に対応するリクエストを送信する。
【００９５】
パケット解析装置１００のＷｅｂサーバ３００は、クライアント端末４００からリクエストを受信すると、ＤＢ２５０に保存されているパケット情報テーブルを参照してクライアント端末４００からのリクエストに対応するレスポンスをクライアント端末４００に送信する。クライアント端末４００は、パケット解析装置１００のＷｅｂサーバ３００からのレスポンス結果として、例えば、図６Ａ，６Ｂ，６Ｃに示すようなパケット解析結果のグラフを、Ｗｅｂブラウザ４１０を通じてディスプレイに表示する。
【００９６】
図６Ａ、図６Ｂ、図６Ｃでは、図５のパケット情報テーブルに表示される情報のうち、特に、単位時刻「９：００−９：０１」、「９：０１―９：０２」を含む単位時刻毎の点をプロットした、ＩＰアドレスＡのパケットに対する、送信量、ＮＷ遅延、ロス率の推移が表示されている。
【００９７】
図６Ａでは、単位時刻毎に送信されるＩＰアドレスＡにおけるパケットの送信量の推移が表示されている。利用者が図６Ａのグラフを見ることで、プロキシ３０を経由して通信が行われるＰＣ装置１０〜サーバ装置２０間（ＥＮＤ−ＥＮＤ）のネットワーク上のパケットデータのトラフィックを容易に解析してネットワークを監視することができる。
【００９８】
図６Ｂでは、単位時刻毎に送信されるＩＰアドレスＡにおけるネットワーク遅延の推移が表示されている。利用者が図６Ｂのグラフを見ることで、プロキシ３０を経由して通信が行われるＰＣ装置１０〜サーバ装置２０間（ＥＮＤ−ＥＮＤ）のネットワーク上のパケットデータのネットワーク遅延を容易に解析してネットワークを監視することができる。
【００９９】
図６Ｃでは、単位時刻毎に送信されるＩＰアドレスＡにおけるパケットのロス率の推移が表示されている。利用者が図６Ｃのグラフを見ることで、プロキシ３０を経由して通信が行われるＰＣ装置１０〜サーバ装置２０間（ＥＮＤ−ＥＮＤ）のネットワーク上のパケットのロス率を容易に解析してネットワークを監視することができる。
【０１００】
尚、本実施形態においては、図６Ａ〜図６Ｃのグラフにおいて、ＩＰアドレスＡのグラフの表示例のみ説明したが、これに限られるものではなく、複数のＩＰアドレス情報を重畳して表示したり、並べて表示したりすることができる。
【０１０１】
本実施形態においては、既存のスイッチの設定を変えて、既存のネットワーク上に流れるパケットデータをコピーしたパケットをキャプチャするだけで、パケットデータの解析を行うことができる。したがって、本実施形態のパケット解析装置１００は、既存のネットワーク構成を変更せずにネットワークを運用することができる。即ち、新たな機器をネットワーク上に繋ぐことにより現在安定稼働しているネットワーク上の構成を変更することで生じるリスクや現在安定稼働している機器に新たなソフトウェアを導入することで生じるリスクをなくし、かつ、新たな機器を導入することにより生じるコスト増を防いでネットワークを運用することができる。
【０１０２】
尚、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能であることはもちろんである。
【符号の説明】
【０１０３】
１    パケット解析システム
１０  ＰＣ装置
２０  サーバ装置
３０  プロキシ
４０ａ  スイッチ
４０ｂ  スイッチ
１００  パケット解析装置
２００  計測サーバ
２１０ａ  パケット解析部
２１０ｂ  パケット解析部
２１１ａ  Ｌ４解析部
２１１ｂ  Ｌ４解析部
２１２ａ  Ｌ７解析部
２１２ｂ  Ｌ７解析部
２２０  Ｌ７比較解析部
２３０  Ｌ４組み立て部
２４０  Ｌ４統計部
２５０  ＤＢ
３００  Ｗｅｂサーバ
３１０  Ｊａｖａアプレット
３２０  ソフトウェア群
４００  クライアント端末
４１０  Ｗｅｂブラウザ
５１２  ＣＰＵ
５１４  ＲＡＭ
５１６  記憶部
５１８  通信Ｉ／０
５２０  バス
【図１】
2018137687.tif 000003
【図２Ａ】
2018137687.tif 000004
【図２Ｂ】
2018137687.tif 000005
【図３】
2018137687.tif 000006
【図４】
2018137687.tif 000007
【図５】
2018137687.tif 000008
【図６Ａ】
2018137687.tif 000009
【図６Ｂ】
2018137687.tif 000010
【図６Ｃ】
2018137687.tif 000011