Инструмент тестирования сети — подробная инструкция iperf3 «рекомендуемый сбор»
Инструмент тестирования сети — подробная инструкция iperf3 «рекомендуемый сбор»

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Подробное объяснение того, как использовать iperf3

iperf3Это полоса пропусканиятестинструмент,Он поддерживает настройку различных параметров.,Например, протокол связи,Количество пакетов данных,Продолжительность отправки,После завершения тестовый тест сообщит о пропускной способности сети.,Скорость потери пакетов и другие параметры.

1. Установка

Операционная система: Ubuntu20.04LTS.

Откройте терминал и введите напрямую

Язык кода:javascript
копировать
sudo apt-get install iperf3

Примечание. В разных системах используются разные методы установки. Здесь мы представляем только систему Ubuntu.

2. Как использовать

Экологические предположения:

Предположим, два устройства.

IP-адрес (клиента): 192.168.3.95

IP-адрес B (сервера): 192.168.3.250

Случай 1: проверка связи TCP

Запустите окно оболочки на устройстве B (сервере) и введите команду

Язык кода:javascript
копировать
iperf -s -i 1
# Запускаем как сервер,Интервал эхо-сигнала отчета 1 с

Эффект следующий

TCP-тест восходящей линии связи:существоватьA(клиент)Запуск устройстваshellокно,Введите команду

Язык кода:javascript
копировать
iperf3 -c 192.168.3.250 -i 1 -t 10 -b 7M
#Как клиент,Подключитесь к IP-адресу сервера 192.168.3.250.,Интервал эхо-сигнала отчета 1 с,Время теста 10 с,Пропускная способность ограничена 7M.。

Результаты испытаний следующие:

Результат нашей тестовой пропускной способности здесь составляет около 7,02 МБ, поскольку мы ограничили пропускную способность тестовых данных до 7 МБ, а это означает, что фактическая пропускная способность должна быть больше этой. Во время теста, если будет обнаружено, что тестируемая пропускная способность равна. близко к ограниченной полосе пропускания. Это означает, что настройка ограничения слишком мала, и вам необходимо соответствующим образом настроить параметр -b или обратиться к индикаторному тесту, предоставленному производителем оборудования.

Затем мы устанавливаем параметр -b на 70M, и результаты теста следующие:

Видно, что фактическая скорость теста TCP-канала составляет 19,1 М/с. Мы также можем увеличить время теста, чтобы повысить точность теста.

Еще один момент: результат отправителя составляет 0 бит/сек, поскольку мы тестировали только данные восходящей линии связи. Как же проверить скорость передачи данных нисходящей линии связи?

TCP-тест нисходящей линии связи:существоватьA(клиент)Запуск устройстваshellокно,Введите команду

Язык кода:javascript
копировать
iperf3 -c 192.168.3.250 -i 1 -t 10 -b 7M -R
#Как клиент,Подключитесь к IP-адресу сервера 192.168.3.250.,Интервал эхо-сигнала отчета 1 с,Время теста 10 с,Пропускная способность ограничена 7M.,-Rдля реверсатест,Этот параметр также является главной изюминкой iperf3.,Поддерживает прямое преобразование направления отправки данных.

Результаты испытаний следующие:

Результат нашего теста пропускной способности нисходящего канала TCP составляет около 2,4 МБ.

Случай 2: UDP-тест

Вы можете продолжать использовать сервер в случае 1. Если он не открыт, обратитесь к методу открытия сервера в случае 1. Будьте осторожны, не открывайте несколько серверов одновременно.

Запустите окно оболочки на устройстве B (сервере) и введите команду

Язык кода:javascript
копировать
iperf -s -i 1
# Запускаем как сервер,Интервал эхо-сигнала отчета 1 с,Сервер не различает TCP или UDP.

Эффект следующий:

UDP-тест восходящего канала:существоватьA(клиент)Запуск устройстваshellокно,Введите команду

Язык кода:javascript
копировать
iperf3 -u -c 192.168.3.250 -b 70M -i 1 -t 10
#Запуск от имени клиента,Ограничить пропускную способность до 70M,Интервал эхо-сигнала отчета 1 с,Время теста 10 с

Результаты испытаний следующие:

Данные здесь показывают, что результат пропускной способности равен 0. Он должен отображать только результаты нисходящей линии связи, поэтому мы смотрим на результаты клиента.

Мы провели здесь тестирование и обнаружили, что пропускная способность восходящего канала UDP составила 35,4 М/с, джиттер задержки (дрожание) — 0,36 мс, а уровень потери пакетов — 12%.

Если во время теста обнаруживается, что тестируемая пропускная способность близка к ограниченной пропускной способности, это означает, что значение ограничения слишком мало. Вам необходимо соответствующим образом настроить параметр -b или обратиться к индикаторному тесту, предоставленному производителем оборудования. .

Здесь мы протестировали скорость восходящего канала UDP, так как же проверить скорость нисходящего канала UDP?

UDP-тест нисходящей линии связи:существоватьA(клиент)Запуск устройстваshellокно,Введите команду

Язык кода:javascript
копировать
iperf3 -u -c 192.168.3.250 -b 70M -i 1 -t 10 -R
#Запуск от имени клиента,Ограничить пропускную способность до 70M,Интервал эхо-сигнала отчета 1 с,Время теста 10 с

