Protocoles de Peer to Peer - PowerPoint PPT Presentation

About This Presentation
Title:

Protocoles de Peer to Peer

Description:

Protocoles de Peer to Peer Etudes d approfondissement Sommaire 1. Pr sentation du sujet 2. Le protocole GNUtella 3. La plate-forme de d veloppement JXTA ... – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 59
Provided by: Alex2156
Category:

less

Transcript and Presenter's Notes

Title: Protocoles de Peer to Peer


1
Protocoles de Peer to Peer
  • Etudes dapprofondissement

2
Sommaire
  • 1. Présentation du sujet
  • 2. Le protocole GNUtella
  • 3. La plate-forme de développement JXTA

3
Historique et définition
  • Concept ancien existant depuis linformatique
    distribuée (30 ans). Il a vraiment été
    popularisé par Napster.
  • Un système d'échange direct de ressources entre
    machines connectées.
  • Au départ, Internet était vu comme un système
    Peer-to-Peer.

4
Définition et avantages
  • Littéralement " égal à égal " les ordinateurs
    sont à la fois clients et serveurs.
  • Possibilités de plus en plus accrues avec
    l'évolution des ordinateurs.
  • Permet la décentralisation des contenus ainsi
    quune meilleure répartition des taches.

5
Applications typiques
  • Calcul distribué projet SETI.
  • Echange de fichiers Napster, Gnutella
  • Stockage distribué Chord, CFS (MIT).
  • Plate-forme de développement et groupe de
    collaboration JXTA (Sun).

6
Les deux types darchitecture.
  • Architecture répartie assistée par un serveur
    central permettant dindexer les ressources.
  • Typiquement larchitecture du système Napster.

7
Les deux types darchitecture.
  • Architecture purement décentralisée.
  • Utilisé par Gnutella, FastTracks.
  • Plus difficile à réaliser mais plus intéressant
    car plus robuste et plus distribué.

8
Une architecture changeante
  • Au départ Internet était conçu pour des
    ordinateurs disposant dune adresse IP fixe.
  • Allocation dynamiques des adresses IP, NAT et
    firewalls en compliquent le fonctionnement.
  • Les développeurs et les opérateurs doivent
    sadapter.

9
Le protocole GNUtella
  • Histoire et concept.
  • Fonctionnement
  • Evolutions

10
GNUtella
  • Développé par NullSoft (J.Frankel T.Pepper) qui
    fut ensuite racheté par AOL-Time-Warner.
  • Diffusé peu de temps sur le Web, il put être
    implémenté par de multiples programmeurs sur
    différents OS.
  • Cest un protocole et non un programme.

11
GNUtella le concept
  • Le programme exécutant est un " servant " à la
    fois client et serveur.
  • Il permet de faire des demandes dinformations
    ainsi que des réponses à celles-ci.
  • Il permet de faire des téléchargements ainsi que
    des envois.

12
GNUtella concept technique
  • Le protocole est utilisé par des nœuds connectés
    avec TCP/IP.
  • Des milliers de connections à travers des
    milliers de nœuds créent une " web "
    dordinateurs le réseau GNUtella.
  • Les téléchargements se font directement via HTTP.

13
GNUtella fonctionnement
  • 1.Lordinateur trouve un ordinateur auquel se
    connecter.
  • 2.Lordinateur annonce quil est arrivé sur le
    réseau.
  • 3.Lordinateur peut ensuite émettre des requêtes
    et y répondre, il route aussi les messages.
  • 4.Il peut télécharger ou envoyer des fichiers.

14
GNUtella Connexion
  • Pour trouver une machine déjà connectée, il faut
    se connecter à un hostcache.
  • Le hostcache garde les adresses de certaines
    machines connectées.
  • Le client à généralement une liste de hostcache.

