热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MQTT、CoAP还是LwM2M?主流物联网协议如何选择

本文选取了几种主流的物联网协议,从协议的技术特性、适用场景、相对优势以及市场情况等方面一一进行介绍,希望能够帮助大家在实际项目中选

随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力。

由于物联网场景复杂多样,设备端硬件条件、网络稳定性、流量限制、设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与传统互联网场景有着很大不同,也因此产生了多种物联网通讯协议。

本文将选取几种主流的物联网协议,从协议的技术特性、适用场景、相对优势以及市场情况等方面一一进行介绍,为物联网从业者提供参考,帮助大家在实际项目中选择合适的物联网协议。


协议分类

在介绍之前,我们对物联网协议进行一个简单分类,方便读者理解其应用场景。

从功能角度

从功能角度来划分,我们可以将其分为两大类,一类是物理层/数据链路层协议,一类是应用层协议

物理层/数据链路层协议一般负责设备间的组网及通信,比如 2G/3G/4G/5G、NB-IoT、WiFi、ZigBee、LoRa 这些远距离通信,也有近距离的比如 RFID、NFC、蓝牙协议无线协议和 RS232、USB 等有线协议。

应用层协议则主要是运行在传统互联网 TCP/IP 协议之上的设备通讯协议,这类协议通过互联网,支撑设备到云端平台的数据交换及通信,常见的有 HTTP、MQTT、CoAP、LwM2M 以及 XMPP 等协议。

从应用角度

从协议在物联网系统中的应用角度来看,我们可以将协议划分为云端协议和网关协议。

云端协议是建立在 TCP/IP 上的协议,传感器、控制设备等物联网数据通常都需要传输上云,通过云端连通用户并与企业系统进行集成。

支持 TCP/IP 的物联网设备,可以通过 WIFI、蜂窝网络以及以太网,使用 HTTP、MQTT、CoAP、LwM2M 以及 XMPP 等应用层协议协议接入云端。

网关协议是适用于短距通信无法直接上云的协议,比如蓝牙、ZigBee、LoRa 等。此类设备需要接入网关转换之后,通过 TCP/IP 协议进行上云。


ZigBee

Zigbee 是一种网状网络无线协议,专为建筑和家庭自动化应用而设计,是物联网环境中最流行的网状协议之一。目前主要用于局域网内连接,在设备侧以网关的身份接入控制各类设备。

协议特性

  • 低功耗:发射功率仅为 1mW,在低耗电待机模式下,两节 5 号干电池可使用长达 2 年,免去了充电或者频繁更换电池的麻烦。

  • 低成本:由于简单而紧凑的协议大大降低了其对通信控制的要求从而降低硬件成本,同时免收协议专利费。

  • 低速率:ZigBee 工作在 20~250kbps 的速率,分别提供 250 kbps(2.4GHz)、40kbps(915 MHz) 和 20kbps(868 MHz) 的原始数据吞吐率,满足低速率传输数据的应用需求。

  • 近距离:相邻节点传输范围在 10~100m 之间,基本覆盖普通家庭和办公环境;增加发射功率后可增加到 1~3km,通过路由和节点间通信的接力,传输距离将可以更远。

  • 低时延:ZigBee 的响应速度较快,一般从睡眠转入工作状态只需 15ms,节点连接进入网络只需 30ms,进一步节省了电能。相比较,蓝牙需要 3~10s、WiFi 需要 3s。

  • 高容量:ZigBee 可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理 254 个子节点;同时主节点还可由上一层网络节点管理,最多可组成 65000 个节点的大网。

  • 高安全:ZigBee 提供了 CRC 数据包完整性检查功能,支持鉴权和认证,采用了 AES-128 的加密算法,各个应用都可以灵活确定其安全属性。

  • 免许可证频段:直接序列扩频用于工业科学医学(ISM)频段:2.4GHz(全球),915MHz(北美),868MHz(欧洲)。

市场状况

Zigbee 技术具有低功耗、大节点容量、短时延、安全可靠等突出优点,可满足智能家居应用需求,是智能家居核心无线组网连接技术

得益于中国智能家居市场快速发展,应用 Zigbee 技术的智能家居设备数量不断增长,Zigbee 技术应用推广步伐日益加快。

相比同为无线局域网技术体系的 WiFi、蓝牙技术,Zigbee 技术在功耗、节点容量、自组网能力、安全性方面具有突出优势,应用规模不断扩大。


NB-IoT

NB-IoT 是由 3GPP 标准化组织制定的一种新型蜂窝技术,属于低功率广域 (LPWA) 物联网连接的一种,主要用于连接带宽资源受限的终端,允许终端以比 GRPS、3G、LTE 等技术更少的资源收集和交换数据。

NB-IoT 在 2017-2018 年发展迅速,全球众多运营商陆续实现了商用部署。NB-IoT 的低成本、低功耗和广覆盖使得用户能够实现传统蜂窝网络无法支持的新场景新应用。

2020 年 7 月 9 日,3GPP 宣布 5G R16 标准冻结,NB-IoT 正式纳入 5G 标准,成为 5G mMTC 海量物联网连接场景核心技术。

协议特性

  • 引入了低功耗的「睡眠」模式(PSM、eDRX)。

  • 降低了对通信品质要求,简化了终端设计(半双工模式、协议栈简化等)。

  • 通过两种功能优化模式(CP 模式、UP 模式)简化流程,减少了终端和网络的交互量。

  • 超低覆盖,在 GPRS 的基础上覆盖增强 20dB,覆盖范围是 GPRS 的三倍。

市场状况

当前,NB-IoT 已进入亿级连接时代,后续随着全球运营商对商用 NB-IoT 5G 网络的全覆盖建设,NB-IoT 将在智能家居、智慧农业、工业制造、能源表计、消防烟感、物流跟踪、金融支付等各领域中持续爆发。

以中国电信物联网开放平台为例,该平台实现了对中国电信 NB-IoT 以及其他网络物联网设备的集中接入,并为政企用户提供物联网设备管理、数据接口以及应用使能等服务。

EMQ 从该平台建设之初即已参与,配合天翼物联为该平台研发 NB-IoT 设备接入与消息路由能力,并同时支持电信 TLINK、MQTT 等协议设备的接入,平台整体设计接入能力达亿级,详情请查看:NB-IoT 爆发期,EMQ 助力企业开启亿级物联网连接时代。

参考资料

  • 一文了解 NB-IoT 四大关键特性以及实现技术:

    https://bbs.huaweicloud.com/blogs/296686


LoRa

    LoRa 协议是一个低功耗、远距离、无线广域网的标准协议,其名称来自于「远距离(Long Range)」的简称。

    LoRa 相比其他无线传播协议如 ZigBee、蓝牙、WIFI 最大的特点是同功耗下传播距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大 3-5 倍。

    LoRa 在物联网应用中的无线技术有多种,可组成局域网或广域网。LoRa 网络主要由终端(可内置 LoRa 模块)、网关(或称基站)、Server 和云四部分组成。

    LoRaWAN 的数据传输速率范围为 0.3 kbps 至 37.5 kbps,为了最大化终端设备电池的寿命和整个网络容量,LoRaWAN 网络服务器通过一种速率自适应(Adaptive Data Rate , ADR)方案来控制数据传输速率和每一终端设备的射频输出功率

    协议特性

    • 覆盖面:LoRa 单一网关的遮盖间距一般在 3-5km 的范畴,宽阔地区乃至达到 15km 之上。

    • 低功耗:充电电池供电系统能够 支撑点多年乃至十余年。

    • 高容量:得益于终端无联接情况的特点,可以保证大量终端的接入。

    • 低成本:通信网络成本费极低,另外适用窄带传输数据。

    • 安全系数:采用 AES128 加密,安全系数高。

    市场状况

    对于智慧农业、智慧城市、工业物联网 (IIoT)、智能环境、智能家居和楼宇、智能公用事业和计量以及智能供应链和物流中的农村或室内应用场景,LoRa 具有极高的灵活性。 

    LoRa 组网方便,利用 LoRa 极强的穿透力,可以低成本实现对较大范围内的设备连接,相比通过 NB-IoT 和运营商 SIM 卡接入,LoRa 不需要每年换卡或缴费,长期使用拥有较低的成本。

    参考资料

    • 用 LoRa 实现的物联网应用,到底好在哪里?:

      https://zhuanlan.zhihu.com/p/139251178


    MQTT

      MQTT 协议是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。

      MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力、能源等领域,既能作为网关在设备侧接入通信,也能作为设备-云端的通信协议。

      ZigBee、LoRa 等绝大多数网关协议最终都转换为 MQTT 协议接入上云。

      协议特性

      • 轻量可靠:MQTT 报文紧凑,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。

      • 发布/订阅模式:基于发布/订阅模式,发布订阅模式的优点在于发布者与订阅者的解耦:订阅者与发布者不需要建立直接连接、也不需要同时在线。

      • 为物联网而生:提供心跳机制、遗嘱消息、QoS 质量等级+离线消息、主题和安全管理等全面的物联网应用特性。

      • 生态更完善:覆盖全语言平台的客户端和 SDK,有成熟的 Broker 服务端软件,能够支持海量 Topic ,千万级设备接入量,提供丰富的企业集成能力。

      通信模式

      MQTT 采用发布订阅模式通信,发布订阅模式区别于传统的客户端-服务器模式,它使发送消息的客户端(发布者)与接收消息的客户端(订阅者)分离,发布者与订阅者不需要建立直接联系。我们既可以让多个发布者向一个订阅者发布消息,也可以让多个订阅者同时接收一个发布者的消息。

      市场状况

      MQTT 是 IoT 领域的最重要的标准协议之一,广泛用于物联网、车联网、工业物联网、智能家居、智慧城市、电力石油能源等行业。

      MQTT 是 AWS IoT Core、 Azure IoT Hub、阿里云物联网平台等顶级云厂商物联网平台标准通信协议,是工业互联网、车联网、智能家居等各个行业以及诸多网关协议上云的首选协议。

      EMQ X 作为全球最热门、最成熟的 MQTT Broker 之一,提供了「随处运行,无限连接,任意集成」云原生分布式物联网接入平台,一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,助力企业快速构建关键业务的 IoT 平台与应用

      参考资料

      • MQTT 协议入门与进阶:

        https://www.emqx.com/zh/mqtt


      CoAP

        CoAP 是一种在物联网世界的类 HTTP 的协议,使用在资源受限的物联网设备上,它的详细规范定义在 RFC 7252。

        由于物联网设备大多都是资源限制型的,比如 CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。为了让这部分设备能够顺利接入网络,CoAP 协议应运而生

        协议特性

        CoAP 参考了很多 HTTP 的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多的设计细节,增加了很多实用的功能。

        • 基于消息模型

        • 传输层基于 UDP 协议,支持受限设备

        • 使用类似 HTTP 请求的请求/响应模型,HTTP 是文本格式,CoAP 为二进制格式,且比 HTTP 更加紧凑

        • 支持双向通信

        • 轻量、低功耗

        • 支持可靠传输,数据重传,块传输,确保数据可靠到达

        • 支持 IP 多播

        • 支持观察模式

        • 支持异步通信

        市场状况

        相比于 MQTT,CoAP 更加轻量、开销更低,在某些特定的设备和网络环境下更为合适。

        EMQ X 以及部分公有云物联网平台都提供提供了 CoAP 接入能力,详情参考:MQTT 和 CoAP 在 EMQ X 世界的一次「约会」。


        LwM2M

          LwM2M 是适用于资源有限的终端设备管理的轻量级物联网协议。

          LwM2M 协议诞生于 2013 年底,由 OMA(Open Mobile Alliance)提出并定义。目前的成熟版本号依然是 1.0,OMA 的专家们正为 1.1 版而努力。

          协议特性

          LwM2M 协议最主要的实体包括 LwM2M Server 和 LwM2M Client。

          • LwM2M Server 作为服务器,部署在 M2M 服务供应商处或网络服务供应商处。

          • LwM2M Client 作为客户端,部署在各个 LwM2M 设备上。

          此外,根据需要还可以加入LwM2M引导服务器(Bootstrap Server)或智能卡(SmartCard),对客户端完成初始的引导。

          LwM2M 协议有以下几个突出特点:

          • 协议基于 REST 架构。

          • 协议的消息传递是通过 CoAP 协议来达成的。

          • 协议定义了一个紧凑高效又不乏扩展性的数据模型。

          考虑到与时俱进,实现简洁易懂的风格,LwM2M 协议采用了 REST。

          但由于协议的服务对象是资源有限的终端设备,传统的 HTTP 数据传输方式显得过分笨重,难以支持受限资源,因此选择了具备 REST 风格的 CoAP 来完成消息和数据传递。

          一方面 CoAP 基于 UDP,与 TCP 相比,在网络资源有限及无法确保设备始终在线的环境里更加游刃有余(出于安全性考虑,使用了基于 UDP 的 DTLS 安全传输协议)。另一方面 CoAP 本身的消息结构非常简单,报文压缩,主要部分可以做到特别小巧,无需占用过多资源。

          出于类似的考虑,协议的数据结构必须足够简单。LwM2M 协议定义了一个以资源(Resource)为基本单位的模型,每个资源可以携带数值,可以指向地址,以表示 LwM2M 客户端中每一项可用的信息。资源都存在于对象实例中(Object Instance),即对象(Object)的实例化。

          LwM2M 协议预定义了 8 种对象(Object)来满足基本的需求,分别是:

          Object
          Object ID
          Security(安全对象)0
          Server(服务器对象)1
          Access Control(访问控制对象)2
          Device(设备对象)3
          Connectivity Monitoring(连通性监控对象)4
          Firmware(固件对象)5
          Location(位置对象)6
          Connectivity Statistics(连通性统计对象)7

          考虑到扩展性,协议也允许根据实际需要自定义更多的对象。在这样的数据模型中,资源、对象实例以及对象都是用数字对应的ID来表示的,以实现最大程度的压缩,因此任何资源都可以用最多 3 级的简洁方式表示,例如 /1/0/1 表示服务器对象(Server Object)第 1 个实例中的服务器短 ID 资源。 

          在注册阶段,LwM2M 客户端把携带了资源信息的对象实例传递给 LwM2M 服务器,以通知服务器自身设备所具备的能力。

          EMQ 也实现了 EMQ X 服务器上的 LwM2M 接入能力,实现了 LwM2M 协议的大部分功能,LwM2M 设备可以注册至 EMQ X-LWM2M 上,从而通过 EMQ X-LWM2M 访问并管理设备,设备也可以向 EMQ X-LWM2M 上报信息,并使用 EMQ 后端的服务来采集数据。


          XMPP

            XMPP 可拓展消息处理现场协议是基于 XML 的即时通讯协议,协议将通信上下文信息嵌入到 XML 结构化数据中,使得人与人之间、应用系统之间以及人与应用系统之间能即时通讯。

            协议特性

            • 所有 XMPP 信息都是以 XML 为基础的,信息交换的事实标准,扩展性强。

            • XMPP 系统是一个分布式系统,每台服务器控制自己的资源。

            • XMPP 协议是公开开源的,使用 XML 定义了客户端和服务器端的交互。

            市场状况

            XMPP 特点在于协议和扩展协议成熟,功能完善,专门为即时聊天(IM)场景设计。XMPP 是老牌的即时聊天协议,像 Google Hangouts, WhatsApp Messenger 等即时聊天程序都是基于 XMPP 的。

            但由于 XMPP 依赖 XML 协议,放在 IoT 场景里过重,因此基本不适合物联网传输使用



            结语

            横向来看,物联网在几乎所有行业都有广泛的应用场景,每个行业有不同的工况和组网模式;从纵向来看,物联网系统涵盖了传感器/控制设备,数据接入、传输、路由交换组件以及数据的存储处理整个软硬件链条,每个环节都有需要合理、高效的技术方案。

            当前物联网协议呈现多元化发展,不同行业和场景适用不同的协议,在相同的场景下也能够有多个协议可供选择,没有任何协议能够在市场上占有统治地位,各种协议之间存在一定的互补效应。

            因此,要实现物联网设备和数据的互联互通,关键点并不在与协议的统一,而在于不同协议之间的互联互通、上层业务应用层协议的统一。

            EMQ 致力于解决物联网设备数据连接问题。

            核心产品 EMQ X 物联网消息服务器可以通过开放标准的 MQTT、CoAP 和 LwM2M 协议连接任何设备,对于诸如工业场景中工业协议复杂多样的情况,也可通过边缘工业协议网关软件 Neuron 转换成统一的 MQTT 协议接入,满足绝大多数物联网场景下的数据采集需求,为企业的物联网业务提供高效可靠的数据接入层。


            作者简介:

            李国伟,EMQ X 产品经理,以用户体验和集成能力驱动 EMQ X 开发。


            We are hiring! Join us and Code the Future together.

            ► EMQ 2021 全球招聘季

            简历投递邮箱:hr@emqx.io

            EMQ HR


            点击"阅读原文",了解 EMQ X

            ↓↓↓



            推荐阅读
            • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
            • Cookie学习小结
              Cookie学习小结 ... [详细]
            • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
              秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
            • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
            • 服务器部署中的安全策略实践与优化
              服务器部署中的安全策略实践与优化 ... [详细]
            • 直播带货系统中的推流技术详解
              本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
            • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
            • 小程序的授权和登陆
              小程序的授权和登陆 ... [详细]
            • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
              本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
            • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
            • 如何在服务器上配置SSL证书
              SSL证书是用于验证互联网上身份的一种数字凭证,通过启用HTTPS协议,确保用户与服务器之间的通信安全。本文将详细介绍如何在API和服务器上配置SSL证书,以提升网站的安全性和可信度。 ... [详细]
            • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
              近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
            • 网站访问全流程解析
              本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
            • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
            • Web开发框架概览:Java与JavaScript技术及框架综述
              Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
            author-avatar
            哗锅_348
            这个家伙很懒,什么也没留下!
            PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
            Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有