1 / 58

Protocoles de Peer to Peer

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. Historique et définition.

Download Presentation

Protocoles de 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Protocoles de Peer to Peer Etudes d’approfondissement A.Thaveau & M-A Bourgeot

  2. Sommaire 1. Présentation du sujet 2. Le protocole GNUtella 3. La plate-forme de développement JXTA A.Thaveau & M-A Bourgeot

  3. Historique et définition • Concept ancien : existant depuis l’informatique 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. A.Thaveau & M-A Bourgeot

  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 qu’une meilleure répartition des taches. A.Thaveau & M-A Bourgeot

  5. 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). Applications typiques A.Thaveau & M-A Bourgeot

  6. Les deux types d’architecture. • Architecture répartie assistée par un serveur central permettant d’indexer les ressources. • Typiquement l’architecture du système Napster. A.Thaveau & M-A Bourgeot

  7. Les deux types d’architecture. • Architecture purement décentralisée. • Utilisé par Gnutella, FastTracks. • Plus difficile à réaliser mais plus intéressant car plus robuste et plus distribué. A.Thaveau & M-A Bourgeot

  8. Une architecture changeante • Au départ Internet était conçu pour des ordinateurs disposant d’une adresse IP fixe. • Allocation dynamiques des adresses IP, NAT et firewalls en compliquent le fonctionnement. • Les développeurs et les opérateurs doivent s’adapter. A.Thaveau & M-A Bourgeot

  9. Le protocole GNUtella • Histoire et concept. • Fonctionnement • Evolutions A.Thaveau & M-A Bourgeot

  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. • C’est un protocole et non un programme. A.Thaveau & M-A Bourgeot

  11. GNUtella : le concept • Le programme exécutant est un " servant " : à la fois client et serveur. • Il permet de faire des demandes d’informations ainsi que des réponses à celles-ci. • Il permet de faire des téléchargements ainsi que des envois. A.Thaveau & M-A Bourgeot

  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 " d’ordinateurs : le réseau GNUtella. • Les téléchargements se font directement via HTTP. A.Thaveau & M-A Bourgeot

  13. GNUtella : fonctionnement 1.L’ordinateur trouve un ordinateur auquel se connecter. 2.L’ordinateur annonce qu’il est arrivé sur le réseau. 3.L’ordinateur 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. A.Thaveau & M-A Bourgeot

  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. A.Thaveau & M-A Bourgeot

  15. GNUtella : connexion Une fois une machine trouvée, il faut s’y 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 A.Thaveau & M-A Bourgeot

  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 l’en-tête A.Thaveau & M-A Bourgeot

  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é jusqu’au "pinger". A.Thaveau & M-A Bourgeot

  18. GNUtella : arrivée sur le réseau Ping Pong A.Thaveau & M-A Bourgeot

  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 d’un client qui aurait un fichier correspondant Query : Mots-clés correspondant à la recherche. A.Thaveau & M-A Bourgeot

  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 ) ->File Index : identifiant du fichier. ->File Size : taille du fichier ->File Name : nom du fichier correspondant à l’index. Servent identifier : Chaîne de 16 octets qui identifie le servent répondant à la requête. A.Thaveau & M-A Bourgeot

  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é. A.Thaveau & M-A Bourgeot

  22. GNUtella : le routage des paquets • Technique de "flooding" -> 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. A.Thaveau & M-A Bourgeot

  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: bytes=0-\r\n\r\n Réponse : HTTP 200 OK\r\nServer: Gnucleus 1.4.5.2\r\nContent-type:application/binary\r\nContent-length: 2894894\r\n\r\n A.Thaveau & M-A Bourgeot

  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. A.Thaveau & M-A Bourgeot

  25. GNUtella : nouvelle topologie du réseau • Besoin de changements. • Comment améliorer le réseau? • Utilisation des "ultrapeers". A.Thaveau & M-A Bourgeot

  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". A.Thaveau & M-A Bourgeot

  27. GNUtella : les ultrapeers • Envoi périodique d’ "indexing queries" à ses fils. • L’ultrapeer ne fait suivre les "queries" qu’aux clients qui ont une entrée correspondante. • Compatible avec les clients anciens qui sont vus comme des ultrapeers sans fils. A.Thaveau & M-A Bourgeot

  28. GNUtella : choix des ultrapeers • L’ordinateur ne doit pas être situé derrière un firewall et doit avoir un système d’exploitation relativement récent. • Doit avoir une bande passante et un processeur de bonne qualité. • Doit être sur le réseau depuis assez longtemps. A.Thaveau & M-A Bourgeot

  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.16:6349 GNUTELLA/0.6 200 OK X-Ultrapeer: True X-Ultrapeer-Needed: false User-Agent: LimeWire 1.9 X-Try-Ultrapeers: 23.35.1.146:6346,18.207.63.25:6347 X-Try: 24.37.144.122:6346,193.205.63.22:6346 X-My-Address: 10.254.0.16:6346 X-Query-Routing: 0.1 -> GNUTELLA/0.6 200 OK A.Thaveau & M-A Bourgeot

  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.14:6346, 18.1.17.2:6346 [terminates connection] A.Thaveau & M-A Bourgeot

  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 A.Thaveau & M-A Bourgeot

  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 A.Thaveau & M-A Bourgeot

  33. Problèmes • Répartition des fichiers inégales. • Beaucoup de «pillards». • Perte d’intérêt de l’architecture. A.Thaveau & M-A Bourgeot

  34. Réplication des données Différentes réplications connues : • Réplication après téléchargement. • Réplication " sur le chemin ". A.Thaveau & M-A Bourgeot

  35. Réplication des données • Réplication au hasard. • Evite une concentration des fichiers. • Difficile à mettre en place. A.Thaveau & M-A Bourgeot

  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 l’instant. A.Thaveau & M-A Bourgeot

  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. A.Thaveau & M-A Bourgeot

  38. Quelques clients GNUtella • LimeWire • Shareazaa • BearShare • Gnucleus • Morpheus • Ares A.Thaveau & M-A Bourgeot

  39. JuXTApose Le projet JXTA A.Thaveau & M-A Bourgeot

  40. Sommaire • Présentation • Les objectifs de JXTA • Le réseau virtuel de JXTA • JXTA « Work and Play » • L’architecture JXTA • Les concepts du JXTA Core • Les protocoles du JXTA Core • Les protocoles standards de JXTA • Les services JXTA • Le Shell JXTA • JXTA Search A.Thaveau & M-A Bourgeot

  41. Présentation • Projet de recherche de Sun Microsystems, Inc. • The O’Reilly P2P conference • Ensemble de protocoles peer-to-peer libres et généraux • www.jxta.org A.Thaveau & M-A Bourgeot

  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 d’exploitation (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, …) A.Thaveau & M-A Bourgeot

  43. Réseau virtuel de JXTA A.Thaveau & M-A Bourgeot

  44. JXTA « Work and Play » • Industries : • Télécommunications • Gouvernement • Divertissements • Finances (enchères) • Applications : • communication et collaboration : instant messaging, partage de fichiers, partage d’environnement et de ressources (CPU, disques, bande passante, …) • Architectures distribuées • Intra entreprise : diffusion d’information, formation • Nouvelle génération de jeux en réseaux A.Thaveau & M-A Bourgeot

  45. L’architecture de JXTA A.Thaveau & M-A Bourgeot

  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) A.Thaveau & M-A Bourgeot

  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 (1~1) et propagate pipe (1~n) • Messages XML • Peer Monitoring, Peer Metering • Capacité d’obtenir un ensemble d’information sur un Peer A.Thaveau & M-A Bourgeot

  48. Les Peer Pipes A.Thaveau & M-A Bourgeot

  49. Les protocoles du JXTA Core • Peer Resolver Protocol (PRP) • Interrogation d’un 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 n’est pas accessible (routage non déterministe) • Peer Routers • Route Query Message, Route Response Message • Marquage des messages A.Thaveau & M-A Bourgeot

  50. Resolver Query Schema <xs:element name="ResolverQuery" type="jxta:ResolverQuery"/> <xs:complexType name="ResolverQuery"> <xs:all> <xs:element ref="jxta:Cred" minOccurs="0"/> <xs:element name="SrcPeerID" type="jxta:JXTAID"/> <xs:element name="HandlerName" type="xs:string"/> <xs:element name="QueryID" type="xs:string"/> <xs:element name="Query" type="xs:anyType"/> </xs:all> </xs:complexType> A.Thaveau & M-A Bourgeot

More Related