Я запускаю / разрабатываю онлайн-игру, многие из наших пользователей находятся в Юго-Восточной Азии.
Недавно я был в Юго-Восточной Азии и сделал тревожное открытие. Везде, где у меня был доступ в Интернет, будь то через 3G, LAN в отеле или Wi-Fi в кафе, как в Сингапуре, так и на Филиппинах, я заметил, что мой IP-адрес ПОСТОЯННО менялся. Я имею в виду публичный IP-адрес, а не частный. Я мог бы загрузить страницу вроде whatismyip.com и просто нажмите перезагрузить и увидите, что новый IP-адрес появляется каждые 5-10 секунд!
Это имеет множество последствий для моей онлайн-игры, так как многие вещи "ломаются", если IP-адрес изменяется для данного пользователя. В принципе, хотелось бы больше об этом узнать. Есть ли название для типа сети, маршрутизатора или парадигмы, которая вызывает это, чтобы я мог прочитать об этом? Я не понимаю, ПОЧЕМУ сеть будет работать таким образом. Делается ли это специально? Это из соображений безопасности? Это для анонимности и защиты личности пользователей? Или это просто «старый» метод, который по большей части устарел в остальном мире? Спасибо за любую информацию, которая поможет мне понять.
Если вы подумаете о том, как работает трансляция сетевых адресов, это станет легче понять. По сути, каждое устройство NAT может обрабатывать около 65000 одновременных TCP-соединений, поскольку оно выделяет свой собственный TCP-порт для каждого исходящего соединения. В эпоху YouTube наши связи иногда бывают довольно долгими; поэтому интернет-провайдеры распределяют трафик между множеством блоков NAT (или используют блоки со многими внешними IP-адресами), в результате чего каждый раз при исходящем TCP-соединении создается другой IP-адрес.
Я не понимаю, почему это влияет на вашу игру. Если это браузерная игра, вы должны хранить информацию о сеансе на сервере и использовать cookie для сопоставления клиента с сеансом. Если это отдельная игра, вы просто сохраняете соединение TCP / UDP, а IP-адрес клиента остается неизменным, пока соединение активно. На самом деле нет причин полагаться на IP-адрес клиента, если я чего-то не упускаю.
Обычно вы увидите это, когда есть какая-то форма кэширования / фильтрации / натяжения контента в большой сети, где кеширование / фильтрация не может обрабатываться одним устройством.
Каждый индивидуальный запрос распределяется и обрабатывается устройствами кэширования / фильтрации / обработки кластера на основе некоторого набора правил, установленных администратором сети.
Это имеет множество последствий для моей онлайн-игры, так как многие вещи "ломаются", если IP-адрес изменяется для данного пользователя.
Похоже, вы сделали некоторые предположения относительно IP-адресов, которые не соответствуют общепринятой практике. К сожалению, в текущем мире, где адресное пространство IPv4 почти исчерпано, нельзя полагаться на согласованность IP-адреса клиента между несколькими TCP-соединениями.
Это не «старый», это довольно распространено. Такое поведение часто встречается в крупных бизнес-сетях. Такое поведение нередко можно увидеть в отелях, школах, государственных учреждениях и т. Д.
Учитывая, что получить адресное пространство IPv4 становится все труднее, такое поведение, вероятно, станет еще более распространенным.