10.Vorlesung - Prof. Dr. Christian Baun

Transcription

10.Vorlesung - Prof. Dr. Christian Baun
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
10.Vorlesung Cluster-, Grid- und Cloud-Computing
Hochschule Mannheim
Dr. Christian Baun
[email protected]
30.11.2011
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
1/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Wiederholung vom letzten Mal
Grid-Computing
Definitionen
Klassifikation
Unterscheidungen
Middleware-Systeme
UNICORE
Globus Toolkit
gLite
XtreemOS
dCache
Grid-Projekte
EGEE
EGI
D-Grid
Grid-Computing vs. Cloud-Computing
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
2/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Heute
Peer-to-Peer (P2P)
Grundlagen
Einsatzgebiete
Zentralisiertes P2P
Napster
Pures bzw. reines P2P
Gnutella Version 0.4
Hybrides P2P
Gnutella Version 0.6
FastTrack
BitTorrent
Verteilte Hashtabelle
Bitcoins
P2PTV
Wuala
P2P und Cloud
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
3/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Peer-to-Peer – Grundlagen
Ein Peer-to-Peer-System ist ein Verbund gleichberechtigter Knoten
Knoten werden als Peers bezeichnet
Knoten machen sich gegenseitig Ressourcen zugänglich
Jeder Knoten ist gleichzeitig Client und Server
Geeignet, um dezentral organisierte Arbeitsumgebungen aufzubauen
Andy Oram
A Peer-to-Peer system is a self-organizing system of equal, autonomous
entities (peers) which aims for the shared usage of distributed resources in a
networked environment avoiding central services.
Schreibweise
Eine einheitliche Schreibweise existiert nicht. Häufig wird Peer-to-Peer auch
P2P oder Peer-2-Peer (mit oder ohne Bindestriche) geschrieben
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
4/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Einsatzgebiete von Peer-to-Peer
Austausch von Daten (File Sharing)
Überwiegender Einsatz als Tauschbörsen
Ziel: Verteilung großer Datenmengen möglichst schnell an viele Benutzer
Problem von Urheberrechtsverletzungen
Zukünftige Verbesserungen sind besonders im Bereich der
Anonymisierung zu erwarten
Anwendungen: BitTorrent, Napster, Gnutella, Kazaa, Overnet
Kommunikation und Zusammenarbeit
Instant Messaging Systeme für Textnachrichten und Chat
Sicherer und anonymer Datenaustausch (Freenet)
Kostengünstige und hochverfügbare Groupware (Groove)
Anwendungen: ICQ, AIM, MSN, Jabber, Freenet, Groove, usw.
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
5/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Napster
Napster war der Pionier des File-Sharing
Entwickelt von Shawn Fanning (Student in Boston)
Aktiv von Juni 1999 bis Juli 2001
Napster war zentralisiertes P2P
Napster enthielt zentralisiertes Indexing
Clients laden ihre Dateiliste auf den Napster-Server
Clients befragen den Index-Server und erhalten eine vollständige
Anbieterliste
Datenaustausch erfolgte unmittelbar zwischen den Peers
Ab Dezember 1999: Massive juristische
Probleme mit der Musikindustrie und
Künstlern
2001: Napster hat 77 Millionen Benutzer
Juli 2001: Napster wird abgeschaltet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
6/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Napster (Häufiges Bild aus jenen Tagen. . . )
Bildquelle: Wikipedia
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
7/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Client-Server im Vergleich zu zentralisiertem P2P
Was sind die Vor-/Nachteile von zentralisiertem P2P im Vergleich zu
Client-Server?
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
8/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Vor- und Nachteile von zentralisiertem P2P
Vorteile:
Peers kommunizieren direkt miteinander
Server hat nur wenige Aufgaben
Sehr gute Erweiterbarkeit
Jeder weitere Peer verursacht nur wenig Last auf dem Server
Ausfall einzelner oder mehrerer Peers kann dem Netzwerk und der
Verfügbarkeit der Dienste nichts anhaben
Zentralisierte Dienste bieten eine hohe Leistung
Zentralisierter Dienst ist ein bekannter Einstiegspunkt
Neue Peers können leicht Teil des Systems werden
Nachteile:
Server verursachen Kosten (Strom, Stellfläche, Administration,. . . )
Ohne die zentralisierten Dienste funktioniert das System nicht
Zentralisierte Dienste sind immer ein Angriffspunkt
Juristische Angriffsfläche
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
9/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gnutella
Entwickelt von Justin Frankel und Tom Pepper bei Nullsoft (Winamp)
Quellcode unter der GNU General Public License (GPL)
März 2000: Erste Version
Grund für die Entwicklung
Steigende Probleme von Napster 1999/2000
Klagen der Musikindustrie
Napster verwendete Server zur zentralisierten Indexierung
Zentrale Server machen angreifbar!
Ziel: Entwicklung einer Alternative, die ohne Server auskommt
AOL – Eigentümer von Nullsoft – zog die Software zurück
Aber wenn der Quellcode schon mal unter der GPL freigegeben ist. . .
Bekannte Clients: LimeWire, Morpheus, Shareaza, BearShare
Gnutella ist heute ein Synonym für das Protokoll und weniger für eine
spezielle Software
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
10/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gnutella Protokoll Version 0.4
http://rfc-gnutella.sourceforge.net/developer/stable/index.html
Alle Peers sind gleichberechtigte Teilnehmer im Netzwerk
Es gibt keine zentralisierten Dienste (Server) =⇒ reines/pures P2P
Jeder Peer muss mindestens einen weiteren Knoten kennen
Jeder Peer verwaltet eine Liste von ihm bekannten Peers
Jeder Peer ist mit maximal 5 weiteren Peers aktiv verbunden
Suchaufträge sendet jeder Peer an
alle mit ihm aktiv verbunden Peers
Weiterleitungen nennt man Hops
Maximal 7 Hops pro Suchauftrag
Nachteile:
Suchanfragen dauern sehr lange
Netzwerk wird mit Suchanfragen
geflutet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
11/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Reines P2P im Vergleich zu reinem P2P
P2P ohne dedizierte Server bezeichnet man als reines oder pures P2P
Was sind die Vor-/Nachteile von reinem P2P?
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
12/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Vor- und Nachteile von reinem/purem P2P
Vorteile:
Keine Abhängigkeit von Servern
Peers kommunizieren direkt miteinander
Keine zentralen Angriffspunkte
System (Netzwerk) ist kaum zu zerstören
Ausfall einzelner oder mehrerer Peers kann dem Netzwerk und der
Verfügbarkeit der Dienste nichts anhaben
Höhere Selbstbestimmung der Benutzer
Bei Client-Server muss bei steigender Anzahl von Clients auch die
Serverleistung steigen
Kein Administrationsaufwand, da keine Server
Nachteile:
Schwieriger Einstieg
Es muss mindestens ein Peer bekannt sein
Suchanfragen sind eine starke Belastung für das Netzwerk
Listen von Daten und Peers müssen verteilt werden (hoher Overhead)
Beispiele für Reines P2P: Gnutella (Version 0.4) und Freenet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
13/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Technische Dateils von Gnutella 0.4 (1)
Das Protokoll von Gnutella 0.4 arbeitet mit TCP/IP-Verbindungen
Verbindungsaufbau
Als Verbindungsanfrage sendet der neue Client:
GNUTELLA CONNECT/0.4\n\n
Will der gewünschte Peer antworten, sendet er:
GNUTELLA OK\n\n
Danach können Gnutella-Nachrichten ausgetauscht werden
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
14/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Technische Dateils von Gnutella 0.4 (1)
Aufbau von Gnutella-Nachrichten:
Identifikation (16 Byte) Descriptor ID. Identifikation des sendenden Peers
Funktionscode (1 Byte). Payload Descriptor. Kann sein:
0x00
0x01
0x40
0x80
0x81
=
=
=
=
=
Ping (Existenz anderer Knoten erkunden)
Pong (Antwort auf eine Ping-Nachricht)
Push (Dateien herunterladen)
Query (Suchen im Gnutella-Netzwerk)
Query Hit (Antwort auf eine Query-Nachricht)
TTL (1 Byte). Gibt an wie viele Hops ein Paket machen darf
Wird bei jedem Schritt im Netzwerk um 1 dekrementiert
Ist der Wert 0, wird die Nachricht verworfen.
Hops (1 Byte). Zähler für die Hops
Wird bei jedem Schritt im Netzwerk um 1 inkrementiert
Datenlänge (4 Byte). Payload Length. Länge der Nutzdaten in Bytes
Bestimmt, wo die Nachricht aufhört und eine neue anfängt
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
15/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Nachrichten von Gnutella 0.4 (1)
Das Protokoll Gnutella 0.4 kennt 5 Nachrichten
Ping
Pong
Query
QueryHit
Push
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
16/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Nachrichten von Gnutella 0.4 (2)
Die Existenz anderer Knoten wird durch die Ping-Nachricht erkundet
Ping enthält keine weiteren Informationen
Hat ein Knoten eine Ping-Nachricht empfangen, kann er mit einer
Pong-Nachricht antworten
Die Antwort (Pong-Nachricht) enthält folgende Felder:
Port und IP-Adresse des antwortenden Peers
Anzahl der Dateien, die öffentlich heruntergeladen werden können
Summe aller Kilobytes der verfügbaren Dateien
Die Query-Nachricht dient zum Suchen im Gnutella-Netzwerk
Die Query-Nachricht enthält folgende Felder:
Kleinste Download-Bandbreite (in KB/sec), die der anfragende Peer
akzeptieren will (0 für jede beliebige Bandbreite)
Suchzeichenkette, meist Dateinamen, die Wildcards * enthalten dürfen
Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
17/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Nachrichten von Gnutella 0.4 (3)
Die QueryHit-Nachricht enthält die Antwort auf eine Query-Nachricht
Die QueryHit-Nachricht enthält folgende Felder:
Anzahl der Dateien, für die die Anfrage zutrifft
Port und IP-Adresse des antwortenden Peer
Download-Bandbreite (in KB/sec), die der antwortenden Peer bieten kann
(≥ der verlangten Download-Bandbreite)
Für jede gefundene Datei: Index, Dateigröße in KB und Dateiname
Information, ob sich der antwortende Peer hinter einer Firewall befindet
Identifikation des antwortenden Peers
Vendor Code zur Unterscheidung verschiedener
Gnutella-Implementierungen. z.B. BEAR = BearShare, GNUC = Gnucleus,
LIME = LimeWire, RAZA = Shareaza, MRPH = Morpheus
Hat ein Peer keine passenden Dateien, erzeugt er keine
QueryHit-Nachricht
Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
18/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Transport von Dateien bei Gnutella 0.4
Zum Transport von Dateien verwendet Gnutella das HTTP 1.0 Protokoll
Die HTTP-Verbindung wird unabhängig vom Gnutella-Netzwerk direkt
zwischen Client und Server aufgebaut
Die IP-Adresse und Portnummer steht in der QueryHit-Nachricht
HTTP GET wird verwendet, um eine Datei, die durch eine
QueryHit-Antwort spezifiziert ist, herunterzuladen
GET / get / < Index in QueryHit >/ < DateiName >/ HTTP /1.0\ r \ n
Connection : Keep - Alive \ r \ n
Range : bytes =0 -\ r \ n
User - Agent : Gnutella \ r \ n
\r\n
Der antwortende Peer (Server) sendet die Datei via HTTP
HTTP 200 OK \ r \ n
Server : Gnutella \ r \ n
Content - type : application / binary \ r \ n
Content - length : xxx \ r \ n
\r\n
< xxx Bytes Dateiinhalt >
Problem: Was ist, wenn sich der Server hinter einer Firewall befindet?
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
19/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Nachrichten von Gnutella 0.4 (4)
Die Push-Nachricht dient dem Herunterladen von Dateien, wenn der
Server sich hinter einer Firewall befindet
Die Push-Nachricht enthält folgende Felder:
Identifikation des anbietenden Peers (Empfänger der Nachricht)
Port und IP-Adresse des anfragenden Peers
Index der gewünschten Datei
Anders als bei HTTP GET, bei dem der Client die TCP/IP-Verbindung
zum Server aufbaut, baut hier der Server die Verbindung zum Client auf
Der Server schickt einen GIV-Header
GIV < Index >: < PeerID >/ < DateiName >\ r \ n
Darauf stellt der Client seine HTTP GET-Anfrage
GET / get / < Index >/ < DateiName >/ HTTP /1.0\ r \ n
...
HTTP 200 OK \ r \ n
...
Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
20/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Weiterleitung (Routing) von Gnutella-Nachrichten (1)
Für jede Nachricht wird das TTL-Feld dekrementiert (erniedrigt)
Ist der Wert des TTL-Felds 0, wird die Nachricht verworfen
Für jede Nachricht wird das Hops-Feld inkrementiert (erhöht)
Erkennt der Peer, dass eine Nachricht innerhalb eines (kurzen)
Zeitraums, erneut eingetroffen ist, verwirft er die Nachricht
Dient zur Schleifenerkennung (Loop Detection)
Eingehende Ping- und Query-Nachrichten werden
mit einer Pong- bzw. einer QueryHit-Nachricht
beantwortet
Pong-Nachrichten enthalten die IP-Adresse
QueryHit-Nachricht enthalten die IP-Adresse und
eine Liste der Treffer
Eingehende Ping- und Query-Nachrichten werden an alle Verbindungen
(außer der eingehenden) weiter geleitet, falls der Wert von TTL > 0 ist
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
21/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Weiterleitung (Routing) von Gnutella-Nachrichten (2)
Eingehende Pong- und QueryHit-Nachrichten
werden nur auf der Verbindung weitergeleitet,
von der die entsprechenden Ping- bzw.
Query-Nachrichten kamen
Andernfalls werden sie verworfen
Push-Nachrichten werden nur in der Verbindung
weitergeleitet, von der eine entsprechende
QueryHit-Anfrage beantwortet wurde
Andernfalls werden sie verworfen
Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
22/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Reines P2P hat Grenzen
Netzwerkbelastung von reinem P2P lässt das System bei einer hohen
Anzahl von Peers unbenutzbar werden
Langsam
Netzwerkoverhead hoch
Alternative: Zentralisierte Dienste mit dedizierten Servern
Nicht erwünscht
Alternative: Hybrides Peer-to-Peer
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
23/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Hybrides P2P: Gnutella Protokoll Version 0.6
Unterscheidung der Knoten in Blattknoten (Leaf Nodes) und Ultrapeers
Jeder Blattknoten ist mit maximal 3 Ultrapeers verbunden
Jeder Ultrapeer ist mit maximal 16 weiteren Ultrapeers und 16
Blattknoten verbunden
Jeder Suchauftrag macht nur maximal 4 Hops
Neues Protokoll: Query Routing Protocol (QRP) – Suchanfragen
Leitungsprotokoll
Kurzfassung des QRP
Jeder Blattknoten schickt seinem Ultrapeer eine Liste der Namen
innerhalb der Dateinamen der angebotenen Dateien
Suchanfragen werden nur an Peers weitergeleitet, bei denen die Liste der
Namen erfolgversprechend ist
Die Ultrapeers tauschen die Namenslisten untereinander aus
Hybrides P2P realisiert eine Art dynamischen, zentralisierten Dienst
Vorteile von reinem P2P bleiben erhalten
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
24/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gnutella: Ultrapeers und Blattknoten
Quelle: Jörg Eberspächer und Rüdiger Schollmeier. First and Second Generation of Peer-to-Peer
Systems (2005). LNCS 3485
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
25/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
FastTrack (Protokoll von KaZaA)
Das FastTrack-Protokoll basiert auf dem Gnutella Protokoll 0.6
Supernodes agieren als vorübergehende Indexserver für langsamere Peers
Skalierbarkeit des Netzwerks wird dadurch erhöht
Ablauf:
In der Client-Software ist eine Liste von IPs einiger Supernodes enthalten
Client versucht eine Verbindung mit diesen bekannten Supernodes
herzustellen
Wurde ein Supernode erreicht, ruft der Client die Liste von derzeit
aktiven Supernodes ab
Client sucht sich einen Supernode aus, dem er eine Liste der angebotenen
Dateien hochlädt und über den er sämtliche Suchanfragen stellt
Der Supernode kommuniziert mit weiteren Supernodes, um Suchanfragen
der Clients zu erfüllen
Wurde eine gesuchte Datei gefunden, baut der Client eine direkte
Verbindung zur Quelle auf, und die Datei wird über HTTP übertragen
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
26/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Peer-to-Peer (File-Sharing) Netzwerke – kleine Auswahl
Peer-to-Peer Netzwerk
Clients
Ares
Blubster
FileSpree
Filetopia
Gnutella
Ares
Blubster
FileSpree
Filetopia
AquaLime, BearShare, FileNavigator, FreeeWire, Gnucleus,
LimeWire, Phex, Shareaza, Xolox Ultra
Direct Connect, DC++. Koala DC
eDonkey2000, eMule
Morpheus, KaZaA, KaZaA Lite, Grokster, iMesh
Napster, Shuban, File Navigator, Rapigator, Spotlight,
StaticNap, SunshineUN, Swaptor, WinMX OpenNap
Overnet, eDonkey2000, MLDonkey
Piolet
MinMX
Freenet, Entropy, Frost
Entropy, Frost, Freenet
WASTE
Direct Connect
eDonkey2000
FastTrack
OpenNap
Overnet
Piolet
MinMX
Freenet
Entropy
WASTE
Quelle: http://www.umkc.edu/is/security/p2p_explanation.asp
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
27/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
BitTorrent
System zur schnellen Verteilung großer Datenmengen
Entwickelt von Bram Cohen
Juli 2001: Erste Version
Im System selbst kann man nicht nach Daten suchen
Will ein Peer eine oder mehr zusammenhänge Dateien herunterladen,
benötigt er die passende Torrent-Datei
Enthält die IP-Adressen der Tracker, Dateigröße und eine Liste von
Prüfsummen von Segmenten
Torrent-Dateien sind nur wenige KB groß und werden überwiegend auf
speziellen Webseiten gesammelt und angeboten (z.B. The Pirate Bay)
Ein Tracker verwaltet für jeden Torrent eine Liste von Peers, die Teile
der Datei besitzen
Ein BitTorrent-Client erhält vom Tracker diese Liste
Mit der Liste kann der Client (Peer) nun direkt bei den anderen Peers mit
Teilen der gesuchten Datei anfragen
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
28/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
BitTorrent (2)
Chunks: Segmente einer Datei
Schwarm: Menge der Peers, die
am gleichen Torrent interessiert
sind
Seeds: Peers, die den kompletten
Torrent besitzen
Diese Peers laden nichts mehr
herunter, sondern verteilen
lediglich
Leechs: Peers, die noch nicht den
kompletten Torrent besitzen
Diese Peers laden von anderen
Peers herunter
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
29/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
BitTorrent (3)
Ist der Tracker nicht mehr verfügbar, ist die Torrent-Datei nutzlos
Ohne funktionierenden Tracker kann keine aktuelle Liste mit Seeds und
Leechs bezogen werden
Mit Hilfe dieser Liste können die Leechs bei anderen Seeds und Leechs
nach fehlenden Chunks anfragen
Will man selbst etwas anbieten, muss man einen Tracker betreiben und
die passende Torrent-Datei anbieten/verteilen
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
30/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
BitTorrent in Cloud-Infrastrukturen
BitTorrent ist eine hocheffiziente Lösung zur Verteilung großer
Datenmengen
Ein Beispiel, wo große Datenmengen möglichst rasch übermittelt
werden müssen, ist das Verteilen von Images auf die physischen Knoten
in Cloud-Infrastrukturen
Das CERN betreibt einen virtuellen Cluster auf Basis von OpenNebula
Cluster wird mit bis zu 16.000 virtuellen Maschinen dynamisch erweitert
Maximal 400.000 Rechenjobs können in annehmbarer Zeit vom
LSF-Scheduler verarbeitet werden
Verteilung der Images und Daten im Cluster am besten via BitTorrent
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
31/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
P2P Zusammenfassung
Quelle: Jörg Eberspächer und Rüdiger Schollmeier. First and Second Generation of Peer-to-Peer
Systems (2005). LNCS 3485
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
32/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
BitTorrent nun auch ohne Tracker
BitTorrent nun auch ohne Tracker
19.5.2005
Bram Cohen, bzw. mittlerweile die Firma BitTorrent Inc., hat eine neue Version der
Peer-to-Peer-Software BitTorrent veröffentlicht, die ohne Tracker auskommt. Die Verteilung von
Dateien über BitTorrent soll damit deutlich einfacher werden, schließlich kommt die Version 4.1.0,
die als Beta vorliegt, ohne die entsprechende Server-Software aus.
So ganz kommt BitTorrent dabei zwar nicht ohne Tracker aus, die neue Version macht aber jeden
Client zu einem leichtgewichtigen Tracker. Ein Protokoll auf Basis des Kademlia-Algorithmus, das
somit verteilte Hash-Tabellen (Distributed Hash Table, DHT) nutzt, erlaubt den Clients einen
effizienten Austausch von Kontaktinformationen anderer Peers.
Wer Dateien über BitTorrent verteilen will, hat dabei künftig die Wahl zwischen dem
herkömmlichen System mit Tracker und einer Trackerless“-Variante. Festgelegt wird dies beim
”
Generieren der Torrent-Datei, die die Download-Informationen enthält und beispielsweise über eine
Webseite verteilt wird.
(Jens Ihlenfeld)
Quelle: http://www.golem.de/0505/38130.html
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
33/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Verteilte Hashtabelle – Distributed Hash Table (DHT)
Datenstruktur, mit der die Speicherorte von Dateien in einem
P2P-System gespeichert werde können
Ziel: Dezentralisierte und effiziente Datenspeicherung und -lokalisierung
Jeder Speicherknoten entspricht einem Eintrag in der Hashtabelle
Positive Eigenschaften der DHT
Selbstorganisation: Keine manuelle Konfiguration nötig
Ausfall, Beitritt und Austritt einzelner Knoten wird verkraftet
Skalierbarkeit: Das System funktioniert auch mit vielen Knoten
Möglichst gleichmäßige Datenspeicherung über die vorhandenen Knoten
Lastenverteilung: Gleichmäßige Verteilung der Schlüssel auf den Knoten
Fehlertoleranz: Auch wenn Knoten ausfallen oder das System verlassen
Robustheit: Auch wenn Knoten versuchen das System zu stören
DHTs werden auch in großen verteilten Speicherlösungen wie Amazon Dynamo und in verteilten
Suchmaschinen wie YaCy (http://yacy.net) verwendet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
34/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Verteilte Hashtabelle – Distributed Hash Table (DHT)
Man unterscheidet DHTs nach dem Speicherschema
Direct Storage
Die Daten werden direkt innerhalb der DHT abgelegt
Nur für Daten <1 kB geeignet, da das System sonst unflexibel wird
Indirect Storage
In der DHT werden nur Verweise auf die Daten vorgehalten
Bekannte DHT-Implementierungen sind Chord und Kademlia
Bekannte Software die DHT verwendet:
Aktuelle BitTorrent-Clients (u.a. Azureus, BitComet, KTorrent, rTorrent,
µTorrent), eDonkey2000 Overnet, Freenet (anonymer Datenspeicher),
LimeWire, MLDonkey (Overnet und Kademlia),. . .
Schlüssel?
Im Folgenden wird häufig von Schlüsseln gesprochen
Ein Schlüssel kann so ziemlich allen Arten von Ressourcen zugewiesen sein
Häufig sind Schlüssel Dateien oder Prozessen zugewiesen
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
35/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Streuwertfunktionen – Hashfunktionen
Abbildung, die von einer größeren Eingabe eine kleinere Zielmenge (den
Hashcode, Hashwert oder die Prüfsumme) erzeugt
Der Name stammt vom englischen to hash = zerhacken“
”
Eine gute“ Hashfunktion liefert für unterschiedliche Eingaben auch
”
unterschiedlichen Ausgabewerten
Der Hashwert einer Datei ist mit einem Fingerabdruck vergleichbar
Hashcodes verwendet man u.a. um Übertragungsfehler zu erkennen
In der Kryptologie werden Hashfunktionen zum Signieren verwendet
Bekannte (und gute“) Hashverfahren sind MD5 und SHA-1
”
Diese Verfahren sind praktisch kollisionsfrei
=⇒ Die Wahrscheinlichkeit von doppelten Einträgen ist minimal
MD5 erzeugt 128-Bit-Prüfsummen
SHA-1 erzeugt 160-Bit-Prüfsummen
$ md5sum f o l i e n _ c g c _ v o r l e s u n g _ 0 9 _ W S 1 1 1 2 . pdf
6 d56fd409d2a19108b465852847023c5
$ sha1pass f o l i e n _ c g c _ v o r l e s u n g _ 0 9 _ W S 1 1 1 2 . pdf
$4$ZBzAMGff$inCNpYGkPnh3o9ES6mn106qnnbY$
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
36/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Verteilte Hashtabelle – Kurzfassung
Mit einer Hashfunktion werden den Ressourcen Schlüssel in einem
linearen Wertebereich (Schlüsselraum) zugewiesen
Den Schlüsselraum kann man sich als Ring vorstellen
Die Ressourcen werden in den Schlüsselraum gehasht
Ziel: Der Schlüsselraum soll möglichst gleichmäßig über die Knoten der
Knotenmenge verteilt werden
Vorgehen: Die Knoten werden in den
Schlüsselraum des gleichen Rings gehasht
Dafür ist ein eindeutiges Merkmal (z.B. die
IP-Adresse) nötig
Der für eine Ressource zuständige Knoten ist nun
der Knoten, der ausgehend von der Ressource im
Uhrzeigersinn am nächsten dran ist
Fällt dieser Knoten aus, ist der im Uhrzeigersinn
nächste erreichbare Knoten verantwortlich
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
37/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Verteilte Hashtabelle – Arbeitsweise von Chord
Protokoll zur Implementierung eines verteilten Lookup-Service
Ein Lookup-Service ist ein Dienst um Daten zu suchen
Für jeden Knoten und jeden Schlüssel wird mit einer Hashfunktion
(z.B. SHA-1) eine m-Bit (häufig 160 Bit) lange ID berechnet
Es können sich maximal 2m Knoten im System befinden
Die Knoten sind in einem Ring angeordnet =⇒ Chord Ring
Ein Schlüssel k wird dem Knoten n zugewiesen,
dessen ID ≥ der ID des Schlüssels k ist
Dieser Knoten wird Nachfolger (Successor)
von k genannt
Chord bietet folgende Funktion: Finde für
Schlüssel k den zuständigen Knoten n
Das soll möglichst effizient geschehen
n ist der Nachfolger (Successor)
Schlüsselverteilung im Chord Ring
Quelle: http://sarwiki.informatik.hu-berlin.de/Chord
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
38/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Lineare Suche
Einfachste Form der Suche nach einem Knoten: Lineare Suche
Jeder Knoten n kennt dabei nur seinen Nachfolgeknoten n0 (Successor)
Wird eine Suchanfrage an einen Knoten gerichtet, prüft dieser, ob sein
Nachfolgeknoten für den angefragten Schlüssel zuständig ist
Die Anfrage wird so lange an den jeweils nachfolgenden Knoten
weitergereicht, bis das Ziel erreicht ist
Voraussetzung: Jeder Knoten kennt seinen
Nachfolgeknoten
Das ist in einem Ring gegeben
Aber: Die lineare Suche ist nicht effizient
Länge des Suchpfades wächst linear zur Anzahl
der Knoten
Lineare Suche im Chord Ring
Quelle: http://sarwiki.informatik.hu-berlin.de/Chord
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
39/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Binäre Suche
Skalierbare Form der Suche nach einem Knoten: Binäre Suche
Dabei sind weitere Informationen über den Chord-Ring nötig
Jeder Knoten verwaltet eine Tabelle mit Verweisen auf m Knoten
m ist die Anzahl der Bits der verwendeten IDs
Die Verweise nennt man Chord Finger und die Tabelle Fingertable
Fingertable von Knoten n = 8
Eintrag
1
2
3
4
5
Start
Knoten
9
10
12
16
24
11
11
14
17
1
Die Tabelle hat 5 Einträge, weil
m die Länge der ID in Bit ist
und m = 5
Finger im Chord Ring
Der Start-Wert des i-ten
Eintrags der Tabelle auf
Knoten n ist n + 2i−1
Der Knoten-Wert des
Eintrags zeigt auf den
ersten Knoten, der auf n
in einem Abstand von
mindestens 2i−1 folgt
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
40/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Fingertablle und Suchanfragen
Aufbau der Fingertablle:
Der letzte Eintrag der Tabelle zeigt auf einen Knoten, der mindestens
eine halbe Umrundung des Chord-Rings entfernt liegt
Der vorletzte Eintrag der Tabelle zeigt auf einen Knoten, der mindestens
eine viertel Umrundung entfernt ist
usw.
Mit jedem Hop kann die Distanz zum Ziel halbiert werden
Darum ist die maximale Pfadlänge einer Suchanfrage O(log N) Hops
Bei einer Suchanfrage an Knoten n nach Schlüssel k wird zunächst der
nächstgelegene Vorgänger des Schlüssels gesucht, den Knoten n kennt
Dabei wird die Fingertablle von unten nach oben durchsucht, bis der erste
Eintrag i gefunden wird, dessen Knoten nicht zwischen n und k liegt
Der Eintrag i + 1 ist der nächstgelegene Vorgänger von k, den n kennt
Die Suche wird mit Hilfe dieses Knotens fortgesetzt
Das wiederholt sich, bis der Knoten gefunden ist, dessen Successor für k
zuständig ist
Quelle: http://sarwiki.informatik.hu-berlin.de/Chord
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
41/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Beispiel
Fingertablle von Knoten n = 8
Beispiel: Es wird eine
Suchanfrage nach einem
Schlüssel mit der ID 3 an
Knoten 8 gerichtet
Eintrag
1
2
3
4
5
Start
Knoten
9
10
12
16
24
11
11
14
17
1
Die Tabelle hat 5 Einträge, weil
m die Länge der ID in Bit ist
und m = 5
Knoten 8 sucht den ihm nächstgelegenen, bekannten Vorgängerknoten
von Schlüssel 3 (Knoten 1) und richtet die Anfrage an diesen
Anmerkung: Man kann im Ring nicht rückwärts suchen!
Knoten 1 stellt fest, dass sein Nachfolgeknoten (Knoten 4) für Schlüssel
3 zuständig ist
Quelle: http://sarwiki.informatik.hu-berlin.de/Chord
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
42/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Beispiel von Tanenbaum (1)
Beispiel: Schlüssel 26 aus
Knoten 1 auflösen
Knoten 1 schaut in
seiner Fingertabelle nach
Schlüssel 26
26 ist größer als der
Wert des letzten Eintrags
(18) in der Fingertabelle
Die Anfrage wird an
Knoten 18 weitergeleitet
Knoten 18 wählt Knoten 20, da Knoten 20 < Schlüssel 26 ≤ Knoten 28
Knoten 20 wählt Knoten 21, da Knoten 21 < Schlüssel 26 ≤ Knoten 28
Knoten 21 wählt Knoten 28, da dieser für Schlüssel 26 zuständig ist
Die Adresse von Knoten 28 wird an Knoten 1 gesendet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
43/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Beispiel von Tanenbaum (2)
Beispiel: Schlüssel 12 aus
Knoten 28 auflösen
Knoten 28 schaut in
seiner Fingertabelle nach
Schlüssel 12
Knoten 28 wählt Knoten 4, da Knoten 4 < Schlüssel 12 ≤ Knoten 14
Knoten 4 wählt Knoten 9, da Knoten 9 < Schlüssel 12 ≤ Knoten 14
Knoten 9 wählt Knoten 11, da Knoten 11 < Schlüssel 12 ≤ Knoten 14
Knoten 11 wählt Knoten 14, da dieser für Schlüssel 12 zuständig ist
Die Adresse von Knoten 14 wird an Knoten 28 gesendet
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
44/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Eintritt neuer Knoten (1)
Will ein Knoten in den Ring eintreten, braucht er einen Einstiegspunkt
In der Regel verwendet man bekannte Knoten (Well-Known-Knoten)
Die ID des neuen Knotens wird berechnet
Dafür wird die Hashfunktion üblicherweise auf die
IP-Adresse oder MAC-Adresse angewendet
Danach setzt der neue Knoten eine Suchanfrage am
Einstiegsknoten ab
Der neue Knoten sucht seinen Nachfolger
Der neue Knoten setzt seinen Nachfolger-Zeiger
Danach informiert er seinen Nachfolger über seine
Existenz
Der Nachfolger überprüft, ob die ID des neuen Knotens
größer ist als die ID des alten Vorgängers und passt
dann seinen Vorgänger-Zeiger an
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
45/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Eintritt neuer Knoten (2)
Bei der periodischen Ausführung des
Stabilisierungsprotokolls erkennt der alte Vorgänger, das
der neue Knoten sein Nachfolger ist und passt seinen
Nachfolger-Zeiger an
Danach informiert er den neuen Knoten, das er sein
neuer Nachfolger ist
Der neue Knoten passt darauf hin seinen Vorgänger-Zeiger an
Der Ring ist nun wieder in einem stabilen Zustand
Der neue Knoten muss noch seine Fingertabelle erstellen
Dafür setzt der neue Knoten für jeden Eintrag eine Suche ab
Einfacher ist es die Fingertabelle des direkten Nachfolgers zu kopieren
Dessen Tabelle unterscheidet sich nur wenig von der des neuen Knotens
Das Stabilisierungsprotokoll wird die Tabelle aktualisieren
Die Korrektheit der Fingertabelle ist nur für die Dauer der Suche, nicht
aber für die Korrektheit des Suchergebnisses ausschlaggebend
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
46/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Stabilisierung (1)
Das Stabilisierungsprotokoll hat 3 Aufgaben:
1
2
3
Neue Knoten im System bekannt machen
Struktur des Rings erhalten
Fingertabellen der Knoten aktualisieren
Das Stabilisierungsprotokoll besteht aus drei Schritten und verwendet
drei Funktionen
1
2
3
stabilize() =⇒ Nachfolger prüfen
notifiy() =⇒ Vorgänger prüfen
fix_fingers() =⇒ Fingertabelle aktualisieren
In regelmäßigen Abständen (z.B. 30 Sekunden) wird das
Stabilisierungsprotokoll durchgeführt
Auch während der Stabilisierung und wenn Einträge in Fingertabellen
falsch sind, funktioniert die lineare Suche im Ring
Das Suchen geht dann nur langsamer
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
47/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Arbeitsweise von Chord – Stabilisierung (2)
1
stabilize() =⇒ Nachfolger prüfen
Jeder Knoten prüft, ob er noch der Vorgänger seines Nachfolgers ist
Ist das Ergebnis negativ, existiert ein neuer Knoten zwischen beiden
Der neue Knoten wird zum Nachfolger
Danach wird dem neuen Knoten via notifiy() mitgeteilt, das der
aufrufende Knoten sein Vorgänger ist
2
notifiy() =⇒ Vorgänger prüfen
Jeder Knoten überprüft, ob. . .
der bisherige Vorgänger nicht mehr verfügbar ist
oder die ID des aufrufenden Knotens zwischen der ID des bisherigen
Vorgängers und der eigenen ID liegt
In beiden Fällen, wird der aufrufende Knoten der neue Vorgänger
3
fix_fingers() =⇒ Fingertabelle aktualisieren
Setzt für jeden Eintrag der Fingertabelle eine Suche nach dessen
Start-Wert ab
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
48/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Bitcoins – Geld auf P2P-Basis
Bitcoin ist elektronisches Geld, das dezentral erzeugt wird
Die Menge an Bitcoins hat in der Software eine feste Obergrenze
Der letzte Block (Nr. 6.929.999) aus dem Bitcoins generiert werden
können, sollte um das Jahr 2140 generiert werden
Dann bleibt die Gesamtzahl der Bitcoins bei ca. 21 Millionen stehen
Aktuell (Stand Juli 2011) existieren ca. 6,7 Millionen Bitcoins
Quelle: http://blockexplorer.com/q/totalbc
Das Wachstum wird alle 4 Jahre halbiert
Ein Bitcoin kann auf acht Dezimalstellen unterteilt werden
Damit ist 0,00000001 BTC der kleinste Wert
Die Anzahl existierender Bitcoins ergibt sich aus der Anzahl an Blöcken
multipliziert mit dem Münzwert eines Blocks
Der Münzwert für jeden der ersten 210.000 Blöcke beträgt 50 BTC
Der Münzwert für jeden der nächsten 210.000 Blöcke ist 25 BTC
Der Münzwert für jeden der nächsten 210.000 Blöcke ist 12,5 BTC, usw.
Dadurch steigt die Anzahl der existierenden Bitcoins immer langsamer
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
49/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Bitcoins – Geldbeutel (Wallet-Datei)
Jeder Benutzer der Bitcoin-Software erhält eine Wallet-Datei
/home/Benutzername/.bitcoin/wallet.dat
In dieser Datei befindet sich ein öffentlicher und ein privater Schlüssel
Der öffentliche Schlüssel dient als Bitcoin-Adresse zum Senden und
Empfangen von Bitcoins
Der private Schlüssel autorisiert die Transaktionen
Die Adressen enthalten keinerlei Informationen über seinen Besitzer
Zum besseren Austausch gibt es eine lesbare Form von 33 Zeichen
Jede neue Generierung eines Schlüsselpaares gleicht einem neuen Konto
Somit kann jeder Benutzer theoretisch unendlich viele Konten besitzen
Ein großer Vorteil von Bitcoin: Es fällt keine Transaktionsgebühr an
Theoretisch wäre eine Überweisung von 0,00000001 BTC möglich
Der Einfachheit halber hat man sich auf die zweite Stelle hinter dem
Komma als kleinste, verträgliche Einheit geeinigt
Guter Artikel: Florian Hofmann, Jörn Loviscach. Virtuelles Vermögen. c’t 17/2011. S.74-79
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
50/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Bitcoins – Anonymität von Transaktionen (Überweisungen)
Zahlungen sind bedingt anonym
Eine Zahlungsadresse kann den Empfänger nicht identifizieren
Die Anonymität ist vergleichbar mit herkömmlichem Bargeld
Wurde eine Überweisung ausgeführt, erzeugt der Bitcoin-Client
automatisch eine neue Bitcoin-Adresse
Man sollte für jede Transaktion eine andere Adresse verwenden, damit es
unmöglich wird, Geldbewegungen nachzuvollziehen
Die Statusanzeige gibt
Auskunft, mit wie vielen Peers
man verbunden ist, wie viele
Blöcke bereits abgearbeitet
wurden und wie viele
Überweisungen bisher getätigt
bzw. entgegengenommen
Bildquelle: http://kalingeling.wordpress.com/2010/12/19/bitcoin-tutorial/
wurden
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
51/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Bitcoins – Transaktionen (Überweisungen)
Die Validierung der Überweisungen findet durch die Knoten statt
Alle Transaktionen werden in Blöcken gespeichert und von allen
angeschlossenen Clients blockweise ständig überprüft und bestätigt
Jeder Client hat Zugriff auf den aktuellen und alle erzeugten Blöcke
Der Client holt beim Start alle zwischenzeitlich erstellten Blöcke
Zahlungen können durchgeführt werden, obwohl ein Client offline ist
Abgesendete Transaktionen werden in den aktuell vom Netzwerk
bearbeiteten Block geschrieben und von allen Clients überprüft
Das verhindert doppelte Ausgaben
Geht der Empfänger online, lädt er sich alle Blöcke aus dem Netz
Taucht in einem der Blöcke eine ihm zugeordnete Adresse auf, und ist die
damit verbundene Transaktion bereits von mehreren anderen Clients
bestätigt worden, so schreibt er den Betrag dem eigenen Konto gut
Der Kontostand wird erhöht, und die Transaktion in der Liste der
Überweisungen (http://blockexplorer.com) aufgeführt
Wurde die Transaktion noch nicht bestätigt, wird der Betrag unter
Vorbehalt aufgelistet und erst dann gutgeschrieben, wenn mehrere Blöcke
lang die Transaktion überprüft werden konnte
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
52/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Bitcoins erstellen/errechnen
Ein Problem von Geld allgemein ist die initiale Verteilung von Guthaben
Als neues Zahlungsmittel genießt Bitcoin anfangs kein Vertrauen
Man kann Bitcoins u.a. via Paypal kaufen, aber wer will das schon
Der Rücktausch wird von keiner Stelle garantiert
Man kann Blöcke mit Bitcoins selbst erstellen/errechnen
Bestandteile eines Blockes sind:
Die Prüfsumme des vorherigen Blockes
Alle in einem bestimmten Zeitraum durchgeführten Transaktionen
Eine einmalig verwendete Sicherheitsnummer
Um einen Block abzuschließen (zu lösen!), muss ein Bitcoin-Client eine
vom System festgelegte Prüfsumme erraten (Brute Force!)
Der Block wird als gelöst gekennzeichnet und ein neuer Block gestartet
Der Client erhält als Belohnung den Wert des Blocks gutgeschrieben
Man braucht fast 1 Jahr um mit einer CPU einen Block zu berechnen
Mit Hilfe einer aktuellen GPU geht es mehr als 100 mal schneller
Eine Möglichkeit ist Pool-Mining
Mehrere Clients arbeiten zusammen und teilen sich den Erlös
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
53/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Was kann man mit Bitcoins machen
Es existieren Dienstleister Bitcoins in e, $, oder Lindendollars tauschen
Der Tauschkurs wird vom jeweiligen Dienstleister festgelegt
Hier regelt sich der Markt selbst
Eine Liste von Unternehmen und Dienstleistern, die Bitcoins akzeptieren
findet sich hier: https://en.bitcoin.it/wiki/Trade
Eine Auswahl:
Dienstleister
Angebot
Webseite
Mt. Gox
Silk Road
Wuala
Bitcoin-Tauschbörse
anonymer Marktplatz
Onlinespeicher
http://mtgox.com
http://silkroadmarket.org
http://wuala.com/bitcoin
Gavin Andresen verschenkt 0,0001 BTC an an jeden Besucher:
https://freebitcoins.appspot.com
Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008
http://www.bitcoin.org/bitcoin.pdf
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
54/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gefahren/Probleme mit Bitcoins
Auch ein Hacker-Geld bzw. Anarcho-Geld ist nicht frei von Angriffen
Juni 2011: Symantec entdeckt einen auf Bitcoins spezialisierten
Trojaner
Infostealer.Coinbit sucht die Wallet-Dateien auf einem Rechner um
sie zu stehlen
Der Trojaner schickt die Dateien per E-Mail auf einen polnischen Server
Von dort können sich die Cracker die Datei herunterladen und dann
selbst nutzen
Lösung: Die Wallet-Datei verschlüsseln
Juni 2011 Einem Benutzer werden 25.000 BTC (Wert ca. e500.000)
gestohlen
19.Juni 2011 Der Bitcoin-Tauschbörse Mt. Gox werden ca. 60.000
Zugangsdaten und Email-Adressen gestohlen und veröffentlicht
Ergebnis: Es kam zu hohen Kursverlusten
Zeitweise fiel der Wert eines BTC von $17.5 bis auf wenige Cent
Verschiedene Tauschstellen setzten den Bitcoin-Handel kurz nach den
Ereignissen bei Mt. Gox zeitweise aus
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
55/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Fernsehen über das Internet übertragen
Das Verteilen von TV-Signalen über das Internet erzeugt hohe Kosten
Ideal: Verteilung nach dem Gießkannenprinzip (Broadcasting) an alle
Teilnehmer,
Dabei ist die Bandbreite, die ein Kanal blockiert, von der Zuschauerzahl
unabhängig
Voraussetzung ist eine Multicast-fähige Netzwerkinfrastruktur auf dem
kompletten Weg vom Anbieter bis zum Empfänger
Das ist im Internet nahezu unmöglich
Multicasting existiert bislang nur in geschlossenen IPTV-Systemen (z.B.
T-Home)
Realität im Internet: Anbieter müssen jedem Benutzer einen eigenen
Datenstrom bereitstellen (Unicasting) bereitstellen
Interessantes Konzept: Übertragung von Fernsehsignalen via P2P
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
56/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Fernsehen über P2P
Beim P2P-Streaming leitet jeder Benutzer, während er seinen
Datenstrom herunterlädt, gleichzeitig diesen Strom an einen oder
mehrere andere Benutzer weiter
Jeder Benutzer trägt zur verfügbaren Downstream-Bandbreite bei
Das Verfahren skaliert sehr gut
Je mehr Peers sich an der Verteilung beteiligen, desto besser ist die
Verfügbarkeit und Zuverlässigkeit
P2P-TV-Systeme sind quasi Echtzeit-Versionen von BitTorrent
Will ein Benutzer einen bestimmten Kanal sehen, erfragt der Client beim
Index-Server (Tracker) die Adressen der Peers, die den Kanal verbreiten
Der Client stellt dann Verbindungen zu diesen Peers her, um das
kontinuierliche Downstreaming einzuleiten
Der Tracker speichert die Adresse des neu hinzugekommenen Peers als
potenzielle Quelle für weitere Benutzer, die den Kanal anschauen möchten
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
57/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Fernsehen über P2P in der Realität – Zattoo
Zattoo (japanisch für Gedränge, Gewühl, Gewimmel)
http://zattoo.com
Legales P2P-Streaming
Client-Software für Linux, MacOS X und Windows
Beim Verbindungsaufbau prüft der Dienst, in welchem Land sich der
Benutzer befindet
Wegen der Senderechte muss garantiert werden, dass Fernsehprogramme
nur im jeweils zulässigen Territorium empfangbar sind
Finanzierung über Werbung, die in Umschaltpausen eingeblendet wird
Umschalten dauert ca. 5 Sekunden
Bild ist ca. 20 Sekunden zeitverzögert
Sommer 2009: Umstieg auf Web-Client
Zattoo basiert nicht mehr auf P2P,
sondern verwendet Flash-Streams
=⇒ Bessere Qualität
Bildquelle: http://freie-software.blogspot.com
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
58/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Fernsehen über P2P in der Realität – Joost
Gegründet 2006 von Niklas Zennström und Janus Friis
Beide sind die Gründer von Skype und Kazaa
2007: $45 Millionen Risikokapital
Legales P2P-Streaming
Angebot: Streaming von Sendern und einzelnen Filmen/Serien
Problem: Ausstrahlungsrechte müssen für alle Länder regelmäßig neu
verhandelt werden
http://www.joost.com
Client-Software für MacOS X
und Windows
Finanzierung über Werbung
Dezember 2008: Wechsel zu
einem ausschließlich
Web-Seiten-basierten Dienst mit
Flash
Bildquelle: http://www.gizmodo.com.au
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
59/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Weitere ehemals bekannte Projekte, die gescheitert sind
Babelgum
http://www.babelgum.com
P2P-Client von 2007 bis März
2009
Konzept ähnlich wie Joost
Problem: Zu wenige
hochwertige Inhalte
Bildquelle: http://www.nettv.cc
BBC iPlayer
http://www.bbc.co.uk/iplayer/
Die BBC wollte ab 2003/4 mit einem auf P2P basierenden Client ihre
Archive frei zugänglich machen
Lange Entwicklungszeit
Erst ab Oktober 2005 war der Dienst verfügbar
Dezember 2008: Wechsel vom P2P-Modell zu HTTP-Downloads
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
60/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Existierende Projekte
Miro Media Player
http://www.getmiro.com
Früher Democracy Player
Freier P2P-Client (freie Software)
Benutzer können automatisch Videos von abonnierten Kanälen
herunterladen
PPLive, QQlive und UUSee
http://www.pplive.com
http://live.qq.com
http://www.uusee.com
Proprietäre P2P-Systeme aus China
Zielen alle primär auf den asiatischen Markt
Von PPLive existieren deutsche und englische Versionen
http://www.chip.de/downloads/PPLive_17375588.html
Octoshape
http://www.octoshape.com
Proprietärer P2P-Client
u.a. DW-TV (Deutsche Welle) verwendet Octoshape
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
61/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gründe für das Scheitern von P2P-Streaming-Projekten (1)
Benutzer können im Gegensatz zu Plattformen wie YouTube keine
eigenen Videos hochladen
Anbieter bieten ausschließlich professionelles Material an
Das Material muss für jedes Land, in dem es empfangbar ist, lizenziert
werden
Ohne eine große Zahl von Benutzern haben die Anbieter keine starke
Verhandlungsposition gegenüber den Rechteinhabern
Ohne eine große Zahl von Benutzern haben die Anbieter keine Chance
sich über Werbung zu refinanzieren
Die Installation einer Client-Software nur zum Betrachten von
Videoströmen ist in Zeiten von YouTube schwer vermittelbar
Ein dedizierter Client muss für viele Betriebssysteme und
Hardwareplattformen entwickelt und gepflegt werden
Der Entwicklungsaufwand ist hoch
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
62/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Gründe für das Scheitern von P2P-Streaming-Projekten (1)
Die Entwicklungen waren bislang meistens proprietär
Ein offenes Protokoll kann besser optimiert werden, ist aber wegen der
Rechte schwer vermittelbar
Zeitverzögerungen beim Einschalten und Umschalten werden von den
Benutzern als störend empfunden
Diese Zeitverzögerungen sind aber prinzipiell nicht vermeidbar
Uploadgeschwindigkeit der meisten Benutzer ist deutlich geringer als die
Downloadgeschwindigkeit
Besonders bei DSL ist die Uploadgeschwindigkeit häufig um den Faktor
1:10 oder sogar 1:20 niedriger
Schränkt die Möglichkeiten der Weiterverteilung durch die Peers ein
Lösungsmöglichkeit: Leistungsstarkes CDN zur Unterstützung der
Verteilung
CDN = Content Distribution Network
Die Knoten des CDN agieren als Supernodes
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
63/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Wuala – Kombination aus P2P und Cloud (1)
Wuala ist ein Dienst, der Onlinespeicher anbietet
Entwicklung der ETH Zürich
Seit März 2009 gehört Wuala zum Unternehmen LaCie
Wuala nutzt eigene Server und ein P2P-Netzwerk aus Rechnern
freiwilliger Benutzer, die lokalen Speicherplatz gegen Onlinespeicher
tauschen möchten
Über diese Ressourcen legt Wuala eine Art Speicher-Cloud
Jeder Benutzer erhält kostenlos 1 GB Speicherplatz
Möchte ein Benutzer mehr Speicherplatz, kann er diesen käuflich
erwerben oder lokalen Speicherplatz im Tausch zur Verfügung stellen
Bedingung für den Tausch: Der Computer, auf dem Wuala läuft, muss
mindestens 4 Stunden pro Tag online sein
Formel: lokaler Speicher ∗ Onlinezeit-Faktor = Onlinespeicher
Beispiel: Ein Benutzer bietet 10 GB lokalen Speicher und sein Rechner
ist 6 Stunden online, also 25% der möglichen täglichen Zeit
=⇒ 10 GB ∗ 0, 25 = 2, 5 GB Onlinespeicher
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
64/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Wuala – Kombination aus P2P und Cloud (2)
Benutzer können lokalen Speicherplatz von mehreren Rechnern
freigeben, um selbst mehr Onlinespeicher zu erhalten
Alle Daten werden vor dem Upload in die Wuala-Cloud fragmentiert
und mit einem 128-Bit AES-Algorithmus verschlüsselt
Fragmente werden redundant in der Wuala-Cloud verteilt
Wuala sichert alle Fragmente mindestens einmal auf eigenen Servern in
Europa
Daten bleiben immer erreichbar, auch wenn alle P2P-Knoten offline sind
Wer keinen lokalen Speicherplatz tauschen kann oder will, kann
Onlinespeicher kaufen.
Ab 10 GB für e19 pro Jahr
Client-Software ist Freeware (nicht Open Source) und verfügbar für
Linux, Mac OS X und Windows
Neben der Java-Client-Software gibt es eine REST API
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
65/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Aktuellste Entwicklung bei Wuala
Wuala bietet nur noch Online-Speicher in der Cloud an
Mit dem Update auf sein neues Speichersystem Hirslanden“ streicht der Online-Speicher-Anbieter
”
Wuala die Möglichkeit, eigenen, lokalen Speicherplatz gegen Online-Speicher einzutauschen.
Bereits eingetauschter Speicherplatz kann laut der Ankündigung noch weitere zwölf Monate
kostenlos genutzt werden, anschließend will Wuala den betroffenen Anwendern Rabatte beim Kauf
einräumen. Zudem akzeptiert Wuala als Bezahlung für zusätzlichen Speicherplatz auch die virtuelle
Währung Bitcoins. Das Unternehmen empfiehlt daher den bisherigen Speicherplatz-Tauschern, sich
an der Generierung von Bitcoins zu beteiligen.
Zu den weiteren Neuerungen zählen die Erweiterung des kostenlosen Speicherplatzes von bisher 1
auf 2 GByte, die Verschlüsselung mit AES-256, inkrementelles Hochladen, mehrere parallele
Downloads sowie Dateigrößen von bis zu 100 GByte
(Reiko Kaps)
Quelle: c’t 2011, Heft 23, S.48
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
66/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
P2P-Weg der verteilten Datenhaltung in Clouds
Der P2P-Gedanke kann helfen, virtuelle Cluster mit gemeinsamem
Datenbestand in EC2-kompatiblen Infrastrukturen aufzubauen
Verschiedene Möglichkeiten der Cloud-basierten Datenspeicherung
Instanzspeicher (blockbasiert, nicht persistent)
EBS-Volumen (blockbasiert, persistent)
S3-Buckets (objektbasiert, persistent)
Es existieren auch Datenbankdienste
Diese Dienste spiele hier keine Rolle. Sie sind primär für
Spezialanwendungen geeignet, da sie tabellenorientiert arbeiten
Block- und objektbasierte Speicherdienste sind universeller einsetzbar
Ein EBS-Volumen kann immer nur an eine EC2-Instanz angehängt sein
EBS-Volumen kann man mit verteilten Dateisystemen wie Ceph,
GlusterFS, PVFS2 oder HDFS verbinden
Diese Dateisysteme arbeiten vollständig verteilt (=⇒ P2P)
Ceph, GlusterFS und HDFS bieten sogar interne Redundanz
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
67/68
Zentralisiertes, reines und hybrides P2P
Verteilte Hashtabelle
Bitcoins
P2PTV
P2P und Cloud
Nächste Vorlesung
Nächste Vorlesung:
7.12.2011
Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112
68/68