Uno degli aspetti più critici quando si parla di reti VPN è quello legato alle prestazioni.
Spesso scambiare informazioni con i server remoti facendo in modo che i pacchetti dati compiano una strada diversa (“rotta”) rispetto a quella seguita normalmente può determinare cali di performance con la banda che si riduce e la latenza che tende ad aumentare.
Quando si sceglie un servizio VPN e si decide di attivarlo la scelta del protocollo, OpenVPN, WireGuard, Shadowsocks, IKEv2, Lightway, conta molto. Le differenze di prestazioni sono figlie della VPN utilizzata, della sua architettura, della posizione fisica del server di uscita, del livello di congestione sulla rete e sui singoli server oltre che del protocollo utilizzato.
ProtonVPN è un servizio VPN ideato da alcuni ricercatori del CERN di Ginevra: vanta una lunga storia per quanto riguarda lo sviluppo di soluzioni innovative a problemi complessi compresi i tentativi di blocco delle VPN e la neutralizzazione dei componenti che tracciano gli utenti durante la navigazione online.
VPN Accelerator è una nuova tecnologia presentata da ProtonVPN che in alcuni casi è in grado di migliorare le prestazioni del 400%.
Abilitata per impostazione predefinita in tutti i client ProtonVPN VPN Accelerator è compatibile con tutti i protocolli supportati: OpenVPN TCP/UDP, WireGuard e IKEv2.
Come funziona VPN Accelerator
La velocità della CPU del server è spesso un fattore limitante perché molti popolari protocolli VPN, OpenVPN compreso, non usano il multithreading. Questo significa che la potenza della CPU di un singolo core sul processore del server diventa il fattore limitante per la velocità.
ProtonVPN risolve questo problema utilizzando più processi OpenVPN per server con l’obiettivo di sfruttare appieno l’architettura dei processori multicore. Tuttavia, questa tecnica da sola non risulta sufficiente per risolvere il problema a meno che il carico sia adeguatamente distribuito tra i processi multipli.
Gli ingegneri di ProtonVPN hanno ripensato il funzionamento del protocollo OpenVPN in maniera tale che le sessioni possano essere uniformemente distribuite tra tutti i processi in esecuzione eliminando la possibilità che un singolo thread possa sovraccaricarsi. Tecniche simili sono state applicate anche sugli altri protocolli VPN.
Ci sono però altri aspetti che influenzano negativamente le prestazioni di una VPN.
Il protocollo TCP trasporta la maggior parte del traffico Internet mondiale. Il cosiddetto goodput (quantità di dati utili trasferiti nell’unità di tempo sul canale fisico di comunicazione tra due nodi) è inversamente proporzionale alla latenza e alla perdita di pacchetti. Per questo motivo che tutti gli speed test di solito selezionano i server fisicamente più vicini all’utente.
Stabilire connessioni a server molto distanti può portare a performance scadenti: ciò non ha nulla a che fare nello specifico con l’utilizzo di una VPN ma la connessione a una rete VPN può amplificare questo problema aumentando la lunghezza del percorso end-to-end dal dispositivo dell’utente fino al server da raggiungere (ne abbiamo fatto cenno in apertura).
Per fare un esempio estremo se ci si trova in Italia connessi a un server di uscita della VPN posto in Nuova Zelanda e si accedesse a un sito ospitato su un server negli USA i pacchetti dati viaggerebbero per tutto il mondo con la latenza che schizzerà a oltre 600 ms (RTD, round trip delay).
VPN Accelerator affronta il problema suddividendo il percorso di 600 ms in percorsi più brevi (per esempio, due percorsi di 300 ms). Un goodput migliore è possibile su ciascuno dei percorsi più brevi con il risultato che le prestazioni vengono automaticamente ottimizzate sull’intero percorso.
Per raggiungere velocità ancora più elevate VPN Accelerator utilizza anche un algoritmo di controllo del flusso TCP chiamato BBR.
Sui percorsi più lunghi o sulle reti congestionate spesso si verifica la perdita di un certo numero di pacchetti. BBR reagisce velocemente alla perdita di pacchetti e permette di raggiungere più rapidamente la velocità di trasferimento dati quando inizia uno scambio di dati impegnativo.
Per i server ad alta latenza o quando c’è perdita di pacchetti l’intervento di BBR aumenta a dismisura le prestazioni.
Infine, la maggior parte degli algoritmi per il rilevamento della congestione su protocollo TCP sono piuttosto sensibili a ritardi improvvisi nell’inoltro dei pacchetti. È quindi importante ridurre qualsiasi situazione di stallo in cui i pacchetti vengono accodati o scartati.
Il team di ricerca e sviluppo di ProtonVPN ha affrontato anche i problemi specifici del protocollo che possono portare a situazioni di stallo. Alcune inefficienze nel codice di base di OpenVPN e IKEv2 possono causare occasionali blocchi.
L’ottimizzazione delle comunicazioni a livello di protocollo, dello stack di rete Linux e l’utlizzo di server fisici (anziché container o macchine virtuali) ha quindi permesso di abbassare ulteriormente la latenza e aumentare la velocità di trasferimento dati.
Maggiori informazioni su VPN Accelerator sono disponibili in queste pagine.