Skip to main content

Manuale Utente (Inglese)

Test della larghezza di banda di una connessione locale con iperf

Iperf3 è un programma client-server da console multipiattaforma, un generatore di traffico TCP e UDP per testare la larghezza di banda della rete. Permette di misurare facilmente la larghezza di banda massima della rete tra un server e un client e di eseguire test di carico su un collegamento di rete.

È possibile scaricare iperf3 dal sito web https://iperf.fr/iperf-download. Le versioni dell'utilità sono disponibili per il download per diversi sistemi operativi (Windows, macOS, Ubuntu, Debian, Mint, Fedora, Red Hat, CentOS, openSUSE, Arch Linux, FreeBSD).

Per i dispositivi mobili con sistema operativo Android, è possibile utilizzare l'app Magic iPerf including iPerf3.

Per eseguire il test, il programma deve essere eseguito su due dispositivi (possono essere computer, smartphone o tablet). Uno di essi fungerà da server e l'altro da client. I dati saranno trasferiti tra di loro per misurare la larghezza di banda della connessione.

Importante

Per migliorare la precisione delle misurazioni della velocità di trasferimento dati della rete locale, si consiglia quanto segue:

— Durante l'esecuzione dei test, scollegare tutti i dispositivi dal Router, lasciando solo i due host che parteciperanno al test.

— Prima di eseguire il test, determinare l'indirizzo IP locale del dispositivo che fungerà da server (questo può essere fatto nell'interfaccia web sulla pagina ???).

— Prima di eseguire il test, controllare la velocità del canale fisico dei dispositivi nelle impostazioni del Router (per i client Wi-Fi nella pagina Elenchi client e per i client cablati nella pagina Cruscotto di sistema). Il collegamento deve corrispondere alla massima velocità di canale possibile. Ad esempio, se un dispositivo è collegato tramite un cavo di rete a un Router gigabit, è necessario utilizzare un cavo a 4 coppie (8 fili) di categoria 5e o superiore e il collegamento deve essere 1G/FDX (1 Gbit/s, full duplex). Nei modelli di fascia più bassa, dovrebbe essere 100M/FDX (100 Mbit/s, full duplex). Se la velocità del canale è inferiore o si visualizza la modalità HDX (half-duplex), verificare la conformità allo standard del patch cord (cavo Ethernet, doppino intrecciato), sostituirlo e controllare anche le impostazioni della scheda di rete (per vedere se la modalità di limite di velocità è impostata manualmente).

— Non utilizzare la priorità del traffico. Se si utilizza la priorità del traffico, l'acceleratore di rete hardware (ppe hardware; hwnat) viene disabilitato per il dispositivo, poiché l'acceleratore non può funzionare con la priorità del traffico. Con l'acceleratore disabilitato, la velocità potrebbe diminuire. Nella pagina Elenchi client, nel campo Priorità del traffico, impostare il valore su Normale (predefinito) per i dispositivi utilizzati nel test.

— Sugli host che partecipano al test, chiudere tutti i programmi utente e le applicazioni in esecuzione che trasmettono dati attraverso la rete.

— Disabilitare temporaneamente il firewall sugli host durante il test, se è abilitato, o consentire il traffico attraverso le porte utilizzate da iperf3 nelle loro impostazioni.

— Durante il test con dispositivi Wi-Fi, tale dispositivo deve trovarsi vicino al Router in linea di vista diretta da esso a una distanza non superiore a 2 metri.

— Eseguire il test più volte. Per impostazione predefinita, iperf3 trasferisce il traffico dal client al server, cioè misura la velocità di upstream. Eseguire anche il test della velocità di downstream (dal server al client) utilizzando l'opzione -R (abilita la modalità Inversa) sul client.

Quando si misura la larghezza di banda di un collegamento tra due dispositivi collegati a un Router a velocità diverse, i valori di velocità effettivi ottenuti saranno limitati dalla connessione più lenta. Ad esempio, se un host è collegato a una velocità di 1 Gbit/s e un altro a una velocità di 100 Mbit/s, durante il test della larghezza di banda, la velocità non supererà i 100 Mbit/s.

Esempio 1. Supponiamo di dover scoprire la larghezza di banda di una rete locale tra due computer collegati a un Keenetic Router gigabit tramite un patch cord a 4 coppie. Nel nostro caso, i computer sono collegati alle porte numero 1 e 3.

iperf-00-en.png

Sul computer che fungerà da server, nella riga di comando di Windows, navigare nella directory in cui si trova il file eseguibile iperf3 ed eseguire il comando:

iperf3 -s

Se Windows Firewall è abilitato sul computer, la finestra Avviso di sicurezza di Windows apparirà al primo avvio dell'applicazione. Fare clic sul pulsante Consenti accesso per aprire la porta su cui verrà eseguita l'applicazione iperf3.

iperf-fw-win-en.png
iperf-01-en.png

Avvertimento

Non chiudere la finestra con il server in esecuzione.

Sul computer che funge da client, eseguire il seguente comando per avviare il test:

iperf3 -c <server_address_iperf3>

Ad esempio:

iperf3 -c 192.168.1.143

Per 10 secondi, il traffico verrà scambiato tra questi host, dopodiché la connessione verrà terminata e verranno visualizzati i risultati del test. Nel nostro esempio, la misurazione della larghezza di banda per la connessione gigabit locale è stata di 949 Mbit/s. In questo caso, questo valore è la velocità di connessione effettiva sul collegamento a 1 Gbit/s.

iperf-02-en.png

Attenzione

Per impostazione predefinita, il programma iperf3 trasferisce il traffico dal client al server, utilizza il protocollo TCP ed esegue il test per 10 secondi senza limitare la velocità massima.

Quando si misura la larghezza di banda della rete locale attraverso un Router con porte da 100 Mbit/s, la velocità effettiva era di 95,1 Mbit/s.

iperf-03-en.png

Esempio 2. Diamo un'occhiata alla misurazione della velocità di connessione effettiva di un laptop collegato a un Keenetic Router tramite Wi-Fi. Nel nostro esempio, il laptop è collegato al Router a una velocità di canale di 135 Mbit/s.

win-wifi-adapter-en.png

Sul computer collegato al Router via cavo e che fungerà da server (nel nostro esempio con indirizzo IP 192.168.1.143), eseguire il seguente comando nella riga di comando del sistema operativo:

iperf3 -s

Sul laptop che funge da client, eseguire il seguente comando per iniziare il test:

iperf3 -c <server_address_iperf3> -R

Vedrai quindi il risultato di questo comando. Nel nostro esempio, la misurazione della larghezza di banda per la connessione Wi-Fi locale è stata di circa 47 Mbit/s (con una velocità di connessione del canale di 135 Mbit/s). Questa è la velocità effettiva della connessione.

iperf-04-en.png

Attenzione

Quando si misura una connessione wireless, si consiglia di abilitare la modalità Inversa per testare la velocità in entrata sul client (in questo caso, il server trasmette i dati e il client li riceve). Aggiungere l'opzione -R al comando. Durante il test di una connessione Wi-Fi, si può notare che i valori di velocità ottenuti differiscono in modo significativo, il che è normale ed è dovuto alla natura della trasmissione dei dati nelle reti Wi-Fi.

Esempio 3. Consideriamo la misurazione della velocità di connessione effettiva su uno smartphone/tablet collegato a un Keenetic Router tramite Wi-Fi. Nel nostro esempio, lo smartphone è collegato al Router a una velocità di canale di 200 Mbit/s.

mob-client-lists-en.png

Sul computer che fungerà da server (nel nostro esempio con indirizzo IP 192.168.1.143), eseguire il seguente comando nella riga di comando del sistema operativo:

iperf3 -s

Sullo smartphone Android che funge da client, installare l'app Magic iPerf including iPerf3. Avviarla e nell'angolo in alto a sinistra dello schermo, spostare l'interruttore sulla posizione iPerf3.

Utilizzare un comando come questo:

 -c <server_address_iperf3> -R

Avviare il test spostando l'interruttore in posizione Avviato nell'angolo in alto a destra dello schermo.

