Sie sind auf Seite 1von 34

Peer-to-Peer-Algorithmen

Vortrag zum Seminar


Modellierung dynamischer und adaptiver Systeme
WS10/11

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


Übersicht
1. Motivation und Definition
2. Problemstellung
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


1 Motivation und Definition
Definition: Keine Macht für Niemand
1. Motivation und Definitionen
2. Problemstellung
Definitionen: 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables

Ein P2P-Netzwerk bildet ein Overlay-Netzwerk (OSI 5-7) 5. Chord


6. Plaxton-Routing
bestehend aus üblicherweise heterogenen Peers 7. Ausblick
(engl.: Gleichgestellte).

Dies bedeutet, dass kein Teilnehmer eine


Funktion besitzt, die unter anderem Umständen nicht auch von
einem beliebigen anderen Teilnehmer erfüllt werden könnte.

Dies gilt insbesondere für die Rollen „Client“ und „Server“.

Gegensatz: Reines Client-Server-Modell

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


1 Motivation und Definition
Motivation: Mehr als Filesharing
1. Motivation und Definitionen
2. Problemstellung
Motivation 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
● Flexible Netzwerkstruktur 5. Chord
6. Plaxton-Routing
● Flexibler Datenbestand 7. Ausblick
● Hochverteilter, heterogener Rechnerverbund
● Ausnutzung von Prizipien der Selbstorganisation

Einsatz unter anderem für

● Variable Cluster (siehe Google, insb. Bigtable)


● Kooperative Dateisysteme
● Content Distribution Netzwerke (u.a. Filesharing-Dienste)
● Botnets:

"In terms of power, [the botnet] utterly blows the supercomputers


away. If you add up all 500 of the top supercomputers, it blows
them all away with just 2 million of its machines. It's very
frightening that criminals have access to that much computing
power, but there's not much we can do about it."

Matt Sargeant, CTO MessageLabs

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


2 Problemstellung
Folgen der Dynamik
1. Motivation und Definitionen
2. Problemstellung
● Heterogene Peers (Netzanbindung, 3. Beispiel: Gnutella
Rechenleistung …) 4. CAN / Distributed Hash Tables

● Keine Verfügbarkeitsgarantien für Peers und Daten 5. Chord


6. Plaxton-Routing
● Hohe Dynamik der Verbindungsstruktur und 7. Ausblick
Datenverteilung

Lösungskriterien:

● Ausfallsicherheit
● Effiziente, korrekte Suche nach Daten
● Optimaler Datenzugriff und/oder -austausch durch
optimiertes Routing
● Adaptability: Hinzufügen / Entfernen von Peers
unkritisch

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Das erste echte P2P-Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Gnutella (2000, Nullsoft) beschreibt ein Protokoll, keine 3. Beispiel: Gnutella
Implementierung. 4. CAN / Distributed Hash Tables
5. Chord

Ping Mit TTL zum Aufspüren anderer Peers, und 6. Plaxton-Routing


7. Ausblick
Einbindung in P2P-Netzwerk
Pong Antwort auf Ping mit IP, Port, Datenvolumen
Query Suchanfrage an andere Peers
QueryHit Antwort auf Query mit IP, Port, Verbindungs-
geschwindigkeit und Beschreibung der Dateien,
die der Anfrage der Query-Nachricht entsprechen
Push Zur Umgehung von Firewalls

Nach einem QueryHit werden Daten direkt zwischen dem


Absender von Query und dem Absender von QueryHit
ausgetauscht – dies ist typisch für Datenaustausch in P2P.

● Suche nach anderen Peers geschieht über Broadcast


via Ping mit TTL (ähnlich traceroute).
entsteht durch Suchen (Verbesserung siehe CHORD).
● Peers sehen immer nur ein Teilnetzwerk, das durch TTL
von Ping beschränkt ist

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Bootstrapping 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick
Neuer Peer

BSP

● Im Bootstrapping verbindet sich ein neuer Peer mit einer


festen IP-Adresse eines permanent mit dem Netzwerk
verbundenen Peers (BSP). Dieser wird zufällig ausgewählt.
● Via Ping/Pong Mechanismus erhält der neue Peer
Informationen über die Netzwerkstruktur.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Ping-Broadcast 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
TTL:0 6. Plaxton-Routing
TTL:4 7. Ausblick
TTL:1

TTL:3 TTL:0
TTL:2
TTL:2

TTL:1

● Benachbarte Peers reichen die Ping-Nachricht weiter


und dekrementieren zuvor das TTL-Feld.
● Dadurch ist ein Peer nur mit einem Teilnetzwerk
tatsächlich verbunden.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Pong-Response 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

● Peers, die ein Ping-Paket erhalten, antworten mit einer


Pong-Nachricht, die auf dem umgekehrten Ping-Pfad
zurückgesendet wird.
● Damit also eine Pong-Antwort je gefundenem Peer

Mechanismus von Query/QueryHit ist analog zu Ping/Pong.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Das Netzwerk aus der Sicht des neuen Peers 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


3 Beispiel Gnutella
Diskussion
1. Motivation und Definitionen
2. Problemstellung
● Gnutella-Netzwerke sind extrem robust 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables

● 70% der Netzwerklast in einem Gnutella-Netzwerk 5. Chord


6. Plaxton-Routing
sind Queries 7. Ausblick

● Das Netzwerkmodell des Peers ist wie erwähnt


unvollständig

● Demnach können nur Dateien gefunden werden,


die sich zufällig in der Nachbarschaft des suchenden
Peers befinden

● Verbesserungsvorschläge: Suche durch Random


Walks statt TTL, passive Replikation (Caching von
Suchergebnissen).

Es findet keine Optimierung des Routings statt: Besser


angebundene Nachbarn werden nicht bevorzugt.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Verteilte Datenstrukturen
1. Motivation und Definitionen
2. Problemstellung
● Durch verteilte Hash-Tabellen wird versucht, Daten 3. Beispiel: Gnutella
gleichmäßig auf Peers zu verteilen. 4. CAN / Distributed Hash Tables
● Hierbei bildet eine Hash-Funktion Dateien auf 5. Chord

Speicherbereiche ab (nicht auf Peers). 6. Plaxton-Routing


7. Ausblick
● Unabhängig von dieser Zuordnung sind Peers für einzelne
Speicherbereiche verantwortlich, die im Idealfall gleich
groß sind

Durch die Indirektion Datei – Speicherbereich – Peer muss die


Hashfunktion bei neuen / entfernten Peers nicht verändert
werden

DHTs sind besonders geeignet für verteilte Datenpersistenz

CAN: Scalable Content Addressable Network


(Ratnasamy et al., 2000)

(Nicht zu verwechseln mit CAN-Bus, Controller Area Network)

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
CAN: Modell und Struktur
1. Motivation und Definitionen
2. Problemstellung
f1 f2 3. Beispiel: Gnutella

p2 f4 4. CAN / Distributed Hash Tables


5. Chord
6. Plaxton-Routing
p3 7. Ausblick

f5 p4

f2

Dateien werden über Hash-Funktion


p1 eindeutige Positionen in einer
f3
quadratischen Fläche zugewiesen

Peers sind für einen zufälligen


Speicherbereich verantwortlich

Falls eine Datei im CAN existiert, so kann sie über die Hash-Funktion von jedem
Peer selbst (d.h. ohne Kooperation mit anderen Peers) lokalisiert werden.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
p2
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

p1 p2 p1

● Ein neuer Peer wählt einen zufälligen Punkt aus dem


gesamten Speicherbereich.
● Die Speicherzelle, der dieser Punkt angehört, wird geteilt:
Quadratische Speicherzelle vertikal, rechteckige Zelle
horizontal.
● Der neue Peer übernimmt die Hälfte des Speicherbereichs,
in dem der von ihm gewählte Punkt liegt.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Einbindung eines Peers in das Netzwerk
1. Motivation und Definitionen
2. Problemstellung
p3
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
p3
7. Ausblick

25%
p2 p1 p2

p1

50% 50% 50% 25%

Der Punkt an der ein Peer eingefügt wird ist zufällig gewählt,
die Wahrscheinlichkeit, einen kleinen Speicherbereich weiter
zu fragmentieren ist also geringer, als einen großen Speicher-
bereich aufzuteilen.
Neue Peers werden von dem Peer, dessen Speicherbereich
sie aufteilen, über die Existenz anderer orthogonaler Nachbarn
informiert.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Suche in CAN
1. Motivation und Definitionen
2. Problemstellung
f1 3. Beispiel: Gnutella
q(x,y) q(x,y) 4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

q(x,y)

Suchanfragen werden an einen


benachbarten Peer weitergeleitet,
dessen Speicherbereich hinsichtlich
der x- oder y-Koordinate „näher“ an
der Datei ist.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Diskussion
1. Motivation und Definitionen
2. Problemstellung
Vorteile gegenüber Gnutella: 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables

● Einfügen von Peers ohne Netzwerkbelastung 5. Chord


6. Plaxton-Routing
7. Ausblick
● Jede Datei im Netzwerk kann gefunden werden

● Geringer Kommunikations-Overhead für Queries:


Nur O(n1/2) Peers an einer Suche beteiligt

● Erstes Netzwerk mit Konzept der DHTs

DHTs sind seitdem ein Standard-Konzept in


P2P-Netzwerken

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


4 CAN / Distributed Hash Tables
Diskussion
1. Motivation und Definitionen
2. Problemstellung
Nachteile: 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables

● Peers entscheiden nicht, welche Dateien sie anbieten. 5. Chord


6. Plaxton-Routing
Aber trotzdem im Filesharing für die Protokoll- 7. Ausblick

Infrastruktur nutzbar (siehe Bittorrent: Kademlia für


Trackerless Mode).

● Geringere Robustheit im Vergleich zu Gnutella durch


redundanzfreie Verbindungen

● Größter Nachteil: Es geht noch besser

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


5 Chord
Binäre Suche im Netzwerk
1. Motivation und Definitionen
2. Problemstellung
Entwickelt am MIT: 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables

Chord: A Scalable Peer-to-peer Lookup Service 5. Chord


6. Plaxton-Routing
for Internet Applications (ACM SIGCOMM, 2001) 7. Ausblick

Chord ist keine Implementierung, sondern definiert wie


Gnutella ein Protokoll auf Basis einer verteilten
Hash-Tabelle.

Statt wie bei CAN eine Fläche ist der Bildbereich der
Hash-Funktion bei Chord ein Ring, die Prinzipien in der
Zuweisung von Peers und Dateien auf den Bildbereich
sind aber dieselben.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


5 Chord
Modell und Struktur
1. Motivation und Definitionen
2. Problemstellung
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

Wie bei CAN werden Peers zufällig


auf Punkte auf dem Ring verteilt und
Dateien nach einer Hash-Funktion.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


5 Chord
Modell und Struktur
1. Motivation und Definitionen
2. Problemstellung
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

Dateien werden von dem Peer


verwaltet, der ihnen auf dem Chord-
Ring im Umlaufsinn folgt.

Allein nach dieser Struktur wäre der


Aufwand der Suche O(n) für n Peers.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


5 Chord
Modell und Struktur
1. Motivation und Definitionen
2. Problemstellung
3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
7. Ausblick

Zusätzlich werden Finger-Zeiger


eingeführt, wobei der i-te Finger
eines Peers p auf die Position k
zeigt, mit

k = h(p) + 2i-1 mod kmax

Ist k unbesetzt, so zeigt der Finger


auf den Peer, der k in Zählrichtung
folgt.

