tude dapprofondissement Protocoles de communication en PeertoPeer Marc

  • Slides: 46
Download presentation
Étude d’approfondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M 2 PGI 02. 11.

Étude d’approfondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M 2 PGI 02. 11. 2004

02. 11. 2004 2 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références

02. 11. 2004 2 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

02. 11. 2004 3 Peer-to-Peer (P 2 P) - Introduction n Définiton • «Peer-to-Peer

02. 11. 2004 3 Peer-to-Peer (P 2 P) - Introduction n Définiton • «Peer-to-Peer (P 2 P) technology enables any network-aware device to provide services to another network-aware advice » [JXTA, Brendon Wilson] n Peer • Un processeur, une application, une machine • Rôle : peut être un client et/ou serveur • Client – demande un service • Serveur – offre un service, exécute un service n Différentes architectures possibles

02. 11. 2004 4 P 2 P – Architecture Centralisée n n n Client/Serveur

02. 11. 2004 4 P 2 P – Architecture Centralisée n n n Client/Serveur Données stockées centralement Client se connecte au serveur • Pour envoyer et recevoir des données • Pour communiquer avec autres clients • Pas de communication direct entre les clients n Serveur en panne • plus de données pour les clients n Nombre clients augmente • Ressources nécessaires du serveur augmentent n Exemple : • Serveur web • Base de données

02. 11. 2004 5 P 2 P – Architecture Décentralisée n n n Peer

02. 11. 2004 5 P 2 P – Architecture Décentralisée n n n Peer est client et/ou serveur Pas de serveur central Communication directe entre peers Responsabilités partagées Tolérant aux fautes Exemple : • Gnutella v 0. 4

02. 11. 2004 6 P 2 P – Arch. Centralisée/Décentralisée n 2 parties •

02. 11. 2004 6 P 2 P – Arch. Centralisée/Décentralisée n 2 parties • Partie centralisée • Supernoeud • Informations partagées • Partie décentralisée • Peer • Demande d’informations auprès des supernoeuds • Communication direct entre clients n n Pas besoin de contacter tous les peers Exemple : Napster, Mirabilis ICQ

02. 11. 2004 7 P 2 P - Avantages n n n n Réseaux

02. 11. 2004 7 P 2 P - Avantages n n n n Réseaux très extensibles Responsabilité distribuées Différent canaux de communication possibles Utilisation de toute la bande passante Haute disponibilité Résistant au panne Calculs distribués Espace de stockage distribué

02. 11. 2004 8 P 2 P - Désavantage n n Réseaux redondant Requête

02. 11. 2004 8 P 2 P - Désavantage n n Réseaux redondant Requête pour une information • Différents résultats • Sans réponse n n n Apparition/Disparition de ressource à tout moment Attaques distribuées Problème de sécurité • Authentification, Confidentialité, Intercepteurs, …

02. 11. 2004 9 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références

02. 11. 2004 9 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

02. 11. 2004 10 Gnutella - Introduction n n Protocole pour échanger des fichiers

02. 11. 2004 10 Gnutella - Introduction n n Protocole pour échanger des fichiers Développé par Null. Soft Utilisé par : Bear. Share, Limewire, GTK Gnutella Peer nommé servant • Rôle : client et/ou serveur

02. 11. 2004 11 Gnutella - Architecture n Version 0. 4 • Décentralisée •

02. 11. 2004 11 Gnutella - Architecture n Version 0. 4 • Décentralisée • servants interconnectés • Trop trafic

02. 11. 2004 12 Gnutella - Architecture n Version 0. 6 • Centralisée/décentralisée •

02. 11. 2004 12 Gnutella - Architecture n Version 0. 6 • Centralisée/décentralisée • Ultrapeer (supernoeud) • Gateway au réseau Gnutella • Interconnecté de manière décentralisé • Leaf connecté à un Ultrapeer • centralisé • Avantages : moins de trafic

02. 11. 2004 13 Gnutella - Protocole n n n Protocole v 0. 4

