6.1 Il Livello Trasporto: il “postino affidabile”
Il livello 3 (Rete/IP) si occupa di far arrivare i pacchetti al dispositivo giusto, ma non garantisce nulla: i pacchetti possono perdersi, arrivare duplicati o in ordine sbagliato. Il livello 4 (Trasporto) aggiunge queste garanzie — o sceglie deliberatamente di non aggiungerle, in favore della velocità.
Multiplexing/Demultiplexing — distingue le diverse applicazioni sullo stesso host tramite i numeri di porta.
Segmentazione — divide i dati in segmenti di dimensione gestibile.
Controllo flusso — regola la velocità di invio per non saturare il ricevente.
Controllo errori — rileva e ritrasmette i segmenti persi o corrotti (solo TCP).
6.2 I Numeri di Porta
Un indirizzo IP identifica il dispositivo; il numero di porta identifica l’applicazione su quel dispositivo. La combinazione IP + porta è chiamata socket (es. 192.168.1.10:443).
| Range | Nome | Chi li usa | Esempi |
|---|---|---|---|
0 – 1023 | Well-known | Servizi standard (assegnati da IANA) | HTTP (80), HTTPS (443), DNS (53) |
1024 – 49151 | Registered | Applicazioni registrate (non riservate) | MySQL (3306), RDP (3389) |
49152 – 65535 | Dynamic / Ephemeral | Porte temporanee assegnate dal SO al client | Porta sorgente di una connessione |
Se l’IP è l’indirizzo del palazzo, la porta è il numero dell’ufficio al suo interno. Il postino (router) consegna al palazzo giusto; la reception (livello trasporto) smista la posta all’ufficio corretto. Porta 80 = ufficio “Web”, Porta 25 = ufficio “Posta”.
Porte Well-Known da memorizzare
| Porta | Protocollo | Trasporto | Funzione |
|---|---|---|---|
20-21 | FTP | TCP | Trasferimento file (20=dati, 21=controllo) |
22 | SSH | TCP | Shell remota sicura (crittografata) |
23 | Telnet | TCP | Shell remota non sicura (obsoleto) |
25 | SMTP | TCP | Invio email (server → server) |
53 | DNS | UDP/TCP | Risoluzione nomi → IP |
67-68 | DHCP | UDP | Assegnazione automatica IP |
80 | HTTP | TCP | Web non crittografato |
110 | POP3 | TCP | Ricezione email (scarica e cancella) |
143 | IMAP | TCP | Ricezione email (sincronizzata) |
443 | HTTPS | TCP | Web crittografato (TLS) |
3389 | RDP | TCP | Desktop remoto (Windows) |
6.3 TCP vs UDP — I Due Protocolli di Trasporto
- Orientato alla connessione (3-way handshake)
- Affidabile: ACK, ritrasmissione, ordine garantito
- Controllo di flusso (sliding window)
- Controllo di congestione
- Header 20+ byte (più overhead)
- Più lento ma sicuro
Uso: HTTP, FTP, email, SSH — tutto ciò che non può perdere dati
- Senza connessione (connectionless)
- Non affidabile: nessun ACK, nessun ordine
- Nessun controllo di flusso
- Nessun controllo di congestione
- Header 8 byte (minimo overhead)
- Velocissimo, bassa latenza
Uso: DNS, DHCP, VoIP, streaming, gaming — dove la velocità conta più della perfezione
TCP quando i dati devono arrivare tutti e in ordine: pagine web, file, email, comandi. Se perdi un pezzo di un file ZIP, è inutilizzabile.
UDP quando la velocità è più importante della completezza: una videochiamata con un frame perso è meglio di una videochiamata in ritardo. Un pacchetto DNS perso si può semplicemente ritrasmettere a livello applicativo.
6.4 TCP in Dettaglio
Il Three-Way Handshake
Prima di inviare dati, TCP stabilisce una connessione con un rituale a 3 passi. È come una telefonata: prima ti assicuri che l’altro sia in linea, poi parli.
Dopo il handshake, la connessione è “established” e i dati possono fluire in entrambe le direzioni (full-duplex). La chiusura avviene con un processo a 4 passi (FIN → ACK → FIN → ACK).
Meccanismi di affidabilità TCP
Ogni byte ha un numero di sequenza. Il ricevente invia un ACK con il numero del prossimo byte atteso. Se un ACK non arriva entro un timeout, il mittente ritrasmette il segmento.
Il ricevente comunica quanti byte può accettare (window size). Il mittente invia al massimo quel numero di byte prima di aspettare un ACK. Questo regola il flusso ed evita di saturare il ricevente.
Header TCP vs UDP
| Campo | TCP | UDP |
|---|---|---|
| Porta sorgente | ✓ (16 bit) | ✓ (16 bit) |
| Porta destinazione | ✓ (16 bit) | ✓ (16 bit) |
| Numero di sequenza | ✓ (32 bit) | — |
| Numero di ACK | ✓ (32 bit) | — |
| Flag (SYN, ACK, FIN…) | ✓ (6 bit) | — |
| Window size | ✓ (16 bit) | — |
| Checksum | ✓ | ✓ |
| Lunghezza | — (calcolata) | ✓ (16 bit) |
| Dimensione header | 20-60 byte | 8 byte |
6.5 Protocolli del Livello Applicazione
I protocolli applicativi sono quelli che usiamo quotidianamente — spesso senza saperlo. Ogni volta che apri un sito, mandi una email o ti connetti al Wi-Fi, uno o più di questi protocolli entrano in azione.
HTTP / HTTPS
HyperText Transfer Protocol — il protocollo del Web. Basato su richieste (GET, POST, PUT, DELETE) e risposte con codici di stato (200 OK, 404 Not Found, 500 Server Error). Stateless: ogni richiesta è indipendente.
HTTP + TLS — identico a HTTP ma con un tunnel crittografato TLS (Transport Layer Security). Tutti i dati sono cifrati. Il lucchetto nel browser indica HTTPS. Oggi è lo standard obbligatorio.
200 OK — 301 Moved Permanently — 304 Not Modified (cache) — 400 Bad Request — 401 Unauthorized — 403 Forbidden — 404 Not Found — 500 Internal Server Error — 503 Service Unavailable
DNS — La “Rubrica” di Internet
Il DNS (Domain Name System, porta 53) traduce i nomi di dominio leggibili (come www.google.com) negli indirizzi IP corrispondenti. Senza DNS dovremmo memorizzare numeri come 142.250.184.46.
www.google.com nel browser142.250.184.46A — nome → IPv4 (es. google.com → 142.250.184.46)
AAAA — nome → IPv6
CNAME — alias di un altro nome (es. www.example.com → example.com)
MX — server di posta del dominio
NS — server DNS autoritativi per il dominio
PTR — IP → nome (reverse DNS)
DHCP — Configurazione Automatica
Il DHCP (Dynamic Host Configuration Protocol, porte 67-68 UDP) assegna automaticamente IP, subnet mask, gateway e DNS a ogni dispositivo che si collega alla rete. Senza DHCP, ogni PC andrebbe configurato a mano.
Non solo l’IP! Il DHCP assegna: indirizzo IP, subnet mask, default gateway, server DNS, e un lease time (durata della “concessione” — dopo quel tempo l’IP va rinnovato o viene riassegnato).
Altri Protocolli Applicativi
Porte 20-21, TCP. Trasferimento file tra client e server. Usa due connessioni: porta 21 per i comandi, porta 20 per i dati. Non crittografato: oggi si preferisce SFTP (FTP over SSH, porta 22) o FTPS (FTP over TLS).
Porta 25 (o 587 con autenticazione), TCP. Protocollo per l’invio delle email. Funziona in modalità push: il client “spinge” la mail verso il server. Per la ricezione si usano POP3 (110) o IMAP (143).
Porta 22, TCP. Accesso remoto sicuro alla riga di comando. Tutto il traffico è crittografato. Sostituisce Telnet (porta 23) che invia tutto in chiaro. Usato per gestire server, router, switch da remoto.
Nessuna porta (viaggia dentro IP). Non è un protocollo di trasporto: è usato per diagnostica e segnalazione errori. Comandi ping (Echo Request/Reply) e traceroute (TTL exceeded) usano ICMP.
6.6 Il Percorso di una Email
Inviare una email coinvolge più protocolli in sequenza. È uno degli esempi più completi di collaborazione tra livelli.
MX del dominio destinatarioPOP3 scarica le email e (di default) le cancella dal server. Ideale per un unico dispositivo.
IMAP mantiene le email sul server e le sincronizza tra più dispositivi. Leggere una mail sul telefono la segna come letta anche sul PC. Oggi IMAP è lo standard.
6.7 Tabella Riepilogativa
| Protocollo | Porta | TCP/UDP | Livello OSI | Funzione |
|---|---|---|---|---|
| HTTP | 80 | TCP | 7 | Web non crittografato |
| HTTPS | 443 | TCP | 7 | Web crittografato (TLS) |
| FTP | 20-21 | TCP | 7 | Trasferimento file |
| SSH | 22 | TCP | 7 | Shell remota sicura |
| Telnet | 23 | TCP | 7 | Shell remota (obsoleto) |
| SMTP | 25/587 | TCP | 7 | Invio email |
| DNS | 53 | UDP/TCP | 7 | Risoluzione nomi |
| DHCP | 67-68 | UDP | 7 | Assegnazione IP automatica |
| POP3 | 110 | TCP | 7 | Ricezione email (download) |
| IMAP | 143 | TCP | 7 | Ricezione email (sync) |
| RDP | 3389 | TCP | 7 | Desktop remoto Windows |
| ICMP | — | — | 3 | Diagnostica (ping, traceroute) |
🧪 Verifica di Autovalutazione
Soluzioni
Domanda 01 — TCP vs UDP
Domanda 02 — Three-way handshake
Domanda 03 — Socket
192.168.1.10:443 indica il servizio HTTPS sul dispositivo con IP 192.168.1.10. Una connessione TCP è identificata da una coppia di socket (sorgente e destinazione).Domanda 04 — Perché DNS usa UDP
Domanda 05 — Processo DORA
Domanda 06 — HTTP vs HTTPS
Domanda 07 — Porta 443
Domanda 08 — SSH vs Telnet
Domanda 09 — POP3 vs IMAP
Domanda 10 — Ping e TCP/UDP
ping non usa né TCP né UDP. Usa ICMP (Internet Control Message Protocol), che è un protocollo di livello 3 incapsulato direttamente nei pacchetti IP. Ping invia messaggi ICMP “Echo Request” e attende “Echo Reply”. Non ha numeri di porta perché non opera al livello trasporto.