8 Www2009 Parte1

31
1 PARTE 7 LIVELLO APPLICAZIONI - Esempio: World Wide Web Reti di Calcolatori 2009/2010– 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 –… 8.2

Transcript of 8 Www2009 Parte1

Page 1: 8 Www2009 Parte1

1

PARTE 7

LIVELLO APPLICAZIONI- Esempio: World Wide Web

Reti di Calcolatori 2009/2010– 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– …

8.2

Page 2: 8 Www2009 Parte1

2

Reti di Calcolatori 2009/2010– World Wide Web

Servizi di rete

Applicazioni di rete Protocolli applicativi

Quindi, si preferirà parlare diServizi 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 server3. Un (nuovo) protocollo di livello applicativo

8.3

Reti di Calcolatori 2009/2010– World Wide Web

Servizi di rete eprotocolli 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– …

8.4

Page 3: 8 Www2009 Parte1

3

Reti di Calcolatori 2009/2010– World Wide Web

Esempi di protocolli nello stack TCP/IP

IP

ICMP IGMP OSPF

TCP UDP

BGP FTP HTTP SMTP Telnet SNMP

MIME BGP = Border Gataway ProtocolSNMP=Simple Network Management ProtocolSMTP=Simple Mail Tranfer ProtocolICMP=Internet Control Message ProtocolIGMP=Internet Group Management ProtocolOSPF=Open Shortest Path First

8.5

Reti di Calcolatori 2009/2010– World Wide Web

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

8.6

Page 4: 8 Www2009 Parte1

4

Reti di Calcolatori 2009/2010– World Wide Web

Applicazioni e protocollo trasporto1) Posta elettronica, accesso da terminale remoto, Web, trasferimento difile 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 persesostituite da informazioni più aggiornate

3) DNS query UDPSi evitano i ritardi dovuti all’instaurazione della connessione

4) Telefonia Internet UDPTolleranza alla perdita di dati (no servizio affidabile)

Tasso di trasmissione costante (no controllo di congestione)

5) Applicazioni multimediali UDP

8.7

Reti di Calcolatori 2009/2010– World Wide Web

Principali servizi Internet TCP-based

• Posta elettronica (SMTP)• Login remoto (Telnet)• Trasferimento file (FTP)• World Wide Web

Tutti usano il modello client/server

8.8

Page 5: 8 Www2009 Parte1

5

Modulo 1:Introduzione al Web

Parte 7

Reti di Calcolatori 2009/2010– World Wide Web

I chiari segnali del successo del Web

Yahoo, Microsoft, Pointcast, CNN, YouTube, Google,… (>100 Milioni hits/day)

Evento Periodo Peak hits/day Peak hits/minuteNCSA 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

[Load misurato in hit]

8.10

Page 6: 8 Www2009 Parte1

6

Reti di Calcolatori 2009/2010– World Wide Web

I veri motivi alla base delsuccesso 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)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

Page 7: 8 Www2009 Parte1

7

Reti di Calcolatori 2009/2010– World Wide Web

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

8.13

Modulo 2:Meccanismi di naming

Parte 7

Page 8: 8 Www2009 Parte1

8

Reti di Calcolatori 2009/2010– World Wide Web

Meccanismi di naming del WebL’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

8.15

Reti di Calcolatori 2009/2010– World Wide Web

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

8.16

Page 9: 8 Www2009 Parte1

9

Reti di Calcolatori 2009/2010– World Wide Web

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.

8.17

Reti di Calcolatori 2009/2010– World Wide Web

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.

8.18

Page 10: 8 Www2009 Parte1

10

Reti di Calcolatori 2009/2010– World Wide Web

Altre definizioni

• Sessione utente: serie di richieste di risorseeffettuate 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 hitinviate dal client dell’utente al sito Web

• Hit: una richiesta per un singolo oggetto effettuata dal client al server Web

8.19

Reti di Calcolatori 2009/2010– World Wide Web

Fase di lookup: (1) - (2) - (3)Fase di connessione TCP: (4)Fase di richiesta: (5) - (6)

Richiesta di una risorsa Web(cosa succede ad ogni click del mouse?)

name server autoritativoper www.unimo.it

name server locale

server Web(indirizzo IP: 144.55.62.18)

INTERNET

www.unimo.it?

(1)

(2)144.55.62.18

(3)

richiesta URL (index.html)(5)

oggetto Web (6)

rootname server

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

Client Web(browser)

Connessione TCP (4)

Ipotesi: una pagina HTMLsenza embedded objects

8.20

Page 11: 8 Www2009 Parte1

11

Reti di Calcolatori 2009/2010– World Wide Web

Tipica risorsa WebPagina HTML + embedded objects (risorse diogni tipo)

PaginaHTML

8.21

Modulo 3:Linguaggio di markup

Parte 7

Page 12: 8 Www2009 Parte1

12

Reti di Calcolatori 2009/2010– World Wide Web

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

8.23

Reti di Calcolatori 2009/2010– World Wide Web

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

8.24

Page 13: 8 Www2009 Parte1

13

Reti di Calcolatori 2009/2010– World Wide Web

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”8.25

Reti di Calcolatori 2009/2010– World Wide Web

Linguaggio di markupPer 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

8.26

Page 14: 8 Www2009 Parte1

14

Reti di Calcolatori 2009/2010– World Wide Web

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

8.27

Reti di Calcolatori 2009/2010– World Wide Web

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>

8.28

Page 15: 8 Www2009 Parte1

15

Reti di Calcolatori 2009/2010– World Wide Web

Schema di un documento HTML

<HTML> <HEAD>

<TITLE>Titolo del documento

</TITLE></HEAD><BODY>

Corpo del documento</BODY>

</HTML>

8.29

Reti di Calcolatori 2009/2010– World Wide Web

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>

8.30

Page 16: 8 Www2009 Parte1

16

Reti di Calcolatori 2009/2010– World Wide Web

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.

<AHREF="http://www.unimo.it/studenti/erasmus.html”> Programma Erasmus </A>

• Il testo Programma Erasmus viene visualizzato in modo differente e risulta un link simbolico selezionabile via mouse.

8.31

Il tag àncora consente l’ipermedialità su scala geografica

Conseguenza dirompentedal punto di vista storico esociale: l’informazione nonè più organizzata in rigidischemi (es., biblioteca), maè accessibile (anche)mediante “link” decisi dasingole persone, aziende,organizzazioni, …

Ogni link inserito tra una pagina Web e un’altra determinauna nuova modalità di accesso all’informazione

Reti di Calcolatori 2009/2010– World Wide Web 8.32

Page 17: 8 Www2009 Parte1

17

Reti di Calcolatori 2009/2010– World Wide Web

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

8.33

Modulo 4:Protocollo HTTP

Parte 7

Page 18: 8 Www2009 Parte1

18

Reti di Calcolatori 2009/2010– World Wide Web

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

8.35

Reti di Calcolatori 2009/2010– World Wide Web

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

8.36

Page 19: 8 Www2009 Parte1

19

Reti di Calcolatori 2009/2010– World Wide Web

● 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/rispostasono 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

Protocollo HTTP (2)

8.37

Reti di Calcolatori 2009/2010– World Wide Web

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.

8.38

Page 20: 8 Www2009 Parte1

20

Reti di Calcolatori 2009/2010– World Wide Web

Messaggi HTTP

● Messaggio di richiesta HTTP: ASCII

GET /somedir/page.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language:fr

(extra carriage return, line feed)

Linea di richiesta(comandi GET, POST, HEAD)

Linee header

Carriage return, line feed

indicanti la fine del messaggio

Due tipi di messaggi:• messaggi di richiesta HTTP• messaggi di risposta HTTP

8.39

Reti di Calcolatori 2009/2010– World Wide Web

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 è specificatodall'utente (es. richiesta ad un motore di ricerca) nel campo entity body

