WRED

加權早期檢測

加權隨機先期檢測(WRED:Weighted Random Early Detection)是將隨機先期檢測與優先順序排隊結合起來,這種結合為高優先順序分組提供了優先通信處理能力。當某個介面開始出現擁塞時,它有選擇地丟棄較低優先順序的通信,而不是簡單地隨機丟棄分組。

簡介


WRED是基於weight的隨機早偵測,工作思想和WFQ有相同之處,WFQ在工作時,是依靠流量的優先順序來分配相應帶寬的,而WRED卻是依靠流量的優先順序來分配相應的丟棄幾率的。當網路中有多種數據時,在發生擁塞之後,將優先順序較低的相對不重要的數據丟棄,而優先保證重要數據的傳遞。WRED在網路發生擁塞之後,總是先保證高優先順序的重要數據的傳遞,而先丟棄普通的數據。 WRED在網路發生擁塞之後,可根據數據包的DSCP或IP優先順序來丟棄數據包,低優先順序的數據總是比高優先順序的數據先丟,從而保證重要數據的傳遞。

必要性


Cisco路由器上配置WRED的必要性:
儘管隊列提供VoIP QoS的擁塞管理,仍需要一些提供擁塞規避的機制,像是WRED。特別的,WRED可以防止輸出隊列達到極限值,這將導致所有輸入數據包的丟失。本文來自於Informit,論述了在Cisco路由器上配置WRED的必要性。
請回憶一下在你早期的網路技術學習中的內容——傳輸控制協議(TCP)的窗口(windowing)是如何工作的。發送者發送一個信息段,如果發送者收到接收者發出的成功的應答,則它再發送兩個信息段(即,兩個“窗口大小”)。如果應答回復這兩個信息段發送成功,發送者發送四個信息段,並繼續如此進行下去,窗口大小以指數增加。
但是,如果一個信息段丟失,TCP流將進入TCP慢啟動(TCP slow start),這時窗口大小減少到1。TCP流接著以指數增長其窗口大小直到擁塞發生時窗口大小的一半。然後,TCP流的窗口大小以線性增長。TCP慢啟動與QoS有關,因為當一個介面的輸出隊列已滿的時候,所有的新到達的數據包被丟棄(即“tail dropped”),所有的TCP流同時進入TCP慢啟動。
注意,多個TCP流同時進入TCP慢啟動的過程被稱為全局同步(global synchronization)或者TCP同步。當TCP同步發生時,連接的帶寬不能充分利用,從而造成了帶寬的浪費。

注意


RED 基礎隨機早期檢測(RED)的目的是通過在一個介面的輸出隊列將要飽和的時候隨機丟棄數據包以防止發生TCP同步。RED丟棄數據包的速度取決於當時的隊列深度。下面的三個參數影響到何時一個新到達的數據包被丟棄:
·最小門限
·最大門限
·標籤概率分母(MPD)
最小門限指定在隊列準備丟棄數據包前的隊列中的數據包數量。丟棄數據包的可能性隨著隊列深度達到最大門限而不斷上升。當隊列深度超過最大門限時,所有其它試圖進入隊列的數據包都被丟棄。
數據包的丟棄可能性在隊列深度等於最大門限時為1/(MPD)。例如,如果標籤概率分母被設定為10,當隊列深度達到最大門限時,被丟棄的可能性為1/10(即,被丟棄的可能性為百分之十)。最小門限、最大門限以及MPD組成了RED。RED在路由器可能發生擁塞的埠是十分有用的。例如,一個WAN埠可能會需要採用RED。

CB-WRED


思科不支持RED,但是卻支持更好的加權隨機先期檢測(WRED),與RED不同,WRED可以解析每個優先順序標籤。例如,一個IP優先順序為0的數據包的最小門限可能是20,但是一個IP優先順序為1的數據包的最小門限可能是25。在這一例子中,IP優先順序為0的數據包將比IP優先順序為1的數據包先被丟棄。
儘管WRED可以從埠配置模式或虛擬電路結構進行設置,這裡講述基於模塊化的 WRED的設置。為了開啟WRED並設定WRED需要關注的標籤(即IP 優先順序或 DSCP),需要輸入下列政策圖類配置模式命令。
Router(config-pmap-c)#random-detect [dscp-based | prec-based]
如果既沒有指定為基於dscp也沒有指定為基於prec,WRED默認為基於prec。配置WRED后,IOS分配默認的最小門限、最大門限和MPD。你可以使用下列命令改變默認參數
Router(config-pmap-c)#random-detect precedence precedence_value
minimum-threshold maximum-threshold mark-probability-denominator
(用於基於prec的WRED)
Router(config-pmap-c)#random-detect dscp dscp_value
minimum-thresholdmaximum-threshold mark-probability-denominator
(用於基於dscp的WRED)