Результаты испытаний следующие:

Мы провели здесь тестирование и обнаружили, что пропускная способность восходящей линии связи UDP составила 47 М/с, джиттер задержки (дрожание) — 0,347 мс, а уровень потери пакетов — 32%. Здесь следует отметить, что -R меняет местами отправителя и получателя, поэтому статистические результаты необходимо рассчитывать со стороны получателя, иначе статистика по задержкам и потерям пакетов будет бессмысленной.

Подробная интерпретация

Мы можем напрямую обратиться к справочной документации, поставляемой вместе с системой, следующим образом:

Язык кода:javascript
копировать
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]
Server or Client:
-p, --port      # server port to listen on/connect to
-f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
-i, --interval  # seconds between periodic bandwidth reports
-F, --file name           xmit/recv the specified file
-A, --affinity n/n,m      set CPU affinity
-B, --bind      <host>    bind to a specific interface
-V, --verbose             more detailed output
-J, --json                output in JSON format
--logfile f               send output to a log file
-d, --debug               emit debugging output
-v, --version             show version information and quit
-h, --help                show this message and quit
Server specific:
-s, --server              run in server mode
-D, --daemon              run the server as a daemon
-I, --pidfile file        write PID file
-1, --one-off             handle one client connection then exit
Client specific:
-c, --client    <host>    run in client mode, connecting to <host>
-u, --udp                 use UDP rather than TCP
-b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)
(optional slash and packet count for burst mode)
-t, --time      # time in seconds to transmit for (default 10 secs)
-n, --bytes     #[KMG] number of bytes to transmit (instead of -t)
-k, --blockcount #[KMG] number of blocks (packets) to transmit (instead of -t or -n)
-l, --len       #[KMG] length of buffer to read or write
(default 128 KB for TCP, 8 KB for UDP)
--cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
-P, --parallel  # number of parallel client streams to run
-R, --reverse             run in reverse mode (server sends, client receives)
-w, --window    #[KMG] set window size / socket buffer size
-C, --congestion <algo>   set TCP congestion control algorithm (Linux and FreeBSD only)
-M, --set-mss   # set TCP/SCTP maximum segment size (MTU - 40 bytes)
-N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm -4, --version4 only use IPv4 -6, --version6 only use IPv6 -S, --tos N set the IP 'type of service' -L, --flowlabel N set the IPv6 flow label (only supported on Linux) -Z, --zerocopy use a 'zero copy' method of sending data
-O, --omit N              omit the first n seconds
-T, --title str           prefix every output line with this string
--get-server-output       get results from server
--udp-counters-64bit      use 64-bit counters in UDP test packets
--no-fq-socket-pacing     disable fair-queuing based socket pacing
(Linux only)
[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-
iperf3 homepage at: http://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf

Мы извлекли некоторые параметры, которые я использовал в процессе тестирования, и выполнили некоторый перевод и интерпретацию.

Язык кода:javascript
копировать
Client/Server: # Параметры, общие для клиента и сервера
Укажите номер порта, по умолчанию 5201             
-p, --port      # server port to listen on/connect to 
Интервал между повторными отчетами                       
-i, --interval  # seconds between periodic bandwidth reports 
Показать меню помощи  
-h, --help               print this message and quit   
показать версию
-v, --version            print version information and quit    
Server specific:  #Частные параметры на стороне сервера
Укажите запуск в качестве сервера                                                            
-s, --server             run in server mode                                               
Client specific:  #Личные параметры клиента
Параметр пропускной способности, единица измерения: байты в секунду: KMG, который представляет собой n-ную степень 2, например 1K=1024, установка 0 означает отсутствие ограничений, по умолчанию этот параметр UDP равен 1 М/с, TCP не имеет ограничений. 
-b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)
(optional slash and packet count for burst mode) 
Укажите запуск в качестве клиента, а затем IP-адрес сервера.                            
-c, --client    <host>   run in client mode, connecting to <host>   
режим udp, без -u по умолчанию используется режим tcp
-u, --udp                use UDP rather than TCP   
Укажите время теста. Без параметров значение по умолчанию — тест10 с.        
-t, --time      # time in seconds to transmit for (default 10 secs) 
Флип-тест, это главная особенность iperf3, он более удобен, чем iperf2, iperf2 не поддерживает эту функцию и не может быть использован   
-R, --reverse            reverse the test (client receives, server sends)  
Размер окна TCP, по умолчанию нет верхнего предела, этот параметр не нужно задавать, и этот параметр не требуется при использовании режима тестирования UDP. , единица измерения: КМ, 1К=1024     
-w, --window    #[KMG] set window size / socket buffer size 

· · ·

Приглашаем всех старых друзей присоединиться к нам одним щелчком мыши. В этом аккаунте будут продолжать обновляться статьи и знания, связанные с Raspberry Pi, искусственным интеллектом, автомобилями STM32 и ROS.

Если вас интересуют очки знаний, вы можете оставить сообщение под статьей, и я смогу объяснить вам это в первую очередь.

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Full Stack Programmer - User IM, укажите источник для перепечатки: https://javaforall.cn/223414.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose