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

时间:2018-08-17
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 VS MQTT-SN
  MQTT-SN多了一种节点,就是MQTT-SN网关。网关的作用主要是协议转换,把底层的MQTT-SN协议转换为MQTT的协议格式。
 

  如上图所示,网关有两种,一种透明网关,仅仅是起透传作用做简单的拆包组包,另一个是聚合网关,把多个节点聚合到一起传给消息代理。
  6 网关发现
  在MQTT-SN中,客户端不用去记忆网关的地址,网关会定期的广播ADVERTISE信息,里面有自己的地址,客户端接收地址,当有多个网关时候,网关需要带上自己的网关ID,由客户端来决定连接哪一个,任何时候,一个客户端只能连接一个网关。客户端也可以发送网关查询(SEARCHGW信息),这时候网关将回应GWINFO
  信息。防止产生广播风暴有两个参数,网关查询报文的发送需要等待一个随机时间,发送的网关查询经过的网关条数一般设为1,也就是说SEARCHGW信息不能跨网关传输。 这样网关可以灵活配置,不需要固定某一个网关。
  7 支持设备睡眠
  如果设备睡眠,则MQTT-SN网关先把消息存储起来,等设备醒来再下发。这个有点像手机短信,手机关机后,短信存储在运营商的短信交换中心,手机开机后再下发。
上一篇:详解干扰电源滤波器的分类与选型!
下一篇:一文了解18650与21700电池

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料