La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)"— Transcript della presentazione:

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

2 The Small World Phenomena The six degree of separation experiment S. Milgram [M67]. The six degree of separation experiment S. Milgram [M67]. The sociological experiment relied on social networks to transmit a letter from a person to unfamiliar targets by passing the letter only via acquaintances. Only a small number (around 6) of steps was needed. Recent work [DRW03], shows that, in the first steps the message was forwarded to a person P by using a guess on who P knew or, in other words, on his/her neighbors. Recent work [DRW03], shows that, in the first steps the message was forwarded to a person P by using a guess on who P knew or, in other words, on his/her neighbors.

3 Neighbor of Neighbor routing(NON) Sia d(x,y) una metrica per i nodi nella rete. Greedy routing 1. Supponiamo che il nostro messaggio si trovi sul nodo u t (destinazione). 2. Sia V = {v 1, v 2, …, v k } linsieme 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 sullanello in senso orario Può essere iterativo o ricorsivo

4 Neighbor of Neighbor routing(NON) Greedy routing ut

5 Neighbor of Neighbor routing(NON) 1. Supponiamo che il nostro messaggio si trovi sul nodo u t (destinazione). 2. Sia V = {v 1, v 2, …, v k } linsieme dei vicini del nodo u. 3. Per ogni 1 i k, siano w i1, w i2, …, w ik I vicinin di v i and sia W= { w ij 1 i, j k} linsieme dei vicini dei vicini di u. 4. Fra questi k 2 +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 = w ij, per qualche i e j, e inviamo il messaggio a z attraverso v i. 5.2 Se z V inviamo il messaggio al nodo z, altrimenti z = w ij, per qualche i e j, e inviamo il messaggio a v i. 2 fasi 1 fase

6 Neighbor of Neighbor routing(NON) Greedy routing NON routing ut ut

7 Neighbor of Neighbor routing(NON) Chord Sia n=2 b, per ogni 0 i < b, il nodo x è connesso ai nodi (x+2 i ) mod 2 b ; Sia n=2 b, per ogni 0 i < b, il nodo x è connesso ai nodi (x+2 i ) mod 2 b ; Il grado è b; Il grado è b; Il diametro è b; Il diametro è b; APL è b/2; APL è b/2; R-Chord n=2 b [MNW04] Sia n=2 b, per ogni 0 i < b, sia r x (i) un intero scelto in maniera casuale dallintervallo [0,2 i ), il nodo x è connesso ai nodi (x+2 i +r x (i)) mod 2 b ; Sia n=2 b, per ogni 0 i < b, sia r x (i) un intero scelto in maniera casuale dallintervallo [0,2 i ), il nodo x è connesso ai nodi (x+2 i +r x (i)) mod 2 b ; Il grado è b; Il grado è b; E un sistema uniforme?

8 Neighbor of Neighbor routing(NON) R-Chord n=2 b [MNW04] Sia n= 2 b, per ogni 0 i < b, sia r x (i) un intero scelto in maniera casuale dallintervallo [0,2 i ), il nodo x è connesso ai nodi (x+2 i +r x (i)) mod 2 b ; Sia n= 2 b, per ogni 0 i < b, sia r x (i) un intero scelto in maniera casuale dallintervallo [0,2 i ), il nodo x è connesso ai nodi (x+2 i +r x (i)) mod 2 b ; Il grado è b; Il grado è b; x2i2i 2 i+1 y 2i2i R-Chord non è uniforme

9 000 101 100 011 010 001 110 111

10 Neighbor of Neighbor routing(NON) Abbiamo 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: 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, lalgoritmo greedy è ottimale, quindi NoN routing non ci da nessun vantaggio

11 Neighbor of Neighbor routing(NON) Quali sono le prestazioni del NoN routing con Chord? s t d(s,t)=41 32 16 8 4 32 16 8 4 32 16 8 4 s t d(s,t)=41 36 18 12 5 40 29 11 7

12 Neighbor of Neighbor routing(NON) Abbiamo 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: 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?

13 Neighbor of Neighbor routing(NON) Denotiamo con (n) laverage path length Teorema (n) = (log n) hops for greedy routing in R-Chord (n) = (log n) hops for greedy routing in R-ChordProva Bisogna mostrare che (n) = O(log n) e (n) = (log n) 1) (n) = O(log n) Consideriamo tutte le possibili topologie che derivano da R-Chord. Mostriamo che a ogni singolo hop, se la distanza fra il nodo corrente e il nodo destinazione è d, dopo il jump la distanza è minore di 3/4d. x t d(x,t)=2 p+1 -2

14 Neighbor of Neighbor routing(NON) x t d(x,t)=2 p+1 -2 Consideriamo il caso peggiore Il salto (p+1) che può essere compreso fra [2 p,2 p+1 ) è lungo 2 p+1 -1. In questo caso il salto va oltre la destinazione è quindi non può essere effettuato. Il salto (p+1) che può essere compreso fra [2 p,2 p+1 ) è lungo 2 p+1 -1. In questo caso il salto va oltre la destinazione è quindi non può essere effettuato. Il salto (p) che può essere compreso fra [2 p-1,2 p ) è lungo 2 p-1. Il salto (p) che può essere compreso fra [2 p-1,2 p ) è lungo 2 p-1. La distanza fra x e t si riduce da d=2 p+1 -2 a 2 p+1 -2 - 2 p-1. La distanza fra x e t si riduce da d=2 p+1 -2 a 2 p+1 -2 - 2 p-1. Ma 2 p+1 -2 - 2 p-1 = 3*2 p-1 -2 = ¾ 2 p+1 -2 < ¾ d. Ma 2 p+1 -2 - 2 p-1 = 3*2 p-1 -2 = ¾ 2 p+1 -2 < ¾ d. Ad ogni passo nel caso peggiore passiamo da una distanza d a una distanza ¾ d. Quindi il numero dei passi totale è minore di log ¾ d. Ad ogni passo nel caso peggiore passiamo da una distanza d a una distanza ¾ d. Quindi il numero dei passi totale è minore di log ¾ d. Nel caso peggiore d=n-1. Quindi (n) < log ¾ (n-1) = O(log n). Nel caso peggiore d=n-1. Quindi (n) < log ¾ (n-1) = O(log n).

15 Neighbor of Neighbor routing(NON) Denotiamo con (n) laverage path length Teorema (n) = (log n) hops for greedy routing in R-Chord (n) = (log n) hops for greedy routing in R-ChordProva Bisogna mostrare che (n) = O(log n) e (n) = (log n) 2) (n) = (log n) ….. In pratica in base ai risultati di numerose simulazioni R-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

16 Neighbor of Neighbor routing(NON) Abbiamo 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: 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?

17 Neighbor of Neighbor routing(NON) Denotiamo con (n) laverage path length Teorema (n) = (log n / log (log n)) hops for NON routing in R- Chord (n) = (log n / log (log n)) hops for NON routing in R- ChordProva Bisogna mostrare che (n) = O(log n / log (log n)) e (n) = (log n / log (log n)) 1) (n) = (log n / log (log n)) Labbiamo già dimostrato nella prima lezione (slide 16).

18 Neighbor of Neighbor routing(NON) Denotiamo con (n) laverage path length Teorema (n) = (log n / log (log n)) hops for NON routing in R- Chord (n) = (log n / log (log n)) hops for NON routing in R- ChordProva 2) (n) = O(log n / log (log n)) Consideriamo un nodo s che intende spedire un messaggio a un nodo t a distanza d(s,t)=d. s t d(s,t)=d Consideriamo il ring pieno

19 Neighbor of Neighbor routing(NON) 2) (n) = O(log n / log (log n)) Sia p un intero tale che 2 p d < 2 p+1 Consideriamo due casi : 1.p (log n) / log (log n) In questo caso bastano O(p) jump per raggiungere la destinazione anche se si usa solo lalgoritmo greedy. Cioè avvicinandoci di ¾ ad ogni passo. Il numero di passi infatti è log ¾ d < log ¾ 2 ((log n) / log (log n))+1 = O((log n) / log (log n)). s t d 2p2p 2 p+1

20 Neighbor of Neighbor routing(NON) 2) (n) = O(log n / log (log n)) Sia p un intero tale che 2 p d < 2 p+1 Consideriamo due casi : 2.p > (log n) / log (log n) Sia I = (d-d,d] dove d= Ovviamente | I |=d s t d 2p2p 2 p+1 I d-d

21 Neighbor of Neighbor routing(NON) 2) (n) = O(log n / log (log n)) Quanti vicini di s ci sono fra s e t? I primo vicino si trova fra 2 0 a 2 1 -1 Il secondo si trova fra 2 1 a 2 2 -1 Il terzo si trova fra 2 2 a 2 3 -1 Il p-esimo si trova fra 2 p-1 a 2 p -1 Poichè 2 p è minore di d, fra s e t ci sono almeno p vicini. Sia s i liesimo vicino di s, e sia S={s 1, s 2, …, s p } linsieme dei primi p vicini di s. Allora |S|=p. s t d 2p2p 2 p+1 I 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=

