О методах снижения пинга в онлайн играх

Ноябрь 25, 2014 | комментариев: 1

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

Ping (пинг) — это время, затраченное пакетом информации на прохождение пути от вашего компьютера до удалённого сервера и обратно. Хотя такое определение не совсем корректно, так как это время называется латентностью (Latency), задержкой или лагом. Задержка прохождения пакета по сети зависит от скорости интернет соединения и загруженностью каналов сети на пути прохождения пакета. Измеряется в миллисекундах. Но так уж сложилось, что эту величину в народе зовут пингом, и не будем вносить дополнительную путаницу, пусть будет пингом.

Из определения видно, что чем больше пинг, тем дольше ждать реакции сервера на ваш запрос, будь то открытие страницы сайта или реакции персонажа в онлайн игре на ваши действия. Это, кстати, одна из самых известных проблем онлайн игроков. Чем выше пинг — тем мене комфортно играть, и на оборот, при низком пинге игра идёт плавно и своевременно реагирует на действия игроков.

Как узнать свой пинг? Для систем семейства Windows XP/Vista/7 нужно сделать следующее: открыть меню «Пуск», потом выбрать пункт «Выполнить», и в строке ввести «cmd», в результате откроется окно командной строки. Для пользователей Windows 8 нужно нажать комбинацию клавиш Win+R также ввести «cmd». В окне командной строки вводим команду Ping и ip-адрес или доменное имя интересующего нас сайта "ping ya.ru" (без кавычек).проверить пингНа скриншоте видно, что пинг от моего компьютера до сервера, на ктором размещён сайт yandex.ru составляет в среднем 65 мс. Так же видно, что было послано 4 тестовых пакета по 32 байта в каждом, что все пакеты прошли без потерь. Кстати, для онлайн игр приемлемым будет пинг в 40 — 70 мс.

Для уменьшения пинга существует несколько способов. Самый оптимальный — это поменять своего интернет провайдера и попутно взять себе широкий интернет канал или перейти играть на другой сервер игры. Если же вам не подходит этот вариант, то тут могут помочь ещё несколько. Один из них заключается в правке ключей реестра системы. Но этот метод поможет только с Windows XP, да и скорость закачек при этом существенно снизится, но пинг к игровому серверу и обмен пакетами с ним вырастет. Как видим, способ так себе, одно улучшаем, но ухудшаем при этом другое. К счастью, существуют другие способы. Давайте рассмотрим ещё один способ борьбы с пингом.

Осторожно! Должен предупредить, что нижеприведённый способ поможет не всегда. Эффективность методики зависит от разных факторов, от настроек прокси-сервера провайдера, ширины вашего интернет канала, от самой игры, типа используемого игрой подключения к игровому серверу и многому другому.

В данном способе также необходимо вносить правки в реестр. Но? что бы не угробить себе систему лучше воспользоваться специально написанным скриптом «Leatrix Latency Fix», который сам внесёт необходимые изменения. Как уже говорилось выше, способ не даёт 100 % гарантии и всем не сможет помочь, но попробовать его стоит, даже если и не сработает, то хуже не будет. Стоит отметить, что данный скрипт даёт ощутимый эффект для систем с пропускной способностью интернет канала выше средней.

Эффект от применения этого скрипта заключается в том, что он убирает задержку времени системы для обработки принятых из сети пакетов (TCP Ack Frequency). Данная задержка используется для того, что бы дать системе время обработать ВЕСЬ сегмент полученных пакетов, и только после обработки отсылать подтверждение приёма. Что существенно увеличивает пинг. После отмены этого параметра система выдаёт подтверждение сразу же после получения очередного сегмента.

Ситуацию с применением данного скрипта можно описать в виде такого диалога:
До использования скрипта:

Сервер: «Компьютер, я послал тебе пакет данных. Ответь мне, ты их получил?»
Компьютер: «ждёт…ждёт…ждёт»
Сервер: «Эй, компьютер! Ты пакет данных получил? Ответь!»
Компьютер: «ждёт…ждёт…ждёт»
Сервер: «Так, ясно. Посылаю тебе ещё один пакет данных. Получил?»
Компьютер: «Да, получил оба! Всё в порядке!».
Сервер: «А что молчал, когда тебя спрашивал?»
Компьютер: «Так я по умолчанию так настроен».

После применения скрипта:

Сервер: «Компьютер, отослал тебе пакет данных. Получил?»
Компьютер: «Да, получил, жду следующий.»
Сервер: «Отлично! Отослал следующий. Получил?»
Компьютер: «Получил! Жду следующий!»
Сервер: «Быстро, то как! Отослал ещё один. Получил? »

