Goz*_*Goz 10 mobile p2p udp nat nat-traversal
我遇到了一个有趣的问题.基本上我有两部手机都在NAT之后.我想使用UDP直接在2台设备之间进行通信.
我知道如果我发起从电话到服务器的连接,那么我可以将数据推回到与电话的连接(即从收到消息的同一端口将其发送回收到的相同IP和端口) .所以我可以通过将两部手机连接到服务器来轻松地在两台设备之间进行通信.然后将数据发送到服务器并将其重新路由回电话.这绕过了我可能遇到的任何NAT遍历问题.
但是我宁愿只使用服务器将2个设备指向对方,然后让它们直接通信.我该怎么做呢?是否可以不使用像uPnP这样的东西?
任何帮助都会很有用!
编辑:我发现这个文件http://www.brynosaurus.com/pub/net/p2pnat/它看起来像发夹翻译是我所追求但它看起来并没有被广泛支持.我想知道移动ISP对UPnP的支持有多好?
您正在寻找的是 UDP 打洞,请参见http://en.wikipedia.org/wiki/UDP_hole_punching
基本思想很简单,您告诉每个端点要使用的端口,然后它们开始发送 udp 数据包。NAT'ing 设备在看到第一个传出数据包时将设置一条遍历规则,然后来自另一端的下一次尝试将匹配该遍历规则。