IL LIVELLO APPLICAZIONE

Il livello Applicazione del modello TCP/IP è il livello più vicino all’utente e ha il compito di rendere possibile l’interazione tra i programmi (come browser, app o client di posta) e la rete. Questo livello raggruppa le funzioni degli ultimi tre livelli del modello OSI (Sessione, Presentazione e Applicazione), unificando tutte le operazioni necessarie per preparare e gestire i dati prima della trasmissione.

In questo livello vengono svolte diverse operazioni fondamentali:

Il livello Applicazione è anche responsabile della definizione del formato delle richieste e delle risposte tra client e server. Ad esempio, quando un server invia una pagina web, deve assicurarsi che i contenuti (immagini, video, testi) siano in formati supportati dal dispositivo del client, come JPG o PNG per le immagini e MKV o MOV per i video.

Per quanto riguarda lo scambio di dati:

I protocolli di questo livello sono fondamentali perché fanno da interfaccia tra l’utente e la rete e stabiliscono le regole con cui le applicazioni comunicano. Tra i principali protocolli del livello Applicazione troviamo HTTP (per il web), DNS (per la risoluzione dei nomi), DHCP (per la configurazione degli indirizzi), FTP (per il trasferimento di file) e SMTP (per l’invio delle email).



IL PROTOCOLLO HTTP

Il protocollo HTTP è un protocollo del livello Applicazione utilizzato per la navigazione sul web, cioè per permettere al browser di comunicare con i server e ottenere le pagine richieste. Quando navighiamo, non utilizziamo solo HTTP, ma anche altri componenti e protocolli che collaborano tra loro.

Ad esempio, digitando un URL come http://www.rizzolieducation.it/index.html, il browser interpreta le diverse parti dell’indirizzo e avvia una serie di operazioni:

A questo punto avviene il processo di comunicazione:

Il protocollo HTTP ha quindi il compito di definire il formato dei messaggi e le modalità con cui si accede alle risorse web, senza preoccuparsi del tipo di contenuto (testo, immagini, video, ecc.). Oggi, però, la versione più utilizzata è HTTPS, che è una versione sicura di HTTP e garantisce una comunicazione protetta.



IL PROTOCOLLO DNS

Il DNS (Domain Name System) è un protocollo del livello Applicazione che ha il compito di mettere in corrispondenza i nomi di dominio (facili da ricordare per l’uomo) con gli indirizzi IP (numerici e utilizzati dai dispositivi). Poiché ricordare indirizzi numerici sarebbe difficile e questi possono anche cambiare nel tempo, si utilizzano gli URL (come https://www.miur.gov.it/...), in cui la parte centrale (ad esempio www.miur.gov.it) rappresenta il nome di dominio. Quando l’utente inserisce un URL nel browser, il DNS interviene per tradurre quel nome nel corrispondente indirizzo IP: questo processo si chiama risoluzione dei nomi.

La risoluzione avviene tramite un server DNS: inizialmente il client interroga il proprio server DNS predefinito, che controlla se possiede già l’informazione. Se non la trova, contatta altri server DNS fino a ottenere la corrispondenza tra nome e indirizzo IP; una volta trovata, la risposta viene restituita al client, che può così comunicare con il server desiderato. Inoltre, il risultato viene temporaneamente memorizzato per velocizzare eventuali richieste future.

Il DNS è organizzato come un sistema gerarchico ad albero rovesciato. Al vertice si trovano i root server, che rappresentano la radice e gestiscono l’intero spazio dei nomi, delegando però le richieste ai livelli inferiori. Subito sotto si trovano i domini di primo livello (TLD), che possono essere:

Da questi derivano i domini di secondo livello (ad esempio google, miur, uniroma1) e infine i livelli più specifici come www. La porzione di nomi gestita da un server DNS prende il nome di zona di autorità. Per garantire efficienza e affidabilità, i root server non sono unici ma replicati (13 nel mondo), così da evitare sovraccarichi o guasti.

La risoluzione dei nomi può avvenire in due modi:

Per migliorare le prestazioni, i server DNS utilizzano una memoria cache, in cui salvano temporaneamente le risposte già ottenute. Se una risposta proviene dalla cache e non direttamente da un server autorevole, viene detta non autorevole (unauthoritative). Tuttavia, queste informazioni non possono essere conservate indefinitamente: a ciascuna risposta è associato un valore chiamato TTL (Time To Live), che indica per quanto tempo può restare in cache prima di essere eliminata o aggiornata, evitando così l’uso di dati non più validi.