这里主要讨论了IoT中的协议有哪些,以及如何选择合适的IoT协议。
IoT中有多种协议可用,每种协议都提供了某些特定的功能或特征组合,使其在特定的IoT部署中比其他选择更可取。 每种IoT协议都支持设备对设备、设备对网关或者设备对云/数据中心的通信,或者这些通信的组合。
选择哪种协议最优取决于地理位置、功耗需求、电池供电选项、物理障碍的存在以及成本等因素。
IoT体系结构有不同的层次。最常见的是开放系统互联模型,它有7层,从底层到顶层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
IoT也可以表示为多层模型,最常见的有:
- 3层模型:感知层、网络层、应用层
- 4层模型:感知层、支撑层、网络层、应用层
- 5层模型:感知层、传输层、处理层、应用层、业务层
不同层使用不同的协议。一个IoT生态系统可以有多个协议,不同协议在不同层启用通信。
最常用的协议有:AMQP、Bluetooth/BLE、Cellular、CoAP、DDS、LoRa/LoRaWAN、LWM2M、MQTT、Wi-Fi、XMPP、Zigbee、Z-Wave等。
选择合适的IoT协议要考虑设备的功耗、位置、规模、安全需求等因素。没有一种协议适用于所有情况,需要根据具体部署来选择最佳协议。
功耗方面
- BLE,Zigbee,Z-Wave等适用于电池供电和低功耗设备
- Wi-Fi,Cellular等用于交流电供电设备
位置方面
- Wi-Fi,Zigbee等用于有线通信或短距离无线通信
- Cellular,LoRa等用于长距离无线通信
规模方面
- MQTT,CoAP等适用于连接数量少的小规模部署
- LWM2M,DDS等用于大规模IoT部署
安全方面
- MQTT,AMQP等支持SSL/TLS加密
- CoAP,LWM2M支持DTLS数据加密
- Cellular网络有 SIM 卡验证机制
综上,根据具体的使用场景,选择支持场景需求的协议组合,设计出一个高效、低功耗且安全的IoT系统。
以下是常见协议的详细介绍:
1. AMQP
AMQP是高级消息队列协议(Advanced Message Queuing Protocol)的缩写,是一种开放标准的面向消息的中间件协议。因此,它实现了系统之间的消息互操作性,无论使用的是哪种消息代理或平台。它提供了安全性和互操作性,以及可靠性,即使在远程或网络条件差的情况下也是如此。它支持通信,即使系统不是同时可用的。
2. 蓝牙和BLE
蓝牙是一种短距离无线技术,使用短波长的超高频无线电波。它最常用于音频流,但也成为无线和连接设备的重要使能技术。因此,这种低功耗、低范围连接选项是个人区域网络和物联网部署的首选。
另一种选择是蓝牙低功耗(BLE),也称为蓝牙LE,这是一种针对物联网连接进行了优化的新版本。正如其名称所描述的,BLE消耗的功率比标准蓝牙少,这使它在许多使用案例中特别有吸引力,例如健身跟踪器和智能家居设备等消费类设备,以及商业方面的内部导航。
3. 蜂窝网络
蜂窝网络是用于物联网应用程序最广泛可用和众所周知的选择之一,也是部署需要长距离通信的最佳选择之一。虽然2G和3G传统蜂窝标准现在正在被逐步淘汰,但电信公司正在快速扩展较新高速标准的覆盖范围,即4G/LTE和5G。蜂窝网络提供高带宽和可靠的通信。它能够发送大量数据,这对许多物联网部署来说是一个重要的功能。但是,这些功能都是有代价的:比其他选择更高的成本和功耗。
4. CoAP
互联网工程任务组Constrained RESTful Environments工作组于2013年推出了CoAP(Constrained Application Protocol),旨在与基于HTTP的物联网系统一起工作。CoAP依赖于用户数据报协议(UDP)来建立安全通信并启用多个点之间的数据传输。CoAP通常用于机器对机器(M2M)应用,使受限制的设备即使在低带宽、低可用性和/或低能量设备存在的情况下也能加入物联网环境。
5. DDS
对象管理组织(OMG)为实时系统开发了数据分发服务(Data Distribution Service, DDS)。OMG将DDS描述为“面向数据的连接的中间件协议和API标准”,并解释说“它将系统的组件集成在一起,为业务关键型和任务关键型物联网应用程序所需的低延迟数据连接、极高的可靠性和可扩展的体系结构提供数据连接”。 这个M2M标准使用发布-订阅模式实现高性能、高可扩展的实时数据交换。
6. LoRa 和 LoRaWAN
LoRa(代表长距离)是一种非蜂窝无线技术,顾名思义,它提供长距离通信能力。它低功耗,数据传输安全,用于M2M应用和物联网部署。它是Semtech射频平台的专有技术的一部分。LoRa联盟,Semtech是创始成员,现在是LoRa技术的管理机构。LoRa联盟还设计和现在维护LoRaWAN,这是一个开放的基于云的协议,使物联网设备能够通信
7. LWM2M
OMA SpecWorks将其轻量级M2M (LWM2M)描述为“一种专为传感器网络和M2M环境的需求而设计的设备管理协议”。该通信协议专门用于物联网环境及其他M2M应用程序中的远程设备管理和遥测;因此,它非常适合具有有限处理和存储功能的低功耗设备。
8. MQTT
MQTT最初于1999年开发,当时称为消息队列遥测传输(Message Queuing Telemetry Transport),现在简称MQTT。该协议中不再有任何消息队列。MQTT使用发布-订阅架构来实现机器对机器通信。它的简单消息传递协议适用于受限设备,并实现多个设备之间的通信。它被设计来在低带宽情况下工作,例如用于不可靠网络上的传感器和移动设备。这种功能使其成为连接具有小代码占用的设备以及无线网络(由于带宽限制或连接不可靠而导致不同程度的延迟)的常用首选协议。MQTT最初是一种专有协议,现在是连接物联网和工业物联网设备的领先开源协议。
9. Wi-Fi
鉴于Wi-Fi在家庭、商业和工业建筑中的无所不在,它是一个经常使用的物联网协议。它提供快速的数据传输,并且能够处理大量的数据。Wi-Fi特别适合局域网环境,距离在短至中等范围内。此外,Wi-Fi的多种标准(家庭和一些企业中最常见的为802.11n)为技术人员提供了部署选择。但是,许多Wi-Fi标准,包括家庭中常用的标准,对于某些物联网使用案例来说功耗太大,特别是低功耗/电池供电设备。这限制了Wi-Fi在某些部署中的选用。另外,Wi-Fi的低范围和低可扩展性也限制了其在许多物联网部署中的可行性。
10. XMPP
可以追溯到2000年初Jabber开源社区最初为人与人实时通信设计的可扩展消息和存在协议(XMPP),XMPP现在用于轻量级中间件中的机器对机器通信以及用于路由XML数据。XMPP支持网络上多个实体之间结构化但可扩展的数据的实时交换,它最常用于消费者面向的物联网部署,例如智能家电。它是一个由XMPP标准基金会支持的开源协议。
11. ZigBee
ZigBee是一种网状网络协议,设计用于建筑和家庭自动化应用,它是物联网环境中最流行的网状协议之一。ZigBee是一个短距离和低功耗协议,可以用来扩展多个设备上的通信。它的范围比BLE更长,但数据率比BLE更低。ZigBee联盟负责监督它,它提供灵活的自组网、超低功耗和应用程序库。
- Z-Wave
Z-Wave是另一种专有的选择,它是一种基于低功率无线电频率技术构建的无线网状网络通信协议。像蓝牙和Wi-Fi一样,Z-Wave让智能设备可以进行加密通信,从而为物联网部署提供了一定的安全性。它通常用于家庭自动化产品和安全系统,以及商业应用,如能源管理技术。它在美国的工作频率是908.42 MHz无线电频率;不过,它的频率会因国家而异。Z-Wave由Z-Wave联盟支持,该联盟是一个成员组织,专注于扩展使用Z-Wave的设备的技术和互操作性。