【发布时间】:2010-08-03 02:07:21
【问题描述】:
什么是无线节点发现的最佳算法。假设您有一个大型无线或蓝牙网络,每个节点都有自己的发现范围。
让任何节点发现完整图拓扑的最佳算法是什么,即任何节点都会知道图中的所有其他节点?
【问题讨论】:
什么是无线节点发现的最佳算法。假设您有一个大型无线或蓝牙网络,每个节点都有自己的发现范围。
让任何节点发现完整图拓扑的最佳算法是什么,即任何节点都会知道图中的所有其他节点?
【问题讨论】:
在这个(和类似的)问题上已经做了很多工作。您可能想从以下几个地方开始:
MIT Grid Ad Hoc Networking Project
Wireless Grids Corporation
Berkeley
搜索“无线网格发现”之类的内容可能会更多。
【讨论】:
如果一个节点在其范围内发现一个新节点,它会向其范围内的每个其他节点广播一条关于该新节点存在的消息。
如果一个节点收到这些消息之一,如果它之前没有看到该消息,它会将它自己的标识符附加到消息中,然后将新消息广播到它范围内的所有其他节点(如如果它是在说“如果你需要告诉这个人一些事情,请先告诉我,因为我认为我比你更接近他”)。它还必须存储它接收消息的节点的 id,以便可以通过新来者的节点 id 检索它。
如果一个节点需要向另一个节点发送消息,它会使用接收者的节点 ID 在其本地列表中查找邻居 ID。然后它将消息发送给最好的邻居。该邻居节点现在负责使用它自己的本地列表将消息发送给它的接收者。如果它无法以这种方式找到任何邻居,它会将消息发送到其范围内的每个节点并希望最好。
每个节点保存的本地列表表明了将消息发送给给定收件人的良好“第一步”。第一步很好,因为它们来自节点的第一个邻居,他们听说过某个特定的新人。该列表不会包含许多糟糕的第一步,因为如果节点以前看过消息,则不会重新广播“新来者的存在”消息,并且只有当消息通过更快的路线到达那里时才会发生这种情况。
希望这一切都有意义,我想用 Python 编写代码,但我没有时间。请注意,此系统可能需要一些引导。
【讨论】: