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

Vedi demo