物联网中的数据传输协议

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

数据传输无疑是物联网开发中较为关键的部分之一,它提供数据流支持和数据流控制,并确保消息可靠到达。这是一件你必须做对的事情。

有许多不同的数据传输协议可供选择,从 HTTP 到 MQTT,再到任意数量的专有协议。那么您如何决定哪一个最适合您的产品或系统呢?让我们来看看一些最常见的协议的优缺点。

HTTP:大的

HTTP 无疑是物联网开发人员使用最广泛的数据传输协议。这是有原因的:它是一种无处不在的纯文本协议,这意味着将始终支持它并且有大量产品使用它。但也有一个缺点:它的重量很重可能会导致数据包碎片,从而给您的系统带来额外的工作量。虽然很常见,但 HTTP 可能不是最佳选择。

MQTT:轻量高效

消息队列遥测传输 (MQTT) 协议由 IBM 于 1999 年发布,专为连接性较差的低功耗和低资源设备而设计。不过,从那时起,网络基础设施变得更加稳健,我们在物联网之前使用的设备也变得更强大,拥有更好的电源,无论是电池还是电缆。

迄今为止,MQTT 尚未引起广泛关注,尤其是与 HTTP 相比。然而,随着物联网的兴起,突然间出现了大量功耗和资源较低的设备,有时连接不畅。这些正是 MQTT 旨在支持的设备类型,因此它实际上是 IoT 开发的绝佳候选者。

如果 MQTT 有一个缺点,那就是它不像 HTTP 或其他一些协议那样普遍存在。并且对于移动设备开发,没有任何推送服务的集成使用。不过,为了克服这一挑战,开发人员可以自己实施此类服务,或者更好的是使用内置推送集成的 Golgi

专有协议:好处

与所有协议一样,专有协议既有优点也有缺点。主要优点是该协议可以专门为您的用例(即物联网)设计。这意味着该设计消除了协议中任何不必要的额外内容。这种额外的一个很好的例子是在 HTTP 中需要多余的标头。消除这些类型的额外功能可以提高数据传输效率,尤其是在带宽受限的网络上。

专有协议的另一个好处是它们可以包含特定于使用的功能。例如,Golgi 包括针对移动客户端的集成推送通知,它还支持 IoT 设备的多个物理层。这是一个相当新的发展,因为直到最近,高尔基体还完全通过 IP 网络(以太网或 WiFi)传输。然而,正如我们在 最近的一篇博客 中谈到的那样,以太网或 WiFi 可能并不总是一种选择,您可能希望使用蓝牙、BLE 或 ZigBee 等技术来代替。

考虑到这一点,高尔基目前正在重组其实施以允许将其分为两个部分。这种重组后的实现将看到一个数据抽象层,它为传输提供数据对象的类型安全编码/解码,以及一个单独的传输层。仍然会有一个高尔基体传输层,因此您可以像之前一样使用高尔基体。但是,您还可以选择在使用非高尔基体传输层的同时利用高尔基体的数据抽象层。这种职责分离意味着您可以使用 Golgi 通过 ZigBee 等技术从低功耗 IoT 设备传输到 ZigBee-to-IP 网关设备,然后该设备可以传输到 Golgi 云进行路由。

这种分离还有另一种用途:您可以利用高尔基的抽象层并使用您自己或第三方的数据传输技术,而不是使用高尔基作为传输的 IP 承载者。如果您愿意,这种灵活性将允许您更换高尔基体的传输层。

专有协议:一个骗局

如果您选择专有协议,则存在一个问题:提供商可能会在未来某个时候停止其传输服务。这让开发人员和物联网公司保持警惕。但是你可以通过将这种传输换成另一种选择(高尔基体提供的一种选择,正如我们在上一段中看到的那样)来减轻这种恐惧。尽管您可能会失去某些特定于第一个传输提供程序的功能,但请记住,如果您一开始没有使用该提供程序,您就不会拥有它。

总而言之,专有解决方案应该是物联网开发的优秀候选者——尤其是在正确实施的情况下。开发人员可以受益于开箱即用的高效数据传输系统,并具有行业特定的功能,例如集成推送和物理层传输选择。所有这些功能都可以加快上市时间。为了防止将来缺少传输服务,您可以利用定义明确的机制将您的设备从专有数据传输迁移到另一种数据传输机制。

在选择数据传输协议之前,权衡每种协议的优缺点是绝对必要的。但即使有它们的缺点,请记住,MQTT 和专有协议为物联网提供了最佳解决方案,因为它们专为低功耗、资源有限、连接不良的环境而设计。