|
原理:基于流(所谓同一流,是指五元组一致的2个或多个数据流,src/dst ip,src/dst port,protocol)形成动态队列
HASH(src ip ,dst ip,src port,dst port ,protocol)
1.1.1.1 3.3.3.3 32760 80 6
<=1.544 mbps 缺省启用WFQ
>1.544 mbps fifo 权重=自己的优先级+1/流的优先级+1
自己 1 2 3
流 3 4 5
=1+1/(3+1)+(4+1)+(5+1)
=2+1/(3+1)+(4+1)+(5+1)
=3+1/ (3+1)+(4+1)+(5+1)
wfq按照finish time值来排序数据包,ft=real packet size/(precedence +1).
按ft的大小顺序排列,从最小开始转发
超过HQO时,丢弃最激进的队列(worst finish time).
丢弃算法
当达到HQO时,下一数据包根据计算出的传输结束时间采取不同的策略:如果传输结束时间是所有队列中数据包传输结束时间最晚的,则丢弃该数据包,否则丢弃队列中现有传输结束时间最晚的数据包,下一数据包进入相应的队列
如果没有达到HQO,但是达到了CDT,下一数据包根据计算出的传输结束时间采取不同的策略:如果传输结束时间是所有队列中数据包传输结束时间最晚的,则丢弃该数据包,否则该数据包进入相应的队列
如果没有达到HQO,也没有达到CDT,下一数据包直接进入相应的队列
配置:
config-if#fair-queue 启用WFQ
number dynamic conversation queues 我这个端口下可以生成的动态队列 缺省256
CDT(congestion discard threshold) 到达该值时,计算新进数据包的FT值,若该FT值是队列中最大的
则丢弃该数据包,若该值不是最大的,则数据包进队
HQO(hold queue out)
到达该值时,计算新进数据包的FT值,若该FT值是队列中最大的,则丢弃该数据包,若该值不是最大的,丢弃队列中FT值最大的数据包
ft=real packet size/(precedence +1)
hold-queue out
cbwfq class-based
优点:更加灵活,更加可控,可以根据不同定义的类去形成队列、预留带宽、实施策略
priority percent XX 进入LLQ队列
bandwidth percent 进入BQ队列 轮询 一个瞬间 没有带宽时 可以把带宽撑满
Easyinlab Welcome
|
|