Microsoft INVITA A NON UTILIZZARE IPERF3 IN Windows: QUESTE LE MOTIVAZIONI
iperf3 è un Software mantenuto da un’organizzazione chiamata ESnet (Energy Sciences Network). Microsoft ne sconsiglia l’utilizzo in ambiente Windows, innanzi tutto perché l’applicazione non effettua chiamate native utilizzando le API dell’azienda di Redmond ma soltanto chiamate Linux/POSIX.
La comunità di iperf3 utilizza Cygwin come livello di emulazione che permette il funzionamento dell’utilità su Windows. Tuttavia, ciò comporta potenziali problemi di compatibilità e prestazioni, poiché non tutte le funzionalità di iperf3 sono supportate in Windows. L’emulazione stesso può essere responsabile di cali di performance, soprattutto quando si devono verificare parametri sensibili alla latenza.
James Kehr, del team Windows Networking Microsoft, racconta che anche gli sviluppatori di iperf3 non raccomandano l’uso della loro applicazione in Windows. Mentre l’azienda di Redmond suggerisce di ripiegare, al posto di iperf3, su strumenti alternativi come ntttcp (Windows NT Test TCP) e ctsTraffic. Entrambe, infatti, sono programmi Windows nativi che assicurano prestazioni migliori rispetto a iperf3 e risultati attendibili.
COME UTILIZZARE ntttcp
ntttcp è un tool nativo Windows che consente l’esecuzione di test di rete sintetici tra diverse piattaforme, inclusi Windows e Linux. I test di rete sintetici sono progettati per simulare e valutare le prestazioni di una rete in condizioni controllate e riproducibili. Utilizzano strumenti software o Hardware per generare traffico di rete in maniera artificiosa e misurare vari parametri, come la larghezza di banda, la latenza, la perdita di pacchetti e altre metriche di prestazione.
Microsoft fornisce un paio di esempi per avviare il server e il client ntttcp ed eseguire test di trasferimento dati su una determinata connessione, con parametri specifici per controllare la durata della prova, la lunghezza del buffer e altri dettagli.
Per attivare il modulo server di ntttcp (il progetto è mantenuto su GitHub), si può usare la sintassi seguente:
ntttcp -r -m 1,*,
La prima opzione -r specifica l’avvio del server ntttcp; -m 1,*,
Lato client, il seguente comando invierà il traffico di rete verso l’IP del server ntttcp specificato:
ntttcp -s -m 1,*,
Il riferimento a -l 128K imposta la lunghezza del buffer utilizzato per i trasferimenti di rete. In questo caso, il buffer è impostato a 128 KB.
COME UTILIZZARE ctstraffic
Un’utilità molto simile a ntttcp è ctsTraffic, anch’essa consigliata da Microsoft. Pure disponibile su GitHub, ctsTraffic utilizza anch’essa un approccio client-server basato su riga di comando.
Per avviare il modulo server, ad esempio, l’azienda di Redmond suggerisce la seguente sintassi:
L’istruzione proposta specifica che il server ctsTraffic sia posto in ascolto su tutte le interfacce di rete disponibili, imposta la lunghezza del buffer a 128 KB, trasferire 1 TB di dati, chiede di arrestare il server dopo un solo trasferimento e configura la modalità di verbosità della console per visualizzare i dettagli durante l’esecuzione del test. Il limite di tempo per l’esecuzione del test è fissato a 60.000 millisecondi, ovvero 60 secondi.
Lato client, invece, si può utilizzare il comando seguente:
ctstraffic.exe -target:
Il riferimento al target, permette di indicare l’indirizzo IP del server a cui inviare i dati. Successivamente si specificano il numero di connessioni TCP simultanee che il client utilizzerà per inviare dati al server, in questo caso, una. Le altre opzioni sono sovrapponibili a quelle già viste in precedenza.
In generale, i risultati più attendibili sembrano prodotti da un tool come ntttcp.