protocoles pair à pair - polytechnique€¦ · •problème de base : –récupérer la liste des...

80
Protocoles pair à pair Laurent Viennot http://gyroweb.inria.fr/

Upload: others

Post on 25-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Protocoles pair à pair

Laurent Viennot

http://gyroweb.inria.fr/

Page 2: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Plan

• Historique :– Systèmes par diffusion

• Tables de hachage distribuées :– Chord– Kademlia (prefix routing)– Broose (de Bruijn)

• Distribution grande échelle :– BitTorrent– Avalanche

Page 3: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Partage de fichier

Internet

A

Page 4: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Index central : Napster

A

AA?

IP

Page 5: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Requêtes pratiques

• Fichier tel que :– nom contient Brasens– type musique– codage mp3– taille > 200 Mo

• Fichier de md4 A’ ?

Brassens

Page 6: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Chacun indexe ses fichiers :Gnutella v0.4

A

A?

A?

A?

A?

A?

A?

A?

IP

Page 7: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Solution hybride : FastTrack / Kazaa(Ultrapeers / Supernodes)

A

A?

A?

A?

A?

A?

A?

A?

IP

IP A? A

Page 8: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Téléchargement multiple :eDonkey

A1

A3

A2

Page 9: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Anonymat total : Freenet

• Tout est crypté.• Les fichiers sont cachés.• On ne sait pas ce qu’on aide à chercher, ou

même ce que l’on cache.

Page 10: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Insertion d’un nouveau nœud

• Règle générale :– il existe un mécanisme pour demander à un pair

l’adresse d’autre pairs,– trouver un nœud du réseau,– contacter de proche en proche d’autres nœuds

jusqu’à en trouver acceptant une nouvelleconnexion.

Page 11: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Insertion dans Gnutella

• Trouver un point d’entrée dans unGwebcache

• Soit un nœud accepte la connexion, soit ildonne une liste d’adresses de pairs (contactsrécents ou voisins)

• Modèle de construction du réseau par desmarches aléatoires à partir d’un sous-ensemble des nœuds...

Page 12: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Pairs et Super-pairs (Gnutella v0.6)

Page 13: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Super-pairs seulement

Page 14: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Indexation : survol

• Réseau logique aléatoire (Gnutella) :inondation

• Réseau structuré (DHTs) : routage• Réseau petit monde : utiliser les sommets de

grand degré

Page 15: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Tables de hachage distribuées(DHT)

• Espace logique K• Hachage :

– Donnée A -> f(A) dans K– Nœud u -> identifiant g(u) dans K

• Stocker A sur le nœud u tel quedist(f(A), g(u)) soit minimale

Page 16: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

DHT

• Routage par clé :– Un nœud u se connecte aux nœuds dont

l’identifiant ressemble à g(u).– De proche en proche, on sait trouver le nœud le

tel que dist(g(u), k) soit minimale.– Similaire au routage dans Internet mais sans les

contraintes.• Difficulté : degré faible, diamètre faible,

congestion faible

Page 17: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

IDlog N voisins

Chord (Stoica et al., 2001)

0

A

f(A)

A

A(A, IP)

Routage enO(log n)

Page 18: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

ID

Chord (Stoica et al., 2001)

0

A

(A, IP)

Routage enO(log n)

ID + 2k ?log N voisins

f(A)

Page 19: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Chord : Hypercube

• Contraintes fortes sur le choix des voisins.• Requêtes exactes.• Autres solutions :

– CAN (Ratnasamy et al., 2001) : tore– Pastry (Rowstron et Druschel 2001) : hypercube– Viceroy (Malkhi et al., 2002) : papillon– D2B (Fraigniaud et Gauron, 2003) : de Bruijn

Page 20: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Requêtes

• Nom exact de A --> f(A) --> IP :– problème similaire au DNS : nom de machine --> IP

• Requêtes plus souples, indexer :– hash(A), IP(s)– hash(m), hash(A) pour m mot du nom de A,– tags discrétisés : hash(taille=entre 1Mo et 10Mo),A

