设为首页收藏本站language 语言切换
查看: 1028|回复: 0
收起左侧

WFQ (weighted fair queue) - Easyinlab

[复制链接]
发表于 2013-9-5 22:17:41 | 显示全部楼层 |阅读模式
原理:基于流(所谓同一流,是指五元组一致的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

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 16:54 , Processed in 0.066287 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

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