深入剖析 QOS:拥塞管理与拥塞避免技术

目录

深入剖析 QOS:拥塞管理与拥塞避免技术

一、QOS 拥塞管理

(一)PQ(Priority Queue,优先级队列)

(二)WRR(Weighted Round Robin,加权轮询)

(三)WFQ(Weighted Fair Queuing,加权公平队列)

(四)CBQ(Class-Based Queuing,基于类的队列)

二、QOS 拥塞避免

(一)TCP 全局同步

(二)TCP 饿死现象

(三)无差别丢弃


在网络世界中,随着数据流量的持续增长,网络拥塞问题日益凸显。为了保障网络的高效运行,提供稳定且高质量的服务,QoS(Quality of Service,服务质量)技术应运而生。其中,拥塞管理和拥塞避免是 QoS 的关键组成部分,它们相互协作,共同维护网络的流畅性。

一、QOS 拥塞管理

拥塞管理旨在当网络发生拥塞时,对报文进行合理的调度和处理,确保关键业务的报文能够优先转发,避免因拥塞导致业务质量下降。常见的拥塞管理队列技术丰富多样。

(一)PQ(Priority Queue,优先级队列)

PQ 会将报文根据优先级划分到不同队列,优先转发高优先级队列中的报文。这种方式适用于对实时性要求极高的业务,如语音和视频传输。然而,它存在一个明显的缺陷,如果高优先级队列持续有报文,低优先级队列可能长时间得不到调度,出现 “饿死” 现象。在华为设备上配置 PQ 的示例代码如下:

# 创建PQ队列模板
queue-profile name pq-profile
  queue 7 priority high  // 将队列7设置为高优先级
  queue 6 priority high
  queue 5 priority high
  queue 0 priority low   // 将队列0设置为低优先级
  queue 1 priority low
  queue 2 priority low
  queue 3 priority low
  queue 4 priority low
# 在接口应用队列模板
interface GigabitEthernet0/0/1
  qos queue-profile pq-profile outbound

(二)WRR(Weighted Round Robin,加权轮询)

WRR 为每个队列分配一个权重,按照权重比例依次对队列进行调度。它能保证每个队列都有机会获得带宽,避免了低优先级队列被 “饿死” 的情况。但对于一些对实时性要求严格的业务,其公平调度的特性可能无法满足需求。华为设备配置 WRR 的代码示例:

# 创建WRR队列模板
queue-profile name wrr-profile
  queue 0 wrr-weight 1  // 队列0权重设为1
  queue 1 wrr-weight 2  // 队列1权重设为2,以此类推
  queue 2 wrr-weight 3
  queue 3 wrr-weight 4
  queue 4 wrr-weight 5
  queue 5 wrr-weight 6
  queue 6 wrr-weight 7
  queue 7 wrr-weight 8
# 在接口应用队列模板
interface GigabitEthernet0/0/1
  qos queue-profile wrr-profile outbound

(三)WFQ(Weighted Fair Queuing,加权公平队列)

WFQ 根据报文的流特征将其划分到不同队列,并为每个队列分配权重。它能为不同的流提供公平的带宽分配,适用于网络中存在多种不同类型流量的场景。在 CBQ 中,BE(Best Effort)队列默认使用 WFQ 调度算法。配置示例如下:

# 创建流分类
traffic classifier wfq-classifier
  if-match acl 2000
# 创建流行为,指定WFQ调度
traffic behavior wfq-behavior
  queue wfq  // 指定使用WFQ调度
# 创建流策略并关联流分类和流行为
traffic policy wfq-policy
  classifier wfq-classifier behavior wfq-behavior
# 在接口应用流策略
interface GigabitEthernet0/0/1
  traffic-policy wfq-policy outbound

(四)CBQ(Class-Based Queuing,基于类的队列)

CBQ 是一种非常灵活且常用的拥塞管理技术。它可以根据报文的各种特征,如 ACL、五元组等,将报文分类并放入不同队列,还能为每个队列配置带宽保证。CBQ 提供了 EF(Expedited Forwarding)、AF(Assured Forwarding)和 BE 三种队列。EF 队列优先级最高,常用于语音和实时视频业务;AF 队列次之,可用于 FTP、邮件等业务;BE 队列优先级最低,用于尽力而为的业务。配置 CBQ 时,首先要定义流分类、流行为和流策略,然后在接口上应用流策略。下面是配置 CBQ 的代码示例:

