目錄
WRED(Weighted Random Early Detection)
一、簡略
RED與WRED用途--避免TCP 全局同步現象
- RED與WRED 是為避免TCP 全局同步現象的機制。(全局同步現象見后文)
- RED 和WRED 通過隨機丟棄報文避免了TCP 的全局同步現象。
RED(Random Early Detection)
RED(Random Early Detection/隨機早期檢測)
RED 類算法中,為每個(緩存)隊列都設定上限和下限,對隊列中的報文進行如下處理:
• 當隊列的長度小於下限時,不丟棄報文;
• 當隊列的長度超過上限時,丟棄所有到來的報文;
• 當隊列的長度在上限和下限之間時,開始隨機丟棄到來的報文。隊列越長,丟棄概率越高,但有一個最大丟棄概率。
缺點:直接采用(當前)隊列的長度和上限、下限比較並進行丟棄,將會對突發性的數據流造成不公正的待遇,不利於數據流的傳輸。
WRED(Weighted Random Early Detection)
平均值:
WRED 采用(一段時間內)平均隊列和設置的隊列上限、下限比較來確定丟棄的概率。(間隔時間段內)隊列平均長度既反映了隊列的變化趨勢,又對隊列長度的突發變化不敏感,避免了對突發性數據流的不公正待遇。
為不同優先級分別設置閾值:
當隊列機制采用 WFQ 時:
可以為不同優先級的報文設定計算隊列平均長度時的指數、上限、下限、丟棄概率,從而對不同優先級的報文提供不同的丟棄特性。
如為流量大的流設置長的隊列、為流量小的流設置短的隊列。
看英文理解更透徹:
二、詳細
原文摘自:《H3C S6820 系列以太網交換機 ACL 和QoS 配置指導》
6.1 擁塞避免簡介
過度的擁塞會對網絡資源造成極大危害,必須采取某種措施加以解除。擁塞避免是一種流量控制機
制,它通過監視網絡資源(如隊列或內存緩沖區)的使用情況,在擁塞產生或有加劇的趨勢時主動
丟棄報文,通過調整網絡的流量來避免網絡過載。
設備在丟棄報文時,需要與源端的流量控制動作(比如 TCP 流量控制)相配合,調整網絡的流量
到一個合理的負載狀態。丟包策略和源端的流量控制相結合,可以使網絡的吞吐量和利用效率最大
化,並且使報文丟棄和延遲最小化。
6.1.1 傳統的丟包策略--容易造成全局同步現象
傳統的丟包策略采用尾部丟棄(Tail-Drop)的方法。當隊列的長度達到最大值后,所有新到來的報文都將被丟棄。這種丟棄策略會引發 TCP 全局同步現象:當隊列同時丟棄多個TCP 連接的報文時,將造成多個TCP連接同時進入擁塞避免和慢啟動狀態以降低並調整流量,而后又會在某個時間同時出現流量高峰。如此反復,使網絡流量忽大忽小,網絡不停震盪。
6.1.2 RED與WRED
為避免TCP 全局同步現象,可使用RED 或WRED。
RED 和WRED 通過隨機丟棄報文避免了TCP 的全局同步現象,使得當某個TCP 連接的報文被丟
棄、開始減速發送的時候,其他的TCP 連接仍然有較高的發送速度。這樣,無論什么時候,總有
TCP 連接在進行較快的發送,提高了線路帶寬的利用率。
RED
在 RED 類算法中,為每個隊列都設定上限和下限,對隊列中的報文進行如下處理:
• 當隊列的長度小於下限時,不丟棄報文;
• 當隊列的長度超過上限時,丟棄所有到來的報文;
• 當隊列的長度在上限和下限之間時,開始隨機丟棄到來的報文。隊列越長,丟棄概率越高,
但有一個最大丟棄概率。
直接采用隊列的長度和上限、下限比較並進行丟棄,將會對突發性的數據流造成不公正的待遇,不
利於數據流的傳輸。
WRED
WRED 采用平均隊列和設置的隊列上限、下限比較來確定丟棄的概率。
隊列平均長度既反映了隊列的變化趨勢,又對隊列長度的突發變化不敏感,避免了對突發性數據流
的不公正待遇。
當隊列機制采用 WFQ 時,可以為不同優先級的報文設定計算隊列平均長度時的指數、上限、下限、丟棄概率,從而對不同優先級的報文提供不同的丟棄特性。
6.1.3 WRED和隊列機制的關系
WRED 和隊列機制的關系如下圖所示。
當 WRED 和WFQ 配合使用時,可以實現基於流的WRED。在進行分類的時候,不同的流有自己的隊列,對於流量小的流,由於其隊列長度總是比較小,所以丟棄的概率將比較小。而流量大的流將會有較大的隊列長度,從而丟棄較多的報文,保護了流量較小的流的利益。
6.1.4 擁塞通知--ECN
WRED 采用的丟棄報文的動作雖然緩解了擁塞對網絡的影響,但從[源頭]到[被丟棄位置]之間報文所消耗的網絡資源已經被浪費了。
因此,在擁塞發生時,及時通知發送端主動降低發送速率或減小報文窗口大小,便可以更高效的利用網絡資源。
因此RFC 2481 定義了一種端到端的擁塞通知機制,這就是ECN 功能,ECN功能見博客相關文章。