Ansätze um Inhalte in P2P-Systemen zu finden
Gerichtete Suche
= Suche in einem Ring bis Info gefunden
ein Konten hat Informationen oder weiß, wo sie ist -> suchender Knoten fragt ihn
einfache Serielle Strategie
braucht O(N)
Single point of failer, hohe Last
Hashtabellen
jeder Peer hat einzigartige ID
Daten werden mit Schlüssel verbunden und in Hashtabelle gespeichert
Knoten sind Hsh-Einträge in verteilten Hashtabellen
Hash des Schlüssels gibt verantworliches Peer
Daten und Last können balanciert werden
Streichen und Hinzufügen von Servern muss getrennt behandelt werden
minimales dezentrisches Interface: Lookup(key) -> IP address
Chord (MIT
jeder Knoten hat O(K/N) keys
verbessert: mit Fingertabelle
n+2^i
O(log N) Zustände in jedem Knoten
CAN = Content Addressable Network
D-dimensionaler kartesischer Raum (d=2)
Sukzessive Teilung des Raumes bei neuen Knoten
Knoten für Key k wird durch Hashs für jede Dimension bestimmt
Nachrichten routen, sodass kartesischer Abstand minimiert wird
Eigenschaften von P2P
Systeme bestehen aus Menge von Komponenten
jede Komponente besitzt Software mit kompatiblen Interfaces
jede Komponente kennt wenigstens mindestens eine weitere im System (Nachbarschaft)
jede Komponenten sowohl Client als auch Server
alle Komponenten tragen zur Aufgabenerfüllung des gesamten Systems bei
Systeme sind:
flexibel
robust
skalierbar
Besonderheiten:
keine zentrale Überwachung und Steuerung möglich
Struktur und Größe des Systems meist unbekannt
Peer kennt immer nur Teil des gesamten Systems
Unterschied Client-Server vs. P2P
3 Kooperationsmodelle in P2P
zentralisiert (Bsp. Napster)
zentrale Stelle mit globalem Inhaltsverzeichnis (single point of failure)
direkter Kontakt zwischen Anbieter und Nutzer
Dezentral (Bsp. Freenet, Gnutella)
keine zentrale Komponente
nur lokale Interaktionen
direkte Kontakt zwischen Anbieter und Nutzer (Gnutella) oder vermittelt über Zwischenstellen (Freenet)
Hybrid/ Hierarchisch (Bsp. DNS)
nutzt “super-peers”
Mischung aus 1 und 2
Suche bei Napster
zentrale Datenbank
Clienten registrieren sich und geben Liste von Dateien, die sie weitergeben möchten
andere Clienten durchsuchen zentrale Liste
Filetransfer direkt zwischen Clienten
-> ist Kombination von Client-Server
Suche bei Gnutella
kein zentraler Server
Gnutella Peer = Server und Client (“servent”)
Suche mit Fooding:
Anfrage suksessive immer wieder an alle Nachbarn gesendet (4-5 Mal)
Anzahl Hops begrenzt durch TTL (time to live = 7)
direkter Download
Filetransfer mit HTTP (Identität wird bekannt)
Requests enthalten nur IP des Vorgängerpeers
jeder Servent kennt nur seinen Nachbarn
Suche bei Freenet
Anfrage wird an wahrscheinlichste Lokation gegeben
weder zentraler Server (Napster)
noch Broadcast (Gnutella)
bewahrt Anonymität von Autor und Leser
Quelle und Ziel für Datentransfer bleiben geheim
durch Verschlüsselung kann ein Knoten nicht bestimmen, was er speichert
automatische Inhaltsreplikation
Last changed10 months ago