Les Systèmes P2P: Avantages et Inconvénients

L’augmentation perpétuelle de la quantité des données à traiter, due à la convergence des technologies de l’information, tend à rendre le traitement sur des ordinateurs isolés obsolète. De ce fait, il se manifeste un besoin de pouvoir accéder à tout un ensemble d’informations à tout moment et de n’importe où ; ce qui pourrait poser en toute évidence quelques problèmes : la localisation des données, le temps d’accès aux ressources et le temps de traitement associé.

Une première solution serait donc d’agréger les capacités (de stockage et de calcul) de plusieurs ordinateurs pour réaliser un seul et même service. Cet agrégat est appelé grille informatique. Ce type de système bien qu’il soit distribué nécessite des réseaux de haut débit. A cet effet, une seconde solution utilisant l’internet est apparue avec les systèmes Pair-àPair (ou P2P). Les environnements P2P sont de nature complètement distribués. Dans ces systèmes, chaque pair peut être à la fois client et serveur. Plus généralement, chaque pair peut jouer l’ensemble des rôles existants dans le système. Depuis des années, des technologies basées sur le concept Pair-à-Pair ne cessent de gagner du terrain à cause des nombreuses et diverses utilisations que l’on peut en faire. Le partage à large échelle d’informations (fichiers, objets multimédias, …) proposé par les premiers systèmes Pair-à-Pair a démontré toute leur importance dans le domaine du multimédia et du commerce en ligne.

Etude et Compréhension des systèmes à large échelle

Les Systèmes P2P: Avantages et Inconvénients 

Les systèmes Pair-à-Pair sont en plein essor depuis maintenant plusieurs années. Ce sont des réseaux distribués, sans aucune organisation hiérarchique ou de contrôle centralisé. Ce paradigme de réseau entièrement décentralisé permet de concevoir des systèmes de très grande taille à forte disponibilité, tout cela à faible coût. Les pairs forment des réseaux overlay auto-organisant au dessus du réseau physique IP. Ils permettent l’accès à ses ressources par d’autres systèmes et supportent u n partage de ressources, qui exige les propriétés de tolérance aux pannes, d’auto-organisation et d’extensibilité massive. L es systèmes P2P vont au delà des services offerts par le client-serveur en ayant une symétrie dans des rôles où un client peut aussi être un serveur. Les différents systèmes P2P peuvent se différencier par leurs fonctionnalités. Certains permettent des recherches complexes (du type “nom de fichier contenant x et y”), alors que d’autres se limitent à des recherches exactes (du type “nom de fichier = x”).

Cependant, nous pouvons les classer selon leurs fonctionnalités en trois grandes familles: les réseaux hybrides dans lesquels il existe encore des serveurs centraux ; les réseaux non structurés, dans lesquels les liens entre les nœuds sont relativement aléatoires, et les réseaux structurés, dans lesquels chaque nœud possède une table de routage précise.

Les réseaux hybrides

Les réseaux hybrides ne sont pas entièrement décentralisés. Un serveur est utilisé comme annuaire des ressources disponibles, permettant une recherche et une localisation faciles. En revanche, les transferts de données se passent directement entre les pairs, sans faire intervenir le serveur. Ces réseaux ont été les premiers proposés dans une optique de partage de fichiers. Comme exemple, nous pouvons citer Napster et KaZaA [11].

Napster

Napster repose sur un unique serveur d’annuaire. Chaque nœud qui se connecte au réseau s’inscrit sur ce serveur et y publie la liste des fichiers qu’il partage. Lors d’une recherche, le serveur est interrogé et il re tourne la liste des pairs satisfaisant la requête. Les requêtes peuvent être complexes, mais la seule limite est la puissance du serveur. Cette puissance est d’ailleurs la limite de ce type de réseau car le serveur constitue un goulot d’étranglement. Bien que n’intervenant pas dans les transferts de fichiers, le serveur est nécessaire lors de chaque insertion ou recherche de données, ainsi qu’au fur et à mesure du téléchargement pour actualiser les sources. Son dimensionnement et sa disponibilité sont donc critiques pour le fonctionnement du système tout entier.

