当前位置:首页 > 每日看点

为什么在物联网应用中使用MQTT而不是?

卡卷网1年前 (2025-01-09)每日看点296

最近,我们的后台收到了许多用户的私信咨询,其中一个问题便是:在物联网(IoT)应用中,为何通常更倾向于使用MQTT而非呢?今天我们就来探讨一下这个话题。

前面在介绍MOTT协议的时候我们就已经提到过,MQTT属于一种轻量级的消息传输协议,其协议头相当简洁。正常情况下,MQTT的固定头部仅有2个字节,用来标识消息类型、QoS(服务质量)等级等基本信息。在某些特定的消息类型里,也许会存在可变头部与消息体,不过整体结构较为紧凑。

然而协议的消息头则相对复杂一些。即便是最简单的请求,例如“GET”请求,其头部信息也包含请求方法、L、协议版本、主机信息、用户等诸多字段。一般而言,一个基本的头部大小可能会达到几百字节。

下面我们就来说说这两者在物联网应用中的具体差异。

<>一、传输模式

<>1、MQTT

MQTT运用发布/订阅模式。设备充当发布者(Pulisher),把数据发布至特定的主题(Topic),而订阅者(Suscrier)只需订阅自身感兴趣的主题,就能接收相关数据。在此种模式下,数据传输基于事件驱动。只要存在订阅这些主题的应用程序或者设备,就能够实时接收数据。并且,在设备状态无变化时,无需发送额外的数据,从而减少了不必要的网络流量。

<>2、

属于典型的请求/响应模式。客户端(一般为物联网设备或者用户端应用)要向发送请求,依据请求内容予以响应。这表明每次获取或者更新数据,都需要完整的请求-响应流程。收到请求后返回设备的状态信息。若要频繁获取设备状态,就需不断发送请求,每个请求均带有完整的头部信息,这会产生大量的重复数据传输,占用较多带宽。

<>二、数据传输效率

<>1、MQTT

因为MQTT协议简洁,并且采用高效的发布/订阅模式,所以在传输数据时能更有效地利用网络带宽。尤其在传输小数据量的物联网应用场景下,例如传感器数据的定期上报时,MQTT的优势更为显著。每次传输的数据主要为电量数值,协议开销小,能够快速、高效地完成数据传输,从而减少网络带宽的占用。

<>2、

的效率较低,在频繁进行数据交互的场景中尤其如此。由于每次请求与响应都要传输大量的头部信息,即便数据本身可能很少,也会让整体的数据传输量变大。这些多余的头部信息会降低传输效率,占用较多的网络带宽。

<>三、连接建立过程

<>1、MQTT

MQTT协议构建于TCP协议之上,当设备与之间的连接建立起来后,此连接能够长时间维持。这种长连接机制让设备在有数据传输需求时,仅需发送简单消息,而不必重新建立连接。连接建立的开销只在初始阶段出现,后续的数据交互会更加迅速。

<>2、

属于一种无状态协议,每一次数据请求都得重新建立连接。这一过程会涉及到TCP的三次握手,从而产生一定的延迟。每一回通信都要重新构建一条通信链路,其中包含发送请求头、等待响应等步骤,这使得延迟相对较高。

<>四、消息推送机制

<>1、MQTT

MQTT采用发布/订阅模式,可主动向订阅特定主题的设备推送消息。这种实时推送机制让设备能在第一时间接收到重要信息。借助MQTT,能够实现实时的事件通知,延迟可控制在很低的水平,一般能在几百毫秒内完成消息推送。

<>2、

自身并不具备主动推送消息的功能。在物联网应用场景下,若要获取设备的最新状态或者接收来自的通知,往往需要运用轮询的方式。这种轮询方式所产生的延迟取决于轮询的间隔时长,并且在两次轮询的间隙可能会遗漏实时消息,实时性不佳。

<>五、数据更新效率

<>1、MQTT

因为设备与之间为长连接,而且消息格式较为简洁,所以当设备状态改变时,MQTT能够迅速地把更新后的状态信息发送至,整个过程的延迟较低,非常好地满足实时性要求。

<>2、

每次更新数据都需要完整的请求-响应过程,这使得数据更新效率相对较低。尤其是在需要频繁更新少量数据的情况下,由于每次都要建立连接和传输完整的请求头,会导致设备状态的更新不能及时反映在用户界面或者相关设备上,实时性大打折扣。

<>六、可性

<>1、MQTT

<>发布订阅模式:​即便处于网络连接不稳定的状况下,也可达成数据的可传输。当设备离线时,MQTT会把数据存储于队列之中,直至设备重新上线时再予以发送。

<>自动重连机制:具备自动重连机制,即便网络断开,也能够自动恢复连接,确保消息得以可传输。

<>QoS机制:提供三种等级的服务质量,范围从至多一次到恰好一次不等,能够依据不同的应用场景以及数据的重要性,选择适宜的QoS等级,以保证消息的可传递。

<>2、

<>本身不具备消息保证机制:自身并不提供消息重发或者持久化机制,通常这些问题需要应用层自行处理。

<>基于TCP的可性:主要依TCP协议自身的可性确保数据传输的完整性与顺序性,不过在网络不稳定或者出现故障的时候,或许需要应用层进行额外的处理并设置重试机制。

<>无状态性的:因为是无状态的,每个请求均相互,不会留存之前请求的任何信息,在一些需要连续进行数据传输与处理的物联网场景下,这可能会对数据的连贯性和可性产生影响。

<>七、安全性

<>1、MQTT

<>支持TLS/SSL加密协议:这能够确保数据传输过程中的安全性,防止数据遭受篡改与窃取。同时,MQTT5.0还引入了增强认证机制以提供双向的身份确认。

<>认证与授权:通过用户名、密码字段实现对密码认证和Token认证的支持,从而确保只有合法设备能够接入MQTT,并且能够检查接入者可执行的作,例如可以将消息发布到哪些主题以及能够从哪些主题获取消息。

<>2、

<>S:借助S协议,于之上添加SSL/TLS层,以确保数据在客户端与之间加密传输,达成数据加密、身份验证以及数据完整性保护的目的。

<>安全配置:需采用更为复杂的安全举措,例如安全头部、安全的身份验证机制等,从而提升We应用的安全性,防范跨站脚本攻击、跨站请求伪造等情况。

<>八、扩展性

<>1、MQTT

<>多对多通信模式:支持多对多通信模式,这一模式十分契合大规模物联网设备的连接与数据交互需求,能够轻松扩展至大型。例如,在智能家居中,多个传感器与设备可借助MQTT协议相互通信并协同工作。

<>轻量级协议:MQTT的轻量级协议让实现MQTT库的成本较低,易于移植到不同平台,方便在各类物联网设备中集成与应用,为扩展提供了方便。

<>2、

<>可扩展性:协议自身具备一定的可扩展性,能够借助附加头部字段与参数来扩展功能,例如认证信息、缓存控制等。不过,在物联网应用场景下,针对大规模设备连接以及实时数据传输的情形,的扩展性就相对较差。

<>基于We的扩展:主要应用于基于We的应用和服务扩展,与现有的We技术和架构有较好的兼容性,但是在处理物联网设备之间复杂的通信以及大规模连接时,或许会遭遇性能与可扩展性方面的挑战。

<>九、功耗

<>1、MQTT

MQTT协议专为低功耗目标而设计。它在设计时考虑到了资源受限设备与低带宽网络环境的情况,目的在于实现设备间的可通信。该协议能够保持长连接,在空闲时处于低功耗状态,从而节省设备能源,延长电池供电设备的使用寿命。

<>2、

协议在设计之时并未着重考量低功耗这一因素。其头部信息较为完整且规模偏大,在应对频繁的小数据交换时,会造成较大的资源损耗。每一次请求均需构建新的连接,并且在请求完成之后断开连接。这种连接构建与断开的流程会消耗一定的能量,在物联网设备中更是如此,这种频繁的连接作会大幅提升功耗。

MQTT在物联网应用中的传输模式、传输效率、连接建立过程、消息推送机制、数据更新效率、可性、安全性、扩展性、功耗等多个方面具备一定的优势。这些优势让MQTT成为连接众多物联网设备的理想之选,特别是在资源受限的情况下。与之相,协议在物联网场景里就显得较为臃肿,不适用于对实时性和资源使用高效性有极高要求的应用。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/7502.html

分享给朋友:

相关文章

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。 只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。 不构成任何投资建议,成本是多次买入的大致均摊成本 $TIA 成本0 $DYM 成本0 $SAGA 成本0 $STRK 成本0 $…

PHP承载百万/天 访问量需要用到什么技术?

当年做一个百万PV的商城,也不过是两台2c4g的阿里云虚机罢了(其实一台就够,另外一台主要的逼着大家一定开发的时候一定要有负载均衡和横向扩容的意识)。当时框架还是Thinkphp3.2,框架提高运行效率的开关全打开,标准的lnmp模式,单机…

在追求家居美学的过程中,如何选择一款电视机,使其既具备出色的音画质又能与家居装饰相得益彰?

在追求家居美学的过程中,如何选择一款电视机,使其既具备出色的音画质又能与家居装饰相得益彰?

先看照片,你就说美不美吧? 我家这个40平的客厅东西放得不少,其中最提升观感的是各种灯光,在这么多灯光中,是不是第一眼视觉中心就落在了电视上?没错,因为这电视是非常特别的环景光电视,与显示器的神光同步一样,会随着画面的变化而变化不同的光…

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。…

本专业是电气的,请问入门plc 必须要从电工接线开始吗,我怕被公司骗了,想请教各位?

本专业是电气的,请问入门plc 必须要从电工接线开始吗,我怕被公司骗了,想请教各位?

开关接线图 PART 01一开单控开关接线图 二三开连体单控开关接线图 四开连体单控开关接线图 一开五孔单控插座接线图 二开五孔单控插座接线图 一开双控开关接线图 二三开单控开关接线图 四开单控开关接线图 一…

OLED、QLED还是Mini LED?如何在今年双十一选购一款最适合自己的电视?

OLED、QLED还是Mini LED?如何在今年双十一选购一款最适合自己的电视?

我家旧电视用了好几年了,最近毛病越来愈多,动不动就黑屏,让人特别扫兴。 这阵子和家人商量着,趁着现在国家有家电补贴,再加双11大促,不如换一台好一点的新电视,而现在MiniLED技术成熟,很多电视都升级MiniLED了,无论在画面亮度、细节…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。