擁塞現(xiàn)象概述
擁塞現(xiàn)象是指到達通信子網(wǎng)中某一部分的分組數(shù)量過多,使得該部分網(wǎng)絡(luò)來不及處理,以致引起這部分乃至整個網(wǎng)絡(luò)性能下降的現(xiàn)象,嚴重時甚至?xí)?dǎo)致網(wǎng)絡(luò)通信業(yè)務(wù)陷入停頓,即出現(xiàn)死鎖現(xiàn)象。這種現(xiàn)象跟公路網(wǎng)中經(jīng)常所見的交通擁擠一樣,當(dāng)節(jié)假日公路網(wǎng)中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的時間都相對增加(即延遲增加),甚至有時在某段公路上車輛因堵塞而無法開動(即發(fā)生局部死鎖)。
網(wǎng)絡(luò)的吞吐量與通信子網(wǎng)負荷(即通信子網(wǎng)中正在傳輸?shù)姆纸M數(shù))有著密切的關(guān)系。當(dāng)通信子網(wǎng)負荷比較小時,網(wǎng)絡(luò)的吞吐量(分組數(shù)/秒)隨網(wǎng)絡(luò)負荷(每個節(jié)點中分組的平均數(shù))的增加而線性增加。當(dāng)網(wǎng)絡(luò)負荷增加到某一值后,若網(wǎng)絡(luò)吞吐量反而下降,則表征網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象。在一個出現(xiàn)擁塞現(xiàn)象的網(wǎng)絡(luò)中,到達某個節(jié)點的分組將會遇到無緩沖區(qū)可用的情況,從而使這些分組不得不由前一節(jié)點重傳,或者需要由源節(jié)點或源端系統(tǒng)重傳。當(dāng)擁塞比較嚴重時,通信子網(wǎng)中相當(dāng)多的傳輸能力和節(jié)點緩沖器都用于這種無謂的重傳,從而使通信子網(wǎng)的有效吞吐量下降。由此引起惡性循環(huán),使通信子網(wǎng)的局部甚至全部處于死鎖狀態(tài),最終導(dǎo)致網(wǎng)絡(luò)有效吞吐量接近為零。
造成擁塞的原因(1)多條流入線路有分組到達,并需要同一輸出線路,此時,如果路由器沒有足夠的內(nèi)存來存放所有這些分組,那么有的分組就會丟失。(2)路由器的慢帶處理器的緣故,以至于難以完成必要的處理工作,如緩沖區(qū)排隊、更新路由表等。
防止擁塞的方法(1)在傳輸層可采用:重傳策略、亂序緩存策略、確認策略、流控制策略和確定超時策略。(2)在網(wǎng)絡(luò)層可采用:子網(wǎng)內(nèi)部的虛電路與數(shù)據(jù)報策略、分組排隊和服務(wù)策略、分組丟棄策略、路由算法和分組生存管理。(3)在數(shù)據(jù)鏈路層可采用:重傳策略、亂序緩存策略、確認策略和流控制策略。
該法用于虛電路分組交換網(wǎng)中。在建立虛電路時,讓呼叫請求分組途經(jīng)的節(jié)點為虛電路預(yù)先分配一個或多個數(shù)據(jù)緩沖區(qū)。若某個節(jié)點緩沖器已被占滿,則呼叫請求分組另擇路由,或者返回一個"忙"信號給呼叫者。這樣,通過途經(jīng)的各節(jié)點為每條虛電路開設(shè)的永久性緩沖區(qū)(直到虛電路拆除),就總能有空間來接納并轉(zhuǎn)送經(jīng)過的分組。此時的分組交換跟電路交換很相似。當(dāng)節(jié)點收到一個分組并將它轉(zhuǎn)發(fā)出去之后,該節(jié)點向發(fā)送節(jié)點返回一個確認信息。該確認一方面表示接收節(jié)點已正確收到分組,另一方面告訴發(fā)送節(jié)點,該節(jié)點已空出緩沖區(qū)以備接收下一個分組。上面是"停一等"協(xié)議下的情況,若節(jié)點之間的協(xié)議允許多個未處理的分組存在,則為了完全消除擁塞的可能性,每個節(jié)點要為每條虛電路保留等價于窗口大小數(shù)量的緩沖區(qū)。這種方法不管有沒有通信量,都有可觀的資源(線路容量或存儲空間)被某個連接占有,因此網(wǎng)絡(luò)資源的有效利用率不高。這種控制方法主要用于要求高帶寬和低延遲的場合,例如傳送數(shù)字化語音信息的虛電路。
分組丟棄法該法不必預(yù)先保留緩沖區(qū),當(dāng)緩沖區(qū)占滿時,將到來的分組丟棄。若通信子網(wǎng)提供的是數(shù)據(jù)報服務(wù),則用分組丟棄法來防止擁塞發(fā)生不會引起大的影響。但若通信子網(wǎng)提供的是虛電路服務(wù),則必須在某處保存被丟棄分組的備份,以便擁塞解決后能重新傳送。有兩種解決被丟棄分組重發(fā)的方法,一種是讓發(fā)送被丟棄分組的節(jié)點超時,并重新發(fā)送分組直至分組被收到;另一種是讓發(fā)送被丟棄分組的節(jié)點在嘗試一定次數(shù)后放棄發(fā)送,并迫使數(shù)據(jù)源節(jié)點超時而重新開始發(fā)送。但是不加分辨地隨意丟棄分組也不妥,因為一個包含確認信息的分組可以釋放節(jié)點的緩沖區(qū),若因節(jié)點元空余緩沖區(qū)來接收含確認信息的分組,這便使節(jié)點緩沖區(qū)失去了一次釋放的機會。解決這個問題的方法可以為每條輸入鏈路永久地保留一塊緩沖區(qū),以用于接納并檢測所有進入的分組,對于捎帶確認信息的分組,在利用了所捎帶的確認釋放緩沖區(qū)后,再將該分組丟棄或?qū)⒃撋訋Ш孟⒌姆纸M保存在剛空出的緩沖區(qū)中。
定額控制法這種方法在通信子網(wǎng)中設(shè)置適當(dāng)數(shù)量的稱做"許可證"的特殊信息,一部分許可證在通信子網(wǎng)開始工作前預(yù)先以某種策略分配給各個源節(jié)點,另一部分則在子網(wǎng)開始工作后在網(wǎng)中四處環(huán)游。當(dāng)源節(jié)點要發(fā)送來自源端系統(tǒng)的分組時,它必須首先擁有許可證,并且每發(fā)送一個分組注銷一張許可證。目的節(jié)點方則每收到一個分組并將其遞交給目的端系統(tǒng)后,便生成一張許可證。這樣便可確保子網(wǎng)中分組數(shù)不會超過許可證的數(shù)量,從而防止了擁塞的發(fā)生。