这篇文章主要介绍“MQTT-SN和MQTT的不同点有哪些”,在日常操作中,相信很多人在MQTT-SN和MQTT的不同点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MQTT-SN和MQTT的不同点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
MQTT-SN(Sensor Networks)是MQTT协议的传感器版本,最早使用在zigBee无线网络中,主要面对电池供电,有限的处理器能力和存储能力的设备。基于TCP协议的MQTT对有些传感器来说还是负载太重了,这些传感器可能只有几十个字节的内存,无法运行TCP协议。
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网关先把消息存储起来,等设备醒来再下发。这个有点像手机短信,手机关机后,短信存储在运营商的短信交换中心,手机开机后再下发。
到此,关于“MQTT-SN和MQTT的不同点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。