Tude d approfondissement protocoles de communication en peer to peer
This presentation is the property of its rightful owner.
Sponsored Links
1 / 46

Étude d’approfondissement Protocoles de communication en Peer-to-Peer PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on
  • Presentation posted in: General

É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

Download Presentation

Étude d’approfondissement Protocoles de communication en Peer-to-Peer

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tude d approfondissement protocoles de communication en peer to peer

Étude d’approfondissementProtocoles de communication en Peer-to-Peer

Marc CALVISI

M2PGI

02.11.2004


Tude d approfondissement protocoles de communication en peer to peer

Menu

  • Peer-to-peer

  • Gnutella

  • JXTA

  • Documents et Références

  • Démonstration

  • Vos questions?


Peer to peer p2p introduction

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


P2p architecture centralis e

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


P2p architecture d centralis e

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


P2p arch centralis e d centralis e

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


P2p avantages

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é


P2p d savantage

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, …


Tude d approfondissement protocoles de communication en peer to peer

Menu

  • Peer-to-peer

  • Gnutella

  • JXTA

  • Documents et Références

  • Démonstration

  • Vos questions?


Gnutella introduction

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


Gnutella architecture

Gnutella - Architecture

  • Version 0.4

    • Décentralisée

    • servants interconnectés

    • Trop trafic


Gnutella architecture1

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


Gnutella protocole

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)


Gnutella protocole1

Gnutella - Protocole

  • Téléchargement d’un fichier

    • via protocole HTTP

    • Communication direct pour l’échange

  • Servant envoie HTTP request GET


Gnutella exemples

Gnutella - Exemples

  • PING Messages

  • QUERY Messages


Tude d approfondissement protocoles de communication en peer to peer

Menu

  • Peer-to-peer

  • Gnutella

  • JXTA

  • Documents et Références

  • Démonstration

  • Vos questions?


Jxta introduction

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


Jxta objectifs

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


Jxta architecture

JXTA - Architecture

Source : JXTA Technology: Creating Connected Communities, Sun Microsystems


Jxta couche jxta core

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


Jxta couche jxta core1

JXTA - Couche JXTA Core

  • 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


Jxta couche jxta core2

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


Jxta couche jxta core3

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


Jxta couche jxta core4

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


Jxta couche jxta core5

JXTA - Couche JXTA Core

  • IDs

    • Identifiant unique pour

      • Peer, peer groups, pipes et autres ressources de JXTA

    • Exemple d’id pour un peer

      urn:jxta:uuid59616261646162614A78746150325033F3BC76FF13C2414BC0AB663666DA53903


Jxta couche jxta core6

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


Jxta couche jxta core7

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>


Jxta couche jxta core8

JXTA - Couche JXTA Core

  • 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


Jxta architecture1

JXTA - Architecture

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


Jxta couche jxta services

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


Jxta architecture2

JXTA - Architecture

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


Jxta couche jxta applications

JXTA – Couche JXTA Applications

  • Applications utilisant les couches JXTA services et JXTA Core

  • Applications possibles :

    • Instant messaging

    • Mail

    • Partage de document

    • Partage de ressource


Jxta protocoles

JXTA – Protocoles

  • Trouver un peer

  • Communication

  • Surveillance

  • Indépendants

    • de l’architecture du réseaux

    • du moyen transport

Source : JXTA, Brendon Wilson


Jxta peer discovery protocol

JXTA – Peer Discovery Protocol

  • Trouver des annonces de peers, peer groups, services et pipes

  • 2 messages :

    • Discovery Query Message

    • Discovery Response Message


Jxta peer discovery protocol1

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)


Jxta peer discovery protocol2

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)


Jxta peer resolver protocol

JXTA – Peer Resolver Protocol

  • Envoyer une requête de recherche

  • 2 messages :

    • Resolver Query Message

    • Resolver Response Message


Jxta rendezvous protocol

JXTA – Rendezvous Protocol

  • Envoyer des messages dans des peer groups

  • 3 messages:

    • Lease Request Message

    • Lease Granted Message

    • Lease Cancel Message


Jxta peer information protocol

JXTA – Peer Information Protocol

  • Demander des informations sur capacité et statut d’un peer

  • 2 messages :

    • Peer Info Query Message

    • Peer Info Response Message


Jxta pipe binding protocol

JXTA – Pipe Binding Protocol

  • Lié un pipe à point terminal(endpoint)

  • 2 messages :

    • Pipe Binding Query Message

    • Pipe Binding Answer Message


Jxta endpoint routing protocol

JXTA – Endpoint Routing Protocol

  • Trouver un chemin de communication

  • 3 messages :

    • Route Query Message

    • Route Response Message

    • Endpoint Router Message


Projet jxta exemple

Projet JXTA – Exemple

  • Un réseau physique et son réseaux virtuel

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


Documentations et r f rences

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


Documentations et r f rences1

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


D monstration

Démonstration


Vos questions

Vos Questions ?


  • Login