Ich habe kürzlich eine Quora-Frage darüber gelesen, ob CoAP oder MQTT leichter ist, aber die Antworten scheinen nicht besonders zufriedenstellend zu sein und widersprechen sich alle: Die Top-Antwort besagt, dass MQTT weniger Ressourcen benötigt, und eine andere unten, die besagt, dass CoAP weniger anspruchsvoll ist.
Nach allem, was ich gefunden habe, wäre es sinnvoll, dass CoAP weniger anspruchsvoll wäre als MQTT , da CoAP nur UDP benötigt und seine Nachrichten im Gegensatz zu MQTT, das über TCP funktioniert (und daher viel mehr wäre), hauptsächlich Feuer und Vergessen sind beteiligt).
Welches Protokoll benötigt die geringsten Ressourcen, um zu funktionieren?
Bei den Ressourcen denke ich hauptsächlich an die erforderliche Prozessorleistung, den RAM und die zu übertragenden Daten. In der von mir verlinkten Quora-Frage wird in der oberen Antwort beispielsweise darauf hingewiesen, dass auf einem einfachen ESP8266- Chip MQTT ausgeführt werden kann, das nur über einen 80-MHz-Prozessor und weniger als 1 MB RAM verfügt. Ich bin gespannt, ob CoAP auf so etwas oder einer noch eingeschränkteren Umgebung ausgeführt werden kann.
Der Anwendungsfall, den ich mir vorstelle, besteht darin, dass das Gerät meistens Daten von einem anderen Gerät empfängt (z. B. Befehle zum Ein- und Ausschalten), aber möglicherweise selten (möglicherweise einige Male pro Stunde) Aktualisierungen mit dem Gerätestatus senden muss . Ich möchte so wenig Rechenleistung wie möglich verwenden, um die Gerätekosten zu senken, und relativ selten übertragen, um den Stromverbrauch so weit wie möglich zu senken.
quelle
Antworten:
CoAP und MQTT haben beide die gleiche RAM-Auslastung, gemessen in 10 KBit [1].
Der Unterschied liegt in der CPU- und Netzwerknutzung: [2]
CoAP hat also weniger Platzbedarf und scheint je nach Anwendungsfall (gelegentlich kleine Datenmengen) die beste Wahl zu sein.
Wie Sie bereits erwähnt haben, verwendet CoAP UDP. Es wird keine Datenlieferung garantiert. Trotzdem ist es unter verlustbehafteten Bedingungen "exzellent", während MQTT nur "gut" ist. Ich würde mir also keine großen Sorgen machen.
Quellen:
[1] http://embedded-computing.com/articles/internet-things-requirements-protocols/
[2] http://www.altencalsoftlabs.com/blogs/2016/08/08/analyzing-mqtt-vs-coap/
quelle