02. 11. 2004 13 Gnutella - Protocole n n n Protocole v 0. 4 : 5 messages Protocole v 0. 6 : 6 messages Les messages : • PING – trouver un autre servant • PONG – réponse à un PING • adresses et informations pour partagé des données • Query – Requête pour des fichiers • Query. Hit – réponse à QUERY • Informations sur les données trouvées • PUSH – Communication via firewall • BYE – Déconnexion (v 0. 6)

02. 11. 2004 14 Gnutella - Protocole n Téléchargement d’un fichier • via protocole

02. 11. 2004 14 Gnutella - Protocole n Téléchargement d’un fichier • via protocole HTTP • Communication direct pour l’échange n Servant envoie HTTP request GET

02. 11. 2004 15 Gnutella - Exemples n PING Messages n QUERY Messages

02. 11. 2004 15 Gnutella - Exemples n PING Messages n QUERY Messages

02. 11. 2004 16 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références

02. 11. 2004 16 Menu n n n Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

02. 11. 2004 17 JXTA – Introduction n Problèmes des solutions P 2 P

02. 11. 2004 17 JXTA – Introduction n Problèmes des solutions P 2 P existants • • Protocoles propriétaires Protocoles non compatibles Nouvelle application, nouveau protocole Différentes solutions • Même propriétés pour les protocoles • Souvent solutions seulement pour une platform n Projet JXTA – lancée par Sun Microsystems • JXTA = «juxtapose» n Base pour développer une application P 2 P

02. 11. 2004 18 JXTA - Objectifs n Interoperability • Peers peuvent trouver autres

02. 11. 2004 18 JXTA - Objectifs n Interoperability • Peers peuvent trouver autres peers • Communication entre tous les peers possible n Platform Independance • indépendant du système d’exploitation • Windows, Unix, Solaris, … • indépendant du langage de programmation • C/C++, Java, Perl, … • Messages du protocole en XML • Indépendant du moyen de transport • TCP/IP, HTTP, Bluetooth, … n Ubiquity • indépendant du type de machine • PDA, PC, Telefon mobile, … n Security

02. 11. 2004 19 JXTA - Architecture Source : JXTA Technology: Creating Connected Communities,

02. 11. 2004 19 JXTA - Architecture Source : JXTA Technology: Creating Connected Communities, Sun Microsystems

02. 11. 2004 20 JXTA - Couche JXTA Core n n n Définie la

02. 11. 2004 20 JXTA - Couche JXTA Core n n n Définie la base pour des réseaux P 2 P Éléments sont partagés par toutes les solutions Définies 6 protocoles de communications

02. 11. 2004 21 JXTA - Couche JXTA Core n Peer • Un appareil

02. 11. 2004 21 JXTA - Couche JXTA Core n Peer • Un appareil connecté au réseau • Différent peer • Simple Peer Offre des services et utilise des services • Rendezvous Peer Utiliser pour découvrir d’autres peers et des ressources de peers • Router Peer Trouver un chemin de communication

02. 11. 2004 22 JXTA - Couche JXTA Core n Peer groups • •

02. 11. 2004 22 JXTA - Couche JXTA Core n Peer groups • • Peer group = Collection de peers offrant un service spécifique Création d’ensemble de peers Attribution de nom à des peer groups Création de règles pour : • Créer, supprimer, découvrir, publier, adhérer peer groups et des peers

02. 11. 2004 23 JXTA - Couche JXTA Core n Peer Monitoring • Contrôle

02. 11. 2004 23 JXTA - Couche JXTA Core n Peer Monitoring • Contrôle du fonctionnement et activités des peers dans un peer group • Gestion de peers • Contrôle d’accès, adaptation de priorité, compteur de trafic, stabilisation de la bande passante

02. 11. 2004 24 JXTA - Couche JXTA Core n Peer Pipes • •

02. 11. 2004 24 JXTA - Couche JXTA Core n Peer Pipes • • Canaux de communication entre peers Asynchrone, unidirectionnel Envoie des messages en XML Un pipe lié un point terminal (endpoint) (exemple : TCP port with an IP) Source : Projext JXTA v 2. 0 : Java Programmer’s Guide, Sun Microsystems

02. 11. 2004 25 JXTA - Couche JXTA Core n IDs • Identifiant unique

