,, ,范志
(1.河南科技大學(xué) 信息工程學(xué)院,河南 洛陽 471023;2.河南科技大學(xué) 網(wǎng)絡(luò)信息中心,河南 洛陽 471023)
TCP協(xié)議在有線網(wǎng)絡(luò)中表現(xiàn)良好但是在異構(gòu)網(wǎng)絡(luò)中的適應(yīng)性不強(qiáng),有幾點(diǎn)原因:(1)在慢啟動開始階段,擁塞窗口設(shè)為定值1,這樣會導(dǎo)致網(wǎng)絡(luò)帶寬在前期不能充分利用,不能根據(jù)網(wǎng)絡(luò)情況設(shè)置合適的初值[1];(2)在擁塞控制過程中門限值(ssthresh)設(shè)定為65535個(gè)字節(jié)[3]。但是在實(shí)際網(wǎng)絡(luò)情況下,如果ssthersh的值過小或者過大,那么會產(chǎn)生兩種情況:一種是提前進(jìn)入擁塞避免階段,導(dǎo)致網(wǎng)絡(luò)帶寬利用率不高,吞吐量的下降;另一種當(dāng)網(wǎng)絡(luò)情況較差時(shí)會產(chǎn)生丟包[4];(3)隨著網(wǎng)絡(luò)中業(yè)務(wù)流的種類與數(shù)量日益增多,會導(dǎo)致網(wǎng)絡(luò)資源分配不公平與服務(wù)質(zhì)量下降等問題[5]。
針對上述問題,近幾年的研究如下:文獻(xiàn)[6]提出了一種新的移動流控制傳輸協(xié)議(mSCTP)的擁塞控制方案,該方案基于對底層網(wǎng)絡(luò)可用帶寬的估計(jì),以實(shí)現(xiàn)跨異構(gòu)無線/移動網(wǎng)絡(luò)的垂直切換。對于mSCTP的擁塞控制,新主路徑的初始擁塞窗口大小根據(jù)移動節(jié)點(diǎn)移動到的新鏈接的可用帶寬來自適應(yīng)配置。文獻(xiàn)[7]針對IEEE 802.16j協(xié)議中MAC層對不同類別業(yè)務(wù)的帶寬的需求,采用基于業(yè)務(wù)特征感知的多用戶帶寬分配方法,為不同類別的業(yè)務(wù)分配最低需求的帶寬。文獻(xiàn)[8]提出了新的算法TCP BRJ,該算法能夠在慢啟動階段根據(jù)帶寬估計(jì)來實(shí)時(shí)調(diào)整初始的慢啟動閾值和擁塞窗口并劃分網(wǎng)絡(luò)擁塞等級來區(qū)分是隨機(jī)丟包還是擁塞丟包并作出相應(yīng)的反應(yīng)。但是上述幾種解決方案不能有效解決TCP協(xié)議在異構(gòu)網(wǎng)絡(luò)環(huán)境中存在的三點(diǎn)問題,增強(qiáng)TCP協(xié)議在異構(gòu)網(wǎng)絡(luò)中的自適應(yīng)性與保障業(yè)務(wù)的QoS這兩點(diǎn)相結(jié)合是解決問題的關(guān)鍵。
文章結(jié)合了自然啟發(fā)算法的優(yōu)點(diǎn),通過網(wǎng)絡(luò)相關(guān)參數(shù)構(gòu)建網(wǎng)絡(luò)捕食模型,并在此基礎(chǔ)上提出了一種區(qū)分?jǐn)?shù)據(jù)流大小與數(shù)據(jù)流優(yōu)先級的TCP擁塞控制改進(jìn)架構(gòu),對網(wǎng)絡(luò)的吞吐量與丟包率都有很大的改善,并能保障高優(yōu)先級業(yè)務(wù)的帶寬需求。
本文結(jié)構(gòu)安排如下:第一章提出了異構(gòu)網(wǎng)絡(luò)環(huán)境下傳統(tǒng)TCP/IP協(xié)議的不足以及近幾年的研究成果。第二章介紹了傳統(tǒng)的捕食模型算法在網(wǎng)絡(luò)環(huán)境下的思想以及應(yīng)用;第三章介紹新的改進(jìn)算法與算法的理論說明;第四章仿真實(shí)驗(yàn)以及3種算法的性能評估;最后,第五章對工作進(jìn)行總結(jié)。
經(jīng)典的捕食模型指的是捕食者以獵物為食,數(shù)學(xué)表示為其物種數(shù)量上的變化,假設(shè)有物種a、b、c,物種a處于食物鏈的底端,物種c處于食物鏈的頂端,那么物種相互之間的捕食關(guān)系表達(dá)如下:
(1)
(2)
(3)
假設(shè)某個(gè)網(wǎng)絡(luò)由源端節(jié)點(diǎn)S={S1,S2……Sk}以及目的端節(jié)點(diǎn)D={D1,D2……Dk}組成,并假設(shè)網(wǎng)絡(luò)中各個(gè)流具有相同的回路響應(yīng)時(shí)間RTT。網(wǎng)絡(luò)模型是有線/無線混合異構(gòu)網(wǎng)絡(luò),如圖1所示。
圖1 網(wǎng)絡(luò)模型
圖1中的網(wǎng)絡(luò)可以看作為一個(gè)小型生態(tài)系統(tǒng)模型,該網(wǎng)絡(luò)生態(tài)系統(tǒng)由路由器,主機(jī),鏈路以及操作系統(tǒng)組成。我們從擁塞控制這個(gè)角度看待這個(gè)網(wǎng)絡(luò)生態(tài)系統(tǒng),生態(tài)模型中生存著物種“擁塞窗口(W)”,“隊(duì)列長度(Q)”,以及“網(wǎng)絡(luò)帶寬(C)”等。這些物種相互聯(lián)系,其物種數(shù)量相互影響。
假定源節(jié)點(diǎn)S中W的大小為Wi,即鏈路i的擁塞窗口大小。很明顯當(dāng)這個(gè)物種數(shù)量增大時(shí),網(wǎng)絡(luò)中的數(shù)據(jù)包傳輸量也會隨之增加。因此控制網(wǎng)絡(luò)中擁塞問題就必須控制物種W的數(shù)量。所說義說通過生態(tài)模型中物種數(shù)量控制問題可以構(gòu)建網(wǎng)絡(luò)生態(tài)模型。自然界物種之間通過捕食、競爭、寄生及共生等來控制各個(gè)的物種數(shù)量,維持生態(tài)系統(tǒng)的平衡,因此我們也可以借鑒這些策略來進(jìn)行擁塞控制[10]。
將捕食模型運(yùn)用到網(wǎng)絡(luò)環(huán)境中,根據(jù)物種間的競爭關(guān)系,選取擁塞控制中相互制約的3個(gè)參數(shù),并構(gòu)造出三層網(wǎng)絡(luò)捕食關(guān)系模型:網(wǎng)絡(luò)帶寬(C)——擁塞窗口(W)——隊(duì)列長度(Q)。在這個(gè)“網(wǎng)絡(luò)生態(tài)系統(tǒng)”中,Wi約束著C的數(shù)量,而Q約束著Wi的數(shù)量,他們之間的相互捕食關(guān)系可以用如下公式表示[11]:
(4)
(5)
(6)
其中:α表示C的出生率,β表示一個(gè)C遇到W的死亡率,χi表示W(wǎng)i的出生率,δ表示W(wǎng)i捕食C的轉(zhuǎn)化效率ε表示每一個(gè)Wi遇到Q的死亡率,φi表示每一個(gè)Wi被捕食的轉(zhuǎn)化為Q的效率,而γ代表Q的自然死亡率,其中σ是一正的平滑因子,CW是瓶頸鏈路的帶寬大小。
因此,可以通過采集相關(guān)網(wǎng)絡(luò)參數(shù)數(shù)據(jù)構(gòu)建網(wǎng)絡(luò)捕食模型IPPM。TCP源端可以通過相關(guān)參數(shù)的采集信息實(shí)時(shí)更新模型輸出,進(jìn)而使用來控制TCP擁塞控制過程中的相關(guān)參數(shù),使網(wǎng)絡(luò)可以動態(tài)的,自適應(yīng)的調(diào)節(jié),增強(qiáng)TCP的適應(yīng)能力。
但是隨著實(shí)驗(yàn)進(jìn)一步進(jìn)行發(fā)現(xiàn)IPPM算法雖然可以有效解決異構(gòu)網(wǎng)絡(luò)中TCP協(xié)議吞吐量下降以及丟包的情況,但是還存在三點(diǎn)不足。
第一點(diǎn),對于網(wǎng)絡(luò)的帶寬評估不足。在異構(gòu)網(wǎng)絡(luò)中,網(wǎng)絡(luò)的實(shí)際帶寬或者稱之為承載能力,不能直接給出有線網(wǎng)絡(luò)的帶寬作為計(jì)算參數(shù),而是要考慮無線網(wǎng)絡(luò)的影響,實(shí)際的帶寬計(jì)算并不準(zhǔn)確。
第二點(diǎn),沒有考慮業(yè)務(wù)速率的差異性,算法適應(yīng)性和靈活性較差。
第三點(diǎn),沒有考慮不同業(yè)務(wù)的差異性,當(dāng)網(wǎng)絡(luò)資源不足時(shí),則業(yè)務(wù)的服務(wù)順序應(yīng)該有差異性,網(wǎng)絡(luò)資源分配應(yīng)該優(yōu)先分配給高優(yōu)先級業(yè)務(wù)。但是IPPM算法沒有考慮這個(gè)問題。這是IPPM算法的第二個(gè)問題。
在IPMM算法中對網(wǎng)絡(luò)的最大帶寬CCCC的評估并不準(zhǔn)確。在真實(shí)的網(wǎng)絡(luò)中,其網(wǎng)絡(luò)的負(fù)載能力往往由最小的帶寬即瓶頸帶寬決定。在如圖1的網(wǎng)絡(luò)拓?fù)渲?,網(wǎng)絡(luò)的瓶頸帶寬應(yīng)該是無線部分和有線部分的最小帶寬。
下面將計(jì)算無線網(wǎng)絡(luò)的真實(shí)帶寬。在無線網(wǎng)絡(luò)中節(jié)點(diǎn)需要通過隨機(jī)競爭方式獲得信道資源,因此網(wǎng)絡(luò)的帶寬不能等價(jià)于物理層傳輸速率,而是其真實(shí)能夠承載的業(yè)務(wù)量。由于無線節(jié)點(diǎn)需要競爭信道資源,因此存在無線節(jié)點(diǎn)之間的沖突開銷以及隨機(jī)退避開銷。節(jié)點(diǎn)的沖突概率和傳輸概率[12]由式(7)和(8)定義:
(7)
pcol=1-(1-ptr)N-1
(8)
其中:ptr為節(jié)點(diǎn)傳輸概率,pcol為沖突概率,W為初始競爭窗尺寸,2mW為節(jié)點(diǎn)最大競爭窗尺寸,N為無線節(jié)點(diǎn)數(shù)。
因此,無線網(wǎng)絡(luò)帶寬BWwireless定義為:
(9)
其中:L表示每次成功傳輸?shù)呢?fù)載長度,pidle表示信道空閑時(shí)間且pidle=1-ptr-pcol,Ttr、Tcol以及Tidle分別表示信道用于傳輸、沖突以及空閑所占的時(shí)間。
通過計(jì)算無線鏈路的真實(shí)帶寬之后,可以改進(jìn)IPPM算法的公式(4)為公式(10):
BW=min(BWwireless,BWwired)
(10)
其中:BWwired表示有線部分帶寬。
2.2.1 擁塞控制
在公式(5)中,主要考慮所有業(yè)務(wù)的均等的,即可以認(rèn)為在公式(5)中所有Wi系數(shù)為1。但是真實(shí)的網(wǎng)絡(luò)中節(jié)點(diǎn)的業(yè)務(wù)存在差異性,不能按照均等方式劃分網(wǎng)絡(luò)資源,故需要對于公式(5)進(jìn)行修改,使之考慮業(yè)務(wù)速率的差異性,可以更公平的分配帶寬。
假設(shè)網(wǎng)絡(luò)中第i個(gè)TCP流的業(yè)務(wù)速率為T(i),TCP流的數(shù)量為k,則可以改進(jìn)公式(4)為公式(11):
(11)
其中:P(i)表示TCP流的比例大小系數(shù),定義如下:
(12)
故網(wǎng)絡(luò)可以根據(jù)每條數(shù)據(jù)流的速率分配帶寬,提高帶寬的利用率。
2.2.2 流量控制
當(dāng)考慮不同業(yè)務(wù)優(yōu)先級時(shí),則可以適當(dāng)對高優(yōu)先級業(yè)務(wù)予以傾斜,即高優(yōu)先級業(yè)務(wù)獲得更高的擁塞窗口值,而低優(yōu)先級業(yè)務(wù)的擁塞窗口更小。在無線網(wǎng)絡(luò)中,一般會將業(yè)務(wù)的吞吐量需求分為保障比特率(Guaranteed Bit Rate,GBR)以及非保障比特率(Non-Guaranteed Bit Rate,NGBR)。因此我們的主要思想是將不同優(yōu)先級的業(yè)務(wù)分別劃分為保障比特率和非保障比特率:
T(i)=TGBR(i)+TNGBR(i),i=1,2,...,k
(13)
考慮優(yōu)先級的業(yè)務(wù)優(yōu)先級的TCP流的比例大小系數(shù)Ppri(i)計(jì)算如下:
(14)
公式(14)的含義為,在分配擁塞窗口時(shí),優(yōu)先滿足保障比特率的部分,然后剩余的帶寬則由非保障比特率部分按照業(yè)務(wù)比率分配。
算法流程見圖2。
圖2 算法流程圖
在系統(tǒng)開始階段,TCP流通過信息的采集工作,提取到當(dāng)前網(wǎng)絡(luò)中的相關(guān)信息,并將這些信息通過構(gòu)造捕食模型,使用Q-IPPM模型的輸出來對TCP流的參數(shù)進(jìn)行初始化設(shè)置。其優(yōu)點(diǎn)是使得TCP流能以適合于當(dāng)前網(wǎng)絡(luò)狀態(tài)的初值運(yùn)行,盡可能的降低擁塞產(chǎn)生的可能性,防止丟包事件的發(fā)生。同時(shí)在系統(tǒng)運(yùn)行期間,發(fā)送端仍可以采集系統(tǒng)中不斷變動的狀態(tài)信息變量,仍然使用Q-IPPM模型來對其相關(guān)參數(shù)進(jìn)行調(diào)整,增大TCP流的適應(yīng)性,使其能根據(jù)網(wǎng)絡(luò)的變化動態(tài)采取相應(yīng)的調(diào)整。
使用圖1的拓?fù)?,下面證明捕食算法的一些特性。這里設(shè)節(jié)點(diǎn)的業(yè)務(wù)速率為0.1 Mbps、0.2 Mbps、0.3 Mbps以及0.4 Mbps,且每種業(yè)務(wù)速率節(jié)點(diǎn)個(gè)數(shù)均為1/4,初值擁塞窗口的值為6,總節(jié)點(diǎn)數(shù)為20。公式隊(duì)列長度Q的計(jì)算方法如公式(15)所示:
(15)
其他實(shí)驗(yàn)參數(shù)設(shè)置如表1所示。
表1 網(wǎng)絡(luò)仿真參數(shù)設(shè)置
假設(shè)每條數(shù)據(jù)流都是長期運(yùn)行的,將相關(guān)參數(shù)代入公式(11),通過仿真該算法得到其中擁塞窗口增長軌跡以及網(wǎng)絡(luò)可用帶寬如圖3所示。
圖3 擁塞窗口變化
圖4 可用帶寬變化圖
模型分析:圖3與圖4顯示了在捕食模型下?lián)砣翱谂c網(wǎng)絡(luò)可用帶寬的變化情況,可以看到數(shù)據(jù)流在系統(tǒng)運(yùn)行一段時(shí)間以后,匯聚到了平衡狀態(tài),并且在平衡狀態(tài)時(shí),根據(jù)速率比例公平的分享瓶頸鏈路帶寬資源。從圖4中可以看到,在系統(tǒng)運(yùn)行初期,可用剩余帶寬基本等于鏈路帶寬,而這個(gè)特點(diǎn)對于具有固有RTT不公平性缺陷的傳統(tǒng)TCP協(xié)議來說是急需的。
通過上面的仿真數(shù)據(jù)圖,可以看到捕食模型系統(tǒng)具有良好的穩(wěn)定性。在后期階段系統(tǒng)能夠達(dá)到相對穩(wěn)定狀態(tài)并且擁塞窗口、可用帶寬運(yùn)行軌跡相對穩(wěn)定。沒有抖動。在多組場景,多組初值情形下,反復(fù)實(shí)驗(yàn),可以得到都出現(xiàn)了以上性質(zhì),如公平性好,小抖動等優(yōu)點(diǎn)。
為了評估本文中Q-IPPM的算法性能,通過NS2網(wǎng)絡(luò)仿真工具實(shí)現(xiàn)了相關(guān)算法性能,并且與TCP協(xié)議進(jìn)行了比較。異構(gòu)網(wǎng)絡(luò)的場景設(shè)置如圖1所示,參數(shù)設(shè)置如表1所示。
將相關(guān)參數(shù)帶入Q-IPPM算法中。當(dāng)節(jié)點(diǎn)數(shù)較小時(shí),Q-IPPM協(xié)議的吞吐量最高,IPPM協(xié)議次之,TCP Reno協(xié)議最差。這是因?yàn)镮PPM和Q-IPPM算法均可以根據(jù)網(wǎng)絡(luò)狀況動態(tài)選擇合適的門限值,讓系統(tǒng)逐漸趨于穩(wěn)定狀態(tài),而Reno算法則是沒有充分考慮網(wǎng)絡(luò)當(dāng)前狀況盲目減小擁塞窗口導(dǎo)致網(wǎng)絡(luò)吞吐量下降。當(dāng)節(jié)點(diǎn)數(shù)目進(jìn)一步提升時(shí),IPPM算法協(xié)議無法自適應(yīng)的調(diào)整業(yè)務(wù)速率不同節(jié)點(diǎn)的擁塞窗口,它的每條數(shù)據(jù)流都分配的是相同的擁塞窗口,那么擁塞窗口的值會相應(yīng)的有“溢出”或者“不足”,不能“按需分配”每條數(shù)據(jù)流的擁塞窗口,因此吞吐量不斷下降,而Q-IPPM協(xié)議則一直保持最高吞吐量。當(dāng)節(jié)點(diǎn)數(shù)為24時(shí),網(wǎng)絡(luò)吞吐量會整體下降,這是因?yàn)樵跓o線網(wǎng)絡(luò)中過多的無線節(jié)點(diǎn)會引起更多的網(wǎng)絡(luò)沖突,減少數(shù)據(jù)傳輸?shù)臋C(jī)會,從而影響整體網(wǎng)絡(luò)的吞吐量。
3種協(xié)議丟包率的對比如圖5所示,從中可以看出Q-IPPM的丟包率總是最低的,對比IPPM算法與Q-IPPM算法,當(dāng)IPPM算法無法根據(jù)每條數(shù)據(jù)流的速率差異情況分配擁塞窗口時(shí),也就是上述說的分配的擁塞窗口不足時(shí),網(wǎng)絡(luò)就會發(fā)生擁塞,導(dǎo)致丟包率上升。而Q-IPPM算法可以根據(jù)每條數(shù)據(jù)流的速率分配不同的擁塞窗口,所以說改進(jìn)后的Q-IPPM算法不僅可以提升網(wǎng)絡(luò)吞吐量,而且可以降低丟包率。
圖5 改變節(jié)點(diǎn)數(shù)量的吞吐量性能對比
圖6 改變節(jié)點(diǎn)數(shù)量的丟包率性能對比
當(dāng)在仿真中固定節(jié)點(diǎn)數(shù)為24個(gè)且業(yè)務(wù)速率固定為200 Kbps時(shí),其中8個(gè)業(yè)務(wù)為高優(yōu)先級(保障比特率為200 Kbps)、8個(gè)業(yè)務(wù)為中優(yōu)先級(保障比特率為100 Kbps,非保障比特率為100 Kbps)、8個(gè)業(yè)務(wù)為低優(yōu)先級(非保障比特率為200 Kbps)。不同優(yōu)先級的吞吐量與丟包率性能如圖5和圖6所示。從中可以看出,由于TCP Reno和IPPM協(xié)議不區(qū)分業(yè)務(wù)優(yōu)先級,因此無論是吞吐量還是丟包率,不同優(yōu)先級的業(yè)務(wù)性能差異不大,并不能保障高優(yōu)先級業(yè)務(wù)的QoS需求。對于Q-IPPM協(xié)議而言,在設(shè)計(jì)算法時(shí)充分考慮了不同優(yōu)先級業(yè)務(wù)具有不同的優(yōu)先級系數(shù),則可以分配更多的網(wǎng)絡(luò)資源給高優(yōu)先級業(yè)務(wù)。因此,Q-IPPM協(xié)議中高優(yōu)先業(yè)務(wù)的吞吐量最高,丟包率最低,而低優(yōu)先級業(yè)務(wù)的吞吐量最低,丟包率最高。仿真中根據(jù)式(14)設(shè)置了不同優(yōu)先級業(yè)務(wù)的優(yōu)先級系數(shù)。
圖7 不同業(yè)務(wù)優(yōu)先級的吞吐量性能對比
圖8 不同業(yè)務(wù)優(yōu)先級的丟包率性能對比
本文針對TCP應(yīng)用于異構(gòu)網(wǎng)絡(luò)存在的問題,有研究者提出了應(yīng)用捕食模型改進(jìn)TCP協(xié)議的方法,稱之為IPPM算法。針對IPPM算法的缺點(diǎn),即不能區(qū)分業(yè)務(wù)速率、評估網(wǎng)絡(luò)帶寬有誤差以及無法區(qū)分業(yè)務(wù)優(yōu)先級,本文進(jìn)行了改進(jìn)。具體地,提出了根據(jù)業(yè)務(wù)速率分配ssthresh的方法、基于無線網(wǎng)絡(luò)隨機(jī)競爭機(jī)制的帶寬評估方法以及基于業(yè)務(wù)優(yōu)先級的加權(quán)分配。通過仿真實(shí)驗(yàn)說明提出的算法在吞吐量以及平均時(shí)延方面均優(yōu)于TCP協(xié)議。在下一步的工作中,我們將提出更加精確的捕食模型,進(jìn)一步提高異構(gòu)網(wǎng)絡(luò)的TCP協(xié)議性能。