什么是QoS?

2024-09-02 08:32
文章标签 qos

本文主要是介绍什么是QoS?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“朱小厮的博客”,选择“设为星标”

后台回复"书",获取

后台回复“k8s”,可领取k8s资料

QoS(Quality of Service)即服务质量。在有限的带宽资源下,QoS为各种业务分配带宽,为业务提供端到端的服务质量保证。例如,语音、视频和重要的数据应用在网络设备中可以通过配置QoS优先得到服务。

图1-1 什么是QoS?QoS是如何工作的?


ff762aee56cb2baa78bc9ef3f86d6647.png

QoS的重要性

在IP网络的业务可以分为实时业务和非实时业务。实时业务往往占据固定带宽,对网络质量变化感知明显,对网络质量的稳定性要求高,例如语音业务。非实时业务所占带宽难以预测,经常会出现突发流量。突发流量会导致网络质量下降,会引起网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。

解决网络拥塞的最好的办法是增加网络的带宽,但从运营、维护的成本考虑,这是不现实的,最有效的解决方案就是应用一个“有保证”的策略对网络流量进行管理。

QoS一般针对网络中有突发流量时需要保障重要业务质量的场景。如果业务长时间达不到服务质量要求(例如业务流量长时间超过带宽限制),需要考虑对网络扩容或使用专用设备基于上层应用去控制业务。

近几年,视频的应用出现了爆炸式的增长,现在几乎每个人都拥有一部能够随时随地拍摄高分辨率视频的智能手机。同时随着社交网站的涌现,分享和发布视频成了每个人的日常行为,人们不论身在何处都可以将自己制作的视频发布出去与他人分享。对于企业来说,高清视频会议,高清视频监控等应用,也在网络中产生了大量的高清视频流量。与语音流量相比,视频流量占用的带宽更多,也更不稳定,特别是一些交互类视频,对实时性要求非常高。另外,随着无线网络的发展,越来越多的用户和企业都开始使用无线终端,而无线终端会随着用户的移动而不断变化位置,导致网络中的流量更加的不可预测。因此QoS方案设计也面临更多的挑战。

QoS的度量指标

影响网络质量的因素包括传输链路的带宽、报文传送时延和抖动、以及丢包率等,它们也就成为了QoS的度量指标。

带宽

带宽也称为吞吐量,是指在一个固定的时间内(1秒),从网络一端传输到另一端的最大数据位数,也可以理解为网络的两个节点之间特定数据流的平均速率。带宽的单位是比特/秒(bit/s)。在网络中,有两个常见的与带宽有关的概念:上行速率和下行速率。上行速率是指用户向网络发送信息时的数据传输速率,下行速率是指网络向用户发送信息时的传输速率。例如,用户通过FTP上传文件到网络,影响上传文件速度的就是上行速率;而从网络下载文件,影响下载文件速度的就是下行速率。

时延

时延是指一个报文或分组从网络的发送端到接收端所需要的延迟时间,一般由传输延迟及处理延迟组成。以语音传输为例,时延是指从说话者开始说话到对方听到所说内容的时间。一般人们察觉不到小于100毫秒的延迟。当延迟在100毫秒和300毫秒之间时,说话者可以察觉到对方回复的轻微停顿,这种停顿可能会使通话双方都感觉到不舒服。超过300毫秒,延迟就会很明显,用户开始互相等待对方的回复。当通话的一方不能及时接收到期望的回复时,说话者可能会重复所说的话,这样会与远端延迟的回复碰撞,导致重复。

抖动

如果网络发生拥塞,导致通过同一连接传输的分组延迟各不相同。抖动用来描述延迟变化的程度,也就是最大延迟与最小延迟的时间差。抖动对于实时性的传输是一个重要参数,特别是语音和视频等实时业务是极不容忍抖动的,抖动会造成话音或视频的断续。抖动也会影响一些网络协议的处理。有些协议是按固定的时间间隔发送交互性报文,抖动过大会导致协议震荡。所有传输系统都有抖动,只要抖动在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延。

丢包率

