Google QUIC protocol: scopriamolo nel dettaglio.

Aggiornamento: 16 ore fa


Logo del Google QUIC protocol

Ne avevamo parlato di recente, con un breve articolo sul Google QUIC protocol (acronimo di Quick UDP Internet Connections), di come Google voglia con questo nuovo protocollo internet, sostituire il vecchio TCP, non più adeguato e sicuro per i tempi moderni.


Siccome l'argomento ha destato molto interesse su Red Hot Cyber, cerchiamo di approfondire il tema con un articolo mirato che possa farci comprendere questo nuovo protocollo come funzioni, partendo dai requisiti di progettazione.



I problemi del TCP e il Google QUIC protocol

Google QUIC protocol è un protocollo di rete sperimentale a livello di trasporto originariamente progettato da Google. L'obiettivo generale è quello di ridurre la latenza rispetto a quella dell'attuale TCP.


Sebbene QUIC sia in gran parte invisibile agli utenti finali se non attraverso prestazioni migliorate, ha anche un sottile impatto sul modo in cui le reti vengono gestite, sulla riservatezza delle connessioni e sull'evoluzione futura. Di conseguenza, è importante che gli architetti e gli amministratori di rete comprendano questi impatti e si preparino ad essi.


Oggi tutti quanti noi vogliamo che ogni applicazioni si carici istantaneamente e vogliamo che sia sicura. Sebbene lo standard HTTP Secure (o HTTPS) si dimostri un alleato affidabile nella protezione della privacy degli utenti, questo registra un rallentamento "biblico" dei tempi di caricamento a causa dell’handshake TLS, insito nello scambio di chiavi e certificati.



Tutte queste cose oggi sono degli ostacoli importanti alla fluidità delle comunicazioni, e in ottica di banda ultra-larga e di 5G, sicuramente è necessario un ammodernamento, non solo delle componenti hardware, ma anche dello stack dei protocolli di rete. Tutti questi problemi, sono stati convertiti in requisiti di implementazione per la progettazione di QUIC.


La filosofia di QUIC protocol

Il design di QUIC è focalizzato sulla riduzione al minimo della latenza nella fase di configurazione della connessione, sulla protezione dei pacchetti e delle intestazioni con la crittografia e sulla massimizzazione della capacità di QUIC di evolversi.


Mentre TCP è tipicamente implementato nel kernel del sistema operativo, QUIC è tipicamente implementato come parte di un'applicazione, come ad esempio un browser. Ciò consente un rapido ritmo di adozione ed evoluzione futura. E dato l'uso di intestazioni crittografate, ci si aspetta che la mancanza di aggiornamenti non sia un deterrente così grande per l'evoluzione in QUIC come lo era per il TCP.



Detto questo, la rete e gli endpoint cooperano per fornire il servizio più efficiente per l'applicazione, ciascuno con il proprio ruolo. Avere alcune informazioni sull'efficienza delle connessioni può essere utile nella gestione della rete sottostante. Ad esempio, se le connessioni subiscono ritardi eccessivi, ciò può essere un'indicazione di un problema da qualche parte nella rete. O almeno esiste un'opportunità per mettere punto la rete in qualche modo.


Il design di QUIC protocol, mantiene private tutte le informazioni sulle connessioni che trasporta. Ma ha la capacità di esporre i tempi di andata e di ritorno per le connessioni, consentendo alle reti sottostanti di osservare la situazione e la latenza per il traffico trasportato, almeno da un punto di vista statistico. Il cosiddetto "Spin Bit" nell'intestazione QUIC viene utilizzato per trasmettere questi dati.


La standardizzazione

Il lavoro di standardizzazione per QUIC avviene presso l'Internet Engineering Task Force o IETF, nel gruppo di lavoro QUIC. Il gruppo sta ultimando i dettagli finali del primo standard. Il lavoro del gruppo avviene principalmente sulla mailing list, ma alcune volte all'anno si incontrano di persona per una sessione attiva faccia a faccia.



Questo è un tipico approccio IETF (The Internet Engineering Task Force) agli standard. Il lavoro è completo solo quando i prodotti effettivi funzionano in situazioni diverse e l'uno contro l'altro e la La IETF ha prodotto una serie di protocolli che mirano a un trasporto più veloce e migliore per Internet.


Tuttavia, i protocolli più recenti come DCCP (Datagram Congestion Control Protocol) e SCTP (Stream Control Transmission Protocol) hanno avuto problemi di distribuzione. I middlebox come NAT e firewall, di solito bloccano tutto il traffico che non riconoscono e impongono persino regole a protocolli già noti, portando all'ossificazione della rete.


La scelta di UDP come protocollo di base per QUIC è stata principalmente quella di ottenere una latenza inferiore sia nella configurazione della connessione che nelle fasi di ripristino. Rimaneva la domanda se UDP potesse penetrare in Internet, poiché c'erano problemi con l'utilizzo limitato di UDP nelle reti e l'associazione NAT UDP.


Nel luglio 2015 Google ha presentato le misurazioni mostrando che QUIC ha funzionato per oltre il 92 percento delle connessioni degli utenti Internet ai servizi Google.



I vantaggi che introduce QUIC

Ora andremo a comprendere i vantaggi di QUIC, ovviamente paragonandoli al protocollo TCP che ci servirà da confronto, anche se, nonostante abbia fatto da apripista per l’ideazione di questo ambizioso protocollo di trasporto.