55 -- protocolli applicativiprotocolli applicativi · i protocolli applicativi sono le regole e i...

60
5 5 - Protocolli Applicativi Protocolli Applicativi Università di Bergamo Dipartimento di Ingegneria dell’Informazione e Metodi Matematici 1 Fondamenti di Reti e Telecomunicazione Fondamenti di Reti e Telecomunicazione F. Martignon: Fond. Reti e Telecomunicazione

Upload: others

Post on 20-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

5 5 -- Protocolli ApplicativiProtocolli Applicativi

Università di BergamoDipartimento di Ingegneria dell’Informazione e Metodi Matematici

1

Fondamenti di Reti e TelecomunicazioneFondamenti di Reti e Telecomunicazione

F. Martignon: Fond. Reti e Telecomunicazione

Page 2: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Processi e ProtocolliProcessi e Protocolli� Processi in esecuzione su sistemi remoti possono

scambiarsi informazioni e servizi mediante una rete

� L’interazione avviene mediante lo scambio di messaggi

� I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

2

interpretano il significato� I protocolli applicativi sono solo una parte delle

applicazioni di rete:

Applicazioni di rete Protocolli di rete

Web (web server, browser, HTML)

HTTP

E-mail (mail server, mail client, MIME)

SMTP

F. Martignon: Fond. Reti e Telecomunicazione

Page 3: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Interazione coi livelli inferiori:Interazione coi livelli inferiori:architettura OSIarchitettura OSI

� Lo scambio di messaggi fra i processi applicativi avviene utilizzando i servizi dei livelli inferiori attraverso i SAP (Service Access Point)

� Ogni processo è associato ad un SAP� Applicazioni nella pila OSI:

3

Presentazione

Sessione

WEB FTP Mail

Trasporto

Livello controllato dall’applicazione

Livelli controllati dal sistema operativo

F. Martignon: Fond. Reti e Telecomunicazione

Page 4: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Interazione coi livelli inferiori:Interazione coi livelli inferiori:architettura TCP/IP architettura TCP/IP

� I protocolli applicativi che si appoggiano sull’InternetProtocol si appoggiano direttamente sul protocollo ditrasporto (TCP oppure UDP)

� I SAP vengono chiamatiporte e l’insieme porta TCP/UDP eindirizzo IP viene chiamato socket

4

WEB FTP Mail

TCP/UDP

Livello controllato dall’applicazione

Livelli controllati dal sistema operativo

F. Martignon: Fond. Reti e Telecomunicazione

Page 5: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Architettura ClientArchitettura Client--ServerServer

� Ovviamente esiste una stretta relazione tra la struttura del programma software in esecuzione sugli host remoti ed il protocollo applicativo

� Lo scopo fondamentale del colloquio tra processi remoti è quello di fornire servizi. In particolare, due sono le funzioni che possono essere svolte da un processo applicativo

5

che possono essere svolte da un processo applicativo� richiedere servizi� fornire servizi

� Se ogni processo applicativo svolge una sola delle due funzioni siamo in presenza di un’interazione di tipo client-server

F. Martignon: Fond. Reti e Telecomunicazione

Page 6: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Architettura ClientArchitettura Client--ServerServer

� Un processo client è solo in grado di fare richieste di servizio (informazioni) e di interpretare le risposte

� Un processo server ha solo il compito di interpretare le richieste e fornire le risposte

� Se è necessario nello stesso host sia fare richieste che fornire risposte vengono usati due processi, client e server.

6

client server

request

response

risposte vengono usati due processi, client e server.� Un protocollo applicativo per un’architettura client-server

rispecchia questa divisione di ruoli e prevede messaggi di richiesta (request) generati dal lato client e messaggi di risposta (response) generati dal server

F. Martignon: Fond. Reti e Telecomunicazione

Page 7: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Programmi Client e ServerProgrammi Client e Server

� Distinguiamo tra programma (software) e processo, istanza del programma in esecuzione su un host

� Un processo server è in esecuzione a tempo illimitato sul proprio host (daemon) e viene attivato mediante una passive open

� Un processo client viene attivato solo al momento di fare le

7

� Un processo client viene attivato solo al momento di fare le richieste e viene attivato mediante una active open su richiesta dell’utente o di altro processo applicativo

� La passive open del server fa sì che da quel momento il server accetti richieste dai client

� l’active open del client richiede l’indicazione dell’indirizzo e della porta del server

F. Martignon: Fond. Reti e Telecomunicazione

Page 8: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Programmi Client e ServerProgrammi Client e Server

� Normalmente più client possono inviare richieste ad uno stesso server

� Un client può fare più richieste contemporanee

request

response

8

response

... ...

F. Martignon: Fond. Reti e Telecomunicazione

Page 9: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Programmi Client e ServerProgrammi Client e Server

� Un client può essere eseguito in modalità parallela o seriale� esempio: invia più richieste in parallelo per i file che

compongono una pagina web� Anche un server può essere eseguito in modalità parallela o

seriale� Normalmente gli applicativi che usano UDP sono gestiti in

9

� Normalmente gli applicativi che usano UDP sono gestiti in modo seriale:

� i pacchetti con le richieste arrivati al server vengono

immagazzinati e attendono il loro turno; il server li esamina e

genera le risposte

F. Martignon: Fond. Reti e Telecomunicazione

Page 10: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Programmi Client e ServerProgrammi Client e Server

� Normalmente i server che usano TCP vengono eseguiti in modalità parallela e sono dunque in grado di rispondere a più richieste contemporaneamente

� Con ognuno dei client viene aperta una connessione TCP che viene mantenuta per il tempo necessario a scambiare richieste e risposte

10

scambiare richieste e risposte� La gestione delle procedure per ciascun client collegato

avviene mediante la generazione di processi figli� Si parla di applicativi multi-thread

� La generazione di un figlio è detta fork

F. Martignon: Fond. Reti e Telecomunicazione

Page 11: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)

� architettura client-server� i client richiedono oggetti (file) identificati da un URL

al server� i server restituiscono i file�

• "Hypertext Transfer Protocol -- HTTP/1.0," RFC 1945, May 1996.

• "Hypertext Transfer Protocol -- HTTP/1.1," RFC 2068, January 1997

11

� nessuna memoria sulle richieste viene mantenuta nei server (protocollo stateless)

client server

HTTP request

HTTP response

F. Martignon: Fond. Reti e Telecomunicazione

Page 12: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Trasporto dei messaggiTrasporto dei messaggi

� HTTP fa uso di TCP per il trasporto dei messaggi

� una web page è di solito composta da un documento base (HTML) e più oggetti collegati

� la richiesta di una web page fa uso di URL (Uniform Resource Locator)

12

URL (Uniform Resource Locator)

http ://www.unibg.it /index.html

Indica il protocolloapplicativo

Indica l’indirizzodi rete (IP) del server

Indica la pagina web richieste

La porta TCP viene definita per default (80)

Method Host:// : Port Path/

F. Martignon: Fond. Reti e Telecomunicazione

Page 13: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Trasporto dei messaggiTrasporto dei messaggi

� Supponiamo che un client richieda una pagina HTML di un server al cui interno sono contenuti i riferimenti ad altri oggetti (ad esempio 10 figure che compongono la pagina e che occorre visualizzare insieme al testo HTML).

�nel trasferimento dell’insieme di oggetti

13

:

dell’insieme di oggetti sono possibili 2 modalità

�Non-persistentconnection (default mode di HTTP 1.0)

�Persistentconnection (default mode di HTTP 1.1)

Altri oggetti

Testo HTML

F. Martignon: Fond. Reti e Telecomunicazione

Page 14: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Non persistentNon persistent� Viene aperta una connessione per una sola request-

response: inviata la pagina, il server chiude la connessione� La procedura viene ripetuta per tutti i file collegati al

documento HTML base� Le connessioni TCP per più oggetti possono essere aperte

