1 / 56

Dezentrale Architekturen

Dezentrale Architekturen. Gnutella Was ist Gnutella Geschichte Clients Protokoll Infrastruktur Suche / Antwort Kultivierung Traffic Probleme. Angreifbarkeit Anonymität Ausblick Freenet Funktionsweise Upload/Download Routing Hashes Zusammenfassung. Übersicht.

chance
Télécharger la présentation

Dezentrale Architekturen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dezentrale Architekturen

  2. Gnutella Was ist Gnutella Geschichte Clients Protokoll Infrastruktur Suche / Antwort Kultivierung Traffic Probleme Angreifbarkeit Anonymität Ausblick Freenet Funktionsweise Upload/Download Routing Hashes Zusammenfassung Übersicht Tinosch Ganjineh

  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) Tinosch Ganjineh

  4. Gnutella Philosophie • Ein Netzwerk zum Suchen und Entdecken • Gedacht für Mensch und nicht Maschine • Total dezentral  Nicht wirklich zu stoppen • Freie Interpretationder Anfrage • Suchanfrage wird unverändert weitergeleiet • Antworten können verschiedenste Form haben • Dateinamen • Werbe Nachrichten • URLs • “Anonymes“ Suchen Tinosch Ganjineh

  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 Tinosch Ganjineh

  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 Tinosch Ganjineh

  7. Windows Gnotella Toadnode Gnucleus BearShare* LimeWire Shareaza* PheX Gnewtella Linux/Unix Gnut LimeWire Gtk-Gnutella Mutella Phex Qtella * Closed source Gnutella Clients Tinosch Ganjineh

  8. 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 Cocktail Party Gnutella Tinosch Ganjineh

  9. 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 Cocktail Party Napster Tinosch Ganjineh

  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 : Tinosch Ganjineh

  11. Gnutella Protokoll [2] • Payload (Nutzlast) der Deskriptoren • Ping : hat kein Payload • Pong: • Query : • Query hit: • Push Req : Tinosch Ganjineh

  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) Tinosch Ganjineh

  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 hocBackbone Tinosch Ganjineh

  14. Gnutella Netz (GNet) Knotengröße proportional zur Bandbreite Tinosch Ganjineh

  15. Getting started • Man muss nur erstmal reinkommen • Gewusst wie : IRC, Hostcaches(GWebCaches) • Einmal verbunden, werden weitere Verbindungen aufgebaut ( ca. 5) • PongCaching : Cachen von Hostlisten anderer Servents (Freundes Freunde) • Lauschen und fleißig mitschreiben wer antwortet • Dead Links werden gelöscht • Nun kann das Suchen beginnen … Tinosch Ganjineh

  16. Gnutella Was ist Gnutella Geschichte Clients Protokoll Infrastruktur Suche / Antwort Kultivierung Traffic Probleme Angreifbarkeit Anonymität Ausblick Freenet Funktionsweise Upload/Download Routing Hashes Zusammenfassung Übersicht Tinosch Ganjineh

  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? Christian v. Prollius

  18. Verbreitung von Suchanfragen • Suchen durch: Broadcasting (Flooding) • Jeder Host schickt zu n Hosts (n~4) • Jedes Packet hat TTLt (t~7) • 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) Christian v. Prollius

  19. Auslastung Gnutella 0.4 Quelle : TU Ilmenau, Hauptseminar Telematik SS 2003 Christian v. Prollius

  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 Christian v. Prollius

  21. Verbindungsgraph bei Suchtiefe 4 (GraphViz von Gnucleus)

  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 anonymenChatten benutzt Christian v. Prollius

  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 Christian v. Prollius

  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) Christian v. Prollius

  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 Christian v. Prollius

  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-Listenab • Folge : Ballung des gesamten Gnutella Netz um wenige Hosts, die auf Internet-Seiten zu finden waren • Dadurch war Kommunikation praktisch unmöglich Christian v. Prollius

  27. Gnutella Traffic-Probleme [3] • Lösung desHost-CacheProblem • 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 HostCatcher löschen musste Christian v. Prollius

  28. Gnutella Was ist Gnutella Geschichte Clients Protokoll Infrastruktur Suche / Antwort Kultivierung Traffic Probleme Angreifbarkeit Anonymität Ausblick Freenet Funktionsweise Upload/Download Routing Hashes Zusammenfassung Übersicht Tinosch Ganjineh

  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 Thomas Schwaier

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

  31. Anonymität • Gnutella ist nichtanonym(!) • 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 Thomas Schwaier

  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 Thomas Schwaier

  33. „Next Generation“ / Ausblick Nächster GDF Release ? (aktuellGnutella 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? Thomas Schwaier

  34. Ausblick [2] UngelösteProbleme • Traffic-Reduktion insbes. bei Suchanfragen • Verbesserte Netztopologie Thomas Schwaier

  35. Weitere Entwicklungen[1] 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 Mike‘s Protocol (MP) • G2 inkompatibel zu G1 • G2Clients u.a. Morpheus, Shareaza, MLdonkey Thomas Schwaier

  36. Weitere Entwicklungen[2] 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 Thomas Schwaier

  37. Weitere Entwicklungen[3] • 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 ! Thomas Schwaier

  38. Gnutella - Quellen [1] Adam Langley, „Gnutella“, Peer-to-Peer: Harnessing the Power of Disruptive Technologies, A. Oram(ed.), O‘Reilly and Assoc., Sebastopol, Californien, 2001, Chapter 8 [2] Farhad Manjoo „Gnutella Bandwidth Bandits“, Salon.com08.08.2002 http://www.salon.com/tech/feature/2002/08/08/gnutella_developers/print.html [3] Gnutella² Developers Network http://www.gnutella2.com [4] Gnutella Protocol Development http://rfc-gnutella.sourceforge.net [5] „Gnutella“ bei Wikipedia http://en.wikipedia.org/wiki/Gnutella Stand: 05.05.2004 Florian Greb

  39. Freenet Noch ein Protokoll! Warum? • Sicherheit vor Zensur • Gewährleistung von Anonymität • Robustheit • Effizienz • Schutz vor juristischem Zwang Florian Greb

  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 Florian Greb

  41. Speichertabellen Abb. 2, Speicher einzelner Knoten [2] Florian Greb

  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 (TTL=0) • Timeouts und Daten werden wie auf dem Hinweg zurückgeschickt • Zwischenstationen cachen Daten Abb. 1, Sichtweite einzelner Knoten Florian Greb

  43. Freenet - Datentransfer Abb. 3, Routing zwischen Knoten, [3] Florian Greb

  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 Florian Greb

  45. Einfügen [2] • Vorteile: • Beliebte Daten werden oft gecached • Keine Chance für gefälschte Daten (Kontrolle: Hash ->Daten) Florian Greb

  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 Florian Greb

  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“ Florian Greb

  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) Florian Greb

  49. Freenet – CHK Hashes • Form: freenet:CHK@tiUTF8Gfb01jGf103hHl • Schlüssel ist eindeutiger Hash der Datei • Feste Länge • Fälschungssicher • Problem: schlecht zu merken Florian Greb

  50. Freenet – KSK Hashes • Form: freenet:KSK@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“ Florian Greb

More Related