capitolo 2
DESCRIPTION
Capitolo 2. Livello Applicazione. 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. Capitolo 2: Obiettivi. - PowerPoint PPT PresentationTRANSCRIPT
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down
Edizione italiana delle slide a cura di Gabriele D’Angelo e Gaia MaselliTraduzione delle slide di Renato Cortinovis
Copyright © 2013 McGraw-Hill Education Italy srl
Capitolo 2
LivelloApplicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
Capitolo2: indice
2.1 2.1 INTRODUZIONEINTRODUZIONE
2.2 2.2 PARADIGMA CLIENT-SERVERPARADIGMA CLIENT-SERVER
2.3 2.3 APPLICAZIONI STANDARDAPPLICAZIONI STANDARD
2.4 2.4 PARADIGMA PEER-TO-PEERPARADIGMA PEER-TO-PEER
2.5 2.5 PROGRAMMAZIONE DELLE SOCKETPROGRAMMAZIONE DELLE SOCKET
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.1.1 L’offerta di servizi
Internet venne inizialmente progettata per fornire Internet venne inizialmente progettata per fornire servizi ai suoi utenti. servizi ai suoi utenti. Dato che il livello applicazione Dato che il livello applicazione è l’unico che fornisce servizi agli utenti di Internet, è l’unico che fornisce servizi agli utenti di Internet, la sua flessibilità consente di aggiungere nuovi la sua flessibilità consente di aggiungere nuovi protocolli con estrema facilità, così come si è protocolli con estrema facilità, così come si è verificato nella storia di Internet e sta tuttora verificato nella storia di Internet e sta tuttora avvenendo.avvenendo.
Alla nascita di Internet solo alcuni protocolli di Alla nascita di Internet solo alcuni protocolli di livello applicazione erano disponibili per gli utenti; livello applicazione erano disponibili per gli utenti; oggi non è più possibile indicare iloggi non è più possibile indicare ilnumero dei protocolli esistenti poiché ne vengono numero dei protocolli esistenti poiché ne vengono costantemente aggiunti di nuovi.costantemente aggiunti di nuovi.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.1.1 L’offerta di servizi (continuazione)
Protocolli standard e non standardProtocolli standard e non standard
Protocolli standard di livello applicazioneProtocolli standard di livello applicazione
Protocolli non standard di livello Protocolli non standard di livello
applicazioneapplicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.1.2 Paradigmi del livello applicazione
Dovrebbe ormai essere chiaroDovrebbe ormai essere chiaro cheche per utilizzare Internet per utilizzare Internet sono necessari due programmi che interagiscono l’uno con sono necessari due programmi che interagiscono l’uno con l’altro: uno eseguito su un certo computer in qualche parte l’altro: uno eseguito su un certo computer in qualche parte del mondo, l’altro eseguito su un secondo computer in del mondo, l’altro eseguito su un secondo computer in qualsiasi altro luogo.qualsiasi altro luogo.
I due programmi hanno la necessità di scambiarsi messaggi I due programmi hanno la necessità di scambiarsi messaggi sfruttando l’infrastruttura di Internet. La modalità di sfruttando l’infrastruttura di Internet. La modalità di relazione tra questi due programmi non è ancora stata relazione tra questi due programmi non è ancora stata trattata. I due programmi applicativi devono essere entrambi trattata. I due programmi applicativi devono essere entrambi inin grado di richiedere e offrire servizi, oppure ciascuno deve grado di richiedere e offrire servizi, oppure ciascuno deve occuparsi di uno dei due compiti? occuparsi di uno dei due compiti?
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.1.2 Paradigmi del livello applicazione (continuazione)
Client-Server: il paradigma tradizionaleClient-Server: il paradigma tradizionale
Peer-to-peer: il nuovo paradigmaPeer-to-peer: il nuovo paradigma
Il paradigma mistoIl paradigma misto
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2-2 Paradigma CLIENT-SERVER2-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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.2.1 API: Application Programming Interface
Un linguaggio di programmazione prevede un insieme di Un linguaggio di programmazione prevede un insieme di istruzioni matematiche, un insieme di istruzioni per la istruzioni matematiche, un insieme di istruzioni per la manipolazione delle stringhe, un insieme di istruzioni per la manipolazione delle stringhe, un insieme di istruzioni per la gestione dell’input/output ecc.gestione dell’input/output ecc.
Se si vuole sviluppare un programma capace di comunicare Se si vuole sviluppare un programma capace di comunicare con un altro programma, è necessario un nuovo insieme di con un altro programma, è necessario un nuovo insieme di istruzioni per chiedere ai primi quattro livelli dello stack istruzioni per chiedere ai primi quattro livelli dello stack TCP/IP di aprire la connessione, inviare/ricevere dati e TCP/IP di aprire la connessione, inviare/ricevere dati e chiudere la connessione.chiudere la connessione.
Un insieme di istruzioni di questo tipo viene chiamato API Un insieme di istruzioni di questo tipo viene chiamato API (Application Programming Interface).(Application Programming Interface).
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.2.1 API (continuazione)
SocketSocket
Individuare i Socket AddressIndividuare i Socket Address
Socket AddressSocket Address
Lato serverLato server
Lato clientLato client
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.2.2 Utilizzo dei servizi di livello trasporto
Una coppia di processi fornisce servizi agli utenti di Una coppia di processi fornisce servizi agli utenti di Internet, siano questi persone o applicazioni.Internet, siano questi persone o applicazioni.La coppia di processi, tuttavia, deve utilizzare i La coppia di processi, tuttavia, deve utilizzare i servizi offerti dal livello trasporto per la servizi offerti dal livello trasporto per la comunicazione, poiché non vi è una comunicazione comunicazione, poiché non vi è una comunicazione fisica a livello applicazione.fisica a livello applicazione.
Nel livello trasporto della pila di protocolli TCP/IP Nel livello trasporto della pila di protocolli TCP/IP sono previsti due protocolli principali:sono previsti due protocolli principali:
Protocollo UDPProtocollo UDP
Protocollo TCPProtocollo TCP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2-3 Applicazioni client/server standard2-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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.1 World Wide Web e HTTP
In questo paragrafo si introduce per primo il World In questo paragrafo si introduce per primo il World Wide Web, abbreviato con l’acronimo WWW o con Wide Web, abbreviato con l’acronimo WWW o con Web.Web.
Di seguito verrà descritto l’HTTP (Hypertext Transfer Di seguito verrà descritto l’HTTP (Hypertext Transfer Protocol), il protocollo client/server più utilizzato nel Protocol), il protocollo client/server più utilizzato nel Web. Web.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.1 WWW e HTTP (continuazione)
World Wide WebWorld Wide Web
HTTP (HyperText Transfer Protocol)HTTP (HyperText Transfer Protocol)
ArchitetturaArchitettura URL (Uniform Resource Locator)URL (Uniform Resource Locator) Documenti WebDocumenti Web
Connessioni persistenti e non persistentiConnessioni persistenti e non persistenti Formato dei messaggiFormato dei messaggi Richieste condizionali Richieste condizionali CookieCookie
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.1 WWW e HTTP (continuazione)
Web Caching: il server proxyWeb Caching: il server proxy
Aspetti di sicurezza nel protocollo HTTPAspetti di sicurezza nel protocollo HTTP
Posizione del server proxyPosizione del server proxy
Aggiornamento della cacheAggiornamento della cache
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
L’URL http://www.ateneonline.it/forouzan identifica la pagina Web associata all’edizione italiana di questo volume.
La stringa www.ateneonline.it è 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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 prelevaun 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 srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
Si illustra come un client può specificareLa 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 srlB.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 12343.
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 srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.2 FTP
FTP (File Transfer Protocol) è il protocollo FTP (File Transfer Protocol) è il protocollo standard offerto da TCP/IP per la copia di file dastandard offerto da TCP/IP per la copia di file daun host a un altro.un host a un altro.
Sebbene il trasferimento di un file possa sembrare Sebbene il trasferimento di un file possa sembrare un’operazione semplice, vi sono, in realtà, numerosi un’operazione semplice, vi sono, in realtà, numerosi problemi ai quali bisogna prestare attenzione: i due problemi ai quali bisogna prestare attenzione: i due sistemi coinvolti, per esempio, possono adottare sistemi coinvolti, per esempio, possono adottare convenzioni differenti per la denominazione dei file,convenzioni differenti per la denominazione dei file,oppure gestire in modo differente la struttura delle oppure gestire in modo differente la struttura delle directory. directory. Problemi di questo tipo vengono risolti in modo Problemi di questo tipo vengono risolti in modo semplice ed elegante dal protocollo FTP.semplice ed elegante dal protocollo FTP.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.2 FTP (continuazione)
Durata delle due connessioniDurata delle due connessioni
Connessione di controlloConnessione di controllo
Connessione per lo scambio dei datiConnessione per lo scambio dei dati
Sicurezza nel protocollo FTPSicurezza nel protocollo FTP
Comunicazione lungo la connessione per lo Comunicazione lungo la connessione per lo
scambio dei datiscambio dei dati
Trasferimento di fileTrasferimento di file
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 realein 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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.3 Posta elettronica
La posta elettronica (o e-mail) consente agli utenti di La posta elettronica (o e-mail) consente agli utenti di scambiarsi messaggi.scambiarsi messaggi.
La natura di questa applicazione è tuttavia differente da altre La natura di questa applicazione è tuttavia differente da altre applicazioni trattate fino a questo momento. applicazioni trattate fino a questo momento. In un’applicazione come HTTP o FTP, il programma server In un’applicazione come HTTP o FTP, il programma server è sempre in esecuzione, in attesa di una richiesta dal client. è sempre in esecuzione, in attesa di una richiesta dal client. All’arrivo della richiesta, il server provvede a fornire il All’arrivo della richiesta, il server provvede a fornire il servizio richiesto. Vi sono una richiesta e una risposta.servizio richiesto. Vi sono una richiesta e una risposta.
Nel caso della posta elettronica la situazioneNel caso della posta elettronica la situazioneè differente.è differente.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.3 Posta elettronica (continuazione)Per prima cosa la posta elettronica è considerata una Per prima cosa la posta elettronica è considerata una transazione unidirezionale.transazione unidirezionale.
Quando Gaia invia una e-mail a Gabriele, la risposta non è Quando Gaia invia una e-mail a Gabriele, la risposta non è obbligatoria: Gabriele può decidere di rispondere oppure di obbligatoria: Gabriele può decidere di rispondere oppure di non rispondere. Se risponde, si tratta comunque di un’altranon rispondere. Se risponde, si tratta comunque di un’altratransazione unidirezionale.transazione unidirezionale.
Secondariamente non è ragionevole per Gabriele eseguire un Secondariamente non è ragionevole per Gabriele eseguire un programma server e attendere fino a quando qualcuno gli programma server e attendere fino a quando qualcuno gli invia una e-mail.invia una e-mail.
Gabriele potrebbe spegnere il computer quando non lo Gabriele potrebbe spegnere il computer quando non lo utilizza. Questo implica che l’idea di programmazione utilizza. Questo implica che l’idea di programmazione client/server deve essere realizzata in qualche altro modo, ad client/server deve essere realizzata in qualche altro modo, ad esempio utilizzando dei computer intermedi (server).esempio utilizzando dei computer intermedi (server).
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.3 Posta elettronica (continuazione)
ArchitetturaArchitettura
User AgentUser Agent
Invio di un messaggio di posta elettronicaInvio di un messaggio di posta elettronica
Ricezione di un messaggio di posta elettronicaRicezione di un messaggio di posta elettronica
IndirizziIndirizzi
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.3 Posta elettronica (continuazione)
Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME)(MIME) Intestazioni MIMEIntestazioni MIME
WebmailWebmail
Caso ICaso I
Caso IICaso II
Sicurezza della posta elettronicaSicurezza della posta elettronica
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.3 Posta elettronica (continuazione)
Message Transfer Agent: SMTPMessage Transfer Agent: SMTP
Message Access AgentMessage Access Agent
Comandi e risposteComandi e risposte
Fasi della consegna di un messaggio di postaFasi della consegna di un messaggio di posta
POP3POP3
IMAP4IMAP4
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
Figura 2.20: Indirizzi e-mail
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 e-mail: 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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.4 TELNET
Un programma server può fornire un servizio specifico al Un programma server può fornire un servizio specifico al corrispondente programma client.corrispondente programma client.È tuttavia improponibile avere una coppia client/server per È tuttavia improponibile avere una coppia client/server per ogni tipo di servizio: il numero di server crescerebbe a ogni tipo di servizio: il numero di server crescerebbe a dismisura. È decisamente più ragionevole creare una coppia dismisura. È decisamente più ragionevole creare una coppia di applicativi client/server che permetta a un utente di di applicativi client/server che permetta a un utente di accedere a un computer remoto e quindi di utilizzare tutti gli accedere a un computer remoto e quindi di utilizzare tutti gli applicativi già presenti sul server. applicativi già presenti sul server.
Queste coppie generiche client/server sono chiamate Queste coppie generiche client/server sono chiamate applicazioni di login remoto.applicazioni di login remoto.
TELNETTELNET, abbreviazione di TErminaL NETwork, è uno dei , abbreviazione di TErminaL NETwork, è uno dei primi protocolli di login remoto.primi protocolli di login remoto.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.4 TELNET (continuazione)
Login locale e remotoLogin locale e remoto
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.5 Secure Shell (SSH)
Secure Shell (SSH) è un’applicazione nata per Secure Shell (SSH) è un’applicazione nata per sostituire TELNET e risolvere i suoi problemi di sostituire TELNET e risolvere i suoi problemi di sicurezza.sicurezza.
In realtà SSH offre funzionalità molto superiori a In realtà SSH offre funzionalità molto superiori a quelle di TELNET.quelle di TELNET.
Esistono due versioni di SSH: SSH-1 and SSH-2, Esistono due versioni di SSH: SSH-1 and SSH-2, incompatibili fra di loro. La prima versione, SSH-1, incompatibili fra di loro. La prima versione, SSH-1, è attualmente obsoleta a causa di alcune lacune di è attualmente obsoleta a causa di alcune lacune di sicurezza. Si discute quindi solamente SSH-2.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.5 SSH (continuazione)
ComponentiComponenti
ApplicazioniApplicazioni
SSH Transport-Layer Protocol (SSH-TRANS)SSH Transport-Layer Protocol (SSH-TRANS) SSH Authentication Protocol (SSH-AUTH)SSH Authentication Protocol (SSH-AUTH) SSH Connection Protocol (SSH-CONN)SSH Connection Protocol (SSH-CONN)
SSH per il login remotoSSH per il login remoto SSH per il trasferimento di fileSSH per il trasferimento di file
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.6 Il DNS (Domain Name System)
I dispositivi connessi in rete vengono individuati dai I dispositivi connessi in rete vengono individuati dai protocolli TCP/IP mediante il loro indirizzo IP; gli utenti, protocolli TCP/IP mediante il loro indirizzo IP; gli utenti, però, preferiscono usare nomi piuttosto che indirizzi però, preferiscono usare nomi piuttosto che indirizzi numerici.numerici.
Per questo motivo è necessario un sistema che associ un Per questo motivo è necessario un sistema che associ un indirizzo IP ad ogni nome.indirizzo IP ad ogni nome.
Si tratta di una situazione analoga alla rete telefonica, che è Si tratta di una situazione analoga alla rete telefonica, che è progettata per utilizzare dei numeri di telefono, non dei nomi. progettata per utilizzare dei numeri di telefono, non dei nomi.
Gli utenti possono utilizzare degli elenchi personali o Gli utenti possono utilizzare degli elenchi personali o l’elenco telefonico generale per associare ai nomi i rispettivi l’elenco telefonico generale per associare ai nomi i rispettivi numeri di telefono. numeri di telefono.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.6 DNS (continuazione)
Spazio dei nomiSpazio dei nomi Spazio dei nomi di dominioSpazio dei nomi di dominio DominiDomini Distribuzione degli spazi di dominioDistribuzione degli spazi di dominio ZoneZone Server radiceServer radice
Domini genericiDomini generici Domini nazionaliDomini nazionali
Server DNS nella rete InternetServer DNS nella rete Internet
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.3.1 DNS (continuazione)
RisoluzioneRisoluzione
Record di risorsaRecord di risorsa
Risoluzione ricorsivaRisoluzione ricorsiva Risoluzione iterativaRisoluzione iterativa CachingCaching
Messaggi DNSMessaggi DNS IncapsulamentoIncapsulamento RegistrarRegistrar
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2-4 Paradigma PEER-TO-PEER2-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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.4.1 Reti P2P
Gli utenti Internet che intendono condividere le Gli utenti Internet che intendono condividere le proprie risorse divengono “peer” (pari) e formano proprie risorse divengono “peer” (pari) e formano una rete. Quando uno dei peer nella rete ha un file una rete. Quando uno dei peer nella rete ha un file da condividere, lo rende disponibile agli altri.da condividere, lo rende disponibile agli altri.
Chi è interessato può connettersi al computer dove il Chi è interessato può connettersi al computer dove il file è memorizzato e prelevarlo; una volta prelevato, file è memorizzato e prelevarlo; una volta prelevato, lo può a sua volta rendere disponibile ad altri peer.lo può a sua volta rendere disponibile ad altri peer.
Via via che altri peer entrano a far parte della rete e Via via che altri peer entrano a far parte della rete e prelevano il file, il gruppo ha a disposizione sempre prelevano il file, il gruppo ha a disposizione sempre più copie.più copie.
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.4.1 Reti P2P (continuazione)
Reti centralizzateReti centralizzate
Reti decentralizzateReti decentralizzate
Reti non strutturateReti non strutturate
Reti strutturateReti strutturate
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.4.2 BitTorrent: una rete P2P
BitTorrent è un protocollo P2P progettato da Bram Cohen BitTorrent è un protocollo P2P progettato da Bram Cohen per la condivisione di file particolarmente voluminosi.per la condivisione di file particolarmente voluminosi.
Il termine condivisione (sharing) in questo contesto è tuttavia Il termine condivisione (sharing) in questo contesto è tuttavia usato in modo differente dai classici protocolli di usato in modo differente dai classici protocolli di condivisione di file. Non si ha semplicemente un peer che condivisione di file. Non si ha semplicemente un peer che consente a un altro peer di prelevare un intero file: in questo consente a un altro peer di prelevare un intero file: in questo caso è un gruppo di peer che collabora per fornire ad altri caso è un gruppo di peer che collabora per fornire ad altri peer del gruppo una copia del file.peer del gruppo una copia del file.
La condivisone dei file avviene tramite un processo La condivisone dei file avviene tramite un processo collaborativo chiamato collaborativo chiamato torrenttorrent..
BitTorrent con TrackerBitTorrent con Tracker
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2-5 Programmazione delle socket2-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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.5.1 Programmazione delle socket in C
In questo paragrafo si mostra come utilizzare questa In questo paragrafo si mostra come utilizzare questa interfaccia con il linguaggio C. L’aspetto importante da interfaccia con il linguaggio C. L’aspetto importante da comprendere è il ruolo delle socket nella comunicazione.comprendere è il ruolo delle socket nella comunicazione.
La socket non ha un buffer dove memorizzare i dati che La socket non ha un buffer dove memorizzare i dati che devono essere trasmessi o ricevuti, né è in grado di inviare o devono essere trasmessi o ricevuti, né è in grado di inviare o di ricevere dati.di ricevere dati.
La socket agisce semplicemente come un riferimento o La socket agisce semplicemente come un riferimento o un’etichetta. un’etichetta.
I buffer e tutte le variabili necessarie per la comunicazione I buffer e tutte le variabili necessarie per la comunicazione sono implementate all’interno del sistema operativo.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 srlB.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srl
2.5.1 Socket (continuazione)
Strutture dati per le socketStrutture dati per le socket
File headerFile header
Utilizzo delle Socket con UDPUtilizzo delle Socket con UDP Diagramma di flusso della comunicazioneDiagramma di flusso della comunicazione Esempi di programmazioneEsempi di programmazione
Comunicazione sequenziale con UDPComunicazione sequenziale con UDP
Comunicazione con il protocollo TCPComunicazione con il protocollo TCP Socket con il protocollo TCPSocket con il protocollo TCP Diagramma di flusso della comunicazioneDiagramma di flusso della comunicazione
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 sulprotocollo UDP
B.A. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down Copyright © 2013 McGraw-Hill Education Italy srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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 srlB.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)