Cenni base di reti di calcolatori: la latenza e l’ampiezza di banda

Di - 26 May 2014 - in
Post image for Cenni base di reti di calcolatori: la latenza e l’ampiezza di banda

Ci siamo già soffermati sulle  prestazioni relative alla velocità delle pagine web, ad esempio parlando degli sforzi di Google su progetti come Speedy, Page Speed e Web Accelerator, per velocizzare il render delle pagine web sui dispositivi mobili. Contestualmente, un altro punto su cui Google sta da tempo spingendo, è la performance di velocità dei siti web.

La velocità è un parametro strettamente legato alla user experience e Google, con i suoi progetti, tende la mano agli sviluppatori che, con una attenta progettazione del sito, possono contribuire ad aumentare la velocità di rendering delle pagine web. Tuttavia questi approcci sono solo una risposta parziale, un palliativo, al problema. La maggior parte delle variabili legate alla velocità dei siti dipendono dalla rete e dalla sua architettura, nonché dai protocolli stessi di funzionamento.
Cerchiamo di capire quali sono le componenti di base della rete e come queste influiscono sulla velocità dei siti, iniziando con il citare due concetti alla base della velocità del traffico di una rete.

Latenza e ampiezza di banda

Nel nostro contesto si definisce latenza l’intervallo di tempo che intercorre tra l’invio di un pacchetto di dati da parte di una fonte e la ricezione dello stesso da parte di un destinatario. Si definisce invece ampiezza di banda la quantità massima di dati che possono essere trasmessi su un canale fisico.

Se volessimo fare un’analogia con un sistema di tipo idraulico, avremmo una rete composta da una serie di tubazioni e un fluido che vi circola attraverso, ovvero i pacchetti di dati. L’impianto sarebbe poi regolato da una serie di valvole lungo tutto il percorso che rappresentano i router di un rete dati. Potremmo immaginare la latenza come la pressione $latex P $ del nostro fluido, mentre per analogia l’ampiezza di banda sarebbe definita dal diametro dei tubi e misurata dalla portata $latex Q $ della rete idrica.

Come abbiamo detto, la definizione stringata di latenza riguarda il tempo che un pacchetto dati impiega per viaggiare dalla sorgente al destinatario passando attraverso un mezzo. Questa definizione va però scomposta in almeno quattro elementi:

1. Tempo di propagazione

Indica la quantità di tempo necessaria ad un messaggio per viaggiare tra il punto di invio e il punto di ricezione. Il tempo di propagazione dipende dalla distanza e dalla velocità di trasmissione dell’onda elettromagnetica. Viene definito dal rapporto d/s dove d è la distanza e s la velocità di trasmissione.

2. Ritardo di trasmissione

Nei sistemi di reti basati sullo scambio di pacchetti di dati, indica il tempo necessario per spedire ogni pacchetto di bit in un cavo. Questo parametro è funzione della lunghezza dei singoli pacchetti e non ha nulla a che vedere con la distanza tra i due nodi. Viene indicato dalla seguente formula $latex Dt = N/R sec $ dove $latex Dt $ è il ritardo di trasmissione in secondi, $latex N $ è il numero di bit e $latex R $ il tasso di trasmissione (bit al secondo).

3. Ritardo di elaborazione

Indica il tempo che impiega il router per processare gli header dei pacchetti. Solitamente i router controllano diverse cose, come ad esempio gli errori nei pacchetti di bit, l’indirizzo di destinazione, ecc… Nel mondo reale, nelle reti a pacchetto, gli errori creano un altro ritardo percepito, dovuto al fatto che un pacchetto errato genera un segnale per richiedere il reinvio, e il reinvio stesso. Tale ritardo è probabilistico e non è di banale calcolo, ma è davvero consistente su reti mal schermate e su reti wireless. In alcuni sistemi vengono eseguite verifiche, chiamate deep packet inspection, che aggiungono ulteriore ritardo di elaborazione.

4. Ritardo di accodamento

Indica il tempo che un pacchetto deve attendere in buffer prima di essere processato dal router.

Trasmissione e mezzo

Come abbiamo menzionato nella definizione di tempo di propagazione, la trasmissione del segnale si basa sulla velocità dell’onda elettromagnetica in un mezzo. La velocità della luce si definisce con la formula $latex C=\frac{1}{\sqrt{\mu\varepsilon}} $ dove $latex \mu $ indica la permeabilità magnetica e $latex \varepsilon $ la permettività elettrica (tendenza di un materiale a contrastare l’intensità di un campo elettrico presente al suo interno).

