21
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung Christian Schindelhauer

1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Embed Size (px)

Citation preview

Page 1: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

1

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Algorithmen für Peer-to-Peer-Netzwerke

Sommersemester 200423.04.2004

1. Vorlesung

Christian Schindelhauer

Page 2: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 2

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Kapitel I

Page 3: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 3

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Inhalte

P2P-Netzwerke der 1. Generation:– Napster, Gnutella, Kazaa.

Moderne P2P-Netzwerke– CAN, CHORD, Pastry, Tapestry, etc.

Epidemische Informationsausbreitung und verteilte Datenaggregation

Sicherheit von P2P-Netzwerken

Routing in Overlay-Netzwerken

Randomisierte Algorithmen– Grundlagen der Wahrscheinlichkeitstheorie

Verteilte Algorithmen– Graphtheorie

Page 4: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 4

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Termine

Vorlesung:– jeden Freitag 9-11 (ct), Raum F0.530– Ausnahme:

• Vorlesung vom Fr. 14.05. wird auf Übungstermin am 17.05. von 10-11 verschoben (Raum F0.530)

Übung– Gruppe A: Mo 10-11 (Christian Schindelhauer)– Gruppe B: Mo 11-12 (Peter Mahlmann)

• Außer Mo 14.05. Gruppe A: Fr. 14.05. 9-10 (F0.530) Gruppe B: Fr. 14.05. 10-11 (F0.530)

Anmeldung zum Vorrechnen– spätestens am Freitag vor der Übung– Ausnahme 1. Übung und Übung am 14.05.

Page 5: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 5

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Unterlagen

Webseite der Veranstaltung– http://wwwcs.upb.de/cs/ag-madh/WWW/Teaching/2004SS/AlgoP2P/ – enthält alle vorlesungs- und übungsrelevanten Themen, insbesondere

Vorlesungsfolien, Skript, ÜbungenVorlesungsfolien

– online zur Veranstaltung als Powerpoint und PDF-DokumentSkript

– erscheint innerhalb einer Woche als PDF-Dokument– ist Grundlage der Prüfung

Übungsaufgaben– erscheint online am Mittwoch auf der Web-Seite– sind Grundlage der Prüfung

Prüfungsfragen– Mögliche Prüfungsfragen werden im Skript veröffentlicht

Lösungen der Übungsaufgaben– werden per Peer-to-Peer-Netzwerk verteilt

Page 6: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 6

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Prüfung

Zusammensetzung– Schriftlicher Teil:

• Bearbeitung einer Übungsaufgabe innerhalb einer Stunde– Mündlicher Teil (im Anschluss)

• Vorstellung der Lösung und Fragen zur Vorlesung

Ausnahmeregelung– Schriftlicher Teil entfällt, wenn Teilnehmer im Rahmen der Übung eine Aufgabe

erfolgreich bearbeitet hat, d.h.– Testierung einer mustergültigen schriftlichen Lösung und– Präsentation im Rahmen der Übung

Fragenkatalog– zur Prüfung im Skript

Lösungen der Übungsaufgaben– werden vom Veranstalter nicht veröffentlicht

Page 7: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 7

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Übung

Zweck– Beantwortung von Fragen zur Vorlesung– Präsentation (und Testierung) studentischer Lösungen

Aufgabenstellungen– hauptsächlich aus dem Gebiet der verteilten Algorithmen und

Wahrscheinlichkeitstheorie

Einteilung (über StudInfo{flex})– Gruppe A: Christian Schindelhauer– Gruppe B: Peter Mahlmann– Gruppe C: Peter Mahlmann

Page 8: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 8

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Kapitel II

Page 9: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 9

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Definition

„Ein Peer-to-Peer-Netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server-

Aufgaben durchführt.“

Beobachtung

– Das Internet ist (eigentlich auch) ein Peer-to-Peer-NetzwerkAndere Definition

– von Peer-to-Peer-Working-Group

„In einem Peer-to-Peer-Netzwerk werden verteilte Rechenresourcen durch direkte Kommunikation gemeinsam genutzt.“

Was ist ein Peer-to-Peer-Netzwerk nicht?

– Ein Peer-to-Peer-Netzwerk ist kein Client-Server-Netzwerk!

Page 10: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Napster-Geschichte

Shawn (Napster) Fanning

– brachte Juni 1999 eine Beta-Version seines mittlerweile legendären Napster-Peer-to-peer-Netzwerks heraus

– Ziel: File-sharing-System

– Tatsächlich: Musik-Tauschbörse

– Herbst 1999 war Napster Download des Jahres

Urheberrechtsklage der Musik-Industrie im Juni 2000

Gegen Ende 2000 Kooperationsvertrag

– zwischen Fanning mit Bertelsmann Ecommerce

Seitdem ist Napster eine kommerzielle File-Sharing-Plattform

Page 11: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 11

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Wie funktioniert Napster?

Client-Server-StrukturServer unterhält

– Index mit Meta-Daten• Dateiname, Datum, etc

–Tabelle der Verbindungen der teilnehmenden Clients

–Tabelle aller Dateien der teilnehmenden Clients

Query–Client fragt nach Dateinamen–Server sucht nach passenden Teilnehmern

–Server antwortet, wer die Datei besitzt–Anfrage-Client lädt Datei von datei-besitzenden Client herunter