То есть, скрипт изменяет значение параметра «TCP Ack Frequency» на «1», то есть система начинает отсылать подтверждение о получении каждого пакета данных, а не по получении всего сегмента данных. Всё это способствует значительному уменьшению задержки при обмене данными между клиентом и сервером, то есть уменьшается пинг. Скрипт «Leatrix Latency Fix» корректно работает с семейством операционных систем Windows, начиная с Windows XP и заканчивая Windows 8, 32- и 64-разрядными версиями. Настройки довольно просты и понятны, единственный минус — это отсутствие русского языка интерфейса. Скачать можно по этой ссылке. Для установки скрипта нужно распаковать полученный архив и запустить файл «Leatrix_Latency_Fix_3.00.exe»:Leatrix_Latency_Fix_3.00В открывшемся окне инсталлятора нажать кнопку «Install»:кнопка InstallПроверить свой пинг, так как указано выше и затем перезагрузить компьютер. Перезагрузка обязательна, так как без перезагрузки не будут применены изменения, вносимые скриптом. После перезагрузки ещё раз проверить свой пинг и сравнить результаты. Ещё один важный момент: для корректной работы скрипта может потребоваться установка Microsoft .NET Framework.

Для более полного понимания сути вопроса ещё немного теории о том, что такое пинг и как он формируется. Как уже упоминалось в начале статьи пинг часто путают с лагом (задержкой), хотя описывают они фактически одно и тоже: время, необходимое пакету данных на путь от компьютера пользователя(«клиента») до сервера и обратно. Формируется лаг, он же пинг, он же задержка из трёх составляющих:

  1. клиентского лага
  2. промежуточного лага
  3. лага сервера.

Клиентский лаг формируется следующим образом:

  • клиент получает пакет данных;
  • обрабатывает полученные данные;
  • отсылает подтверждение получения и целостности пакета;
  • оправляет ответный пакет;
  • ждёт подтверждение о получении отправленного пакета.

Вот из этого состоит клиентский или локальный лаг.

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

Лаг сервера формируется аналогичным образом, как и на стороне клиента. К тому же сюда можно добавить увеличение лага из-за нагрузки сервера клиентскими запросами. Ведь каждый нужно обработать, каждому ответить, а вычислительная мощность сервера не бесконечна, да и интернет канал не резиновый и всех желающих подключится физически не в состоянии обслужить.

Возникает вопрос, как скрипт может уменьшить две последние задержки? Ответ: никак не может. Скрипт предназначен для корректировки клиентского лага, то есть настроить систему на вашем компьютере. А как показывает практика, основная проблема почти всегда на стороне клиента. Что же такого делает скрипт с вашей системой? Для начала нужно сказать, что существует два типа пакетов — это TCP и UDP пакеты. Для желающих подробнее разобраться рекомендую изучить стек протоколов TCP/IP и многоуровневую систему взаимодействия открытых систем ISO/OSI. А пока стоит запомнить, что TCP-пакеты — это пакеты с подтверждением о получении, а UDP — без подтверждения. То есть,в первом случае, пока не придёт подтверждение о получении первого пакета, второй не будет отправлен. А во втором случае пакеты шлются без подтверждений о получении. Первый вариант более надёжный, а второй — более быстрый. Если игра для обмена данными с сервером использует UDP пакеты, то скрипт тут ничем не сможет помочь. Он поможет только в случае использования TCP пакетов. До применения скрипта компьютер, получая пакет данных, проводил анализ пакета, потом обработку пакета, и только потом отсылал подтверждение о получении. А в это время уже пришло ещё несколько пакетов, которые были поставлены в очередь. Вот вам и лаг. После применения скрипта компьютер сразу даёт ответ о получении, а потом начинает обработку пакета.

CfosspeedДанный скрипт не единственное приложение, могущее помочь с высоким пингом. Стоит обратить внимание на программу «Cfosspeed 6.60». Поддерживается корректная работа в Windows XP/Vista/7 32- и 64-битных версий. Эффект от применения данной программы заметен в таких играх: WoW, World Of Tanks, Lineage 2. Но, в отличие от «Leatrix Latency Fix» данное приложение требует от пользователя довольно серьёзных знаний в области сетевых технологий и работы Windows в частности. Хотя если поискать по профильным форумам, можно легко найти описания настроек программы для конкретных интернет провайдеров и нужных игровых серверов. Например, детальное описание настроек программы можно найти на этом форуме.

Поделиться в социальных сетях:

1 комментарий к статье "О методах снижения пинга в онлайн играх"

Добавить комментарий

Ваш e-mail не будет опубликован.

  1. scryde.ru

    В совокупности всякое такое прочее приводит к значительному сокращению задержки на пересылку и обмен информацией между компьютером и сервером. Таким образом и снижается пинг. Ребят пожалуйста только правда, это не развод, или у меня не пропадет интернет или пинг вообще подниметься? Прошу только честно..