Jump to content

Developer Workshop | Строгий Nat: Улучшения И Тестирование


Recommended Posts

Сегодня мы запустили некий экспериментальный код, который работает над решением проблем, вызванных Строгим NAT'ом и над прочими проблемами маршрутизации; он всё ещё требует доработок, но наши предварительные тесты нас очень порадовали.

 

Около 6% наших игроков обладают маршрутизаторами, обладающими Строгим NAT'ом; эти люди получают предупреждающее сообщение при входе в игру такого вида:

 


x4Orax8.png



 

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

 

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

 

Видите ли, Строгий NAT похож на рецессивный (спящий) ген, который вызывает страшную болезнь - вы можете быть его носителем и он не будет проявлять никаких симптомов; проблемы начнут возникать когда вы попадаете в команду (или сами создадите сессию) к кому-то, кто также является носителем.

 

Из-за того, что Warframe знает у кого Строгий NAT, всем нам нужно стараться избегать попадания таких людей в один отряд, зная, что это может вызвать проблемы с соединением. Всё работает хорошо, пока не происходит:

 


Zocc2CV.png



 

Это происходит лишь в 0.36% случаев от всех приглашений (6% от 6%), но в масштабах такой игры как Warframe этот мизерный процент перерастает в большое количество сердитых людей, которые просто хотят поиграть вместе.

 

Иногда люди оказываются за несколькими "слоями" NAT'а, который становится всё более распространённым вместе с тем, как мир постепенно уходит от IPv4 адресов (по иронии полный переход на IPv6 может привести к ухудшению ситуации, потому как гибрид v4 и v6 добавит ещё один слой NAT'а уже для провайдеров, что приведёт к тому, что вы не сможете использовать UPnP, NAT-PMP или же назначать порты в ручную).

 

В таких случаях как этот, наш анализ сети оказывается обманутым и считает, что всё радужно и всюду единороги, но когда вы пытаетесь присоединиться к другу, то получаете это:

 


3ZVRM74.png



 

Большинство людей, получая это сообщение, думают, что это ошибка в нашем сетевом коде и её нужно исправить; к сожалению, в этом случае мы оказываемся во власти Интернета; взгляните - RFC5128 - как и с NAT'ом, тут есть проблемы с сетью, которые мы просто не в состоянии исправить.

 

Единственное решение заключается в использовании прокси-серверов: если сеть не позволяет P2P подключение, то наш новый код выступит и сработает в качестве посредника. Это увеличит время ожидания (иногда это называют "лагом", задержкой), но в большинстве случаев такие небольшие задержки куда предпочтительнее, чем отсутствие возможность поиграть с вашими друзьями вовсе.

 

На прошлых выходных, с помощью нескольких добровольцев из разных стран, мы протестировали несколько наихудших сценариев; даже с самыми жёсткими лагами система продолжала работать. На самом деле, многие из игр, в которые я играл на тех выходных, использовали прокси-сервер и даже с учётом того, что это добавило не менее 80мс задержки к мой игре, я почти этого не замечал!

 

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

 

К слову, это должно решить не только множество Строгих NAT'ов, но и некоторые другие проблемы, которые приводят к провалам присоединения игроков - эта отказоустойчивая система может быть нами использована как крайняя мера в тех случаях, когда всё идёт под откос.

 

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

 

Мы также хотим оставить предупреждения об анализе сети при входе в игру; конечно, мы можем справиться с большим количеством подобных проблем, но вместе с тем в ваших интересах исправить эту проблему самостоятельно, потому что это даст вам лучший онлайн опыт из возможного.

 

Большинство из вас буду просто рады видеть, что мы трудимся над Строгим NAT'ом даже если это не имеет к вам прямого отношения, а для тех, кто просто хочет

TL;DR: Мы рассмотрели решение проблемы со Строгим NAT'ом с помощью прокси-серверов, чтобы те, кто страдает от этого, смогли поиграть в Warframe с другими!

 

- [DE]Glen

 

Оригинал:


 

 

Перевод: She0g0rath

 

Link to comment
Share on other sites

Молодцы! С этой проблемой борюсь как начал играть. Начал осенью 2013 и хоть был сабж про "строгий НАТ", но на деле не мешало соединяться с друзьями. Проблемы начались ближе к зиме когда надпись про НАТ говорила, что нормально подключиться я смогу 50на50 и со многими друзьями не мог законектица с кем до этого не было трабл. Модем настроен как надо, тесты на порты проводились всё открыто. Все игры по инету нормально и только у Варфрейма "строгий НАТ"... Выручал сторонний софт VPN клиента!

Link to comment
Share on other sites

Круто, только ДЕ так пишут красиво, проблемы больше нет, однако у меня чуть больше 2х лет не было проблем со строгим натом и соединением/подключением... И последние недели я не могу подключиться или создать сессию, ровно после того дня, как классные ДЕ что-то там где-то там сделали...

Link to comment
Share on other sites

Эта сетевая проблема, которая затрагивает все игры без исключений, в том числе и консольные;

Это откровенная неправда (оставим на совести Глена или тех, кто ввел его в заблуждение). Такая проблема только в 1% онлайн играх, в тех, где части из клиентов приходится быть хостами, т.е. должны иметь входящий открытый доступ. В 99% онлайн играх клиенты только лишь сами подключаются к игровым серверам и им не нужен входящий открытый доступ, у них никогда не возникнет проблемы, описанной в данном топике, не важно, за NATом они или нет.

Остальное разбирать не буду, влом.

А вообще, описание получилось очень даже литературное и не важно, что статья квазинаучная. Особенно улыбнуло сравнение с рецессивным геном :D

 

//edited.

Edited by Ikotaa
Link to comment
Share on other sites

Ну почему же сразу так.

Услуга называется "доступ в интернет", а не "размещение клиентского оборудования в адресном пространстве сети Интернет".

Игра словами, это относится к той же категории. А еще любят всем давать "до 100 мбит"... Edited by -10no-RedL1ne
Link to comment
Share on other sites

В обоих случаях догадки оказались неверными, но не суть.

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

Предыдущий месседж пытался донести, что если для одних операторов есть цель донести услугу, которой будут довольны клиенты (в разумных рамках) и не будут прикрываться бумажками, для других же достаточно дать "доступ". Учитывая как все плохо у нас с монополиями от местных до региональных, вторая группа только разрастается.

P.S. Юриспруденция и есть ничто иное как игра слов. Обсуждение в очередной раз скатилась в оффтоп(

Link to comment
Share on other sites

 

Юриспруденция и есть ничто иное как игра слов. Обсуждение в очередной раз скатилась в оффтоп(

Не не не, уважаемый, юриспруденция это правоведение, а игра слов это уже ближе к демагогии и софистике.

По моему, обсуждение как раз очень плотно идет в тему.

 

 Услуга называется "доступ в интернет", а не "размещение клиентского оборудования в адресном пространстве сети Интернет".

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

Edited by Ikotaa
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...