Как стать автором
Обновить

Windows — причина медленного интернета. Низкая скорость «загрузки», при нормальной скорости «скачивания»

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров51K
Всего голосов 97: ↑93 и ↓4+106
Комментарии61

Комментарии 61

Друже, спасибо большое! А я уж думал просто безвозвратно испортил сетевой стек винды своими бесконечными экспериментами с виртуалками с виртуальными адаптерами. А оказалось, не я один попал на странное.

Вы тоже клиент мтс?

мгтс, но не суть. ситуация аналогичная

так мгтс это мтс

Возможно дело и правда в не очень хорошем алгоритме в Win10. Просто проблема проявляется не всегда. У меня тоже проводной мтс и win10, но такой проблемы нет.

Возможно проблема в ТСПУ и Роскомнадзоре? Просто с некоторых Windows часть трафика классифицируется как VPN?

как насчёт протестировать на отдельной сетевой карте?

Мысль хорошая, но не уверен, что это на что-то повлияет. В начале статьи я писал о том, что проверил работу на втором компьютере, результат один в один

Возникла такая же проблема год назад на МТС, в Windows 10 скорость низкая, в Windows 11 чуть получше. Проблема не зависела от сетевой карты, или версии Windows, пробовал брал два чистых компьютера, один с сетевой картой интел, другой с реалтек и просто устанавливал чистый образ 21h.., 22h2 с обновлениями и результат один и тот же. А в линуксе - всё отлично. Приходящие техники со своим ноутбуком - показывали спидтест на линусе, или спидест со смартфона и уходили. Я временно сделал обычный сокс прокси через линукс и пользовался какое-то время, но через месяц отказался от услуг МТС, и поменял оператора. Сейчас спустя почти год, стало интересно, а починили ли, и сколько абонентов в доме осталось, и как вижу из 45+ абонентов осталось 6-7, но Интернет они починили :) .

wget https://raw.githubusercontent.com/saaiful/socks5/main/socks5.sh

bash socks5.sh

за это нужно бить по рукам, во-первых, https://www.inet.no/dante/doc/1.3.x/config/server.html а во-вторых, в Windows достаточно указать прокси в Параметры - Настройка прокси вручную, socks=127.0.0.1 порт 1080

Нет, этого не достаточно. Я пробовал, оно не работало должным образом, поэтому так

что если отключить виндовый фаерволл и сетевой дефендер с концами ? для этого:

0) создать точку восстановления или бэкап реестра, проверить что с него можно восстановиться.

1) через control.exe отключить "Брандмауэр" в гуе (цвет везде красный), перезагрузка, проверка:

2) запретить запуск сервисов (от имени LocalSystem, у обычного админа не хватит прав) : mpssvc , WinDefend, BFE, WdNisSvc, mpsdrv, Psched (это отключит QoS), WdNisDrv. перезагрузка, проверка.

Брандмауэр всегда у меня отключен. Ни на что это не повлияло

то что фаерволл через гуй отключен - почти ничего не значит. см п.2. в моем первом комменте.

если дефендер не отключен, то он продолжает обнюхивать сетевой трафик.

и вдогонку:

3) на вс случай запретить IGMP.

/bin/regtool -d set '/HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/IGMPLevel' 0

# или как-то через netsh для каждого интерфейса

# повторить столько раз сколько сетевых интерфейсов есть (включая loopback)
$COMSPEC/../route.exe delete 224.0.0.0/4

$COMSPEC/../route.exe delete 224.0.0.0/4

$COMSPEC/../route.exe delete 224.0.0.0/4

4) есть не используется IPv6 - отключить и его.

#!/bin/sh

/bin/regtool remove "/HKLM/SYSTEM/CurrentControlSet/services/Dhcp/Parametersv6"
/bin/regtool -d set \

/HKLM/SYSTEM/CurrentControlSet/Services/Tcpip6/Parameters/DisabledComponents' 4294967295


/bin/regtool -d set '/HKLM/SYSTEM/CurrentControlSet/Services/Tcpip6/Parameters/Start' 4
/bin/regtool -d set '/HKLM/SYSTEM/CurrentControlSet/Services/Wanarpv6/Parameters/Start' 4
/bin/regtool -d set '/HKLM/SYSTEM/CurrentControlSet/Services/WANARP/Parameters/Start' 4

