8 Www2009 Parte1

660 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
660
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

8 Www2009 Parte1

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×