Micheal E. Anderson:比较IoT的消息传递技术,OpenIoTSummit,Linux Foundation。
他的演讲幻灯片可在此处
在幻灯片26和41分钟的视频中,他正在讨论如何(让我解释一下):
蜂窝运营商更喜欢其IoT消费者使用HTML,XML或JSON类型的消息,因为它们消耗更多的数据。更多数据意味着他们可以向消费者收取更多服务费用。
我了解许多专有协议,也就是。 SigFox,Wireless HART或Z Wave具有较低的数据速率,而在此类载波上发送大量数据可能是一项昂贵的事情。
问题
在专有协议中是否还有其他轻量级消息格式正在使用,这使它们成为当前和未来的经济高效的解决方案物联网消费者? (在黑暗中射击:某种叫做轻量级XML或HTML或JSON的格式位于某处?)
也许是CBOR或已被使用?
#1 楼
您是在询问协议还是消息格式?当我们指的是数据格式时,我们经常错误地使用术语协议。我自己做这件事,通常是因为每个人都不清楚区别。 (会话,流量控制,可靠性等)。消息格式是所发送消息中数据的格式。我假设这就是您要问的。最紧凑的消息格式是经过仔细考虑的手动滚动二进制格式。在低带宽情况下,当您要发送几个字节并确切知道这些字节是什么样时,通常使用它。对于较大的消息,缺点很明显,通常应不惜一切代价避免。
我对许多不同的数据序列化选项进行了详细的评估。我希望protobuf,messagepack相当紧凑。但是,我的第二个问题是找到可以在许多不同平台上维护并可用的库,包括设备上的C。
我确定的格式令人惊讶地是gzip压缩的JSON。它很容易实现和理解,可以在任何地方运行,并且与我使用的数据相比,其他方法几乎相同或更小。
还请注意,如果您拥有安全的渠道例如TLS,无论如何,您都将在TLS握手中消耗大量数据(> 6KB)。发生了可能是因为可以轻松写出和解析(和压缩)json。我喜欢Flatbuffers的外观,但优点是解析速度比紧凑更重要。
由于您正处于调查阶段,因此建议您使用每种情况的典型数据在每个代码上编写一些代码,并进行一些比较。开始时拥有硬数据有助于确认您的选择。
评论
我怀疑数据带宽可能是二阶成本,而不是由应用程序开发人员实际支付的。因此,尽管值得担心,但该领域可能还会有更多的发展。您有没有特别感兴趣的情况?如果您要发送可预测的数据类型(例如,仅仅是整数或其他形式),则可以完全放弃标记语言,但这确实限制了您可以表达的信息量。如果您只对通常使用JSON / HTML / XML的任何情况感兴趣,也可以。
@ Aurora0001我实际上没有特别的情况,但是值得考虑。我认为,为了兼容可能连接到蜂窝网络的基于Web的网络(以IP为主),标记语言是数据格式的最佳形式。但是由于物联网领域通常正在起飞,因此可能值得尝试使用不同的格式。
抱歉,图片有点混乱:任何网络上的消息传递都有几层,其中数据层仅位于顶层。所有这些都在优化中,或者至少可以。例如5G增强了所使用的信令,因此可以容纳更多数据.5G甚至增强了空中信号的频谱效率,因此效率从许多方面受到关注。