Vous êtes sur la page 1sur 21

Notes de cours (ENS Lyon, M1) Chapitre 2 : Rseaux Pair ` Pair e a

Table des mati`res e


2 Rseaux pair ` pair e a 2.1 Introduction et dnitions . . . . . . . . . . . . . . . . . . e 2.1.1 Dnition . . . . . . . . . . . . . . . . . . . . . . . e 2.1.2 Historique . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Problmatique et objectifs . . . . . . . . . . . . . . e 2.1.4 Classication . . . . . . . . . . . . . . . . . . . . . 2.2 Syst`me partiellement dcentralis : mod`le hybride . . . e e e e 2.2.1 Napster . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Kazaa . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Bilan : avantages et limites . . . . . . . . . . . . . 2.3 Totalement dcentralis : mod`le pur . . . . . . . . . . . . e e e 2.3.1 Connexion au rseau . . . . . . . . . . . . . . . . . e 2.3.2 Recherche de ressource . . . . . . . . . . . . . . . . 2.3.3 Avantages et limites . . . . . . . . . . . . . . . . . 2.4 Syst`mes structurs . . . . . . . . . . . . . . . . . . . . . e e 2.4.1 Le principe . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Recherche dune ressource dans Chord . . . . . . . 2.4.3 Rpartition des cls : notion de hachage consistant e e 2.4.4 Ajout de noeuds et stabilisation . . . . . . . . . . . 2.4.5 Dpart de noeuds et tolrance aux pannes . . . . . e e 2.4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . 2.5 Vers un partage quitable . . . . . . . . . . . . . . . . . . e 2.5.1 Tlchargement multiple . . . . . . . . . . . . . . . ee 2.5.2 BitTorrent et le partage quitable . . . . . . . . . e 2.6 Mcanisme de recherche persistante . . . . . . . . . . . . . e 2.6.1 Publication/abonnement . . . . . . . . . . . . . . . 2.6.2 Meghdoot . . . . . . . . . . . . . . . . . . . . . . . 2.6.3 Sub-2-Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 25 25 26 26 28 28 29 29 30 30 30 31 32 32 33 35 35 36 37 38 38 38 40 40 41 43

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2
2.1
2.1.1

Rseaux pair ` pair e a


Introduction et dnitions e
Dnition e

Les syst`mes pair ` pair (P2P, de langlais peer-to-peer) sont composs e a e dun ensemble dentits partageant un ensemble de ressources, et jouant ` la e a fois le rle de serveur et de client. Chaque noeud peut ainsi tlcharger des o ee ressources ` partir dun autre noeud, tout en fournissant des ressources ` un a a troisi`me noeud. e Immense essor de tels syst`mes, phnom`ne de socit avec dimportants e e e ee impacts en termes commerciaux (droits, taxes) et moraux (contenu des donnes e changes). e e Permet une utilisation maximale de la puissance du rseau, une limination e e des cots dinfrastructure, et une exploitation du fort potentiel inactif en boru dure de lInternet. Retient lattention de la recherche, des dveloppeurs et des e investisseurs. Les pairs du rseau peuvent tre de nature htrog`ne : PC, PDA, Tlphone e e ee e ee portable... Nature dynamique : les pairs peuvent aller et venir. 2.1.2 Historique

Internet = P2P : libre change des donnes. Emergence du P2P = renaissance e e du mod`le originel dInternet, au niveau applicatif. e Le P2P est devenu tr`s populaire avec Napster, en 1999. Logiciel pour le e partage de musique en ligne. Logiciel avec le plus grand taux de croissance de tous temps. Acc`s internet pour les amricains : tlchargement de musique e e ee 24h/24 7j/7. Probl`me de copyright pour les compagnies de disque : poursuite e judiciaire en 2000. Accord en 2001 : Napster devait payer 26 millions de dollars aux compositeurs et diteurs, ainsi quun pourcentage de largent obtenu par e un service payant (depuis 2003). Apr`s les probl`mes rencontrs par Napster, mergence de nombreux autres e e e e programmes P2P, parmi lesquels Gnutella et Kazaa. Meilleure comprhension des technologies P2P, et applications utilisant une e approche plus dcentralise, pour rendre un contrle de police plus dicile. e e o Dicult dlaborer des protocoles ecaces du fait du manque dlment central. e e ee Probl`mes de copyright : pas de moyen de contrle, mais les nouvelles ape o plications P2P ont retenu la leon Napster et argumentent quils ne sont pas c responsables des activits illgales utilisant leur logiciel. Il y a de nombreuses utie e lisations lgales qui assurent le futur du P2P, mais il est dur dinterdire lchange e e de chiers illgaux (musique, lms...). e Moyens dattaque : pairs des compagnies de disque qui attaquent le rseau e en crant des donnes bidon, ou en surchargeant le rseau. Autre technique : e e e reprage des gros utilisateurs. e

25

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Le P2P est devenu un peu plus que du partage de chiers, avec galement des e projets pour utiliser la puissance de calcul des pairs plutt que leur collection de o MP3 (SETI@home Search for Extra-Terrestrial Intelligence, Groove). Mani`re e forte et quitable de collaborer en vue daccro le potentiel du rseau. e tre e 2.1.3 Problmatique et objectifs e

Problmatique du P2P : bien dnir la relation entre un ventuel rseau e e e e virtuel overlay network qui connecte les membres prsents dans le syst`me et e e les mcanismes de routage, an dassurer certaines proprits : e ee Recherche rapide dune donne e Mise ` jour rapide du rseau lors du dpart et de larrive dun membre a e e e dans le rseau e Publication rapide dune donne e Scurit et anonymat des transactions, pour empcher le pistage dune e e e requte e Les applications sont de nature dirente, et donc les objectifs varis : e e Partage et rduction des cots entre les dirents pairs e u e Fiabilit (pas dlment centralis) e ee e Passage ` lchelle (viter les goulots dtranglement) a e e e Agrgation des ressources (puissance de calcul, espace de stockage) e Accroissement de lautonomie du syst`me, chacun a la responsabilit de e e partager ses ressources Anonymat 2.1.4 Classication

P2P : branche des syst`mes distribus dans la classication des syst`mes e e e informatiques :
Systmes informatiques Systmes centraliss Systmes distribus P2P Pures Hybrides

Client-Serveur Plats Hirarchiques

Trois distinctions dans les rseaux pair ` pair, suivant les choix de concepe a tion : prsence ou non dune connexion virtuelle entre les membres prsents dans e e le syst`me (rseau virtuel overlay network), et mcanisme de recherche au sein e e e de ce rseau. e 1. Mod`le hybride : Syst`mes partiellement dcentraliss (Napster et Kae e e e zaa) : pas de rseau virtuel mais utilisation dindex plus ou moins rpartis e e pour fournir directement ladresse IP dun membre disposant de la donne e recherche. e 26

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2. Mod`le pur : Syst`mes totalement dcentraliss (Gnutella) : rseau virtuel e e e e e non structur, sur lequel la recherche seectue par inondation. e 3. Syst`mes reposant sur un rseau virtuel structur correspondant ` une e e e a table de hachage distribue (DHT pour distributed hash table), sur lee quel une stratgie de routage spcique ` la topologie DHT est applique e e a e (Chord, Pastry). Algorithmes intressants assurant une complexit logae e rithmique en fonction du nombre de pairs prsents dans le rseau. e e Caractristiques des rseaux P2P : e e Localisation des chiers dans un environnement distribu e Mta-donnes ou index du rseau P2P e e e Libre circulation des chiers entre les pairs Capacit de connexion variable suivant les pairs e Htrognit du rseau suivant les pairs ee e e e e Echanges dinformation non scuriss e e Certains pairs peuvent tre non ables e Aucune vue globale du syst`me e Traditionnellement, change de ressources et de services entre ordinateurs : e techniques client/serveur. Un ordinateur dominant, le serveur, connect ` plusea ieurs clients qui ont moins de contrle. Les clients peuvent communiquer entre o eux uniquement ` travers le serveur. a P2P : chaque pair peut se comporter ` la fois comme client et comme serveur : a contrle dcentralis. o e e Comparaison avec le mod`le client/serveur : e P2P Client/Serveur Auto-organis Management centralis e e Evolution dynamique Conguration statique Dcouverte des pairs Consultation de tables e Flux distribu Flux centralis e e Symtrie du rseau Asymtrie du rseau e e e e Adressage dynamique (appli.) Adressage statique (IP) Noeuds autonomes Noeuds dpendants e Attaques diciles Attaques plus simples Nous abordons dans ce chapitre les dirents types de rseaux P2P et les e e algorithmes mis en oeuvre dans chaque cas.

27

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.2

Syst`me partiellement dcentralis : mod`le hybride e e e e

Certains serveurs sont contacts pour obtenir des mta-informations (idene e tit du pair sur lequel sont stocks les informations), mais les donnes restent e e e distribues sur les pairs et les changes de donnes se font directement dun pair e e e a ` un autre. 2.2.1 Napster

Fond en 1999 par Shawn Fanning et Sean Parker. e P2P hybride : serveur central qui conserve linformation sur les pairs et rpond aux e requtes pour cette information. e pairs responsables pour hberger linformation car le serveur central ne e stocke pas de chiers les pairs doivent dire au serveur quels chiers ils veulent partager et quels chiers ils demandent. les adresses IP des autres pairs sont obtenues Plusieurs rpertoires centraliss dcrivant les chiers prsents dans Napse e e e ter, et chaque pair senregistre sur ce rpertoire lorsquil rejoint le rseau. Les e e rpertoires connaissent les adresses IP, et le nom des chiers quun pair veut e partager.
Serveur Rpertoire Client A 1 2 Client E 2 Liste de clients avec priorit possdant la dernire version 1 Requte

Client B

3 Client C

3 Recopie de chier Client D

Principe : 1. Chaque utilisateur dispose du logiciel Napster. A lexcution du logiciel, e Napster recherche une connexion internet. 2. Si une connexion est dtecte, une connexion entre lutilisateur et un des e e serveurs centraux de Napster est tablie. e 3. Le serveur central maintient un rpertoire des ordinateurs clients connects e e et stocke les informations sur ces utilisateurs (notamment les chiers en partage). 4. Si un client dsire un chier, il passe une requte au serveur centralis e e e auquel il est connect. e 5. Le serveur regarde sil peut rpondre ` la requte. e a e 6. Le serveur renvoie ` lutilisateur une liste des rponses ventuelles : adresse a e e IP, nom dutilisateur, taille du chier, ... 28

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

7. Lutilisateur choisit le chier quil veut et tablit une connexion directe e avec lhte du chier, en lui envoyant sa propre adresse IP et le nom du o chier demand. e 8. Transfert du chier entre les deux ordinateurs, puis connexion interrompue a ` la n du transfert. 2.2.2 Kazaa

Mme principe, mais absence de serveurs xes. Utilisation des pairs avec e une connexion Internet rapide et processeur puissant : SuperPairs. Ces noeuds particuliers du rseau se comportent comme les serveurs Napster : connaissance e des chiers prsents chez les autres utilisateurs, et adresse de ces chiers. Chaque e SuperPair rf`re une recherche aux autres SuperPairs. ee La recherche est donc plus rapide, on ne cherche que dans les chiers indexs e par le SuperPair auquel on est connect. e Ce mod`le SuperPair est une variante du mod`le hybride. e e 2.2.3 Bilan : avantages et limites

Avantages dun syst`me hybride : e Prsence dun serveur central : facile ` administrer, et donc facile ` contre a a o ler Evite les recherches coteuses sur le rseau : pas de routage et planication u e de la gestion des utilisateurs Tolrance aux fautes en sondant rguli`rement les pairs connects et en e e e e maintenant un tat cohrent e e Service novateur qui gnralise le P2P e e Les limites : Pas danonymat partout car chaque pair est connu du serveur et des pairs sur lesquels il tlcharge. ee Limites habituelles dun serveur central : probl`me de disponibilit, de e e passage ` lchelle (saturation de la bande passante et du nombre de proa e cessus). Cas de Napster : facile ` fermer. a Certains pairs peuvent mentir sur leur dbit pour ne pas tre sollicits. e e e

29

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.3

Totalement dcentralis : mod`le pur e e e

Gnutella : protocole de chiers partags, dvelopp en mars 2000 par Justin e e e Frankel et Tom Pepper. Gnutella is a decentralized system. Theres no single server that tells you all the information of whos got what. So theres no single point in the continuum that you can force to shut down, if you take half of the computers that use Gnutella o the system, the other half will still work just ne. [source http ://www.cnn.com] Rseau compl`tement dcentralis, mod`le pur de P2P. Chaque lment joue e e e e e ee a ` la fois le rle de client et de serveur : Servent = Serveur + Client. Les messages o sont des informations mises par les servents ` travers le rseau Gnutella. e a e Utilisation dun rseau virtuel non structur, et recherche par inondation sur e e ce rseau. e 2.3.1 Connexion au rseau e

Pour rejoindre le rseau, un client doit conna e tre au moins un noeud dj` ea prsent sur le rseau (un servent), et ` partir de cette connexion, il peut, par le e e a moyen de ping, trouver les adresses dautres servents. Pour trouver le premier servent et pouvoir rejoindre le rseau Gnutella, on e utilise les Gwebcache. Certains servents Gnutella fonctionnent galement comme e des serveurs web. Ils sont ainsi rpertoris par les moteurs de recherche, et on e e peut obtenir une liste de servents connects ` Gnutella. e a Chaque servent maintient une connexion avec un certain nombre dautres servents, normalement environ 5. Un rseau logique se forme donc sur le rseau e e global. Un servent qui reoit un ping doit rpondre avec un (ou plusieurs) pong, c e indiquant son adresse IP et son numro de port, ainsi que le nombre et la e quantit de donnes partages, ce qui permet de crer le rseau logique. e e e e e 2.3.2 Recherche de ressource

Pour chercher une ressource sur le rseau, un servent envoie une requte ` e e a chaque servent auxquels il est connect. Ces derniers retransmettent le message e (inondation). Lorsque la ressource est trouve, son adresse est propage le long e e du chemin inverse. Le nombre de noeuds interrogs est contrl par un compteur e oe TTL (Time To Live), qui indique le nombre de fois que lon peut retransmettre le message. Exemple sur le rseau suivant : e

30

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1 B 2 TTL 3 A C,F 1 G 2 F D C Res F 1 H 1 I J 2 E Res C 1 C

Pour lchange de chiers, le servent qui a mis la requte se connecte die e e rectement au servent qui poss`de la ressource. Utilisation dun message Push e si les donnes sont derri`re un rewall. Avec Gnutella, le tlchargement est e e ee impossible si les deux servents sont derri`re un rewall. e 2.3.3 Avantages et limites

Avantages : Ladministration est simple, car mutualise e La topologie volue au gr des dparts et arrives de servent e e e e Disponibilit du rseau e e Tr`s dur ` attaquer, on ne peut pas larrter e a e Cependant, Le rseau est rapidement inond par des ping-pong, ne passe pas bien ` e e a lchelle e Supporte mal la monte en charge du nombre dutilisateurs e Manque de abilit dans les requtes : avec TTL=7, seulement 25% des e e requtes aboutissent. e Recherche de complexit exponentielle. e Routage par inondation : dnitivement pas une mthode optimale, et e e il na pas fallu longtemps avant que dautres algorithmes plus ecaces mergent. e Pas spcialement danonymat : il est possible de savoir qui poss`de une e e certaine ressource par une simple recherche. Orientation possible vers les superPairs, comme dans une autre version de Gnutella (version 6) et dans Kazaa, ce qui rend le rseau un peu moins robuste e mais amliore les performances. Cest un mlange mod`le pur/ mod`le hybride. e e e e Tables de hachage distribues pour amliorer le routage. e e

31

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.4

Syst`mes structurs e e

Pour rsoudre un peu tous les probl`mes qui se sont poss dans les syst`mes e e e e prsents prcdemment, je prsente maintenant les techniques de syst`mes pair e e e e e e a ` pair bass sur des tables de hachage distribues. e e Lide est de ne pas avoir de contrle central ni de rapport hirarchique, e o e mais de pouvoir rechercher de faon ecace les donnes et dtre rsistant aux c e e e dfaillances et ` la volatilit des pairs. e a e Ces syst`mes fournissent un routage ecace dun point ` un autre du syst`me e a e (pas besoin dinonder le syst`me), et sont bass sur une notion de connaissance e e locale : un noeud na pas de connaissance globale, mais il peut se rapprocher de la donne recherche. e e Nous prsentons le principe gnral, en illustrant les grandes ides sur le e e e e protocole Chord. 2.4.1 Le principe

On utilise une fonction de hachage h, que lon peut appliquer ` la fois aux a adresses IP des pairs et aux cha nes ASCII identiant une ressource disponible sur le rseau. Le rsultat est un nombre alatoire cod sur m bits. m est choisi e e e e susamment grand pour que la probabilit dune collision soit susamment e petite. Typiquement m = 160, et on dispose donc de 2160 identicateurs. La fonction de hachage couramment utilise, et notamment dans Chord : e SHA-1. Fonction utilise en cryptographie. Dtails dans le Tannenbaum. e e Lidentiant dun noeud est obtenu en hachant ladresse IP, et la cl dune e ressource est obtenue en hachant son nom. Le principe consiste ensuite ` stocker, de faon totalement distribue, linfora c e mation (nom, adresseIP ) pour chaque ressource, qui associe au nom dune ressource ladresse IP du pair qui poss`de la ressource. e La plupart des identiants de noeuds ne correspondent pas ` des noeuds a rels. On dnit donc une fonction successeur(k) qui retourne lidentiant du e e premier noeud rel k modulo 2m . e Linformation sur la ressource nom est alors stocke sur le noeud didentiant e successeur(h(nom)). Lindex est ainsi globalement rparti alatoirement sur e e plusieurs noeuds. Dans Chord, la topologie adopte est un anneau, et cela peut changer dun e syst`me pair ` pair ` un autre. Ainsi, par exemple, CAN se base sur un tore e a a a ` d dimensions, et Tapestry a une topologie ddie. Lide de la topologie est e e e davoir un faible degr pour une mise ` jour rapide malgr la volatilit des noeuds e a e e un faible diam`tre pour une recherche performante e Il faut donc trouver un compromis, et Chord obtient ` la fois un degr et un a e diam`tre en log N comme nous allons voir. e Exemple danneau de Chord, avec m = 5. En blanc, les noeuds virtuels et en gris, les noeuds rels. Les cls de ressources sont alloues aux successeurs e e e e reprsents par une `che. e e e 32

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

C31
31 30 29 28 27 26 0 1 2 3 4 5 6

C25

25

24

C23

23

22 21 20 19 18 17 16 15 14 13 12 11

10

C12

2.4.2

Recherche dune ressource dans Chord

Recherche dune donne nom : le noeud demandeur hache le nom pour obe tenir la cl c de la ressource, et en contactant successeur(c), il peut obtenir e ladresse IP du noeud possdant la donne recherche. Le probl`me consiste ` e e e e a contacter successeur(c). Mthode simple mais peu ecace : chaque noeud conserve ladresse IP de e son successeur rel sur le cercle (le successeur de 1 est 4, le successeur de 4 est e 7, ...). Le noeud demandeur peut alors envoyer un paquet de requte contenant e son adresse IP et la cl de la donne quil recherche. Le paquet circule dans e e le cercle jusqu` arriver au successeur de la cl recherche. Ce noeud regarde a e e alors sil a des informations correspondant ` la cl, et les renvoie directement a e au noeud demandeur vu quil a son adresse IP. Cot de la recherche en N (N u tant le nombre de participants). e Amlioration en conservant ` la fois le successeur et le prdcesseur... Mais e a e e mme avec deux sens possibles pour la recherche, cette mthode est tr`s inee e e cace dans les grands syst`mes P2P. e ... faire un exemple sur lanneau au tableau... Utilisation de tables de reprage (table nger) : on conserve plus dinfore mation ` chaque noeud pour acclrer la recherche. a ee Chaque noeud k dispose dune table de routage ` m entres. a e La ie entre (i = 0..m 1) contient lidentit du premier noeud rel qui e e e se situe au moins 2i apr`s le noeud courant k, obtenu par : e successeur k + 2i (modulo 2m ) .

33

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Une entre contient lidentiant et ladresse IP du noeud concern e e (identif iant[i] et adresse[i] pour lentre i). e ...Construction des tables de reprage sur lexemple... e Au noeud 1 : 1 + 1 4, 1 + 2 4, 1 + 4 7, 1 + 8 12, 1 + 16 20 et ainsi de suite pour les autres noeuds. ...Exemples de recherche au moyen des tables de reprage... e 1. Recherche de 23 depuis le noeud 20 : cl entre moi et mon successeur donc e je cherche le rsultat directement sur le noeud 27 dont je connais ladresse e IP 2. Recherche de 14 depuis le noeud 1 : 14 nest pas entre 1 et 4 donc on examine la table de reprage. Entre situe juste avant 14 : le noeud 12. e e e On se retrouve dans le cas 1. 3. Recherche de 16 depuis 1 : mme dpart mais 16 nest pas situ entre 12 et e e e son successeur donc 12 proc`de comme dans lexemple 2 pour transmettre e la requte. Et ainsi de suite. e On se rapproche ainsi de plus en plus du noeud recherch (si le noeud est e loin de moi, je sais que le noeud plus proche poss`de plus dinformation sur les e noeuds proche de lui, et donc sur lobjectif). A chaque itration, on diminue par e deux la distance entre le noeud qui recherche et lobjectif. Ladresse IP du noeud qui poss`de linformation sur la cl recherche est e e e ensuite retransmise au noeud qui eectuait la requte en suivant le chemin e inverse. Algorithmes : Recherche dans la table de reprage du noeud k le plus grand prdcesseur e e e de id : Pour i de m 1 ` 0, si identif iant[i] [k, id] alors renvoyer identif iant[i]. a Renvoyer k (si lon na pas trouv didentiant dans la table). e Recherche du successeur de id par le noeud k : Si id ]n, successeur(n)] alors retourner successeur(n). Sinon, on recherche le plus grand prdcesseur de id (not n ) ` laide de e e e a lalgo prcdent et on cherche le successeur de id sur le noeud n . e e Chaque noeud stocke seulement de linformation sur un petit nombre dautres noeuds, et la plupart sont assez proches en termes didentiant de noeud. Proprits e e Rseau ` N noeuds : e a Avec une forte probabilit il faut contacter O(log N ) noeuds pour trouver e un successeur (O(log N ) messages). 1 La complexit en pratique est denviron 2 log N . e Chaque noeud conserve des informations sur O(log N ) autres noeuds. Lorsquun noeud arrive ou part, la mise ` jour des informations requiert a O(log2 N ) messages.

34

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Hachage consistant : avec une forte probabilit, le dpart ou larrive dun e e e noeud oblige ` relocaliser seulement une fraction en O(1/N ) des cls. a e Preuves dans les papiers Chord. On revient un peu plus en dtail sur la e notion de hachage consistant et sur les eets lis ` la volatilit des noeuds. e a e 2.4.3 Rpartition des cls : notion de hachage consistant e e

Lattribution des cls au successeur permet aux noeuds darriver et de quitter e le syst`me avec un drangement minimal. e e Lorsque k arrive dans le syst`me, ce noeud rcup`re certaines des cls loe e e e calises auparavant sur successeur(k). Lorsque k quitte le syst`me, toutes ses e e cls sont relocalises sur successeur(k). Et il ny a pas dautres modications ` e e a eectuer. (Faire tourner lexemple). On peut alors prouver les proprits suivantes pour un syst`me compos de ee e e N noeuds et K cls. Avec une tr`s forte probabilit, e e e Chaque noeud est responsable dau plus (1 + ) K cls e N Lorsquun noeud rejoint ou quitte le syst`me, O( K ) cls sont relocalises, e e e N et seulement vers/depuis le noeud qui arrive/part. Pour la topologie Chord, = O(log N ), et on peut galement rendre arbie trairement petit en crant sur chaque noeud O(log N ) noeuds virtuels possdant e e chacun leur propre identicateur. Cf papiers consistent hashing pour les dtails. e Remarque : jai utilis le terme avec une tr`s forte probabilit. Ceci est li ` e e e ea la fonction de hachage et suppose une rpartition alatoire des cls. On pourrait e e e imaginer un adversaire qui choisit des cls donnant toutes la mme valeur... e e Utilisation de la fonction de hachage SHA-1 : pour gnrer des cls en cole e e lision, il faudrait en quelque sorte inverser, ou dcrypter SHA-1. Ceci est un e probl`me dicile, donc les proprits nonces sont vries en suivant cette e ee e e e e assomption. 2.4.4 Ajout de noeuds et stabilisation

Arrive dun noeud k. Ce nouveau noeud doit contacter un noeud existant et e lui demander de rechercher ladresse IP de successeur(k) (processus de recherche expliqu auparavant). k contacte ensuite le noeud trouv, lui demande quel est e e son prdcesseur, et demande ` son successeur et prdcesseur de linsrer entre e e a e e e eux sur le cercle. De plus, le noeud successeur lui transmet les cls de lintervalle e ]pred, k]. Il faut galement sassurer que les tables de reprage sont ` jour pour consere e a ver une recherche rapide. Cela seectue en excutant sur chaque noeud un proe cessus en arri`re plan qui recalcule priodiquement chaque entre de reprage e e e e en utilisant la fonction de recherche de successeur dune cl. e Pour sassurer de la stabilit du syst`me, on vrie galement priodiquement e e e e e le successeur immdiat de chaque noeud en demandant ` son successeur quel e a est son prdcesseur, et on sassure que le prdcesseur est ` jour galement. e e e e a e

35

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Ces mises ` jour priodiques permettent de stabiliser le syst`me. D`s que a e e e les pointeurs successeur seront ` jour, la fonction de recherche renverra le bon a rsultat, et on peut montrer quau bout dun certain temps apr`s la derni`re e e e arrive de nouveau noeuds, les pointeurs successeurs forment un anneau de tous e les noeuds dans le syst`me, mme si les noeuds arrivent pendant les oprations e e e de stabilisation. Apr`s larrive de nouveaux noeuds, ecacit de la recherche ? e e e Si toutes les entres des tables de reprage sont raisonnablement correctes, e e succ`s en O(log N ). e Si tous les pointeurs successeurs sont corrects, la recherche aboutit mais peut prendre plus de temps. En eet, la recherche dans la table de reprage e ne conna pas les nouveaux noeuds et va donc un peu sous-estimer le t saut. Cependant, on termine avec une recherche linaire ` laide des poine a teurs successeur. Avec le processus de stabilisation, les recherches sont en O(log N ) avec une forte probabilit. e Possibilit dchec si les noeuds dans la rgion considre ont des pointeurs e e e ee incorrects ou bien si les cls nont pas encore migr dun noeud ` lautre. e e a Le processus de stabilisation fonctionne galement dans le cas darrive sie e multane de plusieurs noeuds. e 2.4.5 Dpart de noeuds et tolrance aux pannes e e

Lors du dpart dun noeud du syst`me, il remet ses cls ` son successeur et e e e a il informe galement son prdcesseur pour que celui-ci puisse changer son poine e e teur successeur. Le processus de stabilisation met ` jour les tables de reprage a e comme pour le cas de lajout. Le probl`me est un peu plus cors lorsquun noeud tombe en panne. Si k e e tombe en panne, les noeuds contenant k dans leur table de reprage doivent e pouvoir retrouver le successeur de k. Notamment, le prdcesseur de k na plus e e de successeur valide. Lide consiste ` conserver, en plus de son successeur immdiat, une liste e a e des r successeurs directs. Cela permet ` un noeud de sauter par dessus r 1 a noeuds contigus dfaillants et de continuer sa participation sur le cercle. Alors, e la probabilit que r noeuds soient simultanment en panne est pr , p tant la e e e probabilit quun noeud soit en panne. e On a alors les proprits suivantes (preuves dans les articles de recherche). ee Soit r = O(log N ) et un syst`me initialement stabilis. Si chaque noeud tombe e e en panne avec une probabilit 1 , alors e 2 avec une forte probabilit la recherche renvoie le plus proche successeur e en vie de la cl recherche ; e e le temps dexcution pour eectuer cette recherche est en O(log N ). e Lutilisation de liste de successeurs permet aussi ` un logiciel de plus haut a niveau de dupliquer les donnes. Les applications gnralement dupliquent les e e e informations sur k noeuds suivant la cl (pour viter la perte dinformation e e lors de panne), et la liste des successeurs permet de savoir quand des noeuds

36

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

partent et arrivent, pour pouvoir gnrer au besoin des nouveaux rpliquas de e e e linformation. 2.4.6 Conclusion

Validation exprimentale du protocole Chord : tr`s bons rsultats qui concordent e e e avec les thor`mes noncs. e e e e Avantages de Chord : simplicit, possible de prouver la correction et les e performances du protocole mme dans le cas darrives et de dparts simule e e tans. Bonnes proprits de passage ` lchelle, recouvre bien des dfaillances, e ee a e e et rpond la plupart du temps correctement aux requtes mme dans une phase e e e de rcupration de dfaillance et de stabilisation. Si une requte naboutit pas, e e e e on ressaie apr`s un petit temps de pause pour permettre au syst`me de se e e e stabiliser. Autres protocoles quil peut tre intressant de regarder (informations sur e e le web) : CAN : ide similaire ` Chord mais la topologie di`re : tore ` d dimensions. e a e a Chaque noeud conserve alors O(d) informations, et le cot de la recherche u 1 est en O(dN d ). Pour d = log N les performances sont similaires ` Chord, a mais d nvolue pas avec la taille du rseau (et N est amen ` varier). e e ea Tapestry/Pastry : autre topologie Freenet : accent sur les probl`mes danonymat e BitTorrent : partage quitable pendant le tlchargement dun chier, e ee un noeud doit mettre a disposition ce quil a dj` tlcharg pour vit de ` ea ee e e e surcharger le noeud possdant initialement le chier. e Certains syst`mes P2P ont t dvelopps suite ` lessor de lADSL et aux e ee e e a probl`mes de partage quitable des donnes. Je dveloppe un peu ce probl`me e e e e e maintenant.

37

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.5

Vers un partage quitable e

Dveloppement de lADSL : dbit asymtrique, le dbit de sortie des clients e e e e est 10 ` 20 fois plus faible que leur dbit de tlchargement. Ce faible dbit a e ee e freine lensemble du rseau, car indpendamment de sa vitesse de connexion, un e e ordinateur sera limit par le dbit impos par le pair qui envoie les donnes. e e e e La notion de tlchargement multiple a t introduite pour compenser cette ee ee asymtrie. e 2.5.1 Tlchargement multiple ee

eDonkey, eMule... Possibilit de tlcharger un chier ` partir de plusieurs sources. Un chier e ee a est dcoup en petites tranches, il peut tre tlcharg morceau par morceau ` e e e ee e a partir de plusieurs pairs. Solution partielle : ne peut pas permettre ` tous les a pairs en mme temps daugmenter leur vitesse de tlchargement, car au total e ee les capacits du rseau restent dsquilibres. e e ee e Ce fractionnement des donnes permet galement daugmenter la dure de e e e vie dun chier dans le rseau : persistance des chiers dans le temps. Si on e tlcharge un chier que poss`de un pair dans son intgralit, lorsque le pair se ee e e e dconnecte, on doit trouver une autre source et recommencer le tlchargement e ee depuis le dbut. En revanche, avec le tlchargement multiple, un chier peut e ee mme tre disponible sur le rseau alors que personne ne le poss`de dans son e e e e intgralit. e e Probl`me de coopration : problmatique essentielle. Nombreux utilisateurs e e e se servent du rseau uniquement pour acqurir de nouvelles donnes, mais ne e e e partagent pas leurs donnes. Pour pallier ` ce type de probl`mes, protocoles de e a e type BitTorrent. 2.5.2 BitTorrent et le partage quitable e

Les bouts de chiers dj` tlchargs sont partags lorsquun utilisateur est ea ee e e en cours de tlchargement du chier. Cependant, dans la plupart des cas, ` la ee a n du tlchargement, lutilisateur se dconnecte du rseau P2P ou bien arrte ee e e e de partager le chier quil vient de rcuprer. e e BitTorrent vise ` inciter ` la coopration entre les pairs en suivant un prina a e cipe simple : il faut partager des morceaux dun chier dj` acquis pour pouea voir en obtenir de nouveaux plus rapidement. BitTorrent se concentre sur le tlchargement dun chier (lindexation des chiers est prise en charge par un ee autre protocole). Chaque pair BitTorrent, en tant que serveur, donne en priorit aux clients e qui lui ont rcemment envoy des morceaux du chier. Ainsi un pair, en tant e e que client, a tout intrt ` donner ce quil poss`de pour recevoir le plus souvent ee a e possible des morceaux de chier. BitTorrent est utilis pour distribuer certaines versions de Linux. Il est e galement utilis par des socits ditrices de jeux, pour la diusion de leurs e e ee e logiciels et versions dessai. 38

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1. Chaque client se connecte ` une centaine dautre, et change avec eux la a e liste des blocs quil poss`de (bitmap). Un noeud spcial, le tracker, est e e charg de mettre les clients intresss par le tlchargement du chier en e e e ee relation. 2. Un client rp`te en continu le processus suivant jusqu` ce que le proe e a gramme soit arrt par lutilisateur (une fois le chier rcupr, le client ee e ee continue de le redistribuer). (a) Chaque client demande un bloc ` chacun des autres clients (les blocs a qui paraissent plus rare sont demands de prfrence). e ee (b) Chaque client ne sert quune partie des demandes qui lui sont adresses selon le principe dun prt pour un rendu : les trois clients qui e ee lui ont le plus donn dans les 10 derni`res secondes sont servis de e e prfrence, ainsi quune quatri`me demande slectionne au hasard. ee e e e Heuristique dun prt pour un rendu dans le choix de redistribution du ee chier : heuristique connue en thorie des jeux pour rsoudre le dilemme du e e tlchargeur go ee e ste. Conclusion On a ainsi vu comment le P2P sert au partage de chiers, utilisant divers techniques algorithmiques pour lacc`s au chier (premier probl`me : trouver le e e chier) et galement en utilisant sur un mme chier des techniques de partage e e quitable (assurer la persistance des chiers dans le temps et un tlchargement e ee rapide et able). Cependant, Le pair ` pair, ce nest pas que lchange de chiers, il a e existe de nombreuses autres applications. Pour nen citer que quelques unes : Partage de puissance de calcul et espace mmoire e Logiciels de messagerie instantane / tlphonie IP e ee Listes de diusion : mcanisme de recherche persistante e On dveloppe maintenant les techniques algorithmiques visant ` dvelopper e a e le mcanisme de recherche persistante. e

39

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.6

Mcanisme de recherche persistante e

Dans les syst`mes tudis prcdemment, on sest concentr sur une ree e e e e e cherche instantane : les objets sont stocks et les messages qui circulent sont e e les requtes. e On va sintresser ici aux recherches persistantes : les requtes sont stockes, e e e et les messages sont des publications sur les objets. On dispose alors de plusieurs types de recherche : exactes ou par plages de valeurs. 2.6.1 Publication/abonnement

Syst`me de notication asynchrone, et dcouplage des publieurs et des abonns. e e e Les abonns enregistrent leurs intrts e ee Les publieurs publient des vnements e e Publieurs [syst`me publication/abonnement] Abonns e e Probl`me de passage ` lchelle, pour faire la correspondance entre les pue a e blieurs et les abonns : ncessit dun bon paradigme de communication. e e e Classication des syst`mes : e bass sur les sujets (topic-based) e Exemple : sujet=vente-appart. Cela revient ` un multicast (transmission simultane ` plusieurs noeuds) a e a au niveau applicatif bass sur les attributs ou le contenu (attribute-based, content-based) : ltre e le contenu du message. Exemple1 : (ville=Lyon) (type=T2) Exemple2 : (ville=Lyon || Grenoble) && (type=T3 || prix < 200, 000 EUR) Utilisation de rseaux structurs pour raliser un syst`me publication-abone e e e nement : Bas sur les sujets : associer une cl au nom dun groupe. Exemple syst`me e e e Scribe. LID dun sujet est donc associ ` un noeud du rseau, et lorsquon ea e sabonne ` un sujet, on cherche une route vers ce noeud. Le noeud corresa pondant ` un sujet peut alors router vers tous les abonns en utilisant un a e arbre de multicast (racine= le noeud correspondant au sujet). Scribe est bas sur Pastry. e Bas sur les contenus : on doit eectuer une correspondance entre lespace e des attributs et lespace des identicateurs. Un attribut par pair : risque davoir trop de cls pour un pair si attribut tr`s populaire. Un couple e e (attribut,valeur) par pair : pas toujours possible (champ des valeurs). Il faut faire un compromis ecacit/expressivit. e e On va tudier maintenant deux syst`mes. Meghdoot est un rseau structur e e e e bas sur CAN. Sub-2-Sub est, ` loppos, faiblement structur. e a e e

40

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

2.6.2

Meghdoot

Syst`me de publication/abonnement bas sur le contenu, et mis en oeuvre e e au dessus du rseau P2P CAN. Syst`me S = {A1 , ..., An } o` Ai est un attribut. e e u Attribut Ai : {nom : type, Li , Hi } (un nom, un type et des bornes Li pour le min et Hi pour le max). Le type peut tre entier, rel, caract`re, cha de e e e ne caract`res, ... e Abonnement : conjonction de prdicats sur un ou plusieurs attributs. Ope e rateurs (=, <, >) et constantes (ou plages de valeur). Ex abonnement : s = (A1 v1 ) (v2 A2 v3 ) Evenement : ensemble dgalit sur les attributs. e e e = {A1 = c1 , ..., An = cn }. Un vnement e correspond ` un abonnement s si chaque prdicat de s est e e a e vri par e. e e Le syst`me doit : e stocker les abonnements router les vnements aux abonnements concerns e e e On structure lespace en un espace cartsien de dimension 2n (pour n attrie buts). Attribut Ai de domaine [Li , Hi ] : correspond aux dimensions 2i 1 et 2i. (rectangle de dimensions [Li , Hi ]). CAN : similaire dans le principe ` Chord, dcoupage en zones et un noeud a e appartient ` une zone donne. (zone= correspond ` plusieurs noeuds virtuels). a e a Un abonnement s = (l1 A1 h1 ) ... (ln An hn ). s est associ e au point [l1 , h1 , ..., ln , hn ]. Lorsquun utilisateur PO souscrit un abonnement, il envoie ses informations au pair correspondant ` la zone de cet abonnement, Pe a (routage de proche en proche). Pe conserve les informations sur PO (adresse IP, adresse e-mail...) et les coordonnes de labonnement. e Lvnement e est associ galement ` un point [c1 , c1 , c2 , c2 , ..., cn , cn ], et s e e ee a est aect par e si pour tout i li ci hi . e Exemple : projection dun abonnement sur laxe des vnements, et zone des e e abonnements concerns Content-Based Publish/Subscribe over P2P Networks e par un abonnement. Meghdoot: 261
H1 H1
(c 12 , H 1)

Po S

(L1 , c 11)

e Pt H1

L1 L1

H1

L1 L1

by an event e c1 , c . Lors de lintroduction dun vnement dans le=syst`1me par un pair P0 , P0 e e e route lvnement vers le pair Pt qui g`re la zone du point de lvnement. e e e e e the event. Pt sends the event to its immediate neighbors in the aected region, Lvwhich in turn propagate the event to their neighbors in the aected region. Thisdans la e enement est alors propag depuis Pt vers tous les pairs qui sont e rgion touche par until eall peers in the aected region have been notied of the e process repeats lvnement. e e

Fig. 3. Region of events aecting a subscription S = l1 , h1 .

Fig. 4. Region of subscriptions aected

event. The basic algorithm for event delivery is given below. The algorithm Deliver Event is initiated at event es target peer, Pt , which 41 owns zone z. Lines 1-4 check for all aected subscriptions that are stored at zone z and deliver the event to those subscriptions. Predicate matchedSubscription(S, e) is true if the subscription point corresponding to subscription S is contained in the aected region of event e within zone z. Lines 5-8 nd all neighbors, n, of zone z that are aected by event e and are in the upper left region of the zone z itself. The predicate eventRegion(n, e) is true if the region of zone n intersects with the aected region of event e. The predicate upperlef tN eighbor(n, z) evaluates to true if neighbor n lies in the upper left region of zone z. We use the bottom right point of zone z as the reference point for the upper left region

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Lespace logique est divis en zones (comme dans CAN), et un pair est e associ par zone et g`re cette zone. Table de hachage distribue (DHT) multidie e e mensionnelle (cf CAN). Connaissance des coordonnes de sa propre zone ainsi e que des zones voisines, et connaissance des adresses IP des noeuds grant les e zones voisines (information utilise pour le routage). e Gestion des pairs et quilibrage de charge e Un pair g`re les abonnements associs ` sa zone, et propage les vnements. e e a e e quilibrage de charge: abonnements La charge dune zone est donc proportionnelle au nombre dabonnements stocks e dans la zone. Pour quilibrer la charge, dcoupe des zones dpendante du nombre ePairs e e Gre abonnements associs dabonnements. Gupta unlesmeilleur quilibrage de charge que la dcoupe unie e 264 Abhishek Cest et al.les vnements Propage forme, qui donnaitCharge associesultats pour la recherche dobjets comme dans de bons r aux abonnements e Abonnement stock sur pair grant la zone associe r CAN, Chord...propagation path noms lemany events, splittingethe zone in two un e it falls in the (le hachage des of too des objets donne stocks sultat homog`ne, Charge proportionnelle au nombre dabonnements contrairementbecausedans lazone will still remain in the path of those events. For aux abonnements). zone will not help, the
Partage de son tient compte de cette charge

example, in Figure 7(a), lets say that the zones owned by peer nodes N1 , N2 , and N3 are in some event propagation path, and node N2 is overloaded due to event propagation. If a new peer N4 joins the system and splits the zone owned by N2 , now both N2 and N4 are in the propagation path, and hence this splitting does Uniform splitting Sub-based splitting not reduce the load on N2 . In order to reduce the load due to event propagation, we On peut create agir sur les vnements pour quilibrer la charge available need to aussi alternate propagation paths and select one of the : cration 24/11/05 25 e e e e paths to propagate each event. Thus, not every event will propagate through de chemins de propagation alternatifs lorsquun noeud est surcharg par les e the vnements quil doit and overload them. on rplique une zone,by replicating ase e e same set of nodes, router. Pour cela, This can be achieved et le routage e zone that is overloaded due to event Robin : on choisit context of P2P originale, fait suivant un algorithme de Roundpropagation. In the une fois la zone systems partitioning is typicallyee... Plus ecace que le partitionnement dune zone, qui une fois la zone rpliquused for load distribution. Our approach is dierent, in e that, we are proposing e replication for load distribution. ne rduira pas le probl`me de la charge du noeud concern. e e
N3 N3 N4 N2 N1 E N2 N1 E

N1 N2 N3 N2 N3

N1

N4

(a) Splitting does not divide event (b) Replicating a zone divides propagapropagation load. Arrive dun pair dans le syst`me tion load. ` une zone charge (garder e e : laecter a e

et mettre ` jour une liste des pairs surchargs en chaque noeud...). Choisir la a e Fig. 7. Event propagation load. rplication ou le partitionnement suivant le type de charge de la zone choisie. e Dpart dun pair : regarde si il est rpliqu, si oui informe les autres pairs e e e Figure de shows how Sinon demande ` ses voisins qui veut bien top repde sa zone 7(b)son dpart. this will be implemented. The straight line on reprendre e a resents sa zone.the original situation along a propagation path. The black dots represent thePanne.owning the rguliers the path. entre N2 in the center was pour mettre peers Messages zones in changs Peer voisins, notamment overloaded e e e due to les charges. Lorsquun noeud dcouvre 4que son to join est en panne, il a ` jour event propagation. When a newe peer N wishes voisin the system, it can replicate the exact zone as peer N2 along with all its subscriptions. The rcup`re sa zone (ou la cone ` un de ses voisins). Probl`me de perte des abone e a e neighbors N and N3 need to store the IP addresses of both peers N2 and N4 nements du 1noeud dfaillant, mais technique de sauvegarde des abonnements e associated with the zone coordinates. Eectively the neighbors have two paths to propagate the event through the replicated zone. When a neighbor needs to propagate an event to the zone, it picks 42 replica peer out of the list of replicas one for the zone in a round robin fashion. This will distribute the propagation load on the old peer responsible for the zone.
4.2 Peer Join

When a new peer Pn wishes to join the system, it contacts a known peer Pe in the system. Pe tries to locate a heavily loaded peer in the system. After Pe

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

e dans la zone symtrique (avec li > hi ) vu que lon nutilise que la moiti de e lespace en fait. Conclusion Meghdoot Bonnes proprits de passage ` lchelle, les techniques dquilibrage de ee a e e charge sont tr`s ecaces en pratique. e Cependant, probl`mes inhrents aux rseaux structurs : peu de exibilit, e e e e e et attribution de zones de lespace de nommage. Tous les dtails dans le papier sur la page web. On prsente maintenant une e e approche alternative, Sub-2-Sub. 2.6.3 Sub-2-Sub

Comme Meghdoot, Sub-2-Sub est un syst`me de notication asynchrone e dvnements bas sur le contenu. Ce syst`me supporte des requtes exactes et e e e e e par plage de valeurs, et vise ` pallier linadquation des rseaux P2P structurs a e e e pour le cas publication/abonnement. Rseau P2P non structur de construction pidmique dans un espace date e e e tributs multidimensionnel. Le rseau est faiblement structur, mais cherche ` e e a regrouper automatiquement les abonnements similaires. Il supporte les abonnements multi-attributs. Algorithme pidmique : priodiquement chaque pair change de linformae e e e tion avec un de ses voisins logiques : 1. slection de la cible parmi les voisins (ici, parmi ses voisins, 1 choisit 6) e 2. communication : change des informations (1 rcup`re la liste des voisins e e e de 6 et les combine ` la liste de ses voisins) a 3. traitement de linformation reue : le pair recalcule lespace de ses voic sins en utilisant des facteurs de slection (1 garde comme voisins 4,5,6 e uniquement).
2,4,6 24567 4,5,6 1 4 3 5 5,7 6 7

Les voisins sont slectionns selon dirents crit`res, et classis dans die e e e e e rents groupes. On associe ` chaque noeud un ID tir alatoirement, ce qui permet a e e de reprsenter schmatiquement le graphe des noeuds, reprsents par leur ID e e e e et la valeur de leurs attributs.

43

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

On dispose alors de : Liens alatoires (comme pour les algorithmes pidmiques classiques) : e e e liens vers des noeuds choisis alatoirement, pour viter la dconnexion de e e e certains noeuds du syst`me. e Liens dintrts : voisins choisis parmi tous ceux qui poss`dent Sm mme ee e e une e Nm valeur dattribut. Ces liens sont utiliss pour acclrer la dissmination e ee e e dun vnement. e e Liens de lanneau : les plus proches voisins pour toutes les valeurs dattribut dun noeud donn. Dissmination dun vnement de proche en e e e e proche. Algorithmes de dissmination des vnements, cration dun abonnement, e e e e ajout/disparition de pairs, ... Mais nous ne rentrons pas dans les dtails ici, et e travaux de recherche en cours. Plus dinformations dans le papier correspondant.
Nm

44

Vous aimerez peut-être aussi