付濤



【摘要】? ? 針對王者榮耀時延高導致用戶玩王者榮耀手游感知不佳的問題,提出了利用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期