“Rispetto al passato l’Internet di oggi è una bestia [molto più problematica da gestire] […] Gli sforzi di Google con BBR sono l’ultimo tentativo di [mandare in pensione] uno dei più spinosi problemi prestazionali [legati ai vecchi protocolli] che affliggono Internet “ ha affermato un analista di 451 Research sull’interessante progetto di Mountain View.
Stiamo parlando di BBR o Bottleneck Bandwidth and Round-trip propagation time“, un algoritmo pensato per gestire il traffico Internet prevenendo inopportune congestioni e/o velocizzando il ripristino della “normale circolazione dei dati”. BBR è stato presentato ufficialmente nel 2016 (con annesso un dettagliato paper, clic qui per consultarlo) ma è rapidamento entrato in azione in due (a breve tre) dei servizi più remunerativi della compagnia: il motore di ricerca Google e servizi annessi, YouTube ed a breve Cloud Platform.
Partiamo innanzitutto daallo schema pubblicato sul blog ufficiale della compagnia:
Gli algoritmi attualmente in uso furono ideati negli anni 80 del secolo scorso. Nell’arco di quasi quarant’anni la rete e la tecnologia in generale hanno fatto passi da gigante. Il protocollo TCP, appoggiandosi a questi vecchi algoritmi, interpreta la perdita di pacchetti (packet loss) come inequivocabile segnale di una congestione in corso. Visto che non tutti i pacchetti dati sono giunti a destinazione, quelli successivi inizieranno ad essere inviati ad una velocità minore – al fine di normalizzare la situazione. La struttura di Internet si è tuttavia modificata negli ultimi anni, osserva Data Center Knowledge:
gli ultimi chilometri [dei sistemi di connettività alla Rete] sono stati configurati con generosi buffer mentre i link a lungo raggio si appoggiano a switch commodity con buffer [risibili]. Questo [mix di elementi si traduce in una Rete intasata sia dai ritardi delle code (presso gli ampi buffer) che dall’instabilità degli improvvisi picchi di traffico (presso i backbone)].
Risultati e potenzialità dell’algoritmo
Secondo quanto afferma Data Center Knowledge, gli ingegneri Google sono riusciti in un’impresa considerata fino ad oggi impossibile, ovvero determinare la velocità ideale per l’invio dei dati tramite algoritmo. BBR, afferma Google, esegue le stime basandosi sia sul roundtrip time che sulla banda del link più lento – che agisce da “collo di bottiglia” per la connessione:
“per una determinata connessione di rete, [BBR] utilizza le più recenti misurazioni dei tempi di consegna e del roundtrip time per costruire un modello che includa sia [i valori più alti di banda che quelli più bassi di roundtrip delay registrati di recente].”
Ma all’atto pratico in cosa si traducono i complessi algoritmi BBR? La compagnia ha dichiarato che BBR è sicuramente più adatto a lavorare con i protocolli più recenti come HTTP/2 e che, rispetto ai vecchi algoritmi, si può assistere ad un incremento sorprendente del throughput rate – fino a 2700 volte i valori del TCP standard in un test effettuato su connessione transoceanica con link da 10GB e latenza 100 ms.
BBR, come si diceva in apertura, è stato implementato con successo anche su YouTube dove la gestione del traffico è cruciale per garantire una user experience ottimale – gli utenti si aspettano di caricare in mezzo secondo ogni video e di non assistere a fastidiose interruzioni. BBR, adoperato come algoritmo sender side, ha migliorato in modo non trascurabile il throughput di YouTube – come dimostra l’infografica qui sotto – senza che Google sia dovuta intervenire sulla strumentazione di rete e/o i propri servizi.
BBR nel cloud
Quando si parla di traffico di dati online non può non venire in mente il cloud. Il terreno di prova ideale per l’algoritmo Google, visti anche gli interessi di Mountain View nel settore IaaS, non poteva quindi che essere Google Cloud Platform (GCP).
I servizi Google che utilizzeranno BBR otterranno, afferma Google, tangibili miglioramenti: latenze minori e maggiore responsività delle applicazioni (cloud storage), distribuzione più efficace dei contenuti (content delivery network) e migliore instradamento dei pacchetti (Cloud Load Balancing) solo per citare alcuni esempi. Ai più esperti Google offre infine la possibilità di usare BBR nelle proprie applicazioni IaaS (eseguite su Compute Engine) ma, non essendo ancora presente nelle release mainstream del kernel Linux, i diretti interessati dovranno ricorrere ad una kernel personalizzato (custom).