物联网相关通讯协议

发表于 物联网知识  |  标签 , , ,

概述

通信协议

物联网(IoT)被表示为一个全球网络,它智能地连接所有对象,无论是设备,系统还是人类,它具有基于标准和可互操作的协议和格式的自我配置功能。通过智能传感器、识别技术和计算,物联网被称为继计算机和互联网之后的信息浪潮。物联网支持数百种协议。在众多协议中,无线协议在物联网开发中发挥着重要作用。我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信;

由于物联网接口类型的多样性,而导致其通讯协议也是很多样化的。每一种通讯协议会有各自的适用范围;比如AMQP、JMS、REST/HTTP都是工作在以太网的应用环境中。由于互联网的基础协议是TCP/IP;导致http通讯协议应用非常广泛,其开发成本低,开放程度较高;因此很多物联网的应用也是基于http协议进行开发;在传统web技术基础上构建物联网协议标准.工业物联网的协议非常多,这里只列出我们在工业物联网常用的应用层协议:

MQTT协议

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式(取代之前互联网方式常用的申请/回复)的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,已经成为物联网的一个标准协议。在很多情况下,由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景,包括条件受限的环境中,如:机器与机器(M2M)通信和物联网(IoT),在通过卫星链路通信遥感数据、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用

MQTT 的主要优点是:

轻量级且高效,可最大限度地减少客户端和网络带宽所需的资源。
支持设备和服务器之间的双向通信。此外,还可以将消息广播到事物组。
可扩展到数百万个事物。
指定服务质量 (QoS) 级别以支持消息可靠性。
支持设备和服务器之间的持久会话,从而减少在不可靠网络上所需的重新连接时间。
可以使用 TLS 对消息进行加密,并支持客户端身份验证协议。

CoAP协议

CoAP约束应用协议(Constrained Application Protocol)是一种在物联网世界的类Web协议,由于无线物联网中的设备很多都是资源受限型的,这些设备只有少量的内存空间和有限的计算能力。为此,IETF(Intemet Engineering Task Force)的CoRE(Constrained RESTful Environment)工作组为受限节点制定相关的REST(Representational State Transfer)形式的应用层协议。适用于局域网环境下一对一M2M通信;例如需要通过标准互联网网络进行远程控制或监控的小型低功率传感器,开关,阀门和类似的组件,服务器对不支持的类型可以不响应

CoAP 是一种服务层协议,用于资源受限的 Internet 设备,如无线传感器网络节点。CoAP 旨在轻松转换为 HTTP 以简化与 Web 的集成,同时还满足多播支持、非常低的开销和简单性等特殊要求。多播、低开销和简单性对于物联网(IoT)和机器对机器(M2M)通信非常重要,它们往往是深度嵌入的,并且具有比传统互联网设备少得多的内存和电源。因此,效率非常重要。CoAP 可以在大多数支持 UDP 或 UDP 模拟的设备上运行

AMQP协议(互操作性)

AMQP(Advanced Message Queuing Protocol),先进消息队列协议,用于业务系统例如PLM,ERP,MES等进行数据交换;最早应用于金融系统之间的交易消息传递,在物联网应用中,主要适用于移动手持设备与后台数据中心的通信和分析.

AMQP 是一种二进制应用层协议,旨在有效地支持各种消息传递应用程序和通信模式。它提供流控制,面向消息的通信,具有消息传递保证,例如最多一次(每条消息传递一次或从不发送),至少一次(每条消息肯定会被传递,但可以多次传递)和恰好一次(消息总是肯定会到达并且只这样做一次),以及基于SASL和/或的身份验证和/或加密断续器。它假设了一个底层可靠的传输层协议,如传输控制协议(TCP)。

AMQP规范分为几个层:(1)类型系统,(2)用于将消息从一个进程传输到另一个进程的对称异步协议,(3)标准的,可扩展的消息格式和(4)一组标准化但可扩展的“消息传递功能”

REST/HTTP(松耦合服务调用)

在物联网的应用层面,经常通过 REST/HTTP 开放物联网中资源,实现服务被其他应用所调用。其用于实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟.

好的方面:1,简单、灵活和易于扩展.2,拥有成熟的生态规范;3.无状态协议,利于实现分布式集群化。
不好的方面:明文传输,所有数据可以轻松获取。无法效验通信双方的身份。导致恶意访问。无法证明报文的完整,有可能被篡改

DDS协议(高可靠性、实时)

DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务;DDS很好地支持设备之间的数据分发和设备控制,设备和云端的数据传输,同时DDS的数据分发的实时效率非常高,能做到秒级内同时分发百万条消息到众多设备。

OMG是一个计算机行业标准联盟;由11家公司(包括Hewlett-Packard,IBM,Sun Microsystems,Apple Computer,American Airlines,iGrafx和Data General)于1989年创立;负责DDS的版本发布和维护

DDS 是一种网络中间件,可简化复杂的网络编程。它实现了一种发布-订阅模式,用于在节点之间发送和接收数据、事件和命令。生成信息的节点(发布者)创建“主题”(例如,温度,位置,压力)并发布“样本”。DDS 将示例提供给声明对该主题感兴趣的订阅者

DDS在服务质量(QoS)上提供非常多的保障途径,可满足航空航天和国防、空中交通管制、自动驾驶汽车、医疗设备、机器人、发电、仿真和测试、智能电网管理、运输系统以及其他需要实时数据交换的应用的需求。

XMPP协议(即时通信)

XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,最初名为Jabber;一个开源形式组织产生的网络即时通信协议;专为即时消息(IM),状态信息和联系人列表维护而设计。基于XML(可扩展标记语言),它支持在两个或多个网络实体之间近乎实时地交换结构化数据。该协议旨在实现可扩展性,在面向消息的中间件的更广泛领域提供了传统IM之外的众多应用,包括VoIP,视频,文件传输,游戏,远端系统监控和其他用途的应用领域

与大多数商业即时消息协议不同,XMPP是在应用层的开放标准中定义的。XMPP网络的架构类似于电子邮件;任何人都可以运行自己的XMPP服务器,并且没有中央主服务器。这种联合开放系统方法允许用户使用“JID”用户帐户(类似于电子邮件地址)与任何服务器上的其他人进行互操作。XMPP实现可以使用任何软件许可证进行开发,许多服务器,客户端和库实现都作为免费和开源软件分发。还存在许多免费软件和商业软件实现。

这些协议最初由开源社区开发,于2004年正式成为经批准的即时消息标准,并不断开发新的扩展和功能。各种XMPP客户端软件可在桌面和移动平台和设备上使用

JMS(Java Message Service)

JMS (Java Message Service),即消息服务,这是JAVA平台中著名的消息队列协议。Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持

JMS API 支持两种不同的模型:点对点、发布和订阅。一个有用的用例是,您希望客户端和服务器相互通信,但客户端实际上没有服务器的地址(例如,您可能有多个服务器)。客户端只需要知道代理和队列/主题名称,服务器也可以连接

BACnet

BACnet是用于智能建筑的通信协议,是国际标准化组织(ISO)、美国国家标准协会(ANSI)及美国采暖、制冷与空调工程师学会(ASHRAE)定义的通信协议。BACnet针对智能建筑及控制系统的应用所设计的通信,可用在暖通空调系统(HVAC,包括暖气、通风、空气调节),也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。优点在于能降低维护系统所需成本并且安装比一般工业通信协议更为简易,而且提供有五种业界常用的标准协议,此可防止设备供应商及系统业者的垄断,也因此未来系统扩展性与兼容性大为增加

BACnet 协议定义了许多用于在建筑设备之间进行通信的服务。协议服务包括 Who-Is、I-Am、Who-Has、I-Have,它们用于设备和对象发现。读取属性和写入属性等服务用于数据共享。从 ANSI/ASHRAE 135-2016 开始,BACnet 协议定义了 60 种由服务执行操作的对象类型。

BACnet协议定义了许多数据链路/物理层,包括ARCNET,以太网,BACnet / IP,BACnet / IPv6,BACnet / MSTP,RS-232上的点对点,RS-485上的主从/令牌传递,ZigBee和LonTalk

PROFINET

PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准;PROFINET是适用于不同需求的完整解决方案,其功能包括8个主要的模块,依次为实时通信、分布式现场设备、运动控制、分布式自动化、网络安装、IT标准和信息安全、故障安全和过程自动化.PROFINET可实现不同时延下的数据传输服务,时延范围从100ms到31.25us不等;根据应用的时间要求可以将划分出PROFINET的数个应用领域,如:低时延对应高实时要求的运动控制领域;中高时延对应的过程/工厂自动化领域。

MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP这几种协议都已被广泛应用,并且每种协议都有至少10种以上的代码实现,都宣称支持实时的发布/订阅的物联网协议,但是在具体物联网系统架构设计时,需考虑实际场景的通信需求,选择合适的协议

网站总编:

内容审核: