TCP/IP: Il Linguaggio Universale di Internet

La suite di protocolli TCP/IP (Transmission Control Protocol / Internet Protocol) è il fondamento tecnologico di Internet. Ogni pagina web che carichi, ogni email che invii, ogni chiamata VoIP che effettui viaggia su questa infrastruttura protocollare. Comprenderne il funzionamento è indispensabile per chiunque lavori nel campo delle reti e delle telecomunicazioni.

I Quattro Livelli del Modello TCP/IP

  • Accesso alla rete (Network Access): gestisce la trasmissione fisica e il collegamento locale (es. Ethernet, Wi-Fi).
  • Internet: indirizzamento e routing dei pacchetti IP attraverso reti diverse.
  • Trasporto: comunicazione end-to-end tramite TCP (affidabile) o UDP (non affidabile, veloce).
  • Applicazione: protocolli di alto livello (HTTP, DNS, SMTP, FTP, SSH).

IP: Indirizzamento e Instradamento

L'Internet Protocol è responsabile dell'indirizzamento logico e dell'instradamento (routing) dei pacchetti. Ogni dispositivo in rete ha un indirizzo IP univoco. Con IPv4, l'indirizzo è a 32 bit (es. 192.168.1.1), dando origine a circa 4,3 miliardi di indirizzi. L'esaurimento degli indirizzi IPv4 ha accelerato l'adozione di IPv6, con indirizzi a 128 bit e uno spazio praticamente illimitato.

IP è un protocollo best-effort: non garantisce la consegna, l'ordine o l'integrità dei pacchetti. Questi compiti spettano ai livelli superiori.

TCP: Connessione Affidabile con la Three-Way Handshake

TCP è il protocollo orientato alla connessione che garantisce consegna affidabile e ordinata dei dati. Prima di trasferire dati, TCP stabilisce una connessione tramite la famosa three-way handshake:

  1. SYN: il client invia un segmento SYN con numero di sequenza iniziale casuale.
  2. SYN-ACK: il server risponde con SYN-ACK, confermando il numero di sequenza del client e comunicando il proprio.
  3. ACK: il client conferma con ACK. La connessione è stabilita.

Durante la trasmissione, TCP usa ACK cumulativi e timeout di ritrasmissione per garantire che ogni segmento arrivi a destinazione. La connessione si chiude con una sequenza FIN/FIN-ACK (four-way handshake di chiusura).

Controllo della Congestione in TCP

TCP incorpora meccanismi sofisticati per evitare di saturare la rete:

  • Slow Start: inizia con una finestra di congestione (cwnd) piccola e la raddoppia ad ogni RTT, finché non supera una soglia (ssthresh).
  • Congestion Avoidance: superata la soglia, la finestra cresce linearmente per sondare la capacità disponibile.
  • Fast Retransmit/Fast Recovery: alla ricezione di tre ACK duplicati, TCP ritrasmette immediatamente senza aspettare il timeout e dimezza la finestra.

Varianti moderne come TCP CUBIC (default su Linux) e BBR (Google) ottimizzano ulteriormente le performance su reti ad alta velocità e alta latenza.

UDP: Quando la Velocità Conta Più dell'Affidabilità

UDP è il protocollo di trasporto "senza connessione": nessuna handshake, nessuna conferma di ricezione, nessun controllo di congestione. Questo lo rende ideale per applicazioni dove la latenza è critica e qualche perdita è tollerabile:

  • Streaming video e audio (VoIP, WebRTC)
  • Gaming online in tempo reale
  • DNS (query brevi, ritrasmissione gestita dall'applicazione)
  • QUIC (il protocollo di trasporto di HTTP/3, costruito su UDP)

NAT e il Problema degli Indirizzi Privati

Con la scarsità di IPv4, il NAT (Network Address Translation) consente a molti dispositivi con indirizzi privati (es. 192.168.x.x) di condividere un unico indirizzo pubblico. Il router traduce gli indirizzi nei pacchetti in uscita e mantiene una tabella di mapping. Soluzione pratica ma che complica alcune applicazioni peer-to-peer — problema risolto nativamente da IPv6.

Conclusioni

TCP/IP non è un unico protocollo ma un ecosistema coordinato di standard che lavorano insieme per far funzionare Internet. Comprendere i meccanismi di indirizzamento IP, la handshake TCP, il controllo della congestione e il ruolo di UDP permette di diagnosticare problemi di rete, ottimizzare le applicazioni e progettare sistemi di comunicazione robusti ed efficienti.