找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3416

积分

0

好友

458

主题
发表于 3 小时前 | 查看: 5| 回复: 0

QoS基本概念

DiffServ网络模型(区分服务模型)

目前存在多种IP QoS服务模型,其中应用最广的是区分服务模型(DiffServ)。下文内容均基于DiffServ模型展开。

DiffServ的基本思想是在网络边缘将进入的流分成不同类型,同类型的流合并管理,保证相同的传输速率、延迟、抖动等服务质量参数,并在网络中对每一类分别处理。业务分类与汇聚工作在网络的边缘节点进行——数据包先被标识为特定服务类型并记录在包头字段里,然后按一定的流量控制策略送入网络;网络中心节点则通过检查包头来确定对包进行何种处理。

DS节点:实现DiffServ功能的网络节点。

DS边界节点:负责连接另一个DS域或连接一个不具备DS功能的域的节点,负责将进入本域的业务流进行分类和可能的流量调整。

DS内部节点:在同一个DS域中连接DS边界节点和其他内部节点,仅需基于DSCP值进行简单流分类并实施流量控制。

DS域(DS Domain):一组采用相同服务提供策略、实现相同PHB的相连DS节点构成。一个DS域可由同一管理部门的一个或多个网络组成,如一个ISP或企业内部网。

DS区:一个或多个邻接的DS域统称为DS区。不同DS域可有不同的PHB,以提供不同服务策略,它们之间通过SLA和TCA协调跨域服务。SLA/TCA指明了如何在边界节点调整从一个DS域传向另一个DS域的业务流。

SLA:用户与服务提供商签署的关于业务流在网络中传递时应当获得的待遇协议。其中的技术说明部分称为服务等级规范SLS,SLS的研究重点是流量控制说明TCS,它描述了每个服务层次的详细性能参数,如平均速率、峰值速率、承诺突发尺寸、最大突发尺寸等,这也是DiffServ网络进行流控的主要依据。

DSCP与PHB

DiffServ模型的一个核心概念是每跳行为PHB。IETF重新定义了IPv4的ToS和IPv6的TC字段,合称DS字段,其取值称为DSCP。不同的DSCP取值对应不同的PHB。

标准协议定义了四种标准PHB:

  1. 类选择码CS(Class Selector)
  2. 加速转发EF(Expedited Forwarding)
  3. 确保转发AF(Assured Forwarding)
  4. 尽力而为BE(Best-Effort,缺省PHB)

服务等级的优先级高低取决于具体的队列调度算法配置:

  • 若8类队列均配置为PQ调度,则优先级 CS7 > CS6 > EF > AF4 > AF3 > AF2 > AF1 > BE
  • 若BE配置为PQ调度(极少使用),其余队列配置为WFQ,则BE的优先级反而最高
  • 若8类队列都配置为WFQ调度,则相互之间无优先级高低之分

简单流分类与复杂流分类

简单流分类

简单流分类通过简单的规则(如仅匹配IP报文的IP优先级或DSCP值、IPv6报文的TC值、MPLS报文的EXP域值、VLAN报文的802.1p值)对报文进行粗略分类,识别具有不同优先级或服务等级特征的流量,实现外部优先级与内部优先级之间的映射。本质上是“信任”端口上行报文携带的优先级标记,并根据优先级映射表统一映射到设备内部的服务等级和颜色;下行时再将内部标记映射回QoS优先级。

配置简单流分类就是定义DS域并设定域内的优先级映射表,然后将DS域与信任的接口绑定。此类分类主要部署在DS域内部节点。

复杂流分类

随着网络业务多样化,很多业务可能都基于80端口,仅靠简单流分类已无法满足需求。这就要求设备具备深度分析报文的能力,对报文的任意层次和字段进行全面解析。复杂流分类由此引入。

复杂流分类采用复杂的规则,如五元组(源地址、源端口号、协议类型、目的地址、目的端口号)对报文进行精细分类。为便于批量配置,命令行采用模板化形式。这类分类主要部署在网络的边缘节点,目前设备支持四种复杂流分类方法:

  1. 二层复杂流分类:VLAN内层Tag的802.1p优先级
  2. IP复杂流分类:DSCP优先级、源目的IP、端口等
  3. MPLS复杂流分类:EXP
  4. UCL复杂流分类:DSCP优先级、源目的IP、端口等

复杂流分类案例:基于时间段的流量控制

设备支持基于时间段进行复杂流分类和流量控制。运营商可根据用户使用习惯、网络拥塞情况在不同时间段设置不同策略,例如,20:00~22:00为网络流量高峰期,大量P2P、下载类业务影响其他数据业务,可在此期间降低P2P、下载类的带宽,防止网络拥塞。

time-range test 20:00 to 22:00 daily
acl 2000
rule permit source 10.9.0.0 0.0.255.255 time-range test //在ACL中配置time-range来控制规则的生效时间

traffic classifier test
if-match acl 2000

traffic behavior test
car cir 100000

