iperf3: Handledning för att mäta hastighet mellan två LAN- och WiFi-enheter

iperf3 är den senaste versionen av det populära iperf-programmet för att mäta bandbredden mellan två eller flera datorer i ett lokalt nätverk eller Internet. Denna nya iperf3-version är inte kompatibel med den gamla iperf2, därför måste vi uppdatera både servern och klienten om vi vill använda det nya programmet. Detta verktyg låter dig justera olika parametrar på ett mycket avancerat sätt, relaterat till TCP-, UDP- och SCTP-protokoll, naturligtvis är det kompatibelt med både IPv4- och IPv6-nätverk. Iperf3 har genomgått ett stort antal förbättringar som gör det möjligt att pressa ännu mer den verkliga prestandan hos det lokala nätverket, därför är den idealisk för att utföra prestandatest av Multigigabit och till och med 10G-utrustning. Vill du veta hur du laddar ner den och använder den för att mäta prestanda?

I den här artikeln har vi använt iperf3 under lång tid för att mäta prestanda vi får i LAN-LAN, LAN-WAN och WiFi 6 tester. Vi har upptäckt att den beter sig mycket bättre än iperf2 så snart vi överskrider hastigheten på 1 Gbps, därför använder vi det här programmet som ger oss en mer exakt mätning av hastigheten vi uppnår när vi använder routrar, switchar eller WiFi 6-åtkomstpunkter. .

iperf3

I denna handledning kommer vi att lära dig hur du använder detta mycket intressanta program för att mäta den verkliga hastigheten mellan två datorer, oavsett om de är anslutna till det lokala nätverket eller Internet, eftersom genom att använda TCP- och UDP-protokollen, Vi kan öppna en port på servern för en eller flera klienter att kommunicera direkt och kontrollera den verkliga hastigheten.

Iperf3 huvudfunktioner

iperf3 är ett helt förnyat program som inte har något att göra med iperf2, eftersom de inte är kompatibla med varandra. iperf3 ärver det bästa av iperf2 och innehåller nya funktioner så att vi utan problem kan utföra mätningar i multigigabit-hastigheter. För varje test som vi utför kommer det att informera oss om uppladdnings- och nedladdningsbandbredd, paketförlust och andra parametrar.

När det gäller TCP- och SCTP-protokollet kan den mäta bandbredd, rapportera storleken på MTU (Maximum Transfer Unit) och MSS (Maximum Segment Size), dessutom stöder den också att konfigurera TCP-fönsterstorleken genom uttaget buffert. När det gäller UDP kan klienten skapa olika UDP-dataströmmar, gör det möjligt att mäta paketförlust, jitter (fördröjningsjitter) och till och med stöder multicast. Klienten tillåter att upprätta flera samtidiga anslutningar med servern, dessutom kan servern ta emot flera samtidiga anslutningar från flera olika källor. Naturligtvis kan vi köra den under en viss tid eller definiera en viss mängd data som ska skickas.

Andra viktiga funktioner i iperf3 är förmågan att periodiskt visa anslutningsstatus, bandbredd hittills, jitter, paketförlust etc. Vi kan också få iperf-servern att fungera som en demon i operativsystemet. Andra nya funktioner som ingår är möjligheten att ignorera TCP Slowstart från TCP-protokollet i sig, ställa in bandbredd för UDP eller TCP, ställa in en flödesetikett för IPv6, konfigurera trängselskontrollalgoritmen och möjligheten att få all information i formatet JSON, och vi kan till och med utföra läs- och skrivtester direkt på hårddisken.

Detta nya iperf3-program är BSD-licensierat, det betyder att det är öppen källkod och plattform, det är kompatibelt med Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris operativsystem och många andra.

Iperf3 nedladdning och installation

Detta program fortsätter sin utveckling på officiella Iperf3-webbplats du har de senaste versionerna tillgängliga för de olika operativsystemen. När vi väl har laddat ner måste vi packa upp ZIP-filen och vi kan köra den, men i det här fallet har vi inte ett grafiskt användargränssnitt eller ett körbart skript, vi måste köra den via kommandoraden, antingen i Windows eller Linux / MacOS.

Kör iperf3 på Windows, Linux och macOS

När vi väl har packat upp den nedladdade ZIP, kommer vi in ​​kommandotolken (cmd) eller Linux-terminalen, vi flyttar med kommandot "cd" genom de olika katalogerna, och när vi befinner oss i iperf3-katalogen måste vi köra det i serverläge på en dator och i klientläge på en annan dator:

iperf3.exe ./iperf3

Naturligtvis, när vi kör det, kommer vi att få hjälp av iperf, eftersom vi inte har lagt fram några argument.

Drift och första hastighetstest

Användningen av iperf3 är mycket enkel, det första vi måste vara tydliga med är att det är ett program som körs via kommandoraden, och vi har olika argument för att konfigurera dess beteende. När du står inför ett klient-serverprogram är det nödvändigt att köra två iperf3-enheter, en på en dator som server och en annan iperf som en klient för att kontrollera hastigheten från klienten till servern.

Så här startar du iperf3 i serverläge:

iperf3.exe -s ./iperf3 -s

För att starta iperf3 i klientläge med vissa alternativ som vi kommer att förklara senare:

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

