• Keine Ergebnisse gefunden

von P2P-Netzwerken Skalierbarkeit

N/A
N/A
Protected

Academic year: 2022

Aktie "von P2P-Netzwerken Skalierbarkeit"

Copied!
95
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Skalierbarkeit

von P2P-Netzwerken

(2)

Skalierbarkeit

von P2P-Netzwerken

Inhalt

1. Einführung

2. Graphentheorie 3. Freenet

4. Gnutella

5. Zusammenfassung

(3)

Skalierbarkeit

von P2P-Netzwerken

1. Einführung

1.1. Leistung und Fehlertoleranz

1.2. Skalierbarkeit

(4)

1. Einführung

1.1. Leistung und Fehlertoleranz

1.1.1. Leistung

1.1.2. Fehlertoleranz

(5)

1.1. Leistung und Fehlertoleranz

1.1.1. Leistung

- System vom Netz abhängig

- Nachrichten, die über mehrere Hops (Etappen) geschickt werden, verursachen mehr Aufwand

- Hops fügen der Bandbreite Last hinzu

- Anzahl der Hops reduzieren

(6)

1.1. Leistung und Fehlertoleranz

1.1.1. Leistung

- Zahl der Anbieter und Verbraucher sollte ausgeglichen sein

- Free riders verursachen Leistungsrückgang - Abnahme der Leistung führt zum Wegzug

Gefahr: Abwärtsspirale

- Wichtig: Auswirkung von free riding auf Leistung muss

berücksichtigt werden

(7)

1.1. Leistung und Fehlertoleranz

1.1.2. Fehlertoleranz

- Betrieb des Netzwerks hängt von den einzelnen Benutzern ab

- Quellen sind nicht immer zu erreichbar

Beispiel: Wenn der Benutzer nicht mehr mit dem Netzwerk verbunden ist

- Bezeichnung: Zufallsfehler (random failure)

(8)

1.1. Leistung und Fehlertoleranz

1.1.2. Fehlertoleranz

- gezielte Hacker-Angriffe - Ausfallübliche Systeme - Wichtig beim Entwurf:

Redundanz und Leistungsrückgang

Sollen Leistung und Zuverlässigkeit erzielt werden, kommt

dem Begriff der Skalierbarkeit eine Schlüsselrolle zu

(9)

1. Einführung

1.2. Skalierbarkeit

1.2.1. Was ist Skalierbarkeit ?

1.2.2. Wieso ist Skalierbarkeit wichtig ?

(10)

1.2. Skalierbarkeit

1.2.1. Was ist Skalierbarkeit ?

- Allgemeine Definition:

Ist eine Bezeichnung dafür, dass ein Objekt in seiner Größe zu verändern ist. (Quelle: Brockhaus)

- Netzwerk bezogen:

Das System so gut wie möglich an sich ändernde Umweltbedingungen bzw. Anforderungen

anzupassen.

(Quelle: www.wiwi.uni-tuebingen.de/grund02/Kapitel2/2.3_Netzwerke.htm)

(11)

1.2. Skalierbarkeit

1.2.2. Wieso ist Skalierbarkeit wichtig ?

- Nachfrage nach einem information-sharing system ist groß

Beispiel: Napster - Für Entwickler wichtig:

Welch für ein Ausmaß kann das Netz in der

Zukunft einnehmen ?

(12)

1.2. Skalierbarkeit

1.2.2. Wieso ist Skalierbarkeit wichtig ?

Kommt es zu einem Datenüberlauf (data overflow), wenn Index Daten gespeichert werden ?

Wird das Netwerk von Daten überflutet, wenn die Broadcast Funktionalität genutzt wird ?

- Skalierbarkeit wird auch durch Leistung beeinflusst:

Designunwirtschaftlichkeiten

10 Tausend Benutzer ☺

(13)

1.2. Skalierbarkeit

1.2.2. Wieso ist Skalierbarkeit wichtig ?

