Я пытаюсь измерить задержку от моего издателя к моему подписчику в сети MQTT. Я надеялся использовать функцию on_message (), чтобы измерить, сколько времени займет эта поездка, но мне не ясно, происходит ли этот обратный вызов после того, как брокер получил сообщение или после того, как подписчик получил его?
Также есть ли у кого-нибудь еще предложения о том, как измерить задержку в сети?
on_message()
вызывается на подписчике, когда сообщение достигает подписчика.
Один способ измерить задержку состоит в том, чтобы сделать петлевую публикацию в том же клиенте, например
on_message()
называется записать время сноваСтоит отметить, что этот тип теста предполагает, что оба издателя / подписчика будут находиться в похожих сетях (например, не сотовая связь, а гигабитное оптоволокно).
Также на задержку будет влиять нагрузка на брокера и количество подписчиков на данную тему.
Другой вариант — пассивно измерять задержку путем мониторинга сети, предполагая, что вы можете видеть весь трафик из одного места, поскольку синхронизировать часы между точками мониторинга очень сложно.
Я был вовлечен в подобную работу, где я должен был измерить задержку в беспроводных сенсорных сетях. Существуют разные способы измерения задержек.
Если подписчик и клиент синхронизированы.
Если подписчик и клиент не синхронизированы.
В этом случае измерение задержки немного сложнее. Предполагая, что сеть симметрична.