Dezentrale%20Architekturen - PowerPoint PPT Presentation

About This Presentation
Title:

Dezentrale%20Architekturen

Description:

Title: Dezentrale Architekturen Author: Florian Greb, Tinosch Ganjineh, Christian v. Prollius, Thomas Schwaier Last modified by: P2p Created Date – PowerPoint PPT presentation

Number of Views:141
Avg rating:3.0/5.0
Slides: 57
Provided by: Flori100
Category:

less

Transcript and Presenter's Notes

Title: Dezentrale%20Architekturen


1
Dezentrale 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

3
Was 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)

4
Gnutella 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

5
Gnutella 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

6
Gnutella 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

7
Gnutella 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

10
Gnutella 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

11
Gnutella Protokoll 2
  • Payload (Nutzlast) der Deskriptoren
  • Ping hat kein Payload
  • Pong
  • Query
  • Query hit
  • Push Req

12
Gnutella 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)

13
Selbstorganisierendes 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

14
Gnutella Netz (GNet)
  • Knotengröße proportional zur Bandbreite

15
Getting 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
20
Gnutella 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)
22
Dynamisches 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

23
Handling 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

24
Gnutella 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)

25
Gnutella 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

26
Gnutella 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

27
Gnutella 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

29
Rechtliche 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

30
Technische Angriffe
  • DoS-Attacken
  • Clients Xoloco Qtraxmax führten zu
    Netztüberlastung durch (query) flooding
  • Gezielte DoS-Attacken gegen Supernodes

31
Anonymitä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

32
Pseudoanonymitä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

33
Next 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?

34
Ausblick 2
  • Ungelöste Probleme
  • Traffic-Reduktion insbes. bei Suchanfragen
  • Verbesserte Netztopologie

35
Weitere 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

36
Weitere 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

37
Weitere 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 !

38
Gnutella - 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
39
Freenet
  • Noch ein Protokoll! Warum?
  • Sicherheit vor Zensur
  • Gewährleistung von Anonymität
  • Robustheit
  • Effizienz
  • Schutz vor juristischem Zwang

40
Freenet - 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
41
Speichertabellen
Abb. 2, Speicher einzelner Knoten 2
42
Freenet - 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
43
Freenet - Datentransfer
Abb. 3, Routing zwischen Knoten, 3
44
Einfü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

45
Einfügen 2
  • Vorteile
  • Beliebte Daten werden oft gecached
  • Keine Chance für gefälschte Daten (Kontrolle
    Hash
  • -gtDaten)

46
Freenet - 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

47
Freenet - 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

48
Freenet - 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)

49
Freenet CHK Hashes
  • Form freenetCHK_at_tiUTF8Gfb01jGf103hHl
  • Schlüssel ist eindeutiger Hash der Datei
  • Feste Länge
  • Fälschungssicher
  • Problem schlecht zu merken

50
Freenet 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

51
Freenet 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

52
Freenet - 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

53
Zusammenfassung 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

54
Zusammenfassung 2
  • Eigenschaften von Freenet Nachteile
  • Keine ordentliche Suchfunktion, fehlende Wilcards
  • Ineffizienterer Datenverkehr als bisherige
    P2P-Applikationen
  • Verbesserung des Routings möglich

55
Freenet - 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

56
Freenet - Ende
Danke für die Aufmerksamkeit!
Write a Comment
User Comments (0)
About PowerShow.com