(57)【特許請求の範囲】
【請求項１】
複数の中継装置のそれぞれは、
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置は、
前記複数の中継装置からパケットを受信し、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれるコネクション情報が第１テーブルに記録されているかを判定し、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知し、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録し、
前記中継装置は、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータが実行するパケット取得方法。
【請求項２】
複数の中継装置のそれぞれは、
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置は、
前記複数の中継装置からパケットを受信し、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出し、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれるコネクション情報のパケットを送らないように指示する指示情報を通知し、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録し、
前記中継装置は、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータが実行するパケット取得方法。
【請求項３】
複数の中継装置からパケットを受信する受信部と、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報が第１テーブルに記録されているかを判定する判定部と、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知する通知部と、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録する記録部とを有する、
分析装置。
【請求項４】
複数の中継装置からパケットを受信する受信部と、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出する算出部と、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報のパケットを送らないように指示する指示情報を通知する通知部と、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録する記録部と、を有する、
分析装置。
【請求項５】
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録する記録部と、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信する送信部と、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信する受信部と、を有し、
前記記録部は、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
中継装置。
【請求項６】
複数の中継装置からパケットを受信し、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報が第１テーブルに記録されているかを判定し、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知し、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録する、
処理をコンピュータに実行させるプログラム。
【請求項７】
複数の中継装置からパケットを受信し、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出し、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報のパケットを送らないように指示する指示情報を通知し、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録する、
処理をコンピュータに実行させるプログラム。
【請求項８】
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット取得方法、分析装置、中継装置及びプログラムに関する。
【背景技術】
【０００２】
端末間で通信される通信パケットの複製を分析装置に送り、分析装置が受信した該通信パケットの複製を解析することで端末間におけるネットワークの状態を監視することが行われている（例えば、特許文献１及び特許文献２参照）。解析の一例としては、通信往復遅延時間（ＲＴＴ：Round Trip Time、以下、「ＲＴＴ」ともいう。）の測定が挙げられる。通信パケットの複製は、例えば端末間に設けられたスイッチのミラーリング機能を利用することにより所定の分析装置に送ることが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１８４７９９号公報
【特許文献２】特開２００７−２８２００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、端末間に複数のスイッチが存在するネットワーク構成では、同一の通信パケットが複数のスイッチを経由することがあり、経由するそれぞれのスイッチがそれぞれのミラーリング機能により通信パケットの複製を分析装置に送ってしまう可能性がある。これによれば、複数のスイッチから同一の通信パケットの複製が重複して分析装置に送られるため、トラフィック量が多くなり、分析装置に大容量のメモリが必要となる。
【０００５】
これに対して、同一の通信パケットの複製が分析装置に送られることを回避するために、ある特定のスイッチのミラーリング機能のみを有効にすることが考えられる。しかしながら、その場合分析に必要な通信パケットが特定のスイッチを経由しないために分析装置に届かない可能性がある。例えば、端末間に第１及び第２のスイッチが存在するネットワーク構成において第１のスイッチのミラーリング機能のみを有効にする場合、第２のスイッチから分析装置には、分析に必要な通信パケットを含むすべてのパケットが送られない。このため、分析に必要な通信パケットが第１のスイッチを経由しないために分析装置が分析に必要な通信パケットを取得できない可能性がある。
【０００６】
更にＲＴＴの測定結果は、通信パケットを取得するスイッチの位置によって大きく異なる。例えばデータ送信端末とそのデータに対する確認信号（ＡＣＫ）送信端末との通信では、データ送信端末側に近い位置のスイッチが転送したパケットに基づき算出されたＲＴＴは、より遠い位置のスイッチが転送したパケットに基づき算出されたＲＴＴよりも精度が高い。よって、データ送信端末側により近い位置のスイッチによりミラーリングされた通信パケットを取得して分析装置に送ることが好ましい。他方、前記２端末はそれぞれがデータ送信端末、確認信号（ＡＣＫ）送信端末のいずれにも成り得る。このため、データ送信端末側により近い位置のスイッチは一意には定まらない。この結果、同一の通信パケットの複製が分析装置に送られることを回避しつつ、分析装置によるＲＴＴの分析の精度を向上させるスイッチの特定が困難であるという課題がある。
【０００７】
そこで、一側面では、本発明は、ＲＴＴの精度を向上させる通信パケットを送信する中継装置を特定することを目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、複数の中継装置のそれぞれは、コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、前記分析装置は、前記複数の中継装置からパケットを受信し、受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれるコネクション情報が第１テーブルに記録されているかを判定し、前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知し、前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録し、前記中継装置は、前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、処理をコンピュータが実行するパケット取得方法が提供される。
【発明の効果】
【０００９】
一側面によれば、ＲＴＴの精度を向上させる通信パケットを送信する中継装置を特定することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態にかかる情報処理システムの全体構成の一例を示す図。
【図２】一実施形態にかかる分析装置のハードウェア構成の一例を示す図。
【図３】一実施形態にかかる分析装置の機能構成の一例を示す図。
【図４】一実施形態にかかるスイッチの機能構成の一例を示す図。
【図５】一実施形態にかかるクライアント及びサーバ間のコネクションの確立を示す図。
【図６】一実施形態にかかるパケット構造及びコネクションテーブルの一例を示す図。
【図７】一実施形態にかかるミラーリングスイッチ登録テーブルの一例を示す図。
【図８】一実施形態にかかるスイッチＩＤテーブルの一例を示す図。
【図９】一実施形態にかかる時刻情報登録テーブルの一例を示す図。
【図１０】一実施形態にかかるＲＴＴスイッチ登録テーブルの一例を示す図。
【図１１】一実施形態にかかるＲＴＴの算出を説明するための図。
【図１２】多階層の情報処理システムの構成の一例を示す図。
【図１３】多階層の情報処理システムにおける通信パケットのミラーリングの一例を示す図。
【図１４】多階層の情報処理システムにおけるミラーリングされたパケットの重複の一例を示す図。
【図１５】一実施形態にかかるコネクション単位のミラーリングの一例を示す図。
【図１６】一実施形態にかかるコネクション単位のミラーリングの一例を示す図。
【図１７】一実施形態にかかるコネクション単位のミラーリングの一例を示す図。
【図１８】第１実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図１９】第１実施形態にかかる分析装置が実行するパケット処理の一例を示すフローチャート。
【図２０】第１実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２１】第１実施形態にかかる分析装置が実行するＲＴＴ算出処理の一例を示すフローチャート。
【図２２】第１実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２３】第２実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２４】第２実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２５】第２実施形態にかかる分析装置が実行するパケット処理の一例を示すフローチャート。
【図２６】第３実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２７】第３実施形態にかかる分析装置が実行するパケット処理の一例を示すフローチャート。
【図２８】第３実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図２９】第３実施形態にかかる分析装置が実行するＲＴＴ算出処理の一例を示すフローチャート。
【図３０】第３実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【図３１】第３実施形態にかかる分析装置が実行するＲＴＴ算出処理の一例を示すフローチャート。
【図３２】第３実施形態にかかるパケットのミラーリングの一例を示すタイムチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１２】
［情報処理システムの全体構成］
最初に、本発明の一実施形態に係る情報処理システム１の構成例について、図１を参照しながら説明する。図１は、本実施形態に係る分析装置２が使用される情報処理システム１の一例である。
【００１３】
情報処理システム１は、サーバ１２ａ〜１２ｃ（以下、総称して「サーバ１２」ともいう。）及びクライアント１３ａ〜１３ｃ（以下、総称して「クライアント１３」ともいう。）を有する。サーバ１２ａ〜１２ｃ及びクライアント１３ａ〜１３ｃは、ＬＡＮ（Local Area Network）等のネットワーク１１を介して接続されている。分析装置２は、サーバ１２ａ〜１２ｃ及びクライアント１３ａ〜１３ｃ間で通信されるパケット（以下、「通信パケット」ともいう。）を取り込み、取り込んだパケットから情報処理システム１の通信の状態及びネットワークの品質を分析する。
【００１４】
スイッチ１０ａ〜１０ｃ（以下、総称して「スイッチ１０」ともいう。）は、サーバ１２ａ〜１２ｃ及びクライアント１３ａ〜１３ｃ間の通信をスイッチングしている。スイッチ１０ａ〜１０ｃは、分析装置２のＮＩＣ６（ネットワークインタフェースカード：Network Interface Card）（図２参照）にＬＡＮ等のネットワーク１１を介して接続されている。スイッチ１０ａ〜１０ｃは、スイッチ１０ａ〜１０ｃを介してサーバ１２ａ〜１２ｃ及びクライアント１３ａ〜１３ｃ間で通信される所定のポートに入出力されるパケットを複製して分析装置２に転送するミラーリング機能を備える。スイッチ１０ａ〜１０ｃとして、例えば、ＬＡＮスイッチなどを用いることができる。スイッチ１０は、中継装置の一例である。中継装置の他の例としては、ルータが挙げられる。
【００１５】
分析装置２は、スイッチ１０ａ〜１０ｃのミラーリング機能を用いて、サーバ１２ａ〜１２ｃ及びクライアント１３ａ〜１３ｃ間で通信されるパケットを受信する。サーバ１２ａ〜１２ｃは、それぞれ、クライアント１３ａ〜１３ｃからのサービス要求を受けると、クライアント１３ａ〜１３ｃに対してサービスを提供する端末の一例である。サーバ１２ａ〜１２ｃは、例えば、不図示のＣＰＵ（Central Processing Unit）、メモリ、ディスクドライブ、ＮＩＣなどを有する。
【００１６】
クライアント１３ａ〜１３ｃは、サーバ１２ａ〜１２ｃに対してサービスを要求し、サーバ１２ａ〜１２ｃからサービスを提供される端末の一例であり、例えば、不図示のＣＰＵ、メモリ、ディスクドライブ、ＮＩＣなどを備える。
【００１７】
なお、情報処理システム１に含まれるサーバ１２及びクライアント１３の個数は、３台に限られず、１台又は２台以上であり得る。また、スイッチ１０の個数は、３台に限られないが、後述される課題が生じるのは２台以上の場合である。
【００１８】
また、サーバ１２及びクライアント１３は、データ送信側の端末と、そのデータに対する確認信号（ＡＣＫ）送信側の端末のいずれにも成り得る。
【００１９】
［分析装置２のハードウェア構成］
次に、分析装置２のハードウェアの構成例について、図２を参照しながら説明する。分析装置２は、ＣＰＵ３ａ，３ｂ、メモリ４、ディスクドライブ５及びＮＩＣ６を有する。ＣＰＵ３ａ，３ｂは、種々の制御や演算を行なう処理装置である。
【００２０】
ＣＰＵ３ａ，３ｂは、メモリ４上のオペレーションシステム７や分析アプリケーション８を用いて各種処理を実行する。ＣＰＵ３ａ，３ｂは、例えば、分析アプリケーション８を実行することにより、情報処理システム１の通信の状態を分析する。なお、図２ではＣＰＵ３ａ，３ｂをＣＰＵ＃０，ＣＰＵ＃１とも示す。
【００２１】
メモリ４は、例えば、ＲＡＭ（Random Access Memory）などの一時記録領域である。メモリ４には、例えば、分析装置２が分析を行なうパケット（１）９ａ〜パケット（３）９ｃが一時的に格納される。
【００２２】
ディスクドライブ５は、データを記録するための記録領域を有する。ディスクドライブ５としては、公知のＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などを用いることができる。ディスクドライブ５には、オペレーションシステム７と分析アプリケーション８とが保存され、起動時にメモリ４に展開される。また、ディスクドライブ５には、分析装置２が使用する各種テーブル等のデータが格納されている（不図示）。
【００２３】
ＮＩＣ６は、ＬＡＮ等を介して分析装置２をスイッチ１０に接続するためのネットワークアダプタである。ＮＩＣ６の一例としては、ＬＡＮカードが挙げられる。ＮＩＣ６は、プロミスキャスモードに対応している。プロミスキャスモードとは、ＮＩＣ６の動作モードの１つであり、自分宛のデータパケットでないパケットも取り込んで処理するモードである。
【００２４】
標準の動作モードにおいては、ＮＩＣ６は自分宛のパケットを受信したときにだけ、当該パケットの受信をオペレーションシステム７に通知する。一方、プロミスキャスモードにおいては、ＮＩＣ６はパケットの宛先に関わらずパケットの到着をオペレーションシステム７に通知し、オペレーションシステム７は自分宛のパケット以外のパケットも受信することができる。
【００２５】
ＮＩＣ６に到達したパケットは、ＮＩＣ６のプロミスキャスモードを用いて、オペレーションシステム７を経由してメモリ４に記録され、ＣＰＵ３により解析される。なお、ＮＩＣ６の動作、特に、ＣＰＵ３とのデータのやり取りを行なう手法については公知であるため、その詳細な説明を省略する。
【００２６】
オペレーションシステム７は、分析装置２のシステム全体を管理するソフトウェアであり、ＯＳとも表記される。オペレーションシステム７としては、ＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）などの公知のオペレーションシステムを使用することができる。
【００２７】
［分析装置の機能構成］
次に、分析装置２の機能構成例について、図３を参照しながら説明する。分析装置２は、オペレーションシステム７を使用して機能するＬ４解析部２０と記録部２５と通知部２６とを有する。Ｌ４解析部２０は、受信部２１、コネクション管理部２２、判定部２３及び算出部２４を有する。受信部２１は、例えばＮＩＣ６により実現される。コネクション管理部２２、判定部２３及び算出部２４は、例えばＣＰＵ３により実現される。
【００２８】
受信部２１は、スイッチ１０からパケットの複製を受信する。ＮＩＣ６は、パケットを受信する受信部の一例である。コネクション管理部２２は、パケットのコネクションの確立を管理する。判定部２３は、受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれるコネクション確立情報が分析装置２のミラーリングスイッチ登録テーブル４０に記録されているかを判定する。以下では、パケットの送信元と送信先とに関する情報を組み合わせた情報をコネクション情報ともいう。コネクション情報の一例としては、送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス、送信元ポート番号が挙げられる。つまり、コネクション情報は、コネクション確立情報であってもよく、コネクション確立情報とは送信先及び送信元のＩＰアドレス及びポート番号が逆向きの情報であってもよい。
【００２９】
算出部２４は、パケットの複製を送信した後に該パケットが正しく送信されたことを示すＡＣＫパケット（確認パケット）の複製を受信するまでの時間（ＲＴＴ）を算出する。算出部２４は、パケットの複製を受信した時刻情報とそのＡＣＫパケットの複製を受信した時刻情報とからＲＴＴを算出する。
【００３０】
記録部２５は、スイッチＩＤテーブル３０、ミラーリングスイッチ登録テーブル４０、時刻情報登録テーブル５０及びＲＴＴスイッチ登録テーブル６０の各種テーブルの情報を記録する。
【００３１】
通知部２６は、分析装置２に最初にコネクションを確立するパケットを送信したスイッチ１０以降に同じコネクションを確立するパケットを送信したスイッチ１０に、重複パケットの複製を送信しないように指示する指示情報を通知（以下、「コネクション情報削除通知」ともいう。）する。通知部２６は、ＮＩＣ６を経由してコネクション情報削除通知を送信する。
【００３２】
［スイッチの機能構成］
次に、スイッチ１０の機能構成例について、図４を参照しながら説明する。本実施形態では、多階層のスイッチ構造を有し、各スイッチ１０は同一の機能構成を有する。スイッチ１０は、受信部１４、制御部１５、送信部１６及び記録部１７を有する。
【００３３】
記録部１７は、受信部１４で受信したパケットに含まれるコネクション確立情報をコネクションテーブル７０に記録する。コネクションテーブル７０は、ミラーリングの対象となるコネクション確立情報を記録するテーブルである。例えば、コネクションテーブル７０には、図５に示すようなクライアント１３とサーバ１２との間のコネクションの確立のためのパケットに含まれるコネクション確立情報が記録される。つまり、コネクションの確立のためのパケットに含まれるコネクション確立情報がコネクションテーブル７０に記憶されたコネクション情報となる。コネクションテーブル７０は、コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を記録する第２テーブルの一例である。
【００３４】
図５には、接続方向がクライアント１３からサーバ１２へ向かう場合のコネクションの確立の一実施形態が示されている。コネクション確立時には、ＳＹＮ、ＳＹＮ  ＡＣＫ、ＡＣＫの各パケットの通信後にコネクションが接続状態となる。なお、コネクションの確立時に通信されるパケットの接続シーケンスについては公知であるため、その説明を省略する。
【００３５】
図５では、通信パケット内の送信元ＩＰアドレスを「ＳＡ」にて示し、送信先ＩＰアドレスを「ＤＡ」にて示し、送信元ポート番号を「ＳＰ」にて示し、送信先ポート番号を「ＤＡ」にて示す。ＳＹＮパケットは、送信元ＩＰアドレス（ＳＡ）「１．１．１．１」、送信先ＩＰアドレス（ＤＡ）「１０．１．１．１」、送信元ポート番号（ＳＰ）「１００００」、送信先ポート番号（ＤＰ）「８０」の各データを有する。
【００３６】
図６（ａ）に示すパケット８１のデータ構造の一例では、パケット８１はＩＰヘッダ８２、ＴＣＰヘッダ８３及びＴＣＰデータ８４を有する。図６（ｂ）はＩＰヘッダ８２のデータ構造を示し、図６（ｃ）はＴＣＰヘッダ８３のデータ構造を示す。
【００３７】
図５に示すＳＹＮパケットの送信元ＩＰアドレス（ＳＡ）「１．１．１．１」は、図６（ｂ）の送信元ＩＰアドレス８２１内のデータを示す。図５に示すＳＹＮパケットの送信先ＩＰアドレス（ＤＡ）「１０．１．１．１」は、図６（ｂ）の送信先ＩＰアドレス８２２内のデータを示す。図５に示すＳＹＮパケットの送信元ポート番号（ＳＰ）「１００００」は、図６（ｃ）の送信元ポート番号８３１を示す。図５に示すＳＹＮパケットの送信先ポート番号（ＤＰ）「８０」は、図６（ｃ）の送信元ポート番号８３２を示す。
【００３８】
図６（ｄ）に示すように、コネクションテーブル７０は、送信先ＩＰアドレス７１、送信先ポート番号７２、送信元ＩＰアドレス７３及び送信元ポート番号７４のコネクション情報を有する。送信先ＩＰアドレス７１は、送信先（接続先；デスティネーション）のＩＰアドレスを示す。送信先ポート番号７２は、送信先（接続先；デスティネーション）のポート番号を示す。送信元ＩＰアドレス７３は、送信元（接続元；ソース）のＩＰアドレスを示す。送信元ポート番号７４は、送信元（接続元；ソース）のポート番号を示す。
【００３９】
図５のＳＹＮパケットの場合、記録部１７は、コネクションテーブル７０の送信先ＩＰアドレス７１に「１０．１．１．１」を記録し、送信先ポート番号７２に「８０」を記録し、送信元ＩＰアドレス７３に「１．１．１．１」を記録し、送信元ポート番号７４に「１００００」を記録する。
【００４０】
コネクション確立時の図５に示すＳＹＮパケットに含まれる送信元ＩＰアドレス（ＳＡ）「１．１．１．１」、送信元ポート番号（ＳＰ）「１００００」、送信先ＩＰアドレス（ＤＡ）「１０．１．１．１」及び送信先ポート番号（ＤＰ）「８０」は、コネクション確立情報の一例である。
【００４１】
ＳＹＮ  ＡＣＫパケットは、送信元ＩＰアドレス（ＳＡ）「１０．１．１．１」、送信元ポート番号（ＳＰ）「８０」、送信先ＩＰアドレス（ＤＡ）「１．１．１．１」、送信先ポート番号（ＤＰ）「１００００」の各データを有する。ＳＹＮ  ＡＣＫパケットに含まれる送信元と送信先とに関する情報は、ＳＹＮパケットに含まれるコネクション確立情報とは送信元と送信先との情報が反対であり同一ではない。よって、ＳＹＮ  ＡＣＫパケットにはコネクション確立情報は含まれず、ＳＹＮ  ＡＣＫパケットに含まれる送信元と送信先とに関する情報はコネクションテーブル７０には記録されない。ただし、ＳＹＮ  ＡＣＫパケットに含まれる送信元と送信先とに関する情報は、ＳＹＮパケットに含まれるコネクション確立情報と論理的に同一のコネクション情報である。
【００４２】
本実施形態では、コネクションの確立の一例としてＴＣＰコネクションの接続シーケンスを挙げて説明するが、コネクションの確立においてはＴＣＰコネクションに限られず、他の通信プロトコルに従い接続シーケンスが実行されてもよい。
【００４３】
ＴＣＰコネクションでは、送信先ＩＰアドレス、送信先ＴＣＰポート番号、送信元ＩＰアドレス、送信元ＴＣＰポート番号がコネクション確立情報である。なお、送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス、送信元ポート番号は、送信元と送信先とに関する情報を組み合わせたコネクション情報の一例である。
【００４４】
送信部１６は、パケットを送信する。受信部１４は、パケットを受信する。受信部１４は、パケットに含まれるコネクション確立情報と論理的に同一（以下では、単にコネクション確立情報と同一ともいう。）のコネクション情報が分析装置２のミラーリングスイッチ登録テーブル４０にすでに記録されていると判定された場合、送信元のスイッチ１０のコネクションテーブル７０からコネクション情報を削除するコネクション情報削除通知を受ける。制御部１５は、スイッチ全体を制御する。
【００４５】
［各種テーブル］
分析装置２の記録部２５は、コネクションを確立するパケットに含まれるコネクション確立情報をミラーリングスイッチ登録テーブル４０に記録する。図７は、ミラーリングスイッチ登録テーブル４０の一例を示す。具体的には、ミラーリングスイッチ登録テーブル４０の送信先ＩＰアドレス４１、送信先ポート番号４２、送信元ＩＰアドレス４３及び送信元ポート番号４４には、コネクションを確立するパケットに含まれるコネクション確立情報が記録される。また、ミラーリングスイッチ登録テーブル４０には、当該コネクション確立情報を含むパケットの送信元のスイッチを識別するスイッチＩＤ４５が記録される。コネクション管理部２２は、パケットの複製が分析装置２の物理ポートに転送されたかを管理する。記録部２５は、図８に一例を示すようなスイッチＩＤテーブル３０を予め記録している。スイッチＩＤテーブル３０は、イーサネット（登録商標）の物理ポートを示すインターフェース３１をスイッチＩＤ３２に変換するためのテーブルである。例えばパケットの複製が分析装置２の物理ポート「ｅｔｈ１」のインターフェースから入力された場合、記録部２５は、スイッチＩＤテーブル３０に基づきスイッチＩＤ３２のＳＷ１を選択し、ミラーリングスイッチ登録テーブル４０のスイッチＩＤ４５にＳＷ１を記録する。ミラーリングスイッチ登録テーブル４０は、コネクションを確立するパケットに含まれるコネクション確立情報と、受信したパケットの送信元のスイッチ１０の識別情報とを対応させて記録する第１テーブルの一例である。
【００４６】
時刻情報登録テーブル５０には、分析装置２がパケットの複製を取得した時刻情報が記録される。図９に、時刻情報登録テーブル５０の一例を示す。記録部２５は、ミラーリングスイッチ登録テーブル４０に記録されているコネクション情報を時刻情報登録テーブル５０の送信先ＩＰアドレス５１、送信先ポート番号５２、送信元ＩＰアドレス５３及び送信元ポート番号５４に記録する。また、記録部２５は、例えば、パケットの複製のシーケンス番号８３３（図６（ｃ）参照）をＴＣＰシーケンス番号５５に記録し、パケットの複製を受信した時刻を時刻情報５６に記録する。
【００４７】
図１０のＲＴＴスイッチ登録テーブル６０には、パケットのＲＴＴ（通信往復遅延時間）を算出するために、コネクション確立後にパケットの複製がスイッチ１０を通過した時刻が記録される。記録部２５は、コネクション確立情報をＲＴＴスイッチ登録テーブル６０の送信先ＩＰアドレス６１、送信先ポート番号６２、送信元ＩＰアドレス６３及び送信元ポート番号６４に記録する。また、記録部２５は、各パケットの複製を転送する各スイッチのスイッチＩＤ（１）６５，スイッチＩＤ（２）６７，・・スイッチＩＤ（３）６９と各スイッチをパケットが通過した時刻情報（１）６６、時刻情報（２）６８、・・時刻情報（Ｎ）７０を記録する。
【００４８】
［ＲＴＴの算出］
分析装置２は、クライアント１３及びサーバ１２間のＲＴＴを測定するために、ＴＣＰプロトコルのデータ転送パケットの取得時間及び該データ転送パケットのＡＣＫパケットの取得時間を測定する。ＡＣＫパケットは、確認パケットの一例である。分析装置２は、データ転送パケット及びＡＣＫパケットの取得時間の時間差からＲＴＴを算出する。
【００４９】
ミラーリングするスイッチ１０が複数存在する場合、クライアント１３またはサーバ１２に近いスイッチで複製したパケットの送信時間に基づきＲＴＴを算出した方が精度良くＲＴＴを算出できる。具体的には、図１１に示すように、クライアント１３から送信したデータ転送パケットに対してサーバ１２からＡＣＫパケットが送信された場合について説明する。この場合、クライアントに近いスイッチ１０ａでミラーリングしたパケットから算出したＲＴＴ１は、サーバ１３に近いスイッチ１０ｂでミラーリングしたパケットから算出したＲＴＴ２よりも実際のＲＴＴに近い値が得られる。
【００５０】
逆にサーバ１２からのデータ転送パケットに対してクライアント１３からＡＣＫパケットが送信された場合、スイッチ１０ｂでミラーリングしたパケットから算出したＲＴＴ３は、スイッチ１０ａでミラーリングしたパケットから算出したＲＴＴ４よりも精度が高い。
【００５１】
多階層の情報処理システム１では、各端末がクライアント１３及びサーバ１２の機能を有し、同時に動作させてシステムを構築するため、クライアント１３またはサーバ１２に近いスイッチを選択することが困難である。
【００５２】
図１２に示すスイッチ１０ａ〜１０ｃ（ここでは、スイッチ１０ｄは非対象）は、物理ポート単位でパケットを複製し、複製したパケットを分析装置２に送信する。このため、スイッチ１０ａ〜１０ｃでミラーリングを行うと、複数のスイッチ１０ａ〜１０ｃから分析装置２に複製した同一のパケットが重複して送信され得る。この結果、分析装置２に転送されるパケットのトラフィック量が多くなり、分析装置２のパケット受信能力を超え、分析装置２にて解析が困難になる場合がある。例えば、図１２では、クライアント１３ａと１階層目のサーバ１２ａとの間の通信におけるパケットの複製が、スイッチ１０ａ及びスイッチ１０ｂから重複して分析装置２に送られる。また、クライアントとして機能する１階層目のサーバ１２ａと２階層目のサーバ１２ｂとの間の通信におけるパケットの複製が、スイッチ１０ｂ及びスイッチ１０ｃから重複して分析装置２に送られる。
【００５３】
この課題を解決するため、クライアント１３及びサーバ１２間の通信経路から、パケットが重複しないスイッチを選択し、パケットの重複を発生させないことで、トラフィック量を削減し、分析装置２への負荷を軽減させる方法がある。具体的に、図１３のクライアント１３ａ、１階層目サーバ１２ａ、２階層目サーバ１２ｂで構成され、クライアント１２ａ及び１階層目サーバ１２ａ間と、１階層目サーバ１２ａ及び２階層目サーバ１２ｂ間で通信する情報処理システムを例に挙げて説明する。
【００５４】
この情報処理システムでは、ミラーリングするスイッチを指定するミラーリング指定ポート方法１は、１階層目サーバ１２ａが接続されているスイッチ１０ｂの物理ポートだけを指定する。一方、ミラーリング指定ポート方法２は、クライアント１３ａが接続されているスイッチ１０ａのポートを指定し、かつ２階層目サーバ１２ｂが接続されているスイッチ１０ｃのポートを指定する。
【００５５】
上記ミラーリング指定方法では、ミラーリング指定ポート方法１又はミラーリング指定ポート方法２のいずれかにより指定されたスイッチが複製したパケットのみが分析装置２に転送される。これにより、パケットを重複させずにクライアント１３またはサーバ１２に近いスイッチでミラーリングし、ＲＴＴを精度よく求めることができる。
【００５６】
しかしながら、図１４に示すように、複数のクライアント１３ａ、１３ｂが接続され、クライアント毎に通信経路が異なる場合、パケット重複によるトラフィック増加の課題が発生してしまう。例えば第１のクライアント１３ａと１階層目サーバ１２ａとの通信、及び１階層目サーバ１２ａと２階層目サーバ１２ｂとの通信が行われる経路と、第２のクライアント１３ｂと２階層目サーバ１２ｂとの通信が行われる経路が混在する場合について説明する。この場合、ミラーリング指定ポート方法１を行うと、１階層目サーバ１２ａが接続されているスイッチ１０ｃの物理ポートだけをミラーリング指定するため、第２のクライアント１３ｂと２階層目サーバ１２ｂとの通信がミラーリングできなくなる。
【００５７】
そこで、２階層目サーバ１２ｂが接続されているスイッチ１０ｄの物理ポートもミラーリング指定を行うと、第２のクライアント１３ｂ及び２階層目サーバ１２ｂ間の通信はミラーリング可能となる。この場合、１階層目サーバ１２ａ及び２階層目サーバ１２ｂ間の通信がスイッチ１０ｃとスイッチ１０ｄでミラーリングしてしまうため、パケット重複によるトラフィック増加の課題が発生してしまう。そこで、第１実施形態〜第３実施形態にかかるパケット取得方法により、下記の課題１，２を解決する。
【００５８】
［課題１］複数のスイッチ１０で構成されている情報処理システム１では、同一パケットが複数のスイッチ１０で中継される。このため、データ転送パケットとＡＣＫパケットとによりＲＴＴを正確に求めるためには、データ転送パケットの送信元になるべく近いスイッチ１０でミラーリングしたデータ転送パケットとそのＡＣＫパケットの時間差に基づきＲＴＴを算出する必要がある。
【００５９】
［課題２］複数のスイッチ１０で構成されている情報処理システム１のネットワークを監視する場合、中継したスイッチ１０の全てでミラーリングを行うとパケットが重複してしまい通信のトラフィック量が増大する。このため、複製したパケットが重複して分析装置２に送信されないように、ミラーリングするスイッチ１０を選択する必要がある。
【００６０】
本実施形態にかかる情報処理システムでは、ＳＤＮ（Software-Defined Network）に対応したスイッチ１０が使用される。ＳＤＮに対応したスイッチ１０は、例えば運用者がデフォルト値として指定した、送信先ＩＰアドレス、送信先ＴＣＰポート番号、送信元ＩＰアドレス、送信元ＴＣＰポート番号の組み合わせ（コネクション確立情報）に基づきミラーリング対象のパケットを送出する。そして、スイッチ１０は、コネクション確立情報を各スイッチ１０にて記録されるコネクションテーブル７０に保存する。
【００６１】
分析装置２が、スイッチ１０から複製したＳＹＮパケットを受信したとき、ミラーリングスイッチ登録テーブル４０にコネクション確立情報が記録される。図５に示すＳＹＮパケットの場合、ミラーリングスイッチ登録テーブル４０には、送信先ＩＰアドレス４１に送信先ＩＰアドレス（ＤＡ）「１０．１．１．１」が記録され、送信先ポート番号４２にに送信先ポート番号（ＤＰ）「８０」が記録され、送信元ＩＰアドレス４３に送信元ＩＰアドレス（ＳＡ）「「１．１．１．１」が記録され、送信元ポート番号４４に送信元ポート番号（ＳＰ）「１００００」が記録される。また、スイッチＩＤ４５には、複製したＳＹＮパケットを入力したインターフェース３１から特定されるスイッチＩＤ「ＳＷ１」が記録される。
【００６２】
ただし、例えばスイッチ１０から送出されたパケットが分析装置２に到達するまでの間に失われた場合のように異常が発生したとき、分析装置２はＳＹＮパケットを取得せずにＳＹＮ  ＡＣＫパケットを取得することがある。この場合、ＳＹＮ  ＡＣＫパケットがコネクションを確立するパケットになり、分析装置２が、スイッチ１０からＳＹＮ  ＡＣＫパケットを複製して受信したとき、ミラーリングスイッチ登録テーブル４０にＳＹＮ  ＡＣＫパケットのコネクション確立情報が記録される。
【００６３】
つまり、この場合には、ＳＹＮパケットに含まれる送信元と送信先とに関する情報に替えて、ＳＹＮ  ＡＣＫパケットに含まれる送信元と送信先とに関する情報がコネクション確立情報となる。
【００６４】
ただし、ＳＹＮ  ＡＣＫパケットに含まれる送信元と送信先とに関する情報がミラーリングスイッチ登録テーブル４０に記録される場合、サーバ１３を送信先、クライアント１２を送信元としてミラーリングスイッチ登録テーブル４０に記録される。具体的には、図５に示すＳＹＮパケットの場合、ミラーリングスイッチ登録テーブル４０には、送信先ＩＰアドレス４１に送信元ＩＰアドレス（ＳＡ）「１０．１．１．１」が記録され、送信先ポート番号４２に送信元ポート番号（ＳＰ）「８０」が記録され、送信元ＩＰアドレス４３に送信先ＩＰアドレス（ＤＡ）「１．１．１．１」が記録され、送信元ポート番号４４に送信先ポート番号（ＤＰ）「１００００」が記録される。
【００６５】
保存後、スイッチ１０は、コネクションテーブル７０に記録されたコネクション情報に応じたパケットだけを複製し、分析装置２に送信する機能を有する。コネクションテーブル７０に記録されたコネクション情報に応じたパケットとは、各パケットが有する送信元と送信先とに関するコネクション情報が、コネクションテーブル７０に記録されたコネクション情報と論理的に同一のパケットである。
【００６６】
また、コネクションテーブル７０から特定のコネクション情報を削除することで、削除されたコネクション情報に応じたパケットの複製を行わない設定をすることができる。そのため、分析装置２は、複製したパケットの受信に応じてコネクション情報を記録したミラーリングスイッチ登録テーブル４０に基づき分析装置２に最初にコネクションを確立するパケットを送信したスイッチ１０以外のスイッチは、同一コネクションのミラーリング対象としないよう指示をする。
【００６７】
例えば、図１５に示す情報処理システムにおいて、ここでは便宜上スイッチ１０ａ、１０ｂ及びスイッチ１０ｅは非対象（本機能が含まれていないスイッチ）とし、１階層目サーバ１２ａに近いスイッチ１０ｃ及び２階層目サーバ１２ｂに近いスイッチ１０ｄのみを対象スイッチ（本機能が含まれているスイッチ）として説明する。このとき、第１のクライアント１３ａ及び１階層目サーバ１２ａ間の通信経路上に存在するスイッチ１０ｃにより通信パケットがミラーリングされ、分析装置２に送られる。
【００６８】
次に、第２のクライアント１３ｂ及び２階層目サーバ１２ｂ間の通信経路上に存在するスイッチ１０ｄによって通信パケットがミラーリングされ、分析装置２に送られる。次に、１階層目サーバ１２ａ及び２階層目サーバ１２ｂ間の通信経路上に存在するスイッチ１０ｃ、１０ｄをパケットが通過する際、分析装置２がコネクションの確立を最初に検出したスイッチ１０ｃ以外の他スイッチ１０ｄで同一コネクションの確立を検出する。その場合、１階層目サーバ１２ａが接続されているスイッチ１０ｃによりパケットがミラーリングされ、スイッチ１０ｄからのミラーリングは行われない。後述される図１８のステップＳ９、Ｓ１０に示すように、後に受信したＳＹＮパケットのスイッチＩＤにより特定されるスイッチ１０ｄは、分析装置２からコネクション情報削除通知を受信する。この通知に応じてスイッチ１０ｄの記録部１７は、コネクションテーブル７０ｄから該当するコネクション情報を削除する。
【００６９】
これにより、本実施形態にかかるパケット取得方法によれば、複数のスイッチ１０間でミラーリングする同一パケットの分析装置２への重複転送を防止し、トラフィック量を低減することができる。また、分析装置２がコネクションの確立を最初に検出したスイッチ１０ｃのミラーリング機能のみを有効にすることで、クライアント１３に最も近い方のスイッチ１０でパケットをミラーリングし、それ以外のスイッチ１０のミラーリング機能を停止させることが可能となる。これによりＲＴＴを正確に算出することができる。
【００７０】
分析装置２は、複製されたパケットを解析し、コネクションを確立するパケット（例えば、ＳＹＮパケット）を検出することが可能である。ＴＣＰ／ＩＰの通信方式を例にして説明すると、分析装置２は、ＳＹＮパケットを検出した場合、入力インターフェースから取得可能な受信したスイッチのアドレスであるスイッチＩＤとＳＹＮパケットのコネクション確立情報を解析する。スイッチＩＤとコネクション確立情報は、ミラーリングスイッチ登録テーブル４０に保存される。
【００７１】
分析装置２は、ミラーリングスイッチ登録テーブル４０を検索し、コネクション確立情報と論理的に同一のコネクション情報が既に登録されていれば、他のスイッチ１０で既にミラーリング対象の同一コネクションが確立されていると判定できる。よって、分析装置２は、２番目以降にＳＹＮパケットを検出したスイッチ（以下、「他スイッチ」ともいう。）と判定する。分析装置２は、他スイッチからＳＹＮパケットの通知があったと判定した場合、他スイッチが管理するコネクションテーブル７０から該当コネクション情報を削除することを指示するコネクション情報削除通知を他スイッチに送信する。これにより、他スイッチが管理するコネクションテーブル７０から該当コネクション情報が削除され、ミラーリングの対象から除かれることにより同一パケットの重複転送にかかる上記課題を解消できる。
【００７２】
図１６には、コネクション情報削除通知がスイッチ１０ｄに送られる例が示されている。これにより、スイッチ１０ｄのコネクションテーブル７０からコネクション情報が削除される。これにより、かかるコネクションに関するスイッチ１０ｄからのミラーリングが停止される。なお、コネクション情報削除通知に含まれる情報の一例としては、ミラーリング削除要求、送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス、送信元ポート番号、ミラーリング出力ポートが挙げられる。
【００７３】
ミラーリングスイッチが多段階の場合の情報処理システムの例を、図１７を参照しながら説明する。この場合、第１のクライアント１３ａ及び１階層目サーバ１２ａの通信が発生し、スイッチ１０ａから分析装置２にＳＹＮパケットの複製が送信される。次に、スイッチ１０ｃから分析装置２にＳＹＮパケットの複製が送信される。分析装置２では、順番に２個のＳＹＮパケットの複製が受信され、２番目のＳＹＮパケットの複製を検出した時、ＳＹＮパケットの複製の入力インターフェース（ｅｔｈ３）からスイッチ１０ｃのアドレス（スイッチＩＤ）を特定する。分析装置２は、スイッチＩＤのスイッチ１０ｃに対して、パケットのコネクション情報（接続先ＩＰアドレス、接続先ポート番号、接続元ＩＰアドレス、接続元ポート番号）をコネクションテーブル７０から削除するコネクション情報削除通知を送信する。これに応じてコネクションテーブル７０から該当コネクション情報が削除されることで、該当コネクションのスイッチ１０ｃからのミラーリングが停止する。これにより、同一パケットの複製が重複して分析装置２に送信されることを回避できる。
【００７４】
同様にして、第２のクライアント１３ａ及び２階層目サーバ１２ｂの通信が発生し、スイッチ１０ｂから分析装置２にＳＹＮパケットの複製が送信されたとき、スイッチ１０ｄから同一パケットの複製が重複して分析装置２に送信されることを回避できる。
【００７５】
同様にして、１階層目サーバ１２ａ及び２階層目サーバ１２ｂの通信が発生し、スイッチ１０ｃから分析装置２にＳＹＮパケットの複製が送信されたとき、スイッチ１０ｄから重複するパケットの複製が分析装置２に送信されることを回避できる。
【００７６】
次に、以上に説明した分析装置２と複数のスイッチ１０との間におけるパケットのミラーリング（パケットの取得方法）及びＲＴＴの算出方法について、第１実施形態から第３実施形態までを順に説明する。
＜第１実施形態＞
［パケットのミラーリング］
第１実施形態に係る情報処理システム１におけるパケットのミラーリング処理について図１８〜図２２を参照しながら説明する。図１８、図２０及び図２２は、ＴＣＰ／ＩＰのコネクション確立から切断までミラーリングの動作の一例を示す。図１９及び図２１は、その際の分析装置の動作の一例を示す。
【００７７】
本実施形態では、１階層目のサーバ１２ａと２階層目のサーバ１２ｂとのパケット通信において、１階層目のサーバ１２ａに近い方のスイッチ１０ｃと２階層目のサーバ１２ｂに近い方のスイッチ１０ｄとから分析装置２へパケットのミラーリングが行われる。
【００７８】
まず、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＳＹＮパケットが送信される。スイッチ１０ｃの受信部１４は、当該パケットを受信する。スイッチ１０ｃの記録部１７は、自スイッチ１０ｃのコネクションテーブル７０ｃにＳＹＮパケットが有する送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス及び送信元ポート番号を登録する（ステップＳ１）。例えば、図６（ｄ）に示すように、送信先ＩＰアドレス７１、送信先ポート番号７２、送信元ＩＰアドレス７３及び送信元ポート番号７４に「１０．１．１．１」、「８０」、「１．１．１．１」、「１００００」が登録される。次に、スイッチ１０ｃの送信部１６は、ＳＹＮパケットの複製を分析装置２に転送する（ステップＳ２）。
【００７９】
同様に、スイッチ１０ｄの記録部１７は、自スイッチ１０ｄのコネクションテーブル７０ｄにＳＹＮパケットが有する送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス及び送信元ポート番号を登録する（ステップＳ３）。次に、スイッチ１０ｄの送信部１６は、ＳＹＮパケットの複製を分析装置２に転送する（ステップＳ４）。
【００８０】
分析装置２の受信部２１は、複製したＳＹＮパケットを受信する。判定部２３は、ミラーリングスイッチ登録テーブル４０（図７）を検索し（ステップＳ５）、ＳＹＮパケットに含まれるコネクション確立情報と同一のコネクション情報がミラーリングスイッチ登録テーブル４０に既に登録されているかを判定する。判定部２３がコネクション確立情報と同一のコネクション情報が登録されていないと判定した場合、記録部２５は、当該コネクション確立情報をミラーリングスイッチ登録テーブル４０に登録する（ステップＳ６）。これにより、ミラーリングスイッチ登録テーブル４０に、送信先ＩＰアドレス４１、送信先ポート番号４２、送信元ＩＰアドレス４３及び送信元ポート番号４４のコネクション情報が登録される。また、記録部２５は、スイッチＩＤテーブル３０（図８）に基づき、複製したＳＹＮパケットを入力したインターフェース３１からスイッチＩＤ３２を特定し、ミラーリングスイッチ登録テーブル４０のスイッチＩＤ４５に登録する（ステップＳ６）。
【００８１】
受信部２１がスイッチ１０ｄから複製したＳＹＮパケットを受信すると、判定部２３は、ミラーリングスイッチ登録テーブル４０を検索し（ステップＳ７）、ＳＹＮパケットに含まれるコネクション確立情報と同一のコネクション情報が既に登録されているかを判定する。ここでは、ＳＹＮパケットのコネクション確立情報と同一のコネクション情報であってスイッチ１０ｄに対応するスイッチＩＤとは異なるスイッチ１０ｃのスイッチＩＤが既に登録されている。そこで、判定部２３は、異なるスイッチＩＤのコネクション情報が既に登録されていると判定する（ステップＳ８）。通知部２６は、後に受信したＳＹＮパケットのスイッチＩＤにより特定されるスイッチ１０ｄにコネクション情報削除通知を送信する（ステップＳ９）。コネクション情報削除通知を受信したスイッチ１０ｄの記録部１７は、コネクションテーブル７０ｄから該当するコネクション情報を削除する（ステップＳ１０）。
（ミラーリングスイッチ登録テーブル４０への登録）
図１８に示す動作のうち、分析装置２が実行する処理を、図１９のフローチャートを参照しながら説明する。本処理が開始されると、分析装置の受信部２１は、ＳＹＮパケット又はＳＹＮ  ＡＣＫパケットを受信する（ステップＳ１００）。具体的には、受信部２１は、ＳＹＮパケットを受信する。ただし、スイッチ１０から送出されたパケットが分析装置２に到達するまでの間に失われ、分析装置２に到達しなかったときのような異常時には、分析装置２はＳＹＮ  ＡＣＫパケットを受信する。
【００８２】
コネクション管理部２２は、受信したパケットを入力したインターフェース３１を取得する（ステップＳ１０２）。次に、判定部２３は、スイッチＩＤテーブル３０を検索し、受信したパケットを入力したインターフェース３１からスイッチＩＤ３２を取得する（ステップＳ１０４）。次に、判定部２３は、パケットからコネクション確立情報（送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス、送信元ポート番号）を取得する（ステップＳ１０６）。
【００８３】
判定部２３は、ミラーリングスイッチ登録テーブル４０を検索する（ステップＳ１０８）。判定部２３は、取得したコネクション確立情報と同一のコネクション情報がミラーリングスイッチ登録テーブル４０にないと判定した場合（ステップＳ１１０）、記録部２５は、ミラーリングスイッチ登録テーブル４０にコネクション確立情報とスイッチＩＤとを登録する（ステップＳ１１４）。
【００８４】
他方、ステップＳ１１０において判定部２３が、ミラーリングスイッチ登録テーブル４０に同一のコネクション情報があり、かつスイッチＩＤが異なると判定した場合（ステップＳ１１８）、通知部２６は、後に受信したＳＹＮパケットの送信元のスイッチ１０にコネクション情報削除通知を行う（ステップＳ１１６）。
【００８５】
［ＲＴＴの算出］
次に、第１実施形態に係る情報処理システム１におけるＲＴＴの算出処理について図２０を参照しながら説明する。２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＳＹＮ  ＡＣＫパケットが送信されると、スイッチ１０ｃの受信部１４は、ＳＹＮ  ＡＣＫパケットを受信する。制御部１５がコネクションテーブル７０ｃに記録されているコネクション情報と同一の送信元と送信先に関する情報を有するパケットであると判定すると、送信部１６は、ＳＹＮ  ＡＣＫパケットの複製を分析装置２に転送する（ステップＳ１１）。
【００８６】
これに対して、スイッチ１０ｄでは、コネクションテーブル７０ｄに記録されているコネクション情報と同一の送信元と送信先に関する情報を有するパケットでないため、スイッチ１０ｄからのＳＹＮ  ＡＣＫパケットのミラーリングは行われない。
【００８７】
次に、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＡＣＫパケットが送信されると、スイッチ１０ｃの受信部１４は、ＡＣＫパケットを受信し、スイッチ１０ｃの送信部１６は、ＡＣＫパケットの複製を分析装置２に転送する（ステップＳ１２）。
【００８８】
次に、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへデータ転送パケットが送信される。スイッチ１０ｃの受信部１４は、データ転送パケットを受信し、スイッチ１０ｃの送信部１６は、データ転送パケットの複製を分析装置２に転送する（ステップＳ１３）。
【００８９】
分析装置２の受信部２１が、スイッチ１０ｃから送信されたデータ転送パケットの複製を受信する。このとき、判定部２３は、データ転送パケットに含まれる送信元及び送信先に関する情報に基づき、受信したデータ転送パケットがＳＹＮパケットと送信元及び送信先が同方向であるかを判定する（ステップＳ１６）。ここでは、データ転送パケットがＳＹＮパケットと送信元及び送信先が同方向であるため、記録部２５は、図９に示す時刻情報登録テーブル５０の時刻情報５６に、データ転送パケットを受信した時刻を登録する（ステップＳ１７）。
【００９０】
次に、分析装置２の受信部２１が、スイッチ１０ｃから送信されたデータ転送パケットの複製（ステップＳ１４）を受信する。判定部２３は、データ転送パケットに含まれる送信元及び送信先に関する情報に基づき、受信したデータ転送パケットがＳＹＮパケットと送信元及び送信先が同方向であるかを判定する（ステップＳ１８）。ここでは、データ転送パケットがＳＹＮパケットと送信元及び送信先が同方向であるため、記録部２５は、図９に示す時刻情報登録テーブル５０の時刻情報５６に、データ転送パケットを受信した時刻を上書き登録する（ステップＳ１９）。
【００９１】
次に、分析装置２の受信部２１が、スイッチ１０ｃから送信されＡＣＫパケットの複製（ステップＳ１５）を受信する。判定部２３は、ＡＣＫパケットに含まれる送信元及び送信先に関する情報に基づき、受信したデータ転送パケットが同一のコネクション情報を有するＳＹＮパケットと送信元及び送信先が逆方向であると判定する（ステップＳ２０）。この場合、算出部２４は、時刻情報登録テーブル５０から該当するコネクション情報の時刻情報５６を読み出し（ステップＳ２１）、ＡＣＫパケットを受信した時刻と読み出した時刻情報５６との差分からＲＴＴを算出する（ステップＳ２２）。
（ＲＴＴ算出機能）
図２０に示す動作のうち、分析装置２が実行する処理を、図２１のフローチャートを参照しながら説明する。図１９の「１」に続く本処理が開始されると、分析装置２の判定部２３は、受信したパケットの複製がＦＩＮパケットか否かを判定する（ステップＳ１２０）。
【００９２】
判定部２３は、ＦＩＮパケットでないと判定した場合、データ転送パケットか否かを判定する（ステップＳ１２２）。判定部２３は、データ転送パケットであると判定した場合、データ転送パケットがＳＹＮパケットと同方向であるかを判定する（ステップＳ１２４）。ＳＹＮパケットと同方向でないと判定された場合、本処理を終了する。一方、ＳＹＮパケットと同方向であると判定された場合、記録部２５は、時刻情報登録テーブル５０の時刻情報５６に、データ転送パケットを受信した時刻を登録し（ステップＳ１２６）、本処理を終了する。
【００９３】
ステップＳ１２２において、判定部２３は、データ転送パケットでないと判定した場合、受信したパケットの複製がデータ転送パケットに対するＡＣＫパケットかを判定する（ステップＳ１２８）。データ転送パケットに対するＡＣＫパケットでないと判定された場合、分析装置２は本処理を終了する。データ転送パケットに対するＡＣＫパケットであると判定された場合、算出部２４は、時刻情報登録テーブル５０から該当するコネクション情報の時刻情報５６を読み出す（ステップＳ１３０）。算出部２４は、ＡＣＫパケットを受信した時刻と読み出した時刻情報５６との差分からＲＴＴを算出し（ステップＳ１３２）、本処理を終了する。ステップＳ１２０においてＦＩＮパケットであると判定された場合の処理については後述される。
【００９４】
［コネクションの切断］
次に、第１実施形態に係る情報処理システム１におけるコネクションの切断時の処理について図２２を参照しながら説明する。２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＦＩＮパケット（すなわち、コネクションを切断するパケット）が送信される。スイッチ１０ｃの受信部１４は、ＦＩＮパケットを受信する。スイッチ１０ｃの送信部１６は、受信したＦＩＮパケットの複製を分析装置２に転送する（ステップＳ２３）。
【００９５】
分析装置２の受信部２１が複製したＦＩＮパケットを受信すると、判定部２３は、ミラーリングスイッチ登録テーブル４０を検索する（ステップＳ２４）。判定部２３は、ＦＩＮパケットに含まれる送信元及び送信先に関する情報と論理的に同一のコネクション情報を検出し、記録部２５は、当該コネクション情報及びスイッチＩＤをミラーリングスイッチ登録テーブル４０から削除する（ステップＳ２５）。これにより、ミラーリングスイッチ登録テーブル４０から当該コネクション情報の送信先ＩＰアドレス４１、送信先ポート番号４２、送信元ＩＰアドレス４３、送信元ポート番号４４及びスイッチＩＤ４５が削除される。
【００９６】
通知部２６は、削除されたスイッチＩＤ４５により識別されるスイッチ１０ｃにコネクション情報削除通知を送信する（ステップＳ２６）。コネクション情報削除通知が到達する前に、スイッチ１０ｃは、受信したＦＩＮパケットに対するＡＣＫパケットの複製を転送する（ステップＳ２７）。コネクション情報削除通知を受信したスイッチ１０ｃの記録部１７は、コネクションテーブル７０ｃから該当するコネクション情報を削除する（ステップＳ２８）。これにより、スイッチ１０のミラーリングを終了させることができる。
【００９７】
図２１に戻り、コネクションの切断時の分析装置２の処理について説明する。分析装置２の受信部２１がＦＩＮパケットの複製を受信すると、判定部２３は、ステップＳ１２０においてＦＩＮパケットであると判定する。この場合、記録部２５は当該コネクション情報及びスイッチＩＤをミラーリングスイッチ登録テーブル４０から削除する（ステップＳ１３４）。次に、通知部２６は、削除されたスイッチＩＤ４５により識別されるスイッチ１０ｃにコネクション情報削除通知を送信し（ステップＳ１３６）、本処理を終了する。
【００９８】
以上に説明したように、第１実施形態に係る情報処理システム１によれば、複数のスイッチが存在する場合、パケットが重複しないようにミラーリングするスイッチを選択することができる。より詳しくは、分析装置２に最初にコネクションを確立するパケットをミラーリングしたスイッチ以外のスイッチから同一パケットのミラーリングが行われることを防止することができる。これにより、分析装置２に同一パケットが重複して転送されることを防ぐことができる。また、分析装置２に最初にコネクションを確立するパケットをミラーリングしたスイッチ１０のみからパケットがミラーリングされる。これにより、クライアント１３からサーバ１２へのデータ送信では、クライアント１３に最も近いスイッチから転送されたパケットの複製に基づき精度よくＲＴＴを算出することができる。また、サーバ１２からクライアント１３へデータが送信されたときは、サーバ１２に最も近いスイッチから転送されたパケットの複製に基づき精度よくＲＴＴを算出することができる。
＜第２実施形態＞
以上、第１実施形態では、ＴＣＰ／ＩＰのコネクション確立手順（３ウェイハンドシェイク）におけるパケット取得方法について説明した。しかしながら、本実施形態に係るパケット取得方法は、ＴＣＰ／ＩＰのコネクション確立時だけでなく、他のデータ通信方式（例えば、ＨＤＬＣ（High-Level Data Link Control）通信）のコネクション確立手順にも適用可能である。
【００９９】
［パケットのミラーリング］
第２実施形態に係る情報処理システム１におけるパケットのミラーリング処理について図２３〜図２５を参照しながら説明する。図２３〜図２５は、ＨＤＬＣにおける動作モード設定コマンドの一つであるＳＡＢＭＥ（set asynchronous balanced mode：拡張非同期平衡モード設定）のコネクション確立から切断までミラーリングの動作の一例を示す。
【０１００】
まず、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＳＡＢＭＥパケットが送信される。スイッチ１０ｃの受信部１４は、当該パケットを受信する。記録部１７は、自スイッチのコネクションテーブル７０ｃにＳＡＢＭＥパケットが有する送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス及び送信元ポート番号を登録する（ステップＳ３１）。次に、スイッチ１０ｃの送信部１６は、ＳＡＢＭＥパケットの複製を分析装置２に転送する（ステップＳ３２）。
【０１０１】
同様に、スイッチ１０ｄの記録部１７は、自スイッチのコネクションテーブル７０ｄにＳＡＢＭＥパケットが有する送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス及び送信元ポート番号を登録する（ステップＳ３３）。次に、スイッチ１０ｄの送信部１６は、ＳＡＢＭＥパケットの複製を分析装置２に転送する（ステップＳ３４）。
【０１０２】
分析装置２の受信部２１が複製したＳＡＢＭＥパケットを受信すると、判定部２３は、ミラーリングスイッチ登録テーブル４０を検索し（ステップＳ３５）、ＳＡＢＭＥパケットのコネクション確立情報と同一のコネクション情報が既に登録されているかを判定する。判定部２３は、登録されていないと判定した場合、記録部２５は当該コネクション確立情報をミラーリングスイッチ登録テーブル４０に登録する（ステップＳ３６）。これにより、送信先ＩＰアドレス４１、送信先ポート番号４２、送信元ＩＰアドレス４３及び送信元ポート番号４４のコネクション情報がミラーリングスイッチ登録テーブル４０に登録される。また、記録部２５は、スイッチＩＤテーブル３０に基づき、複製したＳＡＢＭＥパケットを入力したインターフェース３１からスイッチＩＤ３２を特定し、ミラーリングスイッチ登録テーブル４０のスイッチＩＤ４５に登録する（ステップＳ３６）。
【０１０３】
受信部２１がスイッチ１０ｄから複製したＳＡＢＭＥパケットを受信すると、判定部２３は、ミラーリングスイッチ登録テーブル４０を検索し（ステップＳ３７）、ＳＡＢＭＥパケットに含まれるコネクション確立情報と同一のコネクションが既に登録されているかを判定する。ここでは、コネクション確立情報と同一のコネクション情報であってスイッチ１０ｄに対応しないスイッチＩＤが既に登録されている。そこで、判定部２３は、異なるスイッチＩＤのコネクション情報が既に登録されていると判定する（ステップＳ３８）。通知部２６は、後に受信したＳＹＮパケットのスイッチＩＤにより特定されるスイッチ１０ｄにコネクション情報削除通知を送信する（ステップＳ３９）。コネクション情報削除通知を受信したスイッチ１０ｄの記録部１７は、コネクションテーブル７０ｄから該当するコネクション情報を削除する（ステップＳ４０）。
【０１０４】
［ＲＴＴの算出］
続いて、第２実施形態に係る情報処理システム１では、図２４に示すように、２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＵＡ（Unnumbered Acknowledgement：非番号制フレーム）パケットが送信される。スイッチ１０ｃの受信部１４は、ＵＡパケットを受信する。スイッチ１０ｃの制御部１５は、コネクションテーブル７０ｃに記録されているコネクション情報に応じた送信元と送信先に関する情報を有するパケットであると判定すると、送信部１６は、ＵＡパケットの複製を分析装置２に転送する（ステップＳ４１）。
【０１０５】
これに対して、スイッチ１０ｄでは、コネクションテーブル７０ｄに記録されているコネクション情報に応じた送信元と送信先に関する情報を有するパケットでないため、スイッチ１０ｄからのＵＡパケットのミラーリングは行われない。
【０１０６】
次に、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＩ−Ｆｒａｍｅ（Information frame：データフレーム）パケットが送信される。スイッチ１０ｃの受信部１４は、Ｉ−Ｆｒａｍｅパケットを受信し、スイッチ１０ｃの送信部１６は、Ｉ−Ｆｒａｍｅパケットの複製を分析装置２に転送する（ステップＳ４２）。
【０１０７】
分析装置２の受信部２１は、スイッチ１０ｃから送信されたＩ−Ｆｒａｍｅパケットの複製を受信する。判定部２３は、Ｉ−Ｆｒａｍｅパケットに含まれるコネクション確立情報に基づき、受信したＩ−ＦｒａｍｅパケットがＳＡＢＭＥパケットと送信元及び送信先が同方向であると判定する（ステップＳ４５）。記録部２５は、時刻情報登録テーブル５０に、受信したデータ転送パケットの受信時刻５６の情報を登録する（ステップＳ４６）。
【０１０８】
次に、２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＲＲ（Receive Ready：確認）パケットが送信される。スイッチ１０ｃの受信部１４は、ＲＲパケットを受信し、スイッチ１０ｃの送信部１６は、ＲＲパケットの複製を分析装置２に転送する（ステップＳ４４）。
【０１０９】
分析装置２の受信部２１は、スイッチ１０ｃから送信されＲＲパケットの複製を受信する。判定部２３は、ＡＣＫパケットに含まれるコネクション情報に基づき、受信したデータ転送パケットのコネクション情報に対応するＳＹＮパケットと送信元及び送信先が逆方向であると判定する（ステップＳ４７）。算出部２４は、時刻情報登録テーブル５０から該当するコネクション情報の時刻情報５６を読み出し（ステップＳ４８）、Ｉ−Ｆｒａｍｅパケットの受信時刻情報とＲＲパケットの受信時刻情報との差分からＲＴＴを算出する（ステップＳ４９）。
【０１１０】
［コネクションの切断］
コネクションの切断時には、図２５に示すように、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＤＩＳＣ（Disconnect：切断パケット）パケットが送信される。スイッチ１０ｃの受信部１４は、ＤＩＳＣパケットを受信する。スイッチ１０ｃの送信部１６は、受信したＤＩＳＣパケットの複製を分析装置２に転送する（ステップＳ５３）。
【０１１１】
分析装置２の受信部２１が複製したＤＩＳＣパケットを受信すると、判定部２３は、ミラーリングスイッチ登録テーブル４０を検索する（ステップＳ５４）。判定部２３がＤＩＳＣパケットに含まれるコネクション情報と同一の情報を検出すると、記録部２５はコネクション情報及びスイッチＩＤをミラーリングスイッチ登録テーブル４０から削除する（ステップＳ５５）。これにより、ミラーリングスイッチ登録テーブル４０から当該コネクション情報の送信先ＩＰアドレス４１、送信先ポート番号４２、送信元ＩＰアドレス４３、送信元ポート番号４４及びスイッチＩＤ４５が削除される。
【０１１２】
通知部２６は、削除されたスイッチＩＤ４５により識別されるスイッチ１０ｃにコネクション情報削除通知を送信する（ステップＳ５６）。コネクション情報削除通知を受信したスイッチ１０ｃの記録部１７は、コネクションテーブル７０ｃから該当するコネクション情報を削除する（ステップＳ５７）。これにより、スイッチ１０のミラーリングを終了させることができる。
【０１１３】
以上に説明したように、第２実施形態に係る情報処理システム１によれば、複数のスイッチが存在する場合、パケットが重複しないようにミラーリングするスイッチを選択することができる。より詳しくは、分析装置２に最初にコネクションを確立するパケットをミラーリングしたスイッチ以外のスイッチから同一パケットのミラーリングが行われることを防止することができる。これにより、分析装置２に同一パケットが重複して転送されることを防ぐことができる。また、分析装置２に最初にコネクションを確立するパケットをミラーリングしたスイッチ１０のみからパケットがミラーリングされる。これにより、クライアント１３からサーバ１２へのデータ送信では、クライアント１３に最も近いスイッチから転送されたパケットの複製に基づき精度よくＲＴＴを算出することができる。また、サーバ１２からクライアント１３へデータが送信されたときは、サーバ１２に最も近いスイッチから転送されたパケットの複製に基づき精度よくＲＴＴを算出することができる。
＜第３実施形態＞
［パケットのミラーリング］
次に、第３実施形態に係る情報処理システム１におけるパケットのミラーリング処理について図２６〜図３２を参照しながら説明する。第３実施形態に係る情報処理システム１では、コネクション確立手順（例えば、ＴＣＰのスリーハンドシェク、ＨＤＬＣ通信など）において一時的なＲＴＴを測定することが可能である。
【０１１４】
例えば、図２６に示すように、まず、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＳＹＮパケットが送信される。スイッチ１０ｃ、１０ｄはＳＹＮパケットを受信し、それぞれの記録部１７は、それぞれのスイッチのコネクションテーブル７０ｃ、７０ｄにＳＹＮパケットが有する送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス及び送信元ポート番号を登録する（ステップＳ６１、Ｓ６３）。次に、それぞれのスイッチの送信部１６は、ＳＹＮパケットの複製を分析装置２に転送する（ステップＳ６２、Ｓ６４）。
【０１１５】
分析装置２の受信部２１が複製したＳＹＮパケットを受信すると、判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索し（ステップＳ６５）、ＳＹＮパケットに含まれるコネクション確立情報と同一の情報が既に登録されているかを判定する。判定部２３は、コネクション確立情報と同一の情報が登録されていないと判定した場合、記録部２５は当該コネクション確立情報をＲＴＴスイッチ登録テーブル６０に登録する（ステップＳ６６）。これにより、送信先ＩＰアドレス６１、送信先ポート番号６２、送信元ＩＰアドレス６３及び送信元ポート番号６４がＲＴＴスイッチ登録テーブル６０に登録される。また、記録部２５は、スイッチＩＤテーブル３０に基づき、複製したＳＹＮパケットを入力したインターフェース３１からスイッチＩＤ３２を特定し、ＲＴＴスイッチ登録テーブル６０のスイッチＩＤ６５に登録する（ステップＳ６６）。
【０１１６】
分析装置２の受信部２１がスイッチ１０ｄから複製したＳＹＮパケットを受信すると、判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索し（ステップＳ６７）、ＳＹＮパケットに含まれるコネクション確立情報と同一の情報が既に登録されているかを判定する。この時点で判定部２３は、コネクション確立情報と同一の情報が登録されていると判定し、記録部２５は当該コネクション確立情報に対応させて、インターフェース３１から特定されるスイッチ１０ｄのスイッチＩＤ６５を登録する（ステップＳ６８）。
（ミラーリング機能）
図２６に示す動作のうち、分析装置２が実行する処理を、図２７のフローチャートを参照しながら説明する。本処理が開始されると、分析装置の受信部２１は、ＳＹＮパケット又はＳＹＮ  ＡＣＫパケットを受信する（ステップＳ２００）。受信部２１は、パケットを受信するが、ここでは、ＳＹＮパケット又はＳＹＮ  ＡＣＫパケットを受信した場合の処理について言及する。コネクション管理部２２は、受信したパケットを入力したインターフェース３１を取得する（ステップＳ２０２）。次に、コネクション管理部２２は、スイッチＩＤテーブル３０を検索し、受信したパケットを入力したインターフェース３１からスイッチＩＤ３２を取得する（ステップＳ２０４）。次に、コネクション管理部２２は、パケットからコネクション確立情報を取得する（ステップＳ２０６）。
【０１１７】
判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索する（ステップＳ２０８）。判定部２３がコネクション確立情報と同一のコネクション情報がＲＴＴスイッチ登録テーブル６０にないと判定した場合（ステップＳ２１０）、記録部２５は、ＲＴＴスイッチ登録テーブル６０にコネクション確立情報とスイッチＩＤとパケットを受信した時刻情報とを登録する（ステップＳ２１４）。
【０１１８】
判定部２３は、ステップＳ２１０においてコネクション確立情報と同一のコネクション情報があり、かつスイッチＩＤが同じと判定した場合（ステップＳ２１６）、図２９の「１」に進む。一方、判定部２３が、ステップＳ２１０においてコネクション確立情報と同一のコネクション情報があり、かつスイッチＩＤが異なると判定した場合（ステップＳ２１６）、記録部２５は、ＲＴＴスイッチ登録テーブル６０にコネクション確立情報とスイッチＩＤとパケットを受信した時刻情報とを登録し（ステップＳ２１４）、本処理を終了する。
【０１１９】
［ＲＴＴの算出］
次に、第３実施形態に係る情報処理システム１におけるＲＴＴの算出処理について図２８を参照しながら説明する。２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＳＹＮ  ＡＣＫパケットが送信される。スイッチ１０ｄがＳＹＮ  ＡＣＫパケットを受信する。と、送信部１６は、ＳＹＮ  ＡＣＫパケットの複製を分析装置２に転送する（ステップＳ７１）。同様に、ＳＹＮ  ＡＣＫパケットを受信したスイッチ１０ｃの送信部１６は、ＳＹＮ  ＡＣＫパケットの複製を分析装置２に転送する（ステップＳ７２）。
【０１２０】
判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索し（ステップＳ７３）、スイッチ１０ｄが複製したＳＹＮ  ＡＣＫパケットに応じたコンテンツ情報及び該当スイッチＩＤの時刻情報を検出する。算出部２４は、検出した時刻情報（ＳＹＮパケットの複製を受信した時刻情報）とＳＹＮ  ＡＣＫパケットの複製を受信した時刻情報との差分を算出し、スイッチ１０ｄのＲＴＴを求める（ステップＳ７４）。
【０１２１】
また、判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索し（ステップＳ７５）、スイッチ１０ｃが複製したＳＹＮ  ＡＣＫパケットに応じたコンテンツ情報及び該当スイッチＩＤの時刻情報を検出する。算出部２４は、ＳＹＮパケットの複製を受信した時刻情報とＳＹＮ  ＡＣＫパケットの複製を受信した時刻情報との差分を算出し、スイッチ１０ｃのＲＴＴを求める（ステップＳ７６）。
【０１２２】
算出部２４は、ＲＴＴスイッチ登録テーブル６０から算出されたすべてのスイッチに対するＲＴＴを読み出し（ステップＳ７７）、読み出したすべてのＲＴＴの大きさを比較する（ステップＳ７８）。次に、通知部２６は、ＲＴＴが最も大きいスイッチＩＤ以外のスイッチＩＤのスイッチ１０ｄにコネクション情報削除通知を行う（ステップＳ７９）。コネクション情報削除通知を受信したスイッチ１０ｄは、コネクションテーブル７０ｄから該当するコネクション情報を削除する（ステップ８０）。
【０１２３】
次に、１階層目のサーバ１２ａから２階層目のサーバ１２ｂへＡＣＫパケットが送信されると、データ転送パケットを受信したスイッチ１０ｃの送信部１６は、ＡＣＫパケットの複製を分析装置２に転送する（ステップＳ８１）。スイッチ１０ｄのコネクションテーブル７０ｄから該当するコネクション情報は削除されているため、スイッチ１０ｄの送信部１６からＡＣＫパケットの複製は送信されない。
（ＲＴＴ算出機能）
図２８に示す動作のうち、分析装置２が実行する処理を、図２９のフローチャートを参照しながら説明する。図２９の「１」に続く本処理が開始されると、分析装置２の判定部２３は、受信したパケットの複製がＳＹＮ  ＡＣＫパケットか否かを判定する（ステップＳ２２４）。
【０１２４】
判定部２３は、ＳＹＮ  ＡＣＫパケットでないと判定した場合、図３１の「２」に進む。判定部２３は、ＳＹＮ  ＡＣＫパケットであると判定した場合、ＲＴＴスイッチ登録テーブル６０を検索し（Ｓ２２６）、該当スイッチ１０が複製したＳＹＮ  ＡＣＫパケットに応じたコンテンツ情報及び該当スイッチＩＤに応じた時刻情報を検出する。算出部２４は、検出した時刻情報とＳＹＮ  ＡＣＫパケットの複製を受信した時刻情報との差分を該当スイッチ１０の位置におけるＲＴＴとして算出する（ステップＳ２２８）。
【０１２５】
算出部２４は、スイッチに対するＲＴＴがすべてのＳＹＮ  ＡＣＫパケットに対して算出されたかを判定する（ステップＳ２３０）。ＲＴＴがすべてのＳＹＮ  ＡＣＫパケットに対して算出されなかった場合、本処理を終了する。ＲＴＴがすべてのＳＹＮ  ＡＣＫパケットに対して算出された場合、全ＲＴＴを読み出し（ステップＳ２３２）、読み出したすべてのＲＴＴの大きさを比較する（ステップＳ２３４）。次に、通知部２６は、ＲＴＴが最も大きいスイッチＩＤ以外のスイッチＩＤに応じたスイッチにコネクション情報削除通知を行い（ステップＳ２３６）、本処理を終了する。
【０１２６】
［ＲＴＴの算出］
次に、第３実施形態に係る情報処理システム１におけるＲＴＴの算出処理について図３０を参照しながら説明する。１階層目のサーバ１２ａから２階層目のサーバ１２ｂへデータ転送パケットが送信される度にスイッチ１０ｃから複製したデータ転送パケットが転送される（ステップＳ８２、Ｓ８３）。
【０１２７】
分析装置２の受信部２１が、スイッチ１０ｃから送信されたデータ転送パケットの複製を受信する。判定部２３は、データ転送パケットに含まれるコネクション情報に基づき、受信したデータ転送パケットとＳＹＮパケットとは送信元及び送信先の方向が同方向であるかを判定する（ステップＳ８５、Ｓ８７）。ここでは、同方向であるため、記録部２５は、時刻情報登録テーブル５０の時刻情報５６に、受信したデータ転送パケットの受信時刻の情報を上書き登録する（ステップＳ８６、Ｓ８８）。
【０１２８】
２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＡＣＫパケットが送信されると、スイッチ１０ｃから複製したＡＣＫパケットが転送される（ステップＳ８４）。
【０１２９】
分析装置２の判定部２３は、受信したＡＣＫパケットの複製とＳＹＮパケットの複製とは送信元及び送信先の方向が逆方向であると判定する（ステップＳ８９）。算出部２４は、時刻情報登録テーブル５０から該当するコネクション情報の時刻情報５６を読み出し（ステップＳ９０）、ＡＣＫパケットの複製を受信した時刻情報と読み出した時刻情報５６との差分からＲＴＴを算出する（ステップＳ９１）。
（ＲＴＴ算出機能）
図３０に示す動作のうち、分析装置２が実行する処理を、図３１のフローチャートを参照しながら説明する。図２９の「１」に続く本処理が開始されると、分析装置２の判定部２３は、受信したパケットの複製がＦＩＮパケットか否かを判定する（ステップＳ２４０）。
【０１３０】
判定部２３は、受信したパケットの複製がＦＩＮパケットでないと判定した場合、データ転送パケットか否かを判定する（ステップＳ２４２）。判定部２３は、データ転送パケットであると判定した場合、データ転送パケットがＳＹＮパケットと同方向であるかを判定する（ステップＳ２４４）。ＳＹＮパケットと同方向でないと判定された場合、本処理を終了する。一方、ＳＹＮパケットと同方向であると判定された場合、記録部２５は、時刻情報登録テーブル５０の時刻情報５６に、データ転送パケットを受信した時刻を登録し（ステップＳ２４６）、本処理を終了する。
【０１３１】
ステップＳ２４２において、判定部２３は、データ転送パケットでないと判定した場合、受信したパケットの複製がデータ転送パケットに対するＡＣＫパケットかを判定する（ステップＳ２４８）。ＡＣＫパケットでないと判定された場合、本処理を終了する。ＡＣＫパケットであると判定された場合、算出部２４は、時刻情報登録テーブル５０から該当するコネクション情報の時刻情報５６を読み出す（ステップＳ２５０）。算出部２４は、ＡＣＫパケットを受信した時刻情報と読み出した時刻情報５６との差分からＲＴＴを算出し、（ステップＳ２５２）、本処理を終了する。ステップＳ２４０において受信したパケットの複製がＦＩＮパケットであると判定された場合については後述される。
【０１３２】
［コネクションの切断］
次に、第３実施形態に係る情報処理システム１におけるコネクションの切断時の処理について図３２を参照しながら説明する。２階層目のサーバ１２ｂから１階層目のサーバ１２ａへＦＩＮパケットが送信される。スイッチ１０ｃの受信部１４は、ＦＩＮパケットの複製を分析装置２に転送する（ステップＳ９２）。
【０１３３】
分析装置２が複製したＦＩＮパケットを受信すると、判定部２３は、ＲＴＴスイッチ登録テーブル６０を検索する（ステップＳ９３）。記録部２５は、複製したＦＩＮパケットに含まれるコネクション情報と同一のコネクション情報、スイッチＩＤ及び時刻情報をＲＴＴスイッチ登録テーブル６０から削除する（ステップＳ９４）。これにより、ＲＴＴスイッチ登録テーブル６０（図１０）から当該コネクション情報の送信先ＩＰアドレス６１、送信先ポート番号６２、送信元ＩＰアドレス６３、送信元ポート番号６４、スイッチＩＤ及び時刻情報が削除される。
【０１３４】
スイッチ１０ｃは、受信したＦＩＮパケットに対するＡＣＫパケットの複製を転送する（ステップＳ９５）。通知部２６は、削除されたスイッチＩＤにより識別されるスイッチ１０ｃにコネクション情報削除通知を送信する（ステップＳ９６）。スイッチ１０ｃはコネクション情報削除通知を受信し、記録部１７は、コネクションテーブル７０ｃから該当するコネクション情報を削除する（ステップＳ９７）。これにより、スイッチ１０のミラーリングを終了させることができる。
【０１３５】
コネクションの切断時の分析装置２の処理について、図３１を参照しながら説明する。分析装置２の受信部２１がＦＩＮパケットの複製を受信すると、判定部２３は、ステップＳ２４０においてＦＩＮパケットであると判定する。この場合、記録部２５は、ＲＴＴスイッチ登録テーブル６０から当該コネクション情報及びスイッチＩＤを削除する（ステップＳ２５４）。次に、通知部２６は、削除されたスイッチＩＤにより識別されるスイッチ１０にコネクション情報削除通知を送信し（ステップＳ２５６）、本処理を終了する。
【０１３６】
以上に説明したように、第３実施形態に係る情報処理システム１によれば、コネクションの確立を検出する際にＲＴＴを測定し、ＲＴＴスイッチ登録テーブル６０に該当スイッチ１０ｃのＲＴＴを保存する。その後、ＲＴＴを測定したスイッチ１０ｃ以外の他スイッチ１０ｄで同一コネクションの確立を検出した場合、そのスイッチ１０ｄに対するＲＴＴを測定する。すべてのＲＴＴが測定されると、すべてのＲＴＴの比較を行い、ＲＴＴの値が最も大きいスイッチ以外のスイッチに対して、コネクション情報を削除する通知を行う。これにより、ＲＴＴの値が最も大きいスイッチ以外のスイッチでは、確立されたコネクションをミラーリング対象のコネクションとはみなさないように制御できる。これにより、複数のスイッチ１０間で同一パケットの複製を重複して分析装置２に転送することを回避できる。また、ＲＴＴの値が最も大きいスイッチ１０ｃによりミラーリングすることで、クライアント１３またはサーバ１２に最も近いスイッチ１０でミラーリングすることを可能にする。
【０１３７】
例えば、クライアント１３からサーバ１２にデータパケットが送信されたとき、クライアント１３に最も近いスイッチがミラーリングしたデータパケット及びそのＡＣＫパケットの受信時刻情報からＲＴＴを算出することで、ＲＴＴを正確に測定することができる。
【０１３８】
サーバ１２からクライアント１３にデータパケットが送信されたとき、サーバ１２に最も近いスイッチがミラーリングしたデータパケット及びそのＡＣＫパケットの受信時刻情報からＲＴＴを算出することで、ＲＴＴを正確に測定することができる。
【０１３９】
ただし、上記実施形態では、算出されたＲＴＴが最も大きいとされたスイッチ以外のスイッチにコネクション情報削除通知を行ったが、これに限らない。例えば、算出されたＲＴＴが予め定められた閾値よりも大きいスイッチのいずれか一つ以外のスイッチにコネクション情報削除通知を送信してもよい。
【０１４０】
以上、パケット取得方法、分析装置、中継装置及びプログラムを上記実施形態により説明したが、本発明にかかるパケット取得方法、分析装置、中継装置及びプログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【０１４１】
例えば、スイッチＩＤは、中継装置の識別情報の一例であり、中継装置の識別情報は中継装置を識別可能な情報であればこれに限られない。
【０１４２】
以上の説明に関し、更に以下の項を開示する。
（付記１）
複数の中継装置のそれぞれは、
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置は、
前記複数の中継装置からパケットを受信し、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれるコネクション情報が第１テーブルに記録されているかを判定し、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知し、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録し、
前記中継装置は、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータが実行するパケット取得方法。
（付記２）
複数の中継装置のそれぞれは、
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置は、
前記複数の中継装置からパケットを受信し、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出し、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれるコネクション情報のパケットを送らないように指示する指示情報を通知し、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録し、
前記中継装置は、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータが実行するパケット取得方法。
（付記３）
複数の中継装置からパケットを受信する受信部と、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報が第１テーブルに記録されているかを判定する判定部と、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知する通知部と、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録する記録部とを有する、
分析装置。
（付記４）
複数の中継装置からパケットを受信する受信部と、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出する算出部と、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報のパケットを送らないように指示する指示情報を通知する通知部と、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録する記録部と、を有する、
分析装置。
（付記５）
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録する記録部と、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信する送信部と、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信する受信部と、を有し、
前記記録部は、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
中継装置。
（付記６）
複数の中継装置からパケットを受信し、
受信したパケットがコネクションを確立するパケットのときに、該パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報が第１テーブルに記録されているかを判定し、
前記第１テーブルに記録されていると判定した場合、前記コネクションを確立するパケットの送信元である中継装置に前記コネクション情報のパケットを送らないように指示する指示情報を通知し、
前記第１テーブルに記録されていないと判定した場合、該記録されていないと判定したコネクション情報と受信した前記パケットの送信元の中継装置の識別情報とを対応させて前記第１テーブルに記録する、
処理をコンピュータに実行させるプログラム。
（付記７）
複数の中継装置からパケットを受信し、
受信したパケットからコネクションを確立するパケットを受信した時刻情報と該コネクションを確立するパケットが正しく送信されたことを示す確認パケットを受信した時刻情報とから通信往復遅延時間を中継装置毎に算出し、
算出した前記通信往復遅延時間のうち、所定の条件で特定される通信往復遅延時間に対応する中継装置以外の中継装置に、受信した前記パケットに含まれる送信元と送信先とに関する情報を示すコネクション情報のパケットを送らないように指示する指示情報を通知し、
受信した前記パケットに含まれるコネクション情報と、前記所定の条件で特定される通信往復遅延時間に対応する中継装置の識別情報とを対応させて第１テーブルに記録する、
処理をコンピュータに実行させるプログラム。
（付記８）
コネクションを確立するパケットに含まれる、送信元と送信先とに関する情報を示すコネクション情報を第２テーブルに記録し、
前記第２テーブルに記録されたコネクション情報のパケットを複製して分析装置へ送信し、
前記分析装置から前記コネクション情報のパケットを送らないように指示する指示情報の通知を受信し、
受信した前記指示情報の通知にて指示された前記コネクション情報を前記第２テーブルから削除する、
処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１４３】
１：情報処理システム
２：分析装置
１０：スイッチ
１２：サーバ
１３：クライアント
１４：受信部
１５：制御部
１６：送信部
１７：記録部
２０：Ｌ４解析部
２１：受信部
２２：コネクション管理部
２３：判定部
２４：算出部
２５：記録部
２６：通知部
３０：スイッチＩＤテーブル
４０：ミラーリングスイッチ登録テーブル
５０：時刻情報登録テーブル
６０：ＲＴＴスイッチ登録テーブル
７０：コネクションテーブル
【図１】
0006500677.tif 000002
【図２】
0006500677.tif 000003
【図３】
0006500677.tif 000004
【図４】
0006500677.tif 000005
【図５】
0006500677.tif 000006
【図６】
0006500677.tif 000007
【図７】
0006500677.tif 000008
【図８】
0006500677.tif 000009
【図９】
0006500677.tif 000010
【図１０】
0006500677.tif 000011
【図１１】
0006500677.tif 000012
【図１２】
0006500677.tif 000013
【図１３】
0006500677.tif 000014
【図１４】
0006500677.tif 000015
【図１５】
0006500677.tif 000016
【図１６】
0006500677.tif 000017
【図１７】
0006500677.tif 000018
【図１８】
0006500677.tif 000019
【図１９】
0006500677.tif 000020
【図２０】
0006500677.tif 000021
【図２１】
0006500677.tif 000022
【図２２】
0006500677.tif 000023
【図２３】
0006500677.tif 000024
【図２４】
0006500677.tif 000025
【図２５】
0006500677.tif 000026
【図２６】
0006500677.tif 000027
【図２７】
0006500677.tif 000028
【図２８】
0006500677.tif 000029
【図２９】
0006500677.tif 000030
【図３０】
0006500677.tif 000031
【図３１】
0006500677.tif 000032
【図３２】
0006500677.tif 000033