ricapitolando…. sistemi p2p puri sistemi uniformisistemi non uniformi koordeneighbor of neighbor...

34
Ricapitolando…. Sistemi P2P puri Sistemi Uniformi Sistemi Non uniformi Koorde Neighbor of Neighbor routing (NON)

Upload: liberatore-simonetti

Post on 01-May-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Ricapitolando….Sistemi P2P puri

Sistemi Uniformi Sistemi Non uniformi

Koorde Neighbor of Neighbor routing (NON)

Page 2: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

The Small World PhenomenaThe Small World Phenomena The “six degree of separation” experiment S. Milgram The “six degree of separation” experiment S. Milgram

[M67].[M67].The sociological experiment relied on social networks to transmit a The sociological experiment relied on social networks to transmit a letter from a person to unfamiliar targets by passing the letter only letter from a person to unfamiliar targets by passing the letter only via acquaintances. via acquaintances.

Only a small number (around 6) of steps was needed.Only a small number (around 6) of steps was needed.

Recent work [DRW03], shows that, in the first steps Recent work [DRW03], shows that, in the first steps the message was forwarded to a person P by using a the message was forwarded to a person P by using a guess on who P knew or, in other words, on his/her guess on who P knew or, in other words, on his/her neighbors. neighbors.

Page 3: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Sia d(x,y) una metrica per i nodi nella rete.

Greedy routing1. Supponiamo che il nostro messaggio si trovi sul nodo u ≠

t (destinazione).2. Sia V = {v1, v2, …, vk} l’insieme dei vicini del nodo u.3. Fra questi k nodi, supponiamo sia z il più vicino alla

destinazinone (rispetto alla metrica d).4. Inviamo il messaggio al nodo z.

Nel nostro caso è la distanza sull’anello in

senso orario

Può essere iterativo o ricorsivo

Page 4: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON) Greedy routing

u t

Page 5: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

1. Supponiamo che il nostro messaggio si trovi sul nodo u ≠ t (destinazione).

2. Sia V = {v1, v2, …, vk} l’insieme dei vicini del nodo u.3. Per ogni 1 ≤ i ≤ k, siano wi1, wi2, …, wik I vicinin di vi and sia

W= { wij 1 ≤ i, j ≤ k} l’insieme dei vicini dei vicini di u.4. Fra questi k2+k nodi, supponiamo sia z il più vicino alla

destinazinone (rispetto alla metrica d).5.1 Se z V inviamo il messaggio al nodo z, altrimenti z = wij,

per qualche i e j, e inviamo il messaggio a z attraverso vi.

5.2 Se z V inviamo il messaggio al nodo z, altrimenti z = wij, per qualche i e j, e inviamo il messaggio a vi.

2 fasi

1 fase

Page 6: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON) Greedy routing

NON routing

u t

u t

Page 7: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ChordChord Sia n=2Sia n=2bb, per ogni 0 , per ogni 0 ≤ i < b, il nodo x è connesso ai ≤ i < b, il nodo x è connesso ai

nodi (nodi (x+2x+2ii) mod 2) mod 2bb;; Il grado è b;Il grado è b;

Il diametro è b;Il diametro è b;

APL è b/2; APL è b/2;

R-Chord n=2R-Chord n=2b b [MNW04][MNW04] Sia n=2Sia n=2bb, per ogni 0 , per ogni 0 ≤ i < b, sia≤ i < b, sia r rxx(i) un intero scelto (i) un intero scelto

in maniera casuale dall’intervallo [0,2in maniera casuale dall’intervallo [0,2ii), il ), il nodo x è nodo x è connesso ai nodi (connesso ai nodi (x+2x+2ii+r+rxx(i)) mod 2(i)) mod 2bb;;

Il grado è b;Il grado è b;

E’ un sistema uniforme?

Page 8: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

