以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.通信解析システム500>
図1を参照して、通信解析システム500について説明する。図1は、通信解析システム500の装置構成の一例を示す図である。
図1に示されるように、通信解析システム500は、複数の通信端末100と、1つ以上の通信解析装置200と、1つ以上のユーザ端末300とを含む。
通信端末100は、たとえば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。通信解析システム500を構成する通信端末100の数は任意であり、たとえば、数台〜数億台である。説明を簡素化するために、図1には6台の通信端末100A〜100Fのみが示されている。通信端末100A〜100Fは、それぞれ、異なる地域に配置されている。以下では、通信端末100A〜100Fを総称して通信端末100ともいう。
通信端末100は、通信相手のIPアドレスを元に他の通信端末とのP2P通信を実現する。すなわち、通信端末100は、通信相手のIPアドレスさえ把握していれば、任意の通信端末とP2P通信することができる。図1の例では、通信端末100Aは、通信端末100BのIPアドレスと、通信端末100FのIPアドレスと、通信端末100FのIPアドレスとを保持しており、これらのIPアドレスを介して通信端末100B,100E,100FのそれぞれとP2P通信を実現する。ある局面において、通信端末100は、既存のP2Pネットワークに参加することで、他の通信端末とのP2P通信を実現する。この場合、通信端末100は、対象のP2Pネットワークに参加している通信端末のIPアドレスのリストをサーバーなどから取得する。通信端末100は、取得したリストに基づいて、対象のP2Pネットワークに参加している他の通信端末とのP2P通信を実現する。他の局面において、通信端末100は、自らP2Pネットワークを構成し、当該P2Pネットワークに参加する他の通信端末とのP2P通信を実現する。
通信端末100A〜100Fの一部または全部は、通信解析装置200に通信履歴130を発信する機能を有する。図1の例では、通信端末100A,100C,100Eが通信履歴130を発信する機能を有する。より具体的には、発信用の通信端末100A,100C,100Eは、それぞれ、他の通信端末とのP2P通信時における通信内容を自端末の通信履歴130に書き込む。当該通信履歴130は、通信解析装置200に定期的に送信される。
通信解析装置200は、たとえば、ノート型またはデスクトップ型のPC、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。図1には、1台の通信解析装置200が示されているが、通信解析システム500を構成する通信解析装置200の数は任意である。
通信解析装置200は、発信用の通信端末100A,100C,100Eの各々から収集した通信履歴130に基づいて、各地域間のP2P通信の混雑度を推定する。通信混雑度の推定処理の詳細については後述する。通信解析装置200は、通信混雑度の推定結果を配信情報230としてユーザ端末300に配信する。
ユーザ端末300は、たとえば、ノート型またはデスクトップ型のPC、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。図1には、2台のユーザ端末300が示されているが、通信解析システム500を構成するユーザ端末300の数は任意である。
ユーザ端末300は、通信解析装置200から受信した配信情報230に基づいて、各地域間の通信混雑度をユーザに提示する。配信情報230の表示態様については後述する。
なお、図1の例では、通信端末100およびユーザ端末300が区別されているが、通信端末100およびユーザ端末300は、必ずしも区別される必要はない。すなわち、ユーザ端末300は、通信端末100と同様にP2Pネットワークを構成する1つの端末であってもよいし、P2Pネットワークを構成しない端末であってもよい。
<B.通信解析装置200の概要>
次に、図2を参照して、上述の通信解析装置200の機能の概要について説明する。図2は、通信解析装置200による通信混雑度の推定処理を実現するための機能モジュールの一例を示す図である。
図2に示されるように、通信解析装置200は、ハードウェア構成として、制御装置201を含む。制御装置201は、後述の通信解析プログラム222(図4参照)の実行時において、履歴取得部250、マップ取得部253、地域特定部254、混雑度推定部258、出力部266として機能する。
履歴取得部250は、複数の通信端末100(図1参照)の各々から通信履歴130を取得する。通信履歴130の各々は、P2P通信時における送信元のIPアドレスと送信先のIPアドレスとのIPアドレスセットを1つ以上含む。通信履歴130は、IPアドレスセットの他にも、送信元のMAC(Media Access Control)アドレス、送信先のMACアドレス、通信データの発信時刻、通信データの受信時刻、通信プロトコル、通信量、通信データの内容などを含んでもよい。取得された通信履歴130の各々は、地域特定部254に出力される。
マップ取得部253は、複数の地域を含むマップデータ228を取得する。マップデータ228の取得先は任意である。一例として、マップデータ228は、通信解析装置200と通信可能な外部サーバ(図示しない)から取得される。あるいは、マップデータ228は、通信解析装置200内の記憶装置に予め格納されていてもよい。この場合、マップ取得部253は、当該記憶装置からマップデータ228を取得する。取得されたマップデータ228は、地域特定部254に出力される。
地域特定部254は、履歴取得部250によって取得された複数の通信履歴130に含まれる全部または一部の各IPアドレスセットについて、当該IPアドレスセットに規定される送信元のIPアドレスが属する送信元地域と、当該IPアドレスセットに規定される送信先のIPアドレスが属する送信先地域とを特定する。送信元地域および送信先地域は、たとえば、IPアドレスの値から特定される。地域特定部254によって特定された送信元地域および送信先地域は、混雑度推定部258に出力される。
なお、送信元地域および送信先地域は、取得されたIPアドレスセットの全てについて特定される必要はなく、IPアドレスセットの一部について特定されてもよい。たとえば、重複するIPアドレスについては対応する地域が一度特定されれば2回目以降は特定される必要はない。この点に着目して、地域特定部254は、取得されたIPアドレスセットの一部について送信元地域および送信先地域を特定してもよい。
各IPアドレスについて特定された送信元地域および送信先地域は、P2P通信の混雑度を示す指標になり得る。一例として、同一の地域間でP2P通信が行なわれている数が多いほど、当該地域間では通信が混雑していることとなる。他にも、送信元地域および送信先地域は、通信時における地理的な影響を反映している。これらの点に着目して、混雑度推定部258は、地域特定部254によって特定された送信元地域と送信先地域との各セットに基づいて、マップデータ228に規定される各地域間におけるP2P通信の混雑度を推定する。
出力部266は、各地域間におけるP2P通信の混雑度を表わした情報を出力する。ここでいう「混雑度」とは、通信の遅延量(遅延時間)を表わす指標である。すなわち、「混雑度」が高いほど、応答時間が長いことを意味し、「混雑度」が低いほど、応答時間が短いことを意味する。出力態様の一例として、出力部266は、各地域間においてP2P通信の混雑度を表わしたマップデータ235を配信情報230としてユーザ端末300(図1参照)に配信する。マップデータ235上に表わされる混雑度は、たとえば、画像オブジェクトOBで表わされる。画像オブジェクトOBは、画面を構成する部品(UI(User Interface)部品)である。画像オブジェクトOBは、たとえば、矢印や線などを含む。画像オブジェクトOBは、マップデータ235上の各地域間を繋ぐように配置され、P2P通信の混雑度に応じた表示態様で表わされる。
図2の例では、画像オブジェクトOBが矢印で示されている。P2P通信の混雑度は、たとえば、矢印の太さで表わされる。より具体的には、P2P通信の混雑度が高いほど矢印は細く表示され、混雑度が低いほど矢印は太く表示される。ユーザは、マップデータ235を確認することで、どの地域に属する通信端末100に接続すると通信トラフィックが改善されるのかを容易に把握することができる。
なお、出力部266による通信混雑度の出力態様は、マップデータ235上に表わす例に限定されない。他の例として、各地域間における通信混雑度は、各地域の組み合わせごとに並べてリスト表示されてもよい。この場合、出力部266は、送信元地域の識別情報(たとえば、地域名)と、送信先地域の識別情報(たとえば、地域名)と、送信元地域および送信先地域間の通信混雑度とを送信元地域および送信先地域の組み合わせごとに示すリストをユーザ端末300に出力する。
また、出力部266による通信混雑度の出力態様は、必ずしも、表示に限定されない。一例として、各地域間における通信混雑度は、何らかの指標を演算するための指標として用いられてもよい。このような場合も、出力部266による「出力」の概念に含まれ得る。
また、通信解析装置200における機能構成の配置は、図2の例に限定されない。すなわち、履歴取得部250、マップ取得部253、地域特定部254、混雑度推定部258、出力部266の一部の機能モジュールは、通信解析装置200ではなく、外部端末に実装されてもよい。当該外部端末は、必ずしも国内に設置される必要はなく、外国に設置されてもよい。そのような場合でも、本実施の形態に従う通信解析装置200の趣旨を逸脱するものではない。また、これらの機能モジュールの一部または全部は、専用のハードウェアによって実現されてもよい。
<C.ハードウェア構成>
図3〜図5を参照して、上述の図1に示される通信端末100と通信解析装置200とユーザ端末300とのハードウェア構成について順に説明する。
(C1.通信端末100のハードウェア構成)
まず、図3を参照して、通信端末100のハードウェア構成について説明する。図3は、通信端末100のハードウェア構成の一例を示す模式図である。
通信端末100は、制御装置101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、通信インターフェイス104と、表示インターフェイス105と、入力インターフェイス107と、記憶装置120とを含む。これらのコンポーネントは、バス110に接続される。
制御装置101は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
制御装置101は、通信端末100の通信監視プログラム122やオペレーティングシステムなどの各種プログラムを実行することで通信端末100の動作を制御する。通信監視プログラム122は、通信端末100のP2P通信を監視する。より具体的には、通信監視プログラム122は、通信内容を通信履歴130に書き込む機能や、通信履歴130を通信解析装置200(図1参照)に定期的に送信する機能などを含む。典型的には、通信監視プログラム122は、P2P通信を実現するために世の中で配布されているP2Pプログラム(ノードプログラム)に組み込まれる。
制御装置101は、通信監視プログラム122の実行命令を受け付けたことに基づいて、記憶装置120またはROM102からRAM103に通信監視プログラム122を読み出す。RAM103は、ワーキングメモリとして機能し、通信監視プログラム122の実行に必要な各種データを一時的に格納する。
通信インターフェイス104には、LAN(Local Area Network)やアンテナなどが接続される。通信端末100は、通信インターフェイス104を介して、外部機器との間でデータをやり取りする。当該外部機器は、たとえば、他の通信端末100や、上述の通信解析装置200や、サーバーなどを含む。通信端末100は、当該外部機器から通信監視プログラム122をダウンロードできるように構成されてもよい。
表示インターフェイス105には、ディスプレイ106が接続される。表示インターフェイス105は、制御装置101などからの指令に従って、ディスプレイ106に対して、画像を表示するための画像信号を送出する。ディスプレイ106は、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、またはその他の表示機器である。なお、ディスプレイ106は、通信端末100と一体的に構成されてもよいし、通信端末100とは別に構成されてもよい。
入力インターフェイス107には、入力デバイス108が接続される。入力デバイス108は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス108は、通信端末100と一体的に構成されてもよいし、通信端末100とは別に構成されてもよい。
記憶装置120は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置120は、通信監視プログラム122、通信履歴130、およびIPアドレス情報132などを格納する。IPアドレス情報132は、P2P通信を行なう相手のIPアドレスを規定する情報である。なお、通信監視プログラム122、通信履歴130およびIPアドレス情報132の格納場所は、記憶装置120に限定されず、制御装置101の記憶領域(たとえば、キャッシュメモリなど)、ROM102、RAM103、外部機器(たとえば、サーバー)などに格納されていてもよい。
通信監視プログラム122は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、通信監視プログラム122による通信監視処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う通信監視プログラム122の趣旨を逸脱するものではない。さらに、通信監視プログラム122によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが通信監視プログラム122の処理の一部を実行する所謂クラウドサービスのような形態で通信端末100が構成されてもよい。
(C2.通信解析装置200のハードウェア構成)
次に、図4を参照して、通信解析装置200のハードウェア構成について説明する。図4は、通信解析装置200のハードウェア構成の一例を示す模式図である。
通信解析装置200は、制御装置201と、ROM202と、RAM203と、通信インターフェイス204と、表示インターフェイス205と、入力インターフェイス207と、記憶装置220とを含む。これらのコンポーネントは、バス210に接続される。
制御装置201は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御装置201は、通信解析プログラム222やオペレーティングシステムなどの各種プログラムを実行することで通信解析装置200の動作を制御する。制御装置201は、通信解析プログラム222の実行命令を受け付けたことに基づいて、記憶装置220またはROM202からRAM203に通信解析プログラム222を読み出す。RAM203は、ワーキングメモリとして機能し、通信解析プログラム222の実行に必要な各種データを一時的に格納する。
通信インターフェイス204には、LANやアンテナなどが接続される。通信解析装置200は、通信インターフェイス204を介して、外部機器との間でデータをやり取りする。当該外部機器は、たとえば、上述の通信端末100や上述のユーザ端末300やサーバーなどを含む。通信解析装置200は、当該外部機器から通信解析プログラム222をダウンロードできるように構成されてもよい。
表示インターフェイス205には、ディスプレイ206が接続される。表示インターフェイス205は、制御装置201などからの指令に従って、ディスプレイ206に対して、画像を表示するための画像信号を送出する。ディスプレイ206は、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。なお、ディスプレイ206は、通信解析装置200と一体的に構成されてもよいし、通信解析装置200とは別に構成されてもよい。
入力インターフェイス207には、入力デバイス208が接続される。入力デバイス208は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス208は、通信解析装置200と一体的に構成されてもよいし、通信解析装置200とは別に構成されてもよい。
記憶装置220は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置220は、通信解析プログラム222、マップデータ228、地域定義232、および通信混雑度の推定結果234などを格納する。なお、通信解析プログラム222、マップデータ228、地域定義232、および推定結果234の格納場所は、記憶装置220に限定されず、制御装置201の記憶領域(たとえば、キャッシュメモリなど)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
通信解析プログラム222は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、通信解析プログラム222による混雑度推定処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う通信解析プログラム222の趣旨を逸脱するものではない。さらに、通信解析プログラム222によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが通信解析プログラム222の処理の一部を実行する所謂クラウドサービスのような形態で通信解析装置200が構成されてもよい。
(C3.ユーザ端末300のハードウェア構成)
次に、図5を参照して、ユーザ端末300のハードウェア構成について説明する。図5は、ユーザ端末300のハードウェア構成の一例を示す模式図である。
ユーザ端末300は、制御装置301と、ROM302と、RAM303と、通信インターフェイス304と、表示インターフェイス305と、入力インターフェイス307と、記憶装置320とを含む。これらのコンポーネントは、バス310に接続される。
制御装置301は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御装置301は、通信解析装置200からの配信情報230を表示するための表示プログラム322やオペレーティングシステムなどの各種プログラムを実行することでユーザ端末300の動作を制御する。制御装置301は、表示プログラム322の実行命令を受け付けたことに基づいて、記憶装置320またはROM302からRAM303に表示プログラム322を読み出す。RAM303は、ワーキングメモリとして機能し、表示プログラム322の実行に必要な各種データを一時的に格納する。
通信インターフェイス304には、LANやアンテナなどが接続される。ユーザ端末300は、通信インターフェイス304を介して、外部機器との間でデータをやり取りする。当該外部機器は、たとえば、通信端末100や通信解析装置200やサーバーなどを含む。ユーザ端末300は、当該外部機器から表示プログラム322をダウンロードできるように構成されてもよい。
表示インターフェイス305には、ディスプレイ306が接続される。表示インターフェイス305は、制御装置301などからの指令に従って、ディスプレイ306に対して、画像を表示するための画像信号を送出する。ディスプレイ306は、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。なお、ディスプレイ306は、ユーザ端末300と一体的に構成されてもよいし、ユーザ端末300とは別に構成されてもよい。
入力インターフェイス307には、入力デバイス308が接続される。入力デバイス308は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス308は、ユーザ端末300と一体的に構成されてもよいし、ユーザ端末300とは別に構成されてもよい。
記憶装置320は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置320は、表示プログラム322などを格納する。なお、表示プログラム322の格納場所は、記憶装置320に限定されず、制御装置301の記憶領域(たとえば、キャッシュメモリなど)、ROM302、RAM303、外部機器(たとえば、サーバー)などに格納されていてもよい。
表示プログラム322は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、表示プログラム322による表示処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う表示プログラム322の趣旨を逸脱するものではない。さらに、表示プログラム322によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが表示プログラム322の処理の一部を実行する所謂クラウドサービスのような形態でユーザ端末300が構成されてもよい。
<D.地域特定部254の機能>
次に、図6〜図9を参照して、図2に示される地域特定部254の機能の詳細について説明する。図6は、地域特定部254の機能構成の一例を示す図である。
図6に示されるように、地域特定部254は、機能モジュールとして、マージ部255と、解析部256と、住所特定部257とを含む。以下では、これらの機能モジュールについて順に説明する。
(D1.マージ部255)
まず、図7を参照して、マージ部255の機能について説明する。図7は、通信端末100(図1参照)の各々から取得した通信履歴130をマージする過程を示す図である。
図7に示されるように、マージ部255は、P2P通信に関する複数の通信履歴130の入力を履歴取得部250(図2参照)から受ける。通信履歴130は、送信元のIPアドレスと、送信先のIPアドレスと、通信データの発信時刻と、通信データの受信時刻とを含む。これらの他にも、通信履歴130は、送信元のMACアドレス、送信先のMACアドレス、通信プロトコル、通信量、通信データの内容などを含んでもよい。
マージ部255は、入力として受けた複数の通信履歴130をマージし、マージ結果D1を生成する。マージ部255によるマージ方法は、任意である。一例として、マージ部255は、N(≧1)番目の通信履歴130の最後尾にN+1番目の通信履歴130を追加することで、全ての通信履歴130をマージする。
図7には、通信履歴130のマージ結果D1が示されている。マージ結果D1は、所定のルールに従ってソートされてもよい。一例として、マージ結果D1は、発信時刻の順にソートされてもよいし、送信元IPアドレスの順にソートされてもよい。マージ部255は、生成したマージ結果D1を解析部256に出力する。
(D2.解析部256)
次に、図8を参照して、図6に示される解析部256の機能について説明する。図8は、マージ結果D1から解析結果D2を生成する過程を示す図である。
図8に示されるように、解析部256は、マージ部255によって生成されたマージ結果D1を解析し、送信元と送信先との組み合わせごとに通信頻度を算出する。より具体的には、まず、解析部256は、マージ結果D1に含まれるIPアドレスセットの内、発信時刻が所定期間に含まれるIPアドレスセットを解析対象として抽出する。当該所定期間は、現在から所定の単位時間前(たとえば、1時間前)までの期間を示す。次に、解析部256は、解析対象として抽出されたIPアドレスセットの内、重複しているIPアドレスセットを探索する。IPアドレスセットの重複数は、当該IPアドレスセットに示される通信端末間の通信頻度を表わす。一例として、図8に示されるマージ結果D1には、送信元「IPアドレス1」と送信先「IPアドレス3」とのIPアドレスセットが2つ重複している。このことは、送信元「IPアドレス1」と送信先「IPアドレス3」との間で2回のP2P通信が行なわれたことを意味する。解析部256は、このような通信頻度の算出処理を重複する各IPアドレスセットについて算出する。
また、解析部256は、マージ部255によって生成されたマージ結果D1を解析し、送信元と送信先との組み合わせごとに1回当たりの通信時間を算出する。より具体的には、まず、解析部256は、マージ結果D1に含まれるIPアドレスセットの内、発信時刻が所定期間に含まれるIPアドレスセットを解析対象として抽出する。次に、解析部256は、解析対象として抽出された各IPアドレスセットについて、発信時刻および受信時刻から通信時間を算出する。典型的には、通信時間は、受信時刻から発信時刻を差分することで算出される。その後、解析部256は、重複するIPアドレスセットについて通信時間を合計し、その合計通信時間を通信頻度で除算する。これにより、1回当たりの通信時間が算出される。一例として、図8に示されるマージ結果D1には、送信元「IPアドレス1」と送信先IPアドレス「IPアドレス3」とのIPアドレスセットが2つ重複している。解析部256は、これらの2つのIPアドレスセットについての合計通信時間を通信頻度で除算することで、送信元「IPアドレス1」と送信先IPアドレス「IPアドレス3」との間の1回当たりの通信時間を算出する。解析部256は、このような1回当たりの通信時間をIPアドレスセットの各組み合わせについて算出する。
(D3.住所特定部257)
次に、図9を参照して、図6に示される住所特定部257の機能について説明する。図9は、解析部256による解析結果D2に基づいて、送信元地域および送信先地域を特定する過程を示す図である。
住所特定部257は、解析結果D2に規定される各IPアドレスに基づいて、各IPアドレスが属する送信元地域または送信先地域の住所を特定する。IPアドレスから住所を特定する手段には任意の方法が採用され得る。
ある局面において、IPアドレスから住所を特定するサービスが世の中に存在しており、地域特定部254は、そのサービスを利用することによりIPアドレスに対応する住所を特定する。
他の局面において、住所特定部257は、設置位置が既知の複数のサーバーから目的の通信端末宛て(IPアドレス宛て)にpingを送信する。住所特定部257は、pingに対するRTT(Round Trip Time)に基づいて、各サーバーについて、当該サーバーから目的の通信端末までの距離を推定する。その後、住所特定部257は、各サーバーからの各推定距離に基づいて、目的の通信端末のIPアドレスが属する住所を特定する。
住所特定部257は、各IPアドレスについて特定した住所を解析結果D2に追加し、地域特定結果D3として出力する。これにより、解析結果D2に規定される各送信元IPアドレスについては送信元地域が特定され、解析結果D2に規定される各送信先IPアドレスについては送信先地域が特定される。送信元地域および送信先地域は、住所形式で地域特定結果D3に書き込まれてもよいし、緯度および経度などの座標形式で地域特定結果D3に書き込まれてもよい。
住所特定部257によって生成された地域特定結果D3は、混雑度推定部258に出力される。
<E.混雑度推定部258の機能>
次に、図10〜図12を参照して、図2に示される混雑度推定部258の機能について説明する。図10は、混雑度推定部258の機能構成の一例を示す図である。
図10に示されるように、混雑度推定部258は、機能モジュールとして、配置部259と、混雑度演算部260とを含む。以下では、これらの機能モジュールについて順に説明する。
(E1.配置部259)
まず、図11を参照して、配置部259の機能について説明する。図11は、各IPアドレスをマップデータに配置している様子を示す図である。
図11に示されるように、配置部259は、上述の地域特定部254によって生成された地域特定結果D3と、マップ取得部253によって取得されたマップデータ228との入力を受ける。
マップデータ228は、たとえば、マップ画像229と、地域定義232とを含む。マップ画像229の各画素値は、地表の状態を示す。一例として、マップデータ228の各画素値は、当該画素で特定される場所が海であるか陸であるかなどを示す。また、マップデータ228の各座標は、緯度および経度に関連付けられている。
地域定義232は、マップ画像229に含まれる各地域の範囲を特定するための情報を規定している。一例として、地域定義232において、地域の識別情報(たとえば、地域名や地域ID(Identification)など)ごとに、中心の位置情報および半径が関連付けられている。当該位置情報は、マップ画像229内の座標で表わされていてもよいし、緯度および経度で表わされていてもよい。なお、各地域の範囲は、必ずしも円形で規定される必要はなく、矩形やより複雑な形状で規定されてもよい。
配置部259は、地域特定結果D3に規定される送信元地域の各々をマップ画像229に反映するとともに、地域特定結果D3に規定される送信先地域の各々をマップ画像229に反映する。また、配置部259は、送信元地域と送信先地域との間のP2P通信の繋がりをマップ画像229に反映する。図11には、その結果の一例がマップデータD4として示されている。
図11の例では、マップデータD4において、IPアドレス1〜5の通信端末N1〜N5が示されている。通信端末N1は、地域Aに属し、通信端末N2〜N5のそれぞれとピアツーピアで繋がっている。通信端末N2は、地域Bに属し、通信端末N1,N3,N4のそれぞれとピアツーピアで繋がっている。通信端末N3は、地域Cに属し、通信端末N1,N2のそれぞれとピアツーピアで繋がっている。通信端末N4は、地域Bに属し、通信端末N1,N2のそれぞれとピアツーピアで繋がっている。通信端末N5は、地域Cに属し、通信端末N1,N2のそれぞれとピアツーピアで繋がっている。
(E2.混雑度演算部260)
次に、図12を参照して、図10に示される混雑度演算部260の機能について説明する。図12は、混雑度演算部260による処理を概略的に示す図である。
混雑度演算部260は、地域定義232(図11参照)に規定される各地域間のP2P通信の混雑度を算出する。より具体的には、混雑度演算部260は、地域特定結果D3に基づいて、2つの地域を跨がっている通信端末間の通信頻度や通信時間を統合する。
一例として、地域A−Bを跨がる通信端末N1−N2間においては、通信頻度は「N1」であり、通信時間は「T1」である。また、同地域を跨がる通信端末N1−N4間においては、通信頻度は「N3」であり、通信時間は「T3」である。混雑度演算部260は、通信頻度「N1」,「N3」と、通信時間「T1」,「T3」との少なくとも一方に基づいて、地域A−B間のP2P通信の混雑度を算出する。すなわち、地域A−B間の通信混雑度の算出時には、通信頻度「N1」,「N3」だけが用いられてもよいし、通信時間「T1」,「T3」だけが用いられてもよいし、通信頻度「N1」,「N3」および通信時間「T1」,「T3」の両方が用いられてもよい。
ある局面において、地域A−B間の通信混雑度の算出時において、通信頻度「N1」,「N3」だけが用いられる。この場合、通信頻度「N1」,「N3」の合計または平均が大きいほど、通信混雑度は高くなる。異なる言い方をすれば、通信頻度「N1」,「N3」の合計または平均が小さいほど、通信混雑度は低くなる。このように、通信頻度に着目して通信混雑度が算出される場合には、送信元地域および送信先地域が分かれば十分であるので、上述の通信履歴130において、送信元IPアドレスと送信先IPアドレスとが少なくとも含まれていればよい。
他の局面において、地域A−B間の通信混雑度の算出時において、通信時間「T1」,「T3」だけが用いられる。この場合、通信時間は「T1」,「T3」の合計または平均が大きいほど、通信混雑度は高くなる。異なる言い方をすれば、通信時間は「T1」,「T3」合計または平均が小さいほど、通信混雑度は低くなる。このように、通信時間に着目して通信混雑度が算出される場合には、送信元地域および送信先地域が分かれば十分であるので、上述の通信履歴130において、送信元IPアドレスと送信先IPアドレスとこれらのIPアドレス間の通信時間とが少なくとも含まれていればよい。
混雑度演算部260は、地域A−B間の通信混雑度と同様に、地域A−C間の通信混雑度および地域B−C間の通信混雑度についても算出する。
混雑度演算部260は、地域間を繋ぐ画像オブジェクトで通信混雑度を表わす。図12の例では、地域A−B間においては画像オブジェクトOB1が示されており、地域A−C間においては画像オブジェクトOB2が示されており、地域A−C間においては画像オブジェクトOB3が示されている。画像オブジェクトOB1〜OB3は、通信混雑度に応じた表示態様で表わされる。
一例として、通信混雑度は、矢印の太さで表わされる。より具体的には、通信混雑度が高いほど、矢印は細く表示される。異なる言い方をすれば、通信混雑度が低いほど、矢印は太く表示される。他の例として、通信混雑度が高いほど、矢印は太く表示されてもよく、通信混雑度が低いほど、矢印は細く表示されてもよい。
混雑度演算部260によって算出された各地域間の通信混雑度は、配信情報230としてユーザ端末300に送信される。
好ましくは、混雑度演算部260は、各地域に含まれる通信端末数を算出し、通信端末数の各々を配信情報230としてユーザ端末300にさらに送信する。各地域に含まれる通信端末数は、たとえば、マップデータD4に示される各地域に含まれる通信端末の数をカウントすることで算出される。
<F.ユーザ端末300の表示画面>
ユーザ端末300は、通信解析装置200から受信した配信情報230をディスプレイ306に表示する。以下では、図13を参照して、配信情報230の表示態様について説明する。図13は、配信情報230の表示画面の一例を示す図である。
図13の例では、配信情報230の表示画面の一例として、表示画面350が示されている。表示画面350は、たとえば、上述の表示プログラム322(図5参照)を実行することで表示される。
表示画面350は、通信解析装置200から受信した配信情報230を表わすマップデータ235と、拡大率指定オブジェクト330と、時刻指定オブジェクト335と、IPアドレスリスト340と、通信混雑度リスト360とを表示する。
マップデータ235は、所定の時間間隔(たとえば、10分ごと)に最新の情報にアップデートされる。マップデータ235には、地域間の通信混雑度を示す画像オブジェクトOB4や、地域に含まれる通信端末数の多さを表わす画像オブジェクトOB5が示されている。
通信混雑度を示す画像オブジェクトOB4は、マップデータ235上において各地域間を繋ぐように配置される。図12の例では、画像オブジェクトOB4が矢印で示されている。一例として、通信混雑度が高いほど矢印は細く表示され、混雑度が低いほど矢印は太く表示される。ユーザは、マップデータ235を確認することで、どの地域に属する通信端末100に接続すると通信トラフィックが改善されるのかを容易に把握することができる。
なお、通信混雑度は、必ずしも矢印の太さで表わされる必要はない。ある局面において、通信混雑度は、画像オブジェクトOB4の色で表わされてもよい。より具体的には、通信混雑度が高い場合には画像オブジェクトOB4が赤色で表示され、通信混雑度が低い場合には画像オブジェクトOB4が青色で表示される。
他の局面において、通信混雑度は、画像オブジェクトOB4の濃さで表わされてもよい。より具体的には、通信混雑度が高いほど画像オブジェクトOB4は濃く表示され、通信混雑度が低いほど画像オブジェクトOB4は薄く表示される。
さらに他の局面において、通信混雑度は、数値で示されても良い。この場合、たとえば、通信混雑度を示す数値が地域間を繋ぐ線に対応するように表示される。
画像オブジェクトOB5は、その配置位置に対応する地域の通信端末の多さを表わす。図13の例では、画像オブジェクトOB5は、円オブジェクトによって示されている。当該円オブジェクトは、その配置位置における地域で通信端末が多いほど大きく表示される。異なる言い方をすれば、当該円オブジェクトは、その配置位置における地域で通信端末が少ないほど小さく表示される。このような円オブジェクトを見たユーザは、各地域に属する通信端末数を容易に把握することができる。
なお、各地域に属する通信端末の多さは、必ずしも円オブジェクで表わされる必要はない。ある局面において、通信端末数の多さは、画像オブジェクトOB5の色で表わされてもよい。より具体的には、通信端末数が高い場合には画像オブジェクトOB5が赤色で表示され、通信端末数が低い場合には画像オブジェクトOB5が青色で表示される。
他の局面において、通信端末数の多さは、画像オブジェクトOB5の濃さで表わされてもよい。より具体的には、通信端末数が高いほど画像オブジェクトOB5は濃く表示され、通信端末数が低いほど画像オブジェクトOB5は薄く表示される。
さらに他の局面において、通信端末数の多さは、数値で示されても良い。この場合、たとえば、通信端末数がマップデータ235内の各地域に表示される。
拡大率指定オブジェクト330は、詳細ボタン331と、広域ボタン332と、拡大率指定バー333とを含む。ユーザは、詳細ボタン331を押下すると、マップデータ235が拡大表示され、より狭い範囲の地域間における通信混雑度を詳細に確認することができる。一方で、ユーザは、広域ボタン332を押下すると、マップデータ235が縮小表示され、より広い範囲における地域間の通信混雑度を確認することができる。また、ユーザは、拡大率指定バー333を上下に移動することで任意の拡大率を指定することができる。
好ましくは、複数のマップ拡大率にそれぞれ対応するように上述の地域定義232(図11参照)が準備されており、地域定義232は、マップ拡大率に応じて切り替えられる。これにより、マップデータ235内の各地域の範囲がマップ拡大率に応じて変わり、各地域間の通信混雑度が通信解析装置200において再計算される。ユーザ端末300は、再計算後の通信混雑度を通信解析装置200から配信情報230として受信し、当該配信情報230を表示画面350に再表示する。
時刻指定オブジェクト335は、時刻指定バー336と、再生ボタン337とを含む。ユーザは、時刻指定バー336を左右に移動することで任意の時刻における通信混雑度をマップデータ235に表示させることができる。より具体的には、通信解析装置200の記憶装置220(図4参照)には、上述の混雑度推定部258による各地域間における通信混雑度の推定結果234(図4参照)が時刻情報に対応付けて格納されている。ユーザ端末300は、時刻指定オブジェクト335で指定された時刻情報を通信解析装置200に送信する。通信解析装置200の出力部266(図2参照)は、記憶装置220に格納されている複数の推定結果234の中から、ユーザ端末300によって指定された時刻に対応する推定結果234を選択し、その推定結果234をユーザ端末300に配信する。ユーザ端末300は、通信解析装置200から受信した推定結果234を表示画面350に表示する。これにより、ユーザは、過去の任意のタイミングにおける通信混雑度をマップデータ235上で確認することができる。
また、ユーザが再生ボタン337を押下すると、通信混雑度の推定結果が過去に遡って所定時間前から表示画面350に順次表示される。これにより、ユーザは、各地域における通信混雑度の推移を容易に確認することができる。
IPアドレスリスト340には、通信混雑度が少ないお勧めのIPアドレスがリストで表示される。ユーザ端末300は、IPアドレスリスト340に表示されているIPアドレスの通信端末100を登録することで、P2Pネットワークに流れている情報をいち早く取得することが可能になる。
通信混雑度リスト360上には、各地域間における通信混雑度がリストで表示される。より具体的には、通信混雑度リスト360上には、送信元地域と送信先地域との組み合わせごとに、送信元地域の識別情報(たとえば、地域名)と、送信先地域の識別情報(たとえば、地域名)と、送信元地域および送信先地域の間の通信混雑度とが並べて表示される。通信混雑度リスト360に表示される通信混雑度は、通信混雑度のレベル(たとえば、高レベル、中レベル、低レベル)で表されてもよいし、数値で表わされてもよい。また、通信混雑度リスト360の各行は、通信混雑度に応じて色分けされてもよい。より具体的には、通信混雑度リスト360において通信混雑度が高いことを示す行は赤色で表示され、通信混雑度が低いことを示す行は青色で表示される。
なお、図13の例では、時刻指定バー336によって時刻が分単位で指定可能に構成されているが、指定可能な時刻の単位は分単位に限定されない。たとえば、指定可能な時刻の単位は日単位であってもよいし、月単位であってもよいし、年単位であってもよい。また、時刻は、数値入力によって指定されてもよい。
また、表示画面350は、特定の時間帯における通信混雑度の変化を表示してもよい。当該通信混雑度の変化は、上述の通信混雑度の推定結果234の履歴に基づいて通信解析装置200によって算出される。
<G.フローチャート>
以下では、図14〜図16を参照して、通信端末100、通信解析装置200、およびユーザ端末300の制御構造について順に説明する。
(G1.通信端末100の制御フロー)
まず、図14を参照して、通信端末100の制御構造について説明する。図14は、通信端末100が実行する処理の一部を表わすフローチャートである。
図14に示される処理は、通信端末100の制御装置101(図3参照)が上述の通信監視プログラム122(図3参照)を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、制御装置101は、他の通信端末とのP2P通信を確立するか否かを判断する。一例として、制御装置101は、他の通信端末から通信接続要求を受信したことに基づいて、当該通信端末とのP2P通信の確立処理を開始する。あるいは、制御装置101は、他の通信端末に通信接続要求を送信したことに基づいて、当該通信端末とのP2Pの確立処理を開始する。制御装置101は、他の通信端末とのP2P通信を確立すると判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、制御装置101は、制御をステップS120に切り替える。
ステップS112において、制御装置101は、他の通信端末との通信内容を通信履歴130(図3参照)に書き込む。通信履歴130に書き込まれる内容は、たとえば、送信元のIPアドレスと、送信先のIPアドレスと、送信元のMACアドレスと、送信先のMACアドレスと、通信データの発信時刻と、通信データの受信時刻と、通信データの内容とを含む。
ステップS120において、制御装置101は、通信履歴130の送信タイミングが到来したか否かを判断する。一例として、当該送信タイミングは、所定の周期ごと(たとえば、10分ごと)に到来する。制御装置101は、通信履歴130の送信タイミングが到来したと判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、制御装置101は、制御をステップS130に切り替える。
ステップS122において、制御装置101は、自端末の記憶装置120(図3参照)に格納されている通信履歴130を通信解析装置200に送信する。
ステップS130において、制御装置101は、通信監視プログラム122の実行を終了するか否かを判断する。一例として、制御装置101は、通信解析装置200などの他の装置から実行終了命令を受けたことに基づいて、通信監視プログラム122の実行を終了すると判断する。制御装置101は、通信監視プログラム122の実行を終了すると判断した場合(ステップS130においてYES)、図14に示される処理を終了する。そうでない場合には(ステップS130においてNO)、制御装置101は、制御をステップS110に戻す。
(G2.通信解析装置200の制御フロー)
次に、図15を参照して、通信解析装置200の制御構造について説明する。図15は、通信解析装置200が実行する処理の一部を表わすフローチャートである。
図15に示される処理は、通信解析装置200の制御装置201(図4参照)が上述の通信解析プログラム222(図4参照)を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS210において、制御装置201は、通信混雑度の推定タイミングが到来したか否かを判断する。一例として、当該推定タイミングは、所定の周期ごと(たとえば、10分ごと)に到来する。制御装置101は、通信混雑度の推定タイミングが到来したと判断した場合(ステップS210においてYES)、制御をステップS212に切り替える。そうでない場合には(ステップS210においてNO)、制御装置201は、制御をステップS230に切り替える。
ステップS212において、制御装置201は、上述の履歴取得部250(図2参照)として機能し、通信端末100の各々から通信履歴130を受信する。
ステップS214において、制御装置201は、上述のマップ取得部253(図2参照)として機能し、マップデータ228(図2参照)を取得する。
ステップS216において、制御装置201は、上述の地域特定部254(図2参照)として機能し、ステップS212で取得した複数の通信履歴130に含まれる各IPアドレスセットについて、当該IPアドレスセットに規定される送信元のIPアドレスが属する送信元地域と、当該IPアドレスセットに規定される送信先のIPアドレスが属する送信先地域とを特定する。送信元地域および送信先地域の特定方法については、上記「D.地域特定部254の機能」で説明した通りであるので、その説明については繰り返さない。
ステップS218において、制御装置201は、上述の地域特定部254として機能し、ステップS216で特定された送信元地域と送信先地域との各セットに基づいて、マップデータ228に含まれる各地域間における通信混雑度を推定する。通信混雑度の推定方法については、上記「E.混雑度推定部258の機能」で説明した通りであるので、その説明については繰り返さない。
ステップS220において、制御装置201は、ステップS218での通信混雑度の推定結果234(図4参照)を現時刻に対応付けた上で記憶装置220に格納する。
ステップS230において、制御装置201は、通信混雑度の取得要求をユーザ端末300から受信したか否かを判断する。制御装置201は、通信混雑度の取得要求をユーザ端末300から受信したと判断した場合(ステップS230においてYES)、制御をステップS232に切り替える。そうでない場合には(ステップS230においてNO)、制御装置201は、制御をステップS240に切り替える。
ステップS232において、制御装置201は、上述の出力部266(図2参照)として機能し、記憶装置220に格納されている複数の推定結果234の内、ユーザ端末300によって指定された時刻に対応する推定結果234を、ユーザ端末300に配信する。
ステップS240において、制御装置201は、通信解析プログラム222の実行を終了するか否かを判断する。一例として、制御装置201は、通信解析装置200の管理者から実行終了命令を受けたことに基づいて、通信解析プログラム222の実行を終了すると判断する。制御装置201は、通信解析プログラム222の実行を終了すると判断した場合(ステップS240においてYES)、図15に示される処理を終了する。そうでない場合には(ステップS240においてNO)、制御装置201は、制御をステップS210に戻す。
(G3.ユーザ端末300の制御フロー)
次に、図16を参照して、ユーザ端末300の制御構造について説明する。図16は、ユーザ端末300が実行する処理の一部を表わすフローチャートである。
図16に示される処理は、ユーザ端末300の制御装置301(図5参照)が上述の表示プログラム322(図5参照)を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS310において、制御装置301は、通信混雑度の取得要求を通信解析装置200に送信するか否かを判断する。一例として、当該取得要求は、ユーザが表示プログラム322を実行したタイミング、上述の表示画面350(図13参照)の更新命令を受けたタイミングなどに発せられる。制御装置301は、通信混雑度の取得要求を通信解析装置200に送信すると判断した場合(ステップS310においてYES)、制御をステップS312に切り替える。そうでない場合には(ステップS310においてNO)、制御装置301は、制御をステップS320に切り替える。
ステップS312において、制御装置301は、通信混雑度の取得要求を通信解析装置200に送信する。このとき、制御装置301は、表示画面350の時刻指定オブジェクト335(図13参照)で指定された時刻情報を通信解析装置200に送信する。
ステップS314において、制御装置301は、通信解析装置200から受信した通信混雑度の推定結果234を表示画面350に表示する。表示画面350の詳細については上記「F.ユーザ端末300の表示画面」で説明した通りであるので、その説明については繰り返さない。
ステップS320において、制御装置301は、表示プログラム322の実行を終了するか否かを判断する。一例として、制御装置301は、表示プログラム322の実行終了操作をユーザから受けたことに基づいて、表示プログラム322の実行を終了すると判断する。制御装置301は、表示プログラム322の実行を終了すると判断した場合(ステップS320においてYES)、図16に示される処理を終了する。そうでない場合には(ステップS320においてNO)、制御装置301は、制御をステップS310に戻す。
<H.用途>
上述の通信混雑度の推定処理は、たとえば、仮想通貨の取引、現実の通貨の取引、不動産の取引、物流管理、投票管理など、ブロックチェーンを利用する種々の用途に応用される。以下では、上述の通信混雑度の推定処理を仮想通貨の取引に応用する利点について説明する。
なお、以下で説明する利点は、上述の通信混雑度の推定処理による利点の一例である。当該推定処理の用途は、仮想通貨に限定されない。当該推定処理の用途は、P2P通信を利用する種々の用途に応用され得る。
図17は、仮想通貨に利用されるブロックチェーンBCを示す図である。図17に示されるように、ブロックチェーンBCは、ひと繋ぎの複数のブロックで構成される。各ブロックには、仮想通貨の複数の取引情報など種々の情報が含まれており、ブロックチェーンBCには、取引が開始されてから現在までの全世界の全取引情報が記憶されている。
ブロックチェーンBCは、仮想通貨の取引に参加している全てのノード端末(たとえば、上述の通信端末100やユーザ端末300など)に保持される。これにより、ブロックチェーンBCが一のユーザによって改ざんされたとしても、他の複数のユーザのブロックチェーンBCを基準として改ざんが防止される。このように、仮想通貨の取引データがユーザ同士で管理されることで、サーバーなどの管理端末が必要なくなる。その結果、ユーザは、サーバーを介さずに、他のユーザとのP2P通信により仮想通貨の取引を実現することができる。
ところで、取引情報は、P2Pネットワークに流れただけでは有効なものとは認められない。取引情報は、各ノード端末に保持されるブロックチェーンBCに追加されて初めて有効となる。このような未承認の取引情報は、新規のブロックBn+1に纏められ、POF(Proof of Work)と呼ばれるマイニング処理によって新規のブロックBn+1がブロックチェーンBCに追加される。
POFは、新規のブロックBn+1の追加を多数のノード端末間で競う仕組みである。POFに参加するユーザは、一般的にマイナーと呼ばれる。新規のブロックBn+1を一番に生成したマイナーは、新たに発行される仮想通貨を報酬として受け取ることができる。この報酬を獲得するため、各マイナーは、新規のブロックBn+1をいち早く生成することを目指す。
図18を参照して、マイニング処理について説明する。図18は、マイニング処理を概略的に示す図である。
マイニング処理においては、正解のハッシュ値を探索するために大量のハッシュ計算が行なわれる。より具体的には、マイニング処理を行なうノード端末(以下、「マイニング端末」ともいう。)は、一つ前のブロックBnの生成時に得られた正解のハッシュ値と、未承認の取引情報と、ランダムな数値(以下、「ナンス」ともいう。)とを予め定められたハッシュ関数に入力する。その結果ハッシュ関数から得られる出力値が所定の目標値よりも大きい場合には、マイニング端末は、ハッシュ関数に入力するナンスを変更し、同様のハッシュ計算を再度実行する。このようなハッシュ計算は、ハッシュ関数の出力値が所定の目標値よりも小さくなるまで繰り返される。
ハッシュ関数の出力値が所定の目標値よりも小さくなったナンスを最初に発見したマイニング端末は、正解のナンスと、未承認の取引情報と、一つ前のブロックBnにおけるハッシュ値とをP2Pネットワークに流す。他のマイニング端末は、これらの情報が正しいか否かを確認する。他のマイニング端末から承認が得られれば、これらの情報を含む新たなブロックBn+1がブロックチェーンBCに追加される。そして、正解のナンスを一番に発見したマイナーには、報酬が仮想通貨で支払われる。
正解のナンスをいち早く発見するためには、正解のハッシュ値や取引情報などマイニングに必要な情報をいち早く取得する必要がある。マイニングに必要な情報をいち早く取得するためには、通信混雑度が低い地域に属するマイニング端末とP2P接続しておくことが重要である。また、取引量が多い地域に属するマイニング端末とP2P接続しておくことも重要である。上述の通信混雑度の推定処理により、マイナーは、通信混雑度が低い地域に存在するマイニング端末や、取引量が多い地域に存在するマイニング端末を容易に把握することができる。これらを把握したマイナーは、マイニングに必要な情報をいち早く収集することができ、他のマイナーよりも正解のナンスを早期に発見することが可能になる。
<I.変形例1>
図7に示される通信履歴130は、送信元IPアドレスと、送信先IPアドレスと、通信データの発信時刻と、通信データの受信時刻とを含んでいた。この通信履歴130に規定される送信元IPアドレスおよび送信先IPアドレスは、自端末を基準とするIPアドレスを示す。すなわち、これらのIPアドレスのいずれかは、自端末のIPアドレスを示す。
これに対して、本変形例に従う通信履歴130は、他の通信端末同士の通信情報をさらに含む。より具体的には、当該通信情報は、他の通信端末同士のP2P通信時における、送信元IPアドレスと、送信先IPアドレスとをさらに含む。このような通信履歴130に基づいて通信混雑度が推定されることで、P2Pネットワークの構成や、地域間の通信混雑度がより詳細に解析され得る。
<J.変形例2>
上述の図13では、地域間の通信混雑度が表示画面350のマップデータ235に表示されている例について説明した。これに対して、本変形例においては、P2Pネットワークの構成が表示画面350上のマップデータ235に表示される。すなわち、上述のマップデータD4(図11参照)がそのまま表示画面350に表示されてもよい。このマップデータD4を確認したユーザは、P2Pネットワークの構成を視覚的に確認することができる。
<K.変形例3>
通信解析装置200は、P2Pネットワークの構成に基づいて、マイニングに必要な情報(以下、「お題」ともいう。)の発信元を推定してもよい。
より具体的には、通信解析装置200は、複数の通信端末100から受信した通信履歴130に含まれる各通信内容を参照して、その通信内容がお題の発信を示すものか否かを判断する。そして、通信解析装置200は、お題の発信を示す通信内容についてはお題の受信時刻(以下、「お題受信時刻」ともいう。)を特定する。当該受信時刻については通信履歴130に規定されている。お題到達時刻が早い通信端末は、P2Pネットワーク内においてお題の発信元に近い。反対に、お題到達時刻が遅い通信端末は、P2Pネットワーク内においてお題の発信元から遠い。この点に着目して、通信解析装置200は、P2P通信のネットワーク構成と、各通信端末におけるお題到達時刻とに基づいて、お題の発信元を推定する。お題の発信元が分かれば、マイナーは、マイニングに必要な情報をいち早く収集することができ、他のマイナーよりも正解のナンスを早期に発見することが可能になる。
好ましくは、通信解析装置200は、推定したお題の発信元を記録しておく。通信解析装置200は、記録したお題の発信元の変化に基づいて、次のお題の発信元を推定し、当該推定した発信元を配信情報230としてユーザ端末300に配信する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。