Post on 05-Apr-2015
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
Algorithmen für Peer-to-Peer-Netzwerke 2
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel I
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
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.
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
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
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
Algorithmen für Peer-to-Peer-Netzwerke 8
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel II
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!
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
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
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
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
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)
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
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
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
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
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?
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
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: schindell@upb.dehttp://www.upb.de/cs/schindel.html
Vielen DankEnde der 1. VorlesungNächste Vorlesung: Fr. 30.04.2004Nächste Übung: Mo. 26.04.2004