När vi väl vet hur man utför ett grundläggande prestandatest med iperf3, kommer vi att visa dig alla tillgängliga alternativ i detta program.

Allmänna konfigurationsalternativ: för klient och server

Följande argument kan anges efter själva programmet, enligt följande: “iperf3 -argument” och ordningen när du anger argumenten spelar ingen roll.

  • -p-port: vi kan välja vilken port som ska användas, antingen TCP eller UDP, den här porten måste finnas exakt både på servern och på alla klienter.
  • –Cport-port: det här alternativet tillåter oss att ange porten på klientsidan, endast för iperf 3.1 eller högre.
  • -f-format: vi kan välja den måttenhet som ska visas när vi ser hastigheten.
    • k: Kbits
    • K: Kbyte/s
    • m: Mbits
    • M: MByte/s
    • g: Gbps
    • G: GByte/s
  • -i intervall: tidsintervall uppmätt i sekunder där iperf3 visar oss all information om bandbredd, jitter och paketförlust. Som standard är det 0.
  • -F filnamn: på klienten läses och skrivs filen på det lokala nätverket istället för att använda slumpmässig information. På servern är det vad som läses från nätverket och skrivs till en fil.
  • -B-värd: tillåter bindning till ett specifikt nätverkskort, perfekt om vi har flera gränssnitt.
  • -V: utdata med alla detaljer (närmare)
  • -J: utdata i JSON-format
  • –Loggfil: skicka utdata till en loggfil (endast iperf 3.1)
  • –D: felsöka
  • -v: programversion
  • -h: starta programhjälpen

Konfigurationsalternativ för endast server

Följande argument kan anges efter själva programmet, enligt följande: “iperf3 -argument” och ordningen när du anger argumenten spelar ingen roll. Dessa argument kan endast användas på iperf3-servern.

  • -s: starta iperf i serverläge.
  • -D: starta programmet i bakgrunden som en demon.
  • -Jag: skriv en fil med process-ID, perfekt för användning med -D (daemon).

Nedan kan du se några exempel.

Vi kan köra iperf3-servern som standard, den använder automatiskt TCP-protokollet på port 5201.

iperf3.exe -s

Vi kan köra iperf3-servern med TCP och port 5000 på följande sätt:

./iperf3 -s -p 5000

Konfigurationsalternativ endast för kunder

Följande argument kan anges efter själva programmet, enligt följande: “iperf3 -argument” och ordningen när du anger argumenten spelar ingen roll. Dessa argument kan endast användas i iperf3-klienten.

  • -c IP_address: starta iperf i klientläge för att ansluta till en server, vi måste definiera IP-adressen direkt efter.
  • –Sctp - Använd detta SCTP-protokoll istället för TCP (standard).
  • -u: använd UDP-protokoll istället för TCP (standard).
  • -b bandbredd: gör det möjligt att definiera en bandbredd i N bitar / sek, som standard är det 1MB / s i UDP och obegränsat i TCP. Om vi ​​använder argumentet -P för att skicka flera dataströmmar tillämpas denna bandbredd på var och en av dem.
  • -t-tid: i sekunder för att överföra information med maximal hastighet. Som standard är det 10 sekunder, men vi kan sätta vad vi vill.
  • -n nummer: antal data som ska sändas, istället för att använda tid (-t) använder vi data.
  • -k-paket: antal paket som ska sändas istället för att använda tid (-t) eller data (-n).
  • -l (gemener L): buffertens längd läst eller skriven.
  • -P-nummer: antal samtidiga dataflöden, det rekommenderas att sätta 5 eller högre för att pressa nätverket maximalt.
  • -R: iperf-trafik går normalt från klienten till servern, om vi lägger detta argument kommer trafiken från servern till klienten.
  • -w-storlek: ange TCP-fönsterstorlek
  • -M mss: tillåter konfigurering av TCP MSS
  • -N: konfigurerar alternativet TCP no-delay.
  • -4: vi använder IPv4-nätverk.
  • -6: vi använder IPv6-nätverk.
  • -S: typ av tjänst för utgående paket.
  • -L-etikett: låter dig konfigurera flödesetiketten för IPv6-nätverk.
  • -Z: använder noll-kopieringsmetoden, minskar kraftigt CPU-användningen av programmet.
  • -O sekunder: hoppa över de första X sekunderna av testet, för att undvika problem med TCP slowstart och för att ge oss en mätning utan burst i början.
  • -T-titel: låter dig lägga en titel framför varje sträng
  • -C-algoritm: låter dig konfigurera överbelastningsalgoritmen, endast i Linux med iperf 3.0 och i FreeBSD med iperf 3.1

Nedan kan du se några exempel.

Vi kan köra iperf3-klienten med några mycket intressanta argument:

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

  • -c 192.168.1.10: fungerar i klientläge med den definierade IP-adressen.
  • -P 50: vi skickar totalt 50 TCP-anslutningar
  • -p 5000: vi använder port 5000, standard är 5201
  • -fg: vi visar hastigheten i Gbps
  • -t 5: vi startar testet i 5 sekunder.

Som du har sett är det här iperf3-programmet väldigt enkelt eftersom det låter oss köra en iperf med ett grafiskt användargränssnitt utan att behöva ange komplicerade kommandon och argument.