02. 11. 2004 25 JXTA - Couche JXTA Core n IDs • Identifiant unique pour • Peer, peer groups, pipes et autres ressources de JXTA • Exemple d’id pour un peer urn: jxta: uuid 59616261646162614 A 78746150325033 F 3 B C 76 FF 13 C 2414 BC 0 AB 663666 DA 53903

02. 11. 2004 26 JXTA - Couche JXTA Core n Advertisements • Annonce pour

02. 11. 2004 26 JXTA - Couche JXTA Core n Advertisements • Annonce pour représenter des • Peer, peer groups, pipes et services • Indépendant du langage de programmation • Structure en XML • Protocoles utilisent les annonces • Décrire, publier l’existence de ressources d’un peer • Peer utilisent les annonces • Se connecter et interagir avec un services

02. 11. 2004 27 JXTA - Couche JXTA Core n Exemple d’une annonce pour

02. 11. 2004 27 JXTA - Couche JXTA Core n Exemple d’une annonce pour un pipe <? xml version="1. 0"? > <!DOCTYPE jxta: Pipe. Advertisement> <jxta: Pipe. Advertisement xmlns: jxta="http: //jxta. org"> <Id> urn: jxta: uuid 59616261646162614 E 504720503250338 E 3 E 7862 29 EA 460 DADC 1 A 176 B 69 B 731504 </Id> <Type>Jxta. Unicast</Type> <Name>Test. Pipe. end 1</Name> </jxta: Pipe. Advertisement>

02. 11. 2004 28 JXTA - Couche JXTA Core n Sécurité • 5 requis

02. 11. 2004 28 JXTA - Couche JXTA Core n Sécurité • 5 requis de base • Confidentialité Seulement une personne autorisé peut lire le message • Authentification L’expéditeur est celui qu’il prétend être • Autorisation L’expéditeur est autorisé à envoyer un message • Intégrité Pas de changement du message durant le transfert • Réfutation Le message a été envoyé par un expéditeur identifié N’est pas une copie d’une réponse transféré précédemment

02. 11. 2004 29 JXTA - Architecture Source : Projext JXTA v 2. 0

02. 11. 2004 29 JXTA - Architecture Source : Projext JXTA v 2. 0 : Java Programmer’s Guide, Sun Microsystems

02. 11. 2004 30 JXTA – Couche JXTA Services n n n Étend les

02. 11. 2004 30 JXTA – Couche JXTA Services n n n Étend les capacités de la couche JXTA Core Facilite le développement d’applications Mécanismes pour : • • • Recherche Indexation Partage de fichier Authentification Infrastructure à clé publique

02. 11. 2004 31 JXTA - Architecture Source : Projext JXTA v 2. 0

02. 11. 2004 31 JXTA - Architecture Source : Projext JXTA v 2. 0 : Java Programmer’s Guide, Sun Microsystems

02. 11. 2004 32 JXTA – Couche JXTA Applications n n Applications utilisant les

02. 11. 2004 32 JXTA – Couche JXTA Applications n n Applications utilisant les couches JXTA services et JXTA Core Applications possibles : • • Instant messaging Mail Partage de document Partage de ressource

02. 11. 2004 33 JXTA – Protocoles n n Trouver un peer Communication Surveillance

02. 11. 2004 33 JXTA – Protocoles n n Trouver un peer Communication Surveillance Indépendants • de l’architecture du réseaux • du moyen transport Source : JXTA, Brendon Wilson

02. 11. 2004 34 JXTA – Peer Discovery Protocol n n Trouver des annonces

02. 11. 2004 34 JXTA – Peer Discovery Protocol n n Trouver des annonces de peers, peer groups, services et pipes 2 messages : • Discovery Query Message • Discovery Response Message

02. 11. 2004 35 JXTA – Peer Discovery Protocol n Exemple : Discovery Query

02. 11. 2004 35 JXTA – Peer Discovery Protocol n Exemple : Discovery Query Message <? xml version="1. 0" encoding=“UTF-8 “ ? > <jxta: Discovery. Query> <Type>. . . </Type> <Treshold>. . . </Treshold> <Peer. Adv>. . . </Peer. Adv> <Attr>. . . </Attr> <Value>. . . </Value> </jxta: Discovery. Query> Type=(0|1|2)(annonce pour 0: peer, 1: peer group, 2: other type) Treshold? (nbr max. d’annonce à retourner par le peer répondant) Peer. Adv? (Annonce pour identifier un peer de manière unique) (Attr and Value)? (Critère qu’une annonce doit remplir avant d’être retourné au demandeur) Type=0 & Threshold=0 (=> recevoir toutes les réponses possibles)

