SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Majong DevJfu
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaMajong DevJfu
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneMajong DevJfu
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Majong DevJfu
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiMajong DevJfu
 
Pe a2 perl-documentazione
Pe a2 perl-documentazionePe a2 perl-documentazione
Pe a2 perl-documentazioneMajong DevJfu
 
Pe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingPe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingMajong DevJfu
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architecturesMajong DevJfu
 

Andere mochten auch (20)

Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
6 Dns Parte2
6 Dns Parte26 Dns Parte2
6 Dns Parte2
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
9 Ftp Telnet Email
9 Ftp Telnet Email9 Ftp Telnet Email
9 Ftp Telnet Email
 
esercizio sigda n 8
esercizio sigda n 8esercizio sigda n 8
esercizio sigda n 8
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di Macchina
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazione
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: Automi
 
Py a5 python-text
Py a5 python-textPy a5 python-text
Py a5 python-text
 
3 Sigda
3 Sigda3 Sigda
3 Sigda
 
Pe t4 perl-oggetti
Pe t4 perl-oggettiPe t4 perl-oggetti
Pe t4 perl-oggetti
 
Pe a2 perl-documentazione
Pe a2 perl-documentazionePe a2 perl-documentazione
Pe a2 perl-documentazione
 
Pe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingPe a3 perl-metaprogramming
Pe a3 perl-metaprogramming
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 

Ähnlich wie 8 Www2009 Parte1

Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetGiuseppe Cramarossa
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17Giuseppe Vizzari
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1Majong DevJfu
 
5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2Majong DevJfu
 
01 Internet: origini e definizioni
01 Internet: origini e definizioni01 Internet: origini e definizioni
01 Internet: origini e definizioniDario Avantaggiato
 
Introduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemIntroduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemRoBisc
 
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet IIGiuseppe Vizzari
 
Telematica
TelematicaTelematica
Telematicajoefig
 
2 Protocolli Applicativi
2 Protocolli Applicativi2 Protocolli Applicativi
2 Protocolli Applicativiacapone
 
Strutturazione delle Reti
Strutturazione delle RetiStrutturazione delle Reti
Strutturazione delle RetiVincenzo Quero
 
4 - Introduzione al web (1/2) - 17/18
4 - Introduzione al web (1/2) - 17/184 - Introduzione al web (1/2) - 17/18
4 - Introduzione al web (1/2) - 17/18Giuseppe Vizzari
 
Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Giuseppe Vizzari
 
Il web e la sua evoluzione
Il web e la sua evoluzioneIl web e la sua evoluzione
Il web e la sua evoluzioneNino Lopez
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 

Ähnlich wie 8 Www2009 Parte1 (20)

2 Suite Standard
2 Suite Standard2 Suite Standard
2 Suite Standard
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
 
$Rzgejzw
$Rzgejzw$Rzgejzw
$Rzgejzw
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1
 
5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2
 
TCP IP
TCP IPTCP IP
TCP IP
 
01 Internet: origini e definizioni
01 Internet: origini e definizioni01 Internet: origini e definizioni
01 Internet: origini e definizioni
 
Introduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name SystemIntroduzione ai protocolli tcp/ip ed al Domain Name System
Introduzione ai protocolli tcp/ip ed al Domain Name System
 
6 Dns Parte1
6 Dns Parte16 Dns Parte1
6 Dns Parte1
 
03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet II
 
Telematica
TelematicaTelematica
Telematica
 
2 Protocolli Applicativi
2 Protocolli Applicativi2 Protocolli Applicativi
2 Protocolli Applicativi
 
ISO-OSI
ISO-OSIISO-OSI
ISO-OSI
 
Strutturazione delle Reti
Strutturazione delle RetiStrutturazione delle Reti
Strutturazione delle Reti
 
4 - Introduzione al web (1/2) - 17/18
4 - Introduzione al web (1/2) - 17/184 - Introduzione al web (1/2) - 17/18
4 - Introduzione al web (1/2) - 17/18
 
Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19
 
Il web e la sua evoluzione
Il web e la sua evoluzioneIl web e la sua evoluzione
Il web e la sua evoluzione
 
zeroconf
zeroconfzeroconf
zeroconf
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 

Mehr von Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Mehr von Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

8 Www2009 Parte1

  • 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