pf限速限链接数

(随机早期检测 (RED)是一种避免网络拥塞的算法,它通过确认队列没有超长来避免网络拥塞。实现方法是不停的计算队列的平均大小并与两个阈值比较,如果计算出的平均值 低于小阈值将不会丢弃任何包;如果在两个阈值之间将通过计算概率丢掉一些包;换言之,如果计算的平均值越接近大阈直则被丢弃的包越多。当丢掉一些包时, RED随机选择从哪些连接丢包,占用大带宽的连接被丢包的几率高。

RED的用处非常大,因为它可以避免一种被称为全体同步的状态,也可以调整突发流量。全体同步指多个连接的数据包在同一时间被丢弃导致的吞吐量全部消失的 情况。例如,如果承载10个FTP连接流量的一台路由器出现拥塞,大部分包被丢
弃,总的流量将迅速下降,这并不是最好的处理方法,因为所有的FTP连接都 降低了流量,换句话说,这个网络将不会再次发挥最大潜能。RED通过只在随机挑选的连接上丢包来避免上述情况。占用大带宽的连接被丢包的几率高,这样,占 用大带宽的连接将受到节制,避免了拥塞,同时总流量迅速降低的
现象也不会出现。另外,RED可以处理突发流量,因为它在队列装满之前就开始丢弃数据包,当突发流量到来时,队列中有足够的空间保存新发来的数据包。

我的光纤是20M
pf.conf
altq on $int_if cbq bandwidth 800Mb queue {allin,ok}
queue allin bandwidth 20Mb cbq(default)
queue ok bandwidth 19Mb cbq(red)

pass in quick on $int_if proto tcp from 192.168.2.0/22 to any keep state queue ok

pass in on $int_if inet from to any flags S/SA keep state (max 50000, source-track rule, max-src-nodes 30000,max-src-states 180,tcp.established 60,tcp.closing 5)

每台工作站的IP并发数只有180,那用BT下东东快不了那去的。
我测试发现当ok的流量满时,用pftop -s 1看到ok的DROP_P和DROP_B有数据,这说明red起作用了。