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 effet, il s’agit d’un type d’architecture réseau décentralisée très courant.
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.
Table des matières
Qu’est-ce que le P2P
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.
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 dialoguent 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.
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.
Le Peer-to-Peer : comment ça marche ?
Comment les clients sont mis en relation dans un réseau pair à pair ?
Cela dépend du fonctionnement du réseau P2P car plusieurs méthodes existent.
Dans tous les cas, on trouve des noeuds (node en anglais) qui gardent une liste des clients ainsi que d’autres noeuds.
Les clients Bittorrent peuvent aussi les nommer les pairs.
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.
Par exemple ci-dessous, le client Bittorrent qBittorent montre les pairs (noeuds) auxquels il se connectent :
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 ou système d’exploitation via leur fichier ISO. Par exemple des 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
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.
Bittorrent
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 Bittorrent se met alors avec le tracker pour récupérer des noeuds
- A son tour, le client Bittorrent se connectent aux différents noeuds pour récupérer des morceaux du fichier. Le téléchargement débute alors.
La dernière version du protocole remplace le fichier torrent par un lien magnet.
On trouve alors les termes suivants :
- Tracker : un traqueur est un serveur qui sait en permanence quels seeds et quels peers.
- Leecher : télécharge un fichier sans l’avoir en complet sur ton PC.
- Seed est un client qui partage un fichier complet.
- Peers (pairs) : Un PC avec un client Bittorrent qui tourne et qui fait donc office de noeuds en partageant un fichier
Les clients envoient régulièrement des informations aux trackers. En échange, ils reçoivent des informations concernant les autres clients auxquels ils peuvent se connecter. Le traqueur n’est pas directement impliqué dans le transfert de données et ne possède pas de copie du fichier. Cela fait de Bittorrent un P2P semi-décentralisé.
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 Waledac.
Voici une illustration de ce botnet P2P et client et serveur.
Enfin la page suivante aborde plus en détails les botnets :
Liens
- Le modèle ou architecture client-serveur (centralisé)
- Architecture décentralisée : définition et fonctionnement
- Le peer-to-peer ou P2P : qu’est-ce-que c’est et comment cela fonctionne
- Les botnets : réseau de machines infectées
- Comprendre les crypto-monnaies ou monnaie virtuelle : Bitcoin, Ethereum, etc
- Fibre : comment se fait le déploiement et architecture
- Le protocole TCP/IP : définition, architecture et couches
- Les couches du modèle OSI pour les nuls
- Les différents types de réseaux : LAN, WAN, MAN