15
GNUtella connexion
  • Une fois une machine trouvée, il faut sy
    connecter
  • Demande GNUTELLA CONNECT/0.4\r\nUser-Agent
    Gnucleus 1.4.5.0\r\n\r\n
  • Si lôte accepte la connexion, il envoie
  • GNUTELLA/0.4 200 OK\r\nUser-Agent Gnucleus
    1.4.5.2\r\n\r\n
  • Après cela, les échanges peuvent commencer
  • GNUTELLA/0.4 200 OK\r\n\r\n

16
GNUtella arrivée sur le réseau
  • Utilisation du paquet ping il sert à decouvrir
    les autres nœuds sur le réseau.
  • Sert à donner une mesure de la taille de l'
    "horizon".
  • Caractéristiques du paquet (commun à tous les
    paquets gnutella)
  • GUID identifiant du paquet
  • Function identifiant du type paquet
  • TTL time to live
  • Hops nombre de sauts déjà accomplis
  • Payload length longueur du descripteur suivant
    len-tête

17
GNUtella arrivée sur le réseau
  • Description du paquet pong
  • Caractéristiques
  • En-tête
  • Port le port sur lequel le servant écoute.
  • Host IP du servant
  • File Count nombre de fichiers partagés
  • File Size taille de tous les fichiers partagés
  • Ce paquet est routé jusquau "pinger".

18
GNUtella arrivée sur le réseau
Ping Pong
19
GNUtella les requêtes
  • Pour une demande de fichier, on envoie un paquet
    de type Query
  • Caractéristiques
  • En-tête
  • Minimum Speed vitesse minimum de transfert dun
    client qui aurait un fichier correspondant
  • Query Mots-clés correspondant à la recherche.

20
GNUtella les requêtes
  • Si un ordinateur possède un fichier correspondant
    à une requête, il envoie un paquet de type
    QueryHit
  • Caractéristiques
  • En-tête.
  • Number of hits Nombre de "coups au but" dans le
    Result Set.
  • Port le port sur lequel le servant écoute.
  • Host IP du servant.
  • Speed vitesse du servant atteint.
  • Result Set Ensemble de réponses à la requête
    correspondante ( Number of hits )
  • -gtFile Index identifiant du fichier.
  • -gtFile Size taille du fichier
  • -gtFile Name nom du fichier correspondant à
    lindex.
  • Servent identifier Chaîne de 16 octets qui
    identifie le servent répondant à la requête.

21
GNUtella le paquet push
  • Un servant ne peut initier de connexion HTTP avec
    un autre servant derrière un firewall.
  • Avec le paquet push, il demande au servant du
    fichier d'initier la connexion.
  • Caractéristiques
  • En-tête.
  • Servent identifier Chaîne de 16 octets qui
    identifie le servent qui doit pousser le fichier.
  • File Index identifiant du fichier devant être
    poussé.
  • Host IP du servant vers lequel le fichier doit
    être poussé.
  • Port le port vers lequel le fichier doit être
    poussé.

22
GNUtella le routage des paquets
  • Technique de "flooding" -gt inondation.
  • Les pings sont envoyés à tous les voisins sauf à
    l'émetteur.
  • Les pongs empruntent le même chemin que les
    pings.
  • Le routage des paquets QueryHits fonctionne comme
    celui des pongs.

23
GNUtella téléchargement
  • Une fois un fichier choisi, le téléchargement se
    fait par connexion HTTP directe entre 2 servants.
  • Demande
  • GET /get/2975/How Towels Work.txt
    HTTP/1.0\r\nUser-Agent LimeWire 1.8\r\nRange
    bytes0-\r\n\r\n
  • Réponse
  • HTTP 200 OK\r\nServer Gnucleus
    1.4.5.2\r\nContent-typeapplication/binary\r\nCo
    ntent-length 2894894\r\n\r\n

24
GNUtella première topologie du réseau
  • Les nœuds sont tous égaux et jouent exactement le
    même rôle.
  • Saturation lors de la montée en charge.
  • Trop de messages circulant.

25
GNUtella nouvelle topologie du réseau
  • Besoin de changements.
  • Comment améliorer le réseau?
  • Utilisation des "ultrapeers".

