iperf3: Tutorial pentru măsurarea vitezei între două dispozitive LAN și WiFi

iperf3 este cea mai recentă versiune a popularului program iperf pentru măsurarea lățimii de bandă între două sau mai multe computere dintr-o rețea locală sau Internet. Această nouă versiune iperf3 nu este compatibilă cu vechiul iperf2, prin urmare, trebuie să actualizăm atât serverul, cât și clientul, dacă dorim să folosim acest nou program. Acest instrument vă permite să ajustați diferiți parametri într-un mod foarte avansat, legat de protocoalele TCP, UDP și SCTP, desigur, este compatibil atât cu rețelele IPv4, cât și cu cele IPv6. Iperf3 a suferit un număr mare de îmbunătățiri care permit să stoarce și mai mult performanța reală a rețelei locale, prin urmare, este ideal pentru efectuarea testelor de performanță ale echipamentelor Multigigabit și chiar 10G. Doriți să știți cum să îl descărcați și să îl utilizați pentru a măsura performanța?

În acest articol folosim iperf3 de mult timp, pentru a măsura performanța pe care o obținem în LAN-LAN, LAN-WAN și WiFi 6 teste. Am constatat că se comportă mult mai bine decât iperf2 imediat ce depășim viteza de 1 Gbps, prin urmare, atunci când folosim routerele, comutatoarele sau punctele de acces WiFi 6, folosim acest program care ne oferă o măsurare mai precisă a vitezei pe care o atingem .

hiperf3

În acest tutorial vă vom învăța cum să utilizați acest program foarte interesant pentru a măsura viteza reală dintre două computere, indiferent dacă acestea sunt conectate la rețeaua LAN locală sau la Internet, deoarece folosind protocoalele TCP și UDP, putem deschide un port pe server pentru ca unul sau mai mulți clienți să comunice direct și să verifice viteza reală.

Caracteristici principale Iperf3

iperf3 este un program complet reînnoit, care nu are nimic de-a face cu iperf2, deoarece acestea nu sunt compatibile între ele. iperf3 moștenește cele mai bune dintre iperf2 și încorporează noi caracteristici care ne permit să efectuăm măsurători la viteze multigigabit fără probleme. Pentru fiecare test pe care îl efectuăm, acesta ne va informa despre încărcarea și descărcarea lățimii de bandă, pierderea pachetelor și alți parametri.

În ceea ce privește protocoalele TCP și SCTP, este capabil să măsoare lățimea de bandă, să raporteze dimensiunea MTU (Maximum Transfer Unit) și MSS (Maximum Segment Size), în plus, suportă și configurarea dimensiunii ferestrei TCP prin socket tampon. În ceea ce privește UDP, clientul poate crea diferite fluxuri de date UDP, permite măsurarea pierderii de pachete, jitter (delay jitter) și chiar suportă multicast. Clientul permite să stabilească mai multe conexiuni simultane cu serverul, în plus, serverul este capabil să primească mai multe conexiuni simultane din mai multe surse diferite. Desigur, îl putem rula pentru un anumit timp sau definind o anumită cantitate de date de trimis.

Alte caracteristici importante ale iperf3 sunt capacitatea de a arăta periodic starea conexiunii, lățimea de bandă de până acum, jitter-ul, pierderea pachetelor etc. Putem, de asemenea, să facem ca serverul iperf să funcționeze ca un daemon în sistemul de operare. Alte caracteristici noi incorporate sunt posibilitatea de a ignora TCP Slowstart din protocolul TCP în sine, setarea lățimii de bandă pentru UDP sau TCP, setarea unei etichete de flux pentru IPv6, configurarea algoritmului de control al congestiei și posibilitatea obținerii tuturor informațiilor în format JSON și putem chiar să efectuăm teste de citire și scriere direct pe hard disk.

Acest nou program iperf3 este licențiat BSD, ceea ce înseamnă că este open source și multiplataforma, este compatibil cu ferestre din, Linux, Android, MacOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, sisteme de operare Solaris și multe altele.

Descărcare și instalare Iperf3

Acest program își continuă dezvoltarea, pe site-ul oficial Iperf3 aveți cele mai recente versiuni disponibile pentru diferite sisteme de operare. Odată descărcat, va trebui să dezarhivăm fișierul ZIP și îl vom putea executa, dar în acest caz nu avem o interfață grafică de utilizator sau un script executabil, trebuie să-l executăm prin linia de comandă, fie în Windows, fie în Windows. Linux / MacOS.

Rularea iperf3 pe Windows, Linux și macOS

Odată ce am dezarhivat ZIP-ul descărcat, intrăm în promptul de comandă (cmd) sau terminalul Linux, ne deplasăm cu comanda „cd” prin diferite directoare, iar când suntem în directorul iperf3, trebuie să-l executăm în modul server pe un computer și în modul client pe un alt computer:

iperf3.exe ./iperf3

Desigur, atunci când îl executăm, vom primi ajutorul iperf, deoarece nu am pus argumente.

Funcționare și primul test de viteză

Funcționarea iperf3 este foarte simplă, primul lucru despre care trebuie să fim clar este că este un program care se execută prin linia de comandă și avem diferite argumente pentru a-i configura comportamentul. Când vă confruntați cu un program client-server, este necesar să rulați două iperf3, unul pe un computer ca server și un alt iperf ca un client pentru a verifica viteza de la client la server.

Pentru a porni iperf3 în modul server:

iperf3.exe -s ./iperf3 -s

Pentru a porni iperf3 în modul client cu anumite opțiuni pe care le vom explica mai târziu:

iperf3.exe -c IP -P 50 -fg -t 5