in parallelo per minimizzare il ritardo� Il numero massimo di connessioni è di solito configurabile

14

� Il numero massimo di connessioni è di solito configurabile nel browser

Request (index.html)

Response (index.html file)

Request (image1.jpg)

Request (image2.jpg)

F. Martignon: Fond. Reti e Telecomunicazione

Page 15: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Persistent connectionPersistent connection� Nel caso persistent il server non chiude la connessione dopo

l’invio dell’oggetto� La connessione rimane aperta e può essere usata per

trasferire altri oggetti della stessa pagina web o anche più pagine

� I server chiudono di solito la connessione sulla base di un time-out� without pipelining: il client invia una nuova richiesta solo

15

� without pipelining: il client invia una nuova richiesta solo dopo aver ricevuto la risposta per la precedente

� with pipelining: più richieste vengono inviate consecutivamente dal client

F. Martignon: Fond. Reti e Telecomunicazione

Page 16: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

MessaggiMessaggiRichieste

16

GET /ntw/index.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language:it

F. Martignon: Fond. Reti e Telecomunicazione

Page 17: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

MessaggiMessaggi

Methods:

GET E’ usato quando il client vuole scaricare un documento dal server. Il documento richiesto è specificato nell’URL. Il server normalmente risponde con il documento richiesto nel corpo del messaggio di risposta.

HEAD E’ usato quando il client non vuole scaricare il documento ma solo alcune informazioni sul documento (come ad esempio la data dell’ultima modifica). Nella risposta il server non inserisce il documento ma solo degli header informativi.

17

ma solo degli header informativi.

POST E’ usato per fornire degli input al server da utilizzare per un particolare oggetto (di solito un applicativo) identificato nell’URL.

PUT E’ utilizzato per memorizzare un documento nel server. Il documento viene fornito nel corpo del messaggio e la posizione di memorizzazione nell’URL.

�Altri methods:� PATCH, COPY, MOVE, DELETE, LINK, UNLINK, OPTIONS.

F. Martignon: Fond. Reti e Telecomunicazione

Page 18: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

MessaggiMessaggi

Risposte

18

F. Martignon: Fond. Reti e Telecomunicazione

Page 19: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

MessaggiMessaggiStatus codes:

100 Continue: Prima parte della richiesta accettata.

200 OK: La richiesta ha avuto successo;

l’ informazione è inclusa

301 Moved Permanently: L’oggetto èstato spostato nell’URL indicato

302 Found (Moved Temporarily):

L’oggetto èstato spostato nell’URL indicato

�1xx Informational

�2xx Success

�3xx Redirection

19

500 Internal server error Errore o guasto nel server

501 Not implemented Funzione non implementata

503 Service unavailable Servizio non disponibile

Temporarily): indicato

400 Bad Request: errore generico

401 Unauthorized: Accesso senza necessari account e

passwd

404 Not Found: l’oggetto non esiste sul server

�4xx Client error

�5xx Server error

F. Martignon: Fond. Reti e Telecomunicazione

Page 20: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

HeaderHeader

� Gli header servono per scambiare informazione di servizio aggiuntiva

� E’ possibile inserire più linee di header per messaggio� Esempi:

Header name Header value:

20

� Esempi:

Cache-control Informazione sulla cache

Accept Formati accettati

Accept-language Linguaggio accettato

Authorization Mostra i permessi del client

If-modified-since Invia il doc. solo se modificato

User-agent Tipo di user agent

F. Martignon: Fond. Reti e Telecomunicazione

Page 21: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

MessaggiMessaggi

� Esempio: di richiesta oggetto

GET /ntw/index.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language:it

� Esempio: risposta

21

HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html data data data data data ...

� Esempio: risposta

F. Martignon: Fond. Reti e Telecomunicazione

Page 22: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Cache locale: Cache locale: get condizionatoget condizionato

Client :GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg If-modified-since: Mon, 22 Jun 1998 09:23:24

� E’ possibile evitare di scaricare oggetti memorizzati nella memoria locale se non sono stati modificati

22

Server :HTTP/1.0 304 Not Modified Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) (empty entity body)

� E’ possibile anche usare il metodo HEAD

F. Martignon: Fond. Reti e Telecomunicazione

Page 23: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Cache di rete: uso dei proxyCache di rete: uso dei proxy

� Compito principale dei proxy è fornire una grande memoria di cache

� Se un documento è contenuto nella cache viene scaricato più velocemente sul client

23

F. Martignon: Fond. Reti e Telecomunicazione

Page 24: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

ProxyProxy� I proxy sono degli application gateway, ovvero degli

instradatori di messaggi di livello applicativo� Devono essere sia client che server� Il server vede arrivare tutte le richieste dal proxy

(mascheramento degli utenti del proxy)

User AgentServer

HTTP

Proxy

F. Martignon: Fond. Reti e Telecomunicazione

24

LL

IP

TCP

HTTP

LL

IP

TCP

HTTP

LL

IP

TCP

HTTP

Page 25: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

AutenticazioneAutenticazione� HTTP è stateless e quindi non si possono riconoscere richieste

successive dello stesso utente� in HTTP esiste un elementare meccanismo di autenticazione

(account e password) che serve a riconoscere gli utenti� Normalmente il browser memorizza passwd e account in modo da

non richiedere la digitazione ogni volta

GET /ntw/index.html HTTP/1.1

401 Authorization Required

25

401 Authorization RequiredWWW-Authenticate:[tipo di autenticazione]

GET /ntw/index.html HTTP/1.1Authorization: account, passwd

GET image.gif HTTP/1.1Authorization: account, passwd

...

F. Martignon: Fond. Reti e Telecomunicazione

Page 26: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

CookieCookie� Esiste anche un altro modo per riconoscere richieste successive di

uno stesso utente che non richiede di ricordare password� Il numero di cookie inviato dal server viene memorizzato in un

opportuno file� Cambiando il numero di cookie ad ogni operazioni (ad es. e-

commerce) si può mantenere uno stato “virtuale” per ciascun utente.

GET /ntw/index.html HTTP/1.1

200 OK

26

200 OKSet-cookie:18988466

GET /ntw/carrello/index.html HTTP/1.1Cookie: 18988466

GET image.gif HTTP/1.1Cookie: 18988466

...

F. Martignon: Fond. Reti e Telecomunicazione

Page 27: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

HTML HTML (HyperText Markup Language)(HyperText Markup Language)

� HTTP trasferisce file e non si occupa della loro semantica� Il funzionamento del WWW si basa sull’interpretazione

di file e sulla loro visualizzazione� Pagine di testo formattate sono trasferite come file ASCII

mediante dei comandi di formattazione specificati nel linguaggio HTML

27

linguaggio HTML� Le pagine HTML possono contenere riferimenti ad altri

oggetti che dal browser possono essere interpretati � come parte del documento da visualizzare (immagini)� come link ad altre pagine web

� Se una pagina HTML è memorizzata nel server e viene inviata su richieste è una pagina statica

F. Martignon: Fond. Reti e Telecomunicazione

Page 28: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Pagine WEB dinamichePagine WEB dinamiche

� Se una pagina viene creata al momento della richiesta (e talora in base alle informazioni fornite del client) si parla di pagine dinamiche

� Se una richiesta si riferisce ad una pagina dinamica il server esamina la richiesta, esegue un programma associato a quella richiesta e genera la pagina di risposta

28

associato a quella richiesta e genera la pagina di risposta sulla base dell’output di un programma

GET /cgi-bin/prog.pl HTTP/1.1

prog.pl

200 OK Pagina dinamica

F. Martignon: Fond. Reti e Telecomunicazione

Page 29: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Pagine WEB attivePagine WEB attive

� Una pagina web può anche contenere un programma che deve essere eseguito dal client

� Il programma viene scaricato come un oggetto della pagina ed eseguito in locale sulla macchina del client

