Estratto del documento

2020/2021

ARCHITETTURE DISTRIBUITE PER IL CLOUD –

RETI P2P - APPUNTI

CORSO LAUREA MAGISTRALE – CLOUD COMPUTING

Sommario

1. Introduzione .............................................................................................................................................. 5

2. Performance di un algoritmo ................................................................................................................... 8

2.1. Array lineari ....................................................................................................................................... 8

2.1.1. P=N ............................................................................................................................................ 8

2.1.2. Ordinare N numeri con meno di N processori ....................................................................... 10

2.2. Il Sorting nel modello a bit ............................................................................................................. 10

2.2.1. Modello lineare ....................................................................................................................... 10

2.2.2. due stringhe k bit con array lineare e un albero binario a k foglie ....................................... 10

2.3. Lower Bounds.................................................................................................................................. 11

3. Architetture ............................................................................................................................................. 12

3.1. Ipercubo .......................................................................................................................................... 12

3.2. Butterfly .......................................................................................................................................... 14

3.3. Wrapped Butterfly .......................................................................................................................... 15

3.4. Rete di Benes................................................................................................................................... 15

3.5. CCC (Cube-connected cycles) .......................................................................................................... 16

3.6. Shuffle exchange ............................................................................................................................. 16

3.7. De Bruijn graph ............................................................................................................................... 17

4. Reti P2P non strutturate ......................................................................................................................... 18

4.1. Caratteristiche di base delle reti di 1° e 2° generazioni ................................................................. 18

4.2. Reti P2P centralizzate ..................................................................................................................... 19

4.2.1. Esempio: protocollo Napster .................................................................................................. 20

4.3. Reti P2P Pure ................................................................................................................................... 20

4.3.1. Esempio Gnutella 0.4 .............................................................................................................. 20

4.4. Reti P2P ibride ................................................................................................................................. 21

4.4.1. Esempio Gnutella 0.6 .............................................................................................................. 21

4.4.2. FreeNet .................................................................................................................................... 22

4.5. Conclusioni ...................................................................................................................................... 23

5. Random Graphs, Small-Worlds and Scale-free Networks ..................................................................... 23

5.1. Motivazioni e proprietà .................................................................................................................. 23

5.1.1. Graph Theory .......................................................................................................................... 23

5.2. Random graph ................................................................................................................................. 24

5.2.1. Grafi casuali di Edos-Rényi...................................................................................................... 25

5.2.2. grafi casuali di Gilbert ............................................................................................................. 25

5.3. Regular Network ............................................................................................................................. 25

5.4. Small-world Networks .................................................................................................................... 25

5.4.1. The Miligram’s Experiment..................................................................................................... 25

5.4.2. Watt and Strogatz model ........................................................................................................ 25

5.4.3. Il modello di Kleinberg ............................................................................................................ 26

5.5. Scale-free Networks ........................................................................................................................ 26

5.5.1. Barabasi-Albert Model ............................................................................................................ 27

5.6. Peer to Peer Networks .................................................................................................................... 27

5.6.1. Symphony ................................................................................................................................ 27

6. Reti P2P strutturate ................................................................................................................................ 28

6.1. Distributed Hash Tables (DHT) ....................................................................................................... 28

6.2. Chord ............................................................................................................................................... 29

6.2.1. Routing .................................................................................................................................... 29

6.2.2. Algoritmo lookup .................................................................................................................... 30

6.2.3. Risultati ................................................................................................................................... 30

6.2.4. Join e Stabilization .................................................................................................................. 31

6.2.5. Failure and replication ............................................................................................................ 32

6.2.6. Leave........................................................................................................................................ 33

6.2.7. Realistic Analysis ..................................................................................................................... 33

6.2.8. Conclusioni .............................................................................................................................. 34

6.2.9. Sistemi P2P Uniformi .............................................................................................................. 34

6.2.10. Consistant Hashing .................................................................................................................. 35

6.3. Altre DHT ......................................................................................................................................... 35

6.3.1. Rete Tapestry .......................................................................................................................... 35

6.3.2. Rete CAN ................................................................................................................................. 35

6.3.3. Rete Viceroy ............................................................................................................................ 36

7. Lower Bound ........................................................................................................................................... 37

7.1. Lower Bound Sistemi uniformi ....................................................................................................... 37

8. Reti non uniformi .................................................................................................................................... 37

8.1. Grafi di De Bruijn ............................................................................................................................. 37

8.2. Koorde ............................................................................................................................................. 38

8.2.1. Koorde base 2.......................................................................................................................... 38

8.2.2. Koorde base k .......................................................................................................................... 40

