Algorithmen für Peer-to-Peer-Netzwerke

Größe: px
Ab Seite anzeigen:

Download "Algorithmen für Peer-to-Peer-Netzwerke"

Transkript

1 Algorithmen für Peer-to-Peer-Netzwerke Vorlesungsskript Vorlesung Version Sommersemester 2004 Christian Schindelhauer Peter Mahlmann Heinz Nixdorf Institut Fakultät EIM, Institut für Informatik Universität Paderborn 1. Oktober 2004

2

3 Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis VII IX 1 Organisation Inhalte der Veranstaltung Organisation Termine Vorlesungsmaterial Prüfung Übungen Literatur und Links Prüfungsfragen Peer-to-Peer-Netzwerke der ersten Generation Was ist ein Peer-to-Peer-Netzwerk? Napster Geschichte Aufbau Diskussion Gnutella in der Originalversion Aufbau Diskussion Kazaa, Gnutella (II), Morpheus Zusammenfassung Skalierende Peer-to-Peer-Netzwerke Warum manche Netzwerke nicht skalieren Distributed Hash-Table CAN Content Addressable Network Aufbau Die Balancierung der Zonen nach dem Aufbau Die Join-Operation Entfernen eines Peers Defragmentierung Ungleichungen der Wahrscheinlichkeitstheorie Realitäten CHORD: Konsistentes Hashing für P2P-Netzwerke Die Datenstruktur von Chord Suche in Chord Aufnehmen von Peers Koorde I

4 3.5.1 Der DeBrujin-Graph Die Topologie von Koorde Eigenschaften von Koorde Tapestry Grundlegende Terminologie Nachbarschaftsmengen Eigenschaften der Nachbarschaftsmengen und Routing Objekte und Routing Surrogate-Routing Einfügen neuer Peers Pastry Die Zeigerstruktur Einfügen von Peers Routing Experimentelle Resultate Pastry versus Tapestry Viceroy Ein Butterfly basiertes Peer-to-Peer-Netzwerk Der Butterfly-Graph Übersicht Einfügen eines Peers Lookup Eigenschaften von ViceRoy Das Prinzip der mehrfachen Auswahl (principle multiple choice) Resumee Distance Halving Kontinuierliche Graphen Einfügen von Peers in Distance-Halving Lookup in Distance-Halving Resumee Distance-Halving Epidemische Algorithmen und Datenaggregation Epidemische Algorithmen Replizierte Datenbanken Mathematische Modellierung von Epidemien Epicast Anruf-Model (Random Call) Ausbreitungsverhalten im Push-Modell Eine einfache Terminierungsstrategie Shenkers Min-Counter-Algorithmus Datenaggregation Zählen Der Average-Algorithmus Experimentelle Resultate Weitere Aggregations-Funktionen Resumee Routing und Sicherheit Sicherheit in Peer-to-Peer-Netzwerken Methoden der Kryptographie Sicherheitsanforderungen in Peer-to-Peer-Netzwerken Die Sybil Attacke Der Sybil-Abwehransatz John Douceur Das Problem der byzantinischen Generäle Ein Zensor-Resistentes Peer-to-Peer-Netzwerk II

5 5.2 Routing in Peer-to-Peer-Netzwerken Techniken für CAN Routing-Techniken für CHORD: DHash Literaturverzeichnis 96 III

6 IV

7 Abbildungsverzeichnis 2.1 Funktionsweise von Napster Anbindung von neuen Knoten in Gnutella Dateisuche in Gnutella Das Gnutella-Netzerk (Schnappschuss 2000) [JAB01] Eine hybride Netzwerkstruktur Die Client-Server-Struktur von Napster entspricht einem Stern-Graph [JAB01] Ein zufälliger Graph, der die Struktur von Gnutella symbolisieren soll Der Standardansatz einer Hash-Tabelle ist nicht geeignet als Peer-to-Peer-Netzwerk Bei der verteilten Hash-Tabelle wird jedem Peer (farbiger Kreis) ein Bereich zu geordnet. Alle Daten (Rechtecke) die auf diesen Bereich abgebildet werden, werden entsprechen den Peers zugeordnet Nach dem Einfügen eines Peers sind nur die Zuordnungen der benachhbarten betroffen Das Löschen eines Peers in der DHT betrifft nur die Bereiche der direkten Nachbarn Der Aufbau der Zonen in CAN Iterierte Join-Operationen als Random Tree Verläßt ein Knoten das CAN-Netzwerk, übernimmt sein Nachbar das Gebiet Der einfache Fall der Defragmentierung in CAN Der schwierige Fall der Defragmentierung in CAN Konsistentes Hashing in der Chord-Datenstruktur Die Zeigerstruktur von Chord Der Suchalgorithmus für die Chord-Datenstruktur Schlüsselsuche im Chord P2P-Netzwerk Die Shuffle-Operation Die Exchange-Operation Die Shuffle-Exchange-Operation Jeder String lässt sich durch m Shuffle- oder Shuffle-Exchange-Operationen in jeden beliebigen anderen überführen Der DeBrujin-Graph für 8 Knoten Der selbe DeBrujin-Graph. Die Knoten sind sortiert auf dem Ring aufgetragen Die Verbindungsstruktur der DeBrujin-Kanten auf dem Ring Der Eingrad der Knoten in Koorde ist mit hoher Wahrscheinlichkeit O(log n) Ein Grad-3-DeBrujin-Graph Nachbarschaft des Peers Publikation von Objekten Routing im Tapestry Netzwerk Beispiel einer Pastry-Routing-Tabelle [Aus einem Web-Dokument von Druschel und Rowstron, das nicht zitiert werden soll] Die Pastry-Zeigerstruktur im Knoten 001 für b = 2 und l = Pastry-insert.pdf Nach dem Einfügen von Peer 11 werden nicht alle notwendigen Einträge aktualisiert Der Reparatur-Mechanismus für Pastry Pastry-Routing-Alg V

8 3.34 Beim Einfügen eines Peers in Pastry, kann man die Latenzzeiten des Routing klein halten, indem man latenznahe Knoten eines Levels bevorzugt [DR01b] Die Latenzzeiten der Level i-sprünge steigen bei Pastry expontiell in i an [DR01b] Durchschnittliche Anzahl von Hops beim Routing von Pastry mit steigender Knotenanzahl (b = 4, l = 16 und M = 32) [DR01b] Verteilung der Hops beim Routing von Pastry mit steigender Knotenanzahl (b = 4, l = 16, M = 32 und n = 10 6 ) [DR01b] Pastry-latency.pdf Güte der Routing-Table von Pastry vor und nach dem Ausfall von 500 von Peers und nach Abschluss der Repeartur-Routine [DR01b] Der Butterfly-Graph Die Viceroy-Umsetzung eines Butterfly-Graphen aus [MNR02] Der Suchalgorithmus für die Viceroy-Datenstruktur Links- und Rechts-Kanten des kontinuierlichen Graphen des Distance-Halving-Peer-to- Peer-Netzwerks Durch die Diskretisierung eine kontinuierlichen Graphen ensteht das Distance-Halving- Netzwerkt Der Suchalgorithmus für das Distance-Halving-Netzwerk Rekursiver Lookup-Aufruf von Distance-Halving falls der Start-Peer sich links vom Ziel- Peer befindet Rekursiver Lookup-Aufruf von Distance-Halving falls der Start-Peer sich rechts vom Ziel- Peer befindet Congestion-optimierter Suchalgorithmus für das Distance-Halving-Netzwerk Replizierte Datenbanken sollen den gleichen Datenbestand verteilt unterhalten ohne dass Knoten und Kantenausfälle dies beeinträchtigen Informationsverbreitung im Push-Modell Informationsverbreitung im Pull-Modell Informationsverbreitung im Push&Pull-Modell Beispielhafte Informationsverbreitung im Push-Modell Wachstumsphasen im Push-Modell Beispielhafte Informationsverbreitung im Pull-Modell Wachstumsphasen im Pull-Modell Beispielhafte Informationsverbreitung im Push&Pull-Modell Wachstumsphasen im Push&Pull-Modell Häufigkeit der einzelnen Zustände des Min-Counter-Algorithmus Der Average-Algorithmus zur Daten-Aggregation Experimentell Verifikation des Average-Aggregations-Algorithmus [JM04] Zählen der Peers durch Datenaggregation in einem dynamischen Netzwerk [JM04] Der übergelaufene General X gibt widersprüchliche Anweisungen Unauflösbare Verwirrung unter den Generälen Der loyale General gibt konsistente Befehle Eine Mehrheitsentscheidung unter den drei Offizieren kann von dem Überläufer nicht gestört werden byz-loes-3.pdf Struktur des Peer-to-Peer-Netzwerks von [FS02] Zwei Realitäten eines (zwei-dimensionalen) CAN-Peer-to-Peer-Netzwerks Hop-Distanz-Verringerung durch Erhöhung der Dimension und der Anzahl der Realitäten in CAN [RFH + 01] Iterativer Lookup in Chord Rekursiver Lookup in Chord Vergleich von iterativen und rekursiven Lookup in Chord [DLS + 04] Wahl der Finger in Chord durch Proximity Neighbor Selection (PNS) [DLS + 04] VI

