Reti di Calcolatori
a.a. 2005/06
Lezione 18
Reti di Calcolatori
Andrea Frosini
1
Nel modello di riferimento:
Application
Transport
Network
Data Link
Fisico
Reti di Calcolatori
Andrea Frosini
2
Il livello Application
Il livello Application di una architettura di rete definisce:
• protocolli generali utilizzati da tutte le applicazioni di rete (ad es., il DNS)
• protocolli utilizzati da applicazioni di rete standard (ad es., il protocollo SMTP per
la posta elettronica, FTP per trasferimento file, HTTP per documenti in www, …)
• protocolli utilizzati da applicazioni di rete specializzate (ad es., un sistema
proprietario per la gestione dei registratori di cassa di un supermercato)
I protocolli specializzati non sono necessariamente di “pubblico dominio”: molti di
essi sono segreti o protetti da licenze restrittive
I protocolli generali devono essere definiti in modo aperto ed esatto, perché devono
poter essere utilizzati da tutte le applicazioni di rete
Reti di Calcolatori
Andrea Frosini
3
Domain Name System I
Il Domain Name System (DNS): traduzione indirizzo IP - nome logico
E’ costituito essenzialmente da
• uno schema di assegnazione dei nomi gerarchico e basato su domini
• una base di dati (database) distribuita contenente i nomi
• un protocollo per la distribuzione delle informazioni sui nomi
I nomi logici non sono gestiti da un’unica autorità, ma vengono assegnati da tante
autorità diverse, ciascuna corrispondente ad un dominio o sotto-dominio
Nessun host in Internet contiene tutte le associazioni tra nomi logici e indirizzi IP.
Un certo numero di host (i server DNS) memorizzano le associazioni relative ad un
dominio o sottodominio.
Reti di Calcolatori
Andrea Frosini
4
Domain Name System II
Lo spazio dei nomi DNS è uno spazio gerarchico, organizzato in dominii, ciascuno
dei quali può avere dei sottodominii
Esiste un insieme di dominii di massimo livello (top-level domain), i più alti nella
gerarchia
Nel caso di un host, la forma del nome logico è costituita da un certo numero di
(sotto)stringhe separate da punti che determinano un cammino inverso dalla foglia
alla radice
Esempio:
host.subdomain3.subdomain2.subdomain1.topleveldomain
nome
dell’host
Reti di Calcolatori
identificano ciascuna un
sottodominio del dominio di
cui alla sottostringa seguente
Andrea Frosini
top-level domain
di appartenenza
5
Domini di primo livello
Domini di primo livello generici:
com aziende
mil istituzioni militari
edu università americane
net fornitori d'accesso
gov istituzioni governative
org organizzazioni non-profit…
Domini di primo livello geografici (uno per ogni nazione):
it: Italia
us: USA
jp: Giappone
ch: Svizzera
de: Germania
uk: Regno Unito
va: Stato Città del Vaticano …
Reti di Calcolatori
Andrea Frosini
6
Funzionamento del DNS
- L'applicazione chiede di collegarsi ad una risorsa inviando il nome logico in una
richiesta al DNS server locale (resolver)
- Il DNS server locale, se conosce la risposta, la invia direttamente al richiedente,
altrimenti interroga a sua volta un DNS server di livello superiore, ecc.
- Quando arriva la risposta, il DNS server locale la passa al richiedente
- Quando l'applicazione riceve la risposta (costituita dal numero IP della risorsa
chiesta) crea una connessione TCP con la (o spedisce segmenti UDP alla)
destinazione, usando l'indirizzo IP appena ricevuto
Ogni dominio:
E’ responsabile dei sottodomini
Fornisce il servizio DNS per gli host nel dominio
Reti di Calcolatori
Andrea Frosini
7
Name server
Name server è un processo che gestisce le seguenti informazioni:
- di corrispondenza fra nomi simbolici e indirizzi IP,
- un resource record per ogni host del dominio; il resource record - detto
authoritative record - è gestito dal DNS server responsabile del dominio;
- l'identità dei name server responsabili dei sottodominii inclusi nel dominio,
così da poter inviare loro le richieste che gli pervengono;
- l'identità del name server responsabile del dominio di livello immediatamente
superiore, così da potergli inviare le richieste che gli pervengono dal basso;
La risposta viene tenuta dal server in una sua cache per un certo
periodo - cached record – prima che diventi obsoleta o scorretta
Reti di Calcolatori
Andrea Frosini
8
Servizi di Internet I
Servizi di tracciamento:
verifica dell’esistenza e connessione di un account o host su Internet
Servizi di comunicazione:
per scambio messaggi, flussi di dati o programmi fra due o più
corrispondenti
Servizi di cooperazione:
condivisione e modifica di risorse condivise (dati, programmi, documenti)
fra più corrispondenti
Servizi di coordinazione:
attività concordata di persone, servizi o programmi
Reti di Calcolatori
Andrea Frosini
9
Servizi di Internet II
Servizio Internet:
architettura software basata su un protocollo/applicazione di TCP/IP
Sincrono attività simultanea tra i siti, basato su sessione
Asincrono non richiede interattività simultanea
Esempi:
Servizi
Asincroni
Sincroni
Tracciamento
finger
ping
Comunicazione
e-mail, news
irc, chat
Cooperazione
ftp, www
napster
Coordinazione
e-commerce
MUD
Reti di Calcolatori
Andrea Frosini
10
Posta elettronica I
Il Sistema di posta elettronica permette la comunicazione asincrona uno-a-uno o unoa-molti (mailing list)
E’ un servizio ormai consolidato ed usato (presente da circa 25 anni) e consente di
effettuare le seguenti operazioni:
- Comporre un messaggio
- Spedire il messaggio (a uno o più destinatari)
- Ricevere messaggi da altri utenti
- Leggere i messaggi ricevuti
- Stampare, memorizzare, eliminare i messaggi spediti o ricevuti
Reti di Calcolatori
Andrea Frosini
11
Posta elettronica II
Protocollo di trasmissione (RFC 821)
- Formato del messaggio predefinito
- Formato Internet (RFC 822) : header e body separati da una linea vuota
header
serie di linee, ciascuna relativa a una specifica informazione identificata da una
parola chiave:
Date, To, From, Cc, Bcc, Subject, Sender, Reply-To, Subject,
Message-Id, Return-Path, Errors-To...
body: caratteri ASCII
Reti di Calcolatori
Andrea Frosini
12
Posta elettronica: indirizzi
Gli indirizzi di posta elettronica hanno la forma: username@hostname dove:
Username è una stringa di caratteri che identifica il destinatario
Hostname è un nome DNS oppure un indirizzo IP
Indirizzo fornito da ISP (Internet Service Provider) o da altri che supportano
- banda di comunicazione verso Internet e verso gli utenti
- tempo di calcolo dei processi serventi le mailbox
- spazio disco per memorizzare i messaggi
La posta elettronica viene implementata in Internet attraverso la cooperazione di due
tipi di sottosistemi
Mail User Agent (MUA)
Mail Transport Agent (MTA)
Reti di Calcolatori
Andrea Frosini
13
Agenti di posta elettronica
MUA permette all'utente finale di:
- Comporre messaggi
- Consegnarli a un MTA per la trasmissione
- Ricevere e leggere messaggi
- Salvarli o eliminarli
MTA si occupa di:
- Trasportare i messaggi sulla rete, fino alla consegna a un MTA di
destinazione
- Rispondere ai MUA dei vari utenti per consegnare loro la posta arrivata
I due tipi di agenti devono cooperare tra loro per realizzare l’applicazione di posta
elettronica. Ad esempio, un MUA (configurato prima dell’uso) deve affidare ad un
MTA un messaggio composto da un utente per inviarlo al destinatario
Reti di Calcolatori
Andrea Frosini
14
Il protocollo SMTP I
Il protocollo SMTP (Simple Mail Transfer Protocol) è progettato per consentire il
trasferimento di messaggi di posta elettronica tra due MTA (RFC 821)
Ciascun MTA funziona come un server in attesa di connessioni TCP sulla porta 25
Se un altro MTA vuol trasferire un messaggio al server, esso richiede l’attivazione di
una nuova connessione TCP
Una evoluzione successiva del protocollo è ormai utilizzata da quasi tutti i mail server:
ESMTP (Extended SMTP, RFC 2821)
Reti di Calcolatori
Andrea Frosini
15
Il protocollo SMTP II
Attivata la connessione TCP, i due MTA comunicano per mezzo del protocollo SMTP
• il client si fa riconoscere (comando HELO)
• indica il nome convenzionale del destinatario (comando RCPT)
• trasferisce il messaggio (comando DATA)
• termina la connessione (comando QUIT)
Si noti che la connessione TCP è affidabile, quindi il protocollo assume che non
esistono errori di trasmissione
Reti di Calcolatori
Andrea Frosini
16
Esempio di protocollo SMTP
connect host=mailsrv.unisi.it port=25
220 mailsrv.unisi.it ESMTP MTA-XXX; Wed, 4 Jul 2005 19:02:25
HELO student.unisi.it
250 mailsrv.unisi.it Hello [email protected]
[63.120.230.105], pleased to meet you
MAIL FROM: [email protected]
250 2.1.0 [email protected]... Sender ok
RCPT TO: [email protected]
250 2.1.5 [email protected]... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
. From: [email protected]
To: [email protected]
Salve, qual e’ il prossimo appello
del corso di Reti di Calcolatori?
Mario
. 250 2.0.0 f64H2in05753 Message accepted for delivery
QUIT
221 2.0.0 mailsrv.unisi.it closing connection
Reti di Calcolatori
Andrea Frosini
17
Il protocollo POP3
Il protocollo POP3 (Post Office Protocol, versione 3, RFC 1939) è utilizzato per
consentire ad un MUA di accedere ai messaggi di posta elettronica immagazzinati in
un mail server
Per offrire questo servizio il mail server non utilizza il MTA
Invece, il mail server ha un POP server, ossia un programma specializzato che
• autentica gli utenti
• trasferisce i messaggi sul calcolatore dell’utente
• gestisce la casella di posta elettronica sul server
Reti di Calcolatori
Andrea Frosini
18
Esempio di protocollo POP3
connect host=mailsrv.unisi.it port=110
+OK POP3 mail v4.47 server ready
USER frosini
+OK User name accepted, password please
PASS questa_e_la_password
+OK Mailbox open, 1 messages
LIST
1 2505
.
RETR 1
(Il messaggio viene trasferito. . . )
DELE 1
QUIT
+OK Sayonara
Reti di Calcolatori
Andrea Frosini
19
I protocolli IMAP e DMSP
Si stanno diffondendo altri protocolli di più evoluti del POP3:
• Il protocollo IMAP (Interactive Mail Access Protocol, RFC 2060) è simile al
protocollo POP3, ma consente all’utente di gestire la propria posta da più calcolatori
differenti: i messaggi vengono sempre lasciati sul mail server fino a quando non
vengono cancellati, e possono essere organizzati come un database; può inoltre
gestire la trasmissione dei messaggi dall’utente al mail server
• Il protocollo DMSP (Distributed Mail System Protocol, RFC 1056) è simile al POP3,
ma permette agli utenti di utilizzare i client di posta elettronica per leggere e spedire
messaggi anche in assenza (temporanea) del collegamento con il mail server
Reti di Calcolatori
Andrea Frosini
20
Ulteriori funzionalità
Due significative estensioni di funzionalità in via di progressiva diffusione:
- Possibilità di inviare messaggi di posta contenenti informazioni di qualunque tipo
(programmi eseguibili, immagini, filmati, suoni) attraverso lo standard MIME
(Multipurpose Internet Mail Extension)
- Possibilità di inviare messaggi corredati di firma digitale o crittografati, attraverso lo
standard in via di definizione S/MIME (Secure/MIME)
- Filtri: Insieme di regole verificate dal cliente all’arrivo di un messaggio (salvataggio
automatico, visualizzazione particolare…)
- Forwarding: Reinstradamento della posta in arrivo ad un diverso indirizzo
- Demone di vacanza: In assenza del destinatario risponde con messaggi predefiniti
- Mailing list: Servizio di comunicazione uno-a-molti
- Gestione manuale con un moderatore
- Gestione automatica da un servizio che accetta iscrizioni via mail
Reti di Calcolatori
Andrea Frosini
21
MIME: Multipurpose Internet Mail Extensions I
Lo standard di posta elettronica di Internet richiede che ogni messaggio sia costituito
da caratteri ASCII standard (con valori da 0 a 127): gli MTA sono liberi di sostituire o
cancellare qualsiasi altro carattere
Un messaggio di posta elettronica non può perciò contenere lettere accentate come
“à”, file eseguibili, file mp3, video, . . .
La soluzione proposta a questo inconveniente è chiamata Multipurpose Internet Mail
Extensions, o MIME (RFC 1341, 2045–2049)
L’idea essenziale è di continuare ad usare il vecchio standard di posta elettronica
per trasferire i messaggi, e di codificare i file non di testo (detti attach) in maniera
opportuna
Reti di Calcolatori
Andrea Frosini
22
MIME: Multipurpose Internet Mail Extensions II
Alla testata del messaggio di posta elettronica si aggiungono i seguenti campi:
• MIME-Version: numero di versione di MIME
• Content-Description: descrizione del contenuto del messaggio
• Content-Id: identificatore del contenuto del messaggio
• Content-Transfer-Encoding: la codifica utilizzata
• Content-Type: la natura del messaggio
(ad esempio: video/mpeg, text/plain)
Reti di Calcolatori
Andrea Frosini
23
Modello posta elettronica
Reti di Calcolatori
Andrea Frosini
24
Esempio posta elettronica
Reti di Calcolatori
Andrea Frosini
25
Altri servizi di comunicazione
Comunicazione in rete:
sistema di chat con servizio di comunicazione sincrona
punto-a-punto (talk)
broadcast (IRC-Internet Relay Chat)
IRC usabile per conferenza multivoci o conversazione privata su canale riservato
USENET News applicazione: sistema di notiziari organizzati gerarchicamente non
usa mailing list, ma memorizzazione in directory speciali, aggiornate periodicamente
NNTP Network News Tranfer Protocol protocollo simile a SMTP, il cliente invia
comandi in ASCII; permette lettura in remoto
a richiesta (il cliente chiama)
a invio (il cliente è chiamato)
Reti di Calcolatori
Andrea Frosini
26
Il World Wide Web
Il World Wide Web, o WWW, nasce al CERN (il centro di ricerca europeo sulla fisica
nucleare) nel 1989: la prima idea è stata del fisico Tim Berners-Lee
E’ una “ragnatela” di documenti contenenti testi, immagini, suoni, video, programmi.
Contiene pochi standard de iure e molti da facto.
E’ ramificato in tutto il mondo (oggi spesso viene confuso con Internet)
Il primo browser WWW era chiamato Mosaic. Fu così popolare che il suo creatore
Marc Andreessen lasciò il suo lavoro presso la NCSA e fondò una propria compagnia,
la Netscape Communication Corp.
Oggi il WWW è regolato dal World Wide Web Consortium, fondato dal CERN e dal
MIT, e a cui partecipano molte università, aziende ed organizzazioni
Reti di Calcolatori
Andrea Frosini
27
Pagine WWW e browser
Il WWW è organizzato in pagine:
• Ogni pagina può contenere un ipertesto (hypertext), ossia un testo con collegamenti
attivi (link o hyperlink) verso altre pagine
• Il testo e le immagini contenuti nelle pagine possono essere visualizzate da un
programma chiamato browser
• L’utente può saltare da una pagina all’altra agendo sui link della pagina attualmente
visualizzata
• Utilizzando altre applicazioni presenti sul calcolatore dell’utente (helper applications),
il browser può visualizzare un filmato, suonare un brano musicale …
Reti di Calcolatori
Andrea Frosini
28
Schema di funzionamento di un server WWW
Le pagine WWW sono immagazzinate in calcolatori detti server WWW: hanno una
applicazione di rete che monitorizza le richieste di connessioni TCP sulla porta 80
Quando un browser deve visualizzare una pagina, invia una richiesta di attivazione
di connessione al server WWW; il server attiva la connessione e riceve il nome del
file contenente la pagina; quindi invia la pagina al browser
Nella prima versione di HTTP (1.0), il server chiudeva la connessione non appena
spedito il documento richiesto, perciò il browser doveva attivare un’altra connessione
per ciascun documento collegato alla pagina (ad esempio, le immagini contenute
nella pagina)
Dalla versione successiva di HTTP (1.1) la connessione può restare aperta
Reti di Calcolatori
Andrea Frosini
29
URL: Uniform Resource Locator
Gli Uniform Resource Locator (URL) sono gli identificatori utilizzati dal WWW
All’interno delle pagine WWW, definiscono i link verso le altre pagine. Anche se non
sono stati progettati per questo, gli URL servono anche come indirizzi delle pagine
WWW per gli utenti finali
Ogni URL è costituita da tre parti:
<protocollo>://<nome logico server WWW>/<nome locale pagina>
Il campo <protocollo> è generalmente, ma non sempre, http
Il campo <nome locale pagina> è generalmente, ma non sempre, il percorso del file
contenente la pagina sul server WWW
Il nome locale della pagina può corrispondere al nome di una intera cartella del
filesystem: in questo caso il server WWW invia una pagina predefinita della cartella
Esempio:
http://www.dsmi.unisi.it/home/frosini/Lezione_18-RdC.ppt
Reti di Calcolatori
Andrea Frosini
30
I protocolli utilizzati dal WWW
Il WWW è stato progettato per utilizzare diversi tipi di protocolli, ed integrare così le
relative applicazioni:
http
ipertesto
ftp
trasferimento di file
file
file sul calcolatore dell’utente
news
newsgroup o articolo news
gopher gopher (antenato del WWW)
Reti di Calcolatori
mailto
invio di posta elettronica
telnet
terminale remoto
Andrea Frosini
31
HTTP: Hypertext Transfer Protocol
Il protocollo standard del WWW è chiamato HTTP (Hypertext Transfer Protocol)
E’ basato su comandi costituiti da testo ASCII standard, come il protocollo SMTP
Invia le pagine WWW in un formato simile a quello della posta elettronica
La parte più importante di HTTP consiste nei comandi utilizzati dal browser per
dialogare col server WWW. I più importanti:
• GET: richiede una pagina WWW
• HEAD: richiede informazioni su una pagina WWW (ad esempio, la data di modifica)
• PUT: richiede di salvare sul server una pagina WWW
• POST: “appende” dati ad una pagina WWW (in generale, invia informazioni al server
WWW)
• DELETE: cancella una pagina WWW
Reti di Calcolatori
Andrea Frosini
32
HTML: Hypertext Markup Language
Ogni pagina WWW è codificata in un linguaggio chiamato HTML (Hypertext Markup
Language)
L’HTML è un particolare dialetto di una famiglia di linguaggi standard ISO 8879
chiamata SGML (Standard Generalized Markup Language)
L’idea è che ogni parte od attributo della pagina è marcato da un identificatore od una
coppia di identificatori (tag). Ad esempio, per rendere un testo in grassetto è
sufficiente scrivere <B>testo in grassetto</B>
Come il protocollo HTTP, il linguaggio HTML è in costante evoluzione sia da parte del
World Wide Web Consortium (che definisce lo standard), sia da parte delle aziende
commerciali e organizzazioni che producono i browser (Microsoft Internet Explorer,
Netscape Communicator, Opera, Konqueror, Galeon . . . )
Reti di Calcolatori
Andrea Frosini
33
HTML
Il modello di WWW fin qui presentato è essenzialmente statico: l’utente indica quali
pagine di un server vuole consultare; il server recupera il file corrispondente dal
proprio archivio, e lo spedisce al browser dell’utente, che lo visualizza in modo
opportuno
Il modello statico non è adeguato per le nuove applicazioni (commercio elettronico,
video on demand, . . . ) in cui:
• l’utente deve trasmettere informazioni al server (il proprio nome ed indirizzo, il bene
da acquistare, il numero di carta di credito, . . . )
• il server deve generare dinamicamente il contenuto delle proprie pagine (ad
esempio, deve far visualizzare al browser una conferma della transazione
commerciale da effettuare)
L’HTML dinamico può essere realizzato sia dal lato server che dal lato client
Reti di Calcolatori
Andrea Frosini
34
CGI: Common Gateway Interface
Come generare pagine HTML dinamiche sul lato server?
Un sistema molto diffuso è chiamato Common Gateway Interface (CGI)
Il server WWW contiene in una particolare cartella (generalmente chiamata cgi-bin)
alcuni file eseguibili
Quando il server WWW riceve una richiesta GET o POST per uno dei file nella
cartella, non trasmette il file ma lo esegue, passandogli le informazioni ricevute dal
browser
Il file eseguibile produce “al volo” la pagina WWW che verrà inviata al browser come
risposta alla sua richiesta
Spesso i programmi CGI sono scritti in linguaggi interpretati come Perl e Phyton
Reti di Calcolatori
Andrea Frosini
35
Server WWW con capacità di scripting
Il meccanismo CGI non è molto efficiente, in quanto il server WWW deve invocare un
programma esterno e ricevere la pagina che dovrà essere spedita all’utente
Una alternativa più efficiente consiste nel dotare il server WWW stesso della capacità
di eseguire programmi memorizzati all’interno delle pagine HTML (script)
Essenzialmente tre standard si contendono il mercato:
PHP (PHP: Hypertext Preprocessor)
OpenSource
JSP (JavaServer Pages)
Sun
ASP (Active Server Pages)
Microsoft
Reti di Calcolatori
Andrea Frosini
36
Generazione di pagine WWW dinamiche dal lato client
Il meccanismo CGI e i linguaggi di scripting per i server WWW consentono una
interazione bi-direzionale tra i client ed i server, ma la capacità di elaborazione è
comunque riservata al server WWW
Ad esempio, con il CGI non è possibile controllare la validità di un codice fiscale prima
che esso sia inviato dal browser al server WWW
Per applicazioni altamente interattive i browser hanno cominciato ad utilizzare alcuni
meccanismi per l’esecuzione di programmi sul calcolatore dell’utente:
Nome (Produttore)
Esecutore
JavaScript (Sun)
Browser
Java (Sun)
Java Virtual Machine
ActiveX (Microsoft)
CPU 80x86
Reti di Calcolatori
Velocità
Andrea Frosini
Portabilità
Sicurezza
37
Java e JavaScript
Nell’ambito del WWW si hanno tre varianti di Java:
• JavaScript: i comandi Java sono “immersi” all’interno delle pagine HTML; il browser
interpreta i comandi JavaScript man mano che costruisce la pagina grafica da far
vedere all’utente
• applet Java: il codice è trasferito a parte come un applet (un piccolo programma che
non viene salvato permanentemente sul disco dell’utente); per motivi di compatibilità e
sicurezza l’applet è in formato bytecode, una specie di linguaggio macchina uguale
per tutte le piattaforme
• programma Java: il codice è trasferito a parte come un programma a se stante, ma
sempre in formato bytecode: è necessario avere un interprete Java per poterlo
eseguire, ma è possibile utilizzare il programma anche senza essere connessi al
server WWW
Reti di Calcolatori
Andrea Frosini
38
Cookie
Il protocollo HTTP originale è fondamentalmente stateless: dopo aver servito una
richiesta, un server WWW dimentica completamente la sessione; richieste ripetute
danno luogo sempre alla stessa risposta
Per le applicazioni commerciali sarebbe conveniente avere un meccanismo che
consenta al server di riconoscere se una richiesta di un client è stata già evasa in
passato, ed eventualmente quali scelte aveva fatto l’utente
Netscape ha introdotto i cookie (RFC 2109): quando un client richiede una pagina, il
server può inviare un piccolo file (inferiore a 4 KB) al client, che viene salvato dal
browser sul disco dell’utente ed incluso in tutte le successive richieste dal client al
server
Un cookie può essere persistente se possiede una data ed ora di scadenza, oppure
non persistente se viene cancellato alla chiusura del browser o della connessione
HTTP
Reti di Calcolatori
Andrea Frosini
39
Esempio di gestione dei cookie
Un server WWW invia un cookie insieme alle informazioni accluse alla risposta inviata
ad un client:
HTTP/1.1 200 OK
Date: Mon, 05 Jul 2004 16:43:15 GMT
Server: MyServerWWW-6.1.0
Set-Cookie: AnonymousGuest=5FC6AC163BC14e0886563307DD4A38FD340;
expires=Fri 28-May-2010 23:59:00 GMT; path=/;
Content-Length: 41769
Il client restituisce il cookie in tutte le richieste inviate allo stesso server WWW (in
realtà ogni server nello stesso dominio):
Set-Cookie: AnonymousGuest=5FC6AC163BC14e0886563307DD4A38FD340
Reti di Calcolatori
Andrea Frosini
40
Scarica

Nome