Recientemente leí una pregunta de Quora sobre si CoAP o MQTT es más liviano, pero las respuestas no parecen particularmente satisfactorias y todas se contradicen entre sí: la respuesta principal dice que MQTT requiere menos recursos, y otra a continuación dice que CoAP es menos exigente.
Por lo que he encontrado, tendría sentido que CoAP fuera menos exigente que MQTT , ya que CoAP solo requiere UDP, y sus mensajes son principalmente disparar y olvidar, a diferencia de MQTT que funciona a través de TCP (y, por lo tanto, sería mucho más) involucrado).
¿Qué protocolo requiere menos recursos para funcionar?
Por recursos, estoy pensando principalmente en la potencia del procesador, la RAM y los datos necesarios para transmitir. Por ejemplo, en la pregunta de Quora que vinculé , la respuesta principal señala que un simple chip ESP8266 podría ejecutar MQTT, que solo tiene un procesador de 80MHz y menos de 1MB de RAM. Tengo curiosidad por saber si CoAP podría ejecutarse en algo como esto, o en un entorno aún más limitado.
El tipo de caso de uso que estoy imaginando es donde el dispositivo recibiría principalmente datos de otro dispositivo (por ejemplo, comandos para encender / apagar), pero es posible que con poca frecuencia (tal vez algunas veces por hora) envíe actualizaciones con el estado del dispositivo . Me gustaría utilizar la menor potencia de procesamiento posible para reducir los costos del dispositivo y transmitir relativamente poca frecuencia para reducir el uso de energía tanto como sea posible.
fuente
Respuestas:
CoAP y MQTT tienen el mismo uso de RAM, medido en 10kbits [1].
La diferencia está en el uso de la CPU y la red: [2]
Por lo tanto, CoAP tiene menos huella y, según el caso de uso completo (datos pequeños de vez en cuando), parece ser su mejor opción.
Como lo mencionó, CoAP usa UDP. No garantiza la entrega de datos. Aún así, se desempeña 'excelente' en condiciones de pérdida, mientras que MQTT es solo 'bueno'. Entonces, no me preocuparía mucho por eso.
Fuentes:
[1] http://embedded-computing.com/articles/internet-things-requirements-protocols/
[2] http://www.altencalsoftlabs.com/blogs/2016/08/08/analyzing-mqtt-vs-coap/
fuente