4

net.p2p 协议是否允许对等方通过 Internet 连接(通过 NAT、防火墙等)。

我知道 PNRP 解决了这个问题(如果您使用 ipV6,那很好),但是在使用自定义解析器时也可以这样做吗?即:当对等点在云中注册时,它只是返回 net.p2p://mypcName/endPoint 还是解析器/PNRP 返回允许在防火墙后面找到 pc 的东西?

我很难找到关于 .NET 的 P2P 解决方案的好信息——而且大部分都是非常古老的......有谁知道这是否是一种可行的技术,或者很快就会从 .NET 中消失的东西?

-edit- 我的解析器将可公开访问,对等方位于 NAT/防火墙之后。

提前致谢 :-)

4

3 回答 3

6

这一切都记录在MSDN上

使用 Microsoft 的对等名称解析协议,该协议使用 Teredo 隧道来解决 IP6/IP4 访问问题。或者编写自己的 CustomPeerResolverService (这很简单)

于 2010-01-12T04:57:48.940 回答
1

Skype 在发送文件或拨打电话时使用 UPnP 将端口转发到自己。如果不可用,则使用客户端服务器模式。尝试学习 Nat Traversal 和 UPnP(我也需要)。

于 2009-12-14T20:27:58.390 回答
1

建议您在此处谨慎行事,就好像您想在防火墙后面托管一个 p2p 服务器一样。特别是在发生 NAT 的情况下,您需要根据您的 ISP 给您的外部 IP 地址进行端口转发,并将其端口转发到您的服务器所在的内部网络的 IP 地址。

在 .NET Remoting 中,最大的限制是它不能通过防火墙,尤其是在使用 NAT 时。如果远程处理是内部的并且位于防火墙之后并且数据包永远不会到达互联网,那么远程处理就可以了。

您可能必须在防火墙上打一个洞,以允许数据包进出并将其转发到您在内部网络上的 IP 地址。这可能会带来一个缺点,即您更有可能受到恶意黑客的攻击,这些黑客可以窥探通过 Internet 来回传输的数据包,甚至试图进入您的网络。

希望这会有所帮助,最好的问候,汤姆。

于 2009-12-07T19:08:39.793 回答