NI="$COMSPEC/../netsh.exe interface"
$NI IPV6 set global randomizeidentifier=disabled
$NI IPV6 set privacy state=disable
$NI ipv6 6to4 set state state=disabled
$NI ipv6 isatap set state state=disabled
$NI ipv6 set teredo disable
$NI ipv6 set global dhcpmediasense=disabled
$NI teredo set state disable
$NI 6to4 set state disabled
$NI 6to4 set state disabled undoonstop=disabled
$NI isatap set state disabled
$NI ipv6 show address

$COMSPEC/../sc.exe stop stop Tcpip6
$COMSPEC/../sc.exe stop stop Wanarpv6
$COMSPEC/../sc.exe stop stop WANARP

$COMSPEC/../sc.exe config Tcpip6 start= disabled
$COMSPEC/../sc.exe config Wanarpv6 start= disabled
$COMSPEC/../sc.exe config WANARP start= disabled

$COMSPEC/../route.exe delete ::1/128
$COMSPEC/../route.exe delete ff00::/8

5) я помню что на Win XP был резерв полосы 5 или 10% для QoS.

народ чего-то там отключал через локальную политику.

но где как конкретно - уже не найду, смотрите сами.

Вспомнилось вот это https://answers.microsoft.com/ru-ru/windows/forum/all/%D0%BA%D0%B0%D0%BA/274296ea-5d05-4998-93bb-2cad75d84262

Была такая же проблема с билайном, вот прям один в один проблема, решить её так и не смогли, перепротягивали кабель несколько раз, магистральщики проверяли кабель до бс, меняли свичи в подъезде, ничего не помогло, таких адресов (по словам техника который ко мне катался) в моем городе 4 включая мой (клин), бадался я с билайном много, но в итоге отнес ноутбук свой в сервис - сетевуху посмотреть. Парень в сервисе сразу сказал, что косяк оператора 100%, но дорожки на плате все же посмотрели. Выдал мне акт осмотра и подтверждение исправности оборудования, предъявил билайну, они снова присылают техника, я с ним уже почти сдружился, он тоже говорит косяк Билайна, но чё это конкретно такое говорит не знает, да и сверху ничего особо не понимают, проблема не массовая, скорее точечная. В итоге ушел на мегафон, пока проблем небыло с конца весны, но я долго гуглил по поводу Билайна ещё потом, ничего не нашел, а тут вот эта статья, блин, спасибо тебе огромное, я теперь хоть уверен, что косяка с моей стороны точно нет и это проблема Билайна

Рад за вас! :)

Я находил только одну ссылку на проблему с провайдером билайн как в этой ситуации, но с учетом сроком давности, подумал, что может уже не актуально для билайна

У speedtest разительно разное поведение при многопотоке в сравнении с одним потоком. У меня до сих пор случай, что по одному межграничному маршруту TCP ведет себя крайне неадекватно. Во многопотоке тесты показывают +- хорошую картину, wget добивается после долгого времени макс. скорости. А в приложениях даже потоковое видео смотреть невозможно. Удачи в поисках!

немного офтоп.

в 2010-м из-за зеркальной ситуации я не перешёл на линукс. тестировал на ноуте разные дистрибутивы, но почему то на всех скорость резалась в двое. Провайдер давал и так невеликие 400кбпс, а тут они ещё и режутся пополам! как фотки котов смотреть в сети? =)

в итоге на 10 лет остался на винде

Так и не понял, что происходит то фактически. По описанию похоже, что винда выбирает маленький размер TCP окна. В винде есть возможность включить масштабирование окна.

Вот статья на эту тему: https://learn.microsoft.com/ru-ru/troubleshoot/windows-server/networking/description-tcp-features

Это было пропущено в статье, из-за отсутствия результата

Проблема может быть где угодно, даже в самых неочевидных местах. Например, я сегодня проснулся с сетевой картой Intel i226, которая начала ограничивать скорость до ≈250 мбит/с, хотя до этого работала полгода без проблем, и вчера выдавала полный гигабит. Изменений настроек не было, обновлений не происходило (Linux, автообновлений нет), даже компьютер не выключался.

Оказалось, известная проблема (далеко не первая для карт Intel) — помогло отключение PCI-e ASPM. Несмотря на то, что у людей проблема проявляется только после сна, ко мне она пришла внезапно и ничего не помогало, ни в каком состоянии и ни в какой ОС. Вероятно, карта начала умирать аппаратно.

Поэтому диагностировать проблему может быть нетривиально, особенно если вы не эксперт.
Вам следует:

  • Взять 1G/2.5G USB Ethernet-адаптер на чипе Realtek RTL8153/RTL8156, чтобы исключить проблемы с PCI-e, DMA, умным offload'ом

  • Загрузиться в Live-версию Windows 10 и Windows 11

  • Проверить скорость в обеих версиях с помощью какого-то однопоточного теста, убедиться, что тест каждый раз выподняется к одному и тому же IP-адресу по одному и тому же протоколу (IPv4/IPv6, HTTP vs QUIC)

  • Если разница между версиями есть, записать дамп трафика и анализировать дальше.

Если проблема действительно в RACK, то она может быть вызвана перестановкой (приоритизацией) пакетов шейпером на стороне провайдера, но не обязательно — подобные проблемы встречаются и в драйверах, при особых условиях.

P.S. ради интереса, скачайте WinDivert и запустите passthru.exe без параметров — что-либо поменялось?

Я упомянул в статье, что во-первых, проблема на двух компах с момента подключения к мтс, во-вторых, запуск passthru.exe урезал входящую скорость с 500-700 до 300, исходящая не изменилась совсем. Аппаратное умирание я бы уж отличил от этого. И в-третьих, я также упомянул, что даже если проблема не в QoS и не в RACK, то может быть что-то совсем иное, и отталкивался от того что нашел, вместе с пруфами

Изредка.

Насколько знаю МТС использует для подключения клиентов технологию pppoe у нее MTU 1492, а у федерального провайдера скорее всего было обычное подключение по Ethernet с MTU 1500. Видимо из-за малого MTU у в недрах винды происходит сбой, тем более со старым провайдером у вас все работало норм.

MTU в роутере стоял 1482 со старым провайдером. Дёргал по разному mtu, ничего это не меняло

дергать надо не на роутере, а на Windows, потому что по умолчанию Windows будет использовать начальный MTU 1500 и соответствующий ему MSS. Процесс обнаружения Path MTU в TCP это отдельная проблема и в нее достаточно часто упираются, но выглядит она обычно иначе.

На винде тоже дергал, даже дергали ребята из мтс когда брали замеры

PPPoE это дно. но есть обходной путь - включить Jumbo Frames, если обрудование с обоих сторон это поддерживает. см https://en.wikipedia.org/wiki/Jumbo_Frame#Baby_giant_frames

чёт мне кажется, у провайдера они отключены по-дефолту

Windows — причина медленного интернета

проблема не у Вас, а у вашего провайдера.

С Windows провайдера? 🤔

Политиками групповыми настраивается процент резервирования трафика.

А, даже так. Теперь буду знать, спасибо!

Упоминаются некие "сервера провайдера"... это что вообще?

Спрашиваю ибо не знаком с методами подключения МТС, у меня "голый" Ethernet по цепочке мой коммутатор - мой роутер - коммутатор доступа провайдера коммутаторы распределения провайдера - маршрутизатор провайдера - оборудование магистрального провайдера. Где здесь какие "сервера" ?

Стоит ли в такой конфигурации пытаться воспроизвести описанный баг? Может действительно это зарыто где-то в VPN-протоколах доступа провайдер-абонент или их реализациях на конкретном оборудовании?

Спасибо! Очень интересная статья!

TCP offload (connection offload) не пробовали отключать в параметрах сетевого адаптера? Пока вы его не отключили TCP соединениями по факту занимается не совсем Windows.

на реалтеках проблемы с офлоадом TCP встречались и чинились

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

А я у провайдера в таком случае порт меняю, они имеют свойство умирать.... Главное правильно показать что проблема на их стороне.

Суть явления не ясна.

Можно взять VPS, потестировать с ним.
Тогда пакеты с той стороны провайдера, которые приходят на VPS, также будут доступны.

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

ЗЫ. Когда ещё работал под Windows, всегда отключал QoS для сетевых карт.
Как-то заметил, что он гадит, и стал всегда отключать.

