QOS-配置擁塞避免機制


QOS-配置擁塞避免機制

2018年7月7日

20:29

 

 

  • 尾丟棄及其導致的問題:

 

 

  • 隊列滿時路由器進行尾丟棄,即新到的所有數據包都全部丟棄
  • 丟棄的結果造成高延遲、高抖動、喪失服務保證、TCP全局同步、TCP餓死等問題,從而導致應用超時、數據重傳和實時業務不可用等一系列問題

 

TCP全局同步:

  • 沒有差別的丟棄會造成所有TCP流的報文幾乎在同一時刻丟棄,TCP又幾乎在同一時刻重傳。
  • TCP窗口會在幾乎同一時刻縮小,然后又幾乎同一時刻增大
  • 這將造成所有TCP連接的流量以相同的“頻率”持續震盪。TCP全局同步的結果是TCP傳輸效率急劇下降,並且帶寬的平均利用率大大降低。

 

解決方法:

  • 增加隊列長度可以減少丟棄,但無法從根本上解決問題
    • 隊列長度受限於資源,不能無限制增加
    • 增加隊列長度也增加了報文的平均延遲和抖動
  • 在尾丟棄發生前,使不同TCP連接的報文在不同時刻被丟棄,則各個TCP連接的流量震盪就不會同步。

 

RED介紹:

 

 

  • RED(隨機早期檢測)可以有效防止TCP全局同步。其做法是在隊列滿之前就對已入隊的報文進行隨機丟棄
  • RED的特點在於“早期”和“隨機”,這使得不同的流量在不同的時刻以“無規律”的方式丟棄,從而有效避免了所有的TCP連接發生同步震盪。

 

 

  • Low-Limit:最低丟棄門限,平均隊列長度超過門限時,RED開始丟棄報文,值越低,隊列越早開始丟棄報文
  • High-Limit:最高丟棄門限,平均隊列長度超過此門限時,RED將丟棄所有到來的報文。
  • Pmax:最大丟棄概率,即RED丟棄報文條件下報文被丟棄的最大概率,這個值通常不為100%。

 

  • 當前平均隊列長度小於Low-Limit時,不丟棄報文
  • 當前平均隊列長度超過High-Limit時,丟棄所有到來的報文
  • 當前平均隊列長度在Low-Limit和High-Limit之間時,開始隨機丟棄到來的報文。

 

WRED的原理:

引入:RED很好地解決了TCP全局同步和“餓死”等問題,但由於不能感知業務類型,對報文的丟棄不分輕重穩急,因此並沒有解決重要和緊急報文被丟棄的問題。

 

概念:WRED(加權隨機早期檢測)它允許不同優先級的報文配置不同的RED參數,從而保證了不同重要程度的報文獲得不同的服務,可以DSCP和IP Precedence參數。

 

 

  • WRED可以對每個優先級分別設定最低丟棄門限、最高丟棄門限和最大丟棄概率。
  • 最低丟棄門限越小意味着該隊列的報文越早被丟棄,在其他條件相同時總體被丟棄的報文就越多。

 

 

  • 對AF類型的報文,每一隊報文有三個丟棄優先級,可以分別設定其對應不同的底限,從而體現出在丟包概率上的差異。
  • EF類型的報文應該保證其具有最小的丟包概率和區間

 

WRED配置:

基於接口的WRED配置命令:

在接口上使能WRED:

 

 

配置計算平均隊列長度的指數:

 

 

配置各優先級的對應參數:

 

基於隊列的WRED表配置WRED表:

在系統視圖下配置WRED表:

 

 

配置計算平均隊列長度的指數:

 

 

配置WRED表的其他參數:

 

 

在接口或端口組視圖下應用WRED表:

 

 

其他類型WRED表的配置命令:

進入WRED表視圖:

 

 

配置計算平均隊列長度的指數:

 

 

配置WRED表的其他參數:

 

 

在接口或端口組視圖下應用WRED表:

 

WRED顯示和維護命令:

 

 

顯示WRED表:

 

Weighting-constant:(1~16默認為9)

  • 該指數為權重因子,表征了平均隊列長度對實際隊列度變化的敏感程度
  • 較大的n值將使平均隊列長度在當前隊列長度變化時具有較大的“慣性”

Discard-probability:

  • 丟棄概率分母,用於設定平均隊列長度接近高限時的最大丟包概率
  • 值大意味着丟包率小

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM