(57)【特許請求の範囲】
【請求項１】
通信装置が送受信したパケットを取得するパケット取得部と、
前記パケット取得部が取得したパケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計する集計部と、
前記集計部による集計結果に基づいて、前記パケットの送信元又は前記パケットの送信先の通信装置のうち、所定の時間当たりのパケットの送受信回数が増加した場合に、パケットを受信してから送信するまでの時間が減少する通信装置がクライアントに対応すると判定する判定部と
を備えたことを特徴とする判定装置。 
【請求項２】
通信装置が送受信したパケットを取得するステップと、
前記パケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計するステップと、
前記集計の結果に基づいて、前記パケットの送信元又は前記パケットの送信先の通信装置のうち、所定の時間当たりのパケットの送受信回数が増加した場合に、パケットを受信してから送信するまでの時間が減少する通信装置がクライアントに対応すると判定するステップと
を含んだことを特徴とする判定方法。
【請求項３】
通信装置が送受信したパケットを取得する手順と、
前記パケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計する手順と、
前記集計の結果に基づいて、前記パケットの送信元又は前記パケットの送信先の通信装置のうち、所定の時間当たりのパケットの送受信回数が増加した場合に、パケットを受信してから送信するまでの時間が減少する通信装置がクライアントに対応すると判定する手順と
をコンピュータに実行させることを特徴とする判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定装置、判定方法および判定プログラムに関する。
【背景技術】
【０００２】
従来から、ネットワークを介して通信装置を接続し、送信元のアドレスと送信先のアドレスを含むパケットを送受信する通信技術が使用されてきた。かかるパケット通信では、クライアント側の通信装置がサーバ側の通信装置に対してリクエストを行ない、サーバ側の通信装置がクライアント側の通信装置にレスポンスを返す。このようなリクエストとレスポンスを含む１つのセッションは、複数のパケットの送受信によって成立する。
【０００３】
通信装置がコネクション管理を行なうトランスポートプロトコル（以下、プロトコルと呼ぶ）を使用する場合、コネクションの確立時などに送受信するコネクション管理用のパケットを取得すれば、クライアント側の通信装置とサーバ側の通信装置とを識別できる。コネクション管理を行なうプロトコルとしては、例えばＴＣＰ（Transmission Control Protocol）がある。
【０００４】
また、特定のサービスに使用することが想定されるポートを指定した通信では、パケットに示されたポート番号からクライアント側の通信装置とサーバ側の通信装置とを推定できる。また、パケット自体に情報を追加すれば、追加された情報を参照してクライアント側の通信装置とサーバ側の通信装置とを識別することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３０３０７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、ＴＣＰのようにコネクション管理を行なうプロトコルを使用する場合であってもコネクション管理用のパケットを取得できない場合に、コネクション管理用のパケット以外のパケットからはサーバ側とクライアント側とを識別することができなかった。
【０００７】
また、ＵＤＰ（User Datagram Protocol）のようにコネクション管理を行なわないプロトコルを用いる場合には、サーバ側とクライアント側とを識別することができなかった。また、パケットに追加された情報を参照してクライアント側の通信装置とサーバ側の通信装置とを識別する技術は、各通信装置が情報の付加を行なうことが求められるという問題点があった。
【０００８】
一方で、ネットワーク構成が複雑になり、通信装置間の利用関係を簡易に把握することが重要な課題となっている。通信装置間の利用関係を把握することが求められる例として、１つの通信装置がサーバとしてクライアントからの要求を処理しつつ、他の通信装置に対してはクライアントとして動作する場合がある。このような場合、装置間の配線など物理的な接続関係から装置の利用関係を把握することが困難になる。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、パケットが有する情報からクライアントに対応する通信装置とサーバに対応する通信装置とを識別する判定装置、判定方法および判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する判定装置、方法、プログラムは、通信装置が送受信したパケットを取得し、取得したパケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計する。そして、開示の装置、方法、プログラムは、集計結果に基づいて、パケットの送信元又はパケットの送信先が、サーバに対応するか、クライアントに対応するかを判定する。
【発明の効果】
【００１１】
本願の開示する判定装置、方法、プログラムによれば、パケットが有する情報からクライアントに対応する通信装置とサーバに対応する通信装置とを識別する判定装置、判定方法および判定プログラムを得ることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例にかかる判定装置であるセッション方向判定装置の構成図である。
【図２】図２は、セッション方向判定装置１０を接続したネットワークの説明図である。
【図３】図３は、ネットワークの利用関係についての説明図である。
【図４】図４は、パケットと利用関係についての説明図である。
【図５】図５は、コンピュータｃ１，ｃ２がパケットを受信してから送信するまでの時間の間隔の平均値と、標準偏差の説明図である。
【図６】図６は、所定の時間あたりのパケットの送受信回数と受信から送信まで時間についての説明図である。
【図７】図７は、所定時間あたりの集計回数と、パケット間隔の平均値をプロットした回帰直線の説明図である。
【図８】図８は、セッション管理テーブル２３の具体例である。
【図９】図９は、パケット間隔集計データ２４の具体例である。
【図１０】図１０は、セッション方向判定部２５による判定結果の具体例である。
【図１１】図１１は、パケット間隔集計部２２の処理動作を説明するフローチャートである。
【図１２】図１２は、セッション方向判定部２５の処理動作について説明するフローチャートである。
【図１３】図１３は、回帰直線を用いる場合のセッション方向判定部２５の処理動作について説明するフローチャートである。
【図１４】図１４は、コンピュータがセッション方向判定プログラムを実行する構成についての説明図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する判定装置、判定方法および判定プログラムを図面に基づいて詳細に説明する。なお、以下の具体的な実施例に本発明を限定するものではない。
【実施例】
【００１４】
［装置の構成］
図１は、実施例にかかる判定装置であるセッション方向判定装置の構成図である。図１に示したセッション方向判定装置１０は、パケットデータ取得部２１、パケット間隔集計部２２、セッション管理テーブル２３、パケット間隔集計データ２４、セッション方向判定部２５を有する。
【００１５】
パケットデータ取得部２１は、ネットワークを介して接続された通信装置がネットワークを介して送受信したパケットを取得し、取得時のタイムスタンプを付加したパケットデータを生成する処理部である。パケット間隔集計部２２はパケットの送信先として指定されたアドレスと送信元として指定されたアドレスとの組み合わせに基づいて、同一のセッション内でパケットの送信先と送信元が入れ替わる時間の間隔を集計する処理部である。
【００１６】
具体的には、パケット間隔集計部２２は、アドレスとポート番号の組み合わせ及びプロトコルが一致したパケットを同一セッションのパケットとしてセッション管理テーブル２３に登録する。また、パケット間隔集計部２２は、同一セッションの最新のパケットについて、タイムスタンプと通信方向をセッション管理テーブル２３に登録する。
【００１７】
さらに、パケット間隔集計部２２は、同一のセッション内でパケットの送信先と送信元が入れ替わる時間の間隔を算出し、パケット間隔集計データ２４に登録する。
【００１８】
セッション方向判定部２５は、セッション管理テーブル２３とパケット間隔集計データ２４を参照し、セッションにおけるクライアント側の通信装置とサーバ側の通信装置とを判定する処理部である。
【００１９】
［ネットワークの構成例］
図２は、セッション方向判定装置１０を接続したネットワークの説明図である。図２に示したネットワークは、クライアント端末４１，４２、サーバ５１〜５３がスイッチ４０を介して接続した構成を有する。このネットワーク構成では、クライアント端末４１，４２、サーバ５１〜５３が送受信するパケットは、全てスイッチ４０を経由する。このため、スイッチ４０にセッション方向判定装置１０を接続し、例えばポートミラーリングすることで、ネットワークを介して送受信するパケットを取得することができる。
【００２０】
図２に示した例では、スイッチ４０を全てのパケットが通過する構成を例示したが、全てのパケットが経由するスイッチが存在しない場合には、ネットワーク上の複数のノードからパケットを取得すればよい。
【００２１】
図３は、ネットワークの利用関係についての説明図である。図３に示した例では、アドレス192.168.10.1を有する装置は、ウェブサーバ６１のアドレス192.168.10.2に対して80番ポートでアクセスするクライアントである。また、アドレス192.168.10.1を有する装置は、ウェブサーバ６１のアドレス192.168.10.2に対して8080番ポートでアクセスするクライアントである。加えて、アドレス192.168.10.1を有する装置は、ウェブサーバ６２のアドレス192.168.1.2に対して80番ポートでアクセスするクライアントである。
【００２２】
同様に、アドレス192.168.10.2を有する装置は、ウェブサーバ６２のアドレス192.168.1.2に対して80番ポートでアクセスするクライアントである。また、アドレス192.168.10.2を有する装置は、メールサーバ６３のアドレス192.168.4.1に対して25番ポートでアクセスするクライアントである。加えて、アドレス192.168.10.2を有する装置は、メールサーバ６３のアドレス192.168.4.1に対して110番ポートでアクセスするクライアントである。
【００２３】
また、ウェブサーバ６１は、アドレス192.168.2.1を使用し、アプリケーションサーバ６４のアドレス192.168.2.10に対して8002番ポートでアクセスする。すなわち、ウェブサーバ６１は、アドレス192.168.10.1を有する装置に対してサーバとして動作するとともに、アプリケーションサーバ６４に対してはクライアントとして動作する。
【００２４】
同様に、ウェブサーバ６２は、アドレス192.168.2.2を使用し、アプリケーションサーバ６４のアドレス192.168.2.10に対して8002番ポートでアクセスする。すなわち、ウェブサーバ６２は、アドレス192.168.10.1及びアドレス192.168.10.2を有する装置に対してサーバとして動作するとともに、アプリケーションサーバ６４に対してはクライアントとして動作する。
【００２５】
さらに、アプリケーションサーバ６４は、アドレス192.168.3.10を使用し、データベースサーバ６５のアドレス192.168.3.1に対して1521番ポートでアクセスする。すなわち、アプリケーションサーバ６２は、ウェブサーバ６１，６２に対してサーバとして動作するとともに、データベースサーバ６５に対してはクライアントとして動作する。
【００２６】
このようなネットワーク上での利用関係は、装置の物理的な筐体や配線からだけでは決まらない。そこで、本実施例に開示するセッション方向判定装置１０は、ネットワーク上で送受信されるパケットから利用関係を判定する。
【００２７】
［セッション方向の判定］
図４は、パケットと利用関係についての説明図である。図４に示した例では、コンピュータｃ１がコンピュータｃ２に対してリクエストを送信するクライアントである。そして、コンピュータｃ２はコンピュータｃ１からのリクエストに対してレスポンスを返すサーバである。
【００２８】
コンピュータｃ１，ｃ２が使用する通信が、コネクション管理を行なうＴＣＰである場合、コネクションを確立するときに送受信するＳＹＮやＡＣＫを検知することで、コンピュータｃ１がクライアントであり、コンピュータｃ２がサーバであることが分かる。
【００２９】
本実施例に開示するセッション方向判定装置１０は、コネクション確立後のリクエストやレスポンスに用いるパケットからであっても利用関係を判定することができる。具体的には、セッション方向判定装置１０は、同一のセッション内でパケットの送信先と送信元が入れ替わる時間の間隔から利用関係を判定する。
【００３０】
サーバ側の装置は、クライアント側の装置からリクエストを受信してレスポンスを返す。このため、サーバ側の装置では、同一のセッション内でパケットを受信してから送信するまでの時間の間隔はリクエストを受信してからレスポンスを返すまでの間となる。
【００３１】
クライアント側の装置は、サーバ側の装置にリクエストを送信してレスポンスを受信する。このため、クライアント側の装置では、同一のセッション内でパケットを受信してから送信するまでの時間の間隔はレスポンスを受信してから次のリクエストを送信するまでの間となる。
【００３２】
サーバ側の装置は、リクエストを受信後、すぐにレスポンスを返そうとする。一方、クライアント側の装置は、レスポンスを受信後、すぐに次のリクエストを送信するとは限らない。このため、クライアント側の装置がパケットを受信してから送信するまでの時間の間隔の平均は、サーバ側の装置がパケットを受信してから送信するまでの時間の間隔に比して長く、また時間の間隔のばらつきは大きくなる。なお、クライアント側の装置であっても、管理用のパケットを受信した場合には、すぐに応答してパケットを送信する。このため、管理用以外のパケット、例えばデータ部を有するパケットについて受信から送信までの時間の間隔を集計することが好ましい。また、サーバ側の装置はリクエストを受信するとレスポンスを送信するが、クライアント側の装置はレスポンスを受信しても次のリクエストを送信するとは限らない。このため、一方の通信装置についてパケットを受信してからの送信回数が０である場合は、当該通信装置をクライアント側と判定すればよい。
【００３３】
図４に示した例では、コンピュータｃ１がクライアント側の装置であり、コンピュータｃ２がサーバ側の装置である。クライアント側の装置であるコンピュータｃ１がパケットを受信してから送信するまでの時間ｔ１１は、サーバ側の装置であるコンピュータｃ２がパケットを受信してから送信するまでの時間ｔ２１，２２に比して長くなっている。
【００３４】
図５は、コンピュータｃ１，ｃ２がパケットを受信してから送信するまでの時間の間隔の平均値と、標準偏差の説明図である。コンピュータｃ１がパケットを受信してから送信するまでの時間の間隔の平均値ｔ１ａと標準偏差ｔ１ｓは、コンピュータｃ２がパケットを受信してから送信するまでの時間の間隔の平均値ｔ２ａと標準偏差ｔ２ｓに比して大きい。
【００３５】
セッション方向判定装置１０は、同一のセッション内でパケットの送信先と送信元が入れ替わる時間の間隔について平均値とばらつきを求めて比較する。そして、パケットを受信してから送信するまでの時間の間隔の平均値やばらつきが大きい側の装置をクライアント側、小さい側の装置をサーバ側と判定する。
【００３６】
また、セッション方向判定装置１０は、所定の時間あたりのパケットの送受信回数が増加した場合に、パケットを受信してから送信するまでの時間が減少する通信装置をクライアント側と判定してもよい。
【００３７】
図６は、所定の時間あたりのパケットの送受信回数と受信から送信まで時間についての説明図である。図６に示した例では、コンピュータｃ１がクライアント側の装置であり、コンピュータｃ２がサーバ側の装置である。
【００３８】
コンピュータｃ１について、時間ｔ１１，１２は、所定時間あたりのパケットの送受信回数が少ない場合におけるパケットを受信してから送信するまでの時間である。そして、コンピュータｃ１について、時間ｔ１３〜１５は、所定時間あたりのパケットの送受信回数が大きい場合におけるパケットを受信してから送信するまでの時間である。図６に示したように、クライアント側であるコンピュータｃ１では、所定時間あたりのパケットの送受信回数が多い場合の時間ｔ１３〜１５は、所定時間あたりのパケットの送受信回数が少ない場合の時間ｔ１１〜１２に比して短くなる。
【００３９】
一方、コンピュータｃ２について、時間ｔ２１，２２は、所定時間あたりのパケットの送受信回数が少ない場合におけるパケットを受信してから送信するまでの時間である。そして、コンピュータｃ２について、時間ｔ２３〜２５は、所定時間あたりのパケットの送受信回数が大きい場合におけるパケットを受信してから送信するまでの時間である。図６に示したように、サーバ側であるコンピュータｃ２では、所定時間あたりのパケットの送受信回数が多い場合の時間ｔ２３〜２５は、所定時間あたりのパケットの送受信回数が少ない場合の時間ｔ２３〜２５に比して同じか長くなる。コンピュータｃ２がパケットを受信してから送信するまでの時間が長くなるのは、受信するリクエストの数の増加にしたがって処理負荷が増え、遅延が発生する場合である。
【００４０】
図７は、所定時間あたりの集計回数と、パケット間隔の平均値をプロットした回帰直線の説明図である。集計回数は、装置がパケットを受信してから送信した場合に１増加する値である。図７に示した回帰直線Ｌ１は、所定時間当たりの集計回数が増えるに従って、パケットを受信してから送信するまでの間隔の平均値が小さくなることを示す。また、図７に示した回帰直線Ｌ２は、所定時間あたりの集計回数が増えるに従って、パケットを受信してから送信するまでの間隔の平均値が大きくなることを示す。
【００４１】
セッション方向判定装置１０は、所定時間あたりの集計回数と、パケット間隔の平均値とが回帰直線Ｌ１の関係となる装置をクライアント側の装置と判定し、所定時間あたりの集計回数と、パケット間隔の平均値とが回帰直線Ｌ２の関係となる装置をサーバ側の装置と判定する。
【００４２】
［データの具体例］
図８は、セッション管理テーブル２３の具体例である。セッション管理テーブル２３は、セッションＩＤ、第１ＩＰアドレス、第１ポート番号、第２ＩＰアドレス、第２ポート番号、プロトコル、タイムスタンプ、通信方向の項目を有する。
【００４３】
パケット間隔集計部２２は、パケットデータ取得部２１が取得したパケットについて、送信先のアドレスとポート番号が第１ＩＰアドレスと第１ポート番号に一致し、送信元のアドレスとポート番号が第２ＩＰアドレスと第２ポート番号に一致し、プロトコルが一致するセッションが登録済みかを判定する。登録済みであれば、パケット間隔集計部２２は、タイムスタンプを最新のパケットの値に更新する。さらに、パケット間隔集計部２２は、通信方向の値が１であれば０に変更する。
【００４４】
また、パケット間隔集計部２２は、送信先のアドレスとポート番号が第２ＩＰアドレスと第２ポート番号に一致し、送信元のアドレスとポート番号が第１ＩＰアドレスと第１ポート番号に一致し、プロトコルが一致するセッションが登録済みかを判定する。登録済みであれば、パケット間隔集計部２２は、タイムスタンプを最新のパケットの値に更新する。さらに、パケット間隔集計部２２は、通信方向の値が０であれば１に変更する。
【００４５】
そして、パケット間隔集計部２２は、送信先と送信元のアドレスとポート番号、プロトコルの組み合わせが、第１ＩＰアドレスとポート番号、第２ＩＰアドレスとポート番号、プロトコルの組み合わせに存在しなければ、新規セッションとしてセッションＩＤを付与して登録する。この時、パケット間隔集計部２２は、送信先のＩＰアドレスとポート番号を第１ＩＰアドレスと第１ポート番号とする。また、パケット間隔集計部２２は、送信元のＩＰアドレスとポート番号を第２ＩＰアドレスと第２ポート番号とする。加えて、パケット間隔集計部２２は、パケットのプロトコルからプロトコルの項目の値を登録し、パケットデータのタイムスタンプからタイムスタンプの値を登録する。また、パケット間隔集計部２２は、通信方向の値を０とする。
【００４６】
すなわち、セッション管理テーブル２３において、セッションを登録した時のパケットと最新のパケットの送受信アドレス及びポート番号が一致する場合に通信方向の項目の値は０となる。そして、セッションを登録した時のパケットと最新のパケットの送受信アドレス及びポート番号が反転した場合に通信方向の項目の値は１となる。
【００４７】
図８に示した例では、セッションＩＤが１のエントリは、第１ＩＰアドレスが192.168.3.1、第１ポート番号が1521、第２ＩＰアドレスが192.168.3.10、第２ポート番号が24222、プロトコルがＴＣＰ、タイムスタンプが0:00:00.001、通信方向が０である。
【００４８】
同様に、セッションＩＤが２のエントリは、第１ＩＰアドレスが192.168.10.1、第１ポート番号が24223、第２ＩＰアドレスが192.168.4.1、第２ポート番号が49152、プロトコルがＵＤＰ、タイムスタンプが0:00:00.003、通信方向が１である。
【００４９】
また、セッションＩＤが３のエントリは、第１ＩＰアドレスが192.168.4.1、第１ポート番号が49152、第２ＩＰアドレスが192.168.10.2、第２ポート番号が24224、プロトコルがＵＤＰ、タイムスタンプが0:00:00.005、通信方向が０である。
【００５０】
図９は、パケット間隔集計データ２４の具体例である。パケット間隔集計データ２４は、セッションＩＤ、第１ＩＰアドレスの集計回数、平均値、標準偏差、第２ＩＰアドレスの集計係数、平均値、標準偏差の項目を有する。
【００５１】
第１ＩＰアドレスの集計回数は、通信方向が０から１に変化した時に１増加する。通信方向が０から１に変化するのは、送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得した後、送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得した場合である。
【００５２】
第１ＩＰアドレスの平均値は、送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得した後、送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得するまでの時間の平均値である。送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得した後、送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得するまでの時間は、通信方向が０から１に変わる時に取得したパケットのタイムスタンプとセッション管理テーブル２３が保持しているタイムスタンプの差分によって得ることができる。
【００５３】
パケット間隔集計部２２は、このタイムスタンプの差分を第１ＩＰアドレスのパケット間隔とし、パケット間隔の平均値と標準偏差を算出してパケット間隔集計データ２４に保持する。
【００５４】
第２ＩＰアドレスの集計回数は、通信方向が１から０に変化した時に１増加する。通信方向が１から０に変化するのは、送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得した後、送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得した場合である。
【００５５】
第２ＩＰアドレスの平均値は、送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得した後、送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得するまでの時間の平均値である。送信先が第２ＩＰアドレスであり、送信元が第１ＩＰアドレスであるパケットを取得した後、送信先が第１ＩＰアドレスであり、送信元が第２ＩＰアドレスであるパケットを取得するまでの時間は、通信方向が１から０に変わる時に取得したパケットのタイムスタンプとセッション管理テーブル２３が保持しているタイムスタンプの差分によって得ることができる。
【００５６】
パケット間隔集計部２２は、このタイムスタンプの差分を第２ＩＰアドレスのパケット間隔とし、パケット間隔の平均値と標準偏差を算出してパケット間隔集計データ２４に保持する。
【００５７】
図９に示した例では、セッションＩＤが１のエントリは、第１ＩＰアドレスの集計回数が５、平均値が１００、標準偏差が１５０、第２ＩＰアドレスの集計回数が５、平均値が１０、標準偏差が３０である。
【００５８】
同様に、セッションＩＤが２のエントリは、第１ＩＰアドレスの集計回数が１０、平均値が１５、標準偏差が３０、第２ＩＰアドレスの集計回数が１０、平均値が６０、標準偏差が１００である。
【００５９】
また、セッションＩＤが３のエントリは、第１ＩＰアドレスの集計回数が３０、平均値が５０、標準偏差が１００、第２ＩＰアドレスの集計回数が３０、平均値が４０、標準偏差が７０である。
【００６０】
セッション方向判定部２５は、パケット間隔集計データ２４を参照し、平均値や標準偏差が大きい側をクライアント側、小さい側をサーバ側とする。従って、図９の例では、セッションＩＤ１は、第１ＩＰアドレス側がクライアント、第２ＩＰアドレス側がサーバとなる。同様に、セッションＩＤ２は、第２ＩＰアドレス側がクライアント、第１ＩＰアドレス側がサーバとなる。また、セッションＩＤ３では、第１ＩＰアドレス側がクライアント、第２ＩＰアドレス側がサーバとなる。
【００６１】
図１０は、セッション方向判定部２５による判定結果の具体例である。判定結果は、セッションごとにクライアント側ＩＰアドレス、サーバ側ＩＰアドレス、サーバ側ポート番号、プロトコルの項目を有する。
【００６２】
セッション方向判定部２５は、クライアント側ＩＰアドレスとサーバ側アドレスをパケット間隔集計データ２４から判定する。そして、セッション管理テーブル２３を参照してクライアント側ＩＰアドレス、サーバ側ＩＰアドレス、サーバ側ポート番号、プロトコルを得る。
【００６３】
図１０に示した例では、セッションＩＤ１のクライアント側ＩＰアドレスが192.168.3.10、サーバ側のＩＰアドレスが192.168.3.1、サーバ側のポート番号が1521、プロトコルがＴＣＰである。
【００６４】
同様に、セッションＩＤ２のクライアント側ＩＰアドレスが192.168.10.1、サーバ側のＩＰアドレスが192.168.4.1、サーバ側のポート番号が49152、プロトコルがＵＤＰである。
【００６５】
また、セッションＩＤ３のクライアント側ＩＰアドレスが192.168.10.2、サーバ側のＩＰアドレスが192.168.4.1、サーバ側のポート番号が49152、プロトコルがＵＤＰである。
【００６６】
［動作の説明］
図１１は、パケット間隔集計部２２の処理動作を説明するフローチャートである。パケット間隔集計部２２は、パケットデータ取得部２１が取得したパケットデータを読み込み（Ｓ１０１）、パケットを解析する（Ｓ１０２）。
【００６７】
パケット間隔集計部２２は、読み込んだパケットにデータ部が存在しなければ（Ｓ１０３，Ｎｏ）、読み込んだパケットに対する処理を終了し、ステップＳ１１２に進む。
【００６８】
読み込んだパケットにデータ部が存在する場合（Ｓ１０３，Ｙｅｓ）、パケット間隔集計部２２は、セッション管理テーブル２３を参照し（Ｓ１０４）、読み込んだパケットが属するセッションが存在するか判定する（Ｓ１０５）。パケット間隔集計部２２は、読み込んだパケットが属するセッションが存在するか否かの判定について、既に述べたように送信先及び送信元のアドレスとポート番号、プロトコルを用いる。
【００６９】
読み込んだパケットが属するセッションがセッション管理テーブル２３に存在しない場合（Ｓ１０５，Ｎｏ）、パケット間隔集計部２２は、読み込んだパケットに基づいて新たなセッションをセッション管理テーブル２３に登録し（Ｓ１１１）、ステップＳ１１２に進む。
【００７０】
セッションが存在する場合（Ｓ１０５，Ｙｅｓ）、パケット間隔集計部２２は、通信方向の変化を検出する（Ｓ１０６）。この通信方向の変化は、セッション管理テーブル２３の通信方向の値が０から１、もしくは１から０に変化することを示す。
【００７１】
通信方向が変化した場合（Ｓ１０７，Ｙｅｓ）、パケット間隔集計部２２は、パケット間隔を算出する（Ｓ１０８）。パケット間隔集計部２２は、算出したパケット間隔とパケット間隔集計データ２４に既に登録したデータとを用いて集計し（Ｓ１０９）、平均値や標準偏差を求めてパケット間隔集計データ２４を更新する。
【００７２】
パケット間隔の集計（Ｓ１０９）の後、もしくは通信方向が変化しなかった場合（Ｓ１０７，Ｎｏ）、パケット間隔集計部２２は、セッション管理テーブル２３を更新する。
【００７３】
セッション管理テーブルの更新（Ｓ１１０）の後、パケット間隔集計部２２は、全てのパケットについて読み込みが終了したかを判定する（Ｓ１１２）。また、セッション管理テーブルへの新規登録を行なった（Ｓ１１１）後や、読み込んだパケットにデータ部が存在しない場合（Ｓ１０３，Ｎｏ）にも、パケット間隔集計部２２は、全てのパケットについて読み込みが終了したかを判定する（Ｓ１１２）。
【００７４】
読み込んでいないパケットが残っている場合（Ｓ１１２，Ｎｏ）、パケット間隔集計部２２は、ステップＳ１０１に戻り、次のパケットデータを読み込む。そして、全てのパケットを読み込んだ後、パケット間隔集計部２２は、パケット間隔集計データの作成を完了したことを示す出力を行い（Ｓ１１３）、処理を終了する。
【００７５】
図１２は、セッション方向判定部２５の処理動作について説明するフローチャートである。セッション方向判定部２５は、パケット間隔集計データ２４を読み込み（Ｓ２０１）、セッションを選択する（Ｓ２０２）。セッション方向判定部２５は、選択したセッションの第１ＩＰアドレスと第２ＩＰアドレスのうち、一方の集計回数が０である場合（Ｓ２０３，Ｙｅｓ）、集計回数が０でないＩＰアドレスをサーバ側と判定し（Ｓ２０５）、判定結果を出力する（Ｓ２０６）。
【００７６】
また、セッション方向判定部２５は、選択したセッションの第１ＩＰアドレスと第２ＩＰアドレスの双方が０でなければ（Ｓ２０３，Ｎｏ）、集計値を比較してクライアント側とサーバ側を判定し（Ｓ２０４）、判定結果を出力する（Ｓ２０６）。集計値の比較による判定では、セッション方向判定部２５は、例えば平均値が大きい側をクライアント側と判定し、平均値が同一である場合には、標準偏差が大きい側をクライアント側と判定すればよい。
【００７７】
判定結果の出力（Ｓ２０６）の後、セッション方向判定部２５は、全てのセッションについて方向の判定が終了したかを判定する（Ｓ２０７）。方向を判定していないセッションが残っている場合（Ｓ２０７，Ｎｏ）、セッション方向判定部は、ステップＳ２０２に戻り、セッションを選択する。そして、全てのセッションについて方向の判定を行なった場合（Ｓ２０７，Ｙｅｓ）に、処理を終了する。
【００７８】
図１３は、回帰直線を用いる場合のセッション方向判定部２５の処理動作について説明するフローチャートである。セッション方向判定部２５は、パケット間隔集計データ２４を読み込み（Ｓ３０１）、セッションを選択する（Ｓ３０２）。セッション方向判定部２５は、選択したセッションの第１ＩＰアドレスと第２ＩＰアドレスのうち、一方の集計回数が０である場合（Ｓ３０３，Ｙｅｓ）、集計回数が０でないＩＰアドレスをサーバ側と判定し（Ｓ３０５）、判定結果を出力する（Ｓ３０７）。
【００７９】
また、セッション方向判定部２５は、選択したセッションの第１ＩＰアドレスと第２ＩＰアドレスの双方が０でなければ（Ｓ３０３，Ｎｏ）、第１ＩＰアドレスと第２ＩＰアドレスについて集計値回数と平均値の回帰直線を算出する（Ｓ３０４）。セッション方向判定部２５は、算出した回帰直線の傾きを比較して（Ｓ３０６）、判定結果を出力する（Ｓ３０７）。回帰直線の比較による判定では、セッション方向判定部２５は、例えば傾きが負になる側をクライアント側と判定し、双方の傾きが負にならない場合には、回帰直線の傾きが小さい側をクライアント側と判定すればよい。
【００８０】
判定結果の出力（Ｓ３０７）の後、セッション方向判定部２５は、全てのセッションについて方向の判定が終了したかを判定する（Ｓ３０８）。方向を判定していないセッションが残っている場合（Ｓ３０８，Ｎｏ）、セッション方向判定部は、ステップＳ３０２に戻り、セッションを選択する。そして、全てのセッションについて方向の判定を行なった場合（Ｓ３０８，Ｙｅｓ）に、処理を終了する。
【００８１】
［セッション方向判定プログラム］
図１に示したセッション方向判定装置１０の各機能部をソフトウェアによって実現することで、セッション方向判定プログラムを得ることができる。図１４は、コンピュータがセッション方向判定プログラムを実行する構成についての説明図である。図１４に示したコンピュータ７０は、バス７１がＣＰＵ（Central Processing Unit）７２、メモリ７３、ＨＤＤ（Hard Disk Drive）７４を接続する。
【００８２】
ＨＤＤ７４は、セッション方向判定プログラム８０を記憶する。ＣＰＵ７２は、セッション方向判定プログラム８０を読み出してメモリ７３に展開し、セッション方向判定プログラム８０が有するプロセスを順次実行する。セッション方向判定プログラム８０は、パケットデータ取得プロセス８１、パケット間隔集計プロセス８２、セッション管理テーブル８３、パケット間隔集計データ８４、セッション方向判定プロセス８５を有する。
【００８３】
ＣＰＵ７２は、パケットデータ取得プロセス８１を実行することで、図１に示したパケットデータ取得部２１と同様の動作を行なう。また、ＣＰＵ７２は、パケット間隔集計プロセス８２を実行することで、図１に示したパケット間隔集計部２２と同様の動作を行なう。
【００８４】
ＣＰＵ７２がパケット間隔集計プロセス８２を実行することで作成したセッション管理テーブル８３とパケット間隔集計データ８４は、メモリ７３もしくはＨＤＤ７４が保持する。そして、ＣＰＵ７２は、セッション方向判定プロセス８５を実行することで、図１に示したセッション方向判定部２５と同様の動作を行なう。
【００８５】
このように、セッション方向判定プログラム８０を実行したコンピュータ７０は、セッション方向判定装置として機能することとなる。なお、ここでは、セッション方向判定プログラム８０をＨＤＤ７４から読み出す場合を例示したが、セッション方向判定プログラム８０は、ＣＤ（Compact Disc）など任意の記録媒体から読み出して実行することかできる。
【００８６】
上述してきたように、本実施例にかかるセッション方向判定装置１０及びセッション方向判定プログラム８０は、パケットを受信してから送信するまでのパケット間隔を集計し、集計結果からパケットが有する情報からクライアント側の通信装置とサーバ側の通信装置とを識別する。このため、コネクション管理用のパケットを取得するという制約や、パケットに情報を付加するなどの制約を受けることなく、データ部を有するデータパケットからであってもセッション方向を判定することができる。
【００８７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８８】
（付記１）通信装置が送受信したパケットを取得するパケット取得部と、
前記パケット取得部が取得したパケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計する集計部と、
前記集計部による集計結果に基づいて、前記パケットの送信元又は前記パケットの送信先が、サーバに対応するか、クライアントに対応するかを判定する判定部と
を備えたことを特徴とする判定装置。
【００８９】
（付記２）前記集計部は、パケットの送信先のアドレスとポート番号と送信元のアドレスとプロトコル種別との組み合わせに基づいて、集計することを特徴とする付記１に記載の判定装置。
【００９０】
（付記３）前記判定部は、パケットを受信してから送信するまでの時間の平均値が大きい側の通信装置がクライアントに対応し、前記時間の平均値が小さい側の通信装置がサーバに対応すると判定することを特徴とする付記１または２に記載の判定装置。
【００９１】
（付記４）前記判定部は、パケットを受信してから送信するまでの時間のばらつきが大きい側の通信装置がクライアントに対応し、前記時間のばらつきが小さい側の通信装置がサーバに対応すると判定することを特徴とする付記１〜３のいずれか一つに記載の判定装置。
【００９２】
（付記５）前記判定部は、所定の時間当たりのパケットの送受信回数が増加した場合に、パケットを受信してから送信するまでの時間が減少する通信装置がクライアントに対応すると判定することを特徴とする付記１〜４のいずれか一つに記載の判定装置。
【００９３】
（付記６）前記判定部は、一方の通信装置についてパケットを受信してからの送信回数が０である場合に、当該通信装置がクライアントに対応すると判定することを特徴とする付記１〜５のいずれか一つに記載の判定装置。
【００９４】
（付記７）通信装置が送受信したパケットを取得するステップと、
前記パケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計するステップと、
前記集計の結果に基づいて、前記パケットの送信元又は前記パケットの送信先が、サーバに対応するか、クライアントに対応するかを判定するステップと
を含んだことを特徴とする判定方法。
【００９５】
（付記８）通信装置が送受信したパケットを取得する手順と、
前記パケットの送信先のアドレスと送信元のアドレスとの組み合わせに基づいて、パケットの送信先と送信元が入れ替わる時間の間隔を同一のセッション内で集計する手順と、
前記集計の結果に基づいて、前記パケットの送信元又は前記パケットの送信先が、サーバに対応するか、クライアントに対応するかを判定する手順と
をコンピュータに実行させることを特徴とする判定プログラム。
【符号の説明】
【００９６】
１０    セッション方向判定装置
２１    パケットデータ取得部
２２    パケット間隔集計部
２３    セッション管理テーブル
２４    パケット間隔集計データ
２５    セッション方向判定部
４０    スイッチ
４１，４２    クライアント端末
５１〜５３    サーバ
６１〜６２    ウェブサーバ
６３    メールサーバ
６４    アプリケーションサーバ
６５    データベースサーバ
７０，ｃ１，ｃ２    コンピュータ
７１    バス
７２    ＣＰＵ
７３    メモリ
７４    ＨＤＤ
８０    セッション方向判定プログラム
８１    パケットデータ取得プロセス
８２    パケット間隔集計プロセス
８３    セッション管理テーブル
８４    パケット間隔集計データ
８５    セッション方向判定プロセス
【図１】
0005549304.tif 000002
【図２】
0005549304.tif 000003
【図３】
0005549304.tif 000004
【図４】
0005549304.tif 000005
【図５】
0005549304.tif 000006
【図６】
0005549304.tif 000007
【図７】
0005549304.tif 000008
【図８】
0005549304.tif 000009
【図９】
0005549304.tif 000010
【図１０】
0005549304.tif 000011
【図１１】
0005549304.tif 000012
【図１２】
0005549304.tif 000013
【図１３】
0005549304.tif 000014
【図１４】
0005549304.tif 000015