RETI PEER-TO-PEER. Reti di Calcolatori. Applicazioni di Rete avanzate: Reti di Calcolatori. Sistemi Peer to Peer Griglie Computazionali



Documenti analoghi
Reti di Calcolatori GRIGLIE COMPUTAZIONALI

GRIGLIE COMPUTAZIONALI

Contesto: Peer to Peer

Modelli e Sistemi di Elaborazione Peer-to-Peer

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Introduzione alle applicazioni di rete

Una architettura peer-topeer per la visualizzazione 3D distribuita

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Parte II: Reti di calcolatori Lezione 9

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Algoritmi per protocolli peer-to-peer

Inizializzazione degli Host. BOOTP e DHCP

Coordinazione Distribuita

Sistemi Operativi. Conclusioni e nuove frontiere

Algoritmi per protocolli peer-to-peer

Reti di Telecomunicazione Lezione 6

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Sistemi centralizzati e distribuiti

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Peer to Peer non solo file sharing

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

FTP. Appunti a cura del prof. ing. Mario Catalano

Pronto Esecuzione Attesa Terminazione

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 7

Reti di Calcolatori

Allegato 3 Sistema per l interscambio dei dati (SID)

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Dal protocollo IP ai livelli superiori

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Configurazione di Outlook Express

RETI INFORMATICHE Client-Server e reti paritetiche

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Aspetti SW delle reti di calcolatori. L architettura del sistema. La struttura di Internet 22/04/2011

Protocolli applicativi: FTP

Lo scenario: la definizione di Internet

Approfondimento di Marco Mulas

Stampe in rete Implementazione corretta

Informatica per la comunicazione" - lezione 8 -

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Quattro chiacchere sul Peer to Peer p.1/20

Lezione n 1! Introduzione"

Infrastruttura di produzione INFN-GRID

IT Cloud Service. Semplice - accessibile - sicuro - economico

Maschere di sottorete a lunghezza variabile

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

SISTEMI OPERATIVI DISTRIBUITI

Organizzazioni nel Grid Computing

Sicurezza dei dati in EGRID

Creare una Rete Locale Lezione n. 1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

LE POSSIBILITA' DI ACCESSO DA REMOTO ALLE RETI DI CALCOLATORI

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Corso di recupero di sistemi Lezione 8

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Transmission Control Protocol

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Servizio di Posta elettronica Certificata (PEC)

Reti di Calcolatori. Il software

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Sistemi informativi secondo prospettive combinate

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

P2-11: BOOTP e DHCP (Capitolo 23)

Sicurezza a livello IP: IPsec e le reti private virtuali

Comunicazione tra Processi

Comunicazione tra Processi

Guida alla registrazione on-line di un DataLogger

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

La Gestione delle risorse Renato Agati

La sicurezza nel Web

Corso di Amministrazione di Reti A.A. 2002/2003

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Siti web centrati sui dati (Data-centric web applications)

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon VPC (Virtual Private Cloud)

Comprendere il Cloud Computing. Maggio, 2013

La soluzione software per CdA e Top Management

SDD System design document

Domande frequenti su Phoenix FailSafe

Reti diverse: la soluzione nativa

Protocolli di Comunicazione

1) GESTIONE DELLE POSTAZIONI REMOTE

Transcript:

Reti di Calcolatori Applicazioni di Rete avanzate: Sistemi Peer to Peer Griglie Computazionali Corso di Reti di Calcolatori Carlo Mastroianni Reti di Calcolatori RETI PEER-TO-PEER

