中國移動通信集團
TPE:TD-SCDMA網(wǎng)絡(luò)TCP性能優(yōu)化的利器
中國移動通信集團
3G時代為人們提供了更高的無線業(yè)務(wù)承載帶寬,互聯(lián)網(wǎng)的發(fā)展引入了更多的業(yè)務(wù)需求,如何最大限度地提高和保證端到端的服務(wù)性能,是全系統(tǒng)的問題。在E2E解決方案中,僅依賴無線資源管理等傳統(tǒng)算法的優(yōu)化已解決不了所有的問題。而傳統(tǒng)TCP協(xié)議并不適應(yīng)無線網(wǎng)絡(luò)的傳輸環(huán)境,其沒有考慮無線空口環(huán)境劇烈的變化,慢啟動機制導(dǎo)致丟包時重傳時延大,影響用戶吞吐率,從而嚴重影響用戶感知。
TD-SCDMA現(xiàn)網(wǎng)中存在如下數(shù)據(jù)傳輸問題,這是一般無線資源管理算法不能夠有效解決的,必須依賴TCP層特有的增強技術(shù)來解決。
第一:當(dāng)無線傳輸環(huán)境發(fā)生比較劇烈的變化時,發(fā)現(xiàn)即使空口環(huán)境很好,數(shù)據(jù)傳輸速率一樣很低。其主要原因在于當(dāng)空口無線環(huán)境變差時,可能發(fā)生連續(xù)丟包而引起超時,這種情況下,TCP即會進入“慢啟動階段”而降低Server的發(fā)送速率,從而自適應(yīng)地“適配”網(wǎng)絡(luò)環(huán)境的變化,而當(dāng)空口環(huán)境再次變好時,Server的發(fā)送速度不會很快補充上,這時可能會出現(xiàn)RNC緩存排空,空口無數(shù)據(jù)可發(fā)的情況,導(dǎo)致無線環(huán)境較好情況下的E2E傳輸速率得不到提升。
第二:現(xiàn)網(wǎng)用戶訪問部分Internet站點時,發(fā)現(xiàn)平均速率較低,當(dāng)Internet Server不在中國移動的骨干網(wǎng)上時,RNC到Server的RTT較大,TCP的 “自適應(yīng)”特性導(dǎo)致RNC緩存經(jīng)常發(fā)生排空,在空口出現(xiàn)數(shù)據(jù)不夠發(fā)的現(xiàn)象,UE側(cè)的接收窗口配置過小時通常也會導(dǎo)致吞吐量不理想。
第三:在多終端調(diào)度場景下,無線空口各UE之間數(shù)據(jù)包快速調(diào)度也會導(dǎo)致部分低優(yōu)先級UE的調(diào)度速率降低,而當(dāng)高優(yōu)先級UE數(shù)據(jù)發(fā)送完畢,低優(yōu)先級UE得到更多無線資源時可能發(fā)生緩存排空現(xiàn)象。
中國移動經(jīng)過研究,借鑒其他系統(tǒng)成熟經(jīng)驗,提出了TPE(TCP performance enhance)技術(shù),使 TCP協(xié)議與無線環(huán)境相適配,有效提升TD-SCDMA網(wǎng)絡(luò)中的TCP數(shù)據(jù)傳輸性能,改善無線環(huán)境下TCP的處理機制上的限制。
TPE是一種提升無線網(wǎng)絡(luò)中TCP數(shù)據(jù)傳輸性能的算法方案。在TD-SCDMA系統(tǒng)中由TPE功能模塊對TCP/IP包進行解析和額外的處理,提升了TCP數(shù)據(jù)傳輸效率和數(shù)據(jù)業(yè)務(wù)吞吐率??梢栽赗NC實現(xiàn)TPE功能,對TCP包進行解析。TPE在GTPU和PDCP之間的實現(xiàn),如圖1所示。
通過對TCP/IP包進行解析和處理,采用下行數(shù)據(jù)緩存排序、分裂ACK、復(fù)制DupACK以及RAN側(cè)本地重傳等TCP性能優(yōu)化技術(shù),加速下行數(shù)據(jù)傳輸過程中服務(wù)器的慢啟動和快速重傳,快速恢復(fù)過程,避免數(shù)據(jù)傳輸過程中TCP進入慢啟動流程,從而減輕無線側(cè)時延過大和時延抖動、丟包,核心網(wǎng)丟包、亂序等因素對TCP數(shù)據(jù)傳輸性能的影響。
從TPE技術(shù)返回ACK的方式來看,TPE有兩種基本的實現(xiàn)機制:非提前回ACK方式和提前回ACK方式。
兩種方式的共同點都是通過中間網(wǎng)元進行TCP機制的優(yōu)化。不同的是,提前回ACK方式,是指將原數(shù)據(jù)業(yè)務(wù)的TCP連接分裂成兩個連接,即Server圮TCP代理的TCP連接和TCP代理圮UE的TCP連接,Server和UE之間變成“互不相見”,各自看到的就是TCP代理;非提前回ACK方式下,中間網(wǎng)元的TPE功能并沒有將原TCP連接完全截斷,即仍維持Server圮UE的端到端TCP連接。
圖1 TPE的實現(xiàn)位置
使用提前回ACK能夠很好地實現(xiàn)對Server屏蔽無線側(cè)情況,也即Server的數(shù)據(jù)發(fā)送獨立于UE的數(shù)據(jù)接收。TCP代理能夠提前從Server獲取數(shù)據(jù),而不管UE是否已經(jīng)應(yīng)答。在這種情況下,通常能保證RNC RLC Buffer不會出現(xiàn)排空現(xiàn)象,使得空口總是有數(shù)據(jù)發(fā)送,這就避免了之前TD-SCDMA外場測試中的RNC RLC Buffer排空問題,從而提高了空口吞吐率。但使用提前回ACK方式,當(dāng)發(fā)生越RNC的切換時,如果不開啟無損遷移功能,將出現(xiàn)可靠性問題,即Server認為數(shù)據(jù)已經(jīng)成功發(fā)送,而UE卻沒有收到該數(shù)據(jù);而如果開啟無損遷移,則通常不存在可靠性問題,因為數(shù)據(jù)能夠搬移到目標(biāo)RNC,但是需要搬移的數(shù)據(jù)流很大,當(dāng)目標(biāo)RNC負載也較重時,目標(biāo)RNC將可能出現(xiàn)緩存不夠的問題,這仍然可能導(dǎo)致可靠性問題。
使用非提前回ACK則可避免上述由于提前回ACK而引起的RNC間切換導(dǎo)致的數(shù)據(jù)傳輸問題,因而TPE技術(shù)采用了非提前回ACK方式。
假定一個包從Server發(fā)出,經(jīng)過有線傳輸部分和無線傳輸部分由UE收到,數(shù)據(jù)ACK再經(jīng)過無線傳輸和有線傳輸部分回到Server,所經(jīng)歷的RTT為:
而如果在有線傳輸或者無線傳輸部分發(fā)生丟包那么RTT都會更大。
假設(shè)慢啟動門限為M個包,那么TCP啟動后第一次達到慢啟動門限所需的時間為(M-1)個RTT,這段時間傳送的包個數(shù)為:
cwnd達到慢啟動門限后,假設(shè)以概率p1發(fā)生超時事件,Server以概率p2收到DupACK包。發(fā)生超時事件,那么Server端的cwnd重新從1開始增加,收到3個DupACK包就把cwnd置為當(dāng)前慢啟動門限的一半以進行擁塞避免。
這個階段傳送包的個數(shù)為:
而使用TPE之后,假設(shè)每個ACK被分裂為3個,那么擁塞窗口的變化趨勢為:
在其他參數(shù)都一致的情況下,以上兩種計算時間的方式,只有二次方的系數(shù)相差3倍。
那么當(dāng)包大小為1024 byte,使用TPE之后傳輸完w字節(jié)的文件能夠節(jié)省的時間為:
TPE解決方案中包含的主要功能集有:分裂ACK、復(fù)制DupACK、本地重傳、上行數(shù)據(jù)包排序、捎帶包分離ACK等,如圖2所示,實際使用過程中應(yīng)當(dāng)根據(jù)網(wǎng)絡(luò)實際情況靈活配置,從而達到性能的最優(yōu)化。
分裂ACK:利用TCP中根據(jù)收到的ACK數(shù)來更新?lián)砣翱诘奶攸c,通過增加ACK數(shù)來加速擁塞窗口的膨脹,使得TCP發(fā)送端的擁塞窗口能短時間內(nèi)增長到較大值。當(dāng)服務(wù)器發(fā)生慢啟動時,使用分裂 ACK,可以快速膨脹擁塞窗口;而當(dāng)服務(wù)器處于快速重傳和擁塞避免時,使用分裂ACK,同樣能夠加速擁塞窗口的增長。
圖2 TPE功能集
復(fù)制DupACK:根據(jù)TCP機制收到3個DupACK就快速重傳丟失分組的特點,代理收到UE的ACK后,如果檢測到ACK所請求包不在緩存中,那么立即復(fù)制3個DupACK給服務(wù)器,從而縮短分組重傳所花費的時間,整體上提升了TCP數(shù)據(jù)傳輸?shù)男阅堋?/p>
本地發(fā)送和重傳:服務(wù)器發(fā)送的數(shù)據(jù)包首先在TPE中緩存,再由TPE發(fā)送給UE,當(dāng)TPE到UE之間丟包后,UE會發(fā)DupACK,TPE會對其進行攔截,當(dāng)這些DupACK達到一定次數(shù)后,TPE向UE進行本地重傳,而不是通過Server的重傳來進行,從而縮短了重傳時間,另外也較大程度地避免了快速重傳中Server擁塞窗口的減半操作。
上行數(shù)據(jù)包排序:對上行數(shù)據(jù)包進行排序,使得上傳的數(shù)據(jù)按序向核心網(wǎng)遞交,到達Server接收端后,TCP數(shù)據(jù)包亂序的可能性就減小,從而很大程度地避免發(fā)送不必要的DupACK。
捎帶包分離ACK:對于上行捎帶包,如果確認了新的下行數(shù)據(jù),那么從該包分離出一個純ACK,該ACK除了序號比捎帶包的序號小外,所有信息和捎帶包的頭部信息完全一致。對于下行捎帶包,同樣,如果確認了新的上行數(shù)據(jù),那么也從該包中分離出一個ACK。
TPE雖沒有加快TCP發(fā)送窗口的滑動速度,但通過增長擁塞窗口而增加了發(fā)送窗口,從而提高了數(shù)據(jù)的發(fā)送速度;通過本地緩存和重傳,減輕和避免了空口原因造成的服務(wù)器慢啟動或窗口減半,即使發(fā)生了重傳也可以加速該過程,從而形成了接入網(wǎng)中對數(shù)據(jù)業(yè)務(wù)的性能優(yōu)化方案。
TPE測試結(jié)論以及分析:
·隨著核心網(wǎng)丟包概率的增大,TPE算法的增益持續(xù)增大,并且TPE算法能夠有效保證用戶速率不會大幅下滑;
·多用戶進行FTP業(yè)務(wù)時,隨著核心網(wǎng)丟包概率的增大,TPE算法的增益持續(xù)增大,并且吞吐量不會大幅下滑;
·進行HTTP瀏覽時,隨著核心網(wǎng)時延的增大,TPE算法能夠穩(wěn)定帶來增益,但是較大的時延會惡化用戶的感受。
由于WCDMA和TD-SCDMA采用完全相同的上層協(xié)議技術(shù),WCDMA也面臨TCP協(xié)議無法完全和空口環(huán)境相適應(yīng)的問題,TPE已經(jīng)在WCDMA中得到廣泛的應(yīng)用。WCDMA的TPE技術(shù)已經(jīng)在海外各大運營商處得到推廣。中國移動也積極在TD-SCDMA產(chǎn)業(yè)引入TPE技術(shù)。
2010-09-10)