MQTT和CoAP区别

 

MQTT

CoAP

传输层

TCP(可靠)

UDP(可能会丢包,不可靠)

工作模式

发布/订阅

请求/响应

报文头大小

2字节

4字节(二进制格式)

反向控制

适合

不适合

实时性控制

适合

不适合

功耗大小

都是低功耗,但MQTT>CoAP

  1. MQTT不支持带有类型或者其它帮助Clients理解的标签信息,也就是说所有MQTT Clients必须要知道消息格式。而CoAP内置发现支持和内容协商,这能允许设备互相窥测以找到合适的数据交换方式。
  2. MQTT是TCP长连接的,而CoAP是UDP无连接的。MQTT Clients与Broker之间保持TCP长连接,这种情形在NAT环境中也不会产生问题。若在NAT环境下使用CoAP的话,那就需要采取一些NAT穿透性手段。
  3. MQTT是多个客户端通过中央代理进行消息传递的多对多协议,主要通过让发布者发布消息,代理暂存并发送给多个订阅者消费,解耦了发布者和订阅者,MQTT相当于消息传递的实时通讯总线。CoAP基本上就是一个在Server和Client之间传递状态信息的单对单协议(多个Clients和一个Server也行,多对单协议)。
  4. MQTT协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
  5. 两者都是针对设备、条件、环境受限的物联网场景的物联网应用层协议。

你可能感兴趣的:(MQTT和CoAP,MQTT,物联网协议,物联网)