12 settembre 2011

[Google] Ottimizzare i DNS per un web più veloce


Come forse avrete letto, abbiamo più volte posto l’accento su come Google consideri sempre di più un fattore critico la velocità su internet.
Ho scritto appositamente “su” internet anziché “di” internet perché questo aspetto rappresenta un tipo di approccio molto interessante che Google ha in questo settore.
Sostanzialmente Google intende lavorare per sfruttare al massimo il mezzo come dato (internet), ottimizzando le tecnologie che ad esso si appoggiano.


Ad un livello molto alto della catena abbiamo più volte visto Google incentivare (anche attraverso velate allusioni alla parametrizzazione nel ranking) i content provider ad ottimizzare i propri siti web per rispettare criteri di velocità.
Ad un livello inferiore abbiamo visto come Google abbia introdotto i propri DNS pubblici nel 2009, i Google Public DNS,  (prima per indirizzi IPv4 ed ora anche IPv6) con lo scopo di lavorare sul protocollo per aumentare la velocità di risoluzione delle richieste di pagine web da parte degli utenti.
Oggi Google e OpenDNS si sono uniti in un progetto che punta proprio sui DNS per migliorare la velocità di fruizione del web.
Il progetto prende infatti il nome di Global Internet Speedup, o anche A Faster Internet.
Ma cosa sono i DNS e perché giocano un ruolo importante nella velocità del web?
I DNS (Domain Name System) sono stati spesso paragonati all’elenco telefonico del web poiché convertono nomi di dominio comprensibili agli esseri umani (www.google.it) in un indirizzo IP (74.125.39.105) al quale i computer possono connettersi.
Come nel caso di Google (e di tutti i suoi domini) può capitare che un sito web esista in moltissimi server contemporaneamente nel mondo. Questo fatto implica che per ogni utente esista un luogo migliore a cui connettersi per ogni dato sito. Per esempio, per risolvere www.google.it è più conveniente per un utente italiano rivolgersi ad un server di Google che si trova per esempio in Finlandia, piuttosto che ad un server negli Stati Uniti.
Sostanzialmente si tratta di ridurre la latenza con particolare attenzione verso i siti con elevata richiesta di banda, come per esempio i siti di streaming video tipo YouTube.
Per ottenere questo risultato il gruppo di aziende che partecipa al Global Internet Speedup hanno proposto una modifica al protocollo DNS che sfrutta il protocollo eDNS (una estensione dei DNS).
Il funzionamento prevede che una parte troncata dell’indirizzo IP dell’utente venga inclusa nella richiesta DNS. La parte di IP serve poi al servizio DNS per localizzare l’utente ed indirizzarlo verso il server del dominio richiesto più vicino alla sua posizione geografica. Naturalmente la decisione riguardante l’indirizzamento verso un server o un altro può essere presa anche incrociando altri parametri con la localizzazione geografica, come per esempio il livello di congestione di un server.
La prima cosa che viene in mente a questo punto è che questa implementazione implica una concessione a livello della privacy dell’utente.
Bisogna però considerare due aspetti.
Per prima cosa nel momento in cui un utente richiede una pagina web, ci sono due step che vengono eseguiti. Innanzitutto c’è la richiesta DNS per trovare il server e in seguito la richiesta HTTP al server per il contenuto della pagina web. Le richieste http includono già l’indirizzo IP completo dell’utente, e così è sempre stato.
In secondo luogo il protocollo eDNS considera solo i primi gruppi numerici dell’indirizzo IP. Idealmente questi sono sufficienti per localizzare l’area dell’utente (per esempio Milano), ma non abbastanza per individuare con maggior dettaglio la posizione dell’utente. Per esempio se l’indirizzo IP fosse 74.125.39.105 la parte inviata al server DNS sarebbe 74.125.39.
Potete già provare questo servizio cambiando i DNS in uso sul vostro computer con quelli forniti da Google Public DNS o da OpenDNS.
Fateci sapere le vostre impressioni!