application - unina.itwpage.unina.it/fpalmier/reti/13_-_application.pdf220 alpha.dii.unisi.it esmtp...
TRANSCRIPT
Reti di Calcolatori
Application
2
Dove siamo?
3
Applicazioni che utilizzano i servizi di rete
host
LAN
Porte TCP o UDP
Livello applicativo
4
• Programmi applicativi e servizi usati dagli utenti della rete
• Spesso basati sul modello client-server
DNS (Domain Name System) Risoluzione dei nomi degli host SMTP (Simple Mail Transfer Protocol) e email sendmail o postfix POP3 (Post Office Protocol) e IMAP (Interactive Mail Access Protocol) Accesso remoto alle caselle di posta elettronica FTP (File Transfer Protocol) Trasferimento file remoti SNMP (Simple Network Management Protocol) Gestione di apparati di rete HTTP (HyperText Transfer Protocol) e il WWW Server web e browsers telnet, rlogin, rcp,ssh, sftp, nfs, lpd, ...
Applicazioni
5
• E’ un database distribuito che permette di convertire i nomi simbolici degli host negli indirizzi IP numerici
E’ più facile ricordare (e dà più informazioni)
www.google.it
che
193.205.7.2
Per comunicare su rete serve l’indirizzo IP! Quando gli host sono pochi la tabella di conversione può essere memorizzata localmente ad ogni host (file /etc/hosts in Unix) Il DNS è distribuito: ogni sito mantiene il suo database relativo agli host locali eseguendo su una macchina il server DNS che può essere interrogato da altri sistemi su Internet
Domain Name System (DNS)
6
• Quando un’applicazione deve convertire un nome di host nell’indirizzo IP o
viceversa, chiama una procedura resolver che contatta il DNS server del suo
dominio
• In Java la procedura è incapsulata nella classe InetAddress
• In C sono disponibili le chiamate di libreria gethostbyname e gethostbyaddr
• Occorre specificare l’indirizzo IP del DNS server (o Name Server) a cui il resolver
invia le sue interrogazioni (in Unix /etc/resolv.conf)
• Il protocollo di comunicazione fra resolver e Name server è del livello applicativo
ed è basato su scambio di pacchetti UDP (porta server 53) o TCP
• nslookup è un programma client che permette di esplorare la tabella del Name
Server
Il resolver
7
• I nomi in Internet sono organizzati in modo gerarchico
arpa com edu gov int mil net org ae it zw biz
in-addr cisco w3c
www www
unisi
ing
www lucy
radice
domini generici
Emirati Arabi
Zimbabwe
domini degli stati
gestiti dal DNS server di ingeneria (193.205.7.2)
2.7.205.193.in-addr.arpa
Lo spazio dei nomi
8
• I nomi dei componenti sono stringhe (case-insensitive) fino a 63 caratteri mentre il nome completo di un cammino non può superare 255 caratteri
• Un nome di dominio assoluto (fully qualified domain name - FQDN) termina con un punto (es. www.sun.com.)
• I nomi che non terminano con un punto sono relativi (es. sunto è relativo al dominio in cui si trova l’host ovvero ing.unisi.it)
• Ciascun dominio controlla l’allocazione dei suoi sottodomini
• I domini delle nazioni sono indicati con i codici previsti dallo standard ISO 3166
• arpa è un dominio speciale per le conversione indirizzo IP-nome nelle interrogazioni al Name Server
I domini
9
• In genere non sono riferite ad una posizione geografica
• Sono in fase di attivazione nuovi domini generici (es. biz)
• Alcuni paesi inseriscono sottodomini equivalenti a quelli generici (es. .ac.uk e .co.uk
- istituzioni accademiche e commerciali del Regno Unito)
• Il NIC mantiene il primo livello; i sottolivelli (zone) sono gestiti localmente (gestione
DNS servers, assegnazione nomi, ecc.)
com organizzazioni commerciali edu istituzioni accademiche (università USA) gov organizzazioni governative USA int organizzazioni internazionali mil rete militare USA net fornitori di servizi di rete org organizzazioni no profit
I domini generici
10
• Una zona è un sottoalbero del DNS amministrato separatamente
it
unisi
ing
www ftp ltt
pc1 pc2
lett 193.205.7.2
193.205.4.2 name server
name server
name server
Zone e Name server
11
• Un Name Server ha autorità per una o più zone
• In una zona esiste un name server primario ma possono esistere anche name
servers secondari (per ridondanza)
• I name server secondari ottengono le informazioni dal name server primario (zone
transfer) interrogandolo periodicamente mentre i name server primari leggono le
loro informazioni da un file
• Quando si aggiunge un nuovo host nella zona si aggiunge una riga alla tabella
presente sul name server primario
• Il resolver chiede di risolvere il nome al name server locale
Il nome dell’host è locale -> viene restituito il record di autorità Il nome è relativo ad un host di un’altra zona -> interrogazione ricorsiva (a meno che non sia nella cache)
Name servers
12
• Si propaga la richiesta al name server di livello superiore
altair.ing.unisi.it
www.unimi.it ?
ing.unisi.it unisi.it it unimi.it
? ? ? !!
La richiesta non si propaga ai livelli superiori se un name server ha la risposta nella cache Le risposte presenti nella cache non sono con autorità in quanto potrebbe esserci incoerenza con il vero valore I record sono inseriti nella cache con un time-to-live
Interrogazione ricorsiva
13
• agenti utente
– programmi per leggere e gestire la posta e le mailboxes (es. eudora, netscape, outlook, pine, mail,....)
– Possono utilizzare protocolli per la gestione di mailboxes remote (pop3, imap).
• agenti di trasferimento di messaggi
– Gestiscono il trasferimento dei messaggi dalla sorgente alla destinazione e la ricezione dei messaggi sui server di posta
– Inviare un messaggio corrisponde a trasferire un file....
– Sono demoni di sistema che sono eseguiti in background e usano il protocollo SMTP per trasferire i messaggi sulla rete (es. sendmail, postfix, ..).
La posta elettronica
14
mittente agente utente
coda della posta da spedire
agente di trasferimento
destinatario agente utente
mailboxes degli utenti
agente di trasferimento
connessione TCP
client
server
porta TCP 25
SMTP
MTA (Message Transfer Agent)
Trasferimento di mail
15
• Server di riferimento per l’invio della posta
• Tutti i client inviano la posta al relay che la invia al destinatario – Semplifica la configurazione
– Sono sempre connessi (possono ritentare in caso di insuccesso)
relay MTA
local MTA
local MTA
local MTA
Internet
coda di posta
coda di posta
Agente utente
Relay Agents
16
• Hanno il formato [email protected]
• Gli indirizzi sono risolti dal DNS che individua il server a cui inviare il
messaggio (eventualmente usa una richiesta MX)
• Il server di posta riceve i messaggi e li accoda nella mailbox
dell’utente
• La mailbox è un file di testo in una directory specifica nel server (es.
in Unix è normalmente /var/spool/mail/utente )
• L’utente può accedere alla posta localmente leggendo il file mailbox.
Il client per la lettura della posta provvede a individuare i singoli
messaggi nella mailbox
Indirizzi di posta elettronica
17
• E’ definito in RFC 821 - RFC 822
campi di intestazione linea vuota corpo del messaggio
I campi di intestazione consistono in linee di testo ASCII contenenti il nome del
campo seguito dal carattere : e poi da un valore
L’agente utente costruisce il messaggio e lo passa all’agente di trasferimento
che utilizza alcuni campi dell’intestazione per l’invio
Formato dei messaggi
18
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from firewall.dii.unisi.it (firewall.dii.unisi.it [10.0.0.1])
by alpha.dii.unisi.it (Postfix) with ESMTP id B763218337
for <[email protected]>; Sat, 19 May 2001 03:02:57 +0200 (CEST)
Received: from sendmailout.computer.org (unknown [206.99.234.2])
by firewall.dii.unisi.it (Postfix) with ESMTP id 6A9053C0BC
for <[email protected]>; Sat, 19 May 2001 02:48:10 +0200 (CEST)
Received: from cray.computer.org ([63.84.223.121])
by sendmailout.computer.org (Build 101 8.9.3/NT-8.9.3) with ESMTP
id UAA01113; Fri, 18 May 2001 20:03:57 -0400
Subject: ICDAR'01: Your Author Kit
To: [email protected], [email protected]
Cc: [email protected], [email protected]
X-Mailer: Lotus Notes Release 5.0.4 June 8, 2000
Message-ID: <[email protected]>
From: [email protected]
Date: Fri, 18 May 2001 17:03:57 -0700
X-MIMETrack: Serialize by Router on Cray/IEEE Computer Society(Release
5.0.6a |January 17, 2001) at 05/18/2001 05:11:59 PM
MIME-Version: 1.0
Content-type: multipart/mixed;
Boundary="0__=88256A50008141558f9e8a93df938690918c88256A5000814155"
Content-Disposition: inline
Esempio di intestazione
19
• Multipurpose Internet Mail Extensions (RFC 1521)
• Aggiunge dei campi di intestazione per definire la struttura del corpo del messaggio
(è gestita dall’agente utente)
Mime-Version:
Content-Type:
Content-Transfer-Encoding:
Content-ID:
Content-Description:
I tipi di contenuto sono organizzati in categorie predefinite es. text/plain, text/html, image/gif, multipart/mixed,
application/octet-stream, .....
MIME
20
MIME-Version: 1.0
Content-type: multipart/mixed;
Boundary="0__=88256A50008141558f9e8a93df938690918c88256A5000814155"
Content-Disposition: inline
--0__=88256A50008141558f9e8a93df938690918c88256A5000814155
Content-type: text/plain; charset=Windows-1252
Content-transfer-encoding: quoted-printable
Dear Author:
Congratulations! We have been notified that your paper has been accepte=
d
--0__=88256A50008141558f9e8a93df938690918c88256A5000814155
Content-type: application/pdf;
name="=?Windows-1252?Q?icdar01=5Fcopyright=5Fform.pdf?="
Content-Disposition: attachment; filename="=?Windows-
1252?Q?icdar01=5Fcopyright=5Fform.pdf?="
Content-transfer-encoding: base64
JVBERi0xLjIgDSXi48/TDQogDTEwIDAgb2JqDTw8DS9MZW5ndGggMTEgMCBSDS9GaWx0ZXIgL0Zs
YXRlRGVjb2RlIA0+Pg1zdHJlYW0NCkiJrFfZctvIFf0C/UPXvESuUBAaO+YplEx5WDNjuSi6nFTp
Parte 1
Esempio MIME
21
• Il protocollo SMTP definisce la sequenza di comandi (inviati in ASCII) necessaria per il trasferimento dei messaggi
• Insieme minimale di comandi usati dal client
HELO <host>
“Saluta” il server
MAIL From: <indirizzo>
indica il mittente del messaggio
RCPT To: <indirizzo>
Indica il destinatario (recipient)
DATA
Invio corpo del messaggio terminato da un . su una linea
QUIT
Chiude la connessione
“busta”
SMTP
22
[email protected]... Connecting to alpha.dii.unisi.it. via relay...
220 alpha.dii.unisi.it ESMTP Postfix (Postfix-19991231) (Linux-Mandrake)
>>> EHLO ultra3.dii.unisi.it
250-alpha.dii.unisi.it
250-PIPELINING
250-SIZE 10240000
250-ETRN
250 8BITMIME
>>> MAIL From:<[email protected]> SIZE=20
250 Ok
>>> RCPT To:<[email protected]>
250 Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Ok: queued as BE37A18337
[email protected]... Sent (Ok: queued as BE37A18337)
Closing connection to alpha.dii.unisi.it.
>>> QUIT
221 Bye
Extended SMTP
Esempio SMTP
23
• Nato nel 1989 al CERN di Ginevra come mezzo per scambiare informazioni
• w3c - Consorzio World Wide Web (1994)
Standardizzazione dei protocolli su Web
Interoperabilità fra i siti
http://www.w3c.org
Il web è una collezione di documenti ipertestuali distribuita su server collegati alla rete Internet
La ragnatela (web) è un grafo i cui nodi sono i singoli documenti collegati fra loro da puntatori (hyperlink)
La maggior parte dei documenti su web è in formato HTML (HyperText Markup Language) ma si trovano anche altri formati (Macromedia Flash, pdf, postscript, ecc..)
Il WEB
24
Internet
browser (client)
Web Server www.apache.org
HTTP HyperText Transfer Protocol
Connessione TCP
httpd
disco
hyperlink
Web servers
25
• Ogni sito Web ha un processo server in ascolto su una porta TCP
• La porta standard è la numero 80
• HTTP definisce il protocollo di comunicazione fra il client e il server
E’ utilizzato per trasferire ogni tipo di risorsa (file) su WWW
Una risorsa è un’entità individuata da un URL (Uniform Resource Locator)
file di qualsiasi formato
prodotto dell’esecuzione di una interrogazione o di uno script
Utilizza un modello client-server
Il client HTTP apre la connessione e invia un messaggio di richiesta al server HTTP
Il server invia una risposta che in genere contiene la risorsa richiesta e poi chiude la connessione
Il protocollo è senza stato (non c’è memoria delle transazioni)
HTTP
26
• I messaggi di richiesta e risposta hanno formato simile
Linea Iniziale (diversa per richiesta e risposta)
Header1: valore1
Header2: valore2
Header3: valore3
Corpo del messaggio (contenuto del file, risultato di
una interrogazione; può essere lungo molte linee e
essere binario)
Linea vuota!
L’intestazione è separata dal corpo da una linea vuota (CR LF)
Formato dei messaggi HTTP
27
• La linea iniziale di una richiesta è formata da 3 parti
GET /index.html HTTP/1.1
Host: univac.dii.unisi.it
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20010131 Netscape6/6.01
Accept: */*
Accept-Language: en
Accept-Encoding: gzip,deflate,compress,identity
Keep-Alive: 300
Connection: keep-alive
Esempio di richiesta
Metodo
Percorso locale della risorsa richiesta
Versione di HTTP usata
Linea Iniziale
header
Richieste HTTP
28
• I metodi definiscono le operazioni possibili su una risorsa
GET chiede il trasferimento di una risorsa. Se è seguita dall’intestazione If-Modified-Since il server invia i dati solo se sono stati modificati dopo la data specificata (gestione cache del browser)
HEAD Richiede solo le intestazioni relative alla risorsa. Serve per verificare le caratteristiche della risorsa senza trasferirla
POST Utilizzato per inviare dati da elaborare al server. L’intestazione è seguita da un corpo della richiesta che contiene i dati. Il tipo e la dimensione dei dati è indicata dagli header MIME Content-Type: e Content-Length:
Metodi HTTP
29
• La linea iniziale di una risposta costituisce una linea di stato
HTTP/1.1 200 OK
Date: Wed, 06 Jun 2001 22:44:40 GMT
Server: Apache/1.3.20 (Win32)
Last-Modified: Wed, 06 Jun 2001 22:32:26 GMT
ETag: "0-64-3b1eaf7a"
Accept-Ranges: bytes
Content-Length: 100
Connection: close
Content-Type: text/html
<HTML>
<HEAD>
<TITLE>Prova</TITLE>
</HEAD>
<BODY>
<H2>File HTML di Prova</H1>
</BODY>
headers
risorsa
Linea vuota
Risposta HTTP
30
• La linea di stato riporta un codice di stato e la sua “spiegazione”
HTTP/1.1 200 OK
I codici più comuni sono
200 OK
Richiesta con successo. La risorsa è nel corpo
della risposta
404 Not Found
La risorsa richiesta non esiste
301 Moved Permanently
302 Moved Temporarily
303 See Other (in HTTP 1.1)
La risorsa è stata spostata ad un altro URL
specificato nel campo Location: dell’intestazione.
Il client dovrebbe saltare a tale locazione
(redirect).
500 Server Error
Codici di stato
31
• Seguono il formato specificato in RFC 822 anche per l’email
• HTTP 1.0 definisce 16 header (tutti opzionali)
• HTTP 1.1 definisce 46 header (obbligatorio Host:)
• Alcuni esempi....
User-Agent:
Identifica il programma client che effettua la
richiesta. Individua webots, spiders, ecc..
Server:
Identifica il server
Last-Modified:
Indica la data di modifica della risorsa. E’ usata
per gestire le cache
Content-Type:
Tipo MIME del corpo del messaggio
Content-Length:
Lunghezza in byte del corpo del messaggio
Intestazioni
32
Internet
Web Server www.apache.org
httpd
disco
Proxy Server proxy
client configurato per usare
il proxy server
cache
• Un proxy HTTP agisce da intermediario fra il client e il server
Riceve le richieste dal client
Propaga la richiesta al server corretto
• Sono usati su LAN per caching o accesso ad Internet tramite firewall
httpd proxy
Proxy HTTP
33
• Permette più transazioni su una stessa connessione persistente
Attivo di default. Si inviano le richieste in pipelining e si recuperano le risposte nello
stesso ordine
• Ha introdotto il supporto per le cache (If-Modified-Since:)
• Risposta più veloce per pagine generate dinamicamente utilizzando la codifica
chunked
Non si deve specificare la lunghezza del messaggio nell’intestazione
Il messaggio è scomposto in blocchi (chunks)
• Uso migliore degli indirizzi IP permettendo di ospitare più siti virtuali su uno stesso
server con un solo IP
Uso dell’intestazione Host: -> specifica il nome del sito a cui è indirizzata la richiesta
HTTP 1.1
34
• Un server allo stesso indirizzo IP può gestire più domini
• Richiede alias nel DNS
httpd
disco
http://www.dii.unisi.it/
http://www.ing.unisi.it/
193.205.7.2
DNS Server
www.ing.unisi.it ?
www.dii.unisi.it ?
named (bind)
Multi-homed IP
35
• Un URL (Uniform Resource Locator) individua univocamente una risorsa su web http://www.ing.unisi.it/general/people.html
• Al nome DNS possono essere aggiunte
la porta TCP (altrimenti si usa quella di default del protocollo)
una coppia username/password per accedere a risorse che richiedono autenticazione
http://johnm:[email protected]:8080/
protocollo (ftp, file,...)
nome DNS del server risorsa
porta TCP username:password
URL
36
• E’ un linguaggio che usa annotazioni (markup) per definire la formattazione del
testo <B>scrittura in grassetto</B>
• Attualmente è alla versione 4.0 che ha standardizzato il concetto di fogli di stile
(Cascading Style Sheets - css)
• Una pagina prevede un’intestazione e un corpo compresi fra il tag <HTML> e
</HTML>
– <HEAD>...</HEAD> definiscono l’intestazione (titolo, stili, meta, ..)
– <BODY>...</BODY> definisce il corpo del documento
tag di apertura tag di chiusura
HTML (HyperText Markup Language)