Protocoles de Peer to Peer Etudes dapprofondissement A
- Slides: 58
Protocoles de Peer to Peer Etudes d’approfondissement A. Thaveau & M-A Bourgeot 1
Sommaire 1. Présentation du sujet 2. Le protocole GNUtella 3. La plate-forme de développement JXTA A. Thaveau & M-A Bourgeot 2
Historique et définition Concept ancien : existant depuis l’informatique distribuée (~=30 ans). Il a vraiment été popularisé par Napster. n Un système d'échange direct de ressources entre machines connectées. n Au départ, Internet était vu comme un système Peer-to-Peer. n A. Thaveau & M-A Bourgeot 3
Définition et avantages Littéralement " égal à égal " : les ordinateurs sont à la fois clients et serveurs. n Possibilités de plus en plus accrues avec l'évolution des ordinateurs. n Permet la décentralisation des contenus ainsi qu’une meilleure répartition des taches. n A. Thaveau & M-A Bourgeot 4
Applications typiques n n n Calcul distribué : projet SETI. Echange de fichiers : Napster, Gnutella … Stockage distribué : Chord, CFS (MIT). n Plate-forme de développement et groupe de collaboration : JXTA (Sun). A. Thaveau & M-A Bourgeot 5
Les deux types d’architecture. n n 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 6
Les deux types d’architecture. n n n Architecture purement décentralisée. Utilisé par Gnutella, Fast. Tracks. Plus difficile à réaliser mais plus intéressant car plus robuste et plus distribué. A. Thaveau & M-A Bourgeot 7
Une architecture changeante Au départ Internet était conçu pour des ordinateurs disposant d’une adresse IP fixe. n Allocation dynamiques des adresses IP, NAT et firewalls en compliquent le fonctionnement. n Les développeurs et les opérateurs doivent s’adapter. n A. Thaveau & M-A Bourgeot 8
Le protocole GNUtella 1. 2. 3. Histoire et concept. Fonctionnement Evolutions A. Thaveau & M-A Bourgeot 9
GNUtella Développé par Null. Soft (J. Frankel & T. Pepper) qui fut ensuite racheté par AOLTime-Warner. n Diffusé peu de temps sur le Web, il put être implémenté par de multiples programmeurs sur différents OS. n C’est un protocole et non un programme. n A. Thaveau & M-A Bourgeot 10
GNUtella : le concept Le programme exécutant est un " servant " : à la fois client et serveur. n Il permet de faire des demandes d’informations ainsi que des réponses à celles-ci. n Il permet de faire des téléchargements ainsi que des envois. n A. Thaveau & M-A Bourgeot 11
GNUtella : concept technique Le protocole est utilisé par des nœuds connectés avec TCP/IP. n Des milliers de connections à travers des milliers de nœuds créent une " web " d’ordinateurs : le réseau GNUtella. n Les téléchargements se font directement via HTTP. n A. Thaveau & M-A Bourgeot 12
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 13
GNUtella : Connexion Pour trouver une machine déjà connectée, il faut se connecter à un hostcache. n Le hostcache garde les adresses de certaines machines connectées. n Le client à généralement une liste de hostcache. n A. Thaveau & M-A Bourgeot 14
GNUtella : connexion Une fois une machine trouvée, il faut s’y connecter : Demande : GNUTELLA CONNECT/0. 4rn User-Agent: Gnucleus 1. 4. 5. 0rn Si l’ôte accepte la connexion, il envoie : GNUTELLA/0. 4 200 OKrn User-Agent: Gnucleus 1. 4. 5. 2rn Après cela, les échanges peuvent commencer : GNUTELLA/0. 4 200 OKrn A. Thaveau & M-A Bourgeot 15
GNUtella : arrivée sur le réseau Utilisation du paquet ping : il sert à decouvrir les autres nœuds sur le réseau. n Sert à donner une mesure de la taille de l' "horizon". n 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 16
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 17
GNUtella : arrivée sur le réseau Ping Pong A. Thaveau & M-A Bourgeot 18
GNUtella : les requêtes n 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 19
GNUtella : les requêtes n Si un ordinateur possède un fichier correspondant à une requête, il envoie un paquet de type Query. Hit : 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 20
GNUtella : le paquet push n n 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 21
GNUtella : le routage des paquets Technique de "flooding" -> inondation. n Les pings sont envoyés à tous les voisins sauf à l'émetteur. n Les pongs empruntent le même chemin que les pings. n Le routage des paquets Query. Hits fonctionne comme celui des pongs. n A. Thaveau & M-A Bourgeot 22
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. 0rn User-Agent: Lime. Wire 1. 8rn Range: bytes=0 -rn Réponse : HTTP 200 OKrn Server: Gnucleus 1. 4. 5. 2rn Content-type: application/binaryrn Content-length: 2894894rn A. Thaveau & M-A Bourgeot 23
GNUtella : première topologie du réseau n n n 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 24
GNUtella : nouvelle topologie du réseau Besoin de changements. n Comment améliorer le réseau? n Utilisation des "ultrapeers". n A. Thaveau & M-A Bourgeot 25
GNUtella : les ultrapeers Fin 2001 : Lime. Wire relance le concept et l'implemente dans son client. n Une hierarchie de nœuds est créée : n ¨ Ultrapeers : Bonne capacité de calcul et de transfert. ¨ "Nœuds Feuilles" : Ordinateurs "normaux". A. Thaveau & M-A Bourgeot 26
GNUtella : les ultrapeers Envoi périodique d’ "indexing queries" à ses fils. n L’ultrapeer ne fait suivre les "queries" qu’aux clients qui ont une entrée correspondante. n Compatible avec les clients anciens qui sont vus comme des ultrapeers sans fils. n A. Thaveau & M-A Bourgeot 27
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. n Doit avoir une bande passante et un processeur de bonne qualité. n Doit être sur le réseau depuis assez longtemps. n A. Thaveau & M-A Bourgeot 28
Etablissement des connexions : feuille sur ultrapeer GNUTELLA CONNECT/0. 6 X-Ultrapeer: False User-Agent: Lime. Wire 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: Lime. Wire 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 29
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 30
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 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: false GNUTELLA/0. 6 200 OK X-Ultrapeer: False A. Thaveau & M-A Bourgeot 32
Problèmes n n n Répartition des fichiers inégales. Beaucoup de «pillards» . Perte d’intérêt de l’architecture. A. Thaveau & M-A Bourgeot 33
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 34
Réplication des données n Réplication au hasard. n Evite une concentration des fichiers. n Difficile à mettre en place. A. Thaveau & M-A Bourgeot 35
Problèmes Tensions entre les développeurs utilisant GNUtella. n Logiciels commerciaux et communautaires sur le même réseau, problèmes de compatibilité entre les clients. n Logiciel qui a toujours été développé dans un esprit libre, pas de chef de file pour l’instant. n A. Thaveau & M-A Bourgeot 36
Evolution Dynamisme et multiplicité des développeurs. n De nombreuses idées prometteuses mais pas encore mis en place. n Besoin d'une harmonisation des clients. n A. Thaveau & M-A Bourgeot 37
Quelques clients GNUtella Lime. Wire n Shareazaa n Bear. Share n Gnucleus n Morpheus n Ares n A. Thaveau & M-A Bourgeot 38
Ju. XTApose Le projet JXTA A. Thaveau & M-A Bourgeot 39
Sommaire n n n Présentation Les objectifs de JXTA Le réseau virtuel de JXTA « Work and Play » L’architecture JXTA Les concepts du JXTA Core Les protocoles standards de JXTA Les services JXTA Le Shell JXTA Search A. Thaveau & M-A Bourgeot 40
Présentation Projet de recherche de Sun Microsystems, Inc. n The O’Reilly P 2 P conference n Ensemble de protocoles peer-to-peer libres et généraux n www. jxta. org n A. Thaveau & M-A Bourgeot 41
Les objectifs de JXTA n Interopérabilité n n Multi plate forme n n Permettre à tous les Peers de toutes les communautés de communiquer entre eux grâce à une même plate forme P 2 P Langage de programmation (C, Java, Perl, Python, Ruby) Système d’exploitation (Solaris, Linux, Windows, Mac. OS, …) Réseaux (TCP/IP, Bluetooth, …) Ubiquité n Implémentation possible sur tout type de machine (PDA, routeur, PC, serveur, téléphones mobiles, …) A. Thaveau & M-A Bourgeot 42
Réseau virtuel de JXTA A. Thaveau & M-A Bourgeot 43
JXTA « Work and Play » n Industries : n n n Applications : n n Télécommunications Gouvernement Divertissements Finances (enchères) 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 44
L’architecture de JXTA A. Thaveau & M-A Bourgeot 45
Les concepts du JXTA Core (1) n Peer n n n 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 n n Ensemble de Peers en relation (sécurité, intérêts communs, surveillance) Unique (Peer Group Id) World Peer Group Services (Discovery, Membership, Access, Pipe, Resolver, Monitoring) A. Thaveau & M-A Bourgeot 46
Les concepts du JXTA Core (2) n Peer Pipe n n Canal virtuel de communication entre Peer Endpoints Différentes qualités de services § § n n n Unidirectionnel et asynchrone Synchronisé Streaming Sécurisé Point-to-point pipe (1~1) et propagate pipe (1~n) Messages XML Peer Monitoring, Peer Metering n Capacité d’obtenir un ensemble d’information sur un Peer A. Thaveau & M-A Bourgeot 47
Les Peer Pipes A. Thaveau & M-A Bourgeot 48
Les protocoles du JXTA Core n Peer Resolver Protocol (PRP) n n n Interrogation d’un service dans un Peer Group Utilise le Rendezvous Protocol Handler Name Resolver Query Message, Resolver Response Message Endpoint Routing Protocol (ERP) n n 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 49
Resolver Query Schema <xs: element name="Resolver. Query" type="jxta: Resolver. Query"/> <xs: complex. Type name="Resolver. Query"> <xs: all> <xs: element ref="jxta: Cred" min. Occurs="0"/> <xs: element name="Src. Peer. ID" type="jxta: JXTAID"/> <xs: element name="Handler. Name" type="xs: string"/> <xs: element name="Query. ID" type="xs: string"/> <xs: element name="Query" type="xs: any. Type"/> </xs: all> </xs: complex. Type> A. Thaveau & M-A Bourgeot 50
Les protocoles standard de JXTA n Peer Discovery Protocol (PDP) n n Rendezvous Protocol (RVP) n n n Propage les messages dans un Peer Group Contrôle de la propagation (TTL, loopback detection, …) Peer Information Protocol (PIP) n n Recherche de ressources (Peers, Peers group, pipe, services) Utilise les services pour valoriser son cache Discovery Query Message, Discovery Response Message Obtenir des informations sur d’autres Peers (capacités, état, …) Pipe Binding Protocol (PBP) n n Etablir un Pipe entre 2 ou plusieurs Peers Pipe Resolver Message A. Thaveau & M-A Bourgeot 51
Discovery Query Schema <xs: element name="Discovery. Query" type="jxta: Discovery. Query"/> <xsd: simple. Type name="Discovery. Query. Type"> <xsd: restriction base="xsd: string"> <!-- peer --> <xsd: enumeration value="0"/> </xsd: restriction> </xsd: simple. Type> <xs: complex. Type name="Discovery. Query"> <xs: sequence> <xs: element name="Type" type="jxta: Discovery. Query. Type"/> <xs: element name="Threshold" type="xs: unsigned. Int" min. Occurs="0"/> <xs: element name="Attr" type="xs: string" min. Occurs="0"/> <xs: element name="Value" type="xs: string" min. Occurs="0"/> <!-- The following should refer to a peer adv, but is instead a whole doc for historical reasons --> <xs: element name="Peer. Adv" type="xs: string" min. Occurs="0"/> </xs: sequence> </xs: complex. Type> A. Thaveau & M-A Bourgeot 52
Les services JXTA n Equivalents aux librairies UNIX n n n Proposent différents mécanismes n n n Recherche, indexation Partage de ressources Cache Transport via TCP/IP, HTTP, TLS Traitements distribués et parallèles n n n Fonctions au-dessus du JXTA Core Facilite le développement d’application Envoi de requêtes à l’ensemble d’un Peer Group Structure de données (XML) Communications sécurisées n Usage professionnel (Intranet et Extranet) A. Thaveau & M-A Bourgeot 53
Le Shell JXTA (1) n Accès interactif au JXTA Core n n Publier, recher et exécuter des ressources Découvrir de nouveaux Peers ou Peer Groups Envoyer et recevoir des messages Propriétés des commandes n n n Chargées dynamiquement lors de l’appel Création de nouvelles commandes Appel : JXTA> Nom. Commande [-options] [arguments] Redirection des E/S (dynamique, crossing pipe) Importation/Exportation de données (share/unshare) Batch files A. Thaveau & M-A Bourgeot 54
Le Shell JXTA (2) n Commandes de base n n n n 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 : recher un codat mkpipe : création d’un pipe get/put : lecture/écrire dans un message send/recv : envoyer/recevoir un message importfile/exportfile A. Thaveau & M-A Bourgeot 55
JXTA Search (1) n Motivations n n Avantages de JXTA n n n Augmentation perpétuelle de la quantité d’informations accessibles par Internet Moteurs de recherche dépassés « Hidden Web » = 400 fois plus d’informations Protocoles en XML = Multi plate forme Requêtes distribuées (architecture décentralisée) Les acteurs n n n Fournisseurs Consommateurs Peer Hub spécialisés (géographie, contenu, application) A. Thaveau & M-A Bourgeot 56
JXTA Search Network A. Thaveau & M-A Bourgeot 57
JXTA Search (2) n Recherche profonde (Deep Search) n n Query Routing Protocol (QRP) n n Pertinence Accessibilité Efficacité 3 composants : registers, queries, responses Query Spaces, Query Predicates Query Resolution and Routing Utilisations n n Recherche Internet (Google) Échanges commerciaux (Communication et synchronisation) A. Thaveau & M-A Bourgeot 58
- Rappel des protocoles
- Exemple de protocole de soins infirmiers
- "études retard"
- Rge etudes
- Schema etude avocat
- étude réflexive sur la digitalisation
- Tim beamer
- Jaringan peer to peer diistilahkan dengan
- Peer to peer network hardware
- Peer to peer vorteile nachteile
- Esempi di peer to peer compilati scuola primaria
- Peer to peer intervention
- Features of peer to peer network and client server network
- Peer to peer chat application in java
- Peer to peer transactional replication
- Addresss look up
- Registro peer to peer compilato
- Peer-to-peer o que é
- Annotazioni sulla verifica effettuata peer to peer
- Ambiti operativi da supportare
- Skype cons
- Gambar topologi peer to peer
- Peer-to-peer o que é
- Peer to peer merupakan jenis jaringan… *
- Peer to peer l
- Peer-to-peer
- Peer-to-peer o que é
- Peer-to-peer communication in osi model
- Esempio registro peer to peer compilato
- Peer to peer computing environment
- Bitcoin: a peer-to-peer electronic cash system
- Dare peer pressure
- Brainpop peer pressure
- Peer-editing
- Positive peer reporting
- Peer facilitator quotes
- Peer navigator training
- Refusal skills steps
- Definition of proofreading
- New york peer specialist certification board
- Peer pressure examples
- Titles for characters
- Um peer review
- Peer-finder
- Neutral peer pressure
- Gartner cio agenda 2018
- Student peer evaluation examples
- Public relations swot analysis
- A link between relationships chapter 14
- An assertive response to peer pressure is
- Peer review voorbeeld
- Peer entities
- Mentoring peer observation
- Peer assessment
- Peer ground motion database
- Example of negative peer pressure
- Fye peer helpers link
- Peer pressure
- Peer reflexive candidate