(57)【要約】【課題】適切にＰ２Ｐ端末を検出することができる端末検出方法、端末検出プログラム、および端末検出装置を提供する。【解決手段】通信ネットワークに接続された複数の情報処理装置の中からＰ２Ｐ（Peer  To  Peer）通信を行う対象情報処理装置を検出する端末検出方法であって、対象情報処理装置に接続する第１の情報処理装置から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数の構成データを取得する取得ステップと、取得された構成データのうち、対象情報処理装置に接続する第１の情報処理装置以外の第２の情報処理装置に送信する処理であるクエリルーティングが行われる対象となる構成データが存在するか否かを判定し、取得された構成データのうち、クエリルーティングが行われる対象となる構成データが存在する場合に、対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であると判定する判定ステップと、を含む。【選択図】図５
2010226439.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークに接続された複数の情報処理装置の中からＰ２Ｐ（Peer  To  Peer）通信を行う対象情報処理装置を検出する端末検出方法であって、
前記対象情報処理装置に接続する第１の情報処理装置から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数の構成データを取得する取得ステップと、
取得された前記構成データのうち、前記対象情報処理装置に接続する前記第１の情報処理装置以外の第２の情報処理装置に送信する処理であるクエリルーティングが行われる対象となる前記構成データが存在するか否かを判定し、取得された前記構成データのうち、前記クエリルーティングが行われる対象となる前記構成データが存在する場合に、前記対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であると判定する判定ステップと、
を含むことを特徴とする端末検出方法。
【請求項２】
前記取得ステップにおいて、前記クエリを構成するパケット単位に前記構成データを取得し、取得した前記パケットを、前記第１の情報処理装置から受信した受信パケット、または前記第２の情報処理装置に送信する送信パケットのいずれであるか判定し、
前記判定ステップにおいて、前記受信パケットと前記送信パケットとに基づいて、前記対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であるか否かを判定する、
ことを特徴とする請求項１に記載の端末検出方法。
【請求項３】
前記送信パケットは、前記対象情報処理装置のアドレスである対象アドレス情報と、前記第２の情報処理装置のアドレスである第２アドレス情報と、前記対象情報処理装置の接続先を示す対象ポート情報と、前記第２の情報処理装置の接続先を示す第２ポート情報と、プロトコル情報とを含む外向きタプル情報を含み、
前記取得ステップにおいて判定された前記送信パケットに含まれる前記外向きタプル情報が同一である前記送信パケットが存在するか否かを判定し、前記外向きタプル情報が同一である前記送信パケットが存在すると判定した場合に、前記送信パケットを、前記外向きタプル情報が同一である前記送信パケットの集合である外向きフローごとに前記送信パケットを分類した外向きフローレコードに変換する送信パケット保存ステップ、
を含むことを特徴とする請求項１または２に記載の端末検出方法。
【請求項４】
前記受信パケットは、前記対象アドレス情報と、前記第１の情報処理装置のアドレスである第１アドレス情報と、前記対象ポート情報と、前記第１の情報処理装置の接続先を示す第１ポート情報と、前記プロトコル情報とを含む内向きタプル情報を含み、
前記取得ステップにおいて判定された前記受信パケットに含まれる前記内向きタプル情報が同一である前記受信パケットが存在するか否かを判定し、前記内向きタプル情報が同一である前記受信パケットが存在すると判定した場合に、前記送信パケットを、前記内向きタプル情報が同一である前記受信パケットの集合である内向きフローごとに前記受信パケットを分類した内向きフローレコードに変換する受信パケット保存ステップ、
を含むことを特徴とする請求項１または２に記載の端末検出方法。
【請求項５】
前記送信パケット保存ステップにおいて、前記外向きフローに含まれる前記送信パケットを、前記送信パケットが取得された時刻である送信パケット取得時刻が所定の間隔以内である送信パケットの集合である外向きチャンクごとに、前記外向きフローレコードに対応付けて分類した外向きチャンクレコードに変換する、
ことを特徴とする請求項３に記載の端末検出方法。
【請求項６】
前記受信パケット保存ステップにおいて、前記内向きフローに含まれる前記受信パケットを、前記受信パケットが取得された時刻である受信パケット取得時刻が所定の間隔以内である受信パケットの集合である内向きチャンクごとに、前記内向きフローレコードに分類した内向きチャンクレコードに変換する、
ことを特徴とする請求項４に記載の端末検出方法。
【請求項７】
前記判定ステップにおいて、
前記外向きフローレコードに含まれる前記対象アドレス情報と同一の対象アドレス情報を含む前記内向きフローレコードが存在するか否かを判定し、前記外向きフローレコードに含まれる前記対象アドレス情報と同一の対象アドレス情報を含む前記内向きフローレコードが存在すると判定した場合に、前記外向きフローレコードと前記内向きフローレコードとを前記クエリルーティングが行われた可能性のある前記パケットの組であると判定するルーティング算出ステップと、
前記クエリルーティングが行われた可能性のある前記パケットの組であると判定された前記外向きフローレコードに対応する前記外向きチャンクレコードと前記内向きフローレコードに対応する前記内向きチャンクレコードとの組を決定し、決定した前記組の前記外向きチャンクレコードおよび前記内向きチャンクレコードに変換された前記送信パケットおよび前記受信パケットについて前記クエリルーティングが行われたか否かを判定するチャンクペアリングステップと、
を含むことを特徴とする請求項３〜６のいずれか１項に記載の端末検出方法。
【請求項８】
前記チャンクペアリングステップにおいて、決定された前記組の、前記外向きチャンクレコードに変換された前記送信パケットの前記送信パケット取得時刻が、前記内向きチャンクレコードに変換された前記受信パケットの前記受信パケット取得時刻よりも後の時刻であって前記時刻が所定の間隔以内であり、かつ前記外向きチャンクレコードに変換された前記送信パケットの容量を示す送信パケットサイズ情報が、前記内向きチャンクレコードに変換された前記受信パケットの容量を示す受信パケットサイズ情報よりも大きい場合であって前記送信パケットサイズ情報と前記受信パケットサイズ情報との差が所定の容量以内である場合に、決定した前記組の前記外向きチャンクレコードおよび前記内向きチャンクレコードに変換された前記送信パケットおよび前記受信パケットについて前記クエリルーティングが行われたと判定する、
ことを特徴とする請求項７に記載の端末検出方法。
【請求項９】
前記チャンクペアリングステップにおいて、決定した前記組の前記外向きチャンクレコードおよび前記内向きチャンクレコードについて前記クエリルーティングが行われた旨を通知し、
前記ルーティング算出ステップにおいて、前記クエリルーティングが行われた旨が前記チャンクペアリングステップにおいて通知された場合に、前記クエリルーティングが行われた可能性のある前記パケットの組を、前記外向きフローまたは前記内向きフローごとに判定する、
ことを特徴とする請求項７または８に記載の端末検出方法。
【請求項１０】
前記ルーティング算出ステップにおいて、前記クエリルーティングが行われた可能性のある前記パケットの組の数をカウントすることにより、前記クエリルーティングが行われた可能性のある前記パケットの組を判定する、
ことを特徴とする請求項７〜９のいずれか１項に記載の端末検出方法。
【請求項１１】
前記ルーティング算出ステップにおいて、カウントした前記クエリルーティングが行われた可能性のある前記パケットの組の数が所定の数以上存在するか否かを判定し、カウントした前記クエリルーティングが行われた可能性のある前記パケットの組の数が所定の数以上存在すると判定した場合に、前記外向きチャンクレコードおよび前記内向きチャンクレコードに変換された前記送信パケットおよび前記受信パケットについて前記クエリルーティングが行われたと判定する、
ことを特徴とする請求項１０に記載の端末検出方法。
【請求項１２】
前記ルーティング算出ステップにおいて、カウントした前記クエリルーティングが行われた可能性のある前記パケットの組の数が所定の数以上存在し、かつ前記所定の数以上のパケットの組を含む前記外向きフローまたは前記内向きフローが所定の数以上存在すると判定した場合に、前記外向きチャンクレコードおよび前記内向きチャンクレコードに変換された前記送信パケットおよび前記受信パケットについて前記クエリルーティングが行われたと判定する、
ことを特徴とする請求項１１に記載の端末検出方法。
【請求項１３】
前記対象情報処理装置または前記第１の情報処理装置または前記第２の情報処理装置のそれぞれは、前記クエリルーティングが行われたと判定した旨を表示する表示手段を備え、
前記ルーティング算出ステップにおいて、前記クエリルーティングが行われたと判定したことを示す結果を、いずれかの前記表示手段に表示させる、
ことを特徴とする請求項７〜１２のいずれか１項に記載の端末検出方法。
【請求項１４】
前記ルーティング算出ステップにおいて、前記クエリルーティングが行われたと判定した結果として、前記対象アドレス情報と、前記クエリルーティングが行われた可能性のある前記パケットの組の数を含む情報を、いずれかの前記表示手段に表示させる、
ことを特徴とする請求項１３に記載の端末検出方法。
【請求項１５】
通信ネットワークに接続された複数の情報処理装置の中からＰ２Ｐ（Peer  To  Peer）通信を行う対象情報処理装置を検出するコンピュータで実行されるプログラムであって、
前記対象情報処理装置に接続する第１の情報処理装置から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数の構成データを取得する取得ステップと、
取得された前記構成データのうち、前記対象情報処理装置に接続する前記第１の情報処理装置以外の第２の情報処理装置に送信する処理であるクエリルーティングが行われる対象となる前記構成データが存在するか否かを判定し、取得された前記構成データのうち、前記クエリルーティングが行われる対象となる前記構成データが存在する場合に、前記対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であると判定する判定ステップと、
を実行することを特徴とする端末検出プログラム。
【請求項１６】
通信ネットワークに接続された複数の情報処理装置の中からＰ２Ｐ（Peer  To  Peer）通信を行う対象情報処理装置を検出する検出装置であって、
前記対象情報処理装置に接続する第１の情報処理装置から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数の構成データを取得する取得手段と、
取得された前記構成データのうち、前記対象情報処理装置に接続する前記第１の情報処理装置以外の第２の情報処理装置に送信する処理であるクエリルーティングが行われる対象となる前記構成データが存在するか否かを判定し、取得された前記構成データのうち、前記クエリルーティングが行われる対象となる前記構成データが存在する場合に、前記対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であると判定する判定手段と、
を備えることを特徴とする端末検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末を検出する技術に関し、特に、ネットワーク上のトラヒックの中からＰ２Ｐ（Peer  to  Peer）通信を行っている通信端末を検出する技術に関する。
【背景技術】
【０００２】
インターネット上で行われる通信の一形態として、Ｐ２Ｐ通信と呼ばれる通信の形態がある。これは不特定多数のコンピュータが相互に接続され、ルータなどを介してファイルなどの情報を送受信するインターネットの利用形態である。
【０００３】
一般に、Ｐ２Ｐ通信を行っている端末はＰ２Ｐ端末と呼ばれるが、Ｐ２Ｐ通信は、ファイルの共有などの大きな恩恵を利用者にもたらす一方で、著作権を侵害するファイルの流通に利用されたり、Ｐ２Ｐ通信のトラヒックを増加により通信ネットワークに大きな負荷がかかる等の問題を発生させている。また、Ｐ２Ｐ通信を行うＰ２Ｐソフトウェア（以下、Ｐ２Ｐソフト）を悪用したウイルスによる情報漏洩事故が多発し、社会的な問題となっている。
【０００４】
これらの動きを受け、ネットワーク上のＰ２Ｐ端末を検出し、そのトラヒックを制御しようとする試みがなされている。例えば、非特許文献1には、端末が他の端末に対して開いたＴＣＰ(Transmission  Control  Protocol)コネクションの接続数と他の端末から受けたＴＣＰコネクションの接続数の比を求めることによりＰ２Ｐ端末を検出する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“Inherent  Behaviors  for  On-line  Detection  of  Peer-to-Peer  File  Sharing”,  In  Proceedings  of  the  10th  IEEE  Global  Internet  Symposium,  2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したＰ２Ｐ通信は、様々な種類のプロトコルによって通信手順によって実現されている。従って、ある一部の種類のプロトコルにのみ着目してＰ２Ｐ端末を検出しても、Ｐ２Ｐ端末のすべてを検出することができるわけではないため、プロトコルに依存しない方法でＰ２Ｐ端末を検出する必要がある。また、今日ではＰ２Ｐ端末上でも様々なネットワークサービスが動作しているため、Ｐ２Ｐ以外のネットワークサービスを誤検出しないことも必要となる。
【０００７】
しかしながら、非特許文献１に開示された技術では、端末のＴＣＰコネクションの接続数と非接続数との比率を計算し、この値が一定範囲内である場合、その端末はＰ２Ｐ端末であると判断している。このため、例えば、Ｗｅｂサーバが他の端末にＴＣＰ接続でアクセスしようとした場合、他の端末に対してＷｅｂサービスを提供するサーバとして機能しているにもかかわらず、誤ってＰ２Ｐ端末であると判断されてしまう可能性があるという問題があった。また、ＴＣＰ接続の以外のプロトコル（例えば、ＵＤＰ(User  Datagram  Protocol)）を用いて通信を行う端末を検出できないという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、適切にＰ２Ｐ端末を検出することができる端末検出方法、端末検出プログラム、および端末検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した目的を達成するために、本発明にかかる端末検出方法は、通信ネットワークに接続された複数の情報処理装置の中からＰ２Ｐ（Peer  To  Peer）通信を行う対象情報処理装置を検出する端末検出方法であって、前記対象情報処理装置に接続する第１の情報処理装置から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数の構成データを取得する取得ステップと、取得された前記構成データのうち、前記対象情報処理装置に接続する前記第１の情報処理装置以外の第２の情報処理装置に送信する処理であるクエリルーティングが行われる対象となる前記構成データが存在するか否かを判定し、取得された前記構成データのうち、前記クエリルーティングが行われる対象となる前記構成データが存在する場合に、前記対象情報処理装置がＰ２Ｐ通信を行う情報処理装置であると判定する判定ステップと、を含むことを特徴とする。また、本発明は、上記端末検出方法の各機能を実現させる端末検出プログラムおよび上記端末検出方法により端末を検出する端末検出装置である。
【発明の効果】
【００１０】
本発明によれば、適切にＰ２Ｐ端末を検出することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本実施形態にかかる端末検出システムの構成を示す図である。
【図２】クエリ、フロー、パケットチャンク、送信ノード、および受信ノード、対象ノードの関係を示すイメージ図である。
【図３】パケットとパケットチャンクの関係の例を示す図である。
【図４】図１に示した検出装置の主要な物理的な構成を示す図である。
【図５】図４に示した検出装置の機能的な構成、および物理的な各装置との関係を示す図である。
【図６】外向きフローレコードが外向きフローＤＢに記憶された場合の例を示す図である。
【図７】外向きチャンクレコードが外向きフローＤＢに記憶された場合の例を示す図である。
【図８】内向きフローＩＤが「０」〜「３」までの内向きフローレコードが記憶されている場合の例を示す図である。
【図９】内向きチャンクレコードが内向きフローＤＢに記憶された場合の例を示す図である。
【図１０】本実施の形態において、端末検出システムが各種の処理を行う場合の処理手順を示すフローチャートである。
【図１１】本実施の形態において、端末検出システムが各種の処理を行う場合の処理手順を示すフローチャートである。
【図１２】本実施の形態において、端末検出システムが各種の処理を行う場合の処理手順を示すフローチャートである。
【図１３】本実施の形態において、端末検出システムが各種の処理を行う場合の処理手順を示すフローチャートである。
【図１４】図１３に示したクエリルーティング判定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる端末検出方法、端末検出プログラム、および端末検出装置の実施の形態を詳細に説明する。
【００１３】
図１は、本実施形態にかかる端末検出システム１０００の構成を示す図である。図１に示すように、端末検出システム１０００は、送信ホスト１００と、送信ホスト１１０と、受信ホスト２００と、対象ホスト３００と、検出装置４００と、通信ネットワーク５００と、を含んで構成されている。なお、通信ネットワーク５００は、ＷＡＮ（Wide  Area  Network）やＬＡＮ（Local  Area  Network）等の通信回線網である。
【００１４】
送信ホスト１００および送信ホスト１１０は、ＴＣＰ(Transmission  Control  Protocol)やＵＤＰ(User  Datagram  Protocol)等の種々のプロトコルにしたがって、対象ホスト３００との間で様々なデータの送受信を行う端末等である。以下の説明では、送信ホスト１００および送信ホスト１１０は、近隣の対象ホスト３００に対して所望のデータを検索するための要求を行うものとする。このように、送信ホスト１００や送信ホスト１１０が、近隣の対象ホスト３００に対して行う要求のことをクエリと呼ぶこととする。
【００１５】
また、クエリは、検索を行うための複数の検索情報（例えば、検索する対象となる文字列や、その文字列を検索するコマンド、あるいは検索対象となるＷｅｂサーバのページ等の情報）を含んで構成される。上述した送信ホスト１００や送信ホスト１１０は、クエリをクエリと同じ、またはクエリよりも小さいデータ（以下、パケットと呼ぶ。）に分割して対象ホスト３００に送信する。
【００１６】
より具体的には、送信ホスト１００や送信ホスト１１０は、クエリをパケットに分割する際に、送信ホスト１００や送信ホスト１１０のアドレスを示す送信ＩＰ（Internet  Protocol）アドレス、対象ホスト３００のアドレスを示す受信ＩＰアドレス、送信ポート番号、受信ポート番号、プロトコルの種類等の各種の情報をヘッダ情報（ＩＰヘッダ）としてパケットに付加し、ヘッダ情報が付加されたパケットを対象ホスト３００に送信している。以下では、上述したヘッダ情報に含まれる各種の情報のうち、特に、送信ＩＰアドレス、受信ＩＰアドレス、送信ポート番号、受信ポート番号、プロトコルの種類、の５つの情報のことを５タプルと呼ぶこととする。５タプルの具体的な内容については、検出装置４００を説明する際に合わせて説明する。
【００１７】
さらに以下では、上述した５タプルの各情報が同一であるパケットまたはパケットチャンク（後述）の集合のことを、特に、フローと呼ぶこととする。また、フローのうち、各パケットを送信または受信した間隔が、あらかじめ定められた一定の時間の間隔（例えば、１０ミリ秒）以内であるパケットやその集合のことを、特に、パケットチャンクと呼ぶこととする。パケットチャンクは、少なくとも１つ以上のパケットを含んで構成されているが、フローおよびパケットチャンクの具体的な内容については、上述した５タプルと同様に後述する。
【００１８】
なお、送信ホスト１００および送信ホスト１１０についての具体的な構成については、その記載を省略するが、上述したクエリを送信できるものであれば、いずれの構成でも構わない。また、以下では、クエリを送信する送信ホスト１００や送信ホスト１１０のことを、単に送信ノードと呼ぶこともある。
【００１９】
受信ホスト２００は、上述した送信ノードの各ホストと同様に、種々のプロトコルにしたがって、近隣の対象ホスト３００との間で様々なデータの送受信を行う端末等である。以下の説明では、受信ホスト２００は、上述した送信ノードから要求されたクエリについてのパケットを含む種々のデータを、近隣のホストである対象ホスト３００から受信するものとして説明している。
【００２０】
なお、受信ホスト２００についての具体的な構成については、送信ノードの各ホストと同様にその記載を省略するが、上述したクエリを受信できるものであれば、いずれの構成でも構わない。また、以下では、クエリを受信する受信ホスト２００のことを、単に受信ノードと呼ぶこともある。
【００２１】
対象ホスト３００は、上述した送信ノードや受信ノードの各ホストと同様に、種々のプロトコルにしたがって、これらの近隣の各ホストとの間で様々なデータの送受信を行う端末等である。以下の説明では、対象ホスト３００は、近隣の送信ノードの各ホストからクエリについてのパケットを受信すると、近隣の受信ノードまでのルーティングを示す経路情報を受信したパケットに付加し、経路情報を付加したパケットを、送信ノード以外の近隣のホストである受信ノードに転送する場合について説明している。
【００２２】
なお、以下では、このように、あるクエリについてのパケットを受信した場合に、上述した経路情報をパケットに付加し、近隣のホストに転送することをクエリルーティングと呼ぶこととする。このように、近隣のホストがクエリルーティングを行うことによって、送信ノードの各ホストからのクエリが実行され、送信ノードから要求された各種のデータを検索することができる。また、以下では、対象ホスト３００のことを、対象ノードと呼ぶこともある。
【００２３】
図２および図３は、上述したクエリ、フロー、パケットチャンク、送信ノード、および受信ノード、対象ノードの関係を示すイメージ図である。図２に示す例では、送信ホスト１００が、１つのクエリ（クエリＡ）としてパケットチャンクＰａとＰｃとを対象ホスト３００に送信し、送信ホスト１１０が、１つのクエリ（クエリＢ）としてパケットチャンクＰｂとＰｄとを対象ホスト３００に送信した場合の例を示している。
【００２４】
なお、図２に示した例では、クエリＡとして送信したパケットチャンクＰｃ、およびクエリＢとして送信したパケットチャンクＰｄは、対象ホスト３００が、既に各パケットチャンクに含まれるパケットに経路情報を付加して受信ホスト２００に送信した状態であり、パケットチャンクＰａが含まれるフローをフロー１、パケットチャンクＰｃおよびパケットチャンクＰｄが含まれるフローをフロー２、パケットチャンクＰｂが含まれるフローをフロー３としてあらわしている。
【００２５】
図２に示すように、対象ホスト３００は、送信ホスト１００からパケットチャンクＰａとパケットチャンクＰｃとを受信すると、順次、受信したパケットチャンクに含まれるパケットに経路情報を付加して受信ホスト２００に転送する。これと同様に、対象ホスト３００は、送信ホスト１１０からパケットチャンクＰｂとパケットチャンクＰｄとを受信すると、順次、受信したパケットチャンクに含まれるパケットに経路情報を付加して受信ホスト２００に転送する。
【００２６】
上述したように、パケットチャンクＰａとパケットチャンクＰｂについては、送信ホスト１００と対象ホスト３００との間で通信されている状態である。したがって、パケットチャンクＰａの５タプルの各情報には、送信ＩＰアドレスとして送信ホスト１００のＩＰアドレス、受信ＩＰアドレスとして対象ホスト３００のＩＰアドレス、送信ポート番号として送信ホスト１００の送信ポート番号、受信ポート番号として対象ホスト３００の受信ポート番号、プロトコルの種類として、例えばＴＣＰが記されている。
【００２７】
また、パケットチャンクＰｂについては、送信ＩＰアドレスとして送信ホスト１１０のＩＰアドレス、受信ＩＰアドレスとして対象ホスト３００のＩＰアドレス、送信ポート番号として送信ホスト１１０の送信ポート番号、受信ポート番号として対象ホスト３００の受信ポート番号、プロトコルの種類として、例えばＴＣＰが、パケットチャンクＰａと同様に記されている。
【００２８】
一方、パケットチャンクＰｃとパケットチャンクＰｄについては、上述したように、すでに対象ホスト３００が受信し、対象ホスト３００と受信ホスト２００との間で通信された状態である。したがって、パケットチャンクＰｃの５タプルの各情報には、送信ＩＰアドレスとして対象ホスト３００のＩＰアドレス、受信ＩＰアドレスとして受信ホスト２００のＩＰアドレス、送信ポート番号として対象ホスト３００の送信ポート番号、受信ポート番号として受信ホスト２００の受信ポート番号、プロトコルの種類として、例えばＴＣＰが記されている。パケットチャンクＰｂについても、パケットチャンクＰａと同様の５タプルの各情報が記されている。
【００２９】
このように、送信ノードからクエリとしてパケットが送信され、送信されたパケットがクエリルーティングされると、そのパケットチャンクの５タプルの各情報は、対象端末３００によって転送される前と後とでは異なっている。このため、後述する検出端末４００では、パケットチャンクの５タプルの各情報が同一であるか否か、さらには転送されるパケットチャンクの時間の間隔に着目することによって、対象端末３００がＰ２Ｐ通信を行っているか否かを判定している。すなわち、クエリルーティングした可能性のあるクエリに含まれるパケットチャンクの組（ペア）について、上述した判定を行うことによって、Ｐ２Ｐ通信を行っている端末を特定している。なお、判定の具体的な内容については後述する。
【００３０】
図３は、パケットとパケットチャンクの関係の例を示す図である。図３では、図２に示したフロー２に含まれるパケットチャンクＰｃおよびパケットチャンクＰｄを例に、横軸を時間（ｔ）として、パケットチャンクＰｃにはパケット１およびパケット２が含まれ、パケットチャンクＰｄにはパケット３およびパケット４が含まれる場合を示している。
【００３１】
図３に示すように、パケットチャンクＰｃに含まれるパケット１およびパケット２は、一定の時間の間隔（Δｌ）以下で送信されているため、１つのパケットチャンク（パケットチャンクＰｃ）であると判断する。これと同様に、パケットチャンクＰｄについても、パケット３およびパケット４が一定の時間の間隔（Δｌ）以下で送信されているため、１つのパケットチャンク（パケットチャンク２）であると判断する。一方、パケットチャンクＰｃに含まれるパケット２およびパケットチャンクＰｄに含まれるパケット３の時間の間隔は、一定の時間の間隔（Δｌ）よりも長いため、パケット２とパケット３とは１つのパケットチャンクではないと判断される。
【００３２】
なお、以下の説明では、対象ホスト３００におけるパケットの送受信に着目し、対象ホスト３００が送信ノードからパケットを受信する場合のクエリ、フロー、パケットチャンク、パケットのことを、それぞれ受信クエリ、受信フロー、受信パケットチャンク、受信パケット等と呼ぶ場合もある。また、これと同様に、対象ホスト３００が受信ノードに対してパケットを送信する場合のクエリ、フロー、パケットチャンク、パケットのことを、それぞれ送信クエリ、送信フロー、送信パケットチャンク、送信パケット等と呼ぶ場合もある。続いて、図１に戻り、検出装置４００について説明する。
【００３３】
検出装置４００は、送信ホスト１００や送信ホスト１１０、受信ホスト２００、対象ホスト３００の各ホストとの間で送受信されるデータのトラヒックを監視する端末等である。ここで、トラヒックとは、上述したクエリ、フロー、パケットチャンク、パケットの各情報の伝送量をいうものとする。
【００３４】
図４は、検出装置４００の主要な物理的な構成を示す図である。図４に示すように、検出装置４００は、物理的には、入出力装置４０５と、本体装置４１０と、を含んで構成されている。入出力装置４０５は、ディスプレイ等の表示装置とキーボード等の入力装置を含んで構成され、検出装置４００の利用者からの指示（例えば、検出装置４００の起動指示）の入力を受け付けたり、あるいは後述する本体装置４１０のＣＰＵ（Central  Processing  Unit）４５０が処理を行った結果等を表示する。
【００３５】
なお、入出力装置４０５の入力装置と出力装置とは、実際には別個の筐体であるが、これらの各装置が行う処理は主要な部分ではないため、これらをまとめて入出力装置４０５として示している。また、以下の説明では、ＣＰＵ４５０が処理を行った結果等を入出力装置４０５に表示する前提で説明しているが、例えば、送信ノードの各ホストや受信ノード等、通信ネットワーク５００によって接続された他の装置等に表示させることとしてもよい。
【００３６】
本体装置４１０は、インタフェース４２０と、記憶装置４３０と、メモリ４４０と、ＣＰＵ４５０と、バス４６０と、を含んで構成されている。
【００３７】
インタフェース４２０は、ＮＩＣ（Network  Interface  Card）等から構成され、通信ネットワーク５００と検出装置４００との間の通信を媒介する。
【００３８】
記憶装置４３０は、ＨＤＤ（Hard  Disk  Drive）等から構成され、外向きフローＤＢ（Data  Base）４３１と内向きフローＤＢ４３２とを記憶する。外向きフローＤＢ４３１と内向きフローＤＢ４３２の具体的な内容については後述する。
【００３９】
メモリ４４０は、ＲＡＭ（Random  Access  Memory）およびＲＯＭ（Read  Only  Memory）等の記憶媒体から構成されている。ＲＯＭには、上述した対象ホスト３００を検出するプログラムがあらかじめ記憶されている。そして、このプログラムが後述するＣＰＵ４５０によってＲＡＭに展開（ロード）されて実行されることによって、対象ホスト３００におけるトラヒックを検出している。ＣＰＵ４５０が実行する具体的な機能については後述する。なお、以下では、上述したプログラムは、あらかじめＲＯＭに記憶されている前提で説明しているが、例えば、通信ネットワーク５００を介して、他のホスト等から必要に応じてインストールすることとしてもよい。
【００４０】
ＣＰＵ４５０は、プロセッサ等の演算装置から構成され、上述したプログラムの実行や、検出装置４００に含まれる各装置の動作を制御する。なお、ＣＰＵ４５０は、時刻を計時するクロックを内部に備えているものとする。
【００４１】
バス４６０は、検出装置４００に含まれる各装置を接続し、これらの装置間における種々のデータの受け渡しを行う。
【００４２】
続いて、上述した検出装置４００の機能的な構成について説明する。図５は、図４に示した検出装置４００の機能的な構成、および物理的な各装置との関係を示す図である。図５に示すように、ＣＰＵ４５０は、パケット取得部４５１と、送信パケット保存部４５２と、受信パケット保存部４５３と、ルーティングスコア算出部４５４と、ペアリング部４５５と、を含んで構成されている。
【００４３】
パケット取得部４５１は、対象ホスト３００を含む通信ネットワーク５００におけるトラヒックを監視するものである。具体的には、パケット取得部４５１は、インタフェース４２０を介して通信ネットワーク５００に接続し、対象ホスト３００が対象ホスト３００以外の他のホストに送信しているパケット、または対象ホスト３００以外の他のホストから受信しているパケットを取得し、取得したパケットを、後述する送信パケット保存部４５２または受信パケット保存部４５３に出力する。
【００４４】
より具体的には、パケット取得部４５１は、対象ホスト３００からパケットを取得すると、取得したパケットのヘッダ情報に記載された送信ＩＰアドレスおよび受信ＩＰアドレスを読み取る。そして、パケット取得部４５１は、読み取った送信ＩＰアドレスおよび受信ＩＰアドレスに、対象ホスト３００のＩＰアドレスが含まれているか否かを判定する。
【００４５】
そして、パケット取得部４５１は、読み取った送信ＩＰアドレスおよび受信ＩＰアドレスに、対象ホスト３００のＩＰアドレスが含まれていると判定した場合、さらにそのＩＰアドレスが送信ＩＰアドレスまたは受信ＩＰアドレスのいずれに含まれているか否かを判定する。
【００４６】
パケット取得部４５１は、対象ホスト３００のＩＰアドレスが送信ＩＰアドレスに含まれていると判定した場合、取得したパケットは、対象ホスト３００が対象ホスト３００以外の他のホストに送信するパケット、すなわち送信フローに含まれるパケット（送信パケット）であると判断し、取得した送信パケットを後述する送信パケット保存部４５２に出力する。
【００４７】
これと同様に、パケット取得部４５１は、対象ホスト３００のＩＰアドレスが送信ＩＰアドレスに含まれていない、すなわち、対象ホスト３００のＩＰアドレスが受信ＩＰアドレスに含まれていると判定した場合、取得したパケットは、対象ホスト３００が対象ホスト３００以外の他のホストから受信したパケットであると判断する。すなわち、パケット取得部４５１は、取得したパケットは受信フローに含まれるパケット（受信パケット）であると判断し、取得した受信パケットを後述する受信パケット保存部４５３に出力する。
【００４８】
送信パケット保存部４５２は、パケット取得部４５１から出力された送信パケットを受け取ると、その送信パケットをフロー形式のデータ（以下、外向きフローレコードと呼ぶ。）とパケットチャンク形式のデータ（以下、外向きチャンクレコードと呼ぶ。）に変換し、変換した各データを外向きフローＤＢ４３１に記憶させる。すなわち、送信パケット保存部４５２は、送信パケットをフローレコードまたはチャンクレコード単位に分類する。
【００４９】
図６は、上述した外向きフローレコードが外向きフローＤＢ４３１に記憶された場合の例を示す図である。なお、図６に示すように外向きフローＤＢ４３１に記憶された外向きフローレコードの全体のことを外向きフローテーブルと呼ぶこととする。
【００５０】
送信パケット保存部４５２は、まず、パケット取得部４５１から送信パケットを受け取ると、受け取ったパケットがフローの中で最初に取得した送信パケットであるか否かを判定する。そして、送信パケット保存部４５２は、受け取った送信パケットがフローの中で最初に取得した送信パケットであると判定した場合、外向きフローテーブルに新たに外向きフローレコードを生成する。
【００５１】
そして、送信パケット保存部４５２は、外向きフローレコードを一意に特定するためのＩＤ（Identification。以下、外向きフローＩＤと呼ぶ。）を付与するとともに、取得したパケットのサイズ情報、パケットを最初に取得した時刻である開始時刻、パケットを最後に取得した時刻である終了時刻、５タプルの値、ルーティングスコアの６つの値を含む外向きフローレコードを新たに生成する。
【００５２】
例えば、外向きフローＩＤには０、１、２等の数値、サイズ情報には送信パケットのヘッダ情報の除いたパケットペイロードの値、開始時刻および終了時刻にはパケット取得部４５１から送信パケットを受け取った時刻、５タプルの値には取得した送信パケットのヘッダ情報に含まれているそれぞれの値が外向きフローレコードに記憶される。なお、ルーティングスコアとは、外向きフローに含まれるパケットチャンクのうち、クエリの転送に用いられたと考えられるものの数であり、後述するルーティングスコア算出部４５４は、このルーティングスコアが高いほど、クエリルーティングされたと判定する。また、ルーティングスコアには、後述するルーティングスコア算出部４５４によって初期値としてゼロが記憶されるが、ルーティングスコアについての具体的な内容については後述する。
【００５３】
なお、パケット取得部４５１が取得した送信パケットがフローの中で最初に取得した送信パケットであるか否かの判定は、取得した送信パケットと、過去に取得した送信パケットの５タプルの値が同じである外向きフローレコードが、外向きフローテーブルに記憶されているか否かによって判定する。
【００５４】
一方、送信パケット保存部４５２は、受け取った送信パケットがフローの中で最初に取得した送信パケットではないと判定した場合、取得した送信パケットの５タプルの値と、すでに外向きフローテーブルに記憶されている外向きフローレコードの５タプルの値とが同じ外向きフローレコードを特定する。そして、送信パケット保存部４５２は、特定した外向きフローレコードのサイズ情報に、取得した送信パケットのパケットペイロードの値を追加し、さらに、終了時刻にパケット取得部４５１から送信パケットを受け取った時刻を上書きする。
【００５５】
図６に示す例では、外向きフローＩＤが「０」〜「２」までの外向きフローレコードが外向きフローテーブルに記憶されている場合の例を示している。外向きフローＩＤが「０」であるフローレコードは、サイズ情報が「３．０ＫＢ」、開始時刻が「０８／１２／０８  １２：００：００．０００」、終了時刻が「０８／１２／０８  １２：００：００．３００」、５タプルの値が「１０．０．０．１：２００  １０．０．０．２：８０  ＴＣＰ」、ルーティングスコアが「１」であることを示している。
【００５６】
これと同様に、外向きフローＩＤが「１」であるフローレコードは、サイズ情報が「０．６ＫＢ」、開始時刻が「０８／１２／０８  １２：００：１０．０００」、終了時刻が「０８／１２／０８  １２：００：１０．４００」、５タプルの値が「１０．０．０．１：４００  １０．０．０．３：１６２  ＵＤＰ」、ルーティングスコアが「２」であり、フローＩＤが「２」であるフローレコードは、サイズ情報が「１．０ＫＢ」、開始時刻が「０８／１２／０８  １３：００：００．０００」、終了時刻が「０８／１２／０８  １３：００：００．０００」、５タプルの値が「１０．０．０．１：５００  １０．０．０．４：１３７  ＴＣＰ」、ルーティングスコアが「１」となっていることを示している。このように、外向きフローレコードが、順次、外向きフローテーブルに記憶されるが、記憶されたこれらの外向きフローレコードの５タプルの値のうち、送信ＩＰアドレスについては、同じ送信ＩＰアドレス（１０．０．０．１）、すなわち対象ホスト３００のＩＰアドレスが記憶される。
【００５７】
なお、上述した例では、外向きフローＩＤが「３」の外向きフローレコードの開始時刻と終了時刻が同じ時刻となっているが、送信パケット保存部４５２が受け取った送信パケットが、フローの中で最初に取得した送信パケットであるためである。続いて、外向きチャンクレコードについて説明する。
【００５８】
図７は、上述した外向きチャンクレコードが外向きフローＤＢ４３１に記憶された場合の例を示す図である。なお、図７に示すように外向きフローＤＢ４３１に記憶された外向きチャンクレコードの全体のことを外向きチャンクテーブルと呼ぶこととする。
【００５９】
送信パケット保存部４５２は、受け取った送信パケットの５タプルの値と、過去に取得した送信パケットの５タプルの値が同じである外向きチャンクレコードが外向きチャンクテーブルに存在し、かつ取得した送信パケットの時刻と外向きチャンクテーブルの末尾パケット検出時刻との間の間隔が、あらかじめ定められた一定の時間の間隔（例えば、１０ミリ秒）以内であるか否かを判定する。
【００６０】
そして、送信パケット保存部４５２は、過去に取得した送信パケットの５タプルの値が同じである外向きチャンクレコードが外向きチャンクテーブルに存在しない、または取得した送信パケットの時刻と外向きチャンクテーブルの末尾パケット検出時刻（後述）との間の間隔が、一定の時間の間隔よりも大きいと判定した場合、外向きチャンクテーブルに新たに外向きチャンクレコードを生成する。
【００６１】
そして、送信パケット保存部４５２は、外向きフローレコードの場合と同様に、外向きチャンクレコードを一意に特定するためのＩＤ（以下、外向きチャンクＩＤと呼ぶ。）を付与するとともに、取得した送信パケットのサイズ情報、送信パケットを最初に取得した時刻である先頭パケット検出時刻、送信パケットを最後に取得した時刻である末尾パケット検出時刻、５タプルの値、５タプルの値が同じであると判定した外向きチャンクレコードのチャンクＩＤの６つの値を含むチャンクレコードを新たに生成する。
【００６２】
一方、送信パケット保存部４５２は、受け取った送信パケットの５タプルの値と、過去に取得した送信パケットの５タプルの値が同じである外向きチャンクレコードが外向きチャンクテーブルに存在し、かつ取得した送信パケットの時刻と外向きチャンクテーブルの末尾パケット検出時刻との間の間隔が、一定の時間の間隔以内であると判定した場合、パケット取得部４５１から送信パケットを受け取った時刻を、末尾パケット検出時刻に上書きするとともに、サイズ情報を、受け取った送信パケットのパケットペイロードの値に追加する。
【００６３】
図７では、外向きチャンクＩＤが「０」〜「７」までの外向きチャンクレコードが外向きチャンクテーブルに記憶されている場合の例を示している。ＩＤが「０」である外向きチャンクレコードは、サイズ情報が「１．０ＫＢ」、先頭パケット検出時刻が「０８／１２／０８  １２：００：００．０００」、末尾パケット検出時刻が「０８／１２／０８  １２：００：００．０５０」、５タプルの値が「１０．０．０．１：２００  １０．０．０．２：８０  ＴＣＰ」、外向きフローＩＤが「０」となっている。このように、図７に示す外向きチャンクＩＤが「０」の外向きチャンクレコードは、図６に示した外向きフローＩＤが「０」の外向きフローレコードに対応付けて記憶される。
【００６４】
これと同様に、外向きチャンクＩＤが「１」である外向きチャンクレコードは、サイズ情報が「０．５ＫＢ」、先頭パケット検出時刻が「０８／１２／０８  １２：００：１０．２００」、末尾パケット検出時刻が「０８／１２／０８  １２：００：１０．２００」、５タプルの値および外向きフローＩＤが、外向きチャンクＩＤが「０」の外向きチャンクレコードと同じであり、外向きチャンクＩＤが「２」である外向きチャンクレコードは、サイズ情報が「１．０ＫＢ」、先頭パケット検出時刻が「０８／１２／０８  １２：００：１０．３５０」、末尾パケット検出時刻が「０８／１２／０８  １２：００：１０．４００」、５タプルの値および外向きフローＩＤが、外向きチャンクＩＤが「０」の外向きチャンクレコードと同じであることを示している。
【００６５】
さらに、外向きチャンクＩＤが「３」である外向きチャンクレコードは、サイズ情報が「０．５ＫＢ」、先頭パケット検出時刻が「０８／１２／０８  １２：００：１０．６００」、末尾パケット検出時刻が「０８／１２／０８  １２：００：１０．６００」、５タプルの値および外向きフローＩＤが、外向きチャンクＩＤが「０」の外向きチャンクレコードと同じであることを示している。このように、外向きチャンクレコードが、順次外向きチャンクテーブルに記憶されるが、記憶されたこれらの外向きフローレコードの５タプルの値のうち、送信ＩＰアドレスについては、外向きフローレコードと同様に、同じ送信ＩＰアドレス（１０．０．０．１）、すなわち対象ホスト３００のＩＰアドレスが記憶される。
【００６６】
すなわち、図６に示した外向きフローＩＤが「０」の外向きフローレコードは、図７に示した外向きチャンクＩＤが「０」〜「２」の３つの外向きチャンクレコードから構成されていることを示している。これと同様に、例えば、図６に示した外向きフローＩＤが「１」である外向きフローレコードは、図７に示す外向きチャンクＩＤが「４」〜「６」の３つの外向きチャンクレコードから構成されていることを示している。このように、１つの外向きフローレコードは、少なくとも１つの外向きチャンクレコードから構成され、互いに対応付けて記憶されている。続いて、図５に戻り、受信パケット保存部４５３について説明する。
【００６７】
受信パケット保存部４５３は、送信パケット保存部４５２と同様に、パケット取得部４５１から出力された受信パケットを受け取ると、その受信パケットをフロー形式のデータ（以下、内向きフローレコードと呼ぶ。）とパケットチャンク形式のデータ（以下、内向きチャンクレコードと呼ぶ。）に変換し、変換した各データを内向きフローＤＢ４３２に記憶させる。すなわち、受信パケット保存部４５３は、上述した送信パケット保存部４５２と同様に、受信パケットをフローレコードまたはチャンクレコード単位に分類する。
【００６８】
受信パケット保存部４５３は、まず、パケット取得部４５１からパケットを受け取ると、受け取った受信パケットがフローの中で最初に取得した受信パケットであるか否かを判定する。そして、送信パケット保存部４５２は、受け取った受信パケットがフローの中で最初に取得した受信パケットであると判定した場合、内向きフローテーブルに新たに内向きフローレコードを生成する。
【００６９】
そして、受信パケット保存部４５３は、内向きフローレコードを一意に特定するための内向きフローＩＤを付与するとともに、外向きフローレコードの場合と同様に、取得した受信パケットのサイズ情報、受信パケットを最初に取得した時刻である開始時刻、受信パケットを最後に取得した時刻である終了時刻、５タプルの値、ルーティングスコアの６つの値を含む内向きフローレコードを新たに生成する。内向きフローレコードがどのように生成されるかについては、外向きフローレコードの場合と同様であるため、ここではその説明を省略する。
【００７０】
図８は、内向きフローＩＤが「０」〜「３」までの内向きフローレコードが内向きフローテーブルに記憶されている場合の例を示している。内向きフローＩＤが「０」である内向きフローレコードは、サイズ情報が「１．０ＫＢ」、開始時刻が「０８／１２／０８  １１：５９：５９．９００」、終了時刻が「０８／１２／０８  １１：５９：５９．９５０」、５タプルの値が「１０．０．０．５：２００  １０．０．０．１：８０  ＴＣＰ」、ルーティングスコアが「０」であることを示している。
【００７１】
これと同様に、内向きフローＩＤが「１」である内向きフローレコードは、サイズ情報が「０．５ＫＢ」、開始時刻が「０８／１２／０８  １１：５９：５９．８９５」、終了時刻が「０８／１２／０８  １２：００：０９．８９５」、５タプルの値が「１０．０．０．６：３００  １０．０．０．１：１６２  ＵＤＰ」、ルーティングスコアが「０」であり、内向きフローＩＤが「２」である内向きフローレコードは、サイズ情報が「０．６ＫＢ」、開始時刻が「０８／１２／０８  １２：００：０９．９００」、終了時刻が「０８／１２／０８  １２：００：０９．９５０」、５タプルの値が「１０．０．０．７：４００  １０．０．０．１：１３９  ＴＣＰ」、ルーティングスコアが「０」であり、内向きフローＩＤが「３」である内向きフローレコードは、サイズ情報が「１．０ＫＢ」、開始時刻が「０８／１２／０８  １２：５９：５９．９５０」、終了時刻が「０８／１２／０８  １２：５９：５９．９５０」、５タプルの値が「１０．０．０．８：２００  １０．０．０．１：１３７  ＴＣＰ」、ルーティングスコアが「０」であることを示している。続いて、内向きチャンクレコードについて説明する。
【００７２】
図９は、上述した内向きチャンクレコードが内向きフローＤＢ４３２に記憶された場合の例を示す図である。なお、図９に示すように内向きフローＤＢ４３２に記憶された内向きチャンクレコードの全体のことを、外向きチャンクテーブルの場合と同様に、内向きチャンクテーブルと呼ぶこととする。なお、内向きチャンクレコードがどのように生成されるかについては、外向きチャンクレコードの場合と同様であるため、ここではその説明を省略する。
【００７３】
図９に示す例では、内向きチャンクＩＤが「０」〜「３」までの内向きチャンクレコードが内向きチャンクテーブルに記憶されている場合の例を示している。これらの内向きチャンクレコードは、図８に示した内向きフローレコードと同様の内容となっているが、各フローレコードには、１つのチャンクレコードのみが含まれている状態であるためである。このように、内向きチャンクレコードが、順次内向きチャンクテーブルに記憶されるが、記憶されたこれらの内向きフローレコードの５タプルの値のうち、受信ＩＰアドレスについては、内向きフローレコードと同様に、同じ受信ＩＰアドレス（１０．０．０．１）、すなわち対象ホスト３００のＩＰアドレスが記憶される。
【００７４】
すなわち、図８に示した内向きフローＩＤが「０」の内向きフローレコードは、図９に示した内向きチャンクＩＤが「０」の内向きチャンクレコードから構成され、内向きフローＩＤが「１」である内向きフローレコードは、内向きチャンクＩＤが「１」の内向きチャンクレコードから構成されていることを示している。このように、１つの内向きフローレコードは、外向きフローレコードの場合と同様に、少なくとも１つの内向きチャンクレコードから構成され、互いに対応付けて記憶されている。続いて、図５に戻り、ルーティングスコア算出部４５４について説明する。なお、ルーティングスコア算出部４５４およびペアリング部４５５を単に判定部と呼ぶこともある。
【００７５】
ルーティングスコア算出部４５４は、上述した外向きフローＤＢ４３１および内向きフローＤＢ４３２からそれぞれのフローレコードおよびチャンクレコードを読み取り、読み取ったフローレコードおよびチャンクレコードについての送信フローのルーティングスコアをカウントし、カウントしたルーティングスコアの値が、あらかじめ定められた一定の閾値（例えば、７）を超えた場合に、対象ホスト３００がＰ２Ｐ通信を行っているノードである旨等の結果を入出力装置４０５に出力するものである。すなわち、ルーティングスコア算出部４５４は、クエリルーティングした可能性のあるパケットの組（ペア）を判定するものである。
【００７６】
ルーティングスコア算出部４５４は、外向きフローＤＢ４３１に記憶されている外向きフローレコードのうち、終了時刻およびサイズ情報が更新された外向きフローレコードを特定し、特定した外向きフローレコードのルーティングスコアに初期値として「０」を設定する。
【００７７】
なお、終了時刻およびサイズ情報が更新されたレコードであるか否かについては、終了時刻については、例えば、開始時刻と終了時刻が異なっている場合には終了時刻が更新されたと判定する。また、サイズ情報については、例えば、外向きフローテーブルに外向きフローレコードを記憶させた際のサイズ情報をメモリ４４０に記憶しておき、終了時刻が更新されたと判定した場合におけるサイズ情報を読み取り、読み取ったサイズ情報がメモリ４４０に記憶したサイズ情報と異なっている場合にはサイズ情報が更新されたレコードであると判定する。
【００７８】
その後、ルーティングスコア算出部４５４は、内向きフローＤＢ４３２に含まれる内向きフローレコードの中から、終了時刻およびサイズ情報が更新された外向きフローレコードの５タプルに含まれる送信ＩＰアドレス以外の送信ＩＰアドレスを含む内向きフローレコードを特定する。そして、ルーティングスコア算出部４５４は、特定した内向きフローレコードと終了時刻およびサイズ情報が更新された外向きフローレコードとを後述するペアリング部４５５に出力する。
【００７９】
さらに、ルーティングスコア算出部４５４は、後述するペアリング部４５５が、特定した内向きフローレコードと、終了時刻およびサイズ情報が更新された外向きフローレコードのうち、クエリルーティングされたチャンクレコードが存在すると判定した場合、終了時刻およびサイズ情報が更新された外向きフローレコードのルーティングスコアを更新する。なお、以下の説明では、クエリルーティングされたチャンクレコードが存在すると判定された場合において、終了時刻およびサイズ情報が更新された外向きフローレコードのルーティングスコアを更新しているが、これとは逆に、内向きフローレコードのルーティングスコアを更新することとしてもよい。
【００８０】
そして、ルーティングスコア算出部４５４は、更新したルーティングスコアの値が、あらかじめ定められた閾値以上であるか否かを判定し、更新したルーティングスコアの値が、あらかじめ定められた閾値以上であると判定した場合、対象ホスト３００は、Ｐ２Ｐ通信を行っていると判断し、対象ホスト３００のＩＰアドレス、ルーティングスコアの値、Ｐ２Ｐ通信を行っている旨を入出力装置４０５に出力する。
【００８１】
一方、ルーティングスコア算出部４５４は、更新したルーティングスコアの値が、あらかじめ定められた閾値未満であると判定した場合、内向きフローＤＢ４３２の中に、終了時刻およびサイズ情報が更新された外向きフローレコードの５タプルに含まれる送信ＩＰアドレス以外の送信ＩＰアドレスを含む内向きフローレコードが他にあるか否かを判定する。
【００８２】
そして、ルーティングスコア算出部４５４は、内向きフローＤＢ４３２の中に、終了時刻およびサイズ情報が更新された外向きフローレコードの５タプルに含まれる宛先アドレス（図６に示した外向きフローＩＤが「０」の外向きフローレコードでは、「１０．０．０．２」）以外のアドレスを送信元アドレスとして含む内向きフローレコードが他にあると判定した場合には、その内向きフローレコードについて、上述した各処理を行う。このように、ルーティングスコア算出部４５４は、１つの外向きフローレコードをキーにして、すべての内向きフローレコードについて、上述した各処理を繰り返し行う。
【００８３】
その後、ルーティングスコア算出部４５４は、内向きフローＤＢ４３２の中に、終了時刻およびサイズ情報が更新された外向きフローレコードの５タプルに含まれる送信ＩＰアドレス以外の送信ＩＰアドレスを含む内向きフローレコードが他にない、すなわち、その外向きフローレコードをキーにしてすべての内向きフローレコードについて上述した判定を終了した場合、対象ホスト３００がＰ２Ｐ通信を行っていないと判断し、対象ホスト３００のＩＰアドレス、ルーティングスコアの値、Ｐ２Ｐ通信を行っていない旨を入出力装置４０５に出力する。
【００８４】
例えば、図６に示した外向きフローレコードの中で、外向きフローＩＤが「０」である外向きフローレコードの終了時刻は開始時刻とは異なる時刻であり、サイズ情報は図７に示した外向きチャンクテーブルの中の外向きチャンクＩＤが「０」〜「３」である４つの外向きチャンクレコードのサイズ情報の合計となっている（すなわち、サイズ情報が更新されている）ため、ルーティングスコア算出部４５４は、まず、外向きフローＩＤが「０」の外向きフローレコードを特定する。
【００８５】
そして、ルーティングスコア算出部４５４は、外向きフローＩＤが「０」の外向きフローレコードに含まれる５タプルの値のうち、宛先ＩＰアドレス「１０．０．０．２」以外のアドレスを送信元ＩＰアドレスとして含む内向きフローレコードを特定する。図８に示した内向きフローテーブルに含まれる内向きフローレコードの例では、内向きフローＩＤ「０」〜「３」のレコードが、送信ＩＰアドレスが「１０．０．０．５」、「１０．０．０．６」、「１０．０．０．７」、「１０．０．０．８」となっており、外向きフローレコードの送信ＩＰアドレス「１０．０．０．２」とは異なっているため、これらのすべてのレコードをペアリング部４５５に出力する。
【００８６】
その後、ペアリング部４５５によって、外向きフローレコードと内向きフローレコードの組（ペア）に含まれる外向きチャンクレコードと内向きチャンクレコードの組（ペア）がクエリルーティングした旨の通知を受けた場合、例えば、図６に示した外向きフローＩＤが「０」の外向きフローレコードのルーティングスコア（図６に示した例では「１」）を更新する。このように、外向きフローテーブルに記憶されている外向きフローレコードと内向きフローテーブルに記憶されている内向きフローレコードのすべてのレコードについて、クエリルーティングした可能性のあるパケットの組（ペア）を判定し、ルーティングスコアをカウントアップする。続いて、図５に戻り、ペアリング部４５５について説明する。
【００８７】
ペアリング部４５５は、対象ホスト３００がクエリをクエリルーティングした場合において、外向きフローレコードに含まれるチャンクレコードと内向きフローレコードに含まれるチャンクレコードのうち、同じクエリのルーティングに用いられたものが存在するか否かを判定するものである。
【００８８】
具体的には、ペアリング部４５５は、まず、ルーティングスコア算出部４５４から受け取った外向きフローレコードと内向きフローレコードのうち、外向きフローレコードの外向きフローＩＤを含む外向きチャンクレコード、および内向きフローレコードの内向きフローＩＤを含む内向きチャンクレコード、すなわち判定対象となるフローレコードをそれぞれ特定する。
【００８９】
そして、ペアリング部４５５は、特定した内向きチャンクレコードの末尾パケット検出時刻が、外向きチャンクレコードの先頭パケット検出時刻よりも過去の時刻であって、かつ、内向きチャンクレコードの末尾パケット検出時刻と外向きチャンクレコードの先頭パケット検出時刻との差（間隔）が一定の閾値（例えば、１０ミリ秒）以内であるか否かを判定する。
【００９０】
そして、ペアリング部４５５は、内向きチャンクレコードの末尾パケット検出時刻と外向きチャンクレコードの先頭パケット検出時刻との差が一定の閾値以内であると判定した場合、さらに、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報とを比較し、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報との差が一定の閾値（例えば、１００バイト）以下であるか否かを判定する。
【００９１】
その後、ペアリング部４５５は、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報との差が一定の閾値以下であると判定した場合、特定した内向きチャンクレコードと外向きチャンクレコードは、同じクエリのクエリルーティングに用いられたと判定し、その旨をルーティングスコア算出部４５４に通知する。
【００９２】
例えば、ペアリング部４５５は、図６に示した外向きフローＩＤが「０」の外向きフローレコードと、図８に示した内向きフローＩＤが「０」〜「３」の内向きフローレコードをルーティングスコア算出部４５４から受け取ると、まず、受け取った外向きフローレコードの外向きフローＩＤ「０」を読み取り、その外向きフローＩＤ「０」を含む外向きチャンクレコードを、図７に示した外向きチャンクテーブルの中から特定する。図７に示した例では、ペアリング部４５５は、外向きフローＩＤが「０」である外向きチャンクＩＤが「０」〜「３」の外向きチャンクレコードを特定する。
【００９３】
続いて、ペアリング部４５５は、内向きフローＩＤが「０」〜「３」の内向きフローレコードのうち、まず、内向きフローＩＤが「０」である内向きフローレコードを選択し、選択した内向きフローレコードの内向きフローＩＤ「０」を含む内向きチャンクレコードである内向きチャンクＩＤが「０」の内向きチャンクレコードを、図９に示した内向きチャンクテーブルの中から特定する。
【００９４】
その後、ペアリング部４５５は、特定した内向きチャンクＩＤが「０」の内向きチャンクレコードの末尾パケット検出時刻「０８／１２／０８  １１：５９：５９．９５０」が、図７に示した外向きチャンクＩＤが「０」の外向きチャンクレコードの先頭パケット検出時刻「０８／１２／０８  １２：００：００．０００」よりも過去の時刻であり、さらに両者の時間の間隔（差）が「．０５０」であり、一定の閾値（例えば、１０ミリ秒）以内であるため、さらに、外向きチャンクＩＤが「０」の外向きチャンクレコードと内向きチャンクレコードのそれぞれに含まれているサイズ情報の値を比較する。
【００９５】
そして、ペアリング部４５５は、その外向きチャンクレコードのサイズ情報「１．０ＫＢ」と、その内向きチャンクレコードのサイズ情報「０．９ＫＢ」を比較し、両者の差（容量）「０．１ＫＢ」が一定の閾値（例えば、１００ＫＢ）以下であると判定し、図７に示した外向きチャンクＩＤが「０」である外向きチャンクレコードと、図９に示した内向きチャンクＩＤが「０」である内向きチャンクレコードの組（ペア）は、クエリルーティングされたと判定し、その旨をルーティングスコア算出部４５４に通知する。
【００９６】
その後、ペアリング部４５５は、図７に示した外向きチャンクＩＤが「０」の外向きチャンクレコードと、図９に示した内向きチャンクＩＤが「１」〜「３」の内向きチャンクレコードの組（ペア）について上述した内容と同様の処理を行い、すべての組（ペア）のチャンクレコードについて処理が終了するまで繰り返し行う。
【００９７】
このように、ペアリング部４５５は、ルーティングスコア算出部４５４から受け取った内向きフローレコードと外向きフローレコードを受け取ると、これらの各フローレコードに含まれるチャンクレコードを特定し、特定したチャンクレコード（チャンクレコードが複数存在する場合には、それぞれのチャンクレコード）について、上述した２つの条件を満たしているか否かを判定することによって、クエリルーティングが行われたか否かを判定している。
【００９８】
続いて、上述した端末検出システム１０００で行われる処理について説明する。図１０〜図１４は、端末検出システム１０００が上述した各種の処理を行う場合の処理手順を示すフローチャートである。以下の説明では、検出装置４００は、対象ホスト３００のパケットを所定の時間の間隔で検出している状態にあるものとする。
【００９９】
図１０に示すように、パケット取得部４５１は、対象ホスト３００からパケットを取得し（ステップＳ１００１）、取得したパケットの送信ＩＰアドレスおよび受信ＩＰアドレスを読み取る（ステップＳ１００２）。
【０１００】
そして、パケット取得部４５１は、読み取った送信ＩＰアドレスおよび受信ＩＰアドレスが、対象ホスト３００のＩＰアドレスに一致するか否かを判定し（ステップＳ１００３）、読み取った送信ＩＰアドレスおよび受信ＩＰアドレスが、対象ホスト３００のＩＰアドレスに一致すると判定した場合（ステップＳ１００３；Ｙｅｓ）、さらに、そのＩＰアドレスが送信ＩＰアドレスであるか受信ＩＰアドレスであるか否かを判定し、取得したパケットが送信パケットであるか受信パケットであるか否かを判定する（ステップＳ１００４）。
【０１０１】
その後、パケット取得部４５１は、取得したパケットが送信パケットであると判定した場合（ステップＳ１００４；Ｙｅｓ）、取得したパケットを送信パケット保存部４５２に出力する（ステップＳ１００５）。
【０１０２】
一方、パケット取得部４５１は、取得したパケットが送信パケットではない、すなわち取得したパケットは受信パケットであると判定した場合（ステップＳ１００４；Ｎｏ）、取得したパケットを受信パケット保存部４５３に出力する（ステップＳ１００６）。このステップＳ１００５またはステップＳ１００６の処理が終了すると、パケット取得部４５１における処理が終了し、図１１に示す処理、または図１２に示す処理に進む。
【０１０３】
図１１に示すように、送信パケット保存部４５２は、パケット取得部４５１から受け取った送信パケットをフロー形式（外向きフローレコード）に変換し（ステップＳ１１０１）、さらに、パケット取得部４５１から受け取った送信パケットをチャンク形式（外向きチャンクレコード）に変換し（ステップＳ１１０２）、変換した外向きフローレコードおよび外向きチャンクレコードを外向きフローＤＢ４３１に記憶する（ステップＳ１１０３）。このステップＳ１１０３の処理が終了すると、送信パケット保存部４５２における処理が終了し、図１３に示す処理に進む。
【０１０４】
また、図１２に示すように、受信パケット保存部４５３は、パケット取得部４５１から受け取った受信パケットをフロー形式（内向きフローレコード）に変換し（ステップＳ１２０１）、さらに、パケット取得部４５１から受け取った受信パケットをチャンク形式（内向きチャンクレコード）に変換し（ステップＳ１２０２）、変換した内向きフローレコードおよび内向きチャンクレコードを内向きフローＤＢ４３２に記憶する（ステップＳ１２０３）。このステップＳ１２０３の処理が終了すると、受信パケット保存部４５３における処理が終了し、図１３に示す処理に進む。
【０１０５】
図１３に示すように、ルーティングスコア算出部４５４は、外向きフローテーブルに含まれる外向きフローレコードのうち、終了時刻およびサイズ情報が更新された外向きフローレコードを特定し（ステップＳ１３０１）、内向きフローレコードの中から、特定した外向きフローレコードの宛先ＩＰアドレス以外のアドレスを、送信元アドレスとして含む内向きフローレコードを特定し、特定した内向きフローレコードと終了時刻およびサイズ情報が更新された外向きフローレコードとをペアリング部４５５に出力する（ステップＳ１３０２）。このステップＳ１３０２の処理が終了すると、クエリルーティング判定処理に進む（ステップＳ１３０３）。
【０１０６】
図１４は、上述したクエリルーティング判定処理の処理手順を示すフローチャートである。図１４に示すように、ペアリング部４５５は、ルーティングスコア算出部４５４から外向きフローレコードと内向きフローレコードを受け取ると（ステップＳ１４０１）、受け取った外向きフローレコードの外向きフローＩＤを含む外向きチャンクレコード、および内向きフローレコードの内向きフローＩＤを含む内向きチャンクレコードをそれぞれ特定する（ステップＳ１４０２）。
【０１０７】
その後、ペアリング部４５５は、内向きチャンクレコードが外向きチャンクレコードよりも過去に検出され、かつ両者を検出した間隔が一定の閾値以内であるか否かを判定し（ステップＳ１４０３）、内向きチャンクレコードが外向きチャンクレコードよりも過去に検出され、かつ両者を検出した間隔が一定の閾値以内であると判定した場合（ステップＳ１４０３；Ｙｅｓ）、さらに、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報との差が一定の閾値以下であるか否かを判定する（ステップＳ１４０４）。
【０１０８】
そして、ペアリング部４５５は、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報との差が一定の閾値以下であると判定した場合（ステップＳ１４０４；Ｙｅｓ）、その旨をルーティングスコア算出部４５４に通知し、ルーティングスコア算出部４５４は、外向きフローレコードのルーティングスコアをカウントアップする（ステップＳ１４０５）。
【０１０９】
一方、ペアリング部４５５は、内向きチャンクレコードが外向きチャンクレコードよりも過去に検出され、かつ両者を検出した間隔が一定の閾値以内でないと判定した場合（ステップＳ１４０３；Ｎｏ）、または内向きチャンクレコードが外向きチャンクレコードよりも過去に検出され、かつ両者を検出した間隔が一定の閾値以内であると判定したものの、内向きチャンクレコードのサイズ情報と外向きチャンクレコードのサイズ情報との差が一定の閾値以下でないと判定した場合（ステップＳ１４０４；Ｎｏ）、すべての組についてステップＳ１４０３およびステップＳ１４０４の判定を行ったか否かを判定する（ステップＳ１４０６）。
【０１１０】
そして、ペアリング部４５５は、すべての組についてステップＳ１４０３およびステップＳ１４０４の判定を行ったと判定した場合（ステップＳ１４０６；Ｙｅｓ）、クエリルーティング判定処理を終了し、図１３に示すステップＳ１３０４の処理に進む。一方、すべての組についてステップＳ１４０３およびステップＳ１４０４の判定を行っていないと判定した場合（ステップＳ１４０６；Ｎｏ）、ステップＳ１４０２に戻り、ステップＳ１４０３以降の処理を繰り返す。
【０１１１】
その後、図１３において、ルーティングスコア算出部４５４は、外向きフローレコードのルーティングスコアの値が、あらかじめ定められた閾値以上であるか否かを判定し（ステップＳ１３０４）、ルーティングスコアの値が、あらかじめ定められた閾値以上であると判定した場合（ステップＳ１３０４；Ｙｅｓ）、対象ホスト３００がＰ２Ｐ通信を行っていると判断し、送信ＩＰアドレスあるいは受信ＩＰアドレス、ルーティングスコアの値、Ｐ２Ｐ通信を行っている旨を入出力装置４０５に出力する（ステップＳ１３０７）。
【０１１２】
一方、ルーティングスコア算出部４５４は、ルーティングスコアの値が、あらかじめ定められた閾値以上でないと判定した場合（ステップＳ１３０４；Ｎｏ）、内向きフローＤＢ４３２の中に、終了時刻およびサイズ情報が更新された外向きフローレコードの５タプルに含まれる送信ＩＰアドレス以外の送信ＩＰアドレスを含む内向きフローレコードが他にあるか否か、すなわちすべての内向きフローレコードについてステップＳ１３０４の判定を行ったか否かを判定する（ステップＳ１３０５）。
【０１１３】
そして、ルーティングスコア算出部４５４は、すべての内向きフローレコードについてステップＳ１３０４の判定を行っていないと判定した場合（ステップＳ１３０５；Ｎｏ）、ステップＳ１３０２に戻り、ステップＳ１３０３以降の各処理を繰り返し行う。
【０１１４】
一方、ルーティングスコア算出部４５４は、すべての内向きフローレコードについてステップＳ１３０４の判定を行ったと判定した場合（ステップＳ１３０５；Ｙｅｓ）、対象ホスト３００がＰ２Ｐ通信を行っていないと判断し、送信ＩＰアドレスあるいは受信ＩＰアドレス、ルーティングスコアの値、Ｐ２Ｐ通信を行っていない旨を入出力装置４０５に出力する（ステップＳ１３０６）。このステップＳ１３０６またはステップＳ１３０７の処理が終了すると、本実施の形態におけるすべての処理が終了する。
【０１１５】
このように、パケット取得部４５１が、対象ホスト３００に接続する送信ホスト１００または送信ホスト１１０から送信された、所望のデータを検索するための要求であるクエリを構成する１または複数のパケットを取得し、判定部（ルーティングスコア算出部４５４、ペアリング部４５５）が、取得されたパケットのうち、対象ホスト３００に接続する送信ホスト１００または送信ホスト１１０以外の受信ホスト２００に送信する処理であるクエリルーティングが行われる対象となるパケットが存在するか否かを判定し、取得されたパケットのうち、クエリルーティングが行われる対象となるパケットが存在する場合に、対象ホスト３００がＰ２Ｐ通信を行うホストであると判定する判定ステップと、を含んでいるので、適切にＰ２Ｐ端末を検出することができる。
【０１１６】
なお、上述した実施の形態においては、上述した実施の形態に限定されず、種々の変形が可能である。
【０１１７】
例えば、上述した実施の形態においては、対象ホスト３００が送受信するパケットをパケットチャンク単位にグループ化し、フローに含まれるパケットチャンクを基準としてルーティングスコアをカウントすることとした。しかし、このようにパケットチャンクを基準としてルーティングスコアをカウントするのではなく、フローに含まれるパケット単位にルーティングスコアをカウントすることとしてもよい。
【０１１８】
具体的には、例えば、図１１に示したステップＳ１１０２の処理において、送信パケット保存部４５２が、パケット取得部４５１から送信パケットを受け取る都度、受け取った送信パケットをパケットチャンク形式に変換した外向きチャンクレコードを外向きフローテーブルに記憶させる。これと同様に、受信パケットについても図１２に示したステップＳ１２０２の処理において、受信パケット保存部４５３が、パケット取得部４５１から受信パケットを受け取る都度、受け取った受信パケットをパケットチャンク形式に変換した内向きチャンクレコードを内向きフローテーブルに記憶させる。
【０１１９】
この場合、変換された外向きチャンクレコードには送信パケットについての開始時刻、終了時刻、５タプルの値がそれぞれ記憶され、内向きチャンクレコードには、受信パケットについての開始時刻、終了時刻、５タプルの値がそれぞれ記憶される。すなわち、外向きフローテーブルおよび内向きフローテーブルには、パケット単位のパケットチャンクレコードが記憶される。
【０１２０】
そして、図１４に示したクエリルーティング判定処理のステップＳ１４０２において、ペアリング部４５５が、外向きフローテーブルおよび内向きフローテーブルに記憶された各チャンクレコードの中から判定対象となる外向きチャンクレコードと内向きチャンクレコードの組を特定し、ステップＳ１４０３およびステップＳ１４０４の各処理を行うこととしてもよい。
【０１２１】
このような実施の形態においては、パケット単位にクエリルーティングを行ったか否かについての判定を行うので、Ｐ２Ｐ端末を検出する精度を高めることができる。また、外向きフローＤＢ４３１および内向きフローＤＢ４３２に各パケットチャンクテーブルを記憶させる必要がないので、記憶装置４３０の容量を抑制することができる。
【０１２２】
さらに、上述した実施の形態においては、パケット取得部４５１、送信パケット保存部４５２、受信パケット保存部４５３、外向きフローＤＢ４３１、内向きフローＤＢ４３２、ルーティングスコア算出部４５４、ペアリング部４５５の各部は、すべて検出装置４００の内部に保持することとした。しかし、これらの各部を複数の装置に分けて保持させることによって、図１０〜図１４に示した各処理を、それぞれ異なる装置で実行させることとしてもよい。
【０１２３】
このような実施の形態においては、対象ホスト３００に対するトラヒックの量が多量である場合に、検出装置４００における処理を分散させることができるため、検出装置４００における処理負荷を軽減することができる。
【０１２４】
また、上述した実施の形態においては、図１３に示したステップＳ１３０４において、ルーティングスコア算出部４５４は、外向きフローレコードのルーティングスコアの値が、あらかじめ定められた閾値以上であるか否かを判定することによって対象ホスト３００が、Ｐ２Ｐ通信を行っているか否かを判定した。しかし、このように判定した外向きフローレコードの数をカウントし、カウントした外向きフローレコードの数が、ある一定の閾値（例えば、５）以上存在する場合に、メモリ４４０に、上述した閾値、およびその閾値以上の外向きフローレコードの数を記憶しておくことにより、対象ホスト３００はＰ２Ｐ端末であると判定することとしてもよい。このような実施の形態においては、複数の外向きフローレコードを基準としてＰ２Ｐ端末であるか否かを判定するため、より適切にＰ２Ｐ端末を検出することができる。
【０１２５】
さらに、ルーティングスコア算出部４５４は、外向きフローレコードのルーティングスコアの値を一定の時間の間隔（例えば、１時間ごと）に繰り返し読み取ることによって、Ｐ２Ｐ端末であるか否かを判定することも可能である。例えば、ルーティングスコア算出部４５４が読み取ったルーティングスコアの値が一度は閾値以下であると判定された場合において、その後、対象ホスト３００がクエリルーティングを続行している場合等には、外向きフローレコードのルーティングスコアの値が閾値よりも大きい値となるため、その時点において対象ホスト３００がＰ２Ｐ通信を行っているか否かを判定することができる。すなわち、外向きフローレコードのルーティングスコアの値を一定の時間の間隔に繰り返し読み取ることによって、あるタイミングのみＰ２Ｐ通信を行う場合であっても、上述した場合と同様に、より適切にＰ２Ｐ端末を検出することができる。
【０１２６】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１２７】
１０００…端末検出システム、１００、１１０…送信ホスト、２００…受信ホスト、３００…対象ホスト、４００…検出装置、５００…通信ネットワーク、４０５…入出力装置、４１０…本体装置、４２０…インタフェース、４３０…記憶装置、４３１…外向きフローＤＢ、４３２…内向きフローＤＢ、４４０…メモリ、４５０…ＣＰＵ、４６０…バス、４５１…パケット取得部と、４５２…送信パケット保存部、４５３…受信パケット保存部、４５４…ルーティングスコア算出部、４５５…ペアリング部。
【図１】
2010226439.tif 000003
【図２】
2010226439.tif 000004
【図３】
2010226439.tif 000005
【図４】
2010226439.tif 000006
【図５】
2010226439.tif 000007
【図６】
2010226439.tif 000008
【図７】
2010226439.tif 000009
【図８】
2010226439.tif 000010
【図９】
2010226439.tif 000011
【図１０】
2010226439.tif 000012
【図１１】
2010226439.tif 000013
【図１２】
2010226439.tif 000014
【図１３】
2010226439.tif 000015
【図１４】
2010226439.tif 000016