B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Edizione italiana delle slide a cura di Gabriele D’Angelo e Gaia Maselli Traduzione delle slide di Renato Cortinovis Copyright © 2013 McGraw-Hill Education Italy srl Capitolo 2 Livello Applicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Capitolo2: indice 2.1 INTRODUZIONE 2.2 PARADIGMA CLIENT-SERVER 2.3 APPLICAZIONI STANDARD 2.4 PARADIGMA PEER-TO-PEER 2.5 PROGRAMMAZIONE DELLE SOCKET
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Capitolo 2: Obiettivi Si analizza la natura dei servizi forniti da Internet: il paradigma client-server e il paradigma peer-to-peer. Si approfondisce il paradigma client-server. Si discutono alcune applicazioni standard o predefinite basate sul paradigma client-server come il WWW, il trasferimento di file e la posta elettronica. Si affrontano il concetto e i protocolli nel paradigma peer- to-peer come Chord, Pastry e Kademlia. Si mostra come creare una nuova applicazione client-server scrivendo due programmi in linguaggio C.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl 2-1 Introduzione Il livello applicazione fornisce servizi all’utente. La comunicazione è fornita per mezzo di una connessione logica: questo significa che i livelli applicazione nei due lati della comunicazione agiscono come se esistesse un collegamento diretto attraverso il quale poter inviare e ricevere messaggi. La Figura 2.1 illustra l’idea alla base di questo collegamento logico.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.1: Connessione logica a livello applicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl L’offerta di servizi Internet venne inizialmente progettata per fornire servizi ai suoi utenti. Dato che il livello applicazione è l’unico che fornisce servizi agli utenti di Internet, la sua flessibilità consente di aggiungere nuovi protocolli con estrema facilità, così come si è verificato nella storia di Internet e sta tuttora avvenendo. Alla nascita di Internet solo alcuni protocolli di livello applicazione erano disponibili per gli utenti; oggi non è più possibile indicare il numero dei protocolli esistenti poiché ne vengono costantemente aggiunti di nuovi.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl L’offerta di servizi (continuazione) Protocolli standard e non standard Protocolli standard di livello applicazione Protocolli non standard di livello applicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Paradigmi del livello applicazione Dovrebbe ormai essere chiarocheper utilizzare Internet sono necessari due programmi che interagiscono l’uno con l’altro: uno eseguito su un certo computer in qualche parte del mondo, l’altro eseguito su un secondo computer in qualsiasi altro luogo. Dovrebbe ormai essere chiaro che per utilizzare Internet sono necessari due programmi che interagiscono l’uno con l’altro: uno eseguito su un certo computer in qualche parte del mondo, l’altro eseguito su un secondo computer in qualsiasi altro luogo. I due programmi hanno la necessità di scambiarsi messaggi sfruttando l’infrastruttura di Internet. La modalità di relazione tra questi due programmi non è ancora stata trattata. I due programmi applicativi devono essere entrambi ingrado di richiedere e offrire servizi, oppure ciascuno deve occuparsi di uno dei due compiti? I due programmi hanno la necessità di scambiarsi messaggi sfruttando l’infrastruttura di Internet. La modalità di relazione tra questi due programmi non è ancora stata trattata. I due programmi applicativi devono essere entrambi in grado di richiedere e offrire servizi, oppure ciascuno deve occuparsi di uno dei due compiti?
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Paradigmi del livello applicazione (continuazione) Client-Server: il paradigma tradizionale Peer-to-peer: il nuovo paradigma Il paradigma misto
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.2: Esempio di architettura client-server
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.3: Esempio di architettura peer-to-peer
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl 2-2 Paradigma CLIENT-SERVER Nel paradigma client/server la comunicazione a livello applicazione avviene tra due programmi applicativi in esecuzione chiamati processi: un client e un server. Un client è un programma in esecuzione che inizia la comunicazione inviando una richiesta; Un server è un altro programma applicativo che attende le richieste dai client.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl API: Application Programming Interface Un linguaggio di programmazione prevede un insieme di istruzioni matematiche, un insieme di istruzioni per la manipolazione delle stringhe, un insieme di istruzioni per la gestione dell’input/output ecc. Se si vuole sviluppare un programma capace di comunicare con un altro programma, è necessario un nuovo insieme di istruzioni per chiedere ai primi quattro livelli dello stack TCP/IP di aprire la connessione, inviare/ricevere dati e chiudere la connessione. Un insieme di istruzioni di questo tipo viene chiamato API (Application Programming Interface).
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl API (continuazione) Socket Individuare i Socket Address Socket Address Lato server Lato client
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.4: L’interfaccia socket nella pila dei protocolli
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.5: Impiego delle socket nella comunicazione tra processi
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.6: Un socket address
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl È possibile individuare degli indirizzi a due livelli anche nella comunicazione telefonica. Il numero di telefono identifica l’azienda, mentre l’estensione identifica un utente specifico all’interno dell’azienda. Il numero di telefono che identifica l’azienda corrisponde in questo caso all’indirizzo IP, l’estensione che identifica il particolare utente corrisponde al numero di porta. Esempio 2.1
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Utilizzo dei servizi di livello trasporto Una coppia di processi fornisce servizi agli utenti di Internet, siano questi persone o applicazioni. La coppia di processi, tuttavia, deve utilizzare i servizi offerti dal livello trasporto per la comunicazione, poiché non vi è una comunicazione fisica a livello applicazione. Nel livello trasporto della pila di protocolli TCP/IP sono previsti due protocolli principali: Protocollo UDP Protocollo TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl 2-3 Applicazioni client/server standard Nel tempo sono state sviluppate numerose applicazioni client/server. Il nostro obiettivo non è quello di riprogettarle, ma di comprenderne il funzionamento e di conoscere, per ciascuna applicazione, le opzioni a nostra disposizione. Lo studio di questi programmi e del modo in cui forniscono i vari servizi potrà aiutarci a creare nuove applicazioni adatte alle nostre esigenze.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl World Wide Web e HTTP In questo paragrafo si introduce per primo il World Wide Web, abbreviato con l’acronimo WWW o con Web. Di seguito verrà descritto l’HTTP (Hypertext Transfer Protocol), il protocollo client/server più utilizzato nel Web.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl WWW e HTTP (continuazione) World Wide Web HTTP (HyperText Transfer Protocol) Architettura URL (Uniform Resource Locator) Documenti Web Connessioni persistenti e non persistenti Formato dei messaggi Richieste condizionali Cookie
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl WWW e HTTP (continuazione) Web Caching: il server proxy Aspetti di sicurezza nel protocollo HTTP Posizione del server proxy Aggiornamento della cache
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Si supponga di voler ottenere un documento scientifico che contiene un riferimento a un altro documento testuale e un riferimento a un’immagine, come illustrato nella Figura 2.7. Il documento principale e l’immagine sono memorizzati in due file separati nello stesso sito (file A e file B), mentre il documento testuale referenziato è memorizzato in un altro file in un altro sito (file C). Poiché si hanno tre file differenti, sono necessarie tre transazioni per poter vedere il documento completo. Esempio 2.2
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.7: Esempio 2.2 (Prelievo di due file e un’immagine)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.8: Architettura generale di un browser
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl L’URL identifica la pagina Web associata all’edizione italiana di questo volume. La stringa è il nome di un computer dell’azienda McGraw-Hill (le tre lettere www fanno convenzionalmente parte del nome dell’host). Il percorso invece è /forouzan, che definisce la pagina Web di questo testo. Esempio 2.3
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl La Figura 2.9 illustra un esempio di connessione non persistente. Il client deve accedere a un file che contiene un link a un’immagine; il file di testo e l’immagine si trovano sullo stesso server. In questo caso sono richieste due connessioni. Per ognuna di queste, TCP richiede almeno tre messaggi di handshake per stabilire la connessione, inviando la richiesta all’interno del terzo messaggio. Una volta stabilita la connessione l’oggetto richiesto può essere trasferito; una volta ricevuto, sono necessari altri tre messaggi di terminazione per la chiusura della connessione, come si vedrà nel Capitolo 3. Esempio 2.4
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.9: Esempio 2.4
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl La Figura 2.10 illustra lo stesso scenario dell’Esempio 2.4, utilizzando però le connessioni persistenti. Vengono utilizzate una sola apertura e chiusura della connessione, la richiesta dell’immagine sfrutta la connessione già aperta. Esempio 2.5
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.10: Esempio 2.5
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.11: Formati dei messaggi di richiesta e di risposta
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.1 : Metodi di HTTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.2 : Intestazione di richiesta
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.3 : Intestazione di risposta
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Questo esempio (Figura 2.12) illustra come il client preleva un documento: viene usato il metodo GET per ottenere l’immagine individuata dal percorso /usr/bin/image1. La riga di richiesta contiene il metodo (GET), l’URL e la versione (1.1) del protocollo HTTP. L’intestazione è costituita da due righe in cui si specifica che il client accetta immagini nei formati GIF e JPEG. Il messaggio di richiesta non ha corpo. Il messaggio di risposta contiene la riga di stato e quattro righe di intestazione che contengono la data, il server, il metodo di codifica del contenuto (la versione MIME, argomento che verrà descritto nel paragrafo dedicato alla posta elettronica) e la lunghezza del documento. Il corpo del messaggio segue l’intestazione. Esempio 2.6
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.12: Esempio 2.6
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl In questo esempio il client spedisce al server una pagina Web da pubblicare. Si utilizza il metodo PUT. La riga di richiesta contiene il metodo (PUT), l’URL e la versione (1.1) del protocollo HTTP. L’intestazione è costituita da quattro righe d’intestazione. Il corpo del messaggio di richiesta contiene la pagina Web inviata. Il messaggio di risposta contiene la riga di stato e quattro righe di intestazione. Il documento creato, un documento CGI, è incluso nel corpo del messaggio di risposta (Figura 2.13). Esempio 2.7
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.13: Esempio 2.7
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Si illustra come un client può specificare La condizione di data e ora di modifica in una richiesta. Esempio 2.8 La riga di stato nella risposta indica che il file non è stato modificato successivamente alla data indicata. Il corpo del messaggio è vuoto anche in questo caso.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl La Figura 2.14 illustra uno scenario nel quale un negozio elettronico sfrutta opportunamente l’impiego dei cookie. Si supponga che un cliente desideri comprare un giocattolo da un negozio elettronico chiamato BestToys. Il browser del cliente invia una richiesta al server BestToys. Questo crea per il cliente un carrello della spesa vuoto e gli assegna un identificatore (per esempio 12343). Il server invia quindi un messaggio di risposta che contiene le immagini di tutti i giocattoli disponibili, con un link associato a ciascun giocattolo che consente all’utente di selezionarlo. Questo messaggio di risposta contiene anche la riga di intestazione “ Set- Cookie” con valore Il browser sul computer client visualizza le immagini e memorizza il valore del cookie in un file chiamato BestToys. Esempio 2.9
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.14: Esempio 2.9
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl La Figura 2.15 illustra un esempio di impiego di un server proxy in una rete locale, per esempio una rete aziendale o un campus universitario. Il proxy è installato all’interno della rete locale. Quando il browser di uno dei client genera una richiesta HTTP, questa viene diretta per prima cosa al proxy. Se questi ha già la pagina corrispondente invia la risposta al client. In caso contrario il proxy agisce da client e invia la richiesta al server Web in Internet. Quando la risposta viene restituita, il proxy ne memorizza una copia nella propria memoria cache prima di inviarla al client che l’aveva richiesta. Esempio 2.10
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.15: Esempio di architettura di rete con server proxy
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl FTP FTP (File Transfer Protocol) è il protocollo standard offerto da TCP/IP per la copia di file da un host a un altro. Sebbene il trasferimento di un file possa sembrare un’operazione semplice, vi sono, in realtà, numerosi problemi ai quali bisogna prestare attenzione: i due sistemi coinvolti, per esempio, possono adottare convenzioni differenti per la denominazione dei file, oppure gestire in modo differente la struttura delle directory. Problemi di questo tipo vengono risolti in modo semplice ed elegante dal protocollo FTP.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl FTP (continuazione) Durata delle due connessioni Connessione di controllo Connessione per lo scambio dei dati Sicurezza nel protocollo FTP Comunicazione lungo la connessione per lo scambio dei dati Trasferimento di file
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.16: Il protocollo FTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.4 : Principali comandi FTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.5 : Esempi di risposte FTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl La Figura 2.17 illustra un esempio d’uso di FTP per trasferire un file dal server al client. Questa figura riguarda il trasferimento di un solo file. La connessione di controllo rimane sempre aperta, la connessione dati viene invece aperta e chiusa ripetutamente. Si ipotizza che il file venga trasferito in sei fasi. Appena completato il trasferimento, il processo di controllo server chiude la connessione dati. Dato che il processo di controllo client non ha altri file da trasferire, invia il comando QUIT che fa chiudere la connessione di controllo. Esempio 2.11
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.17: Esempio 2.11
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Il riquadro seguente riporta una sessione FTP reale in cui il client riceve la lista delle directory presenti sul server: Esempio 2.12
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Posta elettronica La posta elettronica (o ) consente agli utenti di scambiarsi messaggi. La natura di questa applicazione è tuttavia differente da altre applicazioni trattate fino a questo momento. In un’applicazione come HTTP o FTP, il programma server è sempre in esecuzione, in attesa di una richiesta dal client. All’arrivo della richiesta, il server provvede a fornire il servizio richiesto. Vi sono una richiesta e una risposta. Nel caso della posta elettronica la situazione è differente.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Posta elettronica (continuazione) Per prima cosa la posta elettronica è considerata una transazione unidirezionale. Quando Gaia invia una a Gabriele, la risposta non è obbligatoria: Gabriele può decidere di rispondere oppure di non rispondere. Se risponde, si tratta comunque di un’altra transazione unidirezionale. Secondariamente non è ragionevole per Gabriele eseguire un programma server e attendere fino a quando qualcuno gli invia una . Gabriele potrebbe spegnere il computer quando non lo utilizza. Questo implica che l’idea di programmazione client/server deve essere realizzata in qualche altro modo, ad esempio utilizzando dei computer intermedi (server).
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Posta elettronica (continuazione) Architettura User Agent Invio di un messaggio di posta elettronica Ricezione di un messaggio di posta elettronica Indirizzi
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Posta elettronica (continuazione) Multipurpose Internet Mail Extensions (MIME) Intestazioni MIME Webmail Caso I Caso II Sicurezza della posta elettronica
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Posta elettronica (continuazione) Message Transfer Agent: SMTP Message Access Agent Comandi e risposte Fasi della consegna di un messaggio di posta POP3 IMAP4
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.18: Scenario classico
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.19: Formato di un messaggio di posta elettronica
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.20: Indirizzi
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.21: Protocolli utilizzati nella posta elettronica
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.6 : Comandi SMTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.7 : Risposte SMTP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.7 : Risposte SMTP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Per illustrare le tre fasi del trasferimento della posta, la Figura 2.22 mostra tutti i passi descritti in precedenza. Nella parte della figura relativa al trasferimento del messaggio si sono separati i messaggi relativi alla preparazione della busta, dell’intestazione e del corpo. Si noti che la sequenza di passi successivi in questa figura viene ripetuta due volte in ciascun trasferimento di la prima dal mittente del messaggio al server di posta locale, la seconda dal server di posta locale al server di posta remoto. Ovviamente, il server di posta locale, una volta ricevuto l’intero messaggio di posta, potrebbe accodarlo per inviarlo al server di posta remoto in un secondo tempo. Esempio 2.13
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.22: Esempio 2.13
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.23: Transazione POP3
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.24: Il protocollo MIME
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.25: Intestazioni MIME
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.8 : Tipi e sottotipi usati dal protocollo MIME
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.9 : Tipi di codifiche per il Content-Transfer-Encoding
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.26: Webmail, casi I e II
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl TELNET Un programma server può fornire un servizio specifico al corrispondente programma client. È tuttavia improponibile avere una coppia client/server per ogni tipo di servizio: il numero di server crescerebbe a dismisura. È decisamente più ragionevole creare una coppia di applicativi client/server che permetta a un utente di accedere a un computer remoto e quindi di utilizzare tutti gli applicativi già presenti sul server. Queste coppie generiche client/server sono chiamate applicazioni di login remoto. TELNET, abbreviazione di TErminaL NETwork, è uno dei primi protocolli di login remoto.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl TELNET (continuazione) Login locale e remoto
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.27: Login locale e remoto
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Secure Shell (SSH) Secure Shell (SSH) è un’applicazione nata per sostituire TELNET e risolvere i suoi problemi di sicurezza. In realtà SSH offre funzionalità molto superiori a quelle di TELNET. Esistono due versioni di SSH: SSH-1 and SSH-2, incompatibili fra di loro. La prima versione, SSH-1, è attualmente obsoleta a causa di alcune lacune di sicurezza. Si discute quindi solamente SSH-2.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl SSH (continuazione) Componenti Applicazioni SSH Transport-Layer Protocol (SSH-TRANS) SSH Authentication Protocol (SSH-AUTH) SSH Connection Protocol (SSH-CONN) SSH per il login remoto SSH per il trasferimento di file
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.28: Componenti principali di SSH
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Il DNS (Domain Name System) I dispositivi connessi in rete vengono individuati dai protocolli TCP/IP mediante il loro indirizzo IP; gli utenti, però, preferiscono usare nomi piuttosto che indirizzi numerici. Per questo motivo è necessario un sistema che associ un indirizzo IP ad ogni nome. Si tratta di una situazione analoga alla rete telefonica, che è progettata per utilizzare dei numeri di telefono, non dei nomi. Gli utenti possono utilizzare degli elenchi personali o l’elenco telefonico generale per associare ai nomi i rispettivi numeri di telefono.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl DNS (continuazione) Spazio dei nomi Spazio dei nomi di dominio Domini Distribuzione degli spazi di dominio Zone Server radice Domini generici Domini nazionali Server DNS nella rete Internet
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl DNS (continuazione) Risoluzione Record di risorsa Risoluzione ricorsiva Risoluzione iterativa Caching Messaggi DNS Incapsulamento Registrar
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.29: Funzionamento di base del DNS
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.30: Spazio dei nomi di dominio
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.31: Nomi di dominio ed etichette
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.32: Domini
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.33: Gerarchia dei name server
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.34: Zone e domini
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.35: Domini generici
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.12 : Etichette dei domini generici
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.36: Domini nazionali
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.37: Risoluzione ricorsiva
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.38: Risoluzione iterativa
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.11 : Tipi di record DNS
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.39: Struttura dei messaggi DNS
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl In UNIX e in Windows si può utilizzare il comando nslookup per ottenere le associazioni nome simbolico/indirizzo numerico. Ecco come ottenere l’indirizzo IP a partire dal nome di dominio: Esempio 2.14
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl 2-4 Paradigma PEER-TO-PEER In questo paragrafo si analizza il paradigma peer-to- peer (P2P). Il paradigma P2P divenne molto popolare con Napster, un servizio di condivisione di file musicali. Napster preparò il terreno per i meccanismi di condivisione dei file P2P che apparvero successivamente. Gnutella venne seguita da Fast- Track, BitTorrent, WinMX e GNUnet.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Reti P2P Gli utenti Internet che intendono condividere le proprie risorse divengono “peer” (pari) e formano una rete. Quando uno dei peer nella rete ha un file da condividere, lo rende disponibile agli altri. Chi è interessato può connettersi al computer dove il file è memorizzato e prelevarlo; una volta prelevato, lo può a sua volta rendere disponibile ad altri peer. Via via che altri peer entrano a far parte della rete e prelevano il file, il gruppo ha a disposizione sempre più copie.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Reti P2P (continuazione) Reti centralizzate Reti decentralizzate Reti non strutturate Reti strutturate
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.40: Rete centralizzata
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl BitTorrent: una rete P2P BitTorrent è un protocollo P2P progettato da Bram Cohen per la condivisione di file particolarmente voluminosi. Il termine condivisione (sharing) in questo contesto è tuttavia usato in modo differente dai classici protocolli di condivisione di file. Non si ha semplicemente un peer che consente a un altro peer di prelevare un intero file: in questo caso è un gruppo di peer che collabora per fornire ad altri peer del gruppo una copia del file. La condivisone dei file avviene tramite un processo collaborativo chiamato torrent. BitTorrent con Tracker
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.41: Esempio di torrent
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl 2-5 Programmazione delle socket In questo paragrafo si mostra come scrivere alcuni semplici programmi client/server in C, un linguaggio di programmazione procedurale. In questo paragrafo si è scelto il linguaggio C; nel Capitolo 10 si approfondirà l’argomento utilizzando Java, che consente un codice più compatto.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Programmazione delle socket in C In questo paragrafo si mostra come utilizzare questa interfaccia con il linguaggio C. L’aspetto importante da comprendere è il ruolo delle socket nella comunicazione. La socket non ha un buffer dove memorizzare i dati che devono essere trasmessi o ricevuti, né è in grado di inviare o di ricevere dati. La socket agisce semplicemente come un riferimento o un’etichetta. I buffer e tutte le variabili necessarie per la comunicazione sono implementate all’interno del sistema operativo.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Socket (continuazione) Strutture dati per le socket File header Utilizzo delle Socket con UDP Diagramma di flusso della comunicazione Esempi di programmazione Comunicazione sequenziale con UDP Comunicazione con il protocollo TCP Socket con il protocollo TCP Diagramma di flusso della comunicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.42: Struttura dati socket
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.43: Uso delle socket con il protocollo UDP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.44: Diagramma di flusso per la comunicazione sequenziale con UDP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.12 : Programma server echo basato sul protocollo UDP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.12 : Programma server echo basato sul protocollo UDP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.13 : Programma client echo basato sul protocollo UDP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.13 : Programma client echo basato sul protocollo UDP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.45: Uso delle socket con il protocollo TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Figura 2.46: Diagramma di flusso per la comunicazione sequenziale con TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.14 : Programma server echo basato sul protocollo TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.14 : Programma server echo basato sul protocollo TCP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.14 : Programma server echo basato sul protocollo TCP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.15 : Programma client echo basato su TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.15 : Programma client echo basato su TCP (continuazione)
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl Tabella 2.15 : Programma client echo basato su TCP (continuazione)