首页 > 其他分享 >2. 物联网协议

2. 物联网协议

时间:2023-03-30 14:33:26浏览次数:43  
标签:协议 层级 订阅 主题 通配符 联网 Mqtt 消息

物联网协议

  • MQTT协议(消息队列遥感传输协议)
    • 协议简介:
      • MQTT协议是基于Tcp/IP协议栈构建的异步通信消息协议,是一种轻量级的发布、订阅信息传输协议
      • 专门针对低带宽和不稳定网络环境的物联网应用而设计(低带宽,低开销)
    • 协议特点:
      • 低带宽,低开销
      • 发布/订阅消息模式
      • 支持Qos服务质量等级
      • 支持心跳机制,will遗嘱机制
      • 与Http的对比
        • Mqtt的最小报文仅为2个字节,比Http占用更少的网络开销
        • Mqtt与Http都能使用Tcp连接,并实现稳定、可靠的网络连接
        • Mqtt基于发布订阅模型,Http基于请求响应,因此Mqtt支持双向通信
        • Mqtt可实时推送消息,但Http需要通过轮询获取数据更新
        • Mqtt是有状态的,但Http是无状态的
        • Mqtt可从连接异常断开中恢复,Http无法实现
    • 协议知识点
      • 发布/订阅消息模式,提供一对多的消息发布
        • 发布者
          • 负责将消息发布到主题上,发布者一次只能向一个主题发送数据,发布者发布消息时无需关心订阅者是否在线
        • 订阅者
          • 订阅者接收发布者的信息,且可一次订阅多个主题,Mqtt支持通过共享订阅的方式在多个订阅者之间实现订阅的负载均衡
        • 代理
          • 负责接收发布者的消息,并将消息转发至符合条件的订阅者,也负责处理客户端发起的连接,断开连接,订阅,取消订阅等请求
        • 主题(Topic)
          • 主题是Mqtt进行消息路由的基础,类似Url路径,使用斜杠/进行分层,一个主题可以有多个订阅者,代理会将该主题下的消息转发给所有的订阅者,一个主题也可以有多个发布者,代理将按照消息到达的顺序转发
          • Mqtt还支持订阅者使用主题通配符一次订阅多个主题(通配符只能用于订阅,不能用于发布
            • 单层通配符 +
              • + 是用于单个主题层次匹配的通配符,在使用单层通配符必须占据整个层级
              • 例如:
                sensor/+ 有效
                sensor/+/temperature 有效
                sensor+ 无效(没有占据整个层级) 
                
                img
            • 多层通配符 #
              • #是用于匹配主题中任意层级的通配符。多层通配符表示它的父级和任意数量的子层级,在使用多层通配符时,它必须占据整个层级并且必须是主题的最后一个字符
              • 例如:
                sensor/# 有效
                sensor/bedroom# 无效(没有占据整个层级)
                sensor/#/temperature 无效(不是主题最后一个字符)
                
                img
            • 注意:
              • 建议主题层级为7个以内,使用较短的主题名称和较少的主题层级意味着较少的资源消耗
              • 不建议使用# 订阅所有的主题
              • 不建议主题以/开头或结尾,例如/chat或chat/
              • 不建议在主题里添加空格及非ASCII特殊字符
              • 同一主题层级内建议使用下划线_或横杆-连接单词
              • 使用通配符时,将唯一值的主题层(例如设备号) 越靠近第一层越好。例如 device/00000001/command/#device/command/00000001/# 更好
      • img
      • 消除会话(Clean Session)
        • 持久会话能被恢复的前提是客户端使用固定的client Id再次连接,如果是动态的则无效
        • 对于那些想要在重新连接后,收到离线期间错过的消息的客户端,可在连接时设置关闭消除会话,此时服务端将会为客户端存储订阅关系与离线消息,并在客户端再次上线后发送给客户端
      • 支持Qos服务质量等级,根据消息的重要性不同设置不同的服务质量等级
        • Qos0:消息最多传递一次
          • 如果当前客户端不可用,则会丢失该消息,发布者发送一条消息之后,就不再关心有没有发送到对方,也不设置任何重发机制
            img
        • Qos1:消息传输至少一次
          • 包含了简单的重发机制,发布者发送消息之后等待接收者的Ack,如果没有接收到Ack则重新发送消息。这种模式能保证消息至少能到达一次,但无法保证消息重复
            img
        • Qos2:消息仅传送一次
          • 设计了重发和重复消息发现机制,保证消息到达对方并且严格只到达一次
            img
      • 基于Topic发布/订阅消息,对负载内容屏蔽的消息传输
      • 使用will遗嘱机制来通知客户端异常断线
        • 遗嘱消息时Mqtt为那些可能出现意外断线的设备提供的将遗嘱优雅的发送给第三方的功能
        • 可以看作一个简化版的Publish消息,也包含Topic,Payload,Qos等字段。遗嘱消息会在设备与服务端连接时,通过Connect报文指定,然后在设备意外断线时由服务端将该遗嘱消息发布到连接时指定的遗嘱主题上。
      • 支持心跳机制
        • Keep Alive机制

标签:协议,层级,订阅,主题,通配符,联网,Mqtt,消息
From: https://www.cnblogs.com/blackamon/p/17272556.html

相关文章

  • 甘肃互联网医院牌照申办|互联网医院系统开发
     甘肃互联网医院牌照申办|互联网医院系统开发|兰州市|嘉峪关市|金昌市|白银市|天水市|武威市|张掖市|平凉市|酒泉市|庆阳市|定西市|陇南市|临夏回族自治州|甘南藏族自治......
  • 青海互联网医院牌照申请条件和代办流程
     青海互联网医院牌照申请条件和代办流程|西宁市|海东市|海北藏族自治州|黄南藏族自治州|海南藏族自治州|果洛藏族自治州|玉树藏族自治州|海西蒙古族藏族自治州 由于前......
  • QuantumultX vmess协议格式
    #节点配置片段包含一些节点配置信息;可通过资源引用的方式使用。#片段文件将保存在QuantumultX目录下的Profiles子目录中。比如改文件名叫“vpsnode”vmess=xxx.......
  • C/C++ 思考:策略模式在协议解析中的应用
    目录引出问题传统解析方式策略模式简介UML类图改进1:基于函数的代码结构改进改进2:基于对象的结构改进参考引出问题在基于消息包的通信协议中,通常会通过一个id或命令名来标......
  • 物联网平台产品的修行和破局
    01个人成长的坚持和初心1.每一段自我革新和突破首先做一下自我介绍。我毕业于哈尔滨工业大学空间自主控制专业,在博士第三年发现自己不适合象牙塔后便退学进入了社会。......
  • 推荐给大家一款高性价比的LoRa物联网网关
    又和大家见面了,今天我们话不多说,东东想给大家介绍一款非常出色的LoRa物联网网关——OGC300。这款产品由东用科技推出,具有高度灵活性、优秀的性价比和完美的兼容性等优点,安......
  • 智能机场能耗物联网系统,助力节能增效智能管理
    随着城市化进程的发展,远途出行的需求日益增多,无论是出差还是旅行,乘坐飞机都是很多民众的选择,这就要求机场要有足够强大的容纳与流通能力,对机场运维管理产生更高的要求,能耗成......
  • 2011年最值得拥有的五大联网设备
    还记得当年坐在笨重的计算机和CRT显示器前,通过拨号上网么?幸运的是,那些日子早已消逝在时间长河中,今天,我们可以通过各种或大或小的设备快速联网,无需再经过漫长的等待,也无需再......
  • 可可私房菜:一个普通中国女孩的移动互联网创业经
    可可是一名朝九晚五的普通白领,自我介绍为“大头、微圆、爱笑、稍呆、臭美、好摄、乐淘”。业余喜欢研究美食和摄影,闲暇时就在百度空间里贴点美食相关......
  • 电子签名公司Docusign融资$4750万 互联网女皇坐镇董事会
    一份SEC文件显示,电子文件签名技术提供商Docusign刚刚获得4750万美元的融资(本轮融资预计将达到5600万美元),互联网女皇MaryMeeker成为公司董事会成员之一;而具体条款及投资机......