Le peer-to-peer ou P2P : qu’est-ce-que c’est et comment cela fonctionne

Le peer-to-peer ou P2P en abrégé pour la plupart des internautes, c’est le partage de fichiers et téléchargement de logiciels ou films depuis des logiciels comme uTorrent, Emule, etc.
En réalité, le P2P est un mode de connexion très souvent utilisée par différentes plateformes d’internet sans que vous le sachiez.
En français, peer-to-peer se traduit par Pair à pair.

Dans cet article, vous trouverez des explications sur le fonctionnement de P2P.
Enfin quelques exemples d’utilisation du P2P.

Le peer-to-peer ou P2P : qu'est-ce-que c'est et comment cela fonctionne

Qu’est-ce que le P2P

Introduction

Le P2P (pour peer-to-peer) est un donc un mode de connexion qui apporte plusieurs avantages.
Avant de se lancer dans les explications, il faut comprendre les modes de connexions.

Initialement sur les réseaux et sur internet, le mode de connexion le plus commun est client <> serveur.
C’est à dire qu’un client que l’on peut assimiler à un ordinateur sur internet se connecte à un serveur.
Il s’agit d’un mode centralisé où ces derniers dialoguent et échangent des informations.
Par exemple, lorsque vous surfez sur internet pour afficher des sites WEB, vous êtes en mode client et serveur.
En effet votre navigateur WEB se connecte à un serveur WEB qui renvoie les informations au navigateur.
Plus d’informations sur ce fonctionnement sur la page : Comment fonctionnent les sites internet

Ce mode de connexion a vite atteint ses limites avec les besoins en bande passante grandissant notamment avec le streaming.
En effet, pour répondre à ces besoins de bande passante, il faut des infrastructures importantes.

Dans le P2P les clients dialogues entre eux et l’échange des données s’effectuent à travers ces derniers.
Pour des aspects de sécurité, cette communication peut se faire de manière chiffrée.
Cela évite d’avoir des grappes de serveurs pour répondre à la demande puisque la bande passante repose sur les clients.
On parle alors de réseau décentralisé, toutefois, cela dépend de la structure même du réseau.

Schéma d'un réseau P2P centralisé

Ci-dessous les schémas de ces architectures réseaux avec à gauche, une architecture client/serveur et à droite une mode de connexion Peer-to-peer.

Ceci est l’aspect général et principe du P2P. Chaque application a son propre protocole P2P avec ses spécificités.
Enfin, il est tout à fait possible de mélanger les deux architectures.

Fonctionnement technique du P2P

Comment les clients sont mis en relation dans un réseau pair à pair ?
Cela dépend du fonctionnement du réseau P2P car plusieurs solutions existent.

Dans tous les cas, on trouve des noeuds (node en anglais) qui gardent une liste des clients ainsi que d’autres noeuds.
C’est lors de la première connexion, que l’on peut trouver des différences :

  • Un ou plusieurs serveurs centralisés donnent au client la liste des noeuds. Il s’agit d’un serveur bootstrap.
  • Ou le client est directement mis en relation avec un des noeuds du réseau.

Selon la structure, le réseau est alors plus ou moins décentralisé.

Cette liste de noeuds est constamment mis à jour auprès des clients.
Cela permet de s’assurer que les clients pourront toujours se connecter à au moins un noeud et ainsi assurer de la pérennité du réseau.

Un noeud peut-être un serveur ou il peut tout simplement s’agir d’un client.
Cela dépend du fonctionnement du protocole P2P.
Dans le second cas, le système fait en sorte de choisir des clients stables.

Enfin, il est aussi possible de compartimenter le réseau P2P par groupe de noeuds.
Cela dépend aussi du fonctionnement du protocole P2P choisie lors de la création de l’application.
Ci-dessous un exemple d’architecture P2P et serveurs centraux utilisés par un CDN.

Fonctionnement technique du P2P

Quelques utilisations du P2P

Le Peer-to-peer a très vite été utilisé par différentes solutions et applications pour un gain de bande passante.
Voici quelques exemples d’utilisations du P2P.
Il en existe bien d’autre comme par exemple

  • SQL Serveur ou Windows 10 qui utilise le P2P pour télécharger les mises à jour au sein d’un réseau local.
  • les DNS (Distributed DNS);
  • la mise à disposition de logiciels (distributions Linux comme la Mandriva, World of Warcraft, etc.) ;
  • diffuser des contenus multimédias (streaming) ;
  • les logiciels de messagerie en ligne ;
  • la téléphonie avec les premières versions de Skype.

