説明

P2Pネットワークにおけるヒルを減少させるための方法および装置

【課題】
P2Pネットワークにおけるヒルを減少させるための方法および装置
【解決手段】
本発明は、データ要求メッセージおよび少なくとも1つの参照情報を要求ノードから受け取るステップを含む。なお、参照情報は、要求ノードが関係したことがある少なくとも1つの以前のデータ転送に関連する。そこで、参照情報は検証され、要求されたデータを要求ノードに提供すべきかどうかがその参照情報に従って決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、総体的にはコンピュータ・ネットワークに関し、詳しくはデータ転送ネットワークにおけるヒル(leech)の減少に関するものである。
【背景技術】
【0002】
図1は、対等(peer-to-peer : P2P)態様で相互作用するノード(例えば、コンピュータ装置)のネットワーク100の概略図である。一般に、要求ノード101は、対等接続を介してその要求ノード101と通信している少なくとも1つの中間ノード111にサーチ・メッセージ105(例えば、要求ノード101が見つけることを望んでいるデータに関するキー・ワードを含む)を送る。中間ノード111はサーチ・メッセージ105を受け取り、しかる後、中間ノード111がその要求されたデータを持っていない場合、サーチ・メッセージ105を少なくとも1つの別のノード111に送る。結局、サーチ・メッセージ105は、その要求されたデータを有する少なくとも1つの応答ノード103に到達する(場合によっては、サーチ・メッセージ105が送られる第1中間ノード111が応答ノード103であることもあろう)。そこで、少なくとも1つの応答ノード103が、例えば中間ノード111を介して要求ノード101に応答メッセージ107を返送する。そこで、要求ノード101は、例えば直接接続ライン109を介して応答ノード103に直接に接続することによって応答ノード103からの関連データを要求し、接続ライン109を介してそのデータをダウンロードする。
【0003】
P2Pネットワークが成功するためには、すべてのノード101、103、111が(例えば、データをアップロードすること及びダウンロードすることによって)データを共用することに関して相対的に同等の態様で参加することが重要である。しかし、いくつものヒル(leeches:即ち、他のノードからデータをダウンロードするが、自身のデータをダウンロードに供することによって報いることのないノード)がネットワークに存在することは珍しいことではない。これらのヒルは、一般に、P2Pネットワークに何の利益をもたらさず、単に、他のユーザを犠牲にしてネットワーク・リソースを消耗させるように働くだけである。閾値量のデータを共用しないユーザにフラッグを立てるというような、ヒルを識別するための方法が知られているが、これらの方法は、共用データのレコードを偽造することまたは偽造データを作成することによって容易に欺かれる。更に、このような方法は、実際に、ヒルがネットワーク・リソースを使用することを防ぐことができない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
従って、この分野には、P2Pネットワークにおけるヒルを減らすための方法および装置に対する要求が存在し、本発明はそれを提供することを目的とする。
【課題を解決するための手段】
【0005】
P2Pネットワークにおけるヒルを減らすための本発明の方法および装置に関する1つの実施例は、要求ノードからデータ要求メッセージおよび少なくとも1つの参照情報(reference)を受け取ることを含む。その参照情報は、その要求ノードが関係した少なくとも1つの以前のデータ転送に関連している。そこで、その参照情報が検証され、要求されたデータを要求ノードに提供すべきかどうかがその参照情報に従って決定される。
【発明を実施するための最良の形態】
【0006】
1つの実施例では、本発明は、P2Pネットワークにおけるヒル(ヒルの数またはヒル動作の量)を減らすための方法および装置を提供する。本発明の実施例は、要求ノード(例えば、データを要求しているノード)が不正な態様で(例えば、他のノードによるダウンロードのためのデータを提供しないことによって)P2Pネットワークに参加しようとしているかどうかを、そのP2Pネットワーク内のノードが決定することを可能にする。ノードは、要求ノードによるダウンロードのための要求されたデータを提供すべきかどうかを、ネットワークにおける要求ノードの参加に関する性質に基づいて決定することが可能である。
【0007】
図2は、図1に示されたネットワーク100のようなP2Pネットワークにおけるヒルを減らすための方法200の一実施例を示す流れ図である。方法200は、例えば、応答ノード103のような応答ノードにおいて実施することが可能である。方法200は、ステップ202において開始され、ステップ204に進む。そこでは、方法200は要求ノードからデータ要求(例えば、応答ノードからデータをダウンロードすることの要求)を受け取る。
【0008】
ステップ206において、方法200は、要求されたデータを要求ノードがダウンロードする前に参照情報を提供する必要があるかどうかを決定する。参照情報は、要求ノードが公正な態様で(例えば、アップロードおよびダウンロードに関して帯域幅を共用することによって)P2Pネットワークに参加しようとしていることを検証することを意図するものである。1つの実施例では、参照情報は、要求ノードがそのネットワークにおける他のノード(以後、「参照ノード」と呼ぶ)と関連して以前に実行したことがある1つまたは複数のデータ転送に関連した情報を含む。例えば、要求ノードによって供給された参照情報は、データを入出力する転送が行われた参照ノードの識別標識および転送されたそのデータに固有の任意のメタ・データを含むことが可能である。1つの実施例では、このメタ・データは、転送されたデータの名前、転送されたデータのタイプ、転送されたデータのサイズ、データ転送の日時、データ転送の期間、およびデータ・ライブラリに対するオフセット番号のような前のデータ転送に関連した任意の情報を含む。
【0009】
従って、ステップ206において、方法200は、要求ノードが公正な態様でP2Pネットワークに参加していたことをそのような参照情報が検証する必要があるかどうかを決定する。1つの実施例では、この決定は、要求ノードが要求しているデータの量に、少なくとも部分的に、基づいて行われる(例えば、要求ノードがx個以上のファイルを要求する場合、参照情報が必要である)。別の実施例では、この決定は、ネットワーク活動の現レベルに、少なくとも部分的に、基づいている。例えば、限定された量(例えば、事前定義された閾値以下)のネットワーク・リソース(例えば、帯域幅)が利用可能であるピーク期間中、または数多くの現在活動中のダウンローダがその事前定義された閾値を越えるピーク期間中、方法200は、参照情報が必要であることを決定することも可能である。別の方法として、現レベルのネットワーク活動が低い(例えば、ネットワーク・リソースの消費または多数の現在活動中のダウンローダが、事前定義された閾値よりも低い)オフ・ピーク期間中、方法200は、要求されたデータ転送でもって直接に、しかも参照情報を要求またはチェックせずに、進行することが可能である。
【0010】
そのような参照情報が必要ないことをステップ206が決定する場合、方法200はステップ220に直接に進み、(例えば、帯域幅の制限および利用可能な対等接続のような他の技術的要件が適合する場合)要求されたデータの転送を開始する。
【0011】
これとは別に、そのような参照情報が必要であることをステップ206が決定する場合、方法200はステップ208に進み、要求ノードがデータ要求内に参照情報を含んでいるかどうかを決定する。或る実施例では、要求ノードは事前定義された数の参照情報(例えば、最後のn個のアンロード)をデータ要求に(またはデータ要求を伴う別のメッセージとして)自動的に含むことが可能である。1つの実施例では、要求ノードは、これらの参照情報を自動的に含むべきときを選択する。例えば、参照情報は送られるデータ要求ごとに含まれてもよく、あるいは閾値サイズを越えるデータを要求するデータ要求にのみ含まれるようにしてもよい。
【0012】
参照情報がデータ要求に含まれてなかったことを方法200がステップ208において決定する場合、方法200はステップ210に進み、要求ノードが参照情報を送ることを要求する。ステップ211において、方法200は要求ノードからその要求された参照情報を受け取る。そこで、方法200は、要求ノードの参照情報に含まれる少なくとも1つの参照ノードに連絡を取る。これとは別に、その参照情報がオリジナルのデータ要求に含まれていたことを方法200がステップ208において決定する場合、方法200はステップ208からステップ212に直接に進む。
【0013】
1つの実施例では、要求ノードが以前のデータ転送に関して提供した情報が正確であることを検証するために、方法200はステップ212において少なくとも1つの参照ノード(例えば、データ転送において要求ノードと関係したものとして或る参照情報で関連付けられたノード)に連絡を取る。1つの実施例では、方法200は、ステップ212において、問題のデータ転送の概要(例えば、その参照情報において提供された詳細事項をすべて含む)を参照ノードに送り、その概要の正確性を表す簡単なイエスまたはノーの返答でもって応答するようにそのノードに要請する。別の方法として、参照ノードはその概要を修正することによって応答することも可能である。例えば、要求ノードは、実際に、参照ノードが要求ノードから4メガバイトしか受け取らなかったとき、要求ノードがその参照ノードに5メガバイトのデータをアンロードしたということを概要において述べることもあり得る。1つの実施例では、概要は、プライバシのために、転送されたデータの内容のような或る情報を省くことも可能である。
【0014】
ステップ214において、要求ノードが公正な態様でP2Pネットワークに参加しようとしていることをその要求ノードがうまく表明したかどうかを、少なくとも1つの参照ノードからの応答に基づいて決定する。1つの実施例では、これは、手動でまたは自動的に行われる。例えば、方法200は、要求ノードが要求されたデータをダウンロードことを可能にすべきか否かを誰が決定するかの情報をユーザに表示することも可能である。別の方法として、方法200は、例えば、要求ノードが関係した多くの検証済みデータ転送、検証済みデータ転送のサイズ、転送されたデータのタイプ、検証済みデータ転送がいつあったか、またはデータ転送の速度に基づいて参照情報の十分な量を決定する自動閾値を具現化することも可能である。これらの判断基準は累積を根拠にして具現化することが可能であり(例えば、いずれか1つまたは複数の参照情報が結合して閾値全体を満たすことが可能であり)あるいはそれらが各参照情報を要求することも可能である(この場合、方法200はこれらの判断基準に適合しなければならない最小数の個々の参照情報を更に指定することも可能である)。更に、これらの判断基準が、指定された有限の量の時間または無限の量の時間にも適用することが可能である。
【0015】
要求ノードが公正な方法でP2Pネットワークに参加しようとしていることをその要求ノードが十分に表明したと方法200が結論する場合、方法200はステップ220に進み、要求されたデータ転送を開始する。これとは別に、要求ノードが公正な方法でP2Pネットワークに参加しようとしていることをその要求ノードが十分には表明しなかったと方法200が結論する場合、方法200はステップ216に進み、その結果、処理が終了すべきかどうかを決定する。1つの実施例では、要求ノードの参照情報が第1レビューの際には十分でない場合、処理が自動的に取消されなければならないことを方法200が指定することが可能である。この場合、方法200はステップ218に進み、要求されたデータ転送を取消す。
【0016】
これとは別に、方法200は、要求ノードの参照情報が第1レビューの際に十分でない場合、その要求ノードが方法200の判断基準に適合しようとする第2の試みにおいて更なる参照情報(例えば、ステップ214において指定されたような)を提示し得ることを指定してもよい。従って、要求ノードの参照情報が不十分であるために処理が自動的に終了してはならないことを方法200がステップ216において決定する場合、方法200はステップ210に戻り、要求ノードからの更なる参照情報を要求する。方法200は、既に与えられた1つまたは複数の参照情報が現在使用可能でない(例えば、オフラインである)場合、方法200は更なる参照情報を要求することを決定してもよい。そこで、方法200はステップ210〜216に関して上述したように振興する。最終的には、方法200はステップ224において終了する。
【0017】
方法200は、要求ノードが公正な態様でP2Pネットワークに参加できなかったヒルであるかどうかを、その要求ノードによりデータを要求されているノードが、容易に決定することを可能にする。以前のデータ転送に関する参照情報を要求ノードが提供するよう要求することによって、要求ノードがネットワークからデータをダウンロードするほかにネットワークにデータを提供しようとしていたことを、ノードは確認することができる。要求ノードが他のノードによるダウンロードのための十分な量のデータを(例えば、要求ノードが他のノードからダウンロードしたデータに比例して)提供しなかったことが決定される場合、ノードは要求されたデータを要求ノードに提供することを断ってもよい。
【0018】
場合によっては、方法200がステップ212〜218を迂回することを選ぶことも可能であることが当業者には明らかであろう。例えば、ピークとオフ・ピークとの間にあるネットワーク使用期間中、方法200が参照情報を求めることもあるが、参照情報を(例えば、「要求ノードのブラフ(bluff)をコールする」ことを試みて)検証することを単に放棄または辞退することもある。別の方法として、要求されたデータの量に基づいた参照情報を必要とする例では、方法200は、要求されたデータの量が第1の事前定義された閾値を越える場合に参照情報を要求することがあるが、要求されたデータの量が第2の事前定義された閾値を越える場合に参照情報を検証することがある。ステップ212〜218を迂回することは、大きいデータの転送履歴をまだ持たない新たなメンバ・ノードがデータを受けることを可能にするであろう。
【0019】
更に、要求ノードが公正な態様でP2Pネットワークに参加しようとしていることをその要求ノードが十分には表明していないということを方法200が結論する場合、方法200が、すべてのデータ転送を取消すのではなく、限定された帯域幅でデータ転送が進行することを可能にすることは当業者には明らかであろう。この場合、方法200は、新たなメンバ・ノードをP2Pネットワークに参加させることができ、高い帯域幅または速い応答時間あるいはその両方を適正な参照情報に提供し得る要求ノードに報いることもできる。
【0020】
図3は、本発明に従ってP2Pネットワークを介してデータを要求するための方法300の一実施例を示す流れ図である。方法300は、例えば、要求されたデータを有するノードを表す応答メッセージを受け取った場合の要求ノードにおいて実施することが可能である。
【0021】
方法300はステップ302において開始され、ステップ304に進む。そこでは、要求されたデータを有する応答ノードにデータ要求が送られる。そこで、方法300はオプショナル・ステップ306(破線で示される)に進み、参照情報を求める要求を応答ノードから受け取る。ステップ306は、実施例によっては、応答ノードがその要求されたデータを提供する条件として参照情報を要求しないことがあるため、オプショナル・ステップとして示される。1つの実施例では、参照情報の要求は、指定された数の参照情報または指定された量のデータが転送されたという証明のような、応答ノードが求めている特定の参照情報に関する判断基準を含む。
【0022】
ステップ308において、方法300は少なくとも1つの参照情報を応答ノードに提供する。1つの実施例では、参照情報に対する要求(例えば、オプショナル・ステップ306において受け取ったような)に応答してその参照情報が提供される。別の実施例では、方法300がその参照情報を自動的に提供してもよい。この実施例では、参照情報がデータ要求において、またはそのデータ要求に伴うまたはそれに後続する個別のメッセージにおいて提供されてもよい。
【0023】
ステップ310において、ステップ308において提供された参照情報が応答ノードによって十分であると見なされるものと仮定すると、方法300は要求されたデータを応答ノードからダウンロードする。しかる後、方法300はステップ312において終了する。
【0024】
図4は、汎用コンピュータ装置400を使用して具現化されるヒル検出方法の高レベル・ブロック図である。1つの実施例では、汎用コンピュータ装置400は、プロセッサ402、メモリ404、ヒル検出モジュール405、およびディスプレイ、キーボード、マウス、モデム等のような種々の入出力(I/O)装置406を含む。1つの実施例では、少なくとも1つのI/O装置は記憶装置(例えば、ディスク・ドライブ、光ディスク・ドライブ、フロッピ・ディスク・ドライブ)である。ヒル検出モジュール405が、通信チャネルを介して1つのプロセッサに結合される物理装置またはサブシステムとして具現化することも可能であることは明らかであろう。
【0025】
別の方法として、ヒル検出モジュール405は、1つまたは複数のソフトウェア・アプリケーションによって(または、ソフトウェアおよびハードウェアの組合せ、例えば、アプリケーション固有集積回路(ASIC)を使用して)表すことも可能である。その場合、そのソフトウェアは、記憶媒体(例えば、I/O装置406)からロードされ、汎用コンピュータ装置400のメモリ404においてプロセッサ402により操作される。従って、1つの実施例では、図面を参照して説明したP2Pネットワークにおけるヒルを検出するためのヒル検出モジュール405が、コンピュータ可読媒体または搬送体(例えば、RAM、磁気または光ディスク・ドライブ、あるいはディスケット等)に記憶されることも可能である。
【0026】
従って、本発明は、データ転送ネットワークの分野において大きな利点を表す。データを要求するノードがヒルである可能性があるかどうかを、例えば、その要求ノードが関係した従前のデータ転送を検証する参照情報を提供するようその要求ノードに求めることによって、P2Pネットワークにおけるノードが決定することを可能にする方法および装置が提供される。そこで、ノードは、要求ノードのデータ転送履歴の査定に基づいて、その要求されたデータを要求ノードによるダウンロードのために提供すべきかどうかを決定することが可能である。この方法で、ノードは、公平な態様ではネットワークに参加することができないノードによって消費されるネットワーク・リソースの量を減少させることが可能である。
【0027】
以上は本発明の好適な実施例に関連するものであるが、本発明の基本的な範囲から逸脱することなく、本発明の他のまたは更なる実施例が考えられるし、本発明の範囲は「特許請求の範囲」の記載によって決定されるべきものである。
【図面の簡単な説明】
【0028】
【図1】対等態様で相互作用するノードのネットワークの概略図である。
【図2】図1に示されたネットワークのようなP2Pネットワークにおけるヒルを減少させるための方法の一実施例を示す流れ図である。
【図3】本発明に従ってP2Pネットワークを介してデータを要求するための方法の一実施例を示す流れ図である。
【図4】汎用コンピュータ・システムを使用して具現化されるヒル検出方法の高レベルのブロック図である。

