net.p2p协议是否允许对等方通过Internet进行连接(通过NAT,防火墙等)。
我知道PNRP解决了这个问题(如果您使用的是ipV6,那很好)但是在使用自定义解析器时也可以这样做吗?即:当一个对等体在云中注册时,是否只返回net.p2p:// mypcName / endPoint,还是解析器/ PNRP返回允许在防火墙后面找到pc的东西?
我很难找到有关.NET的P2P解决方案的良好信息 - 而且大部分时间都很老..有谁知道这是一种可行的技术还是可能很快就会从.NET中消失的东西?
CNC中 我的解析器可以公开访问,同行在NAT /防火墙后面。
提前感谢: - )
答案 0 :(得分:6)
全部记录在MSDN
上使用Microsoft的对等名称解析协议,该协议使用Teredo隧道来解决IP6 / IP4访问问题。或者编写自己的CustomPeerResolverService(这很简单)
答案 1 :(得分:1)
建议谨慎使用,就像要在防火墙后面托管p2p服务器一样。特别是在发生NAT的情况下,您需要根据ISP提供给您的外部IP地址进行端口转发,并将其转发到您服务器所在的内部网络的IP地址。
在.NET Remoting中,最大的限制是它无法通过防火墙,尤其是在使用NAT时。如果它是内部的并且在防火墙后面并且数据包永远不会到达互联网,那么Remoting就可以了。
您可能需要在防火墙中穿孔以允许数据包输入/输出并将端口转发到内部网络上的IP地址。这可能会带来一个缺点,即您更有可能受到恶意黑客的攻击,这些黑客可以窥探通过互联网来回传播的数据包,甚至试图进入您的网络。
希望这有帮助, 最好的祝福, 汤姆。
答案 2 :(得分:1)
Skype在发送文件或拨打电话时使用UPnP端口转发给自己。如果不可用,则使用客户端服务器模式。尝试学习Nat Traversal和UPnP(我也需要)。