什么是物联网?常见 IoT 物联网协议最全讲解( 二 )


  • 智慧城市
  • 智慧建筑
  • 车联网
  • 智慧社区
  • 智能家居
  • 智慧医疗
  • 工业物联网
在不同的场景下 , 物联网应用的差异非常大 , 终端和网络架构的异构性强 , 这意味着在物联网行业存在足够多的细分市场 , 这就很难出现一家在市场份额上具有统治力的公司 , 同时由于市场够大 , 所以能够让足够多的公司存活 。 这种情况在互联网行业是不常见的 , 互联网行业的头部效应非常明显 , 市场绝大部分份额往往被头部的两三家公司占据 。
物联网模式相对于互联网模式来说更“重”一些 。 物联网的应用总是伴随着前端设备 , 这也就意味着用户的切换成本相对较高 , 毕竟拆除设备、重新安装设备比动动手指重新下载一个应用要复杂不少 。 这也就意味着 , 资本的推动力在物联网行业中相对更弱 。 如果你取得了先发优势 , 那么后来者想光靠资本的力量赶上或者将你挤出市场 , 那他付出的代价要比在互联网行业中大得多 。
所以说 , 物联网行业目前仍然是一片蓝海 , 小规模公司在这个行业中也完全有能力和大规模公司同台竞争 。 在AI和区块链的热度冷却后 , 物联网很有可能会成为下一个风口 。 作为程序员 , 在风口来临之前 , 提前进行一些知识储备是非常有必要的 。
二、常见的物联网协议
2.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所示 。
什么是物联网?常见 IoT 物联网协议最全讲解文章插图
MQTT协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通信保障 。 而它在移动互联网领域也大有作为 , 很多Android App的推送功能都是基于MQTT协议实现的 , 一些IM的实现也是基于MQTT协议的 。
2.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所示 。
什么是物联网?常见 IoT 物联网协议最全讲解文章插图
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所示 。
什么是物联网?常见 IoT 物联网协议最全讲解文章插图
2.4 LwM2M协议
LwM2M( Lightweight Machine-To-Machine )协议是由Open Mobile Alliance(OMA)定义的一套适用于物联网的轻量级协议 。 它使用RESTful接口 , 提供设备的接入、管理和通信功能 , 也适用于资源比较紧张的设备 。 LwM2M协议的架构如图2-4所示 。