Тестирование ntttcp как альтернативы iperf3 в Windows 11 (и Linux)

ntttcp (Windows NT Test TCP) — это утилита для тестирования сети, аналогичная iperf3, которая работает как в Windows, так и в Linux. Разработана и рекомендуется Microsoft вместо iperf3, поэтому проведем мини-обзор этой альтернативы.

iperf3 — стандартный инструмент для обзоров одноплатных компьютеров и мини-ПК под управлением Windows или Linux. Однако замечено, что хотя Ethernet (до 2.5GbE) обычно показывает схожую производительность в обеих ОС, Wi-Fi в Ubuntu 22.04 работает значительно быстрее, чем в Windows 11. Когда XDA developers обратили внимание на сообщение Microsoft о том, что iperf3 не следует использовать в Windows 11, это привлекло внимание.

Microsoft объясняет, почему iperf3 не рекомендуется использовать в Windows, тремя основными причинами:

  1. Разработчики iperf — ESnet (Energy Sciences Network) — указывают , что «iperf3 официально не поддерживается в Windows, в отличие от iperf2. Рекомендуется использовать iperf2. Некоторые запускают iperf3 через Cygwin, но не все функции работают».
  2. iPerf3 эмулируется в Windows — утилита не использует нативные API Windows, а только Linux/POSIX-вызовы, что может снижать производительность.
  3. Обычно используется iperf3 версии 3.1.3 для Windows выпущенная в 2016 , но Microsoft отмечает, что версия от ESnet (3.16) новее, но все равно отстает на 15 версий, поэтому пользователи не получают актуальные обновления.

Какие альтернативы предлагает Microsoft? Поддерживаются две утилиты:

  • ntttcp (Windows NT Test TCP) — открытая утилита для Windows и Linux с командной строкой, похожей на iperf3. По словам Microsoft, она предназначена для точного измерения пропускной способности сетевого стека.
  • ctsTraffic — только для тестов между системами Windows, также открытая и доступная на Github . ctsTraffic фокусируется на сценариях end-to-end goodput.

ctsTraffic не подходит для тестов CNX Software, так как обычно используются смешанные системы (Linux и Windows). Microsoft сравнивала iperf3 и ntttcp на высокоскоростных интерфейсах (10 GbE+), где последний показывает лучшие результаты. В наличии только оборудование с 2.5GbE и Wi-Fi 6, но тестирование все равно было проведено, особенно для проверки Wi-Fi. Решил попробовать ntttcp, следуя инструкциям на Microsoft Learn , но столкнулся с трудностями — параметры из руководства не работали, пришлось искать правильные настройки.

ntttcp vs iperf3 testbed

Тестовая система состоит из четырех основных компонентов:

Мини-ПК Khadas Mind Premium был выбран, так как это единственная запасная система с Windows, оснащенная 2.5GbE и WiFi 6, которая уже проходила тестирование. Сравнение сетевых тестов в Windows 11 и Ubuntu 22.04 с использованием iperf3 показывает значительно более низкую производительность в ОС Microsoft, как видно из таблицы ниже.

WiFi 6 Tx WiFi 6 Rx 2.5GbE Tx 2.5GbE Rx
WIndows 11 Home 712 Mbps 590 Mbps 700 Mbps 2.30 Gbps
Ubuntu 22.04 1.40 Gbps 991 Mbps 2.35 Gbps 2.35 Gbps

Мини-ПК Khadas демонстрирует аномально низкую скорость загрузки через 2.5GbE, но во всех обзорах мини-ПК WiFi работает быстрее в Linux. Поскольку обзор Mind Premium проводился ранее (август 2023), Windows была обновлена до последней версии с новейшими драйверами, и сетевые тесты с iperf3 и ntttcp в Windows 11 Home были повторены с использованием тех же параметров командной строки, что и в блоге Microsoft.

Первым шагом была установка ntttcp (Linux) на мини-ПК UP Xtreme i11 под Ubuntu 20.04:

Команда для запуска в режиме приемника выглядит следующим образом.

Используется только одно ядро для эмуляции iperf3, а параметр V (verbose) помогает в диагностике проблем. После загрузки исполняемого файла ntttcp.exe в Windows его можно сразу запустить в режиме отправителя через командную строку:

Однако, как видно из лога выше, результат оказался неожиданным. Оказалось, что для тестов между Windows и Linux необходимо использовать параметр «ns» (No Sync). Это упоминается в блоге Microsoft

Известное ограничение при тестировании между Windows и Linux. Подробности можно найти в статье на GitHub о ntttcp для Linux .

На поиск решения ушло несколько часов, но после его применения удалось завершить тест WiFi 6 Tx (загрузка):

98.125 МБ/с или около 785 Мбит/с — немного лучше, чем с iperf3, но все равно значительно ниже производительности в Linux.

Затем был подключен Ethernet-кабель для теста 2.5GbE на загрузку:

88 МБ/с или 704 Мбит/с — практически тот же результат, что и с iperf3, даже после обновления драйверов.

iperf3 поддерживает обратную передачу, но в ntttcp такой опции нет. Поэтому пришлось вручную запускать ntttcp.exe в режиме приемника на Windows и ntttcp в режиме отправителя на Linux. Для этого потребовалось запустить CMD от имени администратора, открыть брандмауэр и использовать другие параметры:

Команда для отправителя на Ubuntu отличается от аналогичной команды для Windows из-за различий в параметрах:

Несмотря на это, тест был выполнен. Стоит отметить, что ожидания от утилиты ntttcp были завышены. Единственное преимущество — дополнительные данные, такие как загрузка CPU во время передачи. 2.28 Гбит/с — ожидаемый результат для соединения 2.5GbE.

Обычно для теста WiFi 6 с iperf3 Ethernet-кабель отключается, и команда повторяется. Но здесь также потребовалось изменить IP-адреса на стороне сервера и клиента:

604 Мбит/с — улучшения не наблюдается.

WiFi 6 Tx WiFi 6 Rx 2.5GbE Tx 2.5GbE Rx
iperf3 551 Mbps 608 Mbps 736 Mbps 2.30 Gbps
ntttcp 785 Mbps 604 Mbps 704 Mbps 2.28 Gbps

В таблице выше приведены результаты повторного запуска iperf3. Хотя ntttcp показывает более высокую скорость загрузки через WiFi 6, остальные результаты практически не изменились. Вероятно, эта утилита имеет значение только для высокоскоростных сетей с подключением 10GbE и выше.

Вышеуказанные тесты проводились для сравнения ntttcp и iperf3 с аналогичными параметрами, но Microsoft рекомендует использовать многопоточность и увеличенный размер буфера для измерения пропускной способности. Повторим тест WiFi 6 на загрузку с 8 потоками и размером буфера 1024 КБ:

564 Мбит/с — медленнее, чем с одним потоком и буфером 128 КБ, хотя результаты WiFi могут варьироваться.

На основании проведенных тестов разница между iperf3 и ntttcp минимальна. Утилита ntttcp для Linux не обновлялась более трех лет, поэтому предпочтение остается за iperf3 для сетевых тестов в обзорах мини-ПК на Windows…

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments