1. PARTE 7
LIVELLO APPLICAZIONI
- Esempio: World Wide Web
Livello 5 (application protocol)
• Il livello application utilizza il livello di trasporto
dell’informazione tra processi in esecuzione su host
terminali per realizzare servizi di rete
• Esempi protocolli applicativi
– ftp
– telnet
– http
– smtp
– irc
– …
Reti di Calcolatori 2009/2010– World Wide Web 8.2
1
2. Servizi di rete
Applicazioni di rete Protocolli applicativi
Quindi, si preferirà parlare di
Servizi di rete (=Applicazioni di rete)
Tipicamente, ciascun nuovo servizio di rete definisce:
1. Un software per il client (compresa un’interfaccia
utente)
2. Un software per il server
3. Un (nuovo) protocollo di livello applicativo
Reti di Calcolatori 2009/2010– World Wide Web 8.3
Servizi di rete e
protocolli applicativi
Esempi
– Trasferimento file: usa protocollo applicativo ftp
– Collegamento a terminale remoto: usa
protocollo applicativo telnet
– World Wide Web: usa protocollo applicativo http
– Posta elettronica: usa protocollo applicativo
smtp
– Chat: usa protocollo applicativo irc
–…
Reti di Calcolatori 2009/2010– World Wide Web 8.4
2
3. Esempi di protocolli nello stack TCP/IP
MIME BGP = Border Gataway Protocol
SNMP=Simple Network Management Protocol
SMTP=Simple Mail Tranfer Protocol
ICMP=Internet Control Message Protocol
BGP FTP HTTP SMTP Telnet SNMP IGMP=Internet Group Management Protocol
OSPF=Open Shortest Path First
TCP UDP
ICMP IGMP OSPF
IP
Reti di Calcolatori 2009/2010– World Wide Web 8.5
Applicazioni e protocollo trasporto
Applicazione Prot. strato applicativo Prot. trasporto sottostante
posta elettronica SMTP TCP
accesso terminale remoto Telnet TCP
Web HTTP TCP
trasferimento file FTP TCP
file server remote NFS solitamente UDP
multimedia streaming proprietario solitamente UDP
Telefonia Internet proprietario solitamente UDP
Gestione della rete SNMP solitamente UDP
Protocollo di routing RIP solitamente UDP
Traduzione dei nomi DNS solitamente UDP
Reti di Calcolatori 2009/2010– World Wide Web 8.6
3
4. Applicazioni e protocollo trasporto
1) Posta elettronica, accesso da terminale remoto, Web, trasferimento di
file TCP
Necessario il servizio di trasferimento dati affidabile fornito da TCP
2) Aggiornamento tabelle di routing in RIP UDP
Aggiornamenti periodici delle tabelle eventuali informazioni perse
sostituite da informazioni più aggiornate
3) DNS query UDP
Si evitano i ritardi dovuti all’instaurazione della connessione
4) Telefonia Internet UDP
Tolleranza alla perdita di dati (no servizio affidabile)
Tasso di trasmissione costante (no controllo di congestione)
5) Applicazioni multimediali UDP
Reti di Calcolatori 2009/2010– World Wide Web 8.7
Principali servizi Internet TCP-based
• Posta elettronica (SMTP)
• Login remoto (Telnet)
• Trasferimento file (FTP)
• World Wide Web
Tutti usano il modello client/server
Reti di Calcolatori 2009/2010– World Wide Web 8.8
4
5. Parte 7
Modulo 1:
Introduzione al Web
I chiari segnali del successo del Web
[Load misurato in hit]
Yahoo, Microsoft, Pointcast, CNN, YouTube, Google,… (>100 Milioni hits/day)
Evento Periodo Peak hits/day Peak hits/minute
NCSA server (Oct. 1995) 2 Milioni
Olympic Games 1996 180 Milioni 8 Milioni
(Atlanta, 1996)
NASA Pathfinder 942 Milioni 40 Milioni
(July 1997) (14 days)
Olympic Winter Games 634.7 Milioni 55 Milioni 110.000
(Japan, 1998) (16 days)
FIFA World Cup 1.350 Milioni 73 Milioni 209.000
(France, 1998) (90 days)
Wimbledon 942 Milioni 125 Milioni 430.000
(July, 1999) (14 days)
Wimbledon 282 Milioni 964.000
(July, 2000)
Olympic Games 2000 875 Milioni 1.200.000
Reti di Calcolatori 2009/2010– World Wide Web 8.10
5
6. I veri motivi alla base del
successo del Web
(“Perché anche i semi migliori devono essere piantati
nel periodo giusto ed in un terreno fertile”)
• Digitalizzazione dell’informazione
(Qualsiasi informazione come sequenza di 0 e 1)
• Diffusione di Internet (dagli anni ’70)
(Trasporto dell’informazione ovunque, in tempi rapidissimi e a
costi bassissimi)
• Diffusione dei PC (dagli anni ’80)
(Accesso, memorizzazione ed elaborazione dell’informazione
da parte di chiunque a costi bassissimi)
• Interfacce utente semplificate (dagli anni ’80)
Reti di Calcolatori 2009/2010– World Wide Web 8.11
Quando e perché nasce
Tim Berners-Lee (1989, CERN di Ginevra)
• “The current incompatibilities of the platforms
and tools make it impossible to access
existing information through a common
interface, leading to waste of time, …”
• “A link is specified as an ASCII string from
which the browser can deduce a suitable
method of contacting an appropriate server.
When a link is followed, the browser
addresses the request for the node
[document] to the server.”
Reti di Calcolatori 2009/2010– World Wide Web 8.12
6
7. Ingredienti del Web
• Meccanismi di comunicazione e naming di
Internet
– Protocollo TCP/IP
– Sistema DNS
• Sistema client-server
• “Solo” tre nuovi standard
– URL: Sistema di indirizzamento delle risorse
– HTML: Linguaggio di markup ipertestuale
– HTTP: Protocollo per le richieste risorse
Reti di Calcolatori 2009/2010– World Wide Web 8.13
Parte 7
Modulo 2:
Meccanismi di naming
7
8. Meccanismi di naming del Web
L’insieme di tutti i meccanismi standard di naming
delle risorse Web è l’Uniform Resource Identifiers
(URI) che si compone di:
– Uniform Resource Locator (URL): specifica la locazione
fisica delle risorse e le modalità di accesso
– Uniform Resource Name (URN): proposta per la
rappresentazione univoca dei nomi delle risorse in modo
da garantire persistenza e disponibilità
– Uniform Resource Characteristics (URC): proposta per
la descrizione delle risorse basata su coppie attributo-
valore. Es.: autore, data, copyright
Reti di Calcolatori 2009/2010– World Wide Web 8.15
Uniform Resource Locator (URL)
Il sistema di indirizzamento delle risorse è
basato su Uniform Resource Locator (URL),
un meccanismo standard per fare riferimento
a tutte le risorse presenti nel Web:
– pagine (testo, immagini, suoni, video, ...)
– risultati di esecuzioni
– programmi eseguibili
Reti di Calcolatori 2009/2010– World Wide Web 8.16
8
9. Campi dell’URL
schema :// host.domain / pathname
http :// www.dsi.unimo.it / docenti/orari/esami.html
• schema: indica il modo con cui accedere alla risorsa, cioè
quale protocollo bisogna usare per interagire con il server
che controlla la risorsa. Il metodo di accesso più comune è
HTTP (protocollo nativo del WWW per il recupero di
risorse Web)
• host.domain: è l’hostname del nodo nel quale risiede la
risorsa Web.
• pathname: identifica la risorsa presso il server Web.
Reti di Calcolatori 2009/2010– World Wide Web 8.17
Campi dell’URL
schema :// host.domain:porta / pathname
http :// www.dsi.unimo.it:80 / docenti/orari/esami.html
• schema: indica il modo con cui accedere alla risorsa, cioè
quale protocollo bisogna usare per interagire con il server
che controlla la risorsa. Il metodo di accesso più comune è
HTTP (protocollo nativo del WWW per il recupero di
risorse Web)
• host.domain: è l’hostname del nodo nel quale risiede la
risorsa Web.
• pathname: identifica la risorsa presso il server Web.
Reti di Calcolatori 2009/2010– World Wide Web 8.18
9
10. Altre definizioni
• Sessione utente: serie di richieste di risorse
effettuate dallo stesso utente al medesimo sito
Web
• Richiesta di risorsa (o pagina): una singola
richiesta effettuata dall’utente ( il tipico click),
che tipicamente consiste di multiple richieste di hit
inviate dal client dell’utente al sito Web
• Hit: una richiesta per un singolo oggetto effettuata
dal client al server Web
Reti di Calcolatori 2009/2010– World Wide Web 8.19
Richiesta di una risorsa Web
(cosa succede ad ogni click del mouse?)
Ipotesi: una pagina HTML
http://www.unimo.it/index.html senza embedded objects
INTERNET
oggetto Web (6)
Client Web Connessione TCP (4)
(browser) richiesta URL
(5) (index.html)
(1) server Web
(indirizzo IP:
(3) 144.55.62.18)
144.55.62.18 root
(2) name server
www.unimo.it?
name server locale
name server autoritativo
Fase di lookup: (1) - (2) - (3) per www.unimo.it
Fase di connessione TCP: (4)
Fase di richiesta: (5) - (6)
Reti di Calcolatori 2009/2010– World Wide Web 8.20
10
11. Tipica risorsa Web
Pagina HTML + embedded objects (risorse di
ogni tipo)
Pagina
HTML
Reti di Calcolatori 2009/2010– World Wide Web 8.21
Parte 7
Modulo 3:
Linguaggio di markup
11
12. Ingredienti del Web
• Meccanismi di comunicazione e naming di
Internet
– Protocollo TCP/IP
– Sistema DNS
• Sistema client-server
• “Solo” tre nuovi standard
– URL: Sistema di indirizzamento delle risorse
– HTML: Linguaggio di markup ipertestuale
– HTTP: Protocollo per le richieste risorse
Reti di Calcolatori 2009/2010– World Wide Web 8.23
Documento Web
• Una pagina è costituita da vari oggetti (testo,
immagini binarie, …), detti embedded objects.
• Ad ogni oggetto corrisponde un file.
• Caratteristiche del testo tipico:
– Rappresentazione in standard ASCII
– Si specifica sia il contenuto sia la
rappresentazione (layout)
– Scritto nel linguaggio di markup HTML
Reti di Calcolatori 2009/2010– World Wide Web 8.24
12
13. Concetto di Ipermedia
• I documenti Web tipicamente contengono un
insieme di
– testo
– immagini
– puntatori selezionabili ad altre risorse
– (audio)
– (video) Ipermedia
• Uso mediante “point-and-click”
Reti di Calcolatori 2009/2010– World Wide Web 8.25
Linguaggio di markup
Per permettere la corretta visualizzazione
dell’informazione su qualsiasi piattaforma hardware
connessa in rete è stato necessario definire un
nuovo linguaggio di markup per la formattazione
delle pagine:
– Fornisce delle linee guida generali per la rappresentazione
del contenuto.
– Non specifica esattamente il formato e la posizione del
testo, lasciando ai browser la definizione dei dettagli.
Due browser potrebbero visualizzare lo
stesso documento in modo differente
Reti di Calcolatori 2009/2010– World Wide Web 8.26
13
14. Linguaggio HTML
• Sebbene siano stati proposti modifiche ed altri
standard*, a tutt’oggi HyperText Markup Language
(HTML) rimane il “linguaggio del Web”.
• La pagina HTML è un file di solo testo ASCII.
• Il testo è free-format.
• Contenuto del testo e specifiche di formato sono
inseriti nello stesso file.
* XML è lo standard più importante
Reti di Calcolatori 2009/2010– World Wide Web 8.27
Istruzioni HTML
• La descrizione dei contenuti dell’ipertesto viene effettuata
inserendo all’interno del testo stesso alcune istruzioni dette
marcatori o markup o tag che producono le visualizzazioni
e le azioni specificate.
• Le istruzioni HTML sono racchiuse tra parentesi angolari,
nella forma <tag>, e vengono terminate da un tag di
chiusura nella forma </tag>. Es.
<CENTER> <B> <FONT="Arial">
<FONT COLOR="#336633"> <FONT SIZE=+1>
Informazioni generali
</FONT> </FONT> </FONT> </B> </CENTER>
Reti di Calcolatori 2009/2010– World Wide Web 8.28
14
15. Schema di un documento HTML
<HTML>
<HEAD>
<TITLE>
Titolo del documento
</TITLE>
</HEAD>
<BODY>
Corpo del documento
</BODY>
</HTML>
Reti di Calcolatori 2009/2010– World Wide Web 8.29
Immagini in un documento HTML
• Ciascuna immagine è contenuta in un file differente
dal testo.
• Uso di espliciti tag per le immagini:
<IMG SRC “Pathname_del_file” >
• Possibilità di allineare le immagini al testo:
<IMG SRC “Pathname_del_file” align=middle>
Reti di Calcolatori 2009/2010– World Wide Web 8.30
15
16. Tag àncora
• L’istruzione più innovativa dell’HTML è l’àncora delimitata
dai tag <A>…</A>, in quanto tale elemento permette di
trasformare un normale testo in ipertesto multimediale.
• Un àncora può far riferimento ad una sezione della stessa
pagina oppure ad una qualsiasi risorsa (testuale,
multimediale, eseguibile) presente sul Web, denotata
mediante un URL che va inserito all’interno del tag àncora.
<A
HREF="http://www.unimo.it/studenti/erasmus.ht
ml”> Programma Erasmus </A>
• Il testo Programma Erasmus viene visualizzato in modo
differente e risulta un link simbolico selezionabile via mouse.
Reti di Calcolatori 2009/2010– World Wide Web 8.31
Il tag àncora consente l’ipermedialità
su scala geografica
Conseguenza dirompente
dal punto di vista storico e
sociale: l’informazione non
è più organizzata in rigidi
schemi (es., biblioteca), ma
è accessibile (anche)
mediante “link” decisi da
singole persone, aziende,
organizzazioni, …
Ogni link inserito tra una pagina Web e un’altra determina
una nuova modalità di accesso all’informazione
Reti di Calcolatori 2009/2010– World Wide Web 8.32
16
17. Ricordate …
• Il Web non è importante solo come tecnologia
• Anzi, forse, gli aspetti tecnologici di nostra
competenza sono i meno interessanti dal punto di
vista dell’impatto
• Non trascurate le possibilità di applicazioni di
questa tecnologia e le conseguenze sul piano
economico e sociale
Reti di Calcolatori 2009/2010– World Wide Web 8.33
Parte 7
Modulo 4:
Protocollo HTTP
17
18. Ingredienti del Web
• Meccanismi di comunicazione e naming di
Internet
– Protocollo TCP/IP
– Sistema DNS
• Sistema client-server
• “Solo” tre nuovi standard
– URL: Sistema di indirizzamento delle risorse
– HTML: Linguaggio di markup ipertestuale
– HTTP: Protocollo per le richieste risorse
Reti di Calcolatori 2009/2010– World Wide Web 8.35
Protocollo HTTP
• HyperText Trasmission Protocol (HTTP) è il protocollo che
permette il reperimento delle risorse Web
• E’ un protocollo applicativo di tipo request/reply basato
sulla suite di protocolli TCP/IP
• Tutti i client e server Web devono supportare il protocollo
HTTP per poter scambiare richieste e risposte. Per questa
ragione i client e i server Web sono chiamati anche client
HTTP e server HTTP
Reti di Calcolatori 2009/2010– World Wide Web 8.36
18
19. Protocollo HTTP (2)
● HTTP usa TCP come protocollo di trasporto
• il client inizia la connessione TCP verso il server sulla porta 80
• il server accetta la connessione TCP dal client
• messaggi HTTP di tipo testuale scambiati tra browser e Web server
• chiusura della connessione TCP
•TCP offre un servizio di trasferimento affidabile: i messaggi di richiesta/risposta
sono consegnati integri al destinatario
● HTTP è un protocollo stateless (senza stato)
• il
server non conserva nessuna informazione riguardante le richieste dei
client passati
•I protocolli che conservano lo stato sono complessi!
• La storia passata (lo stato) deve essere memorizzata
•Se il server/client subiscono un crash, la vista dello stato può essere
inconsistente e deve essere ristabilita
Reti di Calcolatori 2009/2010– World Wide Web 8.37
Richiesta HTTP
• Una richiesta HTTP comprende
– metodo
– URL
– identificativo della versione del protocollo HTTP
– insieme di extension header
• Il metodo specifica il tipo di operazione che il client richiede al server.
Il metodo più comune è GET che serve per acquisire pagine Web.
• Gli header contengono informazioni addizionali, quali la data e l’ora
della comunicazione, il tipo di software utilizzato dal client, i tipi di dato
che il browser è in grado di visualizzare, per un totale di circa 50 tipi di
header differenti.
Reti di Calcolatori 2009/2010– World Wide Web 8.38
19
20. Messaggi HTTP
Due tipi di messaggi:
• messaggi di richiesta HTTP
• messaggi di risposta HTTP
● Messaggio di richiesta HTTP: ASCII
Linea di richiesta
(comandi GET, GET /somedir/page.html HTTP/1.1
POST, HEAD) Connection: close
Linee User-agent: Mozilla/4.0
header Accept: text/html, image/gif, image/jpeg
Accept-language:fr
Carriage return,
line feed (extra carriage return, line feed)
indicanti la fine del
messaggio
Reti di Calcolatori 2009/2010– World Wide Web 8.39
Messaggio di richiesta HTTP
● Method: tipo di operazione richiesta dal client
• GET: richiesta di un oggetto
•POST: il client richiede una pagina Web il cui contenuto è specificato
dall'utente (es. richiesta ad un motore di ricerca) nel campo entity body
• HEAD: il client richiede che il server invii soltanto l'header della
risposta senza l'oggetto (usato per debugging dei Web server)
• PUT, DELETE
• LINK, UNLINK (HTTP 1.0)
• TRACE, CONNECT, OPTIONS (HTTP 1.1)
● URL: identificatore dell’oggetto richiesto
● version: versione del protocollo HTTP
Reti di Calcolatori 2009/2010– World Wide Web 8.40
20
21. Metodi delle richieste
Metodo Richiesta Versione protocollo
GET Ricevere una risorsa dal server Dalla HTTP/0.9
HEAD Ricevere il solo header di una risorsa Dalla HTTP/1.0
POST Appendere un oggetto ad un altro sul server Dalla HTTP/1.0
PUT Inviare un oggetto al server Dalla HTTP/1.1
DELETE Cancellare un oggetto dal server Dalla HTTP/1.1
LINK e UNLINK Creare o eliminare collegamenti fra oggetti del server Dalla HTTP/1.1
TRACE Individuare la catena dei server proxy Dalla HTTP/1.1
Reti di Calcolatori 2009/2010– World Wide Web 8.41
Messaggio di richiesta HTTP (cont.)
Header lines
Connection: tipo di connessione richiesta dal client
(persistente, non-persistente)
• User-agent: browser utilizzato dall'utente
• Accept: tipo di oggetti che il client accetta
• Accept-language: preferenza della lingua
• Accept-encoding, Accept-charset
• Host: specifica host che ha la risorsa (HTTP 1.1)
•Altri header per garantire la consistenza delle informazioni
(es., If-Match o If-Modified-Since)
Reti di Calcolatori 2009/2010– World Wide Web 8.42
21
22. Risposta HTTP
• Una risposta HTTP comprende, oltre al contenuto della
risorsa richiesta, un header contenente l’identificativo della
versione del protocollo HTTP, il codice di stato,
l’informazione di stato in forma testuale, ed un insieme di
possibili altre informazioni di risposta.
• Se la pagina richiesta, oltre al testo HTML, contiene altri
oggetti, ciascuno di essi sarà identificato da un URL
differente, per cui è necessario che il browser invii un
esplicito messaggio di richiesta per ognuno degli
elementi collegati alla pagina.
Reti di Calcolatori 2009/2010– World Wide Web 8.43
Messaggio di risposta HTTP
Linea di stato
(codice dello stato
del protocollo, HTTP/1.1 200 OK
frase corrispondente) Connection: close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Linee Last-Modified: Mon, 22 Jun 1998 …...
header Content-Length: 6821
Content-Type: text/html
data data data data data ...
dati, ad es.
il file HTML
richiesto
Reti di Calcolatori 2009/2010– World Wide Web 8.44
22
23. Messaggio di risposta HTTP (cont.)
Version: versione del protocollo HTTP
Status code, phrase: esito della richiesta (codice
e frase)
1xx: Informazioni
2xx: Successo
3xx: Redirezione
4xx: Errore del client
5xx: Errore del server
Reti di Calcolatori 2009/2010– World Wide Web 8.45
Alcuni status code di risposta
Codice numerico Specifica testuale
Esito
(status code) (reason phrase)
OK, la risorsa è stata
200 OK
trovata e viene inviata
Risorsa spostata 301 Moved permanently
Risorsa non modificata 304 Not Modified
Richiesta non valida 400 Bad request
Richiesta di autenticazione 401 Unauthorized
Richiesta di pagamento 402 Payment required
Accesso vietato 403 Forbidden
Risorsa non esistente 404 Not found
Errore nel server 500 Server error
Non implementato 501 Not Implemented
Gateway difettoso 502 Bad Gateway
Servizio non disponibile 503 Service Unavailable
Reti di Calcolatori 2009/2010– World Wide Web 8.46
23
24. Risposte HTTP
Header line
• Connection: tipo di connessione usata dal server
• Date: data e ora della richiesta
• Server: tipo di Web server e di sistema operativo
• Last-Modified: data e ora creazione o modifica
dell'oggetto (caching)
• Content-Length: dimensione in byte dell'oggetto
• Content-Type: tipo di oggetto (es. HTML, GIF, …)
● Entity body: oggetto
Reti di Calcolatori 2009/2010– World Wide Web 8.47
Esempio HTTP
L'utente digita l'URL
www.someSchool.edu/someDepartment/home.index
(il documento contiene testo e i riferimenti a 10 immagini JPEG)
1a. Il client HTTP inizia la
connessione TCP al server 1b. Il server HTTP all'host
HTTP a www.someSchool.edu. www.someSchool.edu in attesa di
80 è la porta di default per una connessione TCP sulla porta 80.
server HTTP. Accetta la connessione, notificandolo
al client
2. Il client HTTP invia un
messaggio di richiesta HTTP 3. Il server riceve il messaggio di
(contenente l'URL) richiesta, forma il messaggio di
risposta contenente l'oggetto
richiesto
(someDepartment/home.index), e lo
tempo invia
Reti di Calcolatori 2009/2010– World Wide Web 8.48
24
25. Esempio HTTP (cont.)
4. Il server HTTP chiude la
connessione TCP.
5. Il client HTTP riceve il
messaggio di risposta
contenente il file HTML,
visualizza html. Analizza il file
HTML (parsing), trova 10
riferimenti ad immagini JPEG
tempo
6. Passi da 1a 5 ripetuti per
ciascuno dei 10 oggetti JPEG
Reti di Calcolatori 2009/2010– World Wide Web 8.49
Interazione utente-server: cookie
• Il server invia al client un
''cookie'' in risposta a client server
– Set-cookie: # usual http request msg
• Il client presenta il cookie usual http response +
nelle richieste successive Set-cookie: #
– cookie: #
• Il server può confrontare il usual http request msg
cookie presentato con i cookie: # cookie-
cookie da lui memorizzati per specific
usual http response msg action
– identificare il client
– cercare di ricostruire la
“sessione” per seguire le usual http request msg
cookie: # cookie-
preferenze e la specific
navigazione degli utenti usual http response msg action
• L’utente può cancellare i
cookie (funzione dei browser)
Reti di Calcolatori 2009/2010– World Wide Web 8.50
25
26. Connessioni TCP nell'HTTP 1.0
• Connessione non-persistente: ogni oggetto viene trasferito usando
una nuova connessione TCP
Versione HTTP/1.0 (RFC 1945)
- problema: three-way handshake del client server
TCP: per ogni trasferimento di oggetto,
in più anche un round-trip time per
instaurare la connessione
- problema: slow-start del TCP (la
finestra ha dimensione pari a 1 all’inizio
.
di ogni nuova connessione) .
.
Soluzione parziale: alcuni browser
creano simultaneamente connessioni
TCP multiple (una per oggetto), dopo
aver analizzato i riferimenti presenti nel
file HTML
Reti di Calcolatori 2009/2010– World Wide Web 8.51
Connessioni TCP nell'HTTP 1.1
• Connessione persistente: un numero multiplo di oggetti (ad es.
tutti gli oggetti che compongono una pagina) vengono trasferiti
entro una stessa connessione TCP
client server
Versione HTTP/1.1 (RFC 2616)
- three-way handshake del TCP: solo
per instaurare la connessione iniziale
- controllo di congestione a regime
• Pipelining in HTTP/1.1: il browser,
dopo aver ricevuto ed analizzato il file
HTML, invia più richieste consecutive .
.
sulla stessa connessione TCP senza .
aspettare di ricevere la risposta
Reti di Calcolatori 2009/2010– World Wide Web 8.52
26
27. Protocolli HTTP/1.0 e HTTP/1.1
HTTP/1.0
Oggetto Oggetto emb. 1
base
Oggetto emb: 2
Parsing time Ogg. emb. 3
Client ON time User think time
(Client OFF time)
Pipelining HTTP/1.1
Oggetto Oggetto emb. 1
base
Oggetto emb: 2
Parsing time Ogg. emb. 3
Client ON time User think time
(Client OFF time)
Reti di Calcolatori 2009/2010– World Wide Web 8.53
HTTP e TCP
Host A Host B
GET http://www.server.com/doc.html
HTTP file doc.html HTTP
TCP SYN, FIN, DATA, ACK TCP
IP IP IP
router
Reti di Calcolatori 2009/2010– World Wide Web 8.54
27
28. Throughput del TCP
window size = 1 window size = 3
host A host B host A host B
data data
ack 1 RTT
data + 2
3 RTT ack
ack
+ 2
data
ack
Throughput X(w=1) Throughput X(w=3)
X(1) = 3 / (3 RTT + 2 ) X(3) = 3 / (RTT + 2 )
1 / RTT 3 / RTT = 3 X(1)
Reti di Calcolatori 2009/2010– World Wide Web 8.55
Throughput del TCP (2)
• Aumentare la dimensione della window aumenta
il throughput della comunicazione fino al
massimo della banda della connessione TCP
X (w)
w X(1) B = banda della connessione TCP
B (capacità massima)
w* = window size per throughput
massimo
X (w) = min [B, w X(1)]
w* w
Reti di Calcolatori 2009/2010– World Wide Web 8.56
28
29. Throughput del TCP (3)
Bandwidth RTT X(1)
RETE (bytes/sec) (sec) (bytes/sec) X(w*) w* X(w*)/X(1)
Ethernet 1.090.000 0,0007 1.090.000 1.090.000 1 1,000
Fast Ethernet 12.500.000 0,0007 2.085.714 12.500.000 6 5,993
Slow Internet 12.750 0,1610 9.068 12.750 2 1,406
Fast Internet 127.500 0,0890 16.404 127.500 8 7,772
Reti di Calcolatori 2009/2010– World Wide Web 8.57
Slow start del TCP e prestazioni
• Poiché il TCP non conosce il RTT né la banda
effettiva di una connessione TCP, si comincia
con una window size piccola (che porta ad un
throughput molto basso), ed aggiusta la
dimensione della window_size in base alla
frequenza degli ACK ricevuti
CONSEGUENZA
Le connessioni TCP brevi (short-lived)
tendono ad operare molto al di sotto del
massimo throughput!
Reti di Calcolatori 2009/2010– World Wide Web 8.58
29
30. Combinazione di HTTP/1.0 e TCP/IP
• HTTP definisce una interazione richiesta-
risposta
• HTTP è un protocollo “stateless”
• Le due inefficienze dell’HTTP/1.0 che
richiedono una connessione per oggetto
– Overhead del setup della connessione TCP che
influenza il tempo di risposta e il tempo di latenza
– “Slow start” del TCP per cui piccoli oggetti Web non
riescono a raggiungere la dimensione massima della
finestra, che influenza il throughput
Reti di Calcolatori 2009/2010– World Wide Web 8.59
Interazioni HTTP/1.0 e HTTP/1.1
(Esempio: 1 file HTML+1 immagine)
0 RTT
syn 0 RTT
syn
Connessione TCP Connessione TCP
syn
1 RTT syn
Server 1 RTT
ack Server
time ack
client invia Dati client invia time
richiesta HTTP richiesta HTTP Dati
ack
ack Dati
Dati 2 RTT
2 RTT
client analizza client analizza
il file HTML syn il file HTML ack
syn Server Server
3 RTT time time
client invia Dati
client invia rich. rich. per immagine
per immagine Dati
ack
4 RTT 3 RTT
Dati Dati
Arrivo file Arrivo file
immagine immagine
HTTP/1.0 HTTP/1.1
Reti di Calcolatori 2009/2010– World Wide Web 8.60
30
31. Anatomia di un’interazione HTTP
Server Server
Utente Client (browser) Rete (cache) (disco)
click
R’
C Dati restituiti
dalla cache Richiesta HTTP
R’
N1
R’ R’Sc
r Dati da disk cache
del server R’
Sd
R’ Dati
N2
Display
Reti di Calcolatori 2009/2010– World Wide Web 8.61
31