余秋哲,謝凱,龔康奕,阮寧君
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
賀建彪
(中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410083)
?
基于Ad Hoc網(wǎng)絡(luò)的數(shù)據(jù)快速傳輸方法
余秋哲,謝凱,龔康奕,阮寧君
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
賀建彪
(中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410083)
[摘要]Ad Hoc網(wǎng)絡(luò)是一種新型的自組網(wǎng)絡(luò),因其架設(shè)方便,應(yīng)用范圍不受環(huán)境設(shè)備的制約,在近年來得到了研究人員的高度關(guān)注。針對(duì)擁塞避免在Ad Hoc網(wǎng)絡(luò)中無法區(qū)分丟包類別而錯(cuò)誤啟動(dòng)致使傳輸效率下降的問題,將傳統(tǒng)TCP協(xié)議擁塞控制算法進(jìn)行優(yōu)化,并在NS-2仿真軟件中通過仿真試驗(yàn)證實(shí)該方法在Ad Hoc網(wǎng)絡(luò)中傳輸速率更快、數(shù)據(jù)包的遺失率更低。
[關(guān)鍵詞]Ad Hoc網(wǎng)絡(luò);TCP協(xié)議;網(wǎng)絡(luò)擁塞;NS-2
Ad Hoc網(wǎng)絡(luò)是一種新型的自組織網(wǎng)絡(luò)[1],相較于傳統(tǒng)網(wǎng)絡(luò),其沒有專用節(jié)點(diǎn),但其中各個(gè)節(jié)點(diǎn)又兼具轉(zhuǎn)發(fā)包和路由的功能[2,3]。較之有線網(wǎng)絡(luò)和傳統(tǒng)的無線網(wǎng)絡(luò),Ad Hoc網(wǎng)絡(luò)的靈活性和可靠性均較為優(yōu)越。Ad Hoc網(wǎng)絡(luò)技術(shù)已廣泛應(yīng)用于軍事通信、災(zāi)后救援、個(gè)人局域網(wǎng)等方面[4],隨著技術(shù)的愈發(fā)成熟,將運(yùn)用到更多更復(fù)雜的通信環(huán)境。
Ad Hoc的架設(shè)特點(diǎn)使得網(wǎng)絡(luò)中各節(jié)點(diǎn)運(yùn)動(dòng)軌跡不可預(yù)知,運(yùn)動(dòng)方式無法獲得,從而節(jié)點(diǎn)間的通信缺乏集中管理,交通擁堵可以發(fā)生在任何中間節(jié)點(diǎn)。在Ad Hoc網(wǎng)絡(luò)中,網(wǎng)絡(luò)擁塞產(chǎn)生的原因往往不盡相同,所以在傳輸過程中,數(shù)據(jù)包的丟失也有所差異。傳統(tǒng)TCP協(xié)議在此應(yīng)用往往達(dá)不到需要的效果。傳統(tǒng)的TCP協(xié)議中運(yùn)用了4種機(jī)制來避免在通信中可能會(huì)出現(xiàn)的擁塞問題,分別是慢啟動(dòng)機(jī)制、擁塞避免機(jī)制、快速重傳機(jī)制和快速恢復(fù)機(jī)制[5]。這些算法的最初設(shè)計(jì)是針對(duì)鏈路具有較高可靠性的有線傳輸網(wǎng)絡(luò)環(huán)境,因此TCP協(xié)議在設(shè)計(jì)之初把網(wǎng)絡(luò)中的擁塞原因主要?dú)w結(jié)為數(shù)據(jù)分組的丟失。但在自身的鏈路不穩(wěn)定、節(jié)點(diǎn)移動(dòng)導(dǎo)致的路由不穩(wěn)定以及單個(gè)節(jié)點(diǎn)傳輸能力限制的Ad Hoc網(wǎng)絡(luò)中,信道干擾強(qiáng)、誤碼率高和競(jìng)爭(zhēng)激烈都可能造成網(wǎng)絡(luò)擁塞,這些因素在傳統(tǒng)TCP協(xié)議下不能有效的被區(qū)分,網(wǎng)絡(luò)擁塞難以正確的解決,使機(jī)制的處理效果不明顯[6]。越來越多學(xué)者已經(jīng)意識(shí)到原來的TCP協(xié)議在Ad Hoc網(wǎng)絡(luò)中不可避免的會(huì)產(chǎn)生各種各樣的問題[7],并且可以改進(jìn)的地方都是圍繞鏈路層、網(wǎng)絡(luò)層和傳輸層進(jìn)行。
鏈路層的研究主要圍繞Ad Hoc網(wǎng)絡(luò)的中暴露終端和隱藏終端的問題對(duì)MAC層協(xié)議進(jìn)行修改。有學(xué)者對(duì)802.11 MAC協(xié)議做了適應(yīng)性修改,優(yōu)化了避退算法和重傳機(jī)制[8],同時(shí)多信道協(xié)議也被應(yīng)用到Ad Hoc網(wǎng)絡(luò)中,如跳預(yù)約多址接入?yún)f(xié)議(DC-HRMA)[9]、雙信道接入?yún)f(xié)議(DCMA)[10]等。網(wǎng)絡(luò)層的主要的改進(jìn)在于路由協(xié)議的研究。有不少文獻(xiàn)對(duì)DSDV、WRP、AODV、DSR、TORA、ZRP等路由的比較進(jìn)行了研究[11~14],也有學(xué)者在這些協(xié)議的基礎(chǔ)上進(jìn)行修改,提出了LSDSR協(xié)議、 M-TORA協(xié)議等[15,16]。傳輸層的主要目的就是實(shí)現(xiàn)端到端數(shù)據(jù)的傳輸。傳輸層主要由2個(gè)基本的協(xié)議TCP和UDP組成,所以對(duì)Ad Hoc網(wǎng)絡(luò)的研究就是對(duì)TCP或UDP的修改,有不少改進(jìn)協(xié)議產(chǎn)生,如SRUDP、ARUDP、 TCP-aware、 Learning-TCP等[17,18]。
傳統(tǒng)TCP協(xié)議中,丟包擁塞是擁塞的主要原因,通常通過減少穿過擁擠路徑流做出響應(yīng)[19]。其主要思路如下:只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞,就把ssthresh(慢啟動(dòng)門限值)設(shè)置為出現(xiàn)擁塞時(shí)cwnd(擁塞窗口)的二分之一,然后把cwnd置為1,執(zhí)行慢開始算法[20]。當(dāng)然,數(shù)據(jù)包的丟失也可能是由信道干擾等其他原因造成,但傳統(tǒng)TCP協(xié)議只對(duì)有線傳輸?shù)沫h(huán)境做出有效優(yōu)化,在該情況中信道的影響對(duì)于傳輸來說可以忽略不計(jì),為了協(xié)議的簡(jiǎn)便,有些學(xué)者在設(shè)計(jì)擁塞控制算法時(shí)只能對(duì)有線環(huán)境進(jìn)行很好的應(yīng)答。這些設(shè)計(jì)運(yùn)用到移動(dòng)頻繁、端口節(jié)點(diǎn)不穩(wěn)定、丟包原因多變的Ad Hoc網(wǎng)絡(luò)中時(shí),就顯得有些不夠?qū)嵱?。為此,筆者通過對(duì)原有擁塞控制機(jī)制的修改,使其能夠更好的適應(yīng)Ad Hoc網(wǎng)絡(luò)的應(yīng)用環(huán)境。
1改進(jìn)算法
圖1 改進(jìn)算法流程圖
在網(wǎng)絡(luò)傳輸?shù)倪^程中,產(chǎn)生丟包一般可以分為2種:擁塞丟包和隨機(jī)丟包。擁塞丟包就是網(wǎng)絡(luò)產(chǎn)生擁塞導(dǎo)致的丟包,這個(gè)也是有線網(wǎng)絡(luò)中最常見的丟包行為,也是傳統(tǒng)TCP擁塞控制算法解決問題的初衷;而隨機(jī)丟包則可能是除網(wǎng)絡(luò)擁塞以外一切能導(dǎo)致封包丟失的行為引起的丟包,在Ad Hoc網(wǎng)絡(luò)中主要原因是節(jié)點(diǎn)移動(dòng)鏈路不穩(wěn)定,信道噪聲干擾等因素引起。新?lián)砣苊馑惴ㄖ饕攸c(diǎn)區(qū)別這2種丟包行為,并對(duì)不同的丟包行為做出不同的應(yīng)答方案,具體流程如圖1所示。
在數(shù)據(jù)傳輸之前,數(shù)據(jù)的接收端需要和數(shù)據(jù)的發(fā)送端取得聯(lián)系。通信的開始,先由數(shù)據(jù)的接收端向發(fā)送端發(fā)出數(shù)據(jù)請(qǐng)求消息;發(fā)送端收到來自接收端的請(qǐng)求消息后進(jìn)行確認(rèn),并對(duì)其回復(fù)確認(rèn)消息做好連接準(zhǔn)備;最后,接收端收到發(fā)送端的確認(rèn)消息后,向服務(wù)器發(fā)送消息表示已經(jīng)準(zhǔn)備就緒可以建立通信。
在TCP通信建立之后,發(fā)送端將產(chǎn)生一個(gè)cwnd(擁塞窗口)和一個(gè)ssthresh(慢啟動(dòng)門限值),其中cwnd=1,即一個(gè)流量包的大小。
通信開始初期,傳輸應(yīng)用慢啟動(dòng)算法,試探性的逐步增大cwnd,來增大網(wǎng)絡(luò)吞吐量。每當(dāng)發(fā)送端收到一個(gè)來自客戶端的確認(rèn)信息ACK后,就對(duì)原有的cwnd進(jìn)行增加:
cwnd=2*cwnd
(1)
直到網(wǎng)絡(luò)通信出現(xiàn)問題。
在進(jìn)行慢啟動(dòng)算法的同時(shí),對(duì)每次從發(fā)送端發(fā)送的數(shù)據(jù)進(jìn)行測(cè)速,求出發(fā)送速率最大值vmax和當(dāng)前發(fā)送的瞬時(shí)速率v(t):
(2)
(3)
式中,RTT為流量包的發(fā)送時(shí)間;RTTmin為流量包的最小發(fā)送時(shí)間。
由于vmax可以近似的看做網(wǎng)絡(luò)無擁塞時(shí)的數(shù)據(jù)傳輸速率,所以,當(dāng)v(t) n=(RTT-RTTmin)×v(t) (4) 此時(shí),可以通過n的值對(duì)丟包事件進(jìn)行分析。在此,設(shè)計(jì)一個(gè)閾值m與n進(jìn)行比較,如果n 當(dāng)發(fā)生隨機(jī)丟包事件時(shí),由于認(rèn)定丟包不是由網(wǎng)絡(luò)擁塞所引起,所以用快速重傳算法對(duì)丟失流量包進(jìn)行重新發(fā)送。在此,令: (5) cwnd=ssthresh+3 (6) 以加大擁塞窗口,增大網(wǎng)絡(luò)吞吐量。 當(dāng)發(fā)生擁塞丟包時(shí),則用擁塞避免算法,令: (7) 并將cwnd重新置為1。 當(dāng)cwnd (8) 由此一來,cwnd重新增大,減小了網(wǎng)絡(luò)數(shù)據(jù)包的注入量,讓網(wǎng)絡(luò)擁塞有足夠的時(shí)間處理。 當(dāng)擁塞處理完畢后,網(wǎng)絡(luò)需要快速恢復(fù)擁塞窗口以充分利用網(wǎng)絡(luò)帶寬,故使用快速恢復(fù)算法: (9) cwnd=ssthresh+3 (10) 這樣網(wǎng)絡(luò)就成功處理了一次擁塞行為,重新恢復(fù)到正常的通信狀態(tài)。 最后,所有數(shù)據(jù)發(fā)送完畢,客戶端與發(fā)送端斷開連接,通信結(jié)束。 2試驗(yàn) NS-2可以對(duì)不同的網(wǎng)絡(luò)環(huán)境進(jìn)行仿真,該試驗(yàn)結(jié)果通過NS-2仿真軟件仿真獲得。 圖2 試驗(yàn)Ad Hoc網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖 傳統(tǒng)算法與新算法所產(chǎn)生的吞吐量如圖3所示。從圖3中可以明顯看到新算法的吞吐量要大于原有算法,這就說明了使用新的算法后網(wǎng)絡(luò)相比之前更加“通暢”,更多的帶寬得到有效的利用,網(wǎng)絡(luò)擁塞得到改善。 從圖4(a)、(b)對(duì)比可以得出,新的協(xié)議產(chǎn)生的延遲時(shí)間明顯低于傳統(tǒng)TCP協(xié)議,經(jīng)計(jì)算傳統(tǒng)TCP協(xié)議產(chǎn)生的平均延遲時(shí)間為0.54672S,新協(xié)議產(chǎn)生的平均延遲為0.36259s,傳輸速度提升接近35%,達(dá)到了提升傳輸速率的效果。 圖3 網(wǎng)絡(luò)吞吐量對(duì)比圖 表1是經(jīng)過多次試驗(yàn)得到的網(wǎng)絡(luò)丟包率平均統(tǒng)計(jì)結(jié)果,可以看出,改進(jìn)后算法在丟包率方面較之原有擁塞控制算法有明顯的下降,傳輸?shù)姆€(wěn)定性有所提升。 表1 網(wǎng)絡(luò)丟包率表 圖4 網(wǎng)絡(luò)延遲對(duì)比圖 3結(jié)語(yǔ) 在充分研究Ad Hoc網(wǎng)絡(luò)傳輸特點(diǎn)之后,發(fā)現(xiàn)其中原有的TCP協(xié)議擁塞控制算法無法合理的在Ad Hoc網(wǎng)絡(luò)中使用。筆者在之前的基礎(chǔ)上添加了判斷丟包類型機(jī)制,使擁塞控制更加合理,避免了不必要的帶寬浪費(fèi)。試驗(yàn)證明,改進(jìn)后的算法明顯優(yōu)于之前的算法,丟包率更低,傳輸速率更快,達(dá)到了設(shè)計(jì)的最初目的。 [參考文獻(xiàn)] [1]鐘梅,李云,趙為糧,等.Ad Hoc網(wǎng)絡(luò)中支持QoS的MAC協(xié)議研究[J].重慶郵電學(xué)院學(xué)報(bào)(自然科學(xué)版),2005(4):464~467. [2]謝壽吾.移動(dòng)Ad Hoc網(wǎng)絡(luò)安全策略研究[D].武漢:武漢理工大學(xué),2007. [3]孫利榮.異步移動(dòng)Ad Hoc網(wǎng)絡(luò)信任模型研究[D].西安:西北工業(yè)大學(xué),2005. [4]馮彥君,張方舟,葉潤(rùn)國(guó),等.Ad Hoc網(wǎng)絡(luò)中一種基于端節(jié)點(diǎn)的啟發(fā)式TCP改進(jìn)方法[J].微電子學(xué)與計(jì)算機(jī),2005(1):1~5+9. [5] Stevens W R.TCP/IP詳解卷1:協(xié)議[M].范建華 等譯.北京:機(jī)械工業(yè)出版社,2000. [6]宋建華.Ad Hoc網(wǎng)絡(luò)路由的入侵檢測(cè)方法研究[D].武漢:華中科技大學(xué),2007. [7]鄭少仁.Ad Hoc網(wǎng)絡(luò)技術(shù)[M].北京:人民郵電出版社, 2005. [8]黃清艷.IEEE 802.11速率自適應(yīng)及分段機(jī)制研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2006. [9]魏飛.基于跳預(yù)約多址接入的認(rèn)知無線電MAC協(xié)議[J].電力系統(tǒng)通信,2007(6):31~34. [10]鐘紅艷.基于認(rèn)知無線電Ad Hoc網(wǎng)絡(luò)的多用戶接入及通信調(diào)度的研究[D].南京:南京郵電大學(xué),2014. [11]謝偉東.Ad Hoc網(wǎng)絡(luò)OLSR路由協(xié)議的改進(jìn)與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2010. [12]孫寶林,李臘元.多跳無線移動(dòng)Ad Hoc網(wǎng)絡(luò)路由協(xié)議的研究分析[J].小型微型計(jì)算機(jī)系統(tǒng),2004(10):1737~1741. [13]李理巖.Ad hoc無線網(wǎng)絡(luò)DSR路由協(xié)議研究[D].北京:北京郵電大學(xué),2011. [14]施榮華,羅棋峰.一種MANET中基于位置信息的ZRP路由協(xié)議[J].湖南大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(8):38~42. [15]謝偉東.Ad Hoc網(wǎng)絡(luò)OLSR路由協(xié)議的改進(jìn)與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2010. [16]劉強(qiáng),匡鏡明,王華,等.基于TORA的移動(dòng)Ad hoc網(wǎng)絡(luò)多徑路由協(xié)議M-TORA[J].北京理工大學(xué)學(xué)報(bào),2006(5):442~446. [17]張力,戴冠中.一種無線Ad hoc網(wǎng)絡(luò)中的可靠UDP協(xié)議[J].計(jì)算機(jī)仿真,2009(2):162~165. [18]Zhu Jing,Niu Zhisheng.A Reliable TCP-Aware Link Layer Retransmission for Wireless Networks[A].2000 International Conference on Communication Technology Proceedings Volume Ⅰ of Ⅱ[C].Chinese Institute of Electronics,Chinese Institute of Communications,2000. [19]劉梅.面向無線多跳網(wǎng)絡(luò)的TCP協(xié)議改進(jìn)研究綜述[J].計(jì)算機(jī)與現(xiàn)代化,2011(7):45~48. [20]李寧寧.Ad Hoc網(wǎng)絡(luò)傳輸控制機(jī)制研究[D].濟(jì)南:山東師范大學(xué),2006. [編輯]洪云飛 [收稿日期]2016-02-29 [基金項(xiàng)目]國(guó)家自然科學(xué)基金項(xiàng)目(61272147);湖北省教育廳項(xiàng)目(B2015446);長(zhǎng)江大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(20150040)。 [作者簡(jiǎn)介]余秋哲(1994-),男,碩士生,現(xiàn)主要從事信號(hào)處理、信號(hào)傳輸方面的研究工作。 [通信作者]謝凱(1975-),男,博士,教授,博士生導(dǎo)師,現(xiàn)主要從事油氣信息處理和三維地質(zhì)建模方面的教學(xué)與研究工作;E-mail:pami2010@163.com。 [中圖分類號(hào)]TN929.5 [文獻(xiàn)標(biāo)志碼]A [文章編號(hào)]1673-1409(2016)16-0057-05 [引著格式]余秋哲,謝凱,龔康奕,等.基于Ad Hoc網(wǎng)絡(luò)的數(shù)據(jù)快速傳輸方法[J].長(zhǎng)江大學(xué)學(xué)報(bào)(自科版),2016,13(16):57~61.