-
Die
vorliegende Erfindung betrifft ein Verfahren zum Aufbau eines semistrukturierten
Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes
Computerprogramm und ein entsprechendes computerlesbares Speichermedium,
welche insbesondere einsetzbar sind, um eine komplette und zugleich schnelle
Suche in Peer-to-Peer
Netzwerken zu ermöglichen.
-
Es
ist bekannt, dass das Internet ein Netzwerk von miteinander verbundenen
Computern ist. IP bildet die erste vom Übertragungsmedium unabhängige Schicht
der Internet-Protokoll-Familie.
Im Gegensatz zu der physikalischen Adressierung der darunter liegenden
Schichten, bietet IP logische Adressierung. Das bedeutet, dass mittels
IP-Adresse und Subnetzmaske (subnet mask) Computer innerhalb eines
Netzwerkes in logische Einheiten, so genannte Subnetze, gruppiert
werden können.
Auf dieser Basis ist es möglich,
Computer in größeren Netzwerken
zu adressieren und Verbindungen zu ihnen aufzubauen, da logische
Adressierung die Grundlage für
Routing (Wegewahl und Weiterleitung von Netzwerk-Paketen) ist. IP
stellt also die Grundlage des Internets dar. Momentan ist noch die
Version 4 (RFC 791) des Internet Protokolls (IPv4) am weitesten
verbreitet. IPv4 benutzt 32-Bit Adressen, dadurch sind maximal 4.294.967.296
eindeutige Adressen möglich.
Da dies heutzutage nicht mehr ausreicht um allen Computern eigene
Adressen zu geben, ist bereits der Nachfolger IPv6 (RFC 1883) in
den Startlöchern.
Dieser hat unter anderem einen wesentlich vergrößerten Adressraum.
-
Weiterhin
sind Overlay-Netzwerke bekannt. Diese beschreiben Netzwerke, die
auf ein bestehendes Netzwerk aufsetzt werden. Dabei wird das Overlay-Netzwerk
zum Aufbau einer zusätzlichen
Topologie (physikalisch, logisch, strukturell, ...) genutzt. Mit
der neuen Struktur lassen sich aktuelle Technologien wie IPv6 testen,
alternative Routen für
die Daten anlegen oder auch Peer-to-Peer Netzwerke erschaffen. Das
Internet war in seinen Anfängen
ein Overlay-Netzwerk über
dem bestehenden Telefonnetz.
-
Seit
dem letzten Jahrzehnt sind Peer-to-Peer Systeme bekannt. Ausschlaggebend
hierfür
sind die großflächige Vernetzung
und die Verbreitung von Computern im privaten Bereich. Peer-to-Peer
Systeme stellen eine neue Mentalität sowohl in der Netzwerkkommunikation
als auch bei großen,
verteilten Systemen dar. Bisher war dort das Client-Server Prinzip
vorherrschend, bei dem ein Server Dienste für eine Vielzahl von Clients
bereitstellte. Dies konnten Anwendungen, Daten oder Rechenleistungen
sein. Da aber der zentrale Server ein Angriffspunkt für Störungen aller
Art ist, wurde über
den Umweg der hybriden Systeme, die weiterhin über einen zentralen Indizierungsserver
verfügten,
die Peer-2-Peer Systeme entwickelt. In ihnen existieren keine Rechner,
die ausschließlich
Dienste anbieten oder nutzen. Jeder Rechner übernimmt sowohl Client als auch
Server Aufgaben, weshalb die Rechner dann auch als Servents oder
Peers bezeichnet werden. Peer-to-Peer Systeme gehören zu den
Overlay Netzwerken. Dieser Netzwerktyp beschreibt logische Verbindungen
unabhängig
von ihrer physikalischen Vernetzung, so dass physisch benachbarte
Rechner im Overlay Netzwerk weit voneinander entfernt sein können. Durch
die große
Verteiltheit des Systems treten einige Effekte auf, die sonst nur
geringe Bedeutung haben. Daher ist es wichtig, dass das System auf
globaler Ebene skalierbar ist, um die Überlastung einzelner Knoten
zu vermeiden. Weiterhin ist es entscheidend, das System robust gegen
häufige Änderungen
in der Struktur zu gestalten, um eine optimale Funktionsweise zu
gewähren. Unter
den Peer-to-Peer
Systemen haben sich in den letzten Jahren zwei Hauptgruppen herausgebildet,
die vor allem durch die Such- und Speicherkomplexität charakterisiert
werden. Dies sind die strukturierten und die unstrukturierten Peer-to-Peer
Systeme. Die strukturierten Peer-to-Peer Systemen zeichnen sich
durch das effiziente Finden der sprichwörtlichen "Nadel im Heuhaufen" aus. Die Strukturierung bringt allerdings
einen hohen Verwaltungsaufwand mit sich, der vor allem bei einer
häufigen
Veränderung
der Struktur zur Belastung wird. Dies ist immer dann der Fall, wenn
neue Peers hinzukommen oder bestehende Peers das System verlassen.
In den unstrukturierten Peer-to-Peer Systemen können dagegen gut verbreitete
Inhalte effizient gesucht werden, allerdings ohne Garantie auf eine
vollständige
Suche und mit einem sehr hohen Verkehrsaufkommen, da viele Peers
mehrfach befragt werden. Es existiert noch eine weitere Klasse von
Peer-to-Peer Systemen, die hybriden Peer-to-Peer Systeme. In ihr
werden alle Systeme zusammengefasst, die sich nicht eindeutig zu
einer der beiden Hauptgruppen zuordnen lassen. Die Eigenschaften
dieser Systeme sind sehr unterschiedlich und stark abhängig vom
gewählten
Ansatz. So sind hybride Peer-to-Peer Systeme bekannt die jeweils
ein strukturiertes und ein unstrukturiertes Peer-to-Peer System
parallel betreiben und je nach Anfrage eines dieser Netze nutzen,
was einen großen
Arbeitsaufwand mit sich bringt.
-
Das
bekannte hybride Peer-to-Peer System Kelips ist prinzipiell wie
das hier vorgestellte System allerdings nur mit einer strukturierten
Ebene aufgebaut. Anstelle des Gnutella ähnlichen Protokolls auf der
untersten Strukturebene wird dort allerdings ein so genanntes "Epedemic Style Protocol" verwendet. Dieses
Protokoll sorgt für
die Verteilung der Informationsverweise auf alle Peers einer Gruppe
nach dem Vorbild der Epedemien. Ein Nachteil besteht jedoch darin,
dass zwischen den Peers einer Gruppe ein ständiger Informationsaustausch
stattfindet und so eine konstante Netzlast für jeden Peer entsteht. Weiterhin
wird bei Kelips ein neuer Informationverweis anfangs nur auf einem
Peer in der entsprechenden Gruppe gespeichert und anschließend über die
Protokolleigenschaften weiter verteilt. Daraus resultiert ein Nachteil
beim Löschen
von Informationen, da es aktiv von einem Peer in Auftrag gegeben
werden muss und sich auch wieder mit dem epedemischen Verhalten
in der entsprechenden Gruppe verteilt. Das Entfernen von gut verteilten
Inhalten dauert deshalb wesentlich länger als in dem hier vorgestellten
System, aber auch in anderen Peer-to-Peer Systemen. Außerdem ist
in Kelips nur die Nutzung von einer Strukturebene oberhalb der "Epedemic Style Protocol"-Ebene beschrieben,
während
in dem hier vorgestellten System eine beliebig wählbare Anzahl von strukturierten
Ebenen über
der unstrukturierten verwendet werden kann.
-
Bekannt
sind auch die hybriden Peer-to-Peer Systeme Agile und SHARK. Diese
unterscheiden sich untereinander lediglich darin, dass bei Agile
eine verteilte Hashtabelle zum Einsatz kommt, die in dessen Weiterentwicklung
SHARK durch semantische Routingtabellen ersetzt wurde. Beim Aufbau
beider Systeme werden im Gegensatz zu dem hier vorgestellten System
die strukturierten Ebenen mehrdimensional ausgelegt. Die Indizierung
dieser Ebenen erfolgt mittels mehrdimensionaler Metadaten, mit denen
so genannte "Group
of Interests" gebildet
werden, d.h. die Zuordnung eines Peers zu einer Interessengruppe
ist abhängig
von den Vorlieben seines Nutzers. Die in dem hier vorgestellten
System verwendete gleichverteilte Gruppenbildung könnte aber
durch eine geeignete Anpassung ebenfalls diese interessenabhängige Gruppenbildung
und Indizierung nutzen. Allerdings kann es dann zur übermäßigen Belastung
einzelner Peers kommen, die durch die ungleichmäßige Verteilung der Peers auf
die Gruppen hervorgerufen würde.
Der Bereich der Metadaten ist aufzählbar allerdings nicht abzählbar, so
dass nie gewährleistet
werden kann, dass alle Interessengruppen existieren bzw. es Peers
in ihnen gibt. Somit werden schon einfache Buchstabendreher in den
Metadaten zu solchen Problemfällen.
Nach den Systembeschreibungen wird dann in "ähnlichen" Interessengruppen
gesucht. Diese Systemeigenschaft kann im Vergleich zu dem hier vorgestellten
System dazu führen,
dass die Routingstrukturen zu groß und unhandlich werden. Ein
markanter Unterschied zwischen Agile/SHARK und dem hier vorgestellten
System besteht in der Verbreitung der Informationsverweise und der
Suche nach diesen. Bei SHARK wird lediglich über einen Pfad in die entsprechende
oder falls nicht vorhanden ähnliche
Gruppe geroutet und anschließend
mittels Flooding gesucht. Bei Silkworm hingegen werden alle Pfade
in die auf jeden Fall existierende Gruppe genutzt und anschließend geflooded
und somit eine optimierte Flooding Suche gewährleistet. Weiterhin wird in
SHARK das aktive Löschen
von Inhalten propagiert, d.h. Inhalte, die nicht mehr zur Verfügung stehen
sollen, müssen
aktiv von dem besitzenden Peer gelöscht werden. Bei dem hier vorgestellten
System wird der passive Ansatz vorgeschlagen, bei dem die Informationsverweise
in regelmäßigen Abständen neu
verteilt werden müssen
um nicht gelöscht
zu werden. Der Vorteil in dieser Vorgehensweise besteht darin, dass
das abrupte Ausscheiden von Peers nur kurzzeitig Artefakte, also
fehlerhafte Verweise, erzeugt, die automatisch entfernt werden.
-
In
Tabelle 1 findet sich eine Auflistung der bekanntesten Peer-to-Peer
Systeme, geordnet nach strukturierten, unstrukturierten und hybriden
Peer-to-Peer Systemen.
-
Es
ist bekannt, dass Verschlüsselungsalgorithmen
auf Prozessoren durch Hard- und Software implementiert werden können. Die
bekanntesten sind "Message
Digest 5" (MD5), "Rivest Shamir Adelman
Algorithm" (RSA)
und " Secure Hash
Algorithm" (SHA1).
Diese Algorithmen werden bei den strukturierten Peer-to-Peer Systemen
eingesetzt, um eine gleichmäßige Verteilung
von Daten über
einen Wertebereich zu erreichen und werden dort als Hashfunktionen
bezeichnet.
-
Die
bisherigen Peer-to-Peer Netzwerke besitzten immer die Nachteile
der jeweiligen Gruppe und sind deshalb entweder gut um die Nadel
im Heuhaufen zu finden, wie die strukturierten Peer-to-Peer Netzwerke, oder
recht häufig
vorkommende Informationen zu finden, wie die unstrukturierten Peer-to-Peer
Netzwerke. Weiterhin wird mit den hybriden Peer-to-Peer Systemen
versucht die Nachteile der strukturierten bzw. unstrukturierten
Peer-to-Peer Systeme auszugleichen, bzw. komplett neue Ansätze zu finden.
Bis jetzt ist noch kein hybrides Peer-to-Peer System bekannt, dass
einen gleitenden Übergang
von den strukturierten zu den unstrukturierten System durchführen kann.
Außerdem
ist bisher nur eine Strukturierung durch eine Gleichverteilung,
mittels einer Hashfunktion, oder durch eine semantische Verteilung,
d. h. Verteilung nach inhaltlichen Kriterien der zu speichernden
Informationen bekannt.
-
Die
Aufgabe der Erfindung ist es, ein Verfahren zur Verfügung zu
stellen, dass die beiden genannten Hauptgruppen der Peer-to-Peer
Systeme in einem System zu vereinen. Dabei werden viele Vorteile
aus beiden Gruppen übernommen
und die Nachteile ausgeglichen. Suchwege und Suchaufwand sind gering,
wie bei den strukturierten Systemen gering. Der Verwaltungsaufwand
dagegen ist näher
an den unstrukturierten Systemen orientieren. Der Einfluss der jeweiligen
Gruppe ist skalierbar, so dass eine optimale Konfiguration ermöglicht wird.
-
Diese
Aufgabe wird erfindungsgemäß durch
die Merkmale in den Ansprüchen
1, 4, 6, 7 und 10 gelöst. Zweckmäßige Ausgestaltungen
der Erfindung sind in den Unteransprüchen enthalten.
-
Ein
besonderer Vorteil der Erfindung ist die wählbare Skalierung über den
jeweiligen Anteil der Netzwerkart, so dass für jeden Anwendungsfall eine
Anpassung erfolgen kann. Ein weiterer Vorteil des Systems ist, dass
die Skalierung des jeweiligen Anteils der Netzwerkart im laufenden
Betrieb erfolgen kann. Und die Skalierung in Teilen des Netzwerkes
unterschiedlich stark sein kann.
-
Ein
weiterer Vorteil ist, dass für
jede Strukturebene eine eingenständige
Strukturierungsfunktion verwendet werden kann. So kann beispielsweise
in einer Ebene nach Ländern
sortiert werden und in der darunterliegenden, nach Städten. Wichtig
ist hierfür
nur, dass eine Funktion existiert, die diese Klassifizierungsinformationen
auf einen diskreten Wertebereich abbilden kann.
-
Das
hier vorgestellte hybride Peer-to-Peer System trägt den Namen Silkworm. Ausführungsbeispiele der
vorliegenden Erfindung werden nachfolgend Bezug nehmend auf den
beiliegenden Zeichnungen näher
erläutert.
-
Es
zeigen:
-
1:
Unstrukturierter Anteil von Silkworm (0. Strukturebene)
-
2:
Strukturierter Anteil von Silkworm
-
3:
Strukturierter Aufbau mit Gnutella-ähnlichem Netzwerk als Blatt
-
4:
Abhängigkeit
der Gruppenanzahl von der Anzahl der Peers pro Gruppe
-
Das
Silkworm System besitzt strukturierte und unstrukurierte Anteile
und zählt
somit zu den hybriden Peer-to-Peer Systemen. In der untersten Strukturebene
(1) sind jeweils wenige Peers durch unstrukturierte
Netzwerke miteinander verbunden und können mittels Flooding-Algorithmus
Suchanfragen in ihrem eigenen Netzwerk stellen. Jedes dieser Netzwerke
bildet eine Gruppe, in der jeder Peer eine gewisse Anzahl anderer
Peers aus seiner Gruppe kennt. In der darüber liegenden Strukturebene
wird jeweils eine bestimmte Anzahl von Gruppen aus der darunter
liegenden Strukturebene zu einer neuen Obergruppe zusammengefasst.
Dabei kennt jeder Peer mindestens einen Peer aus jeder anderen Gruppe,
die Bestandteil seiner Obergruppe ist. In dieser Schicht beginnt
der strukturierte Anteil, da jede Gruppe einen Teil des Abbildungsbereiches
der nächst
höheren
Strukturebene verwaltet. In 2 ist eine
solche Obergruppe mit den beispielhaften Verbindungen eines Peers
zu den anderen Gruppen gezeigt. Eine Erweiterung des System ist
die Einführung von
zusätzlichen
strukturierten Schichten oberhalb der eben erwähnten Obergruppe. Somit ergibt
sich ein strukturierter Aufbau mit jeweils einem unstrukturierten
Netzwerk als Blatt (3). Darin kennt jeder Peer weitere
Peers aus jeder anderen Nachbargruppe der entsprechenden Strukturebenen.
Um eine gleichmäßige Aufteilung
der Peers zu gewährleisten,
wird eine Hashfunktion eingesetzt wie beispielsweise SHA-1. Über diese wird
jedem Peer eine eindeutige Identifikationsnummer zugewiesen. Als
Eingabe für
die Hashfunktion kann jeder möglichst
eindeutige Tupel verwendet werden, beispielsweise die IP-Adresse
zusammen mit der MAC-Adresse des zugehörigen Gerätes. Anschließend wird
mit der Zugehörigkeitsfunktion,
die die Modulo-Operation auf die PeerID anwendet, die Gruppenzugehörigkeit
für die
jeweiligen Obergruppen und Gruppen berechnet. Die Anzahl der Gruppen
kann für
jede Schicht individuell festgelegt werden, aber es sollte darauf geachtet
werden, dass nach der Gruppierung noch ausreichend Peers für die unstrukturierte
Schicht zur Verfügung
stehen.
-
Als
Richtwert für
die Bestimmung der Anzahl der Gruppen empfiehlt es sich, die Gruppierungfunktion
zu nutzen, wobei N die zu
erwartende Anzahl von aktiven Peers im Netzwerk, d die Gesamtzahl
der Strukturebenen und k die aktuelle Ebene ist. Mit dieser Funktion
lassen sich schon 10
8 aktive Peers mit 3
Ebenen adressieren. In der unstrukturierten Ebene befinden sich
dann im Mittel nur 10 Peers. Der Vorteil dieser Funktion besteht
in der Minimierung des Verwaltungsaufwandes, da nur wenige Gruppen
vorhanden sind, und einer gleichzeitigen Minimierung des Nachrichten
Overheads durch die kleinstmögliche
Anzahl von Peers pro Gruppe. In
4 ist die
Abhängigkeit
beider Größen voneinander
dargestellt. Allerdings ist es auch denkbar, dass in jeder Strukturebene
eine andere Gruppierungsfunktion zum Einsatz kommt. Eine weitere
Möglichkeit
wären die
alternative Strukturierungen nach lokalen oder sozialen Aspekten,
so lange eine Abbildung auf eine Funktion mit diskretem Weitenbereich
möglich
ist.
-
In
Silkworm existiert keine zentrale Instanz, daher muss jeder Peer
eine Vielzahl von Informationen kennen. Die wichtigsten sind im
Folgenden aufgelistet.
- • Peer- und GruppenIDs: Zur
eindeutigen Bestimmung des Peers bzw. der Gruppen, in denen er ein
Mitglied ist.
- • Routingtabelle:
Liste aller bekannten Peers, geordnet nach Gruppenzugehörigkeit.
- • Daten:
Alle Dateien, die dieser Peer besitzt.
- • Verweise:
Alle Verweise auf Daten anderer Peers, die dieser Peer verwaltet.
- • Cache:
Anfragen und deren Antworten, die kürzlich gestellt wurden und
die in der unstrukturierten Ebene diesen Peer passiert haben.
-
Jeder
Peer, der in das System aufgenommen werden will, muss mindestens
einem Teilnehmerpeer bekannt sein. Dies ist eine Voraussetzung bei
allen dezentralen Netzen. Nachdem der Peer seine IDs ermittelt hat,
erhält
er von dem ihm bekannten Peer dessen Bekanntschaftliste. Anschließend nutzt
er diese um sich eine eigene Liste aufzubauen. Dies erfolgt, indem
er von den Peers aus der Liste weitere Listeneinträge anfordert.
Ein Nebeneffekt dieses Verfahrens ist, dass diese kontaktierten
Peers ihn wiederum in ihre Liste aufnehmen können.
-
Zu
jeder Datei, die ein Peer neu hinzufügen will, existiert eine bestimmte
Anzahl von zugehörigen
Metatags. Diese werden verwendet, um Verweise auf diese Datei zu
erstellen. Der Verweis besteht aus dem Identifikator des Peers,
dem Dateinamen, allen zugehörigen
Metatags und einem Verfallsdatum. Zu jedem Metatag werden über die
gleiche Funktion, die auch zur Bestimmung der PeerIDs verwendet
wird, die entsprechende DataID und GruppenIDs bestimmt. Die Verweise
werden auf allen Peers gespeichert, die der Peer kennt und die die
gleichen GruppenIDs besitzen wie eines der Metatags. Durch die Anzahl
der Ebenen erhöht
sich die Verbreitung der Information exponentiell. Um das Löschen eines
Verweises zu verhindern, gibt es zwei Möglichkeiten. Beim aktiven Löschen veröffentlicht
der Peer kurz vor Ablauf des Verfallsdatums die Verweise neu. Das
passive Löschen
erfolgt dagegen automatisch durch das Weiterleiten oder Anfragen
des Peers. Für
Systeme mit nur einer strukturierten Ebene ist das passive System
zu empfehlen um den Overhead zu minimieren. Bei mehreren strukturierten
Ebenen ist die aktive Verlängerung
sinnvoller, da nicht jeder Peer die Peers kennt, die seine Verweise
verwalten.
-
In
den strukturierten Peer-to-Peer Systemen kann immer nur nach Metatags
gesucht werden, dies ist bedingt durch die Nutzung der DHTs. Da
auch Silkworm DHTs verwendet, kannn auch hier nur nach Metatags gesucht
werden. Allerdings kann gleichzeitig nach mehreren Metatags gesucht
werden, da alle definierten Metatags in einem Verweis gespeichert
werden. Hierzu wird jedes Metatag aus der Suchanfrage einem String
Qi mit i = 1, 2, ... zugeordnet. Die Gruppe,
in der die Suche erfolgt, wird jeweils über den ersten Suchstring Q1 derart bestimmt, dass dessen GruppenIDs
berechnet werden. Die Anfrage, die aus allen Suchstrings Qi und den GruppenIDs von Q1 und
einem TTL-Feld besteht, wird nun an alle Peers geschickt, die die
größte Übereinstimmung
bei den GruppenIDs besitzen. Dieser Vorgang wiederholt sich so lange,
bis Peers erreicht werden, bei denen alle GruppenIDs mit denen der
Anfrage identisch sind. Wenn dieser Fall eintritt, nehmen diese Peers
die Position von Verteilerpeers ein, d. h. sie flooden ihre Gruppe
mit dieser Anfrage, sammeln alle Antworten und senden diese nach
einer gewissen Zeit an den ursprünglich
anfragenden Peer zurück.
Außerdem speichern
sie die Anfrage und die zugehörigen
Antworten für
einige Zeit in ihrem Cache. Diese Zeit ist von der maximalen Lebensdauer
der Verweise abhängig.
-
Erreicht
einen Peer eine gefloodete Anfrage, wird zuerst geprüft, ob diese
Anfrage schon kürzlich
beantwortet wurde. Wurde sie kürzlich
beantwortet, wird die Anfrage nicht weiter bearbeitet. Ist dies
nicht der Fall, wird der Cache nach ähnlichen Anfragen durchsucht.
Falls diese existieren, werden deren Antworten an den entsprechenden
Verteilerpeer geschickt. Anschließend prüft der Peer seine Verweise,
ob dort ein Metatag dem Suchstring Q1 entspricht.
Die Ergebnisse werden mit den weiteren Suchstrings Q2,
..., Qi verglichen und die nun gewichteten Übereinstimmungen
an den Verteilerpeer gesendet. Desweiteren kann im Cache dieses Peers
die Anfrage und ein Link auf den Verteilerpeer für eine gewisse Zeit angelegt
werden. Durch diesen Eintrag kann sichergestellt werden, dass Anfragen
von unterschiedlichen Peers schneller beantwortet werden können. Nachdem
der Peer diese Schritte abgearbeitet hat, sendet er die Anfrage
mit einem um 1 verminderten TTL-Feld an alle ihm bekannten Nachbarpeers,
außer
an den, von dem er die Anfrage erhalten hat. Wenn das TTL-Feld den
Wert 0 erreicht hat, wird die Anfrage fallen gelassen, und ein Terminierungssignal
an den Verteilerpeer geschickt. Dies kann auch gleichzeitig mit
der Beantwortung der Anfrage geschehen.
-
Die
folgenden Algorithmen beschreiben die Arbeitsweise jedes Peers in
Silkworm. Im Anhang sind noch weitere Flussdiagramme (5–8)
beigefügt,
die die Algorithmen graphisch darstellen.
- • In einem
ersten Schritt muss jeder Peer seine Identität festlegen und sich mit dem
Netzwerk verbinden.
- • Anschließend wird
eine Schleife bis zum Verlassen des Netzwerkes wiederholt durchlaufen.
In ihr werden alle Funktionen des Peers überwacht und gesteuert.
- • Wenn
ein Peer eine Nachricht mit einer Anfrage erhält, wird folgender Algorithmus
in der Methode Check(message_List) ausgeführt.
-
Die
Erfindung beschränkt
sich in ihrer Ausführungsform
nicht auf die vorstehend angegebenen bevorzugten Ausführungsbeispiele.
Vielmehr ist eine Anzahl von Varianten denkbar, die von der erfindungsgemäßen Vorrichtung
auch bei grundsätzlich
anders gearteten Ausführungen
gebrauch machen.
-
Literatur
-
- [1] CollabNet. Jxta. http://www.jxta.org/, 2006.
- [2] V. Darlagiannis, A. Mauthe, and R. Steinmetz. Overlay design
mechanisms for heterogeneous, large scale, dynamic p2p systems.
Journal of Networks and System Management, 2004.
- [3] Fasttrack. http://www.kazaa.com/, 2003.
- [4] Freenet. http://freenetproject.org/, 2006.
- [5] The gnutella protocol specification.
http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf,
2000.
- [6] I. Gupta, K. Birman, P. Linga, A. Demers, and R. van Renesse.
Kelips: Building an efficient and stable P2P DHT through increased
memory and background overhead. In Proceedings of the 2nd International
Workshop on Peer-to-Peer Systems (IPTPS '03), February 2003.
- [7] R. Huebsch, J.M. Hellerstein, N. Lanham, B.T. Loo, S. Shenker,
and I. Stoica. Querying the internet with pier. In 29th International
Conference on Very Large Data Bases. Morgan Kaufmann, 2003.
- [8] D. Malkhi, M. Naor, and D. Ratajczak. Viceroy: A scalable
and dynamic emulation of the butterfly. In Proceedings of the 21st
annual ACM symposium on Principles of distributed computing. ACM
Press, 2002.
- [9] G. Manku, M. Bawa, and P. Raghavan. Symphony: Distributed
hashing in a small world. In 4th USENIX Symposium on Internet Technologies
and Systems (USITS 2003), 2003.
- [10] P. Maymounkov and D. Mazieres. Kademlia: A peer-to-peer
information system based on the xor metric. In Proceedings of the
1st International Workshop on Peer-to-Peer Systems (IPTPS '02), March 2002.
- [11] J. Mischke and B. Stiller. Rich and scaleable peer-to-peer
search with shark. In 5th International Workshop on Active Middleware
Services (AMS 2003), 2003.
- [12] M. Naor and U. Wieder. A simple fault tolerant distributed
hash table. In Proceedings of the 2nd International Workshop on
Peer-to-Peer Systems (IPTPS '03),
February 2003.
- [13] S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Shenker.
A scalable content addressable network. Technical Report TR-00-010,
Berkeley, CA, 2000.
- [14] A. Rowstron and P. Druschel. Pastry: Scalable, decentralized
object location, and routing for large-scale peer-to-peer systems.
2001.
- [15] I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan.
Chord: A scalable Peer-To-Peer lookup service for internet applications.
pages 149–160,
2001.
- [16] The Eclipse Foundation. Gnutella 0,6. http://rfc-gnutella.sourceforge.net/developer/testing/,
2002.
- [17] H. Unger and M. Wulff. Search in Communities: An Approach
derived from the Physic Analogue of Thermal Fields. Universität Rostock,
2002.
- [18] B. Zhao, Y. Duan, L. Huang, A. Joseph, and J. Kubiatowicz.
Brocade:landmark routing on overlay networks. In 1st International
Workshop on Peer-to-Peer Systems (IPTPS), Berlin, 2002. Springer
Verlag (Deutschland).
- [19] B.Y. Zhao, L. Huang, J. Stribling, S.C. Rhea, A.D. Joseph,
and J.D. Kubiatowicz. Tapestry: A resilient global-scale overlay
for service deployment. IEEE JOURNAL, January 2004.