定義
網路擁塞(congestion)是指在分組交換網路中傳送分組的數目太多時,由於存儲轉發節點的資源有限而造成網路傳輸性能下降的情況。當網路發生擁塞時,一般會出現數據丟失,時延增加,吞吐量下降,嚴重時甚至會導致“擁塞崩潰”(congestion collapse)。通常情況下,當網路中負載過度增加致使網路性能下降時,就會發生網路擁塞。可由圖 2.1 形象描述網路擁塞現象發生的過程 。
網路擁塞形成的原因
因為在事先沒有任何協商和請求許可機制的資源共享網路中,幾個IP分組同時到達路由器,並期望經同一個輸出連線埠轉發的可能性是存在的,顯然,不是所有分組可以同時接受處理,必須有一個服務順序,中間節點上的快取為等候服務的分組提供一定保護。然而,如果此狀況具有一定的持續性,當快取空間被耗盡時,路由器只有丟棄分組。在這種持續過載的狀態下,網路性能會急劇下降。
存儲空間限制
在每個輸出連線埠有一定的存儲空間,若一個輸出連線埠被幾個輸入數據流共同使用,輸入流的數據包就會在該存儲空間內排隊等待輸出。當連線埠轉發數據的速率低於數據包的到達速率時,會造成存儲空間被占滿的情形,後到達的數據包將被丟棄。突發數據流的此種現象更多。雖然從某種程度上來講,存儲空間的增加能夠緩解輸出連線埠的壓力。但是存儲空間無限制的增加,會導致數據包完成轉發時,它們早已逾時,源端認為這些數據包在傳輸過程中被丟棄而要求重發,不僅降低網路效率,而且使得網路擁塞情況更加嚴重。另外在實際套用中,存儲容量不可能無限制的增加,不符合實際意義。
頻寬容量的限制
通過實踐證明低速鏈路難以應對高速數據流的輸入,從而發生網路擁塞。依據香農理論,信源的傳送速率必須小於或等於信道容量。因此,當源端頻寬遠大於鏈路頻寬形成頻寬瓶頸時,導致數據包在網路節點排隊等待,造成網路擁塞。
處理器性能限制
路由器中的 CPU 主要執行快取區排隊、更新路由表、進行路由選擇等功能,如果其工作效率不能滿足高速鏈路的需求,就會造成網路擁塞。
在實際套用中,複雜的網路結構和不合理的路由原則也會造成網路擁塞現象的發生 。
擁塞控制
解決網路擁塞的方法是擁塞控制(congestion control)。擁塞控制需要確保網路能夠承載用戶提交的通信量,是一個全局性問題,涉及主機、路由器等很多因素。衡量網路是否擁塞的參數主要有:缺乏緩衝區造成的分組丟失率、平均佇列長度、逾時重傳的分組數目、平均分組延遲及分組延遲變化等。根據控制論,擁塞控制方法分為兩類:第一類是開環控制,即通過設計一個好的算法來避免擁塞發生。在進行擁塞控制時,不考慮網路的當前狀態。常用算法有:
1.源端擁塞控制算法
2.鏈路擁塞控制算法
第二類是閉環控制,即給予反饋機制,根據網路的當前狀態來控制擁塞。反饋方法有以下幾種:
1、向信息源傳送一個告警數據報。
2、在數據包的結構中保留一個比特或一個域,用來表示發生擁塞。一旦發生擁塞,路由器對所有輸出數據報中的相應比特進行設定,以此來向鄰居告警。
3、主機或濾油器主動地、周期地傳送探測數據報(probe),查詢是否發生擁塞。
閉環擁塞控制的工作過程如下:
1、由監控系統來發現何時何地發生擁塞;
2、當發生擁塞時,將發生擁塞的訊息傳給能採取動作的站點;
3、調整系統操作,解決擁塞問題。