某些网络上的公共 IP 地址快速变化?

某些网络上的公共 IP 地址快速变化?

我运营/开发一款在线游戏,我们的许多用户都在东南亚。

我最近去了东南亚,发现了一件令人震惊的事。无论在新加坡还是菲律宾,只要能上网,无论是通过 3G、酒店的局域网还是咖啡馆的 wifi,我都注意到我的 IP 地址在不断变化。我指的是公共 IP 地址,而不是私有 IP 地址。我可以加载如下页面whatismyip.com只需点击重新加载,每 5-10 秒就会出现一个新的 IP 地址!

这对我的在线游戏有很多影响,因为如果某个用户的 IP 地址发生变化,很多事情都会“中断”。基本上,我想了解更多有关这方面的信息。是否有导致这种情况的网络、路由器或范例的名称,以便我可以阅读它?我不明白为什么网络会以这种方式运行。它是故意这样做的吗?是出于安全原因吗?是为了匿名和保护用户的身份吗?或者它只是一种在世界其他地方大多已过时的“旧”方法?感谢任何有助于我理解的信息。

答案1

通常,当大型网络上存在某种形式的内容缓存/过滤/nat 时,您会看到这种情况,而单个设备无法处理缓存/过滤。

每个单独的请求都根据网络管理员设置的一组规则由集群缓存/过滤器/nat 设备进行分发和处理。

这对我的在线游戏产生了很大的影响,因为如果某个用户的 IP 地址发生变化,很多事情都会“崩溃”。

听起来你对 IP 地址做了一些不符合惯例的假设。不幸的是,在 IPv4 地址空间几乎耗尽的当今世界,你不能指望客户端的 IP 地址在多个 tcp 连接之间保持一致。

这不是“过时”的现象,而是一种常见现象。在大型商业网络中,您经常会看到这种行为。在酒店、学校、政府网络等处,这种行为并不罕见。

鉴于 IPv4 地址空间变得越来越难以获得,这种行为可能会变得更加普遍。

答案2

如果您考虑网络地址转换的工作方式,就会更容易理解。基本上,每个 NAT 设备都能够处理大约 65000 个并发 TCP 连接,因为它为每个传出连接分配自己的 TCP 端口。在 YouTube 时代,我们的连接有时很长;因此,ISP 会在多个 NAT 盒之间分配流量(或使用具有许多外部 IP 地址的盒),从而导致每次进行传出 TCP 连接时都会产生不同的 IP 地址。

不过我不明白为什么它会影响你的游戏。如果是基于浏览器的游戏,你会将会话信息存储在服务器上,并使用 cookie 将客户端与会话匹配。如果是独立游戏,你只需保持 TCP/UDP 连接,只要连接处于活动状态,客户端的 IP 地址就会保持不变。除非我遗漏了什么,否则真的没有理由依赖客户端的 IP 地址。

相关内容