Qos技术基础原理

2024-04-27 15:38
文章标签 基础 技术 原理 qos

本文主要是介绍Qos技术基础原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qos的诞生背景:

网络的普及和业务的多样化使得互联网流量激增,从而产生网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在网络上开展这些实时性业务,就必须解决网络拥塞问题。解决网络拥塞的最好的办法是增加网络的带宽,但从运营、维护的成本考虑,这是不现实的,最有效的解决方案就是应用一个“有保证”的策略对网络流量进行管理。

QoS技术就是在这种背景下发展起来的。QoS(Quality of Service)即服务质量,其目的是针对各种业务的不同需求,为其提供端到端的服务质量保证。QoS是有效利用网络资源的工具,它允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务。QoS技术在当今的互联网中应用越来越多,其作用越来越重要。

各类业务对网络质量的要求:

在这里插入图片描述
带宽:
在这里插入图片描述
网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。如图所示,尽管传输途径上的最大的一段链路带宽是1Gbps,但是数据从一个用户传到另一个用户的最大传输速率只能是256kbps,因为传输的最大带宽是由传输路径上的最小链路带宽决定的。正是因为这样,带宽小的链路是影响传输速率的关键。

时延:
在这里插入图片描述

时延是指一个报文从一个网络的一端传送到另一端所需要的时间。单个网络设备的时延包括传输时延、串行化时延、处理时延、以及队列时延。

  1. 传输时延:一个数据位从发送方到达接收方所需要的时间。该时延取决于传输距离和传输介质,与带宽无关。
  2. 串行化时延:指发送节点在传输链路上开始发送报文的第一个比特至发完该报文的最后一个比特所需的时间。该时延取决于链路带宽以及报文大小。
  3. 处理时延:指路由器把报文从入接口放到出接口队列需要的时间。它的大小跟路由器的处理性能有关。
  4. 队列时延:指报文在队列中等待的时间。它的大小跟队列中报文的大小和数量、带宽以及队列机制有关。

抖动:
在这里插入图片描述
由于每个报文的端到端时延不一样,就会导致这些报文不能等间隔到达目的端,这种现象叫做抖动。一般来说,时延越小则时延抖动的范围越小。

某些业务类型(特别是语音和视频等实时业务)是极其不能容忍抖动的。报文到达时间的差异将在语音或视频中造成断续;另外,抖动也会影响一些网络协议的处理,有些协议是按固定的时间间隔发送交互性报文,抖动过大就会导致协议震荡,而实际上所有传输系统都有抖动,但只要抖动在规定容差之内就不会影响服务质量,另外,可利用缓存来克服过量的抖动,但这将会增加时延。

抖动的大小跟时延的大小直接相关,时延小则抖动的范围也小,时延大则可能抖动的范围也大。

丢包:
在这里插入图片描述

丢包率是指在网络传输过程中丢失报文占传输报文的百分比。丢包可用于衡量网络的可靠性。丢包(packet loss)可能在所有环节中发生,例如:

  1. 处理过程:路由器在收到报文的时候可能由于CPU繁忙,无法处理报文而导致丢包;
  2. 排队过程:在把报文调度到队列的时候可能由于队列被装满而导致丢包;
  3. 传输过程:报文在链路上传输的过程中,可能由于种种原因(如链路故障等)导致的丢包。

少量的丢包对业务的影响并不大,但大量的丢包就会严重影响到传输效率。

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组成:

我们学习QoS都是基于DiffServ服务模型的,基于Diffserv模型的QoS业务主要分为以下几大类:

• 报文分类和标记
要实现差分服务,需要首先将数据包分为不同的类别或者设置为不同的优先级。报文分类即把数据包分为不同的类别,可以通过MQC配置中的流分类实现;报文标记即为数据包设置不同的优先级,可以通过优先级映射和重标记优先级实现。

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

• 拥塞管理和拥塞避免
拥塞管理在网络发生拥塞时,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序。而拥塞避免可以监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。
其中,报文分类和标记是实现差分服务的前提和基础;流量监管、流量整形、接口限速、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是提供差分服务的具体体现。

各种QoS技术在网络设备上的处理顺序如下图所示:
在这里插入图片描述
第一个为交换机,第二个为路由器。

当前华为的多种QoS工具中。都是基于接口特定方向配置的,有些工具只能应用在接口的出方向。有些只能应用在接口的入方向上。图中只有监管既可以应用到接口的入方向,又可以应用到接口的出方向上(限速则在华为交换机和路由器上有所不同,交换机上的限速既可以应用在入方向,又可以应用在出方向,具体内容请参考后面章节)。

传统的Qos部署工具:

传统的QoS配置命令包括如下几种,它们的特点是配置QoS不使用MQC,直接把相关命令应用在接口上。以下列举了信任、队列、限速、整形及监管。华为设备相关命令:

 [Huawei] interface ethernet 2/0/0[Huawei- Ethernet2/0/0] trust dscp#基于端口信任DSCP[Huawei] interface ethernet 2/0/0[Huawei- Ethernet2/0/0] qos que-profile hello-world#调用Queue-profle队列管理[Huawei] interface ethernet 2/0/0[Huawei-Ethernet2/0/0] qos Ir pct 50 cbs 37500#首对接口外出流量做限速[Huawei] interface ethernet 2/0/0[Huawei-Ethernet2/0/0] qos gts cir 2000 cbs 375000#对接口外出流量整形管理[Huawei] interface ethernet 2/0/0[Huawei- Ethernet2/0/0] qos car inbound cir 2000#基于接口做监管,也可使用outbound关键词,对出方向流量做监管

MQC:

概念:
除上述QoS实现外,随着网络中各种业务的不断丰富,在网络规划时,要实现对不同业务流量(如不同业务或不同用户)的更细化的多种服务需求,这样使用传统的配置命令将会是一件非常复杂烦琐的事情,选择MQC的方式能够简化整个过程。

MQC结构图:
在这里插入图片描述

  1. 流分类:
    采用一定的规则识别符合某类特征的报文,从而把具有某类共同特征的报文划分为一类,它是有区别地进行服务的前提和基础。用户可以通过定义一系列的规则来对报文进行分类,同时也可以指定规则之间的关系:
    • and:报文只有匹配了类中的所有的规则,设备才认为报文属于此类。当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类。当流分类中没有ACL规则时,则报文必须匹配所有非ACL规则才属于该类。
    • or:报文只要匹配了类中的一个规则,设备就认为报文属于此类。

  2. 流行为:
    用来定义针对某类报文所做的QoS动作。进行流分类是为了有区别地提供服务,它必须与某种流量控制或资源分配的流行为关联起来才有意义。

  3. 流策略:
    是将流分类和流行为绑定后形成的完整的策略。通过将流策略应用到接口、全局、单板或者VLAN,实现了针对不同业务的差分服务。

流策略配置命令(华为):

  1. 配置流分类
    • 执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类,进入流分类视图。
  2. 配置流行为
    • 执行命令traffic behavior behavior-name,创建一个流行为,进入流行为视图。
  3. 配置流策略
    • 执行命令traffic policy policy-name,创建流策略并进入流策略视图。
    • classifier behavior命令用来在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。
    • 执行命令traffic-policy policy-name { inbound | outbound },在接口或子接口的入方向或出方向应用流策略。
    在这里插入图片描述

参考资料:华为HCIE培训文档、华为hedex文档、HCIE路由交换学习指南

这篇关于Qos技术基础原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/940885

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源