• Orthographe approchéé / préfixe de mots ?• Requêtes numériques (intervalles) ?

Page 21: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Indexation par mots clé

• Problème de base :– Récupérer la liste des fichiers dont le nom

contient à la fois les mots A et B.• Gérer les collisions :

– Beaucoup de fichiers peuvent contenir un motdonné.

Page 22: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Optimiser la diffusion

• Autorise les requêtes partielles.• Similaire au réseaux ad hoc :

– forte dynamicité– on connaît ses voisins– on peut facilement connaître les voisins de ses voisins (Hellos)

• Contrainte : optimiser la diffusion, chaque nœud neconnaissant que ses voisins et les voisins de ses voisins.

Page 23: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Multipoints relais (réseau logiqueou filaire)

12

Chaque multipoint relais mde x retransmet à sonsecteur S(x,m).

On retransmet ausecteur plus sesMPRs.

Page 24: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Règle de retransmission (filaire)

• On retransmet si :– pas déjà reçu– reçu avec nb sauts supérieur– reçu avec même nb sauts mais

d ’un nœud plus grand

Page 25: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Preuve d’exhaustivité• Tout sommet à distance d de la source est

atteint en d sauts.

Page 26: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Approche par spanner

• Construire un sous-graphe connexe avecpeu d’arêtes.

• Ne retransmettre que sur les arêtes de cesous-graphe.

Page 27: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Heuristique distribuée

3

1

4

6

7 8

9

10

2

5

Page 28: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Heuristique distribuée

3

1

4

6

7 8

9

10

2

5

Page 29: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Heuristique distribuée

3

1

4

6

7 8

9

10

2

5

Page 30: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Heuristique distribuée

3

1

4

6

7 8

9

10

2

5

Page 31: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Heuristique distribuée

3

1

4

6

7 8

9

10

2

5

Page 32: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Preuve

• Arêtes enlevées par une de leur extrémité :e1 < … < ek.

• Le graphe privé de {e1, … , ek} resteconnexe.

• Quand x décide d’enlever ei, il reste uncycle dans son graphe à deux sauts qui necontient que des arêtes >= ei.

Page 33: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions
Page 34: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Multipoints relais (ad hoc)

1

2

Sélectionner unminimum de relaispour atteindre tout lemonde à deux sauts.

Page 35: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Règle de retransmission (ad hoc)

d

12

ab

c

Si on n’a pas déjà reçu et

on reçoit d’un MPR alors

on retransmet.

f

Page 36: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions
Page 37: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Filtres de Bloom

• Coder un ensemble E de n éléments x1, …, xn.• Vecteur de m bits, fonction de hachage h.• Mettre à 1 les bits en positions h(x1), …,

h(xn).• Pour tester si x appartient à E :

– Si le bit h(x) vaut 0 alors non.– Si le bit h(x) vaut 1 alors oui avec une possibilité

de « faux positif ».

Page 38: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

• Pour diminuer les faux positifs :– Augmenter m.– Utiliser plusieurs fonctions de hachage h1,…,hf:

• Tous les bits en positions h1(xi),…,hf(xi) sont mis à1 pour chaque xi.

• Pour tester l’appartenance de x à E : si l’un des bits en position h1(x),…,hf(x) est à 0 alors x n’est pas dans E.

Page 39: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Utilisation des filtres de Bloom

• Coder un ensemble quand l’espace doit êtreoptimisé au maximum.

• L’impact des faux positifs est faible quandils sont peu fréquents.

• Typiquement : m = 8n bits pour uneprobabilité de faux positif de 0,02.

Page 40: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Diffusion optimisée par filtre deBloom (Gnutella v0.6)

• Chaque super-pair code la liste des mots clédes fichiers qu’il indexe dans un filtre deBloom B0.

• Chaque super-pair échange son filtre avecses voisins.

• Une requête de TTL 1 n’est passée qu’auxvoisins dont le filtre indique la présence desmots de la requête.

Page 41: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Diffusion plus large

• Chaque super-pair calcule le filtre de Bloom B1de ses mots et de ceux de ses voisins etl’échange avec ses voisins.

• Une requête de TTL 2 n’est passée qu’auxvoisins dont le filtre B1 contient les mots de larequête.

• Ainsi de suite pour B2, B3, …• Calcul de l’union de filtres ? de l’intersection ?

Page 42: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Analyse

• Et pourquoi pas n hashs de m/n bits ?– Prob. faux positif ≤ (1/2)m/n x n ≤ cte pour m/n = O(log n) ≤ 1/n pour m/n = 2 log n

• Filtre de Bloom avec f fonctions :– Prob. bit i reste à 0 : p = (1 - 1/m)fn

≈ exp (-fn/m)– Prob. faux positif = (1 - p)f

– Optimal pour p=1/2, f=m/n ln 2 : prob. faux positif =(1/2)f=0,6185m/n

≤ cte pour m/n = O(1)

Page 43: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Variantes

• f filtres de m/f bits avec 1 fonction par filtre:– prob bit i à zéro p’=(1 - f/m)n ≈ exp (-fn/m)– prob. faux positif de tous les filtres = prob. bit i à zéro f fois = (1-p’)

• Filtre compressé de taille compressée m :– Filtre de taille m’ gzippé– p = 1/2 est le plus mauvais (pas compressible)– prendre une seule fonction de hachage avec m’

assez grand

Page 44: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Intégrité des données

• Pour vérifier l’intégrité des données,l’identifiant d’un fichier est construit parhachage du contenu du fichier par unefonction cryptographiquement sûre (md5 ousha1).

• Une fois le fichier récupéré, on vérifie quele hachage du contenu donne le bon résultat.

Page 45: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Téléchargement multiple

• Le fichier est décomposé en n blocs.• On calcule le hash hi de chaque bloc i.• L’identifiant du fichier est le hash de

h1…hn.• Si un pair donne un mauvais bloc, on le

« blacklist ».

Page 46: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Tiger tree

• Calculer les hashs de chaque paquet.• Les hashs sont calculés en arbre.• Si un hash est faux, on sait retrouver en

parcourant l’abre le paquet problématique.

• Hash de tous les paquets :– 16-20 octets de hash pour 1000 octets de

données,– soit 2 % d’overhead.

Page 47: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Some difficult points for DHTs

• Resilience to node failure• Load balancing:

– hotspots of requests (many requests for the same key)

– hotspots of collisions (many associations with the same key)

• Physical proximity:– overlay vs physical network

Page 48: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Kademlia: a loose DHT• Maymounkov & Mazières (IPTPS ’02)• Practical : used by Overnet and Emule.• The key space is split among nodes in a loose

manner.• A <key, value> association is stored on the k

closest nodes (for the xor metric) to the keywhen it is inserted.

• It is re-published every hour.• The probability that k nodes leave the network

within an hour is small.

Page 49: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Kademlia

• « Prefix routing » : find nodes with longerand longer common prefix with the searchedkey (hypercube topology as Pastry).

• Xor distance : u xor v gets smaller as u and vshare a longer common prefix.

• Redundancy:– a key, value association is stored on k nodes,– a bucket of k neighbors is maintained rather than

one contact.

Page 50: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Kademlia routing tables

10

0

0

1

1

u=0110…

0

k closest nodes to u

….….

0 1

1

Trie of node identifiers

1

1...

00...

000...

0111...

Routing table: - Bucket Bi(u) contains k nodes with prefix u[1,i-1] u[i] - log N + O(1) buckets

Page 51: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

u=0110…

10

0

0

1

1

1

00...

000...

0111...

1...

Kademlia lookup: find the kclosest nodes to w

u=0110...w=1011...

B1(u)

u1=11...

B2(u1) 10...u2=1010...

B4(u2) 1011...

B1(u) U B2(u1) U B4(u2) … k closest nodes to w

Lookup bucket sorted by distance to w

The lookup succeedsif at least one nodeper bucket answers.

Buckets are lasily maintained.

Page 52: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Faster lookups

• Match b more bits at each step• (log N) / b steps• Routing tables of size k (2b - 1)/ b log N

(the ID trie is 2b-ary instead of binary)• b = log log N gives :

– log N / log log N steps lookups– k log2 N / log log N contacts per node

Page 53: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Can we do the same thing withDe Bruijn topology ?

• De Bruijn topology : logarithmic diameter withconstant degree.

• We would expect :– log N steps lookups with O(k) contacts per node– or log N / log log N steps with O(k log N) contacts

(a factor log N / log log N on routing tables sizecan be gained over hypercube)

• Asymetry problem :– asymetric directed topology– how to re-enforce bucket accuracy ?

Page 54: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Route from u=010 to w=011: u --> w[n] u[1,n-1]=1u[1,n-1] --> …

w=011

Route from u=010 to w=011: u --> 1u[1,n-1] --> 11u[1,n-2] --> 011

101

u=010

De Bruijn Graph

001

u

Nodes are n bits strings, N=2n nodes.

1u[1,n-1]

0u[1,n-1]

R1

R0

110

Route from u=010 to w=011: u --> 1u[1,n-1] --> 11u[1,n-2]

Right shifting arcs:

Page 55: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

01

101

010

1

0

De Bruijn Graph

00

11

10

000

111

011 110

001 100N=2

N=22 N=23

Page 56: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Left or right shifting

• Reversing the arcs gives the similarly defined graph withleft shifting arcs.

• De Bruijn DHTs :– Abraham, Awerbuch, … IPDPS ’2003 (left)– Fraigniaud & Gauron 2003 (left)– Kaashoek & Karger IPTPS ’2003 (left)– Naor & Wieder SPAA ’2003 (right reversed)

• Strict topology control (a node must inform neighborsbefore leaving).

Page 57: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Broose topology

u

R1(u)={k closest nodes to 1u[1,n-1]}

R1

R0

Right buckets:

R0(u)={k closest nodes to 0u[1,n-1]}

0010...

0101...

0100...1011...

11100...

11101...

1101...

N=7, k=2

N nodes have random n bits IDs with n >> log N

A node u has identifier u[1,n]

Page 58: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Broose right lookup

• u looks for the k closest nodes to key w• Estimate the hop distance d from u to nodes

storing w• Contact nodes with same prefix as :

– u[1,n] (u itself)– w[d] u[1,n-1] (vd-1 found in Rw[d](u))– w[d-1,d] u[1,n-2] (vd-2 found in Rw[d-1](vd-1))– ….– w[1,d] u[1,n-d] (v0 found in Rw[1](v1))

Page 59: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Broose right lookup

u=0010...

0101...

0100...1011...

11100...

11101...

1101...

N=7, k=2

u=0010… looks for w=11000...

Lookup bucket :

R0(u)

0101… (2 hops)

0010… (2 hops)vd = u = 0010… (3 hops)

d=3 R1(v2)

v2=

1101… (1 hop)1011… (1 hop)

R1(v1)

v1=

11101… (0 hops)11100… (0 hops)v0=

v0 is among the k closest nodes to w[1,d]u[1,n-d] = v2

v1 =v0 =

Page 60: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Sketch of proof• l = log N / ck (c=7/2)• There exist almost surely k nodes with prefix

w[1,l] for any bit sequence w:– Let Nx be the number of nodes at xor distance less

than 2n-l = ck 2n / N from w.– E[Nx] = ck and P[Nx < k] = O(pc

k). (Chernoff)• vi begins with w[1+i,d] w.h.p. :

– vi+1 is among the k closest nodes to w[i]vi[1,n-1]which begin with w[i,d] by recurrence.

• v0 has prefix w[1,l] w.h.p. (or w[1,l+1]…)

Page 61: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

End up with a brother lookup

0010...

0101...

0100...1011...

11100...

11101...

1101...

N=7, k=2

v0

B(u)={7k closest nodes to u}

If v0 is among the k closest nodes to wthen B(v0) contains the k closestnodes to w with high probability.

Brother bucket B(v0)

w=11000...

B(v0)

Page 62: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Broose left lookup• Left bucket

– L(u) = {v | u is among the k closest nodes. to u[1]v[1,n-1]}. = {v | u is in Ru[1](v)}

• Query only the k’’ < k closest nodes tou[d-i+1,d]w[1,n-i]

Page 63: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Symmetric Broose

• Shift by b bits instead of 1.• Right lookups re-enforce left buckets• Left lookups re-enforce right buckets• |R(u)| = 2b k’ (k/2 < k’ < k)• |L(u)| = 2b k’ on average• Probability of both lookups failure = O(pk)• b=4, k=20 and k’’ = 9 -> k’ = 15• Broose : 620 contacts• Kademlia : 1500 contacts

Page 64: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Simulations

Proof asumption:One of the k closest nodes (still alive) to some reference

ID answers (kind of bucket accuracy).Simulation model:

N nodes have initially accurate buckets.rN nodes die and rN new nodes enter the network.A node knows previously arrived nodes and a later node

v with probability (rN - a) / rN where a is the arrivalposition of v.

Page 65: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Simulations : right lookupfailures

r

Percentage of request failure

b = 4 r = 0.3 --> k’ = 10

Page 66: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Simulations : left lookup failuresPercentage ofrequest failure

r

b = 4 r = 0.3 et k’’ = 9 --> k’=15

Page 67: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Hotspots

• Request hotspots:– Cache on last unaware node.

• Key collision hotspots:– associations ares sorted by

value x.k closest nodes to wstore the A firstassociations with key w.

x[0]=0

x[0]=1

0w[1,l]

1w[1,l]

01w[1,l]

11w[1,l]

x[1]=0

x[1]=1

Page 68: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Conclusion

• What’s new :– De Bruijn topology adapted to give resilience to

node failure.– Symetric De Bruijn topology.– Key collision hotspot balancing.

• It can easily embed binary trees.

Page 69: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Simple left lookup

• L(u) = 7k closest nodes to u[2,n-1]0• Contact nodes with same prefix as :

– u[1,d] w[1,n-d] (u itself)– u[2,d] w[1,n-d-1] (vd-1 found in L(u))– ….– u[d] w[1,n-d-1] (v1 found in L(v2))– w[1,n] (v0 found in L(v1))

• Shifting b bits at a time : |L(u)| = 3.5 2b k .For N < 109 , log N / log log N = 4 or 5

Page 70: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions
Page 71: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Distribution de contenu

• Broadcast (streaming, délai court) :– Routage : arbre au niveau des routeurs.– Applicatif : arbre au niveau des clients.

• Optimisation : utiliser plusieurs arbres.– Routage : liens dans plusieurs arbres ->

network coding.– Applicatif : ex. SplitStream :

• Degré borné.• Un client est nœud interne dans au plus un arbre.

Page 72: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

• Distribution d’un fichier :– Edonkey :

• Demander le bloc le plus rare.• Donner à ceux qui nous ont donné auparavant.

– BitTorrent :• Un seul fichier en jeu.• Tit-for-tat itératif (un prêté pour un rendu).

– Rateless Peer-to-peer (Digital Fountain) :• Turbo/Tornado code randomisé de blocs, une source

produit une séquence de blocs différents pourchaque nœud.

– Avalanche :• Chaque nœud donne une combinaison linéaire des

blocs qu’il possède.

Page 73: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Rateless/On-line codes• Message de n blocs.• Générer des blocs codés :

– Tirer un degré i selon une distribution p1,…,pF (F=O(1)).– Choisir i blocs aléatoirement uniformément.– Le bloc codé est le xor des i blocs.– Rajouter les numéros des blocs xorés.– Similaire codes Tornado (proportion fixe de blocs de degré i).

