DE102006023758A1 - Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium - Google Patents

Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium Download PDF

Info

Publication number
DE102006023758A1
DE102006023758A1 DE200610023758 DE102006023758A DE102006023758A1 DE 102006023758 A1 DE102006023758 A1 DE 102006023758A1 DE 200610023758 DE200610023758 DE 200610023758 DE 102006023758 A DE102006023758 A DE 102006023758A DE 102006023758 A1 DE102006023758 A1 DE 102006023758A1
Authority
DE
Germany
Prior art keywords
peer
network
computer
structured
group
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.)
Withdrawn
Application number
DE200610023758
Other languages
English (en)
Inventor
Heiko Sturzrehm
Herwig Unger
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE200610023758 priority Critical patent/DE102006023758A1/de
Publication of DE102006023758A1 publication Critical patent/DE102006023758A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

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. Hierzu wird ein Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer-Netzwerkes vorgeschlagen, welches ein selbstorganisierendes Netzwerk gleichberechtigter, autonomer Systeme (Computer) ohne Nutzung zentraler Dienste auf Basis eines unzuverlässigen Netzwerkes erschafft. Weiterhin kann jeder teilnehmende Rechner Ressourcen anbieten und andere nutzen. Jeder teilnehmende Rechner und alle Daten sind durch eindeutige Identifikatoren gekennzeichnet. Außerdem besteht das Netzwerk aus einer unstrukturierten und beliebig vielen strukturierten Ebenen, wobei die unstrukturierte Ebene die unterste ist. Zwischen den Ebenen und innerhalb der strukturierten Ebenen erfolgt ein strukturiertes Routing von Nachrichten und in der unstrukturierten Ebene ein Routing mittels des Flodding-Algorithmus. Jede Ebene besteht aus einer Anzahl von Gruppen und jede Gruppe gehört zu genau einer Gruppe in der darüberliegenden Ebene. Weiterhin gehört jeder teilnehmende Rechner zu genau einer Gruppe in der untersten Ebene und damit auch zu den entsprechenden Gruppen der darüberliegenden Ebenen. Jedem teilnehmenden Rechner ist in jeder Ebene eine ...

Description

  • 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
    Figure 00050001
    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 108 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 (58) beigefügt, die die Algorithmen graphisch darstellen.
    • • In einem ersten Schritt muss jeder Peer seine Identität festlegen und sich mit dem Netzwerk verbinden.
      Figure 00070001
    • • Anschließend wird eine Schleife bis zum Verlassen des Netzwerkes wiederholt durchlaufen. In ihr werden alle Funktionen des Peers überwacht und gesteuert.
      Figure 00070002
      Figure 00080001
    • • Wenn ein Peer eine Nachricht mit einer Anfrage erhält, wird folgender Algorithmus in der Methode Check(message_List) ausgeführt.
      Figure 00080002
  • 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.

Claims (10)

  1. Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes, dadurch gekennzeichnet, dass • ein selbstorganisierendes Netzwerk gleichberechtigter, autonomer Systeme (Computer) ohne Nutzung zentraler Dienste auf Basis eines unzuverlässigen Netzwerkes erschaffen wird, • jeder teilnehmende Rechner Ressourcen anbieten kann und andere nutzen kann, • jeder teilnehmende Rechner und alle Daten eindeutige Identifikatoren erhalten, • das Netzwerk aus einer unstrukturierten und beliebig vielen strukturierten Ebenen besteht, wobei die unstrukturierte Ebene die unterste ist, • zwischen den Ebenen und innerhalb der strukturierten Ebenen ein strukturiertes Routing von Nachrichten erfolgt, • in den unstrukturierten Ebenen das Routing mittels des Flodding-Algorithmus erfolgt, • jede Ebene aus einer Anzahl von Gruppen besteht und jede Gruppe zu genau einer Gruppe in der darüberliegenden Ebene gehört. • jeder teilnehmende Rechner zu genau einer Gruppe in der untersten Ebene gehört, und damit auch zu den entsprechenden Gruppen der darüberliegenden Ebenen • jeder teilnehmende Rechner in jeder Ebene eine gewisse Anzahl von anderen Teilnehmern seiner Gruppe bekannt ist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die eindeutigen Identifikatoren über eine Hash-Funktion, wie beispielsweise SHA-1, ermittelt werden. Als Parameter für diese Funktion können beispielsweise IP-Adressen, Rechnernamen, Seriennummern oder Metatags dienen.
  3. Verfahren einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass die Anzahl der Gruppen pro Ebene von den beteiligten Rechnern abhängig ist.
  4. Verfahren zur Suche in einem Netzwerke nach einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass • eine Suchanfrage aus der Anfrage, der Adresse des Absenderpeers, der Adresse des Verteilerpeers, den Gruppenidentifikatoren für diese Anfrage und einem Time-to-Live Feld (TTL) besteht. • die Suchanfrage immer zu den Nachbarn, mit der größten Gruppenübereinstimmung mit der Suchanfrage, geroutet wird. • die Peers, die zuerst erreicht werden und eine identische Gruppenzugehörigkeit besitzten, die Suchanfrage speichern und sie in Peers mit gleicher Gruppenzugehörigkeit flooden. Diese Peers werden nun als Verteilerpeers für diese Suchanfrage bezeichnet. • die Suchanfrage ignoriert wird, wenn der Peer eine identische Gruppenzugehörigkeit wie die Anfrage besitzt und er diese schon einmal bearbeitet hatte. • ein Peer mit einer identische Gruppenzugehörigkeit seine Informationen auswertet und bei Übereinstimmung eine Antwort an den entsprechenden Verteilerpeer sendet. • der Verteilerpeer eine gewisse Zeit wartet, bevor er die erhaltenen Antworten an den Absenderpeer schickt.
  5. Verfahren nach dem voranstehenden Anspruch, dadurch gekennzeichnet, dass die Anfrage aus mehreren Teilen bestehen kann, z. B. Dateiname, Erstellungsdatum usw. Prinzipiell können hierfür alle Metadaten über eine Datei herangezogen werden.
  6. Computerprogramm, dass es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein System zur adaptiven Nutzung von drahtlosen Kommunikationsmedien gemäß einem der Ansprüche 1 bis 22 nutzbar zu machen, wobei das Computerprogramm die Initialisierung und Steuerung der Kommunikation über Verbindungsarten realisiert.
  7. Computerprogramm nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass das Computerprogramm ein Modul umfasst und dieses auf einem Computer installiert ist.
  8. Computerlesbares Speichermedium, auf dem ein Computerprogramm gemäß einem der Ansprüche 6 oder 7 gespeichert ist.
  9. Computerlesbares Speichermedium nach dem vorherigen Anspruch dadurch gekennzeichnet, dass das computerlesbare Speichermedium ein für die Installation in einem Computer geeignete Module umfasst.
  10. Verfahren, bei dem ein Computerprogramm nach einem der Ansprüche 6 und 7 aus dem elektronischen Datennetz, wie beispielsweise dem Internet, auf eine an das Datennetz angeschlossene Datenverarbeitungseinrichtung herunter geladen wird.
