我正在构建一个传感器网络,其中大量传感器向中央集线器报告其状态。传感器需要至少每 3 小时报告一次状态,但我想确保集线器在任何给定时间都不会被太多报告淹没。因此,为了缓解这种情况,我让集线器告诉传感器“下一次报告时间”。
现在我正在寻找任何标准算法来对这些更新进行一些负载平衡,这样传感器不会超过报告之间的设定间隔,并且集线器可以计算下一个报告时间,以便其负载(接收报告的)平均分配那天。
任何帮助将不胜感激。
我正在构建一个传感器网络,其中大量传感器向中央集线器报告其状态。传感器需要至少每 3 小时报告一次状态,但我想确保集线器在任何给定时间都不会被太多报告淹没。因此,为了缓解这种情况,我让集线器告诉传感器“下一次报告时间”。
现在我正在寻找任何标准算法来对这些更新进行一些负载平衡,这样传感器不会超过报告之间的设定间隔,并且集线器可以计算下一个报告时间,以便其负载(接收报告的)平均分配那天。
任何帮助将不胜感激。
如果您知道有多少传感器,只需将每三个小时的数据块划分为多个时间段,然后(根据需要随机或以编程方式)为每个传感器分配一个。
如果不这样做,您仍然可以将每三个小时的时间块划分为大量的时隙并将它们分配给传感器。在您的分配算法中,您只需要确保所有插槽在它们中的任何一个有两个之前都有一个分配的传感器,并且在它们中的任何一个有三个之前所有插槽都有两个,等等。
最简单的解决方案:集线器是否有任何理由无法根据自己的时间表轮询传感器?
否则,您可能需要设计一个系统,其中集线器可以根据自己的负载决定是否接受报告。如果传感器的连接被拒绝,请让它等待一段随机时间并重试。随着时间的推移,传感器应该或多或少地以最佳方式将自己隔开。
IIRC TCP/IP 的某些方面使用了类似的方法,但我对哪个方面持空白。
我会使用 90 分钟为基数,并在 30 分钟范围内随机变化,以便间隔在 60 到 120 分钟之间随机分布。如果您想更接近 3 小时的间隔,请调整这些数字,但我个人会很好地保持在它之下