Если проблема в винде, МТС тогда при чем тут? Не защищаю, правда не увидел последовательности рассказа.

Проблема в обе стороны. Но они могут исправить это на своих серверах. Что здесь не понятного?

«Загрузка» и «скачивание» — калька с английских «upload» и «download». Хотя эти термины в тексте формально используются правильно, в русском языке их часто путают: говорят «загрузить файл на компьютер», «скачать файл на ПК» или «закачать его к себе». Поэтому, на мой взгляд, было бы понятнее вместо «загрузка» использовать «отдача» или выражение «исходящая скорость/соединение». Текст стал бы легче восприниматься. В вашем случае, однако, сомнения развеивали скриншоты.

А в остальном, хочется выразить свое восхищение проделанной работой — титанический труд, потрясающие усидчивость и решимость. Но, как и автор предыдущего комментария, не понял в чем конкретно выразилось влияние провайдера МТС на низкую исходящую скорость?

И еще вопрос до кучи: особенности реализации TCP-RACK оказывают влияние только на исходящее соединение, а на входящее нет?

Чтобы не было путаницы, можно использовать термины Uplink (от клиента) и Downlink (к клиенту). Они и в проводных и беспроводных (например, мобильных) сетях широко используются.

Отличная статья! Виден подход к проблеме с разных сторон. P.S. Ответу МТС не удивлен))

Была такая история тоже МТС

ЛИНК НА vc.ru

Но такое полномасштабное исследование не проводил 😅🤣...и так было ясно как то,что у провайдера косяк.

Я так понимаю, сети p2p данный баг никак не затрагивает и скорость не режет?

Да, всё верно

Простите, а вы не пробовали изменить значение TTL в Windows?
Значение TTL по умолчанию в Windows - 128, Linux и iOS - 64
По значению TTL провайдер определяет не раздаете ли вы интернет со смартфона, но очевидно может использовать TTL и для других целей.

Весь вопрос уменьшает ли роутер значение TTL для пакета, и что ожидает провайдер, чтобы детектировать, что у вас OS Linux. Поэтому имеет смысл поиграться со сменой значения TTL в Windows выставив его 64 или 65 или 63.

Для смены TTL в Windows 10 x64 нужно:
Пойти в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
И изменить значение параметра DefaultTTL

Тоже самое проделать для HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters

соответственно 0x41 это 65, 0x40 это 64, 0x3Fэто 63

Я пробовал менять ttl, это ни на что не повлияло

Отключался от домру - такие же жёсткие менеджеры по удержанию клиента перезвонили 3 раза и в разных тонах рассказывали как у них хорошо, а к кому переходите, а может вам скидку... Пытался сторговаться на вечные 50%, согласились лишь на полгода. Как плюс - разрешили не возвращать морально устаревшее оборудование, которое по тарифу было дано в аренду за 1р/мес, роутер и ТВ приставка. Понапокупали мелких региональных провайдеров и зовут себя федеральной сетью, а работают ни к чёрту плохо.

не стал их упоминать, но да, это был домру

В пункте 11 Вы пропустили install в команде apt. Люди, не знакомые с linux, могут не понять (

Статья шикарная, обожаю такие исследования. Меня проблема не коснулась (использую linux, клиент Билайна), но было очень интересно. Обязательно посоветую другу, если что-то подобное будет. Рад, что вы в итоге исправили проблему

Спасибо за внимательность, попозже внесу правку

После установки прокси скорость скачивания очень сильно упала. Можно сказать входящий и исходящий трафик просто поменялся местами, неужели прокси может срезать 80% скорости или я где-то ошибся? Однако для конкретных целей это всё же пригодится, спасибо за статью!

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

Аналогичная проблема с комментатором выше. Попробовал автотюнинг и отключение qos. :(

напишите мне в тг попробуем вместе разобраться

На более старых версиях Виндовс не пробовали проверять скорость?

там можно отключить QoS и всё встанет на свои места, в статье об этом упоминается

Ну, если вся проблема в шалостях QoS - тогда да, нет смысла. Но рядом говорится о каких-то загадочных изменениях TCP стека. Вот и любопытно было в этом смысле сравнить с "эталонным", старым вариантом.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации