MQTT 和 CoAP 哪个最可能成为未来物联网通信标准协议?

2019-12-09 19:55:04 浏览数 (1)

近日,腾讯无线网络与物联网技术负责人李秋香与高校科研教授、产业链、运营商等各行业的嘉宾一起参与了知乎「 科技共振之 5G 」活动,除了专业的5G探讨,也聊了不少和开发者们息息相关的问题。基于此,腾讯云开发者社区联手知乎科技,从知乎超过 10000 条 5G 相关问答中精选内容落地社区专题「 共探 5G 」。

本文为知乎用户刘凯关于“ MQTT 和 CoAP 哪个最可能成为未来物联网通信标准协议?”的内容分享。

问题:MQTT 和 CoAP 哪个最可能成为未来物联网通信标准协议?

MQTT是IBM开发的一个即时通讯协议,基于TCP的,号称是可以支持所有的平台。 CoAP是运行于UDP之上的,并且非常的小巧,最小只有4个字节。 可以说两者都是营运物联网大趋势和为了适应M2M而生的,相比于其他的通信协议也有较大的优势。

以上是最近两者的Google trends。 话说国外貌似这两个协议非常的火啊,hivemq等等一堆啥啥mq,还有pubnub、xively,CoAP也有一大群真粉,但国内貌似不太感冒,唯一知道的是 云巴用的mqtt,呃。。。貌似跑题了。 如上,在如今物联网如火如荼各种造势的时代,真正实现智能,M2M是必不可少的,而MQTT和CoAP哪个最可能成为未来物联网的标准协议呢?或者有其他更有潜力的通信协议?

回答:我现在认为CoAP和MQTT的协议除了考虑设备的TCP/UDP堆栈实现能力和对设备的压力之外,更加重点的考虑点是:

  1. 服务器架构和开发成本?
  2. 应用本身数据流向,流量,频率,持久的需求?
  3. 长连接还是短连接?
  4. 数据分享API的需求?

MQTT,其实就是IBM把服务器间异步通讯用的消息队列Message Queue(MQ)中间件前置到IOT接入而已。天生适合多对多(服务器对服务器,设备对服务器,设备对APP),异步,后台应用,以及即时通讯(多客户端对等)场景。不过就是约定了报文头而已。自己用Redis PubSub/MQ也可以构建。最简单的IOT架构:Device MQTT APP,如果不存储数据的话。需要数据持久可以是:Device MQTT Web/APP DB(NoSQL/NewSQL/BigData/Lambda) APP。

CoAP,基于UDP接口,参考HTTP上的REST API,适合数据采集这种多(设备)对一(服务器) 场景,系统架构类似于传统Web。但是CoAP UDP不是面对连接的,所以方向控制需要高层构建协议。CoAP支持多播,也可以实现一对多场景,但是好像和MQTT不一样。应该是局域网内的多播?了解的兄弟请提点一下。但总的网站架构迎来类似于传统Web:CoAP Web DB APP。弱势是,数据必须流经DB转给第三方。当然,如果Web内部有MQ,可以通过REST API暴露给第三方。变成: CoAP Web DB APP Redis/MQ REST APP

请观察最近的BAT动向,都把MQTT作为物联网前置接入套件单列出来作为标准云服务提供。阿里云物联网套件,百度开放云物联网服务IOT,腾讯QQ物联平台,中移动OneNet开放云,Amazon IOT服务......更别提环信,野狗之类原来做IM云服务的,都将MQTT作为IM/IOT共享的接入服务了。

MQTT还有一点:长连接。采用长连接MQTT还是无连接CoAP,和应用数据属性有关。是维持大量非活动长连接消耗大,还是大量UDP包对于服务器消耗大,我一直没有得到结论。反正我从Windows发起大量UDP压测,总是报给我操作系统端口不够的一个错误。

我之前的架构是:Socket Web DB(Redis/SQL) APP,现在不得不将Redis作为沟通Socket/Web的通道,和第三方APP/Sever的通道。但用Redis PubSub构建实现起来很麻烦。而且也不是标准实现,客户实施的周期反而不如MQTT。所以准备改造成为上述MQTT协议方式。

【更新】

CoAP大体上是采用数据报方式,可以基于UDP,短消息,以及6LowPAN等传输层。而且大体上在WSN内部可以使用。不过由于CoAP也可以用于网关与云之间通讯,所以现在出现了CoAP over TCP的草案。不过,我觉得该草案受到CoAP RFC7252的约束太多,所以我和客户约定了一个版本,私底下命名为CoTCP(CoAP over TCP)。呵呵,私有的协议。但是保留了面向资源的REST风格。

作者:刘凯

链接:https://www.zhihu.com/question/34767514/answer/87340564

来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 人点赞