� Può essere utile per ottenere delle pagine in grado di interagire con l’utente, per grafici in movimento, ecc.

29

interagire con l’utente, per grafici in movimento, ecc.

GET /java/applet HTTP/1.1

200 OK programma

F. Martignon: Fond. Reti e Telecomunicazione

Page 30: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

File Transfer Protocol (FTP)File Transfer Protocol (FTP)

� E’ un protocollo usato per il trasferimento di file tra due host remoti

� Sia sul lato client che sul lato server l’applicazione opera direttamente sul file system della macchina (Local File System, LFS)

• "File Transfer Protocol”, RFC 959, October 1985.

30

F. Martignon: Fond. Reti e Telecomunicazione

Page 31: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

File Transfer Protocol (FTP)File Transfer Protocol (FTP)� Fa uso di TCP per il trasporto� Vengono aperte due connessioni TCP: una per i dati e

una di controllo

User Interface

client

server

31

Control process

Data tranfer process

LFS

Control process

Data tranfer process

LFS

Port 21

Port 20

F. Martignon: Fond. Reti e Telecomunicazione

Page 32: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: user interfaceFTP: user interface

32

F. Martignon: Fond. Reti e Telecomunicazione

Page 33: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: connessione di controlloFTP: connessione di controllo� La connessione di controllo viene aperta in modo simile

alle altre applicazioni� Il server lancia una passive open sulla porta 21 e

rimane in attesa di richieste di connessione� Il client lancia un active open ogni volta deve iniziare

una sessione di trasferimento file e fa partire una richiesta di connessione TCP usando una porta dinamica

� La connessione di controllo è persistent, ovvero rimane

33

� La connessione di controllo è persistent, ovvero rimane aperta per tutta la durata della sessione di trasferimento e può essere usata per molti file da trasferire

Control process

Data transfer process

LFS LFS

client serverPassive openPort 21 Control

process

Data transfer process

Active openPort 46778

F. Martignon: Fond. Reti e Telecomunicazione

Page 34: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: connessione datiFTP: connessione dati� Le connessioni dati sono non-persistent ovvero sono aperte

solo per trasferire un file o altre informazioni e poi sono immediatamente chiuse

� Per aprire una connessione dati:Metodo 1:� Il client che desidera iniziare un trasferimento dati

effettua una passive open su una porta di sua scelta � Il client comunica la porta al server sulla connessione di

34

� Il client comunica la porta al server sulla connessione di controllo mediante il comando PORT

� Il server fa un active open verso la porta del client usando il suo numero di porta noto 20

Metodo 2:� Il client invia il comando di PASV al server� Il server sceglie un numero di porta, fa una passive open

e comunica il numero di porta al client nella risposta� Il client fa un active open verso la porta comunicata dal

serverF. Martignon: Fond. Reti e Telecomunicazione

Page 35: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: connessione datiFTP: connessione dati

� Il trasferimento di dati può avvenire con diverse modalità e formati:

� File type:� ASCII file: file di caratteri� Binary: formato generale per tutti i file non

testuali�

35

� Transmission mode:� Stream mode: il file viene trasferito al TCP

come una sequenza non strutturata di byte� Block mode: il file viene trasferito come una

serie di data blocks, ovvero in blocchi di cui i primi tre byte rappresentano l’header (block header)

F. Martignon: Fond. Reti e Telecomunicazione

Page 36: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: comandiFTP: comandi� Il trasferimento di comandi di FTP è testuale (ASCII)

USER usernamePASS password QUIT log out

Comandi di accesso

CWD change directoryDELE delete fileLIST list filesRETR retrive file

Gestione file

36

RETR retrive fileSTOR store file

TYPE file typeMODE transfer mode

PORT client portPASV server choose port

Modalità di trasferimento

Gestione delle porte

F. Martignon: Fond. Reti e Telecomunicazione

Page 37: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: risposteFTP: risposte

125 Data connection already open; transfer starting

200 Command OK

225 Data connection open

226 Closing data connection

227 Entering passive mode; srv. sends Ip_add.,port

230 User login OK

37

230 User login OK

331 Username OK, password required

425 Can't open data connection

426 Connection closed; tranfer aborted

452 Error writing file

500 Syntax error; unrecognized command

501 Syntax error in parameters or arguments

502 Command not implemented

F. Martignon: Fond. Reti e Telecomunicazione

Page 38: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

FTP: esempio trasferimento fileFTP: esempio trasferimento fileClient Server

220 service ready

USER martignon

331 username OK; password ?

PASS pippo123

230 user login OK

38

PORT 45667

150 opening data connection

LIST /usr/pub

125 data connection OK

226 closing data connection

Data tranfer

F. Martignon: Fond. Reti e Telecomunicazione

Page 39: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

EE--mailmail� L’e-mail è un’applicazione che consente di inviare in

modo asincrono messaggi testuali

� E’ basata su una rete di server che comunica con il prot. appl. SMTP (Simple Mail Transfer Protocol)

39

F. Martignon: Fond. Reti e Telecomunicazione

Page 40: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

SMTPSMTP

� E’ un protocollo testuale� richiede che anche il corpodei messaggi sia ASCII

� i documenti binari devono essere convertiti in ASCII

� quando un server riceve un messaggio da uno user agent

J.B. Postel, "Simple Mail Transfer Protocol," RFC 821, August 1982.

40

� quando un server riceve un messaggio da uno user agent� mette il messaggio in una coda� apre una connessione TCP con la porta 25 del server

del destinatario� trasferisce il messaggio

F. Martignon: Fond. Reti e Telecomunicazione

Page 41: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Colloquio tra client e server SMTPColloquio tra client e server SMTPS: 220 hamburger.eduC: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet youC: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender okC: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient okC: DATA S: 354 Enter mail, end with "." on a line by itself

41

S: 354 Enter mail, end with "." on a line by itselfC: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for deliveryC: QUIT S: 221 hamburger.edu closing connection

F. Martignon: Fond. Reti e Telecomunicazione

Page 42: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Formato dei messaggiFormato dei messaggi

� Il formato dei messaggi inviati (comando DATA) è specificato

� Alcuni header standard precedono il corpo del messaggio vero e proprio

D.H. Crocker, "Standard for the Format of ARPA Internet Text Messages," RFC 822, August 1982.

42

From: [email protected] To: [email protected] Subject: Request of information<black line>

<Body>.

F. Martignon: Fond. Reti e Telecomunicazione

Page 43: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME) (MIME)

� L’estensione MIME al RFC 822 ha come scopo principale quello di consentire il trasferimento di messaggi non ASCII

•"Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies," RFC 2045, Nov. 1996. •"Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types," RFC 2046, Nov. 1996.

From: [email protected] To: [email protected]

43

To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data .....

........................

.....base64 encoded data

.

F. Martignon: Fond. Reti e Telecomunicazione

Page 44: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME) (MIME)

� Codifiche:� Base64:

�Le sequenze di bit da trasferire sono divise in gruppi di 24 bit�Ogni gruppo è in diviso in 4 sotto-gruppi di 6 bit�Ad ogni gruppo viene aggiunto uno zero in testa e vengono

trasferiti come caratteri ASCII

11001100 10000001 00111001

44

11001100 10000001 00111001

110011 001000 000100 111001

0110011 0001000 0000100 0111001

Z I E 5

base64

F. Martignon: Fond. Reti e Telecomunicazione

Page 45: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME) (MIME)

� Quoted-printable�Le sequenze di bit da trasferire sono divise in gruppi di 8 bit�Se una sequenza corrisponde ad un carattere ASCII è inviata così

com’è �Altrimenti viene inviata come tre caratteri , “=“ seguito dalla

rappresentazione esadecimale del byte

00100110 01001100 10011101 00111001

45

00100110&

01001100L

10011101Non-ASCII

Quotable-printable

001110019

00100110&

01001100L

00111101=

001110019

001110019

01000100D