Sistemi P2P

1. Introduzione

Sistema distribuito nel quale ogni nodo ha identiche capacità e responsabilità e tutte le comunicazione

sono potenzialmente simmetriche;

Non essendoci il server, il sistema è attivo finché un nodo qualunque è attivo, conoscere quanti nodi ci sono

è un problema, così come sapere dov’è situato un file.

Negli anni 90’ c’erano connessioni che non permettevano in nessun modo di condividere risorse e servizi,

siccome le risorse delle macchine erano molto basse. C’erano troppe risorse non utilizzate, è importante

usare sia le risorse lato server che lato client (c’è spazio su disco lato client non utilizzato) quindi si decide

di creare questi sistemi distribuiti che usano tutte le risorse non utilizzate precedentemente.

 Permettono di sfruttare risorse altrimenti non utilizzate

 Controllo decentralizzato (niente server, non puoi attaccare il sistema senza server, si deve

attaccare ogni nodo e se sono tanti è impossibile)

 Assenza di punti nevralgici (single point to failure)

 Si organizzano da soli (una volta messo su il sistema si organizza da solo se sono ben progettati e si

è considerato tutte le possibili dinamiche che possono accadere)

Tutto ciò che gli permette di comunicare ha un sovraccosto

Applicazioni

Il 90% delle volte su client lo spazio su disco vengono usati per File Sharing (condividiamo link, ma risorse

memorizzate nel loro responsabile, solo online sarà accessibile).

Altri utilizzi File storage system (entrati si fa il push di tutto ciò che c’è dentro e si può richiedere quel file

quando si vuole anche quando si è offline poiché risiederà sul nostro disco)

File system distribuito (file persistente da qualche parte nel sistema senza sapere con chi si sta gestendo

questa cosa), Grid Computing riguarda la computazione, dove ci sono degli slot di computazione che

possiamo andare a occupare, Redundant storage una copia di quello che viene memorizzato è disponibile a

qualche altro nodo, Anonymity system sistema anonimo di comunicazione (utilizzato magari per delle

aziende in cui gerarchie possono intimorire le persone coinvolte e quindi in forma anonima si ha più libertà

di pensiero), Collaboration system, Instant messaging system

Il problema è sapere in quale nodo si trova un certo file nella rete, poiché le risorse nell’architettura

server/client le risorse sono sul server.

Storia del P2P

ARPAnet era una rete P2P, l’introduzione del web ha spostato l’attenzione su strutture client/server

I primi sistemi P2P ICQ e Seti@Home

L’interesse per questo tipo di protocollo è aumentato verso il 2000 con i primi sistemi per file-sharing

(Napster, Gnutella)

Uno dei problemi iniziali era, ed è, il boot del sistema, gnutella trovò una soluzione conservando su un host

(come un server) i vari ip da poter poi andare ad accendere. Considerato come single point of failure visto

che buttato giù si potrebbe non accedere alla rete, abbiamo invece nei vari host una cache che tiene

memorizzati gli ultimi host contattati, cosi da poter usare sempre la rete.

Riposta back crowded, dove non vogliamo far capire da chi arriva la query, se vogliamo anonimia, il sistema

è meno efficiente, perché dobbiamo fare con la richiesta “un giro nella rete”.

P2P Scalabilità

Il lavoro richiesto a un determinato nodo nel sistema non deve crescere in funzione del numero di nodi del

sistema

Difficile che rimanga costante ma il sistema deve avere Overhead che cresce in maniera logaritmica

E sono nati così i cosiddetti protocolli P2P di terza generazione con DHTs (tabelle hash distribuite) (unica

cosa che ci basta per far funzionare un sistema P2P distribuito): Chord, Koorde, ecc..

Con DHT ad ogni risorsa e ad ogni nodo è associata una chiave (dovrebbe essere univoci visto la dimensione

dei bit utilizzati, non si controlla), lookup restituisce una risorsa ma se un nodo va via la risorsa viene

migrata ad un altro nodo e si deve rifare la lookup per capire dove è migrata la risorsa. Unica operazione

che ci serve è quella di lookup, data una chiave ci restituisce l’identità del responsabile (nodo) di quella

chiave.

Tutti i nodi condividono una tabella hash, ma non conoscono il responsabile di una determinata entry. Una

volta fatto lookup viene restituito il nodo e si va a chiedere al nodo restituito di fare la get della risorsa.

La rete è in continua evoluzione, ci sono nodi che si uniscono e vanno via in continuazione, le risorse si

spostano da una parte all’altra, ma la rete deve continuare a funzionare.

