Gnutella 0.6. Vorstellung eines Filesharing-Protokolls. Wolfgang Steudel: Das Gnutella-Protokoll 2/15. Inhalt

Ähnliche Dokumente
Einführung in unstrukturierte p2p Systeme wie Gnutella. HamzaOuldBakar. Chair for Communication Technology (ComTec(

Diplomanden- und Doktorandenseminar. Implementierung eines Gnutella-Clients für IPv6

Seminar Moderne Konzepte für weitverteilte Systeme SS 02

Einführung in unstrukturierte P2P Systeme Wie Gnutella.

Media Delivery Networks Systeme und deren Anwendung. Seminar Content Delivery Networks Universität Mannheim WS 04/05 Ali Ikinci

11 Peer-to-Peer-Netzwerke

Hypertext Transfer Protocol

2. WWW-Protokolle und -Formate

Inhalt. Literatur. Dr. Felix Heine Complex and Distributed IT-Systems

Peer-to-Peer- Netzwerke

, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-F-SIP.fm, ]

4. Architekturen und Systemmodelle

Überblick. Peer-to-Peer-Systeme. Überblick. Überblick. Überblick, Geschichte. Grundform des Internet ( ) Hybride P2P-Systeme

Rolf Wanka Sommersemester Vorlesung

Anonymität ist nicht binär. Oder: ein erfolgreicher Versuch, ein sicheres und anonymes Netzwerk zu erstellen.

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH

7. OSI-Modell als Rollenspiel

ICMP Protokoll & Anwendung Einige Risiken von ICMP erkennen und verstehen! FRITZ Gerald

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

HTTP. Arthur Zaczek. Aug 2015

SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) Request. Response

15. Das Hypertext Transfer Protokoll HTTP - Überblick. 1. Requests und Responses. 2. Content Negotiation. 3. State Management (Cookies)

Semantisches Routing in dezentralen Netzwerkstrukturen

Beyond Music File Sharing: A Technical Introduction to P2P Networks

!"# $ % Internet Protokolle: HTTP 1/38

Themen. Vermittlungsschicht. Routing-Algorithmen. IP-Adressierung ARP, RARP, BOOTP, DHCP

Softwarepraktikum Sommersemester 2006

IPv4- und IPv6 Header Analyse und Vergleich

8. TCP-IP Modell als Rollenspiel

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

Netzwerk-Programmierung in C

Mobilkommunikationsnetze - TCP/IP (und andere)-

Internet Modell. Nothing stated. Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50

P2P: Agenda. Nachtrag: Streaming, Protokolle. P2P-Netzwerke:

vrealize Log Insight- Entwicklerressourcen 11. September 2017 vrealize Log Insight 4.3

SIP - Session Initiation Protocol

Evaluation of QoS- Aspects of mobile IPv6 Clients in an IEEE Network. Folkert Saathoff Oktober 2oo5

Charakterisierung der freigegebenen Dateien im modernen Gnutella

Dr. Dominic Battré Complex and Distributed IT Systems

Dominic Battré P2P Netzwerke

Middleware Hans P. Reiser, Rüdiger Kapitza Universität Erlangen-Nürnberg Informatik 4, 2005 I-P2P.fm

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung

JXTA - Ein offenes Framework für den Aufbau von p2p-netzen

Inhalt. Inhalte der Vorlesung (vorläufig) Dr. Dominic Battré Complex and Distributed IT Systems. Napster. Eigenschaften von Gnutella

Einführung. Internet vs. WWW

Rechnern netze und Organisatio on

Protokollgraph. Host 1. Host 2. Protokoll 2. Protokoll 1. Protokoll 3. Protokoll 4. Grundlagen der Rechnernetze Einführung 46

J P2P-Systeme. J.2 Einführung. J.1 Überblick. 1 Ausgangssituation. WWW-dominiertes Internet ( ) Einführung. Napster ein hybrides P2P-System

Automotive.verstehen.gestalten.bewegen. Car2Car Systeme. Java und Peer2Peer ziehen ins Auto. 1 Adam Kovacs

Client/Server-Systeme

Filesharing-Systeme. Themen des Vortrags

DIAMETER Base Protocol (RFC3588)

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

Scan-Techniken Ein Überblick

Netzwerk-Programmierung. Netzwerke.

Seminar Mobile Computing Routing in Ad Hoc Netzen

Kommunikationsprotokolle des Aeronautical Traffic Service

Das Skype Peer-to-Peer VoIP System

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Filesharing-Systeme. Seminarvortrag von Stefan Weinbrenner,

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014

Grundlagen der Web-Entwicklung INF3172

Site-to-Site VPN über IPsec

Das ISO / OSI -7 Schichten Modell

Beispiel einer Anwendung: HTTP

Gliederung. Version vom 19. April D.Sosna: Vorlesung P2P - SS07 - Kap.2 p.1/26

9.Vorlesung Cluster-, Grid- und Cloud-Computing Hochschule Mannheim

Verteilte Systeme Übung T5

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Hubertus Schmidt Systemberater Telco / Media / Utilities Oracle Corporation

I P2P-Systeme. I.2 Einführung. I.1 Überblick. 1 Ausgangssituation. WWW-dominiertes Internet ( ) Einführung. Napster ein hybrides P2P-System

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt.

Gliederung. Integrated Service Architecture (ISA) RSVP-Überblick Reservation Styles RSVP-Nachrichten. RN II Kap. 5.

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

OOC4J Rotate Access-Logs und LogFormat

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Chaos-Seminar des CCC Ulm. Stefan Schlott Definition, Beispiel Allgemeine Fragestellungen in P2P Anwendungen, Ausblick

Routing in WSN Exercise

Peer-to-Peer (P2P) Grundlagen

IPv6.... es hätte noch viel schlimmer kommen können

Rolf Wanka Sommersemester Vorlesung

Das Hypertext Transfer Protokoll HTTP/1.1

Technische Praxis der Computersysteme I 2. Vorlesung

Architektur von REST basierten Webservices

7. Vorlesung Netzwerkcodierung

Rechnernetze und -Organisation Michael Hutter Karl C. Posch.

ISA Server 2004 IP-Einstellungen definieren - Von Marc Grote

Einführung P2P. Inhaltsbasierte Suche in P2P-Netzwerken. Einführung P2P Inhaltsbasierte Suche in P2P-Netzen 1

Laptop A location aware peer-to-peer overlay network

Klausur Rechnernetze für Studierende des Studiengangs Scientific Programming und Auszubildende zum Beruf des Math.-Tech. Software-Entwicklers

Rechnernetze. 6. Übung

Benutzerhandbuch. Neukirchen

Protokolle und Schichten. Grundlagen der Rechnernetze Einführung 41

Transkript:

Gnutella 0.6 Vorstellung eines Filesharing-Protokolls Wolfgang Steudel: Das Gnutella-Protokoll 1/15 Inhalt Einleitung Peer sucht Anschluß Gnutella Message Header Auf Entdeckungsreise Resourcen suchen HTTP-Download Hinter der Schutzwand Mögliche Erweiterungen Traffic minimieren Ausblick Wolfgang Steudel: Das Gnutella-Protokoll 2/15

Einleitung P2P-System (GnutellaNet) Peers (Servants) stellen sich gegenseitig Resourcen (z.b. Dateien) zur Verfügung Gnutella-Protokoll zum Aufspüren von Servants, Suchen und Finden von Resourcen Austausch der Daten erfolgt mittels HTTP Software: LimeWire, BearShare, *tella,... Quellen: http://rfc-gnutella.sourceforge.net http://groups.yahoo.com/group/the_gdf http://www.gnutelliums.com Wolfgang Steudel: Das Gnutella-Protokoll 3/15 Peer sucht Anschluß Standardport: 6346 Host für erste Connection finden gute Beziehungen oder public hostcaches Verbindungsaufbau ähnlich HTTP human readable Verwendung von Statuscodes und -meldungen HTTP-konforme Header User-Agent: BearShare 3-way Handshake Wolfgang Steudel: Das Gnutella-Protokoll 4/15

Peer sucht Anschluß guter Fall -> GNUTELLA CONNECT/0.6<cr><lf> -> Header: Content<cr><lf> -> <cr><lf> <- GNUTELLA/0.6 200 OK<cr><lf> <- Header: Content<cr><lf> <- <cr><lf> -> GNUTELLA/0.6 200 OK<cr><lf> -> Header: Content<cr><lf> -> <cr><lf> Wolfgang Steudel: Das Gnutella-Protokoll 5/15 Peer sucht Anschluß böser Fall -> GNUTELLA CONNECT/0.6<cr><lf> -> Header: Content<cr><lf> -> <cr><lf> <- GNUTELLA/0.6 503 Busy<cr><lf> <- Header: Content<cr><lf> <- X-Try: 141.24.17.39:6346,141.24.194.6:6346<cr><lf> <- <cr><lf> Wolfgang Steudel: Das Gnutella-Protokoll 6/15

Gnutella Message Header binary messages vor jeder Message ein Header: GUID [16 Byte] global unique Typ [1 Byte] im Protokol 6 Typen definiert TTL [1 Byte] max. 7 Hops [1 Byte] Länge [4 Byte] max. 4096 Wolfgang Steudel: Das Gnutella-Protokoll 7/15 Auf Entdeckungsreise Ping: Bitte melde dich! wird gebroadcastet (soweit die TTL reicht) gepingte Peers senden Pong zurück IP-Adresse Portnummer (für Gnutella-Connects) Anzahl freigegebener Dateien freigegebene Kilobytes Entfernung steht im Hops-Feld Wolfgang Steudel: Das Gnutella-Protokoll 8/15

Resourcen suchen... Query-Message (wird gebroadcastet) enthält geforderte Mindestgeschwindigkeit und Zeichenkette mit Schlüsselwörtern ASCII-Zeichen Dateinamen müssen alle Wörter enthalten keine regex abweichende Vereinbarungen können im extension block getroffen werden Index-Query (4 Leerzeichen als Suchstring) fordert Liste aller freigegebenen Dateien an Wolfgang Steudel: Das Gnutella-Protokoll 9/15...und finden Peers, die mindestens eine passende Datei im Angebot und den nötigen Speed haben, antworten mit QueryHit: Anzahl Treffer IP-Adresse Portnummer (für HTTP-Requests) Transfergeschwindigkeit je Datei einen Datensatz mit Dateinummer, -größe und -name Servant ID [16 Byte] Wolfgang Steudel: Das Gnutella-Protokoll 10/15

HTTP-Download Standard HTTP ab V1.0 folgende Header müssen unterstützt werden: Range: zum Fortsetzen abgebrochener Downloads Connection: für persistente Verbindungen URI als /get/<dateinummer>/<dateiname> GET /get/2468/foobar.mp3 HTTP/1.1<cr><lf> User-Agent: LimeWire<cr><lf> Host: 141.24.144.23:6346<cr><lf> Connection: Keep-Alive<cr><lf> Range: bytes=0-<cr><lf> <cr><lf> Wolfgang Steudel: Das Gnutella-Protokoll 11/15 Hinter der Schutzwand push: Request an unzugänglichen Host, Verbindung für Datentransfer aufzubauen Servant ID Dateinummer IP-Adresse Portnummer Host sendet GIV <Dateinummer>:<Servant ID>/<Dateiname><lf><lf> Client sendet GET-Request wie gewöhnlich Wolfgang Steudel: Das Gnutella-Protokoll 12/15

Mögliche Erweiterungen HUGE (Hash/URN Gnutella Extensions) eindeutige IDs für Dateien Schutz vor Fakes Verknüpfung zu anderen P2P-Systemen XML ermöglicht erweiterte Suche Metadaten für Dateien (Timestamp, Größe etc.) GGEP (Gnutella Generic Extension Protocol) Rahmen für Erweiterungen aller Art gekennzeichnet mit Extension ID [bis 15 Byte] Wolfgang Steudel: Das Gnutella-Protokoll 13/15 Traffic minimieren Pong-Caching Broadcast-Minimierung 10 Pongs auf ein Ping Ultrapeer Cache-Refresh alle 3 Sekunden für User mit geringer Bandbreite super-nodes und leaf-nodes boolean vector über keywords jeder leaf-node Query Routing Protocol Compression je Verbindung und Richtung möglich Einigung beim Handshaking Wolfgang Steudel: Das Gnutella-Protokoll 14/15

Auf Wiedersehen Bye-Packet: Ankündigung Verbindungsabbau Reason-Code Beschreibung / Fehler-Meldung à la HTTP 407 not sharing enough Wolfgang Steudel: Das Gnutella-Protokoll 15/15 Ausblick Gnutella - ein gewachsenes Protokoll Anpassung an steigende Nutzerzahlen private Erweiterungen der Gnutelliums Gnutella2 - the next generation of P2P offen, skalierbar, flexibel Entlastung des Netzwerks größere Reichweite Thematische Suche... Wolfgang Steudel: Das Gnutella-Protokoll 16/15

Danke! GNUTELLA/0.6 200 Awaiting your Queries Wolfgang Steudel: Das Gnutella-Protokoll 17/15