R-Chord n=2R-Chord n=2b b [MNW04][MNW04] Sia n= 2Sia n= 2bb, per ogni 0 , per ogni 0 ≤ i < b, sia≤ i < b, sia r rxx(i) un intero (i) un intero

scelto in maniera casuale dall’intervallo [0,2scelto in maniera casuale dall’intervallo [0,2 ii), ), il il nodo x è connesso ai nodi (nodo x è connesso ai nodi (x+2x+2ii+r+rxx(i)) mod (i)) mod

22bb;; Il grado è b;Il grado è b;

x 2i 2i+1

y 2i 2i+1

R-Chord non è uniforme

Page 9: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

000

101

100

011

010

001

110

111

Page 10: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Abbiamo vistoAbbiamo visto Una nuova strategia di routing (NoN routing)Una nuova strategia di routing (NoN routing) Una nuova topologia (R-Chord)Una nuova topologia (R-Chord)

Ci poniamo delle domande:Ci poniamo delle domande: Quali sono le prestazioni del NoN routing con Chord?Quali sono le prestazioni del NoN routing con Chord? Quali sono le prestazioni del greedy routing con R-Chord?Quali sono le prestazioni del greedy routing con R-Chord? Quali sono le prestazioni del NoN routing con R-Chord?Quali sono le prestazioni del NoN routing con R-Chord?

Chord è uniforme, l’algoritmo greedy è ottimale, quindi NoN routing non ci

da nessun vantaggio

Page 11: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)Quali sono le prestazioni del NoN routing con Chord?Quali sono le prestazioni del NoN routing con Chord?

s td(s,t)=41

32

16

84

32

16

84

32

16

84

s td(s,t)=41

36

18

125

29

117

Page 12: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Abbiamo vistoAbbiamo visto Una nuova strategia di routing (NoN routing)Una nuova strategia di routing (NoN routing) Una nuova topologia (R-Chord)Una nuova topologia (R-Chord)

Ci poniamo delle domande:Ci poniamo delle domande: Quali sono le prestazioni del NoN routing con Chord?Quali sono le prestazioni del NoN routing con Chord? Quali sono le prestazioni del greedy routing con R-Chord?Quali sono le prestazioni del greedy routing con R-Chord? Quali sono le prestazioni del NoN routing con R-Chord?Quali sono le prestazioni del NoN routing con R-Chord?

Page 13: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Denotiamo con Denotiamo con (n) l’average path length (n) l’average path length Teorema Teorema

(n) = (n) = (log n) hops for greedy routing in R-Chord(log n) hops for greedy routing in R-Chord

ProvaProva

Bisogna mostrare che Bisogna mostrare che (n) = O(log n) e (n) = O(log n) e (n) = (n) = (log n)(log n)

1) 1) (n) = O(log n) (n) = O(log n)

Consideriamo tutte le possibili topologie che derivano da Consideriamo tutte le possibili topologie che derivano da R-Chord. Mostriamo che a ogni singolo hop, se la R-Chord. Mostriamo che a ogni singolo hop, se la distanza fra il nodo corrente e il nodo destinazione è d, distanza fra il nodo corrente e il nodo destinazione è d, dopo il jump la distanza è minore di 3/4d.dopo il jump la distanza è minore di 3/4d.

x td(x,t)=2p+1-2

Page 14: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

x td(x,t)=2p+1-2

Consideriamo il caso peggiore Consideriamo il caso peggiore Il salto (p+1) che può essere compreso fra [2Il salto (p+1) che può essere compreso fra [2pp,2,2p+1p+1) è lungo 2) è lungo 2p+1p+1-1. In -1. In

questo caso il salto va oltre la destinazione è quindi non può essere questo caso il salto va oltre la destinazione è quindi non può essere effettuato.effettuato.

Il salto (p) che può essere compreso fra [2Il salto (p) che può essere compreso fra [2p-1p-1,2,2pp) è lungo 2) è lungo 2p-1p-1.. La distanza fra x e t si riduce da d=2La distanza fra x e t si riduce da d=2p+1p+1-2 a 2-2 a 2p+1p+1-2 - 2-2 - 2p-1p-1.. Ma 2Ma 2p+1p+1-2 - 2-2 - 2p-1p-1 = 3*2 = 3*2p-1p-1-2 = ¾ 2-2 = ¾ 2p+1p+1-2 < ¾ d.-2 < ¾ d. Ad ogni passo nel caso peggiore passiamo da una distanza d’ a una Ad ogni passo nel caso peggiore passiamo da una distanza d’ a una

distanza ¾ d’. Quindi il numero dei passi totale è minore di logdistanza ¾ d’. Quindi il numero dei passi totale è minore di log¾¾ d. d.

Nel caso peggiore d=n-1. Quindi Nel caso peggiore d=n-1. Quindi (n) < log(n) < log¾¾ (n-1) = O(log n). (n-1) = O(log n).

Page 15: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)Denotiamo con Denotiamo con (n) l’average path length (n) l’average path length

Teorema Teorema

(n) = (n) = (log n) hops for greedy routing in R-Chord(log n) hops for greedy routing in R-Chord

ProvaProva

Bisogna mostrare che Bisogna mostrare che (n) = O(log n) e (n) = O(log n) e (n) = (n) = (log n)(log n)

2) 2) (n) = (n) = (log n) (log n)

……....

In pratica in base ai risultati di numerose simulazioniIn pratica in base ai risultati di numerose simulazioni

R-Chord si comporta esattamente allo stesso modo di ChordR-Chord si comporta esattamente allo stesso modo di Chord

APL = b/2 = (log n)/2. APL = b/2 = (log n)/2.

Questa prova ve la risparmio

Page 16: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Abbiamo vistoAbbiamo visto Una nuova strategia di routing (NoN routing)Una nuova strategia di routing (NoN routing) Una nuova topologia (R-Chord)Una nuova topologia (R-Chord)

Ci poniamo delle domande:Ci poniamo delle domande: Quali sono le prestazioni del NoN routing con Chord?Quali sono le prestazioni del NoN routing con Chord? Quali sono le prestazioni del greedy routing con R-Chord?Quali sono le prestazioni del greedy routing con R-Chord? Quali sono le prestazioni del NoN routing con R-Chord?Quali sono le prestazioni del NoN routing con R-Chord?

Page 17: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Denotiamo con Denotiamo con (n) l’average path length (n) l’average path length Teorema Teorema

(n) = (n) = (log n / log (log n)) hops for NON routing in R-(log n / log (log n)) hops for NON routing in R-ChordChord

ProvaProva

Bisogna mostrare che Bisogna mostrare che (n) = O(log n / log (log n)) e (n) = O(log n / log (log n)) e (n) (n) = = (log n / log (log n)) (log n / log (log n))

1) 1) (n) = (n) = (log n / log (log n)) (log n / log (log n))

L’abbiamo già dimostrato nella prima lezione (slide 16).L’abbiamo già dimostrato nella prima lezione (slide 16).

Page 18: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)Denotiamo con Denotiamo con (n) l’average path length (n) l’average path length

Teorema Teorema

(n) = (n) = (log n / log (log n)) hops for NON routing in R-Chord(log n / log (log n)) hops for NON routing in R-Chord

ProvaProva

2) 2) (n) = O(log n / log (log n)) (n) = O(log n / log (log n))

Consideriamo un nodo s che intende spedire un messaggio a un Consideriamo un nodo s che intende spedire un messaggio a un nodo t a distanza d(s,t)=d.nodo t a distanza d(s,t)=d.

s td(s,t)=d

Consideriamo il ring pieno

Page 19: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)2) 2) (n) = O(log n / log (log n))(n) = O(log n / log (log n))

Sia p un intero tale che 2Sia p un intero tale che 2pp ≤ d < 2≤ d < 2p+1p+1

Consideriamo due casi :Consideriamo due casi :

1.1. pp ≤ (log n) / log (log n)≤ (log n) / log (log n)

In questo caso bastano O(p) jump per raggiungere la In questo caso bastano O(p) jump per raggiungere la destinazione anche se si usa solo l’algoritmo greedy.destinazione anche se si usa solo l’algoritmo greedy.

Cioè avvicinandoci di ¾ ad ogni passo.Cioè avvicinandoci di ¾ ad ogni passo.

Il numero di passi infatti è Il numero di passi infatti è

loglog¾ ¾ d < logd < log¾ ¾ 22((log n) / log (log n))+1((log n) / log (log n))+1 = O((log n) / log (log n)). = O((log n) / log (log n)).

s td

2p 2p+1

dp log

Page 20: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)2) 2) (n) = O(log n / log (log n))(n) = O(log n / log (log n))

Sia p un intero tale che 2Sia p un intero tale che 2pp ≤ d < 2≤ d < 2p+1p+1

Consideriamo due casi :Consideriamo due casi :

2.2. pp > (log n) / log (log n)> (log n) / log (log n)

Sia Sia II = (d-d’,d] dove d’= = (d-d’,d] dove d’=

Ovviamente |Ovviamente |II|=d’|=d’

s td

2p 2p+1

n

nd

nnd

log

loglog

logloglog

I

d-d’

Page 21: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)2) 2) (n) = O(log n / log (log n))(n) = O(log n / log (log n))

Quanti vicini di s ci sono fra s e t?Quanti vicini di s ci sono fra s e t?

I primo vicino si trova fra 2I primo vicino si trova fra 200 a 2 a 21 1 -1-1

Il secondo si trova fra 2Il secondo si trova fra 211 a 2 a 22 2 -1-1

Il terzo si trova fra 2Il terzo si trova fra 222 a 2 a 23 3 -1-1

Il p-esimo si trova fra 2Il p-esimo si trova fra 2p-1p-1 a 2 a 2p p -1-1

Poichè 2Poichè 2p p è minore di d, fra s e t ci sono almeno p vicini. è minore di d, fra s e t ci sono almeno p vicini.

Sia sSia sii l’iesimo vicino di s, e sia S={s l’iesimo vicino di s, e sia S={s11, s, s22, …, s, …, spp} l’insieme dei primi p } l’insieme dei primi p

vicini di s. Allora |S|=p.vicini di s. Allora |S|=p.

s td

2p 2p+1

I

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

n

nd

log

loglog

Page 22: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)2) 2) (n) = O(log n / log (log n))(n) = O(log n / log (log n))

Denotiamo con JDenotiamo con Jkk(s(sii)=s)=sii+2+2kk+r+rssii(k) il k-esimo(k) il k-esimo

jump/vicino di sjump/vicino di sii..

Il nostro obiettivo è calcolare la probabilità Il nostro obiettivo è calcolare la probabilità

che almeno uno dei vicini dei vicini di s abbia un jump in che almeno uno dei vicini dei vicini di s abbia un jump in I.I.

P=Pr[P=Pr[JJkk(s(sii))I I per qualche 1 ≤ i ≤ p e 0 ≤ k < bper qualche 1 ≤ i ≤ p e 0 ≤ k < b]]

s td

2p 2p+1

I

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=p

n

nd

log

loglog

I primi p vicini Un jump qualsiasi n=2b

Page 23: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

Consideriamo il generico vicino di s, sConsideriamo il generico vicino di s, s ii..

Denotiamo con dDenotiamo con dii la distanza fra s la distanza fra s ii e t. e t.

Sia pSia pii tale che 2 tale che 2ppii ≤ ≤ ddi i < 2< 2ppii+1+1

Due casi:Due casi:

1.1. d-d’≥d-d’≥ssii+2+2ppii

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=p

n

nd

log

loglog

sd

2p 2p+1

I

s td

2pi 2pi+1

Isi

ddii

d-d’

pi≤p

di≤d

Page 24: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

1.1. d-d’≥d-d’≥ssii+2+2ppii

L’unico jump di sL’unico jump di sii che può cadere in che può cadere in II è il jump (p è il jump (pii+1)-esimo, infatti il +1)-esimo, infatti il

jump (pjump (pii+1)-esimo +1)-esimo [s[sii+2+2ppii, s, sii+2+2ppii+1+1).).

In particolare il jump (pIn particolare il jump (pii+1)-esimo appartiene a +1)-esimo appartiene a I I con probabilità |con probabilità |II|/2|/2ppii = =

d’/2d’/2ppi i ≥≥ d’/2d’/2pp

sd

2p 2p+1

I

s td

2pi 2pi+1

Isi

ddii

d-d’

pi≤p

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

Page 25: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

2.2. d-d’<d-d’<ssii+2+2ppii

sd

2p 2p+1

I

s t

d

2pi 2pi+1

Isi

ddii

d-d’

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

Page 26: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

2.2. d-d’<d-d’<ssii+2+2ppii

In questo caso sia il jump p-esimo che il jump (p+1)-esimo In questo caso sia il jump p-esimo che il jump (p+1)-esimo possono cadere in possono cadere in I.I.

Sia Sia I = A I = A B B dove A=(d-d’, sdove A=(d-d’, sii+2+2ppii) e B=[s) e B=[sii+2+2ppii,d],d]

Ovviamente |A|+|B|=d’.Ovviamente |A|+|B|=d’.

s t

d

2pi 2pi+1

Isi

ddii

d-d’

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

A B

Page 27: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

2.2. d-d’<d-d’<22ppii

Sia Sia QQ l’evento “il p l’evento “il pii-esimo jump di s-esimo jump di sii cade in cade in II””

Sia Sia RR l’evento “il (p l’evento “il (pii+1)-esimo jump di s+1)-esimo jump di sii cade in cade in II””

Siamo interessati a calcolare la Pr[QSiamo interessati a calcolare la Pr[QR]=Pr[Q]+Pr[R]-Pr[QR]=Pr[Q]+Pr[R]-Pr[QR]R]

s t

d

2pi 2pi+1

Isi

ddii

d-d’

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

A B

Q RQR

Page 28: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

2.2. d-d’<d-d’<22ppii

Caso 2.a |B|>2Caso 2.a |B|>2ppii-1-1

Valutimo solo Pr[R] Valutimo solo Pr[R] ≤ Pr[Q≤ Pr[QR]R]

Pr[R]=|B|/Pr[R]=|B|/22ppii>1/2>d’/2>1/2>d’/2pp

s t

d

2pi 2pi+1

Isi

ddii

d-d’

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

A B

Q RQR

2

1

log

loglog 4,n per

log

loglog

2

'

n

n

n

ndp

Page 29: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)ClaimClaim

Per ogni nodo sPer ogni nodo sii S, la probabilità che un S, la probabilità che un

vicino di svicino di si i I I è almeno d’/2è almeno d’/2pp..

P’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

ProvaProva

2.2. d-d’<d-d’<22ppii

Caso 2.b |B|Caso 2.b |B|≤≤22ppii-1-1

Pr[QPr[QR]= R]= Pr[Q]+Pr[R]-Pr[QPr[Q]+Pr[R]-Pr[QR]R] = =

s t

d

2pi 2pi+1

Isi

ddii

d-d’

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pddii≤d, ≤d, pi≤p

n

nd

log

loglog

A B

Q RQR

pppppppppppppp

ddBABABABAABABABAiiiiiiiiiiiii 2

'

2

'

221

2222222222 1111

|B||B|≤≤22ppii-1-1

Page 30: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)Dove eravamo rimasti?Dove eravamo rimasti?

