摘要:在簡述現(xiàn)存網(wǎng)絡(luò)架構(gòu)的技術(shù)弱點(diǎn)后,提出了微通信元系統(tǒng)架構(gòu)的思想,微通信元體系結(jié)構(gòu)對不同服務(wù)類型的數(shù)據(jù)構(gòu)建不同的虛電路進(jìn)行傳輸。針對這種數(shù)據(jù)通信策略,提出了一種基于反饋信息位的擁塞控制機(jī)制,該機(jī)制根據(jù)來自路由節(jié)點(diǎn)的反饋信息調(diào)整一個虛電路發(fā)送端的發(fā)送速率,以實現(xiàn)擁塞控制。NS仿真表明,此機(jī)制能有效提高網(wǎng)絡(luò)的吞吐量,改善網(wǎng)絡(luò)的性能。
關(guān)鍵詞:網(wǎng)絡(luò)體系結(jié)構(gòu); 服務(wù)元; 微通信元; 擁塞控制
中圖分類號:TP393文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2008)03-0844-03
目前互聯(lián)網(wǎng)所使用的TCP/IP體系是基于層次體系結(jié)構(gòu)的。隨著全球互聯(lián)網(wǎng)的蓬勃發(fā)展,人們對網(wǎng)絡(luò)的利用和依賴的增加,各種新的網(wǎng)絡(luò)服務(wù)不斷涌現(xiàn),從而對網(wǎng)絡(luò)的性能[1,2]提出了更高的要求,TCP/IP層次網(wǎng)絡(luò)體系所帶來的矛盾也不斷突出。在此基礎(chǔ)上,出現(xiàn)了非層次的計算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu),即服務(wù)元的網(wǎng)絡(luò)體系結(jié)構(gòu)(service unit based network architecture,SUNA)和與之對應(yīng)的一個構(gòu)架,即微通信元系統(tǒng)(micro——communication element system,MCES)[3,4],旨在通過對體系結(jié)構(gòu)的變更來解決現(xiàn)有層次網(wǎng)絡(luò)存在的問題。
任何形式的網(wǎng)絡(luò)中擁塞控制均起著非常重要的作用,它直接影響網(wǎng)絡(luò)的性能和服務(wù)質(zhì)量(QoS)。由于MCES采用了端到端的虛電路方式傳輸數(shù)據(jù)(同樣的源、目的節(jié)點(diǎn)地址而服務(wù)類型不同的數(shù)據(jù)流將構(gòu)建不同的虛電路傳送)和滿足某種形式的間隙整形算法[5],針對這種數(shù)據(jù)傳輸策略,本文提出了一種基于反饋信息位的擁塞控制機(jī)制。
本文介紹了服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)及微通信元系統(tǒng)架構(gòu)思想;MCES下?lián)砣漠a(chǎn)生原因及其特殊性,詳細(xì)分析MCES中基于反饋信息位的擁塞控制機(jī)制,并對它的實現(xiàn)作了詳細(xì)說明,并進(jìn)行仿真與性能分析。
1服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)和微通信元系統(tǒng)架構(gòu)
1.1服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)
服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)不同于層次體系結(jié)構(gòu),它認(rèn)為各個網(wǎng)絡(luò)功能部件是一個個的功能元素的集合。服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)也是模塊化結(jié)構(gòu),模塊是服務(wù)元,服務(wù)元是能夠提供服務(wù)而又隱藏內(nèi)部細(xì)節(jié)的最小實體(硬軟件)。各個服務(wù)元之間沒有上下層次關(guān)系,由各種不同功能的服務(wù)元組合完成各種不同的網(wǎng)絡(luò)功能。為了具體說明某服務(wù)元為誰提供服務(wù)、由什么原因啟動以及如何提供服務(wù),可以把服務(wù)元分為五類[3]。
服務(wù)元是具有獨(dú)立性和擴(kuò)展性的服務(wù)功能模塊,它只提供服務(wù),而不接受服務(wù);它不僅能為本節(jié)點(diǎn)應(yīng)用提供服務(wù),不同節(jié)點(diǎn)的服務(wù)元還可以合作向某一節(jié)點(diǎn)或是整個網(wǎng)絡(luò)提供服務(wù)。服務(wù)元提供服務(wù)是通過服務(wù)數(shù)據(jù)單元(service data unit,SDU)完成的。SDU又稱為包(packet)。服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)的節(jié)點(diǎn)模型如圖1所示。
1.2微通信元系統(tǒng)構(gòu)架
因為服務(wù)元是SDU的發(fā)送者、接收者、轉(zhuǎn)發(fā)者或變換者(和網(wǎng)絡(luò)介質(zhì)一起組成有源信道)。又因為一個節(jié)點(diǎn)包含許多服務(wù)元,所以將它們稱為微通信元。相關(guān)節(jié)點(diǎn)的服務(wù)團(tuán)隊將微通信元組織成微通信系統(tǒng),再將大量微通信元系統(tǒng)組織成網(wǎng)絡(luò)系統(tǒng)。這就是把服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)的第一個網(wǎng)絡(luò)系統(tǒng)稱為微通信元系統(tǒng)MCES構(gòu)架的原因。
微通信元系統(tǒng)構(gòu)架的構(gòu)建原則是容易從TCP/IP過渡而來:包格式盡可能靠近TCP/IP(但要刪除其冗余重復(fù)部分),以便簡化包轉(zhuǎn)換器;大量吸收TCP/IP的成功經(jīng)驗,如服務(wù)功能元素的定義、套接字機(jī)制、三次握手建立和釋放連接、TCP的狀態(tài)遷徙圖、滑動窗口技術(shù),等等;沿用TCP/IP的系統(tǒng)調(diào)用格式,可擴(kuò)展。
2微通信元系統(tǒng)架構(gòu)下?lián)砣漠a(chǎn)生原因
微通信元系統(tǒng)架構(gòu)采用端到端的虛電路方式傳輸數(shù)據(jù)。虛電路就是指從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)之間由軟件按網(wǎng)絡(luò)地址建立起來的通道,如圖2所示。端到端的虛電路意味著對于具有相同的源、目標(biāo)節(jié)點(diǎn)地址而服務(wù)類型不同的數(shù)據(jù),將構(gòu)建不同的虛電路來傳送。建立虛電路的包中除了包含節(jié)點(diǎn)地址信息外,還應(yīng)該包含服務(wù)類型信息,以便按此服務(wù)類型預(yù)留資源。而路由器的虛電路表中也應(yīng)包含服務(wù)類型信息,以便按此服務(wù)類型使用資源。當(dāng)路由器收到數(shù)據(jù)包時,按虛電路表并受預(yù)留資源限制(文本數(shù)據(jù)除外)進(jìn)行遞交;當(dāng)收到撤銷虛電路的包時,在虛電路表中刪除相應(yīng)的項,并釋放資源。三種數(shù)據(jù)類型的特點(diǎn)和處理方法如表1所示。
微通信元系統(tǒng)架構(gòu)采用了端到端的虛電路結(jié)構(gòu)以及滿足某種規(guī)律的間隙整形算法,保證了所有鏈路都是無擁塞鏈路[5]。因此所有節(jié)點(diǎn)都不會被“淹沒”,按道理應(yīng)該不需要擁塞控制,但嚴(yán)格地按預(yù)留資源進(jìn)行發(fā)送將導(dǎo)致以下兩種情況的資源浪費(fèi):
a)大多數(shù)虛電路都存在一個沉默期,即該虛電路一段時間內(nèi)沒有數(shù)據(jù)發(fā)送,如利用IP電話通話時,說者在說話期間思考問題,這時候,虛電路空閑,而此時其他應(yīng)用程序卻因為資源不夠而無法正常通信。
b)實時音/視頻通常是要壓縮的,而且壓縮比是變化的。這樣,如果實時音/頻數(shù)據(jù)流預(yù)留的容量按非壓縮值設(shè)置為64 kbps,實時視頻MPEG1數(shù)據(jù)流預(yù)留的容量也按非壓縮值設(shè)置為1.5 Mbps,實際傳輸時就會存在很多資源的浪費(fèi)。
為了充分利用這兩種空閑資源,服務(wù)元網(wǎng)絡(luò)規(guī)定文本數(shù)據(jù)可以利用這些資源,即文本數(shù)據(jù)流預(yù)留的容量按規(guī)定值(如平均值的幾分之一)預(yù)留資源。實際發(fā)送時,為了利用空閑帶寬,一旦網(wǎng)絡(luò)有空就發(fā)送。這樣的話,就必須要對文本數(shù)據(jù)的發(fā)送進(jìn)行擁塞控制,否則注入網(wǎng)絡(luò)的數(shù)據(jù)量會超出該主機(jī)建立的所有虛電路的帶寬總和。大量主機(jī)的這種行為無疑會給網(wǎng)絡(luò)造成很大的負(fù)擔(dān),直到超出路由器的處理能力,導(dǎo)致很大的轉(zhuǎn)發(fā)延遲甚至丟包,從而引起端主機(jī)的重傳,形成惡性循環(huán),導(dǎo)致?lián)砣漠a(chǎn)生。
3微通信元系統(tǒng)架構(gòu)基于反饋信息位擁塞控制機(jī)制
針對微通信元體系結(jié)構(gòu)下數(shù)據(jù)的傳輸特征(文本數(shù)據(jù)可以利用音/視頻數(shù)據(jù)傳輸間隙節(jié)省下來的容量)和擁塞的產(chǎn)生原因,提出了一種基于反饋信息位的擁塞控制機(jī)制。該機(jī)制的基本思想是:來自路由器的反饋信息以一比特位的形式存在于每個分組中(可用當(dāng)前分組保留位中的一比特位表示),該位的不同取值表示了網(wǎng)絡(luò)的擁塞狀況,發(fā)送方可以根據(jù)此反饋信息來及時評估鏈路的可用帶寬,及時調(diào)整擁塞窗口的大小,從而高效地利用帶寬資源,提高文本數(shù)據(jù)傳輸?shù)耐掏铝俊R驗榇吮忍匚猾@得了與顯示擁塞通告(ECN)標(biāo)記相反的結(jié)果,筆者稱之為AntiECN標(biāo)記位。3.1基于反饋信息位的擁塞控制機(jī)制的算法實現(xiàn)
在本文的機(jī)制中,發(fā)送方的每個分組均在頭部攜帶一位AntiECN標(biāo)記位,此標(biāo)記位的初始值被置“1”。在虛電路路徑上的每個路由器會判斷自己是否允許該分組所屬的數(shù)據(jù)流增加它的發(fā)送率。如果路由器允許,它就會把存在于分組頭部的AntiECN標(biāo)記位與“1”進(jìn)行“與”操作,并且把結(jié)果置回分組頭部;如果路由器已經(jīng)被充分利用,它就會把AntiECN位與“0”進(jìn)行“與”操作后把結(jié)果置回分組頭部。“與”操作確保了分組傳輸?shù)穆窂缴现灰幸粋€路由器擁塞或者被高效利用,AntiECN標(biāo)記位都會為0,因此,反饋信息位不會導(dǎo)致已經(jīng)擁塞的路由器進(jìn)入擁塞崩潰狀態(tài)。最后,接收方通過ACK確認(rèn)分組回送AntiECN標(biāo)記位給發(fā)送方,發(fā)送方根據(jù)AntiECN位調(diào)整慢啟動和擁塞避免階段的擁塞窗口大小來實現(xiàn)擁塞控制。具體算法如下:
慢啟動階段
a)當(dāng)AntiECN標(biāo)記位=1,cwnd(擁塞窗口) 每收到一個ACK確認(rèn),cwnd+=MSS(最大分組長度)。在一個RTT時間,擁塞窗口以指數(shù)形式成倍增加,直到條件改變。 b)當(dāng)AntiECN標(biāo)記位=0,cwnd< ssthresh時,每收到一個ACK確認(rèn),cwnd+=(MSS*MSS)/擁塞窗口大小。 擁塞避免階段 c)當(dāng)AntiECN標(biāo)記位=1,cwnd≥ssthresh時, 每收到一個ACK確認(rèn),cwnd+=int(MSS/K),K=int(cwnd/(0.5ssthresh))。 d)當(dāng)AntiECN標(biāo)記位=0,cwnd≥ssthresh時, 每收到一個ACK確認(rèn),cwnd+=(MSS*MSS)/擁塞窗口大小。 3.2基于反饋信息位的擁塞控制機(jī)制的分析 對比傳統(tǒng)擁塞控制算法,對本文改進(jìn)機(jī)制具體分析如下: a)傳統(tǒng)的算法在慢啟動階段總是簡單地以指數(shù)形式增加擁塞窗口,這會導(dǎo)致在一個RTT時間擁塞窗口會迅速增加,容易引起丟包現(xiàn)象發(fā)生,繼而造成超時重傳。最后,有連接傳輸會以一個非常小的窗口結(jié)束在擁塞避免階段,接著在網(wǎng)絡(luò)順暢時,再去花費(fèi)大量時間來增大擁塞窗口的大小,這樣做嚴(yán)重影響了連接的吞吐量。而在本文改進(jìn)的機(jī)制中,是根據(jù)反饋信息位來調(diào)整擁塞窗口的增長速度。算法中(a)情況表明網(wǎng)絡(luò)順暢良好,擁塞窗口采取與傳統(tǒng)算法相同的增長策略;(b)情況表明網(wǎng)絡(luò)帶寬已經(jīng)被充分利用,擁塞窗口增長過快可能會導(dǎo)致丟包現(xiàn)象,這時采取傳統(tǒng)的擁塞避免階段的算法,擁塞窗口進(jìn)入緩慢線性增長狀態(tài)。可見,根據(jù)AntiECN標(biāo)記位的不同,在慢啟動階段采用了不同的窗口增長策略對原有算法進(jìn)行了改進(jìn)。 b)傳統(tǒng)的算法中,當(dāng)擁塞窗口的大小達(dá)到臨界窗口尺寸(ssthresh)后,就減慢其增長速度,進(jìn)入擁塞避免階段,即采用算法(b)情況下的緩慢增長策略,而不管此時網(wǎng)絡(luò)的實際使用狀況。若此時網(wǎng)絡(luò)帶寬資源有剩余,此種機(jī)制就限制了文本數(shù)據(jù)連接傳輸?shù)耐掏铝俊8倪M(jìn)的機(jī)制中,在擁塞避免階段,連接也會根據(jù)反饋信息位,靈活采用擁塞窗口的增長策略:(a)表明網(wǎng)絡(luò)未被充分利用,但擁塞窗口的大小已經(jīng)達(dá)到閾值,因此也不會采用過快的增長策略。機(jī)制中,在每個ACK確認(rèn)按時到達(dá)之后,窗口會增長1/K個MSS,在一個RTT時間窗口最多增長1/2個MSS,當(dāng)擁塞窗口的大小大于1.5倍ssthresh時,每個ACK確認(rèn)到達(dá)后,窗口最多增長1/3個MSS,依此類推。此方法既防止了擁塞避免階段窗口增長過快引起丟包,又防止了窗口增長緩慢而限制了文本數(shù)據(jù)吞吐量。(b)情況表明網(wǎng)絡(luò)已經(jīng)被充分利用,并且擁塞窗口的大小又達(dá)到了閾值,此時采用傳統(tǒng)的擁塞避免算法即可。總之,根據(jù)AntiECN標(biāo)記位的不同取值采用了不同的擁塞避免算法來改進(jìn)本文數(shù)據(jù)的吞吐量和網(wǎng)絡(luò)性能。 3.3路由器充分利用與否的判定 當(dāng)一個攜帶反饋信息位——AntiECN標(biāo)記位的分組到達(dá)路由器端時,路由器將根據(jù)自己當(dāng)前的負(fù)載情況決定該分組所屬的數(shù)據(jù)流在下一個RTT時間是否可以增加其發(fā)送率。一種簡單的解決方法如下:若當(dāng)前連接利用率低于一個確定的上限值(稱為閾值,通常是該連接容量的η倍,η<1)或者路由器節(jié)點(diǎn)有剩余帶寬(可以由虛電路表中記錄的當(dāng)前連接預(yù)留資源總和計算得到),路由器就認(rèn)為該連接未被充分利用繼而把AntiECN標(biāo)記位置1;若當(dāng)前連接利用率高于一個確定上限值并且路由器節(jié)點(diǎn)沒有剩余帶寬,則路由器被充分利用,此時路由器就把AntiECN標(biāo)記位置0。 為了判斷AntiECN標(biāo)記位的值,機(jī)制中路由器采用類似于顯示擁塞通告標(biāo)記中使用的自適應(yīng)虛擬隊列運(yùn)算法則[6]。路由器提供了一個虛擬隊列,其容量為鏈接容量的η倍,其緩沖區(qū)尺寸為B,每一個分組到達(dá)時,路由器向虛擬隊列中增加一個假象的分組并進(jìn)行判定:若隊列是空的,就將AntiECN位置1;隊列非空則置0。如下偽代碼描述了以上的執(zhí)行情況。 在每個分組到達(dá)時: VQ[aecn]←max(VQ[aecn] η*C(ts),0); /* 更新虛擬隊列大小*/ if VQ[aecn]=0 /*s=前一分組的到達(dá)時間*/ 將標(biāo)記位置為1; /*t=當(dāng)前時間*/ else /*b=當(dāng)前分組的8位組數(shù)目*/ 將標(biāo)記位設(shè)為0; /*VQ[aecn]=當(dāng)前虛擬隊列的8位組數(shù)目*/ end if /*C=路由器的實際接收隊列大小*/ VQ[aecn] ←VQ[aecn]+b; /*更新虛擬隊列大小*/ 機(jī)制中路由器端有兩個參數(shù)需要設(shè)定,確定的上限值η和虛擬隊列的緩沖區(qū)大小。虛擬隊列的緩沖區(qū)大小將對利用率產(chǎn)生一定的影響,太小的值將使AntiECN位被頻繁地置為1從而導(dǎo)致丟包及網(wǎng)絡(luò)性能下降;而太大的值將使鏈接變得保守,文本數(shù)據(jù)的吞吐量不能得到明顯的提高。 4仿真性能分析 為了驗證本機(jī)制的性能,筆者利用NS2工具進(jìn)行了分析。網(wǎng)絡(luò)拓?fù)鋱D如圖3所示。這是一個單瓶頸的拓?fù)浣Y(jié)構(gòu),其中S為源端;D為接收端;通過帶寬為10 Mbps、延遲為2 ms的鏈路與路由器R相連。n個S到D的連接共享R1到R2的瓶頸鏈路。R1到R2的帶寬為1.5 Mbps;延遲為40 ml。路由器使用FIFO和DropTall隊列管理算法,緩沖區(qū)大小設(shè)為30個分組,最大數(shù)據(jù)包長度設(shè)為1 600 Byte。為了簡化起見,仿真以FTP作為數(shù)據(jù)流。 圖3仿真拓?fù)鋱D 本文對FTP持續(xù)傳送1 Mbps數(shù)據(jù)、連接數(shù)1~30、每個連接在0~5 s之間的隨機(jī)啟動進(jìn)行了仿真。首先,分別對每個連接在η=0.55,η=0.7時和原擁塞控制算法對鏈路的利用率進(jìn)行了比較。從圖4可以看到,本機(jī)制根據(jù)AntiECN位來估計鏈路的可用帶寬,避免了慢啟動階段的盲目指數(shù)增長,因此能減小分組丟棄數(shù)、減小超時重傳分組數(shù),從而提高了鏈路的利用率。另外,擁塞窗口的指數(shù)增長時間取決于閾值η,η越大,η的指數(shù)增長時間越長。從圖5中還可看出,η取不同值時的連接對鏈路的利用率也不同。因此,設(shè)計一個合理有效的η值是筆者將來的主要研究課題。 其次,對一個單連接,采用不同閾值η時的AntiECN擁塞控制機(jī)制和原算法(TCP Reno)的吞吐量進(jìn)行了比較。如圖6所示,η的取值使慢啟動過程指數(shù)增長階段的結(jié)束時間稍稍提前,這在一定程度上影響了網(wǎng)絡(luò)在慢啟動階段的吞吐量。然而, 同TCP Reno相比,本文的機(jī)制大大縮短了網(wǎng)絡(luò)達(dá)到穩(wěn)定狀態(tài)的時間, 并在很大程度上提高了慢啟動階段的吞吐量。并且本文機(jī)制在擁塞避免階段也采用了根據(jù)反饋信息來調(diào)整發(fā)送窗口的策略,所以在網(wǎng)絡(luò)達(dá)到穩(wěn)定狀態(tài)后,網(wǎng)絡(luò)的吞吐量還要稍高一些。 圖6吞吐量比較 5結(jié)束語 微通信元系統(tǒng)架構(gòu)是一種新型的網(wǎng)絡(luò)體系結(jié)構(gòu),具有易于從TCP/IP過渡的特點(diǎn)。本文具體分析了該系統(tǒng)架構(gòu)下?lián)砣奶厥庑裕岢隽艘环N基于反饋信息位的擁塞控制機(jī)制,并對該機(jī)制和傳統(tǒng)機(jī)制進(jìn)行了詳細(xì)分析比較。仿真分析看出此機(jī)制可以明顯提高了瓶頸鏈路的利用率、改善鏈接的吞吐量,提高了網(wǎng)絡(luò)的性能。但該機(jī)制需要在路由器端設(shè)置兩個參數(shù),即閾值和虛擬隊列緩沖區(qū)大小值。這些參數(shù)的最優(yōu)選擇和它們對鏈接的吞吐量及公平性的影響是筆者將來研究的主要內(nèi)容。 參考文獻(xiàn): [1]STEWARE R, SCTP C M.New transport protocol for TCP/IP [J].IEEE Internet Computing,2001,5(6):64-69. [2]ENGEL R,KANDLUR D,MEHRA A.Exploring the performance impact of QoS support in TCP/IP protocol stacks[C]//Proc of IEEE INFOCOM’98.1998:883-892. [3]ZENG Jiazhi,XU Jie,WU Yue,et al.Service unit based network architecture[C]//Proc of Parallel and Distributed Computing,Applications and Technologies Conference. Piscataway: Institute of Electrical and Electronics Computer Society,2003:1216. [4]曾家智,徐潔,吳躍,等.服務(wù)元網(wǎng)絡(luò)體系結(jié)構(gòu)和微通信元系統(tǒng)構(gòu)架[J].電子學(xué)報,2004,32(5):745-749. [5]曾家智,趙繼東,易發(fā)勝.微通信元系統(tǒng)構(gòu)架的QoS[J].計算機(jī)科學(xué),2004,31(11):38-39. [6]KUNNIYUR S,SRIKANT R.Analysis and design of an adaptive vir ̄tual queue algorithm for active queue management[J] .ACM Compu ̄ter Communication Review, 2001,31(4):123134. [7]BOECKING S,SEIDEL V,VINDEBY P.A runtime system for multimedia protocols[C]//Proc of the 4th International Conference on Computer Communication and Networks.LasVegas:[s.n.],1995:178-185. [8]TENNENHOUSE D L, WETHERALL D J.Towards an active network architecture[J].Computer Communication Review,1996,26(2):518. [9]曾家智,李毅超,韓蒙.計算機(jī)網(wǎng)絡(luò)[M].成都:電子科技大學(xué)出版社,2002:23-96. “本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”