• HEAD: il client richiede che il server invii soltanto l'header dellarisposta 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

8.40

Page 21: 8 Www2009 Parte1

21

Reti di Calcolatori 2009/2010– World Wide Web

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

8.41

Reti di Calcolatori 2009/2010– World Wide Web

Messaggio di richiesta HTTP (cont.)

Header linesConnection: 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)

8.42

Page 22: 8 Www2009 Parte1

22

Reti di Calcolatori 2009/2010– World Wide Web

Risposta HTTP

• Una risposta HTTP comprende, oltre al contenuto dellarisorsa richiesta, un header contenente l’identificativo dellaversione del protocollo HTTP, il codice di stato,l’informazione di stato in forma testuale, ed un insieme dipossibili 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.

8.43

Reti di Calcolatori 2009/2010– World Wide Web

Messaggio di risposta HTTP

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 …... Content-Length: 6821 Content-Type: text/html data data data data data ...

Linea di stato(codice dello stato

del protocollo, frase corrispondente)

dati, ad es. il file HTML

richiesto

Linee header

8.44

Page 23: 8 Www2009 Parte1

23

Reti di Calcolatori 2009/2010– World Wide Web

Messaggio di risposta HTTP (cont.)

Version: versione del protocollo HTTP

Status code, phrase: esito della richiesta (codice e frase)

1xx: Informazioni2xx: Successo3xx: Redirezione4xx: Errore del client5xx: Errore del server

8.45

Reti di Calcolatori 2009/2010– World Wide Web

Alcuni status code di rispostaEsito Codice numerico

(status code)Specifica testuale(reason phrase)

OK, la risorsa è statatrovata e viene inviata 200 OK

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 Unavailable8.46

Page 24: 8 Www2009 Parte1

24

Reti di Calcolatori 2009/2010– World Wide Web

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

Risposte HTTP

8.47

Reti di Calcolatori 2009/2010– World Wide Web

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 HTTP a www.someSchool.edu. 80 è la porta di default per server HTTP.

