分享

物联网应用层协议究竟哪家强?

 懒人葛优瘫 2017-05-24

导语

随着工业4.0、智能城市以及智能家居等产业的发展,物联网项目需求越来越多,物联网的协议也各式各样。常用的物联网应用层协议包括XMPP、HTTP、CoAP、MQTT等。那么物联网应用层协议究竟哪家强?

物联网应用层协议究竟哪家强?


因为物联网的终端节点一般都是存储和带宽受限的嵌入式设备,太复杂的协议不太适合嵌入式系统应用。比如XMPP基于XML,对于嵌入式设备来说,XML解析是非常困难的。另外HTTP协议对于嵌入式设备来说也有点重了。所以比较适合嵌入式设备就是轻量级的MQTT和CoAP。

MQTT协议

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议。MQTT协议是IBM开发的一个即时通讯协议,该协议支持所有平台,几乎可以把所有联网物品和互联网连接起来。

物联网应用层协议究竟哪家强?

一个基于MQTT的物联网实例

CoAP协议

由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于UDP的CoAP协议。

物联网应用层协议究竟哪家强?

CoAP与HTTP的对比

CoAP是6LowPAN协议栈中的应用层协议,基于REST(表述性状态传递)架构风格,支持REST交互。用户可以像使用HTTP协议一样用CoAP协议来访问物联网设备。

MQTT与CoAP的比较

MQTT和CoAP都是非常有用的物联网协议,但两者还是有很大区别的,比如MQTT基于TCP,而CoAP基于UDP。从应用角度来说,主要的区别有以下几点:

1、多对多 VS 单对单。MQTT是多个客户端通过中央代理传递消息的多对多协议。它通过让客户端发布消息、代理决定消息路由和复制来解耦生产者和消费者。MQTT相当于是消息传递的实时通讯总线。CoAP基本上是一个在Client和Server之间传递状态信息的单对单协议。

2、长连接 VS 无连接。MQTT Clients与Broker之间保持TCP长连接,这个在NAT环境中也不会有问题。如果在NAT环境下使用CoAP,需要使用采取一些NAT穿透的手段。

3、是否可协商消息格式。MQTT不支持带有类型或者其它帮助Clients理解的标签消息,也就是说 所有MQTT Clients必须知道消息格式。而CoAP则相反,它内置内容协商和发现支持,这样允许设备彼此窥测以找到交换数据的方式。


结语

从目前的应用广泛性来看,MQTT占优。目前国内外主要的云计算服务商,比如AWS、AZure、阿里云、腾讯云以及百度云都一概支持MQTT协议。

这里有一个比较重要的原因是MQTT协议的成熟时间比CoAP要早,所以MQTT具有一定的先发优势。但也不排除后续物联网平台会兼容更多的物联网应用层协议。

另外随着终端设备计算能力的提升,终端设备也有可能容纳更加复杂的协议栈,HTTP等其他目前广泛应用的协议也有较大的应用前景。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多