119
. Forouzan, F. Mosharraf – Reti di calcolatori. Un approccio top-down zione italiana delle slide a cura di Gabriele D’Angelo e Gaia Maselli duzione delle slide di Renato Cortinovis Copyright © 2013 McGraw-Hill Education Italy srl Capitolo 2 Livello Applicazione

Capitolo 2

Embed Size (px)

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 Presentation

Citation preview

Page 1: Capitolo 2

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

Page 2: Capitolo 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

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

Page 3: Capitolo 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

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.

Page 4: Capitolo 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-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.

Page 5: Capitolo 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.1: Connessione logica a livello applicazione

Page 6: Capitolo 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.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.

Page 7: Capitolo 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.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

Page 8: Capitolo 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.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?

Page 9: Capitolo 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.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

Page 10: Capitolo 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.2: Esempio di architettura client-server

Page 11: Capitolo 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.3: Esempio di architettura peer-to-peer

Page 12: Capitolo 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-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.

Page 13: Capitolo 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.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).

Page 14: Capitolo 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.2.1 API (continuazione)

SocketSocket

Individuare i Socket AddressIndividuare i Socket Address

Socket AddressSocket Address

Lato serverLato server

Lato clientLato client

Page 15: Capitolo 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.4: L’interfaccia socket nella pila dei protocolli

Page 16: Capitolo 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.5: Impiego delle socket nella comunicazione tra processi

Page 17: Capitolo 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.6: Un socket address

Page 18: Capitolo 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

È 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

Page 19: Capitolo 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.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

Page 20: Capitolo 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 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.

Page 21: Capitolo 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.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.

Page 22: Capitolo 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.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

Page 23: Capitolo 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.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

Page 24: Capitolo 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

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

Page 25: Capitolo 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)

Page 26: Capitolo 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.8: Architettura generale di un browser

Page 27: Capitolo 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

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

Page 28: Capitolo 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

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

Page 29: Capitolo 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.9: Esempio 2.4

Page 30: Capitolo 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

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

Page 31: Capitolo 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.10: Esempio 2.5

Page 32: Capitolo 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.11: Formati dei messaggi di richiesta e di risposta

Page 33: Capitolo 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

Tabella 2.1: Metodi di HTTP

Page 34: Capitolo 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

Tabella 2.2: Intestazione di richiesta

Page 35: Capitolo 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

Tabella 2.3: Intestazione di risposta

Page 36: Capitolo 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

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

Page 37: Capitolo 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.12: Esempio 2.6

Page 38: Capitolo 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

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

Page 39: Capitolo 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.13: Esempio 2.7

Page 40: Capitolo 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

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.

Page 41: Capitolo 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

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

Page 42: Capitolo 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.14: Esempio 2.9

Page 43: Capitolo 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

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

Page 44: Capitolo 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.15: Esempio di architettura di rete con server proxy

Page 45: Capitolo 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.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.

Page 46: Capitolo 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.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

Page 47: Capitolo 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.16: Il protocollo FTP

Page 48: Capitolo 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

Tabella 2.4: Principali comandi FTP

Page 49: Capitolo 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

Tabella 2.5: Esempi di risposte FTP

Page 50: Capitolo 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

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

Page 51: Capitolo 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.17: Esempio 2.11

Page 52: Capitolo 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

Il riquadro seguente riporta una sessione FTP realein cui il client riceve la lista delle directory presenti sul server:

Esempio 2.12

Page 53: Capitolo 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.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.

Page 54: Capitolo 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.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).

Page 55: Capitolo 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.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

Page 56: Capitolo 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.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

Page 57: Capitolo 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.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

Page 58: Capitolo 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.18: Scenario classico

Page 59: Capitolo 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.19: Formato di un messaggio di posta elettronica

Page 60: Capitolo 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.20: Indirizzi e-mail

Page 61: Capitolo 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.21: Protocolli utilizzati nella posta elettronica

Page 62: Capitolo 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

Tabella 2.6: Comandi SMTP

Page 63: Capitolo 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

Tabella 2.7: Risposte SMTP

Page 64: Capitolo 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

Tabella 2.7: Risposte SMTP (continuazione)

Page 65: Capitolo 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

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

Page 66: Capitolo 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.22: Esempio 2.13

Page 67: Capitolo 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.23: Transazione POP3

Page 68: Capitolo 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.24: Il protocollo MIME

Page 69: Capitolo 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.25: Intestazioni MIME

Page 70: Capitolo 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

Tabella 2.8: Tipi e sottotipi usati dal protocollo MIME

Page 71: Capitolo 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

Tabella 2.9: Tipi di codifiche per il Content-Transfer-Encoding

Page 72: Capitolo 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.26: Webmail, casi I e II

Page 73: Capitolo 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.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.

Page 74: Capitolo 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.4 TELNET (continuazione)

Login locale e remotoLogin locale e remoto

Page 75: Capitolo 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.27: Login locale e remoto

Page 76: Capitolo 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 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.

Page 77: Capitolo 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

Page 78: Capitolo 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.28: Componenti principali di SSH

Page 79: Capitolo 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.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.

Page 80: Capitolo 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.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

Page 81: Capitolo 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.1 DNS (continuazione)

RisoluzioneRisoluzione

Record di risorsaRecord di risorsa

Risoluzione ricorsivaRisoluzione ricorsiva Risoluzione iterativaRisoluzione iterativa CachingCaching

Messaggi DNSMessaggi DNS IncapsulamentoIncapsulamento RegistrarRegistrar

Page 82: Capitolo 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.29: Funzionamento di base del DNS

Page 83: Capitolo 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.30: Spazio dei nomi di dominio

Page 84: Capitolo 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.31: Nomi di dominio ed etichette

Page 85: Capitolo 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.32: Domini

Page 86: Capitolo 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.33: Gerarchia dei name server

Page 87: Capitolo 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.34: Zone e domini

Page 88: Capitolo 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.35: Domini generici

Page 89: Capitolo 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

Tabella 2.12: Etichette dei domini generici

Page 90: Capitolo 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.36: Domini nazionali

Page 91: Capitolo 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.37: Risoluzione ricorsiva

Page 92: Capitolo 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.38: Risoluzione iterativa

Page 93: Capitolo 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

Tabella 2.11: Tipi di record DNS

Page 94: Capitolo 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.39: Struttura dei messaggi DNS

Page 95: Capitolo 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

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

Page 96: Capitolo 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-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.

Page 97: Capitolo 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.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.

Page 98: Capitolo 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.4.1 Reti P2P (continuazione)

Reti centralizzateReti centralizzate

Reti decentralizzateReti decentralizzate

Reti non strutturateReti non strutturate

Reti strutturateReti strutturate

Page 99: Capitolo 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.40: Rete centralizzata

Page 100: Capitolo 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.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

Page 101: Capitolo 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.41: Esempio di torrent

Page 102: Capitolo 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-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.

Page 103: Capitolo 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.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.

Page 104: Capitolo 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.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

Page 105: Capitolo 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.42: Struttura dati socket

Page 106: Capitolo 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.43: Uso delle socket con il protocollo UDP

Page 107: Capitolo 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.44: Diagramma di flusso per la comunicazione

sequenziale con UDP

Page 108: Capitolo 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

Tabella 2.12: Programma server echo basato sul protocollo UDP

Page 109: Capitolo 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

Tabella 2.12: Programma server echo basato sul

protocollo UDP (continuazione)

Page 110: Capitolo 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

Tabella 2.13: Programma client echo basato sulprotocollo UDP

Page 111: Capitolo 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

Tabella 2.13: Programma client echo basato sul

protocollo UDP (continuazione)

Page 112: Capitolo 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.45: Uso delle socket con il protocollo TCP

Page 113: Capitolo 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.46: Diagramma di flusso per la comunicazione

sequenziale con TCP

Page 114: Capitolo 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

Tabella 2.14: Programma server echo basato sul

protocollo TCP

Page 115: Capitolo 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

Tabella 2.14: Programma server echo basato sul

protocollo TCP (continuazione)

Page 116: Capitolo 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

Tabella 2.14: Programma server echo basato sul

protocollo TCP (continuazione)

Page 117: Capitolo 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

Tabella 2.15: Programma client echo basato su TCP

Page 118: Capitolo 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

Tabella 2.15: Programma client echo basato su TCP

(continuazione)

Page 119: Capitolo 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

Tabella 2.15: Programma client echo basato su TCP

(continuazione)