張超
(咸陽職業(yè)技術(shù)學(xué)院,陜西 咸陽 712000)
隨著我國互聯(lián)網(wǎng)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,無線通信網(wǎng)絡(luò)取得了廣泛的應(yīng)用。TCP協(xié)議作為無線網(wǎng)絡(luò)通信中的重要組成部分,對(duì)其性能進(jìn)行研究具有非常重要的理論意義。TCP通常采用窗口、序列號(hào)、重傳定時(shí)器和確認(rèn)這四種技術(shù)來實(shí)現(xiàn)流量控制、差錯(cuò)控制和擁塞控制這三個(gè)功能。標(biāo)準(zhǔn)TCP在有線網(wǎng)絡(luò)中能很好地工作,具有很好的工作性能,但是在蜂窩網(wǎng)絡(luò)、Ad hoc網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)這三種無線網(wǎng)絡(luò)中的性能很差。為了能在無線網(wǎng)絡(luò)中有效地使用TCP,就必須為標(biāo)準(zhǔn)TCP增加一些額外的技術(shù)。本文主要對(duì)蜂窩網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)中的TCP性能進(jìn)行了相應(yīng)的闡述。
所謂TCP(Transm ission Control Protocol)是對(duì)傳輸控制協(xié)議的簡稱。它是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議。它位于OSI參考模型中的網(wǎng)絡(luò)層協(xié)議之上,用來完成傳輸層所指定的功能。OSI參考模型如圖1所示。
圖1 OSI參考模型
TCP通過對(duì)用戶數(shù)據(jù)進(jìn)行透明分段和重組,來完成流量控制和擁塞控制等功能。其中,擁塞控制是指發(fā)送方可以根據(jù)網(wǎng)絡(luò)的擁塞狀況自適應(yīng)調(diào)整數(shù)據(jù)發(fā)送的速率,來緩解網(wǎng)絡(luò)的擁塞狀況。流量控制是指發(fā)送方必須保證發(fā)送數(shù)據(jù)速率不超過接收方處理能力,避免因接受方處理能力有限造成的丟包。
由于無線網(wǎng)絡(luò)中的傳輸錯(cuò)誤、鏈路/路由中斷等因素的影響,使得TCP經(jīng)常會(huì)在網(wǎng)絡(luò)沒有擁塞的情況下啟動(dòng)擁塞控制,從而大大降低了TCP的性能。造成無線網(wǎng)絡(luò)TCP性能下降的因素主要包括以下幾個(gè)方面:
(1)高比特誤碼率(BER)。由于無線網(wǎng)絡(luò)的鏈路是有損介質(zhì),它具有很高的比特誤碼率,從而導(dǎo)致數(shù)據(jù)包的損壞甚至出現(xiàn)丟包現(xiàn)象,因此發(fā)送端出現(xiàn)超時(shí)和重傳數(shù)據(jù)包,這時(shí)并會(huì)起動(dòng)相應(yīng)的擁塞控制。如果重復(fù)性地發(fā)生這種錯(cuò)誤,那么將會(huì)大大降低TCP的性能,高比特誤碼率對(duì)蜂窩網(wǎng)絡(luò)、Ad hoc網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)都有很大的影響。
(2)錯(cuò)誤的丟包探測機(jī)制。由于標(biāo)準(zhǔn)TCP不能區(qū)分無線網(wǎng)絡(luò)存在的不同類型的錯(cuò)誤,因此它會(huì)把任何丟包都看作是擁塞丟包并啟動(dòng)相應(yīng)的擁塞控制,而不管無線網(wǎng)絡(luò)是否處于擁塞狀態(tài),這樣就使得無線網(wǎng)絡(luò)中的TCP性能大大下降,該因素會(huì)對(duì)蜂窩網(wǎng)絡(luò)、Ad hoc網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)都有很大的影響。
(3)無線鏈路帶寬。由于無線鏈路的帶寬有限,結(jié)點(diǎn)只能使用很少的帶寬,這樣將會(huì)導(dǎo)致發(fā)送端超時(shí)和信息丟失的時(shí)間增多等現(xiàn)象的產(chǎn)生,該因素將對(duì)蜂窩網(wǎng)絡(luò)和Ad hoc網(wǎng)絡(luò)產(chǎn)生影響,對(duì)衛(wèi)星網(wǎng)絡(luò)沒有影響。
(4)鏈路中斷。在蜂窩網(wǎng)絡(luò)中,由于移動(dòng)結(jié)點(diǎn)需要在蜂窩網(wǎng)絡(luò)切換中有一個(gè)信號(hào)消失階段。在信號(hào)消失這個(gè)階段,移動(dòng)結(jié)點(diǎn)由于不能收到發(fā)送端的任何數(shù)據(jù),從而造成發(fā)送端數(shù)據(jù)超時(shí),此時(shí)TCP發(fā)送端會(huì)重傳這些數(shù)據(jù)器啟動(dòng)相應(yīng)的擁塞控制,這樣就導(dǎo)致了TCP性能的下降。
為了減輕上述因素對(duì)無線網(wǎng)絡(luò)中TCP性能的影響,需要引入一些額外機(jī)制,主要是丟包探測機(jī)制、顯示通知和擁塞檢測。
(1)丟包探測機(jī)制。丟包探測機(jī)制的原理是根據(jù)探測丟包的本質(zhì)原因來尋找和確定合適的錯(cuò)誤恢復(fù)策略,針對(duì)具體情況進(jìn)行具體分析,采用該機(jī)制可以達(dá)到降低比特誤碼和鏈路中斷對(duì)TCP的影響。
(2)顯示通知。把丟包的原因或網(wǎng)絡(luò)狀況實(shí)時(shí)的顯示通知給發(fā)送端,進(jìn)而可以使得發(fā)送端采取相應(yīng)的措施。顯示通知這種機(jī)制可以有效降低比特誤碼、鏈路中斷和路由中斷對(duì)無線網(wǎng)絡(luò)中TCP性能的影響。
(3)擁塞檢測。在連接的正向和反向兩個(gè)方向上都可以進(jìn)行擁塞檢測,該機(jī)制可以有效解決不對(duì)稱鏈路超時(shí)對(duì)無線網(wǎng)絡(luò)中TCP性能的影響。
蜂窩網(wǎng)絡(luò)是目前研究TCP性能改進(jìn)應(yīng)用最為廣泛的無線網(wǎng)絡(luò)模型,關(guān)于這方面的研究比較多。研究的中心主要集中于屏蔽發(fā)送端和發(fā)送端覺察這兩個(gè)方面進(jìn)行改進(jìn),改進(jìn)的方法主要有以下幾類。
I-TCP方法是該方案的一種方法,I-TCP方法通過將移動(dòng)主機(jī)(MH)和固定主機(jī)(FH)間的TCP連接在基站處分成兩段,然而在有線和無線鏈路段分別采取不同的策略來改進(jìn)TCP性能。其中,有線鏈路段使用標(biāo)準(zhǔn)TCP,無線鏈路段則采用適于無線環(huán)境的改進(jìn)協(xié)議。它對(duì)網(wǎng)絡(luò)發(fā)送端是屏蔽丟包的,基站保留了數(shù)據(jù)包的“硬”狀態(tài),然而該方案破壞了TCP連接的端對(duì)端語義,此外還需要修改移動(dòng)主機(jī)和中間結(jié)點(diǎn)的TCP。
該方案常用的方法主要由不完全應(yīng)答法ACKP、Snoop法和WTCP法等。TCP緩存方案和分段連接方案類似,不同的是TCP緩存方案在代理中保留數(shù)據(jù)的“軟”狀態(tài),軟狀態(tài)的丟失雖然會(huì)影響TCP的性能,但是不會(huì)改變TCP的端對(duì)端語義。
該方案由鏈路層或網(wǎng)絡(luò)層將鏈路層環(huán)境狀態(tài)反饋到TCP層,TCP通過采取相應(yīng)的手段和方法來處理網(wǎng)絡(luò)丟包。按照反饋方式和TCP處理措施的不同,該方案又分為重傳機(jī)制改進(jìn)、顯示狀態(tài)通知法和超時(shí)凍結(jié)機(jī)制三類。其中,延遲重復(fù)確認(rèn)法是重傳機(jī)制改進(jìn)方案常用的方法。延遲重復(fù)確認(rèn)法通過采用對(duì)重復(fù)確認(rèn)進(jìn)行延遲發(fā)送的機(jī)制,從而使發(fā)送端重傳丟包之前無線鏈路層能進(jìn)行局部重傳。壞狀態(tài)通知EBSN是顯示狀態(tài)通知法中比較常用的一種方法,M-TCP法是超時(shí)凍結(jié)機(jī)制中比較常用的方法。當(dāng)TCP接收端將接收窗口大小減為零時(shí),TCP的發(fā)送端會(huì)進(jìn)入堅(jiān)持模式,它凍結(jié)了所有數(shù)據(jù)包的重傳定時(shí)器,并且不減小擁塞窗口。蜂窩網(wǎng)絡(luò)中主要TCP改進(jìn)方法性能比較如表1所示。
衛(wèi)星網(wǎng)絡(luò)除了具有無線鏈路固有的高誤碼率特點(diǎn)以外,還具有帶寬時(shí)延-乘積大和上/下行帶寬不對(duì)稱等特點(diǎn)。以上這些特點(diǎn)都會(huì)影響衛(wèi)星網(wǎng)絡(luò)中TCP的性能,例如一般的TCP連接的RTT時(shí)間通常僅為幾十毫秒,然而在衛(wèi)星網(wǎng)絡(luò)中的TCP連接的RTT通常至少是500毫秒,大大降低了衛(wèi)星網(wǎng)絡(luò)中TCP的性能。我們通常采用TCP層技術(shù)和應(yīng)用層技術(shù)來改善衛(wèi)星網(wǎng)絡(luò)中的TCP性能。
表1 蜂窩網(wǎng)絡(luò)中主要TCP改進(jìn)方法性能比較
我們?yōu)榱擞行У睦眯l(wèi)星鏈路的高帶寬,需要在TCP層引入一些特殊的技術(shù)。(1)首先使用T/TCP來建立TCP連接。通常在一對(duì)主機(jī)建立了一次TCP連接之后,如果再次建立TCP連接是就可以省去三次握手階段,這樣就大大提高了請(qǐng)求/響應(yīng)的性能。(2)改變慢啟動(dòng)的策略。該策略的改變主要采用更大的初始窗口和使用新的慢啟動(dòng)閾值來改變。(3)在擁塞避免階段,采用每個(gè)RTT時(shí)間擁塞窗口增加K的策略。(4)采用ACKS擁塞控制和過濾技術(shù)來減少ACKS在中間結(jié)點(diǎn)阻塞的可能性。
我們除了可以在TCP層上使用一些特殊技術(shù)來改善衛(wèi)星網(wǎng)絡(luò)中的TCP性能之外,還可以采用應(yīng)用層技術(shù)來有效的使用衛(wèi)星鏈路,例如XFTP技術(shù)。XFTP是FTP的一個(gè)變形,它同時(shí)采用多個(gè)并行的TCP進(jìn)行連接。我們通過選擇合適的并行連接數(shù),從而可以使得XFTP獲得將近90%的衛(wèi)星鏈路使用率,這樣就大大提高了衛(wèi)星網(wǎng)絡(luò)中TCP的性能。
綜上所述,本文對(duì)無線網(wǎng)絡(luò)中的TCP性能進(jìn)行了相關(guān)研究,針對(duì)其中的蜂窩網(wǎng)絡(luò)提出了具體的改進(jìn)方法,取得了一定的成果,但是還有很多問題值得我們進(jìn)行進(jìn)一步的研究,從而來更好的提高TCP性能。
[1]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].大連:大連理工大學(xué)出版社,2000.
[2]馬刈非.衛(wèi)星通信網(wǎng)絡(luò)技術(shù)[M].北京:國防工業(yè)出版社,2003.
[3]龍承志,馬玉秋,沈樹群.基于低速率的短距離無線通信網(wǎng)絡(luò)新技術(shù)-ZigBee[J].數(shù)據(jù)通信,2005,1:10-12.
[4]曲大鵬,黃東軍.一種新的適用于異構(gòu)網(wǎng)絡(luò)的TCP算法[J].計(jì)算機(jī)應(yīng)用,2007,(10):63-64.