(57)【要約】【課題】  オーバレイネットワーク生成アプリケーションが起動されているマシンを、特定のマシン群の中から確実且つ速やかに発見する。【解決手段】  収集ソケットデータベース１１３は、オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する１以上のノードのソケット情報を記憶する。接続先限定手段１１４は、収集ソケットデータベース１１３からノードのソケット情報を選択し、初期ノードリストに設定する。オーバレイネットワーク生成アプリケーションであるオーバレイリンク確立手段１１０は起動されると、初期ノードリストに設定された調査対象ノードに対してオーバレイリンクの確立を試みる。リンク確立確認手段１０９は、オーバレイリンクが確立したかどうかを確認し、オーバレイリンクが確立したノードの情報を検出ノードデータベース１１２に記憶させる。【選択図】  図１
2006330783.tif 000002
【特許請求の範囲】
【請求項１】
オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶するソケット情報記憶部と、
前記ソケット情報記憶部からノードのソケット情報を選択し、該選択したソケット情報を調査対象ノードのソケット情報として設定する接続先限定手段と、
前記ソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みるオーバレイリンク確立手段と、
前記オーバレイリンク確立手段によって前記調査対象ノードに対してオーバレイリンクが確立したかどうかを確認するリンク確立確認手段と、
前記リンク確立確認手段によってオーバレイリンクが確立したことが確認された前記調査対象ノードの情報を記憶する検出ノード記憶部とを備えることを特徴とするオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項２】
前記ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、前記接続先限定手段、前記オーバレイリンク確立手段および前記リンク確立確認手段による処理の繰り返しを制御する制御手段を備えることを特徴とする請求項１記載のオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項３】
前記オーバレイリンク確立手段は、起動されることにより初期ノードリストに記録されたソケット情報が示す初期ノードに対してオーバレイリンクの確立を試みるオーバレイネットワーク生成アプリケーションまたは該アプリケーションと等価なアプリケーションで構成され、前記接続先限定手段は、前記調査対象ノードのソケット情報を前記初期ノードリストに設定することを特徴とする請求項１または２記載のオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項４】
前記ソケット情報記憶部にソケット情報を記憶させるソケット収集手段を備えることを特徴とする請求項１、２または３記載のオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項５】
前記ソケット収集手段は、ネットワークを監視することにより前記ソケット情報記憶部に記憶するソケット情報を収集することを特徴とする請求項４記載のオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項６】
前記検出ノード記憶部に記憶されたソケット情報を、指定されたソケットに関する通信の帯域を制限する帯域制限手段に対して送信する制限ソケット送信手段を備えることを特徴とする請求項１乃至５の何れか１項に記載のオーバレイネットワーク生成アプリケーション起動ノード特定装置。
【請求項７】
ａ）接続先限定手段が、オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶するソケット情報記憶部からノードのソケット情報を選択し、該選択したソケット情報を調査対象ノードのソケット情報として設定するステップ、
ｂ）オーバレイリンク確立手段が、前記ソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みるステップ、
ｃ）リンク確立確認手段が、前記オーバレイリンク確立手段によって前記調査対象ノードに対してオーバレイリンクが確立したかどうかを確認し、オーバレイリンクが確立したことが確認された前記調査対象ノードの情報を検出ノード記憶部に記憶させるステップ、
を含むことを特徴とするオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項８】
ｄ）制御手段が、前記ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、前記接続先限定手段、前記オーバレイリンク確立手段および前記リンク確立確認手段による処理の繰り返しを制御するステップ、
を更に含むことを特徴とする請求項７記載のオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項９】
前記オーバレイリンク確立手段は、起動されることにより初期ノードリストに記録されたソケット情報が示す初期ノードに対してオーバレイリンクの確立を試みるオーバレイネットワーク生成アプリケーションまたは該アプリケーションと等価なアプリケーションで構成され、前記接続先限定手段は、前記調査対象ノードのソケット情報を前記初期ノードリストに設定することを特徴とする請求項７または８記載のオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項１０】
ソケット収集手段が、前記ソケット情報記憶部にソケット情報を記憶させるステップ、を更に含むことを特徴とする請求項７、８または９記載のオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項１１】
前記ソケット収集手段は、ネットワークを監視することにより前記ソケット情報記憶部に記憶するソケット情報を収集することを特徴とする請求項１０記載のオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項１２】
制限ソケット送信手段が、前記検出ノード記憶部に記憶されたソケット情報を、指定されたソケットに関する通信の帯域を制限する帯域制限手段に対して送信するステップ、
を更に含むことを特徴とする請求項７乃至１１の何れか１項に記載のオーバレイネットワーク生成アプリケーション起動ノード特定方法。
【請求項１３】
オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶するソケット情報記憶部および検出ノード記憶部を備えたオーバレイネットワーク生成アプリケーション起動ノード特定装置を構成するコンピュータを、前記ソケット情報記憶部からノードのソケット情報を選択し、該選択したソケット情報を調査対象ノードのソケット情報として設定する接続先限定手段、前記ソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みるオーバレイリンク確立手段、前記オーバレイリンク確立手段によって前記調査対象ノードに対してオーバレイリンクが確立したかどうかを確認し、オーバレイリンクが確立したことが確認された前記調査対象ノードの情報を前記検出ノード記憶部に記憶させるリンク確立確認手段、として機能させるためのプログラム。
【請求項１４】
前記コンピュータを、更に、前記ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、前記接続先限定手段、前記オーバレイリンク確立手段および前記リンク確立確認手段による処理の繰り返しを制御する制御手段、として機能させるための請求項１３記載のプログラム。
【請求項１５】
前記オーバレイリンク確立手段は、起動されることにより初期ノードリストに記録されたソケット情報が示す初期ノードに対してオーバレイリンクの確立を試みるオーバレイネットワーク生成アプリケーションまたは該アプリケーションと等価なアプリケーションで構成され、前記接続先限定手段は、前記調査対象ノードのソケット情報を前記初期ノードリストに設定することを特徴とする請求項１３または１４記載のプログラム。
【請求項１６】
前記コンピュータを、更に、前記ソケット情報記憶部にソケット情報を記憶させるソケット収集手段、として機能させるための請求項１３、１４または１５記載のプログラム。
【請求項１７】
前記ソケット収集手段は、ネットワークを監視することにより前記ソケット情報記憶部に記憶するソケット情報を収集することを特徴とする請求項１６記載のプログラム。
【請求項１８】
前記コンピュータを、更に、前記検出ノード記憶部に記憶されたソケット情報を、指定されたソケットに関する通信の帯域を制限する帯域制限手段に対して送信する制限ソケット送信手段、として機能させることを特徴とする請求項１３乃至１７の何れか１項に記載のプログラム。
【請求項１９】
請求項７乃至１２の何れか１項に記載されるオーバレイネットワーク生成アプリケーション起動ノード特定方法によって検出されたソケットに関する通信の帯域を帯域制限装置によって制限することを特徴とする帯域制限方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある種のアプリケーションを起動しているマシン（コンピュータ）を特定する技術に関し、特にP2Pファイル交換/共有アプリケーションをはじめとする、オーバレイネットワークを生成して通信を行うアプリケーションを起動しているマシンを特定する技術に関する。
【背景技術】
【０００２】
ファイル交換・ファイル共有などのP2P(ピアツーピア)アプリケーションでは、不特定多数のノードとTCPセッションを確立し、ファイル保持情報やファイル自体のデータの交換を行う。本明細書において、ノードとはネットワークに接続されたコンピュータのことを意味する。ノード同士のTCPセッションをリンクと見做すと、P2Pアプリケーションによって、P2Pネットワークと呼ばれるネットワークが生成されることになる。このように、IPネットワークなどの上に、アプリケーション間での論理リンクを確立することで生成されるネットワークは、オーバレイネットワークと呼ばれる。
【０００３】
あるノードAが別のノードBとTCPセッションを確立するためには、ネットワーク上のコンピュータ(ノード)とそのノード上のアプリケーションまたは上位のプロトコルを指定する必要がある。本明細書において、ネットワーク上のコンピュータ(ノード)を指定するための識別子のことを「アドレス」と称し、あるノード上のアプリケーションまたは上位のプロトコルを指定するための識別子のことを「ポート(ポート番号)」と称する。アドレスとポートの具体的な例として、IPアドレスとポートがある。ノードの識別子であるアドレスと、アプリケーションまたは上位のプロトコルの識別子であるポート番号の組で構成され、あるノード上のアプリケーションまたは上位のプロトコルが他のノードのアプリケーションまたは上位のプロトコルを指定するための識別子のことを、「ソケット」と称する。このような定義に従えば、あるノードAが別のノードBとTCPセッションを確立するためには、ノードBのIPアドレスと待ち受けポート番号の組であるソケット情報を指定する必要がある。
【０００４】
新規にP2Pネットワークに参加したいノードは、最初の接続先となるノード(初期ノード)のソケット情報を何らかの手段によって入手し、接続する。こうして新規にP2Pネットワークに参加したノードは、P2Pネットワーク上の他のいくつかのノードとお互いにソケット情報と保持ファイル情報を交換し合いファイルデータの交換を行う。このファイル交換によるP2Pネットワーク上のトラヒックは多くの帯域を消費するため、ネットワークの運用に深刻な影響を与える場合がある。このため、P2Pトラヒックの識別は重要な課題であり、従来より各種のP2Pトラヒック識別法、つまりオーバレイネットワーク生成アプリケーションを起動しているノードの特定技術が提案されている。従来のこの種技術は、概ね以下の６種類に大別される。
【０００５】
1つ目は、監視対象とする全てのノード上で、そのノード内で動作させている、あるいはインストールされているアプリケーションを検知し、その情報を管理者に対して通信するソフトウェアを動作させるものである。
【０００６】
2つ目は、ポート番号による識別である。例えば非特許文献1では、インターネットサービスプロバイダの主要なバックボーン回線上のトラヒックをパケットレベルで計測し、監視されたIPパケットに記載されるポート番号の情報を用いることによってP2Pアプリケーショントラヒックを特定し、そのパケットの発信元および発信先をオーバレイネットワーク生成アプリケーションを起動しているノードであると特定している。
【０００７】
3つ目は、2つ目の方法と同様にネットワークのエッジなどでパケットの監視をするが、ポート番号だけでなく、パケットのペイロードまで監視する方法である。ペイロードには、各オーバレイネットワーク生成アプリケーション特有の情報が記載されていることが多く、そういったオーバレイネットワーク生成アプリケーションに対しては、有効な手段である。
【０００８】
4つ目は、例えば非特許文献2に見られるように、2つ目および3つ目の方法と同様にネットワークのエッジなどでパケットの監視をするが、トラヒックパターンを監視するものである。P2Pファイル交換/共有アプリケーションをはじめとするオーバレイネットワーク生成アプリケーションが生成するパケットのトラヒックパターンは、ある種の統計的な特徴を持つことが多い。特定しようとするオーバレイネットワーク生成アプリケーションがとるトラヒックパターンをあらかじめ記憶しておき、ネットワークを流れるパケットの監視によって得られたトラヒックパターンが、それと統計的に一致していれば、そのパケットを生成しているノードがそのオーバレイネットワーク生成アプリケーションを動作させているノードであると特定する。
【０００９】
5つ目は、例えば非特許文献3に見られるクローリングと呼ばれる手法である。この手法は、ノードを特定するために、ノード特定用のノードがオーバレイネットワーク生成アプリケーションの一つとしてオーバレイネットワークに接続し、オーバレイネットワークを通じて授受するパケットを監視する。オーバレイネットワークを構成するノードは、オーバレイネットワーク上でネットワークを構成する他のノードのソケット情報をペイロードに納めてやり取りするものが多い。そのため、ノード特定用のノードが授受するパケットのペイロードを解析することによって、他のノードのソケット情報を割り出すことができる。
【００１０】
6つ目は、例えば非特許文献4および特許文献1に見られるマルチレイヤ測定法と呼ばれる手法である。この手法は、アドレス情報収集ノードと言うノードが、クローリングと同様にオーバレイネットワーク生成アプリケーションの一つとしてオーバレイネットワークに接続し、ペイロードを監視、解析するのではなく、ネットワークレイヤで監視を行う。具体的には、オーバレイネットワーク生成アプリケーションで、オーバレイネットワークの一部として他のノードとリンクを構築する際には、TCPセッションを確立するなどの方法があるが、この確立されたTCPセッションをネットワークレイヤで測定してソケット情報を得る。
【特許文献１】特願2003-134148
【非特許文献１】Subhabrata Sen and Jia Wang, `Analyzing Peer-to-Peer Traffic Across Large Networks,' ACM SIGCOMM Internet Measurement Workshop 2002, Marseille, France, November 6-8, 2002.
【非特許文献２】Ellacoya Networks, Inc. `Ellacoya IP Service Control System'[online]. Ellacoya Networks, Inc. December 2004. Retrieved from the Internet : <URL:http://www.ellacoya.com/products/IPServiceControlSystem.pdf>
【非特許文献３】M. Ripeanu, A. Iamnitchi, and I. Foster, `Mapping the Gnutella Network,' IEEE Internet Computing, January, pp.50-57, 2002.
【非特許文献４】亀井聡, 森達哉, 木村卓巳, `P2Pトラヒック分離法とその評価,' 電子情報通信学会大会講演論文集 VOL.2003,ソサイエティ 2, PAGE.200.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記6つの従来技術による方法には、それぞれ以下のような問題がある。
【００１２】
1つ目の方法には、全てのノードに対してアプリケーション検知ソフトを導入し、それを管理することが困難であるという問題がある。
【００１３】
2つ目の方法には、ポート番号を任意に設定してオーバレイリンクを生成するアプリケーションに対しては、ノード特定が困難であるという問題がある。
【００１４】
3つ目の方法には、ペイロードを監視するだけでは判別できないようなオーバレイネットワーク生成アプリケーション、およびペイロードを暗号化して通信を行うようなオーバレイネットワーク生成アプリケーションに対しては、ノード特定が困難であるという問題がある。
【００１５】
4つ目の方法は、あくまで統計的な特徴を元に選別しているため、誤認識率が高くなることが問題である。
【００１６】
5つ目の方法は、オーバレイネットワーク全体のソケット情報の割り出しには適しているが、ある特定のノードがオーバレイネットワーク生成アプリケーションを動作させているかどうかを検知するのには適していない。その理由は、接続先ノードを指定する手段がないため、ある特定のノードにオーバレイリンクが確立される確率は極めて低くなるので、特定のノードに対する検知は、できたとしても非常に遅くなる確率が高いからである。また、ペイロードの監視、解析を行うことから、ペイロードの暗号化に対して弱いこと、またオーバレイネットワーク生成アプリケーションがお互いにソケット情報を通信するためのプロトコルの内容が既知である必要があること、などが問題である。
【００１７】
6つ目の方法は、ペイロードの監視および解析が不要なためにペイロードが暗号化されていても適用でき、またソケット情報を通信するためのプロトコルの内容が不明であっても適用できる。しかし、5つ目と同様、ある特定のノードがオーバレイネットワーク生成アプリケーションを動作させているかどうかを検知する目的には適さない。その理由は、5つ目の方法と同様に、接続先ノードを指定する手段がないため、ある特定のノードにオーバレイリンクが確立される確率は極めて低くなるので、特定のノードに対する検知は、できたとしても非常に遅くなる確率が高いからである。
【００１８】
本発明の目的は、自らと同じ動作をするアプリケーションソフトウェアとリンクを確立することによってオーバレイネットワークを生成し、通信を行うアプリケーションソフトウェアを動作させているマシンを、特定のマシン群の中から確実且つ速やかに発見し得るようにすることにある。
【課題を解決するための手段】
【００１９】
本発明の第１のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶するソケット情報記憶部と、前記ソケット情報記憶部からノードのソケット情報を選択し、該選択したソケット情報を調査対象ノードのソケット情報として設定する接続先限定手段と、前記ソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みるオーバレイリンク確立手段と、前記オーバレイリンク確立手段によって前記調査対象ノードに対してオーバレイリンクが確立したかどうかを確認するリンク確立確認手段と、前記リンク確立確認手段によってオーバレイリンクが確立したことが確認された前記調査対象ノードの情報を記憶する検出ノード記憶部とを備えることを特徴とする。
【００２０】
本発明の第２のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、第１のオーバレイネットワーク生成アプリケーション起動ノード特定装置において、前記ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、前記接続先限定手段、前記オーバレイリンク確立手段および前記リンク確立確認手段による処理の繰り返しを制御する制御手段を備えることを特徴とする。
【００２１】
本発明の第３のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、第１または第２のオーバレイネットワーク生成アプリケーション起動ノード特定装置において、前記オーバレイリンク確立手段は、起動されることにより初期ノードリストに記録されたソケット情報が示す初期ノードに対してオーバレイリンクの確立を試みるオーバレイネットワーク生成アプリケーションまたは該アプリケーションと等価なアプリケーションで構成され、前記接続先限定手段は、前記調査対象ノードのソケット情報を前記初期ノードリストに設定することを特徴とする。
【００２２】
本発明の第４のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、第１、第２または第３のオーバレイネットワーク生成アプリケーション起動ノード特定装置において、前記ソケット情報記憶部にソケット情報を記憶させるソケット収集手段を備えることを特徴とする。
【００２３】
本発明の第５のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、第４のオーバレイネットワーク生成アプリケーション起動ノード特定装置において、前記ソケット収集手段は、ネットワークを監視することにより前記ソケット情報記憶部に記憶するソケット情報を収集することを特徴とする。
【００２４】
本発明の第６のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、第１乃至第５の何れかのオーバレイネットワーク生成アプリケーション起動ノード特定装置において、前記検出ノード記憶部に記憶されたソケット情報を、指定されたソケットに関する通信の帯域を制限する帯域制限手段に対して送信する制限ソケット送信手段を備えることを特徴とする。
【００２５】
本発明の第１のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、ａ）接続先限定手段が、オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶するソケット情報記憶部からノードのソケット情報を選択し、該選択したソケット情報を調査対象ノードのソケット情報として設定するステップ、ｂ）オーバレイリンク確立手段が、前記ソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みるステップ、ｃ）リンク確立確認手段が、前記オーバレイリンク確立手段によって前記調査対象ノードに対してオーバレイリンクが確立したかどうかを確認し、オーバレイリンクが確立したことが確認された前記調査対象ノードの情報を検出ノード記憶部に記憶させるステップ、を含むことを特徴とする。
【００２６】
本発明の第２のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、第１のオーバレイネットワーク生成アプリケーション起動ノード特定方法において、ｄ）制御手段が、前記ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、前記接続先限定手段、前記オーバレイリンク確立手段および前記リンク確立確認手段による処理の繰り返しを制御するステップ、を更に含むことを特徴とする。
【００２７】
本発明の第３のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、第１または第２のオーバレイネットワーク生成アプリケーション起動ノード特定方法において、前記オーバレイリンク確立手段は、起動されることにより初期ノードリストに記録されたソケット情報が示す初期ノードに対してオーバレイリンクの確立を試みるオーバレイネットワーク生成アプリケーションまたは該アプリケーションと等価なアプリケーションで構成され、前記接続先限定手段は、前記調査対象ノードのソケット情報を前記初期ノードリストに設定することを特徴とする。
【００２８】
本発明の第４のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、第１、第２または第３のオーバレイネットワーク生成アプリケーション起動ノード特定方法において、ソケット収集手段が、前記ソケット情報記憶部にソケット情報を記憶させるステップ、を更に含むことを特徴とする。
【００２９】
本発明の第５のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、第４のオーバレイネットワーク生成アプリケーション起動ノード特定方法において、前記ソケット収集手段は、ネットワークを監視することにより前記ソケット情報記憶部に記憶するソケット情報を収集することを特徴とする。
【００３０】
本発明の第６のオーバレイネットワーク生成アプリケーション起動ノード特定方法は、第１乃至第５の何れかのオーバレイネットワーク生成アプリケーション起動ノード特定方法において、制限ソケット送信手段が、前記検出ノード記憶部に記憶されたソケット情報を、指定されたソケットに関する通信の帯域を制限する帯域制限手段に対して送信するステップ、を更に含むことを特徴とする。
【００３１】
本発明の帯域制限方法は、第１乃至第６の何れかのオーバレイネットワーク生成アプリケーション起動ノード特定方法によって検出されたソケットに関する通信の帯域を帯域制限装置によって制限することを特徴とする。
【００３２】
『作用』
本発明にあっては、ソケット情報記憶部が、オーバレイネットワーク生成アプリケーションが起動しているかどうかを調査する対象となるノードのソケット情報を１以上記憶しており、接続先限定手段により、ソケット情報記憶部からノードのソケット情報を選択し、この選択したソケット情報を調査対象ノードのソケット情報として設定し、オーバレイリンク確立手段により、このソケット情報が設定された調査対象ノードに対してオーバレイリンクの確立を試みる。そして、リンク確立確認手段により、オーバレイリンク確立手段によって調査対象ノードに対してオーバレイリンクが確立したかどうかを確認し、オーバレイリンクが確立したことが確認された調査対象ノードの情報を検出ノード記憶部に記憶させる。また、制御手段により、ソケット情報記憶部に記憶された全てのソケット情報に対する調査が行われるまで、接続先限定手段、オーバレイリンク確立手段およびリンク確立確認手段による処理の繰り返しが制御される。
【発明の効果】
【００３３】
本発明によれば、ソケット情報記憶部に記憶されたソケット情報を調査対象ノードのソケット情報に設定してその調査対象ノードに対して実際にオーバレイリンクの確立を試行し、オーバレイリンクの確立に成功した調査対象ノードの情報を検出ノード記憶部に記憶させるよう動作するため、自らと同じ動作をするアプリケーションソフトウェアとリンクを確立することによってオーバレイネットワークを生成し、通信を行うアプリケーションソフトウェアを動作させているマシンを、特定のマシン群の中から確実且つ速やかに発見することができる。
【発明を実施するための最良の形態】
【００３４】
次に本発明を実施するための最良の形態について、図面を参照して詳細に説明する。
【００３５】
図1を参照すると、本発明の実施の形態は、オーバレイネットワーク生成アプリケーションを動作させているかどうかを検知する対象となる監視対象ノード105が検知対象ネットワーク102を経由してエッジネットワーク機器104に接続し、このエッジネットワーク機器104がインターネット101に接続しているネットワーク環境において、エッジネットワーク機器104へ流れるトラヒックが観測できるネットワーク位置に検知装置103が接続されている。
【００３６】
検知装置103は、オーバレイ生成アプリケーション起動ノード特定装置であり、パーソナルコンピュータなどで実現される。検知装置103は、出力手段107、リンク確立確認手段109、オーバレイリンク確立手段110、検出ノードデータベース112、収集ソケットデータベース113および接続先限定手段114を含んで構成される。
【００３７】
収集ソケットデータベース113は、オーバレイネットワーク生成アプリケーションを起動してオーバレイネットワークを生成するために利用している可能性のある1以上の監視対象ノード105のソケット情報を記憶する機能を持つ。
【００３８】
接続先限定手段114は、オーバレイリンク確立手段110に対して、オーバレイリンク確立のための接続先を、収集ソケットデータベース113に記憶されたソケットに限定する機能を持つ。
【００３９】
オーバレイリンク確立手段110は、接続先限定手段114によって限定された各監視対象ノード105に対して、検知すべきオーバレイネットワーク生成アプリケーションと同様の手順でオーバレイリンクの確立を試行する機能を持つ。
【００４０】
リンク確立確認手段109は、オーバレイリンク確立手段110で試行した或る監視対象ノード105に対するオーバレイリンクの確立の可否を確認する機能を持つ。また、リンクの確立が確認できた場合、その監視対象ノード105のソケット情報を、検出ノードデータベース112へ記憶させる機能を持つ。
【００４１】
検出ノードデータベース112は、オーバレイネットワーク生成アプリケーションを起動していることが検知されたノードのソケット情報を記憶する機能を持つ。
【００４２】
出力手段107は、検出ノードデータベース112に記憶された検知結果を出力するために用いられ、ディスプレイなどで実現される。
【００４３】
また、検知装置103は、図13に示されるように、入力手段106、中央制御手段108およびソケット収集手段111をさらに備えるものであっても良い。ここで、ソケット収集手段111は、検知対象ネットワーク102を経由してエッジネットワーク機器104に接続し、インターネット101へ接続をする監視対象ノード105の通信を監視し、一部のソケット情報を収集ソケットデータベース113へ記憶させる機能を持つ。ソケット収集手段111は、通信を動的に監視するだけでなく、監視対象のネットワークから生成しうる全ての発信元ソケットと発信先ソケットの組み合わせを、収集ソケットとして収集ソケットデータベース113へ記憶させる機能を備えていても良い。入力手段106は、キーボードなどで実現され、監視を実行する管理者から実行の契機を与えるために用いられる。中央制御手段108は、検知装置103が実行する後述する検知手順を管理する機能を持つ。
【００４４】
次に、本実施の形態の動作の概要を説明する。
【００４５】
まず、あらかじめ収集ソケットデータベース113に対して、確認したいソケット情報を記憶させておく。この作業は、ソケット収集手段111を利用して、検知対象ネットワーク102を流れるトラヒックを監視することで記憶させるべきソケットを抽出し、収集ソケットデータベース113に記憶させる方法をとっても良い。
【００４６】
次に、実際のオーバレイネットワーク生成アプリケーションを起動しているノードを特定する作業に移る。
【００４７】
まず、接続先限定手段114が、オーバレイリンク確立手段110に対して、オーバレイリンク確立のための接続先を、収集ソケットデータベース113へ記憶させたソケットのうちの1つ以上のソケットに限定する。ソケットの選択の方法は、入力手段106を通じて管理者から入力を受ける形式でも良いし、何らかのアルゴリズムによって自動で選択する方法でも良い。
【００４８】
次にオーバレイリンク確立手段110は、入力手段106からの入力を受け、接続先限定手段114によって限定された監視対象ノード105に対して、検知すべきオーバレイネットワーク生成アプリケーションと同様の手順でオーバレイリンクの確立を試行する。
【００４９】
リンク確立確認手段109は、オーバレイリンク確立手段110で試行した監視対象ノード105に対するオーバレイリンクの確立の可否を確認する。リンクの確立が確認できた場合、その監視対象ノード105のソケット情報を、検出ノードデータベース112へ記憶させる。
【００５０】
最後に、出力手段107が検出ノードデータベース112に記憶された検知結果を出力する。
【００５１】
なお、収集ソケットデータベース113に記憶された全てのソケット情報に対する調査が行われるまで、接続先限定手段114、オーバレイリンク確立手段110およびリンク確立確認手段109による処理の繰り返しを中央制御手段108によって制御するようにしてもよい。
【００５２】
次に本実施の形態の効果を説明する。
【００５３】
本実施の形態によれば、自らと同じ動作をするアプリケーションソフトウェアとリンクを確立することによってオーバレイネットワークを生成し、通信を行うアプリケーションソフトウェアを動作させているノードを、収集ソケットデータベース113に記憶した特定のマシン群の中から発見することができる。
【００５４】
また本実施の形態によれば、背景技術の欄で挙げた6つの問題点を以下のように解消することができる。
【００５５】
まず第1に、検知対象となる全てのノードに対してアプリケーション検知ソフトを導入する必要がなく、通常のネットワーク構成に検知装置103を追加するだけでよいため、導入が簡易となる。
【００５６】
第2に、ポート番号を任意に設定してオーバレイリンクを生成するアプリケーションに対しても、ノードの特定が可能となる。その理由は、本実施の形態では、収集ソケットデータベース112に様々なポート番号を含むソケット情報を記憶させることができ、それらのポート番号に対応するソケットに対して確認が行われるからである。
【００５７】
第3に、本実施の形態ではパケットのペイロードの監視および解析を行わないため、ペイロードを監視するだけでは判別できないようなオーバレイネットワーク生成アプリケーション、およびペイロードを暗号化して通信を行うようなオーバレイネットワーク生成アプリケーションに対しても、ノードを特定することが問題なく可能である。
【００５８】
第4に、本実施の形態では、ノードの特定は、オーバレイリンク確立手段110によって、実際のオーバレイネットワーク生成アプリケーションと全く同じ方式でオーバレイリンクを確立することで確認する。これは確率論的ではなく決定論的なノードの確認であるため、誤認識率が0となる。また、ソケット収集手段111の実現方法によっては、見逃し率(特定すべきオーバレイネットワーク生成アプリケーションを起動しているノードを特定し損ねる確率)も極めて低くすることが可能である。
【００５９】
第5に、本実施の形態ではオーバレイリンクを確立するための接続先ノードを指定することができるため、ある特定のノードがオーバレイネットワーク生成アプリケーションを起動しているかどうかを高速かつ確実に検知できる。
【００６０】
第6に、本実施の形態では、ノードの特定を積極的な手法で行うため、ノード検知のタイミングを指定することができ、ノードの特定が高速にできる。
【００６１】
ここで、非特許文献4および特許文献1に記載された方法(以下、従来手法)との差異をより明確に説明する。
【００６２】
従来手法では、アドレス情報収集ノードという検知ノードをネットワークに接続し、検知ノードの上でオーバレイネットワーク生成アプリケーションを起動する。起動されたオーバレイネットワーク生成アプリケーションは、予め設定された初期ノードに対してオーバレイリンクを確立する。非特許文献4および特許文献1には初期ノードに関する詳しい記載はないが、その目的から判断してオーバレイネットワーク生成アプリケーションを起動している他ノードの１つが初期ノードとして設定される。初期ノードとオーバレイリンクを確立した検知ノードのオーバレイネットワーク生成アプリケーションは、アプリケーションに依存した方法で、同じオーバレイネットワークに参加する他のノードのソケット情報を初期ノードおよび他のノードから取得し、この取得したソケット情報を用いて、初期ノード以外の更に他のノードと通信する。また、オーバレイネットワークに参加した検知ノードのソケット情報は、初期ノードから他の参加ノードへ、更に他の参加ノードから別の参加ノードへと伝達され、参加ノードのソケット情報を獲得した他ノードから検知ノードに対して通信が行われる。こうして、検知ノードは、オーバレイネットワークに参加する他の多くのノードと通信し合うようになる。従来方法では、こうした通信により他のノードから受信したパケットのヘッダ情報を解析して、IPアドレスを取得し、この取得したIPアドレスを、オーバレイネットワーク生成アプリケーションを起動しているノードのアドレスとして収集し蓄積する。
【００６３】
このように検知ノードのオーバレイネットワーク生成アプリケーションが起動後に次々と通信する他のノードは、外部から制御することは困難である。このため、特定のノード群の中からオーバレイネットワーク生成アプリケーションを起動しているノードを特定するのが困難になる。勿論、特定のノード群に含まれる個々のノード毎に、そのノードが従来方法で収集されたノード群に含まれているか否かを調べることも考えられる。しかし、この方法が有効に機能するには、従来方法で収集されたノード群が全オーバレイネットワークを網羅していることが前提になる。特許文献１の段落106に記載されるように、1つの検知ノードが収集できるノードには限りがあるため、この前提が完全に満たされるには極めて多くの検知ノードが必要になり、実用化は極めて困難である。
【００６４】
これに対して本実施の形態では、収集ソケットデータベース113および接続先限定手段114が存在し、オーバレイリンク確立手段110のリンク接続先を特定のノードあるいは特定のノード群に限定することが可能であるため、ある特定のノードがオーバレイ生成アプリケーションを起動しているノードかどうかを確認することができる。具体的な実現方法としては、後述する実施例にあるとおり、多くのオーバレイネットワーク生成アプリケーションが起動直後に初期ノードリストと呼ばれるソケットリストを読み取り、そのソケットに対してオーバレイリンクを確立する性質を利用して、初期ノードリストに限定したい接続先を記載し、オーバレイリンク確立手段110としてオーバレイネットワーク生成アプリケーションを使用し、このオーバレイネットワーク生成アプリケーションを再起動するという方法が挙げられる。このようにすることで、オーバレイ生成アプリケーションのプロトコルやプログラム内部を変更することなく、またオーバレイ生成アプリケーションの内部構造が不明であっても、ある特定のノードあるいは特定のノード群に対して、オーバレイネットワーク生成アプリケーションが起動しているかどうかを確認することができる。
【実施例１】
【００６５】
次に本発明の実施例1について、図面を参照して詳細に説明する。
【００６６】
図3を参照すると、本実施例では、各監視対象ノード315〜317は、エッジネットワーク機器304と接続される。エッジネットワーク機器304のインターネット301側のポートにはトラヒックコピー装置305が接続され、このトラヒックコピー装置305に検知装置303が接続されている。各監視対象ノード315〜317は、エッジネットワーク機器304を経由してインターネット301に接続する。
【００６７】
検知装置303内部の構成は、実施の形態で説明した図13の検知装置103と同じであり、入力手段306、出力手段307、中央制御手段308、リンク確立確認手段309、オーバレイリンク確立手段310、ソケット収集手段311、検出ノードデータベース312、収集ソケットデータベース313を備えている。
【００６８】
今、監視対象ノードA315でオーバレイネットワーク生成アプリケーションを動作させ、インターネット経由でソケットを利用して通信をしているものとする。その際、発信元のソケットはAS:as、発信先のソケットはAD:adとする。また、監視対象ノードB316では発信元ソケットがBS:bs、発信先ソケットがBD:bdでオーバレイネットワーク生成アプリケーション以外のアプリケーションで通信をしているものとする。さらに監視対象ノードC317では発信元ソケットがCS:cs、発信先ソケットがCD:cdでやはりオーバレイネットワーク生成アプリケーション以外のアプリケーションで通信を利用しているものとする。すなわち、監視対象ノードB316および監視対象ノードC317では、通信を行ってはいるが、検知すべきオーバレイネットワーク生成アプリケーションを起動させていない。
【００６９】
本実施例における動作について、図2のフローチャートを用いて説明する。
【００７０】
最初に、管理者は入力手段306を通じて、ソケット収集手段311にソケットデータの収集を指示する(S201)。
【００７１】
ソケット収集手段311は、トラヒックコピー装置305を通じてエッジネットワーク機器304を介してインターネット経由の通信が行われたTCPのソケット情報を収集し、収集ソケットデータベース313に記憶させる(S202)。この収集方法は様々なものが考えられるが、本実施例ではトラヒックコピー装置305のポートミラーリング機能を使う。具体的には、エッジネットワーク機器304からトラヒックコピー装置305へ接続されているポートの通信内容を、ソケット収集手段311へ転送することで、エッジネットワーク機器304へ流れる全てのEthernet(登録商標)フレームを監視できる。ソケット収集手段311では、それらのフレームからTCP/IPで通信を行っているものを取り出す。このとき、さらに何らかのポリシで確認すべきソケットを選別しても良い。本実施例では選別は行わず、過去一定時間(例えば1時間)以内にTCP通信が行われた全てのソケットを抽出し、図4のようなリストにまとめる(S202)。収集期間が終了するか、管理者から入力手段306を経由して終了指示があった場合、ソケット情報の収集を停止する(S203)。
【００７２】
次に、収集ソケットデータベース313のソケット情報から一つを選択し、接続先限定手段314が、オーバレイリンク確立手段310に対し、選択したソケットにのみオーバレイリンクの確立を試みるように設定を行う(S204)。
【００７３】
ソケットの選択方法は、管理者が入力手段306を用いて選択しても良いし、何らかの自動的選択アルゴリズムを用いても良い。
【００７４】
また具体的なオーバレイリンクの確立方法は、例えばオーバレイネットワーク生成アプリケーションがP2Pアプリケーションであった場合には、選択したソケットのみをP2Pアプリケーションにおける初期ノードとして登録する方法などがある。ここで初期ノードとは、P2Pアプリケーションが起動した直後、最初にP2Pリンクを確立する対象となるノードのことであり、ソケット情報で指定する。
【００７５】
次に、管理者あるいは何らかの時限装置が入力手段306を通じてトリガをかけることにより、オーバレイリンク確立手段310が初期ノードに対してオーバレイリンクの確立を試行する(S205)。オーバレイリンク確立手段310の具体的な実現方法としては、オーバレイネットワーク生成アプリケーションをそのまま使用して起動させる方法や、オーバレイネットワーク生成アプリケーションのオーバレイリンク作成部分のみをエミュレートするソフトウェアを利用する方法などがある。
【００７６】
ここで接続先限定手段314により、初期ノードとしてソケットを一つだけ登録した状態で起動したP2Pアプリケーションは、起動直後に必ずそのソケットに対応するノードに対してP2Pリンクを確立しようとする。したがって、オーバレイリンク確立手段310を用いて、オーバレイネットワーク生成アプリケーションを動作させているかどうかの検知を、指定したノードに対して確実に、かつ指定したタイミングで、行うことが可能となる。
【００７７】
次に、リンク確立確認手段309が、初期ノードに対するオーバレイリンクの確立が成功したか否かを確認する。成功した場合には、そのソケット情報を検出ノードデータベース312に記録する(S206)。リンク確立確認手段309の具体的な実現手段としては、Windows(登録商標)やLinux(登録商標)などのOSの"netstat"コマンドなどを利用するにより、TCPセッションが確立されていることを確認する方法などがある。
【００７８】
次に、中央制御手段308は、収集ソケットデータベース313に記憶されたすべてのソケット情報に対して確認が完了したかどうかを判定し(S207)、確認の完了していないソケット情報が残っていれば、制御をステップS204に戻し、未確認のソケット情報について前述した処理と同様の処理を繰り返す。こうして、S204からS206までの作業を、収集ソケットデータベース313に記憶されている全てのソケットに対して行う。
【００７９】
最後に、出力手段307を用いて、検出ノードデータベース312に記憶されたソケット情報を出力する(S208)。ここで、出力する情報は、ソケット情報そのままでも良いし、図示せぬ「マシン名とソケット情報を対応付けるテーブル」などを利用してマシン名に変換したものなどを用いてもよい。
【００８０】
なお、本実施例では、ソケット収集手段311によるソケット情報の収集が終了してからオーバレイリンクの確立の試行を行うが、これらの作業は同時に行っても良い。すなわち、ソケット情報を収集しながら、オーバレイリンクの確立を試行し続けるといった形態も可能である。
『具体例1』
【００８１】
次に、本発明の具体例1を図6の構成図、図5のフローチャートを参照して説明する。
【００８２】
本例では、各監視対象となるコンピュータA615およびコンピュータB616およびコンピュータC617は、エッジネットワーク機器としてのルータ604に接続される。ルータ604のインターネット側のポートにはトラヒックコピー装置としてポートミラーリング機能をもったL2スイッチ605が接続され、このL2スイッチ605に検知装置としての検知用PC603が接続されている。各コンピュータ615〜617は、ルータ604を経由してインターネット601に接続する。ポートミラーリング機能をもったL2スイッチ605は、ルータ604の入出力パケット全てをミラーリングし、ソケット収集手段611へ転送するように設定されている。なお、本具体例では、各コンピュータA615〜C617は直接ルータ604と接続しているが、途中に図示せぬ1つ以上のルータやL2スイッチを経由したIPネットワークを経由した形式でも同様に動作する。
【００８３】
今、コンピュータA615でWinny610を動作させ、TCP/IPを利用してインターネット経由で図示せぬ外部のコンピュータと通信をしているものとする。その際、発信元のソケットは202.248.141.68:80、発信先のソケットは192.240.0.104:7743とする。またコンピュータB616では、発信元ソケットが133.205.217.129:1394、発信先ソケットが202.247.3.107:80でWebブラウザを利用してやはり図示せぬ外部のコンピュータと通信をしているものとする。さらにコンピュータC617では、発信元ソケットが211.130.162.176:2000、発信先ソケットが163.137.189.10:554で、ストリームデータの通信をしているものとする。
【００８４】
本例で特定すべきコンピュータは、Winny610を起動して通信をしているコンピュータA615であり、コンピュータB616およびコンピュータC617では、通信を行ってはいるが、検知すべきWinny610を起動させていないため、検知対象とはならない。
【００８５】
検知用PC603は、OSとしてWindowsXP(登録商標)が搭載されたパーソナルコンピュータとして実現され、内部は次のような構成になっている。
【００８６】
収集ソケットデータベース613は、監視対象となる各コンピュータ615〜617がWinny610を起動してWinny610の検索ネットワークを生成するために利用している可能性のあるソケット情報を記憶する機能を持つ。
【００８７】
初期ノード設定手段614は、実施例1における接続先限定手段314の具体的な実現手段であり、Winny610に対して、初期ノードファイルの内容を書き換えることによって、検索リンク確立のための接続先を、収集ソケットデータベース613へ記憶させたソケットに限定する機能を持つ。
【００８８】
Winny610は、オーバレイリンク確立手段310の具体的な実現手段であり、各コンピュータ615〜617に対して、Winny610の検索リンクの確立を試行する機能を持つ。
【００８９】
リンク確立確認手段609は、"netstat"コマンドを実行し、TCPのstateが"established"となっており、かつ初期ノード設定手段614において限定したソケットが"Source Address"または"Destination Address"となっているセッションの存在の有無を調べることで、Winny610で試行した検索リンクの確立の可否を確認する機能を持つ。また、リンクの確立が確認できた場合、そのノードのソケット情報を、検出ノードデータベース612へ記憶させる機能を持つ。
【００９０】
検出ノードデータベース612は、Winny610を起動していることが検知されたコンピュータのソケット情報を記憶する機能を持つ。
【００９１】
検知対象アドレスデータベース618は、本例でWinny610を動作させていることを検知したいコンピュータを示すIPアドレスを記憶させておく。本例では、図10に示すように、コンピュータA615に対応する202.248.141.68、コンピュータB616に対応する133.205.217.129、コンピュータC617に対応する211.130.162.176が格納されている。この情報は、初期ノード設定手段614においてソケットを一つ選択する際の参考データとして用いられる。
【００９２】
ディスプレイ607は、出力手段307の具体的な実現手段であり、検出ノードデータベース612に記憶されたソケット情報を出力するために用いられる。
【００９３】
ソケット収集手段611は、L2スイッチ605のポートミラーリング機能を利用してルータ604を経由する全てのトラヒックをコピーし、そのパケットのヘッダ情報を解析してルータ604を経由して行われた全ての発信元ソケットと発信先ソケットの組を抽出し、図7のようなリストにまとめて収集ソケットデータベース613に記憶させる。
【００９４】
キーボード606は、入力手段306の具体的な実現手段であり、ソケット収集手段611がソケット収集を開始および終了するトリガや、Winny610を起動するトリガなどを与える機能を備える。
【００９５】
中央制御手段608は、後述する本例の動作を順序どおりに進めるための各手段の制御を行う。
【００９６】
本例における動作について、図5のフローチャートを用いて説明する。
【００９７】
最初に、管理者はキーボード606を用いて、ソケット収集手段611にソケットデータの収集を指示する(S501)。
【００９８】
ソケット収集手段611が、インターネット601を経由して通信をするトラヒックからソケットデータを抽出し、収集ソケットデータベース613に記憶させる(S502)。具体的には、L2スイッチ605のポートミラーリング機能を用い、ルータ604のポートのうちインターネット601へ接続しているポートのトラヒックを全てコピーし、ソケット収集手段611へ転送して、トラヒック情報から発信元ソケットと発信先ソケットの各ソケットの情報を抽出する。本例では、各コンピュータA615〜C617が全てTCP/IP通信をしており、抽出されるソケットの組は図8のようになる。
【００９９】
本例では、管理者がキーボード606を用いて指示をすることにより、ソケット収集を終了する(S503)。
【０１００】
次に初期ノード設定手段614が、収集ソケットデータベース613に記憶されているソケットから一つを選択し、選択したソケットのみを初期ノードファイル619へ登録する(S504)。なおWinnyにおける初期ノードファイルの内容は、Winnyを利用して暗号化したテキスト文字列として登録する仕様となっているが、Winnyの標準のインタフェース上でIPアドレスとTCPポート番号(すなわち本明細書でいうところのソケット)を指定すれば、暗号化後のテキスト文字列を入手することができる。
【０１０１】
本例では、ソケットの選択方法として、図8に示す収集した6つのソケット202.248.141.68:80、192.240.0.104:7743、133.205.217.129:1394、202.247.3.107:80、211.130.162.176:2000、163.137.189.10:554のうち、まず検知対象アドレスデータベース618に格納されているIPアドレスを持つ202.248.141.68:80、133.205.217.129:1394、211.130.162.176:2000に絞り、その中からランダムに一つ選択する手法をとる。このとき、はじめに202.248.141.68:80が選択されたものとして、説明する。すなわち、暗号化され、初期ノードとして登録されるソケットは202.248.141.68:80である。
【０１０２】
次に、管理者がキーボード606からの入力を通してWinny610を起動する。起動されたWinny610は起動直後に初期ノードファイルを読み込み、記載されているソケットに対して検索リンクの確立を試行する(S505)。今の場合、202.248.141.68:80に対して、検索リンクが確立される。
【０１０３】
次に、リンク確立確認手段609はOSの"netstat"コマンドを実行して結果を確認し、自らと前記ソケットを持つコンピュータとのTCPセッションが確立されているかどうか調査する。セッションの確立が確認できた場合、検出ノードデータベース612に当該ソケットを記録する。最後に、起動しているWinny610を終了させる(S506)。本例では、発信先が202.248.141.68:80であるTCPセッションが確立されていることを発見し、202.248.141.68:80を検出ノードデータベース612に記録して、Winny610を終了させる。
【０１０４】
S504〜S506までの処理は、収集ソケットデータベース613に記録されたソケット全てに対して行われる(S507)。本例では、残るソケット133.205.217.129:1394、211.130.162.176:2000に対して、S504〜S506の処理を行う。S505でリンクの確立を試行するが、それら2つのソケットはWinny610が利用しているソケットではないため、検索リンクが確立できない。そのため、S506でTCPセッションが確認されず、結果として検出ノードデータベース612には、それら2つのソケットは記録されない。
【０１０５】
最後に、検出ノードデータベース612に記録されたソケット情報を、検出結果としてディスプレイ607を用いて出力し(S508)、全ての処理を終了する。本例では、図12に示すように、202.248.141.68:80が出力される。管理者は、この出力情報と検知対象アドレスデータベース618を参照することにより、IPアドレスコンピュータAがポート80を利用してWinny610を起動していることが認識できる。
【０１０６】
『具体例2』
次に本発明の具体例2を図9の構成図、図11のフローチャートを参照して説明する。
【０１０７】
本例の構成は、インターネットサービスプロバイダが、自ネットワークに所属するすべてのコンピュータを監視し、Winnyを起動していたマシンを検知し、Winnyのトラヒックのみを帯域制限装置を利用して制限することを目的とする。
【０１０８】
本例では、各監視対象となるコンピュータ群は、ネットワークアドレス202.248.141.0/24を持つネットワークAに所属するものと、ネットワークアドレス133.205.217.0/24を持つネットワークBに所属するものの2種類に分けられる。各ネットワークは、ルータやL2スイッチなどで構成されており、各コンピュータは、自ネットワークのネットワーク機器を経由してルータ904に接続してインターネットを経由した通信を行う。
【０１０９】
エッジネットワーク機器としてルータ904が接続される。ルータ904のインターネット側のポートには帯域制限装置920が接続されている。この帯域制限装置920は、IPアドレスとTCPポートの組(ソケット)を指定することで、そのソケットを発信先および発信元とするTCP通信のトラヒック量を制限することが可能である。帯域制限装置920は、検知用PC903内部の制限ソケット指定装置921と接続されており、ここで指定されたソケットを利用したTCP通信のトラヒック量を制限する。
【０１１０】
今、ネットワークAに所属するコンピュータA915でWinny910を動作させ、TCP/IPを利用してインターネット経由で図示せぬ外部のコンピュータと通信をしているものとする。その際、発信元のソケットは202.248.141.68:80、発信先のソケットは192.240.0.104:7743とする。その他のコンピュータではTCP通信をしているが、Winny910は起動していないものとする。
【０１１１】
本具体例で特定すべきコンピュータは、Winny910を起動して通信をしているコンピュータA915であり、その他のコンピュータでは、通信を行ってはいるが、検知すべきWinny910を起動させていないため、検知対象とはならない。
【０１１２】
検知用PC903は、OSとしてWindowsXPが搭載されたパーソナルコンピュータとして実現され、内部は具体例1とほぼ同様であるが、以下の3点で異なる。
【０１１３】
第1に、ソケット収集手段611および検知対象アドレスデータベース618に相当する手段が存在しない。
【０１１４】
第2に、収集ソケットデータベース913には、ネットワークAおよびネットワークBに所属するコンピュータが生成しうるすべてのソケット情報が予め記録されている。本例では、ネットワークAのネットワークアドレスが202.248.141.0/24であり、ネットワークAに所属するコンピュータが持つ可能性のあるIPアドレスは、202.248.141.0〜202.248.141.255である。また、各コンピュータがとりうるTCPポートは、0〜65535である。ネットワークBも同様に、すべてのIPアドレスとTCPポート番号の組を洗い出すことができる。とりうるIPアドレスとTCPポートのすべての組み合わせが、収集ソケットデータベース913に記録される。
【０１１５】
第3に、制限ソケット指定手段921が追加されている。制限ソケット指定手段921の役割は、前述のとおり、帯域制限装置920に制限すべきソケットを指示することである。
【０１１６】
本例における動作について、図11のフローチャートを参照して説明する。
【０１１７】
最初に、初期ノード設定手段914が、収集ソケットデータベース913に記憶されているソケット情報から一つを選択し、選択したソケット情報のみを初期ノードファイル919へ登録する(S1104)。
【０１１８】
本例では、選択されたソケットが202.248.141.68:80であったものとして、説明する。すなわち、暗号化され、初期ノードとして登録されるソケットは202.248.141.68:80である。
【０１１９】
次に、管理者がキーボード906からの入力を通してWinny910を起動する。起動されたWinny910は起動直後に初期ノードファイル919を読み込み、記載されているソケットに対して検索リンクの確立を試行する(S1105)。今の場合、202.248.141.68:80に対して、検索リンクが確立される。
【０１２０】
次に、リンク確立確認手段909はOSの"netstat"コマンドを実行して結果を確認し、自らと前記ソケットを持つコンピュータとのTCPセッションが確立されているかどうか調査する。セッションの確立が確認できた場合、検出ノードデータベース912に前記ソケットを記録する。最後に、起動しているWinny910を終了させる(S1106)。本例では、発信先が202.248.141.68:80であるTCPセッションが確立されていることを発見し、202.248.141.68:80を検出ノードデータベース912に記録して、Winny910を終了させる。
【０１２１】
次に、中央制御手段908は、収集ソケットデータベース913に記憶されたすべてのソケット情報に対して確認が完了したかどうかを判定し(S1107)、確認の完了していないソケット情報が残っていれば、制御をステップS1104に戻し、未確認のソケット情報について前述した処理と同様の処理を繰り返す。こうして、S1104からS1106までの処理を、収集ソケットデータベース913に記憶されている全てのソケットに対して行う(S1107)。本例では、残るソケットすべてに対して、S1105でリンクの確立を試行するが、それらのソケットはWinnyが利用しているソケットではないため、検索リンクが確立できない。そのため、S1106でTCPセッションが確認されず、結果として検出ノードデータベース912にはそれらのソケットは記録されない。
【０１２２】
次に、検出ノードデータベース912に記録されたソケット情報を、制限ソケット指定手段921が帯域制限装置920に対して送信する(S1108)。
【０１２３】
最後に、帯域制限装置920が、指定されたソケットを利用するTCPトラヒックの帯域を制限する(S1109)。ここでは、202.248.141.68:80を送信元あるいは送信先として持つパケットのトラヒックの帯域を制限する。
【０１２４】
以上本発明の実施の形態および実施例ならびに具体例について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。また、本発明のオーバレイネットワーク生成アプリケーション起動ノード特定装置は、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各例における検知装置および検知用PCの各機能手段として機能させる。
【産業上の利用可能性】
【０１２５】
本発明は、ISPなどのネットワークの管理者が、P2Pなどのオーバレイネットワーク生成アプリケーションを利用しているノード識別子と上位のプロトコルの識別子の組を検知する検知システムに用いることができる。
【図面の簡単な説明】
【０１２６】
【図１】本発明の実施の形態のブロック図である。
【図２】本発明の実施例における検知装置の動作を示すフローチャートである。
【図３】本発明の実施例のブロック図である。
【図４】本発明の実施例において収集ソケットデータベースに蓄積されるソケット情報の例を示す図である。
【図５】本発明の具体例における検知用PCの動作を示すフローチャートである。
【図６】本発明の具体例のブロック図である。
【図７】本発明の具体例において、収集ソケットデータベースに記憶されるIPアドレスとTCPポートの組(ソケット)の例を示す図である。
【図８】本発明の具体例において、収集ソケットデータベースに記憶されるIPアドレスとTCPポートの組(ソケット)の例を示した図である。
【図９】本発明の別の具体例のブロック図である。
【図１０】本発明の具体例において、検知対象アドレスデータベースに記憶されるコンピュータ名と対応するIPアドレスの組の例を示した図である。
【図１１】本発明の別の具体例における検知用PCの動作を示すフローチャートである。
【図１２】本発明の具体例において、最終的に検出ノードデータベースに記録されるソケット情報の例を示す図である。
【図１３】本発明の別の実施の形態のブロック図である。
【符号の説明】
【０１２７】
１０１…インターネット
１０２…検知対象ネットワーク
１０３…検知装置
１０４…エッジネットワーク機器
１０５…監視対象ノード
１０６…入力手段
１０７…出力手段
１０８…中央制御手段
１０９…リンク確立確認手段
１１０…オーバレイリンク確立手段
１１１…ソケット収集手段
１１２…検出ノードデータベース
１１３…収集ソケットデータベース
１１４…接続先限定手段
【図１】
2006330783.tif 000003
【図２】
2006330783.tif 000004
【図３】
2006330783.tif 000005
【図４】
2006330783.tif 000006
【図５】
2006330783.tif 000007
【図６】
2006330783.tif 000008
【図７】
2006330783.tif 000009
【図８】
2006330783.tif 000010
【図９】
2006330783.tif 000011
【図１０】
2006330783.tif 000012
【図１１】
2006330783.tif 000013
【図１２】
2006330783.tif 000014
【図１３】
2006330783.tif 000015