如何在Paho-MQTT网络中测量延迟

时间:2018-07-16 08:18:12

标签: python c++ mqtt latency paho

我正在尝试测量MQTT网络中从发布者到订阅者的延迟。我希望使用on_message()函数来测量这次旅行需要多长时间,但是我不清楚这个回调是在经纪人收到消息之后还是在订户收到消息之后发生的?

其他人对如何衡量网络延迟也有其他建议吗?

2 个答案:

答案 0 :(得分:1)

消息到达订阅者时,在订阅者上调用

on_message()

衡量延迟的一种方法是在同一个客户端中进行回发发布。

  1. 设置客户端
  2. 订阅给定主题
  3. 将消息发布到主题并记录当前(高分辨率)时间戳。
  4. 调用on_message()时再次记录时间

值得指出的是,这种测试假设发布者/订阅者都将位于相似的网络中(例如,非蜂窝光纤与千兆光纤)。

延迟也将受到代理的负载和给定主题的订户数量的影响。

另一种选择是通过监视网络来被动测量延迟,假设您可以看到来自一个位置的所有流量,因为跨监视点同步时钟非常困难。

答案 1 :(得分:1)

我参与了类似的工作,我应该测量无线传感器网络中的延迟。有多种测量延迟的方法。

订阅者和客户端是否同步。

  • 在客户端用时间戳值填充有效负载并发送 该数据包发给订户。在订户处再次花费时间 盖章,并在 用户和数据包中的时间戳值。
  • 这给出了数据包从以下时间到达订户所花费的时间 客户。

订户和客户端未同步。

在这种情况下,等待时间的测量并不复杂。假设网络是对称的。

  • 在将数据包发送给订户之前,先在客户端启动计时器。 配置订阅服务器以将消息回显给客户端。停止 客户端的计时器采用时钟滴答的差异。这次 表示您将其除以二得到的往返时间 方向延迟。