流量控制--7.總結

8. 流量控制的規則、準則和方法

8.1. Linux流量控制的通用規則

可使用以下通用規則來學習Linux流量控制。可使用tcngtc進行初始化配置Linux下的流量控制結構。html

  • 任何執行整流功能的路由器都應該成爲鏈路的瓶頸,而且應該調整爲略低於最大可用的鏈路帶寬。經過整流能夠防止在其餘路由器中造成隊列,從而最大程度地控制到整流設備的報文的延遲/延期。
  • 一個設備能夠對其傳輸的流量進行調整。因爲已經在輸入接口上接收到流量,所以沒法調整這類流量。 解決此問題的傳統方法是使用ingress策略。
  • 每一個接口必須包含一個qdisc。當沒有明確附加其餘qdisc時會使用默認的qdisc( pfifo_fast qdisc)。
  • 若是一個接口附加了classful qdiscs ,但沒有任何子類,這種狀況會無心義地消耗CPU。
  • 任何新建立的類都包含一個 FIFO。可使用任何qdisc來替換這個qdisc。當一個子類附加到該類時,會隱式地刪除FIFO qdisc。
  • 直接附加到root qdisc的類能夠模擬虛擬電路。
  • 能夠在類或任意一種classful qdiscs上附加過濾器。

8.2. 處理已知帶寬的鏈路

當一個鏈路已知帶寬時,HTB是一個理想的qdisc,由於能夠給最內層的(最根)類設置給定連接上的最大可用帶寬。流量後續會被分割到子類中,用於保證特定類型的流量的帶寬或容許優先選擇特定類型的流量。linux

8.3. 處理已知可變帶寬的鏈路

理論上,PRIO是一個理想的用於處理可變帶寬的調度器,由於它是一個連續工做的qdisc(這意味着它不提供整流)。在帶寬未知或波動的鏈路中,PRIO 調度器更喜歡優先將具備最高優先級的band中的全部報文出隊列,而後再處理較低優先級的隊列中。算法

8.4. 基於流的帶寬共享和分割

在多種類型的網絡帶寬競爭中,這一般是比較容易處理的競爭類型之一。經過使用SFQ,特定隊列中的流量能夠分爲多條流,而後公平地處理該隊列中的每條流。表現良好的應用程序(和用戶)會發現,使用SFQ和ESFQ足以知足大多數共享需求。網絡

這些公平排隊算法的致命弱點是沒法抵禦行爲不端的用戶或應用程序同時打開不少鏈接(例如,eMule, eDonkey, Kazaa)。經過建立大量獨立的流,應用程序能夠控制公平排隊算法中的時間間隙。重申一下,公平排隊算法不知道單個應用程序會生成大多數流,而且不會懲罰用戶。 須要依賴其餘方法。學習

8.5. 基於IP的帶寬共享和分割

對於許多管理員來講,這是在用戶之間劃分帶寬的理想方法。不幸的是,沒有簡單的解決方案,並且隨着共享網絡鏈接的機器數量的增長,它變得愈來愈複雜。.net

爲了在N個IP地址之間公平地分配帶寬,必須有N個類。code

9. 使用QoS/流量控制的腳本

9.1. wondershaper

更多參見 wondershaper.htm

9.2. ADSL Bandwidth HOWTO script (myshaper)

更多參見myshaper.接口

9.3. htb.init

更多參見htb.init.隊列

9.4. tcng.init

更多參見 tcng.init.

9.5. cbq.init

更多參見 cbq.init.

相關文章
相關標籤/搜索