linux tc 限速,linux tc 限速
TC 是linux自帶的模塊,可以用來控制網速。
常用命令格式
tc [qdisc/class/filter] [add/del/replace] dev 網卡名字 ?其他參數
tc限速主要是將數據包發送到不同類型的隊列中,然后由隊列控制發送。限速隊列主要由兩種:一種是無類隊列,其中包括pfifo_fast(先進先出) 、TBF ( 令牌桶過濾器) 、SFQ(隨機公平隊列) 、ID (前 向隨機丟包)等等。另外一種是分類隊列,其中由引出了class(類),filter(過濾器)的概念。
qdisc,class,filter三者直接關系如下:
每創建一個class,都會有一個默認的qdisc,該qdisc掛在class作為子節點上。filter掛在隊列上,主要決定讓數據包向子節點類傳遞。
假設有如下需求:
WEB 服務器的流量控制為 5Mbps,SMTP 流量控制在 3Mbps 上 . 而且二者一共不得超過 6Mbps, 互相之間允許借用帶寬
#tc?qdisc?add?dev?eth0?root?handle?1:0?cbq?bandwidth?100Mbit?avpkt?1000?cell?8
#tc?class?add?dev?eth0?parent?1:0?classid?1:1?cbq?bandwidth?100Mbit?rate?6Mbit?weight
0.6Mbit?prio?8?allot?1514?cell?8?maxburst?20?avpkt?1000?bounded
這部分按慣例設置了根為?1:0,?并且綁定了類?1:1.?也就是說整個帶寬不能超過?6Mbps.
#tc?class?add?dev?eth0?parent?1:1?classid?1:3?cbq?bandwidth?100Mbit?rate?5Mbit?weight
0.5Mbit?prio?5?allot?1514?cell?8?maxburst?20?avpkt?1000
#tc?class?add?dev?eth0?parent?1:1?classid?1:4?cbq?bandwidth?100Mbit?rate?3Mbit?weight
0.3Mbit?prio?5?allot?1514?cell?8?maxburst?20?avpkt?1000
建立了?2?個類?.?注意我們如何根據帶寬來調整?weight?參數的?.?兩個類都沒有配置成"bounded",?但它們都連
接到了類?1:1?上?,?而?1:1?設置了"bounded".?所以兩個類的總帶寬不會超過?6Mbps.?別忘了?,?同一個?CBQ?下面的子
類的主號碼都必須與?CBQ?自己的號碼相一致?!
#tc?qdisc?add?dev?eth0?parent?1:3?handle?30:?sfq
#tc?qdisc?add?dev?eth0?parent?1:4?handle?40:?sfq
缺省情況下?,?兩個類都有一個?FIFO?隊列規定?.?但是我們把它換成?SFQ?隊列?,?以保證每個數據流都公平對待?.
#tc?filter?add?dev?eth0?parent?1:0?protocol?ip?prio?1?u32?match?ip?sport?80?0xffff?flowid
1:3
#tc?filter?add?dev?eth0?parent?1:0?protocol?ip?prio?1?u32?match?ip?sport?25?0xffff?flowid
1:4
總結
以上是生活随笔為你收集整理的linux tc 限速,linux tc 限速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TextView 设置显示省略号
- 下一篇: 王者战力查询接口(免费)