Algorithmen des Internets

Ähnliche Dokumente
Systeme II 13. Woche Data Centers und Verteiltes Hashing

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung

Algorithmen II Vorlesung am

Informatik II, SS 2014

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

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

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

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Rolf Wanka Sommersemester Vorlesung

Parallelität und Kommunikation

6: Diskrete Wahrscheinlichkeit

Algorithmen des Internets Sommersemester Vorlesung

Grundlagen: Algorithmen und Datenstrukturen

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012

Übung Algorithmen und Datenstrukturen

Teil VII. Hashverfahren

Lineare Kongruenzgeneratoren und Quicksort

Systeme II 6. Die Anwendungsschicht

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Organic Computing: Peer-to-Peer-Netzwerke

String - Matching. Kapitel Definition

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

Signale und Codes Vorlesung 4

7. Übung zu Algorithmen I 1. Juni 2016

Seminararbeit. Consistent Hashing und Balancing in DHTs

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung

Prinzipien der modernen Kryptographie Sicherheit

Peer-to-Peer- Netzwerke

Übung zur Vorlesung Berechenbarkeit und Komplexität

2.7 Der Shannon-Fano-Elias Code

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Grundlagen: Algorithmen und Datenstrukturen

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Algorithmische Methoden für schwere Optimierungsprobleme

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Die reellen Zahlen als Äquivalenzklassen rationaler Cauchy-Folgen. Steven Klein

Randomisierte Algorithmen 2. Erste Beispiele

7. Sortieren Lernziele. 7. Sortieren

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Die Topologie von R, C und R n

Algorithmen und Datenstrukturen

Seminar: Innovative Netztechnologien

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Software ubiquitärer Systeme

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

Analysis 1, Woche 2. Reelle Zahlen. 2.1 Anordnung. Definition 2.1 Man nennt eine Anordnung für K, wenn: 1. Für jeden a K gilt a a (Reflexivität).

Vorlesung Sicherheit

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Stackelberg Scheduling Strategien

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

(b) Man nennt die Menge M beschränkt, wenn sie nach oben und unten beschränkt ist.

Komplexität von Algorithmen:

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Stochastik für die Informatik

Übung Algorithmen und Datenstrukturen

Greedy Algorithms - Gierige Algorithmen

lokaler Cache-Server Planung und Einsatz Planung lokaler Cache-Server Kalkulation Aufwand vs. Nutzen Konzept für die Nutzung Dimensionierung C.

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

aus der Bedingung/Annahme A folgt ein Widerspruch ), so ist A falsch!

Vollständigkeit. 1 Konstruktion der reellen Zahlen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

Algorithmen und Datenstrukturen

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Grundlagen: Algorithmen und Datenstrukturen

Mathematik für Ökonomen 1

Seminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener

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

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07

14. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i

Vorlesung Sicherheit

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

Diskrete Strukturen Kapitel 1: Einleitung

Wahrscheinlichkeitsrechnung und Statistik

Grundlagen: Algorithmen und Datenstrukturen

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )

Algorithmische Methoden zur Netzwerkanalyse

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

Verteilte Systeme Übung T5

Von den rationalen zu den reellen Zahlen

Intervallaustauschtransformationen, Flüsse und das Lemma von Masur

Stochastik I. Vorlesungsmitschrift

Zeitstetige Markov-Prozesse: Einführung und Beispiele

Prinzipien der modernen Kryptographie Sicherheit

Vorkurs Mathematik. Übungen Teil IV

Bäume, Suchbäume und Hash-Tabellen

Die Kopplung von Markovketten und die Irrfahrt auf dem Torus

Hypertext Transfer Protocol

Transkript:

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 des Internets Die Struktur des World Wide Web und des Internets Suche im Web Web-Caching im Internet Web-Caching Lastverteilung durch Hash-Funktionen Konsistentes Hashing Peer-to-peer-Netzwerke Angriffe auf das Internet Heute

WWW-Lastbalancierung Für Surfen im Web typisch: Web-Server bieten Web-Seiten an Web-Clients fordern Web-Seiten an In der Regel sind diese Mengen disjunkt Eingehende Anforderungen belasten Web-Server hinsichtlich: Übertragungsbandbreite Rechenaufwand (Zeit,Speicher) www.apple.de www.google.com www.peernear.de Peter Stefan Markus

Lastanforderungen Einige Web-Server haben immer hohe Lastanforderungen Z.B. Nachrichten-Sites, Suchmaschinen, Web-verzeichnisse Für permanente Anforderungen müssen Server entsprechen ausgelegt werden www.google.com Andere leiden unter hohen Fluktuationen z. B. bei besonderen Ereignissen: jpl.nasa.gov (Pathfinder Mission) Montag Dienstag Mittwoch apple.com (Steve Jobs Keynote Address) Server-Erweiterung nicht sinnvoll Bedienung der Anfragen aber erwünscht

Lastbalancierung im WWW Fluktuationen betreffen meistens einzelne Server Montag Dienstag Mittwoch A B A B A B (Kommerzielle) Lösung Dienstleister bieten Ausweich- (Cache-)Server an Viele Anforderungen werden auf diese Server verteilt A B Aber wie?

Web-Caching Leighton, Lewin, et al. STOC 97 Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web Passen bestehende Verfahren für dynamische Hash-Funktionen an WWW-Anforderungen an Leighton und Lewin (MIT) gründen Akamai 1997 Web-Cache Akaimai 2003: 550 Angestellte Ertrag 145 Mio. $ (2002) 15.000 Server in 60 Ländern verbunden mit 1.100 lokalen Netzwerken

Ausgangssituation Ohne Lastbalancierung: Jeder Browser (Web-Client) belegt einen Web-Server für eine Web-Site Vorteil: Einfach Web-Server Webseiten Nachteil: Der Server muss immer für den Worst-Case ausgelegt werden request Web-Clients

Site Caching Ganze Web-Site wird auf verschiedene Web-Caches kopiert Browser fragt bei Web-Server nach Seite Web-Server leitet Anfrage auf Web- Cache um (redirect) Web-Cache liefert Web-Seite aus Web-Server redirect Web-Cache Vorteil: Gute Lastbalancierung für Seitenverteilung Nachteil: Bottleneck: Redirect Großer Overhead durch vollständige Web-Site- Replikationen Web-Clients

Proxy Caching Jede Web-Seite wird auf einige (wenige) Web-Caches verteilt Nur Startanfrage erreicht Web-Server Links referenzieren auf Seiten im Web- Cache Dann surft der Web-Client nur noch auf den Web-Cache Web-Server redirect Link Vorteil: Kein Bottleneck Nachteil: Lastbalancierung nur implizit möglich 2. 3. request 1. 4. Web- Cache Hohe Anforderung an Caching- Algorithmus Web-Client

Anforderungen an Caching-Algorithmus 1. Balance Gleichmäßige Verteilung der Seiten 2. Dynamik Effizientes Einfügen/Löschen von neuen Web-Cache-Servern?? new X X 3. Views Web-Clients sehen unterschiedliche Menge von Web-Caches

Hash-Funktionen Buckets Items Menge der Items: Menge der Buckets: Beispiel:

Ranged Hash-Funktionen Gegeben: Elemente (Items), Anzahl Caches (Buckets), Menge der Buckets: Views Ranged Hash-Funktion: Voraussetzung: für alle Views gilt Buckets Items View

Erste Idee: Hash-Funktion Verfahren: Wähle Hash-Funktion, z.b. n: Anzahl Cache-Server Balance: Sehr gut! 5 3 i + 1 mod 4 2 9 4 3 6 0 1 2 3 Dynamik Einfügen/Löschen von nur einem Cache-Server Neue Hash-Funktion und vollständige Neuzuweisung Hoher Aufwand! 2 i + 2 mod 3 5 2 9 4 3 6 X 0 1 2 3

Erste Idee: Hash-Funktion (mit Views) Verfahren: Wähle Hash-Funktion, z.b. n: Anzahl Cache-Server 5 3 i + 1 mod 4 2 9 4 3 6 0 1 2 3 Views Verschiedene Nummerierungen der Web-Cache notwendig Anzahl der Duplikate proportional zu der Anzahl der Views 2 i + 2 mod 3 View 1 5 2 4 5 2 4 9 6 3 0 1 2 View 2 0 1 2

