目录

Qos简介

Qos等级及其说明

Qos的重要性

Qos工作模式

Qos=0

Qos=1

Qos=2


写MQTT项目的时候,没有感受到Qos服务质量参数的重要性,直到报错后一直无法解决,在曾经的代码尝试无误,合成的项目中就出现了错误,仔细对比代码逻辑是一样的,只有服务质量不同,抱着尝试的态度试了试,果然可以!

Qos简介

QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。(百度百科)

当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。QoS应运而生。支持QoS功能的设备,能够提供传输品质服务;针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。

Qos等级及其说明

MQTT设计了一套保证消息稳定传输的机制,包括消息应答、存储和重传。在这套机制下,提供了三种不同层次QoS(Quality of Service):

  • QoS0,At most once,至多一次;
  • QoS1,At least once,至少一次;
  • QoS2,Exactly once,确保只有一次。

QoS 是消息的发送方(Sender)和接受方(Receiver)之间达成的一个协议:

  • QoS=0 代表,Sender 发送的一条消息,Receiver 最多能收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,也就算了;
  • QoS=1 代表,Sender 发送的一条消息,Receiver 至少能收到一次,也就是说 Sender 向 Receiver 发送消息,如果发送失败,会继续重试,直到 Receiver 收到消息为止,但是因为重传的原因,Receiver 有可能会收到重复的消息;
  • QoS=2 代表,Sender 发送的一条消息,Receiver 确保能收到而且只收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,会继续重试,直到 Receiver 收到消息为止,同时保证 Receiver 不会因为消息重传而收到重复的消息。

Qos的重要性

QoS 是MQTT的一个主要的功能。它使得在一个不稳定的网络环境里的信息交换更加的简单,因为协议控制了中继并保证了信息的交付,忽略了不可靠的下层的交互。并且,它授权给客户端来根据客户端的程序逻辑,网络可靠程度来决定QoS等级。

Qos工作模式

Qos=0

保证一次信息尽力交付,发出去了就不管了

Qos=1

保证消息可以被至少接受发送一次给接受者,可能被重复接受

发送者将会存储发送的信息直到发送者收到一次来自接收者的PUBACK格式的应答。

Qos=2

保证消息发送出去后,接收方接受且只接受一次,是最安全也是最慢的服务

如果接收端接收到了一个QoS 的PUBLISH消息,它将相应地处理 PUBLISH消息,并通过PUBREC消息向发送方确认。

使用 QoS0

  • Client 和 Broker 之间的网络连接非常稳定,例如一个通过有线网络连接到 Broker 的测试用 Client;
  • 可以接受丢失部分消息,比如你有一个传感器以非常短的间隔发布状态数据,所以丢一些也可以接受;
  • 你不需要离线消息。

使用 QoS1:

  • 你需要接收所有的消息,而且你的应用可以接受并处理重复的消息;
  • 你无法接受 QoS2 带来的额外开销,QoS1 发送消息的速度比 QoS2 快很多。

使用 QoS2:

  • 你的应用必须接收到所有的消息,而且你的应用在重复的消息下无法正常工作,同时你也能接受 QoS2 带来的额外开销。

(参考百度百科)

MQTT——服务质量Qos相关推荐

  1. MQTT中QOS=2的四次包交互

    MQTT协议在我们工作中经常用到,MQTT有三种QOS,分别为At most once delivery.At least once delivery.Exactly once delivery,每种 ...

  2. 什么是服务质量(QoS) ?—Vecloud微云

    什么是服务质量(QoS) ? QoS是指网络能够利用各种基础技术为所选网络数据流提供更好的服务,这些技术包括帧中继.异步传输模式(ATM).以太网和802.1网络,SONET和IP路由的网络. QoS ...

  3. 网络切片技术缺点_网络切片和服务质量(QoS)有什么区别?

    原标题:网络切片和服务质量(QoS)有什么区别? [OEM合作]小鸟云OEM能够为合作商提供完整的OEM公有云业务管理系统 + 无限制资源池API接口,合作商无需考虑复杂的资源池建设方案,也无需考虑庞 ...

  4. 网络切片技术缺点_一文读懂网络切片和服务质量(QoS)的差异

    网络切片几乎在5G出现的每个行中都有提及,但通常情况下其定义是模糊的.网络切片究竟是什么,它与已经存在多年的服务质量(QoS)有何不同? 网络切片是一种特定的虚拟化形式,允许多个逻辑网络在共享的物理网 ...

  5. 了解什么是服务质量QoS以及如何提高网络性能

    服务质量(QoS)是任何成功网络的关键组成部分.它确保您的数据按时交付到目的地,没有中断或损坏.这有助于提高网络的性能,以及连接到网络的用户的体验.在这篇文章中,我们将探讨什么是服务质量(QoS),如 ...

  6. MQTT:QoS服务质量 0,1,2(Quality of Service 0, 1 2)

    原文链接:http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels 转载链接:http://bl ...

  7. 服务质量QoS(Quality of Service)的基础知识

    QoS概述 浅谈QoS--QoS概述 网络抓包工具Wireshark下载安装&使用详细教程 QoS简介 在传统的计算机网络中,网络设备对于数据包的处理方式都是相同的,平等的对待所有的数据流量. ...

  8. K8S的服务质量QoS —— 筑梦之路

    K8S中的应用服务质量(QoS)介绍 服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级 Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂 ...

  9. dscp值_值得收藏 网络服务质量QOS分类中的DSCP详解

    在QOS分类当中,有个比较重要的概念-DSCP DSCP差分服务代码点(Differentiated Services Code Point),是IETF于1998年12月发布的Diff-Serv(D ...

  10. MQTT QoS 设计:车联网平台消息传输质量保障

    在本专题系列文章中,我们将根据 EMQ 在车联网领域的实践经验,从协议选择等理论知识,到平台架构设计等实战操作,与大家分享如何搭建一个可靠.高效.符合行业场景需求的车联网平台. 在此之前,我们已经介绍 ...

最新文章

  1. android标题栏添加按钮_改善Android布局性能
  2. 使用Java处理除法运算的陷阱
  3. 卫星通信频段:C频段、Ku频段和Ka频段
  4. asp.net中的窗体身份验证
  5. 外部中断器1C语言程序,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  6. echarts 卡_图表太丑怎么破,ECharts神器带你飞!
  7. java undo_用JAVA实现Undo、Redo,Copy、Paste、Cut_java
  8. Codeforces Round #371 (Div. 2) C. Sonya and Queries —— 二进制压缩
  9. 百度SEO抖音无水印解析网站源码
  10. js 防止重复提交方案
  11. slam无人车清除地图残影
  12. 深度学习-图解卷积运算
  13. PHP进销存源码 ERP多仓库管理系统源码 手机端+小程序版进销存 全开源可二开 uniapp
  14. 从单机到分布式数据库存储系统的演进
  15. 小米生态链成功的12个关键因素
  16. 米家电磁炉显示e10_MIJIA 米家 电磁炉
  17. 基于[三星6818]I2C驱动开发的0.96寸oled屏
  18. Android分享wifi给电脑,安卓手机怎么通过USB共享网络给mac电脑
  19. 【元胞自动机】元胞自动机双边教室疏散【含Matlab源码 1208期】
  20. Python基础教程书籍案例:新闻采集(新闻聚合)【上】

热门文章

  1. 燃烧的远征服务器排队小程序,请排队-在线排队叫号微信小程序
  2. 博弈论总结(题目合集)
  3. 计算机安全知识策划书,安全知识竞赛策划书
  4. uniapp 蓝牙通讯(搜索/连接蓝牙、读、写)
  5. pytorch detach用法
  6. 流媒体技术基础-流媒体文件格式
  7. “我明白”, “I Understand”的其他英语表达方式
  8. java----正则表达式
  9. 华师计算机前沿讲座课程论文,17春华师《教育技术前沿讲座》在线作业
  10. 暗黑管理系列:发红包的管理杠杆率和量级作用