「QoS」- HQoS

  CREATED BY JENKINSBOT

问题描述

由于传统 QoS 只能将流分成 8 个队列进行调度控制,因此在多租户的场景下限制很大;

诸如,在家庭宽带场景下,不同的家庭可能会租用不同的网络带宽,不同的网络服务,QoS 无法精细化的管理这些家庭。传统 QoS 无租户概念,无法针对特定宽带进行管理;

传统的 QoS 基于接口进行流量调度,单个接口只能区分业务优先级,只要属于同一优先级的流量,就使用同一个端口队列,彼此之间竞争同一个队列资源。因此,传统的 QoS 无法对接口上多个用户的多个流量进行区分服务;

解决方案

HQoS 基于多级队列实现层次化调度,不仅区分了业务,也区分了用户,实现了精细化的 QoS 服务;

注意,不同设备的 HQoS 特性有一定区别,我们这里主要学习 CPE(AR 系列路由器)的 HQoS 特性;

原理简述

HQoS 基于队列实现层次化调度,CPE 上支持三级队列:

1)Level3 流队列(Flow Queue):在该队列中,针对用户特定流量进行调度;
每个用户的同类业务可以被认为是一个业务流,HQoS 能够针对每个用户的不同业务流进行队列调度;
流队列一般与业务类型相对应,包括 EF、AF、BE 等,用户可以配置流队列的调度方式;

2)Level2 用户队列(Subscriber Queue):在该队列中,针对用户就行流量调度;
来自同一用户的所有业务可以被认为是一个用户队列,HQoS 可以使该用户队列下的所有业务共享一个用户队列的带宽;

3)Level1 接口队列(Port Queue):在该队列上,将不再进行个体管理,而是全部流量就行管理;
每个接口(子接口、Tunnel)一个队列,接口队列之间进行 RR(轮询调度),仅能配置基于接口的流量整形,且其调度方式不可配置;

特性特征

HQoS 用于复杂场景下的 QoS 部署,颗粒度更细,

应用场景

假设一栋楼有 3 个家庭,家庭 A 购买了 10M 带宽并且开通了 VoIP,IPTV 和 HSI 业务,家庭 B 购买了 20M 带宽并开通了 IPTV 和 HSI 业务,家庭 C 购买了 30M 带宽只开通了 HSI 业务,通过 HQoS 可以方便的实现这些需求;

关于 HQoS 队列调度

流队列调度器和用户队列调度器都支持 PQ、WFQ、PQ+WFQ 调度。接口队列调度器使用轮询调度 RR(Round Robin)方式;

以企业用户的 HQoS 部署为例,企业用户主要有三种业务:语音通讯(VoIP)、视频会议(VC)和数据业务(DATA)

每个用户队列对应一个企业用户,每个流队列对应一种业务。通过部署 HQoS,可以实现:
1)控制单个企业用户三种业务之间的流量调度
2)控制单个企业用户三种业务的总带宽
3)控制多个企业用户之间的带宽分配
4)控制多个企业用户的总带宽

关于 HQoS 流量整形

整形器实现报文的缓存及限速功能。设备支持三级整形器,即流队列整形器、用户队列整形器、接口队列整形器;

报文进入设备后先缓存到队列,再限速从队列发送报文,整形器配合限速算法可以保证承诺速率并限制最大速率;

关于 HQoS 丢弃器

丢弃器在报文入队列之前将根据丢弃策略丢弃报文;

HQoS 支持的 3 种队列支持不同的丢弃方式:
1)流队列:尾部丢弃和 WRED
2)用户队列:尾部丢弃
3)接口队列:尾部丢弃