La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

A.Thaveau & M-A Bourgeot 1 Protocoles de Peer to Peer Etudes dapprofondissement.

Présentations similaires


Présentation au sujet: "A.Thaveau & M-A Bourgeot 1 Protocoles de Peer to Peer Etudes dapprofondissement."— Transcription de la présentation:

1 A.Thaveau & M-A Bourgeot 1 Protocoles de Peer to Peer Etudes dapprofondissement

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

3 A.Thaveau & M-A Bourgeot3 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 A.Thaveau & M-A Bourgeot4 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 A.Thaveau & M-A Bourgeot5 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 A.Thaveau & M-A Bourgeot6 Les deux types darchitecture. Architecture répartie assistée par un serveur central permettant dindexer les ressources. Typiquement larchitecture du système Napster.

7 A.Thaveau & M-A Bourgeot7 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 A.Thaveau & M-A Bourgeot8 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 A.Thaveau & M-A Bourgeot9 Le protocole GNUtella 1. Histoire et concept. 2. Fonctionnement 3. Evolutions

10 A.Thaveau & M-A Bourgeot10 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 A.Thaveau & M-A Bourgeot11 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 A.Thaveau & M-A Bourgeot12 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 A.Thaveau & M-A Bourgeot13 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 A.Thaveau & M-A Bourgeot14 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 A.Thaveau & M-A Bourgeot15 GNUtella : connexion Une fois une machine trouvée, il faut sy connecter : Demande : GNUTELLA CONNECT/0.4\r\n User-Agent: Gnucleus \r\n \r\n Si lôte accepte la connexion, il envoie : GNUTELLA/ OK\r\n User-Agent: Gnucleus \r\n \r\n Après cela, les échanges peuvent commencer : GNUTELLA/ OK\r\n \r\n

16 A.Thaveau & M-A Bourgeot16 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 A.Thaveau & M-A Bourgeot17 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 A.Thaveau & M-A Bourgeot18 GNUtella : arrivée sur le réseau Ping Pong

19 A.Thaveau & M-A Bourgeot19 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 A.Thaveau & M-A Bourgeot20 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 à lindex. Servent identifier : Chaîne de 16 octets qui identifie le servent répondant à la requête.

21 A.Thaveau & M-A Bourgeot21 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 A.Thaveau & M-A Bourgeot22 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.

23 A.Thaveau & M-A Bourgeot23 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\n User-Agent: LimeWire 1.8\r\n Range: bytes=0-\r\n \r\n Réponse : HTTP 200 OK\r\n Server: Gnucleus \r\n Content-type:application/binary\r\n Content-length: \r\n \r\n

24 A.Thaveau & M-A Bourgeot24 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 A.Thaveau & M-A Bourgeot25 GNUtella : nouvelle topologie du réseau Besoin de changements. Comment améliorer le réseau ? Utilisation des "ultrapeers".

26 A.Thaveau & M-A Bourgeot26 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 A.Thaveau & M-A Bourgeot27 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 A.Thaveau & M-A Bourgeot28 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 A.Thaveau & M-A Bourgeot29 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: :6349 GNUTELLA/ OK X-Ultrapeer: True X-Ultrapeer-Needed: false User-Agent: LimeWire 1.9 X-Try-Ultrapeers: :6346, :6347 X-Try: :6346, :6346 X-My-Address: :6346 X-Query-Routing: 0.1 -> GNUTELLA/ OK

30 A.Thaveau & M-A Bourgeot30 Etablissement des connexions : feuille sur feuille protégée GNUTELLA CONNECT/0.6 X-Ultrapeer: False GNUTELLA/ I am a shielded leaf node X-Ultrapeer: False X-Try-Ultrapeers: :6346, :6346 [terminates connection]

31 A.Thaveau & M-A Bourgeot31 Etablissement des connexions : ultrapeer vers ultrapeer GNUTELLA CONNECT/0.6 X-Ultrapeer: True GNUTELLA/ OK X-Ultrapeer: True X-Ultrapeer-Needed: True GNUTELLA/ OK

32 A.Thaveau & M-A Bourgeot32 Etablissement des connexions : ultrapeer vers ultrapeer GNUTELLA CONNECT/0.6 X-Ultrapeer: True GNUTELLA/ OK X-Ultrapeer: True X-Ultrapeer-Needed: false GNUTELLA/ OK X-Ultrapeer: False

33 A.Thaveau & M-A Bourgeot33 Problèmes Répartition des fichiers inégales. Beaucoup de «pillards». Perte dintérêt de larchitecture.

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

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

36 A.Thaveau & M-A Bourgeot36 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 A.Thaveau & M-A Bourgeot37 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 A.Thaveau & M-A Bourgeot38 Quelques clients GNUtella LimeWire Shareazaa BearShare Gnucleus Morpheus Ares

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

40 A.Thaveau & M-A Bourgeot40 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 A.Thaveau & M-A Bourgeot41 Présentation Projet de recherche de Sun Microsystems, Inc. The OReilly P2P conference Ensemble de protocoles peer-to-peer libres et généraux

42 A.Thaveau & M-A Bourgeot42 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 A.Thaveau & M-A Bourgeot43 Réseau virtuel de JXTA

44 A.Thaveau & M-A Bourgeot44 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 A.Thaveau & M-A Bourgeot45 Larchitecture de JXTA

46 A.Thaveau & M-A Bourgeot46 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 A.Thaveau & M-A Bourgeot47 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é dobtenir un ensemble dinformation sur un Peer

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

49 A.Thaveau & M-A Bourgeot49 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 A.Thaveau & M-A Bourgeot50 Resolver Query Schema

51 A.Thaveau & M-A Bourgeot51 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 A.Thaveau & M-A Bourgeot52 Discovery Query Schema

53 A.Thaveau & M-A Bourgeot53 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 A.Thaveau & M-A Bourgeot54 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 : JXTA> NomCommande [-options] [arguments] Redirection des E/S (dynamique, crossing pipe) Importation/Exportation de données (share/unshare) Batch files

55 A.Thaveau & M-A Bourgeot55 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 A.Thaveau & M-A Bourgeot56 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 A.Thaveau & M-A Bourgeot57 JXTA Search Network

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


Télécharger ppt "A.Thaveau & M-A Bourgeot 1 Protocoles de Peer to Peer Etudes dapprofondissement."

Présentations similaires


Annonces Google