付涛
【摘要】 针对王者荣耀时延高导致用户玩王者荣耀手游感知不佳的问题,提出了利用Wireshark互联网抓包软件,分析研究手游报文,创新设计了一套利用华为4G的上行智能预调度算法参数进行保障优化手游环回感知时延的方法,提升手游用户的游戏业务感知,为后续持续提升4G手游用户的市场份额打下了坚实基础。
【关键词】 王者荣耀 手游 私有协议 帧同步 TCP报文 UDP报文 时延
引言
随着包含王者荣耀在内的MOBA类游戏爆火以及用户数激增,运营商网络的手游业务面临着前所未有的挑战。这类游戏对着时延有着极高的要求,特别是在高校、住宅区等热点区域,时延较高,极大的影响用户的感知。
为了体验王者荣耀手游的时延影响,优化工程师A在测试手机上安装王者荣耀体验手机游戏,发现游戏界面右上角显示的时延小于100ms时,玩游戏很顺畅;时延大于200ms后,玩游戏会出现卡顿现象。于是开展了本次王者荣耀手游时延优化的研究专题,利用上行智能预调度、256QAM等一系列创新方案,有效的降低了游戏时延。
一、王者荣耀手游手机抓包过程简述
1.1解析抓包数据获取王者荣耀交互服务器IP地址
在电脑上安装安卓模拟器,并下载王者荣耀APP,手机与电脑通过USB数据线共享网络为电脑提供上网服务,使用Wireshark对游戏过程中的数据流进行抓包分析。解析得到王者荣耀服务器的IP地址。
1.2获取客户端与服务器之间的TCP长连接
分析抓包数据发现游戏客户端与服务器之间建立了一个TCP长连接,游戏客户端通过这个TCP长连接与服务器进行心跳和其它信息交互。
根据抓包数据的通信过程,绘制王者荣耀游戏心跳流程如下:
通过观察发现,王者荣耀的心跳请求消息和心跳响应消息的IP报文长度都是124字节。心跳间隔:3秒。当连接上有其它报文交互时,心跳会停止,此时不需要通过心跳来检测服务器工作是否正常;当没有其它报文交互时,每隔3秒心跳一次。1、从心跳间隔3秒来看,与游戏界面右上角显示时延的更新周期2秒不一致。2、通过心跳消息交互测得的应用层环回时延大约为60毫秒,游戏界面右上角显示的时延为100多毫秒,二者明显不一致。
通过上面的2点分析可以得出:游戏界面右上角显示的时延并不是通过心跳连接测得的环回时延。
1.3客户端和服务器之间交互的UDP报文
进一步观察研究抓包报文,发现只要登录王者荣耀手游客户端,客户端就会和服务器建立一个TCP长连接。当玩家玩第一局游戏时,客户端和当前服务器之间开始交互UDP游戏报文。玩完一局游戏后,如果玩家不退出手游客户端,接着再玩一局游戏,客户端访问的服务器IP地址会在域名解析得到的IP地址列表中随机选取更换一个IP服务器,更换服务器的依据待进一步研究推理。
客户端和服务器之间交互的报文,除了TCP长连接报文以外,还有大量的UDP报文。上行UDP报文:客户端通过上行UDP报文将玩家所做的操作上报给服务器。下行UDP报文:服务器汇总参加对战的所有玩家的操作,通过下行UDP报文广播给参加对战的所有玩家的手机客户端。
1.4时延测量UDP报文
客户端和服务器之间交互的UDP报文除了游戏报文以外,还有专门用来测量时延的UDP报文,每隔5秒测量一次。服务器端口为:5002客户端-->服务器:UDP报文为60字节,打包成IP报文后为104字节;服务器-->客户端:UDP报文为58字节,打包成IP报文后为102字节。游戏端到端时延测量结果,在一局游戏结束后,手机会上报到服务器。
二、创新解决方案研究
2.1 游戏时延要求
互联网查询得到的腾讯王者荣耀服务器对环回时延的要求如下:
王者荣耀端到端时延与游戏体验要求:
1)流畅:100ms以下
2)一般:100~200ms
3)体验不好:200~460ms
4)服务器视为丢包,不处理:460ms以上
根据上文抓包分析,推测游戏界面右上角显示的RTT时延受3个因素影响:网络环回时延、客户端手机的处理时延、服务器处理玩家报文的时延。
2.2 网络环回时延研究
2.2.1 帧同步机制分析,建立互联网帧同步模型
通过对抓包获取的报文进行大量研究观察,推演出手机终端手游APP与服务器之间是通过互联网帧同步技术,让分布在世界各地的互联网上的手游玩家能够联网同步对战游戏的。
1)游戏场景与互联网同步技术研究
参加对战游戏的玩家手机制式(3G/4G/5G/WLAN)有可能不同,而不同制式的无线网络时延差别比较大,很容易出现各玩家的游戏步调不一致的情况。为了避免这种情况的出现,手机游戏开发商在设计时采用了帧同步机制,确保参加对战游戏的各玩家步调一致。
网速理想场景对战游戏的帧同步原理见下图:
服务器收集各玩家上报的各自操作,进行汇总,以固定的时间间隔向参加对方的各玩家广播所有玩家的操作。各客户端接收到广播,知道了所有玩家的操作,按照相同的游戏逻辑进行运算,得到相同的结果,呈现在游戏界面上。
通過上述帧同步机制,基本可以保证参加对战的各玩家游戏步调是一致的。
2)大时延场景对战游戏的帧同步机制:
假定服务器和客户端2之间的网络时延突然变大,导致服务器下发第N+1帧广播时没有收到客户端2在收到第N帧广播时上报的操作信息,也就是说N+1帧的广播中没有包含客户端2所做的操作,到了N+2帧才广播给各对战玩家:
客户端2玩家会发现游戏突然卡了一下:自己做了某个操作之后很长时间才有反应。
3)服务器广播报文研究
观察一段5v5对战场景下抓取的报文,解析出广播间隔大约是60ms。对本局对战游戏进行全量报文进行统计分析得到如下统计数据:
1、报文大小:最小68字节,最大313字节,平均190.8字节。
2、王者荣耀服务器每隔60ms广播一次,每次广播的报文个数不同,有的场景每次广播1个报文,有的场景每次2个报文,还有的场景每次3个报文。
4)手机操作上报报文研究
大部分报文大小都是140字节,少量为68字节。操作上报报文的个数应该与玩家所做的操作有关,操作越频繁,操作上报报文个数越。
2.2.2 网络环回时延推演
推测:游戏界面右上角显示的时延是通过UDP报文测量得到的。
1)环回时延的测量:服务器测量发出广播报文到收到客户端操作上报报文的时间间隔,作为1个RTT:(Round-Trip Time:往返时间)。2)服务器环回时延的计算方法:对2秒时间内测得的所有RTT取平均。3)手游APP时延的显示:服务器将平均RTT下发给手游APP客户端显示出来。
2.2.3 利用无线智能预调度,降低无线网络环回时延
无线网络除了我们日常遇到的弱覆盖、高负荷、高干扰、承载网传输瓶颈等问题外,上行预调度的相关算法对网络环回时延影响也很大。
用户数很多的情况下,SRI(上行调度请求指示)调度周期很长,会导致网络环回时延很大。为此创新的提出了利用智能预调度算法来降低网络环回时延。开启智能预调度算法,预调度的数据量应不低于UDP报文中的平均字节长度,经过大量研究,智能预调度200字节效果较好;智能预调度的持续时长要足够长,经过大量研究,智能预调度持续时长大于两个手游的广播帧周期2*60ms=120ms效果最好。
2.3 终端性能优化,降低客户端的处理时延
从实际抓包心跳连接统计的时延来看,网络时延只有几十毫秒的情况下,游戏界面右上角显示的时延有100多毫秒,说明客户端的处理时延还是比较大的。客户端的处理时延主要受手机的性能影响。为了提高游戏体验,建议玩游戏时配置为“性能模式”。
2.4 服务器的报文处理时延研究
从实际抓包心跳连接统计的时延来看,正常情况服务器时延大约是1-20ms,但在游戏高峰期,玩家暴增的情况下,服务器处理UDP报文的性能受服务器CPU的性能影响,有可能出现时延陡增的情况,推测腾讯目前推出的游戏加速包就是在游戏高峰期进行的服务器差异化调度的一种减小时延,提升游戏体验的方法,服务器的性能是有限的,VIP付费用户应该优先得到调度响应。
2.5 影响游戏感知主要因素
综合上文研究,可以看出影响游戏感知的主要因素可以细分为以下几个方面:1)终端:终端性能、节电模式、用户行为。2)无线网络:覆盖质量、负荷、调度策略。3)传输网:接入、汇聚传输环路容量、传输链路带宽。4)服务器:服务器性能差异、服务器与用户距离、服务器流控策略。
由于终端设备及游戏服务器不可控性,网络侧主要通过优化无线网络,调整传输资源降低游戏时延,提升用户游戏业务感知。
三、具体实施步骤及应用效果
3.1无线侧智能预调度算法匹配手游帧同步协议参数优化创新
根据上述研究成果,开启4G无线网络的智能预调度算法功能,设计优化预调度的数据量不低于手游UDP报文中的平均字节长度,智能预调度200字节;设计智能预调度的持续时长匹配手游的帧同步周期130ms,大于两个手游的广播帧周期2*60ms=120ms保证在两个游戏帧广播周期内能够及时响应上报服务器要求的UDP报文。具体措施和脚本如下:
1)关闭预调度,打开智能预调度
MOD CELLALGOSWITCH:LOCALCELLID=0,ULSCHSWITCH=PreAllocationSwitch-0&SmartPreAllocationSwitch-1;
2)修改智能预调度字节数到200字节,预调度时间延长到130ms
MOD CELLULSCHALGO:LOCALCELLID=0,PREALLOCATIONSIZE=200,SMARTPREALLOCATIONDURATION=130;
3.2无线侧调制参数优化提升空口数传效率创新
新乡高校室内场景,已经全部完成4G室分部署,无线信号网络质量较好,为解决空口容量问题,本次研究课题创新使用4G网络的256QAM提升无线口传输效率,打开256QAM算法开关,提升无线网络传输速率,实施MML脚本如下:
MOD PUSCHCFG:LOCALCELLID=0,UL256QAMALGOSWITCH=UL_256QAM_SWITCH-1;
MOD CELLALGOSWITCH:LOCALCELLID=0,DL256QAMALGOSWITCH=Dl256QamSwitch-1&Dl256QamAccessorySwitch-1;
3.3 承载网传输侧优化保障参数调整消除传输瓶颈
分析研究新乡高校区域承载网传输环的网络架构,发现该区域1个传输环下挂站点一般都多于40个站点,传输资源明显存在瓶颈。为验证问题,可以先优化问题站点CIR保障带宽由40Mbps提升到800Mbps。后续进行传输环分裂扩容最终解决传输瓶颈问题。
3.4研究应用效果
创新措施执行优化前,新乡科技学院10号宿舍楼投诉游戏卡顿较多,单局卡顿次数10次以上,时延200ms以上占比40%左右。
新乡科技学院10号宿舍楼执行创新优化措施后,通過端到端的TCP23步时延观察,传输优化过CIR/PIR参数后,时延平均值由103.2毫秒降低至53.6毫秒,无线网络预调度参数精准适配王者荣耀手游协议广播周期后,时延进一步降低至39.2毫秒。详细数据见下表:
回访新乡科技学院10号宿舍楼的王者荣耀游戏玩家,游戏非常流畅,基本没有再出现过游戏卡顿现象。
陆续将该创新措施在河师大、新乡学院、新乡工学院、小店职业技术学院进修推广,约解决100多例游戏卡顿投诉。
四、总结
本文提出了通过分析互联网交互报文抓包,推演手游私有协议和帧同步关键参数,进而利用华为智能预调度算法参数优化和传输承载网参数优化改善王者荣耀体验时延的方案,实验数据表明该方案可以大幅度改善手游卡顿体验,提升用户手游类业务感知,在改善用户满意度和市场推广上有很大参考价值。
参 考 文 献
[1] 张新雨 张晓林 基于LDPC码约束条件的多帧联合帧同步方法[J] 信息通信 2020年01期
[2] 张波 一种提高帧同步性能的方法[J] 现代电子技术 2018年21期
[3] 钮远 卢海杨等 手机上网业务质量端到端分析方法和系统[J] 电信工程技术与标准化 2016年07期
[4] 胡琳欣 廖章雄等 基于DPI大数据的5G手机上网性能自适应评价[C] 5G网络创新研讨会(2020) 2020-09-22
[5] 徐付湘 手机游戏时延优化研究[J] 电信技术 2019年S1期
[6] 赵根. LTE网络王者荣耀时延优化的讨探[J] 信息通信. 2018年05期