Qual è la differenza tra VPN su TCP vs UDP?

34

Il mio provider VPN mi offre l'opzione tra l'uso di UDP e TCP per le connessioni. Secondo questo sito UDP è più veloce su brevi distanze. Sono nello stesso continente del mio server, è considerata una breve distanza? C'è un test che posso eseguire per confrontare i due?

    
posta David Drohang 10.01.2013 - 05:50
fonte

5 risposte

41

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

Se la VPN utilizza TCP, allora le tue connessioni TCP personali useranno i pacchetti IP inviati attraverso la VPN, quindi finirai per pagare l'overhead TCP due volte. Una VPN basata su UDP ha quindi il potenziale per prestazioni leggermente migliori. D'altra parte, la protezione crittografica della VPN richiede una gestione dello stato, che potrebbe essere più difficile per l'implementazione della VPN quando si utilizza UDP, quindi è possibile che la VPN basata su UDP abbia un ulteriore sovraccarico da affrontare.

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

    
risposta data 10.01.2013 - 13:23
fonte
12

Potresti provare a scaricare un file con entrambi i metodi e vedere se le velocità di download sono drasticamente diverse.

I trade-off tra TCP e UDP (indipendentemente dall'utilizzo della VPN) sono sempre gli stessi:  Sacrifichi la velocità per l'affidabilità poiché UDP non ha connessione e il server che invia i dati in teoria (a seconda dell'implementazione) non si preoccupa se raggiunge o meno la destinazione. Questo va bene in cose come i giochi su Internet in cui ogni pacchetto potrebbe essere un movimento da parte di un utente, ma in cose come la crittografia in cui mancano bit di dati significa che potrebbe essere necessario inviare nuovamente un intero messaggio, TCP sarebbe più gradito come il tempo acquisito utilizzando UDP potrebbe essere perso da dover inviare nuovamente un intero messaggio.

Essere sullo stesso continente non è generalmente considerato una breve distanza. Prenderò in considerazione di trovarmi nello stesso edificio, forse nella stessa città di una breve distanza ma non molto più lontano di così. Maggiore è il numero di hop che un pacchetto deve attraversare, maggiore è la probabilità che venga danneggiato in qualche punto lungo il percorso. Se vuoi vedere quanti luppoli ci vogliono per arrivare a destinazione, prova a eseguire un comando "tracciare la traccia".

Spero di averti aiutato.

    
risposta data 10.01.2013 - 07:05
fonte
9

UDP è perferito per VPN, l'overhead è inferiore. Questa discussione sull'inaffidabilità di UDP è discutibile. Dal momento che ci stiamo sintonizzando, non c'è differenza tra un datagramma TCP perso su Internet aperto e un datagramma TCP perso in un tunnel TCP o un datagramma TCP perso in un tunnel UDP. Tutto verrà ritrasmesso.

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

    
risposta data 10.01.2013 - 20:16
fonte
3

Questo è esattamente lo stesso di TCP e UDP. TCP è un sistema in cui ogni pacchetto è garantito per arrivare in ordine. Se un pacchetto viene ricevuto in ordine, viene memorizzato e se un pacchetto non viene visualizzato per riempire un intervallo, viene richiesto nuovamente. Ciò garantisce un flusso completo senza perdita di dati, ma significa che una connessione può essere bloccata da un pacchetto mancante mentre le informazioni vengono nuovamente richieste.

UDP d'altra parte non garantisce tale garanzia e le informazioni arriveranno in qualsiasi ordine arrivino e saranno elaborate come tali. Non sono sicuro delle implicazioni sulla sicurezza, ma probabilmente si otterrebbe un ritardo simile in UDP se si utilizza un cifrario di flusso concatenabile non parallelizzabile poiché sarebbe necessario che tutti i pacchetti arrivassero in ordine, ma questo potrebbe essere superato anche da utilizzando una modalità di crittografia che supporta la decrittazione parallela.

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

    
risposta data 10.01.2013 - 15:39
fonte
2

La distanza fisica da punto a punto non significa nulla nel mondo di Internet, tutto dipende dalle interconnessioni dell'ISP. Una volta ho eseguito il ping di un server nel rack accanto a me e aveva un ritardo di 300 ms perché i pacchetti venivano instradati attraverso il Pacifico e viceversa perché era così che gli ISP erano connessi 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 per tutto il luppolo era dell'ordine di 25.000 miglia! Questo è un esempio estremo, ma dimostra che non ci si può fidare della distanza.

Invece di distanza è necessario considerare la latenza, ovvero il tempo di andata e ritorno necessario per ricevere un eco inviato alla destinazione VPN a cui rispondere. Per quanto riguarda il tempo di andata e ritorno, l'UDP sarebbe una scelta migliore di TCP, non lo so, e non è così semplice dato che ci sono altri fattori:

  • perdita di pacchetti e jitter: UDP è molto sensibile alla perdita di pacchetti e al jitter (pacchetto fuori uso) e non ha meccanismi di correzione integrati come TCP. Qualsiasi latenza o jitter eroderà qualsiasi vantaggio dell'uso di 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 rispetto a UDP dipenderà da quanto bene il sistema operativo (e qualsiasi filtro o firewall di pacchetti nel modo) elabora TCP rispetto a UDP
  • Codifica dell'applicazione: la qualità dell'applicazione VPN farà una grande differenza, così come il software VPN sul dispositivo a cui ci si connette. Ad esempio, come si recupera dai pacchetti UDP persi? Può richiedere ritrasmissioni o si affida alle applicazioni upstream 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.

    
risposta data 10.01.2013 - 14:36
fonte

Leggi altre domande sui tag