+ All Categories
Home > Documents > Applicazioni di rete - LIA - Laboratory of Advanced Research on...

Applicazioni di rete - LIA - Laboratory of Advanced Research on...

Date post: 18-Feb-2019
Category:
Upload: vuongnhi
View: 213 times
Download: 0 times
Share this document with a friend
27
1 Applicazioni di rete
Transcript

1

Applicazioni di rete

2

PROTOCOLLO TCP

Proprietà:- verifica che i dati siano arrivati ed automaticamente provvede in caso negativo alla loro ritrasmissione- esegue checksum sui dati per garantire che non ci siano stati problemi di trasmissione- verifica che i dati siano arrivati in ordine usando i numeri di sequenza dei pacchetti- elimina i duplicati- fornisce il controllo del flusso per assicurare che il sender non invii dati più velocemente di quanto possano essere utilizzati dal consumer- informa il client ed il server se la rete diventa non utilizzabile per qualche ragione

3

PROTOCOLLO UDP

• UDP non fornisce alcuna garanzia circa la affidabilità;la richiesta può andare perduta, essere duplicata,

consegnata non in ordine, etc.

• UDP lavora bene se la rete sottostante non introduce errori; può essere utilizzato in ambienti locali

4

• Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione.(peer to peer communication)

• Questo compito è svolto dalle applicazioni che utilizzano TCP per la trasmissione dei dati usando un proprio protocollo, detto protocollo di applicazione.

• I protocolli di applicazione si basano sul modello client-server: quindi e’ precisato chi inizia la comunicazione (client) e a chi è diretta (server).

• Ai più diffusi protocolli dello strato applicazione sono stati assegnati numeri di porta specifici. Ad es., un processo server web (che usa il protocollo HTTP) è identificato dal numero di porta 80.

• Un server di posta (protocollo SMTP) è identificato dal numero di porta 25.

•Un elenco di numeri di porta ben conosciuti per tutti i protocolli standard di Internet è contenuto nella RFC 1700. Quando un programmatore crea una nuova applicazione, ad essa deve essere assegnato un nuovo numero di porta

5

Identificazione dei servizi

• TCP assegna a ciascun servizio un identificatore di 16 bit (numero di protocollo della porta).

• I client devono specificare il numero della porta che eroga il servizio desiderato. TCP utilizza il numero della porta contenuto nella richiesta per determinare il server.

• Nel caso di più copie concorrenti di server il protocollo di trasporto deve selezionare la copia corretta del server.

• Soluzione TCP. Ciascun client sceglie un numero di protocollo della porta sulla macchina locale (non assegnato ad alcun servizio)

6

Identificazione dei servizi

• In ogni messaggio inviato dal client compare

porta mittente (source port)eporta destinatario (destination port)

• Il protocollo TCP sul lato server utilizza queste due informazioni per identificare il thread appropriato a svolgere il servizio.

• Le richieste di due client possono così essere ricevute contemporaneamente.

7

APPLICAZIONI DI RETE

Posta elettronica, Telnet, FTP, newgroup, chat www, telefonia internet (Voice over IP), video conferenze, audio e video a richiesta (video on demand).

Protocolli dello stato di applicazioneDefinisce come i processi delle applicazioni, che funzionano su host diversi, si scambiano messaggi:

i tipi di messaggi scambiati (messaggi di richiesta, messaggi di risposta)sintassi dei vati tipi di messaggio (campi e loro utilizzo)semanticasemantica dei campi (regole per determinare quando e come un processo invia messaggi o risponde ai messaggi)

Disponibili come RFC (Request for Comments). Standard Internet

8

SMTP (Simple Mail Transfer Protocol)FTP (File transfer Protocolo)HTTP (Hypertext Transfer Protocol )SNMP (Simple Network Management Protocolo)

Utilizzano il protocollo sottostante TCP per l’invio fisico dei messaggi

Esempi di protocolli dello stato di applicazione

9

Esempio: WWW

L’applicazione è costituita da ;

browser (Nescape Navigator, Microsoft Internet Explorer,…)

Web server (Apache, Microsoft,…)

protocollo dell’applicazione HTTP (Hypertext Transfer Protocol ) che definisce come i messaggi vengono scambiati tra browser e web

Browser e server utilizzano HTTP che a sua volta utilizza TCP

10

CLIENT WEB

Strumento di interfaccia tra l’utente ed il sistema Web (browser).

Funzioni svolte:

•Riceve ed esegue i comandi dell’utente

•Richiede ad un server (web server) i documenti

•Interpreta i formati di codifica (HTML, GIF, JPEG; MP3..) che costituiscono ogni singolo documento e li presenta all’utente

11

SERVER WEB

•Si occupa della gestione, del reperimento e dell’invio dei documenti (ovvero dei vari oggetti digitali che li compongono) richiesti dai client.

•Quando l’utente attiva un collegamento (agendo su un link) o specifica esplicitamente l’indirizzo di un documento, il client invia una richiesta HTTP ad un determinato server con l’indicazione del documento richiesto.

•Il server web interpreta la richiesta , reperisce il documento richiesto e lo invia al client usando HTTP e specificando il tipo di documento.

12

•Ogni pagina gestita dal server è identificata univocamente tramite una forma sintattica convenzionale detta URL (UniformResource Locator) che ha la forma:

protocollo://nome_calcolatore/nome_documento

protocollo rappresenta l’insieme di regole che browser e server web devono seguire per inviare la richiesta di una pagina (browser) e per inviare la pagina richiesta (server web).

Il protocollo usato è HTTP (HyperText Transfer Protocol).

nome del calcolatore rappresenta il nome del server che contiene le pagine cercate.

nome del documento rappresenta il nome della pagina cercata.

13

Esempio:

http: // www.unibo.it/Portale/Master/default.htm

•Richiesta della pagina Master (che contiene tutti i master attivati presso l’Università di Bologna) situata sul server www.unibo.it che rappresenta la home page del portale dell’Università di Bologna.

•Alla ricezione della richiesta indicata, il server compie una ricerca nell’archivio delle pagine che gestisce e quindi produce un messaggiodi risposta che contiene la pagina richiesta.

•Protocollo di applicazione: HTTP

14

BROWSERSERVERHTTP

SERVERHTTP

SERVERHTTPBROWSER

HTTP REQUEST

UTENTE

UTENTE

REPERIMENTO FILE SUL FILE SYSTEM

INVIA DOCUMENTOHTTP//WWW.FOO.IT

HTTP RESPONSE

INDEX.HTMFIG.GIF

STYLE:CSS

INTERPRETAZIONEFILE E

VISUALIZZAZIONE

15

• Nell’ipotesi che la pagina sia un semplice documento esso èmemorizzato come una sequenza di caratteri.

• Per consentire che, quando riprodotto sul video del client, il documento abbia la struttura voluta(suddivisione in paragrafi, presenza di titoli e sottotitoli, particolare evidenziazione ad alcune parti etc..), occorre descriverne tale struttura tramite i comandi di un linguaggio di marcatura (mark up language).

• Il più noto di questi linguaggi è HTML (HyperText MarkupLanguage).

• Una volta arrivata la pagina, il browser provvede a visualizzarla, utilizzando un particolare programma in grado diinterpretare i comandi HTML(interprete HTML)..

16

•Il documento richiesto può essere statico o dinamico

•Documento web statico : costituito da una serie di oggetti digitali memorizzati in file che vengono prodotti una volta per tutte e contenuti nel File System (fino a quando il gestore di sistema non decide di modificarli o di rimuoverli).

•Documento web dinamico: i componenti del documento vengono elaborati e composti sul lato server solo nel momento in cui arriva una richiesta eplicita.(es. risultati di una ricerca su data base).

17

HTTP (Hypertext Transfer Protocol)•HTTP ha un lato client(realizzato nel browser) e un lato server (realizzato nel serverweb). Browser e server web si scambiano messaggi HTTP.HTTP definisce la struttura di questi messaggi ed il modo in cui vengono scambiati.

•HTTP definisce come i browser richiedono le pagine web e come i web server trasferiscono le pagine web al browser.

•Viene usato TCP come protocollo di trasporto sottostante .

•Il client HTTP dapprima avvia una connessione TCP con il server. I processi browser e server accedono al TCP tramite le loro interfaccia socket.Sul lato client c’è la porta tra il processo client e la connessione TCP; lo stesso per il lato server.

•Il client invia messaggi di richiesta HTTP nel suo socket e da questo riceve messaggi di risposta HTTP. Lo stesso vale per il server.

18

• TCP garantisce un trasferimento affidabile dei messaggi all’HTTP. HTTP non deve preoccuparsi dei dati persi o dei dettagli su come TCP ritrova e riordina i messaggi entro la rete.

• Il server invia al client i file richiesti senza immagazzinare alcuna informazione di stato relativa al client. Se il client chiede due volte lo stesso oggetto entro pochi secondi, il server lo rispedisce: HTTP è un protocollo senza stato (stateless protocol).

19

Connessione non permanente / HTTP(1.0)

La pagina richiesta consiste di un file HTML e di 10 immagini JPEG, tutti residenti sullo stesso server.

www. someSchool.edu/somedepartment/home.index

1)Il client HTTP inizia una connessione TCP al server www. someSchool.edu.Viene usata la porta 80 su cui il server HTTP ascolterà il client HTTP.

2) Il client HTTP invia un messaggio di richiesta HTTP al server attraverso il socket associato alla connessione che è stata stabilita in 1). Il messaggio di richiesta richiede il nome del percorso (/somedepartment/home.index).

