Siamo indipendenti ma possiamo ricevere commissioni se acquisti una VPN tramite certi link.
UDP vs. TCP: qual è la differenza?
JP Jones
JP Jones è il nostro CTO. Ha oltre 25 anni di esperienza nei campi di progettazione software e networking e supervisiona tutti gli aspetti tecnici del nostro processo di test delle VPN. Leggi la biografia completa
TCP e UDP sono entrambi protocolli di rete utilizzati per trasferire dati su Internet. UDP è più veloce ed efficiente, mentre TCP è più sicuro e affidabile. OpenVPN funziona con entrambi i protocolli, ma ti consigliamo di provare prima UDP e di passare a TCP se non funziona.
TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) sono due diversi tipi di protocollo di comunicazione utilizzati per inviare informazioni su Internet.
Nel software VPN, il protocollo OpenVPN deve utilizzare UDP o TCP per inviare i dati tra il tuo dispositivo e il server VPN.
Ecco una tabella che mostra le principali differenze tra i due protocolli:
Tuttavia, ci sono situazioni specifiche in cui il TCP è l’opzione migliore, soprattutto quando l’affidabilità è fondamentale.
Ecco una guida rapida su quando utilizzare ciascun protocollo:
TCP: adatto alle attività web che richiedono stabilità, come la navigazione web (HTTP, HTTPS), la posta elettronica (SMTP, IMAP/POP), i download e gli upload (FTP) e l’accesso al computer remoto tramite Shell sicura (SSH).
UDP: Adatto a casi d’uso in cui la velocità è fondamentale, come i giochi online, lo streaming video, il VoIP (Voice over IP) e i dispositivi IoT (Internet of Things) (ad esempio, sensori che inviano sporadicamente dati a casa).
Perché fidarsi di noi?
Siamo completamente indipendenti e recensiamo VPN dal 2016. Le nostre opinioni sono basate sui risultati dei nostri test e non sono influenzate da incentivi finanziari. Scopri chi siamo e come testiamo le VPN.
Che cos'è il TCP?
Il protocollo TCP crea una connessione tra due dispositivi, come il computer e un server Web. I dati vengono inviati attraverso questa connessione. È come una telefonata in cui i due dispositivi si parlano per verificare se le informazioni sono state ricevute correttamente.
Quando si utilizza il TCP:
La ricezione di tutti i pacchetti è garantita. Se il destinatario non conferma di aver ricevuto un pacchetto, il mittente lo invia di nuovo.
I pacchetti sono sequenziati per garantire che arrivino al destinatario nello stesso ordine in cui sono stati inviati.
I pacchetti non vengono inviati se il destinatario non è pronto a riceverli.
Il TCP è un protocollo “orientato alla connessione” e utilizza un Handshake a tre vie per stabilire la connessione. Funziona attraverso lo scambio dei seguenti pacchetti:
Pacchetto SYN (Synchronize): Il client avvia la connessione inviando un pacchetto SYN al server. Questo pacchetto contiene il numero di sequenza iniziale del client.
Pacchetto SYN-ACK (Synchronize-Acknowledge): Alla ricezione del pacchetto SYN, il server risponde con un pacchetto SYN-ACK. Questo pacchetto conferma il SYN del client e include il numero di sequenza iniziale del server.
Pacchetto ACK (Acknowledge): Infine, il client invia un pacchetto ACK al server, confermando il SYN-ACK del server. A questo punto, la connessione è stabilita e il client e il server possono iniziare a scambiarsi dati.
Ecco un esempio di VPN che stabilisce una connessione TCP:
Schermata Wireshark dell’handshake a tre vie che stabilisce una connessione TCP.
L’Handshake a tre vie assicura che il client e il server siano pronti a comunicare e sincronizza i numeri di sequenza utilizzati per tenere traccia dei dati inviati.
Questo processo aiuta a prevenire problemi di connessione, perdita di dati e altri problemi che possono verificarsi durante la creazione iniziale della connessione.
Una volta completato l’Handshake, il client e il server possono avviare uno scambio di dati affidabile e full-duplex.
Che cos'è l'UDP?
A differenza di TCP, UDP è un protocollo senza connessione. I dati vengono inviati, ma non esiste un meccanismo di feedback per confermare che siano stati ricevuti correttamente. UDP è più simile all’invio di un messaggio postale: lo si mette nella cassetta della posta e ci si dimentica di esso.
Quando si utilizza l’UDP:
I pacchetti di dati possono essere persi durante il transito e il mittente non se ne accorge.
I pacchetti inviati a un ricevitore sovraccarico vengono abbandonati (persi) e non possono essere recuperati.
Non esiste un meccanismo di recupero incorporato in UDP per i dati persi o corrotti, ma le applicazioni che utilizzano UDP possono includere i propri meccanismi di recupero.
UDP è inaffidabile rispetto a TCP, ma poiché non deve stabilire e mantenere una connessione, UDP è più veloce di TCP. È ideale per le applicazioni molto sensibili alla latenza, come le videoconferenze e i giochi online.
Un pacchetto occasionalmente perso potrebbe causare un’interruzione, ma è sempre meglio del ritardo che si verificherebbe quando il TCP reinvia il pacchetto.
Utilizzo di Wireshark per verificare il traffico UDP tra le porte 60970 e 12718.
L’UDP ha anche un’intestazione di dimensioni inferiori rispetto al TCP, il che comporta un minor overhead e una maggiore velocità di trasmissione.
Il Domain Name System (DNS) può utilizzare UDP e TCP. Sebbene utilizzi sempre più spesso il TCP a causa dell’aumento dei pacchetti di query, UDP è il protocollo predefinito per garantire la massima velocità possibile.
UDP e TCP: le differenze principali
Sebbene TCP e UDP siano entrambi protocolli di rete che facilitano la comunicazione Internet da host a host, differiscono in modo significativo nel modo in cui trasmettono i dati.
Ecco cinque modi principali in cui questi protocolli differiscono nella pratica:
1. UDP è più veloce di TCP
Abbiamo testato ExpressVPN e NordVPN, le duemigliori VPN del 2024, per vedere come si confrontano le loro velocità quando si utilizza il protocollo OpenVPN con UDP e TCP.
Collegandoci dalla nostra sede centrale negli Stati Uniti ai server negli Stati Uniti, nel Regno Unito e in Australia, abbiamo misurato la velocità di download per ogni VPN e protocollo.
ExpressVPN (Mbps)
NordVPN (Mbps)
Paese
UDP
TCP
Perdita in %
UDP
TCP
Perdita in %
UK
93.74
91.09
3
92.48
93.66
0
USA
61.6
47.11
23.5
85.49
16
81
AUS
75.03
46.68
38
67.28
4.34
93.5
Come mostrano questi dati,l’UDP è solitamente più veloce del TCPe la differenza aumenta con l’aumentare della distanza dal server.
Ciò è dovuto al fatto che il TCP consegna i pacchetti di dati in un flusso ordinato e controllato dagli errori, mentre qualsiasi dato errato o mancante deve essere richiesto nuovamente al computer mittente, con conseguenti ritardi.
Al contrario, i pacchetti UDP hanno un’intestazione più piccola, che consente un maggior carico per connessione, con conseguente aumento della portata.
Di conseguenza, UDP è spesso la scelta preferita per le applicazioni sensibili alla latenza come lo streaming e i giochi.
Utilizzando ExpressVPN,la connessione UDP è stata del 24% più veloce dagli Stati Uniti al Regno Unitoe del 37% più veloce in Australia.
La differenza era ancora più evidente utilizzando NordVPN. Abbiamo persol’81% della nostra velocità di download collegandoci al Regno Unito utilizzando il TCPe il 94% collegandoci all’Australia.
Tuttavia, abbiamo riscontrato che il TCP era marginalmente più veloce dell’UDP quando ci si connetteva a un server NordVPN dello stesso paese.
2. TCP consuma più dati di UDP
Il TCP utilizza più dati rispetto all’UDPperché include più informazioni nell’intestazione di ogni pacchetto di dati.
Ogni pacchetto di dati inviato su Internet ha un’intestazione, come l’indirizzo di una busta. Contiene le informazioni necessarie per far arrivare i dati nel posto giusto e qualsiasi informazione aggiuntiva necessaria per il protocollo.
Entrambi i protocolli includono nell’intestazione le porte di origine/destinazione, la lunghezza del pacchetto e le somme di controllo, ma il TCP aggiunge altri campi per garantire una consegna affidabile:
Numero di sequenza
Numero di conferma
Flag TCP (ad esempio, sincronizzazione, riconoscimento)
Finestra (dimensione del buffer di ricezione)
Puntatore urgente
Opzioni TCP opzionali
Se da un lato il TCP è più affidabile dell’UDP, dall’altro è meno efficiente. Le intestazioni TCP possono superare i 20 byte, rispetto agli 8 byte di UDP.
CONSIGLIO DEGLI ESPERTI:il checksum è un calcolo che viene eseguito sui dati due volte: prima dell’invio e dopo la ricezione. Se il risultato è diverso alla ricezione, significa che i dati sono stati corrotti durante il trasporto.
Il TCP comporta anche un maggior numero di comunicazioni tra il mittente e il destinatario. Infatti, il ricevitore invia un ACK (Acknowledgment) a ogni altro pacchetto ricevuto con TCP e i pacchetti persi vengono inviati nuovamente. Di conseguenza, il TCP utilizza più dati rispetto all’UDP.
Infatti, la nostra analisi dell’utilizzo dei dati VPN ha rilevato che OpenVPN con TCP consuma il 19,96% di dati in più rispetto a chi non utilizza una VPN, contro il 17,23% di OpenVPN con UDP.
Se hai un piano dati mobile in cui paghi ogni gigabyte o hai un limite di dati fisso, utilizzerai la quota più velocemente se usi il TCP.
3. TCP è leggermente più sicuro di UDP
Né UDP né TCP sono protocolli del tutto sicuri: gestiscono semplicemente la trasmissione di pacchetti di dati su Internet.
I problemi di sicurezza sono in genere affrontati da protocolli o applicazioni di livello superiore.
Detto questo, il processo di sequenziamento e di riconoscimento utilizzato nel TCP rende leggermente più difficile per un hacker iniettare dati dannosi rispetto all’UDP senza connessione.
Il TCP, infatti, garantisce che i pacchetti vengano ricevuti nell’ordine corretto e che i dati mancanti o corrotti vengano ritrasmessi.
Tuttavia, in termini pratici, nessuno dei due protocolli presenta problemi di sicurezza significativi se utilizzato con una VPN. Sia il TCP che l’UDP supportano la sicurezza
4. TCP è più affidabile di UDP
Il TCP è più affidabile dell’UDP per una serie di ragioni, alcune delle quali sono già state trattate, come il controllo degli errori più approfondito e l’uso di un Handshake a tre vie per stabilire una connessione.
Un’altra ragione dell’affidabilità del TCP è che, a differenza dell’UDP, utilizza meccanismi di controllo del flusso, il che significa che è molto meno probabile che i pacchetti cadano.
Il TCP impiega un meccanismo di “finestra scorrevole” per gestire la trasmissione dei dati.
Il ricevitore comunica lo spazio disponibile nel buffer per accettare i pacchetti in arrivo.
Il TCP limita quindi il mittente a trasmettere solo fino alla dimensione di questa finestra, a quel punto deve aspettare che il ricevitore segnali che ha più spazio prima di continuare.
Schermata di Wireshark che mostra il controllo di flusso TCP in azione.
Questo processo di controllo del flusso consente a TCP di adattare il ritmo di trasmissione alle capacità del ricevitore, evitando che venga sopraffatto.
Tuttavia, la necessità di attendere questo feedback prima di inviare ogni pacchetto rende il TCP leggermente più lento e meno efficiente del protocollo UDP senza connessione.
Al contrario, UDP trasmette i dati alla velocità più adatta al mittente, senza alcuna considerazione sul controllo di flusso.
Questo può far sì che un server potente bombardi un ricevitore con più flussi di dati consecutivi, superando potenzialmente la sua capacità.
In questo caso, il ricevitore si limita a eliminare i pacchetti UDP in eccesso che non è in grado di elaborare, anziché attendere i segnali di controllo del flusso.
5. UDP supporta il Multicast, TCP no
Il TCP è orientato alla connessione, cioè stabilisce una connessione uno-a-uno tra un client e un server. Questo ha molti vantaggi per una comunicazione affidabile da punto a punto, come quella tra un browser e un server web.
Tuttavia, questa struttura è incompatibile con il Multicast, un tipo di comunicazione di rete utilizzato nelle videoconferenze e nei giochi online, poiché richiede un modello di comunicazione uno-a-molti.
Al contrario, UDP è compatibile con il Multicast perché non ha bisogno di sapere se il destinatario è presente.
La preferenza di UDP per la velocità rispetto all’affidabilità è ideale per il Multicast, in quanto trasmette i dati senza attendere la conferma di ricezione. Eventuali pacchetti caduti causano semplicemente piccoli problemi nel flusso in tempo reale, senza influenzare la trasmissione complessiva.
UDP vs TCP: qual è il migliore?
Se la tua VPN ti offre la possibilità di scegliere tra UDP e TCP, prova prima l’UDP. UDP è più veloce di TCP e puoi comunque utilizzare TCP per attività come la navigazione web all’interno del tunnel VPN UDP.
Consigliamo di utilizzare TCP con OpenVPN solo se UDP è bloccato da un firewall o se la connessione è inaffidabile.
Il protocollo di comunicazione migliore dipende dal motivo per cui stai utilizzando una VPN. In questa sezione ti spiegheremo se UDP o TCP sono migliori per lo streaming, la navigazione in generale, l’aggiramento della censura e l’uso generale della VPN.
Streaming e videogiochi
Vincitore: UDP
I videogiochi e lo streaming utilizzano normalmente connessioni UDP. Questo perché è meglio saltare una piccola parte dello streaming piuttosto che subire un ritardo nel tentativo di recuperarla.
Per questo motivo, ti consigliamo di scegliere UDP se utilizzi una VPN per lo streaming o per giocare ai videogiochi.
Abbiamo ottenuto uno streaming ad alta risoluzione più consistente utilizzando UDP rispetto a TCP.
Se utilizzi OpenVPN TCP, la VPN potrebbe tentare di recuperare inutilmente i pacchetti di dati persi. Se aspetti che i pacchetti persi vengano reinviati, una partita o uno streaming in diretta saranno già andati avanti quando il tuo schermo verrà aggiornato.
Aggirare i Firewall e la censura
Vincitore: TCP
Se devi eludere la censura o aggirare un Firewall, scegli TCP per OpenVPN.
Utilizzando il TCP sulla porta 4433, il traffico VPN ha lo stesso aspetto del traffico web crittografato HTTPS. Bloccare la porta TCP 443 significherebbe bloccare tutti i siti web di e-commerce, quindi questo traffico è solitamente consentito attraverso i Firewall.
Alcune VPN supportano anche la porta TCP 80, utilizzata per il traffico web non crittografato, che passa senza problemi attraverso i Firewall.
Nella nostra esperienza, i protocolli TCP si sono dimostrati più affidabili nell’aggirare la censura web.
Alcuni studenti hanno riferito che usando OpenVPN con TCP sono riusciti a superare i Firewall del campus, mentre con UDP no.
Il TCP può funzionare anche nei paesi in cui le VPN sono ufficialmente bloccate, ma sappi che il tuo traffico VPN potrebbe comunque essere identificato grazie alla Deep Packet Inspection. Il TCP da solo non ti proteggerà se l’uso della VPN non è legale o sicuro nel tuo paese.
Prova sempre prima l’UDP per OpenVPN. È più veloce e le tue applicazioni possono comunque avere il TCP nel tunnel interno se ne hanno bisogno, per garantire l’affidabilità.
OpenVPN Inc. – l’azienda che crea il software VPN basato sul protocollo OpenVPN – afferma che:
“Il protocollo OpenVPN funziona al meglio con il protocollo UDP. E per impostazione predefinita, le connessioni… sono preprogrammate per provare sempre prima l’UDP e, se questo fallisce, provare il TCP.”
Detto questo, se la tua VPN non funziona con UDP a causa di problemi di rete, potresti notare che usare OpenVPN con TCP risolve il problema. Il TCP è stato progettato per compensare le connessioni di rete inaffidabili.
E-mail e navigazione web
Vincitore: UDP
Ti consigliamo di utilizzare OpenVPN UDP quando svolgi attività come l’invio di e-mail e la navigazione web.
Un’idea sbagliata comune è quella di utilizzare un tunnel VPN basato su TCP per le applicazioni che necessitano di maggiore affidabilità. Non è necessario e spesso non è una buona idea. La connessione interna ha ancora il TCP se ne ha bisogno – il tunnel VPN non ha bisogno di aggiungere un altro livello.
Se avvolgi un tunnel VPN TCP attorno a una connessione TCP, corri il rischio di “TCP Meltdown”. Questo accade quando entrambi i livelli del TCP cercano di compensare i pacchetti persi. Si verifica perché i livelli TCP interno ed esterno hanno timer indipendenti utilizzati per decidere quando un pacchetto viene perso.
Come funziona OpenVPN con TCP e UDP?
OpenVPN è un protocollo VPN open source utilizzato nella maggior parte delle VPN sicure. In molti casi, gli utenti possono scegliere tra OpenVPN UDP e OpenVPN TCP. In questa sezione spiegheremo come questa scelta influisce sulle funzionalità della VPN.
Le funzioni UDP e TCP di NordVPN si trovano nel menu del protocollo.
Innanzitutto, immagina di navigare su una pagina web senza una VPN. La connessione tra il tuo dispositivo e il server web utilizzerà il TCP perché è più affidabile dell’UDP. Ecco come funziona:
Come viene instradato il traffico TCP attraverso Internet senza una VPN.
Quando inizi a utilizzare una VPN, le nuove comunicazioni vengono avvolte in un tunnel OpenVPN tra il tuo dispositivo e il server VPN. Il tunnel si collega tra il tuo dispositivo e il server VPN e può utilizzare UDP o TCP.
Come OpenVPN UDP o TCP avvolge il traffico TCP.
Quando modifichi le impostazioni della tua VPN, decidi quale Wrapper utilizzare. Quale protocollo è meglio utilizzare?