物联网传输协议为什么首选MQTT?

1.为何选择MQTT
MQTT是一种轻量级的、灵活的网络协议 , 致力于为IoT开发人员实现适当的平衡:
【物联网传输协议为什么首选MQTT?】这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现 。
它的灵活性使得为IoT设备和服务的多样化应用场景提供支持成为可能 。
为了了解为什么MQTT如此适合IoT开发人员 , 我们首先来分析一下为什么其他流行网络协议未在IoT中得到成功应用 。
物联网传输协议为什么首选MQTT?
文章图片
2.为什么不选择其他众多网络协议
大多数开发人员已经熟悉HTTPWeb服务 。 那么为什么不让IoT设备连接到Web服务?设备可采用HTTP请求的形式发送其数据 , 并采用HTTP响应的形式从系统接收更新 。 这种请求和响应模式存在一些严重的局限性:
A.HTTP是一种同步协议 。 客户端需要等待服务器响应 。 Web浏览器具有这样的要求 , 但它的代价是牺牲了可伸缩性 。 在IoT领域 , 大量设备以及很可能不可靠或高延迟的网络使得同步通信成为问题 。 异步消息协议更适合IoT应用程序 。 传感器发送读数 , 让网络确定将其传送到目标设备和服务的最佳路线和时间 。
B.HTTP是单向的 。 客户端必须发起连接 。 在IoT应用程序中 , 设备或传感器通常是客户端 , 这意味着它们无法被动地接收来自网络的命令 。
HTTP是一种1-1协议 。 客户端发出请求 , 服务器进行响应 。 将消息传送到网络上的所有设备上 , 不但很困难 , 而且成本很高 , 而这是IoT应用程序中的一种常见使用情况 。
C.HTTP是一种有许多标头和规则的重量级协议 。 它不适合受限的网络 。
出于上述原因 , 大部分高性能、可扩展的系统都使用异步消息总线来进行内部数据交换 , 而不使用Web服务 。 事实上 , 企业中间件系统中使用的最流行的消息协议被称为AMQP(高级消息排队协议) 。 但是 , 在高性能环境中 , 计算能力和网络延迟通常不是问题 。 AMQP致力于在企业应用程序中实现可靠性和互操作性 。 它拥有庞大的特性集 , 但不适合资源受限的IoT应用程序 。
除了AMQP之外 , 还有其他流行的消息协议 。 例如 , XMPP(ExtensibleMessagingandPresenceProtocol , 可扩展消息和状态协议)是一种对等即时消息(IM)协议 。 它高度依赖于支持IM用例的特性 , 比如存在状态和介质连接 。 与MQTT相比 , 它在设备和网络上需要的资源都要多得多 。
那么 , MQTT为什么如此轻量且灵活?因为MQTT协议的一个关键特性是发布和订阅模型 。 与所有消息协议一样 , 它将数据的发布者与使用者分离 。
????????????????END????????????????


    推荐阅读