Как понизить пинг в онлайн-играх

Как понизить пинг в онлайн-играх

Оптимизация параметров сети в реестре Windows

Оговорюсь сразу, что для Windows 7 необходимо установить Сервер очереди сообщений прежде, чем приступать к дальнейшим твикам. Сделать это можно так: открываем Пуск-> Панель управления -> Программы и Компоненты->Включение или отключение компонентов Windows. Там находим пункт - Сервер очереди сообщений Майкрософт (MSMQ), и ставим галочку напротив него. Перегружаемся.


Ниже перечислю разделы и параметры реестра, изменение которых позволит уменьшить пинг. Все они имеют тип DWORD, и, если они отсутствуют, то их нужно создать. После всех изменений необходимо перезагрузить компьютер.

Основные параметры (самые главные):

Раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

В этом разделе ищете ваш сетевой интерфейс (если не знаете какой - можете сделать следующее во всех интерфейсах) и меняете параметр:

  • TcpAckFrequency
    Заставляет отправлять подтверждающее сообщение TCP/IP после каждого полученного сегмента и не ждать следующего.
    Рекомендуемое значение: 1 (единица).
    Недостаток: Скорость закачки всяких торрентов/файлов из сети будет несколько меньше.

Раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters

  • TCPNoDelay
    Снижает задержку за счет отключения одного из внутренних алгоритмов Windows (Nagle algorithm).
    Рекомендуемое значение: 1 (единица).

Раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

  • NetworkThrottlingIndex
    Убирает ограничения для не мультимедийного трафика.
    Рекомендуемое значение: ffffffff (шестнадцатеричное значение).

Дополнительные параметры:
Эти параметры так же способны оптимизировать сетевой обмен для нашего случая. При выборе их значений я руководствовался личным опытом, а не просто верил на слово различным советам. Я временно сижу на 3G интернете, где пинг сам по себе не очень, особенно в вечернее время, и мне ниже перечисленные настройки помогли. Однако, есть риск, что какой-нибудь параметр из них может и ухудшить ситуацию с пингом (хоть и не на много), поэтом я назвал их дополнительными и необязательными к выставлению.

Раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  • SackOpts
    Выборочная передача поврежденных данных. Отлично помогает в борьбе с лагами, если клиент не кривой. В качестве возможных проблем приведу пример. В Diablo 3 сильно залагал, пробежал половину подземелья, лаг прошел, однако в результате клиент "заглючило" персонаж исчез, кнопки скилов не работают и единственный выход - перезайти в игру. Либо клиент не справился с такой задачей, либо сервер подумал что я читер и специально это устроил =) Если не бегать на большие расстояния во время долгих лагов, то всё будет ок.
    Рекомендуемое значение: 1 (единица).
    Чтобы отключить: 0
  • EnablePMTUDiscovery
    Автоматически определять максимальный размер передаваемого блока данных.
    Рекомендуемое значение: 1 (единица).
    Чтобы отключить: 0
  • EnablePMTUBHDetect
    Включает алгоритм обнаружения маршрутизаторов типа "черная дыра". Видел советы по выставлению этого параметра в 0, однако, для себя я не заметил влияние этого параметра на пинг, а надежная связь нужна всем =)
    Рекомендуемое значение: 1 (единица).
    Чтобы отключить: 0
  • DisableTaskOffload
    Позволяет разгрузить центральный процессор, освободив его от вычислений контрольных сумм для протокола TCP, переложив эту задачу на сетевой адаптер.
    Рекомендуемое значение: 0 (нуль).
    Чтобы отключить: 1
    Недостаток: Если возникли сбои в соединениях - отключите параметр.
  • DefaultTTL
    Определяет максимальное время нахождения пакета IP в сети, если он не может попасть на узел назначения. Это позволяет значительно ограничить количество маршрутизаторов, через которые может пройти пакет IP, прежде чем будет отброшен (вдруг пакет заблудился, зачем мы будем его ждать?).
    Рекомендуемое десятичное значение: 64
    Чтобы отключить: удалить параметр
Раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Psched
  • NonBestEffortLimit
    Отключает резервирование пропускной способности канала для QoS.
    Рекомендуемое значение: 0 (нуль).
Чтобы вручную не править эти дополнительные параметры в реестре, можно воспользоваться готовыми reg-файлами для включения и отключения этих твиков.

Дополнительные параметры для Windows 7:

Начиная с этой версии ОС появились дополнительные сетевые параметры, которые могут нам пригодится. Данные твики представляют собой команды, в данном случае, сразу содержащие рекомендуемые настройки. Чтобы их применить, нужно запустить командную строку (cmd) от имени администратора. Чтобы посмотреть текущие настройки, можно воспользоваться командой netsh int tcp show global
Итак, команды:

  • netsh int tcp set global rss=enabled
    Использование нескольких процессов для обработки входящего потока, без RSS TCP/IP работает всегда только на одном процессоре даже если ПК многопроцессорный.
    Возможные значения: enable / disable
  • netsh int tcp set global netdma=enable
    Обмен информацией между сетевой платой и памятью ОЗУ без участия CPU (NetDMA).
    Возможные значения: enable / disable
  • netsh int tcp set global dca=enable
    Прямой доступ к кэшу NetDMA 2.0 (Direct Cache Acess).
    Возможные значения: enable / disable
  • netsh interface tcp set heuristics wsh=enable
    Автоматический подбор размера окна TCP (WSH). По идее, сводит на нет настройку следующего параметра, но пусть будет чтобы потом можно было что-то безболезненно включать / отключать, не сильно отступаясь от цели.
    Возможные значения: enable / disable
  • netsh int tcp set global autotuninglevel=highlyrestricted
    Автонастройка размера приемного окна TCP, не сильно отступаясь от значения по умолчанию.
    Возможные значения: disable / higlyrestricted / restricted / normal / experimental
  • netsh int tcp set global timestamps=enable
    Штампы времени при установки с ключами как Auto-Tuning Level оптимальный выбор размера окна приема.
    Возможные значения: enable / disable
  • netsh int tcp set global ecncapability=enable
    ECN - это механизм взаимодействия маршрутизаторов о заторах в сети. Он предназначен для уменьшения ретрансляции пакетов. Это позволяет автоматически снижать скорость передачи данных для предотвращения потерь данных. Описание говорит само за себя, для надежности.
    Возможные значения: enable / disable
  • netsh int tcp set global congestionprovider=none
    CTCP увеличивает темп передачи с одновременным контролем размера окна и пропускной способности (Add-On Congestion Control Provider). Во всех гайдах в интернете, которые мне попадались, советовали установить этот параметр равным ctcp. Однако, на практике, всё оказалось куда более сложнее. В моем случае он вызвал только более продолжительные лаги, несмотря на то, что потери пакетов (и всё в этом роде) он, вроде как, и призван устранять. Поэтому я рекомендую всё же значение none, исходя из опыта. Возможно, в сетях с более надежной связью CTCP и даст профит.
    Возможные значения: none / ctcp / default

Выставление приоритета трафика

Обычно у провайдеров стоят аппаратные шейперы, которые сами управляют передачей пакетов, выставляют приоритет трафика и т.д. Однако, в большинстве случаев, приоритет отправки сетевых пакетов можно выставить и у клиента, при этом, провайдер менять его не будет. Как это поможет нам? Мы просто выставим приоритет в сетевых пакетах нашей игры на высокий, и, по крайней мере с нашего компьютера, их отправка будет идти без задержек.
Для реализации этой идеи есть программа CFosSpeed. Для жителей России она стоит 299 рублей. Есть бесплатный пробный период в 30 дней. О различных её дополнительных возможностях можно прочитать на сайте производителя.
Из личного опыта, программа работает, снижает пинг. Больше всего я это заметил на ADSL, а вот на мобильном 3G интернете разницу как-то не ощутил (не повезло мб).



Брандмауэр / Фаерволл / Сетевой экран

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



Прошивка роутера

Если доступ в интернет осуществляется посредством роутера, то, возможно, не мешает обновить и его, установив прошивку последней для него версии. Особенно это актуально, если иногда возникают разрывы соединения непонятно из-за чего. В перспективе, это может дать более устойчивую связь, производительность, безопасность и т.п. в зависимости от того, какие баги производитель исправил. Так же не забудьте установить пароль отличный от стандартного! Дабы никто не смог зайти в панель управления вашего роутера из вне и делать всё, что ему заблагорассудится. Если вы понятия не имеете как настраиваются роутеры - смело пропускайте этот пункт (хотя, о пароле всё-таки задумайтесь).
Прошивки для роутеров D-Link и ZyXEL.



Использование VPN-сервера / Прокси

VPN, Виртуальная Частная Сеть - это, по своей сути, логическая сеть, которая создается поверх какой-либо уже существующей другой сети. Если трассировка показала, что на пути до игрового сервера есть сервер, который портит вам игру - vpn отличный способ его обойти стороной. На бесплатные сервисы бесполезно надеяться, низкий пинг вы там не получите, а платные - чем дороже тем лучше. Их много, если зайти в гугл. Характерный представитель RussianProxy, там есть тариф "Онлайн игрок" стоимостью 99 руб/мес. Или WoWPing 98 руб/мес. Там же есть и бесплатный тестовый период (но с ограничением в 30 минут) как раз чтобы попробовать что к чему.



Дополнительные советы

  • Перед игрой закрывайте все приложения, использующие интернет.
  • Ну и, в конце концов, хватит это терпеть! Меняйте провайдера :))
2559

Комментарии

Нет комментариев. Ваш будет первым!