我想象手机上的主流消息应用程序,但没有集中的服务器。
不知何故,通过移动网络连接到互联网的两部手机相互匹配,并在它们之间建立联系。然后,电话A移出它的当前网络,它改变了它的IP。电话B的IP地址仍然相同,因此电话A尝试创建连接。很可能电话B在NAT后面,所以如何创建这种连接?电话A只知道电话B的公共IP,而“路由器”在其NAT表中没有电话A和B之间的连接。所以我如何看待它,这是不可能的,但希望有一些出路。
在可用时使用IPv6,它不受NAT影响。
对于IPv4,您要查找的关键字是NAT traversal,存在许多方法。大多数都需要某种形式的会合点,这可能是两个都知道的第三个同行。但也存在其他方法,如基于时间的协调。
使用endpoint independent mappings(也称为full cone NAT)的NAT根本不需要协调,只要每个对等体通过常规ping保持映射打开即可。这是UDP CGNAT的推荐实现。
一些CGNAT实现还支持PCP,您可以通过它来请求显式端口映射。