02. 11. 2004 36 JXTA – Peer Discovery Protocol n Exemple : Discovery Response

02. 11. 2004 36 JXTA – Peer Discovery Protocol n Exemple : Discovery Response Message <? xml version="1. 0" encoding=“UTF-8 “ ? > <jxta: Discovery. Query> <Type>. . . </Type> <Count>. . . </Count> <Peer. Adv>. . . </Peer. Adv> <Attr>. . . </Attr> <Value>. . . </Value> <Response Expiration="expiration time">. . . </Response> </jxta: Discovery. Query> Type (le même type que dans le query) Count? (nbr élement response dans le message) Peer. Adv? (Annonce pour identifier le peer de manière unique) (Attr and Value)? (Critère) Response? (contient des annonces avec les critères)

02. 11. 2004 37 JXTA – Peer Resolver Protocol n n Envoyer une requête

02. 11. 2004 37 JXTA – Peer Resolver Protocol n n Envoyer une requête de recherche 2 messages : • Resolver Query Message • Resolver Response Message

02. 11. 2004 38 JXTA – Rendezvous Protocol n n Envoyer des messages dans

02. 11. 2004 38 JXTA – Rendezvous Protocol n n Envoyer des messages dans des peer groups 3 messages: • Lease Request Message • Lease Granted Message • Lease Cancel Message

02. 11. 2004 39 JXTA – Peer Information Protocol n n Demander des informations

02. 11. 2004 39 JXTA – Peer Information Protocol n n Demander des informations sur capacité et statut d’un peer 2 messages : • Peer Info Query Message • Peer Info Response Message

02. 11. 2004 40 JXTA – Pipe Binding Protocol n n Lié un pipe

02. 11. 2004 40 JXTA – Pipe Binding Protocol n n Lié un pipe à point terminal(endpoint) 2 messages : • Pipe Binding Query Message • Pipe Binding Answer Message

02. 11. 2004 41 JXTA – Endpoint Routing Protocol n n Trouver un chemin

02. 11. 2004 41 JXTA – Endpoint Routing Protocol n n Trouver un chemin de communication 3 messages : • Route Query Message • Route Response Message • Endpoint Router Message

02. 11. 2004 42 Projet JXTA – Exemple n Un réseau physique et son

02. 11. 2004 42 Projet JXTA – Exemple n Un réseau physique et son réseaux virtuel Source : Projext JXTA v 2. 0 : Java Programmer’s Guide, Sun Microsystems

02. 11. 2004 43 Documentations et Références n Brendon Wilson, « JXTA » ,

02. 11. 2004 43 Documentations et Références n Brendon Wilson, « JXTA » , 2000 • Notions P 2 P, Explications sur les éléments de JXTA, l’architecture et les protocoles • Livre en pdf sur le site • www. brendonwilson. com/projects/jxta/ n Sun Microsystems, « Project JXTA v 2. 0 Java Programmer’s Guide » , May 2003 • Explications sur les éléments de JXTA, l’architecture et les protocoles • www. jxta. org/docs/Jxta. Prog. Guid_v 2. pdf

02. 11. 2004 44 Documentations et Références n Site officiel de JXTA • www.

02. 11. 2004 44 Documentations et Références n Site officiel de JXTA • www. jxta. org • Beaucoup de documentations sur JXTA n JXTA Technology: Creating Connected Communities, Sun Microsystems, 2004 • www. jxta. org • Introduction dans JXTA n Sites de Gnutella • www. gnutella. com • Site officiel • http: //rfc-gnutella. sourceforge. net/ • Spécifications du protocole en version 0. 4 et 0. 6

02. 11. 2004 Démonstration 45

02. 11. 2004 Démonstration 45

02. 11. 2004 Vos Questions ? 46

02. 11. 2004 Vos Questions ? 46