9 5.13 Vergleich von PNS, PRS und deren Kombination in Chord [DLS + 04] (0, 1; 0, 5; 0, 9)-Perzentile eines solchen PNS-samples verschiedener Größ[DLS + 04] Routing Zeit eines PNS-16-samples im Vergleich zu PNS in Chord [DLS + 04] Kumulativer Performanz-Gewinn in DHash++ [DLS + 04] Vergleich von STP und TCP in DHash++ [DLS + 04] VII

10 VIII

11 Tabellenverzeichnis 2.1 Nachrichtentypen in Gnutella Notation des Routing-Algorithmus von Pastry in Abbildung IX

12 X

13 Kapitel 1 Organisation 1.1 Inhalte der Veranstaltung Ein Peer-to-Peer-Netzwerk (P2P-Netzwerk) ist ein Kommunikationsnetzwerk, in dem die Teilnehmer sowohl Client als auch Server-Aufgaben wahrnehmen. Hierfür stehen den Teilnehmer nur bidirektionale Verbindungen zur Verfügung, wobei zentrale Strukturen absichtlich vermieden werden. Bekannt und beliebt sind solche Kommunikationsnetzwerke durch die Dateitauschbörsen im Internet geworden wie (seiner Zeit) Napster und Gnutella. Im Rahmen dieser Veranstaltung werden algorithmische Ansätze zur effizienten Realisierung solcher Netzwerke vorgestellt und diskutiert. Nach einem kurzen Überblick über die Einsatzmöglichkeiten von P2P-Netzwerken in der Praxis wenden wir uns ihm Hauptteil der Veranstaltung den algorithmischen Problemstellungen zu. Wir stellen hier unter anderem die P2P-Netzwerke CAN, Chord, Pastry und Tapestry vor, die vollständig ohne zentrale Strukturen auskommenund werden ihre Effizienz mathematisch untersuchen. Danach wenden wir uns der Zuverlässigkeit und Sicherheit von P2P-Netzerken zu. Als Ausblick wird der Zusammenhang von P2P- Netzwerken und mobilen Ad-Hoc-Netzerken diskutiert. 1.2 Organisation Aktuelle Informationen zu dieser Veranstaltung befinden sich auf der Web-Seite: Für weitere organisatorische Fragen stehen Christian Schindelhauer (schindel@upb.de) und Peter Mahlmann (mahlmann@upb.de) immer gerne zur Verfügung. 1. Vorlesung Termine Die Vorlesung findet vom jeden Freitag von 9-11 Uhr in Raum F0.530 statt. Die Übungen vom sind in drei Gruppen unterteilt. Übungsgruppe A, montags von Uhr in Raum F0.530 Übungsgruppe B, montags von Uhr in Raum F0.530 Übungsgruppe C, montags von Uhr in Raum F Vorlesungsmaterial Zu dieser Veranstaltung wird das folgende Material zur Verfügung gestellt. 1

14 Die Webseite der Veranstaltung: mit allen Informationen und insbesondere diesem Skript Vorlesungsfolien im Powerpoint und PDF-Format Skript als PDF-Dokument Neben den Übungsaufgaben ist das Skript die Grundlage zur Prüfung. Das Skript wird gegen Ende der Vorlesung auf der Web-Seite zur Verfügung gestellt. Literaturhinweise werden hier im Skript auf Seite 3 aufgeführt. Übungsaufgaben Die Übungsaufgaben werden am Mittwoch jeder Woche auf der Web-Site zur Verfügung gestellt. Die Übungsaufgaben sind ausdrücklich Bestandteil der Prüfung. Die Lösungen zur Übungsaufgabe werden vom Veranstalter nicht zur Verfügung gestellt. Mögliche Prüfungsfragen werden im Skript veröffentlicht auf Seite 4. Übungsanmeldung und Anmeldung zum Vorrechnen geschieht durch das StudInfo{flex}-System (entwickelt von der Fachgruppe Kastens). Es ist verfügbar über die URL: Anmeldung zur mündlichen Prüfung per an Christian Schindelhauer (schindel@upb.de) Prüfung Wer nach der DPO 4 oder der neuen Lehramtsstudienordnung studiert, kann im Anschluss an dieser Veranstaltung eine benotete, mündliche, ca. 30-minütige Prüfung bei Christian Schindelhauer ablegen. Eine Stunde vor dieser mündlichen Prüfung wird dem Teilnehmer eine der Aufgaben aus der Übung vorgelegt, die er alleine ohne Hilfsmittel schriftlich bearbeiten muss und deren Lösung er in der mündlichen Prüfung vorstellt. Zusätzlich werden (natürlich) Fragen zur Vorlesung gestellt. Ein Katalog möglicher Fragen findet sich in diesem Skript. Der schriftliche Teil der Prüfung kann durch erfolgreiche Teilnahme in der Übung ersetzt werden. Die Teilnahme an der Übung war erfolgreich, wenn mindestens eine Aufgabe vor den Teilnehmern richtig vorgerechnet wurde und diese Aufgabe mustergültig schriftlich bearbeitet wurde. Die Teilnahme an der Übung wird dann entsprechend der Leistung benotet und diese Note fließt in die Notengebung der mündlichen Prüfung ein. Die Prüfungen finden in den beiden folgenden Woche statt. I. Prüfungszeitraum: (10-17 Uhr) II. Prüfungszeitraum: (10-17 Uhr). Das ist die Woche vor Vorlesungsbeginn des Wintersemesters. Zusätzlich wird eine öffentliche mündliche Prüfung im Rahmen der letzten Vorlesung am Freitag, den 30.07, 9-11 Uhr in F0.530 durchgeführt. Die Prüfungsanmeldung ist bis zum per an Peter Mahlmann (mahlmann@upb.de) möglich. Weitere Prüfungen sind in Ausnahmefällen nach Vereinbarung möglich Übungen Wie bereits beschrieben werden die Übungsaufgaben auf den Web-Seiten jeden Mittwoch zur Verfügung gestellt. Die Besprechung der Lösung geschieht (in der Regel) am darauf folgenden Montag. Die Aufgabenstellungen werden gemäß der Ausrichtung dieser Veranstaltung hauptsächlich aus dem Gebiet der verteilten Algorithmen und Wahrscheinlichkeitstheorie gewählt. 2

15 Die Gruppeneinteilung geschieht online über das StudInfo{flex}-System. Es gibt drei Übungsgruppen mit einer maximalen Teilnehmerzahl von jeweils 30 Studenten Literatur und Links Folgende Bücher, Artikel und Web-Seiten können zur vertiefenden Lektüre besonders empfohlen werden. O Reilly Network: OpenP2P Diese praktisch orientierte Web-Site ist eine Fundgrupe für die aktuelle Entwicklung im Bereich von Peer-to-Peer-Netzwerken. Diese Web-Site richtet sich and die breitere Öffentlichkeit und hat daher wenig wissenschaftliches zu berichten.... CAN: A Scalable Content-Addressable Network von Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp und Scott Shenker [RFH + 01] beschreibt einen der ersten Ansätze den Peer-to- Peer-Netzwerke mit effizienten Datenstrukturen zu Leibe zu rücken. Dieser Artikel ist (fast vollständig) Bestandteil der Vorlesung und eignet sich hervorragen zu vertiefendem Studium. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications von Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek und Hari Balakrishnan [SMK + 01] beschreibt erstmals ein Peer-to-Peer-Netzwerk mit logarithmischen Zeitverhalten. Auch dieser Artikel wird fast vollständig im Rahmen dieser Veranstaltung behandelt. Eine Lektüre kann nur empfohlen werden. Koorde: A simple degree-optimal distributed hash table, von David R. Karger und M. Frans Kaashoek [KK03]. Das Peer-to-Peer-Netzwerk Koorde besticht durch seine einfache elegante Struktur. Auch der Artikel ist lesenswert. Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing von Ben Y. Zhao, John Kubiatowicz, und Anthony D. Joseph [JZK02] gibt eine ausführliche Beschreibung des Tapestry-Peer-to-Peer-Netzwerks wieder. Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems von Peter Druschel und Antony Rowstron [DR01b] beschreibt ein Peer-to-Peer-Netzwerk, das wie Tapestry auf Plaxtons Routing-Algorithmus aufbaut. Dennoch gehen hier die Leute von Microsoft Research andere Wege als die von der UC Berkeley. Viceroy [MNR02] Dieses Peer-to-Peer-Netzwerk basiert auf dem Butterfly-Graphen und wird im Rahmen dieser Vorlesung vorgestellt. Es war das erste Peer-to-Peer-Netzwerk mit konstanten Einund Ausgrad. Distance Halving [NW03] Dieser Ansatz von denselben Autoren konzentriert sich auf den Übergang von kontinuierlichen Graph zu diskreten (Peer-to-Peer-) Netzwerken. Epidemic Algorithms [DGH + 87] In diesem wichtigen Artikel wird der Begrich der epidemischen Algorithmen zur Informationsverbreitung in replizierten Datenbanken eingeführt. Ein wegweisender Artikel besonders für den Bereich der verteilten Datenbanken. Randomized Rumor Spreading [KSSV00] Dieser Artikel analysiert das Ausbreitungsverhalen im Anrufmodell (random call model) von Gerüchten (epidemischen Algorithmen). Insbesondere wird hier ein sehr effizienter Terminierungsmechanismus vorgestellt. Fortsetzung folgt... 1 Am waren 90 Studenten zu dieser Veranstaltung angemeldet 3

16 1.4 Prüfungsfragen Die folgenden Fragen können in der Prüfung vorkommen. Daneben kommen Fragen zur Übung vor. 1. Vorlesung, , P2P-Netzwerke der 1. Generation Was ist ein Peer-to-Peer-Netzwerk? Was ist Napster und wie funktioniert es? Was ist Gnutella und wie funktioniert es? Diskutieren Sie die Vorteile und Nachteile von Gnutella im Vergleich zu Napster. Was sind hybride Peer-to-Peer-Netzwerke und in wie fern sind sie besser als die dezentrale Peer-to-Peer-Netzwerke? Vergleichen Sie die Netzwerkstrukturen der Peer-to-Peer-Netzwerke der ersten Generation 2. Vorlesung, , DHT, CAN Warum skaliert Naster nicht? Warum skaliert Gnutella nicht? Warum eignen sich eine Hash-Tabelle nicht direkt als geeignetes Peer-to-Peer-Netzwerk? Was ist eine Distributed Hash-Table (DHT)? Wie werden Peers und Daten in CAN eingefügt? 3. Vorlesung, , CAN Wie werden Peers in CAN eingefügt? Erläutern Sie das Probelm der Fragmentierung. Welchen Einfluß hat die Anzahl der Dimensionen auf CAN? Was versteht man unter Realtitäten in CAN? Vergleichen Sie die Vor- und Nachteil von Realitäten und Dimensionen in CAN. Wie kann man die Latenzzeit in CAN optimieren? 4. Vorlesung, , Chord, Chernoff Was besagt die Markoff-Ungleichung? Was besagt die Chebyshev-Ungleichung? Warum ist die Chernoff-Schranke so ein nützliches Werkzeug? Beweisen Sie die Gültigkeit der Chernoff-Schranke. 5. Vorlesung, , Chernoff, Chord Was ist Chord? Wieviele Finger hat Chord? Wozu dienen Sie? Wie effizient ist der Lookup in Chord? Wie hoch ist der Eingrad und der Ausgrad in Chord? Wie nimmt man Peers in Chord auf? Wie lange dauert die Peer-Aufnahme in Chrod? 6. Vorlesung, , Koorde Beschreiben Sie die Struktur von Koorde. Welche Eigenschaften hat Koorde? 4

17 Was ist ein DeBrujin-Graph? Welche Eigenschaften hat ein DeBrujin-Graph? Erläutern Sie den k-debrujin-graphen. 7. Vorlesung, , Tapestry Was versteht man unter Nachbarschaftsmengen und welche Eigenschaften besitzen diese? Wie funktioniert Routing im Tapestry Netzwerk? Wie können neue Peers in ein Tapestry Netzwerk eingefügt werden? Welchen Zweck erfüllt der Acknowledged Multicast Algorithmus? Wie kann ein neuer Peer seine Routing-Tabelle aufbauen, damit diese die Lokalitäts-Eigenschaft erfüllt? Was sind die Aufgaben von Root-Sets und Storage-Servern? 8. Vorlesung, , Pastry Erläutern Sie die Unterschiede zwischen Pastry und Tapestry. Welche Zeiger hat Pastry? Was bedeuten die Einträge in der Routing-Tabelle? Wie fügt man Peers in Pastry ein? Wann müssen die Routing-Einträge repariert werde und wie geschieht dies? Erläutern Sie das Routing in Pastry. Welche Formen der Lokalität kennt Pastry? Diskutieren Sie die experimentellen Resultate im Zusammenhang mit Pastry. 9. Vorlesung, , ViceRoy, Distance-Halving Erläutern Sie die Motivation für das Viceroy-Netzwerk. Wie ist Viceroy aufgebaut? Warum ist das Butterfly-Netzwerk besonders gut für Routing geeignet? Wie kann man log n berechnen, wenn n die Anzahl der Knoten in Viceroy bezeichnet? Wie fügt man einen neuen Peer in Viceroy ein? Wie funktioniert der Lookup in Viceroy? Wie effizient sind diese Operationen? Beschreiben Sie das Prinzip der mehrfachen Auswahl. Zeigen Sie, dass mit dem Prinzip der mehrfachen Auswahl der Eingrad in Peer-to-Peer-Netzwerken erheblich reduziert werden kann. Was sind kontinuierliche Graphen? Erläutern Sie Distance-Halving! Wie funktioniert der Lookup in Distance-Halving? Welcher Mechanismus kann Congestion Distance-Halving reduzieren? 10. Vorlesung, , Epidemische Informationsverbreitung Was sind Replizierte Datenbanken? Wie kann man sie unterhalten? Erläutern Sie das Anruf-Modell. Was ist Push und Pull und Push&Pull? Beschreiben Sie das Ausbreitungsverhalten von Push, Pull und Push&Pull. 5

18 Beschreiben Sie Terminierungsstrategien für epidemische Algorithmen. Wie kann man die Nachrichtenanzahl klein halten? 11. Vorlesung, , Epidemische Informationsverbreitung Wie kann man die Anzahl der Teilnehmer eines Peer-to-Peer-Netzwerks bestimmen? Welche Funktionen kann man durch Datenaggregation bestimmen? 12. Vorlesung, , Sicherheit in Peer-to-Peer-Netzwerken Nennen Sie allgemeine Methoden der Kryptographie. Welche Sicherheitsanforderungen haben Peer-to-Peer-Netzwerke? Beschreiben Sie eine Sybil-Attacke. Kann man Sybil-Attacken abwehren? Erklären Sie das Problem der Byzantinischen Generäle. Wie kann man das Problem der Byzantinischen Generäle lösen? Wie kann man ein Zensur-resistentes Peer-to-Peer-Netzwerk aufbauen? 13. Vorlesung, , DHash++ Welche Techniken verwendet CAN zur Latenz-Optimierung eingesetzt? Welche speziellen Techniken werden bei DHash++ zur Optimierung des Routing eingesetzt? Was versteht man unter Datenlayout? Erklären Sie den rekursiven und iterativen Lookup in DHash++. Wie kann man die nächste Nachbarwahl in DHash++ organisieren? Was sind Erasure Resilient Codes? 6

