物联网协议分析:MQTT VS MQTT-SN

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的协议格式。

 

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

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章