51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1734|回复: 0
打印 上一主题 下一主题

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

[复制链接]

 成长值: 15655

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-9-16 17:45:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    导语


    随着工业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等其他目前广泛应用的协议也有较大的应用前景。

    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-2-7 21:19 , Processed in 0.070235 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表