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

MQTT-SN(Sensor Networks)是MQTT协议的传感器版本,基于TCP协议的MQTT对有些传感器来说还是负载太重了,这些传感器可能只有几十个字节的内存,无法运行TCP协议。MQTT-SN对MQTT对内存受限的微处理器做了适当的优化,使之能够跑在这种处理器上。

MQTT-SN和MQTT的不同点

1 协议运行的层次不同

MQTT运行在TCP层之上,MQTT-SN可以运行在MAC层,IP层和UDP之上。

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信息不能跨网关传输。 这样网关可以灵活配置,不需要固定某一个网关。

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值