Le comunicazioni in tempo reale, le applicazioni per la realtà virtuale, aumentata e mista, il gaming, lo streaming live, le nuove applicazioni per i veicoli connessi e a guida autonoma, per la telemedicina, per il mondo dell’Internet delle Cose e così via presuppongono l’utilizzo di connessioni di rete performanti che non solo assicurano un’ampia larghezza di banda ma, allo stesso tempo, siano in grado di mantenere bassa la latenza.
In informatica e nelle reti di telecomunicazioni la latenza misura la velocità di risposta di un sistema: essa esprime l’intervallo di tempo che intercorre tra l’istante in cui viene inviato il segnale o comunque un input al sistema e il momento in cui è disponibile l’output. Misurare la latenza sulle reti di telecomunicazioni significa calcolare il tempo che un pacchetto dati impiega per giungere a destinazione ed essere elaborato dal sistema destinatario.
La latenza può essere misurata anche su altri sistemi, ad esempio per rilevare il ritardo che si verifica nella conversione analogico-digitale di un segnale sonoro, nella CPU quando viene chiamata a eseguire una particolare istruzione, nella lettura e nella scrittura dei dati su un supporto di memorizzazione e così via.
Latenza nelle reti: cos’è
Nel caso dei collegamenti Internet, la latenza è appunto il tempo impiegato dai pacchetti dati per raggiungere la destinazione indicata. La latenza viene misurata in millisecondi (ms) con il valore che idealmente dovrebbe tendere a 0.
A influenzare il valore della latenza sulla rete Internet concorrono diversi fattori. Senza alcuna ambizione in termini di completezza, ne citiamo alcuni tra i principali:
– Distanza tra mittente e destinatario. La vicinanza fisica dei server o comunque degli host verso i quali si stanno inviando i pacchetti dati contribuisce a ridurre la latenza.
Per un utente italiano, scaricare dati da server situati in Asia è decisamente più lento rispetto agli Stati Uniti e ovviamente all’Europa. È possibile rendersi conto delle interconnessioni di primo livello (dorsali in fibra ottica) dando ad esempio un’occhiata alla backbone di TI Sparkle.
– Numero e tipologia di apparati di rete attraversati. Come abbiamo visto nell’articolo sui comandi da conoscere per le operazioni sulla rete, il comando tracert
dà un’idea del numero di sistemi che vengono attraversati dai pacchetti dati prima di arrivare a destinazione. Nel caso in cui un nodo fosse congestionato o presentasse un funzionamento anomalo, la latenza tende ad aumentare.
– Mezzi trasmissivi e hardware utilizzato. Anche la tipologia dei cavi utilizzati e l’hardware (switch, server, hard disk, SSD,…) contribuiscono a far aumentare o, viceversa, scendere il valore della latenza. Se lato utente questi scambia i dati con i server remoti usando un collegamento WiFi anziché un cavo Ethernet questo introduce una certa latenza aggiuntiva. Che tende ad aumentare, ad esempio, se la ricezione del segnale wireless non fosse ottimale o se ci si trovasse in un punto con una copertura non soddisfacente.
– Dimensione dei pacchetti dati. Maggiore è il volume del pacchetto dati da trasmettere, più elevata tenderà a risultare la latenza: questo perché, ovviamente, se il quantitativo di dati da scambiare è elevato, è richiesto più tempo per completare l’operazione.
Per questo, al fine della misurazione della latenza, si usano pacchetti ICMP ovvero pacchetti di test della dimensione di pochi byte.
Il comando Ping, implementato in tutti i sistemi operativi, consente ad esempio di inviare 32 byte di dati e attendere la risposta del sistema remoto specificato.
Provate ad aprire il prompt dei comandi Windows e a digitare il comando tracert
seguito da un indirizzo IP o dal nome di host remoto (indirizzo mnemonico, come quello di un qualsiasi sito Web): si ottiene la lista dei nodi che vengono attraversati in rete prima di giungere alla destinazione impostata.
Accanto a ogni nodo o hop attraversato, tracert
riporta la latenza in ms rilevata. Tipicamente il primo hop corrisponde al router locale: il tempo di risposta, ovviamente, non supera 1 ms nel caso in cui il sistema fosse connesso mediante cavo Ethernet.
Con le connessioni FTTH, specie se il server da raggiungere è fisicamente molto vicino, la latenza non supera i 5 ms. Con le connessioni FTTC (in un altro articolo parliamo delle differenze tra le FTTx totalmente in fibra ottica e in fibra misto rame) spesso non si va oltre i 15 ms.
Diverso il caso delle tradizionali ADSL, con cui la latenza può arrivare tipicamente a 70-100 ms.
Esaminando il responso del comando tracert
di solito si osserva che la latenza, fintanto che si resta nella rete dell’operatore di telecomunicazioni, tende a rimanere bassa per poi aumentare quando i pacchetti dati transitano attraverso nodi esterni.
La larghezza di banda esprime la larghezza dell’intervallo di frequenze che può essere impegnata per far transitare il segnale sul mezzo fisico, sia in downstream (quindi per scaricare dati), sia in upstream (per immettere dati sulla rete).
La quantità di informazione trasmissibile sul canale di comunicazione è strettamente collegata all’intervallo di frequenze in base al teorema del campionamento di Nyquist-Shannon. Quindi, la larghezza di banda è a sua volta correlata alla velocità di trasmissione dei dati ottenibile. Il throughput, termine che ricorre spesso, è invece la quantità di dati trasferiti in un determinato periodo di tempo.
La latenza, come abbiamo visto, rappresenta una parte importante del quadro: se la latenza è bassa e la larghezza di banda è elevata si può ottenere un throughput maggiore e una connessione più efficiente. La latenza crea colli di bottiglia all’interno della rete riducendo così la quantità di dati trasferiti nel tempo.
Lanciando uno speed test è possibile verificare non soltanto la larghezza di banda disponibile in downstream e in upstream ma in molti casi anche latenza e jitter (esprime quanto è stabile il valore della latenza).
I servizi di speed test restituiscono valori complessivamente più attendibili quanto più i server usati per simulare i trasferimenti di dati sono vicini all’utente.
Quando non si riceve risposta da un sistema remoto, utilità come ping
e tracert
mostrano il messaggio Richiesta scaduta.
Ciò può essere del tutto normale nel caso di quei sistemi che sono configurati espressamente, ad esempio mediante apposite policy lato firewall, di non rispondere alle richieste ICMP.
Se risulta impossibile raggiungere un sito Web o la connessione è lenta, a seguito di problemi di routing, potrebbero verificarsi perdite di pacchetti e la connessione con il sistema di destinazione potrebbe non avvenire o risultare instabile. Il packet loss test aiuta a capire il motivo delle perdite di pacchetti.
Dai sistemi Linux oppure anche da WSL 2, il sottosistema di Windows 10 e 11 che permette di usare Linux in Windows si può usare una versione più evoluta di ping
e tracert
. Digitando il comando che segue è possibile inviare continuamente pacchetti ICMP e scovare l’eventuale presenza di problemi di routing (la colonna Loss% riporta la percentuale di pacchetti persi):
Con il comando seguente è addirittura possibile effettuare il test su singole porte (nell’esempio vengono tentate una serie di connessioni sulla porta HTTPS, TCP 443):
In entrambi i casi gli indirizzi Google vanno sostituiti con l’IP o l’indirizzo mnemonico dell’host da verificare.
Come ridurre e migliorare la latenza
Ovviamente non è possibile intervenire sulle porzioni di rete che non sono sotto il nostro diretto controllo.
Chi fornisce il servizio tende in primis ad avvicinare la sua infrastruttura alla posizione geografica dell’utente: permettono di farlo le CDN (Content Delivery Network), lo stanno facendo da tempo le principali piattaforme di streaming (ricordiamo ad esempio il debutto di Amazon Prime Video con le trasmissioni di eventi sportivi in diretta) e ultimamente si sta adottando sempre di più il Multicast, modalità di trasmissione dei dati che, essa stessa, contribuisce a ridurre significativamente la latenza (a patto che l’utente si serva di dispositivi compatibili).
Sempre lato server, l’uso del protocollo QUIC alla base di HTTP/3, terza versione del protocollo Hypertext Transfer Protocol usato per il Web, consente di abbassare la latenza senza sacrificare l’efficacia delle trasmissioni TCP.
Per migliorare la latenza, inoltre, i siti Web possono ridurre il numero e il volume delle richieste HTTP esterne e usare meccanismi efficaci di caching a livello di browser.
Lato utente la latenza si può ridurre attivando una connessione di rete più performante (i.e. FTTx) ma anche evitando di congestionare la banda disponibile in downstream e in upstream con trasferimento di dati impegnativi. Basti pensare che anche un solo upload pesante posto in essere da uno dei dispositivi connessi alla rete locale può portare a velocità di connessione insoddisfacenti e far schizzare verso l’alto il valore della latenza.
Utilizzando la prioritizzazione del traffico sul router, grazie all’adozione di schemi QoS (Quality of Service), è possibile migliorare la latenza di rete assegnando la priorità ai pacchetti di dati in base alla loro tipologia.
Si può fare in modo, per esempio, che chiamate VoIP e comunicazioni tra workstation e server (i.e. backup dei dati) vengano gestite con la massima priorità.
A questo proposito anche la segmentazione della rete mediante VLAN permette di massimizzare le prestazioni di rete di un gruppo di sistemi.
Con le tradizionali ADSL era ed è possibile richiedere l’attivazione di profili FastPath che permettono di abbassare la latenza.
Mentre i profili Interleaved assicurano una maggiore protezione sul piano della trasmissione di errori, una connessione Fast garantisce una minore latenza, cosa particolarmente apprezzata dagli appassionati di gaming e dagli utenti che si servono del VoIP. La distinzione è di fatto tramontata con il lancio delle offerte FTTC in fibra misto rame.
Quando si usano un router WiFi, uno o più range extender, un sistema WiFi mesh è possibile ridurre la latenza ottimizzando la posizione dei dispositivi wireless, servendosi di dispositivi che sfruttano il beamforming e avvalendosi di applicazioni che aiutano a controllare in tempo reale le prestazioni della rete.
Un’applicazione gratuita come FRITZ!App WLAN risulta davvero utile perché aiuta a capire il perché di una WiFi mesh lenta o di qualunque rete wireless che non assicura prestazioni all’altezza delle aspettative.