Comprendre l'ordinateur

C'est quoi le Peer-to-peer (P2P) ?



A quoi ça sert ?

Imaginez: Un éditeur veut distribuer une version de démonstration d'un jeu très attendu. Habituellement, il va placer le fichier sur son site web, et tous les internautes vont venir le télécharger. Ce serveur web va donc être la seule source du fichier.

Avec un serveur central

Problème: Comme le fichier est très populaire, il y a énormément d'internautes qui viennent le télécharger en même temps.
Du coup, le serveur a de plus en plus de mal à répondre aux demandes, au point de ne plus pouvoir répondre du tout !

C'est ennuyeux:
Mais personne n'y arrive car le serveur est surchargé de demandes.
Et plus un fichier est populaire, plus ce phénomène est important et donc plus il est difficile de distribuer le fichier.
Ça n'est pas très efficace.
Il y a moyen de faire mieux.


D'égale à égale

Peer-to-peer (P2P) signifie "d'égale à égale".
Et de fait, sur internet, tous les ordinateurs sont égaux.  Ils peuvent tous envoyer et recevoir des données.

C'est de là qu'est venue l'idée suivante:
Puisque chaque internaute est capable aussi d'envoyer des données, il pourrait fournir aux autres internautes les bouts du fichier qu'il possède déjà. Cela allègerait le serveur.
C'est sur ce principe qu'est basé le Peer-to-Peer (P2P).

Et ça marche !

Chaque fois qu'un internaute télécharge un fichier, il partage en même temps les bouts du fichier qu'il a déjà reçu avec les autres internautes.
L'ordinateur de chaque internaute se comporte automatiquement en petit serveur, même s'il ne possède qu'une toute petite partie du fichier.
(Le fait qu'il donne des bouts de son fichier à d'autres internautes ne ralentit pratiquement pas son téléchargement.)

Le serveur d'origine n'est plus la seule source du fichier: La charge est répartie sur tout ceux qui sont en train de télécharger.

Avec le Peer-to-peer

Plus un fichier est populaire, plus il y a d'internautes qui le téléchargent, et donc plus il y a d'internautes qui redistribuent en même temps le fichier (ou une partie du fichier).

C'est un cercle vertueux: Plus un fichier est populaire, plus il est facile à télécharger.

Le serveur qui est à l'origine du fichier n'est plus surchargé.



Comment distribuer un fichier par P2P ?

Il y a plusieurs méthodes.
Généralement, les logiciels de P2P partagent un dossier sur votre disque dur. C'est à dire que tout fichier placé dans ce répertoire est automatiquement accessible à toute la planète. Faites donc très attention aux fichiers que vous placez dans ce répertoire: Une fois qu'un fichier est dans la nature, impossible d'empêcher sa diffusion !
Soyez également attentifs à la configuration du logiciel de P2P pour qu'il ne partage pas tout votre disque dur.


Avec certains systèmes de Peer-to-peer, la distribution se fait différemment (comme pour BitTorrent que nous verrons plus loin).



Comment trouver un fichier par P2P ?

Avec certains systèmes de Peer-to-peer, c'est différent (par exemple BitTorrent que nous verrons plus loin).


Comment font les ordinateurs P2P pour se trouver entre eux ?

Cela varie d'un logiciel à l'autre, mais généralement quand ordinateur reçoit une demande de fichier, il en profite pour communiquer les adresses de ses voisins.  Cela permet, de proche en proche, de savoir qui possède le fichier.

Avec certains systèmes de Peer-to-peer, c'est différent (par exemple BitTorrent que nous verrons plus loin).


Comment s'assurer qu'un internaute ne va pas envoyer (exprès) des morceaux corrompus d'un fichier ?

Problème: Comme chaque internaute distribue le fichier, certains internautes pourraient - exprès - transmettre des bouts incorrects du fichier.

Heureusement les logiciels de Peer-to-peer possèdent un système de vérification d'intégrité du fichier:
C'est à dire qu'ils sont capables de voir qu'une partie du fichier est incorrecte, et d'ignorer automatiquement les internautes qui envoie trop de bouts corrompus.

Au final, le logiciel de Peer-to-peer peut vous assurer que le fichier est strictement identique au fichier qui a été distribué à l'origine.



Et s'il n'y a plus assez d'internautes qui ont le fichier ?

Dans ce cas, il est possible que vous n'obteniez jamais la fin du fichier.
Cela arrive pour les fichiers très peu populaires: S'il n'y a plus, sur le réseau P2P, de personne connectée possédant le fichier en intégralité, vous risquez de ne jamais avoir ce fichier en entier.

Donc si vous avez réuissi à obtenir un fichier en entier, laissez votre logiciel de P2P ouvert afin d'en faire profiter les autres internautes.


Quels sont les différents réseaux Peer-to-peer ?

Il existe plusieurs réseaux de Peer-to-peer: Gnutella, Gnutella2, eDonkey2000, DirectConnect, DC++, Mute, etc.

Chaque réseau est bien séparé des autres et possède ses petites particularités.

Quand un fichier est partagé sur un réseau P2P, il n'est pas accessible des autres réseaux P2P.
Par exemple un fichier partagé sur le réseau eDonkey2000 ne sera donc pas disponible sur le réseau Gnutella2.

Le réseau le plus populaire est sans conteste eDonkey2000, mais il contient majoritairement des logiciels, musiques et films piratés, ainsi qu'un nombre incalculable de virus, cheveaux de Troie et contenu pornographique.

Certains logiciels sont capables de se connecter à plusieurs réseaux P2P à la fois, comme Shareaza (qui support eDonkey2000, Gnutella, Gnutella2 et BitTorrent).


Notez que ces réseaux sont publiques: Un fichier distribué sur un réseau P2P est accessible de toute personne se connectant sur ce réseau.


Bon c'est quoi ce BitTorrent, au final ?

BitTorrent est également un logiciel de Peer-to-peer, mais il fonctionne différemment des autres.
Tout d'abord, il ne possède pas de moteur de recherche: On ne peut commencer un téléchargement BitTorrent qu'en récupérant un fichier .torrent (publié sur un site web ou ailleurs).

BitTorrent est plus efficace que les autres P2P pour plusieurs raisons:
BitTorrent met donc en place des trackers. Un tracker est un petit programme installé sur un serveur qui permet de tenir à jour la liste des ordinateurs en train de télécharger un fichier.

Quand vous téléchargez un fichier par BitTorrent, il informe le tracker du fichier que vous êtes en train de télécharger, et de où vous en êtes. En retour, le tracker vous donne une liste d'adresses IP d'ordinateurs possédant également des bouts du fichier (ou bien le fichier complet).

Cela permet d'obtenir rapidement une liste d'ordinateurs possédant le fichier afin de s'y connecter, et donc de récupérer plus rapidement le fichier.

