物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。
常用的物联网通讯协议进行归纳总结分为四大种类,见下图:
还有一种是物联网的通讯应用协议,常见的有
AMQP:先进消息队列协议,用于业务系统例如PLM,ERP,MES等进行数据交换。 范围:最早应用于金融系统之间的交易消息传递,在物联网应用中,主要适用于移动手持设备与后台数据中心的通信和分析,
JMS:即消息服务,这是JAVA平台中薯名的消息队列协议,范围:Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的AP1,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
REST/HTTP: REST即表述性状态传递,是基于HTTP协议开发的一种通信风格。 范围:REST/HTTP主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。因此适合在物联网的应用层面,通过REST开放物联网中资源,实现服务被其他应用
COAP:(Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。 CoAP是6LovPAN协议栈中的应用层协议,它适用于范围:C6AP是简化了HTTP协议的RESTful API,在资源受限的通信的IP网络。
DDS:面向实时系统的数据分布服务范国:分布式高可靠性、实时传输设备数据通信。目前DDS已经广泛应用于国防、民航、工业控制等领域。
MQTT:(Message Queuing Telemetry Transport)消息队列遥测传输,由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议,MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。 远程设备的数据传输和监控,范围:在低带宽、不可靠的网络下提供基于云平台的
这里扩展下,以上协议都是根据OSI七层模型来的,有兴趣的同学可以去百度下,这里不做讲解。
针对不同应用层协议,根据架构风格、QoS、消息方式、互操作、传输层、订阅/控制方式、实时性、编码方式等维度统计并比较了差异性及特点,如下表: