3

我正在寻找有关如何在动态对等网络中维护网络完整性的技术、算法等信息。欢迎实际实施、学术论文和该类别中的任何其他内容。

想象一个完全基于点对点的网络,其中每个节点只连接到x 个其他节点。在没有所有节点的完整列表的情况下,每个节点都负责维护与网络的连接。节点动态地下降和上升,这意味着每个节点需要询问它的邻居(和他们的邻居?)以便新节点连接到,以保持x数量的连接。

网络分段(网络的两半仅由每个网络的一个节点连接 - 如果其中任何一个出现故障,网络将分成两部分)以及如何避免这种情况和有效的路由(距离指标等)是我的主要兴趣,但任何与具有类似描述的网络相关的内容都会很有趣。

我目前正在研究 Chord DHT 协议,因为它与我所要求的有一些相似之处。

4

6 回答 6

3

Netsukuku 项目旨在为基于 wifi 的大型 ad-hoc 网络创建协议和软件实现。

来自他们的常见问题解答“Netsukuku 项目基于一个非常简单的想法,即利用 wifi 连接的巨大潜力,使无线社区的 PC 充当路由器并一起处理比 Internet 更大的 ad-hoc 网络。”

于 2009-12-04T14:24:01.440 回答
2

只是我的想法——不是一个完整的解决方案;未经实践测试,但仍可能涉及一些有趣的问题和潜在的解决方案。

必须记录和管理节点故障和重新加入的标准化时间。为了实现这一点,网络不是基于实时计算,而是基于动画帧数。让 N 个前端处理器为传入的作业分配 FEP ID 和作业 ID 以及网络动画帧号。甚至量化时间也无法解决许多实时问题。在某些例外情况下,这有点像会计,将事件发布到应该被视为发生的时间,而不是任何现金移动的时间。

为了获得高性能,心跳包还必须包含正在执行和最近完成或放弃的作业的详细信息,以及网络中主机的清单。

网络继续处理工作项并将其结果发布给相邻的对等方或 FEP。FEP 将完成的作业详细信息转发给客户端,并且可以接管失败的 FEP,因为 FEP 中的唯一状态是请求上标记的最后一个序列号。

网络必须有法定人数才能继续。外部监视器跟踪连接并通知节点在连接中经历了变化,无论它们现在是在法定人数之内还是之外。

当某个工作项因故障而没有被机器完成,或者有新节点加入网络时,必须根据工作项 ID 建立新的工作分配策略,将工作分配给剩余的节点,直到新节点回来在线的。

对于多个节点执行相同作业的情况(重复工作——这是可能的,但通过合理地设计通常的超时可以将其最小化),作业必须是可回滚的,并且使用马尔可夫链解决冲突。

为了可靠地检测可能的重复,作业必须在比接收作业结果的超时时间更短的时间内自动回滚,这适用于危机时期,即节点发生故障时。当节点没有发生故障时,将应用更短的超时。

于 2009-12-14T16:16:16.043 回答
2

对于普适计算,已经开发了各种 ad-hoc P2P 网络,它们可能会满足您的需求。例如,它已在军队中用于部署小型太空舱,每个太空舱都与邻居交谈,通常是某个指挥中心。如果没有中心,可能和分布式计算有关,反正这里有一些链接:

于 2009-12-17T13:27:36.913 回答
1

只是为了避免重新发明轮子,看看各种路由协议。考虑到您的情况, OSPF可能是一个很好的起点。当然,有很多很多变量可能使它不是您的最佳选择。如:

  • 您可以保持到 X 节点的最短路径;如果一个节点出现故障,则通知连接的节点并可以进行新的 SP 搜索以找到合适的节点;您需要考虑 ping 和 keep-alive 消息的开销
  • 您需要建立连接(即在 p2p 网络中搜索)还是只维护大量互连的节点(a la botnet)?如果是这样,混合方法(用于网络的小子集的小型分布式哈希表 + 用于边界的 OSPF/BGP)可能会有所帮助;
  • 等等等等
于 2009-12-17T11:26:05.057 回答
0

你看过Kademlia吗?它类似于 Chord,它的版本被 BitTorrent 和 eMule 使用。该论文列出了一些确保网络完整性的措施,即使面对攻击也是如此。最基本的两个是

  • 保持足够的对等点,这样就不太可能有足够多的对等点出现故障
  • 按最长正常运行时间的顺序维护已知对等点列表。研究表明,节点在下一小时内离线的概率越低,它已经在线的时间越长。这也使得攻击者难以用恶意节点淹没网络。

我不确定这有多少适用于 Chord,因为我没有读过太多关于它的内容,但我认为使用 DHT 是一个好主意,除非你需要模糊搜索。

于 2009-12-15T20:07:20.560 回答
0

使用和弦。http://en.wikipedia.org/wiki/Chord_(peer-to-peer)

我之前在项目中实现过它,它解决了这些问题。

于 2009-12-16T18:54:03.610 回答