> 物联网中设备、网关、云以及服务之间的相互通信是按照一定的通信协议进行的。大多数的IP协议应用都使用了TCP或UDP进行传输。而在许多物联网应用中,有几种消息分发功能是常见的,希望这些功能可以通过不同的应用以可互操作的标准方式来实现。本文盘点整理下目前比较常用到的一些物联网中的“会话层”协议。
## MQTT
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)最初在1999年由IBM推出,2013年OASIS对其进行了标准化,使其成为了一种开放标准。这是一个发布/订阅,非常简单和轻量级的消息协议,专为受限设备和低带宽、高延迟或不可靠的网络而设计。设计原则是尽量减少网络带宽和设备资源需求,同时也要确保可靠性和一定程度的传送保证。这些原则也使得协议成为连接设备中新兴的“机器对机器”(M2M)或“物联网”行业以及带宽和电池电量非常重要的移动应用的理想选择。
另外,还有针对物联网安全扩展的SMQTT(Secure MQTT)和针对传感网络的MQTT-SN(for sensor networks)。
## AMQP
AMQP (Advanced Message Queuing Protocol,高级消息队列协议) 是用于业务消息的开放互联网协议。AMQP由几层组成。最低层定义了用于在网络上的两个进程之间传输消息的高效的二进制对等协议。在此之上,消息传递层使用具体的标准编码来定义抽象消息格式。每个合规的AMQP进程必须能够以这种标准编码发送和接收消息。AMQP连接系统,为业务流程提供所需的信息,并可靠地传输实现其目标的指令。
## CoAP
CoAP (Constrained Application Protocol,受限应用协议)是一个专门的网络传输协议,用于受限的节点和网络。 节点通常具有少量ROM和RAM的单片机。 该协议专为机器对机器(M2M)应用而设计,如智能能源和楼宇自动化。
### XMPP
XMPP (Extensible Messaging and Presence Protocoll,可扩展通讯和表示协议)是一种用于实时通信的开放式XML技术、支持即时消息、在线状态和协作等广泛的应用。
## DDS
DDS (Data Distribution Service,数据分发服务)是来自对象管理组(OMG)的以数据为中心的连接的中间件协议和API标准。 它将系统的组件集成在一起,提供低延迟的数据连接,极高的可靠性和业务和任务关键型物联网(IoT)应用所需的可扩展架构。
## LwM2M
LwM2M (Lightweight M2M,轻量级M2M) 是开放移动联盟(OMA)的LightweightM2M,是为传感器网络和机器对机器(M2M)环境的需求而设计的设备管理协议。 LwM2M协议是为远程管理M2M设备和相关服务实现而设计的,其特点是基于REST的现代架构设计,定义了一个可扩展的资源和数据模型,并建立在一个称为约束应用协议(CoAP)的高效安全数据传输标准之上。 LwM2M由开放移动联盟设备管理工作组的一组行业专家制定,并基于IETF的协议和安全标准。
## REST/HTTP
REST/HTTP(Representational State Transfer,表述性状态传递)web服务是互联网上计算机系统之间互操作性的一种方式。
## SOAP
SOAP (Simple Object Access Protocol)是在计算机网络中实现网络服务时交换结构化信息的协议规范。 它的目的是引导可扩展性,中立性和独立性。 它使用XML信息集作为其消息格式,依靠应用层协议(通常是超文本传输协议HTTP或简单邮件传输协议SMTP)进行消息协商和传输。
## STOMP
面向简单文本的消息传递协议