Что?
В конце прошлого года я начал сталкиваться с необычными периодически возникающими проблемами подключения на десктопе. В целом, подключение было стабильным и со средними задержками; однако во (вроде бы) случайные моменты времени на протяжении недели через каждые пару секунд возникали резкие пики задержек в две с лишним тысячи миллисекунд.
Из-за этого было невозможно пользоваться всем ПО для аудио-/видеозвонков и играть в большинство онлайн-игр.
Эта проблема возникла примерно во время моего переезда через всю страну из штата Вашингтон в Южную Каролину, поэтому было слишком много факторов, чтобы с лёгкостью выявить источник. Однако в основном проблема влияла только на игры и аудио-/видеозвонки, поэтому я особо не обращал на неё внимания.
На протяжении последней пары месяцев я постепенно пытался разобраться, что происходит, но до сегодняшнего дня мне этого сделать не удавалось.
Почему?
Изначально в проблеме было ясно только то, что она затронула исключительно мой настольный компьютер. Ноутбук и другие устройства, подключенные к WiFi, не имели этой проблемы, даже если поместить их в то же место, где находился десктоп.
Первым делом я купил на Amazon новый WiFi-адаптер с хорошими отзывами. Это не решило проблему. Зато в комплекте с адаптером я нашёл предложение выслать бесплатную флэшку на 64 ГБ в обмен на хороший отзыв.
(В конечном итоге это оказалась довольно скверная покупка.)
Позже (не из-за описываемой в статье проблемы) я собрал совершенно новый настольный компьютер, в котором не было ничего из старого компьютера, за исключением нового WiFi-адаптера. На компьютере была «с нуля» установлена Windows 10.
Всё было отлично, у нового компьютера не возникало проблем! Я подозревал, что в процессе переезда в Южную Каролину повредились USB-разъёмы старой материнской платы, и что причина в этом. Ведь теперь-то всё в порядке?
Нет. Всё не было в порядке.
Несколько недель спустя проблема внезапно начала возникать и на новом компьютере, и я понятия не имел, в чём может быть причина.
Я попробовал подключать несколько разных WiFi-адаптеров из своих запасов.
Я пытался сменить канал WiFi, поскольку мне казалось, что он накладывается на канал соседей.
Я попробовал отключить Windows Update Delivery Optimization (службу обновлений p2p). После её отключения и перезапуска компьютера проблема, казалось, была решена, но позже возникла снова.
В какой-то момент проблема с WiFi и прерывание звонков в Skype настолько достала одного из моих братьев, что он купил мне на Amazon ещё один (чуть менее подозрительный) WiFi-адаптер. Казалось, он временно устранил проблему после установки драйвера Realtek и перезапуска, но потом она вернулась.
ЭНДРЮ, ПОЧИНИ СВОЙ ЧЁРТОВ WIFI, РАДИ БОГА. ВАЖНО: устанавливай драйвер Realtek 8812au с веб-сайта, НЕ с веб-сайта производителя
Похоже было, что проблему устранить невозможно.
Сегодня в последней отчаянной попытке устранить проблему я сделал следующее:
- Отключил вентилятор в своей комнате
- Отсоединил USB-донгл беспроводного планшета для рисования Wacom.
- Закрыл FireFox
- Закрыл MediBang Paint Pro
Проблема исчезла.
Я сразу же заподозрил наличие помех от беспроводного планшета или вентилятора, поэтому включил их снова, но причиной оказались не они.
Я представить не мог, как эту проблему могли бы вызвать браузер или приложение для рисования, но всё равно проверил их.
Сначала я запустил FireFox, открыл несколько вкладок с разными сайтами и подождал…
Ничего.
Затем я запустил MediBang Paint Pro.
Почему!?
Какого чёрта, почему ПО для цифрового рисования вызывает всплески задержек WiFi?
Оказалось, что люди много раз жаловались на эту проблему с MBPP.
Если посмотреть в Process Monitor, то можно увидеть, что действительно происходит что-то странное.
В тот самый момент, когда возникает всплеск задержек, MBPP начинает опрашивать ключи реестра всех сетевых интерфейсов.
Чтобы глубже разобраться в том, почему это происходит, мы можем подключиться к процессу с помощью отладчика (в данном случае x64dbg) и установить точки останова на API Win32 Reg*.
Рано или поздно мы попадём в точку останова
RegOpenKeyExInternalW
, после чего изучим стек вызовов, чтобы понять, где откуда выполняется вызов.Посмотрев на стек вызовов, мы видим, что первая несистемная библиотека в стеке — это qt5network.
Как ни удивительно, дальнейшая отладка не потребуется — поиск в Google по запросу «q5network ping issue» приводит нас к QTBUG-40332.<
Если я верно всё понимаю, любое приложение Qt5 (младше версии 5.14), использующее
QNetworkAccessManager
, каждые десять секунд проверяет изменения в интерфейсе WiFi с целью управления носителем, что вызывает серьёзные всплески задержек или полную потерю пакетов. Даже если экземпляр QNetworkAccessManager
создаётся внутри для чего-то простого, например, для HTTP-запроса.Похоже, обойти эту проблему достаточно легко — присвоить переменной окружения
QT_BEARER_POLL_TIMEOUT
значение -1
.Жаль, что я не знал этого восемь месяцев назад.
TL;DR
Последние семь-восемь месяцев библиотека Qt5 портила WiFi всего моего компьютера просто из-за запуска MediBang Paint Pro.
По глупости я связывал это со множеством других вещей, ведь кто мог представить, что Qt будет причиной проблем с WiFi во всей системе?
Дополнительная информация по теме
- https://invent.kde.org/graphics/krita/-/commit/d4eaaa63af8dc769acf79cd497e741f1de9be31b
- https://github.com/sqlitebrowser/sqlitebrowser/issues/1209
- https://github.com/mumble-voip/mumble/issues/1585
- https://community.amd.com/thread/209327
- https://github.com/Mudlet/Mudlet/issues/1587
- https://github.com/MultiMC/MultiMC5/issues/1422
- https://lostdomain.org/2017/06/17/qt-qnetworkaccessmanager-causing-latency-spikes-on-wifi/
Комментарии (81)
mklenov9
07.11.2022 15:05А на айфоне 6 в чем может быть проблема? Или как это узнать?
Тоже часто Wi-Fi стал пропадать на нем, но на ноуте всё работает отлично.
BubaVV
07.11.2022 15:17+3Еще были корявые адаптеры Ralink, пришлось покупать usb-вайфай, чтобы работало
CaptainFlint
07.11.2022 16:25+4Это всё очень интересно, но почему проверка текущего статуса WiFi вообще влияет на качество связи? Да ещё так значительно.
vassabi
07.11.2022 17:53+3там в описании по ссылке говорится, что это не "сканирование текущего статуса WiFi", а сканирование и обновление списка доступных WiFi точек.
CaptainFlint
07.11.2022 20:29+3А, и этот процесс сканирования сети мешает имеющемуся подключению? Тогда понятнее, хотя, конечно, всё равно странно. То есть если я просто открою окно со списком сетевых подключений в винде (которое периодически обновляется), то начнутся такие же спецэффекты?
vassabi
08.11.2022 01:57+3это все зависит от реализации.
если он для сканирования всех диапазонов WiFi использует приемник в монопольном режиме (т.е. не принимая пакеты от подключенной сети) - то сами понимаете ....
aborouhin
07.11.2022 16:33+1Была ровно такая же проблема пару лет назад на ноуте, тоже и внешний адаптер покупал, и версии драйверов перебирал разные - так и не докопался до первоисточника. Потом само прошло. Видимо, виновная софтина обновилась до версии Qt, в которой багу пофиксили. Может, упомянутый тут выше qBittorrent, может что другое...
Sereganishe
07.11.2022 17:12Если частота 2.4Ггц, то не стоит забывать про свои и соседские микроволновки
vadimk91
07.11.2022 17:30+1К моему удивлению, даже если у человека подключение к провайдеру по оптике (технология PON) и оптический терминал у всех двухдиапазонный, наверное половина будет пользоваться только диапазоном 2.4 и полностью игнорировать 5ГГц. А потом куча заявок на тему "низкая скорость по WiFi, по тарифу 200М, по измерениям 30Мбит". Никто не вникает, насколько загружен диапазон 2,4 в многоквартирных домах, а раз он в списке первый - к нему и подключаются.
nidalee
07.11.2022 18:05+5GPON-роутер ставят на входе в квартиру, и в зависимости от ее размеров, местами 5ГГц ловит уже не очень.
А 2,4 в многоквартирном доме это вообще смерть. Особенно если есть очень умные соседи с шириной канала выставленной на 40.
Одно время даже мысль закралась пройти ночью по их точкам и раскидать по уму-разуму на правильные каналы.104u
08.11.2022 10:46Разве можно роутер заставить вещать на 40мГц? Он же сам переходит на 20, если есть помехи, да и в настройках есть 20 и 20/40, только 40 не бывает
Themen
08.11.2022 11:21Бывает.
104u
08.11.2022 13:15А он правда работает в 40? Может это настройка предпочтения? Просто у меня роутеры не всегда работали в режиме 40, когда я выставл 20/40, даже если подключен только ноут, который 40 поддерживает
dartraiden
08.11.2022 19:33Просто у меня роутеры не всегда работали в режиме 40, когда я выставл 20/40
Это зависит от соседних точек. Если вы в глухом поле включите 20/40, у вас будет 40. В многоквартирном доме, где диапазон засран вусмерть, по стандарту роутер урежет осетра. Для вашей пользы и пользы соседей.nidalee
08.11.2022 20:12Ну вот по факту у меня в квартире ловится с десяток wifi сетей, и как минимум одна — 40.
nidalee
08.11.2022 12:42Разве можно роутер заставить вещать на 40мГц?
Конечно.Он же сам переходит на 20, если есть помехи
Нет, в автоматическом режиме он ориентируется по клиентам. Если они умеют 40, будет 40.
Обстановкой в эфире вообще мало какие роутеры интересуются. Энтерпрайз возможно…104u
08.11.2022 13:10То есть если все клиенты умеют 40, то будет 40, иначе 20? Ну насчётэфира не знаю, у меня роутеры как минимум меняли канал, когда выставляешь авто
dartraiden
08.11.2022 16:54+1Если выставить Auto, то в присутствии 20MHz-соседей вы с большой долей вероятности получите помеху на одной из половин 40MHz-канала + включится режим совместимости 40/20MHz
Если жестко выставить 40 и все клиенты поддерживают 40, то будет 40. Но помеха никуда не денется
В многоквартирных домах нет, иного выхода, как жестко задать 20MHz. Таким образом мы получаем 75 мегабит на поток, но стабильно, а это лучше, чем нестабильные 150.
dartraiden
08.11.2022 16:54Обстановкой в эфире вообще мало какие роутеры интересуются.
Если выставить Auto, то должны интересоваться.nidalee
08.11.2022 18:53У меня в роутере Auto вообще нет, например, ЕМНИП.
dartraiden
08.11.2022 19:26Да, у меня тоже. Причём, в роутерах Keenetic, например, варианта «40» вообще нет, т.к. это нарушает рекомендации стандарта IEEE 802.11n-2009.
Но если выбрать «20/40», роутер всё равно должен как-то сканировать эфир, чтобы понимать, скатываться в 20 или не скатываться.
SpiderEkb
08.11.2022 11:31+2Ну вообще грамотный настройщик разнесет диапазоны - сделает две сети с разными SSID - одну на только 2.4, вторую на только на 5. Тогда путаницы не возникает.
Но тут надо понимать, что WiFi - это очень сильно не серебряная пуля. Лично я сейчас (частный дом, оптика, WiFi диапазон пустой - вижу пару соседских сетей с очень слабым сигналом) для работы предпочитаю старый добрый кабель. А WiFi только там, где нет иных вариантов.
Фактически получается так - по кабелю подключены рабочие ноуты (мой и жены, расположены в кабинете на стационарных рабочих местах) и телевизоры (IPTV, 4 штуки в общей комнате и спальнях - тут я сразу, еще на этапе разводки электрики, развел по комнатам из кабинета витую FTP пару - в кабинете она втыкается в коммутатор, в комнатах сделаны розетки). По WiFi - термостаты с системе отопления (15 штук) и робот-пылесос. Ну иногда телефоном подключаюсь по необходимости (тариф и качество LTE позволяет не одумляться использованием WiFi на телефоне)
То, что по кабелю, естественно, работает "на максималках" (по работе постоянно приходится коммуницировать с видео и аудио, это не считая того, что нужен постоянный доступ к куче рабочих ресурсов). То, что по WiFi... Да пофиг, собственно, там плотность трафика очень низкая.
Так что "идеологическим противником" WiFi ни в коей мере не являюсь, но если есть возможность использовать кабельное подключение, предпочитаю кабель.
dartraiden
08.11.2022 17:05грамотный настройщик разнесет диапазоны
Грамотный настройщик сперва изучит возможности прошивки. В роутерах бывает что-то типа такогоedo1h
10.11.2022 04:28band steering — это не часть стандарта wifi, а костыль, который не всегда приводит к желаемым результатам и иногда приводит к проблемам.
dartraiden
08.11.2022 15:11А также про Bluetooth и USB 3.0. Реальные случаи:
— клиент (ноутбук) подключался к точке с использованием MIMO 2x2 и тут же сваливался в 1x1. Помогло отключение BT на клиенте.
— клиент находился очень далеко от точки, за 2-3 железобетонными стенами, но связь была более-менее стабильной (3-4 палки). Как только в порт USB 3.0 точки воткнули накопитель, клиент отвалился. С точки зрения клиента это выглядело как «ввожу пароль, начинается подключение, затем получаю сообщение, что клиент не соответствует требованиям сети». В логах точки это вообще никак не выглядело, словно никакой попытки подключения не было.CaptainFlint
08.11.2022 16:10Кстати, про USB 3.0 я неоднократно слышал, что оно сильно долбает по WiFi в роутерах. Рекомендуют пользоваться портами 2.0, если они есть.
GennPen
07.11.2022 17:23+32Всегда стараюсь использовать кабель.
WiFi использую только там, куда физически невозможно протянуть кабель.servekon
08.11.2022 00:34Во многих современных ноутбуках RJ45 нет от слова совсем, даже если до роутера пол метра, то подключить нет физической возможности.
V1tol
08.11.2022 01:00+1Покупаю или ноутбуки с разъёмом, или сетевуху\докстанцию к нему. От вайфая только если лежит на пузе смотреть киношку. В любом случае для работы нужна зарядка и мышь, от сетевой карты хуже не станет.
litos
08.11.2022 04:33+2usb сетевые карты с rj45 сущестауют
mayorovp
08.11.2022 09:07У них есть свои проблемы, вроде динамического id железа. В среднем каждую 3 загрузку винда сообщает об отсутствии активации, а стим отключает family library sharing.
DaemonGloom
09.11.2022 15:28Это какие-то проблемы именно с вашим адаптером (или чем-то ещё). Ни на одном из доступных мне компов с usb сетевыми адаптерами не встречал такого.
104u
08.11.2022 10:55+1Тоже всегда использовал только кабель, но после того, как увидел, что делает молния, когда попадает по кабелю, воткнул и в десктоп вайфай. Роутер не так жалко, если по нему прилетит. И всё бы хорошо, пинг низкий, ничего не отваливается, но с вайфаем передача файлов по локальной сети — это дохлый номер, особенно, если передавать с вайфая на вайфай, скорость падает во много раз
regint
08.11.2022 12:15Wifi 6 крайне позитивно сказывается на качестве соединения. На основном пк подключен, все прекрасно работает, чесные цифры выдает, в том числе под гигабит при закачке торрентов
dartraiden
08.11.2022 17:08Есть мнение, что гнаться стоит лишь за Wi-Fi 6E. Который в РФ официально не разрешён, не планируется, и точки доступа пока стоят дороговато (на Amazon самый дешёвый tri-band роутер идёт от 200 долларов).
Инвестировать деньги имеет смысл только в Wi-Fi 6E. Так как в диапазоне 6 GHz не существует 802.11a/n/ac. Только честный 802.11ax.
edo1h
10.11.2022 04:33ради интереса игрался с каналами в wifi 5, так вот чем ближе к 6 ГГц, тем хуже виделась точка.
я не думаю, что все готовы ставить достаточное число точек, чтобы обеспечивать прямую видимость по всей квартире.
FinnParnish
09.11.2022 21:38У вас ноут или стационар?
GennPen
10.11.2022 01:01Стационар конечно по кабелю. Ноут, если за столом, то по кабелю, если на диване/кресле с ним, то обычно по WiFi.
lonep
07.11.2022 18:52Вот тогда еще ребус:
Intel ac9560 внезапно начинает выдавать code 10.
Как это происходит: раз в n дней (n +- 120) после выхода из сна адаптер начинает выдавать code 10 и не работает. После перезагрузки работает ровно три дня и начинает отваливаться регулярно на протяжении 4 недель, уже не поднимаясь после перезагрузки. После этого периода опять проходит n дней и все по кругу. Аналогично отваливается, как на винде, так и на linux.
Не помогло: переустановка драйверов, переустановка системы, обновление bios, обновление EC, замена адаптера (менял на эту же модель).
Ноутбук msi modern 14.Kenya-West
07.11.2022 23:37Аналогичная проблема, только с 9260 на рабочем ПК. В конце концов заменил на USB-свисток
netch80
08.11.2022 22:47А интервал между временами начала проблемы похож на постоянный?
lonep
09.11.2022 16:54Да
netch80
09.11.2022 17:29Хм, тогда я бы заподозрил что-то вроде такого: таймер в чём-то вроде int32_t в некоторой внутренней частоте, при отрицательном значении (или более 3/4 полного размаха) которого его плющит. Красивой цифры для частоты я не нашёл, но кто знает, что там внутри адаптера.
Почему триггерится именно в ваших условиях — ХЗ, но работая с проектами около-embedded я наблюдал 100500 подходов, как можно создать и потом пропустить подобную проблему;(
Увы, тогда заменой на ту же модель не решить, лучше даже другой производитель.
fk0
07.11.2022 22:06+3проверяет изменения в интерфейсе WiFi с целью управления носителем
Машинный перевод... По-русски это может звучать как управление потоком или что-то вроде того.
Mayurifag
08.11.2022 04:32+1Круто, что в статье обнаружена изначальная проблема, а вообще решение (другое, с батниками отключения-включения background Wi-Fi scan) часто можно встретить в статьях о проблемах с беспроводным соединением.
Вот от 2011 года (судя по URL) статья, к примеру: https://www.ghacks.net/2011/12/13/how-to-disable-wlan-background-scans/
OptimumOption
08.11.2022 06:29Очень частая причина "нестабильного интернета" - включенная "галка" на ipv6 в непофиксенной Win7. Деревенские "сисадмины" зачастую не в курсе, поэтому устраивают свистопляски, начиная со сброса и перенастройки роутера (и им пофиг, что к железке подключен не только комп, но и УД с камерами, а имя точки доступа и пароль они придумывают уже СВОИ, sic!) до апгрейда установленной лицензионной(!) "семёрки" до пиратской (мозгов то - чуть!) "десятки"... Бесят!
Serg10
08.11.2022 08:20+1Долго не мог понять, почему периодически плохо работает wifi. Спустя месяц дошло. Оказывается Bluetooth наушники как то на это влияют
vorphalack
08.11.2022 08:54как-как, дерутся за частоты и/или антенны если используется совмещенный WiFi+BT адаптер
dartraiden
08.11.2022 17:18+1как то
BT и Wi-Fi 4 работают в одном диапазоне, поэтому влияют понятно как. Физику не обманешь.
Metotron0
08.11.2022 10:19Лет 9 назад какие-то похожие проблемы были у меня на линуксе дома и на работе. Решил оба вопроса переходом на провод. Только у меня задержки были секунд по 10-20.
Themen
08.11.2022 11:06Ух ты, может вот оно решение. Тоже на домашнем компе через некоторое время работы 5 пингов 3 мс, потом превышен интервал, потом опять 5 пингов и.т.д.
104u
08.11.2022 11:07У меня тоже была проблема с вайфаем, причём, как оказалось, проблема была в видеокарте. Ставлю новую видеокарту (1660s) — windows не удается подключиться к этой вайфай сети. Ставлю старую видяху — всё идеально. По итогу получилось заставить их работать вместе, после установки более старого драйвера
Вайфай был выдернут из какого-то телевизора, причём оказался лучше, чем то, что продавалось в магазине, работал на 300мбит на 2.4
zamboga
08.11.2022 11:28Несколько лет назад писал вопрос на "Тостере" о подобной проблеме. Интересно, это тоже самое?
https://qna.habr.com/q/409828
SneakyJoe
08.11.2022 16:21Была подобная штука с роутером провайдера на новом месте у моего ноута и дестктопа. У макбука 2019 проблема не наблюдалась. Взял другой роутер раздавать Wifi и проблема ушла.
Ainvain
09.11.2022 15:19intel AX201. При выходе из сна перестает подключаться к сети. Отключение-включение адаптера не помогает. При попытке перезагрузки висит несколько минут, после чего выдает BSOD с ошибкой драйвера. Драйвера разные пробовал.
sshemol
09.11.2022 16:00Странно, что никто не написал про главную причину - использование библиотек с раздутым избыточным функционалом.
HellishGyp
09.11.2022 21:27А почему сразу нельзя было купить "нормальный" модуль, PCI-E или m2 если это десктоп?
GennPen
10.11.2022 01:04Сейчас везде M.2 модули используются. Даже если это PCI-e карточка, то почти 100% это переходник с M.2 модулем. Просто так дешевле в производстве, использовать готовые модули, а не распаивать их на плате.
alexeyborealis
Если у вас WiFi точка от TP-Link и ноутбук на Windows с бесповодным модулем от Intel, вероятно после каждого вывода ноутбука из сна придётся его перезагружать, иначе качество связи отвратительное.
Два ноутбука разных лет и две точки TP-Link разных лет - эффект одинаков.
deitry
Подержите мой WiFi-модуль MT7922. При не вполне понятных обстоятельствах, но похоже тоже как-то связанных с уходом ноутбука в сон, драйвер перестаёт прогружаться вообще, и единственным действенным способом лечения является вырубить ноутбук, подержав кнопку питания 60 секунд.
MediaTek Wi-Fi 6E MT7922 (RZ616) - Microsoft Community
А просто сбоить он и без ухода в сон может. Просто иногда. Проблема, видимо, не софтварная.
То же самое с MT7921: Mediatek MT7921 suddenly not working : ZephyrusG14 (reddit.com)
BoreaAlex
Qualcomm Atheros QCA9377, тоже бывают проблемы с выходом из сна. Перебор драйверов и настроек никак не повлиял.
lex899
AC 9560+Win11, в одном случае из 3х примерно после выхода из сна не подключается к текущей WiFi сети до перезагрузки, перезагрузка роутера/выключение-включение адаптера/удаление сети не помогает. К любой другой сети при этом подключается.
kovserg
Наблюдал такое поведение в windows 10 и еще BT постоянно отваливался, после установки win7 такой проблемы не возникало.
Javian
Телевизор Samsung Series 5 Smart - включившись, после "выключения" пультом, может не вспомнить, что он подключен к сети с DHCP и берет адрес из 169 сети. Лечится выдергиванием из розетки или переподключением в настройках.
sion
Установите статику на самом телике и тогда dhcp вам не нужен будет.
Javian
Там что-то более серьезное т.к. статика не помогает. Больше ни одного устройства нет такой проблемы с WiFi.