【ARM AMBA AXI 入门 5.1 - QoS是什么?QoS是怎么工作的? 】

news2024/9/20 12:16:23


请阅读【ARM AMBA AXI 总线 文章专栏导读】


转自:揭秘数通知识:QoS是什么?QoS是怎么工作的?(一)

文章目录

    • QoS 概述
      • 综合服务和差分服务
    • QoS 工具
      • 报文分类
      • 报文标记
      • 流量监管和整形工具
      • 拥塞管理工具
      • 拥塞避免工具
    • 队列策略
      • FIFO(先进先出队列,First In First Out Queue)
      • Priority Queue(优先队列PQ)
      • Weighted-fair Queue(加权平均队列WFQ)
    • 丢弃策略

我们在学习嵌入的时候经常会听到QoS 这个词汇,那么这个词到底是什么含义以及它出现的背景是什么?我们可以通过 揭秘数通知识:QoS是什么?QoS是怎么工作的?(一) 这边篇转载的文章进行学习。

QoS 概述

在传统的IP网络中,所有的报文都被无区别地等同对待,每个路由器对所有的报文均采用先进先出(FIFO)的策略进行处理,尽最大的努力(best-effort)将报文送到目的地,但对报文传送的可靠性、传送延迟等性能不提供任何保证。

随着IP网络上新应用的不断出现,对IP网络的服务质量也提出了新的要求,传统IP网络的“尽力服务”已不能满足应用的需要,如VoIP业务,如果报文传送延时太长,将是用户所不能接受的。为IP

网络提供支持QoS(Quality of Service)的能力是解决问题的可行方法。
QoS即服务质量,旨在针对各种应用的不同需求,提供不同的服务质量,如提供专用带宽、降低报文丢失率、减少报文传送时延及时延抖动等。为实现上述目的,QoS提供了下列功能:

  • 报文分类
  • 报文标记
  • 流量监管和流量整形
  • 拥塞避免
  • 拥塞管理

综合服务和差分服务

为了实现IP网络的QoS,需要通过对带宽分配、改进丢包特性、避免和管理网络拥塞、测量网络流量、或设置跨网络的业务流优先级等特性的配置来提供更好、更加可预测的网络服务。

QoS是在尽力发送方式的IP层上为提供一定的服务保障而提出的一系列措施的集合,QoS可分为两种类型的服务:综合服务(Int Serve)和差分服务(Diff Serve)。

  • 综合服务可以满足多种QoS需求。这种服务模型在发送报文前,需要向网络申请特定的资源。这个请求是通过信令来完成的,应用程序先通知网络自己的流量参数和需要的特定服务质量,包括带宽、时延等,应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后,才开始发送报文,同时应用程序发出的报文被控制在流量参数描述的范围内。

    这种服务能很好地满足QoS的要求,但由于网络需要为每个流维护一份QoS记录,会造成扩展上的问题,因此综合服务在实际应用中并不广泛。

  • 与综合服务不同,差分服务不需要信令,即应用程序在发出报文前,不需要通知路由器。网络不需要为每个流维护状态,只需根据每个报文指定的QoS来提供特定的服务。可以用不同的方法来指定报文的QoS,如IP包的优先级位(IP Precedence),报文的源地址和目的地址等。网络通过这些信息来进行报文的分类、流量整形、流量监管和排队。

    差分服务可以看作是综合服务和尽力模式的一个折中,其服务粒度比综合服务大,但比尽力发送小,又能支持一定的流量优先级选择。

差分服务主要分为以下两个相辅相成的部分:

  • 流量分类:主要有按照ACL、流量大小、ToS、NBAR的分类
  • 分类管理策略:包括队列策略、丢弃策略、整形策略

QoS 工具

路由器设备中的QoS工具通常包括分类与标记工具、流量监管与整形工具、拥塞管理工具、拥塞避免工具等。

报文分类

报文分类工具能够将网络业务流分割成多个优先级或服务类别。

例如:使用IP包头中的DSCP字段,可以将报文最多分成64种业务类别。报文分类完成后,可以对不同的业务类别应用不同的QoS处理策略,包括拥塞管理、流量监管与整形、报文标记或重标记等。

常见的报文分类依据包括:物理接口、子接口、PVC、MAC地址、802.1Q/p CoS、MPLS EXP、DSCP、IPP、IP五元组、甚至包括包头或净荷中的URL等。

报文标记

标记工具通常用来建立其它QoS工具所依赖的信任边界。可以根据用户策略对不同的业务类型施加不同的标记,该标记可以作为下一级分类的标准,也可以由报文携带到其他设备。此外,路由器还可以根据流量监管的结果对报文重新标记,例如报文的降格处理等。

