背景
现在物联网话题是热门,各行各业都在应用。常见的物联网协议,如:MQTT、CoAP、XMPP、SOAP、REST等
物联网协议整理
- MQTT(Message Queue Telemetry Transport)消息队列遥测转输协议,工作原理类似于一个发布-订阅模型,它允许不同的设备或客户端通过一个称为“代理”(Broker)的中间件来交换消息
- CoAP (Constrained Application Protocol )约束应用协议,是一种专为物联网(IoT)和机器对机器(M2M)通信设计的协议。它是基于REST(Representational State Transfer,表述性状态传输)原则的协议,旨在满足低功耗设备和网络的特定需求
- AMQP(Advanced Message Queuing Protocol)高级消息队列协议, 阿里云的AMQP(高级消息队列协议)物联网订阅服务, 是一个提供统一消息服务的应用层标准高级消息队列协议。其实它更是一种标准。它是应用层协议的一个开放标准,为面向消息的中间件设计。
- XMPP(The Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。
- LwM2M(Lightweight Machine to Machine)轻量级机器对机器协议,是一种专为物联网(IoT)环境设计的协议,它支持设备管理和服务提供。LwM2M由OMA(Open Mobile Alliance,开放移动联盟)制定,其设计目标是简单、高效,以适应资源受限的设备和网络环境
- DDS(Data Distribution Service)分布式实时数据分发协议,是一种以数据为中心的分布式实时数据分发服务中间件协议,它是分布式实时网络里的“TCP/IP”,用来解决实时网络中的网络协议互联,其作用相当于“总线上的总线”。
- BLE(Bluetooth Low Energy)低功耗蓝牙协议,是蓝牙技术的一个分支,专为低功耗设备设计。它在2010年作为蓝牙4.0标准的一部分被引入,旨在满足小型设备(如健康和健身设备、智能家居设备等)的通信需求。BLE在保持蓝牙技术低复杂性的同时,大幅降低了功耗,延长了设备的电池寿命。
- LoRaWAN(Long Range Wide Area Network)长距离广域网协议,是一种低功耗广域网(LPWAN)通信协议,专为需要长距离通信和低功耗的应用设计。它基于LoRa(Long Range,长距离)调制技术,能够实现远距离、低功耗的数据传输。LoRaWAN广泛应用于物联网(IoT)领域,特别是在需要覆盖广阔区域的应用中,如农业监测、城市基础设施、智能建筑和物流跟踪等。
- NB-IoT(Narrowband Internet of Things)窄带物联网协议,是一种基于蜂窝网络的通信技术,专为物联网(IoT)应用设计。NB-IoT作为3GPP(第三代合作伙伴计划)标准的一部分,能够在现有的LTE(Long Term Evolution,长期演进)网络基础设施上运行,同时也兼容2G/GSM(全球移动通信系统)网络。NB-IoT技术旨在满足物联网设备对低功耗、广覆盖、大连接数的需求。NB-IoT协议的这些特性使其成为物联网领域中非常有潜力的通信技术之一。它能够提供一种高效、可靠和安全的通信方式,适应了物联网设备的多样化和复杂性。随着5G技术的推进,NB-IoT预计将与5G网络协同工作,进一步推动物联网的发展。
- SOAP(Simple Object Access Protocol,SOAP),一种基于XML的消息传递协议
- REST(Representational State Transfer)代表性状态转移,是Web服务的轻量级体系结构样式
- HTTP (Hypertext Transfer Protocol)超文本传输协议,是IT界人人都熟知的协议,它被用于在互联网上传输超文本文档。但是在物联网中,HTTP也扮演着重要的角色。
协议对比表格(待完善)
协议 维度 | MQTT | CoAP | AMQP | XMPP | LwM2M | DDS | BLE | LoRaWAN | NB-IoT | SOAP | REST | HTTP |
轻量 | 是 | 是 | 是 | |||||||||
专为物联网设计 | 是 | 是 | ||||||||||
连接方式 | 发布/订阅 | 请求-响应 | 请求-响应 | |||||||||
异步支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | ||||||
应用层级 | 应用层 | 应用层 | 物理层 | 物理层 | 应用层 | |||||||
是否需要网关 | 否 | |||||||||||
传输协议 | TCP | UDP | TCP | |||||||||
数据格式 | 二进制 | 二进制 | 文本 | |||||||||
功耗 | 低 | 低 | 低 | 低 | 低 | |||||||
传输效率、 解析速度 | 优 | |||||||||||
支持的连接数 | 多个 5.0 | 大量 | ||||||||||
覆盖范围 | 数公里 | 广 | ||||||||||
网络管理 | ||||||||||||
跨平台 | 是 | 是 | 是 | 是 | ||||||||
安全性 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
隐私保护 | 支持 | |||||||||||
可扩展性 | 好 | 支持 | 支持 | 超强 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | |
特点 | 发布/订阅模式等 | 基于REST | 面向消息的中间件设计的开放标准 | 去中心化 | 适应资源受限的设备和网络环境 | 以数据为中心 | 适应了现代小型设备 | 覆盖广阔区域 | 低功耗、广覆盖、大连接数 | |||
应用领域 | 广泛应用,物联网领域中非常受欢迎的通信协议之一 | 旨在满足低功耗设备和网络的特定需 | 适用于需要高度可靠和灵活的消息传递的应用,企业应用集成、金融服务、电信和物联网等 | 物联网(IoT)、企业通信、社交网络和协作工具等。 | 特别是在需要设备管理和服务提供的场合 | 高可靠性、实时性和可扩展性的分布式系统中非常有用 | 健康和健身设备(如心率监测器、运动追踪器)、智能家居设备(如智能灯泡、温度传感器)、可穿戴设备等 | 长距离通信和低功耗的应用中非常有用 | 多种物联网应用,如智能计量、环境监测、资产跟踪、智能农业等 |