JP3944168B2 - ネットワーク環境におけるピアツーピア通信のための方法およびシステム - Google Patents

ネットワーク環境におけるピアツーピア通信のための方法およびシステム Download PDF

Info

Publication number
JP3944168B2
JP3944168B2 JP2003559109A JP2003559109A JP3944168B2 JP 3944168 B2 JP3944168 B2 JP 3944168B2 JP 2003559109 A JP2003559109 A JP 2003559109A JP 2003559109 A JP2003559109 A JP 2003559109A JP 3944168 B2 JP3944168 B2 JP 3944168B2
Authority
JP
Japan
Prior art keywords
peer
target device
peer node
node
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003559109A
Other languages
English (en)
Other versions
JP2005514867A (ja
Inventor
ベッカー、クレイグ
コナー、マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005514867A publication Critical patent/JP2005514867A/ja
Application granted granted Critical
Publication of JP3944168B2 publication Critical patent/JP3944168B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、ネットワーク環境内の2つ以上の「ピア」ターゲット装置の間で通信を行う方法に関する。より詳細には、本発明は、ネットワーク環境内にある、ファイルや探索コマンドなどの情報を伝達し分散する方法に関する。
ネットワーク環境内の1つまたは複数のターゲット装置に、ファイルや探索コマンドなどの情報を分散する現在の手法においては、複数のターゲット装置に情報を伝達するのに、1つまたは複数のセントラル・サーバを用いることができる。
このような集中型システムは、いくつかの問題点を提示している。たとえば、セントラル・サーバに対する悪影響は、サーバと通信するすべてのターゲット装置に影響を及ぼす。
情報を分散する他の手法では、「ピアツーピア」な分散手段、すなわち、2つ以上のターゲット装置が互いに直接通信することができるシステムが用いられる。しかし、「ピアツーピア」な分散型の探索およびファイル共有の現在のプロトコルは、ある問題点を提示している。
たとえば、ナップスターの「ピアツーピア」プロトコルを用いると、共有されるファイルは、サーバを通過することなく、各ターゲット装置上にとどまる。しかし、ナップスターは、それでも、特定のファイルを探索しクライアント間の直接転送を開始する能力を提供するためにサーバを使う。したがって、ナップスターのプロトコルは、上述したサーバに関する問題点のいくつかに直面する場合がある。さらに、ナップスターのプロトコルは、ネットワークの輻輳、およびターゲット装置がネットワークを出入りする度に絶えず変化する探索結果のような、ピアツーピア・プロトコルに関する問題に直面する場合がある。ナップスターのプロトコルは、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
これに対して、グヌーテラのプロトコルでは、共有されるファイルは、各ターゲット装置上にとどまる。さらに、特定のファイルを探索する能力も、各ターゲット装置上で利用可能である。したがって、各ターゲット装置は、クライアントおよびサーバ両方として働くことができる。しかし、グヌーテラのプロトコルを使用する発信側ターゲット装置から探索が行われると、この発信側ターゲット装置で受信される探索結果は、発信側ターゲット装置に応答する他のターゲット装置がネットワークを出入りする度に、一秒ごとに変わり得る。さらに、あるターゲット装置が発信側ターゲット装置への応答を有している場合、その結果は、元の要求を転送した介在ターゲット装置を介して、発信側ターゲット装置に中継される。探索がグヌーテラ・ネットワーク全体に及ぶと、発信側ターゲット装置から、所望のファイルを有する別のターゲット装置への経路は、より長く、より複雑になり得る。したがって、探索結果は遅れる場合があり、発信側ターゲット装置に到着する前に古いものになってしまう場合もある。発信装置から離れているターゲット装置からの探索結果の転送は、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
XP008000376「トードノードを用いたP2Pリープ(Make the
P2P leap with toadnode)」、ウェブ・テクニック(Web Techniques)、ミラー・フリーマン(Miller Freeman)、米国(Us)(2000年12月)、5(12)、44〜49頁には、コンピュータが、ネットワーク上の他のコンピュータを発見するための方法が開示されている。この方法では、コンピュータが、接続されているコンピュータすべてにpingメッセージを送り、こうしたコンピュータは次いで、接続されているコンピュータにメッセージを転送する、などのことを行う。pingメッセージを受信するすべてのコンピュータは、pongメッセージを用いて返信を行い、このpongメッセージは、元のコンピュータに転送される。この技術に伴う問題は、元のコンピュータが、ネットワーク内のすべてのコンピュータからpongメッセージを受信し、そうすることによって、ネットワークに多大な負荷がかかることである。
XP008000376「トードノードを用いたP2Pリープ(Makethe P2P leap with toadnode)」、ウェブ・テクニック(Web Techniques)、ミラー・フリーマン(Miller Freeman)、米国(Us)(2000年12月)、5(12)、44〜49頁
したがって、より効率的であるとともに、ネットワークおよびプロセッサのオーバーヘッドを削減し処理能力を向上させる、複数のターゲット装置の間の情報伝達方法を提供することが望ましいであろう。
本発明の一態様は、ネットワーク環境における複数のピア・ノードの間で通信を行う方法を提供する。発見コマンドが、現在のピア・ノードから、少なくとも1つの隣接ピア・ノードに伝達され、この隣接ピア・ノードは、現在のピア・ノードと通信する。ピア・ノードの集合リストが、現在のピア・ノードで受信され、ピア・ノードの集合リストは、少なくとも1つの隣接ノードと通信する少なくとも1つのピア・ノードについての情報を含む。
発見コマンドは、所定の遅延が経過した後で、現在のピア・ノードから伝達することができる。発見コマンドは、所定の数の隣接ピア・ノードに伝達することができる。ピア・テーブルは、現在のピア・ノードにおいて作成し、ピア・ノードの集合リストを用いて更新することができる。起点ピア・ノードからの第2の発見コマンドは、現在のピア・ノードで受信することができ、ピア・テーブルは、第2の発見コマンドに応答して、起点ピア・ノードに伝達することができる。一義的な記述子を有するデータ・メッセージを、現在のピア・ノードで受信することができ、このデータ・メッセージは、一義的な記述子を有する。記述子は、記述子テーブルと比較することができ、この記述子テーブルは、複数のデータ・メッセージおよび関連づけられた記述子を含む。記述子テーブルは、受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて更新することができる。照会コマンドを、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。応答データは、少なくとも1つの他のピア・ノードから、現在のピア・ノードで直接受信することができ、この少なくとも1つの他のピア・ノードは、少なくとも1つの隣接ノードと通信する。起点ピア・ノードからの照会コマンドは、現在のピア・ノードで受信することができ、応答データは、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接伝達することができる。照会コマンドは、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うためのコンピュータ・プログラム製品を、コンピュータ使用可能媒体で提供する。このプログラムは、現在のピア・ノードから、少なくとも1つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは、現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも1つの隣接ノードと通信する少なくとも1つのピア・ノードについての情報を含む。
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うシステムを提供する。このシステムは、現在のピア・ノードから、少なくとも1つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも1つの隣接ノードと通信する少なくとも1つのピア・ノードについての情報を含む。
本発明の一実施形態において、本発明のプログラムおよびシステムは、所定の遅延が経過した後で、現在のピア・ノードから発見コマンドを伝達する手段をさらに含むことができる。所定の数の隣接ピア・ノードに発見コマンドを伝達する手段は、本発明によって提供することができ、現在のピア・ノードにおいてピア・テーブルを作成する手段、およびピア・ノードの集合リストを用いてピア・テーブルを更新する手段も同様に提供することができる。さらに、本発明のプログラムおよびシステムはまた、現在のピア・ノードにおいて、起点ピア・ノードから第2の発見コマンドを受信する手段と、第2の発見コマンドに応答して、現在のピア・ノードから起点ピア・ノードにピア・テーブルを直接伝達し、現在のピア・ノードでデータ・メッセージを受信する手段であって、このデータ・メッセージが一義的な記述子を有する手段と、受信したデータ・メッセージの記述子を記述子テーブルと比較する手段であって、この記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む手段とを備えることができる。受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて記述子テーブルを更新する手段は、本発明によって提供することができる。本発明のプログラムおよびシステムは、現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを伝達する手段を含むことができる。さらに、本プログラムおよびシステムは、現在のピア・ノードにおいて、少なくとも1つの他のピア・ノードから直接、応答データを受信する手段であって、この少なくとも1つの他のピア・ノードが、少なくとも1つの隣接ノードと通信する手段、ならびに、現在のピア・ノードにおいて、起点ピア・ノードからの照会コマンドを受信する手段と、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接、応答データを伝達する手段とを備えることができる。現在のピア・ノードから所定の数の隣接ピア・ノードに照会コマンドを転送する手段も、本発明のプログラムおよびシステムによって提供することができる。
以下において、本発明を、添付の図面に示す本発明の好ましい実施形態を参照して、例示の目的でのみ説明する。
図1において、本発明の実施形態によるデータ処理システムのネットワークの概略表示を100に示す。ネットワーク・データ処理システム100は、本発明の実施形態を実装することができる、コンピュータからなるネットワークでよい。ネットワーク・データ処理システム100は、ネットワークを含むことができる。ネットワーク102は、ネットワーク・データ処理システム100において互いに接続されまたは通信するコンピュータなど様々な装置の間の通信リンクを提供するのに用いられる、適切などのような媒体でもよい。たとえば、ネットワーク102は、有線接続、無線通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。
図1に示す実施形態において、ターゲット装置112、114、116、118、122、124、126、128、136、138は、ネットワーク102と通信することができる。こうしたターゲット装置は、たとえば、パーソナル・コンピュータでもネットワーク・コンピュータでもよい。ターゲット装置112、114、116、118、122、124、126、128、136、138の1つまたは複数は、さらに後で説明するように、ピア・ターゲット装置として働くことができる。ターゲット装置112、114、116、118、122、124、126、128、136、138は、さらに後で説明するように、1つまたは複数のピア・ターゲット装置に対するピア・ノードとしても働くことができる。ネットワーク・データ処理システム100は、図示していない追加のサーバ、クライアント、ターゲット装置、および他の装置を含むことができる。
1つまたは複数の記憶装置、たとえば記憶装置103、105も、ネットワーク102と通信することができる。記憶装置103、105は、ブート・ファイル、オペレーティング・システムの画像、アプリケーション・ファイル、およびアプリケーションなどのデータを格納することができ、こうしたデータは、1つまたは複数のターゲット装置112、114、116、118、122、124、126、128、136、138によって処理し、または伝えることができる。記憶装置103、105は、ネットワーク102に対して利用可能とされ、もしくはそれによって処理されるデータ、または後で説明するように、ネットワーク102と通信する他の構成要素に対して利用可能とされるデータ、あるいはその両方であるデータを格納することもできる。本発明のいくつかの実施形態では、記憶装置103、105は、ターゲット装置112、114、116、118、122、124、126、128、136、138に対するピアとしても働くことができ、さらに後で詳述するように、記述子、メッセージまたは応答データあるいはそのすべてを提供する。
図1に示すように、ネットワーク・データ処理システム100は、データを処理する、適切などのようなシステムでもよい。たとえば、システム100はインターネットでよい。あるいは、ネットワーク・データ処理システム100は、たとえば、イントラネット、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)など、適切などのようなタイプのネットワークでもよい。本発明の一実施形態において、ネットワーク102は、TCP/IPプロトコル・スイートなどを使用して互いに通信するネットワークおよびゲートウェイの世界規模の集合体を表す。主ノードすなわちホスト・コンピュータの間の高速データ通信線の幹線により、データおよびメッセージを中継する、数千もの商用、行政、教育用、および他のコンピュータ・システムの間の通信が可能になる。
本発明の一実施形態において、ネットワーク・データ処理システムは、ピアツーピアの非集中型システムである。このようなシステム100では、ターゲット装置112、114、116、118、122、124、126、128、136、138はそれぞれ、サーバとして働くことができ、クライアントとしても働くことができる。したがって、ターゲット装置112、114、116、118、122、124、126、128、136、138は、クライアントに通常関連づけられたタスクを実施し、サーバに通常関連づけられたタスクも実施することができる。本発明のいくつかの実施形態では、ターゲット装置112、114、116、118、122、124、126、128、136、138は、クライアント側インターフェースを提供することができ、このインターフェースを介して、ユーザは、クライアント関連タスク、たとえば照会の発行および探索結果の閲覧を実施することができる。同時に、ターゲット装置112、114、116、118、122、124、126、128、136、138はそれぞれ、サーバ関連タスク、たとえば他のターゲット装置からの照会の受諾、要求されたデータの、それ自体のデータ・セットとの一致の検査、および他のターゲット装置への、照会結果を伴う応答も提供することができる。分散型システム100は、故障に対する耐性が高い。というのは、システム100の動作は、ターゲット装置の部分集合またはノードがオフラインになった場合に中断されないからである。たとえば、区域117は、システム100のターゲット装置の1つの部分集合(ターゲット装置112、114、116、118、128、136、138を含む)を強調表示している。これに対して、区域127は、システム100のターゲット装置の第2の部分集合(ターゲット装置122、124、126を含む)を示す。分散型システム100において、区域117の部分集合がオフラインになった場合、システム100の動作、ネットワーク102の動作、または区域127すなわちターゲット装置122、124、126の動作を必ずしも中断することにはならない。反対に、区域127の部分集合がオフラインになった場合、システム100の動作、ネットワーク102の動作、または区域117すなわちターゲット装置112、114、116、118、128、136、138の動作を必ずしも中断することにはならない。
図2および3は、本発明の実施形態に従って用いることができるデータ処理システムのブロック図である。本発明の一実施形態において、所与のターゲット装置112、114、116、118、122、124、126、128、136、138は、図2および3で説明する構成要素の1つまたは複数のどの組合せも組み込むデータ処理システムでよい。
図2のブロック図において、本発明の実施形態によるデータ処理システムを200に示す。本発明の一実施形態において、データ処理システム200は、図1に示すターゲット装置112、114、116、118、122、124、126、128、136、138の1つまたは複数として実装することができる。あるいは、所与のターゲット装置112、114、116、118、122、124、126、128、136、138は、図2で説明する構成要素の1つまたは複数を組み込むことができる。
データ処理システム200は、システム・バス206に接続された複数のプロセッサ202および204を含む、対称型マルチプロセッサ(SMP)システムでよい。あるいは、単一プロセッサ・システムを使用してもよい。メモリ・コントローラ/キャッシュ208も、システム・バス206に接続することができる。メモリ・コントローラ/キャッシュ208は、ローカル・メモリ209へのインターフェースを提供する。I/Oバス・ブリッジ210も、システム・バス206に接続することができ、I/Oバス212へのインターフェースを提供することができる。メモリ・コントローラ/キャッシュ208およびI/Oバス・ブリッジ210は、図に示すように統合することもでき、別個の構成要素でもよい。
I/Oバス212に接続された、PCI(周辺装置相互接続)バス・ブリッジ214は、PCIローカル・バス216へのインターフェースを提供することができる。1つまたは複数のモデムをPCIバス216に接続することができる。一般的なPCIバスの実装は、4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。モデム218およびネットワーク220は、PCIローカル・バス216に接続することができる。この接続は、アドイン・ボードを介することができる。本発明の一実施形態において、モデム218およびそれに伴う接続は、ネットワーク・コンピュータなどのターゲット装置への通信リンクを提供する。たとえば、このようなターゲット装置は、図1で上述したものでよい。
追加のPCIバス・ブリッジ222および224は、追加のPCIバス226および228のためのインターフェースを提供することができる。PCIバス226および228から、追加のモデムまたはネットワーク・アダプタをサポートすることができる。たとえば、本発明の一実施形態において、PCIバス226、228は、遠隔ローディング特徴、たとえばRPL特徴がインストールされたネットワーク・アダプタをサポートすることができる。このようにして、データ処理システム200は、複数のネットワーク・コンピュータへの接続を可能にすることができる。メモリ・マップ式のグラフィクス・アダプタ230およびハード・ディスク232も、図に示すように、直接または間接的にI/Oバス212に接続することができる。
図2に示す構成要素は、図示したように配列することも、データ処理システム200が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。さらに、図示した構成要素に加えて、またはその代わりに、他の周辺装置、たとえば光ディスク・ドライブなどを使用してもよい。
本発明の一実施形態において、データ処理システム200は、システム200が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば1つまたは複数のターゲット装置の間でデータを伝達するのに使われる1組のデータ・メッセージ、および1つまたは複数のターゲット装置の間のメッセージの交換を管理する1組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
図3のブロック図において、本発明の実施形態によるデータ処理システムを300に示す。本発明の一実施形態において、データ処理システム300は、図1に示すターゲット装置112、114、116、118、122、124、126、128、136、138の1つまたは複数として実装することができる。あるいは、所与のターゲット装置112、114、116、118、122、124、126、128、136、138は、図3で説明する構成要素の1つまたは複数を組み込むことができる。
本発明の一実施形態において、データ処理システム300はターゲット装置であり、この装置では、ディスク・ドライブが任意選択的である。あるいは、データ処理システム300は、ネットワーク通信インターフェースに依拠せずにブート可能なように構成された、独立型のシステムでもよい。あるいは、データ処理システム300は、1つまたは複数のネットワーク通信インターフェースを備えることもできる。データ処理システム300は、携帯情報端末(PDA)装置でもよい。データ処理システムは、ノート型コンピュータまたはハンドヘルド・コンピュータの形をとることもできる。あるいは、データ処理システム300は、キオスクでも、ウェブ機器でもよい。本発明の実施形態の処理は、マルチプロセッサ・データ処理システムにも適用することができる。
データ処理システム300は、PCI(周辺装置相互接続)ローカル・バス・アーキテクチャを利用することができる。図示した例ではPCIバスを利用しているが、AGP(アクセラレイテッド・グラフィックス・ポート)およびISA(業界標準アーキテクチャ)など、他のバス・アーキテクチャを使用することもできる。プロセッサ302およびメイン・メモリ304は、PCIブリッジ308を介してPCIローカル・バス306に接続することができる。PCIブリッジ308はまた、プロセッサ302用の統合メモリ・コントローラおよびキャッシュ・メモリを含むこともできる。PCIローカル・バス306への追加接続は、直接的な構成要素相互接続を介して、またはアドイン・ボードを介して行うことができる。本発明の一実施形態では、ローカル・エリア・ネットワーク(LAN)アダプタ310、SCSIホスト・バス・アダプタ312、および拡張バス・インターフェース314が、直接的な構成要素接続によってPCIローカル・バス306に接続される。対照的に、音声アダプタ316、グラフィックス・アダプタ318、および音声/映像アダプタ319は、拡張スロットに挿入されたアドイン・ボードによってPCIローカル・バス306に接続される。拡張バス・インターフェース314は、たとえばキーボードおよびマウス・アダプタ320、モデム322、ならびに追加メモリ324など追加構成要素用の接続を提供することができる。SCSI(小型コンピュータ・システム・インタフェース)ホスト・バス・アダプタ312は、たとえばハード・ディスク・ドライブ326、テープ・ドライブ328、およびCD−ROMドライブ330、またはDVD332など追加構成要素用の接続を提供することができる。PCIローカル・バス306は、適切などのようなローカル・バス実装形態でもよい。一般的なPCIローカル・バスの実装は、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。
ファイル、ならびにオペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションまたはプログラム用のオペレーティング・ファイルなどのファイルに対する命令は、たとえば、ハード・ディスク・ドライブ326などの記憶装置に置くことができる。こうしたオペレーティング・システム、アプリケーションまたはプログラムあるいはそのすべては、プロセッサ302による実行のためにメイン・メモリ304にロードすることができる。
図3に示すシステム300の構成要素は、図示したように配列することも、データ処理システム300が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。図示した構成要素に加えて、またはその代わりに、他の内部ハードウェアまたは周辺装置、たとえばフラッシュROM(または等価な不揮発性メモリ)あるいは光ディスク・ドライブなどを使用してもよい。たとえば、データ処理システム300の一実施形態は、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性メモリを提供するために、ROMまたはフラッシュROMあるいはその両方を有して構成することができる。データ処理システム300の別の実施形態は、遠隔ローディング・プログラムまたはRPL特徴などの特徴あるいはその両方の関数を送信しまたは受信するのに適したネットワーク・アダプタを含むことができる。
本発明の一実施形態において、データ処理システム300は、システム300が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば1つまたは複数のターゲット装置の間でデータの伝達に使われる1組のデータ・メッセージ、および1つまたは複数のターゲット装置の間のメッセージの交換を管理する1組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
図4において、本発明による複数のターゲット装置の間で通信を行う方法の一実施形態を400に示す。図4に示す方法は、ネットワークを介した分散探索およびファイル共有を可能にする、適切などのようなピアツーピア・プロトコルを用いて実装することもできる。
適切などのような移送機構も、たとえばHTTP over TCPを用いて、ターゲット装置またはノードの間の通信を達成するのに使うことができる。あるいは、バイト・レベルの移送を使うこともできる。あるいは、UDPを使うこともできる。あるいは、HTTP/SOAP(シンプル・オブジェクト・アクセス・プロトコル)を使うこともできる。SOAPは、COM、アップル・イベントおよびCORBAなど、有名な接続技術用の単純なXML-over-HTTPラッパーである。SOAP用の移送機構はHTTPであり、SOAPにおけるコールは、XMLを使って指定される。
本発明の一実施形態において、移送機構は、適切なピアツーピア・プロトコルに従ってターゲット装置の間の通信を達成する。このピアツーピア・プロトコルは、たとえば、1つまたは複数のターゲット装置の間のデータの伝送に使われる1組のデータ・メッセージ、および1つまたは複数のターゲット装置の間のメッセージ交換を管理する1組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
たとえば、本発明の一実施形態において、1つまたは複数のデータ・メッセージを、1つまたは複数のターゲット装置の間で送ることができる。こうしたデータ・メッセージは、あるターゲット装置から別のターゲット装置に伝達される、照会またはコマンドへの応答など、適切などのようなデータも含むことができる。こうしたデータ・メッセージは、たとえば、8バイト列、16バイト列、32バイト列、または適切などのようなサイズのデータ列の形の情報でもよい。データ・メッセージは、たとえば、発見(本明細書では「ping」で示す)データ・メッセージ、識別(本明細書では「pong」で示す)データ・メッセージ、照会データ・メッセージ、および照会応答データ・メッセージの形をとることができる。データ・メッセージは、たとえば、当該分野において公知であるタイムアウト遅延および存続時間カウンタなどの規則によって管理することができる。
本発明の実施形態によると、データ・メッセージは、記述子IDを含むことができる。本発明の一実施形態において、記述子IDは、ネットワーク102またはシステム100あるいはその両方において分散されるある特定のデータ・メッセージを一義的に識別する16バイト列でよい。たとえば、32バイト列の大きさのデータ・メッセージは、ネットワークを介して送られる他のすべてのデータ・メッセージと一義的に区別するための、16バイト列の大きさの記述子IDを含むことができる。したがって、あるメッセージがある特定のターゲット装置に複数回届く場合、ターゲット装置は、メッセージの記述子IDからそのメッセージを認識することができる。
上に示したように、データ・メッセージは、発見メッセージ(本明細書では「ping」メッセージとして示す)でよい。このpingメッセージは、1つまたは複数のターゲット装置112、114、116、118、112、124、126、128、136、138によって使われて、pingメッセージがネットワーク102またはシステム100あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、1つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置114は、ターゲット装置112、116、118にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置112、116および118に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト(ピア・テーブル)を識別が含むことを要求することができる。たとえば、ターゲット装置114は、ターゲット装置112にターゲット装置112のピア装置を識別するよう依頼し、ターゲット装置116にターゲット装置116のピア装置を識別するよう依頼し、ターゲット装置118にターゲット装置118のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置112、116、118に送ることができる。
本発明の一実施形態において、ピアツーピア・プロトコルは、pingタイムアウト遅延を含むこともでき、この遅延は、pingデータ・メッセージを管理するのに使われる一規則でよい。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からp秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知である適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。あるいは、pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。あるいは、所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。あるいは、適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置(ピア・ノード)のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
上述したように、データ・メッセージは、識別メッセージ(本明細書ではpongデータ・メッセージと示す)でもよい。このpongメッセージは、1つまたは複数のターゲット装置112、114、116、118、112、124、126、128、136、138によって、pingメッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置112は、ターゲット装置114に対してターゲット装置112を記述するpongメッセージを、ターゲット装置114に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置112は、ターゲット装置112のアドレスを与えるpongメッセージを、ターゲット装置114に送ることができる。ターゲット装置114もpingメッセージをターゲット装置118に送った場合、ターゲット装置114はやはり、ターゲット装置118のIPアドレスを与えるpongメッセージを、ターゲット装置118から受信することができる。あるいは、pongデータ・メッセージは、応答側ターゲット装置が着信接続を受け入れるためのポート番号、応答側ターゲット装置のIPアドレス、応答側ターゲット装置がネットワーク上で共有しているファイルの数、応答側ターゲット装置がネットワーク上で共有しているデータのキロバイト数の1つまたは複数を含むことができる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト(すなわちピア・テーブル)を提供することができる。たとえば、ターゲット装置112は、ターゲット装置112がただ1つのピア・ターゲット装置114を有していることをターゲット装置114に対して示すpongメッセージを、ターゲット装置114に送信することができる。これに対して、ターゲット装置118も、ターゲット装置118が3つのピア・ターゲット装置114、128、138を有していることをターゲット装置114に対して示すpongメッセージを、ターゲット装置114に送信することができる。ターゲット装置118からのpongメッセージも、ターゲット装置118の3つのピア装置114、128、138についての情報を提供することができ、この情報には、ピア・ターゲット装置114が着信接続を受け入れるためのポート番号、第2のピア・ターゲット装置128が着信接続を受け入れるためのポート番号、第3のピア・ターゲット装置138が着信接続を受け入れるためのポート番号、ピア・ターゲット装置114のIPアドレス、第2のピア・ターゲット装置128のIPアドレス、第3のピア・ターゲット装置128のIPアドレス、および他の適切などのような情報も含まれる。
上述したように、データ・メッセージは、照会メッセージでもよい。この照会メッセージは、1つまたは複数のターゲット装置112、114、116、118、112、124、126、128、136、138によって、他のターゲット装置、およびネットワーク102またはシステム100の他のどの構成要素に情報を要求するのにも使うことができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。たとえば、ターゲット装置114は、ターゲット装置112、116、118に対してある特定のファイルをもっているか尋ねる照会データ・メッセージを、ターゲット装置112、116、118に送ることができる。本発明の一実施形態において、照会メッセージは、そのピア・ターゲット装置の集合リスト(すなわちピア・テーブル)に対する要求を含むこともできる。他のタイプの照会も、当該分野において公知であるように、本発明の実施形態に従って同報通信することができる。
上述したように、データ・メッセージは、応答データ・メッセージでもよい。このpongメッセージは、1つまたは複数のターゲット装置112、114、116、118、112、124、126、128、136、138によって、照会メッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置112は、ターゲット装置114がシークしているファイルをターゲット装置112がもっているか示す応答メッセージを、ターゲット装置114に送信することができる。ターゲット装置114がターゲット装置118にもpingメッセージを送信していた場合、ターゲット装置114はまた、ターゲット装置114がシークしているファイルをターゲット装置118がもっているか示す応答データ・メッセージを、ターゲット装置118から受信することができる。
ピアツーピア・プロトコルにより、ターゲット装置112、114、116、118、112、124、126、128、136、138のいずれかがデータ・メッセージを同報通信しまたは受信することが可能になる。したがって、たとえば、ターゲット装置128が、ターゲット装置118のピア・ターゲット装置の集合リストを要求するpingメッセージを、ターゲット装置118に送信することもできる。したがって、ターゲット装置128が、ターゲット装置118の3つのピア装置114、128、138についての情報を提供するpongメッセージを、ターゲット装置118から受信することもでき、この情報には、ピア・ターゲット装置114が着信接続を受け入れるためのポート番号、第2のピア・ターゲット装置128が着信接続を受け入れるためのポート番号、第3のピア・ターゲット装置138が着信接続を受け入れるためのポート番号、ピア・ターゲット装置114のIPアドレス、第2のピア・ターゲット装置128のIPアドレス、第3のピア・ターゲット装置128のIPアドレス、および他の適切などのような情報も含まれる。これに対して、ターゲット装置116は、照会メッセージを同報通信し、他のターゲット装置112、114、118、112、124、126、128、136、138から応答データ・メッセージを受信することができる。
したがって、図4に示すルーチンは、ターゲット装置112、114、116、118、112、124、126、128、136、138のいずれかにおいて行うことができ、本発明の一実施形態においては、複数の所与のターゲット装置で同時に起こることもできる。さらに、どの1つまたは複数のターゲット装置も、たとえば、図4のルーチンから得られるピア・テーブルなどのデータ・メッセージを受信することができる。したがって、以下の段落では、ネットワーク102およびターゲット装置112、116、118、112、124、126、128、136、138に対してターゲット装置114を起点ピア・ノードと指定するが、ターゲット装置112、116、118、112、124、126、128、136、138のどの1つまたは複数も、ネットワーク102またはシステム100あるいはその両方における他のどのターゲット装置に対しても起点ピア・ノードとなることができる。
ブロック402に示すように、ターゲット装置114は、ピア・テーブルを初期化することができる。本発明の一実施形態において、このピア・テーブルは、ピア・ターゲット装置と、各ピア・ターゲット装置の関連情報、たとえば各ピア・ターゲット装置のIPアドレス、および特定の各ピア・ターゲット装置が着信接続を受け入れるためのポートのIPアドレスとからなる一覧を含むことができる。これは、たとえば、ピア・ターゲット装置の識別および関連情報を格納するターゲット装置114上にデータベースを作成することによって、またはこのターゲット装置114と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置114上の適切な記憶位置において照合することも、ターゲット装置114に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
ブロック404に示すように、ターゲット装置114は、記述子IDテーブルを初期化することもできる。本発明の一実施形態において、この記述子IDテーブルは、一義的な各記述子IDと、ターゲット装置114によって受信または送信され、あるいは送受信された、各記述子IDに対応するデータ・メッセージとからなる一覧を含むことができる。これは、たとえば、記述子IDおよび関連情報を格納するターゲット装置114上にデータベースを作成することによって、またはこのターゲット装置114と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置114上の適切な記憶位置において照合することも、ターゲット装置114に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
ブロック406に示すように、ターゲット装置114は、上述したように「ping」タイムアウト遅延の値を設定することもできる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からp秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知の適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置(ピア・ノード)のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
ブロック408に示すように、ターゲット装置114は次いで、交信先、すなわち接続先の隣接ノード(ピア・ターゲット装置)の数の値nを設定することができる。所与のターゲット装置に対する、交信される隣接ノードの数は、当該分野において公知の1つまたは複数の適切な方法を用いて決定することができる。たとえば、所与のターゲット装置から交信されるピア・ノードの数は、そのターゲット装置に対する適切なパラメータ、たとえば、ユーザが決定したパラメータ、ターゲット装置のハードウェア・パラメータ、ターゲット装置のソフトウェア・パラメータなどに基づくことができる。たとえば、所与のターゲット装置114のユーザが、ターゲット装置114が少なくとも3つの他の隣接ノードに交信すべきであると指示することができる。あるいは、ターゲット装置114の処理制限が、ターゲット装置114は4つのピア・ターゲット装置にのみ交信すべきであると命じることもできる。あるいは、ターゲット装置114を、所与の数の隣接ノードと通信するように事前設定することもできる。あるいは、所与のターゲット装置によって使われる移送機構が、交信される隣接ノードの数を決定することもできる。あるいは、ネットワーク102またはシステム100内の隣接ノードの数に基づくアルゴリズム、またはユーザが入力する値に基づくアルゴリズムなど、適切なアルゴリズムが、交信される隣接ノードの数を管理することもできる。
ブロック410に示すように、ターゲット装置114は次いで、メッセージが期限切れになるまでに、あるターゲット装置から別のターゲット装置にデータ・メッセージを転送することができる回数に対する存続時間の値tを設定することができる。たとえば、ターゲット装置114は、データ・メッセージが、t個のターゲット装置によって受信された後で期限切れになるようにメッセージを設定することができる。存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
存続時間の値を有するデータ・メッセージを受信する各ターゲット装置は、データ・メッセージに関連づけられたホップ・カウンタを増分することができる。このホップ・カウンタは、メッセージの受信の際、当該分野において公知である適切などのような手段を用いても、ターゲット装置によって増分することができる。たとえば、適切なアルゴリズムを用いて、
ホップ・カウンタを増分することができる。存続時間の値と同様、ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができ、存続時間の値tと比較して、メッセージを期限切れとすべきか(すなわち、メッセージが受信された回数、すなわちホップのカウントが、存続時間の値を超えたか)判定することができる。
ブロック420、430および440に示すように、起点ピア・ノード114は、pingスレッド、サーバ・スレッド、および照会スレッドの1つまたは複数を実施することもできる。こうしたスレッドは、ターゲット装置114によって同時に、または適切などのような順序でも実施することができる。こうしたスレッドは、ターゲット装置114がオンラインである間、あるいはネットワーク102もしくはシステム100またはその両方と通信している間、絶えず起こることができる。別法としては、ターゲット装置114は、別のターゲット装置112、116、118、112、124、126、128、136、138から、あるいはネットワーク102もしくはシステム100またはその両方の他のどの構成要素から1つまたは複数のデータ・メッセージを受信しても、スレッドの1つまたは複数を開始することができる。
ブロック420に示すように、ターゲット装置114はしたがって、さらに後で説明するように、「ping」スレッドを開始することができる。ブロック420と代替的にまたは同時に、ターゲット装置114はブロック430に示すように、さらに後で説明する「サーバ」スレッドを開始することもできる。ブロック420、430と代替的にまたは同時に、ターゲット装置114は、ブロック450に示すように、さらに後で説明する「照会」スレッドを開始することもできる。ターゲット装置114は、ブロック440で1つまたは複数の照会がターゲット装置114から同報通信されるべきであると判定された場合、「照会」スレッドを開始することができる。したがって、本発明によると、ターゲット装置114は、ping照会を含む照会を送信し、pong応答を含む応答を受信するなどのクライアント機能を実施することができる。ターゲット装置114は、照会および応答を処理するサーバ機能を実施することもでき、たとえばピア・ノードを記述する応答をピア・テーブルに集約し、ある特定の照会メッセージが受信される回数を追跡する。
図5において、図4のネットワーク環境における複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を、500に示す。
ブロック502に示すように、ターゲット装置114は、ブロック406で決定された所定のpingタイムアウト遅延の値(p)の持続時間が経過するのを待つことができる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からp秒ごとに送ることができる。
ブロック504に示すように、pingタイムアウト遅延の値が経過すると、ターゲット装置114は、ブロック408で設定された所定の数の隣接(ピア)ノード(n)にpingメッセージを送信することができる。したがって、図1に示す実施形態では、pingメッセージは、ターゲット装置114から3つの所定の隣接ノード112、116、118(すなわち、n=3)に送信することができる。
このpingメッセージは、1つまたは複数のターゲット装置112、114、116、118、112、124、126、128、136、138によって使われて、pingメッセージがネットワーク102またはシステム100あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、1つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置114は、ターゲット装置112、116、118にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置112、116および118に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト(ピア・テーブル)を識別が含むことを要求することができる。たとえば、ターゲット装置114は、ターゲット装置112にターゲット装置112のピア装置を識別するよう依頼し、ターゲット装置116にターゲット装置116のピア装置を識別するよう依頼し、ターゲット装置118にターゲット装置118のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置112、116、118に送ることができる。
ブロック506に示すように、ターゲット装置114は次いで、ブロック504で交信された所定の数のピアの1つまたは複数から、pongメッセージを受信することができる。
このpongメッセージは、交信を受けたピア装置112、116、118によって使われて、ターゲット装置114によって同報通信されたpingメッセージに応答を行うことができる。たとえば、ターゲット装置112は、ターゲット装置114に対してターゲット装置112を記述するpongメッセージを、ターゲット装置114に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置112は、ターゲット装置112のアドレスを与えるpongメッセージを、ターゲット装置114に送ることができる。ターゲット装置114は、ターゲット装置116のIPアドレスを与えるpongメッセージを、ターゲット装置116から受信し、ターゲット装置118のIPアドレスを与えるpongメッセージを、ターゲット装置118から受信することもできる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト(すなわちピア・テーブル)を提供することができる。たとえば、ターゲット装置112は、ターゲット装置112がただ1つのピア・ターゲット装置114を有していることをターゲット装置114に対して示すpongメッセージを、ターゲット装置114に送信することができる。これに対して、ターゲット装置116も、ターゲット装置116が2つのピア・ターゲット装置114、136を有していることを示すpongメッセージを送信することができる。ターゲット装置116からのpongメッセージも、ターゲット装置116の2つのピア装置114、136についての情報を提供することができ、この情報には、ピア・ターゲット装置114が着信接続を受け入れるためのポート番号、第2のピア・ターゲット装置136が着信接続を受け入れるためのポート番号、ピア・ターゲット装置114のIPアドレス、第2のピア・ターゲット装置136のIPアドレス、および他の適切などのような情報も含まれる。さらに、ターゲット装置118も、ターゲット装置118が3つのピア・ターゲット装置114、128、138を有していることをターゲット装置114に対して示すpongメッセージを、ターゲット装置114に送信することができる。ターゲット装置118からのpongメッセージも、ターゲット装置118の3つのピア装置114、128、138についての情報を提供することができ、この情報には、ピア・ターゲット装置114が着信接続を受け入れるためのポート番号、第2のピア・ターゲット装置128が着信接続を受け入れるためのポート番号、第3のピア・ターゲット装置138が着信接続を受け入れるためのポート番号、ピア・ターゲット装置114のIPアドレス、第2のピア・ターゲット装置128のIPアドレス、第3のピア・ターゲット装置128のIPアドレス、および他の適切などのような情報も含まれる。
ブロック508に示すように、ターゲット装置114は次いで、ブロック402で初期化されたピア・テーブルを、pong応答から受信した情報を用いて更新することができる。これは、隣接ピア・ノード112、116、118から、ターゲット装置114上にある、またはそれと通信するデータベースまたは記憶位置にピア・テーブル情報を入力するなど、当該分野において公知である適切などのような手段を使っても達成することができる。したがって、照会側ピア・ターゲット装置112、116、118から、ターゲット装置114は、ネットワーク内の他の装置128、138、136についての情報を判定することができる。これに対して、ターゲット装置114は、そのピア・テーブルを、ターゲット装置112、116、136、118、128、138についての情報を用いて更新することができるので、ターゲット装置114に照会を行う隣接装置122は、その後、7個のターゲット装置についての情報、すなわち、ターゲット装置112、116、136、118、128、138、および122についての情報を、ターゲット装置114から受信する。
図6において、図4のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、600に示す。
ブロック602に示すように、ターゲット装置114は、着信データ・メッセージを待つことができる。このデータ・メッセージは、上述した適切などのようなデータ・メッセージでもよい。
たとえば、データ・メッセージは、ターゲット装置114の識別を要求するデータ・メッセージなど、ターゲット装置114に情報を要求するpingデータ・メッセージでよい。あるいは、データ・メッセージは、ターゲット装置114に、ある特定のファイルをもっているか尋ねる照会データ・メッセージでもよい。本発明の一実施形態において、データ・メッセージは、ターゲット装置114にそのピア・ターゲット装置の集合リスト(すなわちピア・テーブル)を提供させる要求でもよい。
あるいは、データ・メッセージは、ターゲット装置114に対して別のターゲット装置を記述するpongデータ・メッセージでよい。本発明の一実施形態において、pongデータ・メッセージは、その隣接ピア装置の集合リスト(すなわちピア・テーブル)を提供することもできる。たとえば、ターゲット装置114は、ターゲット装置112がただ1つのピア・ターゲット装置114を有することをターゲット装置114に対して示すデータ・メッセージを、ターゲット装置112から受信することができる。あるいは、データ・メッセージは、ターゲット装置114からの照会に応答する応答データ・メッセージでもよい。
ブロック604で、ターゲット装置114は、データ・メッセージを受信したか判定する。各データ・メッセージは、その性質(すなわち、pingデータ・メッセージ、pongデータ・メッセージ、探索照会メッセージ、など)が何であっても、上述したように一義的な記述子IDを有することができる。
データ・メッセージが受信されている場合、方法はブロック606に進み、ここで、データ・メッセージの記述子IDが、ブロック404で作成された記述子IDテーブルに格納済みのメッセージの記述子IDと比較される。
ブロック608で、ターゲット装置114は、受信したデータ・メッセージが以前からあったものか(すなわち、受信したデータ・メッセージの記述子IDが、記述子IDテーブルに格納済みの記述子IDのいずれかと一致するか)判定する。
ブロック610に示すように、受信したメッセージが以前からあるものでない場合、ターゲット装置114は、受信したメッセージおよびその対応する記述子IDを、記述子IDテーブルに追加することができる。
ブロック612に示すように、ターゲット装置114は次いで、受信したメッセージが上述したようなpingメッセージであるか判定することができる。受信したメッセージがメッセージである場合、ブロック624に示すように、ターゲット装置114は、受信されたメッセージを発信したピア・ノードに、pongメッセージを返すことができる。本発明の一実施形態において、ターゲット装置114からのpong応答は、ターゲット装置114が着信接続を受け入れるためのポート番号、ターゲット装置114のIPアドレス、ターゲット装置114がネットワーク上で共有しているファイルの数、ターゲット装置114がネットワーク上で共有しているデータのキロバイト数の1つまたは複数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置114からのpong応答は、その隣接ピア装置の集合リスト(すなわちピア・テーブル)の全部または一部を含むことができる。たとえば、図1の実施形態では、ターゲット装置114からのpong応答は、ターゲット装置112、116、136、118、128、138についての情報、たとえば、ターゲット装置112、114、116、136、118、128、138が着信接続を受け入れるためのポート番号、ターゲット装置112、116、136、118、128、138のIPアドレス、および他の適切などのような情報も含むことができる。
本発明の実施形態によると、pong応答は、受信側ターゲット装置から介入ターゲット装置を介して転送されるのではなく、受信側ターゲット装置114から起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図1の実施形態では、ターゲット装置114が、ピア・ターゲット装置128から介入ターゲット装置118を介してpingメッセージを受信する場合、ターゲット装置114は、pongメッセージを用いて、ターゲット装置128に直接応答することができる。本発明によって、ターゲット装置128についての情報がターゲット装置114に対して利用可能になっているので、ターゲット装置114は、ターゲット装置128に直接応答することができるようになる。たとえば、ターゲット装置114は、ターゲット装置128についての情報をもつことができる。というのは、ターゲット装置114は、(ブロック508に示すように)そのピア・テーブルをターゲット装置128についての情報、たとえばターゲット装置128のIPアドレスを用いて更新済みだからである。
さらに、ブロック626に示すように、ターゲット装置114は、そのピア・テーブルに、起点ピア・ノードについての情報を追加することによって、そのピア・テーブルをさらに更新することができる。したがって、上記の例で説明を続けると、図1の実施形態において、ターゲット装置114は、そのピア・テーブルに、ターゲット装置128についての情報を追加することができる。この情報は、ターゲット装置128についての情報、たとえばターゲット装置128が着信接続を受け入れるためのポート番号、ターゲット装置128のIPアドレス、ターゲット装置128がネットワーク上で共有しているファイルの数、ターゲット装置128がネットワーク上で共有しているデータのキロバイト数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置128からの情報は、その隣接ピア装置の集合リスト(すなわちピア・テーブル)の全部または一部を含むことができる。たとえば、図1の実施形態では、ターゲット装置128からの情報は、ターゲット装置128と接続された、またはそれと通信する他のターゲット装置(図示せず)についての情報を含むことができる。
ブロック614に示すように、受信したメッセージがpingデータ・メッセージでない場合、ターゲット装置114は、受信したメッセージが別のタイプの照会であるか判定することができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。本発明の一実施形態において、照会メッセージは、所与のターゲット装置によって満たされるべき所定の1組の基準(たとえば、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか?」、または「このメッセージを受信するターゲット装置はDOSを実行することができるか?」)を記述することができる。受信したメッセージが別のタイプの照会である場合、本発明の方法は、図6にDで示すように、図8に示すサブルーチンに進むことができる。
図8において、図4のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、800に示す。
ブロック802に示すように、ターゲット装置114は、ブロック604で受信したメッセージの照会に含まれる所定の基準を満たしているか判定することができる。これは、たとえば、照会メッセージに含まれる基準を、ターゲット装置114の適切などのような構成要素と比較することによっても達成することができる。たとえば、受信した照会メッセージが、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか?」と尋ねた場合、ターゲット装置114は、もっているファイルを調査して、いずれかのファイルが、受信した照会メッセージにおいて要求されたファイルと一致するか判定することができる。受信した照会メッセージが、「このメッセージを受信するターゲット装置はDOSを実行することができるか?」と尋ねた場合、ターゲット装置114は、それ自体のシステム構成を評価して、受信した照会メッセージに記述されている構成と一致するか判定することができる。
ブロック804に示すように、ターゲット装置114が所定の基準を満たす場合、ターゲット装置114は、照会を発信したターゲット装置に応答データを返すことができる。たとえば、ターゲット装置112は、「このメッセージを受信するターゲット装置は「PATENT.APP.DOC」というファイルをもっているか?」と尋ねる照会メッセージを同報通信することができる。ターゲット装置114がファイルPATENT.APP.DOCをもっている(すなわち、所定の基準を満たす)場合、ターゲット装置114は、ターゲット装置114がそのファイルをもっていることを示す応答を、ターゲット装置112に送信することができる。本発明の一実施形態において、ターゲット装置114がそのファイルをもっていない場合、ターゲット装置114はやはり、そのファイルをもっていないことを示す応答を送信することができる。
本発明の実施形態によると、現在のターゲット装置114が所定の基準を満たす場合、ターゲット装置114は、現在のターゲット装置114から介入ターゲット装置を介して転送されるのではなく、起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図1の実施形態では、ターゲット装置114が、ピア・ターゲット装置128から介入ターゲット装置118を介して探索照会を受信した場合、ターゲット装置114は、ターゲット装置128に直接応答する。本発明によって、ターゲット装置128についての情報がターゲット装置114に対して利用可能になっているので、ターゲット装置114は、ターゲット装置128に直接応答することができるようになる。たとえば、ターゲット装置114は、ターゲット装置128についての情報をもつことができる。というのは、ターゲット装置114は、(ブロック508に示すように)そのピア・テーブルをターゲット装置128についての情報、たとえばターゲット装置128のIPアドレスを用いて更新済みだからである。
ターゲット装置114が、ブロック814、816、818、828に示す照会メッセージの所定の基準を満たしても満たさなくても、ターゲット装置114は次いで、データ・メッセージを転送するか、または期限切れとするか決定することができる。
ブロック814に示すように、照会メッセージは、データ・メッセージを受信する際に増分することができるホップ・カウンタを含むことも、それに関連づけられることもできる。このホップ・カウンタは、当該分野において公知である適切などのような手段を用いても、受信側ターゲット装置114によって増分することができる。たとえば、適切なアルゴリズムを用いて、ホップ・カウンタを増分することができる。ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができる。本発明の一実施形態において、データ・メッセージを受信する各ターゲット装置は、データ・メッセージが受信される度にホップ・カウンタを増分する。
ブロック816に示すように、ホップ・カウンタは、メッセージを期限切れとすべきか(すなわち、メッセージが受信された回数、すなわちホップのカウントが存続時間の値に等しいか)判定するために、存続時間の値tと比較することができる。図8に示す実施形態において、ホップ・カウンタは、ホップ・カウンタが存続時間の値に等しいか判定するために、存続時間の値tと比較され、ホップ・カウンタが等しくない場合、メッセージは期限切れとならない。本発明の別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より大きいか判定するために、存続時間の値tと比較され、ホップ・カウンタが存続時間の値より大きい場合、メッセージは期限切れとならない。本発明のさらに別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より小さいか判定するために、存続時間の値tと比較され、ホップ・カウンタが存続時間の値より小さい場合、メッセージは期限切れとならない。
存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。本発明の一実施形態では、存続時間の値を制御するターゲット装置は、データ・メッセージを発信したターゲット装置である。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。あるいは、適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
ブロック818に示すように、ホップ・カウンタが存続時間の値に等しい場合、メッセージは、期限切れとすることができる。本発明の一実施形態において、メッセージの有効期限が切れると、受信側ターゲット装置114は、それ以上そのメッセージを別のターゲット装置に転送しない。
ブロック828に示すように、ホップ・カウンタが存続時間の値に等しくない場合、ターゲット装置114は次いで、1つまたは複数の他のターゲット装置にデータ・メッセージを転送する。図8に示す実施形態では、たとえば、受信側ターゲット装置は、所定の数(n)の隣接ノード/ピア・ターゲット装置にメッセージを転送することができる。この所定の数の隣接ノードは、ブロック408で上述した手段など、適切などのような手段によっても決定することができる。
受信側ターゲット装置114は次いで、図6および8にBで示すように、ブロック602に戻ることができる。
ここで図6に戻ると、受信したメッセージがpingメッセージでも照会メッセージでもない場合、ブロック616に示すように、ターゲット装置114は、受信したメッセージが、ターゲット装置114によって同報通信された照会への応答データを提供するデータ・メッセージであるか判定することができる。
このような応答データは、たとえば、1つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、1つまたは複数の隣接ターゲット装置のIPアドレス、1つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、1つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または1つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の1つまたは複数でよい。
応答データは、1つまたは複数の隣接ピア装置からの集合リスト(すなわちピア・テーブル)の全部または一部を含むこともできる。あるいは、応答データは、ターゲット装置114によって送信された照会への返答を含むこともできる。たとえば、ターゲット装置114が、「TRADEMARK.APP.EXEというファイルをもっているか?」と尋ねる照会を同報通信した場合、受信されるメッセージは、1つまたは複数の隣接するターゲット装置がそのファイルをもっていることを示す応答でよい。本発明の一実施形態において、応答データは、応答側ターゲット装置から、照会を同報通信したターゲット装置に、直接送信することができる。
たとえば、図1の実施形態において、ターゲット装置114が隣接装置112、116、118に照会を送信した場合、ターゲット装置114は、ターゲット装置114に対してターゲット装置112がファイルをもっているか示す応答データ・メッセージを、ターゲット装置112から受信することができる。ターゲット装置114は、ターゲット装置114に対してターゲット装置116がファイルをもっているか示す応答データ・メッセージを、ターゲット装置116から受信することもできる。ターゲット装置114は、ターゲット装置114に対してターゲット装置118がファイルをもっているか示す応答データ・メッセージを、ターゲット装置118から受信することもできる。
さらに、ターゲット装置114がターゲット装置136に直接照会を行っていない場合でも、ターゲット装置114は、ターゲット装置114に対してターゲット装置136がファイルをもっているか示す応答データ・メッセージを、ターゲット装置136から直接受信することができる。本発明によって、ターゲット装置114についての情報がターゲット装置136に対して利用可能になっているので、ターゲット装置136は、ターゲット装置114に直接応答することができるようになる。たとえば、ターゲット装置136は、ターゲット装置114についての情報をもつことができる。というのは、ターゲット装置136は、(ブロック508に示すように)そのピア・テーブルをターゲット装置114についての情報、たとえばターゲット装置114のIPアドレスを用いて更新済みだからである。
ターゲット装置114がターゲット装置128、138に直接照会を行っていない場合でも、ターゲット装置114は、ターゲット装置114に対してターゲット装置128、138がそれぞれファイルをもっているか示す応答データ・メッセージを、ターゲット装置128、138から直接受信することもできる。したがって、照会側ターゲット装置112、116、118から、ターゲット装置114は、ターゲット装置112、116、136、118、128、136からの直接の応答を受信することができる。
ブロック618に示すように、ターゲット装置114は次いで、応答データを処理することができる。たとえば、ターゲット装置114は、ターゲット装置114上の記憶位置、またはターゲット装置114と通信する記憶位置に応答データを格納することができる。あるいは、ターゲット装置114は、ターゲット装置114上のユーザ・インターフェース、またはターゲット装置114と通信するユーザ・インターフェースを介して、ユーザに応答データを提示することもできる。たとえば、ターゲット装置114は、探索結果として応答データをユーザに表示することができる。
図6にループ630で示すように、図6のルーチンは、あらゆる着信メッセージに対して繰り返すことができる。
図7において、図4のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、700に示す。
ブロック702に示すように、ターゲット装置114は、照会が入力されるまで待つことができる。この照会は、上述したように、適切などのような照会でもよい。照会は、たとえば、1つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、1つまたは複数の隣接ターゲット装置のIPアドレス、1つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、1つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または1つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または1つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の1つまたは複数についての情報を要求することができる。
本発明の一実施形態では、ユーザが照会を入力することができる。あるいは、照会は、ネットワーク102もしくはシステム100またはその両方の別のターゲット装置または別の構成要素から入力することもできる。たとえば、ユーザは、ターゲット装置114で、ファイル「PATENT.APP.DOC」を求める照会を入力することができる。
ブロック704に示すように、ターゲット装置114は次いで、所定の数の隣接ノードnに照会を転送することができる。この所定の数の隣接ノードは、ブロック408で上述した手段など、適切などのような手段によっても決定することができる。ターゲット装置114は次いで、図4および7にCで示すように、ブロック702に戻ることができる。
本発明を、完全に機能するデータ処理システムの状況で説明したが、説明した処理は、他の適切などのような状況においても配布することができることが理解されよう。たとえば、説明した処理は、コンピュータ可読な命令媒体の形を取ることができる。本発明は、配布の実行に実際に使用される信号伝達媒体のタイプに関わらず、等しく適用される。コンピュータ可読媒体の例として、フロッピー(R)ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能なタイプの媒体、ならびにデジタルおよびアナログ通信リンク、たとえば無線周波数伝送や光波伝送といった伝送形体を使用した有線または無線通信リンクなどの伝送タイプの媒体がある。コンピュータ可読媒体は、あるデータ処理システムで実際に使用する場合には復号化される、符号化されたフォーマットの形をとることができる。
本発明によるデータ処理システムのネットワークの一実施形態を示す概略図である。 本発明によるデータ処理システムの一実施形態を示すブロック図である。 本発明によるデータ処理システムの別の実施形態を示すブロック図である。 本発明による、ネットワーク環境における複数のターゲット装置の間の通信方法の一実施形態を示すフロー図である。 図4に示すネットワーク環境における、複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を示すフロー図である。 図4に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。 図4に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。 図4に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。