F. Martignon: Fond. Reti e Telecomunicazione

Page 46: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME) (MIME)

� MIME consente anche il trasferimento di più oggetti come parti di uno stesso messaggio:

From: [email protected] To: [email protected] Subject: Picture of yummy crepe with commentary MIME-Version: 1.0 Content - Type: multipart/mixed; Boundary=StartOfNextPart -- StartOfNextPart

46

-- StartOfNextPart Dear Bob, Please find a picture of an absolutely scrumptious crepe.

--StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data .....

--StartOfNextPart Let me know if you would like the recipe ..

F. Martignon: Fond. Reti e Telecomunicazione

Page 47: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Protocolli di accesso al mailboxProtocolli di accesso al mailbox

� Diversi protocolli sono stati sviluppati per il colloquio tra user agent e server in fase di lettura dei messaggi presenti nel mailbox

47

dei messaggi presenti nel mailbox

� POP3 (Post Office Protocol versione 3)

� IMAP (Internet Mail Access Protocol)

� HTTP

F. Martignon: Fond. Reti e Telecomunicazione

Page 48: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

TELNET (TErminaL NETwork)TELNET (TErminaL NETwork)

� E’ un semplice applicativo che consente di aprire un terminale remoto

� Al contrario di un terminale locale i comandi sono trasferiti su una connessione TCP

Telnetclient

Telnetserver

F. Martignon: Fond. Reti e Telecomunicazione

48

Terminaldriver

TCP

IP

LL

Pseudo-terminaldriver

TCP

IP

LLInternet

Page 49: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

TELNET (TErminaL NETwork)TELNET (TErminaL NETwork)

� TELNET trasferisce caratteri� Caratteri dati:

�Sono caratteri ASCII con il primo bit pari a 0

� Caratteri di controllo:�Sono comandi (Telnet Commands) codificati in sequenze

di 8 bit con il primo pari ad 1�Tra questi

49

�Tra questi� IAC (255): interpreta il prossimo come carattere di controllo

(Interpret As Command)� EC (247): cancella carattere (Erase Character)

c a t f i l e a IAC EC 1

F. Martignon: Fond. Reti e Telecomunicazione

Page 50: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

TELNET (TErminaL NETwork)TELNET (TErminaL NETwork)

50

F. Martignon: Fond. Reti e Telecomunicazione

Page 51: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Domain Name System (DNS)Domain Name System (DNS)

� Gli indirizzi IP sono poco adatti ad essere usati dagli applicativi.

� E’ più comodo utilizzare indirizzi simbolici

� gerarchici (via, città, stato)

� senza vincoli derivanti da esigenze di livello 3.

51

� senza vincoli derivanti da esigenze di livello 3.

� Occorre una mappatura fra i due

131.175.21.1 morgana.elet.polimi.it

193.204.253.55 cs.unibg.it

F. Martignon: Fond. Reti e Telecomunicazione

Page 52: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Domain Name System (DNS)Domain Name System (DNS)

� Le reti IP forniscono indirizzamento simbolico…

� …e un servizio di database distribuito che fornisce il servizio di mappaggio: DNS (Domain Name System)

� Il DNS è esso stesso un’applicazione IP che usa UDP/IP per

• "Domain Names - Concepts and Facilities," RFC 1034, Nov. 1987. • "Domain Names - Implementation and Specification," R FC 1035, Nov. 1987.

52

� Il DNS è esso stesso un’applicazione IP che usa UDP/IP per trasferire i messaggi

� Il DNS viene usato anche per altri servizi:� Host aliasing� Mail server aliasing� Load distribution

F. Martignon: Fond. Reti e Telecomunicazione

Page 53: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Indirizzamento simbolicoIndirizzamento simbolico

com edu org gov mil it fr jp de ...

ucla columbia polimi

eletcs

virgilio

rett

yahoounibg

cs

53

� L’indirizzamento è di tipo gerarchico� Ogni ramo è sotto il controllo di un’autorità

