Professional Documents
Culture Documents
ETUDE DES
RESEAUX PEER-TO-PEER
DERBALI / EMBOUAZZA
I.
BIBLIOGRAPHIE ...............................................................37
- 2-
DERBALI / EMBOUAZZA
Introduction
Lacronyme P2P est apparue bien avant le phnomne marketing de l'apparition tout va
des acronymes lis aux " nouveaux " modles conomique / technologique du march
Internet : B2B, B2C, C2C, etc. Mais le rseau des rseaux, bien avant de reprsenter un
march avec toute la valeur ajoute qu'il peut (difficilement) gnrer, dsignait tout autre
chose auparavant, savoir essentiellement un outil de travail. Or, qui dit travail dans un
environnement rseau, dit ncessairement collaboration, et donc partage. C'est pourquoi,
le P2P, pour Peer-to-Peer (rseau d'gal gal, mais on rencontre galement pair to pair,
de personne personne), fait appel un principe qui est au fondement mme de tout
dispositif informatique reli en rseau : celui du partage des ressources. Il existe toutefois
une nuance de taille en ce qui concerne l'architecture rseau d'gal gal, tel que nous
l'entendons avec le phnomne P2P sur Internet. Il convient ici, avant de se lancer dans le
coeur du sujet, de connatre quelques bases toutes simples directement tires des
technologies rseaux. En particulier, les principes fondamentaux de communication entre
les clients et les serveurs.
- 3-
DERBALI / EMBOUAZZA
DERBALI / EMBOUAZZA
1.2
Architectures Peer-to-Peer
1.2.1 Architecture centralise
Qui n'a pas dj entendu parl de Napster? Un service peer-to-peer spcialis dans
l'change de fichiers son (au format MP3 et Windows Media) qui a largement contribu
dvelopper la technologie P2P sur le march grand public, et mme professionnel. Or,
toute l'originalit de ce rseau, devenu dsormais commercial, consiste avoir adopt une
architecture centralise.
Sur le papier, un tel dispositif reprsente actuellement la solution la plus confortables pour
changer vos fichiers dans une communaut (musique, DVD...). Mais dans la ralit, ce
type d'architecture exige un tel investissement en ressource que les services restent
rarement de bonne qualit (lenteur, disponibilit...). Soit, ils sont saturs ; soit, ils sont
limits en termes d'utilisateurs simultans autoriss.
Concrtement, dans toute architecture centralise, un dispositif exclusivement serveur se
charge de mettre en relation directe tous les utilisateurs connects. L'intrt de cette
technique rside dans l'indexation centralise de tous les rpertoires et intituls de fichiers
partags par les abonns sur le rseau. En gnral, la mise jour de cette base s'effectue
en temps rel, ds qu'un nouvel utilisateur se connecte ou quitte le service.
Comment cela fonctionne pour les clients ? :
Le plus simplement du monde, comme avec un moteur de recherche classique : vous
lancez une requte en inscrivant un mot-cl. Vous obtiendrez une liste d'utilisateurs
actuellement connects au service et dont les fichiers partags correspondent au terme
recherch. Ds lors, il suffit de cliquer sur un des intituls de lien pour vous connecter
directement sur la machine correspondante et entamer le transfert. Dans ces conditions,
aucun moment les fichiers se retrouvent stocks sur le serveur central.
Lgende :
Un utilisateur recherche un fichier ressource en envoyant une requte au serveur central.
Le serveur central rpond et transmet la liste des ordinateurs utilisateurs proposant le fichier demand.
L'utilisateur tlcharge le fichier directement partir d'un des ordinateurs renseigns par le serveur.
DERBALI / EMBOUAZZA
Comme nous l'avons dit, le principal atout de cette mthode rside dans le confort et
l'efficacit des recherches, condition que le service ne soit pas surcharg et qu'il dispose
d'une communaut suffisamment nombreuse pour le rendre intressant. Ce qui n'est pas
toujours le cas...
Enfin, nous terminerons par les principaux dfauts qui reviennent lorsqu'on tudie de plus
prs le fonctionnement de ce type d'architecture. On en relvera surtout trois :
DERBALI / EMBOUAZZA
1.2.2
DERBALI / EMBOUAZZA
1.2.3
Nous avons vu que larchitecture centralise pose des problmes de scurit, robustesse,
et de limitation de la bande passante. Les problmes sont directement issus de lutilisation
de serveurs dont le seul but est de possder lannuaire des clients.
Si on dsire supprimer les serveurs centraux il faut donc trouver le moyen de constituer
un annuaire sur chaque client, puis de les faire communiquer. C'est sur ces mcanismes
que sont bass les rseaux Peer-to-Peer dcentraliss. Il ny a donc plus de serveurs
centraux, ce sont tous les lments du rseau qui vont jouer ce rle. Chaque machine
dans ses rles est identique une autre, cest pour cela que lon appelle ces types de
rseaux Peer-to-Peer pur.
Un grand avantage de ce nouveau type de rseaux, est en thorie le total anonymat quil
procure. En effet en vitant de communiquer avec une machine centralisant les demandes
et les annuaires, on vite les problmes de rcupration des donnes utilisateurs.
Schma : Architecture centralise vers dcentralise
DERBALI / EMBOUAZZA
1.2.4
Architecture dcentralise
Les abonns des rseaux P2P marquent une nette prfrence pour les architectures
dcentralises. Cela s'explique par l'absence d'anonymat dans les dispositifs centraliss et
cela fait suite galement aux difficults judiciaires rencontres par Napster et Scour,
principalement. C'est pourquoi, trs vite, sont apparues des solutions alternatives. On
pense plus particulirement Gnutella qui constitue incontestablement le fer de lance des
rseaux dcentraliss.
Quoi qu'il en soit, en vous connectant de tels rseaux, vous aurez toujours besoin d'un
programme mi-client mi-serveur pour tablir une connexion sur une ou plusieurs autres
machines quipes, comme la vtre, du mme logiciel. Contrairement aux rseaux
centraliss, ou il suffisait de se connecter au serveur pour avoir accs aux informations, il
faut pour avoir accs une information en dcentralis :
Apprendre la topologie du rseau sur lequel le client est connect.
Rechercher linformation sur tous les noeuds.
Recevoir une rponse dun noeud rpondant aux critres.
Schma : Cration dun annuaire
Lgende :
Le client A se connecte sur le rseau, mais il ne connat pas la topologie du rseau (A est
totalement aveugle).
Pour connatre les autres membres du rseau, A va "broadcaster" une demande
didentification des noeuds du rseau.
Les noeuds recevant la demande vont leur tour la rpercuter sur tous les noeuds voisins
et ainsi de suite (comme les noeuds B, C et D).
Lorsque que la trame est reue et identifie par un autre client, le noeud renvoi une trame
didentification A.
Ainsi A va peu peu pouvoir identifier tous les noeuds du rseau et se crer un annuaire.
De cette faon, la taille d'une telle architecture rseau est thoriquement infinie.
DERBALI / EMBOUAZZA
Une fois que votre machine fait partie intgrante du rseau, vous pouvez lancer une
recherche partir d'un ou plusieurs mots-cls, l'instar de tout bon moteur de recherche
que vous connaissez dj. Mais on notera toutefois une diffrence de taille : lorsque vous
validez une requte, celle-ci reste toujours active et son traitement ne s'arrte jamais,
sauf si vous en tablissez une autre. Cela s'explique par ce qu'on appelle l'horizon, c'est-dire toutes les machines du rseau auxquelles vous avez accs pour effectuer vos
recherches. Ds lors, si de nouveaux ordinateurs apparaissent dans votre horizon, leurs
ressources vous seront immdiatement accessibles. Concrtement, la liste des rsultats se
gnre progressivement dans une fentre particulire de votre programme et ds qu'un
fichier correspond au critre de recherche, il s'affiche dans la liste. Pour tlcharger
l'information correspondante, il suffit de cliquer dessus.
Le principal inconvnient de cette mthode est les sries de broadcast qui sont diffuses
sur le rseau. Cela a pour consquence de polluer et donc de ralentir les changes de
donnes entre les machines.
1.2.5
Le modle super noeud a pour but dutiliser les avantages des 2 types de rseaux
(centralis et dcentralis). En effet sa structure permet de diminuer le nombres de
connexions sur chaque serveur, et ainsi dviter les problmes de bandes passantes.
Dautre part le rseau de serveurs utilise un mcanisme issu des rseaux dcentraliss
pour tenir jour un annuaire client et un index des fichiers partir des informations
provenant des autres serveurs. Un serveur peut donc proposer nimporte quel client
toutes les informations contenues sur le rseau.
Le rseau nest plus pollu par les trames de broadcast. Mais la contrepartie est que
lanonymat nest plus assur.
Schma : Les Super Noeuds
DERBALI / EMBOUAZZA
1.3
Napster
La naissance de Napster
Fin 1998, Shawn Fanning, un tudiant amricain passionn
d'informatique alors g de 19 ans vient bouleverser le monde bien
tabli du client / serveur. Il dcide de quitter l'universit et se lance
dans l'criture d'un logiciel pour permettre l'change de fichiers
musicaux. La raison d'tre de ce logiciel repose sur le constat suivant : rechercher des
MP3 sur les moteurs de recherche habituels conduit une perte de temps norme et les
rponses sont souvent inappropries. Aprs quelques mois de travail acharn, une
premire version du logiciel est disponible. Fanning dcide de tester une premire version
le 1er juin 1999 et appelle son logiciel Napster (son pseudo sur Internet). Le logiciel qui ne
devait tre test que par quelques-uns de ses amis remporte un succs des plus rapides.
Il conquiert notamment les universits. Shawn Fanning se retrouve propuls la tte
d'une start-up pleine d'avenir. Lui qui dclare propos de Napster qu'il n'avait "aucune
envie d'en faire un business" voit les utilisateurs arriver en masse.
En septembre 2000, Napster atteint un nombre de tlchargement record. 1,39 milliard
serait le nombre de chansons changes par ses utilisateurs (source : Webnoize, Cabinet
d'tudes amricain).
La fin de Napster
Tombent alors les premires interdictions de la part des universits : les tudiants
l'utilisent tellement qu'ils saturent les bandes passantes. Les groupes de musique
demandent ce qu'on protge leurs droits. Le groupe Metallica ouvre le bal et entame un
procs. En dcembre 1999 le RIAA intente galement un procs Napster.
En novembre 2000, il est prvu que Napster intgre un systme anti-piratage mais en
janvier 2001, le verdict de la 9 cour d'appel de San Francisco tombe : Napster viole la loi
sur les droits d'auteurs et devra cesser dans un bref dlai l'change gratuit de fichiers
musicaux MP3. C'est une victoire importante pour les maisons de disques, mme si elles
n'obtiennent pas la fermeture immdiate de Napster. En fvrier 2001, un systme de
cotisations devait est mis en place, Napster chappe aux procs des maisons de disques
mais les utilisateurs le dlaissent.
OpenNap prolonge le protocole de Napster pour permettre le partage de nimporte quel
type de supports, et il a la capacit de lier des serveurs ensemble. LOpenNap est un
serveur pour relier les clients ensemble, et nest pas un client lui-mme.
Gnutella
DERBALI / EMBOUAZZA
Mais comment, me direz-vous, est-ce que Gnutella a vu le jour dans ces conditions ?!? En
fait, un certain Bryan Mayland a fait du reverse engineering afin de trouver le langage
de communication utilis par lapplication et la tout simplement publi lpoque sur
http://gnutella.nerdherd.net. Ensuite, Ian Hall-Beyer et Nathan Moinvarizi ont rassembl
toute une srie de dveloppeurs intresss la cration dapplications bases sur
Gnutella.
Gnutella est laprs Napster dans le sens o beaucoup dutilisateurs se sont tourn vers
cette solution suite la fermeture des services de la start-up de Redwood, mais galement
dans le sens o cest une tape de plus dans larchitecture. En effet, Gnutella ne possde
aucun serveur central vu que sont application est la fois client et serveur
Gnutella se distingue des autres rseaux peer-to-peer en proposant un rseau entirement
libre. Exemple pour enregistrer un client sur le rseau FastTrack, il faut avoir une licence.
Or le rseau Gnutella comme son nom lindique est sous licence Gnu (Gnu est labrviation
de Gnus Not Unix, le cri de la nouvelle gnration de dveloppeurs qui donne un accs
gratuit aux sources de leurs programmes) et donc il est libre de droit. Il sagit dun peerto-peer dcentralis qui a volu au fil du temps. Son architecture tait comparable
Edonkey avec des fonctionnalits en moins (pas de recherches sur les serveurs voisins
etc.).
Suite lexplosion du nombre de clients (de 75.000 300.000), le rseau a volu vers le
pur peer-to-peer. Pour se connecter lutilisateur fait une sorte de "broadcast" vers
lInternet afin de trouver les utilisateurs les plus proches.
Actuellement, il existe sur la toile une multitude de clients se servant de cette technologie
pour partager des fichiers. On peut citer Bearshare, Gnotella, Limewire, Phex, etc. De
plus, les changes peuvent seffectuer quelque soit le client ou la plate-forme (Windows,
Linux/Unix, Macintosh, etc.) sur lequel il se trouve.
Une plus ample analyse de Gnutella sera faite ultrieurement.
eDonkey
DERBALI / EMBOUAZZA
MFTP, un client peut la fois tlcharger une partie dun fichier partir de plusieurs
sources et aussi partager les parties dj tlcharges.
Les auteurs deDonkey et de son rseau travaillent actuellement sur OverNet, un nouveau
rseau pur peer-to-peer cette fois, un peu la manire de FastTrack. Il limine les
serveurs et certains clients sont compatible eDonkey et OverNet.
FastTrack
Freenet
DERBALI / EMBOUAZZA
base sur les ides de Ian Clarke alors tudiant lUniversit dEdinburgh en Ecosse. Le
principe de ce protocole est doffrir un rseau dont les proprits sont les suivantes :
Anonymat pour les producteurs et les consommateurs des informations partages
sur le rseau.
Dresponsabilisation des conservateurs dinformations.
Rsistance du rseau diverses attaques menes par des membres tiers.
Archivage et routage dynamiques des informations.
Dcentralisation de toutes les fonctions du rseau.
Si certaines de ces proprits, comme la dcentralisation des fonctionnalits, sont
inhrentes la majorit des rseaux p2p, les autres dcoulent des particularits mme du
rseau Freenet.
Lanonymat, qui est lun des points cls de la philosophie de Freenet, est
essentiellement assur par les systmes de scurit tel que le chiffrement des donnes
qui transitent entre les nuds et par le fait que la connaissance locale est privilgie sur
la connaissance gnrale. Chaque nud ne peut en effet communiquer qu'avec ses voisins
immdiats et il nest gnralement pas possible de dterminer avec certitude lorigine
exacte dun message. Ceci est du au fait quen faisant suivre un message, le nud qui
ralise cette opration peut se dclarer comme tant la source de ce message.
Le rseau Freenet est lun des trois rseaux dont nous allons tudier le fonctionnement
dans le chapitre suivant
DirectConnect
DirectConnect est original de par son fonctionnement. Les serveurs sont ici appels des
hubs (une traduction possible est "salon"). Chaque hub est cr pour accueillir une
catgorie de fichiers ainsi quune vritable communaut autour dun sujet prcis (films,
musique, animations, logiciels, jeux, ). Si on se connecte ces hubs pour partager des
fichiers ne correspondant pas la catgorie du hubs, on est alors banni. Linterface et le
fonctionnement du client peuvent sapparenter un IRC avec possibilit de partage de
fichiers en plus. Le programme a un fonctionnement similaire eDonkey (liste dattente,
dcentralis) mais ne possde ni le MFTP, ni la communication entre les serveurs lors des
recherches.
Autre diffrence, il faut parfois partager plusieurs Go avant de pouvoir accder aux hubs
les plus intressants du rseau. Limpossibilit de connatre la liste de tous les hubs en fait
une communaut un peu ferme face aux autres peer-to-peer. De fait de sa technologie
moins volue, il est galement moins performant.
OverNet
L'intrt d'un rseau dcentralis comme OverNet est que les sources
ne sont plus seulement propages aux clients connects au mme
serveur mais l'ensemble du rseau
DERBALI / EMBOUAZZA
Groove
Blubster, Piolet
Blubster offre uniquement le partage fichier MP3. Cest un pur Peer-to-Peer et il utilise un
protocole bas UDP pour le transfert des fichiers. Son moteur de recherche dcentralis
est extrmement rapide et le nombre de fichiers prsents est trs important.
Thoriquement il peut se connecter de nimporte o
Son crateur (Pablo Soto, 22 ans) annonce mme :
"Le plus gros avantage de Blubster finalement est sa
facult d'extension et l'intelligence de l'organisation
de notre rseau. Il n'y a en fait aucune limite au
nombre d'utilisateurs connects en mme temps".
Nous avons calcul que mme 1.000.000 d'utilisateurs pouvaient facilement se connecter
simultanment sans problmes de performances.
A prsent Blubster se nomme Piolet ". Le rseau Piolet attend les anciens utilisateurs
d'Audiogalaxy ! "
Jusqu prsent, nous avons tudi des rseaux qui taient soit centraliss mais
permettant une recherche exhaustive (Napster) soit dcentraliss mais ne permettant
quune recherche non exhaustive (Gnutella et Freenet). Il existe cependant des rseaux
dcentraliss qui autorisent galement une recherche exhaustive. Nous pouvons citer CAN
(Content Adressable Networks) qui est un rseau en tore dont la taille est fixe
initialement ou Chord qui est dvelopp selon une architecture en hyper cube. Pour finir
nous avons Tapestry dont le but est doffrir un rseau de partage de donnes garantissant
leur prennit.
Tapestry est utilis dans des systmes tels quOceanStore qui permet la conservation
persistante de donnes travers une architecture globale, ou encore dans l'application
Bayeux. Les mcanismes de localisation et de routage du systme .Tapestry sont bass
sur les travaux de Plaxton, Rajamaran et Richa. Tous les noeuds du rseau remplissent les
rles de client, en mettant des requtes, de serveur, en conservant des objets, et de
routeur, en redirigeant les requtes.
Toutefois, Tapestry vite certains inconvnients du systme Plaxton. Ainsi, si Plaxton se
limite l'utilisation d'algorithmes statiques, Tapestry supporte des oprations dynamiques
et dcentralises.
DERBALI / EMBOUAZZA
JXTA
Jini
DERBALI / EMBOUAZZA
SETI@home
Utilisateurs :
Rsultats reus :
Temps total CPU :
Temps CPU par unit de travail :
Total
4.230.713
761394877
2.553625e+21 anne
15h09
Le volume de donnes est trs important mais heureusement il est morcelable assez
facilement pour tre exploit par les membres du rseau.
Le site franais SETI@home nous explique le principe des calculs de
http://setiathome.free.fr/information/about_seti/about_seti_at_home_1.html
SETI
DERBALI / EMBOUAZZA
Entropia
Autres rseaux
Nous avons essay de rpertorier tous les rseaux peer-to-peer qui prsentaient le plus
dintrt au niveau de notre tude sur les rseaux peer-to-peer. Voici prsent une liste
de rseau qui mrite dtre cit mme titre que les rseaux prcdents :
Firstpeer, Biz2peer
Ces rseaux lis au commerce lectronique
distribues
Akamai
Le rseau Akamai est une architecture distribue de contenu Internet. Linternaute va
chercher les donnes issues de son site favori sur le serveur le plus disponible.
DERBALI / EMBOUAZZA
iMaestro
Ce rseau propose des enchres en P2P
Infrasearch
Grce a Infrasearch, moteur de recherche en P2P,il es possible daller chercher linfo l o
elle a le plus de chance de se trouver
Neurogrid
Neurogrid propose une nouvelle approche de la recherche en rseau : je demande qui
va dire de demander
IRC
URLBlaze
Kademlia
MojoNation
Carracho
Commentaire :
La technologie du P2P est en constante volution et il est difficile pour nous dtablir une
liste exacte de tous ces rseaux apparaissant sur le net. Certains ne font pas long feu ,
dautres sont cibls une catgorie dutilisateur a but professionnel et dautres permettent
tous les utilisateur dobtenir de tous et de rien la fois. A cela vient sajouter la centaine
de projets reposant sur la technologie du P2P. Il y a aussi certains rseaux que nous
narrivions pas dfinir comme telles (manque dinformation ou trop dinformation
contradictoire).
Grce a une tude plus approfondi sur les rseaux Gnutella et Freenet, nous tenterons de
comprendre plus en dtaille comment fonctionne les rseaux peer-to-peer. Mais aussi de
comprendre lintrt dune telle technologie et la possibilit quelle nous offre lavenir.
DERBALI / EMBOUAZZA
DERBALI / EMBOUAZZA
Pong
Query
QueryHit
Push
DERBALI / EMBOUAZZA
Payload
Descriptor
1 octet
TTL
1 octet
Hops
1 octet
Payload
length
4 octets
Gnode ID : identification du nud dans le rseau Gnutella (Cet ID est initialis lors de
linstallation du client).
Payload Descriptor : identifiant de fonction de la trame (PING, PONG, ). Le corps de la
fonctionnalit est transmis dans les trames TCP qui suivent.
0x00
0x01
0x40
0x80
0x81
Ping
Pong
Query
QueryHit
Push
TTL (Time To Live) : permet de borner lhorizon du rseau. Le champ TTL est
dcrment chaque passage dans un nud. A 0 la trame est dtruite.
Hops Indique le nombre de sauts que peut encore effectuer descripteur entre servents
Gnutella avant sa destruction.
Payload length : longueur du corps de la fonctionnalit.
IP Address
4 octets
DERBALI / EMBOUAZZA
Minimum Speed
2 octets
Search criteria
N octets
Minimum Speed : vitesse de transmission minimum requise (ex : >10ko). Les servents
plus lents que ce seuil ne sont pas censs rpondre.
Search criteria : Cette chane se termine par 0x00. Sa longueur n'est limit que par le
champ Payload length de l'en-tte. Cette chane contient des critres de recherche, tels
que des noms de fichier, ou des types de fichiers (MP3, jpeg,...)
QUERY HITS : Trame de rponse au QUERY, de structure :
Number of Hits
Port
IP address
Speed
1 octet
2 octets
4 octets
4 octets
Reult Set
File
File
File name
Index
size
4 octets 4 octets N octets
Gnode ID
16 octets
DERBALI / EMBOUAZZA
Port : Port vers lequel le fichier rfrenc par File Index doit tre "pouss".
Un servent peut envoyer un Push lorsqu'il reoit un QueryHit venant d'un servent
n'acceptant pas les connexions incidentes ( cause d'un Firewall par exemple). Un servent
recevant un Push peut s'y conformer si et seulement si le champ Gnode ID du Push
contient la valeur de son propre identifiant.
Concrtement, l'utilit du Push est la suivante :
Si un servent se trouve situ derrire un Firewall, il sera dans l'incapacit de construire
une liaison TCP avec le servent sur lequel se trouvent les fichiers dsirs, et ne pourra
donc pas initier le tlchargement. Cependant, ce dernier servent (jouant ici le rle de
serveur) peut, lui construire cette liaison TCP, et " uploader " les fichiers plutt que laisser
l'autre servent (ici dans le rle de client) les " downloader ". L'objet du Push est de dire au
servent serveur : "A toi d'initialiser le transfert".
On peut rsumer tout ce quon vient de voir dans un schma expliquant lencapsulation
des trames du protocole Gnutella .
DERBALI / EMBOUAZZA
2.1.5
Les servents du rseau Gnutella doivent router les descripteurs de faon appropris. Ce
routage s'effectue en suivant les rgles suivantes :
Les Pongs empruntent le mme chemin que les Pings auxquels ils rpondent. Ainsi, seul
les servent ayant rout le Ping initial verront passer le Pong de rponse. Un servent
recevant un Pong avec un Gnode ID donn, et n'ayant jamais vu passer un Ping avec le
Gnode ID correspondant, dtruira le Pong reu.
Mme mcanisme pour les QueryHit : ils suivent le chemin parcouru par le Query
correspondant, et s'ils passent par un servent n'ayant jamais vu le Query correspondant,
ils sont dtruits.
Mme mcanisme pour les Push : ils suivent le chemin parcouru par le QueryHit
correspondant, et s'ils passent par un servent n'ayant jamais vu le QueryHit
correspondant, ils sont dtruits.
Un servent recevant un Ping ou un Query le transmettra tous ses voisins immdiats,
sauf celui d'o provient le descripteur.
Chaque servent, la rception d'un descripteur, dcrmente son TTL et incrmente son
Hops. Si le TTL est alors 0, le descripteur n'est plus transmis.
Un servent recevant un descripteur avec le mme Payload Descriptor et le mme Gnode
ID qu'un autre descripteur prcdemment reu vitera de le transmettre d'autres
servents. Ces derniers devraient l'avoir dj reu auparavant, inutile donc d'augmenter le
trafic.
Exemples de routage :
Une fois que les requtes sont reues par le nud dorigine. Lutilisateur peut dcider de
rcuprer un fichier. Pour cela le tlchargement seffectue directement entre les deux
nuds via le protocole http. Ce transfert ne s'effectue jamais sur le rseau Gnutella luimme (pour des raisons videntes de surcharge!).
DERBALI / EMBOUAZZA
Linux / Unix
Gnutella Clients
Gnewtellium
Gtk-Gnutella
Mutella
Qtella
LimeWire
Phex
Macintosh
Gnutella Clients
LimeWire
Phex
La publication de donnes
Dans un premier temps, un document est stock dans un noeud FreeNet. Puis chaque
fois (ou presque) qu'un utilisateur demandera consulter ce document, il sera dupliqu et
stock sur un autre nud plus proche de cet utilisateur.
Ainsi, il devient absurde de rfrencer un document d'aprs son emplacement physique
comme sur le web ( http://machine/rpertoire/nom_du_document ) puisque sur FreeNet
l'emplacement non seulement n'est pas unique, mais qui peut changer tout moment.
Chaque utilisateur peut installer son propre noeud FreeNet, pourvu qu'il soit dot d'une
connexion "permanente", ou du moins, pas trop volatile. L'ADSL tant ainsi considr
comme une connexion "permanente".
Il suffit d'installer un serveur FreeNet sur sa machine. Les implmentations standard des
serveurs FreeNet sont des programmes JAVA, mais ce n'est nullement une obligation
technique.
Lors de l'installation, vous indiquez au serveur la bande passante qu'il est autoris
consommer, ainsi que l'espace disque que vous lui allouez. Une fois le serveur dmarr,
l'espace ainsi octroy votre noeud viendra enrichir l'espace de stockage global de
FreeNet.
DERBALI / EMBOUAZZA
2.2.2
Afin de protger les hbergeurs tous les fichiers sont crypts. Ainsi, le possesseur d'un
nud ne peut pas connatre le contenu des fichiers stocks sur son nud. Notons
cependant que en France, la possession de matriel illgal (mme si on l'ignore) est
considre comme du recel.
Le fichier est crypt grce une paire de cls asymtriques (gnre alatoirement) qui
caractrisent le propritaire du fichier. La partie prive de cette cl sert pour signer le
fichier (contrle dintgrit). La partie publique, concatne et hashe avec un texte
descriptif du fichier donne la cl de recherche. Seul le propritaire dun fichier peut le
mettre jour, en (r)insrant sur le rseau un fichier avec la mme cl : les diffrentes
versions sont alors identifies par un hashage direct de leur contenu (cl CHK). Les
anciennes versions des fichiers restent accessible grce leur cl CHK, mais tant de
moins en moins accds, elles finiront par disparatre naturellement du rseau.
Actuellement, la fonction SHA-1 (Secure Hash Algorithm) sur 160 bits est utilise pour
effectuer cette opration.
Freenet permet lutilisation de trois types de cls diffrentes.
La cl signature de mot cl (Keyword Signature Key ou KSK)
Elle est base sur une courte chane de description, gnralement ce sont un ensemble de
mots-cls qui peuvent dcrire le document (exemple : University/UFR/codage/p2p.doc).
Cette chane est utilise comme entre pour gnrer de manire dterministe une paire de
cls publique/prive.
La moiti publique est alors hache pour produire la cl du fichier.
DERBALI / EMBOUAZZA
Cl publique
Hachage et
publication de
la cl publique
Cl publie
Cl prive
Utilise pour
le cryptage et
la signature
La cl publie dsigne un
(ou plusieurs) document
Document
sign
La moiti prive de la paire de cls asymtriques est utilise pour signer le fichier,
fournissant un contrle minimum d'intgrit pour qu'un fichier retrouv corresponde sa
cl de fichier.
Pour permettre aux autres de retrouver le fichier, l'utilisateur a seulement besoin de
publier la chane descriptive. Cela rend les cls signature par mots cls faciles se
rappeler et communiquer aux autres.
Nanmoins, ils forment un identifiant trs banal ce qui est problmatique. Rien n'empche,
par exemple, deux utilisateurs de choisir la mme chane descriptive pour des fichiers
diffrents.
La cl KSK ne suffit donc pas garantir son unicit au travers de lInternet, cest pourquoi
on introduit la notion despace des noms prive.
La cl signature despace des noms (Signed Subspace Key ou SSK)
Un utilisateur cre un espace de noms en gnrant alatoirement une paire de cls
publique/prive qui servira reconnatre son identifiant. Pour insrer un fichier, il choisit
une chane de texte descriptive comme prcdemment.
La cl publique de l'identifiant et la chane descriptive sont haches indpendamment,
associes avec un XOR, et re-haches pour produire la cl de fichier.
Comme avec les cls signature par mot cl, la moiti prive de la paire asymtrique est
utilise pour signer le fichier. Cette signature, gnre partir d'une paire de cls
alatoire, est plus scurise que les signatures utilises par les cls signatures par mots
cls.
Le fichier est aussi crypt par la chane descriptive comme avant.
DERBALI / EMBOUAZZA
Pour permettre aux autres utilisateurs de retrouver le fichier, l'utilisateur publie la chane
descriptive avec sa cl publique. Le stockage de nouveaux fichiers dans un sous espace de
nom requiert la cl prive.
Gnration
dune cl SSK
Cl publique
SHA-1
(XOR)
Cl prive
Chane de
SHA-1 description du
document
SHA-1
Utilise pour
la signature
Utilise pour le
cryptage
Document sign
et crypt
Cl publie
La cl publie dsigne
un unique document
La cl hachage de contenu (Content Hash Key ou CHK)
Elle voit son utilit essentiellement dans la mise jour et le dcoupage des fichiers,
permettant ainsi la rcupration de diffrentes parties d'un mme fichier auprs de
multiples sources. Cette cl est obtenue par hachage du contenu du fichier. Ceci donne
chaque fichier une cl pseudo-unique. Les fichiers sont aussi crypts par une cl gnre
alatoirement.
Pour permettre aux autres de retrouver le fichier, l'utilisateur publie la cl CHK avec la cl
de dcryptage. Notez que la cl de dcryptage n'est jamais stocke avec les fichiers mais
est seulement publie avec la cl du fichier.
Pour mettre jour un fichier, le propritaire insre d'abord une nouvelle version sous sa
cl CHK, qui doit tre diffrente de celle de la version prcdente. Il insre ensuite un
nouveau fichier d'indirection sous la cl originale SSK pointant vers la version mise jour.
Lorsqu'une insertion atteint un noeud qui possde l'ancienne version, une collision de cl
apparatra. Le noeud contrlera la signature de la nouvelle version, vrifiant qu'elle est
valide et plus rcente et remplacera l'ancienne version. De cette faon, les cls SSK
mneront la version la plus rcente du fichier alors que les anciennes versions pourront
toujours tre trouves directement par leur cl CHK.
DERBALI / EMBOUAZZA
Dans cet exemple, homepage est l'espace de noms, SSK le type de clef, et npf...AgM
est la cl publique.
2.2.3
Chaque nud dun rseau FreeNet gre localement ses propres donnes qui sont
disponibles la fois en lecture et en criture.
Il dispose galement dune table de routage dynamique contenant les adresses dautres
nuds ainsi que les cls de fichiers quils sont susceptibles de dtenir.
Lorsquun utilisateur dsire retrouver une donne, la premire chose quil doit faire est
dobtenir (sur un site WEB par exemple) ou de calculer la cl binaire correspondant cette
donne.
Ensuite, le nud de lutilisateur va crer un message DataRequest qui contiendra cette
cl, ainsi quune valeur hops to live qui correspond un compteur qui est dcrment
chaque passage dans un nud (c'est l'quivalent du Time To Live de Gnutella).
Ce message est alors envoy lun des voisins du nud.
Lorsquun nud reoit un message DataRequest, il consulte ses donnes locales afin de
contrler sil est bien le possesseur de la donne demande.
Si cest effectivement le cas, il va retourner au voisin qui lui a transmis le DataRequest la
donne en question laide dun message DataReply (message 10 de la figure b).
Si ce nud ne possde pas la donne, il va chercher dans sa table de routage une
similitude (dtermine par la distance lexicographique, la plus courte, de deux cls) avec
la cl binaire du fichier contenue dans la requte et il fait suivre le message DataRequest
au nud correspondant.
Figure b. Recherche par le nud A dune donne que possde le nud F. Les liens bleus
correspondent aux messages DataRequest, les rouges aux RequestFailed et les verts aux
DataReply.
Lorsquun nud reoit un message DataReply, il stocke la donne contenue dans ce
message dans son propre cache local avant de faire suivre le message son prdcesseur,
tout comme il ajoutera dans sa table de routage une nouvelle entre associant la source
de la donne et la cl de la requte.
Par exemple, sur la figure b, la donne possde initialement par le nud F sera stocke
finalement par les nuds F, E, B et A. Ceci implique que ces nuds seront plus prompts
rpondre nouveau une recherche de ce fichier.
Ainsi, dans le cas o le nud C vient demander ce fichier au nud B, ce dernier
possdant dsormais cette donne en mmoire cache pourra lui rpondre immdiatement
sans avoir transmettre la requte au nud F.
DERBALI / EMBOUAZZA
Un nud ne peut satisfaire une requte soit parce quil ne possde plus de voisins qui
faire suivre le message (comme le nud C dans la figure b), soit parce que la valeur du
hops to live du message a atteint 0, soit encore parce que le nud a dj reu la requte.
Lorsqu'un nud se retrouve dans lun de ces cas, il rpond laide dun message
RequestFailed. Son prdcesseur enverra donc la requte vers un autre nud de sa table
de routage (comme par exemple les messages 3,7 et 8 de la figure b).
Voici un schma et quelque phrase qui rsume le principe de routage de larchitecture
freenet :
Un nud Freenet possde une table de routage dynamique. Les entres de cette table
associent un identifiant avec un nud, ainsi lorsque l'on soumet une requte un nud, si
celui ci ne possde pas le document, il transmet la requte vers le nud dont la cl dans la
table de routage est la plus proche (lexico graphiquement) de l'identifiant du fichier dsir.
Les nuds ajoutent des entres dans leur table de deux faons. Lorsqu'un nouveau nud se
joint au rseau, d'autres nuds contacts alatoirement dterminent conjointement (et semi
alatoirement) la cl qui sera associe au nouveau dans leur table de routage (ainsi le
nouveau nud recevra les requtes se rapprochant de cette cl). Ensuite, lorsqu'une requte
est soumise, elle est rpercute de nuds en nuds en fonction de l'identifiant cherch. La
recherche est donc ralise par un parcours en profondeur du graphe des connexions. Un
identifiant unique pour chaque requte (gnr alatoirement) permet de dtecter et dviter
les boucles.(exemple : voir figure : 5.6.7 )
Une fois la requte aboutie, la rponse, qui contient le fichier demand ainsi que l'adresse du
nud qui a fournit la rponse, parcours le chemin inverse. Les nuds transmettant cette
rponse ajoutent alors le nud d'origine avec la cl du fichier dans leur table (exemple :
figure 9 ,10,11,12). Au passage, chaque nud va copier le fichier en transit dans son propre
espace de stockage. Cette copie systmatique va permettre aux nuds de se spcialiser
et donc de diminuer le temps de rponse aux requtes. En effet, puisque les recherches sont
diriges en fonction de l'identifiant du nud, les nuds, petit petit, vont tre amens
stocker des fichiers dont les identifiants seront proches de celui que les autres lui ont affect.
DERBALI / EMBOUAZZA
2.2.4
DERBALI / EMBOUAZZA
Il est ainsi possible de profiter de ce processus pour mettre jour une donne, puisque les
fichiers obsoltes ne seront plus demands et donc retirs des nuds. Toutefois, si une
version plus ancienne dune donne continue tre demande, celle-ci sera conserve sur
le rseau.
2.2.6
Le temps ncessaire pour trouver un fichier dans Freenet est trs honorable. La mthode
de routage par cl semble, dans le temps, porter ces fruits en spcialisant les nuds.
Mais une fois un fichier trouv sur un nud, il doit repasser par tous les nuds sur le
chemin. Mme si ces transferts devraient tre (dans le futur) tunells[7], (les nuds
n'attendent pas d'avoir compltement reu le fichier pour le retransmettre), il n'en
demeure pas moins que toutes ces copies ont un cot en temps non ngligeables dont il
n'est pas fait mention dans l'article.
On peut cependant noter que ce temps de recopie ira en diminuant en fonction de l'intrt
que le fichier suscite.
2.2.6.2
Il est (pratiquement) impossible de retrouver une information dans Freenet sans connatre
sa cl. (bien que les auteurs voque limprobable possibilit dune forme dindexation
automatique) : il faut donc que celui qui l'a insre dans le systme dispose d'un moyen
pour diffuser cette cl. Les dveloppeurs envisagent la mise en place d'un site Web
permettant de retrouver les cls des documents. Mais un tel concept va l'encontre mme
de l'ide de totale dcentralisation dont est ne Freenet. Cependant, il est possible avec la
version actuelle de cr un "site web" sur Freenet (donc sans base fixe) pouvant
permettre l'indexation du reste.Cela tant dit, il est, pour l'instant, relativement difficile de
rcuprer des informations depuis Freenet
2.2.6.3
La persistance des donnes ntant pas assure, un spam gnral du rseau avec des
donnes corrompues pourrait possiblement provoquer son effondrement. Si la place totale
disponible sur un rseau P2P peut tre considre comme virtuellement infinie, les disques
durs locaux qui la composent sont eux, loin de ltre Aussi une attaque cibl sur une cl
prcise aurait plus de chance daboutir :
En gnrant alatoirement un grand nombre de cls, lattaquant peut obtenir des cls
proches de celle du fichier quil dsire faire effacer du rseau. Lattaquant insre ensuite
dnormes fichiers avec ces cls, qui devraient saturer les nuds ayant des chances de
possder le fichier cibl. En ralisant massivement des requtes sur des cls alatoires,
lattaquant peut rcuprer les adresses de nombreux nuds qui adresser des requtes
pour les fichiers corrompus quil a prcdemment insrs,dutilisant le systme de
duplication pour encore diffuser le spam dans tout le rseau.
Pour palier cette attaque, plusieurs systmes peuvent tre mis en place, par exemple :
- Allouer aux nuds nouvellement insrs une cl proche de celle dun des nuds le
plus plein pour rpartir la charge.
- Utiliser des agents chargs de surveiller et de rpartir de faon plus ou moins
homogne les donnes, comme dans le projet Anthill[16]
- Mettre en place une heuristique de gestion locale de la place moins agressive que le
FILO, par exemple en prenant en compte la prsence ou non dune copie dun
fichier dans le rseau avant de le supprimer.
- Fragmenter alatoirement les copies des fichiers et les disperser dans le rseau
pour augmenter les chances de pouvoir les reconstruire ensuite, comme IBP [17]
DERBALI / EMBOUAZZA
2.2.6.4
Conclusion
Freenet n'est peut tre pas exactement le systme de stockage et de diffusion de donnes
idales. Il y a cependant des ides intressantes sur la mthode pour propager des
donnes au travers du systme en suivant les chemins des requtes. C'est l finalement le
rel point qui le diffrencie des autres systmes de partage en vogue actuellement : un
nud n'hberge pas que des donnes qui intresse sont propritaire, il permet aux autres
d'y stocker leurs donnes. D'autre projet, comme Free Haven, propose ce mme genre de
systme avec des approches diffrentes pour la rplication des donnes, ncessitant la
mise en place de techniques complexes pour leur ralisation. Freenet a l'avantage, par
rapport aux autres, d'avoir un systme de rplication simple, systmatique et relativement
efficace mais qui souffre dun total manque de garantie sur la dure de vie d'un fichier. Ce
projet open source bnficie du soutient de nombreux programmateurs. Leur enthousiaste
provoque une dispersion dans les domaines de recherche, ce qui finit par nuire la
cohrence des dveloppements, voir lavancement du projet, car il reste encore
beaucoup faire...
2.2.7
Voici trois tableaux qui rsument les principaux diffrence entre les deux rseaux tudis :
Gnutella
Freenet
pas
Nom
Rpertoire
Cache
Stockage
Gnutella
Non
Non
Non
Freenet
Oui
Oui
Non
DERBALI / EMBOUAZZA
Freenet
Type de recherche
Nom du fichier
Chane descriptive
Mcanisme de
Dpend de la proximit
smantique de la cl
Non
Oui
Non
Oui
Recherche efficace
recherche
Efficacit de la
recherche
Anonymat
Cache automatique
Passage lchelle
Remarque :
Comme cette technologie est en cours de construction, alors il ny ai pas de
publication, donc on a pas pu trouver les documents ncessaire pour faire une
recherche approfondie. Mais on comme mme pu faire un rsum sur cette
dernire.
DERBALI / EMBOUAZZA
DERBALI / EMBOUAZZA
Bibliographie
Historique :
Historique peer-to-peer : http://www.figer.com/publications/p2p.htm
Historique Napster : http://www.ensmp.fr/~00toure/napster/historique.htm
Prsentation gnrale :
Open-Files, quelques chiffres : http://www.open-files.com/site/news/287.htm
Openp2p : http://openp2p.com/
abou.org : http://www.abou.org/p2p/
Comment a marche : http://www.commentcamarche.com/
Indexel : http://www.indexel.net
1formatik : http://www.1formatik.com/news_p2p.htm
01net : http://www.01net.com/article/189227.html
Actu Peer to Peer : http://actup2p.free.fr
Ratiatum : http://www.ratiatum.com/
Journal du Net : http://solutions.journaldunet.com/
InfoAnarchy : http://www.infoanarchy.org/
Les fiches de lAWT : http://www.awt.be/cgi/fic/fic.asp?fic=fic-fr-T11-1
Journal du Net , dfinition du peer-to-peer :
http://solutions.journaldunet.com/0104/010419_p2p.shtml
Architecture rseau :
Cours de Didier Donsez de luniversit de Grenoble : http://www-adele.imag.fr/~donsez/
Edonkey 2000 France : http://www.edonkey2000-france.com
Forum de discussion de Kazaa : http://www.kazaa.com
Peer-to-Peer Technologies and Protocols : http://ntrg.cs.tcd.ie/undergrad/4ba2.02/p2p/
Logiciels et rseaux :
e-Donkey France : http://www.edonkey2000-france.com/
e-Mule project : http://www.emule-project.net
e-Mule France : http://www.emule-france.com
Lugdunum, un serveur de-Donkey : http://lugdunum2k.free.fr/
Project 100k, le plus gros serveur e-Donkey : http://81.91.66.90/ed2kch/projet100k/
SETI : http://setiathome.free.fr/
Kazaa : http://www.kazaa.com
Gnutella : http://www.gnutella.com
DirectConnect : http://www.neo-modus.com
Blubster : http://www.blubster.com
Kanari : http://www.kanari.com
Groove Networks : http://www.groove.net
Freenet : http://freenetproject.org
Livre et revues :
PC Team du mois de fvrier 2003 : dossier sur le peer to peer
Articles de Sciences et Vie Micro anne 2002
Peer to Peer: Harnessing the Power of Disruptive Technologies Andy Oram (editor) First
Edition March 2001 ISBN: 0-596-00110-X