Claims (20)

  1. ネットワーク環境における複数のピア・ノードの間で通信を行う方法であって、
    現在のピア・ノードから少なくとも1つの隣接ピア・ノードに発見コマンドを伝達するステップであって、前記隣接ピア・ノード前記現在のピア・ノードと通信でき、前記発見コマンドが、前記隣接ピア・ノードが期限切れ前に送信された発見コマンドの回数に対する存続期間の値を含む、前記伝達するステップと、
    前記現在のピア・ノードで、ピア・ノードの集合リストを受信するステップであって、ピア・ノードの前記集合リストが、少なくとも1つの隣接ノードと通信する少なくとも1つのピア・ノードについての情報を含み、前記情報はIPアドレス及び各ピア・ノードが着信接続を受け入れるためのポート番号を含み、各ノードは、次の発見コマンドを通信する間に所定のピング(ping)タイムアウト遅延の値の持続期間が経過するのを待つ、前記受信するステップと
    前記現在のピア・ノードで、起点ピア・ノードからの第2の発見コマンドを受信するステップと、
    前記第2の発見コマンドに応答して、前記現在のピア・ノードから前記起点ピア・ノードに直接的に、前記ピア・テーブルを伝達するステップと
    を含む前記方法。
  2. 前記発見コマンドを、所定の数の隣接ピア・ノードに伝達するステップをさらに含む、請求項1に記載の方法。
  3. 前記現在のピア・ノードで、ピア・テーブルを作成するステップと、
    ピア・ノードの前記集合リストを用いて、前記ピア・テーブルを更新するステップと
    をさらに含む、請求項1に記載の方法。
  4. 前記現在のピア・ノードで、一義的な記述子を有するデータ・メッセージを受信するステップをさらに含む、請求項1に記載の方法。
  5. 前記受信したデータ・メッセージの前記記述子を、記述子テーブルと比較するステップをさらに含み、前記記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む、請求項1に記載の方法。
  6. 前記受信したデータ・メッセージ、および前記受信したデータ・メッセージの前記記述子を用いて、前記記述子テーブルを更新するステップをさらに含む、請求項5に記載の方法。
  7. 前記現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを転送するステップをさらに含む、請求項1に記載の方法。
  8. 前記現在のピア・ノードで、少なくとも1つの他のピア・ノードから、応答データを直接受信するステップをさらに含み、前記少なくとも1つの他のピア・ノード前記少なくとも1つの隣接ノードと通信する、請求項1に記載の方法。
  9. 前記現在のピア・ノードで、起点ピア・ノードから照会コマンドを受信するステップと、
    前記照会コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに応答データを直接伝達するステップと
    をさらに含む、請求項1に記載の方法。
  10. 前記現在のピア・ノードから、所定の数の隣接ピア・ノードに前記照会コマンドを転送するステップをさらに含む、請求項9に記載の方法。
  11. データ処理ホスト上で実行されると、前記ホストに、請求項1ないし10のいずれか一項に記載の方法を実行させるコンピュータ・プログラム
  12. ネットワーク環境における複数のピア・ノードの間で通信を行うシステムであって、
    現在のピア・ノードから、少なくとも1つの隣接ピア・ノードに発見コマンドを伝達する手段であって、前記隣接ピア・ノード前記現在のピア・ノードと通信でき、前記発見コマンドが、前記隣接ピア・ノードが期限切れ前に送信された発見コマンドの回数に対する存続期間の値を含む、前記伝達する手段と、
    前記現在のピア・ノードで、ピア・ノードの集合リストを受信する手段であって、ピア・ノードの前記集合リストが、前記少なくとも1つの隣接ノードと通信する少なくとも1つのピア・ノードについての情報を含み、前記情報はIPアドレス及び各ピア・ノードが着信接続を受け入れるためのポート番号を含み、各ノードは、次の発見コマンドを通信する間に所定のピング(ping)タイムアウト遅延の値の持続期間が経過するのを待つ、前記受信する手段と
    前記現在のピア・ノードで、起点ピア・ノードからの第2の発見コマンドを受信する手段と、
    前記第2の発見コマンドに応答して、前記現在のピア・ノードから前記起点ピア・ノードに直接的に、前記ピア・テーブルを伝達する手段と
    を備える前記システム。
  13. 所定の数の隣接ピア・ノードに前記発見コマンドを伝達する手段と、
    前記所定の数の隣接ピア・ノードを決定する手段と
    をさらに備える、請求項12に記載のシステム。
  14. 前記現在のピア・ノードで、ピア・テーブルを作成する手段と、
    ピア・ノードの前記集合リストを用いて、前記ピア・テーブルを更新する手段と
    をさらに備える、請求項12に記載のシステム。
  15. 前記現在のピア・ノードで、一義的な記述子を有するデータ・メッセージを受信する手段と、
    前記受信したデータ・メッセージの前記記述子を、記述子テーブルと比較する手段をさらに含み、前記記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む、請求項12に記載のシステム。
  16. 前記受信したデータ・メッセージ、および前記受信したデータ・メッセージの前記記述子を用いて、前記記述子テーブルを更新する手段をさらに備える、請求項12に記載のシステム。
  17. 前記現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを転送する手段をさらに備える、請求項12に記載のシステム。
  18. 前記現在のピア・ノードで、少なくとも1つの他のピア・ノードから、応答データを直接受信する手段をさらに含み、前記少なくとも1つの他のピア・ノード前記少なくとも1つの隣接ノードと通信する、請求項12に記載のシステム。
  19. 前記現在のピア・ノードで、起点ピア・ノードから照会コマンドを受信する手段と、
    前記照会コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに応答データを直接伝達する手段とをさらに備える、請求項12に記載のシステム。
  20. 前記現在のピア・ノードから、所定の数の隣接ピア・ノードに前記照会コマンドを転送する手段をさらに備える、請求項19に記載のシステム。
