设备接入协议简介
规范背景
1.1 规范概要
网关设备采用MQTT协议接入, 本文档规范主要陈述MQTT Topic规则和MQTT接入ClientID的规则设计
MQTT协议版本: V3.1.1
一条完整的MQTT消息至少包含Topic和数据payload两部分, 本规则同时定义Topic对应的payload数据帧协议
1.2 MQTT协议特征
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合
对负载内容屏蔽的消息传输
使用 TCP/IP 提供网络连接
有三种消息发布服务质量
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制
MQTT拓扑示意:
1.3 初步接入建议
网关终端均使用MQTT协议接入云端
开启MQTT终端的接入鉴权以及可授权的Topic访问限制
设备连接安全和数据安全详见后续章节描述
1.4 阅读说明
本文可用于指导设备层的数据接入和数据平台的数据接入解析, 即同时指导物联网终端设备的数据开发者和云数据平台的开发者.
基础术语定义
上行: 指数据从设备端到Server端的流向 (配合设备端的Publish操作)
下行:指数据从Server到设备端的流向(需要设备端先Subscribe相关Topic,来接受服务器端数据的下行)
数据网关: 对终端设备、传感器节点等进行数据采集,并负责向网络转发的网关设备
终/设备: 指各种被数据网关检测采集的节点、设备、传感器等
订阅/subscribe: 为MQTT协议对应的subscribe操作
发布/publish: 为MQTT协议对应的publish操作
MQTT协议接入定义
MQTT协议使用v3.1.1版本, 为了物联网设备和云端数据接入平台能够正常的通讯和递交数据, 我们需要在这些方面进行约定:
物联网设备接入ClientID规则约定: 用于数据接入平台识别连接来自哪台物联网设备,并且避免重名Client出现
订阅/发布使用的Topic约定: 这是MQTT数据生产者和消费者找到几方所关心数据的钥匙
MQTT数据负荷(payload)的格式约定: 数据生产消耗双方才能正确的发布和解析出数据类容; 格式需要反应出明确的解析规则, 包括数据是否使用加密传输或是二进制明文传输
接入权限: 物联网设备接入云端数据平台需要授权, 否则应拒绝接入, 可使用MQTT协议本身支持的账号密码授权接入方式,并能限制每类接入终端的Topic访问/操作权限
协议其他配置: 包括遗愿、Qos等