基于IPv6 W-TCP 代理的空口速率提升策略研究
2020-06-09张峰丁博
张 峰 丁 博
1. 中邮建技术有限公司;2. 张志华博士网优工作室
0 引言
随着近年来无线网络和应用的快速发展,用户对无线网络的质量愈发敏感,主要体现在高清视频播放、网页浏览、实时互动游戏等业务上。2019 年接到的用户网页打开延迟、视频播放卡顿、游戏时延高等问题的投诉量较往年呈现大幅度增长。为了进一步提升用户感知,运营商一方面开通5G业务,提升速率、降低时延,一方面对LTE(LongTerm Eveolution 长期演进)网络进行优化提升。截至2019 年下半年,各大运营商现网基站传输设备已经基本完成支持IPv6 的升级改造。IPv6 时代区别于传统的射频信号质量、用户容量等无线网优手段,增加了基于W-TCP(Wireless-TCP 无线TCP)代理的功能等诸多优化策略。深度挖掘这些策略的潜力,实现空口下载速率的进一步增益,有利于提升用户体验,为运营商带来效益。本研究通过基于IPv6 W-TCP 代理的优化方法,对空口速率无线优化方法论进行补充完善,实践新的优化策略,取得了明显的成效,并为5G eMBB(5G-Enhance Mobile Broadband 5G-增强移动宽带)场景下的视频业务优化提供了可实践的参考优化方法。
1 W-TCP 代理功能基本算法策略
传统基于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指标(如掉话率、误码率等)可能会变差。
2 效果验证
目前无线网络影响用户感知的流量业务主要是网页浏览、视频流、实时游戏,一般实时游戏每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 策略开启后时延对比
3 结束语
W-TCP 代理作为提高无线接入TCP 服务的新机制,本策略基于IPv6 W-TCP 包策略的优化算法,并引入了前期实践验证过的TCP 包加速改进算法,实施后,能明显提升空口下载速率,降低空口和TCP 时延,验证了本策略对提升用户体验效果明显,目前已逐步推广运用。后期将针对本策略在5G-eMBB 网络场景下的应用效果展开研究,改进算法,实践出一套适合5G eMBB 等场景的网络优化策略。