I protocolli TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) sono i due pilastri del livello di trasporto (Layer 4) nello stack di rete TCP/IP Model e nel OSI Model.
Gestiscono il trasferimento dei dati tra applicazioni su dispositivi diversi, definendo come i pacchetti vengono inviati, controllati e ricevuti.
TCP privilegia affidabilità, controllo e ordine dei dati, mentre UDP privilegia velocità, semplicità e bassa latenza.
Comprendere questi protocolli è fondamentale per studenti di informatica, amministratori di rete e sviluppatori perché quasi tutte le applicazioni Internet — dal web alle videochiamate — si basano su uno dei due.
1. Il livello di trasporto nelle reti
In una comunicazione di rete i dati attraversano diversi livelli logici. Nel modello OSI Model, il livello di trasporto (Layer 4) ha il compito di:
-
garantire comunicazione processo → processo
-
gestire porte di comunicazione
-
controllare flusso e affidabilità
-
segmentare e ricostruire i dati
Il livello di trasporto utilizza:
-
TCP → comunicazione affidabile
-
UDP → comunicazione veloce e senza controllo
Entrambi lavorano sopra il protocollo Internet Protocol (IP).
2. Concetto di porta nelle comunicazioni di rete
Per permettere a più applicazioni di comunicare simultaneamente su un dispositivo, TCP e UDP usano le porte.
Una porta è un identificatore a 16 bit:
Tipologie principali:
| Tipo | Range | Uso |
|---|---|---|
| Well-known | 0 – 1023 | servizi standard |
| Registered | 1024 – 49151 | applicazioni |
| Dynamic/Ephemeral | 49152 – 65535 | temporanee |
Esempi comuni:
| Servizio | Porta | Protocollo |
|---|---|---|
| HTTP | 80 | TCP |
| HTTPS | 443 | TCP |
| DNS | 53 | UDP |
| SMTP | 25 | TCP |
| DHCP | 67/68 | UDP |
3. Il protocollo TCP
Il Transmission Control Protocol è un protocollo connection-oriented progettato per garantire la consegna affidabile dei dati.
Caratteristiche principali:
-
connessione stabilita prima dello scambio dati
-
ordine garantito dei pacchetti
-
controllo di errore
-
controllo di congestione
-
ritrasmissione automatica
TCP tratta i dati come uno stream continuo di byte.
4. Struttura dell’header TCP
L’header TCP ha dimensione minima 20 byte e può arrivare fino a 60 byte con opzioni.
Campi principali:
| Campo | Dimensione | Descrizione |
|---|---|---|
| Source Port | 16 bit | porta sorgente |
| Destination Port | 16 bit | porta destinazione |
| Sequence Number | 32 bit | numero sequenza del primo byte |
| Acknowledgment Number | 32 bit | prossimo byte atteso |
| Data Offset | 4 bit | dimensione header |
| Flags | 6 bit | controlli di connessione |
| Window Size | 16 bit | controllo flusso |
| Checksum | 16 bit | verifica integrità |
| Urgent Pointer | 16 bit | dati urgenti |
| Options | variabile | parametri extra |
5. I flag TCP
I flag controllano lo stato della connessione.
| Flag | Funzione |
|---|---|
| SYN | sincronizzazione sequenze |
| ACK | conferma ricezione |
| FIN | chiusura connessione |
| RST | reset immediato |
| PSH | invio immediato dati |
| URG | dati urgenti |
6. Il Three-Way Handshake
Prima di trasmettere dati, TCP stabilisce una connessione tramite il three-way handshake.
Fase 1 – SYN
Il client invia richiesta di connessione.
Fase 2 – SYN ACK
Il server accetta la connessione.
Fase 3 – ACK
Il client conferma.
Dopo questo processo la connessione entra nello stato ESTABLISHED.
7. Chiusura della connessione TCP
La chiusura utilizza normalmente quattro messaggi:
ACK
FIN
ACK
Sequenza semplificata:
Server → ACK
Server → FIN
Client → ACK
Questo processo garantisce che tutti i dati siano stati ricevuti prima della chiusura.
8. Meccanismi di affidabilità TCP
TCP garantisce l’integrità dei dati tramite diversi meccanismi.
Numeri di sequenza
Ogni byte ha un identificatore progressivo.
Acknowledgment
Il ricevente conferma i dati ricevuti.
Ritrasmissione
Se un ACK non arriva entro un tempo definito (RTO), il pacchetto viene reinviato.
Fast Retransmit
Se arrivano 3 ACK duplicati, TCP ritrasmette immediatamente il segmento.
9. Controllo del flusso
TCP utilizza un sistema chiamato sliding window.
Il ricevente comunica al mittente quanta memoria buffer è disponibile:
Questo impedisce di sovraccaricare il ricevente.
10. Controllo della congestione
TCP integra algoritmi per evitare la saturazione della rete.
Principali tecniche:
Slow Start
La finestra di congestione cresce esponenzialmente.
Congestion Avoidance
La crescita diventa lineare.
Fast Recovery
Riduzione della finestra dopo perdita pacchetti.
Questi meccanismi sono fondamentali per la stabilità di Internet.
11. Il protocollo UDP
Il User Datagram Protocol è un protocollo connectionless progettato per la massima velocità.
Caratteristiche:
-
nessuna connessione
-
nessun controllo di flusso
-
nessuna ritrasmissione
-
nessun ordinamento
UDP usa il modello fire-and-forget: invia i dati senza aspettare conferma.
12. Struttura dell’header UDP
L’header UDP è molto più semplice e occupa solo 8 byte.
| Campo | Dimensione | Descrizione |
|---|---|---|
| Source Port | 16 bit | porta sorgente |
| Destination Port | 16 bit | porta destinazione |
| Length | 16 bit | lunghezza datagramma |
| Checksum | 16 bit | controllo errori |
Grazie a questo header ridotto, UDP ha overhead minimo.
13. Datagrammi UDP
UDP trasmette dati sotto forma di datagrammi indipendenti.
Possibili problemi:
-
pacchetti persi
-
pacchetti duplicati
-
pacchetti fuori ordine
L’applicazione deve eventualmente gestire questi casi.
14. Confronto TCP vs UDP
| Caratteristica | TCP | UDP |
|---|---|---|
| Tipo connessione | connection-oriented | connectionless |
| Affidabilità | alta | bassa |
| Ordine pacchetti | garantito | non garantito |
| Velocità | più lenta | molto veloce |
| Header | 20–60 byte | 8 byte |
| Controllo flusso | sì | no |
| Controllo congestione | sì | no |
15. Applicazioni che usano TCP
Applicazioni dove l’integrità dei dati è fondamentale.
| Servizio | Porta |
|---|---|
| HTTP | 80 |
| HTTPS | 443 |
| FTP | 21 |
| SMTP | 25 |
| SSH | 22 |
Esempi:
-
download file
-
pagine web
-
email
-
trasferimenti dati
16. Applicazioni che usano UDP
Applicazioni dove la latenza è più importante della perfezione dei dati.
| Servizio | Porta |
|---|---|
| DNS | 53 |
| DHCP | 67 / 68 |
| NTP | 123 |
| VoIP | variabile |
Esempi:
-
streaming video
-
giochi online
-
VoIP
-
DNS queries
17. Evoluzione moderna: HTTP/3 e QUIC
Le nuove tecnologie stanno cercando di combinare i vantaggi dei due protocolli.
Un esempio è QUIC protocol, sviluppato da Google.
QUIC utilizza UDP ma implementa:
-
controllo congestione
-
affidabilità
-
multiplexing
È alla base di HTTP/3.
18. TCP e UDP nelle reti moderne
Entrambi i protocolli sono fondamentali per Internet.
TCP domina nei servizi che richiedono:
-
sicurezza
-
affidabilità
-
integrità dei dati
UDP domina nei servizi che richiedono:
-
latenza minima
-
comunicazioni in tempo reale
-
streaming continuo
Le infrastrutture moderne spesso combinano entrambi.