Le pair-à-pair

Initiation au peer-to-peer

Sur Internet, des données peuvent être échangées grâce au mode client-serveur. Mais pour certaines utilisations, ce système s’avère inadéquat. D’où l’existence d’un mode adapté au partage de données, le pair-à-pair ou poste-à-poste (en anglais peer-to-peer, abrégé en P2P).

 

Inadaptation du mode client-serveur

Il arrive que de nombreux utilisateurs souhaitent accéder en même temps à un même site web. Par exemple, un éditeur sort un nouveau jeu et aussitôt une nuée de joueurs se connecte simultanément. Le serveur du site doit être capable de faire face à un pic de connections, ce qui n’est pas toujours le cas. En effet, l’acquisition d’un serveur à très forte capacité coûte cher et n’est pas toujours rentable ! Comment résoudre le problème ? Tout ordinateur connecté à Internet pouvant être utilisé comme serveur, l’idée est de répartir cette fonction sur tous les postes qui sont en mode client.

Prenons l’exemple du bitcoin. C’est une cryptomonnaie qui réclame une énorme puissance de calcul pour sécuriser les opérations. Des serveurs dédiés devraient avoir des tailles gigantesques, c’est pourquoi cette solution n’est pas retenue. Au contraire, le protocole P2P permet de répartir les calculs sur de très nombreux ordinateurs personnels et rend la tâche possible.

La recherche utilise aussi cette possibilité de calcul distribué.

Autre utilisation fréquente, le partage de fichiers (vidéos, logiciels, jeux, musique…). Quelqu’un possède un film sur son disque dur et souhaite que n’importe quel internaute puisse le visionner. Si en plus d’autres internautes souhaitent distribuer le même film, chaque utilisateur qui le téléchargera importera en fait des morceaux de fichiers provenant de plusieurs sources. Plus un fichier est populaire, plus il est répliqué sur un grand nombre de pairs et plus son téléchargement est rapide. Au contraire, une rareté n’est pas toujours évidente à télécharger en P2P !

D’autres type d’applications sont susceptibles de fonctionner en P2P : téléphonie (VoIP), jeux, ventes aux enchères, streaming...

 

Architectures comparées

Les schémas suivants ont été réalisés avec EdrawMax.

Architecture client-serveur :

Le nœud du réseau est le serveur.

Architecture en P2P :

Chaque poste est un nœud.

 

Le principe

Il existe deux types d’architecture P2P : centralisée et décentralisée.

Dans l’architecture centralisée, il existe tout de même un serveur, auquel se connecte le client grâce à un logiciel de partage. Ce serveur gère une liste de « pairs », c’est-à-dire les adresses IP des membres de la communauté.

Plus précisément, il fournit les adresses IP des machines sur lesquelles se trouve tout ou partie de la ressource recherchée par le client.

Le logiciel se charge alors de récupérer des morceaux de cette ressource pour la reconstituer ensuite (sans passer par le serveur). Au fur et à mesure que les paquets arrivent sur le poste du client, celui-ci est susceptible de devenir serveur à son tour.

Il existe plusieurs solutions d’architecture décentralisée, que nous ne détaillerons pas. Leur point commun est qu’il n’existe pas de serveur unique.

Il existe aussi des systèmes mixtes : par exemple, la recherche des pairs peut être centralisée mais pas celle des ressources.

Les logiciels les plus connus pour gérer le partage de fichiers sont eMule, BitTorrent, µTorrent, Ares…

Les connections sont réalisées avec le protocole TCP/IP.

 

Des internautes pas toujours corrects

L’utilisation du P2P est légale mais le partage de certains contenus ne l’est pas puisqu’aucun droit d’auteur n’est payé. Ainsi, le P2P permet, théoriquement, d’échapper aussi bien à la censure qu’au respect de certaines obligations puisque les noeuds sont anonymes, les ressources sont chiffrées et le protocole est brouillé.

Par ailleurs, certains internautes téléchargent des fichiers mais ne les partagent pas. Cette pratique peut être qualifiée de « double parasitage » : celui des auteurs d’œuvres dont le travail n’est pas rétribué et celui de la communauté du réseau P2P.

 

Sécurité

En architecture décentralisée, un réseau P2P est beaucoup moins sensible aux pannes et autres mises à jour qui risquraient de rendre un serveur unique inopérant durant quelque temps.  En revanche, ce système peut se révéler lent, sensible aux malwares et imposer une quantité dissuasive de publicités !