Iperf:
Iperf är ett nätverksverktyg med öppen källkod som används för att mäta genomströmning eller prestanda för ett nätverk. Den kan användas för att testa TCP och UDP. Iperf kan användas i Windows, Linux och MAC etc operativsystem.
Syftet med denna artikel:
Det finns olika versioner av Iperf, vi fokuserar bara på Iperf version 2.+ endast. Denna version används ofta i alla system.
Allmänt inställningsdiagram:
Iperf fungerar i serverklientmodell vilket innebär att det borde finnas en server och en klient för att starta Iperf-trafikflöde.
Trådlös anslutning
Från diagrammet kan vi förstå att PC1 och PC2 ska ha en giltig IP-adress.
Anslutning mellan två datorer kan vara trådbunden eller trådlös.
Faktisk inställning:
- I vårt experiment är PC1 Windows och PC2 är Linux.
- PC1 IP är 192.168.1.6 och PC2 är 192.168.0.102
- PC1 iperf-version
Kommando:
iperf --versioniperf version 2.0.5 (8 jul 2010) trådar
4. PC2 iperf-version
Kommando:
iperf --versioniperf version 2.0.5 (8 jul 2010) trådar
Iperf-förhållanden:
Det finns några villkor innan Iperf ska arbeta.
- PC1 ska pinga till PC2 och vice versa. Vi kan använda ping 192.168.1.102 från PC1-konsolen eller kommandoraden för att se om PC1 kan nå PC2. Pinga från PC2 till PC1 för att kontrollera PC1: s räckvidd från PC3.
Här är en skärmdump för ping från PC1 till PC2
Här är en skärmdump för ping från PC2 till PC1
- Båda datorerna ska vara Iperf-binära. Det är bättre att behålla samma version av Iperf eller stänga versioner. Men kom ihåg Iperf 2.0 fungerar inte med Iperf 3.0.
Notera: UDP upprättar ingen UDP-anslutning innan data överförs och UDP behöver inte någon ACK från andra sidan. Så även om IPERF-servern inte kör kan klienten skicka data till skillnad från TCP. Kontrollera alltid UDP-data på serversidan.
Viktiga Iperf-argument:
Argument | Menande |
-s | Kör server |
-c | Kör klient [Ex: -c 192.168.1.102] |
-u | UDP |
-b | Bandbredd [Används i UDP, Ex: 100M M-> Mbits] |
-i | Utgångsintervall i sek [Ex: -i1 1sek intervall] |
-t | Tid i sek [Ex: -t60 60sec] |
-sid | Portnummer [Ex: -p 5555] |
-w | Windows-storlek [Ex: -w 1M M-> Mbits] |
-d | Dubbelriktad trafik |
-l | Längd [Ex: -l 1046 1046bytes] |
-V | Används när IPv6-adress används istället för IPv4 |
Det finns andra argument men används inte i allmänhet. Vi kan använda man iperf kommando i Linux för att få alla argument.
Iperf-kommandon:
Det finns många argument för Iperf-kommandot, vi kommer bara att diskutera viktiga och användbara argument. Nedan finns minsta argument som kan användas för att köra iperf.
TCP-server:
iperf -s -i1TCP-klient:
iperf -c 192.168.1.102 -i1 -t60UDP-server:
iperf -s -i1 -uUDP-klient:
iperf -c 192.168.1.102 -i1 -t60 -u -b 1000M
[/ cc]
Starta Iperf:
Nu har vi PC1 och PC2 så nedan kan kombinationer köras mellan dessa två datorer.
- TCP-server i PC1 och TCP-klient PC2
- TCP-klient i PC1 och TCP-server PC2
- UDP-server i PC1 och UDP-klient PC2
- UDP-klient i PC1 och UDP-server PC2
Experiment 1:
Låt oss prova kombination A
Här är skärmdumpen av TCP-servern i PC1.
Så först måste vi starta servern och om den lyckas kommer den att vara i listningsläge.
Här är skärmdumpen av TCP-klienten i PC2.
Här är skärmdumpen för TCP-serversidan
Nästa om vi vill prova kombination B, behöver vi bara köra TCP-server i PC2 och TCP-klient i PC1.
Experiment 2:
Låt oss prova kombination D.
Här är skärmdumpen av UDP-servern i PC2.
Så först måste vi starta servern och om den lyckas kommer den att vara i listningsläge.
Här är skärmdumpen av UDP-klienten i PC1.
Här är skärmdumpen av UDP-serverutdata i PC2
Kända fel:
- Anslutningen misslyckades eller anslutningen nekades:
När vi kör TCP-klient utan TCP-server inträffar detta fel.
Här är skärmdumpen
- UDP utan server:
När vi kör UDP-klient utan server kan vi identifiera detta med några observationer
- När UDP-klientgenomströmningen är klar bör vi inte göra någon serverrapport för genomsnittet. Kontrollera punkten B i skärmdumpen nedan.
- Genomströmningen kan vara högre än den anslutna bandbredden. Kontrollera punkten A i skärmdumpen nedan.
- Här är den förväntade skärmdumpen för UDP-klienten
Något experimentellt argument:
-w:
Fönsterstorleken kan ökas.
Här är skärmdumpen för standard och anpassad Windows-storlek:
-jag:
Intervallet kan ökas.
Här -t 20sec och -i 5sec så vi ska se Iperf-utdata vid 5sec intervall. Här är skärmdumpen.
Sammanfattning:
För att mäta prestanda i fast eller trådlöst nätverk är Iperf grundkravet. Eftersom det är en öppen källkod kan den användas utan licens. Iperf ger ganska exakta resultat jämfört med licensverktyg som IxChariot.