Title: Presentazione di PowerPoint
1Reti di Calcolatori a.a. 2005/06 Lezione 18
2Nel modello di riferimento
Application
Transport
Network
Data Link
Fisico
3Il 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
4Domain 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 ununica autorità, ma vengono
assegnati da tante autorità diverse, ciascuna
corrispondente ad un dominio o sotto-dominio Ness
un 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.
5Domain 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.subdoma
in1.topleveldomain
identificano ciascuna un sottodominio del dominio
di cui alla sottostringa seguente
top-level domain di appartenenza
nome dellhost
6Domini 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
7Funzionamento 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
8Name 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
9Servizi di Internet I
Servizi di tracciamento verifica dellesistenza
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 cond
ivisione e modifica di risorse condivise (dati,
programmi, documenti) fra più corrispondenti Serv
izi di coordinazione attività concordata di
persone, servizi o programmi
10Servizi 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 Comunicaz
ione e-mail, news irc, chat Cooperazione ftp,
www napster Coordinazione e-commerce MUD
11Posta elettronica I
Il Sistema di posta elettronica permette la
comunicazione asincrona uno-a-uno o uno-a-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
12Posta 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
13Posta elettronica indirizzi
Gli indirizzi di posta elettronica hanno la
forma username_at_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)
14Agenti 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 lapplicazione
di posta elettronica. Ad esempio, un MUA
(configurato prima delluso) deve affidare ad un
MTA un messaggio composto da un utente per
inviarlo al destinatario
15Il 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 lattivazione
di una nuova connessione TCP Una evoluzione
successiva del protocollo è ormai utilizzata da
quasi tutti i mail server ESMTP (Extended SMTP,
RFC 2821)
16Il 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
17Esempio di protocollo SMTP
connect hostmailsrv.unisi.it port25 220
mailsrv.unisi.it ESMTP MTA-XXX Wed, 4 Jul 2005
190225 HELO student.unisi.it 250
mailsrv.unisi.it Hello mta_at_student.unisi.it 63.12
0.230.105, pleased to meet you MAIL FROM
mario_at_student.unisi.it 250 2.1.0
mario_at_student.unisi.it... Sender ok RCPT TO
frosini_at_unisi.it 250 2.1.5 frosini_at_unisi.it...
Recipient ok DATA 354 Enter mail, end with "."
on a line by itself . From mario_at_student.unisi.it
To frosini_at_unisi.it 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
18Il 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 dellutente gestisce la
casella di posta elettronica sul server
19Esempio di protocollo POP3
connect hostmailsrv.unisi.it port110 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
20I 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 allutente
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 dallutente 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
21Ulteriori 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 allarrivo 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
22MIME 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,
20452049) Lidea 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
23MIME 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)
24Modello posta elettronica
25Esempio posta elettronica
26Altri 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)
27Il 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
28Pagine 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
Lutente può saltare da una pagina allaltra
agendo sui link della pagina attualmente
visualizzata Utilizzando altre applicazioni
presenti sul calcolatore dellutente (helper
applications), il browser può visualizzare un
filmato, suonare un brano musicale
29Schema 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 unaltra 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
30URL Uniform Resource Locator
Gli Uniform Resource Locator (URL) sono gli
identificatori utilizzati dal WWW Allinterno
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 ltprotocollogt//ltnome
logico server WWWgt/ltnome locale paginagt Il campo
ltprotocollogt è generalmente, ma non sempre,
http Il campo ltnome locale paginagt è
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/h
ome/frosini/Lezione_18-RdC.ppt
31I 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 dellutente news newsgroup o
articolo news gopher gopher (antenato del
WWW) mailto invio di posta elettronica teln
et terminale remoto
32HTTP 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
33HTML Hypertext Markup Language
Ogni pagina WWW è codificata in un linguaggio
chiamato HTML (Hypertext Markup Language) LHTML
è un particolare dialetto di una famiglia di
linguaggi standard ISO 8879 chiamata SGML
(Standard Generalized Markup Language) Lidea è
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
ltBgttesto in grassettolt/Bgt 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 .
. . )
34HTML
Il modello di WWW fin qui presentato è
essenzialmente statico lutente indica quali
pagine di un server vuole consultare il server
recupera il file corrispondente dal proprio
archivio, e lo spedisce al browser dellutente,
che lo visualizza in modo opportuno Il modello
statico non è adeguato per le nuove applicazioni
(commercio elettronico, video on demand, . . . )
in cui lutente 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) LHTML
dinamico può essere realizzato sia dal lato
server che dal lato client
35CGI 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
36Server 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 allutente Una alternativa più efficiente
consiste nel dotare il server WWW stesso della
capacità di eseguire programmi memorizzati
allinterno delle pagine HTML (script) Essenzialm
ente tre standard si contendono il mercato PHP
(PHP Hypertext Preprocessor) OpenSource JSP
(JavaServer Pages) Sun ASP (Active Server
Pages) Microsoft
37Generazione 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 lesecuzione di programmi sul
calcolatore dellutente
Nome (Produttore) Esecutore
Velocità Portabilità Sicurezza JavaScript
(Sun) Browser Java (Sun)
Java Virtual Machine ActiveX (Microsoft)
CPU 80x86
38Java e JavaScript
Nellambito del WWW si hanno tre varianti di
Java JavaScript i comandi Java sono immersi
allinterno delle pagine HTML il browser
interpreta i comandi JavaScript man mano che
costruisce la pagina grafica da far vedere
allutente applet Java il codice è trasferito
a parte come un applet (un piccolo programma che
non viene salvato permanentemente sul disco
dellutente) per motivi di compatibilità e
sicurezza lapplet è 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
39Cookie
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
lutente 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 dellutente 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
40Esempio 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
164315 GMT Server MyServerWWW-6.1.0 Set-Cookie
AnonymousGuest5FC6AC163BC14e0886563307DD4A38FD34
0 expiresFri 28-May-2010 235900 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
AnonymousGuest5FC6AC163BC14e0886563307DD4A38FD340