13 luglio 2017

Performance di rete con iPerf3

Con questa applicazione possiamo valutare le velocità della nostra rete locale, sia da PC che da smartphone

NOTA: utilizzando un server remoto si potrebbe anche verificare la velocità della nostra connessione internet, ma a tal proposito esistono già siti internet online di più pratico utilizzo.

scarichiamo l'applicazione per Windows facendo attenzione a selezionare la versione 3:

Download

estraiamo il contenuto in una posizione arbitraria e posizionamoci all'interno dal prompt dei comandi cmd.exe

NOTA: la la versione 2 è la precedente, ed è incompatibile con la versione 3.

per quanto riguarda Linux invece, ci basterà installare il pacchetto iperf3 dal package manager, ad esempio sui sistemi che utilizzano aptitute (Debian/Ubuntu ecc...):

apt-get install iperf3

per lo smartphone invece dobbiamo recarci direttamente sui rispettivi Store ed installare l'app "HE.NET Network Tools" che contiene iperf al suo interno.

per poter effettuare il test, dobbiamo avviare due istanze di iperf3, una in modalità client e l'altra in modalità server (la scelta di quale dei due dispositivi sia il server è indifferente), su due dispositivi distinti tra i quali vogliamo valutare le performance.

NOTA: verifichiamo che tutti i firewall, anche quelli integrati nei comuni software antivirus lato server siano disattivati in quanto è necessario accettare connessioni su una determinata porta.

passiamo all'utilizzo:

apriamo su PC il prompt dei comandi, dove andremo a digitare il comando preceduto dal nome del programma "iperf3.exe" (Windows) o "iperf3" (Linux).




oppure avviamo l'applicazione HE.NET e dirigiamoci alla sezione iperf dal menu a tendina, qui dobbiamo selezionare la modalità iperf3, nello spazio bianco invece andremo a digitare il comando escludendo la parola "iperf3".

nel momento in cui premiamo "Vai", partirà il test, oppure, nel caso venga configurato come server, si metterà in ascolto, anche se per un tempo limitato, dopo il quale, se non riceverà alcuna connessione, andrà in timeout.








iperf3 è monodirezionale, per eseguire un test bidirezionale, bisogna effettuare 2 test, di cui uno col flag -R, cioè dove il flusso dei dati viaggia in senso contrario.

in alternativa a -R, potremmo anche scambiare client e server ed evitare di utilizzare tale flag, ma tale scelta, oltre che più scomoda, risulta inutile rispetto alla modalità Reverse.

una volta predisposti i due dispositivi tra i quali andremo ad effettuare il test, procediamo mettendo in ascolto uno dei due come server:

server: iperf3 -s -p 1025

NOTA: la porta 1025 è arbitraria, possiamo benissimo sceglierne un'altra purchè sia inclusa nel range 1025-65535

successivamente impostiamo il secondo dispositivo come client; sicchè partirà automaticamente il test che partirà ogni volta che eseguiremo il comando sul client:

client: iperf3 -c 192.168.1.4 -p 1025 (-R)

i dati vengono inviati dal client al server

il test dura 10 secondi di default (modificabile attraverso il flag -t <num_secondi>), dopodiché otterremo un report con la quantità dei dati trasferisti e la velocità media:


lato server:

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.01  sec  1.12 GBytes   960 Mbits/sec                  receiver


lato client:

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  1.12 GBytes   961 Mbits/sec                  sender
[  4]   0.00-10.01  sec  1.12 GBytes   961 Mbits/sec                  receiver


sender rappresenta il valore della misura effettuata dal client

receiver rappresenta il valore della misura effettuata dal server
NOTA 1: i valori relativi a "sender" lato server, sono nulli, questo è dovuto ad un bug.
NOTA 2: i rispettivi valori di banda receiver su server e client possono non coincidere perfettamente, questo è dovuto ad un differente conteggio dell'intervallo di tempo, comunque la quantità di dati trasferita è esattamente la stessa.

la situazione si inverte quando andiamo ad invertire la direzione, ossia dal server al client utilizzando i flag -R


lato server:

- - - - - - - - - - - - - - - - - - - - - - - - -


[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.01  sec  1.07 GBytes   921 Mbits/sec                  sender
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  receiver

lato client:

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  1.07 GBytes   922 Mbits/sec                  sender
[  4]   0.00-10.00  sec  1.07 GBytes   922 Mbits/sec                  receiver


sender rappresenta il valore della misura effettuata dal server

receiver rappresenta il valore della misura effettuata dal client

la configurazione del comando offerta è minimale, e serve a fare un test standard; se desideriamo integrare con ulteriori specifiche, possiamo usare i flag descritti alla seguente pagina: Documentazione