Sistemi P2P In una rete Peer-To-Peer i computer condividono risorse e servizi e li scambiano direttamente tra loro. A differenza dell approccio Client/Server, chi richiede la connessione non è ad un livello gerarchico inferiore: i partecipanti sono dei pari (peer). Pertanto un peer può agire sia da client sia da server. Sistemi P2P: caratteristiche Perché un sistema si possa definire Peer-to-Peer deve presentare almeno quattro caratteristiche: 1. peer discovery: i peer devono poter scoprire altri peer sulla rete 2. resource sharing: i peer devono poter condividere le risorse con gli altri peer 3. resource discovery: i peer devono poter effettuare ricerche ed interrogazioni per scoprire le risorse messe a disposizione da altri peer 4. dinamicità: il sistema deve funzionare anche se i peer si disconnettono e riconnettono più o meno frequentemente

Classificazione di Sistemi Peer-to-Peer P2P puro: Tutti i peer hanno contemporaneamente funzioni di client e di server senza nessun mediatore o server centralizzato (Gnutella). P2P ibrido: Esistono dei server che hanno funzioni di coordinamento, ma i peer si connettono tra di loro autonomamente (Napster, Emule). Reti P2P non strutturate: La locazione delle risorse non è legata alla topologia della rete. Ogni peer pubblica le risorse autonomamente, quindi non c è modo di sapere quale peer potrebbe possedere una risorsa (Napster, Gnutella, Morpheus, Emule) Reti P2P strutturate: La locazione delle risorse è legata alla topologia della rete. Esiste un legame tra l identificativo di una risorsa e l indirizzo del peer che possiede tale risorsa. È quindi possibile effettuare ricerche mirate delle risorse (Chord, CAN, Pastry) Gnutella E un software creato nel 2000 da Justin Frankel e Tom Pepper della società Nullsoft. Una rete Gnutella è formata da un certo numero di peer (gnode) che condividono file di qualsiasi tipo. È un sistema P2P puro non strutturato. Tutte le informazioni sulla topologia della rete vengono propagate attraverso un meccanismo di query & forward.

Gnutella Per accedere ai servizi di Gnutella, un nodo deve conoscere l indirizzo di almeno un altro nodo (fase di start up). Esistono dei nodi cache server che mantengono gli indirizzi di quanti più nodi possibile. In fase di connessione alla rete il peer contatta automaticamente uno di questi cache server, che: provvede ad aggiungere alla comunità il nuovo arrivato. comunica al nuovo peer l indirizzo di almeno un altro peer. Gnutella: messaggi Il protocollo Gnutella definisce 6 tipi di messaggi: Connect: usato all inizio per connettersi ad un host della rete Gnutella. Ping: utilizzato per scoprire altri host sulla rete. Un Servent che riceve un Ping deve rispondere con un Pong se è disponibile ad accettare connessioni. Pong: utilizzato come risposta al Ping; contiene l indirizzo del Servent (indirizzo IP e porta) ed informazioni circa i dati condivisi (numero di file, dimensione totale). Query: utilizzato per effettuare delle richieste di file: il corpo del messaggio contiene una search string.

Gnutella: messaggi QueryHit: la risposta ad una query. Un Servent che riceve una Query deve rispondere con un QueryHit se ha trovato corrispondenza con i dati richiesti. Il messaggio contiene le informazioni per acquisire i dati richiesti tramite HTTP. Push: se il proprietario del file cercato (es. l host B) è dietro un firewall che blocca la porta HTTP, il richiedente (l host A) non può effettuare il download diretto. In questo caso A invia ad B un messaggio di Push e chiede a B di connettersi ad A ed effettuare l upload del file. Struttura dell intestazione del messaggio Message ID (GUID) Type of message TTL Hops Payload Length Gnutella: Fase 1 - Connessione Il software del gnode ( servent ) invia un messaggio Connect ad un host conosciuto: l indirizzo di questo host può essere comunicato da un server di cache. Per esplorare la rete, il servent invia dei pacchetti Ping. Ogni macchina che riceve un Ping, se disponibile ad accettare connessioni, risponde con un pacchetto Pong, che segue la stessa strada, all indietro, fatta dai pacchetti Ping. Nei pacchetti Pong sono contenute informazioni circa il numero di file condivisi, la loro dimensione, la velocità di connessione ecc. I Pong ricevuti permettono al Peer di connettersi ad un certo numero di altri Peer, e costituire così un peer-group di nodi conosciuti.

Gnutella: Fase 2 - Ricerca Una volta che si è entrati a far parte della rete si può effettuare la ricerca di un file. Il software servent invia in broadcast a tutti i peer conosciuti un messaggio di Query con i criteri di ricerca stabiliti dall utente. Ogni peer che riceve una Query inoltra a tutti i peer conosciuti lo stesso messaggio. Ogni pacchetto viene contraddistinto con un GUID (Global Unified Identificator), in modo da non propagare lo stesso pacchetto a macchine che lo hanno già ricevuto. Gnutella: Fase 2 - Ricerca In seguito alla richiesta arriveranno al richiedente i pacchetti di QueryHit con i risultati e le informazioni circa la velocità di collegamento di chi possiede il file. L utente può quindi scegliere il peer da cui prelevare il file. La connessione tra il richiedente ed il donatore è diretta ed è effettuata con un download tramite il protocollo HTTP. Se il donatore è dietro un firewall, il richiedente invia un messaggio di PUSH al donatore, e quest ultimo effettua l upload del file verso il richiedente.

Gnutella: problematiche 1) Invio in broadcast dei messaggi Comporta un carico di rete eccessivo. È compensato con tecniche di vario tipo: es. l identificazione dei pacchetti di Query tramite il GUID (così da scartare le repliche), l uso del Time To Live per limitare la circolazione dei pacchetti. 2) Sbilanciamento tra i peer Ci possono essere peer che offrono molte risorse e peer che si limitano a chiederle. Il peer-to-peer può così degenerare in un sistema clientserver. È opportuno scoraggiare comportamenti di tipo parassita. Chord: codici dei peer Chord è un sistema P2P puro e strutturato: esiste una precisa associazione tra le risorse ed i peer che le gestiscono. Ad ogni peer è assegnato un codice identificativo con m bit. Ogni peer mette a disposizione delle risorse ed è disposto a gestire alcune informazioni che consentono di indirizzare le ricerche degli altri peer. Chord gestisce un cerchio logico che contiene tutti i 2 m codici dei peer, di cui solo alcuni sono assegnati a peer effettivamente presenti nella rete. La funzione successor(k) identifica il primo peer con codice successivo a K. Ad esempio, nella configurazione mostrata in figura, successor(8) è 12.

Chord: assegnamento delle risorse Così come ai peer, anche alle risorse è assegnato un codice. A partire dal nome della risorsa è generata, tramite una funzione di hash, una chiave di m bit. Quando un peer vuole pubblicare una risorsa, affida tale risorsa al peer avente codice uguale alla chiave C della risorsa. Se tale peer non è presente, la risorsa è assegnata al peer con codice uguale a successor(c). Ogni peer deve conoscere l indirizzo del suo successore. Inoltre ogni peer gestisce una finger table che contiene gli indirizzi di altri m peer: Il record i-esimo (i=0..m-1) della finger table del nodo avente indice K ha un campo start ottenuto sommando 2 i a K. Il peer puntato dal record i-esimo è il peer avente codice uguale a successor(start). Chord: esempio di configurazione

Chord: ricerca delle risorse 1. Quando un peer K vuole ricercare una risorsa, per prima cosa calcola la chiave C della risorsa cercata, applicando la funzione di hash al nome della risorsa. 2. Poi il peer verifica se la chiave C è compresa tra K e successor(k): in questo caso la risorsa è certamente gestita da successor(k). Poiché K conosce l indirizzo di successor(k), la ricerca termina. 3. Altrimenti il peer usa la finger table e verifica qual è il peer, puntato dalla tabella, che è il più vicino predecessore di C. La richiesta è inoltrata a tale peer e riparte da lì. La ricerca termina quando si verifica il caso 2. La ricerca si completa in log(n) passi, dal momento che ad ogni passo è possibile dimezzare lo spazio di ricerca. Esempio. se il peer 1 vuole cercare la risorsa con chiave 14, inoltra la richiesta al peer 12. Il peer 12 si accorge che la chiave 14 è inferiore al codice del suo successore (15), e quindi conclude che la risorsa è posseduta dal peer 15. Approccio strutturato: vantaggi e svantaggi Vantaggi Le ricerche sono molto più veloci rispetto ai sistemi P2P non strutturati. Il carico di rete ed il carico di elaborazione sui peer sono inferiori. Svantaggi Si perde in flessibilità: è possibile ricercare risorse con nomi ben determinati, ma è complicato ricercare risorse che presentino particolari caratteristiche (es. un software che svolga un certo tipo di elaborazione, un PC con velocità della CPU compresa in un dato intervallo). È necessario eseguire una procedura di riassegnamento delle risorse ogni volta che un peer entra nel sistema o lo abbandona. Se il sistema è molto dinamico questo diventa un problema.

Esercizio assegnato ad un appello Si supponga di avere una rete P2P non strutturata. Per semplicità si supponga che i peer siano organizzati in una griglia bidimensionale: ogni peer è connesso con 4 vicini, i 2 adiacenti nella griglia in orizzontale, e i 2 adiacenti in verticale. Si richiede di svolgere i seguenti quesiti. a. descrivere come avviene la ricerca di una risorsa, iniziata da un dato peer, nel caso si usi un algoritmo di flooding. Si assuma che un messaggio non viene mai inoltrato al peer da cui è stato ricevuto; b. indicare quanti peer è possibile raggiungere (escluso quello di partenza) in una procedura di ricerca tramite flooding, in dipendenza dal valore del parametro TTL, o t. Suggerimento: verificare quanti peer è possibile raggiungere con il valore di t fissato a 1, 2, 3 ecc. c. calcolare il valore di t necessario per raggiungere almeno 312 peer. Reti di Calcolatori Griglie Computazionali (Cloud Computing)

Griglie computazionali Obiettivo: costruire una rete di calcolo accessibile a tutti, così come l energia elettrica è resa disponibile attraverso la rete elettrica (in inglese Electric Grid). Le risorse cui accedere non sono solo dati (come nel Web), ma risorse di vario genere: computer, memorie, servizi ecc. Le risorse ed i servizi devono essere disponibili ovunque, con qualsiasi sistema operativo o dispositivo client (caratteristica di ubiquità). Occorre supportare la cooperazione tra organizzazioni virtuali (VO), in cui gli host e gli utenti cambiano nel tempo Griglie computazionali: funzionalità Login Funzionalità principali Singola autenticazione (Single Sign On) Scoperta dei nodi e delle risorse Negoziazione, acquisizione ed uso delle risorse Esecuzione e gestione della computazione distribuita Analisi collaborativa dei risultati VO 1 VO 2

Grid computing: applicazioni tipiche Distributed Supercomputing: applicazioni distribuite ad alta complessità computazionale High-Throughput Computing: uso dei cicli inutilizzati dai processori per ottenere lavoro utile On-Demand Computing: soddisfare le necessità di breve termine di risorse di cui non è conveniente disporre localmente (CLOUD COMPUTING) Data-Intensive Computing: elaborazione di grandi quantità di dati da database distribuiti geograficamente Collaborative Computing: abilitazione ed intensificazione delle interazioni umane Ambienti per il grid computing Condor, Boinc: ambiente per l high-throughput computing individuazione delle risorse inattive e migrazione dei job Legion: singola macchina virtuale accesso trasparente alle risorse remote Globus: insieme di servizi e tool per il grid computing definizione di Organizzazioni Virtuali

