关于缓存:网游云上网络优化方案

63次阅读

共计 4489 个字符,预计需要花费 12 分钟才能阅读完成。

简介:网游云上网络优化计划

1. 游戏行业背景

1.1 行业详情

2019 寰球数字游戏营收 1094 亿美元,其中中国市场 328 亿美元。国内游戏⽤户数 6.5 亿;挪动端
(60%)>PC 端 > 主机。移动游戏占⽐逐年增⻓已成为相对的支流。国内公司近 3 万 +,近 200 上市,Top10:腾讯 53%,网易 15%,三七,中手游,世纪华通,完满,搜狐畅游、游族、多益,紫龙互娱。
趋势:业务上交融电比赛事 / 直播往社交化、多元化倒退;技术上通过 AR/VR/ 云游戏等来晋升体验。
政策管控:18 年开始趋严,文化部管经营备案;广电总局管版号,19 年只有数百个版号。

1.2 业务类型

  • 分类维度:终端、题材、美术格调、玩法、架构
  • 终端:端游、⼿游、页游、主机
  • 玩法:MMORPG、ACG、MOBA、RTS、FPS、SLG
  • 格调:武侠、魔幻、写实、⼆次元
  • 架构:分辨别服、全区全服、寰球同服

2. 游戏技术特色

2.1 核心技术逻辑

对于任何网络游戏而⾔,同步是⼀定要解决的外围问题,甚至比游戏玩法逻辑自身还重要,什么是同步?同步是网络游戏的根底,通过网络通讯来确保同屏玩家看到的游戏世界中每个游戏单位的地位、世界场景、状态属性都要放弃⼀致。即:客户端的体现要⼀致,同时客户端与服务端的数据要⼀致。业界次要有两种同步形式。

状态同步


图 1

状态同步玩法逻辑(比方战⽃逻辑)写在服务端,服务端作为逻辑管制层,客户作为⼀个体现层,玩家对象数据在服务端生成并保护,客户端中玩家对象的所有动作都会告诉到服务端,服务端进⾏逻辑计算并将后果同步给所有客户端,客户端执行体现(播放动画、特效并批改玩家对象的属性显示),这种形式下,客户端的数据只能由服务端的指令来批改。
长处 :安全性极高,防外挂能力强;断线重连⽐较好实现,无非就是把整个场景和⼈物全副从新⽣成⼀遍发给中途掉线重连上来的客户端去体现即可。
毛病 :服务端压力较大(所有动作的计算逻辑须要在服务端上做),网络交互流量大,实现难度大,开发效率低。(通过分区风服来平行扩大);对于格⽃竞技竞速类,玩家动作、位移、⻆度的切换⾮常频繁且快,也须要比拟强的同步校验,这时状态同步无奈解决。
典型游戏:状态同步对网络提早的要求并不高 (玩家体现层是不是⼀致没有太大关系,只有后果⼀致就行),
⼀般 RPG 游戏在 200-300ms 的提早也能玩上来,如 MMORPG,魔兽世界、天龙八部等。

帧同步


图 2

帧同步也叫指令同步,玩法逻辑写在客户端了(比方战斗逻辑),客户端所有动作生成⼀条指令发给服务端 (比方攻打对象 B),服务端收到指令后什么也不做,间接转发给所有客户端,客户端收到指令后执⾏逻辑计算并执行体现层(播放动画、特效并批改玩家对象的属性数据)。
长处 :服务端压力小(仅仅起到⼀个转发的作⽤),网络流量小,能做到更好的及时反馈及细节反馈的⽤户体
验。
毛病 :容易外挂,断线重连会⽐较繁琐,须要在客户端重放每⼀条指令。
典型游戏:RTS、moba 等即时对战类游戏,对同步性的要求很高,⼀场战斗的人数是确定的。王者光荣、魔兽争霸 3、所有格斗类游戏等。实时性要求十分高,要求 RTT 小于 50ms 能力有晦涩的体验。

2.2 典型技术架构

分辨别服:典型 MMORPG

MMORPG 大型多人在线角色扮演,如魔兽世界,剑灵,天龙八部


图 3

特点:玩家之间强交互、实时性要求⾼、全⾯的游戏世界零碎。

  1. 业务流:特色,交付实时性,次要压力在哪⾥(网络、cpu、内存)。
  2. 数据流:对数据库的拜访逻辑,压力状况。
全区全服:典型 MOBA

