【网络协议详解】——QOS技术(学习笔记)

news2025/3/14 0:02:52

目录

QoS简介

QoS产生的背景

QoS服务模型

基于DiffServ模型的QoS组成

MQC简介

MQC三要素

MQC配置流程

优先级映射配置(DiffServ域模式)

优先级映射概述

优先级映射原理描述

优先级映射

PHB行为

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

流量监管

流量整形

接口限速

流量评估与令牌桶技术

概述

单速双桶

单速单桶

双速双桶

三种令牌桶模式的区别和应用

色敏模式

拥塞避免和拥塞管理概述

拥塞避免

拥塞管理

重定向简介

HQoS简介


QoS简介

QoS产生的背景

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

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

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技术在网络设备上的处理顺序如图1所示。

图1 QoS技术处理流程

上述QoS技术在网络中的位置如图2所示。

图2 QoS技术在网络中的位置

MQC简介

模块化QoS命令行接口MQC(Modular QoS Command-Line Interface)将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。随着网络中QoS业务的不断丰富,在网络规划时若要实现对不同流量(如不同业务或不同用户)的差分服务,会使部署比较复杂。通过配置MQC,用户可以更加便捷地按需对网络中的流量提供不同的服务。

MQC是一种配置方法,通过配置流分类、流行为、流策略应用流策略来完成QoS业务的配置。

MQC三要素

MQC包含三个要素:流分类(traffic classifier)、流行为(traffic behavior)和流策略(traffic policy)。

流分类

流分类用来定义一组流量匹配规则,用于对报文进行分类。配置流分类,需要确定如下三点:

  • 流分类的名称。
  • 流分类的分类规则。
  • 当流分类中有多条分类规则时,各规则之间的关系。

流分类规则可以分为二层规则、三层规则、基本ACL6规则、高级ACL6规则和自定义ACL规则。

流分类中各规则之间的关系分为:or或and,缺省情况下的关系为or。

  • or:报文只要匹配了流分类中的一个规则,设备就认为报文属于此类。

  • and:当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于该类。

以流分类c1为例。流分类c1包括如下规则:

  • ACL规则:
    • 匹配ACL 3000
    • 匹配ACL 3001
  • 非ACL规则:
    • 匹配VLAN ID为10的报文
    • 匹配入接口为GE0/0/1的报文

若流分类c1各规则之间的关系为or:只要报文的VLAN ID为10,或报文的入接口为GE0/0/1,或报文匹配ACL 3000,或报文匹配ACL 3001,报文就属于流分类c1。

若流分类c1各规则之间的关系为and:只有报文的VLAN ID为10,入接口为GE0/0/1,且报文匹配ACL 3000或ACL 3001时,报文才属于流分类c1。

流行为

流行为用来定义针对某类报文所做的动作。配置流行为,需要确定如下两点:

  • 流行为的名称。
  • 流行为中的动作。

设备支持报文过滤、重标记优先级、重标记流ID、重定向、流量监管、流量统计等动作。如果在一个流行为中定义了多个动作且这些动作互不冲突,那么这些动作都能配置成功且同时生效。如果在一个流行为中定义的多个动作产生冲突,将出现以下情况之一:

  • 在流行为视图定义冲突的动作时,系统提示错误,命令无法执行。
  • 应用流策略时,系统提示错

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

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

相关文章

Spring学习笔记:工厂模式与反射机制实现解耦

1.什么是Spring? spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发 轻量级 1.轻量级(对于运行环境没有额外要求) 2.代码移植性高(不需要实现额外接口) JavaEE的解决方案 Spring更像是一种解决方案,对于控制层,它有Spring…

pytest数据库测试文章推荐

参考链接: 第一部分:http://alextechrants.blogspot.fi/2013/08/unit-testing-sqlalchemy-apps.html第二部分:http://alextechrants.blogspot.fi/2014/01/unit-testing-sqlalchemy-apps-part-2.html

vue3 二次封装uni-ui中的组件,并且组件中有 v-model 的解决方法

在使用uniappvue3开发中&#xff0c; 使用了uni-ui的组件&#xff0c;但是我们也需要自定义组件&#xff0c;比如我要自定一个picker 的组件&#xff0c; 是在 uni-data-picker 组件的基础上进行封装的 父组件中的代码 <classesselect :selectclass"selectclass"…

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件的全面测评

随着边缘计算和人工智能技术的迅速发展&#xff0c;性能强大的嵌入式AI开发板成为开发者和企业关注的焦点。NVIDIA近期推出的Jetson Orin Nano 8GB开发套件&#xff0c;凭借其40 TOPS算力、高效的Ampere架构GPU以及出色的边缘AI能力&#xff0c;引起了广泛关注。本文将从配置性…

【学习笔记】《逆向工程核心原理》03.abex‘crackme-2、函数的调用约定、视频讲座-Tut.ReverseMe1

文章目录 abexcrackme-21. Visual Basic文件的特征1.1. VB专用引擎1.2. 本地代码与伪代码1.3. 事件处理程序1.4. 未文档化的结构体 2. 开始调试2.1. 间接调用2.2. RT_MainStruct结构体2.3. ThunRTMain()函数 3. 分析crackme3.1. 检索字符串3.2. 查找字符串地址3.3. 生成Serial的…

React基础之项目实战

规范的项目结构 安装scss npm install sass -D 安装Ant Design组件库 内置了一些常用的组件 npm install antd --save 路由基础配置 npm i react-router-dom 路由基本入口 import Layout from "../page/Layout"; import Login from "../page/Login"; impor…

