Peer-to-PeerNetzwerke Christian Schindelhauer Sommersemester 2006 23. Vorlesung 26.07.2006 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer [email protected] 1 Inhalte Kurze Geschichte der Peer-to-PeerNetzwerke Das Internet: Unter dem Overlay Die ersten Peer-to-Peer-Netzwerke – Napster – Gnutella CAN Chord Pastry und Tapestry Gradoptimierte Netzwerke – Viceroy – Distance-Halving – Koorde Netzwerke mit geordneter Speicherung – P-Grid – Skip-Net und Skip-Graphs Peer-to-Peer-Netzwerke Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Selbstorganisation – Pareto-Netzwerke – Zufallsnetzwerke – Topologie-Management Sicherheit in Peer-to-PeerNetzwerken Anonymität Datenzugriff: Der schnellere Download Peer-to-Peer-Netzwerke in der Praxis – eDonkey – FastTrack – Bittorrent Ausblick – Juristische Situation – Anwendungen – Offene Fragen 23. Vorlesung - 2 IP Multicast Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Motivation – Übertragung eines Stroms an viele Empfänger Unicast – Strom muss mehrfach einzeln übertragen werden – Bottleneck am Sender Multicast – Strom wird über die Router vervielfältigt – Kein Bottleneck mehr Bilder von Peter J. Welcher www.netcraftsmen.net/.../ papers/multicast01.html Peer-to-Peer-Netzwerke 23. Vorlesung - 3 Funktionsprinzip Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer IPv4 Multicast-Adressen – in der Klasse D (außerhalb des CIDR - Classless Interdomain Routings) – 224.0.0.0 - 239.255.255.255 Hosts melden sich per IGMP bei der Adresse an – IGMP = Internet Group Management Protocol – Nach der Anmeldung wird der Multicast-Tree aktualisiert Source sendet an die Multicast-Adresse – Router duplizieren die Nachrichten an den Routern – und verteilen sie in die Bäume Angemeldete Hosts erhalten diese Nachrichten – bis zu einem Time-Out – oder bis sie sich abmelden Achtung: – Kein TCP, nur UDP – Viele Router lehnen die Beförderung von Multicast-Nachrichten ab • Lösung: Tunneln Peer-to-Peer-Netzwerke 23. Vorlesung - 4 Routing Protokolle Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Distance Vector Multicast Routing Protocol (DVMRP) – jahrelang eingesetzt in MBONE (insbesondere in Freiburg) – Eigene Routing-Tabelle für Multicast Protocol Independent Multicast (PIM) – im Sparse Mode (PIM-SM) – aktueller Standard – beschneidet den Multicast Baum – benutzt Unicast-Routing-Tabellen – ist damit weitestgehend Protokoll unabhängig Voraussetzung PIM-SM: – benötigt Rendevous-Point (RP) in ein-Hop-Entfernung – RP muss PIM-SM unterstützen – oder Tunneling zu einem Proxy in der Nähe eines RP Peer-to-Peer-Netzwerke 23. Vorlesung - 5 PIM-SM Baumkonstrukte Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Host A Shortest-Path-Tree Shared Distribution Tree From Cisco: http://www.cisco.com/en/US/products/hw/switches/ps646/products_configuration_guide_chapter09186a008014f350.html Peer-to-Peer-Netzwerke 23. Vorlesung - 6 IP Multicast wird kaum unterstützt Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer IP Multicast ist die beste der hier vorgestellten Lösungen Aber: Status Mitte 2006 – http://www.multicasttech.com/status/ Peer-to-Peer-Netzwerke 23. Vorlesung - 7 Warum so wenig IP Multicast? Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Trotz erfolgreichen Einsatz – in Video-Übertragung von IETF-Meetings – MBONE (Multicast Backbone) gibt es wenig ISP welche IP Multicast in den Routern unterstützen Zusätzlicher Wartungsaufwand – Schwierig zu konfigurieren – Verschiedene Protokolle Gefahr von Denial-of-Service-Attacken – Implikationen größer als bei Unicast Transport-Protokoll – Nur UDP einsetzbar – Zuverlässige Protokolle • Vorwärtsfehlerkorrektur • Oder propertiäre Protokolle in den Routern (z.B. CISCO) Marktsituation – Endkunden fragen kaum Multicast nach (benutzen lieber P2P-Netzwerke) – Wegen einzelner Dateien und weniger Abnehmer erscheint ein Multicast wenig erstrebenswert (Adressenknappheit!) Peer-to-Peer-Netzwerke 23. Vorlesung - 8 Scribe Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Multicast-Baum im Overlay-Netzwerk Scribe [2001] basiert auf Pastry – Castro, Druschel, Kermarrec, Rowstron Vergleichbare Ansätze – CAN Multicast [2001] basiert auf CAN – Bayeux [2001] basiert auf Tapestry Andere Ansätze – Overcast [´00] und Narada [´00] – bauen auch Multicast-Tree auf Unicast-Verbindungen – skalieren nicht Peer-to-Peer-Netzwerke 23. Vorlesung - 9 Funktionsweise Scribe Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Create – GroupID wird einem Peer gemäß nächsten PastryIndex zugewiesen Join – Interessierter Peer macht Look-up zur Group-ID – Sobald ein Peer im Multicast-Baum gefunden worden ist, wird neuer Teilpfad eingefügt Download – Nachrichten werden baumförmig verteilt – Knoten duplizieren Teile Peer-to-Peer-Netzwerke 23. Vorlesung - 10 Scribe: Optimierung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Bottleneck-Remover – Wenn ein Knoten überlastet ist – dann wird die Gruppe ausgewählt mit der größten Last – In dieser Gruppe wird das Kind im Teilbaum ausgewählt, der in der Netzwerk-Metrik am weitesten ist – Dieser Knoten misst den Delay zwischen sich und den anderen Kindern – Dann hängt sich dieser Knoten unter den nächsten Bruder Peer-to-Peer-Netzwerke 23. Vorlesung - 11 Split-Stream Motivation Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Multicast-Bäume benachteiligen gewisse Knoten Lemma – In jedem Binärbaum ist die Anzahl der Blätter = Anzahl interner Knoten +1 Schlussfolgerung – Fast die Hälfte aller Knoten verteilen Daten – Während die andere Hälfte profitiert – Als interner Knoten hat man den doppelten Upload (verglichen mit dem Durchschnitt) Lösung: größerer Grad? Lemma – In jedem Baum mit Grad d gilt für die Anzahl interner Knoten k und die Blätter b: (d-1) k = b -1 Schlussfolgerung – Damit müssen noch weniger Peers mehr Upload verrichten als im Binärbaum Peer-to-Peer-Netzwerke 23. Vorlesung - 12 Split-Stream Lösung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Castro, Druschel, Kermarrec, Nandi, Rowstron, Singh 2001 Idee – Teile die Datei der Größe B in k kleinere Teile – Verwende anderen Multicast-Baum für jeden der Teile – Dadurch wird jeder Peer mal als Blatt oder als Verteil-Knoten fungieren • außer der Quelle Der Upload jedes Knotens ist dann (im Idealfall) höchstens der Download Peer-to-Peer-Netzwerke 23. Vorlesung - 13 Bittorrent Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Bram Cohen Bittorrent ist ein reales (sehr erfolgreiches) Peer-to-Peer-Netzwerke – konzentriert sich auf Download – verwendet (implizit) Multicast-Trees für die Verteilung der Daten Beschreibung ist Peer-orientiert und nicht Daten-orientiert Ziele: – Möglichst effizienter Download einer Datei unter Zuhilfenahme der UploadFähigkeit der Peers – Möglichst effiziente Ausnutzung des Upload von Peers • In der Praxis ist der Upload der Bottleneck • z.B. wegen der asymmetrischen Protokoll-Gestaldung von ISDN, Bitübertragungsschicht von DSL – Fairness zwischen den Peers • Seeders versus Leechers – Verwendung verschiedener Quellen Peer-to-Peer-Netzwerke 23. Vorlesung - 14 Bittorrent Koordination und Datei Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Zentrale Koordination – durch sogenannten Tracker-Host – Für jede Datei gibt der Tracker eine Menge von Zufallspeers aus der Menge der downloadenden Peers – Zusätzlich: Ausgabe des Hash-Codes und anderer Kontroll-Information – Tracker-Hosts haben keine Dateien • Trotzdem kann das Anlegen einer Tracker-Datei auf einem TrackerHost rechtliche Probleme ergeben (Urheberschutzsgesetz) Datei – ist in kleinere Dateien zerlegt (in Tracker-Datei festgelegt) – Jeder teilnehmende Host kann heruntergeladenen Teil weiterverbreiten, sobald er vollständig erhalten wurde – Damit ist Bittorrent die Umsetzung eines Split-Stream-ähnlichen Protokolls Interaktion zwischen Peers – Zwei Peers tauschen die Information über ihre vorhandenen Teile aus – Gemäß der Politik von Bittorrent werden dann noch nicht vorhandene Teile von dem einen Peer zum anderen übertragen Peer-to-Peer-Netzwerke 23. Vorlesung - 15 Bittorrent Auswahl der Teile Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Problem – Das Coupon-Collector-Problem kann gewisse Teile einer Datei rar machen • siehe Übung Maßnahmen – Rarest First • Jeder Peer versucht die seltensten Teile zu laden Häufigkeit erschließt sich aus der Kommunikation mit anderen Peers • Ist die Quelle nicht mehr vorhanden, so erhöht dies die Wahrscheinlichkeit, dass alle vollenden können – Random First (Ausnahme für neue Peers) • Startet ein Peer, dann lädt er ein zufälliges Teil • Dadurch wird die Nachfrage bei den Peers mit seltenen Teilen verringert – Endgame Mode • Sind fast alle Teile geladen, dann fragt der Peer bei allen verbundenen Peers nach allen fehlenden Dateien • Dadurch kann vermieden werden, dass ein langsamer Peer mit einem Teil den Download am Ende noch herauszögert Peer-to-Peer-Netzwerke 23. Vorlesung - 16 Bittorrent Politik Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Ziel – Selbstorganisierendes System – Gute (Uploader/Seeder) werden belohnt – Böse (Downloader/Leecher) werden bestraft Belohnung – Gute Download-Bandweite – Rücknahme einer Drosselung (un-choke) Bestrafung – Drosselung der Bandweite (choke) Bewertung – Jeder Peers bewertet selbst sein Umfeld aufgrund der vergangenen Erfahrungen Peer-to-Peer-Netzwerke 23. Vorlesung - 17 Bittorrent Drosseln Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Jeder Peer hat eine Drossel-Liste – Die Anfragen der gedrosselten Peers nach Teilen werden zeitweise nicht bedient – Dieser Zustand kann aber wieder rückgängig gemacht werden Aufnahme in die Drossel-Liste – Jeder Peer hat eine feste Mindestanzahl von gedrosselten Peers (z.B. 4) – Die Peers welche den schlechtesten Download bieten werden in diese Liste aufgenommen • und ersetzen andere Peers Optimistisches Entdrosseln (Optimistic Unchoking) – Aus der Liste der Drossel-Kandidaten wird ein Kandidat willkürlich herausgenommen • Dadurch kann man verhindern, dass alle Peers einen Peer nicht bedienen, nur weil er eine schlechte Verbindung hat Peer-to-Peer-Netzwerke 23. Vorlesung - 18 Netzwerk-Kodierung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer R. Ahlswede, N. Cai, S.-Y. R. Li, and R. W. Yeung, "Network Information Flow", (IEEE Transactions on Information Theory, IT-46, pp. 1204-1216, 2000) Beispiel: – Die Bits A und B sollen übertragen werden – Über jede Leitung darf nur ein Bit übertragen werden – Werden nur die Bits unverändert übertragen, so • kann entweder nur links oder nur rechts A und B erhalten werden – Durch Verwendung des Xor A+B kann in beiden das Ergebnis bekommen werden Peer-to-Peer-Netzwerke 23. Vorlesung - 19 Netzwerk-Kodierung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer R. Ahlswede, N. Cai, S.-Y. R. Li, and R. W. Yeung, "Network Information Flow", (IEEE Transactions on Information Theory, IT-46, pp. 1204-1216, 2000) Theorem [Ahlswede et al.] – Es gibt einen Netzwerk-Code für jeden Graphen, so dass man so viel Information von den Quellen erhalten kann, – wie das zugehörige Fluss-Problem erlaubt. Peer-to-Peer-Netzwerke 23. Vorlesung - 20 Praktische NetzwerkKodierung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Christos Gkantsidis, Pablo Rodriguez Rodriguez, 2005 Ziel – Überwendung des Coupon-Collector-Problems bei der Partitionierung von Dateien • Eine Datei aus m Teilen kann von den Vorgängern erhalten werden, wenn die Summe ihrer Teile mindestens m ist – Optimale Übertragung von Dateien hinsichtlich der verfügbaren Bandbreite Methode – Verwende als Codes Linear-Kombinationen der Teile einer Datei • Entstehender Code beinhaltet den Vektor – Bei der Verteilung werden Linear-Kombination rekombiniert zu neuen Teilen – Beim Empfänger werden die LinearKombinationen gesammelt – und mittels Matrix-Invertierung die Original-Datei rekonstruiert Peer-to-Peer-Netzwerke 23. Vorlesung - 21 Kodierung und Dekodierung Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Datei: x1, x2, ..., xm Codes: y1,y2,...,ym Mit zufälligen Variablen rij Also Falls die Matrix (rij) invertierbar ist, erhält man Peer-to-Peer-Netzwerke 23. Vorlesung - 22 Invertierbarkeit einer Zufallsmatrix Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Theorem – Werden die Zahlen uniform aus dem (endlichen) Körper mit Kardinalität b gewählt, so ist die m x m- Zufallsmatrix mit mindestens der Wahrscheinlichkeit invertierbar. Idee: Wähle endlichen Körper F[28] – Rechnung mit Bytes effizient möglich – Dann ist die Erfolgswahrscheinlichkeit mindestens über 99% – Im Fehlerfall wird durch Übertragung eines zusätzlichen Blocks die Erfolgswahrscheinlichkeit wieder größer als 99% Peer-to-Peer-Netzwerke 23. Vorlesung - 23 Geschwindigkeit von Network-Coding Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Vergleich – Network-Coding (NC) versus – Local-Rarest (LR) und – Local-Rarest+Forward-ErrorCorrection (LR+FEC) Peer-to-Peer-Netzwerke 23. Vorlesung - 24 Probleme mit NetworkCoding Albert-Ludwigs-Universität Freiburg Institut für Informatik Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Zusatzaufwand: Speichern der Variablen – Pro Block 1 Variablen-Vektor – Z.B. 4 GByte-Datei hat mit 100 kByte-Block hat Variablenvektor von • 4 GByte/100 kByte = 40 kByte • Damit entsteht ein Overhead von rund 40% pro Datei – Besser: 4 GByte und 1 MByte-Block • ergibt 4kByte Overhead von 0,4% Dekodierungsaufwand – Invertierung einer m x m- Matrix benötigt Zeit O(m3) und Speicher O(m2) – Damit ist der Speicherverbrauch bei • 4 kByte-Variablen-Vektor = 16 MByte • 40 kByte-Variablen-Vektor = 1,6 GByte Schreib-/Lese-Zugriffe – Um m Blöcke zu kodieren muss jeder Teil der Datei m-mal gelesen werden – Zur Dekodierung muss jeder Code-Teil ebenfalls m-mal gelesen werden – Abnutzung der Speichermedien (Festplatten) – Zeitverbrauch für Lese/Schreib-Operationen (Disk-Cache wird nicht ausgenutzt) Peer-to-Peer-Netzwerke 23. Vorlesung - 25 Ende der 23. Vorlesung Peer-to-Peer-Netzwerke Christian Schindelhauer [email protected] Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer 26