丢包率是指在网络传输过程中丢失报文的数量占传输报文总数的百分比。少量的丢包对业务的影响并不大,例如,在语音传输中,丢失一个比特或一个分组的信息,通话双方往往注意不到。在视频的传输中,丢失一个比特或一个分组可能造成在屏幕上瞬间的波形干扰,但能很快恢复正常。使用TCP传送数据可以处理少量的丢包,因为TCP允许丢失的信息重发。但大量的丢包会影响传输效率。在QoS中,我们关注的是丢包的统计数据,也就是丢包率。所以正常传输时,网络丢包率应该控制在一定范围内即可。

QoS的应用场景

以企业办公为例,除了基本的网页浏览、工作邮件外,在较集中的工作时间段内还需要保证Telnet登录设备、异地的视频会议、实时语音通话、FTP文件的上传和下载,以及视频播放等业务的网络质量。对于不同网络质量要求的业务,可以配置不同的QoS子功能,或者不部署QoS。

28500a3892087a9eb23d60d2be7df8e6.png

  • 网络协议和管理协议(如OSPF、Telnet)

    这类业务要求低时延和低丢包率,但对带宽的要求不高。因此可以通过QoS的优先级映射功能,为此类报文标记较高的服务等级,使网络设备优先转发此类报文。

  • 实时业务(如视频会议、VoIP)

    视频会议要求高带宽、低时延和低抖动。因此可以通过QoS的流量监管功能,为视频报文提供高带宽;通过QoS的优先级映射功能,适当调高视频报文的优先级。

    VoIP是指通过IP网络进行实时语音通话,它要求网络做到低丢包、低时延和低抖动,否则通话双方可以明显感知质量受损。因此一方面可以调整语音报文的优先级,使其高于视频报文;另一方面通过流量监管功能,为语音报文提供最大带宽,在网络产生拥塞时,可以保证语音报文优先通过。

  • 大数据量业务(如FTP、数据库备份、文件转储)

    大数据量业务是指存在长时间大量数据传输行为的网络业务,这类业务需要尽可能低的网络丢包率。因此可以为这类报文配置流量整形功能,通过数据缓冲区缓存从接口发送的报文,减少由于突发流量导致拥塞而产生的丢包现象。

  • 流媒体(如在线音频播放、视频点播)

    由于这些音视频节目都是提前制作好的,观看者的终端通常可以先进行缓存再进行播放,因此降低了对网络时延、丢包和抖动的要求。如果需要降低这类业务的丢包和时延,可以通过QoS的优先级映射功能,适当提高对应报文的优先级。

  • 普通业务(如HTML网页浏览、邮件)

    这类业务对网络无特殊要求、重要性也不高。管理员可以对其保持默认设置,不需要额外部署QoS功能。

QoS的服务模型

如何在网络中通过部署来保证QoS的度量指标在一定的合理范围内,从而提高网络的服务质量呢?这就涉及到QoS模型。需要说明的是,QoS模型不是一个具体功能,而是端到端QoS设计的一个方案。例如,网络中的两个主机通信时,中间可能会跨越各种各样的设备。只有当网络中所有设备都遵循统一的QoS服务模型时,才能实现端到端的质量保证。

下面介绍主流的三大QoS模型。其中,华为公司的交换机、路由器、防火墙、WLAN等产品均支持配置基于DiffServ服务模型的QoS业务。

Best-Effort服务模型:尽力而为

Best-Effort是最简单的QoS服务模型,用户可以在任何时候,发出任意数量的报文,而且不需要通知网络。提供Best-Effort服务时,网络尽最大的可能来发送报文,但对时延、丢包率等性能不提供任何保证。Best-Effort服务模型适用于对时延、丢包率等性能要求不高的业务,是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、E-Mail等。

IntServ服务模型:预留资源

IntServ模型是指用户在发送报文前,需要通过信令(Signaling)向网络描述自己的流量参数,申请特定的QoS服务。网络根据流量参数,预留资源以承诺满足该请求。在收到确认信息,确定网络已经为这个应用程序的报文预留了资源后,用户才开始发送报文。用户发送的报文应该控制在流量参数描述的范围内。网络节点需要为每个流维护一个状态,并基于这个状态执行相应的QoS动作,来满足对用户的承诺。

IntServ模型使用了RSVP(Resource Reservation Protocol)协议作为信令,在一条已知路径的网络拓扑上预留带宽、优先级等资源,路径沿途的各网元必须为每个要求服务质量保证的数据流预留想要的资源,通过RSVP信息的预留,各网元可以判断是否有足够的资源可以使用。只有所有的网元都给RSVP提供了足够的资源,“路径”方可建立。

