HQoS = Hierarchical Quality of Service 传统的QoS采用一级调度,举个例子,如果有2个用户user1和user2,两个用户都有相同的DSCP(比如46),那么进入到路由器都是一个队列(比如EF),如果EF拥塞了,那么路由器就会随机丢弃里面的流量,假如User1的流量比User2更加重要,那也无法保证 ![[Pasted image 20250430225301.png]] HQoS简单的说就是这之前一级队列的基础上多加了几级虚拟队列(有三级和五级等,厂商实现不一样),这之前进行调度,这样就可以对不同的用户进行不同的优先级设置,比如User1优先级高,那么相同队列拥塞的时候先丢弃User2的流量以此来包装User1的流量 ![[Pasted image 20250430225740.png]] 下面是官方的图片: 普通QoS调度 ![[1.png]] HQoS调度 ![[2.png]] - 叶子节点:FQ(Flow Queue)队列 - 每个用户的数据流都可以划分为1~8个优先级,即每个用户可以使用1~8个FQ - 中间节点:SQ(Subscriber Queue) - 一个SQ代表一个用户或者业务 - 根节点:GQ(Group Queue) - 多个用户定义为一个用户组GQ 下面举例说明FQ、SQ、GQ及其关系 - 有2个家庭用户,User1和User2 - 要求对每个用户的总带宽限制在120Mbps以内,保证带宽为100Mbps,每个用户的VoIP和IPTV的带宽保证分别为60Mbps和40Mbps,其他业务不做带宽保证,2个用户的总带宽为150Mbps ![[Pasted image 20250430232137.png]] ```bash flow-queue user1 queue af4 wfq shaping 40000 # --> IPTV queue ef pq shaping 60000 # --> VoIP # user-group-queue user1 shaping 150000 outbound # qos-profile user1 user-queue cir 100 pir 120 flow-queue user1 user-group-queue user1 # flow-queue user2 queue af4 wfq shaping 40000 # --> IPTV queue ef pq shaping 60000 # --> VoIP # user-group-queue user2 shaping 150000 outbound # qos-profile user2 user-queue cir 100 pir 120 flow-queue user1 user-group-queue user2 # interface GigabitEthernet 1/0/0.100 vlan-type dot1q 100 qos-profile user1 outbound # interface GigabitEthernet 1/0/0.200 vlan-type dot1q 200 qos-profile user2 outbound # ```