《騰訊:大型實時對戰手游的毫秒級網絡優化》要點:
本文介紹了騰訊:大型實時對戰手游的毫秒級網絡優化,希望對您有用。如果有疑問,可以聯系我們。
手游技術專家,華為騰訊 NFV 產業聯合創新實驗室發起人,擁有12年無線互聯網和游戲運營經驗,騰訊移動游戲技術平臺以及騰訊手游 SDK 的創始人,并全面負責騰訊移動游戲的技術評估、優化、接入和運維工作.
本文主要是針對手機游戲進行一些整體解決方案的分享,手機游戲這個業務的特點就是數據的包的大小比較小,但是頻率非常高,可能一秒鐘會有幾十甚至上百個包的發送,對網絡延時要求會更高,對于實時對戰手機游戲來說體驗好就是一百毫秒內, 如果延遲超過兩百毫秒對于游戲體驗傷害非常大.
本文分為五個部分:
在傳統運維時代,運維的工作主要是安裝服務器,發布、變更、監控,故障處理等等這些工作,但是隨著越來越多的云的廠商,亞馬遜、騰訊云、阿里云、以及其他平臺的崛起,越來越多的傳統運維工作已經被替代,新時代的運維何去何從?
我們覺得新時代的運維應該做到除了業務邏輯請把一切都交給我們.也就是說,讓開發和項目組集中精力去進行業務邏輯開發,而周邊環境,公共平臺,公共技術等,都由運維來提供統一化的高質量服務.
這個是我們對于手游各個環節的用戶體驗的整體解決方案,我們將手游的用戶體驗主要分為五個大的環節,包括下載、登錄、游戲體驗、支付、游戲外的輿情.
然后所有的這些數據我們會經過數據清洗之后進行一個系統分析以及決策,出現問題的時候,會將解決方案通過游戲內郵件或者消息 push 工具及時知會到用戶,如果是游戲故障會通過流程引擎進行自動的故障修復,如果是版本質量問題,會給出分析報告給項目組進行決策.
最后我們會再次采集用戶體驗數據,看看這次故障以及版本優化的一個效果,達到一個閉環.
在這五大環節里面,其中和用戶體驗最敏感的就是下載和游戲對局,這也是和移動網絡最相關的兩個部分,接下來我重點分享下這兩塊我們的一個解決思路.
我們目前手游用戶體驗整個體系中上報采用了“燈塔”服務,我們是緊密合作的.
在下載的優化措施方面,下圖是我們下載服務的用戶流失圖,從點擊下載到現在成功到安裝成功一直到點擊啟動,然后右邊這個圖是我們的下載失敗的原因分析.
剛才已經講過了,下載失敗最多的其實就是用戶主動選擇下載,其次就是選文件失敗,里面包括空間不足,也可能SD卡上鎖或者是SD卡的寫入問題,最后還有網絡問題,這三塊是最大的.
最下面這個圖是我們提供的手游下載整體服務,這個服務我們重點關注幾個指標,包括我們的下載成功率、轉化率還有我們的成本和最優速度的選擇.我們主要提供以下幾個大的模塊.
圖中藍色方框標注的這三個是在這些下載優化這塊收益最大的三個解決方案,包括資源防劫持和域名防劫持.
針對我們域名劫持的情況,我們提供智營解析服務:
我們主要是通過自建一個 HttpDns 后臺,給業務提供正確的ip解析服務.
HttpDns 是使用 HTTP 協議代替傳統解析域名.使用 HTTP 協議向 HttpDns 服務器的80端口進行請求,代替傳統的 DNS 協議向 DNS 服務器的53端口,繞開了 Local Dns,從而避免了使用 Local Dns 造成的劫持和跨網.
我們 HttpDns 后臺服務使用的是 BGP IP,經過驗證,BGP 有5%左右的訪問失敗率,所以我們多線路智能選路方案將劫持率(包括失敗率)降低到0.01%.
目前,我們智營解析服務,已經為每天數千萬用戶提供每天近十億的解析服務,劫持率有高峰期的1.5%下降到萬分之一,解析耗時整體下降了50%,投訴大幅下降95%以上.
這頁是我們智營解析和外面的一些域名解析方案的一個優勢吧,第一個就是我們精準可靠,我們提供的后臺目前覆蓋了 TOP17 的運營商,覆蓋了95%的用戶.
另外我們做了IP三地容災,實現智能緩存,這樣降低了更多的網絡開銷,同時使用多路解析,從中選擇最正確的IP給客戶端,另外我們會精確識別IP,對IP進行一系列的測速進行糾正,將速度最好的IP返回給客戶端.另外我們提供非常多的接口,我們也支持多線程調用,提供同步和異步接口.
我們的智能解析服務適用也非常廣泛,包括純 IPV6 網絡和 IPV4 網絡,也支持 H5,也支持HTTPS?協議.
目前我們的數據提供20多個關鍵指標,包括解析量/劫持量/解決量/域名量/解析IP量/運營商統計/云服務商統計/解析耗時/緩存率等.我們還通過大數據計算對劫持的趨勢進行預測.
其次我們提供一個整體的劫持趨勢的一個分析,以及通過大數據進行劫持故障的發生概率預測.
最后我們還提供一個劫持原因分析,這些劫持原因主要包括解析為空/解析網關地址/解析到同網段地址(包括內網)/解析到錯誤地址/解析到舊地址/解析出非ip等.
以上是我們智營解析服務的優勢,目前智營解析服務已經為所有的騰訊手游,以及部分騰訊云移動app合作伙伴提供服務,如有需要,可與騰訊云進行溝通使用這項服務.
接下來是我們資源防劫持的優化方案,資源劫持主要包括3種劫持:
針對資源劫持我們主要是提供一個回源代理的解決方案,當我們判斷資源或者頁面無法正確下載之后,有可能這個資源被運營商劫持了,我們會這個請求轉到我們的IP回源代理服務器,我們代理服務器再去cdn節點進行資源的一個拉取.
如果其中發生了302跳轉到另外的下載頁面,我們的代理服務器直接進行302跳轉,不把這個跳轉請求發給客戶端,避免運營商對302跳轉的一個屏蔽.
另外,由于種種原因,可能業務無法使用 HTTPS 協議,那么我們的 sdk 和回源代理之間可以通過 HTTPS 協議加密交互,防止運營商在 HTTP 協議加入廣告內容,業務的客戶端和后臺還是使用 HTTP 協議.
經過這一系列資源防劫持的優化,我們的下載成功率提高了20%以上,其中資源劫持嚴重的業務下載成功率從之前的70%提高到97%.
以上智營解析和智營回源代理服務,解決了運營商劫持問題,也就是之前原因分析中的HTTP 錯誤等原因.
接下來我一下針對用戶主動取消下載的一個優化方案.用戶主動取消下載,最大的一個原因就是下載包太大,流量消耗太高,我們主要是提供一個增量更新的服務.
增量更新服務,主要是在服務端將新版本與每個舊版本之間的二進制差異進行一個打包,客戶端只用下載更新包,然后在客戶端sdk將更新包和舊版本合成的新版本游戲包,這樣下載的數據包大小比新版本大幅降低達到50%以上,下載時長縮短45%,用戶主動取消的比例大大降低,成功率提升10%以上.
P2P下載是用戶之間端到端的一個下載,可以節省cdn帶寬,邊玩邊下就是在游戲打開閑時進行下載.將增量更新和P2P下載和邊玩邊下進行比較,增量更新帶來的收益是最大的.
以上就是我們在下載這個服務優化里面我個人覺得收益最大的三個方面.
接下來我們實時對戰的網絡優化.這是我們手游的網絡特點,我們手游網絡和傳統的 PC 網絡有些不一樣,一個是我們的無線接入網部分,一個骨干網部分,還有內網部分.
在手機游戲這個領域,我們的網絡還面臨很大的不穩定性,比如網絡從4G切換到 Wifi,在4G情況下,突然來了一個電話一個短信,這樣導致我們的網絡終斷,或者信號比較微弱或者無線網絡負載過高的情況下導致網絡非常不穩定,綜上所述,手機的網絡特點是和傳統的PC游戲對比,具有非常大的復雜性和不穩定性.
針對這些原因,我們提供了一個整體解決方案,我們叫智營網優服務,包括兩個大功能,一個是網絡優化,我們對骨干網的加速,另外對接入網的優化.還有在客戶端我們也會進行一些智能優化,包括對路由器的選擇或者是對我們本地的一些網卡或者是緩存設置的一些智能優化.
另外一個我們是網絡診斷,網絡診斷包括實時卡頓的診斷,也包括游戲全局的卡頓分析,我們會告訴用戶你在什么時間點,發生了什么卡頓,卡頓的原因是什么解決原因是什么.
我們也提供非常精準的測試服務,我們會在全國所有的省份所有的運營商部署一個測試節點,測試我們的用戶到骨干網最邊緣節點的速度是多少,也對到路由器網關進行測試,以及到游戲服務器進行測試,得出每段網絡的延時分別是多少.
另外我們也提供了信道擁塞分析以及同一 Wifi 下多個終端的干擾分析.我們所有的策略是通過云端控制進行下發,而且我們接入非常簡單,只需要游戲是對局之前調用我們進行網絡優化,以及游戲結束之后告訴我們這個游戲已經結束,我們將這個優化停掉.
然后我們提供非常多的數據分析,幫助游戲了解它游戲對局中的各種用戶體驗詳細數據.
首先我們看一下在實時對戰的手機游戲,最核心的指標就是網絡延時,不知道大家有沒有玩過王者榮耀,或類似的Moba游戲,當網絡延時超過了兩百毫秒基本上就會被人虐的很厲害,如果超過一百五十毫秒一些高玩玩家會感覺放技能別人慢.
我們現在提供網絡延時的整體分析,網絡延時包括三個部分.
我們在全國每個省份運營商部署一個邊緣節點,測試從手機到邊緣節點的速度,同時測試手機到游戲服務器的速度,我們把網絡延時這塊分成兩個部分,一個是接入網的延時一個是骨干網的延時,到邊緣幾點的延時就是接入網延時,到游戲服務器的延時減去到邊緣節點的延時就是骨干網延時.
這頁是我們對游戲卡頓數據的分析,我們發現 Wifi 卡頓比4G卡頓更為嚴重,Wifi 的情況下,用戶可以感受到的卡頓情況比例已經接近了20%,五分之一的用戶在玩的時候都會感受到卡頓.而4G的情況下,7%的用戶會感受到卡頓.
我們來看一下卡頓原因,從我們上面說的網絡延時分析來看,造成網絡卡頓的原因.
這三個原因,在我們這里歸結的話都屬于一個接入網的原因造成的卡頓大概占85%以上,所以玩家投訴的時候請大家不要責怪我們的后臺,責怪開發,為什么用戶這么卡,其實卡的原因是由于用戶的接入網絡造成的,不是由于服務器造成的.
4G情況下最大的原因也是由于信號不好,信號小于兩格一格的情況下,占比超過的30%,另外基站負債高占比30%左右,我們和運營商進行了多次溝通,部分運營商表示高峰期的時候有18%的基站處于高負荷的狀態.
剛才說到了為什么信號弱的時候會造成卡頓,信號弱會對卡頓和延時有什么影響,這是我們對空口丟包的分析,4G情況下,延時高主要的原因是因為誤碼重傳導致的,當基站收到手機發過來的數據包,如果誤碼率較高,會要求手機重新發送一份.
在手機信號正常的情況下,有10%的概率會誤碼重傳,在信號比較弱的情況下,基本上100%會造成誤碼重傳.重傳超過一定的閾值以后,基站就會將這個包丟棄,這也就是為什么信號弱的情況下,我們會產生更多的丟包或者是延時比較高的問題.
在 Wifi 情況下,主要有以下兩個協議造成我們的丟包原因,其中一個是在 RTS 和 CTS 協議,主要是為了解決 Wif i隱藏終端的問題.第二個就是信道被占或者沖突,Wifi 在 2.4G 的頻段,Wifi 有很多信道有相互干擾的情況.
如果是當兩個手機同時進行數據傳輸的情況下,或者周圍有微波爐,藍牙等設備,就會造成信道的數據誤碼率比較高.還有誤碼降速,信號不穩定比信號差更容易造成丟包,信號在一格兩格之間來回跳,為什么這樣更差?
因為在 Wifi 協議里面,當你的誤碼率到了一個比較高的程度的時候,Wifi 會和手機終端協商,我們要降低速率保證提高成功率,當你的信號不斷的跳動,他們不斷協商這個過程,每次協商就會把之前數據傳輸的數據丟掉,新的數據傳播傳一份,再加上 RTS/CTS 等待和信道干擾,在路由器嚴重超負荷的情況下,有70%的概率會造成丟包.
路由器嚴重超負荷是指很多人在這個 Wifi 下看視頻或者說下載,70%會發生丟包.信號不好的情況下,有50%的概率丟包.針對丟包這么多原因,我們有什么解決方案?
對于移動接入網的優化,我們主要是和運營商合作,啟動了一個 QoS 技術方案,我們發現其實在空協議里面有一個指標是專門優化包量較小但延時要求很高的場景的,我們經過和中興華為一起推動這個事情的優化.
目前我們這個解決方案當游戲啟動被讀的時候調用一個加速 SDK,然后判斷這個用戶是否具有 QoS 加速的能力和是否需要 QoS 加速,在把這個 QoS 加速請求發給運營商的能力開放平臺,運營商將請求發到基站,基站就會和手機之間建立一個 QCI=3 的專用承載,相當于一個貴賓通道,會保證你的連接的帶寬以及速率等,保證空口的成功率.
這是某個大型游戲在某省使用了 QoS 的效果,使用了 QoS 之后,延時在五十毫秒以內的用戶從12%提升到25%左右,而且我們在一些極度擁塞場景下做了測試,大型的商場或者是地鐵站,甚至在演唱會現場,這個時候連朋友圈都發不了的情況下,但是玩我們的游戲非常暢快,在極度擁塞的環境下,延時從260毫秒降低到130毫秒,丟包率從20%直接下降到0.1%.
對于移動接入網我們可以和運營商合作進行網絡優化,但是對于 Wifi 來說,Wifi 我們應該怎么優化.對于 Wifi 來說使用組合方案,首先對 Wifi 進行網絡分析,看 Wifi 到底是什么卡頓,是連續的卡頓還是隨機的卡頓.
通過數據分析有相應的方案,首先對協議進行優化,因為游戲都是一些數據量比較小的包,我們可能對游戲包進行多路雙發,把一個數據包在一定的時間內重發一次.在這種情況切下,就算一個包丟掉了,后面還有一個冗余包,這樣對游戲的影響非常小,經過我們的測試這種優化可以降低30%80%的丟包率.
第二個就是包冗余,這個數據包帶上前一個數據包的內容,即使前面一個數據包丟掉了,這個數據包也會對前面一個數據包進行處理,這樣降低丟包率.
信號弱是一個比較大的原因,我們會檢測 Wifi 信號,信號弱的時候提醒用戶靠近信號源,另外檢測一些 Wifi 信道,如果 Wifi 信道比較忙,提醒更換空負載的信道,如果 Wifi 負載比較高,我們會提醒一下對其他終端進行限速,或者重啟一下 Wifi.
我們現在也在積極推動 Wifi 廠商開發適合這種延時要求高但包比較小的專用的游戲路由器解決這個丟包的問題,如果這些問題都不能解決,我們可能推薦用戶更換網絡.
我們收集了周邊所有的 Wifi 質量,到底哪個 Wifi 穩定,哪個 Wifi 延時更低,根據你搜索出來的 Wifi 列表或者 GPS 定位,推薦使用周邊的高質量Wifi,如果周邊沒有比較好的 Wifi,提醒用戶使用4G來解決問題.
接下來是骨干網的解決方案,我們現在在全國布置了很多臺服務器,我們會每隔五秒測試每個服務器之間的延時以及每個服務器到我們游戲服務器之間的延時,從而智能選擇一條最快的路徑給手機進行加速,當我們的骨干網出現了擁塞或者出現故障的情況下,智能選擇路由加速效果會非常好.
我們現在骨干網加速的一例大概在12%左右,這個比例不大,因為現在確實運營商對于骨干網的優化做的很不錯,骨干網加速之后,體驗好的用戶大概提升了8%左右.
體驗好是我們用戶到游戲之間的延時控制在一百毫秒以內,從這個數值來看,好像整體的比例不是很明顯,但是對于個別用戶來說,特別是對于那些延時大于兩百毫秒以上的用戶,如果這部分可以加速到一百毫秒以上,對于這些用戶太說他們的體驗感受非常明顯.
目前我們為騰訊幾千萬的用戶提供這樣的服務,上文就是我們在手游網絡優化這一塊做的一些解決方案.最后簡單闡述一下關于新時代運維的理念,就是我們要關注用戶的極致體驗,打造精品S級服務.
文章來自微信公眾號:高效運維
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4247.html