HFSC用例

来源:互联网 发布:java八大基础类型 编辑:程序博客网 时间:2024/04/29 18:42

HFSC用例  : http://bbs.dualwan.cn/thread-130492-1-1.html

对于多人共享带宽的情况,QoS的目标可以总结为“让占用带宽越小的人延迟越低,占用越多的人延迟越高”。

DualWan论坛上的人似乎比较喜欢用写QoS脚本的方式,不过HFSC是一个更简洁的解决方案。

传统HTB仅仅对带宽进行限制。比如如果只能申请到2Mbps/256kbps的宽带业务,然后将流量平分给4个人,再假设实际上行带宽为30KB/s,每个包的大小为1.5KB。

于是当4个人都以最大速率发送数据(7.5KB/s),那么平均每两次发送的间隔就是200ms,排队造成的延迟大概就是200ms这个数量级的。

这时假设有一个人把速率调到1.5KB/s,结果是HTB不会把此人的包排到队列前端,结果排队的延迟大概还是200ms数量级的。

所以实时游戏之类的应用就如同上面的情况,很容易被P2P上传的流量阻塞,即使已经进行了IP限速(当然效果还是有的)。

如果把后2个人合并成1个人,并且分配速率15KB/s,那么路由器就必须每100ms发送一个包,才能保证速率。所以带宽分配越多,延时也越小。

-----------------------------------------------------------------------

HFSC的基本目标是实现一个非线性的流量控制。

每个上行的数据流,让每个传输在开始的一段时间内内拥有非常大的带宽,然后再调整到正常的带宽,这样使小流量的应用始终拥有暂时的大带宽(低延时),而大流量应用则拥有正常带宽(正常延时)。

HFSC目前似乎还只出现在DD-WRT下,而且默认的优先级设置有些不合实际,不过可以通过CRON来进行修改
  1. * * * * * root tc class replace dev imq0 parent 1:1 classid 1:10 hfsc sc m1 1000kbit d 10ms m2 400kbit ul m2 1400kbit
  2. * * * * * root tc class replace dev imq0 parent 1:1 classid 1:20 hfsc sc m1 1000kbit d 10ms m2 400kbit ul m2 1400kbit
  3. * * * * * root tc class replace dev imq0 parent 1:1 classid 1:30 hfsc sc m1 1000kbit d 10ms m2 400kbit ul m2 1400kbit
  4. * * * * * root tc class replace dev imq0 parent 1:1 classid 1:40 hfsc sc m1 1000kbit d 10ms m2 400kbit ul m2 1400kbit

  5. * * * * * root tc class replace dev ppp0 parent 1:1 classid 1:10 hfsc sc m1 100kbit d 50ms m2 50kbit ul m2 140kbit
  6. * * * * * root tc class replace dev ppp0 parent 1:1 classid 1:20 hfsc sc m1 100kbit d 50ms m2 50kbit ul m2 140kbit
  7. * * * * * root tc class replace dev ppp0 parent 1:1 classid 1:30 hfsc sc m1 100kbit d 50ms m2 50kbit ul m2 140kbit
  8. * * * * * root tc class replace dev ppp0 parent 1:1 classid 1:40 hfsc sc m1 100kbit d 50ms m2 50kbit ul m2 140kbit
原创粉丝点击