• Th: (1+e)n blocs codés permettent d’obtenir une fraction(1-d) du message en temps O(nf(d,e)) w.h.p.

• Preprocessing : n’>n/(1-d) blocs :– Th : (1+e)n blocs codés permettent d’obtenir le message en

temps O(n ln 1/e) w.h.p.

Page 74: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

• Décodage :– Trouver un bloc codé dont tous les blocs dont il

est le xor sont connus sauf 1.– Le bloc inconnu est obtenu en xorant le bloc

codé avec les i-1 blocs connus.• Ordre de décodage : exploration du graphe

biparti blocs codés / blocs du message :– Trouver un bloc codé de degré 1, calculer le

bloc associé et retirer toutes les arêtes de cebloc associé.

– Travailler sur le sous-graphe des sommets à 2lsauts d’un bloc à décoder suffit (l = O(1)).

• Valeurs pratiques : F=2114, d=.005, e=.01,k=3 ((1+kd)n blocs au preprocessing).

Page 75: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Variante(avec homomorphic hashing)

• Les blocs sont des vecteurs de nombresentiers modulo q (log q = 256).

• On utilise l’addition modulo q plutôt que lexor (et la soustraction pour le décodage).

• Hash d’un bloc : h(B) = ΠgiBi mod p où les

gi sont des entiers modulo p (log p = 1024).• Remarque : h(xA+yB) = Πgi

xAi+yBi mod p =h(A)xh(B)y.

• Attaque possible : blocs codés valides maisredondants.

Page 76: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Rateless peer-to-peer

• Les sources initialisent le générateur denombres aléatoires en fonction del’identifiant du nœud à qui elles donnent.

• Les blocs donnés à deux nœuds différentsont donc peu de chances d’être redondants.

• Cependant, les non sources ne produisentpas de nouveaux blocs codés.

Page 77: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Avalanche

• Les blocs sont des vecteurs d’éléments d’uncorps fini à 216 éléments (GF(216)) :– Construit sur les entiers modulo 2.– a supposée racine de X16+X15+…+1=0.– L’ensemble des puissances de a plus 0 forme un

corps de 216 éléments.– a16+a15+…+1=0 implique que tout puissance de

a s’écrit comme une somme de puissances de ad’exposant < 16 qu’on peut coder sur 16 bits.

Page 78: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Protocole

• Chaque nœud donne une combinaisonlinéaire des blocs qu’il possède :– S’il possède B1,…,Bk, il tire x1,…,xk aléatoires

dans GF(216) et donne x1B1+…+xkBk.– Si B1,…,Bk sont des combinaisons linéaires des

blocs originaux, alors x1B1+…+xkBk aussi.• Une fois n blocs récupérés, il faut inverser

une matrice n x n pour retrouver les blocsoriginaux.

Page 79: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

Voisins intéressants

• En connaissant les combinaisons linéairespossédées par les voisins, on peut déciderquels sont les voisins intéressants.

• Mieux :– un voisin génère une combinaison aléatoire de tous

ses blocs, calcule la combinaison des blocsoriginaux correspondante et la propose,

– si elle augmente le rang de la matrice en coursalors le nœud accepte le transfert,

– sinon le voisin est considéré comme inintéressantjusqu’à ce qu’il obtienne un nouveau bloc.

Page 80: Protocoles pair à pair - polytechnique€¦ · •Problème de base : –Récupérer la liste des fichiers dont le nom contient à la fois les mots A et B. •Gérer les collisions

• Th ? : Si un nœud possède n-1combinaisons linéaires indépendantes, alorsune combinaison linéaire aléatoire permetd’obtenir une matrice inversible avecprobabilité constante > 0.

• Intuition : La nouvelle combinaison a unecomposante nulle sur la normale àl’hyperplan des n-1des combinaisons déjàprésentes avec probabilité 1/216.

• Conséquence : tout nœud a qui possède unbloc récupéré d’un nœud b intéressepresque tout les autres nœuds (excepté a etb).