19 Kapitel 2 Peer-to-Peer-Netzwerke der ersten Generation 2.1 Was ist ein Peer-to-Peer-Netzwerk? Das englische Wort Peer (sprich Pier ) bezeichnet einen Ebenbürtigen, Gleichrangigen (aber auch ein Mitglied des Hochadels) 1. Laut dem Online-Wörterbuch von Merriam-Webster geht diese Word über das Mittelenglisch ethymologisch zurück auf das lateinische Wort par, welches auch im Deutschen als gleich verwendet wird. Demnach ist ein Peer-to-Peer-Netzwerk wortwörtlich ein Netzwerk, das Gleichrangige mit anderen Gleichrangigen direkt verbindet. Diese Umschreibung würde aber allgemein für Rechner des Internets gelten. Schließlich unterscheiden die Internet Protocol (IP) Adressen nicht zwischen besonder bevorrechteten und weniger bevorrechteten Adressen, so dass man mit Fug und Recht das Internet selbst aus Peer-to-Peer-Netzwerk bezeichnen könnte. Ursprünglich mag das Internet auch so funktioniert haben. Aber mit der Zeit haben sich bestimmte Dienste, wie zum Beispiel Web-Server oder Mail-Server, immer weiter zu zentralisierten Client-Server-Strukturen herausgebildet. Bei einer Client-Server-Netzwerk-Struktur kontrolliert ein besonders bevorrechtigteter Knoten, genannt der Server, die anderen Teilnehmer, die Clients genannt werden. Ein gutes Beispiel ist ein Web-Server, dieser speichert Web-Seiten, die von den Web-Clients abgerufen werden können. Hierzu melden sich diese mittels einer TCP (Transmission Control Protocol) bei dem Web-Server an, wonach dieser die Web-Seiten diesen Client zusendet. Verweigert der Server einen Web-Client den Zugriff, so ist dieser machtlos. Andererseits sind die Web-Seiten auch nicht mehr abrufbar, falls der Web-Server ausgefallen ist. Wenn man also die funktionale Beschreibung eines Netzwerks betrachtet, so gilt die folgende Definition: Ein Peer-to-Peer-Netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server-Aufgaben durchführt. Obgleich diese Definition eine gute Intuition gibt, werden wir sehen, dass es tatsächlich Peer-to-Peer- Netzwerke gibt (z.b. Napster), die nicht unter diese Definition fallen. Daher ist die Peer-to-Peer-Working- Group ( mit ihrer Definition etwas allgemeiner: In einem Peer-to-Peer-Netzwerk werden verteilte Rechenresourcen durch direkte Kommunikation gemeinsam genutzt. Mit dieser Definition ist man sicher zu allgemein. Das Einzige was man mit Sicherheit über Peer-to- Peer-Netzwerke sagen kann, ist dass Peer-to-Peer-Netzwerke nicht Client-Server-Netzwerke sind. Ein besseres Verständnis, was Peer-to-Peer-Netzwerke sind, erhält man, indem man sich die noch junge Geschichte der Peer-to-Peer-Netzwerke betrachtet. 1 laut dem Wörterbuch von LEO: 7

20 Datei Client Client Client Client Client Server Client Client Reply Query File Download Client Abbildung 2.1: Funktionsweise von Napster 2.2 Napster Napster ist ein geschichtlich wichtiges Netzwerk. Wir werden es hier hauptsächlich aus diesem Grund vorstellen. Algorithmisch hat es wenig zu bieten und ob es wirklich ein echtes Peer-to-Peer-Netzwerk ist, gelinde gesagt, umstritten Geschichte Shawn (Napster) Fanning (Jahrgang 1980) brachte im Juni 1999 eine Beta-Version seines mittlerweile legendären Peer-to-Peer-Netzwerks heraus. Die ursprüngliche Aufgabe dieser Software war ein File-Sharing- System mit dem man Dateien auf Rechnern, die sich an diesem Rechnern anmelden, lokalisieren kann und dann direkt von diesen Rechnern herunterladen kann. Erst durch das Engagement eines Freundes von ihm wurde aus dem File-Sharing-System ein Musik-Portal, das hauptsächlich zur Verbreitung von Musikdateien diente. Dadurch wurde aus Napster schon im Herbst 1999 der Download des Jahres. Wegen der systembedingten Missachtung von Urheberschutzrechten der Musikautoren klagten Musikverlage gegen Fanning und drohten mit einer Stillegung des Systems. Tatsächlich geschah einige Zeit nichts und durch die durch den Rechtsfall gesteigerte Publizität nahm die Anzahl der Teilnehmer sogar zu. In einer überaschenden Wendung ging Fanning Ende 2000 einen Kooperationsvertrag mit Bertelsmann Ecommerce ein und wandelte seine bislang kostenloses System in eine kommerzielle File-Sharing-Plattform um Aufbau Der Aufbau und Funktionsweise von Napster ist weitaus weniger aufregend als die Geschichte von Napster. Napster folgt im wesentlich einer Client-Server-Struktur, siehe Abbildung 2.1. Ein Server unterhält einen Index mit Meta-Datein über den Dateinamen, das Dateidatum und ähnlichen Informationen. Neben dieser Datenbank hat der Server eine Tabelle über die Verbindungen der teilnehmenden Clients. Aus dieser Tabelle aller öffentlich gemachten Dateien der teilnehmenden Clients werden jetzt die Anfragen bedient. Bei einer Anfrage (Query) fragt ein Client nach dem Dateinamen und der Server sucht in seiner Datenbank nach dem passenden Teilnehmer. Der Server teilt dann dem Client mit welcher andere Client die gewünschte Datei besitzt. Der Anfrage-Client lädt dann die Datei direkt vom dateibesitzenden Client herunter. Dieser letzte Schritt im File-Sharing ist der einzig Schritt der unserer eingangs formulierten Definition eines Peer-to-Peer-Netzwerks entspricht. Man kann sich vorstellen, dass diese Lösung genau dann Sinn 8

21 macht, wenn der Server nicht in der Lage ist alle Dateien zu speichern. Auch wird so unnötiger Datenverkehr zwischen Server und Clients vermieden. Und genau dieser Aspekt regte die Fantasie vieler Entwickler an, diesen Mechanismus weiter auszubauen Diskussion Die Vorteile von Napster sind seine Einfachheit und die Möglichkeit schnell und effizient auf Dateiverweise zu finden. Die Nachteile sind vor allen in der Client-Server-Struktur begründet. Diese zentrale Struktur erleichtert feindliche Eingriffe in das System. Dies muss nicht unbedingt eine richterliche Verfügung im Auftrag eines Muskverlags sein, es kann sich auch die represssive Verfolgung in einem Unrechtsstaat handeln. Des weiteren sind auch Denial-of-Service-Angriffe eine einfache Methode solche zentralen offenen Strukturen zu torbpedieren. Viel einfacher kann das Versagen eines solchen zentrierten Systems durch einen Systemausfall der zentralen Kompononente (Programmabsturz, Hardware-Ausfall, etc.) geschehen. Ein weiter Nachteil ist, dass Napster nicht skaliert. Wenn die Teilnehmerzahl zunimmt, kann der zentrale Server die Anfragen nicht mehr schnell genug bearbeiten. Ausserdem kann schon die Speicherung der Meta-Daten leicht überhand nehmen. Als Resumee bleibt festzuhalten, dass Napster keine akzeptable Peer-to-Peer-Netzwerklösung darstellt. Bis auf den direkten Download ist Napster gar kein Peer-to-Peer-Netzwerk im eigentlichen Sinne. 2.3 Gnutella in der Originalversion Ein echtes Peer-to-Peer-Netzwerk ist dagegen Gnutella Aufbau Gnutella wurde im März 2000 von Justin Frankel und Tom Pepper (Nullsoft) herausgegeben. Wie Napster handelt es sich bei Gnutella um ein File-Sharing-System. Im Gegensatz zu Napster handelt es sich um ein echtes Peer-to-Peer-Netzwerk ohne jegliche zentrale Strukturen und zentrale Kontrolle. Wie kann man aber ereichen, dass ein Netzwerk entsteht ohne zentrale Kontrolle. Das Problem fängt schon beim Download der Software an. Da die Benutzer einander anfangs nicht kennen, müssen bestimmte Adressen im Programm voreingestellt werden. Wie kann man aber verhindern, dass diese nicht als Server dienen. Nun Gnutella wird mit einer Liste von Adresse ausgeliefert, die bei Programmstart von den Gnutella-Peers durchprobiert werden. Wird nun ein aktiver Peer aus dieser Liste gefunden, so wird eine k-hop-nachbarschaft des Peers angefragt und daraus eine eigene Nachbarschaftsliste aufgebaut. Hat ein Peer erste eine eigene Nachbarschaftsliste gewonnen, so speichert er diese und startet beim nächsten Mal mit dieser und erweitert sie wie eben beschrieben. Auf diese Weise erhält jeder Peer sein eigenes Umfeld und kann auf eine robuste (eigene) Liste von Peers zurückgreifen, sollte einmal kein Peer auf der originären Liste verfügbar sein. Gnutella baut auf dem IP (Internet Protocol) auf und das Gnutella-Protocol benutzt nur vier verschiede Nachrichtentypen, wie in Tabelle 2.1 gezeigt. Deer Standard-Header einer Nachricht besteht nach der Gnutella Spezifikation [Gnu] aus Message identifier: Das ist eine 2-Byte-ID, welche anzeigt ob diese Nachricht bereits empfangen wurde. Function identifier: Hier wird der Typ der Nachricht beschrieben (Ping, Pong, Push Request, Query, Query Hits) TTL: Das ist das Time-to-Live-Feld. Analog zum TTL-Feld im IP-Protokoll wird hier die maximale Anzahl von Übertragungen (Hops) der Nachricht festgelegt Hops: Anzahl der bereitszurückgelegten Strecke der Nachricht Payload length: Länge der Nachricht 9

22 Typ Beschreibung Inhalt Ping Anfrage an Peer, sich anzukündigen Pong Antwort auf Ping IP und Port-Adresse des Antwortgebers, Anzahl und Größe veröffentlichter Dateien Query Suchanfrage minimale Geschwindigkeitsanforderung des Antwortgebers, Suchstring Query-Hits Antwort auf Query IP und Port-Adress, Geschwindigkeit des Antwortgebers, Anzahl passender Datein und ihre indizierte Ergebnismenge Tabelle 2.1: Nachrichtentypen in Gnutella Mit dem eingangs beschriebenen Prozess erhält so jeder Peer eine Nachbarschaftsliste, die immer weiter verlängert und gespeichert werden. Dabei ist die Anzahl aktiver Nachbarn beschränkt (typischer Wert wäre fünf). Man beachte insbesondere, dass die Antworten auf die Ping-Anfragen (die Pongs) auf dem Anfragepfad zurückgeschickt werden (und nicht etwa auf dem kürzesten Weg). Der Informationsprozess folgt immer dem Prinzip eines beschränkten Broadcast. Das bedeutet, dass der Erzeuger einer Nachricht eine Sprungweite, TTL genannt, der ersten Nachricht mitgibt und dieser Wert wird mit jeder Weitergabe um eins verringert. Jeder Peer, der eine Ping- oder Query-Nachricht erhält, reicht diese an alle Nachbarn, weiter. Diese Art der Informationsweitergabe ähnelt damit gewissermaßen der Verbreitung einer Epidemie oder eines Virus. Die resultierende Graphstruktur ensteht also durch einen zufälligen Prozess, da sie allein durch die Menge der (zufällig) aktiven Prozessoren und deren gerade aktiven Nachbarn bestimmt wird. Man sieht, dass es keine zentrale Instanz oder verteilte Kontrollmechanismen gibt (außer dem TTL-Feld), welche die Struktur des Verbindungsgraph kontrollieren. Gewisse statistische Gesetzmäßigkeiten lassen sich dennoch entdecken. So unterliegen wichtige Parameter der Graphstruktur, wie die Verteilung des Grades der Knoten, der Pareto-Verteilung [JAB01]. Ein Schnappschuss eines solchen Verbindungsnetzwerks aus diesem Artikel wird in Abbildung 2.4 gezeigt. Die Dateianfrage geschieht völlig analog zum Ping-Pong-Prozess. Eine Query wird durch beschänkten Broadcast an alle Nachbarn im Graph in Entfernung TTL weitergeleitet und in entgegengesetzter Richtung werden die Antworten (Typ: Query-Hits) auf denselben Pfaden zurückgeleitet. Wenn der Anfrager die gewünschte Datei identifiziert hat, kann er sie direkt von dem Knoten herunterladen. Siehe auch Abbildung2.3. Wir sehen also, dass im Gegensatz zu Napster hier zum ersten Mal ein echtes Peer-to-Peer-Netzwerk vorliegt, welches vollständig ohne zentrale Kontrollmechanismen auskommt Diskussion Die Vorteile von Gnutella rühren von dieser verteilten Netzwerkstruktur. Dadurch ist Gnutella extrem robust und praktisch unangreifbar. Diese Netzwerkstruktur skaliert auch sehr gut, was hier heisst, dass beliebig viele Knoten ohne Performanzverlust aufgenommen werden können. Dennoch hat Gnutella eine Reihe von Nachteilen. Das Hauptproblem ist, dass durch die tiefenbeschränkte Suche nur in einem Teilnetzwerk nach der Zieldatei gesucht wird. Hat nun die Zieldatei eine große Verbreitung, wie zum Beispiel die Kassenschlager der Musik (top ten), dann werden sie dennoch gefunden. Selten vorhandene Dateien können dagegen nicht gefunden werden. Dieses Problem könnte man durch Erhöhung des TTL-Eintrags erhöhen, wenn nicht der zweite Nachteil von Gnutella dadurch nicht noch verschärft würde. Dies ist das Nachrichtenaufkommen. Da es völlig unklar ist, wo die Zieldatei sich befindet, werden eine Reihe von Zielanfragen (sinnlos) von Knoten weitergeleitet. Daneben ist der Netzwerkdurchmesser eines Gnutella-Netzwerks verglichen mit einer Baumstruktur relativ hoch und dadurch 10

23 ping pong ping pong ping ping pong neue Verbindungen pong ping pong ping TTL = 3 Abbildung 2.2: Anbindung von neuen Knoten in Gnutella Datei query query-hits query query query query-hits Download query-hits TTL = 3 query query Abbildung 2.3: Dateisuche in Gnutella 11

24 Abbildung 2.4: Das Gnutella-Netzerk (Schnappschuss 2000) [JAB01] muss man zusätlich mit großen Latenzzeiten (Verzögerungszeiten) rechnen. Es gibt eine Reihe von Verbesserungvorschläge, um das Nachrichtenaufkommen zu verringern. Einer sieht zum Beispiel die Verwendung von Random Walks statt Broadcasting vor. In einem Random Walk wird eine Nachricht nicht an alle Nachfolger sondern nur an einem zufälligen weitergereicht. Auf diese Weise wird die Suchanfrage weiter in das Netzwerk hineingereicht ohne das Nachrichtenaufkommen stark zu erhöhen. Andere schlagen die passive Replikation von Information entlang eines Pfads vor. Hierbei werden Ergebnislisten gespeichert und neue Anfragen nach den selben Dokument können dann sofort ohne weitere Suchnachrichten beantwortet werden. 2.4 Kazaa, Gnutella (II), Morpheus Die Schwächen von Gnutella blieben ihren Vätern nicht verborgen und so verbesserten diese die Struktur zu einem sogenannten hybriden Netzwerk. Eine ähnliche Struktur liegt auch Kazaa und Morpheus zu Grunde. Wir werden das Prinzip hier kurz vorstellen. Besonders geeignete Knoten (z.b. mit hoher Bandbreite) werden zu sogenannten Super-Knoten (Super- Nodes) ernannt. Zwischen diesen relativ wenigen Super-Nodes wird nun das ursprüngliche Gnutella-Peerto-Peer-Netzwerk etabliert. Normale Knoten werden an diese Super-Knoten als Clients angebunden, siehe Abbildung2.5. Die Vorteile einer solchen Netzwerkstruktur sind die verbesserte Skalierbarkeit und geringere Latenzzeiten. Dagegen spricht die Abkehr vom reinen Prinzip, dass jeder Teilnehmer die selben Aufgaben und Funktionen erhält. So könnte sich zum Beispiel ein Client der Super-Node-Aufgabe verweigern. Außerdem ist dieses Netzwerk immer noch unzuverlässig und langsam, da es nicht klar ist, ob das TTL- Feld nun ausreicht das Netzwerk zu durchqueren und die Wege immer noch lang sein können. Daneben verringern sich die Nachrichtenmenge innerhalb der Super-Nodes nicht. Hier werden nun praktische alle (oder zumindestens ein großer Anteil) mit allen Anfragen konfrontiert. 12

25 Super-Nodes Client-Nodes Abbildung 2.5: Eine hybride Netzwerkstruktur 2.5 Zusammenfassung Wir haben in diesem Abschnitt die Frühphase der Peer-to-Peer-Netzwerke kurz gestreift. Das klassische Peer-to-Peer-Netzwerk ist sicherlich Gnutella, während Napster obgleich seiner Client-Server-nahen Struktur, durch siene Publizität die Aufmerksamkeit und Fantasie einer größeren Öffentlichkeit erregt hat. Es gibt eine Reihe von Fragestellungen im Bereich der Datenbanken, die Ontologie und Autnomie von Daten betreffen, die von hohen Interesse liegen, die im Rahmen dieser Vorlesung (aufgrund der algorithmischen Ausrichtung) nicht erwähnt werden, siehe hierzu [DGMY02]. Daneben gibt es auch eine Reihe von praktischen Fragestellungen, die wir hier nur am Rande streifen werden. Dies sind zum Beispiel nach Nelson Minar [Min01]: Die Handhabbarkeit eines Peer-to-Peer-Netzwerks Sind die Kontrollmechanismen zu kompliziert, dass eine Implementation praktisch nicht durchführbar wird? Die Informationskohärenz Also wie gut wird die Information verteilt, wie gut ist sie verfügbar. Erweiterbarkeit oder Skalierbarkeit Wie gut kann das Netzwerk wachsen und dabei noch schnell Anfragen verarbeiten? Fehlertoleranz Wie gut können Ausfälle von Peers oder fehlerhafte und veraltete Information im Netzwerk verkraftet werden. Sicherheit Wie leicht kann es mutwillig zerstört werden? Schutz gegen politische Verfolgung Kann eine Regierungsbehörde das Netzwerk einfach ausschalten? Wir werden uns beginnen mit dem nächsten Kapitel hauptsichlich um das Problem der Erweiterbarkeit oder Skalierbarkeit kümmern. Die anderen Problemstellungen sind sicherlich für die praktische Umsetzung oder für die Verbreitung eines Peer-to-Peer-Netzwerk von entscheidender Kontrolle, wird aber im Rahmen dieser Veranstaltung nicht tiefer besprochen. Kommen wir zurück zu der eingangs gestellten Frage, was ein Peer-to-Peer-Netzwerk ausmacht. Ein Lackmustest für Peer-to-Peer-Netzwerke [Shi01] kann sein: 13

26 Sind variable Verbindungen und temporäre Netzwerkverbindungen die Norm? Sind die Kanten des Netzwerks autonom? 14

27 Kapitel 3 Skalierende Peer-to-Peer-Netzwerke Die Frage der Skalierbarkeit eines Peer-to-Peer-Netzwerks ist eines der zentralen Problemstellungen in dieser Veranstaltung. 3.1 Warum manche Netzwerke nicht skalieren 2.Vorlesung Bei Napster haben wir vor dem Download es nur mit einer Client-Server-Struktur zu tun. Der Schwachpunkt ist nun der Server der alle Anfragen der Clients zu bedienen hat. Wenn nun diese Anzahl steigt (und man kann sich bei Millionen von Teilnehmern sich das leicht vorstellen), dann wird er zum Flaschenhals der Kommunikation. Graphtheoretische entspricht die Client-Server-Struktur einem Stern-Graph, siehe Abbildung 3.1. Der Server steht mit dem Grad n 1 im Mittelpunkt und ist auch hinsichtlich des Graphzusammenhangs ein Schwachpunkt, da der Stern-Graph nur 1-zusammenhängend ist. Definition 1 Ein Graph ist k-zusammenhängend, wenn nach Entfernen von k 1 beliebigen Knoten der Graph noch zusammenhängend ist und wenn nach dem Entfernen von k Knoten der Graph nicht mehr zusammenhängend ist. Der Zusammenhang bei Gnutella ist höher. Genaue Werte lassen sich hier nicht angeben, da der Graph durch die Verbindungsaufnahme am Anfang eine zufällige Struktur erhält, wie in Abbildung 3.2 angedeutet. Statistische Untersuchungen in [JAB01] zeigen aber, dass sich bezüglich Durchmesser und Verteilung des Grads doch ein gesetzmäßiges Verhalten nachweisen lässt. So ist der Durchmesser nur logarithmisch in der Anzahl der Teilnehmer und der Grad ist Pareto-verteilt, d.h. Knoten mit dem Grad d kommen in einer Häufigkeit propotional zu d α für eine Konstante α < 0 vor. Die Ausnahmestellung der Pareto-Verteilung zur Beschreibung von Netzwerken, die durch menschliches Wirken enstehen zeigt sich hier wie bereits bei Abbildung 3.1: Die Client-Server-Struktur von Napster entspricht einem Stern-Graph [JAB01] 15

28 Abbildung 3.2: Ein zufälliger Graph, der die Struktur von Gnutella symbolisieren soll der Anzahl von Links auf Web-Seiten. Es ist schon länger bekannt, dass die Verteilung der Bevölkerung in Städten, der Wortlängen in Sprachen, des Vermögens in der Bevölkerungs, der Dateinamenlängen im Unix-Betriebssystem und vieles mehr dieser Verteilung gehorcht. Eine weitere Beobachtung ist, dass der durchschnittliche Grad im Gnutella-Netzwerk nur konstant ist (also α < 1). Trotz dieser positiven Grapheigenschaften skaliert Gnutella sehr schlecht 1. Das Hauptproblem ist, dass eine Anfrage an alle Nachbarn einer gewissen Umgebung weiter gegeben wird. Dadurch werden Peers in einer Umgebung mit einer Reihe von Fragen belästigt, während es dieses Nachrichtenaufkommen nicht garantiert nicht, dass die Anfrage korrekt beantwortet wird, da weiter entfernte Information nicht abgegriffen werden können. Bei den hybriden Netzwerkstrukturen verbessert sich die Anfrageverarbeitung. Dennoch müssen dann alle Super-Knoten die Anfrage bearbeiten. Damit skalieren dieses Netzwerke immer noch schlecht, da diese wie bei Napstern dann unter Umständen Millionen von Anfragen zu bearbeiten haben. Halten wir fest, dass die Skalierbarkeit eines Netzwerks von der schnellen Bearbeitung von zwei Fragen abhöngt: Wo befindet sich die Information? Bei Napster wird diese Frage einfach und effizient beantwortet, während bei Gnutella nur durch eine ausufernde Suche gelöst werden kann. Wie kommt man dorthin? Bei Napster ist dies das Problem, da der Zugang zum Server durch andere Anfragen blockiert werden kann. Bei Gnutella ist dieses Problem auch nur unzufriedenstellend gelöst durch das Fluten des Netzwerks mit Nachrichten. 3.2 Distributed Hash-Table Die Verwendung einer effizienten Datenstruktur wie man sie in der Grundlagen-Veranstaltung Datenstrukturen und Algorithmen gelernt hat, könnte diese Problem leicht lösen. Verwendet man ein Wörterbuch zum Speicher der Metaeinträge, dann kann man diese sehr effizient (in logarithmischer Zeit) wiederfinden. Die beiden wichtigsten Datenstrukturen hierzu sind Bäume und Hash-Tabellen und wir werden beide Typen in diesem Zusammenhang wiederfinden. Wir beginnen unsere Überlegungen mit Hash-Tabellen. Hashing bedeutet wortwörtlich zerhacken (vgl. Haschee) und tatsächlich wird der Schlüsseleintrag durch eine Funktion, die diesen geeignet verkürzt zerkleinert und diese dementsprechend in den Speicherbereich geschrieben. Eine einfache Hash-Funktion ist zum Beispiel die Modulo-Funktion a mod p, die den Rest der Zahl a nach Division durch p bezeichnet. 1 Genauer gesagt, Gnutella skaliert hinsichtlich sehr gut, wenn es darum geht neue Knoten aufzunehmen. Leider gestaltet sich dann die Suche in dieser entweder als äußerst nachrichtenintensiv oder sie ist erfolglos (je nach der Wahl der Sprungweite der Suche) 16

29 Abbildung 3.3: Der Standardansatz einer Hash-Tabelle ist nicht geeignet als Peer-to-Peer-Netzwerk Werden dann die Zahlen 10, 20, 30 in ein Feld der Größe p = 7 gespeichert, so wird 10 in den Speicherplatz 10 mod 7 = 3 geschrieben; 20 in den Speicherplatz 20 mod 7 = 6 und 30 mod 7 = 2. Natürlich wird es irgendwann nicht zu vermeiden sein, dass mehrere Elemente in einen Speicherplatz abgebildet werden. Diese Situation nennt man Kollision. Um diese Kollisionen zu beheben, wurden im den Grundstudiumsveranstaltung verschiedene Techniken vorgestellt. Wir verwenden hier nur einfache Verkettung, das heisst wir speichern alle kollidierten Einträge mit einer doppelt verketteten Liste. Eine einfache Übertragung dieses Konzepts als Peer-to-Peer-Netzwerk ist in Abbildung 3.3 dargestellt. Man identifiziert die Peers mit den Speicherplätzen der Hash-Tabelle. Die Peers sind verbunden durch eine Kette. Für eine Suche würde man zuerst die Hashfunktion f(x) des Elements x berechnen und dann je nach der eigenen Nummer die Anfrage in die Richtung leiten. Zwar sind jetzt die Index-Dateien des Peer-to-Peer-Netzwerk leicht aufzufinden, jedoch erkennt man sofort eine Reihe von Nachteilen in dieser Umsetzung. Die Suchzeit steigt mit der Anzahl der teilnehmenden Peers linear an. Die Zeit, um neue Peers (auf der rechten Seite) einzufügen ist ebenfalls lienar. Genauso lange braucht es auch, um alleine die Nummerieruung der Peers zu verändern, wenn ein Peer das Netzwerk verläßt. Gravierender wiegt aber, dass wenn ein Peer das Netzwerk betritt, die Hash-Funktion angepasst werden muss und dass dann (bei unglücklicher Wahl dieser neuen Funktion) fast alle gespeicherten Einträge neu zugeordnet werden müssen. Genauso verhält es sich, wenn ein Peer das Netzwerk verlässt. Diesen letzten Punkt lösen Distributed Hash-Tables (verteilte Hash-Tabellen). Diese Technik wurde ursprünglich zur Auflösung von sogenannten Hot-Spots 2 im Internet eingeführt zur verteilten Speicherung von HTML-Seiten oder Bilddateiten [KLL + 97]. Hierzu werden nicht jedem Peer eine einzige Zahl zugeordnet, sondern ein zusammenhängender Bereich des Hash-Funktionsbildbereichs. Dieser Bildbereich muss nicht mehr klein gehalten werden, da die Angabe der Bereichsgrenzen genügt. Man sorgt dafür, dass nur wenige Bereiche aneinander stoßen. Die Daten werden gemäß der Schlüssel ebenfalls auf diesen Hash- Funktionsbildbereich abgebildet und gemäß der den Peers zugeordneten Bereich auf diese abgebildet, siehe Abbildung 3.4. Kommt nun ein neuer Peer hinzu, wird der Bereich zweier benachbarter Peers neu aufgeteilt. Der neue Peer, siehe Abbildung 3.5 (schwarzer Kreis), erhält einen Teilbereich der vormals benachbarten Peers (roter und weißer Kreis). Dadurch müssen nur die Daten-Elemente weniger Peers neu umgelagert werden. Genauso verhält es sich, wenn ein Peer das Netzwerk verlässt, siehe Abbildung 3.6. Der Peer (grüner Kreis), der das Netzwerk verlässt, übergibt seine Bereiche den direkten Nachbarn. Wiederum sind nur wenige Peers und Datenelemente betroffen. Diese Operation hat nur lokale Auswirkungen. Damit lässt sich also das Problem des Einfügen und Entfernen von Knoten lösen.tatsächlich beruhen fast alle modernen Peer-to-Peer-Netzwerke auf diesen verteilten Hash-Tabellen (außer Skipnet [HJS + 03], die in dieser Vorlesung nicht behandelt werden). Es bleibt aber noch offen, welches Netzwerk diese Peers verbinden sollen, um die Datensuche zu optimieren. 2 Unter Hot Spots versteht man Überlastungen von Web-Server durch eine Anhäufung von Seitenanfragen. Hierfür hat sich mittlerweile eine ganze Industrie von Dienstleistern entwickelt, die verteilte Web-Services anbieten, wobei die Web-Seiten oder Seiteninhalte auf verschiedene über das Internet verstreute Ersatzserver verteilt wird. 17

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 5. Vorlesung 24.05.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Zusammenfassung Internet als

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung 1 Kapitel I Netzw erke 2 Inhalte P2P-Netzwerke der 1. Generation: Napster, Gnutella, Kazaa. Moderne P2P-Netzwerke CAN,

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 7. Vorlesung 17.05.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Organic Computing. Rolf Wanka Sommersemester 2008 26. Juni 2008. rwanka@cs.fau.de. Organic Computing: Peer-to-Peer-Netzwerke

Organic Computing. Rolf Wanka Sommersemester 2008 26. Juni 2008. rwanka@cs.fau.de. Organic Computing: Peer-to-Peer-Netzwerke Organic Computing Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2008 26. Juni 2008 rwanka@cs.fau.de P2P-Netzwerke aktuell Juni 2004 Quelle: CacheLogic 2005 Über 8 Mio. aktive Teilnehmer an Peer-to-Peer-Netzwerken

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 10. Vorlesung 28.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 8. Vorlesung 14.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Organic Computing. Rolf Wanka Sommersemester Organic Computing: Peer-to-Peer-Netzwerke

Organic Computing. Rolf Wanka Sommersemester Organic Computing: Peer-to-Peer-Netzwerke Organic Computing Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2008 rwanka@cs.fau.de Peer-to-Peer-Netzwerke Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter dem Overlay Die

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 9. Vorlesung 24.05.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 11. Vorlesung 01.06.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = + Definition Gnutella Ein -to--netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server- Aufgaben durchführt. Beobachtung: Das Internet ist (eigentlich

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 7. Vorlesung 05.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Lookup in CAN Verbindungsstruktur:

Mehr

Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme: Chord. Chord als DHT. Chord

Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme: Chord. Chord als DHT. Chord Chord Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme: ohne zentrale Kontrolle oder hierarchische

Mehr

Chord. Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke

Chord. Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke Chord Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme: ohne zentrale Kontrolle oder hierarchische

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 1. Vorlesung 26.04.2006 schindel@informatik.uni-freiburg.de 1 Organisation Web-Seite http://cone.informatik.uni-freiburg.de/ teaching/vorlesung/peer-to-peer-s06/

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme 13. Übung Constantin Timm Arbeitsgruppe Entwurfsautomatisierung für Eingebettete Systeme Lehrstuhl für Informatik 12 TU Dortmund constantin.timm@cs.tu-dortmund.de http://ls12-www.cs.tu-dortmund.de/staff/timm/

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 13. Vorlesung 22.06.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 2. Vorlesung 27.04.2006 schindel@informatik.uni-freiburg.de 1 Organisation Web-Seite http://cone.informatik.uni-freiburg.de/ teaching/vorlesung/peer-to-peer-s96/

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 16. Vorlesung 29.06.2006 schindel@informatik.uni-freiburg.de 1 Skip-Net J. Aspnes and G. Shah. Skip graphs, 2003 SkipNet: A Scalable

Mehr

Chord und Varianten. Vortrag Seminar P2P Systeme. Werner Gaulke Das Chord Projekt Grundlagen Aufbau Varianten Fazit

Chord und Varianten. Vortrag Seminar P2P Systeme. Werner Gaulke Das Chord Projekt Grundlagen Aufbau Varianten Fazit Chord und Varianten Vortrag Seminar P2P Systeme Werner Gaulke 17.07.2007 Werner Gaulke Chord und Varianten 1/22 Outline 1 Das Chord Projekt 2 Grundlagen Distributed Hash Tables 3 Aufbau Ringförmiger Aufbau

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 19. Vorlesung 12.07.2006 schindel@informatik.uni-freiburg.de 1 III. Zufallsgraphen C. Regulär, Gerichtet Peter Mahlmann, Christian Schindelhauer,

Mehr

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen?

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen? Integriertes Seminar Datenbanken und Informationssysteme P2P-Computing Lehrgebiet Datenverwaltungssysteme Prof. Dr. Dr. h.c. Härder Prof. Dr. Deßloch Björn Jung b_jun@informatik.uni-kl.de Technische Universität

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 10. Vorlesung 31.05.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 12. Vorlesung 12.07.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Aufbau Viceroy Knoten in Viceroy

Mehr

Organic Computing: Peer-to-Peer-Netzwerke

Organic Computing: Peer-to-Peer-Netzwerke Organic Computing Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2015 rwanka@cs.fau.de Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter dem Overlay Die ersten Peer-to-Peer-Netzwerke

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 14. Vorlesung 23.06.2006 schindel@informatik.uni-freiburg.de 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung

Mehr

Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de

Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 15. Vorlesung 28.06.2006 schindel@informatik.uni-freiburg.de 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung

Mehr

Peer-to-Peer-Netzwerke

Peer-to-Peer-Netzwerke Kapitel 13 Peer-to-Peer-Netzwerke Nach der Bedeutung des Wortes peer (engl. Gleichrangig ) bezeichnet ein Peer-to-Peer-Netzwerk ein Netzwerk, das Gleichrangige mit anderen Gleichrangigen verbindet. Diese

Mehr

Eigenschaften typischer Peer-to-Peer-Systeme

Eigenschaften typischer Peer-to-Peer-Systeme 1.1 Typische Eigenschaften Eigenschaften typischer -to--systeme Selbstorganisation Teilsysteme kommen und gehen Persistenz durch ständig verfügbare kritische Masse Unabhängigkeit von festen Netzadressen

Mehr

Algorithmen des Internets

Algorithmen des Internets Algorithmen des Internets Sommersemester 2005 20.06.2005 10. Vorlesung schindel@upb.de Überblick Das Internet: Einführung und Überblick Mathematische Grundlagen IP: Routing im Internet TCP: Das Transport-Protokoll

Mehr

Hochverteilte Datenhaltung im Internet

Hochverteilte Datenhaltung im Internet Hochverteilte Datenhaltung im Internet Fachseminar Verteilte Systeme 11. Juni 2002, Nicolas Burri Betreuung: M. Langheinrich Seminar-Leitung: Prof. F. Mattern Um was geht es? Napster? Gnutella? Edonkey2000?

Mehr

11 Peer-to-Peer-Netzwerke

11 Peer-to-Peer-Netzwerke 11 Peer-to-Peer-Netzwerke Überblick Gnutella Freenet Chord CAN Pastry 11.1 11.1Überblick Grundform des Internet (1969-1995) Informationsanbieter Informationskonsument 11.2 11.1 Überblick Web-dominiertes

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Anfragenbasierte Datenreplikation in Peer-to-Peer-Netzen

Anfragenbasierte Datenreplikation in Peer-to-Peer-Netzen Anfragenbasierte Datenreplikation in Peer-to-Peer-Netzen Sven Herschel Humboldt-Universität zu Berlin, Institut für Informatik LFE Datenbanken und Informationssysteme Unter den Linden 6 10099 Berlin herschel@informatik.hu-berlin.de

Mehr

Einführung in unstrukturierte p2p Systeme wie Gnutella. HamzaOuldBakar. Chair for Communication Technology (ComTec(

Einführung in unstrukturierte p2p Systeme wie Gnutella. HamzaOuldBakar. Chair for Communication Technology (ComTec( Einführung in unstrukturierte p2p Systeme wie Gnutella. HamzaOuldBakar Chair for Communication Technology (ComTec( ComTec), Faculty of Electrical Engineering / Computer Science Überblick 1 Einführung in

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2015

Informatik II: Algorithmen und Datenstrukturen SS 2015 Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group https://moves.rwth-aachen.de/teaching/ss-18/dsal/ 2 Effizienz

Mehr

Inhalt. Literatur. Dr. Felix Heine Complex and Distributed IT-Systems

Inhalt. Literatur. Dr. Felix Heine Complex and Distributed IT-Systems Vorlesung P2P Netzwerke 2: Unstrukturierte Netze Dr. Felix Heine Complex and Distributed IT-Systems felix.heine@tu-berlin.de Inhalt Napster Erstes "P2P" Netzwerk Kein wirkliches P2P Enormes Medienecho

Mehr

Informatik III Wunschvorlesung Theorie der Peer-to-Peer-Netzwerke

Informatik III Wunschvorlesung Theorie der Peer-to-Peer-Netzwerke Informatik III Wunschvorlesung Theorie der Peer-to-Peer-Netzwerke Christian Schindelhauer Wintersemester 2006/07 29. Vorlesung 16.02.2007 1 P2P-Netzwerke 2005 Juni 2004 Quelle: CacheLogic 2005 Über 8 Mio.

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte

Mehr

Erstes populäres P2P-System der zweiten Generation Vermeidung der bei Gnutella deutlich gewordenen Probleme. P2P.fm:

Erstes populäres P2P-System der zweiten Generation Vermeidung der bei Gnutella deutlich gewordenen Probleme. P2P.fm: FastTrack (Kazaa) FastTrack (Kazaa) Ab 2001 entwickelt mit den Zielen Eigenschaften, Fazit Vermeidung eines zentralen Servers (wie z.b. bei Napster) Erstes populäres P2P-System der zweiten Generation Vermeidung

Mehr

Systeme II. 12. Vorlesungswoche

Systeme II. 12. Vorlesungswoche 12. Vorlesungswoche 14.07. 18.07.2008 Institut für Informatik 1 1 Peer-to-Peer- Netzwerke Peer-to-Peer-Netzwerke Peter Mahlmann, Christian Schindelhauer Peer-to-Peer-Netzwerke - Methoden und Algorithmen

Mehr

Inhalte der Vorlesung (vorläufig)

Inhalte der Vorlesung (vorläufig) Vorlesung P2P Netzwerke 5: Pastry Dr. Dominic Battré Complex and Distributed IT Systems dominic.battre@tu berlin.de berlin de Inhalte der Vorlesung (vorläufig) Einleitung Was ist P2P? Definition Einsatzgebiete

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz

Mehr

Übungsblatt 7 - Voronoi Diagramme

Übungsblatt 7 - Voronoi Diagramme Karlsruher Institut für Technologie Algorithmische Geometrie Fakultät für Informatik Sommersemester 2012 ITI Wagner Martin Nöllenburg/Andreas Gemsa Übungsblatt 7 - Voronoi Diagramme 1 Voronoi-Zellen Sei

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log

Mehr

I Peer-to-Peer-Systeme

I Peer-to-Peer-Systeme I Peer-to-Peer-Systeme I.1 1 Definition Was sind Peer-to-Peer-Systeme? peer = der Gleiche, die Gleiche Gegensatz zu Client-Server-Modell Peers kommunizieren als Gleiche miteinander Nachteile des

Mehr

Freiburg Embedded Systems Talks Academia meets Industry

Freiburg Embedded Systems Talks Academia meets Industry Freiburg Embedded Systems Talks Academia meets Industry Vorträge: 16.-18. Oktober 2006 Workshops: 19.-20. Oktober 2006 Festveranstaltung mit Live-Musik: 16. Oktober 2006, ab 18:00 Uhr Veranstaltungsort:

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 9. Vorlesung 26.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Verteilte Systeme. Peer to Peer Systeme. Secure Identity Research Group

Verteilte Systeme. Peer to Peer Systeme. Secure Identity Research Group Verteilte Systeme Peer to Peer Systeme Peer to Peer Systeme Problem: Client/Server Systeme bieten exzellente Kontrolle über einen Dienst, jedoch können sie nur eine begrenzte Anzahl an Anfragen beantworten

Mehr

Hashtabellen. Hashverfahren, was ist das eigentlich?

Hashtabellen. Hashverfahren, was ist das eigentlich? Hashverfahren, was ist das eigentlich? Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines

Mehr

I Peer-to-Peer-Systeme

I Peer-to-Peer-Systeme 1 Definition Was sind -to--systeme? peer = der Gleiche, die Gleiche Gegensatz zu Client-Server-Modell s kommunizieren als Gleiche miteinander I -to--systeme Nachteile des Client-Server-Modells

Mehr

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-4. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-09 Überblick 1 Verkettete Listen 2 Unbeschränkte Felder 3 Amortisierte Laufzeitanalyse

Mehr

Systeme II. Christian Schindelhauer Sommersemester 2007 13. und letzte Vorlesungswoche 16.07.-20.07.2007 schindel@informatik.uni-freiburg.

Systeme II. Christian Schindelhauer Sommersemester 2007 13. und letzte Vorlesungswoche 16.07.-20.07.2007 schindel@informatik.uni-freiburg. Systeme II Christian Schindelhauer Sommersemester 2007 13. und letzte Vorlesungswoche 16.07.-20.07.2007 schindel@informatik.uni-freiburg.de 1 Kapitel X Peer-to- Peer- Netzwerke Buch zu dieser Vorlesung

Mehr

Laptop A location aware peer-to-peer overlay network

Laptop A location aware peer-to-peer overlay network Laptop A location aware peer-to-peer overlay network Chi-Jen Wu, De-Kai Liu and Ren-Hung Hwang Seminar peer-to-peer Netzwerke Prof. Dr. Christian Schindelhauer 29. Juli 2009 Überblick Was ist Laptop? Aufbau

Mehr

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt. examen.press examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt. Peter Mahlmann Christian Schindelhauer Peer-to-Peer- Netzwerke

Mehr

Wie designt man robuste Netzwerke? Connect to the Seniors! Randomisierte Algorithmen für Netzwerke Eine Exkursion

Wie designt man robuste Netzwerke? Connect to the Seniors! Randomisierte Algorithmen für Netzwerke Eine Exkursion Wie designt man robuste Netzwerke? Connect to the Seniors! Randomisierte Algorithmen für Netzwerke Eine Exkursion Heute Spezialprogramm Prof. Scheideler auf Rhodos DISTRIBUTED COMPUTING Nächste Woche geht

Mehr

Einführung in unstrukturierte P2P Systeme Wie Gnutella.

Einführung in unstrukturierte P2P Systeme Wie Gnutella. Einführung in unstrukturierte P2P Systeme Wie Gnutella. Hamza Ould Bakar 1 Einführung in unstrukturierte P2P Systeme wie Gnutella 1 Was ist Peer To Peer? 2 Klassifikationen und Architekturen in P2P: 2.1

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

Automotive.verstehen.gestalten.bewegen. Car2Car Systeme. Java und Peer2Peer ziehen ins Auto. 1 Adam Kovacs

Automotive.verstehen.gestalten.bewegen. Car2Car Systeme. Java und Peer2Peer ziehen ins Auto. 1 Adam Kovacs Automotive.verstehen.gestalten.bewegen Car2Car Systeme Java und Peer2Peer ziehen ins Auto 1 Agenda Peer2Peer Netzwerke Einleitung Von Client-Server zu P2P Standards und Lösungen Vor- und Nachteile Chord

Mehr

P2P Seminar. Kademlia. A Peer-to-peer Information System Based on the XOR Metric

P2P Seminar. Kademlia. A Peer-to-peer Information System Based on the XOR Metric P2P Seminar Kademlia A Peer-to-peer Information System Based on the XOR Metric 1 Abgrenzung Filesharing-Tools unterscheiden sich primär im Mechanismus zum Auffinden der bereitgestellten Informationen.

Mehr

Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz

Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz INSTITUT FÜR KOMMUNIKATIONSNETZE UND RECHNERSYSTEME Prof. Dr.-Ing. Dr. h. c. mult. P. J. Kühn Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz VFF IND/IKR-Workshop Andreas Reifert,

Mehr

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Systeme II. Christian Schindelhauer Sommersemester Vorlesung Systeme II Christian Schindelhauer Sommersemester 2006 14. Vorlesung 22.06.2006 schindel@informatik.uni-freiburg.de 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung der

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

Gnutella 0.6. Vorstellung eines Filesharing-Protokolls. Wolfgang Steudel: Das Gnutella-Protokoll 2/15. Inhalt

Gnutella 0.6. Vorstellung eines Filesharing-Protokolls. Wolfgang Steudel: Das Gnutella-Protokoll 2/15. Inhalt Gnutella 0.6 Vorstellung eines Filesharing-Protokolls Wolfgang Steudel: Das Gnutella-Protokoll 1/15 Inhalt Einleitung Peer sucht Anschluß Gnutella Message Header Auf Entdeckungsreise Resourcen suchen HTTP-Download

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Algorithmen für Ad-hoc- und Sensornetze

Algorithmen für Ad-hoc- und Sensornetze Algorithmen für Ad-hoc- und Sensornetze Übung 6 Kommunikation und Färbungen im SINR Modell (basierend auf VL11) Fabian Fuchs 17. Jan. 2015 (Version 1) INSTITUT FÜR THEORETISCHE INFORMATIK - LEHRSTUHL FÜR

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Nico Düvelmeyer WS 2009/2010, 12.1.2010 Überblick 1 Definition und grundlegende Eigenschaften (Wied.) 2 Bestimmung des Voronoi Diagramms Gleitebenenverfahren

Mehr

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Goethe-Universität Frankfurt am Main 27. Juli 2012 Institut für Informatik Theorie komplexer Systeme Dr. Mariano Zelke Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Name: Vorname: Studiengang:

Mehr

DAP2-Klausur

DAP2-Klausur DAP2-Klausur 09.10.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik (inkl. angewandte Informatik)/ Lehramt Informatik/Informationstechnik/ Physik/Mathe/Statistik/Sonstiges: Bitte

Mehr

Verteilte Systeme - P2P-Computing

Verteilte Systeme - P2P-Computing Verteilte Systeme - PP-Computing... alois.schuette@h-da.de Alois Schütte. Oktober / 7 Inhaltsverzeichnis Die Kommunikation in verteilten Systemen, bei denen eine Menge von gleichberechtigten Partnern gemeinsam

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Datenstrukturen und Algorithmen. Vorlesung 5

Datenstrukturen und Algorithmen. Vorlesung 5 Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen 4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS3/4 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws34/dbsys/exercises/

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 12. Vorlesung 14.06.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen und Datenstrukturen (Informatik II) SS Klausur Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Dr. Dominic Battré Complex and Distributed IT Systems

Dr. Dominic Battré Complex and Distributed IT Systems Vorlesung P2P Netzwerke 2: Unstrukturierte Netze Dr. Dominic Battré Complex and Distributed IT Systems dominic.battre@tu berlin.de berlin de Inhalt Napster Erstes "P2P" Netzwerk Kein wirkliches P2P Enormes

Mehr

Dominic Battré P2P Netzwerke

Dominic Battré P2P Netzwerke Vorlesung P2P Netzwerke 2: Unstrukturierte Netze Dr. Dominic Battré Complex and Distributed IT Systems dominic.battre@tu berlin.de berlin de Napster Erstes "P2P" Netzwerk Kein wirkliches P2P Inhalt Enormes

Mehr

Bayeux. Dirk Ewerlin

Bayeux. Dirk Ewerlin Bayeux Dirk Ewerlin Inhalt Einleitung Routing & Loaklisierung Basisstruktur Erweiterung der Skalierbarkeit Fehlertolerante Paketzustellung Einleitung Multicast-Lösung auf Anwendungsebene über Unicast-

Mehr

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen Universelles Hashing Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen wir können nicht annehmen, daß die Keys gleichverteilt im Universum liegen (z.b. Identifier im Programm) könnte also

Mehr

Sicherheitsmechanismen für CANbasierte Dienstlokalisierung in Sensornetzen

Sicherheitsmechanismen für CANbasierte Dienstlokalisierung in Sensornetzen Sicherheitsmechanismen für CANbasierte Dienstlokalisierung in Sensornetzen Ingmar Baumgart Hans-Joachim Hof Prof. Dr. M. Zitterbart Institut für Telematik, Universität Karlsruhe (TH) Neue Herausforderungen

Mehr

Fragenkatalog 1. Kurseinheit

Fragenkatalog 1. Kurseinheit katalog 1. Kurseinheit 1. Wie sind Algorithmen und Datenstrukturen untrennbar miteinander verknüpft? 2. Worin besteht das Ziel einer Beschreibung auf algorithmischer Ebene? 3. Welche Kriterien gibt es

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr