我们知道 “游戏加速器” 底层通常是基于隧道代理转换技术的,无论是走 Windows 平台上面得 LSP(分层服务)还是走 tuntap 虚拟网卡得形式。

至少从技术门槛上还是要点东西得,Windows 基于 LSP 技术难度相对不难,Android 上面实现稳定可靠的 “游戏加速器” 是个令人头疼的东西,平心而论。

Android 有哪些实现方式:【Non ROOT】

1、Android 10 提供允许配置 HTTP正向代理服务

可应用HTTP/S正向代理类游戏,一般为网页游戏

2、Android 5 提供 V*NService,可创建、读写 tuntap 字符驱动

面向整个设备上以IP协议传输数据得应用及系统层实现

好了,我们重点说第二条,Android 10 + 这条看看搞笑就行了,Android 平台上游戏加速器是不可能采用此方案得。

Android 平台上基于 V*NService 实现游戏加速器流派,大约为以下列出两类:

1、tun2socks(类似)

2、FULL NAT(类似 OpenV*N)

两套技术实现各有千秋,整体而言考虑对 “网络延迟加速效果”,FULL NAT技术是最好的,所以很多人瞎琢磨一些 “游戏加速器” 大厂 “Android apk”,会看到 “OpenV*N” 的 so 库的原因。

RTT公式:

tun2socks = 本地主机 + 协议栈 + 远程隧道代理 + 协议栈 + 目的主机

FULL NAT = 本地主机 + 远程虚拟路由交换机 + 目的主机

似乎看上去相同,但这是错误的,tun2socks 延迟永远都会比 FULL NAT 更大,除了单位连接吞吐速度够快,几乎毫无是处。

tun2socks 涉及到多次向内核协议栈换入换出会增大 RTT,并且还受到多个TCP状态机及 Nagle 选项的影响,想要优化其 TCP/IP栈尽快发包是很麻烦的。

具体细节就不过多累赘,tun2socks 这套东西得实现最初是在 BadV*P 项目开源的,基于 LwIP C TCP/IP Stack 得封装,本质上它并不是为了 “游戏网络加速” 而设计的,有句话叫做术有专攻。

tun2socks 解决了一个 FULL NAT(传统 V*P)技术最大的缺点,客户端适配器 - 远程路由交换机 - 目的主机服务器,之间RTT过大,单位传输带宽吞吐量过低。

另外一个优势是TCP/IP协议栈单/双边吞吐加速,FULL NAT若要提供单/双吞吐加速需要自行实现TCP/IP加速算法进行吞吐量加速。

但除了优势就没有劣势吗?显然是有最直接的就是:Final RTT时间变得相对更加不可控,而且难以正确计算,对于 CPU/RAM 资源的负担加重多倍。

FULL NAT需要非常好的线路 + 极低RTT,才能让设备可以跑上GE口,但换为 tun2socks 技术,50RTT仍可以拉满GE口带宽吞吐量(这造就各种宣扬吊打 V*N 的沙雕的精神及谜之信仰支柱,总结:没文化真可怕!)

注意:单位传输带宽吞吐量低不等于 RTT 时间高,RTT时间低不意味着单位传输带宽吞吐量高。

目前据我们了解多数 tun2socks-android 实现基本都是从 Linux 开源项目上移植编译而来,某个17年被铁窗泪喝凉茶的哥们开源项目 android 平台客户端适配器实现,某S*S-android,后面各种山寨开源产品,隔三岔五搞个看上不同但没什么区别的东西出来,比如某V*R*Y-NG、clash x android。

我为什么提这个东西?答案是:现在真的多了一大堆所谓的 “游戏加速器”,都是这些玩意的换皮魔改版本。

S*S-android 是依赖于开源 tun2socks 的实现,这个东西现在实现的人多了,可选方案还是比较多的,比如用的最多的 BadV*P 提供的实现,但基本都是跟这个流派差不多的,反正就是抄抄抄,搞了一抹多,基本都是 LwIP implement tun2socks,Golang 这块基于 Google 开源的 netstack,抄 蓝D 一部分代码来实现 golang tun2socks,大概这个东西行情就是这么回是。

又有很多已经把 libtun2socks.so NDK四个指令集平台的程序编出来,后面入手的人都不需要在去研究怎么编译代码了,套到程序就能跑起来,这算不算是时代的一个进步?

IOS/Mac 平台那边也有类似实现开源的东西,实现方式一个路子,LwIP impl tun2socks,不过多了一个封装的稍微多点的开源库实现 NEKit。

FULL NAT类的技术话,相对冷门的多,基本现有实现就是:“OpenV*P”、“SoftEth**”、“WG”,这些东西。

=========================废话说太多了,打住!=========================

Android 平台基于 Google 提供的 V*NService 提供的可用户编程接口,上其实是有一定限制的,但对游戏加速器来说无所谓。

主要限制就是:IP路由表这块不可以随意控制,只能在构建V*P连接的时候显示的添加配置进去,或者就是特定那些应用走加速器,那些应用不走游戏加速器。

看上去好像后面这条很OK呀,小伙子小妹子们不要急,这东西的坑马上都出来了,的确我们配置那些应用走加速器,那些应用不走游戏加速器,咋看没问题,但是这又涉及到另外一个东西,IP路由表配置问题。

假设:配置游戏加速器配置IP路由为 0.0.0.0/0,也就是所有流量走 “游戏加速器” 通过。

那么:当被加速流量到达加速器协议栈那么首先就需要 protect 一下到可以访问外网的 network(netId)上面,否则就会造成本地环路。

OK,那么上面解决了不环路的问题,又带来的全新的问题,因为现在IP路由配置是全局走加速器,这也导致只要没有添加不走加速器的应用进去,要出人生重大问题了,没有被添加进入禁止走加速器的应用,可以通过加速器的网络自由访问某些不可名状的东西,造成不可名状的后果,小伙子/小妹子,还有贵公司老板准备好改天进去望破铁窗,好好改造,饭管饱,一二十年后还是一个好汉/好女/好老板。

《铁窗泪》、《一步一步走出监狱大门》、《狱中望月》都是非常映射此情此景的传唱经典音乐。

那么如何解决这个问题?答案:千万千万不要配置全局IP路由表,要加速的游戏与服务器之间的IP抓出来,还有如果需要游戏网站也加速,那么也单独抓出来IP,合并在一起单独配置路由表,保险起见,游戏加速器服务器的童靴们,最好对流通的所有流量要做审查与限制,人生要稳一点,稳稳才能更健康,Android 平台这个坑爹玩意是不可以在 build 之后添加/删除那些应用走加速器的,想秀操作的可以放弃不切实际的幻想了,如果想要害人害己,快快快!身份证+电话发我,我先举报个充个业绩。

那么就算是把所有的添加/禁止走加速器规则做进去能规避,人生重大风险吗?这是,不可能的!小小操作轻轻松松绕过,我们举个例子:

我先打开你的游戏加速器,对XXX游戏进行网络加速,然后重新装一个新的 Web 网站浏览器,然后你是IP全局路由走游戏加速器,并且 Android 平台上面只要你不重启并重新配置的情况下,那么你猜猜,我现在是不是可以无所欲为?务必要慎重,要稳重一点啊!

...........今天先这样,改天继续摆!

闲聊:Android 平台网络游戏加速器·一(科普文)相关推荐

  1. 微博Android平台SDK文档

    博Android平台SDK文档 编号:WEIBO_ANDROID_SDK 版本:WEIBO_ANDROID_SDK V3.1.2 修订记录: 时间 文档版本 修订人 备注 2012/7/20 2.0. ...

  2. 文通Android平台证件识别SDK

    文通Android平台证件识别SDK 功能介绍 1.通过拍照界面,指导用户拍出合格证件图像. 2.采用文字识别(OCR)技术,自动提取证件信息(如姓名.证件号码.地址等)及头像. 3.识别证件种类包括 ...

  3. 计算机毕业设计之android平台的出租打车软件app(源码+系统+mysql数据库+Lw文档)

    城市生活中,出租车已经成为人们日常出行经常使用的交通工具.但城市里每天上下班时间人流较大,给人的出行带来不便,有些偏远的地区也许只有少数的公交车,上下班时人数又比较多,上不了公交,而这些地方招出租车也 ...

  4. 一卡通android文档,基于Android平台的校园一卡通的设计

    基于Android手机的校园一卡通设计 在信息化"十二五"规划中,浙江大学首次提出"智慧校园"的概念."智慧校园"指通过云计算,虚拟化和物联 ...

  5. java计算机毕业设计邻里平台源代码+数据库+系统+lw文档

    java计算机毕业设计邻里平台源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui.HTML.CSS. ...

  6. java计算机毕业设计教学成果管理平台源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计教学成果管理平台源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计教学成果管理平台源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S ...

  7. Dexposed:Android平台免Root无侵入AOP框架

    本文来自阿里巴巴技术协会(ATA) 本文首发于 http://www.infoq.com/cn/news/2015/07/dexposed 近日,阿里巴巴无线事业部推出首个重量级Android开源项目 ...

  8. Android平台开源项目

    本文收集了比较不错的Android开源项目,研究开源项目是对Android平台掌握的一个最佳的方式. 由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏.图像处理.时间显示.开始菜单 ...

  9. Android平台利用OpenCL框架实现并行开发初试

    在我们熟知的桌面平台,GPU得到了极为广泛的应用,小到各种电子游戏,大到高性能计算,多核心.高并行化的GPU成为我们日常娱乐和科学研究必不可少的"利器".同样,在近些年兴起的移动平 ...

  10. 基于Android平台的流媒体播放器的设计

    from: 基于Android平台的流媒体播放器的设计 1引 言 随着移动通信技术和多媒体技术的迅速发展,融合手机.网络.多媒体技术为一体的视频监控技术也有了长足的进步,通过移动通信网络提供流媒体服务 ...

最新文章

  1. Linux 小知识翻译 - 「代理服务器」
  2. Ajax Session失效跳转登录页面的方法
  3. Apk文件破解反编译(转)
  4. 为什么Java的main方法必须是public static void?
  5. 在Python-dataframe中如何把出生日期转化为年龄?
  6. 套接口学习(一)实现
  7. scanner java重新输入_如何使用Scanner Java重复读取用户输入
  8. Android安全笔记-Android签名文件及初略架构
  9. 如何解决 IDEA 占用大量 CPU 导致的卡顿问题?这顿操作猛如虎
  10. PyOpenGL之3D界面详解(五)
  11. 【Elasticsearch】Named Entity Annotations in Elasticsearch es 实体 注解
  12. 不要再问我this的指向问题了
  13. 用python制作贺卡_Python:通过邮箱发送贺卡或明信片
  14. Intergate flot with Angular js ——Angular 图形报表
  15. 诺顿5月17日病毒库更新后误杀系统文件导致系统蓝屏(STOP c000021a Unkown hard error)
  16. 海康、大华设备搜索大概实现原理
  17. 如何缩小jpg图片大小?jpg格式怎么压缩?
  18. Android跑马灯进度条,跑马灯进度条在Powershell中冻结
  19. CentOS 7拨号上网(ADSL PPPoE)
  20. deployer php,deployer 实战经验分享

热门文章

  1. STM32连接射频si4438模块
  2. 以下可以作为C语言标识符的是( ),天津市计算机二级C语言选择题
  3. GAN详解与PyTorch MINIST手写数字生成实战
  4. PS2020制作电子签名
  5. Matlab机器学习入门(一)
  6. 小米路由器R1C或R1CM小米R1C 原厂Bootloader和epproom
  7. obs源码分析【四】:obs录制的窗口截图与视频编码
  8. solaris系统修改密码步骤
  9. Java校园二手交易平台【计算机毕业设计】
  10. html5 ogv格式转换,Free OGV Video Converter(OGV视频转换器)