
Obiettivo del tutorial: Esplorare in dettaglio il Livello 4 (Trasporto) del modello OSI, comprendendo il funzionamento dei protocolli di comunicazione end-to-end (TCP e UDP) e l’importanza delle porte di rete per smistare il traffico verso le applicazioni corrette.
1. Il Ruolo del Livello di Trasporto
Nel primo tutorial abbiamo visto che il Livello 3 (Rete) si occupa di far viaggiare i pacchetti da un computer all’altro attraverso router globali (usando gli indirizzi IP). Ma una volta che il pacchetto arriva sul computer di destinazione, come fa a sapere quale programma o applicazione deve riceverlo?
A questo pensa il Livello 4 (Trasporto). Questo livello garantisce la comunicazione logica tra le singole applicazioni in esecuzione sui dispositivi host, gestendo la segmentazione dei dati, il controllo del flusso e la consegna corretta.
2. TCP (Transmission Control Protocol): Affidabilità e Connessione
Il TCP è il protocollo di trasporto più utilizzato per le applicazioni che richiedono una precisione assoluta, come la navigazione web (HTTP/HTTPS), l’invio di email (SMTP) o il trasferimento di file (FTP).
Le caratteristiche principali del TCP includono:
-
Orientato alla connessione (Connection-oriented): Prima di inviare qualsiasi dato, stabilisce una connessione ufficiale tra mittente e destinatario attraverso un processo noto come Three-way Handshake (stretta di mano a tre vie).
-
Affidabilità e controllo degli errori: Se un pacchetto si perde durante il viaggio, il TCP si accorge della mancanza e richiede il reinvio immediato del pacchetto danneggiato o perduto.
-
Ordinamento dei pacchetti: I dati vengono numerati; se arrivano fuori ordine a causa di percorsi diversi nella rete, il TCP li ricompone nell’sequenza corretta prima di passarli all’applicazione.
3. UDP (User Datagram Protocol): Velocità e Sveltezza
A differenza del TCP, l’UDP è un protocollo “senza connessione” (connectionless) e minimale. Non perde tempo a stabilire una connessione formale e non verifica se i pacchetti arrivano a destinazione.
È la scelta ideale per le applicazioni in tempo reale dove una perdita occasionale di dati è preferibile a un ritardo (lag):
-
Streaming video e audio: Se un singolo fotogramma di una videochiamata o di una diretta streaming va perso, è meglio saltarlo che bloccare l’intero flusso per aspettare il recupero.
-
Gaming online: I giochi multigiocatore sfruttano l’UDP per trasmettere la posizione dei giocatori in tempo reale con la minima latenza possibile.
-
DNS (Domain Name System): Interrogazioni rapide e leggere per risolvere i nomi dei siti web.
4. Il Concetto di “Porte” di Rete (Port Numbers)
Se l’indirizzo IP è paragonabile al palazzo in cui risiede un’applicazione, le Porte sono i singoli appartamenti o interni di quel palazzo. Una porta è un indirizzo logico numerico (da 0 a 65535) che permette al sistema operativo di capire a quale software specifico recapitare i dati in arrivo.
Esistono tre categorie principali di porte:
-
Porte Fisse o Ben Note (Well-Known Ports, da 0 a 1023): Riservate ai servizi di rete standard e universali. Ad esempio:
-
Porta 80: HTTP (traffico web non cifrato)
-
Porta 443: HTTPS (traffico web sicuro)
-
Porta 21: FTP (trasferimento file)
-
Porta 22: SSH (accesso sicuro da riga di comando)
-
-
Porte Registrate (Registered Ports, da 1024 a 49151): Utilizzate da applicazioni e software di terze parti (es. database o giochi).
-
Porte Dinamiche o Private (Dynamic/Ephemeral Ports, da 49152 a 65535): Assegnate temporaneamente dal sistema operativo quando un client apre una connessione verso un server.
