Peer-to-Peer-Netzwerke: Algorithmen und Methoden
gestellt hat. Dieser kann die gesuchte Datei dann direkt von einem dieser Clients herunterladen.
Dieser letzte Schritt des Datei-Austausches ist der einzige Schritt, der unserer eingangs formulierten Definition eines Peer-to-Peer-Netzwerks entspricht. Man kann sich vorstellen, dass these Losung genau dann Sinn macht, wenn der Server nicht in der Lage ist, alle Dateien zu speichern. Auch wird so unnotiger Datenverkehr zwischen Server and Clients vermieden. Und genau dieser Aspekt regte die Fantasie vieler Entwickler an, diesen Mechanismus weiter auszubauen.
Diskussion
Die Vorteile von Napster sind dessen Einfachheit and die Moglichkeit, schnell and effizient Dateiverweise zu linden.
Nachteilig ist vor allem die Client-Server-Struktur, die feindliche Eingriffe in das System erleichtert. Dies muss nicht unbedingt eine richterliche VerfUgung im Auftrag eines Musikverlegers sein, es kann sich auch um die repressive Verfolgung in einem Unrechtsstaat handeln. Des Weiteren sind auch Denial-of-Service-Angriffe eine einfache Methode, solch zentrale Strukturen lahmzulegen. Genauso kann das Versagen eines solchen Systems durch einen Systemausfall der zentralen Komponente geschehen (Programmabsturz, Hardware-Ausfall, etc.). Man darf aber auch nicht ubersehen, dass eine Client-Server-Struktur eine Reihe von Vorteilen mit sick bringt. So lasst sich der Zugang zentral koordinieren and fur den Fall einer Kommerzialisie- rung, wie bei Napster geschehen, die Bezahlung der Dienste sehr gut organisieren.
Ein Nachteil einer zentralen Komponente ist die mangelnde Skalierbarkeit. Wenn die Teilnehmerzahl zunimmt, kann der zentrale Server die Anfragen nicht mehr schnell genug bearbeiten. AuBerdem kann schon die Speicherung der Meta-Daten einen nicht besonders ausgelegten Server uberfordern.
Als Resumee bleibt festzuhalten, dass Napster nur zum Teil ein Peer-to-PeerNetzwerk darstellt. Bis auf die direkte Verbindung beim Dateiaustausch ist Napster gar kein Peer-to-Peer-Netzwerk im eigentlichen Sinn.
3.2 Gnutella
Das Gnutella-Netzwerk [7] wurde im Marz 2000 von Justin Frankel and Tom Pepper (Nullsoft) vorgestellt. Wie auch bei Napster handelt es sich bei Gnutella um ein FileSharing-Netzwerk. Im Gegensatz zu Napster ist Gnutella jedoch ein Peer-to-PeerNetzwerk, das ohne zentrale Strukturen auskommt.
Aufbau
Wie kann man erreichen, dass ein Netzwerk ohne die Nutzung zentraler Strukturen entsteht? Das erste Problem tritt bereits auf, wenn sich ein Peer zum ersten Mal beim Netzwerk anmeldet. Ein solcher Peer, der dem Netzwerk beitreten will, muss zwangslaufig einen Peer kontaktieren, der bereits Teil des Netzwerks ist. Da die Peers einander anfangs nicht kennen, mussen Adressen ausgewahlter Peers entweder Bestandteil der Software sein, um beim erstmaligen Einsatz dem Netzwerk beitreten zu kennen. Wie kann man aber verhindern, dass these nicht als Server dienen?
Gnutella lost these Problematik, die auch als Bootstrapping bezeichnet wird, folgendermaBen: Beim erstmaligen Aufruf eines Gnutella-Clients wird eine mit der Software gelieferte Liste von Peers bzw. IP-Adressen verwendet. Diese werden der Reihe nach durchprobiert, bis ein gerade aktiver Peer gefunden wird. Von diesem aus werden die nachsten Nachbarn and deren Nachbarn bis zum k-nachsten Nachbarn abgefragt. Aus diesen Ruckmeldungen aktiver Peers wird eine eigene Liste von Gnutella Peers aufgebaut. Hat ein Peer erst eine solche Liste gewonnen, so wird diese gespeichert and beirn nachsten Start anstelle (oder zusatzlich) zu der in der Software gespeicherten verwendet um sich in das Netzwerk einzubinden.
Gnutella besitzt ein eigenes Protokoll [7], das auf TCP-Verbindungen aufbaut. Es benutzt die funf Nachrichtentypen Ping, Pong, Query, QueryHit and Push, die wir im Folgenden kurz erlautern.
Ping wird benutzt, um andere Peers im Netzwerk zu finden and Bich ins Netzwerk einzubinden. Der Empfanger einer Ping-Nachricht antwortet mit einer Pong- Nachricht.
Pong ist die Antwort auf eine Ping-Nachricht. Diese Nachricht enthalt IP and Port- Adresse sowie Anzahl and GroBe bereitgestellter Dateien des antwortenden Peers.
Query ist ein Mechanismus fur die Suche nach Dateien im Netzwerk mittels eines Such-Strings. Ein Peer, der eine Query-Nachricht erhalt, antwortet mit einer QueryHit-Nachricht, falls eine von ihm bereitgestellte Datei der Anfrage entspricht.
QueryHit ist die Antwort auf eine Query-Nachricht. Diese Nachricht enthalt IP and Port-Adresse, Verbindungsgeschwindigkeit and die
Weitere Kostenlose Bücher