Nota

La permeabilità magnetica è una grandezza fisica che esprime l’attitudine di un materiale a magnetizzarsi in presenza di un campo magnetico. Questa grandezza si misura in henry al metro (H/m).
Fonte | Wikipedia.

La permettività elettrica esprime la tendenza di un materiale a contrastare l’intensità di un campo elettrico presente al suo interno. Il suo valore viene espresso come prodotto $latex \varepsilon = \varepsilon_r \varepsilon_0 $
Fonte | Wikipedia

Risulta quindi chiaro che il mezzo in cui l’onda elettromagnetica si propaga rappresenta un elemento fondamentale nella velocità di trasmissione dello stesso. La velocità della luce nel vuoto è pari a 299.792.458 m/s ma quando la stessa viaggia in un mezzo diverso dal vuoto, ad esempio un filo di rame o un cavo di fibra ottica, la sua velocità diminuisce, anche se non di molto. Molto dipende da una proprietà dei materiali chiamata Indice di Rifrazione.

Maggiore è questo valore, minore è la velocità di trasmissione della radiazione elettromagnetica nel materiale. Il vuoto ha per definizione indice di rifrazione pari a $latex n=1 $ . L’aria a condizioni standard $latex n=1,000277 $ . Un cavo a fibra ottica invece ha un valore medio di $latex n=1,52 $ , questo significa che un segnale elettrico che viaggia all’interno di un cavo a fibra ottica impiega circa 203 ms per percorrere la circonferenza della Terra lungo la Linea dell’Equatore. Se il segnale fosse stato trasmesso nel vuoto ci avrebbe impiegato 133,7 ms.

Ho citato la circonferenza della Terra proprio per considerare il caso limite per la distanza nella velocità di propagazione. Il segnale deve essere processato, partire, percorrere la tratta, essere ricevuto, decodificato e ripartire. Ogni check point nel percorso costituisce un elemento di ritardo.

Gli esseri umani sono considerati in genere capaci di percepire un ritardo nell’ordine dei 100-200 millisecondi, quindi un’interazione con un ritardo di 300 ms viene percepita come lenta e farraginosa. Ecco perché la velocità è una componente chiave nell’esperienza d’uso di sistemi di comunicazione.

Analizziamo qualche dato

Attraverso il comando $> traceroute [target] è possibile ottenere interessanti informazioni circa la topologia della rete utilizzata dai pacchetti indirizzati dal computer ad un determinato sito.

:~ gabrielevisconti$ traceroute to engeene.it (54.247.85.38), 64 hops max, 52 byte packets
 1  192.168.43.1 (192.168.43.1)  8.272 ms  4.049 ms  2.514 ms
 2  172.31.9.138 (172.31.9.138)  389.771 ms  408.887 ms  409.564 ms
 3  172.31.9.137 (172.31.9.137)  819.715 ms  66.009 ms  72.745 ms
 4  172.16.254.149 (172.16.254.149)  70.543 ms  54.716 ms  52.134 ms
 5  172.18.105.1 (172.18.105.1)  72.744 ms  54.433 ms  74.554 ms
 6  host9-147-static.62-88-b.business.telecomitalia.it (88.62.147.9)  70.012 ms  77.863 ms  56.852 ms
 7  172.17.64.81 (172.17.64.81)  84.346 ms  59.364 ms  74.569 ms
 8  172.17.12.158 (172.17.12.158)  69.926 ms  62.907 ms  62.648 ms
 9  172.17.8.93 (172.17.8.93)  74.505 ms  88.800 ms  78.800 ms
10  172.17.10.93 (172.17.10.93)  80.925 ms  85.860 ms  73.411 ms
11  pos1-11-0-0.milano26.mil.seabone.net (195.22.192.85)  78.505 ms  83.349 ms  70.406 ms
12  xe-7-0-0.londra32.lon.seabone.net (89.221.43.148)  109.611 ms  91.743 ms  96.379 ms
13  amazon.londra32.lon.seabone.net (89.221.43.103)  99.859 ms  121.839 ms  129.213 ms
14  176.32.106.6 (176.32.106.6)  130.206 ms
    176.32.106.4 (176.32.106.4)  118.731 ms
    176.32.106.6 (176.32.106.6)  113.584 ms
15  176.32.106.14 (176.32.106.14)  112.702 ms  119.183 ms
    176.32.106.16 (176.32.106.16)  110.004 ms
16  178.236.0.103 (178.236.0.103)  105.479 ms
    178.236.0.81 (178.236.0.81)  111.190 ms
    178.236.0.83 (178.236.0.83)  108.200 ms
