ricapitolando…. sistemi p2p puri sistemi uniformisistemi non uniformi koordeneighbor of neighbor...
TRANSCRIPT
Ricapitolando….Sistemi P2P puri
Sistemi Uniformi Sistemi Non uniformi
Koorde Neighbor 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.
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
Neighbor of Neighbor routing(NON) Greedy routing
u t
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
Neighbor of Neighbor routing(NON) Greedy routing
NON routing
u t
u t
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?
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
000
101
100
011
010
001
110
111
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
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
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?
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
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).
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
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?
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).
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
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
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’
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
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
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
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
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
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
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
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
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
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
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))
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.
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]
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