Какова польза / назначение MQTT QoS?
Я изучаю протокол MQTT, и кажется, что есть противоречие в самых первых строках спецификации:
Протоколработает через TCP / IP или другие сетевые протоколы, которые обеспечивают упорядоченный, без потерьдвунаправленные соединения. Его функции включают в себя:
[...]
Три качества обслуживания для доставки сообщений:
«Максимум один раз», когда сообщения доставляются в соответствии с максимальными усилиями операционной среды.Потеря сообщения может произойти, Этот уровень может использоваться, например, с данными датчика окружающей среды, где не имеет значения, потеряно ли отдельное показание, поскольку следующее будет опубликовано вскоре после этого. ·«По крайней мере, один раз», когда сообщения гарантированно прибывают, но возможны дубликаты. ·«Ровно один раз», когда сообщение гарантированно поступит ровно один раз. Этот уровень можно использовать, например, в биллинговых системах, в которых дубликаты или утерянные сообщения могут привести к неправильной оплате.Если MQTT может работать только по сетевым протоколам без потерь, что означает предоставление уровня QoS с потерями (уровень 0)?
Я полагаю, что это даже невозможно обеспечить, так как протокол TCP позаботится о повторной передаче потерянных сообщений. Это имело бы смысл для MQTT-SN, который предназначен для переездане TCP, ненадежный сетей.
(примечание: уровень 1 «хотя бы один раз» также не имеет смысла при использовании протокола TCP, потому что TCP уже включает эту гарантию, но может иметь смысл в более общем случае, поскольку в спецификации сказано, что может использоваться другой протокол без потерь)