專利名稱::基于浮點窗口增量因子的自適應(yīng)包長方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種無線傳輸
技術(shù)領(lǐng)域:
的方法,具體是一種基于浮點窗口增量因子的自適應(yīng)包長方法。技術(shù)背景無線自組織網(wǎng)絡(luò)飛速發(fā)展,以WLAN(無線局域網(wǎng))、無線傳感器網(wǎng)絡(luò)等形式廣泛應(yīng)用于生產(chǎn)生活實踐。但在無線自組織網(wǎng)絡(luò)的自身特性(比如隱藏終端、暴露終端、信道誤碼、拓?fù)渥兓?的限制下,無線自組織網(wǎng)絡(luò)的吞吐量、時延性能與有線網(wǎng)絡(luò)相比有很大差距,尚不能滿足人們對于大量數(shù)據(jù)傳輸?shù)男枨?。對于提高傳輸層控制協(xié)議在無線網(wǎng)絡(luò)中的性能,一部分是基于使傳輸層控制協(xié)議能夠識別丟包的原因從而做出不同的響應(yīng);而另一部分則根據(jù)傳輸層控制協(xié)議的統(tǒng)計特性來調(diào)整協(xié)議,從而獲得更佳的性能。經(jīng)對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn),ZhenghuaFu等在2005年3月的《MobileComputing,IEEEtransactionson》(《電子電器工程師協(xié)會無線計算機技術(shù)期刊》)第四巻第2期209-211頁上發(fā)表的"Theimpactofmultih叩wirelesschannelonTCPperformance"("多跳無線信道對TCP性能的影響")指出在802.11無線網(wǎng)絡(luò)中,限定最大擁塞窗口至1或2,將使其性能大大提高。KitaeNahm等利用了這個研究成果,在2005年5月的proceedingsofACMMobiHoc》(《無線多跳算法會議》)上發(fā)表了"TCPovermultihop802.11networks:issuesandperformanceenhancement"(802.11多跳網(wǎng)絡(luò)中的TCP:問題與性能增強)。文中提出了一種浮點窗口方法(FeW),它通過改變每一周游時間的窗口的增量因子ra(EKa《i》,來減小平均窗口大小,F(xiàn)eW具有最高的吞吐量表現(xiàn)。但浮點窗口方法的不足之處在于未充分利用其方法,浪費了預(yù)測信道的容量,究其原因,是因為它沒有舍棄傳統(tǒng)傳輸層控制協(xié)議的窗口利用方案,從而導(dǎo)致浪費大量的傳輸帶寬。
發(fā)明內(nèi)容本發(fā)明針對上述現(xiàn)有技術(shù)的不足,提出了一種傳輸層控制協(xié)議(TCP)中基于浮點窗口增量因子的自適應(yīng)包長方法,使其進一步提高傳輸吞吐量,同時實現(xiàn)向后兼容,提高了技術(shù)的適用范圍。本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,本發(fā)明包括如下具體步驟步驟一,當(dāng)發(fā)送端正常收到來自接收端的一個確認(rèn)分組(ACK)時,發(fā)送端根據(jù)浮點窗口更新方法更新窗口,然后由更新后的窗口大小計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組,直到再次收到一個確認(rèn)分組,重復(fù)步驟一;所述根據(jù)浮點窗口更新方法更新窗口,具體為*OtcwicLeurrent其中cwnd,"為更新后的擁塞窗口大小,cwnd—,一為當(dāng)前擁塞窗口,a為浮點窗口增量因子,在傳統(tǒng)TCP中a為l。所述計算下一個包使用的分組長度,具體為下一個包使用的分組長度7-.Iew打d—xM^ie&etsfzeIpacketsize—,,汰gtSI21=-^-^-其中initPacketsize—為傳輸層控制協(xié)議初始分組長度,cwnd—為當(dāng)前擁塞窗口大小。步驟二,當(dāng)發(fā)送端計時器超時,傳輸層控制協(xié)議進入慢啟動狀態(tài),擁塞窗口重置為1,當(dāng)前分組長度重置為初始分組長度initPacketsize一,發(fā)送端對緩沖中的數(shù)據(jù)按照當(dāng)前分組長度重新打包,進行重傳;所述重新打包,具體為取出發(fā)送緩沖中的所有包,按照順序去除包的TCP協(xié)議頭部,將數(shù)據(jù)部分重新合并,并且將TCP當(dāng)前序列號(sequencenumber)置為超時包首字節(jié)的序列號,然后按照當(dāng)前分組長度,重新打包數(shù)據(jù)。由于是超時引起的重傳,超時的包首字節(jié)對應(yīng)TCP(傳輸控制協(xié)議)序列號的后續(xù)字節(jié)都要進行重傳,因此重新打包不用考慮字節(jié)的順序問題。步驟三,當(dāng)發(fā)送端收到3個重復(fù)的確認(rèn)分組,傳輸層控制協(xié)議進入快速啟動狀態(tài)時,發(fā)送端只重傳丟失的包,重傳成功后再按照步驟一計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組。所述重傳丟失的包,具體為發(fā)送端鎖定擁塞窗口,忽略當(dāng)前分組長度,重傳丟失的包,并且等待確認(rèn)分組,若確認(rèn)分組正確到達,根據(jù)TCP的快速啟動定義將當(dāng)前擁塞窗口減半,然后按照步驟一計算當(dāng)前分組長度,繼續(xù)傳輸,若確認(rèn)分組未到達,計時器超時,則進入步驟二。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明是基于發(fā)送端的TCP方法,因此無需對接收端的傳輸層控制協(xié)議做任何修改,接收端只需按照慣例,讀取傳輸層分組頭部的信息(包長等),接收整個分組正文,并且發(fā)送確認(rèn)分組即可;本發(fā)明同時也改善了傳輸性能,在鏈狀拓?fù)湎驴商岣咄掏铝窟_25%,在網(wǎng)格及隨即移動拓?fù)湎缕骄岣咄掏铝?5%。圖1是本發(fā)明的實施例仿真場景的拓?fù)浣Y(jié)構(gòu)圖;圖2是本發(fā)明的實施例中鏈路拓?fù)湎聠螚lTCP流,本發(fā)明方法與浮點窗口方法的吞吐量對比圖;圖3是本發(fā)明的實施例中7x7柵格拓?fù)湎?,本發(fā)明方法與浮點窗口方法的吞吐量對比圖;圖4是發(fā)明的實施例中13x5柵格拓?fù)湎?,本發(fā)明方法與浮點窗口方法的吞吐量對比圖;圖5是本發(fā)明實施例中隨機移動拓?fù)浣Y(jié)構(gòu)下,本發(fā)明方法與浮點窗口方法的吞吐量對比圖。具體實施方式下面結(jié)合附圖對本發(fā)明的實施例作詳細(xì)說明本實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細(xì)的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。本實施例的仿真環(huán)境參數(shù)設(shè)置如下使用802.ll作為MAC層協(xié)議,信道帶寬為2Mbps,發(fā)送距離為250m,干擾距離為500m,相鄰節(jié)點之間的距離為200m,初始分組長度為1024字節(jié),圖1為本實施例仿真場景中的鏈狀與柵格狀拓?fù)浣Y(jié)構(gòu)圖,圖(a)為4到22跳的鏈狀拓?fù)浣Y(jié)構(gòu)圖,圖(b)為X+Y柵格裝拓?fù)浣Y(jié)構(gòu)圖。步驟一,當(dāng)發(fā)送端正常收到來自接收端的一個確認(rèn)分組(ACK)時,發(fā)送端根據(jù)浮點窗口方法的窗口更新策略更新窗口其中cwnd—""為更新后的擁塞窗口大小,cwnd,,t為當(dāng)前擁塞窗口,a為浮點窗口增量因子,傳統(tǒng)TCP中的a為l。然后由更新后的窗口大小計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組,直到再次收到一個確認(rèn)分組,重復(fù)步驟一。所述計算下一個包使用的分組長度,具體為下一個包使用的分組長度packetsize—:1cwndxfii"Pa.eite.tsiz"eIticwncf」J其中initPacketsize—為傳輸層控制協(xié)議初始分組長度,cwncL為當(dāng)前擁塞窗口大小。為了便于實現(xiàn),此處packetsize—取整數(shù)部分,由于舍棄的部分僅為幾個比特,可以忽略不計,因此本實施例方法充分使用了預(yù)測的信道容量,從而提高了吞吐量。步驟二,當(dāng)發(fā)送端計時器超時,傳輸層控制協(xié)議進入慢啟動狀態(tài),擁塞窗口cwnd—重置為l,當(dāng)前分組長度重置為初始分組大小initPacketsize—,艮P:packetsize_=initPacketsize—發(fā)送端對緩沖中的數(shù)據(jù)按照當(dāng)前分組長度重新打包,進行重傳;所述重新打包,具體為取出發(fā)送緩沖中的所有包,按照順序去除包的TCP協(xié)議頭部,將數(shù)據(jù)部分重新合并,并且將TCP當(dāng)前序列號置為超時包首字節(jié)的序列號,然后按照上述的當(dāng)前分組長度,重新打包數(shù)據(jù),由于是超時引起的重傳,超時的包首字節(jié)對應(yīng)TCP序列號的后續(xù)字節(jié)都要進行重傳,重新打包不用考慮字節(jié)的順序問題。步驟三,當(dāng)發(fā)送端收到3個重復(fù)的確認(rèn)分組,傳輸層控制協(xié)議進入快速啟動狀態(tài)時,發(fā)送端只重傳丟失的包,重傳成功后再按照步驟一中計算下一個包使用的分組長度方法更新當(dāng)前分組長度。步驟三與步驟二區(qū)別于之處在于步驟二中的超時重傳被TCP解釋為連接斷裂,重建連接后需要重傳丟失包和其后續(xù)的所有數(shù)據(jù);而步驟三中3個重復(fù)的確認(rèn)分組被TCP解釋為丟失包由于誤碼而未正確傳輸,因此僅需要重傳丟失包,如果仍然按照步驟二實施,將浪費帶寬,傳輸不必要的數(shù)據(jù)。所述重傳丟失的包,具體為發(fā)送端鎖定擁塞窗口cwncL,忽略當(dāng)前分組長度packetsize」重傳丟失的包,并且等待確認(rèn)分組,若確認(rèn)分組正確到達,根據(jù)TCP的快速啟動定義將當(dāng)前擁塞窗口減半,艮P:cwnd_=cwnd_/2然后按照步驟一計算當(dāng)前分組長度,繼續(xù)傳輸,若確認(rèn)分組未到達,計時器超時,則進入步驟二。如圖2所示,為鏈路下單條TCP流吞吐量比較(a=0.01),自適應(yīng)包長方法除了在16跳時性能比FeW有所下降外,吞吐量都超越了FeW,平均來說比FeW提高了10%的吞吐量。如表1所示,為本實施例中鏈路拓?fù)湎?條TCP流吞吐量對比情況(a=0.05),在鏈狀拓?fù)湎拢?條TCP流同時傳輸時,自適應(yīng)包長方法超越FeW的性能達10%-25%。表1本實施例方法與FeW在鏈路拓?fù)湎?條TCP流吞吐量對比情況<table>tableseeoriginaldocumentpage8</column></row><table>如圖3所示,在7x7的柵格拓?fù)浣Y(jié)構(gòu)下,分別選擇a=0.01和a=0.05兩種情況下,本實施例方法與FeW方法的吞吐量進行比較,自適應(yīng)包長方法不僅在網(wǎng)絡(luò)資源充沛時是優(yōu)于FeW,而且在網(wǎng)絡(luò)負(fù)荷很大時仍相對FeW吞吐量的改善可達12%。如圖4所示,在13x5的狹長柵格拓?fù)浣Y(jié)構(gòu)下,分別選擇a=0.01和a=0.05兩種情況下,本實施例方法與FeW方法的吞吐量進行比較,結(jié)果表明本實施例的自適應(yīng)包長方法超越FeW平均達10.4°/。。如圖5所示,仿真了150個節(jié)點在2000mx2000m的區(qū)域內(nèi)隨機移動的場景,每個節(jié)點被設(shè)置為具有l(wèi)一10m/s的隨機速度,反復(fù)仿真測試代碼10次并取得平均值。本實施例方法比傳統(tǒng)TCP改善了25%,比FeW改善了10%的吞吐量。權(quán)利要求1、一種基于浮點窗口增兩因子的自適應(yīng)包長方法,其特征在于,包括如下步驟步驟一,當(dāng)發(fā)送端收到來自接收端的一個確認(rèn)分組時,發(fā)送端根據(jù)浮點窗口更新方法更新窗口,然后由更新后的窗口大小計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組,直到再次收到一個確認(rèn)分組,重復(fù)步驟一;步驟二,當(dāng)發(fā)送端計時器超時,傳輸層控制協(xié)議進入慢啟動狀態(tài),擁塞窗口重置為1,當(dāng)前分組長度重置為初始分組長度,發(fā)送端對緩沖中的數(shù)據(jù)按照當(dāng)前分組長度重新打包,進行重傳;步驟三,當(dāng)發(fā)送端收到3個重復(fù)的確認(rèn)分組,傳輸層控制協(xié)議進入快速啟動狀態(tài)時,發(fā)送端只重傳丟失的包,重傳成功后再按照步驟一計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組。2、根據(jù)權(quán)利要求l所述的基于浮點窗口增兩因子的自適應(yīng)包長方法,其特征是,所述根據(jù)浮點窗口更新方法更新窗口,具體為<formula>formulaseeoriginaldocumentpage2</formula>其中cwnd—,為更新后的擁塞窗口大小,cwnf為當(dāng)前擁塞窗口,a為浮點窗口增量因子,在傳統(tǒng)傳輸層控制協(xié)議中a為l。3、根據(jù)權(quán)利要求l所述的基于浮點窗口增兩因子的自適應(yīng)包長方法,其特征是,所述計算下一個包使用的分組長度,具體為下一個包使用的分組長度packetsize_,<formula>formulaseeoriginaldocumentpage2</formula>其中initPacketsize—為傳輸層控制協(xié)議初始分組長度,cwncL為當(dāng)前擁塞窗口大小。4、根據(jù)權(quán)利要求l所述的基于浮點窗口增兩因子的自適應(yīng)包長方法,其特征是,所述重新打包,具體為取出發(fā)送緩沖中的所有包,按照順序去除包的傳輸層控制協(xié)議頭部,將數(shù)據(jù)部分重新合并,并且將傳輸層控制協(xié)議當(dāng)前序列號置為超時包首字節(jié)的序列號,然后按照當(dāng)前分組長度,重新打包數(shù)據(jù)。5、根據(jù)權(quán)利要求l所述的基于浮點窗口增兩因子的自適應(yīng)包長方法,其特征是,所述重傳丟失的包,具體為發(fā)送端鎖定擁塞窗口,忽略當(dāng)前分組長度,重傳丟失的包,并且等待確認(rèn)分組,若確認(rèn)分組正確到達,根據(jù)傳輸層控制協(xié)議的快速啟動定義將當(dāng)前擁塞窗口減半,然后按照步驟一計算當(dāng)前分組長度,繼續(xù)傳輸,若確認(rèn)分組未到達,計時器超時,則進入步驟二。全文摘要一種無線傳輸
技術(shù)領(lǐng)域:
的基于浮點窗口增量因子的自適應(yīng)包長方法,包括如下步驟當(dāng)發(fā)送端正常收到來自接收端的一個確認(rèn)分組時,發(fā)送端更新的窗口大小并計算下一個包使用的分組長度,傳輸層發(fā)送端使用計算后的分組長度傳送后續(xù)分組;步驟二,當(dāng)發(fā)送端計時器超時,傳輸層控制協(xié)議進入慢啟動狀態(tài),擁塞窗口重置為1,當(dāng)前分組長度重置為初始分組長度,發(fā)送端對緩沖中的數(shù)據(jù)按照當(dāng)前分組長度重新打包,進行重傳;步驟三,當(dāng)發(fā)送端收到3個重復(fù)的確認(rèn)分組,傳輸層控制協(xié)議進入快速啟動狀態(tài)時,發(fā)送端只重傳丟失的包。本發(fā)明大大提高了無線網(wǎng)絡(luò)的TCP性能,吞吐量優(yōu)于FeW最多達20%。文檔編號H04L29/08GK101316157SQ20081003274公開日2008年12月3日申請日期2008年1月17日優(yōu)先權(quán)日2008年1月17日發(fā)明者徐友云,王新兵,赟韓申請人:上海交通大學(xué)