所以,我一直在阅读NAT-Punchthrough。我似乎正在接受这个想法,但我很难实施它,并且我觉得我在这里错过了一步。 测试此功能有点困难,因为当涉及到基于Internet的连接时,我几乎无法控制环境。Nat Punchthrough了解P2P概念
我有一个SQL服务器作为我的“服务商”运行,它保持服务器和客户端的外部地址,以及它们的外部地址。
下面是步骤至今: - 我通过存储服务器/客户端的IP/PORT web请求(PHP脚本)连接到我的SQL服务器 - 当两个是已知的,客户端和服务器尝试连接(服务器主机在一个设置的端口上,客户端通过设置的端口连接) - 没有发生重大事件
这里有2个未知数,我想检查一个与你。 NAT-Punchthrough是否确实需要我在第一步中准备与我在此之后的步骤中连接的确切(内部/ LAN)端口?
如果是这样,我不知道我的服务器究竟如何工作的水下,所以它可能需要更多的端口,然后我最初给定的静态端口连接了,但至少给我一个提示。
如果有人有关于此的更多文档,请让我知道。
来源:
Programming P2P application
http://www.mindcontrol.org/~hplus/nat-punch.html
所以,长话短说。认为我们可以从1端口或线性增量进行自己的NAT-Punch实现是天真的,因此应该找到一种服务为我们做点“魔术”来代替? – Smileynator
没有理由不能尝试,但[此前的研究](http://www.brynosaurus.com/pub/net/p2pnat/)表明,在某些技巧下,成功率可能在60%左右。如果你确实尝试并得到任何结果 - 那么对于其他人知道你做了什么,这将是很好的反馈。 –
由于我们需要能够达到90%,至少要通过它在生产中,我们将退出此。有些服务可以为您提供NAT-Punchtrough。然而据我所知,他们都会做一些类似插座的东西,所以你被困在运行linux serverto的时候为你做这个魔术。他们获得了90%的成功。如果你想要100%的可靠性,你会被卡住,使用一个RELAY服务器,这就像Photon Networking。这通常会变得很昂贵,特别是在我们想要发送的数据负载的情况下。在一个小团队中取得胜利实在太难了! #延迟 – Smileynator