滕艷平,王海珍,金 梅, 李大輝
(齊齊哈爾大學(xué)計(jì)算機(jī)與控制工程學(xué)院,黑龍江 齊齊哈爾 161006)
一種AdHoc網(wǎng)絡(luò)端到端的TCP擁塞控制改進(jìn)方案*
滕艷平,王海珍,金 梅, 李大輝
(齊齊哈爾大學(xué)計(jì)算機(jī)與控制工程學(xué)院,黑龍江 齊齊哈爾 161006)
傳統(tǒng)的TCP協(xié)議是為有線網(wǎng)絡(luò)而設(shè)計(jì)的,它假定數(shù)據(jù)包的丟失是由網(wǎng)絡(luò)擁塞引起的,然而在Ad Hoc網(wǎng)絡(luò)中,除擁塞丟包外,其它非擁塞因素也會引起數(shù)據(jù)包的丟失。分析Ad Hoc網(wǎng)絡(luò)影響TCP性能的主要因素,在原有擁塞控制方案MMJI的基礎(chǔ)上,提出了一種端到端的TCP擁塞控制改進(jìn)方案(Imp-MMJI)。該方案能根據(jù)前向路徑跳數(shù)自適應(yīng)調(diào)整擁塞窗口的大小,防止擁塞窗口過快增長,當(dāng)發(fā)生路由改變或鏈路中斷時(shí),重新計(jì)算擁塞窗口cwnd和ssthresh的值,以確保路由重建前后TCP連接負(fù)載率的一致性;并在ACK應(yīng)答包的TCP首部增加了狀態(tài)標(biāo)志位,結(jié)合多個(gè)度量參數(shù)聯(lián)合判斷網(wǎng)絡(luò)狀態(tài),提高網(wǎng)絡(luò)狀態(tài)識別的準(zhǔn)確性,使發(fā)送端實(shí)時(shí)采取相應(yīng)的措施。仿真結(jié)果表明,該方案能使網(wǎng)絡(luò)吞吐量得到明顯的提高,改善了TCP的性能。
Ad Hoc網(wǎng)絡(luò);端到端;TCP;擁塞控制
無線Ad Hoc網(wǎng)絡(luò)是由多個(gè)移動節(jié)點(diǎn)構(gòu)成的自組織系統(tǒng),其每個(gè)節(jié)點(diǎn)既是主機(jī)又是路由器,它沒有基站一類的固定通信基礎(chǔ)設(shè)施,可以迅速搭建通信平臺,提供通信支持環(huán)境,具有很高的生存能力和靈活性,可廣泛應(yīng)用于野戰(zhàn)通信、緊急搜救等特殊的環(huán)境中[1]。
TCP協(xié)議是針對固定的有線網(wǎng)絡(luò)而設(shè)計(jì)的,為發(fā)送端和接收端之間提供可靠的、有序的和端到端的數(shù)據(jù)包傳輸服務(wù)。傳統(tǒng)的TCP擁塞控制算法AIMD(Additive Increase Multiplicative Decrease)主要由四個(gè)部分組成,分別是慢啟動(Slow Start)、擁塞避免(Congestion Avoidance)、快速重傳(Fast Retransmit)和快速恢復(fù)(Fast Recovery)。該算法是以丟包作為網(wǎng)絡(luò)擁塞判斷的依據(jù),然而在Ad Hoc網(wǎng)絡(luò)中,除擁塞丟包外,較高的比特誤碼率、路由故障、信道接入的不公平性等其它因素也能引起數(shù)據(jù)包的丟失,由于非擁塞所造成的數(shù)據(jù)包丟失占80%以上[2],但卻觸發(fā)了傳統(tǒng)的TCP擁塞控制機(jī)制,使擁塞窗口減小、超時(shí)重傳RTO加倍等,這勢必導(dǎo)致TCP性能嚴(yán)重下降。本文針對Ad Hoc網(wǎng)絡(luò)中影響TCP性能的幾個(gè)主要因素進(jìn)行了分析,在原有MMJI(Multi-Metric Joint Identification)方案的基礎(chǔ)上提出了一種端到端的改進(jìn)方案(Imp-MMJI),并對新方案進(jìn)行了仿真實(shí)驗(yàn)和性能分析。
對于傳統(tǒng)TCP在Ad Hoc網(wǎng)絡(luò)中的改進(jìn)是近年來網(wǎng)絡(luò)方向研究的熱點(diǎn)之一,研究者們提出了眾多的改進(jìn)方案,這些方案大體可分為兩大類:基于網(wǎng)絡(luò)內(nèi)部反饋機(jī)制(包括跨層改進(jìn)機(jī)制)方案和端到端的改進(jìn)方案。在這些方案中,擁塞窗口的優(yōu)化問題是研究的一個(gè)重要方面,文獻(xiàn)[3]給出擁塞窗口的上限是hop/4(其中hop為發(fā)送端和接收端之間的跳數(shù)),文獻(xiàn)[4]給出擁塞窗口的上限是hop/5。這些研究都針對特定的網(wǎng)絡(luò)場景,如鏈狀拓?fù)浣Y(jié)構(gòu)、單個(gè)TCP流的情形,而在復(fù)雜場景下,TCP擁塞窗口的優(yōu)化問題仍需進(jìn)一步探討。文獻(xiàn)[1,5,6]是針對Ad Hoc網(wǎng)絡(luò)中傳輸層的解決方案,當(dāng)發(fā)生鏈路中斷或路由改變時(shí),即發(fā)送端收到路由失敗通知(ELFN)后,就停止數(shù)據(jù)包的發(fā)送,并凍結(jié)TCP當(dāng)前的各個(gè)環(huán)境變量,如RTO和cwnd等。TCP發(fā)送端通過周期發(fā)送“探測包”來探測網(wǎng)絡(luò)路由是否重建,若發(fā)送端收到新的確認(rèn),則恢復(fù)正常發(fā)送功能,并立即恢復(fù)凍結(jié)前的各項(xiàng)變量。這種改進(jìn)方案相對傳統(tǒng)的TCP擁塞控制使網(wǎng)絡(luò)吞吐量獲得較大增益,因?yàn)樵摲桨副苊饬藗鹘y(tǒng)TCP的不必要擁塞控制,但該方案對路由重建前后TCP連接負(fù)載率的一致性以及信道誤碼等問題未加考慮。文獻(xiàn)[7,8]利用單項(xiàng)傳輸時(shí)延(OTT)或雙向傳輸時(shí)延(RTT)的改變來判斷網(wǎng)絡(luò)是否發(fā)生擁塞,這種單一度量參數(shù)的檢測方法會把非擁塞當(dāng)作擁塞來處理,一旦判斷錯誤,將導(dǎo)致采取不恰當(dāng)?shù)膿砣刂茩C(jī)制,降低了網(wǎng)絡(luò)吞吐量。文獻(xiàn)[9]給出多個(gè)度量參數(shù)聯(lián)合判斷網(wǎng)絡(luò)擁塞的方案(MMJI),這是一種端到端的改進(jìn)方案,不需要中間節(jié)點(diǎn)的參與,通過對多個(gè)度量參數(shù)的檢測來獲取網(wǎng)絡(luò)狀態(tài)信息,并對這些狀態(tài)加以識別,以便讓發(fā)送端采取適當(dāng)?shù)拇胧5?,該方案未能考慮擁塞窗口(cwnd)過快增長和路由失敗后對cwnd和ssthresh的重新計(jì)算以及網(wǎng)絡(luò)狀態(tài)的準(zhǔn)確標(biāo)識等問題。
3.1 高誤碼率
由于無線鏈路是開放的有損介質(zhì),存在許多外界干擾,導(dǎo)致多徑衰落和陰影效應(yīng)[1,10],使得Ad Hoc網(wǎng)絡(luò)具有較高的比特誤碼率。這些將導(dǎo)致數(shù)據(jù)包丟失和受損,若TCP發(fā)送端在超時(shí)重傳計(jì)時(shí)器RTO超時(shí)前還沒有收到ACK,將開始執(zhí)行慢啟動算法,使RTO時(shí)間加倍,并將擁塞窗口cwnd降為1。這樣,錯誤頻繁地發(fā)生會使擁塞窗口維持在很小的范圍內(nèi),從而造成網(wǎng)絡(luò)吞吐量的降低。
3.2 節(jié)點(diǎn)移動
Ad Hoc網(wǎng)絡(luò)中因節(jié)點(diǎn)移動,使網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的連通性發(fā)生了變化,導(dǎo)致鏈路中斷或路由改變,引發(fā)路由失效,這樣對于中間節(jié)點(diǎn)所丟失的數(shù)據(jù)包被TCP發(fā)送端理解為網(wǎng)絡(luò)擁塞,進(jìn)而采取不必要的擁塞控制機(jī)制。主要體現(xiàn)在以下三個(gè)方面:
(1)當(dāng)路由失效后,需要發(fā)送端不斷地重構(gòu)路由算法,若路由重構(gòu)的時(shí)間大于超時(shí)重傳RTO時(shí),使之進(jìn)入慢啟動過程;若發(fā)生鏈路中斷,會使TCP發(fā)送端采用指數(shù)退避算法來推遲數(shù)據(jù)包的重傳,加大了重傳時(shí)間間隔[10]。即使路由得到恢復(fù),發(fā)送端也不能及時(shí)重傳丟失的數(shù)據(jù)包,而是采用慢啟動機(jī)制去探測網(wǎng)絡(luò)的可用帶寬,使網(wǎng)絡(luò)吞吐量明顯下降。
(2)若在RTO內(nèi)完成了路由重建,由于新建路由狀態(tài)的改變,使得TCP原有的參數(shù)(cwnd、RTO等)不再適合新路由,網(wǎng)絡(luò)中將會出現(xiàn)突發(fā)性的數(shù)據(jù)流量,造成大量數(shù)據(jù)包的丟失,降低了TCP的性能。
(3)當(dāng)頻繁路由失效和路由重建發(fā)生時(shí),使發(fā)送端發(fā)送的順序數(shù)據(jù)包可按照不同的路由進(jìn)行轉(zhuǎn)發(fā),到達(dá)接收端時(shí)將會產(chǎn)生亂序包現(xiàn)象,這必將引發(fā)接收端發(fā)送DupACK,從而導(dǎo)致發(fā)送端進(jìn)行不必要的重發(fā),并使之進(jìn)入擁塞避免階段,使TCP性能下降。
3.3 信道接入不公平性
IEEE 802.11 DCF是Ad Hoc網(wǎng)絡(luò)的MAC層事實(shí)標(biāo)準(zhǔn),當(dāng)節(jié)點(diǎn)成功發(fā)送一個(gè)數(shù)據(jù)包后,會隨機(jī)選取一個(gè)較小的競爭窗口,使之處于競爭的優(yōu)先地位中;當(dāng)節(jié)點(diǎn)不能成功發(fā)送數(shù)據(jù)包時(shí),采用二進(jìn)制指數(shù)退避算法,將從 [0, 2k×CWmin-1]隨機(jī)選擇一個(gè)值作為重發(fā)數(shù)據(jù)包的競爭窗口(其中k為重傳的次數(shù)),這將為競爭失敗的節(jié)點(diǎn)引入一個(gè)較大競爭窗口,使之處于不利的地位,從而導(dǎo)致了不公平性。另外,隱藏節(jié)點(diǎn)和暴露節(jié)點(diǎn)的問題也加劇這種不穩(wěn)定性和不公平性。
4.1 Imp-MMJI設(shè)計(jì)模型
Imp-MMJI方案將網(wǎng)絡(luò)劃分為正常、網(wǎng)絡(luò)擁塞、信道錯誤、路由改變和鏈路中斷五種狀態(tài)。該方案完全依靠發(fā)送端與接收端合作,通過TCP自身端到端的特性來對這些網(wǎng)絡(luò)狀態(tài)進(jìn)行識別,并采取相應(yīng)的控制措施。具體情形:通過對多個(gè)度量參數(shù)(如OTT、RTT等端特性)進(jìn)行計(jì)算,將計(jì)算結(jié)果傳遞給識別模塊,識別模塊識別是哪種網(wǎng)絡(luò)狀態(tài)后,用3 bit數(shù)據(jù)位進(jìn)行標(biāo)識,通過修改ACK應(yīng)答包TCP首部將標(biāo)識的結(jié)果通知給發(fā)送端,以便讓發(fā)送端采取適當(dāng)?shù)捻憫?yīng)機(jī)制。另外,當(dāng)發(fā)送端通過對ACK應(yīng)答包進(jìn)行檢測時(shí),若發(fā)現(xiàn)網(wǎng)絡(luò)狀態(tài)為正常情況,則可通過發(fā)送控制模塊根據(jù)前向路經(jīng)的跳數(shù)自適應(yīng)調(diào)整擁塞窗口的大小,抑制擁塞窗口的過快增長。特別是當(dāng)網(wǎng)絡(luò)發(fā)生路由改變或鏈路中斷情況時(shí),再重新計(jì)算狀態(tài)變量cwnd和ssthresh的值,保持TCP連接前后負(fù)載率的一致性,避免擁塞的發(fā)生。因此,該方案具有較強(qiáng)的故障檢測功能。改進(jìn)的框架結(jié)構(gòu)如圖1所示。
Figure 1 Framework diagram for Imp-MMJI圖1 Imp-MMJI方案框架結(jié)構(gòu)圖
4.2 抑制擁塞窗口過快增長機(jī)制
由于Ad Hoc網(wǎng)絡(luò)資源有限,相比有線網(wǎng)絡(luò)更易發(fā)生擁塞,但傳統(tǒng)TCP擁塞窗口增長機(jī)制過快,特別是在慢啟動階段(cwnd的初始值為1),每當(dāng)發(fā)送的數(shù)據(jù)包被確認(rèn)后,擁塞窗口cwnd就進(jìn)行加倍操作,這樣就會給網(wǎng)絡(luò)的底層帶來很大負(fù)擔(dān),加劇MAC層競爭[11],使成功發(fā)送數(shù)據(jù)包的概率減小,影響了TCP性能。因此,在Ad Hoc網(wǎng)絡(luò)中,適當(dāng)抑制擁塞窗口的過快增長是十分必要的。
Imp-MMJI方案針對上述情況,當(dāng)TCP連接剛剛建立(網(wǎng)絡(luò)為正常情況)時(shí),可根據(jù)前向路徑跳數(shù)合理設(shè)置擁塞窗口的增長因子β,自適應(yīng)調(diào)整擁塞窗口的門限值,以保證網(wǎng)絡(luò)最大的吞吐量。其計(jì)算模型如式(1)和式(2)所示。設(shè)cwnd1、cwnd2分別是擁塞窗口增長前后的值,β為窗口的增長因子,則定義如下:
(1)
設(shè)平均窗口的大小為cwnd,超時(shí)因子為t,數(shù)據(jù)包丟失率為p,則定義如下:
(2)
由式(1)、式(2)可以看出,適當(dāng)降低β,就可減少超時(shí)的次數(shù),降低底層沖突的概率,提高TCP的吞吐量。那么,β的取值與前向路徑跳數(shù)對吞吐量的影響可通過NS2仿真實(shí)驗(yàn)獲得,其仿真結(jié)果如表1所示。
由表1得出:當(dāng)前向路徑跳數(shù)3≤PL≤8時(shí),令β=0.01,網(wǎng)絡(luò)可獲得最大吞吐量;當(dāng)前向路經(jīng)跳數(shù)PL>8時(shí),令β=0.1,網(wǎng)絡(luò)也能獲得較大吞吐量。
在Ad Hoc網(wǎng)絡(luò)中,當(dāng)發(fā)生路由改變或鏈路中斷時(shí),即發(fā)生了路由失效,這需要發(fā)送端不斷地重構(gòu)路由算法,當(dāng)路由重建后,原有MMJI等方案從“冷凍”的狀態(tài)進(jìn)行恢復(fù),繼續(xù)TCP的傳輸,這并不合適[12],為此,需要對路由重建后的cwnd和慢啟動門限值ssthresh重新計(jì)算,這里ssthresh可設(shè)置為當(dāng)前擁塞窗口cwnd的一半。設(shè)cwnd3為路由改變后的擁塞窗口,hop2、hop3分別為路由改變前后的前向路徑跳數(shù),RTT2、RTT3分別為路由改變前后的往返時(shí)間。其計(jì)算模型如式(3)所示。
Table 1 Comparison of throughput with different β表1 不同的β取值對應(yīng)的吞吐量比較
(3)
其中,γ為常數(shù),通過實(shí)驗(yàn)分析,當(dāng)γ取值在0.7~0.8時(shí),網(wǎng)絡(luò)吞吐量相對較大,在本文改進(jìn)方案中,取γ=0.75,使網(wǎng)絡(luò)的性能最佳。
4.3 ACK應(yīng)答包的TCP首部的改進(jìn)
(1)度量參數(shù)的定義。
參數(shù)聯(lián)合檢驗(yàn)MMJI[6,9,13]主要依靠對四個(gè)度量參數(shù)(IDD、STT、POR和PLR)的聯(lián)合檢驗(yàn),來提高判別網(wǎng)絡(luò)狀況的準(zhǔn)確性。下面將給出四個(gè)度量參數(shù)的定義和計(jì)算公式。
①包間傳輸時(shí)延差異IDD(Inter-packet Delay Difference),能在一定程度上反映前向路徑的擁塞情況。接收端計(jì)算IDD值,其公式為:IDD=(Ai+1-Si+1)-(Ai-Si)(其中Ai是第i個(gè)數(shù)據(jù)包到達(dá)接收端的時(shí)間戳,Si是第i個(gè)包在發(fā)送端的發(fā)送時(shí)間戳)。網(wǎng)絡(luò)擁塞程度越高,IDD的值越大,但如果發(fā)生路由改變或數(shù)據(jù)包出現(xiàn)亂序時(shí),也會使IDD值增大。
②短期吞吐量STT(Short Term Throughput),提供T時(shí)間段內(nèi)的網(wǎng)絡(luò)吞吐量。STT的計(jì)算公式為:STT=Np(T)/T(其中Np(T)是T時(shí)間段內(nèi)收到數(shù)據(jù)包的個(gè)數(shù))。STT常用于對短暫路由的改變,所以常常將IDD與STT聯(lián)合起來判斷網(wǎng)絡(luò)的擁塞情況,網(wǎng)絡(luò)擁塞越高,STT越小,但如果網(wǎng)絡(luò)發(fā)生鏈路中斷或突發(fā)性的信道誤碼,STT也會減小,特別是當(dāng)鏈路中斷時(shí),STT趨于0。另外,也可采用IDD和RTT聯(lián)合判定法,通過發(fā)送端對RTT檢測來提高判別的準(zhǔn)確性。
③數(shù)據(jù)包丟失率PLR(Packet Loss Ratio),在每個(gè)時(shí)間間隔T內(nèi),接收端計(jì)算丟包率PLR,其計(jì)算公式為:PLR=1-Np(T)/(Pn-Pn-1)。當(dāng)網(wǎng)絡(luò)中發(fā)生突發(fā)性信道誤碼時(shí),PLR值會增大。
④數(shù)據(jù)包亂序比率POR(Packet Out-of-order delivery Ratio),是由路由改變引起的。POR計(jì)算公式為:POR=No(T)/ (Pn-Pn-1)(其中T為時(shí)間間隔,Pn是T時(shí)間間隔內(nèi)收到數(shù)據(jù)包的最大序號,Pn-1是上一個(gè)時(shí)間間隔內(nèi)收到數(shù)據(jù)包的最大序號,No(T)是T時(shí)間間隔內(nèi)亂序包的個(gè)數(shù))。網(wǎng)絡(luò)中路由發(fā)生變化時(shí),POR值會增大。
(2)網(wǎng)絡(luò)狀態(tài)識別和響應(yīng)機(jī)制。
Imp-MMJI方案在MMJI的基礎(chǔ)上,通過對應(yīng)答包ACK的首部加以改進(jìn),從原來TCP首部中的6 bit保留位中劃出3 bit作為網(wǎng)絡(luò)狀態(tài)的標(biāo)志位(SF),具體情形是:網(wǎng)絡(luò)正常(000)、網(wǎng)絡(luò)擁塞(111)、信道錯誤(001)、路由改變(010)、鏈路中斷(011),再將四個(gè)度量參數(shù)聯(lián)合判斷的結(jié)果,通過ACK包TCP首部3 bit的標(biāo)志位[6]反饋給發(fā)送端,使之采取相應(yīng)的措施。網(wǎng)絡(luò)狀態(tài)的判斷結(jié)果如表2所示。
Table 2 Identification of network states表2 網(wǎng)絡(luò)狀態(tài)判別表
由表2可知,當(dāng)接收端對度量參數(shù)樣本值進(jìn)行計(jì)算后,再根據(jù)給定的門限值就能確定其大小,可通過IDD和STT聯(lián)合判斷網(wǎng)絡(luò)是否發(fā)生了擁塞,當(dāng)IDD較大,而STT又較小時(shí),網(wǎng)絡(luò)發(fā)生了擁塞。在非擁塞情況下,當(dāng)POR較大,則發(fā)生路由改變;當(dāng)PLR較大,則產(chǎn)生了信道誤碼;當(dāng)STT≈0時(shí),接收端收不到任何數(shù)據(jù)包,則發(fā)生鏈路中斷。
當(dāng)發(fā)送端收到三個(gè)重復(fù)的ACK或發(fā)生RTO超時(shí),得知數(shù)據(jù)包丟失,通過ACK包的首部攜帶網(wǎng)絡(luò)狀態(tài)標(biāo)志判斷是否發(fā)生擁塞。若ACK首部SF域?yàn)?11,可知網(wǎng)絡(luò)發(fā)生擁塞,便啟動傳統(tǒng)TCP擁塞控制機(jī)制(例如TCP NewReno版本);若SF為001,則認(rèn)為丟包是由于信道錯誤引起的,故不需要調(diào)用擁塞控制的慢啟動算法,只需重傳丟失的數(shù)據(jù)包,采用Fixed RTO策略,并保持擁塞窗口cwnd和RTO等變量不變;若SF為010或011,則認(rèn)為丟包是由于路由變化或鏈路中斷引起的,這時(shí)發(fā)送端會收到多個(gè)重復(fù)的ACK,并發(fā)生RTO連續(xù)超時(shí),當(dāng)路由重建后,可根據(jù)公式(3)重新計(jì)算路由改變后的擁塞窗口cwnd和ssthresh,使TCP發(fā)送端在恢復(fù)傳輸時(shí)能根據(jù)當(dāng)前TCP連接的可用資源自適應(yīng)地調(diào)整數(shù)據(jù)的發(fā)送速率,降低突發(fā)流量造成網(wǎng)絡(luò)擁塞的可能性,有效利用新路由的網(wǎng)絡(luò)資源和提高TCP的性能。
根據(jù)上節(jié)所述內(nèi)容,給出Imp-MMJI的算法流程,執(zhí)行步驟[13]如下所示:
(1)接收端的處理流程:
Step1保存數(shù)據(jù)包的序號,以及發(fā)送和接收的時(shí)間戳;
Step2計(jì)算樣本值:T、IDD、STT、PLR、POR等;
Step3為每個(gè)度量參數(shù)估算high/low(本文取IDD、STT門限值為0.31,PLR、POR門限值為0.45),根據(jù)表2來判斷網(wǎng)絡(luò)狀態(tài),獲得3 bit的狀態(tài)標(biāo)志位SF;
Step4根據(jù)拓?fù)浣Y(jié)構(gòu)獲取網(wǎng)絡(luò)前向路徑跳數(shù)PL的值;
Step5將SF與PL的值填入ACK包TCP首部的相應(yīng)字段中;
Step6發(fā)送ACK包。
(2)發(fā)送端的處理流程:
Step1從ACK包獲取PL和SF;
Step2根據(jù)SF所標(biāo)識3 bit的信息判定網(wǎng)絡(luò)狀態(tài),若網(wǎng)絡(luò)正常,再根據(jù)PL的值得到擁塞窗口的增長因子,若3≤PL≤8,取β=0.01,否則取β=0.1;
Step3若網(wǎng)絡(luò)發(fā)生數(shù)據(jù)包的丟失,則由SF判斷是哪種非正常的網(wǎng)絡(luò)狀態(tài),再分別采取相應(yīng)的控制措施;當(dāng)路由改變或鏈路中斷時(shí),需按公式(3)重新計(jì)算cwnd和ssthresh的值,取常數(shù)γ=0.75;
Step4針對不同的網(wǎng)絡(luò)狀態(tài),可調(diào)整擁塞窗口的大小,重新封裝緩存中的數(shù)據(jù)包;
Step5發(fā)送新的數(shù)據(jù)包或重傳丟失的數(shù)據(jù)包。
本方案利用NS2網(wǎng)絡(luò)仿真平臺[9,14,15]進(jìn)行實(shí)驗(yàn)和性能分析,仿真參數(shù)和場景:MAC層協(xié)議為IEEE 802.11 DCF,帶寬為2 Mbps,節(jié)點(diǎn)通信范圍為250 m,數(shù)據(jù)包大小為1 460字節(jié),路由協(xié)議為AODV,應(yīng)用層協(xié)議選用FTP。
實(shí)驗(yàn)1該實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為隨機(jī)拓?fù)洌珹為發(fā)送端,B為接收端,在兩端之間共有六個(gè)節(jié)點(diǎn),與發(fā)送端和與接收端相連的兩個(gè)節(jié)點(diǎn)為固定節(jié)點(diǎn),其余四個(gè)節(jié)點(diǎn)為移動節(jié)點(diǎn),這樣使網(wǎng)絡(luò)的拓?fù)洳粩喟l(fā)生變化,A與B之間的路由經(jīng)常改變,時(shí)通時(shí)斷。圖2給出了TCP發(fā)送端為TCP-Reno、MMJI以及Imp-MMJI 三種方案的擁塞窗口隨時(shí)間變化的仿真結(jié)果。
Figure 2 Congestion window over time圖2 擁塞窗口隨時(shí)間變化圖
從圖2可以看出,在30 s之前,三種方案的擁塞窗口基本完全相同,說明它們的性能在路由沒有中斷或改變時(shí)是一樣的;端點(diǎn)A與B之間的路由在30 s之后經(jīng)常發(fā)生變化,其中TCP-Reno多次超時(shí)并進(jìn)行指數(shù)退避,發(fā)生了五次中斷,其路由重建后恢復(fù)傳輸?shù)臅r(shí)間明顯比MMJI和Imp-MMJI慢,其擁塞窗口cwnd總是維持在很小的值。而MMJI在路由中斷時(shí)保持RTO不變,進(jìn)入冷凍狀態(tài),從而避免TCP發(fā)送端需要等待過長的時(shí)間才能重傳下一個(gè)未被確認(rèn)的數(shù)據(jù)包,使TCP的性能有所改善。但是,Imp-MMJI方案是在MMJI的基礎(chǔ)上,當(dāng)發(fā)生路由改變或鏈路中斷時(shí),發(fā)送端重構(gòu)路由算法,重新計(jì)算cwnd和ssthresh的值,保證TCP連接負(fù)載率的均衡性,避免突發(fā)流量造成的丟包,保持相對較大的擁塞窗口,使TCP性能的改善更加顯著。
實(shí)驗(yàn)2該實(shí)驗(yàn)仿真選用RWP移動模型,場景大小為2 000 m×2 000 m矩形區(qū)域,節(jié)點(diǎn)最大移動速度為30 m/s,節(jié)點(diǎn)個(gè)數(shù)為50個(gè)。
Figure 3 Performance simulation of Imp-MMJI圖3 Imp-MMJI方案的性能仿真圖
圖3的仿真結(jié)果是在節(jié)點(diǎn)移動、信道誤碼為2%和網(wǎng)絡(luò)擁塞都存在的情況下進(jìn)行的[13, 15],具有一定的代表性。
從圖3可以看出,Imp-MMJI方案吞吐量比TCP-Reno高1~2倍,而MMJI的吞吐量介于兩者之間。隨著節(jié)點(diǎn)移動速度的增加,三種方案的吞吐量都呈下降趨勢,但在相同速率下,Imp-MMJI的平均吞吐量明顯高于前兩種方案。在TCP-Reno方案中,隨著節(jié)點(diǎn)移動速度的增加,經(jīng)常導(dǎo)致路由改變或鏈路中斷,從而產(chǎn)生丟包或錯序包的現(xiàn)象,使網(wǎng)絡(luò)的吞吐量下降較快。而新方案Imp-MMJI能正確區(qū)分丟包的原因,對網(wǎng)絡(luò)狀態(tài)更加準(zhǔn)確地識別,特別是對非擁塞所造成的丟包能采取更加有效的措施,提高了網(wǎng)絡(luò)的平均吞吐量。
本文針對無線Ad Hoc網(wǎng)絡(luò),提出了一種端到端的TCP擁塞控制的改進(jìn)方案Imp-MMJI,該方案首先能針對前向路徑的跳數(shù)自適應(yīng)調(diào)整擁塞窗口大小,抑制窗口的過快增長,減少發(fā)生擁塞的可能性,特別是當(dāng)路由變化或鏈路中斷時(shí),能對擁塞窗口cwnd和門限值ssthresh重新進(jìn)行計(jì)算,保持網(wǎng)絡(luò)負(fù)載率的一致性,避免出現(xiàn)突發(fā)的TCP流量所造成的數(shù)據(jù)包丟失,有效利用網(wǎng)絡(luò)資源。另外,該方案改進(jìn)了應(yīng)答包ACK的TCP首部,在原有MMJI方案的基礎(chǔ)上,增加網(wǎng)絡(luò)狀態(tài)標(biāo)志位,進(jìn)一步增強(qiáng)網(wǎng)絡(luò)狀態(tài)識別的準(zhǔn)確性。在發(fā)送端采取相應(yīng)的改進(jìn)措施,使TCP的性能得到明顯的改善。但是,該方案未考慮信道的公平性、度量參數(shù)門限值和窗口增長因子的進(jìn)一步優(yōu)化問題,這在今后的研究中需進(jìn)一步完善。另外,利用TCP協(xié)議棧各層聯(lián)合來解決問題,即實(shí)現(xiàn)跨層設(shè)計(jì)的擁塞控制方案也是未來的一個(gè)研究方向。
[1] Feng Y J, Sun L M, Qian H L, et al. Improving TCP performance over MANET:A survey[J]. Journal of Software,2005, 16(3):434-444.(in Chinese)
[2] Wei Y,Bai G W.Improved algorithm of TCP congestion control in multi-hop Ad Hoc networks[J]. Computer Engineering and Design, 2009, 30(23):5314-5336.(in Chinese)
[3] Li J, Blake C, De Couto D, et al. Capacity of Ad Hoc wireless networks[C]∥Proc of the 7th International Conference on Mobile Computing and Networking (MOBICOM 01), 2001:61-69.
[4] Chen K, Xue Y, Nahrstedt K. On setting TCP’s congestion window limit in mobile Ad Hoc networks[C]∥Proc of the International Conference on Communications(ICC’03), 2003:1080-1084.
[5] Hollomd G, Vaidya N. Analysis of TCP performance over mobile Ad Hoc networks[J]. Wireless Networks, 2002, 8(2):275-288.
[6] Cheng J, Hong P L, Li J S. Performance analysis on improved schemes of TCP in mobile Ad Hoc networks[J]. Computer Applications, 2005, 25(2):265-269.(in Chinese)
[7] Wu Q L, Wu B, Zhang J Q. Improving TCP performance for mobile Ad Hoc networks through employing end-to-end identification[J]. Journal of Hefei University of Technology, 2008,31(9):1458-1461. (in Chinese)
[8] Zhang R H, Kong X Z, Liu Y. Performance improvement of TCP in wireless multi-hop network[J]. Journal of Tsinghua University, 2010,50(1):49-53.(in Chinese)
[9] Fu Z, Greenstein B, Meng X, et al. Design and implementation of atcp friendly transport protocol for Ad Hoc wireless networks[C]∥Proc of the 10th IEEE International Conference on Network Protocols Paris,2002:215-225.
[10] Xu W Q, Wang Y M, Yu C H, et al. Cross-layer optimal congestion control scheme in mobile Ad Hoc networks[J]. Journal of Software, 2010, 21(7):1667-1678.(in Chinese)
[11] Song J, Li H, Li Y Y, et al. Adaptive ADTCP:Improvement scheme of TCP in Ad Hoc network[J]. Journal of Computer Applications,2010,30(7):1750-1756.(in Chinese)
[12] Zhou J X, Shi B X. Enhance TCP performance in Ad Hoc network by TCP-RC[J]. MINI-MICRO Systems, 2006,27(6):1064-1068.(in Chinese)
[13] Jiang D X, Pan S W, Zhou Y, et al. Improvement of TCP congestion control algorithm for mobile Ad Hoc networks through employment end-to-end identification[J]. Computer Science, 2010,37(7):105-109.(in Chinese)
[14] Niu Z,Xiang Y.End to end congestion control of UDP stream for Ad Hoc networks[J].Computer Engineering and Design,2009,30(6):1301-1306.(in Chinese)
[15] JiST user guide and swans user guide[EB/OL].[2004-12-15].http://jist.ece.conell.edu/docs.html.
附中文參考文獻(xiàn):
[1] 馮彥君,孫利民,錢華林,等.MANET中TCP改進(jìn)研究綜述[J].軟件學(xué)報(bào),2005,16(3):434-444.
[2] 魏瀅,白光偉.多跳Ad Hoc網(wǎng)絡(luò)TCP擁塞控制改進(jìn)方案[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(23):5314-5336.
[6] 程劍, 洪佩琳, 李津生.移動Ad Hoc網(wǎng)絡(luò)中的TCP改進(jìn)方案性能分析[J].計(jì)算機(jī)應(yīng)用,2005,25(2):265-269.
[7] 吳其林, 武彬, 章峻青. 一種基于端到端的Ad Hoc網(wǎng)絡(luò)TCP性能改進(jìn)方案[J]. 合肥工業(yè)大學(xué)學(xué)報(bào),2008,31(9):1458-1461.
[8] 張閏華, 孔祥震, 劉瑩. 無線多跳網(wǎng)絡(luò)中TCP的性能改進(jìn)[J]. 清華大學(xué)學(xué)報(bào),2010,50(1):49-53.
[10] 徐偉強(qiáng),汪亞明,俞成海,等.移動Ad Hoc網(wǎng)絡(luò)的跨層優(yōu)化擁塞控制[J].軟件學(xué)報(bào),2010,21(7):1667-1678.
[11] 宋軍,李浩,李嫄源,等. Ad Hoc中的TCP改進(jìn)方案—Adaptive ADTCP[J].計(jì)算機(jī)應(yīng)用,2010,30(7):1750-1756.
[12] 周建新,石冰心.TCP-RC增強(qiáng)Ad Hoc網(wǎng)絡(luò)TCP性能[J].小型微型計(jì)算機(jī)系統(tǒng),2006,27(6):1064-1068.
[13] 蔣道霞,潘守偉,周曜,等.一種基于端到端的Ad Hoc網(wǎng)絡(luò)TCP擁塞控制改進(jìn)算法[J].計(jì)算機(jī)科學(xué),2010,37(7):105-109.
[14] 牛章鵬,向勇.自組網(wǎng)絡(luò)端系統(tǒng)中UDP流的擁塞控制[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(6):1301-1306.
TENGYan-ping,born in 1965,MS,associate professor,her research interests include wireless network, and operating system.
王海珍(1976-),女,黑龍江齊齊哈爾人,碩士,副教授,研究方向?yàn)榍度胧郊夹g(shù)和網(wǎng)絡(luò)工程。E-mail:Wanghaizhen1976@163.com
WANGHai-zhen,born in 1976,MS,associate professor,her research interests include embedded technology, and network engineering.
金梅(1977-),女,黑龍江齊齊哈爾人,碩士,講師,研究方向?yàn)橐苿佑?jì)算和網(wǎng)絡(luò)。E-mail:jinmare@126.com
JINMei,born in 1977,MS,lecturer,her research interests include mobile computing, and network.
李大輝(1968-),男,黑龍江克山人,博士,教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、信號與系統(tǒng)、圖形圖像處理。E-mail:ks_lidahui_qqhru@yahoo.com.cn
LIDa-hui,born in 1968,PhD,professor,his research interests include computer network,signals and systems, and graphic image processing.
Animprovedschemeofend-to-endTCPcongestioncontrolinAdHocnetwork
TENG Yan-ping,WANG Hai-zhen,JIN Mei,LI Da-hui
(College of Computer and Control Engineering,Qiqihar University,Qiqihar 161006,China)
The traditional TCP protocol is designed for wired networks, and it is assumed that the packet loss is caused by network congestion. However, in Ad Hoc network, in addition to the congestion loss, other non-congestion factors can also cause packet loss. The main factors affecting TCP performance of Ad Hoc Network are analyzed, and an end-to-end TCP congestion control scheme (Imp-MMJI) is proposed, which is based on the original congestion control scheme of MMJI. According to the forward path hops, the scheme adaptively adjusts the congestion window size and prevents the excessive growth of the congestion window. When the route changes or link interruption occurs, the scheme can calculate cwnd and ssthresh values of the congestion window in order to ensure the consistency of the TCP connection load rate when the routing is reconstructed. Besides, the scheme adds the state sign bit in TCP header of the ACK reply packet, which combines multiple measurement parameters to judge the network state so as to improve the network state recognition accuracy and make the sender respond in real time. The simulation results show that the scheme can improve the network throughput and the TCP performance obviously.
Ad Hoc network;end-to-end;TCP;congestion control
1007-130X(2014)08-1493-07
2012-12-27;
:2013-03-25
黑龍江省教育廳科學(xué)技術(shù)研究資助項(xiàng)目(12541880)
TP393
:A
10.3969/j.issn.1007-130X.2014.08.012
滕艷平(1965-),女,黑龍江齊齊哈爾人,碩士,副教授,研究方向?yàn)闊o線網(wǎng)絡(luò)和操作系統(tǒng)。E-mail:Typ2732996@163.com
通信地址:161006 黑龍江省齊齊哈爾市齊齊哈爾大學(xué)計(jì)算機(jī)與控制工程學(xué)院
Address:College of Computer and Control Engineering,Qiqihar University,Qiqihar 161006,Heilongjiang,P.R.China