Étude d’approfondissement protocoles de communication en peer-to-peer
DESCRIPTION
Étude d’approfondissement Protocoles de communication en Peer-to-Peer. Marc CALVISI M2PGI 02.11.2004. Menu. Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?. Peer-to-Peer (P2P) - Introduction. Définiton - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/1.jpg)
Étude d’approfondissement
Protocoles de communication en Peer-to-Peer
Marc CALVISI
M2PGI
02.11.2004
![Page 2: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/2.jpg)
02.11.2004
2
Menu
Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?
![Page 3: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/3.jpg)
02.11.2004
3
Peer-to-Peer (P2P) - Introduction
Définiton• «Peer-to-Peer (P2P) technology enables any network-aware
device to provide services to another network-aware advice »
[JXTA, Brendon Wilson] 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
Différentes architectures possibles
![Page 4: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/4.jpg)
02.11.2004
4
P2P – Architecture Centralisée
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
Serveur en panne• plus de données pour les clients
Nombre clients augmente• Ressources nécessaires du serveur augmentent
Exemple : • Serveur web• Base de données
![Page 5: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/5.jpg)
02.11.2004
5
P2P – Architecture Décentralisée
Peer est client et/ou serveur Pas de serveur central Communication directe entre peers Responsabilités partagées Tolérant aux fautes Exemple :
• Gnutella v0.4
![Page 6: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/6.jpg)
02.11.2004
6
P2P – Arch. Centralisée/Décentralisée
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
Pas besoin de contacter tous les peers Exemple : Napster, Mirabilis ICQ
![Page 7: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/7.jpg)
02.11.2004
7
P2P - Avantages
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é
![Page 8: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/8.jpg)
02.11.2004
8
P2P - Désavantage
Réseaux redondant Requête pour une information
• Différents résultats
• Sans réponse Apparition/Disparition de ressource à tout moment Attaques distribuées Problème de sécurité
• Authentification, Confidentialité, Intercepteurs, …
![Page 9: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/9.jpg)
02.11.2004
9
Menu
Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?
![Page 10: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/10.jpg)
02.11.2004
10
Gnutella - Introduction
Protocole pour échanger des fichiers Développé par NullSoft Utilisé par : BearShare, Limewire, GTK Gnutella Peer nommé servant
• Rôle : client et/ou serveur
![Page 11: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/11.jpg)
02.11.2004
11
Gnutella - Architecture
Version 0.4• Décentralisée
• servants interconnectés
• Trop trafic
![Page 12: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/12.jpg)
02.11.2004
12
Gnutella - Architecture
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
![Page 13: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/13.jpg)
02.11.2004
13
Gnutella - Protocole
Protocole v0.4 : 5 messages Protocole v0.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
• QueryHit – réponse à QUERY• Informations sur les données trouvées
• PUSH – Communication via firewall
• BYE – Déconnexion (v0.6)
![Page 14: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/14.jpg)
02.11.2004
14
Gnutella - Protocole
Téléchargement d’un fichier• via protocole HTTP
• Communication direct pour l’échange Servant envoie HTTP request GET
![Page 15: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/15.jpg)
02.11.2004
15
Gnutella - Exemples
PING Messages
QUERY Messages
![Page 16: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/16.jpg)
02.11.2004
16
Menu
Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?
![Page 17: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/17.jpg)
02.11.2004
17
JXTA – Introduction
Problèmes des solutions P2P 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 Projet JXTA – lancée par Sun Microsystems
• JXTA = «juxtapose» Base pour développer une application P2P
![Page 18: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/18.jpg)
02.11.2004
18
JXTA - Objectifs
Interoperability• Peers peuvent trouver autres peers • Communication entre tous les peers possible
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, …
Ubiquity • indépendant du type de machine
• PDA, PC, Telefon mobile, …
Security
![Page 19: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/19.jpg)
02.11.2004
19
JXTA - Architecture
Source : JXTA Technology: Creating Connected Communities, Sun Microsystems
![Page 20: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/20.jpg)
02.11.2004
20
JXTA - Couche JXTA Core
Définie la base pour des réseaux P2P Éléments sont partagés par toutes les solutions Définies 6 protocoles de communications
![Page 21: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/21.jpg)
02.11.2004
21
JXTA - Couche JXTA Core
Peer• Un appareil connecté au réseau
• Différent peer• Simple Peer
Offre des services et utilise des services
• Rendezvous PeerUtiliser pour découvrir d’autres peers et des ressources de
peers
• Router PeerTrouver un chemin de communication
![Page 22: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/22.jpg)
02.11.2004
22
JXTA - Couche JXTA Core
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
![Page 23: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/23.jpg)
02.11.2004
23
JXTA - Couche JXTA Core
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
![Page 24: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/24.jpg)
02.11.2004
24
JXTA - Couche JXTA Core
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 v2.0 : Java Programmer’s Guide, Sun Microsystems
![Page 25: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/25.jpg)
02.11.2004
25
JXTA - Couche JXTA Core
IDs• Identifiant unique pour
• Peer, peer groups, pipes et autres ressources de JXTA
• Exemple d’id pour un peerurn:jxta:uuid59616261646162614A78746150325033F3BC76FF13C2414BC0AB663666DA53903
![Page 26: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/26.jpg)
02.11.2004
26
JXTA - Couche JXTA Core
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
![Page 27: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/27.jpg)
02.11.2004
27
JXTA - Couche JXTA Core
Exemple d’une annonce pour un pipe<?xml version="1.0"?><!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement xmlns:jxta="http://jxta.org"> <Id> urn:jxta:uuid- 59616261646162614E504720503250338E3E7862 29EA460DADC1A176B69B731504 </Id> <Type>JxtaUnicast</Type> <Name>TestPipe.end1</Name></jxta:PipeAdvertisement>
![Page 28: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/28.jpg)
02.11.2004
28
JXTA - Couche JXTA Core
Sécurité• 5 requis de base
• ConfidentialitéSeulement une personne autorisé peut lire le message
• AuthentificationL’expéditeur est celui qu’il prétend être
• AutorisationL’expéditeur est autorisé à envoyer un message
• IntégritéPas de changement du message durant le transfert
• RéfutationLe message a été envoyé par un expéditeur identifié
N’est pas une copie d’une réponse transféré précédemment
![Page 29: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/29.jpg)
02.11.2004
29
JXTA - Architecture
Source : Projext JXTA v2.0 : Java Programmer’s Guide, Sun Microsystems
![Page 30: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/30.jpg)
02.11.2004
30
JXTA – Couche JXTA Services
É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
![Page 31: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/31.jpg)
02.11.2004
31
JXTA - Architecture
Source : Projext JXTA v2.0 : Java Programmer’s Guide, Sun Microsystems
![Page 32: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/32.jpg)
02.11.2004
32
JXTA – Couche JXTA Applications
Applications utilisant les couches JXTA services et JXTA Core
Applications possibles :• Instant messaging
• Partage de document
• Partage de ressource
![Page 33: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/33.jpg)
02.11.2004
33
JXTA – Protocoles
Trouver un peer Communication Surveillance Indépendants
• de l’architecture du réseaux
• du moyen transport
Source : JXTA, Brendon Wilson
![Page 34: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/34.jpg)
02.11.2004
34
JXTA – Peer Discovery Protocol
Trouver des annonces de peers, peer groups, services et pipes
2 messages : • Discovery Query Message
• Discovery Response Message
![Page 35: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/35.jpg)
02.11.2004
35
JXTA – Peer Discovery Protocol
Exemple : Discovery Query Message<?xml version="1.0" encoding=“UTF-8 “ ?><jxta:DiscoveryQuery> <Type> . . . </Type> <Treshold> . . . </Treshold> <PeerAdv> . . . </PeerAdv> <Attr> . . . </Attr> <Value> . . . </Value></jxta:DiscoveryQuery>
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)PeerAdv? (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)
![Page 36: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/36.jpg)
02.11.2004
36
JXTA – Peer Discovery Protocol
Exemple : Discovery Response Message<?xml version="1.0" encoding=“UTF-8 “ ?><jxta:DiscoveryQuery> <Type> . . . </Type> <Count> . . . </Count> <PeerAdv> . . . </PeerAdv> <Attr> . . . </Attr> <Value> . . . </Value> <Response Expiration="expiration time"> . . . </Response></jxta:DiscoveryQuery>
Type (le même type que dans le query)Count? (nbr élement response dans le message)PeerAdv? (Annonce pour identifier le peer de manière unique)(Attr and Value)? (Critère) Response? (contient des annonces avec les critères)
![Page 37: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/37.jpg)
02.11.2004
37
JXTA – Peer Resolver Protocol
Envoyer une requête de recherche 2 messages :
• Resolver Query Message
• Resolver Response Message
![Page 38: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/38.jpg)
02.11.2004
38
JXTA – Rendezvous Protocol
Envoyer des messages dans des peer groups 3 messages:
• Lease Request Message
• Lease Granted Message
• Lease Cancel Message
![Page 39: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/39.jpg)
02.11.2004
39
JXTA – Peer Information Protocol
Demander des informations sur capacité et statut d’un peer
2 messages : • Peer Info Query Message
• Peer Info Response Message
![Page 40: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/40.jpg)
02.11.2004
40
JXTA – Pipe Binding Protocol
Lié un pipe à point terminal(endpoint) 2 messages :
• Pipe Binding Query Message
• Pipe Binding Answer Message
![Page 41: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/41.jpg)
02.11.2004
41
JXTA – Endpoint Routing Protocol
Trouver un chemin de communication 3 messages :
• Route Query Message
• Route Response Message
• Endpoint Router Message
![Page 42: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/42.jpg)
02.11.2004
42
Projet JXTA – Exemple
Un réseau physique et son réseaux virtuel
Source : Projext JXTA v2.0 : Java Programmer’s Guide, Sun Microsystems
![Page 43: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/43.jpg)
02.11.2004
43
Documentations et Références
Brendon Wilson, « JXTA »,2000• Notions P2P, Explications sur les éléments de JXTA,
l’architecture et les protocoles
• Livre en pdf sur le site
• www.brendonwilson.com/projects/jxta/ Sun Microsystems, « Project JXTA v2.0 Java
Programmer’s Guide »,May 2003• Explications sur les éléments de JXTA, l’architecture et les
protocoles
• www.jxta.org/docs/JxtaProgGuid_v2.pdf
![Page 44: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/44.jpg)
02.11.2004
44
Documentations et Références
Site officiel de JXTA• www.jxta.org• Beaucoup de documentations sur JXTA
JXTA Technology: Creating Connected Communities, Sun Microsystems, 2004• www.jxta.org• Introduction dans JXTA
Sites de Gnutella• www.gnutella.com
• Site officiel
• http://rfc-gnutella.sourceforge.net/• Spécifications du protocole en version 0.4 et 0.6
![Page 45: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/45.jpg)
02.11.2004
45
Démonstration
![Page 46: Étude d’approfondissement Protocoles de communication en Peer-to-Peer](https://reader035.vdocuments.net/reader035/viewer/2022062518/56814093550346895dac26a4/html5/thumbnails/46.jpg)
02.11.2004
46
Vos Questions ?