110 likes | 310 Views
Overlay network strutturate per applicazioni peer to peer. Lorenzo Castelli. Overlay network. Overlay network in un’applicazione peer to peer : la rete virtuale formata dai nodi dell’applicazione e dai loro riferimenti verso gli altri nodi. Organizzazioni classiche Centralizzata
E N D
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli
Overlay network Overlay network in un’applicazione peer to peer: la rete virtuale formata dai nodi dell’applicazione e dai loro riferimenti verso gli altri nodi. Organizzazioni classiche • Centralizzata • Non strutturata Meccanismi di ricerca classici • Client-Server • Broadcast (limitato)
Overlay network strutturate Reti decentralizzate ma strutturate, che forniscono garanzie sulla complessità della ricerca (generalmente O(logN)). Realizzano il key based routing: dato un’indirizzo, effettuare il routing verso il nodo attivo con indirizzo più vicino a tale indirizzo. Forniscono la base su cui costruire servizi distribuiti ad alto livello: • Distributed hash table (DHT) • Decentralized object location and routing (DOLR) • Multicast
Servizi di rete Servizi • Canali di comunicazione • Monitoring della rete Tecniche • Frammentazione e deframmentazione dei messaggi • Conferma di ricezione, time-out, sliding window e protocollo di connessione per comunicazioni affidabili • Stima round-trip time e loss rate • Tecniche anti-congestione Standard • UDP • TCP • SCTP
Elementi overlay network Spazio degli indirizzi • Ampio (es. 160 bit) • Sufficiente per hash crittografici Generazione indirizzi univoci • Universally unique identifier • A partire da indirizzo IP • Assegnati da un’organismo centrale Funzione di distanza • XOR • Sottrazione • Definizioni complesse Topologia della rete • Anello • Albero
Routing Condizione da garantire Dato un’indirizzo di destinazione D, qualunque nodo di indirizzo A è collegato ad almeno un nodo di indirizzo B tale che d(B,D) < d(A,D), oppure d(A,D) è minima. Key based routing Seguire i nodi via via più vicini fino alla destinazione. Complessità • O(N) • O(logN) • … Protocollo • Ricorsivo • Iterativo
DHT Dizionario distribuito ispirato alle tabelle hash classiche. Put • Calcolo di un’indirizzo univoco I a partire dalla chiave (funzione hash crittografica) • Inserimento della coppia chiave-valore nel nodo con indirizzo più vicino a I Get • Calcolo dell’indirizzo I a partire dalla chiave • Recupero del valore dal nodo con indirizzo più vicino a I Manutenzione • Scambio dei dati al join/leave dei nodi • Ridondanza per resistenza ai failure
DOLR Sistema di pubblicazione-localizzazione di risorse, in grado di fornire alte probabilità di ottimalità. Pubblicazione • Calcolo dell’indirizzo I della risorsa • Per ogni nodo presente sul percorso fra il publisher e la radice: • Inserimento di un puntatore al publisher associato alla risorsa Routing • Calcolo dell’indirizzo I della risorsa • Invio del messaggio verso la radice • Deviazione del messaggio non appena si incontra un nodo che contiene il puntatore al publisher
Multicast Organizzazione di canali di distribuzione di messaggi. Join-leave • Calcolo della radice del canale • Invio di un messaggio apposito alla radice • Nei nodi intermedi fra il mittente e la radice, gestione di una lista di “figli” in modo tale da creare-distruggere un ramo fra radice e mittente Invio in multicast • Calcolo della radice del canale • Invio del messaggio alla radice • Propagazione del messaggio dalla radice ai figli in modo ricorsivo, in modo da percorrere tutto l’albero
Progetto Realizzazione di una tabella hash distribuita. Chimera • Overlay network basata sugli algoritmi di Tapestry-Pastry. • Ottima (e al momento unica?) implementazione centrata sull’estensibilità e la flessibilità • Ancora estremamente prototipale! DHT realizzata • Fornisce un dizionario distribuito che associa stringhe a stringhe • Funzioni di Put, Get, e manutenzione del dizionario • Nessuna ridondanza (può essere costruita in uno strato superiore)