Il livello di applicazione nello stack TCP/IP
Il punto di incontro tra programmi utente e protocolli di rete: cosa fa davvero il livello più alto di TCP/IP e perché è fondamentale prima di studiare HTTP, DNS, SMTP, FTP.
1. Introduzione: quando navighiamo cosa succede davvero?
Il livello di applicazione è il punto in cui i programmi utilizzano le regole della rete. HTTP, DNS, SMTP e altri protocolli descrivono il modo in cui applicazioni diverse possono capirsi anche su computer differenti.
Quando navighiamo sul Web, consultiamo la posta, usiamo un servizio cloud o parliamo con un'applicazione remota, il computer non sta semplicemente "mandando dati": sta utilizzando protocolli applicativi che definiscono come i programmi devono scambiarsi informazioni.
Nel modello TCP/IP queste funzioni appartengono al livello di applicazione, lo strato più vicino ai programmi utilizzati dall'utente. Studiare questo livello significa capire quali regole permettono a due applicazioni di comunicare, prima di entrare nel dettaglio dei singoli protocolli come HTTP, DNS, SMTP e FTP.
Apri Chrome e premi F12 → Network. Ricarica wikipedia.org. Vedrai decine di richieste HTTP. Ogni riga è un messaggio del livello applicazione che usa TCP sotto e IP sotto ancora. Senza quel livello, il browser non saprebbe nemmeno come chiedere una pagina.
Alla verifica non dire mai "il livello applicazione è il browser". Il browser È l'applicazione, HTTP È il protocollo. Questa distinzione vale 2 punti secchi all'orale.
2. Dove si colloca il livello di applicazione?
Nello stack TCP/IP il livello di applicazione è lo strato superiore. Sotto di esso troviamo il livello di trasporto, il livello Internet e il livello di accesso alla rete. Ogni livello svolge un compito specifico e utilizza i servizi forniti da quello sottostante.
Applicazione
HTTP, DNS, SMTP, FTP, API REST. Qui nascono i messaggi utente.
Trasporto + Internet
TCP/UDP garantiscono consegna; IP instrada tra reti diverse.
Accesso alla rete
Ethernet, Wi-Fi: trasmette fisicamente i bit sul mezzo.
| Stack TCP/IP (4 livelli) | Modello ISO/OSI (7 livelli) | Cosa ricordare |
|---|---|---|
| Applicazione | 7-Applicazione 6-Presentazione 5-Sessione | TCP/IP accorpa in un unico livello ciò che OSI divide in tre |
| Trasporto | 4-Trasporto | Corrispondenza diretta |
| Internet | 3-Rete | IP e instradamento |
| Accesso alla rete | 2-Collegamento 1-Fisico | Mezzo trasmissivo reale |
Dire che "TCP/IP ha 7 livelli come OSI" o che "il livello applicazione in TCP/IP corrisponde solo al livello 7 di OSI". No: in TCP/IP è livelli 5+6+7 di OSI insieme. Sembra un dettaglio, ma fa cadere l'intero schema.
3. Cosa fa davvero il livello di applicazione?
Possiamo comprenderlo osservando quattro aspetti concreti della comunicazione tra programmi.
Formato dei messaggi
Stabilisce come devono essere organizzati i dati scambiati. Es. richiesta HTTP ha metodo, URL, header.
Semantica
Definisce cosa significa ciò che viene scambiato: richiesta, risposta, query, comando, errore.
Regole di comunicazione
Quali messaggi, in quale sequenza, come interpretare le risposte (es. 3-way di SMTP).
Servizi alle app
Permette alle applicazioni di usare risoluzione nomi, trasferimento risorse, posta, ecc.
Quando ti chiedono "cosa fa il livello applicazione?" rispondi con le 4 parole: FORMATO, SIGNIFICATO, DIALOGO, SERVIZIO. Poi fai un esempio. Il prof capisce subito che hai studiato con metodo.
4. Protocollo ≠ applicazione
Una delle distinzioni più importanti è quella tra protocollo e programma applicativo. Il protocollo stabilisce le regole; il programma le utilizza.
• Chrome non è HTTP, lo usa.
• Il client DNS di Windows non è DNS, è l'implementazione.
• Outlook/Thunderbird non sono SMTP/IMAP, li implementano.
• Un server Apache/Nginx parla HTTP ma non è HTTP.
Pensa all'italiano: l'italiano è il protocollo (regole condivise), tu e io siamo le applicazioni che lo usiamo. Se parliamo entrambi italiano ci capiamo. Allo stesso modo, Chrome e Apache si capiscono perché rispettano entrambi HTTP, anche se sono programmi diversi scritti da aziende diverse.
Possiamo pensare al protocollo come a un insieme di regole condivise: due programmi diversi possono comunicare perché rispettano quelle stesse regole, non perché sono uguali.
5. Cosa succede quando apro una pagina Web?
Seguiamo una situazione reale: digiti https://profgiagnotti.it nel browser. La comunicazione coinvolge più protocolli e attraversa tutti i livelli.
6. Protocolli applicativi e livello di trasporto
Il livello applicativo non consegna da solo i dati. Per trasmettere i propri messaggi utilizza i servizi del livello di trasporto. Nella pratica incontreremo soprattutto TCP e UDP, con caratteristiche differenti.
| Applicazione | Trasporto tipico | Motivazione | Nota da interrogazione |
|---|---|---|---|
| HTTP/1.1, HTTP/2 | TCP | Affidabile e ordinato | Standard per il web fino al 2020 |
| DNS | UDP o TCP | Query veloci in UDP, zone transfer in TCP | Se risposta >512 byte → passa a TCP |
| SMTP | TCP | Posta non può perdersi | Porta 25/587, affidabilità massima |
| FTP | TCP | File deve arrivare integro | Doppia connessione: controllo + dati |
| HTTP/3 | UDP (QUIC) | QUIC fa affidabilità sopra UDP | Non dire "UDP è inaffidabile" → QUIC lo rende affidabile |
Non semplificare con "TCP=corretto, UDP=veloce". UDP è solo più essenziale. Protocolli moderni come QUIC costruiscono affidabilità, sicurezza e controllo congestione sopra UDP. Questa frase ti distingue in quinta.
Pensare che HTTP/3 sia "HTTP su TCP più veloce". No: HTTP/3 usa QUIC su UDP, quindi cambia proprio il trasporto. Se lo dici alla maturità, mostra che sei aggiornato.
7. La mappa dei protocolli che studieremo
Questa lezione è l'introduzione. Nei moduli successivi ogni protocollo verrà studiato concentrandosi su scopo, messaggi e scenari reali.
HTTP
Richieste, risposte, metodi, URL, cookie. Lezione 2.
DNS
Risoluzione nomi, cache, gerarchia. Lezione 3.
HTTPS / TLS
Certificati, handshake, cifratura. Lezione 4.
SMTP, POP3, IMAP, FTP
Posta e trasferimento file, porte, comandi.
API e Web Services
Come parlano due app tra loro: endpoint, metodi.
REST e JSON
Scambio strutturato: leggero, leggibile, standard.
Nella prossima lezione vedremo l'architettura client-server e i modelli applicativi. Capiremo chi fa cosa: chi chiede (client), chi risponde (server), e i modelli P2P e ibridi. Tieni a mente questo schema: Applicazione → Trasporto → IP → Rete.
8. Verifica / Esercizio in classe
🔬 Attività - 25 minuti
Lavora a coppie con PC + Wireshark o solo cmd. Rispondi sul quaderno, poi confrontiamo.
- Qual è il ruolo del livello di applicazione? Fai un esempio diverso dal browser (es. app meteo, Spotify).
- Spiega con parole tue la differenza tra protocollo e applicazione. Fai 2 esempi corretti e 1 errato da correggere.
- Descrivi la sequenza completa quando apri
https://www.google.com: elenca DNS, TCP, TLS, HTTP, IP in ordine. - Perché DNS usa sia UDP che TCP? E perché HTTP/3 usa UDP pur essendo affidabile?
- Disegna a mano lo stack TCP/IP a 4 livelli e posiziona: HTTP, DNS, TCP, IP, Ethernet, QUIC.
1) Il livello app fornisce le regole di dialogo alle applicazioni: formato, semantica, sequenza, servizi. Es. app meteo usa API REST in JSON su HTTP.
2) Protocollo = regole condivise; Applicazione = programma che le usa. Corretto: HTTP vs Chrome, SMTP vs Outlook. Errato da correggere: "Chrome è HTTP".
3) 1 DNS→IP, 2 TCP handshake, 3 TLS handshake, 4 HTTP GET/200 OK, tutto incapsulato in IP → Wi-Fi.
4) DNS query piccola → UDP veloce; se grande o zone transfer → TCP. HTTP/3 usa QUIC che re-implementa affidabilità sopra UDP per evitare head-of-line blocking di TCP.
5) Top: HTTP/DNS/QUIC come protocolli app (QUIC sotto sta su UDP ma funge da trasporto evoluto) → TCP/UDP → IP → Ethernet/Wi-Fi.
9. Riepilogo e concetti chiave
📚 Prossimo passo - Architettura client-server e modelli applicativi
Ora che sai cosa fa il livello applicazione, vedremo chi fa cosa: client, server, P2P, architetture a 3 livelli e API. Porta un esempio di app che usi ogni giorno: lo mapperemo insieme.