filesharing-systeme fileserver für 50 peers dienen Æeinteilung in unternetze, anfragen werden...

30
Filesharing Filesharing - - Systeme Systeme Napster Napster , Freenet, , Freenet, Gnutella Gnutella , , KaZaA KaZaA Seminarvortrag von Stefan Weinbrenner, 747094 Seminarvortrag von Stefan Weinbrenner, 747094

Upload: ngonhi

Post on 04-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

FilesharingFilesharing--Systeme Systeme

NapsterNapster, Freenet,, Freenet, GnutellaGnutella,, KaZaA KaZaA

Seminarvortrag von Stefan Weinbrenner, 747094Seminarvortrag von Stefan Weinbrenner, 747094

Page 2: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

EinleitungEinleitung

Was ist ein P2PWas ist ein P2P--Netzwerk?Netzwerk?

Page 3: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

Gegenteil: ServerGegenteil: Server--ClientClient

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

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

•• Beispiel: WWW, MailBeispiel: WWW, Mail

Nachteile: hohe Anfälligkeit (Single Point ofNachteile: hohe Anfälligkeit (Single Point of FailureFailure); ungleiche ); ungleiche Netzlast, daNetzlast, da TrafficTraffic bei Server wesentlich höherbei Server wesentlich höher

Page 4: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

P2PP2P--NetzwerkNetzwerk

•• Peers: bieten Dienste an und nehmen welche in Anspruch Peers: bieten Dienste an und nehmen welche in Anspruch (Server und Client in einem)(Server und Client in einem)

•• Aufgabe: Speicherung und Bereitstellung von großen Aufgabe: Speicherung und Bereitstellung von großen Datenmengen, verteilt auf alle TeilnehmerDatenmengen, verteilt auf alle Teilnehmer

•• Hohe Dynamik: Hohe Dynamik:

–– häufig wechselnde Peershäufig wechselnde Peers

–– wenig dauerhaft verfügbare Datenquellenwenig dauerhaft verfügbare Datenquellen

–– hohe Heterogenität (Netzanbindung, Latenzzeiten, hohe Heterogenität (Netzanbindung, Latenzzeiten, Datenbestand, Onlinezeit)Datenbestand, Onlinezeit)

Page 5: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

P2PP2P--NetzwerkNetzwerk

•• Vorteile: Vorteile:

–– Daten liegen meist mehrmals vorDaten liegen meist mehrmals vor

–– Verlust eines Peers beeinflusst wegen redundanter Verlust eines Peers beeinflusst wegen redundanter Verbindungen nicht die IntegritVerbindungen nicht die Integritäät des Netzest des Netzes

–– leistungsfleistungsfäähige Serversysteme werden nicht benhige Serversysteme werden nicht benöötigttigt

–– weniger kontrollierbar (Nachteil?)weniger kontrollierbar (Nachteil?)

Page 6: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

TypisierungTypisierung

•• reine P2Preine P2P--Netze: jeder Peer hat die gleichen Aufgaben Netze: jeder Peer hat die gleichen Aufgaben

-- das "normale" das "normale" GnutellaGnutella

-- FreenetFreenet

•• hybride P2Phybride P2P--Netze: dedizierte Server übernehmen Aufgaben Netze: dedizierte Server übernehmen Aufgaben wie Indizierungwie Indizierung

-- NapsterNapster

-- AudiogalaxyAudiogalaxy

•• gemischte P2Pgemischte P2P--Netze: alle Peers haben zwar grundsätzlich Netze: alle Peers haben zwar grundsätzlich die gleichen Aufgaben, aber einige (leistungsfähigere) die gleichen Aufgaben, aber einige (leistungsfähigere) übernehmen mehr davon übernehmen mehr davon

-- KaZaA KaZaA (Super(Super--NodesNodes))

-- Gnutella Gnutella (Ultrapeers)(Ultrapeers)

Page 7: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

DieDie FilesharingFilesharing--SystemeSystemeim Detailim Detail

NapsterNapster, Freenet,, Freenet, GnutellaGnutella,, KaZaAKaZaA