Odată ce știm cum să efectuăm un test de performanță de bază cu iperf3, vă vom arăta toate opțiunile disponibile în acest program.

Opțiuni generale de configurare: pentru client și server

Următoarele argumente pot fi introduse după executarea programului în sine, după cum urmează: „iperf3 -arguments” și ordinea la introducerea argumentelor nu contează.

  • -p port: putem alege portul de utilizat, fie TCP, fie UDP, acest port trebuie să fie exact atât pe server, cât și pe toți clienții.
  • –Port port: această opțiune ne permite să specificăm portul pe partea clientului, numai pentru iperf 3.1 sau mai mare.
  • -formatul f: putem alege unitatea de măsură care va apărea când vom vedea viteza.
    • k: Kbiți
    • K: Kbyte / s
    • m: Mbiți
    • M: MBytes/s
    • g: Gbps
    • G: GBytes/s
  • -interval i: interval de timp măsurat în secunde în care iperf3 ne va arăta toate informațiile despre lățimea de bandă, jitter și pierderea pachetelor. În mod implicit, este 0.
  • -Nume fișier: pe client este fișierul citit și scris în rețeaua locală, în loc să folosească informații aleatorii. Pe server este ceea ce este citit din rețea și scris într-un fișier.
  • -Gazdă: permite legarea la o anumită placă de rețea, ideală dacă avem mai multe interfețe.
  • -V: ieșire cu toate detaliile (detaliate)
  • -J: ieșire în format JSON
  • –Fișier Logfile: trimiteți ieșirea către un fișier jurnal (numai iperf 3.1)
  • –D: depanare
  • -v: versiunea programului
  • -h: lansați ajutorul programului

Opțiuni de configurare numai pentru server

Următoarele argumente pot fi introduse după executarea programului în sine, după cum urmează: „iperf3 -arguments” și ordinea la introducerea argumentelor nu contează. Aceste argumente pot fi utilizate numai pe serverul iperf3.

  • -s: pornește iperf în modul server.
  • -D: porniți programul în fundal ca un demon.
  • -I: scriu un fișier cu ID-ul procesului, ideal pentru utilizare cu -D (daemon).

Mai jos, puteți vedea câteva exemple.

Putem rula serverul iperf3 în mod implicit, acesta va folosi automat protocolul TCP pe portul 5201.

iperf3.exe -s

Putem rula serverul iperf3 cu TCP și portul 5000 în felul următor:

./iperf3 -s -p 5000

Opțiuni de configurare numai pentru clienți

Următoarele argumente pot fi introduse după executarea programului în sine, după cum urmează: „iperf3 -arguments” și ordinea la introducerea argumentelor nu contează. Aceste argumente pot fi utilizate numai în clientul iperf3.

  • -c IP_address: pornește iperf în modul client pentru a ne conecta la un server, trebuie să definim adresa IP imediat după.
  • –Sctp - Utilizați acest protocol SCTP în loc de TCP (implicit).
  • -u: utilizați protocolul UDP în locul TCP (implicit).
  • -b lățime de bandă: permite definirea unei lățimi de bandă în N biți / sec, în mod implicit este de 1 MB / s în UDP și nelimitat în TCP. Dacă folosim argumentul -P pentru a trimite mai multe fluxuri de date, această lățime de bandă se aplică fiecăruia dintre ele.
  • -t timp: în secunde pentru a transmite informații la viteza maximă. În mod implicit, sunt 10 secunde, dar putem pune ceea ce dorim.
  • -n număr: numărul de date de transmis, în loc să folosim timpul (-t) folosim date.
  • -k pachete: numărul de pachete de transmis, în loc să utilizeze timpul (-t) sau datele (-n).
  • -l (litere mici): lungimea bufferului citit sau scris.
  • -Numărul P: numărul de fluxuri de date simultane, se recomandă să puneți 5 sau mai mult pentru a stoarce rețeaua la maxim.
  • -R: traficul iperf merge în mod normal de la client la server, dacă punem acest argument, traficul va merge de la server la client.
  • -w size: specificați dimensiunea ferestrei TCP
  • -M mss: permite configurarea TCP MSS
  • -N: configurează opțiunea TCP fără întârziere.
  • -4: folosim rețele IPv4.
  • -6: folosim rețele IPv6.
  • -S: tip de serviciu pentru pachetele de ieșire.
  • -L etichetă: vă permite să configurați eticheta de flux pentru rețelele IPv6.
  • -Z: folosește metoda de copiere zero, reduce considerabil utilizarea procesorului de către program.
  • -O secunde: săriți primele X secunde ale testului, pentru a evita problemele cu pornirea lentă a TCP și pentru a ne oferi o măsurare fără explozia la început.
  • -Titlu: vă permite să puneți un titlu în fața fiecărui șir
  • -Algoritmul C: vă permite să configurați algoritmul de congestie, numai în Linux cu iperf 3.0 și în FreeBSD cu iperf 3.1

Mai jos, puteți vedea câteva exemple.

Putem rula clientul iperf3 cu câteva argumente foarte interesante:

iperf3.exe -c 192.168.1.10 -P 50 -p 5000 -fg -t 5

  • -c 192.168.1.10: funcționează în modul client cu IP-ul definit.
  • -P 50: trimitem un total de 50 de conexiuni TCP
  • -p 5000: folosim portul 5000, implicit este 5201
  • -fg: arătăm viteza în Gbps
  • -t 5: lansăm testul timp de 5 secunde.

După cum ați văzut, acest program iperf3 este foarte simplu, deoarece ne permite să rulăm un iperf cu o interfață grafică de utilizator, fără a fi nevoie să introduceți comenzi și argumente complicate.