Как понизить пинг в играх. Часть 1

Как понизить пинг в играх. Часть 1

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

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

  • неправильное конфигурирование операционной системы в сетевой части
  • вирусы
  • кривые параметры в игре или программе
  • проблема с конфигурированием или производительностью "железа" (3G-модема, сетевой платы, роутера и прочее).

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

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

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

Разработчики намеренно используют User Datagram Protocol для многопользовательских игр, так как он позволяет наиболее точно и максимально быстро передавать данные о нажатии клавиш, положений персонажа в игровом мире и передаче прочих данных, требующих самого актуального состояния. К слову, этот протокол не идеален. Если потеряется пакет и он не будет продублирован, то в игре это будет лаг. У него имеется множество минусов на первый взгляд , но это только на первый. Разработчики знают его сильные стороны и именно его выбирают в сетевой части для многопользовательских игр.На него можно хоть как то повлиять либо в самой игре, либо настройкой MTU в ОС. В играх обычно используются консольные команды типа rate\cl_cmdrate\cl_updaterate или еще какие-то аналоги.Теперь самый важный момент в статье!! Вам нужно подобрать правильный параметр IP MTU и держать его в уме, при изменении сетевых значений в игре. Подбирается он так:Пуск - выполнить - cmdping 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, внесли данные в реестр, перезагрузили компьютер. Только тогда можно приступать к настройке сетевой части в самой игре, чтобы понизить ping.

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

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