TCP: il protocollo di trasporto primario di Internet
TCP: il protocollo di trasporto primario di Internet
Il protocollo di trasporto più utilizzato per le applicazioni Internet su IP è TCP (Transmission Control Protocol).
Perché TCP domina
- Affidabilità: Garantisce consegna in ordine, controllata per errori, senza duplicati tramite numeri di sequenza, ACK, ritrasmissioni.
- Orientato alla connessione: Handshake a 3 vie (SYN, SYN-ACK, ACK) stabilisce lo stato; smantellamento (FIN/FIN-ACK).
- Controllo del flusso: Finestra scorrevole impedisce l'overflow del buffer del ricevitore.
- Controllo della congestione: Algoritmi Reno, CUBIC, BBR adattano il tasso di invio alla capacità della rete.
- Universalità: Supportato da ogni OS, linguaggio, framework, middlebox.
Applicazioni tipiche che usano TCP
- Web (HTTP/HTTPS), Email (SMTP, IMAP, POP3), Trasferimento file (FTP, SFTP), SSH, Database (MySQL, PostgreSQL), Messaggistica (XMPP, MQTT su TCP), Desktop remoto (RDP), VPN (OpenVPN TCP), Lobby di gioco/chat.
Controparte: UDP (User Datagram Protocol)
Usato quando velocità > affidabilità: DNS, VoIP (RTP), Streaming video (QUIC/UDP), Gaming (tempo reale), IoT (CoAP), Multicast. QUIC (HTTP/3) porta l'affidabilità tipo TCP su UDP.
Campi chiave dell'intestazione (20 byte min)
- Porta sorgente/destinazione (16 bit ciascuna)
- Numero di sequenza (32 bit)
- Numero di riconoscimento (32 bit)
- Flag (SYN, ACK, FIN, RST, PSH, URG, ECE, CWR)
- Dimensione finestra (16 bit, scalata)
- Checksum (16 bit)
- Puntatore urgente
- Opzioni (MSS, Window Scale, SACK, Timestamp)
TCP è il fondamento di Internet moderno—affidabile per impostazione predefinita, regolabile per le prestazioni.