Page 12: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 12

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Wie gut ist Napster?

Vorteile

– Napster ist einfach

– Dateien werden schnell und effizient gefundenNachteile

– Zentrale Struktur erleichtert Zensur, feindliche Eingriffe und technisches Pannen

• wie z.B. Denial-of-Service-Angriff

– Napster skaliert nicht

• d.h. mit zunehmender Teilnehmerzahl verschlechtert sich die Performanz

• Speicher auf dem Server endlichResumee

– Napster keine akzeptable Peer-to-Peer-Netzwerklösung

– Bis auf den Download-Aspekt ist Napster im eigentlichen Sinne kein P2P-Netzwerk

Page 13: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 13

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Gnutella - Geschichte

Gnutella

– wurde im März 2000 herausgegeben von Justin Frankel und Tom Pepper von Nullsoft

– Nullsoft ist seit 1999 eine Tochter von AOLFile-Sharing-System

– Ziel wie Napster

– Arbeitet aber völlig ohne zentrale Strukturen

Page 14: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 14

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Gnutella - Originalversion - Anbindung

Nachbarschaftslisten– Gnutella verbindet direkt mit anderen

Clients– Beim Download wird ein Liste von

Clients mitgeliefert– Diese werden ausprobiert bis ein

Aktiver sich meldet– Ein aktiver Client gibt dann seine

Nachbarschaftsliste weiter– Nachbarschaftslisten werden immer

weiter verlängert und gespeichert– Die Anzahl aktiver Nachbarn ist

beschränkt (typisch auf fünf)

Page 15: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 15

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Gnutella - Originalversion - Anbindung

Protokoll– Ping

• Teilnehmeranfrage• werden weiter gereicht gemäß

TTL-Feld (time to live)– Pong

• Reaktion auf Ping• Werden auf dem Anfragepfad

zurückgereicht• IP und Port des angefragten

Teilnehmers• Anzahl und Größe zur Verfügung

gestellter Dateien

Graphstruktur– entsteht durch zufälligen Prozess– unterliegt Pareto-Verteilung– entsteht unkontrolliert

Gnutella Schnappschuss im Jahr 2000

Page 16: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 16

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Gnutella - Originalversion - Anfrage

Dateianfrage

– wird an alle Nachbarn geschickt

– diese senden sie an ihre Nachbarn

– bis zu einer vorgegebenen Anzahl von Hops

• TTL-Feld (time to live)Protokoll

– Query• Anfrage nach Datei wird bis zu

TTL-hops weitergereicht– Query-hits

• Antwort auf umgekehrten PfadWenn Datei gefunden wurde,

direkter Download

Page 17: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 17

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Gnutella - Diskussion

Vorteile

– verteilte Netzwerkstruktur

– Netzwerk skalierbarNachteil

– Durch TTL findet für Abfragen eine implizite Netzwerkpartitionierung statt

– Dadurch Anfrageerfolg gering

– Durch lange Wege, große Latenzzeiten

Verbesserungsvorschläge– Random Walks statt Broadcasting– Passive Replikation von Information entlang des Pfads

• Häufigkeit der Replikate nimmt im Quadrat des Abstands ab

Page 18: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 18

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Kazaa, Gnutella (II), Morpheus

Hybride Struktur– Knoten mit großer Bandbreite werden zu

P2P-Server ausgewählt– Diese unterhalten P2P-Netzwerk im Stil

von Gnutella– Normale Knoten werden als Clients an

diese Super-Knoten angebundenEingesetzt in

– Kazaa– Morpheus– Gnutella (neuere Ausgabe)

Vorteile– Verbesserte Skalierbarkeit– Geringere Latenzzeiten

Nachteile– Immer noch unzuverlässig und langsam– Clients können sich der Super-Node-

Aufgabe verweigern

Page 19: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 19

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Kriterien für P2P-Netzwerke

Handhabbarkeit

– Wie schwer ist es, dass Netzwerk zu unterhaltenInformationskohärenz

– Wie gut wird Information verteilt? Erweiterbarkeit

– Wie leicht kann es wachsen?Fehlertoleranz

– Wie gut können Fehler behoben werden?Sicherheit

– Wie leicht kann es mutwillig zerstört werden?Schutz gegen politische Verfolgung

– Wie schwierig ist es, das Netzwerk abzuschalten?Skalierbarkeit

– Wie groß kann ein Netzwerk wachsen?

Page 20: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke 20

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Zusammenfassung

Lackmus-Test für P2P-Netzwerk

– Sind variable Verbindungen und temporäre Netzwerkverbindungen die Norm?

– Sind die Kanten des Netzwerks autonom?

Strukturen von P2P-Netzwerken

Zentral

– siehe NapsterRein dezentral

– siehe Gnutella (Original-Version)Teilweise zentralisiert

– siehe Kazaa und neue Version von Gnutella

Page 21: 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

21

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Heinz Nixdorf Institut& Institut für InformatikUniversität PaderbornFürstenallee 1133102 Paderborn

Tel.: 0 52 51/60 66 92Fax: 0 52 51/62 64 82E-Mail: [email protected]://www.upb.de/cs/schindel.html

Vielen DankEnde der 1. VorlesungNächste Vorlesung: Fr. 30.04.2004Nächste Übung: Mo. 26.04.2004