=dblog=

Introduction au P2P

2005/7/23 — Classé dans: — poumpoum

P2P = peer to peer = pair à pair = relation entres entités autonomes et égales.
Un réseau p2p est un réseau sur lequel les machines peuvent se comporter comme client, ou serveur ou les deux…

Le P2P permet le partage de ressources et services, par exemple :
- Informations
- Fichiers
- Cycles processeurs (puissance de calcul)
- Stockage
Le point important est que cela se fait en direct (c’est à dire sans serveur central)

Les échanges p2p sur Internet augmentent réguliérement.
La démocratisation du haut débit (ADSL, cable) fait que beaucoup de PCs de particuliers sont connectés et partagent des données 24h/24 et 7j/7.

Maintenant, un peu de technique.

Types de base des relations P2P

- Relation 1-1 (One to One) Transfert de fichier de PC à PC
- Relation 1-n (One to Many) Napster, Serveur Web, Serveur Mail
- Relation n-m (Many to Many) Protocole Gnutella, partage de ressources entres noeuds

Les Différents Frameworks P2P

1. Centralisé

C’est la première génération (Napster), qui utilise une architecture réseau serveur-client.
Le serveur central agit comme un régulateur de trafic, il contient un annuaire des fichiers partagés sur chaque nœud.
Chaque fois qu’un client entre ou sort du réseau, cet annuaire est mis à jour.

Tous les messages de contrôle et de recherche sont envoyés au serveur central et dès qu’une ressource est localisée, les nœuds communiquent directement pour l’échange.
Aucune ressource n’est partagée sur le serveur, une ressource ne transite jamais par le serveur.

:-) Super performances pour localiser des ressources
:-) Chaque pair doit être enregistré avant d’accéder au réseau ce qui garanti des recherches sûres et pertinentes
:-( Confidentialité
:-( Fiabilité du réseau

2. (complétement) Décentralisé

C’est la seconde generation (Gnutella)

Il n’y a pas de serveur central
Tous les noeuds sont égaux, et sont tous serveurs et clients (servents).

Chaque nœud maintient un certain nombre de connections avec des pairs.
Ces liens vont permettre d’acheminer le trafic (recherches, réponses, messages de contrôle permettant de découvrir d’autres pairs) sur le réseau.

Une recherche est transmise d’un pair à tous ses voisins.
La profondeur de propagation d’une recherche est limitée avec un TTL (Time To Live)
La réponse suit le chemin inverse.

Ensuite pour le transfert de données les nœuds communiquent en direct (les messages ne transitent pas par les autres nœuds).
Le transfert s’effectue sur un protocole de type HTTP

:-) Le réseau est robuste puisque indépendant de tout serveur central
:-( Les temps de recherche sont longs

3. Décentralisé avec contrôle

La troisième génération (FastTrack, gnutella2) est un hybride entre les modes centralisé et décentralisé.

Certains nœuds sont élus ’super-nodes’ ou ‘ultrapeers’ et servent de régulateurs de trafic pour les autres nœuds.
Les ultrapeers changent dynamiquement suivant la topologie du réseau

Un client maintient un petit nombre de connections et uniquement vers des ultrapeers.
Cela permet de rendre le réseau adapté à la montée en charge en réduisant le nombre de nœuds concernés par un message (un message transite par moins de nœuds, le routage est simplifié, le trafic est réduit).

:-) Grâce aux ultrapeers la recherche est aussi rapide qu’avec le modèle centralisé

Pour plus d’information lire l’excellente définition du P2P sur wikipedia.

Crédits :
Ce document est une synthèse du WhitePaper ‘Peer to peer file sharing’ de www.sandvine.com

Références :
www.slyck.com
rfc-gnutella.sourceforge.com
www.caida.org
www.peertopeercentral.com
www.openp2p.com

Commentaires »

L’URI pour faire un TrackBack sur cet article est: http://slasry.free.fr/wordpress/wp-login.php/wp-images/smilies/wp-trackback.php/47

Pas encore de commentaire

Flux RSS pour les commentaires sur cet article.

Poster un commentaire

Retours à la lignes et paragraphes automatiques, adresses E-mail jamais affichées, balises HTML autorisées : <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(requis)

(requis)


Réalisé avec WordPress