magic-iperf-01-en.png

Vedrai il risultato dell'esecuzione di questo comando. Nel nostro esempio, la larghezza di banda misurata della connessione Wi-Fi locale era di circa 97 Mbit/s (con una velocità di connessione del canale di 200 Mbit/s). Questa è la velocità di connessione effettiva del client Wi-Fi.

magic-iperf-02-en.png

Esempio 4. Misuriamo la velocità di connessione effettiva su uno smartphone/tablet collegato a un Keenetic Router tramite Wi-Fi. Nel nostro esempio, lo smartphone è collegato al Router a una velocità di canale di 200 Mbit/s.

mob-client-lists-en.png

Ma il Keenetic Router stesso fungerà da server (il suo indirizzo IP locale è 192.168.1.1).

Suggerimento

Il pacchetto iperf3 è presente nel sistema operativo del Router KeeneticOS quando è installato il componente Supporto pacchetti Open.

Connettersi all'interfaccia a riga di comando (CLI) del Router ed eseguire il comando per avviare il server iperf3:

exec iperf3 -s
iperf-05-en.png

Sullo smartphone Android che funge da client, installare l'app Magic iPerf including iPerf3. Avviarla e nell'angolo in alto a sinistra dello schermo, spostare l'interruttore sulla posizione iPerf3.

Utilizzare il seguente comando:

 -c <server_address_iperf3>

Eseguire il test spostando l'interruttore in posizione Avviato nell'angolo in alto a destra dello schermo.

magic-iperf-03-en.png

Nel nostro esempio, la larghezza di banda misurata della connessione Wi-Fi locale era di circa 94 Mbit/s (con una velocità di connessione del canale di 200 Mbit/s). Questa è la velocità di connessione effettiva.

È inoltre possibile visualizzare i risultati del test nel terminale del server.

iperf-06-en.png
Sintassi del comando iperf3

Diamo un'occhiata alla sintassi del comando iperf3 e alle opzioni principali (più utilizzate). È possibile trovare un elenco completo e aggiornato delle opzioni sul sito web dello sviluppatore.

Utilizzo:

iperf3 [-s | -c host] [options]

Opzioni comuni per server e client:

-p, --port #

numero di porta su cui opererà il server/client (per impostazione predefinita viene utilizzata la 5201)

-f, --format [kmgKMG]

formato della velocità nei risultati del test: k (Kbit), K (Kbyte), m (Mbit), M (Mbyte), g (Gbit), G (Gbyte)

-i, --interval #

intervallo tra gli output dei risultati dei test, in secondi

-V, --verbose

output di informazioni più dettagliate

-d, --debug

output di informazioni di debug aggiuntive

-v, --version

mostra la versione

-h, --help

mostra l'aiuto

Opzioni principali del server:

-s, --server

avvio del server e visualizzazione delle informazioni sullo schermo

-D, -- daemon

avvio del server in background, senza visualizzare informazioni sullo schermo; rimarrà in esecuzione anche dopo la chiusura della finestra del programma

Opzioni principali del client:

-c, --client <host>

avvio del client e connessione al server <host>

-u, --udp

protocollo UDP invece di TCP

-b, --bandwidth #[KMG][/#]

velocità massima in bit/s (0 - nessun limite); per impostazione predefinita, non c'è limite di velocità per TCP, mentre per UDP è di 1 Mbit/s (opzione /# per il trasferimento dati in modalità batch)

-t, --time #

tempo di test in secondi (predefinito 10 secondi)

-n, --bytes #[KMG]

