改善無(wú)線自組織網(wǎng)絡(luò)TCP性能的研究

相關(guān)專(zhuān)題: 無(wú)線
胡文江 陳 宇


重慶郵電學(xué)院 重慶400065



  摘 要 本文分析了在ad hoc網(wǎng)絡(luò)中TCP協(xié)議的主要缺陷,并對(duì)目前提出的幾種改進(jìn)方案進(jìn)行了比較分析,最后給出了結(jié)論和研究方向。


  關(guān)鍵詞 Ad hoc網(wǎng)絡(luò) TCP 網(wǎng)絡(luò)擁塞 擁塞控制



  1 引言



  無(wú)線ad hoc網(wǎng)絡(luò)是一種具有高度動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。每一個(gè)無(wú)線ad hoc網(wǎng)絡(luò)由一組移動(dòng)節(jié)點(diǎn)組成,它們與傳統(tǒng)的蜂窩技術(shù)的根本區(qū)別在于移動(dòng)節(jié)點(diǎn)之間的通信是在沒(méi)有固定基礎(chǔ)設(shè)施(例如基站或路由器)支持的條件下進(jìn)行的。


  鑒于TCP/IP已經(jīng)成為事實(shí)上的Internet標(biāo)準(zhǔn)協(xié)議棧,作為Internet擴(kuò)展的無(wú)線ad hoc網(wǎng)絡(luò)也必將采用它。然而,由于無(wú)線ad hoc網(wǎng)中的分組丟失主要由無(wú)線差錯(cuò)和節(jié)點(diǎn)移動(dòng)性所致,而TCP將所有的分組丟失都?xì)w因于擁塞并啟動(dòng)擁塞控制和避免算法,所以若在無(wú)線ad hoc網(wǎng)中直接采用傳統(tǒng)的TCP協(xié)議將可能導(dǎo)致端到端的吞吐量無(wú)謂降低。因此,分析TCP的性能并研究如何使其適應(yīng)無(wú)線ad hoc網(wǎng)絡(luò)環(huán)境就變得尤為重要。



  2 ad hoc網(wǎng)絡(luò)中TCP協(xié)議的主要缺陷



  由于ad hoc網(wǎng)絡(luò)存在著B(niǎo)ER(Bit Error Rate)高、帶寬低、移動(dòng)性及能量有限等特點(diǎn),使得原本為固定主機(jī)、有線網(wǎng)絡(luò)設(shè)計(jì)的TCP協(xié)議在這種環(huán)境下出現(xiàn)了很多不適應(yīng)的問(wèn)題。


 。1)缺乏有效的錯(cuò)誤恢復(fù)機(jī)制。一旦檢測(cè)出丟包,TCP便觸發(fā)擁塞控制處理過(guò)程,首先重傳未被確認(rèn)的包,減小擁塞窗口從而降低發(fā)送速率;然后激活擁塞控制機(jī)制,包括超時(shí)時(shí)鐘指數(shù)回退、減小慢啟動(dòng)閾值;最后進(jìn)入擁塞避免階段以確保擁塞得以解除。如果丟包是由于ad hoc網(wǎng)絡(luò)的BER高或者節(jié)點(diǎn)移動(dòng)造成的路由故障時(shí)發(fā)生的而不是網(wǎng)絡(luò)的擁塞,那么TCP的這種錯(cuò)誤恢復(fù)機(jī)制會(huì)導(dǎo)致協(xié)議性能下降,包括吞吐量的下降和延遲的增加


 。2)ad hoc網(wǎng)絡(luò)中有限的傳輸帶寬。由于移動(dòng)節(jié)點(diǎn)可用帶寬往往較低,從而使得TCP源端的發(fā)送速率受到限制,使其用較小的擁塞窗口發(fā)送數(shù)據(jù)。在這種情況下,一旦有數(shù)據(jù)包丟失,源端就不能收到足夠多的重復(fù)確認(rèn)包從而觸發(fā)快速重傳,而只能通過(guò)超時(shí)機(jī)制恢復(fù),因而降低了可用帶寬的使用效率并且增加了延遲。


 。3)由于缺乏有效的錯(cuò)誤檢測(cè)和恢復(fù)機(jī)制,TCP在ad hoc環(huán)境下的能量使用效率也不高。例如,當(dāng)無(wú)線鏈路上發(fā)生了不頻繁的隨機(jī)短暫突發(fā)性錯(cuò)誤時(shí),TCP源端便降低其擁塞窗口,然后很保守地逐步增加擁塞窗口的大小。在擁塞窗口緩慢地膨脹過(guò)程中,無(wú)錯(cuò)(error-free)的傳輸機(jī)會(huì)便被浪費(fèi)了,并且增加了通訊時(shí)間。而當(dāng)錯(cuò)誤持續(xù)時(shí)間較長(zhǎng)(例如衰減信道、鏈路頻繁的突發(fā)性錯(cuò)誤、長(zhǎng)時(shí)間的網(wǎng)絡(luò)分割、網(wǎng)絡(luò)擁塞)時(shí),TCP源端盡管降低了其擁塞窗口大小,但仍然在嘗試著發(fā)送數(shù)據(jù),從而造成更多數(shù)據(jù)包的丟失。盡管吞吐量會(huì)有所增加,但是卻消耗了更多的能量,降低了能量使用的效率。而在ad hoc網(wǎng)絡(luò)中節(jié)點(diǎn)的能量關(guān)系到自身以及網(wǎng)絡(luò)的壽命,要做到盡可能地低的能量耗費(fèi)。



  3 主要的幾種改進(jìn)方案



  3.1 TCP-Feedback


  TCP-Feedback是一種基于反饋的機(jī)制,TCP發(fā)送端收到中間節(jié)點(diǎn)傳來(lái)的路由故障通知(Route Failure Notification,RFN),確定丟包是由路由故障而不是網(wǎng)絡(luò)擁塞造成的。當(dāng)收到RFN通知后,發(fā)送端認(rèn)為當(dāng)前到目的端沒(méi)有路由可用,于是進(jìn)入"snooze"狀態(tài),凍結(jié)所有和連接有關(guān)的變量如計(jì)時(shí)器和擁塞窗口的大小并不再發(fā)送任何數(shù)據(jù)。如果收到路由協(xié)議攜帶的路由重建通知(Route Re-establishment Notification,RRN)后,發(fā)送端認(rèn)為到目的端已有可用路由,于是離開(kāi)“snooze”狀態(tài),恢復(fù)中斷前所有和連接有關(guān)的變量并開(kāi)始發(fā)送數(shù)據(jù)。同時(shí),設(shè)置了路由故障計(jì)時(shí)器防止發(fā)送端無(wú)限制地等待RRN通知。發(fā)送端一旦收到RFN通知,路由故障計(jì)時(shí)器就被觸發(fā)。如果路由故障計(jì)時(shí)器到期仍未收到RRN,發(fā)送端就認(rèn)為是由于網(wǎng)絡(luò)擁塞造成的丟包,啟動(dòng)TCP擁塞控制機(jī)制。


  在路由重建延遲較大的條件下,由于涉及到重傳的次數(shù)較多,這種方案較之標(biāo)準(zhǔn)的TCP性能還是有所增強(qiáng)。但是用何種路由協(xié)議攜帶RFN和RRN信息可使TCP獲得最佳性能,仍有待進(jìn)一步的研究。


  3.2 TCP-ELFN


  在TCP-ELFN中,TCP同樣要與路由協(xié)議交互,以獲得路由故障的消息并采取相應(yīng)的策略。一旦有中間節(jié)點(diǎn)檢查到從發(fā)端到收端的路由故障后,該中間節(jié)點(diǎn)就向源節(jié)點(diǎn)發(fā)送顯式鏈路故障通知(Explicit Link Failure Notification,ELFN),ELFN消息包括發(fā)送端和接收端的主機(jī)地址、端口以及TCP序列號(hào),這樣TCP就能區(qū)分丟包是由于路由故障(節(jié)點(diǎn)移動(dòng)造成的)還是由于網(wǎng)絡(luò)擁塞造成的。不過(guò)動(dòng)態(tài)資源路由協(xié)議(DSR)中的路由故障消息需要修改成ELFN。ELFN類(lèi)似于網(wǎng)絡(luò)控制報(bào)文協(xié)議ICMP中的“主機(jī)不可到達(dá)”消息。


  當(dāng)發(fā)送端收到ELFN后,將TCP置為“stand-by”模式。在“stand-by”模式中,發(fā)送端向目的地定時(shí)發(fā)送探測(cè)包用以檢查路由是否恢復(fù)并屏蔽TCP的計(jì)時(shí)器。收到ACK后,發(fā)端認(rèn)為到收端已經(jīng)有可用路由,于是TCP離開(kāi)“stand-by”模式,恢復(fù)TCP的計(jì)時(shí)器的狀態(tài),同時(shí)以中斷前的速率發(fā)送數(shù)據(jù)包。


  在Ad hoc網(wǎng)絡(luò)中節(jié)點(diǎn)的頻繁移動(dòng)導(dǎo)致DSR路由協(xié)議存在“無(wú)效路由”問(wèn)題。比如,有節(jié)點(diǎn)向源端響應(yīng)了“路由請(qǐng)求”消息,但是由于返回的路由涉及到的節(jié)點(diǎn)移走或者其中有鏈路中斷,導(dǎo)致返回路由無(wú)效。發(fā)端如果不能迅速檢查到返回路由已經(jīng)失效,TCP由于接收不到ACK將進(jìn)入擁塞退避狀態(tài)。可見(jiàn),“無(wú)效路由”問(wèn)題會(huì)嚴(yán)重影響TCP的性能。對(duì)于TCP-ELFN中修改后的TCP性能,“無(wú)效路由”問(wèn)題同樣存在較大影響。另外,發(fā)送探測(cè)包的間隔和選用何種數(shù)據(jù)包作為探測(cè)包都值得進(jìn)一步的研究。


  這種方案比起標(biāo)準(zhǔn)的TCP性能還是有所增強(qiáng),但是還需要進(jìn)一步的研究,如選用其他的路由協(xié)議對(duì)TCP性能的提高是否會(huì)更好以及對(duì)于發(fā)送探測(cè)包的間隔應(yīng)該會(huì)有更多、更合適的值。


  3.3 固定RTO


  這種方案的思想就是把任何連接中斷都看作是瞬時(shí)的,這樣出現(xiàn)路由故障可以迅速恢復(fù),不用激起TCP指數(shù)退避機(jī)制以免造成不必要的長(zhǎng)時(shí)間的恢復(fù)延遲。當(dāng)連續(xù)兩次重傳都超時(shí),源端認(rèn)為路由出現(xiàn)故障,屏蔽TCP指數(shù)退避機(jī)制,同時(shí)以固定間隔而不是以指數(shù)逐漸增加的間隔重傳數(shù)據(jù)包。


  如果丟失的分組在第二次重傳計(jì)時(shí)器(RTO)到期后仍未得到確認(rèn),發(fā)送端將RTO的值加倍,然后不斷重傳丟失的分組,但RTO的值不再變化將保持恒定直到路由恢復(fù),重傳的數(shù)據(jù)包得到確認(rèn)。


  研究表明,固定RTO用于按需路由算法可以使TCP性能獲得顯著的提高。盡管如此,固定RTO僅限于無(wú)線網(wǎng)絡(luò),對(duì)于將來(lái)和固定網(wǎng)絡(luò)的融合不是很有利。


  3.4 ATCP


  前面的三種方案都需要對(duì)TCP協(xié)議進(jìn)行修改,但ATCP可以避免這樣的變動(dòng)。這種方案只是在網(wǎng)絡(luò)層和傳輸層之間插入一個(gè)中間層ATCP(Ad hoc TCP),ATCP負(fù)責(zé)監(jiān)視網(wǎng)絡(luò)狀態(tài),通過(guò)網(wǎng)絡(luò)控制報(bào)文協(xié)議的“目的地不可達(dá)”消息或ECN機(jī)制的顯式擁塞通知(Explicit Congestion Notification,ECN)分別判斷網(wǎng)絡(luò)分割或網(wǎng)絡(luò)擁塞。當(dāng)發(fā)送端收到三個(gè)重復(fù)的ACK,ATCP認(rèn)為信道有損耗,將TCP置為“persist”模式并迅速?gòu)腡CP緩存中重傳丟失的分組。在收到下一個(gè)ACK后,TCP才能回復(fù)到正常狀態(tài);如果源端收到ICMP的“目的地不可達(dá)”消息,ATCP認(rèn)為出現(xiàn)網(wǎng)絡(luò)分割,同樣將TCP置為“persist”模式,但是此時(shí)并不重傳分組,直到鏈路重建后才將TCP恢復(fù)到正常狀態(tài);當(dāng)源端收到表示網(wǎng)絡(luò)擁塞的ECN,ATCP僅僅把ECN上傳給TCP,由TCP激起擁塞控制機(jī)制。


  ATCP同樣可以提高TCP的性能。但是在該方案中假設(shè)源端總是可達(dá)的,這種假設(shè)在Ad hoc網(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方案。


  3.5 TCP DOOR


  這個(gè)方案與前四個(gè)最大的不同在于不需要中間節(jié)點(diǎn)的參與。它的思想是在Ad hoc網(wǎng)絡(luò),節(jié)點(diǎn)的頻繁移動(dòng)可能導(dǎo)致收端收到無(wú)序的數(shù)據(jù)分組,無(wú)序的分組可能足以表明在網(wǎng)絡(luò)內(nèi)鏈路出現(xiàn)過(guò)故障。不僅僅是數(shù)據(jù)分組,發(fā)端同樣也可能收到無(wú)序的ACK。TCP DOOR對(duì)于收發(fā)雙方都能準(zhǔn)確地檢查到無(wú)序分組的交付,但是需要在數(shù)據(jù)分組和ACK中增加額外的排序信息。在TCP“選項(xiàng)”字段中,用一個(gè)字節(jié)選項(xiàng)表示ACK的排序信息,兩個(gè)字節(jié)選項(xiàng)表示數(shù)據(jù)分組的排序信息。發(fā)送端每發(fā)送一個(gè)數(shù)據(jù)分組(不管是否是重傳的分組),就對(duì)其排序信息中的流序列號(hào)增加一次,而標(biāo)準(zhǔn)的TCP不會(huì)增加重傳數(shù)據(jù)分組的流序列號(hào)。這樣,收端就可以準(zhǔn)確地檢查無(wú)序分組的交付并通過(guò)ACK中的特定比特告知發(fā)送端。每個(gè)重傳的ACK,收端都會(huì)增加其排序信息中的流序列號(hào),以便發(fā)送端了解自身發(fā)送分組(不管分組是否重傳)的確切順序。因此,這種方案為源端提供了可靠的雙向數(shù)據(jù)流順序的信息,使得TCP發(fā)送端可以采取相應(yīng)的策略。


  檢查到無(wú)序分組的交付,TCP發(fā)送端有兩種反應(yīng)機(jī)制:1.臨時(shí)屏蔽擁塞控制(temporarily disabling congestion),2.擁塞避免中的立即恢復(fù)(instant recovery during congestion avoidance)。前者認(rèn)為無(wú)序分組是由于路由改變而不是網(wǎng)絡(luò)擁塞造成的,不必激起TCP擁塞控制機(jī)制。因此當(dāng)檢查到無(wú)序分組后,發(fā)送端在一段時(shí)間內(nèi)(T1)保持變量如RTO,擁塞窗口大。╟wnd)不變。對(duì)于后者,當(dāng)檢查到無(wú)序分組后,TCP發(fā)送端檢查在前一段時(shí)間內(nèi)(T2)是否激起過(guò)擁塞控制機(jī)制,如果是,發(fā)端將立即恢復(fù)到激起擁塞控制之前的狀態(tài),因?yàn)楹笳哒J(rèn)為激起擁塞控制是由于鏈路臨時(shí)中斷而不是網(wǎng)絡(luò)擁塞造成的。


  總地來(lái)說(shuō),TCP DOOR能顯著提供TCP的性能。同時(shí)響應(yīng)機(jī)制中的擁塞避免中的立即恢復(fù)的性能要好于臨時(shí)屏蔽擁塞控制,而且僅有發(fā)送端檢測(cè)機(jī)制(即檢測(cè)ACK的無(wú)序)就足夠了。


  在TCP DOOR方案中,假定無(wú)序分組是由于路由混亂造成的。這種假定仍有待進(jìn)一步探究。



  4 結(jié)論



  上述介紹的幾種方案都是認(rèn)為丟包是由其他原因而不是由網(wǎng)絡(luò)擁塞造成的,因此盡量避免TCP指數(shù)退避機(jī)制以提高TCP的性能。這幾種方案各有優(yōu)缺點(diǎn),在一定程度上改善了Ad hoc網(wǎng)絡(luò)中TCP的性能,但都存在一定的局限性。今后對(duì)TCP性能改善的研究還需要與路徑不對(duì)稱(chēng)問(wèn)題、節(jié)點(diǎn)的能源管理、與固定網(wǎng)絡(luò)的融合以及安全性等問(wèn)題結(jié)合考慮。


  
----《中國(guó)數(shù)據(jù)通信》

   

掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書(shū)
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書(shū)-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書(shū)
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書(shū)》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書(shū)
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書(shū)
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息