必要性
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)