- PVSM.RU - https://www.pvsm.ru -

Разбираемся в необычной проблеме с WiFi

Что?

В конце прошлого года я начал сталкиваться с необычными периодически возникающими проблемами подключения на десктопе. В целом, подключение было стабильным и со средними задержками; однако во (вроде бы) случайные моменты времени на протяжении недели через каждые пару секунд возникали резкие пики задержек в две с лишним тысячи миллисекунд.

Разбираемся в необычной проблеме с WiFi - 1

Из-за этого было невозможно пользоваться всем ПО для аудио-/видеозвонков и играть в большинство онлайн-игр.

Эта проблема возникла примерно во время моего переезда через всю страну из штата Вашингтон в Южную Каролину, поэтому было слишком много факторов, чтобы с лёгкостью выявить источник. Однако в основном проблема влияла только на игры и аудио-/видеозвонки, поэтому я особо не обращал на неё внимания.

На протяжении последней пары месяцев я постепенно пытался разобраться, что происходит, но до сегодняшнего дня мне этого сделать не удавалось.

Почему?

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

Первым делом я купил на Amazon новый WiFi-адаптер с хорошими отзывами. Это не решило проблему. Зато в комплекте с адаптером я нашёл предложение выслать бесплатную флэшку на 64 ГБ в обмен на хороший отзыв.

(В конечном итоге это оказалась довольно скверная покупка.)

Разбираемся в необычной проблеме с WiFi - 2

Позже (не из-за описываемой в статье проблемы) я собрал совершенно новый настольный компьютер, в котором не было ничего из старого компьютера, за исключением нового WiFi-адаптера. На компьютере была «с нуля» установлена Windows 10.

Всё было отлично, у нового компьютера не возникало проблем! Я подозревал, что в процессе переезда в Южную Каролину повредились USB-разъёмы старой материнской платы, и что причина в этом. Ведь теперь-то всё в порядке?

Нет. Всё не было в порядке.

Несколько недель спустя проблема внезапно начала возникать и на новом компьютере, и я понятия не имел, в чём может быть причина.

Я попробовал подключать несколько разных WiFi-адаптеров из своих запасов.

Я пытался сменить канал WiFi, поскольку мне казалось, что он накладывается на канал соседей.

Я попробовал отключить Windows Update Delivery Optimization (службу обновлений p2p). После её отключения и перезапуска компьютера проблема, казалось, была решена, но позже возникла снова.

В какой-то момент проблема с WiFi и прерывание звонков в Skype настолько достала одного из моих братьев, что он купил мне на Amazon ещё один (чуть менее подозрительный) WiFi-адаптер. Казалось, он временно устранил проблему после установки драйвера Realtek и перезапуска, но потом она вернулась.

Разбираемся в необычной проблеме с WiFi - 3

ЭНДРЮ, ПОЧИНИ СВОЙ ЧЁРТОВ WIFI, РАДИ БОГА. ВАЖНО: устанавливай драйвер Realtek 8812au с веб-сайта, НЕ с веб-сайта производителя

Похоже было, что проблему устранить невозможно.


Сегодня в последней отчаянной попытке устранить проблему я сделал следующее:

  • Отключил вентилятор в своей комнате
  • Отсоединил USB-донгл беспроводного планшета для рисования Wacom.
  • Закрыл FireFox
  • Закрыл MediBang Paint Pro

Проблема исчезла.

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

Я представить не мог, как эту проблему могли бы вызвать браузер или приложение для рисования, но всё равно проверил их.

Сначала я запустил FireFox, открыл несколько вкладок с разными сайтами и подождал…

Ничего.

Затем я запустил MediBang Paint Pro.

Разбираемся в необычной проблеме с WiFi - 4

Почему!?

Какого чёрта, почему ПО для цифрового рисования вызывает всплески задержек WiFi?

Оказалось, что люди [1] много [2] раз [3] жаловались [4] на эту проблему [5] с MBPP.

Если посмотреть в Process Monitor, то можно увидеть, что действительно происходит что-то странное.

Разбираемся в необычной проблеме с WiFi - 5

Разбираемся в необычной проблеме с WiFi - 6

В тот самый момент, когда возникает всплеск задержек, MBPP начинает опрашивать ключи реестра всех сетевых интерфейсов.

Чтобы глубже разобраться в том, почему это происходит, мы можем подключиться к процессу с помощью отладчика (в данном случае x64dbg) и установить точки останова на API Win32 Reg*.

Разбираемся в необычной проблеме с WiFi - 7

Рано или поздно мы попадём в точку останова RegOpenKeyExInternalW, после чего изучим стек вызовов, чтобы понять, где откуда выполняется вызов.

Разбираемся в необычной проблеме с WiFi - 8

Посмотрев на стек вызовов, мы видим, что первая несистемная библиотека в стеке — это qt5network.

Как ни удивительно, дальнейшая отладка не потребуется — поиск в Google по запросу «q5network ping issue» приводит нас к QTBUG-40332 [6].<

Если я верно всё понимаю, любое приложение Qt5 (младше версии 5.14), использующее QNetworkAccessManager, каждые десять секунд проверяет изменения в интерфейсе WiFi с целью управления носителем [7], что вызывает серьёзные всплески задержек или полную потерю пакетов. Даже если экземпляр QNetworkAccessManager создаётся внутри для чего-то простого, например, для HTTP-запроса.

Похоже, обойти эту проблему достаточно легко — присвоить переменной окружения QT_BEARER_POLL_TIMEOUT значение -1.

Жаль, что я не знал этого восемь месяцев назад.

TL;DR

Последние семь-восемь месяцев библиотека Qt5 портила WiFi всего моего компьютера просто из-за запуска MediBang Paint Pro.

По глупости я связывал это со множеством других вещей, ведь кто мог представить, что Qt будет причиной проблем с WiFi во всей системе?

Дополнительная информация по теме

Автор:
SportmasterLab

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/wifi/380320

Ссылки в тексте:

[1] люди: https://www.reddit.com/r/medibangpaint/comments/br6ruw/medibang_interrupting_wifi_connection/

[2] много: https://www.reddit.com/r/medibangpaint/comments/aj440q/help_medibang_makes_my_discord_calls_lag/

[3] раз: https://www.reddit.com/r/medibangpaint/comments/enuucb/wifi/

[4] жаловались: https://twitter.com/SomeLizardGuy/status/1223575145597423616

[5] на эту проблему: https://www.deviantart.com/trelock/journal/Need-Help-Medibang-s-disdain-for-my-Wifi-606655928

[6] QTBUG-40332: https://bugreports.qt.io/browse/QTBUG-40332?focusedCommentId=390766&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel

[7] управления носителем: https://doc.qt.io/qt-5/bearer-management.html

[8] https://invent.kde.org/graphics/krita/-/commit/d4eaaa63af8dc769acf79cd497e741f1de9be31b: https://invent.kde.org/graphics/krita/-/commit/d4eaaa63af8dc769acf79cd497e741f1de9be31b

[9] https://github.com/sqlitebrowser/sqlitebrowser/issues/1209: https://github.com/sqlitebrowser/sqlitebrowser/issues/1209

[10] https://github.com/mumble-voip/mumble/issues/1585: https://github.com/mumble-voip/mumble/issues/1585

[11] https://community.amd.com/thread/209327: https://community.amd.com/thread/209327

[12] https://github.com/Mudlet/Mudlet/issues/1587: https://github.com/Mudlet/Mudlet/issues/1587

[13] https://github.com/MultiMC/MultiMC5/issues/1422: https://github.com/MultiMC/MultiMC5/issues/1422

[14] https://lostdomain.org/2017/06/17/qt-qnetworkaccessmanager-causing-latency-spikes-on-wifi/: https://lostdomain.org/2017/06/17/qt-qnetworkaccessmanager-causing-latency-spikes-on-wifi/

[15] Источник: https://habr.com/ru/post/697834/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697834