1 Peer to Peer – GNUTELLA Seminar Innovative Netztechnologien Christophe LE ROQUAIS, den 17. Juni...

Preview:

Citation preview

1

Peer to Peer – GNUTELLAPeer to Peer – GNUTELLASeminar Innovative Netztechnologien

Christophe LE ROQUAIS, den 17. Juni 2002

2

20 Slides :

• P2P, Grundkenntnisse

- Client/Server- P2P Topologien

• Gnutella- Funktionsweise- Nachrichten- Beispiel

Inhaltverzeichnis

3

Client / Server P2P

Wie erreichen Dateien in einem Netz ?

4

Definition

„Peer to peer is a communications modell in which each party has the same capabilities and either party can initiate a communication session. Peer to peer communications is implemented by giving each communication node both server and client capabilities (Servents).“

Geschichte

• Ursprüngliche Idee des Internet

• Aktuellen PCs leistunfähig genug um Server zu sein

• Beispiel : ICQ 1996, Gnutella 2000

P2P, was ist das ?

5

Benutzung von P2P

• File SharingZ.B : Napster, Gnutella

• Ressource sharingZ.B : Seti@home

• Collaborative ComputingZ.B : ICQ

6

P2P Topologien

Wie Napster : Verzeichnisserver Wie Gnutella : mit kein jeder Server

7

Gnutella, P2P für File Sharing

• Idee : „Werkzeug, leistungfähiger als Napster, um Dateien zu teilen“

• Projekt von Justin Frankel und Tom Pepper (Nullsoft)

• Heute, viele verschiedene Anwendungen : Gnotella, Morpheus, kaZaA, Gnucleus...

8

Wie funktionniert Gnutella ?

• Verbindung zum Netzwerk

• Entdecken von neuen Peers

• Dateien suchen

• Dateien download

9

Verbindung zum Netzwerk

• Kentniss einer Adresse eines Peer mit seiner TCP portz.B : connect1.gnutellanet.com:6346

• Verbindung Nachricht

Sender : GNUTELLA CONNECT/<protocol versionstring>\n\n

Empfänger : GNUTELLA OK\n\n

10

Gnutella Nachrichten

Ping : Endecken neuen Peers

Push : erlauben einem firewalled Servent Dateien zu teilen

QueryHit : Antwort auf eine Query

Query : um Dateien zu suchen

Pong : Antwort auf einem Ping

11

Entdecken neuen Peers

• Periodische Ping Nachrichten

• Empfängt Pong Nachricht aus die anderen Peers

• Wenn die andere Peers nicht so weit sind : Sendungen von Verbindung Nachrichten (Connect)

12

Download

• Suchung

Sendung einer Query Nachricht

• Download direkt mit HTTP v1.0

GET /<index>/<file name>/HTTP/1.0Connection : Keep-Alive Range : bytes=0-

HTTP200 OK Server : GnutellaContent-type : application/binary Content-length : <file size in bytes>

13

Übertragungsregeln

• Regel A. Ein Knoten verbreitet Ping und Query Nachrichten zu seinem nähesten Nachbarn usw...

• Regel B. Pong, Query Nachrichten müssen durch den gleichen Pfad wie der anfängliche Pfad verbreitet werden

• Regel C. Ein Knoten reduziert das TTL Feld um eins bevor die Nachricht verbreitet wird.

• Regel D. Wenn ein Knoten eine ähnliche Nachricht als vorher empfängt, stoppt er die Verbreitung

14

TTL, Time to Live

• Feld im Gnutella Kopf Nachrichten

• Lebensdauer einer Nachricht

• Wert reduziert um 1 nach einer Weitersendung

• TTL = 0 bedeutet, dass die Nachricht verworfen ist

15

Firewalled Servents

• Laptop hinter einer Firewall

• Push Nachricht, so dass der Laptop die http Verbindung initiiert

16

Beispiel 1/5

Situation

• Knoten 2, 3, 4 schon angebunden

• Knoten1 möchte Lied von „Osternhagen“ herunterladen

• Nur IP Adresse des Knoten 4 gekennt

• Nur Knoten 3 teilt Lieder von „Osternhagen“

• Keine Firewall

• TTL = 1 für Ping Nachrichten

• TTL = 2 für andere Nachrichten

17

Beispiel 2/5

1. Connect

2. OK

18

Beispiel 3/5

3. Ping

4. Pong

4´. Ping

19

Beispiel 4/5

5. Query : „osternhagen mp3“

6. Query

7. QueryHit

7´. QueryHit8. QueryHit

Osternhagen.mp3

20

Beispiel 5/5

9. Get (http)10. HTTP200 OK

(download)

21

Gnutella Topologie

22

Statistik

• Mehr als 400 000 Knoten, die mindestens einmal aktiv waren

• 3 Mio. Dateien üner 600 Tbyte Daten

• Ca. 40% der Knoten verlassen das Netz nach weniger 4 Stunden

• 36% des Verkehrs für Query-Nachrichten

• 25% für Ping und Pong

• 9% für Push

• 70 % der Gnutella Teilnehmer bieten keine Dateien zum Download an

• Fast 50% aller Anfragen werden nur 1 % der Peers beantwortet

23

Zusammenfassung

• P2P wird die Client/Server Architekturnicht ersetzen

• Gnutella benutzt http Protokoll für downloads

• Gnutella noch sehr neu

• Viele mögliche Verbesserungen (Datenrate, Sichereit...)

Recommended