馮立波,潘麗靜,楊潤標(biāo),羅桂蘭,張 梅
(大理學(xué)院數(shù)學(xué)與計算機學(xué)院,云南大理 671003)
一種適用于異構(gòu)網(wǎng)絡(luò)的TCP New Vegas算法
馮立波,潘麗靜,楊潤標(biāo),羅桂蘭,張 梅
(大理學(xué)院數(shù)學(xué)與計算機學(xué)院,云南大理 671003)
TCP Vegas是運輸層的一種可靠算法,但是在無線網(wǎng)絡(luò)中不能最高效率的占用網(wǎng)路帶寬,使得數(shù)據(jù)傳輸受到限制,不適合在無線網(wǎng)絡(luò)中傳輸。對TCP Vegas算法進(jìn)行改進(jìn),提出了一種適用于異構(gòu)網(wǎng)絡(luò)的TCP New Vegas算法。該算法將diff控制在兩個動態(tài)門限值a,b之間,根據(jù)a,b兩個動態(tài)門限值的設(shè)定,可有效的提高算法的擁塞窗口及吞吐量。以無線傳感器網(wǎng)絡(luò)接入第三代移動通信網(wǎng)絡(luò)為仿真背景,對該算法進(jìn)行了仿真實驗。仿真結(jié)果表明,改進(jìn)后的TCP New Vegas算法具有較大的擁塞窗口和較高的吞吐量,更適合應(yīng)用于異構(gòu)網(wǎng)絡(luò)中數(shù)據(jù)的傳輸。
異構(gòu)網(wǎng)絡(luò);無線傳感器網(wǎng)絡(luò);TD-SCDMA;TCP;TCP New Vegas
TCP是應(yīng)用于計算機網(wǎng)絡(luò)傳輸層的協(xié)議,它是一種面向連接的、可靠的、面向字節(jié)流的傳輸層通信協(xié)議,保證了數(shù)據(jù)的可靠傳輸。但是目前存在著許多除計算機網(wǎng)絡(luò)外的其它網(wǎng)絡(luò),例如移動通信網(wǎng)絡(luò)、無線傳感器網(wǎng)絡(luò)、紅外、藍(lán)牙傳輸?shù)取?〕。如何使得這些網(wǎng)絡(luò)之間能夠相互傳輸數(shù)據(jù),是目前學(xué)術(shù)界研究的熱點之一。文獻(xiàn)〔2-3〕針對TCP Vegas算法的擁塞控制進(jìn)行了改進(jìn),文章〔4〕提出了一種基于異構(gòu)網(wǎng)絡(luò)的擁塞控制算法。文章〔5〕也提出了異構(gòu)網(wǎng)絡(luò)的處理方法。第三代移動通信TD-SCDMA技術(shù)是中國最大運營商中國移動采取的技術(shù)〔6〕,文章〔7-8〕對第四代移動通信系統(tǒng)模型進(jìn)行分析與研究。本文以TD-SCDMA技術(shù)為載體,對基于異構(gòu)網(wǎng)絡(luò)的TCP Vegas算法進(jìn)行改進(jìn)設(shè)計,提出了TCP New Vegas算法,并仿真實現(xiàn)。
TCP最初是為有線網(wǎng)絡(luò)而設(shè)計的,在TCP算法中,發(fā)送端判斷網(wǎng)絡(luò)狀況需要依據(jù)接收端的ACK信息,如果發(fā)送端判斷網(wǎng)絡(luò)發(fā)生了丟包,就會降低發(fā)送率〔9〕。其中TCP Reno算法是當(dāng)前最常使用的擁塞控制協(xié)議,在TCP Reno算法的基礎(chǔ)之上,國內(nèi)外的許多研究者又提出了一些新的改進(jìn),試圖優(yōu)化TCP Reno算法的性能,其中的Vegas算法是在1994年由L.S.Brakmo等提出的一種基于測量的TCP算法〔10〕。該算法使用數(shù)據(jù)包傳輸?shù)耐禃r間(RTT)來判斷網(wǎng)絡(luò)的狀況,并利用兩個參數(shù):預(yù)期傳輸速率(Expected)和實際傳輸速率(Actual)來控制擁塞窗口(cwnd)的大小,以此來進(jìn)行擁塞控制最大可能的使用帶寬。但是該算法需要網(wǎng)絡(luò)帶寬穩(wěn)定維持在較高水平,而TD-SCDMA網(wǎng)絡(luò)容易受傳輸環(huán)境的影響〔11-12〕,帶寬經(jīng)常產(chǎn)生較大幅度的改變,無法滿足Vegas算法的要求,不能最大程度的使用網(wǎng)絡(luò)資源,不適合在TD-SCDMA網(wǎng)絡(luò)中應(yīng)用〔13〕。因此,本文基于擁塞控制對Vegas算法改進(jìn),實現(xiàn)擁塞窗口的自適應(yīng)調(diào)整,并在NS2中仿真,仿真結(jié)果表明,在網(wǎng)絡(luò)丟包率增大的情況下,New Vegas算法的擁塞窗口可以及時根據(jù)網(wǎng)絡(luò)狀況調(diào)整到最大;吞吐量隨丟包率的增大而降低,但總體水平依然高于相同丟包率下的Vegas算法。
1.1 TCP Reno算法TCP Reno算法是當(dāng)前最常使用的擁塞控制算法,TCP擁塞控制常采用4種控制機制:慢啟動(slow start,SS)、擁塞避免(congestion avoidance,CA)、快速重傳(fast retransmit,F(xiàn)R)、快速恢復(fù)(fast recovery,F(xiàn)R)。這4個算法是可以相互轉(zhuǎn)換的,轉(zhuǎn)換方式如圖1所示。其中:設(shè)ssthresh為當(dāng)前擁塞窗口的一半,cwnd為ssthresh加3個報文段大小,重傳丟失的報文段。
圖1 Reno算法
1.2 New Reno算法New Reno算法是比較經(jīng)典的基于“快速恢復(fù)”和“快速重傳”階段的改進(jìn)算法,該算法的提出者是S.Floyd和T.Henderson。核心思想為:當(dāng)網(wǎng)絡(luò)處于“快速恢復(fù)”階段時,為了完成重傳所有丟失的數(shù)據(jù)包,發(fā)送端會不斷的重發(fā)丟失報文段,直到同一窗口中丟失的所有數(shù)據(jù)都恢復(fù)完,發(fā)送端才退出“快速恢復(fù)”階段。
New Reno算法通過PartialACK和ACK的優(yōu)先性來解決同一個窗口中多個數(shù)據(jù)包丟失的問題,判斷出結(jié)束“快速重傳”的正確時機。
1.3 TCP Vegas算法TCP Vegas是在1994年由L.S.Brakmo等提出的一種基于測量的TCP算法。算法主要描述如下:在數(shù)據(jù)傳輸過程中,當(dāng)發(fā)送端收到一個確認(rèn)幀ACK時,先計算期望流量和實際流量的差值(diff),計算完成之后與門限值a和b(在初期自行設(shè)定,其中bb,說明擁塞窗口過大,有造成網(wǎng)絡(luò)擁塞的可能,因此通過減小擁塞窗口cwnd的大小來降低傳送速率;如果diff 1.4 TCP Westwood算法2002年,Claudio Casetti等提出TCP Westwood方法。Westwood同樣是一種基于測量的TCP算法。在Westwood算法中,發(fā)送端根據(jù)收到的ACK速率,估算網(wǎng)絡(luò)可用帶寬,將估計結(jié)果作為是否調(diào)整擁塞窗口的依據(jù)來避免發(fā)生擁塞。如果發(fā)生了擁塞,發(fā)送端將調(diào)整擁塞窗口的大小,修改慢啟動閥值。 2.1 TCP Vegas算法思想TCP Vegas是一種基于測量的TCP算法。算法思想如下:首先計算diff的值,計算方法如式(1)所示。 BaseRTT取所有RTT中的最小值。其擁塞窗口調(diào)整策略如下: 在Vegas算法中增加了RTT供發(fā)送端判斷網(wǎng)絡(luò)狀況,對擁塞控制階段進(jìn)行了優(yōu)化,擁塞窗口的調(diào)整策略有利于網(wǎng)絡(luò)的穩(wěn)定。2 TCP New Vegas算法