Anno 5 · Modulo 1 · Lezione 1
A cura di Prof. Giagnotti · Sistemi e Reti

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.

📚 Anno 5 🧩 Modulo 1 - Architettura TCP/IP ⏱ 20 min lettura 🎯 Livello: Avvio modulo
🎯 Obiettivi di apprendimento
✓Capire il ruolo del livello di applicazione: il punto dove i programmi usano le regole della rete.
✓Collocare correttamente il livello applicazione nello stack TCP/IP e confrontarlo con i livelli 5-6-7 di ISO/OSI.
✓Distinguere con sicurezza protocollo vs applicazione (es. HTTP ≠ Chrome, DNS ≠ client DNS).
✓Saper descrivere cosa succede quando apriamo una pagina web: da DNS a HTTP, TCP, IP, Wi-Fi/Ethernet.
✓Collegare ogni protocollo applicativo al trasporto giusto (TCP/UDP/QUIC) e preparare lo studio di HTTP, DNS, API e posta.

1. Introduzione: quando navighiamo cosa succede davvero?

📌 Definizione da ricordare

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.

🎯 Esempio in classe

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.

💬 Tip del docente

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.

TCP/IP · TOP

Applicazione

HTTP, DNS, SMTP, FTP, API REST. Qui nascono i messaggi utente.

TCP/IP · MID

Trasporto + Internet

TCP/UDP garantiscono consegna; IP instrada tra reti diverse.

TCP/IP · BOTTOM

Accesso alla rete

Ethernet, Wi-Fi: trasmette fisicamente i bit sul mezzo.

Stack TCP/IP (4 livelli)Modello ISO/OSI (7 livelli)Cosa ricordare
Applicazione7-Applicazione
6-Presentazione
5-Sessione
TCP/IP accorpa in un unico livello ciò che OSI divide in tre
Trasporto4-TrasportoCorrispondenza diretta
Internet3-ReteIP e instradamento
Accesso alla rete2-Collegamento
1-Fisico
Mezzo trasmissivo reale
⚠️ Errore comune in verifica

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.

01 · FORMATO

Formato dei messaggi

Stabilisce come devono essere organizzati i dati scambiati. Es. richiesta HTTP ha metodo, URL, header.

02 · SIGNIFICATO

Semantica

Definisce cosa significa ciò che viene scambiato: richiesta, risposta, query, comando, errore.

03 · DIALOGO

Regole di comunicazione

Quali messaggi, in quale sequenza, come interpretare le risposte (es. 3-way di SMTP).

04 · SERVIZIO

Servizi alle app

Permette alle applicazioni di usare risoluzione nomi, trasferimento risorse, posta, ecc.

HTTP · MESSAGGIO REALE
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html → Formato: prima riga = metodo + risorsa + versione → Semantica: GET = "dammi la risorsa" → Regola: il server deve rispondere con status + body → Servizio: il browser usa questo per mostrare una pagina
💬 Tip del docente per l'interrogazione

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.

⚠️ Da non confondere MAI

• 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.

🎯 Esempio in classe che funziona sempre

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.

📌 Da tenere a mente

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.

BROWSER HTTP, DNS, TLS TRASPORTO TCP / UDP / QUIC INTERNET IP + routing ACCESSO Wi-Fi / Eth FLUSSO REALE QUANDO APRI UNA PAGINA 1. DNS: come si chiama profgiagnotti.altervista.org? → ottieni IP 2. TCP: apro connessione affidabile verso quell'IP (handshake) 3. TLS: (se HTTPS) negozio sicurezza, certificato, chiavi 4. HTTP: invio GET / con header → server risponde 200 OK + HTML 5. IP + Wi-Fi/Ethernet: tutti questi messaggi viaggiano in pacchetti IP 🔎 COME LEGGERE LO SCHEMA: Browser usa protocolli applicativi → Trasporto (TCP) → Internet (IP) → Rete (Wi-Fi). Ogni livello incapsula quello sopra. Domanda orale tipica: "Perché senza DNS non apri il sito anche se Internet funziona?" → Perché il livello applicazione non sa l'IP. Trucco lab: digita in cmd "nslookup profgiagnotti.altervista.org" e vedi DNS in azione prima di HTTP.

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.

ApplicazioneTrasporto tipicoMotivazioneNota da interrogazione
HTTP/1.1, HTTP/2TCPAffidabile e ordinatoStandard per il web fino al 2020
DNSUDP o TCPQuery veloci in UDP, zone transfer in TCPSe risposta >512 byte → passa a TCP
SMTPTCPPosta non può perdersiPorta 25/587, affidabilità massima
FTPTCPFile deve arrivare integroDoppia connessione: controllo + dati
HTTP/3UDP (QUIC)QUIC fa affidabilità sopra UDPNon dire "UDP è inaffidabile" → QUIC lo rende affidabile
💬 Tip del docente

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.

LAB · VERIFICA TRASPORTO
# Vedi che porte/trasporto usano le app netstat -an | findstr :443 netstat -an | findstr :53 # Risolvi un nome e vedi tempi nslookup profgiagnotti.altervista.org ping profgiagnotti.altervista.org # Cattura con Wireshark: filtro # dns || http || tls.handshake # Osserva: DNS in UDP 53, poi TCP 443
⚠️ Errore comune

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.

WEB

HTTP

Richieste, risposte, metodi, URL, cookie. Lezione 2.

NOMI

DNS

Risoluzione nomi, cache, gerarchia. Lezione 3.

SICUREZZA

HTTPS / TLS

Certificati, handshake, cifratura. Lezione 4.

SERVIZI

SMTP, POP3, IMAP, FTP

Posta e trasferimento file, porte, comandi.

API

API e Web Services

Come parlano due app tra loro: endpoint, metodi.

DATI

REST e JSON

Scambio strutturato: leggero, leggibile, standard.

🎯 Collegamento con il prossimo modulo

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.

  1. Qual è il ruolo del livello di applicazione? Fai un esempio diverso dal browser (es. app meteo, Spotify).
  2. Spiega con parole tue la differenza tra protocollo e applicazione. Fai 2 esempi corretti e 1 errato da correggere.
  3. Descrivi la sequenza completa quando apri https://www.google.com: elenca DNS, TCP, TLS, HTTP, IP in ordine.
  4. Perché DNS usa sia UDP che TCP? E perché HTTP/3 usa UDP pur essendo affidabile?
  5. Disegna a mano lo stack TCP/IP a 4 livelli e posiziona: HTTP, DNS, TCP, IP, Ethernet, QUIC.
✅ Soluzione ragionata (per ripasso)

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.

✓Livello applicazione = dove i programmi usano le regole di rete (HTTP, DNS, SMTP, FTP, API).
✓In TCP/IP è 1 livello che accorpa 5-6-7 di OSI: sessione, presentazione, applicazione.
✓Protocollo ≠ applicazione: il protocollo sono regole, l'app è il programma che le parla.
✓Apertura pagina = DNS → TCP → TLS → HTTP, tutto su IP e rete fisica.
✓Trasporto: HTTP/FTP/SMTP su TCP, DNS su UDP/TCP, HTTP/3 su QUIC/UDP. QUIC non è "UDP inaffidabile".

📚 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.