# 创建ACL,用于匹配报文
acl number 2000
  rule permit source 1.1.1.1 0
# 创建流分类,关联ACL
traffic classifier cbq-classifier
  if-match acl 2000
# 创建流行为,指定进入EF队列并设置带宽
traffic behavior cbq-behavior
  queue ef bandwidth 1000 kbps  // 将匹配的报文放入EF队列,带宽设为1000kbps
# 创建流策略,关联流分类和流行为
traffic policy cbq-policy
  classifier cbq-classifier behavior cbq-behavior
# 在接口应用流策略
interface GigabitEthernet0/0/1
  traffic-policy cbq-policy outbound

不同的队列技术可以相互搭配使用,以发挥各自的优势。例如,PQ + WRR 的组合,将部分队列配置为 PQ 调度,用于保障关键业务的低延迟转发;其余队列配置为 WRR 调度,确保其他业务也能获得一定的带宽。

二、QOS 拥塞避免

当网络拥塞发生时,队列可能会被填满,此时就会出现报文丢弃的情况。传统的尾丢弃(Tail Drop)方式会在队列满时丢弃新到达的报文,这种方式会引发一系列问题。

(一)TCP 全局同步

TCP 协议通过 ACK 报文来检测网络拥塞。当大量 TCP 报文因尾丢弃被丢弃时,TCP 会认为网络拥塞,从而降低窗口大小,减少流量发送。这会导致网络中 TCP 流量出现 “一会儿高一会儿低” 的现象,即 TCP 全局同步,严重影响网络的稳定性和传输效率。

(二)TCP 饿死现象

当 TCP 流量因拥塞而减少发送时,UDP 流量可能会占用 TCP 腾出的缓存空间。由于 UDP 没有拥塞控制机制,会持续发送报文,导致后续的 TCP 报文再次被丢弃,TCP 流量进一步减少,最终可能出现 TCP 饿死现象。

(三)无差别丢弃

尾丢弃和早期随机检测(RED)在丢弃报文时,无法区分报文的重要性,可能会将关键业务的报文丢弃,影响业务质量。

为了解决这些问题,加权随机早期检测(WRED,Weighted Random Early Detection)技术应运而生。WRED 可以根据报文的 DSCP 值或 IP 优先级,为不同优先级的报文设置不同的丢弃门限和丢弃概率。当队列长度达到低门限时,开始随机丢弃低优先级的报文;随着队列长度增加,丢弃概率逐渐增大;当达到高门限时,按照最大丢弃概率丢弃报文。配置 WRED 的步骤如下:

  1. 创建丢弃模板:定义不同优先级报文的丢弃门限和丢弃概率。

# 创建WRED丢弃模板
wred-profile name wred-profile
  dscp-based
  dscp 0 low-limit 20 high-limit 40 discard-probability 10  // 对于DSCP值为0的报文,低门限20%,高门限40%,最大丢弃概率10%
  dscp 1 low-limit 30 high-limit 45 discard-probability 15
  dscp 2 low-limit 35 high-limit 50 discard-probability 20

  1. 在队列中应用丢弃模板:将创建好的丢弃模板应用到相应的队列。

# 创建队列配置模板
queue-profile name queue-profile
  queue 0 wfq  // 队列0使用WFQ调度
  queue 0 wred-profile wred-profile  // 在队列0应用WRED丢弃模板
# 在接口应用队列配置模板
interface GigabitEthernet0/0/1
  qos queue-profile queue-profile outbound

通过 WRED 技术,可以优先丢弃不太重要的报文,减少对关键业务的影响,延缓 TCP 全局同步的到来,提高网络的稳定性和可靠性。

QoS 的拥塞管理和拥塞避免技术对于保障网络的高效运行至关重要。通过合理选择和配置拥塞管理队列技术,以及采用有效的拥塞避免机制,能够确保网络在拥塞情况下仍能为关键业务提供高质量的服务,提升用户的网络体验。在实际的网络部署中,需要根据网络的业务需求、流量特征等因素,灵活运用这些技术,打造稳定、可靠的网络环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值