Durch Fingerzeiger benötigt eine Suche in einem Chord-Netzwerk mit hoher


Wahrscheinlichkeit nur O(log n) Nachrichten für n Peers.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Eine kurze Einführung
1. Motivation und Definitionen
2. Problemstellung
Nach dem Verfahren von 3. Beispiel: Gnutella
Plaxton, Rajamaran, Richa (1997) 4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
Ziel: Redundante Persistenz von Daten, optimiert für 7. Ausblick

effizienten Zugriff in hochverteilten Netzen


(P2P damals noch unbekannt)

Erstes Modell, das für dieses Problem ein Kostenmodell


verwendet.

Das 1997 beschriebene Verfahren ist sehr formal und


komplex, sogar komplexer als heutige verbreitete
Implementierungen

Im Folgenden stark vereinfachte Einführung

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Kostenmodell
1. Motivation und Definitionen
2. Problemstellung
Grundlage ist eine Metrik 3. Beispiel: Gnutella
4. CAN / Distributed Hash Tables
c t =cu , v⋅f n 5. Chord
6. Plaxton-Routing
7. Ausblick

Für die Kosten zur Übertragung von n Bit von u nach v


mit f : ℕ ℝ als beliebige monoton steigende
Funktion.
Für Knoten u und v aus V sei
M u , r ={c u , v r }
die Menge der Knoten im Umkreis r von u, und weiter
ist vorausgesetzt

∀ r : ∃ 8 ,∈ ℝ
min ⋅∣M u , r∣ , n  ∣M u ,2 r ∣  ⋅∣M u , r ∣
Es ist nicht gesichert, dass diese Voraussetzungen für
das Internet gelten.

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Mapping
1. Motivation und Definitionen
2. Problemstellung
Objekte und Knoten werden über Hash-Funktion 3. Beispiel: Gnutella

in gemeinsamen ID-Raum abgebildet. 4. CAN / Distributed Hash Tables


5. Chord
6. Plaxton-Routing
Ein Objekt ist dem Knoten zugeordnet, mit dem 7. Ausblick

es das längste gemeinsame ID-Präfix hat.

Ziel ist wie bei CAN und Chord eine möglichst


gleichmäßige Verteilung der Objekte.

Definierte Operatoren sind


ID: 2342
Read
Insert
Delete
ID: 2392 ID: 2313

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Struktur
1. Motivation und Definitionen
2. Problemstellung
Knoten unterhalten eine Zeigerliste Pt(A,v,k) 3. Beispiel: Gnutella

(Objekt A ist auf Knoten v mit Kosten k erreichbar) 4. CAN / Distributed Hash Tables
5. Chord
und eine Nachbarschaftsliste. 6. Plaxton-Routing
7. Ausblick

Ein (i,j)-Nachbarknoten u von v hat ein mit v gemeinsames


ID-Präfix der Länge i-1 und das Zeichen j an i-ter Stelle.

● Primärer (i,j)-Nachbar
Ist ein Nachbar mit minimalem c(u,v).

● Sekundäre (i,j)-Nachbarn
Mit u als primären (i,j)-Nachbarn gebe es d sekundäre
Nachbarn v' für die gilt:
c u , v '   d⋅c v , u
● Primäre (i,j)-Rückwärtsnachbarn
Rückwärtskante vom Primären Nachbarn

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Routing: Operation Read
1. Motivation und Definitionen
2. Problemstellung
Query ID:2342 a Prinzipiell wird die Suche 3. Beispiel: Gnutella
an den primären Nachbarn 4. CAN / Distributed Hash Tables
mit der in Zählrichtung der 5. Chord

2417 Datei näheren ID weiter- 6. Plaxton-Routing


7. Ausblick
gereicht.
2355 2415

b 2341

2342

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Routing: Operation Read
1. Motivation und Definitionen
2. Problemstellung
Query ID:2342 a Prinzipiell wird die Suche 3. Beispiel: Gnutella
an den primären Nachbarn 4. CAN / Distributed Hash Tables
mit der in Zählrichtung der 5. Chord

2417 Datei näheren ID weiter- 6. Plaxton-Routing


7. Ausblick
gereicht.
2355 2415 Für die Dateiübertragung
wird keine direkte Verbindung
zwischen a und b hergestellt,
die Route dient also auch als
Übertragungsweg.
b 2341

2342

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Routing: Operation Read
1. Motivation und Definitionen
2. Problemstellung
Query ID:2342 a Der Weg über die primären 3. Beispiel: Gnutella
Nachbarn ist aber nicht 4. CAN / Distributed Hash Tables
unbedingt optimal. 5. Chord

2417 6. Plaxton-Routing
7. Ausblick
Wenn ein sekundärer Nachbar
c:3 eine bessere Route findet,
2355 2415 dann speichert er diese in
c:4 seiner Zeigerliste.
c:7
c:4 2321
!

b 2341

2342

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Routing: Operation Read
1. Motivation und Definitionen
2. Problemstellung
Query ID:2342 a Der Weg über die primären 3. Beispiel: Gnutella
Nachbarn ist aber nicht 4. CAN / Distributed Hash Tables
unbedingt optimal. 5. Chord

2417 6. Plaxton-Routing
7. Ausblick
Wenn ein sekundärer Nachbar
c:3 eine bessere Route findet,
2355 2415 dann speichert er diese in
c:4 seiner Zeigerliste.
c:7
c:4 2321 Außerdem wird eine Kopie des
Objekts in diesem sekundären
Nachbarn angelegt.
b 2341 2342
Der entstehende Overhead in
der Kommunikation wird in den
2342
Berechnungen zur Optimalität
nicht berücksichtigt.

Effekt: Suche nach Dateien optimiert die Netzwerkstruktur


→ Weiteres Alleinstellungsmerkmal von Plaxton-Routing

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


6 Plaxton-Routing
Diskussion
1. Motivation und Definitionen
2. Problemstellung
● Zeiger-Liste von Plaxton ähnelt prinzipell den 3. Beispiel: Gnutella
Finger-Zeigern von Chord, allerdings mit 4. CAN / Distributed Hash Tables

latenzoptimierter Zuordnung. 5. Chord


6. Plaxton-Routing
7. Ausblick
● Plaxton-Routing ist das erste Verfahren, für das
seine Effizienz bewiesen werden kann

● Aber: Nur unter bestimmten Voraussetzungen und


ohne Berücksichtigung von Maintainance-Overhead

● Formell erfüllt Plaxton-Routing sehr hohe


Qualitätsmerkmale einer verteilten Datenhaltung

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


7 Ausblick
Was auf der Strecke blieb
1. Motivation und Definitionen
2. Problemstellung
● Freenet von Ian Clarke 3. Beispiel: Gnutella
freenetproject.org 4. CAN / Distributed Hash Tables
5. Chord
6. Plaxton-Routing
● Kademlia 7. Ausblick

(Alternative zu Chord speziell für Filesharing)


xlattice.sourceforge.net/components/protocol/kademlia/specs.html

● Pastry / Chimera
(DHTs basierend auf Chord und Plaxton Routing)
freepastry.org
current.cs.ucsb.edu/projects/chimera

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


Quellen

● Peer-to-Peer-Netzwerke
Peter Mahlmann, Christian Schindelhauer, Springer-Verlag, 2007

● Artificial Intelligence: A Modern Approach


Stuart Russel, Peter Norvig, Prentice Hall, 2009

● The Chord / Dhash Project


MIT CSAIL Parallel & Distributed Operating Systems Group
http://pdos.csail.mit.edu/chord/

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs


Danke für Ihre Aufmerksamkeit

Modellierung dynamischer und adaptiver Systeme | WS 10/11 | 20.01.2011 | Tobias Fuchs