Привет.
Сетевая подсистема в Windows NT прошла достаточно длительный путь – изначально являясь сетевой операционной системой, NT сразу ставила задачу предоставлять надежные, сбалансированные и эффективные сетевые решения.
Беда в том, что с точки зрения большинства админов под “настройкой сетевых параметров” понимаются видные глазом базовые минимальные пункты – как задание IP-адреса, маски и шлюза, а даже тот факт, что IP-адресов на интерфейсе может быть несколько, уже вызывает удивление.
Фактически же количество сетевых настроек в Windows NT достаточно велико, и, хорошо зная работу сетевой подсистемы, можно ощутимо улучшить работу ОС. И наоборот тоже. Поэтому данная статья обязательна к ознакомлению тем, кто хочет “покрутить параметры”.
Диспозиция
Я предполагаю, что Вы, товарищ читатель, знаете на приемлемом уровне протокол TCP, да и вообще протоколы сетевого и транспортного уровней. Чем лучше знаете – тем больше КПД будет от прочтения данной статьи.
Речь будет идти про настройку для ядра NT 6.1 (Windows 7 и Windows Server 2008 R2). Всякие исторические ссылки будут, но сами настройки и команды будут применимы к указанным ОС, если явно не указано иное.
В тексте будут упоминаться ключи реестра. Некоторые из упоминаемых ключей будут отсутствовать в официальной документации. Это не страшно, но перед любой серьёзной модификацией рабочей системы лучше фиксировать то, что Вы с ней делаете, и всегда иметь возможность удалённого доступа, не зависящую от состояния сетевого интерфейса (например KVM).
Это – первая часть статьи. Потому что настроек достаточно много. В следующей части я расскажу про другие.
Содержание
- Работаем с RSS
- Работаем с CTCP
- Работаем с NetDMA
- Работаем с DCA
- Работаем с ECN
- Работаем с TCP Timestamps
- Работаем с WSH
- Работаем с MPP
Поехали.
Настраиваем RSS в Windows
Аббревиатура RSS обычно ассоциируется совсем с другим, нежели с настройкой TCP. Хотя, в общем, это у всех по-разному – кто-то PHP с ходу расшифровывает как Penultimate Hop Popping, а кто-то думает, что КВД – это НКВД без первой буквы. Все люди разные. Мы будем говорить про тот RSS, который Receive Side Scaling.
Суть технологии RSS достаточно проста – входящий поток данных сетевого уровня разбивается на несколько очередей, обработка каждой из которых (вызов прерываний, копирование информации) производится выделенным виртуальным процессором (т.е. или отдельным физическим, или ядром). То есть в случае наличия нескольких процессоров Вы можете распределить интенсивный сетевой трафик по ним, снизив количество вызовов прерываний, переключений контекста, очистки кэша и прочих неприятностей, которые, если происходят много тысяч раз в секунду, могут ощутимо навредить производительности системы в целом.
Суть-то простая, да вот в реализации столько тонкостей, что можно написать отдельную статью. Пока это не является целью, поэтому постараюсь описать оные тонкости сжато и компактно
Для начала необходимо, чтобы сетевая карта умела формировать вышеупомянутые очереди, и умела делать это хорошо. По сути, эта задача требует от сетевой карты функционала, отдалённо напоминающего CEF (который Cisco Express Forwarding) – коммутации 3го уровня с определением и разделением отдельных потоков пакетов. Давайте попробуем разобраться на примере, как и зачем это может работать.
Допустим, у Вас есть быстрый сетевой адаптер (например, 10Гбит), и по нему к Вам приходит много данных. И эти данные хорошо разделяются на много потоков (например, когда мы ведём вебинары, на каждого слушателя идёт почти по десятку TCP-сессий, а слушателей бывает и 40). По сути, все эти потоки данных выглядят потоками только на транспортном уровне, а на сетевом сливаются в общий поток. Это, в общем, и есть работа протоколов транспортного уровня – мультиплексировать потоки данных от различных приложений на различных хостах. Но от этого нашей принимающей стороне не легче – ведь ей надо из входящего потока сформировать:
- Отдельные сессии TCP – т.е. для каждой поддерживать session state, буферы данных, состояние cwnd/rwnd, состояние sack’ов и ack’ов вообще
- Отдельные буферы для каждого фрагментированного IP-пакета
- Отдельные очереди (ведь трафик может обладать приоритетами)
И практически каждое событие во всей этой пачке сессий – это вызов прерывания и его обработка. Крайне затратно, особенно учитывая, допустим, негативный сценарий (10 гигабит поток, ip-пакеты по 1КБ). Можно даже сказать проще – ощутимое количество процентов мощности процессора (весьма дорогого, заметим) уйдёт на решение этих задач тех.обслуживания. Как с этим бороться? Да просто – пусть адаптер формирует отдельные очереди пакетов – тогда на каждую из них можно “привязать” свой процессор/ядро, и нагрузка в плане прерываний и прочего распределится. Но тут нас поджидает неочевидная проблема.
Дело в том, что просто так распределить не получится. Т.е. если мы придумаем очень простой критерий распределения (например, две очереди, четные пакеты – налево, нечетные – направо), то у нас может получиться следующая ситуация – у потоков данных часть пакетов попадёт в “четную” очередь, а часть – в “нечетную”. А в этом случае мы потеряем все возможные бонусы, возникающие при обработке непрерывного потока пакетов (обычно эти бонусы выглядят как “первый пакет обрабатываем по-полной, кэшируем все возможные результаты обработки, и все последующие пакеты обрабатываем по аналогии”). Т.е. нам надо всячески избегать ситуации, когда одному процессору придётся, обрабатывая, например, поток очень однотипных мультимедийных пакетов (какой-нибудь RTP например), пытаться “сбегать почитать” в соседнюю очередь. Скажем проще – никуда он вообще бегать тогда не будет, а придётся тогда нам выключать всяческие ускорения обработки TCP/UDP/IP-потоков, потому что работать они будут только в случае ситуации, когда весь поток однотипных пакетов обрабатывается одним ядром/процессором. А это приведёт к тому, что на процессоры придётся переводить вообще всю нагрузку по обработке сетевых данных, что с гарантией “убьёт” даже достаточно мощный CPU.
То есть, наша задача-максимум – это распределить входящие данные по нескольким отдельным очередям приёма, да так, чтобы потоки пакетов легли в очереди “целиком”, да и ещё желательно, чтобы заполнились эти очереди равномерно. Тогда мы и распределим нагрузку по процессорным ядрам, и не потеряем другие возможности по ускорению обработки потоков пакетов. Для решения этой задачи нам надо будет действовать сообща – и ОС, и оборудованию.
Хороший RSS начинается с сетевой карты. В сетевых картах, которые умеют RSS (а уже понятно, что это не карты минимального уровня), такой функционал есть – например в очень даже недорогой Intel 82576 (в моём случае – встроена в сервер) есть функционал и включения RSS сразу, и выбора количества очередей – 1, 2, 4 или 8.
Почему же количество очередей RSS будет выбираться из целочисленных степеней двойки? Тут начинается интересное, что будет роднить логику работы RSS и, допустим, логику балансировки у etherchannel.
Дело в том, что для того, чтобы определить “принадлежность” пакета к потоку, RSS использует следующую логику – берутся несколько ключевых полей пакета – SRC IP, DST IP, код протокола L4, SRC PORT, DST PORT – и от них вычисляется хэш, по последним битам которого (соответственно, для 2х очередей достаточно и одного бита, для 4х – двух, для 8 – трёх) и определяется принадлежность пакета к буферу. Соответственно, пакеты одного протокола, идущие с одного фиксированного порта и IP-адреса на другой адрес и порт, будут формировать поток и попадать в одну очередь. Такой подход достаточно быстр и прост с точки зрения балансировщика, но, как понятно, никак не решает ситуацию “Есть два стула две TCP-сессии – одна 1% канала занимает, другая 99%”. И даже не гарантирует, что обе эти сессии не попадут (с вероятностью 1/2) в одну и ту же очередь, что вообще превратит всю задачу в бессмыслицу.
Поэтому, в общем-то, остановимся на следующем факте – если у сетевой карты есть поддержка RSS, то её надо как минимум включить, чтобы первичное разделение входящего трафика на несколько очередей, притом с сохранением потоков, происходило без участия CPU.
Ну а вот дальше – уже задача операционной системы – что есть не один, а несколько потоков, и на каждый надо выделить свой процессор или ядро. Это как раз и будет тот самый RSS, который мы будем включать. Он уже будет создавать в драйвере NDIS отдельные очереди и выделять на каждую из них по процессору/ядру.
Нововведением в Windows Server 2008 R2 является то, что этим можно управлять – правда, только через реестр. В частности, управлению будут поддаваться 2 параметра – стартовое количество процессорных ядер, выделяемое для всех RSS-очередей на адаптере, и максимальное количество ядер для данной задачи. Параметры эти будут находиться по адресу HKLM\SYSTEM\CurrentControlSet\Control\Class\гуид сетевого адаптера\номер сетевого адаптера\
и называться, соответственно, *RssBaseProcNumber
и *MaxRSSProcessors.
Пример использования данных параметров – допустим, у Вас есть сервер с 16 ядрами (2 процессора по 8 ядер или 4 по 4 – не суть). Есть три сетевых адаптера – один используется для управления системой, два других – для привязки к ним виртуальных машин. Вы можете выставить указанные параметры только у двух интерфейсов, на которых будет подразумеваться высокая нагрузка, притом следующим образом – поставить RssBaseProcNumber
равным 2, а MaxRSSProcessors
– например, 12. Тогда тот интерфейс, который будет активнее принимать трафик, сможет “отъесть” до 12 ядер системы на обработку очередей, при этом не надо будет жестко задавать этот параметр вручную (это удобно, если нагрузка переместится на другой интерфейс). Безусловно, в этом примере надо, чтобы сетевые адаптеры тоже поддерживали RSS, и, желательно, хотя бы очередей 8.
Подводя итоги – RSS – это достаточно практичная и нужная технология, требующая поддержку и со стороны оборудования, и со стороны операционной системы. И становящаяся всё более актуальной, так как на данный момент скорости сетевых интерфейсов растут, равно как и количество процессорных ядер, а, следовательно, старый подход, когда одно ядро “разгребает” единую входящую очередь, становится всё менее эффективным.
Как включить RSS в Windows
netsh interface tcp set global rss=enabled
Настраиваем логику алгоритма контроля перегрузки (CTCP) в Windows
Compound TCP – это Microsoft’овский протокол управления “окном перегрузки” (congestion window). Адресно предназначен для форсированного изменения окна при работе в сетевых средах с относительно большой задержкой (например, по WiMax или спутниковым каналам). Соответственно, не сильно полезен в сценарии широкополосного доступа в Интернет или работе по локальной сети.
По сути, всё, что он делает, это форсирует быстрое увеличение окна со стороны отправителя в случае, если обнаруживается, что сеть имеет малое время отклика, и быстро уменьшает окно в случае задержек на канале.
Как включить CTCP в Windows
netsh interface tcp set global congestionprovider=ctcp
Настраиваем использование NetDMA в Windows
NetDMA – достаточно интересная функция. Смысл её применения есть тогда, когда у Вас не поддерживается Chimney Offload и Вы хотите ускорить обработку сетевых подключений. NetDMA позволяет копировать без участия CPU данные (в общем, как и любой DMA-доступ) из приемных буферов сетевого стека сразу в буферы приложений, чем снимает с CPU данную задачу по тупому выполнению чего-то типа rep movsd
.
Говоря проще, если Ваша сетевая плата не может “вытащить” на себя полную обработку TCP-соединений, то NetDMA хотя бы разгрузит процессор от самой унылой части задачи по обслуживанию сетевых соединений – копированию данных между сетевой подсистемой и использующими её приложениями.
Что нужно для включения NetDMA в Windows
Нужно оборудование, которое поддерживает NetDMA – в случае Windows это процессор с поддержкой технологий семейства Intel® I/O Acceleration Technology (I/OAT), которые, в свою очередь, входят в Intel Virtual Technology for Connectivity (VT-c). Включение NetDMA на оборудовании AMD эффекта, увы, не принесёт – не поверив, проверил на домашнем феноме 1055T – действительно, NetDMA не включается.
Как включить NetDMA в Windows
Локально:
netsh interface tcp set global netdma=enabled
Через Group Policy:
Откройте ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
, создайте в нём параметр EnableTCPA
вида 32bit DWORD
и поставьте его в единицу
Секретный уровень
Если Вы дочитали до этого места, то дальше не читайте – опасно. Но вообще, в том же ключе – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
– есть параметр MinPacketSizeToDma
, тоже типа 32bit DWORD
, который, что и логично, исходя из его названия, указывает минимальный размер пакета, для которого имеет смысл инициировать DMA-передачу. Параметр данный выставляется автоматически и его тюнинг имеет слабый практический смысл – т.е. в принципе можно представить ситуацию, когда система поставит слишком малый параметр, и будет слишком часто переключаться на DMA, а Вы это поправите вручную, но очень слабо могу представить себе КПД этой операции – выяснять сие путём достаточно кропотливых синтетических тестов, чтобы выиграть призрачные доли процента на единственной операции в единственной подсистеме, притом доли эти будут укладываться в погрешность измерений, весьма уныло.
Настраиваем использование DCA (прямого доступа к кэшу NetDMA) в Windows
По сути, Direct Cache Access – это дополнение к NetDMA, которое появляется только в NetDMA 2.0 и является опциональным (т.е. факт наличия NetDMA не говорит о том, что DCA будет работать). Задачи, которые решает DCA, просты – он “привязывает” конкретную сетевую сессию к определённому ядру процессора, и позволяет копировать данные не по трассе “сетевой интерфейс”->”оперативная память”->”кэш процессора”, а напрямую с сетевого интерфейса в кэш процессора. В ряде сценариев (быстрая сеть и много сессий и ядер CPU) выигрыш может быть ощутимым – судя по исследованиям IEEE за 2009й год, в случае загруженной на ~80% 10Gbit сети плюс 12ти ядер нагрузка CPU падает примерно на треть.
Технология работоспособна для гигабитных и более быстрых сетевых адаптеров. И, как понятно, имеет смысл только в случае, когда сетевой адаптер не умеет Chimney Offload (что, в общем-то, уже достаточно сложно – в случае наличия нагрузки, при которой DCA эффективен, обычно используются сетевые адаптеры, которые на аппаратном уровне умеют обрабатывать TCP).
Кстати, интересный момент – DCA есть в Windows Server 2008, но не работает в Vista. В NT 6.1 работает везде, включая Windows 7.
Как включить DCA в Windows
Предварительно – обязательно включить NetDMA.
Локально:
netsh interface tcp set global dca=enabled
Через Group Policy:
Откройте ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
, создайте в нём параметр EnableDCA
вида 32bit DWORD
и поставьте его в единицу
Настраиваем уведомления о перегрузке (ECN’ы) в Windows
Технология ECN в явном виде относится и к IP, а не только к TCP, но все равно про неё стоит тут написать.
Протокол IP изначально не особо любил технологии класса Quality of Service – QOS, поэтому в заголовке IPv4 выделен байт с целью “использовать для целей управления качеством”. Притом этот байт может содержать данные в разных форматах, и то, как его интерпретировать, решает конкретный хост. Используется два возможных формата данного байта – DSCP (он же DiffServ) и IP Precedence. По умолчанию этот байт (называющийся ToS – Type of Service) обрабатывается как IP Precedence и представляет собой копию данных канального уровня (в него копируются три бита от CoS – Class of Service, которые передаются в 802.3 кадре в составе 802.1p компонента заголовка 802.1Q).
Но нас будет интересовать ситуация, когда в заголовке IP-пакета – в поле ToS, разумеется – данные интерпретируются в формате DSCP. В этом случае на номер класса трафика отдаётся 6 бит (что даёт возможность сделать в организации 2^6 = 64 класса трафика и удобно управлять приоритетами), а оставшиеся 2 бита отдаются как раз на сигнализацию о “заторах”.
Говоря проще, если у промежуточного устройства буфер пакетов близок к перегрузке, то оно сигнализирует Вам, отправляя служебный пакет на IP отправителя, что “пакеты скоро будет некуда девать и придётся их выбрасывать, притормози”. Отправляет их, выставляя как раз специфические биты в поле ToS. Соответственно, включая поддержку данной технологии, Вы будете включать и возможность генерации подобных пакетов, и возможность анализа оных.
Простейший пример ситуации, в которой это поможет – на пути Вашего трафика стоит маршрутизатор, который в Вашу сторону смотрит интерфейсом со скоростью 1 Gbit, а дальше – интерфейсом со скоростью 100 Mbit. Если Вы будете отдавать ему трафик с максимально возможной скоростью, то его очередь пакетов, пытающихся “выйти” через интерфейс со скорость 100 Mbit, очень быстро переполнится, и если он не сможет Вам об этом сказать (ну или если Вы не включите со своей стороны возможность услышать эти сообщения от него), то ему придётся просто в определённый момент перестать принимать пакеты, сбрасывая их. А это приведёт к тому, что начнётся потеря данных, которые надо будет восстанавливать – а служебный трафик при восстановлении данных достаточно значителен. Т.е. гораздо проще передать чуть медленнее, чем потерять много пакетов и выяснить это на уровне TCP-подключения, после чего запрашивать их повторно, теряя время и тратя трафик.
Кстати, проверить поддержку ECN ближайшим маршрутизатором можно бесплатной утилитой Internet Connectivity Evaluation Tool.
Как включить ECN в Windows
netsh interface tcp set global ecn=enabled
Настраиваем TCP Timestamps (по RFC 1323) в Windows
TCP Timestamps – базовая низкоуровневая технология, которая позволяет стеку TCP измерять два важных параметра для соединения: RTTM (задержку канала) и PAWS (защита от дублирующихся TCP-сегментов). В случае, если TCP Timestamps не включены хотя бы с одной стороны подключения, оба механизма вычисления этих параметров отключены и система не может высчитать данные значения. Это приводит к тому, что становится невозможным быстро и эффективно менять размер окна TCP (без знания времени задержки на канале-то). Поэтому включать TCP Timestamps в случае работы с большими объёмами данных (например, обращение к быстрому серверу в локальной сети – типовой сценарий корпоративной LAN) необходимо – ведь иначе протокол TCP не сможет быстро “раскачать” окно передачи.
Как включить TCP Timestamps в Windows
netsh interface tcp set global timestamps=enabled
Побочные эффекты включения TCP Timestamps в Windows
Практически не наблюдаются. Рост локальной загрузки CPU отсутствует, т.к. алгоритм достаточно прост, рост объёмов служебного трафика – так же (RTTM высчитывается, исходя из “времени оборота” обычных сегментов TCP, а не каких-то специальных дополнительных).
Настраиваем автоматический подбор размера окна TCP (WSH) в Windows
Данный параметр достаточно прост. Эта настройка – Window Scale Heuristic – говорит о том, будете ли Вы сами выбирать логику поведения протокола TCP для выбора размеров окна, либо отдадите это на усмотрение операционной системе.
То есть при включенном алгоритме WSH вышеупомянутый тюнинг окна TCP – выбор между disabled/highlyrestricted/restricted/normal/experiemental
– будет делаться автоматически и Ваша настройка параметра autotuninglevel
будет просто игнорироваться. При просмотре будет появляться служебное окно с текстом "The above autotuninglevel setting is the result of Windows Scaling heuristics overriding any local/policy configuration on at least one profile"
.
Как включить Window Scaling Heuristic в Windows
netsh interface tcp set heuristics wsh=enabled
Настраиваем базовую безопасность TCP (параметр Memory Pressure Protection) в Windows
Данная функция предназначена для защиты от достаточно известной атаки – локального отказа в обслуживании, вызванного тем, что удалённый атакующий инициирует множество TCP-сессий к нашей системе, система выделяет под каждую сессию буферы и оперативная память, возможно, заканчивается (ну или просто забивается до степени, когда начинается свопинг и производительность ощутимо падает.
Параметр включен по умолчанию в Windows Server 2008 R2, поэтому обычно нет смысла его настраивать, но если что – Вы можете его включить вручную. Более того, Вы можете выбрать, на каких портах эту защиту включать, а на каких – нет. Это имеет смысл, если доступны снаружи лишь некоторые порты, а не все.
Как включить Memory Pressure Protection в Windows
netsh interface tcp set security mpp=enabled
Включение MPP для отдельного порта (например, у нас наружу опубликован веб-сервер)
netsh int tcp set security startport=80 numberofports=1 mpp=enabled
Выключение MPP для всех портов, кроме указанного (например, кроме LDAP)
netsh int tcp set security startport=1 numberofports=65535 mpp=disabled
netsh int tcp set security startport=389 numberofports=1 mpp=enabled
netsh int tcp set security startport=636 numberofports=1 mpp=enabled
Дополнительно
На самом деле, можно включать или выключать MPP для протоколов IP разных версий отдельно, а не глобально для всех. Для этого будут два ключа реестра с предсказуемыми названиями:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableMPP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\EnableMPP
Параметр EnableMPP в каждом из случаев имеет тип 32bit DWORD и ставится либо в единицу, либо в нуль.
Вместо заключения
Данный краткий обзор части возможностей настроек сетевой подсистемы Windows имеет собой цель не побудить к немедленной правке всего вышеупомянутого, а показать то, что в данной ОС присутствует достаточно много инструментов тюнинга, хорошее знание которых может очень позитивно повлиять на работу системы. Только надо учитывать, что хорошее знание – это не “какая утилитка какие ключики правит”, а в первую очередь – отличное знание базовых сетевых технологий, которое, увы, сейчас в сообществе специалистов по Windows встречается крайне редко. Но я верю, что у Вас, при надлежащем системном подходе, всё будет хорошо.
UPDATE
Написал вторую часть статьи.
PC-PORTAL
МЕНЮ
Обновлено: 08.10.2023
Читайте также:
- Nvidia geforce gt 320 поддерживает ли directx 11
- Nero bottega ликер шоколадный как пить
- Focusrite control output routing is not supported on this device на windows 7 что делать
Shortcuts
Tweaks to optimize Windows for low latency online gaming
2014-04-01 (updated: 2021-01-08) by
Tags: gaming, mmo, tweaks
Online Gaming can often benefit from some fine-tuning of Windows TCP/IP settings and the Network Adapter properties. This article is intended to supplement our general broadband tweaks and list only TCP/IP settings that are specific to online gaming and reducing network latency. Some of these settings are also mentioned in our general tweaking articles, however, the emphasis here is on latency rather than throughput, and we have complemented the tweaks with more gaming-specific recommendations and settings that give priority to multimedia/gaming traffic, and may be outside of the scope of other broadband tweaks that focus on pure throughput.
Some proficiency in using Command Prompt/PowerShell and editing the Windows Registry is expected. The Windows Registry can be accessed from the Start/Windows button -> type: regedit. Backing up your Registry before any edits is highly recommended, as mistakes can cause serious issues for the operating system.
Disable Nagle’s Algorithm
(TCP Optimizer «Advanced Settings» tab)
This tweak works with all versions of Windows from Windows XP to Windows 8.1/10/2012 server. This is the same as listed in our general tweaking articles per OS.
Nagle’s algorithm is designed to allow several small packets to be combined together into a single, larger packet for more efficient transmissions. While this improves throughput efficiency and reduces TCP/IP header overhead, it also briefly delays transmission of small packets. Disabling «nagling» can help reduce latency/ping in some games. Keep in mind that disabling Nagle’s algorithm may also have some negative effect on file transfers. Nagle’s algorithm is enabled in Windows by default. To implement this tweak and disable Nagle’s algorithm, modify the following registry keys.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
There will be multiple NIC interfaces listed there, for example: {1660430C-B14A-4AC2-8F83-B653E83E8297}. Find the correct one with your IP address listed. Under this {NIC-id} key, create a new DWORD value:
«TcpAckFrequency»=1 (DWORD value, not present by default interpreted as 2, 1=disable nagling, specifies number of outstanding ACKs before ignoring delayed ACK timer). For gaming performance, recommended is 1 (disable). For pure throughput and data streaming, you can experiment with small values over 2. Wifi performance may see a slight improvement with disabled TcpAckFrequency as well.
In the same location, add a new DWORD value:
TCPNoDelay=1 (DWORD, not present by default, 0 to enable Nagle’s algorithm, 1 to disable)
To configure the ACK interval timeout (only has effect if nagling is enabled), find the following key:
TcpDelAckTicks=0 (DWORD value, not present by default interpreted as 2, 0=disable nagling, 1-6=100-600 ms). Note you can also set this to 1 to reduce the nagle effect from the default of 200ms without disabling it.
For Server Operating Systems that have Microsoft Message Queuing (MSMQ) installed, or if you have the MSMQ registry hive present, also add TCPNoDelay to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
TCPNoDelay=1 (DWORD, not present by default, 0 to enable Nagle’s algorithm, 1 to disable)
Note: Reportedly, disabling Nagle’s algorithm can reduce the latency in many MMOs like Diablo III and WoW (World of Warcraft) by almost half! Yes, it works with Windows 7 and Windows 8.
Network Throttling Index Gaming Tweak
(TCP Optimizer «Advanced Settings» tab)
Works with all current versions of Windows from Vista to 8.1/10/2012 Server.
Windows implements a network throttling mechanism to restrict the processing of non-multimedia network traffic to 10 packets per millisecond (a bit over 100 Mbits/second). The idea behind such throttling is that processing of network packets can be a resource-intensive task, and it may need to be throttled to give prioritized CPU access to multimedia programs. In some cases, such as Gigabit networks and some online games, for example, it is beneficial to turn off such throttling all together for achieving maximum throughput.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
«NetworkThrottlingIndex»=dword:ffffffff (DWORD, default: 10, recommended: 10 for media sharing, ffffffff for gaming and max throughput, valid range: 1 through 70 decimal or ffffffff to completely disable throttling)
It is only recommended to change this setting in saturated Gigabit LAN environments, where you do not want to give priority to multimedia playback. Reportedly, disabling throttling by using ffffffff can also help reduce ping spikes in some online games. Games that may be affected by this throttling: Source Engine games (TF2, Left 4 Dead, CS:S), HoN, CoD, Overlord series.
System Responsiveness Gaming Tweak
(TCP Optimizer «Advanced Settings» tab)
Exists in all versions of Windows from Vista to 8.1/10/2012 Server.
Multimedia applications use the «Multimedia Class Scheduler» service (MMCSS) to ensure prioritized access to CPU resources, without denying CPU resources to lower-priority background applications. This reserves 20% of CPU by default for background processes, your multimedia streaming and some games can only utilize up to 80% of the CPU. This setting, in combination with the «NetworkThrottlingIndex» can help some games and video streaming. We recommend reducing the reserved CPU for background processes from the default of 20%.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
«SystemResponsiveness»=dword:00000000 (default: 20, recommended: decimal 10 for general applications, 0 for pure gaming/streaming)
Note: In Server operating systems (Windows 2008/2012 Server), SystemResponsiveness is set to 100 by default, denoting that background services should take priority over any multimedia applications.
Turn off LargeSystemCache
(TCP Optimizer «Advanced Settings» tab)
For local network large file transfers, this registry settings allows for better throughput and eliminates some file sharing event log errors (Event ID 2017 error). However, reportedly it has issues with some ATI Video card drivers and certain applications performance. Therefore we recommend turning it off (set to zero) for gaming.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
LargeSystemCache=0 (DWORD, default value: 0, recommended value: 1 for LAN throughput, 0 for gaming)
A value of zero establishes a cache of ~8 MB, a value of 1 allows the cache to expand up to the amount of physical memory minus 4 MB, as necessary.
Disable Game Bar and Game Mode under Windows 10 Creators update
Windows 10 Creators’ update introduced a «Game Bar» to to help Xbox integration and gaming in general, however, they can reportedly cause stuttering during gaming, especially with Windows 10 builds prior to v1709.
More Gaming Tweaks
This section includes gaming-specific tweaks not listed in our general tweaking articles (and not implemented by the TCP Optimizer).
In the same Registry hive as the above two tweaks, you can also change the priority of Games, compared to other types of traffic. These tweaks only affect games that communicate with e Multimedia Class Scheduler Service (MMCSS). Below is a list of the settings and default/recommended values:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games]
«Affinity»=dword:00000000 (DWORD, default: 0, recommended: 0. Both 0x00 and 0xFFFFFFFF indicate that processor affinity is not used)
«Background Only»=»False» (REG_SZ, default: «False», recommended: «False», possible values are True or False). Indicates whether this is a background task.
«Clock Rate»=dword:00002710 (DWORD, default: 2710, recommended: 2710). The maximum guaranteed clock rate the system uses if a thread joins disk task, in 100-nanosecond intervals.
«GPU Priority»=dword:00000008 (DWORD, default: 2, recommended: 8. range: 0-31). The GPU priority. Not used in Windows XP and 2003.
«Priority»=dword:00000002 (DWORD, default: 2, recommended: leave alone if using «Scheduling Category» below, set to 6 otherwise for gaming, possible values are 1-8). The task priority, ranging from 1(low) to 8(high). Note for tasks with Scheduling Category of «High», this value is always treated as 2.
«Scheduling Category»=»High» (REG_SZ, default: «Medium», recommended: «High». possible values: Low, Medium, High)
«SFIO Priority»=»High» (REG_SZ, default: «Normal», recommended: «High») The scheduled I/O priority, possible values are Idle, Low, Normal, or High.
Reference: Multimedia Class Scheduler Service
Congestion Control Provider
The TCP Congestion Control Algorithm controls how well, and how fast your connection recovers from network congestion, packet loss, and increase in latency. Microsoft changed the default «congestion provider» from CTCP to CUBIC with the Windows Creators update.
Possible settings are: none, CTCP, CUBIC, DCTCP, New-Reno
Recommended: CTCP for gaming and latency sensitive apps, CUBIC for pure throughput
To see the current setting, in PowerShell use: Get-NetTCPSetting | Select SettingName, CongestionProvider (in later Windows 10 builds, the default used template «SettingName» is «Internet». For more info se our Windows 10 Tweaks article)
Note: If using CTCP and with lossy connections (good possibility of congestion/packet loss), you may also want to enable ECN.
ECN Capability
(Editable with the TCP Optimizer)
ECN (Explicit Congestion Notification, RFC 3168) is a mechanism that provides routers with an alternate method of communicating network congestion. It is aimed to decrease retransmissions. In essence, ECN assumes that the cause of any packet loss is router congestion. It allows routers experiencing congestion to mark packets and allow clients to automatically lower their transfer rate to prevent further packet loss. Traditionally, TCP/IP networks signal congestion by dropping packets. When ECN is successfully negotiated, an ECN-aware router may set a bit in the IP header (in the DiffServ field) instead of dropping a packet in order to signal congestion. The receiver echoes the congestion indication to the sender, which must react as though a packet drop were detected. ECN is disabled by default in modern Windows TCP/IP implementations, as it is possible that it may cause problems with some outdated routers that drop packets with the ECN bit set, rather than ignoring the bit.
Possible settings are: enabled, disabled, default (restores the state to the system default).
Default state: disabled
Recommendation: «enabled» for gaming only with routers that support it, after testing. It’s effects are more noticeable in the presence of congestion/packet loss. Disable for pure throughput with no packet loss.
ECN works well for short-lived, interactive connections like gaming and HTTP requests with routers that support it, in the presence of congestion/packet loss. It can be disabled if tuning for pure bulk throughput with large TCP Window, no regular congestion/packet loss, or with outdated routers that do not support ECN.
To change using netsh:
netsh int tcp set global ecncapability=enabled
(alternative syntax: netsh int tcp set global ecn=enabled)
To change using PowerShell cmdlets in Windows 8.1/2012 Server R2 :
Set-NetTCPSetting -SettingName InternetCustom -EcnCapability Disabled
(for Windows 8/2012, the name of the template in the above command is «Custom» instead of «InternetCustom»)
Notes:
ECN is only effective in combination with AQM (Active Queue Management) router policy. It has more noticeable effect on performance with interactive connections, online games, and HTTP requests, in the presence of router congestion/packet loss. Its effect on bulk throughput with large TCP Window are less clear. Currently, we only recommend enabling this setting in the presence of packet loss, with ECN-capable routers. Its effects should be tested. We also recommend using ECN if you are enabling the CoDel scheduling algorithm to combat bufferbloat and reduce latency.
Use caution when enabling ECN, as it may also have negative impact on throughput with some residential US ISPs. Some EA multiplayer games that require a profile logon do not support ECN yet (you will not be able to logon). Note that if supported, ECN can reduce latency in some games with ECN-capable routers in the presence of packet loss (dropped packets).
See also: Wikipedia — ECN, RFC 3168
Disable Receive Segment Coalescing State (RSC)
(Editable with the TCP Optimizer) This is applicable to Windows 8/10/2012 Server, not available for earlier Windows versions.
Receive Segment Coalescing (RSC) allows the NIC to coalesce multiple TCP/IP packets that arrive within a single interrupt into a single larger packet (up to 64KB) so that the network stack has to process fewer headers, resulting in 10% to 30% reduction in I/O overhead depending on the workload, thereby improving throughput. Receive Segment Coalescing (RCS) is able to collect packets that are received during the same interrupt cycle and put them together so that they can be more efficiently delivered to the network stack. While this reduces CPU utilization and improves thorughput, it can also have a negative impact on latency. That is why we recommend you disable it where latency is more important than throughput.
Possible states: enabled, disabled, default. Default state: disabled
Recommended: disabled for pure gaming latency, enabled for better throughput.
To enable using netsh:
netsh int tcp set global rsc=disabled
To change using PowerShell cmdlets:
Disable-NetAdapterRsc -Name * (use to disable RSC for all adapters)
Enable-NetAdapterRsc -Name * (use to enables RSC for all adapters that support it)
Get-NetAdapterRsc -Name * (use to view adapters that support RSC)
Notes: Only supported by some network adapters. May need «Checksum Offload» enabled as well to work.
Disable Large Send Offload (LSO)
(Editable with the TCP Optimizer) Windows 8/10/2012 Server, not available in earlier Windows versions
Large Send Offload lets the network adapter hardware to complete data segmentation, rather than the OS. Theoretically, this feature may improve transmission performance, and reduce CPU load. The problem with this setting is buggy implementation on many levels, including Network Adapter Drivers. Intel and Broadcom drivers are known to have this enabled by default, and may have many issues with it. In addition, in general any additional processing by the network adapter can introduce some latency which is exactly what we are trying to avoid when tweaking for gaming performance. We recommend disabling LSO at both the Network Adapter properties, and at the OS level with the setting below.
Default: adapter-dependent
Recommended: disable (both in network adapter properties and in the TCP/IP stack at the OS level)
Disable-NetAdapterLso -Name * (disable LSO for all visible network adapters)
Enable-NetAdapterLso -Name * (to enable LSO for both IPv4 and IPv6 on all network adapters, not recommended)
Get-NetAdapterLso -Name * (get a list of network adapters that support LSO)
Notes: Default state is network adapter dependent. Needs Checksum Offload to be enabled to work.
Receive-Side Scaling State (RSS)
(Editable with the TCP Optimizer)
It is sometimes useful to disable RSS if you need to reduce CPU load. This is useful on systems with older/slower CPUs where games tax the processor up to 100% at times. This could be checked with «Task Monitor». Disabling RSS will only have an effect if your network adapter is capable/using RSS, and the CPU is being used up to 100%. Otherwise, you can leave it enabled.
To disable:
netsh int tcp set global rss=disabled
Advanced Concepts
Disable Coalescing: Some network adapters support advanced settings, such as DMA Coalescing, DCA Coalescing, Receive Segment Coalescing (RSC). In general, any type of packet or memory coalescing can reduce CPU utilization (also power consumption) and increases throughput, as it allows the network adapter to combine multiple packets, however, coalescing can also have negative impact on latency, especially with more aggressive settings. That is why it should be either disabled, or used very conservatively for gaming. Any type of network adapter packet/memory coalescing allows the NIC to collect packets before it interacts with other hardware. This may increase network latency. For gaming, disable «DMA coalescing» and «Receive Side Coalescing State (RSC)», where applicable.
NetDMA: This setting needs to be supported by the NIC, BIOS, and CPU (Intel I/O Acceleration Technology — I/OAT). It allows the network adapter direct memory access (DMA), theoretically reducing CPU usage. It is ok to enable for OSes that support it (according to Microsoft it is no longer supported in Windows 8/10). Note that NetDMA is not compatible with TCP Chimney Offload (Chimney offload should be disabled for gaming anyway).
TCP Offloading: TCP Offloads can improve throughput in general, however, they’ve been plagued by driver issues in the past, and, they also put more strain on the network adapter. For pure gaming, disable any TCP Offloads, such as «Large Send Offload (LSO)», for example. For pure gaming and lowest possible latency, the only safe offload that should be left to the network adapter is «Checksum Offload».
Disable Interrupt Moderation: If your Network Adapter supports this setting, it should be disabled for the lowest possible latency (at the expense of a bit higher CPU utilization).
For some of those settings specific to your OS, see our tweaking articles. To disable at the network adapter, see our Network Adapter Optimization article.
Use adequate Send/Receive buffers: low send/receive buffers values conserve a bit of memory, however they can result in dropped packets and decreased performance if exhausted, so they shouldn’t be set to values less than 256 in general. Higher-end NICS/systems can increase the values a bit to 512, or up to 1024.
Router Settings
Most broadband users have some type of NAT router that sits between them and the internet. There are some settings that may help your router better prioritize gaming traffic and improve gaming experience.
Enable upstream QoS in your router. It may be useful to enable upstream QoS at the router, if available, to prioritize the different types of traffic. Upstream QoS is important, because typically residential connections have much lower upstream cap, and when upstream bandwidth is all utilized, it can introduce some delay in the downstream traffic as well. Note this is only recommended for newer routers, where the router has ample computing power to handle the QoS overhead.
Enable WMM if using Wi-Fi. If you must use Wi-Fi, enable WMM, and try to avoid USB Wi-Fi adapters.
Use Open Source Firmware. Many NAT router models support open source firmware, such as dd-wrt, Tomato, etc. If your router’s default firmware does not support advanced functionality that you may need (QoS, WMM, VLANs, etc.), you may be able to flash dd-wrt instead. It is not uncommon for open source firmware to make your connection more stable and reduce router overhead/delay.
Enable CTF (Cut Through Forwarding) — CTF is Broadcom proprietary NAT acceleration. It is a software module that allows routers based on their hardware/firmware to achieve near-gigabit performance and lower CPU utilization through various methods, including bypassing parts of the Linux stack. It is a great feature to use, however there is a catch — it is only available when not using certain other incompatible features that need the Linux functionality (like QoS). You’d have to pick which feature you prefer by testing. In our experience CTF performs better, as the lower CPU/memory utilization and minimal processing trumps QoS in both throughput and latency.
TCP/UDP Timeouts — tweaking the TCP/UDP timeouts can have a noticeable impact on your connection by freeing up resources for active connections. Some of the more advanced router firmwares (Tomato, ASUS Merlin, dd-wrt) have a number of tweakable timeout settings that we’ve already covered in our Wireless Network Speed Tweaks article linked below.
Note: If using dd-wrt, or on Wi-Fi, check our wireless network speed tweaks, some of the advanced router settings are applicable to wired connections as well.
General Online Gaming Recommendations
- Use brand-name, wired Ethernet cards when possible — avoid Wi-Fi, especially with USB client adapters.
- When tweaking TCP/IP (using our general tweaking articles), enable CTCP, enable DCA, and try disabling most «TCP Offloading» settings, with the exception of «Checksum Offload» in both the OS and the Network Adapter Properties.
- Disable «Flow Control» and «Interrupt Moderation» in your Network adapter properties
- Disable TCP/IPv6 in Network adapter properties if not using IPv6
- Reduce the number of background processes, enable QoS at your router and give priority to your traffic.
- Test your latency to game servers using «tracert» in Command Prompt (or PowerShell).
- Disable search indexing on your SSD/hard drive (right-click on drive in Explorer -> choose «Properties» -> untick «Allow files on this drive to have contents indexed…» and wait a few minutes, ignore errors for system-protected files)
- Close unnecessary programs running on your network, you can close the processes in task manager (ctrl+shift+escape). P2P applications such as utorrent and skype open many sockets purely for passive listening and eat up a lot of your available bandwidth. Programs that check for software updates, eg google updates, adobe update, etc. can cause ping spikes.
Intel Recommended Network Adapter Settings
Optimized for quick response and low latency (Gaming):
- Minimize or disable Interrupt Moderation Rate
- Disable Offload TCP Segmentation
- Increase Transmit Descriptors
- Increase Receive Descriptors
- Increase RSS Queues
Optimized for throughput:
- Enable Jumbo Frames
- Increase Transmit Descriptors
- Increase Receive Descriptors
For low CPU utilization:
- Maximize Interrupt Moderation Rate
- Keep Receive Descriptors at default
- Avoid setting large Receive Descriptors
- Decrease RSS Queues
- Decrease the Max number of RSS CPUs in Hyper-V environments
Notes
In some situations, latency can even be reduced by using a VPN provider. Many ISPs provide fast/reliable internet locally between you and their servers, however lack in both speed in latency when it comes to their peering arrangements and backbones for longer distance connections. They could also be throttling certain traffic types. In such situations, a local to you quality VPN provider may allow you to avoid the ISP bottleneck by bypassing a lot of internal/cluttered routing and skip to a distant location faster, providing a lower latency connection.
Some of the tweaks in our general broadband tweaks articles can benefit gaming as well, like disabling «Windows Scaling Heuristics», disabling TCP 1323 Timestamps to reduce the TCP headers overhead, etc.
Most of the Registry tweaks above (with the exception of «More Gaming Tweaks») can be applied easily by using the TCP Optimizer
See Also
Wireless Network Speed Tweaks — some of the router recommendations apply to wired networks and gaming as well.
Network Adapter Optimization — tweaking your NIC settings can help improve your connection.
We appreciate any feedback and always listen to user suggestions.
Search code, repositories, users, issues, pull requests…
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Обновлено: 08.10.2023
Версии Microsoft Windows, начиная с Vista и заканчивая 10, включают возможность использования различных автонастроек TCP и некоторые элементы управления буфером.
Windows 8/10
Эта команда изменяет пользовательскую настройку TCP на значение 64 для начального окна перегрузки и использует «Compound TCP» (расширенный алгоритм управления перегрузкой TCP, аналогичный кубическому в Linux). «InitialCongestionWindowMss» указывает начальный размер окна перегрузки, и это может быть четное число от 2 до 64.
К другим полезным настройкам относятся:
Указывает уровень автонастройки TCP для хост-компьютера. Автонастройка TCP может повысить пропускную способность в сетях с высокой пропускной способностью и высокой задержкой
- Отключено. Устанавливает для окна приема TCP значение по умолчанию.
- Сильно ограничено. Увеличивает размер окна приема TCP сверх значения по умолчанию, но очень консервативно.
- Запрещено. Задает увеличение окна приема TCP сверх значения по умолчанию, но менее консервативно, чем HighlyRestricted.
- Нормально. Задает увеличение окна приема TCP для соответствия почти всем сценариям.
- Экспериментальный (рекомендуется). Задает увеличение окна приема TCP в соответствии с экстремальными сценариями.
- Включено. Использует возможности ECN.
- Отключено (рекомендуется). Не использует возможности ECN.
Windows Vista/7
Vista и 7 будут использовать максимальное окно приема до 16 МБ, 8 и 10 теоретически могут поддерживать до 1G.
Эти разновидности поддерживают усовершенствованный алгоритм управления перегрузкой TCP под названием «Compound TCP (CTCP)», аналогичный алгоритму Cubase в Linux. Чтобы включить это в Vista и 7, установите следующее:
Если вам даже нужно отключить/повторно включить автонастройку, вот команды:
Примечание. Для работы этих команд необходимы права администратора.
Чтобы запустить командную строку с правами администратора:
Нажмите «Пуск»
Введите CMD.EXE в поле поиска
Нажмите SHIFT+CTRL+ENTER
выберите «Да» в диалоговом окне UAC.
В Vista/7 невозможно изменить размер буфера TCP по умолчанию, который составляет 64 КБ. Кроме того, алгоритм автонастройки Windows Vista/7 не используется, если RTT не превышает 1 мс, поэтому одиночный поток TCP будет регулироваться в локальной сети этим небольшим буфером TCP по умолчанию.
Примечание. Мы получили сообщения о том, что на сервере Windows 2008 R2 масштаб окна TCP нарушается, когда RTT находится в диапазоне от 1 до 8 мс. Надеюсь, скоро будет патч.
Для получения дополнительной информации:
Windows XP
Обратите внимание, что описанные здесь параметры настройки могут снизить производительность хостов, подключенных со скоростью OC3 (155 Мбит/с) или ниже, например домашних пользователей с кабельными/DSL-соединениями.
Самый простой способ настроить TCP под Windows XP — получить DrTCP из «Отчетов DSL». Установите «Окно приема TCP» на рассчитанный BDP (например, 4000000), включите «Масштабирование окна», «Выборочные подтверждения» и «Отметка времени».
К другим программам, позволяющим изменять настройки Windows TCP, относится SG TCP Optimizer.
Чтобы проверить изменения, вы можете использовать редактор реестра Windows, чтобы проверить следующее:
Windows Server 2012 — это первая версия Windows Server, в которой включено явное уведомление о перегрузке (ECN) в стеке TCP. Это также известно как возможности ECN. Явное уведомление о перегрузке является расширением Интернет-протокола и протокола управления передачей и определено в RFC 3168. ECN позволяет сквозное уведомление о перегрузке сети без потери пакетов.
Устаревшее сетевое оборудование пропускает пакеты с установленными битами ECN
К сожалению, вместо правильного ответа или игнорирования битов некоторые устаревшие или неисправные сетевые устройства отбрасывают пакеты с установленными битами ECN. Это замедляет ваши исходящие соединения, потому что пакеты должны передаваться повторно без битов ECN. По мере увеличения интервалов повторной передачи до установления соединения может пройти до 10 секунд.
Пока большинство сетевого оборудования не поддерживает биты ECN в пакетах, я советую отключить ECN на сервере Windows Server 2012 (R2). Это легко сделать с помощью netsh :
Отключить возможности Windows Server Explicit Congestion Notification (ECN)
Вы можете отключить поддержку явных уведомлений о перегрузке в Windows Server 2012, если у вас медленные исходящие соединения. Соединения с задержкой до 10 секунд.
Вот как отключить возможность ECN с помощью netsh . Перезагрузка не требуется.
Сначала убедитесь, что функция ECN включена. Найдите «Включено» в выводе команды из
Если функция ECN включена, ее можно отключить:
Перезагрузка не требуется.
Наслаждайтесь быстрым(более) исходящим соединением!
Примечание относительно Windows TCP AutoTuningLevel. Как и во всех современных операционных системах, в Windows предусмотрена автоматическая настройка окна приема для динамической настройки размера приемного буфера в соответствии с пропускной способностью и задержкой канала. Отключение этой функции определенно ограничит скорость вашего интернета. Автонастройка одинакова для всех вариантов TCP и присутствует во всех современных операционных системах. Прочтите «Обновление на Windows TCP AutoTuningLevel» (архивная ссылка Wayback Machine) для получения дополнительной информации.
Сбросить параметры TCP и снова включить ECN
Вы можете использовать следующую команду netsh, чтобы восстановить значения по умолчанию для всех параметров TCP:
Или, если вы просто хотите повторно включить ECN:
Привет, меня зовут Ян. Я не хакер, кодер, разработчик или гуру. Я всего лишь системный администратор, выполняю свои повседневные дела в Vevida (часть Yourhosting) / CLDIN.
Я назову эту статью ESO KB2913357
Эта статья относится к следующим версиям Windows:
Windows Vista/Server 2008,
Windows 7/Server 2008 R2,
Windows 8/Server 2012,
Windows 8.1/Server 2012. R2
В некоторых онлайн-приложениях пользователь может столкнуться с задержкой или более низкой, чем ожидалось, производительностью сети при определенных условиях при высокоскоростном беспроводном соединении.
Решение. Включите CTCP и ECN для сетевого подключения
Windows Vista/7 по умолчанию CTCP и ECN отключены в поддерживаемых версиях Windows Vista и Windows 7. Чтобы включить эти функции, выполните следующие действия:
<р>1. Откройте командную строку с повышенными правами (cmd «Запуск от имени администратора»)
2. В командной строке с повышенными правами введите следующие команды
3. netsh interface tcp set global ecncapability=enabled
4. TCP-интерфейс netsh set global congestionprovider=ctcp
Перезагрузите систему, чтобы изменения вступили в силу
После перезагрузки откройте командную строку с повышенными привилегиями и введите следующую команду:
netsh interface tcp show global
В списке вы должны увидеть элементы ниже
Возможность ECN — «Включено»
Дополнительный поставщик управления перегрузкой — CTCP
Если ваши совпадают, все готово. наслаждайся
Как восстановить настройки по умолчанию
Если вам когда-нибудь понадобится отключить эти настройки, просто откройте командную строку с повышенными привилегиями и введите:
tcp интерфейса netsh set global ecncapability=disabled
tcp интерфейса netsh set global congestionprovider=none
Затем перезагрузите систему.
Внести эти изменения в Windows 8/8.1 может быть сложнее, потому что часть команды netsh содержит ошибки (ну, MS обесценила ее, так что сложнее сказать, что включено, а что нет)
Итак, приступим:
<р>1. Откройте командную строку с повышенными правами.
2. Введите в командной строке следующее:
3. netsh int tcp set global ecn=enable
4. Закройте Командную строку.
5. Откройте окно «Расширенная оболочка Power Shell» (Powershell входит в состав Windows 8/8.1)
6. Введите Get-NetTcpSetting и нажмите клавишу ввода
7. Прокрутите список, пока не найдете профиль «Интернет». вы увидите, что CTCP включен, это хорошо.
8. В том же окне Power Shell введите Get-NetTcpConnection
9. Вы должны увидеть, что все ваши прослушивающие порты, сокеты и подключения к Интернету используют профиль Интернета.
Шаблон Интернета используется по умолчанию на всех клиентских компьютерах с Windows 8, и его нельзя настроить. По умолчанию CTCP установлен в качестве поставщика перегрузки в интернет-шаблоне, поэтому он также используется по умолчанию на всех компьютерах с Win8 — согласно моему контакту в Microsoft.
Мы просто следим за тем, чтобы ваш стек TCP/IP никоим образом не был поврежден.
<р>10. Перезагрузите систему.
Мы уже проверили CTCP, теперь нам просто нужно проверить ecn.
Введите следующую команду в командной строке с повышенными привилегиями:
интерфейс netsh tcp показать глобальный
Возможность ECN — «Включено»
ИГНОРИРУЙТЕ ДОПОЛНИТЕЛЬНОЕ ЗНАЧЕНИЕ ПОСТАВЩИКА КОНТРОЛЯ ПЕРЕГРУЗКИ В NETSH. ОН ИМЕЕТ ОШИБКУ И НЕ ПОКАЗЫВАЕТ ПРАВИЛЬНОЕ ЗНАЧЕНИЕ, ПОСКОЛЬКУ ОН ПРИВЯЗАН К ПРОФИЛЯМ, КОТОРЫЕ НЕ НАСТРАИВАЮТСЯ В СООТВЕТСТВИИ С MICROSOFT, НАЧИНАЯ С WINDOWS 8. NETSH УСТАРЕЛА.
Внеся эти изменения, пользователи могут повысить производительность на 45–60 % при высокоскоростном подключении в зависимости от сценариев. Все, от потоковой передачи до игр, будет работать лучше.
Ринальдо Гандольфи-Бретонский колдун Ковенанта Даггерфолла
Жюст Гандольфи Темный эльф-тамплиер Ковенанта Даггерфолла
Рихтер Гандольфи — Темный эльф Рыцарь-дракон Ковенанта Даггерфолла
Матиас Гандольфи — Бретонский клинок ночи Ковенант Даггерфолла
РинальдоГандольфи — Высший эльф-колдун Альдмерского Доминиона
Офицер Огня и Льда
Со-GM — MVP
Sorcerer’s — ЕДИНСТВЕННЫЙ класс в игре, который наказывается за использование определяющего класс навыка (побег из стрелы)
«Здесь, в его святыне, что забыли. Здесь мы трудимся, чтобы мы могли вспомнить. Ночью мы возвращаем, что днем было украдено.Далекий от нас, он становится все ближе к нам. Наши глаза когда-то были слепы, теперь мы видим через него. Наши руки когда-то были праздны, теперь через них он говорит. И когда мир услышит, и когда мир увидит, и когда мир вспомнит, тот мир перестанет существовать. — Мирак
Я не заметил никаких улучшений в моей системе Win 8.x, когда попробовал эти настройки с другими сетевыми играми.
Я не заметил никаких улучшений в моей системе Win 8.x, когда попробовал эти настройки с другими сетевыми играми.
Возможно, но не все онлайн-игры или приложения выигрывают от этих изменений. Хотя существует вероятность, что они это делают. Благодаря этим настройкам я заметил увеличение производительности при подключении к Comcast.
ECN является частью RFC 3168, поэтому лучше включить его только потому, что он является частью официальной спецификации.
Компонентный протокол TCP может помочь вам только в определенных случаях. тот факт, что Microsoft включила это по умолчанию в системах Windows 8/8.1/2012/2012R2, свидетельствует об этом. Так как Windows Vista и 7 могут включать эти функции, возможно, их стоит включить.
Я не говорю, что эти изменения волшебным образом решат все проблемы, но они могут только помочь вам не только в играх, но и во всем остальном. так как ваше сетевое соединение будет лучше оптимизировано и будет использоваться более эффективно. Однако не каждое соединение или ситуация выиграют от этого, однако очень редко эти настройки могут вам навредить. так что, наверное, лучше их включить.
Ринальдо Гандольфи-Бретонский колдун Ковенанта Даггерфолла
Жюст Гандольфи Темный эльф-тамплиер Ковенанта Даггерфолла
Рихтер Гандольфи — Темный эльф Рыцарь-дракон Ковенанта Даггерфолла
Матиас Гандольфи — Бретонский клинок ночи Ковенант Даггерфолла
РинальдоГандольфи — Высший эльф-колдун Альдмерского Доминиона
Офицер Огня и Льда
Со-GM — MVP
Sorcerer’s — ЕДИНСТВЕННЫЙ класс в игре, который наказывается за использование определяющего класс навыка (побег из стрелы)
«Здесь, в его святыне, которую они забыли. Здесь мы трудимся, чтобы мы могли помнить. Ночью мы возвращаем то, что днем было украдено. Далеко от нас, он становится все ближе к нам. когда-то глаза были ослеплены, теперь через Него мы видим. Наши руки были праздны, теперь через них Он говорит. И когда мир услышит, и когда мир увидит, и когда мир вспомнит, тот мир перестанет быть.- Мирак
У меня есть соблазн попробовать это, но я боюсь, что такая тонкая работа только для того, чтобы заставить одну игру работать, вернет меня на 20 лет назад во времени, и я буду смотреть на экран DOS и настраивать config.sys и autoexec .bat, чтобы свободной памяти хватило для запуска следующей игры, которая выйдет.
Один размер не подходит всем. То, что может подойти для MMO, может не подойти для больших загрузок или Netflix, в зависимости от качества вашего соединения.
В нем объясняются изменения, которые вы можете внести с помощью netsh, а также некоторые приемы реестра, которые вы можете попробовать, чтобы улучшить скорость вашей сети и уменьшить задержку. Обратите внимание, что там говорится о параметре ECN:
ECN (явное уведомление о перегрузке, RFC 3168) – это механизм, предоставляющий маршрутизаторам альтернативный метод оповещения о перегрузке сети. Это направлено на уменьшение повторных передач. По сути, ECN предполагает, что причиной любой потери пакетов является перегрузка маршрутизатора. Это позволяет маршрутизаторам, испытывающим перегрузку, маркировать пакеты и позволяет клиентам автоматически снижать скорость передачи, чтобы предотвратить дальнейшую потерю пакетов. Традиционно сети TCP/IP сигнализируют о перегрузке, отбрасывая пакеты. После успешного согласования ECN маршрутизатор с поддержкой ECN может установить бит в заголовке IP (в поле DiffServ) вместо того, чтобы отбрасывать пакет, чтобы сигнализировать о перегрузке. Получатель повторяет индикацию перегрузки отправителю, который должен отреагировать так, как если бы было обнаружено отбрасывание пакета.
ECN по умолчанию отключен в Vista и других современных реализациях TCP/IP, так как это может вызвать проблемы с некоторыми устаревшими маршрутизаторами, которые отбрасывают пакеты с установленным битом ECN, а не игнорируют этот бит. Чтобы проверить, поддерживает ли ваш маршрутизатор ECN, вы можете использовать инструмент Microsoft Internet Connectivity Evaluation Tool. Результаты будут отображаться в разделе «Тест пробок на дорогах».
Чтобы изменить ECN, в командной строке с повышенными привилегиями введите:
netsh int tcp set global ecncapability=default
В настоящее время мы не рекомендуем включать этот параметр, так как, как сообщается, он отрицательно влияет на пропускную способность у некоторых резидентных интернет-провайдеров в США. Многопользовательские игры EA, для которых требуется вход в профиль, также не поддерживают ECN (вы не сможете войти в систему).
Дополнительная информация о ECN: явное уведомление о перегрузке (ECN) для TCP/IP
Очень проницательный wrlifeboil. Я думаю, что оба были правы, и всегда полезно указать на все плюсы и минусы вещей.
Кстати, у меня было немного свободного времени после работы, и я решил прошить dd-wrt на своем роутере. Я купил этот роутер два месяца назад именно потому, что он совместим. Поскольку я годами использую прошивку маршрутизатора с открытым исходным кодом и дистрибутивы брандмауэра. Я дал стоковой прошивке шанс просто потому, что в последнее время был завален и не было времени.
Короче говоря, все мои проблемы с задержкой исчезли. теперь я могу быть вокруг многих мобов, и это не делает всплеск. Больше никаких потерь пакетов. Однако Dd-wrt в значительной степени совместим с RFC.
Мне не нужно было включать ECN на моей стороне, потому что DD-WRT имеет свои собственные встроенные алгоритмы перегрузки, и вы можете выбрать один из нескольких разных, я использую tcp Vegas.
Я начинаю задаваться вопросом, не связано ли отставание многих людей с ошибками стоковой прошивки на большинстве маршрутизаторов.
Однако DD-WRT не для слабонервных, вам действительно нужно разбираться в сети, чтобы использовать его, и новичок будет потерян, потому что он не держит вас за руку. вы также рискуете испортить свой маршрутизатор, если не знаете, что делаете.
просто подумал, что выложу это, но все, что я делаю в Интернете, теперь работает лучше, стоковая прошивка на моей была глючной. Сопоставление портов UpNP, которое не удаляется, пока я не перезагружу маршрутизатор, стало для меня последней каплей, которая заставила меня найти время, чтобы прошить на нем более качественную прошивку. однако не все маршрутизаторы поддерживают эту прошивку.
в любом случае удаление с моего маршрутизатора стоковой прошивки netgear с ошибками и замена на dd-wrt в значительной степени решили мои проблемы
Ринальдо Гандольфи-Бретонский колдун Ковенанта Даггерфолла
Жюст Гандольфи Темный эльф-тамплиер Ковенанта Даггерфолла
Рихтер Гандольфи — Темный эльф Рыцарь-дракон Ковенанта Даггерфолла
Матиас Гандольфи — Бретонский клинок ночи Ковенант Даггерфолла
РинальдоГандольфи — Высший эльф-колдун Альдмерского Доминиона
Офицер Огня и Льда
Со-GM — MVP
Sorcerer’s — ЕДИНСТВЕННЫЙ класс в игре, который наказывается за использование определяющего класс навыка (побег из стрелы)
«Здесь, в его святыне, которую они забыли. Здесь мы трудимся, чтобы мы могли помнить. Ночью мы возвращаем то, что днем было украдено. Далеко от нас, он становится все ближе к нам. когда-то глаза были ослеплены, теперь через Него мы видим. Наши руки были праздны, теперь через них Он говорит. И когда мир услышит, и когда мир увидит, и когда мир вспомнит, тот мир перестанет быть.- Мирак
Некоторое время назад я размещал здесь ветку о том, как найти старые инструкции по включению CTCP (составной TCP) и ECN (явное уведомление о перегрузке) в Windows для уменьшения пинга в ESO. Пятилетняя ветка на официальных форумах ESO, на которую я ссылался, включала только команды Windows 7 и 8 (поскольку ветка, похоже, предшествует Win10). Поэтому я решил воспроизвести инструкции в базовом пошаговом руководстве для Windows 10. Даже если вы не умеете работать с компьютером, выполнить эти шаги невероятно легко.
Прежде всего, вам необходимо убедиться, что вы можете запускать программы в Windows «от имени администратора» (доступно по щелчку правой кнопкой мыши). Если вы не находитесь в учетной записи администратора при выборе этой опции, вам нужно будет ввести пароль для нее. Если да, просто выберите «да», когда появится всплывающее окно.
Шаг 1. Откройте командную строку от имени администратора. Если вы не знаете, как это найти, просто нажмите клавишу Windows на клавиатуре, введите «CMD» в строке поиска, и это будет прямо здесь. Щелкните правой кнопкой мыши -> запустить от имени администратора. Если вы все сделали правильно, начало строки, которую вам будет предложено ввести, должно быть C:\WINDOWS\system32> .
Шаг 2. В командной строке введите ровно две следующие команды:
netsh int tcp устанавливает дополнительный интернет-конгестинпровидер=ctcp
netsh int tcp set global ecncapability=enabled
После того и другого вы должны увидеть выходное сообщение «ОК». Это хорошо.
Далее мы подтвердим, что оба варианта работают. Откройте Windows Powershell от имени администратора (опять же, клавиша Windows -> поиск «powershell» -> щелкните правой кнопкой мыши -> запустить от имени администратора). Строка, которую вы собираетесь ввести, должна выглядеть как PS C:\WINDOWS\system32> .
Вы собираетесь ввести следующие три команды:
get-NetTCPSetting . Это отбросит целый список вещей, которые вам не нужно понимать. Если вы это сделаете, отлично. Это несколько отдельных списков настроек. Найдите тот, который начинается с SettingName: Internet (он должен быть последним).Тремя строками ниже вы должны увидеть CongestionProvider: CTCP .
netsh interface tcp показать дополнительные файлы . Третья строка выходных параметров должна выглядеть так: Поставщик управления перегрузкой: ctcp .
netsh interface tcp show global . В четвертой строке списка выводимых настроек вы должны увидеть ECN Capability: enable .
Если все, что я показал вам, соответствует тому, что вы видите на экране. поздравляю! Ты сделал это! Наконец, ПЕРЕЗАГРУЗИТЕ КОМПЬЮТЕР. Это нужно только для того, чтобы все настройки вступили в силу.
После всего этого моя средняя частота кадров в людных местах и групповых подземельях резко улучшилась, а средняя задержка снизилась. Я смог увеличить некоторые графические настройки на том, что я могу назвать достаточно производительным игровым ноутбуком (мог без проблем запускать новые однопользовательские игры, такие как AC: Odyssey и Far Cry 5, на высоких настройках, но у ESO всегда было некоторое отставание). проблемы). Единственная проблема, которая у меня осталась после этого, — случайный невидимый персонаж сразу после путешествия к дорожному святилищу переполненного города (Риммен, Сенчал, Морнхолд во время события Неустрашимых). Прежде чем я нашел это, я сильно подумывал о покупке VPN, надеясь, что, возможно, это немного поможет. Я рад, что я этого не сделал. Этот метод бесплатный.
В последней части я буду предельно честен. Я понятия не имею, черт возьми, почему это работает. По всем правилам, лажа с некоторыми настройками перегрузки сети — слишком простое решение для чего-то подобного. но это работает. И тот факт, что это так, для меня важнее, чем почему.
Что определяет/ограничивает скорость загрузки? Фактическая скорость загрузки определяется многими факторами, но если предположить, что и клиент, и сервер используют быстрые соединения, критическим фактором, который будет абсолютно определять (и, возможно, ограничивать) скорость загрузки, является то, что называется «окном приема TCP» (или RWIN), который устанавливается для соединения на сокет. Кроме того, есть способы «масштабировать» размер этого окна приема (как это не имеет значения, но это объясняет некоторую терминологию, показанную ниже). Windows (Vista/7/8/и т. д.) автоматически установит и, что более важно, увеличит размер окна приема TCP по мере необходимости, чтобы максимизировать пропускную способность.
Автоматическая настройка окна приема. Microsoft называет это автоматическое управление размером окна приема «автоматической настройкой». Чтобы просмотреть связанные с этим настройки, войдите в командную строку DOS и выполните следующую команду:
Итак, в Windows для параметра «Автонастройка» установлено значение «нормальный» (обозначено синим цветом выше; это хорошо), но предупреждение (выделено красным цветом выше) говорит о том, что «эвристика масштабирования Windows» играет роль хорошо.
Эвристика TCP Window Scaling: чтобы запросить и просмотреть настройки эвристики Windows, выполните следующую команду:
Где типы профиля «неизвестный/общедоступный/частный/домен» относятся к вашей классификации вашего интернет-соединения. Все мои соединения по умолчанию являются общедоступными (см. диалоговое окно ниже), что приводит к тому, что интернет-соединение «заблокировано» для повышения безопасности — но из-за этого эвристика приведет к тому, что масштабирование окна TCP будет » ограничено»!
Что вообще означает слово «ограничено»? Что такое «нормально», а что «ограничено»? Чтобы узнать, спросите Windows:
И после того, как я увидел «но ограничьте такой рост в некоторых сценариях», все стало предельно ясно — сама Windows, с помощью своей «эвристики TCP Window Scaling», ограничивала мою скорость загрузки из Интернета!
Быстрый тест, чтобы определить, не сталкиваетесь ли вы с проблемой: откройте одно окно браузера и загрузите большой файл (тестовый файл) из известного быстрого расположения. Обратите внимание на этот результат как «скорость1». Теперь откройте два окна браузера и запустите одну и ту же загрузку одновременно в каждом окне браузера. Обратите внимание на этот комбинированный результат скорости как «скорость2». Если «скорость2» быстрее, чем «скорость1», то проблема может быть в вашем компьютере. СОВЕТ. Щелкните правой кнопкой мыши на панели задач Widnows, выберите «Запустить диспетчер задач», а затем выберите вкладку «Сеть». Вы должны увидеть график скорости вашей сети.
Решение: отключите «Эвристику масштабирования окна», чтобы устранить переопределение «ограниченного» режима, и всегда позволяйте «масштабированию окна TCP» работать в «нормальном» режиме, как это должно быть для всех домашних широкополосных подключений.
Как отключить эвристику: введите следующую команду из командной строки DOS (запустите в режиме администратора):
Проверка: перезагрузка не требуется. Внезапно моя скорость загрузки увеличилась мгновенно и значительно! Изменение, по-видимому, не влияет на уже открытые сокеты, но (на моем ПК) влияет на любые новые соединения сокетов (поэтому закройте все окна браузера и откройте новый браузер, чтобы проверить изменение).
И ошибка, обнаруженная в Windows: совершенно ясно, что, когда Windows попросили отобразить текущий «Получить уровень автонастройки окна», Windows ответила «нормально» и заявила, что «является результатом масштабирования Windows». эвристика переопределяет любую локальную/политическую конфигурацию по крайней мере в одном профиле» — что Windows отобразила неправильный режим , а вместо этого должна была отобразить что-то вроде:
Быстрые (с низким RTT) серверы также СКРЫВАЮТ проблему: практически все «крупные» компании (Apple, Microsoft и т. д.) используют облачные серверы, а это означает, что серверы обычно находятся всего в 15 мс от вас. При таком RTT, чтобы даже заметить эту проблему, вам потребуется подключение к Интернету быстрее, чем 140 Мбит/с.
Полезная диаграмма. Вот диаграмма RWIN/(RTT/1000), когда RWIN равно 256 КБ, а RTT в миллисекундах:
Как пользоваться этой диаграммой. Возьмите (номинальную) скорость широкополосного интернет-соединения и RTT для сервера, с которого вы скачиваете. Это пересечение над красной линией (вы увидите эту проблему) или это пересечение ниже зеленой линии (вы не увидите этой проблемы).
Диаграмма в виде таблицы: Вот та же диаграмма, но в виде таблицы (необработанные данные):
Как найти RTT для сервера: зайдите в окна DOS и введите «ping server-name» или «ping ip-address».
Только люди, которые тестируют скорость своего соединения, заметят: если вы не тестируете скорость своего соединения, большинство людей никогда не заметят замедление загрузки.
Во всем виноват сервер. Даже для тех, кто это заметит, гораздо проще просто обвинить сервер, предполагая, что он работает «немного медленно».
Если бы сервер находился прямо рядом с вами в локальной сети, это могло бы работать достаточно хорошо (поскольку сервер очень быстро получает ваше подтверждение). Однако, когда сервер потенциально находится на другом конце мира, загрузка может замедлиться из-за ВРЕМЕНИ, которое требуется для отправки одного пакета и получения подтверждения. В TCP RTT (время приема-передачи) — это время в секундах, которое требуется для того, чтобы сигнал достиг другой стороны и вернулся обратно. Часто отображается как целое число миллисекунд (1/1000 секунды).
В описанном выше сценарии может быть только один неподтвержденный пакет. Очевидно, что RTT от ПК к серверу определяет, сколько данных может быть отправлено. Например, если пакет может содержать 1000 байт, а RTT составляет 1 секунду, то в лучшем случае вы сможете передавать с сервера на ПК только 1000 байт в секунду. Но если сервер находится в соседней комнате и RTT равен 0,001, то мы можем передавать 1000 байт каждые 0,001 секунды или 1 000 000 байт в секунду. И так далее.
Как мы можем увеличить скорость загрузки для сервера на другом конце света? Разрешив передачу нескольких пакетов без подтверждения. TCP называет общее количество байтов в пакетах, которые могут быть «в канале» и неподтвержденном RWIN (окне приема).
Поэтому формула для определения максимальной пропускной способности очень проста и представляет собой всего лишь RWIN/RTT. И теперь становится очевидным, почему размер RWIN так критичен к пропускной способности. Размер RWIN накладывает верхний предел пропускной способности.
СОВЕТ. На эту тему также есть статья в Википедии.
«Я просто хотел, чтобы вы знали, что есть веб-сайт, который украл содержание вашего сообщения, «Как Windows убивает скорость загрузки в Интернете» слово в слово, заявляя, что это их собственное, и даже использование ваших изображений путем прямой ссылки на них в своем блоге.»
Итак, я провел расследование, и, конечно же, какой-то Yahoo скопировал практически всю эту статью, и когда с ним связались, нарушитель заявил «Я думаю, что это недопонимание намерений, поскольку оно предназначалось для распространения, а не для кражи». Абсолютно весело, потому что «поделиться» этой статьей означает скопировать эту статью, что является нарушением авторских прав.
Что такое авторское право? См. эту статью Wiki по этому вопросу. Короче говоря, «авторское право» дает создателю оригинального произведения (статьи/слов, фотографий, иллюстраций, компьютерных программ и т. д.) исключительные юридические права контролировать воспроизведение («право на копирование», следовательно, «авторское право») указанного оригинальная работа.
Авторское право распространяется на «выражение идеи», а не на саму «идею».
Я видел, как люди ошибочно заключали, что написание статьи о какой-то известной идее не может быть защищено авторским правом, потому что эта идея известна. Это откровенно ущербная логика. «Выражение идеи» (слова) по определению охраняется авторским правом.
Например, напишите статью о том, как лучше всего играть в игру XYZ. Многие другие люди также ранее писали статьи о том, как лучше всего играть в игру XYZ. Но пока ваша статья состоит из ваших слов (оригинальных, а не слов, скопированных у кого-то другого), ваша статья защищена авторским правом.
Что такое нарушение авторских прав? См. эту статью Wiki по этому вопросу. Проще говоря, использование/публикация/и т. д. чужой оригинальной работы без их разрешения.
Очень простой тест на авторское право: возьмите любую статью, которую собираетесь опубликовать, и возьмите из нее несколько произвольных предложений. Теперь используйте Google и найдите эти предложения в кавычках (помещение предложения в кавычки является ключевым шагом). Если вы обнаружите какие-либо хиты, ваша статья НЕ является оригинальной (и вызовет проблемы с авторскими правами). Как минимум вас вызовут за плагиат.
Лучший тест из всех: пропустите все статьи, которые собираетесь опубликовать, через любую из множества онлайн-проверок на плагиат.
Вывод: будьте оригинальны. Никогда не копируйте/вставляйте чужие. Простой. И у вас НИКОГДА не будет проблем.
Читайте также:
- Как установить Windows 10 с флешки на ноутбук lenovo
- Как установить драйверы adb на windows 7 для xiaomi redmi 5 plus
- Как установить 32-разрядный драйвер на 64-разрядную версию Windows 10
- Инструмент удаления Avast для Windows 10
- Обновление Windows 7 kb976902 как удалить