- Ein einfaches Netzwerkmodell, kann also schnell zu schlechten Ergebnissen bezüglich Skalierbarkeit führen - Wie baut man ein solches Netzwerk auf ?

- Wie findet man die kürzesten Routen ?

Daher ist es wichtig die Graphentheorie zu

wiederholen

(14)

Übersicht

1. Einführung

2. Graphentheorie 3. Freenet

4. Gnutella

5. Zusammenfassung

(15)

2.1 Motivation:

• Begriffe wie Hops, Pfadlängen, Erreichbarkeit von Peers haben eine Äquivalenz in der Graphentheorie

• Graphen sind abstrakte Repräsentationen von Netzwerken

• Eigenschaften von Graphen für P2P – NW nutzen

 Betrachtung von Graphen

2. Exkurs in die Graphentheorie

(16)

2.1 Motivation und Verlauf

2.2 Graphen – Charakteristika

- Zusammenhang von Graphen - Charakteristische Pfadlänge 2.3 „small – world“ – Graphen

Verlauf

(17)

2.2 Graphen – Charakteristika

Abb,01

(18)

gerichteter Graph:

Abb,02

(19)

• Frage,

- nach Möglichkeit,

- von einem beliebigen Knoten - über eine Kette von Kanten

- zu irgendeinem beliebigen anderen Knoten zu kommen

- welche Peers kommunizieren können - theoretisch erreichbare Peers

 theoretisch erreichbare Daten

 „Wert“ für Nutzer

Zusammenhang vom Graphen(connectivity):

(20)

• der Zusammenhang ist transitive Relation

- gibt es Folge von Kanten

- von Knoten A nach Knoten B und - von Knoten B nach Knoten C gibt

von A nach C

- sind Teilgraphen A,B - zusammenhängend

- Es ex. eine Verbindung von A nach B

 Graph C = (A U B) auch zusammenhängend

Transitivität (des Zusammenhangs):

(21)

Abb,03

(22)

• Bei Zwei jeweils zusammenhängenden Teilgraphen:

- nur eine Verbindung nötig, damit gesamter Graph zusammenhängend

- Entfernen einer kritischen Verbindung kann zusammenhängenden Graphen trennen

• Bei (schlechten) Netzwerken:

- nur eine überlastete Verbindung kann eine ganze Gruppe abschneiden

Folgerungen aus der Transitivität:

(23)

• Def.(Oram):

- für jedes Paar Knoten der kürzeste Pfad, L = Durchschnitt über alle Pfade

• Def.(math.):

Charakteristische Pfadlänge (L):

 

) 1 (

p L

Knoten zwei

zw.

Pfade möglicher

# 1)

- n(n -

Peers) oder

User (bzw.

Knoten

# n

-

; n 1,2,..., k

i, -

k Knoten nach

i Knoten von

Pfad kürzester

p -

n 1 k

n

k

i 1

i

ik ik

 

 

n

n

(24)

• L ist:

- Maß, wie weit Knoten im Netzwerk voneinander entfernt sind

- bei P2P: kürzester Pfad(x,y)

= #Hops von x nach y

- Maß für nötigen Aufwand für Kommunikation

- obere Schranke für Effizienz von Suchalgorithmen

Wozu charakteristische Pfadlänge?

(25)

regulärer Graph:

Abb,04

(26)

• regulärer Ring mit:

- n = 4096 Knoten

- k = 8 Kanten pro Knoten

• L ~ n/2k

- n/k ... # Hops zum gegenüberliegenden Knoten - /2 , da Durchschnitt über alle Paare

• L ~ 4096/2*8 = 256

 sehr große durchschnittliche # Hops

 sehr großer Aufwand für Kommunikation

 viele Knoten praktisch nicht erreichbar

Beispielrechnung:

(27)

zufälliger Graph:

Abb,05

(28)

• zufälliger Graph mit:

- n = 4096 Knoten

- k = 8 Kanten pro Knoten (im Durchschnitt)

• L ~ log(n)/log(k) (nach Oram)

• L ~ log(4096)/log(8) = 4

 kleine durchschnittliche # Hops

 vertretbarer Aufwand für Kommunikation

Beispielrechnung(zufälliger Graph):

(29)

• Problem:

- Zusammenhang von zufälligen Graphen

• Frage nach Graphen

- mit möglichst kleiner charakteristischer Pfadlänge und - möglichst starkem Zusammenhang

„small-world“ – Graphen

(30)

• Begriff „small-world“:

- kleine Welt

- aus einem Experiment auf dem sozialen Netzwerk der USA

2.3 „small-world“ - Graphen

(31)

• das „latter – passing – experiment“:

- 1967, Harvard Professor Stanley Milgram - 160 Briefe

- von Omaha -> Boston - -> ... nur über Bekannte

• Ergebnis:

- 42 Briefe angekommen mit durchschnittlich 5,5 Mittelsmännern

 überraschend gering

 Begriff: „small – world“

(32)

• Schlussfolgerungen:

- soz. Netz der USA zusammenhängend - charakteristische Pfadlänge L ~ 6

• Problem:

- starke Häufungen („cliquish“, clustering)

(die meisten Leute, die du kennst, kennen sich auch gegenseitig)

-intuitiv sollte bei einem so großen Netzwerk

(n~200Mio) auch L größer sein

(33)

• Erklärung:

-Verteilung der Verbindungen(Kanten) - einige relativ isoliert,

- andere viele und weitreichende Verbindungen

Können als Brücken fungieren - im Experiment:

- ¼ aller erfolgreichen Kettenbriefen durch eine Person

- ½ durch 3 Leute

Einige wenige „shortcuts“ haben die charakteristische

Pfadlänge rapide gesenkt

(34)

• Wichtigsten Merkmale:

- L = charakteristische Pfadlänge - C = Cluster - Koeffizient

• Def. C:

- Maß für die Häufungen (clustering)

(wie viele Nachbarn eines Knotens kennen sich gegenseitig?)

- k Nachbarn -> k*(k-1)/2 mögliche Verbindungen - Cv = Verhältnis ex. zu mögl. Verbindungen

- C = Durchschnitt über alle Knoten

Analyse von „small-world“ - Graphen

(35)

•Def. C:

n C C

) 1 (

2

* ) .

C (

v alle über

C tt von Durchschni

C -

wirklich ex.

Kanten dieser

Teil lte

der wievie :

C -

ex.

können Kanten

1)/2 -

(k k max -

Knoten Anzahl

...

n -

Nachbarn k

hat Knoten v

-

n 1 i

v V

v v

v v

v

 

 

v v k k

Kanten

ex

(36)

- n = Anzahl Knoten

• Reguläre Graphen:

- C relativ groß

- L wächst linear mit n

• Zufällige Graphen:

- C sehr klein

- L wächst logarithmisch mit n

Reguläre vs. zufällige Graphen:

(37)

Vom regulären Graphen zur „small world“

• Ausgehend von

- einem Ringgitter mit - n Knoten,

- k Kanten pro Knoten

• zu vergleichbarem - zufälligen Graph - n Knoten,

- durchschnittlich k Kanten pro Knoten

(38)

regulärer Graph:

Abb,04

(39)

zufälliger Graph:

Abb,05

(40)

• Übergang:

- jede Kante mit

- Wahrscheinlichkeit p neu verknüpfen

 fließender Übergang von regulär zu zufällig

 möglich das „Dazwischen“ zu untersuchen

(41)

Abb,06

(42)

• Untersuchung der Graphen:

- experimentell, statistisch - auf C(p) und L(p)

- in Abhängigkeit von p

 2 Diagramme mit - x-Achse: p

- y-Achse: C(p) und L(p)

• für Vergleich von C(p) mit L(p) Normierung:

- C(p) / C(0) - L(p) / L(0)

 Verhältnis zu regulärem Graphen

(43)

Diagramm C(p)/C(0) und L(p)/L(0) nach p:

Abb:07

(44)

• zu beachten:

- x- und y- Achse logarithmische Skalen

• Ergebnisse:

- L(p) sinkt sehr schnell

- C(p) bleibt anfangs relativ unverändert

 breites Intervall von p, wo - L(p) fast L(zufällig) und - C(p) >> C(zufällig)

Charakteristika von „small-world“

(45)

• sofortiger Abfall von L(p) durch „shortcuts“

• nichtlinearer Effekt, da bei kleinen p die Pfadlänge nicht nur von einem Paar verringert wird, sondern auch

zwischen dessen Nachbarn, Nachbarn von Nachbarn, etc. .

Transitivität

• auf lokaler Ebene sind „small-world“-Graphen nicht von

regulären Graphen unterscheidbar

(46)

Schlussfolgerungen für (P2P-)Netzwerke:

• „small - world“ auf lokaler Ebene nicht zu erkennen

• möglich mit wenig Aufwand aus einem regulären Netzwerk ein „small-world“-Netzwerk zu machen

• „small-world“-Netzwerke haben bessere

charakteristische Pfadlängen als reguläre Netzwerke

(47)

Übersicht

1. Einführung

2. Graphentheorie 3. Freenet

4. Gnutella

5. Zusammenfassung

(48)

Freenet

3 Ist Freenet Skalierbar?

3.1 P2P, Suchalgorithmus 3.2 Beispiele, Small-world 3.3 Fehlertoleranz

3.4 Fazit

(49)

1. Kommunikation: Abhängig vom Netzwerk

• Verbindungsqualität (56k Modem), Bandbreite

• Parallelität --> Traffic-control, Load balancing 2. Vermittlung von Nachrichten

• Zeit, Bandbreite, nicht trivial

• unerreichbare Peers, TCP/IP time out

• Mehrere Peers, (Modem), Anzahl der Hops -->

Anzahl der Hops reduzieren

3. Angebot und Nachfrage müssen ausgeglichen sein

• Abwärtsspirale wegen "Free riders“

Dezentralisiertes P2P

(50)

(am Beispiel von Milgram)

1. Nicht wen sondern was; alle Peers werden angesprochen

2. Small-world Netzwerk (2 wichtige Punkte) 1. Verbunden!

Redundantes, Inkrementelles Wachstum 2. kurze Wege zwischen beliebige Peers Probleme!

Wie viele Knoten? Anonym?

Freenet Suchalgorithmus

(51)

Annahmen und Bedingungen

• 1000 Knoten (identisch und durchnummeriert)

• jeweils 50 Datei

• jeweils 4 Verbindungen zu anderen Knoten

(Modulo 1000: Knoten 0 kennt 998, 999, 1 und 2)

• Hash-Funktion, um Schlüssel zu erzeugen

• gerichteter normaler Graph mit n=1000, k=4

Simulationsbeispiel (Theodore Hong)

(52)

Simulationsbeispiel (Theodore Hong)

(53)

Annahmen und Bedingungen

• Pfadlänge n/2k ergibt 125

• Clustering Koeffizient (k*(k-1))/2 ergibt 0,5 Zufälliger Graph zum Vergleich

• Pfadlänge 5

• Clustering Koeffizient 0,004

Simulationsbeispiel (Theodore Hong)

(54)

Ablauf in einem Netzwerk

• Knotenauswahl ist zufällig (pro Zeiteinheit)

• Request oder Insert wird zufällig entschieden

• Request: Schlüssel zufällig auswählen

• Insert: Schlüssel zufällig hinzufügen

• Hops-to-live: 20

• Alle 100 Einheiten wird der Graph untersucht.

Simulationsbeispiel (Theodore Hong)

(55)

Auswertung über 10 Versuche mit jeweils 5000 Einheiten

• Small-world Effekt

• charakteristische Pfadlänge wie zufälliger Graph

• Clustering Koeffizient wie normaler Graph

• Ist das Performance?

• Skalierbarkeit?

Simulationsbeispiel (Theodore Hong)

(56)

Simulationsbeispiel (Theodore Hong)

(57)

Simulationsbeispiel (Theodore Hong)

Request Performance

(58)

Simulationsbeispiel (Theodore Hong)

(59)

Simulationsbeispiel (Theodore Hong)

(60)

Wachstumsbeispiel (Theodore Hong)

(61)

Wachstumsbeispiel (Theodore Hong)

Wachsendes Netzwerk

• 20 Knoten, Hops-to-live = 20

• alle 5 Zeiteinheiten einen neuen Knoten hinzufügen

• “Introductory“ Knoten (zufällig gewählt) mit

Nachrichten Hops-to-live = 10

(62)

Wachstumsbeispiel (Theodore Hong)

(63)

Wachstumsbeispiel (Theodore Hong)

Wachsender Netzwerk

• Pfadlänge ist klein und bleibt klein

• 50% aller Anfragen erfolgen mit weniger als 5 Hops

• 84% aller Anfragen erfolgen mit weniger als 20 Hops

• besser als 1. Beispiel (Median), ansonsten

ähnliche Charakteristik

(64)

Fehlertoleranz (am 2. Beispiel)

(65)

Fehlertoleranz (am 2. Beispiel)

P( n ) ~ 1/ n 1.5

(66)

Fehlertoleranz (am 2. Beispiel)

(67)

Skalierbarkeit, auf dem Weg

y = -k x + b

• Log p = -k log L + b

p = A * L -k

• „Scale-free“ Relation, da Anzahl der Knoten nicht

vorkommt

(68)

Skalierbarkeit, auf dem Weg

(69)

Freeriding in Freenet

• Bietet ein Knoten nichts an, wird er ignoriert

• Stellt ein Knoten anfragen, belastet er der Netzwerk

• Blockiert ein Knoten neue Anfragen, wird er ignoriert

• Lässt er Anfragen fallen, ist er böswillig

(70)

Skalierbarkeit von Freenet

(71)

Skalierbarkeit von Freenet

(72)

Skalierbarkeit von Freenet

• Charakteristische Pfadlänge ändert sich logarithmisch

• log n/ log k

• Aber! aktuelle Pfadlänge hängt vom Routing ab

(73)

Übersicht

1. Einführung

2. Graphentheorie 3. Freenet

4. Gnutella

5. Zusammenfassung

(74)

Gnutella

4 Ist Gnutella skalierbar?

4.1 Kurze Wiederholung

4.2 Wie sieht der Graph aus?

4.3 Traffic

4.4 Freeriders

4.5 Fazit

(75)

4.1 Kurze Wiederholung

• Suche erfolgt durch Anfragen (mind. 22 Byte)

• Diese werden per Broadcast an alle Nachbarn gesandt.

• Jeder Query hat eine Lebensdauer

(hops-to-live / Time To Live TTL)

(76)

4.1 Kurze Wiederholung

• Jede ankommende Nachricht wird quittiert.

• Auf jeden Fall wird die Anfrage weiter-

geleitet (wieder an alle Nachbarn) außer

wenn Lebensdauer erloschen.

(77)

Gnutella

4 Ist Gnutella skalierbar?

4.1 Kurze Wiederholung

4.2 Wie sieht der Graph aus?

4.3 Traffic

4.4 Freeriders

4.5 Fazit

(78)

4.2 Wie sieht der Graph aus?

• Für die vereinfachte Analyse nehmen

wir eine Voreinstellung von n=3 aktiven

Verbindungen an.

(79)

4.2 Wie sieht der Graph aus?

• Aufgrund der Art des

Verbindungsaufbaus entsteht ein

Zufallsgraph (random graph)

(80)

Gnutella

4 Ist Gnutella skalierbar?

4.1 Kurze Wiederholung

4.2 Wie sieht der Graph aus?

4.3 Traffic

4.4 Freeriders

4.5 Fazit

(81)

4.3 Traffic

• Pro Anfrage entstehen mind. 22 Byte Daten (Ping)

• Angenommen 1 Anfrage pro Teilnehmer pro Sekunde neu erzeugt

• Ergibt bei n = 1000 3 * 22 * 1000 Byte

= 66.000 Byte/s = 64,45 MB/s

• Bei n = 1.000.000  62,94 GB/s

(82)

4.3 Traffic

• Da bei jedem Peer die Nachricht

vermehrt wird, würde die Zahl pro Hop um den Faktor (#Nachbarn) Hop steigen.

• 1.000.000 * 3 1 = 3.000.000 Anfragen + 3.000.000 Neue = 6.000.000

 125,89 GB nach 1. Hop

(83)

Quelle: [ORAM01]

4.3 Traffic

(84)

4.3 Traffic

Betrachten eines einzelnen Teilnehmer:

• 3 Verbindungen

• 30 Byte im Durchschnitt pro Anfrage (70 mit Kopfdaten der unteren TCP-

Schichten)

• 10 Anfragen pro Sekunde ankommend

• 25% Anteil an Eintreffenden Daten

(85)

4.3 Traffic

• 3 * 70 * 10 * 4 = 8400 Byte/s

= 67,2 Kbit/s

• Vergleich dazu ein 56K Modem

• Mit steigender Nutzerzahl steigt auch

die Anzahl an Anfragen pro Sekunde

(86)

4.3 Traffic

• Alternative Möglichkeit:

TTL (Time To Live) herabsetzen

 Netz wird nicht mehr komplett abgedeckt

• „super peers“ – Bündeln von

Teilnehmern

(87)

Gnutella

4 Ist Gnutella skalierbar?

4.1 Kurze Wiederholung

4.2 Wie sieht der Graph aus?

4.3 Traffic

4.4 Freeriders

4.5 Fazit

(88)

4.4 Freeriders

Welche Auswirkung haben Freeriders?

• Bietet zwar keine Daten an, kostet aber einen Hop

• Oder leitet Pakete erst gar nicht weiter

(89)

4.4 Freeriders

• So oder so verschlechtert ein Freerider das Netzwerk

• Erzeugt Traffic (Anfragen) ohne Nutzen

für die Gemeinschaft

(90)

4.5 Fazit

• Benötigte Bandbreite wächst linear mit Teilnehmerzahl

• Hohe Bandbreiten benötigt um effizient zu funktionieren

• Bei großer Teilnehmerzahl Gefahr der

Netzspaltung

(91)

4.5 Fazit

 Gnutella ist nicht skalierbar!

(92)

Übersicht

1. Einführung

2. Graphentheorie 3. Freenet

4. Gnutella

5. Zusammenfassung

(93)

5. Zusammenfassung

(94)

5. Zusammenfassung

• Ist Vergleich überhaupt möglich?

• Daten basieren nur auf theoretischen Netzen bzw. Stichproben

• Wie realistisch sind die Simulationen

der Netze?

(95)

Quellen

• [ORAM01] Oram (Editor), Peer-to-Peer - Harnessing the Power of Disruptive Technologies, Oreilly, 2001

• Duncan J. Watts & Steven H. Strogatz, Collective dynamics of

‚small-world‘ networks, Macmillan Publishers Ltd 1998,VOL 393, 1998

• www.slyck.com, gesehen 10.05.2004

• www.cs.washington.edu, gesehen 10.05.2004

• http://p2p.at-web.de/gnutella.htm, gesehen 10.05.2004

• www.wiwi.uni-

tuebingen.de/grund02/Kapitel2/2.3_Netzwerke.htm, gesehen

12.05.2004

Referenzen

ÄHNLICHE DOKUMENTE