numero di byte da trasferire (invece dell'opzione -t)

-l, --len #[KMG]

dimensione del buffer (predefinito 128 KB per TCP, 8 KB per UDP)

-P, --parallel #

numero di flussi client simultanei concorrenti

-R, --reverse

modalità inversa: il server invia il traffico, il client lo riceve.

-4, --version4

utilizza solo IPv4

-6, --version6

utilizza solo IPv6

-Z, --zerocopy

metodo di invio dei dati utilizzando la tecnologia Zero Copy per ridurre il carico della CPU

-O, --omit N

salta i primi n secondi (ignora l'algoritmo TCP slowstart)

--get-server-output

ottieni i risultati dal server

Ecco alcuni esempi di utilizzo dei comandi iperf3 con diverse opzioni:

Avvio di un server (con impostazioni predefinite):

iperf3 -s

Avvio di un client (con impostazioni predefinite):

iperf3 -c 192.168.1.143

Nei nostri esempi, 192.168.1.143 è l'indirizzo IP del server iperf3.

Nota

Un server può accettare connessioni da un solo client alla volta. Se il server è occupato con un altro client, quando si tenta di eseguire il test apparirà un messaggio di errore: server is busy running a test. try again later. In questo caso, è necessario attendere che il server si renda disponibile.

Tuttavia, è anche possibile eseguire più istanze di client e server sullo stesso host. Per fare ciò, utilizzare porte diverse con l'opzione -p <port>.

Ad esempio, è possibile aprire due finestre del prompt dei comandi sul server ed eseguire il seguente comando in una di esse:

iperf3 -s 5005 (il server è in esecuzione sulla porta 5005)

e in un'altra finestra:

iperf3 -s -p 5006 (il server è in esecuzione sulla porta 5006)

Ora, su un client, eseguire il comando per connettersi al server in esecuzione sulla porta 5005:

iperf3 -c -p 5005 192.168.1.143

e sul secondo client, eseguire il comando per connettersi al server in esecuzione sulla porta 5006:

iperf3 -c -p 5006 192.168.1.143

Avvio di un client con output più dettagliato:

iperf3 -Vc 192.168.1.143 

iperf3 -c -V 192.168.1.143

Per impostazione predefinita, iperf3 funziona come segue: il server riceve i dati e il client li invia. Per testare la velocità in entrata sul client, è necessario utilizzare la modalità inversa e aggiungere l'opzione -R al comando:

iperf3 -c 192.168.1.143 -R

Per aumentare la durata del test (l'impostazione predefinita è di 10 secondi), utilizzare l'opzione -t <sec>:

iperf3 -c 192.168.1.143 -R -t 60

Lo strumento supporta la modalità di test multithread. Per specificare il numero di thread, utilizzare l'opzione -P <streams> (in questo esempio, il test verrà eseguito in 2 thread):

iperf3 -c 192.168.1.143 -R -t 60 -P 2

Durante il test con le impostazioni predefinite, i risultati vengono visualizzati ogni secondo. Utilizzando l'opzione -i <sec>, è possibile modificare l'intervallo di tempo per la visualizzazione dei risultati (in questo esempio, l'intervallo è aumentato a 3 secondi):

iperf3 -c 192.168.1.143 -R -t 60 -P 2 -i 3

È inoltre possibile specificare la quantità di traffico da trasferire durante il test. Per fare ciò, utilizzare l'opzione -n <bytes>[KMG] invece di -t:

iperf3 -c 192.168.1.143 -R -n 500M -P 2 -i 3

Per impostazione predefinita, il test viene eseguito utilizzando il protocollo TCP, ma è disponibile anche il supporto per il protocollo UDP. Per utilizzarlo, usare l'opzione -u:

iperf3 -Vc 192.168.1.143 -u -R -t 60

A differenza di TCP, il protocollo UDP non utilizza algoritmi di controllo della consegna dei pacchetti e di controllo della velocità di trasmissione e si comporta in modo diverso sulla rete. Poiché UDP non controlla la velocità di trasmissione dei dati, questa operazione deve essere eseguita dall'applicazione che trasmette il traffico. Per impostazione predefinita, il limite di velocità massima per il traffico UDP è impostato su 1 Mbit/s. Non impostare la velocità massima per il protocollo UDP troppo alta, poiché ciò potrebbe sovraccaricare la rete (si consiglia di impostare questo parametro su 100 Mbit/s). È possibile impostare il limite di velocità massima utilizzando l'opzione -b <bits>[KMG]:

iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M

Si noti anche l'opzione -l <bytes>, che imposta la lunghezza del pacchetto. In modalità UDP, impostare questo parametro a non più di 1400 byte.

iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M -l 1400