3) Il server HTTP riceve il messaggio attraverso il socket associato alla connessione stabilita al punto 1), trova l’oggetto /somedepartment/home.index, loincapsula all’interno di un messaggio HTTP e lo invia al client attraverso il socket.

20

4) Il server HTTP richiede al TCP la conclusione della connessione.

5)Il client HTTP riceve il messaggio di risposta. La connessione TCP si conclude. Il messaggio indica che l’oggetto incapsulato è un file HTML.Il client estra il file dal messaggio, analizza il file HTML e trova i riferimenti ai 10 oggetti JPEG.

6)I primi quattro passi vengono quindi ripetuti per ciascuno degli oggetti JPEG.

Ciascuna connessione TCP trasporta esattamente un messaggio di richiesta ed uno di risposta. Nell’esempio si generano 11 connessioni TCP.

E’ possibile aprire più connessioni TCP in parallelo (5, 10 per default) e ciascuna tratta una transazione richiesta-risposta.

21

Connessione permanente (HTTP/1.1)

•Il server lascia aperta la connessione TCP dopo aver spedito la risposta. Le successive richieste e risposte sugli stessi client e server possono essere inviate sulla stessa connessione.

•Nell’esempio precedente l’intera pagina web (file HTML e 10 immagini ) possono essere inviate sulla stessa connessione TCP permanente.

•Il server HTTP chiude la connessione quando non è usata da un certo tempo (intervallo di time out), che, spesso, è configurabile.

22

Formato dei messaggi HTTP

Messaggio di richiesta:

GET/somedir/page.html HTTP/ 1.1 (request line).Host:www.someSchool.eduConnection: close (header line)User-Agent : Mozilla/4.0Accept-language :It

La prima linea è la richiesta della pagina (request line).La seconda il nome dell’host, la terza specifica che non si vuole laconnessione permanente. La quarta specifica il nome del browser (Mozillaè un browser Netscape). Versioni diverse dello stesso oggetto per browser diversi.Infine la quinta specifica che l’utente preferisce ricevere una versione dell’oggetto in italiano (se esiste, altrimenti quella di default)

23

Metodo POST

Viene usato al posto di GET quando l’utente complila un form. Es: ricerca di una parola su un motore di ricerca. La pagina richiesta dipende da cosa l’utente ha inserito nel campo del form.

Metodo HEADSimile al metodo GET. Il server risponde con un messaggio HTTP,senza l’oggetto richiesto. Usato per il debugging

24

Messaggio di risposta

HTTP/1.1 200 OKConnection : closeDate: Thu, 06 Juanary 2004 12:00:15Server: Apache /1.3.0 (Unix)Last- Modified: Mon, 22 Jun 2003 9:23:24 Content-Length: 6821Content-Type :text/html

(dati, dati, dati,…)

OK indica che il server ha trovato l’oggetto e lo sta inviando.Connection: close per indicare al client che chiuderà la connessione al termine della spedizione del messaggio.Last- Modified indica la data dell’ultima modifica dell’oggettoContent-Length è la lunghezza in byte dell’oggettoContent-Type indica che l’oggetto ètesto HTML

25

Web caching

• All’arrivo dell’oggetto richiesto il client lo mostra all’utente e lo salva nella cache locale assieme all’ultima data di modifica dello stesso.

• Se lo stesso oggetto viene richiesto dopo un certo periodo di tempo la copia residente nella cache può non essere aggiornata rispetto a quella presente nel web server.

• Il browser compie un controllo di aggiornamento mandando una GET condizionata.

• Il messaggio contiene:If-Modified-since: <data presente nella cache>.

Il server Web invia il messaggio:HTTP/1.0 304 Not ModifiedDate:…Server:..(corpo dell’oggetto vuoto)

26

Web caching (proxy server)

Le richieste degli utenti sono indirizzate ad un server (proxy server) che ha un disco nel quale sono archiviate copie degli oggetti richiesti di recente.Es: http://www.someschool.edu/campus.gif

•Il browser stabilisce una connessione TCP con il proxy server ed invia una richiesta HTTP dell’oggetto.•il proxy server controlla se ha una copia dell’oggetto memorizzata localmente. Se c’e’, l’invia all’interno di un messaggio di risposta HTTP, al browser del client.•Altrimenti apre una connessione TCP con il server www.someschool.edu ed invia una richiesta HTTP. Il server invia l’oggetto, all’interno di una risposta HTTP, al proxy.•Il proxy ne archivia una copia nella memoria locale ed invia la copia, all’interno di un messaggio di risposta HTTP, al browser del client

27

Caching cooperativo

Proxy multipli situati in diversi posti in Internet possono cooperare e migliorare le performance generali.

Es.: cache di una istituzione che e’ collegata con una cache a livello nazionale etc..

ICP (Internet Caching Protocol). Protocollo dello strato di applicazione che permette ad una cache di chiedere rapidamente ad un’altra cache se ha un certo documento


Recommended