Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2...

45
Università di Genova Facoltà di Ingegneria Reti di Telecomunicazioni e Telemedicina 1 11. Introduzione ai protocolli del livello di applicazione Prof. Raffaele Bolla 2 R. Bolla -Reti di TLC 1 Lezione 11, v. 1.0 Introduzione al Livello di Applicazione ! La struttura del software/hardware che realizza le comunicazioni nella rete segue una architettura a strati di cui il strato/livello di Applicazione è quello più alto e quindi più vicino all’utente ! Livello di applicazione: protocollo e applicativi Una applicazione “di rete” è composta processi applicativi distribuiti su più nodi terminali (host) I processi su host diversi comunicano scambiandosi messaggi attraverso la rete, rispettando opportune regole e formati definiti tramite protocolli.

Transcript of Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2...

Page 1: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

Università di Genova

Facoltà di Ingegneria

Reti di Telecomunicazioni e Telemedicina 1

11. Introduzione ai protocolli del livello di

applicazione

Prof. Raffaele Bolla

2

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Introduzione al Livello di Applicazione

! La struttura del software/hardware che realizza le

comunicazioni nella rete segue una architettura a strati di cui il

strato/livello di Applicazione è quello più alto e quindi più

vicino all’utente

! Livello di applicazione: protocollo e applicativi

– Una applicazione “di rete” è composta processi applicativi

distribuiti su più nodi terminali (host)

– I processi su host diversi comunicano scambiandosi

messaggi attraverso la rete, rispettando opportune regole e

formati definiti tramite protocolli.

Page 2: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

3

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Applicazioni in comunicazione

Fisico

Link

Rete

Trasporto

Applicazione

Fisico

Link

Rete

Trasporto

Applicazione

Fisico

Link

Rete

Trasporto

Applicazione

4

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Esempi di applicazioni Internet

! Trasferimento di File (FTP)

! Teminale remoto (Telnet)

! WWW (http)

! Posta elettronica (SMTP)

! File System distribuiti (NFS)

! Traduzione nomi-indirizzi (DNS)

! Applicazioni di condivisione dati (Gnutella)

! Sistemi di video-conferenza (H323, RTP)

! Sistemi per la distribuzione di video/audio broadcasting

Page 3: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

5

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

! Un protocollo del Livello di Applicazione è solo unaparte di una Applicazione della rete (http è solo una parte del

Web)

! Un protocollo del Livello di Applicazione, in generale,definisce come le entità ( i processi) applicativecomunicano in rete

! In particolare esso definisce:

– La tipologia di messaggi da scambiare

– La sintassi dei messaggi

– La semantica dei campi

– Quando e come un processo invia o risponde ai messaggi

I Protocolli del Livello di Applicazione

6

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Client e Server

! La comunicazione in rete tra due entità avviene spessoindividuando un Client ed un Server

! Il Client è quell’host che inizia una sessione di dialogo formulandouna richiesta ad un altro host (il Server), il quale risponderà

! Per molte applicazioni, uno stesso host utilizzerà sia il lato Clientche il lato Server

Fisico

Link

Rete

Trasporto

Applicazione

Fisico

Link

Rete

Trasporto

Applicazione

richiesta

risposta

Client Server

Page 4: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

7

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Client e server

! Un host può avere attive sia applicazionicon funzioni di client che di server per undato servizio

! Più in generale alcune applicazionicomprendono ambedue le funzioni.

! La distinzione fra client e server, in questocaso, serve più che altro a definire lemodalità di gestione del dialogo, il clientinizia il dialogo e fa una richiesta, il serverrisponde.

8

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Interfacce Socket

! I processi Client e Server comunicano tra loro inviando ericevendo messaggi tramite le loro interfacce: i Socket

! Un Socket è definibile come un API (Application Programmers’Interface) tra l’applicazione e la rete, si tratta infatti diun’interfaccia fornita dal Livello di Trasporto che permette diutilizzarne i servizi in maniera trasparente.

! I soli aspetti che il gestore dell’applicazione può controllare inrelazione al livello di trasporto sono:

– La scelta dello specifico protocollo di trasporto da usare (TCP o UDP)

– Eventuale possibilità di stabilire alcuni parametri

Page 5: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

9

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Applicazioni

! Non tutte le applicazioni di rete forniscoservizi direttamente all’utente (umano).

! Alcune applicazioni fornisco loro volta unservizio ad altre applicazioni (ad esempio ilDNS, Domain Name System) o integranoapplicazioni locali estendendone lefunzionalità alla rete (ad es. i NFS, NetworkFile System)

10

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

User agent

! Lo User Agent (Agente d’utente) èun’interfaccia tra l’utente e le applicazioni direte che forniscono un servizio direttoall’utente.

! I browser (Mozilla, Explorer, Netscape, …)costituiscono un chiaro esempio di User Agentper l’applicazione di rete Web.

! Eudora, Outlook e Messenger sono invece trediversi User Agent per l’applicazione di postaelettronica.

Page 6: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

11

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Indirizzamento

! Affinché un processo di un host possa inviaremessaggi al processo di un altro host, esso dovràconoscere:

– L’indirizzo IP dell’host di destinazione.

– L’identificativo del processo (numero di porta), sull’host didestinazione, che deve ricevere il messaggio.

! Ai protocolli più comuni del Livello di Applicazionesono stati assegnati [RFC 1700] numeri di portaspecifici:– HTTP: num. di porta 80, POP3: num. di porta 110

– SMTP: num. di porta 25, IMAP: num. di porta 143

– DNS: num. di porta 53

12

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

URL: Uniform Resource Locator

! E’ un indirizzo particolare che identifica la posizione delle risorse nellarete specificando anche le modalità per accedervi.

! La sua forma è del tipo<scheme>:<scheme-specific-part>

dove:– <scheme> è, in sostanza, la modalità generale di accesso, ossia il protocollo (ftp, http, mailto

...)

– <scheme-specific-part> è nella forma:

//<user>:<password>@<host>:<port>/<url-path>

! <user> e <password> sono la login e la password dell’utente

! <host> è il nome o l’IP dell’host e

! <port> è la porta relativa al servizio

! <url-path> è la posizione della risorsa

Page 7: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

13

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

URL: esempio

<scheme>://<user>:<password>@<host>:<port>/<url-path>