26
GNUtella les ultrapeers
  • Fin 2001 LimeWire relance le concept et
    l'implemente dans son client.
  • Une hierarchie de nœuds est créée
  • Ultrapeers Bonne capacité de calcul et de
    transfert.
  • "Nœuds Feuilles" Ordinateurs "normaux".

27
GNUtella les ultrapeers
  • Envoi périodique d "indexing queries" à ses
    fils.
  • Lultrapeer ne fait suivre les "queries" quaux
    clients qui ont une entrée correspondante.
  • Compatible avec les clients anciens qui sont vus
    comme des ultrapeers sans fils.

28
GNUtella choix des ultrapeers
  • Lordinateur ne doit pas être situé derrière un
    firewall et doit avoir un système dexploitation
    relativement récent.
  • Doit avoir une bande passante et un processeur de
    bonne qualité.
  • Doit être sur le réseau depuis assez longtemps.

29
Etablissement des connexions feuille sur
ultrapeer
  • GNUTELLA CONNECT/0.6
  • X-Ultrapeer False
  • User-Agent LimeWire 1.9
  • X-Query-Routing 0.1
  • X-My-Address 10.254.0.166349
  • GNUTELLA/0.6 200 OK
  • X-Ultrapeer True
  • X-Ultrapeer-Needed false
  • User-Agent LimeWire 1.9
  • X-Try-Ultrapeers 23.35.1.1466346,18.207.63.2563
    47
  • X-Try 24.37.144.1226346,193.205.63.226346
  • X-My-Address 10.254.0.166346
  • X-Query-Routing 0.1 -gt GNUTELLA/0.6 200
    OK

30
Etablissement des connexions feuille sur
feuille protégée
  • GNUTELLA CONNECT/0.6
  • X-Ultrapeer False
  • GNUTELLA/0.6 503 I am a shielded leaf node
  • X-Ultrapeer False
  • X-Try-Ultrapeers 18.2.3.146346, 18.1.17.26346
  • terminates connection

31
Etablissement des connexions ultrapeer vers
ultrapeer
  • GNUTELLA CONNECT/0.6
  • X-Ultrapeer True
  • GNUTELLA/0.6 200 OK
  • X-Ultrapeer True
  • X-Ultrapeer-Needed True
  • GNUTELLA/0.6 200 OK

32
Etablissement des connexions ultrapeer vers
ultrapeer
  • GNUTELLA CONNECT/0.6
  • X-Ultrapeer True
  • GNUTELLA/0.6 200 OK
  • X-Ultrapeer True
  • X-Ultrapeer-Needed false
  • GNUTELLA/0.6 200 OK
  • X-Ultrapeer False
  •  

33
Problèmes
  • Répartition des fichiers inégales.
  • Beaucoup de pillards.
  • Perte dintérêt de larchitecture.

34
Réplication des données
  • Différentes réplications connues
  • Réplication après téléchargement.
  • Réplication " sur le chemin ".

35
Réplication des données
  • Réplication au hasard.
  • Evite une concentration des fichiers.
  • Difficile à mettre en place.

36
Problèmes
  • Tensions entre les développeurs utilisant
    GNUtella.
  • Logiciels commerciaux et communautaires sur le
    même réseau, problèmes de compatibilité entre les
    clients.
  • Logiciel qui a toujours été développé dans un
    esprit libre, pas de chef de file pour linstant.

37
Evolution
  • Dynamisme et multiplicité des développeurs.
  • De nombreuses idées prometteuses mais pas encore
    mis en place.
  • Besoin d'une harmonisation des clients.

38
Quelques clients GNUtella
  • LimeWire
  • Shareazaa
  • BearShare
  • Gnucleus
  • Morpheus
  • Ares

39
JuXTApose
  • Le projet JXTA

40
Sommaire
  • Présentation
  • Les objectifs de JXTA
  • Le réseau virtuel de JXTA
  • JXTA Work and Play
  • Larchitecture JXTA
  • Les concepts du JXTA Core
  • Les protocoles du JXTA Core
  • Les protocoles standards de JXTA
  • Les services JXTA
  • Le Shell JXTA
  • JXTA Search

41
Présentation
  • Projet de recherche de Sun Microsystems, Inc.
  • The OReilly P2P conference
  • Ensemble de protocoles peer-to-peer libres et
    généraux
  • www.jxta.org

42
Les objectifs de JXTA
  • Interopérabilité
  • Permettre à tous les Peers de toutes les
    communautés de communiquer entre eux grâce à une
    même plate forme P2P
  • Multi plate forme
  • Langage de programmation (C, Java, Perl, Python,
    Ruby)
  • Système dexploitation (Solaris, Linux, Windows,
    MacOS, )
  • Réseaux (TCP/IP, Bluetooth, )
  • Ubiquité
  • Implémentation possible sur tout type de machine
    (PDA, routeur, PC, serveur, téléphones mobiles, )

43
Réseau virtuel de JXTA
44
JXTA Work and Play
  • Industries
  • Télécommunications
  • Gouvernement
  • Divertissements
  • Finances (enchères)
  • Applications
  • communication et collaboration instant
    messaging, partage de fichiers, partage
    denvironnement et de ressources (CPU, disques,
    bande passante, )
  • Architectures distribuées
  • Intra entreprise diffusion dinformation,
    formation
  • Nouvelle génération de jeux en réseaux

45
Larchitecture de JXTA
46
Les concepts du JXTA Core (1)
  • Peer
  • Implémente les protocoles Core de JXTA
  • Unique (Peer Id), indépendant et asynchrone
  • Relations persistantes ou temporaires (Peer
    Group)
  • Offre des services
  • Peers identiques interchangeables
  • Peer Group
  • Ensemble de Peers en relation (sécurité, intérêts
    communs, surveillance)
  • Unique (Peer Group Id)
  • World Peer Group
  • Peer Group Services (Discovery, Membership,
    Access, Pipe, Resolver, Monitoring)

47
Les concepts du JXTA Core (2)
  • Peer Pipe
  • Canal virtuel de communication entre Peer
    Endpoints
  • Différentes qualités de services
  • Unidirectionnel et asynchrone
  • Synchronisé
  • Streaming
  • Sécurisé
  • Point-to-point pipe (11) et propagate pipe (1n)
  • Messages XML
  • Peer Monitoring, Peer Metering
  • Capacité dobtenir un ensemble dinformation sur
    un Peer

48
Les Peer Pipes
49
Les protocoles du JXTA Core
  • Peer Resolver Protocol (PRP)
  • Interrogation dun service dans un Peer Group
  • Utilise le Rendezvous Protocol
  • Handler Name
  • Resolver Query Message, Resolver Response Message
  • Endpoint Routing Protocol (ERP)
  • Trouver une route vers un Peer qui nest pas
    accessible (routage non déterministe)
  • Peer Routers
  • Route Query Message, Route Response Message
  • Marquage des messages

50
Resolver Query Schema
  • ltxselement name"ResolverQuery"
    type"jxtaResolverQuery"/gt
  • ltxscomplexType name"ResolverQuery"gt
  • ltxsallgt
  • ltxselement ref"jxtaCred" minOccurs"0"/gt
  • ltxselement name"SrcPeerID" type"jxtaJXTAID"/
    gt
  • ltxselement name"HandlerName"
    type"xsstring"/gt
  • ltxselement name"QueryID" type"xsstring"/gt
  • ltxselement name"Query" type"xsanyType"/gt
  • lt/xsallgt
  • lt/xscomplexTypegt

51
Les protocoles standard de JXTA
  • Peer Discovery Protocol (PDP)
  • Recherche de ressources (Peers, Peers group,
    pipe, services)
  • Utilise les services pour valoriser son cache
  • Discovery Query Message, Discovery Response
    Message
  • Rendezvous Protocol (RVP)
  • Propage les messages dans un Peer Group
  • Contrôle de la propagation (TTL, loopback
    detection, )
  • Peer Information Protocol (PIP)
  • Obtenir des informations sur dautres Peers
    (capacités, état, )
  • Pipe Binding Protocol (PBP)
  • Etablir un Pipe entre 2 ou plusieurs Peers
  • Pipe Resolver Message

52
Discovery Query Schema
  • ltxselement name"DiscoveryQuery"
    type"jxtaDiscoveryQuery"/gt
  • ltxsdsimpleType name"DiscoveryQueryType"gt
  • ltxsdrestriction base"xsdstring"gt
  • lt!-- peer --gt
  • ltxsdenumeration value"0"/gt
  • lt/xsdrestrictiongt
  • lt/xsdsimpleTypegt
  • ltxscomplexType name"DiscoveryQuery"gt
  • ltxssequencegt
  • ltxselement name"Type" type"jxtaDiscoveryQuer
    yType"/gt
  • ltxselement name"Threshold" type"xsunsignedIn
    t" minOccurs"0"/gt
  • ltxselement name"Attr" type"xsstring"
    minOccurs"0"/gt
  • ltxselement name"Value" type"xsstring"
    minOccurs"0"/gt
  • lt!-- The following should refer to a peer adv,
    but is instead a whole doc for historical reasons
    --gt
  • ltxselement name"PeerAdv" type"xsstring"
    minOccurs"0"/gt
  • lt/xssequencegt
  • lt/xscomplexTypegt

53
Les services JXTA
  • Equivalents aux librairies UNIX
  • Fonctions au-dessus du JXTA Core
  • Facilite le développement dapplication
  • Proposent différents mécanismes
  • Recherche, indexation
  • Partage de ressources
  • Cache
  • Transport via TCP/IP, HTTP, TLS
  • Traitements distribués et parallèles
  • Envoi de requêtes à lensemble dun Peer Group
  • Structure de données (XML)
  • Communications sécurisées
  • Usage professionnel (Intranet et Extranet)

54
Le Shell JXTA (1)
  • Accès interactif au JXTA Core
  • Publier, rechercher et exécuter des ressources
  • Découvrir de nouveaux Peers ou Peer Groups
  • Envoyer et recevoir des messages
  • Propriétés des commandes
  • Chargées dynamiquement lors de lappel
  • Création de nouvelles commandes
  • Appel JXTAgt NomCommande -options arguments
  • Redirection des E/S (dynamique, crossing pipe)
  • Importation/Exportation de données
    (share/unshare)
  • Batch files

55
Le Shell JXTA (2)
  • Commandes de base
  • shell, env, man, exit, version
  • more, cat, grep, ls
  • whoami informations sur le Peer
  • talk
  • peers recherche et liste les Peers
  • groups recherche et liste les Peer Group
  • mkpgrp/chpgrp créer/changer de groupe
  • join/leave rejoindre/quitter un groupe
  • search rechercher un codat
  • mkpipe création dun pipe
  • get/put lecture/écrire dans un message
  • send/recv envoyer/recevoir un message
  • importfile/exportfile

56
JXTA Search (1)
  • Motivations
  • Augmentation perpétuelle de la quantité
    dinformations accessibles par Internet
  • Moteurs de recherche dépassés
  • Hidden Web 400 fois plus dinformations
  • Avantages de JXTA
  • Protocoles en XML Multi plate forme
  • Requêtes distribuées (architecture décentralisée)
  • Les acteurs
  • Fournisseurs
  • Consommateurs
  • Peer Hub spécialisés (géographie, contenu,
    application)

57
JXTA Search Network
58
JXTA Search (2)
  • Recherche profonde (Deep Search)
  • Pertinence
  • Accessibilité
  • Efficacité
  • Query Routing Protocol (QRP)
  • 3 composants registers, queries, responses
  • Query Spaces, Query Predicates
  • Query Resolution and Routing
  • Utilisations
  • Recherche Internet (Google)
  • Échanges commerciaux (Communication et
    synchronisation)
Write a Comment
User Comments (0)
About PowerShow.com