KaZaA

KaZaA [11] étend le système centralisé de Napster à un serveur lui même distribué. KaZaA introduit ainsi le concept de Super-Pair, un sous-ensemble de pairs qui joue le rôle du serveur de Napster. KaZaA utilise des super-pairs désignés qui ont une plus grande bande passante de connectivité, et se portent volontaire pour se faire élire pour faciliter la recherche par la mise en cache des métadonnées. Chaque pair “normal” connaît un S uper-Pair, sur lequel il publie ses partages et y envoie toutes ses requêtes. Les Super-Pairs communiquent ensuite entre eux. Pour relier les Super-Pairs, des réseaux non structurés ou structurés, qui seront décrits dans les sections suivantes de ce mémoire, peuvent être utilisés. Cependant, les développeurs de KaZaA ont opté pour une approche non structurée.

Cette organisation permet de réaliser des requêtes aussi complexes que dans Napster, tout en évitant les faiblesses de passage à l’échelle de la centralisation. Néanmoins, le choix des Super-Pairs n’est pas facile, du moment que le bon fonctionnent du réseau est inhérent à la puissance des nœuds et de la stabilité de leur connexion. Bien qu’il soit intéressant de séparer les pairs en catégories selon leurs capacités, il est dommage de se limiter à d eux types de nœuds quand les différences de capacités peuvent atteindre plusieurs ordres de magnitude.

En l’absence de centralisation claire, la présence d’une autorité ponctuelle est remise en cause. Les Super-Pairs ne sont plus contrôlés par une seule autorité, puisqu’il s’agit de machines d’utilisateurs du réseau. En tant que machines non contrôlées, certains Super-Pairs peuvent donc être eux-mêmes malicieux ; ces Super-Pairs ne peuvent donc pas de manière triviale distribuer des certificats fiables aux autres nœuds. De plus, si chaque pair se connecte à un et un seul Super-Pair qui peut se trouver être malicieux, leur accès au réseau peut être entièrement biaisé.

Les réseaux non structurés

Les réseaux P2P non structurés sont ceux dans lesquels il n’y a ni un répertoire centralisé ni un c ontrôle précis sur la topologie du r éseau ou e mplacement de fichiers. Ce sont des réseaux qui reposent sur la génération de graphes aléatoires entre les nœuds. Chaque nouveau nœud doit connaître un nœ ud appartenant au réseau, qui lui sert de bootstrap (ou nœud de démarrage) pour s’insérer dans le réseau. Les requêtes se passent ensuite sous la forme d’inondation (demande à tous les voisins qui demandent à tous leurs voisins, etc.) ou de marche aléatoire (demande à un voisin qui demande lui aussi à un autre voisin, etc.). Ici, nous présentons Gnutella [12] qui a été le premier réseau non structuré proposé, et Freenet [12].

Gnutella

Gnutella [12] permet de relier les ordinateurs les uns aux autres, il permet le transfert de fichiers d’une machine à une autre de façon plus ou moins anonyme. Chaque machine est à la fois un s erveur de fichiers et un client (appelée souvent sous l’acronyme servent). Contrairement à N apster qui était relié à un serveur central unique, il n’existe pas de tel serveur pour Gnutella, chacun fait partie intégrante du réseau et ce réseau se modifie au cours des connexions. Un nouveau servent(ou nœud) pour rejoindre le réseau se connecte. Il commence d’abord par rechercher tous les nœuds Gnutella du réseau. Pour cela il transmet une trame d’identification (PING) à tous ces voisins qui eux-mêmes la transmettront à leurs voisins. Ces envois sont encapsulés dans une trame TCP. Pour borner la recherche, le mécanisme de recherche joue sur le TTL de la trame. A chaque nœud du réseau, le TTL est décrémenté et lorsqu’il devient égal à 0 la retransmission est stoppée. Ce mécanisme permet d’éviter les boucles dans la transmission des trames d’identification. Lorsqu’une trame est reçue elle est stockée pendant un court laps de temps. Si le nœud reçoit pendant ce laps de temps une trame identique il la rejette car elle est déjà traitée. Lorsqu’un nœud est identifié, il envoie à l’émetteur une trame de réponse (PONG). Ce système utilise un protocole qui fonctionne au moyen de cinq descripteurs principaux qui permettent la transmission des informations entre les servents (ou nœuds) du réseau, et d’un ensemble de règles qui régissent l’échange de ces descripteurs.
➤ Ping : utilisé pour trouver les autres nœuds du réseau. Un servent recevant un Ping doit répondre avec un (ou plusieurs) Pong.
➤ Pong : réponse à un Ping. Le servent répondant par un Pong livre son adresse IP ainsi que des informations sur les données qu’il partage.
➤ Query : requête visant à trouver un ou plusieurs fichiers vérifiant certains critères.
➤ QueryHit : réponse à un Query. Donne une liste de fichiers correspondant à la requête, ainsi que l’adresse IP des servents où ces fichiers on été trouvés.
➤ Push : Mécanisme permettant aux contributeurs situés derrière un Firewall de se raccorder au réseau.

