; Filesharing-Systeme
Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out
Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Filesharing-Systeme

VIEWS: 6 PAGES: 30

  • pg 1
									Filesharing-Systeme
 Napster, Freenet, Gnutella, KaZaA




    Seminarvortrag von Stefan Weinbrenner, 747094
     Einleitung

Was ist ein P2P-Netzwerk?
              Gegenteil: Server-Client




• Server: bieten möglichst dauerhaft verfügbar einen Dienst
  (z.B. Bereitstellung von Daten) an
  Clients: verbinden sich bei Bedarf nach diesem Dienst mit
  den Servern

• Kommunikation: nur „Client zu Server“ oder „Server zu
  Client“ (normalerweise)

• Beispiel: WWW, Mail

Nachteile: hohe Anfälligkeit (Single Point of Failure); ungleiche
  Netzlast, da Traffic bei Server wesentlich höher
                    P2P-Netzwerk




• Peers: bieten Dienste an und nehmen welche in Anspruch
  (Server und Client in einem)
• Aufgabe: Speicherung und Bereitstellung von großen
  Datenmengen, verteilt auf alle Teilnehmer
• Hohe Dynamik:
   – häufig wechselnde Peers
   – wenig dauerhaft verfügbare Datenquellen
   – hohe Heterogenität (Netzanbindung, Latenzzeiten,
     Datenbestand, Onlinezeit)
                     P2P-Netzwerk




• Vorteile:
   – Daten liegen meist mehrmals vor
   – Verlust eines Peers beeinflusst wegen redundanter
     Verbindungen nicht die Integrität des Netzes
   – leistungsfähige Serversysteme werden nicht benötigt
   – weniger kontrollierbar (Nachteil?)
                      Typisierung

• reine P2P-Netze: jeder Peer hat die gleichen Aufgaben
   - das "normale" Gnutella
   - Freenet
• hybride P2P-Netze: dedizierte Server übernehmen Aufgaben
  wie Indizierung
   - Napster
   - Audiogalaxy
• gemischte P2P-Netze: alle Peers haben zwar grundsätzlich
  die gleichen Aufgaben, aber einige (leistungsfähigere)
  übernehmen mehr davon
   - KaZaA (Super-Nodes)
   - Gnutella (Ultrapeers)
Die Filesharing-Systeme
        im Detail

Napster, Freenet, Gnutella, KaZaA
                         Napster

Geschichte
• Mai 1999: Napster geht online und macht die P2P-Technik
  überhaupt populär, erstes großes P2P-Netz.

• Dezember 1999: Napster wird von der amerikanischen
  Musikindustrie (RIAA) juristisch angegriffen wegen
  Urheberrechtsverletzung.

• März 2001: Napster geht in der ursprünglichen Form offline.
                         Napster

Typ
• hybrides P2P-Netz, d.h. Client-Server-Prinzip noch erkennbar

• zentraler Servercluster (ca. 160 Server) mit der Aufgabe die
  Daten zu indizieren, Metadaten über Peers bereitzustellen




                                           Suchanfrage
                                           Datentransfer
                         Napster

Suchmethode
1.   Connect mit einem der Server
2.   Suche in den connecteten Peers
3.   Weiterleitung der Suche an die anderen Server
Bei Fund: Direktverbindung zwischen den Peers




                                          Suchanfrage
                                          Datentransfer
                              Napster

Suchmethode
• Verfügbare Metadaten
   • Bandbreite
   • Anzahl an shared files
   • Anzahl an Up-/Downloads
   • Name und Größe der shared files
   • IP-Adresse




                                        Suchanfrage
                                        Datentransfer
                        Napster

Fazit
• war ein sehr großes P2P-Netz, aber inzwischen offline

• Indizierung ermöglicht schnelles Suchen

• zentraler Servercluster bedeutet single point of failure,
  angreifbar
                          Gnutella

Geschichte
• entwickelt von dem WinAmp-Programmierer Justin Frankel
  (März 2000)

• wurde nur für "einige Hundert Benutzer" konzipiert

• Gnutella ist freie Software (offenes Protokoll), keine Firma
  steht dahinter, kann also nicht wie Napster juristisch verfolgt
  werden

• galt daher schon früh als Alternative zu Napster

• „Gnutella“ ist eine Verbindung aus GNU und Nutella, dem
  Lieblingsbrotaufstrich von J. Frankel.
                          Gnutella

Geschichte
• AOL (Nullsoft wurde von AOL übernommen) war gegen ein
  Filesharing-Programm aus dem eigenen Hause, versuchte
  Verbreitung zu verhindern.
• Die offizielle Seite wurde innerhalb 24 Stunden von AOL
  offline genommen.
• Programmierer aus aller Welt versuchten die erste Version
  nachzubauen (reverse engineering).
• J. Frankel unterstützte dies, er wollte ursprünglich Gnutella
  1.0 als Open Source veröffentlichen.
• Durch beabsichtigte Indiskretion kamen die genauen
  Protokollspezifikationen an die Öffentlichkeit.
• Danach wurden viele andere Clients entwickelt: LimeWire,
  BearShare, Gnucleus, die späteren Versionen von Morpheus
                        Gnutella

Typ
• reines P2P-Netz (vollkommen dezentral), da alle Peers
  gleiche Funktion haben
• Peers bilden Gruppen durch Ping/Pong-Methode, diese
  Gruppen überlappen und Bilden zusammen das Gnutella-
  Netzwerk (overlap network)
• Connect über well-known peers (gnutellahosts.com,
  router.limewire.com)
                         Gnutella

Suchvorgang
• Breitensuche (BFS): Anfragen werden an alle Nachbarn
  gebroadcastet, jeder Peer gibt Anfragen mit TTL weiter und
  antwortet dem Anfragenden direkt bei Fund
• ineffizientes Suchverfahren, da viel Bandbreite und
  Rechenzeit verbraucht, allerdings werden in sehr kurzer Zeit
  alle Peers erreicht
                        Gnutella

Problem: Skalierbarkeit
• BFS produziert sehr viel redundanten Verkehr: sehr
  ineffizient
• Jordan Ritter (Mitbegründer von Napster) berechnete den
  Zusammenhang zwischen der Zahl der Nodes, der Zahl der
  Connections pro Node, der TTL, der Größe eines Paketes und
  der Größe des davon erzeugten Traffics.
• Folgerung: BFS erzeugt zu hohe Netzbelastung und bringt
  letztlich das Netz zum erliegen. Gerade Peers mit
  Schmalbandverbindung sind oft komplett ausgelastet mit der
  Beantwortung von Suchanfragen.
• Akut wurde das Problem tatsächlich, als Napster geschlossen
  wurde und sehr viele User in kurzer Zeit als Alternative auf
  Gnutella wechselten („Napster Flood“).
• Lösung: Erweiterungen
                        Gnutella

Erweiterungen
• Ultrapeers: Peers mit guter Netzanbindung, die temporär als
  Server für 50 Peers dienen  Einteilung in Unternetze,
  Anfragen werden nicht netzweit, sondern entweder subnetz-
  intern oder zwischen Ultrapeers ausgetauscht (seit LimeWire
  2.0)
• Gnutella2-Protokoll (nicht abwärtskompatibel):
   • Umstieg von TCP auf UDP
   • intelligente Routing Algorithmen
   • Checksummen und Download in Slices (wurde mit
     Shareaza eingeführt)
                         Gnutella

Fazit
• nur mittelmäßig großes, komplett dezentrales P2P-Netz
• offenes Protokoll
• ist wegen ineffizienter Breitensuche (BFS) nicht skalierfähig
• durch Erweiterungen upgradebar
                          KaZaA

Geschichte
• basiert auf dem FastTrack-Protokoll
• wurde von den Schweden Niklas Zennström und Janus Friis
  im März 2001 durch ihre niederländische Firma veröffentlicht
• war Anfang 2003 die beliebteste Tauschbörse
• hat mehr User als Napster je hatte
• proprietäres Protokoll (Lizenzgebühren)
• Musikindustrie schleust gewollt gefälschte MP3s ein um
  Tausch von copyright-geschütztem Material
  entgegenzuwirken (seit Mitte 2002)
                          KaZaA

3 Versionen des Clients
• KaZaA Media Desktop (KMD): Spyware, d.h. finanziert sich
  über integrierte Software, die u.a. Surfgewohnheiten des
  User loggen soll

• KaZaA Plus: spyware-frei, allerdings nicht mehr kostenlos

• KaZaA Lite bzw, K++: Third-Party-Produkt, Anpassung vom
  KMD, bisherige Versuche K++ zu verbieten waren erfolglos

   - enthält keine Spyware

   - deaktiviert Suchlimits

   - setzt den "participation level" auf Maximum
                          KaZaA

Typ
• zwischen Napster und Gnutella: gemischtes P2P-Netz, es
  gibt sog. Super-Nodes
• basiert wie Grokster, iMesh und Morpheus (die frühen
  Versionen) auf dem FastTrack-Protokoll. FastTrack selbst ist
  Erweiterung des Gnutella-Protokolls.
• Connect geht über feste (hart codierte) IP-Adressen von
  bekannten Supernodes.




                                                   Suchanfrage
                                                   Datentransfer
                          KaZaA

Vorteile zu Gnutella
• Supernodes: Index-Server (siehe Napster) für langsamere
  Clients  Reduktion der Netzbelastung, normale Clients
  müssen keine Suchanfragen mehr weiterleiten
• Clients, die über viel Rechen- und Netzkapazitäten verfügen,
  werden automatisch zu Supernodes (allerdings auch
  deaktivierbar)
• Resume: Abgebrochene Übertragungen können fortgesetzt
  werden.
• Gleichzeitiges Downloaden von verschiedenen Peers
• participation level: Je mehr shared files, desto höher der
  participation level. Je höher der participation level, desto
  größer ist die eigene Priorität in anderer User
  Warteschlangen. Problem: K++ missbraucht diese Funktion.
                          KaZaA

Fazit
• baut auf Gnutella auf, ist aber größer (mehr Peers)
• Skalierbarkeitsproblem durch Superpeers behoben (daher
  gemischtes P2P)
• proprietäres Protokoll, Hersteller von Clients müssen
  Lizenzgebühren bezahlen
• Resume und Swarming erhöhen Datenaustauschraten
                         Freenet

Geschichte
• entstanden im Juli 1999 aus einer Arbeit des damaligen
  Studenten Ian Clarke aus Edinburgh, Schottlang

• Ziele: Anonymität, „Unzensierbarkeit“

• Hintergrund: Antwort auf die vermehrten Versuche das
  Internet zu zensieren, den Zugang zu bestimmten Daten zu
  kontrollieren oder die Autoren bestimmter Inhalte zu
  verfolgen

• vollständig in Java geschrieben
                          Freenet

Beschreibung
• reines P2P-Netz (vollkommen dezentral), da alle Peers
  gleiche Funktion haben
• Daten werden nicht auf dem lokalen Peer, sondern mehrfach
  auf anderen Peers gespeichert: Halter der Daten ist nicht der
  Bereitsteller! (Anonymisierung und Erhöhung der
  Verfügbarkeit)
• Dateien haben eindeutig bestimmte IDs, die sog. Content
  Hash Keys (CHKs, normales SHA-1).
• Datenaustausch findet anonym statt: über eine Reihe von
  Knoten, jede Peer-to-Peer-Connection ist verschlüsselt, an
  keinem Zwischenpunkt sind die Endpunkte bekannt
                          Freenet

Suchvorgang
• Tiefensuche (DFS): Anfragen werden an jeweils einen
  Nachbarn geschickt.
• Routing Tables: Knoten merken sich, wo welche CHKs liegen
  und fragen später auch bei ähnlichen (!) CHKs dort nach.
  Ergebnis: Knoten spezialisieren sich auf bestimmte CHK-
  Bereiche.
• sparsames, aber langsames Suchverfahren, da kaum
  Bandbreite und Rechenzeit verbraucht wird, allerdings ist die
  Zeit um alle Peers zu erreichen sehr hoch

                                        Data request
                                        Data reply
                                        Request failed
                         Freenet

Einfügevorgang
• Daten werden dort eingefügt, wo Queries auch enden würde
• dem eigenen Knoten wird INSERT-Message mit TTL
  übergeben, INSERT wird wie QUERY behandelt
• ist TTL = 0 gibt der Knoten ein OK-Signal zurück, Daten
  werden über diese Route hochgeladen
• Knoten auf Route passen ihre Routingtables an.
• Während der Übertragungen: Daten werden manchmal
  gecached, Rückweg wird manchmal verschleiert (ein Knoten
  gibt sich selbst als Sender aus und speichert intern den
  echten Sender)
                        Freenet

Fazit
• recht kleines, vollkommen dezentrales P2P-Netz
• Daten werden nicht auf dem bereitstellenden System,
  sondern im Netz verteilt gespeichert.
• Datenbereitsteller und Datenhalter sind anonym und können
  nicht ermittelt werden.
• stark eingeschränkte Suchmöglichkeiten
• Zur Suche wird nur ein benachbarter Knoten gefragt
  (Tiefensuche, DFS).
                     Tabellarischer Überblick

              Struktur   Such-      Stärken          Schwächen      Größe in
                         methode                                    Peers (ca.)

Napster       hybrid     Index-     schnelle Suche   zentral        13.600.000
                         server     (Indexserver)    (SPOF)         (im Feb ‘01)


Gnutella      rein       BFS        dezentral,       Skalierbar-    20K - 40K
                                    erweiterbar      keit

KaZaA         gemischt   mod. BFS   dezentral,       nur 100        3M - 5M
(Fasttrack)                         skaliert,        Suchtreffer,
                                    Resume,          Spyware
                                    Swarming
Freenet       rein       DFS        Anonymität,      schlechte      mehrere
                                    verteilte        Suchmög-       Tausend (??)
                                    Speicherung      lichkeit

								
To top