Anforderungen an Ranged Hash-Funktionen Monotonie nach dem Hinzufügen neuer Caches (Buckets) sollten keine Seiten (Items) zwischen alten Caches verschoben werden Balance Alle Caches sollten gleichmäßig ausgelastet werden Spread (Verbreitung,Streuung) Eine Seite sollte auf eine beschränkte Anzahl von Caches verteilt werden Load Kein Cache sollte wesentlich mehr als die durchschnittliche Anzahl von Seiten enthalten

1. Monotonie Seiten, die im umfassenderen View einem Cache zugewiesen sind, werden nicht umorganisiert d.h. nach dem Hinzufügen neuer Buckets dürfen (alte) Seiten nur in neue Buckets verschoben werden Formal: Für alle gilt: View 1: View 2: Seiten Caches Caches Seiten

2. Balance Für jeden View V ist die Hash-Funktion f V (i) balanciert Für eine Konstant c und alle gilt: View 1: View 2: Seiten Caches Caches Seiten

3. Spread Die Verbreitung (i) (spread) einer Seite i ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) View 1: View 2: View 3:

4. Load Die Last λ(b) (load) eines Caches b ist die Gesamtanzahl aller notwendigen Kopien (über alle Views) wobei := Menge aller Seiten, die Bucket b zugewiesen werden (in View V) View 1: View 2: λ(b 1 ) = 2 λ(b 2 ) = 3 View 3: b 1 b 2

Bälle in Körbe (balls into bins) Lemma Werden m Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die erwartete Zahl von Bällen pro Korb ist m/n. 2. Die W keit, dass k Bälle auf einen bestimmten Korb fallen: Lemma Werden m=n Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die W keit, dass ein (bestimmter) Korb leer bleibt, ist konstant (konvergiert gegen 1/e). Die erwartete Anzahl leerer Körbe konvergiert gegen n/e. 2. Die W keit, dass mehr als k log n/log log n Bälle auf einen bestimmten Korb fallen, ist höchstens O(n -c ) für konstante k und c.

Bälle in Körbe (balls into bins) Lemma Werden m= k n log n Bälle zufällig in n Körbe geworfen (für geeignete Konstante k). Dann gilt: 1. Die W keit, dass mehr als c log n Bälle auf einen Korb fallen ist höchstens O(n -Ω(1) ) 2. Die W keit, dass ein Korb leer bleibt ist höchstens O(n -Ω(1) ) Beweis: Übungsaufgabe!

Familien von Hash-Funktionen Für jede Hash-Funktion existiert eine Worst-Case-Eingabe Daher betrachtet man grundsätzlich Familien von Hash-Funktionen Genauso definieren wir Familie von Ranged-Hash-Funktionen für geg. Views und Caches Wir gehen im folgenden davon aus, dass eine Hash-Funktion sich verhält wie ein perfektes Zufallsereignis Gleichwahrscheinlich Unabhängig Die Elemente werden wie Bälle in Körbe verteilt.

Konsistentes Hashing Theorem Es gibt eine Familie von Ranged Hash-Funktionen F mit den folgenden Eigenschaften: Jede Funktion f F ist monoton Balance: Für jeden View gilt C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View V/C = konstant (#Views / #Caches) I = C (# Seiten = # Caches) Spread: Für jede Seite i ist mit W keit Load: Für jeden Cache b ist mit W keit

Die Konstruktion 2 Hash-Funktionen auf das reelle Intervall [0,1] bildet k log C Kopien des Caches b zufällig auf [0,1] ab bildet Web-Seite i zufällig auf Intervall [0,1] ab := Cache, der den Abstand minimiert. Caches (Buckets): View 1 0 1 View 2 0 1 Webseiten (Items):

1. Monotonie := Cache, der den Abstand minimiert. Für alle gilt: Beobachtung: Blaues Intervall sowohl in V 2 als auch in V 1 leer! View 1 0 1 View 2 0 1

2. Balance Balance: Für jeden View gilt Wähle festen View und eine Web-Seite i Wende nun die Hash-Funktionen und an. Unter der Annahme, dass diese sich wie zufällige Abbildungen verhalten, wird jeder Cache mit der gleichen Wahrscheinlichkeit ausgewählt. Caches (Buckets): View 0 1 Webseiten (Items):

3. Spread (I) (i) = Gesamtanzahl aller notwendigen Kopien (über alle Views) C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View V/C = konstant (#Views / #Caches) I = C (# Seiten = # Caches) jeder User kennt mindestens einen Anteil von 1/t der Caches Für jede Seite i ist mit W keit Beweisidee: Von Jedem View fällt ein Cache in ein Intervall der Länge t/c (mit hoher W keit) Die Anzahl der Caches in diesem Intervall liefert eine obere Schranke für die Verbreitung 0 t/c 2t/C 1

3. Spread (II) Beweis: Betrachte Intervalle der Länge t/c Caches insgesamt: k C log C zufällig verteilt über C/t Intervalle C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View V/C = konstant (#Views / #Caches) I = C (# Seiten = # Caches) O(N t log N) Bällen in N Körbe mit N = C/t Mit W keit 1-N -Ω(1) sind höchstens O(t log C) Caches in jedem Intervall Caches (alle Views) 0 t/c 2t/C i 1 Anzahl Caches in benachbarten Intervallen von Item i O(t log C)

3. Spread (III) Beweis: Betrachte Intervalle der Länge t/c Caches in einem View: C/t log C zufällig verteilt über C/t Intervalle O(N log N) Bällen in N Körbe mit N = C/t Mit W keit 1-n -Ω(1) ist mindestens ein Cache in einem Intervall C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View V/C = konstant (#Views / #Caches) I = C (# Seiten = # Caches) View 1 View 2 i i 0 t/c 2t/C 1 In der Nähe von Item i ist in jedem View ein Cache

3. Spread (IV) C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View Beweis: V/C = konstant (#Views / #Caches) Betrachte Intervalle der Länge t/c I = C (# Seiten = # Caches) Mit W keit 1-n -Ω(1) ist mindestens ein Cache in einem Intervall Also wird die Webseite i immer lokal gespeichert d.h. in ihrem Intervall oder im Nachbarintervall gespeichert Mit W keit 1-n -Ω(1) sind höchstens O(t log C) Caches in jedem Intervall Obere Schranke für Verbreitung: O(t log C) View 1 View 2 i i 0 t/c 2t/C 1 In der Nähe von Item i ist in jedem View ein Cache

4. Load (I) Last (load): λ(b) = Gesamtanzahl aller notwendigen Kopien (über alle Views) wobei := Menge aller Seiten, die Bucket b zugewiesen werden (in View V) Für jeden Cache b ist mit W keit Beweisidee: Wir betrachten wieder Intervalle der Länge t/c) Mit hoher W keit fällt ein Cache aus jedem View in eines dieser Intervalle Die Anzahl der Items in diesem Intervall liefert eine obere Schranke für die Last 0 t/c 2t/C 1

4. Load (II) Beweis: Web-Seiten insgesamt: k C log C zufällig verteilt über C/t Intervalle O(N t log N) Bällen in N Körbe mit N = C/t C Anzahl aller Caches (Buckets) C/t Mindestanzahl Caches pro View V/C = konstant (#Views / #Caches) I = C (# Seiten = # Caches) Mit W keit 1-n -Ω(1) sind höchstens O(t log C) Web-Seiten in jedem Intervall Mit W keit 1-n -Ω(1) ist für jeden View mindestens ein Cache in jedem Intervall Also wird die Webseite i immer lokal gespeichert d.h. in ihrem Intervall oder im Nachbarintervall gespeichert Mit W keit 1-n -Ω(1) sind höchstens O(t log C) Web-Seiten in jedem Intervall Jeder Cache hat höchstens O(t log C) Web-Seiten View 1 View 2 0 t/c 2t/C 1

Zusammenfassung Web-Caching durch konsistentes Hashing Familie von Ranged Hash-Funktionen Seiten und Caches werden auf das Einheitsintervall abgebildet Zuordnung durch minimalen Abstand 0 1 Die Funktionen besitzen folgende Eigenschaften: Jede Funktion aus dieser Familie ist monoton Balance: Für jeden View gilt Spread: Für jede Seite i ist mit W keit Load: Für jeden Cache b ist mit W keit

Vielen Dank! Ende der 10. Vorlesung Nächste Übung: Mo. 27.06.2005 Nächste Vorlesung: Mo. 27.06.2005 Heinz Nixdorf Institut & Institut für Informatik Fürstenallee 11 33102 Paderborn Tel.: 0 52 51/60 66 92 Fax: 0 52 51/62 64 82 E-Mail: schindel@upb.de http://www.upb.de/cs/schindel.html