流量监管和整形工具

流量监管及时地检查流量违约,并在违约出现的时候立即采取规定的动作。流量监管能够确定入接口是否超过了约定的速率,对于超过约定的速率部分进行重新标记或丢弃。

流量整形是与排队机制一起工作的流量平滑工具。流量整形的目的是使平滑流量不会超过指定的速率。如果进入的流量临时超过了指定的速率,那么过量的流量会被缓存并延迟发送。

拥塞管理工具

在所有的QoS工具中,拥塞管理工具对应用程序服务质量的影响最为显著。拥塞管理工具也被称为排队工具,当网络发生了拥塞的时候,决定不同业务流的出队策略。常见的拥塞管理工具包括PQ、WFQ、CBWFQ等。

拥塞避免工具

拥塞避免工具是拥塞管理工具的补充,拥塞管理工具管理一个队列的头部,而拥塞避免工具则管理一个队列的尾部 。

常见的拥塞避免机制包括:随机早期检测(RED)、加权随机早期检测(WRED)、显式拥塞通知(ECN)等。

队列策略

队列策略主要实现了以下三种队列,即:

FIFO(先进先出队列,First In First Out Queue)

FIFO队列是最简单的队列,也是路由器采用的默认的队列处理方式。该方式将所有要从该接口输出的报文,按照到达的先后顺序进入接口的FIFO队列尾部,而接口在发送报文时,从FIFO队列的头部开始,依次发送报文。所有的报文在发送过程中,没有任何区别,也不对报文传送的质量提供任何保证。

Priority Queue(优先队列PQ)

PQ队列是将流量分放入高、中、普通、低四个队列中,对这四个队列的处理是严格按照优先级别来进行的。在报文出队的时候,PQ先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,再发送中优先队列中的报文。同样,中优先队列中的报文发送完后,再发送正常优先队列中的报文,最后是低优先队列。

这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先。这使得关键业务的报文能够得到优先处理,非关键业务的报文在网络处理完关键业务后的空闲中得到处理,既保证了关键业务的及时处理,又充分利用了网络资源。

Weighted-fair Queue(加权平均队列WFQ)

WFQ是基于流的公平队列,即是为了调整封包较大的流对封包较小的流的优势而发展出的一种队列模式。通过基于虚拟发送时钟的调度策略,可以较好地在不同包大小的流之间得到一定的带宽公平。

丢弃策略

丢弃策略是在队列流量到达限制时对包采用何种方式丢弃,常用的是尾部丢弃(Tail Drop)、随机早期检测(RED)、加权随机早期检测(WRED)。

路由器设备中QoS的常用实现流程如图所示:
在这里插入图片描述


关于 ARM AXI 中的 QoS 内容推荐阅读:【ARM AMBA AXI 入门 5 - AXI 协议中的 QoS信号及User信号介绍 】


如有侵权,请联系删除

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JuiceFS缓存特性

缓存 对于一个由对象存储和数据库组合驱动的文件系统,缓存是本地客户端与远端服务之间高效交互的重要纽带。读写的数据可以提前或者异步载入缓存,再由客户端在后台与远端服务交互执行异步上传或预取数据。相比直接与远端服务交互,采用缓存技…

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列。在linux中,由于线程和进程都具有id,都需要调度等等相似性,因此都可以用PCB来描述和控制,线程含有PCB&am…

[RuoYi-Vue] - 5. 部分代码分析

文章目录 🍴1. 后端部分代码分析1.1 BaseController1.2 TableDataInfo1.3 AjaxResult1.4 BaseEntity 🍸2. 权限注解🍺3. 前后端交互3.1 跨域问题 🍴1. 后端部分代码分析 1.1 BaseController 1.2 TableDataInfo 分页查询统一返回对…

如何用个人电脑搭建一台本地服务器,并部署云原生开发工具TitanIDE到服务器详细教程

服务器是一种高性能计算机,作为网络的节点,它存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。与普通计算机相比,服务器具有高速CPU运算能力、长时间可靠运行、强大I/O外部数据吞吐能力以及更好的扩展性。 服务器的主要…

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战 0、昨日内容回顾:1、基于nginx的反向代理控制访问kibana2、配置ES集群TSL认证:3、配置kibana连接ES集群4、配置filebeat连接ES集群5、配置logsta…

自建Web网站部署——案例分析

作者主页: 知孤云出岫 目录 作者主页:如何自建一个Web网站一、引言二、需求分析三、技术选型四、开发步骤1. 项目初始化初始化前端初始化后端 2. 前端开发目录结构示例代码App.jsHome.js 3. 后端开发目录结构示例代码app.jsproductRoutes.jsProduct.js 4. 前后端连接安装axio…

ospf复习综合小实验

实验要求: 1,R4为ISP,其上只能配置IP地址;R4与其他所有直连设备间均使用公有IP 2,R3-R5/6/7为MGRE环境,R3为中心站点; 3,整个OSPF环境IP基于172.16.0.0/16划分; 4&#…

redis其他类型和配置文件

很多博客只讲了五大基本类型,确实,是最常用的,而且百分之九十的程序员对于Redis只限于了解String这种最常用的。但是我个人认为,既然Redis官方提供了其他的数据类型,肯定是有相应的考量的,在某些特殊的业务…

1.MQ介绍

MQ 消息队列,本质是一个队列,先进先出,只不过队列中存放的内容是message而已。 为啥学习MQ 1.流量消峰 如果一个订单系统最多每秒能处理一万次订单,正常情况下我们下单1秒后就能返回结果。但是在高峰期,如果有两万…

NLP入门——RNN、LSTM模型的搭建、训练与预测

在卷积语言模型建模时,我们选取上下文长度ctx_len进行训练,预测时选取句子的最后ctx_len个分词做预测,这样句子的前0~seql-1-ctx_len个词对于预测没有任何帮助,这对于语言处理来说显然是不利的。 在词袋语言模型建模时&#xff0c…

Milvus 核心设计(5)--- scalar indexwork mechanism

目录 背景 Scalar index 简介 属性过滤 扫描数据段 相似性搜索 返回结果 举例说明 1. 属性过滤 2. 扫描数据段 3. 相似性搜索 实际应用中的考虑 Scalar Index 方式 Auto indexing Inverted indexing 背景 继续Milvus的很细设计,前面主要阐述了Milvu…

【排序算法】1.冒泡排序-C语言实现

冒泡排序(Bubble Sort)是最简单和最通用的排序方法,其基本思想是:在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;如此下去,直…

C++ 入门基础:开启编程之旅

文章目录 引言一、C的第⼀个程序二、命名空间1、namespace2、namespace的定义 三、C输入 与 输出四、缺省参数五、函数重载六、引用1、引用的概念和定义2、引用的特性3、指针和引用的关系七、inline八、nullptr 引言 C 是一种高效、灵活且功能强大的编程语言,广泛应…

【java】力扣 合并两个有序数组

文章目录 题目链接题目描述代码第一种第二种 题目链接 88.合并两个有序数组 题目描述 代码 第一种 public void merge(int[] nums1, int m, int[] nums2, int n) {for(int i 0;i<n;i){nums1[mi] nums2[i];}Arrays.sort(nums1);}第二种 public void merge(int[] nums1,…

【数据结构】二叉树全攻略,从实现到应用详解

​ &#x1f48e;所属专栏&#xff1a;数据结构与算法学习 &#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ ​ &#x1f341;1. 树形结构的介绍 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做…

JVM垃圾回收-----垃圾分类

一、垃圾分类定义 垃圾分类是JVM垃圾分类中的第一步&#xff0c;这一步将堆中的对象分为存活对象和垃圾对象两类。 在垃圾分类阶段&#xff0c;JVM会从一组根对象开始&#xff0c;通过对象之间的引用关系&#xff0c;遍历所有的对象&#xff0c;并将所有存活的对象进行标记。…

QT使用QPainter绘制多边形维度图

多边形统计维度图是一种用于展示多个维度的数据的图表。它通过将各个维度表示为图表中的多边形的边&#xff0c;根据数据的大小和比例来确定各个维度的长度。 一、简述 本示例实现六边形战力统计维度图&#xff0c;一种将六个维度的战力统计以六边形图形展示的方法。六个维度是…

leetcode-383.赎金信

题源 383.赎金信 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1&…

MySQL(3)表的操作

目录 1. 表的操作; 2. 数据类型; 1. 表的操作: 1.1 创建表: 语法: create table 表名( 属性 类型 [comment ], 属性 类型 [comment ], 属性 类型 ) character set 字符集 collate 校验集 engine 存储引擎; 前面博客提到: MyISAM和InoDB这两个比较重要. 1.2 查看表…

Spring与设计模式实战之策略模式

Spring与设计模式实战之策略模式 引言 在现代软件开发中&#xff0c;设计模式是解决常见设计问题的有效工具。它们提供了经过验证的解决方案&#xff0c;帮助开发人员构建灵活、可扩展和可维护的系统。本文将探讨策略模式在Spring框架中的应用&#xff0c;并通过实际例子展示…