複製鏈接
請複製以下鏈接發送給好友

擁塞管理

鎖定
擁塞管理是解決廣域網和互聯網中的網絡阻塞的管理方式。很好的管理擁、控制擁塞能夠有效的解決網絡訪問不流暢的問題以及計算機訪問資源死鎖的問題,已經有了比較完整的管理機制。

擁塞管理什麼是擁塞?

在計算機網絡中的鏈路容量(即常説的帶寬)、交換節點的緩衝和處理機等,都是網絡資源。在謀段時間裏,若對網絡中的某一資源的需求部分超過了該資源所能提供的可用部分,網絡的特性就會變壞, 這種 情況就叫做擁塞。
簡單的舉例説:現在有1000台接入網絡的機器同時向一台提供網絡服務的計算機發出請求,而該計算機只能在該時段向一台設備提供服務,那麼999台將會堵塞在服務之外,成功請求服務的計算機甚至可能都無法得到正常的服務。這時就產生了擁塞。

擁塞管理擁塞管理的意義

擁塞 可表示為如下的關係:
∑對可用資源的需求>可用資源
如果網絡中有許多的資源同時產生擁塞,網絡性能就要明顯變差,整個網絡的吞吐量就會隨輸入量的的增加而下降。
而常常有人這樣的認為:增多網絡資源提供方式或者增大可用資源的提供限度,其實這種方法這不然,這是因為網絡擁塞是一個非常複雜的問題,簡單的採用這些方法,根本不能解決問題,有時反而會使網絡的性能更差。
問題複雜在擁塞往往有多方面因素引起的。如結點容量太小時,達到結點容量因為沒有存儲空間而不得不放棄;如果這時擴展容量到非常大。凡到達的均可在這緩存隊列中,不收限制時。而輸入鏈路和處理機的速度並未提高時,這樣讓然是長長的數據排列這,多整個系統併為提高,卻浪費了資源,這些輸出的數據卻還需要不斷重傳,這將不斷增加網絡負載,加載擁塞的程度。
擁塞常常是問題複雜化,可能因為擁塞而癱瘓,如:簡單文件傳送,在前一批數據包被阻塞時,後來的數據一直處於阻塞狀態,在傳輸源端澤不斷髮生數據,這是數據包不斷積累在鏈路上,是整個系統一直處於接受狀態但卻沒有接受到正確的數據,而是丟失在路上,越來越多的數據被丟失和不斷的輸入就會使系統癱瘓。
數據傳輸信息時代必然需求,高速傳輸、實時高效傳輸則必須首要解決的問題就是擁塞,而擁塞管理就顯的尤為重要了。

擁塞管理擁塞管理的思想

從理論上講,按上述方程式就能解決擁塞問題,但是往往擁塞管理是一個動態的,當前網絡正朝着高速的方向發展。解決問題也就越複雜,這樣是這方面管理的趨勢。
這方面的專業名詞:

擁塞管理輕度擁塞

當網絡的吞吐量明顯的小於理想的吞吐量時,網絡進入輕度擁塞。

擁塞管理直接死鎖

死鎖中的一種:即互相佔有對方需要的資源而造成的死鎖。

擁塞管理重裝死鎖

死鎖的另一種:由於路由器緩存的擁塞而引起的。

擁塞管理理論控制思想

從大的方面來看,分為兩種:開環控制閉環控制方式。 開環方法:就是開始設計網絡時事先將有關發生擁塞的因素考慮周到,力求網絡在工作時不產生擁塞,一旦系統運行起來就不在進行修正了。設計難度較大,閉環方法是基於反饋環路的概念,具體方法:
①檢測網絡系統以便擁塞在何時、何處發生。
②將擁塞信息傳輸到可採取行動的地方。
③調整網絡系統的運行以解決出現的問題。
有許多的 方法可以檢測的網絡的擁塞。主要的指標有:缺少的緩存空間和被丟失的分組的百分比;平均隊列長度;超時傳輸的分組數;平均時延;分組時延的標準差等等。
另一種管理方式是在路由器的分組保留一個bit的空間,來判斷網絡是否擁塞,這種方式能夠有效的控制系統產生的震盪。

擁塞管理擁塞管理技術

擁塞管理是指網絡在發生擁塞時,轉發設備對數據報文流進行管理和控制,以滿足業務的服務質量要求。當網絡接口沒有發生擁塞時,數據報文進入接口時就立即被髮送出去。當數據報文到達設備的速度大於其離開設備速度時,就會發生擁塞。接口的擁塞管理需要把到達的報文按優先級分成不同的類,送入優先級不同的隊列,隊列調度處理對不同優先級的報文進行區別處理。不同的隊列算法用來解決不同的問題,併產生不同的效果。常用的隊列技術有FIFO、PQ、CQ、WFQ、CBWFQ等,下文逐一介紹這些常用隊列技術的基本原理 [1] 
1. FIFO(First In First Out,先進先出)隊列
2.PQ(Priority Queuing,優先隊列)
3. CQ(Custom Queuing,定製隊列)
4. WFQ(Weighted Fair Queuing,加權公平隊列)
5. CBWFQ(Class Based Weighted Fair Queuing,基於類的加權公平隊列) [1] 

擁塞管理擁塞避免原理

由於內存資源的有限,按照傳統的處理方法,當隊列的長度達到規定的最大長度時,所有到來的報文都被丟棄。對於TCP報文,如果大量的報文被丟棄,將造成TCP超時,從而引發TCP的慢啓動和擁塞避免機制,使TCP減少報文的發送。當隊列同時丟棄多個TCP連接的報文時,將造成多個TCP連接同時進入慢啓動和擁塞避免,稱之為:TCP全局同步。這樣多個TCP連接發向隊列的報文將同時減少,使得發向隊列的報文的量不及線路發送的速度,減少了線路帶寬的利用。並且,發向隊列的報文的流量總是忽大忽小,使線路的上的流量總在極少和飽滿之間波動。
為了避免這種情況的發生,隊列可以採用加權隨機早期檢測WRED(Weighted Random Early Detection)的報文丟棄策略(WRED與RED的區別在於前者引入IP優先權,DSCP值,和MPLS EXP來區別丟棄策略)。採用WRED時,用户可以設定隊列的閾值(threshold)。當隊列的長度小於低閾值時,不丟棄報文;當隊列的長度在低閾值和高閾
值之間時,WRED開始隨機丟棄報文(隊列的長度越長,丟棄的概率越高);當隊列的長度大於高閾值時,丟棄所有的報文 [1] 

擁塞管理TCP擁塞管理例子

設置一個變的閾值-Threshold 。
丟包事件發生時,閾值Threshold設置為發生丟包以前的CongWin的一半。
參考資料
  • 1.    網絡之路-Qos專題