Комментарии 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 провайдера? 🤔
Хах, про повышение скорости отключением QoS читал ещё году в 2009. В 2024, оказывается, тоже помогает :)
Упоминаются некие "сервера провайдера"... это что вообще?
Спрашиваю ибо не знаком с методами подключения МТС, у меня "голый" Ethernet по цепочке мой коммутатор - мой роутер - коммутатор доступа провайдера коммутаторы распределения провайдера - маршрутизатор провайдера - оборудование магистрального провайдера. Где здесь какие "сервера" ?
Стоит ли в такой конфигурации пытаться воспроизвести описанный баг? Может действительно это зарыто где-то в VPN-протоколах доступа провайдер-абонент или их реализациях на конкретном оборудовании?
Спасибо! Очень интересная статья!
TCP offload (connection offload) не пробовали отключать в параметрах сетевого адаптера? Пока вы его не отключили TCP соединениями по факту занимается не совсем Windows.
на реалтеках проблемы с офлоадом TCP встречались и чинились
А я у провайдера в таком случае порт меняю, они имеют свойство умирать.... Главное правильно показать что проблема на их стороне.
Суть явления не ясна.
Можно взять VPS, потестировать с ним.
Тогда пакеты с той стороны провайдера, которые приходят на VPS, также будут доступны.
Есть неплохая вероятность, что появится возможность раскрыть суть явления.
ЗЫ. Когда ещё работал под Windows, всегда отключал QoS для сетевых карт.
Как-то заметил, что он гадит, и стал всегда отключать.
Если проблема в винде, МТС тогда при чем тут? Не защищаю, правда не увидел последовательности рассказа.
«Загрузка» и «скачивание» — калька с английских «upload» и «download». Хотя эти термины в тексте формально используются правильно, в русском языке их часто путают: говорят «загрузить файл на компьютер», «скачать файл на ПК» или «закачать его к себе». Поэтому, на мой взгляд, было бы понятнее вместо «загрузка» использовать «отдача» или выражение «исходящая скорость/соединение». Текст стал бы легче восприниматься. В вашем случае, однако, сомнения развеивали скриншоты.
А в остальном, хочется выразить свое восхищение проделанной работой — титанический труд, потрясающие усидчивость и решимость. Но, как и автор предыдущего комментария, не понял в чем конкретно выразилось влияние провайдера МТС на низкую исходящую скорость?
И еще вопрос до кучи: особенности реализации TCP-RACK оказывают влияние только на исходящее соединение, а на входящее нет?
Отличная статья! Виден подход к проблеме с разных сторон. P.S. Ответу МТС не удивлен))
Я так понимаю, сети 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
Отключался от домру - такие же жёсткие менеджеры по удержанию клиента перезвонили 3 раза и в разных тонах рассказывали как у них хорошо, а к кому переходите, а может вам скидку... Пытался сторговаться на вечные 50%, согласились лишь на полгода. Как плюс - разрешили не возвращать морально устаревшее оборудование, которое по тарифу было дано в аренду за 1р/мес, роутер и ТВ приставка. Понапокупали мелких региональных провайдеров и зовут себя федеральной сетью, а работают ни к чёрту плохо.
В пункте 11 Вы пропустили install в команде apt. Люди, не знакомые с linux, могут не понять (
Статья шикарная, обожаю такие исследования. Меня проблема не коснулась (использую linux, клиент Билайна), но было очень интересно. Обязательно посоветую другу, если что-то подобное будет. Рад, что вы в итоге исправили проблему
После установки прокси скорость скачивания очень сильно упала. Можно сказать входящий и исходящий трафик просто поменялся местами, неужели прокси может срезать 80% скорости или я где-то ошибся? Однако для конкретных целей это всё же пригодится, спасибо за статью!
это странно, если клиент прокси как из статьи, то можно попробовать отключить qos. Либо у вас автотюн глючит, у меня подобное было без прокси почти год назад.
В ином случае, если всё проверено, тогда без понятия
На более старых версиях Виндовс не пробовали проверять скорость?
Windows — причина медленного интернета. Низкая скорость «загрузки», при нормальной скорости «скачивания»