Title: Dezentrale%20Architekturen
1Dezentrale Architekturen
2Übersicht
- Gnutella
- Was ist Gnutella
- Geschichte
- Clients
- Protokoll
- Infrastruktur
- Suche / Antwort
- Kultivierung
- Traffic Probleme
- Angreifbarkeit
- Anonymität
- Ausblick
- Freenet
- Funktionsweise
- Upload/Download
- Routing
- Hashes
- Zusammenfassung
3Was ist Gnutella ?
- Ein Picknick, jeder bringt was mit
- Simples File-Sharing Protokoll
- Komplett dezentral
- Abstrahiert von der Netzstruktur
- Knoten sind Servents (Client und Server)
- Servents bilden die Netzstruktur
- Funktioniert wie die reale Welt (Bsp. Folgt)
4Gnutella Philosophie
- Ein Netzwerk zum Suchen und Entdecken
- Gedacht für Mensch und nicht Maschine
- Total dezentral ? Nicht wirklich zu stoppen
- Freie Interpretation der Anfrage
- Suchanfrage wird unverändert weitergeleiet
- Antworten können verschiedenste Form haben
- Dateinamen
- Werbe Nachrichten
- URLs
- Anonymes Suchen
5Gnutella History 1
- 1999 Übernahme von Nullsoft durch AOL
- Kleines Experiment (2 Mannwochen)
- März 2000 Justin Frankel und Tom Pepper
- von Nullsoft entwickelten Gnutella
- Gnutella (GNU Nutella)
- www.slashdot.org suchte einmalig Tester
- Erfolg (1000 User innerhalb von Stunden)
- AOL legte das Projekt auf Eis
6Gnutella History 2
- Bryan Mayland überarbeitete das Gnutella
Protokoll (total dezentral) - gnutella.nerdherd.net und IRC gnutella
- als Austauschplatz für Entwickler
- Open-Source Projekt (GPL)
- Justin Frankel gab Detailwissen preis
- GDF (Gnutella Developer Forum) entstand
- RFC-Gnutella (Request for Comments)
- Geburtsstunde etlicher Clients
7Gnutella Clients
- Windows
- Gnotella
- Toadnode
- Gnucleus
- BearShare
- LimeWire
- Shareaza
- PheX
- Gnewtella
-
- Linux/Unix
- Gnut
- LimeWire
- Gtk-Gnutella
- Mutella
- Phex
- Qtella
- Closed source
8 Cocktail Party Gnutella
- Eintritt
- Hallo sagen
- Suche die Bar
- Frage nach Bar
- Stille Post Welle
- Erhalte Information
- Laufe zur Bar
- Connect zu GNet
- Ping
- Suche Martini
- Anfrage gestartet
- Anfrage weitergeleitet
- Antwort (Hit)
- Starte Download
9 Cocktail Party Napster
- Eintritt ins Foyer
- Gastgeber Freunde.
- nur ein Informant
- suche Bar
- zurück zum Foyer
- Info dahinten
- laufe zur Bar
- Connect to Napster
- Riesiger File Index
- Nur ein Fileindex
- Suche Martini
- Zentrale Anfrage
- Index liefert Verweis
- Starte Download
10Gnutella Protokoll 1
- Gnutella Deskriptoren regeln Kommunikation
- Deskriptoren
- Ping Netz aktiv erforschen
- Pong Antwort auf Ping
- Query Eigentliche Suchanfrage
- Query hit Positivantwort auf Suchanfrage
- Push Request Initiiert das Senden (Firewall)
- Header
11Gnutella Protokoll 2
- Payload (Nutzlast) der Deskriptoren
- Ping hat kein Payload
- Pong
- Query
- Query hit
- Push Req
12Gnutella Infrastruktur
- Setzt per Software auf dem Internet auf
- Netz existiert nur durch seine Servents
- Aus Benutzern werden Operatoren
- Dynamische Netzstruktur, was nun ?
- Nutzer trennen sich laufend vom Netz
- Es kommen ständig neue Nutzer hinzu
- Große Disparität zwischen Bandbreite der Nutzer
(T3 ist ca. 1000 mal schneller als 56K)
13Selbstorganisierendes Netzwerk
- Platzierung im Netz hängt nicht von
geographischer Lage sondern Bandbreite ab - Leistungsstarke Knoten (T3)
- tendieren zur Mitte des Netzwerks
- verbunden mit vielen/großen Knoten
- Leistungsschwache Knoten (56K)
- tendieren zum Rand des Netzes
- verbunden mit wenigen oder kleinen Knoten
- Werden zu Schwarzen Löchern
- Dadurch entsteht ein stabiles ad hoc Backbone
14Gnutella Netz (GNet)
- Knotengröße proportional zur Bandbreite
15Getting started
- Man muss nur erstmal reinkommen
- Gewusst wie IRC, Hostcaches (GWebCaches)
- Einmal verbunden, werden weitere Verbindungen
aufgebaut ( ca. 5) - Pong Caching Cachen von Hostlisten anderer
Servents (Freundes Freunde) - Lauschen und fleißig mitschreiben wer antwortet
- Dead Links werden gelöscht
- Nun kann das Suchen beginnen
16Übersicht
- Gnutella
- Was ist Gnutella
- Geschichte
- Clients
- Protokoll
- Infrastruktur
- Suche / Antwort
- Kultivierung
- Traffic Probleme
- Angreifbarkeit
- Anonymität
- Ausblick
- Freenet
- Funktionsweise
- Upload/Download
- Routing
- Hashes
- Zusammenfassung
17 Eigenschaften von Suchanfragen
- Suchanfragen
- enthalten eine UID
- erreichen nur den Horizont
- werden vom Servent interpretiert
- Gnutella Entwickler demonstrierten Mächtigkeit
des Gnutella-Protokolls mit InfraSearch - Alternative zur Suchmaschine?
18 Verbreitung von Suchanfragen
- Suchen durch Broadcasting (Flooding)
- Jeder Host schickt zu n Hosts (n4)
- Jedes Packet hat TTL t (t7)
- Time To Live (TTL) ist ein Zähler der bei jedem
Weiterleiten verringert wird, bei 0 wird das
Paket verworfen - Netz wird entlastet durch
- Unique Identifiers (UID) (verhindert Echos)
- Time To Live (TTL)
19 Auslastung Gnutella 0.4
Quelle TU Ilmenau, Hauptseminar Telematik SS
2003
20Gnutella Horizont
- Bei TTL 7 erreichen die Suchanfragen
- ca. 10 000 Hosts
- Wieviele User hat Gnutella eigentlich?
- Millionen Menschen haben einen Gnutella Client
runtergeladen bzw installiert - Man selbst sieht jedoch nur einige Tausend um
sich herum
21(No Transcript)
22Dynamisches Routing für Antworten auf Suchanfragen
- Antwort ebenfalls nur mit UID
- Host A merkt sich Host B , der die Suchanfrage
geschickt hat und schickt die Antworten zu ihm
zurück - Ob Host B die Suchanfrage gestartet hat oder nur
weitergeleitet ist unbekannt - ? anonymes Suchen
- Suchanfragen wurden anfangs zum anonymen Chatten
benutzt
23Handling von zu vielen Suchanfragen
- Servents verwerfen Suchanfragen
- Es werden keine Buffer oder ähnliches verwendet
- (macht bei Suchanfragen keinen Sinn)
- Dadurch können T3 Leitungen mit 56 K Modem
Nutzern nicht sinnvoll kommunizieren
24Gnutella Kultivierung
- Kleine Änderungen an der Clientsoftware können
extrem große Auswirkungen auf das Netz haben - Beispiel Reflector
- Leiten Suchanfragen nicht weiter, sondern
beantworten aus dem eigenen Gedächtnis - Reduziert Traffic
- Zerstört Charakteristik von Gnutella
- (Hosts sollen Suchanfragen selber interpretieren)
25Gnutella Traffic-Probleme 1
- Zelle Menge von Hosts die sich untereinander
kennen - Bei Gnutella wird bei zu viel Traffic die
Leistung stark reduziert, ähnlich Ethernet - Lösung Teilung einer Zelle in kleinere Zellen
- Dadurch kennt man zwar weniger Hosts, kann aber
wieder vernünftig kommunizieren
26Gnutella Traffic-Probleme 2
- Host Caches Gut gemeint, schlimme Auswirkungen
- Web Site mit aktuellen Host-Listen
- Problem trat am 26.07.2000 auf (Untergang von
Napster) - Viele Tausend User erfragten beinahe gleichzeitig
die aktuellen Host-Listen ab - Folge Ballung des gesamten Gnutella Netz um
wenige Hosts, die auf Internet-Seiten zu finden
waren - Dadurch war Kommunikation praktisch unmöglich
27Gnutella Traffic-Probleme 3
- Lösung des Host-Cache Problem
- Host-Caches prüfen ob die Hosts ausgelastet sind
und sorgen für eine gleichmäßige Verteilung - Aber es gab noch die Local Host Catcher
- Jeder der Servents hatte die anderen noch im
Gedächtnis. Dadurch blieb die Ballung erhalten. - Deswegen hat sich das Netz nur langsam entzerrt,
da jeder Servent selber von Hand seinen Local
Host Catcher löschen musste
28Übersicht
- Gnutella
- Was ist Gnutella
- Geschichte
- Clients
- Protokoll
- Infrastruktur
- Suche / Antwort
- Kultivierung
- Traffic Probleme
- Angreifbarkeit
- Anonymität
- Ausblick
- Freenet
- Funktionsweise
- Upload/Download
- Routing
- Hashes
- Zusammenfassung
29Rechtliche Angriffe
- Zentralisierte P2P Netzwerke (Napster) sind
rechtlich belangbar und können so aus geschaltet
werden - Dezentrale P2P Netzwerke (Gnutella) nicht
belangbar, da kein zentraler Betreiber des
Netzwerkes existiert
30Technische Angriffe
- DoS-Attacken
- Clients Xoloco Qtraxmax führten zu
Netztüberlastung durch (query) flooding - Gezielte DoS-Attacken gegen Supernodes
31Anonymität
- Gnutella ist nicht anonym (!)
- Suchanfragen sind niemandem zuordenbar und damit
anonym - ABER bei einem Transfer kennen die beteiligten
Nutzer die jeweilige IP-Adresse des Anderen, also
nicht anonym - Beispiel Hall of Shame
- ?Pseudoanonymität
32Pseudoanonymität
- Weitere Gründe für Pseudoanonymität
- Großteil der messages enthalten keine IPs (nur
die Antworten auf queries) - Dynamische Routing Tabellen
- Zur Identifikation ist Überwachung des gesamten
Internet Traffic nötig
33Next Generation / Ausblick
- Nächster GDF Release ? (aktuell Gnutella
Protokoll 0.6) - zukünftige Features
- Community-Feature
- Encryption (bereits implemtiert in BearShare)
- Privacy
- Caching of popular content
- Magma-Links - Multiple-file-magnets
- What's New?
34Ausblick 2
- Ungelöste Probleme
- Traffic-Reduktion insbes. bei Suchanfragen
- Verbesserte Netztopologie
35Weitere Entwicklungen1
- Gnutella2 (G2)
- Alleinentwicklung von Mike Stokes (Shareaza)
- Komplette Überarbeitung von Gnutella
- Viele Schwächen bzw. Probleme beseitigt
- Ablehnung von GDF da Alleinentwicklung
- Gnutella2 daher auch bekannt als Mikes Protocol
(MP) - G2 inkompatibel zu G1
- G2 Clients u.a. Morpheus, Shareaza, MLdonkey
36Weitere Entwicklungen2
- Mittelfristige Entwicklungen
- Integration der verschiedenen Protokolle
- G1 und G2 zeichnet sich nicht ab
- ?Entwicklung von Clients die mehrere Protokolle
beherrschen (z.B. Shareaza, Morpheus) - Nächster Durchbruch
- Gleichzeitiger, Multipler Download einer Datei
aus verschiedenen P2P-Netzwerken
37Weitere Entwicklungen3
- FUtella
- P2P Netzwerk für den Austausch Wissenschaftlichen
Arbeiten und Ergebnisse aller Art (Publikation,
Essays, Papers, Übungsaufgaben, etc..) - Basiert auf Prinzipien bzw. Elementen von
Gnutella, JXTA,JXTA Search, Freenet und erweitert
diese - Wird ein Stockwerk über uns in der Technischen
Informatik entwickelt !
38Gnutella - Quellen
1 Adam Langley, Gnutella, Peer-to-Peer
Harnessing the Power of Disruptive Technologies,
A. Oram(ed.), OReilly and Assoc., Sebastopol,
Californien, 2001, Chapter 8 2 Farhad Manjoo
Gnutella Bandwidth Bandits, Salon.com
08.08.2002 http//www.salon.com/tech/feature/2002/
08/08/gnutella_developers/print.html 3
Gnutella² Developers Network http//www.gnutella
2.com 4 Gnutella Protocol Development
http//rfc-gnutella.sourceforge.net 5
Gnutella bei Wikipedia http//en.wikipedia.org/
wiki/Gnutella Stand 05.05.2004
39Freenet
- Noch ein Protokoll! Warum?
- Sicherheit vor Zensur
- Gewährleistung von Anonymität
- Robustheit
- Effizienz
- Schutz vor juristischem Zwang
40Freenet - Funktionsweise
- Verteilter, vielfach redundanter Speicher
- Message Passing Network
- Verbindungen Knoten kennt
- Direkten Vorgänger
- Direkten Nachfolger
- Request-Key
- Außerdem Knoten hat Tabelle mit
- Schlüsseln
- (Daten)
- Adressen
Abb. 1, Sichtweite einzelner Knoten
41Speichertabellen
Abb. 2, Speicher einzelner Knoten 2
42Freenet - Download
- Ablauf einer Suche / eines Downloads
- Anfrage beim nächsten Knoten X nach Hashwert
- X hat Dokument X liefert Dokument
- X hat Dokument nicht X leitet Anfrage an Y
weiter - Ende wenn
- Dokument gefunden oder
- Timeout (TTL0)
- Timeouts und Daten werden wie auf dem Hinweg
zurückgeschickt - Zwischenstationen cachen Daten
Abb. 1, Sichtweite einzelner Knoten
43Freenet - Datentransfer
Abb. 3, Routing zwischen Knoten, 3
44Einfügen 1
- Ablauf eines Uploads / eines Einfügens
- Zuerst wie Suche
- Dokument gefunden Daten werden geliefert
- Dokument nicht gefunden InsertRequest
- Alle Knoten bis zum InsertRequest-Sender cachen
Daten
45Einfügen 2
- Vorteile
- Beliebte Daten werden oft gecached
- Keine Chance für gefälschte Daten (Kontrolle
Hash - -gtDaten)
46Freenet - Routing
- Routing ist Zielgerichtet
- Weiterleitung von Anfragen an Besitzer des
Dokuments mit ähnlichstem Schlüssel - Prinzip wie Suche eines Dorfs im Mittelalter
- Man geht von Dorf zu Dorf
- In jedem Dorf wird nach der Richtung gefragt
- Recht effizient
- Andere P2P-Netze oft wahlloses Fluten
- Das entspräche dem Schicken von Boten in alle
Dörfer - Das ist sehr ineffizient
47Freenet - Routing
- Wieso funktioniert es?
- Pos. Feedback-Schleife Knoten spezialisieren
sich auf einen bestimmten Schlüsselbereich - Dadurch werden sie häufiger referenziert
- Knoten spezialisieren sich weiter auf diesen
Bereich. - Knoten cachen mehr Daten aus diesem Bereich
- Außerdem Small-World-Effect
48Freenet - Hashes
- Wie kommt man an den Hash einer Datei?
- Durch separate Mitteilung via Web, Email, News,
... (CHK, SSK) - Durch raten und rechnen (KSK)
- Grund Unterschiedliche Schlüsselarten
- Content Hash Key (CHK)
- Keyword Signed Key (KSK)
- Signed Subspace Key (SSK)
49Freenet CHK Hashes
- Form freenetCHK_at_tiUTF8Gfb01jGf103hHl
- Schlüssel ist eindeutiger Hash der Datei
- Feste Länge
- Fälschungssicher
- Problem schlecht zu merken
50Freenet KSK Hashes
- Form freenetKSK_at_text/books/1984.html
- Erzeugung eines Schlüsselpaares aus
text/books/1984.html - Hash des öffentlichen Schlüssels ist Key
- Feste Länge
- Datei wird mit privatem Schlüssel signiert
(Integritätscheck) - Begrenzt Fälschungssicher Wer zuerst kommt,
mahlt zuerst
51Freenet SSK Hashes
- Schafft einen persönlichen Namensraum
- Schafft pseudonymes Filesharing
- Vorgehen
- Erzeugen eines pers. Schlüsselpaares
- Auswählen einer Beschreibung (wie KSK)
- Key Hash(Hash(Pub. Key), Hash(Beschreibung))
- Datei wird mit priv. Schlüssel signiert
52Freenet - Filterzwang?
- Wenn Knotenbetreiber den Cacheinhalt kennen
würden, müßten sie Filtermaßnahmen ergreifen - Also Daten werden verschlüsselt gespeichert
- Schlüssel nur Suchendem bekannt
- Brute Force dauert ewig
- Knotenbetreiber kennen den Cache-Inhalt nicht
- Ergebnis Filtern unmöglich
53Zusammenfassung 1
- Eigenschaften von Freenet - Vorteile
- Weitgehende Anonymität der Benutzer
- Zensur nahezu unmöglich
- Recht effizientes Routing und Caching
- Dezentrale Architektur
- Kein Single Point of Failure
- Guter Tradeoff zwischen Paranoia und Effizienz
54Zusammenfassung 2
- Eigenschaften von Freenet Nachteile
- Keine ordentliche Suchfunktion, fehlende Wilcards
- Ineffizienterer Datenverkehr als bisherige
P2P-Applikationen - Verbesserung des Routings möglich
55Freenet - Quellen
- 1 Ian Clarke et al., Freenet A Distributed
Anonymous Information Storage and Retrieval
System, Designing Privacy Enhancing
Technologies, Lecture Notes in Computer Science
2009, H. Federrath (ed.), Springer-Verlag,
Berlin, 2001, S. 46-66 - 2 Adam Langley, Freenet, Peer-to-Peer
Harnessing the Power of Disruptive Technologies,
A. Oram(ed.), OReilly and Assoc., Sebastopol,
Californien, 2001, S. 203-241 - 3 Ian Clarke et al., Protecting Free
Expression Online with Freenet, IEEE Internet
Computing Article, Jan./Feb. 2002, S.40-49, URL
geprüft 02.05.2004 http//freenet.sourceforge.net
/papers/freenet-ieee.pdf
56Freenet - Ende
Danke für die Aufmerksamkeit!