iperf3 to otwarto-źródłowe narzędzie do testowania wydajności sieci (przepustowości łącza). Pozwala mierzyć maksymalną prędkość transmisji danych między dwoma punktami oraz dodatkowe parametry sieciowe (np. opóźnienie, wariacje opóźnienia, utratę pakietów). Działa w architekturze klient-serwer – na jednym hoście uruchamiany jest serwer (nasłuchujący), a na drugim klient inicjujący połączenie. iperf3 obsługuje zarówno protokół TCP, jak i UDP (lub nawet SCTP), a także IPv4 i IPv6. Jest dostępny na różnych systemach (Linux, Windows, VMware itp.) i zwykle instalowany z menedżera pakietów (np. apt
, yum
).
-s
) na jednej maszynie i w trybie klienta (-c
) na drugiej. Klient nawiązuje połączenie TCP do serwera (domyślnie na port 5201) i wysyła strumień danych, który serwer przyjmuje i mierzy. Test jest jednokierunkowy – domyślnie to klient wysyła dane do serwera. W trybie UDP (z opcją -u
) klient wysyła pakiety UDP z zadaną przepustowością (pomiar może uwzględniać utratę pakietów i zmienność opóźnienia). Przełącznik -R
lub --reverse
odwraca kierunek transmisji: połączenie i tak inicjuje klient, ale to serwer przesyła dane do klienta.-b
. Domyślnie przy UDP iperf3
ustawia 1 Mbit/s, a przy TCP brak limitu (test trwa domyślnie 10 s).-t
), liczbę równoległych strumieni (-P
), lub format wyjściowy (--json
). Serwer i klient powinny użyć tych samych wartości portu (-p
). Dodatkowo przydatne są flagi -4
/-6
, by wymusić IPv4 lub IPv6.-s
, --server
– uruchamia iperf3 w trybie serwera nasłuchującego. Serwer nasłuchuje na porcie domyślnym 5201 (można zmienić z -p
). W trybie serwera program akceptuje jedno połączenie od klienta.-c
, --client
– uruchamia tryb klienta, łącząc się do wskazanego serwera. Parametr
podaje adres IP lub nazwę serwera iperf3, do którego klient wysyła dane.-t
, --time
– długość trwania testu w sekundach. Domyślnie test trwa 10 s; opcja -t
pozwala zmienić czas trwania.-p
, --port
– port TCP/UDP, na którym serwer nasłuchuje i do którego klient się łączy. Domyślnie jest to 5201. Użyte, gdy potrzebujemy niestandardowego portu (np. z powodu ograniczeń sieci).-u
, --udp
– włącza test w trybie UDP zamiast TCP. W trybie UDP można dodatkowo określić przepustowość pakietów przez opcję -b
.-b
, --bandwidth
– celowana przepustowość do transmisji. Format
to np. 100M
dla 100 megabitów/s. Przy UDP ta wartość oznacza szybkość wysyłania pakietów (domyślnie 1Mbit/s), a przy TCP może ograniczać strumień (domyślnie “nieograniczony”).-J
, --json
– wynik testu wyświetlany w formacie JSON (przydatne do dalszej analizy).--logfile
– zapisuje wynik testu do wskazanego pliku, zamiast (lub obok) wyświetlania na ekranie.-R
, --reverse
– tryb odwrócony: klient inicjuje połączenie do serwera, ale to serwer wysyła dane do klienta. Pozwala zmierzyć prędkość ściągania (download), zachowując tę samą ścieżkę połączenia.-V
, --verbose
– szczegółowe informacje diagnostyczne o teście (opcjonalnie).