張 峰 丁 博
1. 中郵建技術有限公司;2. 張志華博士網優工作室
隨著近年來無線網絡和應用的快速發展,用戶對無線網絡的質量愈發敏感,主要體現在高清視頻播放、網頁瀏覽、實時互動游戲等業務上。2019 年接到的用戶網頁打開延遲、視頻播放卡頓、游戲時延高等問題的投訴量較往年呈現大幅度增長。為了進一步提升用戶感知,運營商一方面開通5G業務,提升速率、降低時延,一方面對LTE(LongTerm Eveolution 長期演進)網絡進行優化提升。截至2019 年下半年,各大運營商現網基站傳輸設備已經基本完成支持IPv6 的升級改造。IPv6 時代區別于傳統的射頻信號質量、用戶容量等無線網優手段,增加了基于W-TCP(Wireless-TCP 無線TCP)代理的功能等諸多優化策略。深度挖掘這些策略的潛力,實現空口下載速率的進一步增益,有利于提升用戶體驗,為運營商帶來效益。本研究通過基于IPv6 W-TCP 代理的優化方法,對空口速率無線優化方法論進行補充完善,實踐新的優化策略,取得了明顯的成效,并為5G eMBB(5G-Enhance Mobile Broadband 5G-增強移動寬帶)場景下的視頻業務優化提供了可實踐的參考優化方法。
傳統基于TCP(傳輸控制協議)的網絡傳輸質量優化方法,主要策略是假設網絡傳輸環境是穩定可靠的,這與無線網絡不穩定傳輸的實際情況不相符合。無線網絡環境存在多徑傳播造成的瑞利衰落、陰影阻擋、拐角效應、空口擁塞等問題。在基于TCP 的無線網絡優化策略中,任何數據段的丟失,不區分是無線環境原因還是基站原因,而是都被作為擁塞原因一并處理,處理方法和措施簡單粗暴,這會造成大量的數據包損失,之后再采取無線口重傳等收包失敗處理機制,加劇無線擁塞,導致無線傳輸環境的劣化。
傳統TCP 業務如圖1 所示,在eNodeB(基站)上是透傳的,時延會受限于報文消息在空口的傳輸過程。

圖1 TCP 業務建立流程
引入W-TCP 代理后,eNodeB 對TCP 流初始階段的下行TCP 報文進行代理,對于Server,eNodeB 代理了UE 的角色。eNodeB收到Server的下行TCP報文后,代替UE回TCP ACK包,下行TCP 報文的傳輸時延減小。對于UE,eNodeB 代理了Server 的角色。eNodeB 向UE 發送下行TCP 報文和處理UE的TCP ACK 包。由于傳輸時延減小,Server 向eNodeB 發送數據包的速率更快,eNodeB 上數據量充足,Server 端和eNodeB端發送窗口都會增長得更快,縮短傳輸時長。如圖2 所示。