DiffServ服务模型:差分服务

DiffServ模型的基本原理是将网络中的流量分成多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理,从而得到不同的丢包率、时延以及时延抖动。同一类的业务在网络中会被聚合起来统一发送,保证相同的时延、抖动、丢包率等QoS指标。

Diffserv模型中,业务流的分类和汇聚工作在网络边缘由边界节点完成。边界节点可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,对不同的报文设置不同的标记字段,而其他节点只需要简单地识别报文中的这些标记,即可进行资源分配和流量控制。

与Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,应用程序发出报文前,不需要预先向网络提出资源申请,而是通过设置报文的QoS参数信息,来告知网络节点它的QoS需求。网络不需要为每个流维护状态,而是根据每个报文流指定的QoS参数信息来提供差分服务,即对报文的服务等级划分,有差别地进行流量控制和转发,提供端到端的QoS保证。DiffServ模型充分考虑了IP网络本身灵活性、可扩展性强的特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作,是当前网络中的主流服务模型。

基于DiffServ模型的QoS组成

基于Diffserv模型的QoS业务主要分为以下几大类:

  • 报文分类和标记

    要实现差分服务,需要首先将数据包分为不同的类别或者设置为不同的优先级。报文分类即把数据包分为不同的类别,可以通过MQC配置中的流分类实现。报文标记即为数据包设置不同的优先级,可以通过优先级映射和重标记优先级实现。不同的报文使用不同的QoS优先级,例如VLAN报文使用802.1p,IP报文使用DSCP,MPLS报文使用EXP。

  • 流量监管、流量整形和接口限速

    流量监管和流量整形可以将业务流量限制在特定的带宽内,当业务流量超过额定带宽时,超过的流量将被丢弃或缓存。其中,将超过的流量丢弃的技术称为流量监管,将超过的流量缓存的技术称为流量整形。接口限速分为基于接口的流量监管和基于接口的流量整形。

  • 拥塞管理和拥塞避免

    拥塞管理在网络发生拥塞时,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序。而拥塞避免可以监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。

其中,报文分类和标记是实现差分服务的前提和基础;流量监管、流量整形、接口限速、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是提供差分服务的具体体现。

各种QoS技术在网络设备上的处理顺序如下图所示。

图1-2 QoS技术处理流程
6385accd5db5a9c7dae4201f4bb287f9.png

对比QoS和HQoS

传统QoS技术可以满足语音、视频以及数据等业务的不同服务需求,可以针对不同的业务提供不同的服务。但是随着网络设备的高速发展,接入用户数量和每个用户的业务量不断增多,传统的QoS在应用中遇到了新问题:

  • 传统QoS是基于端口带宽进行调度的,因此流量管理可以基于服务等级进行业务区分,却很难基于用户进行区分,因此比较适合部署在网络核心侧,但不适合部署在业务接入侧。

  • 传统QoS无法做到同时对多个用户的多个业务进行流量管理和调度。

图1-3 传统QoS vs HQoS调度模型
0e68f243352d5de6cd89d7d0df16f3cc.png

为了解决上述问题,人们需要一种既能区分用户流量又能根据用户业务的优先级进行调度的技术,HQoS(Hierarchical Quality of Service,层次化QoS)应运而生。HQoS通过多级队列进一步细化区分业务流量,对多个用户、多种业务等传输对象进行统一管理和分层调度,在现有的硬件环境下使设备具备内部资源的控制策略,既能够为高级用户提供质量保证,又能够从整体上节约网络建设成本。

来源:

https://support.huawei.com/enterprise/en/doc/EDOC1100219443

想知道更多?扫描下面的二维码关注我后台回复"技术",加入技术群
后台回复“k8s”,可领取k8s资料【精彩推荐】
  • ClickHouse到底是什么?为什么如此牛逼!

  • 原来ElasticSearch还可以这么理解

  • 面试官:InnoDB中一棵B+树可以存放多少行数据?

  • 架构之道:分离业务逻辑和技术细节

  • 星巴克不使用两阶段提交

  • 面试官:Redis新版本开始引入多线程,谈谈你的看法?

  • 喜马拉雅自研网关架构演进过程

  • 收藏:存储知识全面总结

  • 微博千万级规模高性能高并发的网络架构设计

这篇关于什么是QoS?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129484

相关文章

从dubbo源码分析qos-server端口冲突问题

在这分布式系统架构盛行的时代,很多互联网大佬公司开源出自己的分布式RPC系统框架,例如:阿里的dubbo,谷歌的gRPC,apache的Thrift。而在我们公司一直都在推荐使用dubbo,今天就来讲讲在使用dubbo过程出现的qos-server端口冲突问题。 首先什么是dubbo的qos-server呢?qos是dubbo的在线运维命令,dubbo2.5.8新版本重构了telnet模块,提供

【xilinx】Versal Adaptive SoC DDRMC - NoC QoS 选项卡未出现

在 2024.1 之前的 Vivado 版本中,用户在使用 NoC 验证块设计时可以访问 NoC 对象窗口和 QoS 选项卡。            Vivado 2024.1 中存在一个已知问题,即 NoC 对象窗口和 QoS 选项卡不出现。         要显示 NoC 对象窗口和 QoS 选项卡,请保存块设计,关闭块设计,重新打开它,然后重新验证该设计。

ch/qos/logback/core/joran/spi/JoranException解决方案

错误提示: Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException 原因:版本冲突 解决方案一: pom.xml文件中引入依赖指定版本 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-

HCIE-QOS流量监管-拥塞管理

QOS流量监管-拥塞管理 QOS数据处理流程流量限速技术-令牌桶技术单桶单速双色标记法双桶单速三色标记法(常用)双桶双速三色标记法 流量监管承诺访问速率流量监管使用场景配置基于接口的流量监管配置MQC实现流量监管 流量整形流量整形的实现 (1)流量整形的实现 (2)流量整形使用场景基于接口配置流量整形配置MQC实现流量整形配置基于队列的流量整形 拥塞避免技术拥塞的产生拥塞的影响拥塞避免技术策

华为数通——奇偶数子网划分与流量控制(QoS)

在华为设备上使用 QoS(Quality of Service)配置来实现将 IP 地址段 192.168.1.0/24 分成奇数和偶数两个子网,并将它们定向到不同的下一跳,可以通过以下步骤进行配置:         配置 ACL配置流量分类器配置流量行为配置流量策略应用流量策略到接口 以下是详细的配置步骤: 1. 配置 ACL 配置 ACL 以匹配偶数 IP 地址 [RTA] acl

K8s Pod的QoS类

文章目录 OverviewPod的QoS分类Guaranteed1.如何将 Pod 设置为保证Guaranteed2. Kubernetes 调度器如何管理Guaranteed类的Pod Burstable1. 如何将 Pod 设置为Burstable2.b. Kubernetes 调度程序如何管理 Burstable Pod BestEffort1. 如何将 Pod 设置为 BestEff

Qos令牌桶算法:笔记0601

令牌桶 令牌:目前看到2种表述,csdn表示一个令牌代表一个字节,51cto是一个令牌代表一个bit。51cto上关于cisco qos算法描述多表达为一个令牌一个bit (不知道rfc上咋表达的懒得去查了,主打一个好读书不求甚解,感觉应该是bit更接近真相) qos令牌桶(Token Bucket)算法解析_wx63358b6d66b97的技术博客_51CTO博客 CSDN  QoS服务质

Qos基础

一、Qos概述 Qos是一个框架,解决服务质量,尽力而为模型,集成服务以及区分服务模型,流量分类与标识。 使用Qos是带宽不够。 每个接口有硬件队列和软件队列(队列排满了就不会再排)。 企业宽带一般都是上行和下行不对称。 牺牲不重要流量来维持重要流量。 在有限的带宽,有可能出现链路拥塞,需要使用Qos。 1、Qos三大模型 (1)、BE尽力而为模型:所有类型的流量一视同仁,FIFO(先进

QoS简介

一、QoS 概念定义 QoS 即服务质量(Quality of Service)。 是一种用于在网络中对不同类型的流量进行区分和管理的机制。旨在为特定的应用程序、用户或数据类型提供特定水平的性能保证。 比如确保实时性要求高的业务(如视频会议、语音通话)有较低的延迟和抖动,重要数据传输有足够的带宽和可靠性等。通过对网络流量进行分类、标记、调度和整形等操作来实现。可以根据各种参数,如优先级、带宽需求

网络知识点之—QoS

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