Enfin bref du P2P, on peut en mettre partout.

Téléchargement (uTorrent, Bittorrent, Emule)

Une des utilisations les plus connus est probablement le téléchargement à travers différentes applications comme Napster, eDonkey, uTorrent, Bittorrent, Emule.
Le succès très important de ces solutions a fait que le P2P est assimilé à ces programmes alors qu’il existe toute sorte d’applications du peer-to-peer.
Le fonctionnement de ces solutions est la même.
Les clients partagent un fichier à travers un réseau P2P.
Puis les nouveaux clients mettent à disposition le fichier à leur tour.
On parle de fichier mais cela peut-être des morceaux de ce dernier.

Emule fut un des premiers logiciels les plus connus utilisant le P2P.
L’application se connecte à un serveur qui liste les clients. Ces derniers partagent des fichiers.
Le serveur sert alors de noeud pour mettre en relation les clients.
Lors du téléchargement, les clients mettent à dispositions des morceaux du fichier.

Bitorrent et ses prédécesseurs comme uTorrent ont aussi vite connus un succès notamment à travers le site PirateBay.
L’internaute télécharge un fichier .torrent qui contient les informations du tracker avec les morceaux du fichier.
Le tracker est un serveur qui stocke les morceaux fichiers et des clients. Il s’agit donc d’un noeud centralisé.
Le client se mettent alors en relation pour partager des morceaux de fichiers.
La dernière version du protocole remplace le fichier torrent par un magnet Link.
Ce dernier se présente sous la forme d’une URL.

WEB P2P (Streaming, WebTorrent, Akamai, Peer5)

Des solutions de streaming peuvent aussi s’appuyer sur le P2P.
L’avantage est de tirer partie des clients pour mettre à disposition le contenu et éviter ainsi de devoir mettre en place des structures importantes (Datacenter, etc)
Plusieurs applications utilisent le P2P comme WebTorrent ou Akamai.

WebTorrent est une application WEB qui permet de visualiser des films, séries etc.
C’est le même principe que Bitorrent mais en streaming et sur votre navigateur WEB.
La solution s’appuie sur le protocole WebRTC.
Le client utilise un lien magnet pour la mise en relation des clients qui permet ensuite de visualiser la vidéo.

Akamai est réseau de diffusion de contenu (RDC) ou en anglais content delivery network (CDN) spécialisé dans la mise en ligne de contenu.
Il est notamment utilisé par des géants du Web comme Apple, Facebook, etc.
La mise en ligne de vidéo s’appuie sur le protocole P2P.
Le navigateur WEB peut alors être client/serveur via le protocole WebRTC ou l’application Akamai NetSession Client.

Peer5 est une solution qui permet de mettre en ligne sur votre site du contenu en P2P.

BlockChain

Les blockchains qui permettent de stocker des données sans serveurs centralisés reposent aussi le réseau P2P.
Ils sont utilisés par des monnaies virtuelles même si d’autres applications sont possibles.

La page suivante aborde en détails le fonctionnement des Blockchain : Comprendre les crypto-monnaies ou monnaie virtuelle : Bitcoin, Ethereum, etc

Botnet et Malwares

L’utilisation du P2P par des botnets sophistiqués a aussi vu le jour rapidement.
Cela permet de complexifier la mise hors ligne d’un botnet.

En effet, dans le cas d’un ou plusieurs serveurs centralisés, pour décapiter un botnet, il faut mettre hors ligne les noeuds en même temps.
La mise hors ligne dépend de la structure du réseau : utilisation de serveur boostrap, serveurs centraux etc.

Ici le but recherché est de complexifier la mise à hors ligne du réseau en utilisant un réseau décentralisé.
Il est aussi possible d’empoisonner le réseau, si des acteurs de la sécurité peuvent prendre le contrôle de certains serveurs ou noeuds.
On peut alors envoyer des informations incorrectes (faux clients, faux noeuds, etc) pour mettre à mal le réseau P2P.

Il est aussi tout à fait possible de mélanger les deux mode comme c’est le cas du botnet Waldeac.
Voici une illustration de ce botnet P2P et client et serveur.

Exemple de la structure d’un réseau P2P du botnet Waledac
source Symantec

Enfin la page suivante aborde plus en détails les botnets : Les botnets : réseau de machines infectées

image_pdfimage_print
(Visité 1 627 fois, 1 visites ce jour)