Trasferimento dati: guida alla larghezza di banda

La trasmissione di dati può influire pesantemente sulle performance della nostra connessione di rete e conoscere cosa c’è alla base è cruciale per l'ottimizzazione delle prestazioni.

Gli sviluppatori di applicazioni per il web non ci mettono a conoscenza di come funzioni il trasferimento di dati da un nodo all'altro del web, creando interfacce che permettono ai network di leggere e scrivere un unico e continuo flusso di byte. Conoscere cosa c’è alla base della trasmissione dati è cruciale per l'ottimizzazione delle prestazioni.

E’ usuale parlare di connessioni di rete solo in termini di larghezza di banda (bandwidth) dividendo utenti a banda larga e a banda bassa. Ma i tempi eccessivi in attesa di risposta (latency) e l’asimmetria nella trasmissione sono problematiche che contano almeno quanto il numero di bit al secondo che la nostra può supportare ed anzi sono più importanti in quanto accentuati dai cambiamenti che stanno riguardando le reti, uno su tutti il passaggio a reti wifi condivise e l’intasamento portato dal largo uso di video conferenze. E’ quindi necessario affinare il lavoro valutando e testando sotto valori realistici le connessioni di rete utilizzando un nuovo modello mentale che dovrebbe tenere sempre presente alcuni aspetti.

Impacchetta i dati per il trasferimento

La nozione di trasferimento di dati per “pacchetti-al-secondo” deve sostituire quella di bytes. Tutto il processo di trasmissione dati in rete viene elaborato sotto forma di pacchetti, l’unità di misura per le trasmissioni in rete, organizzando i bytes tramite il parametro CEIL (dividendo N Bytes/1460).

Questo significa che la differenza tra spedire 1 o 1000 bytes è poca o niente, ma anche che spedire 1.461 bytes richiederà il doppio del lavoro rispetto a spedirne 1.460 in quanto due pacchetti dovranno essere spediti, ricevuti, riassemblati e riconosciuti nel trasferimento dei dati. Superare la soglia del pacchetto senza accorgersene è molto semplice in http: supponiamo di avere un’applicazione che usa una library esterna in cui si trova un’alta quantità di cookie contenenti dati riguardo l’utente legato al dominio. Supponiamo anche che nei cookie vengano immagazzinati altri dati. Questa quantità interessata nella trasmissione dati viene reindirizata al server dopo ogni richiesta. E’ poco conosciuto ma i browser suddividono alcune richieste in almeno due pacchetti senza prendere in considerazione la dimensione del messaggio da trasferire.

Packet Latency

Il ritardo dei pacchetti. Con Packet Latency s’intende il tempo impiegato nel trasferimento dei dati, ovvero il tempo che un pacchetto impiega per passare da un punto A ad un punto B, che varia in base alla distanza e alle code che trova attraversando i vari network. Inoltre la latency per l’utente finale può variare in maniera sostanziale nell’“ultimo-miglio” in cui la strumentazione e fattori esterni influiscono pesantemente sulla velocità della trasmissione dei dati.

C’è la possibilità che un paio di pacchetti vadano perduti durante il tragitto per una collisione o altro. In conclusione l’emittente deve notare la mancanza di un pacchetto e procedere nuovamente alla trasmissione. Le reti wireless sono sempre più comuni ma sfortunatamente sono suscettibili ad interferenze da strumentazioni che utilizzano una banda simile, su tutti i microonde. E’ inoltre evidente che alle reti pubbliche in café e piccoli uffici basta che un utente guardi un video per inondare l’uplink.

Rapporto trasferimento di dati upstream e downstream

La larghezza di banda riservata al trasferimento di dati upstream è spesso 20% o meno del totale disponibile. Questo era comprensibile fino a quando gli utenti non hanno cominciato ad utilizzare in massa il file sharing, le tecnologie VOIP, le video chats. Anche se tutt’oggi gli utenti scaricano più informazioni di quante non ne inviino, l’asimmetria presente nelle connessioni significa che i rallentamenti e le congestioni dovute al trasferimento di dati in caricamento sono destinate a lievitare in futuro. C’è quindi bisogno di un modo per misurare la latenza (latency) e la perdita di pacchetti. Nel web si trovano diversi manuali di ottimizzazione delle performance (uno su tutti quello stilato da Yahoo).

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend