RETI MOBILI E MULTIMEDIALI Università degli Studi di Roma “La Sapienza” Dipartimento INFOCOM Aldo Roveri Lezioni dell’ a.a Aldo Roveri Lezioni dell’ a.a
V.Dal Web al P2P Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CONTENUTI V.1Il World Wide Web V.2Il trasferimento di file V.3 La condivisione di file V.1Il World Wide Web V.2Il trasferimento di file V.3 La condivisione di file
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Dal Web al P2P V.1 Il World Wide Web
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a World Wide Web (1/4) Il World Wide Web (WWW) è un insieme di informazioni multimediali (pagine web) memorizzate su uno o più depositi in rete a livello (in generale) planetario e tra loro collegate Le informazioni sono organizzate in ipertesti (Hypertext) e in ipermedia (Hypermedia), e cioè in documenti il cui collegamento è attuato mediante appositi puntatori. Il World Wide Web (WWW) è un insieme di informazioni multimediali (pagine web) memorizzate su uno o più depositi in rete a livello (in generale) planetario e tra loro collegate Le informazioni sono organizzate in ipertesti (Hypertext) e in ipermedia (Hypermedia), e cioè in documenti il cui collegamento è attuato mediante appositi puntatori.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a World Wide Web (2/4) Un qualunque oggetto del WWW (come ad es. una pagina web) è indirizzabile con URL (Uniform Resource Locator). Un URL è costituito da quattro elementi Protocollo : // Host : Porta / NomeFile tra cui l’unico obbligatorio è l’Host, mentre gli altri sono opzionali. Un qualunque oggetto del WWW (come ad es. una pagina web) è indirizzabile con URL (Uniform Resource Locator). Un URL è costituito da quattro elementi Protocollo : // Host : Porta / NomeFile tra cui l’unico obbligatorio è l’Host, mentre gli altri sono opzionali.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a World Wide Web (3/4) E’ un’applicazione Client/Server, distribuita sull’intera Internet. Il programma Client è il Browser, mentre quello Server è chiamato Server Web. Tipicamente un Client usufruisce delle potenzialità di WWW contattando vari Server Web, come in Fig. V.1 E’ un’applicazione Client/Server, distribuita sull’intera Internet. Il programma Client è il Browser, mentre quello Server è chiamato Server Web. Tipicamente un Client usufruisce delle potenzialità di WWW contattando vari Server Web, come in Fig. V.1
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a World Wide Web (4/4) Fig. V.1
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Browser (1/2) Un Browser è un programma che interpreta e visualizza un documento Web. Tale programma è costituito da tre componenti –un modulo di controllo; –i programmi del Client (HTTP, FTP, SMTP, etc.); –Interpreti (HTML, JavaScript, Java) come mostrato in Fig. V.2 Un Browser è un programma che interpreta e visualizza un documento Web. Tale programma è costituito da tre componenti –un modulo di controllo; –i programmi del Client (HTTP, FTP, SMTP, etc.); –Interpreti (HTML, JavaScript, Java) come mostrato in Fig. V.2
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Browser (2/2) Fig. V.2
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Documenti Web (1/2) Un documento Web può essere classificato –statico –dinamico –attivo Un documento statico è un file memorizzato nel Server Web e, a richiesta, ne viene fornita una copia al Client che non può apportarvi variazioni. Un documento Web può essere classificato –statico –dinamico –attivo Un documento statico è un file memorizzato nel Server Web e, a richiesta, ne viene fornita una copia al Client che non può apportarvi variazioni.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Documenti Web (2/2) Un documento dinamico è una pagina che viene creata dal Server Web (tramite l’esecuzione di apposito programma o di uno script) nel momento in cui il Browser ne effettua la richiesta. Un documento attivo è una pagina che viene creata eseguendo un programma o uno script sul PC del Client. Un documento dinamico è una pagina che viene creata dal Server Web (tramite l’esecuzione di apposito programma o di uno script) nel momento in cui il Browser ne effettua la richiesta. Un documento attivo è una pagina che viene creata eseguendo un programma o uno script sul PC del Client.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTML (1/2) E’ uno speciale linguaggio (HyperText Markup Language), che è usato per creare pagine Web statiche. Un Browser può leggere le istruzioni di formattazione (tag) immerse in un documento HTML. I tag permettono di specificare la struttura di una pagina Web, inserire figure e collegare le pagine Web tra di loro. In Fig. V.3 è mostrata l’interpretazione dei tag da parte del Browser. E’ uno speciale linguaggio (HyperText Markup Language), che è usato per creare pagine Web statiche. Un Browser può leggere le istruzioni di formattazione (tag) immerse in un documento HTML. I tag permettono di specificare la struttura di una pagina Web, inserire figure e collegare le pagine Web tra di loro. In Fig. V.3 è mostrata l’interpretazione dei tag da parte del Browser.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTML (2/2) Fig. V.3
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CGI e documenti dinamici (1/4) Il CGI (Common Gateway Interface) è uno standard per la creazione e la gestione di pagine Web dinamiche. Un programma CGI, con i suoi tag di interfaccia, può essere scritto in un linguaggio come C, C++ o tramite linguaggi di scripting (ad es. Perl). Il CGI (Common Gateway Interface) è uno standard per la creazione e la gestione di pagine Web dinamiche. Un programma CGI, con i suoi tag di interfaccia, può essere scritto in un linguaggio come C, C++ o tramite linguaggi di scripting (ad es. Perl).
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CGI e documenti dinamici (2/4) L’uscita di un programma CGI possono essere testi, grafici, dati binari, codici di stato, istruzioni o l’indirizzo di un file. In Fig. V.4 è mostrata l’interazione tra il client e il server con l’impiego del CGI. Nella Fig. V.5 è mostrato l’impiego di tecnologie di scripting (con Server-side script) per la generazione di pagine dinamiche. L’uscita di un programma CGI possono essere testi, grafici, dati binari, codici di stato, istruzioni o l’indirizzo di un file. In Fig. V.4 è mostrata l’interazione tra il client e il server con l’impiego del CGI. Nella Fig. V.5 è mostrato l’impiego di tecnologie di scripting (con Server-side script) per la generazione di pagine dinamiche.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CGI e documenti dinamici (3/4) Fig. V.4
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CGI e documenti dinamici (4/4) Fig. V.5
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a JAVA e documenti attivi (1/3) JAVA è un linguaggio di programmazione orientato agli oggetti, che fornisce un ambiente di esecuzione indipendente dal particolare sistema operativo utilizzato dal Client e che consente a quest’ultimo di scrivere un documento attivo.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a JAVA e documenti attivi (2/3) Un Browser utilizza Java per scrivere particolari piccoli programmi applicativi, detti Applet. Un Applet viene passato dal Server Web al Client in forma binaria pronto per essere eseguito nell’ambiente JAVA. JAVAScript è un linguaggio di scripting che viene interpretato dal Client senza spedizione da parte del Server Web. In Fig. V.6 è mostrata la modalità di generazione di una pagina attiva in ambiente Java con impiego di JavaScript. Un Browser utilizza Java per scrivere particolari piccoli programmi applicativi, detti Applet. Un Applet viene passato dal Server Web al Client in forma binaria pronto per essere eseguito nell’ambiente JAVA. JAVAScript è un linguaggio di scripting che viene interpretato dal Client senza spedizione da parte del Server Web. In Fig. V.6 è mostrata la modalità di generazione di una pagina attiva in ambiente Java con impiego di JavaScript.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a JAVA e documenti attivi (3/3) Fig. V.6
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (1/7) L’ HTTP (HyperText Transfer Protocol) è il principale protocollo utilizzato per accedere a dati sul WWW. Utilizza una singola connessione TCP per trasferire i dati. Una transazione HTTP si articola in una richiesta e in una risposta (Fig. V.7). L’ HTTP (HyperText Transfer Protocol) è il principale protocollo utilizzato per accedere a dati sul WWW. Utilizza una singola connessione TCP per trasferire i dati. Una transazione HTTP si articola in una richiesta e in una risposta (Fig. V.7).
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (2/7) Fig. V.7
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (3/7) Un messaggio di richiesta HTTP (Fig. V.8) inizia con una linea di richiesta,che include –il tipo di richiesta, –un URL –la versione del protocollo HTTP utilizzata (attualmente la 1.1). Il tipo di richiesta, che è chiamata metodo specifica l’azione che il Client sta chiedendo al Server. Un messaggio di richiesta HTTP (Fig. V.8) inizia con una linea di richiesta,che include –il tipo di richiesta, –un URL –la versione del protocollo HTTP utilizzata (attualmente la 1.1). Il tipo di richiesta, che è chiamata metodo specifica l’azione che il Client sta chiedendo al Server.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (4/7) Fig. V.8
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (5/7) Un messaggio di risposta (Fig. V.9) parte con una linea di stato, che comprende –la versione di HTTP, –il codice di stato, –la descrizione. Il codice di stato specifica l’avanzamento della richiesta, riporta il successo o meno di quest’ultima, indirizza il Client verso un altro Server Web, segnala eventuali errori nella richiesta o indisponibilità del Server. Un messaggio di risposta (Fig. V.9) parte con una linea di stato, che comprende –la versione di HTTP, –il codice di stato, –la descrizione. Il codice di stato specifica l’avanzamento della richiesta, riporta il successo o meno di quest’ultima, indirizza il Client verso un altro Server Web, segnala eventuali errori nella richiesta o indisponibilità del Server.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (6/7) Fig. V.9
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a HTTP (7/7) I messaggi HTTP possono contenere linee di intestazione che servono per lo scambio di informazioni addizionali fra Client e Server.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Le connessioni HTTP Possono essere persistenti o non persistenti; le prime sono quelle utilizzate nell’attuale versione 1.1 di HTTP. Una connessione HTTP non persistente viene utilizzata per ogni richiesta/risposta; tale soluzione crea sovraccarico per il Server che deve gestire più connessioni per un solo Client. Una singola connessione persistente viene utilizzata nel caso in cui il Client debba effettuare più di una richiesta. Possono essere persistenti o non persistenti; le prime sono quelle utilizzate nell’attuale versione 1.1 di HTTP. Una connessione HTTP non persistente viene utilizzata per ogni richiesta/risposta; tale soluzione crea sovraccarico per il Server che deve gestire più connessioni per un solo Client. Una singola connessione persistente viene utilizzata nel caso in cui il Client debba effettuare più di una richiesta.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a I Web Service (1/3) Permettono di accedere più facilmente ai vari servizi offerti on line (Fig. V.10) Fig. V.10
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a I Web Service (2/3) Le componenti principali dei Web Service sono –XML (eXtensible Markup Language): è un linguaggio che permette di descrivere i dati in modo strutturato; pone rimedio alle limitazioni di HTML; –WSDL (Web Services Description Language): è un linguaggio che permette di descrivere un Web Service; Le componenti principali dei Web Service sono –XML (eXtensible Markup Language): è un linguaggio che permette di descrivere i dati in modo strutturato; pone rimedio alle limitazioni di HTML; –WSDL (Web Services Description Language): è un linguaggio che permette di descrivere un Web Service;
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a I Web Service (3/3) –SOAP (Simple Object Access Protocol): è un protocollo che permette lo scambio di messaggi XML attraverso HTTP per la fruizione di un servizio WEB; –UDDI (Universal Description Discovery and Integration): è un meccanismo per la registrazione e ricerca di Web Services. –SOAP (Simple Object Access Protocol): è un protocollo che permette lo scambio di messaggi XML attraverso HTTP per la fruizione di un servizio WEB; –UDDI (Universal Description Discovery and Integration): è un meccanismo per la registrazione e ricerca di Web Services.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a CDN Una CDN (Content Distribution Network) è una rete che replica i contenuti di Web Server “lontani” in Server “vicini” agli utenti finali per velocizzare il trasferimento dei documenti Web. Per usufruire di questa possibilità è necessario che le richieste fatte dai Client verso un Server originario vengano re-dirette verso un Server alternativo più conveniente in termini di “distanza”. A questo scopo il cambiamento di indirizzo può essere effettuato dal DNS con una risoluzione di indirizzo alternativa rispetto a quella verso il server originario. Una CDN (Content Distribution Network) è una rete che replica i contenuti di Web Server “lontani” in Server “vicini” agli utenti finali per velocizzare il trasferimento dei documenti Web. Per usufruire di questa possibilità è necessario che le richieste fatte dai Client verso un Server originario vengano re-dirette verso un Server alternativo più conveniente in termini di “distanza”. A questo scopo il cambiamento di indirizzo può essere effettuato dal DNS con una risoluzione di indirizzo alternativa rispetto a quella verso il server originario.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Dal Web al P2P V.2Il trasferimento di file
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP (1/2) Il trasferimento di file tra due PC è una delle applicazioni più tipiche per un infrastruttura preposta al trasferimento di dati, come ad es. per Internet. FTP (File Transfert Protocol) è il protocollo standard della suite TCP/IP per il trasferimento di un file da un PC ad un altro su Internet. Il trasferimento di file tra due PC è una delle applicazioni più tipiche per un infrastruttura preposta al trasferimento di dati, come ad es. per Internet. FTP (File Transfert Protocol) è il protocollo standard della suite TCP/IP per il trasferimento di un file da un PC ad un altro su Internet.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP (2/2) Le difficoltà connesse all’operazione di trasferimento derivano dalla possibile eterogeneità dei sistemi (diversi sistemi operativi e quindi possibili diversità per i nomi dei file, per la struttura del file system e per la rappresentazione dei dati). Per superare tale difficoltà si segue un approccio client/server con alcune specificità. Le difficoltà connesse all’operazione di trasferimento derivano dalla possibile eterogeneità dei sistemi (diversi sistemi operativi e quindi possibili diversità per i nomi dei file, per la struttura del file system e per la rappresentazione dei dati). Per superare tale difficoltà si segue un approccio client/server con alcune specificità.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: le connessioni FTP utilizza due connessioni su TCP: –una per lo scambio di informazioni di controllo (comandi e risposte); –l’altra per il trasferimento dei dati. Separare i comandi e le risposte dal trasferimento dei dati aumenta l’efficienza del protocollo: infatti la connessione di controllo prevede solo il trasferimento di linee di comando o di risposta, mentre la connessione per i dati ha bisogno di regole più complesse a causa della varietà dei tipi di dati che possono essere trasferiti FTP utilizza due connessioni su TCP: –una per lo scambio di informazioni di controllo (comandi e risposte); –l’altra per il trasferimento dei dati. Separare i comandi e le risposte dal trasferimento dei dati aumenta l’efficienza del protocollo: infatti la connessione di controllo prevede solo il trasferimento di linee di comando o di risposta, mentre la connessione per i dati ha bisogno di regole più complesse a causa della varietà dei tipi di dati che possono essere trasferiti
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: client e server (1/2) La Fig. V.11 mostra la struttura del client (comprendente un’interfaccia di utente, un modulo di controllo e un modulo per il trasferimento dei dati) e quella del server (includente i due moduli preposti al controllo e al trasferimento.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: client e server (2/2) Fig. V.11
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: connessione di controllo (1/2) Per superare una tra le difficoltà connesse all’eterogeneità dei sistemi, FTP utilizza l’insieme dei caratteri NVT (Network Virtual Terminal), che costituiscono un’interfaccia universale. Ogni carattere NVT è rappresentato da 8 bit, tra cui quello più significativo vale 0, mentre i 7 bit rimanenti corrispondono al codice ASCII. Per superare una tra le difficoltà connesse all’eterogeneità dei sistemi, FTP utilizza l’insieme dei caratteri NVT (Network Virtual Terminal), che costituiscono un’interfaccia universale. Ogni carattere NVT è rappresentato da 8 bit, tra cui quello più significativo vale 0, mentre i 7 bit rimanenti corrispondono al codice ASCII.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: connessione di controllo (2/2) Tramite l’interfaccia NVT il PC locale può trasformare il formato locale in quello NVT e il PC remoto può effettuare la trasformazione in senso inverso in modo da ottenere il formato richiesto dal proprio sistema operativo. Ogni comando o ogni risposta consiste di pochi caratteri e termina con il carattere fine linea ; quest’ultimo è la combinazione dei caratteri CR (Carriage Return) e LF (Line Feed). Tramite l’interfaccia NVT il PC locale può trasformare il formato locale in quello NVT e il PC remoto può effettuare la trasformazione in senso inverso in modo da ottenere il formato richiesto dal proprio sistema operativo. Ogni comando o ogni risposta consiste di pochi caratteri e termina con il carattere fine linea ; quest’ultimo è la combinazione dei caratteri CR (Carriage Return) e LF (Line Feed).
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: connessione per dati (1/2) Prima del trasferimento dei file, il client FTP deve decidere –il tipo di file, –la struttura dei dati, –la modalità di trasferimento; questi tre attributi della comunicazione consentono di risolvere il problema della eterogeneità. Le modalità di trasferimento dei dati in FTP sono riassunte in Fig. V.12 Prima del trasferimento dei file, il client FTP deve decidere –il tipo di file, –la struttura dei dati, –la modalità di trasferimento; questi tre attributi della comunicazione consentono di risolvere il problema della eterogeneità. Le modalità di trasferimento dei dati in FTP sono riassunte in Fig. V.12
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: connessione per dati (2/2) Fig. V.12
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: tipi di file Sono previsti tre tipi di file –file ASCII : il formato ASCII è quello standard per il trasferimento di file di testo; il mittente deve trasformare il proprio file dalla rappresentazione interna a quella ASCII, mentre il destinatario dovrà effettuare la trasformazione inversa; –file EBCDIC : si opera come nel caso ASCII ma con la codifica EBCDIC; –file binario : è una sequenza di bit senza alcuna interpretazione o codifica. Sono previsti tre tipi di file –file ASCII : il formato ASCII è quello standard per il trasferimento di file di testo; il mittente deve trasformare il proprio file dalla rappresentazione interna a quella ASCII, mentre il destinatario dovrà effettuare la trasformazione inversa; –file EBCDIC : si opera come nel caso ASCII ma con la codifica EBCDIC; –file binario : è una sequenza di bit senza alcuna interpretazione o codifica.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: strutture di dati Sono previste tre diverse strutture di dati da trasferire –struttura a file : è un flusso continuo di byte; –struttura a record : il file viene diviso in record ; è utilizzata solo con i file di testo; –struttura a pagina : il file è diviso in pagine e ogni pagina è identificata con un numero e descritta da una intestazione ; le pagine possono essere gestite separatamente. Sono previste tre diverse strutture di dati da trasferire –struttura a file : è un flusso continuo di byte; –struttura a record : il file viene diviso in record ; è utilizzata solo con i file di testo; –struttura a pagina : il file è diviso in pagine e ogni pagina è identificata con un numero e descritta da una intestazione ; le pagine possono essere gestite separatamente.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: modalità di trasferimento (/12) Sono previste tre modalità di trasferimento –a flusso di dati : è la modalità di default con attuazione differenziata in base alla struttura dei dati; –a blocchi di dati : i dati sono consegnati da FTP a TCP in blocchi con una intestazione di 3 byte, tra cui il primo indica l’inizio del blocco, mentre gli altri due definiscono la grandezza del blocco; Sono previste tre modalità di trasferimento –a flusso di dati : è la modalità di default con attuazione differenziata in base alla struttura dei dati; –a blocchi di dati : i dati sono consegnati da FTP a TCP in blocchi con una intestazione di 3 byte, tra cui il primo indica l’inizio del blocco, mentre gli altri due definiscono la grandezza del blocco;
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: modalità di trasferimento (2/2) –a dati compressi : è utilizzata per spedire file di dati che possono essere compressi con lo scopo di un trasferimento più efficiente; la compressione consiste nel sostituire sequenze di caratteri uguali con una sola occorrenza del carattere preceduto dal numero di ripetizioni.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: tipi di trasferimento (1/2) Sono consentiti tre tipi di trasferimento sotto il controllo della connessione apposita –copiare un file dal server al client; sulla connessione di controllo viene spedito il comando RETR (Retrieve); –copiare un file dal client al server; sulla connessione di controllo viene spedito il comando STOR (Store); Sono consentiti tre tipi di trasferimento sotto il controllo della connessione apposita –copiare un file dal server al client; sulla connessione di controllo viene spedito il comando RETR (Retrieve); –copiare un file dal client al server; sulla connessione di controllo viene spedito il comando STOR (Store);
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a FTP: tipi di trasferimento (2/2) –spedire una lista di nomi di file disponibili nel server da parte di quest’ultimo verso il client; sulla connessione di controllo il client spedisce il comando LIST, mentre la lista richiesta viaggia sulla connessione per dati.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Dal Web al P2P V.3La condivisione di file
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P (1/2) In termini di mera intensità di traffico, la condivisione di file (File Sharing) può essere considerata la più importante tra le applicazioni di Internet. Sono ad esempio condivisibili file di dimensioni e di contenuti i più vari: ad esempio file MP3 (con dimensioni variabili usualmente tra 3 e 8 Mbyte), file video (da 10 a 1000 Mbyte), file contenenti pacchetti software, documenti e immagini. In termini di mera intensità di traffico, la condivisione di file (File Sharing) può essere considerata la più importante tra le applicazioni di Internet. Sono ad esempio condivisibili file di dimensioni e di contenuti i più vari: ad esempio file MP3 (con dimensioni variabili usualmente tra 3 e 8 Mbyte), file video (da 10 a 1000 Mbyte), file contenenti pacchetti software, documenti e immagini.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P (1/2) La condivisione di file è attuata integrando applicazioni di memorizzazione, di ricerca, di instradamento e di trasferimento residenti sui PC connessi a Internet. La condivisione di file è un paradigma di distribuzione di contenuti, che vengono trasferiti direttamente tra PC ordinari senza passare tra terze parti; mette quindi in relazione entità di elaborazione alla pari (peer) e per questo motivo, l’applicativo che la consente è chiamato Peer-to- Peer (P2P). La condivisione di file è attuata integrando applicazioni di memorizzazione, di ricerca, di instradamento e di trasferimento residenti sui PC connessi a Internet. La condivisione di file è un paradigma di distribuzione di contenuti, che vengono trasferiti direttamente tra PC ordinari senza passare tra terze parti; mette quindi in relazione entità di elaborazione alla pari (peer) e per questo motivo, l’applicativo che la consente è chiamato Peer-to- Peer (P2P).
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P (1/2) L’applicativo P2P si affida al paradigma client server in cui il peer “richiedente” rappresenta il client e quello “selezionato” costituisce il server. Il file viene inviato dal server al client con un protocollo di trasferimento di file. Il punto chiave dell’applicativo è la localizzazione dei contenuti, e cioè la modalità con la quale un peer determina quali altri peer abbiano i file desiderati. Per la localizzazione sono state implementate nel tempo tre soluzioni: una centralizzata, una distribuita e una terza di tipo misto. L’applicativo P2P si affida al paradigma client server in cui il peer “richiedente” rappresenta il client e quello “selezionato” costituisce il server. Il file viene inviato dal server al client con un protocollo di trasferimento di file. Il punto chiave dell’applicativo è la localizzazione dei contenuti, e cioè la modalità con la quale un peer determina quali altri peer abbiano i file desiderati. Per la localizzazione sono state implementate nel tempo tre soluzioni: una centralizzata, una distribuita e una terza di tipo misto.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione centralizzata (1/2) Uno degli approcci più diretti alla localizzazione dei contenuti è stata la disponibilità di una directory centralizzata, come avveniva con Napster. In questa soluzione un potente server (server farm) provvede a raccogliere le informazioni sui file disponibili presso peer attivi e crea un data-base centralizzato e dinamico, che associa ogni nome di “oggetto” a un insieme di indirizzi IP. Quando un peer attivo ottiene un nuovo oggetto o lo rimuove, informa il server, che a sua volta può aggiornare il proprio data-base. Uno degli approcci più diretti alla localizzazione dei contenuti è stata la disponibilità di una directory centralizzata, come avveniva con Napster. In questa soluzione un potente server (server farm) provvede a raccogliere le informazioni sui file disponibili presso peer attivi e crea un data-base centralizzato e dinamico, che associa ogni nome di “oggetto” a un insieme di indirizzi IP. Quando un peer attivo ottiene un nuovo oggetto o lo rimuove, informa il server, che a sua volta può aggiornare il proprio data-base.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione centralizzata (2/2) Gli svantaggi della soluzione centralizzata sono –una possibile vulnerabilità: un guasto del server farm e delle relative ridondanze può provocare il fallimento dell’intera applicazione; –una potenziale congestionabilità: un server centralizzato deve gestire un data-base di grandi dimensioni (come necessario per fronteggiare il successo dell’applicazione) e deve rispondere a un numero di richieste al secondo così elevato da costituire un collo di bottiglia per il contenimento dei tempi di risposta. Gli svantaggi della soluzione centralizzata sono –una possibile vulnerabilità: un guasto del server farm e delle relative ridondanze può provocare il fallimento dell’intera applicazione; –una potenziale congestionabilità: un server centralizzato deve gestire un data-base di grandi dimensioni (come necessario per fronteggiare il successo dell’applicazione) e deve rispondere a un numero di richieste al secondo così elevato da costituire un collo di bottiglia per il contenimento dei tempi di risposta.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione distribuita (1/5) E’ una soluzione diametralmente opposta a quella centralizzata. I peer attivi e le connessioni TCP in corso sono in corrispondenza a nodi e rami di un grafo associato a una rete sovrapposta (overlay network). Con questo riferimento, a suo tempo proposto da Gnutella, i peer inviano messaggi a quelli “vicini” (cioè a quelli direttamente connessi con un ramo) sulla rete sovrapposta. E’ una soluzione diametralmente opposta a quella centralizzata. I peer attivi e le connessioni TCP in corso sono in corrispondenza a nodi e rami di un grafo associato a una rete sovrapposta (overlay network). Con questo riferimento, a suo tempo proposto da Gnutella, i peer inviano messaggi a quelli “vicini” (cioè a quelli direttamente connessi con un ramo) sulla rete sovrapposta.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione distribuita (2/5) Quando un client vuole localizzare un file, invia un messaggio di richiesta (Gnutella Query) ai propri “vicini”; la richiesta viene diffusa da ogni nodo con meccanismo a inondazione (Query Flooding). Quando un peer riceve un messaggio di richiesta, controlla se le parole chiave del file richieste sono presenti in qualche file disponibile per la condivisione. Quando un client vuole localizzare un file, invia un messaggio di richiesta (Gnutella Query) ai propri “vicini”; la richiesta viene diffusa da ogni nodo con meccanismo a inondazione (Query Flooding). Quando un peer riceve un messaggio di richiesta, controlla se le parole chiave del file richieste sono presenti in qualche file disponibile per la condivisione.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione distribuita (3/5) Se trova il file richiesto, invia al peer richiedente un messaggio di successo (Query Hit), che contiene il nome del file e la sua dimensione; tale messaggio segue il percorso inverso rispetto a quello di richiesta, usando le connessioni TCP preesistenti.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione distribuita (4/5) Se il peer richiedente riceve più messaggi di successo da parte di più peer, il richiedente –seleziona un peer tra quelli che hanno risposto (peer selezionato) –instaura una connessione diretta con il peer selezionato (quindi al di fuori della rete sovrapposta) –invia su questa connessione un messaggio HTTP GET che include lo specifico nome del file; Se il peer richiedente riceve più messaggi di successo da parte di più peer, il richiedente –seleziona un peer tra quelli che hanno risposto (peer selezionato) –instaura una connessione diretta con il peer selezionato (quindi al di fuori della rete sovrapposta) –invia su questa connessione un messaggio HTTP GET che include lo specifico nome del file;
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione distribuita (5/5) –alla ricezione di questo messaggio il peer selezionato invia al richiedente il file all’interno di un file di risposta HTTP; –quando il peer richiedente ha ricevuto completamente il file desiderato, la connessione TCP diretta tra i peer richiedente e selezionato viene abbattuta. –alla ricezione di questo messaggio il peer selezionato invia al richiedente il file all’interno di un file di risposta HTTP; –quando il peer richiedente ha ricevuto completamente il file desiderato, la connessione TCP diretta tra i peer richiedente e selezionato viene abbattuta.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Soluzione distribuita scalabile (1/3) Il limite della soluzione distribuita precedentemente illustrata è la non scalabilità, in quanto ogni richiesta genera una significativa quantità di traffico sulla intera Internet. Il rimedio a questo limite è stato l’utilizzazione di un Query Flooding a raggio limitato : ogni messaggio di richiesta, nel momento della sua prima emissione, contiene un campo di conteggio e un limite superiore a questo conteggio. Il limite della soluzione distribuita precedentemente illustrata è la non scalabilità, in quanto ogni richiesta genera una significativa quantità di traffico sulla intera Internet. Il rimedio a questo limite è stato l’utilizzazione di un Query Flooding a raggio limitato : ogni messaggio di richiesta, nel momento della sua prima emissione, contiene un campo di conteggio e un limite superiore a questo conteggio.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Soluzione distribuita scalabile (2/3) In ogni transito attraverso un peer il campo di conteggio viene decrementato di una unità prima del successivo inoltro; il messaggi odi richiesta non viene ulteriormente inoltrato quando il campo di conteggio ha raggiunto lo zero. Il limite di questa soluzione a raggio limitato è l’aumento della probabilità di non trovare i contenuti desiderati. In ogni transito attraverso un peer il campo di conteggio viene decrementato di una unità prima del successivo inoltro; il messaggi odi richiesta non viene ulteriormente inoltrato quando il campo di conteggio ha raggiunto lo zero. Il limite di questa soluzione a raggio limitato è l’aumento della probabilità di non trovare i contenuti desiderati.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Soluzione distribuita scalabile (3/3) In definitiva la soluzione Gnutella consente a un utente di richiedere file collocati nei peer “vicini” intendendo con questo attributo indicare la loro raggiungibilità in un limitato numero di passi sulla rete sovrapposta.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a Gestione della rete sovrapposta Un problema fondamentale nelle applicazioni distribuite di P2P è la gestione della rete sovrapposta in occasione dell’inserimento di nuovi peer e del distacco di peer attivi; il problema è stato risolto con l’impiego di opportuni algoritmi.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (1/6) I principi delle soluzioni centralizzata e distribuita (cercando di evitarne i limiti operativi) sono applicati nell’architettura chiamata KazaaA. Come nella soluzione distribuita, i peer attivi costituiscono i nodi di una rete sovrapposta, con una differenza sostanziale: i peer più potenti (cioè dotati di connessioni a banda più larga e di alta connettività ad Internet) sono designati leader di gruppo. I principi delle soluzioni centralizzata e distribuita (cercando di evitarne i limiti operativi) sono applicati nell’architettura chiamata KazaaA. Come nella soluzione distribuita, i peer attivi costituiscono i nodi di una rete sovrapposta, con una differenza sostanziale: i peer più potenti (cioè dotati di connessioni a banda più larga e di alta connettività ad Internet) sono designati leader di gruppo.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (2/6) Gli altri peer sono considerati ordinari e ognuno di questi viene assegnato a un leader di gruppo, assumendo il ruolo di “figlio” di quest’ultimo. La rete sovrapposta assume allora la struttura gerarchica mostrata in Fig. V.13, in cui si vedono le relazioni di adiacenza tra i peer leader di gruppo e dei singoli peer figli con il loro leader; i leader di gruppo sono collegati tra loro con connessioni TCP. Gli altri peer sono considerati ordinari e ognuno di questi viene assegnato a un leader di gruppo, assumendo il ruolo di “figlio” di quest’ultimo. La rete sovrapposta assume allora la struttura gerarchica mostrata in Fig. V.13, in cui si vedono le relazioni di adiacenza tra i peer leader di gruppo e dei singoli peer figli con il loro leader; i leader di gruppo sono collegati tra loro con connessioni TCP.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (3/6) Fig. V.13
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (4/6) Ogni peer leader ha la possibilità di mantenere un data-base che include gli identificatori di tutti i file condivisi dai suoi peer figli: in questo modo ciascun leader diventa un mini hub nello stile della soluzione centralizzata; ma a differenza di questa, un peer leader non è un server dedicato, è sostanzialmente un peer con maggiore responsabilità.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (5/6) La condivisione può attuarsi in più modi. Ad esempio il leader di un gruppo può contattare i leader degli altri gruppi ottenendo copie dei rispettivi data-base, e avendo quindi la possibilità di localizzare i contenuti di un gran numero di peer. Inoltre ogni leader, conoscendo i contenuti dei propri figli e al momento della ricezione di una richiesta, può inoltrare queste informazioni agli altri leader con cui si connette. La condivisione può attuarsi in più modi. Ad esempio il leader di un gruppo può contattare i leader degli altri gruppi ottenendo copie dei rispettivi data-base, e avendo quindi la possibilità di localizzare i contenuti di un gran numero di peer. Inoltre ogni leader, conoscendo i contenuti dei propri figli e al momento della ricezione di una richiesta, può inoltrare queste informazioni agli altri leader con cui si connette.
Aldo Roveri, “RETI MOBILI E MULTIMEDIALI” Univ. di Roma “La Sapienza” - a.a P2P: soluzione mista (6/6) Quest’ultimo approccio è simile al Query Flooding della soluzione distribuita, in cui però il concetto di raggio limitato si applica solo alla rete sovrapposta di un leader di gruppo.