JP2003559109A 2002-01-10 2003-01-09 ネットワーク環境におけるピアツーピア通信のための方法およびシステム Expired - Fee Related JP3944168B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/044,997 US7117264B2 (en) 2002-01-10 2002-01-10 Method and system for peer to peer communication in a network environment
PCT/GB2003/000053 WO2003058917A1 (en) 2002-01-10 2003-01-09 Method and system for peer to peer communication in a network environment

Publications (2)

Publication Number Publication Date
JP2005514867A JP2005514867A (ja) 2005-05-19
JP3944168B2 true JP3944168B2 (ja) 2007-07-11

Family

ID=21935450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003559109A Expired - Fee Related JP3944168B2 (ja) 2002-01-10 2003-01-09 ネットワーク環境におけるピアツーピア通信のための方法およびシステム

Country Status (9)

Country Link
US (1) US7117264B2 (ja)
EP (1) EP1468541B1 (ja)
JP (1) JP3944168B2 (ja)
KR (1) KR100819017B1 (ja)
CN (1) CN100493076C (ja)
AT (1) ATE306170T1 (ja)
AU (1) AU2003201646A1 (ja)
DE (1) DE60301783T2 (ja)
WO (1) WO2003058917A1 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117264B2 (en) * 2002-01-10 2006-10-03 International Business Machines Corporation Method and system for peer to peer communication in a network environment
US7370356B1 (en) * 2002-01-23 2008-05-06 Symantec Corporation Distributed network monitoring system and method
JP2005520437A (ja) * 2002-03-12 2005-07-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 2つのノード間の近接性を決定するためのタイミング信号の使用
US7167979B2 (en) * 2002-04-03 2007-01-23 Hewlett-Packard Development Company, L.P. Invoking mutual anonymity by electing to become head of a return path
US20030196148A1 (en) * 2002-04-12 2003-10-16 Carol Harrisville-Wolff System and method for peer-to-peer monitoring within a network
EP1550284A1 (en) * 2002-09-30 2005-07-06 Koninklijke Philips Electronics N.V. Secure proximity verification of a node on a network
US7398307B2 (en) * 2003-04-30 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for managing a network
US20050021737A1 (en) * 2003-05-01 2005-01-27 Ellison Carl M. Liveness protocol
US8949304B2 (en) * 2003-08-20 2015-02-03 Apple Inc. Method and apparatus for accelerating the expiration of resource records in a local cache
US7523220B2 (en) 2003-09-17 2009-04-21 Microsoft Corporation Metaspace: communication middleware for partially connected mobile ad hoc networks
US20050091316A1 (en) * 2003-10-03 2005-04-28 Oscar Ponce System and method for creating and selectively sharing data elements in a peer-to-peer network
US7945675B2 (en) * 2003-11-03 2011-05-17 Apacheta Corporation System and method for delegation of data processing tasks based on device physical attributes and spatial behavior
JP4102290B2 (ja) * 2003-11-11 2008-06-18 株式会社東芝 情報処理装置
US7822708B1 (en) 2004-01-28 2010-10-26 Oracle America, Inc. Global attribute mapping data in an enterprise information system
US20050165752A1 (en) * 2004-01-28 2005-07-28 Sun Microsystems, Inc. Synchronizing and consolidating information from multiple source systems of a distributed enterprise information system
US7483870B1 (en) 2004-01-28 2009-01-27 Sun Microsystems, Inc. Fractional data synchronization and consolidation in an enterprise information system
WO2005079001A1 (en) * 2004-02-16 2005-08-25 Christopher Michael Davies Network architecture
US7961650B2 (en) 2004-02-16 2011-06-14 Christopher Michael Davies Network architecture
US7617300B2 (en) * 2004-03-12 2009-11-10 Microsoft Corporation Node matching in a dynamic, decentralized environment
JP4850394B2 (ja) * 2004-04-12 2012-01-11 キヤノン株式会社 情報処理装置及び情報処理方法及びプログラム
JP2005316610A (ja) * 2004-04-27 2005-11-10 Ntt Docomo Inc データ配信装置およびデータ配信方法
US20060136526A1 (en) * 2004-12-16 2006-06-22 Childress Rhonda L Rapid provisioning of a computer into a homogenized resource pool
US8650259B2 (en) * 2005-02-03 2014-02-11 International Business Machines Corporation Method and apparatus for increasing the search space or peer-to-peer networks using time-to-live boosting
US7254694B2 (en) * 2005-02-10 2007-08-07 International Business Machines Corporation Processors interconnect fabric with relay broadcasting and accumulation of partial responses
US7453875B2 (en) * 2005-03-23 2008-11-18 Microsoft Corporation Querying for services using soap over UDP
US20060274743A1 (en) 2005-06-06 2006-12-07 Alper Yegin System and method for a mobile device to learn information about the access networks within its neighborhood
EP1889402B1 (en) * 2005-06-06 2011-01-05 Samsung Electronics Co., Ltd. Server, methods and computer-readable media for discovering neighbor networks in a mobile station
KR101191723B1 (ko) * 2005-06-06 2012-10-18 삼성전자주식회사 네이버 네트워크 디스커버리 방법 및 이를 위한 시스템
US7512943B2 (en) * 2005-08-30 2009-03-31 Microsoft Corporation Distributed caching of files in a network
US20070073859A1 (en) * 2005-09-29 2007-03-29 Microsoft Corporation Peer name resolution and discovery
US8271970B2 (en) * 2005-10-27 2012-09-18 Siemens Aktiengesellschaft Method for software distribution
US9049205B2 (en) * 2005-12-22 2015-06-02 Genesys Telecommunications Laboratories, Inc. System and methods for locating and acquisitioning a service connection via request broadcasting over a data packet network
US8712883B1 (en) * 2006-06-12 2014-04-29 Roxbeam Media Network Corporation System and method for dynamic quality-of-service-based billing in a peer-to-peer network
US8429642B1 (en) * 2006-06-13 2013-04-23 Trend Micro Incorporated Viral updating of software based on neighbor software information
US8312449B2 (en) * 2006-10-31 2012-11-13 International Business Machines Corporation Viral installation of operating systems in a network
US7865575B2 (en) * 2007-03-30 2011-01-04 Sterling Commerce, Inc. Methods and apparatus to perform file transfers in distributed file systems
KR101409991B1 (ko) * 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
US7881329B2 (en) * 2007-05-25 2011-02-01 Sharp Laboratories Of America, Inc. Method and system for maintaining high reliability logical connection
US20100135168A1 (en) * 2007-07-10 2010-06-03 Yi-Ping Chen Method for automatically determining a group of pairs located close to another pair in a communication network and associated server, analysis device and communication device
BRPI0800633A2 (pt) * 2008-03-13 2009-10-27 Coppe Ufrj método para formação de comunidades virtuais espontáneas baseadas em interesses comuns utilizando faixas de interesse
JP5176835B2 (ja) * 2008-09-29 2013-04-03 ブラザー工業株式会社 監視装置、情報処理装置、情報処理方法並びにプログラム
US7961741B2 (en) * 2008-10-23 2011-06-14 Silver Spring Networks, Inc. Rapid dissemination of bulk information to widely dispersed network nodes
CN101534309B (zh) * 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
US8700079B2 (en) 2011-09-13 2014-04-15 Qualcomm Incorporated Method and apparatus for increasing the rate of peer discovery in a synchronized peer to peer wireless network
JP5860135B2 (ja) * 2012-03-02 2016-02-16 富士通株式会社 通信機器探索方法、通信機器、通信機器探索プログラムおよびアドホックネットワークシステム
US9185742B2 (en) * 2012-12-13 2015-11-10 Google Technology Holdings LLC System and methods for a cloud based wireless personal area network service enabling context activity handoffs between devices
US9098177B2 (en) 2012-12-13 2015-08-04 Google Technology Holdings LLC Apparatus and methods for facilitating context handoff between devices in a cloud based wireless personal area network
US9918351B2 (en) 2014-04-01 2018-03-13 Belkin International Inc. Setup of multiple IOT networks devices
US9451462B2 (en) 2014-08-10 2016-09-20 Belkin International Inc. Setup of multiple IoT network devices
US9363673B2 (en) 2014-08-04 2016-06-07 Google Technology Holdings LLC Subscriber identity module control in a portable communication device
US9872240B2 (en) 2014-08-19 2018-01-16 Belkin International Inc. Network device source entity triggered device configuration setup
CN105577604B (zh) * 2014-10-09 2019-02-22 青岛海尔智能家电科技有限公司 一种用于会话建立的方法和装置
US10819780B2 (en) * 2015-12-24 2020-10-27 Mcafee, Llc Protected data collection in a multi-node network
CN111866133B (zh) * 2020-07-20 2023-04-07 成都民航空管科技发展有限公司 一种多源大批量客户端数据同步方法及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975904A (en) * 1984-06-01 1990-12-04 Digital Equipment Corporation Local area network for digital data processing system including timer-regulated message transfer arrangement
US4689610A (en) * 1984-10-17 1987-08-25 Kastle Systems, Inc. Access control and security alarm apparatus and method
US5167035A (en) * 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
US5701427A (en) * 1989-09-19 1997-12-23 Digital Equipment Corp. Information transfer arrangement for distributed computer system
US5185860A (en) * 1990-05-03 1993-02-09 Hewlett-Packard Company Automatic discovery of network elements
US5276789A (en) * 1990-05-14 1994-01-04 Hewlett-Packard Co. Graphic display of network topology
US5241682A (en) * 1991-04-18 1993-08-31 International Business Machines Corporation Border node having routing and functional capability in a first network and only local address capability in a second network
DE4131133B4 (de) * 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
US5485455A (en) * 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5710885A (en) * 1995-11-28 1998-01-20 Ncr Corporation Network management system with improved node discovery and monitoring
US5652751A (en) * 1996-03-26 1997-07-29 Hazeltine Corporation Architecture for mobile radio networks with dynamically changing topology using virtual subnets
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6112181A (en) * 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6269099B1 (en) 1998-07-01 2001-07-31 3Com Corporation Protocol and method for peer network device discovery
IL132016A (en) * 1998-09-24 2003-12-10 Alteon Web Systems Inc Distributed load-balancing internet servers
US7698396B2 (en) * 2000-01-31 2010-04-13 Hitachi Software Engineering Co., Ltd. Method of automatically recognizing network configuration including intelligent packet relay equipment, method of displaying network configuration chart, and system thereof
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
US20020069098A1 (en) * 2000-08-31 2002-06-06 Infoseer, Inc. System and method for protecting proprietary material on computer networks
US7031288B2 (en) * 2000-09-12 2006-04-18 Sri International Reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network
US20020073204A1 (en) * 2000-12-07 2002-06-13 Rabindranath Dutta Method and system for exchange of node characteristics for DATA sharing in peer-to-peer DATA networks
US7328271B2 (en) * 2001-03-05 2008-02-05 Mitel Networks Corporation Method of controlling telephone connections for internet protocol communications
US7539664B2 (en) * 2001-03-26 2009-05-26 International Business Machines Corporation Method and system for operating a rating server based on usage and download patterns within a peer-to-peer network
US7185109B2 (en) * 2001-04-20 2007-02-27 Hewlett-Packard Development Company, L.P. Recursive discovery of CDP type of nodes in a network of various node types
US7171415B2 (en) * 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US20030093562A1 (en) * 2001-11-13 2003-05-15 Padala Chandrashekar R. Efficient peer to peer discovery
US20030131167A1 (en) * 2001-12-20 2003-07-10 Rankin Linda J. Node ID discovery
US7117264B2 (en) * 2002-01-10 2006-10-03 International Business Machines Corporation Method and system for peer to peer communication in a network environment

Also Published As

Publication number Publication date
EP1468541B1 (en) 2005-10-05
DE60301783D1 (de) 2005-11-10
WO2003058917A1 (en) 2003-07-17
KR20040068112A (ko) 2004-07-30
DE60301783T2 (de) 2006-06-22
US20030131129A1 (en) 2003-07-10
JP2005514867A (ja) 2005-05-19
CN100493076C (zh) 2009-05-27
KR100819017B1 (ko) 2008-04-02
ATE306170T1 (de) 2005-10-15
US7117264B2 (en) 2006-10-03
EP1468541A1 (en) 2004-10-20
CN1596532A (zh) 2005-03-16
AU2003201646A1 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
JP3944168B2 (ja) ネットワーク環境におけるピアツーピア通信のための方法およびシステム
US7490140B2 (en) Peer data transfer orchestration
JP5050095B2 (ja) P2pコンテンツ共有のための方法、システム、及びノード
JP3851275B2 (ja) 分散コンピュータ・ネットワークのスケーラブルなリソース・ディスカバリおよび再構成
US7136927B2 (en) Peer-to-peer resource resolution
JP4317522B2 (ja) ピアツーピア環境におけるネットワーク・トラフィック制御
US7487509B2 (en) System and method for providing multiple embodiments of abstract software modules in peer-to-peer network environments
US7484225B2 (en) System and method for describing and identifying abstract software modules in peer-to-peer network environments
US7533161B2 (en) System and method for multiplatform implementation of abstract software modules in peer-to-peer network environments
US7363347B2 (en) Method and system for reestablishing connection information on a switch connected to plural servers in a computer network
JP5526137B2 (ja) 選択的データ転送ストレージ
JP2005158068A (ja) P2pプロトコルを用いてアプリケーションを共有する方法及び装置
JP2004246632A (ja) データ分配サーバ、プログラム及びネットワークシステム
CN103597471A (zh) 用于对计算机网络上的数据通信进行缓存的方法和系统
JP2013514733A (ja) ピアツーピア・ネットワーク内でサービスを突き止める方法および装置
WO2015126219A1 (ko) 피투피 기반 파일 전송 제어 방법 및 이를 위한 피투피 통신 제어 장치
US8244867B2 (en) System and method for the location of caches
EP1473897A1 (en) Information processing device, information processing method, and computer program
Aguilar et al. A hamming distance and fuzzy logic-based algorithm for P2P content distribution in enterprise networks
Haque et al. An architecture for client virtualization: A case study
JP4554564B2 (ja) 分散データの管理方法および管理システム
JP2009230686A (ja) コンテンツ管理サーバ及びコンテンツ管理プログラム
Lu et al. A scalable P2P overlay based on arrangement graph with minimized overhead
KR101535085B1 (ko) 피투피 통신 제어 방법 및 장치
US11863592B2 (en) Active speaker tracking using a global naming scheme

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070116

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070116

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070116

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070330

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070406

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees