Introduction
Dans le domaine des réseaux informatiques, le P2P est une technologie de partage de fichiers, permettant aux utilisateurs d’accéder principalement aux fichiers multimédia comme les vidéos, la musique, les livres électroniques, les jeux, etc. Les utilisateurs individuels de ce réseau sont appelés « pairs ». Les pairs demandent les fichiers à d’autres pairs en établissant des connexions TCP ou UDP.

Comment fonctionne le P2P(Vue d’ensemble)
Un réseau peer-to-peer permet au matériel et aux logiciels informatiques de communiquer sans avoir besoin d’un serveur. Contrairement à l’architecture client-serveur, il n’y a pas de serveur central pour traiter les demandes dans une architecture P2P. Les pairs interagissent directement les uns avec les autres sans avoir besoin d’un serveur central.

Maintenant, lorsqu’un pair fait une demande, il est possible que plusieurs pairs aient la copie de cet objet demandé. Maintenant, le problème est de savoir comment obtenir les adresses IP de tous ces pairs. Ceci est décidé par l’architecture sous-jacente supportée par les systèmes P2P. Grâce à l’une de ces méthodes, le pair client peut prendre connaissance de tous les pairs qui possèdent l’objet/fichier demandé et le transfert de fichier a lieu directement entre ces deux pairs.

Trois architectures de ce type existent :

  1. Répertoire centralisé
  2. Flocage de requêtes
  3. Exploitation de l’hétérogénéité

1. Annuaire centralisé

  • Il est quelque peu similaire à l’architecture client-serveur dans le sens où il maintient un énorme serveur central pour fournir un service d’annuaire.
  • Tous les pairs informent ce serveur central de leur adresse IP et des fichiers qu’ils mettent à disposition pour le partage.
  • Le serveur interroge les pairs à intervalles réguliers pour s’assurer que les pairs sont toujours connectés ou non.
  • En gros, ce serveur maintient une énorme base de données concernant quel fichier est présent à quelles adresses IP.

Fonctionnement

  • Maintenant, chaque fois qu’un peer demandeur arrive, il envoie sa requête au serveur.
  • Puisque le serveur a toutes les informations de ses peers, il renvoie donc au peer les adresses IP de tous les peers ayant le fichier demandé.
  • Maintenant le transfert du fichier a lieu entre ces deux pairs.

Le premier système qui a fait usage de cette méthode était Napster, dans le but de distribuer des Mp3.

Le problème majeur d’une telle architecture est qu’il y a un seul point de défaillance. Si le serveur tombe en panne, c’est tout le réseau P2P qui tombe en panne. En outre, puisque tout le traitement doit être effectué par un seul serveur, alors une énorme quantité de base de données doit être maintenue et régulièrement mise à jour.

2. Query Flooding

  • À la différence de l’approche centralisée, cette méthode fait appel à des systèmes distribués.
  • Dans cette méthode, les pairs sont censés être connectés dans un réseau superposé. Cela signifie que si une connexion/un chemin existe d’un pair à un autre, il fait partie de ce réseau superposé.
  • Dans ce réseau superposé, les pairs sont appelés des nœuds et la connexion entre les pairs est appelée une arête entre les nœuds, ce qui donne une structure de type graphique.

Fonctionnement

  • Lorsqu’un pair demande un certain fichier, cette demande est envoyée à tous ses nœuds voisins, c’est-à-dire à tous les nœuds qui sont connectés à ce nœud. Si ces nœuds ne disposent pas du fichier requis, ils transmettent la requête à leurs voisins et ainsi de suite. C’est ce qu’on appelle le query flooding.
  • Lorsque le pair avec le fichier demandé est trouvé (appelé query hit), le query flooding s’arrête et il renvoie le nom et la taille du fichier au client, suivant ainsi le chemin inverse.
  • S’il y a plusieurs query hits, le client sélectionne l’un de ces pairs.

Gnutella a été le premier réseau peer to peer décentralisé.

Cette méthode présente également quelques inconvénients comme, la requête doit être envoyée à tous les pairs voisins à moins qu’une correspondance ne soit trouvée. Cela augmente le trafic dans le réseau.

3. exploiter l’hétérogénéité

  • Cette architecture P2P fait appel aux deux systèmes discutés ci-dessus.
  • Elle ressemble à un système distribué comme Gnutella car il n’y a pas de serveur central pour le traitement des requêtes.
  • Mais contrairement à Gnutella, elle ne traite pas tous ses pairs de la même manière. Les pairs qui disposent d’une bande passante et d’une connectivité réseau plus élevées ont une priorité plus élevée et sont appelés chefs de groupe/super nœuds. Le reste des pairs est assigné à ces super-nœuds.
  • Ces super-nœuds sont interconnectés et les pairs sous ces super-nœuds informent leurs leaders respectifs de leur connectivité, de leur adresse IP et des fichiers disponibles pour le partage.

La technologie KaZaA est un tel exemple qui utilise à la fois Napster et Gnutella.
Ainsi, les leaders de groupe individuels avec leurs pairs enfants forment une structure de type Napster. Ces chefs de groupe s’interconnectent ensuite entre eux pour ressembler à une structure de type Gnutella.

Fonctionnement

  • Cette structure peut traiter les requêtes de deux manières.
  • La première est que les super-nœuds pourraient contacter d’autres super-nœuds et fusionner leurs bases de données avec sa propre base de données. Ainsi, ce super nœud dispose maintenant des informations d’un grand nombre de pairs.
  • L’autre approche est que lorsqu’une requête arrive, elle est transmise aux super nœuds voisins jusqu’à ce qu’une correspondance soit trouvée, tout comme dans Gnutella. Ainsi, l’inondation de requêtes existe mais avec une portée limitée car chaque super nœud a de nombreux pairs enfants. Par conséquent, un tel système exploite l’hétérogénéité des pairs en désignant certains d’entre eux comme chefs de groupe/super nœuds et d’autres comme leurs pairs enfants.

Références- Computer Networking:A Top down Approach By James F. Kurose

Cet article est rédigé par Arushi Dhamija. Si vous aimez GeeksforGeeks et que vous souhaitez contribuer, vous pouvez également écrire un article en utilisant contribute.geeksforgeeks.org ou envoyer votre article par courrier à [email protected]. Voyez votre article apparaître sur la page principale de GeeksforGeeks et aidez d’autres Geeks.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *