Работа с клиентами и несколькими серверами

#client-server

#клиент-сервер

Вопрос:

Я работаю над архитектурой игрового сервера, но я думаю, что этот вопрос относится к разработке сервера в целом.

Настройка, с которой я работаю, вызывает несколько разных серверов для разных процессов, таких как:

  • Сервер входа в систему
  • Сервер выбора символов
  • Сервер управления для координации всех мировых серверов
  • Любое количество разных серверов параллельного мира

Итак, мой вопрос в том, как обрабатывается передача клиента между разными серверами?

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

Комментарии:

1. Зачем вам нужны разные серверы? Какой механизм вы используете для взаимодействия клиент-сервер? Как вы думаете, почему токен небезопасен?

2. Я пытаюсь облегчить масштабируемость, разделяя проблемы. Связь обрабатывается через буферы протокола с использованием TCP (возможно, с SSL).

3. Что касается токена, мне кажется, что он будет подвержен атакам типа «человек посередине» даже с использованием SSL.

4. SSL и проверка сертификатов, безусловно, должны избегать MITM.