Rete di overlay, rete che si sovrappone a rete esistente e che aggiunge funzionalità, noi vogliamo una sola

funzionalità aggiuntiva, cioè la lookup.

Performance: abbiamo due obiettivi in contrapposizione, il primo è minimizzare il grado dei nodi, perché

più connessioni abbiamo e più traffico avremo (nodi che fanno join e leave), ma d’altro canto vorremmo

trovare velocemente una risorsa, quindi minimizzare il diametro (i passi da fare nel grafo per raggiungere

una risorsa), e per farlo dobbiamo aggiungere connessioni (nodi), ciò va in conflitto con il punto di prima, in

poche parole vorremo avere da un lato la rete sparsa e da un lato densa, dobbiamo trovare un

compromesso.

Queste condizioni sono necessarie ma non sufficienti, se abbiamo un diametro di 10, non è detto che

raggiungiamo in 10 passi la risorsa (solo con flooding, ma in una rete P2P non possiamo permettercela)

dobbiamo fornire un algoritmo che permette di raggiungere queste condizioni, si stabiliscono dei lower

bound. tabella di routing è la lista dei vicini (una

rete P2P deve essere sempre connessa,

quindi c’è almeno 1 vicino e al massimo n-1);

 Rete con grado 1 non abbiamo

scelta, anello, richiede n-1 passi e non

scalabile, non va bene

 grafo totalmente connesso,

possiamo raggiungere qualsiasi risorsa con

un passo, ma non è scalabile perché la

tabella dei vicini sa tutto di tutti mantiene n-

1 id

 La scelta migliore che possiamo

ottenere è quando il grado di nodi è

logaritmico in funzione del numero di nodi

del sistema e la lookup (diametro del

sistema) logaritmico anch’esso (Chord e altri

si trovano qui)

 Chord e altri non sono ottimali perché non si trovano nella curva del lower bound c’è ancora

qualcosa che dovrebbe essere migliorato. Ci sono alcune reti che si trovano su quella curva ma

hanno degli svantaggi che precludono il loro utilizzo come rete.

Classificazione un server per la lookup e poi comunicazione P2P pura (come

napster)

attraverso una gerarchia quando un web server non riesce a

gestire, si usano più web server per gestire le richieste, una volta

scoperto la risorsa si avvia una comunicazione P2P (server

sostituito da una gerarchia)

ciò che ci interessa nel corso, comunicazione e lookup P2P, ma ci

servono meccanismi di comunicazioni

Sistemi P2P che utilizzano SuperPeer: 3 tipi di comunicazioni

P2P tra i super peer, poi comunicazioni client/server tra

superpeeer e i peer gestiti dal superpeer, comunicazione P2P

tra i peer

P2P Classificazione in base all’applicazione fornite: File Sharing, Communication, Distribuited computing,

collaboration.

P2P proprietà desiderate: Scalabilità (crescita senza far aumentare l’overhead sui nodi), stabilità (il fatto

che entrano ed escono continuamente nodi non deve causare instabilità nella rete), performance (es se

facciamo richiesta di una risorsa vogliamo che arrivi in pochi millesimi di secondo), decentralizzazione

(impatterebbe sulla scalabilità se fosse centralizzato), load balancing (anche il bilanciamento del carico

impatta sulla scalabilità), topology awarness (conoscenza di quello che è la struttura della rete per rendere

il sistema più efficiente, vengono randomizzati le id dei nodi e vengono assegnate le risorse sulle id senza

considerare dove si trovano questi nodi, questo però impatta su altre proprietà come scalabilità e il

bilanciamento del carico), flessibilità (funzionare bene con qualunque carico).

P2P far fronte a fallimenti

Bisogna tener in considerazione che sono possibili informazioni e quindi il sistema deve auto-configurarsi

nel momento in cui c’è una perdita da parte di un nodo e dal punto di vista topologico devono essere

riprogettati e recuperati i link caduti e le risorse sul nodo possono essere recuperate solo se erano

duplicate, quindi tipicamente le risorse aggiunte al sistema vengono duplicate più volte in modo che è

improbabile perdere una

Anteprima
Vedrai una selezione di 9 pagine su 40
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 1 Architetture distribuite per il Cloud (Sistemi P2P) Pag. 2
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 6
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 11
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 16
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 21
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 26
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 31
Anteprima di 9 pagg. su 40.
Scarica il documento per vederlo tutto.
Architetture distribuite per il Cloud (Sistemi P2P) Pag. 36
1 su 40
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher marsan94 di informazioni apprese con la frequenza delle lezioni di Architetture distribuite per il Cloud e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Cordasco Gennaro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community