� Per ottenere un nuovo indirizzo occorre chiedere il permesso all’autorità competente

morgana morgana.elet.polimi.it

cs

F. Martignon: Fond. Reti e Telecomunicazione

Page 54: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Come ottenere un mappaggioCome ottenere un mappaggio� Ogni host ha configurato l’indirizzo del server DNS

(manualmente, vedi ad es. Pannello di controllo di WIN, o via DHCP)

� Le applicazioni che richiedono un mappaggio (browser, ftp, etc.) usano le funzioni del DNS

� Una richiesta viene inviata al server DNS usando UDP come protocollo di livello trasporto

54

protocollo di livello trasporto

� Il server reperisce l’informazione e restituisce la risposta

HOST DNS server

DNS request

DNS response

F. Martignon: Fond. Reti e Telecomunicazione

Page 55: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Informazioni memorizzateInformazioni memorizzate

� Type � A: (Address) Name è il nome di un host e Value è il suo

indirizzo IP (morgana.elet.polimi.it, 131.175.21.1, A, TTL)

� NS: (Name Server) Name è un domain e Value è il nome di un server che può ottenere le informazioni relative

Name, Value, Type, TTL

55

di un server che può ottenere le informazioni relative(elet.polimi.it, morgana.elet.polimi.it, NS, TTL)

� CNAME: Name è un nome alternativo (alias) per un host il cui nome canonico è in Value

(www.polimi.it, zephyro.rett.polimi.it, CNAME, TTL)

� MX: (Mail eXchange) Name è dominio di mail o un alias di mail e Value è il nome del mail server

(elet.polimi.it, mailserver.elet.polimi.it, MX,TTL)

F. Martignon: Fond. Reti e Telecomunicazione

Page 56: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Organizzazione del databaseOrganizzazione del database� I record in ARPANET erano contenuti in un name server centrale

� Per Internet la struttura del database è distribuita

� I rami sono partizionati in zone e un DNS server viene associato ad ogni zona

� Il server di una zona è responsabile per le informazioni di quella zona (authoritative)

56

com edu org gov mil it fr jp de ...

ucla columbia polimi

eletcs

virgilio

rett

yahoo

morganaF. Martignon: Fond. Reti e Telecomunicazione

Page 57: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Reperire informazioni (1Reperire informazioni (1oo modo)modo)

� in modalità puramente ricorsiva

� la richiesta viene inoltrata seguendo la gerarchia

57

� la risposta segue la strada inversa

F. Martignon: Fond. Reti e Telecomunicazione

Page 58: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Reperire informazioni (2Reperire informazioni (2oo modo)modo)

� con la modalità iterativa

� un server può rispondere ad una richiesta con il nome

58

richiesta con il nome di un altro server dove reperire l’informazione

F. Martignon: Fond. Reti e Telecomunicazione

Page 59: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

CachingCaching� Un server, dopo aver reperito un’informazione su cui

non è authoritative può memorizzarla temporaneamente

� All’arrivo di una nuova richiesta può fornire l’informazione senza risalire sino al server authoritative

� Il TTL è settato dal server authoritative ed è un indice

59

� Il TTL è settato dal server authoritative ed è un indice di quanto stabile nel tempo è l’informazione relativa

� I server non-authoritative usano il TTL per settare un time-out

F. Martignon: Fond. Reti e Telecomunicazione

Page 60: 55 -- Protocolli ApplicativiProtocolli Applicativi · I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Messaggi DNSMessaggi DNS� identification: identificativo coppia

richiesta/risposta� flag: richiesta/risposta,

authoritative/non auth., iterative/recursive

� number of: relativo al numero di campi nelle sez. successive

� questions: nome richiesto e tipo (di solito A o MX)

sono in binario (non ASCII)

F. Martignon: Fond. Reti e Telecomunicazione

60

solito A o MX)� answers: resourse records completi

forniti in risposta� authority: contiene altri record forniti

da altri server� additional infor.: informazione

addizionale, ad es. il record con l’IP ADDR. per il MX fornito in answers