Globus (www.globus.org) Approccio bag of services : un progetto modulare nel quale i vari servizi sono forniti da componenti autonomi. Grid Security Infrastructure (GSI): servizio che garantisce la sicurezza e l autenticazione degli utenti Monitoring and Discovery Service (MDS): servizio informativo che offre informazioni aggiornate sullo stato delle risorse e consente di effettuare ricerche distribuite Globus Resource Allocation Manager (GRAM): si occupa di allocazione e scheduling dei job sulle risorse disponibile, e della esecuzione dei job Grid File Transfer Protocol (GridFTP): trasferimento dei dati ed accesso a dati remoti GSI: Globus Security Infrastructure E il servizio di base, utilizzato da tutti gli altri servizi. Si basa su un infrastruttura a chiave pubblica (PKI=Public Key Infrastructure). L utente genera localmente una coppia di chiavi (una pubblica ed una privata) e chiede la certificazione della chiave pubblica ad un ente di certificazione. L utente è identificato da un Distinguished Name o DN, un nome unico L utente può chiedere l accesso a risorse remote, es. a un host remoto. Se l accesso è accordato, al DN dell utente è associato un account locale sulla macchina remota.

File Gridmap Il file Gridmap associa gli utenti della Griglia, indentificati dal DN, ed autenticati tramite l infrastruttura a chiave pubblica, agli account della macchina locale. In questo modo un utente esterno acquisisce i diritti concessi al corrispondente account locale. # Distinguished name Local username "/C=US/O=Globus/OU=ICAR/CN=Agostino Forestiero "/C=US/O=Globus/OU=ICAR//CN=Carlo Mastroianni "/C=US/O=Globus/OU=ICAR//CN=Giuseppe Papuzzo forestiero mastroianni papuzzo GSI: accesso alle risorse remote Una volta autorizzato, l utente può richiedere l uso di una risorsa secondo le modalità specificate dal contratto d uso L uso della crittografia a chiave pubblica garantisce l autenticità dell utente che chiede l accesso alla risorsa remota Sui server di griglia, il servizio gatekeeper: effettua la mutua autenticazione tra utente remoto e host locale associa l utente remoto all account locale specificato Meccanismi di delega delle autorizzazioni consentono di accedere a più risorse remote effettuando una volta sola la procedura di autenticazione (Single Sign On).

Esempio: esecuzione di un programma remoto 1. Richiesta di accesso al gatekeeper 2. Controllo sul file gridmap (GSI) 3. Ricerca dell applicazione richiesta (MDS) 4. Esecuzione (GRAM) gridmap ricerca applicazione esecuzione 4 certificato 2 3 chiave client 1 chiave e certificato gatekeeper GridFTP Applicazione per griglie data-intensive che hanno bisogno di trasferire e replicare grandi quantità di dati Caratteristiche di GridFTP: Parallel transfer Striped transfer TCP buffer optimization Grid security

GridFTP: Parallelismo e Striping Parallelismo È possibile utilizzare più connessioni TCP in parallelo per il trasferimento di dati tra due endpoint GridFTP può utilizzare contemporaneamente più porte TCP: l insieme di porte utilizzabili è fissato in fase di configurazione di GridFTP Striping Più coppie di endpoint possono concorrere ad un unico trasferimento logico (con una sola connessione di controllo) Parallelismo e Striping connessione di controllo connessioni dati trasferimento in parallelo connessione di controllo connessioni dati connessioni dati trasferimento con striping

Evoluzione di Globus Globus 2 (fino al 2003) Si basa su servizi invocabili da linea di comando o da programma (tramite API, Application Program Interface). Globus 3 e 4 (attuale) Architettura di griglia basata su servizi. Definisce i Grid Services: un Grid Service è un Web Service che può gestire: la creazione dinamica dei servizi (tramite servizi factory) il ciclo di vita dei servizi (possono essere persistenti o transienti) lo stato interno del servizio le notifiche secondo l approccio publish/subscribe Globus 4 è pienamente compatibile con lo standard attuale dei Web Services