物联网协议从设备管理的需求而来,通常包括数据通信协议、命令控制协议、诊断协议、升级服务协议、长期在线协议、安全协议。
物联网协议-数据通信协议
数据通信协议是指数据如何从物联网终端控制设备到物联网网关,最后到云端服务器这样一个链路上保证数据能够高效地传输。由于物联网终端控制设备到物联网网关、物联网网关到云服务器使用的通信通常不一样,一个物联网网关可能管理多个物联网终端控制设备,因此协议也需要对局域物联网和广域物联网进行区分。局域物联网尽量减少广播报文,增加每个控制终端的路由和查找功能。局域物联网内也要有好的机制避免网络阻塞情况的发生,因为物联网终端控制设备是永远在线,因此避免阻塞非常重要。
物联网协议-诊断协议
诊断协议是指在设计协议之初就要把诊断协议和诊断工具放在第一位,这样在物联网实施过程中才能快速地部署网络和定位问题,提高系统可靠性。
物联网协议-升级服务协议
升级服务协议是指设备和系统安装后,随着云端服务功能的增加,需要终端做出相应的调整,尤其对于物联网设备来说,数量终端和设备安装麻烦,因此通过软件系统的升级来完成这一工作显得尤为重要。
物联网协议-长期在线协议
长期在线协议与其说是协议不如说是各种集成方法,局域物联网中保持链路的长期在线是容易的,但是由于网关的各种限制,例如运营商是不允许GPRS设备永远在线的,还有就是物联网终端控制设备Crash后,或者网络质量差时该如何保证长期在线的状态。因此我们将长期在线协议进行两个方面的考虑:一个是协议层次不断地发送心跳,保持服务器的状态更新,另一方面是设计自动恢复机制,能够在设备处于异常状态时快速恢复到初始化状态,和云端服务器能够重新建立链接。
物联网协议-安全协议
安全协议目前忽略的较多,由于之前的工控设备用MCU实现,因此大部分没有网络连接也就不会有安全问题,但是随着物联网化的升级,在线是基础要求,因此设计不同等级的安全协议也是必要的,但是物联网的数据和终端非常多,安全协议设计也不能像传统互联网安全协议那样复杂。
MQTT是目前认为比较好的物联网通信协议,MQTT协议是为大量计算能力有限、工作在低带宽、不可靠的网络的远程传感器和控制设备通信而设计的协议,它具有以下主要的几项特性。
1、使用发布订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
2、对负载内容屏蔽的消息传输。
3、使用TCP/IP提供网络连接。
4、有3种消息发布服务质量。
至多一次:消息发布完全依赖底层TCP/IP网网络,会发生消息丢失或重复。这一级别可用于如下情况:环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
至少一次:确保消息到达,但消息重复可能会发生。
只有一次:确保消息到达一次。这一级别可用于如下情况:在计费系统中,消息重复或丢失导致不正确的结果。
5、小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。
6、使用Last Will和Testament特性通知有关各方客户端异常中断的机制。
但是协议就实现上来说存在对终端设备要求高,也没有考虑局域物联网和广域物联网不同的环境,因此对智能硬件比较合适,对大量终端的物联网终端设备还有待提升。