17  178.236.0.128 (178.236.0.128)  108.961 ms
    178.236.0.126 (178.236.0.126)  114.557 ms
    178.236.0.130 (178.236.0.130)  116.724 ms
18  178.236.0.125 (178.236.0.125)  141.545 ms  98.954 ms  99.925 ms
19  ec2-79-125-0-137.eu-west-1.compute.amazonaws.com (79.125.0.137)  110.245 ms
    ec2-79-125-0-133.eu-west-1.compute.amazonaws.com (79.125.0.133)  120.857 ms
    ec2-79-125-0-137.eu-west-1.compute.amazonaws.com (79.125.0.137)  119.901 ms

——

:~ gabrielevisconti$
1  192.168.1.1 (192.168.1.1)  1.750 ms  0.846 ms  0.737 ms
2  eolo-gw.net.ngi.it (81.174.0.21)  25.461 ms  8.928 ms  20.035 ms
3  10.40.8.61 (10.40.8.61)  10.106 ms * *
4  10.40.8.58 (10.40.8.58)  20.224 ms  18.419 ms  12.228 ms
5  10.40.8.17 (10.40.8.17)  12.661 ms  11.386 ms  15.156 ms
6  * 10.40.8.37 (10.40.8.37)  11.735 ms  9.284 ms
7  212.73.241.13 (212.73.241.13)  10.459 ms  9.808 ms  9.635 ms
8  ae-8-8.ebr3.paris1.level3.net (4.69.142.186)  49.407 ms  45.465 ms  44.094 ms
9  ae-73-73.csw2.paris1.level3.net (4.69.161.114)  49.840 ms
    ae-83-83.csw3.paris1.level3.net (4.69.161.118)  47.057 ms
    ae-73-73.csw2.paris1.level3.net (4.69.161.114)  46.555 ms
10  ae-72-72.ebr2.paris1.level3.net (4.69.161.97)  47.721 ms  44.094 ms
    ae-92-92.ebr2.paris1.level3.net (4.69.161.105)  50.117 ms
11  ae-2-12.bar1.dublin3.level3.net (4.69.153.241)  47.391 ms  44.465 ms  44.632 ms
12  195.16.170.102 (195.16.170.102)  45.056 ms  46.849 ms  45.037 ms
13  178.236.0.130 (178.236.0.130)  50.357 ms  44.914 ms  47.676 ms
14  178.236.0.125 (178.236.0.125)  69.410 ms  44.360 ms  45.247 ms
15  ec2-79-125-0-133.eu-west-1.compute.amazonaws.com (79.125.0.133)  52.056 ms
    ec2-79-125-0-137.eu-west-1.compute.amazonaws.com (79.125.0.137)  47.932 ms
    ec2-79-125-0-133.eu-west-1.compute.amazonaws.com (79.125.0.133)  47.133 ms

Analizziamo il risultato ottenuto per osservare il viaggio fatto da un pacchetto di dati verso la destinazione. Il funzionamento del comando traceroute, prevede l’invio di una serie di pacchetti a coppie di tre. Ogni terzina specifica uno specifico TTL (time-to-live) in ordine progressivo e ciascun TTL indica un numero definito di router che il pacchetto può attraversare.

Raggiunto tale numero il router indicato considera il pacchetto scaduto ed invia una notifica ICMP, contenente il proprio indirizzo, al router di partenza. Uno dopo l’altro, tutti i router tra la sorgente e il destinatario vengono contattati. Alla fine si ha una lista di router che indicano, uno dopo l’altro, i punti dove i pacchetti vengono smistati. La media dei tempi dell’ultimo TTL rappresentano, teoricamente, la latenza totale.

Nel primo esempio presentato sopra si ha (110,245 + 120,857 + 119,901)/3 = 117,001 ms andata e ritorno che, tenendo conto delle condizioni (tethering Wi-Fi attraverso rete 3g “ballerina”), è un risultato accettabile.

Nel secondo esempio invece, con connessione WiMAX, la latenza è (52,056 + 47,932 + 47,133)/3 = 49,040 ms andata e ritorno. In questo caso si può valutare l’impatto di una connessione molto performante.

L’Ampiezza di banda

Come abbiamo detto all’inizio, alla velocità dei siti web concorre, insieme alla latenza, anche l’ampiezza di banda.
In ambito informatico si definisce ampiezza di banda la capacità massima di trasferimento di un canale fisico o logico in un sistema informativo e si misura in bit/s o multipli di essi: kbit/s, Mbit/s, Gbit/s.
Dobbiamo considerare due tipi, molto diversi tra loro, di ampiezza di banda: quella delle dorsali della rete e quella degli estremi della rete.

Le dorsali delle reti informatiche sono costituite generalmente da cavi di fibra ottica. Questa tecnologia è composta da filamenti in materiale vetroso o polimerico con indice di rifrazione molto basso (un valore medio di n = 1,52), capace di condurre la luce in diverse lunghezze d’onda $latex \lambda$.
Attraverso un sistema chiamato Wavelength-division multiplexing (WDM) le diverse lunghezze d’onda vengono sommate in un unico segnale luminoso. L’ampiezza di banda totale della fibra ottica è quindi data dalla somma dei vari canali di WDM. Ogni singola fibra è quindi in grado di convogliare decine e decine di Tbit/s di dati, mentre un cavo, che raccoglie diverse fibre singole, può trasmettere centinaia di Tbit/s.

Un cavo a fibra ottica a 12 coppie

Un cavo a fibra ottica a 12 coppie

Ai margini della rete invece la questione si fa molto più spinosa. In queste zone generalmente non si trova la fibra ottica in tutta una serie di sistemi diversi, a partire dal doppino telefonico, passando per le connessioni WiMax, LTE, 3G, fino ad arrivare alla fibra domestica.
L’ampiezza di banda disponibile all’utente è funzione della capacità più bassa del collegamento tra l’utente e il server di destinazione.
Questo tipo di parametro è fonte di una crescente domanda da parte degli utenti e della società in generale. Tuttavia, la situazione da questo punto di vista è molto variabile e, in generale, non molto soddisfacente in Italia.

Le tabelle sotto riportate illustrano la situazione rispettivamente della velocità di banda media e di picco in Mbps nell’area EMEA (Europa, Medio Oriente ed Africa). I dati si riferiscono al terzo trimestre 2013 e provengono dall’ultimo rapporto rilasciato da Akamai (una nota azienda che fornisce CDN).

PiccoMBPS

Velocità di picco

MediaMBPS

Velocità media

Come potete vedere l’Italia si trova rispettivamente al 22° e 24° posto del gruppo EMEA e al 46° e 69° posto su scala globale.
Il dato è abbastanza triste ma prevedibile se pensiamo alla media delle reti che connettono gli utenti, il famigerato ultimo miglio.
Diverse tecnologie permettono di migliorare questo tipo di deficienza. In particolare i due approcci più diffusi nel nostro paese sono attualmente i collegamenti tramite cavi di fibre ottiche e la fornitura di servizi wireless come ad esempio il WiMAX e LTE (definite come 4G nel 2010 da ITU).

Personalmente mi pare che il secondo approccio, quello dei collegamenti wireless, per quanto riguarda costi di installazione e copertura, rappresenti una prospettiva di maggior efficacia nel nostro Paese.

Di seguito potete vedere il confronto di velocità di banda tra due tipologie di reti diverse. Il mio  mio computer casalingo connesso con tecnologia WiMAX e il computer dell’ufficio connesso con una linea tradizionale ADSL.

Ookla Speed test
WiMAX

  • Download: 19.46 Mbps
  • Upload: 1.85 Mbps
Speed test WiMAX
Connessione tradizionale

  • Download: 1.76 Mbps
  • Upload: 1.71 Mbps

I risultati dei test come potete vedere sono piuttosto variabili, tenendo anche conto del fatto che le condizioni stesse non sono state da me controllate. Tuttavia il punto è un altro.
Latenza e ampiezza di banda (il primo soprattutto) sono parametri sui quali il margine di miglioramento è varibile e comunque richiede investimenti economici e in ricerca molto importanti.

Un approccio molto intelligente ed interessante (analogo per certi versi in ciò che accade con il consumo energetico) è quello di lavorare sul lato dei consumi.
Diverse tecniche sono state sviluppate e vengono continuamente proposte (un esempio sono quelle menzionate all’inizio dell’articolo) per aumentare l’efficienza dei protocolli di trasferimento dei dati e ridurre “il carico” di dati trasportati. Magari vedremo alcune di queste tecniche in articoli futuri sull’argomento.

Credit immagine di copertina | Submarine cable map

Leave a Reply

Gabriele Visconti Articolo scritto da

Editor in Chief per Engeene. Appassionato di Linux, FOSS, videogame e, da poco, di cucina. Parla quattro lingue ed ama leggere libri in lingua inglese.

Contatta l'autore

Previous post:

Next post: