0887 371 498 support@itservice-bg.net
iperf3 – инструмент за тестване на мрежовата скорост
16.04.2024 · Самуил Арсов · Debian, Hosting, Kali Linux, Linux commands, Ubuntu

iperf3 – инструмент за тестване на мрежовата скорост

Програмата iperf3 е инструмент за тестване на мрежовата скорост. Тя позволява да измерваш максималната пропускливост на TCP и UDP връзки между две машини в мрежата. iperf3 е разработен като по-нова версия на оригиналния iperf и добавя множество нови функции и подобрения.

С помощта на iperf3 можеш да извършваш различни видове тестове, като настройка на различни параметри на TCP/UDP сесии, измерване на производителността на мрежата при различни условия, както и тестване на скоростта и качеството на интернет връзката. Програмата се използва предимно от системни администратори и инженери за диагностика на мрежовипроблеми и за планиране на увеличение на мрежови ресурси.

iperf3 работи като установява връзка между две машини в мрежата, едната като сървър и другата като клиент, и пренася данни между тях за определен период от време, за да измери пропускливостта на мрежата. Ето стъпките, по които обикновено протича измерването с iperf3:

Инсталиране на iperf3 в Ubuntu/Debian

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

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) покрива по-голямата част от практическите сценарии за диагностика.