iperf3 – инструмент за тестване на мрежовата скорост
Програмата iperf3 е инструмент за тестване на мрежовата скорост. Тя позволява да измерваш максималната пропускливост на TCP и UDP връзки между две машини в мрежата. iperf3 е разработен като по-нова версия на оригиналния iperf и добавя множество нови функции и подобрения.
С помощта на iperf3 можеш да извършваш различни видове тестове, като настройка на различни параметри на TCP/UDP сесии, измерване на производителността на мрежата при различни условия, както и тестване на скоростта и качеството на интернет връзката. Програмата се използва предимно от системни администратори и инженери за диагностика на мрежовипроблеми и за планиране на увеличение на мрежови ресурси.
iperf3 работи като установява връзка между две машини в мрежата, едната като сървър и другата като клиент, и пренася данни между тях за определен период от време, за да измери пропускливостта на мрежата. Ето стъпките, по които обикновено протича измерването с iperf3:
Инсталиране на iperf3 в Ubuntu/Debian
sudo apt install iperf3
- Стартиране на сървъра: На машината, която ще действа като сървър, се стартира
iperf3в режим на сървър с командатаiperf3 -s. Тази команда кара програмата да слуша за входящи връзки на стандартния порт 5201 или на друг порт, по твой избор. - Свързване на клиента: На другата машина, която ще бъде клиент, се стартира
iperf3с командатаiperf3 -c <IP_адрес_на_сървъра>. Този IP адрес е този на сървъра. Клиентът се свързва със сървъра и започва изпращането на данни. - Пренос на данни: След установяване на връзката,
iperf3на клиента започва да изпраща данни към сървъра. Пренасянето на данни продължава за зададения период от време (стандартно 10 секунди, но може да бъде променен). - Измерване на пропускливостта: Програмата измерва количеството данни, които успешно са преминали през мрежата за времето на теста. На базата на тези данни,
iperf3изчислява пропускливостта на мрежата в битове в секунда (bps), килобитове в секунда (kbps), мегабитове в секунда (Mbps) или гигабитове в секунда (Gbps). - Отчитане на резултатите: След приключване на теста, и сървърът, и клиентът получават детайлен отчет за пропускливостта, както и друга информация като загуба на пакети, време на забавяне и др.
iperf3 поддържа различни параметри за тестване, като може да се настройва типа на протокола (TCP или UDP), размера на буфера, размера на прозореца на TCP и много други опции, което позволява да тестваш мрежата при различни условия и да оцениш нейната производителност.
iperf3 сървър
sudo iperf3 -s

iperf3 клиент
sudo iperf3 -c itservice-bg.net

iperf3 предлага множество опции за конфигуриране на мрежови тестове, които позволяват на потребителите да адаптират тестовете според специфичните нужди на тяхната мрежа. Ето някои от основните опции, които iperf3 предоставя:
Общи опции:
-c, --client <hostname>: Задава сървъра, с който клиентът трябва да се свърже.-s, --server: Стартираiperf3в режим на сървър.-p, --port <port>: Задава порта, който да се използва за връзката. Стандартният порт е 5201.-i, --interval <seconds>: Задава интервала на време в секунди между последователните отчети за пропускливост.-f, --format [kmgtKMGT]: Задава единиците за измерване на пропускливостта (Kbits, Mbits, Gbits).-t, --time <seconds>: Определя продължителността на теста в секунди.-V, --verbose: Показва повече информация по време на изпълнение.
Опции за TCP:
-P, --parallel <number>: Задава броя на паралелните TCP потоци.-w, --window <size>: Задава размера на TCP прозореца (например 16KB, 1MB).-M, --set-mss <size>: Задава размера на максималния сегмент (MSS) за TCP връзките.-N, --no-delay: Изключва алгоритъма на Nagle, което е полезно за тестове на задръствания.-4, --version4: Само използването на IPv4.-6, --version6: Само използването на IPv6.
Опции за UDP:
-b, --bandwidth <bandwidth>: Задава желаната пропускливост за UDP (например 1M за 1 Mbps).-u, --udp: Използва UDP вместо стандартния TCP.--len <length>: Задава дължината на четените и писаните буфери (по подразбиране е 128 KB за TCP, 8 KB за UDP).
Разширени и експериментални опции:
-k, --blockcount <number>: Задава броя на блоковете, които да се изпратят (вместо време).--logfile <file>: Записва изхода в указан файл.--repeating-payload: Използва повтарящи се шаблони за данни за UDP, което е полезно при определени тестове.
Тези опции дават гъвкавост за прецизна настройка на теста, което прави iperf3 изключително полезен инструмент за диагностика на мрежова пропускливост.
Примерен изход
Типичен резултат от TCP тест между два сървъра в локална мрежа:
Connecting to host 192.168.1.10, port 5201
[ 5] local 192.168.1.20 port 49832 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-1.00 sec 112 MBytes 940 Mbits/sec 0
[ 5] 1.00-2.00 sec 112 MBytes 939 Mbits/sec 0
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec receiver
Transfer — общо прехвърлени данни. Bitrate — средна пропускливост. Retr — брой TCP retransmit (при 0 мрежата е стабилна).
Заключение
iperf3 е стандартният инструмент за измерване на мрежова пропускливост. Прост за стартиране — сървър с iperf3 -s, клиент с iperf3 -c <IP> — и дава точни резултати за TCP и UDP. Комбинацията от опции за паралелни потоци (-P), UDP режим (-u) и зададена честотна лента (-b) покрива по-голямата част от практическите сценарии за диагностика.