MQTTCoAP 还是 LwM2M?主流物联网协议如何选择

Posted CNCF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MQTTCoAP 还是 LwM2M?主流物联网协议如何选择相关的知识,希望对你有一定的参考价值。

等即时聊天程序都是基于 XMPP 的。

但由于 XMPP 依赖 XML 协议,放在 IoT 场景里过重,因此基本不适合物联网传输使用



结语

横向来看,物联网在几乎所有行业都有广泛的应用场景,每个行业有不同的工况和组网模式;从纵向来看,物联网系统涵盖了传感器/控制设备,数据接入、传输、路由交换组件以及数据的存储处理整个软硬件链条,每个环节都有需要合理、高效的技术方案。

当前物联网协议呈现多元化发展,不同行业和场景适用不同的协议,在相同的场景下也能够有多个协议可供选择,没有任何协议能够在市场上占有统治地位,各种协议之间存在一定的互补效应。

因此,要实现物联网设备和数据的互联互通,关键点并不在与协议的统一,而在于不同协议之间的互联互通、上层业务应用层协议的统一。

EMQ 致力于解决物联网设备数据连接问题。

核心产品 EMQ X 物联网消息服务器可以通过开放标准的 MQTT、CoAP 和 LwM2M 协议连接任何设备,对于诸如工业场景中工业协议复杂多样的情况,也可通过边缘工业协议网关软件 Neuron 转换成统一的 MQTT 协议接入,满足绝大多数物联网场景下的数据采集需求,为企业的物联网业务提供高效可靠的数据接入层。

作者简介:

李国伟,EMQ X 产品经理,以用户体验和集成能力驱动 EMQ X 开发。

We are hiring! Join us and Code the Future together.

► EMQ 2021 全球招聘季

简历投递邮箱:hr@emqx.io

EMQ HR


点击"阅读原文",了解 EMQ X

↓↓↓

文章转载自EMQ中文社区点击这里阅读原文了解更多

CNCF概况(幻灯片)

扫描二维码联系我们!



CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。

到2021年7月物联网协议有以下主流协议

1. MQTT协议

MQTT协议(Message Queue Telemetry Transport,消息队列遥测传输协议)是IBM的Andy Stanford-Clark和Arcom的Arlen Nipper于1999年为了一个通过卫星网络连接输油管道的项目开发的。为了满足低电量消耗和低网络带宽的需求,MQTT协议在设计之初就包含了以下几个特点:

实现简单

提供数据传输的QoS

轻量、占用带宽低

可传输任意类型的数据

可保持的会话(Session)

随着多年的发展,MQTT协议的重点不再只是嵌入式系统,而是更广泛的物联网世界。

简单来说,MQTT协议有以下特性:

基于TCP协议的应用层协议

采用C/S架构

使用订阅/发布模式,将消息的发送方和接受方解耦

提供3种消息的QoS(Quality of Service):至多一次、最少一次、只有一次

收发消息都是异步的,发送方不需要等待接收方应答

MQTT协议的架构由Broker和连接到Broker的多个Client组成,如图2-1所示。

MQTT协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通信保障。而它在移动互联网领域也大有作为,很多Android App的推送功能都是基于MQTT协议实现的,一些IM的实现也是基于MQTT协议的。

2. MQTT-SN协议

MQTT-SN(MQTT for Sensor Network)协议是MQTT协议的传感器版本。MQTT协议虽然是轻量的应用层协议,但是MQTT协议是运行于TCP协议栈之上的,TCP协议对于某些计算能力和电量非常有限的设备来说,比如传感器,就不太适用了。

MQTT-SN运行在UDP协议上,同时保留了MQTT协议的大部分信令和特性,如订阅和发布等。MQTT-SN协议引入了MQTT-SN网关这一角色,网关负责把MQTT-SN协议转换为MQTT协议,并和远端的MQTT Broker进行通信。MQTT-SN协议支持网关的自动发现。MQTT-SN协议的通信模型如图2-2所示。

3. CoAP协议

CoAP(Constrained Application Protocol)协议是一种运行在资源比较紧张的设备上的协议。CoAP协议通常也是运行在UDP协议上的。

CoAP协议设计得非常小巧,最小的数据包只有4个字节。CoAP协议采用C/S架构,使用类似于HTTP协议的请求-响应的交互模式。设备可以通过类似于coap://192.168.1.150:5683/2ndfloor/temperature的URL来标识一个实体,并使用类似于HTTP的PUT、GET、POST、DELET请求指令来获取或者修改这个实体的状态。