Page 8: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

NapsterNapster

GeschichteGeschichte•• Mai 1999: Mai 1999: Napster Napster geht online und macht die P2Pgeht online und macht die P2P--Technik Technik

überhaupt populär, erstes großes P2Püberhaupt populär, erstes großes P2P--Netz.Netz.

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

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

Page 9: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

NapsterNapster

TypTyp•• hybrides P2Phybrides P2P--Netz, d.h. ClientNetz, d.h. Client--ServerServer--Prinzip noch erkennbarPrinzip noch erkennbar

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

Suchanfrage

Datentransfer

Page 10: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

NapsterNapster

SuchmethodeSuchmethode1.1. Connect Connect mit einem der Servermit einem der Server

2.2. Suche in den Suche in den connectetenconnecteten PeersPeers

3.3. WWeiterleitung der Suche an die anderen Servereiterleitung der Suche an die anderen Server

Bei Fund: Direktverbindung zwischen den PeersBei Fund: Direktverbindung zwischen den Peers

Suchanfrage

Datentransfer

Page 11: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

NapsterNapster

SuchmethodeSuchmethode•• Verfügbare MetadatenVerfügbare Metadaten

•• BandbreiteBandbreite

•• Anzahl anAnzahl an shared filesshared files

•• Anzahl an UpAnzahl an Up--/Downloads/Downloads

•• Name und Größe derName und Größe der shared filesshared files

•• IPIP--AdresseAdresse

Suchanfrage

Datentransfer

Page 12: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

NapsterNapster

FazitFazit•• war ein sehr großes P2Pwar ein sehr großes P2P--Netz, aber inzwischen offlineNetz, aber inzwischen offline

•• Indizierung ermöglicht schnelles SuchenIndizierung ermöglicht schnelles Suchen

•• zentralerzentraler ServerclusterServercluster bedeutetbedeutet singlesingle point ofpoint of failurefailure, , angreifbarangreifbar

Page 13: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

GeschichteGeschichte•• entwickelt von dem entwickelt von dem WinAmpWinAmp--Programmierer JustinProgrammierer Justin FrankelFrankel

(März 2000)(März 2000)

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

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

•• galt daher schon frgalt daher schon früüh als Alternative zu h als Alternative zu NapsterNapster

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

Page 14: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

GeschichteGeschichte•• AOL (AOL (NullsoftNullsoft wurde von AOL übernommen) war gegen ein wurde von AOL übernommen) war gegen ein

FilesharingFilesharing--Programm aus dem eigenen Hause, versuchte Programm aus dem eigenen Hause, versuchte Verbreitung zu verhindern.Verbreitung zu verhindern.

•• Die offizielle Seite wurde innerhalb 24 Stunden von AOL Die offizielle Seite wurde innerhalb 24 Stunden von AOL offline genommen.offline genommen.

•• Programmierer aus aller Welt versuchten die erste Version Programmierer aus aller Welt versuchten die erste Version nachzubauen (nachzubauen (reverse reverse engineering).engineering).

•• J. J. Frankel Frankel unterstützte dies, er wollte ursprünglich unterstützte dies, er wollte ursprünglich Gnutella Gnutella 1.0 als Open 1.0 als Open Source Source veröffentlichen.veröffentlichen.

•• Durch beabsichtigte Indiskretion kamen die genauen Durch beabsichtigte Indiskretion kamen die genauen Protokollspezifikationen an die Öffentlichkeit.Protokollspezifikationen an die Öffentlichkeit.

•• Danach wurden viele andere Clients entwickelt:Danach wurden viele andere Clients entwickelt: LimeWireLimeWire,,BearShareBearShare,, GnucleusGnucleus, die späteren Versionen von Morpheus, die späteren Versionen von Morpheus

Page 15: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

TypTyp•• reines P2Preines P2P--Netz (vollkommen dezentral), da alle Peers Netz (vollkommen dezentral), da alle Peers

gleiche Funktion habengleiche Funktion haben

•• Peers bilden Gruppen durchPeers bilden Gruppen durch PingPing//PongPong--Methode, diese Methode, diese Gruppen überlappen und Bilden zusammen dasGruppen überlappen und Bilden zusammen das GnutellaGnutella--Netzwerk (Netzwerk (overlap networkoverlap network))

•• Connect Connect üüber wellber well--known peers (gnutellahosts.com, known peers (gnutellahosts.com, router.limewire.com)router.limewire.com)

Page 16: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

SuchvorgangSuchvorgang•• BreitensucheBreitensuche (BFS): Anfragen werden an alle Nachbarn(BFS): Anfragen werden an alle Nachbarn

gebroadcastetgebroadcastet, jeder Peer gibt Anfragen mit TTL weiter und , jeder Peer gibt Anfragen mit TTL weiter und antwortet dem Anfragenden direkt bei Fundantwortet dem Anfragenden direkt bei Fund

•• ineffizientes Suchverfahren, da viel Bandbreite und ineffizientes Suchverfahren, da viel Bandbreite und Rechenzeit verbraucht, allerdings werden in sehr kurzer Zeit Rechenzeit verbraucht, allerdings werden in sehr kurzer Zeit alle Peers erreichtalle Peers erreicht

Page 17: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

Problem: SkalierbarkeitProblem: Skalierbarkeit•• BFS produziert sehr viel redundanten Verkehr: sehr BFS produziert sehr viel redundanten Verkehr: sehr

ineffizientineffizient

•• Jordan Ritter (Mitbegründer von Jordan Ritter (Mitbegründer von NapsterNapster) berechnete den ) berechnete den Zusammenhang zwischen der Zahl derZusammenhang zwischen der Zahl der NodesNodes, der Zahl der, der Zahl derConnectionsConnections propro NodeNode, der TTL, der Größe eines Paketes und , der TTL, der Größe eines Paketes und der Größe des davon erzeugten der Größe des davon erzeugten TrafficsTraffics..

•• Folgerung: BFS erzeugt zu hohe Netzbelastung und bringt Folgerung: BFS erzeugt zu hohe Netzbelastung und bringt letztlich das Netz zum erliegen. Gerade Peers mit letztlich das Netz zum erliegen. Gerade Peers mit Schmalbandverbindung sind oft komplett ausgelastet mit der Schmalbandverbindung sind oft komplett ausgelastet mit der Beantwortung von Suchanfragen.Beantwortung von Suchanfragen.

•• Akut wurde das Problem tatsächlich, alsAkut wurde das Problem tatsächlich, als NapsterNapster geschlossen geschlossen wurde und sehr viele User in kurzer Zeit als Alternative aufwurde und sehr viele User in kurzer Zeit als Alternative aufGnutellaGnutella wechselten („wechselten („Napster FloodNapster Flood“).“).

•• LLöösung: Erweiterungensung: Erweiterungen

Page 18: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

ErweiterungenErweiterungen•• Ultrapeers: Peers mit guter Netzanbindung, die temporär als Ultrapeers: Peers mit guter Netzanbindung, die temporär als

Server für 50 Peers dienen Server für 50 Peers dienen Einteilung in Unternetze, Einteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetzAnfragen werden nicht netzweit, sondern entweder subnetz--intern oder zwischen Ultrapeers ausgetauscht (seit intern oder zwischen Ultrapeers ausgetauscht (seit LimeWireLimeWire2.0)2.0)

•• Gnutella2Gnutella2--Protokoll (nicht abwProtokoll (nicht abwäärtskompatibel):rtskompatibel):

•• Umstieg von TCP auf UDPUmstieg von TCP auf UDP

•• intelligente intelligente RoutingRouting AlgorithmenAlgorithmen

•• Checksummen und Download in Checksummen und Download in Slices Slices (wurde mit(wurde mitShareaza Shareaza eingefeingefüührt)hrt)

Page 19: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

GnutellaGnutella

FazitFazit•• nur mittelmäßig großes, komplett dezentrales P2Pnur mittelmäßig großes, komplett dezentrales P2P--NetzNetz

•• offenes Protokolloffenes Protokoll

•• ist wegen ineffizienter Breitensuche (BFS) nicht skalierfähigist wegen ineffizienter Breitensuche (BFS) nicht skalierfähig

•• durch Erweiterungendurch Erweiterungen upgradebarupgradebar

Page 20: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

KaZaAKaZaA

GeschichteGeschichte•• basiert auf dem basiert auf dem FastTrackFastTrack--ProtokollProtokoll

•• wurde von den Schweden Niklaswurde von den Schweden Niklas ZennströmZennström und Janus Friis und Janus Friis im März 2001 durch ihre niederländische Firma veröffentlichtim März 2001 durch ihre niederländische Firma veröffentlicht

•• war Anfang 2003 die beliebteste Tauschbörse war Anfang 2003 die beliebteste Tauschbörse

•• hat mehr User alshat mehr User als NapsterNapster je hatteje hatte

•• proprietproprietääresres Protokoll (LizenzgebProtokoll (Lizenzgebüühren)hren)

•• Musikindustrie schleust gewollt gefMusikindustrie schleust gewollt gefäälschte MP3s ein um lschte MP3s ein um Tausch von copyrightTausch von copyright--geschgeschüütztem Material tztem Material entgegenzuwirken (seit Mitte 2002)entgegenzuwirken (seit Mitte 2002)

Page 21: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

KaZaAKaZaA

3 Versionen des Clients3 Versionen des Clients•• KaZaAKaZaA Media Desktop (KMD): Media Desktop (KMD): SpywareSpyware, d.h. finanziert sich , d.h. finanziert sich

über integrierte Software, die u.a. Surfgewohnheiten des über integrierte Software, die u.a. Surfgewohnheiten des User loggen sollUser loggen soll

•• KaZaAKaZaA Plus: Plus: spywarespyware--frei, allerdings nicht mehr kostenlosfrei, allerdings nicht mehr kostenlos

•• KaZaA Lite bzwKaZaA Lite bzw, K++: , K++: ThirdThird--PartyParty--Produkt, Anpassung vom Produkt, Anpassung vom KMD, bisherige Versuche K++ zu verbieten waren erfolglosKMD, bisherige Versuche K++ zu verbieten waren erfolglos

-- enthenthäält keine lt keine SpywareSpyware

-- deaktiviert Suchlimitsdeaktiviert Suchlimits

-- setzt den "setzt den "participation levelparticipation level" auf Maximum" auf Maximum

Page 22: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

KaZaAKaZaA

TypTyp•• zwischenzwischen NapsterNapster undund GnutellaGnutella: gemischtes P2P: gemischtes P2P--Netz, es Netz, es

gibt sog. Supergibt sog. Super--NodesNodes

•• basiert wiebasiert wie GroksterGrokster,, iMeshiMesh und Morpheus (die frühen und Morpheus (die frühen Versionen) auf demVersionen) auf dem FastTrackFastTrack--Protokoll.Protokoll. FastTrackFastTrack selbst ist selbst ist Erweiterung desErweiterung des GnutellaGnutella--Protokolls.Protokolls.

•• ConnectConnect geht geht üüber feste (hart codierte) IPber feste (hart codierte) IP--Adressen von Adressen von bekanntenbekannten SupernodesSupernodes..

Suchanfrage

Datentransfer

Page 23: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

KaZaAKaZaA

Vorteile zuVorteile zu GnutellaGnutella•• SupernodesSupernodes: Index: Index--Server (sieheServer (siehe NapsterNapster) für langsamere ) für langsamere

Clients Clients Reduktion der Netzbelastung, normale Clients Reduktion der Netzbelastung, normale Clients mmüüssen keine Suchanfragen mehr weiterleitenssen keine Suchanfragen mehr weiterleiten

•• Clients, die über viel RechenClients, die über viel Rechen-- und Netzkapazitäten verfügen, und Netzkapazitäten verfügen, werden automatisch zu werden automatisch zu Supernodes Supernodes (allerdings auch (allerdings auch deaktivierbar)deaktivierbar)

•• ResumeResume: Abgebrochene Übertragungen können fortgesetzt : Abgebrochene Übertragungen können fortgesetzt werden.werden.

•• Gleichzeitiges Downloaden von verschiedenen PeersGleichzeitiges Downloaden von verschiedenen Peers

•• participation levelparticipation level: Je mehr: Je mehr shared filesshared files, desto h, desto hööher derher derparticipation levelparticipation level. Je h. Je hööher derher der participation levelparticipation level, desto , desto grgrößößer ist die eigene Prioriter ist die eigene Prioritäät in anderer User t in anderer User Warteschlangen. Problem: K++ missbraucht diese FunktionWarteschlangen. Problem: K++ missbraucht diese Funktion..

Page 24: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

KaZaAKaZaA

FazitFazit•• baut aufbaut auf GnutellaGnutella auf, ist aber größer (mehr Peers)auf, ist aber größer (mehr Peers)

•• Skalierbarkeitsproblem durch Superpeers behoben (daher Skalierbarkeitsproblem durch Superpeers behoben (daher gemischtes P2P)gemischtes P2P)

•• proprietäresproprietäres Protokoll, Hersteller von Clients müssen Protokoll, Hersteller von Clients müssen Lizenzgebühren bezahlenLizenzgebühren bezahlen

•• ResumeResume undund SwarmingSwarming erherhööhen Datenaustauschratenhen Datenaustauschraten

Page 25: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

FreenetFreenet

GeschichteGeschichte•• entstanden im Juli 1999 aus einer Arbeit des damaligen entstanden im Juli 1999 aus einer Arbeit des damaligen

Studenten Ian Clarke aus Edinburgh, SchottlangStudenten Ian Clarke aus Edinburgh, Schottlang

•• Ziele: Anonymität, „Unzensierbarkeit“Ziele: Anonymität, „Unzensierbarkeit“

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

•• vollstvollstäändig in Java geschriebenndig in Java geschrieben

Page 26: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

FreenetFreenet

BeschreibungBeschreibung•• reines P2Preines P2P--Netz (vollkommen dezentral), da alle Peers Netz (vollkommen dezentral), da alle Peers

gleiche Funktion habengleiche Funktion haben

•• Daten werden nicht auf dem lokalen Peer, sondern mehrfach Daten werden nicht auf dem lokalen Peer, sondern mehrfach auf anderen Peers gespeichert: Halter der Daten ist nicht der auf anderen Peers gespeichert: Halter der Daten ist nicht der Bereitsteller! (Anonymisierung und Erhöhung der Bereitsteller! (Anonymisierung und Erhöhung der Verfügbarkeit)Verfügbarkeit)

•• Dateien haben eindeutig bestimmte Dateien haben eindeutig bestimmte IDsIDs, die sog. , die sog. Content Content Hash Keys (CHKs, normales SHAHash Keys (CHKs, normales SHA--1).1).

•• Datenaustausch findet anonym statt: Datenaustausch findet anonym statt: üüber eine Reihe von ber eine Reihe von Knoten, jede PeerKnoten, jede Peer--toto--PeerPeer--Connection Connection ist verschlist verschlüüsselt, an sselt, an keinem Zwischenpunkt sind die Endpunkte bekanntkeinem Zwischenpunkt sind die Endpunkte bekannt

Page 27: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

SuchvorgangSuchvorgang•• TiefensucheTiefensuche (DFS): Anfragen werden an jeweils einen (DFS): Anfragen werden an jeweils einen

Nachbarn geschickt. Nachbarn geschickt. •• Routing TablesRouting Tables: Knoten merken sich, wo welche: Knoten merken sich, wo welche CHKsCHKs liegen liegen

und fragen später auch bei ähnlichen (!)und fragen später auch bei ähnlichen (!) CHKsCHKs dort nach. dort nach. Ergebnis: Knoten spezialisieren sich auf bestimmte CHKErgebnis: Knoten spezialisieren sich auf bestimmte CHK--Bereiche.Bereiche.

•• sparsames, aber langsames Suchverfahren, da kaum sparsames, aber langsames Suchverfahren, da kaum Bandbreite und Rechenzeit verbraucht wird, allerdings ist die Bandbreite und Rechenzeit verbraucht wird, allerdings ist die Zeit um alle Peers zu erreichen sehr hochZeit um alle Peers zu erreichen sehr hoch

FreenetFreenet

Data request

Data reply

Request failed

Page 28: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

FreenetFreenet

EinfEinfüügevorganggevorgang•• Daten werden dort eingefügt, wo Daten werden dort eingefügt, wo QueriesQueries auch enden würdeauch enden würde

•• dem eigenen Knoten wird INSERTdem eigenen Knoten wird INSERT--MessageMessage mit TTL mit TTL übergeben, INSERT wird wie QUERY behandeltübergeben, INSERT wird wie QUERY behandelt

•• ist TTL = 0 gibt der Knoten ein OKist TTL = 0 gibt der Knoten ein OK--Signal zurück, Daten Signal zurück, Daten werden über diese Route hochgeladenwerden über diese Route hochgeladen

•• Knoten auf Route passen ihreKnoten auf Route passen ihre RoutingtablesRoutingtables an.an.

•• WWäährend der hrend der ÜÜbertragungen: Daten werden manchmal bertragungen: Daten werden manchmal gecachedgecached, R, Rüückweg wird manchmal verschleiert (ein Knoten ckweg wird manchmal verschleiert (ein Knoten gibt sich selbst als Sender aus und speichert intern den gibt sich selbst als Sender aus und speichert intern den echten Sender)echten Sender)

Page 29: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

FreenetFreenet

FazitFazit•• recht kleines, vollkommen dezentrales P2Precht kleines, vollkommen dezentrales P2P--NetzNetz

•• Daten werden nicht auf dem bereitstellenden System, Daten werden nicht auf dem bereitstellenden System, sondern im Netz verteilt gespeichert.sondern im Netz verteilt gespeichert.

•• Datenbereitsteller und Datenhalter sind anonym und können Datenbereitsteller und Datenhalter sind anonym und können nicht ermittelt werden.nicht ermittelt werden.

•• stark eingeschränkte Suchmöglichkeitenstark eingeschränkte Suchmöglichkeiten

•• Zur Suche wird nur ein benachbarter Knoten gefragt Zur Suche wird nur ein benachbarter Knoten gefragt (Tiefensuche, DFS)(Tiefensuche, DFS)..

Page 30: Filesharing-Systeme fileServer für 50 Peers dienen ÆEinteilung in Unternetze, Anfragen werden nicht netzweit, sondern entweder subnetz- intern oder zwischen Ultrapeers ausgetauscht

TabellarischerTabellarischer ÜÜberblickberblick

mehrere mehrere Tausend (??)Tausend (??)

schlechte schlechte SuchmSuchmöögg--lichkeitlichkeit

AnonymitAnonymitäät, t, verteilte verteilte SpeicherungSpeicherung

DFSDFSreinreinFreenetFreenet

3M 3M -- 5M5Mnur 100 nur 100 Suchtreffer,Suchtreffer,SpywareSpyware

dezentral, dezentral, skaliert,skaliert,ResumeResume,,SwarmingSwarming

mod. BFSmod. BFSgemischtgemischtKaZaAKaZaA((FasttrackFasttrack))

20K 20K -- 40K40KSkalierbarSkalierbar--keitkeit

dezentral, dezentral, erweiterbarerweiterbar

BFSBFSreinreinGnutellaGnutella

13.600.00013.600.000(im Feb (im Feb ‘‘01)01)

zentral zentral (SPOF)(SPOF)

schnelle Suche schnelle Suche (Indexserver)(Indexserver)

IndexIndex--serverserver

hybridhybridNapsterNapster

GrGrößöße in e in Peers (ca.)Peers (ca.)

SchwSchwäächenchenStStäärkenrkenSuchSuch--methodemethode

StrukturStruktur