Pour obtenir une ressource, le pair lance une requête vers certains pairs du réseau qui la relaient vers les pairs auxquels ils sont connectés, qui eux même la transmettent. Si l’un des pairs dispose d’une ressource qui pourrait convenir au pair demandeur, il transmet l’information vers ce pair. Ce dernier pourra ainsi ouvrir une connexion directe vers cet ordinateur et obtenir la ressource. Ce modèle, tout en étant décentralisé, est beaucoup plus robuste qu’un modèle centralisé puisqu’il n’est pas dépendant d’un serveur, qui est le point de défaillance potentiel d’un réseau centralisé. Il tire partie de l’intermittence des connexions des nœuds car si l’un des nœuds se déconnecte du réseau, la requête pourra être poursuivie vers les autres ordinateurs connectés. Un grand avantage de ce nouveau type de réseaux, est le total anonymat qu’il procure. En effet en évitant de communiquer avec une machine centralisant les demandes et les annuaires, on évite les problèmes de récupération des données utilisateurs.

En revanche, en raison de la façon dont sont transmises les requêtes (broadcast), la bande passante nécessaire pour chaque requête croît exponentiellement quand le nombre de pairs croît linéairement. De plus, ce t ype de mécanisme est très facilement victime d’activités malicieuses. Des membres malintentionnés peuvent envoyer en grande quantité des requêtes erronées qui produisent une lourde charge sur le réseau, réduisant ainsi son efficacité.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction Générale
Chapitre 1 Etude et Compréhension des systèmes à large échelle
I. Les Systèmes P2P: Avantages et Inconvénients
1. Les réseaux hybrides
2. Les réseaux non structurés
3. Les réseaux structurés
II. Les Grilles Informatiques
1. Définitions des grilles informatiques
1.1. Les grilles de calcul
1.2. Les grilles de données
2. Infrastructures logicielles des grilles informatiques
Conclusion
Chapitre 2 Mécanismes de traitement des transactions dans les systèmes à large échelle
I. Etat de l’art sur le traitement des transactions à large échelle
II. Architecture globale de notre système
III. Mécanismes de traitement des transactions
1. Définition des transactions
2. Définition des concepts de base
3. Disponibilité d’un Data Node
4. Gestion de la cohérence mutuelle des Data Nodes
IV. Notre algorithme de routage
1. Cas où un seul DN déclare sa disponibilité
2. Cas où plusieurs Data Node déclarent leur disponibilité
Conclusion
Chapitre 3 Validation de notre algorithme de routage
I. Le simulateur réseau FreePastry
II. Implémentation de notre algorithme
1. La classe MyApplication
2. La classe MyMessage
3. La classe Couple
4. La classe SharedDirectory
5. La classe MySimulation
III. La simulation
1. Spécifications
2. Impact du nombre de nœuds sur le temps moyen d’exécution
3. Equilibrage de charge
4. Comparaison de notre approche avec Round Robin
Conclusion
Conclusion et Perspectives
Bibliographie

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

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