Как понизить пингНаверно читатель с критическим мышлением взглянет на заголовок статьи и скажет, опять очередная подборка сто тысяч раз виденных советов по настройке реестра в Windows и в какой-то мере будет прав. Просматривая наиболее топовые статьи по теме понижения пинга, в глаза так и бросается массовое заблуждение и перепечатывание одних и тех же рекомендаций, которые вообще повлиять на пинг в играх ну ни как не смогут. А почему это так? Объясню по ходу статьи.
Пинг - это больная тема всех любителей онлайн-игр. И реальность такова, что понизить его своими силами, получится не у всех и даже не у каждого второго. Как один из бесплатных способов, это попытаться снять нагрузку со своего оборудования или переложить часть ее на оборудование провайдера, тем самым убрав задержки при склеивании фрагментированных пакетов. Возможно это и понизит пинг, но узнать это можно только экспериментальным путем.
Как это сделать? Читаем ниже.

Как понизить пинг в играх, только настройками в ОС

Природа появления пинга бывает трех видов:
1) Локальная проблема у пользователя
Сюда входят:
  • неправильные настройки операционной системы в сетевой части
  • вирусы
  • кривые настройки в игре или программе
  • проблема с конфигурированием или производительностью "железа" (3G-модема, сетевой платы, роутера и прочее).
2) Проблема с пингом из-за оборудования провайдера
Грубо говоря сюда входит маршрутизатор, который стоит в подъезде, линии тянущиеся от него или каналы связи до самого провайдера и коммутаторы\маршрутизаторы и прочие железки, пропускающие весь трафик абонентов на вышестоящих провайдеров.
3) Проблемы с транспортом, с вышестоящим провайдером и конечным сервером.

Если со вторым и третьим пунктом чаще всего бороться можно только одним способом. Сменой поставщика услуг.То вот в первом варианте можно попытаться сделать все зависящее от нас, чтобы пакеты бежали как можно быстрее и на полных парусах до сервера, не испытывая ненужных задержек.

Вы наверно уже когда то слышали такие слова, как UDP и TCP? И наверно знаете, что это вышестоящие протоколы расположенного над IP? 
Так вот, в интернете очень много статей про то, как снизить пинг средствами ОС. И подавляющее большинство их описывает настройки в реестре и предлагает добавить TcpAckFrequency или TCPNoDelay или еще какие-то параметры. Т.е. описываются настройки TCP (которые в играх практически не используются и на пинг ни как не влияют), а по факту нужны настройки для UDP-протокола. Эта путаница, мягкого с теплым, и не понимание, приводит к тому, что у читателей появляется разочарование, что после применения данных советов, пинг в играх не меняется.
Для наглядности приведу сюда перечень наиболее популярных игр, с запросом про пинг и мы посмотрим какой протокол они используют у себя:

Игра Протокол
Counter-Strike: Global Offsence (CS: GO) udp
Counter-Strike 1.6 udp
World Of Tanks (WoT) udp\tcp
Warface udp\tcp
Dota 2 udp
Grand Theft Auto (GTA) udp\tcp
Counter-Strike Source v34 udp
World of Warcraft (WoW) udp\tcp












Как видно из примера, все популярные игры завязаны на протокол UDP. И это не просто совпадение. (Кстати то, что там присутствует TCP, во все не говорит о том, что для игровых ситуаций он используется. Чаще всего TCP используют только для обновлений, лаунчеров, передачи какой-то информации.)

Разработчики намеренно используют User Datagram Protocol для многопользовательских игр, так как он позволяет наиболее точно и максимально быстро передавать данные о нажатии клавиш, положений персонажа в игровом мире и передаче прочих данных, требующих самого актуального состояния. 
К слову, этот протокол не идеален. Если потеряется пакет и он не будет продублирован, то в игре это будет лаг. У него имеется множество минусов на первый взгляд, но это только на первый взгляд. Разработчики знают его сильные стороны и именно его выбирают в сетевой части для многопользовательских игр. Не много отвлекся и эта статья не про плюсы и минусы UDP. Нам нужно просто провести настройки в операционной системе, чтобы понизить пинг.
Так вот, на udp можно хоть как то повлиять только в самой игре и это при условии, что игра позволяет сделать это, либо настройкой MTU в ОС. В играх обычно используются консольные команды типа rate\cl_cmdrate\cl_updaterate или еще какие-то аналоги.
Теперь самая важная часть статьи. Вам нужно подобрать правильный параметр IP MTU и держать его в уме, при изменении сетевых значений в игре. Подбирается он так:
Пуск - выполнить - cmd
ping yandex.ru -f -l 1500
Определение фрагментации пакета

уменьшайте значение до тех пор, пока пакет пройдет не фрагментированным. И пингуйте сервер, на котором собираетесь играть.
Как только определили максимальный размер пересылаемых данных, прописываем или добавляем в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\код_адаптера
параметр MTU (reg_dword) равный нашему значению и +28. Т.е. если значение было 1422, то прописать нужно 1450.
Почему +28? Это из-за разных протоколов, ping использует ICMP, а мы настраиваем IP.
И только после того, как вы подобрали нужный размер MTU, внесли данные в реестр, перезагрузили компьютер. Только тогда можно приступать к настройке сетевой части в самой игре.

Фрагментирование может влиять на пинг в игре

Почему важно избавиться от фрагментации на уровне ОС? Имеет она свои минусы и очень существенные порой:

  • Сервер должен получить все фрагменты, чтобы собрать пакет целиком. Если хоть один будет утерян, считайте что вы получите лаг в игре.
  • Фрагментация приводит к нагрузке на процессоры транзитных маршрутизаторов и конечного сервера. Если несколько сот пользователей, на осаде замка например, будут так нагружать сервер, лаги почувствуют все из-за нагрузки на сам сервер.
  • Увеличивается требование к памяти маршрутизаторов, так как он должен хранить все фрагменты, пока пакет не будет дальше собран и отправлен. Если с этим проблемы у него, это увеличивает пинг или появляются лаги
  • Часто фрагментирование выполняют медленные процессоры, отсюда появляется задержка и тот самый пинг
  • Есть еще минусы, которые так же могут добавлять пинга в игре

И в заключении, что нужно прописывать и для какой игры и другие способы как повлиять на сетевую задержку, будет рассмотрено в следующих статьях. (третья и четвертая части)
Надеюсь чуть-чуть внес ясности в то, как понизить пинг своими силами и вы узнали, что повлиять на UDP-пакеты настраивая только параметры TCP - нельзя. Но можно настроить сетевую карту особым образом, чтобы еще понизить пинг! Но эта интересная тема будет раскрыта в следующей статье (вторая часть).

Перепечатка и размещение материалов, на других
ресурсах, разрешена с указанием источника
soft-tuning.ru © 2013-2017