edubun
Italiano

TCP, UDP e porte

Un numero di porta è di 16 bit, quindi va da 0 a 65535. I server web che usano HTTPS ascoltano sulla porta 443.

Prima due indovinelli. In una videochiamata un pezzettino della voce del tuo amico si perde per strada. La tua app dovrebbe richiederlo? Ora stai scaricando un file per i compiti, e un pezzo del file si perde. Stessa domanda. Decidi tutte e due le risposte prima di andare avanti.

Due pezzi persi, due risposte diverse

Se hai detto no per la chiamata e sì per il file, hai già scelto tra i due protocolli di trasporto. Un pezzo di suono che arriva mezzo secondo in ritardo non serve a niente. La conversazione è andata avanti, quindi è meglio saltare quel pezzo e suonare il successivo. Un file con un pezzo mancante è rotto, quindi vale la pena aspettare quel pezzo. Internet ha un trasporto per ogni caso: TCP aspetta e rispedisce, UDP manda e va avanti. Prima che uno dei due possa aiutare, però, un pacchetto deve arrivare al programma giusto.

Quale programma riceve il pacchetto: le porte

Un indirizzo IP porta un pacchetto al computer giusto. Ma un computer fa girare molti programmi insieme: un browser con diverse schede, un'app di chat, un'app di musica. Le intestazioni TCP e UDP portano entrambe una porta di origine e una porta di destinazione, ciascuna un numero di 16 bit da 0 a 65535, e la porta dice a quale programma è destinato un pacchetto. Un programma server ascolta su una porta concordata: 80 per l'HTTP semplice, 443 per HTTPS, 53 per il DNS, 25 per la posta tra server. La RFC 6335 divide l'intervallo in porte di sistema da 0 a 1023, porte utente da 1024 a 49151 e porte dinamiche da 49152 a 65535. Il tuo computer sceglie una porta di origine temporanea per ogni conversazione, spesso nell'intervallo dinamico. Un indirizzo e una porta insieme, come 198.51.100.20:443, indicano con precisione un capo di una conversazione.

TCP spunta ogni byte

TCP (RFC 9293) trasforma un flusso inaffidabile di pacchetti in qualcosa di simile a una linea telefonica per i byte. Prima i due lati stabiliscono una connessione con una stretta di mano in tre passi (three-way handshake): il client manda SYN, il server risponde SYN-ACK e il client replica ACK. Da quel momento ogni byte ha un numero di sequenza. Chi riceve manda conferme (ACK) che dicono fin dove è arrivato, e rimette al loro posto i pezzi arrivati in disordine. Se chi invia non riceve un ACK entro un tempo limite (timeout), rispedisce i dati. La RFC 6298 fissa il primo timeout a 1 secondo e poi lo adatta al tempo di andata e ritorno misurato. TCP rallenta anche quando vede delle perdite, così un collegamento carico non viene sommerso.

UDP manda e va avanti

UDP (RFC 768, 1980) fa molto meno. La sua intestazione è di soli 8 byte: due porte, una lunghezza e una somma di controllo. Non c'è handshake, non c'è numero di sequenza e non c'è ritrasmissione. Per la videochiamata del primo indovinello è proprio quello che serve. Anche le brevi domande DNS usano UDP, perché una domanda e una risposta sono più rapide senza handshake. QUIC, il trasporto sotto HTTP/3, funziona su UDP e ci costruisce sopra la propria ritrasmissione.

Caricamento

Trascina per ruotare. Scorri o avvicina le dita per lo zoom.

La perdita è impostata al 25%. Con TCP tornano ACK verdi per ogni pacchetto; quando ne manca uno, il portatile aspetta il timeout e rispedisce quel pacchetto (viola), così il server finisce sempre con il messaggio intero. Passa a UDP e invia di nuovo: i pacchetti persi lasciano dei puntini nel messaggio. In questo modello gli ACK non si perdono mai e ogni pacchetto ha il suo ACK; il TCP vero manda ACK cumulativi.

Quattro numeri tengono separate due schede

Quattro numeri insieme identificano una connessione TCP: indirizzo di origine, porta di origine, indirizzo di destinazione e porta di destinazione. È così che un server sulla porta 443 può parlare con migliaia di browser alla volta senza confonderli, ed è così che il tuo portatile tiene separate due schede sullo stesso sito, perché la connessione di ogni scheda usa una porta di origine diversa. Tocca un pacchetto nel simulatore e leggi la sua intestazione. Prima del router di casa l'origine è 192.168.0.12 porta 51000. Dopo, il NAT ha cambiato entrambi i numeri, e il router ricorda lo scambio perché le risposte tornino alla scheda giusta.

TCPUDP
AperturaHandshake in tre passiNessuna
Dati persiRispediti dopo un timeoutRestano persi
OrdineRipristinato con i numeri di sequenzaNon garantito
Intestazione20 byte o più8 byte
Usi tipiciPagine web, posta elettronica, download di fileDomande DNS, chiamate vocali e video, giochi, QUIC
Porta 443HTTPS
Porta 80HTTP senza cifratura
Porta 53DNS
Porta 25Posta elettronica tra server di posta (SMTP)
SYN, SYN-ACK, ACKHandshake in tre passi di TCP
ACKConferma: «ho ricevuto fino a qui»
  1. Qual è il numero di porta più grande?
  2. Quale porta usa un server web per HTTPS?
  3. Quale porta usa il DNS?
  4. Il tuo browser usa la porta di origine 50000. In quale intervallo della RFC 6335 rientra?
    • Dinamico (da 49152 a 65535)
    • Di sistema (da 0 a 1023)
    • Utente (da 1024 a 49151)
    • Non è una porta valida
  5. Metti in ordine l'handshake di TCP.
  6. Quanti byte è lunga un'intestazione UDP?
  7. Prima di aver misurato un qualsiasi tempo di andata e ritorno, quale primo timeout di ritrasmissione fissa la RFC 6298?
  8. Con il 25% di perdita, che cosa fa TCP con un pacchetto mancante?
    • Lo rispedisce dopo il timeout
    • Lo salta
    • Rispedisce tutto il messaggio dall'inizio
    • Chiude subito la connessione
  9. Perché le videochiamate usano spesso UDP?
    • Un suono che arriva in ritardo non serve, quindi aspettare una ritrasmissione non aiuta
    • UDP cifra la chiamata
    • UDP non perde mai pacchetti
    • TCP non può trasportare suoni
  10. Quanti numeri di porta diversi esistono?
Errori comuni
  • «UDP è una versione difettosa di TCP che perde dati.» UDP si sceglie apposta quando i dati in ritardo non servono o quando bastano una domanda e una risposta, come nelle chiamate, nei giochi e nel DNS. QUIC ci costruisce sopra perfino la propria affidabilità.
  • «Una porta è una presa sul retro del computer.» La parola è la stessa, ma una porta TCP o UDP è un numero di 16 bit nell'intestazione del pacchetto, da 0 a 65535. Indica un programma, non una spina.
  • «Quando si perde un pacchetto, TCP rispedisce tutto il file.» Dopo il timeout vengono rispediti solo i dati mancanti. I numeri di sequenza e gli ACK mostrano quale parte non è stata confermata; chi riceve ha già il resto.
Nota per l'insegnanteFate le due domande degli indovinelli prima di dire TCP o UDP. Quando i ragazzi hanno deciso da soli che un pezzo di suono in ritardo non vale niente, i due nomi diventano etichette per una scelta che hanno già fatto. L'handshake resta in mente se tre persone lo recitano: una a ogni capo e una in mezzo che porta cartellini con scritto SYN, SYN-ACK e ACK. Dove si bloccano è sui quattro numeri che identificano una connessione. Scrivete una accanto all'altra le connessioni di due schede e lasciate che notino da soli che cambia solo la porta di origine.
Punti chiave
  • Le porte (16 bit, da 0 a 65535) scelgono il programma: 80 HTTP, 443 HTTPS, 53 DNS.
  • TCP: handshake (SYN, SYN-ACK, ACK), numeri di sequenza, ACK, ritrasmissione dopo il timeout.
  • UDP: intestazione di 8 byte, niente handshake, niente ritrasmissione; va bene quando i dati in ritardo non servono.
  • QUIC (HTTP/3) funziona su UDP e aggiunge la propria affidabilità.
Fonti di questo corso (28)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then operators and papers, history sources last)
  • IETF RFCs (rfc-editor.org): RFC 768 UDP (1980, 8-byte header)
  • RFC 791 IPv4 (1981, 32-bit addresses, "does not provide a reliable communication facility", TTL field "measured in units of seconds" but every module must decrease it by at least one, so it is only an upper bound)
  • RFC 792 ICMP (Time Exceeded)
  • RFC 801 NCP/TCP transition plan (1 January 1983)
  • RFC 894 Ethernet (1500-byte payload)
  • RFC 1034 and RFC 1035 DNS (1987, HOSTS.TXT kept by SRI-NIC, labels up to 63 octets and names up to 255, TTL in seconds)
  • RFC 1122 (127.0.0.0/8 loopback)
  • RFC 1918 private addresses (10/8, 172.16/12, 192.168/16)
  • RFC 2131 DHCP, RFC 3022 NAT, RFC 3596 AAAA records, RFC 3849 and RFC 5737 documentation addresses, RFC 4271 BGP-4, RFC 4291 IPv6 text form, RFC 6298 TCP retransmission timer (initial RTO 1 second)
  • RFC 6335 port ranges (0-1023, 1024-49151, 49152-65535)
  • RFC 7766 DNS over TCP, RFC 8200 IPv6 (128-bit addresses, Hop Limit)
  • RFC 8446 TLS 1.3 (one round-trip handshake)
  • RFC 9000 QUIC and RFC 9114 HTTP/3, RFC 9110 HTTP semantics (status code classes)
  • RFC 9293 TCP (three-way handshake, sequence numbers)
  • IANA: ip-parameters registry (recommended default TTL 64)
  • IPv4 free pool depleted 3 February 2011 (NRO and ARIN announcements)
  • Official documentation: MDN Web Docs "How does the Internet work?" (45 cables for 10 computers, switches, routers, MAC and IP addresses, internet and web)
  • "What is a URL?", "HTTP response status codes" (developer.mozilla.org)
  • Cloudflare Learning Center: "What is DNS?" (four kinds of DNS server, 8 steps of an uncached lookup, browser and OS caches, TTL)
  • "What is HTTP/3?" (cloudflare.com/learning)
  • Google Chrome Help, "Browse in Incognito mode" (support.google.com/chrome/answer/95464, checked 2026-10-19: Incognito limits what is saved to the device; websites and organisations that manage your network, like your school, employer or internet service provider, may be able to observe your activity)
  • Operators and papers: root-servers.org (13 root name servers run by 12 organisations, 2047 instances on 2026-10-17)
  • Jacobson and Karels 1988, Congestion Avoidance and Control (loss mostly congestion)
  • History blocks only: UCLA Samueli School of Engineering, Internet50 (first ARPANET message "LO", UCLA to SRI, 29 October 1969, 22:30)
  • historyofinformation.com and Wikipedia ARPANET (Kline)
  • Spiceworks/SRI history (HOSTS.TXT kept by SRI-NIC)
  • Numbers (2^32, 2^96, 45 and 6 cables, packet counts, round-trip times)

Consultato il: 2026-10-17