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