MQTT与MQTT-SN协议详解
1. MQTT协议概述
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,常用于物联网(IoT)设备与云平台之间的通信。云管理的MQTT代理通常每小时可以处理数百万条消息,并支持数万个发布者。
1.1 数据格式与有效负载
MQTT对数据格式没有严格要求,有效负载可以包含任何类型的数据,如文本消息、图像数据、音频数据、加密数据、二进制数据、JSON对象等。不过,JSON文本和二进制数据是最常见的有效负载类型。MQTT允许的最大数据包大小为256 MB,但实际的最大数据有效负载大小取决于云服务提供商和代理。例如,IBM Watson允许的有效负载大小最大为128 KB,而Google支持256 KB。此外,发布的消息可以包含零长度的有效负载,因为有效负载字段是可选的。在使用时,建议与云服务提供商确认有效负载大小,以避免出现错误和断开连接的情况。
1.2 架构特点
虽然MQTT的名称中包含“消息队列”,但该协议本身并没有内置消息队列。消息可以进行排队,但这不是必需的,而且通常也不会这样做。MQTT基于TCP协议,因此能够保证数据包的可靠传输。
MQTT是一种非对称协议,与HTTP的非对称协议有所不同。在非对称协议中,节点A与节点B通信时,只需要一方(如A)使用该协议,且所有用于数据包重组的信息必须包含在A发送的分段头中。非对称系统通常有一个主节点和一个从节点,如FTP就是一个典型的例子。而在对称协议中,A和B都需要安装该协议,A或B可以担任主节点或从节点的角色,如telnet就是一个主要的例子。MQTT的角色明确,这在传感器/
超级会员免费看
订阅专栏 解锁全文
1103

被折叠的 条评论
为什么被折叠?



