付濤
【摘要】? ? 針對王者榮耀時延高導致用戶玩王者榮耀手游感知不佳的問題,提出了利用Wireshark互聯(lián)網(wǎng)抓包軟件,分析研究手游報文,創(chuàng)新設(shè)計了一套利用華為4G的上行智能預調(diào)度算法參數(shù)進行保障優(yōu)化手游環(huán)回感知時延的方法,提升手游用戶的游戲業(yè)務(wù)感知,為后續(xù)持續(xù)提升4G手游用戶的市場份額打下了堅實基礎(chǔ)。
【關(guān)鍵詞】? ? 王者榮耀? ? 手游? ? 私有協(xié)議? ? 幀同步? ? TCP報文? ? UDP報文? ? 時延
引言
隨著包含王者榮耀在內(nèi)的MOBA類游戲爆火以及用戶數(shù)激增,運營商網(wǎng)絡(luò)的手游業(yè)務(wù)面臨著前所未有的挑戰(zhàn)。這類游戲?qū)χ鴷r延有著極高的要求,特別是在高校、住宅區(qū)等熱點區(qū)域,時延較高,極大的影響用戶的感知。
為了體驗王者榮耀手游的時延影響,優(yōu)化工程師A在測試手機上安裝王者榮耀體驗手機游戲,發(fā)現(xiàn)游戲界面右上角顯示的時延小于100ms時,玩游戲很順暢;時延大于200ms后,玩游戲會出現(xiàn)卡頓現(xiàn)象。于是開展了本次王者榮耀手游時延優(yōu)化的研究專題,利用上行智能預調(diào)度、256QAM等一系列創(chuàng)新方案,有效的降低了游戲時延。
一、王者榮耀手游手機抓包過程簡述
1.1解析抓包數(shù)據(jù)獲取王者榮耀交互服務(wù)器IP地址
在電腦上安裝安卓模擬器,并下載王者榮耀APP,手機與電腦通過USB數(shù)據(jù)線共享網(wǎng)絡(luò)為電腦提供上網(wǎng)服務(wù),使用Wireshark對游戲過程中的數(shù)據(jù)流進行抓包分析。解析得到王者榮耀服務(wù)器的IP地址。
1.2獲取客戶端與服務(wù)器之間的TCP長連接
分析抓包數(shù)據(jù)發(fā)現(xiàn)游戲客戶端與服務(wù)器之間建立了一個TCP長連接,游戲客戶端通過這個TCP長連接與服務(wù)器進行心跳和其它信息交互。
根據(jù)抓包數(shù)據(jù)的通信過程,繪制王者榮耀游戲心跳流程如下:
通過觀察發(fā)現(xiàn),王者榮耀的心跳請求消息和心跳響應(yīng)消息的IP報文長度都是124字節(jié)。心跳間隔:3秒。當連接上有其它報文交互時,心跳會停止,此時不需要通過心跳來檢測服務(wù)器工作是否正常;當沒有其它報文交互時,每隔3秒心跳一次。1、從心跳間隔3秒來看,與游戲界面右上角顯示時延的更新周期2秒不一致。2、通過心跳消息交互測得的應(yīng)用層環(huán)回時延大約為60毫秒,游戲界面右上角顯示的時延為100多毫秒,二者明顯不一致。
通過上面的2點分析可以得出:游戲界面右上角顯示的時延并不是通過心跳連接測得的環(huán)回時延。
1.3客戶端和服務(wù)器之間交互的UDP報文
進一步觀察研究抓包報文,發(fā)現(xiàn)只要登錄王者榮耀手游客戶端,客戶端就會和服務(wù)器建立一個TCP長連接。當玩家玩第一局游戲時,客戶端和當前服務(wù)器之間開始交互UDP游戲報文。玩完一局游戲后,如果玩家不退出手游客戶端,接著再玩一局游戲,客戶端訪問的服務(wù)器IP地址會在域名解析得到的IP地址列表中隨機選取更換一個IP服務(wù)器,更換服務(wù)器的依據(jù)待進一步研究推理。
客戶端和服務(wù)器之間交互的報文,除了TCP長連接報文以外,還有大量的UDP報文。上行UDP報文:客戶端通過上行UDP報文將玩家所做的操作上報給服務(wù)器。下行UDP報文:服務(wù)器匯總參加對戰(zhàn)的所有玩家的操作,通過下行UDP報文廣播給參加對戰(zhàn)的所有玩家的手機客戶端。
1.4時延測量UDP報文
客戶端和服務(wù)器之間交互的UDP報文除了游戲報文以外,還有專門用來測量時延的UDP報文,每隔5秒測量一次。服務(wù)器端口為:5002客戶端-->服務(wù)器:UDP報文為60字節(jié),打包成IP報文后為104字節(jié);服務(wù)器-->客戶端:UDP報文為58字節(jié),打包成IP報文后為102字節(jié)。游戲端到端時延測量結(jié)果,在一局游戲結(jié)束后,手機會上報到服務(wù)器。
二、創(chuàng)新解決方案研究
2.1 游戲時延要求
互聯(lián)網(wǎng)查詢得到的騰訊王者榮耀服務(wù)器對環(huán)回時延的要求如下:
王者榮耀端到端時延與游戲體驗要求:
1)流暢:100ms以下
2)一般:100~200ms
3)體驗不好:200~460ms
4)服務(wù)器視為丟包,不處理:460ms以上
根據(jù)上文抓包分析,推測游戲界面右上角顯示的RTT時延受3個因素影響:網(wǎng)絡(luò)環(huán)回時延、客戶端手機的處理時延、服務(wù)器處理玩家報文的時延。
2.2? 網(wǎng)絡(luò)環(huán)回時延研究
2.2.1 幀同步機制分析,建立互聯(lián)網(wǎng)幀同步模型
通過對抓包獲取的報文進行大量研究觀察,推演出手機終端手游APP與服務(wù)器之間是通過互聯(lián)網(wǎng)幀同步技術(shù),讓分布在世界各地的互聯(lián)網(wǎng)上的手游玩家能夠聯(lián)網(wǎng)同步對戰(zhàn)游戲的。
1)游戲場景與互聯(lián)網(wǎng)同步技術(shù)研究
參加對戰(zhàn)游戲的玩家手機制式(3G/4G/5G/WLAN)有可能不同,而不同制式的無線網(wǎng)絡(luò)時延差別比較大,很容易出現(xiàn)各玩家的游戲步調(diào)不一致的情況。為了避免這種情況的出現(xiàn),手機游戲開發(fā)商在設(shè)計時采用了幀同步機制,確保參加對戰(zhàn)游戲的各玩家步調(diào)一致。
網(wǎng)速理想場景對戰(zhàn)游戲的幀同步原理見下圖:
服務(wù)器收集各玩家上報的各自操作,進行匯總,以固定的時間間隔向參加對方的各玩家廣播所有玩家的操作。各客戶端接收到廣播,知道了所有玩家的操作,按照相同的游戲邏輯進行運算,得到相同的結(jié)果,呈現(xiàn)在游戲界面上。
通過上述幀同步機制,基本可以保證參加對戰(zhàn)的各玩家游戲步調(diào)是一致的。
2)大時延場景對戰(zhàn)游戲的幀同步機制:
假定服務(wù)器和客戶端2之間的網(wǎng)絡(luò)時延突然變大,導致服務(wù)器下發(fā)第N+1幀廣播時沒有收到客戶端2在收到第N幀廣播時上報的操作信息,也就是說N+1幀的廣播中沒有包含客戶端2所做的操作,到了N+2幀才廣播給各對戰(zhàn)玩家:
客戶端2玩家會發(fā)現(xiàn)游戲突然卡了一下:自己做了某個操作之后很長時間才有反應(yīng)。
3)服務(wù)器廣播報文研究
觀察一段5v5對戰(zhàn)場景下抓取的報文,解析出廣播間隔大約是60ms。對本局對戰(zhàn)游戲進行全量報文進行統(tǒng)計分析得到如下統(tǒng)計數(shù)據(jù):
1、報文大?。鹤钚?8字節(jié),最大313字節(jié),平均190.8字節(jié)。
2、王者榮耀服務(wù)器每隔60ms廣播一次,每次廣播的報文個數(shù)不同,有的場景每次廣播1個報文,有的場景每次2個報文,還有的場景每次3個報文。
4)手機操作上報報文研究
大部分報文大小都是140字節(jié),少量為68字節(jié)。操作上報報文的個數(shù)應(yīng)該與玩家所做的操作有關(guān),操作越頻繁,操作上報報文個數(shù)越。
2.2.2 網(wǎng)絡(luò)環(huán)回時延推演
推測:游戲界面右上角顯示的時延是通過UDP報文測量得到的。
1)環(huán)回時延的測量:服務(wù)器測量發(fā)出廣播報文到收到客戶端操作上報報文的時間間隔,作為1個RTT:(Round-Trip Time:往返時間)。2)服務(wù)器環(huán)回時延的計算方法:對2秒時間內(nèi)測得的所有RTT取平均。3)手游APP時延的顯示:服務(wù)器將平均RTT下發(fā)給手游APP客戶端顯示出來。
2.2.3 利用無線智能預調(diào)度,降低無線網(wǎng)絡(luò)環(huán)回時延
無線網(wǎng)絡(luò)除了我們?nèi)粘S龅降娜醺采w、高負荷、高干擾、承載網(wǎng)傳輸瓶頸等問題外,上行預調(diào)度的相關(guān)算法對網(wǎng)絡(luò)環(huán)回時延影響也很大。
用戶數(shù)很多的情況下,SRI(上行調(diào)度請求指示)調(diào)度周期很長,會導致網(wǎng)絡(luò)環(huán)回時延很大。為此創(chuàng)新的提出了利用智能預調(diào)度算法來降低網(wǎng)絡(luò)環(huán)回時延。開啟智能預調(diào)度算法,預調(diào)度的數(shù)據(jù)量應(yīng)不低于UDP報文中的平均字節(jié)長度,經(jīng)過大量研究,智能預調(diào)度200字節(jié)效果較好;智能預調(diào)度的持續(xù)時長要足夠長,經(jīng)過大量研究,智能預調(diào)度持續(xù)時長大于兩個手游的廣播幀周期2*60ms=120ms效果最好。
2.3? 終端性能優(yōu)化,降低客戶端的處理時延
從實際抓包心跳連接統(tǒng)計的時延來看,網(wǎng)絡(luò)時延只有幾十毫秒的情況下,游戲界面右上角顯示的時延有100多毫秒,說明客戶端的處理時延還是比較大的。客戶端的處理時延主要受手機的性能影響。為了提高游戲體驗,建議玩游戲時配置為“性能模式”。
2.4? 服務(wù)器的報文處理時延研究
從實際抓包心跳連接統(tǒng)計的時延來看,正常情況服務(wù)器時延大約是1-20ms,但在游戲高峰期,玩家暴增的情況下,服務(wù)器處理UDP報文的性能受服務(wù)器CPU的性能影響,有可能出現(xiàn)時延陡增的情況,推測騰訊目前推出的游戲加速包就是在游戲高峰期進行的服務(wù)器差異化調(diào)度的一種減小時延,提升游戲體驗的方法,服務(wù)器的性能是有限的,VIP付費用戶應(yīng)該優(yōu)先得到調(diào)度響應(yīng)。
2.5? 影響游戲感知主要因素
綜合上文研究,可以看出影響游戲感知的主要因素可以細分為以下幾個方面:1)終端:終端性能、節(jié)電模式、用戶行為。2)無線網(wǎng)絡(luò):覆蓋質(zhì)量、負荷、調(diào)度策略。3)傳輸網(wǎng):接入、匯聚傳輸環(huán)路容量、傳輸鏈路帶寬。4)服務(wù)器:服務(wù)器性能差異、服務(wù)器與用戶距離、服務(wù)器流控策略。
由于終端設(shè)備及游戲服務(wù)器不可控性,網(wǎng)絡(luò)側(cè)主要通過優(yōu)化無線網(wǎng)絡(luò),調(diào)整傳輸資源降低游戲時延,提升用戶游戲業(yè)務(wù)感知。
三、具體實施步驟及應(yīng)用效果
3.1無線側(cè)智能預調(diào)度算法匹配手游幀同步協(xié)議參數(shù)優(yōu)化創(chuàng)新
根據(jù)上述研究成果,開啟4G無線網(wǎng)絡(luò)的智能預調(diào)度算法功能,設(shè)計優(yōu)化預調(diào)度的數(shù)據(jù)量不低于手游UDP報文中的平均字節(jié)長度,智能預調(diào)度200字節(jié);設(shè)計智能預調(diào)度的持續(xù)時長匹配手游的幀同步周期130ms,大于兩個手游的廣播幀周期2*60ms=120ms保證在兩個游戲幀廣播周期內(nèi)能夠及時響應(yīng)上報服務(wù)器要求的UDP報文。具體措施和腳本如下:
1)關(guān)閉預調(diào)度,打開智能預調(diào)度
MOD CELLALGOSWITCH:LOCALCELLID=0,ULSCHSWITCH=PreAllocationSwitch-0&SmartPreAllocationSwitch-1;
2)修改智能預調(diào)度字節(jié)數(shù)到200字節(jié),預調(diào)度時間延長到130ms
MOD CELLULSCHALGO:LOCALCELLID=0,PREALLOCATIONSIZE=200,SMARTPREALLOCATIONDURATION=130;
3.2無線側(cè)調(diào)制參數(shù)優(yōu)化提升空口數(shù)傳效率創(chuàng)新
新鄉(xiāng)高校室內(nèi)場景,已經(jīng)全部完成4G室分部署,無線信號網(wǎng)絡(luò)質(zhì)量較好,為解決空口容量問題,本次研究課題創(chuàng)新使用4G網(wǎng)絡(luò)的256QAM提升無線口傳輸效率,打開256QAM算法開關(guān),提升無線網(wǎng)絡(luò)傳輸速率,實施MML腳本如下:
MOD PUSCHCFG:LOCALCELLID=0,UL256QAMALGOSWITCH=UL_256QAM_SWITCH-1;
MOD CELLALGOSWITCH:LOCALCELLID=0,DL256QAMALGOSWITCH=Dl256QamSwitch-1&Dl256QamAccessorySwitch-1;
3.3 承載網(wǎng)傳輸側(cè)優(yōu)化保障參數(shù)調(diào)整消除傳輸瓶頸
分析研究新鄉(xiāng)高校區(qū)域承載網(wǎng)傳輸環(huán)的網(wǎng)絡(luò)架構(gòu),發(fā)現(xiàn)該區(qū)域1個傳輸環(huán)下掛站點一般都多于40個站點,傳輸資源明顯存在瓶頸。為驗證問題,可以先優(yōu)化問題站點CIR保障帶寬由40Mbps提升到800Mbps。后續(xù)進行傳輸環(huán)分裂擴容最終解決傳輸瓶頸問題。
3.4研究應(yīng)用效果
創(chuàng)新措施執(zhí)行優(yōu)化前,新鄉(xiāng)科技學院10號宿舍樓投訴游戲卡頓較多,單局卡頓次數(shù)10次以上,時延200ms以上占比40%左右。
新鄉(xiāng)科技學院10號宿舍樓執(zhí)行創(chuàng)新優(yōu)化措施后,通過端到端的TCP23步時延觀察,傳輸優(yōu)化過CIR/PIR參數(shù)后,時延平均值由103.2毫秒降低至53.6毫秒,無線網(wǎng)絡(luò)預調(diào)度參數(shù)精準適配王者榮耀手游協(xié)議廣播周期后,時延進一步降低至39.2毫秒。詳細數(shù)據(jù)見下表:
回訪新鄉(xiāng)科技學院10號宿舍樓的王者榮耀游戲玩家,游戲非常流暢,基本沒有再出現(xiàn)過游戲卡頓現(xiàn)象。
陸續(xù)將該創(chuàng)新措施在河師大、新鄉(xiāng)學院、新鄉(xiāng)工學院、小店職業(yè)技術(shù)學院進修推廣,約解決100多例游戲卡頓投訴。
四、總結(jié)
本文提出了通過分析互聯(lián)網(wǎng)交互報文抓包,推演手游私有協(xié)議和幀同步關(guān)鍵參數(shù),進而利用華為智能預調(diào)度算法參數(shù)優(yōu)化和傳輸承載網(wǎng)參數(shù)優(yōu)化改善王者榮耀體驗時延的方案,實驗數(shù)據(jù)表明該方案可以大幅度改善手游卡頓體驗,提升用戶手游類業(yè)務(wù)感知,在改善用戶滿意度和市場推廣上有很大參考價值。
參? 考? 文? 獻
[1] 張新雨 張曉林? 基于LDPC碼約束條件的多幀聯(lián)合幀同步方法[J] 信息通信 2020年01期
[2] 張波? 一種提高幀同步性能的方法[J] 現(xiàn)代電子技術(shù) 2018年21期
[3] 鈕遠 盧海楊等? 手機上網(wǎng)業(yè)務(wù)質(zhì)量端到端分析方法和系統(tǒng)[J] 電信工程技術(shù)與標準化 2016年07期
[4] 胡琳欣 廖章雄等? 基于DPI大數(shù)據(jù)的5G手機上網(wǎng)性能自適應(yīng)評價[C] 5G網(wǎng)絡(luò)創(chuàng)新研討會(2020) 2020-09-22
[5] 徐付湘? 手機游戲時延優(yōu)化研究[J] 電信技術(shù) 2019年S1期
[6] 趙根.? LTE網(wǎng)絡(luò)王者榮耀時延優(yōu)化的討探[J] 信息通信. 2018年05期