Отсутствие возможности зайти в игровую комнату или создать собственную в Интернет-игре на сервере в настоящий момент является распространённой проблемой сообщества любителей игры "Завоевание Америки". Известно, что данная проблема решается обращением к провайдеру, получением внешнего IP-адреса и снятием ограничений на передаваемый трафик. Далеко не все провайдеры идут на такие условия предоставления услуги доступа к сети Интернет. В данной статье я попытаюсь рассказать про то, зачем нужны такие условия работы в сети, а так же про то, как решить проблему с соединением в Интернет-игре с использованием VPN-сервиса.
Как происходит создание игровой комнаты игры American Conquest в сети Интернет
Процесс взаимодействия компьютеров в сети при создании игровой комнаты выглядит следующим образом (см. рис. 1).

Рис. 1. Взаимодействие между компьютерами в сети Интернет в процессе создания новой игры на сервере GSC
Допустим игрок решил создать новую игровую комнату. При этом запущенная на его компьютере Игра (для определённости пусть это будет Завоевание Америки – исполняемый файл dmcr.exe) обращается на игровой сервер GSC с запросом на создание игровой комнаты.С точки зрения сетевого взаимодействия это выглядит как запрос со стороны компьютера игрока на определённый IP-адрес и определённый номер порта с последующим ответом сервера о том, что запрос принят. Если всё прошло удачно на игровом сервере появляется новая игровая комната и другие игроки могут её видеть.
Теперь предположим, что кто-то решил в комнату зайти. Логичнее было бы обратиться напрямую к компьютеру игрока, создавшего комнату, потому что игровой сервер "один" и пускать через него трафик всех игр нельзя (не хватит пропускной способности и других ресурсов). Но игроки и их компьютеры не знают про IP-адресадруг друга, вот для этого игровой сервер и существует. Чтобы получить IP-адрес создателя игровой комнаты необходимо сначала обратиться на игровой сервер GSC и получить от него ответ, содержащий необходимый IP-адрес.
После того как был получен IP-адрес, с компьютера игрока, желающего присоединиться к игре, идет запрос на компьютер создателя игровой комнаты. Если запрос прошёл, приходит ответ содержащий информацию о присоединившихся игроках и параметрах игры. Кроме этого происходит проверка качества соединения между всеми игроками в игровой комнате, которое в терминологии игры Завоевание Америки называется ping (настоящийpingнесколько отличается от того что в Игре). Теперь, когда мы рассмотрели процесс создания и присоединения к игровой комнате, попробуем разобраться с тем, почему возникают "проблемы с коннектом".
Причины возникновения проблем с соединением в Интернет-игре Завоевания Америки
С точки зрения пользователей (игроков),существует трипроблемы с соединением:
1) отсутствие возможности зайти в игровую комнату;
2) отсутствие возможности создать игровую комнату, в которую кто бы то ни было мог зайти;
3) отсутствие возможности нажать кнопку "Старт" из-за отсутствия прямого соединения с другими игроками.
Причина же этих трех проблем скорее всего одна – "злой" провайдер, предоставляющий услугу доступа к сети Интернет (если конечно не принимать во внимание запредельно низкую скорость передачи данных – чаще это выражается в большом времени ping'а и наличии тормозов (lag'ов) в игре).
Для того чтобы стало понятнее о чём идет речь, – рассмотрим упрощенную схему работы большинства провайдеров (см. рис. 2).

Рис. 2. Упрощенная схема работы "злого" провайдера
Как известно провайдер подключает пользователя к сети Интернет Не напрямую а через шлюз, proxy-сервер, vpn-соединение и т.д. То есть в подавляющем большинстве случаев пользователь подключается к сети провайдера (не к сети интернет), а специальное оборудование провайдера (примеры технологий перечислены выше) обеспечивает связь с сетью Интернет так, как удобно провайдеру. Делается это по многим причинам: контроль трафика (биллинг, СОРМ, и т.п.), ограничение предоставляемых услуг, защита от вредоносных воздействий, решение проблемы ограниченного пула IP-адресов и т.п.
В рамках данной статьи имеет смысл рассмотреть ограничение предоставляемых услуг провайдером. Наиболее распространёнными ограничениями являются.
1. Фильтрация трафика по портам – провайдер пропускает в Интернет трафик только по определённым портам. Скорее всего это делается для облегчения задач контроля трафика и защиты от вредоносных воздействий.
2. Запрет входящих (из сети Интернет) запросов – провайдер пропускает только исходящие запросы (на сервера в сети Интернет), а входящие запросы игнорируются. Это ограничение вводится для того чтобы исключить несанкционированное создание серверов (Web, FTP, хостинг, и т.д.) клиентами провайдера. Такой сервер может создать нерассчитанную нагрузку на канал связи. Кроме того сложно контролировать содержание материалов, размещаемых на таком сервере, что в свою очередь может повлечь за собой юридические проблемы.
Теперь о том, как это мешает игрокам. Как было рассмотрено выше, участники игры при подключении к игровой комнате посылают запросы создателю игровой комнаты. Если провайдер создателя игровой комнаты закрыл порт, по которому идет обращение или просто не пропускает запросы из сети Интернет, – имеем первую и вторую проблемы. Зайдя в комнату игроки начинаю обмениваться между собой взаимными ping'ами, которые представляют собой пары запрос/ответ. По выше обозначенной причине имеем проблему номер три.
Решение проблемы с соединением в Интернет-игре Завоевания Америки
Итак, если не удалось договориться с провайдером на предоставление "особенных" условий доступа в Сеть, – придётся искать другое решение. Этим решением является применение технологии VPN.VPN (англ.VirtualPrivateNetwork – виртуальная частная сеть) – обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (определение взято из ВикипедиИ :D). Обычно используется для создания защищенного соединения двух территориально разнесенных сегментов сети предприятия по Интернету, защищенного подключения отдельного узла к сети предприятия по Интернету, защищенного соединения двух узлов сети Интернет между собой. На сегодняшний день большое распространениеполучили так называемые VPN-сервисы, которые работаютследующим образом (см. рис. 3).

Рис. 3. Принцип работы VPN-сервиса в сети Интернет
Пользователь создает VPN-соединение с сервером или группой серверов работающих в сети Интернет. Весь трафик от пользователя и к нему проходит через VPN-сервер. Таким образомVPN-сервер представляет собой ещё одного посредника (после провайдера), предоставляющего доступ к сети Интернет через свой IP. При этом весь трафик на пути от компьютера пользователя до VPN-сервера (через оборудование провайдера) идет запакованный в пакеты специального формата (как правило, зашифрованные) на один выделенный VPN-сервером порт. Так как инициатором соединения является пользователь, а передача данных ведётся по одному (разрешённому) порту, такой трафик провайдер пропускает.
Обычно это используется для анонимизации пользователя в сети Интернет, правда в 99% случаях это не соответствует действительности в полной мере (о том кто такой пользователь и какие данные он передаёт, в этом случае,будет знать владелец VPN-сервера).
Но эту технологию так же можно использовать для решения проблемы с соединением в Интернет-игре,– втом случае если VPN-сервер пропускает всё, что через него проходит.При созданииVPN-соединения и подключении через него к игровому серверу проблемы с проходом запросов исчезают (оборудование провайдера теперь будет рассматривать весь трафик пользователя как "легальный", запакованный в VPN-пакеты и передаваемый по разрешённому порту), правда обостряется проблема пропускной способности. Не все сервера могут обеспечить достаточную скорость работы сетевого соединения, кроме того расходуются вычислительные ресурсы на шифрование данных. Как и всё в этом мире, решение не идеальное, но, тем не менее, оно работает на практике.
Как создать VPN-соединение
После всего рассмотренного, алгоритм решения задачи представляется довольно простым:
1) находим бесплатныйVPN-сервис;
2) регистрируемся;
3) настраиваем VPN-соединение;
4) наслаждаемся жизнью.
Разберём каждый шаг этого алгоритма подробнее, уделив особое внимание некоторым деталям.
1. Найти бесплатный VPN-сервис. В процессе поиска может возникнуть ряд сложностей. Важно чтобы у сервера были открыты порты, которые использует Игра и была нормальнаяскорость. К сожалению, большинство бесплатных серверов всё же накладывают ограничения на порты по которым они пропускаю трафик. Кроме того бесплатные сервера как правило работают нестабильно и "налету" меняют условия предоставляемых услуг. Те, кому денег не жалко, могут купить доступ к платным VPN-сервисам, – ихв сети навалом. Там вышескорость и меньше ограничений на передаваемый трафик. Из бесплатных вариантов VPN‑сервисов наиболее приемлемым, с моей точки зрения, на сегодняшний день является nx0.ru. Это отечественный облачный сервис, предоставляющий обширный спектр услуг, от бесплатного хостинга до сервиса VPN. Вместе с тем, по двухнедельномуопыту использования, могусделать вывод, что данный ресурс пока является нестабильным, по крайней мере, по части касающейся предоставления услуг VPN-соединения. В качестве альтернативы (когда переставал работать nx0.ru)я использовал Интернет-ресурс himeme.ru, – с моей точки зрения он менее удобен: скорость ниже даже с учетом наличия специального тарифа для Интернет-игроков (низкийping), требует установки дополнительного программного обеспечения (Open VPN).Кроме того данный ресурс является условно бесплатным, – каждые сутки идентификационную информацию приходится запрашивать заново.
2. Зарегистрироваться. Процедура регистрации стандартная: требуется адрес электронной почты, на который высылается ключ доступа или ссылка для активации аккаунта. При необходимости, так же следует придумать и указать идентификационную информацию для создания VPN‑соединения (имя пользователя и пароль).После регистрации пользователю сообщается информация для настройки VPN-соединения (в случае с использованием ресурса nx0.ruэто просто IP-адрес VPN-серсера, ресурс hideme.ru предлагает скачать архив с настройками для программы OpenVPNи инструкции по настройке – после получения архива настройка тривиальная).
3. Настроить VPN-соединение. В операционной системе Windows 7 присутствует встроенное средство по настройке VPN-соединения, более ранние версии требуют установки дополнительного программного обеспечения. Инструкций по настройке VPNв интернете так же навалом. Считаю, что копировать их в данную статью нет никакой необходимости, – Googleи Yandexнайдут всё. На обозначенных мной сайтах данные инструкции так же имеются. Все понятно, доступно, просто.
4. Получить удовольствие. Преимущества от использования VPN‑соединения "видны невооружённым взглядом". Во-первых, появляется значительно больше игроков, с которыми можно установить двустороннее соединение (проходит взаимный ping), а следовательно, возможностей сыграть значительно так же становится больше. Во-вторых, есть возможность, наконец, создать ту игру, которую хочется. Мне, например, надоело уже "воевать" в джунглях и на плоской как стол поверхности. Крокодилы, пумы, пальмы, песок – ужас. Даешь елки, бизонов, оленей и неровности рельефа. Кроме того, я не понимаю, почему большинство отказывается от использования артиллерии, кораблей и тумана. С моей точки зрения, так значительно веселее. Сейчас я имею возможность создать игру так, как мне нравится, – и это замечательно.
В итоге получаем пусть не идеальное, но вполне работающее решение проблем с соединением в Интернет-игре Завоевание Америки. Отзывы, замечания, предложения прошу писать здесь же в комментариях, буду рад конструктивной критике. С наилучшими пожеланиями всем Интернет-игрокам. MRV. 17.11.2012.
|