Il nostro obiettivo èIl nostro obiettivo è

calcolare la probabilità calcolare la probabilità

che almeno uno dei viciniche almeno uno dei vicini

dei vicini di s abbia un jump dei vicini di s abbia un jump

in in I.I.

P=Pr[P=Pr[JJkk(s(sii))I I per qualche 1 ≤ i ≤ p e 0 ≤ k < bper qualche 1 ≤ i ≤ p e 0 ≤ k < b]]

22pp ≤ d < 2≤ d < 2p+1p+1

p > (log n) / log (log n)p > (log n) / log (log n)II = (d-d’, d] = (d-d’, d]d’=d’=

|S|=p|S|=pP’=Pr[P’=Pr[JJkk(s(sii))I I per qualche 0 ≤ k < bper qualche 0 ≤ k < b] ≥ ] ≥ d’/2d’/2pp

n

nd

log

loglog

sd

2p 2p+1

I

1loglog

log

log

loglog1

log

loglog1

log2

loglog1

2

'1)'1(1

en

n

n

n

n

nddPP

n

np

p

p

S

p

S

P = 1-e-1

P’≥d’/2p

d≥2p

p > (log n) / log (log p > (log n) / log (log n)n)

(1-1/x)(1-1/x)xx≤e≤e-1-1

Page 31: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)Con probabilità P=Con probabilità P=1-e-1 in due hop riduciamo l’intrvallo da d a d * (log log n) / log n

Poichè Poichè 1-e-1 > 0.5 funziona in media almeno una volta su due;

In media con 2*2= 4 hop riduciamo l’intrvallo da d a d * (log log n) / log n.

Quanti hop ci servono

4 log log n / (log log n)d + O(log n / (log log n))

d al massimo n-1

4 log log n / (log log n) n-1 + O(log n / (log log n))

Il nostro obiettivo èIl nostro obiettivo è

calcolare la probabilità calcolare la probabilità

che almeno uno dei viciniche almeno uno dei vicini

dei vicini di s abbia un jump dei vicini di s abbia un jump

in in I.I.

P=Pr[P=Pr[JJkk(s(sii))I I per qualche 1 ≤ i ≤ p e 0 ≤ k < bper qualche 1 ≤ i ≤ p e 0 ≤ k < b]]

p p ≤≤ (log n) / log (log (log n) / log (log n)n)

O(log n / (log log n))

Page 32: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Nel caso in cui il ring non è pieno?Nel caso in cui il ring non è pieno?

Ridurre la distanza da 2Ridurre la distanza da 2bb-1 a 2-1 a 2bb/n impiega /n impiega O(log n / log O(log n / log log n) passi.log n) passi.

Quanti nodi ci sono in Quanti nodi ci sono in 22bb/n identificatori?/n identificatori?

Utilizzando il Chernoff bound si può dimostrare che in Utilizzando il Chernoff bound si può dimostrare che in

22bb/n identificatori ci sono al più /n identificatori ci sono al più O(log n / log log n) nodiO(log n / log log n) nodi

WHP.WHP.

Quindi anche usando solo i successori in totale si Quindi anche usando solo i successori in totale si effettuano effettuano O(log n / log log n) passi.O(log n / log log n) passi.

Page 33: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Cost of Neighbor of Neighbor lists: Memory: O(log2n) Maintenance: O(log n) must be updated Neighbor lists should be maintained (open

connection, pinging, etc.)

“In practice, a Chord ring will never be in a stable state; instead, joins and departures will occur continuously, interleaved with the stabilization algorithm. The ring will not have time to stabilize before new changes happen.” [Chord]

Page 34: Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)

Neighbor of Neighbor routing(NON)

Vantaggi: Algoritmo di routing locale Algoritmo di routing semplice Efficiente Non è necessaria la stima di log n

Svantaggi Come mantenere la lista dei vicini dei vicini? No fast bootstrap