包駿
隨著Internet本身規(guī)模的迅速擴大、Internet用戶數(shù)的劇增,以及網(wǎng)絡(luò)應(yīng)用類型的快速增加,網(wǎng)絡(luò)正經(jīng)歷越來越多的包丟失和其他的性能惡化問題,其中一個比較嚴重的現(xiàn)象就是網(wǎng)絡(luò)擁塞。造成網(wǎng)絡(luò)擁塞的原因很多,主要有存儲空間不足、帶寬容量不足、處理器處理能力弱、TCP/IP協(xié)議擁塞控制機制中的缺陷、用戶的惡意攻擊等。 在當前的Internet中,既然網(wǎng)絡(luò)擁塞是無法避免的,就必須采取積極主動的策略控制和避免擁塞,把擁塞發(fā)生的可能性降到最低,即使在發(fā)生擁塞后也能及時地恢復(fù)到正常運行狀態(tài);同時擁塞控制也必須保證網(wǎng)絡(luò)效率。因此,網(wǎng)絡(luò)擁塞控制是網(wǎng)絡(luò)系統(tǒng)改善性能、提高服務(wù)質(zhì)量的主要手段。
互聯(lián)網(wǎng)網(wǎng)絡(luò)流量的控制
互聯(lián)網(wǎng)網(wǎng)絡(luò)流量控制用于防止在端口阻塞的情況下丟幀,這種方法是當發(fā)送或接收緩沖區(qū)開始溢出時通過將阻塞信號發(fā)送回源地址實現(xiàn)的。流量控制可以有效地防止由于網(wǎng)絡(luò)中瞬間的大量數(shù)據(jù)對網(wǎng)絡(luò)帶來的沖擊,保證用戶網(wǎng)絡(luò)高效而穩(wěn)定的運行。
兩種流量控制方式
在互聯(lián)網(wǎng)絡(luò)中有兩種流量控制方式,它們分別是半雙工方式和全雙工方式。在半雙工方式下,流量控制是通過反向壓力,即通常說的背壓計數(shù)實現(xiàn)的,這種計數(shù)是通過向發(fā)送源發(fā)送jamming信號使得信息源降低發(fā)送速度。在全雙工方式下,流量控制一般遵循IEEE.802.3X標準,是由交換機向信息源發(fā)送“pause”幀令其暫停發(fā)送。采用流量控制,使傳送和接受節(jié)點間數(shù)據(jù)流量得到控制,可以防止數(shù)據(jù)包丟失。
互聯(lián)網(wǎng)網(wǎng)絡(luò)流量監(jiān)測目的
網(wǎng)絡(luò)測量的直接目的是獲取與網(wǎng)絡(luò)運行有關(guān)的流量數(shù)據(jù),而這些流量數(shù)據(jù)最終將服務(wù)于網(wǎng)絡(luò)工程的各個方面。從總體上說,可以包括流量描述、網(wǎng)絡(luò)監(jiān)控和流量控制三個方面。
流量描述的任務(wù)之一是識別流量的模式,尤其是峰值流量的模式,以及這些模式的變化。同時,對流量模式的分析應(yīng)該具有多個時間尺度。其次,分析網(wǎng)絡(luò)流量在網(wǎng)絡(luò)上的分布也很重要。流量分布可以使基于一些對象的:流、網(wǎng)絡(luò)接口、鏈路、節(jié)點、節(jié)點對、路徑或者目標節(jié)點。第三,流量描述還應(yīng)該根據(jù)不同的路由器和網(wǎng)絡(luò)上不同服務(wù)類型數(shù)據(jù)的表現(xiàn)來預(yù)測未來的流量負載。第四,從長遠來看,對流量模式的研究可以預(yù)測流量的變化趨勢,從而對未來協(xié)議的設(shè)計等工作提供指導(dǎo)。
網(wǎng)絡(luò)監(jiān)測是網(wǎng)絡(luò)測量領(lǐng)域很重要的一部分。對于某些對可靠性要求很高的網(wǎng)絡(luò)而言,網(wǎng)絡(luò)監(jiān)控本身就是網(wǎng)絡(luò)維護不可分割的一部分。首先,網(wǎng)絡(luò)監(jiān)測可以自監(jiān)測網(wǎng)絡(luò)目前的運行狀態(tài),找出錯誤的或者可能導(dǎo)致錯誤的設(shè)備或者操作。一般用戶在使用網(wǎng)絡(luò)時,都知道用ping或者traceroute等命令來監(jiān)測當前網(wǎng)絡(luò)的運行狀況,其實這本身就是一種網(wǎng)絡(luò)測量行為。其次,由于網(wǎng)絡(luò)服務(wù)的多樣化,服務(wù)質(zhì)量的控制越來越重要了。網(wǎng)絡(luò)監(jiān)測可以監(jiān)視網(wǎng)絡(luò)服務(wù)質(zhì)量和連續(xù)性,可以保證服務(wù)質(zhì)量或服務(wù)等級得到有效地執(zhí)行,可以對某個特定的服務(wù)提供性能上的監(jiān)控。第三,隨著MPLS等具有網(wǎng)絡(luò)流量工程功能的路由協(xié)議的應(yīng)用,網(wǎng)絡(luò)監(jiān)控可以用來監(jiān)測流量工程策略的有效性,同時可以在網(wǎng)絡(luò)性能的參數(shù)達到閥值的時候激活相應(yīng)的策略。第四,ISP為用戶提供Internet服務(wù)都不是獨立的,不同的ISP之間需要按照某種協(xié)議互相協(xié)作,以便為用戶提供最好的服務(wù)。因此網(wǎng)絡(luò)監(jiān)控還擔負起了在邊界路由器監(jiān)控不同服務(wù)提供商之間的流量的任務(wù)。這一任務(wù)包括對網(wǎng)絡(luò)內(nèi)部和網(wǎng)絡(luò)之間流量的交換進行估計,以及服務(wù)提供商之間各式各樣的流量交換提供服務(wù)。
互聯(lián)網(wǎng)網(wǎng)絡(luò)流量擁塞控制
擁塞現(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)象。這就好比是公路網(wǎng)絡(luò)中經(jīng)常所見的交通擁擠,當假日公路網(wǎng)中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的時間都相對增加,即延遲增加,甚至有時在某段公路上車輛因堵塞而無法開動,即發(fā)生局部死鎖。
發(fā)生擁塞的原因
網(wǎng)絡(luò)的吞吐量與通信子網(wǎng)負荷,即通信子網(wǎng)中正在傳輸?shù)姆纸M數(shù),有著密切的關(guān)系。當通信子網(wǎng)負荷比較小時,網(wǎng)絡(luò)的吞吐量(分組數(shù)/秒)隨網(wǎng)絡(luò)負荷(每個節(jié)點中分組的平均數(shù))的增加而線性增加。當網(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)重傳。當擁塞比較嚴重時,通信子網(wǎng)中相當多的傳輸能力和節(jié)點緩沖器都用于這種無謂的重傳,從而使通信子網(wǎng)的有效吞吐量下降。由此引起惡性循環(huán),使通信子網(wǎng)的局部甚至全部處于死鎖狀態(tài),最終導(dǎo)致網(wǎng)絡(luò)有效吞吐量接近為零。
擁塞控制的方法
緩沖區(qū)預(yù)分配法。該法用于虛電路分組交換網(wǎng)中。在建立虛電路時,讓呼叫請求分組途經(jīng)的節(jié)點為虛電路預(yù)先分配一個或多個數(shù)據(jù)緩沖區(qū)。若某個節(jié)點緩沖器已被占滿,則呼叫請求分組另擇路由,或者返回一個“忙”信號給呼叫者。這樣,通過途經(jīng)的各節(jié)點為每條虛電路開設(shè)的永久性緩沖區(qū)(直到虛電路拆除),就總能有空間來接納并轉(zhuǎn)送經(jī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ū),當緩沖區(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è)置適當數(shù)量的稱作“許可證”的特殊信息,一部分許可證在通信子網(wǎng)開始工作前預(yù)先以某種策略分配給各個源節(jié)點,另一部分則在子網(wǎng)開始工作后在網(wǎng)中四處環(huán)游。當源節(jié)點要發(fā)送來自源端系統(tǒng)的分組時,它必須首先擁有許可證,并且每發(fā)送一個分組注銷一張許可證。目的節(jié)點方則每收到一個分組并將其遞交給目的端系統(tǒng)后,便生成一張許可證,這樣便可確保子網(wǎng)中分組數(shù)不會超過許可證的數(shù)量,從而防止了擁塞的發(fā)生。endprint