物联网入门之常见的物联网协议丨【拜托了,物联网!】

举报
lwq1228 发表于 2021/10/18 16:47:35 2021/10/18
【摘要】 本博文将简单介绍一些常见的物联网协议,包括物理层协议、数据链路层协议和应用层协议。 一、MQTT协议MQTT协议(Message Queue Telemetry Transport,消息队列遥测传输协议)是IBM的Andy Stanford-Clark和Arcom的Arlen Nipper于1999年为了一个通过卫星网络连接输油管道的项目开发的。为了满足低电量消耗和低网络带宽的需求,MQTT...

本博文将简单介绍一些常见的物联网协议,包括物理层协议、数据链路层协议和应用层协议。

一、MQTT协议

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

  • 实现简单;
  • 提供数据传输的QoS;
  • 轻量、占用带宽低;
  • 可传输任意类型的数据;
  • 可保持的会话(Session)。

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

  • 基于TCP协议的应用层协议;
  • 采用C/S架构;
  • 使用订阅/发布模式,将消息的发送方和接受方解耦;
  • 提供3种消息的QoS(Quality of Service):至多一次、最少一次、只有一次;
  • 收发消息都是异步的,发送方不需要等待接收方应答。

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

二、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协议支持网关的自动发现。

三、CoAP协议

CoAP(Constrained Application Protocol)协议是一种运行在资源比较紧张的设备上的协议。和MQTT-SN协议一样,CoAP协议通常也是运行在UDP协议上的。CoAP协议设计得非常小巧,最小的数据包只有4个字节。

CoAP协议采用C/S架构,使用类似于HTTP协议的请求-响应的交互模式。设备可以通过类似于coap://ip:端口/xxxx的URL来标识一个实体,并使用类似于HTTP的PUT、GET、POST、DELET请求指令来获取或者修改这个实体的状态。同时,CoAP提供一种观察模式,观察者可以通过OBSERVE指令向CoAP服务器指明观察的实体对象。当实体对象的状态发生变化时,观察者就可以收到实体对象的最新状态,类似于MQTT协议中的订阅功能。

四、LwM2M协议

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

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

LwM2M协议架构主要包含3种实体——LwM2M Bootstrap Server、LwM2MServer和LwM2M Client。LwM2M Bootstrap Server负责引导LwM2M Client注册并接入LwM2M Server,之后LwM2M Server和LwM2M Client就可以通过协议指定的接口进行交互了。

五、HTTP协议

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

六、LoRaWAN协议

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

说到设备如何接入互联网,我们很自然地想到4G、Wi-Fi,如果设备上有4G/Wi-Fi模块,或者支持以太网的网卡,就可以和其他联网终端,比如手机,以同样的方式接入互联网。但是在某些情况下,4G或者Wi-Fi网络的覆盖非常困难,比如隧道施工的工程设备往往处于隧道深处几千米处,不可能用Wi-Fi或者4G网络覆盖。而工程设备经常在移动,使用有线网络与现场环境也不匹配。

LoRa(Long Range)是一种无线通信技术,它具有使用距离远、功耗低的特点。在上面的场景下,用户就可以使用LoRaWAN技术进行组网,在工程设备上安装支持LoRA的模块。通过LoRa的中继设备将数据发往位于隧道外部的、有互联网接入的LoRa网关,LoRa网关再将数据封装成可以在IP网络中通过TCP协议或者UDP协议传输的数据协议包(比如MQTT协议),然后发往云端的数据中心。

七、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,可以覆盖到地下车库、管道、地下室等之前信号难以覆盖的地方。

【拜托了,物联网!】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/299476

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。