SAP-ABAP:SAP数据库视图的创建图文详解

在SAP ABAP中&#xff0c;数据库视图&#xff08;Database View&#xff09;是通过ABAP字典&#xff08;ABAP Dictionary&#xff09;创建的。数据库视图是基于一个或多个数据库表的虚拟表&#xff0c;它允许你定义一种逻辑视图来访问数据。以下是创建数据库视图的步骤&#xf…

基于深度学习的肺炎X光影像自动诊断系统实现,真实操作案例分享,值得学习!

医疗影像智能化的技术演进 医学影像分析正经历从人工判读到AI辅助诊断的革命性转变。传统放射科医师分析胸部X光片需要8-12年专业训练&#xff0c;而基于深度学习的智能系统可在秒级完成检测。本文将以肺炎X光检测为切入点&#xff0c;详解从数据预处理到模型部署的全流程实现。…

Unity Shader学习总结

1.帧缓冲区和颜色缓冲区区别 用于存储每帧每个像素颜色信息的缓冲区 帧缓冲区包括&#xff1a;颜色缓冲区 深度缓冲区 模板缓冲区 自定义缓冲区 2.ImageEffectShader是什么 后处理用的shader模版 3.computerShader 独立于渲染管线之外&#xff0c;在显卡上运行&#xff0c;大量…

算法精讲 | 树(番外):平衡世界的四大守护者:AVL vs 红黑树 vs B树 vs B+树

&#x1f332; 算法精讲 | 树&#xff08;番外&#xff09;&#xff1a;平衡世界的四大守护者&#xff1a;AVL vs 红黑树 vs B树 vs B树 &#x1f4c5; 2025/03/12 || &#x1f31f; 推荐阅读时间 30分钟 &#x1f680; 开篇&#xff1a;数据结构界的四大天王 想象你是一名图书…

第十八:go 并发 goroutine

channel 可以让多个goroutine 之间实现通信 Add方法调用时机&#xff1a;必须在goroutine 启动之前调用Add方法来增加计数器的值。 如果在goroutine已经启动之后再调用Add&#xff0c;可能会导致Wait方法提前返回&#xff0c;因为计数器没有正确反映正在运行的goroutine的数量…

在vs中无法用QtDesigner打开ui文件的解决方法

解决方法 右键ui文件&#xff0c;选择打开方式&#xff0c;弹出如下界面。 点击添加&#xff0c;弹出如下界面 点击程序后边的三个点&#xff0c;去电脑查找designer.exe,我的位置为D:\Qt\Qt5.9.9\5.9.9\msvc2015_64\bin\designer.exe。 名称可以自己起一个名字&#xff0c…

图像识别技术与应用-YOLO

1 YOLO-V1 YOLO-V1它是经典的one-stage方法&#xff0c;You Only Look Once&#xff0c;名字就已经说明了一切&#xff01;把检测问题转化成回归问题&#xff0c;一个CNN就搞定了&#xff01;也可以对视频进行实时检测&#xff0c;应用领域非常广&#xff01; YOLO-V1诞生与2…

LLM推理和优化(1):基本概念介绍

一、LLM推理的核心过程&#xff1a;自回归生成 LLM&#xff08;如DeepSeek、ChatGPT、LLaMA系列等&#xff09;的推理本质是自回归生成&#xff1a;从初始输入&#xff08;如[CLS]或用户prompt&#xff09;开始&#xff0c;逐token预测下一个词&#xff0c;直到生成结束符&…

Kubernetes教程(七)了解集群、标签、Pod和Deployment

了解集群、标签、Pod和Deployment 一、K8s资源对象二、K8s集群1. Master2. Node 三、Namespace&#xff08;命名空间&#xff09;四、Label&#xff08;标签&#xff09;五、Pod1. 共享网络命名空间2. 共享数据 六、工作负载1. 设置副本数2. 应用升级 结语 Kubernetes的知识真的…

【最新】DeepSeek 实用集成工具有那些?

deepseek 系列github仓库地址 【主页】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重点介绍】awesome-deepseek-integration 注意&#xff1a;以下内容来自awesome-deepseek-integration DeepSeek 实用集成&#xff08;awesome-deepseek-integration&#xff09; 将…

Flutter_学习记录_video_player、chewie 播放视频

1. video_player 视频播放 插件地址&#xff1a;https://pub.dev/packages/video_player 添加插件 导入头文件 import package:video_player/video_player.dart;Android配置&#xff08;iOS不用配置&#xff09; 修改这个文件&#xff1a;/android/app/src/main/AndroidMani…

【MySQL】增删改查进阶

目录 一、数据库约束 约束类型 NULL约束&#xff1a;非空约束 UNIQUE&#xff1a;唯一约束 DEFAULT&#xff1a;默认值约束 PRIMARY KEY&#xff1a;主键约束 FOREIGN KEY&#xff1a;外键约束 二、表的设计 三、新增 四、查询 聚合查询 聚合函数 GROUP BY子句 HA…

静态时序分析:SDC约束命令set_ideal_latency详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 当使用set_ideal_network命令将当前设计中的一组端口或引脚标记为理想网络源后&#xff0c;理想属性会沿着组合逻辑进行传播&#xff0c;理想网络中的线网和单元…

达梦数据库查看字符集编码

select SF_GET_UNICODE_FLAG(); 返回 0 代表数据库字符集编码为 GB18030 1 代表数据库字符集编码为 UTF-8 2 代表数据库字符集编码为韩文字符集 EUC-KR