Étude dapprofondissement protocoles de communication en peer-to-peer marc calvisi m2pgi 02.11.2004

46
Étude d’approfondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

Upload: armand-ollivier

Post on 04-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

Étude d’approfondissement

Protocoles de communication en Peer-to-Peer

Marc CALVISI

M2PGI

02.11.2004

Page 2: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

2

Menu

Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

Page 3: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

9

Menu

Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

Page 10: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

11

Gnutella - Architecture

Version 0.4• Décentralisée

• servants interconnectés

• Trop trafic

Page 12: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

15

Gnutella - Exemples

PING Messages

QUERY Messages

Page 16: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

16

Menu

Peer-to-peer Gnutella JXTA Documents et Références Démonstration Vos questions?

Page 17: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

19

JXTA - Architecture

Source : JXTA Technology: Creating Connected Communities, Sun Microsystems

Page 20: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

29

JXTA - Architecture

Source : Projext JXTA v2.0 : Java Programmer’s Guide, Sun Microsystems

Page 30: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

31

JXTA - Architecture

Source : Projext JXTA v2.0 : Java Programmer’s Guide, Sun Microsystems

Page 32: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

32

JXTA – Couche JXTA Applications

Applications utilisant les couches JXTA services et JXTA Core

Applications possibles :• Instant messaging

• Mail

• Partage de document

• Partage de ressource

Page 33: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

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 dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

45

Démonstration

Page 46: Étude dapprofondissement Protocoles de communication en Peer-to-Peer Marc CALVISI M2PGI 02.11.2004

02.11.2004

46

Vos Questions ?