PTP Flashcards
1
Q
Beispiel für PTP-Systeme
A
E-Mail, BitTorrent, Skype, Streaming-Lösungen
2
Q
Merkmale von PTP-Systemen
A
- Peers (“Clients”) sind meist Teil eines Overlay Netzwerks (bilden in einem anderen Netzwerk logische Verbindungen)
- Kommunizieren direkt und übernehmen Client -und Serveraufgaben
- Peers haben wechselnde Adressen im darüberliegenden Netzwerk
- Sind gleichberechtigte Partner im System
- Können ausfallen, sind nicht zuverlässig verfügbar
3
Q
Napster
A
- Kein richtiges PTP System, da Indexserver
4
Q
Gnutella 0.4
A
- Bootstrapping mit Liste stabiler peers + gwebcache (server mit liste aktuell aktiver peers)
- Ping mit ID, TTL und Hop-Count
- Join
○ Pings werden weitergeleitet, Duplikate vermieden, bei TTL=0 verworfen
○ Pongs werden zurückgeroutet, anhand es Weges des zugehörigen Pings - Suche
○ Query und QueryHit ähnlich wie Ping und Pong, Download direkt via HTTP - Lange antwortzeiten, sucherfolg mit glück
- Hat small world eigenschaften
5
Q
Gnutella 0.6
A
- Hierarchisches overlay mit ultrapeers
- Query Routing Protocol:
○ Dateiregistrierung beim Ultrapeer, Suche nur im Ultrapeer-Netzwerk
○ Dynamic Querying: 1. lokale Suche, 2. kleine Suche, 3. große Suche mit geschätztem TTL aus kleiner Suche
- Query Routing Protocol:
6
Q
Clustering-Koeffizient
A
- Kanten zwischen Nachbarn / mögliche Kanten zwischen Nachbarn
- Bedeutet wahrscheinlichkeit, dass zwei nachbarn selbst nachbarn sind
7
Q
Zufallsgraphen
A
- Haben oft viel kleineren clustering-koeffizienten als reale netze
- Kennzahlen: Knotengrad, Durchschnittliche Pfadlänge
8
Q
Small world (Graph)
A
- Kleine durchschn. Pfadlänge, hoher Clustering Koeffizient
- Gitter, Konten mit 4 Nachbarn + 1 Fernkante vernetzt
9
Q
Skalenfreie Netze
A
- Wenige stark vernetzte, viele schwach vernetzte Knoten
- Pareto-Verteilung
- Entsteht, wenn neu hinzukommende knoten sich mit einem knoten mit hohem knotengrad verbinden
- Robustheit bei zufälligen ausfällen, aber anfällig für gezielte angriffe
10
Q
DHT + Beispiele
A
Beispiele: Gnutella, CAN, CHORD, Distance Halving und Kademlia
11
Q
CAN
A
- Zustand: O(d)⁆, Routing O(dn^(1/d) )
- Konstanter Grad, polynomieller Durchmesser
- Quadrat, Schlüssel in 0..1 + 0..1, erst horizontal dann vertikal teilen
- Soft state
- Variationen:
○ Dimensionen: mehr Routingeffizienz
○ Realitäten: mehr Robustheit, da Schlüssel bei anderen Peers, und auch etwas mehr Routingeffizienz
○ Underlay-aware-routing mir RTT (roundtriptime): bessere Latenz
○ Überladen von Zonen: reduziert pfadlänge (wegen größerer gebiete) und latenz und robustheit, aber komplexer
○ Mehrere Hashfunktionen: Robustheit, Pfadlänge, Latenzoptimierung mit simultanen Anfragen möglich - Caching und Replikation möglich: Hot Spots vermeiden
12
Q
Chord
A
- Ring, 0..2^m−1
- Zustand O(log n), Routing O(log n)
- Logarithmischer Durchmesser, logarithmischer Grad
- Predecessor/Successor
- Successor-Routing O(n), Größe der Fingertabelle: O(log n)
- Stabilize: Nachfolger nach Vorgänger fragen
- Fix Fingers
- Check Predecessor
- Variationen:
○ Successor-Listen: Robustheit und dabei sogar effizient
13
Q
Overlay Prinzipielle Schranken
A
- Bei d ausgehenden kanten in höchstens h Schritten < d^(h1) Knoten erreichbar
- Tradeoff zwischen Grad und Durchmesser
14
Q
Distance Halving
A
Gradminimierte Netzwerke: Kontinuierliche Graphen: Distance Halving
- Konstanter Grad, logarithmischer Durchmesser - Routing in O(log n) Schritten, Nachbarschaftsgröße O(1)
15
Q
Kademlia
A
- UDP basiert, daher ist Zustandsgröße kein großes Problem: k-Buckets
- ID ist Bitstring (160 im Original-Paper)
- XOR als Abstandsmetrik, max. k Einträge in einem Bucket
- Nutzt fremden datenverkehr um routinginformationen zu gewinnen
- Logarithmisches Routing
- Schlüssel werden auf k Peers abgelegt für Redundanz
- Suche nach k nächsten Peers einer ID
○ K nächste peers aufstellen und alpha=3 Peers eine Find_Node anfrage schicken (Parallel)
○ Antworten in liste einsortieren und immer alpha=3 anfragen parallel verschicken an die nächsten peers der aktuellen liste
○ Alpha=1 wie chord, höher desto schneller aber auch mit mehr last - Caching als soft-state bei dem nächsten peer, der den schlüssel nicht hatte
- Join: 1. Suche nach eigener ID für nachbarn und dann Suche nach zufälligen Ids der jeweiligen Buckets zur Befüllung der Buckets und zum Bekanntmachen
- Republish alle Stunde: lokale suche und replizierung der schlüssel auf k nächste peers