2. Il client HTTP invia un messaggio di richiesta HTTP (contenente l'URL)

1b. Il server HTTP all'host www.someSchool.edu in attesa di una connessione TCP sulla porta 80. Accetta la connessione, notificandolo al client

3. Il server riceve il messaggio di richiesta, forma il messaggio di risposta contenente l'oggetto richiesto (someDepartment/home.index), e lo invia

Esempio HTTP

tempo

8.48

Page 25: 8 Www2009 Parte1

25

Reti di Calcolatori 2009/2010– World Wide Web

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

6. Passi da 1a 5 ripetuti per ciascuno dei 10 oggetti JPEG

4. Il server HTTP chiude la connessione TCP.

Esempio HTTP (cont.)

tempo

8.49

Reti di Calcolatori 2009/2010– World Wide Web

Interazione utente-server: cookie

• Il server invia al client un ''cookie'' in risposta a– Set-cookie: #

• Il client presenta il cookie nelle richieste successive– cookie: #

• Il server può confrontare il cookie presentato con i cookie da lui memorizzati per– identificare il client– cercare di ricostruire la

“sessione” per seguire le preferenze e la navigazione degli utenti

• L’utente può cancellare i cookie (funzione dei browser)

client serverusual http request msgusual http response +

Set-cookie: #

usual http request msgcookie: #

usual http response msg

usual http request msgcookie: #

usual http response msg

cookie-specificaction

cookie-specificaction

8.50

Page 26: 8 Www2009 Parte1

26

Reti di Calcolatori 2009/2010– World Wide Web

• Connessione non-persistente: ogni oggetto viene trasferito usandouna nuova connessione TCP

Connessioni TCP nell'HTTP 1.0

Versione HTTP/1.0 (RFC 1945)- problema: three-way handshake delTCP: per ogni trasferimento di oggetto,in più anche un round-trip time perinstaurare la connessione- problema: slow-start del TCP (lafinestra ha dimensione pari a 1 all’iniziodi ogni nuova connessione)Soluzione parziale: alcuni browsercreano simultaneamente connessioniTCP multiple (una per oggetto), dopoaver analizzato i riferimenti presenti nelfile HTML

.

.

.

client server

8.51

Reti di Calcolatori 2009/2010– World Wide Web

• Connessione persistente: un numero multiplo di oggetti (ad es.tutti gli oggetti che compongono una pagina) vengono trasferitientro una stessa connessione TCP

Versione HTTP/1.1 (RFC 2616)- three-way handshake del TCP: soloper instaurare la connessione iniziale- controllo di congestione a regime

client server

.

.

.

• 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

Connessioni TCP nell'HTTP 1.1

8.52

Page 27: 8 Www2009 Parte1

27

Reti di Calcolatori 2009/2010– World Wide Web

Protocolli HTTP/1.0 e HTTP/1.1

User think time(Client OFF time)

Client ON time

HTTP/1.0

Parsing time

Oggetto base

Oggetto emb. 1

Oggetto emb: 2Ogg. emb. 3

User think time(Client OFF time)

Client ON time

Pipelining HTTP/1.1

Parsing time

Oggetto base

Oggetto emb. 1Oggetto emb: 2

Ogg. emb. 3

8.53

HTTP e TCP

IPIP

TCP

HTTP

IP

TCP

HTTP

Host A

router

Host BGET http://www.server.com/doc.html

file doc.html

SYN, FIN, DATA, ACK

Reti di Calcolatori 2009/2010– World Wide Web 8.54

Page 28: 8 Www2009 Parte1

28

Throughput del TCP

host A host B host A host B

data

data

data

ack

ack

ack

data

ack3 RTT+ 2

1 RTT+ 2

window size = 1 window size = 3

Throughput X(w=1)

X(1) = 3 / (3 RTT + 2 ) 1 / RTT

Throughput X(w=3)

X(3) = 3 / (RTT + 2 ) 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

B

w X(1)X (w)

ww*

B = banda della connessione TCP (capacità massima)

w* = window size per throughputmassimo

X (w) = min [B, w X(1)]

Reti di Calcolatori 2009/2010– World Wide Web 8.56

Page 29: 8 Www2009 Parte1

29

Throughput del TCP (3)

RETEBandwidth (bytes/sec)

RTT(sec)

X(1) (bytes/sec) X(w*) w* X(w*)/X(1)

Ethernet 1.090.000 0,0007 1.090.000 1.090.000 1 1,000Fast Ethernet 12.500.000 0,0007 2.085.714 12.500.000 6 5,993Slow Internet 12.750 0,1610 9.068 12.750 2 1,406Fast 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

CONSEGUENZALe 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

Page 30: 8 Www2009 Parte1

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

3 RTT

(Esempio: 1 file HTML+1 immagine)

0 RTT

1 RTT

2 RTT

3 RTT

4 RTT

Connessione TCP

client invia richiesta HTTP

client analizzail file HTML

client invia rich.per immagine

Arrivo fileimmagine

syn

syn

ack

Dati

Dati ack

syn syn

Dati

Dati

Servertime

Servertime

HTTP/1.0

0 RTT

1 RTT

syn

syn

ack

Dati

Dati ack

ack

Dati

Dati

Servertime

Servertime

ack

2 RTT

Connessione TCP

client invia richiesta HTTP

client analizzail file HTML

client inviarich. per immagine

Arrivo fileimmagine

HTTP/1.1

Reti di Calcolatori 2009/2010– World Wide Web 8.60

Page 31: 8 Www2009 Parte1

31

Anatomia di un’interazione HTTP

Utente Client (browser) ReteServer(cache)

click

Dati restituitidalla cache

Display

Richiesta HTTP

Dati

R’Sc

CR’

R’r

R’N1

R’N2

Server(disco)

R’Sd

Dati da disk cachedel server

Reti di Calcolatori 2009/2010– World Wide Web 8.61