分发心跳的算法?

时间:2012-10-30 19:22:43

标签: algorithm networking network-programming load-balancing

我正在构建一个传感器网络,其中大量传感器将其状态报告给中央集线器。传感器需要至少每3小时报告一次状态,但我想确保集线器在任何给定时间都不会被过多的报告所淹没。因此,为了缓解这个问题,我让集线器告诉传感器“下次报告时间”。

现在我正在寻找任何标准算法来对这些更新进行负载平衡,这样传感器不会超过报告之间的设置间隔,并且集线器可以计算下一个报告时间,使其(接收报告)的负载是在一天中均分。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果您知道有多少传感器,只需将每隔三小时的块分成多个时隙(根据需要随机或以编程方式),为每个传感器分配一个。

如果不这样做,您仍然可以将每隔三小时的块分成大量的时隙并将它们分配给传感器。在你的分配算法中,你必须确保所有的插槽在它们中的任何一个有两个之前有一个已分配的传感器,并且在它们中的任何一个有三个之前它们都有两个,等等。

答案 1 :(得分:0)

最简单的解决方案:是否有任何理由说明集线器无法根据自己的时间表轮询传感器?

否则,您可能需要设计一个系统,集线器可以根据自己的负载决定是否接受报告。如果传感器的连接被拒绝,则使其等待一段随机时间并重试。随着时间的推移,传感器应该或多或少地优化自己。

IIRC TCP / IP的某些方面使用了类似的方法,但我在描述哪个方面是空白的。

答案 2 :(得分:0)

我会使用90分钟的基础,在30分钟范围内随机变化,因此间隔在60到120分钟之间随机变化。如果你想接近3小时的间隔时调整这些数字,但我个人会保持良好状态