TCP vs UDP: Qual è la differenza?

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:

0 – 65535

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.

Client → Server : SYN

Fase 2 – SYN ACK

Il server accetta la connessione.

Server → Client : SYN + ACK

Fase 3 – ACK

Il client conferma.

Client → Server : ACK

Dopo questo processo la connessione entra nello stato ESTABLISHED.


7. Chiusura della connessione TCP

La chiusura utilizza normalmente quattro messaggi:

FIN
ACK
FIN
ACK

Sequenza semplificata:

Client → FIN
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:

Window Size

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 no
Controllo congestione 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.