分大量几个大区、分服对用户不可见;或者全局对客户不可见,应⽤层按⼀定算法进行调配。
ACG/SNS:休闲竞技类
MOBA(Multiplayer online battle arena)匹配开房间类,大逃杀吃鸡类(MOBA+FPS)王者光荣、绝地求生;堡垒之夜。
特点:休闲竞技类,匹配玩法,须要大量的可匹配玩家,匹配后生成战斗服。


图 4

寰球同服:典型 SLG

为什么要做寰球同服,是⼀个经营需要还是⼀个技术需要?不是所有的游戏类型都适宜寰球同服。
特点:游戏对象之间弱交互,实时性要求并不高,300ms 内的同步提早可承受;卡牌,SLG 等,如 COC:往往有 3 种架构:

  1. 服务端全集中部署,优化接入网络(加速器、DCDN)。
  2. 全分布式部署,服务端应⽤ + 数据都分区域部署,做区域间数据同步。
  3. 服务端应用层分区域部署,数据集中部署,通过区域缓存 + 高速通道(专线形式拜访 DB)。

数据⼀致性问题:⼀个玩家断线,缓存数据还未落地,玩家从新登录被断定到另⼀个区域登录了,可能获取不⼀致的角色数据;须要 gamesvr 断定上一次登录在哪个区域,通过⼀个全局服务去告诉对方 gamesvr 下线玩家并回写数据,而后再预取数据。


图 5

2.3 技术痛点及诉求

游戏业务最次要就是要求服务端逻辑解决的实时性和高并发撑持能力,玩法逻辑和数据都在⼀个过程是最现实的形式,但往往因为性能容量的限度,⽬前支流都是逻辑模块拆分、分布式部署,同时又要管制分布式调⽤的链路和次数来管制提早的目标;对于运行时数据根本都是在内存进行解决(如共享内存),玩家角色的结算 / 存档数据以固定周期长久化。


图 6

基于以上游戏技术特征分析,总体来说对游戏对技术层⾯的诉求优先级是:网络 > 计算 > 平安 > 数据库。
在网络方面外围痛点其实就是如何解决网络提早、丢包、抖动对玩家卡顿、掉线等体验的毁坏,随着服务端技术更新和同屏玩家数量的减少,对游戏服务层的并发拜访、稳定性、⽹络提早也有了越来越高的要求。

3. 游戏网络优化

游戏体验的优化是⼀个系统工程,须要多种优化伎俩联结作用,业界很多的精力是放在逻辑层的解决上,纯网络层面的优化只能说是一方面,以下基于云环境的网络优化计划进行论述。

3.1 游戏单服网络能力

对于状态同步的 MMORPG 类游戏,每⼀次网络同步的数据是整个游戏世界场景的所有单位的属性、状态、行为断定等数据,同步量大,网络吞吐要求高,以⼀个单服设计容量 1 万在线的 MMORPG 游戏来说,通常⼀次网络同步的包大小在 512byte 左右,单⽤户评估带宽 30kbps,则出网卡吞吐、包量能力须要的值:

以上是出公网的网卡的流量,GameServer 还存在内网通信的需要,因而在这种场景⼀般倡议是抉择能⽀持百万级别 pps 的实例,如:
ecs.c6.4xlarge 依靠神⻰架构,将网络虚拟化性能卸载到专用硬件,提供了更⾼的网络 io 承载能力和稳定性。
同时倡议将网络中断扩散给不同的 vCPU 解决,晋升网络 PPS 和带宽性能。即 开启网卡多队列 性能:


图 7


图 8

3.2 玩家接⼊网络减速

这块次要是玩家到游戏服的公网链路上进行减速。

基于加速器优化玩家接入

加速器与游戏是人造关联的两个行业,次要解决玩家与游戏服因物理间隔边远而呈现的提早、丢包等状况对游戏晦涩度的影响,这在国内玩家拜访海内游戏服的场景中很常见(比方某些游戏国内禁止发行而国内玩家只能登陆海内服来体验),玩家能够购买各类加速器产品,或者使⽤游戏客户端⾃集成的减速产品来实现链路优化,在云上要构建这⼀层减速其实曾经⾮常简略,甚⾄间接利⽤云的架构轻松实现⼀个加速器产品。


图 9

具体流量门路

  • 在上海 VPC 和⽇本 VPC 建⽴高速通道实现两地 ECS 内网互通。
  • 在两端地区 ECS 之间建设隧道协定,GRE 或 VXLAN,别离绑定本地地区 EIP。
  • 国内玩家通过公⽹ VPN 连贯到上海上车点 ECS,通过隧道接⼝路由到日本下车点 ECS。
  • ⽇本 ECS 接管到去往游戏服的数据包从日本本地 EIP 进来,同时回程路由到隧道接口发给上海 ECS。
基于 DCDN 动静减速页游

对于页游、H5 小游戏等产品因为其⾛ http 协定,轻客户端模式动静逻辑中也蕴含有⼤量动态资源,这类游戏往往是全区全服单地区覆盖全国,网络上的次要痛点是:玩家跨运营商跨地区拜访游戏服,网络传输拥塞的时延、丢包等情况严重影响用户体验,同时客户自行去做动静拆散、动静减速等计划须要大量的工夫、老本投入。


图 10

全站减速(DCDN)通过动静拆散、边缘缓存、智能路由、压缩传输等技术,解决跨运营商、网络不稳
定、复线源站、突发流量、网络拥塞等诸多因素导致的响应慢、丢包、服务不稳固的问题,晋升动动态混合、纯动静站点或 App 的减速性能和拜访体验;这种比拟适宜如三七页游、抖⾳小游戏等,其实对于⼀些重度游戏的全局⾮战斗模块、周边零碎等也能接入 DCDN 来进行全局减速。

基于 CEN 减速特定地区玩家

国内地区⼴阔,游戏服虽是尽量做本地笼罩,但出于老本因素对于有些偏远地区还是笼罩不全,这部分玩家波及跨运营商跨地区的近程拜访游戏服,游戏掉线、卡登时有发⽣,⽐如对于新疆、⻄藏、宁夏、⻘海等地区,游戏服在部署上根本不会做本地笼罩,如果拉近游戏服与玩家的间隔?⽬前基于阿⾥云有种可行的计划是:SLB+CEN+ 游戏服(跨地区)。


图 11

该⽅案对于没有 POP 点、anycast ⽀持的地区比拟适合,相当于 SLB 挂载跨地区的 ECS(白名单凋谢),拉近游戏服到用户侧间隔。

3.3 寰球同服⽹络构建

这块次要是基于专线的减速计划,在寰球同服游戏相似中,数据传输须要跨运营商、跨多国通信,这对⽹络品质提出更高的要求,当然⽬前能实现真正意义上的寰球同服游戏其实没有,次要还是对即时性体验要求不高的 SLG、卡牌等类型,游戏对象之间弱交互,实时性要求并不高。

基于 GA 寰球减速

GA 利⽤阿⾥云寰球传输网络,实现寰球用户就近接入和跨地区部署,缩小提早、抖动、丢包等网络问题的影响,按区域笼罩玩家。


图 12

GA 为每个接⼊减速区域的地区调配⼀个减速 IP,客户端流量通过减速 IP 就近从接⼊点进⼊阿⾥云减速网络。进⼊阿⾥云减速网络后,寰球减速能够智能抉择路由并⾃动实现网络调度,而后把客户端的网络拜访申请送达至最佳终端节点,避开公网的拥挤,达到缩小时延的成果。

基于 Anycast EIP 减速

同样寰球同服的场景,Anycast 次要解决多国多地区的跨网通信链路的品质问题,通过单个 ip 笼罩寰球的减速能力,这大大简化了游戏全局模块的部署问题。


图 13

阿⾥云⽬前在寰球各地区部署 anycast pop 点,笼罩地区 / 国家通过这些点来就近接⼊,部署在 HK 的游戏
服只须要⼀个 ip,通过 Anycast 路由协定在多个 Anycast POP 点公布该 ip,pop 点通过专线连贯部署在阿⾥云 VPC 的游戏服务。

咱们是阿里云智能寰球技术服务 -SRE 团队,咱们致力成为一个以技术为根底、面向服务、保障业务零碎高可用的工程师团队;提供业余、体系化的 SRE 服务,帮忙广大客户更好地应用云、基于云构建更加稳固牢靠的业务零碎,晋升业务稳定性。咱们冀望可能分享更多帮忙企业客户上云、用好云,让客户云上业务运行更加稳固牢靠的技术,您可用钉钉扫描下方二维码,退出阿里云 SRE 技术学院钉钉圈子,和更多云上人交换对于云平台的那些事。

版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

正文完
 0