p2p软件最初连接的位置是什么?

时间:2012-05-10 05:53:56

标签: p2p

在BitTorrent中,客户端连接到.torrent文件中指定的跟踪器。 Tracker是一种集中式服务器,它是起点。所以BitTorrent不是纯粹的p2p。

如果我们想开发纯p2p系统,我们应该设计路由覆盖网络。所有节点都有像路由器一样的路由表。但即使在路由覆盖网络中,每个节点最初也应该知道至少一个现有节点(GUID,IP地址)。那么我们如何确定呢?我们应该像固定的集中式服务器那样永远保持“一个现有节点最初连接”吗?如果是这样,我认为这不是完全分散的方法。

4 个答案:

答案 0 :(得分:1)

您描述的解决方案(定义具有众所周知的IP地址的中心对等方)不是唯一的解决方案。

另一个解决方案是在网络上的知名URL中发布一个html页面(或json文件),并确保此项目包含此对等方可以初始连接的更新的对等列表。如果对等体出现故障,可以更新此列表。最终,您可以使用多个网址。

纯P2P系统是一种理论概念,在现实中无法完全实现。

答案 1 :(得分:0)

你可以使用任播。所以第一个其他客户端将回答并可能发送这样一个初始的“客户列表”。您的客户可以连接到他们以获取更多列表。

经典地我会对地址实施多播并等待其他客户的回答。

答案 2 :(得分:0)

首先,真正的对等网络不一定是分散的。其次,权力下放并不一定意味着网络不利用本身可能集中的二级服务。

这两个问题的主要问题是网络解决方案的主要资源是通过相关的同行分发的。

例如,对等视频会议可以使用中央联系人服务,但只要对等方在进入真正的对等范围之前解决此类问题,它们仍然是纯对等的。这也将是分散的。

它归结为您尝试使用点对点解决的问题。视频会议是一个视频会议 - 它开始于在一个对等体上录制的视频,并在另一个对等体上观看视频。只要这些数据的每个字节直接在对等体之间传输(即使会议中有数百个对等体,无论这些对等体如何相互发现),它都是真正的点对点视频会议。

请注意,视频对等体仍然在您的典型环中,并且联系人列表仍可能使用节点密钥来获取位置信息而不是IP。这仍将是一个网络覆盖,因为它仍然将通过IP构建,取代它在对等级别上的寻址方案,以促进真正的点对点网络。

真正归结为网络连接的概念。 IP只是将数据包推送到未指定的路由器,直到它到达特定地址。每个端点之间的“连接”仅存在于较高的软件级别(包括处理TCP / IP时)。连接只是软件中使用的数据,用于了解每个点是谁以及如何处理数据等。对等网络覆盖有效地分发这些数据,从而消除了每个对等体创建大量连接以进行通信的需要。范围很广。这不需要权力下放(只要对等通信不是集中式的),系统内的辅助服务不一定限制网络范围或以其他方式集中实际的对等网络。

因此,要回答您的问题,最初连接的位置无关紧要,以便被视为点对点,不同的点对点服务将根据其服务设计处理此问题。

答案 3 :(得分:0)

好的,我正在考虑为AI项目为许多不同的服务编写p2p协议,我想我会来这里看看我是否可以获得一些关于如何获得初始连接的想法。

我遇到了几种建立初始连接的方法:

1)您在互联网上有一个静态IP地址,用于在其他对等体上分发信息。这不好,因为: a)这是单点故障,服务可能会脱机,阻止任何新连接创建与对等方的初始连接, b)IP地址可能会改变。这可以通过使用域名来缓解,该域名被维护为指向在对等体上提供数据的服务的位置的当前IP地址,但是这可以被黑客在理论上被欺骗或arp中毒,dns攻击等破坏。

2)您可以强制用户为另一个对等体提供初始IP地址或主机名,并由用户查找主机名/ IP地址/端口号。这很好,但如果有人发布了虚假信息,或者他们无法在谷歌或其他搜索网站上找到同伴,那么显然它是可以挽回的。

3)您可以将其留给对等方在中心位置发布自己的存在 - 例如一组IRC频道或一组网站。同样,除非它通过中央可信域,否则很难确定对等体的真实性。

4)您可以使用某种nmap样式发现算法在子网中搜索适当的协议。这种方法的问题在于它很慢并且很可能引起防火墙等事物的注意。

5)这是3)您可以允许同行在网站上宣传自己的信息,而不必在合适的位置(特定网站或网站组)查找信息,你可以让谷歌的搜索算法找到它,并为你做发现,但你可以想象,这可能需要几天谷歌缓存网站数据与同行的信息。同样,您可以提供一些方法来验证广告数据的真实性。

6)如果您对锁定某些人的专用p2p网络感兴趣(例如,您可能希望拥有文件共享网络,并且您不希望执法部门能够访问它,或者MPIAA) ,然后你可以使用2)然后有一个推荐系统,你要求初始连接提供引用者的IP地址,然后服务可以连接到引用的IP地址,并询问引荐者是否确实引用了裁判。

这就是我现在所能想到的,但如果有人想出任何其他方法来做到这一点,我会非常感兴趣。