Login e password dell’utente

Indirizzo IP o nome dell’host

Porta relativa al servizio

posizione della risorsa

Esempi:

ftp://[email protected]:21/lavori

ftp://rossi:[email protected]:21/lavori

ftp://[email protected]:21/lavori

http://zeus.com.dist.unige.it:8080/~bianchi

http://130.251.8.191:8080/~rossi

file:///C:/documenti/orario.doc

14

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Introduzione WWW

! Il World Wide Web (WWW) è l’applicazione che, a partiredagli inizi degli anni ’90, ha maggiormente contribuito alsuccesso e all’espansione di Internet

! L’HTTP (HyperText Transfer Protocol) è il protocollo dilivello di applicazione che sta alla base del World WideWeb (WWW)

! L’HTTP definisce la struttura dei messaggi scambiati inuna transazione Client-Server per la richiesta e iltrasferimento di “pagine Web”

Page 8: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

15

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

La pagina Web

! Una pagina Web può consistere di uno o più oggetti:

– Un oggetto è un file indirizzabile attraverso un singoloURL.

– I file possono contenere informazioni di diverso tipo:codice HTML (...), immagini JPEG o GIF, Java Applet, clipaudio, etc.

! Generalmente una pagina Web è costituita da un file base ditipo HTML, che ne descrive la struttura generale e ilcontenuto testuale, e da altri oggetti a cui il file base HTMLrinvia attraverso gli URL degli stessi .

16

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

La pagina Web

! Gli oggetti delle pagine Web possono essere:– Statici: sono costituiti da file di archivio che non hanno

bisogno di uno stadio di pre-elaborazione o diinterpretazione da parte del Server.

» Esempio: immagini GIF o JPEG, testi HTML

– Dinamici: sono costruiti, al momento della richiesta, apartire da file tipo script che necessitano di pre-elaborazione da parte di uno specifico interpretepresente sul Server. Per questo motivo uno stessooggetto dinamico può apparire diverso ad ogni nuovarichiesta HTTP.

» Esempio: testi, immagini, oggetti multimediali costruiti inPHP, ASP.....

Page 9: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

17

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il Browser

! Il Browser è l’applicazione che realizza lefunzionalità di Client Web.

! I Browser, generalmente, contengono sia lefunzionalità di User-Agent perl’applicazione Web, sia la realizzazione dellato client per l’HTTP.

! I Browser più diffusi sono Mozilla, MSInternet Explorer, Netscape Navigator eOpera.

18

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il Server Web

! Il Server Web implementa sia il lato Server dell’HTTPsia un particolare database.

! All’interno di questo database è possibile reperire:– Gli oggetti statici delle pagine Web che risiedono sul Server

stesso.

– Tutti i file da elaborare, ognuno con un interprete specifico,con cui costruire gli oggetti dinamici.

! Apache, MS Internet Information Server e NetscapeEnterprise Server sono solo alcuni esempi di ServerWeb molto diffusi.

Page 10: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

19

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Server Web e Browser

TCP

User A

gen

t

Clien

t HT

TP

Serv

er HT

TP

Interp

reti

database

TCP

20

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

HTTP: introduzione

! L’HTTP necessita di trasmissioni affidabili(senza perdita di pacchetti), e, quindi, utilizzacome protocollo di trasporto il TCP ed ilnumero di porta 80.

! Poiché i Server HTTP non mantengono alcunainformazione sui Client e ogni transazioneClient-Server è gestita indipendentemente dallealtre, l’HTTP è definibile come un protocollo“senza stato”.

Page 11: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

21

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

HTTP 1.0 e 1.1

! Esistono due versioni di questo protocollo:– HTTP 1.0 definito nel RFC 1945

– HTTP 1.1 definito nel RFC 2068

Le due versioni (1.1 e 1.0) risultano compatibili tra loro(un Client HTTP 1.0 può “dialogare” con un Server HTTP1.1 e viceversa)

! Queste due versioni dell’HTTP si distinguono solo perquanto concerne la gestione della connessione:– La versione 1.0 può utilizzare solo una connessione di tipo “non

permanente”

– La connessione di tipo “permanente” è, invece, di default per laversione 1.1

22

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Connessione non permanente

! Il trasferimento di una pagina Web con HTTP inmodalità “connessione non permanente” implical’utilizzo di una diversa connessione TCP per ognisingolo oggetto da trasferire.

! Analizziamo il trasferimento di una pagina Web (per es.all’URL http://www.reti.dist.unige.it/index.html) conconnessione in modalità non permanente. Supponiamoinoltre che la pagina Web da trasferire consista in un filebase HTML e di altri 10 oggetti (immagini JPEG), tuttiresidenti, per semplicità, sullo stesso Server.

Page 12: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

23

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Connessione non permanente

! Ecco ciò che succede:1. Il Client HTTP apre una connessione TCP verso il Server.

2. Il Client HTTP, utilizzando il Socket associato allaconnessione aperta al passo precedente, invia il messaggiodi richiesta HTTP per l’oggetto (il file base) che risiedeall’URL http://www.reti.dist.unige.it/index.html.

3. Il Server HTTP riceve, sempre tramite un Socket associatoalla connessione iniziata al passo 1, il messaggio di richiesta,cerca l’oggetto (il file base) che risiede all’URL richiesto,quindi lo incapsula in un messaggio HTTP di risposta e loinvia al Client utilizzando sempre la stessa connessione TCP

24

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Connessione non permanente

4. Il Server HTTP chiude la connessione TCP

5. Il Client HTTP riceve il messaggio di rispostae la connessione TCP viene conclusa.

6. Il Client HTTP estrae dal messaggio dirisposta l’oggetto trasmesso e, se esso fariferimento ad altri oggetti (come nel caso delfile base HTML), ripete il procedimento finqui illustrato per richiedere al Server HTTPtutti gli oggetti correlati a quello appenaestratto.

Page 13: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

25

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Connessione permanente

! Con la connessione permanente il Server HTTP mantieneaperta la connessione TCP dopo aver inviato la risposta alClient al fine di utilizzarla per la trasmissione di successiverichieste e risposte: in particolare è possibile utilizzare la stessaconnessione per il trasferimento di più pagine Web complete(file base+oggetti) residenti sullo stesso Server.

! Data la particolare struttura del controllo di congestione delTCP (slow-start) il trasferimento di pagine Web conconnessione permanente e quindi il comportamento di defaultdell’HTTP 1.1 risulta più efficiente e veloce di quello aconnessione non permanente.

26

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Connessione permanente

! D’altra parte l’utilizzo della connessione in modalitàpermanente presenta alcuni problemi:

–Per ogni oggetto richiesto deve essere stabilita e mantenutauna nuova connessione. (Aumenta il numero di connessionicontemporaneamente attive)

–Per ognuna delle connessioni stabilite devono essere allocatie mantenuti i buffer e le variabili del TCP sia sul Client chesul Server

! Questo potrebbe portare a caricare oltremodo unServer che deve comunicare contemporaneamentecon centinaia di Client

Page 14: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

27

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP

! I messaggi HTTP sono scritti con il testo in codiceASCII.

! I messaggi HTTP possono essere suddivisi in duediverse categorie:– Messaggi di richiesta.

– Messaggi di risposta.

! Ogni messaggio è suddiviso in tre parti principali:– Linea di richiesta o di stato.

– Linee di intestazione.

– Contenuto (entity body).

28

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di richiesta

metodo versioneURLsp sp rc lf

campo nome

intestazione: valore rc lf

campo nome

intestazione: valore rc lf

rc lf

entity body

Linea di richiesta

Linee di intestazione

sp: space

rc: return carriage

lf: line feed

Page 15: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

29

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di richiesta

! La linea di richiesta presenta 3 campi:– Metodo: questo campo può assumere i seguenti valori:

Il metodo maggiormente utilizzato è il get, poiché èquello che consente ai Client di richiedere un oggetto

– URL: l’indirizzo URL dell’oggetto richiesto

– Versione (dell’HTTP): versione HTTP utilizzata dalClient

Ext.methodtracelinkmovepatchpostget

wrappedunlink

delete

copyputhead

options

30

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di richiesta

! Le linee immediatamente successive a quella dirichiesta sono dette linee di intestazione.

! Le linee di intestazione possono essere distinte in trediverse categorie sulla base della tipologia diinformazione contenuta:– General header line: contiene informazioni generali sulla

modalità di transazione Client-Server.» Cache-Control, Connection, Date, Forwarded, Mime-Version.

– Request header line: contiene informazioni relative alle richiestee al Client.

» Accept-Language,Accept-Encoding, Authorization, UserAgent.

– Entity header line: contiene informazioni sulla risorsa richiestae ciò che è contenuto nel corpo dell’entità.

Page 16: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

31

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di richiesta

! Il messaggio HTTP di richiesta prevedeanche la presenza (opzionale) di unContenuto (Entity Body)

! L’utilizzo di questo campo è previsto soloda alcuni metodi di richiesta (come peresempio il metodo post)

32

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di richiesta

! Esempio pratico di un tipico messaggioHTTP di richiesta:

GET /reti/index.html HTTP/1.0

Host: www.reti.dist.unige.it

User-agent: Mozilla/4.0

Accept: text/html, image/gif,image/jpeg

Accept-language: it

Linea di richiesta

Linee di

intestazione

Page 17: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

33

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di risposta

versione frasecodice di statosp sp rc lf

campo nome

intestazione: valore rc lf

campo nome

intestazione: valore rc lf

rc lf

entity body

Linea di richiesta

Linee di intestazione

sp: space

rc: return carriage

lf: line feed

34

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di risposta

! Anche il messaggio di risposta dell’HTTPpuò essere suddiviso in tre parti differenti:

– Linea di stato

– Linee di intestazione

– Contenuto

! Il contenuto, poiché contiene l’oggettorichiesto, costituisce il nucleo delmessaggio di risposta

Page 18: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

35

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di risposta

! La linea di stato è composta da tre diversicampi:– Versione: la versione di HTTP utilizzata dal

Server.

– Codice di stato: descrive lo stato della rispostaalla richiesta inoltrata

» 200, 400, 404, 301, 505

– Frase: contiene un messaggio relativo allo statodescritto nel campo precedente

» OK, Bad Request, Forbidden, Not Found, Internal Server Error

36

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di risposta

! Le linee di intestazione, analogamente almessaggio di richiesta, possono essere classificatein tre diverse categorie:– General header line: contiene informazioni generali

sulla modalità di transazione Server-Client» Gli stessi campi del messaggio di richiesta

– Response header line: contiene informazioni relativealle risposte e al Server

» Location, Public, Server, Proxy Authenticate, Retry After

– Entity header line: contiene informazioni concernentiall’oggetto contenuto nel corpo dell’entità

» Content Type, Content Length, Last Modified

Page 19: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

37

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il messaggio HTTP di risposta

! Esempio di un tipico messaggio HTTP dirisposta:

HTTP/1.1 200 OK

Connection: Close

Date: Thu, 03 Feb 2003 09:15:04 GMT

Server:Apache/1.3.0 (Unix)

Last-Modified: Mon, 22 Jul 2003 15:43:23 GMT

Content-Length:14287

Content-Type: text/html

[dati..............................]

Linea di richiesta

Linee di

intestazione

Entity Body

38

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Autenticazione e Cookie

! E’ spesso molto utile che un sito Web possaidentificare gli utenti, sia al fine di limitare gliaccessi al Server, sia al fine di dispensarecontenuti in funzione dell’identità dell’utente.

! L’HTTP, essendo un protocollo senza stato, nonpermette una risoluzione diretta di questoproblema. Per risolvere questo problemavengono, dunque, utilizzati due meccanismi:– Autenticazione.

– Cookie.

Page 20: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

39

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Autenticazione

! L’autenticazione è un metodo di identificazionedell’utente tramite username e password.

! L’HTTP, per realizzare questo meccanismo, mette adisposizioni particolari codici di stato e intestazioni.

! Esempio Client-Server con autenticazione:– Il Client invia un messaggio di richiesta ordinario .

– Il server risponde con un corpo dell’entità vuoto e un codicedi stato 401 Authorization Required e una linea diintestazione con WWW-Authenticate che specifica lemodalità di identificazione.

– Il Client, a sua volta, risponde con un messaggio di richiestacontenente la linea di intestazione Authorization: completadi username e password.

40

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Cookie

! I Cookie, definiti nel RFC 2109, costituiscono unmeccanismo utilizzabile dai siti Web per associarespecifiche informazioni agli utenti. Possonoessere utilizzati per diversi scopi quali:– l’autenticazione senza la richiesta di username e

password

– Per memorizzare le preferenze di un utente» Esempio pubblicità mirata in visite successive

– Per conservare una sorta di stato della transazione incorso

» Esempio elenco dei prodotti nel carrello della spesa in un sitodi acquisti on-line

Page 21: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

41

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Cookie

! Esempio di funzionamento del Cookie:1. Il Client contatta il sito Web per la prima volta

2. Nel messaggio di risposta il Server include una linea di intestazione deltipo “Set-Cookie: <cookie>”, dove il campo cookie comprende:

Nome del cookie, valore, scadenza, cartella/e, dominio

3. Il Client riceve la risposta e aggiunge una linea, contenente i dati delcookie ricevuto, ad un particolare file cookie interno al browser

4. Nei successivi messaggi di richiesta il Client utilizzarà, dove richiestodal cookie stesso, la linea di intestazione “Cookie:” e i dati diidentificazione reperibile nel file di cookie

5. A questo punto il Server conosce le informazioni che in precedenzaaveva associato all’utente

42

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Sistemi intermediari

! Il funzionamento dell’HTTP può prevederel’esistenza di alcuni sistemi intermediari.

! In presenza di questi sistemi intermediari non visarà una connessione end-to-end diretta tra ilbrowser e il server Web, e le stesse richieste orisposte HTTP saranno in qualche modo “filtrate”o “permutate” da ognuno dei sistemiintermediari.

! Esistono tre tipologie di sistemi intermediari:– Proxy

– Gateway

– Tunnel

Page 22: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

43

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Proxy Server

! Un Proxy agisce per conto di altri Client e presenta le richieste ditali Client ad un Server, operando come Server nell’iterazionecon il Client e da Client nell’iterazione con il Server

! Vi sono due situazioni che richiedono l’uso di un Proxy:– Intermediario di sicurezza (es. firewall)

– Interfaccia tra differenti versioni di HTTP

Risposta HTTP Risposta HTTP

Richiesta HTTP Richiesta HTTP

44

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Gateway

! Un Gateway è un server che appare al Client come se fosse ilServer di destinazione, ed agisce per conto di Server chepotrebbero non essere in grado di comunicare direttamente con ilClient

! Vi sono due scenari in cui si può utilizzare un Gateway:– Intermediario di sicurezza (es. firewall)

– Interfaccia con Server non-HTTP (realizzati con protocolli differentidall’HTTP)

Risposta HTTP

Richiesta HTTP

Risposta HTTP

Richiesta HTTP

Page 23: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

45

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Tunnel

! A differenza del Proxy e del Gateway, il Tunnelnon opera sulle richieste e risposte HTTP ma èsemplicemente un punto di collegamento fra dueconnessioni TCP

Risposta HTTP

Richiesta HTTP

46

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Web Cache

! La Web Cache è un meccanismo presente neiProxy Server che permette la memorizzazionedegli oggetti delle pagine Web richiesterecentemente.

! Le funzionalità di Web cache sono utili per:– Ridurre il tempo di risposta a una richiesta del Client.

– Ridurre il traffico sul link di accesso ad Internet.

– Ridurre il traffico globale all’interno di Internet.

– Fornire un’infrastruttura per la rapida distribuzionedei contenuti, anche per siti che risiedono su serverlenti e con poche risorse.

Page 24: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

47

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Web Cache

! Il Proxy Server consulta la Web cache ad ognirichiesta HTTP da parte di un Client:– Se l’oggetto cercato è contenuto nell’archivio locale, allora il

Proxy inoltra direttamente al Client un messaggio dirisposta contenente l’oggetto.

– Se la Web cache non contiene l’oggetto, allora il ProxyServer invierà un messaggio di richiesta al Server didestinazione. Quando il Proxy riceve il messaggio dirisposta, memorizza l’oggetto all’interno della Web cache elo inoltra al Client tramite un messaggio di risposta HTTP.

48

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Caching Cooperativo

! Web cache multiple, situate in diversi siti,possono cooperare e migliorare le performanceglobali della rete.

! Le diverse cache possono essere organizzate inmodo gerarchico.

! Un esempio di “caching” cooperativo è NLANR:– Molte cache a livello nazionale servono cache di

diverse istituzioni sparse per il mondo.

! Una struttura alternativa è rappresentata dal“cluster di cache”:– I Client consultano una cache diversa in base all’URL

ricercato (es. tramite funzioni di Hash)

Page 25: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

49

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Web Cache

! Valutiamo, in modo grossolano, i benefici apportatida una Web Cache nel caso illustrato in figura:

! Dimensione media oggetti=100Kbit

! Tasso medio interarrivo richieste oggetti =15ric./s

! Intensità di traffico sulla Lan =15ric./s.*100Kb/10Mbps = 0.15

! Intensità di traffico sul link di accesso:– senza Web cache = 15ric./s.*100Kb/1.5Mbps =1

– con Web cache con hit-rate del 40% = 0.6

! Supponendo il ritardo medio di ricerca dell’oggetto:– Sul Proxy = 0.010 s.

– Sul Server di destinazione dal Gateway Internet

= 2.0 s.

! Ritardo medio:– Senza cache Web >> 2 sec. (ordine dei minuti)

– Con cache Web = 0.6*2+0.4*0.010 = 1.2 s. circa

Server di

origine

Internet

Rete privata

10 Mbps LAN

Link d’accesso

1.5 Mbps

Proxy Server

50

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Posta elettronica

! L’e-mail, o posta elettronica, è una delle applicazioni direte attualmente più diffuse.

! L’applicazione di posta elettronica consente lavisione/trasferimento asincrono di messaggi contenentitesto, hyperlink, immagini, suoni e video.

! L’asincronicità del servizio consiste nel fatto che– il messaggio è consegnato e posto in una casella di posta (mailbox)

associata al destinatario, senza che questi debba essere presente.

– Il destinatario può accedere e leggere la propria “posta” in qualunquemomento possa e lo desideri.

! Pur essendo simile al servizio di “posta ordinaria”, laposta elettronica è molto più veloce (su Internet quasi intempo reale), più flessibile e molto meno costosa.

Page 26: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

51

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Il servizio di posta elettronica: Schema diprincipio

mailserver

mailserver

mailserver

SMTP

User Agent

SMTP

SMTP

User Agent

User Agent

User Agent

User AgentUser Agent

52

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

I componenti del sistema

! Server di posta (Mail Server):– ricevono i messaggi da consegnare;

– smistano la posta nelle mailbox degli utenti locali;

– inviano i messaggi dei propri utenti al server di destinazionecorretto;

– consentono agli utenti di accedere alle proprie mailbox;

– Es. di applicativi: sendmail, exim, qmail, postfix, exchange.

! User Agent:– forniscono un’interfaccia agli utenti per le operazioni legate ai

messaggi (lettura, scrittura, ...);

– interagiscono con i server di posta per inviare/ricevere messaggi egestire le mailbox;

– es. di applicativi: mail, pine, elm, Eudora, Outlook, NetscapeMessenger.

Page 27: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

53

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Architettura del sistema di posta elettronica

! L’utente utilizza il proprio user agent per collegarsi ad un MailServer allo scopo di:– accedere alla propria mailbox;

– inviare messaggi.

! In linea di principio, un Mail Server potrebbe anche risiedere sulPC locale dell’utente– In questo caso, però, il PC dovrebbe rimanere sempre acceso e collegato

alla rete, in modo da poter ricevere in qualunque momento nuovimessaggi dagli altri server.

! L’utente è individuato da un URL:

<utente>@<server> o <utente>@<dominio>– il server che fornisce il servizio è identificato interrogando il DNS

responsabile del dominio in questione;

– lo stesso server può fornire il servizio di posta per domini diversi.

54

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Servizi e protocolli di posta elettronica

• La posta elettronica fornisce due tipologie di servizio agliutenti:– Il trasferimento vero e proprio dei messaggi;

– L’accesso remoto alle mailbox degli utenti.

! I protocolli utilizzati per fornire queste tipologie di serviziosono rappresentati da:– SMTP (Simple Mail Transfer Protocol): definisce le modalità di

trasferimento del messaggio fra Server di posta.

– POP (Post Office Protocol), IMAP (Internet Message Access Protocol):due distinti protocolli che definiscono le modalità di accesso da partedegli user agent alle proprie mailbox.

Page 28: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

55

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Invio di un messaggio di Posta Elettronica (1)

! Nel momento in cui un utente desidera inviare unmessaggio di posta elettronica, le operazioni checonsentono di consegnare il messaggio sono leseguenti:– Lo user agent del mittente richiede il servizio di inoltro al proprio

Mail Server utilizzando il protocollo SMTP.

– Tale Mail Server consegna il messaggio ricevuto direttamente alserver di destinazione, senza utilizzare nessun intermediario.

– Il Mail Server di destinazione riceve il messaggio e, in alternativa:» inserisce il messaggio nella mailbox dell’utente ;

» inoltra il messaggio verso una diversa destinazione (forwarding).

56

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Invio di un messaggio di Posta Elettronica (2)

! In teoria lo user agent potrebbe anche inviare ilmessaggio direttamente al server dell’utente didestinazione.

! L’utilizzo del proprio Mail Server risulta più opportunoper gestire sia i permessi d’accesso, sia eventualiproblemi nella consegna del messaggio (destinazionenon raggiungibile o malfunzionante):– i server SMTP mantengono una coda (message queue) dei messaggi da

inviare;

– nel caso in cui la consegna non sia possibile, il messaggio rimane in coda e laconsegna viene rimandata;

– ad intervalli regolari (di solito 30 minuti), il mail server tenta l’invio deimessaggi ancora presenti nella coda;

– dopo che il messaggio è rimasto in coda per un certo periodo (generalmentealcuni giorni) il server interrompe i tentativi e notifica il fallimento all’utentetramite e-mail.

Page 29: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

57

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Use

r A

gen

t

Cli

ent

SM

TP

Ciclo completo di trasferimento di un messaggio

Use

r A

gen

t

Cli

ent

IMA

P

Cli

ent

SM

TP

1. L’utente interroga il proprio server per l’invio del messaggio e/o per l’accesso alla

propria mailbox:

• La consegna del messaggio al proprio server avviene tramite il protocollo SMTP,

• La ricezione può avvenire utilizzando il protocollo POP o IMAP.

2. Il messaggio in uscita dal Server viene trasferito, tramite una transazione SMTP, al

Server di destinazione e da questi inserito nella mailbox dell’utente.

3. L’utente destinatario (quando lo ritiene opportuno) accede alla propria mailbox tramite

i protocolli POP o IMAP e recupera/gestisce i messaggi in essa presenti.

Cli

ent

PO

P

Cli

ent

SM

TP

Ser

ver

IMA

PS

erv

er

SM

TP

Mailbox

database

Ser

ver

IMA

P

Ser

ver

SM

TP

Mailbox

database

Ser

ver

SM

TP

58

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP - Simple Mail Transfer Protocol

! L’SMTP (Simple Mail Transfer Protocol), definitonella RFC 821, è il protocollo che definisce lemodalità di dialogo tra le entità coinvolte nelloscambio del messaggio.

! Il trasferimento del messaggio avviene tramiteun’unica connessione TCP (sulla porta 25) tra ilserver che invia il messaggio e quello didestinazione.

! L’SMTP non utilizza server intermedi di transito.

Page 30: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

59

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP Simple Mail Transfer Protocol

! I messaggi (intesi come PDU a livello di applicazione)scambiati sono di tipo testuale.

! Poiché l’SMTP è stato definito nei primi anni ’80, presentaalcune caratteristiche ormai obsolete e limitative, come adesempio, l’uso della codifica in codice ASCII a 7 bit comeformato di testo.

! L’SMTP utilizza connessioni TCP permanenti: quindiognuna di esse può essere utilizzata per il trasferimento dipiù messaggi tra due mail server.

60

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP

! L’SMTP è caratterizzato da una fase di handshake, dove il Cliente il Server si scambiano, prima del trasferimento del vero eproprio messaggio, diverse informazioni.

! Generalmente il Client SMTP invia messaggi strutturati comesegue:

– Command (Comando) è il tipo di informazione o l’operazione che ilServer SMTP deve compiere o ricevere, ad esempio:

» HELO, MAIL FROM, RCPT TO, DATA, QUIT.

– Argument (Argomento) è l’eventuale informazione aggiuntiva richiestadall’istruzione di command.

– SP = “spazio”, CRLF = Carriage Return Line Feed.

Command SP Argument CRLF

Page 31: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

61

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP

! Il server SMTP generalmente risponde al Clientcon messaggi così strutturati:

! Dove:– Code (Codice): è un codice che identifica l’esito del

messaggio inviato dal Client o lo stato del Server;

– Comment (Commento): è un campo opzionale dove ilServer può fornire un messaggio esplicativo delcodice.

Code SP Comment (OPT) CRLF

62

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP : esempio di comunicazione Client-Server

! Esempio di comunicazione SMTP fra il Clientzeus.com.dist.unige.it e il Serverquercia.reti.dist.unige.it :

(C: messaggio inviato dal Client, S: risposta dal Server, in gialloin campo command, in azzurro il campo argument)

» S: 220 quercia.reti.dist.unige.it

» C: HELO zeus.com.dist.unige.it

» S: 250 Hello zeus.com.dist.unige.it, pleased to meet you

» C: MAIL FROM: <[email protected]>

» S: 250 [email protected]... Sender OK

» C: RCPT TO: <[email protected]>

» S: 250 [email protected]... Recipient OK

Page 32: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

63

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

SMTP: esempio di comunicazione Client-Server

»C: DATA

»S: 354 Enter mail, end with “.” on a line by itself

»C: Ciao vecchio mio. -- messaggio --

»C: Come stai ? -- messaggio --

»C: . -- messaggio --

»S: 250 Message accepted for delivery

»C: QUIT

»S: 221 quercia.reti.dist.unige.it closing connection

64

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Formato del messaggio

! Il formato del messaggio di posta elettronica è definitonella specifica RFC 822.

! Il messaggio risulta composto da due parti:– intestazione, consiste in una parola chiave seguita dai relativi

argomenti:» i campi sono definiti dall’RFC 822;

» consente di includere informazioni accessorie al messaggio: nome delmittente (From), data di invio (Date), priorità (Priority), server SMTPattraversati, ecc.;

» alcune informazioni sono inserite durante la composizione del messaggio,altre dai server SMTP attraversati dallo stesso.

– contenuto del messaggio o entity-body:» contiene il messaggio vero e proprio utilizzando la codifica ASCII a 7 bit.

Page 33: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

65

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

POP3 - Post Office Protocol vers. 3

! Il POP3 è definito nella RFC 1939.

! Il POP3 è un protocollo di accesso estremamentesemplice ma con funzionalità limitate.

! Gli user agent implementano il lato client di questoprotocollo, mentre i mail server implementanoquello server.

! Il POP3 utilizza come protocollo di trasporto ilTCP. Le connessioni sono sempre aperte dal clientPOP3 sulla porta numero 110 del server.

66

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

POP3

! A connessione TCP avvenuta, il POP3 agisce in trefasi distinte:– Autorizzazione: l’utente invia la login (username +

password) al Server.

– Transazione: l’utente “scarica” i messaggi, li puòcontrassegnare per l’eliminazione (un mail reader puòessere configurato per download-and-delete o per download-and-keep) e può ottenere delle statistiche sulla posta.

– Aggiornamento: questa fase avviene dopo che il Client hainviato il comando “quit”; concludendo la transazione ilServer elimina tutti i messaggi che erano staticontrassegnati per l’eliminazione.

Page 34: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

67

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

POP3

! Le transazioni Client-Server POP3 avvengono conmessaggi in codifica ASCII, e appaionosolitamente come nel seguente esempio:

– S: +OK POP3 server ready

– C: user alice

– S: +OK

– C: pass hungry

– S: +OK user successfully logged on

– C: list

– S: 1 498 - (id e dimensione dell’email) -

– S: 2 912

– S: .

– C: retr 1

Autorizzazione

Transazione

68

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

POP3

– S: <message 1 contents>

– S: .

– C: dele 1

– C: retr 2

– S: <message 2 contents>

– S: .

– C: dele 2

– C: quit

– S: +OK POP3 server signing off

• In questo esempio il Client chiede al Server di elencare ledimensioni di ciascun messaggio memorizzano nellamailbox. Successivamente recupera ed elimina ciascunmessaggio dal Server.

Transazione

Aggiornamento

Page 35: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

69

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

POP3

! La sintassi dei comandi, come list, retr, delee quit, e i relativi codici di risposta utilizzatinelle transazioni Client-Server POP3 èdefinita nella RFC 1939.

70

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

IMAP - Simple Mail Transfer Protocol

! L’IMAP (Internet Mail Access Protocol), definito dallaRFC 2060, è un protocollo di accesso ai Server di postaelettronica con molte più caratteristiche e, quindi, piùcomplesso del POP3.

! I server IMAP usano connessioni TCP sulla porta 143.

! L’IMAP consente agli utenti di creare le proprie cartelledi posta sul server e di è gestirle come se fossero locali.

! In particolare consente di:– creare e mantenere cartelle di messaggi all’interno della

mailbox sul server;

– ricercare messaggi secondo criteri specifici nelle cartelleremote.

Page 36: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

71

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

IMAP

! Una delle cause che rendono l’IMAP molto più complessodel POP3 è data dalla necessità, da parte del Server, dimemorizzare e aggiornare una gerarchia di cartelle perogni utente.

! Un’altra importante caratteristica di questo protocollo èdata dalla possibilità di ottenere anche solo alcune parti(componenti) dei messaggi.

! Per esempio, uno user agent che accede al Mail Serverutilizzando IMAP è in grado di estrapolare la solaintestazione dei messaggi o una singola componente di unmessaggio MIME “multiparte”.

72

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

IMAP

! Una sessione IMAP consiste di:

– una connessione client-server,

– una fase di handshake,

– interazioni Client-Server,

– chiusura della connessione.

! Le interazioni IMAP sono strutturalmentesimili ma più complesse di quelle POP(comando del Client + risposta del Server).

Page 37: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

73

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

IMAP

Non Authenticated State

Authenticated State

Selected State

Logout State

• Alle fasi della sessione Client-Server IMAP è legata una

sequenza composta da quattro differenti stati:

Stato iniziale in cui comincia la connessione e

l’utente deve fornire login e password.

In questa fase, prima di poter inviare comandi che

influiscano sui messaggi, l’utente deve selezionare

una cartella.

L’utente può inviare comandi che influiscono sui

messaggi (recupera, sposta, elimina, etc.).

Stato di fine sessione.

74

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

HTTP

! Oggi molti utenti utilizzano il servizio e-mail tramite Web, ossia ilMail Server viene realizzato estendendo opportunamente lefunzionalità di un Web-Server tramite script o programmi CGI(Common Gateway Interface).

! In questo modo è possibile usare come User Agent un normale Web-Browser e accedere alla propria mailbox attraverso transazioni HTTP.

! In questo caso, quindi, il Web-Browser opera come interfaccia ed usal’HTTP (invece me MIME o POP) per comunicare con un Mail -Web-Server, che crea pagine dinamiche tramite le quali gli utenti gestisconola posta.

! Il Mail-Web-Server usa comunque SMTP per comunicare con gli altriMail-Server (Web o meno).

Page 38: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

75

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME - Multipurpose Internet Mail Extension

! Il MIME (Multipurpose Internet Mail Extension) èun’estensione della struttura RFC 822 che eliminaalcune limitazioni presenti nello schemaSMTP/RFC 822:– SMTP non può trasferire direttamente file eseguibili o

comunque binari.

– SMTP non può trasmettere i dati di un testo che comprendacaratteri di una lingua nazionale specifica (presenti in codicia 8 bit o superiori).

– I Server SMTP possono rifiutare messaggi che superano unacerta dimensione.

– Alcune realizzazioni di SMTP non aderisconocompletamente allo standard definito nella RFC 821.

76

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME- Multipurpose Internet Mail Extension

! La specifica MIME comprende le seguenti caratteristiche:

– Sono stati definiti 5 nuovi campi nell’intestazione delmessaggio oltre a quelli già presenti ed ereditati dallaRFC 822.

– Sono stati definiti nuovi formati di contenuto chesupportano la multimedialità nella posta elettronica.

– Sono state definite le codifiche di trasferimento cheabilitano la conversione di ogni formato in una formaprotetta da eventuali alterazioni introdotte dal sistemadi posta.

Page 39: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

77

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: I campi dell!intestazione

! I 5 nuovi campi di intestazione introdotti dal MIMEsono:– MIME-Version: deve assumere un valore 1, che indica che il

messaggio è conforme agli RFC.

– Content-Type: Descrive il tipo di dati contenuti nell’entity-body.

– Content-Transfer-Encoding: Indica il tipo di codificautilizzata per rappresentare l’entity-body in un modocompatibile al trasporto SMTP.

– Content-ID: Serve ad identificare univocamente le entitàMIME in diversi contesti.

– Content-Description: Una descrizione in testo non codificatodell’oggetto contenuto nell’entity-body.

78

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Content-Type

! L’RFC 2046 definisce il formato dell’intestazione Content-Type: Content-Type: type/subtype; parameters

! Type: indica il tipo generico di dati (immagine, …);

! Subtype: indica il formato per quel tipo di dati (JPEG, …;

! Parameters: sono i parametri facoltativi:– Specificano altri aspetti del contenuto; molti hanno senso solo se associati

ad solo ad una singola specifica coppia type/subtype.

– I nuovi set di type/subtype vanno registrati presso lo IANA (InternetAssigned Numbers Authority).

– Il processo di registrazione è definito nella RFC 2048.

Page 40: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

79

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0MIME: L!intestazione Content-Type

Type/Subtype

application

audio

video

image

text

Dati binari a 8 bit

Postscript Adobe

basic

32kadpcm

mpeg

gif

jpeg

plain

HTML

message

multipart

external body

partial

RFC822

digest

alternative

parallel

mixed

SubtypeTypeSubtypeType

80

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Content-Type

Il contenuto dell!Entity-body (1)

! In presenza di un entity-body di tipo text/plain non ènecessario alcun software particolare per decifrare il testo.

– In questo caso il campo parameters può essere utilizzatoper specificare il set di caratteri da utilizzare outilizzato:

» Content-Type: text/plain; charset=“ISO-8859-1”

» Content-Type: text/plain; charset=“us-ascii”

! I tipi image, video e audio ovviamente indicano chel’entity-body contiene rispettivamente un’immagine, unvideo o un file audio.

Page 41: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

81

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Content-Type

Il contenuto dell!Entity-body (2)

! Il tipo application fa riferimento a tipologie di datibinari da non interpretare o ad informazioni che devonoessere elaborate da una applicazione specifica.

! Il tipo multipart indica che il corpo del messaggiocontiene diverse parti indipendenti.– Il campo Content-Type dell’intestazione include un parametro,

detto Boundary, che indica il limite tra le diverse partidell’entity-body.

Content-Type: multipart/mixed; Boundary=“StartOfNextPart”

– Nel testo le diverse parti sono distinte con una linea di tipo--StartOfNextPart

– La fine del messaggio è indicata con una riga --StartOfNextPart--

82

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Content-Type

Il contenuto dell!Entity-body (3)

! Ci sono 4 sottotipi del tipo multipart e ognuno diessi ha la stessa sintassi generale:– Il sottotipo multipart/mixed è impiegato quando ci

sono diverse parti indipendenti che devono esserecollocate secondo un ordine particolare;

– Il sottotipo multipart/parallel è impiegato quandol’ordine delle parti non è significativo;

– Nel sottotipo multipart/alternative le varie parti sonodiverse rappresentazioni delle stesse informazioni dautilizzare in alternativa;

– Il sottotipo multipart/digest è impiegato quandoquando ognuna delle parti è un messaggio RFC 822con relative intestazioni.

Page 42: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

83

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Content-Type

Il contenuto dell!Entity-body (4)

! Il tipo message consente di realizzare diversefunzionalità a seconda del sub-type ad essoseguente:– RFC822: l’entity-body è esso stesso un messaggio

(RFC822 o MIME) incapsulato.

– Partial: usato per la frammentazione di messaggi digrosse dimensioni.

» I parametri specificano le informazioni necessarie per ricostruire ilmessaggio originario a destinazione.

– External-Body: contiene un puntatore ad un oggettoche si trova altrove.

» I parametri specificano la locazione dell’oggetto da includere.

84

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Context-Transfer-Encoding

! Lo standard MIME definisce attualmente due metodi perla codifica dei dati:– quoted-printable;

– base64.

! In realtà, il campo Context-Transfer-Encoding può assumereulteriori 4 valori:– 7bit: i dati sono rappresentati da brevi linee di caratteri ASCII;

– 8bit: possono essere presenti caratteri ASCII codificati a 8 bit (bit piùsignificativo a 1);

– binary: oltre a essere presenti caratteri non-ASCII le linee potrebbero nonessere brevi quanto necessario per il trasporto tramite SMTP;

– x-token: utilizzato per codifiche proprietarie.

! I valori 7bit, 8bit e binary indicano che non è stata applicatanessuna codifica specifica (da MIME), ma fornisconoalcune indicazioni di massima sulla natura dei dati.

Page 43: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

85

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Context-Transfer-Encoding

Codifiche di trasferimento

! Il valore quoted-printable indica l’uso di unaparticolare codifica volta a mantenere laleggibilità di testi composti principalmente (inorigine) da caratteri ASCII.

! La codifica di trasferimento base64 ècomunemente impiegata per i dati binari generici,in modo da renderli trasparenti alle elaborazionida parte dei programmi di trasporto della postaelettronica.

! Questa tecnica codifica i dati binari in ingresso incaratteri “visualizzabili”.

86

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Context-Transfer-Encoding

Codifiche di trasferimento: Base64

! La codifica Base64 presenta le seguentiimportanti caratteristiche:– L’intervallo dei valori forniti dalla funzione di codifica

è un insieme di caratteri universalmenterappresentabile.

– L’insieme dei caratteri è formato da 65 caratterivisualizzabili, uno dei quali serve da riempimento “=”.Avendo 64 caratteri disponibili, ognuno di essi vieneusato per rappresentare 6 bit del contenuto originario.

– Nessun carattere di controllo è incluso nell’insieme.

– Il carattere “-” non è usato perché nel formato RFC 822ha un significato specifico.

Page 44: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

87

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

MIME: L!intestazione Context-Transfer-Encoding

Codifiche di trasferimento: Base64

010001001000 110010110101

24 bit

R64 R64R64R64

01001001 010100100111100100110001

I 1 y R4 caratteri = 32 bit

codificaValore 6 bitcodificaValore 6 bit

000010

000001

000000

C

B

A

F000101

000100

000011

E

D

88

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Esempio di messaggio in ricezione (1)

Return-Path: <[email protected]>X-Sieve: cmu-sieve 2.0Return-Path: <[email protected]>Received: from bacco (unknown [130.251.8.154])

by quercia.reti.dist.unige.it (Postfix) with SMTP id 8FC58BC75

for <[email protected]>; Fri, 21 Mar 2003 12:23:26 +0100 (CET)

From: "Raffaele Bolla" <[email protected]>To: "Matteo Repetto" <[email protected]>Subject: l'ultima slide ha l'intestazione MIME!Date: Fri, 21 Mar 2003 12:27:51 +0100Message-ID: <[email protected]>MIME-Version: 1.0Content-Type: multipart/mixed; boundary="Boundary_(ID_lNI7PoiA/9T4Nh5ShGyDmw)“

--Boundary_(ID_lNI7PoiA/9T4Nh5ShGyDmw)Content-type: text/plain; format=flowed; charset=us-asciiContent-transfer-encoding: 7BITTesto del messaggio...

--Boundary_(ID_lNI7PoiA/9T4Nh5ShGyDmw)Content-type: image/gif; name=logo.gifContent-transfer-encoding: BASE64Content-disposition: inline; filename=logo.gifR0lGODlhAASuAecAAAICAt7y9hYCApLH4jgKCkKGo2QSEml2dxGSyRCOxoIWFhiK

vxCKw4JmS6YaGhqEtapaWiJ0mmdpYz19l/pGRmJiXdWWlipXbEVxgHZeR7YeHvp0

maSSSzLZpJNPQhmllFNSWaWVV2KZpZZbctmll1+CGaaYY5JZpplnopmmmmuy2aab

b8IZp5xz0lmnnXfimaeee/J5Y0AAOw==

--Boundary_(ID_lNI7PoiA/9T4Nh5ShGyDmw)--

Page 45: Universit di Genova Facolt di Ingegneriareti.dist.unige.it/RetiTelemedicina/lucidi/L11... · 2 Lezione 11, v. 1.0 R. Bolla -Reti di TLC 1 ... Il World Wide Web (WWW) l Õapplicazione

89

R. Bolla -Reti di TLC 1Lezione 11, v. 1.0

Esempio di messaggio in ricezione (2)

Return-path: <[email protected]>Date: Mon, 24 Feb 2003 17:44:07 +0100From: enrico <[email protected]>Subject: OffertaX-Sender: [email protected]: Raffaele Bolla <[email protected]>Message-id: <[email protected]>MIME-version: 1.0X-Mailer: QUALCOMM Windows Eudora Version 5.2.0.9Content-type: multipart/mixed; boundary="Boundary_(ID_y5M7R9QVCWgB9amJYydjuA)"--Boundary_(ID_y5M7R9QVCWgB9amJYydjuA)Content-type: text/plain; charset=iso-8859-1; format=flowedContent-transfer-encoding: QUOTED-PRINTABLEIl Netgear non =E8 pi=F9 disponibile su TechData.Il costo dell'apparato su Esprinet (www.esprinet.com) =E8 di 200=80 += IVA. (+=206=80 di spedizione)ciaoEnrico--Boundary_(ID_y5M7R9QVCWgB9amJYydjuA)Content-type: application/msword; name=ADSL.doc; x-mac-type=42494E41; x-mac-creator=4D535744Content-transfer-encoding: BASE64Content-disposition: attachment; filename=ADSL.doc0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAATgAAAAAAAAAAEAAAUAAAAAEAAAD+////AAAAAE0AAAD==--Boundary_(ID_y5M7R9QVCWgB9amJYydjuA)--