22 Neighbor of Neighbor routing(NON) 2) (n) = O(log n / log (log n)) Denotiamo con J k (s i )=s i +2 k +r s i (k) il k-esimo jump/vicino di s i. Il nostro obiettivo è calcolare la probabilità che almeno uno dei vicini dei vicini di s abbia un jump in I. P=Pr[ J k (s i ) I per qualche 1 i p e 0 k < b ] s t d 2p2p 2 p+1 I 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p I primi p vicini Un jump qualsiasi n=2 b

23 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova Consideriamo il generico vicino di s, s i. Denotiamo con d i la distanza fra s i e t. Sia p i tale che 2 p i d i < 2 p i +1 Due casi: 1.d-ds i +2 p i 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p s d 2p2p 2 p+1 I s t d 2pi2pi 2 p i +1 I sisi didididi d-d pippip diddid

24 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 1.d-ds i +2 p i Lunico jump di s i che può cadere in I è il jump (p i +1)- esimo, infatti il jump (p i +1)-esimo [s i +2 p i, s i +2 p i +1 ). In particolare il jump (p i +1)-esimo appartiene a I con probabilità | I |/2 p i = d/2 p i d/2 p s d 2p2p 2 p+1 I s t d 2pi2pi 2 p i +1 I sisi didididi d-d pippip 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p

25 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 2.d-d<s i +2 p i s d 2p2p 2 p+1 I st d 2pi2pi 2 p i +1 I sisi didididi d-d 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p

26 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 2.d-d<s i +2 p i In questo caso sia il jump p-esimo che il jump (p+1)-esimo possono cadere in I. Sia I = A B dove A=(d-d, s i +2 p i ) e B=[s i +2 p i,d] Ovviamente |A|+|B|=d. st d 2pi2pi 2 p i +1 I sisi didididi d-d 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p AB

27 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 2.d-d<2 p i Sia Q levento il p i -esimo jump di s i cade in I Sia Q levento il p i -esimo jump di s i cade in I Sia R levento il (p i +1)-esimo jump di s i cade in I Sia R levento il (p i +1)-esimo jump di s i cade in I Siamo interessati a calcolare la Pr[Q R]=Pr[Q]+Pr[R]-Pr[Q R] st d 2pi2pi 2 p i +1 I sisi didididi d-d 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p AB QR Q R

28 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 2.d-d<2 p i Caso 2.a |B|>2 p i -1 Valutimo solo Pr[R] Pr[Q R] Pr[R]=|B|/2 p i >1/2>d/2 p st d 2pi2pi 2 p i +1 I sisi didididi d-d 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p AB QR Q R

29 Neighbor of Neighbor routing(NON) Claim Per ogni nodo s i S, la probabilità che un vicino di s i I è almeno d/2 p. P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p Prova 2.d-d<2 p i Caso 2.b |B|2 p i -1 Pr[Q R]= Pr[Q]+Pr[R]-Pr[Q R] = st d 2pi2pi 2 p i +1 I sisi didididi d-d 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p d i d, d i d, p i p AB QR Q R |B|2 p i -1

30 Neighbor of Neighbor routing(NON) Dove eravamo rimasti? Il nostro obiettivo è calcolare la probabilità che almeno uno dei vicini dei vicini di s abbia un jump in I. P=Pr[ J k (s i ) I per qualche 1 i p e 0 k < b ] 2 p d < 2 p+1 p > (log n) / log (log n) I = (d-d, d] d=|S|=p P=Pr[ J k (s i ) I per qualche 0 k < b ] d/2 p s d 2p2p 2 p+1 I P = 1-e -1 Pd/2 p d2 p p > (log n) / log (log n) (1-1/x) x e -1

31 Neighbor of Neighbor routing(NON) Con probabilità P= Con probabilità P=1-e -1 in due hop riduciamo lintrvallo 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 lintrvallo 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 è calcolare la probabilità che almeno uno dei vicini dei vicini di s abbia un jump in I. P=Pr[ J k (s i ) I per qualche 1 i p e 0 k < b ] p (log n) / log (log n) O(log n / (log log n))

32 Neighbor of Neighbor routing(NON) Nel caso in cui il ring non è pieno? Ridurre la distanza da 2 b -1 a 2 b /n impiega O(log n / log log n) passi. Quanti nodi ci sono in 2 b /n identificatori? Utilizzando il Chernoff bound si può dimostrare che in 2 b /n identificatori ci sono al più O(log n / log log n) nodi WHP. Quindi anche usando solo i successori in totale si effettuano O(log n / log log n) passi.

33 Neighbor of Neighbor routing(NON) Cost of Neighbor of Neighbor lists: Memory: O(log 2 n) 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]

34 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


Scaricare ppt "Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)"

Presentazioni simili


Annunci Google