2010-08-01 56 views
5

什么是无线节点发现的最佳算法。假设你有一个大的无线或蓝牙网络,每个节点都有自己的发现范围。无线节点发现

什么是使任何节点发现完整图拓扑的最佳算法,即任何节点都知道图中所有其他节点?

回答

1

如果一个节点在其范围内发现一个新节点,它将向该范围内的每个其他节点广播一条消息,告知该新节点的存在。

如果一个节点收到这些消息之一,如果它以前没有看到过该消息,它会将它自己的标识符附加到消息中,然后将新消息广播给它的范围内的所有其他节点就好像它在说“如果你需要告诉这个人,请先告诉我,因为我觉得我比他更接近他”)。它还必须存储它接收消息的节点的ID,以便它可以由新人的节点ID检索。

如果节点需要发送消息到另一个节点,它会使用收件人的节点ID在其本地列表中查找邻居id。然后它将消息发送给最好的邻居。该邻居节点现在负责使用它自己的本地列表将消息发送给收件人。如果以这种方式找不到任何邻居,它会将消息发送给其范围内的每个节点,并希望获得最佳效果。

每个节点保存的本地列表指示向给定收件人发送消息的良好“第一步”。第一步是好的,因为它们来自节点邻居的第一个,听说过某个新手。该列表不会包含许多不好的第一步,因为如果节点之前已经看到了该消息,节点就不会重新传播“新人”的消息,而且只有当消息通过更快的路由到达时才会发生。

希望一切都合理,我想用Python编写代码,但我没有时间。请注意,该系统可能需要一些引导程序。