Les Architectures Pair à Pair (KaZaa) Proposé par: Mr Samir MOALA Réalisé par: Riahi Amira Elloumi Amira MSI 2010/2011
Plan 1. Introduction 2. Problématique 3. Système pair à pair (P2P) 4. Exemple : le système KaZaa 5. Conclusion & Perspectives
Introduction (1/2) Utilisation croissante d'Internet. Systèmes existants de gestion de données : Partage transparent à petite échelle. Mémoire virtuellement partagée (MVP). Passage à grande échelle
Introduction (2/2) Qu’est-ce que le passage à grande échelle ? Croissance du nombre de sites, d’objets, d’utilisateurs. Croissance de la taille géographique, de la complexité (nb d’interactions). Taille importante des fichiers échangés.
Problématique Interactions d’un grand nombre de sources et/ou d’utilisateurs. Limitation de la bande passante. Faible tolérance aux pannes. Architecture Client/serveur insuffisante. Solution: Système P2P
Système PAIR à Pair
Le peer to peer (p2p), que l’on peut traduire Définition(1/2) Le peer to peer (p2p), que l’on peut traduire par pair-à-pair, est un ensemble de techniques permettant de mettre en place un système d’échange de données avec plusieurs utilisateurs entre eux. Wikipedia
Définition(2/2) Chaque membre est à la fois client et serveur, autonome Tous les services et données sont accessibles depuis n’importe quel nœud Pas de coordination centralisée Pas de point d'engorgement ou de panne Aucun nœud n’a une vision globale du système
Caractéristiques P2P Localisation des fichiers dans un environnement distribué Méta-données ou index du réseau P2P Libre circulation des fichiers entre les pairs Capacité de connexion variable suivant les pairs Hétérogénéité du réseau suivant les pairs Echanges d’information non sécurisés Certains pairs peuvent être non fiables Aucune vue globale du système.
architecture centralisée(1/3) Principe Index centralisé Échange d’information direct Cette architecture se compose d'un unique serveur, dont le but est de recenser les fichiers proposés par les différents clients L’architecture centralisée comprenait un serveur central qui servait d'index. L’ exemple le plus connu est Napster.
architecture centralisée(2/3) Un utilisateur recherche un fichier ressource en envoyant une requête au serveur central. • Le serveur central répond et transmet la liste des ordinateurs utilisateurs proposant le fichier demandé. • L'utilisateur télécharge le fichier directement à partir d'un des ordinateurs renseignés par le serveur.
Architecture centralisée(3/3) Avantages Simplicité d’utilisation Facilité de recherche de document Trafic réseau réduit Inconvénients Robustesse Aucun anonymat Faible sécurité Avantages : Simplicité : pas de soucis de connexion au bon serveur. La recherche de document est facilitée. Le serveur maintient en effet un index des ressources. Trafic réseau réduit. Les pairs ne communiquent entre eux que s’ils ont quelque chose à échanger. Inconvénients Robustesse : il suffit de supprimer le serveur pour que l'intégralité du réseau soit inactif. Il est cependant possible de réduire cet inconvénient par la mise en place de serveurs répliqués. Aucun anonymat n'est possible, puisque chaque utilisateur est identifié sur le serveur. Faible sécurité : si le serveur est supprimé, le réseau est hors service Une autre architecture de P2P est l'architecture décentralisée
Architecture décentralisée(1/3) Ici Tout le monde est à la fois client et serveur le serveur central n'est plus nécessaire à la connexion Chaque internaute indexe lui-même ses propres fichiers Lors des recherches, chaque nœud propage la requête à ses voisins Ici, plus de serveurs au sens commun : tout le monde est a la fois client et serveur Le réseau le plus connu utilisant cette architecture : Gnutella
Architecture décentralisée(3/3) La création de l’annuaire Le client va "broadcaster" une demande d’identification Les nœuds recevant la demande va à leur tour la propager sur tous les nœuds voisins et ainsi de suite La réponse au broadcast va pouvoir identifier tous les nœuds du réseau et se crée un annuaire
Architecture décentralisée(2/3) Lors de la recherche d’information, chaque nœud propage la requête a ses voisins , qui font de même. Si l’un capable de répondre à la demande il émet la liste des fichiers demandées Finalement la téléchargement se fait directement avec le demandeur la durée de vie d’une requête est limitée au nombre de sauts maximum(time to live TTL).
Architecture décentralisée(3/3) Avantages Taille réseau est théoriquement infinie Anonymat Tolérance aux pannes Adaptabilité (connexion et déconnection sans conséquences) Inconvénients Gros consommateur de bande passante Pas de garantie de succès, ni d'estimation de la durée des requêtes(TTL) Avantages La taille d'un tel réseau est théoriquement infinie. IL n’y a pas de contraintes sur les ressources d’un serveur central. Anonymat Tolérance aux pannes (grand nombre de noeuds pouvant répliquer les mêmes données) Adaptabilité (connexion et déconnection des pairs sans conséquences) Inconvénients Gros consommateur de Bande passante. Pas de garantie de succès( sa depant de ttl) , ni d'estimation de la durée des requêtes. Pas de sécurité, ni de réputation (pas de notion de qualité des pairs, ni des données fournies).
Architecture décentralisée(3/3) cette architecture a bien vite périclité, car le réseau était constitué à la fois d'ordinateurs connectés en haut débit et d'ordinateurs connectés par modem ( propagation ralentie de données ). Il s'agit donc d'une solution hybride entre les réseaux de première et de seconde génération. Architecture hybride
Architecture hybride(1/4) Cette architecture opère une distinction entre deux niveaux de pairs . Tous les nœuds ne sont plus égaux : - Les nœuds disposant d'une bonne bande passante sont organisés en super-pairs - Les nœuds avec une faible bande passante sont reliés en mode client/serveur à un super-pairs Les super-pairs disposent d'un index des ressources de leur cluster Entre deux superpairs en revanche, le système continue à fonctionner comme les réseaux decentralisée. Mais la propagation des données est plus rapide, puisqu'elle n'utilise plus que les connexions haut débit. Une fois l'adresse IP communiquée à l'ordinateur d'origine, une connexion directe s'établit entre les deux pairs, quel que soit leur niveau. Il s'agit donc d'une solution hybride entre les réseaux de première et de seconde génération. Le réseau FastTrack, associé au logiciel de partage Kazaa, constitue un bon exemple de réseau pair à pair de troisième génération.
Architecture Hybride(2/4) Lien C/S Lien P2P l’architecture hybride utilise deux architectures (centralise_ décentralisé)
Architecture hybride(3/4) Règles de conception d'un super-pair : Augmenter la taille d'un cluster augmente la charge individuelle. Il faut maximiser le nombre de connexions des super-pairs. diminuer le nombre de sauts pour atteindre un résultat. Il est nécessaire de minimiser le TTL (time-to-live). Problème : Si le super-pair n'est pas joignable, tous ses clients sont coupés du réseau. La redondance de super-pair est favorable. Il faut maximiser le nombre de connexions des super-peers (permet de diminuer le nombre de sauts pour atteindre un résultat).
Architecture hybride(4/4) Avantages Présence des super-paires facile à administrer et à contrôler Évite les recherches coûteuses sur le réseau Le réseau n'est plus pollué par les trames de broadcast. Inconvénients Pas d’anonymat partout problème de disponibilité et de passage à l’échelle d’un serveur central Présence d’un serveur central : facile à administrer donc facile à contrôler Évite les recherches coûteuses sur le réseau Tolérances aux fautes en sondant régulièrement les pairs connectés et en maintenant un état cohérent Inconvénients *** Pas d’anonymat partout Chaque pair est connu du serveurs et des pairs sur lesquels il télécharge *** Limites habituelles d’un serveur central problème de disponibilité et de passage à l’échelle Le réseau le plus connu utilisant cette architecture : Kazaa--
Système KaZaA
Présentation du système kazaa(1/3) kaZaa est un client appartenant à la société Sharman Networks. Se base sur une architecture hybride (centralisée-décentralisée). Utilise une technique de super-pair Permet de partager des fichiers (audio, vidéo etc.) entre différents ordinateurs connectés. Possibilité de télécharger un même fichier depuis différentes sources en même temps. Principes de KazaaUn nouvel utilisateur doit ouvrir un compte, déclarer ses répertoires de fichiers partagés. En fonction de sa bande passante, le logiciel décidera si le client est ou non un super-peer (possibilité de l'activer ou de le désactiver manuellement). Une incertitude règne quant à la façon de connecter deux super-peer ensembles. Il se peut que ce soit grâce à un protocole décentralisé de type broadcast. Lors d'une recherche, un noeud envoie sa requête à son super-peer (il lui transmet en même temps un index de ses fichiers partagés). Le super-noeud dispose d'un index des ses propres ressources, ainsi que celle des noeuds de son cluster, ce qui lui permet de répondre à la requête. Les files d'attentes sont paramétrées en fonction de plusieurs critères, dont le ratio upload/download et la qualité des ressources. Kazaa a été l'un des premiers logiciels de peer to peer à offrir le multi-sourcing, c'est-à-dire la possibilité de télécharger un même fichier depuis différentes sources en même temps. Kazaa est actuellement le client peer to peer le plus utilisé au monde. Avec en moyenne 1,5 millions d'utilisateurs connectés en même temps sur le réseau, il bénéficie d'une redoutable stratégie commerciale aidée par une interface sharman networks diffuse gratuitement son logiciel Kazaa
Présentation du système kazaa(2/3) Récupération automatique du téléchargement si L’ un des serveurs tombe en panne Donne une estimation du temps de téléchargement Taille d’un groupe : 100-150 pairs Chaque super-pair est connecté via TCP à environ 30-50 super-pairs
Présentation du système kazaa(3/3) L’architecture Kazaa suit un système 2-tiers: Raccordements rapides au réseau Raccordement plus lents Cette une topologie dans laquelle les nœuds au center du réseau Sont plus rapides Enfin, Kazaa dispose d'un lecteur multimédia intégré permettant de pré visualiser les fichiers téléchargés, et dispose d'une fonction de filtrage des résultats pour éviter aux enfants de trouver des fichiers sensibles.
Types de messages(1/3) Message Description Ping Request Pong Request tester qu’un client est toujours connecté. Pong Request envoyé suite à un paquet Ping, contient •Adresse IP + n° de port du servent •Le nombre et la quantité de données partagées Server Network Name paquet envoyé par l’hôte auquel le client cherche à se connecter. Il permet de déterminer le nom du réseau sur lequel on se connecte Client Network Name paquet envoyé par le client indiquant sur quel réseau se situe le client hôte auquel le client cherche à se connecter. packet tous les autres paquets du protocole sont englobés dans ce type de paquet
Ajout d’une ressource PaquetShareFile Index Lorsqu'un internaute souhaite partager un fichier, il le déclare à son super-paire par une requête de recherche une et lui à son tour garde l’indexe .
Retrait d’une ressource Paquet UnShareFile Index
Liste des super pairs actifs Ajout d’un nœud Liste des super pairs actifs Choix du super pair Envoi des informations du pair Handshake Response Connexion TCP Handshake Request Et pour l’ajout d’un nœud
Retrait d’un nœud Pong Ping
Recherche et localisation d’une ressource Search Query @ IP Search Reply Principe : 1. Chaque utilisateur dispose du logiciel KaZaA. A l’exécution du logiciel, KaZaA recherche une connexion internet. 2. Si une connexion est détectée, une connexion entre l’utilisateur et un des Super-pairs de KaZaA est établie. 3. Le super pair maintient un répertoire des ordinateurs clients connectés et stocke les informations sur ces utilisateurs (notamment les fichiers en partage). 4. Si un client désire un fichier, il passe une requête de recherche(id de la recherche, mots clés de la recherche, nb de résultats attendus…)au super-pair auquel il est connecté. 5. Le super-pair regarde s’il peut répondre à la requête et il l’envoie aux supers-pairs auxquels lui aussi est connecté. 6. Chacun renvoie une liste des réponses éventuelles : adresse IP du propriétaire, id de la ressource, taille du fichier, code de hachage… 7. Toutes les réponses suivent le chemin inverse de la requête jusqu’au pair ayant l’envoyer. 8. Le pair choisit le fichier qu’il veut et établit une connexion directe avec l’hote du fichier, en lui envoyant sa propre adresse IP et le nom du fichier demandé. 9. Transfert du fichier entre les deux ordinateurs, puis connexion interrompue à la fin du transfert. Search Reply @ IP
Gestion des pannes(1/2) Panne de lors de la transmission des données Recherche automatique d’une autre copie de la ressource
Gestion des pannes(2/2) Panne d’un super pair Super pair redondant 33
Super-pair redondant
conclusion Les réseaux pair-à-pair connaissent un grand succès Les domaines d’applications du pair-à-pair sont nombreux Les réseaux pair-à-pair engendrent des problèmes légaux Nombreux projets de recherche intéressants (localisation de ressources, dynamicité, hétérogénéité, sécurité, ordonnancement)
bibliographie Toutes les informations recueillies dans ce rapport viennent principalement des sources d’informations suivantes : http://www-igm.univ-mlv.fr/~duris/NTREZO/20042005/Boubaker-Lelion-Pierron-P2P.pdf http://membres-liglab.imag.fr/donsez/cours/p2p.pdf http://www.commentcamarche.net/contents/cs/peer.php3 http://www.vulgarisation-informatique.com/peer-to-peer.php http://catalogue.polytechnique.fr/cours.php?id=3296 http://www.irma.asso.fr/IMG/pdf/profit_Peer-to-peer_2003_FR.pdf http://stromboli.it-sudparis.eu/~defude/P2P/P2PDefude.pdf http://igm.univ-mlv.fr/~duris/NTREZO/20022003/Peer-to-peer.pdf http://www.scribd.com/doc/2511355/Etude-et-utilisation-des-technologies-des-P2P
Merci pour votre Attention