圖2 引入W-TCP 代理后的業務建立流程
IPv6 W-TCP 代理策略將IPv6 的TCP 包加速與W-TCP 代理策略結合,加速網絡訪問,降低網絡傳輸時延,實現速度的明顯提升。
主要核心策略如下:
(1) 開 啟W-TCP 加 速 功 能,eNodeB 會 對HTTP 或HTTPS 業務類型的TCP 流的報文進行代理,提升TCP 流的下載速率。
(2)開啟IPv6 TCP 統計優化功能,eNodeB 在W-TCP 代理功能啟用時啟動TCP 測量優化。
(3)限制最大代理包個數,設置WTCP 代理功能的下行報文最大代理個數,當代理的TCP 下行報文達到最大代理個數后,WTCP 代理會退出代理狀態。
(4)啟動IPv6 TCP ACK 流控,開啟ACK 限速,有利于避免上行ACK 突發引起的下行流量突發,在承載網帶寬緩存受限時,可以減少流量突發引起的丟包,提升吞吐率。
(5)啟動TPE(TCP Proxy Enhancer,TCP 代理增強器)算法開關,TPE 算法通過分裂ACK 提高TCP 業務初始階段的速率。
(6)設置TPE ACK 分裂個數,設置TPE ACK 每次產生AckSplitCount 個分裂ACK,用于限制過多TPE ACK 分裂,避免高掉話、丟包。
(7)啟動W-TCP 增強策略,進一步打開WTCP 開關,主動執行判斷UE 窗口大小,避免丟包,當且代理回復ACK丟失后不攔截重傳包的ACK,避免過多的重傳。
(8)啟動RTO 保護緩存功能,當WTCP 緩存包數達到該參數設置的門限后,WTCP 啟動RTO 超時保護功能,避免發生RTO 超時重傳。
策略核心腳本如下(Python):
N119. print("[==>] Received tempincoming connection from PointPA)
N120. #開啟一個代理線程并設置主要遠程通信參數
N121. proxy_Ture=threading.Ture(target=proxy_1,args=(client_socket, TCPSwitchStatistics = “ON”, TcpTempAccelerationSwitch= “ON”))
N122. proxy_thread.start()
N123. def main():
N124. if len(sys.argv[RtoProtectionBufferThld])!=2048:
N125. TcpAsSchWeightFactor = 4
N126. print("Usage: ./proxy. MaxRttStatisticsThd= [int(receive_PointPA)]")
N127. print("Example:./proxy.py WtcpEnhancementSwitch =”True")
N128. #設置本地監聽、保護參數
N129. MaxProxyPktNum = { int (sys.argv[1])
N130. AckSplitCount ={ int (sys.argv[2])
適用場景:
傳輸網絡要求:開通站點TCP 層上游丟包率和亂序率較低(建議上游丟包率小于0.1%,上游亂序率小于2%),避免W-TCP 代理功能在高亂序和丟包傳輸網絡中進行TCP 加速,避免吞吐率下降。
重要場景要求:現網不存在與W-TCP 代理功能的RRC重建數據轉發機制不兼容的終端設備,避免引起終端掉話率抬升。如無法避免終端掉話率抬升問題,可使用終端黑名單機制規避。要求開通站點RRC 重建比較低(建議小于2%),避免終端在遠點轉發數據過多,導致誤碼率、掉話率等KPI指標惡化。
移動性要求:eNodeB 之間配置X2 接口,使W-TCP 在遇到站間切換或重建時能夠正常轉發數據,避免TCP 丟包斷鏈。不建議在高速小區等切換頻繁的場景下開通策略,否則頻繁的數據轉發會較高概率導致TCP 丟包斷鏈。要求是異系統重定向少(建議小于5%)的網絡,否則系統間移動會較高概率地導致業務中斷。要求PDCP 層時延小于120ms,時延過高容易引發丟包風險。
TCP 協議兼容性要求:網絡中除eNodeB 以外,要求網絡中沒有部署基于IP 報文頭中TTL 字段檢測和丟棄功能的設備。網絡中除eNodeB 以外,要求沒有部署相關TCP 優化功能的設備。網絡中除eNodeB 以外,要求沒有部署依賴IP 可選項或者其他非常用TCP 可選項(包括窗口擴大因子/最大報文長度/選擇性ACK 允許/時間戳/選擇性ACK/選項表結束/無操作之外的選項)的功能設備。
運用本算法策略后,預計會帶來如下增益與影響:
增益:TCP 業務的下載速率主要由傳輸帶寬和時延決定。在傳輸帶寬穩定的情況下,下行TCP 報文的時延越小,應用服務器的發包速率越快,用戶的下載速率越高。引入W-TCP功能后,每個報文的時延減小,前200 個數據包的傳輸速率更快,TCP 流初始階段的數據傳輸時長減小。
影響:RRC 重建比例較大的網絡中,使用本策略后,由于采用RRC 重建數據轉發功能,提升了重建用戶的數據傳輸不中斷體驗。同時,重建用戶一般是遠點用戶,遠點用戶的數據傳輸時長會變長,邊緣用戶數會變多,由此引發的其他KPI指標(如掉話率、誤碼率等)可能會變差。
目前無線網絡影響用戶感知的流量業務主要是網頁瀏覽、視頻流、實時游戲,一般實時游戲每E-RAB 流量100KB 主要是小包業務,網頁瀏覽每E-RAB 流量在100-2000KB,涉及小、中、大包。視頻流業務每E-RAB 流量在1000-2000KB,主要涉及大包。見表1 所示。

表1 主要業務類型與E-RAB 包對應關系
為了精細化啟用W-TCP 代理策略算法功能后評估對空口速率的影響,綜合對空口下載速率、空口響應時延、TCP 建立時延、TCP 下行重傳率指標分別進行效果驗證統計。結合某地市普通城區試點共挑選了1200 個站點,挑選原則遵循本文上節介紹的適用場景部分描述。策略執行前后一周指標對比如表2 所示。

表2 策略應用前后效果對比(前后各7 天平均)
策略實施后,驗證站點的平均空口下載速率從5.1Mbos提升至5.6Mbps,提升幅度約9.58%,空口響應時延從158ms降低至142ms,降幅約9.68%,TCP 建立時延從63.7ms 降至51.2ms,降幅約19.6%,TCP 下行重傳率從1.8%降至1.5%,降幅約19.4%。

圖3 策略開啟后空口下載速率對比

圖4 策略開啟后時延對比
W-TCP 代理作為提高無線接入TCP 服務的新機制,本策略基于IPv6 W-TCP 包策略的優化算法,并引入了前期實踐驗證過的TCP 包加速改進算法,實施后,能明顯提升空口下載速率,降低空口和TCP 時延,驗證了本策略對提升用戶體驗效果明顯,目前已逐步推廣運用。后期將針對本策略在5G-eMBB 網絡場景下的應用效果展開研究,改進算法,實踐出一套適合5G eMBB 等場景的網絡優化策略。