Was ist die Verwendung / der Zweck von MQTT QoS?

Ich studiere das MQTT-Protokoll und es scheint, dass es einen Widerspruch in den allerersten Zeilen der Spezifikationen gibt:

Das Protokoll läuft über TCP / IP oder über andere Netzwerkprotokolle, die geordnete, verlustfreie, bidirektionale Verbindungen. Seine Funktionen umfassen:

[...]

Drei Servicequalitäten für die Nachrichtenübermittlung:

"Höchstens einmal", wobei Nachrichten gemäß den besten Bemühungen der Betriebsumgebung zugestellt werden.Nachrichtenverlust kann auftreten. Diese Stufe kann beispielsweise für Umgebungssensordaten verwendet werden, bei denen es nicht wichtig ist, ob ein einzelner Messwert verloren geht, da der nächste bald veröffentlicht wird. · "Mindestens einmal", bei dem das Eintreffen von Nachrichten sichergestellt ist, jedoch Duplikate auftreten können. · "Genau einmal", wobei die Nachricht genau einmal eintrifft. Diese Stufe kann beispielsweise bei Abrechnungssystemen verwendet werden, bei denen doppelte oder verlorene Nachrichten zu falschen Gebühren führen können.

Wenn MQTT nur über verlustfreie Netzwerkprotokolle ausgeführt werden kann, was bedeutet es, eine verlustbehaftete QoS-Stufe (Stufe 0) bereitzustellen?

Ich glaube, das ist nicht möglich, da das TCP-Protokoll die erneute Übertragung verlorener Nachrichten übernimmt. Das wäre sinnvoll für MQTT-SN, das über @ laufen sol non-TCP, unzuverlässig networks.

(Anmerkung: Stufe 1 "mindestens einmal" ist auch bei Verwendung des TCP-Protokolls nicht sinnvoll, da TCP diese Garantie bereits enthält, in einem allgemeineren Fall jedoch sinnvoll sein kann, da in der Spezifikation angegeben ist, dass ein anderes verlustfreies Protokoll verwendet werden kann.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage