我正在尝试了解 P2P/去中心化网络的一些细节。我的问题如下。假设我有两台名为 comp1 和 comp2 的机器。现在,comp1 设置在我的家庭网络中的路由器后面,comp2 位于我的办公室中,也位于路由器后面。我是否可以像这样在 Internet 上来回发送 UDP 数据包,当然假设端口已正确转发?为了更深入地了解我正在调查的内容,我试图弄清楚新节点如何在不使用中央服务器的情况下发现现有节点。
谢谢你!
假设,正如您所说,端口转发正确,您可以将 UDP 数据包发送到路由器后面的 2 个客户端。
检测本地 Intranet 上的客户端的一个好方法可能是使用多播,但是这并没有得到 ISP 的广泛支持(至少在英国),因此不能依赖。许多设备发现平台都使用组播,例如 mDNS(用于 Apple 的 Bonjour)
http://en.wikipedia.org/wiki/Multicast http://en.wikipedia.org/wiki/Multicast
(它基本上是通过客户端订阅组,然后向该组发送消息来工作的)
我认为通过互联网发现新客户端的最佳方法是让新客户端联系一台服务器以使其知道它们的存在,然后集中式服务器将告诉所有其他客户端有关您的信息。例如,这在现代战争 2 等 P2P 游戏中使用,这就是“追踪者”在 BitTorrent 协议中所做的事情。
这并不是完全去中心化的,但它可能是最容易实现、也是最可靠的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)