it-swarm.dev

Qual è la differenza tra VPN su TCP vs UDP?

Il mio provider VPN mi dà la possibilità di utilizzare UDP e TCP per le connessioni. Secondo questo sito UDP è più veloce su brevi distanze. Sono nello stesso continente di il mio server, è considerato a breve distanza? Esiste un test che posso eseguire per confrontare i due?

37
David Drohang

Una VPN serve per racchiudere i pacchetti IP grezzi in una sorta di "tunnel" tra due siti (uno dei siti potrebbe essere ridotto a un computer, ad esempio il tuo). TCP è un protocollo che si trova al di sopra dell'IP e utilizza pacchetti IP (che sono "inaffidabili": possono perdersi, duplicati, riordinati ... ) per fornire un canale bidirezionale affidabile per i byte di dati, in cui i byte raggiungono sempre il destinatario nell'ordine in cui sono stati inviati. TCP lo fa utilizzando un assortimento complesso di metadati con riconoscimenti e riemissioni esplicite. Pertanto, TCP incorre in un leggero sovraccarico della rete.

Se la VPN utilizza TCP, allora your own TCP le connessioni useranno i pacchetti IP inviati attraverso la VPN, quindi finirai per pagare il TCP sovraccarico due volte. Una VPN basata su UDP ha quindi il potenziale potenziale per prestazioni leggermente migliori. D'altra parte, la protezione crittografica della VPN richiede una gestione dello stato, che può essere più difficile per l'implementazione della VPN quando si utilizza UDP, quindi è possibile che la VPN basata su UDP abbia un sovraccarico aggiuntivo con cui far fronte.

Pertanto, la situazione delle prestazioni non è chiara e dovresti misurare.

44
Thomas Pornin

Puoi provare a scaricare un file con uno dei due metodi e vedere se le velocità di download sono drasticamente diverse.

Il compromesso tra TCP e UDP (indipendentemente dall'utilizzo della VPN) è sempre lo stesso: si sacrifica la velocità per l'affidabilità poiché UDP è senza connessione e il server invia i dati teoricamente (a seconda dell'implementazione) non importa se raggiunge la destinazione o no. Questo va bene in cose come i giochi su Internet in cui ogni pacchetto potrebbe essere un movimento di un utente, ma in cose come la crittografia in cui i bit mancanti di dati significa che potrebbe essere necessario un intero messaggio rispedito, TCP sarebbe più gradito poiché il tempo guadagnato usando UDP potrebbe essere perso dovendo rispedire un intero messaggio.

Essere nello stesso continente non è generalmente considerato a breve distanza. Vorrei considerare di trovarmi nello stesso edificio, forse nella stessa città a breve distanza ma non molto più lontano. Più Luppolo deve passare attraverso un pacchetto, più è probabile che venga corrotto in qualche punto lungo il percorso. Se vuoi vedere quanti salti ci vogliono per arrivare a destinazione, prova a eseguire un comando "traccia percorso".

Spero di averti aiutato.

13
NULLZ

UDP è riscosso per le VPN, il sovraccarico è inferiore. Questa discussione sull'affidabilità di UDP è controversa. Dato che stiamo sintonizzando, non c'è alcuna differenza tra un datagramma TCP perso su Internet aperto e un datagramma TCP perso in un TCP tunnel o a TCP datagramma perso in un tunnel UDP. Tutto verrà ritrasmesso.

Un problema con i tunnel UDP è che sono apolidi, questo rende più difficile proteggere il firewall. I pacchetti di risposta non sono diversi dai pacchetti di origine. Dal punto di vista della sicurezza, TCP sono più facili.

11
mgjk

Questo è davvero lo stesso di TCP e UDP normalmente lo sono. TCP è un sistema in cui ogni pacchetto è garantito per arrivare in ordine. Se un pacchetto viene ricevuto fuori servizio, viene archiviato e se un pacchetto non viene visualizzato per riempire un vuoto, viene richiesto nuovamente. Ciò garantisce un flusso completo senza dati persi, ma significa che una connessione può essere trattenuta da uno pacchetto mancante mentre le informazioni vengono nuovamente richieste.

UDP d'altra parte non fornisce tale garanzia e le informazioni arriveranno nell'ordine in cui arrivano e saranno elaborate come tali. Non sono sicuro delle implicazioni di sicurezza esattamente, ma probabilmente avresti comunque un ritardo simile in UDP se utilizzassi un codice di flusso concatenato non parallelizzabile poiché avrebbe bisogno che tutti i pacchetti arrivassero in ordine, ma questo potrebbe anche essere superato da utilizzando una modalità di crittografia che supporta la decrittografia parallela.

Quindi, in sostanza, l'unica cosa che VPN aggiunge al tipico mix TCP/UDP è che limita la natura di quali modalità di crittografia possono essere usate un po ', ma è altrimenti il ​​tipico compromesso.

3
AJ Henderson

La reale distanza fisica da punto a punto non significa nulla nel mondo di Internet, tutto dipende dalle interconnessioni ISP. Una volta ho eseguito il ping di un server nel rack accanto a me e questo ha avuto un ritardo di 300 ms perché i pacchetti sono stati instradati attraverso il Pacifico e viceversa perché era così che gli ISP erano collegati tra loro. Se i server fossero stati collegati direttamente, il ritardo sarebbe stato nei microsecondi. I server erano a pochi centimetri l'uno dall'altro, ma la distanza effettiva percorsa dai pacchetti di andata e ritorno su tutti i Luppoli era dell'ordine di 25.000 miglia! Questo è un esempio estremo, ma dimostra che non puoi fidarti della distanza.

Invece della distanza è necessario osservare la latenza, ovvero il tempo di andata e ritorno necessario per rispondere a un'eco inviata alla destinazione VPN. Per quanto riguarda il tempo di andata e ritorno renderebbe UDP una scelta migliore di TCP non lo so, e non è così semplice in quanto vi sono altri fattori:

  • perdita di pacchetti e jitter: UDP è molto sensibile alla perdita di pacchetti e al jitter (pacchetto fuori ordine) e non ha alcun meccanismo di correzione incorporato come TCP fa. Qualsiasi latenza o jitter eroderà qualsiasi vantaggio di usare UDP su TCP
  • Efficienza dello stack IP del sistema operativo: l'applicazione VPN utilizzerà lo stack TCP/IP del sistema operativo, che elaborerà anche i pacchetti UDP. Gran parte dell'efficienza relativa di TCP contro UDP dipenderà dal modo in cui il sistema operativo (e qualsiasi filtro pacchetti o firewall nel modo) proceda TCP contro UDP
  • Codifica dell'applicazione: la qualità dell'applicazione VPN farà una grande differenza, così come il software VPN sul dispositivo a cui ci si sta connettendo. Ad esempio, come viene recuperato dai pacchetti UDP persi? Può richiedere ritrasmissioni o fa affidamento sulle applicazioni a monte per richiedere ritrasmissioni?

Ci sono troppi fattori per darti una risposta definitiva in quanto dipende da troppi fattori. Dovrai semplicemente provare entrambi i metodi e vedere.

2
GdD