【特許請求の範囲】
【請求項1】
ネットワークにおける第1ノードから第2ノードにデータを転送するための方法であって、
前記第1ノードに存在するデータを要求するデータ要求メッセージを前記第2ノードから受け取るステップと、
前記第2ノードが関係した少なくとも1つの以前のデータ転送に関連する少なくとも1つの参照情報を検証するステップと、
要求されたデータを前記第2ノードに提供すべきかどうかを、前記少なくとも1つの参照情報に従って決定するステップと、
を含む方法。
【請求項2】
前記少なくとも1つの参照情報が、前記少なくとも1つの以前のデータ転送においてデータが転送された参照ノードの識別標識、前記少なくとも1つの以前のデータ転送において転送されたデータのタイプ、前記少なくとも1つの以前のデータ転送の日付、前記少なくとも1つの以前のデータ転送の時間、前記少なくとも1つの以前のデータ転送の期間、前記少なくとも1つの以前のデータ転送おいて転送されたデータの名前、およびデータ・ライブラリに対するオフセット番号、の少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記検証するステップが前記少なくとも1つの参照情報の正確性を検証するために前記参照ノードに連絡を取るステップを含む、請求項2に記載の方法。
【請求項4】
前記連絡を取るステップが、
前記少なくとも1つの参照情報の少なくとも一部分を前記参照ノードに送るステップと、
前記少なくとも1つの参照情報の前記正確性を表すフィードバックを前記参照ノードから受け取るステップと、
を含む、請求項3に記載の方法。
【請求項5】
前記フィードバックが、前記少なくとも1つの参照情報の前記少なくとも一部分が正確であるかまたは正確でないかを表すイエスまたはノーの返答を含む、請求項4に記載の方法。
【請求項6】
前記フィードバックが前記少なくとも1つの参照情報の前記少なくとも一部分に対する修正を含む、請求項4に記載の方法。
【請求項7】
前記少なくとも1つの参照情報が前記データ要求メッセージと共に受け取られる、請求項1に記載の方法。
【請求項8】
前記少なくとも1つの参照情報が前記第2ノードに送られた参照情報要求に応答して受け取られる、請求項1に記載の方法。
【請求項9】
前記決定するステップが、前記少なくとも1つの参照情報に基づいて、前記第2ノードが前記ネットワークに公正な態様で参加したかどうかに関して結論を下すステップと、
前記第2ノードが前記ネットワークに公正な態様で参加したものと見なされる場合だけ前記要求されたデータを前記第2ノードに提供するステップと、
を含む、請求項1に記載の方法。
【請求項10】
前記提供するステップが、前記第2ノードが前記ネットワークに公正な態様で参加したことを前記第2ノードが表明し得ない場合、前記要求されたデータを前記第2ノードに提供するための帯域幅を限定するステップを更に含む、請求項9に記載の方法。
【請求項11】
前記第2ノードが少なくとも1つの以前のデータ転送による閾値に適合する場合、前記ネットワークに公正な態様で参加している、請求項9に記載の方法。
【請求項12】
前記閾値が、前記第2ノードからデータを転送された他のノードの最小数、指定時間内に前記第2ノードからデータを転送された他のノードの最小数、前記第2ノードによって転送されたデータの最小サイズ、指定時間内に前記第2ノードによって転送されたデータの最小サイズ、前記第2ノードによって転送されたデータのタイプ、前記少なくとも1つの以前のデータ転送が生じた最新の時期、および前記少なくとも1つの以前のデータ転送が実行された速度、のうちの少なくとも1つを含む判断基準に基づいている、請求項9に記載の方法。
【請求項13】
前記判断基準が前記少なくとも1つの参照情報の各々に適用される、請求項12に記載の方法。
【請求項14】
前記判断基準が参照情報の累積数に適用される、請求項12に記載の方法。
【請求項15】
前記決定するステップが、
前記少なくとも1つの参照情報に基づいて、前記第2ノードが前記ネットワークにとって新しいという結論を下すステップと、
前記要求されたデータの少なくとも一部分を前記第2ノードに提供するステップと、
を含む、請求項1に記載の方法。
【請求項16】
前記提供するステップが、前記要求されたデータを前記第2ノードに提供する帯域幅の量を限定するステップを含む、請求項15に記載の方法。
【請求項17】
ネットワークにおける第1ノードから第2ノードにデータを転送するための実行可能なプログラムを含むコンピュータ可読媒体であって、前記プログラムは、
前記第1ノードに存在するデータを要求するデータ要求メッセージを前記第2ノードから受け取るステップと、
前記第2ノードが関係したことがある少なくとも1つの以前のデータ転送に関連する少なくとも1つの参照情報を検証するステップと、
要求されたデータを前記第2ノードに提供すべきかどうかを、前記少なくとも1つの参照情報に従って決定するステップと、
をコンピュータに実行させるためのプログラムを含むコンピュータ可読媒体。
【請求項18】
前記少なくとも1つの参照情報が、前記少なくとも1つの以前のデータ転送においてデータが転送された参照ノードの識別標識、前記少なくとも1つの以前のデータ転送において転送されたデータのタイプ、前記少なくとも1つの以前のデータ転送の日付、前記少なくとも1つの以前のデータ転送の時間、前記少なくとも1つの以前のデータ転送の期間、前記少なくとも1つの以前のデータ転送おいて転送されたデータの名前、およびデータ・ライブラリに対するオフセット番号、の少なくとも1つを含む、請求項17に記載のプログラムを含むコンピュータ可読媒体。
【請求項19】
前記決定するステップが、前記少なくとも1つの参照情報に基づいて、前記第2ノードが前記ネットワークに公正な態様で参加したかどうかに関して結論を下すステップと、
前記第2ノードが前記ネットワークに公正な態様で参加したものと見なされる場合だけ前記要求されたデータを前記第2ノードに提供するステップと、
を含む、請求項17に記載のプログラムを含むコンピュータ可読媒体。
【請求項20】
前記第1ノードに存在するデータを要求するデータ要求メッセージを前記第2ノードから受け取るための手段と、
前記第2ノードが関係した少なくとも1つの以前のデータ転送に関連する少なくとも1つの参照情報を検証するための手段と、
要求されたデータを前記第2ノードに提供すべきかどうかを、前記少なくとも1つの参照情報に従って決定するための手段と、
を含む装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2006−216049(P2006−216049A)
【公開日】平成18年8月17日(2006.8.17)
【国際特許分類】
【出願番号】特願2006−25592(P2006−25592)
【出願日】平成18年2月2日(2006.2.2)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】