Le Peer-to-peer (P2P)
Je ne connaissais pas tout ce qui suit au moment
où j'ai commencé à faire cette page. Notamment
à propos des différents réseaux existants:
Gnutella, eDonkey, FastTrack... C'est bien de connaître un peu de
leur histoire, ou leurs spécificités, même s'ils
fonctionnent à peu près tous sur le même principe:
le P2P ! La plupart des infos qui suivent viennent d'un rapport
d'étudiants publié sur internet. Merci à eux, j'ai
mis l'adresse de leur rapport dans la section Sites à visiter.
Dans son essence, l'informatique pair à pair se
définit comme le partage des ressources et des services par
échange direct entre systèmes. Ces échanges
peuvent porter sur les informations, les cycles de traitement, la
mémoire cache ou encore le stockage sur disque des fichiers.
Contrairement au modèle client / serveur, chaque système est une entité réseau complète qui remplit à la fois le rôle de serveur et celui de client. Avec le peer-to-peer, les ordinateurs personnels ont le droit de faire partie du réseau. Le peer-to-peer désigne donc une classe d'applications qui tirent partie des ressources matérielles ou humaines qui sont disponibles sur le réseau Internet.
En plus du grand public, les entreprises s’intéressent
aussi au P2P car ce type de réseaux permet de mutualiser les
ressources et de supporter un grand nombre d’utilisateurs. Les
domaines d’applications du peer-to-peer sont nombreux (partage de
connaissances, travail collaboratif) même si actuellement le
partage de fichiers est le plus utilisé. Par exemple Microsoft et sa plate-forme de développement .NET
implémente d’ores et déjà le modèle
peer-to-peer pour construire des applications distribuées.
Mais il ne faut pas oublier que l’utilisation principale est le
téléchargement et cette activité est
considérée comme du piratage. Il est bien entendu
agréable de télécharger des MP3 gratuitement.
Etonnamment, seuls les artistes très connus et les grandes
maisons de disque sont dérangées par ce
phénomène. Au contraire, certains artistes, comme le
groupe de rap L’Arcane se servent de ces réseaux pour se
faire connaître. La chanteuse Lorie a proposé ces titres
en téléchargement ce qui l’a rendue
célèbre. Des plus grandes stars comme Robbie Williams et
Manu Chao se disent pour les réseaux peer-to-peer.
Plus que des problèmes d’ordres légaux, les
réseaux peer-to-peer engendrent également des
problèmes de morale. Le fait qu’il n’existe aucune
censure (de part leur conception, comme internet d'ailleurs, ces
réseaux sont non-hiérarchisés, donc sans
contrôle du contenu), ce qui pousse certains utilisateurs
à commettre des actions immorales et illicites. Les
réseaux dans ces cas peuvent êtres
considérés comme des éléments
d’insécurité publique. On y trouve tout...
Il existe deux grandes familles de P2P. La première de type
Napster, qui fonctionnait sur un seul serveur central, alors que sur la
deuxième, type EDonkey, tous les serveurs sont
décentralisés. Chaque PC connecté est un serveur.
Napster
On l'a vu, le principe de P2P est que chacun partage
des fichiers, et l'on se connecte à des serveurs qui permettent
de relier tout le monde. Le premier du genre était Napster,
qui a du s'arrêter (ou plutôt changer: le site existe
toujours et propose des animations, je vous conseille l'animation
"reggae"...) suite à un long procès. L'auteur de ce
logiciel est Shawn Fanning. Il l'a fabriqué alors qu'il n'avait
que 17 ans. En 1998 il le bricole à la demande de son
co-locataire afin de trouver des morceaux de rap gratuits sur
internet. Il met son logiciel sur le Net en 1999 en l'appelant NAPSTER
qui était son surnom. En quelque mois, des millions
d'étudiants Américains téléchargent le
logiciel et l'utilisent. Shawn Fanning ne s'attendait pas à ce
succès, et grâce à l'aide de son oncle, il
crée alors sa propre entreprise. Mais voilà, ce
n'était pas très légal ... et les ennuis ont
commencé ! Pour l'histoire, c'est le groupe Metallica qui le
premier l'a traîné en justice... Je n'ai jamais
aimé Metallica ! ;-)
En janvier 2001, le verdict de la 9e cour d'appel de San Francisco
tombe : Napster viole la loi sur les droits d'auteurs et devra cesser
dans un bref délai l'échange gratuit de fichiers musicaux
MP3.
Devant les menaces de la justice pour violation des droits d'auteurs
puis l'interruption du service sur décision judiciaire, de
nouveaux logiciels (Gnutella, Freenet, EDonkey) similaires
apparaissent. Mais au lieu de faire appel à un serveur
centralisé indexant les ressources pour mettre en relation les
usagers, ils transfèrent cette fonction d'annuaire à des
milliers d'ordinateurs de par le monde. Le principe du pur peer to-peer
est né.
En gros tout le monde peut interroger tout le monde, et accéder
à tout le monde. A la différence de Napster, qui
centralisait toutes les informations des fichiers disponibles sur un
seul et même serveur, ces réseaux permettent à
certains de se déclarer en tant que serveur, multipliant ainsi
les sources d'information, et décentralisant encore un peu le
concept. Ceci permet de pourvoir avoir accès à une
multitude de serveurs, multipliant ainsi le nombre de sources et
réduisant la dépendance, dans le cas d'un réseau
à serveur unique.
Le réseau Gnutella
Le réseau Gnutella
est le plus ancien des P2P, créé par les
ingénieurs de Nullsoft, la société qui a
lancé WinAmp (voir les pages sur la musiqe). Le but était
d'optimiser la bande passante. Le plus drôle de l'histoire, c'est
que Gnutella est né chez AOL, propriétaire de
Time-Warner. Mis au point quasi-clandestinement par les auteurs de
Winamp, le programme a été mis en ligne au mois de mars
2000 sur le site de Nullsoft. Les dirigeants d'AOL, propriétaire
de Nullsoft -Winamp ont peu goûté la plaisanterie et le
logiciel a été très vite retiré du
site… Mais trop tard, des milliers de copies étaient en
circulation, et des centaines de programmeurs travaillaient
déjà à améliorer le programme. Et
créer une nouvelle terre promise.
Gnutella
se distingue en proposant un réseau entièrement
libre. Pour écrire un client pour le réseau Fasttrack (voir plus bas), il faut avoir une licence. Gnutella
(comme son nom l’indique) et sous licence Gnu et donc libre de
droit. Il s’agit d’un peer-to-peer
décentralisé qui a évolué au fil du temps.
Son architecture était comparable à e-Donkey avec des
fonctionnalités en moins (pas de recherches sur les serveurs
voisins etc.). Suite à l’explosion du nombre de clients
(de 75.000 à 300.000), le réseau a évolué
vers le pur peer-to-peer. Pour se connecter l’utilisateur fait
une sorte de "broadcast" vers l’Internet afin de trouver les
utilisateurs les plus proches.
L’identification des nœuds du réseau
Un client A se connecte sur le réseau. Il
commence par rechercher tous les nœuds Gnutella présents.
Pour cela il transmet une trame d’identification (PING) à
tous ces voisins qui eux-mêmes la transmettront à leurs
voisins. Ces envois sont encapsulés dans une trame TCP. Pour
borner la recherche le mécanisme de recherche joue sur le TTL de
la trame. A chaque nœud du réseau le TTL est
décrémenté et lorsqu’il devient égal
à 0 la retransmission est stoppée.
Un mécanisme permet d’éviter les boucles dans la
transmission. Lorsqu’une trame est reçue elle est
stockée pendant un court laps de temps. Si le nœud
reçoit pendant ce laps de temps une trame identique il la
rejette car elle est déjà traitée. Lorsqu’un
nœud est identifié, il envoie à
l’émetteur une trame de réponse (PONG).
Les clients Gnutella
Le partage de fichiers partiellement
téléchargés n’est possible qu’avec
certains clients du réseau Gnutella (Ares, BearShare,
Morpheus…). Certains d’entre eux, à la
manière de Kazaa, imposent l’affichage de
publicités. Gnutella dispose de clients Linux et Macintosh.
Le réseau EDonkey
Le réseau e-Donkey est né en septembre 2000 mais c’est au cours de l’année 2001 qu’il a connu son véritable essor. Par rapport à ses prédécesseurs, eDonkey fonctionne dans un mode décentralisé avec une multitude de serveurs : l’architecture est proche du super noeud. eDonkey permet le transfert de tous types de fichiers et ce, quelque soit la plateforme puisqu’il dispose de client Windows et Unix. Chaque utilisateur peut ouvrir son propre serveur et tous les serveurs peuvent être reliés entre eux. Lorsqu’un client se connecte sur un serveur, il lui fournit la liste des fichiers partagés. Une fois connecté, il peut rechercher un fichier. Soit il le recherche sur le serveur sur lequel il est connecté, soit sur tous les serveurs connus par l’intermédiaire des autres peer (fonctionnalité réservée à eMule).
Une autre particularité:
le quota d’upload / download. Ainsi si on limite l’upload a
0 ko/s, le download est fixé a 0 ko/s. le rapport est de 1 pour
4 :
Ce système permet d’éviter les utilisateurs les plus égoïstes. ;-)
Comme la plupart des réseaux d’échanges de
fichiers, à aucun moment les fichiers ne sont
transférés sur les serveurs. Celui-ci n’intervient
qu’à la connexion et lors des recherches puisqu’il a
le rôle d’annuaire. Le protocole de transfert est
basé sur UDP, le port utilisé peut être
changé.
Le plus gros avantage d’eDonkey est son protocole MFTP (Multisource File Transfert Protocol), également appelé hashing (découpage).
Derrière cette abréviation se cache un système
ingénieux pour optimiser les temps de
téléchargement de fichiers. Sur un système
classique, le client ne pourrait télécharger des fichiers
qu’à partir de Peer sources disposant du fichier complet.
Grâce au MFTP, un client peut à la fois
télécharger une partie d’un fichier à partir
de plusieurs sources et aussi partager les parties déjà
téléchargées:
Ce schéma explique le principe du téléchargement partagé d'eDonkey. Le client Z
possède la totalité du fichier (les minuscules
représentent les différentes parties du fichier). Les
clients W, X, et Y veulent tous télécharger ce fichier. Puisque les clients X et Y
ont tous les deux différents morceaux du fichier, ils peuvent
non seulement télécharger ce fichier à partir de
client Z
mais ils peuvent aussi commencer à s'envoyer mutuellement ce
qu'ils ont. Cela permet de distribuer le plus rapidement possible ce
fichier sans bloquer la bande passante de Z. En réalité cette bande passante sera bloquée (les clients X et Y
vont télécharger au maximum de la vitesse) mais beaucoup
moins longtemps (puisque certains morceaux seront arrivés
d'autres sources). De plus le client W peut commencer à charger ce qui lui manque chez les clients X et Y tant que Z n'a plus assez de bande passante.
En plus du MFTP, eDonkey utilise un système de listes
d’attente très ingénieux qui favorisent les
personnes qui ont le plus de parties du fichier. Grâce à
cela la diffusion se fait rapidement et plus il y a de sources qui
disposent du fichier complet, plus la vitesse de
téléchargement est rapide.
eMule remplace peu à peu eDonkey
chez les clients Windows grâce à ses nombreuses
fonctionnalités comme une gestion des recherches plus
poussées et une gestion automatique des files d’attente et
des priorités. Mais les réels avantages du réseau
eDonkey sont présents depuis son lancement et c’est ce qui
fait son succès actuellement avec le fait qu’il soit
disponible sous Linux (Les serveurs sont généralement
sous Linux),
Les personnes qui se déclarent en tant que serveur EDonkey (NB:
ce n'est pas votre cas, vous serez clients) font en fait office
d'annuaire et répertorient les fichiers d'un certain nombre
d'autres utilisateurs clients. Donc, quand vous vous connectez en tant
que client sur un serveur, celui-ci va répertorier les fichiers
que vous avez choisi de partager (paramètrable), et les mettre
à la disposition des autres utilisateurs. C'est ce que l'on
appelle le "File Sharing".
Techniquement, les serveurs doivent avoir
une bande passante suffisante pour pouvoir accepter les requêtes
des clients, et retourner des réponses rapides. C'est pour cela
que les temps de ping sont indiqués. En fonction de leur bande
passante, les serveurs pourront accepter un certain nombre
d'utilisateurs, plus ou moins grand. Il est préférable de
se connecter à un serveur rapide ayant un grand nombre
d'utilisateurs, de façon à ce que vos recherches vous
donnent le résultat que vous recherchez le plus vite possible,
et le plus exact possible (titre exact, chanteur exact...).
MFTP
Impact du Hashing (découpage)On l'a vu, non seulement EDonkey est moins centralisé que Napster (plusieurs serveurs), mais il bénéficie également d'une autre particularité: il sectionne les fichiers en petits bouts ("Hashing"). Chaque petit bout peut être téléchargé indépendemment des autres et possédé par plusieurs personnes. C'est pour cela que lors du téléchargement d'un fichier, certaines sections pourront être très bleues (car beaucoup de personnes l'ont déjà) et d'autres très claires (peu disponible), voir même rouge (indisponibles). Méfiance donc quand vous téléchargez des fichiers, car il se peut que certains fichiers soient disponibles partiellement, et que le dernier petit bout manquant ne soit pas disponible du tout, ce qui fera que votre téléchargement ne se finira jamais... Soyez vigilants donc.
Vous vous rendez compte que cela peut accélérer
terriblement la diffusion... Mais s'il manque à tout le monde le
même petit morceau, personne n'aura le fichier complet.
Voici le code des couleurs utilisé par eMule:
Noir montre les parties déjà téléchargées
Rouge indique une partie manquante sur toutes les sources
Les différentes teintes de bleu représentent la
disponibilité de cette partie sur les sources: plus le bleu est
foncé, plus la disponibilité est haute
Jaune indique une partie en cours de téléchargement
La barre verte en haut représente l'avancement total du téléchargement du fichier
indique que le téléchargement du fichier est terminé (complet)
Vous pouvez aussi double-cliquer sur le fichier en cours de
téléchargement pour voir les différentes sources
proposant ce fichier. Pour chaque source, vous voyez alors:
Noir indique les parties que vous avez déjà
Bleu représente les parties que vous n'avez pas encore
Argent montre les parties que cette source ne posséde pas non plus
Vert indique les parties en cours de téléchargement
Jaune indique une partie en attente (déjà demandée)
Le réseau Fast Track
Le réseau FastTrack, dont le client le plus connu du grand
public est Kazaa peut être comparé à eDonkey sur
plusieurs points. Tout comme lui il permet le partage de fichiers de
tous types et emploie le protocole MFTP.
Il connaît un énorme succès dans le monde,
malgré la présence d’un spyware dans la version
grand public du client Kazaa. Kazaa Lite 2.1.0(k++ edition) ne comporte
parait-il aucun spyware ni adware...
Sa force réside dans la facilité d’utilisation
puisque son interface est très intuitive et comporte un lecteur
multimédia et une bibliothèque pour organiser ses
fichiers. Autre avantage, beaucoup de peer de Kazaa disposent de
liaison T1 (disons équivalent ADSL) et ainsi il n’est pas
rare d’atteindre des débits supérieurs à
50ko/s.
Il
fonctionne de la même manière qu’eDonkey
avec une subtilité supplémentaire : les supernodes.
Les utilisateurs disposant d’une connexion très rapide
sont immédiatement considérés comme des supernodes
et jouent alors le rôle de serveur. C’est eux qui
hébergent la liste des fichiers partages par les clients. Les
serveurs principaux ne gèrent donc que les connections et la
liste des supernodes. Cette méthode permet au réseau
Fasttrack de disposer d’une quantité croissante de serveur
de recherche avec le nombre de clients présents.
Les supernodes restent des Peer, ils partagent et
téléchargent aussi des fichiers (Peer C Supernode A). Le
temps CPU consommé par la fonction de supernode est de
l’ordre de 10% et le client peut refuser de devenir supernode,
mais dans cas, c’est la mort du réseau Fasttrack. Les
supernodes communiquent entre eux pour les recherches. En fonction du
TTL (Time To Live) des paquets, la recherche est plus au moins profonde
sur le réseau. Les échanges entre clients se font via le
protocole HTTP 1.1.
Kazaa est le client le plus connu du réseau. Il est aussi le
plus complet puisqu’il a été conçu par les
auteurs du réseau. Une version "Spyware Free" est disponible et
s’appelle Kazaa Lite. Aucun client connu ne permet de se
connecter avec une autre plate-forme que Windows. Il faut
également disposer d’Internet Explorer et de Windows
Média Player.
Le réseau OpenNap
OpenNap étend le protocole de Napster en autorisant le partage
de tous types de fichiers média ainsi que la possibilité
de relier les serveurs entre eux. Opennap est un serveur Open source
pour connecter des clients Napster entre eux. Voir également le client WinMX plus
bas.
Le réseau Bittorrent
Un autre réseau... qui semble mettre l'accent sur une
meilleure
utilisation de la bande passante, notamment votre capacité
d'upload qui est utilisée pour décentraliser
encore un
peu plus l'ensemble. Il semble être très rapide et
efficace, à essayer si vous êtes pressé
!
Le réseau DirectConnect
DirectConnect est original de par son fonctionnement. Les serveurs sont
ici appelés des hubs (une traduction possible est "salon").
Chaque hub est créé pour accueillir une catégorie
de fichiers ainsi qu’une véritable communauté
autour d’un sujet précis (films, musique, animations,
logiciels, jeux,…).
Si on se connecte à ces hubs pour partager des fichiers ne
correspondant pas à la catégorie du hubs, on est alors
banni.
L’interface et le fonctionnement du client peuvent
s’apparenter à un IRC avec possibilité de partage
de fichiers en plus. Le programme a un fonctionnement similaire
à e-Donkey (liste d’attente, décentralisé)
mais ne possède ni le MFTP, ni la communication entre les
serveurs lors des recherches.
Autre différence, il faut parfois partager plusieurs Go avant de
pouvoir accéder aux hubs les plus intéressants du
réseau. L’impossibilité de connaître la liste
de tous les hubs en fait une communauté un peu fermée
face aux autres peer to peer. De fait de sa technologie moins
évoluée, il est également moins performant.
Le réseau Blubster
Blubster offre uniquement le partage fichier MP3, mais il le fait bien.
C’est un pur Peer-to-Peer et il utilise un protocole basé
UDP pour le transfert des fichiers. Son moteur de recherche
décentralisé est extrêmement rapide et le nombre de
fichiers présents est très important.
Théoriquement il peut se connecter de n’importe
où…
Son créateur (Pablo Soto, 22 ans) annonce même : "Le plus
gros avantage de Blubster finalement est sa faculté d'extension
et l'intelligence de l'organisation de notre réseau. Il n'y a en
fait aucune limite au nombre d'utilisateurs connectés en
même temps. Nous avons calculé que même 1.000.000
d'utilisateurs pouvaient facilement se connecter simultanément
sans problèmes de performances. Donc nous ne pouvons que dire
bienvenue aux anciens utilisateurs d'Audiogalaxy !"
Comparatif
Ce tableau n’est pas exhaustif et ne prend en compte que les réseaux de partages de fichiers.
Les chiffres ont été recueillis sur les réseaux
respectifs le lundi 3 février 2000 à 21h26,
connecté avec une ligne ADSL 512/128.
Ces tests montrent l’importance de la communauté
francophone d’e-Donkey et aussi l’efficacité de son
système MFTP couplé aux listes d’attente. Les
fichiers partagés via ces réseaux se diffusent
très rapidement.
Les chiffres fournis sur les réseaux autres qu’e-Donkey
sont à vérifier puisqu’il n’existe pas de
statistiques précises et régulières.
Nous avons pu voir que les réseaux peer-to-peer sont en plein
essor. Ils permettent un partage de ressources unique mais parfois au
dépend des lois. On pense notamment aux droits d’auteurs
des fichiers téléchargés via ces réseaux.
Il faut également prendre en compte l’aspect commercial de
ces logiciels et les bases de données utilisateurs que certains
logiciels (Kazaa notamment) enrichissent chaque jour.