同时,CoAP提供一种观察模式,观察者可以通过OBSERVE指令向CoAP服务器指明观察的实体对象。当实体对象的状态发生变化时,观察者就可以收到实体对象的最新状态,类似于MQTT协议中的订阅功能。CoAP协议的通信模型如图2-3所示。

4. LwM2M协议

LwM2M( Lightweight Machine-To-Machine )协议是由Open Mobile Alliance(OMA)定义的一套适用于物联网的轻量级协议。它使用RESTful接口,提供设备的接入、管理和通信功能,也适用于资源比较紧张的设备。LwM2M协议的架构如图2-4所示。

LwM2M协议底层使用CoAP协议传输数据和信令。而在LwM2M协议的架构中,CoAP协议可以运行在UDP或者SMS(短信)之上,通过DTLS(数据报传输层安全)来实现数据的安全传输。

LwM2M协议架构主要包含3种实体——LwM2M Bootstrap Server、LwM2M Server和LwM2M Client。

LwM2M Bootstrap Server负责引导LwM2M Client注册并接入LwM2M Server,之后LwM2M Server和LwM2M Client就可以通过协议指定的接口进行交互了。

5. HTTP协议

正如我们之前所讲,物联网也是互联网,HTTP这个在互联网中广泛应用的协议,在合适的环境下也可以应用到物联网中。

在一些计算和硬件资源比较充沛的设备上,比如运行安卓操作系统的设备,完全可以使用HTTP协议上传和下载数据,就好像在开发移动应用一样。设备也可以使用运行在HTTP协议上的WebSocket主动接收来自服务器的数据。

6. LoRaWAN协议

LoRaWAN协议是由LoRa联盟提出并推动的一种低功率广域网协议,它和我们之前介绍的几种协议有所不同。MQTT协议、CoAP协议都是运行在应用层,底层使用TCP协议或者UDP协议进行数据传输,整个协议栈运行在IP网络上。而LoRaWAN协议则是物理层/数据链路层协议,它解决的是设备如何接入互联网的问题,并不运行在IP网络上。

LoRa(Long Range)是一种无线通信技术,它具有使用距离远、功耗低的特点。在上面的场景下,用户就可以使用LoRaWAN技术进行组网,在工程设备上安装支持LoRa的模块。

通过LoRa的中继设备将数据发往位于隧道外部的、有互联网接入的LoRa网关,LoRa网关再将数据封装成可以在IP网络中通过TCP协议或者UDP协议传输的数据协议包(比如MQTT协议),然后发往云端的数据中心。

7. NB-IoT协议

NB-IoT(Narrow Band Internet of Things)协议和LoRaWAN协议一样,是将设备接入互联网的物理层/数据链路层的协议。

与LoRA不同的是,NB-IoT协议构建和运行在蜂窝网络上,消耗的带宽较低,可以直接部署到现有的GSM网络或者LTE网络。设备安装支持NB-IoT的芯片和相应的物联网卡,然后连接到NB-IoT基站就可以接入互联网。而且NB-IoT协议不像LoRaWAN协议那样需要网关进行协议转换,接入的设备可以直接使用IP网络进行数据传输。

NB-IoT协议相比传统的基站,增益提高了约20dB,可以覆盖到地下车库、管道、地下室等之前信号难以覆盖的地方。

8. DDS协议

这个协议是实时通讯的,它的安全性很高,而且因为能够实时的传输数据,所以在某些重要场合比如说航空、工业等等行业里应用就比较的广泛了,其中很重要的一点就是它的优点。

9.AMQP协议

一般在金融行业里面,这个协议就比较流行,它可以让手持的设备和后台的诗句中性完成通讯,不过现在它会在更多的领域里使用到,其互操作性是很强的。

10.XMPP协议

这也是一个事实通讯的协议,但一般会在网络的管理,游戏服务器、远程的系统监控方面使用,它可以扩展,同时也是开源的。

11.JMS协议

专门用于java的一种物联网的协议,能够让两个不同的程序之间完成通讯,可异步通讯,而且大部分的MOM都是可以对JMS提供支持的。

以上是关于MQTTCoAP 还是 LwM2M?主流物联网协议如何选择的主要内容,如果未能解决你的问题,请参考以下文章

LWM2M 协议简介

我的物联网成长记7物联网主流通信协议解读华为云分享

LWM2M简介

lwm2m入门知识-学习记录

IoT协议LwM2M MQTT与CoAP

CoAP 和 LwM2M 有何不同?