




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE20AdHoc網(wǎng)絡(luò)中的TCP性能優(yōu)化研究【摘要】傳輸層是整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的關(guān)鍵部分之一,對(duì)于利用網(wǎng)絡(luò)進(jìn)行通信的兩個(gè)主機(jī)來(lái)說(shuō),端到端的可靠通信,最終還是要由傳輸層協(xié)議來(lái)解決。隨著人們對(duì)擺脫有線網(wǎng)絡(luò)的束縛、隨時(shí)隨地進(jìn)行自由通信的渴望,近幾年來(lái)無(wú)線網(wǎng)絡(luò)通信得到了迅速的發(fā)展,AdHoc(無(wú)線自組織)網(wǎng)絡(luò)就是其中的典型代表。AdHoc是一種無(wú)需固定基礎(chǔ)設(shè)施支持,能夠快速、簡(jiǎn)單組網(wǎng)的無(wú)線網(wǎng)絡(luò),是下一代無(wú)線網(wǎng)絡(luò)的主要技術(shù)。AdHoc所涉及的學(xué)術(shù)與應(yīng)用問(wèn)題也成為了國(guó)內(nèi)外研究的熱點(diǎn)。由于AdHoc無(wú)線網(wǎng)絡(luò)特殊的鏈路特性,有線網(wǎng)絡(luò)中廣泛采用的傳統(tǒng)的TCP(TransmissionControlProtocol,傳輸控制協(xié)議)直接應(yīng)用到AdHoc網(wǎng)絡(luò)將會(huì)產(chǎn)生非常大的性能衰減。區(qū)分丟包原因就是其中的典型問(wèn)題之一:現(xiàn)有的TCP協(xié)議會(huì)把由于信道誤碼率高導(dǎo)致的數(shù)據(jù)包丟失、節(jié)點(diǎn)移動(dòng)引起的丟包等都?xì)w因于網(wǎng)絡(luò)擁塞,從而使得協(xié)議啟動(dòng)擁塞控制策略,導(dǎo)致TCP性能下降。針對(duì)這個(gè)問(wèn)題,本文結(jié)合國(guó)內(nèi)外的學(xué)術(shù)研究,對(duì)現(xiàn)有的TCP協(xié)議應(yīng)用到AdHoc無(wú)線網(wǎng)絡(luò)中出現(xiàn)的丟包問(wèn)題,提出了相應(yīng)的TCP性能優(yōu)化的方法?!娟P(guān)鍵詞】AdHoc網(wǎng)絡(luò);傳輸層協(xié)議;TCP;丟包;性能優(yōu)化一、引言隨著現(xiàn)代無(wú)線通信技術(shù)和因特網(wǎng)的發(fā)展與進(jìn)步,任何人在任何時(shí)間、地點(diǎn)都能夠獲取信息并與他人通信,已經(jīng)成為人們對(duì)現(xiàn)代信息網(wǎng)絡(luò)的切實(shí)要求。人們可以通過(guò)配有無(wú)線接口的便攜計(jì)算機(jī)或個(gè)人數(shù)字助理來(lái)實(shí)現(xiàn)移動(dòng)中的通信。目前的移動(dòng)通信大多需要有線基礎(chǔ)設(shè)施(如基站)的支持才能實(shí)現(xiàn)。為了能夠在沒(méi)有固定基站的地方進(jìn)行通信,一種新的網(wǎng)絡(luò)技術(shù)——AdHoc[1](無(wú)線自組織)網(wǎng)絡(luò)技術(shù)應(yīng)運(yùn)而生。AdHoc網(wǎng)絡(luò)不需要有線基礎(chǔ)設(shè)備的支持,通過(guò)移動(dòng)主機(jī)自由的組網(wǎng)實(shí)現(xiàn)通信,因此它被廣泛應(yīng)用在各種場(chǎng)合。同時(shí),隨著一個(gè)網(wǎng)絡(luò)的使用,對(duì)它的研究也接踵而至。目前,國(guó)內(nèi)外對(duì)AdHoc網(wǎng)絡(luò)的研究方向有很多,對(duì)其TCP(TransmissionControlProtocol,傳輸控制協(xié)議)性能的研究也較多,主要有對(duì)TCP協(xié)議變體的研究,如TCPVegas協(xié)議[2],TCPVegasE協(xié)議[2]和TCPVeno協(xié)議[3];算法的研究,如DWDB(DoubleWindowsDynamicBackoff)[4]來(lái)解決由MAC層的隱藏節(jié)點(diǎn)導(dǎo)致的TCP不穩(wěn)定;還有對(duì)AdHoc網(wǎng)絡(luò)網(wǎng)絡(luò)層的路由協(xié)議的探討等等。綜合國(guó)內(nèi)外的研究,不管是哪種策略,都不能全方面的改善AdHoc網(wǎng)絡(luò)TCP的性能,本文主要針對(duì)丟包方面來(lái)優(yōu)化TCP性能,即針對(duì)報(bào)文傳輸時(shí)丟包的原因,提供相應(yīng)的解決辦法。二、AdHoc網(wǎng)絡(luò)概述(一)AdHoc網(wǎng)絡(luò)的定義AdHoc在拉丁文中的本意是“為這個(gè)目的”,通常它都預(yù)示一個(gè)專門的、不可歸納的問(wèn)題或任務(wù)的解決方案,并不適用于其他用途[5]。所以AdHoc網(wǎng)絡(luò)通常也被稱為“無(wú)固定設(shè)施網(wǎng)”或“自組織網(wǎng)”,它是一組帶有無(wú)線收發(fā)裝置的移動(dòng)終端組成的一個(gè)多跳的臨時(shí)性自治系統(tǒng)[6]。移動(dòng)終端具有路由功能,可以通過(guò)無(wú)線連接構(gòu)成任意的網(wǎng)絡(luò)拓?fù)洌@種網(wǎng)絡(luò)可以獨(dú)立工作,也可以和Internet或蜂窩無(wú)線網(wǎng)絡(luò)連接。在AdHoc網(wǎng)絡(luò)中,每個(gè)移動(dòng)終端兼?zhèn)渎酚善骱椭鳈C(jī)兩種功能:作為主機(jī),終端需要運(yùn)行面向用戶的應(yīng)用程序;作為路由器,終端需要運(yùn)行相應(yīng)的路由協(xié)議,根據(jù)路由策略和路由表參與分組轉(zhuǎn)發(fā)和路由維護(hù)工作。(二)AdHoc網(wǎng)絡(luò)的特點(diǎn)AdHoc網(wǎng)絡(luò)具有以下特點(diǎn):1.自組織性Ad
hoc網(wǎng)絡(luò)沒(méi)有嚴(yán)格的控制中心,所有結(jié)點(diǎn)的地位平等,即是一個(gè)對(duì)等式網(wǎng)絡(luò)。網(wǎng)絡(luò)的布設(shè)或展開(kāi)無(wú)需依賴于任何預(yù)設(shè)的網(wǎng)絡(luò)設(shè)施。結(jié)點(diǎn)通過(guò)分層協(xié)議和分布式算法協(xié)調(diào)各自的行為,結(jié)點(diǎn)開(kāi)機(jī)后就可以快速、自動(dòng)地組成一個(gè)獨(dú)立的網(wǎng)絡(luò),任何結(jié)點(diǎn)的故障不會(huì)影響整個(gè)網(wǎng)絡(luò)的運(yùn)行,具有很強(qiáng)的抗毀性。AdHoc網(wǎng)絡(luò)相對(duì)常規(guī)通信網(wǎng)絡(luò)而言,最大的區(qū)別就是可以在任何時(shí)刻、任何地點(diǎn)不需要硬件基礎(chǔ)網(wǎng)絡(luò)設(shè)施的支持,快速構(gòu)建起一個(gè)移動(dòng)通信網(wǎng)絡(luò)。2.動(dòng)態(tài)變化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)在AdHoc網(wǎng)絡(luò)中,移動(dòng)主機(jī)可以在網(wǎng)中隨意移動(dòng)。主機(jī)的移動(dòng)會(huì)導(dǎo)致主機(jī)之間的鏈路增加或消失,主機(jī)之間的關(guān)系不斷發(fā)生變化。在自組網(wǎng)中,主機(jī)可能同時(shí)還是路由器,因此,移動(dòng)會(huì)使網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不斷發(fā)生變化,而且變化的方式和速度都是不可預(yù)測(cè)的。對(duì)于常規(guī)網(wǎng)絡(luò)而言,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)則相對(duì)較為穩(wěn)定。3.有限的無(wú)線通信帶寬在AdHoc網(wǎng)絡(luò)中沒(méi)有有線基礎(chǔ)設(shè)施的支持,因此,主機(jī)之間的通信均通過(guò)無(wú)線傳輸來(lái)完成。由于無(wú)線信道本身的物理特性,它提供的網(wǎng)絡(luò)帶寬相對(duì)有線信道要低得多。除此以外,考慮到競(jìng)爭(zhēng)共享無(wú)線信道產(chǎn)生的碰撞、信號(hào)衰減、噪音干擾等多種因素,移動(dòng)終端可得到的實(shí)際帶寬遠(yuǎn)遠(yuǎn)小于理論中的最大帶寬值。4.有限的主機(jī)能源在AdHoc網(wǎng)絡(luò)中,主機(jī)均是一些移動(dòng)設(shè)備,如PDA、便攜計(jì)算機(jī)或掌上電腦。由于主機(jī)可能處在不停的移動(dòng)狀態(tài)下,主機(jī)的能源主要由電池提供,因此AdHoc網(wǎng)絡(luò)有能源有限的特點(diǎn)。5.網(wǎng)絡(luò)的分布式特性在AdHoc網(wǎng)絡(luò)中沒(méi)有中心控制節(jié)點(diǎn),主機(jī)通過(guò)分布式協(xié)議互聯(lián)。一旦網(wǎng)絡(luò)的某個(gè)或某些節(jié)點(diǎn)發(fā)生故障,其余的節(jié)點(diǎn)仍然能夠正常工作。6.生存周期短AdHoc網(wǎng)絡(luò)主要用于臨時(shí)的通信需求,相對(duì)與有線網(wǎng)絡(luò),它的生存時(shí)間一般比較短。7.有限的物理安全移動(dòng)網(wǎng)絡(luò)通常比固定網(wǎng)絡(luò)更容易受到物理安全攻擊,易于遭受竊聽(tīng)、欺騙和拒絕服務(wù)等攻擊?,F(xiàn)有的鏈路安全技術(shù)有些已應(yīng)用于無(wú)線網(wǎng)絡(luò)中來(lái)減小安全攻擊。不過(guò)AdHoc網(wǎng)絡(luò)的分布式特性相對(duì)于集中式的網(wǎng)絡(luò)具有一定的抗毀性。(三)AdHoc網(wǎng)絡(luò)的應(yīng)用源于AdHoc網(wǎng)絡(luò)的優(yōu)點(diǎn),它應(yīng)用于多個(gè)領(lǐng)域,并且它的應(yīng)用領(lǐng)域越來(lái)越多??傮w來(lái)說(shuō),可以應(yīng)用于下列場(chǎng)合:1.沒(méi)有有線通信設(shè)施的地方,如沒(méi)有建立硬件通信設(shè)施或有線通信設(shè)施遭受破壞。2.需要分布式特性的網(wǎng)絡(luò)通信環(huán)境。3.現(xiàn)有有線通信設(shè)施不足,需要臨時(shí)快速建立一個(gè)通信網(wǎng)絡(luò)的環(huán)境。4.作為生存性較強(qiáng)的后備網(wǎng)絡(luò)。三、AdHoc網(wǎng)絡(luò)使用TCP的問(wèn)題TCP協(xié)議最初是針對(duì)固定有線網(wǎng)絡(luò)設(shè)計(jì)的,為發(fā)送方和接收方之間提供可靠、有序的傳輸服務(wù)。TCP協(xié)議依靠其錯(cuò)誤控制機(jī)制來(lái)保證連接的可靠性,它假設(shè)所有的網(wǎng)絡(luò)丟包是由擁塞造成。但AdHoc網(wǎng)絡(luò)有著明顯不同于固定有線網(wǎng)絡(luò)的特點(diǎn),如鏈路誤碼率高、網(wǎng)絡(luò)分割和路由變化頻繁等,這些都會(huì)導(dǎo)致網(wǎng)絡(luò)丟包。而TCP卻把一切丟包原因歸結(jié)為網(wǎng)絡(luò)擁塞,引發(fā)了不必要的擁塞控制,如減小窗口大小、加倍重傳計(jì)時(shí)器RTO時(shí)間等,這使得AdHoc網(wǎng)絡(luò)中TCP的性能急劇下降[7]。(一)TCP協(xié)議眾所周知,TCP是TCP/IP協(xié)議族中的傳輸層協(xié)議,是應(yīng)用最為廣泛的面向連接的可靠的傳輸層協(xié)議。TCP協(xié)議有三個(gè)控制機(jī)制:流量控制,擁塞控制和差錯(cuò)控制,核心是擁塞機(jī)制。由于網(wǎng)絡(luò)能夠提供的資源(包括緩存空間、鏈路帶寬容量和中間節(jié)點(diǎn)的處理能力)不足以滿足用戶的需求而產(chǎn)生擁塞,網(wǎng)絡(luò)擁塞會(huì)使得網(wǎng)絡(luò)可用性及吞吐量下降而響應(yīng)時(shí)間拉長(zhǎng)。目前對(duì)互聯(lián)網(wǎng)進(jìn)行的擁塞控制主要是依靠在源端執(zhí)行的基于窗口的TCP擁塞控制機(jī)制。1986年初,Jacobson開(kāi)發(fā)了現(xiàn)在在TCP應(yīng)用中的擁塞控制機(jī)制。運(yùn)行在端節(jié)點(diǎn)主機(jī)中的這些機(jī)制使得TCP連接在網(wǎng)絡(luò)發(fā)生擁塞時(shí)回退(backoff),也就是說(shuō)TCP源端會(huì)對(duì)網(wǎng)絡(luò)發(fā)出的擁塞指示(例如丟包、重復(fù)的ACK(AcknowledgeCharacter)等)作出響應(yīng)。1988年Jacobson針對(duì)TCP在控制網(wǎng)絡(luò)擁塞方面的不足,提出了“慢啟動(dòng)”(SlowStart)和“擁塞避免”(CongestionAvoidance)算法[8]。1990年出現(xiàn)的TCPReno版本增加了“快速重傳”FastRetransmit)、“快速恢復(fù)”(FastRecovery)算法[8],避免了網(wǎng)絡(luò)擁塞不嚴(yán)重時(shí)采用“慢啟動(dòng)”算法而造成過(guò)大地減小發(fā)送窗口尺寸的現(xiàn)象,這樣TCP的擁塞控制就由這4個(gè)核心部分組成,具體如下:慢啟動(dòng)階段:當(dāng)建立新的TCP連接時(shí),擁塞窗口(congestionwindow,cwnd)初始化為一個(gè)數(shù)據(jù)包大小。源端按cwnd大小發(fā)送數(shù)據(jù),每收到一個(gè)ACK確認(rèn),cwnd就增加一個(gè)數(shù)據(jù)包發(fā)送量,這樣cwnd就將隨著回路響應(yīng)時(shí)間(RoundTripTime,RTT)呈指數(shù)增長(zhǎng),源端向網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量將急劇增加。由于在發(fā)生擁塞時(shí),擁塞窗口會(huì)減半或降到1,因此慢啟動(dòng)確保了源端的發(fā)送速率最多是鏈路帶寬的兩倍。擁塞避免階段:如果TCP源端發(fā)現(xiàn)超時(shí)或收到3個(gè)相同ACK副本時(shí),即認(rèn)為網(wǎng)絡(luò)發(fā)生了擁塞(主要因?yàn)橛蓚鬏斠鸬臄?shù)據(jù)包損壞和丟失的概率很?。?lt;<1%))。此時(shí)就進(jìn)入擁塞避免階段。當(dāng)超時(shí)發(fā)生時(shí),首先設(shè)置為慢啟動(dòng)閾值(ssthresh)當(dāng)前擁塞窗口大小的一半,即ssthresh=cwnd/2;然后設(shè)置擁塞窗口(cwnd)為1,并執(zhí)行慢啟動(dòng)過(guò)程,直到cwnd=ssthresh,在這個(gè)階段,每收到一個(gè)ACK,cwnd增加1;當(dāng)cwnd≧ssthresh,TCP就執(zhí)行擁塞避免算法,在每一個(gè)RTT內(nèi)使cwnd增加1。此時(shí),cwnd在每次收到一個(gè)ACK時(shí)只增加1/cwnd個(gè)數(shù)據(jù)包,所以在擁塞避免階段,cwnd不是呈指數(shù)增長(zhǎng),而是線性增長(zhǎng)??焖僦貍骱涂焖倩謴?fù)階段:快速重傳是當(dāng)TCP源端收到三個(gè)相同的ACK副本時(shí),即認(rèn)為有數(shù)據(jù)包丟失,則源端重傳丟失的數(shù)據(jù)包,而不必等待重傳計(jì)時(shí)器RTO(RetransmissionTimeout)超時(shí)。同時(shí)將ssthresh設(shè)置為當(dāng)前cwnd值的一半,并且將cwnd減為原先的一半??焖倩謴?fù)是基于“管道”模型的“數(shù)據(jù)包守恒”的原則,即同一時(shí)刻在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包數(shù)量是恒定的,只有當(dāng)“舊”數(shù)據(jù)包離開(kāi)網(wǎng)絡(luò)后,才能發(fā)送“新”數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)。如果發(fā)送方收到一個(gè)重復(fù)的ACK,則認(rèn)為已經(jīng)有一個(gè)數(shù)據(jù)包離開(kāi)了網(wǎng)絡(luò),于是將擁塞窗口加1。如果“數(shù)據(jù)包守恒”原則能夠得到嚴(yán)格遵守,那么網(wǎng)絡(luò)中將很少會(huì)發(fā)生擁塞,本質(zhì)上,擁塞控制的目的就是找到違反該原則的地方并進(jìn)行修正。經(jīng)過(guò)十多年的發(fā)展,目前TCP協(xié)議主要包含有四個(gè)版本:TCPTahoe、TCPReno、TCPNewReno和TCPSACK。TCPTahoe是早期的TCP版本,它包括了3個(gè)最基本的擁塞控制算法:“慢啟動(dòng)”、“擁塞避免”和“快速重傳”。TCPReno在TCPTahoe基礎(chǔ)上增加了“快速恢復(fù)”算法。TCPNewReno對(duì)TCPReno中的“快速恢復(fù)”算法進(jìn)行了修正,它考慮了一個(gè)發(fā)送窗口內(nèi)多個(gè)數(shù)據(jù)包丟失的情況。在Reno版中,發(fā)送端收到一個(gè)新的ACK后就退出“快速恢復(fù)”階段,而在NewReno版中,只有當(dāng)所有的數(shù)據(jù)包都被確認(rèn)后才退出“快速恢復(fù)”階段。TCPSACK關(guān)注的也是一個(gè)窗口內(nèi)多個(gè)數(shù)據(jù)包丟失的情況,它避免了之前版本的TCP重傳一個(gè)窗口內(nèi)所有數(shù)據(jù)包的情況,包括那些已經(jīng)被接收端正確接收的數(shù)據(jù)包,而只是重傳那些被丟棄的數(shù)據(jù)包。(二)無(wú)線信道傳輸?shù)膯?wèn)題我們都知道,無(wú)線通信信道的傳輸條件差,存在著嚴(yán)重的信號(hào)衰落特性和多普勒頻移(Dopplerfrequencyshift)[9]。無(wú)線移動(dòng)信道的主要特征是多徑傳播,也就是說(shuō)接收端所收到的信號(hào)是通過(guò)不同的直射、反射和折射等路徑到達(dá)的,而這種特性在信道傳輸過(guò)程中引入了時(shí)延擴(kuò)展,時(shí)延擴(kuò)展使得接收信號(hào)中的一個(gè)符號(hào)的波形擴(kuò)展到其它符號(hào)中,造成其它符號(hào)的干擾,從而導(dǎo)致頻率選擇性衰落,也就是信號(hào)中不同的頻率分量衰落不一致,導(dǎo)致信號(hào)波形的畸變。所謂多普勒效應(yīng)就是當(dāng)發(fā)射源與接收體之間存在相對(duì)運(yùn)動(dòng)時(shí),接收體接收的發(fā)射源發(fā)射信息的頻率與發(fā)射源發(fā)射信息頻率不相同,這種現(xiàn)象稱為多普勒效應(yīng),而多普勒頻移指接收頻率與發(fā)射頻率之差[10]。多普勒頻移會(huì)使得信道產(chǎn)生快衰落和慢衰落。衰落改變了信號(hào)的電壓,使得傳輸過(guò)程中的信號(hào)遭到破壞,也就是產(chǎn)生誤碼,還有無(wú)線信道傳輸中的噪音,傳輸設(shè)備故障,閃電或交流電產(chǎn)生的脈沖都會(huì)導(dǎo)致信道誤碼。誤碼使得數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)差錯(cuò),數(shù)據(jù)包損壞甚至丟失。而TCP會(huì)把數(shù)據(jù)包丟失判定為網(wǎng)絡(luò)出現(xiàn)擁塞,進(jìn)而啟動(dòng)TCP擁塞控制機(jī)制。如果TCP發(fā)送方在RTO超時(shí)前沒(méi)有收到ACK報(bào)文,就會(huì)引發(fā)TCP的慢啟動(dòng),從而發(fā)送方的RTO時(shí)間加倍,并減小當(dāng)前擁塞窗口為1個(gè)分組。頻繁的錯(cuò)誤會(huì)使擁塞窗口一直保持在很小的范圍,從而導(dǎo)致了吞吐量的降低。(三)移動(dòng)性的問(wèn)題如前所述,AdHoc網(wǎng)絡(luò)具有動(dòng)態(tài)變化的網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)能夠以任意可能的速度和移動(dòng)模式移動(dòng),甚至可以隨時(shí)隨地的加入或者退出網(wǎng)絡(luò),這樣頻繁的移動(dòng)使得原有的路由無(wú)效,需要為發(fā)送方和接收方之間重新設(shè)計(jì)一條路由,如圖1所示。但是這個(gè)尋找新的有效路由可能花的時(shí)間很長(zhǎng),如果重新計(jì)算路由的時(shí)間超過(guò)了重傳定時(shí)器RTO的設(shè)定,那么發(fā)送方的TCP將會(huì)啟動(dòng)不必要的擁塞控制機(jī)制,這樣TCP性能將大大降低。圖1移動(dòng)性引起的路由重構(gòu)圖1移動(dòng)性引起的路由重構(gòu)移動(dòng)性帶來(lái)的另一個(gè)問(wèn)題是臨時(shí)的網(wǎng)絡(luò)分割,如圖2所示,結(jié)點(diǎn)s在時(shí)刻T建立到d的運(yùn)輸層連接,網(wǎng)絡(luò)在T+5s時(shí)出現(xiàn)分割,導(dǎo)致s和d處于不同的分區(qū),s到d的路由將不可達(dá)。網(wǎng)絡(luò)在T+20s,s和d的路由又可達(dá)。(四)多徑路由的問(wèn)題在AdHoc網(wǎng)絡(luò)中,為了提高節(jié)點(diǎn)之間通信的吞吐量,大都采用多徑路由技術(shù)。多徑路由的基本思想是在一次路由發(fā)現(xiàn)過(guò)程中,探測(cè)到多條從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的可能路徑,利用這些路徑發(fā)送數(shù)據(jù),減少路由發(fā)現(xiàn)延遲,提高網(wǎng)絡(luò)性能。根據(jù)研究表明[11],單徑路由的吞吐量會(huì)隨著節(jié)點(diǎn)跳數(shù)的增加而較快下降,而多徑路由的吞吐量不會(huì)隨著節(jié)點(diǎn)跳數(shù)增加下降,而會(huì)保持在一個(gè)相對(duì)穩(wěn)定的水平。但是發(fā)送方發(fā)送的數(shù)據(jù)包可能會(huì)沿不同的路由傳輸,不同路由之間的時(shí)延不同,導(dǎo)致到達(dá)接收方的數(shù)據(jù)包發(fā)生亂序,從而引發(fā)TCP的快速重發(fā)機(jī)制(源端接收到3個(gè)重復(fù)的ACK后),也就是說(shuō)多徑路由傳輸會(huì)使得接收的數(shù)據(jù)包發(fā)生亂序。另外,在Adhoc網(wǎng)絡(luò)中,當(dāng)新的路由計(jì)算好之后,中間節(jié)點(diǎn)有可能把緩存中存放的分組大量發(fā)送給接收方,這樣也會(huì)使得接收方接收到的數(shù)據(jù)包亂序,同樣的也降低了。(五)有限帶寬的問(wèn)題帶寬又叫頻寬,是指在固定的的時(shí)間可傳輸?shù)馁Y料數(shù)量,亦即在傳輸管道中可以傳遞數(shù)據(jù)的能力[12]。計(jì)算機(jī)網(wǎng)絡(luò)的帶寬是指網(wǎng)絡(luò)可通過(guò)的最高數(shù)據(jù)率,即每秒多少比特。無(wú)線網(wǎng)絡(luò)相對(duì)于有線網(wǎng)絡(luò)來(lái)說(shuō),存在的弱勢(shì)之一是帶寬。如前面AdHoc網(wǎng)絡(luò)的特點(diǎn)中描述的無(wú)線網(wǎng)絡(luò)的帶寬有限,結(jié)點(diǎn)可能只能使用到很少的帶寬,甚至沒(méi)有帶寬可以使用,導(dǎo)致發(fā)送端超時(shí)和信息丟失的時(shí)間增多,等待帶寬的時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)于重傳計(jì)時(shí)器的值,TCP會(huì)認(rèn)為網(wǎng)絡(luò)出現(xiàn)擁塞,啟動(dòng)擁塞控制機(jī)制,進(jìn)而降低了TCP性能。四、AdHoc網(wǎng)絡(luò)中TCP的性能優(yōu)化根據(jù)國(guó)內(nèi)外對(duì)AdHoc網(wǎng)絡(luò)中TCP協(xié)議的研究,可以知道TCP協(xié)議之所以在移動(dòng)AdHoc網(wǎng)絡(luò)中性能顯著下降,根本原因在于缺乏有效的錯(cuò)誤檢測(cè)和錯(cuò)誤恢復(fù)機(jī)制。因此,提高TCP協(xié)議的性能,其核心就是要使TCP具有區(qū)分網(wǎng)絡(luò)丟包原因的能力,并針對(duì)不同情況(擁塞、信道誤碼或網(wǎng)絡(luò)分割等)采用合理的策略。根據(jù)區(qū)分丟包原因所采取的手段,可分為兩大類:基于網(wǎng)絡(luò)反饋的改進(jìn)方案和“端到端”的改進(jìn)方案。(一)基于網(wǎng)絡(luò)反饋的方案這種類型的改進(jìn)方案通過(guò)網(wǎng)絡(luò)反饋來(lái)獲取網(wǎng)絡(luò)狀態(tài)信息,它要求對(duì)AdHoc網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)配置檢測(cè)機(jī)制,以使中間節(jié)點(diǎn)能及時(shí)反饋網(wǎng)絡(luò)狀態(tài)。典型代表有K.Chandran等提出的TCP-F(TCP-Feedback)協(xié)議[1],TCP-Bus[13],GavinHolland和NitinVaidya提出的TCP-ELFN(TCP-ExplicitLinkFailureNotification)協(xié)議[1],J.Liu提出的ATCP(TCPformobileAdHocnetworks)協(xié)議[1]和TCP-FSR協(xié)議[14]。1.TCP-F協(xié)議基于不能把路由失敗引起的報(bào)文段作為擁塞的標(biāo)志,提出了TCP-F協(xié)議,具體描述如下:(1)考慮單個(gè)的TCP連接,在發(fā)端和收端正在進(jìn)行報(bào)文段傳輸時(shí),設(shè)路由中的一中間結(jié)點(diǎn)在網(wǎng)絡(luò)層M處檢測(cè)到其報(bào)文段無(wú)法傳送到下一個(gè)結(jié)點(diǎn)(例如,由于移動(dòng)性,M的下一個(gè)結(jié)點(diǎn)走出了M的通信距離),M就立即發(fā)送路由失敗通告RFN(routefailurenotification)報(bào)文段到源端,同時(shí),M記錄下該事件。(2)每一個(gè)收到該RFN報(bào)文段的中間結(jié)點(diǎn)將這條路徑標(biāo)志為無(wú)效,以抑制輸入報(bào)文段選擇這條路徑;同時(shí),該中間結(jié)點(diǎn)如果知道支往信宿的替代路由,這條替代路由立即用于報(bào)文段傳輸,拋棄RFN報(bào)文段,否則,該中間結(jié)點(diǎn)只是向信源簡(jiǎn)單地傳播該RFN。(3)當(dāng)TCP發(fā)端接收到RFN報(bào)文段時(shí),TCP發(fā)端進(jìn)入到休眠狀態(tài)SNOOZE,并執(zhí)行如下的操作:①完全停止發(fā)送報(bào)文段(包括新的數(shù)據(jù)報(bào)文段和重傳的報(bào)文段);②標(biāo)志所有的現(xiàn)存定時(shí)器為無(wú)效;③凍結(jié)發(fā)送窗口;④凍結(jié)其它狀態(tài)變量的值,如重傳定時(shí)器和窗口大小;⑤啟動(dòng)一個(gè)路由失敗定時(shí)器,并設(shè)置初始值為最壞情況下的路由重構(gòu)時(shí)間(依賴于具體的路由協(xié)議);⑥發(fā)端將一真處于SNOOZE狀態(tài),直至收到“路由已重建通告”報(bào)文段RRN(routereestablishmentnotification)。(4)當(dāng)曾經(jīng)轉(zhuǎn)發(fā)過(guò)RFN報(bào)文段的中間結(jié)點(diǎn)學(xué)習(xí)到一條到信宿的路由(通過(guò)路同更新),該中間結(jié)點(diǎn)就發(fā)送一個(gè)RRN消息到信源(其標(biāo)識(shí)前面已保存)。該結(jié)點(diǎn)收到的其它結(jié)點(diǎn)關(guān)于該連接的RRN報(bào)文段將被拋棄;所有收到RRN報(bào)文段的結(jié)點(diǎn)只是簡(jiǎn)單地轉(zhuǎn)發(fā)處理。(5)當(dāng)信源收到RRN,TCP從SNOOZE狀態(tài)轉(zhuǎn)入到活動(dòng)狀態(tài),直接傳送當(dāng)前窗口中所有未確認(rèn)的數(shù)據(jù)報(bào)文段。因?yàn)榇蟛糠值膱?bào)文段在路由失敗的時(shí)間內(nèi)受到了影響,報(bào)文段的傳送不用等待收端的ACK確認(rèn)。也就是說(shuō)TCP-F協(xié)議中的TCP在SNOOZE狀態(tài)和ACTIVE狀態(tài)之間轉(zhuǎn)變,當(dāng)遇到路由中斷時(shí),由ACTIVE狀態(tài)轉(zhuǎn)變?yōu)镾NOOZE狀態(tài),保存變量,使得路由恢復(fù)時(shí)繼續(xù)中斷前的狀態(tài)工作,保證了AdHoc網(wǎng)絡(luò)的TCP性能。這是Adhoc網(wǎng)絡(luò)中TCP最早的改進(jìn)方法,但它把網(wǎng)絡(luò)看做是一個(gè)“黑箱”[15],不能真實(shí)地模擬Adhoc網(wǎng)絡(luò)中TCP的性能情況。2.TCP-Bus協(xié)議TCP-Bus是一個(gè)改進(jìn)型的TCP-F,它也有與TCP-F協(xié)議中RFN和RRN相對(duì)應(yīng)的控制報(bào)文:ERDN(explicitroutedisconnectionnotification)和ERSN(explicitroutesuccessfulnotification)。中間結(jié)點(diǎn)探測(cè)到路由中斷,就給源端發(fā)送ERDN消息;源端收到ERDN就停止TCP傳輸。類似地在路由重建后,中間結(jié)點(diǎn)給源端發(fā)送ERSN消息;源端收到ERSN后,恢復(fù)TCP傳輸。和TCP-F不同的是:TCP-Bus是在實(shí)際的一個(gè)路由協(xié)議ABR(associability-basedrouting)[15]實(shí)現(xiàn)的,而不是把通信子網(wǎng)看成一個(gè)黑箱;而且TCP-Bus考慮了ERDN和ERSN消息丟包的問(wèn)題,盡量減少了源端發(fā)生超時(shí)的可能性。3.TCP-ELFN協(xié)議TCP-ELFN改進(jìn)方案使用ELFN來(lái)協(xié)助其實(shí)行錯(cuò)誤檢測(cè),以此來(lái)區(qū)別對(duì)待網(wǎng)絡(luò)擁塞和鏈路錯(cuò)誤引起的丟包。TCP-ELFN是專為DSR路由協(xié)議設(shè)計(jì),ELFN報(bào)文的實(shí)現(xiàn)是通過(guò)修改DSR協(xié)議中的路由錯(cuò)誤報(bào)文,使之?dāng)y帶一個(gè)類似于“主機(jī)不可達(dá)”ICMP報(bào)文的載荷。當(dāng)某個(gè)中間節(jié)點(diǎn)偵測(cè)到鏈路或路由錯(cuò)誤時(shí),反饋一個(gè)ELFN報(bào)文給發(fā)送方,使發(fā)送方的TCP進(jìn)入“stand-by”(就緒)模式。在這種模式下,TCP停止發(fā)送數(shù)據(jù)包,并鎖定一切變量,如RTO重傳計(jì)時(shí)器和擁塞窗口(CWND)。在stand-by模式時(shí),TCP周期性地向接收方發(fā)送探測(cè)分組,若收到確認(rèn)報(bào)文,則表明已經(jīng)找到新的路由,此時(shí)發(fā)送方脫離就緒模式,恢復(fù)正常發(fā)送功能,并重新啟用在進(jìn)入就緒模式時(shí)凍結(jié)的各項(xiàng)變量。4.ATCP協(xié)議ATCP的設(shè)計(jì)目的是與標(biāo)準(zhǔn)TCP兼容,設(shè)計(jì)思想采用網(wǎng)絡(luò)層反饋技術(shù)(如ECN、ICMP等),使TCP發(fā)端正確地進(jìn)入保持(persist)、擁塞控制(congestion)和重發(fā)(retransmit)狀態(tài)。當(dāng)網(wǎng)絡(luò)分割時(shí),TCP發(fā)端進(jìn)入保持狀態(tài),不必發(fā)送、重發(fā)報(bào)文段;當(dāng)報(bào)文段由于傳輸差錯(cuò)丟失時(shí),通過(guò)復(fù)制ACK的計(jì)數(shù)和RTO判定,TCP發(fā)端進(jìn)入重發(fā)狀態(tài),避免擁塞控制的發(fā)生;當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),通過(guò)ECN機(jī)制通告,TCP發(fā)端進(jìn)入正常的擁塞控制狀態(tài)。ATCP的設(shè)計(jì)方法不是修改標(biāo)準(zhǔn)的TCP,而在TCP和網(wǎng)絡(luò)層之間插入一個(gè)ATCP子層,ATCP監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài),過(guò)濾和預(yù)處理ECN消息、ICMP的“信宿不可達(dá)”、“源抑制”消息、正常的TCP報(bào)文段頭等,使TCP發(fā)端進(jìn)入正確的狀態(tài),其設(shè)計(jì)思想采用網(wǎng)絡(luò)層反饋技術(shù)(如ECN、ICMP等),使TCP發(fā)端正確地進(jìn)入保持、擁塞控制和重發(fā)狀態(tài)。我們可以從ATCP的狀態(tài)機(jī)中(如圖3所示)看到ATCP有四個(gè)狀態(tài),即“NORMAL”、“CONGESTED”、“LOSS”、“DISCONNECTED”,其初始化狀態(tài)是NORMAL狀態(tài)。圖3ATCP的狀態(tài)轉(zhuǎn)移圖3ATCP的狀態(tài)轉(zhuǎn)移(1)傳輸差錯(cuò)的報(bào)文段丟失。當(dāng)TCP連接由于傳輸差錯(cuò)引起的報(bào)文段丟失,收端將收不到報(bào)文段或報(bào)文段失序到達(dá),TCP收端將產(chǎn)生復(fù)制的ACK;ATCP在NORMAL狀態(tài)時(shí),對(duì)收到的復(fù)制ACK進(jìn)行計(jì)數(shù),第三個(gè)ACK不送給TCP實(shí)體,而是發(fā)一個(gè)消息,使TCP發(fā)端進(jìn)入PERSIST(保持)狀態(tài);ATCP進(jìn)入LOSS狀態(tài)。在LOSS狀態(tài),ATCP從TCP的發(fā)送緩沖區(qū)取報(bào)文段發(fā),并維護(hù)各報(bào)文段的獨(dú)立定時(shí)器以控制重發(fā);當(dāng)一個(gè)新ACK(非復(fù)制)到達(dá)時(shí),ATCP轉(zhuǎn)發(fā)該ACK到TCP,使TCP脫離PERSIST狀態(tài),ATCP自己進(jìn)入NORMAL狀態(tài)。(2)擁塞情況。當(dāng)網(wǎng)絡(luò)層檢測(cè)到擁塞時(shí),在ACK報(bào)文段或數(shù)據(jù)報(bào)文段中設(shè)置ECN標(biāo)志字段。當(dāng)ATCP收到ECN消息時(shí),處于NORMAL的ATCP實(shí)體轉(zhuǎn)入CONGESTED狀態(tài),不進(jìn)行任何操作,忽略所有的復(fù)制ACK,忽略RTO溢出事件;換句話,ATCP不干涉TCP的正常擁塞控制操作。當(dāng)TCP發(fā)送一個(gè)新的報(bào)文段時(shí),ATCP退回到NORMAL狀態(tài)。(3)斷鏈情況。AdHoc網(wǎng)絡(luò)的結(jié)點(diǎn)移動(dòng)性導(dǎo)致路由重構(gòu)或網(wǎng)絡(luò)分割時(shí),假設(shè)網(wǎng)絡(luò)層可產(chǎn)生一個(gè)ICMP“信宿不可達(dá)”消息,當(dāng)ATCP收到這人消息時(shí),使TCP進(jìn)入PERSIST狀態(tài),ATCP進(jìn)入DISCONNETED狀態(tài)。在這種情況下,TCP周期地發(fā)送PROBE報(bào)文段直到收到TCP收端的PROBEACK,使TCP脫離PERSIST狀態(tài),ATCP退回NORMAL狀態(tài)。為保證TCP不繼續(xù)使用老的CWND值,ATCP在使TCP進(jìn)入PERSIST狀態(tài)時(shí),也使用TCP的CWND為1,目的是使TCP的CWND即時(shí)反映適應(yīng)新的路由。(4)其它的轉(zhuǎn)換情況。設(shè)ATCP處于LOSS狀態(tài),收到ECN或ICMP“源抑制”消息時(shí),使ATCP進(jìn)入CONGESTED狀態(tài),TCP脫離PERSIST狀態(tài);收到ICMP“信宿不可達(dá)”消息時(shí),使ATCP脫離“LOSS”狀態(tài)或“CONGESTED”狀態(tài),進(jìn)入“DISCONNETED”狀態(tài),TCP進(jìn)入PERSIST狀態(tài)。(5)控制消息丟失的影響。由于報(bào)文段丟失,發(fā)端收不到ECN、ICMP“信宿不可達(dá)”等控制消息,ATCP協(xié)議仍然能正常工作。因此,即使ATCP不過(guò)濾報(bào)文段,TCP可以正常地進(jìn)行。ATCP協(xié)議不僅僅可以處理路由中斷的問(wèn)題,也可以處理AdHoc網(wǎng)絡(luò)信道誤碼率導(dǎo)致的問(wèn)題,能夠正確區(qū)分丟包的原因。5.TCP-FSR協(xié)議如前所述的TCP-F協(xié)議,TCP-ELFN協(xié)議,TCP-Bus協(xié)議和ATCP協(xié)議都能夠解決發(fā)送端和接收端之間路由發(fā)生一處鏈路中斷的問(wèn)題,若兩個(gè)節(jié)點(diǎn)之間的路由有超過(guò)兩處鏈路中斷,這些協(xié)議就不太有效了。雖然這些協(xié)議可以避免啟動(dòng)擁塞控制,但由于在路由剛剛重建就會(huì)引起連續(xù)多個(gè)的重復(fù)確認(rèn),導(dǎo)致協(xié)議啟動(dòng)“快速重傳/快速恢復(fù)”,使得TCP性能改善的效果差強(qiáng)人意。在TCP-FSR中,TCP發(fā)送方可以處于“frozen”和“normal”兩種狀態(tài)。在“normal”狀態(tài)中,TCP發(fā)送方是由標(biāo)準(zhǔn)TCP控制的,它和標(biāo)準(zhǔn)TCP一樣傳輸數(shù)據(jù);“frozen”狀態(tài)中,TCP-FSR不再發(fā)送數(shù)據(jù)包并且冷凍重傳定時(shí)器和擁塞窗口。具體工作過(guò)程如下:(1)沒(méi)有路由中斷時(shí),TCP發(fā)送方處于“normal”狀態(tài),和標(biāo)準(zhǔn)TCP一樣地傳輸數(shù)據(jù);(2)當(dāng)一個(gè)節(jié)點(diǎn)探測(cè)到了由于下游節(jié)點(diǎn)的相對(duì)移動(dòng)造成了路由中斷后,TCP-FSR立即向TCP發(fā)送方發(fā)送攜帶著路由中斷前正在發(fā)送的數(shù)據(jù)包的序列號(hào)信息的RFN;(3)TCP發(fā)送方收到RFN,如果TCP發(fā)送方處于“normal”狀態(tài),則立即進(jìn)入“frozen”狀態(tài)并執(zhí)行以下操作:①停止發(fā)送任何數(shù)據(jù)包(包括新的和重傳的數(shù)據(jù)包);②冷凍所有的定時(shí)器和擁塞窗口大??;③保存一些TCP狀態(tài)變量的當(dāng)前值;④啟動(dòng)路由失敗定時(shí)器,它用來(lái)處理路由重建延時(shí)最壞的情況,其定時(shí)間隔和下層的路由協(xié)議相關(guān);如果TCP發(fā)送方已經(jīng)在“frozen”狀態(tài),則更新TCP狀態(tài)變量的值;(4)路由重建后,TCP-FSR給TCP接收方發(fā)送RRN;(5)TCP接收方收到RRN后,立即給TCP發(fā)送方發(fā)送最新的確認(rèn);(6)TCP發(fā)送方處于“frozen”狀態(tài)期間收到一個(gè)確認(rèn),表明路由已經(jīng)重建,則TCP解凍,從“frozen”進(jìn)入“normal”狀態(tài),返回1),從3)記錄的TCP狀態(tài)繼續(xù)正常的TCP傳輸,并取消路由失敗定時(shí)器;(7)TCP發(fā)送方處于“frozen”期間,路由失敗定時(shí)器超時(shí),則TCP強(qiáng)制解凍,從“frozen”狀態(tài)進(jìn)入“normal”狀態(tài),由標(biāo)準(zhǔn)TCP的擁塞控制機(jī)制來(lái)處理此次路由中斷,并返回1)。TCP-FSR技術(shù)在路由中斷時(shí)向TCP發(fā)送方發(fā)送RFN,在路由重建時(shí)向TCP接收方發(fā)送RRN,使得TCP不僅可以在路由重建后可以從路由中斷前的狀態(tài),而不用從“慢啟動(dòng)”階段恢復(fù)TCP傳輸,而且避免了像其它基于反饋技術(shù)一樣在路由剛重建就啟動(dòng)“快速重傳/快速恢復(fù)”。(二)基于“端”到“端”的改進(jìn)方案“端到端”的改進(jìn)方案維護(hù)了TCP協(xié)議本身的重要特性。它不需要中間節(jié)點(diǎn)的支持,通過(guò)在發(fā)送方和接收方兩端檢驗(yàn)參數(shù)來(lái)獲得網(wǎng)絡(luò)狀態(tài)信息。以下介紹兩種典型的“端到端”TCP改進(jìn)方案:TCPDOOR(TCPDetectionofOut-of-OrderandResponse)[15]和MMJI(Multi-MetricJointIdentification)[16]。1.TCPDOORTCPDOOR改進(jìn)方案的核心在于對(duì)亂序OOO(Out-of-Order)包的檢測(cè)和處理。所謂亂序是指發(fā)送方發(fā)送的數(shù)據(jù)包沒(méi)有按順序到達(dá)接收方,這使接收方產(chǎn)生重復(fù)的ACK(收到3個(gè)重復(fù)的ACK后)報(bào)文給發(fā)送方,導(dǎo)致發(fā)送方進(jìn)行不必要的快速重發(fā)。移動(dòng)AdHoc網(wǎng)絡(luò)中,由于節(jié)點(diǎn)的移動(dòng)性,路由變化頻繁發(fā)生,出現(xiàn)OOO事件的原因大都因路由變化引起。如圖4所示,節(jié)點(diǎn)S和D之間有一條經(jīng)過(guò)A和B的路由,TCP原先通過(guò)這條路由進(jìn)行傳輸(如分組1),節(jié)點(diǎn)C逐漸移動(dòng)到S和D的通訊范圍內(nèi),此時(shí)S和D之間重新計(jì)算了一條經(jīng)過(guò)節(jié)點(diǎn)C的路由,路由發(fā)生改變,接下來(lái)的分組2沿新路由傳輸。由于新路由很可能比舊的路由傳輸時(shí)延小,后發(fā)的分組2反而先于分組1到達(dá)節(jié)點(diǎn)D,即發(fā)生了OOO事件。AdHoc網(wǎng)絡(luò)頻繁的路由變化會(huì)使TCP陷入不斷快速重發(fā)的困境。TCPDOOR就是通過(guò)在TCP兩端對(duì)OOO包的檢測(cè)來(lái)判斷網(wǎng)絡(luò)中是否發(fā)生了路由變化,并采取相應(yīng)策略來(lái)提高TCP的性能。(1)如何檢測(cè)OOO包對(duì)于一個(gè)TCP連接,接收方收到的數(shù)據(jù)包和發(fā)送方收到的ACK報(bào)文都可能發(fā)生亂序,因此對(duì)OOO包的檢測(cè)在兩端都可以進(jìn)行。TCP的發(fā)送方可能會(huì)重發(fā)數(shù)據(jù)包,接收方雖然不會(huì)重發(fā)ACK,但卻可能產(chǎn)生重復(fù)的ACK。重發(fā)的數(shù)據(jù)包之間具有相同的序列號(hào),重復(fù)的ACK報(bào)文之間也是。因此,依靠序列號(hào)不能判斷是否發(fā)生了OOO事件。TCPDOOR在數(shù)據(jù)包的TCP頭標(biāo)中增加一個(gè)2字節(jié)的選項(xiàng),即TPSN(TCPPacketSequenceNumber),在ACK報(bào)文的TCP頭標(biāo)中增加一個(gè)1字節(jié)的選項(xiàng),即ADSN(ACKDuplocationSequenceNumber)。每發(fā)送一個(gè)數(shù)據(jù)包或ACK報(bào)文,TPSN或ADSN的值加1,TCPDOOR通過(guò)在TCP兩端檢測(cè)TPSN和ADSN來(lái)判斷是否發(fā)生了OOO事件。(2)對(duì)OOO事件的處理由發(fā)送方處理(若是接收方檢測(cè)到OOO時(shí),也會(huì)通過(guò)在ACK報(bào)文中設(shè)置OOO-bit通知發(fā)送方),此時(shí)有兩種處理方式:①暫時(shí)禁止TCP擁塞控制:因?yàn)镺OO很大可能是由路由變化而并非擁塞引起,當(dāng)發(fā)送方檢測(cè)到OOO時(shí),TCPDOOR在時(shí)間T1內(nèi)禁止TCP的擁塞控制機(jī)制,T1時(shí)間后TCP恢復(fù)為正常。圖4路由變化導(dǎo)致的Out圖4路由變化導(dǎo)致的Out-of-Order現(xiàn)象②擁塞避免時(shí)立即恢復(fù):當(dāng)發(fā)送方檢測(cè)到OOO時(shí),并不禁止TCP的擁塞控制,但是在時(shí)間T2內(nèi),一旦TCP進(jìn)入擁塞避免,則TCP立即恢復(fù)到擁塞避免前的狀態(tài)。2.MMJI多參數(shù)聯(lián)合檢驗(yàn)(MMJI)[15]方案也保持了端到端的特性,MMJI方案依靠對(duì)4個(gè)參數(shù)的聯(lián)合檢驗(yàn),提高了判別網(wǎng)絡(luò)狀況的準(zhǔn)確性,并且能夠更詳細(xì)的區(qū)分網(wǎng)絡(luò)狀況。MMJI方案把Adhoc網(wǎng)絡(luò)的狀態(tài)分為5種:Normal(正常)、Congestion(擁塞)、Channel_Err(信道誤碼)、Route_Change(路由變化)和Disconnection(分離)。在這些狀態(tài)下MMJI采取的策略行為和ATCP方案大同小異,不同之處在于MMJI方法還多了對(duì)Route_Change狀態(tài)的檢測(cè)和處理,以專門解決路由變化造成的數(shù)據(jù)包亂序問(wèn)題,而ATCP是在Loss狀態(tài)下統(tǒng)一解決信道誤碼和數(shù)據(jù)包亂序問(wèn)題。下面重點(diǎn)介紹MMJI方案是如何通過(guò)端到端的檢測(cè)機(jī)制來(lái)區(qū)分上述網(wǎng)絡(luò)狀態(tài)的。此方案所提議的4個(gè)檢驗(yàn)參數(shù)分別為IDD、STT、POR和PLR,如表1所示。其中IDD和STT聯(lián)合判斷是否發(fā)生網(wǎng)絡(luò)擁塞,POR和PLR則可以進(jìn)一步區(qū)分非擁塞情況中的各種狀態(tài)。 Ai是第i個(gè)包到達(dá)的時(shí)間,Si是 第i個(gè)包發(fā)送的時(shí)間,IDD即接IDD (Ai+1 -Ai)-(Si+1 -Si) 收方的包間延遲減去發(fā)送方的 包間延遲 Np(T)是在時(shí)間T內(nèi)收到的數(shù)據(jù)STT Np(T)/T 包數(shù)目 Npo(T)是在時(shí)間T內(nèi)收到的亂序POR Npo(T)/Np(T) 數(shù)據(jù)包數(shù)目 N1(T)是在時(shí)間T內(nèi)丟失的數(shù)據(jù)PLR N1(T)/Np(T) 包數(shù)目參數(shù)定義 解釋表1MMJI方案的4個(gè)提議參數(shù)(1)包間延遲差異(Inter-packetDelayDifference,IDD):網(wǎng)絡(luò)擁塞程度越高,IDD的值越大;但如果網(wǎng)絡(luò)中發(fā)生路由變化,數(shù)據(jù)包出現(xiàn)亂序時(shí),也會(huì)使IDD的值增大。(2)短時(shí)吞吐量(ShortTermThroughput,STT):網(wǎng)絡(luò)擁塞程度越高,STT的值越小;但如果網(wǎng)絡(luò)中發(fā)生了網(wǎng)絡(luò)分割或突發(fā)性信道誤碼,也會(huì)使STT的值減小,特別是當(dāng)發(fā)生了網(wǎng)絡(luò)分割時(shí),STT的值接近于0。(3)數(shù)據(jù)包亂序比率(PacketOut-of-orderdeliveryRatio,POR):網(wǎng)絡(luò)中路由發(fā)生變化時(shí),POR的值會(huì)增大。(4)數(shù)據(jù)包丟失率(PacketLossRati,PLR):網(wǎng)絡(luò)中發(fā)生突發(fā)性信道誤碼時(shí),PLR的值會(huì)增大。MMJI方案通過(guò)檢驗(yàn)上述4個(gè)參數(shù)獲取網(wǎng)絡(luò)狀態(tài)信息。如表2所示,檢驗(yàn)判別過(guò)程可分為CongestionCongestion (高,低) 任意 任意Route_Change非(高,低) 任意 高Channel_Err 非(高,低)高 任意Disconnection STT0 任意 任意正常 不屬于以上的其他情況IDD和STT POR PLR表2通過(guò)MMJI判斷網(wǎng)絡(luò)狀態(tài)的規(guī)則以下兩個(gè)步驟:①判斷是否擁塞:由于IDD的值對(duì)路由變化很敏感,而STT的值對(duì)網(wǎng)絡(luò)分割和信道誤碼敏感。因此,為提高判別準(zhǔn)確性,僅當(dāng)IDD值比較高,同時(shí)STT值比較低時(shí),才判定網(wǎng)絡(luò)處于Congestion狀態(tài),其他情況都屬于非擁塞狀態(tài)。②判別非擁塞時(shí)的各種狀態(tài):通過(guò)(1)判定網(wǎng)絡(luò)非擁塞后,若發(fā)現(xiàn)POR值比較高,則判定網(wǎng)絡(luò)處于Route_change狀態(tài);若發(fā)現(xiàn)PLR值比較高,則判定網(wǎng)絡(luò)處于Channel_Err狀態(tài);若發(fā)現(xiàn)STT值接近于0,即收不到數(shù)據(jù)包,則表明網(wǎng)絡(luò)處于Disconnection狀態(tài)。(三)各個(gè)方案的性能分析和比較通過(guò)以上的描述,引起網(wǎng)絡(luò)傳輸過(guò)程中丟包的原因主要分為三類:擁塞、信道誤碼、路由中斷?;旧蠌膬蓚€(gè)方面來(lái)解決AdHoc網(wǎng)絡(luò)中TCP性能下降的問(wèn)題,分別是基于網(wǎng)絡(luò)反饋和基于端到端的改進(jìn)方案。基于網(wǎng)絡(luò)反饋的改進(jìn)方案優(yōu)點(diǎn)在于能準(zhǔn)確地獲取網(wǎng)絡(luò)狀態(tài)信息,因?yàn)樾畔⒅苯觼?lái)自于中間節(jié)點(diǎn)的反饋。就如軍事應(yīng)用領(lǐng)域或者其他特殊領(lǐng)域,AdHoc網(wǎng)絡(luò)是作為邊緣網(wǎng)絡(luò)存在,網(wǎng)絡(luò)中的主機(jī)要面臨能源和帶寬受限等諸多問(wèn)題,此時(shí)更準(zhǔn)確的獲取網(wǎng)絡(luò)狀況,提高TCP協(xié)議的傳輸性能更為關(guān)鍵,這就需要對(duì)AdHoc網(wǎng)絡(luò)的TCP改進(jìn)采用基于網(wǎng)絡(luò)反饋的方案。但它需要對(duì)移動(dòng)AdHoc網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)配置檢測(cè)功能,從而增加了網(wǎng)絡(luò)開(kāi)銷,也加大了網(wǎng)絡(luò)的安全隱患。同時(shí),由于需要中間節(jié)點(diǎn)的支持,網(wǎng)絡(luò)反饋的方案也不利于Adhoc網(wǎng)絡(luò)和其他固定有線網(wǎng)絡(luò)之間的協(xié)作?!岸说蕉恕钡母倪M(jìn)方案不需要中間節(jié)點(diǎn)的支持,是通過(guò)在TCP連接的兩端進(jìn)行參數(shù)檢驗(yàn)來(lái)判斷網(wǎng)絡(luò)狀態(tài)。這類方案維持了TCP協(xié)議“端到端”的特性,能更好的和傳統(tǒng)TCP兼容。這種方案更能應(yīng)用于我們現(xiàn)實(shí)生活中,AdHoc網(wǎng)絡(luò)未來(lái)將廣泛應(yīng)用于個(gè)人通信領(lǐng)域,需要使一臺(tái)普通電腦(筆記本)能夠隨心所欲地加入到AdHoc網(wǎng)絡(luò)中,采用這種方案很適合這種場(chǎng)所。但由于它是通過(guò)參數(shù)檢驗(yàn)間接獲取網(wǎng)絡(luò)狀態(tài)信息,因此判斷準(zhǔn)確性不如網(wǎng)絡(luò)反饋的方案?;诰W(wǎng)絡(luò)反饋的方案如上所陳列有TCP-F,TCP-Bus,TCP-ELFN,ATCP和TCP-FSR,具體區(qū)別如下:TCP-F,TCP-Bus,TCP-ELFN和TCP-FSR都是通過(guò)報(bào)文消息來(lái)區(qū)分網(wǎng)絡(luò)擁塞和路由中斷而引起的丟包。TCP-F是AdHoc網(wǎng)絡(luò)中最早的TCP改進(jìn)方案,它把網(wǎng)絡(luò)看成一個(gè)“黑箱”,不能夠真實(shí)的模擬AdHoc網(wǎng)絡(luò)中的TCP性能。TCP-Bus是改進(jìn)型的TCP-F,它沒(méi)有把網(wǎng)絡(luò)看成一個(gè)“黑箱”,是基于一個(gè)實(shí)際的路由協(xié)議ABR實(shí)現(xiàn)的。TCP-ELFN和TCP-F,TCP-Bus的不同之處在于它們的路由恢復(fù)機(jī)制,TCP-F和TCP-Bus恢復(fù)路由的方法都是通過(guò)報(bào)文發(fā)送給發(fā)送方通知路由重建,而TCP-ELFN是通過(guò)發(fā)送分組來(lái)試探路由是否重建,而且TCP-ELFN是僅適用于DSR路由協(xié)議的,但是TCP-ELFN中“無(wú)效路由”的問(wèn)題還是會(huì)影響TCP性能,而且對(duì)發(fā)送探測(cè)包的間隔和選用何種數(shù)據(jù)包作為探測(cè)包都要進(jìn)一步研究。TCP-F,TCP-Bus和TCP-ELFN都是假設(shè)一條路由出現(xiàn)一處路由中斷,那如果一條路由出現(xiàn)多處路由中斷,這個(gè)時(shí)候就考慮用TCP-FSR協(xié)議了,這樣可以更有效地提高TCP性能。ATCP能夠區(qū)分網(wǎng)絡(luò)傳輸丟包的各種原因,包括網(wǎng)絡(luò)真正的出現(xiàn)擁塞,還是信道誤碼,還是路由中斷。相對(duì)于TCP-F,TCP-Bus,TCP-ELFN和TCP-FSR更全面,更能提高TCP性能。但是在該方案中假設(shè)源端總是可達(dá)的,這種假設(shè)在Adhoc網(wǎng)絡(luò)中很難滿足,如果該假設(shè)不能很好地滿足,那么發(fā)送端就收不到網(wǎng)絡(luò)控制報(bào)文協(xié)議的“目的地不可達(dá)”消息,這樣發(fā)送端會(huì)不斷地重傳分組而不是進(jìn)入預(yù)期的“persist”模式,而且ECN機(jī)制會(huì)引起安全問(wèn)題,這些不利因素都會(huì)影響到ATCP方案?;诙说蕉说姆桨阜譃門CPDOOR和MMJI兩種。TCPDOOR通過(guò)對(duì)OOO包的檢測(cè)來(lái)判斷網(wǎng)絡(luò)是處于擁塞還是發(fā)生了路由變化,但它不能處理信道誤碼和網(wǎng)絡(luò)分割等情況,而且其檢驗(yàn)準(zhǔn)確性不是很高。MMJI方案通過(guò)4個(gè)參數(shù)的聯(lián)合檢驗(yàn)在一定程度上提高了判別
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 競(jìng)業(yè)限制補(bǔ)償協(xié)議書(含競(jìng)業(yè)禁止解除條件)
- 高效能源利用型電動(dòng)汽車換電站場(chǎng)地租賃與運(yùn)營(yíng)管理合同
- 國(guó)際教育培訓(xùn)機(jī)構(gòu)外籍教師任聘合同
- 影視制作公司群眾演員合同管理與責(zé)任約定
- 《甜品店設(shè)計(jì)》課件
- 《塑料狗小乖》課件
- 財(cái)務(wù)報(bào)銷培訓(xùn)總結(jié)
- 高圍孕產(chǎn)婦培訓(xùn)體系構(gòu)建
- 《安全生產(chǎn)培訓(xùn)質(zhì)量控制標(biāo)準(zhǔn)化健康與安全課件》
- 醫(yī)學(xué)診斷證明書規(guī)范與管理體系
- 四川樂(lè)山歷年中考語(yǔ)文現(xiàn)代文閱讀真題37篇(截至2024年)
- 護(hù)理一病一品匯報(bào)
- 機(jī)器學(xué)習(xí)與非線性方程-深度研究
- 駱駝祥子-(一)-劇本
- 2023年小學(xué)科學(xué)實(shí)驗(yàn)知識(shí)競(jìng)賽試題庫(kù)含答案
- 滬科版數(shù)學(xué)八年級(jí)下冊(cè)第三次月考試卷含答案
- 淮安村干部考試試題
- 《用友渠道政策》課件
- 智聯(lián)招聘 職業(yè)測(cè)評(píng)題庫(kù)及答案大全
- 公安機(jī)關(guān)涉案財(cái)物管理
- 疲勞基礎(chǔ)知識(shí)介紹
評(píng)論
0/150
提交評(píng)論