个人对游戏加速器行业看法:加速器现有架构梳理
一、描述
加速器行业主要是在中国市场由于GFW原因,导致国内很多游戏玩家无法玩很多国外发行的游戏,因此加速器行业主要受众主要是这部分用户。
二、加速器总体架构
加速器行业的整体架构图如下:
图1
加速器行业所做的主要工作在标绿和标红的这两块,我司标红的这块都是使用阿里、腾旭或者中移动、电信提供的基础专线服务来实现的,所以加速器现目前主要专注于标绿的这块,下面将会围绕着整个数据流量进行逐次的讲解
二、接入端
接入端按照接入设备的不一样主要分为android、PC(windows)、iphone三种接入设备,下面将对三种接入设备使用结束和数据流图进行介绍:
PC端:
图2
android端:
图3
Iphone端:
图4
从纯客户端架构的方式来看客户端也可以分为接入端(数据获取)、协议端(数据传输控制)、网络端(数据传输),下面将按照这个维度对客户端三端进行对比如下:
模块 | PC | Android | Iphone |
---|---|---|---|
接入端 | 1. wfp(驱动获取进程数据); 2. lsp(winsock 协议层注入); 3. hook(dll注册获取对应进程数据) 4. tun通过路由方式获取数据; |
1. tun路由方式获取数据; | 1. tun通过路由方式获取数据; |
协议端 | 1. openvpn 协议; 2. ssr加解密协议; 3. 用户自定义协议; |
1. openvpn 协议; 2. ssr加解密协议; 3. 用户自定义协议; |
1. openvpn 协议; 2. ssr加解密协议; 3. 用户自定义协议; |
网络端 | 1. udp; 2. tcp; 3. fake-tcp; |
1. udp; 2. tcp; 3. fake-tcp; |
1. udp; 2. tcp; 3. fake-tcp; |
纵观三个模块,基于用户可以自我定制的主要是在协议端和网络端而接入端一般都是系统机制决定什么可以用,但是要提下就是可以实现精准进程数据抓取系统只有PC和Android 平台可以实现,ios平台只能通过路由的方式去获取数据。
三、输出端
在我们公司一般称输出端为网络的上车点,输出端主要的工作是将接入端打包上来的数据解析为三层或者四层数据,在经过服务器上配置路由规则将数据转发到对应的下车点上,相对输入端而言输出端功能相对专一些,但是三层和四层数据转发策略配置上将会有一定程度的的不一样,但基本原理都是基于iptables(ip set)+ip rule+ip route这样的一套体系机制上建立起来的。
针对输出端还有一个点是必须要提的,那就是Nat open这个需求主要是针对P2P游戏进行特殊优化,针对转发数据是三层和四层数据对应处理方式是不一样的下面将会对这个功能进行单独讲解(默认nat测试都是udp数据):
四层数据:
如果输出端转发的是四层数据,输出端要实现nat open对应的UDP数据的收发就需要进行三元组的绑定(src_ipaddress+dst_ipaddress+protocol),不对目的ip和端口进行绑定并且输出端的出口节点也要是nat open方式才能实现nat open;
三层数据:
通过自定义的一个netfilter模块实现通过UDP的发送端的端口,动态生成五元组信息(newsrcip+newsrcport+newprotocol+olddstip+olddstport)生成对应的五元组信息,让新过来的UDP数据包可以通过,网络上有一个full-clone的nat open模块基于linux内核实现的
四、分流
游戏加速器产业中,除开人工费外,支出成本最高的就是带宽流量成本和运营成本,从技术的角度上看可以节约的就是带宽流量成本,因此就需要对入口的流量做精准抓取和识别,这就涉及两个维度:
1. 入口流量尽量精准为游戏的流量(精准游戏数据流量);
2. 将游戏数据中相对对数据实时性要求不高的数据,走相对便宜一些的线路,尽最大限度节约成本;
要解决以上矛盾点,对进入我们隧道内的数据实现分流,尽量在保证游戏数据不受影响的情况下,将更多的数据流量分流到本地或者相对便宜的线路,因此我司针对这个做了一下四种方式分流:
分流类型(线路) | 使用场景 |
---|---|
CN2 | 游戏资源加载、游戏内部不可缓存热更新 |
CDN | 游戏静态资源下载、游戏包下载 |
数据走本地 | 本地资源下载不受影响,在国内有CDN节点游戏 |
专线(IPLC IPET) | 游戏数据专用,成本比较高 |
因此通过将各种流量在我们客户端内识别分发到对应线路上能够尽最大限度节约单用户的流量成本。
五、总结
纵观整个加速器行业,其基本的技术原理就是利用现有的VPN技术和对应平台的数据精准获取方式,在对游戏进行加速过程中,尽大限度减少用户加速后对主机网络的影响并且减少不需要的流量加速,还有一个值得一提的就是线路和资源的采购选择也是加速厂商必须要关注的,厂家线路价格和质量都是有很大差别并且这个不是成正比的。
关注微信公众号: 【IT路上人】,分享IT路上的学习心得,关注后回复“资料”可以领取Java、大数据、python等诸多学习资料
本文地址:https://blog.csdn.net/qq_22980439/article/details/112606177
上一篇: 有“寒流”经过
下一篇: 开心囧事:汉语老师、大变活人等