物联网协议比较:MQTT VS MQTT-SN

物联网
MQTT-SN(Sensor Networks)是MQTT协议的传感器版本,最早使用在zigBee无线网络中,主要面对电池供电,有限的处理器能力和存储能力的设备。

MQTT-SN(Sensor Networks)是MQTT协议的传感器版本,最早使用在zigBee无线网络中,主要面对电池供电,有限的处理器能力和存储能力的设备。基于TCP协议的MQTT对有些传感器来说还是负载太重了,这些传感器可能只有几十个字节的内存,无法运行TCP协议。

[[240418]]

MQTT-SN和MQTT的不同点

1. 协议运行的层次不同

MQTT运行在TCP层之上,MQTT-SN可以运行在MAC层,IP层和UDP之上。MQTT-SN应用的场景主要是各种低功耗传感器网络,需要电池供电,对功耗非常敏感,TCP虚拟长连接需要维持一个定时心跳,对电池来说不是一个好的解决方案。在传感器网络中,链接可能随时中断,TCP连接也要不断的重新建立连接,这样对功耗都是大的消耗。

2. QOS增加了-1级别或3

QOS -1 级别在设置的时候QOS flag还是要设置3(“0b11” ),-1仅仅是个称谓,这个级别仅仅适用在非常简单的应用中,不需要建立连接或者断开连接,不需要注册或订阅,这时客户端仅仅是发送public消息给网关即可。发布的消息也不需要得到消息确认。

3. 订阅主题方式

MQTT-SN可以使用MQTT的订阅主题格式,长名字主题如“/beijing/sen1”,也可以使用只有两个字符的短名字主题如“s1”,还可以使用预先定义好的主题ID如 "1", 如果不使用长名字主题不能使用通配符。

4. 发布消息

和订阅主题一样,可以使用两个字符的短名字主题或者使用定义好的主题ID。

注意:主题ID的内容对不同客户端来说可能一样也可能不一样。比如A传感器订阅了主题ID 1 内容是/beijing/sen1,B传感器也订阅了主题ID1内容是/beijing/sen2,他们的内容是不一样的。

5. 网络架构

MQTT-SN多了一种节点,就是MQTT-SN网关。网关的作用主要是协议转换,把底层的MQTT-SN协议转换为MQTT的协议格式。

如上图所示,网关有两种,一种透明网关,仅仅是起透传作用做简单的拆包组包,另一个是聚合网关,把多个节点聚合到一起传给消息代理。

6. 网关发现

在MQTT-SN中,客户端不用去记忆网关的地址,网关会定期的广播ADVERTISE信息,里面有自己的地址,客户端接收地址,当有多个网关时候,网关需要带上自己的网关ID,由客户端来决定连接哪一个,任何时候,一个客户端只能连接一个网关。客户端也可以发送网关查询(SEARCHGW信息),这时候网关将回应GWINFO

信息。防止产生广播风暴有两个参数,网关查询报文的发送需要等待一个随机时间,发送的网关查询经过的网关条数一般设为1,也就是说SEARCHGW信息不能跨网关传输。 这样网关可以灵活配置,不需要固定某一个网关。

7. 支持设备睡眠

如果设备睡眠,则MQTT-SN网关先把消息存储起来,等设备醒来再下发。这个有点像手机短信,手机关机后,短信存储在运营商的短信交换中心,手机开机后再下发。

责任编辑:赵宁宁 来源: 物联网电子世界
相关推荐

2023-09-07 14:59:42

物联网MQTTCoAP

2023-06-20 14:04:59

2024-03-26 11:52:13

2023-03-20 16:16:40

MQTT传输协议

2022-06-27 10:41:45

MQTT物联网协议

2019-12-27 10:42:45

HTTPMQTT物联网

2023-09-24 23:18:50

2013-04-28 10:29:07

MQTT物联网消息队列遥测传输

2023-04-19 15:02:01

MQTT人工智能物联网

2023-07-18 10:38:09

2022-05-17 11:06:52

车联网通信协议MQTT

2018-03-29 10:13:54

物联网协议MQTT

2024-01-12 07:46:07

MQTT协议物联网应用.NET

2019-10-17 09:07:49

TCPUDPHTTP

2019-05-15 08:40:34

工业物联网MQTT物联网

2019-05-15 08:26:44

工业物联网MQTT物联网

2023-09-27 14:32:44

2019-12-27 10:35:59

物联网协议LWM2M MQTTCoAP

2022-09-26 11:30:40

MQTT协议客户端协议

2016-04-05 10:28:56

百度物联网开放云
点赞
收藏

51CTO技术栈公众号