点对点:寻找节点的方法

78

有没有已知的方法可以在不使用专用中央服务器的情况下找到对等方呢?

例如:如果我的对等方断开并重新连接到互联网,但每次都获得新的IP地址,而我想在不设置专用服务器以注册的情况下连接到它们。

我正在考虑使用对等方的电子邮件地址定期发送连接对等方清单,并带有某种时间码,从而避免使用专用服务器。如果在尝试所有先前已知的对等方地址后无法连接到任何对等方,则会退回到此方法。但优先考虑现有的查找对等方模型。

13个回答

1

你可以使用中央目录或某种广播协议进行服务发现。假设你可以让它们被Google索引,你可以构想一个系统,其中每个对等方运行一个包含特定页面上某些独特、罕见单词的网站。然后,你可以使用基于这些单词的Google搜索结果来识别潜在的对等方。这本质上是一种(嘈杂而缓慢的)互联网广播。

如果页面结构是一个众所周知的模式或包含可识别的连接信息,那么很容易在搜索结果中区分它们。使用这样的公共目录会让你在形成的网络中暴露给受损节点,但这几乎适用于任何P2P网络,除非有一些安全机制。

让网站被Google(或其他搜索引擎)爬取并高排名你特定的奥秘搜索词组将是关键。我能想到几种方法,但它们不是我会使用的方法。对于合法的服务,我宁愿花钱或找到一个免费的网站来作为目录。


谷歌努力防止人们滥用他们的排名系统,所以那将是一个不好的选择 ;) - ryyst
3
@ryyst - 这个意图是尝试使用普通搜索找不到的模糊词语。这几乎与Google试图防止的游戏方式相反,而这些措施是否对该技术产生任何影响还是一个开放性问题。不过,尝试这个实验肯定会很有趣。 - tvanfosson
1
在我看来,谷歌会降低任何试图以非预期方式影响其页面排名的页面的排名。尽管如此,您的想法非常有趣! - ryyst
2
@ryyst - 这就是重点,你并不想提高自己的排名。你希望你的排名保持低位,除了某些真正的人永远不会执行的奥秘搜索。我应该澄清一下,我的意思是“在一组特别深奥的搜索词中排名高”,而不是“总体上排名高”。理想情况下,只有你的搜索结果会显示出来,但这是不可行的。 - tvanfosson

0
这是分布式哈希表算法的典型应用。我建议看一下像pastry这样的东西。它在其他层的顶部使用覆盖网络(应用层网络)。
每个节点都有一个GUID,用于在对等网络上路由请求。

0

如果您正在寻找已经建立的中央服务器,则在此页面上查看metaserver条目:
http://martindevans.appspot.com/
您可以在那里注册对等体,然后其他对等体可以找到它们。显然,这是一个中央服务器,但不需要您进行维护。


@Martin:你能检查一下你的链接吗?根据Firefox的提示,“该网站正在以永远无法完成的方式重定向请求”。谢谢。 - Bill the Lizard
如果您计划使用元服务器,并且使用 .NET,我建议您使用我编写的一个小型 .NET 库。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接