Protocole Gnutella
Protocole Gnutella
Protocole Gnutella
Presente par: DJATCHE Malthus-Ronaldo, AKOA Teddy, KAMSU KOM Florian sous la
supervision de: PR. Thomas Djotio Ndié
SOMMAIRE
I. INTRODUCTION
II. ARCHITECTURE PEER TO PEER
III. PROTOCOLE GNUTELLA
1. GNUTELLA v0.4
2. GNUTELLA V0.6
IV. QUELQUES CLIENTS GNUTELLA
INTRODUCTION
Des équipements interconnectés ont besoin de « règles » pour se comprendre et échanger des
informations, et l’ensemble de ces règles sont ce que nous appelons les protocoles réseau. Il en
existe une multitude classifiée selon la couche ou la fonction, parmi lesquels le protocole
Gnutella qui est un protocole de recherche et de partage de fichiers dans un réseau peer-to-peer,
et qui fera l’objet de notre étude. On parle de « réseau Gnutella » pour designer un ensemble de
machine interconnecte par le protocole TCP/IP et s’échangeant des fichiers suivant le protocole
Gnutella. Ce protocole trouve naissance au moment où on avait besoin de transférer une grande
quantité de fichiers à travers internet, et les architectures réseau déjà en place étaient peu
adaptées à cet effet.
C’est quoi un réseau peer-to-peer ? Quelles sont les architectures utilisé dans les differentes
versions du protocole Gnutella ? Comment marche ce protocole ? Et puis même, d’où vient le
drôle de nom « Gnutella » ? Nous allons essayer de répondre à ces questions dans notre exposé.
ARCHITECTURE PEER TO PEER
Architecture centralisée :
Architecture décentralisée :
Égalité entre tous les utilisateurs
Liaisons établies de proche en proche
Requêtes transférées et relayées
Fichiers transférés directement du demandeur au donneur
Réseau en perpétuelle mutation
Avantages :
Grande souplesse, grande robustesse
Anonymat (relatif) assuré car il n'y a pas de serveur qui stocke des données sur les utilisateurs
Inconvénients :
Problèmes au niveau de la bande passante
Anonymat => risques de piratage et d’échange de données illégales
ARCHITECTURE PEER TO PEER
Développé en 2000 par NullSoft (Tom Pepper et Justin Frankel) qui fut ensuite racheté par
AOL-Time-Warner
La petite histoire veut que GNUtella soit l'acronyme de Gnu (pour Gnu's not Unix) et de
Nutella. Il semble que pendant les 2 semaines de développement le Nutella ait été leur
meilleur compagnon de développement.
On a deux version de Gnutella: Gnutella v0.4 et Gnutella v0.6
GNUTELLA V0.4
Etapes pour pourvoir émettre ou satisfaire une requête sont les suivantes :
• Envoi des paquets Query pour chercher un fichier ou Queryhit pour repondre a une requete
A envoie un Ping à B et C
– Payload Descriptor :
– TTL : « time to live » indique le nombre de sauts que peut encore effectuer le descripteur entre servants
Gnutella avant sa destruction(TTL est décrémenté a chaque passage d’un servent à un autre)
• Port : numéro de port sur lequel le servent atteint peut accepter les connexions
incidentes.
• Minimum speed : vitesse minimale (en ko/s) des servants qui doivent répondre à ce message. Les
servants plus lents que ce seuil ne sont pas censés répondre
• Search Criteria :
Cette chaîne contient des critères de recherche, tels que des noms de fichier, ou des types de
fichiers (MP3, jpeg,..) et se termine par 0x00
– Port : Le numéro de port sur lequel le servant atteint peut accepter les connexions incidentes
– Result Set :
– File Index : nombre attribué par le servant répondant, destiné à identifier de façon
unique le fichier correspondant à la requête.
– File Name : Nom du fichier référencé par File Index, se termine nécéssairement par
0x0000. Sa taille est limitée par le champ Payload Lengh de l'en-tête.
FORMAT PAYLOAD D’UN PUSH
– File Index : Cet index détermine le fichier qui doit être "poussé" à partir du
servent cible.
– Port : Port vers lequel le fichier référencé par File Index doit être "poussé".
Inconvénients de GNUTELLA
Architecture descentralise
On a deux type de client: les
feuilles et les ultrapeers
Une feuille est connecte a 3
ultrapeers et un ultrapeer admet entre
30 et 45 clients et 30 ultrapeers
Choix des ultrapeers basé sur les
capacités de calcul, de bande
passante et également la durée sur le
réseau
GNUTELLA v0.6
Utilisation des Query routing Table qui contiennet les hashs des keywords des fichiers
partagés par le nœud
L’ultrapeer envoie périodiquement des "indexing queries" à ses fils qui répondent en
envoyant chacun leur QRT
L’ultrapeers fusionne les QRT
L’ultrapeer ne fait suivre les Query qu’aux clients qui ont une entrée correspondante.
QUELQUES CLIENTS GNUTELLA
• Gtk-gnutella
• Gnucleus
• LimeWire
• Shareazaa
• BearShare
• Mutella
• Morpheus
• Ares
INSTALLATION DE GTK-GNUTELLA