如何知道连接到 IPV4 中同一个 Wi-Fi 热点的 2 个设备之间的区别?

网络工程 IPv4 UDP
2022-02-25 06:37:13

我正在做一个小项目来制作一个客户端服务器程序来实现无连接,我想在连接到同一个 Wi-Fi 热点的 2 个设备之间传输信息,所以它们显示相同的 IPV4 地址。如何区分这两个设备,或者我可以使用 IPV6 地址来制作客户端服务器程序?

2个回答

连接到同一个 Wi-Fi 热点,因此它们显示相同的 IPV4 地址。

显然,它们对您的服务器进行了 NAT。如果这是在同一个企业网络上,您应该删除 NAT。

如何区分这两种设备

在网络层面,你不能。在应用程序级别上,您可能会使用某种指纹或身份验证,但这不是主题。可能Stack Overflow是正确的地方。

或者我可以使用 IPV6 地址来制作客户端服务器程序吗?

可能。客户端可能使用各种 v6 IP,因此您不能 100% 确定。

...在连接到同一 Wi-Fi 热点的 2 台设备之间,因此它们显示相同的 IPV4 地址。

这不是 NAT 的真正工作方式:

Wi-Fi 网络(家庭网络也是如此)形成一个本地网络。网络中的所有设备都有自己IP 地址。但是,这些 IP 地址在 Internet 中无效。

为了与 Internet 中的计算机建立连接(例如 TCP 连接),设备实际上会建立与 NAT 路由器或代理服务器的连接,然后它会与 Internet 中的计算机建立连接。

所以实际上全局 IP 地址并没有在设备之间共享,但真正使用全局 IP 地址的唯一设备是 NAT 路由器或代理服务器。实际上,网络中的任何设备都没有真正连接到互联网,而只有 NAT 路由器或代理服务器。

如何区分这两种设备...

如果两台设备在同一个Wi-Fi 网络中,则没有任何问题:

两台设备都有自己的 IP 地址。

然而,有防火墙的 Wi-Fi 网络只允许设备与 NAT 路由器通信,但不能相互通信。在这种情况下,你没有机会。

如果只有一台设备在 Wi-Fi 网络中(另一台在另一个 Wi-Fi 网络中),您也将没有机会:

正如我已经写过的,唯一真正连接到互联网的设备是 NAT 路由器。默认情况下,此路由器不会将 UDP 数据包转发到设备。

... IPV6 ...

在大多数情况下,所有设备都有一个在整个 Internet 中有效的 IPv6 地址。因此,Wi-Fi 网络中的设备可以直接与 Internet 中的计算机进行通信。

然而:

  • 大多数用于 IPv6 的 Wi-Fi 路由器都有一个“状态防火墙”,它将阻止默认情况下在 IPv4 Wi-Fi 网络中被阻止的数据包。
  • 肯定有网络使用代理服务器或 NAT(“NAT66”)与 IPv6 一起工作。