Il livello Transport (Livello 4 OSI): funzioni, protocolli e meccanismi
Il Livello Transport (Livello 4) è il cuore della comunicazione end-to-end nel modello OSI. Si posiziona tra il Livello Network (routing) e il Livello Application (programmi utente), fornendo comunicazione logica tra processi (non solo host) attraverso una rete.
Responsabilità core
- Consegna processo-processo (indirizzamento porta): Usa numeri di porta a 16 bit per identificare applicazioni mittente/destinatario (es. HTTP=80, HTTPS=443, DNS=53). Consente multiplexing/demultiplexing.
- Segmentazione e riassemblaggio: Suddivide i dati applicativi in gestibili segmenti (TCP) o datagrammi (UDP) con numeri di sequenza per il riassemblaggio a destinazione.
- Gestione connessione: Stabilisce, mantiene, chiude connessioni logiche (TCP 3-way handshake: SYN, SYN-ACK, ACK).
- Affidabilità (controllo errori): TCP fornisce: checksum, acknowledgment (ACK), ritrasmissione (timeout/fast retransmit), rilevamento duplicati, buffering fuori ordine.
- Flow control: Il ricevitore pubblicizza la dimensione finestra (sliding window) per prevenire overflow del mittente. TCP usa flow control basato su credito.
- Congestion control: Il mittente deduce congestione di rete (perdita pacchetti, marcature ECN) e riduce il tasso. Algoritmi TCP: Tahoe, Reno, NewReno, CUBIC (default Linux), BBR (Google).
- Supporto Qualità del Servizio (QoS): Marcatura DSCP, ECN, coda prioritaria (DiffServ).
Protocolli chiave
| Protocollo | Tipo | Affidabilità | Ordinamento | Flow/Congestion Control | Casi d'uso |
|---|---|---|---|---|---|
| TCP (Transmission Control Protocol) | Orientato alla connessione | Sì (ACK/ritrasmetti) | Sì (numero sequenza) | Sì (sliding window, CUBIC/BBR) | Web, email, SSH, FTP, database, la maggior parte delle app |
| UDP (User Datagram Protocol) | Senza connessione | No (best-effort) | No | No | DNS, VoIP, streaming video, gaming, IoT, DHCP |
| SCTP (Stream Control Transmission Protocol) | Orientato alla connessione | Sì | Sì (per stream) | Sì | Telecom (SIGTRAN), multihoming, WebRTC data channels |
| DCCP (Datagram Congestion Control Protocol) | Orientato alla connessione | No | No | Sì (solo congestione) | Streaming media, app real-time che necessitano controllo congestione |
| QUIC (Quick UDP Internet Connections) | Orientato alla connessione (su UDP) | Sì (integrato) | Sì (stream) | Sì (pluggable, default CUBIC) | HTTP/3, web moderno, gRPC, app a bassa latenza |
Struttura segmento TCP (semplificata)
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Porta sorgente | Porta destinazione | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Numero di sequenza | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Numero di acknowledgment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Riservato |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opzioni (MSS, WS, SACK, TS...) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Datagramma UDP (overhead minimo)
0 7 8 15 16 23 24 31 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Porta sorgente | Porta dest | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lunghezza | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Data | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Intervalli numeri di porta
- 0–1023: Ben note (sistema/privilegiate)
- 1024–49151: Registrate (assegnate IANA)
- 49152–65535: Effimere (lato client dinamico)
Evoluzione moderna
- QUIC/HTTP/3: Spostamento della logica di transport in spazio utente (UDP), integra TLS 1.3, elimina head-of-line blocking, handshake più veloce (0-RTT).
- TCP BBR: Controllo congestione basato su modello (stima banda/RTT) sostituisce CUBIC basato su perdita.
- Multipath TCP (MPTCP): Usa più percorsi (Wi-Fi + LTE) simultaneamente.
- Transport Services API (IETF): Astratta selezione transport per le app.
Il livello transport trasforma la consegna pacchetti inaffidabile host-to-host in comunicazione affidabile (o intenzionalmente inaffidabile) processo-processo—abilitando l'intero ecosistema applicativo.