DE200610023758 2006-05-20 2006-05-20 Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium Withdrawn DE102006023758A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200610023758 DE102006023758A1 (de) 2006-05-20 2006-05-20 Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610023758 DE102006023758A1 (de) 2006-05-20 2006-05-20 Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium

Publications (1)

Publication Number Publication Date
DE102006023758A1 true DE102006023758A1 (de) 2007-11-22

Family

ID=38608069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610023758 Withdrawn DE102006023758A1 (de) 2006-05-20 2006-05-20 Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium

Country Status (1)

Country Link
DE (1) DE102006023758A1 (de)

Similar Documents

Publication Publication Date Title
EP1423964B1 (de) Skalierbares peer-to-peer-netzwerk mit einem verzeichnisdienst
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE602005001883T2 (de) Überlagerte Daten, Selbstorganisierte überlagerte Metadaten, und Mehrfachsendung auf Anwendungsebene
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE60036021T2 (de) System zur Verteilung von Daten innerhalb eines Internetzwerkes mit zweitseitiger Vereinbarung über Inhalt
DE60121176T2 (de) Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
DE102006021591B3 (de) Verfahren und Anordnung zur Datenübertragung zwischen Peer-to-Peer-Netzwerken
DE60217666T2 (de) System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen
DE60132718T2 (de) System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen
DE602005005471T2 (de) Peer-to-peer-netze
EP1856889A1 (de) Bereitstellung von redundanten sip proxy ressourcen
Muthusamy et al. Infrastructure-free content-based publish/subscribe
WO2008058823A1 (de) Verfahren zur lastverteilung bei einem peer-to-peer-overlay-netzwerk
Cheng et al. Probabilistic file indexing and searching in unstructured peer-to-peer networks
Moreno et al. On content delivery network implementation
DE602004005059T2 (de) Computernetzwerk zum identifizieren mehrerer knoten, mit demselben etikett übereinstimmen
DE102006052451B4 (de) Verfahren zum Betrieb eines dezentralen Datennetzes
DE102006023758A1 (de) Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
DE102006024982A1 (de) Peer-to-Peer-Kommunikationseinrichtung, Verfahren zum Bilden einer Peer-to-Peer-Identifikationsangabe und Verfahren zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks
Furtado Multiple dynamic overlay communities and inter-space routing
Tran et al. PUB-2-SUB: A Content-Based Publish/Subscribe Framework for Cooperative P2P Networks: (Work in Progress)
Dustdar et al. Peer-to-Peer-Architekturen
Shams et al. PreeN: Improving steady-state performance of isp-friendly P2P applications
Wu et al. Aurelia: Building locality-preserving overlay network over heterogeneous p2p environments
Gatani et al. Notice of Violation of IEEE Publication Principles: Reinforcement learning for P2P searching

Legal Events

Date Code Title Description
8122 Nonbinding interest in granting licenses declared
8139 Disposal/non-payment of the annual fee