TCP (Transfer Control Protocol), ad oggi il protocollo di riferimento per gran parte delle applicazioni di rete, inizializza una connessione sulla base di uno schema che prevede tre differenti passaggi: da trasmittente a ricevente, da ricevente a trasmittente per poi eseguire nuovamente la prima fase. In pratica ogni volta che viene lanciata una connessione si ha la contestuale generazione di un un ritardo dovuto al fatto che i pacchetti di dati non devono essere soltanto "spediti" ma anche "rispediti".

Ad incrementare le latenza vi è poi il ricorso a TLS (Transport Layer Security) che interviene per rendere sicure le connessioni HTTPS attraverso la cifratura; in sostanza TLS determina la necessità di due nuovi passaggi nella spedizione dei pacchetti da trasmittente a ricevente e viceversa.

In UDP (User Datagram Protocol), invece, una comunicazione è considerata in modalità predefinita come giunta al destinatario, questo significa che si avranno latenze nettamente inferiori; rimane però il problema di utilizzare un metodo che possa confermare l'avvenuta consegna dei pacchetti. Ecco quindi l'idea di concepire una soluzione come QUIC.

Quest'ultimo è stato implementato per inizializzare una connessione e negoziare i parametri TLS tramite 1 o 2 pacchetti. Si dovrebbe ottenere quindi un modello nel quale, a seconda del fatto che ci si connetta o meno ad un host conosciuto, si avrà un solo passaggio tra trasmittente e ricevente o al massimo due considerando la direzione contraria.

QUIC nasce in pratica dalla combinazione di SPDY, protocollo per il trasporto di contenuti creato anch'esso da Google con lo scopo di veicolare HTTP, e HTTP2 (per il multiplexing), ma lavora con UDP che non dipende dall'ordine con cui i pacchetti vengono ricevuti. Ciò vuol dire che pur ipotizzando la possibilità che dei dati vengano perduti, ciò andrà a danno di risorse specifiche (ad esempio un file JavaScript o CSS) e non determinerà un blocco dell'intera connessione.

Via QUIC

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *