Sei sulla pagina 1di 3

Il livello Applicazione

Architettura e comunicazione tra processi


Lo sviluppatore di applicazioni non deve interessarsi della gestione della rete ma dell'architettura
dell'applicazione.
Ci sono due architetture fondamentali:
Client-server: in cui esiste un host sempre attivo (chiamato server) che riceve richieste di
servizio da parte di altri host (client). Un esempio il World Wide Web, dove il browser
l'applicazione client che invia al server le richieste e ne riceve le risposte. In
quest'architettura i client non comunicano mai direttamente tra di loro. Il server infatti in
grado di soddisfare contemporaneamente le richieste di moltissimi client.
Peer-to-peer: dove la dipendenza da un server minima o nulla e l'applicazione utilizza una
connessione debole ed intermittente tra le coppie degli host (peer). Viene utilizzata per i
sistemi di telecomunicazione in rete o per lo scambio diretto di file.
I programmi che girano su un host sono detti processi. In una sessione di comunicazione tra due
processi, si dice processo client quello che contatta l'altro all'inizio della sessione mentre l'altro
viene detto processo server. Per comunicare tra loro, due processi devono utilizzare i servizi messi a
disposizione dalla rete. L'interfaccia software che permette ai processi di inviare e ricevere
messaggi sulla rete detta socket. I protocolli a livello applicazione possono essere definiti
indipendentemente dalla rete e dai protocolli di trasporto utilizzati.
Le reti possiedono vari protocolli di trasporto e la scelta viene effettuata in base a dei criteri:
Affidabilit: garanzia della consegna integrale e corretta dei dati trasmessi. In caso contrario,
alcuni dei dati potrebbero non arrivare mai; per questo ci sono delle applicazioni losstolerant, ovvero che sono in grado di ricostruire in parte le stringhe mancanti.
Throughput: ritmo al quale il processo mittente pu consegnare dati al processo ricevente.
Un protocollo di trasmissione pu garantire un ritmo di trasferimento minimo, utile per le
applicazioni bandwith sensitive.
Ritardo: un protocollo di trasporto pu anche fornire garanzie su ritardo con cui consegna i
dati attraverso la rete. Questo un servizio essenziale per le applicazioni in tempo reale
come la telefonia o le videoconferenze.
Sicurezza: garantisce che la comunicazione tra due processi sia incomprensibile ad altri,
attraverso la crittografia.
I protocolli di trasporto pi importanti sono il TCP e l'UDP:
TCP: il client e il server si scambiano informazioni di controllo a livello trasporto prima che
inizi il flusso dei messaggi a livello applicazione (effettuando l'handshake), possiede una
connessione full duplex (i due host possono inviarsi messaggi nei due sensi
contemporaneamente). Per chiudere la connessione bisogna esplicitarlo.
UDP: connectionless, non vi l'handshake n alcun controllo sulla persistenza della
connessione, non affidabile, non controlla la sequenzialit dei pacchetti. E' molto leggero,
infatti viene utilizzato nella telefonia internet.
I protocolli a livello applicazione stabiliscono la tipologia dei messaggi scambiati, la loro sintassi e
la semantica dei campi.

HTTP
HTTP un protocollo a livello applicazione che definisce la struttura dei messaggi scambiati tra
client e server ed il modo in cui vengono scambiati. Esistono un lato client ed un lato server
Il lato client richiede una pagina web ad un server, basandosi su un URL inserito.
1. Il DNS inizialmente mette in contatto server e client.
2. HTTP instaura una connessione TCP con il server tramite i socket ed invia il messaggio
3. TCP effettua il trasporto
Il server invia le pagine richieste senza registrare alcuna informazione sul client (stateless).
HTTP con una connessione non persistente:
1. Processo HTTP attiva una connessione con il server sulla porta 80, associati alla
connessione ci sono un socket client ed un socket server.
2. Il client HTTP invia al server un messaggio di richiesta contenente l'identificatore della
pagina richiesta.
3. Il server HTTP riceve il messaggio e risponde con l'informazione richiesta.
4. HTTP server ordina a TCP di chiudere la connessione.
5. HTTP client riceve la risposta e la connessione TCP termina.
HTTP solo il protocollo di comunicazione.
Un RTT il tempo impiegato da un piccolo pacchetto per andare dal client al server e viceversa.
HTTP con una connessione persistente, il server non invia al client il messaggio di chiusura, in
modo tale che le successive richieste possano essere inviate sulla stessa connessione l'una dietro
l'altra, senza attendere risposta. In questo modo non ci sono tempi morti. La connessione viene
chiusa quando non viene utilizzata per un certo tempo.
HTTP stateless ma a volte utile che un sito sia in grado di identificare gli utenti, utilizzando i
cookie. I cookie sono righe di testo che il server inserisce nella risposta in una posizione predefinita.
Il loro utilizzo permette.
il login ad un sito solo a specifici utenti.
La personalizzazione di una pagina web secondo i desideri dell'utente.
Di riempire il carrello della spesa virtuale durante la sua navigazione sul web.
Di tracciare i percorsi dell'utente durante la sua navigazione.
FTP, SMTP, POP3, IMAP
FTP: altro protocollo che permette l'interconnessione tra client e server per lo scambio di file.
L'utente, dopo essere stato autenticato con nome e password, viene autorizzato a navigare nella
parte del file system che gli stata resa visibile e pu apportare modifiche. Il server FTP non
stateless, in quanto deve tenere traccia di dove l'utente si trova all'interno delle proprie directory.
SMTP: Gestisce l'invio della posta ma non il suo recupero. Chiude il messaggio in una busta
contenente il nome del destinatario, il mittente e l'oggetto della comunicazione e successivamente lo
invia al server SMTP. Quest'ultimo instaura una connessione TCP con il server indicato
nell'indirizzo del destinatario. Mentre HTTP un protocollo pull, ovvero tira fuori l'informazione
dal server, SMTP un protocollo push, ovvero invia l'informazione.
POP3: Apre una connessione TCP per recuperare i messaggi: 3 fasi. Inizialmente il client invia
nome utente e password per autenticarsi, poi recupera i messaggi e poi il server gestisce i messaggi

secondo le regole impostate dall'utente.


IMAP: Associa ogni messaggio in arrivo alla cartella INBOX del destinatario, che a sua volta pu
spostarlo in altre cartelle di sua creazione. In pratica fa sul server tutto ci che un client di posta fa
localmente quando usa POP3.
DNS
il DNS un protocollo a livello applicazione che permette agli host di interrogare il suo database.
Viene utilizzato anche da altri protocolli per tradurre i nomi di dominio inseriti dagli utenti.
In pratica il DNS una sorta di scatola nera che fornisce un servizio di traduzione semplice e
diretto, suddiviso su un gran numero di server, ciascuno dei quali contiene solo una piccola parte
del database.
Ci sono 3 classi di server: i Root Server, i server di dominio di primo livello e i server autorevoli.
Ognuno di questi possiede gli indirizzi IP di vari frammenti dell'URL richiesto dall'utente. In questo
modo, inviando varie richieste ai server dei diversi livelli, l'utente riesce cos ad individuare
l'indirizzo IP desiderato.
Per evitare la congestione della rete a causa delle eccessive connessioni del DNS, presso gli ISP
sono installati i cosiddetti DNS locali, chiamati anche default name server, ai quali i vari host si
collegano per qualunque richiesta. Una volta fatta la prima richiesta, quelle successive vengono
indirizzate direttamente al server DNS locale.
DNS cachig: permette di registrare gli indirizzi IP nella propria cache per poter inoltrare
direttamente l'IP senza dover effettuare da capo tutte le query.
Registar: struttura commerciale che garantisce l'unicit dei domini.