traffic policy test
classifier test behavior test

interface xxx
traffic-policy test inbound

总结:简单流分类与复杂流分类的区别

简单流分类 = 看“优先级标签”(粗分类、快处理);复杂流分类 = 看“报文内容”(细粒度、强管控)。

  • 简单流分类:仅关注优先级字段(DSCP/IP‑Precedence、802.1p、MPLS EXP),不看 TCP/UDP端口号、源目IP、MAC、VLAN等内容,因此无法区分HTTP、FTP、SSH、语音等业务。
  • 复杂流分类:可以匹配源/目的IP、TCP/UDP源/目的端口、协议号、MAC、VLAN、ACL规则,甚至支持与、或逻辑组合,能精细区分各类业务。

搭配使用:在边界用复杂流分类“打标签”,在全网用简单流分类“按标签办事”。例如,边界复杂流分类标记后,全网简单流分类转发。

配置示例对比

简单流分类(信任DSCP)

system-view
interface GigabitEthernet0/0/1
trust dscp             # 在域内接口上信任报文携带的DSCP,自动映射队列
qos phb enable         # 开启优先级映射

复杂流分类(管控SSH流量)
流分类:匹配SSH(源IP + 目的端口22)

traffic classifier SSH operator and
if-match source-ip 192.168.1.0 24
if-match destination-port eq 22

流行为:标记为高优先级(EF)

traffic behavior EF
remark dscp ef
car cir 10000          # 限速10Mbps

流策略:绑定并应用

traffic policy QOS
classifier SSH behavior EF
interface GigabitEthernet0/0/1
traffic-policy QOS inbound  # 入方向应用

四大QoS组件

流量处理与拥塞管理架构流程图

流分类和标记(Classification and Marking)
要实现差分服务,首先需要将数据包分为不同的类别或设置为不同的优先级。流分类不修改原始数据包;标记则会修改数据包,为其设置不同的优先级。这里的“标记”指外部标记,通常在报文离开设备时设置,用于将QoS信息传递给下一跳设备。设备内部还存在“内部标记”,在报文进入设备时通过流分类打上,在报文离开前均可依此进行QoS处理。

流量监管和整形(Policing and Shaping)
将业务流量限制在特定带宽,超出额定带宽时采取丢弃(流量监管)或缓存(流量整形)措施。

拥塞管理(Congestion Management)
在网络发生拥塞时,将报文放入队列缓存,并采用某种调度算法安排报文转发次序。

拥塞避免(Congestion Avoidance)
监控网络资源使用情况,当拥塞有加剧趋势时主动丢弃报文,通过调整流量解除网络过载。

这四个组件在设备上有一定的处理顺序,通常如下图所示。原则上,在业务接入端口入方向实施流分类/标记、流量监管;在业务接入端口出方向实施流量整形(若接入多个不同等级业务,还需队列调度和丢包策略);在网络侧端口出方向实施拥塞管理和拥塞避免。

流量监管配置案例

流量监管(Traffic Policing)用于监控进入设备的流量,确保其不滥用网络资源。通过监控某条流的规格,将其限制在允许范围内;若流量过大,则丢弃报文或重新设置优先级(例如限制HTTP不能占用超过50%的网络带宽)。SLA中定义了每种业务流的承诺速率CIR、峰值速率PIR、承诺突发尺寸CBS、峰值突发尺寸PBS等参数,对超出SLA约定的流量可执行pass(通过)、drop(丢弃)或markdown(降级处理)。降级是指降低服务等级或提高丢弃优先级(Color),使该报文在网络拥塞时被优先丢弃。

流量监管采用承诺访问速率CAR实现控制。

配置示例:对Server流量带宽设定为5 Mbit/s,最高不超过6 Mbit/s。在5~6 Mbit/s区间,报文正常通过;超过6 Mbit/s时,超出部分降级为BE流。对PC1的流量约束为2 Mbit/s,超出部分直接丢弃。

定义ACL与流分类:

[~DeviceA] acl number 2001
[*DeviceA-acl-basic-2001] rule permit source 1.1.1.1 0.0.0.0
[~DeviceA] acl number 2002
[*DeviceA-acl-basic-2002] rule permit source 1.1.1.2 0.0.0.0
[~DeviceA] traffic classifier class1
[*DeviceA-classifier-class1] if-match acl 2001
[~DeviceA] traffic classifier class2
[*DeviceA-classifier-class2] if-match acl 2002

定义流行为:Server流量限速(绿色/黄色都pass,红色降级为BE)

[~DeviceA] traffic behavior behavior1
[*DeviceA-behavior-behavior1] car cir 5000 pir 6000 green pass yellow pass red pass service-class be color green

PC1流量限速(超出丢弃):

[~DeviceA] traffic behavior behavior2
[*DeviceA-behavior-behavior2] car cir 2000 green pass red discard

绑定策略并在接口入方向应用:

[~DeviceA] traffic policy policy1
[*DeviceA-trafficpolicy-policy1] classifier class1 behavior behavior1
[*DeviceA-trafficpolicy-policy1] classifier class2 behavior behavior2
[~DeviceA] interface gigabitethernet 0/1/0
[~DeviceA-GigabitEthernet0/1/0] undo shutdown
[*DeviceA-GigabitEthernet0/1/0] traffic-policy policy1 inbound

拥塞管理与拥塞避免配置案例

拥塞管理利用队列技术将接口发出的报文放入多个队列,按各队列优先级进行处理。拥塞避免通过WRED模板监控队列长度,在拥塞加剧时主动丢包。不同颜色的报文(绿、黄、红)可配置不同的高低门限和丢弃概率:绿色报文门限最高、丢弃概率最小,黄色次之,红色门限最低、丢包概率最大。

案例需求:在网络拥塞时,保证Server和Telephone业务优先发送,Telephone保障5 Mbit/s,Server保障4 Mbit/s;PC1和PC2作为VIP用户需要一定带宽保障,允许少量延迟但不希望过大;拥塞加剧时,出接口按优先级丢弃报文,Telephone最优先调度,Server、PC1、PC2按权重分别获得100 Mbit/s、50 Mbit/s、50 Mbit/s带宽保障。

配置ACL与流分类:

[~DeviceA] acl number 2001
[*DeviceA-acl4-basic-2001] rule permit source 10.1.1.3 0.0.0.0
[~DeviceA] acl number 2002
[*DeviceA-acl4-basic-2002] rule permit source 10.1.1.2 0.0.0.0
[~DeviceA] acl number 2003
[*DeviceA-acl4-basic-2003] rule permit source 10.1.1.4 0.0.0.0
[~DeviceA] acl number 2004
[*DeviceA-acl4-basic-2004] rule permit source 10.1.1.5 0.0.0.0
system-view
[~DeviceA] traffic classifier aa
[*DeviceA-classifier-aa] if-match acl 2001

[~DeviceA] traffic classifier bb
[*DeviceA-classifier-bb] if-match acl 2002

[~DeviceA] traffic classifier cc
[*DeviceA-classifier-cc] if-match acl 2003

[~DeviceA] traffic classifier dd
[*DeviceA-classifier-dd] if-match acl 2004

定义流行为(标记优先级并限速):

[~DeviceA] traffic behavior aa
[*DeviceA-behavior-aa] remark ip-precedence 5
[*DeviceA-behavior-aa] car cir 5000

[~DeviceA] traffic behavior bb
[*DeviceA-behavior-bb] remark ip-precedence 4
[*DeviceA-behavior-bb] car cir 4000

[~DeviceA] traffic behavior cc
[*DeviceA-behavior-cc] remark ip-precedence 3

[~DeviceA] traffic behavior dd
[*DeviceA-behavior-dd] remark ip-precedence 2

绑定策略并应用到入接口:

[~DeviceA] traffic policy ee
[*DeviceA-trafficpolicy-ee] classifier aa behavior aa
[*DeviceA-trafficpolicy-ee] classifier bb behavior bb
[*DeviceA-trafficpolicy-ee] classifier cc behavior cc
[*DeviceA-trafficpolicy-ee] classifier dd behavior dd

[~DeviceA] interface gigabitethernet0/1/0
[*DeviceA-GigabitEthernet0/1/0] traffic-policy ee inbound

配置WRED模板并在出接口应用队列调度、流量整型和WRED:

[~DeviceA] port-wred pw
[*DeviceA-port-wred-pw] color green low-limit 70 high-limit 100 discard-percentage 100
[*DeviceA-port-wred-pw] color yellow low-limit 60 high-limit 90 discard-percentage 100
[*DeviceA-port-wred-pw] color red low-limit 50 high-limit 80 discard-percentage 100

[~DeviceA] interface gigabitethernet0/1/8
[*DeviceA-GigabitEthernet0/1/8] port-queue ef pq port-wred pw outbound
[*DeviceA-GigabitEthernet0/1/8] port-queue af4 wfq weight 15 shaping 100 port-wred pw outbound
[*DeviceA-GigabitEthernet0/1/8] port-queue af3 wfq weight 10 shaping 50 port-wred pw outbound
[*DeviceA-GigabitEthernet0/1/8] port-queue af2 wfq weight 10 shaping 50 port-wred pw outbound

以上配置实现了基于优先级的拥塞管理和基于WRED的拥塞避免,保障了关键业务的带宽与延迟要求。

通过本文的QoS理论与配置案例的梳理,可以看到从流分类到流量监管、拥塞管理与拥塞避免的完整技术链条。灵活组合这些组件,就能在复杂网络中为不同业务提供差异化的服务质量保障。




上一篇:CUDA-Oxide、Burn、hpke-ng:Rust 重要项目更新
下一篇:C++类型擦除技术详解:从C++98到C++11,附完整实现范例
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-11 23:57 , Processed in 0.629509 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表