物联网:协议之战(HTTP vs. Websockets vs. MQTT)

物联网:协议之战(HTTP vs. Websockets vs. MQTT)缩略图
本文目录
  1. 1. HTTP/2
  2. 2. Websockets
  3. 3. MQTT
  4. 4. 哪种协议最适合物联网?

物联网(IoT)设备是一类依赖互联网进行信息传输的机器,其工作基于其特定任务。这些设备范围广泛,包括微波炉、洗衣机、灯具等各种家居设备,随着智能手机的普及,它们甚至在车辆中也变得常见。如果按照当前的趋势来看,几乎所有事物都将逐渐变成IoT设备。例如,小米米家和天猫精灵等智能家居设备的普及就展示了IoT如何像手机一样渗透到我们的生活中。然而,随着这项技术的不断发展,支持其运行的通信协议也必须不断演进。虽然在数据通过网络传输时可能会涉及多种通信协议,但在IoT领域,主要采用的协议主要有HTTP、Websockets和MQTT。而随着HTTP/2作为较新的参与者进入这个领域,重新评估其在IoT中与Websockets和MQTT相比的适用性是很有必要的。

HTTP/2

HTTP/2是HTTP协议的现代修订版本,它起源于谷歌的一个实验项目,名为SPDY,旨在提高浏览器端和服务器端的通信速度。HTTP/2的基本原理与HTTP/1.x相同,但通过改进网络和服务器端资源的利用,旨在降低终端用户感知到的延迟。换句话说,它就是HTTP/1.x的升级版本,速度更快。具体来说,新协议采用了多路复用技术来处理TCP请求,而不像HTTP/1采用了有序和阻塞的格式,这可以减少数据拥塞,提高性能。此外,HTTP/2采用了二进制格式,而不是文本格式,因此比其基于文本的前身更加紧凑。最后,HTTP/2还引入了服务器推送功能,这使得它可以向客户端推送数据,而无需等待客户端的请求,这一点之前通常需要Websockets来实现。因此,HTTP/2在IoT领域应该能够胜任,因为它的紧凑传输和低开销将减轻硬件在内存和电池消耗方面的压力。

Websockets

Websockets是一种协议,用于在Web浏览器(或类似软件)与Web服务器之间进行握手,从而减少使用HTTP进行双向通信时的开销。与HTTP/1采用的请求-响应模式不同,Websockets采用双向通信,非常适用于需要实时监控和频繁更新的系统。虽然Websockets自2008年以来一直存在,但它们相对较新,因此还未完全成熟。

随着HTTP/2引入双向或全双工通信功能,Websockets的需求可能会逐渐减少,至少在IoT领域是如此。实际上,过去几年中,一直存在一个问题,即HTTP/2是否会使Websockets变得过时。答案是“不完全如此”,因为HTTP/2引入的服务器推送功能虽然可以向客户端传输数据,但不会直接推送到客户端应用程序。因此,许多设备仍然需要类似Websockets提供的握手过程。因此,将Websockets视为“过时”的说法有些过于绝对,更准确的描述应该是它们在某些情况下可能“不再必要”。

MQTT

消息队列遥测传输(MQTT)是一种轻量级协议,由IBM发明,旨在促进机器之间的通信。它采用发布和订阅模型,以确保不同平台之间的高效通信,并提供消息优先级的级别控制。尽管目前尚未标准化(正在通过结构化信息推进组织(OASIS)进行标准化),但由于其小巧的协议头和低带宽消耗,MQTT已广泛用于IoT和大规模通信。尽管尚未标准化,但MQTT已经被Facebook Messenger、Amazon Web Services和Microsoft Azure的IoT Hub等大公司采用,成为首选的IoT通信协议。MQTT的紧凑协议头和服务质量(Quality of Service,QoS)功能旨在基本层面上实现可靠的机器对机器通信,几乎不需要额外的工作来确保顺畅运行。MQTT中的QoS功能意味着每条消息都有三个级别的检查来确保消息的可靠传递。这些级别在逐级提高时会增加带宽使用,但在关键传输方面提供了最高级别的保障。

哪种协议最适合物联网?

大多数人认为最佳协议取决于您的具体需求,但也有人认为这些协议适用于不同的应用领域,难以进行直接比较。然而,所有三种协议的关键因素都是它们如何有效地利用资源,例如带宽和电池寿命,以及它们的功能多样性。因此,总的来说,对于IoT而言,MQTT

可能是最佳选择。因为HTTP/1.x和Websockets并没有专门设计用于机器对机器通信。Websockets通常不适合IoT,特别是在智能家居等场景中,因为在机器对机器通信中,第二个“机器”通常无法支持Web客户端软件。而HTTP/2虽然是新兴的协议,但在得到广泛应用之前,还不能被视为成熟的MQTT协议的可靠替代品。

技术术语(共 5 个)—— 点击展开
MQTT轻量级物联网消息传输协议,基于发布/订阅模式,适合低带宽不稳定网络
QoS服务质量等级,0 最多一次 / 1 至少一次 / 2 恰好一次
订阅客户端向 Broker 注册感兴趣的主题以接收消息
发布客户端向指定主题发送消息
WebSocket浏览器与 Broker 通过 ws/wss 传输 MQTT 的通道
来源/工具信息 —— 点击展开
来源 MQTT中文网(mqtt.cn) —— 国内领先的MQTT通信协议技术社区 分类 MQTT 新闻 字数 1820 字 · 阅读约 5 分钟 更新 2023-09-23 永久链接 https://www.mqtt.cn/677.html
推荐工具:MQTT调试助手 微信小程序
MQTT中文网官方推出的MQTT调试工具,支持 MQTT 3.1.1/5.0 实时连接调试、主题订阅、消息收发监控与报文分析。 无需安装,微信搜索「MQTT调试助手」即可使用。 电脑端入口:https://www.mqtt.cn/mqtttool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 mqtt.cn
相关标签
📝 作者声明
本文由 MQTT中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口