DE60301783T2 - Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung - Google Patents

Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung Download PDF

Info

Publication number
DE60301783T2
DE60301783T2 DE60301783T DE60301783T DE60301783T2 DE 60301783 T2 DE60301783 T2 DE 60301783T2 DE 60301783 T DE60301783 T DE 60301783T DE 60301783 T DE60301783 T DE 60301783T DE 60301783 T2 DE60301783 T2 DE 60301783T2
Authority
DE
Germany
Prior art keywords
node
equal
peer
nodes
destination unit
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 - Lifetime
Application number
DE60301783T
Other languages
English (en)
Other versions
DE60301783D1 (de
Inventor
Craig Becker
Michael Conner
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
Application granted granted Critical
Publication of DE60301783D1 publication Critical patent/DE60301783D1/de
Publication of DE60301783T2 publication Critical patent/DE60301783T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Verfahren für die Datenübertragung zwischen zwei oder mehr „gleichberechtigten" Zieleinheiten in einer Netzwerkumgebung. Genauer gesagt bezieht sich die vorliegende Erfindung auf ein Verfahren für die Datenübertragung und die Verteilung von Daten wie beispielsweise Dateien oder Suchbefehle in einer Netzwerkumgebung.
  • HINTERGRUND DER ERFINDUNG
  • Bei derzeitigen Ansätzen für die Verteilung von Daten wie beispielsweise Dateien oder Suchbefehle an eine oder mehrere Zieleinheiten in einer Netzwerkumgebung können ein oder mehrere zentrale Server verwendet werden, um die Daten an eine Vielzahl von Zieleinheiten zu übertragen.
  • Ein derartiges zentral aufgebautes System bringt einige Schwierigkeiten mit sich. So schlägt ein nachteiliger Effekt auf den zentralen Server auch auf alle Zieleinheiten durch, die mit dem Server kommunizieren.
  • Andere Ansätze für die Verteilung von Daten verwenden ein Mittel für die Verteilung zwischen gleichberechtigten Einheiten (Peer-to-Peer), d.h. ein System, bei dem zwei oder mehr Zieleinheiten in der Lage sind, direkt miteinander zu kommunizieren. Derzeitige Protokolle für die verteilte Suche und die gemeinsame Dateinutzung auf Peer-to-Peer-Grundlage bringen jedoch gewisse Schwierigkeiten mit sich.
  • So bleiben beim Peer-to-Peer-Protokoll Napster z.B. die gemeinsam zu nutzenden Dateien bei der jeweiligen Zieleinheit, ohne einen Server zu durchlaufen. Napster verwendet allerdings dennoch einen Server, um nach bestimmten Dateien suchen und eine direkte Übertragung zwischen den Clients veranlassen zu können. Somit können beim Napster-Protokoll einige der oben beschriebenen Server-bezogenen Schwierigkeiten auftreten. Darüber hinaus können beim Napster-Protokoll Probleme auftreten, wie sie sich aus dem Peer-to-Peer-Protokoll ergeben, wie beispielsweise Netzwerküberlastung sowie sich ständig ändernde Suchergebnisse durch Zieleinheiten, die in das Netzwerk eintreten und dieses wieder verlassen. Das Napster-Protokoll kann große Bandbreiten benötigen, die Datenübertragung verlangsamen und nachteilige Auswirkungen auf die Ergebnisse haben.
  • Beim Gnutella-Protokoll verbleiben die gemeinsam zu nutzenden Dateien ebenfalls bei der jeweiligen Zieleinheit. Außerdem ist jede Zieleinheit in der Lage, nach bestimmten Dateien zu suchen. Somit kann jede Zieleinheit sowohl als Client als auch als Server dienen. Wenn jedoch unter Verwendung des Gnutella-Protokolls eine Suche durch eine Ausgangszieleinheit erfolgt, können sich die an der Ausgangszieleinheit empfangenen Suchergebnisse von Sekunde zu Sekunde ändern, wenn Zieleinheiten, die der Ausgangszieleinheit antworten, in das Netzwerk eintreten und dieses wieder verlassen. Wenn eine Zieleinheit eine Antwort für die Ausgangszieleinheit hat, werden die Ergebnisse außerdem über die dazwischen liegenden Zieleinheiten, welche die Ausgangsabfrage weitergeleitet haben, an die Ausgangszieleinheit weitergegeben. Während sich eine Suche im Gnutella-Netzwerk verbreitet, kann der Pfad von der Ausgangszieleinheit zu einer anderen Zieleinheit mit der gewünschten Datei daher immer länger und verschlungener werden. Als Folge hiervon können die Suchergebnisse verzögert werden und unter Umständen sogar veraltet sein, bevor sie an der Ausgangszieleinheit ankommen. Die Übertragung von Suchergebnissen von Zieleinheiten, die weit von der Ausgangseinheit entfernt sind, kann große Bandbreiten erfordern, die Datenübertragung verlangsamen und nachteilige Auswirkungen auf die Ergebnisse haben.
  • XP008000376 „Make the P2P leap with toadnode", Web Techniques, Miller Freeman, US (12–2000), 5(12), S. 44 bis 49, beschreibt ein Verfahren, mit dem ein Computer andere Computer in einem Netzwerk ermitteln kann. Bei diesem Verfahren sendet ein Computer eine Ping-Nachricht an alle Computer, mit denen er verbunden ist, und diese Computer leiten die Nachricht dann an die Computer weiter, mit denen sie verbunden sind, usw. Jeder Computer, der eine Ping-Nachricht empfängt, antwortet mit einer Pong-Nachricht, die an den Ausgangscomputer weitergeleitet wird. Das Problem bei dieser Technik besteht darin, dass der Ausgangscomputer von jedem Computer des Netzwerks eine Pong-Nachricht empfängt, wodurch das Netzwerk in erheblichem Maße belastet wird.
  • Aus diesem Grund wäre es wünschenswert, ein Verfahren für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten bereitzustellen, das wirtschaftlicher ist, die Netzwerk- und Prozessorlast verringert und die Leistung verbessert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Aspekt der vorliegenden Erfindung stellt ein Verfahren für die Datenübertragung zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung bereit. Ein Suchbefehl wird von einem momentanen gleichberechtigten Knoten an mindestens einen gleichberechtigten Nachbarknoten übertragen, wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem momentanen gleichberechtigten Knoten steht. Eine zusammengesetzte Liste der gleichberechtigten Knoten wird an dem momentanen gleichberechtigten Knoten empfangen, wobei die zusammengesetzte Liste der gleichberechtigten Knoten Informationen über mindestens einen gleichberechtigten Knoten umfasst, der in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  • Der Suchbefehl kann nach Ablauf einer vorgegebenen Verzögerung von dem momentanen gleichberechtigten Knoten übertragen werden. Der Suchbefehl kann an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten übertragen werden. Eine Tabelle der gleichberechtigten Knoten kann an dem momentanen gleichberechtigten Knoten erzeugt und mit der zusammengesetzten Liste der gleichberechtigten Knoten aktualisiert werden. Ein zweiter Suchbefehl von einem gleichberechtigten Ausgangsknoten kann an dem momentanen gleichberechtigten Knoten empfangen werden, und die Tabelle der gleichberechtigten Knoten kann als Reaktion auf den zweiten Suchbefehl an den gleichberechtigten Ausgangsknoten übertragen werden. Eine Datennachricht mit einem eindeutigen Beschreiber kann an dem momentanen gleichberechtigten Knoten empfangen werden, wobei die Datennachricht über einen eindeutigen Beschreiber verfügt. Der Beschreiber kann mit einer Beschreibertabelle verglichen werden, wobei die Beschreibertabelle eine Vielzahl von Datennachrichten und zugehörigen Beschreibern umfasst. Die Beschreibertabelle kann mit der empfangenen Datennachricht und dem Beschreiber der empfangenen Datennachricht aktualisiert werden. Ein Abfragebefehl kann von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten weitergeleitet werden. Die Antwortdaten können an dem momentanen gleichberechtigten von mindestens einem anderen gleichberechtigten Knoten direkt empfangen werden, wobei der mindestens eine andere gleichberechtigte Knoten in Kommunikation mit dem mindestens einen Nachbarknoten steht. Ein Abfragebefehl von einem gleichberechtigten Ausgangsknoten kann an dem momentanen gleichberechtigten Knoten empfangen werden, und Antwortdaten können als Reaktion auf den Abfragebefehl von dem momentanen gleichberechtigten Knoten direkt an den gleichberechtigten Ausgangsknoten übertragen werden. Der Abfragebefehl kann von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten weitergeleitet werden.
  • Ein weiterer Aspekt der vorliegenden Erfindung stellt ein Computerprogrammprodukt auf einem computernutzbaren Medium bereit, das eine Datenübertragung zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung ermöglicht. Das Programm kann ein Mittel für die Übertragung eines Suchbefehls von einem momentanen gleichberechtigten Knoten zu mindestens einem gleichberechtigten Nachbarknoten beinhalten, wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem momentanen gleichberechtigten Knoten steht, sowie ein Mittel für den Empfang einer zusammengesetzten Liste der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei die zusammengesetzte Liste der gleichberechtigten Knoten Informationen zu mindestens einem gleichberechtigten Knoten umfasst, der in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  • Ein weiterer Aspekt der vorliegenden Erfindung stellt ein System für die Datenübertragung zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung bereit. Das System kann ein Mittel für die Übertragung eines Suchbefehls von einem momentanen gleichberechtigten Knoten an mindestens einen gleichberechtigten Nachbarknoten beinhalten, wobei der Nachbarknoten in Kommunikation mit dem momentanen gleichberechtigten Knoten steht, sowie ein Mittel für den Empfang einer zusammengesetzten Liste der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei die zusammengesetzte Liste der gleichberechtigten Knoten Informationen zu mindestens einem gleichberechtigten Knoten umfasst, der in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  • Bei einer Ausführungsform der Erfindung können das Programm und System der vorliegenden Erfindung weiterhin ein Mittel beinhalten, mit dem der Suchbefehl nach Ablauf einer vorgegebenen Verzögerung von dem momentanen gleichberechtigten Knoten übertragen wird. Gemäß der vorliegenden Erfindung können ein Mittel für die Übertragung des Suchbefehls an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten sowie ein Mittel für die Erzeugung einer Tabelle der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten und ein Mittel für die Aktualisierung der Tabelle der gleichberechtigten Knoten mit der zusammengesetzten Liste der gleichberechtigten Knoten bereitgestellt werden. Zusätzlich können das Programm und System der vorliegenden Erfindung auch ein Mittel für den Empfang eines zweiten Suchbefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten sowie ein Mittel für die direkte Übertragung der Liste der gleichberechtigten Knoten von dem momentanen gleichberechtigten Knoten an den gleichberechtigten Ausgangsknoten als Reaktion auf den zweiten Suchbefehl und für den Empfang einer Datennachricht an dem momentanen gleichberechtigten Knoten, wobei die Datennachricht über einen eindeutigen Beschreiber verfügt, und ein Mittel für den Vergleich des Beschreibers der empfangenen Datennachricht mit einer Beschreibertabelle umfassen, wobei die Beschreibertabelle eine Vielzahl von Datennachrichten und zugehörigen Beschreibern umfasst. Gemäß der vorliegenden Erfindung kann ein Mittel für die Aktualisierung der Beschreibertabelle mit der empfangenen Datennachricht und dem Beschreiber der empfangenen Datennachricht bereitgestellt werden. Das Programm und System der vorliegenden Erfindung können ein Mittel für die Übertragung eines Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten beinhalten. Zusätzlich können das Programm und System ein Mittel für den direkten Empfang von Antwortdaten von mindestens einem anderen gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei der mindestens eine andere gleichberechtigte Knoten in Kommunikation mit dem mindestens einen Nachbarknoten steht, sowie ein Mittel für den Empfang eines Abfragebefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten und ein Mittel für die direkte Übertragung von Antwortdaten von dem momentanen gleichberechtigten Knoten an den gleichberechtigten Ausgangsknoten als Reaktion auf den Abfragebefehl umfassen. Gemäß dem Programm und System der vorliegenden Erfindung kann außerdem ein Mittel für die Weiterleitung des Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten bereitgestellt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden wird die Erfindung beispielhaft mit Blick auf eine bevorzugte Ausführungsform beschrieben, wie dies in den beigefügten Zeichnungen veranschaulicht ist, wobei:
  • 1 eine schematische Darstellung einer Ausführungsform eines Netzwerks von Datenverarbeitungssystemen gemäß der vorliegenden Erfindung ist;
  • 2 ein Blockschaltbild einer Ausführungsform eines Datenverarbeitungssystems gemäß der vorliegenden Erfindung ist;
  • 3 ein Blockschaltbild einer anderen Ausführungsform eines Datenverarbeitungssystems gemäß der vorliegenden Erfindung ist;
  • 4 ein Ablaufdiagramm einer Ausführungsform eines Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung gemäß der vorliegenden Erfindung ist;
  • 5 ein Ablaufdiagramm einer Ausführungsform einer Teilroutine des in 4 gezeigten Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung ist;
  • 6 ein Ablaufdiagramm einer Ausführungsform einer anderen Teilroutine des in 4 gezeigten Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung ist;
  • 7 ein Ablaufdiagramm einer Ausführungsform einer anderen Teilroutine des in 4 gezeigten Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung ist; und
  • 8 ein Ablaufdiagramm einer Ausführungsform einer anderen Teilroutine des in 4 gezeigten Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1 ist eine schematische Darstellung eines Netzwerks 100 von Datenverarbeitungssystemen gemäß einer Ausführungsform der vorliegenden Erfindung. Das Datenverarbeitungssystemnetzwerk 100 kann ein Netzwerk von Computern sein, auf denen eine Ausführungsform der vorliegenden Erfindung realisiert sein kann. Das Datenverarbeitungssystemnetzwerk 100 kann ein Netzwerk beinhalten. Das Netzwerk 102 kann ein beliebiges geeignetes Medium sein, das zur Bereitstellung von Datenübertragungsverbindungen zwischen verschiedenen Einheiten, z.B. Computern, verwendet wird, die innerhalb des Datenverarbeitungssystemnetzwerks 100 miteinander verbunden sind oder in Kommunikation miteinander stehen. So kann das Netzwerk 102 z.B. Verbindungen wie drahtgebundene Verbindungen, drahtlose Verbindungen oder auch Lichtwellenleiterkabel beinhalten.
  • Bei der in 1 gezeigten Ausführungsform können die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 in Kommunikation mit dem Netzwerk 102 stehen. Bei diesen Zieleinheiten kann es sich z.B. um Personalcomputer oder Netzwerkcomputer handeln. Eine oder mehrere der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 können als gleichberechtigte Zieleinheiten dienen, wie weiter unten beschrieben wird. Die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 können auch als gleichberechtigte Knoten für eine oder mehrere gleichberechtigte zieleinheiten dienen, wie weiter unten beschrieben wird. Das Datenverarbeitungssystemnetzwerk 100 kann zusätzliche Server, Clients, Zieleinheiten und andere Einheiten beinhalten, die nicht abgebildet sind.
  • Eine oder mehrere Speichereinheiten wie z.B. die Speichereinheiten 103, 105 können ebenfalls mit dem Netzwerk 102 in Kommunikation stehen. Die Speichereinheiten 103, 105 können Daten wie beispielsweise Bootdateien, Betriebssystemabbilder, Anwendungsdateien und Anwendungen speichern, die von einer oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verarbeitet oder übertragen werden können. Die Speichereinheiten 103, 105 können außerdem Daten speichern, die dem Netzwerk 102 und/oder anderen Komponenten, die – wie unten beschrieben – in Kommunikation mit dem Netzwerk 102 stehen, verfügbar gemacht oder von diesem verarbeitet werden sollen. Bei manchen Ausführungsformen der Erfindung können die Speichereinheiten 103, 105 auch als gleichberechtigte Einheiten für die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 dienen und Beschreiber, Nachrichten und/oder Antwortdaten bereitstellen, wie weiter unten ausführlich erläutert wird.
  • Wie aus 1 hervorgeht, kann es sich bei dem Datenverarbeitungssystemnetzwerk 100 um ein beliebiges geeignetes System für die Datenverarbeitung handeln. So kann das System 100 z.B. das Internet sein. Alternativ kann das Datenverarbeitungssystemnetzwerk auch ein beliebiger geeigneter Netzwerktyp wie beispielsweise ein Intranet, ein lokales Netz (LAN) oder ein Fernnetz (WAN) sein. Bei einer Ausführungsform der Erfindung stellt das Netzwerk 102 eine weltweite Sammlung von Netzwerken und Gateways dar, die den TCP/IP-Protokollsatz verwenden, um miteinander zu kommunizieren. Eine Haupttrasse von Hochgeschwindigkeitsleitungen für die Datenübertragung zwischen wichtigen Knoten oder Hostcomputern ermöglicht die Datenübertragung zwischen Tausenden von gewerblichen, behördlichen, zu Bildungsinstitutionen gehörenden und anderweitigen Computersystemen, die Daten und Nachrichten weiterleiten.
  • Bei einer Ausführungsform der Erfindung ist das Datenverarbeitungssystemnetzwerk ein dezentrales Peer-to-Peer-System. Bei einem derartigen System 100 kann jede der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 sowohl als Server als auch als Client dienen. Auf diese Weise können die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Aufgaben durchführen, die üblicherweise mit Clients in Zusammenhang gebracht werden, und daneben auch Aufgaben, die üblicherweise Servern zugeordnet werden. Bei manchen Ausführungsformen der Erfindung können die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Client-seitige Schnittstellen bereitstellen, über welche die Benutzer Client-bezogene Aufgaben wie beispielsweise die Ausgabe von Abfragen und die Anzeige von Suchergebnissen durchführen können. Gleichzeitig kann jede der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 auch Serverbezogene Aufgaben bereitstellen, z.B. die Entgegennahme von Abfragen von anderen Zieleinheiten, die Überprüfung des eigenen Datensatzes auf übereinstimmende Daten und die Antwort an andere Zieleinheiten mit Abfrageergebnissen. Das verteilte System 100 ist in hohem Maße fehlertolerant, da sein Betrieb nicht unterbrochen wird, wenn eine Teilgruppe oder ein Knoten von Zieleinheiten offline geht. So hebt der Bereich 117 z.B. eine Teilgruppe von Zieleinheiten (bestehend aus den Zieleinheiten 112, 114, 116, 118, 128, 136, 138) des Systems 100 hervor. Gleichzeitig gibt der Bereich 127 eine zweite Teilgruppe von Zieleinheiten (bestehend aus den Zieleinheiten 122, 124, 126) des Systems 100 an. Wenn bei einem verteilten System 100 die Teilgruppe aus Bereich 117 offline geht, bedeutet dies nicht notwendigerweise eine Unterbrechung des Betriebs des Systems 100, des Netzwerks 102 oder des Bereichs 127 bzw. der Zieleinheiten 122, 124, 126. Wenn die Teilgruppe aus Bereich 127 offline geht, bedeutet das entsprechend nicht notwendigerweise eine Unterbrechung des Betriebs des Systems 100, des Netzwerks 102 oder des Bereichs 117 bzw. der Zieleinheiten 112, 114, 116, 118, 128, 136, 138.
  • Die 2 und 3 sind Blockschaltbilder von Datenverarbeitungssystemen, die gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden können. Bei einer Ausführungsform der Erfindung kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 ein Datenverarbeitungssystem sein, das eine beliebige Kombination aus einer oder mehreren der in 2 und 3 beschriebenen Komponenten beinhaltet.
  • 2 ist ein Blockschaltbild eines Datenverarbeitungssystems 200 gemäß einer Ausführungsform der vorliegenden Erfindung. Bei einer Ausführungsform der Erfindung kann das Datenverarbeitungssystem 200 als eine oder mehrere der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 aus 1 realisiert sein. Alternativ kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 eine oder mehrere der in 2 beschriebenen Komponenten beinhalten.
  • Das Datenverarbeitungssystem 200 kann ein symmetrisches Multiprozessorsystem (SMP) sein, das eine Vielzahl von Prozessoren 202 und 204 beinhaltet, die mit dem Systembus 206 verbunden sind. Alternativ kann ein Einprozessorsystem verwendet werden. Die Speichersteuereinheit/der Cachespeicher 208 kann ebenfalls mit dem Systembus 206 verbunden sein. Die Speichersteuereinheit/der Cachespeicher 208 kann eine Schnittstelle zum lokalen Speicher 209 bereitstellen. Die E/A-Busbrücke 210 kann ebenfalls mit dem Systembus 206 verbunden sein und eine Schnittstelle zum E/A-Bus 212 bereitstellen. Die Speichersteuereinheit/der Cachespeicher 208 und die E/A-Busbrücke 210 können wie abgebildet integriert sein, oder es kann sich um separate Komponenten handeln.
  • Die mit dem E/A-Bus 212 verbundene PCI-Busbrücke 214 (Peripheral Component Interconnect) kann eine Schnittstelle zum lokalen PCI-Bus 216 bereitstellen. Ein oder mehrere Modems können mit dem PCI-Bus 216 verbunden sein. Typische PCI-Bus-Realisierungen unterstützen vier PCI-Erweiterungssteckplätze oder -Erweiterungsanschlüsse. Der Modem 218 und das Netzwerk 220 können mit dem lokalen PCI-Bus 216 verbunden sein. Diese Verbindung kann über Erweiterungskarten erfolgen. Bei einer Ausführungsform der Erfindung stellen der Modem 218 und zugehörige Anschlüsse Datenübertragungsverbindungen zu Zieleinheiten wie z.B. Netzwerkcomputern bereit. Bei derartigen Zieleinheiten kann es sich beispielsweise um die für 1 beschriebenen Einheiten handeln.
  • Die zusätzlichen PCI-Busbrücken 222 und 224 können Schnittstellen für zusätzliche PCI-Busse 226 und 228 bereitstellen. Von den PCI-Bussen 226 und 228 können zusätzliche Modems oder Netzwerkadapter unterstützt werden. So können bei einer Ausführungsform der Erfindung die PCI-Busse 226, 228 z.B. einen Netzwerkadapter unterstützen, auf dem eine Fernladefunktion wie beispielsweise die RPL-Funktion (Reverse Polish LISP) installiert ist. Auf diese Weise kann das Datenverarbeitungssystem 200 Verbindungen zu mehreren Netzwerkcomputern ermöglichen. Ein speicherkonformer Grafikadapter 230 und eine Festplatte 232 können ebenfalls wie abgebildet entweder direkt oder indirekt mit dem E/A-Bus 212 verbunden sein.
  • Die in 2 abgebildeten Komponenten können wie gezeigt oder in einer beliebigen anderen geeigneten Art und Weise angeordnet sein, welche die gewünschte Funktion des Datenverarbeitungssystems 200 ermöglicht. Ergänzend zu den oder anstelle der abgebildeten Komponenten können zusätzlich auch andere Peripherieeinheiten wie Optoplattenlaufwerke und Ähnliches verwendet werden.
  • Bei einer Ausführungsform der Erfindung kann das Datenverarbeitungssystem 200 Software- und Hardwarekomponenten beinhalten, die eine Funktion des Systems 200 gemäß einem verteilten Peer-to-Peer-Protokoll ermöglichen. Dazu können z.B. eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen einer oder mehreren Zieleinheiten und ein Regelsatz gehören, der den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten steuert. Diese Nachrichten und Regeln sowie Verfahren für die Verwendung dieser Nachrichten und Regeln gemäß einer Ausführungsform der vorliegenden Erfindung werden weiter unten ausführlicher erläutert.
  • 3 ist ein Blockschaltbild eines Datenverarbeitungssystems 300 gemäß einer Ausführungsform der vorliegenden Erfindung. Bei einer Ausführungsform der Erfindung kann das Datenverarbeitungssystem 300 als eine oder mehrere der in 1 gezeigten Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 realisiert sein. Alternativ kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 eine oder mehrere der für 3 beschriebenen Komponenten beinhalten.
  • Bei einer Ausführungsform der Erfindung ist das Datenverarbeitungssystem 300 eine Zieleinheit mit optionalen Plattenlaufwerken. Alternativ kann das Datenverarbeitungssystem 300 ein eigenständiges System sein, das so konfiguriert ist, dass es zum Hochfahren keine Netzwerkschnittstelle benötigt. Alternativ kann das Datenverarbeitungssystem 300 auch eine oder mehrere Netzwerkschnittstellen umfassen. Das Datenverarbeitungssystem 300 kann auch eine PDA-Einheit (Personal Digital Assistant, Minicomputer) sein. Das Datenverarbeitungssystem kann außerdem die Form eines Notebook- oder Taschencomputers (handheld Computer) annehmen. Alternativ kann das Datenverarbeitungssystem 300 ein Internetkiosk oder eine Webeinrichtung (web appliance) sein. Die Prozesse einer Ausführungsform der vorliegenden Erfindung können außerdem auch mit einem Mehrprozessor-Datenverarbeitungssystem Anwendung finden.
  • Das Datenverarbeitungssystem 300 kann eine PCI-Local-Bus-Architektur verwenden. Obwohl das abgebildete Beispiel einen PCI-Bus verwendet, können auch andere Busarchitekturen wie AGP (Accelerated Graphics Port) und ISA (Industry Standard Architecture) verwendet werden. Der Prozessor 302 und der Hauptspeicher 304 können über die PCI-Brücke 308 mit dem lokalen PCI-Bus 306 verbunden sein. Die PCI-Brücke 308 kann auch eine integrierte Speichersteuereinheit und einen Cachespeicher für den Prozessor 302 beinhalten. Zusätzliche Verbindungen zum lokalen PCI-Bus 306 können über den Direktanschluss von Komponenten oder über Erweiterungskarten hergestellt werden. Bei einer Ausführungsform der Erfindung sind der LAN-Adapter 310, der SCSI-Hostbusadapter 312 (Small Computer System Interface) und die Erweiterungsbusschnittstelle 314 mittels Direktanschluss der Komponenten mit dem lokalen PCI-Bus 306 verbunden. Im Gegensatz hierzu sind der Audioadapter 316, der Grafikadapter 318 und der Audio-/Videoadapter 319 über Erweiterungskarten, die in Erweiterungssteckplätze eingesteckt werden, mit dem lokalen PCI-Bus 306 verbunden. Die Erweiterungsbusschnittstelle 314 kann eine Anschlussmöglichkeit für zusätzliche Komponenten wie z.B. einen Tastatur- und Mausadapter 320, einen Modem 322 und einen zusätzlichen Speicher 324 bereitstellen. Ein SCSI-Hostbusadapter 312 kann eine Anschlussmöglichkeit für zusätzliche Komponenten wie beispielsweise ein Festplattenlaufwerk 326, ein Bandlaufwerk 328, ein CD-ROM-Laufwerk 330 oder ein DVD-ROM-Laufwerk 332 bereitstellen. Bei dem lokalen PCI-Bus 306 kann es sich um eine beliebige geeignete Local-Bus-Realisierung handeln. Typische PCI-Local-Bus-Realisierungen unterstützen drei oder vier PCI-Erweiterungssteckplätze oder -Erweiterungsanschlüsse.
  • Dateien und Befehle für Datei wie z.B. Betriebsdateien für ein Betriebssystem, das objektorientierte Betriebssystem sowie Anwendungen oder Programme können sich auf Speichereinheiten wie z.B. dem Festplattenlaufwerk 326 befinden. Diese Betriebssysteme, Anwendungen und/oder Programme können zur Ausführung durch den Prozessor 302 in den Hauptspeicher 304 geladen werden.
  • Die in 3 abgebildeten Komponenten des Systems 300 können wie gezeigt oder in einer beliebigen anderen geeigneten Art und Weise angeordnet sein, welche die gewünschte Funktion des Datenverarbeitungssystems 300 ermöglicht. Ergänzend zu den oder anstelle der abgebildeten Komponenten können auch andere interne Hardware- oder Peripherieeinheiten wie ein Flash-ROM (oder ein gleichwertiger nichtflüchtiger Speicher) oder auch Optoplattenlaufwerke und Ähnliches verwendet werden. So kann eine Ausführungsform des Datenverarbeitungssystems 300 z.B. mit einem ROM und/oder Flash-ROM konfiguriert sein, um so einen nichtflüchtigen Speicher für die Speicherung von Betriebssystemdateien und/oder vom Benutzer erzeugten Dateien bereitzustellen. Eine andere Ausführungsform des Datenverarbeitungssystems 300 kann Netzwerkadapter beinhalten, mit denen Funktionen eines Fernladeprogramms und/oder Funktionen wie beispielsweise die RPL-Funktion übertragen oder empfangen werden können.
  • Bei einer Ausführungsform der Erfindung kann das Datenverarbeitungssystem 300 Software- und Hardwarekomponenten beinhalten, die eine Funktion des Systems 300 gemäß einem verteilten Peer-to-Peer-Protokoll ermöglichen. Dazu können z.B. eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen einer oder mehreren Zieleinheiten und ein Regelsatz gehören, der den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten steuert. Diese Nachrichten und Regeln sowie Verfahren für die Verwendung dieser Nachrichten und Regeln gemäß einer Ausführungsform der vorliegenden Erfindung werden weiter unten ausführlicher erläutert.
  • 4 zeigt eine Ausführungsform eines Verfahrens 400 für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten gemäß der vorliegenden Erfindung. Das in 4 gezeigte Verfahren kann unter Verwendung eines beliebigen geeigneten Peer-to-Peer-Protokolls realisiert werden, das die netzwerkübergreifende verteilte Suche und die gemeinsame Dateinutzung ermöglicht.
  • Um die Datenübertragung zwischen den Zieleinheiten oder Knoten zu ermöglichen, kann ein beliebiger geeigneter Transportmechanismus verwendet werden, z.B. HTTP über TCP.
  • Alternativ kann ein Byte-orientierter Transport verwendet werden. Alternativ kann das Netzwerkprotokoll UDP (User Datagram Protocol) verwendet werden. Alternativ kann HTTP/SOAD (Simple Object Access Protocol, Einfaches Objekt-Zugriffs-Protokoll) verwendet werden. SOAP ist ein einfaches XML-über-HTTP-Wrapper-Programm für gängige Verbindungstechnologien wie beispielsweise COM, Apple Events und CORBA. Als Transportmechanismus verwendet SOAP HTTP, während die Aufrufspezifikation mittels XML erfolgt.
  • Bei einer Ausführungsform der Erfindung ermöglicht der Transportmechanismus die Datenübertragung zwischen Zieleinheiten gemäß einem geeigneten Peer-to-Peer-Protokoll. Dieses Peer-to-Peer-Protokoll kann z.B. eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen einer oder mehreren Zieleinheiten und einen Regelsatz beinhalten, der den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten steuert. Diese Nachrichten und Regeln sowie Verfahren für die Verwendung dieser Nachrichten und Regeln gemäß einer Ausführungsform der vorliegenden Erfindung werden weiter unten ausführlicher erläutert.
  • So können bei einer Ausführungsform der Erfindung z.B. eine oder mehrere Datennachrichten zwischen einer oder mehreren Zieleinheiten übertragen werden. Diese Datennachrichten können beliebige geeignete Daten wie beispielsweise Antworten auf Abfragen oder Befehle, sein, die von einer Zieleinheit zur anderen übertragen werden sollen. Diese Datennachrichten können z.B. Daten in Form von 8-Byte-Zeichenketten, 16-Byte-Zeichenketten, 32-Byte-Zeichenketten oder Zeichenketten mit einer beliebigen geeigneten Länge sein. Die Datennachrichten können z.B. in Form von Suchdatennachrichten (im Folgenden als Ping-Nachrichten bezeichnet), Kennzeichnungsdatennachrichten (im Folgenden als Pong-Nachrichten bezeichnet), Abfragedatennachrichten und Abfrageantwort-Datennachrichten vorliegen. Die Datennachrichten können z.B. durch Regeln wie Zeitüberschreitungswerte und TTL-Zähler (Time to Live, Verweildauer) gesteuert werden, die auf dem Fachgebiet gut bekannt sind.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Datennachricht eine Beschreiberkennung beinhalten. Bei einer Ausführungsform der Erfindung kann die Beschreiberkennung eine 16-Byte-Zeichenkette sein, mit der eine bestimmte Datennachricht, die über das Netzwerk 102 und/oder System 100 übertragen wird, eindeutig bezeichnet wird. So kann eine Datennachricht mit einer 32-Byte-Zeichenkette z.B. eine Beschreiberkennung mit einer 16 Byte umfassenden Zeichenkette beinhalten, die sie eindeutig von jeder anderen über das Netzwerk übertragenen Datennachricht unterscheidet. Wenn eine Nachricht eine bestimmte Zieleinheit mehrmals passiert, kann die Zieleinheit die Nachricht somit anhand ihrer Beschreiberkennung erkennen.
  • Wie oben erwähnt, kann die Datennachricht eine Suchnachricht (im Folgenden als Ping-Nachricht bezeichnet) sein. Mit dieser Ping-Nachricht können eine oder mehrere Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 angeben, dass die Ping-Nachricht das Netzwerk 102 und/oder System 100 aktiv abfragt. Eine derartige Ping-Nachricht kann die Identifizierung einer oder mehrerer Zieleinheiten anfordern. So kann die Zieleinheit 114 z.B. eine Ping-Nachricht an die Zieleinheiten 112, 116 und 118 senden, mit der sie die Zieleinheiten 112, 116, 118 auffordert, sich auszuweisen. Bei einer Ausführungsform der Erfindung kann eine Ping-Datennachricht anfordern, dass die Identifikation eine zusammengesetzte Liste (Tabelle der gleichberechtigten Knoten) der gleichberechtigten Zieleinheiten einer gegebenen Zieleinheit beinhaltet. So kann die Zieleinheit 114 z.B. eine Ping-Nachricht an die Zieleinheiten 112, 116, 118 senden, mit der sie die Zieleinheit 112 aufordert, die gleichberechtigten Einheiten der Zieleinheit 112 anzugeben, mit der sie die Zieleinheit 116 auffordert, die gleichberechtigten Einheiten der Zieleinheit 116 anzugeben, und mit der sie die Zieleinheit 118 auffordert, die gleichberechtigten Zieleinheiten der Zieleinheit 118 anzugeben.
  • Bei einer Ausführungsform der Erfindung kann das Peer-to-Peer-Protokoll auch einen Ping-Zeitüberschreitungswert beinhalten, bei der es sich um eine Regel handeln kann, die zur Steuerung von Ping-Datennachrichten verwendet wird. Dieser Ping-Zeitüberschreitungswert kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden von einer bestimmten Zieleinheit gesendet werden. Der Wert der Ping-Zeitüberschreitung kann unter Verwendung eines beliebigen geeigneten Mittels, das auf dem Fachgebiet bekannt ist, ermittelt werden. So kann der Wert der Ping-Zeitüberschreitung z.B. ausgehend von den Spezifikationen der Zieleinheit, welche den Ping-Zeitüberschreitungswert steuert, voreingestellt sein. Alternativ kann der Benutzer einer bestimmten Zieleinheit den Wert der Ping-Zeitüberschreitung festlegen. Alternativ kann der Wert der Ping-Zeitüberschreitung auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Alternativ kann der von einer gegebenen Zieleinheit verwendete Transportmechanismus den Wert der Ping- Zeitüberschreitung bestimmen. Alternativ kann ein geeigneter Algorithmus den Wert der Ping-Zeitüberschreitung bestimmen. Dieser Algorithmus kann z.B. auf den Systembeschränkungen einer bestimmten Zieleinheit (gleichberechtigter Knoten) oder auf Eingabewerten des Benutzers beruhen.
  • Wie oben beschrieben, kann die Datennachricht auch eine Kennzeichnungsnachricht (im Folgenden als Pong-Datennachricht bezeichnet) sein. Diese Pong-Nachricht kann von einer oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet werden, um einer Zieleinheit zu antworten, die eine Ping-Nachricht übertragen hat. So kann die Zieleinheit 112 z.B. eine Pong-Nachricht an die Zieleinheit 114 senden, welche die Zieleinheit 112 gegenüber der Zieleinheit 114 beschreibt. Bei einer Ausführungsform der Erfindung kann die Pong-Nachricht die Adresse einer aktiven Zieleinheit enthalten. Somit kann die Zieleinheit 112 eine Pong-Nachricht an die Zieleinheit 114 senden, welche die Adresse der Zieleinheit 112 angibt. Wenn die Zieleinheit 114 auch eine Ping-Nachricht an die Zieleinheit 118 gesendet hat, kann die Zieleinheit 114 auch eine Pong-Nachricht von der Zieleinheit 118 empfangen, welche die IP-Adresse der Zieleinheit 118 angibt. Alternativ kann eine Pong-Datennachricht eines oder mehrere der folgenden Elemente beinhalten: eine Anschlussnummer (port number), unter der die antwortende Zieleinheit eingehende Verbindungen entgegennehmen kann, die IP-Adresse der antwortenden Zieleinheit, die Anzahl der Dateien, welche die antwortende Zieleinheit zur gemeinsamen Nutzung über das Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche die antwortende Zieleinheit zur gemeinsamen Nutzung über das Netzwerk bereitstellt. Bei einer Ausführungsform der Erfindung kann die Pong-Datennachricht eine zusammengesetzte Liste (oder Tabelle der gleichberechtigten Knoten) der gleichberechtigten Nachbareinheiten einer gegebenen Zieleinheit bereitstellen. So kann die Zieleinheit 112 z.B. eine Pong-Nachricht an die Zieleinheit 114 senden, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine einzige gleichberechtigte Zieleinheit 114 verfügt. Gleichzeitig kann die Zieleinheit 118 ebenfalls eine Pong-Nachricht an die Zieleinheit 114 senden, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 118 über drei gleichberechtigte Zieleinheiten 114, 128, 138 verfügt. Die Pong-Nachricht von der Zieleinheit 118 kann außerdem Informationen zu den drei gleichberechtigten Einheiten 114, 128, 138 der Zieleinheit 118 beinhalten, unter anderem die Anschlussnummer, unter der die gleichberechtigte Zieleinheit 114 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die zweite gleichberechtigte Zieleinheit 128 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die dritte gleichberechtigte Zieleinheit 138 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten Zieleinheit 114, die IP-Adresse der zweiten gleichberechtigten Zieleinheit 128, die IP-Adresse der dritten gleichberechtigten Zieleinheit 138 sowie beliebige andere geeignete Informationen.
  • Wie oben beschrieben, kann die Datennachricht auch eine Abfragenachricht sein. Diese Abfragenachricht kann von einer oder mehreren der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet werden, um Informationen von anderen Zieleinheiten und beliebigen anderen Komponenten des Netzwerks 102 oder Systems 100 anzufordern. So kann die Abfragenachricht z.B. Informationen zu Software- oder Hardwarekomponenten einer gegebenen Zieleinheit, zu Software- oder Hardwarekonfigurationen einer gegebenen Zieleinheit, zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit oder zu Dateien im Speicher einer gegebenen Zieleinheit anfordern. So kann die Zieleinheit 114 z.B. eine Abfragedatennachricht an die Zieleinheiten 112, 114, 118 senden, mit der sie die Zieleinheiten 112, 114, 118 fragt, ob sie über eine bestimmte Datei verfügen. Bei einer Ausführungsform der Erfindung kann die Abfragenachricht außerdem eine Anforderung einer zusammengesetzten Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten Zieleinheiten beinhalten. Gemäß einer Ausführungsform der vorliegenden Erfindung können auch andere Arten von Abfragen übertragen werden, wie sie auf dem Fachgebiet bekannt sind.
  • Wie oben beschrieben, kann es sich bei der Datennachricht auch um eine Antwortdatennachricht handeln. Diese Pong-Nachricht kann von einer oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet werden, um einer Zieleinheit zu antworten, die eine Abfragenachricht übertragen hat. So kann die Zieleinheit 112 z.B. eine Antwortnachricht an die Zieleinheit 114 senden, die angibt, ob die Zieleinheit 112 über die Datei verfügt, welche die Zieleinheit 114 sucht. Wenn die Zieleinheit 114 auch eine Ping-Nachricht an die Zieleinheit 118 gesendet hat, kann die Zieleinheit 114 auch eine Antwortdatennachricht von der Zieleinheit 118 empfangen, die angibt, ob die Zieleinheit 118 über die von der Zieleinheit 114 gesuchte Datei verfügt.
  • Mit dem Peer-to-Peer-Protokoll kann eine beliebige der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Datennachrichten senden oder empfangen. Somit kann also auch die Zieleinheit 128 eine Ping-Nachricht an die Zieleinheit 118 senden, mit der sie eine zusammengesetzte Liste der gleichberechtigten Zieleinheiten der Zieleinheit 118 anfordert. In der Folge kann die Zieleinheit 128 eine Pong-Nachricht von der Zieleinheit 118 empfangen, die Informationen zu den drei gleichberechtigten Einheiten 114, 128, 138 der Zieleinheit 118 bereitstellt, unter anderem die Anschlussnummer, unter der die gleichberechtigte Zieleinheit 114 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die zweite gleichberechtigte Zieleinheit 128 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die dritte gleichberechtigte Zieleinheit 138 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten Zieleinheit 114, die IP-Adresse der zweiten gleichberechtigten Zieleinheit 128, die IP-Adresse der dritten gleichberechtigten Zieleinheit 128 sowie beliebige andere geeignete Informationen. In der Zwischenzeit kann die Zieleinheit 116 eine Abfragenachricht senden und Antwortdatennachrichten von anderen Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 empfangen.
  • Somit kann die Routine aus 4 für jede beliebige der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 und, bei einer Ausführungsform der Erfindung, gleichzeitig für mehrere gegebene Zieleinheit durchgeführt werden. Zusätzlich kann als Ergebnis der Routine aus 4 jede beliebige der Zieleinheiten Datennachrichten empfangen, bei denen es sich z.B. um Tabellen der gleichberechtigten Knoten handeln kann. Obwohl die folgenden Abschnitte die Zieleinheit 114 als gleichberechtigten Zielknoten mit Bezug auf das Netzwerk 102 und die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 benennen, können eine oder mehrere beliebige Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 mit Bezug auf beliebige andere Zieleinheiten des Netzwerks 102 und/oder Systems 100 ebenfalls als gleichberechtigte Ausgangsknoten dienen.
  • Wie aus Block 402 hervorgeht, kann die Zieleinheit 114 eine Tabelle der gleichberechtigten Knoten initialisieren. Bei einer Ausführungsform der Erfindung kann diese Tabelle der gleichberechtigten Knoten eine Liste der gleichberechtigten Zieleinheiten sowie zu jeder gleichberechtigten Zieleinheit gehörige Informationen enthalten, beispielsweise die IP-Adressen jeder einzelnen gleichberechtigten Zieleinheit und den Anschluss, an dem jede einzelne gleichberechtigte Zieleinheit eingehende Verbindungen entgegennimmt. Dies kann auf eine beliebige geeignete Art und Weise erfolgen, indem z.B. eine Datenbank erzeugt wird, die sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht und die Kennungen von gleichberechtigten Zieleinheiten und zugehörige Informationen speichert. Alternativ können diese Informationen auch in einem geeigneten Speicher gesammelt werden, der sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht. Alternativ können diese Informationen in einer Hash-Tabelle und/oder unter Verwendung einer Hash-Funktion gespeichert werden, wie auf dem Fachgebiet gut bekannt ist.
  • Wie aus Block 404 deutlich wird, kann die Zieleinheit 114 auch eine Tabelle der Beschreiberkennungen initialisieren. Bei einer Ausführungsform der Erfindung kann diese Tabelle der Beschreiberkennungen eine Liste einer jeden eindeutigen Beschreiberkennung und ihrer entsprechenden Datennachricht umfassen, die von der Zieleinheit 114 empfangen und/oder gesendet wurde. Dies kann auf eine beliebige geeignete Art und Weise erfolgen, indem z.B. eine Datenbank erzeugt wird, die sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht und die Listen der Beschreiberkennungen und zugehörige Informationen speichert. Alternativ können diese Informationen auch in einem geeigneten Speicher gesammelt werden, der sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht. Alternativ können diese Informationen in einer Hash-Tabelle und/oder unter Verwendung einer Hash-Funktion gespeichert werden, wie auf dem Fachgebiet gut bekannt ist.
  • Wie aus Block 406 deutlich wird, kann die Zieleinheit 114 auch wie oben beschrieben einen Wert für eine Ping-Zeitüberschreitung setzen. Dieser Ping-Zeitüberschreitungswert kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden von einer bestimmten Zieleinheit gesendet werden. Der Wert der Ping-Zeitüberschreitung kann unter Verwendung eines beliebigen geeigneten Mittels, das auf dem Fachgebiet bekannt ist, festgelegt werden. So kann der Wert der Ping-Zeitüberschreitung z.B. ausgehend von den Spezifikationen der Zieleinheit, welche den Ping-Zeitüberschreitungswert steuert, voreingestellt sein. Alternativ kann der Benutzer einer bestimmten Zieleinheit den Wert der Ping-Zeitüberschreitung festlegen. Der Wert der Ping-Zeitüberschreitung kann auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Der von einer gegebenen Zieleinheit verwendete Transportmechanismus kann den Wert der Ping-Zeitüberschreitung bestimmen. Ein geeigneter Algorithmus kann den Wert der Ping-Zeitüberschreitung festlegen. Dieser Algorithmus kann z.B. auf Systembeschränkungen einer bestimmten Zieleinheit (gleichberechtigter Knoten) oder auf Eingabewerten des Benutzers beruhen.
  • Wie aus Block 408 hervorgeht, kann die Zieleinheit 114 danach einen Wert n für die Anzahl der Nachbarknoten (gleichberechtigte Zieleinheiten) setzen, mit denen sie einen Kontakt, d.h. eine Verbindung, herstellt. Die Anzahl der Nachbarknoten, mit denen eine gegebene Zieleinheit einen Kontakt herstellt, kann unter Verwendung einer oder mehrerer geeigneter Verfahren, die auf dem Fachgebiet bekannt sind, ermittelt werden. So kann die Anzahl der gleichberechtigten Knoten, mit denen eine gegebene Zieleinheit in Kontakt steht, auf geeigneten Parametern für die Zieleinheit beruhen, wie beispielsweise auf vom Benutzer bestimmten Parametern, auf Hardwareparametern der Zieleinheit, auf Softwareparametern der Zieleinheit usw. Der Benutzer einer gegebenen Zieleinheit 114 kann z.B. festlegen, dass die Zieleinheit 114 zu mindestens drei anderen Nachbarknoten Kontakt aufnehmen soll. Alternativ können die Verarbeitungsbeschränkungen der Zieleinheit 114 vorgeben, dass sie zu nicht mehr als vier Zieleinheiten Kontakt aufnehmen darf. Alternativ kann die Zieleinheit 114 so voreingestellt sein, dass sie mit einer gegebenen Anzahl von Nachbarknoten Daten austauscht. Alternativ kann der von einer gegebenen Zieleinheit verwendete Transportmechanismus die Anzahl der Nachbarknoten bestimmen, mit denen Kontakt aufgenommen werden soll. Alternativ kann ein geeigneter Algorithmus wie beispielsweise ein Algorithmus, der auf der Anzahl der Nachbarknoten innerhalb des Netzwerks 102 oder Systems 100 oder auf vom Benutzer eingegebenen Werten beruht, die Anzahl der Nachbarknoten bestimmen, mit denen Kontakt aufgenommen werden soll.
  • Wie aus Block 410 hervorgeht, kann die Zieleinheit 114 dann einen Wert t für die Verweildauer im Netz setzen, der angibt, wie oft eine Datennachricht von einer Zieleinheit an eine andere weitergeleitet werden kann, bevor die Nachricht abläuft. So kann die Zieleinheit 114 beispielsweise festlegen, dass eine Datennachricht abläuft, nachdem sie von einer Anzahl t von Zieleinheiten empfangen worden ist. Der Verweildauerwert kann mit einem beliebigen geeigneten Mittel festgelegt werden. Der Wert kann z.B. ausgehend von den Spezifikationen der Zieleinheit, die den Verweildauerwert steuert, voreingestellt sein. Alternativ kann der Benutzer einer bestimmten Zieleinheit den Wert für die Verweildauer festlegen. Der Verweildauerwert kann auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Der von einer gegebenen Zieleinheit verwendete Transportmechanismus kann den Verweildauerwert bestimmen. Ein geeigneter Algorithmus kann den Verweildauerwert bestimmen, wobei Faktoren wie Netzwerküberlastung und Verarbeitungsbeschränkungen eines gegebenen gleichberechtigten Knotens zugrunde gelegt werden.
  • Jede Zieleinheit, die eine Datennachricht mit einem Wert für die Verweildauer empfängt, kann einen der Datennachricht zugehörigen Sprungzähler erhöhen. Dieser Sprungzähler kann von der Zieleinheit erhöht werden, wenn die Nachricht unter Verwendung eines beliebigen auf dem Fachgebiet bekannten geeigneten Mittels empfangen wird. So kann z.B. ein geeigneter Algorithmus verwendet werden, um den Sprungzähler zu erhöhen. Wie der Wert für die Verweildauer kann auch der Algorithmus für die Bestimmung des Sprungzählers auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsbeschränkung eines gegebenen gleichberechtigten Knotens beruhen. Dieser Sprungzähler kann angeben, wie oft die Datennachricht empfangen wurde, und kann mit dem Verweildauerwert t verglichen werden, um zu ermitteln, ob die Gültigkeitsdauer der Nachricht ablaufen sollte (d.h., überschreiten die Häufigkeit, mit der die Nachricht empfangen wurde, bzw. der Sprungzähler den Wert für die Verweildauer?).
  • Wie aus den Blöcken 420, 430 und 440 hervorgeht, kann der gleichberechtigte Ausgangsknoten 114 auch einen oder mehrere der folgenden Teilprozesse ausführen: einen Ping-Teilprozess, einen Serverteilprozess und einen Abfrageteilprozess. Diese Teilprozesse können von der Zieleinheit 114 gleichzeitig oder in einer beliebigen geeigneten Reihenfolge ausgeführt werden. Diese Teilprozesse können fortlaufend stattfinden, während die Zieleinheit 114 online ist oder in Kommunikation mit dem Netzwerk 102 und/oder System 100 steht. Alternativ kann die Zieleinheit 114 einen oder mehrere Teilprozesse beginnen, wenn sie eine oder mehrere Datennachrichten von einer anderen Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 oder von einer beliebigen anderen Komponente des Netzwerks 102 und/oder Systems 100 empfängt.
  • Wie aus Block 420 hervorgeht, kann die Zieleinheit 114 somit einen Ping-Teilprozess beginnen, wie weiter unten beschrieben wird. Alternativ oder gleichzeitig mit Block 420 kann die Zieleinheit 114 außerdem einen Serverteilprozess beginnen, wie weiter unten beschrieben wird und aus Block 430 ersichtlich ist. Alternativ oder gleichzeitig mit den Blöcken 420, 430 kann die Zieleinheit 114 auch einen Abfrageteilprozess beginnen, wie weiter unten beschrieben wird und aus Block 450 ersichtlich ist. Die Zieleinheit 114 kann den Abfrageteilprozess beginnen, wenn in Block 440 ermittelt wird, dass eine oder mehrere Abfragen von der Zieleinheit 114 gesendet werden sollen. Somit kann die Zieleinheit 114 gemäß der vorliegenden Erfindung Clientfunktionen wie das Senden von Abfragen, einschließlich Ping-Abfragen, und das Empfangen von Antworten, einschließlich Pong-Antworten, ausführen. Die Zieleinheit 114 kann außerdem Serverfunktionen wie das Verarbeiten von Abfragen und Antworten ausführen, zum Beispiel das Zusammensetzen von Antworten, die gleichberechtigte Knoten beschreiben, zu einer Tabelle der gleichberechtigten Knoten oder das Erfassen der Häufigkeit, mit der eine bestimmte Abfragenachricht empfangen wurde.
  • 5 zeigt unter der Bezugsziffer 500 eine Ausführungsform einer Teilroutine des Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung aus 4.
  • Wie aus Block 502 ersichtlich wird, kann die Zieleinheit 114 für die Dauer des in Block 406 ermittelten vorgegebenen Werts (p) der Ping-Zeitüberschreitung warten. Dieser Ping-Zeitüberschreitungswert kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden von einer bestimmten Zieleinheit gesendet werden.
  • Wie aus Block 504 deutlich wird, kann die Zieleinheit 114 nach Ablauf des Werts der Ping-Zeitüberschreitung eine Ping-Nachricht an die in Block 408 festgelegte vorgegebene Anzahl (n)von (gleichberechtigten) Nachbarknoten senden. Somit wird die Ping-Nachricht in der Ausführungsform aus 1 von der Zieleinheit 114 an drei vorgegebene Nachbarknoten 112, 116, 118 gesendet (d.h. n = 3).
  • Mit dieser Ping-Nachricht können eine oder mehrere Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 angeben, dass die Ping-Nachricht das Netzwerk 102 und/oder System 100 aktiv abfragt. Eine derartige Ping-Nachricht kann die Identifizierung einer oder mehrerer Zieleinheiten anfordern. So kann die Zieleinheit 114 z.B. eine Ping-Nachricht an die Zieleinheiten 112, 116 und 118 senden, mit der sie die Zieleinheiten 112, 116, 118 auffordert, sich auszuweisen. Bei einer Ausführungsform der Erfindung kann eine Ping-Datennachricht anfordern, dass die Identifikation eine zusammengesetzte Liste (Tabelle der gleichberechtigten Knoten) der gleichberechtigten Zieleinheiten einer gegebenen Zieleinheit beinhaltet. So kann die Zieleinheit 114 z.B. eine Ping-Nachricht an die Zieleinheiten 112, 116, 118 senden, mit der sie die Zieleinheit 112 aufordert, die gleichberechtigten Einheiten der Zieleinheit 112 anzugeben, mit der sie die Zieleinheit 116 auffordert, die gleichberechtigten Einheiten der Zieleinheit 116 anzugeben, und mit der sie die Zieleinheit 118 auffordert, die gleichberechtigten Zieleinheiten der Zieleinheit 118 anzugeben.
  • Wie aus Block 506 ersichtlich ist, kann die Zieleinheit 114 danach Pong-Nachrichten von einem oder mehreren der vorgegebenen Anzahl von gleichberechtigten Knoten empfangen, mit denen in Block 504 Kontakt aufgenommen wurde.
  • Mit dieser Pong-Nachricht können die kontaktierten gleichberechtigten Einheiten 112, 116, 118 auf die von der Zieleinheit 114 gesendete Ping-Nachricht antworten. So kann die Zieleinheit 112 z.B. eine Pong-Nachricht an die Zieleinheit 114 senden, welche der Zieleinheit 114 die Zieleinheit 112 beschreibt. Bei einer Ausführungsform der Erfindung kann die Pong-Nachricht die Adresse einer aktiven Zieleinheit beinhalten. Somit kann die Zieleinheit 112 eine Pong-Nachricht an die Zieleinheit 114 senden, welche die Adresse der Zieleinheit 112 angibt. Die Zieleinheit 114 kann auch eine Pong-Nachricht von der Zieleinheit 116 empfangen, welche die IP-Adresse der Zieleinheit 116 angibt, sowie eine Pong-Nachricht von der Zieleinheit 118, welche die IP-Adresse der Zieleinheit 118 angibt. Bei einer Ausführungsform der Erfindung kann die Pong-Datennachricht eine zusammengesetzte Liste (oder Tabelle der gleichberechtigten Knoten) der gleichberechtigten Nachbareinheiten einer gegebenen Zieleinheit bereitstellen. So kann die Zieleinheit 112 beispielsweise eine Pong-Nachricht an die Zieleinheit 114 senden, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine einzige gleichberechtigte Zieleinheit 114 verfügt. Zwischenzeitlich kann die Zieleinheit 116 ebenfalls eine Pong-Nachricht senden, die angibt, dass die Zieleinheit 116 über zwei gleichberechtigte Zieleinheiten 114, 136 verfügt. Die Pong-Nachricht von der Zieleinheit 116 kann außerdem Informationen zu den beiden gleichberechtigten Einheiten 114, 136 der Zieleinheit 116 bereitstellen, unter anderem die Anschlussnummer, unter der die gleichberechtigte Zieleinheit 114 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die zweite gleichberechtigte Zieleinheit 136 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten Zieleinheit 114, die IP-Adresse der zweiten gleichberechtigten Zieleinheit 136 und beliebige andere geeignete Informationen. Darüber hinaus kann die Zieleinheit 118 auch eine Pong-Nachricht an die Zieleinheit 114 senden, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 118 über drei gleichberechtigte Zieleinheiten 114, 128, 138 verfügt. Die Pong-Nachricht von der Zieleinheit 118 kann außerdem Informationen zu den drei gleichberechtigten Einheiten 114, 128, 138 der Zieleinheit 118 bereitstellen, unter anderem die Anschlussnummer, unter der die gleichberechtigte Zieleinheit 114 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die zweite gleichberechtigte Zieleinheit 128 eingehende Verbindungen entgegennehmen kann, die Anschlussnummer, unter der die dritte gleichberechtigte Zieleinheit 138 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten Zieleinheit 114, die IP-Adresse der zweiten gleichberechtigten Zieleinheit 128, die IP-Adresse der dritten gleichberechtigten Zieleinheit 138 sowie beliebige andere geeignete Informationen.
  • Wie aus Block 508 ersichtlich ist, kann die Zieleinheit 114 dann die in Block 402 initialisierte Tabelle der gleichberechtigten Knoten mit Informationen aktualisieren, die aus den Pong-Nachrichten erhalten wurden. Dies kann unter Verwendung eines beliebigen geeigneten, auf dem Fachgebiet bekannten Mittels erfolgen, z.B. durch Eingabe der von den gleichberechtigten Nachbarknoten 112, 116, 118 stammenden Informationen aus der Tabelle der gleichberechtigten Knoten in eine Datenbank oder einen Speicher, die/der sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht. Auf diese Weise kann die Zieleinheit 114 durch die Abfrage der gleichberechtigten Zieleinheiten 112, 116, 136, 118 Informationen zu anderen Einheiten 128, 138, 136 in dem Netzwerk ermitteln. Da die Zieleinheit 114 ihre Tabelle der gleichberechtigten Knoten mit Informationen zu den Zieleinheiten 112, 116, 118, 128, 138 aktualisieren kann, würde eine die Zieleinheit 114 abfragende Nachbareinheit 122 daraufhin von der Zieleinheit 114 Informationen zu sieben Zieleinheiten empfangen, d.h. Informationen zu den Zieleinheiten 112, 116, 136, 118, 128, 138 und 122.
  • 6 zeigt unter der Bezugsziffer 600 eine Ausführungsform einer anderen Teilroutine des Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung aus 4.
  • Wie aus Block 602 hervorgeht, kann die Zieleinheit 114 auf eine eingehende Datennachricht warten. Bei dieser Datennachricht kann es sich um eine beliebige geeignete Datennachricht handeln, wie sie oben beschrieben ist.
  • So kann die Datennachricht z.B. eine Ping-Datennachricht sein, die Informationen von der Zieleinheit 114 anfordert, wie beispielsweise eine Datennachricht, welche die Identifizierung der Zieleinheit 114 anfordert. Alternativ kann die Datennachricht eine Abfragedatennachricht sein, welche die Zieleinheit 114 fragt, ob diese über eine bestimmte Datei verfügt. Bei einer Ausführungsform der Erfindung kann es sich bei der Datennachricht um eine Anforderung handeln, dass die Zieleinheit 114 eine zusammengesetzte Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten Zieleinheiten bereitstellen soll.
  • Alternativ kann die Datennachricht eine Pong-Datennachricht sein, welche der Zieleinheit 114 eine andere Zieleinheit beschreibt. Bei einer Ausführungsform der Erfindung kann die Pong-Datennachricht auch eine zusammengesetzte Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten Nachbareinheiten bereitstellen. So kann die Zieleinheit 114 z.B. eine Datennachricht von der Zieleinheit 112 empfangen, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine einzige gleichberechtigte Zieleinheit 114 verfügt. Alternativ kann die Datennachricht eine Antwortdatennachricht sein, die auf eine Abfrage von der Zieleinheit 114 antwortet.
  • In Block 604 ermittelt die Zieleinheit 114, ob sie eine Datennachricht empfangen hat. Unabhängig von ihrem Typ (d.h. Ping-Datennachricht, Pong-Datennachricht, Suchabfragenachricht usw.) kann jede Datennachricht wie oben beschrieben über eine eindeutige Beschreiberkennung verfügen.
  • Wenn eine Datennachricht empfangen wurde, fährt das Verfahren mit Block 606 fort, wo die Beschreiberkennung der Datennachricht mit den bereits in der Tabelle der Beschreiberkennungen gespeicherten Beschreiberkennungen verglichen wird, die in Block 404 erzeugt wurde.
  • In Block 608 ermittelt die Zieleinheit 114, ob die empfangene Datennachricht bereits bekannt ist (d.h., ob die Beschreiberkennung der empfangenen Datennachricht mit einer der bereits in der Tabelle der Beschreiberkennungen gespeicherten Beschreiberkennung übereinstimmt).
  • Wenn die empfangene Nachricht noch nicht bekannt ist, kann die Zieleinheit 114, wie aus Block 610 deutlich wird, die empfangene Datennachricht und ihre entsprechende Beschreiberkennung in die Tabelle der Beschreiberkennungen aufnehmen.
  • Wie aus Block 612 ersichtlich ist, kann die Zieleinheit 114 wie oben beschrieben danach ermitteln, ob es sich bei der empfangenen Nachricht um eine Ping-Nachricht handelt. Wenn die empfangene Nachricht eine Ping-Nachricht ist, kann die Zieleinheit 114, wie aus Block 624 hervorgeht, daraufhin eine Pong-Nachricht an den gleichberechtigten Knoten zurückgeben, von dem die empfangene Nachricht ausging. Bei einer Ausführungsform der Erfindung kann die Pong-Antwort der Zieleinheit 114 eines oder mehrere der folgenden Elemente beinhalten: eine Anschlussnummer, unter der die Zieleinheit 114 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der Zieleinheit 114, die Anzahl der Dateien, welche die Zieleinheit 114 zur gemeinsamen Nutzung über das Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche die Zieleinheit 114 zur gemeinsamen Nutzung über das Netzwerk bereitstellt. Alternativ kann die Pong-Antwort der Zieleinheit 114 bei einer Ausführungsform der Erfindung die gesamte oder einen Teil einer zusammengesetzten Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten Nachbarknoten beinhalten. So kann die Pong-Antwort der Zieleinheit 114 bei der Ausführungsform aus 1 z.B. Informationen zu den Zieleinheiten 112, 116, 136, 118, 128, 138 beinhalten, unter anderem die Anschlussnummern, unter denen die Zieleinheiten 112, 116, 136, 118, 128, 138 eingehende Verbindungen entgegennehmen können, die IP-Adressen der Zieleinheiten 112, 116, 136, 118, 128, 138 und beliebige andere geeignete Informationen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird die Pong-Antwort direkt von der empfangenden Zieleinheit 114 an die gleichberechtigte Ausgangszieleinheit übertragen, anstelle von der empfangenden Zieleinheit über dazwischenliegende Zieleinheiten weitergeleitet zu werden. Wenn z.B. bei der Ausführungsform aus 1 die Zieleinheit 114 über die dazwischenliegende Zieleinheit 118 eine Ping-Nachricht von der gleichberechtigten Zieleinheit 128 empfängt, kann die Zieleinheit 114 der Zieleinheit 128 direkt mit einer Pong-Nachricht antworten. Die Zieleinheit 114 kann der Zieleinheit 128 direkt antworten, da der Zieleinheit 114 gemäß der vorliegenden Erfindung Informationen zur Zieleinheit 128 zugänglich gemacht wurden. So kann die Zieleinheit 114 beispielsweise über Informationen zur Zieleinheit 128 verfügen, da die Zieleinheit 114 zuvor ihre Tabelle der gleichberechtigten Knoten mit Informationen zur Zieleinheit 128 wie z.B. der IP-Adresse der Zieleinheit 128 aktualisiert hat (siehe Block 508).
  • Weiterhin kann die Zieleinheit 114, wie aus Block 626 hervorgeht, ihre Tabelle der gleichberechtigten Knoten aktualisieren, indem sie Informationen über den gleichberechtigten Ausgangsknoten in diese aufnimmt. Unter Fortführung des obigen Beispiels kann bei der Ausführungsform aus 1 die Zieleinheit 114 somit Informationen zur Zieleinheit 128 in ihre Tabelle der gleichberechtigten Knoten aufnehmen. Diese Informationen können Informationen zur Zieleinheit 128 beinhalten, unter anderem die Anschlussnummer, unter der die Zieleinheit 128 eingehende Verbindungen entgegennehmen kann, die IP-Adresse der Zieleinheit 128, die Anzahl der Dateien, welche die Zieleinheit 128 zur gemeinsamen Nutzung über das Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche die Zieleinheit 128 zur gemeinsamen Nutzung über das Netzwerk bereitstellt. Alternativ können die Informationen von der Zieleinheit 128 bei einer Ausführungsform der Erfindung die gesamte oder einen Teil einer zusammengesetzten Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten Nachbarknoten beinhalten. So können bei der Ausführungsform aus 1 die Informationen zur Zieleinheit 128 z.B. Informationen zu anderen Zieleinheiten beinhalten, die mit der Zieleinheit 128 verbunden sind oder mit dieser in Kommunikation stehen (nicht abgebildet).
  • Wenn die empfangene Nachricht keine Ping-Datennachricht ist, kann die Zieleinheit 114, wie aus Block 614 ersichtlich ist, ermitteln, ob es sich bei der empfangenen Nachricht um eine andere Art von Abfrage handelt. Die Abfragenachricht kann z.B. Informationen zu Software- oder Hardwarekomponenten einer gegebenen Zieleinheit, zu Software- oder Hardwarekonfigurationen einer gegebenen Zieleinheit, zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit oder zu Dateien im Speicher einer gegebenen Zieleinheit anfordern. Bei einer Ausführungsform der Erfindung kann die Abfragenachricht einen vorgegebenen Satz von Kriterien beschreiben, die eine gegebene Zieleinheit erfüllen muss (z.B. „Verfügt die diese Nachricht empfangende Zieleinheit über eine Datei PATENT.APP.DOC?" oder „Kann die diese Nachricht empfangende Zieleinheit DOS ausführen?"). Wenn es sich bei der empfangenen Nachricht um eine andere Abfrageart handelt, kann das Verfahren der vorliegenden Erfindung mit dem Unterprogramm aus 8 fortfahren, wie durch das Bezugszeichen D aus 6 kenntlich gemacht ist.
  • 8 zeigt unter der Bezugsziffer 800 eine Ausführungsform einer anderen Teilroutine des Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung aus 4.
  • Wie aus Block 802 hervorgeht, kann die Zieleinheit 114 ermitteln, ob sie die in der Abfrage der in Block 604 empfangenen Nachricht enthaltenen vorgegebenen Kriterien erfüllt. Dies kann z.B. erfolgen, indem die in der Abfragenachricht enthaltenen Kriterien mit einer beliebigen geeigneten Komponente der Zieleinheit 114 verglichen werden. Wenn die empfangene Abfragenachricht z.B. die Frage enthält „Verfügt die diese Nachricht empfangende Zieleinheit über eine Datei PATENT.APP.DOC?", kann die Zieleinheit 114 ihre Dateien daraufhin überprüfen, ob etwaige Dateien mit der Datei übereinstimmen, die in der empfangenen Abfragenachricht genannt wird. Wenn die empfangene Abfragenachricht die Frage enthält „Kann die diese Nachricht empfangende Zieleinheit DOS ausführen?", kann die Zieleinheit 114 ihre Systemkonfiguration daraufhin überprüfen, ob sie mit der in der empfangenen Abfragenachricht beschriebenen Konfiguration übereinstimmt.
  • Wenn die Zieleinheit 114 die vorgegebenen Kriterien erfüllt, kann sie, wie aus Block 804 hervorgeht, Antwortdaten an die Zieleinheit zurückgeben, von der die Abfrage ausging. So kann die Zieleinheit 112 z.B. eine Abfragenachricht senden, die fragt „Verfügt die diese Nachricht empfangende Zieleinheit über eine Datei PATENT.APP.DOC?". Wenn die Zieleinheit 114 über die Datei PATENT.APP.DOC verfügt (d.h. das vorgegebene Kriterium erfüllt), kann sie eine Antwort an die Zieleinheit 112 senden, die angibt, dass sie über die Datei verfügt. Wenn die Zieleinheit 114 nicht über die Datei verfügt, kann sie bei einer Ausführungsform der Erfindung auch eine Antwort senden, aus der hervorgeht, dass sie die Datei nicht hat.
  • Wenn die momentane Zieleinheit 114 die vorgegebenen Kriterien erfüllt, gibt sie gemäß einer Ausführungsform der vorliegenden Erfindung ihre Antwortdaten direkt an die gleichberechtigte Ausgangszieleinheit zurück, anstelle sie von der momentanen Zieleinheit 114 über dazwischenliegende Zieleinheiten weiterzuleiten. Wenn daher z.B. in der Ausführungsform aus 1 die Zieleinheit 114 über die dazwischen liegende Zieleinheit 118 eine Suchabfrage von der gleichberechtigten Zieleinheit 128 empfängt, sendet die Zieleinheit 114 ihre Antwortdaten direkt an die Zieleinheit 128. Die Zieleinheit 114 kann der Zieleinheit 128 direkt antworten, da die Informationen zur Zieleinheit 128 der Zieleinheit 114 gemäß der vorliegenden Erfindung zugänglich gemacht wurden. So kann die Zieleinheit 114 beispielsweise über Informationen zur Zieleinheit 128 verfügen, da die Zieleinheit 114 zuvor ihre Tabelle der gleichberechtigten Knoten mit Informationen zur Zieleinheit 128 wie z.B. der IP-Adresse der Zieleinheit 128 aktualisiert hat (siehe Block 508).
  • Wie aus den Blöcken 814, 816, 818, 828 hervorgeht, kann die Zieleinheit 114 dann, unabhängig davon, ob sie die vorgegebenen Kriterien der Abfragenachricht erfüllt, ermitteln, ob die Datennachricht weitergeleitet werden oder ob ihre Gültigkeitsdauer ablaufen soll.
  • Wie aus Block 814 hervorgeht, kann die Abfragenachricht einen Sprungzähler beinhalten oder zu diesem zugehörig sein, der bei Empfang der Datennachricht erhöht werden kann. Dieser Sprungzähler kann von der empfangenden Zieleinheit 114 unter Verwendung eines beliebigen auf dem Fachgebiet bekannten geeigneten Mittels erhöht werden. So kann z.B. ein geeigneter Algorithmus verwendet werden, um den Sprungzähler zu erhöhen. Der Algorithmus für die Bestimmung des Sprungzählers kann auf Faktoren wie der Netzwerküberlastung und den Verarbeitungsbeschränkungen eines gegebenen gleichberechtigten Knotens beruhen. Der Sprungzähler kann angeben, wie oft die Datennachricht empfangen wurde. Bei einer Ausführungsform der Erfindung erhöht jede Zieleinheit, welche die Datennachricht empfängt, bei jedem Empfang der Datennachricht den Sprungzähler.
  • Wie aus Block 816 ersichtlich ist, kann der Sprungzähler mit dem Verweildauerwert t für die bestimmte Datennachricht verglichen werden, um zu ermitteln, ob die Gültigkeitsdauer der Nachricht ablaufen sollte (d.h., überschreitet die Häufigkeit, mit der die Nachricht empfangen wurde, bzw. der Sprungzähler den Wert für die Verweildauer?). Bei der Ausführungsform aus 8 wird der Sprungzähler mit dem Verweildauerwert t verglichen, um zu ermitteln, ob er Sprungzähler gleich dem Wert für die Verweildauer ist, und wenn der Sprungzähler nicht gleich diesem Wert ist, ist die Gültigkeitsdauer der Nachricht nicht abgelaufen. Bei einer anderen Ausführungsform der Erfindung wird der Sprungzähler mit dem Verweildauerwert t verglichen, um zu ermitteln, ob er Sprungzähler größer als der Wert für die Verweildauer ist, und wenn der Sprungzähler größer als der Verweildauerwert ist, ist die Gültigkeitsdauer der Nachricht nicht abgelaufen. Bei einer weiteren Ausführungsform der Erfindung wird der Sprungzähler mit dem Verweildauerwert t verglichen, um zu ermitteln, ob er Sprungzähler kleiner als der Wert für die Verweildauer ist, und wenn der Sprungzähler kleiner als der Verweildauerwert ist, ist die Gültigkeitsdauer der Nachricht nicht abgelaufen.
  • Der Verweildauerwert kann mit einem beliebigen geeigneten Mittel ermittelt werden. So kann der Wert z.B. ausgehend von den Spezifikationen der Zieleinheit, welche den Verweildauerwert steuert, voreingestellt sein. Bei einer Ausführungsform der Erfindung ist die Zieleinheit, die den Verweildauerwert steuert, die Zieleinheit, von der die Datennachricht ausging. Alternativ kann der Benutzer einer bestimmten Zieleinheit den Wert für die Verweildauer festlegen. Der Wert für die Verweildauer kann auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Der von einer bestimmten Zieleinheit verwendete Transportmechanismus kann den Verweildauerwert bestimmen. Alternativ kann ein geeigneter Algorithmus den Verweildauerwert steuern, wobei Faktoren wie die Netzwerküberlastung und Verarbeitungsbeschränkungen eines gegebenen gleichberechtigten Knotens zugrunde gelegt werden.
  • Wie aus Block 818 deutlich wird, ist die Gültigkeitsdauer der Nachricht abgelaufen, wenn der Sprungzähler gleich dem Verweildauerwert ist. Bei einer Ausführungsform der Erfindung leitet die empfangende Zieleinheit 114 die Nachricht nicht mehr an eine andere Zieleinheit weiter, nachdem die Gültigkeitsdauer der Nachricht abgelaufen ist.
  • Wenn der Sprungzähler nicht gleich dem Verweildauerwert ist, kann die Zieleinheit 114, wie aus Block 828 ersichtlich ist, die Datennachricht anschließend an eine oder mehrere andere Zieleinheiten weiterleiten. Bei der Ausführungsform aus 8 kann die empfangende Zieleinheit die Nachricht z.B. an eine vorgegebene Anzahl (n) von Nachbarknoten/gleichberechtigten Zieleinheiten weiterleiten. Diese vorgegebene Anzahl von Nachbarknoten kann mit einem beliebigen geeigneten Mittel, unter anderem den unter Block 408 weiter oben beschriebenen Mitteln, ermittelt werden.
  • Danach kann die empfangende Zieleinheit 114 zu Block 602 zurückkehren, wie durch das Bezugszeichen B in den 6 und 8 kenntlich gemacht.
  • Wenn – mit erneutem Blick auf 6 – die empfangene Nachricht keine Ping- oder Abfragenachricht ist, kann die Zieleinheit 114, wie aus Block 616 deutlich wird, ermitteln, ob die empfangene Nachricht eine Datennachricht ist, die Antwortdaten auf eine von der Zieleinheit 114 gesendete Abfrage bereitstellt.
  • Derartige Antwortdaten können beispielsweise eines oder mehrere der folgenden Elemente sein: Anschlussnummern, unter denen eine oder mehrere Nachbarzieleinheiten eingehende Verbindungen entgegennehmen können, IP-Adressen von einer oder mehreren Nachbarzieleinheiten, die Anzahl der Dateien, die eine oder mehrere Nachbarzieleinheiten zur gemeinsamen Nutzung über das Netzwerk bereitstellen, die Anzahl der Kilobytes an Daten, die eine oder mehrere der Nachbarzieleinheiten zur gemeinsamen Nutzung über das Netzwerk bereitstellen, Informationen zu Software- oder Hardwarekomponenten einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen zu Software- oder Hardwarekonfigurationen einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten oder Informationen zu Dateien, die einer gegebenen Zieleinheit oder einer oder mehreren Nachbarzieleinheiten zugänglich gemacht werden.
  • Die Antwortdaten können außerdem die gesamte oder einen Teil einer zusammengesetzten Liste (oder Tabelle der gleichberechtigten Knoten) einer oder mehrerer Nachbarzieleinheiten beinhalten. Alternativ können die Antwortdaten eine Antwort auf eine von der Zieleinheit 114 gesendete Abfrage beinhalten. Wenn beispielsweise die Zieleinheit 114 eine Abfrage mit der Frage „Verfügst du über eine Datei namens TRADEMARK.APP.EXE?" sendet, kann die empfangene Nachricht eine Antwort sein, die angibt, dass eine oder mehrere Nachbarzieleinheiten über die Datei verfügen. Bei einer Ausführungsform der Erfindung können die Antwortdaten direkt von einer antwortenden Zieleinheit an die Zieleinheit gesendet werden, welche die Abfrage ursprünglich gesendet hat.
  • Wenn bei der Ausführungsform aus 1 die Zieleinheit 114 z.B. eine Abfrage an die Nachbareinheiten 112, 116, 118 sendet, kann die Zieleinheit 114 eine Antwortdatennachricht von der Zieleinheit 112 empfangen, die gegenüber der Zieleinheit 114 angibt, dass die Zieleinheit 112 über die Datei verfügt. Die Zieleinheit 114 kann außerdem eine Datennachricht von der Zieleinheit 116 empfangen, die der Zieleinheit 114 angibt, ob die Zieleinheit 116 über die Datei verfügt. Die Zieleinheit 114 kann eine Datennachricht von der Zieleinheit 118 empfangen, die gegenüber der Zieleinheit 114 angibt, ob die Zieleinheit 118 über die Datei verfügt.
  • Zusätzlich hierzu kann die Zieleinheit 114 eine Datennachricht direkt von der Zieleinheit 136 empfangen, die gegenüber der Zieleinheit 114 angibt, ob die Zieleinheit 136 über die Datei verfügt, obwohl die Zieleinheit 114 die Zieleinheit 136 nicht direkt abgefragt hat. Die Zieleinheit 136 kann der Zieleinheit 114 direkt antworten, da der Zieleinheit 136 gemäß der vorliegenden Erfindung Informationen zur Zieleinheit 114 zugänglich gemacht wurden. So kann die Zieleinheit 136 beispielsweise über Informationen zur Zieleinheit 114 verfügen, da die Zieleinheit 136 zuvor ihre Tabelle der gleichberechtigten Knoten mit Informationen zur Zieleinheit 114, wie z.B. der IP-Adresse der Zieleinheit 114, aktualisiert hat (siehe Block 508).
  • Die Zieleinheit 114 kann außerdem direkt von den Zieleinheiten 128, 138 Datennachrichten empfangen, die angeben, ob jede dieser Zieleinheiten 128, 138 über die Datei verfügt, obwohl die Zieleinheit 114 die Zieleinheiten 128, 138 nicht direkt abgefragt hat. Somit kann die Zieleinheit 114 durch eine Abfrage der Zieleinheiten 112, 116, 118 direkte Antworten von den Zieleinheiten 112, 116, 136, 118, 128, 136 empfangen.
  • Wie aus Block 618 hervorgeht, kann die Zieleinheit 114 danach die Antwortdaten verarbeiten. So kann die Zieleinheit 114 die Antwortdaten z.B. in einem Speicher speichern, der sich in der Zieleinheit 114 befindet oder mit dieser in Kommunikation steht. Alternativ kann die Zieleinheit 114 die Antwortdaten über die Benutzeroberfläche, die sich in der Zieleinheit befindet oder mit dieser in Kommunikation steht, einem Benutzer vorlegen. So kann die Zieleinheit 114 die Antwortdaten dem Benutzer z.B. als Suchergebnisse anzeigen.
  • Wie durch die Schleife 630 in 6 ersichtlich ist, kann die Routine aus 6 für sämtliche eingehenden Nachrichten wiederholt werden.
  • 7 zeigt unter der Bezugsziffer 700 eine Ausführungsform einer anderen Teilroutine des Verfahrens für die Datenübertragung zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung aus 4.
  • Wie aus Block 702 hervorgeht, kann die Zieleinheit 114 warten, bis eine Abfrage eingegeben wird. Diese Abfrage kann eine beliebige geeignete Abfrage sein, wie oben beschrieben wurde. Die Abfrage kann z.B. Informationen zu einem oder mehreren der folgenden Elemente anfordern: Anschlussnummern, unter denen eine oder mehrere Nachbarzieleinheiten eingehende Verbindungen entgegennehmen können, IP-Adressen von einer oder mehreren Nachbarzieleinheiten, die Anzahl der Dateien, die eine oder mehrere Nachbarzieleinheiten zur gemeinsamen Nutzung über das Netzwerk bereitstellen, die Anzahl der Kilobytes an Daten, die eine oder mehrere der Nachbarzieleinheiten zur gemeinsamen Nutzung über das Netzwerk bereitstellen, Informationen zu Software- oder Hardwarekomponenten einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen zu Software- oder Hardwarekonfigurationen einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten oder Informationen zu Dateien, die einer gegebenen Zieleinheit oder einer oder mehreren Nachbarzieleinheiten zugänglich gemacht werden.
  • Bei einer Ausführungsform kann ein Benutzer eine Abfrage eingeben. Alternativ kann die Abfrage von einer anderen Zieleinheit oder einer anderen Komponente des Netzwerks 102 und/oder Systems 100 eingegeben werden. So kann ein Benutzer an der Zieleinheit 114 z.B. eine Abfrage eingeben, die nach der Datei PATENT.APP.DOC fragt.
  • Wie aus Block 704 hervorgeht, kann die Zieleinheit 114 danach die Abfrage an eine vorgegebene Anzahl n von Nachbarknoten weiterleiten. Diese vorgegebene Anzahl von Nachbarknoten kann durch ein beliebiges geeignetes Mittel bestimmt werden, einschließlich der in Block 408 weiter oben beschriebenen Mittel. Die Zieleinheit 114 kann danach zu Block 702 zurückkehren, wie durch das Bezugszeichen C in den 4 und 7 kenntlich gemacht.
  • Obwohl die vorliegende Erfindung in Zusammenhang mit einem voll funktionsfähigen Datenverarbeitungssystem beschrieben wurde, dürfte klar sein, dass die beschriebenen Prozesse auch in einem beliebigen anderen geeigneten Zusammenhang verteilt werden können. So können die beschriebenen Prozesse z.B. die Form eines computerlesbaren Mediums mit Befehlen annehmen. Die vorliegende Erfindung ist gleichermaßen anwendbar, unabhängig von der Art des signaltragenden Mediums, das zur Ausführung der Verteilung tatsächlich verwendet wird. Zu Beispielen für computerlesbare Medien gehören Aufzeichnungsmedien wie eine Diskette, ein Festplattenlaufwerk, ein RAM, CD-ROMs, DVD-ROMs sowie Übertragungsmedien wie digitale und analoge Datenübertragungsverbindungen, drahtgebundene oder drahtlose Datenübertragungsverbindungen unter Verwendung von Übertragungsarten wie beispielsweise Funk- oder Lichtwellenübertragungen. Das computerlesbare Medium kann die Form von codierten Formaten annehmen, die für die eigentliche Verwendung in einem bestimmten Datenverarbeitungssystem decodiert werden.

Claims (19)

  1. Verfahren für die Datenübertragung zwischen einer Vielzahl von gleichberechtigten Knoten (112, 114, 116, 118, 122, 124, 126, 128, 136, 138) in einer Netzwerkumgebung, das folgende Schritte umfasst: Übertragen eines Suchbefehls (504) von einem momentanen gleichberechtigten Knoten zu mindestens einem gleichberechtigten Nachbarknoten, wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem momentanen gleichberechtigten Knoten steht; gekennzeichnet durch Empfangen einer zusammengesetzten Liste (506) der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei die zusammengesetzte Liste der gleichberechtigten Knoten Informationen über mindestens einen gleichberechtigten Knoten umfasst, der in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  2. Verfahren nach Anspruch 1, das weiter den folgenden Schritt umfasst: Übertragen des Suchbefehls an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten.
  3. Verfahren nach Anspruch 1, das weiter die folgenden Schritte umfasst: Erzeugen einer Tabelle der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten; und Aktualisieren der Tabelle der gleichberechtigten Knoten mit der zusammengesetzten Liste der gleichberechtigten Knoten.
  4. Verfahren nach Anspruch 3, das weiter die folgenden Schritte umfasst: Empfangen eines zweiten Suchbefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten; und direktes Übertragen der Tabelle der gleichberechtigten Knoten von dem momentanen gleichberechtigten Knoten an den gleichberechtigten Ausgangsknoten als Reaktion auf den zweiten Suchbefehl.
  5. Verfahren nach Anspruch 1, das weiter die folgenden Schritte umfasst: Empfangen einer Datennachricht an dem momentanen gleichberechtigten Knoten, wobei die Datennachricht über einen eindeutigen Beschreiber verfügt; Vergleichen des Beschreibers der empfangenen Datennachricht mit einer Beschreibertabelle, wobei die Beschreibertabelle eine Vielzahl von Datennachrichten und zugehörigen Beschreibern umfasst; und Aktualisieren der Beschreibertabelle mit der empfangenen Datennachricht und dem Beschreiber der empfangenen Datennachricht.
  6. Verfahren nach Anspruch 1, das weiter den folgenden Schritt umfasst: Weiterleiten eines Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten.
  7. Verfahren nach Anspruch 1, das weiter den folgenden Schritt umfasst: direktes Empfangen von Antwortdaten von mindestens einem anderen gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei der mindestens eine andere gleichberechtigte Knoten in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  8. Verfahren nach Anspruch 1, das weiter die folgenden Schritte umfasst: Empfangen eines Abfragebefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten; und direktes Übertragen von Antwortdaten von dem momentanen gleichberechtigten Knoten an den gleichberechtigten Ausgangsknoten als Reaktion auf den Abfragebefehl.
  9. Verfahren nach Anspruch 8, das weiter den folgenden Schritt umfasst: Weiterleiten des Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten.
  10. Computerprogrammprodukt, das Befehle umfasst, die bei Ausführung auf einem Datenverarbeitungshostsystem das Hostsystem dazu veranlassen, ein Verfahren gemäß einem beliebigen der Ansprüche 1 bis 9 auszuführen.
  11. System für die Datenübertragung zwischen einer Vielzahl von gleichberechtigten Knoten (112, 114, 116, 118, 122, 124, 126, 128, 136, 138) in einer Netzwerkumgebung, das Folgendes umfasst: ein Mittel für die Übertragung eines Suchbefehls von einem momentanen gleichberechtigten Knoten an mindestens einen gleichberechtigten Nachbarknoten, wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem momentanen gleichberechtigten Knoten steht; gekennzeichnet durch ein Mittel für den Empfang einer zusammengesetzten Liste der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei die zusammengesetzte Liste der gleichberechtigten Knoten Informationen über mindestens einen gleichberechtigten Knoten umfasst, der in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  12. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für die Übertragung des Suchbefehls an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten; und ein Mittel für die Ermittlung der vorgegebenen Anzahl von gleichberechtigten Nachbarknoten.
  13. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für die Erzeugung einer Tabelle der gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten; und ein Mittel für die Aktualisierung der Tabelle der gleichberechtigten Knoten mit der zusammengesetzten Liste der gleichberechtigten Knoten.
  14. System nach Anspruch 13, das weiter Folgendes umfasst: ein Mittel für den Empfang eines zweiten Suchbefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten; und ein Mittel für die direkte Übertragung der Tabelle der gleichberechtigten Knoten von dem momentanen gleichberechtigten Knoten zu dem gleichberechtigten Ausgangsknoten als Reaktion auf den zweiten Suchbefehl.
  15. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für den Empfang einer Datennachricht an dem momentanen gleichberechtigten Knoten, wobei die Datennachricht über einen eindeutigen Beschreiber verfügt; ein Mittel für den Vergleich des Beschreibers der empfangenen Datennachricht mit einer Beschreibertabelle, wobei die Beschreibertabelle eine Vielzahl von Datennachrichten und zugehörigen Beschreibern umfasst; und ein Mittel für die Aktualisierung der Beschreibertabelle mit der empfangenen Datennachricht und dem Beschreiber der empfangenen Datennachricht.
  16. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für die Weiterleitung eines Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten.
  17. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für den direkten Empfang von Antwortdaten von mindestens einem anderen gleichberechtigten Knoten an dem momentanen gleichberechtigten Knoten, wobei der mindestens eine andere gleichberechtigte Knoten in Kommunikation mit dem mindestens einen Nachbarknoten steht.
  18. System nach Anspruch 11, das weiter Folgendes umfasst: ein Mittel für den Empfang eines Abfragebefehls von einem gleichberechtigten Ausgangsknoten an dem momentanen gleichberechtigten Knoten; und ein Mittel für die direkte Übertragung von Antwortdaten von dem momentanen gleichberechtigten Knoten zu dem gleichberechtigten Ausgangsknoten als Reaktion auf den Abfragebefehl.
  19. System nach Anspruch 18, das weiter Folgendes umfasst: ein Mittel für die Weiterleitung des Abfragebefehls von dem momentanen gleichberechtigten Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten.
DE60301783T 2002-01-10 2003-01-09 Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung Expired - Lifetime DE60301783T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US44997 2002-01-10
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
DE60301783D1 DE60301783D1 (de) 2005-11-10
DE60301783T2 true DE60301783T2 (de) 2006-06-22

Family

ID=21935450

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301783T Expired - Lifetime DE60301783T2 (de) 2002-01-10 2003-01-09 Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung

Country Status (9)

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

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
EP1486045A1 (de) * 2002-03-12 2004-12-15 Koninklijke Philips Electronics N.V. Anwendung von timingsignalen zur bestimmung der entfernung zweier knoten
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
CN1685687B (zh) 2002-09-30 2013-10-30 皇家飞利浦电子股份有限公司 确定目标节点对于源节点的邻近性的方法
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
JP4611319B2 (ja) * 2004-02-16 2011-01-12 デービーズ,クリストファー,マイケル ネットワークアーキテクチャ
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
KR101191723B1 (ko) * 2005-06-06 2012-10-18 삼성전자주식회사 네이버 네트워크 디스커버리 방법 및 이를 위한 시스템
EP1889402B1 (de) * 2005-06-06 2011-01-05 Samsung Electronics Co., Ltd. Server, Verfahren und computerlesbare Medien zur Erkennung benachbarter Netzwerke in einer Mobilstation
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
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
BRPI0814556A2 (pt) * 2007-07-10 2015-01-06 Thomson Licensing Método para determinar automaticamente um grupo de pares localizados próximo a outro par em uma rede de comunicação e servidor associado, dispositivo de análise e dispositivo de comunicação
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
WO2013129669A1 (ja) * 2012-03-02 2013-09-06 富士通株式会社 通信機器探索方法、通信機器、通信機器探索プログラムおよびアドホックネットワークシステム
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
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
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
JP2005514867A (ja) 2005-05-19
EP1468541B1 (de) 2005-10-05
CN1596532A (zh) 2005-03-16
KR20040068112A (ko) 2004-07-30
AU2003201646A1 (en) 2003-07-24
ATE306170T1 (de) 2005-10-15
DE60301783D1 (de) 2005-11-10
US20030131129A1 (en) 2003-07-10
EP1468541A1 (de) 2004-10-20
WO2003058917A1 (en) 2003-07-17
CN100493076C (zh) 2009-05-27
JP3944168B2 (ja) 2007-07-11
KR100819017B1 (ko) 2008-04-02
US7117264B2 (en) 2006-10-03

Similar Documents

Publication Publication Date Title
DE60301783T2 (de) Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE60211524T2 (de) Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE60317588T2 (de) Verfahren zur Ermittlung der peer-to-peer Servicequalität (QOS)
DE102006021591B3 (de) Verfahren und Anordnung zur Datenübertragung zwischen Peer-to-Peer-Netzwerken
DE602005001883T2 (de) Überlagerte Daten, Selbstorganisierte überlagerte Metadaten, und Mehrfachsendung auf Anwendungsebene
DE69634928T2 (de) Netzwerkverwaltungssystem mit verbesserter Knotenerkennung und -überwachung
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE602004008415T2 (de) System und Verfahren zum Aufrechterhalten der Netzwerkverbindung
DE10297645B4 (de) Verfahren und Einrichtung zum Lastteilen und zur Datenverteilung in Servern
DE10143754A1 (de) Skalierbares Peer-to-Peer-Netzwerk mit einem Verzeichnisdienst
DE60132360T2 (de) Verwaltung von netzwerk-verkehr durch anwendung einer hashfunktion
DE602004010224T2 (de) Vorrichtung zur Verkehrssteuerung und entsprechendes Servicesystem
DE602004001283T2 (de) Apparat und Verfahren um separate Netzwerke zu verbinden
DE602004009819T2 (de) Instrumentationssystem und verfahren zur schätzung von kenngrössen eines dezentralisierten netzwerks
DE10238546A1 (de) Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
DE60206780T2 (de) Netzwerkverbindungsvorrichtung, verbindungssystem und netzwerkverbindungsverfahren
DE602004005059T2 (de) Computernetzwerk zum identifizieren mehrerer knoten, mit demselben etikett übereinstimmen
DE102006052451B4 (de) Verfahren zum Betrieb eines dezentralen Datennetzes
EP1977583B1 (de) Verfahren zur Übermittlung einer Nachricht und Netzwerk
WO2006048363A1 (de) Verfahren zur initialisierung eines datennetzes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7