王曉東 張晟
(中國移動通信集團公司 北京 100032)
TD-SCDMA現網的如下數據傳輸問題是一般無線資源管理算法不能夠有效解決的,必須依賴TCP層特有增強技術來解決的:
第一, 當無線傳輸環境發生比較劇烈的變化時發現,即使空口環境很好,但是數據傳輸速率一樣很低。其主要原因在于當空口無線環境變差時,可能發生丟失分組而引起超時,這種情況下,TCP即會進入“慢啟動階段”而降低Server的發送速率,從而自適應的“適配”網絡環境的變化,而當空口環境再次變好時,Server的發送速度不會很快補充上,這時可能會出現RNC緩存排空,空口無數據可發的情況,導致無線環境較好情況下的E2E傳輸速率得不到提升。
第二,現網用戶訪問部分Internet站點時,發現平均速率較低,當Internet Server不在中國移動的骨干網上時,RNC到Server的RTT較大,TCP的“自適應”特性導致RNC緩存經常發生排空,在空口出現數據不夠發的現象,UE側的接收窗口配置過小時通常也會導致吞吐量不理想。
第三,在多終端調度場景下,無線空口各UE之間數據包快速調度也會導致部分低優先級UE的調度速率降低,而當高優先級UE數據發送完畢,低優先級UE得到更多無線資源時可能發生緩存排空現象。
中國移動經過研究,借鑒其他系統成熟經驗,提出了TPE(TCP(Transmission Control Protocol)Performance Enhance)技術,使TCP協議與無線環境相適配,有效提升TD網絡中的TCP數據傳輸性能,改善無線環境下TCP的處理機制上的限制。
TPE是一種提升無線網絡中TCP數傳性能的算法方案,在TD-SCDMA系統中由TPE功能模塊對TCP/IP分組進行解析和額外的處理,提升了TCP數傳效率和數據業務吞吐率;可以在RNC實現TPE功能,對TCP分組進行解析。圖1示意了TPE在GTPU和PDCP之間的實現。

圖1 TPE實現位置
通過對TCP/IP包進行解析和處理,采用下行數據緩存排序、分裂ACK、復制Dup-ACK以及RAN側本地重傳等TCP性能優化技術,加速下行數傳過程中服務器的慢啟動和快速重傳,快速恢復過程,避免數據傳輸過程中TCP進入慢啟動流程,從而減輕無線側時延過大和時延抖動、分組丟失、核心網分組丟失、亂序等因素對TCP數傳性能的影響。
從TPE技術返回ACK的方式來看,TPE有兩種基本的實現機制——非提前回ACK方式和提前回ACK方式。
兩種方式的共同點都是通過中間網元進行TCP機制的優化。不同的是,提前回ACK方式,是指將原數據業務的TCP連接分裂成兩個連接,即Server<->TCP代理的TCP連接和TCP代理<->UE的TCP連接,Server和UE之間變成“互不相見”,各自看到的就是TCP代理;非提前回ACK方式下,中間網元的TPE功能并沒有將原TCP連接完全截斷,即仍維持Server<->UE的端到端TCP連接。
使用提前回ACK能夠很好地實現對Server屏蔽無線側情況,也即Server的數據發送獨立于UE的數據接收。TCP代理能夠提前從Server獲取數據,而不管UE是否已經應答。在這種情況下,通常能保證RNC RLC Buffer不會出現排空現象,也即使得空口總是有數據發送,這就避免了之前TD-SCDMA外場測試中的RNC RLC Buffer排空問題,從而提高了空口吞吐率。但使用提前回ACK方式,當發生越RNC的切換時,如果不開啟無損遷移功能,將出現可靠性問題,即Server認為數據已經成功發送,而UE卻沒有收到該數據;而如果開啟無損遷移,則通常不存在可靠性問題,因為數據能夠搬移到目標RNC,但是需要搬移的數據流很大,而目標RNC負載也較重時,目標RNC將可能出現緩存不夠的問題,這仍然可能導致可靠性問題。
使用非提前回ACK則可避免上述由于提前回ACK而引起的RNC間切換導致的數據傳輸問題,因而TPE技術采用了非提前回ACK方式。
TPE解決方案中包含如下主要功能集,分裂ACK,復制DupACK,本地重傳,上行數據分組處理,實際使用過程中應當根據網絡實際情況靈活配置,從而達到性能的最優化,如圖2所示。

圖2 TPE 功能集
分裂ACK:利用TCP中根據收到的ACK數來更新擁塞窗口的特點,通過增加ACK數來加速擁塞窗口的膨脹。使得TCP發送端的擁塞窗口能短時間內增長到較大值。當服務器發生慢啟動時,使用分裂 ACK,可以快速膨脹擁塞窗口,而當服務器處于快速重傳和擁塞避免時,使用分裂 ACK,同樣能夠加速擁塞窗口的增長。該功能中TPE收到一個UE過來的ACK時,將這個變成幾個ACK。例如,TPE收到ACK請求2921,分裂ACK數目為3,從TPE發出的ACK就為ACK請求2918,ACK請求2919,ACK請求2920,ACK請求2921,這樣可以加快CWND的快速增加,提升服務器向UE發送數據的速率。
復制DupACK:根據TCP機制收到3個DupACK就快速重傳丟失分組的特點,代理收到UE的ACK后,如果檢測到ACK所請求包不在緩存中,那么立即復制3個DupACK給服務器,從而縮短分組重傳所花費的時間,整體上提升了TCP數傳性能。
本地發送和重傳:服務器發送的數據分組,首先在TPE中緩存,再由TPE發送給UE,當TPE到UE之間丟失分組后,UE會發DupACK,TPE會對其進行攔截,當這些DupACK達到一定次數后,TPE向UE進行本地重傳,而不是通過Server的重傳來進行,從而縮短了重傳時間,另外也較大程度的避免了快速重傳中Server擁塞窗口的減半操作。
對上行數據包的處理:對上行數據分組進行排序,使得上傳的數據按序向核心網遞交,到達Server接收端后,TCP數據分組亂序的可能性就減小,從而很大程度的避免發送不必要的DupACK。
捎帶分組分離ACK:對于上行捎帶分組,如果確認了新的下行數據,那么從該分組分離出一個純ACK,該ACK除了序號比捎帶分組的序號小外,所有信息和捎帶分組的頭部信息完全一致。對于下行捎帶分組,同樣,如果確認了新的上行數據,那么也從該分組中分離出一個ACK。
TPE雖沒有加快TCP發送窗口的滑動速度,但通過增長擁塞窗口而增加了發送窗口,從而提高了數據的發送速度;通過本地緩存和重傳,減輕和避免了空口原因造成的服務器慢啟動或窗口減半,即使發生了重傳也可以加速該過程;從而形成了接入網中對數據業務的性能優化方案。
由于WCDMA和TD-SCDMA采用完全相同的上層協議技術,WCDMA也面臨TCP協議無法完全和空口環境相適應的問題,TPE已經在WCDMA中得到廣泛的應用。WCDMA的TPE技術已經在海外各大運營商得到推廣。中國移動也積極在TD-SCDMA產業引入TPE技術。