关于堆栈溢出问题协议术语:消息与数据包,我想将以下公认的意见与MQTT协议联系起来。
这些绝对是信息。“数据包”是层-3(在ISO术语中)协议单元,如IP包;“数据报”是层-1或层-2单元,例如几个可能构成IP数据包碎片的以太网数据报。因此,一个消息可能被分成几个包,特别是当您使用诸如TCP这样的流协议时,一个数据包可能被拆分到几个数据报中。
MQTT协议定义控制数据包。
MQTT协议通过以一种定义的方式交换一系列MQTT控制数据包来工作。
参考已接受的链接堆栈溢出问题的答案,MQTT使用的单词包是否不正确?或者还有什么需要考虑的东西,才能使包这个词的用法正确呢?
发布于 2022-02-27 00:52:07
语言没有内在的意义;它们意味着我们同意它们的意思。正如答案提到的"ISO术语“,让我们从ISO”信息技术-词汇“(ISO/IEC 2382:2015)中给出的”数据包“定义开始:
以特定格式排列的位序列,包含控制数据和可能的用户数据,并作为一个整体进行传输和交换。
MQTT控制包是否符合此定义将取决于您如何理解“作为一个整体进行传输和交换”。
这一定义在其他地方有些不同,甚至在其他ISO标准中也是如此。快速搜索发现ISO/IEC 14476-1:2002,它定义的“数据包”更符合您所引用的答案的方式:
表示传输数据的一个单位,它等价于TCP/IP中的一个段和OSI模型中的传输协议数据单元(TPDU)。
所以我想这个定义取决于上下文。尽管如此,我认为很难认为MQTT规范中的用法“在ISO术语中”是不正确的。我之所以这么说,是因为MQTT规范实际上是一个ISO标准(ISO/IEC 20922:2016),其中包括"MQTT控制数据包“的定义:
通过网络连接发送的信息包。MQTT规范定义了14种不同类型的控制包,其中一种(发布包)用于传递应用程序消息。
https://stackoverflow.com/questions/71274830
复制相似问题