Il Livello di Applicazione Crediti Parte delle slide

  • Slides: 12
Download presentation
Il Livello di Applicazione Crediti Parte delle slide seguenti sono adattate dalla versione originale

Il Livello di Applicazione Crediti Parte delle slide seguenti sono adattate dalla versione originale di J. F Kurose and K. W. Ross (© 1996 -2003 All Rights Reserved) 1

Applicazioni di rete: alcuni principi Processo: programma in user agent: si interfaccia esecuzione su

Applicazioni di rete: alcuni principi Processo: programma in user agent: si interfaccia esecuzione su un host con l’utente “sopra” e con la rete “sotto” r all’interno di un host, due processi comunicano r implementa usando strumenti del l’interfaccia di utente SO (interprocess (UI) e il protocollo a communication) livello applicazione m web: browser r i processi che girano su host differenti m e-mail: mail reader comunicano mediante m streaming audio/video: media player meccanismi definiti dal protocollo a livello applicazione (formato messaggi, ordine, azioni) 2

Applicazioni di rete e protocolli a livello applicazione Applicazioni: processi distribuiti in comunicazione m

Applicazioni di rete e protocolli a livello applicazione Applicazioni: processi distribuiti in comunicazione m m m es. , e-mail, Web, P 2 P file sharing, instant messaging eseguite negli end-system (host) si scambiano messaggi per eseguire l’applicazione application transport network data link physical Protocolli a livello applicazione m m m costituiscono una “parte” dell’applicazione definiscono i messaggi scambiati dalle applicazioni e le azioni intraprese usano i servizi degli strati inferiori application transport network data link physical 3

Protocolli a livello applicazione r i tipi di messaggi scambiati, es. , richieste e

Protocolli a livello applicazione r i tipi di messaggi scambiati, es. , richieste e risposte r sintassi dei vari tipi di messaggio: quali campi e loro caratteristiche r la semantica dei campi: il significato dell’informazione nei campi r le regole per determinare quando e come i processi inviano o rispondono ai messaggi Protocolli public-domain: r definiti nelle RFCs r permettono interoperabilità r es. , HTTP, SMTP Protocolli proprietari: r non disponibili nel pubblico dominio r es. , variazioni di SIP 4

Paradigma client-server App. di rete tipica consiste di due parti: client e server Client:

Paradigma client-server App. di rete tipica consiste di due parti: client e server Client: application transport network data link physical r inizia il dialogo con il server (“parla per primo”) r tipicamente richiede servizi dal server r Web: cliente integrato nel browser; e-mail: nel mail reader Server: r fornisce al cliente il servizio richiesto r es. , il Web server invia la pagina Web richiesta, il mail server consegna l’e-mail richiesta risposta application transport network data link physical In moltio casi un host implementa sia il client che il server 5

Processi di comunicazione attraverso la rete r un processo manda/riceve mesaggi attraverso un socket

Processi di comunicazione attraverso la rete r un processo manda/riceve mesaggi attraverso un socket r un socket è analogo a una processo porta Progr. m m m il processo inviante spinge il messaggio fuori dalla porta il processo inviante assume SO l’esistenza di una infrastruttura di trasporto fuori la porta che trasporta il messaggio al socket del processo ricevente il messaggio attraversa la porta (socket) del processo ricevente e può essere utilizzato dall’applicazione socket TCP con buffer e variabili host o server processo Internet socket TCP con buffer e variabili Progr. SO host o server 6

Processi di comunicazione attraverso la rete r API: Application Programming Interface r Socket: API

Processi di comunicazione attraverso la rete r API: Application Programming Interface r Socket: API Internet m definisce l’interfaccia tra applicazione e strato di trasporto Progr. r Lo sviluppatore di applicazioni ha poco controllo sul livello di trasporto m m scelta del protocollo di trasporto possibilità di fissare alcuni parametri SO processo socket TCP con buffer e variabili host o server Internet Progr. SO host o server 7

Indirizzamento dei processi r Per poter ricevere i messaggi il processo ricevente deve poter

Indirizzamento dei processi r Per poter ricevere i messaggi il processo ricevente deve poter essere identificato r ogni host ha un unico indirizzo IP a 32 bit r D: l’indirizzo IP dell’host in cui il processo gira è sufficiente per identificare il processo? r Risposta: No, diversi processi possono girare sull’host contemporaneamente r l’identificativo del processo include sia l’indirizzo IP che il numero di port associato al processo nell’host r esempi di numero di port: m m m HTTP server: 80 Mail server: 25 well-known ports (0 -1023) user registered ports (1024 -49151) dynamic or private ports (49152 -65535) 8

Quali servizi di trasporto servono ad un’applicazione? Perdita (data loss) r alcune applicazioni (es.

Quali servizi di trasporto servono ad un’applicazione? Perdita (data loss) r alcune applicazioni (es. , audio) possono tollerare qualche perdita r altre applicazioni (es. , file transfer, telnet) richiedono un trasferimento di dati affidabile al 100% Timing r alcune applicazioni (es. , Internet telephony, giochi interattivi) richiedono un basso ritardo e/o jitter poter funzionare Banda (bandwidth) r alcune applicazioni (es. , multimedia) hanno requisiti di banda specifici per poter funzionare (es. Vo. IP) r altre applicazioni (“elastiche”) fanno uso della banda disponibile (es. web, ftp) Nota: alcuni requisiti sono determinati da esigenze percettive umane (es. ritardo nella telefonia Internet) 9

Requisiti di trasporto per le applicazioni comuni Applicazione Perdita Banda Timing file transfer e-mail

Requisiti di trasporto per le applicazioni comuni Applicazione Perdita Banda Timing file transfer e-mail Web documents real-time audio/video nessuna tollerante no no no sì, 100’s ms audio/video streaming interactive games instant messaging tollerante nessuna elastica audio: 5 kbps-1 Mbps video: 10 kbps-5 Mbps come sopra pochi kbps – 10 Kbps elastica sì, pochi sec. sì, 100’s msec. sì e no 10

Servizi offerti dai protocolli di trasporto Internet Servizio TCP: r Orientato alla connessione m

Servizi offerti dai protocolli di trasporto Internet Servizio TCP: r Orientato alla connessione m richiesto “setup” (handshake) tra client e server m connessione full duplex r Trasferimento affidabile (reliable transfer) m m dati recapitati senza errori ordine appropriato r Controllo della congestione (congestion control) m si limita il mittente quando la rete è sovraccarica r Non offre m garanzie sulla velocità di trasmissione => banda m garanzie sul ritardo e sulla sua variazione (jitter) Servizio UDP: r Trasporto non affidabile tra processi mittente e ricevente r Non offre m m connessione (no handshake) affidabilità (ritrasmissione) controllo della congestione garanzie su ritardo e banda D: perché esiste UDP? Può essere conveniente per alcune applicazioni, es. telefonia su Internet 11

Applicazioni Internet: protocolli Applicazione e-mail remote terminal access Web file transfer remote file server

Applicazioni Internet: protocolli Applicazione e-mail remote terminal access Web file transfer remote file server streaming multimedia Internet telephony Protocollo a livello applicazione Protocollo di trasporto sottostante SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] NFS proprietario (es. Real. Networks) proprietario (es. Vocaltec) TCP TCP TCP o UDP tipicamente UDP 12