将 UDP 数据报发送到共享 IP 地址和端口

Sending a UDP datagram to a shared IP address and port

假设两台电脑使用同一个Wi-Fi上网。每台计算机都安装了相同的程序,绑定到相同的 UDP 端口。我想知道,由于两台计算机具有相同的外部 IP 地址并侦听相同的端口但在不同的机器上,如果将 UDP 数据报发送到这个公共外部地址和公共端口,结果会是什么,然后是哪台机器将接收它以及如何向每台机器发送它自己的个人数据报?

路由器不会将数据包转发到任何一台计算机,因为它不知道应该转发到哪台计算机。

事实上,即使程序只在一台计算机上运行,路由器仍然不会转发数据包。在决定使用哪个外部端口将入站流量转发回计算机之前,它必须首先查看从计算机到外部世界的出站流量。并且路由器可能不会决定使用计算机在私有 IP 上使用的 public IP 上的相同端口。

这就是为什么每个人都讨厌 NAT 而喜欢 IPv6 的原因。