La netiquette dit qu'après avoir récupéré avec succès un fichier par BitTorrent, il est de bon goût de laisser le logiciel BitTorrent ouvert. Cela aidera les autres internautes à récupérer également le fichier.
Après tout, c'est grâce aux internautes que vous avez pu récupérer ce fichier, il est juste de les aider en retour, non ?
D'autant plus que ça ne vous coûte rien (si vous avez un accès haut débit permanent comme l'ADSL) et que cela ne ralentit pratiquement pas vos téléchargements (puisque c'est principalement des données sortantes (upload)).


BitTorrent, de part le fait que le tracker responsable de la publication n'est pas anonyme, est généralement moins utilisé pour distribuer du contenu illégale.


Le Peer-to-peer est illégale ?

Pas du tout. C'est tout à fait légal !
L'utilisation de logiciels de Peer-to-peer est légale.

Ce qui est illégale, c'est d'utiliser des logiciels de Peer-to-peer pour télécharger ou distribuer des oeuvres protégées par le droit d'auteur, ou d'autres choses (pornographie infantile, etc.).

Il ne faut pas confondre l'outils et les utilisations qui en sont faites.
Pour prendre une image: Les couteaux de cuisine et les voitures peuvent être utilisées à des fins illégales (voler et tuer), mais elles ne sont pas en elles-mêmes illégales.
Toute technologie peut être utilisée à de mauvaises fins.
Ce n'est pas une raison pour se priver de ce formidable outils.
Le Peer-to-peer en lui-même est une technologie très utile et promise à un bel avenir.


Il y a également des tas de fichiers distribués légalement par les logiciels de Peer-to-peer (comme les distributions Linux).
Mais il faut admettre que la grande majorité des fichiers qu'on y trouve sont illégaux dans la plupart des pays.

Mais ne jetons pas le bébé avec l'eau du bain: le Peer-to-peer est une bonne technologie.


Veillez à respecter la légalité !

Vous n'avez pas le droit de distribuer votre collection de CD ou films.
Ne téléchargez pas non plus des musiques, films, logiciels ou autres oeuvre protégée par le droit d'auteur.

Dans la plupart des pays, c'est illégale et vous risquez gros (Certains internautes se sont retrouvés poursuivis en justice.)

De plus, en France, la CNIL a autorisé les ayant-droits (SACEM, SELL, etc.) à constituer des fichiers des personnes qui distribuent des fichiers.
Sur comission d'un juge, elles peuvent obtenir votre identité auprès de votre fournisseur d'accès.
Sur internet, vous n'êtes pas anonyme.
Date+heure+adresse IP permettent de vous identifier. Votre fournisseur d'accès sait que c'est à vous qu'était attribuée une adresse IP à une heure précise.
Vous pouvez très bien être poursuivi pour avoir distribué illégalement de la musique ou des films.



Fiabilité

Comme tout le monde peut distribuer n'importe quoi, il ne faut faire aucune confiance aux fichiers distribués par P2P .
Par exemple, une bonne proportion des logiciels distribués par P2P contiennent des virus et cheavaux de Troie.

Le seul moment où vous pouvez faire confiance au P2P est quand vous suivez un lien ed2k://, magnet:// (ou autre) ou un fichier .torrent d'un site web de confiance.
Dans ce cas, vous pouvez accorder la même confiance au fichier téléchargé que celle que vous accordez au site web.


De plus, certains logiciels de P2P (comme Kazaa) contiennent des spywares (des programmes qui espionnent ce que vous faites).
C'est donc assez dangereux.


La gestion des doublons

Sur un ordinateur, des fichiers dont le contenu est différent peuvent avoir le même nom.

Fichiers ayant le même nom, mais des contenus différents.

Ces fichiers ont le même nom, mais ont un contenu différent.


Et un même fichier peut être copié sous des noms différents.

Fichiers de noms différents, mais contenant les mêmes données.

Ces fichiers ont des noms différents, mais ils contiennent tous la même chose.



Pour éviter la multiplication inutile des fichiers, les logiciels de P2P utilisent un système pour identifier un fichier en fonction de son contenu , indépendamment de son nom : Le hashage .

Le hash est un peu comme une empreinte digitale:

C'est la même chose avec le hashage:

Le hash se base exclusivement sur le contenu du fichier, pas sur son nom.
Il existe plusieurs méthodes différentes de hashage: SHA-1, MD5, Tiger...
Les réseaux P2P utilisent parfois des méthodes différentes.


A quoi ressemble un hash ?

C'est une suite de bits qu'on représente souvent en hexadécimal.

Par exemple, le hash SHA-1 du mot "Salutations" est e1c1a12ecb676f8b1df481e9a835be4d0766c2b9.
Si on change une seule lettre (par exemple en mettant un A en majuscules: "SalutAtions"), le hash est complètement différent: ae44fbe49f311ea6a589e826469dbb246d997cca
Si on ajoute ne serait-ce qu'un espace à la fin du mot ("Salutations "), le hash est également différent: b630352a7f21cffcb005492f8049090933886de3



Les logiciels de P2P utilisent uniquement les hashs pour identifier les fichiers (c'est plus fiable). C'est pour cette raison que dans les logiciels de P2P, un fichier peut apparaître sous plusieurs noms (les différents noms que les internautes ont donné à ce même fichier).

D'ailleurs, les liens ed2k:// ou magnet:/// contiennent des hashs, ce qui permet d'être sûr de récupérer le bon fichier même si son nom n'est pas correct.



L'avenir du P2P

En informatique, difficile de prédire l'avenir, mais on peut voir quelques tendances:





Le contenu de cette page est placé sous les termes de la licence suivante : CC Attribution-Noncommercial 4.0 International
ht t p : / / s e b s a u v a g e . n e t